./0000775000000000000000000000000000000000000006104 5ustar00./github.com/0000775000000000000000000000000000000000000010143 5ustar00./github.com/canonical/0000775000000000000000000000000000000000000012072 5ustar00./github.com/canonical/cpuid/0000775000000000000000000000000000000000000013176 5ustar00./github.com/canonical/cpuid/.gitignore0000664000000000000000000000036200000000000015167 0ustar00# Compiled Object files *.slo *.lo *.o *.obj # Precompiled Headers *.gch *.pch # Compiled Dynamic libraries *.so *.dylib *.dll # Fortran module files *.mod # Compiled Static libraries *.lai *.la *.a *.lib # Executables *.exe *.out *.app ./github.com/canonical/cpuid/LICENSE0000664000000000000000000000272500000000000014211 0ustar00Copyright (c) 2015, Intel Corporation All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * 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. * Neither the name of Intel Corporation nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT HOLDER 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. ./github.com/canonical/cpuid/README.md0000664000000000000000000003016700000000000014464 0ustar00# cpuid ### Intel CPUID library for Go Programming Language The cpuid package provides convenient and fast access to information from the x86 CPUID instruction. The package gathers all information during package initialization phase so its public interface will not need to execute the CPUID instruction at runtime. Frequent calls to the CPUID instruction can hurt performance, so this package makes it easier to do CPU-specific optimizations. [![GoDoc](https://godoc.org/github.com/intel-go/cpuid?status.svg)](https://godoc.org/github.com/intel-go/cpuid) ### You can get it with ```shell go get github.com/intel-go/cpuid ``` ### Example: ```go package main import ( "github.com/intel-go/cpuid" "fmt" ) func main() { fmt.Printf("VendorString: %s\n", cpuid.VendorIdentificatorString) fmt.Printf("Features: ") for i := uint64(0); i < 64; i++ { if cpuid.HasFeature(1 << i) { fmt.Printf("%s ", cpuid.FeatureNames[1< **SSE3** Prescott New Instructions-SSE3 (PNI)
> **PCLMULQDQ** PCLMULQDQ support
> **DTES64** 64-bit debug store (edx bit 21)
> **MONITOR** MONITOR and MWAIT instructions (SSE3)
> **DSI_CPL** CPL qualified debug store
> **VMX** Virtual Machine eXtensions
> **SMX** Safer Mode Extensions (LaGrande)
> **EST** Enhanced SpeedStep
> **TM2** Thermal Monitor 2
> **SSSE3** Supplemental SSE3 instructions
> **CNXT_ID** L1 Context ID
> **SDBG** Silicon Debug interface
> **FMA** Fused multiply-add (FMA3)
> **CX16** CMPXCHG16B instruction
> **XTPR** Can disable sending task priority messages
> **PDCM** Perfmon & debug capability
> **PCID** Process context identifiers (CR4 bit 17)
> **DCA** Direct cache access for DMA writes[10][11]
> **SSE4_1** SSE4.1 instructions
> **SSE4_2** SSE4.2 instructions
> **X2APIC** x2APIC support
> **MOVBE** MOVBE instruction (big-endian)
> **POPCNT** POPCNT instruction
> **TSC_DEADLINE** line APIC supports one-shot operation using a TSC deadline value
> **AES** AES instruction set
> **XSAVE** XSAVE, XRESTOR, XSETBV, XGETBV
> **OSXSAVE** XSAVE enabled by OS
> **AVX** Advanced Vector Extensions
> **F16C** F16C (half-precision) FP support
> **RDRND** RDRAND (on-chip random number generator) support
> **HYPERVISOR** Running on a hypervisor (always 0 on a real CPU, but also with some hypervisors)
> **FPU** Onboard x87 FPU
> **VME** Virtual 8086 mode extensions (such as VIF, VIP, PIV)
> **DE** Debugging extensions (CR4 bit 3)
> **PSE** Page Size Extension
> **TSC** Time Stamp Counter
> **MSR** Model-specific registers
> **PAE** Physical Address Extension
> **MCE** Machine Check Exception
> **CX8** CMPXCHG8 (compare-and-swap) instruction
> **APIC** Onboard Advanced Programmable Interrupt Controller
> **SEP** SYSENTER and SYSEXIT instructions
> **MTRR** Memory Type Range Registers
> **PGE** Page Global Enable bit in CR4
> **MCA** Machine check architecture
> **CMOV** Conditional move and FCMOV instructions
> **PAT** Page Attribute Table
> **PSE_36** 36-bit page size extension
> **PSN** Processor Serial Number
> **CLFSH** CLFLUSH instruction (SSE2)
> **DS** Debug store: save trace of executed jumps
> **ACPI** Onboard thermal control MSRs for ACPI
> **MMX** MMX instructions
> **FXSR** FXSAVE, FXRESTOR instructions, CR4 bit 9
> **SSE** SSE instructions (a.k.a. Katmai New Instructions)
> **SSE2** SSE2 instructions
> **SS** CPU cache supports self-snoop
> **HTT** Hyper-threading
> **TM** Thermal monitor automatically limits temperature
> **IA64** IA64 processor emulating x86
> **PBE** Pending Break Enable (PBE# pin) wakeup support
Usage example: ```go if EnabledAVX && HasFeature(AVX) { fmt.Printf("We can use AVX\n") } ``` * **func HasExtendedFeature(feature uint64) bool** to check for the following features: > **FSGSBASE** Access to base of %fs and %gs
> **IA32_TSC_ADJUST** IA32_TSC_ADJUST MSR is supported if 1
> **BMI1** Bit Manipulation Instruction Set 1
> **HLE** Transactional Synchronization Extensions
> **AVX2** Advanced Vector Extensions 2
> **SMEP** Supervisor-Mode Execution Prevention
> **BMI2** Bit Manipulation Instruction Set 2
> **ERMS** Enhanced REP MOVSB/STOSB
> **INVPCID** INVPCID instruction
> **RTM** Transactional Synchronization Extensions
> **PQM** Supports Platform Quality of Service Monitoring (PQM) capability if 1
> **DFPUCDS** Deprecates FPU CS and FPU DS values if 1
> **MPX** Intel MPX (Memory Protection Extensions)
> **PQE** Supports Platform Quality of Service Enforcement (PQE) capability if 1
> **AVX512F** AVX-512 Foundation
> **AVX512DQ** AVX-512 Doubleword and Quadword Instructions
> **RDSEED** RDSEED instruction
> **ADX** Intel ADX (Multi-Precision Add-Carry Instruction Extensions)
> **SMAP** Supervisor Mode Access Prevention
> **AVX512IFMA** AVX-512 Integer Fused Multiply-Add Instructions
> **PCOMMIT** PCOMMIT instruction
> **CLFLUSHOPT** CLFLUSHOPT instruction
> **CLWB** CLWB instruction
> **INTEL_PROCESSOR_TRACE** Intel Processor Trace
> **AVX512PF** AVX-512 Prefetch Instructions
> **AVX512ER** AVX-512 Exponential and Reciprocal Instructions
> **AVX512CD** AVX-512 Conflict Detection Instructions
> **SHA** Intel SHA extensions
> **AVX512BW** AVX-512 Byte and Word Instructions
> **AVX512VL** AVX-512 Vector Length Extensions
> **PREFETCHWT1** PREFETCHWT1 instruction
> **AVX512VBMI** AVX-512 Vector Bit Manipulation Instructions
> **AVX512VBMI2** AVX-512 Vector Bit Manipulation Instructions, Version 2
* **func HasExtraFeature(feature uint64) bool** > **LAHF_LM** LahfSahf LAHF and SAHF instruction support in 64-bit mod
> **CMP_LEGACY** CmpLegacy Core multi-processing legacy mode.
> **SVM** SVM Secure virtual machine.
> **EXTAPIC** ExtApicSpace Extended APIC space.
> **CR8_LEGACY** AltMovCr8 LOCK MOV CR0 means MOV CR8.
> **ABM** ABM Advanced bit manipulation. LZCNT instruction support.
> **SSE4A** SSE4A EXTRQ, INSERTQ, MOVNTSS, and MOVNTSD instruction support.
> **MISALIGNSSE** Misaligned SSE mode.
> **PREFETCHW** PREFETCH and PREFETCHW instruction support.
> **OSVW** OSVW OS visible workaround. Indicates OS-visible workaround support.
> **IBS** IBS Instruction based sampling.
> **XOP** XOP Extended operation support.
> **SKINIT** SKINIT SKINIT and STGI are supported.
> **WDT** WDT Watchdog timer support.
> **LWP** LWP Lightweight profiling support.
> **FMA4** FMA4 Four-operand FMA instruction support.
> **TCE** Translation Cache Extension
> **NODEID_MSR** NodeID MSR
> **TBM** TBM Trailing bit manipulation instruction support.
> **TOPOEXT** TopologyExtensio Topology extensions support.
> **PERFCTR_CORE** PerfCtrExtCore Processor performance counter extensions support.
> **PERFCTR_NB** PerfCtrExtNB NB performance counter extensions support.
> **SPM** StreamPerfMon Streaming performance monitor architecture.
> **DBX** DataBreakpointEx Data access breakpoint extension.
> **PERFTSC** PerfTsc
> **PCX_L2I** L2I perf counter extensions
> **FPU_2** Onboard x87 FPU
> **VME_2** Virtual mode extensions (VIF)
> **DE_2** Debugging extensions (CR4 bit 3)
> **PSE_2** Page Size Extension
> **TSC_2** Time Stamp Counter
> **MSR_2** Model-specific register
> **PAE_2** Physical Address Extension
> **MCE_2** Machine Check Exception
> **CX8_2** CMPXCHG8 (compare-and-swap) instruction
> **APIC_2** Onboard Advanced Programmable Interrupt Controller
> **SYSCALL** SYSCALL and SYSRET instructions
> **MTRR_2** Memory Type Range Registers
> **PGE_2** Page Global Enable bit in CR4
> **MCA_2** Machine check architecture
> **CMOV_2** Conditional move and FCMOV instructions
> **PAT_2** Page Attribute Table
> **PSE36** 36-bit page size extension
> **MP** Multiprocessor Capable
> **NX** NX bit
> **MMXEXT** Extended MMX
> **MMX_2** MMX instructions
> **FXSR_2** FXSAVE, FXRSTOR instructions
> **FXSR_OPT** FXSAVE/FXRSTOR optimizations
> **PDPE1GB** Gibibyte pages
> **RDTSCP** RDTSCP instruction
> **LM** Long mode
> **_3DNOWEXT** Extended 3DNow!
> **_3DNOW** 3DNow!
./github.com/canonical/cpuid/cpuid.go0000664000000000000000000003142100000000000014632 0ustar00// Copyright 2015 Intel Corporation. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Package cpuid provides access to the information available // through the CPUID instruction. // All information is gathered during package initialization phase // so package's public interface doesn't call CPUID instruction. package cpuid // VendorIdentificationString like "GenuineIntel" or "AuthenticAMD" var VendorIdentificatorString string // ProcessorBrandString like "Intel(R) Core(TM) i7-4770HQ CPU @ 2.20GHz" var ProcessorBrandString string // SteppingId is Processor Stepping ID as described in // Intel® 64 and IA-32 Architectures Software Developer’s Manual var SteppingId uint32 // ProcessorType obtained from processor Version Information, according to // Intel® 64 and IA-32 Architectures Software Developer’s Manual var ProcessorType uint32 // DisplayFamily is Family of processors obtained from processor Version Information, according to // Intel® 64 and IA-32 Architectures Software Developer’s Manual var DisplayFamily uint32 // Display Model is Model of processor obtained from processor Version Information, according to // Intel® 64 and IA-32 Architectures Software Developer’s Manual var DisplayModel uint32 // Cache line size in bytes var CacheLineSize uint32 // Maximum number of addressable IDs for logical processors in this physical package var MaxLogicalCPUId uint32 // Initial APIC ID var InitialAPICId uint32 // Cache descriptor's array // You can iterate like there: // for _, cacheDescription := range cpuid.CacheDescriptors { // fmt.Printf("CacheDescriptor: %v\n", cacheDescription) // } // See CacheDescriptor type for more information var CacheDescriptors []CacheDescriptor // Smallest monitor-line size in bytes (default is processor's monitor granularity) var MonLineSizeMin uint32 // Largest monitor-line size in bytes (default is processor's monitor granularity) var MonLineSizeMax uint32 // Enumeration of Monitor-Mwait extensions availability status var MonitorEMX bool // Supports treating interrupts as break-event for MWAIT flag var MonitorIBE bool // EnabledAVX flag allows to check if feature AVX is enabled by OS/BIOS var EnabledAVX bool = false // EnabledAVX512 flag allows to check if features AVX512xxx are enabled by OS/BIOS var EnabledAVX512 bool = false type CacheDescriptor struct { Level int // Cache level CacheType int // Cache type CacheName string // Name CacheSize int // in KBytes (of page size for TLB) Ways int // Associativity, 0 undefined, 0xFF fully associate LineSize int // Cache line size in bytes Entries int // number of entries for TLB Partioning int // partitioning } type AMDMemoryEncryptionCapabilities struct { PhysAddrReduction uint32 CBitPosition uint32 NumEncryptedGuests uint32 MinSevNoEsAsid uint32 } var AMDMemEncrypt AMDMemoryEncryptionCapabilities // ThermalSensorInterruptThresholds is the number of interrupt thresholds in digital thermal sensor. var ThermalSensorInterruptThresholds uint32 // HasFeature to check if features from FeatureNames map are available on the current processor func HasFeature(feature uint64) bool { return (featureFlags & feature) != 0 } // HasExtendedFeature to check if features from ExtendedFeatureNames map are available on the current processor func HasExtendedFeature(feature uint64) bool { return (extendedFeatureFlags & feature) != 0 } // HasExtraFeature to check if features from ExtraFeatureNames map are available on the current processor func HasExtraFeature(feature uint64) bool { return (extraFeatureFlags & feature) != 0 } // HasAMDMemEncryptFeature to check if features from AmdMemEncryptFeatureNames map are available on the current processor func HasAMDMemEncryptFeature(feature uint32) bool { return (amdMemEncryptFeatureFlags & feature) != 0 } // HasThermalAndPowerFeature to check if features from ThermalAndPowerFeatureNames map are available on the current processor func HasThermalAndPowerFeature(feature uint32) bool { return (thermalAndPowerFeatureFlags & feature) != 0 } var FeatureNames = map[uint64]string{ SSE3: "SSE3", PCLMULQDQ: "PCLMULQDQ", DTES64: "DTES64", MONITOR: "MONITOR", DSI_CPL: "DSI_CPL", VMX: "VMX", SMX: "SMX", EST: "EST", TM2: "TM2", SSSE3: "SSSE3", CNXT_ID: "CNXT_ID", SDBG: "SDBG", FMA: "FMA", CX16: "CX16", XTPR: "XTPR", PDCM: "PDCM", PCID: "PCID", DCA: "DCA", SSE4_1: "SSE4_1", SSE4_2: "SSE4_2", X2APIC: "X2APIC", MOVBE: "MOVBE", POPCNT: "POPCNT", TSC_DEADLINE: "TSC_DEADLINE", AES: "AES", XSAVE: "XSAVE", OSXSAVE: "OSXSAVE", AVX: "AVX", F16C: "F16C", RDRND: "RDRND", HYPERVISOR: "HYPERVISOR", FPU: "FPU", VME: "VME", DE: "DE", PSE: "PSE", TSC: "TSC", MSR: "MSR", PAE: "PAE", MCE: "MCE", CX8: "CX8", APIC: "APIC", SEP: "SEP", MTRR: "MTRR", PGE: "PGE", MCA: "MCA", CMOV: "CMOV", PAT: "PAT", PSE_36: "PSE_36", PSN: "PSN", CLFSH: "CLFSH", DS: "DS", ACPI: "ACPI", MMX: "MMX", FXSR: "FXSR", SSE: "SSE", SSE2: "SSE2", SS: "SS", HTT: "HTT", TM: "TM", IA64: "IA64", PBE: "PBE", } var ThermalAndPowerFeatureNames = map[uint32]string{ // From leaf06 ARAT: "ARAT", PLN: "PLN", ECMD: "ECMD", PTM: "PTM", HDC: "HDC", HCFC: "HCFC", HWP: "HWP", HWP_NOTIF: "HWP_NOTIF", HWP_ACTIVITY_WINDOW: "HWP_ACTIVITY_WINDOW", HWP_ENERGY_PERFORMANCE: "HWP_ENERGY_PERFORMANCE", HWP_PACKAGE_LEVEL_REQUEST: "HWP_PACKAGE_LEVEL_REQUEST", PERFORMANCE_ENERGY_BIAS: "PERFORMANCE_ENERGY_BIAS", TEMPERATURE_SENSOR: "TEMPERATURE_SENSOR", TURBO_BOOST: "TURBO_BOOST", TURBO_BOOST_MAX: "TURBO_BOOST_MAX", } var ExtendedFeatureNames = map[uint64]string{ // From leaf07 FSGSBASE: "FSGSBASE", IA32_TSC_ADJUST: "IA32_TSC_ADJUST", BMI1: "BMI1", HLE: "HLE", AVX2: "AVX2", SMEP: "SMEP", BMI2: "BMI2", ERMS: "ERMS", INVPCID: "INVPCID", RTM: "RTM", PQM: "PQM", DFPUCDS: "DFPUCDS", MPX: "MPX", PQE: "PQE", AVX512F: "AVX512F", AVX512DQ: "AVX512DQ", RDSEED: "RDSEED", ADX: "ADX", SMAP: "SMAP", AVX512IFMA: "AVX512IFMA", PCOMMIT: "PCOMMIT", CLFLUSHOPT: "CLFLUSHOPT", CLWB: "CLWB", INTEL_PROCESSOR_TRACE: "INTEL_PROCESSOR_TRACE", AVX512PF: "AVX512PF", AVX512ER: "AVX512ER", AVX512CD: "AVX512CD", SHA: "SHA", AVX512BW: "AVX512BW", AVX512VL: "AVX512VL", PREFETCHWT1: "PREFETCHWT1", AVX512VBMI: "AVX512VBMI", AVX512VBMI2: "AVX512VBMI2", } var ExtraFeatureNames = map[uint64]string{ // From leaf 8000 0001 LAHF_LM: "LAHF_LM", CMP_LEGACY: "CMP_LEGACY", SVM: "SVM", EXTAPIC: "EXTAPIC", CR8_LEGACY: "CR8_LEGACY", ABM: "ABM", SSE4A: "SSE4A", MISALIGNSSE: "MISALIGNSSE", PREFETCHW: "PREFETCHW", OSVW: "OSVW", IBS: "IBS", XOP: "XOP", SKINIT: "SKINIT", WDT: "WDT", LWP: "LWP", FMA4: "FMA4", TCE: "TCE", NODEID_MSR: "NODEID_MSR", TBM: "TBM", TOPOEXT: "TOPOEXT", PERFCTR_CORE: "PERFCTR_CORE", PERFCTR_NB: "PERFCTR_NB", SPM: "SPM", DBX: "DBX", PERFTSC: "PERFTSC", PCX_L2I: "PCX_L2I", FPU_2: "FPU", VME_2: "VME", DE_2: "DE", PSE_2: "PSE", TSC_2: "TSC", MSR_2: "MSR", PAE_2: "PAE", MCE_2: "MCE", CX8_2: "CX8", APIC_2: "APIC", SYSCALL: "SYSCALL", MTRR_2: "MTRR", PGE_2: "PGE", MCA_2: "MCA", CMOV_2: "CMOV", PAT_2: "PAT", PSE36: "PSE36", MP: "MP", NX: "NX", MMXEXT: "MMXEXT", MMX_2: "MMX", FXSR_2: "FXSR", FXSR_OPT: "FXSR_OPT", PDPE1GB: "PDPE1GB", RDTSCP: "RDTSCP", LM: "LM", _3DNOWEXT: "3DNOWEXT", _3DNOW: "3DNOW", } var AmdMemEncryptFeatureNames = map[uint32]string{ // From leaf 8000 001f AMD_SME: "SME", AMD_SEV: "SEV", AMD_PAGE_FLUSH_MSR: "PageFlushMSR", AMD_SEV_ES: "SEV-ES", } var brandStrings = map[string]int{ "AMDisbetter!": AMD, "AuthenticAMD": AMD, "CentaurHauls": CENTAUR, "CyrixInstead": CYRIX, "GenuineIntel": INTEL, "TransmetaCPU": TRANSMETA, "GenuineTMx86": TRANSMETA, "Geode by NSC": NATIONALSEMICONDUCTOR, "NexGenDriven": NEXGEN, "RiseRiseRise": RISE, "SiS SiS SiS ": SIS, "UMC UMC UMC ": UMC, "VIA VIA VIA ": VIA, "Vortex86 SoC": VORTEX, "KVMKVMKVM": KVM, "Microsoft Hv": HYPERV, "VMwareVMware": VMWARE, "XenVMMXenVMM": XEN, } var maxInputValue uint32 var maxExtendedInputValue uint32 var extendedModelId uint32 var extendedFamilyId uint32 var brandIndex uint32 var brandId int var featureFlags uint64 var thermalAndPowerFeatureFlags uint32 var extendedFeatureFlags uint64 var extraFeatureFlags uint64 var amdMemEncryptFeatureFlags uint32 const ( UKNOWN = iota AMD CENTAUR CYRIX INTEL TRANSMETA NATIONALSEMICONDUCTOR NEXGEN RISE SIS UMC VIA VORTEX KVM HYPERV VMWARE XEN ) const ( SSE3 = uint64(1) << iota PCLMULQDQ DTES64 MONITOR DSI_CPL VMX SMX EST TM2 SSSE3 CNXT_ID SDBG FMA CX16 XTPR PDCM _ PCID DCA SSE4_1 SSE4_2 X2APIC MOVBE POPCNT TSC_DEADLINE AES XSAVE OSXSAVE AVX F16C RDRND HYPERVISOR FPU VME DE PSE TSC MSR PAE MCE CX8 APIC _ SEP MTRR PGE MCA CMOV PAT PSE_36 PSN CLFSH _ DS ACPI MMX FXSR SSE SSE2 SS HTT TM IA64 PBE ) const ( FSGSBASE = uint64(1) << iota IA32_TSC_ADJUST _ BMI1 HLE AVX2 _ SMEP BMI2 ERMS INVPCID RTM PQM DFPUCDS MPX PQE AVX512F AVX512DQ RDSEED ADX SMAP AVX512IFMA PCOMMIT CLFLUSHOPT CLWB INTEL_PROCESSOR_TRACE AVX512PF AVX512ER AVX512CD SHA AVX512BW AVX512VL // ECX's const from there PREFETCHWT1 AVX512VBMI _ _ _ _ AVX512VBMI2 ) const ( LAHF_LM = uint64(1) << iota CMP_LEGACY SVM EXTAPIC CR8_LEGACY ABM SSE4A MISALIGNSSE PREFETCHW OSVW IBS XOP SKINIT WDT _ LWP FMA4 TCE _ NODEID_MSR _ TBM TOPOEXT PERFCTR_CORE PERFCTR_NB SPM DBX PERFTSC PCX_L2I _ _ _ // EDX features from there FPU_2 VME_2 DE_2 PSE_2 TSC_2 MSR_2 PAE_2 MCE_2 CX8_2 APIC_2 _ SYSCALL MTRR_2 PGE_2 MCA_2 CMOV_2 PAT_2 PSE36 _ MP NX _ MMXEXT MMX_2 FXSR_2 FXSR_OPT PDPE1GB RDTSCP _ LM _3DNOWEXT _3DNOW ) // Thermal and Power Management features const ( // EAX bits 0-15 TEMPERATURE_SENSOR = uint32(1) << iota // Digital temperature sensor TURBO_BOOST // Intel Turbo Boost Technology available ARAT // APIC-Timer-always-running feature is supported if set. _ // Reserved PLN // Power limit notification controls ECMD // Clock modulation duty cycle extension PTM // Package thermal management HWP // HWP base registers (IA32_PM_ENABLE[bit 0], IA32_HWP_CAPABILITIES, IA32_HWP_REQUEST, IA32_HWP_STATUS) HWP_NOTIF // IA32_HWP_INTERRUPT MSR HWP_ACTIVITY_WINDOW // IA32_HWP_REQUEST[bits 41:32] HWP_ENERGY_PERFORMANCE // IA32_HWP_REQUEST[bits 31:24] HWP_PACKAGE_LEVEL_REQUEST // IA32_HWP_REQUEST_PKG MSR _ // Reserved (eax bit 12) HDC // HDC base registers IA32_PKG_HDC_CTL, IA32_PM_CTL1, IA32_THREAD_STALL MSRs TURBO_BOOST_MAX // Intel® Turbo Boost Max Technology _ // Reserved (eax bit 15) // ECX bits 0-15 HCFC // Hardware Coordination Feedback Capability _ _ PERFORMANCE_ENERGY_BIAS // Processor supports performance-energy bias preference ) const ( NULL = iota DATA_CACHE INSTRUCTION_CACHE UNIFIED_CACHE TLB DTLB STLB PREFETCH ) ./github.com/canonical/cpuid/cpuid_amd64.go0000664000000000000000000004407200000000000015633 0ustar00// +build amd64 // Copyright 2015 Intel Corporation. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package cpuid func cpuid_low(arg1, arg2 uint32) (eax, ebx, ecx, edx uint32) // implemented in cpuidlow_amd64.s func xgetbv_low(arg1 uint32) (eax, edx uint32) // implemented in cpuidlow_amd64.s func init() { detectFeatures() } func detectFeatures() { leaf0() leaf1() leaf2() leaf3() leaf4() leaf5() leaf6() leaf7() leaf0x80000000() leaf0x80000001() leaf0x80000004() leaf0x80000005() leaf0x80000006() leaf0x8000001f() if HasFeature(OSXSAVE) { eax, _ := xgetbv_low(0) if (eax & 0x6) == 0x6 { EnabledAVX = true } if (eax & 0xE0) == 0xE0 { EnabledAVX512 = true } } } // AMD Memory encryption capabilities const ( AMD_SME = iota AMD_SEV AMD_PAGE_FLUSH_MSR AMD_SEV_ES ) var leaf02Names = [...]string{ "NULL", "DATA_CACHE", "INSTRUCTION_CACHE", "UNIFIED_CACHE", "TLB", "DTLB", "STLB", "PREFETCH", } func leaf0() { eax, ebx, ecx, edx := cpuid_low(0, 0) maxInputValue = eax VendorIdentificatorString = string(int32sToBytes(ebx, edx, ecx)) brandId = brandStrings[VendorIdentificatorString] } func leaf1() { if maxInputValue < 1 { return } eax, ebx, ecx, edx := cpuid_low(1, 0) // Parse EAX SteppingId = (eax & 0xF) modelId := (eax >> 4) & 0xF familyId := (eax >> 8) & 0xF ProcessorType = (eax >> 12) & 0x3 ExtendedModelId := (eax >> 16) & 0xF extendedFamilyId := (eax >> 20) & 0xFF DisplayFamily = familyId DisplayModel = modelId if familyId == 0xF { DisplayFamily = extendedFamilyId + familyId } if familyId == 0x6 || familyId == 0xF { DisplayModel = ExtendedModelId<<4 + modelId } // Parse EBX brandIndex = ebx & 0xFF CacheLineSize = ((ebx >> 8) & 0xFF) << 3 MaxLogicalCPUId = (ebx >> 16) & 0xFF InitialAPICId = (ebx >> 24) // Parse ECX & EDX not needed. Ask through HasFeature function featureFlags = (uint64(edx) << 32) | uint64(ecx) } func leaf2() { if brandId != INTEL { return } if maxInputValue < 2 { return } bytes := int32sToBytes(cpuid_low(2, 0)) for i := 0; i < len(bytes); i++ { if (i%4 == 0) && (bytes[i+3]&(1<<7) != 0) { i += 4 continue } if bytes[i] == 0xFF { // it means that we should use leaf 4 for cache info CacheDescriptors = CacheDescriptors[0:0] break } CacheDescriptors = append(CacheDescriptors, leaf02Descriptors[int16(bytes[i])]) } } func leaf3() { if brandId != INTEL { return } if maxInputValue < 3 { return } // TODO SerialNumber for < Pentium 4 } func leaf4() { if brandId != INTEL { return } if maxInputValue < 4 { return } cacheId := 0 for { eax, ebx, ecx, _ := cpuid_low(4, uint32(cacheId)) cacheId++ cacheType := eax & 0xF if cacheType == NULL { break } cacheLevel := (eax >> 5) & 0x7 // selfInitializingCacheLevel := eax & (1<<8) // fullyAssociativeCache := eax & (1<<9) // maxNumLogicalCoresSharing := (eax >> 14) & 0x3FF // maxNumPhisCores := (eax >> 26) & 0x3F systemCoherencyLineSize := (ebx & 0xFFF) + 1 physicalLinePartions := (ebx>>12)&0x3FF + 1 waysOfAssiociativity := (ebx>>22)&0x3FF + 1 numberOfSets := ecx + 1 // writeBackInvalidate := edx & 1 // cacheInclusiveness := edx & (1<<1) // complexCacheIndexing := edx & (1<<2) cacheSize := (waysOfAssiociativity * physicalLinePartions * systemCoherencyLineSize * numberOfSets) >> 10 CacheDescriptors = append(CacheDescriptors, CacheDescriptor{int(cacheLevel), int(cacheType), "", int(cacheSize), int(waysOfAssiociativity), int(systemCoherencyLineSize), int(numberOfSets), int(physicalLinePartions), }) } } func leaf5() { if maxInputValue < 5 { return } eax, ebx, ecx, _ := cpuid_low(4, 0) // TODO process EDX with C0-C7 C-states MonLineSizeMax = eax & (0xFFFF) MonLineSizeMax = ebx & (0xFFFF) MonitorEMX = (ecx & (1 << 0)) != 0 MonitorIBE = (ecx & (1 << 1)) != 0 } func leaf6() { // Thermal and Power Management Features for Intel if maxInputValue < 6 { return } eax, ebx, ecx, _ := cpuid_low(6, 0) thermalAndPowerFeatureFlags = (eax & 0xFFFF) | (ecx << 16) ThermalSensorInterruptThresholds = ebx & 7 } func leaf7() { _, ebx, ecx, _ := cpuid_low(7, 0) extendedFeatureFlags = (uint64(ecx) << 32) | uint64(ebx) } func leaf0x80000000() { maxExtendedInputValue, _, _, _ = cpuid_low(0x80000000, 0) } func leaf0x80000001() { if maxExtendedInputValue < 0x80000001 { return } _, _, ecx, edx := cpuid_low(0x80000001, 0) //extendedProcessorSignatureAndFeatureBits := eax extraFeatureFlags = (uint64(edx) << 32) | uint64(ecx) } // leaf0x80000004 looks at the Processor Brand String in leaves 0x80000002 through 0x80000004 func leaf0x80000004() { if maxExtendedInputValue < 0x80000004 { return } ProcessorBrandString += string(int32sToBytes(cpuid_low(0x80000002, 0))) ProcessorBrandString += string(int32sToBytes(cpuid_low(0x80000003, 0))) ProcessorBrandString += string(int32sToBytes(cpuid_low(0x80000004, 0))) } func leaf0x80000005() { // AMD L1 Cache and TLB Information if maxExtendedInputValue < 0x80000005 { return } if brandId != AMD { return } eax, ebx, ecx, edx := cpuid_low(0x80000005, 0) L1DTlb2and4MAssoc := (eax >> 24) & 0xFF L1DTlb2and4MSize := (eax >> 16) & 0xFF CacheDescriptors = append(CacheDescriptors, CacheDescriptor{1, DTLB, "DTLB 2M/4M", 2 * 1024, int(L1DTlb2and4MAssoc), -1, int(L1DTlb2and4MSize), 0, }) L1ITlb2and4MAssoc := (eax >> 8) & 0xFF L1ITlb2and4MSize := (eax) & 0xFF CacheDescriptors = append(CacheDescriptors, CacheDescriptor{1, TLB, "ITLB 2M/4M", 2 * 1024, int(L1ITlb2and4MAssoc), -1, int(L1ITlb2and4MSize), 0, }) L1DTlb4KAssoc := (ebx >> 24) & 0xFF L1DTlb4KSize := (ebx >> 16) & 0xFF CacheDescriptors = append(CacheDescriptors, CacheDescriptor{1, DTLB, "DTLB 4K", 4, int(L1DTlb4KAssoc), -1, int(L1DTlb4KSize), 0, }) L1ITlb4KAssoc := (ebx >> 8) & 0xFF L1ITlb4KSize := (ebx) & 0xFF CacheDescriptors = append(CacheDescriptors, CacheDescriptor{1, TLB, "ITLB 4K", 4, int(L1ITlb4KAssoc), -1, int(L1ITlb4KSize), 0, }) L1DcSize := (ecx >> 24) & 0xFF L1DcAssoc := (ecx >> 16) & 0xFF L1DcLinesPerTag := (ecx >> 8) & 0xFF L1DcLineSize := (ecx >> 0) & 0xFF CacheDescriptors = append(CacheDescriptors, CacheDescriptor{1, DATA_CACHE, "L1 Data cache", int(L1DcSize), int(L1DcAssoc), int(L1DcLineSize), -1, int(L1DcLinesPerTag), }) L1IcSize := (edx >> 24) & 0xFF L1IcAssoc := (edx >> 16) & 0xFF L1IcLinesPerTag := (edx >> 8) & 0xFF L1IcLineSize := (edx >> 0) & 0xFF CacheDescriptors = append(CacheDescriptors, CacheDescriptor{1, INSTRUCTION_CACHE, "L1 Instruction cache", int(L1IcSize), int(L1IcAssoc), int(L1IcLineSize), -1, int(L1IcLinesPerTag), }) } func leaf0x80000006() { if maxExtendedInputValue < 0x80000006 { return } var associativityEncodings = map[uint]uint{ 0x00: 0, 0x01: 1, 0x02: 2, 0x04: 4, 0x06: 8, 0x08: 16, 0x0A: 32, 0x0B: 48, 0x0C: 64, 0x0D: 96, 0x0E: 128, 0x0F: 0xFF, // - Fully associative } eax, ebx, ecx, edx := cpuid_low(0x80000006, 0) if brandId == INTEL { CacheLineSize := (ecx >> 0) & 0xFF L2Associativity := uint((ecx >> 12) & 0xF) CacheSize := (ecx >> 16) & 0xFFFF CacheDescriptors = append(CacheDescriptors, CacheDescriptor{2, 0, "Cache info from leaf 0x80000006 for Intel", int(CacheSize), int(associativityEncodings[L2Associativity]), int(CacheLineSize), -1, 0, }) } if brandId == AMD { L2DTlb2and4MAssoc := uint((eax >> 28) & 0xF) L2DTlb2and4MSize := (eax >> 16) & 0xFFF CacheDescriptors = append(CacheDescriptors, CacheDescriptor{2, DTLB, "DTLB 2M/4M", 2 * 1024, int(associativityEncodings[L2DTlb2and4MAssoc]), -1, int(L2DTlb2and4MSize), 0, }) L2ITlb2and4MAssoc := uint((eax >> 12) & 0xF) L2ITlb2and4MSize := (eax) & 0xFFF CacheDescriptors = append(CacheDescriptors, CacheDescriptor{2, TLB, "ITLB 2M/4M", 2 * 1024, int(associativityEncodings[L2ITlb2and4MAssoc]), -1, int(L2ITlb2and4MSize), 0, }) L2DTlb4KAssoc := uint((ebx >> 28) & 0xF) L2DTlb4KSize := (ebx >> 16) & 0xFFF CacheDescriptors = append(CacheDescriptors, CacheDescriptor{2, DTLB, "DTLB 4K", 4, int(associativityEncodings[L2DTlb4KAssoc]), -1, int(L2DTlb4KSize), 0, }) L2ITlb4KAssoc := uint((ebx >> 12) & 0xF) L2ITlb4KSize := (ebx) & 0xFFF CacheDescriptors = append(CacheDescriptors, CacheDescriptor{2, TLB, "ITLB 4K", 4, int(associativityEncodings[L2ITlb4KAssoc]), -1, int(L2ITlb4KSize), 0, }) L2Size := (ecx >> 16) & 0xFFFF L2Assoc := uint((ecx >> 12) & 0xF) L2LinesPerTag := (ecx >> 8) & 0xF L2LineSize := (ecx >> 0) & 0xFF CacheDescriptors = append(CacheDescriptors, CacheDescriptor{2, DATA_CACHE, "L2 Data cache", int(L2Size), int(associativityEncodings[L2Assoc]), int(L2LineSize), -1, int(L2LinesPerTag), }) L3Size := ((edx >> 18) & 0xF) * 512 L3Assoc := uint((edx >> 12) & 0xF) L3LinesPerTag := (edx >> 8) & 0xF L3LineSize := (edx >> 0) & 0xFF CacheDescriptors = append(CacheDescriptors, CacheDescriptor{3, DATA_CACHE, "L3 Data cache", int(L3Size), int(associativityEncodings[L3Assoc]), int(L3LineSize), -1, int(L3LinesPerTag), }) } } // AMD Encrypted Memory Capabilities // Details found in AMD64 Architecture Programmer’s Manual Volume 3, section E.4.17 func leaf0x8000001f() { if maxExtendedInputValue < 0x8000001f { return } if brandId != AMD { return } eax, ebx, ecx, edx := cpuid_low(0x8000001f, 0) // Parse EAX amdMemEncryptFeatureFlags = eax if HasAMDMemEncryptFeature(AMD_SME) || HasAMDMemEncryptFeature(AMD_SEV) { // Parse EBX AMDMemEncrypt.CBitPosition = ebx & 0x3F AMDMemEncrypt.PhysAddrReduction = (ebx >> 6) & 0x3F // Parse ECX AMDMemEncrypt.NumEncryptedGuests = ecx // Parse EDX AMDMemEncrypt.MinSevNoEsAsid = edx } } // TODO split fused descritops with bits in high key's byte like for 0x49 var leaf02Descriptors = map[int16]CacheDescriptor{ 0x01: {-1, TLB, "Instruction TLB", 4, 4, -1, 32, 0}, 0x02: {-1, TLB, "Instruction TLB", 4 * 1024, 0xFF, -1, 2, 0}, 0x03: {-1, TLB, "Data TLB", 4, 4, -1, 64, 0}, 0x04: {-1, TLB, "Data TLB", 4 * 1024, 4, -1, 8, 0}, 0x05: {-1, TLB, "Data TLB1", 4 * 1024, 4, -1, 32, 0}, 0x06: {1, INSTRUCTION_CACHE, "1st-level instruction cache", 8, 4, 32, -1, 0}, 0x08: {1, INSTRUCTION_CACHE, "1st-level instruction cache", 16, 4, 32, -1, 0}, 0x09: {1, INSTRUCTION_CACHE, "1st-level instruction cache", 32, 4, 64, -1, 0}, 0x0A: {1, DATA_CACHE, "1st-level data cache", 8, 2, 32, -1, 0}, 0x0B: {-1, TLB, "Instruction TLB", 4 * 1024, 4, -1, 4, 0}, 0x0C: {1, DATA_CACHE, "1st-level data cache", 16, 4, 32, -1, 0}, 0x0D: {1, DATA_CACHE, "1st-level data cache", 16, 4, 64, -1, 0}, 0x0E: {1, DATA_CACHE, "1st-level data cache", 24, 6, 64, -1, 0}, 0x1D: {2, DATA_CACHE, "2nd-level cache", 128, 2, 64, -1, 0}, 0x21: {2, DATA_CACHE, "2nd-level cache", 256, 8, 64, -1, 0}, 0x22: {3, DATA_CACHE, "3nd-level cache", 512, 4, 64, -1, 2}, 0x23: {3, DATA_CACHE, "3nd-level cache", 1 * 1024, 8, 64, -1, 2}, 0x24: {2, DATA_CACHE, "2nd-level cache", 1 * 1024, 16, 64, -1, 0}, 0x25: {3, DATA_CACHE, "3nd-level cache", 2 * 1024, 8, 64, -1, 2}, 0x29: {3, DATA_CACHE, "2nd-level cache", 4 * 1024, 8, 64, -1, 2}, 0x2C: {1, DATA_CACHE, "1st-level cache", 32, 8, 64, -1, 0}, 0x30: {1, INSTRUCTION_CACHE, "1st-level instruction cache", 32, 8, 64, -1, 0}, 0x40: {-1, DATA_CACHE, "No 2nd-level cache or, if processor contains a " + "valid 2nd-level cache, no 3rd-level cache", -1, -1, -1, -1, 0}, 0x41: {2, DATA_CACHE, "2nd-level cache", 128, 4, 32, -1, 0}, 0x42: {2, DATA_CACHE, "2nd-level cache", 256, 4, 32, -1, 0}, 0x43: {2, DATA_CACHE, "2nd-level cache", 512, 4, 32, -1, 0}, 0x44: {2, DATA_CACHE, "2nd-level cache", 1 * 1024, 4, 32, -1, 0}, 0x45: {2, DATA_CACHE, "2nd-level cache", 2 * 1024, 4, 32, -1, 0}, 0x46: {3, DATA_CACHE, "3nd-level cache", 4 * 1024, 4, 64, -1, 0}, 0x47: {3, DATA_CACHE, "3nd-level cache", 8 * 1024, 8, 64, -1, 0}, 0x48: {2, DATA_CACHE, "2nd-level cache", 3 * 1024, 12, 64, -1, 0}, 0x49: {2, DATA_CACHE, "2nd-level cache", 4 * 1024, 16, 64, -1, 0}, // (Intel Xeon processor MP, Family 0FH, Model 06H) (0x49 | (1 << 8)): {3, DATA_CACHE, "3nd-level cache", 4 * 1024, 16, 64, -1, 0}, 0x4A: {3, DATA_CACHE, "3nd-level cache", 6 * 1024, 12, 64, -1, 0}, 0x4B: {3, DATA_CACHE, "3nd-level cache", 8 * 1024, 16, 64, -1, 0}, 0x4C: {3, DATA_CACHE, "3nd-level cache", 12 * 1024, 12, 64, -1, 0}, 0x4D: {3, DATA_CACHE, "3nd-level cache", 16 * 1024, 16, 64, -1, 0}, 0x4E: {2, DATA_CACHE, "3nd-level cache", 6 * 1024, 24, 64, -1, 0}, 0x4F: {-1, TLB, "Instruction TLB", 4, -1, -1, 32, 0}, 0x50: {-1, TLB, "Instruction TLB: 4 KByte and 2-MByte or 4-MByte pages", 4, -1, -1, 64, 0}, 0x51: {-1, TLB, "Instruction TLB: 4 KByte and 2-MByte or 4-MByte pages", 4, -1, -1, 128, 0}, 0x52: {-1, TLB, "Instruction TLB: 4 KByte and 2-MByte or 4-MByte pages", 4, -1, -1, 256, 0}, 0x55: {-1, TLB, "Instruction TLB: 2-MByte or 4-MByte pages", 2 * 1024, 0xFF, -1, 7, 0}, 0x56: {-1, TLB, "Data TLB0", 4 * 1024, 4, -1, 16, 0}, 0x57: {-1, TLB, "Data TLB0", 4, 4, -1, 16, 0}, 0x59: {-1, TLB, "Data TLB0", 4, 0xFF, -1, 16, 0}, 0x5A: {-1, TLB, "Data TLB0 2-MByte or 4 MByte pages", 2 * 1024, 4, -1, 32, 0}, 0x5B: {-1, TLB, "Data TLB 4 KByte and 4 MByte pages", 4, -1, -1, 64, 0}, 0x5C: {-1, TLB, "Data TLB 4 KByte and 4 MByte pages", 4, -1, -1, 128, 0}, 0x5D: {-1, TLB, "Data TLB 4 KByte and 4 MByte pages", 4, -1, -1, 256, 0}, 0x60: {1, DATA_CACHE, "1st-level data cache", 16, 8, 64, -1, 0}, 0x61: {-1, TLB, "Instruction TLB", 4, 0xFF, -1, 48, 0}, 0x63: {-1, TLB, "Data TLB", 1 * 1024 * 1024, 4, -1, 4, 0}, 0x66: {1, DATA_CACHE, "1st-level data cache", 8, 4, 64, -1, 0}, 0x67: {1, DATA_CACHE, "1st-level data cache", 16, 4, 64, -1, 0}, 0x68: {1, DATA_CACHE, "1st-level data cache", 32, 4, 64, -1, 0}, 0x70: {1, INSTRUCTION_CACHE, "Trace cache (size in K of uop)", 12, 8, -1, -1, 0}, 0x71: {1, INSTRUCTION_CACHE, "Trace cache (size in K of uop)", 16, 8, -1, -1, 0}, 0x72: {1, INSTRUCTION_CACHE, "Trace cache (size in K of uop)", 32, 8, -1, -1, 0}, 0x76: {-1, TLB, "Instruction TLB: 2M/4M pages", 2 * 1024, 0xFF, -1, 8, 0}, 0x78: {2, DATA_CACHE, "2nd-level cache", 1 * 1024, 4, 64, -1, 0}, 0x79: {2, DATA_CACHE, "2nd-level cache", 128, 8, 64, -1, 2}, 0x7A: {2, DATA_CACHE, "2nd-level cache", 256, 8, 64, -1, 2}, 0x7B: {2, DATA_CACHE, "2nd-level cache", 512, 8, 64, -1, 2}, 0x7C: {2, DATA_CACHE, "2nd-level cache", 1 * 1024, 8, 64, -1, 2}, 0x7D: {2, DATA_CACHE, "2nd-level cache", 2 * 1024, 8, 64, -1, 0}, 0x7F: {2, DATA_CACHE, "2nd-level cache", 512, 2, 64, -1, 0}, 0x80: {2, DATA_CACHE, "2nd-level cache", 512, 8, 64, -1, 0}, 0x82: {2, DATA_CACHE, "2nd-level cache", 256, 8, 32, -1, 0}, 0x83: {2, DATA_CACHE, "2nd-level cache", 512, 8, 32, -1, 0}, 0x84: {2, DATA_CACHE, "2nd-level cache", 1 * 1024, 8, 32, -1, 0}, 0x85: {2, DATA_CACHE, "2nd-level cache", 2 * 1024, 8, 32, -1, 0}, 0x86: {2, DATA_CACHE, "2nd-level cache", 512, 4, 32, -1, 0}, 0x87: {2, DATA_CACHE, "2nd-level cache", 1 * 1024, 8, 64, -1, 0}, 0xA0: {-1, DTLB, "DTLB", 4, 0xFF, -1, 32, 0}, 0xB0: {-1, TLB, "Instruction TLB", 4, 4, -1, 128, 0}, 0xB1: {-1, TLB, "Instruction TLB 2M pages 4 way 8 entries or" + "4M pages 4-way, 4 entries", 2 * 1024, 4, -1, 8, 0}, 0xB2: {-1, TLB, "Instruction TLB", 4, 4, -1, 64, 0}, 0xB3: {-1, TLB, "Data TLB", 4, 4, -1, 128, 0}, 0xB4: {-1, TLB, "Data TLB1", 4, 4, -1, 256, 0}, 0xB5: {-1, TLB, "Instruction TLB", 4, 8, -1, 64, 0}, 0xB6: {-1, TLB, "Instruction TLB", 4, 8, -1, 128, 0}, 0xBA: {-1, TLB, "Data TLB1", 4, 4, -1, 64, 0}, 0xC0: {-1, TLB, "Data TLB: 4 KByte and 4 MByte pages", 4, 4, -1, 8, 0}, 0xC1: {-1, STLB, "Shared 2nd-Level TLB: 4Kbyte and 2Mbyte pages", 4, 8, -1, 1024, 0}, 0xC2: {-1, DTLB, "DTLB 4KByte/2 MByte pages", 4, 4, -1, 16, 0}, 0xC3: {-1, STLB, "Shared 2nd-Level TLB: " + "4 KByte /2 MByte pages, 6-way associative, 1536 entries." + "Also 1GBbyte pages, 4-way,16 entries.", 4, 6, -1, 1536, 0}, 0xCA: {-1, STLB, "Shared 2nd-Level TLB", 4, 4, -1, 512, 0}, 0xD0: {3, DATA_CACHE, "3nd-level cache", 512, 4, 64, -1, 0}, 0xD1: {3, DATA_CACHE, "3nd-level cache", 1 * 1024, 4, 64, -1, 0}, 0xD2: {3, DATA_CACHE, "3nd-level cache", 2 * 1024, 4, 64, -1, 0}, 0xD6: {3, DATA_CACHE, "3nd-level cache", 1 * 1024, 8, 64, -1, 0}, 0xD7: {3, DATA_CACHE, "3nd-level cache", 2 * 1024, 8, 64, -1, 0}, 0xD8: {3, DATA_CACHE, "3nd-level cache", 4 * 1024, 8, 64, -1, 0}, 0xDC: {3, DATA_CACHE, "3nd-level cache", 1 * 1536, 12, 64, -1, 0}, 0xDD: {3, DATA_CACHE, "3nd-level cache", 3 * 1024, 12, 64, -1, 0}, 0xDE: {3, DATA_CACHE, "3nd-level cache", 6 * 1024, 12, 64, -1, 0}, 0xE2: {3, DATA_CACHE, "3nd-level cache", 2 * 1024, 16, 64, -1, 0}, 0xE3: {3, DATA_CACHE, "3nd-level cache", 4 * 1024, 16, 64, -1, 0}, 0xE4: {3, DATA_CACHE, "3nd-level cache", 8 * 1024, 16, 64, -1, 0}, 0xEA: {3, DATA_CACHE, "3nd-level cache", 12 * 1024, 24, 64, -1, 0}, 0xEB: {3, DATA_CACHE, "3nd-level cache", 18 * 1024, 24, 64, -1, 0}, 0xEC: {3, DATA_CACHE, "3nd-level cache", 24 * 1024, 24, 64, -1, 0}, 0xF0: {-1, PREFETCH, "", 64, -1, -1, -1, 0}, 0xF1: {-1, PREFETCH, "", 128, -1, -1, -1, 0}, 0xFF: {-1, NULL, "CPUID leaf 2 does not report cache descriptor " + "information, use CPUID leaf 4 to query cache parameters", -1, -1, -1, -1, 0}, } func int32sToBytes(args ...uint32) []byte { var result []byte for _, arg := range args { result = append(result, byte((arg)&0xFF), byte((arg>>8)&0xFF), byte((arg>>16)&0xFF), byte((arg>>24)&0xFF)) } return result } ./github.com/canonical/cpuid/cpuidlow_amd64.s0000664000000000000000000000112400000000000016201 0ustar00// Copyright 2017 Intel Corporation. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. #include "textflag.h" // func cpuid_low(arg1, arg2 uint32) (eax, ebx, ecx, edx uint32) TEXT ·cpuid_low(SB), NOSPLIT, $0-24 MOVL arg1+0(FP), AX MOVL arg2+4(FP), CX CPUID MOVL AX, eax+8(FP) MOVL BX, ebx+12(FP) MOVL CX, ecx+16(FP) MOVL DX, edx+20(FP) RET // func xgetbv_low(arg1 uint32) (eax, edx uint32) TEXT ·xgetbv_low(SB), NOSPLIT, $0-16 MOVL arg1+0(FP), CX BYTE $0x0F BYTE $0x01 BYTE $0xD0 MOVL AX, eax+8(FP) MOVL DX, edx+12(FP) RET ./github.com/canonical/go-efilib/0000775000000000000000000000000000000000000013727 5ustar00./github.com/canonical/go-efilib/.gitignore0000664000000000000000000000004200000000000015713 0ustar00cmd/efi_devicepath/efi_devicepath ./github.com/canonical/go-efilib/LICENSE0000664000000000000000000002150100000000000014733 0ustar00All files in this repository are licensed as follows. If you contribute to this repository, it is assumed that you license your contribution under the same license unless you state otherwise. All files Copyright (C) 2020 Canonical Ltd. unless otherwise specified in the file. This software is licensed under the LGPLv3, included below. As a special exception to the GNU Lesser General Public License version 3 ("LGPL3"), the copyright holders of this Library give you permission to convey to a third party a Combined Work that links statically or dynamically to this Library without providing any Minimal Corresponding Source or Minimal Application Code as set out in 4d or providing the installation information set out in section 4e, provided that you comply with the other provisions of LGPL3 and provided that you meet, for the Application the terms and conditions of the license(s) which apply to the Application. Except as stated in this special exception, the provisions of LGPL3 will continue to comply in full to this Library. If you modify this Library, you may apply this exception to your version of this Library, but you are not obliged to do so. If you do not wish to do so, delete this exception statement from your version. This exception does not (and cannot) modify any license terms which apply to the Application, with which you must still comply. GNU LESSER GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. This version of the GNU Lesser General Public License incorporates the terms and conditions of version 3 of the GNU General Public License, supplemented by the additional permissions listed below. 0. Additional Definitions. As used herein, "this License" refers to version 3 of the GNU Lesser General Public License, and the "GNU GPL" refers to version 3 of the GNU General Public License. "The Library" refers to a covered work governed by this License, other than an Application or a Combined Work as defined below. An "Application" is any work that makes use of an interface provided by the Library, but which is not otherwise based on the Library. Defining a subclass of a class defined by the Library is deemed a mode of using an interface provided by the Library. A "Combined Work" is a work produced by combining or linking an Application with the Library. The particular version of the Library with which the Combined Work was made is also called the "Linked Version". The "Minimal Corresponding Source" for a Combined Work means the Corresponding Source for the Combined Work, excluding any source code for portions of the Combined Work that, considered in isolation, are based on the Application, and not on the Linked Version. The "Corresponding Application Code" for a Combined Work means the object code and/or source code for the Application, including any data and utility programs needed for reproducing the Combined Work from the Application, but excluding the System Libraries of the Combined Work. 1. Exception to Section 3 of the GNU GPL. You may convey a covered work under sections 3 and 4 of this License without being bound by section 3 of the GNU GPL. 2. Conveying Modified Versions. If you modify a copy of the Library, and, in your modifications, a facility refers to a function or data to be supplied by an Application that uses the facility (other than as an argument passed when the facility is invoked), then you may convey a copy of the modified version: a) under this License, provided that you make a good faith effort to ensure that, in the event an Application does not supply the function or data, the facility still operates, and performs whatever part of its purpose remains meaningful, or b) under the GNU GPL, with none of the additional permissions of this License applicable to that copy. 3. Object Code Incorporating Material from Library Header Files. The object code form of an Application may incorporate material from a header file that is part of the Library. You may convey such object code under terms of your choice, provided that, if the incorporated material is not limited to numerical parameters, data structure layouts and accessors, or small macros, inline functions and templates (ten or fewer lines in length), you do both of the following: a) Give prominent notice with each copy of the object code that the Library is used in it and that the Library and its use are covered by this License. b) Accompany the object code with a copy of the GNU GPL and this license document. 4. Combined Works. You may convey a Combined Work under terms of your choice that, taken together, effectively do not restrict modification of the portions of the Library contained in the Combined Work and reverse engineering for debugging such modifications, if you also do each of the following: a) Give prominent notice with each copy of the Combined Work that the Library is used in it and that the Library and its use are covered by this License. b) Accompany the Combined Work with a copy of the GNU GPL and this license document. c) For a Combined Work that displays copyright notices during execution, include the copyright notice for the Library among these notices, as well as a reference directing the user to the copies of the GNU GPL and this license document. d) Do one of the following: 0) Convey the Minimal Corresponding Source under the terms of this License, and the Corresponding Application Code in a form suitable for, and under terms that permit, the user to recombine or relink the Application with a modified version of the Linked Version to produce a modified Combined Work, in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source. 1) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (a) uses at run time a copy of the Library already present on the user's computer system, and (b) will operate properly with a modified version of the Library that is interface-compatible with the Linked Version. e) Provide Installation Information, but only if you would otherwise be required to provide such information under section 6 of the GNU GPL, and only to the extent that such information is necessary to install and execute a modified version of the Combined Work produced by recombining or relinking the Application with a modified version of the Linked Version. (If you use option 4d0, the Installation Information must accompany the Minimal Corresponding Source and Corresponding Application Code. If you use option 4d1, you must provide the Installation Information in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.) 5. Combined Libraries. You may place library facilities that are a work based on the Library side by side in a single library together with other library facilities that are not Applications and are not covered by this License, and convey such a combined library under terms of your choice, if you do both of the following: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities, conveyed under the terms of this License. b) Give prominent notice with the combined library that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 6. Revised Versions of the GNU Lesser General Public License. The Free Software Foundation may publish revised and/or new versions of the GNU Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library as you received it specifies that a certain numbered version of the GNU Lesser General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that published version or of any later version published by the Free Software Foundation. If the Library as you received it does not specify a version number of the GNU Lesser General Public License, you may choose any version of the GNU Lesser General Public License ever published by the Free Software Foundation. If the Library as you received it specifies that a proxy can decide whether future versions of the GNU Lesser General Public License shall apply, that proxy's public statement of acceptance of any version is permanent authorization for you to choose that version for the Library. ./github.com/canonical/go-efilib/authvars.go0000664000000000000000000003243000000000000016115 0ustar00// Copyright 2020 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package efi import ( "bytes" "crypto" _ "crypto/sha256" "crypto/x509" "encoding/binary" "errors" "fmt" "io" "time" "github.com/canonical/go-efilib/internal/ioerr" "github.com/canonical/go-efilib/internal/uefi" ) // VariableAuthentication corresponds to the EFI_VARIABLE_AUTHENTICATION // type and is used to authenticate updates to variables with the // EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS attribute set. type VariableAuthentication struct { MonotonicCount uint64 AuthInfo WinCertificateGUID } // ReadVariableAuthentication decodes an authentication header for updating // a variable with the EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS attribute set. func ReadVariableAuthentication(r io.Reader) (*VariableAuthentication, error) { desc, err := uefi.Read_EFI_VARIABLE_AUTHENTICATION(r) if err != nil { return nil, err } sig, err := newWinCertificateGUID(&desc.AuthInfo) if err != nil { return nil, err } return &VariableAuthentication{ MonotonicCount: desc.MonotonicCount, AuthInfo: sig}, nil } // VariableAuthentication2 corresponds to the EFI_VARIABLE_AUTHENTICATION_2 // type and is used to authenticate updates to variables with the // EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS attribute set. type VariableAuthentication2 struct { TimeStamp time.Time AuthInfo WinCertificateGUID } // ReadTimeBasedVariableAuthentication decodes an authentication header // for updating a variable with the EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS // attribute set. func ReadTimeBasedVariableAuthentication(r io.Reader) (*VariableAuthentication2, error) { desc, err := uefi.Read_EFI_VARIABLE_AUTHENTICATION_2(r) if err != nil { return nil, err } sig, err := newWinCertificateGUID(&desc.AuthInfo) if err != nil { return nil, err } return &VariableAuthentication2{ TimeStamp: desc.TimeStamp.GoTime(), AuthInfo: sig}, nil } // VariableAuthentication3Type describes the type of [VariableAuthentication3]. type VariableAuthentication3Type int const ( // VariableAuthentication3TimestampType indicates that a // VariableAuthentication3 is a timestamp based enhanced authentication // and is implemented by the *VariableAuthentication3Timestamp type. // It also indicates that the VariableAuthentication3Descriptor is // implemented by *VariableAuthentication3TimestampDescriptor. VariableAuthentication3TimestampType VariableAuthentication3Type = uefi.EFI_VARIABLE_AUTHENTICATION_3_TIMESTAMP_TYPE // VariableAuthentication3iNonceType indicates that a // VariableAuthentication3 is a nonce based enhanced authentication // and is implemented by the *VariableAuthentication3Nonce type. // It also indicates that the VariableAuthentication3Descriptor is // implemented by *VariableAuthentication3NonceDescriptor. VariableAuthentication3NonceType VariableAuthentication3Type = uefi.EFI_VARIABLE_AUTHENTICATION_3_NONCE_TYPE ) // VariableAuthentication3 is used to authenticate updates to variables // with the EFI_VARIABLE_ENHANCED_AUTHENTICATED_ACCESS attribute set. type VariableAuthentication3 interface { Type() VariableAuthentication3Type // The authentication type (timestamp or nonce) NewCert() WinCertificateGUID // Optional new certificate in order to rotate the signing key for authenticated writes. SigningCert() WinCertificateGUID // The certificate associated with the current signing key. } type variableAuthentication3 struct { newCert WinCertificateGUID signingCert WinCertificateGUID } func (a *variableAuthentication3) NewCert() WinCertificateGUID { return a.newCert } func (a *variableAuthentication3) SigningCert() WinCertificateGUID { return a.signingCert } // VariableAuthentication3Timestamp is used to authenticate updates to // variables with the EFI_VARIABLE_ENHANCED_AUTHENTICATED_ACCESS attribute // set, and a type of EFI_VARIABLE_AUTHENTICATION_3_TIMESTAMP_TYPE. type VariableAuthentication3Timestamp struct { Timestamp time.Time variableAuthentication3 } // Type implements [VariableAuthentication3.Type]. func (a *VariableAuthentication3Timestamp) Type() VariableAuthentication3Type { return VariableAuthentication3TimestampType } // VariableAuthentication3Nonce is used to authenticate updates to // variables with the EFI_VARIABLE_ENHANCED_AUTHENTICATED_ACCESS attribute // set, and a type of EFI_VARIABLE_AUTHENTICATION_3_NONCE_TYPE. type VariableAuthentication3Nonce struct { Nonce []byte variableAuthentication3 } // Type implements [VariableAuthentication3.Type]. func (a *VariableAuthentication3Nonce) Type() VariableAuthentication3Type { return VariableAuthentication3NonceType } // ReadEnhancedVariableAuthentication decodes the authentication header for // updating variables with the EFI_VARIABLE_ENHANCED_AUTHENTICATED_ACCESS // attribute set. func ReadEnhancedVariableAuthentication(r io.Reader) (VariableAuthentication3, error) { var hdr uefi.EFI_VARIABLE_AUTHENTICATION_3 if err := binary.Read(r, binary.LittleEndian, &hdr); err != nil { return nil, err } if hdr.Version != 1 { return nil, errors.New("unexpected version") } lr := io.LimitReader(r, int64(hdr.MetadataSize)-int64(binary.Size(hdr))) switch hdr.Type { case uefi.EFI_VARIABLE_AUTHENTICATION_3_TIMESTAMP_TYPE: var t uefi.EFI_TIME if err := binary.Read(lr, binary.LittleEndian, &t); err != nil { return nil, ioerr.EOFIsUnexpected("cannot read timestamp authentication: %w", err) } var newCert *uefi.WIN_CERTIFICATE_UEFI_GUID if hdr.Flags&1 > 0 { cert, err := uefi.Read_WIN_CERTIFICATE_UEFI_GUID(r) if err != nil { return nil, ioerr.EOFIsUnexpected("cannot read timestamp authentication: %w", err) } newCert = cert } signingCert, err := uefi.Read_WIN_CERTIFICATE_UEFI_GUID(r) if err != nil { return nil, ioerr.EOFIsUnexpected("cannot read timestamp authentication: %w", err) } sig, err := newWinCertificateGUID(signingCert) if err != nil { return nil, fmt.Errorf("cannot decode signature: %w", err) } out := &VariableAuthentication3Timestamp{ Timestamp: t.GoTime(), variableAuthentication3: variableAuthentication3{signingCert: sig}} if newCert != nil { sig, err := newWinCertificateGUID(newCert) if err != nil { return nil, fmt.Errorf("cannot decode new authority signature: %w", err) } out.newCert = sig } return out, nil case uefi.EFI_VARIABLE_AUTHENTICATION_3_NONCE_TYPE: n, err := uefi.Read_EFI_VARIABLE_AUTHENTICATION_3_NONCE(r) if err != nil { return nil, ioerr.EOFIsUnexpected("cannot read nonce authentication: %w", err) } var newCert *uefi.WIN_CERTIFICATE_UEFI_GUID if hdr.Flags&1 > 0 { cert, err := uefi.Read_WIN_CERTIFICATE_UEFI_GUID(r) if err != nil { return nil, ioerr.EOFIsUnexpected("cannot read nonce authentication: %w", err) } newCert = cert } signingCert, err := uefi.Read_WIN_CERTIFICATE_UEFI_GUID(r) if err != nil { return nil, ioerr.EOFIsUnexpected("cannot read nonce authentication: %w", err) } sig, err := newWinCertificateGUID(signingCert) if err != nil { return nil, fmt.Errorf("cannot decode signature: %w", err) } out := &VariableAuthentication3Nonce{ Nonce: n.Nonce, variableAuthentication3: variableAuthentication3{signingCert: sig}} if newCert != nil { sig, err := newWinCertificateGUID(newCert) if err != nil { return nil, fmt.Errorf("cannot decode new authority signature: %w", err) } out.newCert = sig } return out, nil default: return nil, errors.New("unexpected type") } } // VariableAuthentication3CertIdType describes the format of the // certificate ID. type VariableAuthentication3CertIdType uint8 const ( // VariableAuthentication3CertIdSHA256Type indicates that a VariableAuthentication3CertIdSHA256Type VariableAuthentication3CertIdType = uefi.EFI_VARIABLE_AUTHENTICATION_3_CERT_ID_SHA256 ) // VariableAuthentication3CertId corresponds to the EFI_VARIABLE_AUTHENTICATION_3_CERT_ID // type and represents the identification of an authority certificate // associated with a variable that has the EFI_VARIABLE_ENHANCED_AUTHENTICATED_ACCESS // attribute set. type VariableAuthentication3CertId interface { // Type describes the format of this certificate ID. Type() VariableAuthentication3CertIdType // Matches determines whether the specified certificate matches this ID. Matches(cert *x509.Certificate) bool } // VariableAuthentication3Descriptor corresponds to the authentication // descriptor provided when reading the payload of a variable with the // EFI_VARIABLE_ENHANCED_AUTHENTICATED_ACCESS attribute set. type VariableAuthentication3Descriptor interface { Type() VariableAuthentication3Type // The authentication type (timestamp or nonce). Id() VariableAuthentication3CertId // The ID of the authority associated with the variable. } // VariableAuthentication3CertIdSHA256 corresponds to a EFI_VARIABLE_AUTHENTICATION_3_CERT_ID // with a type of EFI_VARIABLE_AUTHENTICATION_3_CERT_ID_SHA256 and is the // SHA-256 digest of the TBS content of a X.509 certificate. type VariableAuthentication3CertIdSHA256 [32]byte // Type implements [VariableAuthentication3CertId.Type]. func (VariableAuthentication3CertIdSHA256) Type() VariableAuthentication3CertIdType { return VariableAuthentication3CertIdSHA256Type } // Matches implements [VariableAuthentication3CertId.Matches]. func (i VariableAuthentication3CertIdSHA256) Matches(cert *x509.Certificate) bool { h := crypto.SHA256.New() h.Write(cert.RawTBSCertificate) return bytes.Equal(h.Sum(nil), i[:]) } func newVariableAuthentication3CertId(id *uefi.EFI_VARIABLE_AUTHENTICATION_3_CERT_ID) (VariableAuthentication3CertId, error) { switch id.Type { case uefi.EFI_VARIABLE_AUTHENTICATION_3_CERT_ID_SHA256: if len(id.Id) != 32 { return nil, errors.New("invalid SHA256 length") } var out VariableAuthentication3CertIdSHA256 copy(out[:], id.Id) return out, nil default: return nil, fmt.Errorf("unrecognized type: %d", id.Type) } } // VariableAuthentication3TimestampDescriptor corresponds to the authentication // descriptor provided when reading the payload of a variable with the // EFI_VARIABLE_ENHANCED_AUTHENTICATED_ACCESS attribute set, and a type of // EFI_VARIABLE_AUTHENTICATION_3_TIMESTAMP_TYPE. type VariableAuthentication3TimestampDescriptor struct { TimeStamp time.Time id VariableAuthentication3CertId } // Type implements [VariableAuthentication3Descriptor.Type]. func (d *VariableAuthentication3TimestampDescriptor) Type() VariableAuthentication3Type { return VariableAuthentication3TimestampType } // Id implements [VariableAuthentication3Descriptor.Id]. func (d *VariableAuthentication3TimestampDescriptor) Id() VariableAuthentication3CertId { return d.id } // VariableAuthentication3NonceDescriptor corresponds to the authentication // descriptor provided when reading the payload of a variable with the // EFI_VARIABLE_ENHANCED_AUTHENTICATED_ACCESS attribute set, and a type of // EFI_VARIABLE_AUTHENTICATION_3_NONCE_TYPE. type VariableAuthentication3NonceDescriptor struct { Nonce []byte id VariableAuthentication3CertId } // Type implements [VariableAuthentication3Descriptor.Type]. func (d *VariableAuthentication3NonceDescriptor) Type() VariableAuthentication3Type { return VariableAuthentication3NonceType } // Id implements [VariableAuthentication3Descriptor.Id]. func (d *VariableAuthentication3NonceDescriptor) Id() VariableAuthentication3CertId { return d.id } // ReadEnhancedAuthenticationDescriptor decodes the enhanced authentication // descriptor from the supplied reader. The supplied reader will typically // read from the payload area of a variable with the // EFI_VARIABLE_ENHANCED_AUTHENTICATION_ACCESS attribute set. func ReadEnhancedAuthenticationDescriptor(r io.Reader) (VariableAuthentication3Descriptor, error) { var hdr uefi.EFI_VARIABLE_AUTHENTICATION_3 if err := binary.Read(r, binary.LittleEndian, &hdr); err != nil { return nil, err } if hdr.Version != 1 { return nil, errors.New("unexpected version") } lr := io.LimitReader(r, int64(hdr.MetadataSize)-int64(binary.Size(hdr))) switch hdr.Type { case uefi.EFI_VARIABLE_AUTHENTICATION_3_TIMESTAMP_TYPE: var t uefi.EFI_TIME if err := binary.Read(lr, binary.LittleEndian, &t); err != nil { return nil, ioerr.EOFIsUnexpected("cannot read timestamp descriptor: %w", err) } id, err := uefi.Read_EFI_VARIABLE_AUTHENTICATION_3_CERT_ID(r) if err != nil { return nil, ioerr.EOFIsUnexpected("cannot read timestamp descriptor: %w", err) } id2, err := newVariableAuthentication3CertId(id) if err != nil { return nil, fmt.Errorf("invalid timestamp descriptor ID: %w", err) } return &VariableAuthentication3TimestampDescriptor{ TimeStamp: t.GoTime(), id: id2}, nil case uefi.EFI_VARIABLE_AUTHENTICATION_3_NONCE_TYPE: n, err := uefi.Read_EFI_VARIABLE_AUTHENTICATION_3_NONCE(r) if err != nil { return nil, ioerr.EOFIsUnexpected("cannot read nonce descriptor: %w", err) } id, err := uefi.Read_EFI_VARIABLE_AUTHENTICATION_3_CERT_ID(r) if err != nil { return nil, ioerr.EOFIsUnexpected("cannot read nonce descriptor: %w", err) } id2, err := newVariableAuthentication3CertId(id) if err != nil { return nil, fmt.Errorf("invalid nonce descriptor ID: %w", err) } return &VariableAuthentication3NonceDescriptor{ Nonce: n.Nonce, id: id2}, nil default: return nil, errors.New("unexpected type") } } ./github.com/canonical/go-efilib/boot.go0000664000000000000000000003736000000000000015232 0ustar00// Copyright 2024 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package efi import ( "bytes" "context" "encoding/binary" "errors" "fmt" "math" "sort" "strconv" "github.com/canonical/go-efilib/internal/uefi" ) // LoadOptionClass describes a class of load option type LoadOptionClass string const ( // LoadOptionClassDriver corresponds to drivers that are processed before // normal boot options and before the initial ready to boot signal. LoadOptionClassDriver LoadOptionClass = "Driver" // LadOptionClassSysPrep corresponds to system preparation applications that // are processed before normal boot options and before the initial // ready to boot signal. LoadOptionClassSysPrep LoadOptionClass = "SysPrep" // LoadOptionClassBoot corresponds to normal boot applications. LoadOptionClassBoot LoadOptionClass = "Boot" // LoadOptionClassPlatformRecovery corresponds to platform supplied recovery // applications. LoadOptionClassPlatformRecovery LoadOptionClass = "PlatformRecovery" ) // OSIndications provides a way for the firmware to advertise features to the OS // and a way to request the firmware perform a specific action on the next boot. type OSIndications uint64 const ( OSIndicationBootToFWUI = uefi.EFI_OS_INDICATIONS_BOOT_TO_FW_UI OSIndicationTimestampRevocation = uefi.EFI_OS_INDICATIONS_TIMESTAMP_REVOCATION OSIndicationFileCapsuleDeliverySupported = uefi.EFI_OS_INDICATIONS_FILE_CAPSULE_DELIVERY_SUPPORTED OSIndicationFMPCapsuleSupported = uefi.EFI_OS_INDICATIONS_FMP_CAPSULE_SUPPORTED OSIndicationCapsuleResultVarSupported = uefi.EFI_OS_INDICATIONS_CAPSULE_RESULT_VAR_SUPPORTED OSIndicationStartOSRecovery = uefi.EFI_OS_INDICATIONS_START_OS_RECOVERY OSIndicationStartPlatformRecovery = uefi.EFI_OS_INDICATIONS_START_PLATFORM_RECOVERY OSIndicationJSONConfigDataRefresh = uefi.EFI_OS_INDICATIONS_JSON_CONFIG_DATA_REFRESH ) // BootOptionSupport provides a way for the firmware to indicate certain boot // options that are supported. type BootOptionSupport uint32 const ( BootOptionSupportKey = uefi.EFI_BOOT_OPTION_SUPPORT_KEY BootOptionSupportApp = uefi.EFI_BOOT_OPTION_SUPPORT_APP BootOptionSupportSysPrep = uefi.EFI_BOOT_OPTION_SUPPORT_SYSPREP BootOptionSupportCount = uefi.EFI_BOOT_OPTION_SUPPORT_COUNT ) // KeyCount returns the supported number of key presses (up to 3). func (s BootOptionSupport) KeyCount() uint8 { return uint8((s & BootOptionSupportCount) >> 8) } // ReadOSIndicationsSupportedVariable returns the value of the OSIndicationsSupported // variable in the global namespace. In general [DefaultVarContext] should be supplied // to this. func ReadOSIndicationsSupportedVariable(ctx context.Context) (OSIndications, error) { data, _, err := ReadVariable(ctx, "OsIndicationsSupported", GlobalVariable) if err != nil { return 0, err } if len(data) != 8 { return 0, fmt.Errorf("variable contents has an unexpected size (%d bytes)", len(data)) } return OSIndications(binary.LittleEndian.Uint64(data)), nil } // WriteOSIndicationsVariable writes the supplied value to the OsIndications // global variable in order to send commands to the firmware for the next // boot. In general [DefaultVarContext] should be supplied to this. func WriteOSIndicationsVariable(ctx context.Context, value OSIndications) error { if value&^(OSIndicationBootToFWUI|OSIndicationFileCapsuleDeliverySupported|OSIndicationStartOSRecovery|OSIndicationStartPlatformRecovery|OSIndicationJSONConfigDataRefresh) > 0 { return errors.New("supplied value contains bits set that have no function") } var data [8]byte binary.LittleEndian.PutUint64(data[:], uint64(value)) return WriteVariable(ctx, "OsIndications", GlobalVariable, AttributeNonVolatile|AttributeBootserviceAccess|AttributeRuntimeAccess, data[:]) } // ReadBootOptionSupportVariable returns the value of the BootOptionSupport // variable in the global namespace. In general [DefaultVarContext] should be supplied // to this. func ReadBootOptionSupportVariable(ctx context.Context) (BootOptionSupport, error) { data, _, err := ReadVariable(ctx, "BootOptionSupport", GlobalVariable) if err != nil { return 0, err } if len(data) != 4 { return 0, fmt.Errorf("variable contents has an unexpected size (%d bytes)", len(data)) } return BootOptionSupport(binary.LittleEndian.Uint32(data)), nil } // FormatLoadOptionVariableName returns a variable name for the specified load option // class and load option number. func FormatLoadOptionVariableName(class LoadOptionClass, n uint16) string { return fmt.Sprintf("%s%04X", class, n) } // ScanLoadOptionVariableName returns the load option class and load option number // from the specified variable name. This will return an error if the supplied // name is too short, contains an unrecognized load option class or an invalid // load option number. func ScanLoadOptionVariableName(name string) (LoadOptionClass, uint16, error) { // The variable name contains a uint16 base-16 number. if len(name) < 4 { return "", 0, errors.New("name too short") } // Obtain the load option class. class := LoadOptionClass(name[:len(name)-4]) switch class { case LoadOptionClassDriver, LoadOptionClassSysPrep, LoadOptionClassBoot, LoadOptionClassPlatformRecovery: // ok default: return "", 0, fmt.Errorf("invalid class %q", class) } // Obtain the load option number. ns := name[len(name)-4:] // The load option number is in base-16 format. A-F are // always upper case. for _, c := range ns { switch { case c >= '0' && c <= '9': // ok case c >= 'A' && c <= 'F': // ok default: return "", 0, fmt.Errorf("invalid number %q", ns) } } // Extract the number. This shouldn't fail now. n, err := strconv.ParseUint(ns, 16, 16) if err != nil { return "", 0, fmt.Errorf("cannot parse number: %w", err) } return class, uint16(n), nil } // ReadLoadOrderVariable returns the load option order for the specified class, // which must be one of LoadOptionClassDriver, LoadOptionClassSysPrep, or // LoadOptionClassBoot. In general [DefaultVarContext] should be supplied // to this. func ReadLoadOrderVariable(ctx context.Context, class LoadOptionClass) ([]uint16, error) { switch class { case LoadOptionClassDriver, LoadOptionClassSysPrep, LoadOptionClassBoot: // ok default: return nil, fmt.Errorf("invalid class %q: only suitable for Driver, SysPrep or Boot", class) } data, _, err := ReadVariable(ctx, string(class)+"Order", GlobalVariable) if err != nil { return nil, err } r := bytes.NewReader(data) if r.Size()&0x1 > 0 { return nil, fmt.Errorf("%sOrder variable contents has odd size (%d bytes)", class, r.Size()) } out := make([]uint16, r.Size()>>1) if err := binary.Read(r, binary.LittleEndian, &out); err != nil { return nil, err } return out, nil } // WriteLoadOrderVariable writes the load option order for the specified class, // which must be one of LoadOptionClassDriver, LoadOptionClassSysprep, or // LoadOptionClassBoot. In general [DefaultVarContext] should be supplied // to this. // // This will check that each entry corresponds to a valid load option before // writing the new order. func WriteLoadOrderVariable(ctx context.Context, class LoadOptionClass, order []uint16) error { switch class { case LoadOptionClassDriver, LoadOptionClassSysPrep, LoadOptionClassBoot: // ok default: return fmt.Errorf("invalid class %q: only suitable for Driver, SysPrep or Boot", class) } // Check each load option for _, n := range order { if _, err := ReadLoadOptionVariable(ctx, class, n); err != nil { return fmt.Errorf("invalid load option %d: %w", n, err) } } var buf bytes.Buffer if err := binary.Write(&buf, binary.LittleEndian, order); err != nil { return err } return WriteVariable(ctx, string(class)+"Order", GlobalVariable, AttributeNonVolatile|AttributeBootserviceAccess|AttributeRuntimeAccess, buf.Bytes()) } // ReadLoadOptionVariable returns the LoadOption for the specified class and option number. // The variable is read from the global namespace. In general [DefaultVarContext] should be // supplied to this. func ReadLoadOptionVariable(ctx context.Context, class LoadOptionClass, n uint16) (*LoadOption, error) { switch class { case LoadOptionClassDriver, LoadOptionClassSysPrep, LoadOptionClassBoot, LoadOptionClassPlatformRecovery: // ok default: return nil, fmt.Errorf("invalid class %q: only suitable for Driver, SysPrep, Boot, or PlatformRecovery", class) } data, _, err := ReadVariable(ctx, FormatLoadOptionVariableName(class, n), GlobalVariable) if err != nil { return nil, err } r := bytes.NewReader(data) option, err := ReadLoadOption(r) if err != nil { return nil, fmt.Errorf("cannot decode LoadOption: %w", err) } return option, nil } // WriteLoadOptionVariable writes the supplied LoadOption to a variable for the specified // class and option number. The variable is written to the global namespace. This will // overwrite any variable that already exists. The class must be one of LoadOptionClassDriver, // LoadOptionClassSysprep, or LoadOptionClassBoot. In general [DefaultVarContext] should be // supplied to this. func WriteLoadOptionVariable(ctx context.Context, class LoadOptionClass, n uint16, option *LoadOption) error { switch class { case LoadOptionClassDriver, LoadOptionClassSysPrep, LoadOptionClassBoot: // ok default: return fmt.Errorf("invalid class %q: only suitable for Driver, SysPrep or Boot", class) } var buf bytes.Buffer if err := option.Write(&buf); err != nil { return fmt.Errorf("cannot serialize load option: %w", err) } return WriteVariable(ctx, FormatLoadOptionVariableName(class, n), GlobalVariable, AttributeNonVolatile|AttributeBootserviceAccess|AttributeRuntimeAccess, buf.Bytes()) } // DeleteLoadOptionVariable deletes the load option variable for the specified // class and option number. The variable is written to the global namespace. This will // succeed even if the variable doesn't already exist. The class must be one of // LoadOptionClassDriver, LoadOptionClassSysprep, or LoadOptionClassBoot. In general // [DefaultVarContext] should be supplied to this. func DeleteLoadOptionVariable(ctx context.Context, class LoadOptionClass, n uint16) error { switch class { case LoadOptionClassDriver, LoadOptionClassSysPrep, LoadOptionClassBoot: // ok default: return fmt.Errorf("invalid class %q: only suitable for Driver, SysPrep or Boot", class) } return WriteVariable(ctx, FormatLoadOptionVariableName(class, n), GlobalVariable, AttributeNonVolatile|AttributeBootserviceAccess|AttributeRuntimeAccess, nil) } // ListLoadOptionNumbers lists the numbers of all of the load option variables // for the specified class from the global namespace. The returned numbers will be // sorted in ascending order. In general [DefaultVarContext] should be supplied to // this. func ListLoadOptionNumbers(ctx context.Context, class LoadOptionClass) ([]uint16, error) { names, err := ListVariables(ctx) if err != nil { return nil, err } var out []uint16 for _, name := range names { if name.GUID != GlobalVariable { continue } c, n, err := ScanLoadOptionVariableName(name.Name) if err != nil { continue } if c != class { continue } out = append(out, n) } sort.Slice(out, func(i, j int) bool { return out[i] < out[j] }) return out, nil } // NextAvailableLoadOptionNumber returns the next available load option number for // the specified class, which must be one of LoadOptionClassDriver, // LoadOptionClassSysprep, or LoadOptionClassBoot. In general [DefaultVarContext] // should be supplied to this. func NextAvailableLoadOptionNumber(ctx context.Context, class LoadOptionClass) (uint16, error) { switch class { case LoadOptionClassDriver, LoadOptionClassSysPrep, LoadOptionClassBoot: // ok default: return 0, fmt.Errorf("invalid class %q: only suitable for Driver, SysPrep or Boot", class) } used, err := ListLoadOptionNumbers(ctx, class) if err != nil { return 0, err } if len(used) > math.MaxUint16 { return 0, errors.New("no load option number available") } for i, n := range used { if uint16(i) != n { return uint16(i), nil } } return uint16(len(used)), nil } // ReadBootNextVariable returns the option number of the boot entry to try next. // In general [DefaultVarContext] should be supplied to this. func ReadBootNextVariable(ctx context.Context) (uint16, error) { data, _, err := ReadVariable(ctx, "BootNext", GlobalVariable) if err != nil { return 0, err } if len(data) != 2 { return 0, fmt.Errorf("BootNext variable contents has the wrong size (%d bytes)", len(data)) } return binary.LittleEndian.Uint16(data), nil } // WriteBootNextVariable writes the option number of the boot entry to try next. // In general [DefaultVarContext] should be supplied to this. func WriteBootNextVariable(ctx context.Context, n uint16) error { if _, err := ReadLoadOptionVariable(ctx, LoadOptionClassBoot, n); err != nil { return fmt.Errorf("invalid load option %d: %w", n, err) } var data [2]byte binary.LittleEndian.PutUint16(data[:], n) return WriteVariable(ctx, "BootNext", GlobalVariable, AttributeNonVolatile|AttributeBootserviceAccess|AttributeRuntimeAccess, data[:]) } // DeleteBootNextVariable deletes the option number of the boot entry to try next. // In general [DefaultVarContext] should be supplied to this. func DeleteBootNextVariable(ctx context.Context) error { return WriteVariable(ctx, "BootNext", GlobalVariable, AttributeNonVolatile|AttributeBootserviceAccess|AttributeRuntimeAccess, nil) } // ReadBootNextLoadOptionVariable returns the LoadOption for the boot entry to try next. // In general [DefaultVarContext] should be supplied to this. func ReadBootNextLoadOptionVariable(ctx context.Context) (*LoadOption, error) { n, err := ReadBootNextVariable(ctx) if err != nil { return nil, err } return ReadLoadOptionVariable(ctx, LoadOptionClassBoot, n) } // ReadBootCurrentVariable returns the option number used for the current boot. // In general [DefaultVarContext] should be supplied to this. func ReadBootCurrentVariable(ctx context.Context) (uint16, error) { data, _, err := ReadVariable(ctx, "BootCurrent", GlobalVariable) if err != nil { return 0, err } if len(data) != 2 { return 0, fmt.Errorf("BootCurrent variable contents has the wrong size (%d bytes)", len(data)) } return binary.LittleEndian.Uint16(data), nil } // ReadOrderedLoadOptionVariables returns a list of LoadOptions in the order in which // they will be tried by the boot manager for the specified class. The variables are all // read from the global namespace. Where class is LoadOptionClassDriver, LoadOptionClassSysPrep, // or LoadOptionClassBoot, this will use the corresponding *Order variable. It will skip entries // for which there isn't a corresponding variable. Where class is LoadOptionClassPlatformRecovery, // the order is determined by the variable names. // In general [DefaultVarContext] should be supplied to this. func ReadOrderedLoadOptionVariables(ctx context.Context, class LoadOptionClass) ([]*LoadOption, error) { var optNumbers []uint16 switch class { case LoadOptionClassDriver, LoadOptionClassSysPrep, LoadOptionClassBoot: var err error optNumbers, err = ReadLoadOrderVariable(ctx, class) if err != nil { return nil, fmt.Errorf("cannot obtain order: %w", err) } case LoadOptionClassPlatformRecovery: var err error optNumbers, err = ListLoadOptionNumbers(ctx, LoadOptionClassPlatformRecovery) if err != nil { return nil, fmt.Errorf("cannot obtain load option numbers: %w", err) } } var opts []*LoadOption for _, n := range optNumbers { opt, err := ReadLoadOptionVariable(ctx, class, n) switch { case errors.Is(err, ErrVarNotExist): // skip and ignore missing number case err != nil: // handle all other errors return nil, fmt.Errorf("cannot read load option %d: %w", n, err) default: opts = append(opts, opt) } } return opts, nil } ./github.com/canonical/go-efilib/db.go0000664000000000000000000001120100000000000014636 0ustar00// Copyright 2020 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package efi import ( "bytes" "crypto" _ "crypto/sha256" "crypto/x509" "encoding/binary" "fmt" "io" "strings" "github.com/canonical/go-efilib/internal/uefi" ) // SignatureData corresponds to the EFI_SIGNATURE_DATA type. type SignatureData struct { Owner GUID Data []byte } func (d *SignatureData) toUefiType() *uefi.EFI_SIGNATURE_DATA { return &uefi.EFI_SIGNATURE_DATA{ SignatureOwner: uefi.EFI_GUID(d.Owner), SignatureData: d.Data} } // Write serializes this signature data to w. func (d *SignatureData) Write(w io.Writer) error { return d.toUefiType().Write(w) } // Equal determines whether other is equal to this SignatureData func (d *SignatureData) Equal(other *SignatureData) bool { if d.Owner != other.Owner { return false } return bytes.Equal(d.Data, other.Data) } // SignatureList corresponds to the EFI_SIGNATURE_LIST type. type SignatureList struct { Type GUID Header []byte Signatures []*SignatureData } func (l *SignatureList) toUefiType() (out *uefi.EFI_SIGNATURE_LIST, err error) { out = &uefi.EFI_SIGNATURE_LIST{ SignatureType: uefi.EFI_GUID(l.Type), SignatureHeaderSize: uint32(len(l.Header)), SignatureHeader: l.Header} for i, s := range l.Signatures { sig := s.toUefiType() sz := uint32(binary.Size(sig.SignatureOwner) + len(sig.SignatureData)) if i == 0 { out.SignatureSize = sz } if sz != out.SignatureSize { // EFI_SIGNATURE_LIST cannot contain EFI_SIGNATURE_DATA entries with different // sizes - they must go in their own list. return nil, fmt.Errorf("signature %d contains the wrong size", i) } out.Signatures = append(out.Signatures, *sig) } out.SignatureListSize = uefi.ESLHeaderSize + out.SignatureHeaderSize + (out.SignatureSize * uint32(len(out.Signatures))) return out, nil } func (l *SignatureList) String() string { var b strings.Builder fmt.Fprintf(&b, `EFI_SIGNATURE_LIST { SignatureType: %v, SignatureHeader: %x, Signatures: [`, l.Type, l.Header) for _, d := range l.Signatures { fmt.Fprintf(&b, ` EFI_SIGNATURE_DATA { SignatureOwner: %v, Details: {`, d.Owner) switch l.Type { case CertSHA1Guid, CertSHA256Guid, CertSHA224Guid, CertSHA384Guid, CertSHA512Guid: fmt.Fprintf(&b, " Hash: %x },", d.Data) case CertX509Guid: cert, err := x509.ParseCertificate(d.Data) switch { case err != nil: fmt.Fprintf(&b, " Cannot parse certificate: %v },", err) default: h := crypto.SHA256.New() h.Write(cert.Raw) fmt.Fprintf(&b, ` Subject: %v Issuer: %v SHA256 fingerprint: %x },`, cert.Subject, cert.Issuer, h.Sum(nil)) } default: b.WriteString(" ") } b.WriteString("\n\t\t},") } b.WriteString("\n\t],\n}") return b.String() } // Write serializes this signature list to w. func (l *SignatureList) Write(w io.Writer) error { list, err := l.toUefiType() if err != nil { return err } return list.Write(w) } // ReadSignatureList decodes a single EFI_SIGNATURE_LIST from r. func ReadSignatureList(r io.Reader) (*SignatureList, error) { l, err := uefi.Read_EFI_SIGNATURE_LIST(r) if err != nil { return nil, err } list := &SignatureList{Type: GUID(l.SignatureType), Header: l.SignatureHeader} for _, s := range l.Signatures { list.Signatures = append(list.Signatures, &SignatureData{Owner: GUID(s.SignatureOwner), Data: s.SignatureData}) } return list, nil } // SignatureDatabase corresponds to a list of EFI_SIGNATURE_LIST structures. type SignatureDatabase []*SignatureList func (db SignatureDatabase) String() string { var b strings.Builder b.WriteString("{") for _, l := range db { fmt.Fprintf(&b, "\n\t%s,", indent(l, 1)) } b.WriteString("\n}") return b.String() } // Bytes returns the serialized form of this signature database. func (db SignatureDatabase) Bytes() ([]byte, error) { var buf bytes.Buffer if err := db.Write(&buf); err != nil { return nil, err } return buf.Bytes(), nil } // Write serializes this signature database to w. func (db SignatureDatabase) Write(w io.Writer) error { for i, l := range db { if err := l.Write(w); err != nil { return fmt.Errorf("cannot encode signature list %d: %w", i, err) } } return nil } // ReadSignatureDatabase decodes a list of EFI_SIGNATURE_LIST structures from r. func ReadSignatureDatabase(r io.Reader) (SignatureDatabase, error) { var db SignatureDatabase for i := 0; ; i++ { l, err := ReadSignatureList(r) if err != nil { if err == io.EOF { break } return nil, fmt.Errorf("cannot read EFI_SIGNATURE_LIST %d: %w", i, err) } db = append(db, l) } return db, nil } ./github.com/canonical/go-efilib/devicepath.go0000664000000000000000000025532700000000000016410 0ustar00// Copyright 2020 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package efi import ( "bufio" "bytes" "encoding/binary" "errors" "fmt" "io" "math" "os" "path/filepath" "strconv" "strings" "sync" "unsafe" "github.com/canonical/go-efilib/internal/ioerr" "github.com/canonical/go-efilib/internal/uefi" "github.com/canonical/go-efilib/mbr" ) // DevicePathShortFormType describes whether a path is a recognized short-form // path, and what type it is. type DevicePathShortFormType int const ( // DevicePathNotShortForm indicates that a path is not a recognized short-form path DevicePathNotShortForm DevicePathShortFormType = iota // DevicePathShortFormHD indicates that a path is a HD() short-form path DevicePathShortFormHD // DevicePathShortFormUSBWWID indicates that a path is a UsbWwid() short-form path DevicePathShortFormUSBWWID // DevicePathShortFormUSBClass indicates that a path is a UsbClass() short-form path DevicePathShortFormUSBClass // DevicePathShortFormURI indicates that a path is a Uri() short-form path. Note that // this package does not currently directly support device paths containing URIs. DevicePathShortFormURI // DevicePathShortFormFilePath indicates that a path is a file path short-form path DevicePathShortFormFilePath ) // IsShortForm whether the current form is a short-form value (ie, not DevicePathNotShortForm). func (t DevicePathShortFormType) IsShortForm() bool { return t > DevicePathNotShortForm } // DevicePathMatch indicates how a device path matched type DevicePathMatch int const ( // DevicePathNoMatch indicates that a pair of device paths did not match. DevicePathNoMatch DevicePathMatch = iota // DevicePathFullMatch indicates that a pair of device paths fully matched. DevicePathFullMatch // DevicePathShortFormHDMatch indicates that one device path begins with a // *[HardDriveDevicePathNode] and matches the end of the longer device path. DevicePathShortFormHDMatch // DevicePathShortFormUSBWWIDMatch indicates that one device path begins with // a *[USBWWIDDevicePathNode] and matches the end of the longer device path. DevicePathShortFormUSBWWIDMatch // DevicePathShortFormUSBClassMatch indicates that one device path begins with // a *[USBClassDevicePathNode] and matches the end of the longer device path. DevicePathShortFormUSBClassMatch // DevicePathShortFormFileMatch indicates that one device path begins with a // [FilePathDevicePathNode] and matches the end of the longer device path. DevicePathShortFormFileMatch ) // DevicePathType is the type of a device path node. // Deprecated: use [DevicePathNodeType]. type DevicePathType = DevicePathNodeType // DevicePathNodeType is the type of a device path node. type DevicePathNodeType uint8 // String implements [fmt.Stringer]. func (t DevicePathNodeType) String() string { switch t { case HardwareDevicePath: return "HardwarePath" case ACPIDevicePath: return "AcpiPath" case MessagingDevicePath: return "Msg" case MediaDevicePath: return "MediaPath" case BBSDevicePath: return "BbsPath" default: return fmt.Sprintf("Path[%02x]", uint8(t)) } } const ( HardwareDevicePath DevicePathNodeType = uefi.HARDWARE_DEVICE_PATH ACPIDevicePath DevicePathNodeType = uefi.ACPI_DEVICE_PATH MessagingDevicePath DevicePathNodeType = uefi.MESSAGING_DEVICE_PATH MediaDevicePath DevicePathNodeType = uefi.MEDIA_DEVICE_PATH BBSDevicePath DevicePathNodeType = uefi.BBS_DEVICE_PATH ) // DevicePathSubType is the sub-type of a device path node. The meaning of // this depends on the [DevicePathNodeType]. // Deprecated: use [DevicePathNodeSubType]. type DevicePathSubType = DevicePathNodeSubType // DevicePathNodeSubType is the sub-type of a device path node. The meaning of // this depends on the [DevicePathNodeType]. type DevicePathNodeSubType uint8 const ( DevicePathNodeHWPCISubType DevicePathNodeSubType = uefi.HW_PCI_DP DevicePathNodeHWVendorSubType DevicePathNodeSubType = uefi.HW_VENDOR_DP DevicePathNodeACPISubType DevicePathNodeSubType = uefi.ACPI_DP DevicePathNodeACPIExtendedSubType DevicePathNodeSubType = uefi.ACPI_EXTENDED_DP DevicePathNodeMsgATAPISubType DevicePathNodeSubType = uefi.MSG_ATAPI_DP DevicePathNodeMsgSCSISubType DevicePathNodeSubType = uefi.MSG_SCSI_DP DevicePathNodeMsgUSBSubType DevicePathNodeSubType = uefi.MSG_USB_DP DevicePathNodeMsgUSBClassSubType DevicePathNodeSubType = uefi.MSG_USB_CLASS_DP DevicePathNodeMsgVendorSubType DevicePathNodeSubType = uefi.MSG_VENDOR_DP DevicePathNodeMsgMACAddrSubType DevicePathNodeSubType = uefi.MSG_MAC_ADDR_DP DevicePathNodeMsgIPv4SubType DevicePathNodeSubType = uefi.MSG_IPv4_DP DevicePathNodeMsgIPv6SubType DevicePathNodeSubType = uefi.MSG_IPv6_DP DevicePathNodeMsgUSBWWIDSubType DevicePathNodeSubType = uefi.MSG_USB_WWID_DP DevicePathNodeMsgDeviceLogicalUnitSubType DevicePathNodeSubType = uefi.MSG_DEVICE_LOGICAL_UNIT_DP DevicePathNodeMsgSATASubType DevicePathNodeSubType = uefi.MSG_SATA_DP DevicePathNodeMsgNVMENamespaceSubType DevicePathNodeSubType = uefi.MSG_NVME_NAMESPACE_DP DevicePathNodeMediaHardDriveSubType DevicePathNodeSubType = uefi.MEDIA_HARDDRIVE_DP DevicePathNodeMediaCDROMSubType DevicePathNodeSubType = uefi.MEDIA_CDROM_DP DevicePathNodeMediaVendorSubType DevicePathNodeSubType = uefi.MEDIA_VENDOR_DP DevicePathNodeMediaFilePathSubType DevicePathNodeSubType = uefi.MEDIA_FILEPATH_DP DevicePathNodeMediaFwFileSubType DevicePathNodeSubType = uefi.MEDIA_PIWG_FW_FILE_DP DevicePathNodeMediaFwVolSubType DevicePathNodeSubType = uefi.MEDIA_PIWG_FW_VOL_DP DevicePathNodeMediaRelativeOffsetRangeSubType DevicePathNodeSubType = uefi.MEDIA_RELATIVE_OFFSET_RANGE_DP ) // DevicePathNodeCompoundType describes the compound type of a device path node, // comprised of the type and sub-type. type DevicePathNodeCompoundType uint16 // Type returns the devicepath node type. func (t DevicePathNodeCompoundType) Type() DevicePathNodeType { return DevicePathNodeType(t >> 8) } // Subtype returns the devicepath node sub-type. func (t DevicePathNodeCompoundType) SubType() DevicePathNodeSubType { return DevicePathNodeSubType(t) } // IsValid indicates whether this compound type is valid. If either the // type or sub-type are 0, then it is invalid. func (t DevicePathNodeCompoundType) IsValid() bool { return t.Type() != 0 && t.SubType() != 0 } const ( devicePathNodePCIType DevicePathNodeCompoundType = DevicePathNodeCompoundType(HardwareDevicePath)<<8 | DevicePathNodeCompoundType(DevicePathNodeHWPCISubType) devicePathNodeVendorHWType DevicePathNodeCompoundType = DevicePathNodeCompoundType(HardwareDevicePath)<<8 | DevicePathNodeCompoundType(DevicePathNodeHWVendorSubType) devicePathNodeACPIType DevicePathNodeCompoundType = DevicePathNodeCompoundType(ACPIDevicePath)<<8 | DevicePathNodeCompoundType(DevicePathNodeACPISubType) devicePathNodeACPIExtendedType DevicePathNodeCompoundType = DevicePathNodeCompoundType(ACPIDevicePath)<<8 | DevicePathNodeCompoundType(DevicePathNodeACPIExtendedSubType) devicePathNodeATAPIType DevicePathNodeCompoundType = DevicePathNodeCompoundType(MessagingDevicePath)<<8 | DevicePathNodeCompoundType(DevicePathNodeMsgATAPISubType) devicePathNodeSCSIType DevicePathNodeCompoundType = DevicePathNodeCompoundType(MessagingDevicePath)<<8 | DevicePathNodeCompoundType(DevicePathNodeMsgSCSISubType) devicePathNodeUSBType DevicePathNodeCompoundType = DevicePathNodeCompoundType(MessagingDevicePath)<<8 | DevicePathNodeCompoundType(DevicePathNodeMsgUSBSubType) devicePathNodeUSBClassType DevicePathNodeCompoundType = DevicePathNodeCompoundType(MessagingDevicePath)<<8 | DevicePathNodeCompoundType(DevicePathNodeMsgUSBClassSubType) devicePathNodeVendorMsgType DevicePathNodeCompoundType = DevicePathNodeCompoundType(MessagingDevicePath)<<8 | DevicePathNodeCompoundType(DevicePathNodeMsgVendorSubType) devicePathNodeMACAddrType DevicePathNodeCompoundType = DevicePathNodeCompoundType(MessagingDevicePath)<<8 | DevicePathNodeCompoundType(DevicePathNodeMsgMACAddrSubType) devicePathNodeIPv4Type DevicePathNodeCompoundType = DevicePathNodeCompoundType(MessagingDevicePath)<<8 | DevicePathNodeCompoundType(DevicePathNodeMsgIPv4SubType) devicePathNodeIPv6Type DevicePathNodeCompoundType = DevicePathNodeCompoundType(MessagingDevicePath)<<8 | DevicePathNodeCompoundType(DevicePathNodeMsgIPv6SubType) devicePathNodeUSBWWIDType DevicePathNodeCompoundType = DevicePathNodeCompoundType(MessagingDevicePath)<<8 | DevicePathNodeCompoundType(DevicePathNodeMsgUSBWWIDSubType) devicePathNodeDeviceLogicalUnitType DevicePathNodeCompoundType = DevicePathNodeCompoundType(MessagingDevicePath)<<8 | DevicePathNodeCompoundType(DevicePathNodeMsgDeviceLogicalUnitSubType) devicePathNodeSATAType DevicePathNodeCompoundType = DevicePathNodeCompoundType(MessagingDevicePath)<<8 | DevicePathNodeCompoundType(DevicePathNodeMsgSATASubType) devicePathNodeNVMENamespaceType DevicePathNodeCompoundType = DevicePathNodeCompoundType(MessagingDevicePath)<<8 | DevicePathNodeCompoundType(DevicePathNodeMsgNVMENamespaceSubType) devicePathNodeHardDriveType DevicePathNodeCompoundType = DevicePathNodeCompoundType(MediaDevicePath)<<8 | DevicePathNodeCompoundType(DevicePathNodeMediaHardDriveSubType) devicePathNodeCDROMType DevicePathNodeCompoundType = DevicePathNodeCompoundType(MediaDevicePath)<<8 | DevicePathNodeCompoundType(DevicePathNodeMediaCDROMSubType) devicePathNodeVendorMediaType DevicePathNodeCompoundType = DevicePathNodeCompoundType(MediaDevicePath)<<8 | DevicePathNodeCompoundType(DevicePathNodeMediaVendorSubType) devicePathNodeFilePathType DevicePathNodeCompoundType = DevicePathNodeCompoundType(MediaDevicePath)<<8 | DevicePathNodeCompoundType(DevicePathNodeMediaFilePathSubType) devicePathNodeFwFileType DevicePathNodeCompoundType = DevicePathNodeCompoundType(MediaDevicePath)<<8 | DevicePathNodeCompoundType(DevicePathNodeMediaFwFileSubType) devicePathNodeFwVolType DevicePathNodeCompoundType = DevicePathNodeCompoundType(MediaDevicePath)<<8 | DevicePathNodeCompoundType(DevicePathNodeMediaFwVolSubType) devicePathNodeRelativeOffsetRangeType DevicePathNodeCompoundType = DevicePathNodeCompoundType(MediaDevicePath)<<8 | DevicePathNodeCompoundType(DevicePathNodeMediaRelativeOffsetRangeSubType) ) const ( DevicePathNodePCIType DevicePathNodeCompoundType = devicePathNodePCIType // nodes of this type are implemented by *PCIDevicePathNode DevicePathNodeVendorHWType DevicePathNodeCompoundType = devicePathNodeVendorHWType // nodes of this type are implemented by *VendorDevicePathNode DevicePathNodeACPIType DevicePathNodeCompoundType = devicePathNodeACPIType // nodes of this type are implemented by *ACPIDevicePathNode DevicePathNodeACPIExtendedType DevicePathNodeCompoundType = devicePathNodeACPIExtendedType // nodes of this type are implemented by *ACPIExtendedDevicePathNode DevicePathNodeATAPIType DevicePathNodeCompoundType = devicePathNodeATAPIType // nodes of this type are implemented by *ATAPIDevicePathNode DevicePathNodeSCSIType DevicePathNodeCompoundType = devicePathNodeSCSIType // nodes of this type are implemented by *SCSIDevicePathNode DevicePathNodeUSBType DevicePathNodeCompoundType = devicePathNodeUSBType // nodes of this type are implemented by *USBDevicePathNode DevicePathNodeUSBClassType DevicePathNodeCompoundType = devicePathNodeUSBClassType // nodes of this type are implemented by *USBClassDevicePathNode DevicePathNodeVendorMsgType DevicePathNodeCompoundType = devicePathNodeVendorMsgType // nodes of this type are implemented by *VendorDevicePathNode DevicePathNodeMACAddrType DevicePathNodeCompoundType = devicePathNodeMACAddrType // nodes of this type are implemented by *MACAddrDevicePathNode DevicePathNodeIPv4Type DevicePathNodeCompoundType = devicePathNodeIPv4Type // nodes of this type are implemented by *IPv4DevicePathNode DevicePathNodeIPv6Type DevicePathNodeCompoundType = devicePathNodeIPv6Type // nodes of this type are implemented by *IPv6DevicePathNode DevicePathNodeUSBWWIDType DevicePathNodeCompoundType = devicePathNodeUSBWWIDType // nodes of this type are implemented by *USBWWIDDevicePathNode DevicePathNodeDeviceLogicalUnitType DevicePathNodeCompoundType = devicePathNodeDeviceLogicalUnitType // nodes of this type are implemented by *DeviceLogicalUnitDevicePathNode DevicePathNodeSATAType DevicePathNodeCompoundType = devicePathNodeSATAType // nodes of this type are implemented by *SATADevicePathNode DevicePathNodeNVMENamespaceType DevicePathNodeCompoundType = devicePathNodeNVMENamespaceType // nodes of this type are implemented by *NVMENamespaceDevicePathNode DevicePathNodeHardDriveType DevicePathNodeCompoundType = devicePathNodeHardDriveType // nodes of this type are implemented by *HardDriveDevicePathNode DevicePathNodeCDROMType DevicePathNodeCompoundType = devicePathNodeCDROMType // nodes of this type are implemented by *CDROMDevicePathNode DevicePathNodeVendorMediaType DevicePathNodeCompoundType = devicePathNodeVendorMediaType // nodes of this type are implemented by *VendorDevicePathNode DevicePathNodeFilePathType DevicePathNodeCompoundType = devicePathNodeFilePathType // nodes of this type are implemented by FilePathDevicePathNode DevicePathNodeFwFileType DevicePathNodeCompoundType = devicePathNodeFwFileType // nodes of this type are implemented by FWFileDevicePathNode DevicePathNodeFwVolType DevicePathNodeCompoundType = devicePathNodeFwVolType // nodes of this type are implemented by FWVolDevicePathNode DevicePathNodeRelativeOffsetRangeType DevicePathNodeCompoundType = devicePathNodeRelativeOffsetRangeType // nodes of this type are implemented by *RelativeOffsetRangeDevicePathNode ) // DevicePathToStringFlags defines flags for [DevicePath.ToString] and // DevicePathNode.ToString. type DevicePathToStringFlags int func (f DevicePathToStringFlags) DisplayOnly() bool { return f&DevicePathDisplayOnly > 0 } func (f DevicePathToStringFlags) AllowVendorShortcuts() bool { return f&DevicePathAllowVendorShortcuts > 0 } func (f DevicePathToStringFlags) DisplayFWGUIDNames() bool { mask := DevicePathDisplayOnly | DevicePathDisplayFWGUIDNames return f&mask == mask } const ( // DevicePathDisplayOnly indicates that each node is converted // to the shorter text representation. DevicePathDisplayOnly DevicePathToStringFlags = 1 << 0 // DevicePathAllowVendorShortcuts indicates that that vendor // specific device path nodes should print using a type-specific // format based on the vendor GUID, if it is recognized. DevicePathAllowVendorShortcuts DevicePathToStringFlags = 1 << 1 // DevicePathDisplayFWGUIDNames indicates that firmware volume // and firmware file device path nodes should print the industry // standard name for a GUID, if it is recognized and if lookup // functions have been registered with RegisterFWVolNameLookup // and RegisterFWFileNameLookup. This only works with // DevicePathDisplayOnly. DevicePathDisplayFWGUIDNames DevicePathToStringFlags = 1 << 2 ) // DevicePathNode represents a single node in a device path. type DevicePathNode interface { CompoundType() DevicePathNodeCompoundType // Return the compound type of this node AsGenericDevicePathNode() (*GenericDevicePathNode, error) // Convert this node to a GenericDevicePathNode // String should return a string for this node, equivalent to // ToString(DevicePathNodeDisplayOnly|DevicePathNodeAllowShortcuts). // For more control, use ToString String() string ToString(flags DevicePathToStringFlags) string // Return a string for this node Write(w io.Writer) error // Serialize this node to the supplied io.Writer } type devicePathToStringer interface { ToString(flags DevicePathToStringFlags) string } // devicePathString calls ToString(DevicePathDisplayOnly | DevicePathAllowVendorShortcuts) // on any object that supports the devicePathToStringer interface func devicePathString[P devicePathToStringer](path P) string { return path.ToString(DevicePathDisplayOnly | DevicePathAllowVendorShortcuts) } // devicePathFormatter allows any object that implements devicePathToStringer to support // fmt.Formatter. type devicePathFormatter[P devicePathToStringer] struct { path P } func (formatter devicePathFormatter[P]) Format(f fmt.State, verb rune) { flags := DevicePathAllowVendorShortcuts // Display vendor shortcuts by default switch verb { case 'q': fmt.Fprintf(f, formatString(f, verb), formatter.path.ToString(flags)) case 's', 'v', 'x', 'X': if !f.Flag('+') { // Display only unless the '+' flag is given flags |= DevicePathDisplayOnly if f.Flag('#') { // Convert FW GUIDs to well-known names with the '#' flag flags |= DevicePathDisplayFWGUIDNames } } fmt.Fprintf(f, formatString(f, verb), formatter.path.ToString(flags)) default: panic(fmt.Errorf("invalid verb: %c", verb)) } } // DevicePath represents a complete device path with the first node // representing the root. type DevicePath []DevicePathNode // Deprecated: Use [Format]. func (p DevicePath) Formatter() fmt.Formatter { return devicePathFormatter[DevicePath]{path: p} } // Format implements [fmt.Formatter]. For the 's', 'v', 'x' and 'X' verbs, // the '+' flag turns off the [DevicePathDisplayOnly] flag to make the string // more verbose. The '#' flag enables conversions of firmware GUIDs to well-known // names where these are known. func (p DevicePath) Format(s fmt.State, c rune) { f := devicePathFormatter[DevicePath]{path: p} f.Format(s, c) } // ToString returns a string representation of this device path with the // supplied flags. func (p DevicePath) ToString(flags DevicePathToStringFlags) string { var b strings.Builder for _, node := range p { fmt.Fprintf(&b, "\\%s", node.ToString(flags)) } return b.String() } // String implements [fmt.Stringer], and returns the display only string. // For more control, use [DevicePath.ToString]. func (p DevicePath) String() string { return devicePathString(p) } // Bytes returns the serialized form of this device path. func (p DevicePath) Bytes() ([]byte, error) { var buf bytes.Buffer if err := p.Write(&buf); err != nil { return nil, err } return buf.Bytes(), nil } // Write serializes the complete device path to w. func (p DevicePath) Write(w io.Writer) error { for i, node := range p { if err := node.Write(w); err != nil { return fmt.Errorf("cannot write node %d: %w", i, err) } } end := uefi.EFI_DEVICE_PATH_PROTOCOL{ Type: uefi.END_DEVICE_PATH_TYPE, SubType: uefi.END_ENTIRE_DEVICE_PATH_SUBTYPE, Length: 4} return binary.Write(w, binary.LittleEndian, &end) } // DevicePathFindFirstOccurrence finds the first occurrence of the device path // node with the specified type and returns it and the remaining components of // the device path. func DevicePathFindFirstOccurrence[T DevicePathNode](p DevicePath) DevicePath { for i, n := range p { if _, ok := n.(T); ok { return p[i:] } } return nil } func (p DevicePath) matchesInternal(other DevicePath, onlyFull bool) DevicePathMatch { var pBytes bytes.Buffer if err := p.Write(&pBytes); err != nil { return DevicePathNoMatch } var otherBytes bytes.Buffer if err := other.Write(&otherBytes); err != nil { return DevicePathNoMatch } if bytes.Equal(pBytes.Bytes(), otherBytes.Bytes()) { // We have a full, exact match return DevicePathFullMatch } if onlyFull { // If we're only permitted to find a full match, return no match now. return DevicePathNoMatch } // Check if the shortest path is a short-form path. If so, convert the longer // path to the same type of short-form path and test if there is a short-form // match. var ( shortestPath DevicePath longestPath DevicePath ) switch { case len(p) > len(other): shortestPath = other longestPath = p case len(p) < len(other): shortestPath = p longestPath = other default: // Both paths are the same length and were not a full match. // There is no match here. return DevicePathNoMatch } switch shortestPath.ShortFormType() { case DevicePathShortFormHD: longestPath = DevicePathFindFirstOccurrence[*HardDriveDevicePathNode](longestPath) if res := longestPath.matchesInternal(shortestPath, true); res == DevicePathFullMatch { return DevicePathShortFormHDMatch } case DevicePathShortFormUSBWWID: longestPath = DevicePathFindFirstOccurrence[*USBWWIDDevicePathNode](longestPath) if res := longestPath.matchesInternal(shortestPath, true); res == DevicePathFullMatch { return DevicePathShortFormUSBWWIDMatch } case DevicePathShortFormUSBClass: longestPath = DevicePathFindFirstOccurrence[*USBClassDevicePathNode](longestPath) if res := longestPath.matchesInternal(shortestPath, true); res == DevicePathFullMatch { return DevicePathShortFormUSBClassMatch } case DevicePathShortFormFilePath: longestPath = DevicePathFindFirstOccurrence[FilePathDevicePathNode](longestPath) if res := longestPath.matchesInternal(shortestPath, true); res == DevicePathFullMatch { return DevicePathShortFormFileMatch } } return DevicePathNoMatch } // Matches indicates whether other matches this path in some way, and returns // the type of match. If either path is a HD() short-form path, this may return // DevicePathShortFormHDMatch. If either path is a UsbWwid() short-form path, this may // return DevicePathShortFormUSBWWIDMatch. If either path is a UsbClass() short-form path, // this may return DevicePathShortFormUSBClassMatch. If either path is a file path short-form // path, this may return DevicePathShortFormFileMatch. This returns DevicePathFullMatch // if the supplied path fully matches, and DevicePathNoMatch if there is no match. func (p DevicePath) Matches(other DevicePath) DevicePathMatch { return p.matchesInternal(other, false) } // ShortFormType returns whether this is a short-form type of path, and if so, // what type of short-form path. The UEFI boot manager is required to handle a // certain set of well defined short-form paths that begin with a specific // component. func (p DevicePath) ShortFormType() DevicePathShortFormType { if len(p) == 0 { return DevicePathNotShortForm } switch n := p[0].(type) { case *HardDriveDevicePathNode: _ = n return DevicePathShortFormHD case *USBWWIDDevicePathNode: _ = n return DevicePathShortFormUSBWWID case *USBClassDevicePathNode: _ = n return DevicePathShortFormUSBClass case *GenericDevicePathNode: if n.Type == MessagingDevicePath && n.SubType == uefi.MSG_URI_DP { return DevicePathShortFormURI } case FilePathDevicePathNode: return DevicePathShortFormFilePath } return DevicePathNotShortForm } // GenericDevicePathNode corresponds to a device path nodes with a type that is // not handled by this package type GenericDevicePathNode struct { Type DevicePathNodeType SubType DevicePathSubType // the meaning of the sub-type depends on the Type field. Data []byte // An opaque blob of data associated with this node } func readGenericDevicePathNode(r io.Reader) (*GenericDevicePathNode, error) { var n uefi.EFI_DEVICE_PATH_PROTOCOL if err := binary.Read(r, binary.LittleEndian, &n); err != nil { return nil, err } data, _ := io.ReadAll(r) return &GenericDevicePathNode{ Type: DevicePathNodeType(n.Type), SubType: DevicePathSubType(n.SubType), Data: data}, nil } func convertToGenericDevicePathNode(n DevicePathNode) (*GenericDevicePathNode, error) { var buf bytes.Buffer if err := n.Write(&buf); err != nil { return nil, err } return readGenericDevicePathNode(&buf) } // CompoundType implements [DevicePathNode.CompoundType]. func (n *GenericDevicePathNode) CompoundType() DevicePathNodeCompoundType { return DevicePathNodeCompoundType(n.Type)<<8 | DevicePathNodeCompoundType(n.SubType) } // AsGenericDevicePathNode implements [DevicePathNode.AsGenericDevicePathNode]. func (n *GenericDevicePathNode) AsGenericDevicePathNode() (*GenericDevicePathNode, error) { return convertToGenericDevicePathNode(n) } // ToString implements [DevicePathNode.ToString]. func (n *GenericDevicePathNode) ToString(_ DevicePathToStringFlags) string { var b strings.Builder switch n.Type { case HardwareDevicePath, ACPIDevicePath, MessagingDevicePath, MediaDevicePath, BBSDevicePath: fmt.Fprintf(&b, "%s(", n.Type) default: fmt.Fprintf(&b, "Path(%d,", n.Type) } fmt.Fprintf(&b, "%d", n.SubType) if len(n.Data) > 0 { fmt.Fprintf(&b, ",%x", n.Data) } b.WriteString(")") return b.String() } // String implements [fmt.Stringer]. func (n *GenericDevicePathNode) String() string { return devicePathString(n) } // Write implements [DevicePathNode.Write]. func (n *GenericDevicePathNode) Write(w io.Writer) error { hdr := uefi.EFI_DEVICE_PATH_PROTOCOL{ Type: uint8(n.Type), SubType: uint8(n.SubType)} hdrSz := binary.Size(hdr) dataSz := len(n.Data) if dataSz > math.MaxUint16-hdrSz { return errors.New("Data too large") } hdr.Length = uint16(hdrSz + dataSz) if err := binary.Write(w, binary.LittleEndian, &hdr); err != nil { return err } _, err := w.Write(n.Data) return err } // PCIDevicePathNode corresponds to a PCI device path node. type PCIDevicePathNode struct { Function uint8 // Function of device Device uint8 // Device number of PCI bus } // CompoundType implements [DevicePathNode.CompoundType]. func (n *PCIDevicePathNode) CompoundType() DevicePathNodeCompoundType { return DevicePathNodePCIType } // AsGenericDevicePathNode implements [DevicePathNode.AsGenericDevicePathNode]. func (n *PCIDevicePathNode) AsGenericDevicePathNode() (*GenericDevicePathNode, error) { return convertToGenericDevicePathNode(n) } func (n *PCIDevicePathNode) ToString(_ DevicePathToStringFlags) string { return fmt.Sprintf("Pci(%#x,%#x)", n.Device, n.Function) } // String implements [fmt.Stringer]. func (n *PCIDevicePathNode) String() string { return devicePathString(n) } // Write implements [DevicePathNode.Write]. func (n *PCIDevicePathNode) Write(w io.Writer) error { node := uefi.PCI_DEVICE_PATH{ Header: uefi.EFI_DEVICE_PATH_PROTOCOL{ Type: uint8(n.CompoundType().Type()), SubType: uint8(n.CompoundType().SubType())}, Function: n.Function, Device: n.Device} node.Header.Length = uint16(binary.Size(node)) return binary.Write(w, binary.LittleEndian, &node) } // VendorDevicePathNode corresponds to a vendor specific node. type VendorDevicePathNode struct { Type DevicePathNodeType // The type of this node GUID GUID // The vendor specific GUID Data []byte // Vendor specific data } // CompoundType implements [DevicePathNode.CompoundType]. func (n *VendorDevicePathNode) CompoundType() DevicePathNodeCompoundType { switch n.Type { case HardwareDevicePath: return DevicePathNodeVendorHWType case MediaDevicePath: return DevicePathNodeVendorMediaType case MessagingDevicePath: return DevicePathNodeVendorMsgType default: // Return an invalid compound type. return DevicePathNodeCompoundType(n.Type) << 8 } } // AsGenericDevicePathNode implements [DevicePathNode.AsGenericDevicePathNode]. func (n *VendorDevicePathNode) AsGenericDevicePathNode() (*GenericDevicePathNode, error) { return convertToGenericDevicePathNode(n) } // ToString implements [DevicePathNode.ToString]. func (n *VendorDevicePathNode) ToString(flags DevicePathToStringFlags) string { var nodeType string switch n.Type { case HardwareDevicePath: nodeType = "Hw" case MessagingDevicePath: nodeType = "Msg" if flags.AllowVendorShortcuts() { switch n.GUID { case PCAnsiGuid: return "VenPcAnsi()" case VT100Guid: return "VenVt100()" case VT100PlusGuid: return "VenVt100Plus()" case VTUTF8Guid: return "VenUtf8()" case DebugPortProtocolGuid: return "DebugPort()" case DevicePathMessagingUARTFlowControl: if str, ok := n.uartFlowControlString(); ok { return str } case SASDevicePathGuid: if str, ok := n.sasString(); ok { return str } } } case MediaDevicePath: nodeType = "Media" default: nodeType = "?" } var b strings.Builder fmt.Fprintf(&b, "Ven%s(%s", nodeType, n.GUID) if len(n.Data) > 0 { fmt.Fprintf(&b, ",%x", n.Data) } b.WriteString(")") return b.String() } // String implement [fmt.Stringer]. func (n *VendorDevicePathNode) String() string { return devicePathString(n) } // Write implements [DevicePathNode.Write]. func (n *VendorDevicePathNode) Write(w io.Writer) error { if !n.CompoundType().IsValid() { return errors.New("invalid device path type") } node := uefi.VENDOR_DEVICE_PATH{ Header: uefi.EFI_DEVICE_PATH_PROTOCOL{ Type: uint8(n.CompoundType().Type()), SubType: uint8(n.CompoundType().SubType())}, Guid: uefi.EFI_GUID(n.GUID)} nodeSz := binary.Size(node) dataSz := len(n.Data) if dataSz > math.MaxUint16-nodeSz { return errors.New("Data too large") } node.Header.Length = uint16(nodeSz + dataSz) if err := binary.Write(w, binary.LittleEndian, &node); err != nil { return err } _, err := w.Write(n.Data) return err } func (n *VendorDevicePathNode) uartFlowControlString() (string, bool) { var buf bytes.Buffer if err := n.Write(&buf); err != nil { return "", false } var ufc uefi.UART_FLOW_CONTROL_DEVICE_PATH if err := binary.Read(&buf, binary.LittleEndian, &ufc); err != nil { return "", false } var value string switch ufc.FlowControlMap & 3 { case 0: value = "None" case 1: value = "Hardware" case 2: value = "XonXoff" default: value = "0x3" } return fmt.Sprintf("UartFlowControl(%s)", value), true } func (n *VendorDevicePathNode) sasString() (string, bool) { var buf bytes.Buffer if err := n.Write(&buf); err != nil { return "", false } var sas uefi.SAS_DEVICE_PATH if err := binary.Read(&buf, binary.LittleEndian, &sas); err != nil { return "", false } var b strings.Builder fmt.Fprintf(&b, "SAS(%#x,%#x,%#x,", sas.SasAddress, sas.Lun, sas.RelativeTargetPort) info := sas.DeviceTopology switch { case info&0xf == 0 && info&0x80 == 0: b.WriteString("NoTopology,0,0,0,") case info&0xf <= 2 && info&0x80 == 0: var sasOrSata string switch { case info&0x10 == 0: sasOrSata = "SAS" default: sasOrSata = "SATA" } var location string switch { case info&0x20 == 0: location = "Internal" default: location = "External" } var connect string switch { case info&0x40 == 0: connect = "Direct" default: connect = "Expanded" } fmt.Fprintf(&b, "%s,%s,%s,", sasOrSata, location, connect) switch { case info&0xf == 1: b.WriteString("0,") // DriveBay default: fmt.Fprintf(&b, "%#x,", ((info>>8)&0xff)+1) // DriveBay } default: fmt.Fprintf(&b, "%#x,0,0,0,", info) } fmt.Fprintf(&b, "%#x)", sas.Reserved) return b.String(), true } func readVendorDevicePathNode(r io.Reader) (out *VendorDevicePathNode, err error) { var n uefi.VENDOR_DEVICE_PATH if err := binary.Read(r, binary.LittleEndian, &n); err != nil { return nil, err } out = &VendorDevicePathNode{ Type: DevicePathNodeType(n.Header.Type), GUID: GUID(n.Guid), } if !out.CompoundType().IsValid() { panic("invalid device path type") } // The rest of the data from this io.Reader is for us. out.Data, _ = io.ReadAll(r) return out, nil } // EISAID represents a compressed EISA PNP ID type EISAID uint32 // Vendor returns the 3-letter vendor ID. func (id EISAID) Vendor() string { return fmt.Sprintf("%c%c%c", ((id>>10)&0x1f)+'A'-1, ((id>>5)&0x1f)+'A'-1, (id&0x1f)+'A'-1) } // Product returns the product ID. func (id EISAID) Product() uint16 { return uint16(id >> 16) } // String implements [fmt.Stringer]. func (id EISAID) String() string { if id == 0 { return "0" } return fmt.Sprintf("%s%04x", id.Vendor(), id.Product()) } func NewEISAID(vendor string, product uint16) (EISAID, error) { if len(vendor) != 3 { return 0, errors.New("invalid vendor length") } var out EISAID out |= EISAID((vendor[0]-'A'+1)&0x1f) << 10 out |= EISAID((vendor[1]-'A'+1)&0x1f) << 5 out |= EISAID((vendor[2] - 'A' + 1) & 0x1f) out |= EISAID(product) << 16 return out, nil } // ACPIDevicePathNode corresponds to an ACPI device path node. type ACPIDevicePathNode struct { HID EISAID // Compressed hardware ID UID uint32 // Unique ID } // CompoundType implements [DevicePathNode.CompoundType]. func (n *ACPIDevicePathNode) CompoundType() DevicePathNodeCompoundType { return DevicePathNodeACPIType } // AsGenericDevicePathNode implements [DevicePathNode.AsGenericDevicePathNode]. func (n *ACPIDevicePathNode) AsGenericDevicePathNode() (*GenericDevicePathNode, error) { return convertToGenericDevicePathNode(n) } // ToString implements [DevicePathNode.ToString]. func (n *ACPIDevicePathNode) ToString(_ DevicePathToStringFlags) string { if n.HID.Vendor() == "PNP" { switch n.HID.Product() { case 0x0a03: return fmt.Sprintf("PciRoot(%#x)", n.UID) case 0x0a08: return fmt.Sprintf("PcieRoot(%#x)", n.UID) case 0x0604: return fmt.Sprintf("Floppy(%#x)", n.UID) case 0x0301: return fmt.Sprintf("Keyboard(%#x)", n.UID) case 0x0501: return fmt.Sprintf("Serial(%#x)", n.UID) case 0x0401: return fmt.Sprintf("ParallelPort(%#x)", n.UID) } } return fmt.Sprintf("Acpi(%s,%#x)", n.HID, n.UID) } // String implements [fmt.Stringer]. func (n *ACPIDevicePathNode) String() string { return devicePathString(n) } // Write implements [DevicePathNode.Write]. func (n *ACPIDevicePathNode) Write(w io.Writer) error { node := uefi.ACPI_HID_DEVICE_PATH{ Header: uefi.EFI_DEVICE_PATH_PROTOCOL{ Type: uint8(n.CompoundType().Type()), SubType: uint8(n.CompoundType().SubType())}, HID: uint32(n.HID), UID: uint32(n.UID)} node.Header.Length = uint16(binary.Size(node)) return binary.Write(w, binary.LittleEndian, &node) } // ACPIExtendedDevicePathNode corresponds to an ACPI device path node // and is used where a CID field is required or a string field is // required for HID or UID. type ACPIExtendedDevicePathNode struct { HID EISAID UID uint32 CID EISAID HIDStr string UIDStr string CIDStr string } // CompoundType implements [DevicePathNode.CompoundType]. func (n *ACPIExtendedDevicePathNode) CompoundType() DevicePathNodeCompoundType { return DevicePathNodeACPIExtendedType } // AsGenericDevicePathNode implements [DevicePathNode.AsGenericDevicePathNode]. func (n *ACPIExtendedDevicePathNode) AsGenericDevicePathNode() (*GenericDevicePathNode, error) { return convertToGenericDevicePathNode(n) } // ToString implements [DevicePathNode.ToString]. func (n *ACPIExtendedDevicePathNode) ToString(flags DevicePathToStringFlags) string { switch { case flags.DisplayOnly() && n.HID.Vendor() == "PNP" && (n.HID.Product() == 0x0a03 || (n.CID.Product() == 0x0a03 && n.HID.Product() != 0x0a08)): if n.UIDStr != "" { return fmt.Sprintf("PciRoot(%s)", n.UIDStr) } return fmt.Sprintf("PciRoot(%#x)", n.UID) case flags.DisplayOnly() && n.HID.Vendor() == "PNP" && (n.HID.Product() == 0x0a08 || n.CID.Product() == 0x0a08): if n.UIDStr != "" { return fmt.Sprintf("PcieRoot(%s)", n.UIDStr) } return fmt.Sprintf("PcieRoot(%#x)", n.UID) case n.HIDStr == "" && n.CIDStr == "" && n.UIDStr != "": return fmt.Sprintf("AcpiExp(%s,%s,%s)", n.HID, n.CID, n.UIDStr) } if !flags.DisplayOnly() { hidStr := n.HIDStr if hidStr == "" { hidStr = "" } cidStr := n.CIDStr if cidStr == "" { cidStr = "" } uidStr := n.UIDStr if uidStr == "" { uidStr = "" } return fmt.Sprintf("AcpiEx(%s,%s,%#x,%s,%s,%s)", n.HID, n.CID, n.UID, hidStr, cidStr, uidStr) } hidText := n.HID.String() if n.HIDStr != "" { hidText = n.HIDStr } cidText := n.CID.String() if n.CIDStr != "" { cidText = n.CIDStr } if n.UIDStr != "" { return fmt.Sprintf("AcpiEx(%s,%s,%s)", hidText, cidText, n.UIDStr) } return fmt.Sprintf("AcpiEx(%s,%s,%#x)", hidText, cidText, n.UID) } // String implements [fmt.Stringer]. func (n *ACPIExtendedDevicePathNode) String() string { return devicePathString(n) } // Write implements [DevicePathNode.Write]. func (n *ACPIExtendedDevicePathNode) Write(w io.Writer) error { node := uefi.ACPI_EXTENDED_HID_DEVICE_PATH{ Header: uefi.EFI_DEVICE_PATH_PROTOCOL{ Type: uint8(n.CompoundType().Type()), SubType: uint8(n.CompoundType().SubType())}, HID: uint32(n.HID), UID: n.UID, CID: uint32(n.CID)} // Set a reasonable limit on each string field length := binary.Size(node) + 3 // extra 3 bytes for NULL terminators for _, s := range []string{n.HIDStr, n.UIDStr, n.CIDStr} { sz := len(s) if sz > math.MaxUint16-length { return errors.New("string fields too large") } length += sz } node.Header.Length = uint16(length) if err := binary.Write(w, binary.LittleEndian, &node); err != nil { return err } for _, s := range []string{n.HIDStr, n.UIDStr, n.CIDStr} { if _, err := io.WriteString(w, s); err != nil { return err } w.Write([]byte{0x00}) } return nil } // ATAPIControllerRole describes the port that an IDE device is connected to. type ATAPIControllerRole uint8 // String implements [fmt.Stringer]. func (r ATAPIControllerRole) String() string { switch r { case ATAPIControllerPrimary: return "Primary" case ATAPIControllerSecondary: return "Secondary" default: return strconv.FormatUint(uint64(r), 10) } } const ( ATAPIControllerPrimary ATAPIControllerRole = 0 ATAPIControllerSecondary ATAPIControllerRole = 1 ) // ATAPIDriveRole describes the role of a device on a specific IDE port. type ATAPIDriveRole uint8 // String implements [fmt.Stringer]. func (r ATAPIDriveRole) String() string { switch r { case ATAPIDriveMaster: return "Master" case ATAPIDriveSlave: return "Slave" default: return strconv.FormatUint(uint64(r), 10) } } const ( ATAPIDriveMaster ATAPIDriveRole = 0 ATAPIDriveSlave ATAPIDriveRole = 1 ) // ATAPIDevicePathNode corresponds to an ATA device path node. type ATAPIDevicePathNode struct { Controller ATAPIControllerRole Drive ATAPIDriveRole LUN uint16 // Logical unit number } // CompoundType implements [DevicePathNode.CompoundType]. func (n *ATAPIDevicePathNode) CompoundType() DevicePathNodeCompoundType { return DevicePathNodeATAPIType } // AsGenericDevicePathNode implements [DevicePathNode.AsGenericDevicePathNode]. func (n *ATAPIDevicePathNode) AsGenericDevicePathNode() (*GenericDevicePathNode, error) { return convertToGenericDevicePathNode(n) } // ToString implements [DevicePathNode.ToString]. func (n *ATAPIDevicePathNode) ToString(flags DevicePathToStringFlags) string { if flags.DisplayOnly() { return fmt.Sprintf("Ata(%#x)", n.LUN) } return fmt.Sprintf("Ata(%s,%s,%#x)", n.Controller, n.Drive, n.LUN) } // String implements [fmt.Stringer]. func (n *ATAPIDevicePathNode) String() string { return devicePathString(n) } // Write implements [DevicePathNode.Write]. func (n *ATAPIDevicePathNode) Write(w io.Writer) error { node := uefi.ATAPI_DEVICE_PATH{ Header: uefi.EFI_DEVICE_PATH_PROTOCOL{ Type: uint8(n.CompoundType().Type()), SubType: uint8(n.CompoundType().SubType())}, PrimarySecondary: uint8(n.Controller), SlaveMaster: uint8(n.Drive), Lun: n.LUN} node.Header.Length = uint16(binary.Size(node)) return binary.Write(w, binary.LittleEndian, &node) } // SCSIDevicePathNode corresponds to a SCSI device path node. type SCSIDevicePathNode struct { PUN uint16 // Target ID on the SCSI bus LUN uint16 // Logical unit number } // CompoundType implements [DevicePathNode.CompoundType]. func (n *SCSIDevicePathNode) CompoundType() DevicePathNodeCompoundType { return DevicePathNodeSCSIType } // AsGenericDevicePathNode implements [DevicePathNode.AsGenericDevicePathNode]. func (n *SCSIDevicePathNode) AsGenericDevicePathNode() (*GenericDevicePathNode, error) { return convertToGenericDevicePathNode(n) } // ToString implements [DevicePathNode.ToString]. func (n *SCSIDevicePathNode) ToString(_ DevicePathToStringFlags) string { return fmt.Sprintf("Scsi(%#x,%#x)", n.PUN, n.LUN) } // String implements [fmt.Stringer]. func (n *SCSIDevicePathNode) String() string { return devicePathString(n) } // Write implements [DevicePathNode.Write]. func (n *SCSIDevicePathNode) Write(w io.Writer) error { node := uefi.SCSI_DEVICE_PATH{ Header: uefi.EFI_DEVICE_PATH_PROTOCOL{ Type: uint8(n.CompoundType().Type()), SubType: uint8(n.CompoundType().SubType())}, Pun: n.PUN, Lun: n.LUN} node.Header.Length = uint16(binary.Size(node)) return binary.Write(w, binary.LittleEndian, &node) } // USBDevicePathNode corresponds to a USB device path node. type USBDevicePathNode struct { ParentPortNumber uint8 InterfaceNumber uint8 } // CompoundType implements [DevicePathNode.CompoundType]. func (n *USBDevicePathNode) CompoundType() DevicePathNodeCompoundType { return DevicePathNodeUSBType } // AsGenericDevicePathNode implements [DevicePathNode.AsGenericDevicePathNode]. func (n *USBDevicePathNode) AsGenericDevicePathNode() (*GenericDevicePathNode, error) { return convertToGenericDevicePathNode(n) } // ToString implements [DevicePathNode.ToString]. func (n *USBDevicePathNode) ToString(_ DevicePathToStringFlags) string { return fmt.Sprintf("USB(%#x,%#x)", n.ParentPortNumber, n.InterfaceNumber) } // String implements [fmt.Stringer]. func (n *USBDevicePathNode) String() string { return devicePathString(n) } // Write implements [DevicePathNode.Write]. func (n *USBDevicePathNode) Write(w io.Writer) error { node := uefi.USB_DEVICE_PATH{ Header: uefi.EFI_DEVICE_PATH_PROTOCOL{ Type: uint8(n.CompoundType().Type()), SubType: uint8(n.CompoundType().SubType())}, ParentPortNumber: n.ParentPortNumber, InterfaceNumber: n.InterfaceNumber} node.Header.Length = uint16(binary.Size(node)) return binary.Write(w, binary.LittleEndian, &node) } // USBClass defines the base class of a USB interface. type USBClass uint8 const ( USBClassAudio USBClass = 0x01 USBClassCDCControl USBClass = 0x02 USBClassHID USBClass = 0x03 USBClassImage USBClass = 0x06 USBClassPrinter USBClass = 0x07 USBClassMassStorage USBClass = 0x08 USBClassHub USBClass = 0x09 USBClassCDCData USBClass = 0x0a USBClassSmartCard USBClass = 0x0b USBClassVideo USBClass = 0x0e USBClassDiagnostic USBClass = 0xdc USBClassWireless USBClass = 0xe0 USBClassAppSpecific USBClass = 0xfe ) // String implements [fmt.Stringer]. func (c USBClass) String() string { switch c { case USBClassAudio: return "UsbAudio" case USBClassCDCControl: return "UsbCDCControl" case USBClassHID: return "UsbHID" case USBClassImage: return "UsbImage" case USBClassPrinter: return "UsbPrinter" case USBClassMassStorage: return "UsbMassStorage" case USBClassHub: return "UsbHub" case USBClassCDCData: return "UsbCDCData" case USBClassSmartCard: return "UsbSmartCard" case USBClassVideo: return "UsbVideo" case USBClassDiagnostic: return "UsbDiagnostic" case USBClassWireless: return "UsbWireless" case USBClassAppSpecific: return "UsbAppSpecific" default: return fmt.Sprintf("%#x", uint8(c)) } } // USBSubClass defines the sub class of a USB interface. The meaning of // this is dependent on the value of [USBClass]. type USBSubClass uint8 const ( USBSubClassAppSpecificFWUpdate USBSubClass = 0x01 USBSubClassAppSpecificIRDABridge USBSubClass = 0x02 USBSubClassAppSpecificTestAndMeasurement USBSubClass = 0x03 ) // USBProtocol defines the protocol of a USB interface. The meaning of // this is dependent on the values of [USBClass] and [USBSubClass]. type USBProtocol uint8 // USBClassDevicePathNode corresponds to a USB class device path node. type USBClassDevicePathNode struct { VendorId uint16 ProductId uint16 DeviceClass USBClass DeviceSubClass USBSubClass DeviceProtocol USBProtocol } // CompoundType implements [DevicePathNode.CompoundType]. func (n *USBClassDevicePathNode) CompoundType() DevicePathNodeCompoundType { return DevicePathNodeUSBClassType } // AsGenericDevicePathNode implements [DevicePathNode.AsGenericDevicePathNode]. func (n *USBClassDevicePathNode) AsGenericDevicePathNode() (*GenericDevicePathNode, error) { return convertToGenericDevicePathNode(n) } // ToString implements [DevicePathNode.ToString]. func (n *USBClassDevicePathNode) ToString(_ DevicePathToStringFlags) string { switch n.DeviceClass { case USBClassAudio, USBClassCDCControl, USBClassHID, USBClassImage, USBClassPrinter, USBClassMassStorage, USBClassHub, USBClassCDCData, USBClassSmartCard, USBClassVideo, USBClassDiagnostic, USBClassWireless: return fmt.Sprintf("%s(%#x,%#x,%#x,%#x)", n.DeviceClass, n.VendorId, n.ProductId, n.DeviceSubClass, n.DeviceProtocol) case USBClassAppSpecific: switch n.DeviceSubClass { case USBSubClassAppSpecificFWUpdate: return fmt.Sprintf("UsbDeviceFirmwareUpdate(%#x,%#x,%#x)", n.VendorId, n.ProductId, n.DeviceProtocol) case USBSubClassAppSpecificIRDABridge: return fmt.Sprintf("UsbIrdaBridge(%#x,%#x,%#x)", n.VendorId, n.ProductId, n.DeviceProtocol) case USBSubClassAppSpecificTestAndMeasurement: return fmt.Sprintf("UsbTestAndMeasurement(%#x,%#x,%#x)", n.VendorId, n.ProductId, n.DeviceProtocol) } } return fmt.Sprintf("UsbClass(%#x,%#x,%#x,%#x,%#x)", n.VendorId, n.ProductId, n.DeviceClass, n.DeviceSubClass, n.DeviceProtocol) } // String implements [fmt.Stringer]. func (n *USBClassDevicePathNode) String() string { return devicePathString(n) } // Write implements [DevicePathNode.Write]. func (n *USBClassDevicePathNode) Write(w io.Writer) error { node := uefi.USB_CLASS_DEVICE_PATH{ Header: uefi.EFI_DEVICE_PATH_PROTOCOL{ Type: uint8(n.CompoundType().Type()), SubType: uint8(n.CompoundType().SubType())}, VendorId: n.VendorId, ProductId: n.ProductId, DeviceClass: uint8(n.DeviceClass), DeviceSubClass: uint8(n.DeviceSubClass), DeviceProtocol: uint8(n.DeviceProtocol)} node.Header.Length = uint16(binary.Size(node)) return binary.Write(w, binary.LittleEndian, &node) } // MACAddrDevicePathNode corresponds to a MAC address device path node. type MACAddrDevicePathNode struct { MACAddress MACAddress IfType NetworkInterfaceType } // AsGenericDevicePathNode implements [DevicePathNode.AsGenericDevicePathNode]. func (n *MACAddrDevicePathNode) AsGenericDevicePathNode() (*GenericDevicePathNode, error) { return convertToGenericDevicePathNode(n) } // CompoundType implements [DevicePathNode.CompoundType]. func (n *MACAddrDevicePathNode) CompoundType() DevicePathNodeCompoundType { return DevicePathNodeMACAddrType } // ToString implements [DevicePathNode.ToString]. func (n *MACAddrDevicePathNode) ToString(_ DevicePathToStringFlags) string { var addr [32]uint8 if n.MACAddress != nil { addr = n.MACAddress.Bytes32() } sz := unsafe.Sizeof(addr) if n.IfType == NetworkInterfaceTypeReserved || n.IfType == NetworkInterfaceTypeEthernet { sz = 6 } return fmt.Sprintf("MacAddr(%02x,%#x)", addr[:sz], n.IfType) } // String implements [fmt.Stringer]. func (n *MACAddrDevicePathNode) String() string { return devicePathString(n) } // Write implements [DevicePathNode.Write]. func (n *MACAddrDevicePathNode) Write(w io.Writer) error { node := uefi.MAC_ADDR_DEVICE_PATH{ Header: uefi.EFI_DEVICE_PATH_PROTOCOL{ Type: uint8(n.CompoundType().Type()), SubType: uint8(n.CompoundType().SubType()), }, IfType: uint8(n.IfType), } node.Header.Length = uint16(binary.Size(node)) if n.MACAddress != nil { node.MacAddress = uefi.EFI_MAC_ADDRESS{ Addr: n.MACAddress.Bytes32(), } } return binary.Write(w, binary.LittleEndian, &node) } // IPv4DevicePathNode corresponds to an IPv4 address device path node. type IPv4DevicePathNode struct { LocalAddress IPv4Address // Local IP address RemoteAddress IPv4Address // Remote IP address LocalPort uint16 // Local port (if Protocol is IPProtocolTCP or IPProtocolUDP) RemotePort uint16 // Remote port (if Protocol is IPProtocolTCP or IPProtocolUDP) Protocol IPProtocol // IP protocol LocalAddressOrigin IPv4AddressOrigin // The origin of the local address (static or DHCP) GatewayAddress IPv4Address // Gateway IP address SubnetMask IPv4Address // Used to determine the range of IP addresses on the subnet associated with LocalAddress } // CompoundType implements [DevicePathNode.CompoundType]. func (n *IPv4DevicePathNode) CompoundType() DevicePathNodeCompoundType { return DevicePathNodeIPv4Type } // AsGenericDevicePathNode implements [DevicePathNode.AsGenericDevicePathNode]. func (n *IPv4DevicePathNode) AsGenericDevicePathNode() (*GenericDevicePathNode, error) { return convertToGenericDevicePathNode(n) } // ToString implements [DevicePathNode.ToString]. func (n *IPv4DevicePathNode) ToString(flags DevicePathToStringFlags) string { var b strings.Builder fmt.Fprintf(&b, "IPv4(%s", n.RemoteAddress) if flags.DisplayOnly() { b.WriteString(")") return b.String() } fmt.Fprintf(&b, ",%s,%s,%s,%s,%s)", n.Protocol, n.LocalAddressOrigin, n.LocalAddress, n.GatewayAddress, n.SubnetMask) return b.String() } // String implements [fmt.Stringer]. func (n *IPv4DevicePathNode) String() string { return devicePathString(n) } // Write implements [DevicePathNode.Write]. func (n *IPv4DevicePathNode) Write(w io.Writer) error { node := uefi.IPv4_DEVICE_PATH{ Header: uefi.EFI_DEVICE_PATH_PROTOCOL{ Type: uint8(n.CompoundType().Type()), SubType: uint8(n.CompoundType().SubType()), }, LocalIpAddress: uefi.EFI_IPv4_ADDRESS{Addr: [4]uint8(n.LocalAddress)}, RemoteIpAddress: uefi.EFI_IPv4_ADDRESS{Addr: [4]uint8(n.RemoteAddress)}, LocalPort: n.LocalPort, RemotePort: n.RemotePort, Protocol: uint16(n.Protocol), StaticIpAddress: bool(n.LocalAddressOrigin), GatewayIpAddress: uefi.EFI_IPv4_ADDRESS{Addr: [4]uint8(n.GatewayAddress)}, SubnetMask: uefi.EFI_IPv4_ADDRESS{Addr: [4]uint8(n.SubnetMask)}, } node.Header.Length = uint16(binary.Size(node)) return binary.Write(w, binary.LittleEndian, &node) } // IPv6DevicePathNode corresponds to an IPv6 address device path node. type IPv6DevicePathNode struct { LocalAddress IPv6Address // Local IP address RemoteAddress IPv6Address // Remote IP address LocalPort uint16 // Local port (if Protocol is IPProtocolTCP or IPProtocolUDP) RemotePort uint16 // Remote port (if Protocol is IPProtocolTCP or IPProtocolUDP) Protocol IPProtocol // IP protocol LocalAddressOrigin IPv6AddressOrigin // The origin of the local address (static, SLAAC, or DHCPv6) PrefixLength uint8 // Prefix length in bits - used to determine the range of IP addresses on the subnet associated with LocalAddress GatewayAddress IPv6Address // Gateway IP address } // CompoundType implements [DevicePathNode.CompoundType]. func (n *IPv6DevicePathNode) CompoundType() DevicePathNodeCompoundType { return DevicePathNodeIPv6Type } // AsGenericDevicePathNode implements [DevicePathNode.AsGenericDevicePathNode]. func (n *IPv6DevicePathNode) AsGenericDevicePathNode() (*GenericDevicePathNode, error) { return convertToGenericDevicePathNode(n) } // ToString implements [DevicePathNode.ToString]. func (n *IPv6DevicePathNode) ToString(flags DevicePathToStringFlags) string { var b strings.Builder fmt.Fprintf(&b, "IPv6(%s", n.RemoteAddress) if flags.DisplayOnly() { b.WriteString(")") return b.String() } fmt.Fprintf(&b, ",%s,%s,%s,%#x,%s)", n.Protocol, n.LocalAddressOrigin, n.LocalAddress, n.PrefixLength, n.GatewayAddress) return b.String() } // String implements [fmt.Stringer]. func (n *IPv6DevicePathNode) String() string { return devicePathString(n) } // Write implements [DevicePathNode.Write]. func (n *IPv6DevicePathNode) Write(w io.Writer) error { node := uefi.IPv6_DEVICE_PATH{ Header: uefi.EFI_DEVICE_PATH_PROTOCOL{ Type: uint8(n.CompoundType().Type()), SubType: uint8(n.CompoundType().SubType()), }, LocalIpAddress: uefi.EFI_IPv6_ADDRESS{Addr: [16]uint8(n.LocalAddress)}, RemoteIpAddress: uefi.EFI_IPv6_ADDRESS{Addr: [16]uint8(n.RemoteAddress)}, LocalPort: n.LocalPort, RemotePort: n.RemotePort, Protocol: uint16(n.Protocol), IpAddressOrigin: uint8(n.LocalAddressOrigin), PrefixLength: n.PrefixLength, GatewayIpAddress: uefi.EFI_IPv6_ADDRESS{Addr: [16]uint8(n.GatewayAddress)}, } node.Header.Length = uint16(binary.Size(node)) return binary.Write(w, binary.LittleEndian, &node) } // USBWWIDDevicePathNode corresponds to a USB WWID device path node. type USBWWIDDevicePathNode struct { InterfaceNumber uint16 VendorId uint16 ProductId uint16 SerialNumber string } // CompoundType implements [DevicePathNode.CompoundType]. func (n *USBWWIDDevicePathNode) CompoundType() DevicePathNodeCompoundType { return DevicePathNodeUSBWWIDType } // AsGenericDevicePathNode implements [DevicePathNode.AsGenericDevicePathNode]. func (n *USBWWIDDevicePathNode) AsGenericDevicePathNode() (*GenericDevicePathNode, error) { return convertToGenericDevicePathNode(n) } // ToString implements [DevicePathNode.ToString]. func (n *USBWWIDDevicePathNode) ToString(_ DevicePathToStringFlags) string { return fmt.Sprintf("UsbWwid(%#x,%#x,%#x,\"%s\"", n.VendorId, n.ProductId, n.InterfaceNumber, n.SerialNumber) } // String implements [fmt.Stringer]. func (n *USBWWIDDevicePathNode) String() string { return devicePathString(n) } // Write implements [DevicePathNode.Write]. func (n *USBWWIDDevicePathNode) Write(w io.Writer) error { node := uefi.USB_WWID_DEVICE_PATH{ Header: uefi.EFI_DEVICE_PATH_PROTOCOL{ Type: uint8(n.CompoundType().Type()), SubType: uint8(n.CompoundType().SubType())}, InterfaceNumber: n.InterfaceNumber, VendorId: n.VendorId, ProductId: n.ProductId, SerialNumber: ConvertUTF8ToUTF16(n.SerialNumber)} length := binary.Size(node.Header) + int(unsafe.Sizeof(node.InterfaceNumber)+unsafe.Sizeof(node.VendorId)+unsafe.Sizeof(node.ProductId)) serialNumSz := binary.Size(node.SerialNumber) if serialNumSz > math.MaxUint16-length { return errors.New("SerialNumber too long") } node.Header.Length = uint16(length + serialNumSz) return binary.Write(w, binary.LittleEndian, &node) } type DeviceLogicalUnitDevicePathNode struct { LUN uint8 } // CompoundType implements [DevicePathNode.CompoundType]. func (n *DeviceLogicalUnitDevicePathNode) CompoundType() DevicePathNodeCompoundType { return DevicePathNodeDeviceLogicalUnitType } // AsGenericDevicePathNode implements [DevicePathNode.AsGenericDevicePathNode]. func (n *DeviceLogicalUnitDevicePathNode) AsGenericDevicePathNode() (*GenericDevicePathNode, error) { return convertToGenericDevicePathNode(n) } // ToString implements [DevicePathNode.ToString]. func (n *DeviceLogicalUnitDevicePathNode) ToString(_ DevicePathToStringFlags) string { return fmt.Sprintf("Unit(%#x)", n.LUN) } // String implements [fmt.Stringer]. func (n *DeviceLogicalUnitDevicePathNode) String() string { return devicePathString(n) } // Write implements [DevicePathNode.Write]. func (n *DeviceLogicalUnitDevicePathNode) Write(w io.Writer) error { node := uefi.DEVICE_LOGICAL_UNIT_DEVICE_PATH{ Header: uefi.EFI_DEVICE_PATH_PROTOCOL{ Type: uint8(n.CompoundType().Type()), SubType: uint8(n.CompoundType().SubType())}, Lun: n.LUN} node.Header.Length = uint16(binary.Size(node)) return binary.Write(w, binary.LittleEndian, &node) } // SATADevicePathNode corresponds to a SATA device path node. type SATADevicePathNode struct { HBAPortNumber uint16 // The zero indexed port number on the HBA PortMultiplierPortNumber uint16 // The port multiplier (or 0xFFFF if the device is connected directly to the HBA) LUN uint16 // Logical unit number } // CompoundType implements [DevicePathNode.CompoundType]. func (n *SATADevicePathNode) CompoundType() DevicePathNodeCompoundType { return DevicePathNodeSATAType } // AsGenericDevicePathNode implements [DevicePathNode.AsGenericDevicePathNode]. func (n *SATADevicePathNode) AsGenericDevicePathNode() (*GenericDevicePathNode, error) { return convertToGenericDevicePathNode(n) } // ToString implements [DevicePathNode.ToString]. func (n *SATADevicePathNode) ToString(_ DevicePathToStringFlags) string { return fmt.Sprintf("Sata(%#x,%#x,%#x)", n.HBAPortNumber, n.PortMultiplierPortNumber, n.LUN) } // String implements [fmt.Stringer]. func (n *SATADevicePathNode) String() string { return devicePathString(n) } // Write implements [DevicePathNode.Write]. func (n *SATADevicePathNode) Write(w io.Writer) error { node := uefi.SATA_DEVICE_PATH{ Header: uefi.EFI_DEVICE_PATH_PROTOCOL{ Type: uint8(n.CompoundType().Type()), SubType: uint8(n.CompoundType().SubType())}, HBAPortNumber: n.HBAPortNumber, PortMultiplierPortNumber: n.PortMultiplierPortNumber, Lun: n.LUN} node.Header.Length = uint16(binary.Size(node)) return binary.Write(w, binary.LittleEndian, &node) } // NVMENamespaceDevicePathNode corresponds to a NVME namespace device path node. type NVMENamespaceDevicePathNode struct { NamespaceID uint32 // Namespace identifier NamespaceUUID EUI64 // EUI-64 unique identifier. This is set to 0 where not supported } // CompoundType implements [DevicePathNode.CompoundType]. func (n *NVMENamespaceDevicePathNode) CompoundType() DevicePathNodeCompoundType { return DevicePathNodeNVMENamespaceType } // AsGenericDevicePathNode implements [DevicePathNode.AsGenericDevicePathNode]. func (n *NVMENamespaceDevicePathNode) AsGenericDevicePathNode() (*GenericDevicePathNode, error) { return convertToGenericDevicePathNode(n) } // ToString implements [DevicePathNode.ToString]. func (n *NVMENamespaceDevicePathNode) ToString(_ DevicePathToStringFlags) string { return fmt.Sprintf("NVMe(%#x,%s)", n.NamespaceID, n.NamespaceUUID) } // String implements [fmt.Stringer]. func (n *NVMENamespaceDevicePathNode) String() string { return devicePathString(n) } // Write implements [DevicePathNode.Write]. func (n *NVMENamespaceDevicePathNode) Write(w io.Writer) error { // Convert the UUID back from EUI64 to uint64, big-endian. uuid := binary.BigEndian.Uint64(n.NamespaceUUID[:]) node := uefi.NVME_NAMESPACE_DEVICE_PATH{ Header: uefi.EFI_DEVICE_PATH_PROTOCOL{ Type: uint8(n.CompoundType().Type()), SubType: uint8(n.CompoundType().SubType())}, NamespaceId: n.NamespaceID, NamespaceUuid: uuid} node.Header.Length = uint16(binary.Size(node)) return binary.Write(w, binary.LittleEndian, &node) } // MBRType describes a disk header type type MBRType uint8 // String implements [fmt.Stringer]. func (t MBRType) String() string { switch t { case LegacyMBR: return "MBR" case GPT: return "GPT" default: return strconv.FormatUint(uint64(t), 10) } } const ( // LegacyMBR indicates that a disk has a MBR header. LegacyMBR MBRType = uefi.MBR_TYPE_PCAT // GPT indicates that a disk has a GPT header. GPT MBRType = uefi.MBR_TYPE_EFI_PARTITION_TABLE_HEADER ) // HardDriveSignatureType describes the type of unique identifier associated // with a hard drive. type HardDriveSignatureType uint8 const ( // NoHardDriveSignature indicates there is no signature. This can // be represented by the value EmptyHardDriveSignature. NoHardDriveSignature HardDriveSignatureType = uefi.NO_DISK_SIGNATURE // HardDriveSignatureTypeMBR indicates that the unique identifier // is a MBR unique signature. This is represented by the // MBRHardDriveSignature type. HardDriveSignatureTypeMBR HardDriveSignatureType = uefi.SIGNATURE_TYPE_MBR // HardDriveSignatureTypeGUID indicates that the unique identifier // is a GUID. This is represented by the GUIDHardDriveSignature type. HardDriveSignatureTypeGUID HardDriveSignatureType = uefi.SIGNATURE_TYPE_GUID ) // String implements [fmt.Stringer]. func (t HardDriveSignatureType) String() string { switch t { case HardDriveSignatureTypeMBR: return "MBR" case HardDriveSignatureTypeGUID: return "GPT" default: return strconv.FormatUint(uint64(t), 10) } } // HardDriveSignature is an abstraction for a unique hard drive identifier. type HardDriveSignature interface { fmt.Stringer Data() [16]uint8 // the raw signature data Type() HardDriveSignatureType // Signature type } type emptyHardDriveSignatureType struct{} func (emptyHardDriveSignatureType) String() string { return "" } func (emptyHardDriveSignatureType) Data() [16]uint8 { var emptySignature [16]uint8 return emptySignature } func (emptyHardDriveSignatureType) Type() HardDriveSignatureType { return NoHardDriveSignature } // EmptyHardDriveSignature is an empty [HardDriveSignature]. var EmptyHardDriveSignature = emptyHardDriveSignatureType{} // GUIDHardDriveSignature is a [HardDriveSignature] for GPT drives. type GUIDHardDriveSignature GUID // String implements [fmt.Stringer]. func (s GUIDHardDriveSignature) String() string { return GUID(s).String() } // Data implements [HardDriveSignature.Data]. func (s GUIDHardDriveSignature) Data() (out [16]uint8) { copy(out[:], s[:]) return out } // Type implements [HardDriveSignature.Type]. func (GUIDHardDriveSignature) Type() HardDriveSignatureType { return HardDriveSignatureTypeGUID } // MBRHardDriveSignature is a [HardDriveSignature] for legacy MBR drives. type MBRHardDriveSignature uint32 // String implements [fmt.Stringer]. func (s MBRHardDriveSignature) String() string { return fmt.Sprintf("%#08x", uint32(s)) } // Data implements [HardDriveSignature.Data]. func (s MBRHardDriveSignature) Data() (out [16]uint8) { binary.LittleEndian.PutUint32(out[:], uint32(s)) return out } // Type implements [HardDriveSignature.Type]. func (s MBRHardDriveSignature) Type() HardDriveSignatureType { return HardDriveSignatureTypeMBR } type unknownHardDriveSignature struct { typ HardDriveSignatureType data [16]uint8 } func (s *unknownHardDriveSignature) String() string { return fmt.Sprintf("%x", s.data) } func (s *unknownHardDriveSignature) Data() [16]uint8 { return s.data } func (s *unknownHardDriveSignature) Type() HardDriveSignatureType { return s.typ } // HardDriveDevicePathNode corresponds to a hard drive device path node. type HardDriveDevicePathNode struct { PartitionNumber uint32 // 1-indexed partition number PartitionStart uint64 // Starting LBA PartitionSize uint64 // Size in number of LBAs Signature HardDriveSignature // Signature, the type of which is implementation specific (GPT vs MBR) MBRType MBRType // Legacy MBR or GPT } // CompoundType implements [DevicePathNode.CompoundType]. func (n *HardDriveDevicePathNode) CompoundType() DevicePathNodeCompoundType { return DevicePathNodeHardDriveType } // AsGenericDevicePathNode implements [DevicePathNode.AsGenericDevicePathNode]. func (n *HardDriveDevicePathNode) AsGenericDevicePathNode() (*GenericDevicePathNode, error) { return convertToGenericDevicePathNode(n) } // ToString implements [DevicePathNode.ToString]. func (n *HardDriveDevicePathNode) ToString(flags DevicePathToStringFlags) string { var b strings.Builder signature := n.Signature if signature == nil { signature = EmptyHardDriveSignature } fmt.Fprintf(&b, "HD(%d,%s,", n.PartitionNumber, signature.Type()) switch signature.Type() { case NoHardDriveSignature: b.WriteString("0") case HardDriveSignatureTypeMBR, HardDriveSignatureTypeGUID: fmt.Fprintf(&b, "%s", signature) default: fmt.Fprintf(&b, "%x", signature.Data()) } if !flags.DisplayOnly() { fmt.Fprintf(&b, ",%#x,%#x", n.PartitionStart, n.PartitionSize) } b.WriteString(")") return b.String() } // ToString implements [DevicePathNode.ToString]. func (n *HardDriveDevicePathNode) String() string { return devicePathString(n) } // Write implements [DevicePathNode.Write]. func (n *HardDriveDevicePathNode) Write(w io.Writer) error { node := uefi.HARDDRIVE_DEVICE_PATH{ Header: uefi.EFI_DEVICE_PATH_PROTOCOL{ Type: uint8(n.CompoundType().Type()), SubType: uint8(n.CompoundType().SubType())}, PartitionNumber: n.PartitionNumber, PartitionStart: n.PartitionStart, PartitionSize: n.PartitionSize, MBRType: uint8(n.MBRType)} node.Header.Length = uint16(binary.Size(node)) signature := n.Signature if signature == nil { signature = EmptyHardDriveSignature } node.SignatureType = uint8(signature.Type()) if signature.Type() == NoHardDriveSignature && signature.Data() != EmptyHardDriveSignature.Data() { return errors.New("inconsistent signature and signature type: expected empty signature for NoHardDriveSignature signature type") } node.Signature = signature.Data() return binary.Write(w, binary.LittleEndian, &node) } // NewHardDriveDevicePathNodeFromDevice constructs a HardDriveDevicePathNode for the // specified partition on the supplied device reader. The device's total size and // logical block size must be supplied. func NewHardDriveDevicePathNodeFromDevice(r io.ReaderAt, totalSz, blockSz int64, part int) (*HardDriveDevicePathNode, error) { if part < 1 { return nil, errors.New("invalid partition number") } table, err := ReadPartitionTable(r, totalSz, blockSz, PrimaryPartitionTable, true) switch { case err == ErrStandardMBRFound: record, err := mbr.ReadRecord(io.NewSectionReader(r, 0, totalSz)) if err != nil { return nil, err } if part > 4 { return nil, fmt.Errorf("invalid partition number %d for MBR", part) } entry := record.Partitions[part-1] return &HardDriveDevicePathNode{ PartitionNumber: uint32(part), PartitionStart: uint64(entry.StartingLBA), PartitionSize: uint64(entry.NumberOfSectors), Signature: MBRHardDriveSignature(record.UniqueSignature), MBRType: LegacyMBR}, nil case err != nil: return nil, err default: if part > len(table.Entries) { return nil, fmt.Errorf("invalid partition number %d: device only has %d partitions", part, len(table.Entries)) } entry := table.Entries[part-1] if entry.PartitionTypeGUID == UnusedPartitionType { return nil, errors.New("requested partition is unused") } return &HardDriveDevicePathNode{ PartitionNumber: uint32(part), PartitionStart: uint64(entry.StartingLBA), PartitionSize: uint64(entry.EndingLBA - entry.StartingLBA + 1), Signature: GUIDHardDriveSignature(entry.UniquePartitionGUID), MBRType: GPT}, nil } } // CDROMDevicePathNode corresponds to a CDROM device path node. type CDROMDevicePathNode struct { BootEntry uint32 PartitionStart uint64 PartitionSize uint64 } // CompoundType implements [DevicePathNode.CompoundType]. func (n *CDROMDevicePathNode) CompoundType() DevicePathNodeCompoundType { return DevicePathNodeCDROMType } // AsGenericDevicePathNode implements [DevicePathNode.AsGenericDevicePathNode]. func (n *CDROMDevicePathNode) AsGenericDevicePathNode() (*GenericDevicePathNode, error) { return convertToGenericDevicePathNode(n) } // ToString implements [DevicePathNode.ToString]. func (n *CDROMDevicePathNode) ToString(flags DevicePathToStringFlags) string { if flags.DisplayOnly() { return fmt.Sprintf("CDROM(%#x)", n.BootEntry) } return fmt.Sprintf("CDROM(%#x,%#x,%#x)", n.BootEntry, n.PartitionStart, n.PartitionSize) } // String implements [fmt.Stringer]. func (n *CDROMDevicePathNode) String() string { return devicePathString(n) } // Write implements [DevicePathNode.Write]. func (n *CDROMDevicePathNode) Write(w io.Writer) error { node := uefi.CDROM_DEVICE_PATH{ Header: uefi.EFI_DEVICE_PATH_PROTOCOL{ Type: uint8(n.CompoundType().Type()), SubType: uint8(n.CompoundType().SubType())}, BootEntry: n.BootEntry, PartitionStart: n.PartitionStart, PartitionSize: n.PartitionSize} node.Header.Length = uint16(binary.Size(node)) return binary.Write(w, binary.LittleEndian, &node) } // FilePathDevicePathNode corresponds to a file path device path node. type FilePathDevicePathNode string // CompoundType implements [DevicePathNode.CompoundType]. func (n FilePathDevicePathNode) CompoundType() DevicePathNodeCompoundType { return DevicePathNodeFilePathType } // AsGenericDevicePathNode implements [DevicePathNode.AsGenericDevicePathNode]. func (n FilePathDevicePathNode) AsGenericDevicePathNode() (*GenericDevicePathNode, error) { return convertToGenericDevicePathNode(n) } // ToString implements [DevicePathNode.ToString]. func (n FilePathDevicePathNode) ToString(_ DevicePathToStringFlags) string { return string(n) } // String implements [fmt.Stringer]. func (n FilePathDevicePathNode) String() string { return devicePathString(n) } // Write implements [DevicePathNode.Write]. func (n FilePathDevicePathNode) Write(w io.Writer) error { node := uefi.FILEPATH_DEVICE_PATH{ Header: uefi.EFI_DEVICE_PATH_PROTOCOL{ Type: uint8(n.CompoundType().Type()), SubType: uint8(n.CompoundType().SubType())}, PathName: ConvertUTF8ToUTF16(string(n) + "\x00")} length := int(binary.Size(node.Header)) pathSz := binary.Size(node.PathName) if pathSz > math.MaxUint16-length { return errors.New("PathName too large") } node.Header.Length = uint16(length + pathSz) return node.Write(w) } // NewFilePathDevicePathNode constructs a new FilePathDevicePathNode from the supplied // path, converting the OS native separators to EFI separators ("\") and prepending // a separator to the start of the path if one doesn't already exist. func NewFilePathDevicePathNode(path string) (out FilePathDevicePathNode) { components := strings.Split(path, string(os.PathSeparator)) if !filepath.IsAbs(path) { out = FilePathDevicePathNode("\\") } return out + FilePathDevicePathNode(strings.Join(components, "\\")) } // MediaFvFileDevicePathNode corresponds to a firmware volume file device path node. // // Deprecated: use [FWFileDevicePathNode]. type MediaFvFileDevicePathNode = FWFileDevicePathNode // FWFileDevicePathNode corresponds to a firmware volume file device path node. type FWFileDevicePathNode GUID // CompoundType implements [DevicePathNode.CompoundType]. func (n FWFileDevicePathNode) CompoundType() DevicePathNodeCompoundType { return DevicePathNodeFwFileType } // AsGenericDevicePathNode implements [DevicePathNode.AsGenericDevicePathNode]. func (n FWFileDevicePathNode) AsGenericDevicePathNode() (*GenericDevicePathNode, error) { return convertToGenericDevicePathNode(n) } // ToString implements [DevicePathNode.ToString]. func (n FWFileDevicePathNode) ToString(flags DevicePathToStringFlags) string { if flags.DisplayFWGUIDNames() { fvFileNameLookupMu.Lock() defer fvFileNameLookupMu.Unlock() if fvFileNameLookup != nil { name, known := fvFileNameLookup(GUID(n)) if known { return fmt.Sprintf("FvFile(%s)", name) } } } return fmt.Sprintf("FvFile(%s)", GUID(n)) } // String implements [fmt.Stringer]. func (n FWFileDevicePathNode) String() string { return devicePathString(n) } // Write implements [DevicePathNode.Write]. func (n FWFileDevicePathNode) Write(w io.Writer) error { node := uefi.MEDIA_FW_VOL_FILEPATH_DEVICE_PATH{ Header: uefi.EFI_DEVICE_PATH_PROTOCOL{ Type: uint8(n.CompoundType().Type()), SubType: uint8(n.CompoundType().SubType())}, FvFileName: uefi.EFI_GUID(n)} node.Header.Length = uint16(binary.Size(node)) return binary.Write(w, binary.LittleEndian, &node) } var ( fvFileNameLookupMu sync.Mutex fvFileNameLookup func(GUID) (string, bool) ) // RegisterMediaFvFileNameLookup registers a function that can map guids to // strings for well known names, and these will be displayed by // [FWFileDevicePathNode.String] and [FWFileDevicePathNode.ToString] // if the flags argument is marked as display only. Note that this does make the // string representation of the path unparseable, if the string is being used // in such a way (this package doesn't yet have any ways of parsing device paths // that are in string form). // // Just importing [github.com/canonical/go-efilib/guids] is sufficient to register // a function that does this. It's included in a separate and optional package for // systems that are concerned about binary size. // // Deprecated: use [RegisterFWFileNameLookup]. func RegisterMediaFvFileNameLookup(fn func(GUID) (string, bool)) { RegisterFWFileNameLookup(fn) } // RegisterFWFileNameLookup registers a function that can map guids to // strings for well known names, and these will be displayed by // [FWFileDevicePathNode.String] and [FWFileDevicePathNode.ToString] // if the flags argument is marked as display only. Note that this does make the // string representation of the path unparseable, if the string is being used // in such a way (this package doesn't yet have any ways of parsing device paths // that are in string form). // // Just importing [github.com/canonical/go-efilib/guids] is sufficient to register // a function that does this. It's included in a separate and optional package for // systems that are concerned about binary size. func RegisterFWFileNameLookup(fn func(GUID) (string, bool)) { fvFileNameLookupMu.Lock() defer fvFileNameLookupMu.Unlock() fvFileNameLookup = fn } // MediaFvDevicePathNode corresponds to a firmware volume device path node. // // Deprecated: use [FWVolDevicePathNode]. type MediaFvDevicePathNode = FWVolDevicePathNode // FWVolDevicePathNode corresponds to a firmware volume device path node. type FWVolDevicePathNode GUID // CompoundType implements [DevicePathNode.CompoundType]. func (n FWVolDevicePathNode) CompoundType() DevicePathNodeCompoundType { return DevicePathNodeFwVolType } // AsGenericDevicePathNode implements [DevicePathNode.AsGenericDevicePathNode]. func (n FWVolDevicePathNode) AsGenericDevicePathNode() (*GenericDevicePathNode, error) { return convertToGenericDevicePathNode(n) } // ToString implements [DevicePathNode.ToString]. func (n FWVolDevicePathNode) ToString(flags DevicePathToStringFlags) string { if flags.DisplayFWGUIDNames() { fvNameLookupMu.Lock() defer fvNameLookupMu.Unlock() if fvNameLookup != nil { name, known := fvNameLookup(GUID(n)) if known { return fmt.Sprintf("Fv(%s)", name) } } } return fmt.Sprintf("Fv(%s)", GUID(n)) } // String implements [fmt.Stringer]. func (n FWVolDevicePathNode) String() string { return devicePathString(n) } // Write implements [DevicePathNode.Write]. func (n FWVolDevicePathNode) Write(w io.Writer) error { node := uefi.MEDIA_FW_VOL_DEVICE_PATH{ Header: uefi.EFI_DEVICE_PATH_PROTOCOL{ Type: uint8(n.CompoundType().Type()), SubType: uint8(n.CompoundType().SubType())}, FvName: uefi.EFI_GUID(n)} node.Header.Length = uint16(binary.Size(node)) return binary.Write(w, binary.LittleEndian, &node) } var ( fvNameLookupMu sync.Mutex fvNameLookup func(GUID) (string, bool) ) // RegisterMediaFvNameLookup registers a function that can map guids to // strings for well known names, and these will be displayed by // [FWVolDevicePathNode.String] and [FWVolDevicePathNode.ToString] // if the flags argument is marked as display only. Note that this does make the // string representation of the path unparseable, if the string is being used // in such a way (this package doesn't yet have any ways of parsing device paths // that are in string form). // // Just importing [github.com/canonical/go-efilib/guids] is sufficient to register // a function that does this. It's included in a separate and optional package for // systems that are concerned about binary size. // // Deprecated: use [RegisterFWVolNameLookup]. func RegisterMediaFvNameLookup(fn func(GUID) (string, bool)) { RegisterFWVolNameLookup(fn) } // RegisterFWVolNameLookup registers a function that can map guids to // strings for well known names, and these will be displayed by // [FWVolDevicePathNode.String] and [FWVolDevicePathNode.ToString] // if the flags argument is marked as display only. Note that this does make the // string representation of the path unparseable, if the string is being used // in such a way (this package doesn't yet have any ways of parsing device paths // that are in string form). // // Just importing [github.com/canonical/go-efilib/guids] is sufficient to register // a function that does this. It's included in a separate and optional package for // systems that are concerned about binary size. func RegisterFWVolNameLookup(fn func(GUID) (string, bool)) { fvNameLookupMu.Lock() defer fvNameLookupMu.Unlock() fvNameLookup = fn } type MediaRelOffsetRangeDevicePathNode struct { StartingOffset uint64 EndingOffset uint64 } // CompoundType implements [DevicePathNode.CompoundType]. func (n *MediaRelOffsetRangeDevicePathNode) CompoundType() DevicePathNodeCompoundType { return DevicePathNodeRelativeOffsetRangeType } // AsGenericDevicePathNode implements [DevicePathNode.AsGenericDevicePathNode]. func (n *MediaRelOffsetRangeDevicePathNode) AsGenericDevicePathNode() (*GenericDevicePathNode, error) { return convertToGenericDevicePathNode(n) } // ToString implements [DevicePathNode.ToString]. func (n *MediaRelOffsetRangeDevicePathNode) ToString(_ DevicePathToStringFlags) string { return fmt.Sprintf("Offset(%#x,%#x)", n.StartingOffset, n.EndingOffset) } // String implements [fmt.Stringer]. func (n *MediaRelOffsetRangeDevicePathNode) String() string { return devicePathString(n) } // Write implements [DevicePathNode.Write]. func (n *MediaRelOffsetRangeDevicePathNode) Write(w io.Writer) error { node := uefi.MEDIA_RELATIVE_OFFSET_RANGE_DEVICE_PATH{ Header: uefi.EFI_DEVICE_PATH_PROTOCOL{ Type: uint8(n.CompoundType().Type()), SubType: uint8(n.CompoundType().SubType())}, StartingOffset: n.StartingOffset, EndingOffset: n.EndingOffset} node.Header.Length = uint16(binary.Size(node)) return binary.Write(w, binary.LittleEndian, &node) } func decodeDevicePathNode(r io.Reader) (out DevicePathNode, err error) { var hdrBuf bytes.Buffer hdrReader := io.TeeReader(r, &hdrBuf) var hdr uefi.EFI_DEVICE_PATH_PROTOCOL if err := binary.Read(hdrReader, binary.LittleEndian, &hdr); err != nil { return nil, ioerr.EOFIsUnexpected(err) } if hdr.Length < 4 { return nil, fmt.Errorf("invalid length %d bytes (too small)", hdr.Length) } dataReader := io.LimitReader(r, int64(hdr.Length-4)) defer func() { switch { case err == io.EOF: fallthrough case errors.Is(err, io.ErrUnexpectedEOF): err = fmt.Errorf("invalid length %d bytes (too small)", hdr.Length) case err != nil: // Unexpected error should be returned untouched. case dataReader.(*io.LimitedReader).N > 0: err = fmt.Errorf("invalid length %d bytes (too large)", hdr.Length) } }() nodeReader := io.MultiReader(&hdrBuf, dataReader) switch hdr.Type { case uefi.HARDWARE_DEVICE_PATH: switch hdr.SubType { case uefi.HW_PCI_DP: var n uefi.PCI_DEVICE_PATH if err := binary.Read(nodeReader, binary.LittleEndian, &n); err != nil { return nil, err } return &PCIDevicePathNode{Function: n.Function, Device: n.Device}, nil case uefi.HW_VENDOR_DP: return readVendorDevicePathNode(nodeReader) } case uefi.ACPI_DEVICE_PATH: switch hdr.SubType { case uefi.ACPI_DP: var n uefi.ACPI_HID_DEVICE_PATH if err := binary.Read(nodeReader, binary.LittleEndian, &n); err != nil { return nil, err } return &ACPIDevicePathNode{HID: EISAID(n.HID), UID: n.UID}, nil case uefi.ACPI_EXTENDED_DP: var n uefi.ACPI_EXTENDED_HID_DEVICE_PATH if err := binary.Read(nodeReader, binary.LittleEndian, &n); err != nil { return nil, err } node := &ACPIExtendedDevicePathNode{HID: EISAID(n.HID), UID: n.UID, CID: EISAID(n.CID)} r := bufio.NewReader(nodeReader) for _, s := range []*string{&node.HIDStr, &node.UIDStr, &node.CIDStr} { v, err := r.ReadString('\x00') if err != nil { return nil, err } *s = v[:len(v)-1] } return node, nil } case uefi.MESSAGING_DEVICE_PATH: switch hdr.SubType { case uefi.MSG_ATAPI_DP: var n uefi.ATAPI_DEVICE_PATH if err := binary.Read(nodeReader, binary.LittleEndian, &n); err != nil { return nil, err } return &ATAPIDevicePathNode{ Controller: ATAPIControllerRole(n.PrimarySecondary), Drive: ATAPIDriveRole(n.SlaveMaster), LUN: n.Lun}, nil case uefi.MSG_SCSI_DP: var n uefi.SCSI_DEVICE_PATH if err := binary.Read(nodeReader, binary.LittleEndian, &n); err != nil { return nil, err } return &SCSIDevicePathNode{PUN: n.Pun, LUN: n.Lun}, nil case uefi.MSG_USB_DP: var n uefi.USB_DEVICE_PATH if err := binary.Read(nodeReader, binary.LittleEndian, &n); err != nil { return nil, err } return &USBDevicePathNode{ ParentPortNumber: n.ParentPortNumber, InterfaceNumber: n.InterfaceNumber}, nil case uefi.MSG_USB_CLASS_DP: var n uefi.USB_CLASS_DEVICE_PATH if err := binary.Read(nodeReader, binary.LittleEndian, &n); err != nil { return nil, err } return &USBClassDevicePathNode{ VendorId: n.VendorId, ProductId: n.ProductId, DeviceClass: USBClass(n.DeviceClass), DeviceSubClass: USBSubClass(n.DeviceSubClass), DeviceProtocol: USBProtocol(n.DeviceProtocol)}, nil case uefi.MSG_MAC_ADDR_DP: var n uefi.MAC_ADDR_DEVICE_PATH if err := binary.Read(nodeReader, binary.LittleEndian, &n); err != nil { return nil, err } node := &MACAddrDevicePathNode{ IfType: NetworkInterfaceType(n.IfType), } switch node.IfType { case NetworkInterfaceTypeReserved, NetworkInterfaceTypeEthernet: var addr EUI48 copy(addr[:], n.MacAddress.Addr[:]) node.MACAddress = addr default: node.MACAddress = unknownMACAddress(n.MacAddress.Addr) } return node, nil case uefi.MSG_IPv4_DP: var n uefi.IPv4_DEVICE_PATH if err := binary.Read(nodeReader, binary.LittleEndian, &n); err != nil { return nil, err } return &IPv4DevicePathNode{ LocalAddress: IPv4Address(n.LocalIpAddress.Addr), RemoteAddress: IPv4Address(n.RemoteIpAddress.Addr), LocalPort: n.LocalPort, RemotePort: n.RemotePort, Protocol: IPProtocol(n.Protocol), LocalAddressOrigin: IPv4AddressOrigin(n.StaticIpAddress), GatewayAddress: IPv4Address(n.GatewayIpAddress.Addr), SubnetMask: IPv4Address(n.SubnetMask.Addr)}, nil case uefi.MSG_IPv6_DP: var n uefi.IPv6_DEVICE_PATH if err := binary.Read(nodeReader, binary.LittleEndian, &n); err != nil { return nil, err } return &IPv6DevicePathNode{ LocalAddress: IPv6Address(n.LocalIpAddress.Addr), RemoteAddress: IPv6Address(n.RemoteIpAddress.Addr), LocalPort: n.LocalPort, RemotePort: n.RemotePort, Protocol: IPProtocol(n.Protocol), LocalAddressOrigin: IPv6AddressOrigin(n.IpAddressOrigin), PrefixLength: n.PrefixLength, GatewayAddress: IPv6Address(n.GatewayIpAddress.Addr)}, nil case uefi.MSG_VENDOR_DP: return readVendorDevicePathNode(nodeReader) case uefi.MSG_USB_WWID_DP: n, err := uefi.Read_USB_WWID_DEVICE_PATH(nodeReader) if err != nil { return nil, err } return &USBWWIDDevicePathNode{ InterfaceNumber: n.InterfaceNumber, VendorId: n.VendorId, ProductId: n.ProductId, SerialNumber: ConvertUTF16ToUTF8(n.SerialNumber)}, nil case uefi.MSG_DEVICE_LOGICAL_UNIT_DP: var n uefi.DEVICE_LOGICAL_UNIT_DEVICE_PATH if err := binary.Read(nodeReader, binary.LittleEndian, &n); err != nil { return nil, err } return &DeviceLogicalUnitDevicePathNode{LUN: n.Lun}, nil case uefi.MSG_SATA_DP: var n uefi.SATA_DEVICE_PATH if err := binary.Read(nodeReader, binary.LittleEndian, &n); err != nil { return nil, err } return &SATADevicePathNode{ HBAPortNumber: n.HBAPortNumber, PortMultiplierPortNumber: n.PortMultiplierPortNumber, LUN: n.Lun}, nil case uefi.MSG_NVME_NAMESPACE_DP: var n uefi.NVME_NAMESPACE_DEVICE_PATH if err := binary.Read(nodeReader, binary.LittleEndian, &n); err != nil { return nil, err } // Convert to the UUID to the EUI64 type, which is an 8-byte // array. It goes big-endian into the array - the MSB is the // first byte of the UUID. At least that's the way that EDK2 // prints it. The UEFI spec is a bit vague here. var uuid EUI64 binary.BigEndian.PutUint64(uuid[:], n.NamespaceUuid) return &NVMENamespaceDevicePathNode{ NamespaceID: n.NamespaceId, NamespaceUUID: uuid}, nil } case uefi.MEDIA_DEVICE_PATH: switch hdr.SubType { case uefi.MEDIA_HARDDRIVE_DP: var n uefi.HARDDRIVE_DEVICE_PATH if err := binary.Read(nodeReader, binary.LittleEndian, &n); err != nil { return nil, err } var signature HardDriveSignature switch n.SignatureType { case uefi.NO_DISK_SIGNATURE: if n.Signature != EmptyHardDriveSignature.Data() { return nil, errors.New("inconsistent signature and signature type: expected empty signature for NO_DISK_SIGNATURE") } signature = EmptyHardDriveSignature case uefi.SIGNATURE_TYPE_MBR: signature = MBRHardDriveSignature(binary.LittleEndian.Uint32(n.Signature[:])) case uefi.SIGNATURE_TYPE_GUID: signature = GUIDHardDriveSignature(n.Signature) default: signature = &unknownHardDriveSignature{ typ: HardDriveSignatureType(n.SignatureType), data: n.Signature} } return &HardDriveDevicePathNode{ PartitionNumber: n.PartitionNumber, PartitionStart: n.PartitionStart, PartitionSize: n.PartitionSize, Signature: signature, MBRType: MBRType(n.MBRType)}, nil case uefi.MEDIA_CDROM_DP: var n uefi.CDROM_DEVICE_PATH if err := binary.Read(nodeReader, binary.LittleEndian, &n); err != nil { return nil, err } return &CDROMDevicePathNode{ BootEntry: n.BootEntry, PartitionStart: n.PartitionStart, PartitionSize: n.PartitionSize}, nil case uefi.MEDIA_VENDOR_DP: return readVendorDevicePathNode(nodeReader) case uefi.MEDIA_FILEPATH_DP: n, err := uefi.Read_FILEPATH_DEVICE_PATH(nodeReader) if err != nil { return nil, err } return FilePathDevicePathNode(ConvertUTF16ToUTF8(n.PathName)), nil case uefi.MEDIA_PIWG_FW_FILE_DP: var n uefi.MEDIA_FW_VOL_FILEPATH_DEVICE_PATH if err := binary.Read(nodeReader, binary.LittleEndian, &n); err != nil { return nil, err } return FWFileDevicePathNode(GUID(n.FvFileName)), nil case uefi.MEDIA_PIWG_FW_VOL_DP: var n uefi.MEDIA_FW_VOL_DEVICE_PATH if err := binary.Read(nodeReader, binary.LittleEndian, &n); err != nil { return nil, err } return FWVolDevicePathNode(GUID(n.FvName)), nil case uefi.MEDIA_RELATIVE_OFFSET_RANGE_DP: var n uefi.MEDIA_RELATIVE_OFFSET_RANGE_DEVICE_PATH if err := binary.Read(nodeReader, binary.LittleEndian, &n); err != nil { return nil, err } return &MediaRelOffsetRangeDevicePathNode{StartingOffset: n.StartingOffset, EndingOffset: n.EndingOffset}, nil } case uefi.END_DEVICE_PATH_TYPE: if hdr.SubType != uefi.END_ENTIRE_DEVICE_PATH_SUBTYPE { return nil, fmt.Errorf("unrecognized END_DEVICE_PATH_TYPE subtype (%#x)", hdr.SubType) } var n uefi.EFI_DEVICE_PATH_PROTOCOL if err := binary.Read(nodeReader, binary.LittleEndian, &n); err != nil { return nil, err } return nil, nil } return readGenericDevicePathNode(nodeReader) } // ReadDevicePath decodes a device path from the supplied io.Reader. It will read // until it finds a termination node or an error occurs. func ReadDevicePath(r io.Reader) (out DevicePath, err error) { for i := 0; ; i++ { node, err := decodeDevicePathNode(r) switch { case err != nil && i == 0: return nil, ioerr.PassRawEOF("cannot decode node %d: %w", i, err) case err != nil: return nil, ioerr.EOFIsUnexpected("cannot decode node: %d: %w", i, err) } if node == nil { break } out = append(out, node) } return out, nil } ./github.com/canonical/go-efilib/gpt.go0000664000000000000000000002670000000000000015055 0ustar00// Copyright 2020 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package efi import ( "bytes" "encoding/binary" "errors" "fmt" "hash/crc32" "io" "strings" "github.com/canonical/go-efilib/internal/uefi" "github.com/canonical/go-efilib/mbr" ) var ( ErrCRCCheck = errors.New("CRC check failed") // the partition table header or partition entry CRC check failed ErrNoProtectiveMBR = errors.New("no protective master boot record found") // no protective MBR record was found ErrStandardMBRFound = errors.New("a MBR was found") // a standard MBR was found // ErrInvalidBackupPartitionTableLocation may be returned from // ReadPartitionTable when called with the BackupPartitionTable // role if the partition table isn't located at the end of the // device. Note that the function will still return a valid table // in this case. ErrInvalidBackupPartitionTableLocation = errors.New("backup partition table not located at end of device") // UnusedPartitionType is the type GUID of an unused partition entry. UnusedPartitionType GUID ) type InvalidGPTHeaderError string func (e InvalidGPTHeaderError) Error() string { return "invalid GPT header: " + string(e) } // PartitionTableHeader corresponds to the EFI_PARTITION_TABLE_HEADER type. type PartitionTableHeader struct { HeaderSize uint32 MyLBA LBA AlternateLBA LBA FirstUsableLBA LBA LastUsableLBA LBA DiskGUID GUID PartitionEntryLBA LBA NumberOfPartitionEntries uint32 SizeOfPartitionEntry uint32 PartitionEntryArrayCRC32 uint32 } // ReadPartitionTableHeader reads a EFI_PARTITION_TABLE_HEADER from the supplied io.Reader. // If the header signature or revision is incorrect, an error will be returned. If // checkCrc is true and the header has an invalid CRC, an error will be returned. // If checkCrc is false, then a CRC check is not performed. func ReadPartitionTableHeader(r io.Reader, checkCrc bool) (*PartitionTableHeader, error) { hdr, crc, err := uefi.Read_EFI_PARTITION_TABLE_HEADER(r) if err != nil { return nil, err } if hdr.Hdr.Signature != uefi.EFI_PTAB_HEADER_ID { return nil, InvalidGPTHeaderError("invalid signature") } if hdr.Hdr.Revision != 0x10000 { return nil, InvalidGPTHeaderError("unexpected revision") } if checkCrc && hdr.Hdr.CRC != crc { return nil, ErrCRCCheck } return &PartitionTableHeader{ HeaderSize: hdr.Hdr.HeaderSize, MyLBA: LBA(hdr.MyLBA), AlternateLBA: LBA(hdr.AlternateLBA), FirstUsableLBA: LBA(hdr.FirstUsableLBA), LastUsableLBA: LBA(hdr.LastUsableLBA), DiskGUID: GUID(hdr.DiskGUID), PartitionEntryLBA: LBA(hdr.PartitionEntryLBA), NumberOfPartitionEntries: hdr.NumberOfPartitionEntries, SizeOfPartitionEntry: hdr.SizeOfPartitionEntry, PartitionEntryArrayCRC32: hdr.PartitionEntryArrayCRC32}, nil } // Write serializes this PartitionTableHeader to w. The CRC field is // computed automatically. func (h *PartitionTableHeader) Write(w io.Writer) error { hdr := uefi.EFI_PARTITION_TABLE_HEADER{ Hdr: uefi.EFI_TABLE_HEADER{ Signature: uefi.EFI_PTAB_HEADER_ID, Revision: 0x10000, HeaderSize: h.HeaderSize}, MyLBA: uefi.EFI_LBA(h.MyLBA), AlternateLBA: uefi.EFI_LBA(h.AlternateLBA), FirstUsableLBA: uefi.EFI_LBA(h.FirstUsableLBA), LastUsableLBA: uefi.EFI_LBA(h.LastUsableLBA), DiskGUID: uefi.EFI_GUID(h.DiskGUID), PartitionEntryLBA: uefi.EFI_LBA(h.PartitionEntryLBA), NumberOfPartitionEntries: h.NumberOfPartitionEntries, SizeOfPartitionEntry: h.SizeOfPartitionEntry, PartitionEntryArrayCRC32: h.PartitionEntryArrayCRC32} hdrSize := binary.Size(hdr) if h.HeaderSize < uint32(hdrSize) { return errors.New("invalid HeaderSize") } reserved := make([]byte, int(h.HeaderSize)-hdrSize) crc := crc32.NewIEEE() binary.Write(crc, binary.LittleEndian, &hdr) crc.Write(reserved) hdr.Hdr.CRC = crc.Sum32() if err := binary.Write(w, binary.LittleEndian, &hdr); err != nil { return err } _, err := w.Write(reserved) return err } func (h *PartitionTableHeader) String() string { return fmt.Sprintf(`EFI_PARTITION_TABLE_HEADER { MyLBA: %#x, AlternateLBA: %#x, FirstUsableLBA: %#x, LastUsableLBA: %#x, DiskGUID: %v, PartitionEntryLBA: %#x, NumberOfPartitionEntries: %d, SizeOfPartitionEntry: %#x, PartitionEntryArrayCRC32: %#08x, }`, h.MyLBA, h.AlternateLBA, h.FirstUsableLBA, h.LastUsableLBA, h.DiskGUID, h.PartitionEntryLBA, h.NumberOfPartitionEntries, h.SizeOfPartitionEntry, h.PartitionEntryArrayCRC32) } // PartitionEntry corresponds to the EFI_PARTITION_ENTRY type. type PartitionEntry struct { PartitionTypeGUID GUID UniquePartitionGUID GUID StartingLBA LBA EndingLBA LBA Attributes uint64 PartitionName string } // ReadPartitionEntry reads a single EFI_PARTITION_ENTRY from r. func ReadPartitionEntry(r io.Reader) (*PartitionEntry, error) { var e uefi.EFI_PARTITION_ENTRY if err := binary.Read(r, binary.LittleEndian, &e); err != nil { return nil, err } return &PartitionEntry{ PartitionTypeGUID: GUID(e.PartitionTypeGUID), UniquePartitionGUID: GUID(e.UniquePartitionGUID), StartingLBA: LBA(e.StartingLBA), EndingLBA: LBA(e.EndingLBA), Attributes: e.Attributes, PartitionName: ConvertUTF16ToUTF8(e.PartitionName[:])}, nil } // String implements [fmt.Stringer]. func (e *PartitionEntry) String() string { return fmt.Sprintf(`EFI_PARTITION_ENTRY { PartitionTypeGUID: %s, UniquePartitionGUID: %s, StartingLBA: 0x%x, EndingLBA: %#x, Attributes: %#016x, PartitionName: %q, }`, e.PartitionTypeGUID, e.UniquePartitionGUID, e.StartingLBA, e.EndingLBA, e.Attributes, e.PartitionName) } // Write serializes this PartitionEntry to w. Note that it doesn't write // any bytes beyond the end of the EFI_PARTITION_ENTRY structure, so if the // caller is writing several entries and the partition table header defines // an entry size of greater than 128 bytes, the caller is responsible for // inserting the 0 padding bytes. func (e *PartitionEntry) Write(w io.Writer) error { entry := uefi.EFI_PARTITION_ENTRY{ PartitionTypeGUID: uefi.EFI_GUID(e.PartitionTypeGUID), UniquePartitionGUID: uefi.EFI_GUID(e.UniquePartitionGUID), StartingLBA: uefi.EFI_LBA(e.StartingLBA), EndingLBA: uefi.EFI_LBA(e.EndingLBA), Attributes: e.Attributes} partitionName := ConvertUTF8ToUTF16(e.PartitionName) if len(partitionName) > len(entry.PartitionName) { return errors.New("PartitionName is too long") } copy(entry.PartitionName[:], partitionName) return binary.Write(w, binary.LittleEndian, &entry) } func readPartitionEntries(r io.Reader, num, sz, expectedCrc uint32, checkCrc bool) (out []*PartitionEntry, err error) { crc := crc32.NewIEEE() r2 := io.TeeReader(r, crc) var buf bytes.Buffer for i := uint32(0); i < num; i++ { buf.Reset() if _, err := io.CopyN(&buf, r2, int64(sz)); err != nil { switch { case err == io.EOF && i == 0: return nil, err case err == io.EOF: err = io.ErrUnexpectedEOF } return nil, fmt.Errorf("cannot read entry %d: %w", i, err) } e, err := ReadPartitionEntry(&buf) if err != nil { return nil, err } out = append(out, e) } if checkCrc && crc.Sum32() != expectedCrc { return nil, ErrCRCCheck } return out, nil } // ReadPartitionEntries reads the specified number of EFI_PARTITION_ENTRY structures // of the specified size from the supplied io.Reader. The number and size are typically // defined by the partition table header. func ReadPartitionEntries(r io.Reader, num, sz uint32) ([]*PartitionEntry, error) { return readPartitionEntries(r, num, sz, 0, false) } var emptyPartitionType GUID // PartitionTableRole describes the role of a partition table. type PartitionTableRole int const ( PrimaryPartitionTable PartitionTableRole = iota BackupPartitionTable ) // PartitionTable describes a complete GUID partition table. type PartitionTable struct { Hdr *PartitionTableHeader Entries []*PartitionEntry } // String implements [fmt.Stringer]. func (t *PartitionTable) String() string { var b strings.Builder fmt.Fprintf(&b, `GPT { Hdr: %s, Entries: [`, indent(t.Hdr, 1)) for i, entry := range t.Entries { if entry.PartitionTypeGUID == UnusedPartitionType { continue } fmt.Fprintf(&b, "\n\t\t%d: %s,", i, indent(entry, 2)) } b.WriteString("\n\t],\n}") return b.String() } func readPartitionTable(r io.ReadSeeker, blockSz, offset int64, whence int, checkCrc bool) (*PartitionTable, error) { if _, err := r.Seek(offset, whence); err != nil { return nil, err } hdr, err := ReadPartitionTableHeader(r, checkCrc) switch { case err == io.EOF: return nil, io.ErrUnexpectedEOF case err != nil: return nil, err } if _, err := r.Seek(int64(hdr.PartitionEntryLBA)*blockSz, io.SeekStart); err != nil { return nil, err } entries, err := readPartitionEntries(r, hdr.NumberOfPartitionEntries, hdr.SizeOfPartitionEntry, hdr.PartitionEntryArrayCRC32, checkCrc) switch { case err == io.EOF: return nil, io.ErrUnexpectedEOF case err != nil: return nil, err } return &PartitionTable{hdr, entries}, nil } // ReadPartitionTable reads a complete GUID partition table from the supplied // io.Reader. The total size and logical block size of the device must be // supplied - the logical block size is 512 bytes for a file, but must be // obtained from the kernel for a block device. // // This function expects the device to have a valid protective MBR. // // If role is PrimaryPartitionTable, this will read the primary partition // table that is located immediately after the protective MBR. If role is // BackupPartitionTable, this will read the backup partition table that is // located at the end of the device. // // If checkCrc is true and either CRC check fails for the requested table, an // error will be returned. Setting checkCrc to false disables the CRC checks. // // Note that whilst this function checks the integrity of the header and // partition table entries, it does not check the contents of the partition // table entries. // // If role is BackupPartitionTable and the backup table is not located at // the end of the device, this will return ErrInvalidBackupPartitionTableLocation // along with the valid table. func ReadPartitionTable(r io.ReaderAt, totalSz, blockSz int64, role PartitionTableRole, checkCrc bool) (*PartitionTable, error) { r2 := io.NewSectionReader(r, 0, totalSz) record, err := mbr.ReadRecord(r2) switch { case errors.Is(err, mbr.ErrInvalidSignature): return nil, ErrNoProtectiveMBR case err != nil: return nil, err case !record.IsProtectiveMBR(): return nil, ErrStandardMBRFound } switch role { case PrimaryPartitionTable: return readPartitionTable(r2, blockSz, blockSz, io.SeekStart, checkCrc) case BackupPartitionTable: var offset int64 var whence int primary, primaryErr := readPartitionTable(r2, blockSz, blockSz, io.SeekStart, checkCrc) if primaryErr != nil { offset = -blockSz whence = io.SeekEnd } else { offset = int64(primary.Hdr.AlternateLBA) * blockSz whence = io.SeekStart } backup, err := readPartitionTable(r2, blockSz, offset, whence, checkCrc) if err != nil { return nil, err } if primaryErr == nil && offset != totalSz-blockSz { return backup, ErrInvalidBackupPartitionTableLocation } return backup, nil default: panic("invalid role") } } ./github.com/canonical/go-efilib/guid.go0000664000000000000000000000450200000000000015207 0ustar00// Copyright 2020 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package efi import ( "encoding/binary" "encoding/hex" "errors" "fmt" "io" "regexp" "github.com/canonical/go-efilib/internal/uefi" ) // GUID corresponds to the EFI_GUID type. type GUID [16]byte func (guid GUID) A() uint32 { return binary.LittleEndian.Uint32(guid[0:4]) } func (guid GUID) B() uint16 { return binary.LittleEndian.Uint16(guid[4:6]) } func (guid GUID) C() uint16 { return binary.LittleEndian.Uint16(guid[6:8]) } func (guid GUID) D() uint16 { return binary.BigEndian.Uint16(guid[8:10]) } func (guid GUID) E() [6]uint8 { var out [6]uint8 copy(out[:], guid[10:16]) return out } // String implements [fmt.Stringer]. func (guid GUID) String() string { return fmt.Sprintf("%08x-%04x-%04x-%04x-%012x", guid.A(), guid.B(), guid.C(), guid.D(), guid.E()) } // MakeGUID makes a new GUID from the supplied arguments. func MakeGUID(a uint32, b, c, d uint16, e [6]uint8) GUID { return GUID(uefi.New_EFI_GUID(a, b, c, d, e)) } // ReadGUID reads a EFI_GUID from the supplied io.Reader. func ReadGUID(r io.Reader) (out GUID, err error) { _, err = io.ReadFull(r, out[:]) return } var guidRe = regexp.MustCompile(`\{?([[:xdigit:]]{8})-([[:xdigit:]]{4})-([[:xdigit:]]{4})-([[:xdigit:]]{4})-([[:xdigit:]]{12})\}?`) func decodeStringUint32(s string) (uint32, error) { h, err := hex.DecodeString(s) if err != nil { return 0, err } if len(h) > 4 { return 0, errors.New("invalid length") } return binary.BigEndian.Uint32(h), nil } func decodeStringUint16(s string) (uint16, error) { h, err := hex.DecodeString(s) if err != nil { return 0, err } if len(h) > 2 { return 0, errors.New("invalid length") } return binary.BigEndian.Uint16(h), nil } // DecodeGUIDString decodes the supplied GUID string. The string must have // the format "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" and may be surrounded // by curly braces. func DecodeGUIDString(s string) (GUID, error) { m := guidRe.FindStringSubmatch(s) if m == nil { return GUID{}, errors.New("invalid format") } a, _ := decodeStringUint32(m[1]) b, _ := decodeStringUint16(m[2]) c, _ := decodeStringUint16(m[3]) d, _ := decodeStringUint16(m[4]) e, _ := hex.DecodeString(m[5]) var e2 [6]uint8 copy(e2[:], e) return MakeGUID(a, b, c, d, e2), nil } ./github.com/canonical/go-efilib/guids/0000775000000000000000000000000000000000000015042 5ustar00./github.com/canonical/go-efilib/guids/README0000664000000000000000000000024700000000000015725 0ustar00The source of well-known GUIDS is the guids.csv file, and this is sourced directly from: git@github.com:LongSoft/UEFITool.git@dc4e65fc2f8abe7a911b61021b0247bb42e518b4 ./github.com/canonical/go-efilib/guids/guidmap_generated.go0000664000000000000000000562117300000000000021054 0ustar00// NOTE: This file is generated automatically and any manual changes to it will be overwritten // // Copyright 2024 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package guids import ( "github.com/canonical/go-efilib" ) var guidToNameMap map[efi.GUID]string func init() { guidToNameMap = map[efi.GUID]string{ efi.GUID{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}: "ZeroGuid", efi.GUID{0x00, 0x00, 0x00, 0x00, 0xd6, 0x0e, 0x09, 0x4e, 0xbb, 0xf9, 0x28, 0x32, 0x5d, 0xb6, 0xba, 0x30}: "BSODDxeRuntime", efi.GUID{0x00, 0x04, 0x1f, 0xd3, 0x16, 0x7d, 0x16, 0x43, 0xbf, 0x88, 0x60, 0x65, 0x88, 0x3b, 0x40, 0x2b}: "EfiPchInfoProtocolGuid", efi.GUID{0x00, 0x05, 0x66, 0xce, 0x4d, 0x82, 0xe0, 0x11, 0xac, 0x72, 0x00, 0x02, 0xa5, 0xd5, 0xc5, 0x1b}: "HdLcdGraphicsDxe", efi.GUID{0x00, 0x06, 0x76, 0x6b, 0x5a, 0x8e, 0x45, 0x49, 0xab, 0x9c, 0x57, 0x32, 0xfa, 0x90, 0xa0, 0xb3}: "FjLanCapsuleDxe", efi.GUID{0x00, 0x09, 0x38, 0x7c, 0x96, 0x1b, 0x15, 0x46, 0x97, 0x8e, 0x89, 0xe0, 0x2e, 0x2c, 0x89, 0xd0}: "DebugDriverDxe", efi.GUID{0x00, 0x0b, 0xb2, 0xb9, 0xe5, 0x2f, 0x45, 0x84, 0xac, 0xc5, 0x8e, 0x29, 0xef, 0x01, 0xa3, 0xe6}: "AppleMemoryTest", efi.GUID{0x00, 0x10, 0x88, 0x6e, 0x49, 0x57, 0xe8, 0x11, 0x9b, 0xf0, 0x8c, 0xdc, 0xd4, 0x26, 0xc9, 0x73}: "RedfishConfigHandlerDriver", efi.GUID{0x00, 0x1a, 0x46, 0x30, 0xec, 0xde, 0xf1, 0x4e, 0xb7, 0xb2, 0x6c, 0xa9, 0x51, 0x1b, 0x59, 0x82}: "AmiAgesaAcpi", efi.GUID{0x00, 0x1b, 0x87, 0x9a, 0x16, 0x1c, 0x61, 0x4f, 0x8d, 0x2c, 0x93, 0xb6, 0x65, 0x4b, 0x5a, 0xd6}: "FdtClientDxe", efi.GUID{0x00, 0x1c, 0x59, 0x3e, 0x4a, 0x9e, 0xdf, 0x11, 0x92, 0x44, 0x00, 0x02, 0xa5, 0xd5, 0xc5, 0x1b}: "EfiMmcHostProtocolGuid", efi.GUID{0x00, 0x1e, 0x79, 0x67, 0x05, 0x0c, 0xe7, 0x4a, 0xa9, 0x21, 0xfc, 0x40, 0x57, 0x22, 0x16, 0x53}: "TxtOneTouchDxe", efi.GUID{0x00, 0x21, 0x56, 0x72, 0x75, 0x51, 0xda, 0x4b, 0xa5, 0x34, 0x49, 0x8b, 0x46, 0x2d, 0xed, 0xa3}: "MtlPchInitDxe", efi.GUID{0x00, 0x23, 0xf1, 0x33, 0xf2, 0xfb, 0xe6, 0x45, 0xb6, 0xb7, 0x79, 0xaf, 0x60, 0x29, 0xc7, 0xd4}: "CmosButtonLoadDefaultsPei", efi.GUID{0x00, 0x27, 0x80, 0x38, 0x8a, 0x86, 0x4e, 0x4b, 0x81, 0xd4, 0x4f, 0x1b, 0xdc, 0xcf, 0xb4, 0x6f}: "EfiExtendedSalSst", efi.GUID{0x00, 0x2e, 0xc9, 0xd6, 0xab, 0x1f, 0x75, 0x47, 0x83, 0x10, 0x3a, 0xc1, 0xd7, 0x74, 0xc3, 0xcd}: "GenesysInit", efi.GUID{0x00, 0x2e, 0xfe, 0x2d, 0xe9, 0x2c, 0x22, 0x41, 0x9b, 0x1f, 0xdc, 0x5a, 0x64, 0x54, 0xc8, 0xad}: "FixedFlashInfo", efi.GUID{0x00, 0x2f, 0x51, 0xc0, 0x81, 0x01, 0xc0, 0x48, 0x8b, 0x71, 0x90, 0x50, 0x4b, 0x8f, 0x99, 0x1e}: "EfiBootNameLabel", efi.GUID{0x00, 0x31, 0x34, 0xea, 0x37, 0x1a, 0x39, 0x42, 0xa3, 0xcb, 0xb9, 0x22, 0x40, 0xb9, 0x35, 0xcf}: "SdioSmm", efi.GUID{0x00, 0x31, 0x7a, 0x07, 0x67, 0x16, 0xfa, 0x45, 0xb9, 0x8c, 0x37, 0x65, 0x1b, 0x50, 0x73, 0xee}: "TpmSmbiosDxe", efi.GUID{0x00, 0x37, 0x21, 0x96, 0x86, 0xab, 0x97, 0x43, 0x9d, 0x57, 0xab, 0xc7, 0xfe, 0x75, 0x47, 0x8c}: "MpmMoselleDxe", efi.GUID{0x00, 0x37, 0x68, 0x07, 0x6b, 0x03, 0x0b, 0x44, 0x8e, 0xba, 0x63, 0x7f, 0x9e, 0xcb, 0x3d, 0xeb}: "SioSmbusAccessSmm", efi.GUID{0x00, 0x37, 0x9a, 0xc4, 0x75, 0xa1, 0x51, 0x44, 0xba, 0xe1, 0x3e, 0x5f, 0x91, 0xd0, 0xd4, 0x6a}: "DellAmdCbsApcbUpdateSmm", efi.GUID{0x00, 0x37, 0xfc, 0x7f, 0x5e, 0x7c, 0x3f, 0x42, 0xa0, 0x4b, 0x32, 0xe9, 0xf1, 0x6a, 0x67, 0x27}: "SuperMPeiPrococol", efi.GUID{0x00, 0x3f, 0xb0, 0x13, 0xb8, 0x18, 0xda, 0x48, 0x8b, 0x1c, 0xb2, 0x90, 0xc6, 0x9b, 0xaa, 0xfe}: "EzFileBrowser", efi.GUID{0x00, 0x4b, 0x8f, 0x21, 0xf0, 0xe4, 0xad, 0x4c, 0x8a, 0x90, 0x57, 0x7b, 0x83, 0x3d, 0x01, 0x28}: "BixbyDxeDxe", efi.GUID{0x00, 0x52, 0x97, 0xc4, 0xf1, 0x64, 0xb6, 0x4f, 0x97, 0x73, 0xf6, 0xa9, 0xf8, 0x9d, 0x98, 0x5e}: "SaPegDataVariable", efi.GUID{0x00, 0x59, 0x10, 0x58, 0x9f, 0x9d, 0x6e, 0x4f, 0x8e, 0x0c, 0x1f, 0x25, 0x71, 0x13, 0xa3, 0xa6}: "ADLINK_ComHotCablePEI", efi.GUID{0x00, 0x5b, 0xf0, 0xe2, 0x8b, 0x40, 0x2b, 0x4a, 0x91, 0x4b, 0xf3, 0x33, 0x0b, 0x31, 0x2f, 0x5e}: "SpeakerInit", efi.GUID{0x00, 0x63, 0xe8, 0x55, 0xb2, 0xf0, 0xaa, 0x44, 0xa5, 0xa4, 0xea, 0xee, 0xce, 0x2e, 0x98, 0x3b}: "PlatformToDriverDxe", efi.GUID{0x00, 0x67, 0xc9, 0x64, 0x4c, 0x6b, 0x0c, 0x48, 0xa3, 0xe1, 0xb8, 0xbd, 0xe8, 0xf6, 0x02, 0xb2}: "AmiPeiAfterMrcGuid", efi.GUID{0x00, 0x79, 0xfa, 0x63, 0xd2, 0x6d, 0xb3, 0x4b, 0x99, 0x76, 0x87, 0x0f, 0xe2, 0x7a, 0x53, 0xc2}: "BackButtonSmall", efi.GUID{0x00, 0x7b, 0x8f, 0xac, 0x5b, 0xc6, 0x68, 0x45, 0x88, 0x06, 0x9d, 0xea, 0x9e, 0x5f, 0x10, 0x85}: "DellStatusCodeHandlerSmm", efi.GUID{0x00, 0x86, 0xc5, 0x16, 0x4b, 0x55, 0x87, 0x45, 0x8c, 0x62, 0xa4, 0x09, 0x97, 0xcf, 0xe2, 0x06}: "ASRockNetSmtpBin", efi.GUID{0x00, 0x96, 0x8c, 0x4b, 0x58, 0x99, 0x3d, 0x44, 0xbe, 0x30, 0xf4, 0xb7, 0xa7, 0xe5, 0x34, 0x63}: "DxeSmartPowerOn", efi.GUID{0x00, 0x99, 0xdc, 0xe6, 0xf6, 0xcc, 0x2b, 0x45, 0x85, 0xfa, 0xc7, 0xf1, 0xe5, 0x2f, 0x01, 0x52}: "SlotDataUpdateDxeNeonCityEPECB", efi.GUID{0x00, 0x99, 0xf0, 0x7e, 0x97, 0x73, 0xc0, 0x45, 0x9c, 0xa6, 0x69, 0x83, 0x24, 0x39, 0x18, 0x70}: "DellAutoOsRecoveryDxe", efi.GUID{0x00, 0xa6, 0xbd, 0x57, 0xff, 0xd3, 0x59, 0x4a, 0x84, 0xcf, 0xcc, 0xb5, 0x3c, 0x94, 0x1a, 0xab}: "CrbSmbiosType4", efi.GUID{0x00, 0xae, 0x2f, 0xa8, 0x01, 0xdb, 0x37, 0x47, 0xa6, 0xda, 0x7a, 0x2e, 0x1a, 0x75, 0xc2, 0x03}: "SmbiosDataUpdateDxeSierra", efi.GUID{0x00, 0xb2, 0xf5, 0x4c, 0xb8, 0x68, 0xa5, 0x4c, 0x9e, 0xec, 0xb2, 0x3e, 0x3f, 0x50, 0x02, 0x9a}: "EfiPciIoProtocolGuid", efi.GUID{0x00, 0xb7, 0xf8, 0xe9, 0x13, 0x7e, 0x36, 0x47, 0x88, 0xda, 0x82, 0x62, 0x4a, 0xcd, 0xec, 0xdd}: "SystemInventoryInfoSmm", efi.GUID{0x00, 0xc5, 0x25, 0xce, 0x18, 0xd5, 0xe3, 0x11, 0xa1, 0x46, 0x04, 0x7d, 0x7b, 0x99, 0xe0, 0x97}: "ProjectServiceDxe", efi.GUID{0x00, 0xc6, 0x11, 0xc3, 0xe9, 0x84, 0x1e, 0x4f, 0xbf, 0x44, 0xbf, 0x36, 0xe3, 0x41, 0x51, 0x58}: "LenovoMailBoxPei", efi.GUID{0x00, 0xc9, 0x76, 0x9c, 0x8c, 0x1e, 0xe0, 0x11, 0x87, 0x66, 0x00, 0x02, 0xa5, 0xd5, 0xc5, 0x1b}: "L2X0CacheLibNull", efi.GUID{0x00, 0xcb, 0xeb, 0xec, 0xc8, 0xd9, 0xe4, 0x11, 0xaf, 0x3d, 0x8c, 0xdc, 0xd4, 0x26, 0xc9, 0x73}: "HttpBootDxe", efi.GUID{0x00, 0xd6, 0x95, 0xdc, 0xca, 0xb0, 0xec, 0x43, 0x87, 0x1a, 0x97, 0x6b, 0x8a, 0x55, 0xcc, 0xe0}: "NvramHdrInfo", efi.GUID{0x00, 0xd9, 0x0d, 0x58, 0x5d, 0x38, 0xd7, 0x11, 0x88, 0x3a, 0x00, 0x50, 0x04, 0x73, 0xd4, 0xeb}: "Uhcd", efi.GUID{0x00, 0xd9, 0xa6, 0x1a, 0xd1, 0x89, 0x21, 0x4c, 0x9c, 0x50, 0xed, 0xc7, 0x39, 0x0a, 0x67, 0xc3}: "SlotDataUpdateDxeNeonCityFPGA", efi.GUID{0x00, 0xdc, 0xea, 0x41, 0xb2, 0x8d, 0xfe, 0x4b, 0xb0, 0xea, 0xcb, 0xaa, 0xe7, 0xf4, 0xd3, 0x1b}: "SetupModifyProtocol", efi.GUID{0x00, 0xe7, 0xda, 0xb3, 0x77, 0x2a, 0xa4, 0x4e, 0xaf, 0x79, 0x32, 0x97, 0xb4, 0x84, 0xbe, 0x61}: "AmiMeasurePcioprom", efi.GUID{0x00, 0xed, 0x23, 0x3c, 0xb9, 0x56, 0x3d, 0x4b, 0x96, 0xb6, 0x44, 0xdb, 0x8f, 0xaf, 0x2e, 0x6b}: "BCVersion", efi.GUID{0x00, 0xee, 0xb0, 0xde, 0xdf, 0x18, 0x5c, 0x41, 0xaf, 0x03, 0x74, 0xd0, 0x9b, 0x0a, 0xad, 0x87}: "JedecNvDimm", efi.GUID{0x00, 0xee, 0xb1, 0xf7, 0xb2, 0xa1, 0xdd, 0x43, 0x8f, 0x1b, 0x81, 0x5f, 0x0d, 0x1c, 0xe4, 0x51}: "SataDevInfo", efi.GUID{0x00, 0xf2, 0x64, 0x4a, 0x9c, 0xf9, 0xf3, 0x42, 0x80, 0xc7, 0x0d, 0x91, 0xe2, 0xd3, 0xeb, 0x5d}: "SioGpioControlDxe", efi.GUID{0x00, 0xf3, 0x9b, 0x1f, 0xfb, 0x67, 0xee, 0x46, 0xb6, 0xe7, 0x2b, 0x6f, 0x65, 0x90, 0x53, 0x1c}: "HpCertificateManagerDriverWmiSmm", efi.GUID{0x00, 0xf6, 0xcc, 0x17, 0xa4, 0x3a, 0xf7, 0x4f, 0x82, 0xd0, 0x19, 0xcb, 0xeb, 0x78, 0xf4, 0x43}: "MePolicyHelper", efi.GUID{0x00, 0xf8, 0x3b, 0xb6, 0x67, 0xf2, 0x55, 0x4f, 0x92, 0x17, 0xe9, 0x7f, 0xb3, 0xb6, 0x98, 0x46}: "DynamicPageCount", efi.GUID{0x01, 0x03, 0xcb, 0x08, 0x02, 0xf7, 0x88, 0x4f, 0xa1, 0xa2, 0xb5, 0x1c, 0x2d, 0x99, 0xe8, 0x0c}: "SioCashDrawerPei", efi.GUID{0x01, 0x0e, 0x9d, 0x31, 0x72, 0x0f, 0xfa, 0x4b, 0x91, 0xd8, 0xeb, 0xa0, 0x49, 0xc5, 0x58, 0x2f}: "Npce285xFlashSmm", efi.GUID{0x01, 0x12, 0x57, 0x2a, 0x66, 0x49, 0xf6, 0x47, 0x8b, 0x86, 0xf3, 0x1e, 0x41, 0xf3, 0x2f, 0x10}: "EfiEventLegacyBootGuid", efi.GUID{0x01, 0x18, 0x6a, 0xdf, 0xf8, 0x70, 0x2a, 0x4e, 0x86, 0x31, 0x62, 0xe2, 0x97, 0x56, 0x56, 0x09}: "DxeSioEmi", efi.GUID{0x01, 0x18, 0xcb, 0xfd, 0x03, 0xa3, 0x30, 0x44, 0x94, 0x81, 0x28, 0xf2, 0x98, 0xc0, 0x1e, 0xc9}: "SmcSwSmiFlashProtocol", efi.GUID{0x01, 0x1e, 0x06, 0x02, 0xbd, 0xbe, 0xf5, 0x4d, 0x81, 0xb6, 0xdf, 0xc4, 0xf2, 0x3d, 0x1d, 0x00}: "SensorI2C", efi.GUID{0x01, 0x20, 0xa9, 0xd2, 0xad, 0x22, 0xb9, 0x43, 0xbe, 0xbc, 0x1b, 0x15, 0x21, 0x00, 0xd8, 0xcc}: "EfiPeiPlatformTypeWolfPassPpi", efi.GUID{0x01, 0x24, 0x6b, 0xe3, 0x51, 0x22, 0x13, 0x4b, 0xaf, 0x67, 0xa1, 0xb2, 0xec, 0x56, 0x1e, 0x36}: "DellSimulatedECSmm", efi.GUID{0x01, 0x26, 0x62, 0xfc, 0xc2, 0x83, 0x56, 0x4c, 0x9a, 0x4d, 0xe7, 0x86, 0x42, 0xdf, 0x69, 0xb1}: "FjSysmanTeutatesPowerStateBin", efi.GUID{0x01, 0x26, 0x71, 0xbd, 0x2f, 0x08, 0x59, 0x4c, 0x86, 0x77, 0x2c, 0x8a, 0x3c, 0x29, 0x79, 0x48}: "LoadFileOnFv2", efi.GUID{0x01, 0x2b, 0x30, 0x05, 0x98, 0xe8, 0x4e, 0x49, 0x9f, 0xb1, 0x9e, 0x02, 0xdc, 0x5d, 0x7c, 0xcc}: "EcMudPei", efi.GUID{0x01, 0x34, 0xf8, 0x9d, 0xa9, 0xc0, 0xbd, 0x4f, 0xbe, 0x58, 0x98, 0x64, 0x93, 0x83, 0x7b, 0xe8}: "FjFlashMapSmm", efi.GUID{0x01, 0x3b, 0x40, 0x5c, 0x30, 0x8c, 0x68, 0x4e, 0x96, 0xa0, 0x55, 0x61, 0x2f, 0x9c, 0x32, 0xb9}: "AsusEcDxeBs", efi.GUID{0x01, 0x40, 0x64, 0xbe, 0xd4, 0xe7, 0xb1, 0x48, 0xb0, 0x96, 0x8b, 0xa0, 0x47, 0xbc, 0x7a, 0xe7}: "EfiHtBistHob", efi.GUID{0x01, 0x40, 0xc9, 0xca, 0x11, 0x56, 0x40, 0x44, 0x9b, 0x21, 0xf5, 0x4b, 0x70, 0x0a, 0x1d, 0x34}: "DellSmmSystemSioProtocol", efi.GUID{0x01, 0x42, 0x84, 0x4b, 0xe9, 0x6f, 0xd1, 0x41, 0xb4, 0x6f, 0xdf, 0xfc, 0x34, 0xe4, 0x92, 0xa2}: "EfiDprRegsProgrammed", efi.GUID{0x01, 0x43, 0xf9, 0xfc, 0x63, 0x97, 0x64, 0x4a, 0xaa, 0x84, 0x78, 0x92, 0xc4, 0x71, 0x23, 0x67}: "IpSecDxe", efi.GUID{0x01, 0x4c, 0x54, 0xc1, 0xa4, 0x92, 0x98, 0x41, 0x8a, 0x84, 0x77, 0x85, 0x83, 0xc2, 0x36, 0x21}: "EfiPxeDhcp4CallbackProtocol", efi.GUID{0x01, 0x53, 0x0b, 0x8f, 0x9b, 0xc7, 0xf1, 0x44, 0x8f, 0xd3, 0x26, 0xd7, 0x3e, 0x31, 0x67, 0x00}: "PowerMgmtSmm", efi.GUID{0x01, 0x54, 0xf7, 0x12, 0x15, 0x54, 0xf3, 0x4f, 0xa9, 0x81, 0xa3, 0x9b, 0xee, 0x9f, 0x36, 0x9e}: "SerialRecovery", efi.GUID{0x01, 0x58, 0xb6, 0xcd, 0x4d, 0x49, 0x2e, 0x47, 0xa6, 0xa8, 0xaf, 0xf5, 0xb7, 0x6e, 0x8d, 0x1f}: "DellTxtConfigPei", efi.GUID{0x01, 0x5d, 0x12, 0x69, 0x51, 0xf9, 0xe9, 0x47, 0x95, 0x83, 0xef, 0x6a, 0x27, 0xaf, 0x70, 0x3e}: "SpiAccessDxe", efi.GUID{0x01, 0x5e, 0xf9, 0x14, 0x62, 0xd5, 0x2e, 0x43, 0x84, 0x4a, 0x95, 0xa4, 0x39, 0x05, 0x10, 0x7e}: "GuidBase", efi.GUID{0x01, 0x63, 0xe3, 0x87, 0x06, 0x04, 0xdb, 0x44, 0xaa, 0xf3, 0x9e, 0x0e, 0x59, 0x1f, 0x37, 0x25}: "VConfig", efi.GUID{0x01, 0x67, 0x65, 0x73, 0x3a, 0xd1, 0xab, 0x47, 0xb0, 0xee, 0x48, 0x49, 0x53, 0x7c, 0xdf, 0xac}: "SgxEarlyInitPeimSPR", efi.GUID{0x01, 0x75, 0xd6, 0xfc, 0x18, 0x35, 0x1a, 0x49, 0x92, 0xca, 0x4e, 0xbc, 0x91, 0xe8, 0x4b, 0xbe}: "AmdRAIDCoreDxe", efi.GUID{0x01, 0x79, 0x89, 0x80, 0xf6, 0x91, 0xfe, 0x4e, 0x95, 0x79, 0x33, 0x53, 0xa0, 0xc0, 0x2d, 0xab}: "SDMediaDevice", efi.GUID{0x01, 0x7e, 0x3e, 0x07, 0x11, 0x26, 0x85, 0x4e, 0xb8, 0x96, 0xa3, 0xb6, 0x76, 0x7c, 0xba, 0x00}: "AmiTsePasswordPromptEnterGuid", efi.GUID{0x01, 0x83, 0xde, 0xda, 0x29, 0xcb, 0xd5, 0x4f, 0x81, 0x48, 0x56, 0xfd, 0x24, 0x6c, 0x5b, 0x88}: "UefiApplicationEntryPoint", efi.GUID{0x01, 0x9a, 0x39, 0x11, 0x23, 0x04, 0xcc, 0x49, 0x83, 0x68, 0x85, 0x29, 0x15, 0x33, 0xc3, 0x5d}: "FprSynapticsMetallicaDriver", efi.GUID{0x01, 0xa6, 0x68, 0x04, 0x35, 0xc5, 0xfd, 0x46, 0xa9, 0x5d, 0xbb, 0xab, 0x99, 0x1b, 0x17, 0x8c}: "EfiPowerOnHobGuid", efi.GUID{0x01, 0xa7, 0x39, 0x46, 0xf9, 0x74, 0x35, 0x46, 0xb1, 0x26, 0x9f, 0xf0, 0x48, 0xd6, 0xb0, 0xd0}: "AmiTseOemPortingVar17", efi.GUID{0x01, 0xab, 0xf8, 0x26, 0xcd, 0xd3, 0x9c, 0x48, 0x98, 0x4f, 0xdf, 0xde, 0xf7, 0x68, 0x39, 0x5b}: "PeiStatusCodeMemoryPpi", efi.GUID{0x01, 0xac, 0x2d, 0xe4, 0x60, 0x22, 0x0b, 0x4d, 0xad, 0xf9, 0x86, 0xd3, 0x88, 0x83, 0x96, 0xfd}: "FjMacPei", efi.GUID{0x01, 0xb2, 0x50, 0x02, 0x3b, 0x27, 0x64, 0x4a, 0x9c, 0xac, 0x4f, 0xe9, 0xfb, 0x56, 0xf6, 0x5e}: "AmdRAIDCoreDxe", efi.GUID{0x01, 0xb3, 0x07, 0xfb, 0x02, 0x8b, 0x52, 0x49, 0x87, 0x6e, 0xd0, 0x71, 0xee, 0xca, 0x6b, 0x53}: "FjBeepOnPOSTDxe", efi.GUID{0x01, 0xba, 0x17, 0x73, 0x4c, 0xc3, 0xe2, 0x4d, 0xbb, 0x19, 0x1a, 0xd8, 0xa6, 0x12, 0xa1, 0xa4}: "FjVariableAccessServicesSmm", efi.GUID{0x01, 0xbe, 0x6b, 0x45, 0xd0, 0x99, 0xea, 0x45, 0xbb, 0x5f, 0x16, 0xd8, 0x4b, 0xed, 0xc5, 0x59}: "EfiRestExServiceBindingProtocol", efi.GUID{0x01, 0xbf, 0xae, 0x70, 0xa0, 0x9e, 0xd8, 0x48, 0xae, 0x17, 0x3a, 0x18, 0x4b, 0x12, 0xdb, 0xfe}: "TseDefaultBootOrder", efi.GUID{0x01, 0xc9, 0x3a, 0x53, 0x15, 0xa1, 0x06, 0x48, 0x9c, 0x4e, 0xbd, 0x6d, 0x72, 0xc7, 0xab, 0xde}: "UpdateErrorInfo", efi.GUID{0x01, 0xd3, 0xcf, 0xa5, 0x8d, 0x40, 0xc2, 0xe8, 0x44, 0xfe, 0x07, 0xac, 0xb1, 0xd5, 0x6b, 0xaf}: "Sff8472Pei", efi.GUID{0x01, 0xd9, 0x8e, 0x09, 0xbf, 0xc6, 0x20, 0x4d, 0x91, 0xe2, 0xa3, 0x9f, 0x0c, 0x08, 0x4a, 0x8d}: "QuickSpi", efi.GUID{0x01, 0xe1, 0x05, 0xe3, 0x3a, 0x91, 0x51, 0x4a, 0x8e, 0x0e, 0xb4, 0x61, 0x8c, 0x5d, 0xb3, 0x26}: "DellDxePchGpioControl", efi.GUID{0x01, 0xf0, 0x08, 0x1f, 0x83, 0xac, 0xd3, 0x43, 0x99, 0x6b, 0x47, 0xfa, 0xe1, 0x53, 0xcb, 0x2a}: "DisableAbtSetup", efi.GUID{0x01, 0xf5, 0x26, 0xd3, 0x17, 0x4d, 0x44, 0x6e, 0xc8, 0x40, 0x20, 0x84, 0x26, 0xf9, 0x0c, 0xec}: "Pca9535aPei", efi.GUID{0x01, 0xf8, 0xdd, 0x74, 0xdc, 0xa7, 0x10, 0x44, 0x9d, 0xf8, 0xc0, 0x8e, 0x6d, 0x9f, 0xd6, 0xbb}: "FpgaCapsule", efi.GUID{0x01, 0xfa, 0xbf, 0xae, 0xdc, 0x7e, 0xff, 0x49, 0x8d, 0x88, 0xcb, 0x84, 0x8c, 0x5e, 0x86, 0x70}: "SiPolicyPpiGuid", efi.GUID{0x01, 0xfd, 0x8a, 0x8b, 0x32, 0x8a, 0x49, 0x42, 0x98, 0x00, 0xfa, 0xbc, 0x2b, 0x10, 0x84, 0xe5}: "BluetoothSmm", efi.GUID{0x02, 0x03, 0x9c, 0xf9, 0x56, 0x92, 0x50, 0x40, 0xb4, 0x1d, 0xf2, 0x4b, 0x87, 0xf7, 0x02, 0xd2}: "KeyboardLayouts", efi.GUID{0x02, 0x0b, 0xf4, 0x71, 0x25, 0xbd, 0x6b, 0x49, 0xa2, 0xf4, 0xd9, 0xdb, 0xaf, 0x22, 0xa4, 0x9b}: "PtuLoader", efi.GUID{0x02, 0x0d, 0xab, 0x39, 0x44, 0xc2, 0xdc, 0x40, 0xb3, 0x91, 0x5a, 0x6e, 0xc2, 0xcc, 0xfc, 0x1c}: "FidoDxe", efi.GUID{0x02, 0x18, 0xcf, 0xf1, 0x94, 0x8f, 0x04, 0x45, 0xaa, 0x96, 0xce, 0x19, 0x3c, 0x57, 0xc8, 0x6e}: "PostCodeSmm", efi.GUID{0x02, 0x1c, 0x75, 0xf5, 0x78, 0x53, 0x9a, 0x46, 0x85, 0x14, 0x07, 0x56, 0x2d, 0x50, 0x57, 0xa6}: "CheckWakeUp", efi.GUID{0x02, 0x24, 0x3b, 0xc5, 0x73, 0x00, 0x8c, 0x4c, 0xb4, 0xed, 0x99, 0xf3, 0x62, 0x74, 0x2d, 0x24}: "CrbSdev", efi.GUID{0x02, 0x2d, 0x5c, 0x8f, 0x2b, 0xaf, 0xde, 0x49, 0xb8, 0xd8, 0xdf, 0x90, 0x13, 0x0a, 0x25, 0x12}: "FlashMeDxe", efi.GUID{0x02, 0x2e, 0x5a, 0x8f, 0x8c, 0x53, 0x59, 0x4d, 0xb9, 0x20, 0xc4, 0x78, 0x6a, 0xcb, 0xc5, 0x52}: "Ahci", efi.GUID{0x02, 0x35, 0x5d, 0x5f, 0x4b, 0x8a, 0xca, 0x40, 0x88, 0xa2, 0x23, 0x05, 0x42, 0x7a, 0x13, 0x1a}: "SaPegDataHob", efi.GUID{0x02, 0x4b, 0x09, 0x3c, 0x97, 0x97, 0x5e, 0x49, 0x8c, 0xa8, 0x94, 0x03, 0x71, 0x39, 0x6a, 0x08}: "FjS3SaveMem", efi.GUID{0x02, 0x51, 0xd7, 0x5a, 0x4c, 0x5b, 0xa9, 0x44, 0xa7, 0xd6, 0xda, 0x92, 0x5b, 0xbc, 0x49, 0xa5}: "EhciSmm", efi.GUID{0x02, 0x52, 0xe6, 0x1b, 0x18, 0x93, 0x2d, 0x49, 0xa5, 0x51, 0x08, 0xdf, 0x2b, 0xd6, 0x0a, 0xee}: "AmtPlatformPolicy", efi.GUID{0x02, 0x54, 0x88, 0xa6, 0x22, 0xd0, 0x0e, 0x4b, 0xa5, 0x09, 0x47, 0x11, 0xb9, 0x0f, 0x2a, 0x39}: "ReportStatusCodeRouterSmm", efi.GUID{0x02, 0x57, 0xbd, 0x7c, 0xe3, 0xc8, 0x7e, 0x4f, 0xba, 0x08, 0xec, 0x7e, 0xf1, 0xbb, 0x2d, 0x67}: "IrqTableInfo", efi.GUID{0x02, 0x59, 0xa6, 0x4a, 0xd3, 0x3e, 0xb3, 0x43, 0xa5, 0x2b, 0xfc, 0x1d, 0x6c, 0x07, 0x7a, 0xe4}: "AhciBusPei", efi.GUID{0x02, 0x6a, 0x53, 0x5c, 0xfe, 0xbd, 0x47, 0x4f, 0xbf, 0x72, 0x18, 0xff, 0x5d, 0xea, 0xf8, 0xe9}: "FchSandstonePei", efi.GUID{0x02, 0x6b, 0xbf, 0x8a, 0xc9, 0x4d, 0x98, 0x4f, 0xb9, 0xff, 0x4b, 0x32, 0x8a, 0x22, 0xae, 0x07}: "PrmPeLoaderHandler", efi.GUID{0x02, 0x73, 0x42, 0xe6, 0x37, 0x1b, 0x55, 0x4b, 0x8d, 0xd5, 0xf4, 0x3a, 0x2f, 0x01, 0x8d, 0xe2}: "AmdCpmModernStandbyInitPei", efi.GUID{0x02, 0x77, 0x31, 0xa7, 0x1c, 0x05, 0x79, 0x49, 0x9e, 0xdb, 0x96, 0x20, 0x54, 0x56, 0x7c, 0x34}: "LastPeimBeforeFspm", efi.GUID{0x02, 0x78, 0x19, 0x2a, 0x69, 0xe4, 0xa7, 0x4f, 0xa3, 0x7b, 0x2d, 0x68, 0x1b, 0xcf, 0x41, 0x6f}: "TrackPointElan", efi.GUID{0x02, 0x78, 0x36, 0xd5, 0x73, 0xb8, 0x0f, 0x4c, 0xb5, 0x44, 0x31, 0xb7, 0xcc, 0xf5, 0xc5, 0x55}: "CmosManagerHob", efi.GUID{0x02, 0x7d, 0x11, 0xd8, 0xa6, 0x94, 0xd4, 0x11, 0x9a, 0x3a, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d}: "EfiPeiTransferControl", efi.GUID{0x02, 0x87, 0x7f, 0x5c, 0x8f, 0x83, 0xdf, 0x43, 0x91, 0xe6, 0x78, 0x33, 0xb6, 0xf2, 0xa0, 0x67}: "DxeCoreReportStatusCodeLibFromHob", efi.GUID{0x02, 0x87, 0xc6, 0x61, 0x7e, 0x4d, 0x43, 0x4f, 0x8d, 0xef, 0xa7, 0x43, 0x05, 0xce, 0x74, 0xc5}: "PeiSmmControlPpiGuid", efi.GUID{0x02, 0x87, 0xcc, 0xcc, 0x68, 0xbd, 0xb1, 0x45, 0x82, 0x37, 0xc7, 0xdd, 0x00, 0x4c, 0xdb, 0x37}: "DellSmBiosStrucD2", efi.GUID{0x02, 0x94, 0xa3, 0xed, 0x75, 0xf3, 0x96, 0x44, 0x92, 0xd3, 0x83, 0xb4, 0x3c, 0xb8, 0xa7, 0x6a}: "SmBiosMemory", efi.GUID{0x02, 0x99, 0xd6, 0x42, 0xe7, 0x10, 0x07, 0x49, 0xad, 0x3b, 0x46, 0xa5, 0xbf, 0x25, 0xa1, 0xa0}: "NvmeUnlockPei", efi.GUID{0x02, 0x9b, 0xbd, 0xb2, 0xf7, 0x9d, 0x4b, 0x4e, 0xa4, 0x84, 0xc2, 0x79, 0x88, 0xef, 0xbc, 0x77}: "AsusMbSwWmiDxe", efi.GUID{0x02, 0xa1, 0xc5, 0x02, 0xea, 0x58, 0x53, 0x4e, 0x8b, 0xe1, 0x6e, 0xd1, 0xac, 0xaa, 0x70, 0x8a}: "AmdMemoryHobInfoPeim", efi.GUID{0x02, 0xa3, 0x6b, 0xa1, 0x14, 0x65, 0x87, 0x42, 0xbe, 0xe3, 0x62, 0x23, 0xb7, 0xde, 0x2c, 0x21}: "NVRAMID", efi.GUID{0x02, 0xab, 0x30, 0x70, 0x4d, 0xb0, 0xbe, 0x4a, 0x88, 0x01, 0x20, 0x20, 0x1d, 0x0c, 0x56, 0x6a}: "ASUSFancyStart", efi.GUID{0x02, 0xaf, 0xb5, 0x63, 0xc8, 0x29, 0xa1, 0x47, 0x90, 0xfb, 0x55, 0xd3, 0x31, 0xfe, 0x47, 0x91}: "AmdHotPlugSspSmm", efi.GUID{0x02, 0xb8, 0x66, 0xc1, 0x0f, 0x19, 0xfe, 0x4b, 0xb8, 0xcd, 0xee, 0x53, 0x97, 0x1a, 0x06, 0x3c}: "PeiMeCore", efi.GUID{0x02, 0xbb, 0xfd, 0x6c, 0x4b, 0xdb, 0x87, 0x4c, 0xbe, 0x13, 0xb4, 0xe7, 0x9e, 0x68, 0xce, 0x51}: "CbsBasePei", efi.GUID{0x02, 0xbc, 0x21, 0x92, 0x2e, 0x8f, 0xca, 0x4c, 0xba, 0x89, 0xea, 0x6f, 0x91, 0xa4, 0x17, 0x5e}: "CsmLoader", efi.GUID{0x02, 0xc4, 0x2e, 0xea, 0xd5, 0x2f, 0x5f, 0x47, 0x92, 0x2c, 0x98, 0xea, 0xe0, 0x37, 0x63, 0x12}: "SystemLegacyBiosDxe", efi.GUID{0x02, 0xc5, 0x7c, 0x34, 0x6c, 0xeb, 0xa0, 0x44, 0x94, 0x98, 0x60, 0x58, 0x88, 0xc9, 0x4e, 0x0d}: "HandleStatusInSMM", efi.GUID{0x02, 0xcb, 0x7c, 0x9c, 0x54, 0x91, 0x64, 0x48, 0x9e, 0x4b, 0xdc, 0x04, 0x87, 0xe3, 0x76, 0x60}: "DhcpDummyDxe", efi.GUID{0x02, 0xcf, 0x1a, 0x72, 0x77, 0x4d, 0x2a, 0x4c, 0xb3, 0xdc, 0x27, 0x0b, 0x7b, 0xa9, 0xe4, 0xb0}: "FspNonVolatileStorageHobGuid", efi.GUID{0x02, 0xd1, 0x7d, 0xc7, 0xb4, 0x1d, 0x97, 0x49, 0xae, 0x37, 0x4e, 0x8c, 0x52, 0x1e, 0xf5, 0x67}: "AmiProcessTcgSetupGuid", efi.GUID{0x02, 0xe2, 0xa0, 0x1c, 0x9e, 0xfe, 0x76, 0x47, 0x9f, 0xaa, 0x57, 0x0c, 0x19, 0x61, 0x7a, 0x06}: "EfiPciCallbackProtocol", efi.GUID{0x02, 0xe4, 0xa8, 0x03, 0xb7, 0x2a, 0xb3, 0x46, 0xb5, 0x91, 0x74, 0x03, 0x83, 0x79, 0x6b, 0x82}: "AmdMemChanXLatDummyPei", efi.GUID{0x02, 0xe7, 0x11, 0xff, 0x23, 0x89, 0xcc, 0x47, 0xad, 0x30, 0xd9, 0xe0, 0xe2, 0x40, 0xdd, 0x10}: "AAFTblDxe", efi.GUID{0x03, 0x00, 0xb8, 0x93, 0xb3, 0x9f, 0xd4, 0x11, 0x9a, 0x3a, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d}: "IsaSerialDxe", efi.GUID{0x03, 0x0a, 0x6d, 0x6b, 0x5d, 0xfd, 0x10, 0x4e, 0x97, 0x74, 0x2d, 0x3e, 0xaa, 0x62, 0xeb, 0x61}: "SklRaidDriver", efi.GUID{0x03, 0x10, 0xde, 0xda, 0x31, 0x1b, 0xe4, 0x4f, 0x85, 0x57, 0x26, 0xfc, 0xef, 0xc7, 0x82, 0x75}: "InjectorKext", efi.GUID{0x03, 0x11, 0xe0, 0x90, 0x84, 0xf7, 0x20, 0x40, 0x91, 0xac, 0xc5, 0x1e, 0x8b, 0xf5, 0x53, 0xb2}: "LenovoWmaPciDxe", efi.GUID{0x03, 0x14, 0xdd, 0xe5, 0x22, 0xd6, 0x4e, 0xc2, 0x84, 0x88, 0xc7, 0x1b, 0x17, 0xf5, 0xe8, 0x02}: "EfiAdapterInformationProtocolGuid", efi.GUID{0x03, 0x14, 0xf6, 0x2d, 0x80, 0xc1, 0xa5, 0x45, 0xa2, 0x2b, 0x1a, 0x3d, 0xb8, 0x8f, 0xe9, 0xba}: "DellGenericSioDxe", efi.GUID{0x03, 0x15, 0xbd, 0x1d, 0x60, 0x0a, 0x30, 0x42, 0xaa, 0xa3, 0x80, 0x16, 0xd8, 0xc3, 0xde, 0x2f}: "EfiSmmIpmiTransportProtocol", efi.GUID{0x03, 0x17, 0xcd, 0xf9, 0x08, 0x81, 0xcd, 0x45, 0x93, 0x84, 0x5b, 0x24, 0x7b, 0x8c, 0xaf, 0xf5}: "SerialIoDxe", efi.GUID{0x03, 0x1f, 0x68, 0x11, 0x8b, 0x6b, 0xad, 0x4c, 0x83, 0xe7, 0x58, 0x8a, 0x64, 0xbc, 0x64, 0xea}: "FjPowerOverEthernetD2927", efi.GUID{0x03, 0x21, 0xc6, 0xc7, 0x52, 0x5e, 0xbf, 0x41, 0x82, 0x0a, 0x2b, 0x2c, 0x21, 0xa8, 0x98, 0x25}: "BdatDxe", efi.GUID{0x03, 0x25, 0x05, 0xff, 0xf9, 0x1a, 0xeb, 0x4a, 0x83, 0xc4, 0xc2, 0xd4, 0xce, 0xb1, 0x0c, 0xa3}: "PhoenixEfiSmmSwSmiProtocolGuid", efi.GUID{0x03, 0x32, 0x4c, 0x44, 0xb1, 0xf8, 0xa7, 0x42, 0xab, 0xe9, 0x2e, 0x58, 0x02, 0x5b, 0xe1, 0x2a}: "FpdtPerformanceProtocol", efi.GUID{0x03, 0x37, 0x26, 0xd1, 0xc0, 0xd6, 0x54, 0x43, 0xa7, 0xbe, 0x9b, 0x63, 0x5e, 0xc9, 0x9c, 0x4a}: "TpmToollessFwUpd", efi.GUID{0x03, 0x37, 0xfc, 0xd1, 0x91, 0x65, 0xe9, 0x4a, 0xa7, 0x95, 0xc5, 0x62, 0x8c, 0xcf, 0x52, 0x36}: "DellSmmNbProtocol", efi.GUID{0x03, 0x40, 0x2c, 0x0c, 0x51, 0x65, 0xea, 0x4e, 0xb0, 0x06, 0x0f, 0xec, 0xb4, 0xbb, 0x30, 0x0b}: "RTL8111E", efi.GUID{0x03, 0x47, 0xab, 0x82, 0x33, 0xfe, 0xc3, 0x49, 0xae, 0x40, 0x4a, 0x20, 0x13, 0x2c, 0x79, 0x2a}: "AmdPspDxeV2Shp", efi.GUID{0x03, 0x5a, 0x6c, 0xc0, 0x4c, 0x70, 0xd6, 0x45, 0x80, 0x8e, 0x4d, 0x9e, 0x86, 0x78, 0x97, 0xd3}: "AppleEffaceableLocker", efi.GUID{0x03, 0x64, 0x79, 0x99, 0x03, 0xcf, 0xec, 0x42, 0xa8, 0x17, 0x71, 0x83, 0x41, 0x1d, 0x79, 0xe2}: "PchSmbusDxe", efi.GUID{0x03, 0x66, 0x98, 0x65, 0xbc, 0x43, 0xbf, 0x4a, 0x94, 0xd8, 0x5a, 0x58, 0x84, 0x73, 0x81, 0xa6}: "SiliconPolicyDxe", efi.GUID{0x03, 0x67, 0x78, 0x8b, 0xc7, 0xe8, 0xea, 0x4b, 0x8f, 0x07, 0xcd, 0xf9, 0x91, 0xb9, 0x09, 0x99}: "AmdPspDxeV2Rv", efi.GUID{0x03, 0x68, 0xd4, 0x28, 0x46, 0x76, 0xfe, 0x4d, 0x90, 0xed, 0x85, 0x75, 0x58, 0x4e, 0xd6, 0xe6}: "AmtDxePolicyInit", efi.GUID{0x03, 0x6a, 0x50, 0xaa, 0x54, 0x4a, 0x2b, 0x49, 0x8f, 0x2b, 0x9a, 0xd9, 0xa9, 0x49, 0x35, 0x8a}: "UfsBootLunIdHobGuid", efi.GUID{0x03, 0x6b, 0x56, 0x25, 0x77, 0xb5, 0xbf, 0x4c, 0x95, 0x8c, 0xed, 0x66, 0x3e, 0xa2, 0x43, 0x80}: "EfiSmmGpiDispatch2ProtocolGuid", efi.GUID{0x03, 0x71, 0xb0, 0xbe, 0xf9, 0x05, 0x5d, 0x4b, 0x89, 0xaf, 0x29, 0x47, 0x1d, 0x59, 0x3c, 0xd5}: "S5Charging", efi.GUID{0x03, 0x78, 0x4b, 0x5f, 0x5d, 0xa4, 0x0a, 0x45, 0x91, 0x05, 0xa1, 0xa2, 0x59, 0xc2, 0xd3, 0x63}: "TPMHwPresentShp", efi.GUID{0x03, 0x7b, 0x83, 0x4b, 0x87, 0x65, 0x19, 0x4d, 0xb8, 0x2b, 0xed, 0xfa, 0xd8, 0x36, 0xc0, 0xa0}: "SecMain", efi.GUID{0x03, 0x92, 0x32, 0x67, 0xa6, 0xba, 0xca, 0x49, 0xb3, 0xc2, 0x37, 0x84, 0xeb, 0x51, 0x70, 0x17}: "KvmPlatformDxe", efi.GUID{0x03, 0xa5, 0x3d, 0xac, 0xe7, 0x65, 0x53, 0x41, 0x96, 0xfc, 0x87, 0x07, 0xfb, 0x75, 0x94, 0xfb}: "ASUSBIOSInfo", efi.GUID{0x03, 0xa8, 0x32, 0x0a, 0xdf, 0xac, 0x89, 0x4c, 0x82, 0x93, 0x91, 0x01, 0x15, 0x48, 0xcd, 0x91}: "MicrocodeMeasurementDxe", efi.GUID{0x03, 0xae, 0x2c, 0xd3, 0xfe, 0xff, 0x67, 0x4f, 0xbb, 0xf9, 0x7c, 0xb8, 0x51, 0xc4, 0x58, 0x0e}: "SmcFeatureSupportFlags", efi.GUID{0x03, 0xb9, 0x2d, 0xbe, 0xc2, 0xb7, 0xbc, 0x4a, 0x8f, 0x64, 0xb0, 0x6e, 0x70, 0x5d, 0x27, 0xe7}: "PostWave", efi.GUID{0x03, 0xbe, 0x24, 0x59, 0xd8, 0x9d, 0xab, 0x4b, 0x80, 0x8f, 0xc2, 0x1c, 0xab, 0xfe, 0x0b, 0x4b}: "DellErrorHandlerPei", efi.GUID{0x03, 0xc1, 0x67, 0x84, 0xf6, 0x6f, 0x66, 0x4d, 0x86, 0xf6, 0xe1, 0x12, 0x4c, 0x11, 0x1e, 0x94}: "DellHotKeyHandlerSmm", efi.GUID{0x03, 0xc1, 0x67, 0x84, 0xf6, 0x6f, 0x66, 0x4d, 0x86, 0xf6, 0xe1, 0x12, 0x4c, 0x11, 0x1e, 0x95}: "NbLegUsbPolicyload", efi.GUID{0x03, 0xcc, 0xa8, 0xbf, 0xcd, 0xc1, 0x9e, 0x43, 0xbc, 0xf6, 0x14, 0x20, 0x7a, 0x2c, 0xde, 0x94}: "PowerEfficiencySync", efi.GUID{0x03, 0xd3, 0x22, 0x8d, 0xd5, 0x69, 0xc9, 0x40, 0xa7, 0x1e, 0x5c, 0x38, 0xc9, 0x51, 0xfc, 0x18}: "LegacyUsbIrqSolutionWADxe", efi.GUID{0x03, 0xdb, 0x8a, 0xe9, 0xb9, 0xb8, 0xf8, 0x4a, 0xba, 0x20, 0x26, 0xe9, 0x11, 0x4c, 0xbc, 0xe5}: "EfiUserCredential2ProtocolGuid", efi.GUID{0x03, 0xe6, 0xc4, 0x03, 0x28, 0xac, 0xd3, 0x11, 0x9a, 0x2d, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d}: "EfiPxeBaseCodeProtocolGuid", efi.GUID{0x03, 0xe9, 0x82, 0xc2, 0xe5, 0x24, 0x18, 0x44, 0xa9, 0x78, 0xa7, 0x41, 0x92, 0x49, 0xc9, 0xb0}: "SmmTxtConfigLock", efi.GUID{0x03, 0xec, 0x06, 0x99, 0x8e, 0xdd, 0xe4, 0x42, 0x9e, 0xc0, 0xd3, 0x3f, 0x77, 0x39, 0x72, 0x66}: "OemWorkaroundDxe", efi.GUID{0x03, 0xf3, 0xb5, 0xdb, 0x4d, 0x21, 0xc4, 0x41, 0xbe, 0xa3, 0xa1, 0xb5, 0x6a, 0x42, 0xda, 0x8b}: "IsaAcpiDriver", efi.GUID{0x04, 0x00, 0xb8, 0x93, 0xb3, 0x9f, 0xd4, 0x11, 0x9a, 0x3a, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d}: "PciBusDxe", efi.GUID{0x04, 0x04, 0x44, 0x6c, 0x74, 0x5f, 0xb8, 0x44, 0xcc, 0xe4, 0x4b, 0x04, 0x88, 0x30, 0xcc, 0xfc}: "LockLegacyResourcesDxe", efi.GUID{0x04, 0x04, 0xe7, 0x21, 0x72, 0xdf, 0x22, 0x41, 0xb0, 0x30, 0x28, 0x13, 0x06, 0xeb, 0x7b, 0xe3}: "VbtEdpTypeCGuid", efi.GUID{0x04, 0x12, 0x1d, 0x1a, 0x85, 0xe3, 0x43, 0x49, 0xa8, 0x92, 0x53, 0x34, 0xce, 0x38, 0x09, 0xac}: "DellCsmOemRom", efi.GUID{0x04, 0x1a, 0xb0, 0xd5, 0xd8, 0x24, 0xb9, 0x44, 0xa3, 0x90, 0x88, 0x8d, 0x66, 0x9a, 0x1c, 0xbf}: "HpAmdXhciSmm", efi.GUID{0x04, 0x24, 0xea, 0xfe, 0x2e, 0x75, 0x6e, 0x4e, 0x82, 0x3c, 0x87, 0x7d, 0x84, 0x8c, 0xb1, 0x2b}: "AsfSecureBootDxe", efi.GUID{0x04, 0x25, 0x4f, 0x05, 0xbc, 0xe2, 0x41, 0x46, 0x83, 0xfc, 0x50, 0x25, 0x88, 0xfe, 0x1f, 0x28}: "CpuInitDxe", efi.GUID{0x04, 0x2a, 0xe9, 0xef, 0xd0, 0xf5, 0x44, 0x4e, 0x87, 0x57, 0x25, 0xb3, 0xaf, 0xa3, 0xbf, 0xff}: "RSTeSataRaidEfi", efi.GUID{0x04, 0x31, 0xca, 0x7c, 0x1d, 0x2a, 0x84, 0x4e, 0x9c, 0x7c, 0x44, 0xb9, 0x7a, 0x23, 0x40, 0x12}: "HpSioSecurityPei", efi.GUID{0x04, 0x39, 0x0b, 0x31, 0x28, 0x07, 0x77, 0x49, 0xa9, 0x0c, 0x06, 0xb8, 0xec, 0xd8, 0x5a, 0x9f}: "A01DxeInstallHook", efi.GUID{0x04, 0x3b, 0x94, 0x70, 0x8a, 0x3b, 0x08, 0x4f, 0xa4, 0x12, 0xf9, 0x7c, 0x5b, 0x02, 0xf6, 0xbe}: "IntelPcieLanDxe", efi.GUID{0x04, 0x3e, 0xfd, 0x89, 0x47, 0xd6, 0xd1, 0x42, 0x89, 0x72, 0xa6, 0x15, 0x6f, 0xc3, 0xa0, 0xdd}: "LockLegacyResourcesPortingDxe", efi.GUID{0x04, 0x3f, 0xf7, 0x06, 0xc0, 0x36, 0xbc, 0x4c, 0xa3, 0xb0, 0x9f, 0x16, 0xfb, 0x60, 0x33, 0x50}: "OemPxeLoader", efi.GUID{0x04, 0x46, 0xbe, 0xf1, 0xb3, 0x24, 0xa5, 0x4d, 0x8b, 0xbf, 0xe8, 0x7a, 0x6c, 0x04, 0x6c, 0x93}: "CbsSetupDxeMDN", efi.GUID{0x04, 0x4b, 0xc6, 0x39, 0xab, 0x91, 0x4a, 0x4d, 0xb3, 0x43, 0x07, 0x7a, 0x56, 0x5b, 0x60, 0x89}: "FjInternalUsbConfig", efi.GUID{0x04, 0x4d, 0x69, 0x4e, 0x8b, 0x31, 0x89, 0x4f, 0xa3, 0xb3, 0xba, 0x35, 0x60, 0xfd, 0x38, 0x9e}: "HddSetupVarDefaults", efi.GUID{0x04, 0x4e, 0x9a, 0xd3, 0x2d, 0xc4, 0x41, 0x49, 0xbf, 0xbd, 0x28, 0x6d, 0xf4, 0x8b, 0x30, 0x4b}: "MeLockStatusSmm", efi.GUID{0x04, 0x51, 0x62, 0x3e, 0x20, 0x19, 0xb1, 0x44, 0xae, 0x2c, 0x1b, 0xda, 0x57, 0xed, 0x73, 0xea}: "KtiRas", efi.GUID{0x04, 0x55, 0x99, 0x70, 0xaa, 0xd7, 0xba, 0x4b, 0x80, 0x3a, 0xa3, 0xa9, 0xc7, 0x29, 0xa3, 0x7e}: "DellSmmDpstProtocol", efi.GUID{0x04, 0x55, 0xbd, 0x45, 0xa8, 0x94, 0x01, 0x43, 0xb2, 0x11, 0xb0, 0xae, 0x4f, 0x56, 0xe9, 0xae}: "ThermalSMM", efi.GUID{0x04, 0x57, 0x84, 0xce, 0x83, 0x16, 0x38, 0x4d, 0xa4, 0xf9, 0x7d, 0x0b, 0x50, 0x77, 0x57, 0x93}: "EfiPlatformBootModeGuid", efi.GUID{0x04, 0x59, 0xbf, 0xed, 0x1a, 0x49, 0x63, 0x43, 0xa5, 0x6e, 0xff, 0x57, 0x3d, 0xe5, 0x6a, 0x70}: "EmulatedEepromDxe", efi.GUID{0x04, 0x5e, 0xff, 0xd0, 0x07, 0x1d, 0x1d, 0x49, 0x97, 0x0e, 0xe2, 0x20, 0xa3, 0xb7, 0x96, 0x11}: "AmdNbioGfxRVPei", efi.GUID{0x04, 0x62, 0x2a, 0x06, 0x80, 0x8c, 0x27, 0x4a, 0x9d, 0x09, 0x96, 0x65, 0x4c, 0x96, 0x58, 0x94}: "AsusHwmSensorPortingDxe", efi.GUID{0x04, 0x74, 0xe0, 0xee, 0xee, 0x26, 0xc9, 0x43, 0x90, 0x71, 0x4e, 0x48, 0x00, 0x8c, 0x46, 0x91}: "EfiWheaSupportProtocolGuid", efi.GUID{0x04, 0x77, 0x78, 0x86, 0xed, 0x8f, 0xe3, 0x11, 0xb3, 0xff, 0xf3, 0x3b, 0x73, 0xac, 0xfe, 0xc2}: "TcpFastbootTransportDxe", efi.GUID{0x04, 0x7c, 0xcc, 0x26, 0x9d, 0x4e, 0xed, 0x4f, 0xaf, 0xba, 0xcb, 0xf2, 0x33, 0x34, 0xdc, 0x0d}: "AmtWrapperDxe", efi.GUID{0x04, 0x7d, 0x32, 0x03, 0x07, 0xc8, 0x76, 0x4b, 0x96, 0x5f, 0xb3, 0x00, 0x46, 0xf1, 0x53, 0x91}: "VtioSetup", efi.GUID{0x04, 0x80, 0x0e, 0x14, 0xe1, 0x16, 0xe1, 0x4d, 0xa3, 0x52, 0xc6, 0xef, 0x51, 0x11, 0x0e, 0xcf}: "ArmSmcLibNull", efi.GUID{0x04, 0x89, 0x7d, 0x83, 0x31, 0x22, 0x58, 0x45, 0x8f, 0x70, 0xee, 0x72, 0x79, 0x0b, 0xab, 0x9c}: "ClientronLanDevInfoDxe", efi.GUID{0x04, 0x8b, 0x8d, 0x55, 0x4e, 0x1c, 0x82, 0x47, 0xbb, 0x99, 0xaf, 0xf9, 0x03, 0x07, 0x4c, 0x26}: "AmdCpmPciHotPlugDxe", efi.GUID{0x04, 0x96, 0x93, 0x8c, 0x00, 0x07, 0x15, 0x44, 0x9d, 0x62, 0x11, 0x61, 0xdb, 0x81, 0x64, 0xa6}: "AmiTcgPlatformProtocolguid", efi.GUID{0x04, 0x9d, 0x82, 0x3a, 0x62, 0x39, 0xdf, 0x42, 0x91, 0x37, 0xb1, 0xd3, 0x54, 0xae, 0xa4, 0xab}: "OemDxeGetBoardData", efi.GUID{0x04, 0xa0, 0x0d, 0xe4, 0xab, 0xce, 0xcd, 0x43, 0xb4, 0xa8, 0x98, 0x49, 0x7b, 0xf3, 0x39, 0x87}: "DellDashPolicyProtocol", efi.GUID{0x04, 0xa0, 0x98, 0x68, 0x24, 0x3d, 0x38, 0x4f, 0x85, 0x07, 0xdc, 0x22, 0x6b, 0x3d, 0x90, 0xca}: "SpsPeiPostMem", efi.GUID{0x04, 0xa3, 0xda, 0x52, 0xb3, 0xde, 0x9b, 0x44, 0xaf, 0xb8, 0xa8, 0x8a, 0x54, 0xf2, 0x8f, 0x95}: "OhciPei", efi.GUID{0x04, 0xb1, 0xa2, 0xed, 0x10, 0x7a, 0x19, 0x45, 0xb0, 0xa1, 0xeb, 0xa5, 0xc5, 0x2a, 0xcf, 0xce}: "AmiTseOemPortingVar1Guid", efi.GUID{0x04, 0xbd, 0x61, 0xf7, 0x5e, 0x6e, 0x37, 0x4e, 0x94, 0xf4, 0x46, 0x99, 0x97, 0x2b, 0x24, 0x3d}: "AmdMemStpSp6Pei", efi.GUID{0x04, 0xbd, 0xb4, 0x23, 0x8c, 0x19, 0x11, 0x4a, 0xb6, 0x5a, 0xa5, 0x2b, 0x33, 0xc9, 0x8c, 0x18}: "AmiHspFtpmAcpi", efi.GUID{0x04, 0xbd, 0xb4, 0x53, 0x8c, 0x09, 0x11, 0x4a, 0xb6, 0x5a, 0xa0, 0x2b, 0x33, 0xc9, 0x8c, 0x08}: "HSPfTPMAcpi", efi.GUID{0x04, 0xc6, 0x8b, 0x41, 0x5e, 0xf1, 0x43, 0x48, 0x85, 0xd0, 0x2d, 0x24, 0x80, 0xb7, 0xe4, 0x88}: "EfiMpstNodeData", efi.GUID{0x04, 0xc7, 0x8a, 0x6a, 0x89, 0xe5, 0xd0, 0x4d, 0x8e, 0xe0, 0x31, 0xf8, 0x7f, 0xbe, 0x33, 0x23}: "DxeTouchPanelInit", efi.GUID{0x04, 0xc8, 0xbc, 0x51, 0x8a, 0x42, 0x6a, 0x4a, 0xb3, 0x52, 0xe4, 0x84, 0x4a, 0xed, 0x91, 0x05}: "NtfsPei", efi.GUID{0x04, 0xca, 0x2e, 0x98, 0x92, 0x04, 0xf0, 0x4a, 0x9c, 0x6e, 0x35, 0x4a, 0x3b, 0xea, 0xc9, 0xff}: "HpCoreBootOrder", efi.GUID{0x04, 0xcd, 0xb2, 0xe7, 0x14, 0x4b, 0xc2, 0x44, 0xb7, 0x48, 0xce, 0xaf, 0x2b, 0x66, 0x4a, 0xb0}: "EdkiiPeiVariablePpi", efi.GUID{0x04, 0xcf, 0xcd, 0x97, 0x8e, 0x4c, 0xfe, 0x42, 0x80, 0x15, 0x11, 0xcc, 0x8a, 0x6e, 0x9d, 0x81}: "Tpm2DeviceLibRouterPei", efi.GUID{0x04, 0xd3, 0x13, 0x24, 0x41, 0xaa, 0x79, 0x40, 0xa8, 0x1e, 0x31, 0xb8, 0xd7, 0xc3, 0xfd, 0x6b}: "GpioV2PpiInitPei", efi.GUID{0x04, 0xdb, 0xa6, 0xb0, 0x0f, 0x8a, 0x4f, 0x4f, 0x9c, 0x45, 0xc3, 0x34, 0x45, 0x15, 0xa5, 0x83}: "FjGabiFlashCoreAbstractionSmm", efi.GUID{0x04, 0xe4, 0x07, 0x78, 0x81, 0x82, 0xf1, 0x4f, 0x84, 0x57, 0x0b, 0x54, 0xba, 0xbe, 0x26, 0x3f}: "HitachiH8s2113Dxe", efi.GUID{0x04, 0xe6, 0x22, 0x09, 0xec, 0xf5, 0xef, 0x42, 0x98, 0x0d, 0xa3, 0x5e, 0x9a, 0x2b, 0x18, 0x44}: "IpSecConfig", efi.GUID{0x05, 0x00, 0x44, 0x2b, 0x29, 0x28, 0x2f, 0x41, 0xb0, 0x85, 0xdd, 0x01, 0x2b, 0xbe, 0x8a, 0x9f}: "AdvBootConfigDxe", efi.GUID{0x05, 0x02, 0x42, 0xbf, 0x4e, 0x64, 0x18, 0x47, 0x9c, 0x39, 0x67, 0x9b, 0x78, 0x54, 0xf4, 0x46}: "AmdSpiFvbSmm", efi.GUID{0x05, 0x04, 0x32, 0xd8, 0xed, 0x3c, 0x6c, 0x40, 0xb9, 0x3c, 0x43, 0x3a, 0x58, 0xc6, 0xd1, 0xfa}: "SecureBIOCameraSonix", efi.GUID{0x05, 0x05, 0x28, 0x38, 0x24, 0x43, 0x30, 0x61, 0x73, 0x0d, 0xa0, 0x95, 0x2b, 0x0f, 0x32, 0x9e}: "S5MaxPowerSavingsPortingSmm", efi.GUID{0x05, 0x08, 0xac, 0x02, 0x5f, 0x15, 0x3a, 0x47, 0xa3, 0x02, 0x0d, 0x89, 0xd6, 0xe1, 0xe6, 0xcc}: "AsusSLP2", efi.GUID{0x05, 0x0a, 0x3d, 0xcd, 0x24, 0x9e, 0x7c, 0x43, 0xa8, 0x91, 0x1e, 0xe0, 0x53, 0xdb, 0x76, 0x38}: "EdkiiVariableLockProtocolGuid", efi.GUID{0x05, 0x0d, 0x4a, 0xad, 0x6d, 0x80, 0xe4, 0x4f, 0x96, 0xad, 0x3b, 0xd6, 0x2d, 0x8c, 0x4c, 0xe0}: "DellDoSiodiagLedDxe", efi.GUID{0x05, 0x10, 0x61, 0xb7, 0x26, 0x1f, 0xba, 0x45, 0xa3, 0xdb, 0x01, 0xf3, 0x9d, 0xdb, 0x27, 0x85}: "BootMode", efi.GUID{0x05, 0x17, 0x8f, 0xab, 0xb6, 0x7e, 0x08, 0x4d, 0xa9, 0xb3, 0x91, 0x8b, 0xde, 0x24, 0xf4, 0x79}: "UpdatePcdPei", efi.GUID{0x05, 0x1a, 0x14, 0xde, 0x40, 0xfa, 0x2d, 0x43, 0x96, 0x31, 0x5e, 0x3e, 0x99, 0x0f, 0x44, 0xd5}: "SlotDataUpdateDxeNeonCityEPRP", efi.GUID{0x05, 0x21, 0x29, 0x1d, 0x53, 0x26, 0xe5, 0x11, 0xb4, 0x6f, 0xb8, 0xe8, 0x56, 0x2c, 0xba, 0xfa}: "AppleCapsuleRuntimeDxe", efi.GUID{0x05, 0x2d, 0x00, 0x72, 0x57, 0x2c, 0xb4, 0x48, 0xb9, 0xdd, 0xd2, 0xf1, 0x90, 0x35, 0xa4, 0x4b}: "HpDtSmm", efi.GUID{0x05, 0x33, 0xa2, 0xb2, 0x55, 0x94, 0x9c, 0x48, 0xaa, 0x81, 0x21, 0xdb, 0x48, 0xc4, 0x1e, 0xab}: "LenovoAoacDxe", efi.GUID{0x05, 0x3d, 0x63, 0xf5, 0xdc, 0xa7, 0x2d, 0x4a, 0x83, 0x71, 0xa6, 0xb8, 0x42, 0x78, 0x56, 0x3b}: "FchKeithMdnSmmInit", efi.GUID{0x05, 0x3f, 0x89, 0xd0, 0x6d, 0xb0, 0x61, 0x41, 0xb9, 0x47, 0x9b, 0xe9, 0xb8, 0x5a, 0xc3, 0xa1}: "SnpNt32Dxe", efi.GUID{0x05, 0x4f, 0x2f, 0x3e, 0xfa, 0x26, 0x0f, 0x49, 0xac, 0x3b, 0x35, 0x1b, 0xaf, 0x08, 0xb2, 0x8d}: "ArmaniSxCallback", efi.GUID{0x05, 0x57, 0x18, 0x6e, 0xad, 0xe3, 0xef, 0x45, 0x83, 0xc1, 0xf1, 0xf9, 0x56, 0x7a, 0xf3, 0x96}: "DisconnectKbd", efi.GUID{0x05, 0x5a, 0x9e, 0x2b, 0x6f, 0x68, 0x72, 0x4e, 0xaf, 0x0a, 0x2d, 0x7b, 0xaa, 0x61, 0xe9, 0x18}: "AmdNbioPcieRVPei", efi.GUID{0x05, 0x5a, 0xc5, 0xa4, 0xd4, 0x88, 0xcb, 0x44, 0x8d, 0xc7, 0xb3, 0xc0, 0x92, 0x80, 0x2e, 0x22}: "FchSmbusPei", efi.GUID{0x05, 0x63, 0xdd, 0xfe, 0xd7, 0xe2, 0xd5, 0x4e, 0x9f, 0xaa, 0xda, 0x08, 0x0e, 0x33, 0x6c, 0x22}: "PeiUsb2HostControllerPpiGuid", efi.GUID{0x05, 0x64, 0x2f, 0xca, 0x53, 0x49, 0x00, 0x4c, 0x9c, 0x46, 0xd1, 0x86, 0x83, 0xa9, 0x00, 0x3f}: "SmmKbcDriver", efi.GUID{0x05, 0x71, 0x4b, 0x11, 0xc9, 0x6c, 0x3c, 0x45, 0xba, 0xdc, 0x16, 0xdf, 0x22, 0x7b, 0xb4, 0xef}: "TrEESmm", efi.GUID{0x05, 0x7e, 0xc9, 0x3a, 0x17, 0xf2, 0xbd, 0x4e, 0xb1, 0x34, 0x8f, 0xda, 0x26, 0xe8, 0x57, 0x69}: "DebugDxe", efi.GUID{0x05, 0x81, 0x8b, 0xc1, 0x89, 0xab, 0xde, 0x44, 0x8d, 0x37, 0x50, 0xb3, 0x1f, 0xae, 0x5d, 0x1e}: "SgTpvAcpiTables", efi.GUID{0x05, 0x82, 0x44, 0xf1, 0xb4, 0x61, 0x24, 0x46, 0xb3, 0x25, 0x6c, 0x06, 0xbb, 0x1b, 0xc9, 0x0b}: "SioFlexIoAcpiDxe", efi.GUID{0x05, 0x8f, 0xfc, 0xef, 0x26, 0xb5, 0xb5, 0x4e, 0xb3, 0x6b, 0x8c, 0xd8, 0x89, 0x92, 0x3c, 0x0c}: "LegacyRegion", efi.GUID{0x05, 0x97, 0xd1, 0x20, 0x9d, 0xe5, 0x62, 0x43, 0x99, 0x56, 0xfa, 0x53, 0x3a, 0xff, 0x24, 0x29}: "SetBoardId", efi.GUID{0x05, 0x98, 0x81, 0x63, 0xbb, 0x67, 0xef, 0x46, 0xaa, 0x8d, 0x15, 0x24, 0xa1, 0x9a, 0x01, 0xe4}: "SmallLogo", efi.GUID{0x05, 0x98, 0x81, 0x63, 0xdd, 0xdd, 0xef, 0x46, 0xaa, 0x8d, 0x15, 0x24, 0xa1, 0x9a, 0x01, 0xe4}: "SmallLogo", efi.GUID{0x05, 0xa6, 0xdd, 0x3f, 0x6e, 0xa7, 0x46, 0x4f, 0xad, 0x29, 0x12, 0xf4, 0x53, 0x1b, 0x3d, 0x08}: "EfiMpServiceProtocolGuid", efi.GUID{0x05, 0xa9, 0xc5, 0xe9, 0x92, 0x62, 0x00, 0x4e, 0xbe, 0xdd, 0xda, 0x6a, 0xf6, 0x53, 0x13, 0x8e}: "FjvProSupport", efi.GUID{0x05, 0xb0, 0xcb, 0x29, 0x72, 0xc9, 0xf3, 0x49, 0x96, 0x0f, 0x29, 0x2e, 0x22, 0x02, 0xce, 0xcd}: "FspNotifyPhasePeim", efi.GUID{0x05, 0xb2, 0xe0, 0x67, 0x17, 0x45, 0xf4, 0xae, 0x3c, 0xe0, 0x10, 0x89, 0x93, 0xee, 0xfd, 0x52}: "DellCommonBiosMenu", efi.GUID{0x05, 0xb6, 0x5c, 0x91, 0x96, 0x0e, 0x75, 0x4c, 0xb7, 0x24, 0x53, 0xdc, 0xba, 0xe7, 0xad, 0xb5}: "DellDxeDiagLeds", efi.GUID{0x05, 0xbc, 0x15, 0x05, 0x59, 0x29, 0x91, 0x4e, 0x89, 0xc6, 0x6b, 0x3a, 0x3f, 0x1f, 0xcb, 0x65}: "TCG_MPDriver", efi.GUID{0x05, 0xc0, 0xe4, 0x15, 0xc0, 0x52, 0x4c, 0x44, 0x8c, 0x94, 0x56, 0xff, 0xa0, 0x4c, 0x7b, 0x36}: "SmuV12Dxe", efi.GUID{0x05, 0xc6, 0xa4, 0x43, 0x6d, 0xc6, 0x3e, 0x47, 0xa0, 0x6a, 0x37, 0xe9, 0x14, 0x3f, 0xc4, 0x39}: "PcRtc", efi.GUID{0x05, 0xd8, 0x1b, 0xa8, 0x8c, 0x26, 0xaa, 0x45, 0x8b, 0xdd, 0x0b, 0x8e, 0xb9, 0x2a, 0x53, 0x41}: "SmmFlash", efi.GUID{0x05, 0xe5, 0xd7, 0xa0, 0xd4, 0x5d, 0x59, 0x44, 0xa4, 0xd3, 0x36, 0x11, 0x95, 0x63, 0xc4, 0xf9}: "DellAudioPei", efi.GUID{0x05, 0xe6, 0xdd, 0x5b, 0x07, 0xb1, 0x9e, 0x41, 0x95, 0x10, 0xaa, 0x3c, 0x43, 0x4e, 0xbb, 0xe4}: "LegacyBiosPlatform", efi.GUID{0x05, 0xf8, 0xa2, 0x9f, 0x86, 0x3d, 0xbc, 0x42, 0xa9, 0xc3, 0x2b, 0x26, 0xa5, 0xdf, 0x09, 0xf9}: "LenovoPchConfig", efi.GUID{0x06, 0x02, 0xb9, 0x87, 0x59, 0x0d, 0x75, 0x4b, 0xb4, 0x3b, 0xe6, 0x45, 0x0d, 0x12, 0xd2, 0xaf}: "IsaHostControllerPei", efi.GUID{0x06, 0x0f, 0x60, 0xaa, 0xf5, 0x26, 0x8f, 0x42, 0xb4, 0xf1, 0x91, 0x3b, 0xef, 0x6e, 0x4d, 0xbb}: "FspWrapperExtractGuidedPeim", efi.GUID{0x06, 0x17, 0x1d, 0xd8, 0x6f, 0xbe, 0x34, 0x47, 0xb2, 0xaf, 0xf8, 0x85, 0xff, 0xdc, 0xb1, 0x6d}: "AsixUsbEthernetDxe", efi.GUID{0x06, 0x1a, 0xf0, 0x8d, 0xd5, 0x9b, 0xf7, 0x4b, 0xb0, 0x21, 0xdb, 0x4f, 0xd9, 0xcc, 0xf4, 0x5b}: "EfiHashAlgorithmSha224Guid", efi.GUID{0x06, 0x1b, 0x38, 0x83, 0xea, 0x2e, 0xf3, 0x4c, 0x9b, 0x5f, 0xd7, 0x5b, 0x9b, 0x5c, 0x93, 0xde}: "GetServByPort", efi.GUID{0x06, 0x1c, 0xa4, 0xdc, 0x2b, 0xfd, 0xe4, 0x41, 0xbb, 0xe7, 0x94, 0x64, 0x44, 0xdb, 0x0b, 0xd9}: "SystemFindFvPei", efi.GUID{0x06, 0x1e, 0xb3, 0xa8, 0x68, 0x70, 0x87, 0x5d, 0xa1, 0xa6, 0x10, 0x75, 0x4a, 0x09, 0xb9, 0x2d}: "FTPMSmm", efi.GUID{0x06, 0x1f, 0x52, 0x56, 0x62, 0x0a, 0x22, 0x48, 0x99, 0x63, 0xdf, 0x01, 0x9d, 0x72, 0xc7, 0xe1}: "PchSmmSpiProtocol", efi.GUID{0x06, 0x22, 0x29, 0x41, 0x69, 0x40, 0xa6, 0x42, 0xac, 0x38, 0xc4, 0xa5, 0xc1, 0x23, 0xc6, 0xe5}: "BaseTraceHubLibNull", efi.GUID{0x06, 0x33, 0x1f, 0x8e, 0xcc, 0xc9, 0xe6, 0x46, 0x83, 0xbc, 0x59, 0x28, 0xb0, 0xdd, 0x03, 0x6e}: "OpalDeviceService", efi.GUID{0x06, 0x37, 0x13, 0x72, 0x22, 0xa9, 0xf1, 0x43, 0x9c, 0x75, 0x58, 0x1d, 0x9a, 0xe8, 0xf6, 0x66}: "AmdNbioSmuV9Pei", efi.GUID{0x06, 0x39, 0x86, 0x9e, 0x0f, 0xa4, 0x75, 0x48, 0x97, 0x7f, 0x5b, 0x93, 0xff, 0x23, 0x7f, 0xc6}: "TerminalDxe", efi.GUID{0x06, 0x3b, 0x01, 0xd4, 0x7d, 0xab, 0x9c, 0x4b, 0x89, 0xd5, 0x6e, 0xf6, 0x1f, 0x50, 0x7e, 0xca}: "AsrockAmdSetupDxeRN", efi.GUID{0x06, 0x3b, 0xd6, 0xd1, 0x7f, 0x13, 0x5a, 0x4f, 0x8c, 0x25, 0x28, 0xda, 0xdf, 0xa1, 0xe9, 0x88}: "FjPasswordSkipDmi", efi.GUID{0x06, 0x40, 0xb3, 0x11, 0x5b, 0xd8, 0x0a, 0x4d, 0xa2, 0x90, 0xd5, 0xa5, 0x71, 0x31, 0x0e, 0xf7}: "PcdProtocolGuid", efi.GUID{0x06, 0x41, 0xa5, 0x73, 0x88, 0x8c, 0xa9, 0x4b, 0xb0, 0x8e, 0xfd, 0x87, 0x9a, 0x16, 0x82, 0xca}: "NvdimmCommon", efi.GUID{0x06, 0x46, 0x87, 0xac, 0x27, 0x87, 0xa0, 0x41, 0xbc, 0xcd, 0x43, 0xa4, 0x23, 0x74, 0x66, 0xdd}: "EneUpdDXE", efi.GUID{0x06, 0x47, 0x0d, 0x33, 0xa0, 0xf2, 0x4f, 0x4e, 0xa3, 0x69, 0xb6, 0x6f, 0xa8, 0xd5, 0x43, 0x85}: "EfiHiiConfigAccessProtocolGuid", efi.GUID{0x06, 0x47, 0x1d, 0xfc, 0xfb, 0x88, 0xb0, 0x42, 0x98, 0xb0, 0xa4, 0xb2, 0xe6, 0x07, 0xeb, 0xaa}: "LibErr", efi.GUID{0x06, 0x47, 0xab, 0x6d, 0x57, 0x5d, 0xdb, 0x4b, 0x9a, 0x0e, 0x39, 0x3a, 0x41, 0x78, 0xd1, 0x3e}: "TiOnlySmm", efi.GUID{0x06, 0x49, 0x73, 0x42, 0xd7, 0xea, 0x98, 0x4a, 0xad, 0xbe, 0x58, 0xbd, 0xa5, 0xcb, 0x64, 0xce}: "EcKeyPei", efi.GUID{0x06, 0x49, 0xb2, 0xe5, 0x08, 0xcf, 0xcd, 0x4d, 0x9e, 0xe3, 0x0d, 0x16, 0x3f, 0xca, 0x34, 0xbf}: "DellTcg2Dxe", efi.GUID{0x06, 0x51, 0x07, 0x25, 0x37, 0xf5, 0xd4, 0x4b, 0xaf, 0xa5, 0xcf, 0xf0, 0xe6, 0xf3, 0xb2, 0xa6}: "AmdFabricRvDxe", efi.GUID{0x06, 0x52, 0x25, 0xac, 0xf9, 0xdc, 0x37, 0x48, 0x83, 0x53, 0x72, 0xbb, 0xbc, 0x0a, 0xc8, 0x49}: "OzmosisTheme", efi.GUID{0x06, 0x52, 0x31, 0xfd, 0xfc, 0x9e, 0xaf, 0x43, 0x88, 0x45, 0x4c, 0x75, 0x28, 0x66, 0x7c, 0xac}: "OemSMIEE", efi.GUID{0x06, 0x52, 0xb9, 0x01, 0x66, 0xcd, 0x0d, 0x4c, 0xa8, 0x67, 0xed, 0x42, 0x96, 0x0e, 0x07, 0xdc}: "SystemFirmwareDeviceSmmProtocol", efi.GUID{0x06, 0x53, 0x51, 0xca, 0xce, 0x00, 0x32, 0x40, 0x87, 0x4e, 0x11, 0xb7, 0x55, 0xff, 0x68, 0x66}: "DataHubStdErrDxe", efi.GUID{0x06, 0x53, 0x86, 0x7f, 0x0d, 0x83, 0xc2, 0x4d, 0x8e, 0x9a, 0xb7, 0x85, 0x6f, 0x92, 0x5a, 0x0a}: "SupplicantDriver", efi.GUID{0x06, 0x5c, 0x5f, 0xa0, 0x82, 0x17, 0xaa, 0x48, 0x96, 0x2a, 0x86, 0xa0, 0x89, 0x20, 0x22, 0xb6}: "ASM1061Dxe", efi.GUID{0x06, 0x5d, 0xcc, 0xf2, 0x85, 0x89, 0xdb, 0x11, 0xbb, 0x19, 0x00, 0x40, 0xd0, 0x2b, 0x18, 0x35}: "EfiUnixConsole", efi.GUID{0x06, 0x63, 0x2d, 0x23, 0x0c, 0xb7, 0xbb, 0x48, 0x88, 0xbb, 0x9f, 0xa6, 0xd4, 0x7c, 0x82, 0x08}: "RtcStatus", efi.GUID{0x06, 0x65, 0xe1, 0x1f, 0xc5, 0x5c, 0x89, 0x4d, 0xb8, 0xfb, 0x6e, 0xb5, 0xe1, 0x34, 0x88, 0x7d}: "DxeWhea", efi.GUID{0x06, 0x6a, 0xd2, 0x7d, 0x42, 0x99, 0xa8, 0x41, 0xb9, 0xcf, 0x09, 0xde, 0x46, 0xd5, 0xd2, 0x19}: "BBSManagerDxe", efi.GUID{0x06, 0x6b, 0xeb, 0x3b, 0xce, 0x09, 0x86, 0x43, 0x88, 0x84, 0xf3, 0x23, 0xad, 0xd0, 0x4f, 0x1f}: "GlobeTile", efi.GUID{0x06, 0x6c, 0xeb, 0x77, 0x48, 0xfd, 0x8b, 0x48, 0xa1, 0xb3, 0xae, 0x0a, 0x70, 0x80, 0x13, 0x69}: "CryptoDXE", efi.GUID{0x06, 0x6d, 0x28, 0x3b, 0xd4, 0xde, 0x1c, 0x44, 0xb4, 0xe4, 0x44, 0x4b, 0x50, 0xaa, 0x73, 0xbd}: "WifiBtDxe", efi.GUID{0x06, 0x70, 0xb3, 0x07, 0x02, 0x93, 0x8e, 0x40, 0xb4, 0x16, 0xb5, 0x24, 0xd1, 0x10, 0xdd, 0x7f}: "AppleHidInterface", efi.GUID{0x06, 0x71, 0xf4, 0xad, 0xf8, 0x5c, 0x02, 0x4d, 0xbc, 0xf9, 0xba, 0xcc, 0xc7, 0xd3, 0x16, 0x2b}: "CrbSmbiosDxe", efi.GUID{0x06, 0x82, 0x37, 0x59, 0x1b, 0x86, 0x80, 0x43, 0xa3, 0x49, 0x2f, 0x2f, 0x4f, 0x03, 0x0c, 0x4b}: "DashBiosManagerSmm", efi.GUID{0x06, 0x88, 0xe7, 0x75, 0x8f, 0xc6, 0x39, 0x48, 0x8a, 0x68, 0xb2, 0x90, 0x84, 0x82, 0x06, 0x59}: "ExStatusCodeHandlerPei", efi.GUID{0x06, 0x8d, 0xa5, 0x53, 0x27, 0xac, 0x8c, 0x4d, 0xb5, 0xe9, 0xf0, 0x8a, 0x80, 0x65, 0x41, 0x70}: "EfiExtendedSalStallServicesProtocolGuid", efi.GUID{0x06, 0x95, 0x9a, 0x9f, 0x97, 0x55, 0x15, 0x45, 0xba, 0xb6, 0x8b, 0xcd, 0xe7, 0x84, 0xba, 0x87}: "UniversalPayloadAcpiTable", efi.GUID{0x06, 0x9a, 0xa4, 0xb1, 0x30, 0xb6, 0xf5, 0x4b, 0x85, 0xbd, 0x09, 0x97, 0xce, 0x64, 0x2d, 0x49}: "TouchDriver", efi.GUID{0x06, 0x9e, 0x6d, 0x6d, 0x22, 0x71, 0x87, 0x45, 0x88, 0xc5, 0xbd, 0x3d, 0x13, 0xc7, 0xe8, 0xc4}: "AmdMemAm4RnPei", efi.GUID{0x06, 0x9f, 0x55, 0xa5, 0x15, 0x64, 0x59, 0x47, 0x88, 0x69, 0xde, 0x15, 0xf9, 0xcd, 0x9c, 0x9b}: "IffsGlobalNvsAreaProtocol", efi.GUID{0x06, 0xa3, 0x34, 0x18, 0x70, 0x0d, 0x0e, 0x47, 0x90, 0x1f, 0x23, 0x70, 0xff, 0x30, 0xdd, 0xab}: "DxeSpiNorFlash", efi.GUID{0x06, 0xa8, 0xb9, 0xa4, 0x74, 0xb5, 0x54, 0x43, 0xbf, 0xc7, 0x05, 0x21, 0x7d, 0xc0, 0xfa, 0xf4}: "FlashHookSmm", efi.GUID{0x06, 0xb1, 0x1d, 0xd7, 0x2d, 0xe3, 0x25, 0x42, 0xbf, 0xf4, 0xde, 0x6d, 0x77, 0x87, 0x17, 0x61}: "PowerMgmtInitDoneProtocolGuid", efi.GUID{0x06, 0xb1, 0x65, 0x00, 0x27, 0xeb, 0x3c, 0x4a, 0x85, 0x1c, 0xec, 0x77, 0xd5, 0x1e, 0xdc, 0xd6}: "AbsoluteActivateDxe", efi.GUID{0x06, 0xb5, 0xd3, 0x74, 0x9c, 0xee, 0xed, 0x47, 0xb7, 0x49, 0x41, 0x26, 0x14, 0x01, 0xda, 0x78}: "QNCInitDxe", efi.GUID{0x06, 0xb5, 0xf2, 0x30, 0x94, 0x3f, 0x11, 0x4a, 0x85, 0xd2, 0xeb, 0xf6, 0x0b, 0x35, 0xf5, 0x94}: "ArmaniSmbiosUpdate", efi.GUID{0x06, 0xbd, 0xdc, 0x9e, 0x78, 0x3c, 0x22, 0x48, 0xbd, 0x6e, 0xa6, 0x84, 0x7f, 0x75, 0x31, 0xc4}: "FastBootTseHook", efi.GUID{0x06, 0xc0, 0x7b, 0x31, 0x56, 0x90, 0xc8, 0x42, 0xa1, 0xc1, 0x92, 0xa1, 0xaa, 0xbb, 0xc9, 0xee}: "AmdCcxZenZpSmm", efi.GUID{0x06, 0xd0, 0x2f, 0x13, 0x15, 0x29, 0xea, 0x40, 0xb7, 0x79, 0x0f, 0x0d, 0xdd, 0x01, 0x46, 0x5f}: "PxeDriverRtk", efi.GUID{0x06, 0xd0, 0xe6, 0x64, 0x2a, 0xe6, 0x1e, 0x48, 0x8f, 0x5a, 0x3f, 0x76, 0xc9, 0x18, 0x47, 0x41}: "AmdSmmCommunication", efi.GUID{0x06, 0xd3, 0xc9, 0x88, 0x00, 0x09, 0xb5, 0x4e, 0x82, 0x60, 0x3e, 0x2d, 0xbe, 0xda, 0x1f, 0x89}: "PeiPostScriptTablePpiGuid", efi.GUID{0x06, 0xdf, 0x59, 0x6e, 0xd3, 0x62, 0xb0, 0x40, 0x82, 0xb5, 0x17, 0x5c, 0xf8, 0x4a, 0x94, 0xe4}: "OEMPEI", efi.GUID{0x06, 0xe4, 0x19, 0xf0, 0x9c, 0x8c, 0xe5, 0x11, 0x87, 0x97, 0x00, 0x1a, 0xca, 0x00, 0xbf, 0xc4}: "BfbFs", efi.GUID{0x06, 0xe6, 0x98, 0x60, 0x2c, 0x47, 0x51, 0x4f, 0x8a, 0x40, 0x24, 0x37, 0x6d, 0x2c, 0x66, 0xb7}: "System", efi.GUID{0x06, 0xe7, 0xe0, 0xe3, 0xe7, 0x86, 0xa1, 0x44, 0xbf, 0x05, 0xec, 0xc4, 0x2a, 0xe9, 0x99, 0x9e}: "CbsBasePeiRN", efi.GUID{0x06, 0xed, 0xaf, 0xdb, 0x39, 0xa4, 0x66, 0x41, 0xb0, 0x51, 0xc1, 0xc5, 0x33, 0x9b, 0xc3, 0xba}: "AmdNbioIOAPICPei", efi.GUID{0x06, 0xf0, 0x3b, 0x47, 0xe1, 0x83, 0x25, 0x4b, 0xbc, 0x6a, 0xda, 0x8a, 0x20, 0x55, 0x5b, 0x59}: "TouchPad_Sensel", efi.GUID{0x06, 0xf0, 0xf6, 0xf0, 0xb4, 0xda, 0xb2, 0x44, 0xa7, 0xa1, 0x0f, 0x72, 0xee, 0xdc, 0xa7, 0x16}: "AcpiPlatform", efi.GUID{0x06, 0xf2, 0x66, 0x3b, 0x86, 0x63, 0x17, 0x41, 0xa7, 0xfd, 0xf5, 0xb8, 0x43, 0xa2, 0x6a, 0x6f}: "HpNetworkFeatureByteKillDxe", efi.GUID{0x06, 0xf4, 0x20, 0x59, 0x68, 0x58, 0xf5, 0x44, 0xa9, 0xb9, 0x6d, 0x40, 0x31, 0x48, 0x1c, 0xc9}: "LenovoOemSecPei", efi.GUID{0x06, 0xfa, 0xe9, 0xd9, 0xe0, 0x0f, 0xc3, 0x41, 0x96, 0xfb, 0x83, 0x42, 0x5a, 0x33, 0x94, 0xf8}: "EfiExtendedSalBaseServicesProtocolGuid", efi.GUID{0x07, 0x07, 0xe0, 0xee, 0x34, 0x67, 0x1b, 0x49, 0xad, 0xb3, 0xc1, 0x68, 0x26, 0x5a, 0xb5, 0xb5}: "DellUsbMassStorageSmm", efi.GUID{0x07, 0x07, 0xfe, 0x9b, 0x74, 0x81, 0x8a, 0x4b, 0xa5, 0xf5, 0x55, 0x6f, 0xb1, 0x0e, 0x88, 0x43}: "RTCWakeup", efi.GUID{0x07, 0x17, 0xf2, 0x08, 0xe6, 0x8a, 0x67, 0x44, 0xb0, 0x75, 0x5c, 0xb3, 0x3c, 0x88, 0x0c, 0x10}: "DellPscProtocol", efi.GUID{0x07, 0x23, 0x5b, 0x40, 0x39, 0x68, 0x52, 0x4d, 0xae, 0xb9, 0xbe, 0xce, 0x64, 0x25, 0x28, 0x00}: "ArmFvpDxe", efi.GUID{0x07, 0x33, 0x17, 0x4e, 0xdb, 0x92, 0x4f, 0x4a, 0x9a, 0x8e, 0x86, 0xa8, 0x56, 0x49, 0xb4, 0x05}: "EfiAdminPasswordHob", efi.GUID{0x07, 0x40, 0xdb, 0xe6, 0x3b, 0x11, 0x05, 0x46, 0x8f, 0x5f, 0x66, 0x8d, 0x73, 0x64, 0xc8, 0x07}: "SmmInt15Service", efi.GUID{0x07, 0x41, 0x78, 0xb7, 0x3c, 0x97, 0x57, 0x49, 0x90, 0x5e, 0x54, 0x45, 0x5a, 0x47, 0xe0, 0x7d}: "AmdNbioPcieDxe", efi.GUID{0x07, 0x42, 0xc7, 0xd7, 0x31, 0xa8, 0x26, 0x4a, 0xb1, 0xf5, 0xd1, 0x93, 0x06, 0x5c, 0xe8, 0xb6}: "EfiAdapterInfoMediaStateGuid", efi.GUID{0x07, 0x44, 0x5e, 0x65, 0x9c, 0xc7, 0xb7, 0x42, 0xbe, 0x2c, 0x9e, 0x1a, 0x26, 0x6b, 0x08, 0xa3}: "AmdFabricRsSmm", efi.GUID{0x07, 0x44, 0x7f, 0x33, 0xee, 0x5a, 0x83, 0x4b, 0xb2, 0xa7, 0x4e, 0xad, 0xca, 0x30, 0x88, 0xcd}: "EfiHiiUserCredentialFormsetGuid", efi.GUID{0x07, 0x47, 0x75, 0xe6, 0x1a, 0x8f, 0x46, 0x45, 0xb9, 0xc6, 0xb1, 0x36, 0xd3, 0x46, 0xdb, 0xf7}: "DellBattPolicy", efi.GUID{0x07, 0x53, 0x3e, 0xff, 0xd0, 0x9f, 0xc9, 0x48, 0x85, 0xf1, 0x8a, 0xd5, 0x6c, 0x70, 0x1e, 0x01}: "EfiCertSha384Guid", efi.GUID{0x07, 0x55, 0x6c, 0x4f, 0x2f, 0x23, 0x87, 0x47, 0xb9, 0x5e, 0x72, 0xf8, 0x62, 0x49, 0x0c, 0xb1}: "EventExitBootServicesFailedGuid", efi.GUID{0x07, 0x56, 0xb7, 0x85, 0xce, 0xf7, 0x1e, 0x47, 0xb7, 0xe4, 0x2a, 0xea, 0x5f, 0x72, 0x32, 0xee}: "EfiUserInfoAccessSetupAdminGuid", efi.GUID{0x07, 0x59, 0x5b, 0xbb, 0x8e, 0x5f, 0xad, 0x42, 0x91, 0x5d, 0x5d, 0x98, 0xb5, 0x2e, 0xd6, 0x97}: "PlatformStage2", efi.GUID{0x07, 0x59, 0xb8, 0x3a, 0xcd, 0x33, 0x6c, 0x4d, 0x93, 0xa5, 0x9b, 0xe7, 0xe5, 0x79, 0xbf, 0x95}: "FjNetworkServices", efi.GUID{0x07, 0x5a, 0x3d, 0xe0, 0xcd, 0xcd, 0xd1, 0x4a, 0xa8, 0x29, 0x0b, 0x5a, 0x4a, 0xa6, 0xd6, 0x2b}: "BiosConnectProfileLoaderDaSmm", efi.GUID{0x07, 0x66, 0x80, 0x01, 0x5b, 0x24, 0xa8, 0x47, 0x95, 0x2a, 0xdc, 0x8c, 0x5c, 0x6a, 0x53, 0x16}: "OemDeviceDetect", efi.GUID{0x07, 0x6c, 0x88, 0xca, 0xdf, 0xac, 0xa6, 0x41, 0xa5, 0x01, 0xcb, 0xc5, 0x3d, 0xd4, 0x00, 0x8d}: "DellPeiReportFv", efi.GUID{0x07, 0x70, 0xd4, 0xb6, 0x45, 0x14, 0xdc, 0x41, 0xbc, 0x8c, 0x8a, 0xc3, 0x4d, 0x7f, 0xb2, 0x36}: "HpMMIOHConfigDxe", efi.GUID{0x07, 0x71, 0x6f, 0x5b, 0x3c, 0xbb, 0x60, 0x46, 0x92, 0xcd, 0x54, 0x26, 0x90, 0x28, 0x0b, 0xbd}: "BootDiscoveryPolicyMgrFormset", efi.GUID{0x07, 0x73, 0x07, 0xa6, 0x97, 0xb2, 0x51, 0x40, 0x9a, 0xc0, 0xa0, 0xdc, 0x81, 0x47, 0xe6, 0x01}: "menu_locked", efi.GUID{0x07, 0x7e, 0x33, 0x02, 0xf2, 0x2c, 0xbe, 0x46, 0xbc, 0xf7, 0x83, 0x49, 0x45, 0xfc, 0xce, 0xb9}: "EfiUnbootablePartitionGuid", efi.GUID{0x07, 0x7f, 0xd4, 0xd6, 0x45, 0x14, 0x6c, 0x41, 0xbc, 0x8c, 0x89, 0xc3, 0x4d, 0x7c, 0xb2, 0x10}: "HpFirstBootOptimizerDxe", efi.GUID{0x07, 0x88, 0x19, 0x52, 0x18, 0x4f, 0xd8, 0x4c, 0x88, 0x8c, 0xb6, 0x87, 0x4d, 0x5a, 0x85, 0xbf}: "DellSoftKbd", efi.GUID{0x07, 0x97, 0x9e, 0x65, 0xd6, 0xd2, 0x66, 0x4a, 0x9e, 0x38, 0x4e, 0x84, 0x0b, 0x32, 0x45, 0xc5}: "OemAfterSmbiosDxe", efi.GUID{0x07, 0x98, 0x33, 0xb4, 0xac, 0x7c, 0xba, 0x49, 0x9f, 0xb7, 0x62, 0x31, 0xc6, 0x22, 0xf2, 0x70}: "BeginStickyBootButton", efi.GUID{0x07, 0xa1, 0xee, 0x02, 0xdb, 0x98, 0x0e, 0x40, 0x98, 0x30, 0x46, 0x0a, 0x15, 0x42, 0xd7, 0x99}: "Ip6ConfigNvDataGuid", efi.GUID{0x07, 0xaa, 0x39, 0x42, 0xe8, 0x8d, 0x67, 0x4c, 0xa9, 0x71, 0xc6, 0xf3, 0xf5, 0x6d, 0x7f, 0x93}: "RfTlsCertificates", efi.GUID{0x07, 0xb1, 0x78, 0x8a, 0xdd, 0x0f, 0xc8, 0x4c, 0xb7, 0xba, 0xdc, 0x3e, 0x13, 0xcb, 0x85, 0x24}: "PeiCpuIoPei", efi.GUID{0x07, 0xb3, 0x78, 0x75, 0x5b, 0xb2, 0xf9, 0x44, 0x89, 0x2e, 0x20, 0x9b, 0x0e, 0x39, 0x93, 0xc6}: "Emul6064MsInputProtocolGuid", efi.GUID{0x07, 0xc0, 0xb2, 0xf4, 0xa1, 0x94, 0xd5, 0x4c, 0xa7, 0x10, 0xf4, 0x14, 0x1f, 0xce, 0xbc, 0xa0}: "AmiTseOemTSEVarGuid", efi.GUID{0x07, 0xc6, 0x00, 0x89, 0xaa, 0xc0, 0x8e, 0x47, 0xaf, 0x00, 0x65, 0x87, 0x0b, 0xc9, 0x51, 0xfd}: "SetupStatusDxe", efi.GUID{0x07, 0xca, 0x0d, 0x91, 0x94, 0x1f, 0xe7, 0x4e, 0xaf, 0x2f, 0xff, 0x72, 0xf3, 0x15, 0x43, 0x53}: "EfiSmmBaseHelperReadyProtocolGuid", efi.GUID{0x07, 0xd0, 0xf2, 0xc4, 0xfd, 0x37, 0x2d, 0x42, 0xb6, 0x3d, 0x7e, 0xd7, 0x38, 0x86, 0xe6, 0xca}: "IdeRController", efi.GUID{0x07, 0xdf, 0xd4, 0x4d, 0x78, 0x32, 0x6f, 0x40, 0xb5, 0xde, 0xec, 0x7e, 0xec, 0xc6, 0x50, 0xe1}: "CrbPxeUefiDriver", efi.GUID{0x07, 0xe3, 0x68, 0xdc, 0x8c, 0x6c, 0x97, 0x49, 0xb3, 0x2f, 0x3f, 0x73, 0xc3, 0x81, 0xb7, 0x69}: "DellSmmTagsProtocol", efi.GUID{0x07, 0xec, 0x21, 0xe1, 0x42, 0x9c, 0xee, 0x45, 0xb0, 0xb6, 0xff, 0xf8, 0xef, 0x03, 0xc5, 0x21}: "AppleRtcRam", efi.GUID{0x07, 0xec, 0x9c, 0xc8, 0xee, 0xc4, 0x0c, 0x44, 0xbf, 0xc5, 0xa2, 0x2f, 0x43, 0x37, 0x2f, 0x22}: "DellDashConfig", efi.GUID{0x07, 0xec, 0xeb, 0x26, 0x0b, 0x93, 0x92, 0x4b, 0x81, 0xb7, 0x2b, 0xc1, 0x04, 0xd1, 0xcd, 0xbc}: "Nct5124dPeiInit", efi.GUID{0x07, 0xf0, 0x7c, 0xf2, 0xc7, 0x4a, 0x74, 0x4b, 0xb2, 0xd0, 0x73, 0x16, 0x1c, 0x24, 0x14, 0x62}: "FjMfgNvmeIdentifyCheckDxe", efi.GUID{0x08, 0x03, 0x00, 0x6d, 0x13, 0xc9, 0xdb, 0x40, 0xad, 0x40, 0xb3, 0x09, 0x4f, 0xb0, 0xf7, 0x56}: "AmdCcxXvDxe", efi.GUID{0x08, 0x0f, 0x0f, 0x4a, 0x19, 0xee, 0xe2, 0x4f, 0x85, 0xb1, 0x9a, 0xb4, 0x71, 0x8d, 0x17, 0xd0}: "BiosSelfHealingSmm", efi.GUID{0x08, 0x12, 0x67, 0xa1, 0x69, 0x72, 0x1b, 0x4e, 0xba, 0xda, 0xce, 0x0f, 0x51, 0x84, 0x4c, 0x2a}: "PlatformTcoReset", efi.GUID{0x08, 0x17, 0x87, 0x1f, 0x41, 0x15, 0x1f, 0x46, 0x91, 0xd5, 0x4a, 0x90, 0x85, 0x2d, 0xc9, 0x13}: "FjGabiNvramMergeSmm", efi.GUID{0x08, 0x26, 0xc2, 0x0b, 0xc5, 0xec, 0xb9, 0x47, 0xa0, 0x38, 0x4f, 0x0a, 0x68, 0x37, 0x2e, 0x44}: "DellDeviceNameConfig", efi.GUID{0x08, 0x28, 0xcb, 0x0b, 0xa5, 0xfe, 0x47, 0x60, 0x9a, 0x60, 0x87, 0x67, 0xa4, 0x6a, 0x72, 0xa1}: "AppleUdp4Dxe", efi.GUID{0x08, 0x2d, 0x95, 0xdc, 0x2b, 0xc6, 0xc6, 0x41, 0xba, 0xc7, 0x70, 0xed, 0x05, 0x4f, 0x91, 0xe5}: "Pkcs7VerifyDxe", efi.GUID{0x08, 0x30, 0x44, 0xed, 0x06, 0x3f, 0xdb, 0x46, 0x92, 0x7e, 0x7a, 0xb2, 0xf0, 0x2a, 0xf9, 0xd9}: "ApplePciCameraDxe", efi.GUID{0x08, 0x31, 0x9c, 0x2e, 0x31, 0x7c, 0x28, 0x47, 0x8d, 0x61, 0xf9, 0xec, 0x77, 0x69, 0x23, 0x83}: "AmdNbioGfxRPLPei", efi.GUID{0x08, 0x35, 0x0a, 0x89, 0x16, 0xe8, 0xcf, 0x41, 0xb7, 0xe6, 0xed, 0x28, 0xe5, 0xbb, 0x5c, 0x28}: "AmtCompatiblity", efi.GUID{0x08, 0x3b, 0xb9, 0xac, 0xdc, 0x5c, 0x8f, 0x4a, 0x93, 0xd4, 0x06, 0xe3, 0x42, 0xdf, 0x18, 0x2e}: "PchPeiInitPpiGuid", efi.GUID{0x08, 0x40, 0x7b, 0x40, 0x5b, 0xbf, 0xdf, 0x11, 0x95, 0x47, 0xcf, 0x16, 0xe0, 0xd7, 0x20, 0x85}: "PL111LcdGraphicsDxe", efi.GUID{0x08, 0x42, 0xca, 0x79, 0xa1, 0xbb, 0x9a, 0x4a, 0x84, 0x56, 0xe1, 0xe6, 0x6a, 0x81, 0x48, 0x4e}: "Legacy8259", efi.GUID{0x08, 0x4c, 0x32, 0x1c, 0x94, 0xeb, 0x15, 0x47, 0x91, 0x80, 0xf5, 0xa4, 0x53, 0xc5, 0x72, 0x69}: "OemGOPCallBack", efi.GUID{0x08, 0x53, 0xe4, 0xa7, 0xb0, 0x81, 0xae, 0x43, 0xad, 0x30, 0x23, 0x98, 0x39, 0x5c, 0x27, 0xdf}: "ClearPassword", efi.GUID{0x08, 0x65, 0x41, 0x52, 0x1c, 0x18, 0x99, 0x48, 0x8c, 0xca, 0xe0, 0x20, 0xa2, 0xbd, 0x3f, 0x18}: "ODMSMM", efi.GUID{0x08, 0x71, 0x28, 0x71, 0x58, 0xbf, 0xea, 0x41, 0xb7, 0x1c, 0xb3, 0x62, 0x2d, 0xeb, 0xca, 0x9d}: "DellSmmSbGeneric", efi.GUID{0x08, 0x7a, 0x79, 0x91, 0x61, 0xb8, 0xa6, 0x49, 0xa2, 0x71, 0x7e, 0xca, 0x11, 0xd7, 0x90, 0x25}: "MemTestPei", efi.GUID{0x08, 0x81, 0x19, 0xaf, 0x2b, 0x86, 0x46, 0x4b, 0xaa, 0xb8, 0xb0, 0xb3, 0x4d, 0x3a, 0xde, 0x0f}: "WifiPxeControl", efi.GUID{0x08, 0x88, 0x09, 0xeb, 0xc1, 0x8f, 0xb1, 0x4f, 0xab, 0x66, 0x26, 0x78, 0x46, 0x33, 0xb7, 0x45}: "UltraFunctionTable", efi.GUID{0x08, 0x8f, 0x3d, 0x91, 0x30, 0x01, 0x85, 0x4e, 0xb5, 0x8e, 0x38, 0x9c, 0xa5, 0x66, 0xc1, 0xec}: "DellDeviceDetectionDxe", efi.GUID{0x08, 0x90, 0x26, 0x35, 0x21, 0xcf, 0x7c, 0x4a, 0xa5, 0x8c, 0x5c, 0xbf, 0x2b, 0xde, 0x4a, 0xa6}: "EmulatedEepromSmm", efi.GUID{0x08, 0x9e, 0xfd, 0xbd, 0x13, 0x31, 0x59, 0x42, 0x86, 0xed, 0x58, 0xdd, 0x83, 0x05, 0x35, 0xd8}: "StorageFlushDxe", efi.GUID{0x08, 0x9f, 0x79, 0x9c, 0x2e, 0x21, 0xa0, 0x49, 0x9c, 0xf1, 0xc4, 0xfd, 0xb0, 0x13, 0x0f, 0xcc}: "DellBeepErrorCodePei", efi.GUID{0x08, 0xa6, 0x8c, 0x87, 0x3f, 0x29, 0x2e, 0x48, 0x83, 0xa9, 0x50, 0xa4, 0x84, 0xb5, 0xd4, 0xed}: "EDockSmm", efi.GUID{0x08, 0xb0, 0x65, 0x30, 0x9b, 0x5e, 0xa9, 0x47, 0x9f, 0xe0, 0x00, 0x1c, 0xda, 0x3c, 0x5f, 0x68}: "CcgxFwUpdate", efi.GUID{0x08, 0xb7, 0x40, 0xaa, 0x73, 0x90, 0x36, 0x44, 0xb5, 0xfe, 0xd2, 0x2d, 0x7a, 0xbb, 0xa5, 0xc4}: "MemoryDiagnosticDxe", efi.GUID{0x08, 0xb8, 0x76, 0x1b, 0x0a, 0xb9, 0xa4, 0x42, 0xb0, 0xa0, 0xbe, 0x61, 0xb1, 0x21, 0xe1, 0x14}: "FjTpmMisc", efi.GUID{0x08, 0xc0, 0x96, 0x53, 0xf9, 0xd8, 0x76, 0x4d, 0xb6, 0x0e, 0x9f, 0x9a, 0xab, 0xa2, 0x92, 0x4a}: "LenovoStartupMenuDxe", efi.GUID{0x08, 0xc3, 0x4a, 0x59, 0x19, 0x88, 0x84, 0x42, 0xb6, 0x61, 0xb7, 0x57, 0x08, 0x81, 0xcc, 0x0f}: "RfSecureBoot", efi.GUID{0x08, 0xd0, 0x02, 0x63, 0x9b, 0x7f, 0x30, 0x4f, 0x87, 0xac, 0x60, 0xc9, 0xfe, 0xf5, 0xda, 0x4e}: "EfiShellProtocolGuid", efi.GUID{0x08, 0xd1, 0xfb, 0xf2, 0x85, 0x89, 0xdb, 0x11, 0xb0, 0x6a, 0x00, 0x40, 0xd0, 0x2b, 0x18, 0x35}: "MiscSubclass", efi.GUID{0x08, 0xde, 0x14, 0x09, 0x4d, 0x43, 0x9f, 0x4f, 0x93, 0xb3, 0x6f, 0xa4, 0x8a, 0xea, 0xf7, 0xe0}: "DellSpiPartMicron", efi.GUID{0x08, 0xe2, 0x89, 0x4f, 0x44, 0xe1, 0x04, 0x48, 0x9e, 0xc8, 0x0f, 0x89, 0x4f, 0x7e, 0x36, 0xd7}: "EfiPeiSectionExtractionPpiGuid", efi.GUID{0x08, 0xf4, 0x57, 0xe5, 0xc2, 0x3b, 0xce, 0x48, 0xa9, 0xe1, 0x40, 0xa3, 0xa9, 0x0e, 0xc1, 0xc7}: "USBControllerPei", efi.GUID{0x08, 0xf4, 0x7a, 0x9d, 0xa3, 0x64, 0xf4, 0x4a, 0x83, 0xc9, 0x2d, 0x10, 0x95, 0xf7, 0x00, 0xd1}: "CpuMpPei", efi.GUID{0x08, 0xf8, 0xa6, 0x6b, 0x7f, 0x52, 0x86, 0x41, 0x9c, 0x30, 0x67, 0x04, 0x99, 0xbd, 0x92, 0xd1}: "DellSmmComputraceAcpiMode", efi.GUID{0x08, 0xfb, 0x84, 0xd6, 0x0e, 0x8b, 0xaf, 0x4c, 0x8c, 0xff, 0x1e, 0xa3, 0x86, 0x27, 0x98, 0x09}: "HybridGraphicsSmm", efi.GUID{0x09, 0x0d, 0x2e, 0x61, 0x11, 0x5d, 0x16, 0x45, 0x82, 0xee, 0x6d, 0xd6, 0x05, 0xfe, 0x26, 0x5f}: "DellTxtDxe", efi.GUID{0x09, 0x0d, 0x30, 0xd3, 0x0f, 0xb7, 0x15, 0x43, 0x97, 0x85, 0xfe, 0x37, 0x20, 0x9e, 0xfd, 0xcb}: "HddSecurityBdsCall", efi.GUID{0x09, 0x0d, 0x9e, 0xee, 0xb9, 0x51, 0x37, 0x45, 0xaa, 0x64, 0x3b, 0xd7, 0x4c, 0x5f, 0xbf, 0xdf}: "OemDPTC", efi.GUID{0x09, 0x15, 0xf6, 0x8e, 0x0b, 0x89, 0xf2, 0x4f, 0xb3, 0x52, 0x1c, 0x0e, 0x9c, 0xdd, 0xec, 0x8b}: "I2CLibPei", efi.GUID{0x09, 0x17, 0xc7, 0xc7, 0xe0, 0xc3, 0x28, 0x40, 0x9c, 0x78, 0x1c, 0xaa, 0xe7, 0x3d, 0xae, 0x2a}: "DellPlatformAcLossPei", efi.GUID{0x09, 0x25, 0xb1, 0x5d, 0x50, 0x45, 0x47, 0x43, 0x96, 0xb3, 0x73, 0xc0, 0xff, 0x6e, 0x86, 0x9f}: "EfiRedfishDiscoverProtocol", efi.GUID{0x09, 0x28, 0x52, 0x80, 0x26, 0xd9, 0x50, 0x4d, 0x8e, 0x71, 0x1e, 0x89, 0x7a, 0xb2, 0x9e, 0x1d}: "FjPowerDeliveryCapsuleDxe", efi.GUID{0x09, 0x2d, 0x44, 0x32, 0x11, 0x1d, 0x27, 0x4e, 0x8a, 0xab, 0x90, 0xfe, 0x6a, 0xcb, 0x04, 0x89}: "SystemFormBrowserCoreDxe", efi.GUID{0x09, 0x32, 0x02, 0x80, 0x86, 0x63, 0x1d, 0x4c, 0x90, 0x9b, 0x63, 0x50, 0x6a, 0x21, 0x46, 0xff}: "HWM_SetupDXE", efi.GUID{0x09, 0x34, 0xb2, 0x19, 0xbd, 0x85, 0xb0, 0x44, 0x89, 0x7f, 0xec, 0xfe, 0x8a, 0xa7, 0xa1, 0x45}: "SmbiosElogType15", efi.GUID{0x09, 0x37, 0x12, 0x19, 0x70, 0xf7, 0xaa, 0x4f, 0x85, 0x8e, 0x3b, 0xd5, 0xfb, 0x18, 0x46, 0x4d}: "OemSmi", efi.GUID{0x09, 0x39, 0x07, 0x7a, 0x74, 0x6d, 0x73, 0x4c, 0x9f, 0x05, 0x3e, 0x0b, 0x05, 0x5c, 0xa6, 0x23}: "PlatformSioInitDxe", efi.GUID{0x09, 0x41, 0xa2, 0xac, 0x7a, 0x6c, 0xec, 0x4c, 0x91, 0x33, 0x5f, 0xb9, 0xd8, 0x27, 0x49, 0x10}: "IntelLtsxFit", efi.GUID{0x09, 0x46, 0x65, 0xd8, 0xf3, 0xf6, 0xe9, 0x44, 0xb8, 0xed, 0x20, 0xa9, 0x82, 0x98, 0x18, 0xc8}: "DellIoExpanderSmm", efi.GUID{0x09, 0x53, 0xdc, 0xfb, 0x95, 0xbf, 0xb5, 0x44, 0xa8, 0xae, 0xe0, 0x59, 0x3e, 0x05, 0x22, 0xbf}: "BackupBiosUpdate", efi.GUID{0x09, 0x6d, 0xe3, 0xc3, 0x94, 0x82, 0x97, 0x4b, 0xa8, 0x57, 0xd5, 0x28, 0x8f, 0xe3, 0x3e, 0x28}: "EfiBiosIdGuid", efi.GUID{0x09, 0x71, 0xaf, 0xea, 0x2d, 0xec, 0x30, 0x4a, 0xbf, 0x4f, 0x62, 0x14, 0x08, 0x63, 0x0e, 0x4c}: "FlashOemHooKSmm", efi.GUID{0x09, 0x71, 0xec, 0x9b, 0x7a, 0x6d, 0x3a, 0x41, 0x8e, 0x4b, 0x01, 0x9c, 0xed, 0x05, 0x03, 0xe1}: "AmiBoardInfoSectionGuid", efi.GUID{0x09, 0x76, 0xd3, 0x6a, 0xf9, 0xa9, 0x87, 0x45, 0x90, 0x23, 0x78, 0x20, 0xe1, 0x0f, 0x5b, 0x7a}: "HiiLayoutPkgDxe", efi.GUID{0x09, 0x76, 0xe4, 0x0c, 0x04, 0x0e, 0xe5, 0x4e, 0xa1, 0x92, 0xf4, 0x10, 0xa1, 0x99, 0x5e, 0x0a}: "b57undix64", efi.GUID{0x09, 0x77, 0x31, 0x37, 0x19, 0x3b, 0x6a, 0x44, 0xb1, 0x84, 0x63, 0x02, 0x7e, 0x14, 0xaf, 0x01}: "DeviceGuardProtocolOverride", efi.GUID{0x09, 0x78, 0x16, 0xb8, 0x3a, 0xe7, 0x87, 0x43, 0x83, 0x23, 0x0a, 0xfe, 0x83, 0xd3, 0x07, 0x4f}: "SmmAslSmiProtocol", efi.GUID{0x09, 0x81, 0xed, 0x2d, 0x55, 0x23, 0xf8, 0x41, 0xa6, 0x57, 0xd6, 0x08, 0xd5, 0xcc, 0x10, 0x22}: "SdxcDxe", efi.GUID{0x09, 0x8c, 0x59, 0xb4, 0x08, 0xda, 0x75, 0x5f, 0xa9, 0x56, 0x2c, 0xff, 0x90, 0x1b, 0x1c, 0x24}: "MonacoFont", efi.GUID{0x09, 0x94, 0x15, 0x97, 0x5f, 0xce, 0x1c, 0x4c, 0xbd, 0xae, 0x7b, 0xd6, 0x98, 0x1c, 0x2c, 0x11}: "SmcSetPowerStatus", efi.GUID{0x09, 0x94, 0x15, 0x97, 0x5f, 0xce, 0x1c, 0x4c, 0xbd, 0xae, 0x7b, 0xd6, 0x98, 0x1c, 0x2c, 0x4f}: "SmcOpromCtl", efi.GUID{0x09, 0x9a, 0x1c, 0x82, 0x1a, 0x54, 0xf6, 0x40, 0x9f, 0x43, 0x0a, 0xd1, 0x93, 0xa1, 0x2c, 0xfe}: "EdkiiMemoryProfileGuid", efi.GUID{0x09, 0x9a, 0x73, 0x45, 0x5e, 0x04, 0xb5, 0x40, 0x9f, 0xa2, 0xf7, 0xf6, 0x6c, 0xb3, 0x55, 0x51}: "DisplayDetectDxe", efi.GUID{0x09, 0x9f, 0x15, 0xce, 0x96, 0xd8, 0x58, 0x40, 0xb5, 0xbb, 0x1a, 0xe6, 0xea, 0xb0, 0x0e, 0x01}: "OemPowerModeDxe", efi.GUID{0x09, 0xa3, 0x87, 0xae, 0x97, 0xfc, 0x55, 0x4e, 0x94, 0xdd, 0xbb, 0x1b, 0x06, 0x1c, 0xe8, 0x4a}: "FjSystemConfigurationRt", efi.GUID{0x09, 0xad, 0x44, 0x3e, 0x8b, 0xd8, 0x52, 0x4c, 0xb4, 0x1b, 0xb8, 0xc0, 0x05, 0x36, 0x47, 0x4a}: "LenovoSystemCryptSvcRt", efi.GUID{0x09, 0xad, 0xae, 0xba, 0xa0, 0x02, 0x31, 0x41, 0x9e, 0x0d, 0xbc, 0x52, 0x9e, 0xf0, 0xff, 0x2a}: "EfiTcgMpDriverHobGuid", efi.GUID{0x09, 0xb2, 0xbc, 0x3b, 0xc8, 0x26, 0xa9, 0x4b, 0xad, 0x25, 0xb9, 0x5b, 0x45, 0xa0, 0x4d, 0x26}: "BatteryState3", efi.GUID{0x09, 0xb6, 0xb8, 0xb8, 0x6c, 0x0b, 0x8c, 0x4b, 0xa7, 0x31, 0xde, 0x03, 0xa6, 0xc3, 0xf3, 0xdc}: "ScBiosWriteProtect", efi.GUID{0x09, 0xc0, 0x24, 0xe4, 0x92, 0xcd, 0xec, 0x4f, 0x80, 0x29, 0xd7, 0x9d, 0x3f, 0x1c, 0xf3, 0xde}: "IntelIchReset", efi.GUID{0x09, 0xc3, 0xb6, 0x89, 0x85, 0xf7, 0x1f, 0x42, 0xa0, 0x3c, 0x38, 0xa8, 0x00, 0x34, 0x52, 0x01}: "AmdCpmUartDxe", efi.GUID{0x09, 0xc7, 0x00, 0x2b, 0x2f, 0x78, 0x79, 0x48, 0xa5, 0x9a, 0x8e, 0x2f, 0xce, 0x22, 0x71, 0xf8}: "AmdCdmaDsmDxe", efi.GUID{0x09, 0xc8, 0x6b, 0x1b, 0x86, 0xc9, 0x37, 0x49, 0x93, 0x4f, 0x1e, 0xa5, 0x86, 0x22, 0xfe, 0x50}: "AmiTseBootOrderChangeGuid", efi.GUID{0x09, 0xd6, 0x71, 0x9e, 0x24, 0x6d, 0xfd, 0x47, 0xb5, 0x72, 0x61, 0x40, 0xf8, 0xd9, 0xc2, 0xa4}: "PchTcoSmiDispatchProtocol", efi.GUID{0x09, 0xdc, 0xc5, 0x32, 0x93, 0xe4, 0x04, 0x4e, 0xa3, 0x88, 0x57, 0x4d, 0xee, 0x0c, 0xee, 0x7b}: "FjRandomNumberSmm", efi.GUID{0x09, 0xdc, 0xe0, 0xbe, 0x48, 0xb0, 0x6d, 0x47, 0xa0, 0xbb, 0xac, 0xf9, 0xb4, 0xf6, 0x5c, 0x41}: "DellUsbKbPei", efi.GUID{0x09, 0xf1, 0x1a, 0xd8, 0x41, 0x47, 0xdd, 0x4e, 0xb4, 0xc4, 0x58, 0xcf, 0xf3, 0x21, 0xd7, 0xad}: "FjBiosPostGpioPei", efi.GUID{0x0a, 0x07, 0xe1, 0x82, 0x08, 0xb8, 0x26, 0x4f, 0xa8, 0xe9, 0xac, 0xdc, 0xdf, 0xf2, 0x72, 0x1a}: "Rtk8153UsbUndiDxe", efi.GUID{0x0a, 0x08, 0xc3, 0xdd, 0x40, 0x27, 0xc2, 0x4e, 0x9a, 0xa5, 0xa0, 0xad, 0xef, 0xd6, 0xff, 0x9c}: "EfiIioSystemProtocol", efi.GUID{0x0a, 0x0d, 0x1f, 0xce, 0x92, 0x2e, 0xba, 0x4e, 0xa1, 0x71, 0xad, 0x89, 0x12, 0x5c, 0xee, 0x87}: "ValidateExtendedBiosRegionPostMem", efi.GUID{0x0a, 0x12, 0x27, 0x6e, 0x10, 0xa5, 0xac, 0x48, 0xbd, 0x66, 0x70, 0x83, 0xda, 0x4d, 0x59, 0x4f}: "CmosWarningPEI", efi.GUID{0x0a, 0x16, 0x16, 0xee, 0xbe, 0xe8, 0xa6, 0x47, 0x82, 0x0a, 0xc6, 0x90, 0x0d, 0xb0, 0x25, 0x0a}: "EfiPeiMpServicesPpiGuid", efi.GUID{0x0a, 0x2e, 0xe2, 0x50, 0x03, 0x41, 0x99, 0x99, 0x9b, 0xe0, 0xaa, 0x8c, 0xec, 0xbc, 0xe6, 0x94}: "AmdRasApeiDxe", efi.GUID{0x0a, 0x31, 0xc0, 0x25, 0x9e, 0xcb, 0xe0, 0x47, 0xcb, 0xc0, 0xf7, 0xf4, 0x5e, 0x55, 0xac, 0x9f}: "DellMfgBootListConfigDxe", efi.GUID{0x0a, 0x33, 0xa9, 0x07, 0x47, 0xf3, 0xd4, 0x11, 0x9a, 0x49, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d}: "LegacyMetronome", efi.GUID{0x0a, 0x38, 0xbe, 0x29, 0xc0, 0xfb, 0x2b, 0x46, 0xa6, 0xc2, 0x5c, 0x5a, 0x07, 0x6c, 0xaf, 0xde}: "ProjectPEI", efi.GUID{0x0a, 0x3d, 0x49, 0xf4, 0xcb, 0xfd, 0x25, 0x4e, 0x9f, 0x11, 0x64, 0x16, 0xb1, 0x51, 0x4f, 0x0e}: "OemVerbTable", efi.GUID{0x0a, 0x40, 0xf9, 0xef, 0x95, 0xad, 0x5b, 0x47, 0x86, 0x8f, 0xc7, 0xaf, 0xc3, 0x13, 0xba, 0x72}: "AmiPeiCreateDummyRcHob", efi.GUID{0x0a, 0x41, 0xbd, 0x61, 0xf6, 0x69, 0x6f, 0x43, 0x94, 0x37, 0x16, 0xb4, 0xf3, 0x10, 0x8f, 0x3b}: "StaticSkuDataDxeHedtCRB", efi.GUID{0x0a, 0x48, 0x5b, 0x1b, 0x45, 0x2b, 0xae, 0x48, 0xaa, 0x0a, 0xd8, 0x2b, 0x92, 0xa7, 0x73, 0x8b}: "AppAdapterSgx3v0", efi.GUID{0x0a, 0x50, 0x6a, 0x22, 0x4f, 0xe1, 0x4a, 0x41, 0xa9, 0x56, 0x40, 0xe5, 0x76, 0x2d, 0x3d, 0x1e}: "PrmLoaderDxe", efi.GUID{0x0a, 0x55, 0x83, 0x1c, 0x5b, 0x7e, 0x30, 0x4a, 0x9e, 0x93, 0xe2, 0x15, 0x37, 0x71, 0xaa, 0x25}: "FjDmiCpu", efi.GUID{0x0a, 0x57, 0x74, 0x5b, 0xb1, 0x03, 0x5e, 0x4f, 0x8a, 0xdb, 0xfb, 0x7b, 0xb1, 0x94, 0xd7, 0xcc}: "NVMeInfoSmm", efi.GUID{0x0a, 0x63, 0x73, 0xae, 0x2d, 0x02, 0x84, 0x48, 0xa6, 0x96, 0xf7, 0x28, 0xcb, 0xf5, 0x3a, 0xef}: "SetupItemLinkageSmm", efi.GUID{0x0a, 0x67, 0x76, 0xce, 0xc0, 0x55, 0x4b, 0x48, 0x96, 0x2e, 0x84, 0xa2, 0xf6, 0x52, 0x10, 0xa6}: "MEMPATCHPEI", efi.GUID{0x0a, 0x68, 0xf5, 0x86, 0x5c, 0x15, 0xc8, 0x4b, 0xac, 0x77, 0x57, 0x38, 0x48, 0xe2, 0xad, 0x3d}: "AmiTreePpiGuid", efi.GUID{0x0a, 0x6e, 0xe6, 0x80, 0xd1, 0xcc, 0xfa, 0x43, 0xa7, 0xb1, 0x2d, 0x5e, 0xe0, 0xf1, 0x39, 0x10}: "PciRootBridge", efi.GUID{0x0a, 0x78, 0x98, 0x1c, 0x7d, 0xc6, 0x9b, 0x4d, 0xa9, 0xd8, 0x4a, 0xc0, 0x48, 0x7a, 0x6d, 0x6e}: "PcdRecoveryPei", efi.GUID{0x0a, 0x78, 0xbf, 0xdb, 0x37, 0x13, 0xa8, 0x49, 0x9b, 0x73, 0x39, 0x02, 0xd6, 0x04, 0x7b, 0xd8}: "H19DisplayHook", efi.GUID{0x0a, 0x7e, 0xe6, 0x4d, 0x2c, 0x16, 0x99, 0x49, 0xa5, 0xb8, 0xba, 0x0e, 0x5d, 0x43, 0x28, 0x4c}: "CmosChecksum", efi.GUID{0x0a, 0x7f, 0x85, 0x42, 0xf2, 0x13, 0x21, 0x4b, 0x8a, 0x23, 0x53, 0xd3, 0xf7, 0x14, 0xb8, 0x40}: "SystemCapsuleRt", efi.GUID{0x0a, 0x81, 0x0c, 0x95, 0xed, 0x4e, 0x9e, 0x41, 0x8e, 0xe8, 0x71, 0xe8, 0x35, 0x4d, 0x86, 0xc8}: "OcInitPostMem", efi.GUID{0x0a, 0x84, 0x97, 0x7a, 0xf6, 0xf3, 0xec, 0x49, 0x92, 0x8a, 0x36, 0xd9, 0x0a, 0x76, 0xd6, 0xa5}: "RecoveryFchInitPei", efi.GUID{0x0a, 0x8d, 0xbc, 0x6c, 0xce, 0x7a, 0xc5, 0x40, 0x92, 0xe5, 0xf0, 0xda, 0x0a, 0x8a, 0x86, 0x9e}: "FjRealtekLanDriverSetup", efi.GUID{0x0a, 0x90, 0xf9, 0x55, 0xb0, 0xbf, 0x30, 0x4b, 0x83, 0xee, 0x7f, 0x43, 0x7f, 0xaf, 0xae, 0x33}: "LenovoDriveEraseSmm", efi.GUID{0x0a, 0x96, 0xb1, 0x27, 0x02, 0xee, 0xa8, 0x47, 0x87, 0xb0, 0x12, 0x22, 0xf1, 0x19, 0x25, 0x7f}: "FchTaishanPei", efi.GUID{0x0a, 0x9f, 0x6f, 0x24, 0xe3, 0x11, 0x9a, 0x45, 0xae, 0x06, 0x37, 0x2b, 0xdc, 0x4d, 0xe8, 0x06}: "LenovoSystemStatusCodeGenericRt", efi.GUID{0x0a, 0xa1, 0x33, 0x3c, 0x7e, 0x91, 0x25, 0x49, 0xa2, 0xc4, 0x8b, 0x54, 0x5b, 0xf1, 0x0a, 0x82}: "HddPwSmm", efi.GUID{0x0a, 0xa5, 0x24, 0x0a, 0x48, 0xc1, 0xb6, 0x42, 0x93, 0x02, 0x8e, 0xd3, 0x1d, 0x33, 0x4e, 0x73}: "ASRockNetFtp", efi.GUID{0x0a, 0xa9, 0x98, 0xeb, 0xee, 0x42, 0x36, 0x4a, 0x8d, 0xcc, 0xaf, 0xa7, 0x22, 0xc9, 0xca, 0xb3}: "AmiTcgPkgTokenSpaceGuid", efi.GUID{0x0a, 0xab, 0xca, 0x4d, 0x90, 0x19, 0x52, 0x43, 0x8d, 0x2f, 0x2d, 0x8f, 0x13, 0x55, 0x98, 0xa5}: "EslTcp4ServiceGuid", efi.GUID{0x0a, 0xad, 0x28, 0xa4, 0x34, 0x50, 0x37, 0x4e, 0x8f, 0x9d, 0xdb, 0x2c, 0xe7, 0x2a, 0x59, 0xb3}: "SmbiosOverride", efi.GUID{0x0a, 0xb3, 0x21, 0xa7, 0x7c, 0x5a, 0x6f, 0x4b, 0xac, 0x69, 0x07, 0x49, 0x61, 0x29, 0xa2, 0x6a}: "FjRealtekLanControl", efi.GUID{0x0a, 0xbe, 0xab, 0xb3, 0x28, 0x8b, 0x46, 0x44, 0xbb, 0x2c, 0x44, 0x09, 0xbc, 0xc7, 0x5f, 0xd9}: "AsusGpnvDxe", efi.GUID{0x0a, 0xc0, 0x29, 0xf4, 0x40, 0x96, 0xb3, 0x46, 0x95, 0x44, 0xf8, 0xf8, 0x6a, 0x28, 0xf3, 0x0f}: "PlatformConfigChangeProtocolGuid", efi.GUID{0x0a, 0xc0, 0x98, 0x9c, 0x9b, 0x2e, 0x96, 0x48, 0x95, 0xc8, 0xac, 0x64, 0x35, 0x82, 0x84, 0xe5}: "AmiDxeHashInterfaceguid", efi.GUID{0x0a, 0xc8, 0x2f, 0x65, 0x4e, 0x68, 0xb6, 0x40, 0x86, 0xac, 0x71, 0x01, 0x48, 0xe2, 0xc5, 0x40}: "ObjMgr", efi.GUID{0x0a, 0xc8, 0xb6, 0xd2, 0xfe, 0xfa, 0x12, 0x45, 0x83, 0x5d, 0x50, 0xd1, 0x36, 0x54, 0x0a, 0xaa}: "MultiConfigUpdateDxe", efi.GUID{0x0a, 0xc9, 0xdc, 0xfb, 0xa2, 0xa7, 0x50, 0x4d, 0xaf, 0x79, 0x88, 0x0a, 0x51, 0x3c, 0x53, 0x87}: "QCAWIFI", efi.GUID{0x0a, 0xca, 0x47, 0x8a, 0x01, 0xb2, 0xef, 0x46, 0x88, 0x83, 0x54, 0xd4, 0x55, 0x7a, 0x93, 0xa0}: "DisplayLogoDxe", efi.GUID{0x0a, 0xcc, 0x45, 0x1b, 0x6a, 0x15, 0x8a, 0x42, 0xaf, 0x62, 0x49, 0x86, 0x4d, 0xa0, 0xe6, 0xe6}: "AprioriPei", efi.GUID{0x0a, 0xcd, 0xdb, 0x16, 0x77, 0xed, 0x2c, 0x44, 0xa4, 0xab, 0x3d, 0xca, 0xde, 0x37, 0x8a, 0x1c}: "ThunderboltNhi", efi.GUID{0x0a, 0xcf, 0x85, 0x6d, 0x5f, 0x4a, 0xb0, 0x49, 0xba, 0xfd, 0xa9, 0x09, 0x92, 0x67, 0x7f, 0xf7}: "WinbondWpcn381u", efi.GUID{0x0a, 0xd9, 0x74, 0xb6, 0xda, 0x9b, 0x0d, 0x41, 0xa2, 0x6c, 0x14, 0xd6, 0xaf, 0xfe, 0xbd, 0x6e}: "CompalCMFCDxe", efi.GUID{0x0a, 0xd9, 0x74, 0xb6, 0xda, 0x9b, 0x0d, 0x41, 0xa2, 0x6c, 0x14, 0xd6, 0xaf, 0xfe, 0xbd, 0x6f}: "CompalEDIDDxe", efi.GUID{0x0a, 0xdb, 0x6c, 0x3d, 0x1f, 0x5b, 0xa3, 0x43, 0xa4, 0x3b, 0x44, 0x12, 0x67, 0xf9, 0xda, 0xb5}: "AmiSmbiosCpuInfoProtocol", efi.GUID{0x0a, 0xe3, 0x0f, 0x56, 0x0c, 0x76, 0xfa, 0x46, 0x98, 0x9a, 0x20, 0x6f, 0x48, 0xc1, 0x7c, 0x80}: "UsbHubTuningDxe", efi.GUID{0x0a, 0xef, 0x26, 0x8f, 0x7f, 0x4f, 0x4b, 0x4e, 0x98, 0x02, 0x8c, 0x22, 0xb7, 0x00, 0xff, 0xac}: "EnglishDxe", efi.GUID{0x0a, 0xf1, 0x3a, 0x90, 0xe0, 0xbd, 0xce, 0x46, 0xa0, 0x61, 0x8d, 0xbf, 0xf2, 0xd2, 0x42, 0x69}: "Kb902xFlashDxe", efi.GUID{0x0a, 0xf7, 0xc2, 0xe6, 0x04, 0xb6, 0x77, 0x48, 0x85, 0xba, 0xde, 0xec, 0x89, 0xe1, 0x17, 0xeb}: "PchInitVariableGuid", efi.GUID{0x0a, 0xf9, 0xb0, 0x7a, 0xf8, 0xbd, 0x10, 0x40, 0xa4, 0x34, 0x43, 0x29, 0xfb, 0x61, 0x33, 0x0d}: "SmBusPei", efi.GUID{0x0a, 0xfd, 0xb4, 0x56, 0x0f, 0x80, 0x8f, 0x40, 0xb4, 0xe3, 0xc1, 0xb2, 0x10, 0x51, 0x77, 0xd4}: "DellAmtConfigDxe", efi.GUID{0x0b, 0x07, 0xb7, 0xc7, 0xa8, 0xe5, 0x86, 0x4b, 0x91, 0x10, 0xbd, 0xca, 0x10, 0x95, 0xf4, 0x96}: "PeiFspHobProcessLibSample", efi.GUID{0x0b, 0x14, 0x96, 0x60, 0xaa, 0xf2, 0xb5, 0x4f, 0x95, 0x0d, 0xd8, 0xfe, 0x83, 0x35, 0x64, 0xdc}: "AmdDashDxe", efi.GUID{0x0b, 0x17, 0x3e, 0x24, 0xbb, 0x83, 0x43, 0x4e, 0x84, 0x0a, 0xf9, 0xec, 0x85, 0x7f, 0xd7, 0x83}: "FjGabiPostFlash", efi.GUID{0x0b, 0x1b, 0x4d, 0xc7, 0xb1, 0x91, 0x4a, 0x48, 0xa0, 0x38, 0xfe, 0x7a, 0x08, 0x47, 0xaa, 0x07}: "DualBiosDxe", efi.GUID{0x0b, 0x1e, 0xd4, 0x0f, 0xdf, 0xc4, 0x4b, 0x4b, 0x86, 0x3d, 0x17, 0xc0, 0xdb, 0xd6, 0xef, 0x56}: "SbSmi", efi.GUID{0x0b, 0x29, 0x15, 0x52, 0xe9, 0x7f, 0xd4, 0x44, 0x8d, 0xdb, 0x25, 0x11, 0x66, 0xee, 0xbe, 0x7f}: "OemMonotonicDxe", efi.GUID{0x0b, 0x29, 0x53, 0xa3, 0x7d, 0x86, 0xd3, 0x4c, 0xa8, 0x1b, 0x4b, 0x7e, 0x5e, 0x10, 0x0e, 0x16}: "EfiPlatformTxtPolicyData", efi.GUID{0x0b, 0x2e, 0xf3, 0x5c, 0xdf, 0x8e, 0x44, 0x2e, 0x9c, 0xda, 0x93, 0x20, 0x5e, 0x99, 0xec, 0x1c}: "EmuThunkProtocolGuid", efi.GUID{0x0b, 0x32, 0x37, 0x4a, 0xb3, 0x3f, 0x65, 0x43, 0x97, 0x30, 0x9e, 0x89, 0xc6, 0x00, 0x39, 0x5d}: "SmmDispatcher", efi.GUID{0x0b, 0x39, 0x99, 0x66, 0x2b, 0xdd, 0x2f, 0x43, 0xbe, 0xb2, 0x8c, 0x7d, 0x6a, 0x2c, 0x0c, 0xfc}: "HpPlatformPeiServices", efi.GUID{0x0b, 0x3a, 0x22, 0xc2, 0xd3, 0x80, 0x35, 0x4c, 0x89, 0x1f, 0xbd, 0x0c, 0xc4, 0xe9, 0x90, 0xf0}: "LenovoSystemFvFileLoader", efi.GUID{0x0b, 0x3c, 0x84, 0x89, 0x01, 0x57, 0xf6, 0x4f, 0xa4, 0x73, 0x65, 0x75, 0x99, 0x04, 0xf7, 0x35}: "EfiBmcAcpiSwChildPolicyProtocol", efi.GUID{0x0b, 0x4a, 0xe9, 0x27, 0x3c, 0x6e, 0x4b, 0x4b, 0xb8, 0x76, 0x17, 0x6a, 0xe5, 0x21, 0xce, 0x60}: "DellHotSosDxe", efi.GUID{0x0b, 0x4c, 0x58, 0x98, 0xd6, 0x49, 0xaf, 0x4b, 0xb5, 0x42, 0xec, 0xee, 0x25, 0x82, 0x40, 0x9c}: "AsusBackupDxe", efi.GUID{0x0b, 0x50, 0x64, 0xe7, 0x98, 0xe3, 0xb7, 0x4a, 0xbb, 0xbc, 0x99, 0xa8, 0xe6, 0x83, 0x68, 0x1f}: "MeSmbiosDxe", efi.GUID{0x0b, 0x55, 0xa5, 0x85, 0x76, 0x3e, 0xe4, 0x42, 0x88, 0x26, 0xf9, 0x87, 0x99, 0x83, 0xde, 0x69}: "DellOA3", efi.GUID{0x0b, 0x5b, 0x7f, 0xd1, 0xec, 0xab, 0x0b, 0x4c, 0x9e, 0x4c, 0x80, 0xab, 0xfa, 0xad, 0x03, 0x79}: "PTDxeInit", efi.GUID{0x0b, 0x60, 0x80, 0xd7, 0x7e, 0x69, 0xb7, 0x43, 0x9d, 0x6e, 0x30, 0xf7, 0x42, 0x89, 0x1a, 0x72}: "OemACPIDriverSmm", efi.GUID{0x0b, 0x60, 0xf8, 0x6c, 0x56, 0x6b, 0x7d, 0x44, 0xac, 0x08, 0x05, 0xf8, 0xc3, 0xb0, 0x00, 0x54}: "Tpm2ReservedNvIndexPei", efi.GUID{0x0b, 0x6f, 0xdb, 0x0f, 0x81, 0x55, 0x99, 0x49, 0xaf, 0x7d, 0xa5, 0x71, 0xe3, 0x13, 0x1b, 0xd2}: "FjGabiDeviceFirmwareApiSmm", efi.GUID{0x0b, 0x72, 0xff, 0xe0, 0x40, 0x01, 0xfe, 0x43, 0x95, 0x28, 0x7a, 0x78, 0x13, 0x57, 0xe4, 0x2e}: "UsbOhciDxe", efi.GUID{0x0b, 0x79, 0x24, 0x0b, 0x79, 0x6c, 0xe4, 0x4c, 0x8e, 0x09, 0x38, 0x64, 0xc4, 0x9b, 0xe2, 0x56}: "SioWdtSmi", efi.GUID{0x0b, 0x82, 0x44, 0xfd, 0xab, 0xf1, 0xc0, 0x41, 0xae, 0x4e, 0x0c, 0x55, 0x55, 0x6e, 0xb9, 0xbd}: "SMBiosFlashData", efi.GUID{0x0b, 0x83, 0x00, 0x1e, 0xa5, 0x8b, 0x24, 0x4d, 0x86, 0x09, 0xe7, 0x49, 0x94, 0xe1, 0x3a, 0x39}: "Common_LilyPei", efi.GUID{0x0b, 0x8d, 0xb1, 0x8b, 0x93, 0x91, 0xc5, 0x4d, 0xbd, 0xa0, 0x7b, 0xea, 0x37, 0x35, 0xdc, 0x34}: "FjUsbHub", efi.GUID{0x0b, 0x9a, 0x43, 0x5f, 0xd8, 0x45, 0x82, 0x46, 0xa4, 0xf4, 0xf0, 0x57, 0x6b, 0x51, 0x34, 0x41}: "EfiSmmCpuIoGuid", efi.GUID{0x0b, 0x9b, 0x83, 0x75, 0x99, 0x0a, 0x33, 0x42, 0x8a, 0xa4, 0x38, 0x66, 0xf6, 0xce, 0xf4, 0xb3}: "FpgaSocketVariable", efi.GUID{0x0b, 0xa6, 0xbd, 0x55, 0x0f, 0x1d, 0xd5, 0x42, 0x9f, 0x09, 0x2d, 0x3d, 0x30, 0x67, 0xb8, 0x99}: "EarlyDevices", efi.GUID{0x0b, 0xa7, 0x5e, 0x8d, 0xeb, 0x02, 0xd8, 0x48, 0xbe, 0xab, 0x45, 0x97, 0x78, 0xc5, 0xde, 0x1f}: "SmmConfidentialMem", efi.GUID{0x0b, 0xa7, 0x93, 0xcc, 0x27, 0xec, 0xc5, 0x49, 0x8b, 0x34, 0x13, 0x93, 0x1e, 0xfe, 0xd6, 0xe2}: "EfiAlertStandardFormatProtocolGuid", efi.GUID{0x0b, 0xa8, 0x9c, 0xbd, 0x0e, 0x94, 0x55, 0x4b, 0x88, 0xa4, 0xbb, 0x3a, 0x3c, 0xc9, 0x98, 0x63}: "DellStatusServiceSmmInit", efi.GUID{0x0b, 0xaa, 0x4b, 0x6d, 0x31, 0xf4, 0x70, 0x43, 0xaf, 0x19, 0x99, 0xd6, 0x20, 0x92, 0x39, 0xf6}: "BiosGuardServices", efi.GUID{0x0b, 0xba, 0xf6, 0x2d, 0x92, 0x70, 0x0d, 0x44, 0xbd, 0x04, 0xfb, 0x09, 0x1e, 0xc3, 0xf3, 0xc1}: "EdkiiPlatformSpecificResetHandlerProtocol", efi.GUID{0x0b, 0xbc, 0xad, 0x7a, 0xb8, 0x45, 0x94, 0x46, 0xbb, 0x98, 0xa9, 0x91, 0x96, 0x17, 0x99, 0xd8}: "FlashInterfacePei", efi.GUID{0x0b, 0xc7, 0xae, 0x7b, 0xe0, 0x57, 0x76, 0x4c, 0x8e, 0x87, 0x2f, 0x9e, 0x28, 0x08, 0x83, 0x43}: "EfiVT100PlusGuid", efi.GUID{0x0b, 0xc7, 0xc4, 0x2c, 0x12, 0x03, 0xd7, 0x4c, 0xbf, 0xc2, 0xa7, 0xa8, 0x9c, 0x88, 0xc0, 0x8a}: "DriveLockDxe", efi.GUID{0x0b, 0xca, 0xa4, 0x98, 0xe1, 0x7f, 0xb0, 0x48, 0xb6, 0x8d, 0x23, 0xeb, 0x0e, 0x25, 0x9c, 0x13}: "ScsiPassThruAtapi", efi.GUID{0x0b, 0xd1, 0xcd, 0x38, 0x7d, 0x76, 0x6e, 0x4f, 0xa7, 0x44, 0x67, 0xee, 0x1d, 0xfe, 0x2f, 0xa5}: "PeiTxtMemoryUnlockedPpi", efi.GUID{0x0b, 0xd2, 0x87, 0xe2, 0x97, 0xd8, 0x1e, 0x4e, 0xa5, 0xd9, 0x97, 0x77, 0x63, 0x93, 0x6a, 0x04}: "EfiPchS3SupportProtocolGuid", efi.GUID{0x0b, 0xd5, 0x00, 0xaa, 0x11, 0x49, 0x8f, 0x42, 0xb9, 0x1a, 0xa5, 0x9d, 0xdb, 0x13, 0xe2, 0x4c}: "EdkiiSmmCpuRendezvousProtocol", efi.GUID{0x0b, 0xd5, 0xa5, 0x8d, 0x9c, 0xa3, 0xf7, 0x4f, 0xab, 0x4f, 0x74, 0x26, 0xa1, 0x45, 0xd0, 0xe4}: "RandomNumberGen", efi.GUID{0x0b, 0xe6, 0xda, 0x5e, 0xb0, 0xa9, 0x46, 0x42, 0x91, 0xdc, 0xe9, 0x7a, 0x4e, 0x4a, 0xdb, 0x2e}: "Armani_PowerReportSmm", efi.GUID{0x0b, 0xf0, 0x1d, 0xee, 0xfe, 0xb4, 0x62, 0x47, 0xa3, 0x30, 0x1e, 0x8a, 0xb4, 0xd9, 0x14, 0x9d}: "ExtfTable", efi.GUID{0x0b, 0xf6, 0xc4, 0x61, 0x95, 0x81, 0x9c, 0x45, 0x8b, 0xa1, 0xb7, 0xb0, 0x1b, 0x64, 0xdc, 0xef}: "PlatformS3SaveDxe", efi.GUID{0x0b, 0xf9, 0x7d, 0x5b, 0x93, 0x2b, 0x93, 0x44, 0xab, 0xaa, 0x48, 0x05, 0xbf, 0x00, 0x8a, 0xea}: "HpDmarSetup", efi.GUID{0x0c, 0x02, 0x1e, 0x70, 0x77, 0xe9, 0x7e, 0x4b, 0x89, 0xfb, 0x5c, 0x3a, 0x50, 0x3c, 0x4c, 0x5d}: "ThinkCenterHWDiag", efi.GUID{0x0c, 0x02, 0xf1, 0xf9, 0x31, 0xcc, 0x03, 0x42, 0x88, 0x50, 0xee, 0xc0, 0x7a, 0x52, 0xa5, 0xb5}: "SecPchLibFsp", efi.GUID{0x0c, 0x03, 0xa7, 0xc7, 0xd8, 0xc3, 0xee, 0x45, 0xbe, 0xd9, 0x5d, 0x9e, 0x76, 0x76, 0x29, 0x53}: "MouseDriver", efi.GUID{0x0c, 0x0d, 0x06, 0x47, 0x2b, 0xbb, 0xd2, 0x42, 0x9a, 0x85, 0x4d, 0xf1, 0xa2, 0xbf, 0xdf, 0xe2}: "BoardDxe", efi.GUID{0x0c, 0x13, 0x37, 0x31, 0xa7, 0xd0, 0x7e, 0x46, 0x9e, 0x8f, 0x51, 0x38, 0x16, 0xf1, 0x59, 0xd8}: "OpromUpdateDxeNeonCityEPRP", efi.GUID{0x0c, 0x15, 0x41, 0x05, 0x3b, 0xe3, 0xaf, 0x4d, 0xa2, 0x63, 0x02, 0xe4, 0xbb, 0x4b, 0xf1, 0xcf}: "SecurityErrorHandlingDxe", efi.GUID{0x0c, 0x1d, 0x0c, 0x41, 0x6f, 0x65, 0x69, 0x47, 0x8d, 0xfb, 0x90, 0xf9, 0xa0, 0x30, 0x3e, 0x9f}: "IconFireWireHD", efi.GUID{0x0c, 0x1e, 0x6c, 0x70, 0xfc, 0x44, 0x12, 0x40, 0x9b, 0x71, 0x3d, 0xbf, 0xec, 0x76, 0x2f, 0x35}: "PlatformFlashSmm", efi.GUID{0x0c, 0x28, 0x80, 0xe3, 0x35, 0x4c, 0xa3, 0x4a, 0xb9, 0x61, 0x7a, 0xe4, 0x89, 0xa2, 0xb9, 0x26}: "AmiSmbiosDynamicDataGuid", efi.GUID{0x0c, 0x32, 0x0d, 0xb6, 0xae, 0x25, 0xcf, 0x4d, 0xb8, 0x48, 0x19, 0x6a, 0x7e, 0x55, 0x97, 0x2f}: "KeepCriticalData", efi.GUID{0x0c, 0x3d, 0x2b, 0x24, 0xb8, 0x5f, 0x75, 0x4a, 0x9c, 0xd3, 0x71, 0x0d, 0xdf, 0xe4, 0x27, 0x03}: "AmdNbioDxe", efi.GUID{0x0c, 0x3d, 0xe8, 0x47, 0xf4, 0x2a, 0x8d, 0x46, 0x91, 0x91, 0x9c, 0xe4, 0x68, 0xc1, 0x8e, 0x9e}: "DellSmmPchGpioControl", efi.GUID{0x0c, 0x43, 0x17, 0xab, 0x5b, 0x13, 0xa6, 0x46, 0x95, 0xc0, 0x57, 0x05, 0x27, 0x98, 0xa5, 0x84}: "PlatformIbraTopSwapPei", efi.GUID{0x0c, 0x4a, 0x35, 0x11, 0x1e, 0x78, 0xa1, 0x44, 0xa7, 0x87, 0xc0, 0x17, 0x8c, 0x8d, 0x57, 0x0f}: "P2sbConfigGuid", efi.GUID{0x0c, 0x4a, 0x5a, 0xd8, 0x73, 0x2e, 0x91, 0x44, 0x92, 0xe1, 0xdc, 0xef, 0xc3, 0x88, 0x2a, 0x68}: "DellPhysicalPresence", efi.GUID{0x0c, 0x4b, 0xc7, 0xa2, 0x8f, 0xf3, 0xf6, 0x42, 0xa1, 0x47, 0x37, 0x90, 0x13, 0xed, 0x92, 0xed}: "OEMIP3SMBIOS", efi.GUID{0x0c, 0x4d, 0x42, 0x45, 0xaf, 0xe6, 0xf2, 0x4a, 0xad, 0x99, 0xfa, 0x77, 0x16, 0x87, 0x42, 0xd1}: "SmartTimer", efi.GUID{0x0c, 0x4d, 0x7f, 0xf2, 0xe4, 0x70, 0x3b, 0x41, 0xa5, 0x37, 0xff, 0x39, 0xa2, 0x19, 0x9a, 0xa5}: "CbsSetupDxeRN", efi.GUID{0x0c, 0x55, 0x67, 0xba, 0x28, 0x36, 0x37, 0x41, 0xa5, 0x3e, 0x42, 0x66, 0x0e, 0x08, 0x16, 0x04}: "MePlatformPolicy", efi.GUID{0x0c, 0x56, 0xfc, 0x40, 0xd9, 0xc5, 0x19, 0x42, 0x89, 0x63, 0x46, 0x60, 0x5a, 0xb2, 0x57, 0x0a}: "FjSysmanFwUpdaterBin", efi.GUID{0x0c, 0x59, 0x55, 0x27, 0x3c, 0x6f, 0xfa, 0x42, 0x9e, 0xa4, 0xa3, 0xba, 0x54, 0x3c, 0xda, 0x25}: "EfiDebugSupportProtocolGuid", efi.GUID{0x0c, 0x5e, 0x47, 0xe1, 0x46, 0x17, 0x02, 0x48, 0x86, 0x2e, 0x01, 0x1c, 0x2c, 0x2d, 0x9d, 0x86}: "EfiRuntimeCryptProtocolGuid", efi.GUID{0x0c, 0x5e, 0x4d, 0x9c, 0x12, 0x1c, 0xc5, 0x4b, 0x83, 0xd4, 0xe6, 0x71, 0xbd, 0xd6, 0x1e, 0x40}: "DellServiceOsInterfaceSmm", efi.GUID{0x0c, 0x61, 0x74, 0x60, 0xc6, 0x93, 0x50, 0x4a, 0x9a, 0xaa, 0x09, 0x27, 0xde, 0x7c, 0x69, 0x75}: "FirewireDeviceDxe", efi.GUID{0x0c, 0x64, 0xee, 0xc0, 0x69, 0xb4, 0xb1, 0x4e, 0x8f, 0x11, 0x46, 0xac, 0xa1, 0x42, 0x73, 0x07}: "WmiRmtApiDXE", efi.GUID{0x0c, 0x69, 0x73, 0xfc, 0x4a, 0x8d, 0x8c, 0x4f, 0xb7, 0xf5, 0xba, 0x24, 0x1f, 0x31, 0x6e, 0x28}: "CpuInitDxe", efi.GUID{0x0c, 0x74, 0x51, 0x98, 0xe0, 0x22, 0x0d, 0x44, 0x90, 0x90, 0xef, 0x2d, 0x71, 0xc2, 0x51, 0xc9}: "AmiCmosAccessDxeProtocolGuid", efi.GUID{0x0c, 0x7a, 0xa2, 0x89, 0xa6, 0x33, 0x6a, 0x42, 0xa4, 0x33, 0x43, 0xeb, 0xc7, 0xba, 0x5a, 0x5e}: "RaidOptionSetup", efi.GUID{0x0c, 0x7e, 0x92, 0xd0, 0xa5, 0xfe, 0x69, 0x45, 0x8a, 0xc0, 0x33, 0xc8, 0xf6, 0x0e, 0x50, 0x73}: "NvmeRstPassword", efi.GUID{0x0c, 0x81, 0xf0, 0x68, 0xdc, 0x1d, 0x07, 0x44, 0xbd, 0x65, 0x87, 0x21, 0x01, 0x40, 0x7a, 0xb7}: "AmdCpmManageabilitySmm", efi.GUID{0x0c, 0x8e, 0xdf, 0xfe, 0x47, 0xe1, 0xe3, 0x11, 0x99, 0x03, 0xb8, 0xe8, 0x56, 0x2c, 0xba, 0xfa}: "EfiBootManagerPolicyProtocolGuid", efi.GUID{0x0c, 0x97, 0xcb, 0xd2, 0x22, 0x86, 0xe1, 0x46, 0x90, 0x83, 0xdb, 0x2e, 0xa2, 0x0c, 0xa6, 0xe3}: "SystemSecureFlashBootModePei", efi.GUID{0x0c, 0xa6, 0x4c, 0x11, 0x65, 0xd9, 0x13, 0x4c, 0xbe, 0xf7, 0xc4, 0x06, 0x22, 0x48, 0xe1, 0xfa}: "EcIoDxe", efi.GUID{0x0c, 0xa9, 0x75, 0x89, 0x8c, 0x23, 0xa8, 0x4f, 0x9e, 0xf1, 0x03, 0xc6, 0xc3, 0x59, 0xca, 0x39}: "AmdCpmDiscreteUSB4Peim", efi.GUID{0x0c, 0xac, 0x5d, 0xd4, 0xe8, 0x4f, 0x04, 0x43, 0xff, 0xff, 0xff, 0xff, 0x17, 0x45, 0xbe, 0x1a}: "XnotePopNoiseSmm", efi.GUID{0x0c, 0xaf, 0xf7, 0xe3, 0x93, 0xdb, 0x36, 0x4a, 0xa5, 0x16, 0xbe, 0x48, 0x44, 0xea, 0x56, 0xc2}: "AsusFtmPei", efi.GUID{0x0c, 0xb0, 0xd5, 0x6f, 0x26, 0xd4, 0x83, 0x42, 0x98, 0x87, 0x6c, 0xf5, 0xcf, 0x1c, 0xb1, 0xfe}: "EfiUserManagerProtocolGuid", efi.GUID{0x0c, 0xb6, 0x6b, 0x5b, 0xaf, 0x5a, 0x17, 0x42, 0x98, 0x25, 0x09, 0x33, 0xd8, 0x32, 0x85, 0x88}: "Ax88772", efi.GUID{0x0c, 0xbe, 0x1b, 0x32, 0x60, 0x35, 0xdf, 0x4b, 0x83, 0x10, 0x23, 0x5c, 0xd7, 0xc1, 0x73, 0xc0}: "RomHoleReplacementPpi", efi.GUID{0x0c, 0xc2, 0x2f, 0xf2, 0xf4, 0x8c, 0xeb, 0x45, 0x8e, 0x06, 0xad, 0x4e, 0x50, 0xb9, 0x5d, 0xd3}: "EfiHiiDriverHealthFormsetGuid", efi.GUID{0x0c, 0xc7, 0x26, 0xcd, 0x9d, 0xf6, 0x9c, 0x41, 0xae, 0x25, 0x50, 0xe8, 0x44, 0xd1, 0xda, 0xe8}: "RtkMAPT", efi.GUID{0x0c, 0xc9, 0xe2, 0xe0, 0xad, 0xf1, 0x59, 0x47, 0x8e, 0xa9, 0x5b, 0x4e, 0x77, 0x05, 0x76, 0xcd}: "AmdNbioPcieZPDxe", efi.GUID{0x0c, 0xcb, 0x88, 0x63, 0x3a, 0xcd, 0x1e, 0x4d, 0xb2, 0x6c, 0x4d, 0x82, 0x3d, 0x8b, 0x4b, 0xdf}: "PciExpressDxe", efi.GUID{0x0c, 0xd1, 0x83, 0x66, 0x6e, 0xcf, 0x14, 0x49, 0xb5, 0xb4, 0xab, 0x8e, 0xd7, 0x37, 0x0e, 0xd7}: "AmiValidBootImageCertTblGuid", efi.GUID{0x0c, 0xd4, 0x67, 0x5f, 0x06, 0x1d, 0x3e, 0x4e, 0x8b, 0x4a, 0xd2, 0x71, 0x3f, 0x46, 0xe1, 0xdc}: "EfiSmtpProtocol", efi.GUID{0x0c, 0xd7, 0x73, 0x49, 0x94, 0x1a, 0x2a, 0x41, 0xa3, 0xe1, 0x2a, 0x4c, 0x98, 0x78, 0x2b, 0xfa}: "OemDisplayRule", efi.GUID{0x0c, 0xdc, 0x71, 0x05, 0xb8, 0xd3, 0x2c, 0x42, 0xa9, 0xef, 0xac, 0x44, 0x64, 0x83, 0xbd, 0xfe}: "VisualCSM", efi.GUID{0x0c, 0xdf, 0x04, 0x55, 0x4d, 0xf5, 0x5f, 0x46, 0x92, 0x00, 0xf0, 0x38, 0x3d, 0xba, 0x1b, 0xc3}: "DualMeFlashExe", efi.GUID{0x0c, 0xe6, 0x09, 0x9a, 0xf2, 0x50, 0x02, 0x46, 0x92, 0x48, 0x1f, 0x29, 0x38, 0x2d, 0xdf, 0x3b}: "AmdCpmAudioFeatureDxe", efi.GUID{0x0c, 0xec, 0x76, 0xc0, 0x28, 0x70, 0x99, 0x43, 0xa0, 0x72, 0x71, 0xee, 0x5c, 0x44, 0x8b, 0x9f}: "EfiCustomModeEnableGuid", efi.GUID{0x0c, 0xec, 0xbd, 0x5c, 0x0c, 0xbd, 0x3b, 0x4c, 0x8c, 0x83, 0x8f, 0xeb, 0x11, 0x04, 0xba, 0x69}: "Cf9Reset", efi.GUID{0x0c, 0xf1, 0xa0, 0xac, 0xc9, 0x04, 0x4e, 0x4c, 0x9d, 0x7b, 0xb7, 0xa0, 0x97, 0xf5, 0xe1, 0xec}: "LenovoEn25Qh64FlashPartDxe", efi.GUID{0x0c, 0xf4, 0xc9, 0x51, 0x43, 0x52, 0x73, 0x44, 0xb2, 0x65, 0xb3, 0xc8, 0xff, 0xaf, 0xf9, 0xfa}: "Crc32SectionExtractDxe", efi.GUID{0x0c, 0xf6, 0x21, 0xd5, 0x65, 0x7d, 0xf2, 0x4f, 0x99, 0xc6, 0x12, 0xa2, 0x96, 0x04, 0x0c, 0x57}: "DellCommonBoardInitDxe", efi.GUID{0x0c, 0xf6, 0x70, 0x01, 0x40, 0x1d, 0x51, 0x46, 0x95, 0x6d, 0xf0, 0xbd, 0x98, 0x79, 0xd5, 0x27}: "Virtio10", efi.GUID{0x0c, 0xfa, 0xb4, 0x97, 0x7e, 0x4d, 0xd0, 0xc2, 0x67, 0x8e, 0xfb, 0x92, 0xe9, 0x6d, 0x2c, 0xc2}: "NfitBindingProtocol", efi.GUID{0x0d, 0x02, 0x2b, 0x73, 0xda, 0xdf, 0x5d, 0x42, 0x94, 0x70, 0x4b, 0xbf, 0x2f, 0x1b, 0x00, 0x7c}: "DellQueryStdPcdValues", efi.GUID{0x0d, 0x04, 0x07, 0x18, 0x34, 0x59, 0xa2, 0x41, 0xa0, 0x88, 0x8e, 0x0f, 0x77, 0x7f, 0x71, 0xab}: "NvramDxe", efi.GUID{0x0d, 0x0b, 0xc7, 0x03, 0xe6, 0x67, 0x16, 0x5c, 0x8e, 0x57, 0x31, 0x2d, 0xf2, 0x46, 0xa9, 0x61}: "BootChimeAudio", efi.GUID{0x0d, 0x19, 0x7e, 0xaa, 0x21, 0xbe, 0x09, 0x44, 0x8e, 0x67, 0xa2, 0xcd, 0x0f, 0x61, 0xe1, 0x70}: "UniversalPayloadSerialPortInfo", efi.GUID{0x0d, 0x1f, 0xc6, 0x88, 0xa9, 0xdf, 0x87, 0x40, 0x86, 0x87, 0x62, 0x6a, 0x8b, 0x01, 0x0e, 0x0c}: "PasswordLockSmall", efi.GUID{0x0d, 0x24, 0x7a, 0x2b, 0xad, 0xd5, 0xd6, 0x4f, 0xbe, 0x1c, 0xdf, 0xa4, 0x41, 0x5f, 0x55, 0x26}: "DtPlatformFormSet", efi.GUID{0x0d, 0x26, 0xbc, 0x5c, 0xc0, 0xcd, 0xcb, 0x4b, 0x9f, 0x74, 0x0a, 0x3e, 0xa8, 0x16, 0x09, 0x05}: "FjKbcEmiSmm", efi.GUID{0x0d, 0x28, 0xd1, 0x23, 0xf0, 0x43, 0x13, 0x47, 0x90, 0xb2, 0x0e, 0x5e, 0x42, 0x21, 0xaf, 0x4c}: "BatteryState1", efi.GUID{0x0d, 0x30, 0xff, 0x9b, 0x47, 0xd6, 0x0e, 0x48, 0x9f, 0xf3, 0x20, 0x06, 0xd3, 0xd7, 0xcc, 0xc6}: "DellMultiDisplayDxe", efi.GUID{0x0d, 0x35, 0x96, 0x68, 0xf1, 0xc3, 0x4c, 0x4a, 0xb4, 0x2d, 0x44, 0x8d, 0x57, 0x28, 0x96, 0xc7}: "DellBootMenuFlashBin", efi.GUID{0x0d, 0x3a, 0x5b, 0xa4, 0x55, 0x2e, 0x03, 0x4c, 0xad, 0x9c, 0x27, 0xd4, 0x82, 0x0b, 0x50, 0x7e}: "EfiUgaSplashProtocol", efi.GUID{0x0d, 0x3c, 0x71, 0x9a, 0x53, 0x20, 0xac, 0x44, 0x9d, 0x4a, 0xe7, 0x93, 0x3c, 0x42, 0x05, 0xa9}: "EcIoDxe", efi.GUID{0x0d, 0x3f, 0x0f, 0x82, 0x08, 0x4d, 0x35, 0x6c, 0x85, 0x8a, 0xd9, 0x8e, 0xf4, 0x2c, 0x05, 0x1d}: "AmdPlatformRasSspDxe", efi.GUID{0x0d, 0x4e, 0x3d, 0xb0, 0x56, 0x51, 0xab, 0x44, 0xbe, 0xdb, 0x96, 0x75, 0xa3, 0xd5, 0x7d, 0x41}: "PhPlatformSiSmmCodeCheckDxe", efi.GUID{0x0d, 0x56, 0x2f, 0x38, 0xa9, 0x17, 0x87, 0x48, 0xbd, 0x9c, 0xeb, 0x43, 0x9c, 0x1c, 0xc4, 0x82}: "RaidDriver", efi.GUID{0x0d, 0x63, 0xa8, 0x0b, 0xf9, 0xb1, 0xed, 0x4c, 0x88, 0x7d, 0xdd, 0x01, 0x3a, 0x0c, 0x6b, 0x4a}: "UsbTypeCChargingPei", efi.GUID{0x0d, 0x6f, 0xe2, 0x58, 0xac, 0xcb, 0xba, 0x4b, 0xb7, 0x0f, 0x18, 0x22, 0x14, 0x15, 0x66, 0x5a}: "VirtioRngDxe", efi.GUID{0x0d, 0x7a, 0x57, 0x44, 0x1a, 0x36, 0xb2, 0x45, 0xb3, 0x3d, 0xbb, 0x9e, 0xe6, 0x0d, 0x5a, 0x4f}: "ArmRealViewEbPkgTokenSpaceGuid", efi.GUID{0x0d, 0x7e, 0xc8, 0xbc, 0xd6, 0x86, 0x4d, 0x4d, 0x80, 0x40, 0x2d, 0x98, 0x3d, 0x36, 0x8b, 0xd1}: "EmuGopDxe", efi.GUID{0x0d, 0x80, 0xe6, 0xc7, 0x66, 0x95, 0x43, 0x11, 0x81, 0xa8, 0xb8, 0xc5, 0x66, 0xaf, 0x35, 0x56}: "SNP", efi.GUID{0x0d, 0x81, 0x22, 0x71, 0xd3, 0xcc, 0x09, 0x4b, 0xa0, 0xab, 0x8d, 0x10, 0x76, 0x45, 0xc9, 0x78}: "DellMonotonicCounterSmm", efi.GUID{0x0d, 0x83, 0x7a, 0x68, 0xfb, 0x55, 0x5a, 0x41, 0x95, 0x20, 0x18, 0x27, 0x89, 0x35, 0x32, 0x84}: "SetupExit", efi.GUID{0x0d, 0x84, 0x96, 0x48, 0xbb, 0x46, 0x2b, 0x41, 0xa3, 0x0a, 0xa6, 0x2a, 0xbf, 0xb3, 0x68, 0x2f}: "SpsAcpiSsdt", efi.GUID{0x0d, 0x89, 0x7a, 0xe0, 0xc3, 0x7c, 0x42, 0xd0, 0xa7, 0x4b, 0x12, 0xf1, 0x17, 0xdd, 0xdf, 0x15}: "AppleGraphicsConsole", efi.GUID{0x0d, 0x8b, 0x00, 0x0c, 0x6a, 0x59, 0xd1, 0x42, 0x80, 0x9c, 0xd2, 0xe7, 0xb6, 0x49, 0x17, 0x7e}: "HwErrorHandler", efi.GUID{0x0d, 0x8d, 0xc5, 0x8d, 0xf5, 0x67, 0x97, 0x4b, 0x9d, 0xfc, 0xe4, 0x42, 0xbb, 0x9a, 0x56, 0x48}: "tftp", efi.GUID{0x0d, 0x90, 0x7c, 0xd7, 0xc7, 0xa1, 0xc5, 0x41, 0xb9, 0x89, 0x0c, 0x3d, 0x37, 0xfc, 0xa4, 0x32}: "AmtWrapperDxe", efi.GUID{0x0d, 0x92, 0xbb, 0x7e, 0xaf, 0x1a, 0xd9, 0x46, 0xb2, 0xaf, 0x54, 0x1e, 0x1d, 0xce, 0x14, 0x8b}: "EdkiiPlatformHasDeviceTree", efi.GUID{0x0d, 0x93, 0x1e, 0xb1, 0x82, 0xa0, 0xe2, 0x42, 0xa7, 0xf2, 0xc6, 0x37, 0x67, 0xa4, 0xd3, 0xe7}: "AsusSIBoardDxe", efi.GUID{0x0d, 0x98, 0xb4, 0x24, 0x4d, 0x3f, 0x29, 0x45, 0xb3, 0x26, 0xcb, 0xe8, 0x7e, 0x35, 0x01, 0x3c}: "AmdDmarControlPei", efi.GUID{0x0d, 0x9a, 0xa7, 0xd4, 0x7d, 0xb6, 0x83, 0x4e, 0x8e, 0xfb, 0x45, 0x59, 0x24, 0x37, 0x29, 0x34}: "DellTerminalPlatformPolicy", efi.GUID{0x0d, 0xa5, 0x90, 0x5e, 0x55, 0x69, 0x49, 0x4a, 0x90, 0x32, 0xda, 0x38, 0x12, 0xf8, 0xe8, 0xe5}: "AmiSmbiosProtocolGuid", efi.GUID{0x0d, 0xab, 0xc0, 0x02, 0xf0, 0xd5, 0xad, 0x4c, 0xa4, 0xbf, 0x0c, 0xc4, 0x0a, 0x55, 0x4b, 0xbd}: "HpInitNVSWksSmm", efi.GUID{0x0d, 0xc8, 0xc1, 0xcd, 0xd3, 0xe6, 0x42, 0x4a, 0x92, 0x29, 0x75, 0xf3, 0xbe, 0xfc, 0xf1, 0x09}: "PciOutOfResourceSetupPage", efi.GUID{0x0d, 0xd2, 0xa4, 0x6d, 0x2d, 0x89, 0xdf, 0x4e, 0x97, 0xa7, 0xfe, 0xa2, 0xd8, 0x8e, 0x26, 0xd7}: "HotKeyPei", efi.GUID{0x0d, 0xd2, 0xca, 0x58, 0x1f, 0xd5, 0x85, 0xb3, 0x7f, 0x84, 0xe8, 0x29, 0xca, 0x2f, 0x7c, 0x3a}: "EcGpioControl2Smm", efi.GUID{0x0d, 0xda, 0x8c, 0x36, 0x31, 0xcf, 0x9b, 0x4b, 0x8c, 0xf6, 0xe7, 0xd1, 0xbf, 0xff, 0x15, 0x7e}: "EfiConsoleLock", efi.GUID{0x0d, 0xdb, 0xee, 0x8b, 0x1a, 0xa3, 0x61, 0x03, 0xa3, 0x12, 0x5d, 0xc8, 0x57, 0x4c, 0x65, 0xf1}: "AzaliaPolicyPei", efi.GUID{0x0d, 0xdd, 0xaa, 0x80, 0x53, 0x80, 0xa7, 0x4b, 0x94, 0x1b, 0x36, 0xf4, 0x8b, 0xb2, 0x30, 0x01}: "DellSystemPwSmm", efi.GUID{0x0d, 0xe0, 0x95, 0x4f, 0x84, 0x6b, 0xd1, 0x40, 0xb2, 0xa2, 0xfd, 0xf7, 0x18, 0x53, 0x71, 0x83}: "WlanPei", efi.GUID{0x0d, 0xe0, 0xde, 0x5f, 0x40, 0xda, 0x5a, 0x40, 0xb9, 0x2e, 0xcf, 0x4a, 0x80, 0xea, 0x8f, 0x76}: "AmiCcidPresence", efi.GUID{0x0d, 0xf1, 0x89, 0xbf, 0x05, 0xb2, 0x4f, 0x47, 0x96, 0xe3, 0x7a, 0x7b, 0xb1, 0xb4, 0xa4, 0x07}: "VgaClassDxe", efi.GUID{0x0d, 0xf5, 0x18, 0xc1, 0x1d, 0x39, 0xf4, 0x45, 0xb3, 0xd3, 0x11, 0xbc, 0x93, 0x1a, 0xa5, 0x6d}: "DsdtAsl", efi.GUID{0x0d, 0xf6, 0x59, 0x12, 0x54, 0xb7, 0x8e, 0x46, 0xa7, 0x89, 0x4d, 0xb8, 0x5d, 0x55, 0xe8, 0x7e}: "EfiSwapAddressRangeProtocolGuid", efi.GUID{0x0d, 0xfc, 0x3f, 0x2c, 0xb4, 0x0a, 0x75, 0x4d, 0xb8, 0xee, 0x00, 0x86, 0xd7, 0x6b, 0x8a, 0x0c}: "CxlPostMemInit", efi.GUID{0x0e, 0x07, 0x0b, 0x52, 0xad, 0x83, 0x35, 0x41, 0xad, 0x62, 0x07, 0xdf, 0xbd, 0x66, 0x39, 0x6a}: "Armani_BatteryInfoDxe", efi.GUID{0x0e, 0x08, 0xa6, 0x82, 0xcb, 0x07, 0x41, 0x48, 0xa9, 0x4e, 0xd3, 0x40, 0xfd, 0x0c, 0x52, 0x84}: "NvmeInfoDxe", efi.GUID{0x0e, 0x0e, 0xbf, 0x2c, 0x45, 0xb4, 0xbe, 0x48, 0xab, 0xdd, 0xb0, 0x9a, 0x71, 0x30, 0x3f, 0xc5}: "FjRtcWakeupSmm", efi.GUID{0x0e, 0x10, 0xb1, 0x37, 0x66, 0x4c, 0x44, 0x9b, 0xd7, 0x36, 0x9b, 0xbb, 0xf1, 0x69, 0xce, 0x2f}: "xGbEI2cMasterDxe", efi.GUID{0x0e, 0x17, 0xc6, 0xf3, 0x8d, 0x8b, 0xbc, 0x46, 0xbc, 0x11, 0xd7, 0xbe, 0xbf, 0x1f, 0x69, 0x4d}: "TheftRecoveryDxe", efi.GUID{0x0e, 0x19, 0x8c, 0xc6, 0x5e, 0xf9, 0xbc, 0x4a, 0xaa, 0x01, 0xd6, 0x5f, 0x34, 0x4d, 0x91, 0xf9}: "LGImageRecovery", efi.GUID{0x0e, 0x1f, 0xa1, 0xf6, 0xbe, 0x0c, 0x0c, 0x44, 0xbd, 0x85, 0x49, 0xfb, 0x59, 0x56, 0x86, 0xea}: "LegacyUcrDxe", efi.GUID{0x0e, 0x29, 0x21, 0x38, 0xdd, 0xb8, 0x21, 0x48, 0x81, 0x82, 0x03, 0x61, 0xde, 0x51, 0x60, 0x9d}: "AmdCpmOemAcpi", efi.GUID{0x0e, 0x2b, 0x2a, 0x20, 0x31, 0x9a, 0x12, 0x48, 0xb2, 0x91, 0x87, 0x47, 0xdf, 0x15, 0x24, 0x39}: "Ps2MouseDxe", efi.GUID{0x0e, 0x2c, 0x5b, 0xad, 0x80, 0xf4, 0x12, 0x49, 0x87, 0x5b, 0x61, 0x82, 0xf0, 0x56, 0xc5, 0xd1}: "DellStatusDetectPei", efi.GUID{0x0e, 0x32, 0xf7, 0x3a, 0x0e, 0xde, 0x8c, 0x40, 0xaf, 0x25, 0x1c, 0x00, 0xe4, 0xaf, 0x2a, 0xd2}: "WyseThinClientSmm", efi.GUID{0x0e, 0x34, 0x86, 0x26, 0x5c, 0x66, 0x7f, 0x42, 0x88, 0x19, 0x05, 0xba, 0x54, 0xf0, 0x30, 0xf5}: "IdeController2", efi.GUID{0x0e, 0x36, 0xd2, 0x9f, 0x48, 0x6b, 0xd5, 0x11, 0x8e, 0x71, 0x00, 0x90, 0x27, 0x07, 0xb3, 0x5e}: "PciHostBridge1", efi.GUID{0x0e, 0x3c, 0xb5, 0xe9, 0x91, 0x04, 0x76, 0x46, 0x97, 0x2f, 0x9d, 0x15, 0xdd, 0x63, 0x4d, 0xb3}: "DellBatman2Dxe", efi.GUID{0x0e, 0x42, 0xa9, 0x12, 0x6a, 0x54, 0x4b, 0x48, 0x85, 0xe7, 0x6f, 0x6b, 0x27, 0xbf, 0x9b, 0x40}: "FjCapsuleResetHookSmm", efi.GUID{0x0e, 0x43, 0xfe, 0xbd, 0x2a, 0x8f, 0xb0, 0x4d, 0x99, 0x91, 0x6f, 0x85, 0x65, 0x94, 0x77, 0x7e}: "SystemEhciDxe", efi.GUID{0x0e, 0x4e, 0x7d, 0x5f, 0x6d, 0x3d, 0xbc, 0x42, 0xa9, 0x42, 0x0e, 0x91, 0xe8, 0x3e, 0x3c, 0x31}: "EfiPeiTcgLogHobGuid", efi.GUID{0x0e, 0x50, 0xf7, 0x3e, 0x55, 0xcf, 0x4f, 0x47, 0x8e, 0x7e, 0x00, 0x9e, 0x0e, 0xac, 0xec, 0xd2}: "AmiUsbSmmProtocolGuid", efi.GUID{0x0e, 0x55, 0x77, 0x1e, 0x29, 0xe4, 0xa9, 0x4f, 0xbe, 0xbf, 0xb5, 0x15, 0xac, 0xf7, 0xd9, 0x19}: "Ip6", efi.GUID{0x0e, 0x57, 0x33, 0xdb, 0x0c, 0x91, 0x69, 0x46, 0xa9, 0x34, 0xdc, 0x26, 0xbd, 0x30, 0x48, 0x36}: "PchMctp", efi.GUID{0x0e, 0x5f, 0x72, 0x72, 0xd9, 0x5c, 0x97, 0x49, 0x85, 0x30, 0x08, 0xd4, 0x64, 0xc1, 0xfc, 0x46}: "XnoteCapsulePolicyDxe", efi.GUID{0x0e, 0x66, 0x2e, 0xd6, 0x61, 0x65, 0xdb, 0x45, 0xa8, 0x38, 0x86, 0x09, 0xbb, 0xa5, 0xff, 0x37}: "Cf9Reset", efi.GUID{0x0e, 0x69, 0x3f, 0xfd, 0xb0, 0xb4, 0x68, 0x4d, 0x89, 0xdb, 0x19, 0xa1, 0xa3, 0x31, 0x8f, 0x90}: "MICROCODE", efi.GUID{0x0e, 0x72, 0x5a, 0x53, 0xc0, 0x06, 0xb9, 0x4b, 0xb5, 0x63, 0x45, 0x22, 0x16, 0xab, 0xbe, 0xd4}: "HdLcdArmVExpress", efi.GUID{0x0e, 0x79, 0xbb, 0x4f, 0xe9, 0x71, 0xff, 0x42, 0x9f, 0x8c, 0x46, 0x9c, 0x4f, 0xd0, 0xa0, 0x4a}: "OpromCallback", efi.GUID{0x0e, 0x7c, 0x53, 0x2a, 0x9c, 0x5d, 0xd3, 0x45, 0xa6, 0xce, 0x3a, 0xd0, 0x2d, 0x3e, 0x3b, 0x53}: "ReserveMem", efi.GUID{0x0e, 0x91, 0xc1, 0xf2, 0xc9, 0xf5, 0x72, 0x4b, 0xb2, 0x43, 0x6d, 0x59, 0x09, 0x6a, 0x79, 0xf0}: "EfiI2cSlaveProtocolGuid", efi.GUID{0x0e, 0x92, 0xd9, 0xca, 0xf5, 0x0c, 0x6b, 0x4c, 0xb9, 0x2b, 0xcc, 0x0a, 0x4e, 0x19, 0x55, 0x7c}: "FjSysmanAmphionSmm", efi.GUID{0x0e, 0x94, 0xd6, 0x01, 0xa2, 0x06, 0x5c, 0x45, 0xa0, 0xca, 0xdd, 0x38, 0x0b, 0x3c, 0xea, 0x31}: "SDSecureFlash", efi.GUID{0x0e, 0x96, 0x92, 0x8f, 0x80, 0x28, 0x59, 0x46, 0xb8, 0x57, 0x91, 0x5a, 0x89, 0x01, 0xbd, 0xc8}: "Ip6Dxe", efi.GUID{0x0e, 0x9c, 0xf3, 0x8d, 0x70, 0x81, 0x15, 0x44, 0xb7, 0xb3, 0xda, 0x26, 0x13, 0xb5, 0x10, 0x46}: "EarlyGuidHobPei", efi.GUID{0x0e, 0x9c, 0xf5, 0xea, 0x46, 0xbd, 0x3a, 0x41, 0x9a, 0xe9, 0xdd, 0x9f, 0x6d, 0x1a, 0x92, 0x7d}: "SmbiosDxe", efi.GUID{0x0e, 0xa1, 0xa4, 0xfb, 0x31, 0x89, 0xe0, 0x4b, 0xb1, 0xeb, 0x92, 0xa1, 0x32, 0x6f, 0x64, 0xbe}: "AcerHwConfigDxe", efi.GUID{0x0e, 0xa4, 0x07, 0x50, 0xe0, 0xa5, 0xf7, 0x44, 0x86, 0xae, 0x66, 0x2f, 0x9a, 0x91, 0xda, 0x26}: "FvOnFv2Thunk", efi.GUID{0x0e, 0xa8, 0x06, 0x0e, 0x26, 0xd7, 0xaf, 0x4b, 0xa0, 0xcf, 0x21, 0x12, 0x60, 0xfe, 0x69, 0xd8}: "OemSSIDUpdate", efi.GUID{0x0e, 0xb1, 0x26, 0x18, 0xe1, 0xec, 0xd1, 0x4b, 0xb3, 0x51, 0xbc, 0x46, 0x9d, 0x17, 0xfc, 0x59}: "DellPlatformSwSmi", efi.GUID{0x0e, 0xb8, 0xc8, 0xf2, 0x85, 0x89, 0xdb, 0x11, 0x93, 0xf1, 0x00, 0x40, 0xd0, 0x2b, 0x18, 0x35}: "EfiUnixUga", efi.GUID{0x0e, 0xbf, 0xee, 0xc8, 0x10, 0x0e, 0xf7, 0x47, 0x81, 0xbd, 0x39, 0xdb, 0x75, 0xca, 0x93, 0x9f}: "EfiGenericFruProtocol", efi.GUID{0x0e, 0xc0, 0x74, 0x50, 0x8b, 0x69, 0x63, 0x47, 0x91, 0xe6, 0x41, 0x66, 0x3f, 0x6c, 0xc7, 0xc9}: "PBSPeiInitPei", efi.GUID{0x0e, 0xc7, 0x8d, 0x1a, 0x6d, 0x1d, 0x33, 0x4e, 0xbf, 0x0a, 0x7f, 0xe6, 0xcd, 0x38, 0x74, 0x4e}: "SiInitPch", efi.GUID{0x0e, 0xc9, 0xde, 0xea, 0xbe, 0xc2, 0x96, 0x4b, 0xa1, 0x61, 0x55, 0x23, 0x68, 0x22, 0xc0, 0xbb}: "AdlinkBSCDxe", efi.GUID{0x0e, 0xcc, 0x5e, 0x34, 0xb6, 0x0c, 0x75, 0x4b, 0xbb, 0x57, 0x1b, 0x12, 0x9c, 0x47, 0x33, 0x3e}: "EfiPlatformToDriverConfigurationClpGuid", efi.GUID{0x0e, 0xce, 0x53, 0x9c, 0x9f, 0x0e, 0x20, 0x4f, 0xb1, 0xa1, 0x15, 0x0e, 0x43, 0x49, 0xd7, 0x77}: "Tpm12PPILockOverrideguid", efi.GUID{0x0e, 0xd0, 0x40, 0xaa, 0x9b, 0x5b, 0xad, 0x4d, 0xa4, 0x87, 0xfc, 0x1b, 0xcb, 0xef, 0x81, 0x70}: "SgPeiInitPpi", efi.GUID{0x0e, 0xd5, 0x43, 0x5c, 0x1d, 0x31, 0x81, 0x44, 0x86, 0xe3, 0x38, 0x42, 0x54, 0x9e, 0xdc, 0x1c}: "AmdHotPlugRsSmm", efi.GUID{0x0e, 0xd9, 0x83, 0x69, 0xf7, 0x3e, 0x09, 0x4d, 0x8f, 0x36, 0x63, 0xae, 0x0c, 0x59, 0xcf, 0xf2}: "DellDiagSmm", efi.GUID{0x0e, 0xe2, 0xed, 0x6e, 0x32, 0x8f, 0xe2, 0x4f, 0xbe, 0xb7, 0x7a, 0x00, 0xf3, 0xcc, 0xdb, 0xc3}: "OpromUpdateDxeLightningRidgeEXRP", efi.GUID{0x0e, 0xe5, 0xf3, 0x73, 0xc5, 0x23, 0x86, 0x45, 0xbc, 0x6c, 0x7e, 0x52, 0x23, 0xfa, 0x3c, 0x43}: "OemPortMappingPolicy", efi.GUID{0x0e, 0xf2, 0xbe, 0x07, 0x47, 0x5e, 0x69, 0x4a, 0xb2, 0x28, 0x27, 0xc6, 0xc8, 0x70, 0xea, 0xe1}: "AmdSocFp7r2PhxDxe", efi.GUID{0x0e, 0xfd, 0xf5, 0x6d, 0x76, 0x40, 0xb9, 0x41, 0x96, 0xb5, 0x10, 0xe4, 0xc9, 0x72, 0x0b, 0xb3}: "OemApControlDxe", efi.GUID{0x0f, 0x08, 0x4d, 0x74, 0xf3, 0xed, 0xf4, 0x4f, 0x98, 0x70, 0xa2, 0xda, 0x5b, 0xa5, 0xf0, 0xe6}: "PlatformDefaultSettings", efi.GUID{0x0f, 0x21, 0x50, 0x70, 0x34, 0xd4, 0x76, 0x4d, 0xb1, 0x18, 0x71, 0xdd, 0xfc, 0x6f, 0x4e, 0x43}: "OpalPasswordSmm", efi.GUID{0x0f, 0x26, 0xba, 0x10, 0x00, 0x37, 0xdf, 0x49, 0x80, 0x3f, 0x7b, 0xe7, 0x75, 0xcd, 0xb2, 0x83}: "SetupConfigUpdateDxeGnrwsERB", efi.GUID{0x0f, 0x2c, 0x61, 0x4c, 0xc9, 0x2c, 0x75, 0x42, 0x94, 0x84, 0xc7, 0x3f, 0xa6, 0x6c, 0xa9, 0x87}: "FjMacAddressPassThroughDriverBin", efi.GUID{0x0f, 0x4a, 0xd5, 0x42, 0xa8, 0xec, 0xd4, 0x49, 0x99, 0x7b, 0xef, 0x3f, 0xbe, 0x3b, 0x5b, 0xc0}: "OemDxeUpdateRx", efi.GUID{0x0f, 0x53, 0xce, 0x0e, 0xdd, 0x7b, 0x05, 0x44, 0x9e, 0xb9, 0x61, 0xc9, 0x86, 0x8d, 0x8a, 0xbd}: "AaeonSmbiosDxe", efi.GUID{0x0f, 0x5e, 0x12, 0xd5, 0x26, 0x12, 0x4f, 0x44, 0xa2, 0x18, 0x00, 0x85, 0x99, 0x6e, 0xd5, 0xda}: "Smbus", efi.GUID{0x0f, 0x60, 0x05, 0x8b, 0x47, 0x4e, 0xed, 0x46, 0xbd, 0xb0, 0x44, 0x11, 0x5d, 0x46, 0x5d, 0x08}: "UpSmbiosData", efi.GUID{0x0f, 0x60, 0xeb, 0xd3, 0xef, 0x06, 0x37, 0x48, 0xa2, 0xa8, 0x7c, 0x4c, 0x90, 0xbe, 0x8d, 0xa5}: "BctBaseSmmSTXH", efi.GUID{0x0f, 0x63, 0xe3, 0xd7, 0xca, 0x55, 0xdf, 0x43, 0x80, 0x35, 0xf4, 0xfb, 0x07, 0x74, 0xd0, 0xd9}: "TmFifoDxe", efi.GUID{0x0f, 0x66, 0x62, 0x74, 0xbd, 0x1c, 0xda, 0x48, 0xad, 0x11, 0x91, 0x71, 0x79, 0x13, 0x83, 0x1c}: "EfiPciOptionRomTableGuid", efi.GUID{0x0f, 0x66, 0x8a, 0x86, 0xf8, 0x47, 0x88, 0x40, 0xa4, 0xc0, 0xc5, 0x5f, 0xf8, 0xdb, 0x0c, 0x96}: "LEMPhyPresenceSet12", efi.GUID{0x0f, 0x6e, 0xfb, 0x10, 0x7f, 0x53, 0xd2, 0x41, 0x92, 0x14, 0x7d, 0x00, 0xee, 0xbf, 0xd6, 0xa9}: "LnvSyncMFGDone2BiosGuard", efi.GUID{0x0f, 0x70, 0x01, 0x71, 0xc9, 0xa1, 0xe7, 0x44, 0xb6, 0x8d, 0x01, 0xfc, 0xeb, 0xc9, 0xc0, 0x4a}: "FchBixbyEarlyLink", efi.GUID{0x0f, 0x73, 0x6f, 0x1d, 0x55, 0x5a, 0x78, 0x40, 0x86, 0x9b, 0xe0, 0xa1, 0x83, 0x24, 0xbd, 0xc8}: "TemplateSec", efi.GUID{0x0f, 0x76, 0xc3, 0x2e, 0xfc, 0xb7, 0xc7, 0x4f, 0xb8, 0xb4, 0xcf, 0x37, 0x1c, 0x96, 0x28, 0xff}: "ThunderboltXDomainDevice", efi.GUID{0x0f, 0x77, 0x77, 0x36, 0xb2, 0xef, 0xb2, 0x43, 0xb8, 0xae, 0xb3, 0x02, 0xe9, 0x60, 0x48, 0x82}: "AmiTseEventBeforeBootGuid", efi.GUID{0x0f, 0x89, 0x6d, 0x4a, 0xc3, 0x93, 0x6d, 0x4b, 0xa6, 0x7d, 0x5f, 0x2c, 0x4d, 0xce, 0x34, 0x7b}: "RuntimeSmm", efi.GUID{0x0f, 0x8c, 0xc8, 0x8a, 0x20, 0x62, 0x43, 0xf2, 0x8e, 0x27, 0x56, 0xe1, 0x7c, 0xc5, 0x03, 0xdb}: "AppleNetLoadFile2", efi.GUID{0x0f, 0x96, 0x92, 0x8f, 0x80, 0x28, 0x59, 0x46, 0xb8, 0x57, 0x91, 0x5a, 0x89, 0x01, 0xbd, 0xc8}: "Ip4Dxe", efi.GUID{0x0f, 0x9d, 0xb7, 0xf0, 0x2b, 0xce, 0x48, 0xd1, 0x9a, 0xce, 0xf2, 0x04, 0xe9, 0x39, 0x3c, 0xaa}: "Tcp4", efi.GUID{0x0f, 0x9f, 0x8e, 0x35, 0xc0, 0xdd, 0xd1, 0x42, 0x95, 0x7b, 0xdb, 0xf1, 0x14, 0x97, 0xec, 0xd8}: "EcCommunication", efi.GUID{0x0f, 0xa6, 0xd9, 0x6a, 0x15, 0x58, 0x7c, 0x4c, 0x8a, 0x10, 0x50, 0x53, 0xd2, 0xbf, 0x7a, 0x1b}: "EfiSerialTerminalDeviceType", efi.GUID{0x0f, 0xa8, 0x8e, 0x74, 0xb4, 0x96, 0x15, 0x43, 0xa2, 0x77, 0x28, 0xac, 0xed, 0x33, 0x68, 0x30}: "RklComp", efi.GUID{0x0f, 0xa9, 0x06, 0x7f, 0x0d, 0xae, 0x87, 0x48, 0x82, 0xc0, 0xfe, 0xc7, 0xf4, 0xf6, 0x8b, 0x29}: "EmmcBlockIoPei", efi.GUID{0x0f, 0xab, 0x13, 0x37, 0xa0, 0x97, 0xac, 0x44, 0x8a, 0xcc, 0xf2, 0xb1, 0x45, 0x27, 0xf9, 0x55}: "TccPolicyUpdateDxe", efi.GUID{0x0f, 0xad, 0x66, 0xf8, 0xbb, 0x1f, 0x52, 0x4d, 0x81, 0x3d, 0x7e, 0xb9, 0x5e, 0x2f, 0x19, 0xd4}: "menu_mid_right", efi.GUID{0x0f, 0xb2, 0x05, 0x5f, 0x56, 0x4a, 0x31, 0xc2, 0xfa, 0x0b, 0xa7, 0xb1, 0xf1, 0x10, 0x04, 0x1d}: "EfiRegexSyntaxTypePosixExtendedGuid", efi.GUID{0x0f, 0xb3, 0xda, 0x73, 0x9c, 0x3f, 0x60, 0x41, 0xb0, 0x64, 0x43, 0x9c, 0xe1, 0x6c, 0x3e, 0xde}: "SystemBootManagerDxe", efi.GUID{0x0f, 0xbd, 0x07, 0x73, 0x7a, 0x8b, 0xa5, 0x4b, 0x9a, 0xf6, 0x39, 0x97, 0xd1, 0xe3, 0x27, 0x86}: "AmdNbioSmuV10Pei", efi.GUID{0x0f, 0xc2, 0x66, 0x23, 0x5a, 0xe1, 0xe3, 0x11, 0x8b, 0xf1, 0xe4, 0x11, 0x5b, 0x28, 0xbc, 0x50}: "HttpDxe", efi.GUID{0x0f, 0xcf, 0x19, 0x6f, 0x80, 0x72, 0xc2, 0x44, 0xb7, 0xa5, 0x0a, 0x57, 0x5c, 0x47, 0xe1, 0x6e}: "EcLabProductionModeDxe", efi.GUID{0x0f, 0xcf, 0xe9, 0x05, 0xe3, 0x4b, 0xf4, 0x87, 0x72, 0x65, 0xb7, 0x96, 0xa7, 0x69, 0x59, 0xc3}: "S5MaxPowerSavingsSmm", efi.GUID{0x0f, 0xd3, 0x5e, 0x6e, 0x52, 0xec, 0x36, 0x41, 0x8a, 0x41, 0x3f, 0x43, 0x24, 0x21, 0x8e, 0x41}: "DeviceIoOnPciRootBridgeIoThunk", efi.GUID{0x0f, 0xd8, 0xe9, 0x2a, 0xb2, 0x3f, 0x95, 0x40, 0xb7, 0xb1, 0xe9, 0x31, 0x57, 0xb9, 0x46, 0xb6}: "EfiHashAlgorithmSha1Guid", efi.GUID{0x0f, 0xdf, 0x52, 0x66, 0x0e, 0xe8, 0xa1, 0x4b, 0x8c, 0x3f, 0x2a, 0x4e, 0x5b, 0x56, 0x32, 0x4a}: "SioSmiWdtDispatcher", efi.GUID{0x0f, 0xdf, 0xa5, 0x9e, 0x5c, 0xa3, 0xc1, 0x48, 0xba, 0xc9, 0xf6, 0x34, 0x52, 0xb4, 0x7c, 0x3e}: "LenovoSystemCapsuleRt", efi.GUID{0x0f, 0xdf, 0xc9, 0x51, 0xb9, 0x21, 0x15, 0x10, 0x91, 0x51, 0x12, 0x87, 0x2f, 0x03, 0x2a, 0x51}: "HardwareHealthManagementPei", efi.GUID{0x0f, 0xdf, 0xc9, 0x5e, 0xb9, 0x9f, 0xd5, 0x4c, 0x9b, 0xae, 0x12, 0x87, 0x2f, 0x03, 0x2a, 0x6a}: "PeiIpmiUsb", efi.GUID{0x0f, 0xe4, 0x59, 0xe8, 0x24, 0xcc, 0xb7, 0x41, 0xb5, 0xa5, 0x68, 0x58, 0x22, 0xaa, 0xbc, 0xc6}: "UserApplicationBin", efi.GUID{0x0f, 0xe6, 0x90, 0x9e, 0x1e, 0xfd, 0x01, 0x4b, 0xba, 0x6e, 0x9f, 0xde, 0x5a, 0x02, 0xe6, 0x0b}: "DellConnectionMgr", efi.GUID{0x0f, 0xe9, 0x35, 0x46, 0x32, 0x24, 0x85, 0x43, 0x8b, 0x1f, 0x5f, 0xe1, 0xb3, 0xc9, 0x77, 0x47}: "SetupConfigUpdateDxeBigPineKey", efi.GUID{0x0f, 0xe9, 0xad, 0xb5, 0x14, 0xdc, 0xa7, 0x47, 0x80, 0x02, 0xe8, 0x72, 0x38, 0xaa, 0xe9, 0x30}: "LEMEfiNvmExpressPassThruProtocolHook", efi.GUID{0x0f, 0xf2, 0x5c, 0x5e, 0x3f, 0xb6, 0xe1, 0x11, 0x83, 0x5e, 0x38, 0x60, 0x77, 0xf1, 0x1e, 0x9d}: "I2cTouchPanelDxe", efi.GUID{0x0f, 0xf2, 0xb4, 0xba, 0x81, 0x09, 0x5f, 0x4b, 0xa0, 0x47, 0x6e, 0xf8, 0x3b, 0xee, 0xab, 0x3c}: "EhciPei", efi.GUID{0x0f, 0xf4, 0xf0, 0x23, 0x6d, 0x68, 0xe4, 0x45, 0xb2, 0x6e, 0x11, 0xf9, 0xf2, 0x65, 0xcf, 0x66}: "BatteryInfoDxe", efi.GUID{0x0f, 0xf4, 0xf0, 0x23, 0x6d, 0x68, 0xe4, 0x45, 0xb2, 0x8e, 0x11, 0xf9, 0xf2, 0x45, 0xcf, 0x62}: "MpmBatteryInfoDxe", efi.GUID{0x0f, 0xf7, 0x02, 0x6c, 0xbc, 0x9f, 0x44, 0x4a, 0xac, 0x19, 0xc6, 0x48, 0xa7, 0xaa, 0x55, 0x41}: "FjKbcEmiDxe", efi.GUID{0x0f, 0xfa, 0x58, 0x77, 0xab, 0x2c, 0x84, 0x46, 0x94, 0x9f, 0xc2, 0x05, 0x06, 0x33, 0x95, 0x39}: "DellProfileManager", efi.GUID{0x0f, 0xff, 0xaa, 0xd3, 0x22, 0xcb, 0x92, 0x47, 0x89, 0x6c, 0x80, 0x2c, 0x2e, 0x93, 0x83, 0xba}: "WifiManagerApp", efi.GUID{0x10, 0x00, 0x92, 0xfa, 0x85, 0x67, 0x41, 0x49, 0xb6, 0xec, 0x49, 0x8c, 0x57, 0x9f, 0x16, 0x0a}: "VirtioDeviceProtocolGuid", efi.GUID{0x10, 0x01, 0xa7, 0x29, 0x62, 0x77, 0x11, 0x42, 0xae, 0x88, 0xfa, 0xb1, 0x9b, 0x76, 0x65, 0xbe}: "MebxMenu", efi.GUID{0x10, 0x0b, 0xc1, 0x27, 0x4a, 0x11, 0x71, 0x4d, 0x8c, 0x58, 0xd6, 0x7e, 0xd0, 0xf2, 0x0d, 0x89}: "OemVGA", efi.GUID{0x10, 0x0e, 0x0e, 0xd3, 0x9b, 0x51, 0x39, 0x4e, 0xad, 0x47, 0xdc, 0x3c, 0xe2, 0x66, 0xa8, 0xae}: "FjGabiNvramMergeDxe", efi.GUID{0x10, 0x14, 0x28, 0xc2, 0xb3, 0x58, 0x74, 0x4f, 0x94, 0x58, 0x22, 0x90, 0x1a, 0xce, 0xb9, 0x01}: "EepromInterfaceCoreDxe", efi.GUID{0x10, 0x15, 0xb5, 0x7e, 0x9b, 0x72, 0x2e, 0x48, 0xaa, 0x28, 0xc9, 0xeb, 0x6a, 0x7f, 0xb8, 0x37}: "SioSxIntruderDxe", efi.GUID{0x10, 0x25, 0x75, 0xa8, 0x3e, 0xd8, 0x0a, 0x40, 0x85, 0xde, 0xfd, 0x15, 0x87, 0x88, 0x2a, 0xfe}: "DellLomConfig", efi.GUID{0x10, 0x29, 0x64, 0x1f, 0x7b, 0x3d, 0x27, 0x46, 0x8d, 0x18, 0xdc, 0x62, 0x67, 0x1e, 0x05, 0x54}: "BiosReservedMemoryPolicyPpiGuid", efi.GUID{0x10, 0x29, 0xbc, 0x8b, 0xe8, 0x04, 0x50, 0x44, 0xa6, 0xcd, 0x34, 0x9e, 0x5d, 0x4d, 0x76, 0x5b}: "DellRuntimeAcpiDxe", efi.GUID{0x10, 0x34, 0x36, 0xb6, 0x56, 0xfd, 0x85, 0x4d, 0xa9, 0xc4, 0xd7, 0x04, 0x1c, 0x0b, 0x51, 0xca}: "FjMfgSetPostPassedGpioDxe", efi.GUID{0x10, 0x34, 0xd1, 0x09, 0x18, 0x27, 0x3a, 0x46, 0x8b, 0x15, 0xda, 0x93, 0xc3, 0xca, 0x0a, 0x64}: "UsbCdcEcm", efi.GUID{0x10, 0x36, 0xf9, 0x40, 0x5f, 0x8d, 0xd3, 0x43, 0xa8, 0x96, 0xc6, 0x1e, 0xe7, 0x9f, 0x13, 0x76}: "HpSmbusSmm", efi.GUID{0x10, 0x38, 0xb3, 0xcf, 0x87, 0x6e, 0x84, 0x42, 0xb2, 0x03, 0xa6, 0x6a, 0xbe, 0x07, 0xf6, 0xe8}: "EfiHeciProtocolGuid", efi.GUID{0x10, 0x41, 0xaf, 0x30, 0x8e, 0xa5, 0xf7, 0x4e, 0x8c, 0x75, 0xb7, 0x25, 0x93, 0x9b, 0x3b, 0x9f}: "AmdCpmDisplayFeatureSmm", efi.GUID{0x10, 0x42, 0x53, 0x2a, 0x80, 0x92, 0xd8, 0x41, 0xae, 0x79, 0xca, 0xda, 0x01, 0xa2, 0xb1, 0x27}: "EfiDriverHealthProtocolGuid", efi.GUID{0x10, 0x46, 0x60, 0xf3, 0x52, 0xdd, 0xed, 0x4b, 0x8f, 0x76, 0xab, 0xc9, 0x28, 0x4c, 0xd0, 0x40}: "UltrasoundHpdCheck", efi.GUID{0x10, 0x49, 0xa5, 0x9d, 0xb9, 0x78, 0xe5, 0xcb, 0x72, 0x5c, 0x87, 0xe4, 0x9c, 0x07, 0x47, 0x1b}: "WtGetEdidDxe", efi.GUID{0x10, 0x4d, 0x72, 0xfd, 0x1d, 0x6c, 0xeb, 0x4c, 0xac, 0x39, 0x69, 0x39, 0x00, 0x66, 0x9c, 0xe1}: "Supplicant", efi.GUID{0x10, 0x51, 0xf2, 0xcb, 0xff, 0x18, 0xe3, 0x4e, 0x97, 0x35, 0xe2, 0x47, 0x74, 0x36, 0xff, 0x3f}: "XnotePlatformInfoSmm", efi.GUID{0x10, 0x58, 0x60, 0x21, 0xb3, 0x54, 0x09, 0x41, 0x8a, 0xff, 0x3b, 0x3f, 0xbf, 0x4a, 0xf0, 0x40}: "DellPasswordPolicyDxeProtocol", efi.GUID{0x10, 0x59, 0x06, 0x33, 0x56, 0xfe, 0xab, 0x49, 0xb0, 0x3d, 0xed, 0x1a, 0xff, 0x65, 0xb5, 0x96}: "DeviceImageInterface", efi.GUID{0x10, 0x59, 0xe3, 0x39, 0x97, 0xca, 0x51, 0x48, 0x81, 0x1b, 0x30, 0x38, 0x22, 0xda, 0x90, 0x36}: "AmdMemFp11StxhDxe", efi.GUID{0x10, 0x5e, 0xb3, 0x77, 0x21, 0xac, 0xfb, 0x4d, 0xb0, 0x94, 0xdd, 0xa8, 0x87, 0x8a, 0x65, 0x21}: "ASM1061Pei", efi.GUID{0x10, 0x5e, 0xee, 0x58, 0xcf, 0xd0, 0x71, 0x40, 0xb1, 0xd7, 0x98, 0x02, 0x36, 0xe7, 0x14, 0x12}: "GnbPhoenixRouting", efi.GUID{0x10, 0x5e, 0xee, 0x58, 0xcf, 0xd0, 0x71, 0x40, 0xb1, 0xd7, 0x98, 0x02, 0x36, 0xe7, 0x1e, 0x4e}: "GnbRaphaelRouting", efi.GUID{0x10, 0x60, 0x37, 0x8c, 0x00, 0x24, 0x7d, 0x4d, 0xb4, 0x7b, 0x9d, 0x85, 0x1d, 0xf3, 0xc9, 0xd1}: "PchMeUma", efi.GUID{0x10, 0x60, 0xce, 0x54, 0x6d, 0x2a, 0xaa, 0x42, 0xb1, 0xe2, 0xfd, 0x97, 0xde, 0x9c, 0x4d, 0xa8}: "AppleDebugSupportFireWireInit", efi.GUID{0x10, 0x6a, 0x6c, 0x85, 0xb8, 0xf3, 0x2e, 0x4c, 0xa2, 0x73, 0x78, 0x68, 0xc0, 0x9b, 0xe8, 0xea}: "MmcMediaDevice", efi.GUID{0x10, 0x6b, 0x86, 0x68, 0xda, 0x73, 0xea, 0x45, 0xa8, 0x08, 0x15, 0xa5, 0x7d, 0x94, 0x7f, 0x98}: "WatchdogRuntimeDxe", efi.GUID{0x10, 0x6e, 0x79, 0x94, 0xf6, 0x7c, 0x20, 0x4a, 0xa3, 0xa0, 0x4c, 0xf1, 0xa8, 0x34, 0x1a, 0x16}: "menu_dots", efi.GUID{0x10, 0x76, 0xb4, 0xd4, 0x1c, 0xbc, 0x0b, 0x48, 0xbd, 0x23, 0xcb, 0x03, 0x1b, 0x7a, 0xa0, 0xa2}: "BiosPowerOn", efi.GUID{0x10, 0x85, 0x00, 0x8e, 0xb1, 0x9b, 0x7d, 0x45, 0x9f, 0x70, 0x89, 0x7a, 0xba, 0x86, 0x5d, 0xb9}: "EfiLegacyBiosExtProtocolGuid", efi.GUID{0x10, 0x8d, 0x7e, 0xfa, 0x12, 0x13, 0x98, 0x4b, 0x9a, 0x3b, 0x3b, 0x5b, 0x13, 0xa2, 0x5d, 0xb0}: "PsmiHandlerBufferGuid", efi.GUID{0x10, 0x91, 0x81, 0x22, 0x6f, 0x7f, 0x52, 0x48, 0xb4, 0xbb, 0x13, 0xa7, 0x70, 0x14, 0x9b, 0x0c}: "FpgaFormSet", efi.GUID{0x10, 0x9d, 0x4b, 0xbf, 0xec, 0x13, 0xdd, 0x43, 0x88, 0x80, 0xe9, 0x0b, 0x71, 0x8f, 0x27, 0xde}: "EmbeddedDeviceGuid", efi.GUID{0x10, 0xa8, 0x7f, 0xac, 0xe5, 0x44, 0xa6, 0x4c, 0x9d, 0x17, 0x77, 0x8c, 0xc5, 0xb0, 0x34, 0xeb}: "AsrockAmdSetupDxeRv", efi.GUID{0x10, 0xb1, 0xcf, 0xfa, 0xfd, 0x7b, 0xfb, 0x4e, 0x87, 0x3e, 0x88, 0xb6, 0xb2, 0x3b, 0x97, 0xea}: "PhDefEfiVar", efi.GUID{0x10, 0xb8, 0x91, 0x4c, 0x8d, 0xa2, 0xbc, 0x4b, 0xbd, 0xf0, 0x30, 0xa9, 0xc6, 0xc7, 0xee, 0xc2}: "OemLOGO", efi.GUID{0x10, 0xbb, 0xcc, 0x6f, 0x6e, 0x6d, 0x6e, 0x6a, 0x9c, 0x2b, 0x2b, 0x62, 0x5f, 0xff, 0x85, 0x66}: "RtErrorLogging", efi.GUID{0x10, 0xc7, 0x59, 0xd7, 0xea, 0x49, 0x26, 0x4d, 0x9f, 0x7c, 0xde, 0x10, 0x64, 0x87, 0x6e, 0x2f}: "FpgaSocketHob", efi.GUID{0x10, 0xc8, 0xdb, 0x2e, 0x96, 0xaa, 0x83, 0x4c, 0xb7, 0x43, 0x5e, 0xd9, 0xcf, 0xf7, 0x98, 0x33}: "CnvDxe", efi.GUID{0x10, 0xce, 0x4e, 0x4a, 0xeb, 0x61, 0xc4, 0x4f, 0x88, 0x39, 0xf7, 0xcf, 0xdd, 0x96, 0x20, 0x74}: "IccPei", efi.GUID{0x10, 0xd1, 0x37, 0x9e, 0xba, 0x80, 0x24, 0x4f, 0xb8, 0xfa, 0x2a, 0x1d, 0x25, 0x39, 0xe5, 0x13}: "EmulatedEepromPei", efi.GUID{0x10, 0xeb, 0x0a, 0x63, 0x06, 0x21, 0x34, 0x42, 0x9d, 0xb3, 0x83, 0x6a, 0x36, 0x63, 0xf5, 0x0d}: "BaseCacheAsRamLibNull", efi.GUID{0x10, 0xf8, 0x85, 0xd9, 0xed, 0x69, 0x58, 0x4e, 0xff, 0xff, 0xff, 0xff, 0x4e, 0xd8, 0xd2, 0xdc}: "XnoteSystemPolicyPei", efi.GUID{0x10, 0xfa, 0x30, 0xff, 0x1d, 0xee, 0x5d, 0x45, 0x97, 0x1f, 0x34, 0xb9, 0x7d, 0x20, 0x67, 0x9c}: "PlatformMemoryConfigurationPei", efi.GUID{0x11, 0x07, 0xfd, 0xf8, 0xc1, 0xca, 0x2f, 0x49, 0xaf, 0xc6, 0xaf, 0xf5, 0xda, 0x4d, 0x01, 0xb1}: "FpkConfigUpdateNeonCityEPRP", efi.GUID{0x11, 0x0b, 0x99, 0xa2, 0x5c, 0xf0, 0x82, 0x41, 0x97, 0x03, 0xbb, 0x02, 0x27, 0x5d, 0xb8, 0xf9}: "SmcNvdimmSmmProtocol", efi.GUID{0x11, 0x0c, 0x0e, 0x32, 0xfe, 0xb5, 0x20, 0x4c, 0xb8, 0xa8, 0x81, 0x5a, 0x20, 0x70, 0x0c, 0xef}: "AppleIpAgentDxe", efi.GUID{0x11, 0x0d, 0x1b, 0xda, 0xa7, 0xd1, 0xc4, 0x46, 0x9d, 0xc9, 0xf3, 0x71, 0x48, 0x75, 0xc6, 0xeb}: "VarCheckPolicyLibMmiHandler", efi.GUID{0x11, 0x12, 0x59, 0xe7, 0x96, 0x2a, 0xd8, 0x4f, 0xbb, 0x84, 0x08, 0x38, 0x77, 0x23, 0xda, 0x26}: "PlatformVTdInfoSamplePei", efi.GUID{0x11, 0x1b, 0xcd, 0x5f, 0x81, 0x29, 0xb8, 0x4e, 0x8e, 0x03, 0x4a, 0x0b, 0x54, 0x48, 0xdf, 0x5b}: "HpRemoteDiagnosticsDriverWmiSmm", efi.GUID{0x11, 0x27, 0x5f, 0x9a, 0x7f, 0xb9, 0x5e, 0x4d, 0xb1, 0x11, 0x26, 0x56, 0x52, 0xd4, 0x45, 0x87}: "WolPwrControlSmm", efi.GUID{0x11, 0x3a, 0xc6, 0x67, 0x9d, 0xf8, 0x00, 0x45, 0x82, 0x70, 0xd9, 0xdb, 0x25, 0x1e, 0xb2, 0xaf}: "Ps2KeyboardPei", efi.GUID{0x11, 0x40, 0x70, 0xeb, 0x02, 0x14, 0xd3, 0x11, 0x8e, 0x77, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b}: "EfiMtcGuid", efi.GUID{0x11, 0x44, 0x73, 0xc6, 0xda, 0x2d, 0x32, 0x46, 0xa5, 0x92, 0x92, 0x0f, 0x24, 0xd6, 0xed, 0x21}: "AmiAtaPassThruInitProtocolGuid", efi.GUID{0x11, 0x50, 0x70, 0xd3, 0x19, 0xbc, 0xf7, 0x4a, 0xbe, 0x16, 0xf6, 0x80, 0x30, 0x37, 0x8c, 0x15}: "EfiIntelFrameworkModulePkgTokenSpaceGuid", efi.GUID{0x11, 0x52, 0xfd, 0x28, 0x77, 0x37, 0x13, 0x4a, 0x9a, 0x2e, 0x66, 0xa7, 0x34, 0x1d, 0x15, 0xe4}: "FjClearsureDxe", efi.GUID{0x11, 0x53, 0x56, 0x17, 0x71, 0x4b, 0x40, 0x43, 0x88, 0xaa, 0xdc, 0x9f, 0x44, 0x22, 0xe5, 0x3a}: "SmmBiosGuardProtocol", efi.GUID{0x11, 0x66, 0xbb, 0x4c, 0x08, 0x36, 0x2b, 0x49, 0x92, 0xa7, 0xdd, 0x92, 0xfd, 0x6f, 0xe4, 0xfe}: "OEMBOARDPei", efi.GUID{0x11, 0x6b, 0xd4, 0x8d, 0x03, 0x04, 0x4c, 0x4b, 0xb3, 0x72, 0x70, 0x41, 0xcb, 0x15, 0x18, 0x34}: "DellFlashUpdate2Pei", efi.GUID{0x11, 0x71, 0x37, 0x1c, 0x7e, 0xe0, 0x33, 0x4b, 0x9b, 0x5b, 0x30, 0x81, 0x7d, 0x1f, 0x1b, 0xe3}: "DellIntrusionDetectSmm", efi.GUID{0x11, 0x76, 0xb0, 0xd9, 0xd7, 0x4e, 0xbf, 0x38, 0xb3, 0x04, 0x42, 0x11, 0x6e, 0x7c, 0x96, 0x6a}: "OSRecovery", efi.GUID{0x11, 0x77, 0x52, 0xe0, 0xf7, 0x50, 0x72, 0x46, 0xb8, 0x68, 0x6a, 0x44, 0x7e, 0xf5, 0x45, 0x13}: "PatchDevice", efi.GUID{0x11, 0x7b, 0x17, 0xa9, 0x25, 0x88, 0x50, 0x3a, 0xae, 0x81, 0x2e, 0x23, 0xa0, 0x2d, 0xaa, 0x42}: "DashUsbSerialDxe", efi.GUID{0x11, 0x7d, 0x0c, 0x4a, 0x7f, 0xca, 0x59, 0x4c, 0x86, 0x59, 0x6b, 0xda, 0x51, 0x32, 0xa5, 0xa8}: "DtprDxe", efi.GUID{0x11, 0x7f, 0xa4, 0x8d, 0x15, 0xaa, 0xc8, 0x48, 0xb0, 0xa7, 0x23, 0xee, 0x48, 0x52, 0x08, 0x6b}: "A01WMISmmHandler", efi.GUID{0x11, 0x82, 0xc5, 0xfe, 0x25, 0x60, 0xb7, 0x45, 0x9d, 0xcf, 0xdb, 0x21, 0xa4, 0x33, 0xbb, 0x78}: "MmcSetPowerOffTypePei", efi.GUID{0x11, 0x84, 0x26, 0xf9, 0xac, 0x99, 0x1f, 0x4f, 0xb2, 0xd7, 0x58, 0x04, 0xed, 0x5b, 0x8e, 0x1e}: "OemLogoScale", efi.GUID{0x11, 0x84, 0x9c, 0x3c, 0xd3, 0xa0, 0x00, 0x4a, 0x97, 0x9c, 0xf3, 0xa9, 0xff, 0x55, 0x6c, 0xf7}: "AsusBiosPeiCrashFree", efi.GUID{0x11, 0x89, 0xea, 0x09, 0x0d, 0xbe, 0x30, 0x42, 0xa0, 0x03, 0xed, 0xc6, 0x93, 0xb4, 0x8e, 0x11}: "VlvPeiInitPpiGuid", efi.GUID{0x11, 0x8f, 0x16, 0xc9, 0x60, 0x0c, 0x8c, 0x4a, 0xa4, 0x1f, 0x1b, 0x22, 0x89, 0x31, 0x5f, 0x4e}: "EcRotEnterRecoveryPei", efi.GUID{0x11, 0xa6, 0xe8, 0x58, 0x19, 0xab, 0xdc, 0x47, 0x98, 0x50, 0x39, 0x85, 0xde, 0x8d, 0xf1, 0xfd}: "PsmiMapHobGuid", efi.GUID{0x11, 0xa8, 0x0e, 0xee, 0xd9, 0xfb, 0x77, 0x47, 0xb9, 0x5a, 0xba, 0x4f, 0x71, 0x10, 0x1f, 0x74}: "PeiHeciPpiGuid", efi.GUID{0x11, 0xac, 0x74, 0xcc, 0x21, 0x61, 0xda, 0x4e, 0xa8, 0x57, 0x4d, 0x6e, 0xa9, 0x35, 0x7c, 0xee}: "Nct6126dTrdPeiInit", efi.GUID{0x11, 0xae, 0x4e, 0xb7, 0xee, 0xaa, 0x6a, 0x47, 0xab, 0x0f, 0x35, 0x10, 0x63, 0xd6, 0x78, 0x25}: "MeUpdate", efi.GUID{0x11, 0xb3, 0x23, 0xba, 0x3d, 0x34, 0xe6, 0x11, 0x91, 0x85, 0x58, 0x20, 0xb1, 0xd6, 0x52, 0x99}: "EfiHttpBootCallbackProtocolGuid", efi.GUID{0x11, 0xc3, 0x6a, 0xaf, 0xc3, 0x84, 0xd2, 0x11, 0x8e, 0x3c, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b}: "EfiDeviceIoProtocolGuid", efi.GUID{0x11, 0xc8, 0x50, 0xb7, 0xc2, 0x02, 0xed, 0x4b, 0x99, 0xb2, 0x8c, 0x69, 0x60, 0x08, 0x0d, 0x45}: "IrqBoardInfoOverride", efi.GUID{0x11, 0xcf, 0x41, 0xb9, 0x48, 0xe6, 0x1c, 0x40, 0x92, 0xa1, 0x34, 0x2a, 0x70, 0xc6, 0xb7, 0x42}: "DellSmbVersionManifest", efi.GUID{0x11, 0xd1, 0x9f, 0x19, 0x85, 0x07, 0x32, 0x41, 0xa9, 0xb3, 0x1f, 0x66, 0x57, 0x3f, 0x00, 0x60}: "GenericComponentsSmm", efi.GUID{0x11, 0xea, 0x3a, 0x6a, 0xc2, 0x2c, 0x66, 0x4b, 0xb4, 0xd3, 0xa8, 0x77, 0x9d, 0x60, 0x87, 0xc1}: "SystemSecureBiosPei", efi.GUID{0x11, 0xf4, 0xcd, 0x05, 0xc1, 0xf3, 0x12, 0x4b, 0xaa, 0x64, 0x21, 0x41, 0x6e, 0x18, 0xa1, 0x3c}: "AmdCpmSharedBSmm", efi.GUID{0x11, 0xf6, 0x44, 0x19, 0xcc, 0xfb, 0xbc, 0x40, 0x88, 0xc8, 0x85, 0x0d, 0x0f, 0xe5, 0x14, 0xe3}: "WCN6855", efi.GUID{0x11, 0xf7, 0x9b, 0x6d, 0x0d, 0xa9, 0xf9, 0x42, 0xa3, 0xfb, 0xdd, 0x08, 0xb6, 0xe8, 0x90, 0x37}: "SLP20EncryptedOEMPublicKeyVariableGuid", efi.GUID{0x11, 0xfd, 0xa7, 0x3a, 0x5f, 0xcc, 0xec, 0x11, 0x95, 0xe0, 0xe0, 0x2b, 0xe9, 0x42, 0x45, 0x81}: "DellLegacyBeep", efi.GUID{0x12, 0x02, 0x36, 0x54, 0x31, 0xbd, 0x3b, 0x40, 0xa9, 0x83, 0xc5, 0xe4, 0x72, 0x04, 0x9e, 0x40}: "OneTimeFlagsPeiInit", efi.GUID{0x12, 0x02, 0xfc, 0xab, 0x44, 0x93, 0x9c, 0x43, 0x86, 0x53, 0x69, 0x92, 0x34, 0xcf, 0xad, 0x03}: "AmdCpmWwanInitDxe", efi.GUID{0x12, 0x09, 0x8c, 0xd1, 0x25, 0x68, 0x8f, 0x4e, 0x8d, 0x5a, 0xaf, 0x7e, 0xed, 0xb2, 0xe5, 0xbc}: "LpssConfigGuid", efi.GUID{0x12, 0x0a, 0x9a, 0x7b, 0xf8, 0x42, 0x4c, 0x4d, 0x82, 0xb6, 0x32, 0xf0, 0xca, 0x19, 0x53, 0xf4}: "AmiBoardInfoFileGuid", efi.GUID{0x12, 0x0d, 0x2c, 0xcb, 0x6a, 0x8e, 0x12, 0x4b, 0x94, 0xf4, 0x1b, 0xc4, 0x9e, 0xc4, 0x60, 0xb1}: "AmiHstiPkgTokenSpaceGuid", efi.GUID{0x12, 0x0e, 0x24, 0x2f, 0x4d, 0xe1, 0x5c, 0x47, 0x83, 0xb0, 0xef, 0xff, 0x22, 0xd7, 0x7b, 0xe7}: "EfiKmsFormatSha512512Guid", efi.GUID{0x12, 0x0f, 0x96, 0xdf, 0xce, 0x05, 0x18, 0x4e, 0xb9, 0x26, 0x00, 0xaf, 0xc9, 0xf3, 0x1c, 0x7e}: "PeiSioEmi", efi.GUID{0x12, 0x15, 0xf7, 0xd0, 0x32, 0x9e, 0xc9, 0x4c, 0xa5, 0xa3, 0xad, 0x67, 0x9a, 0x06, 0x67, 0xb8}: "FlashProtectionConfigGuid", efi.GUID{0x12, 0x19, 0x4d, 0xca, 0x15, 0xc4, 0x86, 0x46, 0x86, 0x15, 0xa0, 0x82, 0x3d, 0x8c, 0x4f, 0x27}: "Cf9ResetSmm", efi.GUID{0x12, 0x1c, 0x44, 0x48, 0xea, 0x74, 0xbd, 0x4f, 0xbd, 0x1f, 0x19, 0x9c, 0xf3, 0x9c, 0x5b, 0xe4}: "Kb902xFlashSmm", efi.GUID{0x12, 0x24, 0x8a, 0xbe, 0x2a, 0xe6, 0x2a, 0x42, 0x87, 0x0d, 0x61, 0x85, 0xb7, 0xa3, 0x22, 0x71}: "OemEcVerUpd", efi.GUID{0x12, 0x29, 0x04, 0x99, 0x2a, 0x12, 0xd4, 0x11, 0xbd, 0x0d, 0x00, 0x80, 0xc7, 0x3c, 0x88, 0x81}: "EfiWinNtMemory", efi.GUID{0x12, 0x2b, 0x6c, 0x35, 0x24, 0x31, 0x51, 0x44, 0xbf, 0x66, 0xb5, 0x02, 0xd8, 0x8a, 0x00, 0x74}: "XhciDxe", efi.GUID{0x12, 0x30, 0x02, 0xfd, 0xf4, 0x19, 0x35, 0x42, 0xad, 0xcf, 0xd9, 0x24, 0xdb, 0xe2, 0x46, 0xfe}: "StaticSkuDataDxeLightningRidgeEXECB1", efi.GUID{0x12, 0x32, 0x12, 0x7b, 0xae, 0x02, 0x43, 0x4c, 0x82, 0x0e, 0x90, 0xc0, 0x7e, 0x08, 0x52, 0x42}: "FjGpioGeminilakePei", efi.GUID{0x12, 0x32, 0x46, 0xbd, 0x1b, 0x70, 0x34, 0x4e, 0xbe, 0xc1, 0xf3, 0xfb, 0x76, 0x02, 0xf8, 0xaa}: "IsaHostControllerDxe", efi.GUID{0x12, 0x37, 0xf5, 0x73, 0x64, 0x2a, 0x86, 0x4b, 0x96, 0x1d, 0xc2, 0x5b, 0x63, 0xdf, 0x19, 0x8c}: "AmdNbioIOMMURVDxe", efi.GUID{0x12, 0x39, 0x93, 0xcb, 0x8f, 0xdf, 0x05, 0x43, 0xb1, 0xf9, 0x7b, 0x44, 0xfa, 0x11, 0x39, 0x5c}: "AcpiPlatform", efi.GUID{0x12, 0x39, 0xbb, 0xbc, 0xfa, 0x29, 0x25, 0x4b, 0xb6, 0x19, 0x3c, 0x0d, 0x73, 0x9f, 0xef, 0x51}: "DellHotKeyHandlerDxe", efi.GUID{0x12, 0x3a, 0x3f, 0x33, 0xde, 0x11, 0x14, 0x40, 0x9e, 0x53, 0x0e, 0x15, 0x87, 0x8c, 0x72, 0x68}: "AmdI2cTouchPadDxe", efi.GUID{0x12, 0x48, 0x16, 0x36, 0x23, 0xa0, 0xe5, 0x44, 0xbd, 0x85, 0x05, 0xbf, 0x3c, 0x77, 0x00, 0xaa}: "EfiFindFvPpiGuid", efi.GUID{0x12, 0x48, 0xd3, 0x91, 0x6f, 0x23, 0x8b, 0x4b, 0xb5, 0x27, 0x27, 0xf9, 0x6a, 0x0c, 0xc3, 0xdf}: "MTKWiFiDxe", efi.GUID{0x12, 0x4d, 0x73, 0xc0, 0x27, 0x79, 0x2b, 0x43, 0x98, 0x6b, 0xa7, 0xe3, 0xa3, 0x5b, 0xa0, 0x05}: "LightPciBusPciBusDxe", efi.GUID{0x12, 0x52, 0xe6, 0x70, 0xad, 0xf3, 0x5f, 0x49, 0xb3, 0xa1, 0x7a, 0x63, 0x54, 0x2e, 0xd7, 0xd5}: "DellTcgPei2", efi.GUID{0x12, 0x57, 0x2e, 0x3b, 0x64, 0x7f, 0x6c, 0x4e, 0x9d, 0x18, 0x63, 0xa6, 0x86, 0x7c, 0xc7, 0x44}: "AmdSocFp7r2RmbPei", efi.GUID{0x12, 0x63, 0x20, 0x3c, 0xb6, 0xb8, 0x6f, 0x49, 0xbc, 0xfa, 0x2f, 0x64, 0x5e, 0xf4, 0xac, 0xde}: "TransparentUnlockWmiSmm", efi.GUID{0x12, 0x68, 0xa9, 0x99, 0x30, 0x47, 0x90, 0x42, 0x8b, 0xfe, 0x7b, 0x4e, 0x51, 0x4f, 0xf9, 0x3b}: "EfiGlobalVariableControl", efi.GUID{0x12, 0x6d, 0x07, 0xae, 0x6e, 0xf6, 0xd5, 0x4d, 0x88, 0x25, 0x86, 0xc8, 0x20, 0xa2, 0x1c, 0xaf}: "DualBiosSmi", efi.GUID{0x12, 0x6d, 0x84, 0xba, 0xac, 0x59, 0x18, 0x4e, 0x88, 0xff, 0xe0, 0x46, 0x87, 0x55, 0x24, 0x16}: "SmiCallback", efi.GUID{0x12, 0x79, 0xa7, 0x2e, 0xa8, 0x80, 0x47, 0x49, 0xbe, 0x69, 0xcd, 0xd0, 0x0a, 0xfb, 0xe5, 0x56}: "EdkiiNonDiscoverableUfsDeviceGuid", efi.GUID{0x12, 0x7a, 0xf6, 0x86, 0x32, 0x2e, 0xfc, 0x44, 0x8d, 0x6c, 0x79, 0x01, 0xe2, 0xb5, 0x64, 0x9a}: "CapsuleUpdatePolicyDxe", efi.GUID{0x12, 0x7b, 0x64, 0x0f, 0xa2, 0x5f, 0x5e, 0x4b, 0x9d, 0x61, 0x2a, 0xb3, 0xc5, 0x1f, 0x22, 0x4e}: "BctBaseSmmSSP", efi.GUID{0x12, 0x83, 0xc7, 0x52, 0xdc, 0x8e, 0x33, 0x42, 0x98, 0xf2, 0x1a, 0x1a, 0xa5, 0xe3, 0x88, 0xa5}: "EfiNvmExpressPassThruProtocolGuid", efi.GUID{0x12, 0x84, 0x47, 0xff, 0xc3, 0x38, 0x70, 0x47, 0x85, 0xf6, 0x5d, 0x07, 0x6c, 0x62, 0x12, 0x5f}: "TargetDiskModeUI", efi.GUID{0x12, 0x86, 0x06, 0xc6, 0xe0, 0xb6, 0xa3, 0x48, 0xbb, 0x92, 0x60, 0xe4, 0xa4, 0xf8, 0x9e, 0xdf}: "UefiPciSegmentLibPciRootBridgeIo", efi.GUID{0x12, 0x88, 0x04, 0x9f, 0x46, 0xa5, 0x85, 0x4c, 0xa5, 0xcf, 0xa0, 0x78, 0x54, 0x23, 0x70, 0x5d}: "SystemConfigUpdate", efi.GUID{0x12, 0x8d, 0x2b, 0xb4, 0xcb, 0x2a, 0x9a, 0x49, 0xa9, 0x20, 0xdd, 0x5b, 0xe6, 0xcf, 0x09, 0xb1}: "WdtProtocol", efi.GUID{0x12, 0x93, 0x8d, 0xc3, 0xcb, 0x05, 0xa8, 0x48, 0x8d, 0x3e, 0x13, 0x64, 0x3d, 0x68, 0x6e, 0xa3}: "MtlPchInitSmm", efi.GUID{0x12, 0x93, 0x8d, 0xf3, 0xcb, 0x05, 0xa8, 0x48, 0x8d, 0x3e, 0x13, 0x64, 0x3d, 0x68, 0x6e, 0xa3}: "PchInitSmm", efi.GUID{0x12, 0x9a, 0x5d, 0x70, 0x81, 0x62, 0x05, 0x4b, 0xbb, 0x64, 0xc9, 0xfe, 0x38, 0x64, 0x9c, 0xdf}: "SetupMenuDxe", efi.GUID{0x12, 0x9a, 0xa6, 0xc1, 0x53, 0x86, 0xde, 0x4f, 0xa2, 0x15, 0x48, 0xfc, 0xd9, 0x52, 0x88, 0xc3}: "PlatformSetupDxe", efi.GUID{0x12, 0x9b, 0xa7, 0x0f, 0x9a, 0x71, 0xec, 0x41, 0x8c, 0x57, 0x7c, 0x24, 0xf4, 0x77, 0x11, 0x62}: "VerifyHpRomSignature", efi.GUID{0x12, 0x9d, 0xba, 0x9c, 0x29, 0xa0, 0x66, 0x43, 0xab, 0x1e, 0x17, 0x2b, 0x81, 0x91, 0x47, 0x57}: "OntarioGenericVBios", efi.GUID{0x12, 0xa2, 0x75, 0xfd, 0xbf, 0xac, 0xc3, 0x41, 0xa4, 0x16, 0x1c, 0x6a, 0xa1, 0xb9, 0x97, 0xc9}: "PeiS3mDpe", efi.GUID{0x12, 0xa5, 0x6c, 0x82, 0x10, 0xcf, 0xc9, 0x4a, 0xb1, 0x87, 0xbe, 0x01, 0x49, 0x66, 0x31, 0xbd}: "EfiCertSha1Guid", efi.GUID{0x12, 0xa5, 0xe9, 0x24, 0x25, 0x3a, 0xba, 0x4c, 0xa0, 0xae, 0x67, 0xc0, 0x53, 0xbd, 0xf3, 0xb6}: "DxeVideoTextOut", efi.GUID{0x12, 0xb2, 0x77, 0x89, 0x43, 0x0a, 0x48, 0x40, 0x99, 0x3b, 0xb3, 0x9a, 0xc7, 0xb0, 0xfe, 0x21}: "gear9", efi.GUID{0x12, 0xbd, 0xc2, 0x3b, 0x2e, 0xad, 0xd5, 0x11, 0x87, 0xdd, 0x00, 0x06, 0x29, 0x45, 0xc3, 0xb9}: "CpuStatusCodeDataTypeExceptionHandlerGuid", efi.GUID{0x12, 0xc0, 0xae, 0xa3, 0x26, 0x9a, 0xa5, 0x4a, 0x98, 0x6c, 0x00, 0x44, 0x23, 0xe4, 0x39, 0x75}: "SnapshotLite", efi.GUID{0x12, 0xc0, 0xeb, 0x63, 0x65, 0x0d, 0x56, 0x4d, 0x85, 0xe7, 0xf5, 0xa7, 0xf4, 0x02, 0x27, 0x30}: "KEMhLpcDecodeDxe", efi.GUID{0x12, 0xc3, 0xec, 0xee, 0x36, 0xff, 0x21, 0x4e, 0x9c, 0x5f, 0x0b, 0x20, 0x8c, 0xdc, 0x02, 0xfa}: "FjDTPMAutoConfigDriver", efi.GUID{0x12, 0xc7, 0x8d, 0x15, 0x5a, 0xf1, 0xdc, 0x44, 0x93, 0xbb, 0x16, 0x75, 0x04, 0x5b, 0xe0, 0x66}: "HashLibBaseCryptoRouterDxe", efi.GUID{0x12, 0xcb, 0x1c, 0xc1, 0x7a, 0xc1, 0x66, 0x42, 0xb4, 0x7d, 0x18, 0xfd, 0x10, 0x18, 0x11, 0xea}: "HdpBackupToNvram", efi.GUID{0x12, 0xcd, 0x1e, 0xb7, 0x1e, 0xe0, 0x0b, 0x44, 0xaa, 0x52, 0x4d, 0x6e, 0x59, 0xd4, 0x5b, 0x3c}: "DellSecurityConfig", efi.GUID{0x12, 0xd6, 0x2f, 0x78, 0xf3, 0x46, 0xa2, 0x47, 0x83, 0xd9, 0x8f, 0xdb, 0x86, 0xe6, 0xfe, 0xd1}: "FjGabiMiscAbstractionSmm", efi.GUID{0x12, 0xd6, 0xa0, 0x2b, 0xad, 0xc3, 0x49, 0x42, 0x91, 0x5d, 0xaa, 0x0e, 0x87, 0x09, 0x48, 0x5f}: "SdioDriver", efi.GUID{0x12, 0xe3, 0xd4, 0xb7, 0x94, 0x48, 0x47, 0x41, 0xbf, 0x44, 0x9d, 0x6b, 0xff, 0x50, 0xb7, 0xaf}: "BluetoothBusDxe", efi.GUID{0x12, 0xe5, 0x22, 0x30, 0x4a, 0xb9, 0x12, 0x4f, 0x80, 0x6d, 0x7e, 0xf1, 0x17, 0x78, 0x99, 0xd8}: "PciHotPlug", efi.GUID{0x12, 0xee, 0xda, 0x27, 0x8e, 0x48, 0x98, 0x4e, 0xad, 0xcf, 0x38, 0xad, 0xc1, 0x0a, 0x6b, 0x68}: "H19ServiceBodySmm", efi.GUID{0x12, 0xf1, 0xc4, 0x67, 0x85, 0x33, 0x55, 0x4e, 0x9c, 0x5b, 0xc0, 0x5b, 0x71, 0x7c, 0x42, 0x28}: "EfiSmmSwapAddressRangeProtocolGuid", efi.GUID{0x12, 0xf9, 0x03, 0x07, 0x8d, 0xbf, 0x2a, 0x4e, 0xbe, 0x07, 0xab, 0x27, 0x25, 0x25, 0xc5, 0x92}: "EfiSmmPeiMmramMemoryReserve", efi.GUID{0x12, 0xf9, 0xa4, 0x81, 0x2f, 0xe7, 0xed, 0x44, 0x89, 0x31, 0x16, 0xa9, 0xfe, 0x96, 0x50, 0xe0}: "KbcEmulDxe", efi.GUID{0x12, 0xfd, 0x12, 0xeb, 0xea, 0x42, 0x72, 0x4a, 0xa0, 0x5e, 0x4e, 0xbd, 0x04, 0x61, 0x84, 0x77}: "CbsSetupSmmSHP", efi.GUID{0x13, 0x03, 0xa3, 0x58, 0xd7, 0x70, 0x01, 0x42, 0x82, 0x12, 0x99, 0x57, 0x65, 0xb3, 0x52, 0x7f}: "DriveOptionSwitch", efi.GUID{0x13, 0x0b, 0xa5, 0x07, 0x39, 0x75, 0xcb, 0x41, 0xb9, 0x24, 0x9e, 0x72, 0xb8, 0x70, 0xc6, 0xd3}: "UsbVhcDxe", efi.GUID{0x13, 0x10, 0x92, 0x4f, 0x71, 0x4f, 0x6c, 0x4c, 0xbc, 0xf8, 0x41, 0x9b, 0x2b, 0x80, 0x19, 0x32}: "SetupBrowser", efi.GUID{0x13, 0x11, 0x06, 0x6a, 0x54, 0xfe, 0x07, 0x4a, 0xa2, 0x8e, 0x0a, 0x69, 0x35, 0x9e, 0xb0, 0x69}: "SgTpvACPI", efi.GUID{0x13, 0x17, 0x6d, 0x16, 0xa0, 0x23, 0x6a, 0x4f, 0x98, 0x21, 0xac, 0xd9, 0x4f, 0x77, 0xbd, 0xe3}: "SbSocBixbyPei", efi.GUID{0x13, 0x18, 0x95, 0xb1, 0xfa, 0x0c, 0x8e, 0x41, 0xb3, 0x12, 0x33, 0x36, 0x8d, 0x59, 0x02, 0xeb}: "SystemPwSmm", efi.GUID{0x13, 0x19, 0xd5, 0x48, 0x40, 0xf3, 0x98, 0x47, 0x83, 0xd7, 0x5c, 0xab, 0x3d, 0x5c, 0x6d, 0xa7}: "AppleEffaceableBCENOR", efi.GUID{0x13, 0x1e, 0x27, 0x51, 0xe3, 0x7d, 0xaf, 0x43, 0x8b, 0xc2, 0x71, 0xad, 0x3b, 0x82, 0x43, 0x25}: "ShellMapGuid", efi.GUID{0x13, 0x28, 0xcf, 0x3f, 0x38, 0xf1, 0x1c, 0x41, 0xbf, 0xc4, 0xdb, 0xe5, 0xb9, 0x49, 0x98, 0x22}: "ODMEMUSBLAN", efi.GUID{0x13, 0x36, 0x3d, 0x49, 0x5f, 0x84, 0x3c, 0x41, 0xa7, 0xc5, 0x1b, 0xd8, 0x90, 0xcd, 0xc4, 0xe1}: "AIMTBatteryInfo", efi.GUID{0x13, 0x42, 0x23, 0x72, 0xd7, 0x0f, 0xa1, 0x48, 0xa5, 0x9f, 0xb4, 0x1b, 0xc1, 0x07, 0xfb, 0xcd}: "ACPIOSFRVariableGuid", efi.GUID{0x13, 0x52, 0x24, 0x7c, 0x5e, 0x34, 0xef, 0x44, 0x9f, 0xd3, 0x7b, 0x6d, 0xa9, 0x2a, 0xa4, 0x99}: "UsbPortDisableOverrideDxe", efi.GUID{0x13, 0x5d, 0xa9, 0x27, 0xfb, 0x15, 0x2e, 0x4a, 0x91, 0xe2, 0xc7, 0x84, 0xbf, 0x0d, 0x20, 0xd3}: "PersistenceConfigDxe", efi.GUID{0x13, 0x60, 0xa0, 0x66, 0xbc, 0xae, 0x1f, 0x4a, 0xa0, 0x1a, 0xaa, 0x3a, 0x74, 0xf9, 0x88, 0x36}: "HeciAccessSmm", efi.GUID{0x13, 0x67, 0x8e, 0x33, 0x95, 0x02, 0x05, 0x4c, 0xa0, 0xbb, 0xd9, 0x45, 0xa4, 0x59, 0x5f, 0x11}: "CbsBaseDxeSSP", efi.GUID{0x13, 0x75, 0x23, 0xb9, 0x44, 0x6c, 0x11, 0x44, 0xa9, 0x90, 0x21, 0xe5, 0x56, 0xe0, 0x5a, 0xde}: "EfiKmsFormatGeneric3072Guid", efi.GUID{0x13, 0x7e, 0x27, 0xaf, 0x21, 0x3f, 0xb2, 0x40, 0x94, 0x52, 0x43, 0x50, 0x3b, 0xad, 0x06, 0x70}: "BixbyPei", efi.GUID{0x13, 0x86, 0x7e, 0xdc, 0xbb, 0xc4, 0xb0, 0x4d, 0x84, 0x62, 0x13, 0x51, 0x13, 0x57, 0xab, 0xe2}: "EfiKmsFormatAesxts256Guid", efi.GUID{0x13, 0x86, 0xf4, 0x57, 0x0a, 0x30, 0x01, 0x41, 0xa7, 0x6d, 0x4f, 0x73, 0xc5, 0x33, 0xb5, 0xb8}: "PriorBootDxe", efi.GUID{0x13, 0x86, 0xf8, 0x51, 0x29, 0x4f, 0x2f, 0x48, 0xb0, 0x55, 0x30, 0xfa, 0x50, 0xf5, 0x30, 0xfa}: "OemWlanAutoDisConnect", efi.GUID{0x13, 0x87, 0x14, 0x44, 0x38, 0x61, 0x90, 0x48, 0xa1, 0x5b, 0x5f, 0xf6, 0x0c, 0x03, 0xf8, 0x7b}: "EcSureStartRAPDataTransferSmm", efi.GUID{0x13, 0x87, 0x40, 0x2d, 0x23, 0x40, 0x24, 0x43, 0xb8, 0xea, 0x53, 0xc0, 0x2a, 0x83, 0xd9, 0x41}: "PeCoffExtraActionLibSmm", efi.GUID{0x13, 0x9b, 0xed, 0xe6, 0xaf, 0x31, 0x92, 0x4c, 0xa5, 0x61, 0xd4, 0x7b, 0x2f, 0xa9, 0x94, 0xf7}: "FastBootHandlerDxe", efi.GUID{0x13, 0xa4, 0x88, 0xd0, 0x70, 0x0a, 0x17, 0x42, 0xba, 0x55, 0x9a, 0x3c, 0xb6, 0x5c, 0x41, 0xb3}: "ExitPmAuthProtocolGuid", efi.GUID{0x13, 0xa4, 0xf6, 0x55, 0x0f, 0x28, 0xe3, 0x41, 0x93, 0x94, 0x65, 0x80, 0xf2, 0x9d, 0xd7, 0xd0}: "DellSmmBbsmanagerLegacy", efi.GUID{0x13, 0xad, 0x1c, 0x8c, 0x7d, 0x16, 0x6f, 0x48, 0x8b, 0x20, 0x12, 0xff, 0x6d, 0x13, 0x05, 0xcc}: "FjPowerButtonDxe", efi.GUID{0x13, 0xaf, 0x77, 0xa4, 0x7d, 0x87, 0x60, 0x40, 0xba, 0xa1, 0x25, 0xd1, 0xbe, 0xa0, 0x8a, 0xd3}: "EfiKmsFormatRsasha2562048Guid", efi.GUID{0x13, 0xb3, 0x94, 0xe8, 0xca, 0x54, 0xb2, 0x4b, 0x8c, 0xdd, 0x85, 0x1e, 0x8a, 0xc9, 0x02, 0x7c}: "AmiDebugportHob", efi.GUID{0x13, 0xb6, 0x04, 0x84, 0x35, 0xea, 0x6f, 0x46, 0xbc, 0x7b, 0x9f, 0x51, 0xc9, 0x65, 0x19, 0x8e}: "AsusBackDoorPW", efi.GUID{0x13, 0xba, 0x18, 0x3d, 0xb1, 0xd9, 0xd4, 0x4d, 0xb9, 0x16, 0xd3, 0x07, 0x96, 0x53, 0x9e, 0xd8}: "EdkiiUfsHcPlatformProtocol", efi.GUID{0x13, 0xbc, 0xfe, 0x53, 0x34, 0xc5, 0x3e, 0x48, 0x8d, 0xa0, 0x96, 0x8e, 0x6f, 0xfd, 0x18, 0xd0}: "SecureBIOCameraSunplus", efi.GUID{0x13, 0xbf, 0x7c, 0x34, 0x36, 0x9c, 0x36, 0x4e, 0x91, 0xf9, 0x5b, 0xc7, 0x6e, 0x50, 0x42, 0xd1}: "MacAddressPassThrough", efi.GUID{0x13, 0xd0, 0x61, 0x4c, 0xa5, 0xec, 0x85, 0x47, 0x96, 0x25, 0xb2, 0x67, 0xa0, 0x0e, 0x77, 0x21}: "LenovoTrustedDeviceSetupUIDxe", efi.GUID{0x13, 0xd0, 0xf5, 0x2b, 0x75, 0x4e, 0xfc, 0x45, 0xac, 0xb4, 0x92, 0x47, 0x14, 0x5c, 0x17, 0x43}: "GigUndiDxe", efi.GUID{0x13, 0xd7, 0x58, 0xd3, 0x11, 0x7e, 0xf1, 0x43, 0x94, 0x56, 0xf5, 0xff, 0x2e, 0xbe, 0x19, 0xa8}: "SbSocBrhDxe", efi.GUID{0x13, 0xe2, 0x14, 0x82, 0x0c, 0x18, 0x22, 0x48, 0xa2, 0x36, 0xcd, 0xca, 0x43, 0xf4, 0x3c, 0x88}: "CbsSetupSmmMdn", efi.GUID{0x13, 0xec, 0xa8, 0x5c, 0xde, 0x18, 0xe6, 0x48, 0xb0, 0x37, 0x67, 0xa2, 0x77, 0x2f, 0x3e, 0xbb}: "Tcg2Pei_", efi.GUID{0x14, 0x00, 0xf1, 0x2d, 0x21, 0xcf, 0x80, 0x42, 0x8c, 0x3f, 0xe5, 0x39, 0xb8, 0xee, 0x51, 0x50}: "PpmPolicyInitDxe", efi.GUID{0x14, 0x07, 0x15, 0xed, 0x30, 0xdf, 0x7d, 0x40, 0xb2, 0x4a, 0x4b, 0x74, 0x2f, 0xd5, 0xce, 0xa2}: "DuetConsoleOutConfigGuid", efi.GUID{0x14, 0x0e, 0x45, 0x49, 0xa1, 0x2b, 0xe9, 0x40, 0x97, 0x55, 0x6f, 0xe3, 0x27, 0xf8, 0xe0, 0x22}: "DeviceChangeDxe", efi.GUID{0x14, 0x11, 0xbc, 0xa5, 0x64, 0x6f, 0xde, 0x4e, 0xb8, 0x63, 0x3e, 0x83, 0xed, 0x7c, 0x83, 0xb1}: "EfiPlatformMemoryErrorSectionGuid", efi.GUID{0x14, 0x13, 0xb6, 0x7b, 0xb5, 0x11, 0x33, 0x48, 0xbc, 0xad, 0xb1, 0x60, 0x1c, 0xa0, 0x88, 0xc9}: "SmbiosType0", efi.GUID{0x14, 0x20, 0xff, 0x4f, 0x86, 0x20, 0xe6, 0x4e, 0x9b, 0x58, 0x88, 0x6d, 0x19, 0x67, 0x86, 0x1c}: "SecPeiDxeTimerLibUefiCpu", efi.GUID{0x14, 0x23, 0xe1, 0x1c, 0xbc, 0xaf, 0xf0, 0x11, 0x8a, 0x3e, 0xab, 0x44, 0xb8, 0xee, 0x31, 0x20}: "PpmPolicyInitDxe", efi.GUID{0x14, 0x31, 0x56, 0x8a, 0xf2, 0x70, 0xdc, 0x4a, 0x9a, 0x47, 0x19, 0x42, 0x4d, 0xfb, 0xe8, 0x2c}: "CrbPciePei", efi.GUID{0x14, 0x34, 0x83, 0x82, 0xf4, 0xc8, 0x62, 0x4b, 0xab, 0x6a, 0xe4, 0xd5, 0xda, 0xab, 0x13, 0x0f}: "HwmInitDxe", efi.GUID{0x14, 0x36, 0xeb, 0xc4, 0x86, 0x49, 0xb9, 0x42, 0x8c, 0x0d, 0x9f, 0xe1, 0x18, 0x27, 0x89, 0x08}: "CrystalRidge", efi.GUID{0x14, 0x37, 0x81, 0x94, 0x0a, 0xe1, 0x98, 0x47, 0x99, 0x09, 0x8c, 0x90, 0x4f, 0x66, 0xb4, 0xd9}: "NvmExpressPei", efi.GUID{0x14, 0x37, 0xda, 0xdb, 0xbf, 0x78, 0xff, 0x43, 0xb3, 0x0b, 0x4b, 0xd3, 0xdb, 0xc0, 0x1b, 0x54}: "PsmiMotBufferGuid", efi.GUID{0x14, 0x3d, 0xed, 0xf2, 0x85, 0x89, 0xdb, 0x11, 0xb0, 0x57, 0x00, 0x40, 0xd0, 0x2b, 0x18, 0x35}: "PeiUnixAutoscanPpi", efi.GUID{0x14, 0x42, 0x92, 0xaa, 0xcb, 0xdf, 0xee, 0x4b, 0xaa, 0x33, 0xfa, 0xe9, 0x72, 0x9a, 0xf0, 0x00}: "A01ODMSmmServiceDriver", efi.GUID{0x14, 0x50, 0x6e, 0xb7, 0x63, 0xeb, 0xeb, 0x47, 0x89, 0x15, 0x68, 0x6f, 0xcc, 0x38, 0x20, 0xb9}: "AmdNbioBaseCZPei", efi.GUID{0x14, 0x51, 0xe7, 0x7c, 0x72, 0x82, 0xaf, 0x45, 0xb5, 0x36, 0x76, 0x1b, 0xd3, 0x88, 0x52, 0xce}: "Slp21PubKey", efi.GUID{0x14, 0x5b, 0xc0, 0x52, 0x98, 0x0b, 0x6c, 0x49, 0xbc, 0x3b, 0x04, 0xb5, 0x02, 0x11, 0xd6, 0x80}: "PeiCore", efi.GUID{0x14, 0x61, 0x18, 0x14, 0x90, 0xb9, 0x34, 0x47, 0x89, 0x8e, 0x5f, 0x86, 0xfa, 0xe4, 0x97, 0x84}: "DellHwmIoDxe", efi.GUID{0x14, 0x65, 0x4b, 0x29, 0xcb, 0xcf, 0xf4, 0x4c, 0x88, 0x51, 0x3f, 0x35, 0x33, 0x0e, 0xae, 0x60}: "RmtcPEI", efi.GUID{0x14, 0x67, 0x49, 0x1b, 0x85, 0x76, 0x2c, 0x40, 0xa5, 0xba, 0x37, 0xb8, 0x11, 0x3d, 0x4e, 0x74}: "DellFreeFallSensorSmm", efi.GUID{0x14, 0x6e, 0xa6, 0x16, 0xa3, 0x40, 0x0c, 0x4a, 0xb5, 0x69, 0x1c, 0x68, 0x22, 0x37, 0x33, 0x45}: "AmdSocFp7r2PhxPei", efi.GUID{0x14, 0x74, 0x71, 0xa7, 0x16, 0xc6, 0x77, 0x49, 0x94, 0x20, 0x84, 0x47, 0x12, 0xa7, 0x35, 0xbf}: "EfiCertTypeRsa2048Sha256Guid", efi.GUID{0x14, 0x7e, 0x07, 0xcb, 0xd8, 0xeb, 0xc2, 0x4a, 0x98, 0x6f, 0x82, 0xf3, 0xcd, 0x4e, 0x71, 0x7e}: "SdHostDriver", efi.GUID{0x14, 0x8e, 0x95, 0xdc, 0x7e, 0xca, 0x9c, 0x47, 0xa6, 0x56, 0x2c, 0xb9, 0x5f, 0x8a, 0x16, 0x9b}: "RpmcDxe", efi.GUID{0x14, 0x93, 0x8a, 0x73, 0xc1, 0x82, 0x92, 0x45, 0x8f, 0xf7, 0xc1, 0xbd, 0xf1, 0xb2, 0x0e, 0xd4}: "ShellTftpHiiGuid", efi.GUID{0x14, 0x9e, 0xb6, 0xe9, 0x08, 0xae, 0x59, 0x44, 0x8c, 0xf6, 0x6e, 0xdd, 0x19, 0xa3, 0x9d, 0xd5}: "AmdNbioIOMMURNPei", efi.GUID{0x14, 0xa1, 0xee, 0x84, 0xbe, 0xc6, 0x45, 0x44, 0x8f, 0x90, 0x51, 0xd9, 0x78, 0x63, 0xe3, 0x63}: "CpuHotplugSmm", efi.GUID{0x14, 0xa6, 0x10, 0xa5, 0x92, 0x21, 0xdf, 0x11, 0xaf, 0x29, 0x27, 0x54, 0xe8, 0x6b, 0x35, 0x94}: "PciExpressHostBridge", efi.GUID{0x14, 0xa6, 0x26, 0x3e, 0xf7, 0x09, 0x6a, 0x48, 0xa8, 0x8f, 0xa9, 0x9b, 0xf1, 0x5e, 0x1f, 0xa1}: "LenovoPcdInit", efi.GUID{0x14, 0xa9, 0x51, 0x81, 0x37, 0x24, 0xd0, 0x41, 0xa4, 0x10, 0x14, 0xdf, 0x75, 0xf9, 0xbe, 0x70}: "SystemMassStorageEventDxe", efi.GUID{0x14, 0xae, 0x2b, 0xe9, 0xfd, 0x3d, 0x70, 0x4c, 0x9f, 0xe6, 0x38, 0x99, 0xf3, 0x6c, 0x78, 0x46}: "PLEDSMM", efi.GUID{0x14, 0xae, 0xa0, 0xff, 0xd1, 0x0f, 0x69, 0x41, 0xb8, 0x7d, 0x58, 0xfb, 0x8c, 0x34, 0x65, 0x56}: "FjLoadRtd3Table", efi.GUID{0x14, 0xbb, 0xe1, 0x87, 0x5c, 0x4d, 0x4e, 0x7c, 0xa9, 0x0e, 0xe1, 0x41, 0x56, 0x87, 0xd0, 0x62}: "EmuTimer", efi.GUID{0x14, 0xc3, 0xbb, 0x56, 0x42, 0xb4, 0x5a, 0x4d, 0xba, 0x5c, 0xd8, 0x42, 0xda, 0xfd, 0xbb, 0x24}: "PlatformInitAdvancedPreMem", efi.GUID{0x14, 0xc8, 0x26, 0x64, 0x1a, 0x60, 0x16, 0x41, 0x9e, 0x9f, 0xbf, 0x9d, 0x6f, 0x8f, 0x25, 0x4f}: "DellFlashUpdateDxe", efi.GUID{0x14, 0xce, 0xca, 0x23, 0xa4, 0xeb, 0xf6, 0x49, 0x96, 0x81, 0xc6, 0x97, 0xff, 0x0b, 0x64, 0x9e}: "VirtioSerialDxe", efi.GUID{0x14, 0xd2, 0xc5, 0x69, 0x93, 0xf9, 0x34, 0x4c, 0x90, 0x11, 0xa0, 0x67, 0x87, 0xe5, 0xc9, 0x56}: "FjSxEnterResumeDispatchSmm", efi.GUID{0x14, 0xd3, 0xc6, 0xa0, 0xb1, 0x97, 0xb5, 0x4f, 0xad, 0xce, 0x05, 0x13, 0x8a, 0x2b, 0x5d, 0x00}: "FjHddEraseDxe", efi.GUID{0x14, 0xda, 0x55, 0x9a, 0x45, 0xd8, 0x3d, 0x4b, 0x92, 0xdc, 0x33, 0x21, 0x43, 0xcc, 0x5c, 0x1c}: "HDAudioDxe", efi.GUID{0x14, 0xdd, 0x03, 0x09, 0xa0, 0x2c, 0x8a, 0x45, 0xb5, 0xeb, 0x0c, 0x0c, 0xa3, 0x0d, 0x78, 0x5c}: "AmiSmbiosBoardProtocolGuid", efi.GUID{0x14, 0xe2, 0xb8, 0x38, 0x68, 0x14, 0xb7, 0x4b, 0x95, 0xb1, 0x74, 0x59, 0x1e, 0x4c, 0x6e, 0x1d}: "AttemptUsbFirstHotkeyInfoHob", efi.GUID{0x14, 0xef, 0x00, 0x4d, 0xe0, 0xc4, 0x6b, 0x42, 0x81, 0xb7, 0x30, 0xa0, 0x0a, 0x14, 0xaa, 0xd6}: "NandFlash", efi.GUID{0x14, 0xf0, 0xbf, 0xf8, 0xfb, 0x18, 0xf9, 0x4e, 0xb1, 0x0c, 0xae, 0x22, 0x73, 0x8d, 0xbe, 0xed}: "DxePlatformSeCPolicyGuid", efi.GUID{0x14, 0xf1, 0x87, 0x54, 0xe6, 0x45, 0x34, 0x4d, 0x95, 0xe5, 0xc7, 0xcf, 0x09, 0xe8, 0xae, 0xa9}: "FjNvramVariablesAccessReferencePei", efi.GUID{0x14, 0xf6, 0xb7, 0xef, 0x8b, 0xbc, 0xdd, 0x4d, 0xb0, 0x9a, 0x22, 0x07, 0x9f, 0xc1, 0x51, 0x2f}: "TbtDxe", efi.GUID{0x14, 0xf9, 0x19, 0xc3, 0xa4, 0x34, 0x45, 0x48, 0x98, 0xc1, 0x16, 0x89, 0xb9, 0x8c, 0x2c, 0x13}: "FjSlp1Support", efi.GUID{0x14, 0xfa, 0x1e, 0x6b, 0xb8, 0x06, 0x27, 0x41, 0x97, 0x5a, 0x5b, 0x2d, 0xcf, 0x53, 0x92, 0xe2}: "SmcPostMsgHotKey_DXE", efi.GUID{0x14, 0xfb, 0xe9, 0x31, 0xe2, 0x51, 0xe9, 0x46, 0x9f, 0x81, 0xf2, 0xca, 0x52, 0xfc, 0xb2, 0xb4}: "DellDiagsSmmProtocol", efi.GUID{0x14, 0xfd, 0xd9, 0xf7, 0x35, 0x93, 0x89, 0x43, 0x80, 0xc5, 0x33, 0x4d, 0x6a, 0xbf, 0xcc, 0xed}: "ArmVirtPrePiUniCoreRelocatable", efi.GUID{0x15, 0x00, 0x87, 0xf8, 0x94, 0x69, 0x98, 0x4b, 0x95, 0xa2, 0xbd, 0x56, 0xda, 0x91, 0xc0, 0x7f}: "EfiMemoryMap", efi.GUID{0x15, 0x0b, 0xc8, 0x4b, 0x5d, 0x25, 0x58, 0x48, 0x80, 0x72, 0x51, 0xd6, 0xd9, 0x8c, 0xf9, 0x0e}: "SetHostName", efi.GUID{0x15, 0x13, 0x5d, 0xf6, 0x05, 0x5b, 0x4f, 0x44, 0xad, 0xf1, 0x7c, 0x1f, 0x05, 0x68, 0x58, 0x52}: "TpmVendorInfineon", efi.GUID{0x15, 0x19, 0xb7, 0x8c, 0x1f, 0x53, 0xf5, 0x4a, 0x82, 0xbf, 0xa0, 0x91, 0x40, 0x81, 0x7b, 0xaa}: "FLASHMAPBIN", efi.GUID{0x15, 0x1a, 0x47, 0xe0, 0xdc, 0x76, 0x03, 0x42, 0x8b, 0x27, 0x6d, 0xb4, 0xf8, 0xba, 0x64, 0x4a}: "UbaConfigDatabaseDxe", efi.GUID{0x15, 0x20, 0x03, 0x75, 0x56, 0xd1, 0x3e, 0x42, 0xbf, 0xa3, 0x7a, 0x65, 0xab, 0xa4, 0x71, 0x05}: "EfiI2cBusConfigurationManagementProtocolGuid", efi.GUID{0x15, 0x20, 0x9a, 0x85, 0x7b, 0x3c, 0x4e, 0x4f, 0x84, 0x7f, 0x7a, 0xa8, 0x8c, 0x87, 0x14, 0xa5}: "ConfigChangePromptSmm", efi.GUID{0x15, 0x21, 0x25, 0xfd, 0xaf, 0x77, 0x9d, 0x4d, 0xa2, 0x59, 0x81, 0xdd, 0x98, 0x78, 0x0e, 0x18}: "UpdateTCMFlag", efi.GUID{0x15, 0x26, 0x89, 0x77, 0x7a, 0x7c, 0xef, 0x4a, 0xa3, 0x20, 0x2a, 0x0c, 0x15, 0xc4, 0x4b, 0x95}: "BiosRegionLock", efi.GUID{0x15, 0x29, 0x0c, 0xf3, 0x82, 0x57, 0x6a, 0x4e, 0xa8, 0x46, 0x05, 0xba, 0xbc, 0xe7, 0xb6, 0xa0}: "EfiI2cAcpiProtocolGuid", efi.GUID{0x15, 0x2f, 0x27, 0x52, 0x2f, 0xc2, 0x53, 0x4b, 0x83, 0x0a, 0xfb, 0xef, 0x9c, 0x3f, 0x64, 0x3b}: "RealtekLan", efi.GUID{0x15, 0x32, 0x79, 0x11, 0x3a, 0xcd, 0x2a, 0x42, 0xa2, 0x29, 0x24, 0x94, 0x17, 0x28, 0x2d, 0xfa}: "FchDxeMmio", efi.GUID{0x15, 0x45, 0x5a, 0xb5, 0x95, 0x58, 0xa8, 0x4e, 0x84, 0x5b, 0x75, 0xb7, 0x48, 0x0f, 0x65, 0x02}: "SmmControl2OnSmmControlThunk", efi.GUID{0x15, 0x4e, 0xc8, 0xda, 0xf5, 0xc3, 0xf1, 0x40, 0x81, 0x84, 0x8d, 0xe8, 0xda, 0x91, 0xfe, 0x0e}: "SbSocMatissePei", efi.GUID{0x15, 0x4e, 0xc8, 0xda, 0xf5, 0xc3, 0xf1, 0x40, 0x81, 0x84, 0x8d, 0xe8, 0xda, 0x91, 0xfe, 0x11}: "SbSocRenoirPei", efi.GUID{0x15, 0x56, 0xee, 0xea, 0xfd, 0x0c, 0xfc, 0x45, 0x87, 0x69, 0xa0, 0xd8, 0x56, 0x95, 0xaf, 0x85}: "EdkiiNonDiscoverableEhciDeviceGuid", efi.GUID{0x15, 0x59, 0xf7, 0x4d, 0x88, 0x6c, 0xf4, 0x4e, 0x99, 0x5d, 0x83, 0x4d, 0x86, 0x6d, 0xbd, 0x20}: "CpuSetAgesaPcd", efi.GUID{0x15, 0x5c, 0x24, 0x4e, 0xe1, 0x66, 0xc4, 0x47, 0x92, 0xb0, 0x0f, 0x57, 0x27, 0x59, 0x17, 0x20}: "UnlockNextHddUserPassword", efi.GUID{0x15, 0x5c, 0xdf, 0x20, 0x32, 0x5e, 0xd7, 0x42, 0xbb, 0x67, 0x33, 0x90, 0xa0, 0xe5, 0x1f, 0xfd}: "HpErrorLoggingPei", efi.GUID{0x15, 0x69, 0x11, 0x51, 0x4b, 0xc3, 0x8e, 0x4d, 0x86, 0xdb, 0x6a, 0x70, 0xf2, 0xe6, 0x0d, 0xaa}: "NVMe", efi.GUID{0x15, 0x69, 0x11, 0x51, 0x4b, 0xc3, 0x8e, 0x4d, 0x86, 0xdb, 0x6a, 0x70, 0xf2, 0xe6, 0x0d, 0xac}: "IOBufferCopyController", efi.GUID{0x15, 0x82, 0x75, 0x28, 0x0d, 0x0d, 0x36, 0x41, 0xa8, 0xc8, 0x68, 0xab, 0x67, 0x11, 0xdf, 0x46}: "EcFwUpdateDxe", efi.GUID{0x15, 0x84, 0x36, 0xcf, 0xfd, 0x2c, 0x57, 0x47, 0x80, 0x3f, 0x6e, 0x27, 0x3d, 0x91, 0x23, 0xee}: "AcerLidPei", efi.GUID{0x15, 0x86, 0x5a, 0x76, 0xcf, 0x2f, 0xec, 0x4c, 0x98, 0x12, 0x85, 0xfd, 0xfd, 0xd4, 0x80, 0x53}: "OtaStorageBmcDxeDriver", efi.GUID{0x15, 0x88, 0x94, 0x4f, 0xb9, 0xb4, 0xcb, 0x43, 0x8a, 0x33, 0x90, 0xe0, 0x60, 0xb3, 0x49, 0x55}: "EfiUdp6ProtocolGuid", efi.GUID{0x15, 0x88, 0xcd, 0x2d, 0xcb, 0x74, 0xed, 0x4b, 0xa4, 0x85, 0x4b, 0x39, 0x28, 0xbf, 0x50, 0xee}: "RsaBmcCommands", efi.GUID{0x15, 0x91, 0xee, 0xcf, 0x9f, 0xf1, 0x3e, 0x45, 0xa0, 0xe8, 0x97, 0xde, 0xcd, 0x36, 0x82, 0x8c}: "H19DisplayMsgInBlackScreen", efi.GUID{0x15, 0x92, 0x78, 0x6b, 0x63, 0xb0, 0xfd, 0x45, 0x86, 0x8a, 0x66, 0x8a, 0x49, 0xf0, 0x0e, 0xc6}: "TXTWrapperPei", efi.GUID{0x15, 0x98, 0x1f, 0x33, 0x94, 0x9d, 0x26, 0x4a, 0x9c, 0xd2, 0xde, 0x37, 0x7b, 0x5e, 0x9a, 0x08}: "TbtRetimerCapsule2Dxe", efi.GUID{0x15, 0xa4, 0xaa, 0x1f, 0xa9, 0xf8, 0x33, 0x4a, 0xb4, 0x34, 0xa7, 0x81, 0x1f, 0xbe, 0xc1, 0x45}: "SaveConfigMemData", efi.GUID{0x15, 0xb1, 0xc3, 0x21, 0x0b, 0x4e, 0x0c, 0x47, 0x85, 0xc7, 0xe1, 0x05, 0xa5, 0x75, 0xc9, 0x7b}: "EdkiiEmbeddedGpioPpi", efi.GUID{0x15, 0xb4, 0xdd, 0x46, 0x44, 0x52, 0xc7, 0x49, 0x93, 0x74, 0xf0, 0xe2, 0x98, 0xe7, 0xd3, 0x86}: "EdkiiHttpTlsCipherList", efi.GUID{0x15, 0xb7, 0xb5, 0xe7, 0x83, 0x11, 0x33, 0x45, 0xbe, 0x76, 0x56, 0xa6, 0xd7, 0xce, 0xb0, 0x2e}: "AmiPeiPciEnumerationPpi", efi.GUID{0x15, 0xb8, 0xe6, 0xda, 0x7d, 0x87, 0x97, 0x45, 0xa6, 0x37, 0xcf, 0xcf, 0xcc, 0xc4, 0x31, 0xed}: "PlatformStatusCodeHandlerDxe", efi.GUID{0x15, 0xbb, 0x37, 0xf7, 0x19, 0x50, 0x16, 0x4a, 0x9d, 0xd9, 0x8f, 0xd3, 0x4e, 0x43, 0x1e, 0xad}: "SmbiosDataUpdateDxeGlacier", efi.GUID{0x15, 0xbd, 0x2f, 0x0a, 0x25, 0x1c, 0x7e, 0x40, 0x89, 0x15, 0x60, 0xc5, 0x65, 0x2b, 0xc2, 0xaa}: "SystemFirmwareUpdateDxe", efi.GUID{0x15, 0xc0, 0xba, 0x91, 0x26, 0x3a, 0xff, 0x40, 0x9f, 0x3e, 0xc3, 0xf4, 0xfe, 0x9d, 0x24, 0xf9}: "SystemSmbiosAddedValueDxe", efi.GUID{0x15, 0xc3, 0x8f, 0xf0, 0x4f, 0xcc, 0x8c, 0x4d, 0xb3, 0x4c, 0xb0, 0x30, 0xc4, 0xe7, 0xb9, 0x19}: "EfiCrystalRidgeSmm", efi.GUID{0x15, 0xca, 0xe5, 0x79, 0x2d, 0x7a, 0x37, 0x4f, 0xa6, 0x3b, 0xd1, 0xc7, 0xbb, 0xca, 0x47, 0xad}: "AhciPei", efi.GUID{0x15, 0xcc, 0x0b, 0x28, 0xd7, 0x2c, 0x7c, 0x46, 0x96, 0x47, 0x1b, 0x30, 0x30, 0x7d, 0x7e, 0xd5}: "AmiFriVariable", efi.GUID{0x15, 0xd1, 0x30, 0xa0, 0xdd, 0x54, 0x7b, 0x44, 0x90, 0x64, 0xf2, 0x06, 0x88, 0x3d, 0x7c, 0xcc}: "PeiTpmInitializationDonePpiGuid", efi.GUID{0x15, 0xdd, 0x07, 0x33, 0xba, 0x23, 0x46, 0x45, 0xa0, 0x04, 0xfc, 0xbc, 0xc4, 0x7d, 0x4a, 0x49}: "SiliconPolicyPeiPreMem", efi.GUID{0x15, 0xe0, 0x8e, 0x8b, 0xb3, 0x62, 0xec, 0x40, 0xa9, 0xe5, 0x83, 0x6c, 0xbf, 0xe1, 0xf3, 0x3d}: "TouchPadDriver", efi.GUID{0x15, 0xe2, 0x3b, 0x8d, 0xf6, 0xd6, 0x64, 0x42, 0xbe, 0xa6, 0x28, 0x07, 0x3f, 0xb1, 0x3a, 0xaa}: "ChipsetSmmThunk", efi.GUID{0x15, 0xe2, 0x3b, 0x8d, 0xf6, 0xd6, 0x64, 0x42, 0xbe, 0xa6, 0x28, 0x07, 0x3f, 0xb1, 0x3a, 0xea}: "SmmThunk", efi.GUID{0x15, 0xe4, 0x78, 0xc1, 0x49, 0x6e, 0x9a, 0x46, 0xb7, 0x3d, 0xf6, 0xc5, 0xeb, 0x41, 0x01, 0xeb}: "AmdSpiRomProtectDxe", efi.GUID{0x15, 0xe7, 0x1a, 0x8d, 0x82, 0x7f, 0x9d, 0x44, 0xa2, 0x6c, 0x62, 0xac, 0x65, 0x0a, 0xf7, 0x3f}: "Int15PanelType", efi.GUID{0x15, 0xeb, 0x1d, 0x33, 0x4b, 0x45, 0xd8, 0x48, 0x9b, 0x74, 0x70, 0xd0, 0x1f, 0x3f, 0x35, 0x56}: "UefiDriverEntryPoint", efi.GUID{0x16, 0x00, 0x3a, 0x9f, 0x55, 0xae, 0x88, 0x42, 0x82, 0x9d, 0xd2, 0x2f, 0xd3, 0x44, 0xc3, 0x47}: "AmiBoardInfo", efi.GUID{0x16, 0x00, 0x3a, 0x9f, 0x55, 0xae, 0x88, 0x42, 0x82, 0x9d, 0xd5, 0x5f, 0xd3, 0xaa, 0xc3, 0x47}: "AmiBoardInfo2", efi.GUID{0x16, 0x00, 0x7f, 0xe1, 0xe6, 0xe0, 0x01, 0x4b, 0xab, 0x59, 0x79, 0x7a, 0x26, 0x99, 0x90, 0x1b}: "AaeonHiManager", efi.GUID{0x16, 0x02, 0x3f, 0x42, 0xd9, 0xfb, 0xbd, 0x4a, 0xa6, 0x3c, 0x60, 0xa4, 0x59, 0x1a, 0x37, 0xc2}: "FjIbvTraceAbstractionPpi", efi.GUID{0x16, 0x08, 0x28, 0x0b, 0xe7, 0x52, 0x51, 0x4e, 0xaa, 0x57, 0x11, 0xbd, 0x41, 0xcb, 0xef, 0xc3}: "EfiPciHotplugDevice", efi.GUID{0x16, 0x08, 0x2e, 0xdb, 0x8e, 0x71, 0x1a, 0x4b, 0x91, 0xaf, 0xf2, 0x28, 0x6f, 0xab, 0x08, 0xbf}: "FchBixbySsdt", efi.GUID{0x16, 0x09, 0x7f, 0xea, 0xc8, 0xb5, 0x3f, 0x49, 0xa0, 0x06, 0x56, 0x5c, 0xc2, 0x04, 0x10, 0x44}: "FspS3Notify", efi.GUID{0x16, 0x18, 0x1c, 0xab, 0x42, 0xd5, 0x6f, 0x4e, 0x9b, 0x1e, 0x8e, 0xcd, 0x92, 0x53, 0xe2, 0xe7}: "ArmGlobalVariablePpiGuid", efi.GUID{0x16, 0x1a, 0x07, 0xdd, 0x16, 0xcf, 0xd3, 0x4a, 0xa0, 0x1e, 0x5b, 0x15, 0x68, 0x0c, 0xdf, 0xf0}: "KEMhUuid", efi.GUID{0x16, 0x20, 0xe8, 0x9b, 0xfd, 0x23, 0xce, 0x4e, 0x82, 0x6a, 0x55, 0xa6, 0x83, 0xa2, 0x5f, 0x0c}: "SioFlexIoSmbiosDxe", efi.GUID{0x16, 0x23, 0x54, 0x8c, 0xe5, 0xa1, 0x01, 0x40, 0x89, 0xe7, 0x15, 0xed, 0xff, 0x12, 0x57, 0x7d}: "gear11", efi.GUID{0x16, 0x24, 0xa0, 0x15, 0x90, 0xdc, 0x8c, 0x4f, 0xb6, 0x87, 0x09, 0x3f, 0xfa, 0x8b, 0xb9, 0x66}: "AMIProjectDxePriori", efi.GUID{0x16, 0x24, 0xdc, 0xfc, 0xeb, 0xd7, 0x91, 0x44, 0xb1, 0x94, 0x3e, 0xff, 0x5d, 0xb3, 0x33, 0xc0}: "SVI3ManagementDxe", efi.GUID{0x16, 0x33, 0x76, 0xf7, 0x04, 0x8c, 0xd8, 0x41, 0xa8, 0x7d, 0x45, 0xb7, 0x3c, 0x13, 0xc4, 0x3c}: "BltLibSample", efi.GUID{0x16, 0x35, 0xe3, 0xce, 0xe3, 0x58, 0xdb, 0x47, 0xbb, 0x3f, 0x27, 0x58, 0xb5, 0xa7, 0x6c, 0x28}: "FirmwareVersionInfoDxe", efi.GUID{0x16, 0x36, 0xcf, 0xdd, 0x75, 0x32, 0x64, 0x41, 0x98, 0xb6, 0xfe, 0x85, 0x70, 0x7f, 0xfe, 0x7d}: "EfiVariableInfoGuid", efi.GUID{0x16, 0x3b, 0xbe, 0x66, 0x6c, 0x4e, 0xf6, 0x4b, 0xa4, 0xe8, 0xf8, 0x79, 0xb8, 0xac, 0xf1, 0x6d}: "DellSecurityAuditDisplayConfig", efi.GUID{0x16, 0x3d, 0x9e, 0xe1, 0x11, 0xbc, 0xe4, 0x11, 0x9c, 0xaa, 0xc2, 0x05, 0x1d, 0x5d, 0x46, 0xb0}: "EfiArmProcessorErrorSectionGuid", efi.GUID{0x16, 0x3e, 0x75, 0x1e, 0xef, 0xdc, 0xd0, 0x47, 0x9a, 0x38, 0x7a, 0xde, 0xcd, 0xb9, 0x83, 0xed}: "TcmLegX16FileGuid", efi.GUID{0x16, 0x41, 0x0a, 0xf7, 0xf6, 0xfd, 0xfb, 0x45, 0x93, 0xcd, 0x84, 0xcd, 0xdd, 0x73, 0xdf, 0xd4}: "EfiPeiPlatformTypeLightningRidgeExecB1Ppi", efi.GUID{0x16, 0x46, 0x33, 0x81, 0xce, 0x86, 0xc2, 0x49, 0xb6, 0xf9, 0x18, 0x04, 0xe6, 0x1c, 0x73, 0xf6}: "LenovoIgdCustomize", efi.GUID{0x16, 0x54, 0x08, 0x77, 0x37, 0xe1, 0xa0, 0x44, 0x89, 0xf3, 0x0c, 0x7d, 0xa7, 0xf2, 0xf5, 0x2a}: "OemNecTseEsaSwitch", efi.GUID{0x16, 0x5d, 0x40, 0xd1, 0xfc, 0x7a, 0x95, 0x46, 0xbb, 0x12, 0x41, 0x45, 0x9d, 0x36, 0x95, 0xa2}: "EfiNetworkStackSetupGuid", efi.GUID{0x16, 0x6d, 0xb0, 0xd5, 0xa1, 0x2e, 0xef, 0x4d, 0x98, 0xd0, 0xa0, 0x5d, 0x40, 0x72, 0x84, 0x17}: "EfiWatchdogTimerDriverProtocolGuid", efi.GUID{0x16, 0x75, 0xa2, 0xec, 0x6c, 0x30, 0x28, 0x4e, 0x8c, 0x94, 0x4e, 0x52, 0x10, 0x96, 0x69, 0x5e}: "DxeSiPolicyProtocolGuid", efi.GUID{0x16, 0x7d, 0x52, 0xa3, 0xcc, 0xe6, 0xf5, 0x42, 0xba, 0xdb, 0xbf, 0x3d, 0xe1, 0x77, 0x74, 0x2b}: "UsbCbiDxe", efi.GUID{0x16, 0x7e, 0x62, 0x7a, 0x9d, 0x67, 0x14, 0x48, 0x8f, 0x82, 0xee, 0xaf, 0x38, 0x81, 0xf0, 0x98}: "BatteryState6", efi.GUID{0x16, 0x8d, 0xa3, 0xa1, 0xd1, 0x5c, 0x09, 0x41, 0xbe, 0x88, 0xbf, 0x0d, 0xb2, 0x7a, 0x98, 0x38}: "CbsBaseDxeRPL", efi.GUID{0x16, 0x90, 0x38, 0xda, 0x1e, 0x4d, 0x14, 0x48, 0xa1, 0x3b, 0x36, 0x4f, 0x13, 0xd8, 0xde, 0x3e}: "ClientronProgramGpioPei", efi.GUID{0x16, 0x9f, 0x25, 0xff, 0xd1, 0x18, 0x98, 0x42, 0x8d, 0xd2, 0xbd, 0x87, 0xff, 0x28, 0x94, 0xa9}: "PchResetPeim", efi.GUID{0x16, 0x9f, 0xa0, 0x1e, 0x28, 0x1a, 0x5b, 0x43, 0x8e, 0x8e, 0x8a, 0xb7, 0xc1, 0xde, 0x04, 0xd3}: "FjHiiString", efi.GUID{0x16, 0xa2, 0x7f, 0xfa, 0xb5, 0x4d, 0xdd, 0xd8, 0x64, 0xd9, 0xfa, 0x8d, 0x53, 0x9a, 0x5a, 0xcd}: "PiAst2500Dxe", efi.GUID{0x16, 0xa9, 0x95, 0x0c, 0x06, 0xa0, 0xd4, 0x11, 0xbc, 0xfa, 0x00, 0x80, 0xc7, 0x3c, 0x88, 0x81}: "WinNtThunkDxe", efi.GUID{0x16, 0xaa, 0x13, 0xdf, 0xb9, 0xb7, 0xa0, 0x42, 0xa3, 0x99, 0x00, 0xee, 0x6c, 0x81, 0xa8, 0x5a}: "DxeBoardInit", efi.GUID{0x16, 0xab, 0xe1, 0xe0, 0x82, 0xc4, 0x15, 0x40, 0xae, 0x70, 0x64, 0xbd, 0xfc, 0xaa, 0x89, 0xab}: "DellBiosConnectAdvancedDownloadMgr", efi.GUID{0x16, 0xab, 0xed, 0xe0, 0x82, 0xc4, 0x15, 0x40, 0xae, 0x70, 0x64, 0xbd, 0xfc, 0xaa, 0x89, 0xab}: "DellBiosConnectDownloadMgr", efi.GUID{0x16, 0xae, 0x78, 0x55, 0xc9, 0xf1, 0x8f, 0x4e, 0xb1, 0x29, 0xba, 0x07, 0xf8, 0xfc, 0xf8, 0x4a}: "IdeSetupProtocol", efi.GUID{0x16, 0xaf, 0xf4, 0x3b, 0x7c, 0xab, 0x43, 0x4b, 0x89, 0x8d, 0xab, 0x26, 0xac, 0x5d, 0xdc, 0x6c}: "SecSMIFlash", efi.GUID{0x16, 0xb0, 0x0d, 0x4f, 0x4d, 0x30, 0x82, 0x4e, 0x85, 0x51, 0x7d, 0x2f, 0x39, 0x43, 0x6d, 0x24}: "EmulatedEepromSmm", efi.GUID{0x16, 0xb5, 0x4f, 0x9c, 0x1e, 0x3a, 0x47, 0xd8, 0xa1, 0xa1, 0x70, 0x58, 0xb6, 0x98, 0x67, 0x32}: "EfiEmuSystemConfig", efi.GUID{0x16, 0xc6, 0x9b, 0x58, 0x4f, 0xbb, 0xed, 0x47, 0x92, 0xf7, 0x93, 0x39, 0x3c, 0x69, 0x7e, 0x25}: "AmiSbSmiProtocol", efi.GUID{0x16, 0xc9, 0x91, 0x52, 0x38, 0x86, 0x96, 0x42, 0xbd, 0x84, 0x3f, 0x4a, 0xcb, 0xb2, 0xd5, 0xa3}: "AmdAgesaParameterGroupPei", efi.GUID{0x16, 0xd6, 0x47, 0x4b, 0xd6, 0xa8, 0x52, 0x45, 0x9d, 0x44, 0xcc, 0xad, 0x2e, 0x0f, 0x4c, 0xf9}: "IScsiConfigGuid", efi.GUID{0x16, 0xdd, 0xf7, 0x8a, 0x42, 0x23, 0x87, 0x49, 0x94, 0x26, 0x66, 0x04, 0xa2, 0x07, 0xe2, 0x4b}: "HddStandBy", efi.GUID{0x16, 0xdd, 0xf7, 0x8a, 0x42, 0x23, 0x87, 0x49, 0x94, 0x26, 0x66, 0x04, 0xa2, 0x07, 0xe2, 0x6a}: "PasswordSeverityDxe", efi.GUID{0x16, 0xdf, 0x38, 0xdc, 0x80, 0x82, 0xc1, 0x49, 0xb2, 0x53, 0xd7, 0xdb, 0xb3, 0x01, 0xcf, 0x71}: "SystemNUserPasswordCredentialDxe", efi.GUID{0x16, 0xdf, 0x38, 0xdc, 0x80, 0x82, 0xc1, 0x49, 0xb2, 0x53, 0xd7, 0xdb, 0xb3, 0x01, 0xcf, 0x78}: "UserCredentialPwdDxe", efi.GUID{0x16, 0xe1, 0x13, 0xe8, 0x99, 0xc0, 0x21, 0x4d, 0x9c, 0x34, 0xa5, 0x52, 0xd5, 0xe9, 0xa5, 0xd0}: "AmiPeiMrcDefault", efi.GUID{0x16, 0xe4, 0x0c, 0x15, 0x63, 0xee, 0xb6, 0x46, 0x8b, 0xa3, 0x73, 0x22, 0xbb, 0xe0, 0x46, 0x37}: "SaPlatformPolicyPpi", efi.GUID{0x16, 0xe7, 0x19, 0x7f, 0x9c, 0x41, 0x79, 0x4e, 0x8e, 0x37, 0xc2, 0xbd, 0x84, 0xeb, 0x65, 0x28}: "PeiSpiSoftStrapsPpi", efi.GUID{0x16, 0xe8, 0xf3, 0x46, 0xca, 0x66, 0x62, 0x40, 0x8a, 0x6c, 0x62, 0x3b, 0xfc, 0x90, 0xdd, 0x8e}: "FjSmbiosProducerDxe", efi.GUID{0x16, 0xeb, 0x41, 0x4b, 0xf1, 0x9e, 0xa8, 0x4c, 0x8d, 0xf2, 0x84, 0x85, 0x46, 0x7b, 0xa9, 0x77}: "KEMhDisp", efi.GUID{0x16, 0xec, 0x11, 0x4f, 0x2c, 0xe5, 0x68, 0x4c, 0xa3, 0x4d, 0xc8, 0x3f, 0x4a, 0x45, 0x3f, 0xf9}: "XnoteEspPeim", efi.GUID{0x16, 0xef, 0x17, 0x59, 0x23, 0xf7, 0xb9, 0x4b, 0xa6, 0x4b, 0xd8, 0xc5, 0x32, 0xf4, 0xd8, 0xb5}: "EfiUserCredentialClassHandprintGuid", efi.GUID{0x16, 0xf8, 0x90, 0x00, 0xa1, 0x86, 0x38, 0x46, 0x97, 0xc8, 0x4d, 0x1b, 0xd7, 0x9e, 0x7e, 0x5f}: "SmcPeiReportStatusConOut", efi.GUID{0x16, 0xfa, 0x9b, 0x11, 0x1b, 0x91, 0x1f, 0x4f, 0xb1, 0xb2, 0x69, 0xf4, 0x3b, 0x75, 0x94, 0x48}: "DellPcdUpdatePei", efi.GUID{0x16, 0xfe, 0x49, 0x4a, 0x32, 0xf4, 0x93, 0x4b, 0xa7, 0x22, 0x93, 0x24, 0x32, 0xa2, 0x0b, 0xcf}: "EFI", efi.GUID{0x17, 0x00, 0x8d, 0x27, 0x07, 0x1f, 0x5e, 0x4f, 0xa3, 0xec, 0x21, 0xd0, 0x4d, 0xcc, 0x3a, 0x6f}: "IncompatiblePciDevice", efi.GUID{0x17, 0x08, 0xdf, 0xd6, 0x8a, 0x24, 0xf1, 0x41, 0xa1, 0xd3, 0x59, 0xe5, 0x37, 0x18, 0x7d, 0x10}: "DellTcg2Smm", efi.GUID{0x17, 0x0a, 0x10, 0x71, 0xea, 0x76, 0xbd, 0x48, 0x82, 0x63, 0x1a, 0x31, 0xb2, 0x95, 0x24, 0x38}: "DellSystemPolicy3", efi.GUID{0x17, 0x0b, 0xae, 0xb5, 0x7d, 0xf0, 0xe9, 0x4c, 0x9f, 0xc1, 0x40, 0x3c, 0x40, 0xcd, 0x6b, 0xe1}: "GnrWsSmiDispatcher", efi.GUID{0x17, 0x0c, 0xf1, 0xb9, 0xa0, 0x6c, 0xb5, 0x40, 0x9b, 0x44, 0x62, 0x53, 0xcf, 0xc7, 0xd2, 0x4b}: "GdbDebugAgent", efi.GUID{0x17, 0x22, 0xf0, 0xe9, 0x93, 0x20, 0x70, 0x44, 0x8a, 0x54, 0x5c, 0x2c, 0xff, 0xe7, 0x3e, 0xcb}: "EfiSpiSmmHcProtocolGuid", efi.GUID{0x17, 0x24, 0x6a, 0x93, 0xfe, 0xd1, 0xf3, 0x4b, 0x97, 0x4a, 0xec, 0x00, 0xce, 0x20, 0xa0, 0x64}: "PeiPostStart", efi.GUID{0x17, 0x2f, 0xc4, 0xb9, 0x79, 0x81, 0x98, 0x6e, 0xb2, 0xb7, 0x21, 0x86, 0x5b, 0x1a, 0xca, 0x3e}: "FTPMDxe", efi.GUID{0x17, 0x38, 0xcb, 0xca, 0xe6, 0x81, 0x7e, 0x49, 0x87, 0xff, 0xc8, 0xfa, 0x8f, 0x24, 0xec, 0x28}: "SgACPI", efi.GUID{0x17, 0x38, 0xfe, 0xed, 0x61, 0x86, 0xb2, 0x42, 0xa3, 0xf6, 0x94, 0x8f, 0xa7, 0xae, 0xa2, 0x0b}: "DxeThunderbolt", efi.GUID{0x17, 0x3c, 0x1c, 0xc9, 0x74, 0xfc, 0xe5, 0x46, 0xbd, 0xbe, 0x6f, 0x48, 0x6a, 0x5a, 0x9f, 0x3c}: "AmiRomLayoutFfsFileGuid", efi.GUID{0x17, 0x43, 0x79, 0x5e, 0x7e, 0xa0, 0xdf, 0x45, 0x94, 0xbb, 0x1c, 0x99, 0x7d, 0x62, 0x32, 0xca}: "AmiFwRecoveryCapsule", efi.GUID{0x17, 0x47, 0xc4, 0x89, 0xe4, 0x7e, 0x7b, 0x48, 0x8f, 0x5c, 0x8e, 0x60, 0x95, 0x56, 0xa9, 0x0f}: "VideoInitDoneSent", efi.GUID{0x17, 0x53, 0x33, 0x8b, 0x90, 0xb4, 0x75, 0x4c, 0x93, 0xdf, 0xc6, 0x82, 0x01, 0x34, 0x67, 0x58}: "FjSetupControlDxe", efi.GUID{0x17, 0x59, 0x16, 0x77, 0x0b, 0xc0, 0x4b, 0x43, 0xba, 0xdc, 0xa8, 0xfb, 0xff, 0x43, 0x7e, 0x7d}: "BeepExampleDxe", efi.GUID{0x17, 0x5a, 0xab, 0x74, 0xd7, 0x82, 0x2b, 0x47, 0xb2, 0xcc, 0x22, 0xcb, 0x82, 0x58, 0x44, 0xc4}: "FjDeviceInfoBaseDriver", efi.GUID{0x17, 0x65, 0x9a, 0xc1, 0xe4, 0x3f, 0xd8, 0x49, 0x94, 0xb6, 0xc4, 0xd7, 0x73, 0x50, 0xaa, 0x44}: "FlashUtilityDxe", efi.GUID{0x17, 0x69, 0x8c, 0x73, 0xf0, 0x71, 0x45, 0x4d, 0xab, 0x68, 0x91, 0x74, 0x41, 0x36, 0xae, 0xea}: "AppleIpAgent", efi.GUID{0x17, 0x73, 0xe1, 0x79, 0xbb, 0x1c, 0x25, 0x4a, 0x98, 0x84, 0x91, 0xe0, 0x41, 0xc0, 0x5c, 0x2e}: "DellSmmMfgBootListPolicyProtocol", efi.GUID{0x17, 0x7a, 0xab, 0x54, 0x08, 0xad, 0x86, 0x4f, 0x83, 0xc2, 0x4c, 0xf3, 0x98, 0xeb, 0xc0, 0xad}: "AsusPostErrDxe", efi.GUID{0x17, 0x7d, 0xd7, 0x2b, 0x71, 0x37, 0x74, 0x49, 0x86, 0x44, 0xf9, 0x9c, 0xf5, 0xb2, 0x66, 0xa7}: "IntelGigabitLanPolicyProtocol", efi.GUID{0x17, 0x7d, 0xd7, 0x2b, 0x71, 0x37, 0x74, 0x49, 0x86, 0x44, 0xf9, 0x9c, 0xf5, 0xb2, 0x66, 0xa8}: "Intel_10gLanPolicyProtocol", efi.GUID{0x17, 0x80, 0xa1, 0x50, 0xad, 0x37, 0x43, 0x87, 0xbc, 0xf2, 0xdf, 0x1a, 0x8f, 0xf1, 0x2f, 0xab}: "EmuReset", efi.GUID{0x17, 0x84, 0x26, 0x2b, 0xd4, 0xcf, 0x29, 0x4c, 0x85, 0xfc, 0x49, 0x59, 0x30, 0x0e, 0x49, 0x69}: "BcmCvUsbSmall", efi.GUID{0x17, 0x86, 0x9d, 0xca, 0x52, 0xd6, 0x3b, 0x40, 0xb6, 0xc5, 0xba, 0x47, 0x57, 0x01, 0x16, 0xad}: "TxtPei", efi.GUID{0x17, 0x92, 0xc9, 0x6e, 0xbb, 0x69, 0xd6, 0x4a, 0x9b, 0x4e, 0x8f, 0x4a, 0xb9, 0xaf, 0x72, 0xb9}: "ResetTesting", efi.GUID{0x17, 0x9a, 0x3f, 0x4e, 0xa9, 0xac, 0xf3, 0x42, 0xa8, 0xcc, 0xe7, 0x34, 0x0f, 0xb6, 0xdb, 0x6e}: "MemTopology", efi.GUID{0x17, 0x9c, 0x50, 0x02, 0x0b, 0xdd, 0x15, 0x49, 0x81, 0xf6, 0x1d, 0xe4, 0xba, 0x95, 0x4b, 0x14}: "FanTableSmm", efi.GUID{0x17, 0xa1, 0x8f, 0x0d, 0x39, 0x12, 0xd6, 0x4c, 0xad, 0x0a, 0x33, 0x16, 0x63, 0x82, 0x4b, 0x13}: "DellOnboardNicPei", efi.GUID{0x17, 0xa5, 0x67, 0xae, 0x4c, 0xeb, 0x22, 0x4d, 0x97, 0x51, 0xd6, 0x64, 0x70, 0xd9, 0xb5, 0xdf}: "OemDeviceDisablePolicy", efi.GUID{0x17, 0xa7, 0xa1, 0x29, 0xe9, 0x36, 0xe0, 0x49, 0xb3, 0x81, 0xea, 0x3b, 0x5f, 0xf7, 0x09, 0x42}: "LenovoSystemStatusCodePort80Rt", efi.GUID{0x17, 0xb1, 0xc2, 0xda, 0xfb, 0xb5, 0x64, 0x49, 0xa3, 0x12, 0x0d, 0xcc, 0x77, 0x06, 0x1b, 0x9b}: "Font", efi.GUID{0x17, 0xb2, 0xe1, 0x74, 0xe5, 0x7c, 0x2d, 0x43, 0x8c, 0x1b, 0x0c, 0x21, 0x6f, 0xad, 0xa7, 0xdf}: "ApobStxKrkPei", efi.GUID{0x17, 0xb8, 0xf8, 0x9f, 0x4c, 0xd1, 0x43, 0x4a, 0x93, 0x14, 0x12, 0x3d, 0xa3, 0x96, 0x0a, 0xd6}: "AmdMemAm4ZpPei", efi.GUID{0x17, 0xb9, 0xf8, 0x9f, 0x4c, 0xd1, 0x43, 0x4a, 0x93, 0x14, 0x12, 0x3d, 0xa3, 0x96, 0x0a, 0xd6}: "AmdMemAm4Dxe", efi.GUID{0x17, 0xba, 0x87, 0x5f, 0x7d, 0x95, 0x3d, 0x43, 0x9e, 0x15, 0xc0, 0xe7, 0xc8, 0x79, 0x88, 0x99}: "AmiDigitalSignatureProtocolGuid", efi.GUID{0x17, 0xc0, 0xce, 0xb5, 0xcb, 0x74, 0x10, 0x4e, 0xba, 0xc3, 0x92, 0x4a, 0x4c, 0xc6, 0x29, 0xc8}: "AmiTseOemPortingVar7", efi.GUID{0x17, 0xc2, 0x37, 0x11, 0xbc, 0xb5, 0x9a, 0x4e, 0xb3, 0x28, 0x1e, 0x7b, 0xcd, 0x53, 0x05, 0x20}: "DellThermalDebugSmmDriver", efi.GUID{0x17, 0xc7, 0x3d, 0x2a, 0x36, 0x6c, 0x55, 0x4f, 0x9d, 0x2e, 0xca, 0x5a, 0x73, 0xd6, 0x2f, 0x17}: "DellTokenHandlerProtocol", efi.GUID{0x17, 0xca, 0x26, 0xa2, 0x07, 0x79, 0x77, 0x4e, 0x88, 0x07, 0x5d, 0x48, 0x78, 0xa3, 0x8f, 0xa7}: "HpDiagnosticsPorting", efi.GUID{0x17, 0xca, 0xd8, 0xe0, 0x76, 0x42, 0x86, 0x43, 0xbb, 0x79, 0x48, 0xcb, 0x81, 0x3d, 0x3c, 0x4f}: "EmbeddedTokenSpaceGuid", efi.GUID{0x17, 0xce, 0x8e, 0x1f, 0xa5, 0x87, 0x96, 0x41, 0xb2, 0x65, 0x4f, 0x01, 0xfb, 0xf9, 0xaa, 0x2d}: "FjGabiLogoHandlerDxeBin", efi.GUID{0x17, 0xd7, 0xc9, 0x3a, 0x20, 0xa9, 0xb2, 0x4b, 0x8e, 0xc8, 0xf2, 0x35, 0x09, 0x4c, 0x7e, 0x50}: "CpuInfoSetupUtilityDxe", efi.GUID{0x17, 0xdc, 0x47, 0x7d, 0x43, 0xf4, 0xa1, 0x42, 0xbc, 0xc3, 0x54, 0xfd, 0x06, 0xa9, 0x58, 0x21}: "SDPngDecoder", efi.GUID{0x17, 0xdd, 0xeb, 0x1c, 0x25, 0x13, 0xbb, 0x42, 0x8a, 0x7a, 0x22, 0x85, 0x7c, 0xf1, 0x0a, 0x5e}: "AmdFabricRsDxe", efi.GUID{0x17, 0xea, 0xb3, 0x60, 0x28, 0xeb, 0x3c, 0x46, 0xaa, 0xed, 0x66, 0x00, 0x0e, 0x83, 0xbd, 0xb6}: "OEMBOARDDxe", efi.GUID{0x17, 0xed, 0x43, 0x52, 0x42, 0x67, 0x4c, 0x48, 0x89, 0x22, 0xf2, 0xfd, 0xb1, 0xdc, 0x27, 0x25}: "WmiSensorHandler", efi.GUID{0x17, 0xf4, 0x7a, 0x4e, 0x00, 0xc2, 0x0a, 0x40, 0x9d, 0x18, 0x86, 0x5a, 0xda, 0xd3, 0x08, 0x96}: "AmiDddtPresentFlagHob", efi.GUID{0x17, 0xf7, 0x01, 0x79, 0x24, 0xfe, 0x8b, 0x4c, 0x87, 0xad, 0xc0, 0x5f, 0x35, 0x66, 0x07, 0x47}: "OemIp3Smi", efi.GUID{0x17, 0xf9, 0xc8, 0xdc, 0x0b, 0x08, 0x0b, 0x40, 0xa3, 0x1c, 0x03, 0x6f, 0x13, 0x73, 0xf0, 0x48}: "CertificateStorageDxe", efi.GUID{0x18, 0x11, 0x7c, 0xa5, 0xfc, 0x6a, 0xd2, 0x46, 0xba, 0xe6, 0x92, 0x92, 0x62, 0xd3, 0xeb, 0x1e}: "EfiDxeSystemBoardProtocol", efi.GUID{0x18, 0x24, 0xa2, 0x6b, 0x04, 0x47, 0x07, 0x45, 0xad, 0xc4, 0x36, 0x4b, 0x86, 0x67, 0xe5, 0x86}: "LoadSecureWipeImage", efi.GUID{0x18, 0x27, 0x4b, 0x6a, 0xf3, 0xca, 0x51, 0x4d, 0xbd, 0x91, 0x9e, 0xb1, 0xd6, 0x22, 0x9f, 0x57}: "PasswordEncodeProtocol", efi.GUID{0x18, 0x47, 0x73, 0x94, 0xbc, 0x0b, 0xfb, 0x47, 0x96, 0xa5, 0xee, 0x7a, 0x5a, 0xe6, 0xa2, 0xad}: "Dhcp4Dxe", efi.GUID{0x18, 0x48, 0x2e, 0x72, 0x4e, 0x34, 0x21, 0x44, 0x88, 0xcd, 0x49, 0x1c, 0xb9, 0x08, 0xc1, 0x42}: "DellSetupCfgPolicies", efi.GUID{0x18, 0x4a, 0x76, 0x2c, 0x55, 0xaa, 0x37, 0x4a, 0x87, 0x71, 0xff, 0x62, 0x79, 0xa0, 0x8d, 0xf7}: "ReflashECAfterBiosFlash", efi.GUID{0x18, 0x4a, 0x8c, 0xbc, 0x84, 0xe7, 0xa7, 0x42, 0x99, 0x3f, 0x88, 0xbc, 0xe1, 0x32, 0x47, 0xc5}: "SupplicantDriver", efi.GUID{0x18, 0x4e, 0x92, 0x95, 0x1c, 0x77, 0xa9, 0x42, 0xb8, 0x85, 0xbe, 0xdd, 0xb6, 0x0d, 0x2d, 0x38}: "LenovoSmmKeyboardConfigProtocol", efi.GUID{0x18, 0x54, 0x40, 0x3e, 0x8c, 0x0d, 0x1a, 0x4f, 0xb0, 0x55, 0xbe, 0xf9, 0x08, 0x41, 0x46, 0x8d}: "TcoWdtHob", efi.GUID{0x18, 0x56, 0xec, 0x77, 0x01, 0x21, 0x12, 0x41, 0x86, 0xb1, 0x2f, 0x75, 0x2a, 0xe1, 0x0f, 0x1a}: "EcSecureFlashDxe", efi.GUID{0x18, 0x60, 0xb1, 0xaa, 0x9d, 0x67, 0x61, 0x44, 0xba, 0x20, 0xe7, 0x0c, 0xf7, 0x86, 0x6a, 0x9b}: "EfiSystemTypeFru", efi.GUID{0x18, 0x64, 0xd5, 0x2b, 0x1e, 0x46, 0x5a, 0x54, 0x8e, 0x24, 0xa0, 0xbc, 0x15, 0xd4, 0x05, 0x25}: "AsfUi", efi.GUID{0x18, 0x67, 0x8a, 0x54, 0xc0, 0x6b, 0xa9, 0x45, 0xb4, 0xe9, 0x6f, 0x63, 0xb0, 0xe1, 0xdd, 0x43}: "RtkUndiDxeClientron", efi.GUID{0x18, 0x72, 0xf3, 0x13, 0xdf, 0x70, 0xdd, 0x45, 0x88, 0x83, 0xd4, 0xe6, 0xf5, 0xbe, 0x42, 0x55}: "NvidiaGpuAcpitables", efi.GUID{0x18, 0x76, 0x35, 0x54, 0x06, 0xe1, 0x6c, 0x40, 0xa5, 0xce, 0xad, 0x7a, 0x1b, 0xa3, 0xcc, 0xcd}: "ExternalUsbPortConfigDxe", efi.GUID{0x18, 0x7d, 0x62, 0xa2, 0x0b, 0x01, 0xb8, 0x45, 0xad, 0x38, 0xab, 0x01, 0x69, 0x1f, 0xc8, 0x50}: "AmdHspConfigPei", efi.GUID{0x18, 0x88, 0x53, 0x4a, 0xe0, 0x5a, 0xb2, 0x4e, 0xb2, 0xeb, 0x48, 0x8b, 0x23, 0x65, 0x70, 0x22}: "FvMainCompact", efi.GUID{0x18, 0x97, 0x21, 0x8a, 0xf5, 0x4e, 0x61, 0x47, 0x91, 0xc8, 0xc0, 0xf0, 0x4b, 0xda, 0x9e, 0x56}: "EfiDhcp4ProtocolGuid", efi.GUID{0x18, 0xa8, 0x62, 0x2f, 0x72, 0x4a, 0x40, 0xcd, 0x90, 0xb9, 0xff, 0x00, 0xda, 0xab, 0xee, 0x7b}: "EmuThunk", efi.GUID{0x18, 0xa8, 0xe1, 0x70, 0xe1, 0x0b, 0x49, 0x44, 0xbf, 0xd4, 0x9e, 0xf6, 0x8c, 0x7f, 0x02, 0xa8}: "ReFlash", efi.GUID{0x18, 0xaf, 0x79, 0x65, 0xa2, 0x92, 0x5d, 0x41, 0x81, 0xd8, 0x8b, 0x8f, 0xd8, 0x67, 0xb4, 0x2e}: "AmdSocSp5BrhPei", efi.GUID{0x18, 0xb0, 0x2f, 0x23, 0x08, 0xf3, 0x81, 0x40, 0xb2, 0x80, 0x81, 0x2e, 0x61, 0x64, 0x12, 0x3b}: "PasswordMgrDxe", efi.GUID{0x18, 0xb4, 0x6e, 0x29, 0xc8, 0xc4, 0x05, 0x4e, 0xab, 0x59, 0x39, 0xe8, 0xaf, 0x56, 0xf0, 0x0a}: "EdkiiSmmExitBootServicesProtocolGuid", efi.GUID{0x18, 0xb6, 0xe5, 0x77, 0x12, 0x26, 0x28, 0x4c, 0xbc, 0xdf, 0xa2, 0xb1, 0x4d, 0x8a, 0x3e, 0xfe}: "IFlashDxe", efi.GUID{0x18, 0xba, 0x59, 0x08, 0xd7, 0x7d, 0xd7, 0x4e, 0xa8, 0x8e, 0x10, 0x9c, 0x63, 0x91, 0x7b, 0xdd}: "EfiPlatformMemtestProtocol", efi.GUID{0x18, 0xbb, 0x7d, 0xc8, 0xdd, 0x9a, 0xd5, 0x41, 0x80, 0xd7, 0x4c, 0x8d, 0x79, 0x5a, 0xd9, 0x42}: "DellSmmEventSmm", efi.GUID{0x18, 0xbf, 0x4b, 0x0d, 0xcc, 0xc2, 0x23, 0x4c, 0xbd, 0x63, 0xbf, 0xda, 0xd4, 0xc7, 0x10, 0xd0}: "Tcg2Acpi", efi.GUID{0x18, 0xc3, 0xae, 0x2a, 0x4b, 0xe8, 0x0b, 0x4e, 0xbf, 0x41, 0xac, 0x65, 0xf1, 0x7e, 0x9e, 0x2f}: "AmiTseOemPortingVar14", efi.GUID{0x18, 0xc6, 0x27, 0x2d, 0xcd, 0x7d, 0xf5, 0x41, 0xbb, 0x10, 0x21, 0x16, 0x6b, 0xe7, 0xe1, 0x43}: "BiosAc", efi.GUID{0x18, 0xca, 0x6b, 0x05, 0x19, 0x2f, 0xee, 0x41, 0x84, 0xea, 0x83, 0x74, 0x6c, 0xb5, 0x06, 0x9a}: "CrystalRidgeSMM", efi.GUID{0x18, 0xcb, 0xa8, 0x31, 0x76, 0x5c, 0x68, 0x46, 0x83, 0x9d, 0x9f, 0xe8, 0x04, 0xb4, 0x19, 0xbb}: "CrbLastFfsPei", efi.GUID{0x18, 0xd7, 0x08, 0x7d, 0xec, 0x48, 0x52, 0x4c, 0x91, 0x9d, 0x40, 0x7e, 0x5b, 0x1a, 0x94, 0xe4}: "IntelGigabitLan", efi.GUID{0x18, 0xd8, 0x9b, 0x99, 0xf7, 0x7d, 0x9a, 0x4a, 0xa5, 0x02, 0x9b, 0x75, 0x03, 0x3e, 0x6a, 0x0f}: "EsrtDxe", efi.GUID{0x18, 0xd9, 0xc6, 0xa0, 0xee, 0x8d, 0xbb, 0x41, 0x9d, 0x92, 0x67, 0x53, 0xa5, 0x72, 0xb6, 0x52}: "EfiTpmStateInitHub", efi.GUID{0x18, 0xda, 0xbe, 0x27, 0x2b, 0xae, 0xc2, 0x43, 0xaf, 0x6b, 0x74, 0x95, 0x24, 0x41, 0xde, 0x28}: "MonitorKeyDxe", efi.GUID{0x18, 0xdd, 0x5f, 0x21, 0x50, 0xbd, 0xeb, 0x4f, 0x89, 0x0b, 0x58, 0xca, 0x0b, 0x47, 0x39, 0xe9}: "EfiSioProtocolGuid", efi.GUID{0x18, 0xdf, 0x0c, 0xb7, 0xe2, 0xcf, 0x3c, 0x45, 0xaf, 0x07, 0x31, 0xca, 0xc6, 0x34, 0x5a, 0x16}: "HpCommonSmm", efi.GUID{0x18, 0xe1, 0x17, 0x82, 0x58, 0x10, 0x9b, 0x4c, 0x93, 0x6e, 0x5b, 0x30, 0x27, 0xc2, 0x39, 0x4b}: "PchLpcDxe", efi.GUID{0x18, 0xe5, 0x41, 0x68, 0x6f, 0x1d, 0x75, 0x4b, 0xb4, 0xd1, 0xcf, 0x19, 0x0d, 0xc5, 0x6b, 0x01}: "PegaHotkeyHook", efi.GUID{0x18, 0xe7, 0xa5, 0x30, 0xca, 0x39, 0x1c, 0x44, 0xbe, 0xd3, 0xf4, 0xa3, 0xa9, 0x31, 0x45, 0x8d}: "FchProm21SmmInit", efi.GUID{0x18, 0xe8, 0xae, 0xb1, 0x59, 0xb9, 0x7b, 0x48, 0xa7, 0x95, 0x16, 0xc2, 0xa5, 0x4c, 0xb3, 0x6e}: "DellPeiMain", efi.GUID{0x18, 0xed, 0xd2, 0x3b, 0x72, 0x9d, 0x08, 0x42, 0x9d, 0x8a, 0x4b, 0xe2, 0x74, 0xe6, 0xed, 0x69}: "CapsuleUpdateApp", efi.GUID{0x18, 0xf2, 0x17, 0xcc, 0x92, 0xe4, 0xa2, 0x45, 0xa1, 0xa4, 0x16, 0xdb, 0xb1, 0xbb, 0x11, 0xc5}: "AmdNbioDxe", efi.GUID{0x18, 0xf8, 0x41, 0x64, 0x62, 0x63, 0x44, 0x4e, 0xb5, 0x70, 0x7d, 0xba, 0x31, 0xdd, 0x24, 0x53}: "EfiVariableWriteArchProtocolGuid", efi.GUID{0x18, 0xf8, 0x9c, 0x34, 0xba, 0xc0, 0x43, 0x4c, 0x92, 0x9a, 0xc8, 0xa1, 0xb1, 0xb3, 0xd2, 0x55}: "InternalTpm2DeviceInterfaceGuid", efi.GUID{0x18, 0xfa, 0x1f, 0x44, 0x14, 0x87, 0x1e, 0x42, 0x8c, 0x95, 0x58, 0x70, 0x80, 0x79, 0x6f, 0xee}: "AmiSmmDebuServiceProtocolGuid", efi.GUID{0x18, 0xfd, 0x9a, 0x89, 0xe8, 0x75, 0x8b, 0x40, 0xa4, 0x1a, 0x6e, 0x2e, 0x7e, 0xcd, 0xf4, 0x54}: "EfiExtendedSalMtcServicesProtocolGuid", efi.GUID{0x18, 0xfe, 0x98, 0x62, 0xef, 0xd5, 0xb7, 0x42, 0xbb, 0x0c, 0x29, 0x53, 0x28, 0x3f, 0x57, 0x04}: "SleepSmi", efi.GUID{0x18, 0xfe, 0x98, 0x62, 0xef, 0xd5, 0xb7, 0x42, 0xbb, 0x0c, 0x29, 0x53, 0x28, 0x56, 0x98, 0x42}: "ResetSmi", efi.GUID{0x19, 0x00, 0x38, 0x7f, 0x51, 0xb9, 0xbd, 0x4b, 0xbe, 0xdf, 0x8d, 0xd7, 0xa6, 0x21, 0xd7, 0x73}: "OemNvDriverTypeDxe", efi.GUID{0x19, 0x01, 0x0d, 0x49, 0x48, 0x44, 0x0d, 0x44, 0x8f, 0x5c, 0xf5, 0x8f, 0xb5, 0x3e, 0xe0, 0x57}: "PolicyInitDxe", efi.GUID{0x19, 0x04, 0xb7, 0x56, 0x03, 0x71, 0x0e, 0x4d, 0x83, 0xf4, 0xf3, 0x54, 0x6b, 0xd2, 0x1e, 0x40}: "EzFileExplorerLite", efi.GUID{0x19, 0x0d, 0xf4, 0x1c, 0xad, 0xee, 0x73, 0x4c, 0x93, 0xdb, 0xbb, 0xb8, 0xb6, 0xac, 0xf9, 0x29}: "SystemNUserUserManagerDxe", efi.GUID{0x19, 0x14, 0xd6, 0x3b, 0xb8, 0x4b, 0x21, 0x49, 0x92, 0xc8, 0xba, 0x84, 0xa7, 0xa3, 0x59, 0x1f}: "ResetDateTimeDxe", efi.GUID{0x19, 0x1e, 0xd8, 0x2a, 0x9b, 0x2e, 0xaa, 0x44, 0xb4, 0xac, 0x9e, 0x21, 0x65, 0x32, 0x2e, 0x1c}: "EfiUsbLegacyStack", efi.GUID{0x19, 0x27, 0x0c, 0x96, 0xde, 0x4f, 0x4a, 0x7e, 0x44, 0xc6, 0x26, 0xa6, 0xb2, 0xef, 0xe9, 0xb2}: "SmmNvmExpressCsm", efi.GUID{0x19, 0x28, 0x78, 0x21, 0xa0, 0xfd, 0xde, 0x4a, 0xbd, 0x36, 0xc9, 0x5f, 0x07, 0x9f, 0x05, 0x7d}: "AsusBackupAccess", efi.GUID{0x19, 0x33, 0x4c, 0x14, 0x75, 0x5f, 0x9f, 0x4a, 0xa9, 0x39, 0x88, 0x2a, 0x7a, 0xb2, 0x99, 0x79}: "FjM2WlanEnableDisableDxe", efi.GUID{0x19, 0x37, 0x53, 0xd1, 0xb1, 0x20, 0x4d, 0x40, 0xb9, 0x70, 0xce, 0x13, 0x14, 0x8d, 0xc0, 0xcd}: "PxeDriverRtkLan", efi.GUID{0x19, 0x37, 0xc7, 0xf6, 0x4c, 0xf3, 0x9c, 0x47, 0xb3, 0x2f, 0x27, 0x7f, 0xcb, 0xbc, 0xfe, 0x4f}: "DelBootOption", efi.GUID{0x19, 0x3e, 0x89, 0xaa, 0x41, 0xa6, 0x19, 0x48, 0xad, 0x23, 0x01, 0x1b, 0x7c, 0x24, 0x25, 0x0d}: "IT8728SioAcBackSmm", efi.GUID{0x19, 0x4c, 0x5e, 0x65, 0x7b, 0x9d, 0x91, 0x44, 0xad, 0x10, 0xa4, 0x9f, 0xf3, 0x55, 0xc0, 0x0a}: "FastBootOptionBds", efi.GUID{0x19, 0x4f, 0x79, 0x85, 0xbb, 0x3b, 0x92, 0x43, 0xbb, 0x3c, 0x06, 0xe3, 0xeb, 0x45, 0xe3, 0x87}: "D01HookAcpiProtocol", efi.GUID{0x19, 0x4f, 0xc1, 0x4c, 0x26, 0xc6, 0xb6, 0x4a, 0x9d, 0xea, 0xca, 0x6c, 0x01, 0xfd, 0x10, 0xcd}: "AsusHeader", efi.GUID{0x19, 0x59, 0xf7, 0x40, 0xdb, 0x0c, 0xb2, 0x4d, 0xa0, 0xfb, 0x68, 0x81, 0xce, 0x7e, 0x97, 0x70}: "UsbMouseAbsolutePointerDxe", efi.GUID{0x19, 0x60, 0x44, 0x15, 0x70, 0x91, 0x6a, 0x43, 0xa9, 0x81, 0xcc, 0x75, 0x21, 0xe9, 0xd7, 0xf9}: "Usb4PlatformPei", efi.GUID{0x19, 0x61, 0x0f, 0x82, 0x09, 0x9f, 0x95, 0x4c, 0x85, 0xba, 0x8a, 0xeb, 0xc2, 0x1d, 0x4e, 0x89}: "FjPowerButtonStatePei", efi.GUID{0x19, 0x6c, 0xe0, 0xfa, 0x1c, 0x0f, 0xd3, 0x47, 0x83, 0x2d, 0xe3, 0xb9, 0xc2, 0x5a, 0xd0, 0x20}: "aDefaultPei", efi.GUID{0x19, 0x73, 0xec, 0x35, 0x3b, 0x05, 0xb8, 0x45, 0x85, 0x23, 0x86, 0x66, 0xa6, 0x62, 0x12, 0x2c}: "LogoDxe", efi.GUID{0x19, 0x7a, 0x65, 0xe2, 0xd8, 0x7c, 0x89, 0x53, 0x98, 0xbc, 0x6e, 0x20, 0x1b, 0xbf, 0x4f, 0x70}: "MonacoFont2x", efi.GUID{0x19, 0x86, 0xac, 0x71, 0x0c, 0xb7, 0x74, 0x49, 0x93, 0x07, 0xf6, 0x46, 0xe7, 0x3c, 0xcc, 0xfa}: "PlainPasswordTransfer", efi.GUID{0x19, 0x8c, 0xeb, 0x8b, 0xec, 0x3f, 0xab, 0x4f, 0xa3, 0x78, 0xc9, 0x03, 0xe8, 0x90, 0xfc, 0xae}: "AmiEventLogsFormset", efi.GUID{0x19, 0x8f, 0xb1, 0xaa, 0x14, 0xfe, 0x66, 0x46, 0x86, 0x04, 0x87, 0xff, 0x6d, 0x66, 0x2c, 0x9a}: "EfiSpiSmmNorFlashProtocolGuid", efi.GUID{0x19, 0x8f, 0xb4, 0x8e, 0x92, 0xcc, 0x31, 0x40, 0x8d, 0x3d, 0xee, 0x47, 0x3c, 0xcc, 0x87, 0xeb}: "SystemPrivateKey", efi.GUID{0x19, 0x91, 0x04, 0xfb, 0x72, 0xac, 0x9f, 0x45, 0x86, 0x5a, 0x64, 0x1d, 0xc1, 0x3c, 0x93, 0x1d}: "OemLOGO", efi.GUID{0x19, 0x93, 0x10, 0x0c, 0x49, 0xc1, 0x0e, 0x45, 0xa3, 0xe3, 0xb9, 0xba, 0xdd, 0x9d, 0xc3, 0xa4}: "EfiPeiMmConfigurationPpi", efi.GUID{0x19, 0xa0, 0x02, 0x4e, 0xb1, 0x85, 0xc9, 0x4e, 0x9a, 0x38, 0xb7, 0xdf, 0x05, 0x08, 0x39, 0x7c}: "OemMFGDonePcd", efi.GUID{0x19, 0xab, 0xc3, 0x95, 0xc2, 0x59, 0x18, 0x44, 0xa3, 0x5f, 0xca, 0xb8, 0x72, 0x4f, 0x80, 0x28}: "USRATraceLibNull", efi.GUID{0x19, 0xad, 0xfb, 0x79, 0xe1, 0xf9, 0x08, 0x4d, 0xb7, 0xbc, 0x35, 0x84, 0x53, 0x19, 0x5e, 0x41}: "AmiTpmRollbackSmmProtocolGuid", efi.GUID{0x19, 0xb5, 0xc7, 0x9f, 0x22, 0x35, 0x71, 0x4a, 0xbe, 0xb6, 0xf9, 0x9f, 0x5b, 0x2d, 0xbf, 0x92}: "VgaConfigurationReadyToBoot", efi.GUID{0x19, 0xbb, 0x59, 0x98, 0x7c, 0x40, 0x8b, 0x4f, 0xbc, 0xe1, 0xf8, 0xda, 0x65, 0x65, 0xf4, 0xa5}: "AndroidBootImgProtocol", efi.GUID{0x19, 0xbb, 0xf3, 0xf3, 0x20, 0x64, 0xc9, 0x45, 0x88, 0x19, 0xb6, 0x06, 0xa7, 0xf2, 0x0e, 0x50}: "DellPStateControlProtocol", efi.GUID{0x19, 0xc7, 0x62, 0xf9, 0x1e, 0x6c, 0x75, 0x4a, 0x86, 0x29, 0x38, 0x15, 0x76, 0x22, 0xa9, 0x06}: "AddressTranslationDxe", efi.GUID{0x19, 0xca, 0xbd, 0x7c, 0x76, 0x47, 0x97, 0xa9, 0x7c, 0xa7, 0x56, 0xd5, 0x34, 0x3f, 0x29, 0x04}: "EarlyOneTimeFlags", efi.GUID{0x19, 0xcc, 0x4c, 0xe7, 0xf9, 0xbf, 0x2e, 0x44, 0x9d, 0xa5, 0x6a, 0x86, 0x62, 0x62, 0xf1, 0x79}: "DellCoreServiceHWIDNvs", efi.GUID{0x19, 0xce, 0xfb, 0x0f, 0x4c, 0x32, 0x90, 0x46, 0xa0, 0x09, 0x98, 0xc6, 0xae, 0x2e, 0xb1, 0x86}: "RecoveryOnFatUsbDiskGuid", efi.GUID{0x19, 0xd6, 0xd1, 0x1d, 0xb8, 0xf9, 0x3e, 0x46, 0x86, 0x81, 0xd1, 0xdc, 0x7c, 0x07, 0xb7, 0x2c}: "EdkiiNonDiscoverableSdhciDeviceGuid", efi.GUID{0x19, 0xdd, 0x29, 0x3a, 0x84, 0x2c, 0x70, 0x4a, 0x9a, 0x01, 0xfb, 0xdd, 0xaf, 0xfb, 0x64, 0x61}: "DellMemoryS4", efi.GUID{0x19, 0xdd, 0xd8, 0x29, 0x36, 0xc8, 0xd9, 0x45, 0x8f, 0x05, 0x32, 0x2c, 0x27, 0x12, 0x9c, 0x2a}: "SecureVariable", efi.GUID{0x19, 0xe1, 0xc6, 0x7e, 0xd8, 0x1f, 0x84, 0x4c, 0x8e, 0x57, 0xff, 0x55, 0xd1, 0x66, 0xc9, 0x1e}: "PlutonSecurityProcessorV2", efi.GUID{0x19, 0xe4, 0x94, 0x5b, 0x95, 0xc7, 0x4d, 0x41, 0xa0, 0xd4, 0xb8, 0x0a, 0x87, 0x7b, 0xe5, 0xfe}: "FspSecCoreT", efi.GUID{0x19, 0xf0, 0xb7, 0xe0, 0x2d, 0xe8, 0x32, 0x44, 0x98, 0x31, 0xbc, 0x2c, 0xc4, 0x86, 0x3f, 0x1f}: "FchHuangshanSmmInit", efi.GUID{0x1a, 0x04, 0xa5, 0xb7, 0xba, 0x78, 0xe3, 0x49, 0xb7, 0x3b, 0x54, 0xc7, 0x57, 0x81, 0x1f, 0xb6}: "IdeBusPei", efi.GUID{0x1a, 0x0e, 0xaf, 0x18, 0xb4, 0xcd, 0xc2, 0x48, 0xb1, 0x11, 0x14, 0xcb, 0x07, 0x04, 0x17, 0xbf}: "SyncCBSconfigPei", efi.GUID{0x1a, 0x17, 0x10, 0xcf, 0xf0, 0x57, 0x0a, 0x47, 0x90, 0xe0, 0x62, 0xd9, 0x5f, 0x21, 0x3f, 0x9b}: "HpBeepDeviceDefaults", efi.GUID{0x1a, 0x18, 0xee, 0x1c, 0x5c, 0xdf, 0x91, 0x43, 0xbc, 0xa8, 0xcd, 0xe5, 0xa5, 0xa1, 0xa0, 0xba}: "OemHooks", efi.GUID{0x1a, 0x21, 0x15, 0x29, 0xf7, 0x3c, 0x4d, 0x4b, 0xb4, 0x48, 0x02, 0xdd, 0xbd, 0x2b, 0xf8, 0x7c}: "CustomLogoWmiDriver", efi.GUID{0x1a, 0x2b, 0x92, 0xa3, 0xe4, 0x35, 0x32, 0x41, 0x9c, 0xed, 0x91, 0xd3, 0x8d, 0x71, 0x71, 0xd8}: "FpgaSocketPkgList", efi.GUID{0x1a, 0x33, 0xba, 0xf2, 0x85, 0x89, 0xdb, 0x11, 0xa4, 0x06, 0x00, 0x40, 0xd0, 0x2b, 0x18, 0x35}: "EmuVirtualDisksGuid", efi.GUID{0x1a, 0x34, 0x79, 0x98, 0x7e, 0x19, 0xf6, 0x4c, 0x9b, 0xda, 0x48, 0x39, 0x2f, 0x85, 0x04, 0x5f}: "LEMProductTYpe", efi.GUID{0x1a, 0x44, 0x33, 0xa8, 0xa0, 0x0c, 0x32, 0x40, 0x85, 0x9a, 0x3c, 0xff, 0x7b, 0x66, 0x46, 0xa7}: "DellImageServerDxe", efi.GUID{0x1a, 0x49, 0xd7, 0x80, 0xd9, 0xf7, 0x9d, 0x47, 0xa8, 0xf7, 0x1b, 0x39, 0x3b, 0x02, 0xed, 0x66}: "FastBootRuntime", efi.GUID{0x1a, 0x4e, 0x98, 0x05, 0xbb, 0xd8, 0x8a, 0x5d, 0xa8, 0xe6, 0x90, 0xe6, 0xfb, 0x2a, 0xb7, 0xda}: "AlertUI", efi.GUID{0x1a, 0x50, 0x4c, 0x1c, 0xdc, 0x8c, 0x1f, 0x4d, 0x86, 0x39, 0x27, 0xe9, 0x04, 0x94, 0x94, 0xc1}: "HpCommonAcpiArea", efi.GUID{0x1a, 0x55, 0x63, 0x33, 0x17, 0xb7, 0x18, 0x49, 0x93, 0xb9, 0xeb, 0xe6, 0xaf, 0xa5, 0x75, 0x86}: "FjGabiFlashCommonMeRegionCtrlDxe", efi.GUID{0x1a, 0x57, 0x3a, 0x29, 0x08, 0x33, 0x3f, 0x44, 0x9f, 0x36, 0x39, 0xdc, 0xfd, 0xbf, 0x3b, 0x83}: "DellEcIoDxe", efi.GUID{0x1a, 0x5d, 0xca, 0x31, 0x11, 0xd5, 0x31, 0x49, 0xb7, 0x82, 0xae, 0x6b, 0x2b, 0x17, 0x8c, 0xd7}: "EfiIfrFrameworkGuid", efi.GUID{0x1a, 0x68, 0xc9, 0x58, 0x56, 0x69, 0xfa, 0x41, 0xb0, 0xaa, 0xa3, 0x24, 0x6d, 0x88, 0x0e, 0x9a}: "DellWmiSmm", efi.GUID{0x1a, 0x79, 0x95, 0xc0, 0x01, 0x30, 0xb2, 0x47, 0x80, 0xc9, 0xea, 0xc7, 0x31, 0x9f, 0x2f, 0xa4}: "EfiFirmwarePerformanceGuid", efi.GUID{0x1a, 0x7d, 0xad, 0xbd, 0x48, 0x4c, 0x75, 0x4c, 0xb5, 0xbc, 0xd0, 0x02, 0xd1, 0x7f, 0x63, 0x97}: "AhciRecovery", efi.GUID{0x1a, 0x7e, 0xb2, 0x60, 0x5e, 0xd6, 0xb0, 0x4d, 0xb2, 0xbb, 0xc1, 0x6f, 0xa7, 0x1e, 0x44, 0xab}: "PdmWindowSpinGuid", efi.GUID{0x1a, 0x86, 0xfe, 0x71, 0x50, 0x54, 0xb6, 0x48, 0xbf, 0xb0, 0xb9, 0x35, 0x22, 0x61, 0x6f, 0x99}: "TPS65950", efi.GUID{0x1a, 0x8a, 0x3b, 0x82, 0x01, 0x6d, 0xa6, 0x45, 0x80, 0x98, 0x20, 0xdd, 0xd1, 0xc7, 0xb3, 0xd0}: "PlatformLtDxeLibNull", efi.GUID{0x1a, 0xa5, 0x6d, 0x78, 0xa5, 0x86, 0xc5, 0x47, 0xbf, 0x8d, 0x04, 0x87, 0x7b, 0xe4, 0x72, 0x60}: "AmiPciExpressGen3LibNull", efi.GUID{0x1a, 0xab, 0x63, 0xd4, 0x4a, 0xf0, 0xf0, 0x4e, 0xaa, 0xa2, 0xcc, 0x3d, 0x03, 0xb2, 0x5a, 0xf0}: "DxeSioHwmIo", efi.GUID{0x1a, 0xb1, 0x4d, 0xdb, 0x5c, 0x0e, 0xb5, 0x40, 0x8e, 0x46, 0x17, 0xd0, 0x44, 0x86, 0xa2, 0x1b}: "LenovoMx25L64XflashPartSmm", efi.GUID{0x1a, 0xb7, 0xcd, 0x11, 0x09, 0xaa, 0x1b, 0x4b, 0xbc, 0x58, 0xf9, 0x98, 0x38, 0xa4, 0x98, 0x0d}: "fTPMTisPei", efi.GUID{0x1a, 0xba, 0xf1, 0x2e, 0x36, 0xc8, 0x50, 0x4a, 0xbf, 0x89, 0x52, 0x5f, 0xf2, 0x9f, 0xf7, 0x87}: "Mxm30Pei", efi.GUID{0x1a, 0xbc, 0x08, 0x9a, 0x61, 0x75, 0x68, 0x4a, 0x88, 0x75, 0xc0, 0x97, 0x7c, 0x91, 0x57, 0x3c}: "NetBootUI", efi.GUID{0x1a, 0xc1, 0x8d, 0xe6, 0xf4, 0xa5, 0xc3, 0x4a, 0xaa, 0x2e, 0x29, 0xe2, 0x98, 0xbf, 0xf6, 0x45}: "BCP", efi.GUID{0x1a, 0xc4, 0x10, 0xf3, 0xf2, 0xf0, 0xe6, 0x49, 0x8a, 0xf5, 0x4b, 0x2f, 0x6e, 0xb4, 0x95, 0xb5}: "LenovoSetupStartupDxeGui", efi.GUID{0x1a, 0xca, 0xe8, 0x39, 0x69, 0x7a, 0x73, 0x4a, 0x83, 0x4a, 0xd0, 0x63, 0x81, 0x93, 0x32, 0x86}: "UsbPei", efi.GUID{0x1a, 0xd0, 0x8c, 0x2e, 0xb7, 0xbd, 0xb4, 0x40, 0x83, 0x76, 0xe7, 0xc2, 0x6e, 0xac, 0x21, 0xff}: "PciPlatform", efi.GUID{0x1a, 0xd1, 0xca, 0x7c, 0xa4, 0xef, 0x82, 0x4f, 0xbd, 0xe7, 0x7d, 0x07, 0xff, 0x90, 0xb2, 0x80}: "BootOrderWmi", efi.GUID{0x1a, 0xd2, 0x65, 0x5f, 0x67, 0x88, 0xd3, 0x45, 0xa4, 0x1a, 0x52, 0x6f, 0x9f, 0xe2, 0xc5, 0x98}: "SystemImageDecoderDxe", efi.GUID{0x1a, 0xd3, 0x3f, 0x11, 0x8b, 0xbe, 0x8b, 0x41, 0xb0, 0x34, 0x7e, 0xaf, 0xe5, 0xc6, 0x0c, 0x99}: "EsaInterfacesForTseProtocolGuid", efi.GUID{0x1a, 0xd7, 0xde, 0x96, 0xe7, 0xb9, 0xad, 0x4e, 0x96, 0x2c, 0x01, 0x69, 0x3c, 0xed, 0x2a, 0x64}: "I2CPeiInitGuid", efi.GUID{0x1a, 0xda, 0x97, 0x32, 0x1b, 0x16, 0x35, 0x4d, 0xbc, 0xac, 0xd1, 0x59, 0x7b, 0x6b, 0xdc, 0x01}: "CbsBasePeiPHX", efi.GUID{0x1a, 0xe3, 0xe1, 0x15, 0x9d, 0x9f, 0x84, 0x4c, 0x82, 0xfb, 0x1a, 0x70, 0x7f, 0xc0, 0xf6, 0x3b}: "RSTeSataEfi", efi.GUID{0x1a, 0xe5, 0x5b, 0x23, 0xd5, 0xd4, 0xef, 0x49, 0x9c, 0x46, 0xd3, 0x13, 0x05, 0x6b, 0x74, 0x01}: "UsbPolicySmm", efi.GUID{0x1a, 0xe6, 0x4f, 0x65, 0xda, 0x2e, 0x49, 0x47, 0xa7, 0x6a, 0x56, 0xed, 0x7a, 0xde, 0x1c, 0xbe}: "CmosPei", efi.GUID{0x1a, 0xe8, 0xf6, 0x61, 0xba, 0x7b, 0x7f, 0x4a, 0xb9, 0xf2, 0xb0, 0xa3, 0xb5, 0xd4, 0x61, 0xc5}: "DellFileExplorerDxe", efi.GUID{0x1a, 0xe9, 0xb3, 0xe0, 0x7f, 0x4a, 0xaf, 0x46, 0xad, 0x7e, 0xd0, 0x5f, 0x62, 0xa2, 0xea, 0x9a}: "SystemOnScreenKeyboardDxe", efi.GUID{0x1a, 0xf6, 0x97, 0xff, 0x15, 0xa2, 0xd3, 0x46, 0x80, 0x08, 0x21, 0xcb, 0x43, 0x56, 0x04, 0x2f}: "Wcn7851Launcher", efi.GUID{0x1b, 0x04, 0xa5, 0xb7, 0xba, 0x78, 0xe3, 0x48, 0xb6, 0x3b, 0x44, 0xc7, 0x57, 0x81, 0x13, 0xb6}: "FloppyPeimPei", efi.GUID{0x1b, 0x09, 0x5e, 0xb1, 0x0e, 0xc9, 0x0d, 0x4f, 0x81, 0xe4, 0xbb, 0x32, 0xa2, 0xda, 0x68, 0xfa}: "OemCloudBootInterfaceDxe", efi.GUID{0x1b, 0x0a, 0xde, 0xfe, 0xa2, 0xbc, 0x9f, 0x4a, 0xbb, 0x2b, 0xd9, 0xfd, 0x7d, 0xec, 0x2e, 0x9f}: "StatusCodeRuntimeDxe", efi.GUID{0x1b, 0x13, 0xe9, 0xbf, 0x64, 0x0f, 0x0f, 0x4d, 0x94, 0xa4, 0x0d, 0x83, 0x0d, 0xb9, 0x28, 0xa3}: "MeSmmProtocolThunk", efi.GUID{0x1b, 0x18, 0xb1, 0xb5, 0xee, 0xac, 0xc7, 0x4c, 0x86, 0x6f, 0x9d, 0x8d, 0xfd, 0x27, 0xb3, 0x99}: "LenovoEventLogVariableStoreDxe", efi.GUID{0x1b, 0x19, 0x0e, 0x95, 0x24, 0x85, 0x51, 0x4f, 0x80, 0xa1, 0x5c, 0x4f, 0x1b, 0x03, 0xf3, 0x5c}: "PeiSha256HashPpiGuid", efi.GUID{0x1b, 0x19, 0x68, 0x5a, 0x97, 0x9b, 0x52, 0x47, 0x99, 0x46, 0xe3, 0x6a, 0x5d, 0xa9, 0x42, 0xb1}: "EfiPrimaryStandardErrorDevice", efi.GUID{0x1b, 0x19, 0xd3, 0xc5, 0xd5, 0x27, 0x73, 0x48, 0x8d, 0xf2, 0x62, 0x81, 0x36, 0x99, 0x1a, 0x21}: "UserIdentifyManager", efi.GUID{0x1b, 0x23, 0x29, 0x00, 0xef, 0x72, 0xa5, 0x4f, 0xbd, 0x37, 0x70, 0x18, 0xa0, 0x46, 0xfb, 0x0d}: "LenovoMultipleKeyboardService", efi.GUID{0x1b, 0x2d, 0xbe, 0xeb, 0x47, 0x16, 0xda, 0x4b, 0xab, 0x9a, 0x78, 0x63, 0xe3, 0x96, 0xd4, 0x1a}: "EfiActiveBiosProtocolGuid", efi.GUID{0x1b, 0x30, 0x2d, 0x2b, 0x3d, 0xea, 0x37, 0x42, 0x8b, 0x52, 0x93, 0x35, 0xa7, 0xa0, 0x30, 0xba}: "IioCfgUpdateDxeCLX64L", efi.GUID{0x1b, 0x3b, 0x91, 0x05, 0x0c, 0xdb, 0x79, 0x46, 0x94, 0xb1, 0xf8, 0xaa, 0x09, 0xb4, 0xa9, 0x71}: "FjPcieCardReaderRTS5250", efi.GUID{0x1b, 0x3b, 0xf4, 0xd6, 0x21, 0x0f, 0x2b, 0x46, 0xb8, 0xb7, 0xa0, 0x33, 0xc3, 0xeb, 0x42, 0x61}: "BaseMemoryLibOptPei", efi.GUID{0x1b, 0x3d, 0x7a, 0xf8, 0xc3, 0xb0, 0xb6, 0x44, 0xb4, 0x70, 0xf4, 0xf4, 0xc0, 0x9c, 0x11, 0x0c}: "AsusQuickVgaPei", efi.GUID{0x1b, 0x4b, 0xe7, 0x34, 0x94, 0x87, 0x02, 0x44, 0xaa, 0x43, 0x99, 0xb5, 0x24, 0x9b, 0x1c, 0xfd}: "DellSbSmm", efi.GUID{0x1b, 0x4e, 0x49, 0xd6, 0x6f, 0xe0, 0xb5, 0x4a, 0xb6, 0x4d, 0x48, 0xb2, 0x5a, 0xa9, 0xeb, 0x33}: "SmmCpuPlatformHookLibNull", efi.GUID{0x1b, 0x5a, 0xfb, 0x34, 0xcd, 0xe3, 0x93, 0x48, 0x94, 0x03, 0x0a, 0x39, 0xba, 0x62, 0xfd, 0xa0}: "SvSmmSupport", efi.GUID{0x1b, 0x62, 0x5d, 0x43, 0x41, 0x3c, 0x36, 0x45, 0xb0, 0xc6, 0xaf, 0x67, 0x05, 0x9f, 0xc4, 0xbe}: "CrashLogDxe", efi.GUID{0x1b, 0x65, 0xbd, 0x3f, 0x0b, 0x5f, 0xaf, 0x47, 0xbe, 0x25, 0xae, 0x35, 0xc6, 0x3c, 0x8d, 0x5c}: "AmiCpmWrapperPei", efi.GUID{0x1b, 0x65, 0xbd, 0x3f, 0x0b, 0x5f, 0xaf, 0x47, 0xbe, 0x25, 0xae, 0x35, 0xc6, 0x3c, 0x8d, 0x5d}: "AmiCpmWrapperPei", efi.GUID{0x1b, 0x66, 0x98, 0x13, 0xb6, 0x1e, 0x7b, 0x41, 0x84, 0x8e, 0xcc, 0xc3, 0x88, 0x52, 0x60, 0x99}: "IntelUndiDxe", efi.GUID{0x1b, 0x67, 0xce, 0x7d, 0x23, 0xc2, 0x6a, 0x44, 0xa7, 0x05, 0xed, 0x63, 0x7a, 0xaf, 0x67, 0x71}: "EdkiiCryptoPpi", efi.GUID{0x1b, 0x6a, 0xa8, 0xd4, 0x39, 0xf9, 0x4d, 0x4d, 0xbf, 0x7f, 0xce, 0x40, 0x45, 0x72, 0xb2, 0x82}: "BootOrderAdjustDxe", efi.GUID{0x1b, 0x71, 0xdb, 0x83, 0xac, 0xad, 0xb3, 0x46, 0xbb, 0xff, 0x5e, 0x6e, 0x28, 0xcf, 0xfb, 0xd2}: "DellWlanSmm", efi.GUID{0x1b, 0x7b, 0xe6, 0xef, 0x77, 0xbc, 0xb9, 0x4b, 0xa5, 0x70, 0x7f, 0x8d, 0xd8, 0x58, 0x50, 0x6d}: "ICE30plusPEI", efi.GUID{0x1b, 0x7f, 0x5c, 0xfe, 0x56, 0xe2, 0xa8, 0x47, 0x8f, 0x1e, 0x94, 0x78, 0x10, 0x7c, 0x78, 0x75}: "AmtInitDxe", efi.GUID{0x1b, 0x8b, 0x29, 0x71, 0xaa, 0x26, 0xd8, 0x44, 0x87, 0xcd, 0x91, 0xa0, 0x87, 0xc3, 0x48, 0x1a}: "SmbiosDataUpdateDxeLightningRidgeEXECB3", efi.GUID{0x1b, 0x92, 0x35, 0xb8, 0x04, 0xfd, 0x2e, 0x41, 0x97, 0x48, 0x98, 0x89, 0x88, 0x1b, 0x75, 0xb2}: "AmiI2cHid", efi.GUID{0x1b, 0x93, 0x2e, 0xec, 0x81, 0x32, 0xa5, 0x48, 0x81, 0x07, 0xdf, 0x8a, 0x8b, 0xed, 0x3c, 0x5d}: "PlatformGOPPolicyGuid", efi.GUID{0x1b, 0x93, 0x99, 0xa7, 0xb0, 0xfd, 0xb2, 0x40, 0x8a, 0x25, 0xd2, 0x6b, 0x58, 0x88, 0x53, 0x79}: "AmdSocAm4BrPei", efi.GUID{0x1b, 0x94, 0x21, 0xf9, 0x8e, 0x70, 0xcd, 0x4b, 0x98, 0xfa, 0x52, 0x5e, 0x4a, 0x9d, 0xcd, 0x55}: "RtkUsbUndiDriver", efi.GUID{0x1b, 0x98, 0x24, 0xe7, 0x75, 0x28, 0x8a, 0x4c, 0x9f, 0x9a, 0x02, 0xae, 0xc1, 0x96, 0x50, 0x16}: "AsusModuleToIntSmmWrapper", efi.GUID{0x1b, 0xa0, 0xb4, 0xfb, 0x7e, 0x94, 0x82, 0x4d, 0xb2, 0x7d, 0x1e, 0x20, 0x7c, 0x07, 0x00, 0x53}: "BaseCacheAsRamLibNull", efi.GUID{0x1b, 0xa9, 0x4b, 0xb1, 0xd9, 0xcc, 0xf9, 0x4c, 0x8f, 0xf3, 0xbd, 0x15, 0x9d, 0xde, 0x76, 0x0c}: "FjScrtyBootService", efi.GUID{0x1b, 0xa9, 0xf1, 0xc9, 0xb2, 0x3a, 0xea, 0x4a, 0x8b, 0x5a, 0x37, 0x48, 0x76, 0xb9, 0x41, 0xa3}: "SDEmmcInfoSetupUtilityDxe", efi.GUID{0x1b, 0xab, 0xb8, 0x32, 0xe3, 0x07, 0x42, 0x4b, 0x8e, 0xe7, 0x02, 0x90, 0x2a, 0x29, 0x3b, 0xcc}: "AmdFchWheaDxe", efi.GUID{0x1b, 0xac, 0x14, 0xad, 0x15, 0xda, 0xe5, 0x4c, 0xa7, 0xe2, 0x1f, 0x54, 0x37, 0xed, 0xb4, 0xb3}: "SmbiosMemory", efi.GUID{0x1b, 0xac, 0x4a, 0x2d, 0xa5, 0x91, 0xd5, 0x4c, 0x9b, 0x5c, 0xb4, 0x0f, 0x5d, 0x28, 0x51, 0xa1}: "SpiFlashInfo", efi.GUID{0x1b, 0xb1, 0xa5, 0xdb, 0x86, 0x86, 0xdd, 0x43, 0x88, 0x50, 0x85, 0x4f, 0xd3, 0xd4, 0xb2, 0x44}: "AsusFirstBootSetting", efi.GUID{0x1b, 0xbe, 0x0f, 0x5f, 0x73, 0x16, 0xd2, 0x4f, 0x9b, 0xdd, 0x31, 0xd7, 0x90, 0x9d, 0x51, 0x61}: "AmdNbioBaseRnPei", efi.GUID{0x1b, 0xc5, 0x58, 0xdc, 0x67, 0xec, 0xb7, 0x4d, 0xb8, 0xa7, 0x88, 0x18, 0x58, 0xf5, 0x59, 0x13}: "IntelLanUefiDriverI225", efi.GUID{0x1b, 0xc7, 0xa4, 0x53, 0x81, 0xb5, 0x70, 0x41, 0x91, 0xb3, 0x8d, 0xb8, 0x7a, 0x4b, 0x5c, 0x46}: "EfiFvbExtensionProtocol", efi.GUID{0x1b, 0xca, 0x5d, 0xa8, 0x8f, 0x19, 0x14, 0x4e, 0xa6, 0x73, 0x87, 0x42, 0x64, 0x68, 0x7e, 0x85}: "DataSink", efi.GUID{0x1b, 0xd3, 0xd3, 0x0a, 0xd8, 0xb3, 0x06, 0x45, 0xae, 0x71, 0x2e, 0xf1, 0x10, 0x06, 0xd9, 0x0f}: "UefiAcpiBoardInfoGuid", efi.GUID{0x1b, 0xd6, 0x4e, 0xfb, 0x22, 0x20, 0x8a, 0x42, 0x87, 0x15, 0x9d, 0x8f, 0x02, 0x9d, 0xda, 0x4c}: "RtkUndiDxe", efi.GUID{0x1b, 0xd7, 0xe1, 0x9f, 0x91, 0x3f, 0x03, 0x41, 0xae, 0x62, 0x3f, 0xee, 0xca, 0x4d, 0x2b, 0xaa}: "SpiFlash", efi.GUID{0x1b, 0xe0, 0x41, 0xdb, 0xb0, 0xa8, 0x15, 0x4e, 0xb6, 0x19, 0x44, 0x63, 0x97, 0x5b, 0x35, 0x7b}: "SetupDataChecksumErr", efi.GUID{0x1b, 0xe2, 0xe9, 0xe7, 0x10, 0xaa, 0xf8, 0x46, 0x9e, 0x48, 0x93, 0x0d, 0x2d, 0x88, 0xf6, 0x6b}: "FjSysmanAmphionSmmFjFext", efi.GUID{0x1b, 0xe6, 0x4f, 0x65, 0xdb, 0x2e, 0x40, 0x47, 0xa7, 0x6b, 0x56, 0xed, 0x7a, 0xde, 0x1c, 0xbf}: "PowerLossFun", efi.GUID{0x1b, 0xff, 0x35, 0xf9, 0xf0, 0xaf, 0xf3, 0x40, 0xb7, 0x7a, 0xb7, 0x95, 0xa7, 0xa7, 0xd7, 0x14}: "DellPhysicalPresenceSmm", efi.GUID{0x1c, 0x1a, 0x1c, 0xbd, 0xec, 0x04, 0xed, 0x47, 0x8a, 0xb7, 0xd1, 0x93, 0x19, 0xc6, 0x41, 0x38}: "FastBoot", efi.GUID{0x1c, 0x1d, 0xea, 0x9b, 0x30, 0xd1, 0xff, 0x42, 0xbb, 0xfb, 0x1b, 0x9d, 0xa3, 0x93, 0x3d, 0xdd}: "SecureBioXhci", efi.GUID{0x1c, 0x21, 0xc9, 0xa9, 0x14, 0x7b, 0xa9, 0x4d, 0xa1, 0x4f, 0x3a, 0xf7, 0x45, 0x1c, 0xc0, 0xf8}: "BiosUpdateExtendedPlatformPolicySmm", efi.GUID{0x1c, 0x21, 0xcb, 0xa4, 0x43, 0x3e, 0x75, 0x47, 0xbf, 0x1a, 0x8c, 0xec, 0xe3, 0x6e, 0x79, 0x3b}: "AaeonLanByPassPkg", efi.GUID{0x1c, 0x27, 0x80, 0x24, 0xc6, 0x09, 0x36, 0x4f, 0xad, 0x75, 0x5e, 0x13, 0x90, 0xbd, 0x99, 0x29}: "QNCSmmDispatcher", efi.GUID{0x1c, 0x28, 0x59, 0xb8, 0xfa, 0x16, 0xa8, 0x45, 0x92, 0x01, 0x1c, 0x38, 0x30, 0xa9, 0x73, 0xbd}: "GecUpdateSMI", efi.GUID{0x1c, 0x2b, 0xfb, 0x28, 0xfa, 0x90, 0x2e, 0x4d, 0xbb, 0x97, 0xb1, 0x04, 0xa9, 0x6d, 0xe9, 0x7d}: "AmdDisableDashDxe", efi.GUID{0x1c, 0x2d, 0xc2, 0x2d, 0x4d, 0x2b, 0x04, 0x4d, 0x9a, 0xd2, 0xbc, 0x1d, 0x8f, 0xde, 0x20, 0xff}: "IsaAcpiDxe", efi.GUID{0x1c, 0x34, 0x33, 0x6c, 0x4c, 0xba, 0xb4, 0x4d, 0x9b, 0xd6, 0x63, 0x56, 0x97, 0x1d, 0xec, 0xef}: "FjDisableManufacturingMode", efi.GUID{0x1c, 0x36, 0x1e, 0x2d, 0x3f, 0x7b, 0x15, 0x4d, 0x8b, 0x1f, 0x66, 0xe5, 0x51, 0xfa, 0xbd, 0xc7}: "SaLateInitSmm", efi.GUID{0x1c, 0x3c, 0xc7, 0x87, 0x29, 0x15, 0xf5, 0x4e, 0xa3, 0xfa, 0x08, 0xd7, 0x3e, 0xf8, 0xc8, 0x27}: "DellSmmSioDash", efi.GUID{0x1c, 0x3e, 0x93, 0xae, 0x47, 0xcc, 0x38, 0x4e, 0x8f, 0x0e, 0xe2, 0xf6, 0x1d, 0x26, 0x05, 0xdf}: "EfiPeiSmmCommunicationPpiGuid", efi.GUID{0x1c, 0x41, 0xc9, 0xe4, 0x68, 0x12, 0x4c, 0x40, 0x9e, 0x90, 0x25, 0x73, 0xef, 0x04, 0xf4, 0x3f}: "StaticSkuDataDxeNeonCityEPECB", efi.GUID{0x1c, 0x4b, 0x6a, 0x38, 0xe4, 0xdd, 0xc5, 0x4f, 0x9b, 0x03, 0x9c, 0x92, 0x8f, 0xcc, 0x6f, 0xd2}: "gear1", efi.GUID{0x1c, 0x52, 0x6a, 0x2e, 0x97, 0xf6, 0x2d, 0x40, 0x97, 0x74, 0x98, 0xb2, 0xb7, 0xe1, 0x40, 0xf3}: "PlatformType", efi.GUID{0x1c, 0x5c, 0x75, 0x93, 0x15, 0xbe, 0x5a, 0x4d, 0xbf, 0x95, 0x5f, 0x97, 0x53, 0x85, 0x3c, 0xb6}: "FileSelectUIDxe", efi.GUID{0x1c, 0x63, 0xa4, 0x41, 0x02, 0xbb, 0xaf, 0x45, 0xbe, 0xdd, 0xae, 0xdc, 0x56, 0xe5, 0x3e, 0x79}: "SuperMPei", efi.GUID{0x1c, 0x65, 0x8d, 0xc4, 0x0e, 0x9d, 0xe7, 0x4c, 0xad, 0x39, 0xed, 0xd1, 0xab, 0x83, 0x6b, 0x30}: "AmiTseAfterFirstBootOptionGuid", efi.GUID{0x1c, 0x68, 0x6a, 0x21, 0x51, 0x9e, 0x5f, 0x41, 0x9a, 0xda, 0xcb, 0x9f, 0xbc, 0xd0, 0x5f, 0x5d}: "DellFlashIoDxe", efi.GUID{0x1c, 0x68, 0x97, 0xda, 0xe3, 0xa9, 0x09, 0x42, 0xa9, 0xd5, 0xf9, 0xe9, 0x81, 0x52, 0xf3, 0x9a}: "ClearChassisIntrusion", efi.GUID{0x1c, 0x6b, 0x86, 0x75, 0x5f, 0x3f, 0x01, 0x4c, 0x92, 0x9d, 0xce, 0xa4, 0x0f, 0x1f, 0x67, 0x10}: "FjIbvSfuPolicyAbstractionSmmProtocol", efi.GUID{0x1c, 0x6c, 0x9b, 0x98, 0xe1, 0x6f, 0x4e, 0xd6, 0xa2, 0x92, 0x13, 0x13, 0xc4, 0x10, 0xf0, 0xf2}: "Ip4Config", efi.GUID{0x1c, 0x71, 0xad, 0x1b, 0x51, 0xd4, 0x41, 0x42, 0xb1, 0xf3, 0x85, 0x37, 0x81, 0x2e, 0x0c, 0x70}: "EfiMeBiosExtensionSetup", efi.GUID{0x1c, 0x72, 0x6e, 0x84, 0x36, 0xe0, 0x2f, 0x4f, 0x90, 0xa6, 0x80, 0x94, 0x91, 0x7f, 0xb0, 0x77}: "NvmePciHcPei", efi.GUID{0x1c, 0x78, 0xcc, 0x6f, 0xa7, 0x27, 0x8e, 0x4a, 0xb4, 0xd1, 0xe7, 0x0f, 0x23, 0x5f, 0x4f, 0xcf}: "PlatformPciDxe", efi.GUID{0x1c, 0x82, 0xab, 0x87, 0xb8, 0x79, 0xf6, 0x4e, 0xa9, 0x13, 0x21, 0xd2, 0x20, 0x63, 0xf5, 0x5f}: "AcpiPlatform", efi.GUID{0x1c, 0x82, 0xaf, 0x51, 0xaf, 0xad, 0xbc, 0x4a, 0x9f, 0xbf, 0x26, 0xcd, 0x52, 0x45, 0xba, 0x22}: "DellSmmGpioControlProtocol", efi.GUID{0x1c, 0x86, 0x5f, 0xbc, 0xed, 0x86, 0x7e, 0x41, 0xbb, 0x7b, 0x6c, 0x02, 0x6b, 0xcd, 0x75, 0x5b}: "EfiFrbCodeProtocol", efi.GUID{0x1c, 0x86, 0x5f, 0xbc, 0xed, 0x86, 0x7e, 0x41, 0xbb, 0x7b, 0x6c, 0x02, 0x6b, 0xdc, 0x65, 0x23}: "EfiSelStatusCodeProtocol", efi.GUID{0x1c, 0x8b, 0x7a, 0x66, 0x97, 0x9c, 0x2a, 0x4b, 0xae, 0x7e, 0x56, 0x87, 0x72, 0xfe, 0x45, 0xf3}: "BaseResetSystemLibNull", efi.GUID{0x1c, 0x95, 0x3d, 0xe3, 0xe8, 0xeb, 0x4c, 0x47, 0xaf, 0xaa, 0x21, 0xac, 0x65, 0xaa, 0x76, 0x8f}: "LEMBootModeFlagDxe", efi.GUID{0x1c, 0xa0, 0x7e, 0x01, 0x88, 0x49, 0xd9, 0x4c, 0x8a, 0x6c, 0x34, 0x80, 0xe3, 0x86, 0xa3, 0x25}: "LegacyStr", efi.GUID{0x1c, 0xa1, 0x84, 0x42, 0xc1, 0x18, 0x10, 0x4c, 0xb2, 0xd9, 0x58, 0x6a, 0x01, 0x60, 0xa5, 0x23}: "EfiPeiPlatformTypeLightningRidgeExecB4Ppi", efi.GUID{0x1c, 0xa6, 0xe4, 0x79, 0x73, 0xed, 0x12, 0x43, 0x94, 0xfe, 0xe3, 0xe7, 0x56, 0x33, 0x62, 0xa9}: "PrintDxe", efi.GUID{0x1c, 0xab, 0x69, 0x61, 0x5f, 0xb0, 0x9c, 0x4d, 0xaf, 0xea, 0x19, 0x29, 0x11, 0xe4, 0x1c, 0xe2}: "AmdPspSmmV2", efi.GUID{0x1c, 0xb2, 0x38, 0x73, 0xff, 0xb7, 0x81, 0x4b, 0x9b, 0x50, 0x0f, 0x2a, 0x71, 0x62, 0x6c, 0x83}: "TouchPadDriver", efi.GUID{0x1c, 0xbd, 0x95, 0xb2, 0xe3, 0x63, 0xe3, 0x48, 0xb2, 0x65, 0xf7, 0xdf, 0xa2, 0x07, 0x01, 0x23}: "AmiMultiLanSupportProtocolGuid", efi.GUID{0x1c, 0xc1, 0x6e, 0x99, 0x97, 0x53, 0x73, 0x4e, 0xb5, 0x8f, 0x82, 0x7e, 0x52, 0x90, 0x6d, 0xef}: "EfiVectorHandoffTableGuid", efi.GUID{0x1c, 0xc1, 0xff, 0x87, 0xab, 0xd0, 0x12, 0x4d, 0xa7, 0x79, 0x0a, 0x54, 0x74, 0x05, 0x07, 0x59}: "OemProtocol", efi.GUID{0x1c, 0xc5, 0x35, 0x72, 0x80, 0x0c, 0xab, 0x4c, 0x87, 0xac, 0x3b, 0x08, 0x4a, 0x63, 0x04, 0xb1}: "OvmfPlatformConfigGuid", efi.GUID{0x1c, 0xc5, 0x93, 0x54, 0xc8, 0x79, 0x2e, 0x4c, 0x97, 0x58, 0x1d, 0xb5, 0xb5, 0x2b, 0x13, 0xb7}: "DellSmmNbDockProtocol", efi.GUID{0x1c, 0xce, 0x97, 0x66, 0xb6, 0xd9, 0x35, 0x45, 0xb6, 0x61, 0x8b, 0x73, 0x1b, 0xff, 0x04, 0x08}: "SmbiosType2", efi.GUID{0x1c, 0xe6, 0x4f, 0x65, 0xdc, 0x2e, 0x41, 0x47, 0xa7, 0x6c, 0x56, 0xed, 0x7a, 0xde, 0x1c, 0xb0}: "RTCSingleWakeUpInPei", efi.GUID{0x1c, 0xe6, 0x98, 0xd3, 0x9c, 0x2a, 0x6d, 0x4a, 0xb2, 0x65, 0x47, 0x69, 0x6c, 0xf9, 0xe4, 0x42}: "ASUSFS2", efi.GUID{0x1c, 0xee, 0x7c, 0x09, 0xf0, 0xa7, 0xcb, 0x40, 0xab, 0x0d, 0xf0, 0x77, 0x4a, 0xe9, 0x0e, 0x2b}: "FjSetupPower", efi.GUID{0x1c, 0xf2, 0x58, 0x50, 0x34, 0xbc, 0xd4, 0x11, 0xbd, 0x18, 0x00, 0x80, 0xc7, 0x3c, 0x88, 0x81}: "Fat2", efi.GUID{0x1c, 0xf2, 0xba, 0x4b, 0xad, 0x98, 0x1e, 0x42, 0xb5, 0x3c, 0x9e, 0xc2, 0xe8, 0xa8, 0x7a, 0x29}: "AmdPlatformRasRsPei", efi.GUID{0x1c, 0xf7, 0xa0, 0x6e, 0x4a, 0x61, 0x7e, 0x43, 0x8f, 0x49, 0x24, 0x3a, 0xd4, 0xe8, 0x32, 0x68}: "Emul6064TrapProtocolGuid", efi.GUID{0x1c, 0xf8, 0x05, 0x5a, 0x65, 0xc4, 0x6f, 0x4c, 0x92, 0x46, 0xbf, 0xcc, 0x37, 0x53, 0x4b, 0x88}: "BatteryInfo", efi.GUID{0x1c, 0xfa, 0xa3, 0xca, 0xc4, 0x76, 0xce, 0x44, 0xbe, 0xc0, 0x3e, 0x6d, 0x84, 0x7a, 0xf8, 0xd4}: "EfiSmiServices", efi.GUID{0x1d, 0x06, 0x00, 0xf1, 0x6e, 0xa2, 0x90, 0x47, 0x8b, 0xe3, 0xd4, 0x1f, 0x36, 0x4d, 0x85, 0xa9}: "WmiSetupUnderOsSmm", efi.GUID{0x1d, 0x10, 0x85, 0xfb, 0x22, 0xf4, 0x8c, 0x4c, 0x82, 0xc4, 0xef, 0x4d, 0xcd, 0x05, 0xe1, 0xbf}: "SmcSmBios", efi.GUID{0x1d, 0x12, 0xbe, 0xfd, 0xb4, 0x3e, 0x95, 0x4f, 0xa2, 0x94, 0xb3, 0x79, 0x4d, 0x17, 0x7f, 0xeb}: "DellECZPODD", efi.GUID{0x1d, 0x17, 0x7f, 0x72, 0xc0, 0x99, 0xf7, 0x42, 0x8d, 0x1a, 0xa6, 0x13, 0x90, 0xaf, 0x5b, 0xb1}: "AbsoluteDxe", efi.GUID{0x1d, 0x3a, 0x3f, 0xd0, 0x8e, 0x08, 0xc8, 0x46, 0xa9, 0xfb, 0x82, 0x09, 0x77, 0x0f, 0x2c, 0xe2}: "ChipsetPlatformLibServicesDxe", efi.GUID{0x1d, 0x3e, 0xe9, 0x2f, 0x04, 0x1d, 0x8f, 0x43, 0xa0, 0xf9, 0xa8, 0x4d, 0x78, 0x1a, 0x7c, 0x57}: "EF_Allocator", efi.GUID{0x1d, 0x3f, 0xf2, 0x6f, 0x7c, 0x87, 0x1b, 0x4b, 0x93, 0xfc, 0xf1, 0x42, 0xb2, 0xee, 0xa6, 0xa7}: "EfiGopDisplayBrightnessProtocolGuid", efi.GUID{0x1d, 0x4a, 0x7d, 0x30, 0xd8, 0xdd, 0x2f, 0x4e, 0xac, 0x68, 0xd8, 0xb2, 0x13, 0xc1, 0x98, 0xfe}: "BiosAuditLogHandlerDxe", efi.GUID{0x1d, 0x59, 0x13, 0x42, 0xef, 0xce, 0x5f, 0x42, 0x91, 0x5b, 0xae, 0x45, 0x59, 0x68, 0x0f, 0x62}: "XnoteSystemSetupDxe", efi.GUID{0x1d, 0x5d, 0x8c, 0xa5, 0x2b, 0xc2, 0x45, 0x48, 0x90, 0xbc, 0x8c, 0x94, 0xfc, 0xe9, 0x64, 0x57}: "FastBootOption", efi.GUID{0x1d, 0x61, 0xee, 0xee, 0x8f, 0xf7, 0xb9, 0x4f, 0xb8, 0x68, 0x55, 0x90, 0x7f, 0x16, 0x92, 0x80}: "PlatformInitPreMem", efi.GUID{0x1d, 0x63, 0x5c, 0x3c, 0x95, 0x79, 0x15, 0x44, 0x8b, 0x16, 0x9f, 0x4a, 0x8a, 0xd3, 0x6f, 0xcf}: "Int10ToSmi", efi.GUID{0x1d, 0x64, 0xbc, 0x77, 0x2d, 0x58, 0x1c, 0x4b, 0xbb, 0x79, 0x59, 0x4e, 0xdf, 0x36, 0x30, 0xef}: "VTPCR7EventLog", efi.GUID{0x1d, 0x66, 0xae, 0x25, 0x52, 0x36, 0x67, 0x47, 0xa8, 0x00, 0x2c, 0x3d, 0x03, 0xf4, 0x09, 0x7a}: "Armani_ProductInfoSmm", efi.GUID{0x1d, 0x68, 0xe2, 0xe5, 0x43, 0x2e, 0xe6, 0x44, 0xa8, 0xcf, 0x06, 0x30, 0xe3, 0x5f, 0x9d, 0x8b}: "BoardSpiConfigProtocolSmm", efi.GUID{0x1d, 0x6a, 0x0f, 0x2e, 0x8e, 0xb0, 0x6d, 0x45, 0x88, 0x15, 0x77, 0xae, 0xf3, 0x9d, 0x49, 0x41}: "OemSlic", efi.GUID{0x1d, 0x6d, 0x21, 0x6b, 0x32, 0x5d, 0xfd, 0x41, 0x96, 0x98, 0x6f, 0x8e, 0x58, 0x19, 0x94, 0x54}: "FlashInfoSmm", efi.GUID{0x1d, 0x71, 0x9c, 0x86, 0x9c, 0x64, 0xfe, 0x44, 0x8b, 0x9e, 0x2c, 0xbb, 0x29, 0x11, 0xc3, 0xe6}: "EfiPeiDelayedDispatchPpi", efi.GUID{0x1d, 0x71, 0x9f, 0x3e, 0x96, 0x34, 0xee, 0x46, 0x9d, 0xa5, 0x46, 0xdf, 0xbc, 0x1d, 0x68, 0x6f}: "PlatformFlashPartSmm", efi.GUID{0x1d, 0x74, 0xc4, 0x87, 0xf4, 0xce, 0xa1, 0x48, 0x89, 0xaa, 0x7f, 0x86, 0xef, 0xa0, 0xa2, 0x1a}: "MediaCapsuleEarly", efi.GUID{0x1d, 0x75, 0xc9, 0x90, 0x74, 0xfa, 0xa6, 0x4e, 0x8c, 0x4b, 0xf4, 0x4d, 0x2b, 0xe8, 0xcd, 0x48}: "FmpDxe", efi.GUID{0x1d, 0x75, 0xc9, 0x90, 0x74, 0xfa, 0xa6, 0x4e, 0x8c, 0x4b, 0xf4, 0x4d, 0x2b, 0xe8, 0xcd, 0x4b}: "FmpDxe", efi.GUID{0x1d, 0x76, 0xe4, 0x39, 0x39, 0xff, 0x03, 0x46, 0xb7, 0xa6, 0xb5, 0xa5, 0xce, 0xe1, 0xc9, 0xf2}: "Lily_RTLWlanDxe", efi.GUID{0x1d, 0x79, 0xe6, 0xc1, 0x5b, 0xf3, 0xef, 0x43, 0x92, 0x0a, 0xbe, 0x06, 0xba, 0x7f, 0x86, 0xa1}: "AmiTcgPlatformPpiBeforeMem", efi.GUID{0x1d, 0x7b, 0x4d, 0xa7, 0x93, 0x03, 0xd7, 0x40, 0x9a, 0xb2, 0x0a, 0xe3, 0x6c, 0xf3, 0xf1, 0xe8}: "TraceHubPostCodeHandlerPei", efi.GUID{0x1d, 0x7b, 0x7d, 0x8f, 0x1c, 0x0e, 0x98, 0x4c, 0xb1, 0x2e, 0x4e, 0xc9, 0x9c, 0x40, 0x81, 0xac}: "EmptyApplication", efi.GUID{0x1d, 0x85, 0x24, 0xae, 0x14, 0xe4, 0x62, 0x40, 0x95, 0x9d, 0x5f, 0x43, 0xea, 0x99, 0x36, 0x3c}: "DellAudioDxe", efi.GUID{0x1d, 0x85, 0xa5, 0x66, 0x1e, 0x66, 0x04, 0x49, 0x85, 0xd4, 0x0a, 0x66, 0x08, 0x80, 0x5c, 0xbd}: "OemEepromLanDisable", efi.GUID{0x1d, 0x8b, 0xbf, 0x3b, 0x2d, 0x4b, 0x02, 0x86, 0x6c, 0xc2, 0xc7, 0x81, 0xba, 0xce, 0xba, 0xc8}: "Pca9535aDxe", efi.GUID{0x1d, 0x8d, 0x84, 0x24, 0x37, 0xa6, 0xdd, 0x45, 0x97, 0x4f, 0xbe, 0xba, 0x03, 0x40, 0xff, 0x96}: "RemotePlatformErase", efi.GUID{0x1d, 0x91, 0xfa, 0xdc, 0xeb, 0x26, 0x9f, 0x46, 0xa2, 0x20, 0x38, 0xb7, 0xdc, 0x46, 0x12, 0x20}: "EfiMemoryAttributesTableGuid", efi.GUID{0x1d, 0x93, 0x23, 0x47, 0xad, 0xf8, 0xbf, 0x45, 0xac, 0x1f, 0x92, 0x9f, 0x7b, 0xa8, 0x8e, 0x7f}: "ValidateExtendedBiosRegionDxe", efi.GUID{0x1d, 0x94, 0x36, 0x5e, 0xa5, 0xeb, 0xd4, 0x4d, 0xb6, 0xee, 0xd9, 0x1c, 0x7a, 0x51, 0x22, 0x90}: "AsusSmartHsioPei", efi.GUID{0x1d, 0x9a, 0x74, 0x5f, 0x00, 0x95, 0xce, 0x48, 0xa4, 0x1f, 0xd0, 0xf2, 0xf7, 0x1d, 0xef, 0x8c}: "AmdSocAm4BrDxe", efi.GUID{0x1d, 0x9e, 0x1e, 0x9d, 0xbe, 0xb7, 0xe4, 0x4a, 0xb6, 0xa2, 0x0b, 0x05, 0x54, 0x4a, 0x41, 0x22}: "Mctp", efi.GUID{0x1d, 0xa0, 0x4a, 0x73, 0xec, 0x95, 0xb7, 0x45, 0xa2, 0x3a, 0x2d, 0x86, 0xd8, 0xfd, 0xeb, 0xb6}: "AmiTcgStorageSecurityInitProtocol", efi.GUID{0x1d, 0xa7, 0x04, 0x92, 0x50, 0x20, 0xb7, 0x4a, 0xad, 0x42, 0x74, 0x9c, 0xf9, 0xad, 0xb4, 0xeb}: "Lpc47N20x", efi.GUID{0x1d, 0xb3, 0x87, 0xbb, 0x66, 0xf3, 0xe9, 0x47, 0x88, 0x5e, 0xe8, 0x16, 0xb0, 0x9b, 0x97, 0xb6}: "DellAlertStandardFormatSmm", efi.GUID{0x1d, 0xbd, 0x8f, 0x60, 0xe1, 0x15, 0xc4, 0x40, 0x94, 0x43, 0x66, 0x2e, 0xcc, 0x0c, 0x07, 0xaa}: "DxeOemDriver", efi.GUID{0x1d, 0xc8, 0x65, 0xf6, 0xde, 0xef, 0x5f, 0x4b, 0x88, 0xe8, 0x21, 0x60, 0xb7, 0x48, 0xd2, 0xb4}: "DellVideoConfigPei", efi.GUID{0x1d, 0xcd, 0xb4, 0x8f, 0x60, 0x06, 0x6e, 0x46, 0x8e, 0xd0, 0xad, 0x72, 0x3f, 0xd7, 0xdb, 0xae}: "AmdNbioAlibRPLDxe", efi.GUID{0x1d, 0xd9, 0xdb, 0x00, 0xe9, 0x55, 0x0f, 0x42, 0x96, 0x39, 0x5e, 0x9f, 0x84, 0x37, 0xb4, 0x4f}: "EfiExtendedSalStatusCodeServicesProtocolGuid", efi.GUID{0x1d, 0xdc, 0xa2, 0x46, 0x2a, 0x6d, 0x58, 0x45, 0xbc, 0x0e, 0x86, 0xb4, 0xb5, 0x4b, 0x42, 0x36}: "OemCustomizeCsm16Config", efi.GUID{0x1d, 0xdc, 0xd7, 0xbf, 0xf1, 0x24, 0xd9, 0x40, 0x82, 0xe7, 0x2e, 0x09, 0xbb, 0x6b, 0x4e, 0xbe}: "EfiDriverConfiguration2ProtocolGuid", efi.GUID{0x1d, 0xdf, 0x8c, 0x2f, 0xe6, 0x80, 0xf0, 0x4f, 0x95, 0xdb, 0x2c, 0x3e, 0x07, 0x1a, 0x17, 0x74}: "000_X64", efi.GUID{0x1d, 0xe6, 0x17, 0xa8, 0x9a, 0x04, 0x09, 0x45, 0xbe, 0xb0, 0x79, 0xfc, 0xa7, 0x69, 0x62, 0x35}: "PlatformDriOverrideDxe", efi.GUID{0x1d, 0xe9, 0x91, 0x32, 0xd9, 0xc5, 0xb7, 0x42, 0xb3, 0xb1, 0x8e, 0xc5, 0x4b, 0x03, 0xf0, 0x43}: "OemPeiSample", efi.GUID{0x1d, 0xef, 0xe6, 0x1d, 0x01, 0xdb, 0x27, 0x4c, 0xad, 0x29, 0xc5, 0x82, 0x88, 0x7e, 0x2e, 0x18}: "OemSataInitDxe", efi.GUID{0x1d, 0xf1, 0x78, 0xd1, 0x16, 0x87, 0x8e, 0x41, 0xa1, 0x31, 0x96, 0x7d, 0x2a, 0xc4, 0x28, 0x43}: "EdkiiMicrocodePatchHob", efi.GUID{0x1e, 0x04, 0xea, 0x49, 0x52, 0x67, 0xca, 0x42, 0xb0, 0xb1, 0x73, 0x44, 0xfe, 0x25, 0x46, 0xb7}: "ArmTimerDxe", efi.GUID{0x1e, 0x06, 0x24, 0xba, 0x32, 0xb5, 0x75, 0x43, 0xa5, 0xe4, 0x99, 0xc1, 0xca, 0xe4, 0x5d, 0x18}: "EcSecureFlashPei", efi.GUID{0x1e, 0x08, 0x87, 0x89, 0xeb, 0xda, 0xa9, 0x44, 0x8b, 0xef, 0xa1, 0x95, 0xb2, 0x2d, 0x94, 0x17}: "BasePciLibPciExpress", efi.GUID{0x1e, 0x09, 0x82, 0x4e, 0xa1, 0x32, 0x89, 0x46, 0x8a, 0x00, 0xcd, 0xe4, 0x1e, 0xd6, 0x3c, 0xdd}: "SioDxeInit", efi.GUID{0x1e, 0x0b, 0xac, 0x67, 0xc2, 0x54, 0xa6, 0x41, 0xb5, 0x7e, 0xc2, 0xa3, 0x21, 0x41, 0x6a, 0xbc}: "ActiveBios2", efi.GUID{0x1e, 0x13, 0x00, 0x9f, 0x48, 0x52, 0xa6, 0x44, 0xbf, 0x84, 0x93, 0xed, 0x18, 0xe1, 0x78, 0x0f}: "SioMec152xDxe", efi.GUID{0x1e, 0x19, 0xc0, 0xcd, 0x91, 0x18, 0x19, 0x41, 0x81, 0x7e, 0x0b, 0x6a, 0x36, 0x85, 0xa5, 0x11}: "LenovoSystemBusIsaRtcSmm", efi.GUID{0x1e, 0x1b, 0xa7, 0x27, 0xee, 0x73, 0xd6, 0x43, 0xac, 0xe3, 0x52, 0x1a, 0x2d, 0xc5, 0xd0, 0x92}: "RepublishSecPpiPpi", efi.GUID{0x1e, 0x20, 0xba, 0x91, 0x21, 0x16, 0xfc, 0x46, 0x82, 0x5a, 0xb0, 0x36, 0x3e, 0xca, 0xd4, 0xbc}: "DellPbaFpDxe", efi.GUID{0x1e, 0x22, 0x6c, 0xd2, 0x30, 0x24, 0x8a, 0x4c, 0x91, 0x70, 0x3f, 0xcb, 0x45, 0x00, 0x41, 0x3f}: "TcgEvent2EntryHobGuid", efi.GUID{0x1e, 0x25, 0x37, 0xf5, 0xaa, 0x54, 0x6f, 0x4b, 0xa2, 0x04, 0x4d, 0x57, 0x7f, 0x6d, 0x50, 0xc8}: "SpiInitPei", efi.GUID{0x1e, 0x2e, 0xdc, 0xfd, 0xa9, 0x33, 0xa6, 0x40, 0xa2, 0x32, 0x21, 0xd6, 0x4b, 0x36, 0x22, 0xe8}: "SmiVariableInstallInt15Dxe", efi.GUID{0x1e, 0x38, 0x48, 0x09, 0x3d, 0x0b, 0xa9, 0x43, 0x8e, 0x03, 0xf2, 0x48, 0x9f, 0x2b, 0x9e, 0x2e}: "FchSmmDispatcher", efi.GUID{0x1e, 0x38, 0x6a, 0x25, 0x65, 0x01, 0x09, 0x49, 0x86, 0x63, 0xee, 0x31, 0x78, 0x19, 0x29, 0x2e}: "AIMT", efi.GUID{0x1e, 0x38, 0xa4, 0xca, 0x0c, 0x75, 0x70, 0x47, 0xb8, 0x70, 0x7a, 0x23, 0xb4, 0xe4, 0x21, 0x30}: "EfiHashAlgorithmSha512Guid", efi.GUID{0x1e, 0x48, 0xa2, 0x26, 0x24, 0x44, 0xa2, 0x46, 0x99, 0x43, 0xcc, 0x40, 0x39, 0xea, 0xd8, 0xf8}: "S3Save", efi.GUID{0x1e, 0x4d, 0x7d, 0x8c, 0xad, 0x98, 0xee, 0x4c, 0x84, 0x83, 0xdd, 0x70, 0x05, 0x00, 0x25, 0x44}: "ProjectPEI", efi.GUID{0x1e, 0x55, 0xbb, 0xb5, 0xa7, 0xf2, 0xb9, 0x43, 0x81, 0x3a, 0xf7, 0x7d, 0xd8, 0x09, 0x00, 0xf5}: "HpCertificateManagerDriver", efi.GUID{0x1e, 0x69, 0xed, 0xdd, 0x95, 0x04, 0xdb, 0x45, 0xad, 0xff, 0xd6, 0x84, 0x52, 0xc9, 0xa5, 0xa4}: "Float", efi.GUID{0x1e, 0x73, 0xed, 0x38, 0x1b, 0x6a, 0x1b, 0x44, 0xbf, 0x97, 0xa7, 0x85, 0x4c, 0x4a, 0x2b, 0x7f}: "EgsFhfPolicyOverridePei", efi.GUID{0x1e, 0x7c, 0x16, 0xcd, 0x0b, 0x6e, 0xb3, 0x42, 0x82, 0xf6, 0xe3, 0xe9, 0x06, 0x19, 0x98, 0x10}: "FspReadyForNotifyPhasePpi", efi.GUID{0x1e, 0x7f, 0x63, 0xfc, 0xda, 0x50, 0x13, 0x40, 0x92, 0x4d, 0xc5, 0x31, 0xf1, 0xdf, 0xf3, 0x8b}: "GopConfig", efi.GUID{0x1e, 0x8b, 0x84, 0xa6, 0xa6, 0x73, 0x9c, 0x42, 0x9b, 0x1c, 0xc9, 0x52, 0x86, 0x07, 0x72, 0x5d}: "BoardDPTF", efi.GUID{0x1e, 0x8d, 0x53, 0x55, 0xc5, 0xb4, 0xd5, 0x4b, 0xb5, 0x94, 0x9b, 0x5b, 0xa9, 0x77, 0x4f, 0x1e}: "AodSetupDxe", efi.GUID{0x1e, 0x95, 0xfa, 0x67, 0xa2, 0x4f, 0x4e, 0x9f, 0xa6, 0x58, 0x4d, 0xbd, 0x95, 0x4a, 0xc2, 0x2e}: "HpSmbiosDxe", efi.GUID{0x1e, 0xa9, 0x2b, 0x44, 0xa8, 0xb0, 0x9f, 0x49, 0x94, 0xf7, 0x2e, 0x92, 0x2c, 0x9a, 0xae, 0x0d}: "AodDxe", efi.GUID{0x1e, 0xa9, 0xca, 0xd0, 0xe4, 0x2d, 0x0d, 0x4b, 0xb3, 0xdc, 0x09, 0xc6, 0x7e, 0x85, 0x4e, 0x34}: "BiosSnp16", efi.GUID{0x1e, 0xab, 0x78, 0x83, 0x47, 0x41, 0x0a, 0x40, 0x8d, 0x84, 0xe3, 0xde, 0x98, 0x1c, 0x04, 0x53}: "TamperResistantBoot", efi.GUID{0x1e, 0xaf, 0xee, 0xa7, 0x9f, 0x96, 0xee, 0x40, 0xa2, 0x1e, 0x18, 0x56, 0xf5, 0xe6, 0xd4, 0x1c}: "InstallMSDMTable", efi.GUID{0x1e, 0xb1, 0x97, 0x8a, 0x8e, 0xee, 0xe2, 0x11, 0xb6, 0x64, 0x04, 0x7d, 0x7b, 0x99, 0xe0, 0x97}: "AcpiInterfaceCoreDxe", efi.GUID{0x1e, 0xcb, 0xfd, 0x09, 0x8b, 0xe0, 0x64, 0x4b, 0x89, 0x0c, 0x70, 0xe3, 0x17, 0x4b, 0xe0, 0x7a}: "FpgaErrorRecord", efi.GUID{0x1e, 0xd0, 0xb8, 0x71, 0x64, 0xd7, 0xc6, 0x4b, 0x9d, 0x02, 0x00, 0x07, 0xf8, 0x38, 0x2f, 0x54}: "FjCmosAccessRt", efi.GUID{0x1e, 0xd1, 0x72, 0x2a, 0x76, 0x73, 0xf6, 0x40, 0x9c, 0x68, 0x23, 0xfa, 0x2f, 0xe3, 0x63, 0xf1}: "EfiEbcSimpleDebuggerProtocolGuid", efi.GUID{0x1e, 0xd8, 0x04, 0x91, 0xb6, 0x05, 0x54, 0x47, 0xa2, 0xde, 0x7d, 0xb3, 0x42, 0xfe, 0x54, 0x96}: "DellAcpiSharedMemDxe", efi.GUID{0x1e, 0xd9, 0x99, 0x67, 0x11, 0x03, 0xf0, 0x41, 0x99, 0xaf, 0xf1, 0x62, 0xb9, 0xec, 0x93, 0xce}: "ProcessVideoOpromDxe", efi.GUID{0x1e, 0xde, 0x26, 0x6b, 0xf2, 0x3d, 0x1d, 0x4a, 0x9b, 0x7f, 0xb8, 0x16, 0xb8, 0xc9, 0x08, 0x72}: "ComputraceSmm", efi.GUID{0x1e, 0xe1, 0xc0, 0xa6, 0x9e, 0x92, 0xb3, 0x42, 0x90, 0xcc, 0x4f, 0x77, 0x8e, 0x03, 0xff, 0x57}: "PkpubKey", efi.GUID{0x1e, 0xe4, 0x5d, 0x30, 0x19, 0xea, 0x20, 0x4d, 0x9a, 0x93, 0x0e, 0x0d, 0xd4, 0x2a, 0x3f, 0x67}: "Mec5107Pei", efi.GUID{0x1e, 0xf1, 0x51, 0xe7, 0x5a, 0xe8, 0x90, 0x46, 0xa7, 0x29, 0x75, 0x75, 0x6c, 0x1e, 0x7d, 0x32}: "HidMouseDxe", efi.GUID{0x1e, 0xf4, 0x7e, 0x9a, 0x40, 0xc1, 0xd1, 0x4b, 0xb8, 0x84, 0x1e, 0x11, 0x24, 0x0b, 0x4c, 0xe6}: "PeiPlatformMemorySizePpi", efi.GUID{0x1e, 0xff, 0xad, 0xbb, 0x51, 0xb6, 0x14, 0x40, 0xb4, 0x76, 0xd4, 0x29, 0x19, 0xa8, 0x39, 0xd2}: "UsbTextLookupDxe", efi.GUID{0x1f, 0x16, 0x43, 0x3b, 0xb4, 0xae, 0xec, 0x43, 0x9e, 0x1b, 0x80, 0x50, 0x17, 0x1b, 0x48, 0x99}: "BiosGuardRecoveryHook", efi.GUID{0x1f, 0x23, 0x6c, 0xfe, 0x90, 0xc4, 0xb2, 0x41, 0x8a, 0x85, 0x82, 0x6f, 0xc7, 0x76, 0x4a, 0xf0}: "FjVariableSmm", efi.GUID{0x1f, 0x24, 0x32, 0xa7, 0x3d, 0x38, 0x9c, 0x4d, 0x8a, 0xe1, 0x8e, 0x09, 0x83, 0x75, 0x89, 0xd7}: "XenBusRootDeviceGuid", efi.GUID{0x1f, 0x28, 0x4f, 0xaf, 0x9f, 0x51, 0x39, 0x4a, 0x81, 0x82, 0x4b, 0x05, 0x3d, 0x42, 0x98, 0x74}: "DellTpmBusConfigDxe", efi.GUID{0x1f, 0x2f, 0x4f, 0x50, 0xeb, 0xe7, 0xf9, 0x46, 0xaa, 0x07, 0x06, 0x06, 0xf3, 0x11, 0xaa, 0x1a}: "SmmPlatform", efi.GUID{0x1f, 0x38, 0xc6, 0xdb, 0x54, 0x55, 0x14, 0x4d, 0x8f, 0xfd, 0x76, 0xd7, 0x87, 0xb8, 0xac, 0xbf}: "IpmiProtocolGuid", efi.GUID{0x1f, 0x3c, 0xf0, 0x80, 0xbd, 0x89, 0x40, 0x42, 0x93, 0xa8, 0xac, 0x99, 0xe9, 0xa9, 0x29, 0xfc}: "DellPowerOffConfig", efi.GUID{0x1f, 0x45, 0x26, 0x4e, 0x89, 0x19, 0x2e, 0x4e, 0x8d, 0x79, 0x68, 0x94, 0x7f, 0xe8, 0x78, 0xbb}: "SDCardReadOnlyMode", efi.GUID{0x1f, 0x50, 0x87, 0xfc, 0x07, 0xf7, 0xa2, 0x49, 0xb6, 0x76, 0x77, 0x71, 0x7d, 0xd9, 0x04, 0xdc}: "SmiCpuDecode", efi.GUID{0x1f, 0x54, 0x11, 0xda, 0x41, 0x53, 0x63, 0x47, 0x83, 0x86, 0x38, 0x63, 0x94, 0x39, 0x73, 0xb2}: "I2cInitializeDxe", efi.GUID{0x1f, 0x54, 0x89, 0x91, 0x0c, 0xac, 0x68, 0x43, 0x90, 0x62, 0x70, 0xe1, 0x95, 0x7c, 0x34, 0x45}: "EfiVirtualLockstep", efi.GUID{0x1f, 0x5a, 0xf4, 0x62, 0x63, 0xb2, 0x59, 0x41, 0xa8, 0xbd, 0xf5, 0x44, 0x27, 0x22, 0x6c, 0xb3}: "TypeAAh", efi.GUID{0x1f, 0x69, 0xe7, 0x12, 0xee, 0x1e, 0xd4, 0x4e, 0x87, 0x93, 0x69, 0xe2, 0x80, 0x1d, 0x60, 0x2a}: "LenovoFpPba", efi.GUID{0x1f, 0x69, 0xe7, 0x12, 0xee, 0x1e, 0xd4, 0x4e, 0x87, 0x93, 0x69, 0xe2, 0x80, 0x1d, 0x61, 0x23}: "AsixPxe", efi.GUID{0x1f, 0x6a, 0xde, 0x7e, 0x8e, 0x54, 0x3e, 0x45, 0xa9, 0x5c, 0x66, 0x93, 0x9f, 0xe0, 0x29, 0x5c}: "SwitchableGraphicsPei", efi.GUID{0x1f, 0x6c, 0xa2, 0xd1, 0xf5, 0xab, 0x06, 0x48, 0xbb, 0x24, 0x68, 0xd3, 0x17, 0xe0, 0x71, 0xd5}: "AppleEpidCertificate", efi.GUID{0x1f, 0x75, 0x9f, 0x38, 0x38, 0x18, 0x88, 0x43, 0x83, 0x90, 0xcd, 0x81, 0x54, 0xbd, 0x27, 0xf8}: "EfiFirmwareVolumeProtocolGuid", efi.GUID{0x1f, 0x77, 0xc0, 0x64, 0x01, 0x09, 0x1e, 0x47, 0xbe, 0x1f, 0xcb, 0x7d, 0xad, 0xdf, 0xb2, 0x47}: "DxeTAC", efi.GUID{0x1f, 0x7d, 0x9a, 0x57, 0x66, 0xc1, 0x0d, 0x4d, 0xad, 0xdb, 0xb2, 0x0b, 0x8b, 0x76, 0x8b, 0x72}: "TmeInitDxe", efi.GUID{0x1f, 0x88, 0x72, 0xcd, 0xb5, 0x45, 0xeb, 0x4f, 0x98, 0xc8, 0x31, 0x3d, 0xa8, 0x11, 0x74, 0x62}: "EfiI2cMasterProtocolGuid", efi.GUID{0x1f, 0x95, 0xb5, 0xad, 0xb9, 0xe8, 0xb1, 0x42, 0x9b, 0xfe, 0x39, 0xd7, 0xb5, 0x54, 0x84, 0xc8}: "HpRuntimeBiosUpdateCheckSmm", efi.GUID{0x1f, 0x9b, 0x65, 0xb1, 0x4e, 0xf7, 0x66, 0x48, 0x9d, 0x66, 0x29, 0x30, 0x90, 0x03, 0x91, 0xa5}: "FwBlockService", efi.GUID{0x1f, 0xa2, 0xcb, 0x32, 0x08, 0xf3, 0xbc, 0x4c, 0x9a, 0xb5, 0xf5, 0xa3, 0x69, 0x9f, 0x04, 0x4a}: "EfiUserCredentialClassFingerprintGuid", efi.GUID{0x1f, 0xb7, 0xc2, 0xbf, 0xbf, 0xac, 0x54, 0x4e, 0x9b, 0x19, 0xb6, 0xee, 0xb4, 0x00, 0x50, 0x7b}: "AmdCpmPmfDxe", efi.GUID{0x1f, 0xbc, 0x37, 0xca, 0x27, 0xa3, 0xe9, 0x4a, 0x82, 0x8a, 0x8c, 0x40, 0xd8, 0x50, 0x6a, 0x17}: "EfiDns6ProtocolGuid", efi.GUID{0x1f, 0xc0, 0x93, 0xcf, 0x16, 0x1a, 0xfc, 0x4d, 0xb8, 0xbc, 0x9c, 0x4d, 0xaf, 0x67, 0xc1, 0x04}: "EfiEventNotificationTypePcieGuid", efi.GUID{0x1f, 0xc3, 0x4d, 0xdb, 0x07, 0xf3, 0x6a, 0x4d, 0xa3, 0x47, 0x18, 0x0f, 0xd2, 0x7e, 0xc1, 0x0a}: "MsiTouchPanel", efi.GUID{0x1f, 0xc9, 0x64, 0xf0, 0x8c, 0x18, 0x56, 0x4f, 0xb7, 0xfd, 0x30, 0xa9, 0xb8, 0x6a, 0x29, 0xf3}: "EfiCpuTypeFru", efi.GUID{0x1f, 0xcc, 0x06, 0x29, 0xca, 0x09, 0x57, 0x44, 0x9a, 0x4f, 0xc2, 0x12, 0xc5, 0x45, 0xd3, 0xd3}: "AppleEpidGroupPublicKeysRl", efi.GUID{0x1f, 0xce, 0xb2, 0x4f, 0x3a, 0x1a, 0xe3, 0x42, 0xbd, 0x0c, 0x7b, 0x84, 0xf9, 0x54, 0x18, 0x9a}: "AcpiCallbacksSmm", efi.GUID{0x1f, 0xcf, 0x62, 0xa0, 0x73, 0x84, 0xa3, 0x4a, 0x87, 0x93, 0x60, 0x0b, 0xc4, 0xff, 0xa9, 0xa9}: "EfiLegacySredirProtocolGuid", efi.GUID{0x1f, 0xcf, 0x62, 0xa0, 0x73, 0x84, 0xa3, 0x4a, 0x87, 0x93, 0x60, 0x0b, 0xc4, 0xff, 0xe9, 0xa8}: "CsmDxe", efi.GUID{0x1f, 0xd2, 0xf7, 0x44, 0x6f, 0xc3, 0x66, 0x47, 0xbc, 0x5b, 0xc7, 0x2e, 0x97, 0xe6, 0x89, 0x7b}: "Fip006Dxe", efi.GUID{0x1f, 0xda, 0x34, 0x84, 0xeb, 0x5c, 0x2e, 0x40, 0xa9, 0x3c, 0x03, 0x8c, 0xbe, 0x0f, 0x3f, 0x0e}: "OemActivation3Smm", efi.GUID{0x1f, 0xde, 0xe4, 0xa0, 0x01, 0xed, 0x9a, 0x41, 0x95, 0x7d, 0x23, 0x79, 0x03, 0x10, 0x8b, 0xa8}: "EfiNgnCfgCur", efi.GUID{0x1f, 0xe5, 0x1e, 0xa9, 0xf0, 0x0f, 0x6c, 0x4a, 0xa6, 0xf4, 0x92, 0x14, 0x30, 0x3a, 0xed, 0xf7}: "MeEsrtUpdate", efi.GUID{0x1f, 0xe7, 0xdb, 0x59, 0x08, 0x75, 0xd3, 0x49, 0x90, 0x08, 0x08, 0xff, 0x60, 0xf4, 0x7b, 0x82}: "WOLPlatformPortingSmm", efi.GUID{0x1f, 0xea, 0xe9, 0x7f, 0x24, 0x42, 0x7b, 0x4c, 0x9f, 0x44, 0xfe, 0xc1, 0x72, 0x8e, 0x7d, 0xa1}: "FjDevInfo", efi.GUID{0x1f, 0xf8, 0x0d, 0xc4, 0x36, 0x74, 0x61, 0x46, 0xb6, 0x45, 0xa9, 0x33, 0xb5, 0xd2, 0xf3, 0xc1}: "AsusFWUpdateInterface", efi.GUID{0x1f, 0xfe, 0x6b, 0x19, 0xfc, 0x51, 0xe6, 0x43, 0x8e, 0x14, 0xd4, 0x21, 0x55, 0x2b, 0xf0, 0xc7}: "FjFlashMapRt", efi.GUID{0x20, 0x0a, 0x48, 0x7f, 0x19, 0x7a, 0x64, 0x47, 0xa5, 0xca, 0x4e, 0x9b, 0x8a, 0xec, 0xaf, 0x1e}: "PchPciBus", efi.GUID{0x20, 0x11, 0xfb, 0x50, 0xb7, 0x0f, 0x1c, 0x4b, 0x9c, 0xee, 0x07, 0x1b, 0x97, 0x70, 0x38, 0x27}: "LGSetupPreservePolicyRuntime", efi.GUID{0x20, 0x1b, 0xea, 0x6a, 0x84, 0x63, 0x5f, 0x4b, 0xab, 0xac, 0x77, 0x6a, 0x11, 0x69, 0x8d, 0xed}: "LegacyBiosReverseThunk", efi.GUID{0x20, 0x1d, 0xd9, 0x63, 0xf8, 0xed, 0xa3, 0x48, 0x87, 0xa9, 0xd6, 0x52, 0x68, 0x11, 0xdb, 0x1f}: "Armani_PowerReportDxe", efi.GUID{0x20, 0x1e, 0x96, 0x55, 0xd9, 0xb0, 0x53, 0x45, 0x99, 0x48, 0xe3, 0xec, 0xf0, 0xbe, 0x08, 0x89}: "PlatformConfigPei", efi.GUID{0x20, 0x22, 0x95, 0x10, 0x32, 0xaa, 0xdf, 0x11, 0xa4, 0x38, 0x00, 0x02, 0xa5, 0xd5, 0xc5, 0x1b}: "PL35xSmc", efi.GUID{0x20, 0x26, 0x40, 0xae, 0xfa, 0xe6, 0x09, 0x4e, 0x9b, 0x63, 0x3f, 0xd5, 0xbd, 0xab, 0xf7, 0x7d}: "I225_PXE", efi.GUID{0x20, 0x27, 0x64, 0x68, 0xbb, 0x69, 0xc7, 0x4b, 0x98, 0xcf, 0x5c, 0x31, 0xee, 0x74, 0xaf, 0xfb}: "PeiWakeOnLan", efi.GUID{0x20, 0x2b, 0x7a, 0x00, 0x83, 0x83, 0xd2, 0x4c, 0xaf, 0x81, 0x29, 0x94, 0x47, 0x34, 0x34, 0xd8}: "UsbOcUpdateDxeBigPineKey", efi.GUID{0x20, 0x36, 0x68, 0xa5, 0x98, 0x79, 0xb2, 0x4b, 0xa3, 0x77, 0x1c, 0x1e, 0x31, 0xe1, 0xe2, 0x15}: "TcgDxe", efi.GUID{0x20, 0x3d, 0x7f, 0x8f, 0x23, 0x98, 0xdd, 0x42, 0x9f, 0xf7, 0x53, 0xda, 0xc9, 0x3e, 0xf4, 0x07}: "CsrPseudoOffsetInitPeim", efi.GUID{0x20, 0x3e, 0x84, 0x8b, 0x32, 0x81, 0x52, 0x48, 0x90, 0xcc, 0x55, 0x1a, 0x4e, 0x4a, 0x7f, 0x1c}: "EfiDevicePathToTextProtocolGuid", efi.GUID{0x20, 0x4b, 0x2f, 0xc6, 0x1e, 0x68, 0xdf, 0x11, 0x8f, 0x0d, 0x00, 0x02, 0xa5, 0xd5, 0xc5, 0x1b}: "PciHostBridge", efi.GUID{0x20, 0x4c, 0xf8, 0x0e, 0x78, 0xd1, 0x0b, 0x49, 0x9f, 0xcd, 0x12, 0x27, 0x39, 0xfa, 0xae, 0xfc}: "FchSmmDiagDispatcher", efi.GUID{0x20, 0x4f, 0xe9, 0xc8, 0x50, 0xd8, 0x27, 0x4c, 0xbf, 0x03, 0xa7, 0x80, 0x55, 0x08, 0x4e, 0x07}: "SystemBiosSelfHealingDxe", efi.GUID{0x20, 0x50, 0xf1, 0x3c, 0xb3, 0x4d, 0x69, 0x47, 0x9d, 0x37, 0x91, 0x3a, 0x34, 0x89, 0xfe, 0x7d}: "BindProtDbgDxe", efi.GUID{0x20, 0x54, 0x7e, 0x8b, 0x71, 0x1b, 0x2a, 0x44, 0x99, 0x16, 0xc1, 0x3a, 0x4f, 0xe0, 0x24, 0x82}: "SmbiosDataUpdateDxeLightningRidgeEXRP", efi.GUID{0x20, 0x55, 0x73, 0x69, 0x83, 0xda, 0x4a, 0x44, 0x93, 0xdc, 0xbd, 0xdd, 0x59, 0xe5, 0x91, 0x82}: "Heci3Smm", efi.GUID{0x20, 0x57, 0x2b, 0x71, 0x64, 0x7d, 0x52, 0x4f, 0xff, 0xff, 0xff, 0xff, 0x99, 0x46, 0xcf, 0x56}: "PxeOnDemandDxe", efi.GUID{0x20, 0x59, 0x01, 0x88, 0x9b, 0x2b, 0x2e, 0x4b, 0x84, 0x0c, 0xad, 0x76, 0xbc, 0x6c, 0x3a, 0xbf}: "AmdNbioDxe", efi.GUID{0x20, 0x5c, 0x69, 0xb0, 0xfc, 0xf9, 0x72, 0x43, 0x80, 0x0f, 0x63, 0xb0, 0x6f, 0xb5, 0x2a, 0x4f}: "OemIp3Dxe", efi.GUID{0x20, 0x61, 0xcf, 0x46, 0xde, 0x9b, 0xb1, 0x49, 0x9d, 0x59, 0xd3, 0x5e, 0x35, 0x5b, 0xf8, 0x50}: "OdometerResetSmm", efi.GUID{0x20, 0x66, 0x30, 0x9a, 0x06, 0xf5, 0xc6, 0x46, 0xa0, 0x95, 0x30, 0xf7, 0x50, 0x40, 0xae, 0x79}: "SystemAhciPeimPei", efi.GUID{0x20, 0x6f, 0x0f, 0xd1, 0xda, 0x1e, 0x9e, 0x4d, 0x9d, 0x9b, 0x0f, 0x13, 0x06, 0xc7, 0xa7, 0x13}: "HpFileAccess", efi.GUID{0x20, 0x70, 0x5c, 0xfc, 0x48, 0x1a, 0x98, 0x41, 0x9b, 0xe2, 0xea, 0xd5, 0xab, 0xc8, 0xcf, 0x2f}: "BdsDxe", efi.GUID{0x20, 0x77, 0xec, 0x60, 0x2b, 0x51, 0x90, 0x44, 0x9f, 0xd1, 0xa3, 0x36, 0x76, 0x9a, 0xe0, 0x1f}: "SmmControlPei", efi.GUID{0x20, 0x79, 0x73, 0xc9, 0xad, 0xc2, 0xc3, 0x41, 0xb1, 0x33, 0x0f, 0x9c, 0x25, 0x1b, 0x67, 0x43}: "PeiDebugDispatchPpiGuid", efi.GUID{0x20, 0x7a, 0x14, 0xa1, 0x44, 0x31, 0x8d, 0x4f, 0x82, 0x95, 0xb4, 0x83, 0x11, 0xc8, 0xe4, 0xa4}: "ArmJunoTokenSpaceGuid", efi.GUID{0x20, 0x7d, 0xcf, 0x44, 0xf6, 0xdf, 0x09, 0x42, 0x9a, 0x1f, 0xf6, 0xcd, 0x5f, 0x5c, 0xe8, 0x8b}: "LenovoVariableInitSmm", efi.GUID{0x20, 0x7e, 0x34, 0x37, 0x3d, 0x5c, 0xb7, 0x47, 0xb2, 0x33, 0x1e, 0x35, 0x3a, 0x7e, 0x01, 0x45}: "AppleHttpClient", efi.GUID{0x20, 0x83, 0xe9, 0x0b, 0x34, 0x56, 0xab, 0x4a, 0xb2, 0xb7, 0xfc, 0xbc, 0x97, 0x77, 0x15, 0x1e}: "FjTerraSmm", efi.GUID{0x20, 0x84, 0x4a, 0x5e, 0xc0, 0xfe, 0xd3, 0x40, 0x98, 0xae, 0xc4, 0xca, 0x45, 0x50, 0x2b, 0x93}: "ODMDiagDxeProtocol", efi.GUID{0x20, 0x84, 0x98, 0x82, 0x67, 0x74, 0x90, 0x44, 0x90, 0x59, 0xfe, 0xb4, 0x48, 0xdd, 0x19, 0x63}: "MeConfig", efi.GUID{0x20, 0x92, 0xfa, 0x7d, 0x45, 0x51, 0xcb, 0x42, 0xa8, 0x15, 0x08, 0x65, 0xc1, 0xb9, 0x52, 0xf9}: "FidoUsbDxe", efi.GUID{0x20, 0x95, 0x5f, 0xc3, 0x91, 0x57, 0x67, 0x46, 0xad, 0xe4, 0x1c, 0xfd, 0xa8, 0x37, 0x72, 0x2d}: "AmiSmiVariableDxeDriverStarted", efi.GUID{0x20, 0x9c, 0xcd, 0x7e, 0xb9, 0x68, 0x6f, 0x4a, 0xb5, 0x15, 0xd6, 0x4f, 0xf5, 0x00, 0xb1, 0x09}: "FsRecovery", efi.GUID{0x20, 0xa8, 0x89, 0x33, 0x27, 0x4a, 0xa9, 0x4f, 0xad, 0xbd, 0x39, 0xab, 0x18, 0x07, 0x8f, 0xa7}: "AmdSb900PeiSmbus", efi.GUID{0x20, 0xaa, 0x1e, 0xd3, 0x36, 0x84, 0x34, 0x4e, 0x9a, 0x06, 0xc4, 0x7c, 0x78, 0xe1, 0x9f, 0x18}: "SIOBasicIODxe", efi.GUID{0x20, 0xaf, 0xbd, 0x3e, 0x67, 0x66, 0xd8, 0x40, 0xb4, 0xee, 0xf5, 0x99, 0x9a, 0xc1, 0xb7, 0x1f}: "EfiSecHobDataPpiGuid", efi.GUID{0x20, 0xb1, 0x04, 0x76, 0x5c, 0xa5, 0x36, 0x4a, 0xa9, 0xf6, 0x42, 0x0e, 0x5a, 0xda, 0x99, 0x5c}: "MpmAsfPei", efi.GUID{0x20, 0xb1, 0xc8, 0x4e, 0x07, 0x83, 0xe0, 0x11, 0xbc, 0x91, 0x00, 0x02, 0xa5, 0xd5, 0xc5, 0x1b}: "PL011Uart", efi.GUID{0x20, 0xb4, 0x99, 0xa7, 0x9b, 0xf7, 0xf0, 0x44, 0xa1, 0x67, 0xbc, 0x3f, 0x99, 0xdd, 0x61, 0x66}: "CbsBaseDxeSTP", efi.GUID{0x20, 0xc0, 0xc0, 0x81, 0x9e, 0xe9, 0x06, 0x44, 0x96, 0x56, 0x5e, 0x68, 0x6a, 0x0e, 0x0c, 0xc3}: "FjTpm", efi.GUID{0x20, 0xc2, 0x7c, 0x5b, 0x83, 0xe1, 0x1c, 0x48, 0x87, 0xf4, 0x27, 0xa9, 0x2d, 0x8d, 0xb8, 0x8f}: "SiInitPreMemFsp", efi.GUID{0x20, 0xc6, 0x64, 0x4a, 0xef, 0x1c, 0xa0, 0x40, 0xbe, 0x1c, 0xee, 0xd6, 0xb2, 0x0e, 0xcc, 0xe9}: "MrcHealthDataInit", efi.GUID{0x20, 0xc7, 0x3d, 0x84, 0x1e, 0xab, 0xcb, 0x42, 0x93, 0x57, 0x8a, 0x00, 0x78, 0xf3, 0x56, 0x1b}: "EfiSmmControl2ProtocolGuid", efi.GUID{0x20, 0xc8, 0x03, 0xb7, 0x3d, 0x4d, 0x58, 0x46, 0x8e, 0xed, 0x5b, 0x2f, 0x9d, 0xe5, 0x47, 0x11}: "efi_pop_LF_pressed", efi.GUID{0x20, 0xcb, 0x6a, 0x88, 0xc0, 0x78, 0x88, 0x4f, 0x9d, 0x3c, 0xba, 0xdc, 0xe3, 0x7e, 0xda, 0x47}: "LenovoN25Q064FlashPartDxe", efi.GUID{0x20, 0xd0, 0xa0, 0x37, 0xd1, 0xcc, 0xdd, 0x11, 0xad, 0x8b, 0x08, 0x00, 0x20, 0x0c, 0x9a, 0x66}: "SystemIdeAtaAtapiPassThruDxe", efi.GUID{0x20, 0xd3, 0x54, 0x23, 0xb3, 0x3e, 0x81, 0x4c, 0x99, 0xf4, 0xcc, 0x4a, 0xe1, 0x43, 0x46, 0x3e}: "EfiEdkCompatibilityPkgTokenSpaceGuid", efi.GUID{0x20, 0xf2, 0xa5, 0x7f, 0x11, 0x9f, 0xb5, 0x49, 0x85, 0xa2, 0x04, 0x5a, 0xac, 0x34, 0x7d, 0x27}: "BackupService", efi.GUID{0x20, 0xf7, 0x53, 0x49, 0x6d, 0x00, 0xf5, 0x41, 0x99, 0x0d, 0x0a, 0xc7, 0x74, 0x2a, 0xbb, 0x60}: "IntelGigabitLan", efi.GUID{0x20, 0xf7, 0x53, 0x49, 0x6d, 0x00, 0xf5, 0x41, 0x99, 0x0d, 0x0a, 0xc7, 0x74, 0x2a, 0xbb, 0x61}: "Intel10GLan", efi.GUID{0x20, 0xf8, 0x6d, 0x36, 0x6d, 0x5d, 0x84, 0x48, 0x96, 0x11, 0xe3, 0xe5, 0x95, 0x09, 0x0d, 0x9e}: "TpmFmpUefiDrv", efi.GUID{0x21, 0x03, 0x33, 0x4d, 0x5f, 0x02, 0xac, 0x4a, 0x90, 0xd8, 0x5e, 0xd9, 0x00, 0x17, 0x3b, 0x63}: "EfiDriverDiagnostics2ProtocolGuid", efi.GUID{0x21, 0x10, 0x3d, 0x6d, 0xfc, 0xe7, 0xc2, 0x42, 0xb3, 0x01, 0xec, 0xe9, 0xdb, 0x19, 0x82, 0x87}: "SystemSpeakerPei", efi.GUID{0x21, 0x15, 0x94, 0xdb, 0xa7, 0x4e, 0x87, 0x4c, 0xa7, 0x11, 0x35, 0x4d, 0xb5, 0xd6, 0xd7, 0xe6}: "OemSmbiosConfigDxe", efi.GUID{0x21, 0x20, 0xc6, 0xb2, 0x80, 0x9e, 0x50, 0x42, 0xb5, 0x67, 0x89, 0x6e, 0xa8, 0x36, 0x0a, 0xd1}: "DellFlashRecoveryImagePei", efi.GUID{0x21, 0x25, 0xb7, 0x6d, 0x6a, 0x25, 0xc1, 0x4c, 0x12, 0xdd, 0x96, 0xa1, 0xe6, 0x69, 0x9e, 0xcc}: "PowerEffcienfyPoliciesSync", efi.GUID{0x21, 0x28, 0xa6, 0x6d, 0xaf, 0x54, 0x36, 0x48, 0x8e, 0xf0, 0x89, 0x05, 0xef, 0x9b, 0xd7, 0x33}: "AmdCpmModernStandbyFeatureDxe", efi.GUID{0x21, 0x2b, 0xf6, 0x5b, 0x18, 0x41, 0xe8, 0x48, 0xaa, 0xe0, 0x46, 0xea, 0x19, 0x61, 0x5c, 0x04}: "H19PlatformServiceSmm", efi.GUID{0x21, 0x33, 0xd0, 0xac, 0x7e, 0x77, 0x3d, 0x4d, 0xb1, 0xc8, 0x20, 0xcf, 0xd8, 0x88, 0x20, 0xc9}: "EfiRngAlgorithmX931AesGuid", efi.GUID{0x21, 0x42, 0x54, 0x3e, 0xde, 0x56, 0x2e, 0x43, 0xbb, 0xc8, 0x46, 0xfa, 0xcf, 0x14, 0xfe, 0x77}: "AmdBiosFlashDxe", efi.GUID{0x21, 0x47, 0xed, 0x66, 0x98, 0x3c, 0x3e, 0x4d, 0x81, 0xe3, 0xd0, 0x3d, 0xd3, 0x9a, 0x72, 0x54}: "EfiUdp6ServiceBindingProtocolGuid", efi.GUID{0x21, 0x4e, 0x6b, 0xe6, 0x5c, 0xd7, 0xfd, 0x45, 0xaf, 0x53, 0x4c, 0xd5, 0x91, 0x8b, 0x5f, 0xeb}: "SbRecoveryDeviceDxe", efi.GUID{0x21, 0x52, 0xa2, 0xf1, 0x8b, 0xa9, 0x89, 0x41, 0x85, 0xf2, 0x0b, 0xa2, 0x26, 0xa3, 0x70, 0xda}: "FTP_DXE", efi.GUID{0x21, 0x5b, 0x4e, 0x96, 0x00, 0x60, 0xd2, 0x23, 0x9e, 0x39, 0x01, 0xa0, 0xc9, 0x69, 0x72, 0x3b}: "SioIoProtocol", efi.GUID{0x21, 0x5b, 0x4e, 0x96, 0x59, 0x64, 0xd2, 0x11, 0x8e, 0x39, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b}: "EfiBlockIoProtocolGuid", efi.GUID{0x21, 0x60, 0x5e, 0x61, 0x3d, 0x60, 0x24, 0x41, 0xb7, 0xea, 0xc4, 0x8a, 0x37, 0x37, 0xba, 0xcd}: "BiosKnobsDataBin", efi.GUID{0x21, 0x62, 0x8a, 0x8a, 0x40, 0xe2, 0x09, 0x4e, 0xab, 0xc3, 0xb1, 0xdf, 0x36, 0x09, 0xb0, 0x27}: "AmdNbioPcieDxe", efi.GUID{0x21, 0x65, 0x84, 0xb9, 0x99, 0xff, 0x53, 0x49, 0x8f, 0xa2, 0x85, 0xc9, 0xad, 0xcc, 0xe5, 0xaf}: "PeiGfxDriver", efi.GUID{0x21, 0x6d, 0x22, 0x2e, 0x68, 0x76, 0x6c, 0x4a, 0x91, 0x6a, 0x77, 0x8a, 0xfa, 0x55, 0xa8, 0x74}: "ClientronPeiDriver", efi.GUID{0x21, 0x73, 0xe8, 0xcc, 0x2f, 0x96, 0x46, 0x44, 0x93, 0xee, 0xc2, 0x91, 0xf1, 0x86, 0x12, 0xa7}: "OhciSmm", efi.GUID{0x21, 0x7c, 0xed, 0xe3, 0xb8, 0x9d, 0xc7, 0x47, 0x8e, 0x7d, 0x7d, 0xb9, 0x7f, 0xe2, 0x06, 0x3e}: "DellSmmCircBuff", efi.GUID{0x21, 0x7d, 0x6f, 0xac, 0x04, 0x37, 0x4d, 0x4d, 0xac, 0xed, 0xfe, 0x32, 0xc6, 0xaa, 0xaf, 0xf4}: "DTbtPeiPreMem", efi.GUID{0x21, 0x7f, 0xb3, 0x36, 0x04, 0x9d, 0xb5, 0x44, 0x95, 0xec, 0x4d, 0xe4, 0xcb, 0x2f, 0xe6, 0xfb}: "menu_locked_selected", efi.GUID{0x21, 0x80, 0xe9, 0x00, 0xfe, 0xf4, 0xcc, 0x46, 0xab, 0x2d, 0x89, 0x4c, 0x37, 0x3a, 0xfa, 0x01}: "DxeEnhancedSpeedstepProtocol", efi.GUID{0x21, 0x84, 0xd8, 0x44, 0xbd, 0x93, 0x25, 0x43, 0xbe, 0x63, 0x05, 0x1b, 0x53, 0x18, 0x89, 0xcb}: "BiosCfgToolSmm", efi.GUID{0x21, 0x85, 0xe1, 0x93, 0x52, 0x9e, 0xeb, 0x4e, 0xa2, 0x30, 0x7c, 0x24, 0xb2, 0xec, 0x03, 0xe8}: "LenovoMfgDoneDxe", efi.GUID{0x21, 0x8a, 0xcc, 0x30, 0x76, 0x04, 0x80, 0x4c, 0xb5, 0xc5, 0xb2, 0x69, 0x47, 0xe1, 0x89, 0x1d}: "XhciDebugger", efi.GUID{0x21, 0x9a, 0xc9, 0x05, 0x0f, 0xc7, 0xd2, 0x4a, 0x8a, 0x5f, 0x35, 0xdf, 0x33, 0x43, 0xf5, 0x1e}: "EfiDevicePathFromTextProtocolGuid", efi.GUID{0x21, 0x9d, 0xcd, 0xe1, 0xc2, 0x0f, 0x8d, 0x43, 0x97, 0x03, 0x04, 0xe6, 0x6d, 0x96, 0x1e, 0x57}: "EfiExtendedSalPalServicesProtocolGuid", efi.GUID{0x21, 0xa2, 0xf2, 0x21, 0xf9, 0x0c, 0x0a, 0x4e, 0x9f, 0xd0, 0x2d, 0xad, 0xdc, 0x02, 0x5e, 0x31}: "BctBaseSmmSTX", efi.GUID{0x21, 0xaa, 0x2c, 0x46, 0x14, 0x76, 0x03, 0x45, 0x83, 0x6e, 0x8a, 0xb6, 0xf4, 0x66, 0x23, 0x31}: "Enter_Setup", efi.GUID{0x21, 0xac, 0x1a, 0x13, 0x45, 0x21, 0xe6, 0x49, 0xa3, 0xe1, 0xa9, 0x7b, 0xce, 0x09, 0x00, 0x20}: "AcpiSpcr", efi.GUID{0x21, 0xae, 0x62, 0x51, 0xed, 0x17, 0xb7, 0x45, 0xaa, 0x9d, 0xe6, 0x69, 0xa3, 0xa3, 0x35, 0x25}: "DellStorageAgentSmmProtocol", efi.GUID{0x21, 0xaf, 0x71, 0x5d, 0x62, 0xf1, 0xae, 0x4f, 0x97, 0xa6, 0x4c, 0x92, 0xca, 0x8f, 0xc6, 0x23}: "FchSmmDispatcher", efi.GUID{0x21, 0xb2, 0xc7, 0x47, 0x2a, 0xc4, 0xd2, 0x11, 0x8e, 0x57, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b}: "EfiShellEnvironment2Guid", efi.GUID{0x21, 0xc0, 0xa7, 0xae, 0xab, 0xb7, 0xce, 0x4e, 0x80, 0x35, 0x53, 0x6c, 0x23, 0x4a, 0x40, 0xdc}: "SyncBIOSimagePei", efi.GUID{0x21, 0xc3, 0x07, 0xc0, 0x7e, 0xe8, 0xb4, 0x46, 0xa5, 0xb5, 0xc3, 0x3e, 0x84, 0x5d, 0x89, 0xeb}: "WarmBootDxe", efi.GUID{0x21, 0xc3, 0x2a, 0xcd, 0xa6, 0x3e, 0xa1, 0x4a, 0x92, 0xb7, 0xda, 0xc1, 0x3f, 0x90, 0x08, 0x83}: "AmdCpmAudioFeatureDxe", efi.GUID{0x21, 0xc4, 0xf7, 0xf1, 0xdf, 0x96, 0x8a, 0x4c, 0xaf, 0x91, 0x62, 0xa3, 0xc9, 0xae, 0xd3, 0x10}: "EfiTxtLockConfig", efi.GUID{0x21, 0xc6, 0xae, 0x88, 0x0a, 0x2e, 0x80, 0x42, 0xbf, 0xce, 0x8a, 0xc7, 0xe3, 0x1e, 0x77, 0x4f}: "BH611FJ1", efi.GUID{0x21, 0xca, 0x5d, 0x24, 0x7b, 0xfb, 0xd3, 0x11, 0x8f, 0x01, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b}: "EfiPxeBaseCodeCallbackProtocolGuid", efi.GUID{0x21, 0xd0, 0x80, 0xae, 0x8e, 0x61, 0xd4, 0x11, 0xbc, 0xd7, 0x00, 0x80, 0xc7, 0x3c, 0x88, 0x81}: "EfiDataHubProtocolGuid", efi.GUID{0x21, 0xd9, 0x48, 0x8b, 0xf7, 0x54, 0xe4, 0x11, 0x9f, 0xf3, 0x04, 0x7d, 0x7b, 0x99, 0xe0, 0x97}: "WirelessDeviceSupportDxe", efi.GUID{0x21, 0xda, 0x61, 0xb7, 0xec, 0x76, 0xb0, 0x4a, 0x99, 0xe8, 0x4d, 0xc2, 0x51, 0xb7, 0x2c, 0xb5}: "DellSmmEcProtocol", efi.GUID{0x21, 0xdc, 0x0a, 0xc3, 0xa5, 0x4a, 0x13, 0x43, 0xa7, 0xe7, 0x53, 0x39, 0x5b, 0x42, 0xbe, 0xab}: "AmdCpmDisplayFeatureSmmBr", efi.GUID{0x21, 0xe5, 0x7f, 0x93, 0xae, 0x95, 0x1a, 0x4d, 0x89, 0x29, 0x48, 0xbc, 0xd9, 0x0a, 0xd3, 0x1a}: "EfiIp6ConfigProtocolGuid", efi.GUID{0x21, 0xec, 0xd1, 0x11, 0x68, 0xe5, 0xb0, 0x4e, 0x8e, 0x1d, 0xa0, 0x80, 0x97, 0x72, 0xb6, 0x06}: "DellEnhancedVersionProtocol", efi.GUID{0x21, 0xf3, 0xbe, 0x5c, 0x75, 0x9b, 0x20, 0x31, 0x88, 0xcd, 0x5d, 0x12, 0x34, 0x12, 0xcb, 0xcd}: "ATIPwrXSmi", efi.GUID{0x21, 0xf6, 0x0c, 0xf1, 0x02, 0x15, 0x30, 0x41, 0xa8, 0x60, 0xd3, 0x00, 0x45, 0x9e, 0x2c, 0x08}: "MEbxInvokeDxe", efi.GUID{0x21, 0xfa, 0xc6, 0x1c, 0x9d, 0x4a, 0xb4, 0x46, 0x9e, 0xbf, 0x9e, 0x42, 0xf5, 0xd0, 0x44, 0xf2}: "FjCapsuleResetHookSmm", efi.GUID{0x21, 0xfd, 0xc9, 0xdb, 0xd8, 0xfa, 0xb0, 0x45, 0x9e, 0x78, 0x27, 0x15, 0x88, 0x67, 0xcc, 0x93}: "BdsAllDriversConnectedProtocolGuid", efi.GUID{0x22, 0x17, 0xa8, 0xb1, 0xc3, 0x50, 0xa6, 0x4a, 0x8b, 0xbf, 0xdd, 0x0d, 0x83, 0x98, 0x91, 0x34}: "HhmSmm", efi.GUID{0x22, 0x1e, 0xfd, 0xed, 0xbf, 0xc6, 0x06, 0x4b, 0xa4, 0xb2, 0x5a, 0xe0, 0x50, 0xc8, 0x4a, 0x37}: "USBControllerSmm", efi.GUID{0x22, 0x25, 0x9f, 0x9d, 0x2c, 0x24, 0x9b, 0x43, 0xa9, 0xac, 0x24, 0x8d, 0xfe, 0x24, 0x46, 0x39}: "FcclSmbios", efi.GUID{0x22, 0x27, 0xc8, 0x32, 0x56, 0xa7, 0xd4, 0x43, 0x9b, 0xb5, 0xe0, 0x7e, 0x0b, 0x14, 0x95, 0xf7}: "DellFmpTpm", efi.GUID{0x22, 0x29, 0x2a, 0x20, 0x27, 0x8c, 0x43, 0x49, 0x98, 0x55, 0x26, 0x18, 0x0b, 0xf9, 0xf1, 0x13}: "VariableInfo", efi.GUID{0x22, 0x2b, 0x87, 0x2b, 0x11, 0x6c, 0xfd, 0x4d, 0x99, 0x4a, 0x96, 0xbc, 0x13, 0x92, 0x0a, 0x43}: "fTPMTcg2Smm", efi.GUID{0x22, 0x2e, 0xb7, 0x9d, 0x62, 0x92, 0x18, 0x4a, 0x8f, 0xe0, 0x85, 0xe0, 0x3d, 0xfa, 0x96, 0x73}: "SmmCpuSync2Protocol", efi.GUID{0x22, 0x34, 0x67, 0xf8, 0xde, 0x16, 0x9c, 0x44, 0x87, 0x28, 0xab, 0x03, 0x61, 0xdb, 0xf9, 0xf0}: "LegacyInterruptHookDxe", efi.GUID{0x22, 0x3b, 0x1a, 0x91, 0x01, 0x83, 0xd8, 0x4c, 0x83, 0x5b, 0xcc, 0x70, 0x82, 0x6d, 0x58, 0x29}: "AmdiGpuVbsWA", efi.GUID{0x22, 0x4e, 0x23, 0x72, 0x17, 0x8a, 0x30, 0x4e, 0xae, 0xc5, 0xf3, 0xb3, 0x39, 0x7e, 0x66, 0x91}: "SxCallback", efi.GUID{0x22, 0x4e, 0x6b, 0xa7, 0x0a, 0xb5, 0x1d, 0x40, 0x8b, 0x35, 0x51, 0x24, 0xb0, 0xba, 0x41, 0x04}: "TcgPeiPolicyGuid", efi.GUID{0x22, 0x52, 0x7a, 0x89, 0x8b, 0x97, 0xab, 0x49, 0xba, 0xa0, 0xfc, 0x52, 0x3f, 0xb9, 0x26, 0x02}: "FjThermalSmm", efi.GUID{0x22, 0x55, 0x97, 0x5e, 0x6f, 0x17, 0x2d, 0x4e, 0xbb, 0x25, 0x64, 0xad, 0xcc, 0x77, 0x92, 0xa4}: "BaseDebugDeviceLibNull", efi.GUID{0x22, 0x5b, 0x4e, 0x96, 0x59, 0x64, 0xd2, 0x11, 0x8e, 0x39, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b}: "EfiSimpleFileSystemProtocolGuid", efi.GUID{0x22, 0x64, 0x1e, 0x42, 0x00, 0xeb, 0xd9, 0x4e, 0xa5, 0x8e, 0xd0, 0x16, 0x66, 0xcb, 0x3d, 0xae}: "SmbiosDataUpdateDxeFischerLakeRP", efi.GUID{0x22, 0x6a, 0xe5, 0xb2, 0xe7, 0xdf, 0x50, 0x48, 0x97, 0xae, 0x10, 0xe7, 0x61, 0x12, 0xde, 0x05}: "BatteryInfoDxe", efi.GUID{0x22, 0x7a, 0x7c, 0xad, 0x5d, 0x5f, 0x64, 0x48, 0xa8, 0xef, 0x2b, 0x78, 0xad, 0x0a, 0x52, 0xd8}: "DellUsbExtDxe", efi.GUID{0x22, 0x7c, 0xe9, 0xbd, 0xeb, 0xd8, 0x25, 0x46, 0xbc, 0x36, 0x77, 0x34, 0x57, 0xae, 0x25, 0xdb}: "AMDGenericGop", efi.GUID{0x22, 0x7e, 0x6f, 0x65, 0x01, 0x57, 0x41, 0x43, 0xa9, 0xa7, 0x99, 0xa5, 0xd4, 0x0a, 0x52, 0x45}: "AmdFabricSspDxe", efi.GUID{0x22, 0x7e, 0x91, 0xff, 0x28, 0xa2, 0x8d, 0x44, 0xbd, 0xaa, 0x68, 0xef, 0xcc, 0xdd, 0xa5, 0xd3}: "TxtDxe", efi.GUID{0x22, 0x83, 0x89, 0x32, 0xa1, 0x2d, 0x4a, 0x47, 0xba, 0xaa, 0xf3, 0xf7, 0xcf, 0x56, 0x94, 0x70}: "HardwareInterrupt2Protocol", efi.GUID{0x22, 0x89, 0x0d, 0xd2, 0xf8, 0xa2, 0x80, 0x4f, 0xff, 0xff, 0xff, 0xff, 0xdc, 0x89, 0x3c, 0x8d}: "XnotePlatformResetSmm", efi.GUID{0x22, 0x9e, 0x31, 0x60, 0x47, 0x75, 0xc6, 0x4b, 0xb3, 0x93, 0xfb, 0xa7, 0x40, 0x9f, 0x4e, 0x25}: "OemReadyToBoot", efi.GUID{0x22, 0x9f, 0x7b, 0xfc, 0xf6, 0x2a, 0xdc, 0x4b, 0x9b, 0x94, 0x38, 0x64, 0x6f, 0x1e, 0x08, 0x30}: "AsusIoSecInterface", efi.GUID{0x22, 0xa8, 0xa5, 0xea, 0xce, 0xea, 0x8b, 0x48, 0xb1, 0x87, 0x11, 0xab, 0xc8, 0xe7, 0x2e, 0x69}: "AmdMemS3BlackListPei", efi.GUID{0x22, 0xaf, 0x03, 0xf3, 0x04, 0x68, 0x4b, 0x49, 0xa2, 0x8a, 0xa0, 0x3b, 0xe7, 0xd5, 0xc7, 0x42}: "CsmRt32Asm", efi.GUID{0x22, 0xb0, 0x3c, 0x3b, 0x14, 0x26, 0x94, 0x49, 0x87, 0x8e, 0xc7, 0x38, 0xce, 0x85, 0xf6, 0xed}: "ApobDummyPei", efi.GUID{0x22, 0xbc, 0x82, 0x5f, 0xe1, 0x85, 0x9d, 0x48, 0x93, 0xa1, 0x42, 0xbb, 0xd6, 0x64, 0xb4, 0x34}: "IioCfgUpdateDxeLightningRidgeEXECB1", efi.GUID{0x22, 0xc4, 0x37, 0x65, 0x1a, 0xdc, 0xbb, 0x4a, 0x9d, 0x25, 0xea, 0xaf, 0xe3, 0xd3, 0xdf, 0xcd}: "AMDPhxGenericGop", efi.GUID{0x22, 0xc5, 0x27, 0xe2, 0xfe, 0xd5, 0x53, 0x4a, 0x87, 0xb1, 0x0f, 0xbe, 0x57, 0x0f, 0x98, 0xe9}: "ObservableProtocolGuid", efi.GUID{0x22, 0xd1, 0xda, 0x9e, 0x4b, 0x90, 0x50, 0x41, 0x9a, 0xc6, 0xb9, 0x46, 0x53, 0x75, 0x04, 0x53}: "AcChargeBeepSMI", efi.GUID{0x22, 0xdb, 0x6e, 0xc5, 0x78, 0x3d, 0x05, 0x47, 0xa2, 0x22, 0xbd, 0xd6, 0xbd, 0x15, 0x4d, 0xa0}: "TpmClearOnRollbackSmm", efi.GUID{0x22, 0xe2, 0x7f, 0x5d, 0xd3, 0xb0, 0x0f, 0x40, 0xb0, 0x92, 0x56, 0x57, 0x62, 0x3b, 0xd0, 0xbe}: "BootBlockProtectionDxe", efi.GUID{0x22, 0xe3, 0x16, 0x09, 0x40, 0x37, 0xce, 0x31, 0xad, 0x62, 0xbd, 0x17, 0x2c, 0xec, 0xca, 0x36}: "AsrockRaidSetup", efi.GUID{0x22, 0xe3, 0x66, 0x0a, 0x40, 0x37, 0xce, 0x4c, 0xad, 0x62, 0xbd, 0x17, 0x2c, 0xec, 0xca, 0x35}: "ScsiDisk", efi.GUID{0x22, 0xe8, 0x91, 0xa3, 0x44, 0x70, 0xf4, 0x4c, 0xbe, 0x5b, 0x34, 0x5e, 0x44, 0xb8, 0x62, 0x7c}: "SgPlatformPolicyPpi", efi.GUID{0x22, 0xec, 0xa0, 0x38, 0xe7, 0xfb, 0x11, 0x49, 0x8b, 0xc1, 0x17, 0x6e, 0x0d, 0x6c, 0x1d, 0xbd}: "IsaAcpi", efi.GUID{0x22, 0xec, 0xbc, 0x0d, 0xbe, 0x0a, 0xf4, 0x4b, 0xbf, 0xee, 0xa0, 0x4d, 0x1c, 0xa6, 0xf6, 0x43}: "PlatformInitDxeHedt", efi.GUID{0x22, 0xf6, 0xc8, 0x75, 0x90, 0x80, 0x17, 0x40, 0x85, 0x0c, 0x3f, 0xa4, 0x0b, 0x02, 0x79, 0x84}: "SmcMemMapOut", efi.GUID{0x23, 0x02, 0x5a, 0x38, 0x0f, 0xc2, 0x20, 0x49, 0x84, 0xde, 0xa0, 0x1f, 0xc9, 0x11, 0xe9, 0x22}: "DBGP", efi.GUID{0x23, 0x0b, 0x2c, 0x31, 0xf2, 0x93, 0x6e, 0x46, 0x96, 0x1b, 0x6d, 0x58, 0x4d, 0x0d, 0x26, 0xee}: "ExpansionSlotConfigSmm", efi.GUID{0x23, 0x0c, 0xa0, 0x0f, 0xca, 0xca, 0x15, 0x55, 0x6a, 0xd3, 0xb7, 0xd8, 0x75, 0x40, 0xdf, 0xa3}: "BLSeedTest", efi.GUID{0x23, 0x0d, 0x12, 0x72, 0xff, 0x40, 0xb5, 0x4a, 0x85, 0x5c, 0xc8, 0xc6, 0xde, 0x9a, 0xae, 0x54}: "FchSmmDiagDispatcher", efi.GUID{0x23, 0x1e, 0xb9, 0x10, 0xba, 0x11, 0xb5, 0x4c, 0x90, 0x12, 0xaf, 0x50, 0x16, 0x00, 0x5d, 0xd3}: "SelfHealingDetectCorruptionDxe", efi.GUID{0x23, 0x26, 0xc2, 0x10, 0x6f, 0xdb, 0x21, 0x47, 0xaa, 0x30, 0x4c, 0x12, 0xaf, 0x42, 0x30, 0xa7}: "IdeRecovery", efi.GUID{0x23, 0x26, 0xc2, 0x10, 0x6f, 0xdb, 0x21, 0x47, 0xaa, 0x30, 0x9c, 0x12, 0xaf, 0x42, 0x30, 0xf8}: "ExtRecovery", efi.GUID{0x23, 0x31, 0xda, 0x5e, 0x40, 0x08, 0xf7, 0x45, 0xad, 0xab, 0x13, 0xa6, 0x55, 0xef, 0x3b, 0xb7}: "DellAcpiConfig", efi.GUID{0x23, 0x3f, 0x09, 0x40, 0x0c, 0x63, 0x26, 0x46, 0x9c, 0x48, 0x40, 0x37, 0x3b, 0x19, 0xcb, 0xbe}: "EfiKmsFormatGeneric2048Guid", efi.GUID{0x23, 0x41, 0xbc, 0x7b, 0x5e, 0x5d, 0x1c, 0x4c, 0x95, 0xd1, 0x30, 0xeb, 0xa4, 0x87, 0x01, 0xca}: "S4SlpDelaySmm", efi.GUID{0x23, 0x44, 0x0c, 0xf4, 0x5f, 0x45, 0x67, 0x45, 0xa1, 0x11, 0x6f, 0x81, 0x13, 0x3c, 0xe9, 0xbb}: "OledInit", efi.GUID{0x23, 0x4d, 0xa4, 0x91, 0xcc, 0x5d, 0x25, 0x44, 0x91, 0xe6, 0x42, 0xda, 0x61, 0x64, 0x0b, 0xa7}: "AsusBootDeviceSkip", efi.GUID{0x23, 0x4f, 0xa4, 0xb1, 0xcc, 0xed, 0x25, 0x44, 0xa1, 0xe6, 0x22, 0xda, 0x61, 0x64, 0x0b, 0xa7}: "AsusESALaunchDetect", efi.GUID{0x23, 0x53, 0x1c, 0x6b, 0x7e, 0x29, 0x20, 0x47, 0xb9, 0x59, 0x56, 0xd6, 0xf3, 0x0f, 0xee, 0x00}: "YieldingDelayDxe", efi.GUID{0x23, 0x56, 0x41, 0x41, 0x74, 0xa0, 0x69, 0x43, 0x98, 0xc8, 0x37, 0x07, 0x70, 0xae, 0xd4, 0x2b}: "AmdMemSmbiosV2RsPei", efi.GUID{0x23, 0x5c, 0xb7, 0x76, 0x4f, 0xfe, 0x17, 0x4e, 0xa2, 0xad, 0x1a, 0x65, 0x3d, 0xbb, 0x49, 0x4a}: "EfiExtendedSalLockServicesProtocol", efi.GUID{0x23, 0x71, 0x8a, 0xe8, 0x49, 0x49, 0x54, 0x41, 0x89, 0xd4, 0xd1, 0xd9, 0x3e, 0x53, 0x1b, 0x71}: "BcomCvIdm", efi.GUID{0x23, 0x72, 0xfe, 0xfc, 0x91, 0x72, 0xe7, 0x4c, 0x85, 0xbd, 0xde, 0xe4, 0x81, 0xbb, 0x71, 0x15}: "AmdSocFp8PhxDxe", efi.GUID{0x23, 0x7b, 0xab, 0x39, 0x4e, 0x81, 0x89, 0x42, 0x9b, 0xd9, 0x67, 0xeb, 0x02, 0x5c, 0x35, 0xdf}: "PowerManagementDxe2", efi.GUID{0x23, 0x9a, 0x06, 0x9a, 0x6f, 0x83, 0xdf, 0x41, 0xaf, 0x02, 0xf1, 0x4b, 0xec, 0x97, 0xde, 0x72}: "FmpDxe", efi.GUID{0x23, 0x9a, 0x83, 0xc9, 0x0e, 0x4b, 0x5e, 0x46, 0x8f, 0x29, 0x14, 0xa5, 0x01, 0x0c, 0xa7, 0xdf}: "PerDisCptInRomPostFlag", efi.GUID{0x23, 0x9b, 0x00, 0xcf, 0xb9, 0x17, 0xee, 0x43, 0xbb, 0x69, 0x43, 0x93, 0xca, 0x18, 0x6b, 0x1c}: "LEMDeviceGuardInit", efi.GUID{0x23, 0x9b, 0x4d, 0x3b, 0xac, 0x95, 0xf6, 0x44, 0x9f, 0xcd, 0x0e, 0x95, 0x94, 0x58, 0x6c, 0x72}: "BdsLibStringPackageGuid", efi.GUID{0x23, 0x9c, 0x55, 0x5e, 0xaa, 0x1f, 0xe1, 0x4a, 0x8d, 0x4a, 0xc6, 0xcf, 0x02, 0x6c, 0x76, 0x6f}: "FirmwareIdGuid", efi.GUID{0x23, 0x9f, 0x3e, 0xd5, 0x7f, 0xcf, 0x70, 0x42, 0xad, 0xc4, 0x05, 0xe2, 0x92, 0x04, 0x71, 0xef}: "AmdSmmControl", efi.GUID{0x23, 0xa1, 0xff, 0xfb, 0x40, 0x45, 0x39, 0x44, 0xa9, 0x01, 0x88, 0x99, 0xaa, 0xbc, 0xde, 0xf0}: "SyncMSR", efi.GUID{0x23, 0xa2, 0x8c, 0x34, 0x7b, 0x63, 0x30, 0x44, 0xba, 0xf3, 0x1c, 0xe5, 0xd3, 0x22, 0xb3, 0xfd}: "SetupBoot", efi.GUID{0x23, 0xa2, 0x9d, 0x9a, 0x17, 0xb1, 0x99, 0x47, 0xa0, 0x70, 0x4d, 0x2c, 0xfc, 0xb1, 0xc4, 0x42}: "F75111PeiPkg", efi.GUID{0x23, 0xa2, 0xaf, 0x61, 0xc8, 0x8a, 0x40, 0x44, 0x9a, 0xb5, 0x76, 0x2b, 0x1b, 0xf0, 0x51, 0x56}: "Mtftp4Dxe", efi.GUID{0x23, 0xa5, 0xf5, 0x5d, 0x36, 0x30, 0x1a, 0x4e, 0x83, 0xe3, 0x35, 0xd7, 0x55, 0xeb, 0x40, 0x81}: "D01ODMWmiDxe", efi.GUID{0x23, 0xa6, 0x0a, 0x33, 0xe7, 0x79, 0x7c, 0x46, 0x81, 0xaa, 0xde, 0x9e, 0xe0, 0xf9, 0x6a, 0x52}: "SmmThunk", efi.GUID{0x23, 0xb2, 0xa9, 0x52, 0xb8, 0xfa, 0x24, 0x4a, 0xae, 0xa6, 0x46, 0x1a, 0x59, 0xbd, 0x3f, 0x33}: "AmdSmbiosDxe", efi.GUID{0x23, 0xb2, 0xc7, 0x47, 0x2a, 0xc4, 0xd2, 0x11, 0x8e, 0x57, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b}: "EfiShellInterfaceGuid", efi.GUID{0x23, 0xb5, 0xef, 0xf1, 0x59, 0x3d, 0x88, 0x48, 0xbb, 0x71, 0xea, 0xa5, 0xa9, 0x66, 0x28, 0xfa}: "SecurityStubDxe", efi.GUID{0x23, 0xbe, 0x07, 0x61, 0xaa, 0x5b, 0xc9, 0x4f, 0x8f, 0xc9, 0xf2, 0xae, 0xa7, 0x7b, 0x07, 0xa7}: "FireWireOhci", efi.GUID{0x23, 0xbe, 0xd0, 0xdc, 0x86, 0x95, 0xf4, 0x40, 0xb6, 0x43, 0x06, 0x52, 0x2c, 0xed, 0x4e, 0xde}: "EfiPeiSecurity2PpiGuid", efi.GUID{0x23, 0xbf, 0x03, 0xd9, 0xde, 0xe1, 0xf0, 0x4d, 0x8b, 0x96, 0x73, 0xb6, 0xf2, 0xc2, 0xb7, 0x97}: "DevFwUpd", efi.GUID{0x23, 0xcf, 0x13, 0xb9, 0x49, 0x9b, 0xac, 0x47, 0xa7, 0xc8, 0xea, 0x65, 0x39, 0x50, 0x2a, 0x40}: "ExtendOperatingAmbientTemperatureModePEI", efi.GUID{0x23, 0xd1, 0xc5, 0x6a, 0xe5, 0xc6, 0xba, 0x41, 0x9b, 0xe3, 0xa0, 0x37, 0x1e, 0xe5, 0x4b, 0x78}: "SetupConfigUpdateDxeNeonCityFPGA", efi.GUID{0x23, 0xd2, 0x22, 0x0d, 0xa7, 0xe9, 0xc5, 0x00, 0xbe, 0x84, 0x3f, 0xca, 0xf2, 0x5e, 0xc1, 0xa7}: "InstallMadtDxe", efi.GUID{0x23, 0xe7, 0x6a, 0x32, 0x32, 0xae, 0x89, 0x45, 0x98, 0xb8, 0xca, 0xc2, 0x3c, 0xdc, 0xc1, 0xb1}: "PcAtChipsetPkgTokenSpaceGuid", efi.GUID{0x23, 0xf1, 0xa9, 0xe8, 0xdf, 0x07, 0xe2, 0x46, 0x9b, 0xf6, 0xc5, 0x93, 0xca, 0xf0, 0x6a, 0x62}: "HardwareHealthManagementDxe", efi.GUID{0x23, 0xfe, 0xb7, 0xce, 0xa1, 0x21, 0x5c, 0x4b, 0x8e, 0x92, 0x2e, 0x7b, 0x52, 0xa9, 0x50, 0x76}: "Legacy8259", efi.GUID{0x24, 0x03, 0xe1, 0x9f, 0x0e, 0xd1, 0xf2, 0x4c, 0x99, 0xc4, 0xf1, 0xb5, 0xa0, 0xb4, 0x73, 0x2a}: "PostMessageSmm", efi.GUID{0x24, 0x07, 0x74, 0x31, 0x96, 0x5f, 0xca, 0x48, 0xaa, 0x0f, 0x33, 0x2a, 0xca, 0x6b, 0x9a, 0x75}: "SpcrAcpiDxe", efi.GUID{0x24, 0x0a, 0x6e, 0x7f, 0xfd, 0xdb, 0xdf, 0x43, 0x97, 0x55, 0x02, 0x92, 0xd7, 0xd3, 0xdd, 0x48}: "IsaFloppyPei", efi.GUID{0x24, 0x13, 0xd4, 0x5d, 0x1e, 0xe8, 0x82, 0x45, 0xa4, 0x5a, 0xbf, 0x8e, 0x53, 0xa9, 0x15, 0x48}: "OdmDxeGNVS", efi.GUID{0x24, 0x18, 0xc4, 0x8e, 0x58, 0x66, 0x55, 0x4b, 0x93, 0x64, 0x77, 0x1a, 0x06, 0x58, 0xf5, 0xe2}: "WarmResetFlagShell", efi.GUID{0x24, 0x24, 0x88, 0x01, 0xb1, 0x63, 0x30, 0x4e, 0x90, 0xe8, 0x4c, 0x2c, 0x34, 0x4e, 0x89, 0xc0}: "RecoveryCpuInitPei", efi.GUID{0x24, 0x2a, 0x42, 0x7a, 0xf1, 0x0c, 0x7d, 0x40, 0xaa, 0xf1, 0x6a, 0x74, 0xc0, 0x10, 0x3b, 0x98}: "SystemUsbHidPointerDxe", efi.GUID{0x24, 0x38, 0x51, 0xf5, 0x68, 0xba, 0x45, 0x01, 0xae, 0xd9, 0xe0, 0xa8, 0x9f, 0xab, 0x40, 0xb9}: "DpcDxe", efi.GUID{0x24, 0x45, 0x96, 0xda, 0xe5, 0xd0, 0x32, 0x4c, 0x90, 0xd0, 0x01, 0x00, 0x21, 0xcf, 0xb2, 0xdc}: "PMBUSDXE", efi.GUID{0x24, 0x46, 0x50, 0x00, 0x59, 0x8a, 0xeb, 0x4e, 0xbd, 0x0f, 0x6b, 0x36, 0xe9, 0x61, 0x28, 0xe0}: "FpNvStorage", efi.GUID{0x24, 0x48, 0x22, 0x71, 0x22, 0x6c, 0xd7, 0x45, 0x9c, 0x1a, 0x9e, 0x7c, 0xbf, 0xf1, 0x89, 0x24}: "NCT6106DSECPeiInit", efi.GUID{0x24, 0x4a, 0xa5, 0x67, 0x4f, 0x3f, 0x48, 0x40, 0x87, 0x87, 0x3e, 0x5a, 0xa2, 0xa0, 0xb7, 0xd2}: "SAPolicy", efi.GUID{0x24, 0x4c, 0x84, 0x75, 0xfe, 0xa8, 0x31, 0x43, 0x8d, 0x0b, 0x55, 0x4c, 0x46, 0x06, 0x00, 0x9b}: "RTKUSB", efi.GUID{0x24, 0x52, 0x84, 0x0a, 0x75, 0x86, 0x41, 0x42, 0x8a, 0xe9, 0x4d, 0x94, 0xc9, 0x3d, 0xeb, 0x90}: "PauseKey", efi.GUID{0x24, 0x54, 0x65, 0xdf, 0x25, 0x00, 0x4f, 0x4d, 0x82, 0xb0, 0x6d, 0xac, 0x25, 0x8b, 0xa8, 0x79}: "NetworkOffLineLockerProtocol", efi.GUID{0x24, 0x73, 0x6e, 0x05, 0x18, 0xa7, 0x5b, 0x46, 0x9a, 0x84, 0x22, 0x8f, 0x06, 0x64, 0x2b, 0x4f}: "DxePlatform", efi.GUID{0x24, 0x74, 0xff, 0xa1, 0x1a, 0x7a, 0x8e, 0x47, 0xa9, 0xe4, 0x92, 0xf3, 0x57, 0xd1, 0x28, 0x32}: "LoaderMemoryMapInfo", efi.GUID{0x24, 0x7f, 0x32, 0xfa, 0xe2, 0x2d, 0x60, 0x4b, 0x87, 0x1a, 0x43, 0x6b, 0xc9, 0x06, 0x05, 0xd4}: "LEMComputraceApiDxe", efi.GUID{0x24, 0x80, 0x52, 0xfa, 0xa6, 0x59, 0x89, 0x46, 0xbe, 0xa0, 0xb5, 0x55, 0xd8, 0x7d, 0x7d, 0xbe}: "FpgaFvDataLibDxe", efi.GUID{0x24, 0x8b, 0x4d, 0xf6, 0x12, 0x1f, 0xa4, 0x47, 0x91, 0xad, 0x5e, 0xfc, 0x61, 0x36, 0xb7, 0x36}: "LEMDiskRelatedProtocolNull", efi.GUID{0x24, 0x8f, 0x42, 0xe7, 0x0c, 0xef, 0xe4, 0x4a, 0xb5, 0x21, 0x9d, 0x24, 0x74, 0x94, 0x90, 0x0e}: "AsusOnBoardDeviceOprom", efi.GUID{0x24, 0xa8, 0x0c, 0x47, 0x87, 0xf6, 0x48, 0x41, 0x88, 0x5e, 0x46, 0x31, 0x12, 0x41, 0xc2, 0x01}: "PchEhciPei", efi.GUID{0x24, 0xaa, 0xb0, 0x12, 0x37, 0xac, 0xf2, 0x43, 0xa8, 0x4e, 0x3c, 0xca, 0x64, 0x37, 0xbf, 0x6d}: "AmdLegacyInterrupt", efi.GUID{0x24, 0xac, 0x93, 0xbc, 0xaa, 0xbb, 0xde, 0x49, 0x8e, 0xb5, 0x23, 0x96, 0xf8, 0x79, 0x29, 0xe0}: "AmdNbioAlibRMBDxe", efi.GUID{0x24, 0xac, 0xf1, 0x96, 0x21, 0x2b, 0xfa, 0x45, 0xa0, 0xb5, 0x67, 0x01, 0x0c, 0x95, 0xe9, 0xd8}: "AhciMmioSmm", efi.GUID{0x24, 0xb7, 0x20, 0x2c, 0x03, 0xc9, 0x5d, 0x43, 0xa5, 0xe5, 0x28, 0x99, 0xe2, 0x91, 0xd9, 0x4e}: "AmdCpmPmfBoardDxe", efi.GUID{0x24, 0xb7, 0x37, 0x3b, 0xf7, 0x4a, 0x35, 0x4a, 0x97, 0xb3, 0xd2, 0xfb, 0x8f, 0x4f, 0x56, 0x3c}: "DellStopShipConfig", efi.GUID{0x24, 0xb7, 0x8e, 0x8f, 0x9e, 0x13, 0x32, 0x4a, 0xa3, 0xd0, 0xf7, 0xd3, 0x76, 0xe5, 0xb9, 0x08}: "RecoveryDeviceMap", efi.GUID{0x24, 0xb9, 0xbe, 0x43, 0xeb, 0x62, 0xfb, 0x45, 0xb0, 0xbf, 0x9a, 0x97, 0xaf, 0x46, 0x3d, 0x68}: "IteEcDxe", efi.GUID{0x24, 0xbb, 0x83, 0x43, 0x0f, 0x2e, 0xab, 0x47, 0x89, 0x55, 0xb9, 0xee, 0x71, 0x0a, 0xce, 0x52}: "FjLanRtl8111xSmm", efi.GUID{0x24, 0xbc, 0x73, 0x69, 0xf4, 0x57, 0xb0, 0x46, 0x87, 0x66, 0xc0, 0x25, 0xab, 0xb9, 0x7a, 0xa4}: "NvmeShutdownNotificationDxe", efi.GUID{0x24, 0xc7, 0x26, 0x1b, 0xd4, 0xc7, 0xe6, 0x4d, 0xb0, 0xb1, 0xc6, 0x22, 0xbc, 0x29, 0x37, 0xff}: "SmartCoverPortingDxe", efi.GUID{0x24, 0xca, 0xca, 0x9d, 0xf8, 0x81, 0xec, 0x43, 0x91, 0xca, 0x25, 0xcc, 0x68, 0xf6, 0x75, 0x83}: "AmdPlatformRasRmbDxe", efi.GUID{0x24, 0xd0, 0x18, 0x3d, 0x2f, 0xea, 0xdd, 0x4e, 0x9f, 0xe3, 0x67, 0x2a, 0x37, 0xdb, 0x80, 0x2d}: "OsTransparentUpdate", efi.GUID{0x24, 0xd3, 0x94, 0x9d, 0x45, 0x0d, 0x7d, 0x40, 0x93, 0x37, 0x73, 0x4c, 0xf9, 0x2c, 0x0e, 0xf2}: "KeyboardConfig", efi.GUID{0x24, 0xd5, 0x95, 0xe9, 0x97, 0x6b, 0xbf, 0x41, 0x8c, 0xe3, 0xd7, 0xc8, 0x89, 0x74, 0x22, 0x46}: "H19ReadBackDefaultData", efi.GUID{0x24, 0xd6, 0xfb, 0xc1, 0xea, 0x27, 0xd1, 0x40, 0xaa, 0x48, 0x94, 0xc3, 0xdc, 0x5c, 0x7e, 0x0d}: "SbPei", efi.GUID{0x24, 0xdf, 0xec, 0x37, 0x53, 0x84, 0x6a, 0x47, 0xab, 0x58, 0xf4, 0xcf, 0x8b, 0xfe, 0x67, 0x42}: "LenovoPhxGopDxe", efi.GUID{0x24, 0xe3, 0x2d, 0x39, 0x62, 0xe9, 0x7a, 0x4a, 0xb6, 0x2d, 0x10, 0x41, 0x4a, 0xf6, 0xb9, 0xc8}: "HousingMonitoringDxe", efi.GUID{0x24, 0xe4, 0x58, 0x9f, 0x6b, 0xb9, 0xa5, 0x45, 0xad, 0xdc, 0xd2, 0xfe, 0x39, 0x4a, 0x99, 0xd9}: "AmiPeiEndMemoryDetect", efi.GUID{0x24, 0xe6, 0xc4, 0x03, 0x28, 0xac, 0xd3, 0x11, 0x9a, 0x2d, 0x00, 0x90, 0x29, 0x3f, 0xc1, 0x4d}: "EfiPxeDhcp4Protocol", efi.GUID{0x24, 0xe8, 0xac, 0xa9, 0x86, 0x44, 0xe6, 0x44, 0x91, 0x5a, 0x8f, 0xba, 0xed, 0x07, 0x99, 0xb9}: "SetupDataProviderDxe", efi.GUID{0x24, 0xea, 0x97, 0x2e, 0x66, 0x58, 0x40, 0x42, 0xa8, 0x91, 0xd2, 0x0a, 0xfc, 0x60, 0x74, 0xff}: "AmdFabricZpSmm", efi.GUID{0x24, 0xec, 0x17, 0x93, 0xb0, 0x7c, 0x0e, 0x4d, 0x8b, 0x32, 0x2e, 0xd9, 0x20, 0x9c, 0xd8, 0xaf}: "EfiPaddingRsassaPkcs1V1P5Guid", efi.GUID{0x25, 0x01, 0xd7, 0x86, 0xa3, 0xba, 0x96, 0x42, 0xa6, 0x2f, 0x60, 0x2b, 0xeb, 0xbb, 0x90, 0x81}: "DxeIpl", efi.GUID{0x25, 0x03, 0xf3, 0x9c, 0x5c, 0xdc, 0x56, 0x45, 0xa8, 0xb0, 0x74, 0x21, 0x5c, 0x5f, 0x7f, 0xc4}: "HeciPei", efi.GUID{0x25, 0x19, 0x8e, 0x01, 0xa2, 0xd6, 0x2a, 0x4a, 0x89, 0x58, 0x81, 0x76, 0x10, 0xa1, 0x5a, 0xdf}: "PeiS3LibNull", efi.GUID{0x25, 0x1b, 0x14, 0x54, 0x23, 0xd6, 0xb8, 0x42, 0xa2, 0x49, 0x3c, 0x2b, 0xb7, 0x39, 0xac, 0x4c}: "DummyDriverDxe", efi.GUID{0x25, 0x1b, 0xe6, 0x3f, 0xbd, 0xd0, 0x07, 0x49, 0x9c, 0xe0, 0xf5, 0x28, 0x57, 0x18, 0x82, 0x4e}: "It8587eFlashDxe", efi.GUID{0x25, 0x1f, 0xb6, 0x35, 0xf2, 0xab, 0x11, 0x4a, 0xa2, 0xd4, 0x23, 0x9c, 0xa4, 0x75, 0x34, 0x9c}: "AmdCpmVRMOverride", efi.GUID{0x25, 0x24, 0xd9, 0x9d, 0x37, 0x67, 0xcd, 0x45, 0x82, 0x9c, 0x1a, 0xc2, 0xcd, 0x20, 0xc8, 0x73}: "LenovoAt24Rf08EepromPei", efi.GUID{0x25, 0x24, 0xfa, 0x76, 0x6f, 0x08, 0x33, 0x4e, 0x8d, 0xff, 0x4e, 0x7d, 0x96, 0x1a, 0x67, 0xdc}: "FjSiidRt", efi.GUID{0x25, 0x2d, 0xba, 0x9e, 0xe3, 0xbb, 0xc2, 0x4a, 0xa2, 0xc6, 0xc8, 0x7f, 0x44, 0xa1, 0x27, 0x8c}: "PasswordUI", efi.GUID{0x25, 0x33, 0x86, 0x88, 0x03, 0xc8, 0x9b, 0x46, 0x99, 0x04, 0x6f, 0xb2, 0xe3, 0x3f, 0x00, 0x70}: "AssetIDOnS3", efi.GUID{0x25, 0x42, 0xc3, 0x59, 0xd4, 0x6f, 0x12, 0x42, 0x88, 0xf7, 0x88, 0x45, 0xf2, 0x45, 0x9d, 0xce}: "FjPcieClkControl", efi.GUID{0x25, 0x48, 0x9d, 0x8f, 0x7d, 0x79, 0xfc, 0x48, 0x84, 0x71, 0x84, 0x50, 0x25, 0x79, 0x2e, 0xf6}: "EdkiiS3SmmInitDone", efi.GUID{0x25, 0x4d, 0xf3, 0x01, 0xe2, 0x4d, 0xad, 0x23, 0x3f, 0xf3, 0x36, 0x35, 0x3f, 0xf3, 0x23, 0xf1}: "EfiPeiPcdPpiGuid", efi.GUID{0x25, 0x4e, 0x37, 0x7e, 0x01, 0x8e, 0xee, 0x4f, 0x87, 0xf2, 0x39, 0x0c, 0x23, 0xc6, 0x06, 0xcd}: "PlatformAcpiTable", efi.GUID{0x25, 0x56, 0x2d, 0x63, 0x3d, 0xb7, 0xb8, 0x43, 0xaf, 0x30, 0x8d, 0x22, 0x5d, 0x96, 0x16, 0x8e}: "BasePalLibNull", efi.GUID{0x25, 0x5b, 0xc3, 0x96, 0x9b, 0x31, 0xbd, 0x4a, 0x9f, 0x6b, 0x02, 0xed, 0x49, 0xbc, 0xbd, 0x1e}: "GuiPwdPrompt", efi.GUID{0x25, 0x5c, 0xc8, 0x74, 0xdd, 0x09, 0x7d, 0x49, 0x9f, 0x71, 0x91, 0xc1, 0x72, 0x28, 0x3e, 0xd4}: "SioFanMapDxe", efi.GUID{0x25, 0x62, 0x43, 0x4a, 0xb5, 0xa1, 0xe1, 0x48, 0x82, 0x8c, 0x4e, 0x8e, 0x62, 0x5f, 0x3e, 0xd6}: "FjGabiEntrySmm", efi.GUID{0x25, 0x63, 0x92, 0x1a, 0x64, 0x27, 0xc8, 0x47, 0x9e, 0x1c, 0x4f, 0x83, 0xb1, 0x72, 0x33, 0x36}: "VirtualEcDxe", efi.GUID{0x25, 0x64, 0xf6, 0x53, 0xf2, 0x21, 0xf3, 0x45, 0x99, 0xd5, 0xec, 0xae, 0x1e, 0x21, 0x66, 0x3a}: "H19TpmDetection", efi.GUID{0x25, 0x71, 0x52, 0x11, 0xb2, 0x78, 0x3e, 0x4d, 0xa0, 0xdf, 0x41, 0xe7, 0x5c, 0x22, 0x1f, 0x5a}: "CpuS3", efi.GUID{0x25, 0x74, 0x0f, 0xa2, 0x87, 0xbc, 0xd1, 0x47, 0x94, 0x5c, 0x63, 0x76, 0x03, 0x32, 0x35, 0x84}: "PlatformConfigTool", efi.GUID{0x25, 0x74, 0x25, 0xfb, 0x55, 0x8c, 0xe8, 0x4d, 0x82, 0x38, 0xf5, 0x39, 0x06, 0xaa, 0x5b, 0x94}: "IrqBoardInfoRvpDt", efi.GUID{0x25, 0x81, 0xb3, 0xbd, 0x63, 0x4d, 0xf4, 0x49, 0x82, 0x12, 0x61, 0xcf, 0x5a, 0x19, 0x0a, 0xf8}: "EfiUserInfoAccessSetupRestrictedGuid", efi.GUID{0x25, 0x87, 0x4d, 0xf8, 0xdf, 0x5a, 0xd2, 0x48, 0x88, 0x19, 0x1b, 0x03, 0x31, 0xae, 0xb7, 0x19}: "DRYPEI", efi.GUID{0x25, 0x8a, 0xc9, 0xbb, 0xb0, 0x89, 0x4b, 0x47, 0xac, 0x85, 0x8e, 0x52, 0x4e, 0xb3, 0x3e, 0x25}: "PchSmiRegister", efi.GUID{0x25, 0x95, 0xbb, 0x7b, 0xba, 0x97, 0x16, 0x45, 0xb6, 0x60, 0x1b, 0x0e, 0xb7, 0x87, 0x44, 0xa5}: "DellSmBiosStrucD0", efi.GUID{0x25, 0xa7, 0xe7, 0x35, 0xd2, 0x8d, 0xac, 0x4c, 0x80, 0x11, 0x33, 0xcd, 0xa8, 0x10, 0x90, 0x56}: "EfiJsonCapsuleDataTable", efi.GUID{0x25, 0xb2, 0x17, 0x34, 0x6a, 0x91, 0xf5, 0x49, 0x9a, 0xf5, 0xc9, 0xc7, 0xbf, 0x93, 0x7e, 0xa2}: "EfiMemoryMapDataHobBdat", efi.GUID{0x25, 0xb2, 0x1a, 0x6b, 0x47, 0x2e, 0x61, 0x4a, 0x8f, 0xf5, 0xb8, 0xea, 0x42, 0xee, 0x3e, 0xa8}: "SecureFlashDxe", efi.GUID{0x25, 0xb2, 0x63, 0xf3, 0x2c, 0x4d, 0x52, 0x43, 0x80, 0xcd, 0x8e, 0xa4, 0x28, 0x0f, 0x8d, 0xc0}: "OemEdidFromGop", efi.GUID{0x25, 0xb2, 0xa1, 0x9f, 0x46, 0x33, 0x1b, 0x46, 0xa0, 0x69, 0xed, 0x01, 0xb6, 0x73, 0xd2, 0x40}: "EfiI2cBusProtocolGuid", efi.GUID{0x25, 0xb3, 0x3d, 0x64, 0x52, 0xa2, 0xd5, 0x4b, 0xb5, 0x63, 0xce, 0xa7, 0x3d, 0x64, 0xad, 0xa8}: "FjSystemDataFvDriverDxe", efi.GUID{0x25, 0xc8, 0x38, 0x31, 0xed, 0x83, 0x4a, 0x06, 0xa6, 0x2a, 0xcd, 0x13, 0x67, 0x4e, 0x3f, 0x89}: "AppleDhcp4", efi.GUID{0x25, 0xce, 0xe2, 0x0d, 0x6a, 0x44, 0xa7, 0x45, 0xbf, 0xc9, 0x37, 0xda, 0x26, 0x34, 0x4b, 0x37}: "EfiPeiDeviceRecoveryModulePpiGuid", efi.GUID{0x25, 0xd2, 0xd0, 0x59, 0xd7, 0x38, 0x28, 0x48, 0xa7, 0xf9, 0x1a, 0xb9, 0xbb, 0xf3, 0x97, 0xa0}: "MAPS_SerialPortControlSmm", efi.GUID{0x25, 0xd6, 0x61, 0xeb, 0x5d, 0x1b, 0x45, 0x4f, 0xa2, 0xa0, 0x93, 0x1e, 0xf7, 0x28, 0x0b, 0x48}: "SmartAssetTagInfoDxe", efi.GUID{0x25, 0xd7, 0x84, 0xcc, 0x1e, 0xda, 0xa7, 0x46, 0x9e, 0x75, 0x4b, 0xac, 0xf1, 0xfd, 0x39, 0x02}: "SystemFontDxe", efi.GUID{0x25, 0xda, 0xf1, 0x9a, 0x6c, 0xf0, 0xbb, 0x43, 0xbe, 0x88, 0x83, 0x45, 0x50, 0xbf, 0x76, 0x5b}: "DellGSetConfig", efi.GUID{0x25, 0xdc, 0xec, 0xf6, 0x79, 0x20, 0x5a, 0x47, 0xb0, 0xe8, 0xf4, 0x8b, 0x8f, 0xa5, 0xc2, 0x0a}: "DellSTMicroTpmFwMgmtDxe", efi.GUID{0x25, 0xe1, 0xea, 0x45, 0x1d, 0x2a, 0xe0, 0x44, 0x99, 0x53, 0x7a, 0xb7, 0xf1, 0x98, 0x88, 0xaf}: "DellDashPolicyVer3Protocol", efi.GUID{0x25, 0xe2, 0x3c, 0xcc, 0xe0, 0xd9, 0xb1, 0x4a, 0xad, 0x66, 0xb8, 0x57, 0xc2, 0xd1, 0x6d, 0x2e}: "FchKeithSsdt", efi.GUID{0x25, 0xfe, 0x01, 0x89, 0xd3, 0x27, 0x15, 0x48, 0xa6, 0x3d, 0x35, 0x85, 0x1c, 0x4f, 0x50, 0xef}: "FjGabiPostFlashAbstraction", efi.GUID{0x26, 0x09, 0x2a, 0x33, 0x9b, 0x42, 0x24, 0x46, 0x92, 0x11, 0xa3, 0x6b, 0x23, 0xdf, 0x03, 0x89}: "OhciPei", efi.GUID{0x26, 0x0b, 0x16, 0x6c, 0x4c, 0xe0, 0x98, 0x40, 0xa6, 0xac, 0xc8, 0xc7, 0xb6, 0x47, 0x1a, 0x86}: "SetupConfigUpdateDxeLightningRidgeEXECB2", efi.GUID{0x26, 0x0c, 0x65, 0x11, 0x5a, 0x91, 0xac, 0x40, 0x82, 0x9c, 0xa1, 0xe1, 0xb6, 0x33, 0x3d, 0x79}: "PwrButtonCtrlPei", efi.GUID{0x26, 0x0c, 0x7e, 0x2f, 0x7f, 0xa5, 0x4f, 0x5f, 0xaf, 0xcc, 0xcd, 0x3d, 0x5e, 0xe0, 0x7c, 0xed}: "PlanarSelfRepairApplication", efi.GUID{0x26, 0x0d, 0x0a, 0x59, 0xe5, 0x06, 0x20, 0x4d, 0x8a, 0x82, 0x59, 0xea, 0x1b, 0x34, 0x98, 0x2d}: "UniversalPayloadSmbiosTable", efi.GUID{0x26, 0x0f, 0xeb, 0x30, 0x0a, 0xfc, 0xd2, 0x4f, 0xb9, 0xc9, 0x75, 0x1e, 0xa2, 0xbb, 0x19, 0x80}: "DataSource", efi.GUID{0x26, 0x12, 0xb8, 0xa7, 0x2b, 0xfe, 0xb3, 0x43, 0x9b, 0xc7, 0x6b, 0x24, 0xb5, 0x92, 0x0d, 0xbf}: "DellAcLossPei", efi.GUID{0x26, 0x16, 0xc4, 0xc1, 0x4c, 0x50, 0x92, 0x40, 0xac, 0xa9, 0x41, 0xf9, 0x36, 0x93, 0x43, 0x28}: "EfiCertSha256Guid", efi.GUID{0x26, 0x18, 0xba, 0x93, 0xfb, 0xdf, 0xdd, 0x45, 0x82, 0xa7, 0xe7, 0xdc, 0xaa, 0x3b, 0xbd, 0xf3}: "SmmVariableWriteGuid", efi.GUID{0x26, 0x1a, 0x26, 0xca, 0x18, 0x77, 0x9b, 0x4b, 0x8a, 0x07, 0x51, 0x78, 0xb1, 0xae, 0x3a, 0x02}: "DiskIoDxe", efi.GUID{0x26, 0x1a, 0xf1, 0xd9, 0x9c, 0x24, 0xac, 0x46, 0x9c, 0xb5, 0xe4, 0xf7, 0x7e, 0x03, 0x5c, 0x90}: "NetworkRecoveryNameLabel", efi.GUID{0x26, 0x1d, 0x57, 0xc0, 0x76, 0x61, 0xe9, 0x11, 0x86, 0x47, 0xd6, 0x63, 0xbd, 0x87, 0x3d, 0x93}: "DebugInfo", efi.GUID{0x26, 0x21, 0x3b, 0x11, 0x8a, 0xfc, 0xe3, 0x11, 0xbd, 0x6c, 0xb8, 0xe8, 0x56, 0x2c, 0xba, 0xfa}: "EfiBootManagerPolicyConnectAllGuid", efi.GUID{0x26, 0x22, 0x9c, 0x73, 0x64, 0x32, 0x54, 0x44, 0x99, 0x1c, 0x8d, 0xc4, 0x4a, 0x73, 0xd6, 0xaf}: "ProjectPeiDriver", efi.GUID{0x26, 0x25, 0x73, 0xb0, 0xc8, 0x38, 0x40, 0x4b, 0x88, 0x77, 0x61, 0xc7, 0xb0, 0x6a, 0xac, 0x45}: "EfiCpuIoProtocolGuid", efi.GUID{0x26, 0x2b, 0x6e, 0xc1, 0xd9, 0xb1, 0xbd, 0x42, 0x90, 0x02, 0xba, 0xb2, 0x7f, 0x18, 0xa5, 0x73}: "PspFarCheckDxe", efi.GUID{0x26, 0x2b, 0xdd, 0x9c, 0x11, 0x24, 0x37, 0x46, 0xba, 0xea, 0xa1, 0xa8, 0xf1, 0x97, 0xb1, 0xdc}: "AmdMemSh5Pei", efi.GUID{0x26, 0x2d, 0x42, 0x61, 0xec, 0x81, 0xff, 0x47, 0xb6, 0xcf, 0x93, 0x9e, 0xae, 0xe7, 0x3f, 0xba}: "StatusCodeDxe", efi.GUID{0x26, 0x30, 0xc5, 0x6f, 0xdc, 0x4a, 0xed, 0x41, 0x80, 0xa6, 0xb8, 0x92, 0x34, 0x71, 0xde, 0x34}: "FjSystemConfigurationSmm", efi.GUID{0x26, 0x34, 0x23, 0x46, 0x4e, 0x74, 0x63, 0x47, 0x95, 0x8d, 0x44, 0xb1, 0x20, 0x0b, 0x32, 0x0a}: "AmdMemoryHobInfoPeim", efi.GUID{0x26, 0x3a, 0x0c, 0x95, 0xc2, 0xe0, 0x1c, 0x49, 0xb6, 0xb2, 0x03, 0x74, 0xf5, 0xc7, 0x3b, 0x96}: "SmmChildDispatcher2", efi.GUID{0x26, 0x3c, 0x81, 0x8a, 0x97, 0x02, 0x08, 0x46, 0x97, 0x5a, 0x2d, 0x74, 0x42, 0x04, 0xc7, 0x46}: "LenovoTamperSmm", efi.GUID{0x26, 0x4b, 0x43, 0xe5, 0xdf, 0xae, 0xde, 0x43, 0x89, 0x35, 0xd1, 0xc4, 0x85, 0xa9, 0x12, 0xb9}: "EfiPeiPlatformTypeOpalCityFpgaPpi", efi.GUID{0x26, 0x4c, 0xe2, 0x94, 0xfa, 0x80, 0x7d, 0x42, 0x80, 0xfb, 0xe3, 0x74, 0xe9, 0xe9, 0xbf, 0x85}: "Dhcp6Dxe", efi.GUID{0x26, 0x4d, 0xb4, 0x6e, 0x39, 0x1d, 0xeb, 0x4f, 0xa9, 0x93, 0x4d, 0xaa, 0xfb, 0x5f, 0x8d, 0x85}: "HybridDriver", efi.GUID{0x26, 0x52, 0x74, 0x3e, 0x18, 0x98, 0xb6, 0x45, 0xa2, 0xac, 0xd7, 0xcd, 0x0e, 0x8b, 0xa2, 0xbc}: "EfiUsb2HcProtocolGuid", efi.GUID{0x26, 0x59, 0x9d, 0x6a, 0x27, 0xeb, 0x3e, 0x47, 0x82, 0xe3, 0x22, 0x3b, 0x12, 0xcc, 0xaa, 0x12}: "FjGabiFlashCoreAbstractionDxe", efi.GUID{0x26, 0x60, 0x8b, 0xe2, 0x2c, 0x54, 0x08, 0x49, 0xa9, 0x2d, 0xc0, 0x1b, 0xe5, 0xf0, 0xfd, 0x79}: "PlatformOcPolicyPei", efi.GUID{0x26, 0x62, 0x48, 0x24, 0xc2, 0xf8, 0xf5, 0x41, 0xb9, 0xdd, 0x78, 0x3e, 0x9e, 0x56, 0xde, 0xa0}: "EfiMmioDeviceProtocolGuid", efi.GUID{0x26, 0x7f, 0xd8, 0x33, 0x8c, 0xe5, 0x3f, 0x98, 0xf1, 0x4c, 0xa5, 0xfe, 0x58, 0xb1, 0x0b, 0x64}: "AmdMemSmbiosV2PhxLpd5Pei", efi.GUID{0x26, 0x87, 0xa1, 0xf1, 0x79, 0xfd, 0xf5, 0x4d, 0xa3, 0x26, 0xe2, 0x0b, 0x8c, 0xc4, 0x6b, 0x06}: "DellBootScriptSmiHandler", efi.GUID{0x26, 0x88, 0x33, 0xeb, 0x1b, 0x68, 0x95, 0x42, 0xb3, 0x56, 0x2b, 0x36, 0x4c, 0x75, 0x7b, 0x09}: "EfiFtp4ProtocolGuid", efi.GUID{0x26, 0x92, 0xb4, 0x88, 0x3f, 0xa6, 0x05, 0x45, 0x9d, 0x3c, 0xb5, 0xa6, 0x7b, 0x84, 0x61, 0x33}: "FrameworkSmmStatusCodeOnPiSmmStatusCodeThunk", efi.GUID{0x26, 0x96, 0x14, 0x10, 0x83, 0x55, 0x64, 0x43, 0x82, 0x2f, 0xa4, 0x59, 0xb8, 0x12, 0x13, 0x02}: "SystemFirmwareDeviceDxe", efi.GUID{0x26, 0x98, 0x64, 0x99, 0x2b, 0x95, 0xd5, 0x4e, 0x92, 0xa8, 0x4e, 0xd6, 0x9b, 0x71, 0x7f, 0xe3}: "AaeonGpnvSmm", efi.GUID{0x26, 0x9b, 0xc6, 0xd2, 0xe1, 0x82, 0x1b, 0x4a, 0xad, 0x35, 0xed, 0x02, 0x61, 0xb9, 0xf3, 0x47}: "MemoryInitPei", efi.GUID{0x26, 0xa8, 0x26, 0x98, 0x4e, 0x00, 0x97, 0x41, 0xb1, 0x79, 0x9f, 0x48, 0x9a, 0xf1, 0xe3, 0xc9}: "SystemBoardInfo", efi.GUID{0x26, 0xa9, 0x7f, 0x21, 0x94, 0xf4, 0x3f, 0x4b, 0xac, 0x45, 0xd2, 0x13, 0xc2, 0xa0, 0x29, 0x4d}: "PostLogo", efi.GUID{0x26, 0xaa, 0x69, 0xe4, 0x68, 0x92, 0xb0, 0x4e, 0xa0, 0x87, 0xdd, 0x4c, 0xee, 0x37, 0x40, 0x4b}: "SecuritySelectDxe", efi.GUID{0x26, 0xad, 0xfa, 0xbd, 0x7f, 0x4d, 0xa6, 0x44, 0x87, 0x19, 0x37, 0x5e, 0xcb, 0x4a, 0xa4, 0x07}: "DellPxeBaseRom", efi.GUID{0x26, 0xaf, 0xb0, 0x70, 0x47, 0xf8, 0xb6, 0x4b, 0xaa, 0xb9, 0xcd, 0xe8, 0x4f, 0xc6, 0x14, 0x31}: "EdkiiIoMmuPpi", efi.GUID{0x26, 0xb1, 0xb4, 0xe9, 0x13, 0x4e, 0xf5, 0x41, 0x9e, 0x4c, 0x9b, 0xf8, 0x8b, 0x3c, 0x1b, 0x0c}: "KbdConfig", efi.GUID{0x26, 0xbd, 0x47, 0xe8, 0xc5, 0x1d, 0xe0, 0x4d, 0xbf, 0x2f, 0x25, 0x4f, 0x61, 0xa5, 0xb4, 0xda}: "GfxInitPei", efi.GUID{0x26, 0xc0, 0x0c, 0x06, 0x0d, 0x4c, 0xda, 0x4d, 0x8f, 0x41, 0x59, 0x5f, 0xef, 0x00, 0xa5, 0x02}: "MemoryStatusCodeRecordGuid", efi.GUID{0x26, 0xc3, 0x21, 0x1e, 0x40, 0x0d, 0xf2, 0x40, 0x9f, 0x02, 0x3a, 0x9b, 0x78, 0x38, 0xaa, 0x6b}: "AmiIpmiPkgTokenSpace", efi.GUID{0x26, 0xca, 0x1a, 0x82, 0xea, 0x29, 0x93, 0x49, 0x83, 0x9f, 0x59, 0x7f, 0xc0, 0x21, 0x70, 0x8d}: "AbsoluteAbtInstaller", efi.GUID{0x26, 0xd3, 0x85, 0x4d, 0xe0, 0x58, 0xfd, 0x43, 0x9f, 0x63, 0x58, 0xdf, 0x46, 0x78, 0x9b, 0x7f}: "PciResourceAlloc", efi.GUID{0x26, 0xd8, 0x4c, 0x8f, 0xa0, 0xa5, 0x93, 0x4e, 0x95, 0x22, 0xcf, 0xb0, 0xab, 0x72, 0x92, 0x6c}: "SataController", efi.GUID{0x26, 0xda, 0x30, 0x2f, 0x1b, 0xf5, 0x6f, 0x4b, 0x85, 0xc4, 0x31, 0x87, 0x3c, 0x28, 0x1b, 0xca}: "LinuxInitrdDynamicShellCommand", efi.GUID{0x26, 0xda, 0x70, 0x9b, 0x13, 0x08, 0xf0, 0x4c, 0xbb, 0x50, 0x96, 0x9b, 0x86, 0x9c, 0x41, 0xd9}: "DellMBistPei", efi.GUID{0x26, 0xe9, 0xbe, 0x78, 0x2f, 0x69, 0xfd, 0x48, 0x9e, 0xdb, 0x01, 0x42, 0x2e, 0xf0, 0xd7, 0xab}: "EfiEventMemoryMapChangeGuid", efi.GUID{0x26, 0xe9, 0xd1, 0xaa, 0xb8, 0x23, 0x3a, 0x4c, 0x8b, 0x44, 0x0c, 0x9a, 0x03, 0x16, 0x64, 0xf2}: "FmpDxe", efi.GUID{0x26, 0xeb, 0x58, 0x79, 0x98, 0xc0, 0xec, 0x46, 0xb5, 0xb7, 0xbe, 0x9f, 0xf1, 0x3f, 0x8e, 0x32}: "DellBoardPolicyPei", efi.GUID{0x26, 0xf7, 0xd5, 0x4f, 0xd2, 0xbe, 0x0d, 0x41, 0x90, 0x97, 0xc6, 0x79, 0xde, 0x19, 0x08, 0x54}: "SetupLoadDefaultShp", efi.GUID{0x26, 0xfd, 0x30, 0xee, 0x24, 0x15, 0xa2, 0x4c, 0xb5, 0x6d, 0x34, 0x58, 0x30, 0xdc, 0x9c, 0xdb}: "LenovoFingerprintCp", efi.GUID{0x27, 0x03, 0x27, 0x27, 0xec, 0xd3, 0x37, 0x42, 0x97, 0x4d, 0xd7, 0x1a, 0xbb, 0x2e, 0xbf, 0xea}: "FjMasterPasswordDxe", efi.GUID{0x27, 0x14, 0x20, 0x8e, 0x3a, 0x46, 0x24, 0x4d, 0xa0, 0xf4, 0x25, 0xa8, 0x75, 0xf6, 0x1b, 0xaa}: "DellModBayConfig", efi.GUID{0x27, 0x14, 0x9a, 0x0d, 0x2a, 0xe0, 0x7d, 0x43, 0x92, 0x6b, 0xaa, 0x52, 0x1f, 0xd7, 0x22, 0xba}: "EfiPciLanInfoGuid", efi.GUID{0x27, 0x1f, 0xaa, 0xc6, 0x97, 0x55, 0x02, 0x48, 0x9f, 0x63, 0xd6, 0x28, 0x36, 0x59, 0x86, 0x35}: "SaPolicyProtocol", efi.GUID{0x27, 0x24, 0x1d, 0x35, 0x2c, 0x26, 0x0b, 0x4a, 0x87, 0x4c, 0x23, 0x70, 0x3b, 0x4a, 0xa8, 0x8d}: "AmdNbioBaseZPDxe", efi.GUID{0x27, 0x2d, 0x2e, 0x7c, 0xbd, 0xe8, 0x5c, 0x4f, 0xa5, 0x69, 0xaf, 0x65, 0xb7, 0x7a, 0xa5, 0x5d}: "DellPttSetupDxe", efi.GUID{0x27, 0x2f, 0x45, 0x26, 0xde, 0x45, 0x94, 0x4a, 0x80, 0x7a, 0x0e, 0x6f, 0xdc, 0x1c, 0xb9, 0x62}: "EmuPeiGateDxe", efi.GUID{0x27, 0x33, 0x4a, 0xe5, 0x45, 0xa3, 0x68, 0x40, 0x88, 0x42, 0x70, 0xac, 0x0d, 0x51, 0x98, 0x55}: "Tpm2DeviceLibDTpm", efi.GUID{0x27, 0x36, 0xa9, 0x9c, 0x5b, 0xb6, 0x24, 0x43, 0xa2, 0x02, 0xc0, 0xb4, 0x61, 0x76, 0x45, 0x43}: "EfiPeiSmbus2PpiGuid", efi.GUID{0x27, 0x38, 0xc0, 0x5d, 0xcb, 0xc9, 0x83, 0x4c, 0xb1, 0x5f, 0x6e, 0xaf, 0xbf, 0x86, 0x47, 0x6c}: "AppleUartDxe", efi.GUID{0x27, 0x47, 0xe3, 0x21, 0x81, 0x38, 0xee, 0x4d, 0x80, 0x20, 0xd8, 0x90, 0x8a, 0x98, 0x03, 0x11}: "EpuHwModeDxe", efi.GUID{0x27, 0x51, 0xc4, 0xb8, 0x9d, 0x8a, 0x62, 0x43, 0xb2, 0x0a, 0x6c, 0x00, 0x12, 0xcb, 0x14, 0x30}: "PlatformSecureVariableSmm", efi.GUID{0x27, 0x55, 0xc7, 0x15, 0x2a, 0x30, 0x72, 0x48, 0xbb, 0xed, 0x47, 0x30, 0xa0, 0xab, 0xff, 0xca}: "LegacyBootEvent", efi.GUID{0x27, 0x5a, 0x62, 0x9e, 0x40, 0x48, 0xcc, 0x47, 0xa6, 0xb5, 0x1e, 0x93, 0x11, 0xcf, 0xc6, 0x0e}: "Pkpub", efi.GUID{0x27, 0x5c, 0x67, 0x1c, 0xb1, 0x6f, 0x70, 0x41, 0x94, 0xe7, 0x3d, 0xff, 0xe8, 0xbe, 0xad, 0xba}: "LaunchPad3Drv", efi.GUID{0x27, 0x60, 0xf0, 0x0b, 0xa4, 0x29, 0x7d, 0x44, 0x8f, 0xa4, 0xd8, 0xa2, 0x89, 0xf1, 0xdd, 0xdc}: "CxlManager", efi.GUID{0x27, 0x62, 0x4d, 0xfd, 0x16, 0x6b, 0xa2, 0x4b, 0xba, 0x9f, 0xe9, 0x4e, 0xb8, 0x9f, 0xaf, 0x8d}: "EsrtDxe", efi.GUID{0x27, 0x66, 0xcb, 0x2a, 0x02, 0xdf, 0x23, 0x4e, 0xb4, 0xf9, 0x6a, 0x93, 0xfa, 0x6e, 0x9d, 0xa6}: "EfiSataControllerProtocol", efi.GUID{0x27, 0x6d, 0x60, 0x9f, 0x18, 0xe2, 0x12, 0x41, 0x83, 0x4b, 0x8a, 0xbc, 0xe9, 0x50, 0xb1, 0xfb}: "SmbiosRpTable", efi.GUID{0x27, 0x6d, 0x70, 0x17, 0xfe, 0x83, 0x70, 0x47, 0x87, 0x5f, 0x4c, 0xef, 0x4c, 0xb8, 0xf6, 0x3d}: "AmiAhciPlatformPolicyProtocolGuid", efi.GUID{0x27, 0x75, 0x3d, 0x78, 0xee, 0x85, 0x95, 0x4a, 0xa9, 0x09, 0x03, 0xf7, 0x45, 0xe4, 0xe9, 0x1d}: "TimerSmiDxe", efi.GUID{0x27, 0x79, 0x54, 0xfb, 0xec, 0xda, 0x84, 0x48, 0xa1, 0x2e, 0x94, 0x10, 0x9f, 0xed, 0xf1, 0x8c}: "gear3", efi.GUID{0x27, 0x7b, 0x36, 0xd8, 0x08, 0x7a, 0xc5, 0x4a, 0xad, 0x1f, 0xc9, 0x3c, 0x3e, 0x94, 0x22, 0x5e}: "AodSmmRv", efi.GUID{0x27, 0x81, 0x1d, 0x7f, 0x69, 0xeb, 0xdd, 0x44, 0xa8, 0x8a, 0xed, 0x37, 0xbd, 0xb9, 0x7d, 0xb3}: "OemBadgingSmm", efi.GUID{0x27, 0x87, 0x78, 0xfc, 0xd0, 0xc2, 0x9c, 0x46, 0xbd, 0x03, 0x5a, 0xea, 0x03, 0x32, 0x3c, 0x67}: "GlobeMask", efi.GUID{0x27, 0x8b, 0xf5, 0x42, 0xc3, 0x5d, 0xa7, 0x4f, 0x84, 0x4d, 0x5a, 0x7d, 0xbf, 0xf0, 0x64, 0x32}: "Enquire", efi.GUID{0x27, 0x8d, 0x1f, 0x8d, 0xc2, 0x31, 0x5b, 0x4b, 0xb7, 0x36, 0x4b, 0xb5, 0xb4, 0xa2, 0x5f, 0xba}: "ASRGetDLSiteWrapper", efi.GUID{0x27, 0x94, 0xba, 0x6f, 0xf4, 0xb3, 0xae, 0x4a, 0xba, 0xf3, 0xc9, 0x72, 0x88, 0x51, 0x29, 0x94}: "LegacyUsbIrqSolutionWASmm", efi.GUID{0x27, 0x9a, 0x7e, 0xbd, 0xc5, 0xd6, 0x6a, 0x41, 0xb2, 0x45, 0x5f, 0x50, 0x7d, 0x95, 0xb2, 0xbd}: "WinNtBusDriverDxe", efi.GUID{0x27, 0xa2, 0xe8, 0xd3, 0x05, 0xe9, 0x7e, 0x40, 0x8f, 0x8f, 0xfe, 0xd3, 0x2f, 0xb2, 0xf9, 0x3b}: "DellUsbSmmCore", efi.GUID{0x27, 0xb3, 0xab, 0x0c, 0xfe, 0x11, 0x6b, 0x41, 0xae, 0x80, 0x2d, 0xe5, 0xdf, 0x60, 0xf7, 0x7d}: "IioPolicyHob", efi.GUID{0x27, 0xb8, 0xcb, 0xf4, 0xaf, 0xb4, 0xef, 0x4e, 0xb5, 0x12, 0xf3, 0xf8, 0x72, 0xf6, 0x7d, 0x7a}: "FjWakeEventDxe", efi.GUID{0x27, 0xbb, 0x4d, 0x43, 0x9c, 0x96, 0xd1, 0x47, 0x87, 0x6a, 0x41, 0x46, 0xd4, 0xeb, 0x4e, 0x36}: "DellBluetoothSmm", efi.GUID{0x27, 0xbb, 0x53, 0xad, 0x96, 0xf6, 0x13, 0x42, 0xac, 0xbb, 0xae, 0xfa, 0x2f, 0x4b, 0x8b, 0xdc}: "OemModelIDDxe", efi.GUID{0x27, 0xbf, 0xd4, 0x4e, 0x92, 0x40, 0xe9, 0x42, 0x80, 0x7d, 0x52, 0x7b, 0x1d, 0x00, 0xc9, 0xbd}: "EfiHobMemoryAllocStackGuid", efi.GUID{0x27, 0xc7, 0xd8, 0x34, 0x83, 0xfa, 0xde, 0x4f, 0xbf, 0x51, 0x02, 0x42, 0x6e, 0x45, 0x33, 0xdb}: "FjGpnvPei", efi.GUID{0x27, 0xc8, 0x10, 0x48, 0x73, 0xb3, 0xc6, 0x47, 0xb5, 0x3e, 0xaa, 0xd3, 0x0e, 0x19, 0x7c, 0xa1}: "LEMPostFlagSMMProtocol", efi.GUID{0x27, 0xd3, 0x94, 0x9f, 0x18, 0x0b, 0x45, 0x42, 0x8f, 0xf2, 0x83, 0x2e, 0x30, 0x0d, 0x2c, 0xef}: "WifiConfig", efi.GUID{0x27, 0xe0, 0x2c, 0xfb, 0xe9, 0x10, 0x0a, 0x4f, 0xa7, 0xa9, 0x1b, 0x9d, 0x9c, 0xbd, 0x6d, 0xcc}: "RecoveryLedBlink", efi.GUID{0x27, 0xe0, 0x59, 0x59, 0xb0, 0xba, 0x42, 0x43, 0xaa, 0x4b, 0x8f, 0x73, 0xf0, 0x17, 0xb4, 0x85}: "OemRuntimeFunction", efi.GUID{0x27, 0xe3, 0xd1, 0x91, 0x5a, 0xfe, 0xb8, 0x49, 0xab, 0x65, 0x0e, 0xce, 0x2d, 0xdb, 0x45, 0xec}: "EdkiiDynamicTableFactoryProtocol", efi.GUID{0x27, 0xe4, 0x68, 0x55, 0xfc, 0x68, 0x3d, 0x4f, 0xac, 0x74, 0xca, 0x55, 0x52, 0x31, 0xcc, 0x68}: "LinuxEfiInitrdMedia", efi.GUID{0x27, 0xed, 0xf5, 0xbe, 0x93, 0x4e, 0xf8, 0x40, 0xae, 0x11, 0x6b, 0x41, 0xe1, 0xd4, 0xbc, 0xa9}: "AbtEraseDxe", efi.GUID{0x27, 0xf1, 0x96, 0x26, 0xb2, 0x44, 0x14, 0x4e, 0x8b, 0xff, 0x80, 0x4a, 0xa1, 0x77, 0xfe, 0x41}: "SDJpegDecoder", efi.GUID{0x27, 0xf6, 0xeb, 0x28, 0xf1, 0x9b, 0x19, 0x47, 0xa6, 0x76, 0x4a, 0xf8, 0x36, 0x2f, 0xeb, 0x23}: "RTS5242Dxe", efi.GUID{0x27, 0xfa, 0x9c, 0x09, 0x4f, 0x13, 0x9a, 0x44, 0xaf, 0x4a, 0xd2, 0x9c, 0x44, 0x1c, 0xb5, 0x21}: "AsusAmlBuffDxe", efi.GUID{0x28, 0x07, 0xee, 0xa4, 0xd7, 0xe5, 0xc5, 0x4a, 0xb2, 0x1e, 0x65, 0x8e, 0xd8, 0x57, 0xe8, 0x34}: "ArmMpCoreInfoGuid", efi.GUID{0x28, 0x0a, 0x97, 0x47, 0x4a, 0x8f, 0xb2, 0x4c, 0x91, 0xde, 0xbf, 0x34, 0x41, 0x53, 0x18, 0x9a}: "AmiCspFlashLibNull", efi.GUID{0x28, 0x0c, 0xcb, 0xcc, 0x24, 0x4b, 0xd5, 0x11, 0x9a, 0x5a, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d}: "GraphicsConsoleDxe", efi.GUID{0x28, 0x11, 0x59, 0x2a, 0xc7, 0x6c, 0xb1, 0x42, 0x8a, 0xf0, 0x58, 0x93, 0x3b, 0x68, 0x2d, 0xbb}: "EfiExtendedSalMcaServicesProtocolGuid", efi.GUID{0x28, 0x19, 0x5a, 0xca, 0x23, 0x65, 0x9d, 0x40, 0xa9, 0xfe, 0x5d, 0xcc, 0x87, 0x38, 0x72, 0x22}: "TrEEPei", efi.GUID{0x28, 0x1b, 0x5f, 0xc7, 0x73, 0xb2, 0x0d, 0x4f, 0x98, 0x38, 0x95, 0x2b, 0x70, 0xe6, 0xb9, 0xb4}: "UsbCardReaderSmm", efi.GUID{0x28, 0x24, 0xda, 0xae, 0x22, 0x9a, 0x37, 0x46, 0x9b, 0x21, 0x54, 0x5e, 0x28, 0xfb, 0xb8, 0x29}: "EfiEblAddCommandProtocolGuid", efi.GUID{0x28, 0x28, 0xaf, 0x64, 0xfd, 0x82, 0xb7, 0x49, 0xbb, 0xd9, 0x7b, 0x02, 0xba, 0xb7, 0x2c, 0xd5}: "DellEDiagsSmm", efi.GUID{0x28, 0x2d, 0x9f, 0x85, 0x94, 0x28, 0xf7, 0x4e, 0xa0, 0x5c, 0xf8, 0xbf, 0xc7, 0x92, 0x2d, 0xb7}: "HidSimplePointer", efi.GUID{0x28, 0x2e, 0x7a, 0xfc, 0x78, 0xef, 0x72, 0x44, 0x8b, 0x17, 0xb8, 0xbb, 0x00, 0x24, 0x61, 0x6e}: "UefiRaid", efi.GUID{0x28, 0x3a, 0x67, 0xce, 0x0d, 0x80, 0x4a, 0x4b, 0x83, 0x16, 0x26, 0x61, 0xf9, 0xb3, 0xd9, 0xc6}: "DimmTsInfo", efi.GUID{0x28, 0x42, 0x81, 0x02, 0xc8, 0x57, 0x5c, 0x40, 0x8a, 0x67, 0xc9, 0x28, 0xe4, 0xb5, 0x09, 0x92}: "EepromInterfaceCoreSmm", efi.GUID{0x28, 0x51, 0x15, 0x68, 0x86, 0xab, 0x7c, 0x43, 0xb2, 0x35, 0x4f, 0x86, 0x09, 0x39, 0xa5, 0x6c}: "TouchDriver", efi.GUID{0x28, 0x51, 0x45, 0x68, 0x86, 0xab, 0x7c, 0x43, 0xb2, 0x35, 0x4f, 0x86, 0x09, 0x39, 0xa5, 0x7c}: "TouchDriver", efi.GUID{0x28, 0x55, 0x50, 0x1c, 0xd7, 0x32, 0x70, 0x4d, 0x88, 0x18, 0x9a, 0x48, 0x9b, 0x41, 0x4a, 0xba}: "PcieErrorLog", efi.GUID{0x28, 0x5a, 0x70, 0x48, 0x4e, 0xff, 0x73, 0x45, 0x81, 0x64, 0xa0, 0x26, 0x96, 0x3d, 0x80, 0x1f}: "LenovoCapsuleUpdateVariable", efi.GUID{0x28, 0x6a, 0x5e, 0xc9, 0x95, 0xfb, 0xf2, 0x49, 0xae, 0x01, 0xf3, 0x81, 0x66, 0xfd, 0x45, 0x24}: "OemServicesDriver", efi.GUID{0x28, 0x6c, 0x2a, 0xec, 0x86, 0x22, 0xed, 0x44, 0x91, 0x6b, 0x24, 0x3a, 0xb5, 0x25, 0x35, 0x46}: "SLP20MarkerVariableGuid", efi.GUID{0x28, 0x71, 0xba, 0x79, 0xef, 0xd5, 0x41, 0x4b, 0x91, 0x2c, 0x5f, 0x80, 0xdc, 0x9e, 0x1b, 0x24}: "AmdMemoryHobInfoPeimRs", efi.GUID{0x28, 0x73, 0x2a, 0xc1, 0x1f, 0xf8, 0xd2, 0x11, 0xba, 0x4b, 0x00, 0xa0, 0xc9, 0x3e, 0xc9, 0x3b}: "EfiPartTypeSystemPartGuid", efi.GUID{0x28, 0x75, 0x17, 0x45, 0x6a, 0x7c, 0x5c, 0x4b, 0x9c, 0x56, 0x1a, 0x65, 0xbb, 0x5f, 0xc4, 0x34}: "AmdCcxVhRnPei", efi.GUID{0x28, 0x7a, 0x62, 0x74, 0x74, 0xdb, 0x02, 0x41, 0xb2, 0xb2, 0xf8, 0xd7, 0x88, 0xaf, 0xff, 0xef}: "HpIcicleDefaultAndWmi", efi.GUID{0x28, 0x85, 0x8a, 0xcc, 0xf3, 0x23, 0x7e, 0x42, 0xaf, 0x41, 0xc9, 0x1e, 0x32, 0x97, 0xb6, 0x22}: "AmdFabricStxKrkDxe", efi.GUID{0x28, 0x86, 0x63, 0xc8, 0x57, 0x5b, 0xb9, 0x47, 0xba, 0x9a, 0xab, 0x1f, 0x90, 0x70, 0x9c, 0x3f}: "AmdPspDxeV2StxKrk", efi.GUID{0x28, 0x8c, 0x06, 0xc3, 0x79, 0x35, 0x70, 0x46, 0xb3, 0x8d, 0x2e, 0x21, 0xad, 0x05, 0x79, 0x93}: "PlatformHiiAdvancedDxe", efi.GUID{0x28, 0x95, 0xf0, 0x89, 0x3a, 0xc3, 0xfb, 0x47, 0xba, 0x19, 0xfa, 0xde, 0x80, 0xa3, 0x9f, 0x76}: "DxePlatformDxe", efi.GUID{0x28, 0x97, 0x0e, 0xc2, 0x13, 0xd6, 0x71, 0x41, 0x82, 0xa4, 0xb2, 0x6c, 0x4d, 0x8a, 0x03, 0xbd}: "OCPCtrlPei", efi.GUID{0x28, 0x99, 0xde, 0x60, 0xdd, 0x47, 0x16, 0x45, 0xba, 0xfb, 0x34, 0xfa, 0x8f, 0x74, 0xa5, 0xd3}: "AppAuthenticationDxe", efi.GUID{0x28, 0xa1, 0x58, 0x3e, 0xc8, 0x55, 0x64, 0x41, 0xff, 0xff, 0xff, 0xff, 0x38, 0xa0, 0x56, 0x39}: "XnotePlatformPolicyRtDxe", efi.GUID{0x28, 0xa1, 0xf3, 0xad, 0x6d, 0x41, 0x60, 0x40, 0x8d, 0xdf, 0x30, 0xa1, 0xd7, 0xaa, 0xb6, 0x99}: "EfiSmmIchnDispatch2ProtocolGuid", efi.GUID{0x28, 0xa9, 0x95, 0x0c, 0x06, 0xa0, 0xd4, 0x11, 0xbc, 0xfa, 0x00, 0x80, 0xc7, 0x3c, 0x88, 0x81}: "EfiWinNtVirtualDisksGuid", efi.GUID{0x28, 0xad, 0xbe, 0x13, 0x8d, 0x48, 0x12, 0x91, 0x5b, 0x0e, 0x40, 0xb6, 0x7e, 0xdd, 0x80, 0x0c}: "AmdRasSmm", efi.GUID{0x28, 0xb8, 0xb2, 0xd2, 0x26, 0x08, 0xa7, 0x48, 0xb3, 0xdf, 0x98, 0x3c, 0x00, 0x60, 0x24, 0xf0}: "EfiStatusCodeRuntimeProtocolGuid", efi.GUID{0x28, 0xbe, 0xfd, 0xc0, 0x64, 0x4e, 0xab, 0x44, 0x9f, 0x7e, 0xf3, 0x31, 0x40, 0xe4, 0xfa, 0x2f}: "FanTableDxe", efi.GUID{0x28, 0xbf, 0xdd, 0x6c, 0xac, 0x89, 0x01, 0x4e, 0x96, 0x92, 0x61, 0x6b, 0x8a, 0x10, 0x09, 0xc8}: "FvFileLoaderOnLoadFileThunk", efi.GUID{0x28, 0xd0, 0x9f, 0xb8, 0xc6, 0xd4, 0xb7, 0x4b, 0xbc, 0xa4, 0x17, 0xd8, 0xc9, 0x45, 0xdc, 0x23}: "DellVideoDeviceSmm", efi.GUID{0x28, 0xd3, 0xde, 0x79, 0xce, 0x7f, 0x09, 0x49, 0x9a, 0xfd, 0xd6, 0x61, 0x76, 0xaf, 0x97, 0xa6}: "OobRx", efi.GUID{0x28, 0xd7, 0xa8, 0xa0, 0x2d, 0xbc, 0x3f, 0x48, 0xb5, 0x83, 0x28, 0x48, 0x9b, 0x77, 0xc8, 0xf6}: "FprSynapticsPrometheusDriver", efi.GUID{0x28, 0xd9, 0xec, 0x13, 0xab, 0x87, 0x60, 0x44, 0xbb, 0xe0, 0xb5, 0x20, 0xf9, 0xeb, 0x1d, 0x32}: "IconNetBoot", efi.GUID{0x28, 0xe1, 0x43, 0x9e, 0x4d, 0xc7, 0xf4, 0x42, 0x8c, 0x0c, 0x48, 0x11, 0x67, 0x4a, 0x17, 0xb5}: "EfiMonitorKeyFilterProtocol", efi.GUID{0x29, 0x0e, 0x3b, 0xda, 0xa7, 0x2d, 0xa7, 0x48, 0xae, 0x98, 0xb2, 0x10, 0x93, 0xdb, 0xbc, 0x2b}: "RecoveryImageReadWrite", efi.GUID{0x29, 0x0f, 0xab, 0xfa, 0x82, 0x05, 0xd1, 0x4a, 0x9b, 0xb9, 0xe6, 0x93, 0xa0, 0xd9, 0x98, 0x23}: "SioWdatDxe", efi.GUID{0x29, 0x10, 0x8c, 0xe3, 0x8f, 0xe3, 0xb9, 0x45, 0x8f, 0x0d, 0xe2, 0xe6, 0x0b, 0xc9, 0xb2, 0x62}: "DisplayEngineGuid", efi.GUID{0x29, 0x12, 0x69, 0x65, 0xe4, 0x3c, 0x47, 0x41, 0xac, 0xca, 0xe5, 0x58, 0xa2, 0x3a, 0xd1, 0xaa}: "PciePortControl", efi.GUID{0x29, 0x15, 0x0e, 0x47, 0x9e, 0xb7, 0x32, 0x4e, 0xa0, 0xfe, 0x6a, 0x15, 0x6d, 0x29, 0xf9, 0xb2}: "EfiBootScriptSaveProtocolGuid", efi.GUID{0x29, 0x18, 0xab, 0x01, 0xcd, 0xce, 0xfa, 0x4c, 0xa1, 0x8c, 0xea, 0x75, 0xd6, 0x6f, 0x3e, 0x74}: "IntelMebxProtocol", efi.GUID{0x29, 0x1a, 0x9b, 0x76, 0x83, 0xc0, 0x0a, 0x45, 0x8c, 0x96, 0xd7, 0x50, 0xfa, 0xf4, 0x53, 0x0e}: "LenovoCertAuthDxe", efi.GUID{0x29, 0x22, 0xe9, 0xbd, 0xa5, 0xf9, 0x97, 0x48, 0x81, 0xe4, 0x8b, 0xab, 0x67, 0x92, 0xa3, 0x95}: "DellDtLegUsbPolicy", efi.GUID{0x29, 0x26, 0x7f, 0x01, 0x3e, 0x2d, 0xa9, 0x4e, 0x9e, 0x59, 0x88, 0xda, 0x4d, 0x98, 0xc0, 0x27}: "SpiProtectionPei", efi.GUID{0x29, 0x2f, 0xa6, 0x4d, 0xba, 0x32, 0x70, 0x44, 0x94, 0xfe, 0xd7, 0xc8, 0x42, 0x60, 0xd4, 0x27}: "SecureBioXhci", efi.GUID{0x29, 0x35, 0xdf, 0xce, 0x19, 0x73, 0x30, 0x45, 0x93, 0x48, 0xfb, 0x12, 0x11, 0xcd, 0xdf, 0xfa}: "OpenBmcSmbios", efi.GUID{0x29, 0x35, 0xf6, 0xf4, 0x1e, 0x28, 0x40, 0x40, 0xa3, 0x13, 0xc1, 0xd6, 0x76, 0x63, 0x84, 0xbe}: "AmiHddSecurityProtocolGuid", efi.GUID{0x29, 0x38, 0x80, 0xd8, 0x73, 0x03, 0x75, 0x44, 0x97, 0x67, 0x46, 0x1e, 0xde, 0xa2, 0x88, 0x13}: "CsmInt10HookSmm", efi.GUID{0x29, 0x3a, 0xd9, 0xa3, 0x1b, 0x50, 0x6e, 0x4f, 0x86, 0x9a, 0x6f, 0xd4, 0xbc, 0xef, 0x90, 0xa7}: "DellSmbFactDefault", efi.GUID{0x29, 0x45, 0x8f, 0x66, 0xd0, 0x63, 0xb5, 0x4b, 0xb6, 0x5d, 0x6f, 0xbb, 0x9d, 0x36, 0xa4, 0x4a}: "QemuBootOrder", efi.GUID{0x29, 0x45, 0xa0, 0x98, 0x91, 0x13, 0xea, 0x4f, 0xae, 0xed, 0x2d, 0xce, 0x76, 0xa6, 0x3e, 0x14}: "DustFilter", efi.GUID{0x29, 0x56, 0x01, 0x1c, 0xcf, 0x00, 0x3d, 0x47, 0xbe, 0x1c, 0x35, 0x61, 0x02, 0x4f, 0x05, 0x69}: "AdlSemaDxe", efi.GUID{0x29, 0x58, 0x65, 0x7d, 0xdd, 0x26, 0x42, 0x43, 0x96, 0xad, 0x04, 0x89, 0x94, 0x77, 0xc3, 0xfa}: "SpiSmmStub", efi.GUID{0x29, 0x59, 0x5e, 0xce, 0xa3, 0xc7, 0x02, 0x46, 0xad, 0x9e, 0xc9, 0xda, 0xf9, 0x4e, 0xbf, 0xcf}: "EfiIpSecConfigProtocolGuid", efi.GUID{0x29, 0x5f, 0x52, 0x5b, 0x7d, 0x82, 0xa3, 0x4c, 0xbe, 0xb5, 0x89, 0x54, 0xb5, 0x6c, 0x05, 0x73}: "EfiSmBmcVariable", efi.GUID{0x29, 0x64, 0x12, 0xf8, 0x88, 0x7b, 0xd2, 0x4a, 0x98, 0xc4, 0x40, 0x2c, 0xbe, 0x26, 0xf9, 0xa8}: "IdentityAndAuthManagerDxe", efi.GUID{0x29, 0x71, 0xc8, 0xc9, 0xac, 0xdf, 0xde, 0x48, 0x85, 0x81, 0x73, 0x63, 0xa9, 0x0e, 0x10, 0x1d}: "UFSProvisioningTool", efi.GUID{0x29, 0x77, 0x31, 0xeb, 0xaa, 0x1f, 0x31, 0x49, 0xbf, 0x83, 0x31, 0xed, 0xbd, 0xf6, 0x1e, 0x99}: "ErrorControl", efi.GUID{0x29, 0x88, 0xc3, 0x8e, 0x9f, 0xa5, 0xe3, 0x40, 0xba, 0xd0, 0x85, 0xf8, 0x15, 0xa1, 0x57, 0xd1}: "DellServiceResetSmm", efi.GUID{0x29, 0x91, 0x69, 0x7a, 0xa0, 0xda, 0x24, 0x42, 0x86, 0x29, 0x73, 0x38, 0xde, 0x5d, 0x45, 0xed}: "TpmDriver", efi.GUID{0x29, 0x94, 0x3a, 0xa0, 0x70, 0xc5, 0xf9, 0x4e, 0x9e, 0x00, 0xc7, 0xa6, 0x73, 0x97, 0x6e, 0x5f}: "SmmControlDxe", efi.GUID{0x29, 0x97, 0xcc, 0xde, 0xcf, 0x74, 0xe7, 0x42, 0x86, 0x72, 0xb9, 0x4b, 0x7e, 0xf4, 0xa4, 0xc5}: "ApobRmbPei", efi.GUID{0x29, 0x98, 0x11, 0xf7, 0x4a, 0x31, 0x7f, 0x4e, 0x88, 0x53, 0x44, 0xaa, 0x79, 0xa7, 0xcb, 0x43}: "PspFactoryReset", efi.GUID{0x29, 0x9c, 0x4e, 0xbd, 0x5c, 0x85, 0xd8, 0x4b, 0x81, 0x73, 0x3f, 0x10, 0xb6, 0x17, 0xf2, 0x50}: "FjDisableDefaultConfigOrMfgModeBin", efi.GUID{0x29, 0x9c, 0xfa, 0xea, 0x4e, 0xd8, 0xbf, 0x42, 0xb1, 0x9a, 0x6d, 0x97, 0x34, 0xef, 0x4a, 0xbb}: "HpJpeg", efi.GUID{0x29, 0xa0, 0x76, 0x8a, 0x48, 0xf9, 0x56, 0x4a, 0x93, 0xd0, 0x2e, 0x2b, 0xc2, 0xab, 0xdb, 0x4b}: "OemACRecoveryPei", efi.GUID{0x29, 0xa1, 0xb9, 0x9a, 0xfa, 0xb8, 0x45, 0x40, 0xbb, 0x05, 0x48, 0xdb, 0xce, 0x72, 0x4f, 0x82}: "HWMINIT", efi.GUID{0x29, 0xa2, 0x75, 0xa7, 0xf2, 0xdb, 0x5d, 0x45, 0xb7, 0x37, 0xfb, 0xd5, 0x3d, 0x36, 0x8a, 0x26}: "OTP", efi.GUID{0x29, 0xa4, 0x70, 0x64, 0xf8, 0x20, 0x17, 0x4f, 0xa8, 0xc7, 0x00, 0xea, 0xec, 0x19, 0xfd, 0x0b}: "FchEspiCmdPei", efi.GUID{0x29, 0xae, 0x77, 0xad, 0x20, 0x4c, 0xdd, 0x4f, 0x85, 0x04, 0x81, 0x76, 0x61, 0x9b, 0x67, 0x6a}: "AmiHddSecurityEndProtocolGuid", efi.GUID{0x29, 0xb2, 0xb7, 0x8e, 0xe3, 0x27, 0xbc, 0x4f, 0xb9, 0xf1, 0x3a, 0x24, 0x5b, 0x3a, 0xf1, 0xd6}: "HpCableDetect", efi.GUID{0x29, 0xb2, 0xbb, 0x8d, 0xe3, 0x87, 0xbc, 0x4c, 0xb2, 0xf7, 0x6a, 0x54, 0xc8, 0x30, 0xd1, 0x66}: "HpCableDetect", efi.GUID{0x29, 0xb9, 0xf4, 0xe9, 0x33, 0xee, 0x70, 0x4b, 0x8e, 0x90, 0x17, 0xd2, 0x83, 0xaf, 0x50, 0x8c}: "LibSoftfloat", efi.GUID{0x29, 0xbc, 0xfa, 0xf8, 0xab, 0x6c, 0xeb, 0x48, 0x80, 0x2d, 0xff, 0x2e, 0xf6, 0xa3, 0xdf, 0x87}: "HpCableDetect", efi.GUID{0x29, 0xc5, 0x28, 0x0d, 0xd4, 0x87, 0x98, 0x42, 0x8a, 0x54, 0x40, 0xf2, 0x2a, 0x9f, 0xe2, 0x4a}: "DellDaHddProtection", efi.GUID{0x29, 0xc8, 0xbc, 0xa6, 0x9f, 0x88, 0xb5, 0x4e, 0xa4, 0x90, 0x1b, 0x4c, 0x1a, 0xaf, 0x78, 0x9c}: "SetupConfigUpdateDxeEVB", efi.GUID{0x29, 0xd2, 0xab, 0xcc, 0xc4, 0x51, 0xe7, 0x4d, 0xae, 0x2f, 0x3a, 0xaf, 0x71, 0xf9, 0xec, 0xe5}: "SystemSetupAdvancedDxe", efi.GUID{0x29, 0xd3, 0x61, 0x4c, 0x46, 0x77, 0xb4, 0x40, 0x98, 0xd0, 0x54, 0x51, 0x4a, 0x41, 0xac, 0x22}: "PublicWmi", efi.GUID{0x29, 0xd5, 0x77, 0x36, 0x6f, 0x32, 0x03, 0x46, 0xa9, 0x26, 0xea, 0xac, 0xe0, 0x1d, 0xcb, 0xb0}: "EfiPciExpressBaseAddressGuid", efi.GUID{0x29, 0xd6, 0xfb, 0xf1, 0xea, 0x22, 0xd1, 0x40, 0xaa, 0x48, 0x94, 0xc3, 0xdc, 0x5c, 0x7e, 0x0d}: "SbSocBristolPei", efi.GUID{0x29, 0xda, 0x9c, 0x68, 0xa8, 0x29, 0xf6, 0x42, 0x93, 0xfc, 0x46, 0xba, 0x5f, 0x18, 0x06, 0x51}: "ImagePasswordProceed", efi.GUID{0x29, 0xdf, 0xd9, 0x3a, 0x01, 0x45, 0x8d, 0x47, 0xb1, 0xf8, 0x7f, 0x7f, 0xe7, 0x0e, 0x50, 0xf3}: "EfiUdp4ProtocolGuid", efi.GUID{0x29, 0xdf, 0xdb, 0xf1, 0xea, 0x12, 0xd1, 0x20, 0x2c, 0x48, 0x84, 0xc3, 0xdc, 0x5c, 0x7e, 0x0d}: "SbSocRavenPei", efi.GUID{0x29, 0xdf, 0xdb, 0xf1, 0xea, 0xa2, 0xd1, 0x90, 0x2a, 0x48, 0x94, 0xc3, 0xdc, 0x5c, 0x7e, 0x0d}: "SbSocSummitPei", efi.GUID{0x29, 0xf6, 0x44, 0xbd, 0xe7, 0xea, 0x98, 0x41, 0x87, 0xf1, 0x39, 0xfa, 0xb0, 0xfd, 0x71, 0x7e}: "FspEventEndOfFirmwareGuid", efi.GUID{0x29, 0xf9, 0x78, 0x35, 0x84, 0x71, 0x75, 0x42, 0xb9, 0x41, 0xaa, 0xa9, 0x06, 0xc8, 0x85, 0x4f}: "WlanSuplct", efi.GUID{0x2a, 0x00, 0x68, 0x8b, 0x7b, 0x81, 0x61, 0x03, 0xba, 0xba, 0x63, 0x41, 0xa4, 0x4e, 0xa0, 0x52}: "DPTFPolicy", efi.GUID{0x2a, 0x04, 0x5a, 0xc0, 0x6f, 0x7e, 0x0a, 0x41, 0x91, 0x77, 0xe2, 0x88, 0xd1, 0x3c, 0x3c, 0x34}: "PsrControlDxe", efi.GUID{0x2a, 0x1a, 0x6a, 0x7d, 0x25, 0x6b, 0xda, 0x48, 0xbe, 0x80, 0xb8, 0xc8, 0x8e, 0xf9, 0xad, 0x56}: "DymanicUpdateBiosSizeInfo", efi.GUID{0x2a, 0x23, 0xd4, 0x9b, 0xb0, 0xe5, 0x8c, 0x41, 0x9a, 0xbd, 0xb0, 0xb8, 0x57, 0x4f, 0x13, 0x8c}: "EcStorageAgentPei", efi.GUID{0x2a, 0x2c, 0x5d, 0x85, 0x68, 0x8a, 0x83, 0x47, 0xae, 0xc0, 0xcc, 0xd9, 0x95, 0xcb, 0xa5, 0x69}: "FchKeithMdnSsdt", efi.GUID{0x2a, 0x3b, 0xd4, 0x37, 0xa0, 0x43, 0xea, 0x4a, 0xab, 0x79, 0xe4, 0xfe, 0xf5, 0x3c, 0x0f, 0x12}: "MicroCodepointerGuid", efi.GUID{0x2a, 0x3d, 0xe3, 0xdb, 0x10, 0x6b, 0x77, 0x4e, 0xbe, 0xf8, 0xc8, 0x29, 0xf2, 0x9c, 0x8a, 0x85}: "DellUsbBusDxe", efi.GUID{0x2a, 0x50, 0x88, 0x95, 0x70, 0x53, 0xe3, 0x11, 0x86, 0x31, 0xd7, 0xc5, 0x95, 0x13, 0x64, 0xc8}: "AndroidFastbootApp", efi.GUID{0x2a, 0x50, 0x9e, 0x84, 0xb6, 0x75, 0x9c, 0x4f, 0xad, 0x12, 0x1e, 0x01, 0xf1, 0xdc, 0x0c, 0x40}: "AmdAgesaParameterGroupPei", efi.GUID{0x2a, 0x56, 0xd6, 0xfc, 0x3a, 0x25, 0xd7, 0x40, 0x87, 0xde, 0x28, 0xcf, 0xf2, 0x58, 0x98, 0xc6}: "InsideHT", efi.GUID{0x2a, 0x60, 0xf9, 0x45, 0x75, 0x34, 0x1e, 0x4d, 0x9f, 0xe9, 0xba, 0xc9, 0x9f, 0x42, 0xad, 0x49}: "AppleBacklightController", efi.GUID{0x2a, 0x63, 0x26, 0xc0, 0x3c, 0x07, 0x4a, 0x44, 0xad, 0x9c, 0x5e, 0x96, 0x3f, 0xeb, 0xbc, 0x0f}: "FchSmmDispatcher", efi.GUID{0x2a, 0x6c, 0x0d, 0xf1, 0xd6, 0xa2, 0x96, 0x4d, 0xa2, 0x12, 0x2b, 0x4f, 0x60, 0x05, 0xf3, 0x89}: "LenovoSecureBootConfigDxe", efi.GUID{0x2a, 0x75, 0x28, 0x86, 0xb7, 0x6c, 0x14, 0x48, 0x96, 0xfc, 0x24, 0xa8, 0x15, 0xac, 0x22, 0x26}: "EfiHashAlgorithmSha256NoPadGuid", efi.GUID{0x2a, 0x7f, 0x0e, 0xb0, 0x0a, 0x45, 0xd9, 0x47, 0x93, 0x72, 0x17, 0x2e, 0xcd, 0x15, 0xb7, 0x44}: "FjS5P", efi.GUID{0x2a, 0x87, 0x26, 0xb3, 0xc2, 0x4d, 0xb3, 0x4d, 0x88, 0xb2, 0xf6, 0xc4, 0x47, 0x5f, 0x8c, 0x91}: "CpuConfigGuid", efi.GUID{0x2a, 0x8b, 0xa8, 0x52, 0xfd, 0x65, 0x51, 0x49, 0x8b, 0x25, 0x06, 0xfb, 0x65, 0x98, 0x12, 0x8b}: "DellSpiPartEon", efi.GUID{0x2a, 0x8e, 0x1c, 0xd1, 0xd1, 0x3c, 0x3c, 0x44, 0xac, 0x09, 0x63, 0x52, 0x6d, 0xe7, 0xe1, 0x70}: "SmmSupervisorBinRelease", efi.GUID{0x2a, 0x93, 0x20, 0x65, 0x30, 0x3c, 0xa7, 0x48, 0x9e, 0x9d, 0x4d, 0xd1, 0x0c, 0xd4, 0x9d, 0x4c}: "EcLabProductionModeSmm", efi.GUID{0x2a, 0x9e, 0x73, 0x51, 0x22, 0xa0, 0x73, 0x4d, 0xad, 0xb9, 0x91, 0xf0, 0xc9, 0xbc, 0x71, 0x42}: "MpServicesOnFrameworkMpServicesThunk", efi.GUID{0x2a, 0xae, 0xc2, 0x39, 0xac, 0x33, 0xea, 0x32, 0x3c, 0xa5, 0x9b, 0x12, 0xea, 0x56, 0x45, 0x40}: "AcerToolsProcess", efi.GUID{0x2a, 0xb0, 0x3a, 0xf8, 0x44, 0x2b, 0x99, 0x47, 0xa2, 0x1f, 0x85, 0xe7, 0xf2, 0xe8, 0xa3, 0x2c}: "KEMhMfgMode", efi.GUID{0x2a, 0xb5, 0x20, 0xf9, 0x21, 0xb4, 0x09, 0x45, 0xbd, 0x00, 0xb7, 0x5f, 0xd9, 0x56, 0x27, 0x75}: "AcerCF9Hook", efi.GUID{0x2a, 0xb5, 0x61, 0x2d, 0xef, 0x69, 0x7d, 0x49, 0x83, 0x17, 0x55, 0x74, 0xae, 0xc8, 0x9b, 0xe4}: "FirmwarePassword", efi.GUID{0x2a, 0xb7, 0xd3, 0x13, 0x47, 0x80, 0xb8, 0x47, 0xa4, 0xc4, 0x4e, 0x81, 0x4f, 0x6b, 0x25, 0xa1}: "DnxDxe", efi.GUID{0x2a, 0xba, 0xd6, 0xd9, 0x25, 0x82, 0x9b, 0x46, 0xb3, 0x6e, 0x3b, 0x34, 0xeb, 0xe8, 0x05, 0xcf}: "StatusCodeHandlerRuntimeDxeUsb", efi.GUID{0x2a, 0xbd, 0x16, 0x12, 0x5e, 0xc0, 0x6d, 0x4c, 0x91, 0xe7, 0xeb, 0x8e, 0x37, 0xad, 0x3b, 0x7a}: "aDefaultDXE", efi.GUID{0x2a, 0xc6, 0x2e, 0x65, 0x15, 0xdc, 0x73, 0x4b, 0xb6, 0xbd, 0xda, 0xa1, 0x3b, 0xf1, 0xd8, 0x8c}: "Cf9ResetSmm", efi.GUID{0x2a, 0xcc, 0x7f, 0xb9, 0x7f, 0x47, 0x39, 0x49, 0xae, 0xc7, 0xef, 0x42, 0x36, 0xd8, 0x8e, 0x3b}: "SureStartPcdDxe", efi.GUID{0x2a, 0xd1, 0x29, 0x20, 0x83, 0x0a, 0x77, 0x42, 0x86, 0xa2, 0x71, 0x29, 0x05, 0x20, 0x1a, 0xe7}: "SpiWmi", efi.GUID{0x2a, 0xd1, 0xed, 0x94, 0x9b, 0x41, 0x7f, 0x44, 0x94, 0x34, 0x9b, 0x3b, 0x70, 0x78, 0x39, 0x03}: "PlatformDxe", efi.GUID{0x2a, 0xd4, 0x4c, 0xe9, 0xad, 0x3a, 0xa0, 0x4e, 0x9b, 0x09, 0x94, 0x58, 0x91, 0xc6, 0x0c, 0xcd}: "DxeIoLibCpuIo", efi.GUID{0x2a, 0xd7, 0x9b, 0x2d, 0x38, 0xb2, 0xff, 0x4b, 0x9b, 0xb9, 0xb5, 0x1e, 0x0d, 0x4d, 0x55, 0x3c}: "SlotDataUpdateDxeLightningRidgeEXECB3", efi.GUID{0x2a, 0xdb, 0xae, 0x8a, 0xbb, 0xa6, 0xc6, 0x47, 0x94, 0xce, 0x1b, 0x80, 0x96, 0x42, 0x3f, 0x2a}: "EfiSocketServiceBindingProtocolGuid", efi.GUID{0x2a, 0xe5, 0x10, 0x92, 0x9e, 0x72, 0x17, 0x48, 0x85, 0xc8, 0xf4, 0x55, 0x00, 0xce, 0x24, 0xc6}: "PchLpcSmm", efi.GUID{0x2a, 0xec, 0xf7, 0x01, 0x6e, 0x8f, 0x51, 0x4c, 0x94, 0xc2, 0xde, 0x0e, 0x1c, 0x22, 0x3f, 0x73}: "RasAcpi", efi.GUID{0x2a, 0xed, 0x19, 0x98, 0x01, 0xd2, 0x19, 0x35, 0x87, 0xdb, 0x61, 0xc6, 0x16, 0xe1, 0x15, 0x07}: "FmpDxe", efi.GUID{0x2a, 0xf6, 0xe3, 0xde, 0x0f, 0x3b, 0x8b, 0x44, 0x81, 0xf9, 0x4a, 0xfd, 0x54, 0x65, 0x15, 0xb9}: "SiliconNvsDataPei", efi.GUID{0x2a, 0xf8, 0x39, 0xc9, 0x01, 0x35, 0x57, 0x46, 0x82, 0x56, 0xfd, 0x4c, 0x22, 0x88, 0x87, 0x2f}: "HpErrorLoggingSmm", efi.GUID{0x2b, 0x00, 0xd8, 0xa7, 0x3b, 0x92, 0xc0, 0x41, 0x88, 0x4c, 0x3f, 0xc3, 0x79, 0x52, 0x03, 0xfa}: "SystemVariableStoreProtocol", efi.GUID{0x2b, 0x03, 0x5b, 0x80, 0x00, 0x6a, 0xf5, 0x46, 0x85, 0x01, 0xcb, 0x88, 0xa2, 0x1d, 0x53, 0x21}: "BcmDhd", efi.GUID{0x2b, 0x0c, 0xa5, 0x0e, 0x0d, 0x4c, 0xa3, 0x4c, 0x97, 0xc1, 0x00, 0x14, 0xdb, 0x75, 0x44, 0x73}: "UefiLegacyBootMarker", efi.GUID{0x2b, 0x12, 0x54, 0x9a, 0xe4, 0xf5, 0xd8, 0x40, 0xae, 0x61, 0xa7, 0x1e, 0x40, 0x6e, 0xd4, 0x49}: "ChaosKeyDxe", efi.GUID{0x2b, 0x14, 0x78, 0xda, 0xa5, 0xe4, 0x33, 0x48, 0xb2, 0x0b, 0x67, 0x23, 0x00, 0x79, 0x47, 0xcb}: "FjLanI219LmSmm", efi.GUID{0x2b, 0x15, 0x5e, 0x14, 0xde, 0x3d, 0xb4, 0x4e, 0x99, 0xa7, 0x77, 0x08, 0x3c, 0x2b, 0xcb, 0xec}: "DellFmpMcu", efi.GUID{0x2b, 0x15, 0xbc, 0x2c, 0x8a, 0xb4, 0x60, 0x40, 0xb0, 0x09, 0xdc, 0xb9, 0x37, 0x9e, 0x50, 0x15}: "RcPolicyOverridePei", efi.GUID{0x2b, 0x15, 0xe8, 0x95, 0x98, 0x1b, 0x11, 0x4f, 0x8a, 0x77, 0xdb, 0x26, 0x58, 0x3e, 0xbc, 0x42}: "AmiPeiSbInitPolicyGuid", efi.GUID{0x2b, 0x1a, 0x9d, 0x73, 0xa1, 0xfb, 0x4a, 0x40, 0x87, 0x84, 0x25, 0xcf, 0xa5, 0x7b, 0xea, 0xcd}: "HddAcousticDynamicSetup", efi.GUID{0x2b, 0x23, 0xad, 0x86, 0x3a, 0xd3, 0x5c, 0x46, 0xbf, 0x5f, 0x41, 0x37, 0x0b, 0xa9, 0x2f, 0xe2}: "EfiMiniShellFile", efi.GUID{0x2b, 0x23, 0xd0, 0x28, 0x6c, 0xd2, 0x5f, 0x4b, 0x94, 0xff, 0xb1, 0x34, 0x0f, 0xc1, 0x60, 0xb8}: "AmdCpuIdentifyPei", efi.GUID{0x2b, 0x29, 0x58, 0x9e, 0x68, 0x7c, 0x7d, 0x49, 0xa0, 0xce, 0x65, 0x00, 0xfd, 0x9f, 0x1b, 0x95}: "EdkiiWorkingBlockSignatureGuid", efi.GUID{0x2b, 0x2e, 0xaa, 0xfe, 0xac, 0x53, 0x5e, 0x4d, 0xae, 0x10, 0x1e, 0xfd, 0x5d, 0xa4, 0xa2, 0xba}: "BeagleBoardPciEmulation", efi.GUID{0x2b, 0x37, 0xc2, 0xb0, 0x93, 0x93, 0xbc, 0x4c, 0x9c, 0xaf, 0x53, 0x91, 0x3c, 0x9d, 0xce, 0x29}: "FlashDeviceFvbRuntimeDxe", efi.GUID{0x2b, 0x41, 0x46, 0x28, 0x0f, 0xf5, 0x5b, 0x4a, 0x8c, 0x8b, 0x76, 0x64, 0x43, 0x24, 0xaa, 0x66}: "FchSmbusDxe", efi.GUID{0x2b, 0x44, 0xbb, 0x97, 0xfe, 0xf9, 0xe3, 0x45, 0x8a, 0x28, 0x43, 0x9e, 0xed, 0xcd, 0x18, 0x13}: "DualBiosPei", efi.GUID{0x2b, 0x4e, 0xb1, 0x16, 0xd9, 0xda, 0x18, 0x46, 0xac, 0xe2, 0x7d, 0x32, 0x4a, 0x26, 0xf9, 0xa0}: "FjGpioResetPDPei", efi.GUID{0x2b, 0x50, 0x87, 0xdd, 0xde, 0xcb, 0xa4, 0x48, 0xa8, 0x96, 0xf5, 0x21, 0xe0, 0x74, 0x5c, 0xc0}: "AppAdapterTdx3v0", efi.GUID{0x2b, 0x5e, 0x8b, 0xed, 0x22, 0x66, 0x14, 0x4d, 0x90, 0x69, 0x9b, 0xde, 0xc5, 0x4c, 0x94, 0x91}: "TcgPwdTseHook", efi.GUID{0x2b, 0x5f, 0x8b, 0x1b, 0x5a, 0x60, 0x09, 0x4d, 0xaf, 0xda, 0x84, 0x2c, 0x39, 0x33, 0xa0, 0x50}: "AmiFchUart1Dxe", efi.GUID{0x2b, 0x63, 0xd9, 0x0c, 0x9c, 0xa1, 0x88, 0x44, 0x89, 0x17, 0x4e, 0x1c, 0x8e, 0x75, 0xdc, 0x1a}: "ncm865x64", efi.GUID{0x2b, 0x66, 0x79, 0x54, 0xe4, 0x6a, 0xe8, 0x49, 0xa6, 0xbd, 0x6d, 0xe4, 0xb6, 0x25, 0x81, 0x1f}: "KeyboardDxe", efi.GUID{0x2b, 0x66, 0xfa, 0xf9, 0x61, 0x83, 0xf0, 0x4d, 0xa4, 0x19, 0x78, 0x1e, 0xb0, 0x24, 0xb2, 0xb7}: "LenovoTpmProvisionDxe", efi.GUID{0x2b, 0x6f, 0xb3, 0xd3, 0x51, 0xd5, 0xd4, 0x11, 0x9a, 0x46, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d}: "EfiConsoleInDeviceGuid", efi.GUID{0x2b, 0x77, 0x73, 0x72, 0xaa, 0x6d, 0x2f, 0x4e, 0x90, 0x63, 0x6c, 0x95, 0xfd, 0xa9, 0x31, 0xbf}: "AdlSemaPei", efi.GUID{0x2b, 0x77, 0x7a, 0x10, 0xe1, 0xd5, 0xd4, 0x11, 0x9a, 0x46, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d}: "EfiDriverConfigurationProtocolGuid", efi.GUID{0x2b, 0x82, 0x92, 0xad, 0xc8, 0x30, 0xb1, 0x49, 0x8a, 0xf3, 0x63, 0xcc, 0xdf, 0x19, 0xb0, 0x7f}: "DxeSmmIoLibSmm", efi.GUID{0x2b, 0x83, 0x7b, 0x2a, 0xe0, 0x3e, 0xc2, 0x44, 0x8f, 0x3a, 0x9f, 0xd4, 0x31, 0x83, 0xb8, 0x53}: "DellFmpPfat", efi.GUID{0x2b, 0x84, 0xef, 0xf4, 0xd1, 0xe3, 0x1a, 0x41, 0x86, 0xdc, 0xf4, 0xbf, 0x1f, 0xba, 0x9e, 0x40}: "Platform_AcerPortingSmm", efi.GUID{0x2b, 0x8b, 0x05, 0x2e, 0xc1, 0xed, 0x31, 0x44, 0x87, 0xd9, 0xc6, 0xc4, 0xea, 0x10, 0x2b, 0xe3}: "ScNvsAreaProtocolGuid", efi.GUID{0x2b, 0x90, 0x6e, 0x2a, 0xf3, 0xf1, 0x75, 0x42, 0xbc, 0x7b, 0x40, 0xfd, 0x4b, 0x54, 0x81, 0xe7}: "FlashUpdBootModePpiGuid", efi.GUID{0x2b, 0x90, 0xb7, 0x39, 0x77, 0x23, 0x73, 0x4f, 0x98, 0x35, 0xb3, 0x51, 0x28, 0xab, 0xb8, 0xd1}: "AppleUpdateMTRR", efi.GUID{0x2b, 0x91, 0x9a, 0x9a, 0x53, 0x5f, 0x86, 0x45, 0x88, 0x20, 0x70, 0x44, 0x85, 0xa2, 0x9d, 0x21}: "MePlatformReset", efi.GUID{0x2b, 0x94, 0x65, 0xbb, 0x1f, 0x52, 0xc3, 0x4e, 0xba, 0xf9, 0xa9, 0x25, 0x40, 0xcf, 0x60, 0xd2}: "SataController", efi.GUID{0x2b, 0xa1, 0x87, 0x8b, 0x38, 0xf4, 0xc0, 0x49, 0x8a, 0x7b, 0x8d, 0x16, 0xa1, 0xfd, 0xac, 0xd4}: "Rt8111FPciUndiDxe", efi.GUID{0x2b, 0xa6, 0x72, 0xf8, 0x51, 0x31, 0x39, 0x4f, 0x80, 0x5e, 0x57, 0x02, 0xce, 0x1f, 0x75, 0x04}: "MsiPtpTouchPad", efi.GUID{0x2b, 0xb4, 0xfd, 0x45, 0x95, 0x1f, 0x53, 0x4a, 0x9b, 0xa4, 0x1c, 0x8b, 0xfb, 0x8b, 0xcb, 0x01}: "DellGpeConfig", efi.GUID{0x2b, 0xbe, 0xf8, 0xd2, 0x98, 0x98, 0x4d, 0x41, 0xa7, 0x6a, 0x20, 0xa5, 0xc8, 0xde, 0x77, 0xe0}: "TouchPad_Elan", efi.GUID{0x2b, 0xc5, 0x93, 0x0e, 0x73, 0x4b, 0x32, 0x5c, 0x86, 0xd5, 0x69, 0x25, 0x0a, 0x0b, 0xa7, 0x23}: "AppleThemeFileNames", efi.GUID{0x2b, 0xce, 0xb3, 0x39, 0xd0, 0x82, 0x7e, 0x4c, 0xb9, 0x49, 0xd5, 0xe6, 0x51, 0x81, 0xb9, 0x8a}: "IshFwLayout", efi.GUID{0x2b, 0xd0, 0x2d, 0xc4, 0x83, 0xbb, 0x18, 0x41, 0x8f, 0x16, 0x31, 0x01, 0x14, 0x15, 0xa6, 0x3a}: "UserLEDCtrlPei", efi.GUID{0x2b, 0xd3, 0x59, 0x8d, 0x55, 0xc6, 0xe9, 0x4a, 0x9b, 0x15, 0xf2, 0x59, 0x04, 0x99, 0x2a, 0x43}: "EfiAbsolutePointerProtocolGuid", efi.GUID{0x2b, 0xdd, 0x4c, 0x3f, 0x13, 0xa7, 0x43, 0x44, 0xa2, 0x53, 0x7e, 0xb2, 0x2b, 0x71, 0x73, 0x0e}: "BctBaseSmmRPL", efi.GUID{0x2b, 0xe4, 0x76, 0xfb, 0x77, 0xea, 0xf3, 0x48, 0xa6, 0x1d, 0x20, 0x8f, 0xf0, 0x53, 0x5f, 0x92}: "TrEEPpVendorLibNull", efi.GUID{0x2b, 0xe5, 0x4e, 0x19, 0xfe, 0x02, 0x8d, 0x41, 0xaa, 0x10, 0x2e, 0x61, 0xe5, 0x1c, 0xb8, 0x94}: "DellMonotonicCounter", efi.GUID{0x2b, 0xe8, 0x15, 0xf5, 0xd9, 0x44, 0xd8, 0x41, 0xba, 0x90, 0xea, 0xef, 0xc7, 0xc6, 0xa6, 0x68}: "FlashMediaReaderDxe", efi.GUID{0x2c, 0x06, 0xf4, 0xe1, 0x3b, 0x99, 0x72, 0x49, 0x9a, 0x6a, 0x3e, 0xb6, 0x8a, 0xec, 0x54, 0x03}: "RtkUndiDxe", efi.GUID{0x2c, 0x08, 0x1f, 0x6c, 0xd1, 0x93, 0x3a, 0x4f, 0xa7, 0xe4, 0x4e, 0xb8, 0x4e, 0x73, 0x3f, 0x7b}: "PsrPei", efi.GUID{0x2c, 0x1b, 0xf3, 0x6a, 0xbe, 0x03, 0xc1, 0x46, 0xb1, 0x2d, 0xea, 0x4a, 0x36, 0xdf, 0xa7, 0x4c}: "EdkiiPeiNvmExpressPassThruPpi", efi.GUID{0x2c, 0x21, 0x73, 0xe2, 0xd9, 0x11, 0x28, 0x47, 0xb1, 0xac, 0xb6, 0xee, 0x50, 0x83, 0xee, 0xd6}: "TbtRetimerCapsule1Dxe", efi.GUID{0x2c, 0x27, 0x5f, 0xc3, 0xc2, 0x97, 0x5a, 0x46, 0xa2, 0x16, 0x69, 0x6b, 0x66, 0x8a, 0x8c, 0xfe}: "UserProfileManagerGuid", efi.GUID{0x2c, 0x2a, 0x46, 0x3b, 0x5e, 0xc7, 0xc5, 0x43, 0xac, 0x4f, 0xd4, 0xaf, 0x0d, 0x5e, 0x00, 0x2e}: "AmdFabricStxKrkPei", efi.GUID{0x2c, 0x31, 0xae, 0xb5, 0x8a, 0xbc, 0xb1, 0x43, 0x9c, 0x62, 0xeb, 0xb8, 0x26, 0xdd, 0x5d, 0x07}: "GrubFile", efi.GUID{0x2c, 0x32, 0x7d, 0x2e, 0x5c, 0x0e, 0xdf, 0x11, 0xa0, 0xde, 0x1b, 0xf2, 0xa4, 0x4e, 0xdc, 0x7e}: "VmwExtCfgDevDxe", efi.GUID{0x2c, 0x40, 0x52, 0xc9, 0xa8, 0xf2, 0x0f, 0x41, 0x96, 0xf7, 0x2c, 0x78, 0x9b, 0xe0, 0xe0, 0xa1}: "LenovoTamperDxe", efi.GUID{0x2c, 0x50, 0x27, 0x97, 0x4e, 0x03, 0x2b, 0x47, 0x8e, 0x1b, 0x67, 0xbb, 0x28, 0xc6, 0xcf, 0xdb}: "DebugAgentDxe", efi.GUID{0x2c, 0x52, 0x11, 0x50, 0x0e, 0x7b, 0xcb, 0x4a, 0x8e, 0x30, 0x9b, 0x1d, 0x13, 0x3c, 0xf2, 0xe0}: "FmpAuthenticationLibNull", efi.GUID{0x2c, 0x56, 0x84, 0xc1, 0x64, 0x68, 0xa3, 0x40, 0xa0, 0x81, 0xc8, 0xd3, 0x5e, 0x82, 0xb9, 0x20}: "WinCeGuid", efi.GUID{0x2c, 0x56, 0x84, 0xcd, 0x64, 0x68, 0xa3, 0x40, 0xa0, 0x81, 0xc8, 0xd3, 0x5e, 0x82, 0xb9, 0x20}: "CspLibDxe", efi.GUID{0x2c, 0x57, 0x76, 0x67, 0x56, 0xfe, 0xca, 0x42, 0x9b, 0x93, 0x3d, 0x09, 0x60, 0xe7, 0x58, 0x3a}: "IconBrokenBoot", efi.GUID{0x2c, 0x59, 0x63, 0xdb, 0xcc, 0xb8, 0xc8, 0x44, 0x91, 0x8c, 0x51, 0xf5, 0x34, 0x59, 0x8a, 0x5a}: "PchResetProtocolGuid", efi.GUID{0x2c, 0x5a, 0x8a, 0xde, 0x88, 0xd7, 0xfb, 0x47, 0xa0, 0xb5, 0x20, 0xca, 0x8e, 0x58, 0xdf, 0xec}: "DellSystemIdConfigPei", efi.GUID{0x2c, 0x62, 0x86, 0x23, 0x1a, 0xfc, 0x5b, 0x4b, 0xae, 0x3a, 0xc8, 0x1f, 0xb3, 0x0a, 0xf1, 0x28}: "FjDxeLeg", efi.GUID{0x2c, 0x67, 0x5b, 0x52, 0x8f, 0x8c, 0x61, 0x03, 0xae, 0x8e, 0x56, 0x5e, 0xe0, 0xf5, 0x63, 0xb8}: "MemInfoDxe", efi.GUID{0x2c, 0x67, 0x73, 0xba, 0xd3, 0xa5, 0xd4, 0x11, 0xbd, 0x00, 0x00, 0x80, 0xc7, 0x3c, 0x88, 0x81}: "EfiWinNtConsoleGuid", efi.GUID{0x2c, 0x6d, 0x81, 0xea, 0xe5, 0xce, 0x02, 0x4f, 0x99, 0xb5, 0xd3, 0x90, 0x5c, 0xbb, 0xd0, 0x77}: "EfiHiiNewProtocol", efi.GUID{0x2c, 0x6f, 0xb3, 0xd3, 0x51, 0xd5, 0xd4, 0x11, 0x9a, 0x46, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d}: "EfiConsoleOutDeviceGuid", efi.GUID{0x2c, 0x70, 0x0e, 0xf5, 0x53, 0x86, 0xde, 0x4c, 0xbb, 0xce, 0x43, 0xb4, 0xd5, 0x5b, 0x34, 0xb8}: "EfiMiscSubclassDriver", efi.GUID{0x2c, 0x77, 0x7a, 0x10, 0xe1, 0xd5, 0xd4, 0x11, 0x9a, 0x46, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d}: "EfiComponentNameProtocolGuid", efi.GUID{0x2c, 0x7d, 0x67, 0x5a, 0xb2, 0xda, 0xf1, 0x46, 0xa4, 0xfc, 0xc3, 0x25, 0x50, 0x45, 0x80, 0x7a}: "StringMarshalDxe", efi.GUID{0x2c, 0x80, 0xfd, 0x9c, 0xa1, 0x09, 0xd6, 0x43, 0x82, 0x17, 0xaa, 0x49, 0xc1, 0xf9, 0x0d, 0x2c}: "Mebx", efi.GUID{0x2c, 0x81, 0x9e, 0x23, 0x4a, 0xad, 0x5a, 0x4d, 0x8b, 0xb9, 0x16, 0x91, 0x31, 0xc3, 0x44, 0xbf}: "AmdIdsDebugPrintPei", efi.GUID{0x2c, 0x82, 0xd4, 0xbd, 0x9b, 0x5a, 0x73, 0x46, 0x9a, 0xda, 0x50, 0xca, 0xc7, 0x24, 0x6f, 0xce}: "FjFlashServiceDxe", efi.GUID{0x2c, 0x84, 0xd8, 0xfa, 0xc7, 0x7d, 0x2f, 0x47, 0xa6, 0xa7, 0x1c, 0xa1, 0xf0, 0x73, 0x64, 0x4f}: "AmdMemoryHobInfoPeim", efi.GUID{0x2c, 0x87, 0xb7, 0xd1, 0x0d, 0xe6, 0x86, 0x4d, 0x93, 0x2a, 0xe9, 0xf8, 0xd4, 0x6d, 0x34, 0x4a}: "AMIProjectDXE", efi.GUID{0x2c, 0x88, 0x22, 0xd1, 0x73, 0xda, 0x8b, 0x43, 0xa6, 0xb3, 0xe0, 0x7b, 0x7d, 0x18, 0xdb, 0x6f}: "FastBootSmi", efi.GUID{0x2c, 0x88, 0x74, 0x13, 0x94, 0xb9, 0xdb, 0x48, 0x8d, 0x1b, 0x93, 0xe8, 0x17, 0x54, 0x1f, 0xbd}: "CertificateStorageDxe", efi.GUID{0x2c, 0x8c, 0xaa, 0x8d, 0x2b, 0x5e, 0x58, 0x41, 0x8a, 0xdf, 0x5f, 0xac, 0xfc, 0x0e, 0x9b, 0x77}: "AcerLID", efi.GUID{0x2c, 0x94, 0xc7, 0x39, 0x72, 0xc2, 0x12, 0x49, 0x9f, 0xe4, 0x57, 0xf6, 0x95, 0xcf, 0x54, 0x42}: "AmtBoot", efi.GUID{0x2c, 0x97, 0x53, 0x82, 0xe7, 0x9c, 0x39, 0x45, 0x87, 0xec, 0xa2, 0x48, 0xa4, 0x80, 0x84, 0xc7}: "AddressTranslationDsm", efi.GUID{0x2c, 0x98, 0x5a, 0x38, 0x49, 0x2f, 0x43, 0x40, 0xa5, 0x1e, 0x49, 0x01, 0x02, 0x5c, 0x8b, 0x6b}: "PrePiExtractGuidedSectionData", efi.GUID{0x2c, 0x9d, 0x16, 0x35, 0x26, 0x24, 0xcc, 0x45, 0x8a, 0xf4, 0x5b, 0x61, 0x8b, 0xc9, 0xa0, 0x0a}: "EfiHeci2PmProtocolGuid", efi.GUID{0x2c, 0x9e, 0x74, 0xf3, 0x39, 0x51, 0x7a, 0x4e, 0xb5, 0x3a, 0x4f, 0x50, 0x80, 0xb6, 0x8b, 0x8f}: "PciSerialDxe", efi.GUID{0x2c, 0xa2, 0xa8, 0x17, 0x65, 0x83, 0x40, 0x45, 0x98, 0x66, 0xda, 0xf6, 0xda, 0xbe, 0xab, 0xef}: "McBankErrorInjection", efi.GUID{0x2c, 0xa8, 0x72, 0x6e, 0xa5, 0x14, 0x02, 0x4f, 0xa3, 0x77, 0x4a, 0x42, 0x3b, 0xb1, 0x81, 0x7f}: "WindowsNameLabel", efi.GUID{0x2c, 0xbe, 0x2d, 0x92, 0x8c, 0x52, 0x84, 0x44, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xda, 0xd2, 0x19}: "XnoteSystemPolicySmm", efi.GUID{0x2c, 0xc8, 0xf5, 0x3c, 0x98, 0x32, 0x3e, 0x4c, 0xaa, 0x1d, 0xaa, 0x31, 0x9c, 0xa2, 0xa8, 0x6d}: "PrmSampleSsdtDxe", efi.GUID{0x2c, 0xd0, 0x8d, 0x30, 0x2b, 0x09, 0x23, 0x41, 0xa2, 0xaf, 0x3e, 0xf4, 0x44, 0x0a, 0x6b, 0x4a}: "AmiResetTypeVariable", efi.GUID{0x2c, 0xd1, 0xd3, 0x88, 0x7b, 0x5b, 0x7e, 0x49, 0xa2, 0x7b, 0x1c, 0xb6, 0x5d, 0x42, 0xbf, 0x0f}: "BrightnessHardwareGopDxe", efi.GUID{0x2c, 0xd8, 0xc7, 0x0a, 0xad, 0x9b, 0x9f, 0x41, 0xb8, 0xff, 0xb3, 0x9b, 0xa1, 0x87, 0x37, 0xfd}: "Rtk8852CEWifiSupDriver", efi.GUID{0x2c, 0xe4, 0x22, 0x96, 0x38, 0x8e, 0x08, 0x4a, 0x9e, 0x8f, 0x54, 0xf7, 0x84, 0x65, 0x2f, 0x6b}: "AcpiTableDxe", efi.GUID{0x2c, 0xe4, 0x22, 0xa6, 0x38, 0x8e, 0x08, 0x4a, 0x9e, 0x8f, 0x54, 0xf7, 0x84, 0x65, 0x2f, 0x6b}: "SystemAcpiOA30Dxe", efi.GUID{0x2c, 0xe6, 0x27, 0x47, 0x17, 0xdf, 0x00, 0x40, 0x89, 0xe3, 0x7a, 0xee, 0x74, 0xaf, 0xec, 0x63}: "FjGabiEntrySmiDispatcherDxe", efi.GUID{0x2c, 0xed, 0x5c, 0x60, 0x3b, 0x58, 0x71, 0x41, 0x93, 0x11, 0xaa, 0x6e, 0x14, 0x6b, 0x1a, 0x4b}: "I2cMasterDxe", efi.GUID{0x2c, 0xef, 0x25, 0x8d, 0x15, 0x20, 0x6e, 0x41, 0xb8, 0xaa, 0x23, 0x69, 0xfe, 0xcd, 0x4b, 0xda}: "CTA9x4ArmVExpressLibSec", efi.GUID{0x2c, 0xf0, 0x65, 0xae, 0xe9, 0xee, 0xac, 0x4a, 0x8c, 0x73, 0x47, 0xaa, 0x4d, 0x7c, 0xf2, 0xbe}: "LenovoFmpDxe", efi.GUID{0x2c, 0xf6, 0xf2, 0x8c, 0x9b, 0xbc, 0x21, 0x48, 0x80, 0x8d, 0xec, 0x9e, 0xc4, 0x21, 0xa1, 0xa0}: "EfiPartitionInfoProtocolGuid", efi.GUID{0x2c, 0xfc, 0x5c, 0x2e, 0xc0, 0x9c, 0x78, 0x4d, 0xbe, 0xaf, 0xd8, 0x4c, 0xbf, 0x20, 0xd1, 0xc8}: "efi_pop_LF", efi.GUID{0x2c, 0xfd, 0xf6, 0x28, 0xf2, 0xef, 0xf0, 0x42, 0x9e, 0x9f, 0xca, 0xc8, 0x75, 0x09, 0xdc, 0x46}: "OemSmi", efi.GUID{0x2d, 0x01, 0xea, 0x87, 0xad, 0xcb, 0xc1, 0x44, 0x84, 0x31, 0x61, 0x19, 0x3a, 0x06, 0x09, 0x41}: "PeriodicSmiControl", efi.GUID{0x2d, 0x05, 0xf6, 0x8c, 0x53, 0x81, 0x5f, 0x43, 0xab, 0xa4, 0x11, 0x4b, 0x6a, 0x3f, 0xb5, 0x3d}: "DellAhciSmm", efi.GUID{0x2d, 0x09, 0xe5, 0xd6, 0xb2, 0xc7, 0x72, 0x48, 0xaf, 0x66, 0xfd, 0xc0, 0xe6, 0xf9, 0x5e, 0x78}: "EfiSystemNvDataHob", efi.GUID{0x2d, 0x0a, 0x52, 0xb7, 0x9a, 0x50, 0x3b, 0x42, 0xb7, 0xcd, 0xe3, 0x20, 0xe8, 0x05, 0xc7, 0xe0}: "Usb4PlatformDxe", efi.GUID{0x2d, 0x0b, 0xdb, 0x8f, 0x6f, 0x99, 0x1c, 0x4c, 0x89, 0xe0, 0xc3, 0x2e, 0x6d, 0xce, 0x6c, 0xa6}: "AmdPspDxeV2Brh", efi.GUID{0x2d, 0x0e, 0x68, 0x4b, 0x63, 0x0d, 0x62, 0x4f, 0xb9, 0x30, 0x7a, 0xe9, 0x95, 0xb9, 0xb3, 0xa3}: "SmBusDxe", efi.GUID{0x2d, 0x13, 0x66, 0x95, 0x78, 0xc6, 0x4b, 0x48, 0x9b, 0x56, 0xd4, 0xcf, 0x3f, 0x4f, 0x69, 0x0f}: "MetroMsgDxe", efi.GUID{0x2d, 0x1f, 0x4b, 0x6c, 0x1d, 0x22, 0x86, 0x4d, 0xae, 0xe8, 0xfd, 0x4c, 0xfa, 0xba, 0x87, 0x9b}: "HQEepromDxe", efi.GUID{0x2d, 0x2c, 0xce, 0x09, 0x83, 0x4d, 0xb8, 0x44, 0x97, 0xd0, 0x10, 0x85, 0xeb, 0x54, 0x90, 0xb8}: "AsrockRaidLoader", efi.GUID{0x2d, 0x2c, 0xd9, 0x19, 0x89, 0xf0, 0x7c, 0x4b, 0xab, 0xe6, 0x33, 0x3a, 0x12, 0x05, 0xed, 0x89}: "AmiSmmMultiPlatformProtocol", efi.GUID{0x2d, 0x37, 0x49, 0x1b, 0xbd, 0xcb, 0xd3, 0x44, 0x84, 0x2c, 0x8e, 0x90, 0x03, 0x90, 0xda, 0x8c}: "H19BatteryControl", efi.GUID{0x2d, 0x37, 0x9a, 0x7a, 0x87, 0x34, 0x2e, 0x40, 0xb4, 0x89, 0x5f, 0xc5, 0x51, 0xa4, 0x3b, 0xd1}: "X11DPHDxeDriver", efi.GUID{0x2d, 0x4c, 0xb9, 0x46, 0x5d, 0xaf, 0x15, 0x49, 0x81, 0x4d, 0x15, 0x93, 0x23, 0xae, 0x78, 0x0a}: "PowerButtonHandler", efi.GUID{0x2d, 0x57, 0x85, 0xbc, 0x97, 0xf2, 0x9c, 0x4d, 0x93, 0xfe, 0xdd, 0x92, 0x26, 0xc1, 0x45, 0x91}: "DellSetupSerrDxe", efi.GUID{0x2d, 0x5d, 0x75, 0x27, 0xdf, 0x83, 0x16, 0x49, 0xbd, 0xfe, 0x4f, 0xf3, 0xcd, 0x65, 0x79, 0x65}: "POSTCODE0A_RGBKBCTRL_DXE", efi.GUID{0x2d, 0x60, 0xe9, 0xc6, 0x0d, 0xc0, 0x50, 0x42, 0xb2, 0x4d, 0xfe, 0x32, 0x4b, 0x8d, 0xa4, 0x0b}: "AcerPortingDxe", efi.GUID{0x2d, 0x62, 0x4d, 0x0a, 0xf4, 0x01, 0x74, 0x49, 0xb3, 0xf5, 0x2b, 0xfe, 0x98, 0x88, 0xef, 0x92}: "SLP20OEMPublicKeyVariableGuid", efi.GUID{0x2d, 0x65, 0x27, 0xfd, 0x58, 0xf7, 0xfc, 0x4e, 0xb1, 0xa9, 0x28, 0x3e, 0xfe, 0x51, 0xf4, 0xe9}: "MeFwCapsulePei", efi.GUID{0x2d, 0x6f, 0x05, 0x2c, 0x3b, 0x99, 0x54, 0x4a, 0x8a, 0xdd, 0x84, 0xac, 0xe5, 0xd9, 0xcc, 0xe7}: "HpAcpiCore", efi.GUID{0x2d, 0x6f, 0xb3, 0xd3, 0x51, 0xd5, 0xd4, 0x11, 0x9a, 0x46, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d}: "EfiStandardErrorDeviceGuid", efi.GUID{0x2d, 0x76, 0x6a, 0x12, 0x58, 0x57, 0xca, 0x4f, 0x85, 0x31, 0x20, 0x1a, 0x7f, 0x57, 0xf8, 0x50}: "LenovoSetupStartupDxe", efi.GUID{0x2d, 0x77, 0xa9, 0x46, 0x58, 0xd2, 0x10, 0x42, 0x90, 0x17, 0x87, 0x99, 0xc5, 0x74, 0x66, 0xba}: "SwitchDellSystemID", efi.GUID{0x2d, 0x7d, 0xf6, 0xd3, 0xca, 0x67, 0xb6, 0x4f, 0x96, 0x54, 0x77, 0xe8, 0x29, 0x01, 0x46, 0x9c}: "VirtualDev", efi.GUID{0x2d, 0x87, 0x06, 0x90, 0x86, 0x3a, 0xae, 0x4b, 0xa2, 0xf0, 0xe5, 0x27, 0xb9, 0xd7, 0x11, 0x9e}: "IntelLanUefiDriver", efi.GUID{0x2d, 0x8d, 0x1b, 0xb5, 0x8b, 0xd2, 0xd5, 0x4f, 0x98, 0x72, 0x88, 0x8b, 0x99, 0xf8, 0xa2, 0x92}: "LEMEventLogProtocolSmm", efi.GUID{0x2d, 0x92, 0x96, 0xf4, 0x2f, 0x17, 0xbc, 0x4b, 0xa1, 0xeb, 0x0e, 0xeb, 0x94, 0x9c, 0x34, 0x86}: "EfiAlternateFvBlock", efi.GUID{0x2d, 0x99, 0xf3, 0x76, 0x9e, 0x52, 0xfe, 0x4e, 0x8b, 0xbe, 0x8e, 0x1e, 0xd4, 0x32, 0xc2, 0x23}: "AmiMeasurePciopromGuid", efi.GUID{0x2d, 0x9c, 0x27, 0x58, 0x19, 0xfb, 0x6e, 0x46, 0xb4, 0x2e, 0xcd, 0x43, 0x70, 0x16, 0xdc, 0x25}: "AmiTseDriverHealthCtrl", efi.GUID{0x2d, 0xa2, 0x06, 0x3f, 0x02, 0xcd, 0xea, 0x4e, 0xb2, 0x94, 0xd6, 0x87, 0x1d, 0xf1, 0x25, 0x5d}: "LenovoVariableSmmProtocol", efi.GUID{0x2d, 0xb5, 0x8c, 0xe3, 0x4d, 0xa7, 0xdb, 0x45, 0xa8, 0xd0, 0x29, 0x0c, 0x9b, 0x21, 0xbb, 0xf2}: "UserProfileManager", efi.GUID{0x2d, 0xb6, 0xdf, 0x0a, 0x74, 0xff, 0x4c, 0x48, 0x89, 0x44, 0xf8, 0x5c, 0x4b, 0xea, 0x87, 0xa8}: "AmiEfiKeycodeProtocolGuid", efi.GUID{0x2d, 0xb7, 0x79, 0x45, 0xc4, 0x7e, 0xd4, 0x4d, 0x84, 0x86, 0x08, 0x3c, 0x86, 0xb1, 0x82, 0xa7}: "IScsi4Dxe", efi.GUID{0x2d, 0xbc, 0x6e, 0x6e, 0xab, 0x77, 0xcf, 0x46, 0xb2, 0xa7, 0xcc, 0x96, 0x8b, 0x0e, 0x8a, 0xf3}: "mAmiTcgInterfaceVarGuid", efi.GUID{0x2d, 0xbc, 0xb2, 0x63, 0x5d, 0xdf, 0x9b, 0x41, 0x87, 0x3c, 0x2c, 0x78, 0xa6, 0x60, 0x4a, 0x7a}: "SgDxePolicyInit", efi.GUID{0x2d, 0xc4, 0xf0, 0x66, 0x0e, 0x0d, 0x23, 0x4c, 0x93, 0xc0, 0x2d, 0x52, 0x95, 0xdc, 0x5e, 0x21}: "BiosGuardHob", efi.GUID{0x2d, 0xc5, 0x62, 0xe0, 0xdc, 0x78, 0xc5, 0x4c, 0xb2, 0x46, 0xb1, 0x34, 0x97, 0xa8, 0x12, 0x3c}: "PeiDxePostCodeLibReportStatusCode", efi.GUID{0x2d, 0xd6, 0x27, 0x95, 0xc0, 0xa1, 0xc5, 0x44, 0xa9, 0x0f, 0xa1, 0x16, 0x87, 0x70, 0x11, 0x27}: "PlatformInitPostMem", efi.GUID{0x2d, 0xd6, 0xad, 0x59, 0xc0, 0xa1, 0xc5, 0x44, 0xa9, 0x0f, 0xa1, 0x16, 0x87, 0x70, 0x46, 0x8c}: "PlatformInit", efi.GUID{0x2d, 0xdd, 0x6d, 0xd3, 0x66, 0x1c, 0x10, 0x42, 0xb7, 0x7a, 0x2f, 0xd9, 0xf9, 0x20, 0xe5, 0x1f}: "AsusEupSmi", efi.GUID{0x2d, 0xdf, 0xdc, 0xe8, 0x9b, 0x0f, 0x5b, 0x45, 0x90, 0xed, 0xa8, 0xca, 0x53, 0x12, 0xb9, 0x43}: "GpioV2ProtocolInitSmm", efi.GUID{0x2d, 0xdf, 0xee, 0x27, 0x9e, 0x46, 0x8c, 0x47, 0x80, 0x5e, 0x99, 0x3c, 0xcf, 0xb5, 0xc0, 0xc1}: "CrbPxeLoader", efi.GUID{0x2d, 0xe0, 0xc2, 0x4d, 0xfb, 0xd5, 0x30, 0x43, 0xbd, 0x53, 0x53, 0x79, 0x73, 0x47, 0xdf, 0x01}: "HwmFanDxe", efi.GUID{0x2d, 0xe9, 0xb0, 0xf7, 0x47, 0xab, 0x1d, 0x4a, 0x8b, 0xde, 0x41, 0xe5, 0x29, 0xeb, 0x5a, 0x70}: "H19UnlockPswd", efi.GUID{0x2d, 0xf6, 0x36, 0xb3, 0x35, 0x41, 0x55, 0x4a, 0xae, 0x4e, 0x49, 0x71, 0xbb, 0xf0, 0x88, 0x5d}: "RealTimeClock", efi.GUID{0x2d, 0xfa, 0x17, 0xed, 0x9a, 0x60, 0x8d, 0x4e, 0x99, 0xf6, 0x9c, 0x0c, 0xbb, 0xdd, 0x8c, 0x2f}: "TbtPei", efi.GUID{0x2d, 0xfb, 0x83, 0x11, 0xbd, 0xdf, 0xcd, 0x40, 0x94, 0x5b, 0x3f, 0xa6, 0x30, 0x87, 0x9b, 0xcd}: "FjEvteServicesDxe", efi.GUID{0x2d, 0xfd, 0x48, 0x58, 0xaf, 0xd6, 0x4b, 0x47, 0x82, 0x75, 0x95, 0xdd, 0xe7, 0x0a, 0xe8, 0x23}: "SmramCpuDataHeaderGuid", efi.GUID{0x2e, 0x02, 0x44, 0x06, 0xbb, 0x39, 0x1b, 0x47, 0x8a, 0x98, 0x1d, 0x81, 0x01, 0xb1, 0x12, 0xb6}: "DellECBeepMm", efi.GUID{0x2e, 0x03, 0xdf, 0x22, 0xb2, 0xb7, 0xec, 0x43, 0xb9, 0x03, 0xbc, 0xe4, 0x19, 0x0a, 0xed, 0x43}: "RstPeim32", efi.GUID{0x2e, 0x06, 0xa0, 0x1b, 0x79, 0xc7, 0x82, 0x45, 0x85, 0x66, 0x33, 0x6a, 0xe8, 0xf7, 0x8f, 0x09}: "SecCore_VolumeTopFile", efi.GUID{0x2e, 0x13, 0xca, 0x69, 0x2c, 0x06, 0x7f, 0x4d, 0xbe, 0x7f, 0x9b, 0x0b, 0x84, 0x46, 0xc8, 0x88}: "PhLegacyRegionSmm", efi.GUID{0x2e, 0x1c, 0x7d, 0xf5, 0x79, 0x38, 0xdf, 0x11, 0x91, 0x18, 0x93, 0x1b, 0x1e, 0x0f, 0x29, 0xb0}: "VmwLogRuntimeDxe", efi.GUID{0x2e, 0x20, 0xe1, 0x80, 0x97, 0x26, 0x64, 0x42, 0x9c, 0xc9, 0x80, 0x76, 0x2c, 0x3e, 0x58, 0x63}: "RecoveryFormSet", efi.GUID{0x2e, 0x25, 0x68, 0xb2, 0x1a, 0x54, 0x07, 0x49, 0x95, 0x42, 0x6a, 0xc8, 0x19, 0x6c, 0x5d, 0x2d}: "AmdNbioPcieZPPei", efi.GUID{0x2e, 0x32, 0x64, 0xc4, 0xc4, 0x3d, 0xad, 0x49, 0xb9, 0xfd, 0xaf, 0x1b, 0x56, 0xb2, 0x24, 0x9b}: "HwAssetDxe", efi.GUID{0x2e, 0x47, 0x76, 0x9e, 0x4a, 0xdb, 0xb7, 0x44, 0x99, 0x7c, 0x3a, 0x35, 0x60, 0xb0, 0x37, 0xb2}: "AcerLidSmm", efi.GUID{0x2e, 0x50, 0xd3, 0xb3, 0x82, 0xcb, 0x17, 0x40, 0xab, 0x34, 0x2f, 0x17, 0xd2, 0xd7, 0x03, 0x5f}: "PepBccdSmm", efi.GUID{0x2e, 0x53, 0xa2, 0x55, 0x7a, 0x29, 0xfd, 0x4a, 0x90, 0xbf, 0x13, 0x9b, 0xff, 0x5b, 0xb4, 0xd7}: "LenovoSystemAcpiTablesPei", efi.GUID{0x2e, 0x53, 0xfc, 0x1b, 0x8a, 0xf4, 0xbe, 0x4e, 0xb2, 0xfb, 0x2b, 0x28, 0x6d, 0x70, 0xa6, 0xeb}: "IconUsbHD", efi.GUID{0x2e, 0x57, 0x65, 0xac, 0xa7, 0xf3, 0x9c, 0x4d, 0x93, 0xfe, 0x22, 0xa2, 0x21, 0xc1, 0x45, 0x91}: "DellSetupDMASupportDxe", efi.GUID{0x2e, 0x58, 0x0f, 0x4f, 0x6b, 0x6d, 0xc0, 0x4b, 0x90, 0x88, 0x18, 0x19, 0xba, 0xaf, 0x82, 0xd8}: "SystemBiosSelfHealingTestPei", efi.GUID{0x2e, 0x5a, 0xcb, 0x77, 0xc8, 0x59, 0x0e, 0x49, 0xb6, 0x9d, 0xa3, 0x86, 0x2b, 0xe5, 0xb3, 0xa0}: "EobonPriorityMap", efi.GUID{0x2e, 0x67, 0x46, 0xb2, 0xa8, 0x71, 0x3e, 0x45, 0xa0, 0xf2, 0x95, 0xde, 0xcd, 0x7a, 0x1b, 0x86}: "H19ComputraceSmm", efi.GUID{0x2e, 0x6a, 0x84, 0x41, 0xaa, 0x7a, 0x98, 0x44, 0xbc, 0x26, 0xb5, 0xac, 0xd4, 0x9f, 0x92, 0xe1}: "DellSmbBootPriority", efi.GUID{0x2e, 0x72, 0x44, 0xfc, 0x13, 0x18, 0x9f, 0x41, 0x9f, 0xdd, 0xc3, 0xfb, 0x64, 0x4c, 0xec, 0x8c}: "DellErrorHandlerDxe", efi.GUID{0x2e, 0x72, 0x8e, 0x79, 0xb2, 0x15, 0x13, 0x4e, 0x8a, 0xe9, 0x6b, 0xa3, 0x0f, 0xf7, 0xf1, 0x67}: "IntelSmbiosDataHobGuid", efi.GUID{0x2e, 0x7f, 0xc1, 0x28, 0x7b, 0x4b, 0x08, 0x47, 0x88, 0x5f, 0x47, 0x84, 0x09, 0x2c, 0x62, 0x54}: "ExBootItemDispatcher", efi.GUID{0x2e, 0x83, 0xdf, 0x4c, 0x87, 0x14, 0xb5, 0x4e, 0xbc, 0xba, 0xfe, 0x6d, 0x38, 0x49, 0xc7, 0x4d}: "PdSolutionPei", efi.GUID{0x2e, 0x85, 0x7c, 0xd5, 0x9f, 0x80, 0xcf, 0x45, 0xa3, 0x77, 0xd7, 0x7b, 0xc0, 0xcb, 0x78, 0xee}: "HddSmart", efi.GUID{0x2e, 0x8a, 0x63, 0xa9, 0x62, 0x88, 0x9c, 0x43, 0xba, 0x51, 0x03, 0x21, 0x61, 0xf6, 0xfe, 0x31}: "BayhubSecureErase", efi.GUID{0x2e, 0xb3, 0x77, 0x7d, 0xb2, 0xba, 0xc7, 0x4c, 0x83, 0x78, 0x75, 0x50, 0x51, 0x3f, 0x3f, 0xca}: "UsbOcUpdateDxeLightningRidgeEXECB4", efi.GUID{0x2e, 0xc8, 0x6a, 0x73, 0x16, 0x42, 0xf1, 0x42, 0x8e, 0xde, 0x91, 0xec, 0x63, 0xd0, 0xec, 0x43}: "FjSysmanSetupHooks", efi.GUID{0x2e, 0xcf, 0xdf, 0x52, 0xe5, 0x5b, 0x76, 0x43, 0xbc, 0x22, 0x14, 0xf7, 0x88, 0xa4, 0xa4, 0x25}: "AmdNbioEarlyPhaseRVPei", efi.GUID{0x2e, 0xd1, 0x2c, 0x5c, 0xf2, 0xe2, 0x76, 0x42, 0xa0, 0xf2, 0x4a, 0x17, 0x83, 0x2f, 0x77, 0x4d}: "FchSmbusPei", efi.GUID{0x2e, 0xd1, 0x7e, 0xab, 0x78, 0x1d, 0x35, 0x46, 0xab, 0x87, 0x23, 0xf0, 0x0a, 0x91, 0x1e, 0xc7}: "RomLayoutDxe", efi.GUID{0x2e, 0xd2, 0x94, 0xe4, 0xe9, 0x8b, 0xe9, 0x11, 0x9f, 0xca, 0x50, 0x9a, 0x4c, 0x0c, 0xae, 0x74}: "FprGoodixMocPrometheusDriver", efi.GUID{0x2e, 0xe4, 0x68, 0x55, 0x33, 0xdd, 0x6c, 0x4f, 0x86, 0x7f, 0x7e, 0x73, 0x45, 0x11, 0x04, 0xfe}: "StaticSkuDataDxeLightningRidgeEXECB4", efi.GUID{0x2e, 0xed, 0x82, 0x92, 0xce, 0xf8, 0x47, 0xca, 0xaf, 0x50, 0x35, 0x42, 0x33, 0x2f, 0x7d, 0x53}: "AppleDnsResolver", efi.GUID{0x2e, 0xf1, 0x11, 0xbb, 0xf8, 0xfe, 0xde, 0x49, 0x8c, 0x28, 0x74, 0x8d, 0x64, 0x16, 0x09, 0x15}: "StaticSkuDataDxeGnrwsCRB", efi.GUID{0x2e, 0xf6, 0x49, 0xe4, 0x26, 0xa7, 0xd2, 0x48, 0x94, 0x2b, 0x78, 0x72, 0xbf, 0x90, 0x06, 0x7d}: "PciSerialDxe", efi.GUID{0x2e, 0xfb, 0xd7, 0xf2, 0xe7, 0xff, 0x21, 0x43, 0xa4, 0xf5, 0xdb, 0xb4, 0x37, 0x0b, 0x96, 0x3b}: "SubcomponentMeasureEvent", efi.GUID{0x2f, 0x03, 0xb4, 0x9d, 0xb3, 0xf8, 0x58, 0x47, 0xb8, 0x8e, 0x12, 0x47, 0x08, 0xbd, 0xb9, 0xc0}: "DellAutoBifurcateDxe", efi.GUID{0x2f, 0x0a, 0x34, 0xc7, 0x39, 0x05, 0xf1, 0x42, 0xb9, 0xeb, 0x0c, 0x35, 0x23, 0x7a, 0x49, 0x23}: "CbsBasePeiRMB", efi.GUID{0x2f, 0x0d, 0x5b, 0x65, 0xf1, 0xbc, 0x1e, 0x4b, 0x9a, 0x6a, 0xa2, 0xe8, 0x91, 0xbb, 0x50, 0xe4}: "BiosGuardFirmwareVersionPeim", efi.GUID{0x2f, 0x15, 0x4b, 0xb7, 0x71, 0x52, 0x8b, 0x49, 0xa4, 0xa2, 0x57, 0x22, 0xcb, 0xbe, 0xc6, 0x14}: "DellPolyFuseStringPolicySmm", efi.GUID{0x2f, 0x19, 0x9f, 0xda, 0xe4, 0xba, 0x20, 0x4f, 0x8c, 0x6c, 0x55, 0xc1, 0xac, 0xde, 0x80, 0xb0}: "menu_checked", efi.GUID{0x2f, 0x22, 0xd7, 0xf0, 0x43, 0xfd, 0x5d, 0x4a, 0xb8, 0xbf, 0xa2, 0x59, 0xc8, 0x7a, 0xe3, 0xb2}: "FlashDeviceLibDxe", efi.GUID{0x2f, 0x2d, 0x9d, 0xeb, 0x88, 0x2d, 0xd3, 0x11, 0x9a, 0x16, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d}: "EfiMpsTableGuid", efi.GUID{0x2f, 0x3e, 0x42, 0xb0, 0x2c, 0x3b, 0x36, 0x4a, 0xbf, 0x98, 0x3e, 0xb3, 0xb4, 0xb7, 0xcb, 0x0e}: "PrmSsdtInstallDxe", efi.GUID{0x2f, 0x4e, 0xd7, 0xf6, 0xac, 0xee, 0xb7, 0x41, 0x9e, 0x7a, 0x29, 0xb2, 0x58, 0x39, 0x3d, 0xb2}: "AmiAmdPciResourceReport", efi.GUID{0x2f, 0x5a, 0x73, 0xc7, 0xf5, 0x88, 0x82, 0x48, 0xae, 0x63, 0xfa, 0xac, 0x8c, 0x8b, 0x86, 0xb3}: "EfiVAminiPortProtocolGuid", efi.GUID{0x2f, 0x61, 0xeb, 0xe1, 0x6c, 0x1c, 0x5d, 0x48, 0x9d, 0x06, 0x65, 0x08, 0x44, 0x88, 0x15, 0x69}: "EfiSignedCapsulePkgTokenSpaceGuid", efi.GUID{0x2f, 0x74, 0x10, 0x1a, 0x80, 0xfa, 0x79, 0x4b, 0x9d, 0xa6, 0x35, 0x70, 0x58, 0xcc, 0x39, 0x7b}: "ArrowCursor", efi.GUID{0x2f, 0x77, 0x04, 0xb9, 0xa1, 0xf8, 0x47, 0x41, 0x82, 0xff, 0x56, 0xca, 0xf2, 0xd6, 0xe0, 0x42}: "PlatformSecureBiosPei", efi.GUID{0x2f, 0x7c, 0x2a, 0x72, 0xb3, 0x81, 0x7a, 0x40, 0x98, 0xc7, 0xcf, 0x91, 0x58, 0xcf, 0x90, 0x4b}: "SiInitPreMemFsp", efi.GUID{0x2f, 0x7c, 0x71, 0xae, 0x42, 0x1a, 0x2b, 0x4f, 0x88, 0x61, 0x78, 0xb7, 0x9c, 0xa0, 0x7e, 0x07}: "FV_MAIN_NESTED", efi.GUID{0x2f, 0x7e, 0x87, 0x21, 0x6e, 0xf8, 0x8a, 0x4e, 0x9c, 0x9b, 0xd7, 0xb1, 0x52, 0xdd, 0x40, 0xd8}: "EfiPeiPlatformTypeNeonCityEpecbPpi", efi.GUID{0x2f, 0x89, 0xae, 0x50, 0x1c, 0xe0, 0xbc, 0x46, 0x9e, 0x47, 0x06, 0x4e, 0x25, 0x03, 0x77, 0x6b}: "NICIdm", efi.GUID{0x2f, 0x8f, 0x48, 0xe7, 0xdd, 0xa9, 0x34, 0x40, 0xeb, 0x46, 0x53, 0x8f, 0x71, 0xdc, 0x7b, 0x9d}: "HpPcieRedriverPei", efi.GUID{0x2f, 0x9d, 0xff, 0xce, 0xe3, 0xf5, 0xef, 0x4d, 0xb0, 0x51, 0x38, 0x6f, 0xa0, 0x07, 0xae, 0x4d}: "AsusSmmCommBuffDxe", efi.GUID{0x2f, 0x9f, 0x2f, 0xe6, 0x95, 0x48, 0xb5, 0x4a, 0x12, 0x34, 0x39, 0x9d, 0x0d, 0x9c, 0x12, 0x34}: "ComputraceDxe", efi.GUID{0x2f, 0xa1, 0x48, 0x28, 0x86, 0x3f, 0xc7, 0x47, 0x81, 0xd8, 0xd3, 0xfd, 0x47, 0xb2, 0x05, 0xb2}: "CbsSetupDxeRPL", efi.GUID{0x2f, 0xa9, 0x95, 0x0c, 0x06, 0xa0, 0xd4, 0x11, 0xbc, 0xfa, 0x00, 0x80, 0xc7, 0x3c, 0x88, 0x81}: "EfiWinNtPhysicalDisksGuid", efi.GUID{0x2f, 0xaf, 0xf7, 0xb1, 0x07, 0x28, 0x8c, 0x47, 0xa8, 0x93, 0x2b, 0xf4, 0xdd, 0xd1, 0xf6, 0x2b}: "PeiVariableAuth", efi.GUID{0x2f, 0xb2, 0x56, 0xda, 0x79, 0x83, 0x2f, 0x4f, 0xb3, 0x28, 0x22, 0x1c, 0x01, 0x82, 0xc6, 0xf5}: "NearTdpLockOc", efi.GUID{0x2f, 0xb4, 0x04, 0x49, 0xc0, 0x9f, 0x2e, 0x4c, 0xbb, 0x3f, 0xa2, 0xab, 0x35, 0x12, 0x35, 0x30}: "DebugAgentLibNull", efi.GUID{0x2f, 0xbc, 0x5b, 0x5e, 0x01, 0xe0, 0xae, 0x4f, 0x94, 0xe5, 0xd4, 0x13, 0xe9, 0xca, 0x22, 0x38}: "FjSystemDataDriverSmm", efi.GUID{0x2f, 0xc2, 0x2e, 0x51, 0xf1, 0xcf, 0x01, 0x41, 0xbe, 0x42, 0x6f, 0xa7, 0x9b, 0xc5, 0x03, 0x74}: "HpLibArchiveWorker", efi.GUID{0x2f, 0xc3, 0x2c, 0x37, 0x3a, 0x5c, 0x56, 0x4c, 0x8e, 0x20, 0x9f, 0x06, 0xac, 0x89, 0xe8, 0xd6}: "AcerPortingSmm", efi.GUID{0x2f, 0xca, 0xaf, 0x01, 0x89, 0x50, 0x59, 0x45, 0xbe, 0xf3, 0x61, 0x63, 0xae, 0x15, 0xae, 0x90}: "FRUSelfRepair", efi.GUID{0x2f, 0xd3, 0xfb, 0x08, 0x7f, 0x86, 0x2b, 0x45, 0xb1, 0x34, 0x70, 0x51, 0x61, 0xf7, 0x33, 0x33}: "LenovoCryptServiceSmm", efi.GUID{0x2f, 0xd4, 0x7d, 0x3e, 0x7e, 0xa6, 0x4f, 0x4d, 0xbc, 0x02, 0x2b, 0x5a, 0x6e, 0xc8, 0xda, 0xe9}: "SetupVariablePei", efi.GUID{0x2f, 0xdc, 0xc5, 0x24, 0xe2, 0x53, 0xca, 0x40, 0x9e, 0xd6, 0xa5, 0xd9, 0xa4, 0x9f, 0x46, 0x3b}: "EfiHashAlgorithmSha1NoPadGuid", efi.GUID{0x2f, 0xdf, 0x9b, 0x36, 0x9f, 0xd8, 0x18, 0x4b, 0x94, 0xa4, 0x63, 0x14, 0x22, 0x0a, 0x1a, 0x61}: "RhProxySsdt", efi.GUID{0x2f, 0xe2, 0x81, 0x70, 0xc6, 0xca, 0x53, 0x40, 0x94, 0x68, 0x67, 0x57, 0x82, 0xcf, 0x88, 0xe5}: "EfiEventDxeDispatchGuid", efi.GUID{0x2f, 0xe2, 0xc1, 0x62, 0x7a, 0xbf, 0x2e, 0x46, 0xa0, 0x37, 0xbf, 0x97, 0xbb, 0xc3, 0xad, 0xf9}: "EzConfigDxe", efi.GUID{0x2f, 0xeb, 0xd0, 0x4b, 0x2d, 0x3a, 0x2e, 0x44, 0x82, 0x2d, 0x75, 0x35, 0x16, 0xf7, 0x54, 0x24}: "PchInitDxeTgl", efi.GUID{0x2f, 0xee, 0x2b, 0xab, 0xa6, 0xc1, 0x99, 0x43, 0x85, 0x3d, 0xc0, 0x7c, 0x77, 0x4f, 0xfd, 0x0d}: "EfiLpcWpce791PolicyProtocolGuid", efi.GUID{0x2f, 0xf7, 0x00, 0x27, 0xea, 0xe0, 0x67, 0x47, 0x9a, 0x1e, 0xd1, 0x72, 0xf0, 0x70, 0x47, 0x78}: "PeiSelStatusCode", efi.GUID{0x2f, 0xf7, 0x45, 0x21, 0xf1, 0xe6, 0x40, 0x44, 0xa8, 0x28, 0x59, 0xdc, 0x9a, 0xab, 0x5f, 0x89}: "EmmcDxe", efi.GUID{0x2f, 0xfd, 0x6a, 0x31, 0x25, 0x8f, 0x42, 0x46, 0xb0, 0xcc, 0x41, 0x1f, 0x67, 0xfc, 0x0c, 0x47}: "AaeonPowerModePei", efi.GUID{0x30, 0x0f, 0xd4, 0x29, 0xbf, 0xe8, 0x03, 0x48, 0x88, 0xa6, 0x42, 0x47, 0xa2, 0x9a, 0x53, 0x18}: "AmdVersionDxe", efi.GUID{0x30, 0x10, 0xd1, 0x16, 0xba, 0x71, 0x5e, 0x4e, 0xa9, 0xf9, 0xb4, 0x75, 0xa5, 0x49, 0x04, 0x8a}: "EfiRedirElogProtocol", efi.GUID{0x30, 0x12, 0x6b, 0x31, 0x00, 0x05, 0x92, 0x45, 0x8c, 0x09, 0xea, 0xba, 0x0f, 0xb6, 0xb0, 0x78}: "SmmPcieSataController", efi.GUID{0x30, 0x12, 0x6b, 0x31, 0x00, 0x05, 0x92, 0x45, 0x8c, 0x09, 0xea, 0xba, 0x0f, 0xb6, 0xb0, 0x7f}: "SmmHddSecurity", efi.GUID{0x30, 0x12, 0x71, 0xb3, 0x04, 0xca, 0x11, 0x4f, 0x9a, 0x84, 0x2d, 0x81, 0x11, 0xf8, 0xaa, 0x83}: "EcBlockSmm", efi.GUID{0x30, 0x17, 0xe4, 0x8e, 0x91, 0xcd, 0x40, 0xfe, 0xa8, 0x3a, 0xf6, 0x0f, 0x1e, 0xcb, 0x49, 0x2d}: "IcnsConvert", efi.GUID{0x30, 0x19, 0x8f, 0x21, 0xab, 0x10, 0xb3, 0x43, 0x9c, 0x66, 0xb9, 0x84, 0x83, 0xa1, 0xae, 0x9d}: "OpalBlockSidDxe", efi.GUID{0x30, 0x1e, 0x5b, 0xc3, 0xf0, 0x30, 0x14, 0x4f, 0xb6, 0x03, 0x28, 0x55, 0x6f, 0x14, 0xf8, 0x74}: "DellDtDevCountsDxe", efi.GUID{0x30, 0x20, 0xa7, 0x65, 0x2e, 0xb0, 0xf3, 0x4b, 0x84, 0x24, 0xba, 0x5f, 0x2f, 0xc5, 0x6d, 0xe7}: "LenovoSetupUnderOsSmm", efi.GUID{0x30, 0x21, 0xbc, 0xfd, 0x17, 0x2a, 0x30, 0x48, 0x84, 0x77, 0x54, 0x4f, 0x36, 0x69, 0x77, 0x2f}: "DxeCpuPowerManagement", efi.GUID{0x30, 0x28, 0xfe, 0xab, 0x5b, 0x85, 0x98, 0x4a, 0x94, 0xd6, 0xee, 0xb2, 0x3d, 0x1e, 0xbf, 0x45}: "AmdIdsDebugPrintDxe", efi.GUID{0x30, 0x2d, 0x6d, 0xf2, 0x7a, 0x81, 0xe0, 0x45, 0xb7, 0x03, 0xe6, 0xc8, 0x83, 0x7a, 0x88, 0x21}: "SmbiosType24", efi.GUID{0x30, 0x2d, 0x9d, 0xeb, 0x88, 0x2d, 0xd3, 0x11, 0x9a, 0x16, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d}: "EfiAcpi10TableGuid", efi.GUID{0x30, 0x33, 0x6c, 0xa4, 0x36, 0xbe, 0x77, 0x49, 0x9d, 0x24, 0xa7, 0xcf, 0x92, 0xee, 0xf0, 0xfe}: "PxeDhcp4Dxe", efi.GUID{0x30, 0x42, 0x19, 0x2c, 0xb6, 0x54, 0x95, 0x4c, 0xb8, 0x09, 0x87, 0x7e, 0x83, 0x30, 0x93, 0x58}: "ASUSGamingBoard", efi.GUID{0x30, 0x44, 0xca, 0x25, 0x5d, 0x49, 0xef, 0x42, 0x81, 0x57, 0x4d, 0x0a, 0xe2, 0x12, 0x48, 0x62}: "HidAbsolutePointer", efi.GUID{0x30, 0x45, 0x6b, 0x2a, 0x99, 0x90, 0x37, 0x49, 0x8f, 0xe7, 0xf1, 0x68, 0xef, 0xe0, 0x9c, 0x89}: "DellBoardConnectorMapPolicy", efi.GUID{0x30, 0x51, 0xba, 0x33, 0x55, 0x22, 0x02, 0x48, 0x90, 0x19, 0xc8, 0x75, 0xd5, 0xd6, 0x6e, 0x77}: "OpalBlockSidWmi", efi.GUID{0x30, 0x53, 0x26, 0x77, 0xb0, 0x9f, 0xa5, 0x4a, 0x8e, 0x37, 0x35, 0x06, 0x47, 0x28, 0xf5, 0xc3}: "IioCfgUpdateDxeSierra", efi.GUID{0x30, 0x68, 0x6e, 0xb2, 0x9f, 0x62, 0x3f, 0x44, 0xbe, 0x20, 0xd2, 0x6e, 0x50, 0x2c, 0x25, 0xbc}: "AmdFchHwmSmm", efi.GUID{0x30, 0x6d, 0xaf, 0xf5, 0xde, 0x2e, 0x26, 0x40, 0x8e, 0x71, 0x74, 0xef, 0x7f, 0x36, 0xd3, 0x63}: "DellDfuPersistentEventDxe", efi.GUID{0x30, 0x6e, 0x05, 0x0a, 0xc9, 0xb2, 0xf3, 0x44, 0xff, 0xff, 0xff, 0xff, 0x94, 0xa5, 0x24, 0xa6}: "XnotePowerButtonSmiHandler", efi.GUID{0x30, 0x7a, 0x25, 0x7c, 0xba, 0xf8, 0x4a, 0x40, 0x84, 0x76, 0x66, 0x6f, 0x9e, 0x19, 0xbc, 0x56}: "GabiSettingItemCallbackDxe", efi.GUID{0x30, 0x7c, 0x85, 0x38, 0xb8, 0xd9, 0xbe, 0x4c, 0x82, 0xc0, 0xf9, 0xd8, 0x02, 0x0c, 0xe5, 0xe3}: "PostCodePei", efi.GUID{0x30, 0x7f, 0x09, 0xd8, 0xab, 0xc9, 0x76, 0x4d, 0x8d, 0x87, 0x89, 0x0c, 0xa4, 0x13, 0x65, 0x7a}: "ElkhartLakeDxe", efi.GUID{0x30, 0x81, 0x9f, 0x5e, 0x37, 0x8f, 0x06, 0x40, 0xb2, 0x24, 0xde, 0xa4, 0x82, 0x38, 0x30, 0x84}: "DashManagementDxe", efi.GUID{0x30, 0x85, 0xdd, 0xc7, 0xd8, 0x96, 0xdd, 0x40, 0xbe, 0x88, 0xcb, 0xdf, 0x44, 0x6c, 0x64, 0x74}: "Stibp", efi.GUID{0x30, 0x8d, 0x0e, 0xe5, 0x12, 0x1f, 0x42, 0x46, 0xa7, 0x9a, 0x39, 0x87, 0x0d, 0xf7, 0x03, 0x61}: "SioSmbusAccessPei", efi.GUID{0x30, 0x8e, 0xf9, 0x4b, 0xe0, 0x17, 0xe9, 0x11, 0xb5, 0x6e, 0x08, 0x00, 0x20, 0x0c, 0x9a, 0x66}: "ThermalSensors", efi.GUID{0x30, 0x94, 0x56, 0x48, 0x5f, 0x48, 0xcc, 0x4a, 0xa1, 0x84, 0xb3, 0x5d, 0x11, 0xcb, 0x75, 0x60}: "AmdCpmUcsiDxe", efi.GUID{0x30, 0x97, 0x19, 0x12, 0x13, 0x7d, 0x92, 0x4c, 0x97, 0xd5, 0x15, 0x62, 0x51, 0x5a, 0x1e, 0x48}: "OemThermalPolicy", efi.GUID{0x30, 0x9a, 0x7b, 0x43, 0x9f, 0x29, 0xed, 0x11, 0xa2, 0x61, 0x02, 0x42, 0xac, 0x12, 0x00, 0x02}: "DebugLEDSmm", efi.GUID{0x30, 0x9c, 0x28, 0x54, 0x54, 0x4d, 0xa4, 0x4b, 0x8d, 0x06, 0x1c, 0x6b, 0x9b, 0x2d, 0xc2, 0x3d}: "CpPcHotkeyData", efi.GUID{0x30, 0xa1, 0x19, 0x5c, 0x47, 0xa4, 0xd8, 0x4d, 0xbf, 0xd4, 0x1c, 0xa7, 0xe2, 0x21, 0x0a, 0x5c}: "FastbootDxe", efi.GUID{0x30, 0xa4, 0xa7, 0xa9, 0x20, 0xa5, 0x79, 0x42, 0xab, 0x90, 0x95, 0x68, 0x3e, 0xff, 0xee, 0xc6}: "SioChip1Smm", efi.GUID{0x30, 0xa5, 0x40, 0xb5, 0x78, 0x69, 0xa7, 0x4d, 0x91, 0xcb, 0x72, 0x07, 0xd7, 0x64, 0xd2, 0x62}: "FastBootVariableGuid", efi.GUID{0x30, 0xac, 0x82, 0xfa, 0x3b, 0xea, 0xdc, 0x4f, 0x9d, 0x90, 0xc2, 0xfd, 0xff, 0xca, 0xfb, 0xe4}: "SnapScreenDxe", efi.GUID{0x30, 0xac, 0xc6, 0x49, 0x72, 0xf1, 0xa4, 0x4e, 0x85, 0x99, 0x39, 0x25, 0x85, 0x5b, 0x4d, 0x47}: "DellDiagLedSmm", efi.GUID{0x30, 0xb2, 0xb0, 0xa1, 0xdc, 0x67, 0x1e, 0x43, 0xa9, 0x4a, 0xa9, 0x6a, 0xf1, 0xeb, 0xe6, 0x37}: "Tpm2DeviceLibTcg2", efi.GUID{0x30, 0xb3, 0xd3, 0xf2, 0x85, 0x89, 0xdb, 0x11, 0x8a, 0xa3, 0x00, 0x40, 0xd0, 0x2b, 0x18, 0x35}: "EfiUnixCpuModel", efi.GUID{0x30, 0xb5, 0x79, 0xb5, 0x97, 0xc7, 0x39, 0x48, 0x88, 0x3e, 0xef, 0xca, 0xbd, 0x77, 0x56, 0xe9}: "VerbTable", efi.GUID{0x30, 0xb6, 0x38, 0xd2, 0x0f, 0x28, 0xe4, 0x11, 0x9a, 0x1e, 0x04, 0x7d, 0x7b, 0x99, 0xe0, 0x97}: "EventInterfaceCoreDxe", efi.GUID{0x30, 0xba, 0x8a, 0x91, 0x8d, 0x3d, 0xb5, 0x4b, 0xb8, 0x49, 0x45, 0xcc, 0x4f, 0xc7, 0xde, 0x7c}: "Dptf", efi.GUID{0x30, 0xbb, 0x88, 0xf0, 0x92, 0xda, 0xff, 0x4b, 0xab, 0xbc, 0x73, 0xe4, 0x21, 0x77, 0xa4, 0x3d}: "DellSataPortNumMapPolicy", efi.GUID{0x30, 0xbc, 0x65, 0xb0, 0xa8, 0xe7, 0x02, 0x45, 0xb6, 0x53, 0x5d, 0x7a, 0x95, 0x4d, 0x23, 0x14}: "DellLegacyBootInfoDxe", efi.GUID{0x30, 0xbd, 0x5a, 0x3d, 0x75, 0x41, 0xce, 0x87, 0x6d, 0x64, 0xd2, 0xad, 0xe5, 0x23, 0xc4, 0xbb}: "EfiVirtualCdGuid", efi.GUID{0x30, 0xc0, 0xa1, 0xa6, 0x56, 0xf9, 0x9e, 0x4a, 0x95, 0x40, 0xd0, 0xe8, 0x1d, 0x2e, 0x33, 0xf2}: "LenovoSmBiosHole", efi.GUID{0x30, 0xc8, 0xab, 0x91, 0xfc, 0x16, 0x9e, 0x4d, 0xa1, 0x89, 0x5f, 0xc8, 0xbb, 0x41, 0x14, 0x02}: "AmiSmmDigitalSignatureProtocolGuid", efi.GUID{0x30, 0xce, 0x39, 0x07, 0x1a, 0x2e, 0x9a, 0x44, 0xb5, 0x75, 0xfd, 0x64, 0xf1, 0xb4, 0x32, 0x1d}: "SystemSetupCapsuleFromInternetDxe", efi.GUID{0x30, 0xd5, 0xdb, 0x80, 0x4c, 0xb7, 0x11, 0x4f, 0x8c, 0x03, 0x41, 0x86, 0x65, 0x53, 0x28, 0x31}: "EfiMemoryConfigDataGuid", efi.GUID{0x30, 0xdc, 0xf0, 0xf2, 0x85, 0x89, 0xdb, 0x11, 0xa1, 0x5b, 0x00, 0x40, 0xd0, 0x2b, 0x18, 0x35}: "UnixFwhPpi", efi.GUID{0x30, 0xdd, 0xca, 0x12, 0x07, 0x60, 0x83, 0x4c, 0x89, 0xd7, 0xff, 0x23, 0x7f, 0x7b, 0x94, 0x7a}: "SetupCompleteRedrawGuid", efi.GUID{0x30, 0xdd, 0xce, 0x0e, 0xec, 0x67, 0x70, 0x45, 0x9e, 0xfb, 0x30, 0x8d, 0xe5, 0x3e, 0xe9, 0x3d}: "AmiTseOemPortingVar23", efi.GUID{0x30, 0xe4, 0xe0, 0x2c, 0x3d, 0xa8, 0x45, 0x40, 0x90, 0x40, 0xd6, 0xbf, 0x6e, 0xc8, 0x63, 0x00}: "CustomLogoDxe", efi.GUID{0x30, 0xe7, 0x0e, 0xb0, 0xcd, 0x80, 0x78, 0x41, 0x92, 0x7d, 0x37, 0x8a, 0x75, 0xf9, 0xa3, 0xd1}: "RTLWifiDriver", efi.GUID{0x30, 0xe8, 0x4d, 0x37, 0xc5, 0x81, 0xc8, 0x4c, 0xb2, 0xab, 0x28, 0xf0, 0xab, 0x73, 0x71, 0x0b}: "SmmCpuFeaturesLibStm", efi.GUID{0x30, 0xf1, 0x64, 0x70, 0x6e, 0x84, 0xe2, 0x4c, 0x83, 0xc1, 0x4b, 0xbc, 0xbc, 0xbf, 0x1a, 0xe5}: "AppleBootPolicy", efi.GUID{0x31, 0x03, 0x97, 0x49, 0xfa, 0xe3, 0x37, 0x46, 0x9a, 0xbc, 0x3b, 0x78, 0x68, 0x67, 0x69, 0x70}: "AcpiPlatform", efi.GUID{0x31, 0x05, 0x6e, 0xed, 0x15, 0xf7, 0x3d, 0x4a, 0x9b, 0x12, 0xc1, 0xca, 0x5e, 0xf6, 0x98, 0xa2}: "IntelFsp2PkgTokenSpaceGuid", efi.GUID{0x31, 0x10, 0x5b, 0x29, 0xb5, 0xf0, 0xf4, 0x44, 0xa7, 0x5e, 0x1c, 0xd2, 0x14, 0x5c, 0x4d, 0x18}: "BreakpointCallbackDxe", efi.GUID{0x31, 0x14, 0x73, 0xa9, 0x68, 0xd9, 0x77, 0x42, 0xb7, 0x52, 0xa3, 0xa9, 0xa6, 0xae, 0x18, 0x98}: "PeiIpmiPpiGuid", efi.GUID{0x31, 0x16, 0xfd, 0x39, 0xcb, 0x64, 0x0c, 0x41, 0x87, 0x4d, 0x24, 0x0f, 0x88, 0xae, 0xd5, 0xf1}: "IGD", efi.GUID{0x31, 0x1a, 0x6b, 0xa4, 0x66, 0xad, 0x05, 0x49, 0x92, 0xf6, 0x2b, 0x46, 0x59, 0xdc, 0x30, 0x63}: "EfiExtendedSalPciServicesProtocolGuid", efi.GUID{0x31, 0x1d, 0x03, 0x69, 0x0a, 0xfc, 0xee, 0x4c, 0x98, 0x03, 0xf5, 0x30, 0x15, 0xc4, 0x20, 0x8d}: "RealtekGopLoader", efi.GUID{0x31, 0x22, 0x74, 0xeb, 0x20, 0xaa, 0x04, 0x4a, 0xa8, 0x79, 0x89, 0xd8, 0x08, 0x54, 0xb2, 0x66}: "SmbiosType11", efi.GUID{0x31, 0x22, 0x92, 0x4d, 0x16, 0x4f, 0x8f, 0x46, 0xa7, 0x71, 0xa1, 0xe5, 0xc2, 0x97, 0x13, 0xc9}: "OemDisplayRule", efi.GUID{0x31, 0x25, 0x38, 0xaf, 0xe6, 0x52, 0xc4, 0x4c, 0xb2, 0x47, 0xdb, 0x8e, 0x32, 0x0c, 0xbb, 0xa3}: "SmbiosDMIEditBoard", efi.GUID{0x31, 0x26, 0x1b, 0xfa, 0xc4, 0x91, 0xf0, 0x43, 0xba, 0x91, 0xaf, 0xbf, 0xc7, 0x45, 0x20, 0x87}: "DellEnhancedVersionDxe", efi.GUID{0x31, 0x2b, 0x44, 0x5b, 0x54, 0x1f, 0x16, 0x46, 0xa6, 0xcc, 0x3c, 0xec, 0x4d, 0xb3, 0xa3, 0x4b}: "SraSmmStub", efi.GUID{0x31, 0x2d, 0x9d, 0xeb, 0x88, 0x2d, 0xd3, 0x11, 0x9a, 0x16, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d}: "EfiSmbiosTableGuid", efi.GUID{0x31, 0x2f, 0x85, 0x73, 0x34, 0x98, 0xc7, 0x4e, 0x97, 0xee, 0x41, 0xe5, 0x84, 0xdc, 0x3c, 0x49}: "LEMComputraceApiSmm", efi.GUID{0x31, 0x3b, 0xb0, 0x43, 0x7f, 0x05, 0x1f, 0x4f, 0x9b, 0x53, 0xc3, 0xa5, 0x4f, 0x56, 0x55, 0x86}: "SystemEventPei", efi.GUID{0x31, 0x40, 0x74, 0x68, 0x08, 0x86, 0x25, 0x4b, 0xbb, 0xa1, 0xdb, 0x4e, 0xa3, 0x19, 0xd6, 0xea}: "OememDxe", efi.GUID{0x31, 0x42, 0x56, 0x7a, 0x0d, 0x24, 0xdb, 0x4b, 0x8b, 0x87, 0x8f, 0x58, 0x9a, 0x98, 0x8e, 0x13}: "SystemVspBcpRuntimeDxe", efi.GUID{0x31, 0x45, 0x46, 0x08, 0x99, 0x4c, 0x4c, 0x4c, 0xa8, 0x87, 0x8d, 0x8b, 0xa4, 0xbb, 0xb0, 0x63}: "Ps2MouseDxe", efi.GUID{0x31, 0x4e, 0x5e, 0x7f, 0xb1, 0x81, 0xe5, 0x47, 0x9e, 0x21, 0x1e, 0x4b, 0x5b, 0xc2, 0xf6, 0x1d}: "EdkiiPeiFirmwareVolumeInfoStoredHashFvPpi", efi.GUID{0x31, 0x53, 0xee, 0xfd, 0xc6, 0xbe, 0x6d, 0x4c, 0xb8, 0x2e, 0xc5, 0xb1, 0x4e, 0x91, 0x69, 0x3e}: "PlatformSioEspiVwSmi", efi.GUID{0x31, 0x56, 0x3e, 0xde, 0x1b, 0x46, 0xf4, 0xb4, 0x06, 0x25, 0x61, 0xb5, 0x8b, 0x87, 0x87, 0xe1}: "HpCmosHandleLoadDefaults", efi.GUID{0x31, 0x57, 0x68, 0xee, 0xf3, 0xcf, 0xe7, 0x4e, 0x93, 0x88, 0x7e, 0x63, 0xfc, 0x5a, 0x59, 0xb0}: "PlatformEarlyInit", efi.GUID{0x31, 0x58, 0xb0, 0x48, 0x98, 0x32, 0xcc, 0x49, 0x86, 0xcd, 0x30, 0x20, 0xd9, 0x53, 0x81, 0xe7}: "ConfigDataUpdater", efi.GUID{0x31, 0x5e, 0xd3, 0xed, 0xb9, 0x07, 0xd2, 0x11, 0x83, 0xa3, 0x00, 0xa0, 0xc9, 0x1f, 0xad, 0xcf}: "BootObjectAuthorizationParmsetGuid", efi.GUID{0x31, 0x66, 0xed, 0x76, 0xfe, 0x44, 0xd2, 0x4e, 0x8b, 0x5d, 0x1b, 0x53, 0x55, 0xbb, 0x25, 0xe8}: "LogoDxe", efi.GUID{0x31, 0x6e, 0x2c, 0x76, 0x82, 0xca, 0xa8, 0x46, 0x85, 0xfd, 0x27, 0xba, 0x83, 0x51, 0x9d, 0x61}: "SiInitDxeGnrWs", efi.GUID{0x31, 0x71, 0x24, 0x8d, 0x5e, 0x38, 0x1f, 0x49, 0xba, 0x68, 0x8d, 0xe9, 0x55, 0x30, 0xb3, 0xa6}: "EfiSetupVariableDefault", efi.GUID{0x31, 0x76, 0x4e, 0xfd, 0x58, 0x35, 0x24, 0x4c, 0xad, 0xd3, 0xc4, 0x7e, 0xbe, 0xab, 0x92, 0x67}: "HpSmmVariableProtocol", efi.GUID{0x31, 0x79, 0xc3, 0xb9, 0x69, 0xf0, 0x8c, 0x41, 0x9e, 0x19, 0x31, 0xb0, 0xbc, 0x03, 0x18, 0x87}: "LenovoPostValidatorPei", efi.GUID{0x31, 0x88, 0xac, 0x37, 0x51, 0x80, 0x65, 0x44, 0x75, 0x4c, 0xe9, 0x92, 0xae, 0x14, 0x00, 0xa7}: "HpRtxXhciDxe", efi.GUID{0x31, 0x8a, 0xb5, 0x6a, 0xd5, 0x4b, 0xac, 0x4c, 0x89, 0x66, 0x9a, 0x7f, 0xf0, 0x1c, 0x00, 0x0b}: "PlatformVTdSamplePei", efi.GUID{0x31, 0x8a, 0xe7, 0xb6, 0x84, 0xaf, 0x5d, 0x4b, 0x92, 0xfc, 0x50, 0x77, 0xc4, 0x83, 0xf8, 0x91}: "PostCodeDxe", efi.GUID{0x31, 0x92, 0xdd, 0xdf, 0xd7, 0xf5, 0x8d, 0x4c, 0x8b, 0xe8, 0x6e, 0xad, 0x87, 0x32, 0x40, 0xf3}: "DellRuntimeSmbiosProtocol", efi.GUID{0x31, 0xa7, 0xf6, 0x3a, 0x9a, 0x3e, 0xa8, 0x46, 0x91, 0x0d, 0xdb, 0x4e, 0xcf, 0x37, 0x46, 0x4d}: "InitXnoteSetupHiddenMenuDxe", efi.GUID{0x31, 0xaa, 0x95, 0x3b, 0x93, 0x37, 0x4b, 0x43, 0x86, 0x67, 0xc8, 0x07, 0x08, 0x92, 0xe0, 0x5e}: "EfiIp4ConfigProtocolGuid", efi.GUID{0x31, 0xb1, 0xf0, 0xf9, 0x46, 0xf3, 0x16, 0x4f, 0x80, 0xdd, 0xf9, 0x41, 0x07, 0x2b, 0x3a, 0x7d}: "IffsPersistentData", efi.GUID{0x31, 0xb4, 0xec, 0x48, 0x72, 0xfb, 0xc0, 0x45, 0xa9, 0x22, 0xf4, 0x58, 0xfe, 0x04, 0x0b, 0xd5}: "EfiEdidOverrideProtocolGuid", efi.GUID{0x31, 0xbc, 0x8c, 0xb2, 0x64, 0xfd, 0x4e, 0x40, 0x83, 0xdf, 0xed, 0x16, 0x2a, 0xf7, 0x6b, 0x4b}: "CertificateBasedAuthenticationDxe", efi.GUID{0x31, 0xc0, 0x74, 0x68, 0x60, 0x82, 0x25, 0x4b, 0xbb, 0xa1, 0xdc, 0x4e, 0xa3, 0x19, 0xd6, 0xea}: "OemDxe", efi.GUID{0x31, 0xc0, 0xd2, 0x55, 0xdb, 0xc1, 0xd4, 0x4f, 0xac, 0x8c, 0xc7, 0xeb, 0xe5, 0x4e, 0x3e, 0x1d}: "DxeGraphicsOutput", efi.GUID{0x31, 0xcb, 0xa3, 0x53, 0x97, 0x7e, 0x12, 0x45, 0xb2, 0xeb, 0xbf, 0xa0, 0xab, 0x8f, 0xd7, 0x5a}: "DeviceDetect", efi.GUID{0x31, 0xdd, 0x2b, 0x8c, 0xc6, 0x8f, 0x74, 0x4c, 0xa5, 0xb1, 0xe9, 0x67, 0xe5, 0x1c, 0xa4, 0x82}: "AsusFnLockOption", efi.GUID{0x31, 0xde, 0x0f, 0x51, 0x2d, 0x69, 0x86, 0x4d, 0x8d, 0xb7, 0x7f, 0x46, 0x0c, 0x0a, 0x7b, 0x7e}: "PprVlsErrorLogListener", efi.GUID{0x31, 0xe2, 0x12, 0x8d, 0x67, 0xc6, 0xd1, 0x4f, 0x98, 0xf2, 0x24, 0x49, 0xa7, 0xe7, 0xb2, 0xe5}: "EfiSmmControlProtocolGuid", efi.GUID{0x31, 0xe2, 0x86, 0x23, 0xcf, 0xa9, 0x52, 0x4f, 0x94, 0x6a, 0x6f, 0x6b, 0x6c, 0x13, 0x3b, 0x46}: "DellSmBiosTableLoaderDxe", efi.GUID{0x31, 0xe6, 0xe1, 0x3c, 0x08, 0x70, 0x7c, 0x47, 0xad, 0xa7, 0x5d, 0xcf, 0xc7, 0xc1, 0x49, 0x4b}: "EdkiiPeiFirmwareVolumeInfoPrehashedFvPpi", efi.GUID{0x31, 0xea, 0xd5, 0xee, 0xe2, 0x38, 0x3d, 0x46, 0xb6, 0x23, 0x2c, 0x57, 0x70, 0x2b, 0x8a, 0x1c}: "SectionExtractionPei", efi.GUID{0x31, 0xf8, 0x59, 0xdf, 0x89, 0x66, 0xb5, 0x45, 0xa4, 0xd9, 0x3e, 0x66, 0x0d, 0x56, 0x57, 0x3e}: "LenovoBootOptionProtocol", efi.GUID{0x31, 0xfd, 0x13, 0xe8, 0xce, 0xd8, 0xdf, 0x4d, 0x8a, 0x9f, 0x24, 0xd5, 0xca, 0xc6, 0x4f, 0xcf}: "AdlinkGetBoardInfo", efi.GUID{0x31, 0xff, 0xd5, 0x18, 0x47, 0x7a, 0x4d, 0x42, 0xb5, 0x00, 0x7d, 0x79, 0x2d, 0x3e, 0x33, 0xac}: "DellDtDiagSmm", efi.GUID{0x32, 0x05, 0x49, 0xda, 0x5f, 0xda, 0xc9, 0x43, 0xa0, 0xce, 0x6a, 0x2e, 0x05, 0x91, 0x93, 0x50}: "AfuCapsuleOnDiskDxe", efi.GUID{0x32, 0x05, 0x82, 0x67, 0x13, 0x76, 0xd3, 0x4d, 0x9e, 0xd7, 0x3d, 0x9b, 0xe3, 0xa7, 0xda, 0x63}: "Aint13", efi.GUID{0x32, 0x08, 0x1d, 0x2b, 0x84, 0x21, 0x8f, 0x4c, 0xa9, 0x0d, 0x8e, 0x4a, 0xf9, 0xde, 0x5b, 0xcd}: "BootModePeim", efi.GUID{0x32, 0x0c, 0x64, 0x44, 0xd7, 0x33, 0xb0, 0x4f, 0xb1, 0xf9, 0x6c, 0x7b, 0x23, 0x2e, 0x99, 0x4d}: "SpsPei", efi.GUID{0x32, 0x0c, 0x64, 0x44, 0xd7, 0x33, 0xb0, 0x4f, 0xb1, 0xf9, 0x6c, 0x7b, 0x23, 0x2e, 0x99, 0x4e}: "SpsMeSec", efi.GUID{0x32, 0x10, 0x83, 0x09, 0xa3, 0x6f, 0x84, 0x44, 0xaf, 0x4f, 0x0a, 0x00, 0x0a, 0x8d, 0x3a, 0x82}: "PL180MciDxe", efi.GUID{0x32, 0x1d, 0xad, 0x5e, 0x8a, 0xc3, 0x08, 0x45, 0x8d, 0xcf, 0x0b, 0x99, 0x18, 0x95, 0x7a, 0x4c}: "AmdMemoryHobInfoPeim", efi.GUID{0x32, 0x20, 0x55, 0xf3, 0x85, 0x89, 0xdb, 0x11, 0x84, 0x29, 0x00, 0x40, 0xd0, 0x2b, 0x18, 0x35}: "RealTimeClock", efi.GUID{0x32, 0x2d, 0x9d, 0xeb, 0x88, 0x2d, 0xd3, 0x11, 0x9a, 0x16, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d}: "EfiSalSystemTableGuid", efi.GUID{0x32, 0x32, 0xb9, 0x43, 0xbe, 0xaf, 0xd4, 0x11, 0xbd, 0x0f, 0x00, 0x80, 0xc7, 0x3c, 0x88, 0x81}: "PartitionDxe", efi.GUID{0x32, 0x3f, 0xc3, 0x35, 0x61, 0x8c, 0x2d, 0x45, 0x8d, 0x14, 0x9b, 0x5f, 0x53, 0xa2, 0xdf, 0xc0}: "SmmSpiInitilized", efi.GUID{0x32, 0x43, 0x27, 0x6b, 0xab, 0x01, 0xc3, 0x4a, 0xb3, 0xae, 0x1d, 0xe3, 0xc6, 0x5a, 0xc3, 0xac}: "PmemResetNotifySmm", efi.GUID{0x32, 0x49, 0x18, 0xc5, 0xa5, 0xdb, 0xdb, 0x46, 0xa5, 0xba, 0xcc, 0x0b, 0xda, 0x9c, 0x14, 0x35}: "EfiHashProtocolGuid", efi.GUID{0x32, 0x4a, 0x7e, 0x6d, 0x73, 0x9a, 0xba, 0x46, 0x94, 0xa1, 0x5f, 0x2f, 0x25, 0xef, 0x3e, 0x29}: "EfiMemRasProtocol", efi.GUID{0x32, 0x4c, 0x9d, 0x02, 0xe8, 0x51, 0x66, 0x48, 0xbf, 0x51, 0xfd, 0x0e, 0xd9, 0xa2, 0xdc, 0x55}: "DellBiosDimmLocation", efi.GUID{0x32, 0x57, 0xf5, 0x57, 0x55, 0xcf, 0xc7, 0x43, 0xb6, 0x6b, 0x21, 0x6c, 0xe2, 0x28, 0x28, 0x88}: "MonoStatusCodePei", efi.GUID{0x32, 0x5a, 0x59, 0x66, 0x77, 0x18, 0xe1, 0x4a, 0x87, 0x48, 0x80, 0x96, 0x66, 0xed, 0xad, 0xc7}: "AppleVTdDxe", efi.GUID{0x32, 0x5a, 0x88, 0xbf, 0xcf, 0x2a, 0x5d, 0x49, 0xa7, 0xba, 0xd3, 0xf9, 0x2f, 0xa9, 0x62, 0x89}: "DellXhciDxe", efi.GUID{0x32, 0x61, 0x64, 0x3c, 0x96, 0xed, 0xf0, 0x4e, 0x93, 0xed, 0xb2, 0x09, 0xae, 0x6e, 0x72, 0x7f}: "ManufactureDxeToolBin", efi.GUID{0x32, 0x64, 0xa9, 0xef, 0x33, 0xde, 0xd2, 0x4d, 0xae, 0xe6, 0x32, 0x8c, 0x33, 0xdf, 0x77, 0x7a}: "EfiHashAlgorithmSha384Guid", efi.GUID{0x32, 0x65, 0x2b, 0x53, 0x99, 0x64, 0x8d, 0x42, 0xac, 0xb1, 0xf6, 0xf7, 0x79, 0xc9, 0x4d, 0xf9}: "AuthvarMailboxVariable", efi.GUID{0x32, 0x66, 0x87, 0x9e, 0xb4, 0xfb, 0xb7, 0x41, 0x98, 0x00, 0x30, 0xe0, 0xb4, 0xe8, 0x27, 0x3f}: "AmdSmmControl", efi.GUID{0x32, 0x6d, 0xb2, 0xe1, 0x4f, 0x41, 0xdb, 0x46, 0x9a, 0xee, 0x42, 0x00, 0x77, 0xf3, 0x5d, 0xbe}: "AsrockAmdcpuDxe", efi.GUID{0x32, 0x76, 0x3b, 0x14, 0x1b, 0xb8, 0xb7, 0x4c, 0xab, 0xd3, 0xb6, 0x25, 0xa5, 0xb9, 0xbf, 0xfe}: "EfiExtScsiPassThruProtocolGuid", efi.GUID{0x32, 0x76, 0xfe, 0x18, 0xc8, 0xf5, 0x63, 0x4e, 0x8d, 0xe8, 0x17, 0xa5, 0x5c, 0x59, 0x13, 0xbd}: "StandaloneSmmPkgTokenSpace", efi.GUID{0x32, 0x77, 0x36, 0x95, 0x61, 0x2d, 0x2e, 0x4a, 0xa5, 0xb0, 0xb8, 0xa1, 0x43, 0xdc, 0x93, 0x03}: "ClientronDxeDriver", efi.GUID{0x32, 0x89, 0x49, 0x9e, 0xbc, 0x4a, 0xaf, 0x45, 0xa3, 0x4d, 0x02, 0x47, 0x78, 0x7b, 0xe7, 0xc6}: "EfiDiskInfoAhciInterfaceGuid", efi.GUID{0x32, 0x8f, 0x4e, 0xac, 0xee, 0x1c, 0x93, 0x44, 0x9e, 0xf0, 0xaa, 0xd8, 0x77, 0x3f, 0x83, 0x23}: "RTS5229", efi.GUID{0x32, 0x91, 0xca, 0x67, 0x15, 0x44, 0x15, 0x48, 0xb2, 0xe0, 0xdb, 0xdf, 0x68, 0x78, 0x78, 0x71}: "OemMedinaEC", efi.GUID{0x32, 0x99, 0x74, 0x3b, 0xe6, 0x2d, 0x21, 0x40, 0xa6, 0x39, 0x57, 0x53, 0x53, 0x6a, 0x4f, 0xcf}: "AsusSensor", efi.GUID{0x32, 0xa1, 0xaf, 0x81, 0x94, 0x8d, 0x01, 0x41, 0xa5, 0x38, 0x83, 0x3c, 0x05, 0xd1, 0x45, 0xd9}: "BoardSelectDxe", efi.GUID{0x32, 0xa3, 0xe6, 0x9f, 0x1f, 0x1a, 0xe3, 0x43, 0xbd, 0x25, 0xf7, 0x89, 0x1c, 0x6f, 0xc7, 0x4a}: "EfiBmcSelfTestLogProtocol", efi.GUID{0x32, 0xa8, 0x00, 0x20, 0x74, 0xc6, 0x6a, 0x48, 0x81, 0xbe, 0xcb, 0x46, 0x70, 0xa4, 0xf7, 0xfd}: "DellRebootDxe", efi.GUID{0x32, 0xb1, 0x68, 0x3d, 0x52, 0x26, 0xfd, 0x47, 0xb2, 0xe9, 0xb4, 0x17, 0x12, 0x2b, 0x5a, 0x6d}: "DellCommonBoardInitSmm", efi.GUID{0x32, 0xb2, 0x88, 0x26, 0x02, 0x9c, 0x12, 0x4c, 0xbe, 0x1f, 0x85, 0x7c, 0x0f, 0xf2, 0xaa, 0xe3}: "TcgDxeplatform", efi.GUID{0x32, 0xb4, 0xaa, 0xd8, 0xcc, 0x93, 0xd2, 0x48, 0x9f, 0x34, 0x34, 0x96, 0xca, 0xf9, 0x21, 0x85}: "SmartFanCtrlDXE", efi.GUID{0x32, 0xb8, 0x06, 0x4d, 0x87, 0x69, 0xf2, 0x40, 0xb7, 0x6d, 0xd1, 0x70, 0xb4, 0x2d, 0xb1, 0x82}: "TrEEPhysicalPresenceDxe", efi.GUID{0x32, 0xba, 0x5a, 0xf6, 0xfd, 0x76, 0xc6, 0x49, 0xa1, 0xc4, 0xcd, 0x7f, 0xad, 0xf9, 0x66, 0x59}: "AmiReportFvLibCompatibility", efi.GUID{0x32, 0xc0, 0xb5, 0x96, 0x4c, 0xdf, 0x6e, 0x4b, 0x82, 0x32, 0x43, 0x8d, 0xcf, 0x44, 0x8d, 0x0e}: "NullMemoryTestDxe", efi.GUID{0x32, 0xc2, 0x8a, 0x69, 0xa6, 0x28, 0xec, 0x40, 0x94, 0xaa, 0x7d, 0x30, 0x2d, 0xbf, 0x56, 0x67}: "PdrCapsule", efi.GUID{0x32, 0xc3, 0x35, 0x05, 0x4d, 0x6d, 0x89, 0x4d, 0x94, 0x68, 0xf3, 0x62, 0x7b, 0xb3, 0x86, 0xce}: "H19MpmRuntimeDxe", efi.GUID{0x32, 0xc4, 0x0a, 0x22, 0x43, 0x1d, 0xe5, 0x49, 0xa7, 0x4f, 0x4c, 0x9d, 0xa6, 0x7a, 0xd2, 0x3b}: "HotPlugDevice", efi.GUID{0x32, 0xd4, 0x62, 0xb1, 0x39, 0xe3, 0x16, 0x43, 0x86, 0x2d, 0x00, 0x28, 0x0a, 0xb6, 0xa0, 0x7e}: "BiosEventLogConfigUtilDxe", efi.GUID{0x32, 0xd5, 0x74, 0xf1, 0x57, 0xd2, 0xe0, 0x4f, 0x92, 0xa3, 0xb6, 0x64, 0xe8, 0xbb, 0xc8, 0xed}: "HpCoreErrorCodeHandlerPei", efi.GUID{0x32, 0xe2, 0x9b, 0x7d, 0x3d, 0x0d, 0xc1, 0x47, 0xb4, 0x5c, 0x34, 0x4c, 0x5b, 0x51, 0x52, 0xad}: "FjClearsureSmm", efi.GUID{0x32, 0xf0, 0xa8, 0xae, 0x01, 0x46, 0x89, 0x01, 0x24, 0x11, 0x6c, 0x8e, 0x30, 0x27, 0xee, 0x8e}: "DellDataWipeDxe", efi.GUID{0x32, 0xf4, 0x98, 0xc4, 0xb7, 0xb8, 0xbf, 0x44, 0x86, 0xd3, 0x7b, 0x36, 0xf2, 0xec, 0x13, 0x90}: "IFWIVersionHobGuid", efi.GUID{0x32, 0xf9, 0xd1, 0xc4, 0x1f, 0x82, 0x44, 0x47, 0xbf, 0x06, 0x6d, 0x30, 0xf7, 0x73, 0x0f, 0x8d}: "Ps2KeyboardDxe", efi.GUID{0x33, 0x02, 0xd8, 0x85, 0x1b, 0xb3, 0xf2, 0x40, 0x81, 0x31, 0x03, 0x44, 0x05, 0xfc, 0x59, 0x36}: "SmbiosType133", efi.GUID{0x33, 0x03, 0x39, 0x17, 0xe6, 0x4c, 0xa8, 0x48, 0xaf, 0xb9, 0x0e, 0xf5, 0x5b, 0x66, 0x6b, 0x74}: "RunTimeAcpiDxe", efi.GUID{0x33, 0x03, 0xc4, 0x02, 0xd5, 0xce, 0xba, 0x45, 0x88, 0x36, 0xb4, 0x7e, 0x4c, 0x36, 0x48, 0x9e}: "PlatformFanControl", efi.GUID{0x33, 0x0d, 0x2b, 0xfe, 0x3d, 0x13, 0x53, 0x42, 0xa9, 0x7c, 0x08, 0xf1, 0x41, 0x04, 0x4d, 0x85}: "OemRealtekWlanUndi", efi.GUID{0x33, 0x0f, 0xd1, 0x5c, 0x3b, 0xb7, 0x5f, 0x46, 0xa8, 0x9b, 0x7a, 0x88, 0x11, 0x37, 0xd4, 0x16}: "H19ServiceBodyDxe", efi.GUID{0x33, 0x11, 0x7a, 0xbc, 0x66, 0x4c, 0xba, 0xc6, 0xb4, 0xd8, 0xeb, 0x9f, 0xef, 0xb9, 0xf1, 0x46}: "AmdSocSp3r3CpPei", efi.GUID{0x33, 0x12, 0x2d, 0x2e, 0x5e, 0x43, 0x6f, 0xf5, 0x7c, 0xc3, 0x34, 0x8c, 0xe6, 0x60, 0xd1, 0xcf}: "SystemErrorEventsDxe", efi.GUID{0x33, 0x12, 0xaa, 0x56, 0x07, 0x74, 0x58, 0x40, 0x9e, 0x17, 0x88, 0xde, 0x13, 0x8e, 0xa1, 0x5d}: "AmdCcxZen3CznDxe", efi.GUID{0x33, 0x28, 0x1b, 0x46, 0xa5, 0x3d, 0x56, 0x45, 0x95, 0xf2, 0xba, 0x50, 0x61, 0x31, 0x05, 0x1b}: "ExtCfgDevDrvDxe", efi.GUID{0x33, 0x2e, 0x97, 0x9f, 0x91, 0x9b, 0x94, 0x4a, 0x85, 0x40, 0x5a, 0x00, 0x64, 0x0c, 0x27, 0x71}: "POSTCODE0A_RGBKBCTRL_SMM", efi.GUID{0x33, 0x34, 0x8d, 0x9a, 0xe8, 0x9f, 0xb6, 0x42, 0x87, 0x0b, 0x1e, 0x31, 0xc8, 0x4e, 0xbe, 0x3b}: "BootScriptExecutorImageGuid", efi.GUID{0x33, 0x34, 0xd9, 0xfa, 0xb9, 0x76, 0x82, 0x44, 0x45, 0x67, 0x3b, 0xea, 0xce, 0xa9, 0xb3, 0x5d}: "A01WMISmmCallback", efi.GUID{0x33, 0x35, 0x03, 0x4a, 0x70, 0xd5, 0xf6, 0x43, 0xba, 0x84, 0x61, 0xcb, 0xa7, 0x01, 0x65, 0xf8}: "DellUefiClass3ConfigPei", efi.GUID{0x33, 0x3a, 0x87, 0xad, 0xe5, 0x61, 0xde, 0x45, 0xbb, 0x73, 0x84, 0xf8, 0x46, 0x1f, 0xb9, 0xef}: "DellHddSecurity", efi.GUID{0x33, 0x3c, 0x98, 0x3c, 0x22, 0x7d, 0x0e, 0x5e, 0xaa, 0x5b, 0xa7, 0xcd, 0x24, 0xa3, 0x1b, 0x54}: "Tcg2FTPMSmm", efi.GUID{0x33, 0x3d, 0xd2, 0x56, 0xd7, 0x07, 0xf9, 0x48, 0x81, 0xd6, 0x7e, 0xd5, 0x99, 0x1e, 0xce, 0x88}: "OpaPlatCfgNvVar", efi.GUID{0x33, 0x40, 0x74, 0x68, 0x08, 0x86, 0x25, 0x4b, 0xbb, 0xa1, 0xdb, 0x4e, 0xa3, 0x19, 0xd6, 0xea}: "ModernStandby", efi.GUID{0x33, 0x43, 0xac, 0x43, 0x2c, 0x47, 0x91, 0x4b, 0x8c, 0x5c, 0x52, 0xa8, 0xb4, 0x37, 0x42, 0x56}: "IioCfgUpdateDxeNeonCityFPGA", efi.GUID{0x33, 0x52, 0x6e, 0x0b, 0x5c, 0xa6, 0xc9, 0x44, 0x94, 0x07, 0xd9, 0xab, 0x83, 0xbf, 0xc8, 0xbd}: "EfiCertSha224Guid", efi.GUID{0x33, 0x52, 0xfc, 0x8c, 0xc6, 0x23, 0xe3, 0x49, 0x8a, 0x2d, 0x7e, 0x58, 0x1a, 0xb3, 0x05, 0xba}: "EdbCfg", efi.GUID{0x33, 0x53, 0x7a, 0x6d, 0xe0, 0x52, 0x10, 0x49, 0x9d, 0xe7, 0x91, 0xcd, 0xb0, 0x63, 0x95, 0xf6}: "XnoteFlashCommunicationSmm", efi.GUID{0x33, 0x56, 0x97, 0x54, 0x45, 0x09, 0x9c, 0x4d, 0x97, 0xc2, 0xe0, 0xcc, 0x64, 0x69, 0xa5, 0xa3}: "MeLibPei", efi.GUID{0x33, 0x62, 0x69, 0xbb, 0x1f, 0x9d, 0xc5, 0x4a, 0xb0, 0x57, 0x41, 0xdd, 0xad, 0x3b, 0x0c, 0xc1}: "OemAcpiMode", efi.GUID{0x33, 0x62, 0xb1, 0x43, 0x3c, 0x89, 0x93, 0x48, 0xbf, 0x34, 0xcd, 0xac, 0x54, 0x19, 0x26, 0xb0}: "UpdateSmbios", efi.GUID{0x33, 0x67, 0x17, 0xc1, 0x9f, 0x15, 0xd5, 0x42, 0xbc, 0xb9, 0x32, 0x06, 0x60, 0xb1, 0x73, 0x10}: "UbaConfigDatabasePpi", efi.GUID{0x33, 0x6d, 0x36, 0xce, 0x57, 0xb0, 0x03, 0x4c, 0x85, 0x61, 0xca, 0xf1, 0x77, 0x38, 0xb6, 0x6f}: "WdtAppDxe", efi.GUID{0x33, 0x8d, 0xa2, 0x9e, 0x75, 0x01, 0x88, 0x47, 0xbe, 0xa8, 0x69, 0x50, 0x51, 0x60, 0x30, 0xa5}: "SmBusPei", efi.GUID{0x33, 0x93, 0x93, 0xdf, 0xfc, 0x42, 0x2a, 0x4b, 0xa5, 0x9e, 0xbb, 0xae, 0x82, 0x81, 0xfe, 0xef}: "EdkiiBootManagerMenuFile", efi.GUID{0x33, 0x94, 0x25, 0x78, 0x6d, 0x7b, 0xb3, 0x4d, 0x9a, 0xe8, 0x36, 0xc4, 0xc2, 0xc3, 0xa1, 0x7d}: "MeInfoSetup", efi.GUID{0x33, 0x9d, 0xaf, 0x0f, 0xb7, 0xe3, 0xde, 0x49, 0x9b, 0x04, 0x3a, 0x8b, 0x1e, 0x73, 0x2a, 0xfd}: "Armani_BatteryInfoSmm", efi.GUID{0x33, 0x9f, 0x72, 0x0f, 0xc1, 0x25, 0xa7, 0x41, 0x86, 0xb2, 0x23, 0xa7, 0x37, 0xa9, 0x18, 0x23}: "IntelSnbGopVbt", efi.GUID{0x33, 0xa7, 0xe9, 0xb6, 0x75, 0xeb, 0xb6, 0x41, 0xb3, 0x0c, 0x00, 0x9b, 0xcf, 0x38, 0x01, 0xc8}: "BasePostCodeLibPort80", efi.GUID{0x33, 0xb1, 0x9d, 0x27, 0xc6, 0xb4, 0x34, 0x4a, 0x9b, 0xe3, 0xc9, 0x83, 0x26, 0xdc, 0x27, 0xdc}: "LEMHddSecurityEndProtocolHook", efi.GUID{0x33, 0xb5, 0x6f, 0x71, 0xbd, 0x26, 0xac, 0x4b, 0x98, 0x20, 0x22, 0x9b, 0xd5, 0xa7, 0xd3, 0x00}: "FprGoodixMocPrometheusDriver", efi.GUID{0x33, 0xba, 0x03, 0x5f, 0x6b, 0x8c, 0x24, 0x4c, 0xaa, 0x2e, 0x14, 0xa2, 0x65, 0x7b, 0xd4, 0x54}: "EfiUserCredentialClassSmartCardGuid", efi.GUID{0x33, 0xbe, 0xbd, 0xaa, 0xdc, 0xdb, 0xd3, 0x43, 0xaf, 0xe3, 0xab, 0x37, 0xf9, 0xb4, 0x67, 0x82}: "LEMCBMRDxe", efi.GUID{0x33, 0xbf, 0x05, 0xac, 0x5a, 0x99, 0xd4, 0x4e, 0xaa, 0xb8, 0xef, 0x7a, 0xe8, 0x0f, 0x5c, 0xb0}: "UefiCpuPkgTokenSpaceGuid", efi.GUID{0x33, 0xc1, 0x2c, 0xa9, 0x0e, 0x37, 0xf0, 0x47, 0x99, 0x80, 0x5d, 0x78, 0x89, 0x6b, 0xef, 0xe4}: "PlatformMilestoneHookDxePrior", efi.GUID{0x33, 0xc3, 0x8d, 0x3f, 0xd5, 0xcc, 0x58, 0x4e, 0xb8, 0xcf, 0x7b, 0x9a, 0x8f, 0x31, 0xea, 0x96}: "AmiTseOemPortingVar29", efi.GUID{0x33, 0xcb, 0x0b, 0x02, 0xa7, 0x7e, 0x48, 0x4e, 0x9a, 0xf8, 0x1b, 0x6a, 0xc5, 0x2c, 0xe8, 0x3f}: "MeBackDoorSMI", efi.GUID{0x33, 0xcc, 0x0d, 0x43, 0x69, 0x31, 0xb9, 0x44, 0xb4, 0x30, 0x23, 0xfc, 0xab, 0x91, 0x02, 0xe6}: "CheckEthernetState", efi.GUID{0x33, 0xd1, 0xed, 0x94, 0x9b, 0x41, 0x7f, 0x44, 0x94, 0x34, 0x9b, 0x3b, 0x70, 0x88, 0x39, 0x03}: "ModernStandbyResouceCheck", efi.GUID{0x33, 0xd2, 0x8f, 0x97, 0xa8, 0x09, 0xa0, 0x4f, 0x98, 0xe2, 0xd4, 0xb6, 0x2c, 0x20, 0x32, 0x51}: "WarmResetFlagOS", efi.GUID{0x33, 0xd5, 0x32, 0xed, 0xe6, 0x99, 0x09, 0x42, 0x9c, 0xc0, 0x2d, 0x72, 0xcd, 0xd9, 0x98, 0xa7}: "EfiSmmVariableProtocolGuid", efi.GUID{0x33, 0xde, 0xa6, 0x02, 0xa9, 0x3e, 0x17, 0x4c, 0x8e, 0xa2, 0x56, 0x81, 0xcc, 0x7a, 0xfd, 0xed}: "VMDDxeEfi", efi.GUID{0x33, 0xe6, 0x93, 0x1e, 0x5a, 0xd6, 0x9e, 0x45, 0xab, 0x84, 0x93, 0xd9, 0xec, 0x26, 0x6d, 0x18}: "EfiTapeIoProtocolGuid", efi.GUID{0x33, 0xe8, 0x69, 0x89, 0xc7, 0x7d, 0xac, 0x4d, 0xa2, 0xed, 0x08, 0x25, 0x14, 0x82, 0xee, 0x5b}: "I2cPssMonzaDxe", efi.GUID{0x33, 0xf3, 0xd5, 0xe2, 0x9e, 0xd8, 0x3b, 0x4f, 0xa2, 0x70, 0x7a, 0xb3, 0xc1, 0x72, 0x7a, 0x57}: "AmdMemShpSp6Pei", efi.GUID{0x33, 0xf5, 0x93, 0x24, 0x5c, 0xa2, 0x65, 0x4e, 0xb2, 0x6c, 0xcf, 0x4d, 0xd6, 0xb7, 0x90, 0x3b}: "SctMilestoneTaskSmm", efi.GUID{0x33, 0xf9, 0x40, 0x65, 0x5f, 0x42, 0x4b, 0x46, 0xb4, 0xad, 0xb9, 0x3a, 0x6e, 0xd0, 0xa8, 0xf5}: "OcInit", efi.GUID{0x34, 0x05, 0xa9, 0xae, 0x02, 0xa6, 0xe2, 0x46, 0xb3, 0xe5, 0x1f, 0x01, 0xda, 0x26, 0x64, 0xbb}: "OemVMDHiddenSlot", efi.GUID{0x34, 0x0d, 0xf1, 0x55, 0x05, 0x4f, 0x6a, 0x42, 0x9a, 0x72, 0x61, 0x3e, 0xa8, 0x54, 0x4d, 0xe0}: "AmdCpmPmfBoardPeim", efi.GUID{0x34, 0x12, 0x3a, 0x01, 0x4e, 0xdb, 0x23, 0x31, 0xce, 0xa6, 0x9a, 0x31, 0x98, 0x2c, 0xae, 0x96}: "DiskSanitizer", efi.GUID{0x34, 0x12, 0x87, 0x78, 0x87, 0x87, 0x78, 0x78, 0xa1, 0x9b, 0x0b, 0xe6, 0x1b, 0x23, 0x31, 0x87}: "DeviceWa", efi.GUID{0x34, 0x12, 0xda, 0x22, 0xb3, 0x1d, 0x56, 0x4d, 0x86, 0x46, 0xfd, 0x78, 0x5a, 0x59, 0x33, 0x7e}: "AmiDfciPlatform", efi.GUID{0x34, 0x17, 0x5d, 0x49, 0xd3, 0x05, 0x0f, 0x40, 0xaf, 0x35, 0xc8, 0xbc, 0xd3, 0xb8, 0x5c, 0xc3}: "DellSmmSysBootDevicesPolicyProtocol", efi.GUID{0x34, 0x23, 0x34, 0x7f, 0xc3, 0x54, 0xfb, 0x40, 0xa2, 0x89, 0xda, 0x00, 0x0a, 0x06, 0x37, 0xbd}: "BeepInterfaceCoreDxe", efi.GUID{0x34, 0x2a, 0x93, 0xe3, 0x29, 0x57, 0x24, 0x4f, 0x9f, 0xb1, 0xd7, 0x40, 0x9b, 0x45, 0x6a, 0x15}: "OemBadgingSupport", efi.GUID{0x34, 0x2c, 0xe3, 0x11, 0xb5, 0x60, 0x91, 0x49, 0x8d, 0xea, 0x63, 0xd3, 0xe8, 0xc8, 0x76, 0xde}: "UsbRndisDriverSrc", efi.GUID{0x34, 0x2d, 0xbd, 0xcd, 0x33, 0x0e, 0xa8, 0x46, 0xa6, 0xe8, 0x38, 0xae, 0x30, 0x89, 0x9f, 0xa1}: "EzTpmUpdIfxFwDrv", efi.GUID{0x34, 0x2f, 0xdd, 0xb1, 0x6d, 0xda, 0x8d, 0x4b, 0x9d, 0x1c, 0xdc, 0xb7, 0x6b, 0x6e, 0x40, 0x0f}: "NvStoreRestoreDefaultSmm", efi.GUID{0x34, 0x31, 0x4e, 0x29, 0xc5, 0x59, 0x21, 0x4c, 0xb5, 0x9e, 0x4a, 0x8f, 0x30, 0x51, 0x50, 0x91}: "AmdPspPeiV2Shp", efi.GUID{0x34, 0x32, 0x4d, 0xd3, 0xba, 0x38, 0x8b, 0x42, 0x9a, 0xcd, 0x84, 0xe8, 0x30, 0xa8, 0x07, 0x85}: "AmiModulePkgTokenSpaceGuid", efi.GUID{0x34, 0x3c, 0xe8, 0x56, 0x51, 0x14, 0x85, 0x42, 0x89, 0x0d, 0xe1, 0xf1, 0x7e, 0xbd, 0x9c, 0x44}: "MeFirmwareRevisionCheck", efi.GUID{0x34, 0x49, 0x5c, 0xe1, 0x6c, 0x05, 0x6c, 0x46, 0x9e, 0xce, 0xff, 0x86, 0xc0, 0x74, 0x2b, 0x57}: "OemWorkaroundPei", efi.GUID{0x34, 0x4a, 0x86, 0x62, 0x33, 0x47, 0xc8, 0x4d, 0x9c, 0xc3, 0xf8, 0x6e, 0xdd, 0x0b, 0x32, 0x76}: "ThunderboltSmm", efi.GUID{0x34, 0x4d, 0x59, 0x82, 0xdc, 0x85, 0xd4, 0x49, 0x99, 0x2e, 0x23, 0x8e, 0x62, 0x2f, 0x61, 0x52}: "OemSmmSample", efi.GUID{0x34, 0x57, 0x97, 0xb1, 0xc2, 0x77, 0x27, 0x48, 0x96, 0x17, 0x91, 0x48, 0x83, 0xf3, 0xb5, 0x78}: "ATFHobPeim", efi.GUID{0x34, 0x59, 0xef, 0x99, 0x22, 0x78, 0xc4, 0x49, 0x83, 0xa4, 0x50, 0xc1, 0xaf, 0xbc, 0xbe, 0x00}: "MeCapsule", efi.GUID{0x34, 0x5a, 0xae, 0xd9, 0x96, 0x20, 0xed, 0x4d, 0xbf, 0x11, 0x47, 0x38, 0xb0, 0xa3, 0x9f, 0xa8}: "DellAmdCbsApcbUpdateSmmShp", efi.GUID{0x34, 0x6a, 0x4a, 0x53, 0x78, 0xcf, 0x56, 0x4a, 0xbe, 0xdb, 0xcb, 0x49, 0xa8, 0xd8, 0x06, 0x0c}: "RTCWakeup", efi.GUID{0x34, 0x6d, 0x8e, 0xc3, 0x7f, 0x5a, 0xf9, 0x4b, 0xbe, 0x57, 0x94, 0xdd, 0x30, 0x38, 0x02, 0x76}: "EfiPccardSsProtocol", efi.GUID{0x34, 0x75, 0x9e, 0xdd, 0x62, 0x77, 0x98, 0x46, 0x8c, 0x14, 0xf5, 0x85, 0x17, 0xa6, 0x25, 0xaa}: "EfiSimpleTextInputExProtocolGuid", efi.GUID{0x34, 0x7a, 0x73, 0xb3, 0x8c, 0x62, 0xcf, 0x43, 0x9a, 0x65, 0xc2, 0x35, 0x77, 0x2f, 0x18, 0x19}: "FjScrtyRuntimeService", efi.GUID{0x34, 0x7a, 0xc8, 0xb9, 0xc6, 0x3f, 0xa9, 0x41, 0xaa, 0x66, 0xcd, 0x01, 0x1f, 0x75, 0xcb, 0x80}: "LenovoCustomizedLogoDxe", efi.GUID{0x34, 0x83, 0x57, 0x50, 0xfd, 0xfc, 0xca, 0x4d, 0xb3, 0xaf, 0x47, 0xdd, 0x76, 0xe9, 0x46, 0xcf}: "AmdNbioDxe", efi.GUID{0x34, 0x85, 0x73, 0xb3, 0x51, 0x90, 0xd1, 0x40, 0x93, 0x33, 0x91, 0x28, 0x4a, 0x59, 0x90, 0xce}: "AmiPciHotPlugLibNull", efi.GUID{0x34, 0x87, 0x6b, 0x7d, 0x54, 0xb7, 0x3f, 0x44, 0xb5, 0x88, 0x77, 0x43, 0x84, 0x3a, 0xd3, 0xf1}: "AmiSmbiosMemoryInfoHob", efi.GUID{0x34, 0x90, 0x68, 0x17, 0x1b, 0xf1, 0x8b, 0x46, 0x8c, 0xc4, 0xe1, 0x14, 0xc7, 0x7f, 0x41, 0xb1}: "AsusPTTDxe", efi.GUID{0x34, 0xa2, 0x24, 0x7d, 0xc2, 0xa8, 0x18, 0x47, 0xbf, 0x60, 0xa2, 0xef, 0x07, 0x0f, 0x41, 0x4e}: "OpalPasswordSmm", efi.GUID{0x34, 0xa8, 0x7e, 0x52, 0xb5, 0xeb, 0xec, 0x44, 0xaa, 0x27, 0xbc, 0x0f, 0xdc, 0xc0, 0x22, 0x6c}: "FjSecureServicesDxe", efi.GUID{0x34, 0xab, 0x72, 0xd4, 0x21, 0x8e, 0x43, 0x43, 0x8b, 0xff, 0x01, 0xec, 0xde, 0x29, 0x23, 0x75}: "DellThrottlingDriver", efi.GUID{0x34, 0xb4, 0x08, 0xe0, 0x73, 0x0e, 0x0c, 0x44, 0x86, 0x12, 0xa1, 0x43, 0xf6, 0xa0, 0x7b, 0xcb}: "Recovery", efi.GUID{0x34, 0xba, 0x10, 0x13, 0xb4, 0xd7, 0x80, 0x4a, 0xa6, 0x45, 0x8c, 0x04, 0x17, 0xc6, 0xaa, 0x55}: "AmiMemoryInfoConfig", efi.GUID{0x34, 0xc3, 0x34, 0x18, 0x84, 0x6f, 0x47, 0x41, 0xb7, 0x2e, 0x16, 0xa1, 0xaf, 0x7b, 0xef, 0x02}: "AsusPEFirmwareBiosGuardVS2015Bin", efi.GUID{0x34, 0xca, 0x93, 0x8b, 0xcc, 0x91, 0x2a, 0x4d, 0x8c, 0x74, 0x37, 0x1f, 0x92, 0x69, 0x1f, 0x13}: "RetimerFMP", efi.GUID{0x34, 0xcf, 0x8d, 0x83, 0x7b, 0x90, 0x55, 0x4d, 0x9a, 0x4b, 0xa0, 0xef, 0x71, 0x67, 0xb5, 0xf4}: "NvramPei", efi.GUID{0x34, 0xd1, 0x2b, 0x7d, 0x0d, 0x50, 0x42, 0x4f, 0xae, 0xe2, 0x26, 0xac, 0xcf, 0xb6, 0xcb, 0x1d}: "LibStdio", efi.GUID{0x34, 0xd7, 0xb1, 0x55, 0xe1, 0xc5, 0xdb, 0x49, 0x96, 0x47, 0xb1, 0x6a, 0xfb, 0x0e, 0x30, 0x5b}: "EfiHash2ProtocolGuid", efi.GUID{0x34, 0xda, 0xb6, 0xd6, 0x7b, 0x91, 0x11, 0x45, 0xb1, 0x47, 0x40, 0x76, 0x53, 0xbf, 0x39, 0x1a}: "FjEvtControlDxe", efi.GUID{0x34, 0xe4, 0xeb, 0x0f, 0xaf, 0xa6, 0x66, 0x41, 0xbc, 0x2f, 0xde, 0x2c, 0x59, 0x52, 0xc8, 0x7d}: "DellAbsoluteDxe", efi.GUID{0x34, 0xe8, 0x0f, 0x7f, 0x27, 0x07, 0x40, 0x46, 0x95, 0xe9, 0x9b, 0x1c, 0x05, 0x6f, 0x87, 0xb8}: "CypressCCGx", efi.GUID{0x34, 0xec, 0xd5, 0xc0, 0xe4, 0x13, 0x3b, 0x40, 0x96, 0x43, 0x54, 0xaa, 0x7f, 0x72, 0x25, 0x9d}: "SystemSecureFlashAuthenticationSmm", efi.GUID{0x34, 0xf7, 0x3b, 0xbb, 0x40, 0xd6, 0xf5, 0x4c, 0xaf, 0xea, 0xca, 0x8c, 0xfa, 0x60, 0x20, 0xd1}: "ASUS_USBFLASHBACK", efi.GUID{0x34, 0xfa, 0xb9, 0x86, 0x89, 0xf8, 0xdc, 0x4d, 0xae, 0xc7, 0x40, 0xd2, 0x86, 0xec, 0x61, 0x81}: "I2cTouchScreenDxe", efi.GUID{0x34, 0xfd, 0x8c, 0xfc, 0x25, 0x4d, 0x8c, 0x47, 0x83, 0xf0, 0x03, 0x09, 0xc9, 0x3f, 0xfb, 0xa4}: "AmdCcxVhDxe", efi.GUID{0x35, 0x0c, 0x96, 0x6f, 0xed, 0xff, 0x78, 0x47, 0x99, 0xa1, 0x4d, 0x99, 0x8c, 0xe5, 0x19, 0xb9}: "AmdNbioSmuV10Dxe", efi.GUID{0x35, 0x12, 0x20, 0x1d, 0x40, 0x2f, 0xbc, 0x4f, 0x86, 0x50, 0x85, 0x02, 0x09, 0x2d, 0x62, 0xab}: "LenovoEaiaDxe", efi.GUID{0x35, 0x17, 0x0b, 0x0f, 0xa0, 0x87, 0x93, 0x41, 0xb2, 0x66, 0x53, 0x8c, 0x38, 0xaf, 0x48, 0xce}: "EfiIfrTianoGuid", efi.GUID{0x35, 0x1f, 0x8d, 0xd3, 0x0b, 0x89, 0xca, 0x43, 0xbf, 0x9b, 0x96, 0x33, 0x7b, 0x86, 0xb0, 0x6b}: "TypeADh", efi.GUID{0x35, 0x25, 0x99, 0xcb, 0x13, 0x87, 0xde, 0x4a, 0x94, 0xf2, 0x5d, 0x32, 0xcc, 0xab, 0x8c, 0x5e}: "PostIbbVerificationCollectorPei", efi.GUID{0x35, 0x26, 0x98, 0xf3, 0x06, 0x77, 0x42, 0x48, 0x84, 0x0f, 0x64, 0x79, 0xb4, 0x86, 0x58, 0x66}: "DellSimpleBootFlagDxe", efi.GUID{0x35, 0x28, 0x98, 0x45, 0x4f, 0xd0, 0x45, 0x47, 0xbc, 0xfd, 0x51, 0x9e, 0x6b, 0xb2, 0xde, 0x7a}: "NvmeInfoSetupUtilityDxe", efi.GUID{0x35, 0x2b, 0x8c, 0x6f, 0xf4, 0xfe, 0x8d, 0x44, 0x82, 0x56, 0xe1, 0x1b, 0x19, 0xd6, 0x10, 0x77}: "EfiSecPlatformInformationPpiGuid", efi.GUID{0x35, 0x2c, 0x07, 0xd9, 0x8f, 0xeb, 0xad, 0x43, 0xa2, 0x20, 0x34, 0xd4, 0x0e, 0x2a, 0x82, 0x85}: "EfiSmmSpiProtocolGuid", efi.GUID{0x35, 0x30, 0x30, 0x73, 0xd0, 0xd6, 0xb5, 0x46, 0x8e, 0xca, 0x13, 0x9e, 0xe2, 0x87, 0xc0, 0x00}: "RaidDriver", efi.GUID{0x35, 0x35, 0xfb, 0x33, 0x5e, 0xf1, 0x17, 0x4c, 0xb3, 0x03, 0x5e, 0xb9, 0x45, 0x95, 0xec, 0xb6}: "SmmLockBox", efi.GUID{0x35, 0x36, 0x4f, 0x7e, 0x28, 0x6e, 0xc6, 0x40, 0xbc, 0xfb, 0x2b, 0x1a, 0x46, 0x45, 0x99, 0x46}: "BiosPasswordDxe", efi.GUID{0x35, 0x37, 0xb1, 0x41, 0x0a, 0x0e, 0x67, 0x4f, 0x96, 0xd1, 0xb1, 0x5d, 0xa2, 0x82, 0x05, 0xfa}: "SIOBasicIODXE", efi.GUID{0x35, 0x3a, 0x22, 0xde, 0x1c, 0x93, 0x12, 0x4c, 0x8e, 0x47, 0x73, 0xb7, 0xa6, 0x5c, 0x2b, 0x7a}: "AmdPspRomArmor2Smm", efi.GUID{0x35, 0x42, 0xd1, 0x4f, 0xa1, 0x47, 0x50, 0xe3, 0x12, 0x3f, 0x75, 0x92, 0x53, 0x06, 0x27, 0x9d}: "AmdSocAm4RnDxe", efi.GUID{0x35, 0x48, 0x5a, 0xd8, 0x82, 0x5a, 0x94, 0x48, 0xac, 0x02, 0x70, 0x6f, 0x43, 0xd5, 0x97, 0x8e}: "EdkiiConfigurationManagerProtocol", efi.GUID{0x35, 0x48, 0xee, 0xb7, 0xce, 0x84, 0x15, 0x4b, 0xbf, 0x52, 0x2d, 0x11, 0x57, 0x4c, 0xe4, 0x70}: "HardwareSignatureEntry", efi.GUID{0x35, 0x78, 0x20, 0xd6, 0xe3, 0xb7, 0xf8, 0x4f, 0xb2, 0x76, 0xcd, 0xe3, 0xe5, 0x22, 0x06, 0xbc}: "SmbiosDataUpdateDxeLightningRidgeEXECB1", efi.GUID{0x35, 0x78, 0x5d, 0x69, 0x47, 0x8d, 0x11, 0x4c, 0xab, 0x22, 0xfa, 0x8a, 0xcc, 0xe7, 0xae, 0x7a}: "EdkiiPlatformSpecificResetFilterProtocol", efi.GUID{0x35, 0x81, 0x0f, 0xe8, 0x70, 0x57, 0x0f, 0x47, 0xaf, 0xaa, 0x6b, 0x7b, 0x3c, 0xfb, 0x8a, 0x46}: "VlvInitPeimLate", efi.GUID{0x35, 0x82, 0x2e, 0xea, 0xbd, 0x37, 0xfd, 0x4f, 0x85, 0x71, 0x55, 0x6d, 0x4a, 0xae, 0x3e, 0xd8}: "UsbTypeCSxIndicatorsSMM", efi.GUID{0x35, 0x82, 0xa1, 0x65, 0x96, 0x50, 0x32, 0x40, 0x8c, 0x63, 0x21, 0x4f, 0x02, 0x49, 0xce, 0x8d}: "BaseMemoryLibSse2", efi.GUID{0x35, 0x82, 0xd2, 0xac, 0x5b, 0x07, 0xb5, 0x48, 0x98, 0xa1, 0xda, 0x04, 0xfc, 0xaf, 0x84, 0xf3}: "SiInitDxe", efi.GUID{0x35, 0x9e, 0x16, 0x24, 0x54, 0x24, 0x40, 0x49, 0x92, 0xbc, 0x82, 0x32, 0x1a, 0x2c, 0x75, 0x62}: "VlvInitPeim", efi.GUID{0x35, 0xa2, 0x24, 0x0d, 0x12, 0x9c, 0x6c, 0x44, 0x8e, 0xcb, 0xef, 0xc1, 0xf5, 0x28, 0x02, 0x09}: "DellJpegDecoder", efi.GUID{0x35, 0xa3, 0xde, 0xac, 0xb9, 0x34, 0xd0, 0x4f, 0xa4, 0xb8, 0xfa, 0x4d, 0xd0, 0xf7, 0x39, 0x58}: "SmuV12DxeCZN", efi.GUID{0x35, 0xa6, 0xa3, 0xfc, 0xaf, 0xc4, 0x8d, 0x45, 0x96, 0x79, 0xf7, 0xb6, 0x14, 0x80, 0xe3, 0x9f}: "AmdGraphicsDxe", efi.GUID{0x35, 0xa8, 0x81, 0xb9, 0xe8, 0x6e, 0x4c, 0x4f, 0xae, 0x0b, 0x21, 0x0a, 0xa0, 0xbf, 0xbf, 0x01}: "RngDxe", efi.GUID{0x35, 0xa9, 0x95, 0x0c, 0x06, 0xa0, 0xd4, 0x11, 0xbc, 0xfa, 0x00, 0x80, 0xc7, 0x3c, 0x88, 0x81}: "EfiWinNtFileSystemGuid", efi.GUID{0x35, 0xac, 0xd8, 0x11, 0x8a, 0xfb, 0xd1, 0x44, 0x8d, 0x09, 0x0b, 0x56, 0x06, 0xd3, 0x21, 0xb9}: "DSDT", efi.GUID{0x35, 0xb0, 0x9b, 0xa8, 0xe2, 0xb7, 0xcf, 0x42, 0xb2, 0x7d, 0xc1, 0xa5, 0x0f, 0xcb, 0xc1, 0xca}: "DellUnzipDriver", efi.GUID{0x35, 0xb5, 0x06, 0xfc, 0x1f, 0x5e, 0x62, 0x45, 0x9f, 0x25, 0x0a, 0x3b, 0x9a, 0xdb, 0x63, 0xc3}: "EfiIa32X64ErrorTypeTlbCheckGuid", efi.GUID{0x35, 0xba, 0xe8, 0xe3, 0x1f, 0x54, 0xf1, 0x4e, 0xbf, 0xb8, 0x75, 0xf0, 0x2a, 0x26, 0xcc, 0x75}: "HybridGraphicsPei", efi.GUID{0x35, 0xce, 0x1c, 0x95, 0xd4, 0xa7, 0x05, 0x49, 0x89, 0xfd, 0xfc, 0x9b, 0xc3, 0xb5, 0x6b, 0x83}: "ClientCore", efi.GUID{0x35, 0xdd, 0x4d, 0x2f, 0xc0, 0xf8, 0xd2, 0x46, 0xb0, 0xe3, 0xa7, 0x01, 0x36, 0x0d, 0x74, 0x99}: "PcieLaneDXE", efi.GUID{0x35, 0xdd, 0x5f, 0xfe, 0xa4, 0xa0, 0x6c, 0x45, 0xaf, 0x66, 0x03, 0x13, 0x7a, 0x55, 0x99, 0xff}: "RaidResourcePei", efi.GUID{0x35, 0xe0, 0x69, 0x7c, 0xd9, 0x60, 0x82, 0x47, 0xaa, 0xaa, 0xb0, 0x5f, 0x2f, 0x8c, 0x1b, 0x09}: "PeiReportStatusConOut", efi.GUID{0x35, 0xe4, 0xb6, 0x63, 0xbc, 0x32, 0xc6, 0x49, 0x81, 0xbd, 0xb7, 0xa1, 0xa0, 0xfe, 0x1a, 0x6c}: "PeiSmbusPolicyPpiGuid", efi.GUID{0x35, 0xe7, 0x0b, 0xe2, 0x59, 0xe0, 0xd5, 0x4c, 0xa9, 0x27, 0xff, 0x7d, 0x52, 0x8e, 0xc6, 0x50}: "DescriptorUpdate", efi.GUID{0x35, 0xee, 0x60, 0x7b, 0x08, 0xc7, 0x2b, 0x4c, 0x90, 0x94, 0x47, 0x8d, 0xc1, 0x63, 0x35, 0x8f}: "FjSysmanYggdrasilPei", efi.GUID{0x35, 0xf1, 0xf5, 0x42, 0x50, 0x3f, 0x19, 0x43, 0x98, 0xa2, 0x3b, 0x22, 0xdf, 0x55, 0x9d, 0x20}: "SmbiosMemory", efi.GUID{0x35, 0xf9, 0xfb, 0xfd, 0x6d, 0x65, 0xa7, 0x4e, 0x9d, 0xd3, 0xb7, 0xfb, 0x42, 0x49, 0x7d, 0x78}: "DellSecurityAuditDisplaySmm", efi.GUID{0x36, 0x03, 0x1b, 0xe2, 0x81, 0x9b, 0x43, 0x47, 0xb0, 0x33, 0x6d, 0x74, 0x05, 0x73, 0x4e, 0x3c}: "PciDeviceInfoSetupUtilityDxe", efi.GUID{0x36, 0x06, 0x2f, 0xbb, 0xdd, 0xb0, 0x9b, 0x48, 0xad, 0xb6, 0x60, 0x6f, 0xe3, 0xa4, 0x72, 0x58}: "CpuHotAdd", efi.GUID{0x36, 0x07, 0xd7, 0xec, 0xa9, 0xc8, 0x23, 0x41, 0xb5, 0x36, 0x5d, 0x06, 0x8a, 0x0d, 0x9a, 0xab}: "PlatformSxConfig", efi.GUID{0x36, 0x10, 0x81, 0xc3, 0x0b, 0x71, 0x39, 0x4e, 0x8c, 0xf1, 0x0a, 0xf9, 0xbe, 0x3a, 0x81, 0x98}: "TimerDxe", efi.GUID{0x36, 0x19, 0x4a, 0x51, 0x6e, 0x2c, 0x7f, 0x43, 0xb0, 0x68, 0x04, 0xcb, 0x15, 0xf5, 0x3a, 0xf9}: "AmdRasRsDxe", efi.GUID{0x36, 0x22, 0x73, 0x9f, 0x4e, 0x7a, 0x27, 0x4f, 0x9e, 0xeb, 0xab, 0x57, 0x9f, 0x8f, 0x7a, 0x47}: "AudioPlaybackSmm", efi.GUID{0x36, 0x29, 0x21, 0x86, 0x76, 0x0e, 0xc8, 0x41, 0xa0, 0x3a, 0x2a, 0xf2, 0xfc, 0x1c, 0x39, 0xe2}: "EfiRscHandlerProtocolGuid", efi.GUID{0x36, 0x29, 0x23, 0x36, 0x76, 0x0e, 0xc8, 0x31, 0xa1, 0x3a, 0x3a, 0xf2, 0xfc, 0x1c, 0x39, 0x32}: "AmiDebuServiceProtocolGuid", efi.GUID{0x36, 0x29, 0xcc, 0x96, 0x9b, 0x0e, 0x16, 0x40, 0xb6, 0xa9, 0xbb, 0xcd, 0x35, 0x00, 0xa4, 0xe9}: "OemGigaLanDriverDxe", efi.GUID{0x36, 0x2d, 0xcd, 0xc0, 0x1b, 0xa8, 0x0d, 0x45, 0xa5, 0x02, 0x37, 0x67, 0xdf, 0xa2, 0x98, 0x26}: "EfiPlatformTypeNeonCityEprpProtocol", efi.GUID{0x36, 0x31, 0x2f, 0x75, 0x16, 0x4e, 0xdc, 0x4f, 0xa2, 0x2a, 0xe5, 0xf4, 0x68, 0x12, 0xf4, 0xca}: "EfiShellParametersProtocolGuid", efi.GUID{0x36, 0x34, 0x44, 0xc1, 0x54, 0xb9, 0xba, 0x43, 0x82, 0x78, 0xc1, 0xe4, 0x42, 0xc2, 0x15, 0x39}: "DellFlashWriteProtect", efi.GUID{0x36, 0x39, 0x8f, 0x01, 0x40, 0x3a, 0x9d, 0x45, 0x9c, 0x82, 0x3f, 0x1f, 0x78, 0xa9, 0x01, 0x64}: "DellControlVaultDxe", efi.GUID{0x36, 0x4a, 0x50, 0x92, 0x7e, 0x24, 0x21, 0x4e, 0xa8, 0x0c, 0x72, 0xfe, 0x49, 0xfa, 0x63, 0x8d}: "BrightnessHardwareVbiosAtiSmm", efi.GUID{0x36, 0x4e, 0x87, 0x4f, 0x36, 0x47, 0x2f, 0x33, 0xb7, 0x5a, 0xba, 0x87, 0x53, 0x21, 0x7c, 0xd9}: "SioSmiDispatcher", efi.GUID{0x36, 0x55, 0x60, 0x6e, 0x0a, 0xa3, 0x56, 0x4d, 0x93, 0x9e, 0x1c, 0x37, 0x3f, 0x79, 0x8d, 0x7b}: "TcgLockDownVar", efi.GUID{0x36, 0x6c, 0x9a, 0xa1, 0x53, 0x70, 0x2c, 0x4e, 0x8b, 0xd0, 0xe8, 0x28, 0x62, 0x30, 0xe4, 0x73}: "PciHostBridgeLibNull", efi.GUID{0x36, 0x85, 0x0f, 0xa9, 0xf8, 0x4a, 0xd6, 0x45, 0xb5, 0x8d, 0xd2, 0x25, 0xfd, 0x1c, 0x06, 0xd9}: "FjI2cTouchPanelDxe", efi.GUID{0x36, 0x86, 0xc1, 0xd2, 0xe5, 0x40, 0xb5, 0x4e, 0xa3, 0x1b, 0x36, 0x69, 0x5f, 0xd4, 0x2c, 0x87}: "EfiShellEnvironment2ExtGuid", efi.GUID{0x36, 0x88, 0x2d, 0x82, 0x77, 0x24, 0x8c, 0x4f, 0x93, 0x30, 0x2f, 0x86, 0x95, 0xeb, 0xe4, 0xf9}: "FjSkylakeRtcBattery", efi.GUID{0x36, 0x88, 0x43, 0x87, 0x8d, 0xad, 0x3e, 0x4e, 0x92, 0x49, 0x89, 0x51, 0x20, 0xa6, 0x72, 0x40}: "DebugCommunicationLibUsb", efi.GUID{0x36, 0x8a, 0xb4, 0x0d, 0x54, 0x4e, 0x9c, 0xea, 0x9b, 0x09, 0x1e, 0xa5, 0xbe, 0x3a, 0x66, 0x0b}: "EfiRestProtocolGuid", efi.GUID{0x36, 0x95, 0x1e, 0x48, 0xd8, 0xa9, 0xd7, 0x4a, 0xb2, 0xbd, 0x27, 0xbd, 0x10, 0xe4, 0x8d, 0x05}: "AmdDashPei", efi.GUID{0x36, 0x96, 0xde, 0x0d, 0x21, 0x83, 0xdf, 0x4e, 0x9f, 0x14, 0x0b, 0xfc, 0xa3, 0xb4, 0x73, 0xf5}: "DellIntrusionDetectSmm", efi.GUID{0x36, 0xa3, 0xad, 0x89, 0x55, 0x44, 0xe0, 0x11, 0xb7, 0xe6, 0xa8, 0x01, 0xe0, 0xd7, 0x20, 0x85}: "InitResetArch", efi.GUID{0x36, 0xa4, 0x34, 0xcc, 0x78, 0xec, 0x30, 0x43, 0x96, 0xcb, 0x1a, 0xd2, 0x21, 0x6c, 0xf8, 0x7b}: "InputmodulesApp", efi.GUID{0x36, 0xa9, 0x5d, 0x40, 0x37, 0x37, 0x0b, 0x5b, 0x8e, 0x3f, 0xe6, 0x17, 0x2a, 0x56, 0x85, 0x92}: "RecoverBiosUiDxe", efi.GUID{0x36, 0xa9, 0x5d, 0x40, 0x37, 0x37, 0x0c, 0x4c, 0x8e, 0x3f, 0xe6, 0x17, 0x2a, 0x56, 0x85, 0x92}: "FileExplorerDxe", efi.GUID{0x36, 0xaa, 0x1b, 0xcc, 0xeb, 0x11, 0xcc, 0x45, 0x9a, 0xdc, 0x75, 0x65, 0xe2, 0x73, 0xac, 0x70}: "PnpSmm", efi.GUID{0x36, 0xab, 0x31, 0x08, 0xd0, 0xd5, 0x80, 0x42, 0xbe, 0xd2, 0xa7, 0xe2, 0x7e, 0x9f, 0xef, 0xc9}: "HpSioInitPei", efi.GUID{0x36, 0xae, 0x58, 0x0d, 0xaf, 0x31, 0xf3, 0x4c, 0xa7, 0x4d, 0x74, 0x89, 0x1a, 0x15, 0x97, 0xf2}: "AssetIDDxe", efi.GUID{0x36, 0xb2, 0x12, 0xce, 0xe5, 0x17, 0xb4, 0x47, 0x96, 0xae, 0xc8, 0x5b, 0xba, 0xc1, 0xe5, 0xbf}: "SmcAssetInfo", efi.GUID{0x36, 0xb2, 0x7d, 0x19, 0x56, 0xf8, 0x24, 0x49, 0x90, 0xf8, 0xcd, 0xf1, 0x2f, 0xb8, 0x75, 0xf3}: "Microcode", efi.GUID{0x36, 0xbc, 0x0e, 0x4d, 0xd7, 0x88, 0x2c, 0x49, 0xaf, 0x46, 0x67, 0x7b, 0xa2, 0x1f, 0x6d, 0x81}: "SetupConfigUpdateDxeCLX64L", efi.GUID{0x36, 0xc1, 0xc5, 0xcc, 0xd3, 0xac, 0x51, 0x42, 0x9b, 0xdc, 0xf6, 0x63, 0xcd, 0x22, 0x97, 0xb7}: "AppleAudioDecoder", efi.GUID{0x36, 0xc5, 0x03, 0x2c, 0x94, 0x45, 0x15, 0x45, 0x9e, 0x7a, 0xd3, 0xd2, 0x04, 0xfe, 0x13, 0x63}: "EfiFileExplorerProtocolGuid", efi.GUID{0x36, 0xc5, 0x18, 0x5a, 0x68, 0xdb, 0x54, 0x41, 0x90, 0x8d, 0x0e, 0x1d, 0x53, 0xbe, 0x82, 0x47}: "VariableStorageSelectorSmm", efi.GUID{0x36, 0xd6, 0x68, 0xa3, 0x77, 0x4c, 0x50, 0x4b, 0xaa, 0xe8, 0xf9, 0x9e, 0x2d, 0xa4, 0x04, 0x40}: "PnpRuntimeDxe", efi.GUID{0x36, 0xd7, 0xe5, 0xc2, 0x71, 0x07, 0xac, 0x42, 0xb9, 0x9f, 0x1b, 0x7f, 0x1c, 0xa5, 0x61, 0x0a}: "FileAccessPei", efi.GUID{0x36, 0xdc, 0x99, 0x61, 0x14, 0xe1, 0x0d, 0x4e, 0x80, 0x99, 0x99, 0xa0, 0xbd, 0x80, 0xa9, 0x71}: "DxePlatformSgPolicy", efi.GUID{0x36, 0xde, 0x00, 0xbc, 0x5c, 0x93, 0x77, 0x45, 0x8d, 0xc5, 0x48, 0x7f, 0x06, 0xb6, 0xdd, 0x12}: "DellSystemUsbPortConfigPei", efi.GUID{0x36, 0xde, 0xa6, 0xc9, 0xff, 0xfd, 0xaf, 0x4f, 0x83, 0x43, 0x85, 0xd9, 0xe3, 0x47, 0x0f, 0x43}: "NvmeInt13", efi.GUID{0x36, 0xe2, 0xde, 0x5b, 0xb5, 0x0c, 0x86, 0x4d, 0xa6, 0x08, 0xee, 0x7b, 0x0c, 0x5f, 0x29, 0x56}: "LenovoSecureErrorManagerDxe", efi.GUID{0x36, 0xe3, 0xbe, 0xcb, 0x82, 0x26, 0xd6, 0x4c, 0x81, 0x8b, 0x0a, 0x0d, 0x96, 0x7e, 0x5a, 0x67}: "EfiClpProtocol", efi.GUID{0x36, 0xe4, 0x5c, 0x73, 0x25, 0xd1, 0xd2, 0x41, 0xa5, 0x24, 0xf6, 0x69, 0x9b, 0x97, 0x09, 0xa0}: "AcpiDynamicPci", efi.GUID{0x36, 0xe5, 0x39, 0x6d, 0x69, 0x42, 0xfa, 0x49, 0xb7, 0xcd, 0x25, 0xc3, 0x5a, 0x4f, 0x8a, 0xd3}: "NvmeEraseDxe", efi.GUID{0x36, 0xf1, 0x6d, 0x53, 0x96, 0xbd, 0x1e, 0x4e, 0xad, 0xf5, 0x6b, 0x63, 0x7c, 0x13, 0x90, 0x63}: "UuidDxe", efi.GUID{0x36, 0xf4, 0x82, 0xad, 0xc5, 0x75, 0xa9, 0x4a, 0x92, 0x93, 0xc5, 0x55, 0x0a, 0x7f, 0xf9, 0x71}: "EdkiiDebugPrintErrorLevel", efi.GUID{0x36, 0xfb, 0x86, 0x6d, 0x90, 0xba, 0x2c, 0x47, 0xb5, 0x83, 0x3f, 0xbe, 0xd3, 0xfb, 0x20, 0x9a}: "FspHobGuid", efi.GUID{0x36, 0xfd, 0xf8, 0x20, 0x00, 0x6d, 0xfb, 0x40, 0xb7, 0x04, 0xd1, 0x2c, 0x15, 0x3c, 0x62, 0xeb}: "CcEventEntryHob", efi.GUID{0x37, 0x06, 0x63, 0x7f, 0xbe, 0x39, 0x1d, 0x40, 0xac, 0x06, 0x57, 0xdc, 0x91, 0x17, 0xdf, 0x13}: "SDEVUpdate", efi.GUID{0x37, 0x08, 0x61, 0x14, 0x97, 0x4e, 0x27, 0x44, 0x96, 0xe0, 0x21, 0xd9, 0xb2, 0x95, 0x69, 0x96}: "EsalVariableDxeSal", efi.GUID{0x37, 0x0a, 0xc2, 0x99, 0x2a, 0x04, 0xe2, 0x46, 0x80, 0xf4, 0xe4, 0x02, 0x7f, 0xdb, 0xc8, 0x6f}: "PlatformSmm", efi.GUID{0x37, 0x0e, 0xf3, 0xde, 0xec, 0x7a, 0x69, 0x4f, 0x91, 0xa2, 0xcf, 0x09, 0x9e, 0x27, 0x29, 0xf2}: "PciTableInit", efi.GUID{0x37, 0x10, 0xde, 0x8d, 0xe5, 0x94, 0x84, 0x4b, 0x86, 0x11, 0x27, 0x9a, 0x00, 0x4b, 0xa8, 0xf5}: "PspP2Cmbox", efi.GUID{0x37, 0x11, 0xe9, 0xd4, 0xf4, 0x43, 0x56, 0x4e, 0xb9, 0x89, 0xd3, 0xd0, 0xe7, 0xb1, 0x69, 0x55}: "InstallHookDxe", efi.GUID{0x37, 0x17, 0x84, 0x82, 0xfd, 0x79, 0xc2, 0x4a, 0xa9, 0x48, 0x2e, 0x5c, 0x94, 0xe8, 0x0e, 0x63}: "DashManagementPei", efi.GUID{0x37, 0x1d, 0x76, 0x71, 0xb2, 0x32, 0xcd, 0x45, 0xa7, 0xd0, 0xb0, 0xfe, 0xdd, 0x93, 0xe8, 0xcf}: "EfiDirectedIoDMArErrorSectionGuid", efi.GUID{0x37, 0x1f, 0xd1, 0xeb, 0x7e, 0x17, 0x16, 0x42, 0xa9, 0x8e, 0x56, 0xc7, 0x7a, 0xdc, 0xea, 0xbe}: "XnoteFlashCommunicationDxe", efi.GUID{0x37, 0x21, 0x07, 0xde, 0xfc, 0xa9, 0x8c, 0x40, 0x8b, 0x4d, 0x6f, 0xd2, 0xd7, 0x98, 0xbb, 0xcb}: "FjUsbSecurityVG2", efi.GUID{0x37, 0x22, 0xb7, 0x35, 0x26, 0x39, 0x4a, 0xcf, 0xa7, 0xf3, 0x14, 0x49, 0xf9, 0xe0, 0xe4, 0xbd}: "EmuSimpleFileSystem", efi.GUID{0x37, 0x31, 0x81, 0x09, 0xa5, 0xb2, 0x62, 0x44, 0x8a, 0x2a, 0x48, 0xf7, 0x7e, 0xca, 0x31, 0xbf}: "SmbiosDataUpdateDxeExpertWorkStationRP", efi.GUID{0x37, 0x39, 0x1a, 0xad, 0x66, 0xa6, 0x2b, 0x4e, 0x9a, 0x35, 0x89, 0x42, 0xa6, 0x09, 0x93, 0x1c}: "PowerFailureRecoveryDxe", efi.GUID{0x37, 0x39, 0xff, 0x6d, 0xf2, 0xf9, 0xeb, 0x41, 0xa1, 0xd4, 0x59, 0xd6, 0xe5, 0xd9, 0x64, 0x0a}: "NvmePassThruOverride", efi.GUID{0x37, 0x3d, 0x4c, 0x20, 0x3f, 0xd8, 0xab, 0x49, 0x88, 0x3f, 0x9b, 0x5d, 0x6c, 0x64, 0x77, 0x62}: "FspTempRamExitGuid", efi.GUID{0x37, 0x42, 0xaa, 0x5d, 0x31, 0x00, 0x0b, 0x4b, 0x96, 0x7c, 0x74, 0x47, 0x71, 0x29, 0xd6, 0xf0}: "H19CheckPointMultiThreaing", efi.GUID{0x37, 0x52, 0x22, 0x9d, 0x01, 0xfa, 0x4c, 0x46, 0xa9, 0x49, 0xba, 0xab, 0xc0, 0x2d, 0x31, 0xd0}: "StatusCodeHandlerPei", efi.GUID{0x37, 0x54, 0x70, 0x38, 0x97, 0x56, 0x15, 0x47, 0x85, 0xc6, 0x29, 0x93, 0x30, 0x73, 0xc2, 0x12}: "SystemBoardPpi", efi.GUID{0x37, 0x5d, 0xb6, 0x9b, 0xa8, 0x8c, 0x89, 0x47, 0xbe, 0x45, 0xee, 0x18, 0x53, 0x6e, 0xe0, 0x89}: "UsbOcUpdateDxeNeonCityEPECB", efi.GUID{0x37, 0x69, 0xb7, 0x8b, 0x61, 0xec, 0x48, 0x4e, 0xb3, 0x97, 0x66, 0x67, 0xda, 0x24, 0x34, 0x86}: "FjDtPlatformSetupServicesDxe", efi.GUID{0x37, 0x6f, 0xa6, 0x2f, 0x93, 0x8d, 0x23, 0x40, 0xb6, 0xa2, 0xbc, 0x50, 0x49, 0xac, 0xcf, 0x0b}: "DellPasswordPolicySmmProtocol", efi.GUID{0x37, 0x7b, 0x19, 0x77, 0xfb, 0xa0, 0x7c, 0x48, 0x9c, 0xdf, 0xfc, 0x36, 0x17, 0x9b, 0x73, 0xde}: "DellStatusCodeHandlerDxe", efi.GUID{0x37, 0x82, 0x17, 0x1c, 0x97, 0x68, 0x9e, 0x45, 0x9d, 0x36, 0x67, 0xce, 0x8e, 0xf9, 0x4f, 0x76}: "EfiKmsFormatMd5sha128Guid", efi.GUID{0x37, 0x85, 0x9d, 0x8c, 0x79, 0x94, 0xf4, 0x40, 0x8c, 0x82, 0x70, 0xd1, 0xef, 0x5f, 0x73, 0x53}: "UsbOcUpdateDxeLightningRidgeEXECB2", efi.GUID{0x37, 0x88, 0xd1, 0x6f, 0xe6, 0x36, 0xec, 0x46, 0x8f, 0x61, 0x67, 0x30, 0xe3, 0xe2, 0x3d, 0x50}: "JhiDxe", efi.GUID{0x37, 0x8a, 0xaf, 0x1e, 0x36, 0xcd, 0x67, 0x42, 0x83, 0x1e, 0xac, 0x69, 0x78, 0x9c, 0x5c, 0xca}: "mSupplicantDriver", efi.GUID{0x37, 0x96, 0x13, 0xb7, 0x14, 0xc1, 0x7c, 0x44, 0xb7, 0x3e, 0xcd, 0xbc, 0xd3, 0x07, 0xbe, 0xbb}: "WinCSMDxe", efi.GUID{0x37, 0x96, 0x96, 0xb8, 0xde, 0x81, 0xaf, 0x43, 0xbc, 0x9a, 0x24, 0xd9, 0x89, 0x13, 0xf2, 0xf6}: "HandleParsingHiiGuid", efi.GUID{0x37, 0x9c, 0x76, 0xed, 0x26, 0xf5, 0x4a, 0x44, 0x8d, 0x70, 0x24, 0x9b, 0xef, 0xf0, 0x49, 0x48}: "L05UpdateSlp20", efi.GUID{0x37, 0x9e, 0x49, 0x30, 0x01, 0xfc, 0xd6, 0x4d, 0x8e, 0x07, 0x2e, 0x38, 0x53, 0xde, 0xbe, 0x60}: "AmdLegacyInterrupt", efi.GUID{0x37, 0xa5, 0xce, 0xe0, 0xb0, 0xfd, 0x30, 0x4d, 0x8c, 0x1c, 0x9b, 0x03, 0x59, 0xa4, 0x59, 0x8f}: "FjNuvotonNct5581Pei", efi.GUID{0x37, 0xa6, 0x11, 0x67, 0x2b, 0x2c, 0xea, 0x48, 0xbd, 0x29, 0x88, 0xe8, 0xa2, 0xf8, 0x0b, 0x93}: "DellFingerPrintReader", efi.GUID{0x37, 0xad, 0x24, 0xd8, 0xb9, 0x7a, 0x17, 0x48, 0xbd, 0x53, 0xdb, 0xab, 0x77, 0x9a, 0x3c, 0x83}: "DellAdvSysMgmtConfigSmm", efi.GUID{0x37, 0xad, 0x29, 0xb1, 0x38, 0x3f, 0x4b, 0x44, 0xe4, 0x25, 0x9a, 0xa9, 0x91, 0xa8, 0x18, 0x93}: "HpOsToUefiInterface", efi.GUID{0x37, 0xaf, 0x96, 0x82, 0x83, 0xd1, 0x16, 0x44, 0xb3, 0xb6, 0x19, 0xd2, 0xa8, 0x0a, 0xd4, 0xa8}: "EbcDebugger", efi.GUID{0x37, 0xb6, 0x86, 0x27, 0x93, 0x5e, 0x57, 0x4e, 0xb1, 0xd4, 0xb6, 0x9d, 0x8d, 0x49, 0x65, 0x80}: "FjSysmanTeutatesSmmFjFextBin", efi.GUID{0x37, 0xb7, 0xa3, 0xc9, 0x41, 0x88, 0x9e, 0x49, 0x81, 0x4c, 0x46, 0x30, 0x54, 0xc7, 0xc7, 0xa3}: "FjPowerOverEthernet", efi.GUID{0x37, 0xb9, 0x30, 0xa6, 0xb3, 0x3a, 0x63, 0x42, 0x85, 0xb1, 0xa6, 0x3e, 0x98, 0xf2, 0x99, 0x49}: "PcieErrorHandler", efi.GUID{0x37, 0xc5, 0x14, 0x87, 0x4b, 0x6d, 0x47, 0x42, 0xaa, 0x6c, 0x29, 0xe8, 0x49, 0x5f, 0x91, 0x00}: "FspNotifyDxe", efi.GUID{0x37, 0xcf, 0x25, 0xe4, 0x5b, 0xe5, 0xd7, 0x43, 0xb2, 0xc6, 0xcd, 0xb9, 0xee, 0x8d, 0x25, 0xa5}: "RasClvRankSparingProtocol", efi.GUID{0x37, 0xda, 0xc9, 0x2e, 0x35, 0xee, 0xe9, 0x4d, 0x86, 0xc5, 0x6d, 0x9a, 0x81, 0xdc, 0x38, 0xa7}: "AmdSevDxe", efi.GUID{0x37, 0xdb, 0x13, 0x67, 0xc7, 0x20, 0x23, 0x4e, 0xbd, 0x42, 0xc5, 0xb3, 0x00, 0xa6, 0xae, 0x32}: "SmmPBDispatch2OnSmmPBDispatchThunk", efi.GUID{0x37, 0xdc, 0x05, 0xbc, 0xa0, 0x9d, 0x50, 0x40, 0x97, 0x28, 0xf3, 0x4d, 0xdb, 0x01, 0xe2, 0x00}: "BiosRegionLockEntry", efi.GUID{0x37, 0xdc, 0x05, 0xbc, 0xa0, 0x9d, 0x50, 0x40, 0x97, 0x28, 0xf3, 0x4d, 0xdb, 0x01, 0xe3, 0x01}: "SpiLockSmi", efi.GUID{0x37, 0xe1, 0xc7, 0x5e, 0xe2, 0x3f, 0x1e, 0x44, 0xa3, 0x36, 0xf6, 0x57, 0x26, 0x87, 0x33, 0xa6}: "DeviceBlacklist", efi.GUID{0x37, 0xe3, 0x7b, 0xba, 0xfb, 0x6c, 0xbb, 0x4d, 0xb2, 0x6c, 0x21, 0xec, 0x2f, 0xc1, 0x60, 0x73}: "SecCore", efi.GUID{0x37, 0xe5, 0x2d, 0xed, 0x23, 0x78, 0xb1, 0x4c, 0xb6, 0x87, 0x85, 0xba, 0x9b, 0xbe, 0xf0, 0xb4}: "RaidRom", efi.GUID{0x37, 0xec, 0xac, 0x0c, 0x9b, 0xb7, 0x78, 0x4a, 0xb3, 0xc5, 0xea, 0x61, 0xea, 0xf6, 0x98, 0x0d}: "BiosInitToFactorySupport", efi.GUID{0x37, 0xef, 0xde, 0x89, 0xd8, 0x31, 0x9c, 0x46, 0x95, 0xb6, 0x01, 0x69, 0xbc, 0x86, 0x6c, 0xfb}: "EfiIpProtocol", efi.GUID{0x37, 0xf0, 0x86, 0x8c, 0xe9, 0x50, 0xfb, 0x4c, 0x9d, 0xdb, 0x90, 0x3f, 0x08, 0x4f, 0x3a, 0x40}: "FjIbvNvramGateReferenceDxe", efi.GUID{0x37, 0xf7, 0x01, 0x15, 0x6d, 0xc5, 0x21, 0x47, 0x98, 0x8f, 0x74, 0x37, 0xf3, 0xd2, 0x2f, 0xd9}: "H19SmmReadyToLockHook", efi.GUID{0x37, 0xf9, 0x3f, 0xca, 0x46, 0xd6, 0x36, 0x49, 0x90, 0xe8, 0x1b, 0x95, 0x06, 0x49, 0xb3, 0x89}: "EfiSocketPciResourceData", efi.GUID{0x37, 0xfb, 0xa6, 0x78, 0x27, 0x8f, 0xa4, 0x40, 0x9c, 0x4e, 0x9f, 0xc9, 0xe4, 0x38, 0xd5, 0xe2}: "AmiTseOemPortingVar8", efi.GUID{0x38, 0x05, 0x92, 0xa9, 0xa4, 0x40, 0x35, 0x43, 0x9d, 0x71, 0x1e, 0xf5, 0x46, 0xae, 0xfb, 0x27}: "DellSfpPei", efi.GUID{0x38, 0x13, 0x8d, 0xf3, 0x7a, 0xaf, 0xb6, 0x4f, 0x91, 0xdb, 0x1a, 0x9c, 0x21, 0x83, 0x57, 0x0d}: "WdtPpi", efi.GUID{0x38, 0x17, 0x66, 0x68, 0x0d, 0xd7, 0xa1, 0x4b, 0xbf, 0xce, 0x7d, 0xba, 0xbe, 0x14, 0xfb, 0x9c}: "FileExplorer", efi.GUID{0x38, 0x18, 0xfd, 0x96, 0x96, 0x44, 0xe7, 0x4a, 0xbe, 0x7c, 0x85, 0x15, 0x29, 0x6b, 0xfb, 0xed}: "HpDiagnosticsPortingSetupConfigSmm", efi.GUID{0x38, 0x1e, 0x0b, 0x97, 0x01, 0x97, 0xaa, 0x47, 0x88, 0xa5, 0x56, 0x6a, 0x9f, 0x23, 0x22, 0x64}: "AcerGnvsSmm", efi.GUID{0x38, 0x26, 0x93, 0xf5, 0xa4, 0x89, 0x7e, 0x47, 0xb9, 0x3e, 0x32, 0xa5, 0x12, 0x84, 0xf3, 0xf8}: "AsusMcuPowerSavingDxe", efi.GUID{0x38, 0x29, 0x31, 0xe9, 0x6b, 0xe5, 0x14, 0x46, 0xa2, 0x52, 0xcf, 0x7d, 0x2f, 0x37, 0x7e, 0x26}: "AmiTcgPlatformPeiBeforeMem", efi.GUID{0x38, 0x2f, 0x16, 0xf7, 0x88, 0x60, 0x42, 0x48, 0xb0, 0xed, 0xc1, 0x43, 0xda, 0xd3, 0x9e, 0xfb}: "PTUpdatePCD", efi.GUID{0x38, 0x36, 0xf9, 0xb9, 0xf5, 0x35, 0x7d, 0x44, 0xb9, 0x08, 0xa2, 0xb8, 0x52, 0xaa, 0x0b, 0x89}: "LenovoSmbiosTcgDxe", efi.GUID{0x38, 0x40, 0xbf, 0x36, 0x02, 0xc9, 0x8e, 0x42, 0x96, 0xeb, 0xdf, 0xe3, 0xb4, 0x68, 0x16, 0x7f}: "FchSmbusDxe", efi.GUID{0x38, 0x46, 0xb5, 0xa9, 0x79, 0x4f, 0x69, 0x43, 0xbc, 0xa3, 0x44, 0xb2, 0xb5, 0x93, 0xac, 0xb8}: "OemSmi", efi.GUID{0x38, 0x47, 0xa7, 0xe2, 0x34, 0x89, 0xf5, 0x48, 0x84, 0x12, 0x99, 0xe9, 0x48, 0xc8, 0xdc, 0x1b}: "SmbiosDmiEdit", efi.GUID{0x38, 0x56, 0x93, 0xe8, 0x37, 0x74, 0xbc, 0x46, 0xad, 0xb5, 0x31, 0x53, 0x82, 0x0f, 0xd6, 0xce}: "RTKUndiDxe", efi.GUID{0x38, 0x68, 0xdc, 0x41, 0x9a, 0x02, 0x2e, 0x4d, 0x86, 0x0c, 0x6e, 0xc6, 0x42, 0x5b, 0x5e, 0xdd}: "AsusWlanUpdate", efi.GUID{0x38, 0x6d, 0xa7, 0x7e, 0x7a, 0xc5, 0x2d, 0x41, 0xaf, 0x1d, 0xd5, 0x8b, 0xee, 0x2b, 0x85, 0xb1}: "LenovoVproPetAlert", efi.GUID{0x38, 0x70, 0x84, 0xc5, 0x75, 0xff, 0x74, 0x40, 0x9e, 0x4c, 0xc3, 0x6a, 0x2e, 0xb3, 0x98, 0xa5}: "LibTime", efi.GUID{0x38, 0x81, 0xda, 0x4d, 0xcd, 0x47, 0x19, 0x40, 0x91, 0x78, 0x11, 0x50, 0x03, 0x43, 0x1b, 0x21}: "SWSMI_Shadow", efi.GUID{0x38, 0x88, 0xa8, 0xd4, 0xf4, 0xeb, 0xd7, 0x48, 0x9d, 0x97, 0xce, 0x67, 0x89, 0xfd, 0xe0, 0xb7}: "CryptoPkgTest", efi.GUID{0x38, 0x8d, 0x14, 0x71, 0x25, 0x59, 0x21, 0x40, 0x91, 0xab, 0xcb, 0x25, 0x2a, 0xf7, 0x45, 0x31}: "AcerPDDockPXE", efi.GUID{0x38, 0x9d, 0x18, 0xbe, 0x63, 0xc9, 0xcf, 0x41, 0xb6, 0x95, 0xd9, 0x0e, 0x9e, 0x54, 0x5a, 0x13}: "UfsBlockIoPei", efi.GUID{0x38, 0x9d, 0x83, 0x79, 0x05, 0xdd, 0x9c, 0x48, 0xb3, 0xef, 0xf2, 0x7b, 0xda, 0x08, 0xe5, 0x72}: "AmiAgesaSxSmi", efi.GUID{0x38, 0x9e, 0xfd, 0xa7, 0x05, 0xc0, 0xad, 0x45, 0x8b, 0x65, 0xf1, 0x3c, 0xf6, 0xa1, 0xfd, 0x79}: "AmdUnbXvPei", efi.GUID{0x38, 0xa2, 0x3f, 0x91, 0x16, 0x7b, 0x72, 0x4b, 0xa5, 0xf0, 0x81, 0x5e, 0x7d, 0x2c, 0x8c, 0x1f}: "AmiTseOemPortingVar24", efi.GUID{0x38, 0xa3, 0x64, 0xe3, 0x42, 0x28, 0x57, 0x4f, 0xa7, 0xc7, 0xcd, 0xc8, 0xcf, 0xdf, 0x6c, 0xd7}: "AppleEvent", efi.GUID{0x38, 0xa8, 0x0d, 0x0f, 0x78, 0xe6, 0x2e, 0x43, 0x9a, 0xee, 0xcb, 0x60, 0x6e, 0x89, 0xb3, 0xda}: "FchSmbusPei", efi.GUID{0x38, 0xa9, 0x3d, 0xce, 0xd6, 0x6a, 0x8a, 0x45, 0x88, 0x31, 0x6b, 0x0a, 0x03, 0xdf, 0x6c, 0x86}: "Pentium4Base", efi.GUID{0x38, 0xa9, 0xa7, 0x36, 0x62, 0x3e, 0xd6, 0x47, 0xb3, 0x95, 0x3d, 0x3f, 0xe1, 0x35, 0xf3, 0xd1}: "OneTimeFlagPeiInit", efi.GUID{0x38, 0xab, 0x7d, 0xb2, 0x14, 0x98, 0x06, 0x4e, 0xa5, 0xa2, 0x65, 0xae, 0x9a, 0x14, 0x25, 0x8f}: "AmiIntSmmCommProtocol", efi.GUID{0x38, 0xb9, 0x5e, 0x9d, 0x44, 0x9a, 0x68, 0x45, 0x81, 0x92, 0xc1, 0x56, 0x3b, 0xeb, 0xaa, 0x01}: "LenovoIsscDxe", efi.GUID{0x38, 0xbc, 0xe8, 0x8c, 0x5d, 0x80, 0x2d, 0x44, 0x8d, 0xb0, 0x47, 0x92, 0x75, 0xcb, 0x1b, 0xf2}: "SystemErrorLogDxe", efi.GUID{0x38, 0xbe, 0xf9, 0x7b, 0x8d, 0x9b, 0x62, 0x4d, 0xad, 0x06, 0x68, 0x05, 0xbe, 0xed, 0x98, 0x52}: "FjFlexIoDetectionViaI2C", efi.GUID{0x38, 0xc7, 0x30, 0x6b, 0x91, 0xa3, 0xd4, 0x11, 0x9a, 0x3b, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d}: "EfiPlatformDriverOverrideProtocolGuid", efi.GUID{0x38, 0xca, 0x02, 0x44, 0x8f, 0x80, 0x79, 0x42, 0xbc, 0xec, 0x5b, 0xaf, 0x8d, 0x59, 0x09, 0x2f}: "EfiSocketCommonRcVariable", efi.GUID{0x38, 0xd8, 0x81, 0x7f, 0x1d, 0xf9, 0x44, 0x4c, 0x85, 0x52, 0x8f, 0xb9, 0x12, 0x12, 0x2f, 0xdd}: "GopDxe", efi.GUID{0x38, 0xd9, 0xe4, 0x9c, 0x87, 0x9c, 0xd0, 0x41, 0x9e, 0x55, 0x34, 0x92, 0x3f, 0xaf, 0x8b, 0x4f}: "AmiPeiNbInitPolicyGuid", efi.GUID{0x38, 0xdd, 0x3e, 0xb1, 0x4c, 0x68, 0xed, 0x41, 0xa3, 0x05, 0xd7, 0xb7, 0xe3, 0x24, 0x97, 0xdf}: "Smbios", efi.GUID{0x38, 0xe4, 0xba, 0x14, 0x05, 0x5c, 0x3e, 0x48, 0xaf, 0xdb, 0xd8, 0x83, 0x25, 0xcc, 0x0e, 0x93}: "DellKeyManagementServiceSmm", efi.GUID{0x38, 0xef, 0x3d, 0x6a, 0x45, 0x0a, 0x07, 0x41, 0xa7, 0x4e, 0xab, 0xf2, 0xb8, 0xea, 0xed, 0x86}: "MemorySubClass", efi.GUID{0x38, 0xf0, 0x95, 0xf4, 0xe6, 0x71, 0xdb, 0x49, 0x9a, 0x80, 0xb2, 0xe9, 0x8f, 0x7b, 0xa7, 0x18}: "PeiDbgModuleLocator", efi.GUID{0x38, 0xf8, 0x0c, 0xa8, 0x8e, 0x83, 0x39, 0x47, 0xb4, 0x9e, 0xd9, 0x7d, 0x20, 0xdd, 0xe9, 0x8f}: "GpioControlPei", efi.GUID{0x38, 0xfa, 0x11, 0xc8, 0xc8, 0x42, 0x79, 0x45, 0xa9, 0xbb, 0x60, 0xe9, 0x4e, 0xdd, 0xfb, 0x34}: "AmiTseSetupGuid", efi.GUID{0x38, 0xfb, 0x82, 0xc1, 0xe4, 0x0f, 0xec, 0x4b, 0x92, 0x70, 0xa2, 0x73, 0xe1, 0xef, 0x2c, 0x80}: "AmdXgbeWorkaroundDxe", efi.GUID{0x38, 0xfd, 0x73, 0x83, 0x8b, 0xd9, 0x8a, 0x4c, 0x85, 0x1e, 0x2e, 0x93, 0x96, 0x74, 0x8a, 0xf3}: "TxeFwDowngradeDxe", efi.GUID{0x39, 0x03, 0x44, 0x94, 0x93, 0xcc, 0x06, 0x45, 0xb4, 0xc6, 0xee, 0x8d, 0x0f, 0x4c, 0xa1, 0x91}: "EdkiiNonDiscoverableAmbaDeviceGuid", efi.GUID{0x39, 0x03, 0x71, 0xd5, 0x67, 0xa4, 0x76, 0x4f, 0xb0, 0x53, 0x4f, 0x14, 0xc2, 0xf5, 0xc9, 0x99}: "FjDtPlatformDiagnosticsDxe", efi.GUID{0x39, 0x1f, 0x9e, 0x09, 0x02, 0x01, 0xc3, 0x43, 0x8c, 0xec, 0x8e, 0x89, 0x7b, 0x65, 0x62, 0xf7}: "EventLogSmm", efi.GUID{0x39, 0x30, 0xf5, 0x0e, 0x38, 0x3a, 0xd1, 0x42, 0xbc, 0xec, 0xce, 0x96, 0x6e, 0x87, 0x06, 0x1a}: "PeiFrb", efi.GUID{0x39, 0x35, 0xdd, 0x87, 0x67, 0x06, 0xb7, 0x4b, 0x9f, 0xb2, 0x47, 0xd3, 0xc5, 0x0b, 0x02, 0x1b}: "PhoenixDesktopMessageProtocolGuid", efi.GUID{0x39, 0x39, 0xe3, 0x92, 0x33, 0xa1, 0x30, 0x4c, 0x6e, 0x13, 0x11, 0x65, 0xda, 0x59, 0xa8, 0xa4}: "DeviceBlacklistDefaultsSmm", efi.GUID{0x39, 0x3b, 0xdd, 0x83, 0xaf, 0x7c, 0xac, 0x4f, 0xa5, 0x42, 0xe0, 0x50, 0xb7, 0x67, 0xe3, 0xa7}: "VirtioPciDeviceDxe", efi.GUID{0x39, 0x3b, 0xf2, 0xc8, 0x5c, 0xc9, 0x18, 0x43, 0x92, 0x33, 0x53, 0xfb, 0x3a, 0xc4, 0x45, 0x92}: "VariableVsr", efi.GUID{0x39, 0x46, 0x14, 0x57, 0xd1, 0x7b, 0x72, 0x4e, 0xb9, 0x7b, 0xd8, 0xa8, 0xc3, 0xae, 0x2a, 0x9e}: "PlatformFlashSmm", efi.GUID{0x39, 0x48, 0x7b, 0x14, 0xbe, 0x5d, 0x3f, 0x41, 0x91, 0x7f, 0xdf, 0xeb, 0x68, 0x7c, 0x63, 0x12}: "PchResetPeim", efi.GUID{0x39, 0x4d, 0xd7, 0x2e, 0xd5, 0xf9, 0x5d, 0x48, 0x83, 0x57, 0x0e, 0x00, 0xfe, 0x87, 0x1c, 0x12}: "TouchPad_Synaptics", efi.GUID{0x39, 0x5b, 0x21, 0x0c, 0x5d, 0x42, 0xe0, 0x42, 0xa1, 0xb4, 0x36, 0x7d, 0x57, 0x49, 0x56, 0xec}: "FjDmiSystemData", efi.GUID{0x39, 0x60, 0xef, 0x98, 0x0b, 0x13, 0x84, 0x47, 0x91, 0x25, 0xb7, 0x23, 0x12, 0x8f, 0x16, 0x39}: "FjNuvotonNct5581Dxe", efi.GUID{0x39, 0x61, 0x05, 0x67, 0x96, 0xce, 0x88, 0x46, 0xb7, 0xe7, 0x73, 0x80, 0x3e, 0xa5, 0x28, 0xfa}: "ConfigChangePromptDxe", efi.GUID{0x39, 0x62, 0x27, 0xcc, 0xe5, 0xd6, 0xd4, 0x41, 0xac, 0x30, 0x36, 0x79, 0x4e, 0x52, 0xb9, 0x8b}: "FujInSmm", efi.GUID{0x39, 0x64, 0xf3, 0xa5, 0x52, 0xbd, 0xfb, 0x49, 0xb1, 0x58, 0x7f, 0x66, 0x88, 0x95, 0x2b, 0xea}: "OemSpecialLogoSupport", efi.GUID{0x39, 0x6a, 0xc8, 0x50, 0x94, 0xc1, 0x03, 0x4b, 0x8b, 0x4e, 0x22, 0xce, 0x46, 0x3b, 0xb2, 0xa0}: "DellSmmDiagLeds", efi.GUID{0x39, 0x72, 0x59, 0x22, 0x07, 0x61, 0x44, 0xdf, 0xad, 0x3f, 0x5f, 0x05, 0x3e, 0x92, 0x22, 0x2e}: "EmuSnpDxe", efi.GUID{0x39, 0x77, 0x7f, 0x3d, 0x84, 0xa0, 0xa9, 0x4f, 0x9a, 0x83, 0x6b, 0x4b, 0x0e, 0x2c, 0xd6, 0x38}: "SATADxeConfiguration", efi.GUID{0x39, 0x89, 0xa4, 0x30, 0xf9, 0xc8, 0x18, 0x40, 0xbe, 0xd7, 0x9f, 0x92, 0x28, 0xf1, 0x67, 0x81}: "BatteryHealthControlDxe", efi.GUID{0x39, 0x8a, 0xa8, 0x28, 0x84, 0xdd, 0x3f, 0x48, 0x9b, 0xef, 0xba, 0x11, 0x68, 0xc2, 0xf8, 0x50}: "UbaInitPei", efi.GUID{0x39, 0x8d, 0x14, 0x11, 0x26, 0x59, 0x22, 0x40, 0x91, 0xac, 0xcb, 0x25, 0x2a, 0xf7, 0x45, 0x30}: "Usb_Lan_RT8152B", efi.GUID{0x39, 0x8d, 0x14, 0x71, 0x26, 0x59, 0x22, 0x40, 0x91, 0xac, 0xcb, 0x25, 0x2a, 0xf7, 0x45, 0x30}: "AsusEzFlash", efi.GUID{0x39, 0x8d, 0x14, 0x71, 0x26, 0x59, 0x22, 0x40, 0x91, 0xac, 0xcb, 0x25, 0x2a, 0xf7, 0x45, 0x32}: "AcerDockIIPXE", efi.GUID{0x39, 0x91, 0x09, 0x66, 0x1f, 0xc9, 0xd5, 0x4d, 0x88, 0xec, 0x57, 0x07, 0xde, 0x68, 0x81, 0xa4}: "HpFBCacheDxe", efi.GUID{0x39, 0x9b, 0xcf, 0x6e, 0xd7, 0x9d, 0x75, 0x41, 0xb6, 0x57, 0xca, 0xb9, 0x43, 0x75, 0x98, 0xde}: "AlwaysPublishInt13ForCdrom", efi.GUID{0x39, 0x9c, 0x03, 0xf1, 0x99, 0x92, 0xfe, 0x41, 0x87, 0x99, 0x5e, 0xaf, 0xb6, 0x68, 0xee, 0x6c}: "AmdRasRnApeiDxe", efi.GUID{0x39, 0xa1, 0x50, 0xb8, 0xbb, 0xba, 0x91, 0x4d, 0x9f, 0x27, 0x72, 0xd2, 0xef, 0x01, 0xbf, 0x3a}: "VbtMipiJdiGuid", efi.GUID{0x39, 0xa7, 0x5c, 0xe4, 0xa3, 0x88, 0xe7, 0x48, 0x87, 0xe0, 0x9f, 0xbe, 0x6c, 0x38, 0x30, 0x59}: "AmiSMMUserCredServices", efi.GUID{0x39, 0xab, 0x56, 0xa3, 0xc4, 0x35, 0xda, 0x35, 0xb3, 0x7a, 0xf8, 0xea, 0x9e, 0x8b, 0x36, 0xa3}: "EfiStatusCodeDataTypeProgressCode", efi.GUID{0x39, 0xb3, 0x24, 0x95, 0x02, 0x57, 0x07, 0x4d, 0x87, 0xe3, 0x47, 0xab, 0xa1, 0x0e, 0x0c, 0x1e}: "SmbiosMemory", efi.GUID{0x39, 0xb5, 0x69, 0xa8, 0xf0, 0x26, 0x22, 0x4f, 0x9a, 0x3e, 0xf4, 0x34, 0xe6, 0x89, 0x89, 0x84}: "ProcessErrorCodeDxe", efi.GUID{0x39, 0xba, 0x5e, 0xb4, 0x3e, 0xd5, 0x94, 0x4a, 0xa8, 0x39, 0xd5, 0x01, 0x63, 0x3a, 0x59, 0x18}: "SystemNvmeAspiLegacySmm", efi.GUID{0x39, 0xbd, 0x32, 0x07, 0xb0, 0xd6, 0x39, 0x40, 0xb6, 0xc2, 0x96, 0x54, 0x46, 0x6d, 0xe5, 0x25}: "MeudError", efi.GUID{0x39, 0xbe, 0xd2, 0xff, 0x4e, 0x1d, 0x23, 0x46, 0xac, 0xc3, 0x30, 0x68, 0x9b, 0x9e, 0xa7, 0x8a}: "TouchPadDriver", efi.GUID{0x39, 0xc3, 0x46, 0xcf, 0x51, 0x06, 0x7a, 0x40, 0x8e, 0x85, 0xd0, 0xd7, 0x27, 0x31, 0xcc, 0xd5}: "RequestPOPOnReset", efi.GUID{0x39, 0xd0, 0xe7, 0x43, 0xa6, 0xee, 0x08, 0x4c, 0xb7, 0x41, 0x09, 0x6d, 0x39, 0x44, 0x78, 0x45}: "SataDriveInfoSetupUtilityDxe", efi.GUID{0x39, 0xd8, 0xa1, 0x20, 0x3d, 0x85, 0x67, 0x40, 0xb6, 0x9c, 0x55, 0x2a, 0x0d, 0x05, 0xc1, 0xaa}: "DellFormBrowser", efi.GUID{0x39, 0xdc, 0x0b, 0x32, 0xa0, 0x3f, 0xa9, 0x4b, 0xbf, 0x2d, 0xb3, 0x3f, 0x72, 0xba, 0x9c, 0xa1}: "AmiTpmSupportTypeProtocolguid", efi.GUID{0x39, 0xdf, 0x94, 0xb4, 0xf8, 0xa5, 0xa1, 0x48, 0xb2, 0xd0, 0xef, 0x52, 0x3a, 0xd9, 0x1c, 0x55}: "PeiPolicyInit", efi.GUID{0x39, 0xe7, 0x65, 0x10, 0xc2, 0x23, 0x3f, 0x49, 0xb1, 0xad, 0xdc, 0x6d, 0x8d, 0xf7, 0x7c, 0xf4}: "HpGenSwSmi", efi.GUID{0x39, 0xe9, 0xb5, 0x60, 0xcf, 0x0f, 0x27, 0x42, 0xba, 0x83, 0x6b, 0xbe, 0xd4, 0x5b, 0xc0, 0xe3}: "EfiBootStateGuid", efi.GUID{0x39, 0xed, 0x34, 0xd4, 0xdd, 0x8e, 0xf8, 0x4f, 0x91, 0xbf, 0x4b, 0x11, 0xaf, 0xe8, 0x54, 0x71}: "SwapAddressRangeDxe", efi.GUID{0x39, 0xed, 0xd6, 0x30, 0xbd, 0x28, 0x0c, 0x4c, 0xa7, 0x99, 0x63, 0x05, 0xa4, 0xfe, 0x8a, 0x6a}: "WatchDogTableDxe", efi.GUID{0x3a, 0x01, 0xc9, 0x0f, 0x68, 0x05, 0xa9, 0x4b, 0x9b, 0x7e, 0xc9, 0xc3, 0x90, 0xa6, 0x60, 0x9b}: "EfiLegacyRegionProtocolGuid", efi.GUID{0x3a, 0x09, 0x6b, 0x34, 0x02, 0x90, 0x99, 0x4e, 0xa2, 0xf2, 0x27, 0xa1, 0x6c, 0x3d, 0xcd, 0x89}: "OemModifyOpRegion", efi.GUID{0x3a, 0x0c, 0x8a, 0x9b, 0x86, 0x51, 0x55, 0x4b, 0x89, 0xf4, 0xca, 0xfd, 0xe6, 0x13, 0xda, 0xb1}: "BootScriptHidePei", efi.GUID{0x3a, 0x0d, 0xc5, 0xf1, 0xe4, 0x58, 0x04, 0x41, 0x91, 0x76, 0x00, 0xcd, 0xf8, 0xbc, 0x4b, 0xb2}: "H2ODisplayEngineLocalTextDxe", efi.GUID{0x3a, 0x19, 0x7b, 0xc2, 0x76, 0xd0, 0xc6, 0x4a, 0x8d, 0xa1, 0x7a, 0xc6, 0x7b, 0x4a, 0xca, 0x06}: "ProjectPei", efi.GUID{0x3a, 0x1a, 0x7e, 0x8f, 0x57, 0x96, 0xf0, 0x44, 0xb9, 0xe6, 0x4e, 0xf7, 0x4b, 0x22, 0xd5, 0x43}: "EfiTraceHubDebugLibX64", efi.GUID{0x3a, 0x20, 0x0c, 0xba, 0x6b, 0x16, 0x93, 0x4b, 0x96, 0x36, 0x83, 0x27, 0xab, 0x2b, 0xf7, 0x1f}: "AmdErrorLogDisplayBrhDxe", efi.GUID{0x3a, 0x22, 0x96, 0xb7, 0x76, 0x37, 0x10, 0x40, 0xba, 0xbd, 0x7e, 0x13, 0x8f, 0x91, 0x67, 0xfc}: "PlatformSecureUpdatePei", efi.GUID{0x3a, 0x39, 0x51, 0x0e, 0x65, 0xe8, 0x3e, 0x4c, 0x8c, 0x5f, 0x44, 0x2f, 0xe0, 0x91, 0x46, 0xa5}: "DellSmmVariableProtocol", efi.GUID{0x3a, 0x3f, 0xc8, 0x74, 0xe3, 0x5e, 0xb7, 0x4e, 0xb9, 0x45, 0x70, 0x2b, 0x83, 0x9f, 0xb1, 0xa6}: "DxePlatform", efi.GUID{0x3a, 0x41, 0x15, 0xd8, 0x6d, 0xd9, 0xa6, 0x40, 0x9f, 0x9f, 0x88, 0xe0, 0x9e, 0x36, 0xfa, 0x49}: "PsdsAcpiDxe", efi.GUID{0x3a, 0x42, 0x48, 0x35, 0x2c, 0x2b, 0x93, 0x43, 0x98, 0x26, 0xb2, 0x02, 0x95, 0x9d, 0x23, 0x62}: "AbtCryptoDriver", efi.GUID{0x3a, 0x47, 0x4d, 0x19, 0xf6, 0x01, 0xae, 0x48, 0x94, 0x29, 0xfd, 0x39, 0x58, 0x13, 0xbe, 0x47}: "AdlinkNxpPei", efi.GUID{0x3a, 0x4b, 0x2b, 0xb7, 0xe2, 0x1b, 0xbb, 0x44, 0x9e, 0xdb, 0xb6, 0x21, 0x5f, 0x11, 0x36, 0x82}: "FjIfSecureBootAndRaid", efi.GUID{0x3a, 0x53, 0x6c, 0x16, 0x1e, 0x8f, 0x34, 0x4d, 0xa6, 0x0e, 0x0f, 0x68, 0xd8, 0xd6, 0x13, 0x08}: "OemKey", efi.GUID{0x3a, 0x56, 0x61, 0xb4, 0xa3, 0xcb, 0x96, 0x43, 0x90, 0x51, 0x7f, 0x8b, 0x10, 0x9f, 0x60, 0xc5}: "AsusDxeSmmNvram", efi.GUID{0x3a, 0x58, 0x20, 0x4d, 0x65, 0x77, 0x7a, 0x4e, 0x8a, 0x67, 0xdc, 0xde, 0x74, 0xee, 0x3e, 0xc5}: "HttpBootConfigGuid", efi.GUID{0x3a, 0x59, 0x69, 0x03, 0x9b, 0xba, 0x7d, 0x45, 0xb4, 0x6f, 0x31, 0xd8, 0x3a, 0x96, 0xd6, 0xfe}: "DehSmmProtocolVer3", efi.GUID{0x3a, 0x5a, 0x4d, 0x82, 0x92, 0xaf, 0x0c, 0x4c, 0x9f, 0x19, 0x19, 0x52, 0x6d, 0xca, 0x4a, 0xbb}: "FspmArchConfigPpi", efi.GUID{0x3a, 0x5e, 0xaf, 0x3e, 0xb2, 0xe4, 0xe6, 0x48, 0xa9, 0xf1, 0xb7, 0x5c, 0xf2, 0x04, 0xbc, 0xc8}: "PeiBoardConfigInit", efi.GUID{0x3a, 0x61, 0x6c, 0xdd, 0x77, 0x5a, 0x4f, 0x4b, 0xa6, 0x1e, 0x3b, 0xdd, 0x2a, 0xe2, 0x1d, 0x81}: "PerfTuneProtocol", efi.GUID{0x3a, 0x62, 0xdf, 0x0d, 0x60, 0x9f, 0xf2, 0x4a, 0xb5, 0xc7, 0xef, 0xe4, 0xa6, 0x37, 0x29, 0x0e}: "FjDtDiagnosticsDxe", efi.GUID{0x3a, 0x66, 0x0e, 0x3d, 0x72, 0xdc, 0x89, 0x44, 0x87, 0xc5, 0xe4, 0x9e, 0xe7, 0x73, 0xa4, 0x52}: "IffsPpi", efi.GUID{0x3a, 0x69, 0x99, 0x8a, 0x2d, 0xf4, 0x2b, 0x44, 0xb3, 0x69, 0xdd, 0xd6, 0x78, 0x0d, 0xa7, 0x10}: "PlatformHstiSetupDxe", efi.GUID{0x3a, 0x6a, 0x09, 0x40, 0x2a, 0x5c, 0xbc, 0x4f, 0xae, 0xf7, 0x54, 0x75, 0xdd, 0x7a, 0xb3, 0x34}: "BasePcdLibNull", efi.GUID{0x3a, 0x72, 0x1d, 0x02, 0x1c, 0x50, 0x1e, 0x4d, 0xb7, 0x92, 0x0d, 0x3c, 0x46, 0x51, 0xb8, 0x48}: "OemWwanSmm", efi.GUID{0x3a, 0x73, 0xad, 0x07, 0xdb, 0x0d, 0x44, 0x42, 0xbd, 0x82, 0x07, 0x1f, 0x39, 0xe2, 0xa4, 0x20}: "PlatformSmm", efi.GUID{0x3a, 0x74, 0xa9, 0x2e, 0xd9, 0x23, 0x5e, 0x42, 0x87, 0x2c, 0xf6, 0x15, 0xaa, 0x19, 0x57, 0x88}: "AppleRemovableMediaProtocol", efi.GUID{0x3a, 0x79, 0xca, 0x0d, 0x96, 0xea, 0xd8, 0x42, 0xbd, 0x7b, 0xdc, 0x7f, 0x68, 0x4e, 0x38, 0xc1}: "LegacyRomLayout", efi.GUID{0x3a, 0x89, 0xed, 0x76, 0xf9, 0xb2, 0x7d, 0x4c, 0xa0, 0x5f, 0x1e, 0xa1, 0x70, 0xec, 0xf6, 0xcd}: "IntelGraphicsPeim", efi.GUID{0x3a, 0x8d, 0xf9, 0x0e, 0x33, 0x3e, 0x7a, 0x49, 0xa4, 0x01, 0x77, 0xbe, 0x3e, 0xb7, 0x4f, 0x38}: "EfiAcpiS3ContextGuid", efi.GUID{0x3a, 0x93, 0x2d, 0xa6, 0x93, 0x92, 0x9f, 0x4d, 0x9a, 0x16, 0xce, 0x81, 0x99, 0x4c, 0xc4, 0xf2}: "AppleDebugSupport", efi.GUID{0x3a, 0x93, 0xd7, 0xfa, 0x21, 0x6c, 0x34, 0x42, 0xa4, 0x34, 0x0a, 0x8a, 0x0d, 0x2b, 0x07, 0x81}: "EfiIsaHcServiceBindingProtocolGuid", efi.GUID{0x3a, 0x96, 0xd2, 0x32, 0x5d, 0xfe, 0x30, 0x4f, 0xb6, 0x33, 0x6e, 0x5d, 0xc5, 0x58, 0x03, 0xcc}: "EfiUsbFunctionIoProtocolGuid", efi.GUID{0x3a, 0x98, 0x81, 0x95, 0x63, 0x36, 0xf0, 0x46, 0x83, 0xec, 0x8a, 0x05, 0x06, 0xeb, 0x63, 0xe7}: "BiosInfoChecker", efi.GUID{0x3a, 0x9d, 0xa3, 0xbd, 0x1b, 0x45, 0x50, 0x43, 0x82, 0x66, 0x81, 0xab, 0x10, 0xfa, 0x05, 0x23}: "PeiDxeDebugLibReportStatusCode", efi.GUID{0x3a, 0xa4, 0xc5, 0x90, 0x13, 0x85, 0x95, 0x46, 0xaf, 0x0b, 0xf4, 0xaa, 0x7f, 0xcf, 0xb8, 0x98}: "TouchPad_Sensel", efi.GUID{0x3a, 0xa6, 0x7a, 0x3a, 0xb9, 0x88, 0x0b, 0x41, 0x80, 0xc0, 0xc9, 0x7f, 0x14, 0x6b, 0x6d, 0xf8}: "FjUtilSmm", efi.GUID{0x3a, 0xaa, 0x33, 0x8d, 0x58, 0xac, 0x2d, 0x4c, 0x99, 0x66, 0xf1, 0x8a, 0xb8, 0xc1, 0x13, 0x93}: "LegacyUsbDxe", efi.GUID{0x3a, 0xb1, 0xca, 0x72, 0x3d, 0x8e, 0x49, 0x4c, 0x96, 0x7e, 0x48, 0x7a, 0x1c, 0x29, 0x1e, 0x51}: "DellTagsSmm", efi.GUID{0x3a, 0xb4, 0x71, 0xf7, 0xc2, 0xa5, 0xa8, 0x45, 0x82, 0x54, 0xcb, 0xc0, 0x82, 0x50, 0xda, 0x15}: "BoardInitDxe", efi.GUID{0x3a, 0xc0, 0x86, 0x7d, 0xf6, 0xb1, 0x0f, 0x4f, 0xab, 0x43, 0x81, 0xd9, 0x25, 0xf1, 0x94, 0x81}: "WarmResetFlagDxe", efi.GUID{0x3a, 0xc3, 0x24, 0x39, 0x5e, 0x12, 0xa8, 0x40, 0x84, 0x50, 0x38, 0xc6, 0x67, 0x1e, 0x02, 0x1d}: "AmdNbioPei", efi.GUID{0x3a, 0xc9, 0x0c, 0x91, 0xb7, 0xf2, 0x30, 0x46, 0x88, 0x4d, 0x62, 0x5d, 0x57, 0x0f, 0xac, 0xf6}: "IshCapsuleDxe", efi.GUID{0x3a, 0xce, 0xec, 0x77, 0x98, 0x73, 0x04, 0x4c, 0x98, 0x1d, 0xd7, 0x78, 0xe7, 0x93, 0xe0, 0xf9}: "TransferNvramPasswordToSmram", efi.GUID{0x3a, 0xcf, 0x2b, 0x3f, 0x76, 0x78, 0x5b, 0x47, 0xb9, 0x7d, 0xef, 0xae, 0x8b, 0xef, 0x75, 0xfc}: "AmdNbioGfxRNPei", efi.GUID{0x3a, 0xd9, 0x1b, 0x50, 0xa9, 0xf1, 0x4c, 0x4f, 0xa9, 0x46, 0x78, 0x67, 0xdf, 0x97, 0x55, 0x37}: "LenovoEn25Qh64FlashPartSmm", efi.GUID{0x3a, 0xda, 0x96, 0xb3, 0xb2, 0x52, 0xd6, 0x4c, 0xa8, 0x9a, 0x13, 0xe7, 0xc4, 0xae, 0x97, 0x90}: "AmiTcgStorageSecurityProtocol", efi.GUID{0x3a, 0xe2, 0x9f, 0x51, 0x3d, 0x7c, 0xa9, 0x40, 0x9f, 0x65, 0xb9, 0x11, 0xea, 0x19, 0x30, 0xe1}: "HpLegacyFlashWrapper", efi.GUID{0x3a, 0xea, 0x0c, 0x96, 0xe6, 0x20, 0x33, 0x4d, 0xaa, 0xad, 0xc9, 0xbd, 0x3c, 0xa5, 0x96, 0x1d}: "TmeInitDxe", efi.GUID{0x3a, 0xee, 0x7f, 0xf6, 0xe2, 0xdb, 0x28, 0x42, 0x97, 0x32, 0xb4, 0xdd, 0x1e, 0x5f, 0xf6, 0xaf}: "BoardInfoSmmProtocol", efi.GUID{0x3a, 0xf4, 0xce, 0x22, 0x2b, 0xed, 0x95, 0x47, 0xaf, 0x0d, 0x91, 0x8f, 0xf8, 0x5b, 0x35, 0x73}: "ServiceBodyDxe", efi.GUID{0x3a, 0xf5, 0xc0, 0x1e, 0xe0, 0xfd, 0x76, 0x45, 0x8f, 0x25, 0x7a, 0x1a, 0x41, 0x0f, 0x58, 0xeb}: "StatusCodePei", efi.GUID{0x3b, 0x02, 0x39, 0x48, 0x12, 0x4c, 0xb2, 0x4e, 0xb2, 0xb8, 0xc9, 0x1b, 0x42, 0xd8, 0x78, 0xa0}: "IsctAcpi", efi.GUID{0x3b, 0x06, 0x09, 0xb7, 0xf0, 0xa0, 0x07, 0x4f, 0xa2, 0x70, 0x87, 0xb5, 0xe9, 0x45, 0x29, 0x81}: "SmbSwitchPei", efi.GUID{0x3b, 0x09, 0xa2, 0xa8, 0xfa, 0xfe, 0xc1, 0x43, 0x8e, 0x62, 0xce, 0x52, 0x68, 0x47, 0x26, 0x5e}: "AmitcEfiOsVariableGuid", efi.GUID{0x3b, 0x1f, 0x02, 0xa8, 0x49, 0xb6, 0x18, 0x4c, 0x82, 0x70, 0xa7, 0x96, 0xac, 0xcf, 0x32, 0xe1}: "EfiEmmcWpHobGuid", efi.GUID{0x3b, 0x20, 0x08, 0x87, 0x48, 0x89, 0x51, 0x4e, 0xbe, 0xe7, 0x8c, 0x1b, 0x56, 0xee, 0xc9, 0xcd}: "FjPvCredentialProviderDxe", efi.GUID{0x3b, 0x20, 0xc0, 0x94, 0xc9, 0x54, 0x6e, 0x41, 0xa6, 0xe0, 0x47, 0xe8, 0xd4, 0x78, 0x69, 0x01}: "EfiPeiPlatformTypeLightningRidgeExecB3Ppi", efi.GUID{0x3b, 0x21, 0x35, 0xd6, 0x34, 0x53, 0xb3, 0x46, 0xae, 0x37, 0x8d, 0x43, 0x6d, 0xd3, 0xd5, 0x23}: "OemNvme", efi.GUID{0x3b, 0x27, 0x0c, 0x93, 0x75, 0xa8, 0x13, 0x47, 0x93, 0x73, 0xf1, 0x2e, 0x84, 0x83, 0xe1, 0x25}: "IntelGigabitLan_I210", efi.GUID{0x3b, 0x28, 0x89, 0xb5, 0x57, 0x0c, 0x00, 0x46, 0x9a, 0xc8, 0x49, 0x3f, 0x5a, 0xb9, 0xd3, 0x33}: "DataAccessHandler", efi.GUID{0x3b, 0x2f, 0xee, 0xca, 0x91, 0x31, 0xa0, 0x4d, 0xad, 0x10, 0xa5, 0xc0, 0x7e, 0x63, 0x6c, 0xd1}: "LibString", efi.GUID{0x3b, 0x32, 0x84, 0xa4, 0x47, 0xff, 0x2a, 0x42, 0xad, 0xab, 0x8d, 0x1e, 0x1b, 0xc1, 0x38, 0x60}: "HpS3ConfigDxe", efi.GUID{0x3b, 0x36, 0xaf, 0x15, 0x41, 0x7c, 0x1a, 0x4d, 0x80, 0x0d, 0x8b, 0xce, 0xe4, 0x73, 0xff, 0x3b}: "AdlMiscellaneous", efi.GUID{0x3b, 0x50, 0xaf, 0xd1, 0xb9, 0x68, 0xc9, 0x4f, 0xae, 0x87, 0xdf, 0xb7, 0x2f, 0x21, 0xb3, 0xf1}: "DellFmpMe", efi.GUID{0x3b, 0x58, 0x6e, 0x39, 0xdd, 0xd2, 0xf6, 0x45, 0x86, 0xe8, 0x11, 0x98, 0x85, 0x77, 0x7c, 0xde}: "AtaLegacySmm", efi.GUID{0x3b, 0x5d, 0x45, 0x9f, 0x8a, 0x2b, 0x06, 0x4c, 0x96, 0x0b, 0xa7, 0x1b, 0x97, 0x14, 0xb9, 0xcd}: "StatusCodeDxe", efi.GUID{0x3b, 0x68, 0x8f, 0x8b, 0x76, 0xf3, 0xa0, 0x4b, 0xb8, 0xd7, 0xb4, 0xbb, 0xd3, 0x03, 0x19, 0xcc}: "AtSha204aDxe", efi.GUID{0x3b, 0x68, 0xeb, 0x22, 0xd2, 0x1a, 0xe9, 0x4b, 0xae, 0x1c, 0xc4, 0xf1, 0xf2, 0x81, 0xbd, 0xf7}: "PoweronFromKeyboardPortDxe", efi.GUID{0x3b, 0x6a, 0x24, 0x65, 0xef, 0x33, 0x7e, 0x4f, 0xb6, 0x57, 0xa4, 0xa6, 0x33, 0xf1, 0x30, 0xb0}: "LenovoSystemVariableSmm", efi.GUID{0x3b, 0x6b, 0x27, 0x97, 0xd1, 0x9f, 0xc0, 0x4a, 0xb8, 0xc1, 0xd3, 0x46, 0xdb, 0x41, 0x46, 0xf5}: "DefaultsManagerWmi", efi.GUID{0x3b, 0x6f, 0xb4, 0xd3, 0x41, 0xd4, 0x44, 0x12, 0x9a, 0x12, 0x00, 0x12, 0x27, 0x3f, 0xc1, 0x4d}: "EfiXenInfoGuid", efi.GUID{0x3b, 0x71, 0xf9, 0xb3, 0xcc, 0x70, 0xe9, 0x43, 0xbc, 0x34, 0xd9, 0x60, 0xc6, 0xf4, 0xac, 0xc9}: "FchKeithDsdt", efi.GUID{0x3b, 0x96, 0x65, 0x05, 0xfd, 0x3d, 0x12, 0x47, 0x9c, 0xfd, 0x61, 0x4c, 0x5e, 0xdb, 0xe5, 0x92}: "MsiBoardPei", efi.GUID{0x3b, 0xa4, 0x67, 0xbb, 0xae, 0xc7, 0x99, 0x42, 0xa2, 0x75, 0x75, 0x26, 0xdc, 0x69, 0x77, 0x35}: "PlatformStatusCodeHandlerPei2", efi.GUID{0x3b, 0xab, 0xee, 0x00, 0x19, 0x47, 0x2d, 0x43, 0xa2, 0xdc, 0xc9, 0x7a, 0x2c, 0x62, 0xbf, 0xdd}: "DellPermDevConfigPei", efi.GUID{0x3b, 0xb3, 0xd5, 0xc5, 0x59, 0x37, 0xd1, 0x4c, 0x95, 0x5f, 0x0d, 0x1e, 0x77, 0x19, 0xe4, 0x9e}: "MFGRTC", efi.GUID{0x3b, 0xc4, 0x26, 0x57, 0xe0, 0xc1, 0x35, 0x47, 0x80, 0x49, 0x51, 0x10, 0xed, 0xf2, 0x85, 0x1c}: "AmdSocFp8PhxPei", efi.GUID{0x3b, 0xc6, 0xf2, 0x08, 0xde, 0x08, 0xcd, 0x4c, 0x86, 0x70, 0xac, 0xfe, 0x64, 0x4a, 0x1c, 0x48}: "PchS3Support", efi.GUID{0x3b, 0xc7, 0x2e, 0x13, 0x25, 0x30, 0xbf, 0x4f, 0xb1, 0x93, 0x8a, 0xcb, 0x50, 0xef, 0xbd, 0x89}: "QFlash", efi.GUID{0x3b, 0xc7, 0x2e, 0x13, 0x26, 0xbd, 0xbf, 0x4f, 0xb1, 0x93, 0x8a, 0xcb, 0x50, 0xef, 0xbd, 0x89}: "UserDefSetupDxe", efi.GUID{0x3b, 0xd5, 0x17, 0x63, 0x71, 0x07, 0xb9, 0x42, 0xb6, 0xa8, 0xd0, 0x6f, 0xdc, 0x2d, 0xae, 0x96}: "FjWirelessLanSmm", efi.GUID{0x3b, 0xe9, 0x06, 0x69, 0x3b, 0x60, 0x0f, 0x4a, 0x86, 0x92, 0x83, 0x20, 0x04, 0xaa, 0xf2, 0xdb}: "PchSmmPeriodicTimerControl", efi.GUID{0x3b, 0xf1, 0xd4, 0x0a, 0x97, 0xd1, 0xec, 0x44, 0xff, 0xff, 0xff, 0xff, 0x62, 0xc8, 0xc6, 0x89}: "XnoteVariableDxe", efi.GUID{0x3b, 0xfc, 0x68, 0x38, 0x45, 0x7e, 0xa7, 0x43, 0x90, 0x6c, 0x4b, 0xa4, 0x7d, 0xe1, 0x75, 0x4d}: "EfiSmmFaultTolerantWriteProtocolGuid", efi.GUID{0x3c, 0x02, 0xe3, 0x43, 0xdc, 0x13, 0xa6, 0x4b, 0x99, 0xcb, 0xaf, 0x6f, 0x9e, 0xcf, 0x8b, 0x73}: "H19DeviceFwUpdateHook", efi.GUID{0x3c, 0x19, 0x7d, 0x3c, 0x2c, 0x68, 0x14, 0x4c, 0xa6, 0x8f, 0x55, 0x2d, 0xea, 0x4f, 0x43, 0x7e}: "PcdDataBaseSignatureGuid", efi.GUID{0x3c, 0x1c, 0x8a, 0xe3, 0x8c, 0x92, 0xf7, 0x4b, 0xb6, 0xc1, 0x7f, 0x0e, 0xf1, 0x63, 0xfa, 0xa5}: "FlashDeviceLibRuntimeSmm", efi.GUID{0x3c, 0x1f, 0xb1, 0xc7, 0xe9, 0x89, 0x5f, 0x44, 0xa9, 0x72, 0x67, 0x1b, 0x8b, 0x17, 0x58, 0x0d}: "DellSmbStrucB2Config", efi.GUID{0x3c, 0x20, 0xb0, 0xce, 0x91, 0xde, 0xce, 0x4e, 0xa9, 0x5f, 0x02, 0x17, 0xe9, 0x59, 0xe1, 0x91}: "SystemSecureFlashAuthenticationDxe", efi.GUID{0x3c, 0x26, 0xa8, 0x0b, 0xbd, 0xa8, 0xad, 0x4a, 0xb4, 0x02, 0x6a, 0x6a, 0xf2, 0xf7, 0xe7, 0x7d}: "BlockDeviceCapsuleGuid", efi.GUID{0x3c, 0x27, 0x34, 0xa1, 0x29, 0x04, 0x93, 0x4b, 0xa3, 0x0c, 0x30, 0x5d, 0x5e, 0xc2, 0x2d, 0xb5}: "KEMhGpioAccDxe", efi.GUID{0x3c, 0x29, 0x81, 0x63, 0xfe, 0x7a, 0xd9, 0x49, 0xaf, 0xfa, 0x4b, 0x8f, 0x87, 0x9a, 0x9b, 0xcc}: "DellAutoRtcResetPei", efi.GUID{0x3c, 0x2a, 0x70, 0xa2, 0xfd, 0x62, 0x2d, 0x40, 0xb8, 0xc3, 0x1d, 0x18, 0xf6, 0xc6, 0xfd, 0xe5}: "AodSetupDxe", efi.GUID{0x3c, 0x2c, 0xa0, 0x1d, 0xe5, 0x62, 0x8b, 0x43, 0xb0, 0xdb, 0x9e, 0x51, 0x28, 0x37, 0x96, 0x61}: "EarlySmmDevices", efi.GUID{0x3c, 0x2c, 0xa0, 0x3d, 0xe5, 0x62, 0x8b, 0x43, 0xb0, 0xdb, 0x9e, 0x51, 0x28, 0x37, 0x96, 0x61}: "EarlyDxeDevices", efi.GUID{0x3c, 0x2f, 0x1b, 0x0e, 0x5f, 0xdd, 0xce, 0x44, 0x8d, 0x37, 0x5a, 0xec, 0x2b, 0x33, 0x9b, 0x5c}: "BiosConnectSOSLauncher", efi.GUID{0x3c, 0x42, 0x19, 0xa2, 0xfe, 0x92, 0xae, 0x41, 0x96, 0x5c, 0x2e, 0xff, 0xc6, 0x01, 0x86, 0x70}: "PdSolutionSmm", efi.GUID{0x3c, 0x42, 0xec, 0xb6, 0xd2, 0x21, 0x0d, 0x49, 0x85, 0xc6, 0xdd, 0x58, 0x64, 0xea, 0xa6, 0x74}: "PeiBaseMemoryTestPpiGuid", efi.GUID{0x3c, 0x44, 0x22, 0xe6, 0x4e, 0x28, 0x47, 0x4b, 0xa9, 0x84, 0xfd, 0x66, 0xb4, 0x82, 0xda, 0xc0}: "BootManagerPolicyDxe", efi.GUID{0x3c, 0x5d, 0x62, 0xb1, 0x2d, 0x9d, 0x0d, 0x4e, 0xb8, 0x64, 0x8a, 0x76, 0x3e, 0xe4, 0xec, 0x50}: "TcpDxe", efi.GUID{0x3c, 0x65, 0xb6, 0xeb, 0x82, 0xd1, 0x9b, 0x4e, 0xbc, 0x73, 0x94, 0x7a, 0x29, 0x1f, 0x77, 0x40}: "AdvBootIhisiSmm", efi.GUID{0x3c, 0x66, 0xc2, 0xb8, 0xfd, 0xf9, 0x2a, 0x45, 0xab, 0xd8, 0x20, 0x55, 0x6f, 0xe2, 0xae, 0x65}: "BiosAuditLogHandlerPei", efi.GUID{0x3c, 0x67, 0x16, 0xc5, 0x71, 0x6c, 0x0e, 0x4f, 0x83, 0xb5, 0x57, 0xfc, 0x66, 0x23, 0x76, 0xec}: "LibPosix", efi.GUID{0x3c, 0x68, 0xab, 0xce, 0x56, 0xec, 0x2d, 0x4a, 0xa9, 0x06, 0x40, 0x53, 0xfa, 0x4e, 0x9c, 0x16}: "EfiTemporaryRamDonePpiGuid", efi.GUID{0x3c, 0x70, 0x10, 0xf1, 0x16, 0x9d, 0xca, 0x40, 0x25, 0x0a, 0x27, 0x00, 0xca, 0x53, 0x4f, 0x87}: "DellMfgBootListConfigSmm", efi.GUID{0x3c, 0x73, 0xe2, 0xfc, 0x04, 0x88, 0x93, 0x42, 0xac, 0x52, 0x56, 0x2d, 0x2d, 0x72, 0x9d, 0x2a}: "AmiSetupFormSetVar", efi.GUID{0x3c, 0x80, 0xff, 0xe5, 0x51, 0xde, 0xc7, 0x4c, 0xa8, 0xdb, 0x39, 0x54, 0x98, 0x15, 0xa8, 0x86}: "DellUsbMassStorageDxe", efi.GUID{0x3c, 0x88, 0x62, 0x99, 0x25, 0xc0, 0xbb, 0x4e, 0xb6, 0x99, 0x4e, 0xa4, 0xd1, 0x47, 0xc8, 0xa8}: "AmiTxtTcgPeim", efi.GUID{0x3c, 0x94, 0x8d, 0xde, 0x7e, 0x18, 0xc3, 0x42, 0x98, 0xd1, 0x1f, 0x75, 0x84, 0xdf, 0x6a, 0xbd}: "LfcGr2BoardType", efi.GUID{0x3c, 0xab, 0x82, 0x2c, 0x34, 0xa7, 0x7e, 0x4c, 0xa7, 0x90, 0xf3, 0x79, 0xbb, 0xf8, 0x8f, 0x9b}: "PlatformMilestoneHookSmm", efi.GUID{0x3c, 0xab, 0xea, 0xa3, 0x3a, 0xba, 0x24, 0x45, 0x9d, 0xc7, 0x7e, 0x33, 0x99, 0x96, 0xf4, 0x96}: "ASUSRT", efi.GUID{0x3c, 0xb0, 0xcb, 0xbd, 0x5e, 0x54, 0xc1, 0x43, 0x8a, 0xa8, 0xf0, 0x58, 0xc4, 0xfa, 0x81, 0xa8}: "DxeGpioControl", efi.GUID{0x3c, 0xb7, 0xad, 0x82, 0x05, 0xe0, 0x07, 0x4e, 0x97, 0x6d, 0xf7, 0xf7, 0x53, 0x14, 0xec, 0x4f}: "FchSmmDispatcher", efi.GUID{0x3c, 0xba, 0xbe, 0xfd, 0xc5, 0xb4, 0x76, 0x4f, 0xb8, 0x0a, 0x3d, 0x1f, 0x8d, 0xa6, 0x29, 0x73}: "DellFlashPowerConfigSmm", efi.GUID{0x3c, 0xd1, 0x0a, 0x5e, 0x4b, 0x01, 0x21, 0x49, 0x99, 0x66, 0xac, 0xde, 0xb0, 0x4f, 0x3c, 0xc7}: "RemapIommuPei", efi.GUID{0x3c, 0xd1, 0x1c, 0xec, 0x56, 0x56, 0x2b, 0x4d, 0x85, 0x32, 0x97, 0x4c, 0xc0, 0x30, 0xef, 0x1b}: "BiosGuardUpdateProtectRegion", efi.GUID{0x3c, 0xe3, 0x99, 0x0f, 0x0c, 0xca, 0xa2, 0x4a, 0x88, 0x7d, 0xb5, 0x7e, 0xc9, 0x05, 0x02, 0x78}: "SaveMemoryConfig", efi.GUID{0x3c, 0xec, 0xcb, 0x74, 0x90, 0x81, 0xa0, 0x42, 0x9c, 0x02, 0xd1, 0xc5, 0xad, 0xc7, 0x06, 0xd7}: "AppleAirport", efi.GUID{0x3c, 0xee, 0x79, 0xb0, 0xa6, 0x37, 0xe6, 0x47, 0xbf, 0x8a, 0x94, 0xa7, 0xe8, 0x5c, 0x41, 0xae}: "MFTSmm", efi.GUID{0x3d, 0x03, 0xc6, 0x92, 0x85, 0xa6, 0x41, 0xbb, 0xaa, 0x2f, 0x6f, 0x6e, 0x2c, 0xd3, 0x74, 0xa2}: "AppleSmbios", efi.GUID{0x3d, 0x07, 0x42, 0x98, 0xd9, 0x95, 0x49, 0x9f, 0xbd, 0x3f, 0x2e, 0x29, 0x52, 0x51, 0x25, 0xdf}: "EmuBusDriver", efi.GUID{0x3d, 0x0e, 0x82, 0x7c, 0xf7, 0xc3, 0xc1, 0x42, 0xa0, 0x22, 0x7f, 0xe4, 0x34, 0xa8, 0x7d, 0xfb}: "FvNetworkDxe", efi.GUID{0x3d, 0x0f, 0x89, 0x83, 0x47, 0xb7, 0x4d, 0x4f, 0x8c, 0x21, 0x12, 0x90, 0x87, 0x59, 0xa5, 0x3f}: "HstiIhvProviderDxeEGS", efi.GUID{0x3d, 0x17, 0x88, 0x69, 0xc9, 0xb7, 0xbe, 0x47, 0xbd, 0xdf, 0x25, 0x5a, 0x18, 0x67, 0x69, 0x13}: "UefiDriverPolicyDXE", efi.GUID{0x3d, 0x1a, 0x75, 0x96, 0xf4, 0x72, 0xa6, 0x41, 0xa7, 0x94, 0xed, 0x5d, 0x0e, 0x67, 0xae, 0x6b}: "EfiCcMeasurementProtocol", efi.GUID{0x3d, 0x1c, 0x9c, 0x2f, 0xaa, 0x28, 0x9f, 0x46, 0x85, 0xc0, 0x19, 0x3d, 0xb9, 0xd5, 0x06, 0x78}: "DeferredPsbFuseDxe", efi.GUID{0x3d, 0x1e, 0x9a, 0xdb, 0xcb, 0x45, 0xbb, 0x4a, 0x85, 0x3b, 0xe5, 0x38, 0x7f, 0xdb, 0x2e, 0x2d}: "EfiLegacyBiosProtocolGuid", efi.GUID{0x3d, 0x21, 0x61, 0x52, 0x3d, 0x3a, 0x1e, 0x44, 0xb3, 0xaf, 0x21, 0xd3, 0xf7, 0xa4, 0xca, 0x17}: "EfiScsiBusProtocol", efi.GUID{0x3d, 0x26, 0xff, 0xfd, 0x68, 0x5f, 0x91, 0x45, 0x87, 0xba, 0xb7, 0x68, 0xf4, 0x45, 0xa9, 0xaf}: "Tcg2Dxe", efi.GUID{0x3d, 0x35, 0x35, 0xb8, 0x49, 0x40, 0x0b, 0x41, 0x8f, 0x18, 0x4c, 0x74, 0x9c, 0x4c, 0x7a, 0x78}: "DxeSleepEvent", efi.GUID{0x3d, 0x54, 0xe4, 0xf3, 0x35, 0xcf, 0xef, 0x6c, 0x35, 0xc4, 0x4f, 0xe6, 0x34, 0x4d, 0xfc, 0x54}: "EfiFormCallbackProtocolGuid", efi.GUID{0x3d, 0x55, 0x4d, 0xce, 0xf4, 0x7f, 0x27, 0x45, 0xa3, 0x8c, 0x04, 0x11, 0x13, 0x8d, 0x7b, 0x97}: "FjUsbTypecPwrLimitCtrlSx", efi.GUID{0x3d, 0x58, 0xd6, 0xfe, 0x18, 0x24, 0x60, 0x47, 0xac, 0x96, 0xb5, 0xe1, 0x8f, 0x0a, 0x63, 0x26}: "SmmCorePlatformHookLibNull", efi.GUID{0x3d, 0x59, 0xce, 0x31, 0x8a, 0x10, 0x5d, 0x48, 0xad, 0xb2, 0x78, 0xf2, 0x1f, 0x29, 0x66, 0xbe}: "EfiLegacyInterruptProtocolGuid", efi.GUID{0x3d, 0x5a, 0x94, 0x84, 0xc8, 0x49, 0x59, 0x40, 0x8f, 0x34, 0x6a, 0x45, 0x32, 0xd3, 0x2a, 0x47}: "VariableEditSmm", efi.GUID{0x3d, 0x63, 0x12, 0x71, 0x0a, 0x59, 0x4e, 0x43, 0x8f, 0x99, 0x80, 0xeb, 0xae, 0xe1, 0x31, 0x70}: "LenovoVariableChkDxe", efi.GUID{0x3d, 0x64, 0x94, 0xf8, 0x49, 0xc4, 0xd1, 0x42, 0x8e, 0xa8, 0x85, 0xbd, 0xd8, 0xc6, 0x5b, 0xde}: "EfiPeiMemoryDiscoveredPpiGuid", efi.GUID{0x3d, 0x66, 0x3d, 0xa7, 0x91, 0xa4, 0x78, 0x42, 0x9a, 0x69, 0x95, 0x21, 0xbe, 0x33, 0x79, 0xf2}: "ArmVeTimerDxe", efi.GUID{0x3d, 0x67, 0xbb, 0x42, 0xf3, 0x09, 0x2e, 0x4e, 0x9f, 0xee, 0xd0, 0x81, 0x13, 0x1d, 0xed, 0x5b}: "BootScriptSaveDxe", efi.GUID{0x3d, 0x6c, 0x78, 0x7f, 0x86, 0xc5, 0xbe, 0x48, 0xbb, 0xbe, 0x1d, 0x82, 0x73, 0x48, 0x1c, 0x00}: "AsmUsb4InitPei", efi.GUID{0x3d, 0x72, 0x12, 0x38, 0x48, 0x7e, 0x29, 0x4e, 0xbc, 0x27, 0xf5, 0xa3, 0x9a, 0xc9, 0x4e, 0xf1}: "ItkDataVarGuid", efi.GUID{0x3d, 0x82, 0xf0, 0xcd, 0x05, 0x0d, 0xf2, 0x40, 0xa4, 0x24, 0x97, 0x8b, 0xcd, 0x27, 0x01, 0x56}: "FlexIoPortConfigDxe", efi.GUID{0x3d, 0x90, 0x25, 0x19, 0xaa, 0x3f, 0x91, 0x4a, 0xa2, 0x57, 0x44, 0x8f, 0x45, 0x13, 0xb3, 0x09}: "AmdNbioPciePei", efi.GUID{0x3d, 0x93, 0x05, 0x1f, 0x2e, 0xff, 0x36, 0x42, 0xbe, 0x92, 0x56, 0x68, 0x2d, 0x3e, 0x8f, 0xb4}: "FdCapsule", efi.GUID{0x3d, 0x9f, 0x60, 0x31, 0x94, 0x4c, 0xf0, 0x4f, 0xb7, 0xe4, 0x5b, 0x6c, 0xa2, 0x30, 0x2d, 0xb3}: "GlobalAcpiNvs", efi.GUID{0x3d, 0xa9, 0x36, 0x23, 0xd7, 0x08, 0xc5, 0x41, 0xaf, 0xc1, 0xcd, 0xb6, 0x0c, 0x94, 0xcd, 0xa4}: "CaseOpenPei", efi.GUID{0x3d, 0xa9, 0x95, 0x0c, 0x06, 0xa0, 0xd4, 0x11, 0xbc, 0xfa, 0x00, 0x80, 0xc7, 0x3c, 0x88, 0x81}: "EfiWinNtSerialPortGuid", efi.GUID{0x3d, 0xaa, 0xe5, 0xf9, 0x61, 0x9d, 0xc6, 0x48, 0x83, 0x48, 0x24, 0xda, 0x25, 0x92, 0x42, 0x11}: "EmulatedEepromPei", efi.GUID{0x3d, 0xac, 0x1c, 0x1e, 0x60, 0x84, 0xda, 0x4e, 0x97, 0x91, 0x6d, 0x1b, 0x2d, 0xa7, 0x5e, 0x21}: "NvmeSmartFeature", efi.GUID{0x3d, 0xad, 0x95, 0xac, 0x66, 0x43, 0xbf, 0x44, 0x9a, 0x62, 0xe4, 0xb2, 0x9d, 0x7a, 0x22, 0x06}: "SmmAccess2Dxe", efi.GUID{0x3d, 0xb8, 0x6b, 0x2d, 0xa2, 0x84, 0x4a, 0x40, 0xb4, 0xca, 0x3e, 0x7a, 0xc0, 0xef, 0xb3, 0xd2}: "BootOptionPolicyDxe", efi.GUID{0x3d, 0xb9, 0x8f, 0x8e, 0x87, 0x6f, 0xf8, 0x4c, 0x9a, 0x9e, 0xdf, 0x5b, 0x89, 0x8d, 0x22, 0x3a}: "MaintenanceLed", efi.GUID{0x3d, 0xca, 0x6a, 0x34, 0xaf, 0x86, 0x4e, 0x44, 0xbc, 0xb8, 0xc5, 0x6e, 0x65, 0x38, 0xbd, 0xe3}: "AmdCpmLpcUartPeim", efi.GUID{0x3d, 0xcb, 0xb9, 0x5c, 0xa4, 0x31, 0x0c, 0x48, 0x94, 0x98, 0x29, 0xd2, 0x69, 0xba, 0xcf, 0xba}: "EdkiiPeiMpServices2Ppi", efi.GUID{0x3d, 0xce, 0xc5, 0xf6, 0x68, 0x26, 0x2a, 0x40, 0x95, 0x2e, 0x27, 0x07, 0x86, 0x15, 0x0d, 0xfb}: "SwSmi534D3220", efi.GUID{0x3d, 0xd1, 0x08, 0xdc, 0x1a, 0xec, 0x58, 0x44, 0xb3, 0x7a, 0xc5, 0x01, 0x18, 0xd7, 0xac, 0x48}: "SetupAutomationSmm", efi.GUID{0x3d, 0xd1, 0xde, 0x80, 0x21, 0xb8, 0x24, 0x48, 0xa0, 0xdd, 0x52, 0xca, 0x96, 0x8c, 0x3a, 0x04}: "AmdCpmOemGpioDxe", efi.GUID{0x3d, 0xd6, 0x66, 0xa1, 0x15, 0x38, 0xa2, 0x4f, 0xba, 0xb6, 0x55, 0x5d, 0x96, 0xba, 0x51, 0x6f}: "FjMemoryInfo2", efi.GUID{0x3d, 0xe1, 0xbc, 0xab, 0x5a, 0xe2, 0x9f, 0x4d, 0xa1, 0xf9, 0x2f, 0x77, 0x10, 0x78, 0x68, 0x92}: "Platform", efi.GUID{0x3d, 0xe3, 0x30, 0x1e, 0x54, 0x18, 0x7a, 0x43, 0xbd, 0x68, 0xfc, 0x15, 0x53, 0xaa, 0x8b, 0xe4}: "CseEmmcSelectPpiGuid", efi.GUID{0x3d, 0xe4, 0x7c, 0x5f, 0x5a, 0x56, 0x20, 0x44, 0xb4, 0xf8, 0x22, 0xec, 0xa7, 0x24, 0x57, 0x55}: "AmiDbrFileGuid", efi.GUID{0x3d, 0xe5, 0x1b, 0x23, 0xe3, 0xb6, 0xd8, 0x44, 0xa8, 0xd5, 0xe0, 0x56, 0x6e, 0x55, 0x66, 0x3d}: "EsrtOverrideDxe", efi.GUID{0x3d, 0xe7, 0xbc, 0xa2, 0x22, 0x5b, 0xc7, 0x4f, 0x80, 0xf5, 0xf1, 0xa9, 0xd2, 0x6e, 0xd7, 0x58}: "WheaErrorInj2", efi.GUID{0x3d, 0xed, 0x17, 0x7b, 0x92, 0x38, 0xb4, 0x43, 0xb5, 0xe5, 0xdf, 0x80, 0x2b, 0x4f, 0x48, 0x55}: "SureStartPoliciesSmm", efi.GUID{0x3d, 0xf9, 0x80, 0xd0, 0xe8, 0xc0, 0xd6, 0x47, 0x92, 0x01, 0x6b, 0x0e, 0xf6, 0xe2, 0x8e, 0x1a}: "RfTrustedModules", efi.GUID{0x3e, 0x26, 0x23, 0x72, 0x5d, 0x03, 0x95, 0x44, 0x81, 0xae, 0x7d, 0xde, 0xbc, 0xd8, 0x61, 0x6f}: "SystemAudioDeviceSmm", efi.GUID{0x3e, 0x32, 0x0b, 0xc5, 0x75, 0x90, 0x2a, 0x4f, 0xac, 0x8e, 0xd2, 0x59, 0x6a, 0x10, 0x85, 0xcc}: "EfiSmmIchnDispatchProtocolGuid", efi.GUID{0x3e, 0x33, 0xa1, 0xe5, 0xb4, 0xe1, 0x55, 0x4d, 0xce, 0xeb, 0x35, 0xc3, 0xef, 0x13, 0x34, 0x43}: "EfiFormBrowserProtocolGuid", efi.GUID{0x3e, 0x3b, 0x8a, 0x2e, 0x6c, 0xf2, 0xea, 0x11, 0xbd, 0xe5, 0x67, 0x26, 0xad, 0x8f, 0x88, 0xbd}: "BootProgressPeim", efi.GUID{0x3e, 0x50, 0x05, 0xf6, 0x70, 0x98, 0xa5, 0x4d, 0xbe, 0x65, 0xcc, 0xaa, 0x85, 0x00, 0x4e, 0xe2}: "MemoryDeviceInfoDxe", efi.GUID{0x3e, 0x58, 0x2a, 0x47, 0xcf, 0x70, 0x5a, 0x46, 0xbb, 0x77, 0x53, 0xad, 0xfc, 0xdb, 0x58, 0x83}: "OCMR_DXE", efi.GUID{0x3e, 0x59, 0xdd, 0x8c, 0xcd, 0x43, 0xfd, 0x47, 0x83, 0x7d, 0x2e, 0x2d, 0xd1, 0xc2, 0xb7, 0x8c}: "SetupConfigUpdateDxeGnrwsCRB", efi.GUID{0x3e, 0x5a, 0x95, 0x7f, 0xb5, 0xaf, 0x22, 0x41, 0xb9, 0x25, 0x4b, 0x11, 0x71, 0xf6, 0x93, 0xf5}: "AmiBlockIoWriteProtectionProtocolGuid", efi.GUID{0x3e, 0x6c, 0x69, 0x7e, 0x5d, 0x5c, 0x64, 0x4a, 0x96, 0x50, 0xe7, 0x92, 0xfa, 0xd2, 0x41, 0x28}: "AdlDriverSmm", efi.GUID{0x3e, 0x6e, 0x0c, 0x7e, 0x0f, 0xc8, 0xd1, 0x47, 0x8a, 0xda, 0x55, 0x49, 0x26, 0xb2, 0xb6, 0xb3}: "GenericMemoryTestDxe", efi.GUID{0x3e, 0x6e, 0x28, 0x3f, 0xea, 0x16, 0x5e, 0x4e, 0xa2, 0xad, 0x63, 0x64, 0x4f, 0x1a, 0xc3, 0xc7}: "PeiConsoleOutConsplitter", efi.GUID{0x3e, 0x74, 0x62, 0xd3, 0x68, 0xcd, 0x00, 0x45, 0xaa, 0x93, 0xc5, 0x96, 0x38, 0x3a, 0xe3, 0x1b}: "FjPasswordCtrlPei", efi.GUID{0x3e, 0x77, 0xf7, 0x25, 0x85, 0x74, 0xc1, 0x49, 0x94, 0x2f, 0x74, 0x47, 0xcc, 0xc1, 0x07, 0x36}: "IioDmiSmmGnrWs", efi.GUID{0x3e, 0x79, 0xab, 0xb8, 0xa7, 0x27, 0x07, 0x41, 0x90, 0x7f, 0x3f, 0xf4, 0x32, 0x0d, 0x7f, 0x15}: "FchKunlunSmmInit", efi.GUID{0x3e, 0x7f, 0x10, 0x70, 0x8f, 0xad, 0x2c, 0x44, 0xa3, 0x11, 0x74, 0x95, 0x09, 0x7f, 0x35, 0xf8}: "CountrySupport", efi.GUID{0x3e, 0x84, 0x6a, 0x5f, 0x88, 0xd1, 0xa3, 0x41, 0xba, 0x3c, 0xa8, 0x3d, 0x89, 0x97, 0xdc, 0x7f}: "BootPriority", efi.GUID{0x3e, 0x85, 0x6f, 0x1d, 0x06, 0x00, 0xd8, 0x40, 0x9b, 0x4b, 0x79, 0x61, 0x8a, 0x57, 0x33, 0xb0}: "AmiTseOemPortingVar3Guid", efi.GUID{0x3e, 0x85, 0x9a, 0xef, 0xf3, 0x2d, 0xed, 0x48, 0x91, 0xe5, 0x62, 0x32, 0x66, 0x8c, 0x4d, 0xb1}: "CbsSetupSmmPhx", efi.GUID{0x3e, 0x8a, 0xa2, 0xd4, 0xf2, 0xdc, 0xcf, 0x43, 0xa2, 0xb7, 0xf3, 0x57, 0x2a, 0x7c, 0xab, 0x09}: "EfiIobaseHob", efi.GUID{0x3e, 0x91, 0xf7, 0x1f, 0x90, 0xd8, 0x60, 0x43, 0xac, 0x75, 0xb8, 0xd8, 0x38, 0x4b, 0xd1, 0xe0}: "AmdSmmControl", efi.GUID{0x3e, 0x98, 0x07, 0xe8, 0x66, 0xd3, 0xc9, 0x40, 0x84, 0x6a, 0x0e, 0xd7, 0xe6, 0x02, 0x2c, 0x96}: "DellTagsConfig", efi.GUID{0x3e, 0x9f, 0x96, 0x6a, 0x1f, 0xed, 0xfe, 0x41, 0xa9, 0x32, 0x43, 0x99, 0x4b, 0x05, 0x54, 0x8f}: "SocWdtSmm", efi.GUID{0x3e, 0xa2, 0xd0, 0x16, 0x9c, 0xc0, 0x7d, 0x40, 0xa1, 0x4a, 0xad, 0x05, 0x8f, 0xdd, 0x0c, 0xa1}: "ACPI", efi.GUID{0x3e, 0xa6, 0xcd, 0x40, 0x70, 0x3f, 0x25, 0x4b, 0xa5, 0x0c, 0x49, 0xdb, 0xd7, 0xee, 0x34, 0x3f}: "SmbiosType132", efi.GUID{0x3e, 0xa9, 0xa9, 0x95, 0x6e, 0xa8, 0x26, 0x49, 0xaa, 0xef, 0x99, 0x18, 0xe7, 0x72, 0xd9, 0x87}: "EfiEraseBlockProtocolGuid", efi.GUID{0x3e, 0xab, 0x0c, 0x5f, 0x20, 0xf8, 0xd3, 0x4f, 0xb5, 0xf1, 0x45, 0x68, 0xad, 0xa0, 0xac, 0xc6}: "PiSmmCommunicationPei", efi.GUID{0x3e, 0xab, 0xc5, 0x35, 0x7a, 0xb7, 0x0c, 0x45, 0x88, 0x54, 0x15, 0x9b, 0x2f, 0x0d, 0x32, 0xa5}: "Ich7MSmmDispatcher", efi.GUID{0x3e, 0xb1, 0x81, 0x0b, 0x95, 0xe5, 0x35, 0x4d, 0x9e, 0x7b, 0xa3, 0xc8, 0x5e, 0x01, 0xa2, 0x3f}: "HhmDxe", efi.GUID{0x3e, 0xb7, 0x12, 0x1d, 0xde, 0x7d, 0x10, 0x49, 0x93, 0xc5, 0x2b, 0xdb, 0x04, 0x1c, 0x68, 0x49}: "FjIbvBiosPasswordAbstractionDxeProtocol", efi.GUID{0x3e, 0xb9, 0x1b, 0xee, 0xc5, 0x54, 0x17, 0x4b, 0x94, 0x96, 0xa2, 0x00, 0x85, 0x95, 0x05, 0x61}: "SmmUsbDispatch2OnSmmUsbDispatchThunk", efi.GUID{0x3e, 0xc4, 0xfc, 0x54, 0x89, 0xaa, 0x33, 0x43, 0x9a, 0x85, 0xcd, 0xea, 0x24, 0x05, 0x1e, 0x9e}: "EfiSupplicantProtocolGuid", efi.GUID{0x3e, 0xc7, 0x80, 0xc2, 0xca, 0x15, 0xda, 0x11, 0xb0, 0xca, 0x00, 0x10, 0x83, 0xff, 0xca, 0x4d}: "EfiAuthenticationChapLocalGuid", efi.GUID{0x3e, 0xca, 0x67, 0xea, 0x54, 0x1f, 0x6b, 0x43, 0x97, 0x88, 0xd4, 0xeb, 0x29, 0xc3, 0x42, 0x67}: "Early16550UartBaseAddress", efi.GUID{0x3e, 0xdb, 0xeb, 0x18, 0xc2, 0x95, 0x25, 0x47, 0xab, 0x63, 0x74, 0xb4, 0x78, 0xc4, 0x75, 0xde}: "AmdCpmSocAm4RvDxe", efi.GUID{0x3e, 0xe0, 0xfa, 0x5d, 0x19, 0x9c, 0x96, 0x49, 0x85, 0xbf, 0x65, 0x29, 0x7b, 0xd4, 0x13, 0x7f}: "PlatformVTdSampleDxe", efi.GUID{0x3e, 0xe3, 0xfa, 0x51, 0x59, 0x9c, 0x26, 0x49, 0x85, 0x7f, 0x65, 0x99, 0x7b, 0xd4, 0x13, 0x7f}: "VariablePolicyStubDxe", efi.GUID{0x3e, 0xe8, 0x7b, 0x70, 0xf6, 0x0b, 0xa5, 0x40, 0xbe, 0x64, 0x34, 0xc0, 0x3a, 0xa0, 0xb8, 0xe2}: "EfiSmbusArpMapGuid", efi.GUID{0x3e, 0xe9, 0x59, 0x47, 0x44, 0x8f, 0x8f, 0x44, 0x88, 0xa1, 0xbd, 0x97, 0xfc, 0x47, 0xbe, 0xa5}: "AmdPspP2CmboxV2", efi.GUID{0x3e, 0xf2, 0x29, 0x90, 0xee, 0xe1, 0xd1, 0x40, 0x93, 0x82, 0x36, 0xdd, 0x61, 0xa6, 0x3e, 0xaa}: "NCT6686DPeiInit", efi.GUID{0x3e, 0xf2, 0x29, 0x90, 0xee, 0xe1, 0xd1, 0x40, 0x93, 0x82, 0x36, 0xdd, 0x61, 0xa6, 0x79, 0x1d}: "NCT6791DPeiInit", efi.GUID{0x3e, 0xf2, 0x29, 0x90, 0xee, 0xe1, 0xd1, 0x40, 0x93, 0x82, 0x36, 0xdd, 0x61, 0xa8, 0x18, 0x66}: "F81966PeiInit", efi.GUID{0x3e, 0xf2, 0x29, 0xa2, 0xff, 0xe1, 0xd1, 0x40, 0x93, 0x82, 0x36, 0xdd, 0x61, 0xa6, 0x3e, 0xaa}: "AltModePei", efi.GUID{0x3e, 0xf7, 0x16, 0x19, 0x24, 0xc8, 0x91, 0x4f, 0xac, 0x9c, 0xbf, 0x1f, 0xd2, 0x8e, 0x44, 0x31}: "DellServiceMenu", efi.GUID{0x3f, 0x09, 0xf9, 0x27, 0x7a, 0x52, 0xab, 0x42, 0xae, 0x55, 0x5c, 0x56, 0xda, 0x8d, 0x9a, 0xb8}: "BootOrderDefaultSettings", efi.GUID{0x3f, 0x18, 0x34, 0x10, 0x0a, 0xaf, 0x16, 0x47, 0xbe, 0x0e, 0x4c, 0xb5, 0x31, 0x9d, 0x61, 0x93}: "PciHotPlugNonRpDxe", efi.GUID{0x3f, 0x2e, 0x2b, 0x26, 0x2d, 0xda, 0x81, 0x4b, 0x8d, 0x1d, 0xf9, 0x38, 0xe8, 0x51, 0xfd, 0xed}: "SmcBoardInfoVariable", efi.GUID{0x3f, 0x54, 0x66, 0x71, 0x35, 0x3e, 0xa2, 0x41, 0x91, 0x18, 0x57, 0x7b, 0xba, 0x62, 0xc6, 0x93}: "AmdAgesaParameterGroupPei", efi.GUID{0x3f, 0x62, 0x5a, 0xc6, 0x68, 0x27, 0x00, 0x47, 0xbe, 0x2c, 0x1d, 0x8b, 0xa2, 0xc4, 0x39, 0x98}: "Inside", efi.GUID{0x3f, 0x64, 0x1f, 0xe5, 0x3c, 0x5f, 0xfd, 0x4c, 0x91, 0x26, 0x46, 0x87, 0x30, 0x5f, 0x18, 0xda}: "ReadyToPxeBootGuid", efi.GUID{0x3f, 0x66, 0xce, 0x35, 0x2d, 0x29, 0x63, 0x47, 0x80, 0xf5, 0x05, 0xc9, 0x33, 0xf6, 0xea, 0x15}: "RequiredUefiVarPeim", efi.GUID{0x3f, 0x67, 0x2e, 0xd6, 0x35, 0xa9, 0x51, 0x47, 0x92, 0x79, 0x4c, 0x1e, 0x63, 0xed, 0x0a, 0x4e}: "FchI3cDxe", efi.GUID{0x3f, 0x68, 0x78, 0x47, 0xbd, 0xb2, 0xb9, 0x46, 0xbf, 0x34, 0x1b, 0xd0, 0x0d, 0x5e, 0xc7, 0xf5}: "AmdMemoryHobInfoPeim", efi.GUID{0x3f, 0x6c, 0x22, 0x08, 0xf8, 0xbb, 0x1b, 0x43, 0x87, 0x5e, 0x73, 0x61, 0x44, 0x4a, 0x23, 0xf9}: "AmdMemSmbiosV2RnPei", efi.GUID{0x3f, 0x6d, 0xd9, 0x19, 0x6a, 0x6a, 0xd2, 0x47, 0xb1, 0x95, 0x7b, 0x24, 0x32, 0xda, 0x3b, 0xe2}: "AddBootOption", efi.GUID{0x3f, 0x6e, 0xa8, 0xd1, 0x07, 0x07, 0x35, 0x4c, 0x83, 0xcd, 0xdc, 0x2c, 0x29, 0xc8, 0x91, 0xa3}: "EdkiiNvVarStoreFormatted", efi.GUID{0x3f, 0x70, 0x1c, 0x71, 0x85, 0xc2, 0x10, 0x4b, 0xa3, 0xb0, 0x36, 0xec, 0xbd, 0x3c, 0x8b, 0xe2}: "EfiCapsuleVendorGuid", efi.GUID{0x3f, 0x73, 0x48, 0x98, 0xa1, 0xb8, 0x80, 0x4b, 0xb5, 0x48, 0xd6, 0xc0, 0xa5, 0x69, 0xc0, 0x88}: "AmdPspDxeV2StxH", efi.GUID{0x3f, 0x73, 0x5f, 0xf3, 0x35, 0x52, 0x7b, 0x4d, 0x83, 0xfa, 0x97, 0x78, 0x0c, 0xeb, 0xcb, 0x20}: "Ping6", efi.GUID{0x3f, 0x73, 0xc0, 0x4f, 0xd2, 0x6f, 0x1b, 0x49, 0xa8, 0x90, 0x53, 0x74, 0x52, 0x1b, 0xf4, 0x8f}: "AmiBoardInfo2ProtocolGuid", efi.GUID{0x3f, 0x78, 0xfc, 0x25, 0xad, 0x41, 0xa1, 0x4b, 0xb1, 0x90, 0x6d, 0x4b, 0x3f, 0xb6, 0xcc, 0x5b}: "ThunderboltDxe", efi.GUID{0x3f, 0x79, 0xb6, 0x9f, 0x08, 0x70, 0x63, 0x49, 0xae, 0xd6, 0x35, 0xaf, 0xb2, 0x65, 0xdf, 0x60}: "FjGpioGeminilakeSmm", efi.GUID{0x3f, 0x7c, 0x78, 0xf7, 0xd5, 0x0c, 0x36, 0x45, 0x93, 0x54, 0x06, 0x70, 0xee, 0x22, 0xd7, 0xfd}: "AmdCpmModernStandbyAcpiTableInstall", efi.GUID{0x3f, 0x80, 0x8e, 0xb1, 0xd2, 0xf4, 0xdc, 0x49, 0x9c, 0x10, 0x64, 0x31, 0x74, 0xf5, 0x6b, 0x97}: "Usb_Lan_Ax88179", efi.GUID{0x3f, 0x83, 0x74, 0xe9, 0xae, 0xa4, 0x39, 0x4e, 0xbe, 0x37, 0x8b, 0x67, 0x80, 0xdf, 0xad, 0x01}: "Int15PanelFitting", efi.GUID{0x3f, 0x85, 0x1b, 0x39, 0x88, 0xf4, 0x9b, 0x47, 0xa3, 0xd6, 0x87, 0x07, 0x66, 0xc7, 0xa3, 0x8f}: "CryptoSmm", efi.GUID{0x3f, 0x88, 0x86, 0x29, 0xe0, 0x88, 0xd0, 0x48, 0x4b, 0x82, 0x20, 0xc2, 0x69, 0x48, 0xdd, 0xac}: "TxtInfoHob", efi.GUID{0x3f, 0x8a, 0x0f, 0xcc, 0xea, 0x3d, 0x76, 0x43, 0x96, 0x79, 0x54, 0x26, 0xba, 0x0a, 0x90, 0x7e}: "PkVar", efi.GUID{0x3f, 0x8d, 0x7c, 0x44, 0x9f, 0x42, 0x5d, 0x40, 0xbd, 0xc6, 0x35, 0xd7, 0x5f, 0x3d, 0xc0, 0x82}: "OFCRuntimeDxe", efi.GUID{0x3f, 0x9d, 0x19, 0x8e, 0x74, 0x3a, 0x2b, 0x49, 0x8c, 0xb3, 0x93, 0xd6, 0x68, 0xd8, 0x7d, 0x07}: "IsRecovery", efi.GUID{0x3f, 0x9e, 0xeb, 0x34, 0x18, 0x93, 0xe7, 0x4c, 0x99, 0xad, 0x9e, 0x72, 0x89, 0x03, 0x8c, 0x52}: "WifiBootDevAuthList", efi.GUID{0x3f, 0xa7, 0x7a, 0xb8, 0xb3, 0xdc, 0x33, 0x45, 0x83, 0x98, 0x6c, 0x12, 0x84, 0x27, 0x28, 0x40}: "ReserveMemFlagVariable", efi.GUID{0x3f, 0xb5, 0xd5, 0x09, 0xb0, 0xf4, 0x59, 0x4f, 0xa0, 0xb1, 0x7b, 0x57, 0xd3, 0x5c, 0x0e, 0x05}: "NicIp4ConfigNvDataGuid", efi.GUID{0x3f, 0xbb, 0x55, 0x8e, 0x48, 0x11, 0xa5, 0x4e, 0xbd, 0xb6, 0x42, 0x5e, 0x45, 0x84, 0xff, 0x78}: "DefaultUpdate", efi.GUID{0x3f, 0xbd, 0x68, 0xfa, 0xd7, 0x8a, 0x41, 0x4d, 0x8c, 0xd9, 0x2e, 0x72, 0xfb, 0x38, 0x7a, 0xd7}: "SctMilestoneTaskDxe", efi.GUID{0x3f, 0xbe, 0x20, 0x3e, 0xb0, 0xf9, 0x0b, 0x46, 0xb4, 0x3d, 0xec, 0xc3, 0x49, 0x7d, 0x7b, 0xc7}: "DellSoftTAADxe", efi.GUID{0x3f, 0xbf, 0xa4, 0x53, 0xa4, 0x82, 0x58, 0x47, 0x8a, 0x08, 0x7e, 0xdd, 0x2e, 0xdf, 0xf2, 0xb5}: "PlatformEmmcController", efi.GUID{0x3f, 0xc8, 0xdd, 0x24, 0x06, 0x9f, 0xab, 0x44, 0xb6, 0x96, 0x60, 0xfe, 0x7d, 0xf2, 0xc9, 0x48}: "RstVmdPeim", efi.GUID{0x3f, 0xcb, 0x15, 0xfb, 0x73, 0xd3, 0xa1, 0x45, 0xb9, 0xb1, 0x00, 0x79, 0xd4, 0xe9, 0xd6, 0xb2}: "menu_seperator", efi.GUID{0x3f, 0xcf, 0xa4, 0xaf, 0x71, 0xaf, 0x30, 0x4c, 0xa4, 0xfb, 0x29, 0x10, 0xe7, 0x71, 0xf9, 0xb0}: "AmiNvmeControllerProtocolGuid", efi.GUID{0x3f, 0xdd, 0x28, 0xc8, 0x68, 0x88, 0xa6, 0x40, 0xaa, 0x59, 0xd5, 0xca, 0x37, 0x2d, 0x09, 0x37}: "UefiDriverAsix88179", efi.GUID{0x3f, 0xe3, 0x76, 0x47, 0x47, 0xdb, 0x9a, 0x47, 0xa2, 0x5f, 0xa1, 0xcd, 0x0a, 0xfa, 0xb3, 0x8b}: "EfiKmsFormatAesxts128Guid", efi.GUID{0x3f, 0xe4, 0xeb, 0x4f, 0x6e, 0x25, 0x82, 0x4c, 0xa2, 0x0a, 0xbc, 0x0d, 0x03, 0xc7, 0x21, 0x85}: "PTN3460CfgPei", efi.GUID{0x3f, 0xe7, 0xb2, 0x9c, 0x25, 0x73, 0xf4, 0x40, 0xa4, 0x84, 0x65, 0x9b, 0xb3, 0x44, 0xc3, 0xcd}: "SgxPolicyStatusGuid", efi.GUID{0x3f, 0xec, 0x18, 0x56, 0xef, 0xa4, 0xed, 0x4e, 0x87, 0x59, 0x64, 0xee, 0xb7, 0x80, 0xb4, 0xbe}: "DellSetupD4Smm", efi.GUID{0x3f, 0xf5, 0xba, 0x29, 0x3e, 0xaa, 0x94, 0x45, 0xff, 0xff, 0xff, 0xff, 0x85, 0xa7, 0x37, 0x9c}: "XnotePlatformInfoDxe", efi.GUID{0x3f, 0xfc, 0x81, 0x33, 0x91, 0x87, 0xe5, 0x41, 0x88, 0x71, 0xa9, 0x60, 0xa4, 0xed, 0x24, 0xb7}: "MemoryInit", efi.GUID{0x3f, 0xfd, 0xcb, 0xad, 0xf8, 0x95, 0xe9, 0x4e, 0x9f, 0x1a, 0x6d, 0xa8, 0x26, 0x86, 0x2d, 0x4d}: "DiagnosticTestBIOSInterfaceSmm", efi.GUID{0x40, 0x03, 0xb6, 0x0b, 0x65, 0x88, 0x84, 0x45, 0xa3, 0x2d, 0x7f, 0x83, 0x99, 0x03, 0xdf, 0x4e}: "MmioSerialUart1", efi.GUID{0x40, 0x16, 0xdf, 0x6b, 0xc1, 0xff, 0x89, 0x4c, 0xba, 0x76, 0x8d, 0xab, 0x23, 0x0e, 0x75, 0x0c}: "AsusModuleToIntPeiWrapper", efi.GUID{0x40, 0x17, 0x44, 0xe3, 0x41, 0x3b, 0x90, 0x4c, 0x9c, 0x9d, 0x96, 0x40, 0x56, 0xc7, 0x41, 0x7d}: "DxePciLibEsal", efi.GUID{0x40, 0x19, 0xb6, 0xd4, 0xab, 0x73, 0xa5, 0x48, 0x9e, 0x26, 0x53, 0xa4, 0xca, 0x4a, 0x2c, 0x37}: "DellDiagsSmm", efi.GUID{0x40, 0x19, 0xd7, 0x27, 0xf7, 0xd1, 0xf2, 0x40, 0xaa, 0x19, 0x18, 0xc2, 0xb0, 0x56, 0x44, 0x62}: "FjSysmanAmphionS3Resume", efi.GUID{0x40, 0x22, 0x86, 0x14, 0xe5, 0x96, 0x86, 0x49, 0xab, 0x8e, 0x9c, 0xec, 0x8b, 0xc2, 0xab, 0x57}: "ShowBmcIp", efi.GUID{0x40, 0x23, 0x49, 0x0f, 0xb3, 0x21, 0x23, 0x4e, 0x91, 0x40, 0x8c, 0x14, 0x47, 0x62, 0x92, 0xcd}: "SetupRepSetSmm", efi.GUID{0x40, 0x29, 0xfe, 0x15, 0x26, 0xb4, 0x9a, 0x47, 0xa0, 0x02, 0x54, 0x54, 0xa3, 0x4c, 0x7a, 0x6e}: "FlashMapBin", efi.GUID{0x40, 0x33, 0x3a, 0x04, 0xd0, 0x7c, 0x38, 0x43, 0xb7, 0xfe, 0x7a, 0x6a, 0xeb, 0x79, 0x0a, 0x28}: "HidKeyboardDxe", efi.GUID{0x40, 0x33, 0xbc, 0x5b, 0x22, 0x61, 0x25, 0x49, 0xbb, 0x48, 0x44, 0x33, 0x38, 0x99, 0xff, 0xec}: "AsusSecuredCorePC", efi.GUID{0x40, 0x3e, 0xa7, 0x37, 0x38, 0x4e, 0x36, 0x4e, 0x90, 0x45, 0xe9, 0xfc, 0xbc, 0xb7, 0x3b, 0xfe}: "FjRecoveryFlashDisplay", efi.GUID{0x40, 0x51, 0xc9, 0x7e, 0xd7, 0xbc, 0xd1, 0x48, 0x9f, 0x5c, 0x2a, 0xa2, 0x65, 0x6d, 0x6c, 0xbf}: "DellSpdSmbusAccessSmm", efi.GUID{0x40, 0x5b, 0x40, 0x72, 0xda, 0x38, 0xba, 0x4a, 0x92, 0x83, 0xca, 0x83, 0x21, 0xc2, 0x3e, 0x63}: "FvReportPei", efi.GUID{0x40, 0x63, 0xc4, 0xfe, 0x99, 0xca, 0xfe, 0x49, 0xbc, 0xca, 0xd0, 0x9f, 0xa6, 0x06, 0x4a, 0x4a}: "MrcHooksServicesPpi", efi.GUID{0x40, 0x67, 0x4f, 0xfa, 0x5a, 0xb9, 0xf9, 0x43, 0x90, 0xb5, 0x78, 0xd8, 0x14, 0x7c, 0x02, 0x19}: "LenovoSlp2Smm", efi.GUID{0x40, 0x6a, 0xf3, 0x4c, 0x26, 0x57, 0x67, 0x4a, 0xa9, 0x4c, 0x2c, 0xc8, 0x78, 0x22, 0xe7, 0x60}: "HpDtDxe", efi.GUID{0x40, 0x75, 0xec, 0xdf, 0xed, 0xb6, 0x5c, 0x42, 0x88, 0x3f, 0x9d, 0x8f, 0x3c, 0x85, 0x38, 0x4b}: "MemRas", efi.GUID{0x40, 0x76, 0x1b, 0xfc, 0x66, 0x34, 0x06, 0x4c, 0xb1, 0xcc, 0x1c, 0x93, 0x53, 0x94, 0xb5, 0xc2}: "PchSerialGpio", efi.GUID{0x40, 0x79, 0xd1, 0x19, 0x8d, 0xba, 0xa7, 0x4f, 0xa7, 0x04, 0xf3, 0x3d, 0x9f, 0xaf, 0xab, 0x9d}: "LibStringlist", efi.GUID{0x40, 0x81, 0xa8, 0xe4, 0x28, 0x8e, 0x1d, 0x46, 0x91, 0xbc, 0xa9, 0x0f, 0xf0, 0x15, 0x71, 0x7c}: "UsbOcUpdateDxeLightningRidgeEXRP", efi.GUID{0x40, 0x82, 0x4e, 0x8a, 0xf8, 0x74, 0x24, 0x40, 0xae, 0x2b, 0xb3, 0x92, 0x21, 0xc9, 0xfa, 0x59}: "NvOptimusSMM", efi.GUID{0x40, 0x84, 0x48, 0x86, 0xbb, 0x41, 0xc7, 0x42, 0x93, 0xac, 0x45, 0x0f, 0xbf, 0x77, 0x66, 0xbf}: "SystemBootMenuDxe", efi.GUID{0x40, 0x89, 0x2f, 0x3d, 0x50, 0xa8, 0x43, 0x45, 0xb2, 0x94, 0x9b, 0x0b, 0xd0, 0xe7, 0x50, 0xc7}: "HstiDxe", efi.GUID{0x40, 0x96, 0x19, 0xc2, 0xc0, 0x29, 0x0a, 0x4f, 0x99, 0x0c, 0x71, 0xbf, 0x9b, 0x14, 0x43, 0x0d}: "DellSfpDxe", efi.GUID{0x40, 0x9d, 0xc7, 0x60, 0xfa, 0x74, 0xc4, 0x4d, 0xa6, 0x54, 0x14, 0xc3, 0x2e, 0x2e, 0x21, 0x7c}: "FjFirmwareOnlineUpdate", efi.GUID{0x40, 0xa3, 0x47, 0x51, 0x75, 0x1b, 0xf4, 0x43, 0xba, 0x0f, 0x46, 0x39, 0x3d, 0x69, 0x7f, 0xd4}: "FjGabiSettingsSmm", efi.GUID{0x40, 0xa8, 0x09, 0x10, 0x25, 0xc6, 0xb3, 0x42, 0xa9, 0x4b, 0xb9, 0x0f, 0x99, 0x1b, 0x1b, 0x1a}: "NhltInstallTable", efi.GUID{0x40, 0xa9, 0x95, 0x0c, 0x06, 0xa0, 0xd4, 0x11, 0xbc, 0xfa, 0x00, 0x80, 0xc7, 0x3c, 0x88, 0x81}: "WinNtBusDriverDxe", efi.GUID{0x40, 0xab, 0xbe, 0x40, 0xce, 0xce, 0x09, 0x49, 0xb1, 0x33, 0x20, 0xa4, 0x13, 0xae, 0x19, 0xe9}: "CpuMpDxe", efi.GUID{0x40, 0xb3, 0x23, 0xaf, 0xb4, 0x97, 0x85, 0x46, 0x8d, 0x4f, 0xa3, 0xf2, 0x81, 0x69, 0xb2, 0x1d}: "EdkiiVarCheckProtocolGuid", efi.GUID{0x40, 0xb5, 0xdb, 0x03, 0x86, 0xe1, 0x15, 0x46, 0x8a, 0x7f, 0xa4, 0x27, 0x86, 0x3b, 0x4e, 0x56}: "PoofAnimationState1", efi.GUID{0x40, 0xc3, 0x48, 0x14, 0x02, 0x02, 0x11, 0x47, 0x9c, 0x4b, 0x2d, 0x06, 0x3a, 0xa6, 0x47, 0x5b}: "ProgressBarEmptyLeftEndcap", efi.GUID{0x40, 0xcf, 0xee, 0x66, 0x12, 0x63, 0x1a, 0x4a, 0xa8, 0x3a, 0xb3, 0xb2, 0xf8, 0xd8, 0xa7, 0x1a}: "LenovoVariableDxe", efi.GUID{0x40, 0xd2, 0x8a, 0xf2, 0xb8, 0x3d, 0x09, 0x48, 0xb6, 0xf9, 0x68, 0x41, 0x12, 0x9f, 0xb2, 0x3a}: "FjNvramVariablesAccessReferenceSmm", efi.GUID{0x40, 0xda, 0xf8, 0xed, 0xd1, 0xaa, 0xdf, 0x11, 0xa1, 0xf4, 0x00, 0x02, 0xa5, 0xd5, 0xc5, 0x1b}: "PL341Dmc", efi.GUID{0x40, 0xe1, 0x19, 0xb2, 0xfc, 0xdf, 0xe3, 0x11, 0xb9, 0x56, 0x00, 0x22, 0x68, 0x1e, 0x69, 0x06}: "DnsDxe", efi.GUID{0x40, 0xec, 0x35, 0x47, 0xb8, 0xf0, 0x02, 0x41, 0xa4, 0xc1, 0x2e, 0x83, 0xb6, 0xb0, 0xc0, 0xbd}: "FchHuashanDxe", efi.GUID{0x40, 0xec, 0xa2, 0xc0, 0xa9, 0x7c, 0xf7, 0x4f, 0xa1, 0x7c, 0x08, 0xb8, 0x1d, 0x70, 0xde, 0x80}: "ECSmmFramework", efi.GUID{0x40, 0xf0, 0xe4, 0xd9, 0xd0, 0xb4, 0x26, 0x4c, 0x84, 0x00, 0xb1, 0xd9, 0x1b, 0x75, 0x6b, 0x77}: "IteOnlyPei", efi.GUID{0x40, 0xf1, 0x50, 0x06, 0x9a, 0x43, 0x4f, 0x2d, 0x98, 0x07, 0xc9, 0x26, 0x69, 0x33, 0x93, 0x99}: "AppleEvent", efi.GUID{0x40, 0xfd, 0x55, 0x85, 0x0b, 0x14, 0x3c, 0x4f, 0x90, 0x5e, 0x3b, 0xf3, 0x78, 0xa0, 0x99, 0xfa}: "EfiActiveManagementProtocol", efi.GUID{0x41, 0x02, 0x39, 0x93, 0x4d, 0x7d, 0x86, 0x49, 0x8a, 0x06, 0xd4, 0x6c, 0x98, 0x2f, 0x5e, 0xcd}: "CrystalRidgePeim", efi.GUID{0x41, 0x02, 0x5b, 0xe0, 0x68, 0x2f, 0xb4, 0x4d, 0x8a, 0xdf, 0x57, 0x60, 0xde, 0x2e, 0x15, 0x70}: "TpmFwUpdateDxe", efi.GUID{0x41, 0x12, 0x54, 0xe4, 0x97, 0x88, 0x1a, 0x41, 0x91, 0xf8, 0x7d, 0x7e, 0x45, 0x83, 0x71, 0x46}: "BaseSerialPortLibNull", efi.GUID{0x41, 0x17, 0x2b, 0xc3, 0x35, 0x90, 0x35, 0x49, 0xaa, 0x2f, 0x3e, 0x49, 0xab, 0xc9, 0xd7, 0x7f}: "HpThermalDiagsDxe", efi.GUID{0x41, 0x1c, 0xaa, 0xfb, 0x48, 0xed, 0xaa, 0x4e, 0x98, 0xad, 0x7a, 0x3f, 0x95, 0xb4, 0x79, 0x15}: "InstallD01MsftDxe", efi.GUID{0x41, 0x1f, 0x81, 0x10, 0x7e, 0x03, 0xbe, 0x4e, 0x98, 0x72, 0x77, 0x1d, 0x76, 0x46, 0xff, 0xfa}: "LEMSAPAMLock", efi.GUID{0x41, 0x2e, 0x64, 0xb8, 0x50, 0xd3, 0xff, 0x4b, 0x9d, 0xec, 0x49, 0x40, 0xf1, 0x5c, 0xd6, 0xe5}: "nfa765x64", efi.GUID{0x41, 0x2e, 0xb0, 0x9f, 0x22, 0x2f, 0x41, 0x4f, 0xb9, 0x26, 0x85, 0x0b, 0x7d, 0x7c, 0x2a, 0x5b}: "DellAutoBifurcateSiDxe", efi.GUID{0x41, 0x3a, 0x7c, 0xc7, 0xab, 0x61, 0x43, 0x41, 0x98, 0x3e, 0x33, 0x39, 0x28, 0x06, 0x28, 0xe5}: "EdkiiCpuFeaturesInitDone", efi.GUID{0x41, 0x44, 0xc1, 0xb7, 0xa2, 0xac, 0x7f, 0x4f, 0x8a, 0xb1, 0x47, 0xb9, 0xc8, 0x86, 0x35, 0xa9}: "DashIoCfgSmm", efi.GUID{0x41, 0x4f, 0xeb, 0x88, 0x74, 0xe5, 0x44, 0x41, 0x9c, 0x93, 0x79, 0x48, 0x5b, 0x11, 0x09, 0x10}: "DellCoreServiceHWIDDxe", efi.GUID{0x41, 0x52, 0x92, 0x48, 0xed, 0xd2, 0xd4, 0x46, 0x8a, 0x87, 0xa1, 0x8d, 0x15, 0x3c, 0x28, 0x02}: "SmmOemEeprom", efi.GUID{0x41, 0x53, 0x81, 0xed, 0x7f, 0xe6, 0xc4, 0x46, 0x9d, 0xed, 0xaa, 0x14, 0x22, 0x28, 0x03, 0xc4}: "WakeOnLanSmm", efi.GUID{0x41, 0x59, 0x01, 0xa0, 0xa1, 0x01, 0x46, 0x41, 0xb1, 0x01, 0xb1, 0xbb, 0x05, 0xd8, 0x63, 0x1c}: "EfiEvPpi", efi.GUID{0x41, 0x5b, 0xfc, 0xd5, 0x93, 0xf8, 0xa5, 0x48, 0x96, 0xef, 0x37, 0x5c, 0x18, 0x74, 0xd4, 0x5f}: "WlanSuplct", efi.GUID{0x41, 0x5d, 0x74, 0x4f, 0x98, 0x55, 0xf0, 0x4c, 0x8a, 0x0a, 0x92, 0x38, 0x13, 0xdf, 0x95, 0x54}: "SmmUsbMassStorage", efi.GUID{0x41, 0x5d, 0x74, 0x4f, 0x98, 0x55, 0xf0, 0x4c, 0x8a, 0x0a, 0x92, 0x38, 0x13, 0xdf, 0x95, 0x55}: "M2Smm", efi.GUID{0x41, 0x5d, 0x74, 0x4f, 0x98, 0x55, 0xf0, 0x4c, 0x8a, 0x0a, 0x92, 0x38, 0x13, 0xdf, 0x95, 0x56}: "SmmCsm", efi.GUID{0x41, 0x6b, 0x96, 0xf0, 0x3f, 0xc2, 0xb9, 0x41, 0x96, 0x04, 0x0f, 0xf7, 0xe1, 0x11, 0x96, 0x5a}: "EdkiiPlatformHasAcpi", efi.GUID{0x41, 0x85, 0x2d, 0x50, 0xbe, 0x01, 0xb3, 0x4f, 0x89, 0x86, 0x3f, 0x99, 0x16, 0x54, 0x81, 0x64}: "DellTpmSmm", efi.GUID{0x41, 0x8b, 0x44, 0x08, 0x83, 0x7f, 0xbe, 0x49, 0x82, 0xa7, 0x0e, 0x84, 0x79, 0x0a, 0xb1, 0x33}: "LePassKeyDeviceManager", efi.GUID{0x41, 0x8d, 0x11, 0x94, 0xa5, 0x65, 0x7c, 0x49, 0x90, 0xa1, 0x9d, 0x78, 0x59, 0x1c, 0x79, 0x7a}: "AmdNbioPei", efi.GUID{0x41, 0x8e, 0xcc, 0xa9, 0xc1, 0x4b, 0x1a, 0x4d, 0x8e, 0x0c, 0xc7, 0x21, 0xdd, 0xfc, 0xe8, 0x81}: "H19VariableLock", efi.GUID{0x41, 0x91, 0xe1, 0x0d, 0xeb, 0x7a, 0xca, 0x46, 0x9f, 0x87, 0x2d, 0x19, 0xfe, 0xbc, 0x99, 0xc3}: "OemBootMiscDxe", efi.GUID{0x41, 0x92, 0x11, 0x17, 0x53, 0x11, 0x0d, 0x97, 0x65, 0x09, 0x75, 0xdc, 0xdf, 0xa4, 0x17, 0x74}: "SbSocRavenDxe", efi.GUID{0x41, 0x92, 0x28, 0x6c, 0x40, 0xe2, 0x3f, 0x48, 0x9e, 0x3e, 0x87, 0x2c, 0x03, 0x96, 0xb5, 0x99}: "FlashSmiSmm", efi.GUID{0x41, 0x94, 0x11, 0xa7, 0x53, 0xe1, 0x0d, 0x97, 0x55, 0x08, 0x75, 0xdc, 0xdf, 0xa4, 0x19, 0x74}: "SbSocSummitDxe", efi.GUID{0x41, 0x95, 0xb1, 0x45, 0x75, 0xe8, 0xf7, 0x48, 0xab, 0x36, 0xa6, 0x46, 0xbd, 0x4a, 0xd4, 0x5b}: "HpPlatformInfoDxe", efi.GUID{0x41, 0x9a, 0x4c, 0x8c, 0x56, 0xbf, 0x27, 0x46, 0x9e, 0x0a, 0xc8, 0x38, 0x6d, 0x66, 0x11, 0x5c}: "EfiTcgPlatformProtocolGuid", efi.GUID{0x41, 0x9c, 0x44, 0xea, 0x36, 0x82, 0x97, 0x4b, 0x9f, 0xf9, 0x08, 0x4e, 0x4b, 0xa7, 0x00, 0x20}: "ProgressBarEmptyMiddle", efi.GUID{0x41, 0x9c, 0x70, 0x4b, 0x66, 0x20, 0x84, 0x46, 0xa9, 0x2a, 0xcf, 0xae, 0x7c, 0x75, 0x63, 0xfc}: "UpdateMsrSmi", efi.GUID{0x41, 0x9d, 0x98, 0x0c, 0xb4, 0xf4, 0x44, 0x42, 0x9d, 0x7f, 0xe9, 0xff, 0xb4, 0x16, 0x32, 0x73}: "FastBootOption", efi.GUID{0x41, 0xa1, 0xdd, 0x05, 0xfa, 0x2d, 0xbb, 0x48, 0xb0, 0x9d, 0xd9, 0x22, 0x34, 0x49, 0x47, 0xfe}: "ApobZpRvPei", efi.GUID{0x41, 0xa8, 0x9b, 0x4c, 0x69, 0x0a, 0x67, 0x45, 0x9e, 0x37, 0x42, 0xcb, 0xf5, 0xf7, 0xf2, 0x69}: "OemGlobalNvsDxe", efi.GUID{0x41, 0xa9, 0xd9, 0x4c, 0xf5, 0xce, 0x40, 0x49, 0x9c, 0x1c, 0xc5, 0xc3, 0x3c, 0x27, 0x02, 0x4b}: "ODMPowerLedProtocol", efi.GUID{0x41, 0xad, 0xa3, 0x3c, 0xc5, 0x6d, 0x38, 0x43, 0x9c, 0x0f, 0x5c, 0x6a, 0x25, 0xd2, 0xf5, 0x97}: "HpBcuPreserveDataDxe", efi.GUID{0x41, 0xc1, 0x33, 0xb7, 0x8f, 0xe8, 0x86, 0x47, 0x94, 0xaf, 0x8b, 0x87, 0xbc, 0x48, 0x67, 0xfe}: "PttSsdtAcpiTableGuid", efi.GUID{0x41, 0xc2, 0x5e, 0x60, 0xe0, 0x85, 0x60, 0x47, 0xa5, 0xd2, 0x0d, 0x02, 0x44, 0x8f, 0xd4, 0x68}: "Tca9548aPei", efi.GUID{0x41, 0xc7, 0x74, 0x5b, 0x5f, 0x4a, 0x8e, 0x4a, 0xb6, 0x89, 0xd8, 0x04, 0xab, 0x43, 0x68, 0xfd}: "DxeRealtekCrcInit", efi.GUID{0x41, 0xc7, 0x74, 0xcc, 0x5f, 0x4a, 0x8e, 0x4a, 0xb6, 0x89, 0xd8, 0x04, 0xab, 0x43, 0x68, 0xcc}: "DxeNotifyEC", efi.GUID{0x41, 0xc9, 0xce, 0xa8, 0x87, 0xcd, 0xb7, 0x4a, 0x98, 0x0c, 0x4c, 0x77, 0xc3, 0x3b, 0xf3, 0xba}: "ImcErrorHandler", efi.GUID{0x41, 0xcc, 0x2a, 0x1e, 0x6a, 0xe2, 0x3d, 0x48, 0xaf, 0xc7, 0xa0, 0x56, 0xc3, 0x4e, 0x08, 0x7b}: "EfiPlatformInfoGuid", efi.GUID{0x41, 0xcc, 0x2a, 0x1e, 0x6a, 0xe2, 0x3d, 0x48, 0xaf, 0xc7, 0xa0, 0x56, 0xc3, 0x4e, 0x08, 0x7c}: "EfiNorthPeakGuid", efi.GUID{0x41, 0xd0, 0x26, 0xd3, 0x31, 0xbd, 0x01, 0x4c, 0xb5, 0xa8, 0x62, 0x8b, 0xe8, 0x7f, 0x06, 0x53}: "EfiSmmFirmwareVolumeBlockProtocolGuid", efi.GUID{0x41, 0xd3, 0xf8, 0x49, 0x9b, 0x33, 0x88, 0x4e, 0xa1, 0xcc, 0x7f, 0xfd, 0x00, 0x34, 0x3c, 0x59}: "DellS3ResumeStatusCodePei", efi.GUID{0x41, 0xda, 0x99, 0x33, 0x44, 0xce, 0xdd, 0x4f, 0x8d, 0x32, 0xe5, 0x78, 0x38, 0x1f, 0xeb, 0xe0}: "menu_bottom_right", efi.GUID{0x41, 0xde, 0x05, 0x1b, 0x3b, 0xc9, 0xb4, 0x4b, 0xad, 0x47, 0x2a, 0x78, 0xac, 0x0f, 0xc9, 0xe4}: "HstiProtocolGuid", efi.GUID{0x41, 0xde, 0xbf, 0xaf, 0x6e, 0x2e, 0x62, 0x42, 0xba, 0x65, 0x62, 0xb9, 0x23, 0x6e, 0x54, 0x95}: "EfiTimestampProtocolGuid", efi.GUID{0x41, 0xee, 0x4d, 0x02, 0xe7, 0x33, 0xd3, 0x11, 0x9d, 0x69, 0x00, 0x08, 0xc7, 0x81, 0xf3, 0x9f}: "EfiPartTypeLegacyMbrGuid", efi.GUID{0x41, 0xf0, 0x59, 0x2d, 0xa4, 0x53, 0xd0, 0x40, 0xa6, 0xcd, 0x84, 0x4d, 0xc0, 0xdf, 0xef, 0x17}: "SmmS3SaveState", efi.GUID{0x41, 0xf2, 0xb2, 0x8a, 0xfa, 0x77, 0xc7, 0x49, 0xbd, 0x2c, 0xfd, 0x71, 0xa7, 0x43, 0xfd, 0x8a}: "PostMessagePei", efi.GUID{0x41, 0xfd, 0x93, 0xdf, 0xae, 0x44, 0x52, 0x49, 0x89, 0x71, 0x41, 0xd4, 0x72, 0xea, 0xfc, 0x78}: "PspGetIntrusionLog", efi.GUID{0x41, 0xff, 0x7d, 0xd8, 0xe5, 0x21, 0xa6, 0x44, 0x97, 0x8b, 0x80, 0x78, 0x6a, 0xb9, 0x72, 0x29}: "DellPermanentDevicePolicySmm", efi.GUID{0x42, 0x00, 0xe7, 0x24, 0xc5, 0xd5, 0x60, 0x42, 0x8c, 0x39, 0x0a, 0xd3, 0xaa, 0x32, 0xe9, 0x3d}: "EfiSmmEndOfDxeProtocolGuid", efi.GUID{0x42, 0x04, 0x61, 0xa3, 0x9f, 0xe6, 0xf3, 0x4d, 0x82, 0xca, 0x23, 0x60, 0xc4, 0x03, 0x1a, 0x23}: "ReportStatusCodeRouterPei", efi.GUID{0x42, 0x09, 0x72, 0xb9, 0xe8, 0x1f, 0x05, 0x42, 0xad, 0x85, 0x55, 0x32, 0x6d, 0x91, 0xca, 0xb8}: "SiInitPreMemGnrWs", efi.GUID{0x42, 0x0b, 0x36, 0xb2, 0x73, 0x71, 0x0a, 0x42, 0x86, 0x96, 0x46, 0xca, 0x6b, 0xab, 0x10, 0x60}: "MeasuredFvHobGuid", efi.GUID{0x42, 0x10, 0x31, 0xff, 0x7a, 0x1c, 0x69, 0x47, 0x80, 0x85, 0x93, 0x68, 0x61, 0x79, 0xe4, 0x37}: "MeIgnitionDxe", efi.GUID{0x42, 0x11, 0xb0, 0xbf, 0x61, 0x30, 0xa4, 0x48, 0x92, 0x2f, 0x9d, 0x24, 0x6e, 0x20, 0x11, 0x20}: "AmiTcgResetVarHobGuid", efi.GUID{0x42, 0x12, 0x99, 0xac, 0xb0, 0xfb, 0xfa, 0x42, 0xae, 0xf4, 0xaa, 0x97, 0x46, 0xfd, 0x68, 0xe1}: "SmuV13Dxe", efi.GUID{0x42, 0x14, 0x5e, 0x32, 0xe1, 0x9b, 0x8b, 0x49, 0xb0, 0x07, 0xbf, 0x4c, 0x38, 0xbd, 0xb0, 0xec}: "FpgaInitPpi", efi.GUID{0x42, 0x2c, 0x82, 0x11, 0xe4, 0x79, 0xc9, 0x48, 0x9f, 0x73, 0x70, 0x0d, 0x35, 0x56, 0xb0, 0xc0}: "MyAsusAutoInstallItem", efi.GUID{0x42, 0x32, 0xa8, 0xe4, 0xee, 0xde, 0x2e, 0xf1, 0x15, 0xff, 0x01, 0x02, 0x03, 0x6c, 0xc3, 0xce}: "OneKeyLabel", efi.GUID{0x42, 0x35, 0x00, 0xee, 0x56, 0xf1, 0x27, 0x49, 0x84, 0x55, 0xf6, 0x76, 0x20, 0x52, 0xe3, 0x2f}: "SiInitDxe", efi.GUID{0x42, 0x43, 0x17, 0x49, 0x08, 0x71, 0x9b, 0x40, 0x8b, 0xbe, 0x65, 0xfd, 0xa8, 0x53, 0x89, 0xf5}: "SmiHandlerProfile", efi.GUID{0x42, 0x43, 0x9c, 0xb3, 0x6d, 0xf6, 0xc6, 0x40, 0x85, 0xb4, 0xb5, 0x29, 0xde, 0x7b, 0x6a, 0x64}: "UpdateRandomNum", efi.GUID{0x42, 0x4b, 0x9f, 0x58, 0x05, 0xa9, 0xe0, 0x11, 0x82, 0x64, 0x08, 0x00, 0x20, 0x0c, 0x9a, 0x66}: "SctMilestoneTaskProtocol", efi.GUID{0x42, 0x51, 0x96, 0x30, 0x5a, 0xfc, 0x6e, 0x4e, 0x94, 0xdb, 0xbb, 0xa4, 0x41, 0xb3, 0x68, 0x51}: "AmiPciOpromDataProtocol", efi.GUID{0x42, 0x54, 0xf7, 0x04, 0x93, 0xa5, 0x81, 0x42, 0xbd, 0x4b, 0x09, 0x59, 0x35, 0xb7, 0xd2, 0xf8}: "wifi_1bar", efi.GUID{0x42, 0x55, 0xf2, 0xc5, 0x79, 0x2a, 0x26, 0x4a, 0x81, 0xbb, 0x4e, 0xa6, 0x32, 0x33, 0xb3, 0x09}: "EdkiiNonDiscoverableNvmeDeviceGuid", efi.GUID{0x42, 0x69, 0x0d, 0x82, 0x3f, 0xb1, 0x91, 0x4b, 0xaf, 0x2c, 0x77, 0x40, 0x25, 0xd8, 0x4a, 0x22}: "DellAutoBifurcateSiSmm", efi.GUID{0x42, 0x6c, 0x35, 0xf8, 0xa6, 0x4b, 0x6f, 0x70, 0x59, 0xe9, 0xa9, 0xb1, 0xaf, 0xf2, 0xbc, 0xd8}: "AmdPlatformRasSspSmm", efi.GUID{0x42, 0x6c, 0x74, 0xe0, 0xf9, 0xd3, 0x8b, 0x4f, 0xb2, 0x11, 0x14, 0x10, 0x95, 0x7b, 0x9f, 0xf5}: "BootOption", efi.GUID{0x42, 0x6e, 0x60, 0x1c, 0x67, 0xf2, 0x2f, 0x4a, 0x95, 0xea, 0xa0, 0x81, 0xb6, 0x2e, 0x3f, 0x4b}: "H19CheckPointHddService", efi.GUID{0x42, 0x73, 0x04, 0xa1, 0xba, 0xbd, 0xae, 0x4d, 0xa6, 0x7a, 0x40, 0x97, 0x9b, 0x65, 0xc7, 0xf8}: "EfiSocketPowermanagementVar", efi.GUID{0x42, 0x86, 0xd8, 0xf9, 0x37, 0x07, 0xbc, 0x49, 0x81, 0xb5, 0x68, 0x89, 0xcd, 0x57, 0xd9, 0xea}: "SmbiosDxe", efi.GUID{0x42, 0x88, 0x0d, 0x7c, 0xd7, 0xb2, 0x06, 0x4e, 0x86, 0x3d, 0xf8, 0x42, 0x18, 0x01, 0x3b, 0xc7}: "LenovoPttPolicyDxe", efi.GUID{0x42, 0x91, 0x67, 0x43, 0xc4, 0x87, 0xad, 0x44, 0xaf, 0x02, 0xb4, 0x7f, 0x78, 0x2d, 0x6c, 0xf3}: "PeiIpmiLibIpmiPpi", efi.GUID{0x42, 0x95, 0x6d, 0xfb, 0x2d, 0x61, 0x45, 0x4f, 0x87, 0x2f, 0x5c, 0xff, 0x52, 0xe9, 0x3d, 0xcf}: "EfiPeiRecoveryModulePpiGuid", efi.GUID{0x42, 0x97, 0xb9, 0xb3, 0x07, 0xbe, 0xe9, 0x4c, 0xa1, 0xaf, 0xb3, 0x6a, 0xd9, 0x3d, 0x74, 0xb4}: "FjIbvNvramGateReferenceSmm", efi.GUID{0x42, 0x9d, 0xab, 0xa2, 0x7a, 0x96, 0xb3, 0x45, 0x95, 0x07, 0x28, 0xcc, 0xc7, 0x02, 0x1f, 0x51}: "UnknownBoot", efi.GUID{0x42, 0x9d, 0xd5, 0xbf, 0x0f, 0xfe, 0x51, 0x42, 0xb7, 0x72, 0x4b, 0x09, 0x8a, 0x1a, 0xec, 0x85}: "ActiveBios", efi.GUID{0x42, 0xa0, 0x61, 0x23, 0xda, 0xf0, 0x06, 0x40, 0xb3, 0xc1, 0x3a, 0x13, 0x0f, 0xae, 0x8d, 0xf0}: "I2cTouchPanel", efi.GUID{0x42, 0xa3, 0xd5, 0x9f, 0x77, 0x71, 0x37, 0x48, 0x95, 0xa5, 0x34, 0xe0, 0x80, 0xa8, 0x32, 0x8c}: "TxtDxe", efi.GUID{0x42, 0xa6, 0x4a, 0x03, 0xb0, 0x91, 0x60, 0x41, 0xa0, 0xf7, 0xd3, 0x1a, 0x28, 0xe0, 0x13, 0xcb}: "H19DisplayControl", efi.GUID{0x42, 0xa9, 0x80, 0xac, 0xf1, 0x12, 0x96, 0x42, 0x92, 0x2e, 0x30, 0xe9, 0x1f, 0x75, 0x14, 0x12}: "SbSocPhoenixDxe", efi.GUID{0x42, 0xa9, 0x80, 0xac, 0xf1, 0x12, 0x96, 0x42, 0x92, 0x2e, 0x30, 0xe9, 0x1f, 0x75, 0x39, 0x75}: "SbSocRaphaelDxe", efi.GUID{0x42, 0xaa, 0x0d, 0xc4, 0x1d, 0x6e, 0x6f, 0x4f, 0x96, 0xf0, 0x5e, 0x17, 0xbc, 0x8a, 0x1d, 0x4b}: "AmiHeciDeliverRuntimeDxe", efi.GUID{0x42, 0xac, 0x5f, 0x51, 0x80, 0x85, 0xe6, 0x4c, 0x91, 0xc3, 0xaf, 0xf7, 0xd1, 0x56, 0x94, 0xcd}: "SmbiosMiscDxe", efi.GUID{0x42, 0xad, 0xb8, 0xaa, 0xd2, 0x45, 0xad, 0x49, 0x92, 0x19, 0x25, 0x7d, 0x9b, 0x49, 0x59, 0x79}: "BtVendorConfigDxe", efi.GUID{0x42, 0xb4, 0xd7, 0xe2, 0x13, 0x84, 0xb8, 0x45, 0x92, 0x8c, 0xc7, 0x7d, 0xee, 0xe2, 0x5d, 0x4a}: "FjGpioAbstractionReferencePei", efi.GUID{0x42, 0xb7, 0xf0, 0x0a, 0xec, 0x63, 0xbd, 0x45, 0x8d, 0xb6, 0x71, 0xad, 0x7f, 0x2f, 0xe8, 0xe8}: "ShellDriver1HiiGuid", efi.GUID{0x42, 0xb8, 0xc2, 0xd2, 0xb0, 0x46, 0x66, 0x44, 0x88, 0xb8, 0x5a, 0x82, 0x85, 0xe9, 0xce, 0xc2}: "IScsiFontSupport", efi.GUID{0x42, 0xbe, 0xaa, 0xc1, 0xa8, 0x2c, 0x61, 0x43, 0xb3, 0x7a, 0x14, 0x66, 0x52, 0x0e, 0x96, 0x0e}: "FjNvsAreaRt", efi.GUID{0x42, 0xc0, 0x0c, 0x50, 0x00, 0xe3, 0x59, 0x47, 0x92, 0x11, 0x86, 0x8b, 0x9a, 0xd0, 0xe2, 0x07}: "FjUIDxe", efi.GUID{0x42, 0xc0, 0xb6, 0x12, 0x62, 0x7c, 0x66, 0x46, 0xa4, 0x72, 0x89, 0xed, 0x51, 0x33, 0xa9, 0x8c}: "FjIbvInterexchangeDataStorageProtocolSmm", efi.GUID{0x42, 0xc5, 0x43, 0xe1, 0xc4, 0x4f, 0xd9, 0x4d, 0x99, 0xf2, 0x75, 0x71, 0x5c, 0x44, 0xe4, 0x1c}: "IePolicyInitDxe", efi.GUID{0x42, 0xc5, 0x87, 0xbd, 0xff, 0x9c, 0x4a, 0x4d, 0xa8, 0x90, 0x02, 0xb6, 0xaf, 0x98, 0x6f, 0x34}: "PeiOverClock", efi.GUID{0x42, 0xc5, 0x88, 0x1d, 0xf7, 0x9d, 0x4a, 0x42, 0xaa, 0x90, 0x02, 0xb6, 0x1f, 0x28, 0x69, 0x38}: "WdtPei", efi.GUID{0x42, 0xcf, 0xb6, 0x6d, 0x3c, 0x0a, 0xc9, 0x4b, 0x97, 0xdb, 0x9c, 0xed, 0x03, 0xb7, 0xf1, 0x8d}: "DellHotKeySmmProtocol", efi.GUID{0x42, 0xd3, 0xae, 0x37, 0x52, 0x1f, 0xa3, 0x44, 0x8d, 0xba, 0xef, 0x2b, 0xdd, 0xf4, 0x71, 0xd5}: "GabiSettingAbstractionSmm", efi.GUID{0x42, 0xd6, 0x3a, 0x61, 0x48, 0x6a, 0x88, 0x4e, 0x90, 0x05, 0x28, 0x76, 0x93, 0x60, 0xbe, 0x73}: "LenovoSplash2Protocol", efi.GUID{0x42, 0xda, 0x37, 0x4d, 0x0c, 0x3a, 0xda, 0x4e, 0xb9, 0xeb, 0xbc, 0x0e, 0x1d, 0xb4, 0x71, 0x3b}: "PpisNeededByDxeCorePei", efi.GUID{0x42, 0xe7, 0xd7, 0x9f, 0xb4, 0xac, 0x6b, 0x4c, 0x9d, 0x16, 0x91, 0xb3, 0x63, 0x85, 0x82, 0x53}: "HeciControlDxe", efi.GUID{0x42, 0xe9, 0x8d, 0x65, 0xce, 0x03, 0xa3, 0x43, 0x89, 0x1d, 0x46, 0x42, 0x3c, 0x53, 0x45, 0xbc}: "DellMfgSmm", efi.GUID{0x42, 0xf3, 0x1f, 0xaa, 0x68, 0x89, 0x70, 0x4c, 0x88, 0x2b, 0x9e, 0x46, 0xde, 0x9e, 0x4e, 0x78}: "OemSsidDataUpdateDxe", efi.GUID{0x42, 0xf7, 0xdf, 0x59, 0x58, 0x78, 0xb0, 0x42, 0x8d, 0x5b, 0x12, 0xc2, 0xad, 0x00, 0x3d, 0x6c}: "MrcOemHooksPpi", efi.GUID{0x42, 0xfb, 0x1e, 0x4d, 0x65, 0x6a, 0x9c, 0x4c, 0x81, 0xa7, 0xfe, 0x2a, 0x6b, 0x88, 0x5d, 0xa8}: "EventLogPei", efi.GUID{0x42, 0xfc, 0x2b, 0x7f, 0xde, 0x9b, 0x9d, 0x4e, 0xbe, 0x83, 0x1b, 0xb7, 0x52, 0xdf, 0x0c, 0x3a}: "SystemBiosSelfHealingPei", efi.GUID{0x42, 0xfe, 0x49, 0x71, 0x1e, 0x01, 0x93, 0x4e, 0x98, 0xd8, 0xd2, 0x48, 0x69, 0xb7, 0x03, 0x1f}: "I2cMasterPeim", efi.GUID{0x42, 0xfe, 0x8c, 0xb3, 0xa2, 0xf0, 0xa5, 0x40, 0x8f, 0x95, 0xea, 0xe7, 0x1d, 0x32, 0xb5, 0xd3}: "RtHooks", efi.GUID{0x43, 0x02, 0x31, 0x46, 0x03, 0x7b, 0x32, 0x41, 0xbe, 0x44, 0x22, 0x43, 0xfa, 0xca, 0x7c, 0xdd}: "CMDB", efi.GUID{0x43, 0x05, 0xb9, 0xed, 0x1b, 0x66, 0xbd, 0x4c, 0x92, 0x78, 0xd8, 0x8b, 0x4c, 0x60, 0x8b, 0xe9}: "DellIntrusionDetectDxe", efi.GUID{0x43, 0x13, 0x1f, 0x27, 0xd6, 0x20, 0x14, 0x4e, 0x9b, 0x62, 0x3c, 0x02, 0x97, 0xf5, 0x6f, 0x07}: "SmmPowerManagement", efi.GUID{0x43, 0x16, 0xb2, 0x6d, 0x1a, 0x24, 0xc9, 0x4c, 0x82, 0xdd, 0x46, 0xa1, 0xe4, 0x84, 0x5e, 0xcc}: "StrongPasswordPoliciesSync", efi.GUID{0x43, 0x19, 0xc0, 0xc9, 0x0e, 0x98, 0x30, 0xdd, 0xa0, 0x95, 0xa4, 0x11, 0xac, 0xb3, 0xd2, 0x29}: "WtTouchPanelDxe", efi.GUID{0x43, 0x24, 0x64, 0xd7, 0xb7, 0x87, 0x32, 0x48, 0x96, 0x07, 0x0e, 0x1e, 0xa8, 0x1c, 0x1d, 0x86}: "AmiRomLayoutHob", efi.GUID{0x43, 0x32, 0xec, 0xe9, 0x1d, 0xf4, 0xd2, 0x41, 0xa6, 0x36, 0xb0, 0x0f, 0x57, 0x37, 0x12, 0x5b}: "CxlDxeDriver", efi.GUID{0x43, 0x35, 0xf6, 0x56, 0xfb, 0xa9, 0x32, 0x44, 0xaa, 0x6d, 0x44, 0x82, 0x70, 0x05, 0xb7, 0x4a}: "Lily_RTLWlanbin", efi.GUID{0x43, 0x3b, 0x0f, 0x0c, 0xde, 0x44, 0x07, 0x49, 0xb4, 0x78, 0x22, 0x5f, 0x6f, 0x62, 0x89, 0xdc}: "UsbKeyboardLayoutPackageGuid", efi.GUID{0x43, 0x3f, 0xb1, 0xfa, 0x42, 0xbf, 0x0e, 0x45, 0xb6, 0x95, 0xa3, 0x54, 0x79, 0xa9, 0xd6, 0x42}: "DellPowerOffPolicy", efi.GUID{0x43, 0x48, 0x7d, 0x78, 0xac, 0x68, 0x28, 0x4c, 0xbe, 0x53, 0xba, 0xc2, 0x72, 0xba, 0xec, 0xf9}: "DellVariable2RuntimeDxe", efi.GUID{0x43, 0x4b, 0x11, 0xbc, 0xb4, 0x8c, 0xc6, 0x4f, 0x86, 0x2f, 0xfe, 0x22, 0x6b, 0xad, 0x05, 0x0e}: "HpRpsuSetupDxe", efi.GUID{0x43, 0x53, 0x68, 0xc1, 0x19, 0xee, 0xaf, 0x4b, 0xb4, 0x7d, 0x5c, 0x99, 0x5d, 0xf7, 0xfa, 0x2f}: "StaticSkuDataDxeEVB", efi.GUID{0x43, 0x57, 0xa0, 0xb5, 0x71, 0x9b, 0x9b, 0x48, 0xa0, 0xed, 0xa0, 0xeb, 0x39, 0x50, 0xd2, 0x3b}: "SecPeiDxeTimerLibCpu", efi.GUID{0x43, 0x59, 0x68, 0x92, 0x10, 0xd8, 0xff, 0x47, 0xa1, 0x12, 0xcc, 0x84, 0x90, 0x77, 0x6a, 0x1f}: "CORE_PEI", efi.GUID{0x43, 0x62, 0x42, 0x4d, 0x19, 0xbb, 0x62, 0x4f, 0x9d, 0x37, 0xa6, 0xd9, 0x2d, 0xcc, 0x26, 0x28}: "SmbiosOverride", efi.GUID{0x43, 0x63, 0x1e, 0x6f, 0xb6, 0xdc, 0x09, 0x41, 0xa5, 0xb6, 0x20, 0xf5, 0x33, 0x80, 0x62, 0x29}: "RtkUefiLan", efi.GUID{0x43, 0x64, 0xec, 0x3d, 0xaa, 0x30, 0xfd, 0x44, 0x97, 0x9e, 0x84, 0xb9, 0x1d, 0x3c, 0x14, 0x12}: "SbSocPhoenixPei", efi.GUID{0x43, 0x64, 0xec, 0x3d, 0xaa, 0x30, 0xfd, 0x44, 0x97, 0x9e, 0x84, 0xb9, 0x1d, 0x3c, 0xee, 0xfd}: "SbSocRaphaelPei", efi.GUID{0x43, 0x77, 0xd5, 0x3d, 0x56, 0xca, 0x9a, 0x42, 0xb6, 0x4f, 0x77, 0xde, 0x88, 0xf8, 0xac, 0xf6}: "RecoveryBackup", efi.GUID{0x43, 0x83, 0x27, 0x9e, 0xa3, 0x9b, 0x8c, 0x4e, 0x8d, 0x54, 0x5d, 0xf0, 0x4a, 0x99, 0xaf, 0xf8}: "AsusTCG2InfoSetupItem", efi.GUID{0x43, 0x83, 0x54, 0x88, 0xe6, 0x32, 0xd4, 0x45, 0xb1, 0xf1, 0x1d, 0x4f, 0xa7, 0x2d, 0xd4, 0xa3}: "MeFwuDxe", efi.GUID{0x43, 0x88, 0xe3, 0x6f, 0x00, 0x65, 0xc2, 0x42, 0xa5, 0x35, 0x77, 0x69, 0xde, 0xa5, 0x6a, 0xa4}: "FpgaLoaderPeim", efi.GUID{0x43, 0x8f, 0xe5, 0xb4, 0x0a, 0x73, 0xd7, 0x46, 0xb1, 0x5f, 0x1e, 0x06, 0x20, 0x3e, 0xfc, 0x28}: "BxtRefCodePkgTokenSpaceGuid", efi.GUID{0x43, 0x90, 0x43, 0x8c, 0xca, 0x85, 0x7a, 0x46, 0x96, 0xf1, 0xcb, 0x14, 0xf4, 0xd0, 0xdc, 0xda}: "LegacyRegionDxe", efi.GUID{0x43, 0x99, 0xb7, 0x5d, 0x75, 0xda, 0x5e, 0x41, 0x92, 0x82, 0x74, 0x47, 0x1a, 0xa2, 0xcf, 0xaa}: "CmosWarningPageUp", efi.GUID{0x43, 0x9a, 0x1c, 0x08, 0x1f, 0x43, 0x5d, 0x47, 0xb8, 0x4c, 0x93, 0xad, 0x67, 0x14, 0xb8, 0x0c}: "DiskIdm", efi.GUID{0x43, 0x9b, 0x14, 0xc5, 0x85, 0xae, 0x53, 0x4f, 0x99, 0x82, 0xb9, 0x43, 0x35, 0xd3, 0xa9, 0xe7}: "EfiRngAlgorithmSp80090Hmac256Guid", efi.GUID{0x43, 0x9e, 0x7a, 0xa3, 0x77, 0x90, 0x39, 0x45, 0x9b, 0x90, 0xbd, 0x71, 0x9b, 0x03, 0x2b, 0x23}: "SpiControllerDxe", efi.GUID{0x43, 0xae, 0xe2, 0x90, 0xae, 0x90, 0x79, 0x46, 0x6e, 0xdf, 0xbe, 0xa8, 0x1d, 0x4d, 0xc8, 0xac}: "HpRtcInitPei", efi.GUID{0x43, 0xb2, 0xd4, 0xdf, 0x30, 0x04, 0x9d, 0x42, 0x82, 0x9a, 0xca, 0x2b, 0xab, 0x3f, 0xe7, 0xa6}: "AuthenticatedBiosInterfaceSmm", efi.GUID{0x43, 0xc2, 0x51, 0x4f, 0xee, 0x7c, 0x44, 0x41, 0x8e, 0xed, 0x23, 0x4a, 0xc2, 0xda, 0xbd, 0x53}: "EfiPeiPlatformTypeLightningRidgeEX8S1NPpi", efi.GUID{0x43, 0xcf, 0xfc, 0xc7, 0x59, 0x58, 0xbe, 0x4a, 0xbc, 0xb5, 0x4c, 0x16, 0x26, 0xed, 0x8b, 0x03}: "DellPeiDiagLeds", efi.GUID{0x43, 0xd0, 0x6f, 0x16, 0x13, 0xea, 0x48, 0x48, 0xbb, 0x3c, 0x6f, 0xa2, 0x95, 0xb9, 0x46, 0x27}: "DellVariable2Smm", efi.GUID{0x43, 0xd0, 0xf4, 0x6c, 0x22, 0x2d, 0xf0, 0x4f, 0xaa, 0xb0, 0xc5, 0xf9, 0x32, 0x84, 0x74, 0x00}: "SataDeviceFeatureDxe", efi.GUID{0x43, 0xd3, 0xde, 0x20, 0xfa, 0xe5, 0xc2, 0x49, 0xb2, 0x0f, 0xc1, 0x87, 0x98, 0x74, 0x3d, 0x41}: "OemPowerMgmtSmm", efi.GUID{0x43, 0xd6, 0x87, 0xec, 0xa4, 0xeb, 0xb5, 0x4b, 0xa1, 0xe5, 0x3f, 0x3e, 0x36, 0xb2, 0x0d, 0xa9}: "EfiSetupVariableGuid", efi.GUID{0x43, 0xe0, 0x8f, 0x97, 0xaf, 0xd7, 0x2e, 0x42, 0x8a, 0x92, 0x2b, 0x48, 0xe4, 0x63, 0xbd, 0xe6}: "EfiKmsFormatGeneric512Guid", efi.GUID{0x43, 0xe0, 0xc8, 0xa9, 0x6a, 0xb6, 0xb9, 0x42, 0xa4, 0x8f, 0x98, 0xb2, 0x34, 0x91, 0xeb, 0xab}: "Cf9Reset", efi.GUID{0x43, 0xf4, 0x54, 0xca, 0xf2, 0x1e, 0xab, 0x4d, 0x9e, 0x7e, 0x6d, 0xb7, 0xb7, 0x20, 0xb5, 0x87}: "EfiPccardCsProtocol", efi.GUID{0x43, 0xf7, 0xd3, 0xde, 0x2c, 0xce, 0xa6, 0x4b, 0x92, 0xa2, 0xff, 0xce, 0x2a, 0x6d, 0x72, 0xd9}: "PeiServicesTablePointerLibIdt", efi.GUID{0x43, 0xf8, 0x0c, 0x3b, 0x4d, 0x5a, 0xd7, 0x41, 0xb4, 0x2e, 0x12, 0x3b, 0x30, 0x84, 0xcf, 0x88}: "SmmSpdAccess", efi.GUID{0x43, 0xfe, 0xce, 0x8a, 0xa5, 0xd9, 0x1d, 0x47, 0xb8, 0x02, 0x98, 0x79, 0x86, 0x2a, 0xc3, 0xbc}: "FchSmbusDxe", efi.GUID{0x43, 0xff, 0x92, 0x3d, 0x3f, 0x19, 0xbe, 0x46, 0xb0, 0xe1, 0xb8, 0x20, 0x12, 0x4b, 0xf6, 0xd9}: "FjGabiNvramAbstractionSmm", efi.GUID{0x44, 0x03, 0x03, 0x80, 0xa0, 0x4b, 0x2c, 0x4f, 0xa6, 0xac, 0x1e, 0x0e, 0x92, 0x8f, 0x24, 0x70}: "AmiAgesaSbPei", efi.GUID{0x44, 0x03, 0xc8, 0x15, 0x80, 0xf9, 0xf5, 0x4b, 0xaa, 0xa0, 0xbf, 0xbe, 0x02, 0x7a, 0xef, 0x16}: "LenovoEcService", efi.GUID{0x44, 0x04, 0x3e, 0x36, 0x24, 0xdf, 0x98, 0x45, 0x87, 0xd6, 0x0a, 0x8b, 0xb0, 0xb3, 0x1f, 0xca}: "CommonElogSmm", efi.GUID{0x44, 0x0b, 0xbe, 0x43, 0x4b, 0x87, 0xad, 0x4e, 0xb0, 0x9c, 0x24, 0x1a, 0x4f, 0xbd, 0x7e, 0xb3}: "EfiKmsFormatGeneric1024Guid", efi.GUID{0x44, 0x14, 0x9e, 0x9c, 0x61, 0xa3, 0xf9, 0x44, 0x98, 0x88, 0xf8, 0x75, 0x17, 0x12, 0x4b, 0x1a}: "SioSsdtDxe", efi.GUID{0x44, 0x15, 0xfd, 0xf2, 0x94, 0x97, 0x2c, 0x4a, 0x99, 0x2e, 0xe5, 0xbb, 0xcf, 0x20, 0xe3, 0x94}: "EfiSmbios3TableGuid", efi.GUID{0x44, 0x19, 0xdf, 0xb7, 0xe5, 0xc9, 0x3c, 0x47, 0xbf, 0xcb, 0x34, 0xef, 0x81, 0x55, 0xb3, 0x73}: "HpM2IoExpanderSmm", efi.GUID{0x44, 0x1e, 0x4d, 0x7a, 0x31, 0x45, 0xb0, 0x41, 0xa0, 0xc5, 0xb1, 0x9e, 0xd7, 0xa1, 0xb0, 0x97}: "SureStartPoliciesDxe", efi.GUID{0x44, 0x1e, 0xad, 0x31, 0x60, 0x9d, 0x15, 0x4b, 0xb6, 0x0e, 0x8e, 0x70, 0xbe, 0x15, 0x63, 0x23}: "UpekFingerPrintDevice", efi.GUID{0x44, 0x1f, 0xc9, 0xcb, 0xbc, 0xa4, 0x5b, 0x4a, 0x86, 0x96, 0x70, 0x34, 0x51, 0xd0, 0xb0, 0x53}: "ReserveBootGuardFvMainHashKey", efi.GUID{0x44, 0x27, 0x76, 0x84, 0xa7, 0xff, 0x28, 0x42, 0xb4, 0x30, 0x87, 0xae, 0x0c, 0x2c, 0x3b, 0xe7}: "EmulatedEepromSmm", efi.GUID{0x44, 0x30, 0x7b, 0x13, 0xd7, 0xf6, 0x3e, 0x47, 0xa6, 0x25, 0x9f, 0xb9, 0x25, 0x05, 0xc1, 0x80}: "EfiSpiBusProtocolGuid", efi.GUID{0x44, 0x36, 0xbf, 0x21, 0xe7, 0x1c, 0x87, 0x4e, 0x8c, 0x60, 0x0a, 0x5c, 0x60, 0x71, 0x73, 0xa6}: "RemoteFWConfiguration", efi.GUID{0x44, 0x3b, 0x8d, 0x9f, 0x15, 0xa1, 0x87, 0x46, 0x87, 0xea, 0x2c, 0x29, 0xbe, 0xb0, 0x92, 0xad}: "DellMemorySlotConfigSmm", efi.GUID{0x44, 0x45, 0xc5, 0xdf, 0x16, 0x25, 0xa5, 0x47, 0xb2, 0x88, 0x29, 0xf1, 0x00, 0xae, 0xfd, 0x01}: "HpCheckpointFlowControlCsbPrivate", efi.GUID{0x44, 0x48, 0x13, 0x97, 0x5e, 0x24, 0xab, 0x48, 0xbe, 0x0c, 0x07, 0x11, 0x4f, 0x63, 0xc9, 0xe5}: "CrbPxePei", efi.GUID{0x44, 0x4b, 0xee, 0x2d, 0x8e, 0xc0, 0x60, 0x4e, 0x9a, 0xeb, 0xa1, 0x1e, 0x2a, 0xda, 0xa4, 0xb5}: "FchPeiAux", efi.GUID{0x44, 0x4f, 0x83, 0x21, 0x01, 0x92, 0xa3, 0x4a, 0x9b, 0x15, 0xaf, 0xd7, 0x94, 0xd9, 0x3b, 0xc4}: "OemWakeOnRtcPolicy", efi.GUID{0x44, 0x51, 0x1f, 0x47, 0x37, 0x60, 0x52, 0x49, 0x8b, 0x01, 0xcf, 0xf5, 0x86, 0xfd, 0xe6, 0xb3}: "AmiTseOemPortingVar26", efi.GUID{0x44, 0x52, 0xad, 0x19, 0x6b, 0xfd, 0x5c, 0x4e, 0x82, 0x6a, 0x41, 0x46, 0x46, 0xd6, 0xda, 0x6a}: "EfiGlkVariableGuid", efi.GUID{0x44, 0x56, 0xad, 0x0f, 0xdf, 0x7b, 0x75, 0x4a, 0xb5, 0x68, 0x28, 0x7a, 0xe2, 0xeb, 0xd3, 0xa6}: "SmcSwSmiFlashSmm", efi.GUID{0x44, 0x5d, 0x07, 0xfe, 0xf1, 0xd9, 0xa1, 0x4d, 0xae, 0x6a, 0x82, 0x50, 0x55, 0x3c, 0xde, 0x66}: "AmiTseOemPortingVar25", efi.GUID{0x44, 0x5d, 0x88, 0x05, 0x88, 0x95, 0x8e, 0x42, 0x9e, 0xb0, 0x1c, 0xa7, 0xe5, 0x4c, 0xa9, 0x6b}: "TdxPostMem", efi.GUID{0x44, 0x66, 0xe7, 0x55, 0xa5, 0x78, 0x82, 0x4a, 0xa9, 0x00, 0x71, 0x26, 0xa5, 0x79, 0x88, 0x92}: "HeciInit", efi.GUID{0x44, 0x6e, 0xaf, 0x55, 0x6a, 0x08, 0x1e, 0x49, 0x82, 0x9a, 0x7d, 0x95, 0x50, 0x25, 0x39, 0xf5}: "RtSmmOemDriver", efi.GUID{0x44, 0x70, 0x33, 0xa0, 0x9c, 0x94, 0x3e, 0x42, 0xb5, 0x81, 0xda, 0xe2, 0xad, 0x43, 0x55, 0x34}: "VbtInfoGuid", efi.GUID{0x44, 0x7b, 0x6c, 0x39, 0x26, 0x85, 0xae, 0x42, 0xb5, 0xd4, 0x3f, 0x0a, 0xfd, 0x89, 0x01, 0x7e}: "H19MPMSmm", efi.GUID{0x44, 0x80, 0x01, 0x29, 0xc2, 0x0e, 0x50, 0x46, 0x89, 0x1f, 0x08, 0x13, 0x79, 0x78, 0x63, 0xb7}: "MeLock", efi.GUID{0x44, 0x86, 0x7e, 0x19, 0x26, 0x1c, 0x44, 0x76, 0xb5, 0xb4, 0x97, 0x8e, 0xd7, 0x30, 0x1a, 0xd7}: "PlanarSelfRepair", efi.GUID{0x44, 0x91, 0x63, 0x65, 0x92, 0xd4, 0x28, 0x43, 0xa4, 0x98, 0xf4, 0xb5, 0x54, 0x5e, 0x4a, 0x30}: "IffsPartitionStatusProtocol", efi.GUID{0x44, 0x97, 0x04, 0x02, 0xd9, 0x32, 0x38, 0x43, 0xa6, 0x4b, 0xfd, 0xc4, 0x2c, 0x83, 0x6f, 0x9a}: "FchDxe", efi.GUID{0x44, 0x97, 0x04, 0x02, 0xd9, 0x32, 0x38, 0x43, 0xcc, 0xcb, 0xfd, 0xc4, 0x2c, 0x83, 0x6f, 0x9c}: "FchPromontoryPlusDxe", efi.GUID{0x44, 0x97, 0x50, 0x77, 0x07, 0x75, 0x5c, 0x4b, 0xbf, 0x6c, 0x3b, 0xab, 0x83, 0x65, 0x2f, 0x4d}: "BctBaseSmmRV", efi.GUID{0x44, 0x9f, 0x54, 0x99, 0xbb, 0x49, 0x20, 0x48, 0xb9, 0xd2, 0x90, 0x13, 0x29, 0x41, 0x2d, 0x67}: "IdeController", efi.GUID{0x44, 0xa8, 0xd6, 0xb8, 0x11, 0xab, 0x4f, 0x45, 0xb2, 0xaf, 0x2d, 0x8b, 0xcf, 0x6f, 0x4d, 0xca}: "PeripheralDxeInit", efi.GUID{0x44, 0xb4, 0xfc, 0x42, 0x81, 0xb8, 0xd8, 0x49, 0xa6, 0xe9, 0x5a, 0x16, 0x95, 0xfc, 0x9f, 0x3e}: "SysPassword", efi.GUID{0x44, 0xbb, 0x0f, 0x63, 0xde, 0x65, 0xbd, 0x43, 0xb5, 0x03, 0x8d, 0xe5, 0x91, 0x45, 0x36, 0xb5}: "FchProm21GpioPei", efi.GUID{0x44, 0xbd, 0xe2, 0x7e, 0xa0, 0x3d, 0xd4, 0x11, 0x9a, 0x38, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d}: "EfiIsaIoProtocolGuid", efi.GUID{0x44, 0xbf, 0x67, 0xbd, 0xb8, 0xca, 0x1b, 0x4a, 0xa3, 0xf9, 0xfc, 0x3c, 0xe2, 0xd0, 0xe7, 0x64}: "DellUsbMassStorageDxe", efi.GUID{0x44, 0xc1, 0x69, 0x90, 0x7e, 0x0a, 0xef, 0x41, 0x9c, 0x07, 0x41, 0x8b, 0xca, 0x9b, 0xf9, 0x39}: "AcpiDebugSmm", efi.GUID{0x44, 0xc3, 0xbb, 0x67, 0xbc, 0x84, 0x5c, 0x4e, 0xb4, 0xdf, 0xf5, 0xe4, 0xa0, 0x0e, 0x1f, 0x3a}: "SdHostDriver", efi.GUID{0x44, 0xca, 0x42, 0x23, 0x35, 0x3b, 0x34, 0x4a, 0x99, 0x5b, 0xce, 0xde, 0xeb, 0x1a, 0x95, 0x76}: "Intel945Uga", efi.GUID{0x44, 0xcc, 0x73, 0xb2, 0x2a, 0xe6, 0xdc, 0x41, 0x9c, 0xad, 0xbd, 0xb4, 0x23, 0x54, 0x59, 0xd8}: "UnicodeCollationDxe", efi.GUID{0x44, 0xcd, 0x6c, 0xc4, 0x65, 0xd3, 0x2c, 0x4c, 0x9b, 0xdc, 0x42, 0xe6, 0x1b, 0x57, 0xe2, 0x3f}: "FjI2CProtocol", efi.GUID{0x44, 0xce, 0xd9, 0xc9, 0x8d, 0x70, 0x27, 0x4e, 0xb9, 0x89, 0xe3, 0x5a, 0x33, 0x99, 0x9c, 0x28}: "DellSmmMultiPlatform", efi.GUID{0x44, 0xd6, 0xa0, 0x04, 0x99, 0x55, 0x0a, 0x43, 0xa4, 0xe1, 0xc8, 0xfe, 0xe8, 0xcb, 0xf4, 0x6a}: "SmbiosType142", efi.GUID{0x44, 0xd7, 0xfb, 0x22, 0x98, 0xca, 0x6d, 0x4f, 0x98, 0x82, 0x95, 0x42, 0x01, 0x31, 0x2d, 0xa0}: "H2OVarCheckRuntimeDxe", efi.GUID{0x44, 0xdb, 0xa6, 0x3c, 0x14, 0x86, 0xca, 0x4d, 0x8b, 0x95, 0xa3, 0x5e, 0xfd, 0x51, 0x77, 0x9e}: "DxeCheckCMOSHealth", efi.GUID{0x44, 0xde, 0xad, 0xb0, 0x85, 0x29, 0xfe, 0x40, 0x94, 0x84, 0x1b, 0x08, 0x77, 0x29, 0x31, 0xee}: "WheaERST", efi.GUID{0x44, 0xe5, 0xa9, 0x5d, 0x2d, 0xdc, 0x70, 0x46, 0xa3, 0xd5, 0x98, 0x52, 0x36, 0xd5, 0xde, 0x45}: "DellHotSosSmmDriver", efi.GUID{0x44, 0xe8, 0x23, 0xf0, 0x7f, 0x25, 0xca, 0x47, 0x8c, 0x25, 0xcd, 0x91, 0xc5, 0xb0, 0x47, 0xf2}: "AmiSerialUart1", efi.GUID{0x44, 0xea, 0xe5, 0x0c, 0xd3, 0xbe, 0xca, 0x49, 0xae, 0xcc, 0xb5, 0x0a, 0xb9, 0xc5, 0xb0, 0xe9}: "DellRecoverySiDxe", efi.GUID{0x44, 0xfe, 0x82, 0x16, 0x7a, 0xbd, 0x07, 0x44, 0xb7, 0xc7, 0xdc, 0xa3, 0x7c, 0xa3, 0x92, 0x2d}: "EfiTlsConfigurationProtocolGuid", efi.GUID{0x45, 0x02, 0x3e, 0x09, 0xa6, 0xbd, 0xc7, 0x48, 0xa0, 0xb4, 0xc3, 0xc9, 0xbf, 0xb8, 0x7c, 0x79}: "WLANDxe", efi.GUID{0x45, 0x12, 0xaf, 0x30, 0x8e, 0xa5, 0xf7, 0x4e, 0x8c, 0x75, 0xb7, 0x25, 0x93, 0x9b, 0x3b, 0x9f}: "AmdCpmInitSmm", efi.GUID{0x45, 0x18, 0xdf, 0x9d, 0xca, 0xe5, 0x2b, 0x45, 0xb1, 0x05, 0x17, 0xc8, 0x7f, 0xe2, 0x93, 0xe0}: "SceBootOrderSaveRestore", efi.GUID{0x45, 0x1e, 0xcb, 0x2a, 0xa4, 0xdf, 0xf3, 0x4f, 0x8f, 0x81, 0x91, 0xf7, 0xd7, 0x87, 0xd2, 0x2d}: "SystemUsbMemoryManagerSmm", efi.GUID{0x45, 0x24, 0x57, 0x30, 0x9b, 0x4c, 0x26, 0x47, 0xb0, 0x80, 0xd9, 0xae, 0xa2, 0xb0, 0x3d, 0xf1}: "PspPei", efi.GUID{0x45, 0x2c, 0xe6, 0xaf, 0xc9, 0x75, 0x6e, 0x49, 0xa2, 0x3d, 0xda, 0x7b, 0x51, 0x20, 0x9b, 0x72}: "CbsBaseDxeMDN", efi.GUID{0x45, 0x2e, 0x56, 0x4b, 0xb2, 0x2e, 0x5c, 0x4e, 0xbf, 0x2d, 0x57, 0x63, 0xf4, 0x30, 0x4d, 0xfb}: "UsbMassStorageSmm", efi.GUID{0x45, 0x32, 0x3e, 0xf8, 0x27, 0x21, 0x4f, 0x47, 0x88, 0x19, 0x97, 0x4f, 0xdc, 0x13, 0x9c, 0xe4}: "FjSysmanProtocol", efi.GUID{0x45, 0x33, 0x9f, 0x54, 0x83, 0x8b, 0x08, 0x4f, 0xa4, 0xdc, 0x34, 0xbf, 0x55, 0x02, 0x8a, 0x0f}: "ClientCorePeiPreMem", efi.GUID{0x45, 0x35, 0x6f, 0x10, 0x88, 0xb7, 0xb5, 0x4c, 0x9d, 0x2a, 0xce, 0x0c, 0xdb, 0x20, 0x8d, 0xf5}: "EfiHiiThunkProducerGuid", efi.GUID{0x45, 0x36, 0xb5, 0x8c, 0xff, 0x72, 0xa9, 0x42, 0x8e, 0xca, 0x0d, 0x7e, 0xc3, 0xd7, 0x26, 0xc9}: "EcRotUnlockEcPei", efi.GUID{0x45, 0x37, 0xa8, 0x3a, 0x54, 0x94, 0x7a, 0x4f, 0xa7, 0xc0, 0x90, 0xdb, 0xd0, 0x2f, 0xab, 0x8e}: "BdsConnectDriversProtocolGuid", efi.GUID{0x45, 0x3b, 0xb8, 0x4d, 0xa8, 0x9c, 0xed, 0x41, 0x9f, 0xc7, 0xc3, 0xfc, 0x00, 0x26, 0x7b, 0x8e}: "CountryCode", efi.GUID{0x45, 0x3c, 0x11, 0xc0, 0x38, 0x16, 0x3e, 0x4f, 0xbc, 0x29, 0x95, 0xcd, 0x8f, 0xb7, 0x20, 0x05}: "OemNvemDetectDxe", efi.GUID{0x45, 0x49, 0x32, 0x59, 0x44, 0xec, 0x0d, 0x4c, 0xb1, 0xcd, 0x9d, 0xb1, 0x39, 0xdf, 0x07, 0x0c}: "EfiIScsiInitiatorNameProtocolGuid", efi.GUID{0x45, 0x5f, 0x8a, 0x25, 0xd5, 0x00, 0x5b, 0x48, 0x84, 0xdb, 0x0b, 0x6d, 0x4a, 0xab, 0x5e, 0x2f}: "TbtSsdt", efi.GUID{0x45, 0x64, 0x78, 0x77, 0xac, 0x99, 0x2e, 0x4c, 0x9f, 0xf1, 0x99, 0x09, 0x65, 0x77, 0x05, 0x30}: "NCT3933Smm", efi.GUID{0x45, 0x69, 0x85, 0x67, 0xbf, 0xc6, 0x6a, 0x47, 0x92, 0x5d, 0xeb, 0xd1, 0xcd, 0x2e, 0xae, 0x11}: "KEMrJtagDxe", efi.GUID{0x45, 0x6c, 0x91, 0xb8, 0x80, 0x06, 0xfa, 0x40, 0xb8, 0x8f, 0x89, 0xf9, 0xd4, 0x2e, 0xec, 0x51}: "FchSmbusDxe", efi.GUID{0x45, 0x6c, 0xe9, 0x8a, 0x98, 0x97, 0xe5, 0x45, 0xa9, 0x52, 0x14, 0x3b, 0x63, 0x30, 0xa5, 0x40}: "ClientronSmbiosUpdateDxe", efi.GUID{0x45, 0x70, 0xf3, 0xd6, 0xa2, 0x3d, 0xa0, 0x4a, 0x97, 0x77, 0x1d, 0xf7, 0xd9, 0xfc, 0x61, 0xc9}: "iMRRaid", efi.GUID{0x45, 0x71, 0x98, 0xe9, 0x5b, 0xb0, 0x87, 0x47, 0xb9, 0x18, 0x5b, 0xeb, 0x86, 0xc4, 0xab, 0x6f}: "TamperEventS0Protect", efi.GUID{0x45, 0x72, 0x6a, 0x42, 0xbf, 0x6c, 0x9a, 0x49, 0x94, 0xce, 0x02, 0xed, 0x69, 0xaf, 0xc9, 0x93}: "MemoryDiagnosticBios", efi.GUID{0x45, 0x74, 0x41, 0x3d, 0x37, 0x1f, 0xd8, 0x46, 0xbc, 0x1f, 0xd0, 0x70, 0x14, 0x34, 0x49, 0x74}: "AhciPciHcPei", efi.GUID{0x45, 0x77, 0x3a, 0xa9, 0x4c, 0xfc, 0x35, 0x44, 0x8b, 0x60, 0xb5, 0xbc, 0x3b, 0x7e, 0x91, 0x35}: "WheaLastBootError", efi.GUID{0x45, 0x87, 0x0c, 0xff, 0x70, 0x32, 0x39, 0x44, 0xb7, 0x4f, 0x3e, 0x45, 0xf8, 0xc7, 0x70, 0x64}: "IntelGopDriver", efi.GUID{0x45, 0x89, 0x65, 0xba, 0xe1, 0xde, 0xb3, 0x42, 0x9f, 0xa4, 0xbb, 0x6b, 0x22, 0xfb, 0x03, 0xe4}: "efi_pop_mid", efi.GUID{0x45, 0x89, 0x8c, 0x14, 0xa2, 0xf4, 0x86, 0x45, 0xa5, 0x08, 0x42, 0xf5, 0x47, 0x0b, 0x2d, 0x47}: "DellSpdSmbusAccessDxe", efi.GUID{0x45, 0x97, 0x22, 0xf9, 0x1c, 0x98, 0x07, 0x4e, 0x9f, 0xc6, 0x78, 0x95, 0x45, 0xcb, 0x88, 0x18}: "AcpiSupportDxe", efi.GUID{0x45, 0x98, 0x63, 0xbf, 0x46, 0xd0, 0xf9, 0x43, 0xad, 0xbc, 0xd0, 0x08, 0x6a, 0xe2, 0x58, 0x71}: "DellSmmThermalDebugProtocol", efi.GUID{0x45, 0x98, 0xce, 0x52, 0xf4, 0x5a, 0xe2, 0x43, 0xba, 0xfd, 0x23, 0x08, 0x12, 0x54, 0x7a, 0xc2}: "PlatformGpioProtocolGuid", efi.GUID{0x45, 0x99, 0x43, 0x5b, 0x33, 0x43, 0x9f, 0x41, 0x8d, 0x88, 0x84, 0xc6, 0x95, 0x62, 0xe2, 0xf6}: "EfiPlatformTypeCrescentCityProtocol", efi.GUID{0x45, 0x9a, 0xbe, 0xaa, 0x45, 0xb3, 0xd2, 0x49, 0x88, 0xef, 0x6a, 0xd0, 0xb8, 0x5e, 0xd7, 0xe6}: "AmiRomLayoutProtocolGuid", efi.GUID{0x45, 0xa0, 0x01, 0x84, 0x70, 0x6f, 0x05, 0x45, 0x84, 0x71, 0x70, 0x15, 0xb4, 0x03, 0x55, 0xe3}: "UsbBusPei", efi.GUID{0x45, 0xa6, 0x79, 0x0d, 0x91, 0x1d, 0xa6, 0x40, 0xa8, 0x1f, 0x61, 0xe6, 0x98, 0x2b, 0x32, 0xb4}: "EfiNt32PkgTokenSpaceGuid", efi.GUID{0x45, 0xae, 0x62, 0xd4, 0x5a, 0xff, 0x48, 0x44, 0xa4, 0x74, 0xb9, 0x86, 0xe2, 0xa0, 0xd5, 0xb1}: "G3WakeupDxe", efi.GUID{0x45, 0xb4, 0x05, 0xe4, 0x80, 0xb5, 0x7f, 0x4c, 0x9c, 0x1d, 0xf2, 0x26, 0xb8, 0x1f, 0x74, 0xdd}: "BiosPowerSave", efi.GUID{0x45, 0xba, 0x77, 0x68, 0x87, 0x7e, 0x9f, 0x44, 0x98, 0x4f, 0xfd, 0x04, 0x50, 0x3d, 0x7a, 0x28}: "SmcSetPowerStatusSmm", efi.GUID{0x45, 0xd2, 0xe4, 0x78, 0x4d, 0xcd, 0x05, 0x4a, 0xa2, 0xba, 0x47, 0x43, 0xe8, 0x6c, 0xfc, 0xab}: "EfiSecurityPolicyProtocolGuid", efi.GUID{0x45, 0xd6, 0xef, 0x0c, 0x8e, 0x58, 0xd7, 0x4e, 0x99, 0x43, 0x05, 0x48, 0x08, 0xcd, 0x75, 0x72}: "SiFirmwareVersionDxe", efi.GUID{0x45, 0xd7, 0xe8, 0xde, 0xab, 0x82, 0x68, 0x41, 0xb9, 0xd5, 0x24, 0xd4, 0x06, 0x41, 0xe4, 0x41}: "HeciAccessPei", efi.GUID{0x45, 0xdd, 0x82, 0xf2, 0x7b, 0xca, 0xec, 0x40, 0x96, 0x18, 0x99, 0x38, 0x1c, 0x08, 0xf4, 0x09}: "OpaPlatCfg", efi.GUID{0x45, 0xe3, 0x7a, 0x92, 0x7b, 0xbb, 0x4f, 0x43, 0x8d, 0x29, 0x71, 0xbe, 0x0d, 0x12, 0xab, 0x2c}: "AmdFabricZpDxe", efi.GUID{0x45, 0xe3, 0xad, 0x9a, 0x64, 0xe0, 0x55, 0x43, 0xa8, 0x15, 0x87, 0x45, 0x64, 0xdc, 0xa7, 0x60}: "AccessPoint80211", efi.GUID{0x45, 0xe5, 0x3c, 0x84, 0x06, 0x9f, 0x0f, 0x41, 0xba, 0x6c, 0x31, 0x1d, 0x66, 0xad, 0x64, 0x3a}: "MFGDoneSync2Setup", efi.GUID{0x45, 0xe9, 0xce, 0xe5, 0xf3, 0xcc, 0x38, 0x4a, 0xa9, 0xf9, 0x88, 0x13, 0x21, 0xf3, 0xfc, 0xbe}: "GopConfigNexPeim", efi.GUID{0x45, 0xea, 0x9a, 0x5e, 0x01, 0x11, 0x6e, 0x4a, 0x99, 0x05, 0xcc, 0x13, 0xb6, 0xc9, 0x66, 0x08}: "LogoDxe", efi.GUID{0x45, 0xf1, 0x0c, 0xd6, 0x7c, 0xf9, 0x85, 0x40, 0xa7, 0x3d, 0x8d, 0x39, 0x97, 0x57, 0xdf, 0xe9}: "AmiCpmWrapperDxe", efi.GUID{0x45, 0xf1, 0x0c, 0xd6, 0x7c, 0xf9, 0x85, 0x40, 0xa7, 0x3d, 0x8d, 0x39, 0x97, 0x57, 0xdf, 0xea}: "AmiCpmWrapperDxe", efi.GUID{0x45, 0xf3, 0x13, 0x45, 0x25, 0x0a, 0xc4, 0x42, 0x81, 0x14, 0x3a, 0x26, 0xba, 0x6c, 0xf5, 0x70}: "PlatformVTdInfoSamplePei", efi.GUID{0x45, 0xf6, 0xf8, 0x47, 0xeb, 0x8d, 0x04, 0x43, 0xbe, 0xe5, 0xba, 0x87, 0xd6, 0xc6, 0x80, 0xe9}: "DellTcg2Pei", efi.GUID{0x45, 0xfc, 0xde, 0xa6, 0xdc, 0x18, 0xc9, 0x41, 0xb2, 0xa8, 0xd0, 0x08, 0x9d, 0xe0, 0x8d, 0xd3}: "UfsPassThruDxe", efi.GUID{0x45, 0xfd, 0x61, 0x3a, 0xa0, 0x69, 0xad, 0x42, 0xb2, 0x61, 0x24, 0xda, 0x45, 0x1b, 0xf4, 0x42}: "ForceRecovery", efi.GUID{0x45, 0xfe, 0x1c, 0x71, 0xef, 0xde, 0xf5, 0x4c, 0xa0, 0x94, 0xe8, 0x52, 0x27, 0x61, 0xce, 0xd6}: "PdHostInterfaceTiSmm", efi.GUID{0x45, 0xfe, 0x34, 0x68, 0xee, 0x4a, 0xc6, 0x4f, 0xbc, 0xb5, 0xff, 0x45, 0xb7, 0xa8, 0x71, 0xe2}: "BeagleBoardTokenSpaceGuid", efi.GUID{0x45, 0xff, 0x84, 0xf0, 0xfa, 0xf9, 0x9e, 0x4e, 0x8d, 0xff, 0xe2, 0xd7, 0x80, 0xd2, 0x2c, 0xc2}: "EfiCpuRasProtocol", efi.GUID{0x46, 0x0d, 0x3e, 0xe0, 0x63, 0x52, 0x45, 0x48, 0xb0, 0xa4, 0x58, 0xd5, 0x7b, 0x31, 0x77, 0xe2}: "UbaConfigDatabaseProtocol", efi.GUID{0x46, 0x0e, 0x01, 0x29, 0xf4, 0x1c, 0x5f, 0x46, 0xbe, 0xe5, 0x0f, 0xd9, 0xe5, 0x53, 0x5a, 0xd7}: "FjLvdsFwDownPei", efi.GUID{0x46, 0x1b, 0xd5, 0x38, 0x75, 0xd2, 0x5c, 0x47, 0xa9, 0x51, 0x80, 0xa7, 0xe1, 0xcf, 0x38, 0xb1}: "AmdCpmSensorFusionDxe", efi.GUID{0x46, 0x1f, 0x0c, 0xe1, 0xcb, 0x6e, 0xa7, 0x47, 0xba, 0x9a, 0x1c, 0x29, 0xd0, 0x74, 0xa0, 0x22}: "AmdSocAm5PhxPei", efi.GUID{0x46, 0x25, 0x2f, 0x88, 0x1f, 0xef, 0x90, 0x40, 0x9f, 0x9c, 0x93, 0x84, 0x5a, 0xd7, 0x84, 0x1c}: "SmBusControllerIdentifier", efi.GUID{0x46, 0x27, 0x09, 0xc0, 0x7b, 0xb6, 0x02, 0x4d, 0xff, 0xff, 0xff, 0xff, 0x78, 0xe0, 0x38, 0xd1}: "XnoteAcpiPlatformDxe", efi.GUID{0x46, 0x29, 0xed, 0x94, 0xea, 0x24, 0xdf, 0x11, 0xaf, 0x40, 0x43, 0x00, 0xb0, 0xd2, 0xba, 0x57}: "LegacyMemoryAllocatorDxe", efi.GUID{0x46, 0x34, 0xf8, 0x4e, 0xc5, 0xdc, 0xbe, 0x46, 0xa9, 0xa8, 0x87, 0x03, 0x90, 0xa6, 0xe2, 0x8b}: "AmdAblPerformanceDxe", efi.GUID{0x46, 0x3e, 0xbc, 0x98, 0x55, 0x04, 0x53, 0x4b, 0xb2, 0x7d, 0x7c, 0x96, 0xef, 0xb4, 0x40, 0xb8}: "DellSpdSmbusAccessDxe", efi.GUID{0x46, 0x49, 0x2c, 0x78, 0x67, 0x01, 0x2b, 0x4c, 0x94, 0x9d, 0x8d, 0xc4, 0xe5, 0x3d, 0x25, 0xa7}: "FjUartModeSelection", efi.GUID{0x46, 0x49, 0x6f, 0xbf, 0x69, 0xf3, 0xe9, 0x47, 0x90, 0x84, 0x23, 0x0c, 0x7f, 0x9e, 0x73, 0x7a}: "BCdpfLauncher", efi.GUID{0x46, 0x4e, 0xb6, 0xc8, 0x19, 0x98, 0xab, 0x45, 0x87, 0x5d, 0x09, 0xdf, 0xda, 0x6d, 0x8b, 0x1b}: "Firewire", efi.GUID{0x46, 0x52, 0x59, 0x9a, 0x53, 0x6f, 0x26, 0x45, 0xb8, 0x56, 0x3c, 0x06, 0x67, 0xf4, 0xda, 0x67}: "LEMAllDriversConnectedEventHook", efi.GUID{0x46, 0x5f, 0x14, 0xe8, 0x86, 0xb6, 0x68, 0x40, 0xa2, 0xfa, 0x13, 0xa5, 0x8c, 0xb3, 0x8b, 0xe6}: "ManufacturingModeSmm", efi.GUID{0x46, 0x61, 0x4e, 0x23, 0xc6, 0x1f, 0x08, 0x45, 0x82, 0x31, 0x12, 0x94, 0xcc, 0x28, 0xda, 0x4c}: "FjGrasscarryLaunch", efi.GUID{0x46, 0x75, 0x1a, 0x01, 0x4e, 0xdb, 0x19, 0x41, 0xa2, 0x16, 0x9a, 0x31, 0x67, 0xb6, 0xaf, 0x56}: "ComputraceDxe", efi.GUID{0x46, 0x77, 0x29, 0xf1, 0xd5, 0x69, 0x13, 0x40, 0x84, 0xcc, 0x0f, 0xeb, 0x09, 0xcc, 0xd5, 0xc3}: "PlatformInfoBootMsgDxe", efi.GUID{0x46, 0x7c, 0x65, 0x2b, 0xd6, 0x9a, 0xa5, 0x45, 0xab, 0x5c, 0x71, 0xce, 0x33, 0x64, 0xaa, 0x3d}: "HQEepromSmm", efi.GUID{0x46, 0x7c, 0xa9, 0x4e, 0x91, 0x74, 0xfd, 0x4d, 0xb4, 0x42, 0x74, 0x70, 0x10, 0xf3, 0xce, 0x5f}: "Main", efi.GUID{0x46, 0x7c, 0xa9, 0x4e, 0x91, 0x74, 0xfd, 0x4d, 0xb5, 0x42, 0x74, 0x70, 0x10, 0xf3, 0xce, 0x7f}: "HpNetworkTransferWorker", efi.GUID{0x46, 0x84, 0x95, 0x16, 0xb7, 0x19, 0x0b, 0x48, 0xb0, 0x47, 0x74, 0x85, 0xad, 0x3f, 0x71, 0x6d}: "FdtHobGuid", efi.GUID{0x46, 0x87, 0x0c, 0xff, 0x70, 0x32, 0x39, 0x44, 0xb7, 0x4f, 0x3e, 0x45, 0xf8, 0xc8, 0x75, 0x66}: "gMXMsigned", efi.GUID{0x46, 0x87, 0x0c, 0xff, 0x70, 0x32, 0x39, 0x44, 0xb7, 0x4f, 0x3e, 0x45, 0xf8, 0xc8, 0xa5, 0x88}: "gMXMsignedN16M2", efi.GUID{0x46, 0x87, 0x0c, 0xff, 0x70, 0x32, 0x39, 0x44, 0xb7, 0x4f, 0x3e, 0x45, 0xf8, 0xc8, 0xa5, 0x89}: "gMXMsignedN16E", efi.GUID{0x46, 0x88, 0xce, 0x99, 0x18, 0xdb, 0x9e, 0x4d, 0xb3, 0xbe, 0x8b, 0x96, 0xe1, 0xcd, 0x55, 0xce}: "SioMec152xPei", efi.GUID{0x46, 0x89, 0xef, 0x18, 0xf5, 0x68, 0xe6, 0x49, 0xb2, 0x02, 0xce, 0x90, 0xc3, 0xee, 0xf1, 0xc9}: "IchSmmDispatcherDxe", efi.GUID{0x46, 0x8c, 0xb6, 0x39, 0xfb, 0xf7, 0x1b, 0x44, 0xb6, 0xec, 0x16, 0xb0, 0xf6, 0x98, 0x21, 0xf3}: "EfiCapsuleReportGuid", efi.GUID{0x46, 0x8c, 0xb8, 0x7e, 0xff, 0x22, 0xbd, 0x4c, 0x8f, 0xe7, 0x49, 0x53, 0x83, 0xfa, 0xb1, 0xe4}: "PciBoardDxeInit", efi.GUID{0x46, 0x91, 0x41, 0x46, 0x6e, 0x3d, 0x3c, 0x47, 0xa3, 0xaa, 0x22, 0xab, 0x40, 0x4f, 0x19, 0x7c}: "FjDxeServicesTableDxe", efi.GUID{0x46, 0x92, 0x4e, 0x9a, 0x53, 0xd5, 0xd5, 0x11, 0x87, 0xe2, 0x00, 0x06, 0x29, 0x45, 0xc3, 0xb9}: "EfiStatusCodeDataTypeDebugGuid", efi.GUID{0x46, 0x92, 0x72, 0x21, 0xf1, 0x5d, 0xa1, 0x46, 0xa5, 0xc6, 0x24, 0x84, 0xbc, 0xd7, 0x06, 0xfb}: "LEMSetVariablePreInit", efi.GUID{0x46, 0x94, 0x47, 0x82, 0x71, 0x53, 0xf7, 0x44, 0x87, 0xbf, 0xc8, 0x08, 0xbc, 0x9a, 0x99, 0x25}: "SplashPei", efi.GUID{0x46, 0xa0, 0x01, 0x84, 0x70, 0x6f, 0x05, 0x45, 0x84, 0x71, 0x70, 0x15, 0xb4, 0x03, 0x55, 0xe3}: "UsbBotPei", efi.GUID{0x46, 0xa4, 0x33, 0x41, 0x9b, 0x3e, 0x3e, 0x46, 0x98, 0x2d, 0x0b, 0x7a, 0x09, 0xb1, 0xf1, 0x38}: "FjShutdownLogDxe", efi.GUID{0x46, 0xae, 0xf9, 0xc2, 0x37, 0x34, 0xef, 0x4f, 0x9c, 0xb1, 0x9a, 0x56, 0x8b, 0x28, 0x2f, 0xee}: "FspSecCoreM", efi.GUID{0x46, 0xb0, 0x71, 0xcc, 0x07, 0xcf, 0xae, 0x4d, 0xae, 0xad, 0x70, 0x46, 0x84, 0x5b, 0xcd, 0x8a}: "LenovoVideoInitDxe", efi.GUID{0x46, 0xb7, 0x13, 0x6e, 0xdd, 0x80, 0xdc, 0x4e, 0xb1, 0x78, 0xd2, 0x5b, 0xd4, 0x83, 0x8f, 0xba}: "HwmThermalSmm", efi.GUID{0x46, 0xb8, 0xb2, 0x90, 0x6d, 0xca, 0x6e, 0x4d, 0xa8, 0xd3, 0xc1, 0x40, 0xa8, 0xe1, 0x10, 0xac}: "SystemFirmwareDescriptor", efi.GUID{0x46, 0xbd, 0x03, 0x7f, 0x5f, 0xf0, 0xa4, 0x44, 0xb0, 0x0d, 0xca, 0x6a, 0x16, 0x0b, 0xbe, 0x14}: "SalPostMem", efi.GUID{0x46, 0xca, 0xdf, 0x05, 0x1f, 0x14, 0xdf, 0x11, 0x85, 0x08, 0xe3, 0x8c, 0x08, 0x91, 0xc4, 0xe2}: "HfsPlusDxe", efi.GUID{0x46, 0xcf, 0x27, 0xf8, 0x8f, 0x8a, 0xf9, 0x43, 0xbd, 0x99, 0x0e, 0x7f, 0x52, 0x06, 0x90, 0x7d}: "FjSysmanTeutatesSmmWatchdog", efi.GUID{0x46, 0xd1, 0xae, 0x4b, 0x79, 0xb5, 0x59, 0x49, 0x81, 0x50, 0xf9, 0x3f, 0x1c, 0x7a, 0x0b, 0x68}: "IntelGraphicsPreMemPeim", efi.GUID{0x46, 0xe3, 0xee, 0x56, 0x0c, 0x50, 0x36, 0x49, 0x95, 0x1a, 0x2d, 0xa5, 0xf0, 0xff, 0x39, 0xbb}: "DellGrasslakeConfig", efi.GUID{0x46, 0xe8, 0xd6, 0x00, 0xc7, 0x49, 0x17, 0x45, 0xac, 0x79, 0xa7, 0x0e, 0x8b, 0xc0, 0x55, 0x3c}: "AmdMemChanXLatSspPei", efi.GUID{0x46, 0xec, 0x94, 0x28, 0x7a, 0xc6, 0x56, 0x42, 0x87, 0xde, 0x34, 0xa7, 0x41, 0xd8, 0x59, 0x82}: "Mct", efi.GUID{0x46, 0xf7, 0x4d, 0x63, 0x4b, 0x6f, 0x84, 0x46, 0x93, 0xe6, 0x52, 0x66, 0x53, 0xe7, 0xc3, 0x5a}: "OemThermalPolicy", efi.GUID{0x46, 0xf8, 0x84, 0x02, 0xb7, 0x2c, 0x60, 0x49, 0x8d, 0xb2, 0x47, 0xaa, 0x71, 0x51, 0x3a, 0xd5}: "menu_selection", efi.GUID{0x46, 0xfa, 0x06, 0x1b, 0x5b, 0xe6, 0x57, 0x42, 0x88, 0x55, 0x58, 0x28, 0xb7, 0x59, 0x1e, 0x61}: "FingerPrintHDDPasswordChecking", efi.GUID{0x47, 0x03, 0x83, 0xe3, 0x44, 0x48, 0xf1, 0x49, 0x95, 0x70, 0x18, 0xaa, 0x37, 0x7b, 0x71, 0x1c}: "AppleDiagnosticVault", efi.GUID{0x47, 0x0d, 0x51, 0x15, 0xdc, 0xfa, 0xf4, 0x41, 0x8b, 0x9d, 0xfc, 0x32, 0x3c, 0x82, 0x1f, 0xe2}: "VerboseDisableCursor", efi.GUID{0x47, 0x10, 0x50, 0x68, 0x1f, 0x11, 0xd2, 0x4b, 0xaa, 0x33, 0x6c, 0x1e, 0xce, 0x27, 0x12, 0x59}: "ApplePlatformInitDxe", efi.GUID{0x47, 0x10, 0xe5, 0x9a, 0xb9, 0xe0, 0x50, 0x4a, 0x9e, 0x72, 0x84, 0xe3, 0x59, 0xd2, 0x01, 0x89}: "OpromUpdateDxeLightningRidgeEXECB2", efi.GUID{0x47, 0x12, 0x73, 0xbe, 0xa2, 0x5f, 0x5b, 0x4d, 0x9d, 0xb6, 0x53, 0x85, 0xcc, 0xcd, 0x59, 0xe1}: "UsbOcUpdateDxeLightningRidgeEXECB3", efi.GUID{0x47, 0x21, 0xa0, 0x28, 0xd6, 0x19, 0x1c, 0x49, 0xaf, 0xef, 0xdb, 0x35, 0x1b, 0xf4, 0x61, 0x24}: "DiagnosticsJumper", efi.GUID{0x47, 0x27, 0x94, 0x9b, 0x4e, 0x15, 0x29, 0x4d, 0xa4, 0x36, 0xbf, 0x71, 0x00, 0xc8, 0xb5, 0x3b}: "Ip4Config2NvDataGuid", efi.GUID{0x47, 0x2d, 0xb9, 0x02, 0x27, 0x52, 0x18, 0x4c, 0x9f, 0xf5, 0x88, 0x85, 0x50, 0xc3, 0x95, 0xb9}: "MktmeLateInit", efi.GUID{0x47, 0x31, 0x07, 0x55, 0x8a, 0xbe, 0x3d, 0x49, 0x83, 0x42, 0xbd, 0xfc, 0x17, 0xe7, 0xf2, 0xba}: "AmdNbioBaseRplPei", efi.GUID{0x47, 0x35, 0xf4, 0xa7, 0xf1, 0x1f, 0xcc, 0x4b, 0x94, 0x25, 0xa0, 0x82, 0x90, 0x9b, 0xcd, 0x0d}: "SystemSureBootDxe", efi.GUID{0x47, 0x36, 0xf0, 0xb4, 0xc2, 0x68, 0xe7, 0x49, 0x4a, 0x4a, 0xeb, 0xa3, 0x99, 0xf5, 0x5e, 0xb2}: "HpLinuxRepsetWrapperWks", efi.GUID{0x47, 0x38, 0x0c, 0x52, 0xa0, 0x71, 0xe7, 0x40, 0xa8, 0x95, 0x8c, 0x89, 0x97, 0xc3, 0x34, 0x55}: "AmdMemFeatPei", efi.GUID{0x47, 0x43, 0xb3, 0x54, 0x78, 0xc4, 0x65, 0x48, 0x84, 0x15, 0x74, 0x2e, 0x51, 0x55, 0xb2, 0x04}: "UefiRestNetwork", efi.GUID{0x47, 0x47, 0x37, 0x28, 0xff, 0x76, 0xb3, 0x41, 0x97, 0x40, 0x38, 0x1e, 0xfa, 0xef, 0x13, 0xbc}: "PspPlatform", efi.GUID{0x47, 0x56, 0x69, 0xd4, 0x01, 0x7d, 0x96, 0x4d, 0xac, 0x7e, 0xbb, 0x90, 0xee, 0xe2, 0x9e, 0xb9}: "H2OCryptoServicesPostMemPei", efi.GUID{0x47, 0x5b, 0x77, 0xe2, 0x53, 0xd4, 0xe3, 0x4e, 0xad, 0xa7, 0x39, 0x1a, 0x1b, 0x05, 0xac, 0x17}: "PciSioSerialDxe", efi.GUID{0x47, 0x61, 0xd4, 0x1e, 0xe3, 0x76, 0x71, 0x41, 0xbc, 0xe5, 0x42, 0xd3, 0x68, 0xd2, 0x6a, 0xa6}: "DebugPortTableDxe", efi.GUID{0x47, 0x6f, 0xea, 0xe2, 0x78, 0xe6, 0xfa, 0x47, 0x8c, 0x1b, 0x02, 0xa0, 0x3e, 0x82, 0x5c, 0x6e}: "TcgMorLockSmm", efi.GUID{0x47, 0x72, 0x45, 0x29, 0x7e, 0x97, 0xaa, 0x46, 0x92, 0xe0, 0x46, 0xe1, 0x0e, 0x24, 0x92, 0x25}: "AsusPeiGopVideo", efi.GUID{0x47, 0x72, 0x8d, 0x97, 0xea, 0x98, 0x14, 0x4a, 0xbf, 0x98, 0x32, 0xa3, 0x5f, 0x34, 0x56, 0x6b}: "AcpiPowerButton", efi.GUID{0x47, 0x76, 0x00, 0xe3, 0x8f, 0x79, 0x48, 0xff, 0xac, 0x61, 0xe0, 0xb8, 0xd1, 0xb6, 0x63, 0x27}: "PlatformDataRegion", efi.GUID{0x47, 0x87, 0x57, 0xd1, 0x2c, 0x1a, 0x72, 0x49, 0x8d, 0x56, 0x3c, 0x8b, 0x93, 0xed, 0x25, 0xa5}: "StaticSkuDataDxeXPV", efi.GUID{0x47, 0x8e, 0xfd, 0x69, 0x61, 0xa1, 0x50, 0x45, 0xb0, 0x1a, 0x55, 0x94, 0xce, 0xb2, 0xb2, 0xb2}: "IdeBusDxe", efi.GUID{0x47, 0x96, 0x2a, 0x82, 0x79, 0x54, 0xf0, 0x44, 0xac, 0x85, 0x88, 0x69, 0x07, 0x4d, 0x76, 0xad}: "DellForeignKeyboardLayout", efi.GUID{0x47, 0x97, 0x9a, 0x66, 0x5e, 0xa6, 0x39, 0x4f, 0x8f, 0xd6, 0x95, 0x57, 0x57, 0x3b, 0xc9, 0xda}: "DellSystemIdPolicy", efi.GUID{0x47, 0x98, 0xc6, 0x94, 0xcf, 0xa0, 0x35, 0x46, 0xaa, 0x23, 0xd2, 0x66, 0x7b, 0xd7, 0xf7, 0x91}: "SdioBusInitProtocol", efi.GUID{0x47, 0xa2, 0x51, 0x15, 0x31, 0xbb, 0x93, 0x43, 0x8b, 0xb4, 0x10, 0x50, 0x9a, 0xe2, 0xf1, 0x8f}: "ChargeLedDebugPei", efi.GUID{0x47, 0xa4, 0x03, 0x69, 0x4f, 0xcb, 0xf6, 0x45, 0x89, 0xa2, 0x7e, 0x7e, 0x2f, 0x9e, 0xe1, 0x4c}: "InstallMsdm", efi.GUID{0x47, 0xab, 0x49, 0x45, 0x60, 0x6e, 0x93, 0x42, 0xb9, 0x1d, 0x31, 0xb6, 0x10, 0xad, 0x80, 0x56}: "EfiEsrtOperationProtocolGuid", efi.GUID{0x47, 0xad, 0x48, 0x73, 0x40, 0x2e, 0x46, 0x48, 0xb6, 0x58, 0xb9, 0x21, 0x34, 0x69, 0xc1, 0x30}: "DellEcPolicy2", efi.GUID{0x47, 0xb9, 0xae, 0xe1, 0x0f, 0x94, 0x35, 0x46, 0xa8, 0x7f, 0x81, 0x7a, 0xb5, 0x1b, 0x72, 0x61}: "DualDieRecoveryPei", efi.GUID{0x47, 0xba, 0x96, 0xa1, 0xd3, 0x8e, 0x88, 0x41, 0xa7, 0x65, 0xfa, 0x96, 0x4d, 0xd7, 0xed, 0x7a}: "LenovoSystemErrorLogDxe", efi.GUID{0x47, 0xba, 0xfa, 0x60, 0x9b, 0x41, 0x50, 0x4e, 0x85, 0xc7, 0x20, 0xe8, 0x6a, 0xee, 0x00, 0xfc}: "ASRockNetTcpWrapper", efi.GUID{0x47, 0xc3, 0x9d, 0xa7, 0xb4, 0xde, 0x4e, 0x4a, 0x84, 0x97, 0xca, 0x5f, 0x8e, 0x7f, 0x06, 0x01}: "DellImageServerSmm", efi.GUID{0x47, 0xc5, 0x87, 0xbd, 0xff, 0x93, 0x4a, 0x4f, 0xa8, 0x90, 0x02, 0xb1, 0xaf, 0x98, 0x6f, 0x34}: "OverclockInterface", efi.GUID{0x47, 0xc8, 0x93, 0x5e, 0x6d, 0x45, 0xb3, 0x40, 0xa6, 0xb4, 0x78, 0xb0, 0xc9, 0xcf, 0x7f, 0x20}: "EfiEapManagement2ProtocolGuid", efi.GUID{0x47, 0xca, 0xd7, 0xd7, 0x3b, 0x66, 0x8d, 0x48, 0xae, 0xe3, 0x6a, 0x35, 0xdc, 0xb8, 0x9e, 0x2a}: "SbGlobalSmiControl", efi.GUID{0x47, 0xcc, 0xcb, 0x63, 0xba, 0x65, 0x19, 0x4c, 0x9f, 0xc0, 0x0a, 0xd8, 0x1c, 0x9d, 0xb8, 0x18}: "SleepStateSmi", efi.GUID{0x47, 0xd4, 0xf8, 0x44, 0x21, 0xa0, 0xaa, 0x46, 0x98, 0x11, 0x12, 0xc1, 0xea, 0x02, 0x11, 0x9d}: "BiosConnectLauncher", efi.GUID{0x47, 0xdd, 0x3d, 0xc0, 0x0a, 0xdc, 0x19, 0x43, 0x9f, 0xec, 0x44, 0xb0, 0x78, 0xc2, 0x42, 0xe6}: "AmiTseOemPortingVar13", efi.GUID{0x47, 0xdf, 0xbe, 0xed, 0xa3, 0x6e, 0x12, 0x45, 0x83, 0xc1, 0x70, 0xf4, 0x76, 0x9d, 0x4b, 0xde}: "Capsule_A_fvi", efi.GUID{0x47, 0xe1, 0x79, 0xf4, 0x25, 0xa1, 0xd4, 0x11, 0xbc, 0xfc, 0x00, 0x80, 0xc7, 0x3c, 0x88, 0x81}: "WinNtBlockIoDxe", efi.GUID{0x47, 0xec, 0x9a, 0x3b, 0x79, 0xfc, 0xa1, 0x4c, 0x8f, 0x53, 0xcf, 0xba, 0x75, 0xda, 0xa6, 0xfb}: "SchenkerSetupPei", efi.GUID{0x47, 0xec, 0xde, 0x5c, 0x38, 0x25, 0xe7, 0x11, 0xa4, 0x38, 0xb8, 0xe8, 0x56, 0x2c, 0xba, 0xfa}: "AppleVoiceOver", efi.GUID{0x47, 0xf0, 0x47, 0xb3, 0x8c, 0xaf, 0x0e, 0x49, 0xac, 0x07, 0x0a, 0xa9, 0xb7, 0xe5, 0x38, 0x58}: "EfiWinNtSystemConfigGuid", efi.GUID{0x47, 0xf5, 0xdd, 0xf4, 0xf9, 0x08, 0xb3, 0x40, 0x94, 0x08, 0x20, 0x23, 0xe8, 0xdb, 0x88, 0x74}: "CPURDRAND", efi.GUID{0x47, 0xf8, 0xa4, 0x3f, 0xeb, 0xd8, 0xf4, 0x4d, 0xbd, 0x49, 0x10, 0x3a, 0x0a, 0x84, 0x7b, 0xbc}: "EfiKmsFormatMdc4128Guid", efi.GUID{0x48, 0x0d, 0xf6, 0x08, 0x47, 0xf4, 0xb3, 0x42, 0x83, 0xee, 0xbe, 0xac, 0xde, 0x58, 0x82, 0x04}: "PolicyInitDxe", efi.GUID{0x48, 0x10, 0x23, 0xd3, 0xd7, 0xb7, 0xfc, 0x46, 0x80, 0xf8, 0x2f, 0x7b, 0x22, 0x95, 0x86, 0xc5}: "UTDMUIApp", efi.GUID{0x48, 0x19, 0xac, 0x53, 0xd0, 0x0e, 0x8a, 0x42, 0xb4, 0xdd, 0xd2, 0xff, 0xf2, 0xf5, 0x77, 0x6f}: "LenovoFlashProtectPei", efi.GUID{0x48, 0x1e, 0x4e, 0x07, 0x32, 0x81, 0xa1, 0x47, 0x8c, 0x2c, 0x3f, 0x14, 0xad, 0x9a, 0x66, 0xdc}: "EfiGlobalNvsAreaProtocolGuid", efi.GUID{0x48, 0x20, 0x30, 0x64, 0x06, 0x70, 0xc4, 0x49, 0xaf, 0x0a, 0x5a, 0xce, 0x61, 0x25, 0x74, 0x37}: "ConfigRouting", efi.GUID{0x48, 0x24, 0x11, 0x5a, 0x23, 0x05, 0x21, 0x46, 0xb9, 0x6c, 0xcf, 0x32, 0xf6, 0xae, 0xf3, 0xa4}: "MemoryStorageKernelSmm", efi.GUID{0x48, 0x25, 0x09, 0x78, 0xcf, 0x48, 0x9b, 0x44, 0x9b, 0xdb, 0xf6, 0x38, 0x49, 0x85, 0x64, 0x60}: "AmiProtocolInternalHlxeGuid", efi.GUID{0x48, 0x29, 0x75, 0xe3, 0xa1, 0xb9, 0x70, 0x47, 0x90, 0xc4, 0xdf, 0x41, 0xc3, 0x89, 0x86, 0xbe}: "QemuVideoDxe", efi.GUID{0x48, 0x2d, 0xab, 0x54, 0x67, 0x80, 0xa2, 0x42, 0xba, 0xed, 0x71, 0xf8, 0xe0, 0x4f, 0xfe, 0x6d}: "BootDevTypeOrderInfoDxe", efi.GUID{0x48, 0x30, 0x6a, 0x13, 0x2a, 0x75, 0xf6, 0x4b, 0xa7, 0x57, 0x09, 0x36, 0x11, 0x95, 0x38, 0xed}: "UiStringPackGuid", efi.GUID{0x48, 0x31, 0xd3, 0xaf, 0x1f, 0xa9, 0x56, 0x42, 0x84, 0xa8, 0x2f, 0x89, 0x76, 0xce, 0x77, 0xaf}: "PowerReportDxe", efi.GUID{0x48, 0x31, 0xd3, 0xed, 0x1f, 0xa9, 0x57, 0x42, 0x84, 0xa8, 0x2f, 0x29, 0x76, 0xce, 0x79, 0xaf}: "LGPowerReportDxe", efi.GUID{0x48, 0x31, 0xd3, 0xed, 0x1f, 0xa9, 0x57, 0x42, 0x84, 0xa8, 0x2f, 0x29, 0x76, 0xce, 0x8a, 0xbe}: "LGEcCommunicationDxe", efi.GUID{0x48, 0x31, 0xd3, 0xed, 0x1f, 0xa9, 0x57, 0x42, 0x84, 0xa8, 0x3a, 0x1a, 0x76, 0xce, 0x8a, 0xbe}: "LGBdsFlowDxe", efi.GUID{0x48, 0x33, 0xda, 0x72, 0x1e, 0x8d, 0x55, 0x46, 0xaf, 0x88, 0x84, 0xed, 0x02, 0x5f, 0xb2, 0x68}: "FjGabiMiscellaneousSmm", efi.GUID{0x48, 0x36, 0xc5, 0x67, 0x56, 0xda, 0x26, 0x47, 0xae, 0x21, 0xfb, 0xa4, 0xd0, 0x46, 0x86, 0xb3}: "RsdpPlus", efi.GUID{0x48, 0x39, 0x2f, 0x4a, 0x0a, 0xc4, 0x9d, 0x46, 0x86, 0xe7, 0x4e, 0xdc, 0x54, 0x13, 0x3b, 0x46}: "FchKernDxe", efi.GUID{0x48, 0x45, 0x86, 0x76, 0x61, 0x02, 0x0e, 0x41, 0xa8, 0xb4, 0x01, 0x61, 0x5b, 0xfa, 0x3e, 0x0a}: "FwKeyHobPei", efi.GUID{0x48, 0x46, 0x4a, 0xdd, 0xe7, 0x2d, 0x65, 0x46, 0x96, 0x4d, 0x21, 0xd9, 0xef, 0x5f, 0xb4, 0x46}: "EfiCcFinalEventsTable", efi.GUID{0x48, 0x4e, 0x62, 0x04, 0x4e, 0xd2, 0x70, 0x46, 0xbd, 0xfd, 0x12, 0x4d, 0xd9, 0x2f, 0x3d, 0xad}: "PxeDriverI225", efi.GUID{0x48, 0x4e, 0x7d, 0x12, 0xc0, 0x85, 0xba, 0x4f, 0xb6, 0x78, 0xb1, 0x4e, 0x94, 0x92, 0xaa, 0xdf}: "FchKernPei", efi.GUID{0x48, 0x50, 0xa5, 0xda, 0x3f, 0xbc, 0xd9, 0x4d, 0x99, 0x9b, 0xf5, 0x8a, 0xbf, 0x2b, 0xbf, 0xcc}: "DxePlatform", efi.GUID{0x48, 0x55, 0x9d, 0x98, 0x40, 0xac, 0xf3, 0x45, 0xad, 0xf5, 0xd0, 0x5f, 0x94, 0xa8, 0x91, 0xae}: "EfiBmcLanProtocol", efi.GUID{0x48, 0x62, 0x2d, 0x54, 0x98, 0x41, 0x60, 0x49, 0x9f, 0x59, 0x23, 0x84, 0x64, 0x6d, 0x63, 0xb4}: "AmiOpromPolicyProtocolGuid", efi.GUID{0x48, 0x62, 0x57, 0x20, 0x1a, 0xc0, 0x9d, 0x43, 0x8c, 0xd6, 0x41, 0x8e, 0xaa, 0xbe, 0x0a, 0x29}: "RasClvAdddcProtocol", efi.GUID{0x48, 0x62, 0xeb, 0x15, 0x67, 0xfb, 0x90, 0x46, 0xb3, 0x68, 0x27, 0x0b, 0x73, 0xb6, 0xed, 0x2c}: "OemUniversalDxe", efi.GUID{0x48, 0x65, 0xea, 0xbc, 0x04, 0xe2, 0x86, 0x44, 0x8f, 0x2a, 0x36, 0xe1, 0x3c, 0x78, 0x38, 0xce}: "FpgaSocketSetup", efi.GUID{0x48, 0x67, 0xa7, 0xaa, 0x02, 0x36, 0x0a, 0x45, 0xb9, 0x05, 0x6a, 0x98, 0xa3, 0xe6, 0xd3, 0x63}: "ProjectDxe", efi.GUID{0x48, 0x74, 0xcd, 0xb1, 0x9c, 0x31, 0xaa, 0x41, 0x82, 0x1d, 0x3e, 0x60, 0x6b, 0xf6, 0xf9, 0x0d}: "SmcOemActivation", efi.GUID{0x48, 0x7a, 0x1b, 0xc1, 0x61, 0xba, 0xb4, 0x48, 0x91, 0x98, 0x48, 0x97, 0x2b, 0x53, 0x80, 0x07}: "SystemSdLegacySmm", efi.GUID{0x48, 0x89, 0x6f, 0xf1, 0x1f, 0xf8, 0x30, 0x4f, 0x91, 0xa6, 0x8f, 0x2f, 0x0f, 0xd5, 0x78, 0x82}: "MAPS_SIO_InterfacePei", efi.GUID{0x48, 0x8a, 0xd3, 0xc2, 0xac, 0xd3, 0xda, 0x43, 0xa4, 0x84, 0x17, 0xf9, 0x80, 0x86, 0x4d, 0xea}: "AmdHspFtpmPei", efi.GUID{0x48, 0x8c, 0xf9, 0x5c, 0xa3, 0xf2, 0x2a, 0x46, 0x90, 0xd6, 0x88, 0x37, 0x40, 0x0b, 0x4c, 0x09}: "ForceEfiBootDxe", efi.GUID{0x48, 0x90, 0x53, 0xcd, 0x6f, 0xf1, 0x86, 0x4f, 0xbd, 0x86, 0x6b, 0x72, 0x6b, 0xdc, 0x34, 0xf4}: "HpAcpiPlatform", efi.GUID{0x48, 0xb2, 0x0c, 0x47, 0xac, 0xe8, 0x3c, 0x47, 0xbb, 0x4f, 0x81, 0x06, 0x9a, 0x1f, 0xe6, 0xfd}: "SmmFaultTolerantWriteDxe", efi.GUID{0x48, 0xb7, 0x8d, 0xe8, 0x47, 0xa9, 0xcf, 0x46, 0xab, 0x6f, 0x5c, 0x99, 0xb6, 0xc6, 0xc4, 0xb8}: "RealtekGopDriver", efi.GUID{0x48, 0xbb, 0x66, 0x8a, 0x23, 0x6f, 0x09, 0x48, 0x93, 0x8d, 0x33, 0xac, 0xa6, 0xc4, 0x81, 0xae}: "FjPciPei", efi.GUID{0x48, 0xbe, 0x01, 0x03, 0x25, 0x7d, 0x3c, 0x44, 0xaa, 0x77, 0xd5, 0xe7, 0x53, 0xdb, 0x41, 0x6a}: "EfiRsaBmcCommandsProtocol", efi.GUID{0x48, 0xc0, 0x1f, 0x93, 0x1d, 0xc7, 0x55, 0x44, 0x89, 0x30, 0x47, 0x06, 0x30, 0xe3, 0x0e, 0xe5}: "SmmPerformanceExProtocolGuid", efi.GUID{0x48, 0xc1, 0xed, 0x68, 0x20, 0x71, 0xb4, 0x41, 0x9f, 0x53, 0xf5, 0x1b, 0xfc, 0x81, 0xa7, 0x4e}: "CbsSetupSmmSTXH", efi.GUID{0x48, 0xc5, 0x86, 0xa8, 0xdd, 0x0c, 0x2e, 0x4e, 0xb3, 0x64, 0xae, 0x95, 0x6a, 0xaa, 0x45, 0x54}: "SwSmi534D0540", efi.GUID{0x48, 0xd4, 0xcf, 0x5d, 0x4c, 0x79, 0xe9, 0x40, 0xbd, 0xe4, 0x4a, 0x92, 0x3a, 0x92, 0x53, 0xf8}: "OemNvramDxe", efi.GUID{0x48, 0xd4, 0xfc, 0xc1, 0x00, 0x63, 0x58, 0x44, 0xb8, 0x64, 0x28, 0xdf, 0x01, 0x53, 0x64, 0xbc}: "EfiPeiLoadedImagePpiGuid", efi.GUID{0x48, 0xd7, 0x08, 0x74, 0x8c, 0xfc, 0xe6, 0x4e, 0x92, 0x88, 0xc4, 0xbe, 0xc0, 0x92, 0xa4, 0x10}: "EfiPeiMasterBootModePpiGuid", efi.GUID{0x48, 0xdf, 0x67, 0xcf, 0x42, 0xf2, 0x81, 0x4d, 0xa8, 0x8b, 0x82, 0x83, 0x2c, 0x81, 0x08, 0xcd}: "AcerHwSupportDxe", efi.GUID{0x48, 0xee, 0xec, 0x82, 0x71, 0x95, 0x27, 0x44, 0x84, 0x85, 0x85, 0xa5, 0xa4, 0x5a, 0x0f, 0x39}: "DxeSmmReadyToLockOnExitPmAuthThunk", efi.GUID{0x48, 0xf7, 0xd7, 0xf7, 0xde, 0xcc, 0x1f, 0x48, 0x9b, 0x86, 0x2e, 0xf5, 0xed, 0xac, 0xc2, 0x1d}: "DellVideoConfigDxe", efi.GUID{0x49, 0x00, 0x53, 0xf1, 0x92, 0x12, 0x78, 0x4d, 0x9f, 0x26, 0xd3, 0xd5, 0x9d, 0x17, 0xe5, 0xe4}: "LenovoEcEkKeyDXE", efi.GUID{0x49, 0x01, 0x4b, 0x45, 0x42, 0x5b, 0x5e, 0x48, 0x8a, 0x8e, 0xa2, 0x04, 0x22, 0x79, 0x0b, 0x97}: "AmdFabricBrhSmm", efi.GUID{0x49, 0x06, 0xb4, 0xe2, 0xa4, 0xea, 0x4f, 0x43, 0x8b, 0xbc, 0x9f, 0xa4, 0xa8, 0x2e, 0x6a, 0xae}: "AmdSmmControl", efi.GUID{0x49, 0x0a, 0x22, 0x63, 0x09, 0x79, 0xd6, 0x44, 0xa6, 0xd0, 0xf3, 0x63, 0x4c, 0xc9, 0x21, 0xa6}: "OemPei", efi.GUID{0x49, 0x0a, 0x46, 0xb6, 0xc1, 0x0a, 0x4f, 0x48, 0xae, 0x58, 0xf1, 0x6e, 0xb2, 0x39, 0xdb, 0x3d}: "TpmBootFlowVariable", efi.GUID{0x49, 0x0b, 0xbf, 0x0d, 0x4c, 0x60, 0xd4, 0x40, 0x91, 0x21, 0x77, 0xac, 0x41, 0x94, 0x26, 0x26}: "FixedBootOrder", efi.GUID{0x49, 0x10, 0x30, 0x48, 0xdf, 0xef, 0xd4, 0x4d, 0x89, 0x62, 0xe2, 0x65, 0x86, 0x12, 0x3a, 0xdf}: "AmdMemoryHobInfoPeimRmb", efi.GUID{0x49, 0x19, 0xf5, 0x27, 0x77, 0x15, 0xf6, 0x4c, 0xb2, 0xe2, 0xae, 0x93, 0x92, 0xa4, 0xeb, 0xb7}: "BootPriority", efi.GUID{0x49, 0x30, 0x3f, 0x52, 0x9a, 0x81, 0x98, 0x49, 0x84, 0x05, 0x78, 0x48, 0xbc, 0x8c, 0x49, 0x42}: "BiosCfgTool", efi.GUID{0x49, 0x31, 0x13, 0x38, 0xf1, 0x14, 0x79, 0x41, 0xb1, 0x87, 0xef, 0xe7, 0xd3, 0xf7, 0x47, 0x9d}: "FjGabiFlashCommonMeRegionCtrlSmm", efi.GUID{0x49, 0x32, 0xd3, 0x7a, 0xc9, 0x4b, 0x31, 0x4d, 0x98, 0x55, 0x06, 0xd3, 0xa8, 0xc0, 0x52, 0xa0}: "WlanControllerSmm", efi.GUID{0x49, 0x34, 0x03, 0xce, 0x90, 0x3d, 0x44, 0x96, 0x86, 0x2e, 0x2d, 0x7d, 0x9a, 0xa3, 0xf0, 0x6a}: "BinConvert", efi.GUID{0x49, 0x36, 0x3c, 0xd9, 0xa5, 0x69, 0xc7, 0x43, 0x8c, 0xd3, 0x49, 0xd4, 0x17, 0x72, 0x45, 0x3a}: "FchPromontoryPlusGpioPei", efi.GUID{0x49, 0x36, 0x8b, 0x36, 0x04, 0xf2, 0xd0, 0x4c, 0x89, 0xa8, 0x09, 0x10, 0x77, 0xc0, 0x70, 0xfa}: "AcpiPlatform", efi.GUID{0x49, 0x3d, 0xfe, 0xb8, 0xf3, 0xdc, 0xbb, 0x4c, 0x80, 0x70, 0x47, 0xb4, 0xf5, 0xa3, 0x45, 0x59}: "GopDebugDxe", efi.GUID{0x49, 0x45, 0x72, 0x5d, 0xb1, 0xd2, 0xb2, 0x4e, 0x82, 0x63, 0xaf, 0x5a, 0xbb, 0x12, 0xeb, 0x03}: "SamsungWa", efi.GUID{0x49, 0x55, 0x9a, 0xf5, 0x79, 0xb8, 0x0c, 0x44, 0xa1, 0xf6, 0x38, 0xaf, 0x40, 0xf2, 0x77, 0x3e}: "PcieSataController", efi.GUID{0x49, 0x55, 0xe5, 0x95, 0x26, 0xff, 0x48, 0x49, 0x86, 0x8f, 0x48, 0x7d, 0x3b, 0x3d, 0x4d, 0xae}: "BoardXHCIAcpiTableDxe", efi.GUID{0x49, 0x56, 0x80, 0x82, 0x47, 0x72, 0xa4, 0x4d, 0x86, 0x43, 0xc8, 0x14, 0x4d, 0x27, 0xe2, 0xe5}: "ProcMemErrReporting", efi.GUID{0x49, 0x59, 0x93, 0x35, 0x07, 0x1e, 0xde, 0x4f, 0xb2, 0xc2, 0x84, 0x48, 0xe0, 0x74, 0x32, 0x2a}: "FjPasswordInvalidHandler", efi.GUID{0x49, 0x60, 0xf0, 0x89, 0x97, 0xf2, 0x36, 0x44, 0x85, 0x40, 0xe0, 0xbf, 0x9e, 0x92, 0xb5, 0x6b}: "SdioRecovery", efi.GUID{0x49, 0x62, 0xc2, 0xb6, 0x97, 0xc5, 0xfa, 0x46, 0xb5, 0x59, 0x75, 0x37, 0xf0, 0x4a, 0x35, 0x64}: "AIMTSensorInfo", efi.GUID{0x49, 0x69, 0x2b, 0xdf, 0xaf, 0xb0, 0xb3, 0x42, 0xa7, 0x0a, 0x93, 0x5d, 0x48, 0x75, 0xe4, 0x80}: "OemRomIdVar", efi.GUID{0x49, 0x6f, 0x5b, 0x04, 0x02, 0x91, 0x90, 0x45, 0xa0, 0xa5, 0x35, 0x31, 0x1b, 0x0a, 0xef, 0xc3}: "EfiDpsdRSA1024AndSHA256SignatureVerificationProtocolGuid", efi.GUID{0x49, 0x73, 0xfe, 0xd0, 0xfb, 0x5f, 0x4c, 0x42, 0x93, 0xd6, 0xaa, 0xe9, 0xcf, 0xe4, 0xd9, 0x09}: "SmuV12PeiCZN", efi.GUID{0x49, 0x7c, 0xd2, 0xd6, 0xca, 0x66, 0xc7, 0x42, 0xbc, 0x51, 0x78, 0x83, 0x28, 0xb5, 0xe5, 0xd0}: "SwSmi534D0240", efi.GUID{0x49, 0x87, 0xe8, 0x10, 0xd1, 0x28, 0xa0, 0x49, 0xac, 0x9e, 0x03, 0x24, 0xe4, 0x02, 0x11, 0xa8}: "WMISwSmi", efi.GUID{0x49, 0x90, 0x2b, 0x3a, 0x51, 0xc3, 0x56, 0x45, 0x99, 0xb0, 0x8b, 0x0a, 0x9b, 0xe9, 0x98, 0x1a}: "PlatformDiskDxe", efi.GUID{0x49, 0x96, 0x00, 0xf3, 0xd6, 0x36, 0x64, 0x41, 0xaa, 0x05, 0xe7, 0x2d, 0xee, 0xa3, 0x72, 0x2f}: "EfiCseEndofServicesProtocolGuid", efi.GUID{0x49, 0x99, 0x09, 0x58, 0x8b, 0xc8, 0x17, 0x41, 0x81, 0xa9, 0xdb, 0x89, 0x49, 0x91, 0x7c, 0xd8}: "SpdDxe", efi.GUID{0x49, 0x9c, 0xbe, 0x06, 0x7c, 0x71, 0xc8, 0x46, 0x98, 0x48, 0xe6, 0x26, 0xb7, 0x9f, 0xaa, 0x36}: "FchYuntaiSmmInit", efi.GUID{0x49, 0x9e, 0x81, 0x1a, 0xee, 0xd8, 0xcb, 0x48, 0x9a, 0x9c, 0x0a, 0xa0, 0xd2, 0x81, 0x0a, 0x38}: "DxePchPolicyUpdateProtocolGuid", efi.GUID{0x49, 0x9f, 0xa0, 0x4f, 0x5f, 0xae, 0x7e, 0x4d, 0x87, 0x0b, 0x08, 0x00, 0x30, 0xe1, 0xb6, 0x3e}: "FvBbPei", efi.GUID{0x49, 0xa1, 0x46, 0x2a, 0x3a, 0x5f, 0xbe, 0x41, 0x87, 0xe7, 0x98, 0x2a, 0x68, 0x36, 0x9d, 0x4a}: "AmdMemFp11StxhPei", efi.GUID{0x49, 0xa2, 0x0e, 0x29, 0x88, 0x6e, 0x3c, 0x42, 0xb0, 0xda, 0x75, 0xcd, 0xde, 0x79, 0x20, 0xcc}: "AmtPetAlertDxe", efi.GUID{0x49, 0xb0, 0x8d, 0x7b, 0xc7, 0xc7, 0x3b, 0x4d, 0x80, 0x9f, 0x92, 0x6d, 0xee, 0x47, 0xcc, 0xa2}: "SBSMI", efi.GUID{0x49, 0xb1, 0x0b, 0x98, 0x36, 0xf0, 0x49, 0x44, 0xbc, 0xf0, 0x58, 0xc2, 0x22, 0x07, 0xcb, 0xb1}: "FjNuvotonNct6796Dxe", efi.GUID{0x49, 0xb2, 0xb6, 0xd8, 0xf8, 0x77, 0x09, 0x48, 0xac, 0xe2, 0x59, 0x75, 0xda, 0x16, 0xaa, 0xf5}: "TouchPadDriver", efi.GUID{0x49, 0xb3, 0xbc, 0x1a, 0x9b, 0x29, 0xe8, 0x46, 0x99, 0xd1, 0x58, 0x2d, 0x91, 0xb3, 0xab, 0x54}: "RstEraseDxe", efi.GUID{0x49, 0xba, 0x02, 0x66, 0xe4, 0x08, 0x28, 0x44, 0x96, 0x61, 0xd5, 0xe7, 0x15, 0x7f, 0x8a, 0x9d}: "AmdLegacyInterrupt", efi.GUID{0x49, 0xba, 0x7c, 0xc6, 0xc6, 0xb3, 0xba, 0x4c, 0x96, 0x71, 0xbf, 0x27, 0x88, 0x71, 0x21, 0x28}: "DellLegacyTcgSupport", efi.GUID{0x49, 0xba, 0xd1, 0x4f, 0x90, 0x8f, 0x1a, 0x47, 0xa2, 0xc9, 0x17, 0x3c, 0x7a, 0x73, 0x2f, 0xd0}: "SeCfTPMPolicyPpiGuid", efi.GUID{0x49, 0xc9, 0x94, 0xb8, 0xf8, 0xa1, 0xc1, 0x41, 0xa7, 0xc0, 0xdf, 0x52, 0x3a, 0xd9, 0x1c, 0x15}: "MrcPlatformHooksPeim", efi.GUID{0x49, 0xd9, 0xfd, 0x4e, 0x71, 0xe8, 0x21, 0x4a, 0x96, 0xb6, 0xb1, 0x61, 0xb2, 0x71, 0xb9, 0xbf}: "BiosIdentifiedInfo", efi.GUID{0x49, 0xe0, 0x91, 0x8c, 0xf9, 0x9b, 0x0e, 0x44, 0xbb, 0xad, 0x7d, 0xc5, 0xfc, 0x08, 0x2c, 0x02}: "DWMciDxe", efi.GUID{0x49, 0xec, 0x8f, 0xcd, 0x5d, 0xf2, 0x24, 0x4a, 0x8f, 0xb8, 0xef, 0x9c, 0xa5, 0x80, 0x67, 0xf0}: "SbSocRsPei", efi.GUID{0x49, 0xf0, 0xaf, 0xa1, 0xeb, 0xfd, 0x2a, 0x44, 0xb3, 0x20, 0x13, 0xab, 0x4c, 0xb7, 0x2b, 0xbc}: "EfiMdeModulePkgTokenSpaceGuid", efi.GUID{0x49, 0xf4, 0x1a, 0x30, 0xd7, 0xe0, 0xa3, 0x43, 0x8b, 0x1b, 0xbc, 0x16, 0x72, 0x5d, 0x37, 0x4b}: "DxeDebugDispatchProtocolGuid", efi.GUID{0x49, 0xf7, 0xd8, 0x01, 0x74, 0xfd, 0x70, 0x4f, 0xa3, 0x93, 0x6f, 0xed, 0x1d, 0x2c, 0x8d, 0x32}: "AsusWmiToProtocol", efi.GUID{0x49, 0xfd, 0xdc, 0x47, 0x10, 0xf1, 0xf8, 0x4e, 0x98, 0xd4, 0xd8, 0xc8, 0x88, 0x32, 0x70, 0xda}: "D01IhisiSmm", efi.GUID{0x4a, 0x0a, 0x70, 0x76, 0xc7, 0x25, 0x2f, 0x4b, 0xb1, 0x90, 0x8d, 0xab, 0xb2, 0xef, 0x21, 0x29}: "FchSmbusDxe", efi.GUID{0x4a, 0x0c, 0x7e, 0x78, 0x27, 0x4a, 0x91, 0x48, 0x94, 0x89, 0xaf, 0x50, 0x74, 0xc3, 0x6e, 0x89}: "EfiTraceHubStatusCodeHandleHeaderPpi", efi.GUID{0x4a, 0x0c, 0xb9, 0x3f, 0x5e, 0x98, 0xc3, 0x46, 0xac, 0x50, 0x46, 0x40, 0xf3, 0x26, 0x1f, 0x1a}: "BiosFwInfo", efi.GUID{0x4a, 0x0d, 0xff, 0xc1, 0xb0, 0x15, 0x8e, 0x49, 0x9b, 0x7e, 0x92, 0x4d, 0xc0, 0x31, 0x78, 0x49}: "semaProtocol", efi.GUID{0x4a, 0x10, 0x9b, 0xd2, 0x98, 0xbe, 0x4a, 0x46, 0x97, 0x71, 0x74, 0x6b, 0x9a, 0x07, 0xdc, 0xa1}: "FjSysmanWatchdogBin", efi.GUID{0x4a, 0x2c, 0x71, 0x5f, 0x9c, 0x8b, 0xe6, 0x4e, 0xad, 0xc6, 0xf4, 0x24, 0x1e, 0x2a, 0x41, 0x29}: "SmbiosType1", efi.GUID{0x4a, 0x2d, 0xcf, 0x42, 0xb4, 0x78, 0x80, 0x4b, 0x80, 0xf9, 0x96, 0xa8, 0x3a, 0x63, 0x0d, 0x70}: "UsbDeviceDxe", efi.GUID{0x4a, 0x31, 0x75, 0xe9, 0x64, 0x14, 0x1f, 0x41, 0x85, 0xe4, 0x04, 0x1d, 0x90, 0x3c, 0xb6, 0xc4}: "DellSmBiosStrucFan", efi.GUID{0x4a, 0x35, 0xef, 0x3c, 0x7a, 0x3b, 0x19, 0x45, 0xad, 0x70, 0x72, 0xa1, 0x34, 0x69, 0x83, 0x11}: "Ebl", efi.GUID{0x4a, 0x35, 0xf5, 0x8f, 0x4f, 0x63, 0x37, 0x46, 0xb3, 0xce, 0x4d, 0xf1, 0xce, 0x6b, 0x56, 0xfe}: "RtkUndi8111H", efi.GUID{0x4a, 0x38, 0x68, 0x91, 0x66, 0x5f, 0xf7, 0x4c, 0xae, 0xb6, 0x84, 0x5b, 0xde, 0xbd, 0x30, 0x12}: "PlatformFlashAccessLibDxe", efi.GUID{0x4a, 0x3a, 0x47, 0x9a, 0xeb, 0x4c, 0x5a, 0xb9, 0x41, 0x5e, 0x5b, 0xa0, 0xbc, 0x63, 0x9b, 0x2e}: "EfiRegexSyntaxTypeEcma262Guid", efi.GUID{0x4a, 0x3b, 0xe3, 0x5f, 0x10, 0xdc, 0xb5, 0x4e, 0x7e, 0x51, 0x36, 0x4c, 0x56, 0xd9, 0x11, 0xf4}: "D01SecureEraseDxe", efi.GUID{0x4a, 0x3d, 0x2a, 0xaa, 0xbb, 0xfd, 0x27, 0x4c, 0xbf, 0x42, 0x1c, 0x74, 0xf1, 0x74, 0x2e, 0x82}: "OemIp3Pei", efi.GUID{0x4a, 0x45, 0x2a, 0x84, 0xe5, 0x75, 0x8b, 0x40, 0x8b, 0x1c, 0x36, 0x42, 0x0e, 0x4e, 0x3f, 0x21}: "NvramSmi", efi.GUID{0x4a, 0x45, 0x78, 0x14, 0x84, 0x45, 0xca, 0x4c, 0xb0, 0xd2, 0x12, 0x0a, 0xce, 0x12, 0x9d, 0xbb}: "DellMfgModeSmmDriver", efi.GUID{0x4a, 0x52, 0x1e, 0x90, 0x57, 0x5a, 0x2d, 0x4c, 0x93, 0xa4, 0x74, 0xf5, 0x16, 0xe0, 0x7c, 0x07}: "ClientronServiceDxe", efi.GUID{0x4a, 0x57, 0x74, 0xe3, 0xdf, 0x2a, 0xdb, 0x43, 0xa7, 0x78, 0x88, 0xa7, 0x5f, 0xc0, 0x80, 0x26}: "DellSmbDaTokensConfig", efi.GUID{0x4a, 0x65, 0xb0, 0xb3, 0x9d, 0x96, 0x96, 0x40, 0x86, 0xcb, 0x27, 0xe2, 0x62, 0xa0, 0x20, 0x83}: "PeiCoreEntryPoint", efi.GUID{0x4a, 0x66, 0x03, 0x53, 0x22, 0x42, 0x4c, 0x47, 0x97, 0xa4, 0x9a, 0x0d, 0x97, 0xd0, 0x02, 0x0a}: "SVI3ManagementPei", efi.GUID{0x4a, 0x69, 0x53, 0x58, 0x7f, 0x46, 0x64, 0x44, 0xbb, 0xf9, 0x0c, 0x97, 0x1a, 0x74, 0xcb, 0x36}: "L05UefiDriveIdentificationDxe", efi.GUID{0x4a, 0x6d, 0x92, 0x29, 0x31, 0xe5, 0x0c, 0x49, 0xa5, 0x29, 0xc0, 0x5e, 0x8a, 0x1d, 0x60, 0xd3}: "FwhFlashLibNull", efi.GUID{0x4a, 0x72, 0x51, 0x53, 0x47, 0x7d, 0x34, 0x48, 0x9c, 0x59, 0x0d, 0xd0, 0x1f, 0x30, 0x5e, 0x16}: "FjSmmSupport", efi.GUID{0x4a, 0x77, 0xe3, 0x55, 0x45, 0xeb, 0xd2, 0x4f, 0xaa, 0xae, 0xb7, 0xde, 0xeb, 0x50, 0x4a, 0x0e}: "Tcg2Pei", efi.GUID{0x4a, 0x7f, 0x68, 0x05, 0xa7, 0x3c, 0x19, 0x4d, 0x9b, 0xc5, 0xe1, 0x80, 0xce, 0xa3, 0x56, 0x9f}: "AmiPlatformSecurityChipGuid", efi.GUID{0x4a, 0x82, 0xde, 0x06, 0xe2, 0xa4, 0x95, 0x42, 0xa3, 0xf6, 0x03, 0xb3, 0xfe, 0xf5, 0xb1, 0x09}: "LenovoSecurityVariableDxe", efi.GUID{0x4a, 0x89, 0xea, 0x09, 0x0d, 0xbe, 0x30, 0x42, 0xa0, 0x03, 0xed, 0xc6, 0x93, 0xb4, 0x8e, 0x95}: "PchInitPpiGuid", efi.GUID{0x4a, 0x8c, 0x94, 0x98, 0xf2, 0x70, 0x35, 0x40, 0x8e, 0x9f, 0x59, 0x27, 0x49, 0x3c, 0xfc, 0x07}: "FaultTolerantWriteSmmDxe", efi.GUID{0x4a, 0x8e, 0x76, 0x85, 0xdc, 0x6c, 0x4e, 0x44, 0x93, 0xdf, 0x93, 0x66, 0x85, 0xb5, 0xdf, 0xcc}: "VlvRefCodePkgTokenSpaceGuid", efi.GUID{0x4a, 0x94, 0x33, 0x6d, 0x75, 0xec, 0x55, 0x48, 0xa5, 0x4d, 0x80, 0x9c, 0x75, 0x24, 0x1f, 0x6c}: "BdsDxe", efi.GUID{0x4a, 0x9c, 0xc5, 0xcb, 0x3a, 0x38, 0xeb, 0x41, 0xa8, 0xee, 0x44, 0x98, 0xae, 0xa5, 0x67, 0xe4}: "FlashDriver", efi.GUID{0x4a, 0x9c, 0xee, 0x6c, 0xa0, 0xe2, 0x3d, 0x4f, 0xa9, 0x21, 0xce, 0x25, 0xf3, 0x28, 0xc4, 0xba}: "AsfSmm", efi.GUID{0x4a, 0xa6, 0x29, 0xe6, 0xc2, 0x12, 0xd2, 0x42, 0x8f, 0x1f, 0xb4, 0xa4, 0x59, 0x88, 0x7c, 0x28}: "SysTopologyReportDxe", efi.GUID{0x4a, 0xab, 0x10, 0x18, 0x14, 0x23, 0xf6, 0x4d, 0x81, 0xeb, 0x67, 0xc6, 0xec, 0x05, 0x85, 0x91}: "BootScriptTableBaseGuid", efi.GUID{0x4a, 0xab, 0x4c, 0x15, 0xb5, 0x52, 0xcd, 0x46, 0x99, 0xc3, 0x43, 0x68, 0xab, 0xba, 0xcf, 0xfd}: "MetronomeDxe", efi.GUID{0x4a, 0xab, 0xe6, 0xe5, 0x7d, 0x0d, 0x06, 0x4a, 0xa1, 0x64, 0x61, 0xe4, 0x7c, 0xce, 0x9b, 0x3b}: "DellAcpiPolicy", efi.GUID{0x4a, 0xac, 0xc3, 0x79, 0xc6, 0xde, 0xf1, 0x48, 0xaf, 0xfe, 0xe7, 0xb9, 0x5a, 0x1c, 0xcb, 0x32}: "PoofAnimationState2", efi.GUID{0x4a, 0xaf, 0xca, 0xf7, 0xdd, 0xb2, 0x1a, 0x43, 0x89, 0x64, 0x37, 0x5d, 0x7e, 0x71, 0xb9, 0xb1}: "SMBIOSTypeDAhCallingInterfaceSmm", efi.GUID{0x4a, 0xaf, 0xfd, 0x2f, 0xb5, 0xa9, 0xf6, 0x4e, 0xaa, 0x3b, 0xa8, 0x96, 0x11, 0xaa, 0xb2, 0x84}: "DellSpiPartPromJet", efi.GUID{0x4a, 0xb3, 0x4a, 0xf9, 0x69, 0x80, 0x9f, 0x4a, 0xad, 0x08, 0x95, 0x34, 0xef, 0x37, 0xd9, 0xbe}: "DellMeLocalFwUpdateDxe", efi.GUID{0x4a, 0xb3, 0xe4, 0x81, 0x8c, 0x26, 0xcc, 0x4f, 0x8e, 0x39, 0x1c, 0x1d, 0x3e, 0x6f, 0x6e, 0x69}: "HddReadyDXE", efi.GUID{0x4a, 0xb7, 0xab, 0xcc, 0x77, 0x60, 0xf7, 0x49, 0xa2, 0x91, 0x71, 0xeb, 0xb7, 0xa7, 0x03, 0x6c}: "OA1", efi.GUID{0x4a, 0xbb, 0xa0, 0x3f, 0x0b, 0x18, 0x58, 0x44, 0x9f, 0x12, 0x6e, 0xa6, 0x8f, 0x69, 0xe6, 0xcc}: "PxeRomB571699", efi.GUID{0x4a, 0xbd, 0xfd, 0x5e, 0xb1, 0x64, 0x21, 0x4f, 0x8a, 0x53, 0xa1, 0x3e, 0x87, 0x40, 0xe6, 0xd7}: "FchYuntaiDsdt", efi.GUID{0x4a, 0xc4, 0x1a, 0x8f, 0x7e, 0xce, 0x29, 0x4e, 0x95, 0xbb, 0x92, 0xe3, 0x21, 0xbb, 0x15, 0x73}: "SecFspWrapperPlatformSecLibSample", efi.GUID{0x4a, 0xc7, 0xb9, 0xc5, 0x72, 0x6d, 0x19, 0x47, 0x99, 0xab, 0xc5, 0x9f, 0x19, 0x90, 0x91, 0xeb}: "SemihostFs", efi.GUID{0x4a, 0xc7, 0xc1, 0x2b, 0x2f, 0x12, 0xb2, 0x40, 0xb2, 0x23, 0x08, 0x2b, 0x74, 0x65, 0x22, 0x5d}: "FspWrapperTokenSpaceGuid", efi.GUID{0x4a, 0xc9, 0x99, 0x28, 0xb6, 0x1f, 0x1a, 0x4b, 0xb9, 0x6b, 0x83, 0x64, 0x97, 0x53, 0x03, 0xe0}: "Ps2MouseAbsolutePointerDxe", efi.GUID{0x4a, 0xc9, 0xaf, 0x04, 0xaf, 0x73, 0x2f, 0x43, 0xbe, 0xcb, 0xb7, 0x94, 0x56, 0x8a, 0xc9, 0x85}: "DellOnboardNicSmm", efi.GUID{0x4a, 0xcf, 0xb8, 0xe1, 0x7b, 0xfe, 0x76, 0x46, 0xb4, 0xf7, 0x50, 0xc7, 0x22, 0x82, 0x82, 0xa4}: "AmdApcbPeiV3", efi.GUID{0x4a, 0xda, 0x4d, 0xff, 0xe4, 0x64, 0xa4, 0x42, 0x96, 0xca, 0x3d, 0x4f, 0x2d, 0x43, 0x11, 0xa9}: "AmdPlatformCustomizeDxe", efi.GUID{0x4a, 0xdc, 0xa5, 0x12, 0xaa, 0x88, 0xda, 0x89, 0x89, 0xd0, 0xd4, 0x54, 0x71, 0x91, 0xe3, 0xf4}: "RstUefiDriverSupport", efi.GUID{0x4a, 0xdc, 0xc5, 0x3d, 0x4a, 0x82, 0xc5, 0x44, 0x89, 0xd0, 0xd4, 0x54, 0x71, 0x91, 0xe3, 0xf4}: "RstOneClickEnable", efi.GUID{0x4a, 0xe2, 0x2d, 0xb0, 0x94, 0x07, 0x4a, 0x43, 0xa8, 0xa0, 0x04, 0xa0, 0xf6, 0x8d, 0x85, 0x7a}: "N17PQ3Gop", efi.GUID{0x4a, 0xf5, 0x1d, 0x10, 0xff, 0x10, 0x0d, 0x4e, 0x94, 0xc0, 0xa8, 0x9d, 0x55, 0x46, 0xdd, 0x6c}: "AmdFabricStxhPei", efi.GUID{0x4a, 0xf6, 0xcb, 0xbc, 0x31, 0x52, 0x6e, 0x42, 0xae, 0x37, 0x4c, 0xc7, 0x0f, 0x15, 0x81, 0x3d}: "SetupLanguageDxe", efi.GUID{0x4a, 0xf8, 0xfb, 0xb1, 0x91, 0xc0, 0x80, 0x4a, 0xa7, 0x44, 0x23, 0x44, 0x2a, 0x2b, 0x7b, 0xdf}: "AmiChipsetPkgTokenSpaceGuid", efi.GUID{0x4a, 0xfb, 0x97, 0xb5, 0x27, 0x35, 0x82, 0x49, 0xa4, 0xe4, 0x8e, 0x21, 0x2c, 0x3c, 0xca, 0x9c}: "AcpiSdevAcpiTable", efi.GUID{0x4a, 0xfd, 0x35, 0xb5, 0xd0, 0x10, 0x2b, 0x46, 0xaf, 0x47, 0x79, 0x1d, 0x8d, 0x32, 0x91, 0x4d}: "BackupFlashImage", efi.GUID{0x4a, 0xfd, 0xa4, 0x25, 0x03, 0x97, 0xa9, 0x4b, 0xa1, 0x90, 0xb7, 0xc8, 0x4e, 0xfb, 0x3e, 0x57}: "FdtVariableGuid", efi.GUID{0x4a, 0xfe, 0xbc, 0x7a, 0xd2, 0xf5, 0x3a, 0x41, 0x98, 0x28, 0x25, 0x9e, 0x6b, 0x12, 0x8d, 0xc9}: "LcfcWorkaroundMfgDoneDxe", efi.GUID{0x4a, 0xff, 0x0f, 0xc3, 0xc6, 0x10, 0x0f, 0x4c, 0xa4, 0x54, 0xfd, 0x31, 0x9b, 0xaf, 0x6c, 0xe6}: "IntelBootGuardBootPolicy", efi.GUID{0x4b, 0x05, 0x3f, 0xb7, 0xf8, 0xd1, 0x96, 0x44, 0x98, 0xe8, 0xdf, 0xea, 0xcf, 0x8d, 0x85, 0x11}: "ClientronBds", efi.GUID{0x4b, 0x22, 0x5b, 0x51, 0x59, 0xb0, 0x0b, 0x46, 0x85, 0xc7, 0xc2, 0x86, 0x58, 0xf4, 0xb8, 0x98}: "LenovoHpmSmm", efi.GUID{0x4b, 0x2a, 0xb7, 0xfa, 0x7f, 0xe6, 0x51, 0x49, 0x84, 0x5c, 0xbe, 0x5d, 0x8f, 0x5a, 0xe6, 0x2f}: "AmdCcxZen3RmbDxe", efi.GUID{0x4b, 0x2d, 0x03, 0x71, 0x91, 0x4b, 0xc1, 0x4e, 0xad, 0x53, 0x81, 0x82, 0x7f, 0xb4, 0x31, 0x08}: "AmdCpmGpioInitDxe", efi.GUID{0x4b, 0x33, 0x96, 0xfd, 0x26, 0x2f, 0xbe, 0x42, 0xa9, 0x47, 0x7a, 0xef, 0xb4, 0xaf, 0x92, 0x91}: "IntelLanDriverPolicy", efi.GUID{0x4b, 0x37, 0x9f, 0x9e, 0x16, 0x8f, 0x30, 0x42, 0x98, 0x24, 0x58, 0x46, 0xee, 0x76, 0x6a, 0x97}: "EfiSecPlatformInformation2PpiGuid", efi.GUID{0x4b, 0x3e, 0x22, 0x94, 0x3e, 0xd0, 0xcd, 0x40, 0x82, 0xd5, 0x04, 0x43, 0x15, 0x8b, 0x22, 0xf9}: "OemSetupScreenSyncVariable", efi.GUID{0x4b, 0x43, 0x3e, 0x56, 0xda, 0x6e, 0xdc, 0x40, 0x91, 0x23, 0xa0, 0xfa, 0x01, 0x66, 0xeb, 0x4c}: "FjGpioAlderLakePei", efi.GUID{0x4b, 0x4c, 0x87, 0xa9, 0x9b, 0x59, 0x46, 0x4b, 0x81, 0x61, 0xfa, 0x4e, 0x72, 0xe5, 0x3b, 0xba}: "ShadowDownPei", efi.GUID{0x4b, 0x5a, 0xbb, 0x55, 0x3f, 0x3b, 0x2c, 0x44, 0xbf, 0x09, 0x0f, 0x87, 0xa6, 0x7e, 0x8e, 0xe7}: "BindingsDxe", efi.GUID{0x4b, 0x5c, 0x1b, 0x80, 0xe2, 0x6a, 0x65, 0x40, 0x9f, 0x72, 0x82, 0xca, 0x76, 0x0c, 0x2e, 0xca}: "EfiRsaTpmClearOwnership", efi.GUID{0x4b, 0x6c, 0x0a, 0x74, 0x13, 0x38, 0x05, 0x4a, 0x84, 0xb5, 0x9a, 0xee, 0x2b, 0xbe, 0x9f, 0x5e}: "FjFvFlashSmm", efi.GUID{0x4b, 0x6e, 0x11, 0xd5, 0xd6, 0xda, 0x22, 0x41, 0xa0, 0x96, 0x08, 0xd3, 0x39, 0xb7, 0xfa, 0x40}: "ProcessErrorCode", efi.GUID{0x4b, 0x76, 0x86, 0x6f, 0xe4, 0xbb, 0xa1, 0x49, 0xa5, 0xd2, 0x32, 0xe6, 0xa6, 0x86, 0x18, 0x34}: "FchSmmDiagDispatcher", efi.GUID{0x4b, 0x76, 0xdb, 0x0f, 0x69, 0xe6, 0x69, 0x4c, 0x83, 0xac, 0x5e, 0xdd, 0x99, 0xa2, 0x71, 0x1e}: "ReadOnlyVariableOnReadOnlyVariable2Thunk", efi.GUID{0x4b, 0x7a, 0x3f, 0xda, 0xf2, 0x52, 0x86, 0x40, 0xb0, 0xb8, 0xfe, 0xe9, 0x5d, 0xf7, 0xa7, 0x33}: "SmbusDxe", efi.GUID{0x4b, 0x7d, 0x2b, 0xfb, 0xae, 0xb6, 0x84, 0x42, 0x83, 0x07, 0x2d, 0x7f, 0x84, 0x8c, 0x1b, 0x46}: "OemBootOptionPolicyDxe", efi.GUID{0x4b, 0x7d, 0x5e, 0xd1, 0x8b, 0x13, 0xa3, 0x4c, 0xbb, 0x2c, 0x59, 0x07, 0x12, 0x7f, 0x8d, 0xad}: "BluetoothConfigDxe", efi.GUID{0x4b, 0x7d, 0x98, 0xd3, 0x1a, 0x97, 0x5f, 0x43, 0x8c, 0xaf, 0x49, 0x67, 0xeb, 0x62, 0x72, 0x41}: "SerialDxe", efi.GUID{0x4b, 0x87, 0xae, 0xee, 0xd3, 0x64, 0x23, 0x43, 0xb5, 0x82, 0x54, 0x5f, 0xb3, 0xc2, 0xeb, 0x5a}: "SmmBbsManagerInitNotifyProtocol", efi.GUID{0x4b, 0x8f, 0xb8, 0xb3, 0x42, 0x70, 0x8e, 0x48, 0xa2, 0x55, 0x66, 0xf9, 0x65, 0xe8, 0xd4, 0x35}: "PasswordPopupDxe", efi.GUID{0x4b, 0x93, 0x37, 0x67, 0x7e, 0xa2, 0x05, 0x4c, 0xad, 0x5b, 0x6a, 0xb8, 0x62, 0x73, 0x68, 0x0b}: "AmiNbMrcInfo", efi.GUID{0x4b, 0x9f, 0xf1, 0x41, 0x6d, 0xe1, 0x08, 0x49, 0x89, 0xda, 0xbe, 0xa8, 0x14, 0xa6, 0x60, 0x93}: "AmdSpiHcProtocolSmm", efi.GUID{0x4b, 0xa2, 0x7c, 0xea, 0xd5, 0xde, 0xad, 0x4d, 0xa3, 0x89, 0xbf, 0x82, 0x7e, 0x8f, 0x9b, 0x38}: "EfiPeiFirmwareVolumeInfo2PpiGuid", efi.GUID{0x4b, 0xae, 0xe2, 0x2d, 0x89, 0x74, 0x91, 0x4d, 0x9b, 0x63, 0x9b, 0x12, 0xcc, 0x56, 0x45, 0x40}: "A01ServiceBodyDxe", efi.GUID{0x4b, 0xaf, 0xd5, 0x3d, 0x25, 0x09, 0x81, 0x4c, 0x93, 0xac, 0x79, 0x17, 0x4c, 0x47, 0x82, 0xd8}: "NetworkBootConfigurationSmm", efi.GUID{0x4b, 0xb1, 0xd6, 0x00, 0xd0, 0x7d, 0x62, 0x40, 0x88, 0x21, 0xe5, 0xf9, 0x6a, 0x2a, 0x1b, 0x00}: "FspReservedMemoryResourceHobMiscGuid", efi.GUID{0x4b, 0xb8, 0xd3, 0x16, 0xba, 0x45, 0x9f, 0x8d, 0xa4, 0xf2, 0x8c, 0xa8, 0xaf, 0xb8, 0x11, 0xcd}: "PiAst2500Pei", efi.GUID{0x4b, 0xca, 0xe4, 0x3a, 0x5b, 0xb5, 0x11, 0x4c, 0x8f, 0xac, 0x7c, 0x95, 0xd7, 0x42, 0x3f, 0x68}: "BiosGuardInstallGuidSmm", efi.GUID{0x4b, 0xd1, 0x9d, 0xc7, 0x6d, 0xc6, 0xdd, 0x4a, 0xa5, 0xa1, 0xcb, 0xe3, 0xfd, 0xf2, 0xbd, 0x72}: "DisableCacheAsRamPei", efi.GUID{0x4b, 0xd3, 0x23, 0xae, 0x23, 0x03, 0x07, 0x47, 0xa4, 0x34, 0x1d, 0xda, 0xc2, 0x10, 0x75, 0x3b}: "OemBadgingSupportDxe", efi.GUID{0x4b, 0xdb, 0x2c, 0xa9, 0xf1, 0x82, 0x0b, 0x4e, 0xa5, 0x16, 0x8a, 0x65, 0x5d, 0x37, 0x15, 0x24}: "VirtioNetDxe", efi.GUID{0x4b, 0xdb, 0xeb, 0x03, 0xba, 0x96, 0x40, 0x4f, 0x83, 0x29, 0x7f, 0x3a, 0xa8, 0x86, 0x57, 0x07}: "EcIoSmm", efi.GUID{0x4b, 0xdc, 0xa5, 0x12, 0xaa, 0x88, 0xda, 0x89, 0x89, 0xd0, 0xd4, 0x54, 0x71, 0x91, 0xe3, 0xf4}: "SdMmcOverride", efi.GUID{0x4b, 0xe1, 0xa7, 0x3b, 0x6d, 0x17, 0x2a, 0x4b, 0x94, 0x8a, 0xc8, 0x6f, 0xb0, 0x01, 0x94, 0x3c}: "EfiErrorHandlingProtocol", efi.GUID{0x4b, 0xf0, 0x3c, 0x58, 0xe3, 0x42, 0x38, 0x46, 0xaa, 0x22, 0x02, 0xe4, 0xd3, 0x33, 0x0a, 0x61}: "MacToUUID", efi.GUID{0x4b, 0xf4, 0x08, 0x58, 0x01, 0xe5, 0x7f, 0x46, 0x88, 0x99, 0x67, 0x0b, 0x9a, 0xdb, 0xd0, 0x1c}: "RealtekLib", efi.GUID{0x4c, 0x05, 0x56, 0xaf, 0x1a, 0x8b, 0x9f, 0x40, 0xba, 0xf0, 0x89, 0x3c, 0xb9, 0x64, 0xaa, 0x4e}: "FjSysmanWatchdogPeiBin", efi.GUID{0x4c, 0x09, 0xbf, 0x56, 0xf6, 0x69, 0xdd, 0x49, 0x8c, 0x1c, 0x1e, 0xce, 0xff, 0x71, 0xc9, 0xe5}: "CsmRt32", efi.GUID{0x4c, 0x1b, 0x73, 0xf7, 0xa2, 0x58, 0xf4, 0x4d, 0x89, 0x80, 0x56, 0x45, 0xd3, 0x9e, 0xce, 0x58}: "PowerMgmtDxe", efi.GUID{0x4c, 0x1f, 0xe2, 0x28, 0x8f, 0xdc, 0x17, 0x4c, 0x8b, 0x9a, 0x92, 0xbc, 0xee, 0x68, 0x35, 0xd5}: "OemACPIDriverHookDxe", efi.GUID{0x4c, 0x29, 0x8d, 0x3c, 0xc3, 0x5f, 0x51, 0x44, 0xbb, 0x31, 0xc4, 0xc0, 0x32, 0x29, 0x5e, 0x6c}: "IdleLoopEventGuid", efi.GUID{0x4c, 0x29, 0xbd, 0x56, 0x88, 0x44, 0x6d, 0x4b, 0xa6, 0x37, 0xea, 0xf1, 0x59, 0xb4, 0x3b, 0xed}: "OpromUpdateDxeCLX64L", efi.GUID{0x4c, 0x43, 0x44, 0x90, 0xe8, 0x40, 0xa1, 0x47, 0xa3, 0xba, 0x85, 0x07, 0xf3, 0xc0, 0xe2, 0x56}: "CpuUncoreTokenSpace", efi.GUID{0x4c, 0x43, 0xf4, 0x57, 0x1b, 0xa0, 0x7f, 0x48, 0xa4, 0x26, 0xac, 0x7b, 0xe1, 0xd7, 0x9d, 0xa2}: "UefiHotkey", efi.GUID{0x4c, 0x47, 0x78, 0xb0, 0xe0, 0xa6, 0x5d, 0x46, 0x82, 0x29, 0xb4, 0x61, 0x10, 0xcc, 0x43, 0x7b}: "OemAdjustHsioWorkaround", efi.GUID{0x4c, 0x4a, 0x36, 0x00, 0x0a, 0x6a, 0x08, 0x4f, 0x8f, 0xfd, 0x09, 0x37, 0xf3, 0xdb, 0xb1, 0x3e}: "IdeBusBoard", efi.GUID{0x4c, 0x4f, 0x3e, 0xd5, 0x5b, 0x12, 0x41, 0x44, 0xa3, 0xcb, 0x72, 0xee, 0x15, 0x95, 0x33, 0xae}: "AmtPetAlertDxe", efi.GUID{0x4c, 0x58, 0x1d, 0x91, 0xf7, 0x35, 0x55, 0x49, 0xbe, 0xf9, 0xb4, 0x52, 0x76, 0x9d, 0xdc, 0x3a}: "DebugSupportDxe", efi.GUID{0x4c, 0x65, 0x3f, 0x82, 0x66, 0xd9, 0xa4, 0x45, 0xa4, 0xcc, 0x5f, 0xb6, 0x74, 0x1e, 0x34, 0xbe}: "AmdNbioEarlyPhaseRMBPei", efi.GUID{0x4c, 0x65, 0xf3, 0x5b, 0x7d, 0x7e, 0xba, 0x4f, 0x8b, 0xc6, 0x2a, 0xeb, 0xcd, 0x6f, 0x68, 0xeb}: "Apple80211", efi.GUID{0x4c, 0x6e, 0xdb, 0x2a, 0x83, 0xc9, 0x40, 0x41, 0xa1, 0x60, 0xfb, 0xc7, 0xd6, 0xb4, 0x50, 0xd9}: "AmdSocAm4SmDxe", efi.GUID{0x4c, 0x71, 0x56, 0x69, 0xc3, 0xac, 0x8f, 0x44, 0x86, 0xb6, 0x56, 0xad, 0x3a, 0x2e, 0xb1, 0xbd}: "AdditionalLenovoUI", efi.GUID{0x4c, 0x73, 0xcb, 0x54, 0x5c, 0x97, 0x74, 0x4a, 0x95, 0x56, 0x57, 0xae, 0x6d, 0x9a, 0x22, 0x29}: "TrackPointElan", efi.GUID{0x4c, 0x8b, 0xd8, 0x5f, 0x58, 0xb6, 0x50, 0x46, 0xb3, 0xce, 0xa5, 0x9b, 0xb9, 0x91, 0xbf, 0xd4}: "IgdPanelConfigGuid", efi.GUID{0x4c, 0x98, 0x9a, 0x8e, 0xe7, 0x57, 0xeb, 0x4b, 0xa6, 0x2b, 0x58, 0x98, 0x2e, 0x06, 0x20, 0xf1}: "DellNvmePwSmm", efi.GUID{0x4c, 0xa9, 0x4a, 0x3c, 0x3c, 0x71, 0xe9, 0x45, 0xb2, 0x5c, 0x83, 0xda, 0xed, 0x17, 0x80, 0xac}: "LoadEFINetworkStack", efi.GUID{0x4c, 0xad, 0x3c, 0xce, 0x43, 0x47, 0x82, 0x04, 0x59, 0x09, 0xf3, 0x85, 0x30, 0x71, 0x78, 0xc2}: "NvmeResetHookDxe", efi.GUID{0x4c, 0xb1, 0x5b, 0xce, 0xb6, 0xdf, 0xa1, 0x49, 0xa6, 0x14, 0x77, 0x80, 0x4a, 0xcb, 0xb4, 0x89}: "AmdCpmOemUpepDxe", efi.GUID{0x4c, 0xb2, 0x6a, 0x9e, 0x00, 0xf8, 0xb1, 0x42, 0x92, 0xa2, 0xb3, 0x52, 0xac, 0xb9, 0x70, 0x05}: "AutomaticPowerOn", efi.GUID{0x4c, 0xbf, 0xb9, 0xdf, 0x20, 0x35, 0x80, 0x4a, 0x90, 0x4e, 0x71, 0xd5, 0xf4, 0x2e, 0x86, 0x6a}: "XmlCliCommonDxe", efi.GUID{0x4c, 0xc1, 0x42, 0xc6, 0x9c, 0x0e, 0xef, 0x4a, 0x94, 0xa5, 0xa2, 0x13, 0xba, 0xa3, 0x5d, 0xe0}: "HstiResultDxe", efi.GUID{0x4c, 0xc1, 0x5b, 0xce, 0xb6, 0xdf, 0xa1, 0x49, 0xa6, 0x14, 0x77, 0x80, 0x4a, 0xcb, 0xb4, 0x89}: "AmdCpmOemPTDxe", efi.GUID{0x4c, 0xd2, 0x0c, 0xfe, 0xa0, 0xb7, 0x0d, 0x4f, 0xa7, 0x8c, 0xec, 0x3e, 0x27, 0x18, 0x1a, 0xe5}: "AmdMtkWlanDrvCfgDxe", efi.GUID{0x4c, 0xd2, 0x5f, 0x9d, 0xdf, 0x53, 0xac, 0x44, 0xa3, 0x36, 0xb4, 0x87, 0x9c, 0xdb, 0x29, 0xd9}: "AmdSpiRomProtectPei", efi.GUID{0x4c, 0xda, 0xd2, 0x51, 0x50, 0x59, 0xa8, 0x43, 0xb8, 0xd6, 0x13, 0x3a, 0x68, 0x60, 0x72, 0xea}: "FchSmbusDxe", efi.GUID{0x4c, 0xde, 0x3c, 0xfa, 0xc2, 0x87, 0x7d, 0x42, 0xae, 0xde, 0x7d, 0xd0, 0x96, 0xc8, 0x8c, 0x58}: "IscsiV4Private", efi.GUID{0x4c, 0xe0, 0x4e, 0x31, 0x06, 0x11, 0xc6, 0x4d, 0xac, 0xbc, 0xcf, 0x19, 0xc0, 0xdb, 0xc5, 0xcc}: "PlatformInitAdvancedPostMem", efi.GUID{0x4c, 0xe0, 0xe8, 0xa0, 0x5a, 0x9b, 0xbe, 0x43, 0x8b, 0x7d, 0xc9, 0x87, 0x60, 0x49, 0x2b, 0x68}: "SectionExtractionDxe", efi.GUID{0x4c, 0xe9, 0x83, 0xd0, 0x60, 0x65, 0xe4, 0x42, 0xb6, 0xd4, 0x2d, 0xf7, 0x5a, 0xdf, 0x6a, 0x2a}: "EfiDataHubStatusCodeRecordGuid", efi.GUID{0x4c, 0xe9, 0xb0, 0xca, 0x5f, 0xe1, 0xe3, 0x11, 0x91, 0x8d, 0xb8, 0xe8, 0x56, 0x2c, 0xba, 0xfa}: "EfiBootManagerPolicyConsoleGuid", efi.GUID{0x4c, 0xf2, 0x39, 0x77, 0xd7, 0x93, 0xd4, 0x11, 0x9a, 0x3a, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d}: "EfiHobListGuid", efi.GUID{0x4d, 0x00, 0x62, 0x63, 0xa3, 0xb2, 0xe1, 0x44, 0xaf, 0x2f, 0xe8, 0x60, 0xe5, 0xbd, 0x57, 0x2e}: "CbsSetupSmmBRH", efi.GUID{0x4d, 0x04, 0xc3, 0x6a, 0x62, 0xe0, 0x23, 0x4f, 0xa6, 0x0b, 0x28, 0x67, 0x64, 0xdd, 0x09, 0xf5}: "DellSmbiosSmm", efi.GUID{0x4d, 0x0a, 0xd7, 0xad, 0x67, 0x10, 0xa3, 0x4f, 0xa6, 0x69, 0x94, 0xc8, 0x28, 0x77, 0xf1, 0x06}: "TpmNvmeSupport", efi.GUID{0x4d, 0x11, 0x53, 0x3a, 0x73, 0x56, 0xd9, 0x4d, 0xb5, 0xb3, 0xcb, 0x72, 0xc3, 0x47, 0x66, 0x9b}: "BFGSmm", efi.GUID{0x4d, 0x20, 0x85, 0xdf, 0xcf, 0x83, 0x32, 0x41, 0xb4, 0xfc, 0x9a, 0x75, 0xf2, 0xbc, 0x87, 0x4f}: "NonAmtNetworkControllerSmm", efi.GUID{0x4d, 0x2c, 0xec, 0x90, 0xbe, 0x28, 0x26, 0x47, 0xaf, 0x9b, 0x94, 0xbc, 0x6c, 0xbe, 0x17, 0xf2}: "NearTdpLockOcPeim", efi.GUID{0x4d, 0x30, 0x83, 0x8e, 0xf1, 0x5b, 0x4b, 0x45, 0xb1, 0x11, 0xac, 0x57, 0x4a, 0x51, 0x21, 0xe7}: "AsusMyAsusDxe", efi.GUID{0x4d, 0x31, 0xd0, 0xb0, 0xc3, 0x57, 0x53, 0x44, 0x94, 0x86, 0x18, 0x82, 0x2d, 0x8c, 0x81, 0xba}: "FmpDxe", efi.GUID{0x4d, 0x33, 0x89, 0x84, 0x19, 0x42, 0xa1, 0x4c, 0x9b, 0x42, 0x1d, 0x46, 0xb0, 0xb7, 0x58, 0x61}: "TcgPpVendorLibNull", efi.GUID{0x4d, 0x33, 0xb3, 0x44, 0x93, 0xa6, 0xae, 0x4a, 0xac, 0x8e, 0x01, 0xe1, 0x90, 0x4d, 0x9c, 0x75}: "AtaSmartFeature", efi.GUID{0x4d, 0x34, 0x8f, 0x22, 0xde, 0xb3, 0xbb, 0x43, 0xa4, 0xd7, 0xea, 0x20, 0x0b, 0x1b, 0x14, 0x82}: "EfiSmMonitorInitProtocolGuid", efi.GUID{0x4d, 0x37, 0x04, 0x1b, 0x9c, 0xfa, 0x0f, 0x42, 0xac, 0x62, 0xfe, 0xe6, 0xd4, 0x5e, 0x84, 0x43}: "FspDebugServicePei", efi.GUID{0x4d, 0x38, 0xce, 0x0d, 0x7c, 0x00, 0xa5, 0x4b, 0x94, 0xbd, 0x0f, 0x6e, 0xb6, 0x4d, 0x2a, 0xa9}: "PeiNtAutoScanPpiGuid", efi.GUID{0x4d, 0x39, 0x87, 0xbd, 0x5c, 0x46, 0xa9, 0x40, 0x96, 0x57, 0xfb, 0xed, 0x21, 0x78, 0x98, 0x60}: "BinConvert", efi.GUID{0x4d, 0x3d, 0xca, 0x0d, 0xda, 0x12, 0x28, 0x47, 0xbf, 0x7e, 0x86, 0xce, 0xb9, 0x28, 0xd0, 0x67}: "EfiNicIp4ConfigProtocol", efi.GUID{0x4d, 0x40, 0x15, 0xe5, 0xf5, 0x8d, 0x62, 0x45, 0xbc, 0xcb, 0x74, 0x94, 0x8d, 0x32, 0x81, 0x89}: "AmdCpmThunderboltDxe", efi.GUID{0x4d, 0x46, 0x2c, 0x91, 0xbf, 0xdd, 0xc0, 0x43, 0xb7, 0x25, 0xf1, 0xf6, 0x1e, 0xa4, 0x28, 0x75}: "AmdCpmOemRnInitPeim", efi.GUID{0x4d, 0x47, 0x85, 0x38, 0x95, 0x83, 0xab, 0x4a, 0x8a, 0xa4, 0x37, 0x43, 0xce, 0x28, 0x76, 0x46}: "FnWinKeySwap", efi.GUID{0x4d, 0x4f, 0xb1, 0x2c, 0x75, 0x5d, 0xed, 0x4f, 0xae, 0xa0, 0x4b, 0xc3, 0x6e, 0x08, 0x1a, 0xd5}: "DeepS3ConfigSmm", efi.GUID{0x4d, 0x4f, 0xc1, 0x2c, 0x85, 0x6d, 0xdd, 0x4e, 0xfe, 0xa3, 0x4b, 0xc6, 0x6d, 0x08, 0x3a, 0xd7}: "HpModernStandbySetupConfigSmm", efi.GUID{0x4d, 0x5e, 0x13, 0x0e, 0x3e, 0xe6, 0xc6, 0x45, 0xa9, 0xa2, 0xe9, 0x36, 0x34, 0x77, 0xdd, 0xfc}: "AmdNbioBaseMdnDxe", efi.GUID{0x4d, 0x61, 0xdf, 0xdc, 0x0e, 0x93, 0xdf, 0x4f, 0xaf, 0xcd, 0xf4, 0xa8, 0xa4, 0x08, 0xe0, 0x77}: "EarlyVideoDxe", efi.GUID{0x4d, 0x65, 0x8d, 0x23, 0xad, 0xa6, 0xc8, 0x41, 0xa3, 0x1b, 0x67, 0xa3, 0x20, 0x86, 0x25, 0xc3}: "LenovoMx25L3206EflashPartSmm", efi.GUID{0x4d, 0x66, 0xee, 0x50, 0x03, 0x77, 0xc3, 0x42, 0x9e, 0x69, 0x8c, 0x89, 0xde, 0x70, 0xd1, 0xd5}: "SioInit", efi.GUID{0x4d, 0x69, 0x7e, 0x0b, 0x09, 0xb9, 0x97, 0x40, 0x9c, 0x03, 0x5e, 0x72, 0x84, 0x89, 0xf7, 0x09}: "HybridGraphicsConfigGuid", efi.GUID{0x4d, 0x71, 0xc1, 0x8b, 0xcb, 0xff, 0xc3, 0x41, 0x89, 0xdc, 0x6c, 0x74, 0xd0, 0x6d, 0x98, 0xea}: "EfiSmmPciRootBridgeIoProtocolGuid", efi.GUID{0x4d, 0x7a, 0xcc, 0xd6, 0x0f, 0x44, 0xfc, 0x4f, 0x87, 0x9e, 0x17, 0x6c, 0xb5, 0x55, 0x81, 0x18}: "FchSmmDispatcher", efi.GUID{0x4d, 0x7e, 0xaf, 0x95, 0x5d, 0xc4, 0xff, 0x47, 0xae, 0xb2, 0xd9, 0xbc, 0x13, 0x46, 0x6b, 0x3f}: "AppleAhciController", efi.GUID{0x4d, 0x85, 0xcf, 0x6b, 0x2d, 0x13, 0xb2, 0x49, 0x81, 0x5c, 0xf0, 0x01, 0x51, 0xc7, 0xbb, 0xbb}: "FjRt8111EepromLess", efi.GUID{0x4d, 0x87, 0x1e, 0x18, 0x89, 0xc0, 0x99, 0x4c, 0x8e, 0xc2, 0x6d, 0x67, 0x61, 0x34, 0x82, 0x20}: "AmiPllOverVotageFlagHob", efi.GUID{0x4d, 0x8a, 0xcd, 0x12, 0xfd, 0x93, 0x1c, 0xe8, 0x72, 0xfc, 0xd9, 0x31, 0xeb, 0xbc, 0x04, 0xd4}: "DellTouchScreen", efi.GUID{0x4d, 0x91, 0x89, 0xca, 0x17, 0x23, 0x2e, 0x45, 0xb2, 0x45, 0x36, 0xc6, 0xfb, 0x77, 0xa9, 0xc6}: "SaSsdtAcpiTableStorageGuid", efi.GUID{0x4d, 0x92, 0xed, 0x3e, 0xc1, 0x2b, 0x76, 0x48, 0xb7, 0x69, 0xf3, 0x1f, 0x85, 0xab, 0x39, 0x7f}: "FjHddEraseApp", efi.GUID{0x4d, 0x95, 0x90, 0x13, 0x95, 0xda, 0x27, 0x42, 0x93, 0x28, 0x72, 0x82, 0xc2, 0x17, 0xda, 0xa8}: "EfiSmmBaseProtocolGuid", efi.GUID{0x4d, 0x97, 0x6d, 0xea, 0x75, 0xad, 0xed, 0x40, 0xbc, 0xdd, 0xfd, 0xa2, 0x97, 0xaa, 0x8f, 0x8a}: "ChipsetLibServicesDxe", efi.GUID{0x4d, 0x97, 0x95, 0x66, 0x8c, 0x96, 0x0b, 0x42, 0x80, 0xb9, 0x78, 0x70, 0xcd, 0x20, 0x11, 0x8f}: "PlatformSecLibNull", efi.GUID{0x4d, 0x9b, 0xe0, 0xac, 0x11, 0xce, 0x48, 0x4e, 0x8c, 0x9c, 0x8d, 0x69, 0x01, 0xf7, 0x07, 0x87}: "MeOptionsDxe", efi.GUID{0x4d, 0x9e, 0x0a, 0xc1, 0xb4, 0xbd, 0x1a, 0x4b, 0x82, 0xcc, 0xd9, 0x01, 0xf8, 0x6f, 0x57, 0x39}: "DellSmmDiagLeds", efi.GUID{0x4d, 0xa1, 0xca, 0x37, 0x72, 0x50, 0x53, 0x47, 0xac, 0xb2, 0xca, 0xda, 0x3e, 0x99, 0xa9, 0xe7}: "KeyBoardIdm", efi.GUID{0x4d, 0xa8, 0x33, 0x08, 0x39, 0x8a, 0x1f, 0x43, 0xbd, 0x1c, 0x30, 0x96, 0x5a, 0xae, 0x71, 0xdd}: "ProcessorStartup", efi.GUID{0x4d, 0xb4, 0xff, 0x05, 0x01, 0xee, 0xe1, 0x40, 0x98, 0x66, 0xfd, 0x27, 0xfd, 0x4f, 0xbe, 0x92}: "ThunderboltDeviceDxe", efi.GUID{0x4d, 0xb6, 0x57, 0xba, 0xd2, 0x4a, 0xb8, 0x68, 0xab, 0x93, 0xaf, 0x89, 0x65, 0x4f, 0x7d, 0xbe}: "AmdBoardIdDxe", efi.GUID{0x4d, 0xbb, 0xa5, 0x22, 0x62, 0xf9, 0x33, 0x4d, 0x9c, 0xd6, 0xfd, 0xad, 0x39, 0xac, 0xd1, 0x53}: "PlatformBoardIdPei", efi.GUID{0x4d, 0xbf, 0x88, 0x8e, 0x15, 0x9f, 0x06, 0x42, 0xbb, 0xd5, 0x55, 0xd3, 0x68, 0xb6, 0x2a, 0xd1}: "NvmeRecoveryDxe", efi.GUID{0x4d, 0xc5, 0x9f, 0x3d, 0xe5, 0x19, 0xd0, 0x4a, 0xb9, 0x86, 0x02, 0xd6, 0x87, 0xd7, 0x60, 0xe5}: "ASRLOGODXE", efi.GUID{0x4d, 0xc5, 0xd1, 0x67, 0xf7, 0xb8, 0x69, 0x4d, 0xa8, 0xf3, 0xff, 0x91, 0x16, 0xc4, 0xc0, 0x2a}: "FchKunlunMultiFchSmm", efi.GUID{0x4d, 0xd0, 0x79, 0x72, 0xae, 0xaa, 0x4a, 0x99, 0x8a, 0x5c, 0x5a, 0xea, 0x41, 0xd1, 0xfe, 0x3a}: "AppleArpDxe", efi.GUID{0x4d, 0xe2, 0x9e, 0x8a, 0xe8, 0xda, 0x1f, 0x40, 0xa5, 0x91, 0x24, 0x1d, 0xf8, 0x48, 0x40, 0x7f}: "WwanSmm", efi.GUID{0x4d, 0xe3, 0x44, 0xf2, 0x43, 0x36, 0x3b, 0x4e, 0x9d, 0xa5, 0x8c, 0x69, 0x1c, 0xbd, 0xe0, 0xeb}: "MeUnlock", efi.GUID{0x4d, 0xe6, 0x09, 0x3a, 0xa9, 0x08, 0xd5, 0x42, 0x82, 0x34, 0x11, 0x27, 0xe6, 0xaf, 0x05, 0xeb}: "SioPowerButtonOverrideSmm", efi.GUID{0x4d, 0xe8, 0xfe, 0x83, 0x21, 0x93, 0x08, 0x49, 0x89, 0x5d, 0x4f, 0x6e, 0x35, 0x5c, 0xec, 0x55}: "HDMIPConFW", efi.GUID{0x4d, 0xea, 0x0e, 0x7d, 0xca, 0x74, 0x18, 0x41, 0x89, 0x8e, 0x96, 0x41, 0x81, 0xdc, 0x5d, 0x1b}: "SmmIpl", efi.GUID{0x4d, 0xef, 0x9c, 0x24, 0x90, 0x7b, 0xf1, 0x49, 0xb6, 0x7f, 0x20, 0x33, 0xf0, 0x94, 0x26, 0x23}: "DellTcg2Dxe", efi.GUID{0x4d, 0xf1, 0xca, 0x7d, 0x99, 0x14, 0x49, 0x41, 0x83, 0x64, 0x16, 0x73, 0xcd, 0x1c, 0xe7, 0x5c}: "PecNbDxe", efi.GUID{0x4d, 0xf3, 0x04, 0xb3, 0x7b, 0xb2, 0x2c, 0x45, 0x89, 0x31, 0xcf, 0x60, 0xa2, 0xf0, 0xd2, 0x68}: "FchProm21GpioDxe", efi.GUID{0x4d, 0xfb, 0x45, 0x23, 0x26, 0x0b, 0x14, 0x4a, 0xaa, 0x2e, 0xf7, 0xb9, 0x55, 0x15, 0x44, 0x95}: "StibpFeatureDxe", efi.GUID{0x4d, 0xfd, 0x41, 0x31, 0x02, 0xea, 0x70, 0x4a, 0x9b, 0xce, 0x97, 0xee, 0x83, 0x73, 0x19, 0xac}: "TrEEConfigDxe", efi.GUID{0x4e, 0x0b, 0xde, 0x35, 0xfb, 0x30, 0xc3, 0x46, 0xbd, 0x84, 0x1f, 0xdb, 0xa1, 0x58, 0xbb, 0x56}: "EdkiiPeiStorageSecurityCommandPpi", efi.GUID{0x4e, 0x0d, 0xb1, 0xd7, 0xe6, 0x67, 0x74, 0x4c, 0x83, 0xe9, 0xf9, 0xaf, 0x0a, 0xcc, 0x33, 0xcc}: "PchInitSmm", efi.GUID{0x4e, 0x0f, 0xab, 0xc8, 0xfe, 0x26, 0xf1, 0x40, 0x95, 0x79, 0xea, 0x8d, 0x30, 0xd5, 0x03, 0xa4}: "SystemFlashUpdateDriverDxe", efi.GUID{0x4e, 0x17, 0x73, 0xdb, 0x6a, 0xe4, 0x27, 0x49, 0x99, 0x47, 0xcf, 0x2d, 0xbe, 0xaf, 0x16, 0x81}: "PowerMgmtConfigGuid", efi.GUID{0x4e, 0x1b, 0x1d, 0xe5, 0xc3, 0x68, 0xd8, 0x41, 0x95, 0x6d, 0xba, 0x55, 0x44, 0x27, 0xc3, 0xa3}: "PcieLaneDXE", efi.GUID{0x4e, 0x1c, 0x7c, 0x12, 0x35, 0x91, 0xe3, 0x46, 0xb0, 0x06, 0xf9, 0x80, 0x8b, 0x05, 0x59, 0xa5}: "Slp20Markers", efi.GUID{0x4e, 0x1e, 0xe9, 0xac, 0x8e, 0x23, 0x8b, 0x4a, 0x9a, 0x4f, 0x87, 0xb7, 0xdc, 0x82, 0xc0, 0x66}: "CvpPeriphSpi", efi.GUID{0x4e, 0x22, 0x50, 0xe7, 0xce, 0x7b, 0xaf, 0x40, 0xb5, 0xbb, 0x47, 0xe3, 0x61, 0x1e, 0xb5, 0xc2}: "TdxDxe", efi.GUID{0x4e, 0x24, 0x82, 0x01, 0x5d, 0xf9, 0xfc, 0x43, 0x91, 0xec, 0x60, 0x59, 0x4e, 0xf4, 0x75, 0x99}: "Lpc47m18xDxe", efi.GUID{0x4e, 0x28, 0xa9, 0x7f, 0xb3, 0x40, 0x7f, 0x41, 0xa2, 0xbb, 0x58, 0xea, 0xe1, 0x02, 0x63, 0x14}: "FjSystemResetDxe", efi.GUID{0x4e, 0x2a, 0xcc, 0x2f, 0x95, 0x69, 0x88, 0x46, 0x81, 0x2b, 0x6e, 0xc7, 0xe7, 0xa4, 0x1b, 0x51}: "RTL8152B_RTL8153_USB", efi.GUID{0x4e, 0x42, 0x1b, 0x27, 0xcc, 0xa4, 0x0e, 0x4e, 0x90, 0xa2, 0x7e, 0xa4, 0x84, 0x1f, 0x12, 0xf3}: "ExportHiiDb", efi.GUID{0x4e, 0x42, 0x6f, 0x12, 0x5b, 0xf4, 0x06, 0x44, 0x80, 0x1e, 0x2a, 0xac, 0xf4, 0x04, 0x16, 0x7f}: "AmiSetPhysicalPresenceGuid", efi.GUID{0x4e, 0x46, 0x83, 0x28, 0xa2, 0x3c, 0x4d, 0x4f, 0xb9, 0x03, 0x21, 0xa1, 0xe3, 0xf6, 0x14, 0x71}: "XhciControllerPei", efi.GUID{0x4e, 0x5b, 0xdc, 0x64, 0x79, 0x91, 0x18, 0x49, 0x89, 0x03, 0xd7, 0x5e, 0x1b, 0xc8, 0xb2, 0x63}: "Mec5107Dxe", efi.GUID{0x4e, 0x5f, 0x37, 0x67, 0xae, 0x29, 0x3f, 0x43, 0x9c, 0x2a, 0x29, 0xee, 0x6c, 0x7f, 0x5f, 0x2a}: "EmulationEDIDPEI", efi.GUID{0x4e, 0x61, 0x16, 0x22, 0xbe, 0xcd, 0xe7, 0x46, 0xba, 0x61, 0x9b, 0xd2, 0xbc, 0x64, 0x03, 0x93}: "AmiPspFlashSmm", efi.GUID{0x4e, 0x6e, 0x8e, 0x0d, 0x29, 0xb0, 0x5f, 0x47, 0x91, 0x22, 0x60, 0xa3, 0xfe, 0xdb, 0xa8, 0xc0}: "DxeIoLibEsal", efi.GUID{0x4e, 0x7a, 0xf9, 0x69, 0x95, 0x13, 0x4a, 0x43, 0xa5, 0xd3, 0xff, 0x9c, 0xea, 0x28, 0x48, 0x85}: "DellDiagsConfig", efi.GUID{0x4e, 0x7c, 0xe4, 0xfc, 0xcc, 0x5e, 0x41, 0x4a, 0xb9, 0x0e, 0x0b, 0xab, 0x09, 0x96, 0x8d, 0x02}: "SystemSecureFlashSleepTrapSmm", efi.GUID{0x4e, 0x82, 0xa8, 0x25, 0xbf, 0x6b, 0xb2, 0x4f, 0xa2, 0x00, 0x84, 0xb0, 0xf7, 0xbe, 0xce, 0x6b}: "B57785", efi.GUID{0x4e, 0x87, 0x0f, 0x76, 0xcb, 0xb8, 0x5e, 0x40, 0xaa, 0x32, 0xa4, 0x6a, 0xe2, 0xf3, 0xd6, 0x80}: "VariableDefaultUpdate", efi.GUID{0x4e, 0x8e, 0xc7, 0x92, 0x94, 0xc9, 0x9e, 0x4f, 0x82, 0xab, 0xaf, 0x1d, 0xba, 0x68, 0x58, 0xc9}: "DellSmmComputrace", efi.GUID{0x4e, 0x98, 0x52, 0xed, 0xd7, 0x6e, 0x45, 0x44, 0x9d, 0x5d, 0x20, 0x0c, 0x32, 0x01, 0xf5, 0x1e}: "PlatformStage0", efi.GUID{0x4e, 0x99, 0xa2, 0x6f, 0x4f, 0x14, 0x4a, 0x40, 0xad, 0xc9, 0x31, 0xc3, 0xbc, 0x71, 0x96, 0xc9}: "DellGraphics3Drv", efi.GUID{0x4e, 0xa6, 0xc2, 0x3f, 0x39, 0x0a, 0xd1, 0x48, 0x94, 0x24, 0x72, 0x13, 0x44, 0xc1, 0x91, 0x8a}: "CompalInfo", efi.GUID{0x4e, 0xaa, 0x8d, 0xc6, 0xb5, 0x7a, 0xe8, 0x41, 0xa9, 0x1d, 0x59, 0x54, 0x42, 0x10, 0x53, 0xf3}: "CbSupportDxe", efi.GUID{0x4e, 0xac, 0x08, 0x81, 0x11, 0x9f, 0x59, 0x4d, 0x85, 0x0e, 0xe2, 0x1a, 0x52, 0x2c, 0x59, 0xb2}: "BmAutoCreateBootOptionGuid", efi.GUID{0x4e, 0xb9, 0xc6, 0xcb, 0xaa, 0xde, 0x2c, 0x46, 0x84, 0x0c, 0x66, 0x98, 0x18, 0x0d, 0xe2, 0x92}: "QualcommDRS", efi.GUID{0x4e, 0xba, 0xe9, 0x16, 0xe9, 0x9e, 0xa8, 0x48, 0xa9, 0xa0, 0x8e, 0x5f, 0x52, 0x99, 0x11, 0xda}: "Pca6107Pei", efi.GUID{0x4e, 0xbd, 0xf1, 0xc2, 0xee, 0x9f, 0x79, 0x40, 0x90, 0x9b, 0xc6, 0x83, 0xa8, 0x67, 0x50, 0xcc}: "FchHuangshanSsdt", efi.GUID{0x4e, 0xbe, 0x79, 0x03, 0x06, 0xd7, 0x7d, 0x43, 0xb0, 0x37, 0xed, 0xb8, 0x2f, 0xb7, 0x72, 0xa4}: "EfiDevicePathUtilitiesProtocolGuid", efi.GUID{0x4e, 0xbf, 0x3e, 0xb6, 0x96, 0xd1, 0xba, 0x40, 0xab, 0x63, 0x1f, 0xa9, 0xa6, 0x06, 0x8e, 0x84}: "LenovoOsOptDefaultDxe", efi.GUID{0x4e, 0xc0, 0x1f, 0xcc, 0x3d, 0x0b, 0x0e, 0x4e, 0xae, 0xd7, 0x58, 0x98, 0x54, 0x1e, 0x26, 0x83}: "CSMLinkerDxe", efi.GUID{0x4e, 0xd2, 0x75, 0xb3, 0x3a, 0x86, 0xc3, 0x2d, 0xc4, 0x29, 0x7d, 0xab, 0x73, 0x23, 0xab, 0x9b}: "SceBootOrderSaveRestore", efi.GUID{0x4e, 0xd3, 0xe3, 0xd7, 0xf0, 0x1f, 0x7a, 0x4e, 0x88, 0x77, 0x1f, 0xaa, 0xf9, 0xeb, 0x96, 0x54}: "CbsBaseDxeBRH", efi.GUID{0x4e, 0xd5, 0xde, 0xb2, 0xcd, 0x47, 0x16, 0x84, 0x18, 0x18, 0xfb, 0xb2, 0x43, 0x80, 0x99, 0x84}: "AmdSocFp6RnDxe", efi.GUID{0x4e, 0xd5, 0xf8, 0xa9, 0x07, 0x11, 0x0a, 0x4f, 0xad, 0xd0, 0x45, 0x87, 0xe7, 0xa4, 0xa7, 0x35}: "IntelSiliconPkgTokenSpaceGuid", efi.GUID{0x4e, 0xda, 0xa0, 0xc1, 0x36, 0x28, 0x7d, 0x4b, 0xa5, 0xd2, 0xb6, 0x7a, 0x22, 0x42, 0x43, 0x8c}: "OemGpioEarlyInit", efi.GUID{0x4e, 0xee, 0xe1, 0xc8, 0x9d, 0x1b, 0x9d, 0x43, 0xb2, 0x04, 0x32, 0x8b, 0xb5, 0x97, 0x3f, 0x0a}: "SetDevPhyConnStatus", efi.GUID{0x4e, 0xf7, 0x8f, 0x2e, 0xa4, 0x8b, 0xd6, 0x4c, 0x81, 0x4f, 0xf9, 0x69, 0x62, 0xdd, 0xfe, 0x27}: "DellDiagUtilityProtocol", efi.GUID{0x4e, 0xf7, 0xda, 0xcb, 0xe8, 0xd6, 0x34, 0x49, 0xbb, 0x03, 0x27, 0xf3, 0x56, 0xd4, 0xb9, 0x1c}: "FjEarlyInitPei", efi.GUID{0x4e, 0xfd, 0x5d, 0x51, 0x7e, 0x2d, 0xd1, 0x40, 0x8c, 0x22, 0x8a, 0xd3, 0xcd, 0x22, 0x43, 0x25}: "RasSmiHandler", efi.GUID{0x4f, 0x02, 0xa1, 0x7c, 0x17, 0xeb, 0xe5, 0x11, 0x9d, 0xba, 0x28, 0xd2, 0x44, 0x7c, 0x48, 0x29}: "TlsAuthConfigDxe", efi.GUID{0x4f, 0x04, 0x59, 0x18, 0x5a, 0xc2, 0xa8, 0x4a, 0x96, 0x5a, 0x24, 0x10, 0xd0, 0x6a, 0x60, 0x3f}: "ApobBrhPei", efi.GUID{0x4f, 0x06, 0x77, 0x29, 0x96, 0xab, 0xa9, 0x4f, 0x85, 0x45, 0xf9, 0xc4, 0x02, 0x51, 0xe0, 0x7f}: "EfiPlatformPolicyProtocolGuid", efi.GUID{0x4f, 0x0a, 0xc8, 0x98, 0x6b, 0xe1, 0x11, 0x4d, 0x93, 0x9a, 0xab, 0xe5, 0x61, 0x26, 0x03, 0x30}: "EdkiiCapsuleOnDiskName", efi.GUID{0x4f, 0x0e, 0x8c, 0xcb, 0xf7, 0x14, 0x5a, 0x4f, 0x8d, 0xad, 0x75, 0x2c, 0xb0, 0xb4, 0x20, 0x45}: "SystemStatusBarDxe", efi.GUID{0x4f, 0x1d, 0x1f, 0x22, 0x4c, 0x03, 0xea, 0x4b, 0xb2, 0xbb, 0xb7, 0xa9, 0x67, 0x2b, 0x06, 0xd7}: "CrbSmi", efi.GUID{0x4f, 0x1f, 0x78, 0x41, 0xcd, 0xa3, 0x50, 0x47, 0x8a, 0x2c, 0x21, 0x92, 0xb4, 0xdf, 0xe5, 0x2b}: "EfiPeiPlatformTypeHedtEvPpi", efi.GUID{0x4f, 0x21, 0x3d, 0x86, 0x20, 0x09, 0x7b, 0x43, 0x8c, 0xad, 0x88, 0xea, 0x83, 0xa2, 0x4e, 0x97}: "DatahubStatusCodeHandlerDxe", efi.GUID{0x4f, 0x23, 0xea, 0x22, 0x2a, 0xe7, 0xe4, 0x11, 0x91, 0xf9, 0x28, 0xd2, 0x44, 0x7c, 0x48, 0x29}: "HttpUtilitiesDxe", efi.GUID{0x4f, 0x24, 0xbf, 0x89, 0x69, 0xe5, 0x6f, 0x41, 0xb1, 0x10, 0x8a, 0xe5, 0xef, 0xd5, 0x17, 0x1c}: "DellDxePrereq", efi.GUID{0x4f, 0x2a, 0x98, 0x14, 0xed, 0xb0, 0xb8, 0x45, 0xa8, 0x11, 0x5a, 0x7a, 0x9b, 0xc2, 0x32, 0xdf}: "EfiHiiKeyBoardLayoutGuid", efi.GUID{0x4f, 0x42, 0x06, 0xe8, 0x25, 0xd4, 0x1a, 0x4b, 0xbc, 0x26, 0x5f, 0x69, 0x03, 0x89, 0xa1, 0x5a}: "PlatformMeHookPpi", efi.GUID{0x4f, 0x44, 0xf8, 0x67, 0x43, 0x87, 0xf1, 0x48, 0xa3, 0x28, 0x1e, 0xaa, 0xb8, 0x73, 0x60, 0x80}: "EfiCertRsa2048Sha1Guid", efi.GUID{0x4f, 0x46, 0x50, 0x14, 0x36, 0xeb, 0xc6, 0x4a, 0xac, 0xeb, 0xda, 0xac, 0xc8, 0xfc, 0x32, 0x18}: "BoardSelectPei", efi.GUID{0x4f, 0x46, 0x88, 0x57, 0x73, 0x37, 0x29, 0x4a, 0x8a, 0xf7, 0xe8, 0x1b, 0xbe, 0xe4, 0x19, 0xc3}: "ATAIdentify", efi.GUID{0x4f, 0x48, 0x20, 0x30, 0x82, 0x45, 0x6e, 0x40, 0xb2, 0x0f, 0x89, 0xea, 0xcc, 0x93, 0xdc, 0x6a}: "DellSmmLegacyRegionProtocol", efi.GUID{0x4f, 0x4b, 0x0f, 0xfa, 0xef, 0xd6, 0xe7, 0x40, 0xbc, 0x1b, 0x29, 0x24, 0x5c, 0xa0, 0x3b, 0xc2}: "FvbInitilized", efi.GUID{0x4f, 0x56, 0xe0, 0x29, 0x02, 0xb7, 0x52, 0x43, 0xa3, 0xa1, 0x15, 0xfa, 0xbd, 0x4a, 0x4e, 0x4a}: "IioCfgUpdateDxeLightningRidgeEXECB3", efi.GUID{0x4f, 0x57, 0x6d, 0x9f, 0x37, 0xca, 0xdb, 0x41, 0x8e, 0x4b, 0x78, 0x10, 0x6a, 0x33, 0x88, 0x13}: "SwSmi534D0C40", efi.GUID{0x4f, 0x57, 0xcd, 0x9e, 0x36, 0xcb, 0x9a, 0x4a, 0xb2, 0xae, 0xe9, 0x8b, 0x27, 0x62, 0x57, 0x2e}: "FjMeIshDxe", efi.GUID{0x4f, 0x59, 0xc5, 0x98, 0x59, 0x97, 0xe2, 0x11, 0x9f, 0x93, 0x04, 0x7d, 0x7b, 0x99, 0xe0, 0x97}: "SecureBootService", efi.GUID{0x4f, 0x5a, 0xa1, 0x88, 0x7d, 0x97, 0x82, 0x46, 0xb1, 0x7c, 0xda, 0x1f, 0x31, 0x6c, 0x1f, 0x32}: "RomLayout", efi.GUID{0x4f, 0x5d, 0x47, 0x77, 0x65, 0x79, 0x38, 0x40, 0xb9, 0x70, 0x86, 0x3f, 0xc7, 0x3e, 0x07, 0x61}: "BSDP", efi.GUID{0x4f, 0x60, 0xe5, 0x2c, 0x82, 0xa9, 0x2e, 0x4d, 0x8f, 0xd0, 0xd1, 0x60, 0x0c, 0x2e, 0x15, 0x15}: "PciDynamicSetup", efi.GUID{0x4f, 0x6b, 0x5d, 0xd9, 0xfa, 0x92, 0x78, 0x4e, 0x9c, 0x48, 0xc6, 0x8c, 0x08, 0x13, 0x68, 0x8e}: "OemLinkDellPwdLib", efi.GUID{0x4f, 0x6f, 0xd3, 0x9b, 0xdc, 0x08, 0xab, 0x4e, 0x86, 0x37, 0x2b, 0xc1, 0xbd, 0x5e, 0x0d, 0x95}: "EfiRasClvTester", efi.GUID{0x4f, 0x72, 0x69, 0xaa, 0xc0, 0x11, 0x04, 0x4b, 0xa8, 0x60, 0x2e, 0x8e, 0x19, 0x6b, 0x03, 0xca}: "AmdMemBrhSp5Dxe", efi.GUID{0x4f, 0x73, 0xe9, 0x14, 0x44, 0x36, 0x3f, 0x4f, 0xad, 0xfe, 0xab, 0x80, 0xbf, 0x5b, 0x48, 0xbc}: "SMBGlobalAcpiNvs", efi.GUID{0x4f, 0x7b, 0xf8, 0xf5, 0x3c, 0xcc, 0x8d, 0x40, 0x89, 0xe3, 0x61, 0xc5, 0x9c, 0x54, 0x07, 0xc4}: "SataConfigGuid", efi.GUID{0x4f, 0x7d, 0x8f, 0x22, 0x1c, 0x23, 0xaa, 0x6b, 0xbd, 0xcb, 0xbe, 0xa9, 0x87, 0x5b, 0x04, 0xd3}: "AmiCpmWrapperSmi", efi.GUID{0x4f, 0x8a, 0x66, 0x7b, 0xe1, 0x45, 0x26, 0x4a, 0x8d, 0xec, 0x81, 0xa4, 0xa1, 0xe5, 0x88, 0x88}: "PspDxe", efi.GUID{0x4f, 0x8f, 0x5f, 0x11, 0x99, 0x78, 0x54, 0x41, 0x9c, 0x1d, 0xb6, 0xe1, 0x2b, 0x32, 0x0b, 0xe1}: "EcCommunicationSmm", efi.GUID{0x4f, 0x92, 0x84, 0x07, 0x96, 0xe2, 0xd4, 0x11, 0x9a, 0x49, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d}: "EfiDriverDiagnosticsProtocolGuid", efi.GUID{0x4f, 0x98, 0x6f, 0xf5, 0x46, 0x38, 0xd8, 0x49, 0xaa, 0x0a, 0x23, 0xde, 0x27, 0xe3, 0x83, 0x86}: "RfAutoGen", efi.GUID{0x4f, 0x9d, 0x15, 0x6a, 0x6b, 0x6e, 0x23, 0x45, 0xae, 0xb5, 0xf7, 0xaf, 0x1c, 0x44, 0x4b, 0x0f}: "EfiPprVariable", efi.GUID{0x4f, 0x9d, 0x95, 0x48, 0x74, 0x45, 0x0e, 0x47, 0xaa, 0x4c, 0xcf, 0x14, 0x4d, 0x1c, 0x16, 0x78}: "InstallVerbtableDxe", efi.GUID{0x4f, 0xa3, 0x2b, 0x55, 0x9e, 0x94, 0x4d, 0x40, 0xb6, 0xe2, 0x02, 0xba, 0x73, 0x53, 0x43, 0x07}: "PlatformRasConfigSmm", efi.GUID{0x4f, 0xa4, 0xe6, 0xf0, 0x95, 0x71, 0xc3, 0x41, 0xac, 0x64, 0x54, 0xf2, 0x02, 0xcd, 0x0a, 0x21}: "SecureBootConfigDxe", efi.GUID{0x4f, 0xa5, 0x26, 0x66, 0x98, 0x7e, 0x45, 0x41, 0x8f, 0x8f, 0x8d, 0xb7, 0x0d, 0x3b, 0x04, 0xce}: "PartialMirrorHandler", efi.GUID{0x4f, 0xab, 0x97, 0x15, 0x42, 0xd5, 0xfe, 0x4e, 0x9a, 0xf7, 0xb2, 0x44, 0xec, 0x54, 0x4c, 0x0b}: "EdkiiPeiPciDevicePpi", efi.GUID{0x4f, 0xb3, 0xae, 0xb5, 0x47, 0x30, 0x55, 0x49, 0xb8, 0x80, 0xad, 0xd3, 0x6d, 0x86, 0xdc, 0x0f}: "EdkiiPayloadCommandLine", efi.GUID{0x4f, 0xbd, 0x01, 0x94, 0x00, 0x1a, 0x90, 0x49, 0xab, 0x56, 0xda, 0xf0, 0xe4, 0xe3, 0x48, 0xde}: "AmiHddSmartInitProtocolGuid", efi.GUID{0x4f, 0xbd, 0x1f, 0xbb, 0x30, 0x2e, 0x93, 0x47, 0x9b, 0xed, 0x74, 0xf6, 0x72, 0xbc, 0x8f, 0xfe}: "PchResetRuntime", efi.GUID{0x4f, 0xc1, 0xbc, 0x53, 0x4f, 0xc2, 0x4c, 0x43, 0xb2, 0x94, 0x8e, 0xd2, 0xd4, 0xcc, 0x18, 0x60}: "DataHubDxe", efi.GUID{0x4f, 0xc2, 0xd1, 0x59, 0xf1, 0x50, 0x1a, 0x40, 0xb1, 0x01, 0xf3, 0x3e, 0x0d, 0xae, 0xd4, 0x43}: "EfiGenericVariableGuid", efi.GUID{0x4f, 0xc6, 0xaa, 0x54, 0x72, 0x8a, 0x93, 0x40, 0x80, 0x51, 0xf4, 0xd2, 0x3c, 0x5d, 0x2a, 0x4a}: "SbSocBixbyDxe", efi.GUID{0x4f, 0xc8, 0xfa, 0x6e, 0xb0, 0x0a, 0x47, 0x47, 0x81, 0xbe, 0x85, 0x55, 0x62, 0x59, 0x04, 0x49}: "XenIoProtocolGuid", efi.GUID{0x4f, 0xcb, 0x2c, 0x1f, 0x17, 0xd8, 0x4e, 0x40, 0x98, 0xe7, 0x80, 0xe4, 0x85, 0x1f, 0xb3, 0x3e}: "GdbStub", efi.GUID{0x4f, 0xda, 0x3a, 0x9b, 0x56, 0xae, 0x24, 0x4c, 0x8d, 0xea, 0xf0, 0x3b, 0x75, 0x58, 0xae, 0x50}: "PcdPeim", efi.GUID{0x4f, 0xda, 0xb9, 0x60, 0x3d, 0x99, 0x1d, 0x41, 0xb4, 0x3a, 0x08, 0xb4, 0x1e, 0x7b, 0xec, 0x24}: "AsrockAmdSetupDxeMts", efi.GUID{0x4f, 0xdc, 0x83, 0xe6, 0xed, 0x09, 0x22, 0x4f, 0x86, 0x6b, 0x8e, 0x40, 0x46, 0x94, 0x7c, 0x6c}: "EfiDebugSerialIoProtocol", efi.GUID{0x4f, 0xeb, 0xda, 0xb0, 0xf7, 0x1e, 0xe4, 0x11, 0xbb, 0xcc, 0x78, 0xe7, 0xd1, 0xaf, 0x36, 0xd1}: "HpNetworkBiosUpdateDxeDriver", efi.GUID{0x4f, 0xf5, 0x15, 0x25, 0x77, 0x32, 0xda, 0x47, 0x86, 0xa5, 0x48, 0x45, 0x10, 0xdd, 0x08, 0xe1}: "AmdPspDxeV2Mdn", efi.GUID{0x4f, 0xf7, 0x05, 0xca, 0x56, 0x1e, 0xa9, 0x46, 0xaf, 0x6c, 0xde, 0x5b, 0xbe, 0x83, 0xa3, 0x7d}: "MemoryMarginToolHookSmmStp", efi.GUID{0x4f, 0xfc, 0x85, 0x2e, 0x50, 0x70, 0x09, 0x4f, 0x9c, 0x5d, 0x9a, 0x5d, 0xd0, 0x1d, 0x3c, 0xb5}: "LegacyToEfiSmm", efi.GUID{0x4f, 0xfd, 0x29, 0xb1, 0x47, 0x3e, 0xaa, 0x4b, 0xb0, 0x50, 0x03, 0xcc, 0x41, 0x59, 0x9b, 0xaf}: "OemI2cDevices", efi.GUID{0x4f, 0xfe, 0xf1, 0x8a, 0x8d, 0xdb, 0xa4, 0x43, 0xaa, 0x5d, 0x4a, 0xde, 0x63, 0x2a, 0x0f, 0xe9}: "SmcPeiSerialTextOut", efi.GUID{0x50, 0x14, 0x94, 0x78, 0xab, 0x90, 0xb1, 0x4f, 0xb7, 0x5f, 0x58, 0x92, 0x14, 0xe2, 0x4a, 0x0c}: "FontPackageGuid", efi.GUID{0x50, 0x1c, 0x6f, 0x45, 0x0a, 0x75, 0x71, 0x46, 0x89, 0xed, 0xf5, 0x36, 0xa6, 0x8c, 0x6d, 0x9d}: "AsusSetupVariableItem", efi.GUID{0x50, 0x20, 0x53, 0x3d, 0xda, 0x5c, 0xd0, 0x4f, 0x87, 0x9e, 0x0f, 0x7f, 0x63, 0x0d, 0x5a, 0xfb}: "BrotliCustomDecompress", efi.GUID{0x50, 0x2b, 0x06, 0xd6, 0xca, 0x15, 0xda, 0x11, 0x92, 0x19, 0x00, 0x10, 0x83, 0xff, 0xca, 0x4d}: "EfiAuthenticationChapRadiusGuid", efi.GUID{0x50, 0x2e, 0xe3, 0xd8, 0xd2, 0x1d, 0x8a, 0x4f, 0x93, 0xa5, 0x25, 0x69, 0xc0, 0x3d, 0x0f, 0xc1}: "FchSmbusPei", efi.GUID{0x50, 0x3a, 0x3b, 0xca, 0x98, 0x56, 0x51, 0x45, 0x8b, 0x18, 0xce, 0xae, 0xef, 0x91, 0x7d, 0x50}: "DxeDebugCmdProtocolGuid", efi.GUID{0x50, 0x3f, 0xf2, 0xcc, 0xc1, 0xf7, 0x00, 0x4f, 0x8e, 0x70, 0x13, 0x64, 0x3c, 0x37, 0xe8, 0xb0}: "TBTRetimerFirmwareUpdateDxe", efi.GUID{0x50, 0x49, 0x2c, 0xe9, 0x83, 0xa4, 0x5a, 0x44, 0xb6, 0xa8, 0xb7, 0x02, 0x9c, 0xa9, 0x10, 0xaa}: "PlatformStage2", efi.GUID{0x50, 0x4a, 0xf5, 0x2a, 0x6d, 0xee, 0x12, 0x4f, 0xbc, 0xff, 0xf0, 0x23, 0x4f, 0xf5, 0x7c, 0xa0}: "RTSCallbackHandleSmm", efi.GUID{0x50, 0x4e, 0xc7, 0x91, 0x1d, 0x36, 0xda, 0x4c, 0xa1, 0x6b, 0xc9, 0x2b, 0xe4, 0xbf, 0x16, 0xee}: "AmiTcmSignalguid", efi.GUID{0x50, 0x4f, 0xb7, 0xab, 0x2d, 0xfd, 0x72, 0x40, 0xa3, 0x21, 0xca, 0xfc, 0x72, 0x97, 0x7e, 0xfa}: "SmmRelocatePei", efi.GUID{0x50, 0x50, 0xd7, 0xa0, 0xa7, 0x8d, 0x58, 0x4e, 0x9a, 0xd4, 0x00, 0xfb, 0x9e, 0x3d, 0xb2, 0xf0}: "AsusI2cDetect", efi.GUID{0x50, 0x53, 0x01, 0x41, 0x3b, 0xba, 0x16, 0x49, 0xb0, 0x43, 0x46, 0x15, 0x40, 0x8a, 0x87, 0xb3}: "OememSmiCore", efi.GUID{0x50, 0x56, 0x71, 0x7e, 0xe6, 0x10, 0x7b, 0x4b, 0x89, 0x6a, 0x4d, 0xc5, 0xfc, 0x74, 0x2b, 0xc5}: "LenovoModulesSmmThunkSmm", efi.GUID{0x50, 0x5d, 0x77, 0xf8, 0xbd, 0x8a, 0xdf, 0x4a, 0x92, 0xac, 0x85, 0x3e, 0x51, 0xf6, 0xc8, 0xdc}: "IoMmuAbsentProtocol", efi.GUID{0x50, 0x5e, 0xcf, 0xa7, 0xb4, 0xa5, 0xe2, 0x43, 0x9b, 0xc2, 0xe6, 0x4f, 0x9f, 0x74, 0xcf, 0x6e}: "OemPei", efi.GUID{0x50, 0x61, 0xdd, 0xb6, 0xb2, 0x70, 0xb4, 0x4d, 0xad, 0x9a, 0x3c, 0x7c, 0x2b, 0x04, 0xe5, 0x80}: "AsusEcDxeSmm", efi.GUID{0x50, 0x69, 0x47, 0xd6, 0x81, 0x24, 0xbb, 0x4c, 0x84, 0x00, 0x44, 0x25, 0x42, 0xc7, 0x66, 0xc8}: "ProcessorErrorHandler", efi.GUID{0x50, 0x6d, 0x04, 0x22, 0x90, 0xf3, 0x8c, 0x49, 0x92, 0xe5, 0x5b, 0xa4, 0xf8, 0xe7, 0xf8, 0xb6}: "SBSATAIDE", efi.GUID{0x50, 0x70, 0x88, 0x3c, 0xc8, 0x42, 0x58, 0x49, 0xa0, 0x8e, 0x49, 0x5d, 0x91, 0x0c, 0xf5, 0x15}: "InstallSdevDxe", efi.GUID{0x50, 0x70, 0x9a, 0xe7, 0x09, 0x81, 0xd1, 0x40, 0xb3, 0xc0, 0x2a, 0x3c, 0x74, 0xc4, 0x02, 0x04}: "AGI", efi.GUID{0x50, 0x7b, 0x77, 0x87, 0x29, 0x64, 0x8a, 0x4f, 0x8a, 0x62, 0xf5, 0xb1, 0x4f, 0x1f, 0x59, 0x48}: "FruCpuFeature3v0", efi.GUID{0x50, 0x80, 0x28, 0xa5, 0x28, 0x88, 0xc4, 0x46, 0x8f, 0x72, 0x1c, 0xd7, 0x35, 0xa5, 0x65, 0x20}: "Slp20Dxe", efi.GUID{0x50, 0x84, 0x7d, 0xfe, 0x6d, 0x44, 0x9e, 0x0f, 0xfb, 0xe7, 0xdb, 0xaf, 0xf5, 0xaf, 0x1f, 0xf0}: "AmdSocAm4VmrDxe", efi.GUID{0x50, 0x86, 0xb7, 0x34, 0xba, 0xb0, 0x8f, 0x42, 0x87, 0xb1, 0xa1, 0xac, 0x76, 0x2f, 0x7f, 0xbf}: "EfiHeciRuntimeProtocolGuid", efi.GUID{0x50, 0x8c, 0xfd, 0x4c, 0x68, 0x63, 0x98, 0x43, 0xa7, 0xc7, 0xec, 0xcc, 0x2c, 0x51, 0xe1, 0x52}: "CloudBmrDrv", efi.GUID{0x50, 0x8d, 0x35, 0xf3, 0xd4, 0x72, 0xc0, 0x46, 0x9b, 0xdc, 0xed, 0xc1, 0xda, 0xdf, 0xb5, 0x5f}: "DellSmmMemLibWrapper", efi.GUID{0x50, 0x92, 0x64, 0xb0, 0x2b, 0x51, 0xab, 0x41, 0x86, 0x08, 0xfe, 0x07, 0x57, 0x31, 0x1b, 0x8b}: "AmdPspPeiV2Ssp", efi.GUID{0x50, 0x9d, 0x6e, 0x1b, 0xe4, 0x12, 0x55, 0x4b, 0x81, 0xd9, 0x1a, 0xbf, 0xec, 0x59, 0xd4, 0xfc}: "WakeCtrlSmm", efi.GUID{0x50, 0x9e, 0xd1, 0x78, 0x62, 0x2b, 0x7f, 0x40, 0x9f, 0x49, 0xc6, 0x52, 0xa4, 0x12, 0x40, 0x02}: "VariableRegionInfoDxe", efi.GUID{0x50, 0x9f, 0x56, 0xcf, 0x44, 0xde, 0x54, 0x4f, 0xb4, 0xd7, 0xf4, 0xae, 0x25, 0xcd, 0xa5, 0x99}: "XenIoPciDxe", efi.GUID{0x50, 0x9f, 0xe5, 0xd1, 0xc3, 0xe8, 0x45, 0x45, 0xbf, 0x61, 0x11, 0xf0, 0x02, 0x23, 0x3c, 0x97}: "TxtPeiAp", efi.GUID{0x50, 0xa6, 0x5e, 0x60, 0x5c, 0xc6, 0xe1, 0x42, 0xba, 0x80, 0x91, 0xa5, 0x2a, 0xb6, 0x18, 0xc6}: "EfiEndOfPeiSignalPpiGuid", efi.GUID{0x50, 0xa6, 0x5f, 0xbc, 0xbb, 0xed, 0x0d, 0x4d, 0xb3, 0xa3, 0xd9, 0x89, 0x07, 0xf8, 0x47, 0xdf}: "PeiBlockIoPpiGuid", efi.GUID{0x50, 0xb2, 0xc1, 0x43, 0x52, 0xbf, 0xde, 0x4d, 0x82, 0x80, 0x57, 0xe0, 0xad, 0x61, 0x11, 0x7d}: "H19AmdDimmSpdAccess", efi.GUID{0x50, 0xb4, 0x14, 0x13, 0x56, 0xe8, 0x8e, 0x43, 0x81, 0x31, 0xcf, 0x82, 0x3c, 0xab, 0x35, 0x50}: "ExpansionSlotConfigPortingPei", efi.GUID{0x50, 0xbf, 0x6f, 0x07, 0x83, 0xef, 0x77, 0x4b, 0x91, 0x2c, 0xd5, 0xbb, 0x77, 0x07, 0x5a, 0xe3}: "CompalThermalDxe", efi.GUID{0x50, 0xc0, 0xd7, 0xd4, 0x73, 0xc2, 0xa0, 0x44, 0x84, 0x56, 0xab, 0xa6, 0x39, 0x9e, 0xaf, 0x4d}: "LenovoResetSystemToFactoryDefaultsDxe", efi.GUID{0x50, 0xc1, 0x7f, 0x71, 0xd9, 0xab, 0x14, 0x46, 0x80, 0x15, 0x0b, 0x33, 0x23, 0xea, 0xb9, 0x5c}: "AmiNvramSpdMap", efi.GUID{0x50, 0xc8, 0x1c, 0x9e, 0x31, 0x67, 0x48, 0x48, 0x87, 0x52, 0x66, 0x73, 0xc7, 0x00, 0x5e, 0xee}: "FspInitPreMem", efi.GUID{0x50, 0xca, 0x28, 0x4e, 0x82, 0xd5, 0xac, 0x44, 0xa1, 0x1f, 0xe3, 0xd5, 0x65, 0x26, 0xdb, 0x34}: "EdkiiPiSmmCommunicationRegionTableGuid", efi.GUID{0x50, 0xca, 0x98, 0x96, 0xbb, 0x54, 0x43, 0x4b, 0xb1, 0xcc, 0xec, 0x13, 0x38, 0xb7, 0xd7, 0x67}: "Mec5105InitPei", efi.GUID{0x50, 0xce, 0x49, 0xcb, 0x75, 0x3a, 0xde, 0x11, 0x8a, 0x39, 0x08, 0x00, 0x20, 0x0c, 0x9a, 0x66}: "PerfTuneSmm", efi.GUID{0x50, 0xdb, 0x00, 0xeb, 0x54, 0xc6, 0x0f, 0x46, 0x8d, 0x7a, 0x0e, 0x44, 0x4f, 0xd3, 0x2b, 0x45}: "DebugMaskPei", efi.GUID{0x50, 0xdd, 0x4a, 0xb3, 0xd4, 0x05, 0x99, 0x4c, 0xbc, 0x55, 0xf3, 0xf2, 0xf7, 0xf5, 0x2e, 0x1a}: "LegacyToEfiDxe", efi.GUID{0x50, 0xe0, 0x01, 0x16, 0x0c, 0xbe, 0xb7, 0x41, 0x8f, 0x96, 0x9f, 0x48, 0xf7, 0x2b, 0x7e, 0x26}: "OnboardControllerCtrl", efi.GUID{0x50, 0xed, 0xaf, 0x54, 0x99, 0x59, 0x94, 0x45, 0x9b, 0x79, 0xf0, 0xaa, 0xa0, 0x9f, 0xa3, 0x2c}: "DashIoCfgDxe", efi.GUID{0x50, 0xef, 0xee, 0x54, 0xc0, 0x2e, 0xb8, 0x45, 0x80, 0xca, 0x9c, 0xb1, 0xab, 0x81, 0x95, 0x07}: "ApobRmbDxe", efi.GUID{0x50, 0xf3, 0x94, 0x73, 0x4d, 0x39, 0x8c, 0x48, 0xbb, 0x75, 0x0c, 0xab, 0x7b, 0x12, 0x0a, 0xc5}: "EdkiiDeviceIdentifierTypeUsb", efi.GUID{0x50, 0xf4, 0x48, 0xc4, 0xd2, 0xd9, 0xdf, 0x4b, 0xac, 0x47, 0x6e, 0xb2, 0xa2, 0x25, 0xd5, 0x4b}: "AmdOemRasRsDxe", efi.GUID{0x50, 0xfc, 0xb1, 0x88, 0x36, 0x45, 0x31, 0x49, 0xa8, 0xcd, 0xab, 0x54, 0xba, 0x41, 0x6a, 0xc0}: "VmdVrocWrapper", efi.GUID{0x50, 0xfe, 0xda, 0xe5, 0xcb, 0x10, 0xb5, 0x41, 0x9c, 0xb5, 0x27, 0x4e, 0x1c, 0xf1, 0xa8, 0xd7}: "Ip6BmcLanConfig", efi.GUID{0x51, 0x00, 0xd1, 0xaa, 0x94, 0x5d, 0x9f, 0x4b, 0xb7, 0x78, 0xe4, 0x55, 0x5e, 0xe3, 0xcc, 0xca}: "IioSmm", efi.GUID{0x51, 0x06, 0x76, 0xc6, 0x8d, 0xa3, 0x4f, 0x5f, 0xae, 0xaf, 0xf6, 0x66, 0x15, 0x49, 0xdf, 0x75}: "EmuBlockIo", efi.GUID{0x51, 0x07, 0x99, 0xfa, 0x95, 0x07, 0x5e, 0x4d, 0xab, 0x70, 0xa6, 0xf5, 0xa6, 0x77, 0x1a, 0xc9}: "GopPolicy", efi.GUID{0x51, 0x0a, 0xe6, 0x63, 0x7d, 0x49, 0x27, 0xd4, 0xc4, 0xa5, 0xb8, 0xab, 0xdc, 0x3a, 0xae, 0xb6}: "EfiRegexSyntaxTypePerlGuid", efi.GUID{0x51, 0x16, 0xd5, 0x50, 0xea, 0xe5, 0x7a, 0x4c, 0x9d, 0xef, 0x7c, 0xf8, 0xa6, 0x3a, 0xfc, 0x91}: "AmdPspDxeV2Phx", efi.GUID{0x51, 0x1e, 0x1e, 0x93, 0xdd, 0x83, 0x7f, 0x42, 0xb5, 0xe0, 0x5f, 0x25, 0xe2, 0xc5, 0x04, 0xa8}: "AdapterWarnings", efi.GUID{0x51, 0x1e, 0xb8, 0x68, 0x83, 0x25, 0x82, 0x45, 0x95, 0xdb, 0xc5, 0x72, 0x32, 0x36, 0xc4, 0xf1}: "NonSmmEmul6064TrapProtocolGuid", efi.GUID{0x51, 0x1f, 0x49, 0xc4, 0xb9, 0x66, 0x90, 0x45, 0x95, 0xe4, 0xe2, 0xb4, 0xad, 0x77, 0x77, 0x03}: "HeciSmm", efi.GUID{0x51, 0x24, 0x8a, 0x4c, 0x07, 0xc2, 0x5b, 0x40, 0x96, 0x94, 0x99, 0xea, 0x13, 0x25, 0x13, 0x41}: "EfiDebugMaskProtocolGuid", efi.GUID{0x51, 0x28, 0x17, 0x43, 0x7e, 0xcf, 0x45, 0x43, 0x9f, 0xe0, 0xd7, 0x01, 0x2b, 0xb1, 0x7b, 0x88}: "iFfsSmm", efi.GUID{0x51, 0x30, 0x46, 0x8d, 0x2f, 0x69, 0x24, 0x49, 0x9a, 0xec, 0x0a, 0x83, 0x3b, 0x1b, 0xa4, 0x9b}: "PxeRomAr8132", efi.GUID{0x51, 0x43, 0xd5, 0x66, 0x4b, 0x4c, 0x70, 0x44, 0x95, 0x99, 0xf1, 0x7a, 0x32, 0x75, 0x28, 0x71}: "AplRecoveryPei", efi.GUID{0x51, 0x45, 0x52, 0x13, 0x00, 0x56, 0xb4, 0x43, 0xa5, 0xdf, 0xf4, 0xb1, 0x94, 0x2f, 0x33, 0x9a}: "MeResiliencyPei", efi.GUID{0x51, 0x48, 0xdc, 0x26, 0x5f, 0x19, 0xe1, 0x4a, 0x9a, 0x19, 0xfb, 0xf8, 0x83, 0xbb, 0xb3, 0x5e}: "AmiAptioSigOwner", efi.GUID{0x51, 0x4d, 0x62, 0x76, 0x16, 0xe9, 0xa0, 0x46, 0x82, 0x4c, 0xab, 0x27, 0xe0, 0xaf, 0x3e, 0x77}: "SioSwSmi", efi.GUID{0x51, 0x4f, 0x44, 0xfe, 0x88, 0x52, 0xe6, 0x46, 0xb1, 0x71, 0x73, 0xc9, 0x1b, 0xde, 0x35, 0x8b}: "DellUefiClass3ConfigSmm", efi.GUID{0x51, 0x51, 0x25, 0xf5, 0x1f, 0xdd, 0xd9, 0x4b, 0xa3, 0x50, 0x23, 0x52, 0x00, 0x79, 0x87, 0x40}: "UpdateDsdtByAcpiSdtDxe", efi.GUID{0x51, 0x52, 0x47, 0x2b, 0xc6, 0x13, 0x47, 0x45, 0xb2, 0xf2, 0x40, 0x76, 0x2f, 0xef, 0x9b, 0x89}: "SystemBootMenuDxeGui", efi.GUID{0x51, 0x53, 0x90, 0x73, 0x4d, 0xeb, 0x37, 0x46, 0xa8, 0x3b, 0xd1, 0xbf, 0x6c, 0x1c, 0x48, 0xeb}: "TSEInvalidateBgrtStatusProtocolGuid", efi.GUID{0x51, 0x64, 0x3e, 0xe0, 0x7a, 0x29, 0xe9, 0x4f, 0xb1, 0xf7, 0x63, 0x9b, 0x70, 0x32, 0x7c, 0x52}: "EnhancePeiVariable", efi.GUID{0x51, 0x71, 0x32, 0x62, 0xc3, 0xaf, 0x87, 0x41, 0x89, 0xdd, 0x78, 0x8f, 0x0f, 0x16, 0xb6, 0xd5}: "MiscConfigPei", efi.GUID{0x51, 0x77, 0x28, 0x27, 0x7a, 0x86, 0xcd, 0x46, 0x91, 0xaf, 0x41, 0x6f, 0xf6, 0xae, 0x3d, 0xfe}: "DellSystemIdConfigDxe", efi.GUID{0x51, 0x7e, 0xa3, 0x71, 0xc8, 0xf3, 0x99, 0x4b, 0xb3, 0x35, 0xa6, 0x61, 0xca, 0x8a, 0xd1, 0x3a}: "AmdCpmOemInitDxe", efi.GUID{0x51, 0x7e, 0xa3, 0x71, 0xc8, 0xf3, 0x99, 0x4b, 0xb3, 0x35, 0xa6, 0x61, 0xca, 0x8a, 0xd3, 0x3a}: "AmdIncompatiblePci", efi.GUID{0x51, 0x7f, 0xbb, 0x25, 0x2c, 0x75, 0x1e, 0x49, 0xbc, 0xb1, 0x55, 0xea, 0x60, 0x8b, 0x31, 0x97}: "CertificateStorageSmm", efi.GUID{0x51, 0x81, 0x4e, 0xdb, 0xed, 0x57, 0xed, 0x4b, 0x88, 0x33, 0x67, 0x51, 0xb5, 0xd1, 0xa8, 0xd7}: "ConnectConInEventGuid", efi.GUID{0x51, 0x8c, 0x2f, 0x37, 0x3b, 0xc4, 0x2a, 0x47, 0x82, 0xaf, 0x54, 0xb5, 0xc3, 0x23, 0x4d, 0x7f}: "CpPcBiosIdFile", efi.GUID{0x51, 0x90, 0xc0, 0xf5, 0xf4, 0x2c, 0x6d, 0x47, 0x8c, 0x83, 0x7e, 0xf3, 0x5b, 0xac, 0xf3, 0x0a}: "WakeOnRtcSmm", efi.GUID{0x51, 0x97, 0x35, 0xec, 0xb5, 0x1d, 0x8a, 0x4e, 0xb2, 0xe9, 0x7b, 0xa1, 0xfe, 0x9a, 0x91, 0x68}: "FmacDrv", efi.GUID{0x51, 0x9e, 0x6a, 0x72, 0x0e, 0x7b, 0x77, 0x4f, 0x91, 0x59, 0x92, 0x39, 0xeb, 0x5d, 0xea, 0x34}: "SioIt8659eDxe", efi.GUID{0x51, 0xa2, 0xaf, 0x61, 0xc8, 0x8a, 0x40, 0x44, 0x9a, 0xb5, 0x76, 0x2b, 0x1b, 0xf0, 0x51, 0x56}: "Mtftp6Dxe", efi.GUID{0x51, 0xb9, 0x27, 0x01, 0x40, 0xe8, 0x0a, 0x48, 0xa0, 0x83, 0x08, 0x7a, 0x9a, 0xe1, 0x73, 0x53}: "LEMSetVariableCtlSmm", efi.GUID{0x51, 0xbd, 0x08, 0xa7, 0x6f, 0xf5, 0xa2, 0x4d, 0x8f, 0x78, 0x14, 0x80, 0xcb, 0x2c, 0x1d, 0x84}: "SMSC5045PeiInit", efi.GUID{0x51, 0xc0, 0xba, 0xb1, 0xc2, 0xd5, 0xc1, 0x4a, 0xac, 0x7d, 0x9d, 0x2f, 0x51, 0x8a, 0x1e, 0x7b}: "AmdApcbSmmV3", efi.GUID{0x51, 0xce, 0xcf, 0x6e, 0x24, 0x57, 0x0c, 0x45, 0xa3, 0x8a, 0x58, 0x55, 0x3e, 0x95, 0x44, 0x22}: "SmmAccessPei", efi.GUID{0x51, 0xd1, 0x9c, 0x65, 0x74, 0xca, 0xac, 0x47, 0x80, 0xdf, 0x05, 0x5f, 0x35, 0xbd, 0xbf, 0x4b}: "ControllerDiscoverySmm", efi.GUID{0x51, 0xd2, 0x5d, 0x0f, 0x8b, 0x6c, 0x52, 0x47, 0x81, 0x10, 0xfc, 0xdf, 0x57, 0xee, 0xdf, 0xb2}: "DxeReportStatusConOut", efi.GUID{0x51, 0xd6, 0xa3, 0x0e, 0xb4, 0x49, 0xd9, 0x47, 0xbd, 0xc3, 0xe4, 0xa3, 0x79, 0xf3, 0xde, 0x76}: "HwmInitSmm", efi.GUID{0x51, 0xda, 0x56, 0x5f, 0x43, 0x6e, 0x5e, 0x43, 0xa1, 0x67, 0xfa, 0x44, 0x15, 0xe8, 0xe6, 0xb8}: "FjGabiCoreDxeBin", efi.GUID{0x51, 0xdc, 0x21, 0xb9, 0xd4, 0x49, 0x14, 0x4c, 0x90, 0x89, 0x93, 0x1c, 0x2d, 0x6b, 0x92, 0xbe}: "AmdSocAm4RvPei", efi.GUID{0x51, 0xdd, 0x54, 0x01, 0x79, 0x90, 0x10, 0x4a, 0x89, 0x5c, 0x9c, 0x07, 0x72, 0x81, 0x57, 0x88}: "PlatformBootManagerStringPackGuid", efi.GUID{0x51, 0xdf, 0xa7, 0x95, 0x6f, 0x96, 0x9c, 0x49, 0xbc, 0xab, 0x9c, 0x24, 0x22, 0xc0, 0xd3, 0xd2}: "FchI3cPei", efi.GUID{0x51, 0xe0, 0x2e, 0xfb, 0xf6, 0xa1, 0x6c, 0x4b, 0xa1, 0x37, 0x96, 0x1c, 0x41, 0xf2, 0xc5, 0xdd}: "TPMfirmwaredriver", efi.GUID{0x51, 0xe0, 0xf1, 0x2d, 0x6d, 0x90, 0xff, 0x4e, 0x86, 0x9d, 0x24, 0xe6, 0x53, 0x78, 0xfb, 0x9e}: "ConsoleInDevicesStartedProtocol", efi.GUID{0x51, 0xf2, 0x66, 0x9e, 0x7c, 0x72, 0x8c, 0x41, 0xbf, 0xd6, 0xc2, 0xb4, 0x25, 0x28, 0x18, 0xea}: "EfiHiiImageDecoderProtocolGuid", efi.GUID{0x51, 0xf4, 0xa1, 0xdc, 0x0f, 0x98, 0x1a, 0x47, 0x88, 0x82, 0x7a, 0x33, 0x12, 0x3d, 0xfe, 0x52}: "MemoryIdm", efi.GUID{0x51, 0xf9, 0x40, 0xe3, 0xd0, 0x0c, 0x18, 0x4e, 0xa0, 0xc7, 0x2e, 0x2f, 0xc9, 0xf6, 0xb0, 0x1b}: "FjGabiSettingsCoreAbstractionSmm", efi.GUID{0x52, 0x0a, 0xa9, 0x58, 0x9f, 0x92, 0xf8, 0x44, 0xac, 0x35, 0xa7, 0xe1, 0xab, 0x18, 0xac, 0x91}: "FPVARBAK", efi.GUID{0x52, 0x0b, 0x14, 0x9e, 0x36, 0xa6, 0x66, 0x4e, 0xa0, 0x60, 0x7d, 0xde, 0x15, 0x3b, 0x5e, 0x9b}: "HpTbtSetup", efi.GUID{0x52, 0x17, 0x33, 0xc4, 0xac, 0x8b, 0x2a, 0x4f, 0xa9, 0xc3, 0x41, 0x8a, 0xdf, 0xb0, 0x33, 0xc4}: "DellSpiPartWinbond", efi.GUID{0x52, 0x19, 0x3b, 0x41, 0x64, 0xd5, 0xeb, 0x4a, 0x8c, 0xda, 0x83, 0x53, 0x16, 0x15, 0x00, 0xbc}: "S3SaveSmm", efi.GUID{0x52, 0x1a, 0x80, 0xbb, 0x0f, 0xc9, 0xde, 0x4e, 0x91, 0xb2, 0x82, 0x52, 0x08, 0x88, 0xcb, 0xc3}: "IntelgbeUndiDxe", efi.GUID{0x52, 0x1d, 0xd2, 0x57, 0x96, 0x38, 0x7c, 0x49, 0x9c, 0x20, 0xb1, 0x44, 0xbe, 0x7a, 0xd1, 0xcc}: "UnlockPei", efi.GUID{0x52, 0x22, 0x22, 0x13, 0x1b, 0x93, 0x52, 0x45, 0x95, 0x77, 0x68, 0x55, 0x61, 0x13, 0xaf, 0xd0}: "FjSmmPcieCardReaderRTS5250", efi.GUID{0x52, 0x25, 0x67, 0x47, 0xb3, 0x43, 0x7d, 0x4d, 0x90, 0x20, 0x07, 0xb3, 0x65, 0x5d, 0x9f, 0x18}: "HeciTransportPei", efi.GUID{0x52, 0x27, 0x85, 0xb5, 0x52, 0xc4, 0x66, 0x46, 0xb1, 0x89, 0x03, 0xee, 0xe5, 0xe3, 0xa0, 0x7b}: "KEMoPLATFORMMENUDxe", efi.GUID{0x52, 0x38, 0x8c, 0x90, 0x1b, 0xb6, 0x26, 0x4f, 0xab, 0x66, 0xf7, 0x4f, 0x97, 0xe7, 0xdc, 0x1c}: "AmtBypass", efi.GUID{0x52, 0x41, 0x14, 0x80, 0x70, 0x67, 0xd0, 0x45, 0x84, 0x63, 0xe4, 0xb4, 0x8e, 0xbe, 0x4b, 0x5b}: "HpAmdTbtPei", efi.GUID{0x52, 0x43, 0xad, 0xe1, 0x10, 0x26, 0xd6, 0x4d, 0xbb, 0x8f, 0x8b, 0xb2, 0xb0, 0x33, 0x83, 0xa3}: "LenovoSystemScsiOpromPassThruDxe", efi.GUID{0x52, 0x46, 0x23, 0x45, 0xb3, 0x62, 0xf7, 0x4b, 0x38, 0x78, 0xb5, 0x4f, 0xc4, 0x4b, 0x53, 0x28}: "ForceLpmAspmDisable", efi.GUID{0x52, 0x49, 0x2c, 0x1b, 0x78, 0xd7, 0x64, 0x4b, 0xbd, 0xa1, 0x15, 0xa3, 0x6f, 0x5f, 0xa5, 0x45}: "Slp20PubKey", efi.GUID{0x52, 0x52, 0x82, 0x28, 0x11, 0x32, 0x2f, 0x35, 0x49, 0xce, 0x31, 0x25, 0x34, 0xc4, 0x14, 0x19}: "OdmGetPchCf9TrapHandleProtocol", efi.GUID{0x52, 0x56, 0x19, 0x33, 0x4f, 0x2c, 0x55, 0x4b, 0xb6, 0xcb, 0x63, 0xd3, 0xc3, 0x85, 0x98, 0xd3}: "PchHsUartDxe", efi.GUID{0x52, 0x57, 0x11, 0xde, 0x9d, 0xa7, 0x33, 0x4f, 0x84, 0x59, 0xa9, 0x52, 0x4a, 0x64, 0xfc, 0x52}: "SioFanMapSmm", efi.GUID{0x52, 0x5e, 0xd8, 0xf8, 0xf9, 0x00, 0xe4, 0x4d, 0xae, 0xec, 0x0a, 0xe7, 0x6b, 0xa6, 0xc2, 0x10}: "FjGpioCoffeeLakePei", efi.GUID{0x52, 0x62, 0x56, 0x5e, 0x6c, 0x4f, 0x1a, 0x07, 0x48, 0x5d, 0xc0, 0xb6, 0xcd, 0x6d, 0x05, 0xef}: "AmdPspP2CmboxV2SmmBuffer", efi.GUID{0x52, 0x6c, 0x29, 0x63, 0xcf, 0x01, 0xea, 0x4e, 0xa4, 0x7c, 0x78, 0x2a, 0x14, 0xda, 0x68, 0x94}: "SmramSaveInfoHandlerSmm", efi.GUID{0x52, 0x70, 0xe3, 0xa1, 0xd9, 0x80, 0x65, 0x4e, 0xa3, 0x17, 0x3e, 0x9a, 0x55, 0xc4, 0x3e, 0xc9}: "EfiIdeControllerInitProtocolGuid", efi.GUID{0x52, 0x73, 0x09, 0xed, 0x41, 0x90, 0x5a, 0x44, 0x80, 0xb6, 0xb2, 0x9d, 0x50, 0x9e, 0x88, 0x45}: "PchDmiTcVcPpi", efi.GUID{0x52, 0x75, 0x72, 0x47, 0x4b, 0xa5, 0x84, 0x4a, 0x8c, 0xc1, 0xbf, 0xf2, 0x3e, 0x23, 0x96, 0x36}: "Tcg2PlatformPei", efi.GUID{0x52, 0x75, 0x72, 0x47, 0x4b, 0xa5, 0x84, 0x4a, 0x8c, 0xc1, 0xbf, 0xf2, 0x3e, 0x24, 0x96, 0x37}: "XmlCliCommonPei", efi.GUID{0x52, 0x84, 0x7c, 0xa7, 0x21, 0x08, 0x44, 0x45, 0xae, 0x47, 0x25, 0x74, 0x89, 0x85, 0x5f, 0x91}: "AmiPspNvramDxe", efi.GUID{0x52, 0x85, 0x78, 0xb4, 0x0a, 0x65, 0xd2, 0x43, 0xbf, 0xe4, 0x32, 0x4b, 0x4e, 0x1b, 0x43, 0x5d}: "ToBootEvent", efi.GUID{0x52, 0x9f, 0x35, 0x0e, 0xde, 0xc6, 0xa4, 0x4e, 0x9a, 0x05, 0x85, 0x7d, 0xe1, 0xb7, 0xd3, 0x20}: "FjWifi6eSupport", efi.GUID{0x52, 0xa5, 0x33, 0xa7, 0xe6, 0x26, 0x03, 0x48, 0x92, 0xde, 0x6c, 0x55, 0x43, 0xee, 0x54, 0xea}: "SlotDataUpdateDxeSierra", efi.GUID{0x52, 0xb1, 0x82, 0xfe, 0xc9, 0x96, 0x53, 0x4a, 0x95, 0xdc, 0x6e, 0x49, 0xc8, 0x50, 0x87, 0xc3}: "ControllerDiscoveryDxe", efi.GUID{0x52, 0xc8, 0xb7, 0x0f, 0xca, 0xad, 0x53, 0x48, 0x8d, 0x0f, 0xfb, 0xa7, 0x1b, 0x1c, 0xe1, 0x1a}: "EfiFormBrowserCompatibilityProtocolGuid", efi.GUID{0x52, 0xc8, 0xee, 0x3f, 0x4c, 0xf1, 0x7f, 0x4e, 0x97, 0xfd, 0x4c, 0x3a, 0x8c, 0x5b, 0xbe, 0xcc}: "FWkey", efi.GUID{0x52, 0xcd, 0xc9, 0xb2, 0xb3, 0x86, 0x31, 0x40, 0xb8, 0x30, 0x8b, 0xd8, 0x44, 0x95, 0xab, 0xc8}: "HddSpinDownDxe", efi.GUID{0x52, 0xce, 0x5e, 0xa0, 0xa8, 0x15, 0x4e, 0x42, 0xbf, 0xd3, 0xfc, 0xf3, 0xd5, 0x66, 0xa0, 0x9c}: "AmtPolicyInitPei", efi.GUID{0x52, 0xd1, 0xf7, 0x3f, 0x86, 0xef, 0xc3, 0x47, 0x97, 0xb0, 0xce, 0xd9, 0xbb, 0x80, 0x9a, 0x67}: "ClvBootTimeTestExecution", efi.GUID{0x52, 0xd3, 0x91, 0xc4, 0x23, 0x76, 0x43, 0x48, 0xac, 0xcc, 0x27, 0x91, 0xa7, 0x57, 0x44, 0x21}: "DefaultdbFile2", efi.GUID{0x52, 0xd5, 0x2a, 0x6f, 0x66, 0xf0, 0xd6, 0x4e, 0xad, 0xa3, 0xd9, 0x2a, 0x3d, 0x8e, 0xa1, 0x6e}: "CcgOnlySmm", efi.GUID{0x52, 0xd6, 0x53, 0x9e, 0xe1, 0xd0, 0x06, 0x49, 0xa0, 0xcb, 0x31, 0x68, 0x5c, 0x32, 0xbf, 0xcc}: "DellNbEcPei", efi.GUID{0x52, 0xf3, 0x99, 0xd2, 0x4f, 0x09, 0x87, 0x4b, 0x8c, 0xd2, 0xc9, 0x4f, 0x9e, 0x0a, 0x44, 0xc3}: "DellRecoveryPei", efi.GUID{0x52, 0xfb, 0x9f, 0x2b, 0x13, 0x1b, 0x6f, 0x41, 0xa8, 0x7b, 0xbc, 0x93, 0x0d, 0xef, 0x92, 0xa8}: "TcgEventEntryHobGuid", efi.GUID{0x53, 0x0a, 0xb9, 0x59, 0x1b, 0x46, 0x50, 0x4c, 0xa7, 0x9f, 0xa3, 0x27, 0x73, 0xc3, 0x19, 0xae}: "IdeBusSrc", efi.GUID{0x53, 0x0b, 0x6c, 0x97, 0xe2, 0x45, 0x17, 0x4d, 0x83, 0x28, 0x8e, 0x8f, 0x5c, 0xa3, 0x00, 0x2a}: "OobEthDxe", efi.GUID{0x53, 0x0e, 0xc3, 0x83, 0x4c, 0x7a, 0x73, 0x42, 0xa6, 0x86, 0x65, 0xe9, 0xdc, 0x09, 0xd7, 0x5b}: "AcpiDebugTable", efi.GUID{0x53, 0x13, 0x0e, 0x8b, 0x8c, 0x35, 0x2f, 0x4e, 0x93, 0x45, 0xee, 0xbf, 0x1d, 0xab, 0x98, 0x9b}: "AsrockRtlandxe", efi.GUID{0x53, 0x15, 0x6a, 0x68, 0xd8, 0x4b, 0x94, 0x47, 0xaa, 0x27, 0x27, 0xf5, 0x73, 0x84, 0xa9, 0x90}: "DellEepromToNvs", efi.GUID{0x53, 0x1e, 0x2d, 0x7c, 0x65, 0xe5, 0xea, 0x47, 0x8a, 0x1e, 0xdc, 0x97, 0x45, 0x99, 0x26, 0xb0}: "OemServiceSmm", efi.GUID{0x53, 0x1f, 0xe2, 0x98, 0x0c, 0x59, 0xce, 0x43, 0x99, 0xc8, 0x63, 0x7b, 0x65, 0x80, 0xa5, 0xda}: "DellUsbExtSmm", efi.GUID{0x53, 0x27, 0x86, 0xe3, 0xf0, 0x53, 0xf2, 0x4e, 0xa2, 0xa8, 0xc0, 0x48, 0x00, 0x37, 0x6e, 0xae}: "FchI3cHciPei", efi.GUID{0x53, 0x29, 0x40, 0xef, 0x19, 0xb8, 0xc2, 0x4c, 0xa4, 0x4c, 0x4c, 0x9b, 0x4c, 0xfb, 0xc8, 0x89}: "AmiTseOemPortingVar2Guid", efi.GUID{0x53, 0x2b, 0x65, 0x62, 0xd9, 0x79, 0xf2, 0x4c, 0xb5, 0xaa, 0xad, 0x99, 0x81, 0x0a, 0x7f, 0x17}: "EfiHpIoxAccess", efi.GUID{0x53, 0x2f, 0x01, 0xe6, 0x95, 0x75, 0x9a, 0x40, 0x9f, 0xac, 0x30, 0xe0, 0x39, 0x0a, 0x2a, 0x69}: "DellSmbQuickSetSupportProt", efi.GUID{0x53, 0x38, 0x5e, 0x09, 0x3d, 0x2f, 0x61, 0x40, 0xbb, 0xdf, 0x0e, 0xc0, 0xd4, 0x78, 0xfd, 0x16}: "OemServiceDxe", efi.GUID{0x53, 0x3a, 0x14, 0xf1, 0xeb, 0xcb, 0x33, 0x48, 0xa4, 0xdc, 0x08, 0x26, 0xe0, 0x63, 0xec, 0x08}: "MeRegionUpdateVolume", efi.GUID{0x53, 0x45, 0x94, 0xd8, 0xdd, 0xc4, 0xf4, 0x41, 0x9b, 0x30, 0xe1, 0x39, 0x7c, 0xfb, 0x26, 0x7b}: "EfiNicIp4ConfigVariableGuid", efi.GUID{0x53, 0x47, 0xc1, 0xe0, 0xbe, 0xf9, 0xd2, 0x11, 0x9a, 0x0c, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d}: "EfiPcAnsiGuid", efi.GUID{0x53, 0x5b, 0x20, 0xe5, 0x58, 0x97, 0xab, 0x44, 0xa4, 0x4d, 0xdb, 0x3b, 0xe4, 0x1d, 0x67, 0x42}: "DellNbConfigPei", efi.GUID{0x53, 0x5d, 0xec, 0xb0, 0x81, 0x74, 0x21, 0x48, 0xac, 0x57, 0x69, 0xdd, 0xb2, 0x86, 0x8d, 0xe6}: "UndiLayer", efi.GUID{0x53, 0x5d, 0xfb, 0x01, 0xf9, 0x4f, 0xd9, 0x4a, 0xad, 0xf5, 0x7d, 0xc6, 0x36, 0x59, 0xa1, 0xb2}: "PeiPciEnumeration", efi.GUID{0x53, 0x61, 0xf4, 0x96, 0xa7, 0x97, 0x93, 0x47, 0xac, 0xc1, 0xfa, 0x19, 0xbf, 0x78, 0xea, 0x97}: "EdkiiPeCoffImageEmulatorProtocol", efi.GUID{0x53, 0x65, 0x78, 0xca, 0x6a, 0xac, 0xaa, 0x41, 0x9a, 0xb6, 0x53, 0x16, 0x30, 0x85, 0x0c, 0x92}: "ICE30plusPEI", efi.GUID{0x53, 0x66, 0x05, 0x69, 0xc6, 0x3f, 0x82, 0x43, 0x90, 0xec, 0xb5, 0xfa, 0xf7, 0x59, 0x9f, 0xd3}: "CnlHsioTuning", efi.GUID{0x53, 0x68, 0x45, 0x70, 0x0e, 0xd7, 0x6c, 0x49, 0xb6, 0xb1, 0xcf, 0x88, 0xa3, 0x0b, 0xe1, 0xa9}: "AmdVersionPei", efi.GUID{0x53, 0x6b, 0x9a, 0x14, 0xfa, 0xfa, 0xf9, 0x44, 0x8b, 0xaf, 0xf5, 0x0c, 0x68, 0xa0, 0x52, 0x36}: "ScInitDxe", efi.GUID{0x53, 0x6b, 0xdc, 0x73, 0xcb, 0xa5, 0x05, 0x46, 0x97, 0xb9, 0x0e, 0x83, 0xfd, 0xe5, 0x91, 0x94}: "HQUcsiDriver", efi.GUID{0x53, 0x6c, 0xcb, 0x4e, 0x41, 0xc6, 0x70, 0x43, 0x8c, 0xb2, 0x3b, 0x0e, 0x49, 0x6e, 0x83, 0x78}: "EfiExtendedSalVariableServicesProtocolGuid", efi.GUID{0x53, 0x71, 0xc2, 0xc7, 0xfd, 0xe7, 0x67, 0x4d, 0x96, 0x70, 0xcb, 0x21, 0x4e, 0xef, 0x0f, 0x0e}: "LEMBBRecoveryPostFlag", efi.GUID{0x53, 0x7a, 0xdc, 0xf7, 0x89, 0xd7, 0x49, 0x41, 0x9d, 0xec, 0xc1, 0x8f, 0x2f, 0x8c, 0xc3, 0xd3}: "SioPowerButtonOverrideDxe", efi.GUID{0x53, 0x7a, 0xdc, 0xf7, 0x89, 0xd7, 0x49, 0x48, 0x9d, 0xec, 0xc7, 0x8f, 0x2f, 0x8c, 0xc1, 0xd6}: "SmartCoverDxe", efi.GUID{0x53, 0x87, 0x5a, 0xfa, 0x0e, 0xa3, 0x73, 0x4c, 0x92, 0x65, 0x8f, 0xec, 0x0a, 0xc1, 0x18, 0xae}: "UsbHubEnableSmi", efi.GUID{0x53, 0x89, 0x79, 0x60, 0x91, 0x1e, 0xc9, 0x46, 0xb5, 0x21, 0x31, 0x66, 0x23, 0x42, 0x45, 0x22}: "WheaErrorLog", efi.GUID{0x53, 0x8a, 0x71, 0x70, 0x5e, 0xe0, 0xa4, 0x41, 0x84, 0x20, 0x37, 0x8b, 0xea, 0x75, 0x95, 0x1f}: "ClickBiosUiSimple", efi.GUID{0x53, 0x8b, 0xa8, 0x2c, 0x96, 0xd2, 0x80, 0x40, 0xa4, 0xa5, 0xca, 0xd9, 0xba, 0xe2, 0x4b, 0x09}: "LoadFixedAddressConfigurationTableGuid", efi.GUID{0x53, 0x93, 0x52, 0x8b, 0xcc, 0x1f, 0xc0, 0x4a, 0xa1, 0x21, 0x90, 0xbe, 0x9f, 0x9c, 0xbf, 0x7a}: "DellDiagsLegacy", efi.GUID{0x53, 0xa3, 0xed, 0x9e, 0x30, 0x29, 0xcb, 0x46, 0xa0, 0x23, 0x03, 0xe4, 0xe3, 0x58, 0xa9, 0x0c}: "FchPromontoryPlusSmmInit", efi.GUID{0x53, 0xa4, 0x99, 0x27, 0x10, 0xfc, 0x34, 0x43, 0x9e, 0x66, 0xd3, 0xd6, 0xef, 0x09, 0xd0, 0xee}: "AmiTseOemPortingVar5Guid", efi.GUID{0x53, 0xb0, 0xf7, 0xa8, 0xd8, 0xca, 0x8f, 0x43, 0x98, 0xb3, 0x20, 0x0d, 0x46, 0x03, 0xb7, 0x9c}: "OemLanSsid", efi.GUID{0x53, 0xb1, 0x7e, 0x63, 0x4a, 0xdb, 0xf1, 0x42, 0x91, 0x01, 0xaa, 0xa0, 0xfe, 0x3e, 0xe1, 0x56}: "FjVgaSmm", efi.GUID{0x53, 0xb1, 0xd7, 0xb1, 0x8c, 0x11, 0xeb, 0x48, 0x98, 0x2c, 0xb5, 0x5f, 0xce, 0x99, 0xf6, 0xf4}: "GpnvErrorLoggingToken", efi.GUID{0x53, 0xb5, 0x25, 0x88, 0xa6, 0x85, 0x6a, 0x46, 0x98, 0x46, 0x0c, 0xc2, 0x3c, 0x5a, 0xea, 0x42}: "SystemSetupCapsuleUpdateDxe", efi.GUID{0x53, 0xb5, 0x41, 0x6b, 0x49, 0xa6, 0xd4, 0x11, 0xbd, 0x02, 0x00, 0x80, 0xc7, 0x3c, 0x88, 0x81}: "WinNtSerialIoDxe", efi.GUID{0x53, 0xb8, 0xbf, 0x9f, 0x98, 0x70, 0x29, 0x49, 0xb2, 0x62, 0x43, 0x53, 0x7d, 0x88, 0xa4, 0x14}: "SystemErrorCheckPEI", efi.GUID{0x53, 0xc0, 0xe0, 0x5a, 0xb3, 0xc2, 0x7d, 0x4e, 0xad, 0xd9, 0xfd, 0x3c, 0xeb, 0xc6, 0xd3, 0xd9}: "SlotDataUpdateDxeLightningRidgeEXRP", efi.GUID{0x53, 0xc6, 0x11, 0x5d, 0x54, 0x81, 0xc3, 0x4a, 0xa8, 0xc2, 0xfb, 0xa2, 0x89, 0x20, 0xfc, 0x90}: "VariableFlashInfoHob", efi.GUID{0x53, 0xc8, 0x92, 0x63, 0x10, 0xb6, 0x4e, 0x4a, 0x96, 0x44, 0x3d, 0xbf, 0x88, 0xae, 0x11, 0xee}: "NuvotonFwManagementDxe", efi.GUID{0x53, 0xd2, 0x37, 0x9e, 0xf8, 0xab, 0x85, 0x49, 0x8e, 0x23, 0xba, 0xca, 0x10, 0x39, 0x56, 0x13}: "OemSkuTokenSpace", efi.GUID{0x53, 0xd2, 0xd1, 0x1e, 0x2b, 0xe6, 0xc2, 0x47, 0xac, 0xc3, 0x50, 0xb8, 0x59, 0xcb, 0xd5, 0x11}: "Armani_BatteryHealthControlDxe", efi.GUID{0x53, 0xd5, 0xd2, 0x4f, 0xbd, 0xda, 0x17, 0x4c, 0xad, 0xc1, 0x32, 0xc8, 0xf3, 0xed, 0xaa, 0xd9}: "LcdShadowDxe", efi.GUID{0x53, 0xda, 0xe9, 0x0f, 0x3d, 0x04, 0x65, 0x42, 0xa9, 0x4d, 0xfd, 0x77, 0xfe, 0xde, 0x2e, 0xb4}: "TcgPlatformSetupPeiPolicy", efi.GUID{0x53, 0xed, 0xd6, 0xb0, 0x44, 0xb8, 0xf5, 0x43, 0xbd, 0x2f, 0x61, 0x09, 0x52, 0x64, 0xe7, 0x7e}: "PchSmiDispatcher", efi.GUID{0x53, 0xf8, 0x52, 0x76, 0x43, 0x62, 0x58, 0x43, 0x2b, 0xbd, 0x6f, 0x23, 0x5d, 0xca, 0x34, 0xab}: "DellSmmHwAccessInfo", efi.GUID{0x53, 0xff, 0x9a, 0x46, 0x25, 0xe6, 0x60, 0x44, 0x8f, 0x18, 0xaa, 0x22, 0x06, 0xda, 0xe5, 0xbe}: "DellDockSmm", efi.GUID{0x54, 0x01, 0xf9, 0x79, 0xf4, 0x83, 0x8c, 0x47, 0x80, 0xbf, 0x87, 0x8a, 0xc3, 0x2e, 0x0a, 0x2c}: "RTL8111EPV", efi.GUID{0x54, 0x0a, 0xdb, 0x10, 0xf9, 0xf6, 0xa2, 0x4c, 0xa7, 0x5e, 0xf9, 0xaa, 0xca, 0xe7, 0x09, 0x70}: "BiosGuardConfigGuid", efi.GUID{0x54, 0x15, 0x65, 0x57, 0x8f, 0xbe, 0x46, 0x45, 0x80, 0xc6, 0x36, 0x32, 0x3d, 0x52, 0x93, 0x5a}: "AmdPlatformRasRsDxe", efi.GUID{0x54, 0x16, 0xc4, 0xef, 0xad, 0x87, 0x1d, 0x46, 0xa5, 0xf2, 0xd7, 0x9b, 0x0c, 0x01, 0xc3, 0x1a}: "DellWmiBiosAttribSmm", efi.GUID{0x54, 0x22, 0x54, 0xc7, 0xf7, 0xa8, 0xba, 0x40, 0x9b, 0xb9, 0x39, 0x0d, 0x31, 0x97, 0x77, 0x75}: "OCMR_PEI", efi.GUID{0x54, 0x23, 0xce, 0x78, 0xbc, 0xcf, 0x43, 0x46, 0xae, 0xba, 0x07, 0xa2, 0x7f, 0xa8, 0x92, 0xbf}: "WdtPersistentData", efi.GUID{0x54, 0x3f, 0xe2, 0xf2, 0x85, 0x89, 0xdb, 0x11, 0xac, 0x79, 0x00, 0x40, 0xd0, 0x2b, 0x18, 0x35}: "EfiUnixIoProtocol", efi.GUID{0x54, 0x4d, 0x57, 0x7d, 0x64, 0xd3, 0x4a, 0x4d, 0x95, 0xe3, 0x49, 0x45, 0xdb, 0x7a, 0xd3, 0xee}: "ShellInstall1HiiGuid", efi.GUID{0x54, 0x52, 0x4d, 0x33, 0x60, 0x61, 0x4a, 0x4e, 0xa7, 0x8c, 0xe1, 0x5d, 0x3b, 0x3b, 0x33, 0x34}: "MmcHost", efi.GUID{0x54, 0x5d, 0x2c, 0x88, 0xad, 0x1d, 0x4a, 0x4f, 0x83, 0x16, 0x4b, 0xdf, 0x84, 0x1e, 0x09, 0xd0}: "EfiNorthPeakStatusCodeHandlePpi", efi.GUID{0x54, 0x62, 0xd5, 0xbd, 0x90, 0x68, 0x6d, 0x44, 0x91, 0x71, 0x3c, 0x37, 0x0a, 0x58, 0x4b, 0x2c}: "ITEAcPowerLossSmm", efi.GUID{0x54, 0x67, 0x80, 0xda, 0x95, 0xaf, 0x1b, 0x4e, 0xab, 0xc8, 0xfa, 0xb5, 0x69, 0xfc, 0x2b, 0x3f}: "DellErrorHandlerPei", efi.GUID{0x54, 0x6a, 0x01, 0x76, 0x59, 0x99, 0x5d, 0x49, 0xbb, 0x3e, 0xba, 0x35, 0xe2, 0x5a, 0x51, 0xcb}: "SystemSetupMainDxe", efi.GUID{0x54, 0x6a, 0x9e, 0x12, 0x14, 0x23, 0xb9, 0x40, 0x89, 0xea, 0x73, 0x0d, 0x6b, 0x6e, 0x10, 0x02}: "PrmAddrTransDsmConfigDxe", efi.GUID{0x54, 0x6d, 0x70, 0x54, 0x51, 0x22, 0xf6, 0x46, 0x90, 0xa8, 0xaf, 0xf0, 0xd4, 0xcd, 0x1e, 0x7d}: "WifiConnectionManagerDxe", efi.GUID{0x54, 0x74, 0xc5, 0x5e, 0xb9, 0xec, 0xb5, 0x49, 0x98, 0xc2, 0xfb, 0xf2, 0x02, 0x1b, 0xbe, 0x6e}: "OemPSU", efi.GUID{0x54, 0x7c, 0xcc, 0x95, 0x3a, 0xfb, 0xa7, 0x46, 0xbc, 0xb1, 0x3d, 0x68, 0xaa, 0x2b, 0xe5, 0x26}: "GnbDxe", efi.GUID{0x54, 0x7e, 0xc1, 0x88, 0xfe, 0xeb, 0x31, 0x45, 0xa9, 0x92, 0x58, 0x10, 0x29, 0xf5, 0x81, 0x26}: "FspPcdInit", efi.GUID{0x54, 0x93, 0x7f, 0xf2, 0x92, 0xa6, 0x27, 0x4d, 0xbe, 0xb5, 0x24, 0x08, 0xc6, 0xf4, 0x3b, 0x04}: "FjBatteryFuncsDxe", efi.GUID{0x54, 0x99, 0x4e, 0x87, 0xd4, 0x24, 0xe6, 0x43, 0x90, 0xa1, 0xc5, 0x77, 0x53, 0x40, 0xcf, 0x45}: "AmiPlatformInfoHob", efi.GUID{0x54, 0x99, 0x92, 0xba, 0xb0, 0x35, 0xd3, 0x4d, 0x90, 0xcd, 0x96, 0x34, 0xbd, 0x7e, 0x1c, 0xf1}: "ResetDxe", efi.GUID{0x54, 0x9e, 0x83, 0xbd, 0x54, 0xfe, 0x64, 0x4b, 0x9f, 0xa3, 0x0a, 0x80, 0x6b, 0x10, 0x42, 0xbc}: "HddDynamicSwitch", efi.GUID{0x54, 0xa1, 0x21, 0x58, 0x3c, 0x1e, 0xc0, 0x4e, 0x92, 0xc9, 0x2a, 0x66, 0xab, 0x2f, 0xf1, 0x86}: "FjNuvotonNct6796Smm", efi.GUID{0x54, 0xa5, 0x25, 0x03, 0xbe, 0x05, 0x6b, 0x46, 0xbc, 0x8c, 0x70, 0xbe, 0x3c, 0x9d, 0xaf, 0xb1}: "AmiTcg2InfoProtocolGuid", efi.GUID{0x54, 0xa5, 0x46, 0x55, 0x46, 0xc2, 0xd6, 0x46, 0x97, 0xe1, 0x25, 0x06, 0xd2, 0xd8, 0xb6, 0x74}: "AmiUpdateBoardIdHob", efi.GUID{0x54, 0xa6, 0x58, 0xd4, 0x4c, 0xf6, 0xdb, 0x49, 0xb8, 0xd1, 0x38, 0x21, 0x30, 0x6b, 0xf1, 0xf6}: "BaseMemoryLibMmx", efi.GUID{0x54, 0xa7, 0xd8, 0x98, 0x82, 0x84, 0xe2, 0x46, 0x82, 0x8c, 0xbb, 0x63, 0x2f, 0x34, 0xd9, 0xf7}: "DellHotSosDxeDriver", efi.GUID{0x54, 0xb0, 0x7a, 0x90, 0x2b, 0x71, 0xba, 0x41, 0x93, 0x0f, 0x2b, 0xbf, 0xb7, 0xf5, 0x7e, 0xcb}: "DellQuickSetSmm", efi.GUID{0x54, 0xbe, 0x5f, 0xfd, 0x35, 0x8c, 0x45, 0xb3, 0x8a, 0x0f, 0x7a, 0xc8, 0xa5, 0xfd, 0x05, 0x21}: "EmuSnpProtocolGuid", efi.GUID{0x54, 0xc0, 0x9f, 0xd9, 0x38, 0xcc, 0x82, 0x45, 0xb0, 0xa6, 0xf5, 0x33, 0x67, 0x8b, 0xaf, 0xa9}: "DellPeiPchGpioControl", efi.GUID{0x54, 0xc2, 0x20, 0x4f, 0xd0, 0x75, 0x7c, 0x43, 0x93, 0xab, 0xcd, 0x2f, 0x88, 0x79, 0x5e, 0x88}: "FjGabiIntrusionAbstraction", efi.GUID{0x54, 0xc4, 0xbb, 0x7a, 0x37, 0xf7, 0x22, 0x43, 0x93, 0x1c, 0xb1, 0xbb, 0x62, 0xa0, 0x1d, 0x6f}: "BootMonFs", efi.GUID{0x54, 0xc8, 0x2f, 0x68, 0xcb, 0xd0, 0x9f, 0x4c, 0xa8, 0xc4, 0xf4, 0xf9, 0x7a, 0x39, 0xef, 0x3e}: "OemProcMemInitLibPpi", efi.GUID{0x54, 0xcb, 0x06, 0xe7, 0xb8, 0x84, 0xbd, 0x40, 0x83, 0x2f, 0x7f, 0xb2, 0xd5, 0xcb, 0x87, 0xb3}: "FileExplorerLite", efi.GUID{0x54, 0xd4, 0x2a, 0x3d, 0x5a, 0xbd, 0x2f, 0x4f, 0xa6, 0x8e, 0x18, 0x50, 0x00, 0xcd, 0x20, 0x45}: "CmosInterfaceCoreSmm", efi.GUID{0x54, 0xd5, 0x6c, 0x16, 0xae, 0x8a, 0x17, 0x46, 0x8f, 0xdd, 0xa2, 0xe3, 0xa5, 0xaf, 0xd8, 0x9e}: "SystemSetupSecurityDxe", efi.GUID{0x54, 0xe4, 0x04, 0x40, 0xa0, 0x89, 0xe3, 0x11, 0x89, 0xaa, 0x97, 0xef, 0x9d, 0x94, 0x2a, 0xbc}: "ArmVExpressFastBootDxe", efi.GUID{0x54, 0xe9, 0x95, 0xd9, 0xc1, 0xbb, 0x0f, 0x43, 0xad, 0x91, 0xb4, 0x4d, 0xcb, 0x3c, 0x6f, 0x35}: "EfiPcieErrorSectionGuid", efi.GUID{0x54, 0xf0, 0x0c, 0x6f, 0x6a, 0xae, 0x8c, 0x41, 0xa7, 0xce, 0x3c, 0x7a, 0x7c, 0xd7, 0x4e, 0xc0}: "LogoPcx", efi.GUID{0x54, 0xf1, 0x61, 0x9a, 0x83, 0x4a, 0xc5, 0xb8, 0x80, 0xde, 0x23, 0x9b, 0xff, 0x40, 0xd6, 0x6b}: "AmdRasDxe", efi.GUID{0x55, 0x1d, 0xb6, 0xd1, 0xe1, 0x88, 0x14, 0x4c, 0x89, 0x04, 0x9e, 0x7c, 0xea, 0x40, 0xad, 0x6f}: "Cf9Reset", efi.GUID{0x55, 0x26, 0x47, 0x91, 0xe0, 0x50, 0x81, 0x4d, 0x9a, 0xf6, 0x23, 0x9e, 0x6f, 0x43, 0x1b, 0x8c}: "H19StartupMenu", efi.GUID{0x55, 0x2f, 0x30, 0x35, 0xc3, 0x51, 0xde, 0x40, 0xb6, 0x8f, 0x1e, 0xf1, 0x44, 0xcc, 0xf1, 0xe8}: "LegacyUsbDxe", efi.GUID{0x55, 0x32, 0xae, 0x47, 0x69, 0xfa, 0x9f, 0x45, 0xd3, 0x34, 0xd8, 0xa5, 0x7b, 0xf9, 0x52, 0xa4}: "IspI2cMasterDxe", efi.GUID{0x55, 0x38, 0xa5, 0x7d, 0x30, 0xf6, 0x30, 0x4a, 0x9d, 0x85, 0x0e, 0x99, 0xdf, 0xd9, 0x2a, 0x06}: "EfiPlatformTypeLightningRidgeExecB4Protocol", efi.GUID{0x55, 0x3e, 0x96, 0x12, 0x26, 0x58, 0x9e, 0x46, 0xa9, 0x34, 0xa3, 0xcb, 0xb3, 0x07, 0x6e, 0xc5}: "DellSmmSbAcpi", efi.GUID{0x55, 0x40, 0xf0, 0x77, 0x04, 0x3e, 0x21, 0x48, 0xbe, 0xb0, 0xb2, 0xae, 0xe4, 0x98, 0x31, 0x98}: "FchSongshanI3cPei", efi.GUID{0x55, 0x43, 0xeb, 0x37, 0xc5, 0x1f, 0xe6, 0x42, 0x90, 0x39, 0xd5, 0x75, 0xd5, 0x05, 0x1c, 0x2c}: "HpFlashMeDxe", efi.GUID{0x55, 0x44, 0x14, 0xfd, 0x1b, 0x59, 0x1c, 0x4e, 0x80, 0xef, 0x29, 0x5b, 0x78, 0x3f, 0xc8, 0xd4}: "CrashLogSmm", efi.GUID{0x55, 0x45, 0x85, 0x92, 0xe8, 0x35, 0xb2, 0x4a, 0xb0, 0xe2, 0xcf, 0x56, 0xc9, 0xf4, 0xde, 0x18}: "AXUsbUndiDxe", efi.GUID{0x55, 0x48, 0xe4, 0x46, 0x60, 0xbd, 0xb7, 0x4a, 0xab, 0x0d, 0xa6, 0x79, 0xb9, 0x44, 0x7d, 0x77}: "EfiTcp6ProtocolGuid", efi.GUID{0x55, 0x4b, 0x15, 0xa8, 0x21, 0x20, 0x40, 0x4d, 0xae, 0x81, 0x2e, 0x23, 0xa0, 0x2d, 0xcc, 0x46}: "FtdiUsbSerialDxe", efi.GUID{0x55, 0x4e, 0x49, 0x4c, 0x49, 0x58, 0x42, 0x53, 0x45, 0x54, 0x54, 0x45, 0x52, 0x21, 0x21, 0x21}: "SlpSupport", efi.GUID{0x55, 0x57, 0x0d, 0x75, 0xc9, 0xa0, 0xd3, 0x42, 0xa3, 0x26, 0xb5, 0xd4, 0x65, 0x41, 0x35, 0x23}: "AppleSEPDxe", efi.GUID{0x55, 0x63, 0x1a, 0x85, 0x10, 0xce, 0x67, 0x4f, 0x9d, 0x13, 0x91, 0xb3, 0x28, 0x1a, 0x95, 0xd3}: "LenovoSystemOemActivationDxe", efi.GUID{0x55, 0x6c, 0xed, 0x01, 0x2e, 0x0d, 0x59, 0x48, 0xbb, 0x57, 0x30, 0x44, 0x73, 0x7a, 0x36, 0x79}: "PhConSplitterDxe", efi.GUID{0x55, 0x72, 0xc6, 0xa8, 0x29, 0xe0, 0x1a, 0x4b, 0x96, 0x8e, 0xec, 0xa6, 0xe9, 0xc1, 0x1c, 0x73}: "AmtSmbios", efi.GUID{0x55, 0x7e, 0x3b, 0xfd, 0x7b, 0xfa, 0x07, 0x4e, 0xae, 0x1d, 0x20, 0x8b, 0x81, 0xfb, 0x0b, 0xad}: "FvbRuntimeDxe", efi.GUID{0x55, 0x83, 0xf0, 0x1e, 0x36, 0x41, 0x3d, 0x44, 0xbe, 0x11, 0xb4, 0xcb, 0x99, 0x52, 0x4d, 0x80}: "HpWsCommonSmm", efi.GUID{0x55, 0x84, 0x79, 0x2b, 0xa0, 0x13, 0x10, 0x49, 0xb4, 0x9d, 0x2e, 0xb1, 0xfb, 0x5f, 0x77, 0xc8}: "ApobStxKrkDxe", efi.GUID{0x55, 0x85, 0xac, 0xf4, 0x91, 0x3f, 0x68, 0x46, 0xac, 0x20, 0x95, 0x77, 0xe6, 0x90, 0x9d, 0xad}: "DecompressFspsDxe", efi.GUID{0x55, 0x8e, 0xe5, 0x13, 0xe1, 0xe1, 0xa7, 0x4c, 0xbe, 0x88, 0x2d, 0x8f, 0xe7, 0x26, 0x64, 0xdc}: "DashManagementPei", efi.GUID{0x55, 0x90, 0xf2, 0xd4, 0xfb, 0xe1, 0xd4, 0x11, 0xbd, 0x0d, 0x00, 0x80, 0xc7, 0x3c, 0x88, 0x81}: "EfiWinNtCpuSpeed", efi.GUID{0x55, 0x92, 0x69, 0xf5, 0x5a, 0x11, 0x7d, 0x4f, 0xbb, 0x0c, 0x65, 0x8e, 0x9a, 0x1f, 0x42, 0xc6}: "PspfTpmLibNull", efi.GUID{0x55, 0x92, 0xba, 0x92, 0x19, 0x28, 0x79, 0x44, 0x86, 0x7a, 0x1c, 0x58, 0xf0, 0x72, 0xc5, 0xb2}: "TCG_MADriver", efi.GUID{0x55, 0x97, 0x2f, 0x97, 0x3e, 0xd7, 0x62, 0x43, 0xbf, 0x62, 0x2a, 0xa5, 0x6a, 0x8d, 0xa5, 0x11}: "DellCapsuleUpdateWrapper", efi.GUID{0x55, 0x98, 0xb5, 0x45, 0x0c, 0x50, 0x3b, 0x44, 0xb5, 0x04, 0x9a, 0xb4, 0xca, 0x29, 0xbc, 0x68}: "EfiPlatformTypeLightningRidgeEX8S1NProtocol", efi.GUID{0x55, 0x9d, 0xff, 0xdb, 0xb7, 0x89, 0xda, 0x46, 0xbd, 0xdf, 0x67, 0x7d, 0x3d, 0xc0, 0x24, 0x1d}: "EfiAcpiSupportProtocolGuid", efi.GUID{0x55, 0xa3, 0x62, 0x61, 0x41, 0xd6, 0x9f, 0x46, 0x82, 0xe5, 0xcf, 0xff, 0xf2, 0x72, 0x29, 0x73}: "TcrOverMarvellNotify", efi.GUID{0x55, 0xac, 0xb8, 0x9f, 0x66, 0xd2, 0x86, 0x4f, 0xac, 0x43, 0xbf, 0x2b, 0xa7, 0x4f, 0x5a, 0x7a}: "AmdCcxZen5Dxe", efi.GUID{0x55, 0xad, 0xe0, 0xca, 0xb7, 0x47, 0x03, 0x4e, 0xa7, 0x14, 0x95, 0xe1, 0x71, 0x1c, 0xc2, 0x79}: "BcpBootOrder", efi.GUID{0x55, 0xae, 0x0d, 0xa4, 0x33, 0x2f, 0xf5, 0x42, 0xb0, 0x64, 0xc8, 0xd6, 0x2c, 0xcf, 0x3b, 0x87}: "AppleSystemInitialization", efi.GUID{0x55, 0xb4, 0xc6, 0x33, 0xa9, 0x87, 0x8c, 0x4c, 0xa4, 0xf6, 0x6d, 0xb5, 0x08, 0xa6, 0x26, 0x0e}: "SkipScanRemovableDev", efi.GUID{0x55, 0xc1, 0xc4, 0x71, 0x4b, 0xd5, 0x59, 0x4d, 0xa2, 0xc1, 0xf9, 0xa5, 0x72, 0x3c, 0x65, 0xa8}: "EfiIsPlatformSupportWheaProtocolGuid", efi.GUID{0x55, 0xc4, 0x65, 0x68, 0x26, 0x86, 0xd8, 0x40, 0x90, 0xf4, 0xa6, 0x94, 0x60, 0xa4, 0xab, 0x5a}: "DcaHob", efi.GUID{0x55, 0xc5, 0xe4, 0xd8, 0xb6, 0x0b, 0x6d, 0x4c, 0x94, 0xcd, 0x36, 0x07, 0x2d, 0x59, 0xdc, 0xd2}: "PrmConfigDxe", efi.GUID{0x55, 0xca, 0xff, 0x78, 0x69, 0x48, 0x93, 0x43, 0xbe, 0xe9, 0x72, 0xe5, 0x8b, 0xd3, 0xbe, 0x38}: "SystemFixedBusNumbersDxe", efi.GUID{0x55, 0xcb, 0xb0, 0x21, 0x30, 0x43, 0x43, 0x43, 0xaf, 0xf8, 0xa6, 0x80, 0x89, 0x12, 0x41, 0x18}: "DellServiceMenuConfig", efi.GUID{0x55, 0xcf, 0xaf, 0x37, 0x8c, 0x2e, 0x22, 0x47, 0xb9, 0x50, 0xb4, 0x8b, 0x91, 0x65, 0xc5, 0x6b}: "LenovoSetupMainDxe", efi.GUID{0x55, 0xd8, 0x23, 0x34, 0x19, 0x34, 0x5d, 0x4d, 0xb9, 0xea, 0x6c, 0x33, 0x9f, 0xac, 0xbb, 0xe6}: "HPWMI", efi.GUID{0x55, 0xda, 0xfa, 0xa5, 0xaf, 0x1c, 0x86, 0x44, 0x9c, 0xdb, 0x24, 0x01, 0x8e, 0x71, 0xe9, 0x52}: "PxeDriverDl", efi.GUID{0x55, 0xe1, 0xbd, 0x07, 0x6c, 0x61, 0x91, 0x42, 0xbd, 0x0b, 0x24, 0x41, 0x1f, 0x3b, 0xb9, 0x08}: "AmdRAIDCoreDxe", efi.GUID{0x55, 0xe7, 0x0b, 0x33, 0xed, 0xfb, 0x18, 0x4f, 0xb9, 0xa8, 0x49, 0x58, 0x56, 0xd3, 0xd7, 0xa1}: "EfiCpuHotAddDataProtocol", efi.GUID{0x55, 0xe9, 0x11, 0x4e, 0xca, 0xcc, 0xd4, 0x11, 0xbd, 0x0d, 0x00, 0x80, 0xc7, 0x3c, 0x88, 0x81}: "EfiWinNtGopGuid", efi.GUID{0x55, 0xef, 0xed, 0x07, 0xec, 0x24, 0xf3, 0x43, 0x8e, 0x3e, 0x8c, 0x08, 0x31, 0xe2, 0x1e, 0x68}: "EzTpmUpdStTpmFwUpdDrv", efi.GUID{0x55, 0xf0, 0x90, 0xd8, 0x3a, 0x87, 0x6e, 0x4e, 0xa7, 0x9f, 0x1b, 0x8d, 0xd2, 0x42, 0x7f, 0xe4}: "AmdNbioBaseRnDxe", efi.GUID{0x55, 0xf0, 0xab, 0x27, 0xb8, 0xb1, 0x26, 0x4c, 0x80, 0x48, 0x74, 0x8f, 0x37, 0xba, 0xa2, 0xdf}: "EfiEventExitBootServicesGuid", efi.GUID{0x55, 0xf5, 0x87, 0x03, 0xa8, 0x20, 0xc2, 0x4f, 0xbb, 0x94, 0xcd, 0x30, 0xda, 0x1b, 0x40, 0x08}: "EfiWindowsInt10Workaround", efi.GUID{0x56, 0x00, 0x9a, 0xa5, 0x41, 0x33, 0xb5, 0x44, 0x9c, 0x9c, 0x6d, 0x76, 0xf7, 0x67, 0x38, 0x17}: "SignOn", efi.GUID{0x56, 0x00, 0xaf, 0xda, 0xb5, 0x87, 0x84, 0x45, 0x85, 0x4c, 0xcf, 0x20, 0x7b, 0x36, 0x4c, 0xea}: "SwSmi534D0840", efi.GUID{0x56, 0x0a, 0xef, 0x78, 0xf0, 0x1c, 0x35, 0x45, 0xb5, 0xda, 0xf6, 0xfd, 0x2f, 0x40, 0x5a, 0x11}: "FmpDxe", efi.GUID{0x56, 0x10, 0x8c, 0xbd, 0x36, 0x9f, 0xec, 0x44, 0x92, 0xa8, 0xa6, 0x33, 0x7f, 0x81, 0x79, 0x86}: "EfiEdidActiveProtocolGuid", efi.GUID{0x56, 0x13, 0xb5, 0xd6, 0x90, 0x0c, 0xe6, 0x4e, 0xb3, 0xa7, 0x48, 0xaa, 0x74, 0xd4, 0xa7, 0x7a}: "SkipRegionAccessDxe", efi.GUID{0x56, 0x15, 0x89, 0xe6, 0x8f, 0x79, 0xc9, 0x4e, 0x9e, 0x48, 0xe1, 0x90, 0xb9, 0x01, 0x36, 0x4c}: "OemCheckErrors", efi.GUID{0x56, 0x18, 0xd9, 0x85, 0xa3, 0x70, 0x1d, 0x41, 0x96, 0x12, 0x45, 0x31, 0xc0, 0x60, 0xd8, 0x67}: "ITE8225DxeInit", efi.GUID{0x56, 0x20, 0xcd, 0xcc, 0x01, 0xd4, 0xef, 0x4d, 0x85, 0xb0, 0x1f, 0xa1, 0x1f, 0xf3, 0xb5, 0xe3}: "IioVvar", efi.GUID{0x56, 0x27, 0xf8, 0xae, 0xf2, 0x87, 0xf6, 0x4c, 0xbe, 0x80, 0xe5, 0x90, 0x55, 0x29, 0x5a, 0xa1}: "PEbiosinterface", efi.GUID{0x56, 0x2b, 0x7d, 0x3e, 0x47, 0x3f, 0xaa, 0x42, 0x8f, 0x6b, 0x22, 0xf5, 0x19, 0x81, 0x8d, 0xab}: "ScPcieSmiDispatchProtocolGuid", efi.GUID{0x56, 0x2c, 0xb2, 0x7a, 0x10, 0x25, 0xd2, 0x4f, 0xac, 0x18, 0x57, 0x39, 0x44, 0x19, 0xfb, 0xab}: "UsbOcUpdateDxeNeonCityFPGA", efi.GUID{0x56, 0x2c, 0xc0, 0xa5, 0xa7, 0x19, 0xb5, 0x43, 0xa0, 0xd0, 0x04, 0x51, 0x8a, 0x1c, 0xa6, 0x9e}: "AmdErrorPei", efi.GUID{0x56, 0x3a, 0xd9, 0x10, 0x64, 0x2d, 0xd3, 0x47, 0x82, 0x8d, 0x7a, 0x50, 0x66, 0x91, 0x52, 0x92}: "AmdRasBrApeiDxe", efi.GUID{0x56, 0x3c, 0x5b, 0xaf, 0xe6, 0x95, 0x34, 0x44, 0x93, 0x73, 0x39, 0xbb, 0x71, 0x8a, 0xcd, 0x00}: "DellFmpInterface", efi.GUID{0x56, 0x3e, 0x54, 0xb7, 0xd7, 0x08, 0x4f, 0x4c, 0xb5, 0xd6, 0x7e, 0x3a, 0xdf, 0xcb, 0x82, 0xc4}: "FjOemActivationSmm", efi.GUID{0x56, 0x3f, 0x84, 0x86, 0x5d, 0x67, 0xa5, 0x40, 0x95, 0x30, 0xbc, 0x85, 0x83, 0x72, 0xf1, 0x03}: "OsSelectionVariableGuid", efi.GUID{0x56, 0x40, 0xa7, 0xc1, 0x0e, 0x26, 0x71, 0x48, 0xa0, 0x31, 0xe6, 0x45, 0xa6, 0x5b, 0x6e, 0x11}: "EfiExtendedSalVirtualServicesProtocol", efi.GUID{0x56, 0x45, 0x67, 0x85, 0xb3, 0x04, 0x51, 0x41, 0x86, 0x12, 0x53, 0xc6, 0x28, 0x83, 0x5f, 0x34}: "H19DxeInstallHook", efi.GUID{0x56, 0x4f, 0xff, 0x73, 0x8e, 0xaa, 0x51, 0x44, 0xb3, 0x16, 0x36, 0x35, 0x36, 0x67, 0xad, 0x44}: "FspBootLoaderTolumHobGuid", efi.GUID{0x56, 0x53, 0xf7, 0x5f, 0xbd, 0x3e, 0x89, 0x45, 0xb8, 0xbb, 0xfe, 0xe7, 0xa3, 0x72, 0xe3, 0xf3}: "XnoteBatteryStatusDisplay", efi.GUID{0x56, 0x57, 0x04, 0x39, 0xa3, 0xfc, 0xbd, 0x49, 0x8d, 0xae, 0xc7, 0xba, 0xe8, 0x38, 0x9a, 0xff}: "Tcg2Dxe", efi.GUID{0x56, 0x67, 0x67, 0xbb, 0xa8, 0x99, 0xe0, 0x44, 0x81, 0x28, 0xae, 0x2b, 0xab, 0xad, 0x4c, 0x69}: "EcAuditLogDxe", efi.GUID{0x56, 0x6a, 0xda, 0x62, 0xfb, 0x13, 0x5a, 0x48, 0xa8, 0xda, 0xa3, 0xdd, 0x79, 0x12, 0xcb, 0x6b}: "AmiResetSystemEventGuid", efi.GUID{0x56, 0x74, 0x66, 0xd3, 0xa0, 0x63, 0x13, 0x47, 0xb7, 0xdb, 0x41, 0x62, 0xc1, 0x96, 0xa3, 0x7e}: "DxePostEnd", efi.GUID{0x56, 0x7b, 0x25, 0x14, 0xa2, 0xbd, 0xaf, 0x4f, 0x8e, 0x4f, 0xc8, 0x85, 0xdf, 0x75, 0x58, 0x3c}: "IccPlatformDxe", efi.GUID{0x56, 0x7c, 0x70, 0x60, 0x72, 0x8b, 0x5b, 0x43, 0xab, 0x8f, 0x25, 0x1c, 0x9c, 0x0d, 0x2a, 0x34}: "BiosAuditLogSetupDxe", efi.GUID{0x56, 0x86, 0x90, 0x6a, 0xa0, 0x35, 0x40, 0x47, 0xbe, 0x0f, 0x4b, 0x36, 0x4f, 0xb7, 0x94, 0x5b}: "FchI3cConsumerSPD5Pei", efi.GUID{0x56, 0x88, 0x38, 0xa9, 0x74, 0xf6, 0x2b, 0x4b, 0x98, 0xb8, 0x6f, 0x46, 0x30, 0x29, 0x71, 0x1c}: "SbSocRsDxe", efi.GUID{0x56, 0x89, 0x45, 0xf2, 0x49, 0x74, 0x32, 0x46, 0xa8, 0x75, 0x8f, 0x41, 0x8b, 0x74, 0xc9, 0x37}: "CF9IoTrap", efi.GUID{0x56, 0x8c, 0xc3, 0x0f, 0x0a, 0x50, 0x54, 0x46, 0x89, 0xa7, 0xf4, 0x3c, 0x1a, 0x38, 0x43, 0xf5}: "AmiPlatformInfoFfsFile", efi.GUID{0x56, 0x99, 0x30, 0x6b, 0x17, 0x66, 0x2b, 0x47, 0xbb, 0xc7, 0x2a, 0x09, 0xe5, 0x5e, 0x3e, 0x52}: "ProgressBarFullLeftEndcap", efi.GUID{0x56, 0x9a, 0xe2, 0xfd, 0x97, 0xc1, 0xe1, 0x4a, 0xbb, 0x98, 0x79, 0x2b, 0x2f, 0x09, 0x72, 0x5d}: "FspVariablePcd", efi.GUID{0x56, 0x9c, 0xeb, 0x62, 0x9c, 0xa7, 0x23, 0x44, 0xa7, 0xf0, 0x89, 0x1a, 0x34, 0x52, 0x08, 0xcd}: "IioDmiInitPeim", efi.GUID{0x56, 0xa0, 0x00, 0xe0, 0x65, 0x8e, 0x30, 0x47, 0xa6, 0xba, 0x6e, 0xd0, 0x8b, 0x8d, 0x28, 0x9c}: "FjSystemResetPei", efi.GUID{0x56, 0xa9, 0x59, 0xe1, 0x99, 0x32, 0xe9, 0x4e, 0x91, 0x76, 0x65, 0x18, 0x1a, 0x4e, 0x5e, 0x9f}: "AmiIdeBusInitProtocolGuid", efi.GUID{0x56, 0xac, 0xc1, 0x47, 0xda, 0x67, 0xb0, 0x4b, 0xbd, 0xfd, 0xc4, 0xdb, 0x6c, 0xb9, 0xee, 0xab}: "ConsoleBootMsgDxe", efi.GUID{0x56, 0xaf, 0x4a, 0x75, 0x9b, 0x09, 0x0d, 0x44, 0x8d, 0xcd, 0x62, 0x6f, 0x4e, 0x2c, 0x52, 0xf4}: "RsaIScsiSupport", efi.GUID{0x56, 0xb0, 0x10, 0x77, 0x4a, 0x17, 0x44, 0x44, 0x96, 0xc2, 0xf1, 0xaf, 0x72, 0x9a, 0xdc, 0x25}: "NCT5525DDxeSerialType", efi.GUID{0x56, 0xb3, 0xcf, 0xe2, 0xa9, 0x39, 0x7b, 0x49, 0xb6, 0xb1, 0x95, 0xb9, 0xd2, 0xeb, 0x28, 0x17}: "DellSlpConfig", efi.GUID{0x56, 0xb5, 0x06, 0x43, 0x3d, 0x2a, 0x5c, 0x45, 0xa5, 0xea, 0x16, 0xed, 0x45, 0x0b, 0xd5, 0x53}: "FjSystemResetPeiBin", efi.GUID{0x56, 0xb5, 0x82, 0x1e, 0xb6, 0x4e, 0x9f, 0x47, 0x95, 0x5a, 0x78, 0xa5, 0xfe, 0x0c, 0x0c, 0xb2}: "BroadcomWirelessDxe", efi.GUID{0x56, 0xb6, 0xa0, 0xad, 0x68, 0xad, 0x81, 0x42, 0x81, 0x3e, 0x5a, 0xda, 0x5a, 0x65, 0x58, 0x3f}: "EcRotClearVariable", efi.GUID{0x56, 0xbb, 0xae, 0x36, 0x8b, 0x1f, 0xc1, 0x4b, 0x8e, 0xfe, 0x40, 0x85, 0xa5, 0xd4, 0xc4, 0x0a}: "DellLegUsbMemSmm", efi.GUID{0x56, 0xc2, 0x80, 0x0c, 0x28, 0x34, 0x1c, 0x4d, 0xbb, 0xeb, 0x79, 0xfc, 0xc8, 0x12, 0xaf, 0xf6}: "RestorePasswordSMI", efi.GUID{0x56, 0xcf, 0x6b, 0x82, 0xc4, 0xba, 0xf4, 0x43, 0x8e, 0xa1, 0x8c, 0xdf, 0x0a, 0x12, 0x1a, 0xbd}: "LenovoTranslateService", efi.GUID{0x56, 0xd6, 0x96, 0x7c, 0x21, 0x6b, 0xa7, 0x45, 0x84, 0xd8, 0x50, 0x68, 0xee, 0xe1, 0xd4, 0x15}: "MAPS_SmartFanDxe", efi.GUID{0x56, 0xf8, 0x1a, 0xb5, 0x96, 0x71, 0x3c, 0x43, 0x88, 0x5e, 0xc7, 0xde, 0xc8, 0x38, 0x42, 0x66}: "Manufacture", efi.GUID{0x57, 0x06, 0xa2, 0x44, 0xb8, 0x10, 0x49, 0x40, 0xa1, 0x48, 0xac, 0xd8, 0x81, 0x2a, 0xf2, 0x57}: "Tcg2Smm", efi.GUID{0x57, 0x06, 0xad, 0x53, 0x74, 0x8a, 0x58, 0x43, 0x9f, 0x32, 0x04, 0xab, 0x4b, 0x5a, 0x0b, 0x92}: "SecureFlashEspFlagSmm", efi.GUID{0x57, 0x0b, 0xf8, 0x5f, 0x8f, 0x7f, 0xac, 0x48, 0xa1, 0xdd, 0x20, 0x74, 0x14, 0xf5, 0x03, 0xdb}: "WakeOnLanPei", efi.GUID{0x57, 0x0e, 0x40, 0x73, 0x67, 0xa4, 0xab, 0x45, 0x9f, 0x8c, 0xd2, 0x51, 0x9f, 0x76, 0xab, 0xa4}: "DeviceFwServiceDxe", efi.GUID{0x57, 0x0f, 0xe4, 0x5b, 0x68, 0xfa, 0x10, 0x46, 0xbb, 0xbf, 0xe9, 0xc5, 0xfc, 0xda, 0xd3, 0x65}: "GetPcdInfoProtocolGuid", efi.GUID{0x57, 0x14, 0xa0, 0xfe, 0x81, 0xe3, 0x35, 0x41, 0x94, 0x75, 0xc6, 0xaf, 0xd0, 0x07, 0x6c, 0x61}: "CryptoDxe", efi.GUID{0x57, 0x19, 0x36, 0xcd, 0xbe, 0xaf, 0x5e, 0x42, 0xa3, 0x58, 0x5f, 0x58, 0x89, 0xcf, 0xfe, 0x7b}: "EfiHiiOldProtocol", efi.GUID{0x57, 0x19, 0xce, 0x8d, 0x74, 0xd7, 0xda, 0x4f, 0xb9, 0x0f, 0x0b, 0x23, 0x1c, 0xb2, 0xe0, 0xcc}: "DellSmmServices", efi.GUID{0x57, 0x2f, 0xb5, 0xf1, 0xa6, 0x16, 0x22, 0x49, 0xb8, 0x1d, 0x65, 0x83, 0x84, 0x58, 0xfa, 0xb4}: "OemMfgPorting", efi.GUID{0x57, 0x33, 0xeb, 0x4b, 0x46, 0xf1, 0x10, 0x4e, 0x9f, 0x60, 0xe4, 0x79, 0x79, 0x06, 0xaf, 0xda}: "PostMessageConfigUtilDxe", efi.GUID{0x57, 0x3d, 0xd9, 0x18, 0x00, 0x0b, 0x13, 0x42, 0xb0, 0xa2, 0xa2, 0xff, 0x5e, 0xc2, 0x14, 0xe4}: "PrmConfigDxe", efi.GUID{0x57, 0x4c, 0xfd, 0xdc, 0xfd, 0xaa, 0x92, 0x4d, 0xb5, 0x70, 0x04, 0xb1, 0x21, 0x2e, 0xd1, 0x5e}: "AmdCpmOemInitDxe", efi.GUID{0x57, 0x55, 0xfb, 0xdd, 0x2e, 0x3e, 0x69, 0x45, 0xb4, 0x59, 0xbe, 0xff, 0xe1, 0x89, 0xb8, 0xb0}: "AmiSmbiosFlashDataProtocolGuid", efi.GUID{0x57, 0x63, 0x7c, 0x0b, 0xf5, 0xa4, 0xb9, 0x48, 0xaa, 0x30, 0x0c, 0xe7, 0xf9, 0xe6, 0x6a, 0x72}: "RestoreVariablesSmi", efi.GUID{0x57, 0x68, 0xa1, 0x4c, 0xc5, 0xa0, 0x46, 0x4e, 0xbe, 0x0f, 0x98, 0xa4, 0xbb, 0x31, 0x4e, 0x5d}: "MemTest", efi.GUID{0x57, 0x68, 0xc2, 0xb4, 0xe5, 0x8f, 0xbe, 0x42, 0x96, 0x8b, 0x39, 0xf4, 0x5e, 0x92, 0x1d, 0x45}: "AppleDxePState", efi.GUID{0x57, 0x6b, 0x28, 0x88, 0x8e, 0x47, 0xbe, 0xec, 0x64, 0x07, 0xd8, 0xba, 0x02, 0xe7, 0x87, 0x3c}: "UsbPortConfigPortingDxe", efi.GUID{0x57, 0x70, 0xac, 0xf5, 0x50, 0x56, 0x6e, 0x46, 0xb6, 0x92, 0x76, 0xa4, 0x72, 0x23, 0xef, 0xb0}: "AcpiSmmPlatform", efi.GUID{0x57, 0x72, 0xcf, 0x80, 0xab, 0x87, 0xf9, 0x47, 0xa3, 0xfe, 0xd5, 0x0b, 0x76, 0xd8, 0x95, 0x41}: "PcdDxe", efi.GUID{0x57, 0x74, 0x07, 0x66, 0x51, 0x4e, 0xb6, 0x4b, 0x88, 0x9b, 0x1e, 0x8e, 0x19, 0x39, 0xa2, 0x14}: "SmmWakeOnLan", efi.GUID{0x57, 0x7c, 0x24, 0x78, 0xdb, 0x63, 0x08, 0x47, 0x99, 0xc2, 0xa8, 0xb4, 0xa9, 0xa6, 0x1f, 0x6b}: "EfiMtftp4ProtocolGuid", efi.GUID{0x57, 0x7f, 0xab, 0x48, 0x34, 0xdc, 0x6c, 0x4f, 0xa7, 0xd3, 0xb0, 0xb5, 0xb0, 0xa7, 0x43, 0x14}: "EfiIa32X64ErrorTypeMsCheckGuid", efi.GUID{0x57, 0x8f, 0x2e, 0xdd, 0x3f, 0x89, 0x35, 0x43, 0x8d, 0xea, 0x4b, 0x5c, 0x34, 0x3a, 0xe3, 0x98}: "FjDeviceInfoIntelLan", efi.GUID{0x57, 0x9a, 0xa2, 0x80, 0x37, 0xbf, 0x03, 0x44, 0xb7, 0xb0, 0xd6, 0x54, 0xe8, 0x4f, 0x8a, 0x6d}: "PchInitDxeEhl", efi.GUID{0x57, 0xa8, 0xe4, 0xe1, 0x70, 0xc9, 0x75, 0x40, 0xa4, 0xda, 0xe9, 0xc4, 0x1b, 0x69, 0xad, 0xfc}: "AmiTextOutProtocolGuid", efi.GUID{0x57, 0xab, 0xa8, 0x85, 0x44, 0x06, 0x10, 0x41, 0x85, 0x0f, 0x98, 0x13, 0x22, 0x04, 0x70, 0x70}: "EdkiiSmmLegacyBootProtocolGuid", efi.GUID{0x57, 0xaf, 0xec, 0x06, 0x95, 0x1a, 0xdd, 0x44, 0xae, 0x09, 0xab, 0x9b, 0x9b, 0xd6, 0x81, 0xe9}: "MpmAsfDxe", efi.GUID{0x57, 0xb3, 0x13, 0xbc, 0x0f, 0x3c, 0xc6, 0x40, 0x85, 0xa8, 0xd1, 0x8d, 0x26, 0x98, 0x98, 0xc1}: "OSDSMIfunctionDxe", efi.GUID{0x57, 0xb3, 0xf1, 0x07, 0x70, 0x42, 0x22, 0x41, 0xa3, 0x2a, 0x7e, 0xab, 0x3c, 0x01, 0x3b, 0xac}: "DfciManager", efi.GUID{0x57, 0xb6, 0xa7, 0x23, 0x7f, 0x07, 0xbc, 0x4a, 0xab, 0x7e, 0xb7, 0x0d, 0x8a, 0x38, 0x9d, 0xbe}: "DellVariableProtocol", efi.GUID{0x57, 0xb9, 0x97, 0x74, 0xc3, 0x20, 0x47, 0x4e, 0xa2, 0xc0, 0x59, 0x49, 0x66, 0xfd, 0x28, 0xfd}: "UefiDriverPolicyDXE", efi.GUID{0x57, 0xc1, 0xaa, 0x45, 0xb6, 0x93, 0xd6, 0x46, 0xaa, 0x9e, 0x4c, 0xf6, 0xc3, 0x29, 0x16, 0xa4}: "CRBSmm", efi.GUID{0x57, 0xc1, 0xc1, 0x0e, 0x5e, 0xdd, 0x6b, 0x42, 0x87, 0x64, 0x68, 0xc1, 0xda, 0x08, 0x8c, 0x49}: "OSDSMIFunctionPei", efi.GUID{0x57, 0xc2, 0x93, 0xf1, 0xb5, 0x3c, 0x90, 0x4d, 0xa6, 0x94, 0x2e, 0x37, 0x10, 0x82, 0xe1, 0x16}: "UpdateSerial_NUM", efi.GUID{0x57, 0xc3, 0x70, 0xa7, 0x93, 0xb6, 0x6d, 0x4e, 0xa6, 0xcf, 0xd2, 0x1c, 0x72, 0x8e, 0x55, 0x0b}: "EdkiiFormBrowserEx2ProtocolGuid", efi.GUID{0x57, 0xc4, 0x08, 0xae, 0x87, 0x57, 0x58, 0x46, 0x92, 0xc1, 0x91, 0x77, 0x41, 0x7f, 0xc0, 0xf8}: "OemPeiSetCstateSupport", efi.GUID{0x57, 0xc9, 0xaf, 0x6f, 0xe9, 0x08, 0x52, 0x42, 0x9c, 0x7f, 0xe8, 0x10, 0x85, 0x76, 0xaa, 0x11}: "SmartCoverSmm", efi.GUID{0x57, 0xd1, 0xf0, 0xb0, 0x8f, 0xad, 0xef, 0x45, 0xbf, 0xd6, 0xf5, 0x25, 0xaa, 0xbc, 0x30, 0x92}: "GabiSettingItemDefaultRestoreSmm", efi.GUID{0x57, 0xd2, 0x3a, 0x4f, 0xf5, 0x79, 0xd1, 0x43, 0x88, 0x70, 0x9d, 0x39, 0x80, 0x80, 0xd9, 0x08}: "IioInit", efi.GUID{0x57, 0xd2, 0xff, 0x7a, 0xd0, 0x51, 0x9a, 0x43, 0xa8, 0x9a, 0x85, 0xa3, 0x41, 0x93, 0x08, 0xe4}: "DellJSONParserDriver", efi.GUID{0x57, 0xe5, 0x4c, 0xac, 0xcd, 0xf5, 0x9e, 0x43, 0x96, 0x3c, 0x40, 0xf0, 0x96, 0x83, 0xda, 0xc5}: "AppleKeyMapAggregator", efi.GUID{0x57, 0xed, 0x1b, 0xf0, 0xbc, 0x04, 0x3f, 0x4f, 0x96, 0x60, 0xd6, 0xf2, 0xea, 0x22, 0x82, 0x59}: "EfiLegacySpiFlashProtocolGuid", efi.GUID{0x57, 0xef, 0x42, 0x3b, 0xd3, 0x16, 0xcb, 0x44, 0x86, 0x32, 0x9f, 0xdb, 0x06, 0xb4, 0x14, 0x51}: "MemoryInit", efi.GUID{0x57, 0xf2, 0x35, 0xde, 0xbf, 0x36, 0x71, 0x4f, 0x82, 0x70, 0x51, 0xcf, 0x53, 0x78, 0xb8, 0x6c}: "GraphicsConfiguration", efi.GUID{0x58, 0x06, 0xdc, 0x24, 0xcd, 0xf2, 0x34, 0x40, 0xb5, 0x0d, 0x26, 0x34, 0x64, 0x0c, 0x35, 0xba}: "AsusHardwareSignature", efi.GUID{0x58, 0x0d, 0x74, 0xfc, 0xba, 0x59, 0x9b, 0x42, 0x99, 0xef, 0x62, 0x70, 0x51, 0x73, 0x7b, 0x76}: "ImageDecoder", efi.GUID{0x58, 0x0d, 0x74, 0xfc, 0xba, 0x59, 0x9b, 0x42, 0x99, 0xef, 0x62, 0x70, 0x51, 0x73, 0x7b, 0x78}: "AsusImageDecoder", efi.GUID{0x58, 0x0d, 0xdb, 0xe9, 0x8d, 0xd4, 0xf6, 0x47, 0x9c, 0x6e, 0x6f, 0x40, 0xe8, 0x6c, 0x7b, 0x41}: "PeiTpmInitializedPpiGuid", efi.GUID{0x58, 0x14, 0x32, 0x1e, 0xf2, 0x2c, 0xfd, 0x4a, 0x81, 0x02, 0xc8, 0x64, 0x23, 0xec, 0xd1, 0x8d}: "FjMiniCardModePei", efi.GUID{0x58, 0x15, 0x34, 0x99, 0xa1, 0x39, 0xb9, 0x42, 0xa1, 0xb2, 0x1c, 0xa4, 0xf1, 0x72, 0x0f, 0x8e}: "AmiCommunicationPei", efi.GUID{0x58, 0x19, 0x4a, 0xb9, 0xf4, 0x05, 0xf5, 0xe7, 0x40, 0x53, 0x28, 0x6f, 0x96, 0xad, 0xb3, 0xed}: "TrackPointAWS", efi.GUID{0x58, 0x1b, 0x7a, 0x44, 0x3e, 0x8f, 0x58, 0x46, 0xab, 0xaa, 0x9e, 0x7b, 0x22, 0x80, 0xb9, 0x0a}: "NvramSmm", efi.GUID{0x58, 0x1c, 0xe8, 0x06, 0xd7, 0x4a, 0xbc, 0x44, 0x83, 0x90, 0xf1, 0x02, 0x65, 0xf7, 0x24, 0x80}: "PcdPpiGuid", efi.GUID{0x58, 0x29, 0x4e, 0x95, 0xb2, 0xeb, 0x87, 0x46, 0xb9, 0x8f, 0x84, 0x4d, 0xf4, 0xfa, 0xc6, 0x3a}: "CompalSsidSvidDxeProgram", efi.GUID{0x58, 0x2a, 0x7f, 0x29, 0x5c, 0x1d, 0x50, 0x4f, 0xb4, 0x9b, 0xe0, 0xe2, 0x3f, 0xc8, 0x97, 0x3b}: "DellPlatformELabelsDxe", efi.GUID{0x58, 0x2f, 0xab, 0x94, 0x38, 0x14, 0xf1, 0x4e, 0x91, 0x52, 0x18, 0x94, 0x1a, 0x3a, 0x0e, 0x68}: "EfiSecurity2ArchProtocolGuid", efi.GUID{0x58, 0x31, 0xe8, 0xc4, 0x62, 0xde, 0x33, 0x4a, 0xa3, 0x81, 0x75, 0xa4, 0xc0, 0xee, 0xd5, 0x68}: "PhysicalPresence", efi.GUID{0x58, 0x38, 0x2c, 0xf5, 0xf8, 0x5e, 0x41, 0x4d, 0x83, 0x4e, 0xc3, 0x9e, 0xef, 0x8a, 0x45, 0xa3}: "EfiSerialGpioProtocol", efi.GUID{0x58, 0x46, 0x93, 0xcb, 0xa4, 0xad, 0xe5, 0x40, 0x98, 0xce, 0x9b, 0x47, 0x6f, 0xa1, 0x08, 0xb4}: "DellPcdUpdateDxe", efi.GUID{0x58, 0x4b, 0x1a, 0x89, 0x0a, 0x44, 0x92, 0x47, 0xbe, 0xc5, 0x17, 0x3e, 0x2e, 0x3e, 0x67, 0x97}: "PostMessageDxe", efi.GUID{0x58, 0x4f, 0x35, 0x57, 0x10, 0xc3, 0x84, 0x48, 0xab, 0x1c, 0xd7, 0x70, 0x51, 0x0b, 0xa7, 0xd6}: "FanTuningPei", efi.GUID{0x58, 0x5c, 0x0e, 0x6f, 0xc2, 0xe5, 0xa9, 0x42, 0x92, 0x5c, 0xa0, 0xcf, 0x93, 0xa8, 0x62, 0x91}: "NvmeShutdownNotificationSmm", efi.GUID{0x58, 0x65, 0x66, 0x3a, 0xe3, 0x43, 0x25, 0x4d, 0x91, 0x69, 0xdb, 0x81, 0xf5, 0xdb, 0x42, 0xe1}: "PKeyFileX509Guid", efi.GUID{0x58, 0x66, 0x80, 0x30, 0x9c, 0x1e, 0x13, 0x4a, 0x97, 0x1e, 0x70, 0x7a, 0x69, 0xe9, 0x58, 0xc8}: "Int15MicrocodeSmm", efi.GUID{0x58, 0x69, 0xb3, 0xc8, 0xa7, 0x00, 0x78, 0x46, 0x83, 0xef, 0xe5, 0x52, 0x5a, 0x8c, 0xe4, 0xa4}: "OemFixedBootOrderIpmi", efi.GUID{0x58, 0x70, 0x69, 0xe3, 0x3e, 0xb7, 0x1a, 0x42, 0xbe, 0x3d, 0xc0, 0x80, 0x08, 0xd8, 0xa0, 0x05}: "SmbiosDataUpdateDxeArcherCityModular", efi.GUID{0x58, 0x74, 0xdc, 0xd2, 0xc1, 0xe6, 0x8e, 0x4c, 0xa3, 0x2b, 0x54, 0x52, 0x69, 0xdc, 0x63, 0x61}: "OemPeiSetAcLossAuto", efi.GUID{0x58, 0x89, 0x83, 0x53, 0xa0, 0x1c, 0x49, 0x46, 0xb9, 0x3c, 0x33, 0xf5, 0x1e, 0xe0, 0x85, 0xa7}: "EcRotSupportShowInSetup", efi.GUID{0x58, 0x8d, 0x39, 0xef, 0xfd, 0x9d, 0x03, 0x41, 0xbf, 0x94, 0x78, 0xc6, 0xf4, 0xfe, 0x71, 0x2f}: "EfiPeiResetPpiGuid", efi.GUID{0x58, 0x99, 0xd1, 0x7b, 0x71, 0xcf, 0xdd, 0x48, 0x95, 0x3c, 0x64, 0x05, 0x05, 0xc5, 0x2d, 0x4a}: "DellMultiFuncDevDxe", efi.GUID{0x58, 0x99, 0xd4, 0x4f, 0x9d, 0xf2, 0x19, 0x40, 0x80, 0xf6, 0x07, 0x00, 0x69, 0x9d, 0x95, 0x40}: "OemWwanSmm", efi.GUID{0x58, 0x9c, 0x0f, 0x52, 0x9d, 0x9f, 0xc6, 0x48, 0xa0, 0xa0, 0xd9, 0xfe, 0x6d, 0x8f, 0xde, 0x77}: "LenovoTdtAm", efi.GUID{0x58, 0xa2, 0x45, 0xbd, 0xbd, 0xc7, 0xf0, 0x4b, 0xb2, 0x54, 0xd0, 0xd4, 0x5e, 0x02, 0xf8, 0x77}: "DellCmosManagerDxeSrc", efi.GUID{0x58, 0xa2, 0xb0, 0x05, 0x8a, 0x30, 0x5e, 0x44, 0xb6, 0x69, 0xa8, 0x54, 0x54, 0x9d, 0x22, 0x5c}: "SmmCpuProtocol", efi.GUID{0x58, 0xad, 0xdc, 0xbf, 0x30, 0x36, 0x00, 0x43, 0xa2, 0xc6, 0x0d, 0xb4, 0x6c, 0xec, 0xa4, 0x82}: "OemGlobalNvsDxe", efi.GUID{0x58, 0xad, 0xdc, 0xbf, 0x30, 0x36, 0x01, 0x43, 0xa2, 0xc6, 0x0d, 0xb4, 0x6c, 0xec, 0xa4, 0x82}: "OemGlobalNvsSmm", efi.GUID{0x58, 0xae, 0xdc, 0xef, 0xe2, 0x13, 0xec, 0x4b, 0x9a, 0xed, 0x99, 0x2c, 0x8d, 0xcb, 0xdd, 0x9e}: "FjTriggerMebxDxe", efi.GUID{0x58, 0xb3, 0x17, 0xf6, 0xcf, 0x12, 0x4a, 0x41, 0xa0, 0x69, 0x60, 0x67, 0x7b, 0xda, 0x13, 0xb3}: "DxeIchPlatformPolicyProtocolGuid", efi.GUID{0x58, 0xb3, 0x17, 0xf6, 0xcf, 0x12, 0x4a, 0x41, 0xa0, 0x69, 0x60, 0x67, 0x7b, 0xda, 0x13, 0xb4}: "UsbPolicyGuid", efi.GUID{0x58, 0xb7, 0x4f, 0xc5, 0xc3, 0x5d, 0x68, 0x40, 0x89, 0x3a, 0x4e, 0x67, 0xf7, 0xcc, 0xf5, 0xd4}: "FjDmiFJJSpecific", efi.GUID{0x58, 0xb7, 0xc4, 0xa3, 0x8c, 0xfa, 0x75, 0x4a, 0x91, 0xe2, 0x80, 0x7e, 0xc3, 0xb3, 0xda, 0x34}: "DeepSleepDxe", efi.GUID{0x58, 0xb7, 0xec, 0x95, 0x7e, 0x62, 0x2e, 0x4a, 0xb7, 0xb8, 0xdc, 0x86, 0x3e, 0xfe, 0x34, 0x25}: "AmiDeviceGuardApi", efi.GUID{0x58, 0xbb, 0x55, 0x07, 0x62, 0x33, 0x3c, 0x4e, 0x8d, 0x4c, 0x8e, 0x0f, 0x28, 0x36, 0x6e, 0x21}: "EcGbeSmm", efi.GUID{0x58, 0xbc, 0x6e, 0x1e, 0xe2, 0x55, 0xe4, 0x4f, 0xa3, 0x96, 0xaa, 0x2c, 0x22, 0x8e, 0xe7, 0xe2}: "PhPlatformSiSmmCodeCheckSmm", efi.GUID{0x58, 0xbc, 0x8c, 0x8e, 0x4c, 0x83, 0xe3, 0x41, 0xb8, 0xca, 0xf0, 0x0c, 0xcf, 0x5a, 0x71, 0x7c}: "IccOverclockingProtocol", efi.GUID{0x58, 0xc1, 0x7c, 0x23, 0x32, 0x60, 0x32, 0x48, 0xb0, 0xba, 0x1f, 0x83, 0xc0, 0xfc, 0xa6, 0x09}: "CoreHotKeyProtocol", efi.GUID{0x58, 0xc2, 0x52, 0xe2, 0x39, 0xc8, 0xcf, 0x48, 0xa8, 0x5c, 0xe8, 0xf4, 0xc3, 0x23, 0x5b, 0xda}: "OemApVariable", efi.GUID{0x58, 0xc4, 0x9e, 0x33, 0x6a, 0x9b, 0xec, 0x4c, 0xa4, 0x7a, 0x71, 0x28, 0x73, 0x65, 0x32, 0x99}: "StdFlashLibNull", efi.GUID{0x58, 0xc5, 0x07, 0x79, 0x57, 0x4c, 0x0e, 0x48, 0x94, 0x39, 0x7f, 0x66, 0x84, 0x85, 0x29, 0x20}: "DellMeLocalFwUpdateDxe_ME130", efi.GUID{0x58, 0xc9, 0x33, 0x1c, 0xa4, 0xfe, 0x5f, 0x43, 0x93, 0xef, 0x0a, 0x9c, 0x14, 0xae, 0x87, 0xe4}: "DellMfgAuthentication", efi.GUID{0x58, 0xda, 0x76, 0x8f, 0x99, 0x1f, 0x75, 0x42, 0xa4, 0xec, 0x47, 0x56, 0x51, 0x5b, 0x1c, 0xe8}: "EfiBluetoothLeConfigProtocolGuid", efi.GUID{0x58, 0xe5, 0xf2, 0xe0, 0x3b, 0x99, 0xa9, 0x43, 0x88, 0xc8, 0xd5, 0x30, 0x8b, 0xce, 0xbb, 0xbe}: "EcStorageAgentSmm", efi.GUID{0x58, 0xea, 0xad, 0x5a, 0x8c, 0x00, 0x12, 0x4d, 0xaa, 0x0d, 0xc8, 0x58, 0x89, 0xaa, 0xa7, 0x3b}: "SbSetPcdPei", efi.GUID{0x58, 0xee, 0x35, 0x3a, 0x86, 0x82, 0x00, 0x4f, 0x9a, 0x5b, 0x1b, 0x6a, 0xb7, 0x68, 0x08, 0x15}: "amiFVhoblistguid", efi.GUID{0x58, 0xf1, 0xac, 0x25, 0x61, 0xdd, 0x64, 0x4e, 0x9a, 0x49, 0x55, 0x85, 0x1e, 0x9a, 0x26, 0xc7}: "CsmBlockIo", efi.GUID{0x59, 0x02, 0xfb, 0x34, 0x92, 0xbd, 0xcf, 0x41, 0x81, 0x1b, 0x17, 0xc9, 0xad, 0x60, 0x51, 0x8a}: "RemoteWakeUpPei", efi.GUID{0x59, 0x0e, 0x97, 0x04, 0xcc, 0xfc, 0xcc, 0x47, 0xb9, 0x45, 0x79, 0x76, 0xee, 0x7d, 0xbb, 0x7a}: "OKRConfig", efi.GUID{0x59, 0x18, 0xa2, 0xe9, 0x2a, 0x00, 0x51, 0x47, 0x80, 0x31, 0xa0, 0xb5, 0xd1, 0x3e, 0xf7, 0x22}: "UsbPxeUndiDriver1", efi.GUID{0x59, 0x28, 0x6d, 0x45, 0x4b, 0xa8, 0x47, 0x4e, 0xa2, 0xee, 0x32, 0x76, 0xd8, 0x86, 0x99, 0x7d}: "EfiSmmSxDispatch2ProtocolGuid", efi.GUID{0x59, 0x2c, 0x50, 0xb8, 0x68, 0xb2, 0xe8, 0x4b, 0xad, 0xd6, 0x60, 0x1a, 0xfe, 0xaa, 0x4b, 0xc9}: "SpiKeyboard", efi.GUID{0x59, 0x37, 0x6c, 0x81, 0xe4, 0xdf, 0x44, 0x46, 0xaa, 0x17, 0x1f, 0x09, 0x0e, 0x02, 0xa5, 0x99}: "TiOnlyPei", efi.GUID{0x59, 0x4f, 0x94, 0xc3, 0x29, 0x40, 0xeb, 0xcc, 0xae, 0x0d, 0xd4, 0xa6, 0xb4, 0x79, 0x92, 0x4f}: "UsbPortConfigDxe", efi.GUID{0x59, 0x55, 0xf8, 0x27, 0x9f, 0x35, 0x25, 0x4b, 0x9b, 0x73, 0x3e, 0xe5, 0xde, 0x39, 0x91, 0x21}: "DellSmbusHcSmm", efi.GUID{0x59, 0x65, 0x22, 0x85, 0xef, 0x0d, 0xd8, 0x48, 0xa8, 0xc9, 0xb7, 0x46, 0xd6, 0xa4, 0xdf, 0x01}: "AmiMemoryErrorReportPpi", efi.GUID{0x59, 0x6a, 0x62, 0x3f, 0xd2, 0x87, 0xcf, 0x4f, 0xb5, 0xde, 0x9d, 0x12, 0xa8, 0xb2, 0xaf, 0x88}: "FeatureByte", efi.GUID{0x59, 0x6b, 0x0c, 0xa6, 0x59, 0xe4, 0x5d, 0x42, 0x9c, 0x69, 0x0b, 0xcc, 0x9c, 0xb2, 0x7d, 0x81}: "EfiGetPcdInfoPpiGuid", efi.GUID{0x59, 0x6d, 0x69, 0x97, 0x30, 0x74, 0xd9, 0x4c, 0xbc, 0x28, 0x19, 0xc7, 0x69, 0xfb, 0x04, 0xfd}: "DellHotSosPei", efi.GUID{0x59, 0x73, 0x74, 0x08, 0x88, 0xba, 0xf8, 0x42, 0x9d, 0x25, 0xf7, 0x1d, 0x93, 0xb6, 0xcd, 0x26}: "EcFlashSmm", efi.GUID{0x59, 0x7b, 0x3b, 0x0c, 0xe5, 0x28, 0x99, 0x4c, 0x85, 0xe5, 0xd0, 0x11, 0x6d, 0xbf, 0xaa, 0xf2}: "IsctWakeReason", efi.GUID{0x59, 0x80, 0xb9, 0x09, 0x74, 0x2d, 0xc5, 0x43, 0x97, 0x09, 0xad, 0x0a, 0x00, 0x51, 0x86, 0x7d}: "DellAhciDxe", efi.GUID{0x59, 0x83, 0xfc, 0xb7, 0x75, 0x51, 0x7c, 0x45, 0xb5, 0x91, 0x8a, 0xe8, 0xfd, 0xc4, 0x76, 0x05}: "UsbOcUpdateDxeEVB", efi.GUID{0x59, 0x92, 0xf1, 0x4d, 0x71, 0xdc, 0x46, 0x4d, 0xbe, 0xf1, 0x35, 0x7b, 0xb5, 0x78, 0xc4, 0x18}: "EfiPs2PolicyProtocolGuid", efi.GUID{0x59, 0x97, 0x59, 0xca, 0xa7, 0x90, 0xe4, 0x4f, 0xbc, 0x8b, 0x4b, 0x71, 0xc3, 0x50, 0xdc, 0xac}: "LibGen", efi.GUID{0x59, 0x97, 0xa7, 0x69, 0x73, 0x13, 0x67, 0x43, 0xa6, 0xc4, 0xc7, 0xf5, 0x9e, 0xfd, 0x98, 0x6e}: "FspReservedMemoryResourceHobGuid", efi.GUID{0x59, 0x98, 0x80, 0x63, 0x29, 0xf0, 0xc3, 0x41, 0x9f, 0x34, 0xee, 0xeb, 0x9e, 0xa7, 0x87, 0xa5}: "IioInit", efi.GUID{0x59, 0x9a, 0x30, 0x07, 0x2f, 0x46, 0x51, 0x42, 0xbf, 0x5f, 0x32, 0x4e, 0x80, 0xcd, 0x5b, 0x05}: "WtTimestamp", efi.GUID{0x59, 0xac, 0xee, 0xb0, 0x94, 0x2b, 0x6c, 0x40, 0x88, 0x22, 0x07, 0x19, 0x9a, 0x4f, 0x23, 0x1a}: "DellRmtPlatSiDxe", efi.GUID{0x59, 0xae, 0x9e, 0x51, 0xd0, 0xc1, 0x1c, 0x4a, 0x8b, 0x21, 0xf0, 0x6b, 0x62, 0x0d, 0xad, 0x21}: "RedfishPlatformDxe", efi.GUID{0x59, 0xaf, 0x0e, 0x63, 0x9e, 0x9e, 0x15, 0x45, 0x9f, 0x0d, 0x45, 0xd5, 0x56, 0xbc, 0xac, 0x1a}: "GetEdid", efi.GUID{0x59, 0xba, 0x17, 0xa0, 0xad, 0xdc, 0x3b, 0x47, 0xbb, 0xb3, 0x29, 0x4e, 0x9a, 0xf2, 0x0d, 0x34}: "OemPeiHook", efi.GUID{0x59, 0xbc, 0x28, 0xde, 0x28, 0x62, 0xbd, 0x41, 0xbd, 0xf6, 0xa3, 0xb9, 0xad, 0xb5, 0x8d, 0xa1}: "FramerworkEfiFirmwareVolumeBlockProtocolGuid", efi.GUID{0x59, 0xbc, 0xd8, 0x2e, 0x71, 0x06, 0xed, 0x49, 0xa8, 0x6f, 0x1b, 0x67, 0x60, 0xb3, 0x80, 0xa8}: "SmuV13Pei", efi.GUID{0x59, 0xc0, 0xc4, 0x51, 0xf0, 0x67, 0x3c, 0x4e, 0x9a, 0x55, 0xff, 0x42, 0xa8, 0x29, 0x1c, 0x8c}: "PeiSmbusLibSmbusPpi", efi.GUID{0x59, 0xc2, 0xf1, 0xf0, 0x3a, 0xfd, 0x6b, 0x44, 0xb2, 0xf2, 0x04, 0x93, 0x34, 0xd1, 0xbd, 0x23}: "AmdSocAm4CznPei", efi.GUID{0x59, 0xc4, 0x63, 0xff, 0x00, 0x34, 0xf9, 0x40, 0x85, 0xff, 0x54, 0xad, 0x78, 0x55, 0xf5, 0xb7}: "DellFmpLoader", efi.GUID{0x59, 0xcc, 0xbc, 0x28, 0x4d, 0x7f, 0xe3, 0x46, 0xbf, 0xe3, 0x84, 0x65, 0xcb, 0x52, 0x23, 0xa8}: "HpRpsuDetectDxe", efi.GUID{0x59, 0xd1, 0xa4, 0x70, 0x01, 0x1f, 0x03, 0x42, 0xa5, 0x98, 0x7c, 0x27, 0x94, 0x15, 0x1c, 0xe6}: "EfiOsBootOptionNames", efi.GUID{0x59, 0xd6, 0xe8, 0x73, 0xa2, 0xd2, 0x20, 0x47, 0x83, 0x16, 0xb9, 0xba, 0xd2, 0x1e, 0x5a, 0x29}: "CbsBaseDxeRN", efi.GUID{0x59, 0xd9, 0x23, 0xba, 0xcb, 0xef, 0x40, 0x43, 0xb0, 0xa9, 0xb3, 0x3f, 0x9c, 0xf0, 0x5c, 0xb8}: "PhPlatformPei", efi.GUID{0x59, 0xe2, 0x67, 0xba, 0x98, 0xf4, 0x04, 0x44, 0xa8, 0xe5, 0x14, 0x79, 0xd2, 0x4f, 0xff, 0xd3}: "PlatformSxConfig", efi.GUID{0x59, 0xe2, 0xcc, 0xfc, 0xe1, 0x07, 0x7a, 0x41, 0xa7, 0x55, 0xe0, 0xf2, 0xcf, 0x39, 0x29, 0x5e}: "CpuInitDxe", efi.GUID{0x59, 0xe7, 0xd6, 0x20, 0x4a, 0x4c, 0xc0, 0x40, 0x95, 0x33, 0x2b, 0xf0, 0x06, 0x68, 0x50, 0xfd}: "EfiQuiesceProtocol", efi.GUID{0x59, 0xed, 0x7f, 0xd2, 0xb4, 0xab, 0xed, 0x4f, 0xbe, 0xad, 0x2a, 0x87, 0x8c, 0x7e, 0x4a, 0x7e}: "SmbiosMeasurementDxe", efi.GUID{0x59, 0xfc, 0xd0, 0x2a, 0x14, 0x23, 0xf3, 0x4b, 0x86, 0x33, 0x13, 0xfa, 0x22, 0xa6, 0x24, 0xa0}: "PlatformPei", efi.GUID{0x5a, 0x00, 0x73, 0xa6, 0xf6, 0x69, 0x97, 0x45, 0x8a, 0xf9, 0x7a, 0xac, 0xa0, 0x03, 0x92, 0x96}: "Int15BootDisplay", efi.GUID{0x5a, 0x09, 0x92, 0x37, 0x09, 0xe3, 0x1e, 0x4c, 0xaa, 0x01, 0x85, 0xf5, 0x65, 0x5a, 0x17, 0xf1}: "EfiSmmAccessProtocolGuid", efi.GUID{0x5a, 0x0f, 0x0e, 0x87, 0x81, 0x19, 0xf6, 0x45, 0xae, 0x26, 0x03, 0x91, 0x42, 0x5c, 0xc4, 0x6f}: "CpuCsrAccessSMM", efi.GUID{0x5a, 0x14, 0xdf, 0x19, 0xd4, 0xb1, 0x3f, 0x45, 0x85, 0x07, 0x38, 0x81, 0x66, 0x76, 0xd7, 0xf6}: "AtaBusDxe", efi.GUID{0x5a, 0x1c, 0x5d, 0x80, 0x12, 0xef, 0x0a, 0x49, 0x9e, 0x7b, 0x9f, 0x4a, 0xa2, 0xf9, 0x7e, 0x73}: "AmiPspNvramSmm", efi.GUID{0x5a, 0x1c, 0xcd, 0x9e, 0xf2, 0x90, 0x1b, 0x47, 0x84, 0x19, 0x1d, 0xb6, 0x2b, 0xd9, 0xcc, 0x27}: "FjImonCalibration", efi.GUID{0x5a, 0x1e, 0x9e, 0x5e, 0xbc, 0xd6, 0xc6, 0x4a, 0xa1, 0x61, 0x85, 0x4b, 0x7b, 0xb5, 0xe1, 0x0a}: "Realtek8153Lan", efi.GUID{0x5a, 0x1e, 0x9e, 0x5f, 0xbc, 0xd6, 0xc6, 0x4a, 0xa1, 0x61, 0x85, 0x4b, 0x7b, 0xb5, 0xe1, 0x0a}: "RealtekLan", efi.GUID{0x5a, 0x20, 0x53, 0xc1, 0x98, 0xe8, 0x24, 0x4c, 0x86, 0x89, 0xa4, 0xb4, 0xbc, 0xc5, 0xc8, 0xa2}: "PeiCachePpiGuid", efi.GUID{0x5a, 0x31, 0x8c, 0x57, 0xcf, 0x68, 0x81, 0x4e, 0xb5, 0xc6, 0x22, 0xdb, 0x40, 0xd0, 0x10, 0xbc}: "EfiI2cMasterProtocolGuid", efi.GUID{0x5a, 0x34, 0xdd, 0x51, 0xfa, 0xb3, 0x19, 0x41, 0xb5, 0xd0, 0xc5, 0xfa, 0xd7, 0xf3, 0x7b, 0x31}: "DualBiosPei", efi.GUID{0x5a, 0x35, 0xad, 0xa3, 0xd0, 0x13, 0xcf, 0x4d, 0x9c, 0x21, 0x3d, 0x2c, 0x5f, 0x1b, 0xad, 0x5f}: "FboGroupForm", efi.GUID{0x5a, 0x3a, 0x5c, 0x22, 0x02, 0x59, 0x07, 0x43, 0x96, 0x8a, 0xaf, 0x8d, 0xef, 0xfe, 0x61, 0xe8}: "UsbPwrCtrlSmm", efi.GUID{0x5a, 0x3c, 0xcd, 0x9e, 0xf2, 0x90, 0x1b, 0x47, 0x84, 0x19, 0x1d, 0xb6, 0x2b, 0xd9, 0xcc, 0x27}: "SmscUSX2064", efi.GUID{0x5a, 0x3c, 0xcd, 0x9e, 0xf2, 0x90, 0x1b, 0x47, 0x84, 0x19, 0x1d, 0xb6, 0x3b, 0xd9, 0xcc, 0x27}: "FjSmbusProgram", efi.GUID{0x5a, 0x41, 0x0e, 0x71, 0x5b, 0x6a, 0xea, 0x4a, 0x97, 0x3f, 0x6d, 0xd3, 0xf9, 0xcb, 0x00, 0x56}: "PLEDPEI", efi.GUID{0x5a, 0x4e, 0xd7, 0xf2, 0x85, 0x89, 0xdb, 0x11, 0x97, 0x05, 0x00, 0x40, 0xd0, 0x2b, 0x18, 0x35}: "EfiUnixCpuSpeed", efi.GUID{0x5a, 0x53, 0xab, 0x77, 0xfc, 0x45, 0x4b, 0x62, 0x55, 0x60, 0xf7, 0xb2, 0x81, 0xd1, 0xf9, 0x6e}: "EfiVirtualDiskGuid", efi.GUID{0x5a, 0x55, 0x5f, 0xd2, 0xef, 0x30, 0xee, 0x49, 0x8f, 0xb5, 0xc7, 0x6b, 0x58, 0x17, 0xcc, 0x2a}: "AppleBootUI", efi.GUID{0x5a, 0x55, 0xd5, 0x5b, 0x5f, 0x83, 0x1a, 0x4f, 0xb3, 0xc2, 0x77, 0x77, 0xe6, 0xdc, 0xbf, 0xff}: "AMTConfigurationDxe", efi.GUID{0x5a, 0x57, 0x52, 0x55, 0x00, 0x7e, 0x61, 0x4d, 0xa3, 0xa4, 0xf7, 0x54, 0x73, 0x51, 0xb4, 0x9e}: "SmmBaseRuntime", efi.GUID{0x5a, 0x5c, 0x0e, 0xff, 0x43, 0xfa, 0x93, 0x45, 0xbe, 0x3f, 0x9d, 0x90, 0x2e, 0x03, 0x59, 0xa6}: "FchPromontoryPlusGpioDxe", efi.GUID{0x5a, 0x5e, 0x3c, 0x45, 0x2d, 0x48, 0xf0, 0x43, 0x87, 0xc9, 0x59, 0x41, 0xf3, 0xa3, 0x8a, 0xc2}: "EfiKmsFormatSha1160Guid", efi.GUID{0x5a, 0x5f, 0x6e, 0x29, 0x3e, 0x3f, 0x54, 0x4b, 0x83, 0x95, 0x98, 0xeb, 0xcc, 0x94, 0x07, 0xa6}: "AmiUsbCcid", efi.GUID{0x5a, 0x63, 0xbd, 0x6b, 0x3d, 0xb1, 0x06, 0x4a, 0x9f, 0x8f, 0x1f, 0xa0, 0x86, 0xd4, 0xec, 0x0f}: "EcMudSmm", efi.GUID{0x5a, 0x68, 0xe1, 0xe1, 0xbc, 0x7a, 0x0f, 0x45, 0x88, 0x2a, 0x4e, 0x69, 0x2c, 0xc6, 0xaf, 0x7e}: "FpgaConfigDataDxeNeonCityFPGA", efi.GUID{0x5a, 0x72, 0x52, 0xe3, 0x4a, 0xb8, 0xbc, 0x4e, 0xa9, 0x94, 0x22, 0x8e, 0x19, 0x22, 0x48, 0x16}: "SmcBMCSMI", efi.GUID{0x5a, 0x74, 0x83, 0x60, 0xfe, 0x36, 0x37, 0x4c, 0x85, 0x9a, 0x55, 0xb7, 0x73, 0xae, 0xc2, 0xd3}: "FchBixbyPei", efi.GUID{0x5a, 0x78, 0xc4, 0x63, 0x34, 0xca, 0x12, 0x40, 0xa3, 0xc8, 0x0b, 0x6a, 0x32, 0x4f, 0x55, 0x46}: "EfiRngAlgorithmX9313DesGuid", efi.GUID{0x5a, 0x7f, 0xb4, 0x1b, 0x6a, 0xab, 0x24, 0x40, 0xa7, 0x3a, 0x1e, 0x2c, 0x43, 0x17, 0x8a, 0xd6}: "UsbBtDxe", efi.GUID{0x5a, 0x85, 0x41, 0x83, 0x72, 0xf2, 0xfe, 0x4f, 0xbb, 0xee, 0xda, 0xea, 0xc5, 0xce, 0xdd, 0xc7}: "DellStorageAgentSmmRegister", efi.GUID{0x5a, 0x87, 0xd0, 0xe5, 0x47, 0xf6, 0x16, 0x4e, 0xbe, 0x4d, 0x95, 0x02, 0x40, 0x29, 0xcc, 0x44}: "MdesStatusCodeProtocol", efi.GUID{0x5a, 0x8a, 0xe5, 0x6c, 0x0a, 0x03, 0x59, 0x4b, 0xa6, 0x88, 0xd1, 0xd3, 0x7d, 0x7e, 0xa9, 0x85}: "TpmPlatformMeasurement", efi.GUID{0x5a, 0x8b, 0x85, 0xc8, 0x6a, 0x7a, 0x93, 0x41, 0x92, 0x53, 0xca, 0x6a, 0xb5, 0xf1, 0xea, 0x37}: "DashMctpSmbusDxe", efi.GUID{0x5a, 0x8e, 0x0f, 0x75, 0xbe, 0x59, 0x5b, 0x48, 0xa7, 0x17, 0xfd, 0x85, 0x0f, 0xc8, 0x77, 0x2b}: "FchKunlunMultiFchDxe", efi.GUID{0x5a, 0x93, 0xd1, 0x8f, 0x80, 0x6a, 0x35, 0x45, 0xb7, 0x14, 0xc3, 0xcb, 0xe4, 0x5a, 0x5c, 0x5c}: "PeiSerialTextOut", efi.GUID{0x5a, 0x94, 0x10, 0xff, 0xa3, 0x1e, 0xd8, 0x4b, 0xb7, 0x85, 0xb5, 0x25, 0xc5, 0xe1, 0x4e, 0xbb}: "NonAmtNetWorkController", efi.GUID{0x5a, 0x95, 0x87, 0x8f, 0xec, 0x85, 0x26, 0x48, 0xb4, 0xfe, 0x17, 0x3b, 0x91, 0x4a, 0xb3, 0x83}: "XhciSmm", efi.GUID{0x5a, 0x9b, 0xb0, 0x40, 0xef, 0xf0, 0x27, 0x46, 0x93, 0xd5, 0x27, 0xf0, 0x4b, 0x75, 0x4d, 0x05}: "AmtReadyToBootGuid", efi.GUID{0x5a, 0x9e, 0xe2, 0x8d, 0xba, 0xba, 0x96, 0x46, 0xb0, 0x7d, 0x33, 0xe8, 0x3d, 0x5a, 0xd8, 0x11}: "CbsBaseDxe", efi.GUID{0x5a, 0xa1, 0x4b, 0x11, 0x89, 0x61, 0x0d, 0x18, 0xbf, 0xc0, 0x20, 0x53, 0xb3, 0x48, 0x09, 0x49}: "EfiBoardSelectGuid", efi.GUID{0x5a, 0xae, 0x29, 0x52, 0x8e, 0xab, 0x93, 0x46, 0xa8, 0xfd, 0xb7, 0xd7, 0xcb, 0xce, 0x69, 0x4c}: "PTSataController", efi.GUID{0x5a, 0xb3, 0x69, 0xb4, 0x34, 0x09, 0x39, 0x40, 0x9a, 0x36, 0x73, 0x82, 0xc4, 0x28, 0xf8, 0x92}: "FjVariableRt", efi.GUID{0x5a, 0xb9, 0x9d, 0x0a, 0x4a, 0x0e, 0x16, 0x48, 0x86, 0x39, 0x5b, 0xe4, 0xff, 0xa9, 0xc9, 0x09}: "AmdFabricPhxSmm", efi.GUID{0x5a, 0xc0, 0xf5, 0xb9, 0xc4, 0xc8, 0x1c, 0x4d, 0x96, 0x6f, 0x19, 0x77, 0xef, 0x2c, 0xa5, 0x4d}: "AmdPlatformRasRnDxe", efi.GUID{0x5a, 0xcc, 0xbc, 0x28, 0x4e, 0x7f, 0xe4, 0x46, 0xbf, 0xe4, 0x84, 0x65, 0xcb, 0x52, 0x34, 0xb9}: "HpRpsuDetectPei", efi.GUID{0x5a, 0xcf, 0xf6, 0xc6, 0x85, 0xf0, 0x1e, 0x40, 0x84, 0x02, 0x00, 0x13, 0x4b, 0x66, 0x87, 0x03}: "FjFextPei", efi.GUID{0x5a, 0xd2, 0x5c, 0xdf, 0x55, 0x8e, 0xba, 0x46, 0x8c, 0xda, 0xbc, 0x7d, 0xb7, 0xbf, 0x9c, 0x64}: "MdesStatusCodeDxe", efi.GUID{0x5a, 0xd5, 0x35, 0xe5, 0xb6, 0xa0, 0xe6, 0x4a, 0x82, 0xcc, 0xfc, 0xab, 0x7b, 0x5d, 0xc5, 0x79}: "OemErpHookDxe", efi.GUID{0x5a, 0xd5, 0xc1, 0xd6, 0x24, 0xdb, 0xce, 0x45, 0xae, 0x52, 0x1e, 0x50, 0x87, 0xbe, 0x22, 0x2e}: "AmdResetHook", efi.GUID{0x5a, 0xde, 0x04, 0x40, 0xa5, 0x09, 0x0c, 0x4f, 0x94, 0xd7, 0x82, 0x32, 0x2e, 0x09, 0x6a, 0xa7}: "DxeCapsuleLibNull", efi.GUID{0x5a, 0xe9, 0x8c, 0x45, 0x42, 0x49, 0xa9, 0x09, 0x5d, 0x21, 0xa6, 0xb1, 0x6d, 0x5d, 0xad, 0x7f}: "RedfishCredentialDxe", efi.GUID{0x5a, 0xef, 0x8d, 0x15, 0x56, 0xf6, 0x9c, 0x41, 0xb0, 0x27, 0x7a, 0x31, 0x92, 0xc0, 0x79, 0xd2}: "ShellVariableGuid", efi.GUID{0x5a, 0xef, 0xce, 0x62, 0x7c, 0x1d, 0x43, 0x49, 0x9b, 0x3a, 0x95, 0xe2, 0x49, 0x4c, 0x89, 0x90}: "Emul6064KbdInputProtocolGuid", efi.GUID{0x5a, 0xf2, 0x6b, 0x28, 0xc3, 0xc2, 0x8c, 0x40, 0xb3, 0xb4, 0x25, 0xe6, 0x75, 0x8b, 0x73, 0x17}: "EfiTpmDeviceInstanceTpm20DtpmGuid", efi.GUID{0x5a, 0xf5, 0x23, 0xeb, 0x63, 0x78, 0xc2, 0x4a, 0x8d, 0x3d, 0x95, 0x65, 0x35, 0xde, 0x03, 0x75}: "EfiIncompatiblePciDeviceSupportProtocolGuid", efi.GUID{0x5b, 0x01, 0x57, 0x86, 0x43, 0xea, 0x0d, 0x44, 0x94, 0x9a, 0xaf, 0x3b, 0xe3, 0x65, 0xc0, 0xfc}: "IoMmuDxe", efi.GUID{0x5b, 0x02, 0x35, 0xf2, 0xa0, 0x85, 0xd8, 0x4a, 0x83, 0x9e, 0xa7, 0xfe, 0xdf, 0xd0, 0xcd, 0xe3}: "WatchRobotPei", efi.GUID{0x5b, 0x02, 0x35, 0xf2, 0xa0, 0x85, 0xd8, 0x4a, 0x83, 0x9e, 0xa7, 0xfe, 0xdf, 0xd0, 0xcd, 0xe4}: "PowerOnRobotPei", efi.GUID{0x5b, 0x02, 0xf1, 0x93, 0xd4, 0xb6, 0x2f, 0x4f, 0xa4, 0xa9, 0xa4, 0xab, 0xa0, 0xcf, 0x60, 0x4f}: "aDefaultDxe", efi.GUID{0x5b, 0x0d, 0x1b, 0x5f, 0x44, 0xdb, 0x81, 0x4b, 0xa6, 0x9d, 0x55, 0x3c, 0x59, 0x1a, 0xf0, 0x92}: "OCMR_DXE", efi.GUID{0x5b, 0x0f, 0x41, 0xf3, 0x56, 0x47, 0x8f, 0x48, 0x84, 0x4d, 0x54, 0x6b, 0x5d, 0xf0, 0x5a, 0x0d}: "FjBiosPostGpioDxe", efi.GUID{0x5b, 0x11, 0xfe, 0xaf, 0x89, 0x85, 0x6d, 0x45, 0xba, 0xb5, 0x8f, 0x2e, 0xda, 0x53, 0xae, 0xb7}: "ArmPlatformUpdateFdtEventGuid", efi.GUID{0x5b, 0x14, 0x7d, 0x12, 0x0d, 0x41, 0xd7, 0x4d, 0xbf, 0xaf, 0x15, 0xa3, 0xd3, 0xb6, 0x0b, 0x94}: "SetupRepSetDxe", efi.GUID{0x5b, 0x15, 0x8b, 0x4d, 0x59, 0xc0, 0x8f, 0x4c, 0x89, 0x26, 0x06, 0xfd, 0x43, 0x31, 0xdb, 0x8a}: "GetPcdInfoPpiGuid", efi.GUID{0x5b, 0x1a, 0xca, 0x97, 0x60, 0xb7, 0x1f, 0x4d, 0xa5, 0x4b, 0xd1, 0x90, 0x92, 0x03, 0x2c, 0x90}: "DebuggerTerminalVar", efi.GUID{0x5b, 0x20, 0x17, 0x3d, 0x49, 0x4c, 0xe2, 0x47, 0x81, 0x57, 0x86, 0x4c, 0xd3, 0xd8, 0x0d, 0xbd}: "FatPei", efi.GUID{0x5b, 0x20, 0xea, 0xf4, 0x45, 0x73, 0x2c, 0x45, 0x9d, 0x62, 0x53, 0xba, 0x6f, 0x3b, 0x89, 0x10}: "FmpAuthenticationLibPkcs7", efi.GUID{0x5b, 0x26, 0x7f, 0x3f, 0xce, 0x29, 0x54, 0x4a, 0x87, 0x51, 0x8a, 0x9e, 0x90, 0x71, 0x98, 0x31}: "FjEdpDisplay", efi.GUID{0x5b, 0x2c, 0x60, 0x0a, 0xa0, 0x05, 0xc4, 0x40, 0x91, 0x81, 0xed, 0xcd, 0x89, 0x1d, 0x00, 0x01}: "OememDxeBin", efi.GUID{0x5b, 0x2c, 0x60, 0x0a, 0xa0, 0x05, 0xc4, 0x40, 0x91, 0x81, 0xed, 0xcd, 0x89, 0x1d, 0x00, 0x02}: "OememSmiBin", efi.GUID{0x5b, 0x2c, 0x60, 0x0a, 0xa0, 0x05, 0xc4, 0x40, 0x91, 0x81, 0xed, 0xcd, 0x89, 0x1d, 0x00, 0x03}: "OememPeiBin", efi.GUID{0x5b, 0x31, 0x21, 0x92, 0xbb, 0x30, 0xb5, 0x46, 0x81, 0x3e, 0x1b, 0x1b, 0xf4, 0x71, 0x2b, 0xd3}: "Defaults", efi.GUID{0x5b, 0x3f, 0xcc, 0xf2, 0x5f, 0x72, 0x90, 0x42, 0x9a, 0x12, 0xb3, 0x79, 0x97, 0x02, 0x95, 0xff}: "RtkUndiDxe", efi.GUID{0x5b, 0x3f, 0xd5, 0xa4, 0x16, 0xc2, 0x8a, 0x4c, 0x83, 0xd9, 0x39, 0x0b, 0x4a, 0x65, 0x6c, 0xd4}: "AmdSocFp7PhxDxe", efi.GUID{0x5b, 0x40, 0x20, 0x39, 0x97, 0xc8, 0xda, 0x44, 0x88, 0xf3, 0x4c, 0x49, 0x8a, 0x6f, 0xf7, 0x36}: "EfiSmmIchnDispatchExProtocolGuid", efi.GUID{0x5b, 0x41, 0x6a, 0xac, 0x4b, 0x84, 0x88, 0x42, 0xb6, 0x18, 0xd1, 0x4d, 0x61, 0x44, 0xdf, 0xe1}: "FjGpioAbstractionReference", efi.GUID{0x5b, 0x41, 0xb2, 0xc1, 0x28, 0x3d, 0x66, 0x47, 0xaa, 0xe8, 0xef, 0xbe, 0xf3, 0xbf, 0x14, 0x51}: "AmdSocSp6StpDxe", efi.GUID{0x5b, 0x42, 0x6d, 0xd0, 0xd7, 0xee, 0x61, 0x03, 0xaa, 0xd2, 0x8c, 0x43, 0x14, 0x09, 0x57, 0x2d}: "BootGuardRecoveryHookPei", efi.GUID{0x5b, 0x49, 0x4b, 0xa8, 0xf4, 0x79, 0xab, 0x40, 0x8b, 0x60, 0x65, 0x3f, 0x69, 0xdc, 0xd9, 0x44}: "AmiHeciDeliverProtocolGuid", efi.GUID{0x5b, 0x4c, 0x84, 0x6b, 0x75, 0x6b, 0xca, 0x42, 0x8e, 0x8e, 0x1c, 0xb9, 0x44, 0x12, 0xb5, 0x9b}: "TcgPeiplatform", efi.GUID{0x5b, 0x51, 0x6a, 0xac, 0x4b, 0x84, 0x88, 0x43, 0xb6, 0x18, 0xd1, 0x4d, 0x61, 0x44, 0xdf, 0xe1}: "FjGpioAbstractionReference", efi.GUID{0x5b, 0x54, 0x8c, 0x0e, 0xee, 0xa2, 0x0d, 0x47, 0x8e, 0x26, 0xbd, 0xa1, 0xa1, 0x3c, 0x0a, 0xa3}: "LastEnumLangGuid", efi.GUID{0x5b, 0x55, 0x5a, 0xec, 0x84, 0x63, 0x00, 0x4c, 0x86, 0x25, 0x2c, 0x17, 0x68, 0xb9, 0x5b, 0x38}: "LenovoMeConOutReady", efi.GUID{0x5b, 0x61, 0x7e, 0x3f, 0x45, 0x0d, 0x80, 0x4f, 0x88, 0xdc, 0x26, 0xb2, 0x34, 0x95, 0x85, 0x60}: "FitDiagnosticsLoader", efi.GUID{0x5b, 0x62, 0x3f, 0x5d, 0x9d, 0xa3, 0x0c, 0x41, 0x8d, 0x6a, 0x9c, 0x31, 0x05, 0x64, 0x06, 0xde}: "ODMServiceDxe", efi.GUID{0x5b, 0x64, 0xfd, 0xde, 0x0f, 0x72, 0xd3, 0x4e, 0x9b, 0x4a, 0xa3, 0x68, 0x8b, 0xf5, 0xa3, 0x00}: "AmdMemMcsrUserPreferenceDxe", efi.GUID{0x5b, 0x72, 0x80, 0x86, 0x11, 0x3e, 0xb7, 0x46, 0xab, 0x11, 0x2b, 0x30, 0x18, 0x03, 0x86, 0xba}: "DustFilterWmi", efi.GUID{0x5b, 0x75, 0xb0, 0x75, 0xd9, 0xb0, 0x05, 0x42, 0xbb, 0xf7, 0x63, 0x28, 0x9f, 0xfb, 0x80, 0x45}: "ProjectSmm", efi.GUID{0x5b, 0x75, 0xce, 0xa5, 0x21, 0xea, 0x84, 0x48, 0x88, 0xc7, 0xc7, 0xd4, 0xb1, 0xae, 0x28, 0x37}: "ProgressBar", efi.GUID{0x5b, 0x79, 0x9b, 0xdc, 0xd9, 0xff, 0xe8, 0x44, 0xa3, 0x6d, 0x66, 0x37, 0x85, 0x2e, 0xb6, 0xe4}: "S5MaxPowerSavingsDxe", efi.GUID{0x5b, 0x86, 0x72, 0x22, 0xf6, 0xeb, 0x47, 0x40, 0xb0, 0x08, 0x78, 0x89, 0x49, 0x7f, 0x53, 0xbd}: "SuperMDriverProtocol", efi.GUID{0x5b, 0x8f, 0xdb, 0x2a, 0xd4, 0xc7, 0x7e, 0x4e, 0xbe, 0x2a, 0x23, 0x63, 0x4d, 0xf6, 0x68, 0xa1}: "MouseDriver", efi.GUID{0x5b, 0x90, 0x51, 0x0d, 0x7e, 0xb7, 0x2a, 0x45, 0xa2, 0xc0, 0xec, 0xa0, 0xcc, 0x8d, 0x51, 0x4a}: "EdkiiNonDiscoverableDeviceProtocolGuid", efi.GUID{0x5b, 0x93, 0xde, 0x4b, 0x00, 0x77, 0x73, 0x4e, 0x82, 0x3d, 0xaf, 0x9b, 0x40, 0x22, 0x70, 0xac}: "CloudBootCreateEmbeddedBoot", efi.GUID{0x5b, 0x9c, 0x2e, 0xd9, 0x6c, 0xbb, 0xee, 0x46, 0xb8, 0xe7, 0x6b, 0x0b, 0x3d, 0x4b, 0x2b, 0xbc}: "AsusBiosRecoveryDxe", efi.GUID{0x5b, 0x9f, 0xaf, 0xe1, 0xde, 0x7c, 0x98, 0x4f, 0x91, 0xed, 0x5e, 0x67, 0x86, 0x82, 0x82, 0xb8}: "AsusBbVideo", efi.GUID{0x5b, 0xaa, 0xf3, 0x4f, 0x5c, 0x10, 0x09, 0x44, 0x87, 0xcd, 0x59, 0xc1, 0x5b, 0x7f, 0xc5, 0xd8}: "DellGlobalNvsDxe", efi.GUID{0x5b, 0xad, 0xd3, 0x1f, 0x65, 0x5e, 0x5e, 0x48, 0x9e, 0xbd, 0x95, 0xb1, 0x4d, 0x6e, 0xcc, 0xc6}: "SetupConfigUpdateDxeXPV", efi.GUID{0x5b, 0xad, 0xd4, 0x84, 0x02, 0x17, 0x2e, 0x44, 0xbd, 0xd8, 0x57, 0xe1, 0x19, 0x61, 0x11, 0xe5}: "SmmAccessDxe2", efi.GUID{0x5b, 0xbc, 0x71, 0x04, 0xbe, 0x64, 0xbf, 0x43, 0x8f, 0xa1, 0x43, 0x5a, 0xf1, 0x16, 0x13, 0x84}: "CrystalRidgeMeasurement", efi.GUID{0x5b, 0xc5, 0x3a, 0xd3, 0xa6, 0x82, 0x8d, 0x44, 0x8d, 0x14, 0xdf, 0xe0, 0x81, 0x4d, 0x07, 0x92}: "DellSetupRollbackDxeDriver", efi.GUID{0x5b, 0xc6, 0x90, 0x87, 0xe2, 0x61, 0xa0, 0x41, 0xb6, 0xad, 0xfc, 0xe0, 0x66, 0xf1, 0x84, 0x14}: "EarlyConsoleOutInterfaceDxe", efi.GUID{0x5b, 0xcf, 0xbe, 0xd4, 0x0d, 0x19, 0xdb, 0x46, 0x92, 0xcc, 0x3f, 0x5d, 0x74, 0x90, 0x4d, 0xda}: "SmmAccessDxe", efi.GUID{0x5b, 0xdb, 0x31, 0xd2, 0x9c, 0x4a, 0x92, 0x40, 0xa8, 0xc5, 0x9c, 0xa0, 0xbc, 0x7d, 0x6a, 0xa6}: "IffsInfoProtocol", efi.GUID{0x5b, 0xdd, 0x97, 0x21, 0xd9, 0xb8, 0x97, 0x48, 0x92, 0xf1, 0x18, 0xd7, 0x59, 0x03, 0xe6, 0xaf}: "HpSleepStateSmm", efi.GUID{0x5b, 0xe2, 0x35, 0xec, 0x25, 0x04, 0x35, 0x44, 0xa3, 0x4c, 0x96, 0xd7, 0x57, 0x03, 0xb8, 0x93}: "FjEndofPeiGPIOOverride", efi.GUID{0x5b, 0xe8, 0xd6, 0xfc, 0x8e, 0x4a, 0x26, 0x43, 0xa7, 0xab, 0x8e, 0x67, 0x22, 0x9d, 0xa8, 0xe3}: "AmdSocFp7PhxPei", efi.GUID{0x5b, 0xeb, 0x44, 0xac, 0x6b, 0x28, 0x41, 0x4a, 0xbf, 0x5c, 0xb7, 0x5b, 0x82, 0x86, 0x45, 0x4b}: "PchAnOddDetect", efi.GUID{0x5b, 0xeb, 0x96, 0x90, 0xd1, 0x59, 0xf8, 0x49, 0x86, 0x6c, 0x78, 0xd2, 0x46, 0x31, 0xa6, 0xb4}: "EndOfDxeBeforePciEnumEventGroupGuid", efi.GUID{0x5b, 0xed, 0x6f, 0x6f, 0x41, 0x37, 0x4b, 0x4d, 0x8a, 0xc7, 0xc7, 0x49, 0x14, 0x87, 0x4a, 0x77}: "SbCrisis", efi.GUID{0x5b, 0xfa, 0x65, 0x75, 0x1b, 0x10, 0x93, 0x44, 0x9f, 0x27, 0x1e, 0xcb, 0xd4, 0xbe, 0xcc, 0x6c}: "AsusSetArmouryCrateField", efi.GUID{0x5b, 0xfc, 0x1d, 0x1f, 0x64, 0x5c, 0xa3, 0x49, 0xa1, 0x4a, 0xac, 0x2d, 0x31, 0x38, 0xb5, 0x95}: "FjIbvAbstractionDxe", efi.GUID{0x5b, 0xfd, 0x73, 0xfb, 0xb5, 0xfa, 0xe8, 0x4e, 0x8e, 0x32, 0x48, 0x03, 0x5c, 0x20, 0x71, 0xab}: "Smbios248", efi.GUID{0x5b, 0xfe, 0xcb, 0x90, 0x84, 0x97, 0xa4, 0x44, 0x8c, 0xb8, 0xc6, 0x40, 0xae, 0xb9, 0xea, 0x1c}: "DellSystemUsbPortConfigSmm", efi.GUID{0x5b, 0xfe, 0xe1, 0x8b, 0x4e, 0x0b, 0xb4, 0x4a, 0xb7, 0x7b, 0x5e, 0x03, 0x40, 0x3d, 0xf5, 0x01}: "DellUsbTouchPanelDxe", efi.GUID{0x5c, 0x02, 0x31, 0xba, 0xa8, 0x4a, 0xae, 0x4c, 0x98, 0xca, 0xba, 0x12, 0xc6, 0xbc, 0x7d, 0x78}: "SmmControl2Dxe", efi.GUID{0x5c, 0x0e, 0x62, 0xa9, 0xa1, 0x5f, 0xb7, 0x40, 0x8b, 0x21, 0x50, 0xb6, 0x32, 0xf8, 0x8f, 0x38}: "EfiLoader", efi.GUID{0x5c, 0x19, 0x09, 0x9d, 0x6d, 0xeb, 0x7a, 0x45, 0x90, 0x7f, 0xc0, 0xe0, 0xb3, 0xa9, 0x77, 0x57}: "AsusGlobalVariable", efi.GUID{0x5c, 0x1a, 0xba, 0x98, 0xf7, 0xda, 0x1f, 0x45, 0x82, 0x9e, 0x69, 0x8d, 0x08, 0xab, 0xc0, 0x65}: "FchI3cConsumerSPD5Dxe", efi.GUID{0x5c, 0x1b, 0x70, 0xf5, 0x4b, 0x01, 0xef, 0x4d, 0xa9, 0x14, 0xa5, 0x37, 0xbb, 0x49, 0xa8, 0x9c}: "ArmaniKeyboardLayouts", efi.GUID{0x5c, 0x1e, 0xdb, 0x67, 0x66, 0xee, 0xfd, 0x48, 0xa4, 0xb5, 0xe9, 0xbd, 0x16, 0xea, 0xfd, 0xf6}: "SmmAccessPei", efi.GUID{0x5c, 0x25, 0x95, 0x47, 0x31, 0x70, 0x3c, 0x47, 0xaf, 0x8a, 0x8b, 0xc7, 0x70, 0x1a, 0xcc, 0xa5}: "fTPMAcpi", efi.GUID{0x5c, 0x2f, 0x45, 0x9c, 0x00, 0x62, 0xa6, 0x4a, 0x80, 0x68, 0xf4, 0x4b, 0x4f, 0x36, 0xd4, 0x1e}: "H2OKeyDescDxe", efi.GUID{0x5c, 0x36, 0x65, 0x05, 0xe1, 0x2f, 0x88, 0x4f, 0xb3, 0xbe, 0x62, 0x4c, 0x04, 0x62, 0x3a, 0x20}: "MicrocodeUpdateDxe", efi.GUID{0x5c, 0x59, 0x3a, 0x21, 0x12, 0xf5, 0x35, 0x49, 0x90, 0xe3, 0x2c, 0xea, 0xd0, 0x77, 0xc7, 0x21}: "DashDxe", efi.GUID{0x5c, 0x5a, 0x99, 0x73, 0xab, 0xc2, 0xcc, 0x48, 0xa4, 0x04, 0xe3, 0x9b, 0x38, 0x50, 0x5c, 0x56}: "PlatformRecoveryOrderGuid", efi.GUID{0x5c, 0x5b, 0xc2, 0x35, 0xd6, 0xbc, 0xc5, 0x4b, 0x94, 0x0f, 0xa2, 0x7c, 0xd8, 0xcc, 0xc2, 0xc3}: "FjGabiSetupSettingsHandlerSmm", efi.GUID{0x5c, 0x66, 0x21, 0xf8, 0x37, 0x01, 0x34, 0x4f, 0xa7, 0xa1, 0x57, 0xa0, 0xbd, 0x25, 0x6d, 0x62}: "IntelScLegacyInterrupt", efi.GUID{0x5c, 0x67, 0xd1, 0x81, 0xf6, 0x86, 0xdf, 0x48, 0xbd, 0x95, 0x9a, 0x6e, 0x4f, 0x09, 0x25, 0xc3}: "EdkiiVariablePolicyProtocol", efi.GUID{0x5c, 0x70, 0xcf, 0xda, 0xdf, 0x71, 0x7d, 0x49, 0xaa, 0xbe, 0x10, 0x18, 0x6b, 0x2e, 0x1d, 0xde}: "Recovery", efi.GUID{0x5c, 0x78, 0x29, 0x7c, 0xb9, 0x66, 0xfc, 0x49, 0xb7, 0x97, 0x1c, 0xa5, 0x55, 0x0e, 0xf2, 0x83}: "PeiUsbIoPpiGuid", efi.GUID{0x5c, 0x79, 0x0e, 0xef, 0x9a, 0x74, 0x41, 0x4b, 0xb9, 0x94, 0x7d, 0xdc, 0x6b, 0x59, 0x43, 0x88}: "UsbOcUpdateDxeNeonCityEPRP", efi.GUID{0x5c, 0x7e, 0xb3, 0x5d, 0xeb, 0x2e, 0xf8, 0x43, 0xad, 0xa0, 0x24, 0x37, 0x02, 0xd3, 0x94, 0x5d}: "DellSioConfigDxe", efi.GUID{0x5c, 0x87, 0x78, 0xe3, 0x82, 0x32, 0xa0, 0x48, 0xa9, 0xa8, 0xb1, 0xe4, 0xe1, 0x6b, 0xd5, 0x13}: "ChassisIntrusionS3", efi.GUID{0x5c, 0x89, 0x1d, 0x85, 0x12, 0x22, 0x81, 0x4d, 0x83, 0x16, 0x18, 0xd7, 0xc1, 0x3e, 0x5f, 0x60}: "AmdHspFtpmDxe", efi.GUID{0x5c, 0x89, 0xda, 0xb3, 0x27, 0x6a, 0x4c, 0x4c, 0x94, 0xe4, 0x23, 0x59, 0xbe, 0x25, 0x32, 0xf5}: "SecureEraseDxe", efi.GUID{0x5c, 0x8f, 0x50, 0xf5, 0xd7, 0x88, 0x6c, 0x42, 0xb1, 0xc4, 0x19, 0x8a, 0x02, 0x72, 0x40, 0x5c}: "UpdateD01AcpiTableHdr", efi.GUID{0x5c, 0x96, 0x85, 0x5b, 0x5d, 0x45, 0xc6, 0x4c, 0x9c, 0x4c, 0x7f, 0x08, 0x69, 0x67, 0xd2, 0xb0}: "PKeyFileSha256Guid", efi.GUID{0x5c, 0x9f, 0xff, 0x32, 0xb4, 0x56, 0x49, 0x41, 0x81, 0xa8, 0xe7, 0x48, 0x64, 0x5e, 0x95, 0x51}: "HpSioSecuritySmm", efi.GUID{0x5c, 0xa1, 0x22, 0xf1, 0x0b, 0xc1, 0x54, 0x4d, 0x8f, 0x48, 0x60, 0xf4, 0xf0, 0x6d, 0xd1, 0xad}: "LegacyBiosDxe", efi.GUID{0x5c, 0xa4, 0xb5, 0x28, 0x5d, 0xcc, 0x21, 0x42, 0x9d, 0xff, 0x86, 0xb0, 0xf4, 0x2d, 0xdc, 0x01}: "LenovoIvbGopDriver", efi.GUID{0x5c, 0xa7, 0xf6, 0xe8, 0xda, 0x3c, 0x00, 0x4b, 0x98, 0x37, 0x8c, 0xa2, 0xa1, 0xf3, 0x4e, 0xac}: "SpsDxe", efi.GUID{0x5c, 0xb2, 0x4d, 0x45, 0x06, 0xe5, 0x90, 0x4f, 0xa6, 0xdf, 0x69, 0xe0, 0x22, 0x3e, 0x3f, 0x2b}: "PramAddrDataGuid", efi.GUID{0x5c, 0xb9, 0x23, 0x50, 0x26, 0xdb, 0x9b, 0x42, 0xa6, 0x48, 0xbd, 0x47, 0x66, 0x4c, 0x80, 0x12}: "AmiMediaDevicePath", efi.GUID{0x5c, 0xbb, 0x9a, 0xde, 0x92, 0x2f, 0x52, 0x43, 0x9c, 0x56, 0xf5, 0x1b, 0xc9, 0xd5, 0xe5, 0x5a}: "DxeFramework", efi.GUID{0x5c, 0xbe, 0xa0, 0x40, 0xa6, 0xec, 0xf1, 0x45, 0xbf, 0xf5, 0x61, 0x9e, 0x26, 0x95, 0x1e, 0x5c}: "HstiDxeV2", efi.GUID{0x5c, 0xc3, 0xf8, 0x49, 0xef, 0xb9, 0x2a, 0x40, 0xab, 0x44, 0x87, 0x1c, 0x13, 0x9e, 0xb0, 0x0d}: "FastBootSetupDxe", efi.GUID{0x5c, 0xc9, 0xdb, 0xb1, 0xe7, 0x0e, 0x61, 0x42, 0xb2, 0x90, 0x5b, 0xf0, 0xa4, 0xdb, 0x95, 0x27}: "DellSmmRadioExecProtocol", efi.GUID{0x5c, 0xe0, 0xc7, 0x0b, 0x8a, 0xc8, 0x54, 0x42, 0xbc, 0xbb, 0xd4, 0x26, 0x38, 0xd2, 0x8a, 0xad}: "PlatformMilestoneSmm", efi.GUID{0x5c, 0xe6, 0x43, 0x32, 0xe3, 0x5c, 0xb7, 0x47, 0xb4, 0x06, 0x26, 0x8c, 0xf8, 0xc0, 0x89, 0x68}: "HpTimingData", efi.GUID{0x5c, 0xf7, 0xa5, 0x2f, 0x60, 0xbf, 0x2f, 0x47, 0xad, 0x9a, 0xfd, 0x23, 0xad, 0x5b, 0x93, 0x7e}: "SmmUartModeGpioInit", efi.GUID{0x5c, 0xf9, 0x1b, 0x89, 0x03, 0xa9, 0xe7, 0x42, 0x8d, 0x5f, 0xb7, 0xf9, 0xb6, 0xc8, 0x83, 0x1c}: "PchLpcPei", efi.GUID{0x5d, 0x02, 0xcf, 0x77, 0x43, 0xd7, 0xe5, 0x4d, 0xac, 0x39, 0xae, 0x4a, 0x59, 0x10, 0x64, 0xb0}: "RestoreVariablesDxe", efi.GUID{0x5d, 0x09, 0x9a, 0x3c, 0xcb, 0xc3, 0x02, 0x43, 0x96, 0xe1, 0x71, 0x05, 0xa7, 0xc4, 0x6a, 0x69}: "AmdCcxZenRvDxe", efi.GUID{0x5d, 0x0d, 0x33, 0x25, 0x74, 0x54, 0xb8, 0x4e, 0x81, 0x92, 0xe6, 0xde, 0x3d, 0x5e, 0xd0, 0xb6}: "DellVariable2Smm", efi.GUID{0x5d, 0x1c, 0x82, 0x84, 0xfe, 0x1c, 0x2d, 0x4e, 0x81, 0x9d, 0x50, 0x19, 0x44, 0x8d, 0x17, 0x5c}: "SmmSxCallBack", efi.GUID{0x5d, 0x1d, 0xeb, 0x7f, 0xf4, 0x33, 0xd3, 0x48, 0xbd, 0x11, 0xc4, 0xb3, 0x6b, 0x6d, 0x0e, 0x57}: "FmpDxe", efi.GUID{0x5d, 0x1e, 0xc8, 0x97, 0xa0, 0x8f, 0x6a, 0x48, 0xaa, 0xea, 0x0e, 0xfd, 0xf0, 0x90, 0xfe, 0x4f}: "SerialIo", efi.GUID{0x5d, 0x21, 0x26, 0x11, 0x9c, 0xb9, 0x09, 0x4b, 0x9c, 0xa8, 0x60, 0xc6, 0x11, 0xac, 0xe2, 0x9d}: "OemEcFeature", efi.GUID{0x5d, 0x21, 0x62, 0xa3, 0xb6, 0x75, 0x54, 0x4b, 0x80, 0xe5, 0x74, 0x34, 0x75, 0x18, 0x77, 0xf3}: "RtkUndiDxe", efi.GUID{0x5d, 0x2c, 0xe9, 0xff, 0x83, 0x2d, 0xe2, 0x44, 0xa4, 0xea, 0x29, 0x4d, 0x53, 0x99, 0x1d, 0xbc}: "HpChipsetSHUsbPortDisableSmm", efi.GUID{0x5d, 0x35, 0x9f, 0xe0, 0xe8, 0xda, 0x10, 0x49, 0xb1, 0x4a, 0x92, 0x78, 0x0f, 0xdc, 0xf7, 0xcb}: "EdkiiPlatformSpecificResetNotificationPpi", efi.GUID{0x5d, 0x41, 0x06, 0x49, 0x32, 0x4b, 0x28, 0x4d, 0x85, 0x57, 0x21, 0xc3, 0x90, 0xd7, 0x6a, 0x3c}: "DeleteUefiCaFromDb", efi.GUID{0x5d, 0x41, 0x8a, 0xcc, 0xac, 0x2e, 0x35, 0x43, 0xbf, 0x4f, 0x9a, 0xbc, 0x23, 0xf5, 0xac, 0xcb}: "SmbiosDataUpdateDxeGnrwsERB", efi.GUID{0x5d, 0x46, 0x10, 0x41, 0xf3, 0x5f, 0x4b, 0x4f, 0xb5, 0x80, 0x24, 0xed, 0x0d, 0x06, 0x74, 0x7a}: "SmbiosPlatformDxe", efi.GUID{0x5d, 0x55, 0xfb, 0x65, 0xca, 0x5c, 0xc3, 0x40, 0x99, 0x67, 0x22, 0x79, 0x88, 0x28, 0x8d, 0xd8}: "LenovoSupervisorPasswordManagerSmmProtocol", efi.GUID{0x5d, 0x59, 0x36, 0x07, 0xab, 0x88, 0x3e, 0x48, 0x98, 0x86, 0x81, 0x32, 0x01, 0x89, 0x80, 0xfe}: "SioChip1InitDxe", efi.GUID{0x5d, 0x5d, 0x73, 0x96, 0x95, 0x45, 0x83, 0x41, 0xb1, 0xd7, 0x93, 0x4c, 0xc4, 0x02, 0xaa, 0x95}: "ramdisk", efi.GUID{0x5d, 0x60, 0x5f, 0x5f, 0x83, 0x15, 0x2d, 0x4a, 0xa6, 0xb2, 0xeb, 0x12, 0xda, 0xb4, 0xa2, 0xb6}: "ShellBcfgHiiGuid", efi.GUID{0x5d, 0x6a, 0xbd, 0x54, 0xf2, 0x38, 0xbd, 0x44, 0x84, 0xab, 0x10, 0x8b, 0xe4, 0xf4, 0x59, 0x14}: "DellChassisConfigDxe", efi.GUID{0x5d, 0x6e, 0x0b, 0xe5, 0x9b, 0x35, 0xe0, 0x4b, 0xa0, 0xb0, 0x07, 0x15, 0xa3, 0x01, 0xa6, 0x06}: "EfiPeiSelPpi", efi.GUID{0x5d, 0x73, 0xd7, 0xe9, 0xe2, 0x06, 0xb7, 0x47, 0xb8, 0x56, 0x2a, 0x20, 0x13, 0x8f, 0xae, 0xa4}: "FchHuashanSmmInit", efi.GUID{0x5d, 0x76, 0x50, 0x8a, 0x82, 0x15, 0xeb, 0x41, 0x82, 0x89, 0x14, 0x09, 0x41, 0x9c, 0x24, 0xdd}: "LenovoMfgDoneSmm", efi.GUID{0x5d, 0x7d, 0x06, 0xea, 0xfd, 0x56, 0x00, 0x4b, 0xb7, 0x9a, 0x35, 0x2a, 0xff, 0x8f, 0x2b, 0xd6}: "UpdateSmbiosType41", efi.GUID{0x5d, 0x80, 0x4d, 0x0e, 0x6c, 0x74, 0xbc, 0x4e, 0x87, 0x95, 0x31, 0xa2, 0x86, 0xcc, 0xa6, 0x20}: "TcgPeiPolicyHobGuid", efi.GUID{0x5d, 0x8a, 0x7e, 0x49, 0x07, 0xc8, 0x0f, 0x42, 0x8d, 0x85, 0x47, 0xe7, 0x72, 0xc7, 0xe6, 0xe4}: "IwlTransDriver", efi.GUID{0x5d, 0x96, 0x18, 0x82, 0xc0, 0x20, 0xd6, 0x4d, 0x81, 0xa0, 0x84, 0x5c, 0x52, 0x27, 0x07, 0x43}: "LenovoSetupDateTimeDxe", efi.GUID{0x5d, 0x9d, 0x40, 0x95, 0x41, 0x0a, 0x58, 0x42, 0x8a, 0x99, 0x81, 0x0a, 0x22, 0x12, 0x6b, 0xbe}: "OemSmbios", efi.GUID{0x5d, 0x9d, 0xb7, 0x85, 0xad, 0xea, 0x85, 0x4a, 0xba, 0x28, 0x03, 0xd1, 0x36, 0x2e, 0x66, 0x8d}: "FchI2cMasterPei", efi.GUID{0x5d, 0xaa, 0xa7, 0x52, 0x23, 0x3b, 0x06, 0x4f, 0xff, 0xff, 0xff, 0xff, 0xa9, 0x5d, 0xd8, 0x4e}: "XnoteSetupSecurityDxe", efi.GUID{0x5d, 0xad, 0xa2, 0x44, 0x2c, 0x61, 0xb3, 0x47, 0xb0, 0x6e, 0xc8, 0xf5, 0x0b, 0xfb, 0xf0, 0x7d}: "OpalExtraInfoVariableGuid", efi.GUID{0x5d, 0xaf, 0xfa, 0xf9, 0x48, 0xe8, 0x37, 0x45, 0x8a, 0x75, 0x0e, 0x3b, 0xd2, 0xde, 0xfb, 0x6a}: "UsbOcUpdateDxeXPV", efi.GUID{0x5d, 0xb5, 0x32, 0x9b, 0xd1, 0xd4, 0x29, 0x43, 0xb7, 0x87, 0x5a, 0x02, 0x7b, 0x0a, 0xce, 0x49}: "FjSwitchOnboardLANControllers", efi.GUID{0x5d, 0xbb, 0x0a, 0xbd, 0x9f, 0xa2, 0x01, 0x40, 0xa3, 0xca, 0x98, 0x48, 0x5e, 0xf7, 0xf2, 0x24}: "AcpiSmmPlatform", efi.GUID{0x5d, 0xc0, 0xed, 0xa3, 0x18, 0xb6, 0xf6, 0x4f, 0x95, 0x52, 0x76, 0xd7, 0x88, 0x63, 0x43, 0xc8}: "OvmfLoadedX86LinuxKernelProtocol", efi.GUID{0x5d, 0xc6, 0x06, 0x1b, 0x6e, 0x46, 0xc9, 0x35, 0x15, 0x4d, 0x4d, 0x91, 0xbc, 0x4b, 0x9f, 0x8f}: "AmdPspDtpmPei", efi.GUID{0x5d, 0xca, 0x46, 0xe6, 0x6b, 0x6d, 0x73, 0x47, 0x87, 0x9b, 0x8b, 0x4d, 0xa2, 0x77, 0x5e, 0x09}: "FchImcControl", efi.GUID{0x5d, 0xce, 0xe8, 0x0a, 0x48, 0xe4, 0x37, 0x44, 0xa8, 0xd7, 0xeb, 0xf5, 0xf1, 0x94, 0xf7, 0x31}: "EfiDxeIplPpiGuid", efi.GUID{0x5d, 0xd0, 0xee, 0x23, 0x93, 0x1b, 0x1a, 0x4a, 0x8e, 0x1b, 0x93, 0x1d, 0x69, 0xe3, 0x79, 0x52}: "Omap35xxBoardInterruptDxe", efi.GUID{0x5d, 0xd1, 0xef, 0x08, 0x55, 0xec, 0x23, 0x40, 0xb6, 0x48, 0x7b, 0xa4, 0x0d, 0xf7, 0xd0, 0x5d}: "PeiRamBootPei", efi.GUID{0x5d, 0xd3, 0xc2, 0x0a, 0x77, 0x1c, 0x33, 0x10, 0xa6, 0xf8, 0x7c, 0xa5, 0x5d, 0xf7, 0xd0, 0xaa}: "CpuPolicyPei", efi.GUID{0x5d, 0xd7, 0x7d, 0x83, 0x62, 0x98, 0x68, 0x4e, 0x87, 0xf9, 0x64, 0xf8, 0x55, 0xbb, 0x83, 0xec}: "HpNetworkFeatureByteKillSmm", efi.GUID{0x5d, 0xd8, 0x49, 0x74, 0x1f, 0xc4, 0x4d, 0x47, 0xa3, 0x4b, 0xdf, 0x83, 0x92, 0x41, 0xed, 0x4e}: "DellAnimationDxe", efi.GUID{0x5d, 0xd9, 0x8d, 0x9e, 0x8b, 0x86, 0xa4, 0x41, 0x96, 0x6c, 0x10, 0x73, 0x38, 0xc2, 0x91, 0xbb}: "SmbiosDataUpdateDxeLightningRidgeEXECB2", efi.GUID{0x5d, 0xe1, 0xcb, 0x76, 0x00, 0x3c, 0x97, 0x45, 0x8f, 0x13, 0x62, 0x1d, 0x77, 0xe8, 0x79, 0xe1}: "AmtSaveMebxConfig", efi.GUID{0x5d, 0xf1, 0x33, 0xba, 0x00, 0x40, 0xc1, 0x45, 0x8e, 0x88, 0xf9, 0x16, 0x92, 0xd4, 0x57, 0xe3}: "MpInformationHob", efi.GUID{0x5d, 0xfc, 0x98, 0xd5, 0x01, 0xac, 0x9a, 0x4d, 0x95, 0xb5, 0xa1, 0xd2, 0x42, 0x25, 0x04, 0xa5}: "TouchDriver", efi.GUID{0x5d, 0xfd, 0x67, 0x51, 0xa2, 0xaa, 0xe1, 0x4f, 0x9d, 0x0d, 0x5c, 0xfc, 0xab, 0x36, 0xc1, 0x4c}: "LegacyRegion2OnLegacyRegionThunk", efi.GUID{0x5d, 0xff, 0xfd, 0x22, 0x58, 0xef, 0x45, 0x4e, 0xb5, 0x15, 0xa4, 0x10, 0x67, 0xd5, 0xc8, 0x0b}: "AssetQrCode", efi.GUID{0x5e, 0x0d, 0x27, 0x78, 0x50, 0x94, 0xae, 0x4f, 0x88, 0x18, 0xb9, 0x1e, 0xa3, 0x98, 0x64, 0xcd}: "ChipsetLibServicesSmm", efi.GUID{0x5e, 0x0d, 0x62, 0xcc, 0xcf, 0xfe, 0xd4, 0x49, 0xb5, 0x1b, 0x46, 0x1d, 0x52, 0x49, 0x46, 0x69}: "AutoEcud", efi.GUID{0x5e, 0x0e, 0x2e, 0x7c, 0x35, 0x7c, 0x11, 0x46, 0xbc, 0x93, 0x03, 0x60, 0x13, 0xed, 0xbe, 0x3d}: "AsusWmiAtkDxeSmmCoreBin", efi.GUID{0x5e, 0x0e, 0x90, 0x12, 0x8b, 0xb8, 0x6c, 0x44, 0xae, 0x19, 0x18, 0xa0, 0x85, 0x6b, 0x71, 0x7f}: "SioSmbusAccessDxe", efi.GUID{0x5e, 0x11, 0xab, 0xb2, 0xb6, 0xc8, 0x36, 0x40, 0xbf, 0x31, 0xe7, 0x4b, 0xd8, 0x92, 0x6c, 0xce}: "DxePlatformAmtPolicy", efi.GUID{0x5e, 0x18, 0xda, 0x7a, 0x10, 0x7e, 0x7c, 0x4f, 0xb2, 0xda, 0x26, 0xe9, 0x91, 0x02, 0xc8, 0x8d}: "AmdCpmDiscreteUSB4Dxe", efi.GUID{0x5e, 0x1f, 0x95, 0x22, 0x7b, 0x4f, 0x5b, 0x40, 0x8a, 0xda, 0xec, 0xdc, 0x43, 0x1c, 0x61, 0x6f}: "UefiWindowsInt10Workaround", efi.GUID{0x5e, 0x22, 0xcc, 0x18, 0x99, 0x87, 0x45, 0x49, 0x9f, 0x92, 0xeb, 0xb9, 0x64, 0x23, 0xd6, 0xc1}: "FjGabiFlashCommonGbeRegionCtrlSmm", efi.GUID{0x5e, 0x26, 0x44, 0x11, 0x49, 0xf0, 0xb9, 0x45, 0x87, 0x78, 0x75, 0x2f, 0x12, 0xa1, 0x36, 0x5a}: "IntelTechSetup", efi.GUID{0x5e, 0x27, 0xac, 0x30, 0x30, 0xbb, 0x84, 0x4b, 0xa1, 0xcd, 0x0a, 0xf1, 0x32, 0x2c, 0x89, 0xc0}: "PeiSpeakerInterfacePpiGuid", efi.GUID{0x5e, 0x32, 0xcc, 0x18, 0x99, 0x27, 0x45, 0x45, 0x9f, 0x92, 0xeb, 0xb9, 0xe4, 0x23, 0xd6, 0xc1}: "FjGabiFlashCommonEcRegionCtrlSmm", efi.GUID{0x5e, 0x41, 0x8b, 0x25, 0x8e, 0x3e, 0x82, 0x4b, 0x80, 0x67, 0x9e, 0xfc, 0x79, 0x49, 0xea, 0xc8}: "ResetSystemDxe", efi.GUID{0x5e, 0x41, 0xb6, 0x8d, 0x83, 0x1c, 0x8c, 0x4e, 0xbb, 0x14, 0x55, 0x60, 0xb5, 0x8f, 0xc8, 0x44}: "EmulationEDID", efi.GUID{0x5e, 0x44, 0x23, 0xe9, 0x1e, 0x2e, 0x42, 0x46, 0x8c, 0xb9, 0x23, 0x93, 0x20, 0xaa, 0x41, 0xe8}: "UsbOcUpdateDxeCLX64L", efi.GUID{0x5e, 0x48, 0x10, 0xc8, 0xec, 0xd0, 0x98, 0x4e, 0xaa, 0xb5, 0x12, 0x0c, 0x7e, 0x55, 0x44, 0x28}: "TdtAm", efi.GUID{0x5e, 0x4a, 0x22, 0xf3, 0xa3, 0x17, 0xc2, 0x47, 0xa3, 0x8b, 0x48, 0x14, 0x56, 0x86, 0x3c, 0x74}: "AmiSmmNvramUpdateProtocolGuid", efi.GUID{0x5e, 0x4f, 0xf7, 0x88, 0x98, 0xe9, 0x59, 0x4d, 0x44, 0xd8, 0x22, 0x5f, 0xef, 0x02, 0xfc, 0xe3}: "TiXio2001BridgeConfig", efi.GUID{0x5e, 0x5a, 0x52, 0xaf, 0x3e, 0x18, 0x09, 0x43, 0x9e, 0x49, 0xea, 0x22, 0xcf, 0x41, 0x2e, 0xae}: "MsiBoardECSmm", efi.GUID{0x5e, 0x60, 0xd3, 0x25, 0x2f, 0x52, 0x70, 0x45, 0xa1, 0x97, 0x56, 0xbd, 0xda, 0xcb, 0x5f, 0xed}: "BiosUpdatePlatformPolicyPei", efi.GUID{0x5e, 0x66, 0x89, 0x98, 0xb4, 0xa0, 0x41, 0x43, 0x97, 0x11, 0x2a, 0xb9, 0x82, 0x52, 0xd2, 0x82}: "FjUsbTypecPwrLimitCtrlDxe", efi.GUID{0x5e, 0x67, 0x95, 0xb7, 0x83, 0x75, 0x98, 0x4f, 0xac, 0x6a, 0xf9, 0xdd, 0xbb, 0xcc, 0x32, 0xe8}: "SystemFirmwareManagementRuntimeDxe", efi.GUID{0x5e, 0x6c, 0xe5, 0x70, 0x0c, 0x28, 0xb0, 0x44, 0xa4, 0x97, 0x09, 0x68, 0x1a, 0xbc, 0x37, 0x5e}: "DmiDataGuid", efi.GUID{0x5e, 0x6d, 0x77, 0xfd, 0xb7, 0xa7, 0x1c, 0x4c, 0x89, 0x6f, 0x61, 0x6a, 0xe4, 0x44, 0x43, 0x6c}: "MAPS_SerialPortControlDxe", efi.GUID{0x5e, 0x6d, 0xcb, 0x73, 0xe4, 0x2b, 0x4e, 0x43, 0xad, 0x6b, 0x4d, 0x7f, 0xb8, 0x70, 0x0c, 0x16}: "FjUsbCdcDxe", efi.GUID{0x5e, 0x71, 0x3c, 0x14, 0x03, 0xe9, 0x67, 0x46, 0xbf, 0x15, 0x03, 0xf5, 0xa5, 0x42, 0xf5, 0x8e}: "ClientronShowSystemInfoDxe", efi.GUID{0x5e, 0x79, 0x2b, 0xc9, 0xfc, 0xcd, 0x32, 0x49, 0x91, 0xb5, 0x00, 0xbb, 0xb5, 0xf0, 0xc9, 0x5e}: "FjIbvInterexchangeDataStorageProtocoDxe", efi.GUID{0x5e, 0x79, 0x9f, 0x0a, 0xfc, 0xb9, 0x17, 0x41, 0xbc, 0x4e, 0x13, 0x86, 0x95, 0xd1, 0x65, 0x62}: "AmdSocFp5RvDxe", efi.GUID{0x5e, 0x7a, 0x72, 0xe6, 0xcd, 0xcb, 0xc8, 0x44, 0xb3, 0x7f, 0x78, 0xbc, 0x3a, 0x0c, 0x16, 0xc8}: "X86EmulatorDxe", efi.GUID{0x5e, 0x7b, 0x0a, 0xe9, 0xb2, 0x37, 0xe4, 0x43, 0xb2, 0x81, 0x4c, 0x8e, 0x34, 0x90, 0x45, 0xe9}: "ReFlashSmm", efi.GUID{0x5e, 0x82, 0x85, 0x6a, 0x59, 0xc4, 0x08, 0x41, 0x9b, 0x81, 0x66, 0x02, 0x95, 0x34, 0x68, 0xe4}: "FjGenericItemStorageSmm", efi.GUID{0x5e, 0x85, 0x70, 0xad, 0xc5, 0x0c, 0xbf, 0x4a, 0x89, 0x79, 0xbe, 0x76, 0x2a, 0x94, 0x9e, 0xa3}: "IncompatiblePciDeviceSupport", efi.GUID{0x5e, 0x8c, 0x5e, 0x9f, 0x73, 0x03, 0x08, 0x4a, 0x8d, 0xb5, 0x1f, 0x91, 0x33, 0x16, 0xc5, 0xe4}: "LenovoSecuritySmiDispatchProtocol", efi.GUID{0x5e, 0x8e, 0x2b, 0xce, 0xa9, 0xcf, 0x18, 0x4f, 0x9a, 0xe1, 0xac, 0xea, 0xb6, 0x42, 0x89, 0x2c}: "DellOA30CtrlSmm", efi.GUID{0x5e, 0x8f, 0xd2, 0x4c, 0xbb, 0x4b, 0x02, 0x46, 0xac, 0xb8, 0x74, 0x1b, 0xaa, 0x7e, 0xb3, 0x13}: "AmiTseOemPortingVar19", efi.GUID{0x5e, 0x93, 0xa3, 0x82, 0x18, 0xba, 0x03, 0x47, 0xa7, 0xd7, 0x6d, 0x35, 0x6f, 0xfe, 0x26, 0xba}: "CameraSmm", efi.GUID{0x5e, 0x9e, 0x10, 0x9c, 0x38, 0xbf, 0x78, 0x4a, 0x9c, 0xac, 0x43, 0xde, 0x7e, 0x72, 0x6f, 0x9e}: "AmiMemoryAbsentOverrideGuid", efi.GUID{0x5e, 0xa1, 0xee, 0xde, 0x77, 0x4a, 0x13, 0x45, 0xba, 0x75, 0x71, 0xd2, 0x6f, 0xef, 0x78, 0xa1}: "SmmIoLibSmmCpuIo2", efi.GUID{0x5e, 0xad, 0x05, 0x14, 0xed, 0x5b, 0xe3, 0x11, 0x86, 0x6a, 0x04, 0x7d, 0x7b, 0x99, 0xe0, 0x97}: "Slp20ServiceDxe", efi.GUID{0x5e, 0xb0, 0xb5, 0xe3, 0xb9, 0xe4, 0xd1, 0x4e, 0xbf, 0x0f, 0x36, 0xd4, 0xca, 0x7f, 0xe3, 0x65}: "MulitBoardPei", efi.GUID{0x5e, 0xc2, 0xe7, 0x1c, 0xe0, 0x02, 0xb8, 0x4c, 0x94, 0x10, 0x76, 0x6e, 0xee, 0x8b, 0x8a, 0x97}: "FjMfgTpmDxe", efi.GUID{0x5e, 0xc5, 0xad, 0x83, 0xe1, 0x24, 0x1a, 0x47, 0xbf, 0x47, 0x27, 0x2f, 0x49, 0xcd, 0x8f, 0x9a}: "FjGabiFlashCoreDxe", efi.GUID{0x5e, 0xcc, 0x0a, 0x8c, 0xc1, 0x28, 0x99, 0x45, 0x82, 0x38, 0x95, 0x58, 0xa9, 0xd7, 0xa4, 0x28}: "UsbTypeCPowerLimitPei", efi.GUID{0x5e, 0xd2, 0xd6, 0xf7, 0x43, 0x62, 0x5c, 0x4d, 0x9b, 0xa5, 0xc2, 0xdc, 0x48, 0xf0, 0x03, 0xb0}: "AmiFlashLibPei", efi.GUID{0x5e, 0xdc, 0x4b, 0xd3, 0x8a, 0x96, 0xf5, 0x40, 0xa4, 0x8c, 0xe5, 0x94, 0xf4, 0x5a, 0xe2, 0x11}: "VariableAuthSmm", efi.GUID{0x5e, 0xe0, 0x5d, 0x4b, 0xf4, 0x16, 0xed, 0x11, 0x86, 0x1d, 0x02, 0x42, 0xac, 0x12, 0x00, 0x03}: "EcFmpCapsuleDxe", efi.GUID{0x5e, 0xe2, 0xfa, 0x71, 0x27, 0x44, 0x48, 0x4c, 0xb7, 0x07, 0xfc, 0x5b, 0xf2, 0xf6, 0x74, 0x2e}: "RTKUndiDxe", efi.GUID{0x5e, 0xe3, 0x55, 0x17, 0x29, 0x3b, 0x3a, 0x4f, 0xad, 0x20, 0x80, 0x78, 0x81, 0x59, 0xda, 0x1f}: "LEMPasswordStoreProtocolSmm", efi.GUID{0x5e, 0xed, 0xb2, 0xc8, 0x0c, 0xb8, 0x09, 0x4c, 0xa3, 0x15, 0x3a, 0x53, 0xd2, 0x62, 0x5e, 0x1a}: "HpPlatformDxeServices", efi.GUID{0x5e, 0xef, 0x47, 0xb8, 0xb0, 0xa5, 0xdf, 0x45, 0xbe, 0xcd, 0x06, 0xca, 0x11, 0x3f, 0xbf, 0x7b}: "LanDriver", efi.GUID{0x5e, 0xef, 0x54, 0x25, 0xca, 0xc9, 0x48, 0x4a, 0x9d, 0x94, 0x24, 0x9e, 0xb1, 0xe8, 0x7c, 0x2d}: "LenovoCryptService", efi.GUID{0x5e, 0xfc, 0x0d, 0x5c, 0xcb, 0xb4, 0x84, 0x44, 0xb7, 0x68, 0x26, 0x0d, 0x71, 0x84, 0xfb, 0x58}: "AmdCcxZen4Smm", efi.GUID{0x5f, 0x04, 0x72, 0x65, 0xbf, 0xb1, 0x8e, 0x45, 0xbc, 0x02, 0x70, 0x67, 0x62, 0xc6, 0x09, 0xae}: "EfiHeciSmmRuntimeProtocolGuid", efi.GUID{0x5f, 0x0c, 0x4c, 0x83, 0xb3, 0xad, 0x72, 0x43, 0xae, 0xeb, 0x03, 0xe4, 0xe9, 0xe6, 0xc5, 0x91}: "IntelFspPkgTokenSpaceGuid", efi.GUID{0x5f, 0x0e, 0x32, 0xb5, 0x75, 0x08, 0xbc, 0x42, 0xa5, 0xb7, 0x15, 0xaf, 0x36, 0xce, 0x87, 0xcf}: "TcgDmarDxe", efi.GUID{0x5f, 0x19, 0x99, 0xc5, 0x5b, 0x9b, 0x10, 0x49, 0x93, 0x10, 0xa6, 0x10, 0x3f, 0x5e, 0xd3, 0xf6}: "POSTWarningDxe", efi.GUID{0x5f, 0x1e, 0xc7, 0x22, 0x2b, 0xb3, 0xe0, 0x44, 0xb7, 0x05, 0xb1, 0xad, 0xcf, 0xe7, 0x0c, 0x0c}: "SureStartPoliciesPei", efi.GUID{0x5f, 0x1f, 0x17, 0x5f, 0x85, 0x83, 0x86, 0x40, 0xa6, 0x9b, 0x1f, 0xcf, 0x06, 0xae, 0x4a, 0x3d}: "AmiOsPpiConfirmationOverrideGuid", efi.GUID{0x5f, 0x1f, 0x7b, 0x06, 0x26, 0xcf, 0xc5, 0x44, 0x85, 0x54, 0x93, 0xd7, 0x77, 0x91, 0x2d, 0x42}: "ConfidentialComputingSevSnpBlob", efi.GUID{0x5f, 0x25, 0xfc, 0x3d, 0x86, 0x9c, 0xbc, 0x48, 0x97, 0x2d, 0xe5, 0x22, 0x53, 0x37, 0x68, 0xdb}: "LenovoRebootCp", efi.GUID{0x5f, 0x29, 0xb9, 0xb6, 0xbf, 0xca, 0xec, 0x4c, 0xbb, 0x14, 0xfe, 0x42, 0x46, 0xf2, 0x17, 0x3a}: "iFfsDxe", efi.GUID{0x5f, 0x31, 0xeb, 0xcd, 0xd9, 0xc5, 0xf1, 0x40, 0x23, 0x14, 0x60, 0xcb, 0x26, 0x26, 0x2e, 0x4f}: "UefiSwitchMonitorDxe", efi.GUID{0x5f, 0x39, 0x8a, 0x6a, 0x07, 0x4c, 0xd1, 0x49, 0xb9, 0x4c, 0x22, 0xed, 0x50, 0xd4, 0x25, 0xf8}: "LenovoSecureKeyDxe", efi.GUID{0x5f, 0x3f, 0x8b, 0x79, 0xfe, 0xf5, 0xe7, 0x4a, 0x9e, 0x85, 0xd7, 0x16, 0x13, 0xd8, 0xcf, 0xfc}: "KEMaEAPI", efi.GUID{0x5f, 0x42, 0x4b, 0xc5, 0x79, 0xaa, 0xb4, 0x48, 0x98, 0x1f, 0x99, 0x8b, 0x3c, 0x4b, 0x64, 0x1c}: "TrEEConfigFormSetGuid", efi.GUID{0x5f, 0x42, 0xc0, 0xad, 0x54, 0xe9, 0x9c, 0x45, 0xba, 0xa4, 0x60, 0xfe, 0xd1, 0xc1, 0x16, 0x2a}: "VariableBackupRestoreDxe", efi.GUID{0x5f, 0x43, 0xd8, 0x85, 0x03, 0xa6, 0xad, 0x4d, 0xa2, 0x85, 0x72, 0x30, 0xd8, 0x4f, 0x9f, 0x69}: "AcerDiagnosticLogDxe", efi.GUID{0x5f, 0x44, 0x3a, 0x57, 0xb6, 0x4f, 0xd3, 0xc2, 0x2c, 0xc0, 0x5b, 0x9c, 0x77, 0x2c, 0xfb, 0x94}: "AmdRasSspApeiDxe", efi.GUID{0x5f, 0x46, 0x90, 0xd2, 0xb5, 0x16, 0x79, 0x45, 0xa7, 0x0b, 0xca, 0x1d, 0xf4, 0xfc, 0xe8, 0xdf}: "SDGlobalNVS", efi.GUID{0x5f, 0x48, 0x02, 0xf0, 0xb6, 0xb0, 0x3a, 0x4c, 0x9e, 0x7b, 0x54, 0xfa, 0xbd, 0x83, 0x07, 0x4d}: "EfiPlatformTypeLightningRidgeExecB2Protocol", efi.GUID{0x5f, 0x4b, 0x27, 0xac, 0x79, 0x4d, 0xd1, 0x48, 0x96, 0xdf, 0xfe, 0xe3, 0x54, 0xcf, 0x70, 0x83}: "EfiSerialPortTokenSpace", efi.GUID{0x5f, 0x5d, 0x0e, 0x76, 0xd3, 0x9a, 0x55, 0x40, 0xb4, 0xc9, 0x2f, 0x9f, 0x6e, 0x29, 0xcc, 0x2f}: "BiosLockDxe", efi.GUID{0x5f, 0x64, 0x1e, 0x0b, 0x5c, 0x5e, 0xa1, 0x48, 0xff, 0xff, 0xff, 0xff, 0x58, 0x04, 0xe7, 0x47}: "XnotePlatformResetRuntimeDxe", efi.GUID{0x5f, 0x71, 0x46, 0x2a, 0x81, 0x35, 0x55, 0x4a, 0x8e, 0x73, 0x2b, 0x76, 0x9a, 0xaa, 0x30, 0xc5}: "RamDiskFormSetGuid", efi.GUID{0x5f, 0x76, 0x0d, 0x18, 0x89, 0xc4, 0x7a, 0x4f, 0x8a, 0x3f, 0x59, 0x60, 0x18, 0x49, 0x9e, 0xaf}: "DTbtDxe", efi.GUID{0x5f, 0x78, 0x0b, 0x5a, 0xcd, 0xc5, 0x05, 0x49, 0x92, 0x74, 0x86, 0x87, 0x37, 0xa5, 0x93, 0x88}: "IrstRemap", efi.GUID{0x5f, 0x83, 0x0d, 0x1c, 0xc5, 0xc0, 0x48, 0x48, 0xb4, 0x2b, 0x95, 0xfe, 0xdb, 0xcc, 0x81, 0x5c}: "GnbBristolRouting", efi.GUID{0x5f, 0x83, 0x67, 0x00, 0x50, 0x9a, 0x3a, 0x43, 0x8c, 0xbb, 0x85, 0x20, 0x78, 0x19, 0x78, 0x14}: "EfiCpuCsrAccess", efi.GUID{0x5f, 0x94, 0x3c, 0x28, 0xf5, 0x3f, 0x88, 0x45, 0xad, 0x80, 0x86, 0xe8, 0x70, 0x8b, 0x94, 0x2c}: "DellSimulatedECPei", efi.GUID{0x5f, 0x96, 0xe8, 0x97, 0x61, 0xc7, 0x48, 0x4f, 0xb6, 0xe4, 0x9f, 0xfa, 0x9c, 0xb2, 0xa2, 0xd6}: "AmiDeploymentModeNvGuid", efi.GUID{0x5f, 0x98, 0xdb, 0xa8, 0x2c, 0xcb, 0x22, 0x48, 0xb8, 0xb1, 0x1c, 0x8e, 0x48, 0x12, 0x3f, 0xa5}: "FjGabiPasswordHandlerSmm", efi.GUID{0x5f, 0xa3, 0xb4, 0x2a, 0xaf, 0xc2, 0xcd, 0xab, 0xa2, 0x2b, 0x4a, 0xd3, 0xc5, 0x8b, 0x79, 0x60}: "LogDataDxe", efi.GUID{0x5f, 0xa4, 0xe5, 0xa0, 0x74, 0x53, 0xb3, 0x46, 0xb5, 0x1e, 0xd3, 0x10, 0xb2, 0xc4, 0x8a, 0xae}: "ProjectOwnPeiProtocol", efi.GUID{0x5f, 0xae, 0xfb, 0x48, 0xac, 0x09, 0xda, 0x4b, 0xaf, 0xd8, 0xb3, 0x08, 0x84, 0xb2, 0x42, 0x2a}: "AfterG3Init", efi.GUID{0x5f, 0xba, 0x43, 0x2a, 0x29, 0xac, 0xdc, 0x4f, 0x8a, 0x3b, 0x03, 0x28, 0xd0, 0x25, 0x6f, 0x8c}: "SocketDxe", efi.GUID{0x5f, 0xbb, 0x61, 0xfe, 0x67, 0x1b, 0x24, 0x4c, 0xb3, 0x46, 0x73, 0xdb, 0x42, 0xe8, 0x73, 0xe5}: "ArmHwDxe", efi.GUID{0x5f, 0xbe, 0x1f, 0x31, 0x5a, 0x65, 0x22, 0x4d, 0x82, 0x8d, 0x37, 0x32, 0x61, 0xc4, 0xc0, 0x6e}: "WakeOnLanPortingDxe", efi.GUID{0x5f, 0xbe, 0xae, 0x2a, 0x22, 0xbd, 0x05, 0x4e, 0xb7, 0x14, 0x1b, 0x2b, 0x23, 0x38, 0xcd, 0x6a}: "RecoveryControl", efi.GUID{0x5f, 0xc2, 0x5b, 0xc4, 0x37, 0x39, 0xc4, 0x4f, 0xac, 0x79, 0xbb, 0xe8, 0xbd, 0x3e, 0x5f, 0x97}: "AdlinkBSCSmm", efi.GUID{0x5f, 0xc4, 0x06, 0x68, 0xc4, 0x13, 0x74, 0x42, 0xb8, 0xa3, 0x05, 0x5e, 0xf6, 0x41, 0xa0, 0x60}: "DxeFileExplorerProtocol", efi.GUID{0x5f, 0xcc, 0x46, 0xbc, 0xf2, 0x13, 0xcf, 0x44, 0xa5, 0x98, 0xcc, 0xa3, 0x44, 0x4d, 0x4e, 0x2b}: "GpioExpanderPei", efi.GUID{0x5f, 0xda, 0x17, 0x47, 0x44, 0xe5, 0x15, 0x4b, 0x8d, 0x27, 0xba, 0xcc, 0x29, 0x2a, 0x83, 0x2f}: "AmdSocFp6CznPei", efi.GUID{0x5f, 0xde, 0xaf, 0x67, 0x16, 0xef, 0xb8, 0x47, 0xba, 0x19, 0xc2, 0x1b, 0x39, 0x07, 0xdb, 0xf1}: "MiscGaIoSmm", efi.GUID{0x5f, 0xe6, 0xad, 0x11, 0x6b, 0x95, 0x0e, 0x4d, 0xb3, 0x68, 0x86, 0xdb, 0xc9, 0x2f, 0x01, 0xaa}: "VariableSmiInt15Dxe", efi.GUID{0x5f, 0xee, 0xe4, 0xd5, 0x0a, 0x3e, 0x3c, 0x45, 0xa7, 0x25, 0xb6, 0x92, 0xbb, 0x06, 0x36, 0x5a}: "EfiExtendedSalElogServicesProtocol", efi.GUID{0x5f, 0xf3, 0xef, 0x3e, 0x7c, 0x14, 0xd1, 0x4c, 0xa2, 0x34, 0x92, 0xa0, 0x69, 0x70, 0x0d, 0xb6}: "EfiMemorySetup", efi.GUID{0x5f, 0xf9, 0x83, 0xbb, 0xbc, 0xed, 0x84, 0x48, 0xa5, 0x20, 0xcd, 0x42, 0xaf, 0x38, 0x8f, 0xae}: "BaseDebugLibSerialPort", efi.GUID{0x5f, 0xfc, 0x07, 0x48, 0xf5, 0xcb, 0x4a, 0x42, 0x86, 0x9f, 0xa6, 0x3a, 0x13, 0x37, 0x35, 0xbc}: "CvpCore", efi.GUID{0x60, 0x00, 0xaf, 0x17, 0x8c, 0xa9, 0x03, 0x4a, 0x90, 0xad, 0x6a, 0xbe, 0xd7, 0x50, 0x45, 0xbd}: "CbsBaseDxeRV", efi.GUID{0x60, 0x0a, 0xc6, 0xa8, 0x50, 0xa9, 0xcb, 0x48, 0xa6, 0x12, 0x7f, 0xa7, 0x32, 0xdf, 0x72, 0x43}: "OemRuntime", efi.GUID{0x60, 0x0a, 0xd8, 0x0c, 0xd9, 0x46, 0xb3, 0x48, 0xa8, 0xb9, 0x61, 0xe5, 0x59, 0x8a, 0xb0, 0x54}: "MultiPdtDxe", efi.GUID{0x60, 0x0d, 0x50, 0xdf, 0xd2, 0xfa, 0x84, 0x08, 0xf5, 0xd6, 0x52, 0xd8, 0xb0, 0x82, 0x86, 0x8f}: "WtSetCoreNumAndSmtDxe", efi.GUID{0x60, 0x1c, 0x84, 0x2f, 0x1f, 0x1b, 0x07, 0x40, 0xbe, 0x6d, 0x75, 0x3c, 0xcb, 0xe0, 0x57, 0x40}: "ODMSMBIOSTypeCASmm", efi.GUID{0x60, 0x1d, 0x5c, 0xa9, 0x9f, 0xcb, 0xd8, 0x4b, 0xa0, 0x30, 0x3f, 0x1c, 0x4a, 0x18, 0x51, 0x56}: "SecureBootMod", efi.GUID{0x60, 0x20, 0xbe, 0xb1, 0xf0, 0x4e, 0xed, 0x49, 0xad, 0x8a, 0x2f, 0x72, 0x30, 0x57, 0x30, 0x34}: "OEMIp3ECPei", efi.GUID{0x60, 0x29, 0xbd, 0x1f, 0x30, 0x41, 0xe5, 0x41, 0x94, 0xac, 0xd2, 0xcf, 0x03, 0x7f, 0xb3, 0x7c}: "EfiAdapterInfoNetworkBootGuid", efi.GUID{0x60, 0x2b, 0xdc, 0x22, 0x40, 0xfe, 0xac, 0x42, 0xb0, 0x1f, 0x3a, 0xb1, 0xfa, 0xd9, 0xaa, 0xd8}: "EmuVariableFvbRuntimeDxe", efi.GUID{0x60, 0x2d, 0xef, 0x4e, 0x00, 0x0e, 0xde, 0x11, 0x8c, 0x30, 0x08, 0x00, 0x20, 0x0c, 0x9a, 0x66}: "SataController", efi.GUID{0x60, 0x37, 0x13, 0x7f, 0xa0, 0x9c, 0x4f, 0x4d, 0xa2, 0x01, 0x03, 0x8a, 0xb9, 0x55, 0xb1, 0xb5}: "SetSystemState", efi.GUID{0x60, 0x3f, 0x5d, 0x66, 0x3e, 0xad, 0xad, 0x4c, 0x8e, 0x26, 0xdb, 0x46, 0xee, 0xe9, 0xf1, 0xb5}: "RnRConfig", efi.GUID{0x60, 0x41, 0xa8, 0x2e, 0xa0, 0xab, 0xdf, 0x11, 0x98, 0x96, 0x00, 0x02, 0xa5, 0xd5, 0xc5, 0x1b}: "PL301Axi", efi.GUID{0x60, 0x41, 0xad, 0x1b, 0x02, 0xce, 0xdd, 0x4b, 0x9d, 0x04, 0xdc, 0xf7, 0xd7, 0xb7, 0x2e, 0x0f}: "IioErrorHandler", efi.GUID{0x60, 0x4b, 0x79, 0xf3, 0x85, 0x89, 0xdb, 0x11, 0x8e, 0x53, 0x00, 0x40, 0xd0, 0x2b, 0x18, 0x35}: "Cpu", efi.GUID{0x60, 0x4b, 0xaa, 0xdc, 0x8f, 0x40, 0xad, 0x4b, 0x99, 0xb9, 0xb8, 0x80, 0xd4, 0xef, 0x09, 0x50}: "Tdt", efi.GUID{0x60, 0x52, 0xce, 0xee, 0x1f, 0x9e, 0x74, 0x4f, 0x9d, 0xbb, 0x50, 0x82, 0x57, 0xcb, 0xaa, 0xd1}: "LifeCycleState", efi.GUID{0x60, 0x5a, 0x4b, 0xf8, 0xf6, 0x67, 0x5c, 0x41, 0x9f, 0x6f, 0x2f, 0xd9, 0x4f, 0xc1, 0x9b, 0x12}: "DellChassisConfigPei", efi.GUID{0x60, 0x5c, 0x33, 0x11, 0x18, 0x26, 0xf4, 0x4a, 0xaf, 0x9f, 0x15, 0xbd, 0x35, 0xd0, 0x57, 0x7b}: "FjLidSmm", efi.GUID{0x60, 0x67, 0x1d, 0x22, 0xc0, 0x4a, 0x12, 0x4c, 0xba, 0x96, 0x9c, 0x63, 0xe4, 0xd9, 0xc1, 0xc8}: "HwmInitPei", efi.GUID{0x60, 0x68, 0x0d, 0x3c, 0x96, 0x73, 0x8a, 0x48, 0xbf, 0x52, 0x2d, 0x86, 0x47, 0xd3, 0x5b, 0x28}: "MeOptionsSmm", efi.GUID{0x60, 0x6b, 0x5e, 0xb0, 0x3f, 0x32, 0xcf, 0x4b, 0x9a, 0x2b, 0x5d, 0xbf, 0xb0, 0x73, 0x01, 0xef}: "AmdNbioEarlyPhaseRNPei", efi.GUID{0x60, 0x6f, 0xdc, 0xa9, 0x61, 0xf8, 0xd1, 0x47, 0x87, 0x51, 0xec, 0xaa, 0xe7, 0xd2, 0x72, 0x91}: "LibMath", efi.GUID{0x60, 0x73, 0xac, 0x5f, 0xf2, 0xd4, 0x9e, 0x4c, 0xa7, 0xed, 0xf2, 0x59, 0x5e, 0x67, 0x08, 0x89}: "SctIsaHcProtocolGuid", efi.GUID{0x60, 0x8b, 0x1a, 0x9d, 0xb0, 0x6c, 0xde, 0x11, 0x8e, 0x91, 0x00, 0x02, 0xa5, 0xd5, 0xc5, 0x1b}: "ThunderboltNhiDxe", efi.GUID{0x60, 0x97, 0x7e, 0x08, 0xb5, 0x1f, 0xf7, 0x49, 0x87, 0x9a, 0x85, 0x3d, 0x2b, 0x21, 0x4c, 0xc7}: "LenovoSlp2Dxe", efi.GUID{0x60, 0xa8, 0x33, 0x23, 0x28, 0xa2, 0x2e, 0x46, 0x81, 0x21, 0x7b, 0x49, 0x89, 0x5c, 0x11, 0xc5}: "ASRockSIDxe", efi.GUID{0x60, 0xa9, 0x91, 0x73, 0xd1, 0xcc, 0xdd, 0x11, 0xad, 0x8b, 0x08, 0x00, 0x20, 0x0c, 0x9a, 0x66}: "LenovoSystemIdeAtaAtapiPassThruSmm", efi.GUID{0x60, 0xab, 0xe2, 0x1d, 0x98, 0xeb, 0x6b, 0x4d, 0x9d, 0xce, 0xa7, 0xef, 0x22, 0x02, 0xb3, 0xae}: "AmdAgesaParameterGroupPei", efi.GUID{0x60, 0xaf, 0x69, 0x51, 0x5a, 0x8c, 0x43, 0x42, 0xb3, 0xe9, 0x56, 0xc5, 0x6d, 0x18, 0xee, 0x26}: "SmmIpmiProtocolGuid", efi.GUID{0x60, 0xb1, 0x92, 0x76, 0x91, 0x35, 0xaa, 0x47, 0xbd, 0xee, 0x65, 0x52, 0x97, 0x66, 0x2e, 0x76}: "UefiDMBMHooKInt13Protocol", efi.GUID{0x60, 0xb5, 0xff, 0x4e, 0x8b, 0xb2, 0x57, 0x4e, 0x9d, 0xad, 0x43, 0x44, 0xe3, 0x2e, 0xa3, 0xba}: "MiscSubclass", efi.GUID{0x60, 0xc3, 0xd4, 0xb9, 0xfb, 0xbc, 0x9b, 0x4f, 0x92, 0x98, 0x53, 0xc1, 0x36, 0x98, 0x22, 0x58}: "EfiFormBrowser2ProtocolGuid", efi.GUID{0x60, 0xcb, 0x92, 0x6c, 0xc1, 0x08, 0x49, 0x41, 0xbf, 0x94, 0x60, 0xb7, 0xc5, 0x20, 0x60, 0x11}: "MAPS_WatchDogTimerDXE", efi.GUID{0x60, 0xd4, 0xca, 0xbc, 0x7d, 0x4f, 0x51, 0x4e, 0x8a, 0x5d, 0x3b, 0xba, 0x23, 0x6d, 0x9e, 0xbb}: "AppleBootBeep", efi.GUID{0x60, 0xd7, 0xce, 0xa7, 0x1c, 0xc7, 0x1a, 0x4e, 0xac, 0xb1, 0x89, 0x60, 0x4d, 0x52, 0x16, 0xcb}: "EfiIioUdsProtocolGuid", efi.GUID{0x60, 0xde, 0xd7, 0x6b, 0xf7, 0x9e, 0x99, 0x48, 0x97, 0xd0, 0xab, 0xff, 0xfd, 0xe9, 0x70, 0xf2}: "EfiCryptoPkgTokenSpace", efi.GUID{0x60, 0xdf, 0x8b, 0x4c, 0x85, 0x20, 0x77, 0x45, 0x8a, 0x46, 0x96, 0xcb, 0x18, 0x09, 0x67, 0xbc}: "Tpm20Acpi", efi.GUID{0x60, 0xe0, 0xfd, 0xbd, 0x41, 0x7e, 0xae, 0x4e, 0xad, 0x9b, 0xe5, 0xbb, 0xa7, 0xa4, 0x8a, 0x3a}: "EfiDevicePathPropertyDatabase", efi.GUID{0x60, 0xe8, 0x24, 0x7e, 0x2c, 0xa6, 0x12, 0x43, 0x82, 0xf2, 0xe7, 0xb5, 0x8d, 0x05, 0x37, 0xc9}: "SceBootOrderSaveRestore", efi.GUID{0x60, 0xf0, 0x1f, 0xb3, 0x63, 0x83, 0xdf, 0x11, 0x83, 0x95, 0x08, 0x00, 0x20, 0x0c, 0x9a, 0x66}: "SystemAhciBusSmm", efi.GUID{0x60, 0xfc, 0x72, 0x2b, 0x4f, 0x6d, 0xd5, 0x42, 0x8f, 0xf0, 0xab, 0xef, 0xd5, 0xcd, 0xf8, 0x59}: "HDCPSwSmi", efi.GUID{0x61, 0x00, 0x71, 0x3e, 0x7a, 0x64, 0x03, 0x4c, 0xbe, 0x85, 0xfa, 0xd6, 0xcc, 0xfa, 0x5a, 0x18}: "PcPassword", efi.GUID{0x61, 0x08, 0xb3, 0x7f, 0x41, 0x89, 0x48, 0x47, 0x95, 0x3a, 0x2c, 0x59, 0xd9, 0x3f, 0x91, 0x71}: "BiosConnectUiManager", efi.GUID{0x61, 0x14, 0x72, 0xd3, 0x24, 0xfc, 0x3e, 0x44, 0xb4, 0x86, 0x72, 0x4c, 0x9b, 0x5a, 0x2f, 0x70}: "MemTestDxe", efi.GUID{0x61, 0x35, 0x1c, 0xdb, 0x9e, 0x4f, 0x48, 0x47, 0xa8, 0x07, 0xbc, 0xbe, 0x7f, 0xa9, 0x2f, 0xc9}: "EzConfig", efi.GUID{0x61, 0x40, 0x8a, 0x2b, 0x31, 0x91, 0x2a, 0x4d, 0xa2, 0x0b, 0xd8, 0x45, 0xd0, 0xeb, 0x1d, 0x83}: "Smbrun", efi.GUID{0x61, 0x41, 0x81, 0x0a, 0x67, 0xde, 0xe7, 0x46, 0xa8, 0x13, 0xb7, 0xf8, 0xf4, 0x89, 0xaf, 0xcd}: "UpdateSmbios", efi.GUID{0x61, 0x43, 0xda, 0x84, 0x8a, 0xee, 0x69, 0x47, 0x93, 0x68, 0x4f, 0x28, 0xa1, 0xc9, 0x20, 0x32}: "EfiBxtTokenSpaceGuid", efi.GUID{0x61, 0x4c, 0xe4, 0x7e, 0xda, 0xad, 0x27, 0x4d, 0xa4, 0xa3, 0xa5, 0x61, 0x5c, 0x16, 0xc6, 0x44}: "MemoryInit", efi.GUID{0x61, 0x50, 0xdd, 0xea, 0xef, 0x93, 0xcc, 0x4c, 0x84, 0x50, 0xf7, 0x8a, 0x7f, 0x08, 0x20, 0xf0}: "Tcg2ConfigPei", efi.GUID{0x61, 0x53, 0xb3, 0x58, 0x22, 0x89, 0xbc, 0x41, 0xb3, 0x13, 0xef, 0x7e, 0xd9, 0xad, 0xfd, 0xf7}: "SecMigrationPei", efi.GUID{0x61, 0x5d, 0x80, 0x46, 0xb8, 0x0b, 0x80, 0x46, 0xa9, 0xbe, 0xc9, 0x6c, 0x75, 0x1a, 0xb5, 0xa4}: "BaseIpmiLibNull", efi.GUID{0x61, 0x61, 0xd9, 0xfd, 0x65, 0x9e, 0x2b, 0x48, 0xb7, 0xbe, 0x4b, 0x2f, 0x40, 0x97, 0x44, 0x15}: "FjBootOptionDxe", efi.GUID{0x61, 0x65, 0x18, 0xb4, 0x67, 0x89, 0x13, 0x41, 0xbc, 0x5f, 0x28, 0x4b, 0x76, 0x70, 0xc4, 0xa0}: "DellDxeDelay", efi.GUID{0x61, 0x6e, 0xf3, 0xcb, 0xd3, 0x59, 0xe8, 0x11, 0x85, 0x18, 0xb0, 0x5a, 0xda, 0xeb, 0x78, 0x86}: "NvdimmLostPassphraserecoveryDxe", efi.GUID{0x61, 0x87, 0x19, 0x5c, 0xa8, 0x16, 0x69, 0x4e, 0x97, 0x2c, 0x89, 0xd6, 0x79, 0x54, 0xf8, 0x1d}: "EfiDriverSupportedEfiVersionProtocolGuid", efi.GUID{0x61, 0x8e, 0x1b, 0x2e, 0x16, 0x9d, 0x6b, 0x46, 0xa8, 0x02, 0x3b, 0x1e, 0x92, 0xea, 0x95, 0xec}: "CbsSetupDxeSTP", efi.GUID{0x61, 0x91, 0x65, 0xcb, 0x80, 0xb7, 0x06, 0x49, 0x91, 0x4a, 0xdb, 0x57, 0xd1, 0xdd, 0x54, 0x4a}: "EupControl", efi.GUID{0x61, 0x9a, 0xb2, 0x98, 0x7f, 0x82, 0x28, 0x4a, 0xb1, 0xae, 0x3b, 0x00, 0xa9, 0x78, 0x53, 0x7e}: "OemPeiSetSetupItemPcd", efi.GUID{0x61, 0x9d, 0x37, 0x7a, 0x84, 0x07, 0xdc, 0x40, 0xb2, 0x8e, 0xe9, 0x60, 0x07, 0xcf, 0x30, 0xf1}: "LegacyUsbSmm", efi.GUID{0x61, 0xa7, 0x99, 0xf7, 0xc3, 0x2f, 0x40, 0x42, 0x92, 0xf1, 0xfe, 0x45, 0x7d, 0xc2, 0xfb, 0xbd}: "SpdPlatformInfoSmm", efi.GUID{0x61, 0xab, 0x2e, 0xec, 0xb5, 0xef, 0x80, 0x4a, 0x83, 0x91, 0x87, 0x79, 0xc1, 0xc2, 0x50, 0x7a}: "PlatformSecureBiosSmm", efi.GUID{0x61, 0xaf, 0x89, 0x2e, 0x76, 0x6e, 0xe6, 0x42, 0x8f, 0x3e, 0xbc, 0xee, 0x83, 0xc9, 0x52, 0x6e}: "H19ServiceBodySmm", efi.GUID{0x61, 0xbd, 0x59, 0x97, 0x1e, 0xf1, 0xee, 0x4f, 0x90, 0x04, 0x1e, 0x8c, 0x88, 0xe7, 0x22, 0x23}: "gear10", efi.GUID{0x61, 0xca, 0xe9, 0x96, 0x2e, 0x6c, 0xf3, 0x4f, 0xb2, 0x65, 0xf2, 0x19, 0x04, 0xc4, 0x41, 0x81}: "CbsSetupSmmSTP", efi.GUID{0x61, 0xdd, 0x51, 0x99, 0xa0, 0x4e, 0x47, 0x4d, 0xf5, 0x40, 0x40, 0xb4, 0xe4, 0x45, 0x35, 0x07}: "DellTouchPadHid", efi.GUID{0x61, 0xdf, 0xe4, 0x8b, 0xca, 0x93, 0xd2, 0x11, 0xaa, 0x0d, 0x00, 0xe0, 0x98, 0x03, 0x2b, 0x8c}: "EfiGlobalVariableGuid", efi.GUID{0x61, 0xe7, 0xc5, 0x15, 0xd8, 0x58, 0x1a, 0x46, 0x91, 0x73, 0xca, 0xb0, 0x20, 0x91, 0x62, 0x64}: "VAminiPort", efi.GUID{0x61, 0xea, 0xa9, 0x71, 0x35, 0x5a, 0x5d, 0x4a, 0xac, 0xef, 0x9c, 0xf8, 0x6d, 0x6d, 0x67, 0xe0}: "EdkiiPeiCapsuleOnDiskPpi", efi.GUID{0x61, 0xea, 0xbd, 0x96, 0x64, 0xc3, 0x13, 0x45, 0xb6, 0xb3, 0x03, 0x7e, 0x9a, 0xd5, 0x4c, 0xe4}: "SetSsidSvidDxe", efi.GUID{0x61, 0xec, 0x33, 0x24, 0xbe, 0x17, 0x98, 0x4b, 0x89, 0x5c, 0x33, 0x39, 0x50, 0xc6, 0x23, 0x18}: "RtkUndiDxe_2057", efi.GUID{0x61, 0xed, 0x56, 0x64, 0x79, 0x35, 0xc9, 0x41, 0x8a, 0x26, 0x0a, 0x0b, 0xd6, 0x2b, 0x78, 0xfc}: "Ip4IScsiConfigGuid", efi.GUID{0x61, 0xf3, 0x09, 0xf1, 0x0c, 0x37, 0x9c, 0x4d, 0xb1, 0xab, 0x7c, 0xa2, 0xd4, 0xc8, 0xb3, 0xff}: "AmiCpuInfoProtocol", efi.GUID{0x61, 0xf5, 0x53, 0xa0, 0x6b, 0xf5, 0x40, 0x41, 0x89, 0x01, 0xb4, 0xcb, 0x5d, 0x70, 0x92, 0x9e}: "BootScriptThunkGuid", efi.GUID{0x61, 0xf6, 0x9b, 0x4e, 0x91, 0x48, 0xdf, 0xf0, 0x27, 0x18, 0x2e, 0xb4, 0x1e, 0xab, 0x5e, 0x43}: "CpuPowerManagementSmm", efi.GUID{0x61, 0xf7, 0x31, 0xb8, 0xbb, 0xac, 0xb7, 0x49, 0xa5, 0xd4, 0xef, 0x4b, 0x77, 0x50, 0x2a, 0x9e}: "SmbiosDataUpdateDxeBlizzard", efi.GUID{0x61, 0xff, 0x28, 0xee, 0x60, 0xb9, 0xeb, 0x47, 0xb6, 0xba, 0x1f, 0x5e, 0xfb, 0xda, 0xb4, 0x42}: "OemTpmTypeDxe", efi.GUID{0x62, 0x01, 0xd6, 0x0f, 0x35, 0xa2, 0xd3, 0x47, 0xbf, 0x7e, 0x73, 0x5e, 0x02, 0x7d, 0x48, 0xb2}: "AmdFabricRmbSmm", efi.GUID{0x62, 0x13, 0xe1, 0xb0, 0xda, 0x00, 0x11, 0x46, 0x8d, 0x7d, 0x10, 0xef, 0x25, 0x27, 0xf6, 0x53}: "VideoBiosDataBlock", efi.GUID{0x62, 0x17, 0x1b, 0xf8, 0x83, 0xb7, 0x64, 0x4e, 0xaa, 0xe3, 0xbe, 0x61, 0xb5, 0xa9, 0x03, 0x9f}: "AmdNbioBaseCZDxe", efi.GUID{0x62, 0x19, 0xb1, 0x72, 0x59, 0x57, 0x75, 0x49, 0xae, 0x95, 0xf8, 0xc3, 0xfe, 0x55, 0xef, 0x1d}: "PchSmbusSmm", efi.GUID{0x62, 0x1b, 0xff, 0xda, 0x7a, 0xa6, 0x11, 0x4e, 0x8b, 0x57, 0x49, 0x6b, 0x57, 0x2e, 0x07, 0x75}: "SystemLoadDefaultDxe", efi.GUID{0x62, 0x34, 0xcd, 0x81, 0x1a, 0x6a, 0xf8, 0x42, 0x82, 0x9b, 0x8d, 0x77, 0x48, 0x1d, 0xdb, 0x64}: "AmiPciExpressGen2LibNull", efi.GUID{0x62, 0x36, 0xbc, 0xdc, 0xda, 0x9c, 0x52, 0x4b, 0xa0, 0x4c, 0x82, 0xeb, 0x1d, 0x23, 0x48, 0xc7}: "EfiKmsFormatMd5128Guid", efi.GUID{0x62, 0x44, 0xba, 0x95, 0xf0, 0x7e, 0xa3, 0x49, 0x97, 0x02, 0x68, 0x96, 0xc3, 0x9e, 0x41, 0x4c}: "CbsSetupDxePHX", efi.GUID{0x62, 0x48, 0xa3, 0x1a, 0xd3, 0xc1, 0xd1, 0x49, 0x92, 0x81, 0x9f, 0x26, 0x15, 0x45, 0xc0, 0x9c}: "FjSystemDataFvDriverSmm", efi.GUID{0x62, 0x4c, 0x9e, 0x68, 0xbf, 0x70, 0xf3, 0x4c, 0x88, 0xbb, 0x33, 0xb3, 0x18, 0x26, 0x86, 0x70}: "EfiBlockIoCryptoAlgoAesCbcMsBitlockerGuid", efi.GUID{0x62, 0x4d, 0x8c, 0x34, 0xbd, 0xbf, 0x82, 0x48, 0x9e, 0xce, 0xc8, 0x0b, 0xb1, 0xc4, 0x78, 0x3b}: "HiiDatabase", efi.GUID{0x62, 0x4f, 0x14, 0x47, 0x23, 0xb4, 0x24, 0x45, 0xac, 0x6a, 0x90, 0x10, 0x6b, 0xaa, 0x89, 0xfb}: "AmiTpm20MeasureConfigurationInfoGuid", efi.GUID{0x62, 0x4f, 0x58, 0x27, 0x26, 0x1a, 0xba, 0x41, 0x85, 0xbe, 0x74, 0xc0, 0xee, 0xff, 0x46, 0xae}: "LANMacInfoDxe", efi.GUID{0x62, 0x54, 0x34, 0x1f, 0xa5, 0xce, 0xdd, 0x4a, 0x9c, 0x43, 0x5c, 0xa6, 0x72, 0x0b, 0x9d, 0xa6}: "IrqBoardInfoRvp", efi.GUID{0x62, 0x54, 0xee, 0x10, 0x07, 0xb2, 0x4f, 0x4a, 0xab, 0xd8, 0xcb, 0x52, 0x2e, 0xca, 0xa3, 0xa4}: "Udp4Dxe", efi.GUID{0x62, 0x58, 0x9a, 0x36, 0xde, 0x06, 0xc6, 0x49, 0xa2, 0xa5, 0x17, 0xb8, 0xa9, 0x66, 0x49, 0x84}: "TouchPad_Synaptics", efi.GUID{0x62, 0x62, 0xa3, 0x45, 0x0c, 0x66, 0x5e, 0x49, 0xbd, 0xc4, 0x50, 0xa8, 0x52, 0xa4, 0x4a, 0x11}: "MtkSuppDxeGen2", efi.GUID{0x62, 0x62, 0xc7, 0x87, 0xf3, 0xf1, 0x52, 0x44, 0xb8, 0x05, 0x47, 0x43, 0x8a, 0x67, 0x93, 0xa7}: "SgDxePolicyInit", efi.GUID{0x62, 0x64, 0x91, 0x66, 0x93, 0x1f, 0x06, 0x4c, 0xab, 0x1f, 0xf0, 0xf6, 0x35, 0x83, 0xb9, 0x16}: "OemDptf", efi.GUID{0x62, 0x72, 0x84, 0x36, 0xfa, 0x75, 0x54, 0x45, 0xab, 0xab, 0xcc, 0x02, 0xdf, 0x68, 0x45, 0xd7}: "RtkWLanDriver", efi.GUID{0x62, 0x7c, 0x7e, 0xa2, 0x9f, 0x24, 0x7b, 0x4b, 0xbd, 0x5c, 0x80, 0x72, 0x02, 0x03, 0x5d, 0xec}: "DellFlashUpdatePei", efi.GUID{0x62, 0x7e, 0x98, 0x55, 0xf6, 0x1d, 0xd1, 0x41, 0x90, 0x62, 0x33, 0x4f, 0xca, 0xc3, 0xe5, 0x4d}: "GraphicsSplitter", efi.GUID{0x62, 0x7f, 0xdd, 0xe9, 0xec, 0x25, 0x9d, 0x4f, 0xa4, 0xab, 0xaa, 0xd2, 0x0b, 0xf5, 0x9a, 0x10}: "StatusCodePei", efi.GUID{0x62, 0x81, 0x00, 0x40, 0xd0, 0x93, 0xf2, 0x48, 0x80, 0xda, 0x7e, 0x32, 0xf4, 0xc9, 0x8f, 0x8b}: "Udp6Dxe", efi.GUID{0x62, 0x81, 0x8c, 0x3b, 0x8c, 0x18, 0xa4, 0x46, 0xae, 0xc9, 0xbe, 0x43, 0xf1, 0xd6, 0x56, 0x97}: "EfiFwDisplayCapsuleGuid", efi.GUID{0x62, 0x84, 0x76, 0xb2, 0xe4, 0x14, 0x8f, 0x4b, 0xaf, 0xb0, 0xb2, 0x74, 0xb3, 0x67, 0xba, 0xf0}: "LoadSetupDefaultDxe", efi.GUID{0x62, 0x91, 0x18, 0xab, 0xb5, 0x6d, 0xfc, 0x4e, 0xac, 0x59, 0xd0, 0xb3, 0xcc, 0x85, 0x11, 0x19}: "OemEarlyPei", efi.GUID{0x62, 0x91, 0xa7, 0xa6, 0x25, 0xe3, 0x30, 0x4c, 0xbc, 0xc3, 0x59, 0x37, 0x30, 0x64, 0xef, 0xb3}: "EfiTcoResetProtocolGuid", efi.GUID{0x62, 0x93, 0xd0, 0x17, 0x6c, 0x32, 0x20, 0x49, 0xa5, 0x0c, 0x76, 0xf8, 0xa1, 0x16, 0xa0, 0x93}: "SeCPolicyInitDxe", efi.GUID{0x62, 0x98, 0x1e, 0xc4, 0x78, 0xd0, 0x7d, 0x4e, 0x90, 0x62, 0x00, 0xe3, 0xfa, 0xc3, 0x4c, 0x19}: "AsusEcPei", efi.GUID{0x62, 0xa2, 0x22, 0xb1, 0x51, 0x35, 0x48, 0x4f, 0x88, 0x92, 0x55, 0xf6, 0xc0, 0x61, 0x42, 0x90}: "EfiFirmwareClassGuid", efi.GUID{0x62, 0xa6, 0xfd, 0x6a, 0xb0, 0xbf, 0xb8, 0x43, 0x98, 0x48, 0xb6, 0x7d, 0xcd, 0x45, 0x21, 0x57}: "EcdShellApp", efi.GUID{0x62, 0xa9, 0xa3, 0xa6, 0x91, 0xc5, 0x01, 0x47, 0x9d, 0x25, 0x73, 0xd0, 0x22, 0x6d, 0x89, 0xdc}: "PeiRamBootCacheRdy", efi.GUID{0x62, 0xac, 0x7e, 0xa9, 0x1a, 0x6f, 0x05, 0x4b, 0x8c, 0xfb, 0x65, 0xb1, 0xce, 0x7d, 0x6a, 0x3c}: "BiosVideoDxe", efi.GUID{0x62, 0xac, 0xf2, 0xf5, 0x32, 0x62, 0x5c, 0x44, 0xb3, 0x22, 0x59, 0x69, 0xa0, 0x83, 0x98, 0x0c}: "MAPS_SIO_InterfaceDxe", efi.GUID{0x62, 0xae, 0x57, 0x8e, 0xdc, 0x99, 0x12, 0x4f, 0xac, 0xb7, 0x21, 0x6e, 0x2d, 0xd0, 0x31, 0xad}: "DxeCrcInit", efi.GUID{0x62, 0xb1, 0x56, 0x43, 0xb2, 0xd0, 0xe1, 0x11, 0x89, 0x52, 0x44, 0x37, 0xe6, 0xa6, 0x0e, 0xa5}: "Lan9118Dxe", efi.GUID{0x62, 0xb1, 0x98, 0xfd, 0xba, 0x41, 0x9e, 0x4c, 0x98, 0x2e, 0x02, 0x36, 0x99, 0xde, 0x02, 0xf0}: "DellEcPolicy3", efi.GUID{0x62, 0xb2, 0x2b, 0xd5, 0x22, 0xf0, 0xec, 0x49, 0x86, 0xd2, 0x7a, 0x29, 0x3a, 0x7a, 0x05, 0x4b}: "PchAcpiSmiDispatchProtocol", efi.GUID{0x62, 0xb2, 0xf5, 0x31, 0x9e, 0x7d, 0xcc, 0x4f, 0x9b, 0xb8, 0x0e, 0x41, 0x5d, 0x0c, 0xd7, 0x48}: "BFGPei", efi.GUID{0x62, 0xb3, 0x72, 0xcd, 0x6f, 0x8a, 0x99, 0x46, 0xaf, 0x55, 0x03, 0xfd, 0x89, 0x24, 0xc5, 0x06}: "HpRpsuDefaultsAndWmi", efi.GUID{0x62, 0xc1, 0x4c, 0xaf, 0x1c, 0xd4, 0x5a, 0x45, 0xab, 0x45, 0x6d, 0xbc, 0xc1, 0xcd, 0x32, 0xf3}: "LpssDummyProtocolGuid", efi.GUID{0x62, 0xc8, 0x4f, 0xe4, 0xdf, 0x12, 0x4b, 0x4d, 0x95, 0x11, 0x93, 0x80, 0x25, 0x14, 0xaa, 0xf8}: "RomHoleReplacementProtocolSmm", efi.GUID{0x62, 0xc8, 0xdc, 0xd7, 0xa0, 0xa2, 0xda, 0x4c, 0xb1, 0x8e, 0x44, 0x77, 0xd2, 0xfe, 0x49, 0xe3}: "RadioExecSmm", efi.GUID{0x62, 0xcd, 0xe4, 0x9e, 0xa7, 0x7f, 0x83, 0x41, 0x90, 0x12, 0xf6, 0xc4, 0xcf, 0x6e, 0x2c, 0x7d}: "NVBIOSINFO", efi.GUID{0x62, 0xcf, 0xca, 0xe3, 0x62, 0x30, 0x1d, 0x4e, 0x97, 0x8e, 0x46, 0x80, 0x7a, 0xb9, 0x74, 0x7d}: "PlatformConfigChangeGuid", efi.GUID{0x62, 0xd6, 0x21, 0x14, 0xbf, 0x67, 0x23, 0x4a, 0x8b, 0x32, 0x60, 0x7e, 0x1c, 0x9e, 0x3a, 0xee}: "MacAddressPassThroughDxe", efi.GUID{0x62, 0xdd, 0x87, 0xba, 0x60, 0xab, 0xde, 0x46, 0x8f, 0xd8, 0x02, 0x35, 0x10, 0xd5, 0x2d, 0x11}: "gear12", efi.GUID{0x62, 0xdd, 0xaf, 0xb7, 0x29, 0x3e, 0xf9, 0x4f, 0x92, 0x36, 0x3a, 0xab, 0x2a, 0x8c, 0x82, 0xf2}: "AmdSmmControl", efi.GUID{0x62, 0xe9, 0xea, 0xe2, 0x92, 0xc4, 0xa4, 0x4c, 0xa1, 0x1f, 0x1a, 0x7c, 0xbb, 0x05, 0x0a, 0x41}: "English", efi.GUID{0x62, 0xed, 0x63, 0xfc, 0x9d, 0x94, 0xb0, 0x4f, 0xb7, 0x54, 0xd5, 0x58, 0xa6, 0x36, 0x7c, 0x56}: "EzFlashDxe", efi.GUID{0x62, 0xf7, 0xf9, 0x2e, 0x28, 0x43, 0x06, 0x84, 0x2a, 0x59, 0x62, 0xb9, 0x72, 0x9a, 0x60, 0x7b}: "DashUi", efi.GUID{0x62, 0xfe, 0x0a, 0x32, 0x93, 0xe5, 0xcb, 0x49, 0xa9, 0xf1, 0xd4, 0xc2, 0xf4, 0xaf, 0x01, 0x4c}: "EfiS3SmmSaveStateProtocolGuid", efi.GUID{0x63, 0x01, 0xea, 0xab, 0x72, 0xa4, 0x52, 0x41, 0x9a, 0x07, 0x2e, 0x95, 0x4c, 0x23, 0x0f, 0xf5}: "OemPei", efi.GUID{0x63, 0x02, 0x32, 0xba, 0xd4, 0xff, 0xa5, 0x4d, 0xa6, 0x17, 0xd8, 0x32, 0x19, 0x3e, 0x83, 0x5e}: "AmdRasRsServiceSmm", efi.GUID{0x63, 0x13, 0xcc, 0xee, 0x4b, 0x88, 0xe4, 0x4f, 0xa7, 0x63, 0xb3, 0x87, 0x95, 0x1b, 0x6d, 0xdd}: "SbSocMatisseDxe", efi.GUID{0x63, 0x14, 0xcb, 0xab, 0x75, 0x32, 0x96, 0x4b, 0x9c, 0xbb, 0xab, 0xbd, 0xff, 0x4a, 0xed, 0xbe}: "MultiLanguageDxe", efi.GUID{0x63, 0x14, 0xcd, 0x6e, 0x4a, 0x4a, 0x1b, 0x46, 0xaf, 0x5f, 0x5a, 0x33, 0xe3, 0xb2, 0x16, 0x2b}: "EfiPeiGraphicsPpiGuid", efi.GUID{0x63, 0x14, 0xea, 0x63, 0xfa, 0xfb, 0x8a, 0x42, 0xb9, 0x7f, 0xe2, 0x22, 0x75, 0x58, 0x52, 0xd7}: "HighMemDxe", efi.GUID{0x63, 0x18, 0xf6, 0xe4, 0x2c, 0xfe, 0x56, 0x4b, 0xa8, 0xf4, 0x08, 0x51, 0x9b, 0xc4, 0x39, 0xdf}: "VlanConfigDxe", efi.GUID{0x63, 0x1a, 0x55, 0x2e, 0xf8, 0xe2, 0x01, 0x44, 0xb6, 0x17, 0xec, 0xde, 0x23, 0x38, 0x46, 0x3c}: "PlatformMilestoneHookDxe", efi.GUID{0x63, 0x2e, 0x29, 0x57, 0xd0, 0x5b, 0x87, 0x47, 0xac, 0x14, 0x43, 0xe6, 0xb0, 0xa1, 0x51, 0x5b}: "OememSmi", efi.GUID{0x63, 0x30, 0x9b, 0x57, 0x14, 0x81, 0xcd, 0x4f, 0x9d, 0xf1, 0x0e, 0x45, 0x19, 0xaf, 0x77, 0x44}: "ShellResolution", efi.GUID{0x63, 0x30, 0xd7, 0x7c, 0x6e, 0x54, 0x09, 0x4c, 0xab, 0xd2, 0x11, 0xc6, 0xb0, 0x4a, 0xcc, 0x4e}: "SataPowerManagementSmm", efi.GUID{0x63, 0x34, 0xa4, 0x4e, 0x7c, 0x74, 0xeb, 0x46, 0x97, 0xfb, 0xb0, 0xe5, 0xc5, 0xf0, 0x53, 0x06}: "UsbMouseAbsolutePointerDxe", efi.GUID{0x63, 0x39, 0x75, 0xc5, 0x84, 0x3b, 0x95, 0x40, 0xbf, 0x78, 0xed, 0xda, 0xd3, 0xf9, 0xc9, 0xdd}: "EfiPciBusErrorSectionGuid", efi.GUID{0x63, 0x4b, 0x27, 0xc3, 0xe0, 0xad, 0x4c, 0x41, 0xbc, 0x43, 0x12, 0xab, 0x92, 0x6c, 0x63, 0x4b}: "IdeBusPei", efi.GUID{0x63, 0x4c, 0xf6, 0xe8, 0xa3, 0x03, 0xc9, 0x40, 0xad, 0x3f, 0xbc, 0x32, 0x0f, 0x85, 0x05, 0xc3}: "PlatformFirmwareVersionInfo", efi.GUID{0x63, 0x4e, 0x08, 0xb7, 0xb7, 0x46, 0x1a, 0x4d, 0x86, 0x77, 0xe3, 0x0b, 0x53, 0xdb, 0xf0, 0x50}: "EfiFrameworkDevicePath", efi.GUID{0x63, 0x4f, 0xa7, 0x21, 0x10, 0xca, 0xc6, 0x4d, 0xa4, 0xeb, 0x36, 0xc9, 0x3b, 0x9a, 0x06, 0x3a}: "PlatformFlashSmmProtocol", efi.GUID{0x63, 0x5a, 0x9e, 0x7c, 0x87, 0xb9, 0x5e, 0x43, 0xb1, 0x7f, 0x9e, 0x9c, 0xfa, 0x53, 0xf8, 0x80}: "SmmPlatform", efi.GUID{0x63, 0x75, 0xe3, 0xdb, 0xef, 0xaf, 0x41, 0x4b, 0xbd, 0xce, 0xb0, 0x1b, 0x6d, 0x1e, 0x86, 0x90}: "Tpm12DeviceLibInfineonI2c", efi.GUID{0x63, 0x76, 0xcc, 0xa2, 0x7c, 0x4d, 0x8a, 0x44, 0xaa, 0xb5, 0x4c, 0x03, 0x4b, 0x6f, 0xda, 0xb7}: "rmHwA5Guid", efi.GUID{0x63, 0x7d, 0x33, 0x5d, 0x77, 0x26, 0x68, 0x48, 0x82, 0x51, 0xb9, 0x7c, 0x6d, 0x1f, 0x0e, 0x90}: "YukonEthernet", efi.GUID{0x63, 0x88, 0xac, 0x45, 0xfa, 0xe3, 0x38, 0x4a, 0xa2, 0x3c, 0x00, 0xbc, 0xd1, 0x0c, 0xbd, 0x50}: "AmiNvramSmmCommunicationGuid", efi.GUID{0x63, 0x89, 0xa0, 0xec, 0xa3, 0x33, 0x8c, 0x40, 0x8f, 0xde, 0x7e, 0x67, 0xa5, 0x1f, 0x45, 0xab}: "D01UsttCallback", efi.GUID{0x63, 0x8b, 0xb0, 0x9b, 0x56, 0x77, 0x1d, 0x4d, 0xb7, 0xf6, 0xb9, 0xbc, 0x23, 0x71, 0xf3, 0x3f}: "SioEasyCleanWmiSmm", efi.GUID{0x63, 0x8c, 0xb9, 0xa1, 0x32, 0x70, 0xd7, 0x4e, 0x8c, 0xf2, 0x81, 0x69, 0xd2, 0x78, 0x8b, 0xa8}: "SpecificResetProtocolDxe", efi.GUID{0x63, 0x92, 0x1c, 0xd7, 0x64, 0x2e, 0xf9, 0x40, 0x82, 0xb8, 0xf2, 0x5b, 0x27, 0x06, 0x9d, 0x4f}: "EnePEI", efi.GUID{0x63, 0x92, 0x26, 0x67, 0xf1, 0x0a, 0xdd, 0x45, 0x93, 0xc8, 0x29, 0x99, 0x21, 0xd0, 0xe1, 0xe9}: "SmbiosUpdateDataProtocolGuid", efi.GUID{0x63, 0xa1, 0x35, 0x5a, 0x41, 0x1b, 0x96, 0x43, 0xa7, 0x76, 0x9a, 0x1f, 0xc5, 0x14, 0x26, 0xf4}: "SyncSetup", efi.GUID{0x63, 0xa2, 0x22, 0xb1, 0x61, 0x36, 0x68, 0x4f, 0x99, 0x29, 0x78, 0xf8, 0xb0, 0xd6, 0x21, 0x80}: "EfiSystemResourceTableGuid", efi.GUID{0x63, 0xaa, 0xe3, 0xca, 0x6f, 0x67, 0xa3, 0x4d, 0xbd, 0x50, 0x6c, 0xc5, 0xed, 0xde, 0x9a, 0xad}: "EdkiiPeiNvmExpressHostControllerPpi", efi.GUID{0x63, 0xaf, 0x2d, 0x0e, 0x4f, 0x8a, 0x26, 0x40, 0xa8, 0x99, 0xde, 0x2d, 0x7f, 0x46, 0xe5, 0xec}: "TpvPei", efi.GUID{0x63, 0xb0, 0x92, 0xe4, 0x46, 0xe8, 0x10, 0x48, 0xa9, 0x68, 0x01, 0xbc, 0x24, 0x33, 0x97, 0x74}: "DellSmmEventProtocol", efi.GUID{0x63, 0xbf, 0x6d, 0x44, 0x02, 0x25, 0xda, 0x4c, 0xbc, 0xfa, 0x24, 0x65, 0xd2, 0xb0, 0xfe, 0x9d}: "EfiCertX509Sha512Guid", efi.GUID{0x63, 0xc1, 0x35, 0x3e, 0x74, 0x40, 0xdd, 0x45, 0x43, 0x1e, 0x23, 0x98, 0x9d, 0xd8, 0x6b, 0x32}: "EfiHttpUtilitiesProtocolGuid", efi.GUID{0x63, 0xc6, 0x56, 0xd2, 0x0f, 0x1e, 0x04, 0x47, 0xa7, 0x6a, 0x94, 0xce, 0xed, 0x7c, 0x16, 0xde}: "FjDtPlatformSmbiosDxe", efi.GUID{0x63, 0xca, 0xa2, 0x08, 0x65, 0x3b, 0x2c, 0x47, 0x87, 0x4e, 0x5e, 0x13, 0x8e, 0x94, 0x73, 0x24}: "AsusEcDxeRt", efi.GUID{0x63, 0xcc, 0x7c, 0x31, 0xe4, 0xfd, 0xce, 0x48, 0xba, 0x03, 0xd0, 0x8c, 0xd4, 0x55, 0x67, 0xcc}: "AtaDeviceDriverPei", efi.GUID{0x63, 0xcf, 0x69, 0x62, 0x37, 0x07, 0xbf, 0x46, 0x80, 0xad, 0x9a, 0x03, 0x5f, 0x76, 0x12, 0x7e}: "PowerFailureRecoverySmm", efi.GUID{0x63, 0xd2, 0x81, 0x0c, 0xe3, 0x7c, 0x61, 0x4f, 0xa1, 0x75, 0xfd, 0xa4, 0xfd, 0x24, 0x09, 0x85}: "HpAltModePei", efi.GUID{0x63, 0xd8, 0x04, 0x56, 0x24, 0xbf, 0x9b, 0x43, 0xbb, 0xf6, 0x63, 0x6d, 0x72, 0x03, 0x6e, 0x07}: "SpiUtil", efi.GUID{0x63, 0xde, 0x53, 0x13, 0x4a, 0xb7, 0xef, 0x4b, 0x80, 0xfd, 0x2c, 0x5c, 0xfa, 0x83, 0x04, 0x0b}: "GifDecoderDxe", efi.GUID{0x63, 0xe6, 0x62, 0xbb, 0x5d, 0x62, 0xb2, 0x40, 0xa0, 0x88, 0xbb, 0xe8, 0x36, 0x23, 0xa2, 0x45}: "EfiEapManagementProtocolGuid", efi.GUID{0x63, 0xe7, 0x1e, 0x6a, 0x7a, 0xd4, 0xb4, 0x43, 0xaa, 0xbe, 0xef, 0x1d, 0xe2, 0xab, 0x56, 0xfc}: "EfiHiiPackageListProtocolGuid", efi.GUID{0x63, 0xea, 0x0c, 0x9d, 0x5b, 0x74, 0x7d, 0x41, 0xbb, 0xa4, 0xe5, 0x19, 0x30, 0x61, 0xc9, 0x07}: "DxeFrb", efi.GUID{0x63, 0xea, 0x15, 0x10, 0x21, 0x74, 0x7d, 0x41, 0xbb, 0x51, 0xe5, 0x19, 0x30, 0x61, 0xc5, 0x51}: "DxeIpmiUsb", efi.GUID{0x63, 0xed, 0xe6, 0x58, 0x94, 0x16, 0x0b, 0x44, 0x93, 0x88, 0xe9, 0x8f, 0xed, 0x6b, 0x65, 0xaf}: "EfiSocketProtocolGuid", efi.GUID{0x63, 0xf2, 0x85, 0x6b, 0x84, 0xf5, 0xf8, 0x44, 0xbb, 0x5d, 0xf0, 0x2c, 0x40, 0x79, 0x5d, 0x8e}: "SmmTcgStorageSec", efi.GUID{0x64, 0x12, 0x3f, 0xa5, 0xb1, 0x54, 0x07, 0x47, 0x84, 0xf9, 0x32, 0xdc, 0xd5, 0x2f, 0xc5, 0x8c}: "FjExtSmm", efi.GUID{0x64, 0x13, 0x81, 0xe5, 0xda, 0xba, 0x1b, 0x4f, 0x9e, 0x3a, 0x67, 0x99, 0xc1, 0xa7, 0x6d, 0xb0}: "DellSetupChangesMngSmm", efi.GUID{0x64, 0x14, 0xf0, 0x83, 0xbd, 0x99, 0xe5, 0x45, 0xb3, 0x83, 0xaf, 0x63, 0x05, 0xd8, 0xe9, 0xe6}: "EfiUdp4ServiceBindingProtocolGuid", efi.GUID{0x64, 0x18, 0x35, 0xef, 0xf3, 0x16, 0x2f, 0x4a, 0xb5, 0x7d, 0x3b, 0x9b, 0x78, 0x5a, 0x62, 0x48}: "AmdCpmSocAm4RvPei", efi.GUID{0x64, 0x1b, 0x44, 0xe2, 0xf4, 0x7e, 0xfe, 0x41, 0xb3, 0xa3, 0x8c, 0xaa, 0x7f, 0x8d, 0x30, 0x17}: "PciPlatform", efi.GUID{0x64, 0x23, 0x8b, 0x2d, 0x65, 0xf4, 0x70, 0x4a, 0xb8, 0xab, 0xbb, 0xc7, 0x30, 0xde, 0xdd, 0xbf}: "LCDIdm", efi.GUID{0x64, 0x23, 0xbb, 0x42, 0x88, 0xf4, 0xde, 0x45, 0x93, 0x11, 0xe9, 0xe2, 0xcd, 0x37, 0xbd, 0x74}: "RtKbcDriver", efi.GUID{0x64, 0x2b, 0x54, 0xc5, 0xf1, 0xb3, 0x55, 0x48, 0xa5, 0xc3, 0x9e, 0x87, 0xdb, 0xc3, 0xf2, 0xcb}: "SmbiosDataUpdateDxeGnrwsCRB", efi.GUID{0x64, 0x30, 0xc3, 0xaa, 0xd0, 0x9e, 0x89, 0x4b, 0xa5, 0xad, 0x3e, 0xa7, 0x67, 0x96, 0x0b, 0x22}: "FaultTolerantWritePei", efi.GUID{0x64, 0x37, 0x9f, 0x11, 0xc2, 0xa7, 0x29, 0x43, 0xb2, 0x5c, 0xe6, 0x30, 0x5e, 0x74, 0x30, 0x49}: "DellSmmSecurityVault", efi.GUID{0x64, 0x47, 0xfa, 0xb2, 0x6e, 0x3b, 0xd3, 0x43, 0x91, 0xdf, 0x87, 0xd1, 0x5a, 0x3e, 0x56, 0x68}: "AmiAhciBusProtocolGuid", efi.GUID{0x64, 0x52, 0x1d, 0x12, 0x0f, 0x99, 0x16, 0x47, 0x80, 0x61, 0xc2, 0x14, 0x4a, 0x7d, 0x4d, 0x0d}: "DxeDgOpregionInit", efi.GUID{0x64, 0x55, 0x77, 0xd1, 0x9f, 0x47, 0x52, 0x4f, 0xae, 0x9c, 0xf0, 0x30, 0x76, 0xfb, 0x9f, 0x45}: "SecurityIdeSmm", efi.GUID{0x64, 0x57, 0xb3, 0xb5, 0x0c, 0x46, 0x06, 0x4a, 0x99, 0xfc, 0x77, 0xa1, 0x7c, 0x1b, 0x5c, 0xeb}: "EfiPciOverrideProtocolGuid", efi.GUID{0x64, 0x57, 0xfa, 0xb2, 0x6e, 0x3b, 0xd3, 0x43, 0x91, 0xdf, 0x87, 0xd1, 0x5a, 0x3e, 0x56, 0x68}: "AmiAhciSmmProtocolGuid", efi.GUID{0x64, 0x58, 0x26, 0xae, 0x5d, 0xcf, 0xa8, 0x41, 0x91, 0x3d, 0x71, 0xc1, 0x55, 0xe7, 0x64, 0x42}: "CpuIoPei", efi.GUID{0x64, 0x6d, 0x8e, 0x98, 0xf9, 0xd7, 0xab, 0x4e, 0x84, 0xc5, 0x29, 0xbf, 0x67, 0x7a, 0x6d, 0xac}: "PoweronFromKeyboardPortSmm", efi.GUID{0x64, 0x78, 0x28, 0x6b, 0x9c, 0x75, 0xc4, 0x42, 0xb4, 0x35, 0xa7, 0x4a, 0xb6, 0x94, 0xcd, 0x3b}: "SpecialBootStubDxe", efi.GUID{0x64, 0x7d, 0x1e, 0x71, 0x31, 0x11, 0x4b, 0x49, 0xa2, 0xd1, 0x84, 0x80, 0x6c, 0xd7, 0x2d, 0x53}: "EfiTcgTreeLogHobGuid", efi.GUID{0x64, 0x89, 0xff, 0x60, 0x06, 0xe9, 0xd0, 0x41, 0xaf, 0xed, 0xf2, 0x41, 0xe9, 0x74, 0xe0, 0x8e}: "EfiDxeSmmReadyToLockProtocolGuid", efi.GUID{0x64, 0x8c, 0x5f, 0x73, 0x96, 0xd6, 0xd0, 0x44, 0xbd, 0xf2, 0x44, 0x7f, 0xd0, 0x5a, 0x54, 0x06}: "EmbeddedExternalDeviceProtocolGuid", efi.GUID{0x64, 0x96, 0xc3, 0xc9, 0xdd, 0x96, 0x5c, 0x4c, 0xaf, 0xd7, 0xcd, 0x65, 0x76, 0x29, 0xcf, 0xb0}: "CpPlatFlashTokenSpace", efi.GUID{0x64, 0x98, 0xd8, 0x68, 0xa8, 0xc0, 0x0d, 0x49, 0xbe, 0x18, 0xc8, 0x3d, 0x67, 0x24, 0x09, 0x28}: "SmbiosDataUpdateDxeNeonCityFPGA", efi.GUID{0x64, 0x9e, 0x97, 0xa3, 0xe8, 0xac, 0xdc, 0x4d, 0xbc, 0x07, 0x4d, 0x66, 0xb8, 0xfd, 0x09, 0x77}: "EfiIpSec2ProtocolGuid", efi.GUID{0x64, 0xb4, 0x42, 0xa3, 0x5d, 0x0d, 0x76, 0x45, 0x94, 0x00, 0x75, 0x0f, 0xf1, 0x07, 0x19, 0xe7}: "XmlCliCommonSmm", efi.GUID{0x64, 0xb9, 0xf8, 0x66, 0xf1, 0xa3, 0x7b, 0x49, 0xb2, 0x28, 0x26, 0xb8, 0x9e, 0xc3, 0xbd, 0xca}: "AmdDrtmControlPei", efi.GUID{0x64, 0xbc, 0xb1, 0x9d, 0xcd, 0xd6, 0x05, 0x40, 0x92, 0x3f, 0x94, 0x04, 0x5b, 0x3f, 0x1f, 0x73}: "SecureBioFw", efi.GUID{0x64, 0xc0, 0x40, 0xa3, 0x3c, 0x72, 0x9c, 0x4a, 0xa4, 0xdd, 0xd5, 0xb4, 0x7a, 0x26, 0xfb, 0xb0}: "EsrtManagementProtocolGuid", efi.GUID{0x64, 0xcb, 0x51, 0x7f, 0xcf, 0xa6, 0xa1, 0x4d, 0x9e, 0x3d, 0xe9, 0xf3, 0x97, 0x6b, 0x3c, 0x92}: "FchSmmDispatcher", efi.GUID{0x64, 0xce, 0x02, 0xa7, 0x7a, 0xab, 0x8f, 0x49, 0xba, 0xe6, 0xce, 0x18, 0xbb, 0xae, 0x4c, 0x31}: "BrightnessHardwareVbiosSmm", efi.GUID{0x64, 0xd1, 0x35, 0xa0, 0xe5, 0x1f, 0xf8, 0x4d, 0xb5, 0xf6, 0x23, 0xf4, 0x2b, 0xfb, 0xec, 0x09}: "SeedProtocolDxe", efi.GUID{0x64, 0xd7, 0x7c, 0xce, 0xd9, 0xa1, 0xe5, 0x44, 0x98, 0x57, 0x14, 0xfe, 0xfa, 0xae, 0x96, 0xdd}: "PnpDxe", efi.GUID{0x64, 0xd8, 0x9c, 0x1b, 0x7c, 0xda, 0x3e, 0x48, 0x8d, 0x69, 0xd3, 0x5c, 0xb4, 0xad, 0x27, 0xc9}: "EfiWheaPlatformNonStandardErrorSection", efi.GUID{0x64, 0xd9, 0x21, 0x1f, 0x7d, 0x80, 0xf4, 0x49, 0xae, 0x4e, 0xf5, 0x26, 0x63, 0xd1, 0xa1, 0x6f}: "FjCryptoDESDxe", efi.GUID{0x64, 0xd9, 0xb2, 0x40, 0x11, 0xfe, 0xdc, 0x40, 0x82, 0x83, 0x2e, 0xfb, 0xda, 0x29, 0x53, 0x56}: "FmpDevicePkgTokenSpace", efi.GUID{0x64, 0xdd, 0x2a, 0x32, 0x21, 0xfb, 0x64, 0x45, 0xb1, 0x7f, 0x1e, 0x42, 0x91, 0x44, 0x64, 0x15}: "DellRadioUsbLocationsPolicy", efi.GUID{0x64, 0xe0, 0x4c, 0x65, 0x6b, 0x77, 0x59, 0x47, 0x98, 0xf5, 0xab, 0x0e, 0xdf, 0x69, 0x2d, 0x0e}: "AmdPspDxeV2Stp", efi.GUID{0x64, 0xee, 0xe7, 0xdf, 0xfd, 0xd4, 0x24, 0x44, 0xbf, 0x1f, 0x85, 0xda, 0x52, 0x42, 0x36, 0xfb}: "DellMfgModeDxeDriver", efi.GUID{0x64, 0xf8, 0xff, 0xf0, 0x54, 0x84, 0xe5, 0x46, 0x9f, 0x2b, 0xcf, 0x14, 0xf0, 0xa4, 0x1a, 0x48}: "WarmBootSmm", efi.GUID{0x64, 0xf9, 0x67, 0x21, 0x98, 0x72, 0x8f, 0x4a, 0x9a, 0x2a, 0xbf, 0xe4, 0x98, 0xd6, 0x00, 0xa8}: "HddReadySmi", efi.GUID{0x64, 0xfa, 0x44, 0x4f, 0xd6, 0xa8, 0x19, 0x4c, 0xb6, 0x1d, 0x63, 0x10, 0x9d, 0x77, 0xd3, 0xd2}: "AmiVerifyTcgVariablesGuid", efi.GUID{0x65, 0x06, 0x72, 0x00, 0xeb, 0x67, 0x99, 0x4a, 0xba, 0xf7, 0xd3, 0xc3, 0x3a, 0x1c, 0x7c, 0xc9}: "EfiTcp4ServiceBindingProtocolGuid", efi.GUID{0x65, 0x09, 0x2b, 0xd5, 0x1a, 0x68, 0xc6, 0x4d, 0x92, 0xc6, 0xb2, 0x0a, 0x30, 0x20, 0x85, 0x98}: "AAFTblPEI", efi.GUID{0x65, 0x27, 0xce, 0x3b, 0xd9, 0x74, 0xe2, 0x4f, 0x9f, 0xee, 0xe5, 0x79, 0xc0, 0x6f, 0x73, 0x6b}: "UsbOcUpdateDxeSierra", efi.GUID{0x65, 0x28, 0x38, 0xaa, 0xb0, 0x12, 0xe5, 0x44, 0xa7, 0x31, 0x6d, 0xef, 0x4d, 0xf3, 0x4c, 0xe7}: "LenovoPromptService", efi.GUID{0x65, 0x3a, 0x1d, 0x23, 0x42, 0x94, 0x07, 0x45, 0xa4, 0xe4, 0xe9, 0xd2, 0x17, 0x65, 0x78, 0xf1}: "DellSmBiosStrucB1", efi.GUID{0x65, 0x3e, 0xe3, 0x92, 0xf0, 0x20, 0x5d, 0x45, 0x9d, 0x71, 0x02, 0xc0, 0x9d, 0x50, 0x60, 0xae}: "PciPort", efi.GUID{0x65, 0x46, 0x7c, 0xfd, 0xbe, 0x34, 0x6b, 0x42, 0xb1, 0xf8, 0x3a, 0xb7, 0x53, 0xce, 0x44, 0xb0}: "PeiBootScriptDonePpi", efi.GUID{0x65, 0x49, 0x57, 0x91, 0xef, 0xa7, 0xc6, 0x4d, 0xad, 0x6a, 0x53, 0x56, 0xcc, 0x21, 0xc5, 0x00}: "DellBootLayerDxe", efi.GUID{0x65, 0x50, 0xf9, 0xfb, 0x7f, 0x42, 0xb3, 0x47, 0x80, 0x77, 0xd1, 0x3c, 0x60, 0x71, 0x09, 0x98}: "dbVar", efi.GUID{0x65, 0x57, 0x4e, 0xb3, 0x04, 0x2e, 0xaf, 0x4d, 0x86, 0x7f, 0x7f, 0x40, 0xbe, 0x6f, 0xc3, 0x3d}: "ExtFs", efi.GUID{0x65, 0x57, 0xc4, 0x6c, 0xe4, 0xcc, 0xfd, 0x42, 0xbc, 0x56, 0x01, 0x1a, 0xaa, 0xc6, 0xc9, 0xa8}: "EfiPeiReset2PpiGuid", efi.GUID{0x65, 0x58, 0xe7, 0x52, 0xa4, 0xf4, 0xfa, 0x4f, 0xa9, 0xf0, 0xd3, 0x04, 0x8e, 0xa7, 0x9f, 0x84}: "ThermalPei", efi.GUID{0x65, 0x59, 0xf0, 0xce, 0x99, 0xf3, 0xa0, 0x42, 0xa2, 0x26, 0xa3, 0xfe, 0x96, 0xaa, 0x94, 0x4e}: "RedfishHi", efi.GUID{0x65, 0x5b, 0x23, 0x5a, 0xa0, 0x4b, 0x97, 0x4a, 0x89, 0xa2, 0xc1, 0x27, 0xde, 0xa1, 0x93, 0xa2}: "AsusOnBoardDimm", efi.GUID{0x65, 0x5e, 0x2c, 0x80, 0x7b, 0xd4, 0x1b, 0x46, 0xa4, 0x56, 0x6c, 0x89, 0xc5, 0xcc, 0x3b, 0x30}: "SetVariableToWirelessDeviceDriver", efi.GUID{0x65, 0x5e, 0x2c, 0x80, 0x7b, 0xd4, 0x1b, 0x46, 0xa9, 0xd9, 0x6c, 0x89, 0xc5, 0xcc, 0x3a, 0x10}: "DxeRealtekMAC", efi.GUID{0x65, 0x5e, 0x2c, 0x88, 0x7b, 0xd3, 0x1b, 0x44, 0xa1, 0xd9, 0x6c, 0x89, 0xc5, 0xcc, 0x3a, 0xe1}: "UsbDonglePei", efi.GUID{0x65, 0x60, 0xa6, 0xdf, 0x19, 0xb4, 0xd3, 0x11, 0x9a, 0x2d, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d}: "EfiVT100Guid", efi.GUID{0x65, 0x61, 0x62, 0xf8, 0xeb, 0x6c, 0x4a, 0x92, 0xba, 0xfc, 0xf1, 0x3a, 0xb9, 0xd6, 0x57, 0x28}: "EmuSystemConfigGuid", efi.GUID{0x65, 0x69, 0x0f, 0x43, 0x69, 0x9a, 0xc5, 0x41, 0x93, 0xed, 0x8b, 0xf0, 0x64, 0x35, 0xc1, 0xc6}: "EdkiiPeiShadowMicrocodePpi", efi.GUID{0x65, 0x6d, 0x96, 0x0d, 0x25, 0x8f, 0x74, 0x45, 0x8e, 0xaf, 0x6c, 0x04, 0x63, 0xf3, 0x87, 0x42}: "UsbPortConfigSmm", efi.GUID{0x65, 0x6d, 0xff, 0xf5, 0xe5, 0xf0, 0x63, 0x47, 0xb2, 0x04, 0x8b, 0x73, 0x9d, 0xf0, 0xdd, 0x1e}: "SystemTouchHotZoneDxe", efi.GUID{0x65, 0x7b, 0x8d, 0x37, 0xa9, 0x8d, 0x73, 0x47, 0xb6, 0xe4, 0xa4, 0x78, 0x26, 0xa8, 0x33, 0xe1}: "PcRtc", efi.GUID{0x65, 0x7b, 0x8d, 0x37, 0xa9, 0x8d, 0x73, 0x47, 0xb6, 0xe4, 0xa4, 0x78, 0x26, 0xa8, 0x33, 0xe2}: "PcRtcSmm", efi.GUID{0x65, 0x7d, 0x75, 0xc0, 0x84, 0x3f, 0x92, 0x25, 0xae, 0xb9, 0x33, 0xd1, 0x9b, 0xab, 0xcc, 0xf7}: "TmpDecFileHolder", efi.GUID{0x65, 0x7d, 0x85, 0xe0, 0x84, 0x5f, 0x92, 0x45, 0xae, 0x49, 0x33, 0xd4, 0x9b, 0xa6, 0xcc, 0xf7}: "MeSoftStrapUpdatePei", efi.GUID{0x65, 0x8c, 0x88, 0xed, 0x84, 0x2d, 0x95, 0x45, 0x90, 0x86, 0xa1, 0x5a, 0x1f, 0x66, 0xde, 0x2b}: "EnableLsiDecoding", efi.GUID{0x65, 0x8e, 0x46, 0x65, 0xf3, 0x77, 0xaa, 0x40, 0xa1, 0x49, 0x32, 0xf2, 0x23, 0xb0, 0xa3, 0xba}: "ControllerDiscoveryPei", efi.GUID{0x65, 0x9d, 0xc3, 0xd5, 0xb2, 0x28, 0x0a, 0x40, 0x9f, 0xbe, 0x77, 0xe2, 0x8b, 0xdd, 0x3c, 0xd5}: "AmdDebugDataPreserve", efi.GUID{0x65, 0x9e, 0x49, 0xa8, 0xf6, 0xa6, 0xb0, 0x48, 0x96, 0xdb, 0x45, 0xc2, 0x66, 0x03, 0x0d, 0x83}: "SiInitPreMemFsp", efi.GUID{0x65, 0x9e, 0xd6, 0xaf, 0xb3, 0x1c, 0x2c, 0x47, 0xbe, 0x63, 0x0c, 0x98, 0xa2, 0xc0, 0x66, 0x5c}: "RAIDXpert2_F50_0x00", efi.GUID{0x65, 0xaa, 0xed, 0x4a, 0xf5, 0x00, 0xf8, 0x42, 0xb7, 0x37, 0xb6, 0xbd, 0x1a, 0x4b, 0x5c, 0x48}: "FlashUcAcmDxe", efi.GUID{0x65, 0xae, 0xfc, 0xba, 0x5c, 0x94, 0x6f, 0x46, 0xff, 0xff, 0xff, 0xff, 0x8b, 0x58, 0x77, 0xa4}: "XnoteReportStatusCodeSmm", efi.GUID{0x65, 0xb9, 0xa6, 0xae, 0xf5, 0xdc, 0x11, 0x43, 0xb4, 0xb8, 0x0f, 0x12, 0x46, 0x44, 0x94, 0xd2}: "BootScriptDataGuid", efi.GUID{0x65, 0xc6, 0xa1, 0xad, 0x8a, 0x7a, 0x7c, 0x46, 0x84, 0xea, 0x71, 0x72, 0xb2, 0xb6, 0x58, 0x62}: "FchSSSataD3ColdSmm", efi.GUID{0x65, 0xcf, 0x23, 0xe2, 0xce, 0xf6, 0x22, 0x41, 0xb3, 0xaf, 0x4b, 0xd1, 0x8a, 0xff, 0x40, 0xa1}: "CpuInfoProtocolGuid", efi.GUID{0x65, 0xdc, 0x1c, 0x23, 0x9e, 0x12, 0x70, 0x48, 0xa8, 0x82, 0x79, 0x24, 0x41, 0x27, 0xbd, 0xe3}: "SkipStoragePwdPrompt", efi.GUID{0x65, 0xe0, 0xab, 0x08, 0x59, 0xc3, 0x95, 0x4b, 0x8d, 0x59, 0xc1, 0xb5, 0x8e, 0xb6, 0x57, 0xb5}: "IntelLomSmm", efi.GUID{0x65, 0xe9, 0x85, 0x57, 0x57, 0x83, 0xa1, 0x48, 0xac, 0x12, 0xca, 0xf7, 0x7a, 0x35, 0xfc, 0x72}: "PlatformStatusCodeHandlerSmm", efi.GUID{0x65, 0xec, 0x17, 0xda, 0xe4, 0x21, 0xab, 0x49, 0xb8, 0xba, 0x1f, 0x8d, 0x02, 0x6d, 0xc1, 0x48}: "FjPortReplicatorSmm", efi.GUID{0x65, 0xec, 0x51, 0x10, 0xfc, 0xf6, 0xea, 0x41, 0xba, 0x51, 0x34, 0x4c, 0x37, 0xf6, 0x0c, 0xdf}: "BoardConfigInitPreMem", efi.GUID{0x65, 0xf1, 0xb6, 0x19, 0x55, 0x78, 0xe8, 0x42, 0xaa, 0x6f, 0x23, 0x61, 0xca, 0x87, 0xe0, 0x24}: "LenovoSmmVideoInt10", efi.GUID{0x65, 0xf1, 0xed, 0xe1, 0x23, 0x66, 0x54, 0x4b, 0xbd, 0x7a, 0xa0, 0x5e, 0x06, 0x42, 0x06, 0xb0}: "FjSignon", efi.GUID{0x66, 0x02, 0x8b, 0x8f, 0x75, 0xc2, 0x1a, 0x41, 0x87, 0xec, 0xaa, 0xd8, 0x1e, 0xb1, 0xf0, 0x26}: "FjMfgPowerOffDxe", efi.GUID{0x66, 0x0d, 0xe5, 0x28, 0xea, 0xa0, 0x44, 0x4a, 0x97, 0x7d, 0xd0, 0x73, 0x19, 0xb9, 0x30, 0x4a}: "HeciControlSmm", efi.GUID{0x66, 0x0e, 0x1d, 0x4a, 0x71, 0x52, 0x22, 0x4e, 0x83, 0xfe, 0x90, 0x92, 0x1b, 0x74, 0x82, 0x13}: "EfiDxeIpmiTransportProtocol", efi.GUID{0x66, 0x0f, 0xe7, 0x2c, 0x57, 0xac, 0x46, 0x43, 0xa9, 0x1f, 0x89, 0x28, 0x1a, 0x07, 0xfa, 0xd6}: "ErrorDisplayFramework", efi.GUID{0x66, 0x16, 0x6e, 0xfe, 0x1e, 0x59, 0xb8, 0x4a, 0x95, 0x31, 0x2b, 0xf6, 0x43, 0x3a, 0x39, 0x25}: "ApobRnDxe", efi.GUID{0x66, 0x1d, 0x92, 0x10, 0x1d, 0x28, 0x6e, 0x49, 0xa3, 0xb4, 0xa8, 0xd4, 0x7f, 0xd6, 0xde, 0x9e}: "HpVpinSelectionSmm", efi.GUID{0x66, 0x27, 0xb8, 0x57, 0x6a, 0x59, 0xbd, 0x45, 0x81, 0x68, 0x27, 0xe2, 0xbf, 0x41, 0xef, 0x5c}: "DellPermanentDeviceSmm", efi.GUID{0x66, 0x3b, 0xc6, 0xb5, 0xe8, 0x55, 0xdd, 0x44, 0x99, 0x93, 0xbd, 0x8d, 0x06, 0xb5, 0x5a, 0x4b}: "RemoveSMBIOS", efi.GUID{0x66, 0x3f, 0x3e, 0xd4, 0x5d, 0x1b, 0x23, 0x46, 0x97, 0x5f, 0x7f, 0x5e, 0xbe, 0xee, 0xf0, 0x2d}: "MtkWifiDriver", efi.GUID{0x66, 0x48, 0x54, 0x36, 0x93, 0x6d, 0x48, 0x7a, 0x88, 0xfb, 0x66, 0x95, 0x82, 0xd2, 0x51, 0x6b}: "ApplePlatformInfoDatabaseDxe", efi.GUID{0x66, 0x4f, 0x6b, 0xbe, 0x89, 0x5b, 0xc2, 0x4d, 0x91, 0x02, 0xa1, 0x78, 0xc8, 0x62, 0x1c, 0xf2}: "UefiBootMarkerProtocol", efi.GUID{0x66, 0x53, 0x1f, 0x93, 0xb9, 0xfb, 0x2c, 0x4c, 0x93, 0x62, 0xb5, 0x32, 0xcb, 0xeb, 0x4f, 0x66}: "ServiceResetDxe", efi.GUID{0x66, 0x57, 0xa1, 0xa7, 0x9b, 0x44, 0x93, 0xaa, 0x11, 0x4b, 0x71, 0xb4, 0x7b, 0xe1, 0x74, 0xca}: "DellDataWipeSmm", efi.GUID{0x66, 0x68, 0xf6, 0x3b, 0x8b, 0x3f, 0xd8, 0x4c, 0xb7, 0x4c, 0xb9, 0x94, 0x11, 0x1f, 0x53, 0x5f}: "FfsIntegrityCheckDxe", efi.GUID{0x66, 0x6d, 0xbe, 0xdc, 0x28, 0xd9, 0x38, 0x41, 0x80, 0x41, 0x35, 0x8f, 0x35, 0xcb, 0xcf, 0x80}: "IsaBusDxe", efi.GUID{0x66, 0x6e, 0x22, 0xab, 0xd8, 0x31, 0x13, 0x46, 0x87, 0x9d, 0xd2, 0xfa, 0xb6, 0x10, 0x26, 0x3c}: "EdkiiDynamicTablesPkgTokenSpace", efi.GUID{0x66, 0x73, 0xd5, 0x0f, 0x08, 0x47, 0xe0, 0x3e, 0x39, 0x2b, 0x14, 0xa8, 0x73, 0x78, 0x2a, 0x25}: "PciePowerManagementSmm", efi.GUID{0x66, 0x7c, 0x3a, 0x6c, 0x26, 0x3d, 0x1b, 0x4b, 0xb8, 0x03, 0x2d, 0x80, 0x12, 0x43, 0xbe, 0x29}: "AmdMbistRsPei", efi.GUID{0x66, 0x7e, 0x01, 0x63, 0x90, 0xd7, 0xe6, 0x4e, 0xa0, 0xac, 0x61, 0x92, 0xaa, 0x74, 0xac, 0xf7}: "UCR", efi.GUID{0x66, 0x84, 0x64, 0x0d, 0xbd, 0x36, 0xc6, 0x42, 0xb2, 0x87, 0x7c, 0x3b, 0xaa, 0x25, 0x75, 0xc0}: "LenovoSetupUnderOsDxe", efi.GUID{0x66, 0x87, 0x5b, 0x67, 0x03, 0x7f, 0x81, 0x41, 0x9b, 0xe1, 0x73, 0xbc, 0x45, 0xdf, 0xf7, 0x99}: "EfiIpmiCmosClearVariable", efi.GUID{0x66, 0x8b, 0x1c, 0x72, 0x6c, 0x42, 0x86, 0x4e, 0x8e, 0x99, 0x34, 0x57, 0xc4, 0x6a, 0xb0, 0xb9}: "SystemBiosSetupDxe", efi.GUID{0x66, 0x8b, 0x1d, 0xf5, 0x6a, 0xe7, 0xcf, 0x43, 0x98, 0x80, 0x3f, 0xae, 0x4d, 0x30, 0xf6, 0x87}: "SmmBbsManagerProtocol", efi.GUID{0x66, 0x8c, 0x62, 0xe1, 0x2d, 0x2a, 0xc5, 0x4d, 0xbd, 0x41, 0xb2, 0x0f, 0x35, 0x38, 0xaa, 0xf7}: "BootPicker", efi.GUID{0x66, 0x8c, 0xf6, 0xce, 0xab, 0x06, 0xb3, 0x4f, 0xa3, 0xed, 0x5f, 0xfa, 0x88, 0x5b, 0x57, 0x25}: "SmbiosBoard", efi.GUID{0x66, 0x92, 0x08, 0xf5, 0xa0, 0x1a, 0x53, 0x49, 0x97, 0xd8, 0x56, 0x2f, 0x8a, 0x73, 0xb5, 0x19}: "EfiUsbHcProtocolGuid", efi.GUID{0x66, 0x97, 0xdf, 0x34, 0xc0, 0x19, 0xbd, 0x44, 0xba, 0x4f, 0xd2, 0x00, 0x6a, 0x0c, 0x3d, 0xa5}: "CbsSetupSmmRPL", efi.GUID{0x66, 0x9d, 0x2f, 0x43, 0x0f, 0xf4, 0x5e, 0x43, 0xb4, 0x02, 0x46, 0xd4, 0x1a, 0x39, 0x4c, 0xce}: "AmiChipsetPolicy", efi.GUID{0x66, 0xa4, 0x61, 0x3d, 0x40, 0xab, 0x9a, 0x40, 0xa6, 0x98, 0xf3, 0x62, 0xd4, 0x64, 0xb3, 0x8f}: "EfiEventNotificationTypeBootGuid", efi.GUID{0x66, 0xaa, 0x9a, 0x7c, 0x1a, 0x0d, 0x23, 0x4a, 0xbe, 0xa3, 0x25, 0x19, 0x5f, 0x6b, 0xc2, 0x2c}: "FchKunlunMultiFchPei", efi.GUID{0x66, 0xb0, 0x31, 0x3f, 0xa2, 0x82, 0x2a, 0x4b, 0xa6, 0xce, 0xab, 0x0f, 0x7d, 0xd0, 0x06, 0x6a}: "NVDimmMgmt", efi.GUID{0x66, 0xb0, 0xf3, 0x71, 0x6a, 0x93, 0x84, 0x4c, 0x92, 0x28, 0x23, 0x23, 0x0f, 0xd4, 0x7c, 0x79}: "ImagePasswordFill", efi.GUID{0x66, 0xb2, 0xa2, 0x00, 0xcf, 0xb5, 0xa8, 0x43, 0x85, 0x47, 0xcb, 0xeb, 0xfd, 0xec, 0x89, 0x4c}: "SmmSvcCallback", efi.GUID{0x66, 0xb8, 0x22, 0x38, 0x22, 0xe1, 0xbe, 0x43, 0x87, 0x7d, 0x4a, 0xc7, 0x72, 0x9d, 0x6e, 0x78}: "DellNbThermalProtocol", efi.GUID{0x66, 0xba, 0x10, 0x13, 0xb4, 0xd7, 0xb0, 0x77, 0xa6, 0x45, 0x8c, 0x88, 0x87, 0xc6, 0xaa, 0x29}: "AmiSvrMemoryInfoConfig", efi.GUID{0x66, 0xc0, 0x0f, 0x95, 0xc9, 0xec, 0xce, 0x4b, 0x82, 0xb1, 0xba, 0x7d, 0x68, 0xf4, 0x42, 0x83}: "AplSmbiosGetFlashData", efi.GUID{0x66, 0xc4, 0xc1, 0xb6, 0x8a, 0xe7, 0x02, 0x42, 0x80, 0x1a, 0xb7, 0x95, 0x0e, 0x95, 0x6e, 0x0b}: "ProjectDXE", efi.GUID{0x66, 0xd1, 0x5a, 0xb3, 0xba, 0xfc, 0x4d, 0x4d, 0x89, 0xc7, 0x4b, 0x47, 0x10, 0x4e, 0x3a, 0xfd}: "AppleSpiIoSkl", efi.GUID{0x66, 0xd3, 0xf6, 0xc8, 0xf1, 0xdd, 0x60, 0x49, 0x9d, 0x57, 0x82, 0xf2, 0x65, 0x5a, 0x12, 0x94}: "AodPei", efi.GUID{0x66, 0xd4, 0x41, 0x49, 0x42, 0x40, 0x49, 0x4c, 0x2b, 0x8b, 0x8c, 0x83, 0x83, 0x4c, 0x13, 0x79}: "PegaPeim", efi.GUID{0x66, 0xd5, 0xce, 0x1a, 0xed, 0x76, 0x18, 0x42, 0xbc, 0x81, 0x76, 0x7f, 0x1f, 0x97, 0x7a, 0x89}: "EfiNetworkInterfaceIdentifierProtocolGuid_31", efi.GUID{0x66, 0xdf, 0xec, 0x4e, 0x06, 0xc5, 0x58, 0x44, 0x9c, 0x0d, 0x70, 0x02, 0x18, 0x28, 0xfb, 0x31}: "SpiProtectionSmm", efi.GUID{0x66, 0xe0, 0xb5, 0x97, 0x44, 0x41, 0x2d, 0x42, 0xad, 0x2b, 0xc3, 0x1a, 0x6f, 0x6a, 0x1d, 0x2e}: "SmmOemDriver", efi.GUID{0x66, 0xe8, 0x93, 0xd9, 0x8f, 0x5c, 0xe7, 0x4d, 0xbe, 0x99, 0x45, 0x3e, 0x28, 0x4a, 0x43, 0xaf}: "WakeOnLanDxe", efi.GUID{0x66, 0xec, 0x88, 0x4a, 0x70, 0x05, 0xe2, 0x4a, 0xbb, 0xbc, 0x33, 0x5a, 0x5c, 0x9b, 0xc2, 0x87}: "CsrRegTableDxe", efi.GUID{0x66, 0xf5, 0x7d, 0x96, 0xb7, 0x4d, 0x52, 0x3d, 0x39, 0xec, 0x1b, 0x9f, 0x45, 0x0d, 0x5a, 0xcd}: "Sff8472Dxe", efi.GUID{0x66, 0xf7, 0x98, 0xb0, 0x7a, 0xb1, 0x05, 0x40, 0x83, 0x09, 0xeb, 0x23, 0xf1, 0x44, 0x8c, 0x15}: "AmiCmosBadFlagHob", efi.GUID{0x67, 0x00, 0xf7, 0x0b, 0x3b, 0xd5, 0xdf, 0x42, 0xb7, 0x70, 0xe9, 0x2c, 0x91, 0xc6, 0x14, 0x11}: "EfiTdtProtocolGuid", efi.GUID{0x67, 0x02, 0x6e, 0x4c, 0x7d, 0xc7, 0x0d, 0x41, 0x81, 0x00, 0x14, 0x95, 0x91, 0x1a, 0x98, 0x9d}: "MetronomeDxe", efi.GUID{0x67, 0x19, 0xe0, 0x0a, 0x3b, 0x8b, 0x72, 0x45, 0x85, 0xbd, 0xef, 0xd5, 0xc0, 0xf2, 0x51, 0xeb}: "AmdPspRomArmor3Smm", efi.GUID{0x67, 0x22, 0x88, 0x39, 0x96, 0xce, 0x37, 0x4f, 0xa3, 0xeb, 0x00, 0xb0, 0x3b, 0xa4, 0xfc, 0x55}: "EcSecureFlashSmm", efi.GUID{0x67, 0x38, 0x76, 0x6a, 0x86, 0x40, 0xec, 0x40, 0xa5, 0xac, 0x6d, 0x63, 0x02, 0x1e, 0xfe, 0xdc}: "DellSmbDaTokenCfgPolicyGuidVer2", efi.GUID{0x67, 0x39, 0x6f, 0xfc, 0xa8, 0xaa, 0xd7, 0x47, 0x83, 0x7f, 0xa1, 0xcd, 0x44, 0x2e, 0x75, 0x72}: "TcpDxe", efi.GUID{0x67, 0x39, 0xb1, 0x1b, 0x24, 0x8b, 0x1b, 0x41, 0x98, 0x28, 0x18, 0xd2, 0x85, 0xa9, 0xcc, 0x4d}: "AmiPpiGuid", efi.GUID{0x67, 0x3d, 0x5a, 0xce, 0x31, 0x68, 0xe0, 0x47, 0x94, 0x6e, 0xb3, 0x30, 0x0d, 0x02, 0xe0, 0xc6}: "HpDmarDxe", efi.GUID{0x67, 0x44, 0x0a, 0x29, 0x89, 0x9f, 0x1f, 0x4f, 0xa7, 0x3c, 0xe1, 0x0b, 0x9f, 0xaf, 0xbd, 0x1b}: "FjFlexIoDxe", efi.GUID{0x67, 0x4b, 0x4f, 0xc5, 0x27, 0xe5, 0x79, 0x43, 0xbf, 0x61, 0x19, 0x3c, 0x7a, 0x68, 0xc6, 0x61}: "menu_none", efi.GUID{0x67, 0x4b, 0xbf, 0x56, 0xcf, 0x8d, 0x4f, 0x42, 0x99, 0xa9, 0x0f, 0x44, 0xb7, 0xf8, 0xc9, 0x25}: "ODDBiosBootSupportDxe", efi.GUID{0x67, 0x4e, 0x77, 0xf3, 0x2e, 0x3f, 0xd1, 0x4e, 0x9a, 0x5d, 0xa2, 0x2e, 0xb1, 0xa0, 0x73, 0xef}: "FjVarstoreSyncGHO", efi.GUID{0x67, 0x59, 0x09, 0xb1, 0xf4, 0xfc, 0x53, 0x4c, 0xbc, 0x16, 0x7e, 0x3d, 0xf9, 0xc2, 0x47, 0xeb}: "StdFlashPeiLibNull", efi.GUID{0x67, 0x5d, 0x21, 0x37, 0xd0, 0xd2, 0x6b, 0x48, 0x97, 0x7d, 0xb5, 0xbd, 0x4d, 0xc3, 0x80, 0x10}: "Platform_AcerPortingDxe", efi.GUID{0x67, 0x61, 0xcc, 0x34, 0xe7, 0x7a, 0x3e, 0x40, 0x8a, 0xb2, 0x23, 0x83, 0x7f, 0x39, 0x8a, 0x30}: "PlatformInfo", efi.GUID{0x67, 0x6c, 0x05, 0x6a, 0x28, 0x31, 0x02, 0x41, 0x9e, 0xc7, 0x26, 0x5e, 0x73, 0xaa, 0xb8, 0x60}: "GopCardEnabler", efi.GUID{0x67, 0x79, 0x18, 0x61, 0x77, 0x9a, 0x9d, 0x41, 0xaa, 0xea, 0x64, 0xdd, 0x56, 0x19, 0x08, 0x15}: "AmiPeiSbOemPlatformPolicyOverridePpi", efi.GUID{0x67, 0x7a, 0xc7, 0x86, 0x97, 0x0b, 0x33, 0x46, 0xa1, 0x87, 0x49, 0x10, 0x4d, 0x06, 0x85, 0xc7}: "NuvotonFwManagementDxe", efi.GUID{0x67, 0x7b, 0xd9, 0x4c, 0xbb, 0x12, 0xc5, 0x4f, 0x8b, 0x2a, 0x58, 0x0a, 0xdb, 0x6a, 0x63, 0x68}: "AmiTseOemPortingVar12", efi.GUID{0x67, 0x7d, 0xd5, 0x70, 0x05, 0x7f, 0x4d, 0x49, 0xa0, 0x14, 0xb7, 0x5d, 0x73, 0x45, 0xb7, 0x00}: "StorageSecurityCommandDxe", efi.GUID{0x67, 0x7e, 0xba, 0x27, 0x4d, 0xd5, 0x83, 0x49, 0xbe, 0x18, 0x9d, 0xf0, 0x7d, 0x23, 0x89, 0xdc}: "SystemNvmeServiceOwnerDxe", efi.GUID{0x67, 0x7e, 0xe8, 0x47, 0xc0, 0xfb, 0x01, 0x4c, 0x90, 0x02, 0x4a, 0x0a, 0x6e, 0xcb, 0x92, 0xff}: "AmiTseOemPortingVar4Guid", efi.GUID{0x67, 0x7f, 0x86, 0x8a, 0xd8, 0x89, 0x34, 0x41, 0xbb, 0xbd, 0x64, 0xbb, 0xaa, 0x52, 0x56, 0xf5}: "AmdCpmI2cDxe", efi.GUID{0x67, 0x81, 0x4f, 0x73, 0x6b, 0x99, 0x5d, 0x4c, 0xbb, 0xa3, 0x81, 0x5a, 0x72, 0x16, 0x7f, 0xf8}: "BFGDxe", efi.GUID{0x67, 0x8a, 0x85, 0x70, 0xd5, 0xd4, 0x32, 0x46, 0xbf, 0x0e, 0xd1, 0x8e, 0x2c, 0x29, 0xc5, 0x50}: "DTBTPEI", efi.GUID{0x67, 0x90, 0xf4, 0x25, 0x5b, 0xa6, 0xf5, 0x48, 0xbb, 0xbe, 0x35, 0x41, 0x8c, 0x48, 0x88, 0x36}: "TcgDxeMainDxe", efi.GUID{0x67, 0x99, 0x03, 0x9e, 0x3b, 0xfb, 0xe4, 0x4b, 0x83, 0xaa, 0xf7, 0x2f, 0x30, 0x9e, 0x48, 0x1e}: "EventLogDxe", efi.GUID{0x67, 0xa2, 0x5c, 0x4a, 0x16, 0x40, 0x0f, 0x46, 0x80, 0xee, 0x7b, 0x4c, 0x3d, 0x77, 0xfd, 0x62}: "DellUserInterfaceDxe", efi.GUID{0x67, 0xa5, 0x24, 0x7d, 0xc2, 0xa8, 0x18, 0x47, 0xdc, 0x60, 0xa2, 0xef, 0x07, 0x0f, 0x41, 0x4e}: "SmmCrcInit", efi.GUID{0x67, 0xa6, 0x0d, 0x28, 0xb6, 0x74, 0x0e, 0x41, 0x8a, 0xcd, 0xd0, 0x6c, 0x3f, 0x32, 0xea, 0x20}: "IntelLANPei", efi.GUID{0x67, 0xab, 0xf5, 0xdf, 0xc6, 0x23, 0x6f, 0x40, 0x99, 0xd4, 0xf5, 0x1b, 0x22, 0x04, 0x41, 0x13}: "SmmWifiToolDriver", efi.GUID{0x67, 0xb1, 0x57, 0xce, 0xe4, 0xb0, 0xe8, 0x41, 0xa8, 0x97, 0x5f, 0x4f, 0xeb, 0x78, 0x1d, 0x40}: "EdkiiSystemFmpCapsuleDriverFvFileGuid", efi.GUID{0x67, 0xb5, 0xc8, 0x9a, 0xdb, 0x5f, 0xe5, 0x46, 0x8b, 0x12, 0xac, 0xfc, 0x4b, 0x24, 0xc5, 0xec}: "OemDataRegionRestore", efi.GUID{0x67, 0xb6, 0xa3, 0x18, 0xaf, 0x14, 0xe7, 0x4a, 0x84, 0x0f, 0xcd, 0x63, 0x17, 0xea, 0x0c, 0xbd}: "NbRsRouting", efi.GUID{0x67, 0xbf, 0x29, 0x7d, 0x31, 0x61, 0xcc, 0x4c, 0x91, 0xde, 0xbb, 0x82, 0x91, 0x56, 0x57, 0x01}: "CbsBaseDxeSTXH", efi.GUID{0x67, 0xc5, 0xec, 0xd3, 0xd5, 0x9f, 0xc1, 0x44, 0x86, 0xcf, 0x5d, 0xa7, 0xa2, 0x4f, 0x4b, 0x5d}: "EfiLpcWpc83627PolicyProtocolGuid", efi.GUID{0x67, 0xc7, 0x8b, 0x96, 0x1b, 0x03, 0x98, 0x47, 0xff, 0xff, 0xff, 0xff, 0x1e, 0xe8, 0x11, 0x20}: "XnotePlatformInfoPei", efi.GUID{0x67, 0xc8, 0x27, 0x3f, 0x20, 0x47, 0x37, 0x45, 0x8d, 0x0c, 0x20, 0xf3, 0x2f, 0xf3, 0x0c, 0x04}: "AmdMcaZen4Dxe", efi.GUID{0x67, 0xc8, 0xc1, 0x3b, 0x74, 0x22, 0xf8, 0x43, 0xa4, 0xba, 0x93, 0x9a, 0x5b, 0xd6, 0xd4, 0x73}: "DellBlockIo", efi.GUID{0x67, 0xc8, 0xf3, 0x0e, 0x9b, 0x45, 0xd8, 0x41, 0x85, 0x41, 0xdd, 0x7d, 0xc2, 0x77, 0xeb, 0xc0}: "PdHostInterfaceRtkPei", efi.GUID{0x67, 0xd1, 0x05, 0x99, 0x73, 0x3d, 0x94, 0x4a, 0x83, 0x5f, 0x03, 0xaf, 0xa1, 0x65, 0x6a, 0xe6}: "FjFextSmm", efi.GUID{0x67, 0xdd, 0xf0, 0x7d, 0x91, 0x5b, 0x40, 0x4d, 0xa8, 0x35, 0x58, 0x01, 0x34, 0x57, 0x01, 0x0a}: "SmbiosDataUpdateDxeHedtCRB", efi.GUID{0x67, 0xe2, 0x3b, 0x97, 0x60, 0x09, 0xc7, 0x40, 0x98, 0x56, 0xfa, 0x73, 0xc9, 0x2a, 0x46, 0xba}: "DellServiceResetDxe", efi.GUID{0x67, 0xe5, 0xe1, 0x6c, 0xc9, 0x46, 0x0c, 0x42, 0xa1, 0x7e, 0x61, 0x5d, 0x02, 0xae, 0x55, 0x34}: "ATPowerDxe", efi.GUID{0x67, 0xe6, 0x4c, 0xcb, 0x8d, 0xed, 0x66, 0x4a, 0xb4, 0x37, 0xea, 0x6a, 0x97, 0x0f, 0x2e, 0x48}: "SmmResetSystem", efi.GUID{0x67, 0xe7, 0x8b, 0xfc, 0xf1, 0x89, 0x6e, 0x4d, 0x80, 0x99, 0x6f, 0x02, 0x1e, 0xbc, 0x87, 0xcc}: "AmiIrqDmaMaskVariable", efi.GUID{0x67, 0xe8, 0x75, 0x9b, 0x46, 0x27, 0xbe, 0x48, 0xb7, 0x06, 0xb1, 0xb9, 0x3a, 0x34, 0x86, 0x93}: "AsusModuleToIntDxeWrapper", efi.GUID{0x67, 0xec, 0x2a, 0x3a, 0xb8, 0x77, 0xae, 0x40, 0x92, 0x81, 0x03, 0x51, 0x9c, 0x9e, 0x7f, 0x08}: "LenovoAoacSmm", efi.GUID{0x67, 0xf8, 0x8b, 0xc1, 0x3b, 0x0b, 0x40, 0x4c, 0x81, 0x1d, 0x24, 0x21, 0x00, 0x66, 0x59, 0x12}: "SystemSdLegacyDxe", efi.GUID{0x67, 0xfc, 0x84, 0x05, 0xb9, 0x72, 0x46, 0x4d, 0xae, 0x3e, 0xad, 0x33, 0x04, 0x52, 0xd9, 0xb4}: "InputDeviceAggregatorDxe", efi.GUID{0x67, 0xfd, 0x9f, 0xaf, 0x10, 0xec, 0x8a, 0x48, 0x9d, 0xfc, 0x6c, 0xbf, 0x5e, 0xe2, 0x2c, 0x2e}: "EfiAcpiVariableGuid", efi.GUID{0x68, 0x0a, 0xb5, 0xab, 0xa7, 0x0c, 0x9f, 0x4c, 0x8d, 0xb4, 0x56, 0xc3, 0x4e, 0x01, 0xcb, 0x95}: "SystemFirmwareDeviceBlockDxe", efi.GUID{0x68, 0x0c, 0x2a, 0x67, 0xf0, 0x2b, 0xf9, 0x46, 0x93, 0xc3, 0xc4, 0xe7, 0xdc, 0x0f, 0xa5, 0x55}: "UsbCredentialProvider", efi.GUID{0x68, 0x14, 0xff, 0xf3, 0xba, 0x04, 0x66, 0x49, 0x9f, 0xb2, 0xe4, 0xa7, 0x90, 0x05, 0x46, 0x50}: "EfiCapsuleCrashLogVarGuid", efi.GUID{0x68, 0x15, 0x7d, 0x4c, 0x73, 0xcf, 0x76, 0x46, 0xa0, 0x79, 0x16, 0xf7, 0xf9, 0x60, 0x0c, 0xcc}: "LenovoSecuritySmiDispatch", efi.GUID{0x68, 0x19, 0x53, 0xd1, 0x38, 0xe1, 0x2e, 0x4e, 0x8f, 0x7e, 0x38, 0x33, 0x07, 0x16, 0x92, 0x76}: "EzFlashInterfaceAsusSignBin", efi.GUID{0x68, 0x1b, 0xa4, 0x1b, 0x5f, 0x46, 0x22, 0x4b, 0x84, 0x06, 0x2b, 0x82, 0x17, 0x3d, 0xae, 0x50}: "DellSpecialBootControlSmm", efi.GUID{0x68, 0x1d, 0xf7, 0x49, 0x64, 0xd4, 0x5a, 0x43, 0x9c, 0x95, 0x11, 0x32, 0x5b, 0xac, 0xef, 0xe6}: "QuickI2c", efi.GUID{0x68, 0x23, 0x1d, 0x68, 0x40, 0x45, 0xa9, 0x4f, 0x8c, 0x1d, 0x8b, 0x79, 0xdb, 0xf6, 0xb9, 0xae}: "HybridGraphicDxe", efi.GUID{0x68, 0x26, 0x6c, 0x60, 0xa4, 0xe9, 0xe7, 0x46, 0xa0, 0x6b, 0x3b, 0x9b, 0x7e, 0xe1, 0x5c, 0xa0}: "OemPxeBoot", efi.GUID{0x68, 0x28, 0x86, 0x5b, 0x74, 0x74, 0xf2, 0x4c, 0x81, 0xa1, 0x9f, 0xca, 0x12, 0xfe, 0xb5, 0xb0}: "FjSiidSmm", efi.GUID{0x68, 0x2c, 0x45, 0xca, 0x0c, 0xdf, 0xc9, 0x45, 0x82, 0xfb, 0xea, 0xe4, 0x2b, 0x31, 0x29, 0x46}: "EfiVLVTokenSpaceGuid", efi.GUID{0x68, 0x2d, 0x7e, 0x80, 0x3f, 0xb1, 0x0a, 0x49, 0xa2, 0xfb, 0x34, 0x6a, 0x39, 0x45, 0x99, 0x78}: "NCT6685DSmmDxe", efi.GUID{0x68, 0x2d, 0x7e, 0x80, 0x3f, 0xb1, 0x0a, 0x49, 0xa2, 0xfb, 0x34, 0x6a, 0x39, 0x45, 0x9d, 0x09}: "NCT6685DSmm", efi.GUID{0x68, 0x2d, 0x7e, 0x80, 0x3f, 0xb1, 0x0a, 0x49, 0xa2, 0xfb, 0x34, 0x6a, 0x39, 0x45, 0x9d, 0x0a}: "ECHeartbeatSmm", efi.GUID{0x68, 0x2e, 0x79, 0x4f, 0xc8, 0xe8, 0x4e, 0x79, 0xb1, 0xd8, 0x37, 0x03, 0xf3, 0xf2, 0xd5, 0xa5}: "EmulatorPkgTokenSpaceGuid", efi.GUID{0x68, 0x2e, 0xf3, 0x5c, 0x60, 0x76, 0x9b, 0x44, 0x80, 0xe6, 0x7e, 0xa3, 0x6e, 0x03, 0xf6, 0xa8}: "EfiUserCredentialClassUnknownGuid", efi.GUID{0x68, 0x30, 0x6b, 0x42, 0xc7, 0x3b, 0x73, 0x4b, 0xac, 0xe8, 0x32, 0x2f, 0x0d, 0x0a, 0x10, 0x5b}: "BatteryHealthControlSmm", efi.GUID{0x68, 0x30, 0x90, 0xb3, 0x82, 0x74, 0x24, 0x44, 0xba, 0x4b, 0x40, 0x5f, 0x8f, 0xd7, 0x65, 0x4e}: "SiPolicyHobGuid", efi.GUID{0x68, 0x34, 0xd7, 0x03, 0x39, 0x3d, 0x9e, 0x4c, 0x97, 0xf1, 0x1f, 0xa9, 0x25, 0xbd, 0x7d, 0x9e}: "SystemSecureVariableStorageDxe", efi.GUID{0x68, 0x42, 0xc2, 0x8e, 0x45, 0xe5, 0x42, 0x42, 0xb5, 0x36, 0x04, 0xf9, 0x4c, 0x88, 0x99, 0x69}: "BoardUpdatePolicyDxe", efi.GUID{0x68, 0x44, 0x7e, 0x1a, 0x55, 0x2f, 0x56, 0x4a, 0x90, 0x3c, 0x01, 0x26, 0x5e, 0xb7, 0x62, 0x2b}: "TcpDxe", efi.GUID{0x68, 0x4f, 0x2b, 0x0b, 0x66, 0x35, 0xfc, 0x40, 0xb7, 0xe6, 0xfa, 0x81, 0x99, 0x93, 0x84, 0x0a}: "OemUniWillVariableDxe", efi.GUID{0x68, 0x4f, 0xc9, 0x4a, 0x51, 0xe6, 0x38, 0x4b, 0xa1, 0xd8, 0x2d, 0x5d, 0xef, 0xfa, 0x0f, 0x60}: "HDAudioSmi", efi.GUID{0x68, 0x51, 0xf1, 0xd8, 0xa0, 0x57, 0xd5, 0x46, 0x90, 0x71, 0x2f, 0x3c, 0x23, 0xcb, 0x23, 0x6d}: "RpmcPei", efi.GUID{0x68, 0x58, 0x6a, 0x9e, 0xc0, 0x6b, 0x5d, 0x4f, 0xba, 0x8f, 0x48, 0x74, 0xd3, 0x1e, 0x41, 0xc9}: "DellUefiClass3ConfigDxe", efi.GUID{0x68, 0x60, 0xff, 0x6c, 0xd3, 0x4f, 0x79, 0x47, 0x95, 0xb8, 0x4d, 0xfc, 0x90, 0x72, 0x23, 0x71}: "PlatformVTdInfoSamplePei", efi.GUID{0x68, 0x62, 0x79, 0xf4, 0x6e, 0x1f, 0x3c, 0x47, 0x80, 0xb2, 0x7a, 0xfc, 0x3d, 0x2a, 0xc7, 0xdc}: "RtcWakeUpSmm", efi.GUID{0x68, 0x62, 0xa6, 0xf9, 0x9f, 0xc4, 0x29, 0x4d, 0x8d, 0x20, 0xfc, 0x1f, 0xb0, 0x4b, 0x82, 0xf4}: "IntelLanUefiDriverGpy215", efi.GUID{0x68, 0x66, 0xf2, 0x3e, 0x7b, 0xc1, 0xf8, 0x43, 0xa3, 0x0a, 0xd8, 0x87, 0xf9, 0x59, 0x06, 0xe1}: "DellFmpCpldPei", efi.GUID{0x68, 0x67, 0x66, 0x67, 0x64, 0x9c, 0xaa, 0x4c, 0xba, 0xf4, 0xca, 0x3e, 0x4c, 0xb7, 0x69, 0x7a}: "EfiSmbSmmDaCiProtocolVer2", efi.GUID{0x68, 0x68, 0x4c, 0x54, 0x26, 0xaa, 0x94, 0x4b, 0xa4, 0x3d, 0x80, 0xa1, 0xbf, 0x4e, 0x65, 0xef}: "DellErrorHandlerSmm", efi.GUID{0x68, 0x6a, 0x21, 0x59, 0x64, 0x06, 0x93, 0x42, 0x82, 0xe6, 0x5d, 0xcf, 0x4f, 0x99, 0xa0, 0x6f}: "AmdCpmUcsiPeim", efi.GUID{0x68, 0x6d, 0x72, 0x11, 0x47, 0xf1, 0xdf, 0x48, 0xab, 0x16, 0x04, 0x89, 0x81, 0x8b, 0xd5, 0x70}: "AmiHpetTimer", efi.GUID{0x68, 0x73, 0xb9, 0x97, 0x31, 0x18, 0x4c, 0x43, 0xa9, 0xd8, 0xa2, 0x04, 0x40, 0xa9, 0x1c, 0x48}: "Vmxnet2Dxe", efi.GUID{0x68, 0x75, 0xca, 0xf7, 0x09, 0x5a, 0x2c, 0x4d, 0x8a, 0x9b, 0x75, 0x84, 0x68, 0x59, 0x2a, 0xe2}: "AmiNvramControlProtocolGuid", efi.GUID{0x68, 0x7f, 0x9b, 0x23, 0xe1, 0x26, 0x48, 0x4b, 0xb9, 0x66, 0x85, 0x33, 0x8a, 0xa7, 0xb6, 0x37}: "OemSioPei", efi.GUID{0x68, 0x87, 0xf4, 0xf2, 0x85, 0x89, 0xdb, 0x11, 0xb8, 0xda, 0x00, 0x40, 0xd0, 0x2b, 0x18, 0x35}: "UnixPeiLoadFile", efi.GUID{0x68, 0x88, 0xe9, 0xf2, 0x85, 0x89, 0xdb, 0x11, 0x9a, 0x59, 0x00, 0x40, 0xd0, 0x2b, 0x18, 0x35}: "EfiUnixThunkProtocol", efi.GUID{0x68, 0x8a, 0x19, 0x68, 0x49, 0xd2, 0x26, 0x48, 0xbc, 0x5e, 0x45, 0xdf, 0x0c, 0xca, 0x2a, 0x53}: "EmuLinuxLoader", efi.GUID{0x68, 0x8a, 0x9e, 0x92, 0xb6, 0x0f, 0x20, 0x4f, 0xac, 0x5e, 0xd2, 0x94, 0xc5, 0x0b, 0x1c, 0xbb}: "TcpConnect_DXE", efi.GUID{0x68, 0x91, 0xec, 0xe9, 0x65, 0x10, 0x90, 0x4f, 0x8c, 0x44, 0xc1, 0x41, 0x3a, 0xaa, 0xe4, 0x3f}: "ODMAdminPasswordCheckVariable", efi.GUID{0x68, 0x95, 0x0d, 0x17, 0x69, 0xc9, 0xa1, 0x4f, 0xa5, 0x33, 0xdb, 0x67, 0x79, 0xbf, 0xbe, 0x62}: "LenovoEn25Qh128FlashPartSmm", efi.GUID{0x68, 0x9a, 0xc5, 0x50, 0x20, 0x19, 0x6e, 0x4b, 0xa2, 0x96, 0x2d, 0x37, 0xc0, 0x61, 0x9e, 0xb9}: "SetupMenuSmm", efi.GUID{0x68, 0x9c, 0x07, 0xeb, 0x05, 0x0b, 0x53, 0x4a, 0xb8, 0xd5, 0x01, 0xc9, 0x95, 0xd6, 0x6a, 0x23}: "AmdMemPprSmmDriver", efi.GUID{0x68, 0xa2, 0x27, 0xbf, 0x69, 0xf3, 0xa2, 0x43, 0xb2, 0x95, 0x24, 0x2d, 0xee, 0x7f, 0x3c, 0x29}: "DellPowerButtonDxe", efi.GUID{0x68, 0xaa, 0xba, 0x4e, 0x78, 0xec, 0xf4, 0x4a, 0xb5, 0xa8, 0x6e, 0x9a, 0x9e, 0xcc, 0xf3, 0xff}: "CombinedFWUpdate", efi.GUID{0x68, 0xad, 0x95, 0x3a, 0x35, 0xd7, 0x8a, 0x41, 0xaf, 0x10, 0x5a, 0xe5, 0x16, 0x55, 0x59, 0x94}: "AaeonLanByPassSmi", efi.GUID{0x68, 0xc1, 0xc0, 0x35, 0x07, 0x26, 0x51, 0x4e, 0xbb, 0x53, 0x44, 0x8e, 0x3e, 0xd1, 0xa8, 0x7f}: "PciBusNoEnumerationDxe", efi.GUID{0x68, 0xcf, 0xf4, 0x8a, 0xe4, 0xeb, 0x21, 0x4b, 0xa0, 0x08, 0x0c, 0xb3, 0xda, 0x27, 0x7b, 0xe5}: "ShadowMicrocodePei", efi.GUID{0x68, 0xd7, 0x23, 0x9e, 0xf3, 0xd2, 0x66, 0x43, 0x9f, 0xc3, 0x3a, 0x7a, 0xba, 0x86, 0x43, 0x74}: "EfiVlanConfigProtocolGuid", efi.GUID{0x68, 0xd8, 0x7c, 0x3d, 0x2e, 0x07, 0x7e, 0x4a, 0x9c, 0x83, 0x1d, 0xce, 0x7c, 0x0d, 0xb0, 0xac}: "DG_GOP", efi.GUID{0x68, 0xdb, 0xda, 0x90, 0x68, 0xb8, 0x62, 0x4d, 0xa0, 0x7f, 0x09, 0xb3, 0xb6, 0x4d, 0xa0, 0x39}: "Mebx", efi.GUID{0x68, 0xe1, 0x70, 0xb6, 0x14, 0xbd, 0x33, 0x4d, 0x86, 0xb0, 0xe6, 0x32, 0x84, 0x84, 0x03, 0xf1}: "AmdMemoryHobInfoPeimV2", efi.GUID{0x68, 0xe5, 0x30, 0x6a, 0x8d, 0x59, 0x7a, 0x40, 0xa7, 0x77, 0x8a, 0xee, 0x93, 0xba, 0x28, 0x12}: "AmdPlatformRasBrhPei", efi.GUID{0x68, 0xec, 0x53, 0x9f, 0xa7, 0x49, 0x4b, 0x7f, 0x88, 0xde, 0xc4, 0x1a, 0x96, 0xfd, 0xba, 0xa6}: "Ip4Dxe", efi.GUID{0x68, 0xec, 0x88, 0xbd, 0xe4, 0xeb, 0x7b, 0x4f, 0x93, 0x5a, 0x4f, 0x66, 0x66, 0x42, 0xe7, 0x5f}: "EfiAcpiEnDispatchProtocolGuid", efi.GUID{0x68, 0xee, 0xeb, 0x95, 0x45, 0xf6, 0x66, 0x48, 0x9b, 0xa9, 0x51, 0xd3, 0xee, 0xb3, 0xb6, 0x50}: "FmpDxe", efi.GUID{0x68, 0xf0, 0xf7, 0xe1, 0xe7, 0x97, 0x74, 0x4b, 0xbf, 0x0f, 0x62, 0x67, 0x45, 0xaf, 0x99, 0x34}: "DxeSpiNorFlashCommBuffer", efi.GUID{0x68, 0xf2, 0xd3, 0x82, 0x7a, 0x75, 0xcd, 0x44, 0xa8, 0x7d, 0x13, 0xfd, 0xa9, 0x72, 0xb9, 0x99}: "EfiPlatformTypeLightningRidgeExecB1Protocol", efi.GUID{0x68, 0xf5, 0xa6, 0xe6, 0xb5, 0x53, 0xa4, 0x45, 0x85, 0x9d, 0x43, 0xb8, 0xc6, 0xc3, 0x64, 0x5b}: "BiosDiags", efi.GUID{0x68, 0xfc, 0x96, 0x69, 0x40, 0xb0, 0x16, 0x46, 0xa8, 0x9c, 0x60, 0xb4, 0xc9, 0x5d, 0x7b, 0xe6}: "ProjectDxePriori", efi.GUID{0x69, 0x00, 0x99, 0x5b, 0xf3, 0xaa, 0xe8, 0x4c, 0x93, 0xae, 0x53, 0x3d, 0x0d, 0x30, 0xa5, 0x6b}: "OemSSID", efi.GUID{0x69, 0x01, 0x06, 0x11, 0xbe, 0x5e, 0x55, 0x41, 0xb0, 0x35, 0xd9, 0x85, 0x38, 0x47, 0x7e, 0xcc}: "CxlPlatformDevice", efi.GUID{0x69, 0x02, 0x9d, 0xd9, 0x2d, 0x59, 0x18, 0x46, 0xa3, 0x6c, 0xfa, 0x80, 0x07, 0x33, 0x1c, 0xbc}: "DeviceInfoLookupDxe", efi.GUID{0x69, 0x14, 0x53, 0x53, 0x8e, 0x55, 0xf1, 0x4a, 0x80, 0x3a, 0xf9, 0x66, 0xf2, 0x7c, 0x57, 0x3b}: "BatteryState2", efi.GUID{0x69, 0x23, 0x77, 0x17, 0x62, 0xd2, 0x90, 0x4b, 0x9f, 0x31, 0xbd, 0xc4, 0x1f, 0x26, 0x63, 0xa5}: "mebx_main", efi.GUID{0x69, 0x27, 0xf0, 0x00, 0x45, 0xae, 0xcf, 0x41, 0xaa, 0x58, 0x63, 0x77, 0xb8, 0x7b, 0xa9, 0x9a}: "DeviceLayoutLoadPei", efi.GUID{0x69, 0x2c, 0x3c, 0xe8, 0xe2, 0x31, 0x57, 0x45, 0xa9, 0x6f, 0x0a, 0xda, 0xb9, 0xeb, 0x73, 0x53}: "SmbiosDataUpdateDxeNeonCityEPECB", efi.GUID{0x69, 0x31, 0x9c, 0x0c, 0x39, 0x6f, 0x9e, 0x40, 0x99, 0x0b, 0x5b, 0x8b, 0x48, 0xb9, 0xd2, 0xb9}: "SyncUpNvramToPostFlag", efi.GUID{0x69, 0x3d, 0x8a, 0xec, 0xdf, 0x6d, 0x08, 0x41, 0x94, 0x76, 0x73, 0x37, 0xfc, 0x52, 0x21, 0x36}: "EfiKmsFormatGeneric128Guid", efi.GUID{0x69, 0x4a, 0x55, 0xcd, 0x4d, 0xee, 0x4f, 0x40, 0x85, 0x5a, 0x84, 0xa6, 0xa3, 0x97, 0x55, 0xd7}: "AmiSriovLibNull", efi.GUID{0x69, 0x4c, 0x9a, 0x6e, 0xc6, 0x57, 0xcd, 0x4f, 0xb0, 0x83, 0x4f, 0x2c, 0x3b, 0xdb, 0x60, 0x51}: "FdtPlatformDxe", efi.GUID{0x69, 0x4f, 0x6c, 0x46, 0xe5, 0x2c, 0x63, 0x41, 0x99, 0xe7, 0x5a, 0x67, 0x3f, 0x9c, 0x43, 0x1c}: "VGAInformation", efi.GUID{0x69, 0x5a, 0x45, 0xdd, 0x75, 0xec, 0x6c, 0x45, 0x84, 0xd2, 0x95, 0xca, 0xe7, 0xd3, 0xc6, 0xd3}: "EslTcp6ServiceGuid", efi.GUID{0x69, 0x5a, 0x62, 0x6f, 0xb1, 0x7d, 0x7b, 0x4f, 0x94, 0xc2, 0x05, 0x6a, 0x78, 0x52, 0x52, 0xce}: "RsaInit", efi.GUID{0x69, 0x5a, 0xa3, 0x7a, 0x6c, 0x50, 0x4f, 0x44, 0xa7, 0xaf, 0x69, 0x4b, 0xf5, 0x6f, 0x71, 0xc8}: "EfiFirmwareVolumeDispatchProtocol", efi.GUID{0x69, 0x5b, 0x58, 0xb2, 0x63, 0xfb, 0x20, 0x42, 0x84, 0x4a, 0x8f, 0xbe, 0xa8, 0xbf, 0x01, 0xaf}: "PeiIoLibCpuIo", efi.GUID{0x69, 0x67, 0xcf, 0xda, 0xd5, 0xc3, 0xff, 0x4e, 0xa1, 0x81, 0xfa, 0x09, 0x88, 0xe1, 0xd9, 0xb4}: "AmdCpmModernStandbyInitDxe", efi.GUID{0x69, 0x67, 0xcf, 0xdc, 0xd5, 0xc3, 0xff, 0x4e, 0xa1, 0x81, 0xfa, 0x09, 0x88, 0xe1, 0xd9, 0xb4}: "AmdCpmMsCommonInitDxe", efi.GUID{0x69, 0x6b, 0xd1, 0xf5, 0xc9, 0x80, 0xa0, 0xf8, 0xc2, 0x8d, 0xad, 0xc6, 0xf0, 0xd7, 0x13, 0x70}: "AmdMemSmbiosV2RplPei", efi.GUID{0x69, 0x75, 0x04, 0xd6, 0x08, 0xc5, 0x8f, 0x49, 0xae, 0xc1, 0x72, 0xe7, 0x7d, 0xad, 0xe7, 0xac}: "AepLogWmiSmm", efi.GUID{0x69, 0x78, 0x9b, 0x63, 0x03, 0x43, 0xc6, 0x44, 0x89, 0xae, 0xad, 0xf4, 0xf1, 0x33, 0x33, 0x18}: "EcSecureFlashDxe", efi.GUID{0x69, 0x7f, 0xc1, 0x86, 0x91, 0x6a, 0x1a, 0x45, 0x86, 0xb6, 0xf9, 0x2e, 0xbc, 0x60, 0x28, 0x31}: "AthQCA9377Undi", efi.GUID{0x69, 0x88, 0x6b, 0x7d, 0x17, 0x83, 0xd1, 0x43, 0x9e, 0x4e, 0xad, 0xb0, 0xb0, 0xf5, 0x84, 0x07}: "FjMfgPostSatControlDxe", efi.GUID{0x69, 0x89, 0xbd, 0xb5, 0x78, 0x09, 0x4b, 0x41, 0xba, 0x9f, 0xc4, 0x6b, 0x0a, 0x95, 0xb7, 0x6b}: "DellReFlashSmm", efi.GUID{0x69, 0x8c, 0xce, 0x5b, 0xf2, 0x40, 0xc4, 0x87, 0x04, 0x7b, 0xce, 0xab, 0xf0, 0x09, 0xf7, 0xed}: "MctpSmbusSmm", efi.GUID{0x69, 0x8d, 0xf4, 0xf6, 0x1e, 0x0c, 0x3a, 0x4a, 0x80, 0xdd, 0xcc, 0x15, 0x47, 0x4f, 0xf5, 0x2a}: "DellDesktopPowerLEDDxe", efi.GUID{0x69, 0x91, 0xc8, 0xc7, 0x42, 0x1a, 0x5e, 0x4e, 0xb3, 0x4b, 0xe6, 0x83, 0x06, 0x71, 0xc9, 0xa6}: "AmdSb900Smm", efi.GUID{0x69, 0x9e, 0x66, 0xe5, 0xa9, 0x48, 0x5f, 0x2f, 0x68, 0x4c, 0x92, 0x89, 0xfc, 0xa7, 0x37, 0xe9}: "RasOemDimmMap", efi.GUID{0x69, 0xa3, 0x0d, 0x9d, 0x0b, 0x54, 0xf8, 0x46, 0x85, 0xa0, 0x2b, 0x5f, 0x2c, 0x30, 0x1e, 0x15}: "EfiTimeVariable", efi.GUID{0x69, 0xb9, 0x1b, 0xdd, 0x0d, 0xbe, 0x70, 0x4b, 0x9e, 0x13, 0x2e, 0xd2, 0xe1, 0x85, 0x42, 0x40}: "LenovoWufuEsrtDxe", efi.GUID{0x69, 0xb9, 0x38, 0x5a, 0x6a, 0xcd, 0x14, 0x48, 0x82, 0xe6, 0x55, 0x9f, 0x84, 0x0b, 0xbc, 0x58}: "ISPDxe", efi.GUID{0x69, 0xbb, 0x70, 0xe7, 0xb4, 0xbc, 0x04, 0x4d, 0x9e, 0x97, 0x23, 0xff, 0x94, 0x56, 0xfe, 0xac}: "SystemAccess", efi.GUID{0x69, 0xbc, 0xc3, 0xe2, 0x5c, 0x61, 0x5b, 0x4b, 0x8e, 0x5c, 0xa0, 0x33, 0xa9, 0xc2, 0x5e, 0xd6}: "Tcg800155PlatformIdEventHob", efi.GUID{0x69, 0xd7, 0x9c, 0xe5, 0x83, 0x50, 0x26, 0x4f, 0x90, 0x94, 0x6c, 0x91, 0x9f, 0x91, 0x6c, 0x4e}: "EdkiiAtaAtapiPolicyProtocol", efi.GUID{0x69, 0xd7, 0xad, 0xdb, 0x6a, 0xe8, 0x19, 0x48, 0x81, 0x20, 0xe9, 0x91, 0x79, 0x2c, 0x0b, 0xc1}: "VbtMipiAuoGuid", efi.GUID{0x69, 0xd7, 0xc9, 0x26, 0x67, 0x91, 0x37, 0x45, 0x82, 0x19, 0xd9, 0xf5, 0xfc, 0x23, 0x78, 0xbe}: "OemUsbTypeCDxe", efi.GUID{0x69, 0xde, 0xe7, 0x9f, 0xea, 0x0a, 0x0a, 0x47, 0xb5, 0x0a, 0x13, 0x98, 0x13, 0x64, 0x91, 0x89}: "KekVar", efi.GUID{0x69, 0xe0, 0x04, 0xce, 0xc4, 0x89, 0x9c, 0x4b, 0x89, 0xfc, 0x4a, 0xa4, 0x8e, 0x98, 0x16, 0x3a}: "FchSmbusPei", efi.GUID{0x69, 0xe1, 0x44, 0xb1, 0xb1, 0xaf, 0x26, 0x44, 0xb0, 0xec, 0x09, 0x97, 0x28, 0x90, 0x93, 0x42}: "MuxGraphicsSwitch", efi.GUID{0x69, 0xe7, 0x01, 0xed, 0x97, 0x0b, 0xe1, 0x48, 0x99, 0xea, 0xdf, 0x14, 0x4b, 0xd2, 0xff, 0x32}: "OememPeiSSID", efi.GUID{0x69, 0xf1, 0x83, 0x9d, 0xc4, 0x17, 0x7e, 0x4e, 0x90, 0xa7, 0x63, 0x81, 0xa5, 0xc2, 0x18, 0x31}: "ClientronSecureBootDxe", efi.GUID{0x69, 0xf2, 0x83, 0xe8, 0x02, 0x3d, 0x88, 0x4a, 0x9a, 0x11, 0xe2, 0x90, 0x76, 0xdc, 0xb7, 0x3e}: "FjMfgChangeBootOrderDxe", efi.GUID{0x69, 0xf4, 0xdc, 0xc9, 0xc4, 0xa7, 0xd5, 0x11, 0x87, 0xda, 0x00, 0x06, 0x29, 0x45, 0xc3, 0xb9}: "EfiStandardCallerId", efi.GUID{0x69, 0xf9, 0x39, 0xd7, 0x2d, 0xfb, 0xc2, 0x4b, 0xaf, 0xe7, 0x08, 0x13, 0x27, 0xd3, 0xfe, 0xde}: "ActiveManagement", efi.GUID{0x69, 0xfc, 0x00, 0xe0, 0x3b, 0x65, 0xf5, 0x43, 0x93, 0xbc, 0x43, 0x87, 0x95, 0x7f, 0x33, 0x0d}: "NVMEPowerSettingControl", efi.GUID{0x69, 0xfc, 0x84, 0x0e, 0xcc, 0x29, 0x6d, 0x4c, 0x92, 0xac, 0x6d, 0x47, 0x69, 0x21, 0x85, 0x0f}: "UpdateDriverDxe", efi.GUID{0x6a, 0x02, 0xd3, 0xe5, 0xa5, 0x1c, 0xf0, 0x40, 0x8f, 0xb6, 0x4b, 0x1a, 0xfa, 0x3c, 0x6e, 0xaa}: "AmiCmosAccessSmmProtocol", efi.GUID{0x6a, 0x03, 0x29, 0xc6, 0xf0, 0x2e, 0x74, 0x4a, 0x96, 0x42, 0xa9, 0xfe, 0x38, 0x84, 0x27, 0x5e}: "AmdFchHwmDxe", efi.GUID{0x6a, 0x0f, 0x5b, 0x33, 0xbd, 0xfc, 0x2a, 0x40, 0xb4, 0xbb, 0x0c, 0x3e, 0xed, 0xaa, 0xf9, 0xd3}: "EhciRouting", efi.GUID{0x6a, 0x11, 0xd9, 0x32, 0x15, 0xaf, 0x76, 0x49, 0x90, 0x8c, 0x2c, 0x6e, 0x05, 0xcb, 0x78, 0x9a}: "AmiMultiPlatformProtocol", efi.GUID{0x6a, 0x19, 0x4b, 0x29, 0xcc, 0xa3, 0x43, 0x4a, 0x85, 0x7f, 0xee, 0xc2, 0x61, 0x47, 0x85, 0x7b}: "Tpm2DeviceLibSeC", efi.GUID{0x6a, 0x1f, 0xb7, 0xf9, 0xb5, 0x5e, 0xd6, 0x42, 0x84, 0xff, 0x9e, 0x8a, 0x23, 0x89, 0x52, 0x6f}: "DellAutoRtcResetDxe", efi.GUID{0x6a, 0x22, 0x66, 0xf8, 0xa5, 0xea, 0x5a, 0x4f, 0xa9, 0x0a, 0x6c, 0xfb, 0xa5, 0x7c, 0x58, 0x8e}: "SmmPerformanceProtocolGuid", efi.GUID{0x6a, 0x25, 0x18, 0x28, 0xdb, 0x6b, 0x71, 0x48, 0x99, 0x3c, 0x95, 0x31, 0x58, 0x54, 0x01, 0x2e}: "EdidOverrideDxe", efi.GUID{0x6a, 0x25, 0xe3, 0x46, 0xc1, 0xe5, 0x2a, 0x4d, 0x82, 0x82, 0x50, 0x5a, 0xfb, 0x41, 0xce, 0x65}: "DuetFwh", efi.GUID{0x6a, 0x2c, 0x45, 0xca, 0x0c, 0xdf, 0xc9, 0x4d, 0x82, 0xfb, 0xea, 0xe2, 0xab, 0x31, 0x29, 0x46}: "EfiQuarkNcSocIdTokenSpaceGuid", efi.GUID{0x6a, 0x2c, 0xd4, 0x4e, 0x97, 0xac, 0xc9, 0x46, 0x97, 0x58, 0xe1, 0xfa, 0x76, 0x9d, 0x3a, 0xfa}: "OemIceSetup", efi.GUID{0x6a, 0x31, 0xfd, 0x30, 0x28, 0x67, 0x41, 0x2e, 0xa6, 0x90, 0x0d, 0x13, 0x33, 0xd8, 0xca, 0xc1}: "EmuGraphicsWindowProtocolGuid", efi.GUID{0x6a, 0x33, 0x08, 0xf2, 0xf4, 0xbf, 0x78, 0x46, 0xba, 0x4f, 0x34, 0x2c, 0x72, 0x37, 0x3c, 0x3a}: "FjOemIgcEsrtDxe", efi.GUID{0x6a, 0x3c, 0x67, 0xf7, 0x5c, 0x9c, 0x54, 0x4c, 0xb0, 0x86, 0xc6, 0xe0, 0xb7, 0xd0, 0x3d, 0xb8}: "AmdSmmControl", efi.GUID{0x6a, 0x40, 0x2e, 0x0b, 0x5b, 0xed, 0x68, 0x46, 0xbc, 0xd1, 0x2b, 0x1d, 0xb0, 0x18, 0x41, 0xfc}: "DellAcpiOemConfig", efi.GUID{0x6a, 0x40, 0xa6, 0x31, 0xdf, 0x6b, 0x46, 0x4e, 0xb2, 0xa2, 0xeb, 0xaa, 0x89, 0xc4, 0x09, 0x20}: "EfiHiiImageProtocolGuid", efi.GUID{0x6a, 0x43, 0x28, 0x7a, 0x13, 0xe1, 0x6a, 0x40, 0xaf, 0xf9, 0x0d, 0xbf, 0x7f, 0x64, 0x3e, 0x02}: "EfiTcgPrivateInterfaceGuid", efi.GUID{0x6a, 0x49, 0xee, 0x17, 0xe4, 0xd8, 0x9a, 0x4b, 0x94, 0xd1, 0xce, 0x82, 0x72, 0x30, 0x08, 0x50}: "EfiPeiBootInRecoveryModePpiGuid", efi.GUID{0x6a, 0x4a, 0xea, 0xde, 0x08, 0x93, 0x5b, 0x46, 0xad, 0x99, 0xb5, 0xbd, 0xa5, 0xb5, 0x55, 0x75}: "CompalThermalUtilitySmi", efi.GUID{0x6a, 0x4c, 0x98, 0x53, 0x4a, 0x1b, 0x74, 0x41, 0x95, 0x12, 0xa6, 0x5e, 0x5b, 0xc8, 0xb2, 0x78}: "PlatformStage1", efi.GUID{0x6a, 0x4e, 0x2c, 0xc1, 0x3d, 0xbc, 0x91, 0x4a, 0x82, 0x99, 0x7e, 0x0a, 0x4d, 0x5b, 0x52, 0x89}: "SmcOemID", efi.GUID{0x6a, 0x4e, 0x99, 0x9d, 0x12, 0x56, 0x9f, 0x4d, 0xae, 0x8f, 0x45, 0xce, 0x77, 0x1d, 0x57, 0xea}: "RTSCallbackHandleDxe", efi.GUID{0x6a, 0x56, 0x74, 0x70, 0x33, 0x2f, 0xd9, 0x43, 0x9c, 0x32, 0x2d, 0xa1, 0x7a, 0xe2, 0x7b, 0xad}: "BootDeviceInfoDxe", efi.GUID{0x6a, 0x58, 0x53, 0x06, 0xd4, 0x9e, 0x0c, 0x40, 0xa3, 0x42, 0x9e, 0xfa, 0xf9, 0x9c, 0xe5, 0x4e}: "SecuredCorePCDeviceIdentifier", efi.GUID{0x6a, 0x59, 0xe5, 0xba, 0xdf, 0x14, 0xfc, 0x40, 0x81, 0x0e, 0xbb, 0x24, 0x28, 0x00, 0x96, 0x00}: "HpCmosButton", efi.GUID{0x6a, 0x60, 0xf8, 0x41, 0x4c, 0xf7, 0x9d, 0x40, 0x94, 0x65, 0x52, 0x19, 0x55, 0x7c, 0xbc, 0x7d}: "DellFlashIoSmmProtocol", efi.GUID{0x6a, 0x6e, 0xf3, 0xc9, 0x84, 0x68, 0x5d, 0x46, 0xa2, 0x0d, 0x06, 0x10, 0xb6, 0x5c, 0xfc, 0xd6}: "SyncBIOSimage", efi.GUID{0x6a, 0x71, 0x32, 0x8d, 0xdf, 0x60, 0xde, 0x4b, 0x86, 0x47, 0x3d, 0x17, 0x8c, 0xc8, 0x2b, 0x6c}: "DellMePlatformConfigDxe", efi.GUID{0x6a, 0x74, 0x79, 0xb9, 0x1f, 0x8c, 0x2b, 0x4a, 0x97, 0xe4, 0x78, 0xe9, 0x3a, 0x71, 0xa7, 0x0a}: "EfiBdatAccess", efi.GUID{0x6a, 0x76, 0x40, 0x57, 0x8e, 0x71, 0xc0, 0x4d, 0x99, 0x35, 0xc3, 0x6f, 0x7d, 0x3f, 0x88, 0x4f}: "DefaultdbxFile", efi.GUID{0x6a, 0x7e, 0xbd, 0xeb, 0xd0, 0x37, 0x7a, 0x41, 0x94, 0x10, 0xd1, 0x9a, 0x59, 0xbe, 0x34, 0x9f}: "DellBiosVersionNameDxe", efi.GUID{0x6a, 0x80, 0x62, 0x78, 0x71, 0x71, 0xa0, 0x47, 0x98, 0xa2, 0x12, 0xf3, 0x50, 0x5a, 0x1e, 0xf2}: "AtapiCommandSmm", efi.GUID{0x6a, 0x85, 0x3d, 0xae, 0x5d, 0x65, 0x8d, 0x47, 0x8e, 0x48, 0x16, 0x61, 0x31, 0x1a, 0xa3, 0xbf}: "HpEsrtDxe", efi.GUID{0x6a, 0x86, 0x8c, 0x62, 0xbb, 0x9c, 0x00, 0x4e, 0xbf, 0x85, 0x7a, 0x9e, 0x35, 0x0e, 0x08, 0x16}: "PegaSmiDxe", efi.GUID{0x6a, 0x88, 0x97, 0x8a, 0xe1, 0xee, 0xf8, 0x4b, 0xad, 0x20, 0x68, 0xf3, 0x98, 0xf9, 0x5b, 0x12}: "AMDPSPKvmMiscDxe", efi.GUID{0x6a, 0x8e, 0xb0, 0x80, 0xce, 0xc6, 0x0f, 0x43, 0x9c, 0x07, 0x52, 0xa9, 0x52, 0x6d, 0xb0, 0xf9}: "CompalWSMTDxe", efi.GUID{0x6a, 0x8f, 0x96, 0xc4, 0xcc, 0x5c, 0xdc, 0x4b, 0x9e, 0x86, 0xb7, 0xa6, 0x5a, 0x2e, 0xea, 0xf1}: "AmdCdmaDsmDxe", efi.GUID{0x6a, 0x94, 0x11, 0x39, 0x2f, 0x7b, 0xae, 0x43, 0x86, 0xbe, 0x8e, 0xc5, 0xa8, 0xa3, 0x56, 0xcd}: "AmdPspPeiV2Brh", efi.GUID{0x6a, 0xae, 0x49, 0xf1, 0x52, 0x12, 0xa8, 0x49, 0x94, 0xfc, 0xa2, 0xdd, 0xf5, 0xdc, 0xcf, 0x5d}: "AsusWatchDogTimerSmm", efi.GUID{0x6a, 0xb1, 0xce, 0x66, 0xdd, 0x66, 0xa7, 0x40, 0xaa, 0xff, 0x0a, 0x9b, 0x9f, 0x83, 0xfd, 0x6b}: "WwanReadySettingDxe", efi.GUID{0x6a, 0xb5, 0x8a, 0x91, 0x5d, 0x36, 0xf5, 0x4e, 0xb7, 0x12, 0x45, 0x99, 0x4f, 0xcd, 0xde, 0x57}: "OdmEmDellSMBiosUpdate", efi.GUID{0x6a, 0xb6, 0x8e, 0xe0, 0x63, 0xf0, 0xb4, 0x4b, 0x9d, 0x11, 0x18, 0xf7, 0x7c, 0x22, 0x7b, 0xb7}: "HpPlatformSataPortConfigDxe", efi.GUID{0x6a, 0xba, 0x87, 0x2f, 0x04, 0x5c, 0x85, 0x43, 0xa7, 0x80, 0xf3, 0xbf, 0x78, 0xa9, 0x7b, 0xec}: "EfiBlockIoCryptoAlgoAesXtsGuid", efi.GUID{0x6a, 0xc1, 0x95, 0xd9, 0x06, 0xdf, 0x26, 0x4b, 0x9c, 0x5b, 0x24, 0x6f, 0xc7, 0x46, 0x46, 0x49}: "SystemAcpiSlp2Dxe", efi.GUID{0x6a, 0xc6, 0x81, 0x7c, 0x11, 0x4f, 0xab, 0x47, 0x82, 0xd3, 0x67, 0xc4, 0xd6, 0x35, 0xae, 0xd1}: "LegacyMebxLaunch", efi.GUID{0x6a, 0xd4, 0x13, 0x70, 0x31, 0xd6, 0xce, 0x4d, 0xab, 0xb7, 0x41, 0x76, 0x0e, 0x02, 0xc7, 0xc7}: "DellTpmBusConfigDxe", efi.GUID{0x6a, 0xd5, 0x6f, 0xac, 0x41, 0x3d, 0xfd, 0x4e, 0xa1, 0xb9, 0x87, 0x02, 0x93, 0x81, 0x1a, 0x28}: "PhMebxHotkey", efi.GUID{0x6a, 0xdb, 0x55, 0x01, 0x05, 0x3c, 0xf6, 0x46, 0x93, 0x41, 0xfe, 0xfa, 0x40, 0x85, 0xe6, 0x1e}: "FjPostScreenMfgErrorCheckDxe", efi.GUID{0x6a, 0xde, 0x29, 0x00, 0x24, 0xe0, 0xb8, 0x4e, 0xa9, 0x1d, 0x9f, 0x23, 0xaa, 0x1f, 0x4e, 0x92}: "NetworkStackSetupScreen", efi.GUID{0x6a, 0xde, 0x5b, 0x82, 0xe4, 0xe9, 0xc8, 0x4c, 0x9c, 0x2d, 0x09, 0xb2, 0x9c, 0x3b, 0xd4, 0x26}: "EfiCpPcPlatTokenSpace", efi.GUID{0x6a, 0xe1, 0x5d, 0xde, 0xe4, 0x75, 0xde, 0x42, 0x86, 0xd8, 0x30, 0x66, 0x6a, 0x08, 0xea, 0x93}: "DellUefiClass3ConfigPei", efi.GUID{0x6a, 0xe6, 0xcb, 0x56, 0x3c, 0xbf, 0xf9, 0x48, 0xb9, 0xde, 0x8d, 0xa4, 0x2f, 0x90, 0x60, 0x74}: "SbPcdPei", efi.GUID{0x6a, 0xe9, 0x6e, 0x28, 0x1f, 0x5b, 0x4a, 0x48, 0x96, 0x89, 0xcf, 0x77, 0x0d, 0xc8, 0x91, 0x85}: "SioShmLock", efi.GUID{0x6a, 0xee, 0xe8, 0xa0, 0x92, 0x0e, 0xd4, 0x44, 0x86, 0x1b, 0x0e, 0xaa, 0x4a, 0xca, 0x44, 0xa2}: "EfiKmsFormatAescbc128Guid", efi.GUID{0x6a, 0xf6, 0x1c, 0xe5, 0x79, 0x7d, 0xd0, 0x43, 0x9e, 0xe8, 0x0a, 0x20, 0x84, 0xbd, 0xea, 0xd4}: "AmdRasRnDxe", efi.GUID{0x6a, 0xfd, 0xdb, 0x1d, 0x23, 0x34, 0x2f, 0x46, 0x91, 0x50, 0xa7, 0xff, 0xa6, 0x6f, 0xf0, 0xca}: "StaticSkuDataDxeLightningRidgeEXRP", efi.GUID{0x6a, 0xff, 0x62, 0xc1, 0xa5, 0xf5, 0xb7, 0x4d, 0x9e, 0xcf, 0x80, 0xee, 0xc2, 0x50, 0x17, 0x68}: "UtilityPartitionDxe", efi.GUID{0x6b, 0x0b, 0xa6, 0x45, 0x96, 0x9a, 0xaf, 0x44, 0xae, 0x84, 0xd7, 0x75, 0xcc, 0xb6, 0xd3, 0x20}: "DellMemorySlotInfo", efi.GUID{0x6b, 0x14, 0xa2, 0x57, 0x5f, 0x2f, 0xfe, 0x4b, 0x86, 0xb6, 0x30, 0x34, 0x71, 0xf2, 0xf4, 0x7c}: "FchShastaPei", efi.GUID{0x6b, 0x1a, 0x04, 0x05, 0xee, 0x4d, 0xbb, 0x47, 0x9e, 0x58, 0x59, 0x44, 0xd1, 0x87, 0x0e, 0xe5}: "UsbConfigGuid", efi.GUID{0x6b, 0x1e, 0xf5, 0xfc, 0x7f, 0x52, 0x8d, 0x43, 0xbe, 0x6d, 0xa6, 0xd1, 0x5f, 0x0c, 0xd9, 0x8b}: "EfiTraceHubStatusCodeHandleRuntimeDxe", efi.GUID{0x6b, 0x3e, 0x0a, 0xb6, 0xc4, 0x18, 0xe5, 0x46, 0xa2, 0x9a, 0xc9, 0xa1, 0x06, 0x65, 0xa2, 0x8e}: "EfiI2cIoProtocolGuid", efi.GUID{0x6b, 0x3f, 0xc5, 0xcc, 0x3a, 0xa0, 0xd8, 0x4e, 0x83, 0x9a, 0x03, 0xd9, 0x9c, 0x02, 0xb4, 0xe3}: "EfiNtLoadAsDllPpi", efi.GUID{0x6b, 0x46, 0xdd, 0x08, 0xfb, 0x69, 0x41, 0x4c, 0x90, 0xb2, 0x55, 0x11, 0x61, 0xc5, 0xec, 0xac}: "AmiAgesaChipsetDxe", efi.GUID{0x6b, 0x55, 0x1c, 0xcd, 0xbf, 0x62, 0xec, 0x4e, 0x8e, 0x73, 0x77, 0x31, 0xf8, 0xe8, 0x47, 0xb2}: "AmdCpmGpioInitSmm", efi.GUID{0x6b, 0x62, 0xd0, 0x96, 0xd5, 0x71, 0x01, 0x40, 0xac, 0x71, 0xe0, 0x5b, 0x10, 0x3b, 0xd4, 0x5d}: "F10App", efi.GUID{0x6b, 0x63, 0x58, 0x34, 0x94, 0x9a, 0xe7, 0x44, 0xbc, 0xa9, 0xf8, 0xdf, 0xa1, 0xf5, 0xd8, 0x94}: "LenovoSecureWipeLoader", efi.GUID{0x6b, 0x66, 0xcc, 0x0e, 0x62, 0x46, 0xf9, 0x47, 0x9d, 0xd5, 0xd0, 0x96, 0xff, 0x7d, 0xa4, 0x9e}: "PeiSecPerformancePpiGuid", efi.GUID{0x6b, 0x68, 0xc4, 0x27, 0xb8, 0x32, 0xec, 0x4b, 0xa4, 0x99, 0xc5, 0xba, 0x75, 0x63, 0x9f, 0xc9}: "RsaSmm", efi.GUID{0x6b, 0x69, 0x00, 0x91, 0x8f, 0x36, 0x9a, 0x4f, 0x98, 0x4a, 0xd6, 0x06, 0xe5, 0x78, 0xcc, 0xc1}: "SetupConfigUpdateDxeLightningRidgeEXRP", efi.GUID{0x6b, 0x69, 0xeb, 0xd6, 0xc3, 0x7e, 0x1b, 0x4d, 0xaa, 0x28, 0x67, 0x75, 0x74, 0x4c, 0x9e, 0xb5}: "TSEScreenMgmtProtocolGuid", efi.GUID{0x6b, 0x75, 0x69, 0x4a, 0x9b, 0x20, 0x57, 0x4d, 0x88, 0x10, 0x14, 0x2d, 0xac, 0x6b, 0xb7, 0xb5}: "FchSandstoneSmmInit", efi.GUID{0x6b, 0x7b, 0x53, 0x4e, 0xa9, 0xc6, 0x4f, 0x47, 0xa0, 0x23, 0xd5, 0x12, 0xcd, 0x14, 0x1a, 0x83}: "QrCodeGeneratorDxe", efi.GUID{0x6b, 0x83, 0xa9, 0x27, 0x74, 0xcd, 0xb2, 0x4d, 0x9a, 0x8e, 0x8a, 0x4f, 0xd5, 0x21, 0x80, 0xb7}: "NvmeDeviceService", efi.GUID{0x6b, 0x88, 0x15, 0x39, 0x33, 0xd8, 0x23, 0x4c, 0xb3, 0xed, 0x14, 0x53, 0xcc, 0xe7, 0xc5, 0xf2}: "IioCfgUpdateDxeLightningRidgeEXECB2", efi.GUID{0x6b, 0x93, 0x28, 0xba, 0x51, 0x40, 0xcf, 0x48, 0xa5, 0xcd, 0xb6, 0x3d, 0x7b, 0xfc, 0xa8, 0x4a}: "SmBusDxe", efi.GUID{0x6b, 0x93, 0x40, 0xa6, 0x4c, 0xf8, 0x97, 0x4b, 0x9f, 0x95, 0x2b, 0xfe, 0x78, 0xc1, 0xf0, 0xa1}: "KEMhHwmDxe", efi.GUID{0x6b, 0xa5, 0xfc, 0xfb, 0x36, 0xbb, 0x78, 0x4b, 0xaa, 0xab, 0xbe, 0x1b, 0x97, 0xec, 0x7c, 0xcb}: "EdkiiXtermR6", efi.GUID{0x6b, 0xaa, 0x5f, 0xdc, 0x33, 0xba, 0xcd, 0x49, 0x81, 0x46, 0xaf, 0x7d, 0x6d, 0xa3, 0x96, 0x87}: "AcpiOemNVSInitDxe", efi.GUID{0x6b, 0xb5, 0x74, 0x57, 0xb5, 0x40, 0xd6, 0x4f, 0x98, 0xf7, 0xd4, 0xd2, 0x7c, 0x86, 0xca, 0x49}: "FjGenericItemProtectedStorageDxe", efi.GUID{0x6b, 0xbc, 0xf2, 0x7f, 0xb9, 0xfc, 0x81, 0x43, 0xa6, 0x02, 0x45, 0xcd, 0xf9, 0xbf, 0xff, 0xb4}: "DelAmiCapsuleImageLoadedVar", efi.GUID{0x6b, 0xbe, 0x13, 0x00, 0x98, 0x21, 0xf1, 0x43, 0x93, 0xba, 0x2a, 0x7e, 0xd7, 0xb1, 0xe1, 0xcc}: "SystemUsbSwitchDxe", efi.GUID{0x6b, 0xd3, 0xaf, 0x19, 0x01, 0xf5, 0x46, 0x44, 0x9c, 0x9e, 0x04, 0x57, 0xdb, 0x6e, 0x78, 0x88}: "SetupItemLinkageDxe", efi.GUID{0x6b, 0xd9, 0xbd, 0xfa, 0xdd, 0x2d, 0x47, 0x47, 0x96, 0x12, 0xf9, 0xe7, 0x77, 0xc8, 0x4a, 0x38}: "SetupUtility", efi.GUID{0x6b, 0xe2, 0xfb, 0x82, 0xd4, 0x53, 0x8f, 0x44, 0x92, 0x4c, 0x7b, 0xe0, 0x12, 0x6e, 0xca, 0x4f}: "DellPxeUndiRom", efi.GUID{0x6b, 0xe4, 0x1c, 0x0d, 0xd9, 0x72, 0xa7, 0x4b, 0x95, 0xda, 0x23, 0x51, 0x18, 0x65, 0xe6, 0x61}: "CryptoPei", efi.GUID{0x6b, 0xe5, 0x4c, 0x16, 0xbc, 0x5e, 0x84, 0x49, 0xb0, 0xda, 0xc1, 0x2b, 0x4f, 0x21, 0xd2, 0xec}: "AmdRasRvSmm", efi.GUID{0x6b, 0xef, 0xec, 0x5f, 0xa4, 0x5f, 0x70, 0x45, 0x81, 0x63, 0x0c, 0xf7, 0x2a, 0x9c, 0x04, 0xc5}: "Ps2Main", efi.GUID{0x6b, 0xf7, 0x71, 0x71, 0xcd, 0xed, 0x00, 0x4f, 0xa7, 0xe5, 0x55, 0x9f, 0x71, 0xb8, 0xa0, 0x0d}: "AmdMemSh5Dxe", efi.GUID{0x6b, 0xfd, 0x61, 0x8e, 0x8b, 0x7a, 0x4f, 0x40, 0xb8, 0x3f, 0xaa, 0x90, 0xa4, 0x7c, 0xab, 0xdf}: "SmmSmbiosElog", efi.GUID{0x6c, 0x04, 0x1a, 0xbc, 0xbd, 0x7d, 0xf2, 0x41, 0x94, 0xe5, 0xd7, 0x59, 0x55, 0x54, 0xca, 0xf4}: "SystemFirmwareReportDxe", efi.GUID{0x6c, 0x0f, 0xdd, 0x11, 0x9b, 0x20, 0xce, 0x47, 0x8a, 0x98, 0x41, 0x8c, 0x9b, 0x7c, 0xc7, 0x56}: "DxeSwSmi", efi.GUID{0x6c, 0x10, 0xde, 0x5a, 0xed, 0x10, 0x66, 0x4c, 0x8e, 0x16, 0x86, 0xc4, 0xe5, 0x2e, 0xc4, 0x7a}: "FjRealtekLanDriver", efi.GUID{0x6c, 0x14, 0x73, 0x02, 0xc4, 0x96, 0xa1, 0x45, 0xa7, 0xaf, 0x78, 0xe0, 0x52, 0x4a, 0x0a, 0xe2}: "AmiBoardInfoProtocol", efi.GUID{0x6c, 0x19, 0x66, 0xdf, 0x8f, 0x95, 0x2f, 0x47, 0x93, 0x93, 0x71, 0x7d, 0x82, 0x11, 0x0a, 0xf6}: "AmiHashLogExtendExGuid", efi.GUID{0x6c, 0x21, 0x14, 0x13, 0x8d, 0xcb, 0x1c, 0x42, 0xb8, 0x54, 0x06, 0x23, 0x13, 0x86, 0xe6, 0x42}: "PlatformInfoDxe", efi.GUID{0x6c, 0x2e, 0x8a, 0x8c, 0x6c, 0xa5, 0x6c, 0x4a, 0x8c, 0x9b, 0xb4, 0xb6, 0xbb, 0x42, 0x08, 0xae}: "NvmeRaidDxe", efi.GUID{0x6c, 0x30, 0xe2, 0x12, 0xbd, 0x1e, 0x40, 0x31, 0xb9, 0x2e, 0xef, 0xa9, 0x09, 0x9e, 0x82, 0xd2}: "CacheManager", efi.GUID{0x6c, 0x31, 0xe6, 0x49, 0x1d, 0xcc, 0x78, 0x49, 0xb8, 0x89, 0xff, 0xaf, 0xc5, 0xc6, 0x1d, 0x0c}: "FjErrorDisplay", efi.GUID{0x6c, 0x35, 0x32, 0xdd, 0x4b, 0x43, 0x8e, 0x41, 0xb3, 0xf7, 0xe7, 0x22, 0x78, 0x25, 0xf7, 0x8e}: "UsbHubEnable", efi.GUID{0x6c, 0x3d, 0x93, 0xe8, 0xe6, 0x9a, 0xc7, 0x4e, 0x8c, 0x04, 0x0a, 0xa0, 0xc6, 0x2f, 0x0b, 0x49}: "DellNvmeC1Log", efi.GUID{0x6c, 0x46, 0xb2, 0x9d, 0x61, 0x4e, 0xce, 0x49, 0x9a, 0xfd, 0x78, 0x9a, 0xe7, 0x2c, 0x8f, 0x5d}: "HpLibArchiveDriver", efi.GUID{0x6c, 0x48, 0x4a, 0xb4, 0xb3, 0x8b, 0x7a, 0x45, 0xa8, 0xce, 0xf8, 0x9b, 0x17, 0x9c, 0x95, 0x04}: "DellEcIoPei", efi.GUID{0x6c, 0x66, 0x7c, 0x15, 0x74, 0x7c, 0x4a, 0x4e, 0xb6, 0x39, 0x7b, 0xba, 0x21, 0x48, 0x7c, 0xe1}: "QFanDXE", efi.GUID{0x6c, 0x76, 0x7f, 0x60, 0x55, 0x74, 0xbe, 0x42, 0x93, 0x0b, 0xe4, 0xd7, 0x6d, 0xb2, 0x72, 0x0f}: "EfiTrEEProtocolGuid", efi.GUID{0x6c, 0x78, 0x5a, 0x08, 0xff, 0x5c, 0x62, 0x47, 0x81, 0xcf, 0xd7, 0xcb, 0xfe, 0xca, 0x77, 0xd4}: "AmdPlatformRasBrhSmm", efi.GUID{0x6c, 0x7a, 0x45, 0x0a, 0x8e, 0x17, 0x8c, 0x43, 0xac, 0x96, 0xd9, 0xc0, 0xec, 0x52, 0xbe, 0x66}: "DellTcgPeiPolicy", efi.GUID{0x6c, 0x82, 0x3c, 0x8e, 0x9e, 0xb6, 0x56, 0x4f, 0x95, 0xab, 0x13, 0x24, 0xdd, 0x02, 0xe2, 0x8b}: "StdBoardPei", efi.GUID{0x6c, 0x87, 0x53, 0x66, 0xa1, 0xf6, 0xbb, 0x45, 0xa0, 0x27, 0x20, 0x45, 0x50, 0x93, 0xbc, 0x6d}: "SecPeiFspPlatformSecLibVlv2", efi.GUID{0x6c, 0x89, 0xb7, 0x92, 0x62, 0x33, 0xce, 0x46, 0x99, 0xb3, 0x4f, 0x5e, 0x3c, 0x34, 0xeb, 0x42}: "UniversalPayloadSmbios3Table", efi.GUID{0x6c, 0xae, 0x8c, 0x72, 0xfc, 0x1f, 0x9b, 0x44, 0x86, 0x81, 0xbb, 0x2a, 0x62, 0x1e, 0x00, 0x22}: "ContinueButtonSmall", efi.GUID{0x6c, 0xaf, 0x8f, 0x41, 0xcf, 0x2b, 0x41, 0x41, 0x89, 0x83, 0x9d, 0x33, 0xe1, 0xb6, 0x7b, 0x4c}: "SpiControllerSmm", efi.GUID{0x6c, 0xb4, 0xb9, 0x8e, 0x80, 0x8f, 0x6a, 0x4e, 0x9f, 0xbf, 0xec, 0x89, 0x2f, 0xba, 0x28, 0x07}: "SmmAccessPei", efi.GUID{0x6c, 0xb6, 0x93, 0xa9, 0xea, 0x22, 0xba, 0x46, 0xa2, 0x7a, 0x0a, 0x23, 0x35, 0x6d, 0x90, 0x1c}: "AmiHddTemperatureProtocol", efi.GUID{0x6c, 0xc0, 0x0c, 0xae, 0x67, 0x11, 0xc1, 0x48, 0x89, 0xa2, 0x90, 0x49, 0x9d, 0xf6, 0x8f, 0xc3}: "XnoteEsrtDxe", efi.GUID{0x6c, 0xc0, 0x82, 0xad, 0xc0, 0x34, 0xf0, 0x44, 0xba, 0x98, 0x80, 0x1c, 0x3c, 0xa7, 0x59, 0x2f}: "AmdNbioDxe", efi.GUID{0x6c, 0xc5, 0xcd, 0x33, 0xef, 0xb1, 0x21, 0x4b, 0x87, 0xe4, 0x22, 0x5f, 0x42, 0xc6, 0x7f, 0x4a}: "SystemProgressIndicator", efi.GUID{0x6c, 0xdb, 0xac, 0xfd, 0xbc, 0xac, 0x87, 0x4d, 0x8a, 0x59, 0x83, 0xf5, 0x39, 0xfc, 0x66, 0xfd}: "FanTuningDxe", efi.GUID{0x6c, 0xe3, 0x28, 0xf3, 0xb6, 0x23, 0x95, 0x4a, 0x85, 0x4b, 0x32, 0xe1, 0x95, 0x34, 0xcd, 0x75}: "SmmCommunicateHeaderGuid", efi.GUID{0x6c, 0xe5, 0xfa, 0x46, 0x1e, 0xac, 0xad, 0x4b, 0xb1, 0x52, 0x54, 0x9d, 0xce, 0x04, 0x2d, 0x80}: "BBSManagerLegacySmm", efi.GUID{0x6c, 0xf2, 0xfa, 0xae, 0x6d, 0xfb, 0xef, 0x4f, 0xaf, 0x7a, 0x9d, 0x78, 0xff, 0x20, 0x1f, 0xca}: "FirmwareUpdate", efi.GUID{0x6c, 0xf4, 0xcf, 0xbb, 0xd3, 0xc8, 0x13, 0x41, 0x89, 0x85, 0xb9, 0xd4, 0xf3, 0xb3, 0xf6, 0x4e}: "FspBootLoaderTemporaryMemoryGuid", efi.GUID{0x6c, 0xf5, 0x04, 0x51, 0x34, 0xaa, 0xe3, 0x47, 0xb4, 0xc1, 0x1b, 0xf3, 0x01, 0xc2, 0x07, 0x58}: "PdmDxe", efi.GUID{0x6c, 0xf7, 0x7b, 0x0b, 0x1a, 0x72, 0xfb, 0x44, 0xa7, 0x58, 0x52, 0xe1, 0x3c, 0xa4, 0x57, 0xf1}: "DellSpiPartMxic", efi.GUID{0x6c, 0xfa, 0xba, 0xda, 0x94, 0xf3, 0xab, 0x4d, 0x83, 0x5f, 0x80, 0x12, 0xfd, 0x73, 0x07, 0x66}: "LEMSetVariableCtl", efi.GUID{0x6d, 0x01, 0xe7, 0x84, 0xb8, 0x1e, 0x37, 0x46, 0xb0, 0x1e, 0x9e, 0xed, 0x01, 0x8c, 0x7a, 0xe0}: "BiosGuardNvs", efi.GUID{0x6d, 0x02, 0xe1, 0x7a, 0xfa, 0xc7, 0x67, 0x48, 0x9c, 0x14, 0xa0, 0x05, 0x34, 0xa6, 0xc5, 0x47}: "DMIRecovery", efi.GUID{0x6d, 0x09, 0xf6, 0x50, 0x98, 0x7c, 0x78, 0x4c, 0x9a, 0x1d, 0xc5, 0xa1, 0x83, 0x3b, 0x6a, 0x88}: "AmiTcgNvflagSample", efi.GUID{0x6d, 0x0b, 0x8b, 0xc8, 0xfc, 0x0d, 0xa7, 0x49, 0x9c, 0xb4, 0x49, 0x07, 0x4b, 0x4c, 0x3a, 0x78}: "EfiStorageSecurityCommandProtocolGuid", efi.GUID{0x6d, 0x12, 0xb7, 0x7e, 0x5e, 0xc4, 0xd0, 0x4b, 0x93, 0x57, 0x7f, 0x50, 0x7c, 0x5c, 0x9c, 0xf9}: "RomLayoutPei", efi.GUID{0x6d, 0x15, 0x34, 0x79, 0xce, 0xcf, 0x0e, 0x46, 0x92, 0xf5, 0xa0, 0x79, 0x09, 0xa5, 0x9e, 0xca}: "BiosGuardModule", efi.GUID{0x6d, 0x17, 0xd9, 0x8d, 0x87, 0xee, 0x0e, 0x4f, 0x8a, 0x84, 0x3f, 0x99, 0x83, 0x11, 0xf9, 0x30}: "Dhcp6Dxe", efi.GUID{0x6d, 0x1b, 0x57, 0xdc, 0x70, 0xd5, 0x62, 0x48, 0xa9, 0x5f, 0x29, 0x9b, 0x28, 0xfd, 0xc2, 0xd2}: "DellAdvSysMgmtConfigDxe", efi.GUID{0x6d, 0x29, 0xf5, 0x96, 0xf7, 0x05, 0x3c, 0x4f, 0x84, 0x67, 0xe4, 0x56, 0x89, 0x0e, 0x0c, 0xb5}: "EdkiiEndOfS3Resume", efi.GUID{0x6d, 0x2a, 0x90, 0x6f, 0xf1, 0x97, 0xdd, 0x42, 0xa7, 0x17, 0x8a, 0xdd, 0x61, 0x70, 0xc3, 0x65}: "AcpiUpdate", efi.GUID{0x6d, 0x2c, 0xc4, 0x3b, 0xec, 0xab, 0xba, 0x41, 0x8c, 0xcb, 0xd8, 0xe0, 0xef, 0x1c, 0xef, 0x85}: "PCHPolicy", efi.GUID{0x6d, 0x2c, 0xe7, 0x3f, 0x12, 0x36, 0x61, 0x40, 0x84, 0xaf, 0x80, 0xc5, 0xb7, 0xac, 0x6e, 0x25}: "PeiIpmiCmosClear", efi.GUID{0x6d, 0x38, 0x2c, 0x22, 0xbc, 0x5a, 0xb4, 0x4f, 0xb1, 0x24, 0xfb, 0xb8, 0x24, 0x88, 0xac, 0xf4}: "PlatformPei", efi.GUID{0x6d, 0x3a, 0x91, 0x54, 0xee, 0xf4, 0xdb, 0x4c, 0x84, 0x75, 0x74, 0x06, 0x2b, 0xfc, 0xec, 0xf5}: "NvramMailboxAddressVariable", efi.GUID{0x6d, 0x3b, 0xc9, 0x82, 0xed, 0x68, 0x0e, 0x44, 0xa8, 0x26, 0xbd, 0xc7, 0xae, 0xf8, 0xee, 0x0d}: "WirelessBluetoothDetect", efi.GUID{0x6d, 0x40, 0xc6, 0x33, 0x6b, 0x2f, 0xb5, 0x41, 0x87, 0x05, 0x52, 0xba, 0xfb, 0x63, 0x3c, 0x09}: "AlertStandardFormatDxe", efi.GUID{0x6d, 0x46, 0x3c, 0xf2, 0x4a, 0xd2, 0xe4, 0x46, 0xa9, 0x51, 0xa5, 0x8f, 0xbc, 0x5e, 0xce, 0x7f}: "KEMaEeepDxe", efi.GUID{0x6d, 0x56, 0x32, 0x4e, 0x9e, 0x8e, 0x52, 0x4f, 0x81, 0xd3, 0x5b, 0xb9, 0x71, 0x5f, 0x97, 0x27}: "OvmfPkKek1AppPrefix", efi.GUID{0x6d, 0x59, 0x96, 0xef, 0xd8, 0xf1, 0x76, 0x4b, 0x8a, 0xbe, 0x70, 0x0e, 0x03, 0xc1, 0xca, 0x74}: "HspAcpifTpmSmm", efi.GUID{0x6d, 0x69, 0x1c, 0x3e, 0xf0, 0xfc, 0xa7, 0x45, 0x85, 0xa7, 0xe8, 0x6c, 0x2a, 0x1c, 0x10, 0x80}: "UefiDevicePathLibOptionalDevicePathProtocol", efi.GUID{0x6d, 0x76, 0x79, 0xd5, 0xc0, 0x54, 0x51, 0x4a, 0xaa, 0x39, 0x41, 0x1e, 0x59, 0x98, 0x1d, 0xf2}: "UsbOcUpdateDxeBlizzard", efi.GUID{0x6d, 0x79, 0x41, 0xf5, 0x2e, 0xa6, 0x54, 0x49, 0xa7, 0x75, 0x95, 0x84, 0xf6, 0x1b, 0x9c, 0xdd}: "EfiTcgProtocolGuid", efi.GUID{0x6d, 0x83, 0xda, 0x2a, 0x3d, 0x0a, 0xd6, 0x43, 0xa2, 0x5a, 0x38, 0x45, 0xca, 0xd2, 0xd4, 0x00}: "EfiCpuTokenSpace", efi.GUID{0x6d, 0x84, 0x72, 0xfe, 0x19, 0x6c, 0x37, 0x42, 0x90, 0x52, 0x9c, 0x69, 0x3c, 0xf4, 0x09, 0xe3}: "AmdFabricSspPei", efi.GUID{0x6d, 0x8b, 0x98, 0xc0, 0xf6, 0xc3, 0x25, 0x4c, 0xb5, 0x65, 0xec, 0xb1, 0x16, 0x91, 0x24, 0x11}: "OemDisplayRule", efi.GUID{0x6d, 0x8d, 0xa5, 0xc4, 0x77, 0x36, 0xcb, 0x49, 0xa0, 0x0a, 0x94, 0x70, 0x76, 0x5f, 0xb5, 0x5e}: "AddPerfRecordProtocolGuid", efi.GUID{0x6d, 0x93, 0x96, 0x66, 0x37, 0x36, 0x7c, 0x46, 0x87, 0xcb, 0x14, 0xea, 0x82, 0x48, 0x94, 0x8c}: "SimpleTextInOutSerial", efi.GUID{0x6d, 0x94, 0xf9, 0x5d, 0x70, 0x81, 0xb5, 0x4f, 0x85, 0x4f, 0xa9, 0x88, 0x65, 0xf9, 0x87, 0x8f}: "gear5", efi.GUID{0x6d, 0x95, 0xd7, 0xde, 0x20, 0x7e, 0x20, 0x4f, 0x91, 0xa1, 0x19, 0x04, 0x39, 0xb0, 0x4d, 0x5b}: "SmbiosGetFlashData", efi.GUID{0x6d, 0x96, 0xcc, 0x3a, 0x33, 0x8e, 0xc6, 0x45, 0xb4, 0xfe, 0x62, 0x72, 0x4b, 0xcd, 0x15, 0xa9}: "AhciBusDxe", efi.GUID{0x6d, 0x99, 0xe7, 0x91, 0x81, 0x76, 0x7c, 0x47, 0xbd, 0xfe, 0xad, 0x11, 0x44, 0x7e, 0x66, 0xce}: "RealtekLomSmm", efi.GUID{0x6d, 0x9b, 0x45, 0x48, 0x45, 0x0e, 0xae, 0x46, 0xb5, 0xc4, 0xe7, 0x01, 0xa2, 0x5a, 0x0d, 0x6d}: "PlatformCrisis", efi.GUID{0x6d, 0xae, 0xf1, 0x99, 0xcd, 0xa4, 0xef, 0x43, 0x9a, 0x85, 0xb0, 0xfd, 0x4f, 0x6c, 0xc0, 0x91}: "LegacyBiosPlatform", efi.GUID{0x6d, 0xb1, 0xa7, 0x7a, 0x14, 0x0e, 0x51, 0x49, 0x8b, 0x85, 0x3f, 0x65, 0x72, 0xfc, 0xe2, 0x58}: "SystemErrorLogPei", efi.GUID{0x6d, 0xb8, 0x31, 0xfe, 0x7c, 0xec, 0x24, 0x4f, 0x82, 0x1a, 0x60, 0x3f, 0xf8, 0xbb, 0xa5, 0x68}: "OnBoardLanPxeDriver", efi.GUID{0x6d, 0xbd, 0xe1, 0x93, 0xc6, 0x6c, 0xfa, 0x4e, 0xa0, 0x47, 0x3c, 0x1e, 0xd9, 0xe9, 0x5f, 0x89}: "LenovoTpmConfigDxe", efi.GUID{0x6d, 0xc3, 0xce, 0x5a, 0xb3, 0x23, 0x4f, 0x4c, 0xa2, 0xb7, 0xb2, 0xbf, 0xd7, 0x2a, 0x05, 0x9e}: "ProcessorIdm", efi.GUID{0x6d, 0xc4, 0x57, 0x1a, 0x3e, 0xb9, 0x36, 0x40, 0x8f, 0x33, 0x11, 0x74, 0xca, 0x09, 0x18, 0x57}: "SystemDefaultVariableManagerPei", efi.GUID{0x6d, 0xdb, 0xce, 0x9b, 0xca, 0x13, 0x3e, 0x47, 0xb6, 0x05, 0x8a, 0x47, 0x68, 0x87, 0x29, 0xfa}: "ODMDXE", efi.GUID{0x6d, 0xdb, 0xda, 0xdc, 0x0b, 0x88, 0xb9, 0x4c, 0x9c, 0xc0, 0x50, 0x6c, 0x3e, 0x18, 0x2c, 0xb2}: "BackupBiosInfo", efi.GUID{0x6d, 0xdd, 0xe6, 0x69, 0x9e, 0xf0, 0x5f, 0x48, 0x96, 0x27, 0xeb, 0x70, 0xe9, 0xcf, 0xc8, 0x2a}: "UbaInitDxe", efi.GUID{0x6d, 0xdf, 0x72, 0xe4, 0x4f, 0x2b, 0xac, 0x44, 0x91, 0x65, 0xca, 0x2f, 0xcd, 0x5a, 0xb1, 0xf5}: "AmiCspFlashPeiLibNull", efi.GUID{0x6d, 0xe1, 0x81, 0x11, 0x11, 0xaf, 0x52, 0x4c, 0x84, 0x7e, 0x51, 0x6d, 0xd0, 0x9b, 0xd3, 0x76}: "DellCenturyRolloverSmm", efi.GUID{0x6d, 0xe3, 0x3f, 0x2b, 0x59, 0xbe, 0x10, 0x41, 0x8f, 0x42, 0x7b, 0xad, 0x91, 0x0c, 0x96, 0x63}: "SsidDxe", efi.GUID{0x6d, 0xe3, 0x8d, 0xdf, 0x41, 0xd2, 0x47, 0x49, 0x87, 0xf1, 0x36, 0xf9, 0xed, 0xe5, 0x45, 0xd8}: "ASUSFS", efi.GUID{0x6d, 0xe4, 0x07, 0x27, 0xd7, 0xdb, 0xc2, 0x41, 0x9c, 0x04, 0xc9, 0xfd, 0xb8, 0xba, 0xd8, 0x6c}: "JpegDecoderDxe", efi.GUID{0x6d, 0xed, 0x19, 0x85, 0x8a, 0x22, 0x7d, 0x4a, 0xa9, 0xe3, 0x6e, 0x24, 0xd9, 0x4f, 0xe2, 0x2f}: "AmdCpmAdaptiveS4Peim", efi.GUID{0x6d, 0xf3, 0x24, 0x86, 0xe0, 0x6d, 0xc3, 0x44, 0x83, 0x22, 0x74, 0xad, 0x41, 0x9d, 0x3a, 0x90}: "AmdErrorLogDxe", efi.GUID{0x6d, 0xf4, 0x4c, 0x17, 0x67, 0xb1, 0x6a, 0x4e, 0xb1, 0xcd, 0xd4, 0x1e, 0x24, 0xef, 0xa0, 0xf9}: "AsusBackupSmm", efi.GUID{0x6d, 0xfe, 0xf9, 0xd4, 0x96, 0x16, 0x2a, 0x46, 0xac, 0x07, 0xc0, 0x09, 0xd1, 0xa0, 0x18, 0x9a}: "IdeConfigSetup", efi.GUID{0x6e, 0x06, 0x88, 0x13, 0x57, 0x3a, 0xfa, 0x4e, 0x98, 0xf3, 0xc1, 0x2f, 0x3a, 0x95, 0x8a, 0x29}: "EfiPeiSecurityPpiGuid", efi.GUID{0x6e, 0x0d, 0xd4, 0xca, 0x71, 0xc8, 0x98, 0x43, 0x91, 0x0d, 0x2d, 0x74, 0xee, 0x94, 0x71, 0x1a}: "AmiTseAfterTimeOutGuid", efi.GUID{0x6e, 0x0f, 0xf4, 0x13, 0xc1, 0x50, 0x73, 0x4b, 0xb1, 0xe2, 0x6e, 0x72, 0xd2, 0x1c, 0xb0, 0x4a}: "EfiUsbLegacyPlatformProtocolGuid", efi.GUID{0x6e, 0x10, 0xc2, 0x87, 0x90, 0x87, 0x9d, 0x45, 0xbd, 0x44, 0x2e, 0xf3, 0x2a, 0x68, 0xc3, 0xf9}: "IhisiServicesSmm", efi.GUID{0x6e, 0x10, 0xef, 0x95, 0x9f, 0x46, 0xd8, 0x41, 0xaf, 0xff, 0xca, 0x52, 0x92, 0xa4, 0xd9, 0x7c}: "AEPFreezeLockDxe", efi.GUID{0x6e, 0x13, 0x19, 0xd9, 0x5c, 0x86, 0x10, 0x4b, 0xb0, 0x99, 0x5d, 0x89, 0x7c, 0xfe, 0xde, 0x08}: "AmdCpmInitPeim", efi.GUID{0x6e, 0x17, 0xd9, 0x8d, 0x87, 0xee, 0x0e, 0x4f, 0x8a, 0x84, 0x3f, 0x99, 0x83, 0x11, 0xf9, 0x30}: "Dhcp4Dxe", efi.GUID{0x6e, 0x1a, 0x8d, 0x16, 0xa5, 0xf4, 0x8a, 0x44, 0x9e, 0x95, 0x79, 0x56, 0x61, 0xbb, 0x30, 0x67}: "ArmPciCpuIo2Dxe", efi.GUID{0x6e, 0x1b, 0x39, 0xff, 0xce, 0x07, 0x04, 0x49, 0xbf, 0xff, 0x12, 0xbe, 0x96, 0xd4, 0xac, 0xf1}: "FvbVariableStorageSmmRuntimeDxe", efi.GUID{0x6e, 0x20, 0xb9, 0xc0, 0xab, 0xb6, 0xf0, 0x4d, 0xb3, 0xd6, 0x28, 0x6a, 0xc7, 0x66, 0x98, 0xbd}: "DellD010AlegacyVideoRom", efi.GUID{0x6e, 0x23, 0x2f, 0xe2, 0x94, 0x50, 0xfd, 0x48, 0x80, 0x18, 0xcf, 0x46, 0xbb, 0x58, 0x45, 0x39}: "FjSystemResetSmm", efi.GUID{0x6e, 0x2f, 0x08, 0xfd, 0x91, 0x63, 0xbc, 0x4d, 0x86, 0xc3, 0xe3, 0x3c, 0xa1, 0x4f, 0x34, 0x53}: "HpPlatformFormsDxe", efi.GUID{0x6e, 0x31, 0x59, 0x7b, 0xdf, 0xe9, 0x5f, 0x43, 0x98, 0xcd, 0x57, 0x26, 0x64, 0x5b, 0xe8, 0x63}: "EfiHfiPcieGen3Protocol", efi.GUID{0x6e, 0x34, 0x90, 0xe4, 0x11, 0x2d, 0xff, 0x45, 0x9b, 0x49, 0xf6, 0x48, 0x9b, 0xc9, 0xda, 0x36}: "AspmOverrideSmm", efi.GUID{0x6e, 0x39, 0x18, 0x11, 0xcc, 0x54, 0x89, 0x43, 0xbf, 0xd1, 0x97, 0xd2, 0xae, 0x13, 0xe1, 0x2c}: "FjGabiCoreSmm", efi.GUID{0x6e, 0x3b, 0x15, 0x4a, 0xa1, 0x85, 0x82, 0x49, 0x98, 0xf4, 0x6a, 0x8c, 0xfc, 0xa4, 0xab, 0xa1}: "EfiExtendedSalSensorServicesProtocol", efi.GUID{0x6e, 0x3c, 0x7b, 0x70, 0xa6, 0x99, 0x17, 0x4e, 0x84, 0xa0, 0x40, 0x28, 0x4c, 0x1b, 0x3f, 0x38}: "LenovoPiSaveStateAccess", efi.GUID{0x6e, 0x43, 0xf7, 0x92, 0x95, 0x73, 0xa1, 0x4d, 0xa7, 0xbe, 0xf3, 0x52, 0xf0, 0xbc, 0xd7, 0x9c}: "LibContainer", efi.GUID{0x6e, 0x47, 0x08, 0x61, 0x45, 0x4c, 0xc0, 0x4e, 0xa7, 0xf2, 0x5c, 0x2b, 0x31, 0x70, 0xeb, 0x71}: "WlanSupplicantDriver", efi.GUID{0x6e, 0x47, 0x42, 0x29, 0x3e, 0x54, 0x04, 0x45, 0xa0, 0xd2, 0x0b, 0x21, 0x15, 0xe4, 0xa3, 0xc4}: "SwSmi534D0740", efi.GUID{0x6e, 0x47, 0x52, 0xbc, 0x7e, 0xf6, 0x01, 0x43, 0xb2, 0x62, 0x36, 0x9c, 0x48, 0x78, 0xaa, 0xc2}: "PlatformSeCHookProtocolGuid", efi.GUID{0x6e, 0x4d, 0xf9, 0xbc, 0xd9, 0x86, 0x87, 0x4a, 0xa4, 0x46, 0xb2, 0x1b, 0x80, 0x3b, 0xd1, 0x40}: "BootDeviceInfoSmm", efi.GUID{0x6e, 0x4f, 0xf0, 0x69, 0xcf, 0xbc, 0xf8, 0x45, 0x89, 0x4e, 0x2c, 0x68, 0x08, 0x8f, 0x94, 0xff}: "I2cKbDxe", efi.GUID{0x6e, 0x50, 0xc5, 0x13, 0x31, 0x82, 0x5e, 0x41, 0x9e, 0xbc, 0x88, 0xdd, 0x11, 0x5e, 0x38, 0x18}: "SmbiosElog", efi.GUID{0x6e, 0x52, 0x72, 0x71, 0x91, 0xf6, 0x01, 0x4b, 0xae, 0x22, 0xa1, 0x9f, 0xcc, 0x35, 0xf6, 0x51}: "FchTacomaDsdt", efi.GUID{0x6e, 0x53, 0x07, 0x67, 0xaf, 0x46, 0xd3, 0x42, 0x8f, 0x6c, 0x15, 0xf2, 0xf2, 0x02, 0xc2, 0x34}: "MXMdat", efi.GUID{0x6e, 0x57, 0x50, 0x77, 0xb3, 0xeb, 0x4b, 0x45, 0x88, 0x7c, 0x65, 0x21, 0xb3, 0xcd, 0x34, 0xa5}: "AmdMemoryHobInfoPeim", efi.GUID{0x6e, 0x61, 0x33, 0x78, 0x0d, 0xae, 0x4f, 0x59, 0x87, 0x0c, 0x80, 0xe6, 0x86, 0x82, 0xd5, 0x87}: "ThunkProtocolList", efi.GUID{0x6e, 0x63, 0xad, 0xd7, 0x97, 0xb9, 0x9b, 0x45, 0xbf, 0x3f, 0x88, 0x46, 0x89, 0x79, 0x80, 0xe1}: "EfiHiiProtocolGuid", efi.GUID{0x6e, 0x67, 0x4e, 0xb7, 0x2e, 0x3b, 0x3f, 0x48, 0x94, 0x58, 0xc3, 0x78, 0xfe, 0x0a, 0xc6, 0x9f}: "Tcm32FileGuid", efi.GUID{0x6e, 0x6c, 0x47, 0x5c, 0x09, 0xbb, 0xe1, 0x11, 0x86, 0xa7, 0x78, 0xe7, 0xd1, 0xaf, 0x36, 0xd1}: "HpNetworkTransferDriver", efi.GUID{0x6e, 0x6f, 0x99, 0xbd, 0x67, 0x77, 0x27, 0x48, 0x92, 0x08, 0xb1, 0xc2, 0x99, 0x00, 0x0e, 0x4a}: "PspResource", efi.GUID{0x6e, 0x74, 0xe5, 0x65, 0x14, 0x9c, 0x7d, 0x46, 0xb5, 0xb3, 0x93, 0x2a, 0x66, 0xd5, 0x9f, 0x79}: "XhciPei", efi.GUID{0x6e, 0x87, 0x76, 0x70, 0xc2, 0x80, 0xe6, 0x4e, 0xaa, 0xd2, 0x28, 0xb3, 0x49, 0xa6, 0x86, 0x5b}: "EfiCertX509Sha384Guid", efi.GUID{0x6e, 0x88, 0xb0, 0x75, 0x6a, 0xcd, 0x9f, 0x46, 0xae, 0x0b, 0x8c, 0xed, 0x90, 0x33, 0xd1, 0x99}: "EfiBpdtLibBp2DataGuid", efi.GUID{0x6e, 0x89, 0x5f, 0xb6, 0x6d, 0x6e, 0x5a, 0x4d, 0x8b, 0xce, 0x2e, 0x45, 0x8e, 0x97, 0x1d, 0x6c}: "AmdPspPeiV2Rpl", efi.GUID{0x6e, 0x8b, 0x96, 0x06, 0x20, 0xf6, 0x8d, 0x4e, 0xa6, 0xa6, 0x52, 0x55, 0x23, 0x54, 0xdd, 0x75}: "LenovoDxeRicohInit", efi.GUID{0x6e, 0x8c, 0x43, 0x63, 0x1c, 0x97, 0x40, 0x4e, 0x8f, 0x0b, 0x11, 0x09, 0x45, 0x7b, 0xe3, 0x33}: "LenovoCpuInitPhnxDxe", efi.GUID{0x6e, 0x91, 0x64, 0x6f, 0x7a, 0x9f, 0x35, 0x4c, 0xb9, 0x52, 0xcd, 0x04, 0x1e, 0xfb, 0x05, 0xa3}: "DefaultKEKFile", efi.GUID{0x6e, 0x92, 0x71, 0x6f, 0xce, 0x60, 0x8d, 0x42, 0xaa, 0x58, 0xa3, 0xd9, 0xfb, 0x87, 0x94, 0x29}: "IfConfig6", efi.GUID{0x6e, 0x93, 0x87, 0x69, 0x34, 0xed, 0xdb, 0x44, 0xae, 0x97, 0x1f, 0xa5, 0xe4, 0xed, 0x21, 0x16}: "HelloWorld", efi.GUID{0x6e, 0x9f, 0x43, 0x69, 0x94, 0xfa, 0x28, 0x44, 0xae, 0x02, 0x1f, 0x5c, 0x22, 0xec, 0x72, 0xae}: "AdlinkMeConfig", efi.GUID{0x6e, 0xaa, 0x11, 0x2d, 0xb1, 0xea, 0xe1, 0x44, 0xa1, 0xe6, 0xe5, 0x11, 0xfc, 0xb0, 0x14, 0x98}: "QCASUPP", efi.GUID{0x6e, 0xab, 0x42, 0x55, 0x1e, 0x50, 0x60, 0x4d, 0x97, 0xdb, 0xed, 0x71, 0x75, 0x84, 0xbd, 0x1e}: "DellTcg2EarlyDxe", efi.GUID{0x6e, 0xb5, 0x28, 0x1f, 0x6a, 0xd2, 0xfd, 0x48, 0x9f, 0xac, 0x9e, 0x18, 0xa2, 0xc5, 0xbb, 0xdb}: "CnvUefiVariables", efi.GUID{0x6e, 0xb6, 0xf7, 0x28, 0x6b, 0xdf, 0x34, 0x4d, 0xa4, 0x20, 0x91, 0xca, 0x10, 0x8e, 0x9d, 0x00}: "SecureFlashAuthenticationPei", efi.GUID{0x6e, 0xbf, 0xba, 0xde, 0xe4, 0x49, 0x21, 0x4c, 0x84, 0x03, 0xa1, 0xfb, 0x8f, 0x80, 0x3a, 0x9d}: "FjSysmanAcpiStatesBin", efi.GUID{0x6e, 0xc0, 0x13, 0xde, 0x32, 0xf5, 0xda, 0x49, 0xa3, 0x19, 0x5f, 0x7d, 0xd0, 0xf6, 0x03, 0xc2}: "GopFirmwareVersionDxe", efi.GUID{0x6e, 0xc3, 0x72, 0x8c, 0xcc, 0xda, 0x81, 0x4e, 0x8d, 0x60, 0xff, 0xa6, 0x1d, 0x88, 0xff, 0x54}: "EfiPeiPlatformpeiExecutedPpi", efi.GUID{0x6e, 0xc9, 0x01, 0x26, 0x3b, 0x24, 0x09, 0x45, 0xab, 0x14, 0xdf, 0x22, 0x28, 0xe5, 0xb4, 0x01}: "DellSbSmm", efi.GUID{0x6e, 0xcd, 0xed, 0xe6, 0x99, 0x6f, 0xd3, 0x43, 0xab, 0xfa, 0xe3, 0xe6, 0x83, 0x68, 0x3a, 0xb6}: "AsusGetOpRom", efi.GUID{0x6e, 0xcf, 0x69, 0x04, 0x81, 0x1a, 0xff, 0x4f, 0xac, 0x00, 0x16, 0x08, 0x47, 0x2e, 0xa3, 0x07}: "MsdmUpdateSmm", efi.GUID{0x6e, 0xd3, 0x29, 0x79, 0x8a, 0x96, 0x4b, 0x4a, 0x87, 0xce, 0x23, 0x75, 0xb1, 0xc7, 0x31, 0x1d}: "DxePortingSample", efi.GUID{0x6e, 0xd6, 0x2a, 0x66, 0x2d, 0xf5, 0xf6, 0x47, 0xa3, 0x50, 0x48, 0x8d, 0xb9, 0xf8, 0xaf, 0x68}: "FirmwareUserInterface", efi.GUID{0x6e, 0xd8, 0x3f, 0xcb, 0xa3, 0x38, 0x03, 0x4c, 0x9a, 0x5c, 0x90, 0xcf, 0xa3, 0xa2, 0xab, 0x7a}: "EfiExtendedSalMcaLogServicesProtocolGuid", efi.GUID{0x6e, 0xdd, 0x7a, 0x1d, 0xda, 0xb2, 0x0b, 0x4b, 0xb2, 0x9f, 0x49, 0xcb, 0x42, 0xf4, 0x63, 0x56}: "EfiMemoryProducer", efi.GUID{0x6e, 0xde, 0x98, 0x5c, 0x69, 0xcb, 0x5f, 0x46, 0xb6, 0xb9, 0xf6, 0x61, 0xe2, 0x6e, 0x6f, 0x9d}: "LibGdtoa", efi.GUID{0x6e, 0xde, 0xf0, 0x44, 0x8c, 0x4d, 0x45, 0x40, 0xa8, 0xc7, 0x4d, 0xd1, 0x68, 0x85, 0x6b, 0x9e}: "EfiRngAlgorithmSp80090Ctr256Guid", efi.GUID{0x6e, 0xe4, 0x52, 0x9d, 0x7e, 0xf0, 0xe8, 0x44, 0x9a, 0x90, 0xf8, 0x57, 0x6c, 0x91, 0xc2, 0x11}: "BaseFspDebugLibSerialPort", efi.GUID{0x6e, 0xe5, 0xbe, 0xd9, 0xdc, 0x75, 0xd9, 0x49, 0xb4, 0xd7, 0xb5, 0x34, 0x21, 0x0f, 0x63, 0x7a}: "EfiCertDbGuid", efi.GUID{0x6e, 0xed, 0x1a, 0x53, 0xee, 0x3d, 0xeb, 0x45, 0x8d, 0xf1, 0xb7, 0x0a, 0xdb, 0x1f, 0x88, 0x5d}: "TrueTypeDecoderDxe", efi.GUID{0x6e, 0xfc, 0x81, 0xf2, 0xc4, 0xf4, 0x1c, 0x43, 0x96, 0x2b, 0x2f, 0x13, 0xae, 0x79, 0x84, 0xec}: "EfiSbPcieErrorLogDispatchProtocol", efi.GUID{0x6f, 0x02, 0x0b, 0x29, 0x05, 0x69, 0x12, 0x46, 0xba, 0x0f, 0xf6, 0x35, 0xdd, 0xe3, 0x52, 0x85}: "ErrorTriangle", efi.GUID{0x6f, 0x04, 0xa1, 0x95, 0xa7, 0x5e, 0x6d, 0x4c, 0x86, 0xa7, 0xaa, 0x91, 0xb7, 0x42, 0x1e, 0x68}: "CspFlashPeiLibNull", efi.GUID{0x6f, 0x12, 0x9f, 0x32, 0x9e, 0x29, 0xc5, 0x4b, 0x83, 0x10, 0x17, 0x9f, 0x10, 0xeb, 0x46, 0xc9}: "DellSmbProtocolAccess", efi.GUID{0x6f, 0x13, 0x8e, 0x6c, 0xe6, 0xd3, 0x31, 0x41, 0xac, 0x32, 0x46, 0x87, 0xcb, 0x4a, 0xbd, 0x27}: "FmpDxe", efi.GUID{0x6f, 0x20, 0x79, 0x5a, 0xcb, 0xe6, 0x81, 0x4a, 0x8b, 0x8f, 0x70, 0xd1, 0xe2, 0x4b, 0xfa, 0x2f}: "OemASMediaUSBPortDisable", efi.GUID{0x6f, 0x21, 0xa3, 0xd1, 0xe5, 0x63, 0x31, 0x4f, 0x8d, 0x30, 0xff, 0x53, 0xf7, 0xca, 0xbf, 0x5c}: "MpCpuDxe", efi.GUID{0x6f, 0x29, 0x99, 0x51, 0x08, 0x28, 0xfa, 0x4a, 0x94, 0xc4, 0x99, 0xf6, 0xb0, 0x6c, 0x87, 0x1e}: "ACPIS4Smm", efi.GUID{0x6f, 0x2e, 0x70, 0x14, 0xfb, 0x73, 0xd5, 0x46, 0xbf, 0x5b, 0xf0, 0xad, 0x78, 0x1a, 0x17, 0xb7}: "AuthenticationPromptProtocol", efi.GUID{0x6f, 0x47, 0x44, 0xc1, 0x18, 0xf1, 0x84, 0x4c, 0xa9, 0x36, 0x41, 0x7c, 0x8a, 0xfb, 0xd4, 0x37}: "GenericUSBDebugger", efi.GUID{0x6f, 0x48, 0xb9, 0x6d, 0xf6, 0x6a, 0x90, 0x40, 0x98, 0x4d, 0x23, 0x84, 0x82, 0xce, 0x3e, 0xa4}: "BdatAccessHandler", efi.GUID{0x6f, 0x4b, 0xb0, 0xc5, 0xe8, 0x07, 0x63, 0x46, 0x93, 0x45, 0xbc, 0x72, 0xec, 0xcb, 0xb3, 0x97}: "FjNvramVariablesAccessReferenceDxe", efi.GUID{0x6f, 0x4f, 0xa1, 0x60, 0xb9, 0x55, 0xa3, 0x47, 0xb0, 0x67, 0x01, 0xa9, 0x30, 0x27, 0xf3, 0xfe}: "AppleMemoryTest", efi.GUID{0x6f, 0x5d, 0xcc, 0x77, 0xa8, 0xe1, 0xba, 0x4a, 0x8a, 0xe8, 0x1d, 0x92, 0xde, 0x3b, 0x50, 0xf1}: "OemNVME", efi.GUID{0x6f, 0x5e, 0x98, 0x17, 0x78, 0xe7, 0x94, 0x4d, 0xae, 0xfa, 0xc5, 0xdd, 0x2b, 0x77, 0xe1, 0x86}: "QemuFwCfgAcpiPlatform", efi.GUID{0x6f, 0x67, 0xcf, 0x01, 0x01, 0x6f, 0xa3, 0x4f, 0x97, 0x89, 0xb6, 0x32, 0x2d, 0x89, 0x03, 0x94}: "AmdCcxZen4Pei", efi.GUID{0x6f, 0x6c, 0x07, 0x42, 0xf3, 0x0c, 0xe1, 0x4a, 0xb3, 0xa8, 0x49, 0x78, 0x9c, 0xdd, 0x57, 0xdc}: "PSUDxe", efi.GUID{0x6f, 0x7b, 0x3b, 0x3b, 0xde, 0xa2, 0x1e, 0x4f, 0x9b, 0x84, 0xc6, 0xdd, 0xc1, 0xb3, 0x6d, 0x4b}: "OemSleepSmi", efi.GUID{0x6f, 0x7c, 0x56, 0x94, 0xa9, 0xf7, 0x29, 0x42, 0x13, 0x30, 0xfe, 0x11, 0xcc, 0xab, 0x3a, 0x11}: "AmiInternalUcodeHob", efi.GUID{0x6f, 0x7e, 0x1f, 0x41, 0x66, 0x46, 0xb2, 0x58, 0xd6, 0x9e, 0xd6, 0x80, 0xc0, 0xf6, 0x8b, 0xe2}: "SystemAcpiAddedValueDxe", efi.GUID{0x6f, 0x8c, 0x2d, 0x98, 0xf6, 0xf6, 0x35, 0x41, 0xa3, 0x09, 0xa4, 0x59, 0x3e, 0xa5, 0x64, 0x17}: "AmiInternalFactoryTdcTdpHob", efi.GUID{0x6f, 0x97, 0x18, 0x0a, 0xa6, 0x6c, 0x5b, 0x40, 0xaf, 0x4b, 0x27, 0xb8, 0xf7, 0xf6, 0xdb, 0x98}: "AmiUsbIadProtocol", efi.GUID{0x6f, 0x9b, 0xe8, 0x95, 0xdf, 0x73, 0xe1, 0x47, 0x8f, 0x9b, 0xde, 0x52, 0xbd, 0xd3, 0x7f, 0x53}: "OemPcdUpdate", efi.GUID{0x6f, 0x9e, 0x3a, 0xec, 0x91, 0x96, 0x84, 0x4d, 0xb0, 0x0d, 0x3e, 0x55, 0x47, 0x28, 0x07, 0xea}: "AmdFabricRplPei", efi.GUID{0x6f, 0xa0, 0xaa, 0x42, 0x19, 0xb2, 0xa3, 0x42, 0x88, 0x9e, 0x41, 0x30, 0x53, 0xed, 0x10, 0xae}: "FchSmbusDxe", efi.GUID{0x6f, 0xb3, 0x54, 0x7a, 0x45, 0xf7, 0x2c, 0x46, 0xb1, 0x1f, 0x16, 0xe0, 0x3e, 0x52, 0xb6, 0x17}: "AsusSpdTransfer", efi.GUID{0x6f, 0xbb, 0x03, 0xd3, 0x34, 0x74, 0xfd, 0x41, 0xbc, 0x8e, 0x09, 0x84, 0xa0, 0x3c, 0x9b, 0x7d}: "AmdCpmAcpPowerGatingDxe", efi.GUID{0x6f, 0xbb, 0x1a, 0x3c, 0x5a, 0x5a, 0x48, 0x4e, 0xbd, 0xf9, 0x5d, 0xed, 0xc5, 0x8e, 0x05, 0xab}: "FjGabiFtsSystemDataSmmBin", efi.GUID{0x6f, 0xbe, 0x8e, 0x85, 0x0f, 0x36, 0x5b, 0x41, 0xb7, 0xdc, 0x46, 0x3a, 0xae, 0xb0, 0x34, 0x12}: "TcgLegacy", efi.GUID{0x6f, 0xbe, 0xd1, 0xe0, 0x43, 0x1c, 0x4e, 0x41, 0xb5, 0x71, 0x73, 0xc8, 0xc3, 0x10, 0x5b, 0x18}: "UefiDriverAsix88179", efi.GUID{0x6f, 0xc1, 0x0e, 0x15, 0xb6, 0x0b, 0xa8, 0x42, 0xb6, 0x05, 0x79, 0x79, 0x4b, 0x89, 0xd1, 0x5b}: "DellEdiagsConfig", efi.GUID{0x6f, 0xc4, 0xa7, 0x14, 0x02, 0xbc, 0x47, 0x40, 0x9f, 0x18, 0xa5, 0xd7, 0x25, 0xd8, 0xbd, 0x19}: "EfiDFUResultGuid", efi.GUID{0x6f, 0xcf, 0x25, 0xbb, 0xd4, 0xf1, 0xd2, 0x11, 0x9a, 0x0c, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0xfd}: "EfiSerialIoProtocolGuid", efi.GUID{0x6f, 0xd2, 0x99, 0x45, 0x11, 0x1a, 0xb8, 0x49, 0xb9, 0x1f, 0x85, 0x87, 0x45, 0xcf, 0xf8, 0x24}: "AmiStandardDefaultsVariable", efi.GUID{0x6f, 0xd6, 0xa2, 0x24, 0xdd, 0xee, 0x86, 0x40, 0x90, 0x42, 0xf2, 0x6e, 0x47, 0x97, 0xee, 0x69}: "RootBridgesConnectedEventGroupGuid", efi.GUID{0x6f, 0xd6, 0xfc, 0xf1, 0x66, 0x89, 0x1e, 0x44, 0x90, 0x9c, 0x77, 0xf2, 0x11, 0xab, 0x9c, 0x3e}: "MERecoveryDxe", efi.GUID{0x6f, 0xd8, 0x91, 0x9c, 0xa2, 0xdd, 0x7d, 0x47, 0xb1, 0x22, 0x16, 0x60, 0xc5, 0x85, 0xcb, 0x9f}: "DellCpldUpdateDxe", efi.GUID{0x6f, 0xe4, 0x6a, 0xdb, 0x0b, 0xc2, 0xac, 0x45, 0x8e, 0x53, 0xed, 0x0b, 0x90, 0x01, 0x5e, 0x3c}: "AsusQualityIntSelfBin", efi.GUID{0x6f, 0xe4, 0xab, 0x05, 0xa5, 0xbf, 0x68, 0x4c, 0xb3, 0x05, 0x3d, 0x54, 0x5c, 0x58, 0xd8, 0x05}: "Vby1PeiPreGop", efi.GUID{0x6f, 0xe4, 0xab, 0x05, 0xa5, 0xbf, 0x68, 0x4c, 0xb3, 0x05, 0x3d, 0x54, 0x5c, 0x58, 0xd8, 0x06}: "Vby1PeiPostBuffer", efi.GUID{0x6f, 0xe9, 0x1d, 0xd6, 0xaa, 0x6a, 0x7a, 0x4b, 0xbf, 0x5e, 0xdd, 0xca, 0x93, 0x01, 0xde, 0xdd}: "DellHardwareFailureLogDxe", efi.GUID{0x6f, 0xec, 0x2e, 0x40, 0xfc, 0xd0, 0xfd, 0x4f, 0x99, 0x56, 0xfa, 0x98, 0x13, 0xea, 0x2d, 0x7a}: "AcerHwSupportSmm", efi.GUID{0x6f, 0xfb, 0x5d, 0x57, 0x09, 0x40, 0x5f, 0x49, 0xb2, 0x3e, 0xa6, 0xa0, 0x84, 0xce, 0xa5, 0x7b}: "Int40InterfaceSmm", efi.GUID{0x6f, 0xff, 0xdc, 0xc7, 0x2a, 0x6f, 0xc1, 0x4d, 0x91, 0xc6, 0xdf, 0x0b, 0xaf, 0xdb, 0xda, 0x46}: "VbtMipiSharpGuid", efi.GUID{0x70, 0x07, 0xc9, 0x7f, 0x89, 0x0e, 0x20, 0x4a, 0x81, 0x52, 0x6c, 0xb7, 0x77, 0xb5, 0x6f, 0x48}: "FlashInfoDxe", efi.GUID{0x70, 0x0a, 0x6e, 0xf7, 0xed, 0xb5, 0x38, 0x4c, 0xac, 0x9a, 0xe5, 0xf5, 0x4b, 0xf1, 0x6e, 0x34}: "DriverHealthFormSetGuid", efi.GUID{0x70, 0x19, 0x99, 0x73, 0x7e, 0x2e, 0x22, 0x48, 0x81, 0x51, 0x43, 0xc8, 0x2a, 0x4b, 0xb4, 0x70}: "DellSaGvSwitchMm", efi.GUID{0x70, 0x22, 0x1d, 0x9f, 0x0f, 0x2e, 0x07, 0x4d, 0x94, 0x77, 0x58, 0x79, 0x89, 0xb8, 0xa3, 0x2c}: "InterWifiDriver", efi.GUID{0x70, 0x22, 0x1d, 0x9f, 0x0f, 0x2e, 0x07, 0x4d, 0x94, 0x77, 0x58, 0x79, 0x89, 0xb8, 0xa3, 0x2d}: "NetworkDevice", efi.GUID{0x70, 0x24, 0x75, 0x80, 0xde, 0x6e, 0x5d, 0x48, 0xac, 0x36, 0xdc, 0x1b, 0xa6, 0x60, 0x91, 0xee}: "LenovoSpecialSwSmi", efi.GUID{0x70, 0x2c, 0x70, 0x8b, 0xfe, 0xa9, 0xf6, 0x45, 0xba, 0x66, 0x95, 0x1b, 0x50, 0xba, 0x3b, 0x92}: "OpalRevertDxe", efi.GUID{0x70, 0x32, 0x81, 0x37, 0x8f, 0x94, 0x96, 0x40, 0xa2, 0xd8, 0x98, 0xd3, 0x21, 0x38, 0x1f, 0x0c}: "PasswordInterfaceCoreDxe", efi.GUID{0x70, 0x37, 0x3a, 0xf4, 0x3d, 0x29, 0x34, 0x48, 0x8d, 0x5a, 0xda, 0xb7, 0x2f, 0x94, 0xd5, 0xe3}: "DefaultsManagerSmm", efi.GUID{0x70, 0x39, 0x78, 0x8c, 0x2a, 0xf0, 0x4d, 0x4a, 0xaf, 0x09, 0x87, 0x97, 0xa5, 0x1e, 0xec, 0x8d}: "PowerManagement", efi.GUID{0x70, 0x42, 0x2a, 0x7a, 0xba, 0x38, 0xc6, 0x45, 0xb5, 0x3c, 0xc8, 0x3b, 0x34, 0x2d, 0x5b, 0x15}: "TisPei", efi.GUID{0x70, 0x44, 0x23, 0x3c, 0xd3, 0x69, 0xe1, 0x42, 0xb3, 0x23, 0xc8, 0x09, 0x30, 0x0f, 0x39, 0x25}: "EfiPeiPlatformTypePurleyLbgepdvpPpi", efi.GUID{0x70, 0x45, 0x38, 0x06, 0x80, 0x16, 0x20, 0x46, 0x9d, 0x00, 0x6a, 0xd9, 0xe3, 0xcc, 0xb1, 0x9f}: "LenovoMtmFormatSmm", efi.GUID{0x70, 0x45, 0xa9, 0x12, 0x2f, 0xa2, 0x69, 0x40, 0xb5, 0x2e, 0xb7, 0x1e, 0xae, 0xe4, 0xe0, 0x6f}: "FjOemGlobalNVSDxe", efi.GUID{0x70, 0x46, 0x15, 0x3d, 0x15, 0x60, 0x25, 0x44, 0xb9, 0xc5, 0x80, 0x35, 0xe3, 0x4b, 0xe6, 0xfd}: "NvmExpressPei", efi.GUID{0x70, 0x51, 0x04, 0x14, 0x65, 0xca, 0xbc, 0x47, 0x9c, 0x15, 0x2d, 0xe3, 0x6d, 0x44, 0xae, 0xe9}: "SmcInBandDxe", efi.GUID{0x70, 0x5b, 0x0b, 0xae, 0x44, 0xd0, 0x56, 0x44, 0xba, 0x51, 0x97, 0x0e, 0x4c, 0x68, 0x70, 0xbf}: "EfiTraceHubStatusCodeHandleSmm", efi.GUID{0x70, 0x5b, 0x40, 0xaf, 0xa4, 0x23, 0xe9, 0x11, 0x96, 0xb9, 0xa0, 0xc5, 0x89, 0xef, 0x4e, 0x75}: "DellDiagUiManager", efi.GUID{0x70, 0x5d, 0xf0, 0xe9, 0x46, 0x99, 0xb9, 0x4a, 0xa7, 0xf7, 0x07, 0x0e, 0x92, 0xc4, 0x15, 0xbd}: "Int15BootTV", efi.GUID{0x70, 0x64, 0xf5, 0xb3, 0x41, 0x61, 0x21, 0x46, 0x8f, 0x19, 0x70, 0x4e, 0x57, 0x7a, 0xa9, 0xe8}: "DriverSampleInventoryGuid", efi.GUID{0x70, 0x6a, 0x62, 0xa9, 0xac, 0xa4, 0x9b, 0x4b, 0x83, 0x96, 0x8c, 0x93, 0x1e, 0x11, 0x90, 0x4f}: "AmdCpmPmfDxe", efi.GUID{0x70, 0x6a, 0x84, 0x99, 0x4d, 0x61, 0x62, 0x40, 0x82, 0x0e, 0x24, 0x73, 0xe4, 0xe1, 0x28, 0xe3}: "FchEspiCmdSmm", efi.GUID{0x70, 0x7b, 0x41, 0x5b, 0x5f, 0x7f, 0x6f, 0x49, 0xa8, 0x03, 0x8a, 0x0a, 0x2c, 0xac, 0x34, 0xe3}: "EfiPlatformTypePurleyLbgepdvpProtocol", efi.GUID{0x70, 0x7f, 0xff, 0xc8, 0x85, 0x1b, 0x66, 0x4c, 0xa9, 0x83, 0x69, 0x69, 0x9f, 0x62, 0xe9, 0x1e}: "N19EP_GOP", efi.GUID{0x70, 0x8c, 0x49, 0xde, 0xda, 0x1e, 0x6b, 0x46, 0xab, 0xcf, 0xdd, 0x3a, 0xbc, 0x3d, 0x24, 0xb4}: "DummyMSOA", efi.GUID{0x70, 0x8d, 0x00, 0xe9, 0x4e, 0x2a, 0xea, 0x47, 0x8e, 0xc4, 0x72, 0xe2, 0x57, 0x67, 0xe5, 0xef}: "AmiBiosPpiFlaSManagementGuid", efi.GUID{0x70, 0x99, 0x8b, 0x3c, 0x0a, 0x87, 0xe4, 0x11, 0xb7, 0xc6, 0xb8, 0xe8, 0x56, 0x2c, 0xba, 0xfa}: "ChipsetGpioDxe", efi.GUID{0x70, 0x99, 0xe7, 0x73, 0x36, 0x49, 0x3b, 0x44, 0xb9, 0xa5, 0xe0, 0xb6, 0x1b, 0xc1, 0x28, 0x8e}: "PlatformVTdSampleDxe", efi.GUID{0x70, 0xa0, 0xee, 0xaa, 0x92, 0xc4, 0x69, 0x44, 0xb3, 0x78, 0xbb, 0xab, 0x20, 0x60, 0xa4, 0xa7}: "BiosAttributesMgr2Smm", efi.GUID{0x70, 0xa4, 0x97, 0x7e, 0xdb, 0xef, 0x02, 0x4d, 0x8f, 0xce, 0x61, 0x90, 0xd2, 0x7b, 0xa2, 0x96}: "EfiExtendedSalRtcServicesProtocolGuid", efi.GUID{0x70, 0xaa, 0xf7, 0x05, 0x4a, 0xa6, 0x2c, 0x43, 0x8c, 0xee, 0x4c, 0xde, 0xcb, 0x86, 0x71, 0xd7}: "A01ODMDxeDriver", efi.GUID{0x70, 0xb7, 0x8f, 0x12, 0x79, 0x5e, 0x76, 0x41, 0x9e, 0x51, 0x9b, 0xb2, 0x68, 0xa1, 0x7d, 0xd1}: "PciHostBridgeDxe", efi.GUID{0x70, 0xb7, 0x9e, 0x83, 0x64, 0x5c, 0xed, 0x4e, 0xa6, 0xd5, 0xec, 0x51, 0x5b, 0x2b, 0x2b, 0x23}: "PlatformVTdInfoSamplePei", efi.GUID{0x70, 0xba, 0x9f, 0xb0, 0x9f, 0x83, 0x79, 0x40, 0x92, 0x0b, 0x81, 0xd8, 0x96, 0x43, 0x61, 0xf6}: "AmdNbioSmuV8Pei", efi.GUID{0x70, 0xbd, 0x48, 0x8d, 0xa3, 0xc8, 0x06, 0x4c, 0x90, 0x1b, 0x74, 0x79, 0x46, 0xaa, 0xc3, 0x58}: "EfiIsaHcPpiGuid", efi.GUID{0x70, 0xbd, 0x69, 0x1b, 0xad, 0x9f, 0x0e, 0x4a, 0x8a, 0x3e, 0xdc, 0x15, 0xaa, 0x40, 0xfc, 0x56}: "LEMBIOSLock", efi.GUID{0x70, 0xc4, 0xca, 0xd8, 0x7b, 0xcb, 0xe3, 0x11, 0x85, 0x6b, 0x04, 0x7d, 0x7b, 0x99, 0xe0, 0x97}: "BootOptionInterfaceCoreDxe", efi.GUID{0x70, 0xc8, 0x8a, 0xcf, 0xe7, 0x80, 0xca, 0x43, 0xa2, 0xa9, 0xa6, 0x4c, 0xfb, 0xba, 0xcc, 0x94}: "EfiSmiServices", efi.GUID{0x70, 0xcd, 0xa1, 0xd6, 0x33, 0x4b, 0x94, 0x49, 0xa6, 0xea, 0x37, 0x5f, 0x2c, 0xcc, 0x54, 0x37}: "EfiWheaElogFv", efi.GUID{0x70, 0xce, 0x46, 0x8d, 0x2d, 0xb6, 0xf7, 0x4c, 0x87, 0x5c, 0xbe, 0xc8, 0x01, 0x6d, 0x7d, 0x01}: "DellTcg2ConfigInfoTpm12", efi.GUID{0x70, 0xd1, 0xde, 0xdc, 0xad, 0x9a, 0x64, 0x4e, 0xbd, 0xd1, 0xf5, 0x5f, 0xa8, 0x6e, 0x75, 0xb1}: "ApobPhxDxe", efi.GUID{0x70, 0xd4, 0xdf, 0xee, 0x9a, 0x44, 0x15, 0x4b, 0x80, 0x38, 0xc8, 0x54, 0x87, 0xaf, 0x5e, 0x4c}: "HpCommonFlashInfoDxe", efi.GUID{0x70, 0xd7, 0xc8, 0x95, 0xa4, 0xe1, 0x22, 0x44, 0xb2, 0x63, 0xe3, 0x2f, 0x14, 0xfd, 0x81, 0x86}: "Ax88772b", efi.GUID{0x70, 0xdd, 0x9a, 0x69, 0x54, 0x85, 0x93, 0x49, 0x83, 0xf6, 0xd2, 0xcd, 0xc0, 0x81, 0xdd, 0x85}: "SerialCapsuleGuid", efi.GUID{0x70, 0xde, 0xfa, 0x8c, 0x06, 0x18, 0x0f, 0x44, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xcb, 0x5d, 0xa6}: "XnotePlatformPolicyDxe", efi.GUID{0x70, 0xe1, 0x10, 0xa6, 0xaf, 0x08, 0xe3, 0x11, 0xa0, 0x5f, 0x04, 0x7d, 0x7b, 0x99, 0xe0, 0x97}: "ConfigurationVariable", efi.GUID{0x70, 0xe4, 0xb1, 0x11, 0x5e, 0x25, 0xe3, 0x40, 0x95, 0x17, 0x30, 0x51, 0x3e, 0x3f, 0x14, 0xd3}: "GsensorExtendModeDXE", efi.GUID{0x70, 0xe7, 0x97, 0x09, 0x6e, 0x75, 0x39, 0x41, 0xbf, 0x3f, 0x7f, 0xc2, 0xa3, 0x08, 0x17, 0x7e}: "DellSmmS3", efi.GUID{0x70, 0xed, 0x31, 0xf2, 0x5a, 0x04, 0x73, 0x42, 0xa1, 0x56, 0xc3, 0x44, 0x74, 0x8f, 0x08, 0x3f}: "RtcLossOptionSmm", efi.GUID{0x70, 0xf0, 0xdf, 0xb1, 0x22, 0x13, 0xd9, 0x4c, 0xa5, 0xb0, 0xf5, 0x6b, 0xa2, 0xb5, 0x4e, 0x23}: "AmdNbioGfxMDNDxe", efi.GUID{0x70, 0xf3, 0x6b, 0x73, 0x8f, 0xe3, 0xf1, 0x4a, 0x85, 0x0f, 0x97, 0x36, 0x0e, 0xd2, 0x29, 0xa8}: "PlatformResetNotifySmm", efi.GUID{0x70, 0xf3, 0xdb, 0xcd, 0xa5, 0x3d, 0xd9, 0x46, 0x9d, 0x0a, 0xbf, 0xc1, 0x12, 0xec, 0x53, 0x16}: "OemSsid", efi.GUID{0x70, 0xf4, 0xe7, 0x30, 0xb3, 0x4e, 0x56, 0x48, 0x8c, 0x83, 0x31, 0x74, 0x1a, 0x20, 0xf8, 0x77}: "SdevTableDxe", efi.GUID{0x70, 0xf6, 0x5b, 0xb6, 0x37, 0xfc, 0x25, 0x42, 0xab, 0x85, 0xec, 0x96, 0x0a, 0x7a, 0x1e, 0xd9}: "UsraRegisterFilterLibNull", efi.GUID{0x70, 0xf7, 0x6f, 0xf3, 0xe1, 0xa7, 0xcf, 0x42, 0x9e, 0xd2, 0x56, 0xf0, 0xf2, 0x71, 0xf4, 0x4c}: "EfiManagedNetworkServiceBindingProtocolGuid", efi.GUID{0x70, 0xfa, 0xcd, 0x44, 0x7c, 0x2c, 0x91, 0x47, 0x9a, 0xa3, 0xea, 0xe8, 0x77, 0x7f, 0x0a, 0x8b}: "X11DPGPeiDriver", efi.GUID{0x70, 0xfb, 0x22, 0xb4, 0x35, 0xe8, 0x8d, 0x44, 0xa9, 0x21, 0xeb, 0xa4, 0x60, 0xe1, 0x05, 0xb6}: "SmmIpmiLibSmmIpmiProtocol", efi.GUID{0x70, 0xfd, 0x83, 0xa8, 0x7e, 0x4e, 0x17, 0x4b, 0x8e, 0xbb, 0xc5, 0x64, 0x6f, 0xf1, 0x54, 0xca}: "SpiMouseDxe", efi.GUID{0x71, 0x05, 0x93, 0xb3, 0xba, 0xbe, 0xc5, 0x4f, 0x92, 0x03, 0x94, 0x27, 0x24, 0x2e, 0x6a, 0x43}: "EfiBluetoothHcProtocolGuid", efi.GUID{0x71, 0x12, 0x41, 0xf8, 0x7d, 0x78, 0xd3, 0x4c, 0xb1, 0x42, 0x88, 0xa0, 0x9f, 0x93, 0xd8, 0xb4}: "FjFlashServiceSmm", efi.GUID{0x71, 0x17, 0x55, 0xdb, 0x49, 0x44, 0x87, 0x43, 0x90, 0x8d, 0xf7, 0x06, 0x85, 0xb1, 0xdc, 0xaf}: "PlatformMilestoneHookSmm", efi.GUID{0x71, 0x18, 0x81, 0x63, 0xd2, 0xcc, 0x42, 0x10, 0xaa, 0xcb, 0x5e, 0x5b, 0x88, 0xff, 0x6e, 0x68}: "DiagAccess", efi.GUID{0x71, 0x1b, 0x25, 0xef, 0xed, 0xce, 0x4e, 0x48, 0x82, 0xe3, 0x3a, 0x1f, 0x34, 0xf5, 0x12, 0xe2}: "EfiQuarkSCSocIdTokenSpaceGuid", efi.GUID{0x71, 0x1f, 0xdd, 0xf5, 0xe2, 0xc3, 0x3d, 0x47, 0x84, 0xd5, 0x34, 0x1a, 0x37, 0x40, 0x54, 0xaf}: "SystemFlashCommunicationDataProtocol", efi.GUID{0x71, 0x20, 0x47, 0x11, 0xca, 0xa5, 0x81, 0x42, 0x97, 0x79, 0xdf, 0x2c, 0x83, 0x9a, 0x45, 0x5a}: "DxeSndwBeep", efi.GUID{0x71, 0x29, 0xa0, 0xc0, 0x5c, 0xc4, 0xa6, 0x47, 0xaa, 0xaa, 0x3f, 0x08, 0x9a, 0x7b, 0x7a, 0x50}: "DellRmtPlatSiDxe", efi.GUID{0x71, 0x36, 0xec, 0xcd, 0x6e, 0x81, 0xdc, 0x43, 0xa0, 0x02, 0xdc, 0xd6, 0x45, 0x22, 0x93, 0x38}: "I2cHostDxe", efi.GUID{0x71, 0x37, 0x1f, 0x68, 0x1d, 0x6f, 0xde, 0x42, 0x9a, 0xa2, 0xf8, 0x2b, 0xbc, 0xdb, 0xc5, 0xf9}: "WinNtFlashMapPei", efi.GUID{0x71, 0x39, 0x9a, 0xef, 0xa0, 0xc1, 0x93, 0x4a, 0xbd, 0x40, 0x5a, 0xa1, 0x65, 0xf2, 0xdc, 0x3a}: "ConsoleOutDevicesStartedProtocol", efi.GUID{0x71, 0x51, 0x34, 0xce, 0x0b, 0xba, 0xd2, 0x11, 0x8e, 0x4f, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b}: "EfiDiskIoProtocolGuid", efi.GUID{0x71, 0x54, 0x26, 0xc9, 0xa3, 0x71, 0x74, 0x4d, 0xaa, 0x7a, 0x3e, 0x6c, 0x5e, 0xc8, 0x11, 0x35}: "AmdRasBrhServiceSmm", efi.GUID{0x71, 0x58, 0x75, 0x07, 0x72, 0xca, 0xd1, 0x42, 0xaf, 0x0e, 0x5b, 0xeb, 0x97, 0x1f, 0x7e, 0x4c}: "RtcAlarmSmi", efi.GUID{0x71, 0x5d, 0x93, 0x4a, 0x9e, 0x7d, 0x23, 0x44, 0x80, 0xe5, 0xf8, 0xf8, 0xf4, 0x04, 0x3f, 0x9c}: "ReadyToBootNotifySmm", efi.GUID{0x71, 0x60, 0xe9, 0xa1, 0xdd, 0xc1, 0x95, 0x45, 0x80, 0xd8, 0x3d, 0x49, 0x7f, 0x7a, 0xb5, 0x27}: "OemMS", efi.GUID{0x71, 0x60, 0xe9, 0xa1, 0xdd, 0xc1, 0x95, 0x45, 0x80, 0xd8, 0x3d, 0x49, 0x7f, 0x7a, 0xb5, 0x77}: "LenovoWifiVariable", efi.GUID{0x71, 0x63, 0x28, 0x09, 0xf2, 0x5f, 0x65, 0x40, 0xb3, 0xd2, 0xb8, 0x1c, 0x88, 0x28, 0x98, 0xab}: "HpIcicleSmm", efi.GUID{0x71, 0x66, 0x92, 0xe3, 0x95, 0x45, 0x35, 0x4d, 0x89, 0x11, 0x29, 0x41, 0xbd, 0x77, 0xe4, 0x75}: "DellEcChipDetectPei", efi.GUID{0x71, 0x70, 0xa6, 0x8a, 0xec, 0x8b, 0xab, 0x47, 0x83, 0xc8, 0xcd, 0x0e, 0xb7, 0x23, 0xd0, 0x72}: "IdeBusDriverBindingProtocol", efi.GUID{0x71, 0x7b, 0x58, 0x27, 0xf9, 0x37, 0x48, 0x4a, 0xb5, 0x70, 0x58, 0xb6, 0xd1, 0x4f, 0x6d, 0xec}: "DellOromKbAccess", efi.GUID{0x71, 0x7b, 0x78, 0xd4, 0x78, 0xa8, 0xc9, 0x49, 0x97, 0xce, 0x96, 0x7d, 0xf2, 0x39, 0x9a, 0xaa}: "SmramRomHoleK0Protocol", efi.GUID{0x71, 0x88, 0x32, 0x49, 0x65, 0xfe, 0x86, 0x45, 0xa0, 0x13, 0x0a, 0xda, 0xae, 0xa1, 0xda, 0xff}: "FvbServicesRuntimeDxeRA", efi.GUID{0x71, 0x92, 0x75, 0xa9, 0xcd, 0x49, 0xbe, 0x49, 0x87, 0x64, 0x5d, 0xeb, 0xfb, 0xe6, 0x8f, 0x73}: "AmdResetManager", efi.GUID{0x71, 0x94, 0x6d, 0xbe, 0xbf, 0xc8, 0x35, 0x4b, 0xbe, 0xa7, 0x76, 0x87, 0xcd, 0xf7, 0xe1, 0x42}: "AmdMemFp7Pei", efi.GUID{0x71, 0x94, 0x98, 0x3d, 0xac, 0xcf, 0xb7, 0x46, 0x9b, 0x1c, 0x08, 0x43, 0x01, 0x09, 0x40, 0x2d}: "TxtOneTouch", efi.GUID{0x71, 0x94, 0xb5, 0x8b, 0x3c, 0x82, 0x11, 0x4a, 0xb6, 0x10, 0xce, 0x39, 0x85, 0x79, 0x3e, 0xb1}: "DellSystemPolicy", efi.GUID{0x71, 0x99, 0x03, 0x93, 0x45, 0x85, 0x04, 0x4b, 0xb4, 0x5e, 0x32, 0xeb, 0x83, 0x26, 0x04, 0x0e}: "EfiHiiPlatformSetupFormsetGuid", efi.GUID{0x71, 0x99, 0xe5, 0x28, 0x7e, 0x3f, 0x34, 0x4e, 0x8d, 0xed, 0x07, 0x45, 0x90, 0x7b, 0x48, 0x4d}: "FingerPrintBindingDriver", efi.GUID{0x71, 0x9c, 0x2d, 0x05, 0xdc, 0x95, 0x3b, 0x4c, 0x9b, 0x8f, 0xb3, 0x76, 0x55, 0xdb, 0x54, 0xe6}: "TrackPointJYTNDT", efi.GUID{0x71, 0xa1, 0xc6, 0xa8, 0x78, 0x54, 0x7c, 0x4a, 0x9e, 0xb6, 0x65, 0x5c, 0x6c, 0xcc, 0x4e, 0x3a}: "InsydeReportFvPei", efi.GUID{0x71, 0xa4, 0x4e, 0xdd, 0xd2, 0xd8, 0xe7, 0x4c, 0x86, 0xb3, 0x14, 0xaf, 0xec, 0xe7, 0x61, 0x41}: "KEMrWdtSmi", efi.GUID{0x71, 0xa9, 0x85, 0xd4, 0xdc, 0xb6, 0x1c, 0x4e, 0x87, 0x30, 0xc4, 0x45, 0x54, 0x60, 0xa6, 0xff}: "ResetDateTimePei", efi.GUID{0x71, 0xad, 0x1e, 0x6d, 0xef, 0x0c, 0x2a, 0x4b, 0xb9, 0xae, 0x05, 0xd5, 0xe9, 0xb8, 0x47, 0xcf}: "PasswordInterfaceCoreSmm", efi.GUID{0x71, 0xb1, 0x57, 0x0d, 0xd2, 0xa6, 0xc9, 0x49, 0x95, 0xad, 0xab, 0xc0, 0x25, 0x46, 0xe6, 0x05}: "DellSystemUsbPortConfigDxe", efi.GUID{0x71, 0xb7, 0xda, 0xca, 0xdf, 0x60, 0x25, 0xa9, 0x19, 0xb3, 0x0a, 0x66, 0x08, 0xdd, 0x2d, 0xa5}: "CCGxFwUpdateDrv", efi.GUID{0x71, 0xba, 0x92, 0xe2, 0x2c, 0x81, 0xb9, 0x42, 0x88, 0x5d, 0x3f, 0x05, 0x65, 0xb0, 0x98, 0xc7}: "SyncSetupCpt", efi.GUID{0x71, 0xbd, 0x66, 0xc8, 0x79, 0x7c, 0xf1, 0x4b, 0xa9, 0x3b, 0x06, 0x6b, 0x83, 0x0d, 0x8f, 0x9a}: "MpS3", efi.GUID{0x71, 0xc7, 0x85, 0x75, 0xe4, 0x3c, 0xfe, 0x41, 0xb7, 0x80, 0x84, 0x5c, 0xd8, 0x5b, 0xa4, 0x44}: "FirmwarePassword", efi.GUID{0x71, 0xdb, 0x8a, 0x7e, 0x5b, 0x9a, 0xc7, 0x4a, 0x82, 0xbe, 0xe8, 0x59, 0x82, 0x85, 0xdc, 0x14}: "LANWakeupDxe", efi.GUID{0x71, 0xdf, 0x26, 0x4c, 0xe7, 0xeb, 0xea, 0x4d, 0xb5, 0xe2, 0x0b, 0x59, 0x80, 0x43, 0x39, 0x08}: "GetAddrInfo", efi.GUID{0x71, 0xe8, 0x68, 0x88, 0xf1, 0xe4, 0xd3, 0x11, 0xbc, 0x22, 0x00, 0x80, 0xc7, 0x3c, 0x88, 0x81}: "EfiAcpi20TableGuid", efi.GUID{0x71, 0xec, 0xee, 0x27, 0x49, 0xd8, 0x64, 0x4b, 0xa0, 0x4b, 0x56, 0x43, 0xcc, 0xea, 0xc8, 0x76}: "FchKunlunPei", efi.GUID{0x71, 0xf1, 0xfd, 0x03, 0x67, 0x1d, 0xce, 0x4a, 0xa9, 0x04, 0x3e, 0x36, 0xd3, 0x38, 0xfa, 0x74}: "SeCPlatformReadyToBootGuid", efi.GUID{0x71, 0xf8, 0x3a, 0xf8, 0xf4, 0x59, 0x2f, 0x43, 0x82, 0xe6, 0x31, 0xa5, 0x32, 0x89, 0x40, 0x99}: "ITEFwFmp", efi.GUID{0x71, 0xf8, 0xb7, 0xd3, 0x04, 0x3f, 0xd4, 0x48, 0xb9, 0xc1, 0x58, 0x71, 0x82, 0x5d, 0x00, 0xaa}: "GnbMatisseRouting", efi.GUID{0x71, 0xf9, 0xf9, 0x52, 0x02, 0x53, 0x46, 0x4f, 0xb1, 0xa6, 0x1e, 0x55, 0x66, 0x9b, 0x52, 0xc8}: "SxStateSmiPkg", efi.GUID{0x71, 0xff, 0xaa, 0xa0, 0xda, 0x35, 0xee, 0x41, 0x86, 0x3f, 0xa2, 0x4f, 0x42, 0x9e, 0x59, 0xe4}: "IconSelected", efi.GUID{0x72, 0x10, 0xab, 0xd8, 0x45, 0x4b, 0x28, 0x48, 0x83, 0x7d, 0xa4, 0x21, 0x43, 0x77, 0x80, 0x2e}: "BCLANDXE", efi.GUID{0x72, 0x11, 0xd0, 0x4b, 0xd3, 0x54, 0x97, 0x4a, 0xb6, 0xa0, 0xda, 0x57, 0x47, 0x4c, 0xdf, 0x3c}: "FjGabiEntrySmmBin", efi.GUID{0x72, 0x15, 0x87, 0xcb, 0x1a, 0xc1, 0xb5, 0x47, 0xb4, 0x92, 0x67, 0x5e, 0xaf, 0xa7, 0x77, 0x27}: "EfiDiskInfoUsbInterfaceGuid", efi.GUID{0x72, 0x16, 0xa1, 0xf7, 0xdb, 0x3e, 0x77, 0x4f, 0x8a, 0x1e, 0x5e, 0x8c, 0x1e, 0x0c, 0x98, 0xe8}: "CsbSmartCoverSmm", efi.GUID{0x72, 0x1e, 0xf4, 0xae, 0x5e, 0xd8, 0xa9, 0x4e, 0x98, 0x0b, 0x66, 0xe5, 0x82, 0x0d, 0xe1, 0x9e}: "LenovoSmartBootDxe", efi.GUID{0x72, 0x24, 0x7b, 0xa7, 0x82, 0xe2, 0x9f, 0x4e, 0xa2, 0x45, 0xc2, 0xc0, 0xe2, 0x7b, 0xbc, 0xc1}: "EfiBlockIo2ProtocolGuid", efi.GUID{0x72, 0x29, 0x1d, 0x0e, 0xaf, 0x65, 0xc1, 0x4a, 0xbf, 0xa3, 0xce, 0xf4, 0xab, 0x0c, 0x38, 0xfe}: "EfiCapsuleCrashGuid", efi.GUID{0x72, 0x2b, 0x61, 0xfe, 0x3c, 0x20, 0xb1, 0x47, 0x85, 0x60, 0xa6, 0x6d, 0x94, 0x6e, 0xb3, 0x71}: "setupdata", efi.GUID{0x72, 0x2c, 0xcd, 0x4d, 0xbd, 0xec, 0x47, 0x4f, 0x84, 0xbb, 0x2b, 0x3b, 0xd2, 0xbf, 0xf9, 0x0b}: "UsbCrisisEnumPei", efi.GUID{0x72, 0x2e, 0xfe, 0x3d, 0x6d, 0x9f, 0x50, 0x43, 0xba, 0x4f, 0x20, 0x33, 0x3b, 0x52, 0xb8, 0x76}: "AmiSyncSetupData", efi.GUID{0x72, 0x35, 0xd8, 0x92, 0x44, 0x3d, 0xe3, 0x40, 0x87, 0x18, 0x36, 0x44, 0x6b, 0x3e, 0xba, 0x2e}: "IdentifyAcpiTable", efi.GUID{0x72, 0x41, 0xad, 0x58, 0xab, 0x08, 0xb4, 0x4a, 0x99, 0xe6, 0x8a, 0xa2, 0xf2, 0xb3, 0x54, 0xde}: "AdlSioFunctionPei", efi.GUID{0x72, 0x44, 0x69, 0x2e, 0xf9, 0x97, 0x3e, 0x4d, 0x94, 0x0b, 0x36, 0x0a, 0x27, 0x31, 0xde, 0xbd}: "RegulatoryInfoSupportDxe", efi.GUID{0x72, 0x4b, 0x26, 0x25, 0x80, 0x7a, 0x56, 0x48, 0xa7, 0xec, 0x15, 0x80, 0x22, 0x70, 0xee, 0x1b}: "CheckBootGuardKeyDxe", efi.GUID{0x72, 0x4e, 0xc1, 0xbe, 0x56, 0xa9, 0x76, 0x46, 0x87, 0xe7, 0xb0, 0x92, 0x08, 0x7f, 0x5f, 0x6c}: "FjIntrusion", efi.GUID{0x72, 0x54, 0x3c, 0x5c, 0xdc, 0x1a, 0xd8, 0x44, 0x93, 0xf5, 0x78, 0xb3, 0x1b, 0x95, 0x09, 0x31}: "aModelName", efi.GUID{0x72, 0x56, 0xee, 0x32, 0xf9, 0xc9, 0x26, 0x49, 0x82, 0x28, 0x0c, 0x4e, 0x3b, 0x0e, 0x69, 0xfe}: "AsusTopSwap", efi.GUID{0x72, 0x5b, 0xc9, 0x20, 0xe3, 0xf4, 0xb2, 0x4b, 0xa2, 0x89, 0x19, 0xdb, 0xfd, 0x23, 0xf5, 0x31}: "PlatformInit", efi.GUID{0x72, 0x5c, 0x27, 0x0d, 0xc6, 0x10, 0x8c, 0x4d, 0x8b, 0x2c, 0x66, 0x10, 0xe6, 0x9e, 0x34, 0x03}: "Uart16550SerialDxe", efi.GUID{0x72, 0x5f, 0xeb, 0xd9, 0xf5, 0x63, 0xc2, 0x4c, 0x9f, 0xcf, 0xbf, 0xec, 0xe1, 0x8f, 0xf0, 0xb6}: "OemThermalPolicySMM", efi.GUID{0x72, 0x64, 0x9e, 0x70, 0xcd, 0x1b, 0xbd, 0x43, 0x8b, 0x6b, 0xcd, 0x2d, 0x6d, 0x08, 0xb9, 0x67}: "AcpiAtd", efi.GUID{0x72, 0x70, 0xa9, 0x1d, 0xdc, 0xbd, 0x30, 0x4b, 0x99, 0xf1, 0x72, 0xa0, 0xb5, 0x6f, 0xff, 0x2a}: "EfiMonotonicCounterArchProtocolGuid", efi.GUID{0x72, 0x71, 0x58, 0xae, 0x15, 0xca, 0xe1, 0x48, 0x8b, 0xe1, 0x29, 0xdd, 0xf0, 0x5c, 0x6a, 0x1e}: "OemSpecVtdRmrr", efi.GUID{0x72, 0x71, 0x58, 0xae, 0x15, 0xcc, 0xe1, 0x48, 0x8b, 0xe0, 0x29, 0xdd, 0xf0, 0x5c, 0x6a, 0x1f}: "DxeSelStatusCode", efi.GUID{0x72, 0x71, 0x58, 0xae, 0x15, 0xcc, 0xe1, 0x48, 0x8b, 0xe1, 0x29, 0xdd, 0xf0, 0x5c, 0x6a, 0x1e}: "OemVtdRmrr", efi.GUID{0x72, 0x76, 0x2b, 0xbc, 0x8b, 0xa4, 0x58, 0x4d, 0xb3, 0x9e, 0xae, 0xe3, 0x70, 0x7b, 0x5a, 0x23}: "Tpm12DeviceLibDTpm", efi.GUID{0x72, 0x77, 0x63, 0x01, 0x22, 0xb0, 0x47, 0x40, 0xbd, 0x52, 0x35, 0x45, 0x4c, 0x1c, 0x6b, 0x9f}: "Armani_EcCommunicationSmm", efi.GUID{0x72, 0x78, 0x83, 0x3f, 0x07, 0x2a, 0x70, 0x44, 0xb8, 0xb7, 0x9a, 0xc1, 0x31, 0x36, 0x03, 0x14}: "VariableEditDxe", efi.GUID{0x72, 0x7b, 0xbc, 0x43, 0x61, 0xe9, 0x59, 0x4a, 0x85, 0x25, 0x6f, 0x30, 0xa2, 0x76, 0x62, 0x5f}: "EcMemMappingDxe", efi.GUID{0x72, 0x82, 0x60, 0xad, 0x7f, 0xd0, 0x64, 0x49, 0x80, 0x1e, 0x7b, 0xd3, 0xb7, 0x88, 0x86, 0x52}: "MonotonicCounterRuntimeDxe", efi.GUID{0x72, 0x85, 0x08, 0x17, 0x7f, 0x37, 0xef, 0x44, 0x8f, 0x4e, 0xb0, 0x9f, 0xff, 0x46, 0xa0, 0x70}: "Microcode", efi.GUID{0x72, 0x93, 0xe8, 0x3f, 0xcc, 0xc0, 0x6b, 0x46, 0xaa, 0x4a, 0xb7, 0x6d, 0xbb, 0xb1, 0x1b, 0xbb}: "DellPolicyDxe", efi.GUID{0x72, 0x94, 0x62, 0xea, 0xc6, 0xd7, 0x0e, 0x4c, 0x88, 0x20, 0x2b, 0x81, 0x1c, 0x7e, 0xe3, 0xaf}: "AmiTseOemPortingVar11", efi.GUID{0x72, 0x94, 0xb0, 0x25, 0x58, 0xf2, 0xea, 0x49, 0xa1, 0xce, 0x8a, 0x68, 0xf3, 0xa4, 0xa5, 0x4b}: "InitOemSetupVariable", efi.GUID{0x72, 0x95, 0xbf, 0xcb, 0xdc, 0x28, 0x12, 0x47, 0xaa, 0x9d, 0x0f, 0xf6, 0xe4, 0x02, 0x9b, 0xfc}: "AmiSystemCredentialManagement", efi.GUID{0x72, 0x9f, 0x5d, 0xd6, 0xce, 0x7b, 0x73, 0x4f, 0xa6, 0x73, 0x47, 0xaf, 0x44, 0x6a, 0x1a, 0x31}: "SmmRuntimeDxeReportStatusCodeLibFramework", efi.GUID{0x72, 0xa0, 0x0c, 0x2f, 0xc6, 0x99, 0xab, 0x43, 0x81, 0x0a, 0x52, 0x8c, 0x43, 0xc6, 0x8e, 0xef}: "AmdSmmControl", efi.GUID{0x72, 0xa1, 0xe9, 0xa4, 0x5b, 0x9d, 0xae, 0x47, 0xbf, 0xcf, 0x2c, 0x9f, 0xca, 0x6f, 0x0a, 0xdc}: "AmdSocSp3r3CglPei", efi.GUID{0x72, 0xa6, 0x38, 0x72, 0x5c, 0x75, 0xe2, 0x45, 0x84, 0xc1, 0x4c, 0x72, 0x0c, 0xb2, 0xa8, 0xd1}: "EcCloseShmApi", efi.GUID{0x72, 0xa9, 0x17, 0xad, 0x92, 0x58, 0x40, 0x44, 0xa7, 0x8b, 0x1b, 0xfe, 0x5f, 0x49, 0xb7, 0x09}: "AsusSetBiosLockDown", efi.GUID{0x72, 0xad, 0x6f, 0xa5, 0x64, 0xa2, 0x70, 0x43, 0x85, 0xc5, 0x00, 0x58, 0x46, 0x54, 0xdc, 0xe2}: "InstallVerbTablePei", efi.GUID{0x72, 0xb0, 0x2a, 0x59, 0x87, 0x39, 0xb3, 0x4d, 0x86, 0xb0, 0xeb, 0xd8, 0xd4, 0x3e, 0x4b, 0x76}: "AmdFabricRsPei", efi.GUID{0x72, 0xb3, 0x34, 0x0c, 0x22, 0x26, 0x13, 0x4a, 0xa4, 0x6e, 0xbf, 0xd0, 0xde, 0xb4, 0x8b, 0xff}: "I2cBusDxe", efi.GUID{0x72, 0xb9, 0x22, 0x20, 0xb9, 0xb1, 0x55, 0x4b, 0xa6, 0x03, 0x78, 0x51, 0xcb, 0x06, 0x2e, 0x34}: "LePassKeyDxe", efi.GUID{0x72, 0xbc, 0xe1, 0xdd, 0x5e, 0xd4, 0x09, 0x42, 0xab, 0x85, 0x14, 0x46, 0x2d, 0x2f, 0x50, 0x74}: "RomImageAddress", efi.GUID{0x72, 0xc1, 0x9f, 0xef, 0xb2, 0xa1, 0x93, 0x46, 0xb3, 0x27, 0x6d, 0x32, 0xfc, 0x41, 0x60, 0x42}: "EfiHiiDatabaseProtocolGuid", efi.GUID{0x72, 0xc3, 0xc4, 0x8c, 0x9a, 0xd6, 0x01, 0x42, 0xbc, 0x19, 0x07, 0x79, 0x9b, 0x69, 0x93, 0x69}: "CollectBootInfoProtocol", efi.GUID{0x72, 0xc9, 0xcf, 0x93, 0x9f, 0x6b, 0x31, 0x40, 0xa5, 0x42, 0xc7, 0x29, 0x9f, 0x12, 0x69, 0x24}: "FjNuvotonNct6796Pei", efi.GUID{0x72, 0xcb, 0x0d, 0x21, 0x14, 0xbc, 0x19, 0x4a, 0xa2, 0x9b, 0xf6, 0x96, 0xeb, 0x7d, 0xe1, 0x2b}: "EzSetup", efi.GUID{0x72, 0xce, 0xe2, 0xa7, 0x32, 0xdc, 0xc0, 0x4b, 0x9e, 0x35, 0xfe, 0xb3, 0x0a, 0xe5, 0xcc, 0x47}: "AmiEarlyBistPpi", efi.GUID{0x72, 0xce, 0xe7, 0xf2, 0x57, 0x56, 0x4a, 0x49, 0xbd, 0xba, 0xf3, 0xdd, 0x8e, 0x1d, 0xf6, 0x41}: "HpAcLossPei", efi.GUID{0x72, 0xe3, 0x9d, 0x36, 0x36, 0xab, 0xe1, 0x4c, 0x8e, 0x45, 0x88, 0x06, 0xb7, 0x6d, 0xd7, 0x0f}: "PspResource", efi.GUID{0x72, 0xef, 0xc1, 0xa5, 0x79, 0x93, 0x70, 0x43, 0xb4, 0xc7, 0x0f, 0x51, 0x26, 0xca, 0xc3, 0x8e}: "TrEEConfigPei", efi.GUID{0x72, 0xf5, 0xea, 0xa0, 0xd8, 0x69, 0x25, 0x48, 0xb1, 0xb0, 0x9e, 0xe3, 0xb4, 0xc6, 0x4f, 0xa7}: "ASUSGamingBoard", efi.GUID{0x72, 0xf7, 0x28, 0x14, 0x4a, 0xb6, 0x1e, 0x44, 0xb8, 0xc3, 0x9e, 0xbd, 0xd7, 0xf8, 0x93, 0xc7}: "QemuKernelLoaderFsMedia", efi.GUID{0x72, 0xfb, 0x96, 0xd0, 0x64, 0xa9, 0xe6, 0x4f, 0x9f, 0xbf, 0xfa, 0x83, 0xcc, 0xd9, 0x15, 0x49}: "FchSmbusDxe", efi.GUID{0x73, 0x05, 0x2b, 0xc0, 0x4e, 0x2b, 0x31, 0x4a, 0xa3, 0x1a, 0x94, 0x56, 0x7b, 0x50, 0x44, 0x2c}: "PchUsbPolicyPpiGuid", efi.GUID{0x73, 0x06, 0x3a, 0x97, 0xaa, 0x3a, 0x9c, 0x47, 0x97, 0x46, 0xdb, 0xd7, 0xde, 0xaa, 0xa0, 0xb4}: "DellHotKeysPolicy", efi.GUID{0x73, 0x14, 0x6a, 0x3a, 0xe0, 0x13, 0x95, 0x47, 0xba, 0x9f, 0x22, 0x89, 0x12, 0x77, 0xd7, 0x4d}: "HdpEraseUnitAppDxe", efi.GUID{0x73, 0x14, 0x6a, 0x3b, 0xe0, 0x13, 0x95, 0x47, 0xba, 0x9f, 0x22, 0x89, 0x12, 0x77, 0xd7, 0x4d}: "HdpEraseAppScreen", efi.GUID{0x73, 0x14, 0xd8, 0xec, 0x33, 0x05, 0x44, 0x48, 0xbc, 0x77, 0x48, 0xf0, 0xde, 0x27, 0x51, 0x9b}: "DellSmBiosStrucD8", efi.GUID{0x73, 0x26, 0xbc, 0x34, 0x6b, 0x25, 0xe2, 0x4b, 0x9c, 0x4c, 0x02, 0x5e, 0xe4, 0x84, 0xac, 0xae}: "DellXhciPei", efi.GUID{0x73, 0x26, 0xea, 0x47, 0x33, 0x25, 0x07, 0x4c, 0xaa, 0xba, 0x69, 0xce, 0x5a, 0x7c, 0x5d, 0x35}: "FspInit", efi.GUID{0x73, 0x2c, 0x58, 0xcc, 0x8f, 0xf4, 0x62, 0x4b, 0x83, 0xe8, 0xa5, 0x86, 0xb4, 0xc8, 0x8f, 0x84}: "AppleFirmwareFeatures", efi.GUID{0x73, 0x2f, 0x32, 0x53, 0x65, 0x39, 0xa7, 0x45, 0x8b, 0x54, 0x61, 0x97, 0x27, 0x44, 0x10, 0x2e}: "IntelUefiRaidDiskInfo", efi.GUID{0x73, 0x37, 0x87, 0x4e, 0x91, 0x83, 0x47, 0x4e, 0xb7, 0xf4, 0xca, 0xfb, 0xdc, 0xc4, 0xb2, 0x04}: "EfiDmaRemapProtocol", efi.GUID{0x73, 0x3c, 0xf5, 0xb5, 0x8b, 0x3a, 0xe3, 0x49, 0xa4, 0x28, 0xb7, 0xd1, 0x5a, 0x2f, 0xd9, 0x94}: "CbsBaseDxeRMB", efi.GUID{0x73, 0x46, 0x16, 0x10, 0x65, 0xd3, 0xe2, 0x4b, 0x85, 0x13, 0x14, 0x97, 0xcc, 0x07, 0x61, 0x1d}: "ScPolicyPpiGuid", efi.GUID{0x73, 0x46, 0x34, 0x15, 0x65, 0xd3, 0xe2, 0x4b, 0x85, 0x13, 0x14, 0x97, 0xcc, 0x07, 0x61, 0x1d}: "PchPlatformPolicyPpiGuid", efi.GUID{0x73, 0x49, 0xbf, 0x82, 0x4d, 0x73, 0x24, 0x43, 0xa3, 0xd3, 0xfc, 0xc0, 0xee, 0x3a, 0xd5, 0x1e}: "DellEarlyLogoPei", efi.GUID{0x73, 0x62, 0xba, 0x86, 0x62, 0x05, 0xd6, 0x4c, 0x89, 0x71, 0x87, 0x32, 0x94, 0x9a, 0x11, 0x91}: "BiosInitToFactorySupportSmm", efi.GUID{0x73, 0x62, 0xc6, 0x3a, 0x97, 0x9f, 0xb7, 0x41, 0x9a, 0xad, 0x5d, 0x78, 0x1d, 0xa0, 0xb8, 0xa7}: "DellVideoDxe", efi.GUID{0x73, 0x6a, 0x03, 0x16, 0xef, 0xe8, 0xd0, 0x46, 0x95, 0x3c, 0x9b, 0x8e, 0x96, 0x52, 0x7d, 0x13}: "Reset", efi.GUID{0x73, 0x6d, 0x6b, 0xd5, 0x7b, 0x1a, 0x15, 0x40, 0x9b, 0xb4, 0x7b, 0x07, 0x17, 0x29, 0xed, 0x24}: "EdkiiSmmPerformanceMeasurementProtocol", efi.GUID{0x73, 0x74, 0x78, 0xdd, 0xce, 0x07, 0x63, 0x4c, 0x82, 0xce, 0x93, 0x0b, 0x33, 0xf3, 0x9c, 0x09}: "SmmControl", efi.GUID{0x73, 0x78, 0x63, 0xd3, 0xbe, 0xf8, 0xcd, 0x4e, 0xb6, 0xca, 0x51, 0x60, 0xe5, 0x97, 0x8c, 0x88}: "DellSyncSetupSmm", efi.GUID{0x73, 0x7a, 0xef, 0x67, 0x94, 0x25, 0x5e, 0x4a, 0x93, 0x0a, 0xe1, 0x66, 0xfa, 0xbc, 0xd2, 0xc8}: "EfiDmiFormatFru", efi.GUID{0x73, 0x7e, 0x4a, 0x31, 0xf2, 0xea, 0xf3, 0x40, 0x81, 0xb5, 0x61, 0xfc, 0x83, 0xc4, 0x68, 0xcf}: "EcdBoardId", efi.GUID{0x73, 0x8a, 0x7d, 0xa0, 0xf9, 0xd4, 0xa0, 0x4a, 0xbc, 0x25, 0x39, 0x1c, 0xcf, 0xc4, 0x7e, 0x98}: "I2cControllerTemplate", efi.GUID{0x73, 0x8e, 0x96, 0x18, 0x45, 0x3c, 0x33, 0x43, 0xb9, 0x7f, 0x87, 0x64, 0xc2, 0x39, 0x23, 0xac}: "FjAutoBiosUpdateInterfaceProtocol", efi.GUID{0x73, 0x8e, 0xf3, 0x12, 0x4d, 0xb3, 0x59, 0x45, 0x99, 0xe5, 0xae, 0x2d, 0xcd, 0x00, 0x21, 0x56}: "BaseFspWrapperPlatformLibSample", efi.GUID{0x73, 0x92, 0xb9, 0xad, 0xa6, 0x4f, 0x43, 0x49, 0xbb, 0xbf, 0x56, 0x5e, 0x7c, 0xfe, 0x90, 0x04}: "AmdFabricRplDxe", efi.GUID{0x73, 0x93, 0x27, 0x7d, 0xcc, 0xee, 0x4f, 0x4d, 0xae, 0x2f, 0xce, 0xc4, 0xb7, 0x06, 0xb0, 0x6a}: "Tpm2AcpiTableStorage", efi.GUID{0x73, 0x93, 0xe1, 0xce, 0x2a, 0xfb, 0x8e, 0x4b, 0xbe, 0xf5, 0xb6, 0xd7, 0x73, 0x1f, 0x49, 0x39}: "I2cBus", efi.GUID{0x73, 0x99, 0x33, 0xc8, 0x63, 0xa5, 0x61, 0x45, 0xb8, 0x58, 0xd8, 0x47, 0x6f, 0x9d, 0xef, 0xc4}: "Metronome", efi.GUID{0x73, 0x9a, 0xf1, 0x68, 0x47, 0xc4, 0xdd, 0x4f, 0xb4, 0xb7, 0xf3, 0x80, 0xf7, 0xdd, 0x29, 0x0f}: "FprGoodixDriver", efi.GUID{0x73, 0xa2, 0x31, 0x1b, 0x7e, 0x21, 0x77, 0x33, 0x23, 0xd1, 0xab, 0x0c, 0xf1, 0x9b, 0x9d, 0x47}: "ChgbootDxe", efi.GUID{0x73, 0xa2, 0xec, 0xe2, 0xc0, 0xa1, 0x7e, 0x40, 0x9a, 0x5c, 0xf1, 0x0c, 0x55, 0x14, 0x21, 0x96}: "BaseSmbusLibNull", efi.GUID{0x73, 0xab, 0x22, 0xa6, 0x7f, 0x1e, 0xc8, 0x43, 0xa4, 0x65, 0x0d, 0x5b, 0x26, 0x7f, 0x1a, 0x37}: "MicrowindowsDxe", efi.GUID{0x73, 0xb2, 0x20, 0x1a, 0xbf, 0x2c, 0x64, 0x4e, 0xa4, 0xa0, 0x16, 0xa2, 0xaf, 0x25, 0x2c, 0x27}: "AmdFchWheaSmm", efi.GUID{0x73, 0xb3, 0x4f, 0x0a, 0x9f, 0x35, 0x34, 0x4a, 0xb3, 0x54, 0xab, 0x7b, 0x2e, 0xb7, 0x25, 0x52}: "AmdSocAm4SmPei", efi.GUID{0x73, 0xb7, 0x41, 0xe5, 0x11, 0xdd, 0x0c, 0x42, 0xb0, 0x26, 0xdf, 0x99, 0x36, 0x53, 0xf8, 0xbf}: "EfiSmmSwDispatchProtocolGuid", efi.GUID{0x73, 0xb7, 0xd7, 0xc7, 0xe6, 0x68, 0x26, 0x46, 0x80, 0xf9, 0x60, 0x9c, 0x44, 0x51, 0xeb, 0x0c}: "FjDmiWakeCause", efi.GUID{0x73, 0xba, 0xf0, 0x61, 0xa9, 0x93, 0x9d, 0x41, 0xbd, 0x69, 0xad, 0xe3, 0xc5, 0xd5, 0x21, 0x7b}: "CbsSetupDxeSTX", efi.GUID{0x73, 0xc2, 0x39, 0x64, 0xb3, 0x09, 0xcb, 0x43, 0xb2, 0x5e, 0xc6, 0x75, 0xf5, 0xbc, 0xc7, 0x3d}: "AmdMemBrhSp5Pei", efi.GUID{0x73, 0xc4, 0xf5, 0x53, 0xb5, 0x46, 0xf3, 0x45, 0x82, 0x61, 0xe4, 0xa5, 0x9a, 0x9e, 0x75, 0x5d}: "AmdPspPeiV2Stp", efi.GUID{0x73, 0xca, 0x8a, 0x58, 0xd8, 0x2e, 0x76, 0x4f, 0x93, 0x10, 0x6f, 0x4d, 0x0b, 0x44, 0x92, 0x42}: "AsusHeader", efi.GUID{0x73, 0xcd, 0x28, 0xcf, 0xde, 0xf3, 0x25, 0x41, 0x86, 0x51, 0x61, 0xcc, 0x4d, 0x78, 0x6f, 0xb2}: "OEMWMIDxe", efi.GUID{0x73, 0xcd, 0xde, 0x43, 0xcb, 0x77, 0x4d, 0x47, 0xbd, 0x6f, 0x1a, 0x98, 0xe7, 0xe2, 0xb6, 0xc6}: "LenovoErrorManagerDxe", efi.GUID{0x73, 0xda, 0x1d, 0x84, 0x8d, 0x0a, 0x49, 0x4d, 0xaf, 0x60, 0x2a, 0x14, 0x5d, 0x21, 0x76, 0xce}: "EfiNgnAcpiSmmInterfaceProtocol", efi.GUID{0x73, 0xde, 0x2a, 0x4d, 0x51, 0xb7, 0x68, 0x4c, 0x9f, 0xa2, 0x61, 0x90, 0x9e, 0xbc, 0x59, 0xea}: "KEMhMarsDxe", efi.GUID{0x73, 0xe9, 0x69, 0x9b, 0xdc, 0xcb, 0x35, 0x40, 0x9a, 0xe8, 0xec, 0x9c, 0x76, 0x17, 0xfa, 0x28}: "LEMPostFlagProtocol", efi.GUID{0x73, 0xec, 0x2f, 0xb9, 0x02, 0xd9, 0x90, 0x46, 0x9b, 0x92, 0x43, 0x0e, 0x0e, 0x90, 0x63, 0x69}: "AmiPspPlatformDxe", efi.GUID{0x73, 0xee, 0xea, 0x1f, 0xdc, 0xf8, 0x9f, 0x43, 0x9f, 0xd3, 0xa0, 0xed, 0x92, 0xb5, 0xeb, 0xda}: "SmbiosMFG", efi.GUID{0x73, 0xf5, 0x53, 0xfc, 0xdd, 0x17, 0x4c, 0x45, 0xb0, 0x67, 0xec, 0xb1, 0x0b, 0x7d, 0x7f, 0xc7}: "EfiHeciSmmProtocolGuid", efi.GUID{0x73, 0xf9, 0x10, 0xa2, 0x9d, 0x22, 0x4d, 0x4f, 0xaa, 0x37, 0x98, 0x95, 0xe6, 0xc9, 0xea, 0xba}: "DpcDxe", efi.GUID{0x73, 0xfe, 0x0d, 0x65, 0xc8, 0x6a, 0xe6, 0x45, 0x92, 0x15, 0x98, 0x72, 0xbe, 0xc8, 0xb2, 0x76}: "ICCDXE", efi.GUID{0x73, 0xfe, 0xa9, 0x74, 0x72, 0x8e, 0xad, 0x4f, 0x80, 0x43, 0xed, 0x4a, 0xf8, 0x2c, 0x08, 0xae}: "SwSmi534D0B40", efi.GUID{0x74, 0x00, 0x76, 0xa2, 0x4c, 0xed, 0x19, 0x47, 0x83, 0x82, 0xc9, 0x42, 0xcb, 0xf1, 0x6d, 0x85}: "DisplayTypeDxe", efi.GUID{0x74, 0x07, 0x59, 0x0b, 0x67, 0xbc, 0xf4, 0x49, 0xa7, 0xdb, 0xe8, 0x2e, 0x89, 0xe6, 0xb5, 0xd6}: "EfiPeiMpInitLibUpDepPpi", efi.GUID{0x74, 0x0d, 0x11, 0x1c, 0x9b, 0x15, 0xb3, 0x46, 0xb4, 0x7e, 0x7b, 0x7a, 0xd2, 0x2f, 0xa6, 0xd6}: "DellResetReduction", efi.GUID{0x74, 0x15, 0xe3, 0xdd, 0x89, 0x35, 0xa9, 0x4f, 0xbc, 0x69, 0x17, 0x29, 0xaf, 0x6f, 0xda, 0x4e}: "AmiNvramUpdateProtocolGuid", efi.GUID{0x74, 0x18, 0x23, 0x18, 0x33, 0x29, 0x4c, 0x4a, 0xaa, 0xf1, 0x65, 0xb4, 0xa7, 0x52, 0xa4, 0x09}: "FwHealthReporterDxe", efi.GUID{0x74, 0x1a, 0xc8, 0x93, 0x48, 0xb6, 0x7f, 0x4f, 0x92, 0x5e, 0xe4, 0xa0, 0xcd, 0xcc, 0x77, 0x6d}: "VlvInitDxe", efi.GUID{0x74, 0x20, 0x16, 0xff, 0x4f, 0x86, 0x43, 0x43, 0x93, 0xae, 0x5b, 0x06, 0xca, 0x25, 0x6a, 0x3a}: "DeleteNvStorageVariableSmm", efi.GUID{0x74, 0x26, 0xeb, 0x76, 0xf2, 0xb3, 0x89, 0x44, 0xbb, 0x6d, 0xe2, 0x44, 0x8f, 0x7e, 0xf6, 0x14}: "BiosSelfHealingPei", efi.GUID{0x74, 0x2b, 0x70, 0xc2, 0x0c, 0x80, 0x31, 0x41, 0x87, 0x46, 0x8f, 0xb5, 0xb8, 0x9c, 0xe4, 0xac}: "EfiSmmAccess2ProtocolGuid", efi.GUID{0x74, 0x2c, 0x7b, 0x17, 0x74, 0x96, 0xf4, 0x45, 0xaa, 0xeb, 0x43, 0xf5, 0x50, 0x6a, 0xe0, 0xfe}: "AsusPostMessageDxe", efi.GUID{0x74, 0x3b, 0x76, 0x1a, 0x00, 0x14, 0x45, 0x42, 0xbf, 0x89, 0x56, 0x91, 0x0f, 0xa7, 0xbe, 0x48}: "FjSystemInfo", efi.GUID{0x74, 0x55, 0x2f, 0xcf, 0x73, 0x3c, 0x2f, 0x4d, 0x97, 0x6d, 0x66, 0x5c, 0xad, 0x2e, 0x53, 0x81}: "ASUSDirectKeyDXE", efi.GUID{0x74, 0x67, 0x1a, 0x2a, 0x8d, 0x32, 0x58, 0x4c, 0x9f, 0x30, 0x01, 0x9e, 0xff, 0x54, 0xf9, 0xb2}: "MSIInBIOSFlash", efi.GUID{0x74, 0x69, 0xd9, 0x0f, 0xaa, 0x23, 0xdc, 0x4c, 0xb9, 0xcb, 0x98, 0xd1, 0x77, 0x50, 0x32, 0x2a}: "EfiHiiStringProtocolGuid", efi.GUID{0x74, 0x6a, 0x5c, 0x4c, 0xb7, 0xba, 0xd6, 0x46, 0x86, 0x88, 0x3b, 0x2e, 0x7f, 0x24, 0x6e, 0x3f}: "SataController", efi.GUID{0x74, 0x6f, 0x34, 0x87, 0x49, 0xb2, 0xb8, 0x49, 0x82, 0x87, 0x27, 0x02, 0xce, 0x61, 0x10, 0x9c}: "BiosGuardServices", efi.GUID{0x74, 0x77, 0x0c, 0x66, 0x3b, 0x31, 0x4a, 0x43, 0x86, 0x33, 0x5d, 0x14, 0x88, 0xcc, 0xd1, 0x72}: "I2CTPResetPei", efi.GUID{0x74, 0x7a, 0x24, 0x25, 0x40, 0x94, 0xd5, 0x47, 0xbf, 0x0a, 0xed, 0x92, 0xa4, 0xd6, 0xeb, 0xa4}: "DellComputraceBinary", efi.GUID{0x74, 0x7e, 0x57, 0xf1, 0xab, 0xca, 0xc8, 0x41, 0x9e, 0x26, 0xf1, 0x1e, 0xeb, 0xb6, 0xc8, 0x3d}: "SdMmcDevice", efi.GUID{0x74, 0x85, 0x19, 0x71, 0x9a, 0xfe, 0xb5, 0x45, 0xa2, 0xf8, 0x4d, 0x29, 0x87, 0x06, 0x6d, 0x20}: "AsusWMIMethod", efi.GUID{0x74, 0x88, 0x0a, 0x70, 0x15, 0xd2, 0xbb, 0x4a, 0x9e, 0xf2, 0x7a, 0x80, 0x12, 0x85, 0x60, 0xe0}: "EmmcSoftwareTuningStorage", efi.GUID{0x74, 0x88, 0x0a, 0x70, 0x15, 0xd2, 0xcc, 0x4a, 0x9e, 0xf2, 0x7a, 0x80, 0x12, 0x85, 0x60, 0xe0}: "UfsPlatform", efi.GUID{0x74, 0x8a, 0x77, 0x8b, 0x75, 0xc2, 0xd5, 0x49, 0x93, 0xed, 0x4d, 0x70, 0x9a, 0x12, 0x9c, 0xb1}: "AbtDxe", efi.GUID{0x74, 0xa5, 0x78, 0x42, 0x69, 0x47, 0x60, 0x4d, 0xb0, 0x90, 0xdd, 0x49, 0x16, 0x69, 0x15, 0x90}: "RecoveryModuleLoadPei", efi.GUID{0x74, 0xa6, 0x04, 0x7b, 0xf3, 0x8e, 0x3e, 0x44, 0x99, 0x9d, 0xd6, 0x25, 0x08, 0xbd, 0x3a, 0x3e}: "PldmImportBinShp", efi.GUID{0x74, 0xa9, 0x3a, 0x78, 0xb0, 0xdf, 0x7b, 0x48, 0x90, 0x6f, 0x12, 0x0f, 0xb9, 0x48, 0x6e, 0x88}: "SetupConfigUpdateDxeLightningRidgeEXECB4", efi.GUID{0x74, 0xb0, 0x73, 0x2b, 0x67, 0x2e, 0x8b, 0x49, 0x82, 0xac, 0xce, 0x38, 0xfb, 0x77, 0x0f, 0xfc}: "DxeSalLibEsal", efi.GUID{0x74, 0xc9, 0xeb, 0xc0, 0xb2, 0xb5, 0x25, 0x47, 0x90, 0x91, 0x9f, 0x45, 0x57, 0x8f, 0x21, 0x3c}: "AddressTranslationDsmMemRas", efi.GUID{0x74, 0xcc, 0x47, 0x68, 0xec, 0xe9, 0x8f, 0x4f, 0xa2, 0x9d, 0xab, 0x44, 0xe7, 0x54, 0xa8, 0xfc}: "ArmMpCoreInfoPpiGuid", efi.GUID{0x74, 0xd2, 0xc6, 0xb1, 0x4f, 0x06, 0xc7, 0x46, 0xa9, 0x24, 0xdc, 0xf8, 0x5f, 0x3d, 0x74, 0x7e}: "AmiRedfishIScsi", efi.GUID{0x74, 0xd3, 0xcc, 0x24, 0xf6, 0x3d, 0x81, 0x41, 0x86, 0xf6, 0xe3, 0xc6, 0x69, 0x20, 0xa1, 0x45}: "UpdateMemoryRecord", efi.GUID{0x74, 0xe7, 0xad, 0x9e, 0x36, 0xc7, 0x3e, 0x49, 0xb2, 0xa1, 0x9c, 0xe0, 0x41, 0x58, 0x61, 0xfa}: "AmdXgbeWorkaroundPei", efi.GUID{0x74, 0xf1, 0xa3, 0xb9, 0x36, 0x1b, 0xec, 0x4a, 0x99, 0xe2, 0xf2, 0x85, 0x5e, 0xb4, 0xc3, 0xde}: "BoardInfoDxe", efi.GUID{0x74, 0xfc, 0x58, 0xe4, 0x13, 0x9f, 0x0e, 0x4e, 0xa8, 0x1e, 0xe3, 0x26, 0x05, 0xfa, 0x72, 0x47}: "FlashUtilitySmmProtocol", efi.GUID{0x75, 0x02, 0xbe, 0x2e, 0x58, 0x64, 0xf9, 0x4a, 0x91, 0xed, 0xd3, 0xf4, 0xed, 0xb1, 0x00, 0xaa}: "SignOn", efi.GUID{0x75, 0x05, 0x83, 0x44, 0x1a, 0x0a, 0x0b, 0x45, 0x9f, 0xef, 0xbc, 0x88, 0xa1, 0x86, 0x6a, 0x13}: "FjGabiBootOrderHandlerSmm", efi.GUID{0x75, 0x06, 0x4b, 0xea, 0x36, 0x1f, 0xbe, 0x4a, 0xbb, 0x3a, 0x6d, 0x60, 0x76, 0x0a, 0x02, 0xa2}: "AmiPciPortCompatibilityProtocolGuid", efi.GUID{0x75, 0x11, 0xa9, 0xcc, 0xe3, 0x03, 0x2a, 0x44, 0xb3, 0xb8, 0x2e, 0x4a, 0x33, 0x5c, 0x1d, 0xea}: "AmiHsti", efi.GUID{0x75, 0x13, 0xed, 0xbc, 0x68, 0x8e, 0x9f, 0x4d, 0xb8, 0xb4, 0x37, 0x86, 0x2b, 0x22, 0xfa, 0x6d}: "SDPlatformInitDxe", efi.GUID{0x75, 0x19, 0xe2, 0xf8, 0x99, 0x08, 0x58, 0x4f, 0xa4, 0xbe, 0x55, 0x25, 0xa9, 0xc6, 0xd7, 0x7a}: "EfiHobMemoryAllocModuleGuid", efi.GUID{0x75, 0x1d, 0xc2, 0x3d, 0x0e, 0xde, 0x00, 0x43, 0xa0, 0xaa, 0x19, 0xc4, 0x1c, 0x0c, 0xf3, 0xdf}: "SaGlobalNvsAreaProtocol", efi.GUID{0x75, 0x22, 0x3f, 0x2e, 0xcd, 0x89, 0xe4, 0x4d, 0xbd, 0x84, 0xbe, 0xbf, 0xd9, 0x4b, 0xcd, 0xcc}: "DellSmBiosDaCiSmm", efi.GUID{0x75, 0x27, 0xe6, 0xb8, 0x0a, 0xbb, 0xf0, 0x43, 0xa8, 0x43, 0x5b, 0xe8, 0xb1, 0x4f, 0x8c, 0xcd}: "BootGraphicsResourceTableDxe", efi.GUID{0x75, 0x28, 0xa7, 0xa6, 0x62, 0x29, 0x18, 0x4c, 0x9f, 0x46, 0x8d, 0xa6, 0x44, 0xcc, 0xfe, 0x00}: "EfiIScsiInitiatorNameProtocolGuid", efi.GUID{0x75, 0x2d, 0x41, 0xbc, 0x29, 0x27, 0x3a, 0x4c, 0xb1, 0x93, 0x5b, 0x9a, 0x58, 0x8f, 0xf6, 0x6f}: "FirmwarePerformanceProtocol", efi.GUID{0x75, 0x2e, 0x3d, 0x2e, 0x2e, 0x9b, 0x2d, 0x41, 0xb4, 0xb1, 0x70, 0x41, 0x6b, 0x87, 0x00, 0xff}: "RecoveryOnFatFloppyDiskGuid", efi.GUID{0x75, 0x33, 0xa0, 0x97, 0x0d, 0x25, 0x59, 0x4c, 0x93, 0xa8, 0xf7, 0x67, 0x96, 0x72, 0x5e, 0x18}: "AmdApcbRvSmm", efi.GUID{0x75, 0x37, 0xe6, 0xb8, 0x0a, 0xbb, 0xf0, 0x43, 0xa8, 0x43, 0x5b, 0xe8, 0xb1, 0x4f, 0x8c, 0xcd}: "SystemAcpiBgrtDxe", efi.GUID{0x75, 0x3a, 0x4a, 0x7f, 0x8c, 0x53, 0x59, 0x42, 0xb4, 0x20, 0xc4, 0x48, 0x18, 0xcb, 0xc5, 0x53}: "ATIPwrXDXE", efi.GUID{0x75, 0x3b, 0x1a, 0x29, 0x85, 0xc6, 0x5e, 0x47, 0x87, 0x6b, 0x2e, 0x40, 0xa6, 0xa7, 0xe1, 0x8a}: "SetTimerPeriodDxe", efi.GUID{0x75, 0x45, 0xc6, 0xdc, 0x7d, 0xfa, 0x7b, 0x4b, 0xb1, 0xad, 0x48, 0x42, 0x7c, 0x97, 0xc7, 0x4d}: "LibCtype", efi.GUID{0x75, 0x47, 0xca, 0xe9, 0x57, 0x86, 0xfc, 0x47, 0x97, 0xe7, 0x7e, 0xd6, 0x5a, 0x08, 0x43, 0x24}: "EfiHiiFontProtocolGuid", efi.GUID{0x75, 0x47, 0xd8, 0x3d, 0x79, 0xec, 0xcb, 0x4e, 0x84, 0x04, 0x74, 0xde, 0x03, 0x0c, 0x3f, 0x77}: "FmpDxe", efi.GUID{0x75, 0x4a, 0x6e, 0x6e, 0x14, 0xef, 0xfb, 0x47, 0xb4, 0x3a, 0x67, 0xec, 0x43, 0xb8, 0x7d, 0x22}: "SpiFlashProSmm", efi.GUID{0x75, 0x4a, 0xec, 0x81, 0xae, 0xa7, 0x7e, 0x48, 0x99, 0x3f, 0x21, 0x90, 0xbd, 0x47, 0x42, 0x3a}: "LEMEventLogProtocolDxe", efi.GUID{0x75, 0x51, 0x03, 0xd9, 0xe2, 0x8c, 0xde, 0x47, 0xa8, 0xb8, 0xcc, 0x98, 0xe5, 0xe2, 0xa8, 0x85}: "EfiPlatformInfoProtocol", efi.GUID{0x75, 0x5a, 0x1d, 0x54, 0xee, 0x95, 0xc7, 0x43, 0x9e, 0x5d, 0x23, 0x94, 0xdc, 0x48, 0x62, 0x49}: "AmiTseAdminPasswordValidGuid", efi.GUID{0x75, 0x61, 0x65, 0xa8, 0x10, 0x92, 0xb5, 0x4a, 0x8e, 0xd4, 0xa7, 0x50, 0x3b, 0xd9, 0x2f, 0x0c}: "BoardSmbiosDxe", efi.GUID{0x75, 0x68, 0xd5, 0x9b, 0xe9, 0x85, 0x10, 0x45, 0x9d, 0xc0, 0x1f, 0x84, 0x26, 0x08, 0x59, 0x1f}: "FjGpioGeminilakeDxe", efi.GUID{0x75, 0x69, 0x54, 0x56, 0x50, 0xc4, 0xb2, 0x44, 0x9d, 0x25, 0xce, 0x83, 0xc5, 0x82, 0x01, 0x61}: "LegacyBridgeProtocol", efi.GUID{0x75, 0x6e, 0x88, 0x0f, 0x29, 0x30, 0xcf, 0x4e, 0xb6, 0x94, 0x22, 0x89, 0x4d, 0x3f, 0x21, 0x43}: "PLEDDXE", efi.GUID{0x75, 0x72, 0x2c, 0x36, 0x8f, 0x4d, 0x07, 0x46, 0x8d, 0x8f, 0x28, 0x89, 0x3a, 0x8a, 0xcd, 0x60}: "EpuHwModePei", efi.GUID{0x75, 0x73, 0xad, 0x91, 0x8e, 0x8e, 0xd2, 0x49, 0xa3, 0x43, 0x68, 0xbc, 0x78, 0x27, 0x39, 0x55}: "HddPasswordPei", efi.GUID{0x75, 0x76, 0xfc, 0x1d, 0x00, 0xcb, 0xf8, 0x4b, 0xb8, 0xf0, 0xe1, 0xc9, 0x93, 0x81, 0x4d, 0x2e}: "FjWirelessLanDxe", efi.GUID{0x75, 0x7d, 0x75, 0xc0, 0x84, 0x3f, 0x92, 0x25, 0xae, 0xb9, 0x33, 0xd1, 0x9b, 0xab, 0xcc, 0xf7}: "TmpDecFileHolderDxe", efi.GUID{0x75, 0x7e, 0x49, 0x08, 0xf6, 0x0b, 0xe2, 0x40, 0x8a, 0xbf, 0xb9, 0x8d, 0xfb, 0x46, 0x4c, 0x93}: "SpiFlashPeiLibNull", efi.GUID{0x75, 0x86, 0x47, 0x4d, 0x19, 0x9d, 0xb2, 0x4e, 0x99, 0x60, 0xcb, 0xc8, 0x8d, 0x6c, 0x39, 0x35}: "PlatformHmacShaSmm", efi.GUID{0x75, 0x8e, 0x57, 0x18, 0x73, 0xd0, 0x03, 0x42, 0x90, 0xd2, 0x87, 0x88, 0xa8, 0x71, 0xe4, 0x4d}: "LenovoComputraceSmiServices", efi.GUID{0x75, 0x9c, 0xbb, 0x58, 0xe1, 0xd7, 0xaa, 0x46, 0x9f, 0x80, 0x7b, 0x17, 0x6f, 0x3b, 0x40, 0x4b}: "AmdMemSmbiosV2StxLpd5Pei", efi.GUID{0x75, 0xa4, 0x2a, 0xdc, 0x36, 0xf6, 0xbb, 0x48, 0x6d, 0x74, 0x7f, 0x2d, 0x92, 0x6c, 0x11, 0x11}: "LEMElockerSet", efi.GUID{0x75, 0xa4, 0x2a, 0xdc, 0x39, 0xf9, 0xbb, 0x48, 0x9d, 0x74, 0x7f, 0x2d, 0x62, 0x9c, 0x11, 0x11}: "LoadComputraceImage", efi.GUID{0x75, 0xa4, 0x3a, 0xdc, 0x39, 0xf9, 0xbb, 0x48, 0x9d, 0x74, 0x7f, 0x2d, 0x62, 0x9c, 0x11, 0x11}: "LoadCptImage", efi.GUID{0x75, 0xa7, 0xbe, 0x49, 0x94, 0xfb, 0x5d, 0x45, 0x98, 0x26, 0x8d, 0xb4, 0xa0, 0x4d, 0xbd, 0x02}: "POSTCODE0A_BASEFWUPDATE_DXE", efi.GUID{0x75, 0xa8, 0x0a, 0x26, 0xed, 0x0e, 0xe1, 0x4e, 0x8a, 0x14, 0x04, 0x6b, 0x4f, 0xb1, 0x7e, 0xf5}: "DetectRecoveryModePei", efi.GUID{0x75, 0xab, 0x1a, 0xf7, 0xbe, 0x41, 0x09, 0xc2, 0xa3, 0x24, 0x9b, 0x96, 0x3b, 0xbd, 0xcb, 0x26}: "AmdRasSspDxe", efi.GUID{0x75, 0xad, 0x33, 0xb6, 0x8c, 0x11, 0x7c, 0x4e, 0xbe, 0xdf, 0xa3, 0x1d, 0x32, 0x34, 0x22, 0x1e}: "SmmStatus", efi.GUID{0x75, 0xae, 0x57, 0x2a, 0x7a, 0x8b, 0x64, 0x4c, 0x86, 0x56, 0xdb, 0x51, 0xdd, 0xc3, 0x6f, 0x7b}: "EfiHiiExtProtocol", efi.GUID{0x75, 0xb2, 0x12, 0x46, 0x6b, 0x35, 0xd3, 0x44, 0x93, 0x15, 0x33, 0xe6, 0xe9, 0x36, 0xe6, 0x4c}: "FjTpmInit", efi.GUID{0x75, 0xba, 0x2d, 0x3d, 0xbc, 0x5e, 0xea, 0x4e, 0xa4, 0x87, 0x06, 0xad, 0x9e, 0x1c, 0xac, 0xb3}: "DellI2cPlatformDxe", efi.GUID{0x75, 0xba, 0x65, 0x74, 0xa7, 0x88, 0x61, 0x4b, 0x9a, 0x7e, 0x6d, 0x4e, 0xdf, 0x68, 0x04, 0xdc}: "AmiUdfMediaGuid", efi.GUID{0x75, 0xbc, 0x5d, 0x7a, 0x2b, 0x5b, 0x67, 0x4e, 0xbd, 0xe1, 0xd4, 0x8e, 0xee, 0x76, 0x15, 0x62}: "EfiSmmSpiReadyProtocolGuid", efi.GUID{0x75, 0xbe, 0x42, 0xf3, 0x4c, 0x27, 0x3c, 0x43, 0xa2, 0x4d, 0x28, 0x16, 0xf5, 0x43, 0x3d, 0x50}: "VmwSmbios", efi.GUID{0x75, 0xc2, 0xce, 0x5b, 0x68, 0x69, 0xbf, 0x4f, 0x83, 0x39, 0x90, 0x68, 0x5d, 0xe8, 0xad, 0x81}: "TouchDriver", efi.GUID{0x75, 0xd5, 0xe4, 0x9b, 0xf1, 0xb6, 0xc6, 0x4a, 0x91, 0xaa, 0xe2, 0xa7, 0x37, 0x6d, 0x5a, 0x26}: "ASRockHDAudioPei", efi.GUID{0x75, 0xd6, 0x84, 0x66, 0x06, 0xee, 0xb2, 0x49, 0x87, 0x6f, 0x79, 0xc5, 0x8f, 0xdd, 0xa5, 0xb7}: "IrmtAcpiTableStorageGuid", efi.GUID{0x75, 0xf0, 0x2e, 0x83, 0x39, 0x7d, 0x4c, 0x4e, 0x83, 0xb9, 0xb1, 0xeb, 0xf3, 0x4d, 0xa2, 0xd6}: "PcdInitDxe", efi.GUID{0x75, 0xf2, 0x59, 0x5c, 0x0a, 0x63, 0x55, 0x48, 0x89, 0x8c, 0x9a, 0xd0, 0xc2, 0x52, 0xf8, 0x23}: "BrightnessHardwareEcSmm", efi.GUID{0x76, 0x06, 0xa9, 0xc7, 0xcc, 0x51, 0xfa, 0x4f, 0xb5, 0xca, 0x69, 0xea, 0x88, 0xd2, 0xf7, 0x8d}: "EfiPlatformTypeOpalCityFpgaProtocol", efi.GUID{0x76, 0x0a, 0x48, 0xfd, 0x34, 0xb1, 0xf7, 0x4e, 0xad, 0xfe, 0xb0, 0xe0, 0x54, 0x63, 0x98, 0x07}: "UsraProtocol", efi.GUID{0x76, 0x0f, 0xed, 0xf7, 0x41, 0x1f, 0x27, 0x45, 0xaf, 0x2a, 0xee, 0xcc, 0x76, 0xb8, 0xf0, 0x78}: "ArmaniDxe", efi.GUID{0x76, 0x23, 0xc8, 0x3d, 0x7b, 0x63, 0xa6, 0x40, 0xa8, 0xfc, 0xa5, 0x65, 0x41, 0x7f, 0x2c, 0x38}: "Ps2KeyboardDxe", efi.GUID{0x76, 0x25, 0x3e, 0x07, 0xc1, 0xf6, 0x91, 0x4b, 0x92, 0xa9, 0xd4, 0x67, 0x5d, 0xda, 0x34, 0xb1}: "PttPassThruProtocolGuid", efi.GUID{0x76, 0x28, 0xe4, 0x1a, 0x8f, 0x00, 0x61, 0x41, 0xb2, 0xb7, 0x1c, 0x0d, 0x15, 0xc5, 0xef, 0x43}: "DefaultDataFile", efi.GUID{0x76, 0x2a, 0x17, 0xc1, 0x56, 0x6a, 0x09, 0x4c, 0xb1, 0xfd, 0xc2, 0x9f, 0x94, 0xda, 0x13, 0x80}: "AmdMemoryHobInfoPeim", efi.GUID{0x76, 0x2c, 0xc3, 0x6b, 0xdb, 0x91, 0x48, 0x45, 0xa4, 0x19, 0x0b, 0x88, 0x9e, 0xb8, 0x19, 0x6f}: "EventLogApplication", efi.GUID{0x76, 0x43, 0x4e, 0x3a, 0x71, 0x48, 0x0e, 0x4b, 0xa0, 0x2f, 0xed, 0x36, 0xf2, 0xae, 0xcd, 0x00}: "AmiCsmVideoPolicyProtocolGuid", efi.GUID{0x76, 0x43, 0x67, 0x62, 0x62, 0xd3, 0xb3, 0x45, 0x9a, 0x6b, 0x0e, 0x0d, 0x40, 0x98, 0xca, 0xda}: "EmbeddedPowerButtonDxe", efi.GUID{0x76, 0x44, 0x0b, 0x40, 0x81, 0x30, 0xd6, 0x11, 0x87, 0xed, 0x00, 0x06, 0x29, 0x45, 0xc3, 0xb9}: "SystemSpeakerDxe", efi.GUID{0x76, 0x53, 0xdf, 0xa2, 0xed, 0xc2, 0xc0, 0x49, 0x90, 0xff, 0x8b, 0x17, 0x3b, 0x0f, 0xd0, 0x66}: "EsaFull", efi.GUID{0x76, 0x56, 0xdd, 0x15, 0x79, 0x26, 0x24, 0x4e, 0x9c, 0xaa, 0x85, 0xb2, 0x2d, 0xd8, 0x93, 0xeb}: "LenovoSecureFlashVerifySmm", efi.GUID{0x76, 0x6c, 0x19, 0x64, 0xe3, 0x58, 0x4d, 0x0b, 0x94, 0x84, 0xb5, 0x4f, 0x7c, 0x43, 0x49, 0xca}: "BootModePei", efi.GUID{0x76, 0x71, 0xff, 0x24, 0x2a, 0x8b, 0x38, 0x41, 0x95, 0x09, 0x3d, 0x5e, 0x30, 0x59, 0xbc, 0xf4}: "ExtendOperatingAmbientTemperatureModeDXE", efi.GUID{0x76, 0x76, 0x47, 0x8e, 0xfd, 0x55, 0xcf, 0x48, 0x92, 0x10, 0x15, 0xa9, 0x9b, 0x27, 0xd7, 0x40}: "Slp10", efi.GUID{0x76, 0x78, 0x92, 0x8c, 0x71, 0xec, 0xe4, 0x4d, 0xa9, 0x1d, 0x8a, 0xd4, 0x78, 0xca, 0x95, 0x39}: "CpuRas", efi.GUID{0x76, 0x80, 0x2f, 0x94, 0x35, 0x33, 0xf9, 0x4e, 0x93, 0xcc, 0x74, 0xa4, 0x70, 0x26, 0x3d, 0xda}: "SetAutoUmaModeSmm", efi.GUID{0x76, 0x82, 0x4a, 0x8d, 0x94, 0x19, 0x82, 0x4e, 0x98, 0x3a, 0xa7, 0x17, 0x53, 0x61, 0x77, 0x97}: "menu_checked_selected", efi.GUID{0x76, 0x82, 0xd8, 0x4e, 0xdf, 0xd4, 0x03, 0x4d, 0x86, 0x61, 0x29, 0x58, 0x01, 0xb2, 0xda, 0x58}: "FastBootExceptionInfoHob", efi.GUID{0x76, 0x85, 0x9c, 0x82, 0xf7, 0x8c, 0xdb, 0x43, 0x81, 0xe6, 0xd9, 0x55, 0x32, 0x4b, 0xf9, 0x31}: "OememDxeGNVS", efi.GUID{0x76, 0x87, 0xb3, 0x3a, 0xbb, 0x01, 0x17, 0x4a, 0xbc, 0x40, 0x82, 0x9b, 0xff, 0x8f, 0x8d, 0xa5}: "FjLanFlexIo", efi.GUID{0x76, 0x9a, 0x30, 0xf8, 0x8f, 0xa4, 0x8c, 0x44, 0xb7, 0xb3, 0x0d, 0x83, 0x24, 0x33, 0xce, 0x5f}: "EcIoSmm", efi.GUID{0x76, 0x9a, 0xaa, 0x63, 0x5f, 0xd8, 0x38, 0x4a, 0xb8, 0x51, 0xa0, 0x9d, 0x4d, 0xc1, 0xfc, 0x1d}: "EcRegionAccessDxe", efi.GUID{0x76, 0xa9, 0x5e, 0x37, 0xcd, 0x3c, 0x74, 0x4e, 0xa8, 0x45, 0x26, 0xb9, 0xb3, 0x24, 0xb1, 0x3c}: "EfiUxixSystemConfig", efi.GUID{0x76, 0xaf, 0x7c, 0xda, 0x17, 0xcb, 0x80, 0x4d, 0xae, 0x21, 0x2b, 0xd3, 0xae, 0x42, 0x1c, 0x76}: "RuntimeAmiFlashLibCompat", efi.GUID{0x76, 0xb1, 0x3f, 0x0d, 0x69, 0x95, 0x51, 0x4d, 0xa3, 0xef, 0x7d, 0x61, 0xc6, 0x4f, 0xea, 0xba}: "EfiSecurityPkgTokenSpaceGuid", efi.GUID{0x76, 0xb5, 0x7a, 0x90, 0x55, 0xc9, 0x95, 0x4a, 0xae, 0x7e, 0x59, 0x6d, 0x22, 0x56, 0xcc, 0x61}: "OverrideGetVBiosVbt", efi.GUID{0x76, 0xbc, 0xb8, 0xa2, 0x5b, 0xc4, 0xb0, 0x40, 0xa2, 0x3e, 0xd6, 0x82, 0x7c, 0x83, 0x5d, 0x1e}: "TouchPad_Elan", efi.GUID{0x76, 0xc2, 0xf8, 0x9e, 0xe6, 0xb3, 0xd9, 0x4a, 0x8f, 0xe7, 0xc7, 0x4f, 0x71, 0xc4, 0x72, 0x48}: "AAFTblSMI", efi.GUID{0x76, 0xc4, 0x71, 0xa0, 0x8c, 0xf7, 0xc2, 0x41, 0xa1, 0x73, 0xb4, 0x3d, 0x69, 0x9a, 0x2c, 0x80}: "AppleEfiSocShutdown", efi.GUID{0x76, 0xc7, 0x32, 0xea, 0x14, 0x6c, 0xf4, 0x41, 0x80, 0xc6, 0x03, 0x49, 0xe9, 0xe4, 0x8a, 0xf8}: "FvbVariableStorageSmm", efi.GUID{0x76, 0xc7, 0xb5, 0x5c, 0xd5, 0x60, 0xee, 0x45, 0x88, 0x3c, 0x45, 0x27, 0x08, 0xcd, 0x74, 0x3f}: "EfiLoadPeImageProtocolGuid", efi.GUID{0x76, 0xc8, 0x8f, 0xd3, 0x17, 0x0b, 0x95, 0x4d, 0xa7, 0xf8, 0xa0, 0x22, 0xec, 0xa1, 0xca, 0x42}: "MeExtMeasurement", efi.GUID{0x76, 0xcb, 0x59, 0x58, 0xef, 0x6b, 0x8a, 0x46, 0xbe, 0x2d, 0xb3, 0xdd, 0x1a, 0x27, 0xf0, 0x12}: "EfiUsbPolicyProtocolGuid", efi.GUID{0x76, 0xcc, 0x91, 0xe3, 0xf7, 0x41, 0x95, 0x49, 0x81, 0x45, 0xd4, 0x16, 0xd0, 0x3a, 0x2a, 0xd3}: "IntelGraphicsPeiDriver", efi.GUID{0x76, 0xce, 0xbf, 0x75, 0xf4, 0x56, 0xe1, 0x4f, 0xb2, 0x57, 0x8b, 0x07, 0x5e, 0x8f, 0x98, 0xa8}: "OemIp3SMI", efi.GUID{0x76, 0xd1, 0xc1, 0x5f, 0x5f, 0xf4, 0x0b, 0x84, 0x85, 0xfa, 0xe0, 0x41, 0xa1, 0x8b, 0x53, 0x6d}: "HstiIhvProviderDxeBHS", efi.GUID{0x76, 0xd2, 0x60, 0xe1, 0xf9, 0xf2, 0xa2, 0x44, 0x8e, 0xa6, 0x8b, 0xb5, 0xc4, 0xc3, 0x03, 0x07}: "FjThermalDxe", efi.GUID{0x76, 0xd3, 0x5e, 0xab, 0x38, 0xdd, 0x22, 0x4d, 0xae, 0x89, 0xb6, 0x45, 0xa4, 0xa3, 0x23, 0x6e}: "SynQuacerI2cDxe", efi.GUID{0x76, 0xd4, 0xd1, 0x73, 0xc9, 0xa7, 0xfd, 0x4e, 0x8f, 0x8b, 0xd5, 0x32, 0xef, 0x38, 0x17, 0x08}: "EfiPlatformTxtDeviceMemory", efi.GUID{0x76, 0xd5, 0xb1, 0x8a, 0x77, 0x59, 0x89, 0x4a, 0x94, 0x14, 0x09, 0x9d, 0x90, 0xb5, 0x3e, 0x79}: "TpvSmm", efi.GUID{0x76, 0xd7, 0xe7, 0xe0, 0xeb, 0xe7, 0x5f, 0x4e, 0x9a, 0xa8, 0x54, 0xcf, 0x3a, 0xa6, 0x4a, 0x43}: "PeiServicesTablePointerLibKr7", efi.GUID{0x76, 0xd9, 0xa1, 0x9b, 0x24, 0x06, 0xa3, 0x41, 0x86, 0x50, 0x28, 0x16, 0x5e, 0x8d, 0x9a, 0xe8}: "BaseDebugLibNull", efi.GUID{0x76, 0xea, 0x19, 0x26, 0x99, 0x45, 0x78, 0x49, 0x86, 0x49, 0xe7, 0x37, 0x11, 0x70, 0xc2, 0x56}: "OpticalDiskIdm", efi.GUID{0x76, 0xea, 0x5c, 0xfe, 0x72, 0x4f, 0xe8, 0x49, 0x98, 0x6f, 0x2c, 0xd8, 0x99, 0xdf, 0xfe, 0x5d}: "FaultTolerantWriteDxe", efi.GUID{0x76, 0xf1, 0x94, 0xc6, 0x0e, 0x57, 0xc7, 0x48, 0x84, 0x0e, 0x1b, 0x30, 0x92, 0x0c, 0xba, 0x76}: "FjIbvBiosPasswordAbstractionSmmProtocol", efi.GUID{0x76, 0xf9, 0x40, 0x14, 0x32, 0x23, 0xf3, 0x4d, 0xb7, 0x7f, 0x62, 0xf8, 0xc6, 0xc1, 0xef, 0xfa}: "AmdNbioBaseRmbDxe", efi.GUID{0x76, 0xfb, 0xab, 0x92, 0x24, 0xd7, 0x85, 0x45, 0xa5, 0x13, 0xeb, 0x5f, 0xf3, 0xeb, 0x1c, 0x5d}: "AmdCpmSharedBPei", efi.GUID{0x77, 0x02, 0x71, 0x94, 0x96, 0x93, 0xba, 0x45, 0x8a, 0x47, 0x53, 0x4a, 0x5b, 0x46, 0xf3, 0x91}: "ClearPassword", efi.GUID{0x77, 0x0b, 0x1a, 0x05, 0x66, 0xc0, 0x10, 0x46, 0x99, 0x04, 0xbf, 0x25, 0xc2, 0x96, 0xd6, 0xe6}: "LenovoEn25Qh32FlashPartDxe", efi.GUID{0x77, 0x0b, 0xf7, 0x73, 0x3b, 0x94, 0x90, 0x40, 0x99, 0xe8, 0x4f, 0x8e, 0x4d, 0x82, 0x4a, 0x43}: "wifi_none", efi.GUID{0x77, 0x0d, 0xb5, 0x8c, 0x24, 0x45, 0x78, 0x4f, 0xa9, 0xad, 0x62, 0x8d, 0xf3, 0x11, 0x20, 0x3e}: "FjCypressConfigDriver", efi.GUID{0x77, 0x1c, 0xed, 0xac, 0xa5, 0x4e, 0x10, 0x47, 0x94, 0x12, 0xee, 0xd3, 0x13, 0x5f, 0x9c, 0x7d}: "SaveTraceHubConfig", efi.GUID{0x77, 0x1d, 0x54, 0xcd, 0x99, 0x66, 0x36, 0x4b, 0xa3, 0x1e, 0x1a, 0xa4, 0xc5, 0xd5, 0xb9, 0x46}: "AmiStatusCodeCpuBistData", efi.GUID{0x77, 0x21, 0x04, 0xf5, 0x29, 0x1d, 0xc5, 0x45, 0xba, 0x4d, 0x4d, 0x0e, 0xb2, 0xe8, 0x85, 0x75}: "IT8728SioAcBack", efi.GUID{0x77, 0x23, 0xd6, 0xb8, 0x70, 0x79, 0xe1, 0x4c, 0x87, 0xf4, 0x9d, 0xde, 0x56, 0xae, 0x89, 0x82}: "BiosGuardVerifyRomImage", efi.GUID{0x77, 0x28, 0xdc, 0x45, 0xf1, 0x0d, 0xd4, 0x4b, 0x81, 0x0f, 0x0c, 0x75, 0x11, 0x18, 0x19, 0xcc}: "EcDxeRestorePei", efi.GUID{0x77, 0x2b, 0xfd, 0x6a, 0xc1, 0x98, 0xcd, 0x4a, 0xa6, 0xf9, 0x8a, 0x94, 0x39, 0xde, 0x0f, 0xb1}: "EfiSmmStatusCodeProtocolGuid", efi.GUID{0x77, 0x2e, 0x15, 0x49, 0xda, 0x1a, 0x64, 0x47, 0xb7, 0xa2, 0x7a, 0xfe, 0xfe, 0xd9, 0x5e, 0x8b}: "EfiDebugImageInfoTableGuid", efi.GUID{0x77, 0x2f, 0x9d, 0xbb, 0xfd, 0xe1, 0x51, 0x44, 0xa9, 0x46, 0x6e, 0x86, 0x8d, 0x21, 0x6e, 0x4d}: "PlatformNotifyDispatchPei", efi.GUID{0x77, 0x33, 0xc1, 0xa7, 0x27, 0xcd, 0xe7, 0x48, 0xa4, 0x88, 0xf3, 0x8e, 0x3a, 0x51, 0xd1, 0x1d}: "SDGifDecoder", efi.GUID{0x77, 0x38, 0x36, 0x42, 0x13, 0x55, 0x19, 0x40, 0xbd, 0xfe, 0xcc, 0x07, 0x5b, 0x64, 0x67, 0x11}: "GnbSocRenoirDxe", efi.GUID{0x77, 0x38, 0x36, 0x42, 0x13, 0x55, 0x19, 0x40, 0xbd, 0xfe, 0xcc, 0x07, 0x5b, 0x64, 0x67, 0xfd}: "GnbSocRavenDxe", efi.GUID{0x77, 0x3f, 0x29, 0x31, 0xbc, 0x96, 0x80, 0x47, 0x8f, 0xcb, 0x1e, 0xd1, 0xf9, 0xe4, 0x25, 0xe3}: "UEFIH19SmmEnableCrashDump", efi.GUID{0x77, 0x43, 0x80, 0x08, 0x7a, 0xaf, 0x96, 0x44, 0x8a, 0x7b, 0x17, 0x59, 0x00, 0xe9, 0xab, 0x46}: "EdkIIRedfishCredentialProtocol", efi.GUID{0x77, 0x4a, 0xec, 0xdc, 0xf7, 0x8c, 0xa0, 0x4e, 0xad, 0xf3, 0x63, 0x36, 0x5b, 0x42, 0xc5, 0x39}: "BluetoothHidDxe", efi.GUID{0x77, 0x5b, 0x71, 0x52, 0xa5, 0x04, 0x7a, 0x48, 0xb9, 0x80, 0xcd, 0xc3, 0x71, 0xb5, 0xbe, 0xc8}: "AsusPostErrPei", efi.GUID{0x77, 0x66, 0xd8, 0xcb, 0x2f, 0x36, 0x04, 0x4c, 0x94, 0x59, 0xa7, 0x41, 0x32, 0x6e, 0x05, 0xcf}: "SeCUmaPpiGuid", efi.GUID{0x77, 0x68, 0xb8, 0xb0, 0x21, 0xc9, 0x8d, 0x4d, 0x99, 0x57, 0xb7, 0x3d, 0x6b, 0xa2, 0x0b, 0xad}: "EcCapsuleDXE", efi.GUID{0x77, 0x6f, 0xae, 0xfd, 0x19, 0x87, 0xe3, 0x49, 0x95, 0x26, 0xd6, 0x81, 0xe5, 0x25, 0x11, 0x87}: "AmtPetInitDxe", efi.GUID{0x77, 0x70, 0xd6, 0x2f, 0xf5, 0x63, 0x43, 0x4b, 0xb1, 0x80, 0x19, 0x74, 0xe5, 0xc7, 0x0b, 0xeb}: "MTKSUPP", efi.GUID{0x77, 0x75, 0xae, 0x1c, 0x62, 0xd6, 0x27, 0x47, 0xba, 0xec, 0x77, 0x76, 0x31, 0xd3, 0xa9, 0x58}: "SystemVspCmosPei", efi.GUID{0x77, 0x8b, 0x1d, 0x82, 0x6d, 0x24, 0x96, 0x4e, 0x8e, 0x10, 0x34, 0x67, 0xd5, 0x6a, 0xb1, 0xba}: "SetupAdvanced", efi.GUID{0x77, 0x8b, 0x1d, 0x82, 0x6d, 0x24, 0x96, 0x4e, 0x8e, 0x10, 0x34, 0x67, 0xd5, 0x6a, 0xb1, 0xbb}: "SetupMain", efi.GUID{0x77, 0x8b, 0x24, 0xce, 0x79, 0x11, 0xc6, 0x4b, 0xb3, 0x24, 0x9d, 0x2e, 0xdc, 0x4b, 0x97, 0x6e}: "AhciControllerPei", efi.GUID{0x77, 0x8b, 0xc9, 0xa0, 0xa5, 0xcb, 0xb8, 0x4b, 0x99, 0x3b, 0x4a, 0xf6, 0xce, 0x33, 0xec, 0xe4}: "Tcg2Pei", efi.GUID{0x77, 0x9a, 0x5f, 0x9c, 0x16, 0xdb, 0x74, 0x41, 0x8e, 0x30, 0xaa, 0x0b, 0xe1, 0x9b, 0xc1, 0xfe}: "H19EmmcSecureErase", efi.GUID{0x77, 0x9e, 0x7b, 0x94, 0x31, 0x92, 0x9c, 0x44, 0xbe, 0xd5, 0xfd, 0x40, 0x51, 0xbd, 0x4e, 0x39}: "AmdSocAm4CznDxe", efi.GUID{0x77, 0xa4, 0xe9, 0x1b, 0xe6, 0x92, 0xa4, 0x4b, 0x94, 0x96, 0xc9, 0xde, 0x8e, 0x15, 0x25, 0x34}: "SbSocStarshipSp3Dxe", efi.GUID{0x77, 0xac, 0xf2, 0xb9, 0xc7, 0x54, 0x75, 0x40, 0xb4, 0x2e, 0xc3, 0x63, 0x25, 0xa9, 0x46, 0x8d}: "LenovoVerifiedBootPei", efi.GUID{0x77, 0xad, 0xec, 0xbc, 0x99, 0x62, 0x5d, 0x41, 0xae, 0x48, 0x73, 0x3c, 0x45, 0x47, 0x68, 0x91}: "DxeWifiManager", efi.GUID{0x77, 0xb6, 0x1b, 0x2e, 0x67, 0xb1, 0x39, 0x4e, 0x9b, 0xb6, 0x2f, 0x91, 0x46, 0x7a, 0xc4, 0xcd}: "PciDxeInit", efi.GUID{0x77, 0xbd, 0x39, 0xf1, 0xf7, 0x7f, 0xd6, 0x49, 0x90, 0x86, 0xd5, 0x0a, 0xb2, 0x6f, 0x6d, 0xd7}: "EfiSvSmmProtocol", efi.GUID{0x77, 0xbe, 0x44, 0x5d, 0x69, 0x56, 0xd0, 0x41, 0xb6, 0x85, 0x1b, 0xf3, 0xf8, 0x3e, 0xfb, 0x98}: "DellPasswordUi", efi.GUID{0x77, 0xe0, 0x89, 0x05, 0xc8, 0x93, 0x0e, 0x47, 0x9b, 0x90, 0x95, 0x8b, 0x4e, 0x2f, 0xe6, 0x86}: "DevUpdateProgress", efi.GUID{0x77, 0xea, 0x31, 0xe3, 0x96, 0xe1, 0x90, 0x45, 0x9f, 0x35, 0x87, 0xcf, 0x02, 0x1b, 0xe3, 0x37}: "FjBiosReadyGpio", efi.GUID{0x77, 0xf2, 0xec, 0xf7, 0x66, 0xcd, 0xe8, 0x4d, 0xa4, 0x25, 0x1d, 0x9f, 0x89, 0x94, 0x92, 0xa7}: "AsusFtmDxe", efi.GUID{0x77, 0xf3, 0x59, 0x40, 0xd5, 0x27, 0x39, 0x41, 0xb7, 0xe7, 0xf9, 0x95, 0x91, 0xf7, 0xc4, 0x6d}: "FchSmmDispatcher", efi.GUID{0x77, 0xf7, 0x3d, 0x64, 0x12, 0xf3, 0xed, 0x42, 0x81, 0xcc, 0x1b, 0x1f, 0x57, 0xe1, 0x8a, 0xd6}: "PchSmbusArpDisabled", efi.GUID{0x78, 0x03, 0x07, 0x53, 0x9a, 0x11, 0x36, 0x48, 0x77, 0xbd, 0x89, 0x3c, 0x82, 0x4a, 0xce, 0xb2}: "FchPromontoryXhciPei", efi.GUID{0x78, 0x03, 0x07, 0x53, 0x9a, 0x11, 0x36, 0x48, 0x82, 0xbd, 0x89, 0x3c, 0x82, 0x4a, 0xce, 0xb2}: "FchPei", efi.GUID{0x78, 0x08, 0xc5, 0x0f, 0x33, 0x16, 0x2a, 0x43, 0xbd, 0xe4, 0x84, 0x13, 0x57, 0xfc, 0x15, 0xe9}: "AmiScsiPassThruInitProtocolGuid", efi.GUID{0x78, 0x13, 0x6c, 0x9a, 0x2c, 0x80, 0x69, 0x49, 0x8c, 0x7b, 0x85, 0xdf, 0xfb, 0xe8, 0x2d, 0xf4}: "IntelPcieUndiDriver", efi.GUID{0x78, 0x1b, 0x33, 0x62, 0xd0, 0xd8, 0x8c, 0x4c, 0x8c, 0xcb, 0xd2, 0x7d, 0xfe, 0x32, 0xdb, 0x9b}: "EfiLegacySpiSmmControllerProtocolGuid", efi.GUID{0x78, 0x1d, 0x3b, 0x2f, 0x0e, 0x06, 0x5b, 0x4d, 0xac, 0x7e, 0x1e, 0x1d, 0xb2, 0x12, 0x85, 0x59}: "OemDevInit", efi.GUID{0x78, 0x1e, 0xf9, 0x97, 0x12, 0xea, 0xa6, 0x4e, 0xb7, 0xb3, 0x7b, 0x06, 0x78, 0xc2, 0x86, 0x73}: "AmiPeiPciTableInitPpiGuid", efi.GUID{0x78, 0x28, 0x8f, 0xde, 0xd5, 0x36, 0x8e, 0x49, 0xba, 0x59, 0x16, 0x8c, 0x26, 0x47, 0xb3, 0x35}: "PeiIffsTransitionStartPpi", efi.GUID{0x78, 0x2c, 0xf3, 0xaa, 0x7b, 0x94, 0x9a, 0x43, 0xa1, 0x80, 0x2e, 0x14, 0x4e, 0xc3, 0x77, 0x92}: "EfiAuthenticatedVariableGuid", efi.GUID{0x78, 0x2e, 0x32, 0x42, 0x59, 0x46, 0x04, 0x47, 0xa0, 0x5e, 0xf2, 0xd7, 0x5d, 0x37, 0x26, 0xac}: "GpioPolicyPei", efi.GUID{0x78, 0x2e, 0xbf, 0x28, 0x2d, 0xad, 0x16, 0x46, 0xab, 0xad, 0x76, 0x44, 0xcd, 0x7e, 0x47, 0xc8}: "FvBb1Pei", efi.GUID{0x78, 0x2f, 0x5d, 0x93, 0x1f, 0x3a, 0xe6, 0x4d, 0xb2, 0x8d, 0x12, 0x3a, 0x40, 0xdd, 0x2d, 0xec}: "SmmGenericElog", efi.GUID{0x78, 0x33, 0x85, 0xec, 0x8d, 0x00, 0x10, 0x4e, 0xbd, 0xdf, 0xe1, 0x3f, 0xec, 0x49, 0x1b, 0x23}: "PowerReportSmm", efi.GUID{0x78, 0x33, 0x95, 0xec, 0x8d, 0x00, 0x10, 0x4e, 0xbd, 0xdf, 0xe1, 0x3f, 0xec, 0x49, 0x1b, 0x23}: "LGPowerReportSmm", efi.GUID{0x78, 0x33, 0x95, 0xec, 0x8d, 0x00, 0x10, 0x4e, 0xbd, 0xdf, 0xe1, 0x3f, 0xec, 0x49, 0x2c, 0x54}: "LGEcCommunicationSmm", efi.GUID{0x78, 0x33, 0xdb, 0xa6, 0xd7, 0xcf, 0xfd, 0x4b, 0xa1, 0xc4, 0x27, 0x09, 0xfe, 0xc5, 0x2f, 0x8b}: "AmiTseOemPortingVar10", efi.GUID{0x78, 0x41, 0x6f, 0x8f, 0x5f, 0xe2, 0x2c, 0x44, 0xb5, 0x4f, 0xd8, 0x05, 0x20, 0x5e, 0xa3, 0xff}: "DellXhciSmm", efi.GUID{0x78, 0x44, 0x0f, 0xfd, 0xfd, 0x0e, 0x1d, 0x46, 0xba, 0x2d, 0xe5, 0x8c, 0x45, 0xfd, 0x5f, 0x5e}: "EfiGetPcdInfoProtocolGuid", efi.GUID{0x78, 0x47, 0x40, 0xe1, 0x48, 0xb8, 0xff, 0x4f, 0x83, 0x51, 0x9f, 0x78, 0x79, 0x14, 0x17, 0xd9}: "TurboSmm", efi.GUID{0x78, 0x56, 0x34, 0x12, 0x0a, 0x93, 0x95, 0x4a, 0xab, 0x04, 0x2e, 0x6c, 0xfd, 0xff, 0x66, 0x31}: "TcgPeiAftermem", efi.GUID{0x78, 0x56, 0x34, 0x12, 0xbb, 0xaa, 0xdd, 0xcc, 0xee, 0xff, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66}: "My", efi.GUID{0x78, 0x59, 0xda, 0x1d, 0x9a, 0xb2, 0xa7, 0x4e, 0xae, 0xfb, 0x8b, 0x0b, 0xaa, 0x98, 0x2e, 0x22}: "ExReportStatusCodeRouterPei", efi.GUID{0x78, 0x5a, 0x7e, 0x6f, 0x5e, 0x6f, 0xf4, 0x42, 0x9c, 0x30, 0x8e, 0x14, 0x41, 0x82, 0xc5, 0xd6}: "ProjectHookPei", efi.GUID{0x78, 0x5a, 0x7e, 0x6f, 0x5e, 0x6f, 0xf4, 0x42, 0x9c, 0x30, 0x8e, 0x14, 0x41, 0x82, 0xd5, 0xf9}: "CompalCommonHookPei", efi.GUID{0x78, 0x62, 0xcf, 0xa8, 0x58, 0x87, 0x8d, 0x45, 0xad, 0xfb, 0x34, 0x71, 0xf5, 0xad, 0x50, 0xb1}: "SystemHddPwdPei", efi.GUID{0x78, 0x64, 0x37, 0x64, 0xea, 0x47, 0xe7, 0x49, 0xae, 0xff, 0xd7, 0x63, 0xf8, 0x47, 0x29, 0xf9}: "dGpuDetect", efi.GUID{0x78, 0x6c, 0xb3, 0xdf, 0x34, 0xe5, 0x05, 0x4e, 0x9d, 0x5d, 0x18, 0x03, 0xf3, 0x6e, 0x88, 0xf2}: "ReportFvRecoveryPei", efi.GUID{0x78, 0x71, 0x28, 0x59, 0xb2, 0x59, 0xca, 0x49, 0xbc, 0x63, 0x53, 0x2b, 0x12, 0xea, 0x2c, 0x53}: "PchSmbusSmm", efi.GUID{0x78, 0x79, 0x51, 0x9b, 0xa1, 0xeb, 0xe7, 0x44, 0xba, 0x65, 0x7c, 0x2c, 0xd0, 0x8b, 0xf8, 0xe9}: "EdkiiPlatformLogoProtocol", efi.GUID{0x78, 0x7e, 0xc9, 0xd6, 0xd7, 0xfc, 0xf5, 0x47, 0xb5, 0x75, 0x6e, 0x19, 0x40, 0x24, 0x6c, 0x7c}: "DellCountryCodeDxeSync", efi.GUID{0x78, 0x7f, 0x8b, 0x1c, 0x99, 0x16, 0xe6, 0x40, 0xaf, 0x33, 0x9b, 0x99, 0x5d, 0x16, 0xb0, 0x43}: "PiSmmCommunicationPei", efi.GUID{0x78, 0x85, 0xa6, 0x7d, 0xe9, 0xc0, 0x42, 0x47, 0x8d, 0xe5, 0xc9, 0x1a, 0xca, 0x88, 0xd5, 0xa7}: "DellBoardPolicySmm", efi.GUID{0x78, 0x8c, 0x81, 0x06, 0x8a, 0x1c, 0x91, 0x45, 0x98, 0x33, 0xdc, 0x0e, 0x4b, 0x95, 0x66, 0xe4}: "TdtAm", efi.GUID{0x78, 0x9b, 0x7f, 0x8d, 0x02, 0xfe, 0xf7, 0x41, 0xb5, 0x15, 0x08, 0x41, 0xc4, 0x29, 0x65, 0x4b}: "WiFiSupplicant", efi.GUID{0x78, 0xa0, 0xf5, 0xc9, 0x2d, 0x1f, 0x86, 0x40, 0xa1, 0xbe, 0x16, 0x38, 0x77, 0x4f, 0xef, 0x44}: "SsdtRtd3ATables", efi.GUID{0x78, 0xa4, 0x87, 0xa4, 0xef, 0x51, 0xaa, 0x48, 0x87, 0x94, 0x7b, 0xee, 0x2a, 0x05, 0x62, 0xf1}: "tftpDynamicCommand", efi.GUID{0x78, 0xaa, 0xd6, 0xae, 0xbf, 0xd5, 0xc5, 0x4b, 0x8c, 0xc5, 0xf9, 0xee, 0x47, 0xcf, 0x92, 0x99}: "CapsuleRuntimeDxe", efi.GUID{0x78, 0xab, 0x51, 0xdd, 0x5d, 0xe5, 0x13, 0x44, 0xaf, 0xae, 0xe5, 0x92, 0xf6, 0xb5, 0x32, 0x1b}: "AmiEventLogsDynamic", efi.GUID{0x78, 0xb2, 0xa1, 0x89, 0xa1, 0xa1, 0xf7, 0x4d, 0xb1, 0x37, 0xde, 0x5a, 0xd7, 0xc4, 0x79, 0x13}: "EfiPchTokenSpaceGuid", efi.GUID{0x78, 0xc2, 0x98, 0x6e, 0x75, 0x4b, 0x0f, 0x4e, 0x81, 0xa8, 0xf3, 0xe1, 0x45, 0x9f, 0x05, 0x24}: "FjCmosAccessSmm", efi.GUID{0x78, 0xcb, 0x6d, 0x2d, 0xe2, 0xca, 0x59, 0x44, 0x92, 0x7c, 0x64, 0xa6, 0xb7, 0xe6, 0x4a, 0x75}: "DellEdiagsSmm", efi.GUID{0x78, 0xe1, 0x43, 0xaf, 0xe9, 0xc2, 0x12, 0x47, 0xa7, 0xcd, 0x08, 0xbf, 0xda, 0xc7, 0x48, 0x2c}: "UfsPciHcDxe", efi.GUID{0x78, 0xe3, 0x2a, 0xbf, 0xe0, 0x01, 0x05, 0x46, 0x9e, 0x3b, 0x2e, 0xe2, 0xfc, 0x73, 0x39, 0xde}: "FmpDxe", efi.GUID{0x78, 0xe5, 0x8c, 0x8c, 0x3d, 0x8a, 0x1c, 0x4f, 0x99, 0x35, 0x89, 0x61, 0x85, 0xc3, 0x2d, 0xd3}: "EfiFirmwareFileSystem2Guid", efi.GUID{0x78, 0xe6, 0x46, 0x60, 0xef, 0x24, 0x05, 0x40, 0xba, 0x39, 0xbd, 0xa1, 0x1f, 0x6d, 0x55, 0x5d}: "AmtInt16_csm", efi.GUID{0x78, 0xec, 0x13, 0xc6, 0xed, 0x63, 0x93, 0x4b, 0xac, 0xd4, 0x54, 0xb3, 0xd4, 0xcc, 0xc2, 0x68}: "NetworkLockerDxe", efi.GUID{0x78, 0xfd, 0x14, 0xef, 0x93, 0x07, 0x2b, 0x4e, 0xac, 0x6d, 0x06, 0x28, 0x47, 0xe0, 0x17, 0x91}: "MfgModeVariableGuid", efi.GUID{0x79, 0x08, 0x08, 0xba, 0xf4, 0x3a, 0x39, 0x46, 0x96, 0x13, 0xd1, 0xfc, 0x8e, 0xd8, 0xa6, 0x69}: "EfiJedecNvDimmSmm", efi.GUID{0x79, 0x11, 0x97, 0xab, 0xcf, 0x52, 0x7a, 0x4d, 0xa9, 0x1e, 0x3b, 0x14, 0xdb, 0x19, 0xbb, 0x74}: "SmartCoverPei", efi.GUID{0x79, 0x15, 0x2e, 0x9e, 0xd3, 0x77, 0x05, 0x49, 0xad, 0x14, 0x44, 0x79, 0xbe, 0xc0, 0x3d, 0xa2}: "IrqBoardInfoRvpM", efi.GUID{0x79, 0x1c, 0x72, 0x15, 0x20, 0x57, 0x38, 0x48, 0xa5, 0x44, 0x05, 0x25, 0x63, 0x70, 0x8e, 0x24}: "AlderLakeSmm", efi.GUID{0x79, 0x1d, 0x73, 0xf4, 0x7e, 0x53, 0x05, 0x45, 0xbd, 0x52, 0xc0, 0x3f, 0x9b, 0x1f, 0x6b, 0x89}: "BaseTimerLibNullTemplate", efi.GUID{0x79, 0x20, 0x8e, 0x15, 0xf3, 0x23, 0x83, 0x4e, 0x8a, 0x35, 0x65, 0x7a, 0x76, 0x40, 0x8c, 0x0a}: "ApobSspPei", efi.GUID{0x79, 0x21, 0x33, 0x71, 0x93, 0xae, 0x9a, 0x46, 0x89, 0xc5, 0x9e, 0xff, 0x7a, 0x78, 0x0d, 0x51}: "AsusWifiPublish", efi.GUID{0x79, 0x26, 0x13, 0x1c, 0x95, 0xbb, 0x9c, 0x47, 0x8a, 0x82, 0x6d, 0xe7, 0x2a, 0x52, 0xd6, 0xfd}: "AaeonPowerButtonSmi", efi.GUID{0x79, 0x29, 0xeb, 0x30, 0xf7, 0xb0, 0x60, 0x4d, 0xb2, 0xdc, 0x1a, 0x2c, 0x96, 0xce, 0xb1, 0xf4}: "PeiPlatformMemoryRangePpi", efi.GUID{0x79, 0x2d, 0x4b, 0xda, 0xe1, 0xfe, 0xc6, 0x42, 0x9b, 0x56, 0x92, 0x36, 0x33, 0x39, 0x8a, 0xeb}: "BiosCapsule", efi.GUID{0x79, 0x30, 0x9b, 0x72, 0x13, 0x89, 0x12, 0x4e, 0xaf, 0xef, 0x2c, 0xa2, 0x64, 0x79, 0x94, 0x69}: "AmdAcpiDxe", efi.GUID{0x79, 0x3f, 0x86, 0x13, 0x4b, 0xd9, 0x05, 0x42, 0xbb, 0x0f, 0xe4, 0xe0, 0x6a, 0xaa, 0x5a, 0x4e}: "DelayUefiRaidOprom", efi.GUID{0x79, 0x45, 0x81, 0x14, 0x05, 0xd9, 0x3b, 0x4a, 0x88, 0x74, 0x41, 0x0b, 0x51, 0x86, 0x74, 0xe7}: "RstNvmExpressSmm", efi.GUID{0x79, 0x45, 0xe1, 0x1b, 0x05, 0xd8, 0x3b, 0x4c, 0x88, 0x74, 0x41, 0x0b, 0x81, 0x86, 0x74, 0xe9}: "RealtekPxe", efi.GUID{0x79, 0x4a, 0x4b, 0x25, 0x2c, 0x77, 0xcc, 0x45, 0x05, 0xc9, 0x17, 0xf8, 0x4c, 0x2e, 0xa1, 0x97}: "HpAmdXhciDxe", efi.GUID{0x79, 0x50, 0x52, 0x07, 0x16, 0x26, 0x99, 0x45, 0x93, 0xfa, 0x5e, 0xe9, 0xe3, 0xf0, 0x29, 0x5c}: "CsmPolicy", efi.GUID{0x79, 0x52, 0x10, 0x05, 0xe6, 0xdc, 0x27, 0x4d, 0xba, 0x3c, 0x0c, 0x6f, 0x3e, 0x8d, 0xe6, 0x6d}: "SetBoardIdVar", efi.GUID{0x79, 0x52, 0xe6, 0xaa, 0x61, 0x07, 0xd1, 0x41, 0xba, 0x13, 0x4a, 0x3c, 0x13, 0x83, 0x60, 0x3f}: "Ozmosis", efi.GUID{0x79, 0x55, 0xef, 0x0a, 0x00, 0x37, 0xd2, 0x41, 0xa5, 0x3e, 0xda, 0xbd, 0x55, 0xe2, 0x24, 0x32}: "DellUsbBusSmm", efi.GUID{0x79, 0x56, 0xbf, 0x03, 0x49, 0x57, 0xc5, 0x4b, 0xa5, 0x3f, 0x47, 0x47, 0x1d, 0xa7, 0x67, 0xc8}: "IsscSmm", efi.GUID{0x79, 0x58, 0xe2, 0x1d, 0x2a, 0x6e, 0x72, 0x4d, 0xa7, 0x68, 0x28, 0x8c, 0xcb, 0x9f, 0xa7, 0x19}: "EfiMemoryConfigDataHob", efi.GUID{0x79, 0x59, 0x32, 0x8e, 0xe1, 0x3f, 0x27, 0x49, 0xaa, 0xe2, 0x8f, 0x5c, 0x4b, 0xd2, 0xaf, 0x0d}: "SdMmcPciHcDxe", efi.GUID{0x79, 0x5a, 0x05, 0x45, 0x85, 0xb3, 0x05, 0x47, 0xa3, 0xac, 0x11, 0xce, 0x99, 0xa1, 0xcb, 0x47}: "StaticSkuDataDxeNeonCityEPRP", efi.GUID{0x79, 0x5d, 0x44, 0xbd, 0xad, 0xb7, 0x04, 0x4f, 0x9a, 0xd8, 0x29, 0xbd, 0x20, 0x40, 0xeb, 0x3c}: "EfiLockBoxProtocolGuid", efi.GUID{0x79, 0x61, 0xf8, 0x30, 0xeb, 0xa9, 0x56, 0x44, 0x9d, 0x3a, 0x15, 0x7d, 0xbb, 0x62, 0xbe, 0x3b}: "Int15CallbackSmm", efi.GUID{0x79, 0x66, 0x0f, 0x23, 0x03, 0xf7, 0xc2, 0x4d, 0xb2, 0xb7, 0x41, 0xc6, 0x70, 0xbc, 0xc0, 0xd1}: "BiosInfoRecovery", efi.GUID{0x79, 0x6f, 0xfc, 0xad, 0x9f, 0xaa, 0x2b, 0x46, 0xab, 0xdb, 0xc4, 0x8e, 0x0f, 0x63, 0x56, 0xbf}: "AmdFabricRnDxe", efi.GUID{0x79, 0x76, 0xeb, 0x09, 0x52, 0x21, 0xf3, 0x47, 0xb8, 0x32, 0xee, 0x9b, 0x94, 0x7b, 0x29, 0xf5}: "SmartUsbProtection", efi.GUID{0x79, 0x79, 0xbe, 0x76, 0x01, 0x47, 0xef, 0x48, 0x9e, 0x6c, 0x44, 0xb9, 0xef, 0x03, 0x09, 0x23}: "GpioV2ControllerPei", efi.GUID{0x79, 0x7a, 0xb8, 0xf7, 0x40, 0xa6, 0xa5, 0x4a, 0x8c, 0x1e, 0x45, 0x3f, 0xb2, 0x6e, 0xf3, 0x76}: "EfiPeiPlatformTypeBuchananPassPpi", efi.GUID{0x79, 0x91, 0x08, 0xfc, 0x84, 0xd5, 0xcd, 0x4e, 0xa8, 0x86, 0x96, 0xa1, 0x85, 0x62, 0xd9, 0x07}: "HpThermalDiagsDxe", efi.GUID{0x79, 0x9b, 0x18, 0xff, 0x58, 0xf5, 0x6a, 0x4b, 0x8a, 0x78, 0x6f, 0xcd, 0x2b, 0x4b, 0x0e, 0x3c}: "FrontPageDxe", efi.GUID{0x79, 0xa8, 0x49, 0x9f, 0x71, 0x3d, 0xb3, 0x42, 0xa0, 0xad, 0xdd, 0xb1, 0xf3, 0x30, 0x10, 0xa3}: "EfiSpiAcpiProtocolGuid", efi.GUID{0x79, 0xaf, 0xe1, 0x78, 0xc1, 0xa9, 0xf6, 0x44, 0xad, 0x49, 0x86, 0x22, 0xc1, 0x77, 0x6f, 0xae}: "OemDxeDetectBlueTooth", efi.GUID{0x79, 0xb5, 0x4d, 0xe9, 0x1b, 0x06, 0x7b, 0x43, 0x83, 0xc2, 0x65, 0xc0, 0xae, 0x7c, 0x14, 0xe2}: "LenovoAt24Rf08EepromDxe", efi.GUID{0x79, 0xbe, 0xe9, 0x57, 0x6e, 0xfa, 0x83, 0x4a, 0xa3, 0xea, 0xab, 0x2b, 0x66, 0x78, 0xe4, 0xca}: "ACPISxSMICore", efi.GUID{0x79, 0xc7, 0xcd, 0x58, 0x8c, 0xdc, 0x1b, 0x49, 0xba, 0xc3, 0xf8, 0x6e, 0x06, 0xd1, 0x86, 0x5f}: "DellGpeOrom", efi.GUID{0x79, 0xcd, 0x95, 0x30, 0x45, 0x5b, 0xdf, 0x49, 0xb2, 0x7f, 0xef, 0x43, 0x84, 0x3b, 0x84, 0x80}: "IrqBoardInfoSct", efi.GUID{0x79, 0xd0, 0xf7, 0x71, 0x9f, 0x09, 0x15, 0x4c, 0x8a, 0x84, 0xc4, 0x4a, 0x36, 0x29, 0xd1, 0x81}: "SbSocBrhPei", efi.GUID{0x79, 0xe4, 0x87, 0xd6, 0x37, 0xdb, 0xce, 0x4b, 0x86, 0x4a, 0x02, 0xee, 0xf6, 0x81, 0x9d, 0xf1}: "SystemFormBrowserSimpleTextViewDxe", efi.GUID{0x79, 0xe4, 0xba, 0x97, 0x73, 0xc4, 0x24, 0x44, 0x90, 0x40, 0x69, 0xf5, 0xbf, 0x9f, 0x74, 0xf8}: "OcrEntryCall", efi.GUID{0x79, 0xe9, 0xe8, 0xa9, 0x94, 0x4b, 0x50, 0x41, 0xb9, 0x49, 0x51, 0xd4, 0x5f, 0xe5, 0xea, 0x18}: "LEMDisableSecSMIFlashProtocol", efi.GUID{0x79, 0xeb, 0x20, 0xec, 0x1a, 0x6c, 0x64, 0x46, 0x9a, 0x0d, 0xd2, 0xe4, 0xcc, 0x16, 0xd6, 0x64}: "EfiTcp6ServiceBindingProtocolGuid", efi.GUID{0x79, 0xf9, 0xb7, 0x10, 0x1c, 0x74, 0x7e, 0x46, 0x87, 0x64, 0x8d, 0xd5, 0x0d, 0x8a, 0xd6, 0xc5}: "SdioInt13", efi.GUID{0x7a, 0x09, 0x97, 0x1e, 0x84, 0xc8, 0xe4, 0x4b, 0xa5, 0x30, 0x29, 0x9f, 0x85, 0xbd, 0xc8, 0x94}: "MediaSanitize", efi.GUID{0x7a, 0x09, 0xce, 0x79, 0xaa, 0x91, 0xff, 0x41, 0xb3, 0xa8, 0x53, 0x45, 0x59, 0xb3, 0x0d, 0xb1}: "PasswordHob", efi.GUID{0x7a, 0x1d, 0xaf, 0xb5, 0xcf, 0xb8, 0xb3, 0x4e, 0x89, 0x25, 0xa8, 0x20, 0xe1, 0x6b, 0x68, 0x7d}: "BootScriptDataBootTimeGuid", efi.GUID{0x7a, 0x20, 0xfa, 0xcf, 0xfd, 0xb1, 0x65, 0x42, 0xb0, 0xa1, 0x9a, 0xcd, 0x47, 0x75, 0x45, 0xc4}: "AcerGnvsDxe", efi.GUID{0x7a, 0x21, 0xf9, 0xe8, 0xad, 0x73, 0x23, 0x49, 0xff, 0xff, 0xff, 0xff, 0x1d, 0x27, 0x0e, 0x05}: "XnotePlatformPolicySmm", efi.GUID{0x7a, 0x24, 0x07, 0x55, 0x6b, 0x84, 0x22, 0x4f, 0xb5, 0x5f, 0x72, 0xb4, 0x04, 0x94, 0x35, 0xef}: "AmtLockKbd", efi.GUID{0x7a, 0x2d, 0xd0, 0x75, 0x2d, 0x5a, 0x7a, 0x49, 0x9a, 0x4f, 0xd7, 0xce, 0x38, 0xea, 0x13, 0x89}: "SDPreOSVariable", efi.GUID{0x7a, 0x2e, 0x4a, 0x12, 0x49, 0x19, 0x3e, 0x48, 0x89, 0x9f, 0x60, 0x32, 0x90, 0x4c, 0xa0, 0xa7}: "SystemSmmAhciAspiLegacyRt", efi.GUID{0x7a, 0x33, 0x38, 0x23, 0xb0, 0x47, 0x41, 0x4c, 0x9c, 0xa7, 0x01, 0x60, 0xfb, 0x94, 0xdf, 0xf4}: "PlatformFlashDxe", efi.GUID{0x7a, 0x35, 0x72, 0x63, 0xd7, 0x06, 0xef, 0x43, 0xb5, 0x5c, 0x19, 0x64, 0xf3, 0xdd, 0x69, 0x16}: "DxeIpmiInitialize", efi.GUID{0x7a, 0x37, 0x5d, 0x74, 0x88, 0xb9, 0xb2, 0x47, 0xb1, 0x8f, 0xbb, 0xc8, 0x0d, 0xc5, 0x66, 0x98}: "EfiVirtualMemoryAccessProtocol", efi.GUID{0x7a, 0x3e, 0x6c, 0xbd, 0xa5, 0xec, 0x3a, 0x4c, 0xbd, 0x11, 0xc7, 0x05, 0xf9, 0xac, 0xef, 0x16}: "FileExplorer", efi.GUID{0x7a, 0x41, 0xe4, 0xee, 0x4e, 0xd3, 0xb1, 0x40, 0x94, 0x83, 0x1b, 0xf6, 0x2b, 0xd1, 0x13, 0xcc}: "SystemFirmwareDeviceDxeSmm", efi.GUID{0x7a, 0x45, 0xe9, 0x73, 0xa1, 0xce, 0x17, 0x49, 0x9a, 0x9c, 0x9f, 0x1f, 0x0f, 0x0f, 0xd3, 0x22}: "DebugPortDxe", efi.GUID{0x7a, 0x47, 0x82, 0x79, 0x85, 0xb2, 0xe8, 0x42, 0xb2, 0x2d, 0xa3, 0x0e, 0x7e, 0x3c, 0xfe, 0x26}: "Dispatcher", efi.GUID{0x7a, 0x47, 0xaf, 0x03, 0x36, 0x83, 0x42, 0x01, 0x8a, 0x65, 0xb4, 0xbd, 0x93, 0xb1, 0xa1, 0xa9}: "FirmwareExtension", efi.GUID{0x7a, 0x48, 0x1c, 0xda, 0x75, 0xc3, 0x18, 0x4d, 0xbd, 0x71, 0xe0, 0xfa, 0x9f, 0x89, 0x39, 0x98}: "EpsaReconnectUsbDriver", efi.GUID{0x7a, 0x48, 0x1f, 0xad, 0x56, 0xba, 0xdc, 0x48, 0x8e, 0xaa, 0xe8, 0xfb, 0xea, 0x74, 0xb8, 0xf2}: "ASM104X_SMI", efi.GUID{0x7a, 0x54, 0x7b, 0x03, 0xe8, 0x97, 0xf2, 0x4f, 0x8c, 0xd1, 0xdc, 0xb7, 0xa1, 0xb4, 0x91, 0x5a}: "SetupConfigUpdateDxeArcherCityModular", efi.GUID{0x7a, 0x54, 0xb6, 0xd6, 0x0e, 0x75, 0x3d, 0x4a, 0xb6, 0x1b, 0x87, 0x03, 0xd8, 0xfa, 0x32, 0x87}: "DellAuxMac", efi.GUID{0x7a, 0x55, 0x72, 0x36, 0xa7, 0x06, 0xef, 0x43, 0x60, 0xc3, 0x19, 0x64, 0xf3, 0xdd, 0x11, 0x98}: "SmcOutBand", efi.GUID{0x7a, 0x5c, 0x8a, 0x01, 0xeb, 0x12, 0x9d, 0x42, 0x9d, 0xef, 0x6f, 0xcc, 0x41, 0x0b, 0x04, 0xe8}: "IioCfgUpdateDxeLightningRidgeEXECB4", efi.GUID{0x7a, 0x63, 0x13, 0x7e, 0xf8, 0xc3, 0xd1, 0x43, 0xb0, 0x51, 0xed, 0x19, 0xd7, 0x08, 0xec, 0x7a}: "PeiIdeRecoveryNativeModePpi", efi.GUID{0x7a, 0x67, 0x56, 0x60, 0x88, 0x12, 0x7d, 0x47, 0xb7, 0xc1, 0x07, 0x08, 0xcd, 0x98, 0xa7, 0x1e}: "AsusCheckDmi", efi.GUID{0x7a, 0x68, 0xc0, 0xa7, 0xb9, 0xe8, 0xec, 0x42, 0xb8, 0xa5, 0xa9, 0x50, 0xdf, 0x6e, 0xf9, 0x4a}: "AlternativeDefaultMemoryQuota", efi.GUID{0x7a, 0x6c, 0x1b, 0xd6, 0x3a, 0x65, 0xa9, 0x45, 0x8a, 0xf3, 0x63, 0xa8, 0xa5, 0x07, 0x66, 0x39}: "DellHddSmart", efi.GUID{0x7a, 0x6f, 0xa3, 0x2b, 0xe7, 0xf5, 0x35, 0x4d, 0x91, 0x49, 0x60, 0x89, 0x4c, 0xb3, 0x74, 0x31}: "Nfa765Launcher", efi.GUID{0x7a, 0x75, 0xba, 0xd0, 0x67, 0x6b, 0xa3, 0x4b, 0xb1, 0x38, 0x7a, 0x15, 0xdd, 0x8c, 0xb9, 0x4f}: "FjGabiSystemDataHandlerSmm", efi.GUID{0x7a, 0x78, 0x74, 0xbc, 0x99, 0xbe, 0x2f, 0x4a, 0x8c, 0x9c, 0xc6, 0xd7, 0xe5, 0xc7, 0x7a, 0xd3}: "BoardUpdatePolicySmm", efi.GUID{0x7a, 0x7a, 0x49, 0x6d, 0xda, 0xd7, 0x7c, 0x46, 0xb4, 0x85, 0xb7, 0xfb, 0x34, 0x93, 0xc4, 0x1f}: "DxePciSegementLibEsal", efi.GUID{0x7a, 0x7d, 0x96, 0x4f, 0x5f, 0xd5, 0x53, 0x4b, 0xbd, 0xd9, 0x26, 0x9a, 0x80, 0x78, 0x5d, 0x16}: "AdlSemaMiscellaneousDxe", efi.GUID{0x7a, 0x84, 0xfd, 0x26, 0x93, 0xdc, 0x93, 0x4d, 0x91, 0x7c, 0x60, 0x41, 0xa3, 0x85, 0x6c, 0xbc}: "FchHuangshanDxe", efi.GUID{0x7a, 0x86, 0x39, 0x56, 0x8e, 0x8c, 0x8d, 0x40, 0xac, 0x2f, 0x4b, 0x61, 0xbd, 0xc0, 0xbb, 0xbb}: "EfiBluetoothAttributeServiceBindingProtocolGuid", efi.GUID{0x7a, 0x88, 0x51, 0xba, 0xb9, 0xbe, 0xda, 0x45, 0x8e, 0x37, 0x98, 0xa6, 0xb4, 0x6e, 0x7c, 0x58}: "IeHeciInit", efi.GUID{0x7a, 0x95, 0x2a, 0x07, 0x7a, 0x2a, 0xb1, 0x4d, 0xa3, 0x5d, 0x21, 0xc9, 0x79, 0x5a, 0xcd, 0x6e}: "SetupUtilitySilicon1", efi.GUID{0x7a, 0x96, 0xce, 0x02, 0x7e, 0xdd, 0xfc, 0x4f, 0x9e, 0xe7, 0x81, 0x0c, 0xf0, 0x47, 0x08, 0x80}: "EfiEndOfDxeEventGroupGuid", efi.GUID{0x7a, 0x97, 0x9c, 0xe8, 0x47, 0x45, 0xbb, 0x4f, 0x8e, 0x64, 0xe1, 0xbe, 0x3c, 0xe3, 0x9b, 0x34}: "CxlManager", efi.GUID{0x7a, 0x97, 0xd4, 0x5b, 0x0f, 0x58, 0x1a, 0x4f, 0xb3, 0xc2, 0x51, 0x98, 0xe6, 0xdc, 0xbe, 0xea}: "AmiCspGlobalNvsDxe", efi.GUID{0x7a, 0x9d, 0xef, 0xf4, 0xc5, 0x98, 0x1a, 0x4c, 0xb4, 0xd9, 0xd8, 0xd8, 0x72, 0x65, 0xbe, 0x0c}: "PeiSdhcPpiGuid", efi.GUID{0x7a, 0xaa, 0xae, 0xac, 0x39, 0xc0, 0x24, 0x44, 0x88, 0xda, 0xf4, 0x22, 0x12, 0xea, 0x0e, 0x55}: "PchPcieSmm", efi.GUID{0x7a, 0xab, 0xc2, 0xb7, 0x0b, 0x8d, 0x95, 0x4a, 0x89, 0x2c, 0xc9, 0x3f, 0x30, 0xa6, 0x73, 0xc8}: "AsusRecoveryFailedDxe", efi.GUID{0x7a, 0xb1, 0xd7, 0x36, 0x4c, 0x9d, 0x62, 0x4b, 0x8d, 0x3b, 0xd4, 0xb6, 0x57, 0xf7, 0xc1, 0xa6}: "OemInitBrightness", efi.GUID{0x7a, 0xb3, 0x4b, 0xb7, 0xa2, 0xec, 0x79, 0x4f, 0xa5, 0x44, 0x90, 0x56, 0x9a, 0xbe, 0x6b, 0x99}: "LenovoSystemSmmCommunicationSmm", efi.GUID{0x7a, 0xc0, 0x73, 0x54, 0xcb, 0x3d, 0xca, 0x4d, 0xbd, 0x6f, 0x1e, 0x96, 0x89, 0xe7, 0x34, 0x9a}: "EfiFirmwareFileSystem3Guid", efi.GUID{0x7a, 0xc7, 0x7e, 0x0f, 0xe1, 0x1e, 0x0f, 0x40, 0xa9, 0x9d, 0x7c, 0xbd, 0x1f, 0xeb, 0x18, 0x1e}: "PcatPciRootBridge", efi.GUID{0x7a, 0xca, 0x64, 0x28, 0x2c, 0x63, 0x6d, 0x45, 0xa4, 0xfb, 0xb5, 0xb7, 0x18, 0x56, 0x69, 0x56}: "ReportStatusCodeRouterRuntimeDxe", efi.GUID{0x7a, 0xde, 0x88, 0xf7, 0x18, 0xab, 0x86, 0x48, 0xbd, 0x3e, 0x79, 0xed, 0x97, 0x86, 0xf1, 0xa5}: "AmdMemPprSmmDriverSsp", efi.GUID{0x7a, 0xe0, 0x25, 0xba, 0x53, 0xe2, 0x2c, 0x44, 0x90, 0xff, 0xb4, 0xc9, 0x2f, 0xad, 0x69, 0x90}: "UsbMassStoragePei", efi.GUID{0x7a, 0xe2, 0xb2, 0x02, 0xb5, 0xe8, 0x42, 0x4a, 0x82, 0xc3, 0x55, 0xb4, 0x32, 0x22, 0xeb, 0x9b}: "HpGFIStrsSubComp", efi.GUID{0x7a, 0xeb, 0x90, 0xfc, 0x0a, 0x3e, 0x3c, 0x48, 0xa2, 0x6c, 0x48, 0x4d, 0x36, 0x59, 0x3f, 0xf4}: "AcpiPlatform", efi.GUID{0x7a, 0xee, 0xf7, 0xc1, 0x23, 0x4d, 0x87, 0x42, 0x97, 0xbb, 0xc0, 0xfd, 0x26, 0x5d, 0x09, 0xbf}: "OpromUpdateDxeEldorado", efi.GUID{0x7a, 0xf3, 0xb4, 0x2c, 0x26, 0x00, 0xaf, 0x43, 0xa9, 0x48, 0xd7, 0x19, 0x76, 0xa9, 0x68, 0x60}: "CpuIoDxe", efi.GUID{0x7a, 0xfc, 0x23, 0xe5, 0xf9, 0x3d, 0x46, 0x48, 0xa8, 0x01, 0xd8, 0xcc, 0x1b, 0xe2, 0x91, 0x48}: "PxeDriver", efi.GUID{0x7a, 0xfc, 0xfb, 0xde, 0x02, 0xcc, 0x25, 0x42, 0x88, 0xad, 0x3c, 0x41, 0xe6, 0x21, 0x78, 0x5b}: "DellIdeDxe", efi.GUID{0x7a, 0xff, 0xdd, 0xb7, 0x26, 0x17, 0xe6, 0x11, 0xb1, 0x2f, 0xb8, 0xe8, 0x56, 0x2c, 0xba, 0xfa}: "WiFiPlatformDxe", efi.GUID{0x7b, 0x01, 0x8c, 0x82, 0x8e, 0xba, 0xe6, 0x40, 0xbd, 0xa4, 0x45, 0xb6, 0xf9, 0xf6, 0xa8, 0xcd}: "AmdNbioIOMMUDxe", efi.GUID{0x7b, 0x07, 0x0a, 0x91, 0x23, 0x4b, 0xff, 0x40, 0x8d, 0xcd, 0x64, 0x68, 0x53, 0x49, 0x31, 0x0c}: "SoftSkuStatus", efi.GUID{0x7b, 0x12, 0x4f, 0xed, 0xb0, 0x45, 0x44, 0x4b, 0x88, 0xe9, 0x0d, 0x7e, 0xf1, 0xbe, 0x98, 0xa0}: "FjSysmanYggdrasilSmmPowerOnTime", efi.GUID{0x7b, 0x15, 0x40, 0x22, 0x5a, 0xa4, 0xeb, 0x46, 0x9a, 0x7e, 0x1e, 0x79, 0xc4, 0x78, 0x1f, 0xd7}: "HWChangeWarning", efi.GUID{0x7b, 0x16, 0x67, 0x19, 0x3d, 0xa1, 0x45, 0x4e, 0x80, 0x1b, 0xa6, 0x05, 0xd1, 0x19, 0x46, 0xd5}: "AmiTseOemPortingVar15", efi.GUID{0x7b, 0x1c, 0x34, 0x2b, 0x32, 0x0b, 0x65, 0x4a, 0x9d, 0x46, 0xe1, 0xb3, 0xab, 0xd4, 0xc2, 0x5c}: "Smbios131", efi.GUID{0x7b, 0x1f, 0xaf, 0xe6, 0x3f, 0xfc, 0xda, 0x46, 0xa8, 0x28, 0xa3, 0xb4, 0x57, 0xa4, 0x42, 0x82}: "EfiPeiCpuIoPpiInstalledGuid", efi.GUID{0x7b, 0x27, 0x69, 0x60, 0x6b, 0x24, 0xd5, 0x45, 0xbd, 0x6d, 0x81, 0x82, 0x0e, 0x10, 0xc1, 0x1f}: "CommonSmiCallBackSmm", efi.GUID{0x7b, 0x3c, 0x4b, 0x1d, 0x01, 0x7d, 0xff, 0x4c, 0xaf, 0x3a, 0x0d, 0xaf, 0xb5, 0x3f, 0x63, 0x21}: "FjGabiSystemDataLogoAbstraction", efi.GUID{0x7b, 0x3c, 0x4b, 0x1d, 0x01, 0x7d, 0xff, 0x4c, 0xaf, 0x3a, 0x0d, 0xaf, 0xb5, 0x3f, 0x63, 0x22}: "FjGabiSystemDataLogoAbstractionFTS", efi.GUID{0x7b, 0x3c, 0x73, 0xbe, 0xd9, 0x07, 0x01, 0x44, 0xa0, 0x8e, 0xf4, 0x75, 0xb0, 0xfa, 0x11, 0xed}: "SystemPowerOnEvent", efi.GUID{0x7b, 0x3f, 0x2e, 0x7c, 0x7a, 0xa1, 0x70, 0x40, 0xae, 0x83, 0x13, 0xff, 0x41, 0x6f, 0x62, 0xb2}: "MsiBoardNvs", efi.GUID{0x7b, 0x40, 0x44, 0x52, 0x52, 0xc8, 0x0d, 0x48, 0xba, 0xb5, 0x93, 0x8c, 0x83, 0x2c, 0x55, 0x81}: "ASRockSIPei", efi.GUID{0x7b, 0x46, 0x17, 0xd6, 0xf7, 0x1f, 0x3f, 0x40, 0xa8, 0x7d, 0x29, 0xf6, 0x1c, 0x80, 0xee, 0x7c}: "AmdCpmOemInitPeim", efi.GUID{0x7b, 0x66, 0xc9, 0xf3, 0x0c, 0xc5, 0x9c, 0x4e, 0xa1, 0xf1, 0x78, 0xc3, 0xb1, 0xdd, 0xf2, 0xc2}: "LibNetUtil", efi.GUID{0x7b, 0x69, 0x6e, 0xf5, 0xf8, 0x3e, 0x1d, 0x47, 0x3e, 0xf8, 0x6b, 0x66, 0x36, 0xa6, 0xf2, 0xf8}: "InstallWsmtDxe", efi.GUID{0x7b, 0x6a, 0xf4, 0x1e, 0x4d, 0x5f, 0x67, 0x49, 0xb3, 0xc4, 0xa3, 0x08, 0xd8, 0x98, 0xea, 0xdd}: "AsusCalibrationDxeEntry", efi.GUID{0x7b, 0x72, 0x97, 0x3f, 0x18, 0x5e, 0x4f, 0x4c, 0xbc, 0x65, 0x9c, 0xb8, 0xdf, 0xe1, 0x80, 0x2f}: "FjGabiSystemDataCmosAbstraction", efi.GUID{0x7b, 0x7a, 0xbf, 0xda, 0xfe, 0xb5, 0x18, 0x4a, 0x84, 0x5d, 0xf2, 0x41, 0xd8, 0x58, 0x27, 0x94}: "UndiFirmwareVersionDxe", efi.GUID{0x7b, 0x85, 0xd3, 0x6c, 0x86, 0x1a, 0x34, 0x47, 0x81, 0x4d, 0x83, 0x02, 0xe5, 0x14, 0xae, 0x79}: "AthQCA6174Undi", efi.GUID{0x7b, 0x90, 0x00, 0x52, 0xff, 0x59, 0xe7, 0x49, 0x9a, 0xf9, 0xee, 0x2d, 0xfa, 0x83, 0x62, 0x4f}: "DellStatusServicePeiInit", efi.GUID{0x7b, 0x91, 0xa8, 0x71, 0x91, 0x08, 0x27, 0x4e, 0x8a, 0x73, 0xa9, 0xb3, 0x34, 0x84, 0x03, 0x93}: "AmiPeiBeforeMrcGuid", efi.GUID{0x7b, 0x91, 0xf4, 0x27, 0x07, 0xa7, 0xad, 0x4a, 0x96, 0x76, 0x26, 0xdf, 0x16, 0x8c, 0xbf, 0x0d}: "PchSpiSmm", efi.GUID{0x7b, 0x97, 0xec, 0x6c, 0x2e, 0x14, 0xba, 0x4e, 0xac, 0xbb, 0x74, 0xd8, 0x82, 0xb1, 0x66, 0xca}: "OemCustomDefaults", efi.GUID{0x7b, 0x99, 0x17, 0x27, 0xac, 0xab, 0x33, 0x47, 0xad, 0xaf, 0x9c, 0x19, 0xd8, 0xfb, 0xb7, 0xa1}: "CbmrDriver", efi.GUID{0x7b, 0x9c, 0x10, 0x0e, 0x90, 0x87, 0x9d, 0x4b, 0x98, 0x1c, 0x9d, 0x4b, 0x07, 0x9e, 0x98, 0xd4}: "MsiSGSmm", efi.GUID{0x7b, 0x9d, 0xe2, 0xba, 0xbb, 0x89, 0x23, 0x42, 0xaf, 0x76, 0x96, 0xd0, 0xb3, 0x24, 0x9b, 0x36}: "SsaBiosServicesPpi", efi.GUID{0x7b, 0xa3, 0x92, 0xdc, 0xc5, 0x4a, 0x17, 0x41, 0xaa, 0xbb, 0x01, 0x9f, 0xfc, 0x0f, 0xd0, 0x6a}: "FpkSetup", efi.GUID{0x7b, 0xa7, 0x73, 0xed, 0xb0, 0x8a, 0x72, 0x42, 0xb7, 0xb8, 0xe2, 0x53, 0x11, 0x36, 0x6f, 0xbf}: "AddrDecode", efi.GUID{0x7b, 0xa8, 0xd7, 0x3d, 0xbd, 0xd5, 0xaf, 0x44, 0x98, 0x6f, 0x2e, 0x13, 0xdb, 0x5d, 0x27, 0x4c}: "SnpDxe", efi.GUID{0x7b, 0xab, 0xbc, 0xcf, 0x0d, 0x05, 0x4f, 0x49, 0xa8, 0x41, 0x51, 0xbe, 0xeb, 0x73, 0x40, 0x6e}: "USBControllerDxe", efi.GUID{0x7b, 0xba, 0x04, 0x15, 0xf8, 0x58, 0x12, 0x4d, 0x96, 0x38, 0xb4, 0x94, 0xa7, 0x04, 0x43, 0x76}: "LenovoSystemSmmServicesSmm", efi.GUID{0x7b, 0xba, 0x8d, 0xe1, 0x76, 0xab, 0xff, 0x43, 0x8c, 0x27, 0x50, 0xee, 0x33, 0x73, 0x48, 0x1d}: "CxlEndpointDriver", efi.GUID{0x7b, 0xc8, 0x27, 0xab, 0xb9, 0x91, 0x1c, 0x4f, 0xb9, 0x42, 0x84, 0x37, 0xb1, 0x64, 0x27, 0x7a}: "FchHuangshanPei", efi.GUID{0x7b, 0xca, 0x40, 0x91, 0xbd, 0xca, 0x09, 0x4a, 0x88, 0xf7, 0x08, 0x62, 0x04, 0x3c, 0xc2, 0x86}: "DellSmstTransfer", efi.GUID{0x7b, 0xca, 0x55, 0x77, 0x8f, 0xca, 0xc5, 0x43, 0x88, 0x9b, 0xe1, 0xf5, 0x9a, 0x93, 0xd5, 0x75}: "IntelGopDriver", efi.GUID{0x7b, 0xd1, 0xb3, 0xaf, 0x30, 0xa3, 0x60, 0x48, 0x9b, 0xeb, 0xe3, 0xc7, 0xd1, 0xd4, 0x9c, 0x50}: "FjSecureServicesSmm", efi.GUID{0x7b, 0xd3, 0x01, 0x51, 0x13, 0xcd, 0x3c, 0x49, 0xbd, 0x7c, 0x40, 0xa3, 0xe4, 0x5f, 0xc1, 0x9b}: "UfsPciHcDxe", efi.GUID{0x7b, 0xe0, 0x8c, 0x64, 0x5d, 0xae, 0x73, 0x49, 0xbd, 0x3c, 0x8c, 0x91, 0x53, 0xc0, 0x5d, 0xc5}: "SgInfoHob", efi.GUID{0x7b, 0xe6, 0xf3, 0xba, 0x75, 0xb1, 0xf6, 0x49, 0x84, 0xff, 0x75, 0xc3, 0x54, 0x43, 0x9c, 0xfd}: "FirmwareUpdate", efi.GUID{0x7b, 0xea, 0xe2, 0xaa, 0x52, 0xe0, 0x71, 0x43, 0x8e, 0x4b, 0xff, 0x0e, 0x52, 0xd8, 0x0f, 0x66}: "AdlinkSetupItemMod", efi.GUID{0x7b, 0xec, 0x77, 0xd1, 0x53, 0x53, 0x18, 0x4e, 0xa0, 0x44, 0x63, 0x60, 0xac, 0x6d, 0x46, 0x7d}: "AmdPlatformCustomizeSmm", efi.GUID{0x7b, 0xee, 0x31, 0xee, 0xb8, 0x07, 0xc5, 0x48, 0x8f, 0x3f, 0xc4, 0x2a, 0x70, 0x0e, 0x04, 0x32}: "AAEONCH7511Pei", efi.GUID{0x7b, 0xef, 0x07, 0x61, 0x84, 0xd3, 0x24, 0x4a, 0xbc, 0x9b, 0x5f, 0xef, 0x73, 0x1f, 0x6a, 0x5b}: "IsaUartDxe", efi.GUID{0x7b, 0xf4, 0xba, 0x52, 0x20, 0x69, 0x04, 0x43, 0xa0, 0x31, 0xa4, 0x5c, 0xc3, 0x45, 0xda, 0x3f}: "POSTCODE01_TPM_CONFIG_POLICY_SMM", efi.GUID{0x7b, 0xfa, 0x22, 0x51, 0xa3, 0x17, 0x8b, 0x4a, 0x89, 0xae, 0xa9, 0x3a, 0xde, 0x92, 0xea, 0xdf}: "DigitalThermalSensor", efi.GUID{0x7c, 0x03, 0xd6, 0x99, 0x17, 0xd3, 0xf0, 0x4a, 0xb0, 0xd2, 0x39, 0x59, 0x53, 0x0e, 0x6b, 0x16}: "CollectPOSTFlag", efi.GUID{0x7c, 0x04, 0x67, 0x2e, 0x47, 0x76, 0xf8, 0x40, 0x88, 0x6c, 0x5c, 0x33, 0x3c, 0x73, 0x27, 0x2f}: "InitSerialPortPei", efi.GUID{0x7c, 0x16, 0xfc, 0x45, 0x1b, 0x8b, 0xf8, 0x49, 0xa3, 0xff, 0x9f, 0xe5, 0x42, 0x41, 0xc9, 0x69}: "RfIScsiBoot", efi.GUID{0x7c, 0x1c, 0x82, 0x4f, 0x33, 0x8e, 0x2a, 0x41, 0xae, 0x63, 0xd1, 0x49, 0xf3, 0x76, 0xcd, 0x1b}: "SmmWheaDxe", efi.GUID{0x7c, 0x1d, 0x7a, 0xe5, 0x6a, 0xd1, 0x75, 0x49, 0xaf, 0x5b, 0x00, 0xeb, 0xac, 0x08, 0x9f, 0xc6}: "StartupMenuTimeout", efi.GUID{0x7c, 0x1d, 0xe8, 0x58, 0x7f, 0x4d, 0x6f, 0x4c, 0xaa, 0xe6, 0x32, 0xa9, 0x9f, 0x25, 0xfd, 0x17}: "DellPsidDxe", efi.GUID{0x7c, 0x1e, 0x9f, 0xae, 0xc9, 0x80, 0x23, 0x4a, 0x91, 0x7f, 0x74, 0x50, 0xba, 0x57, 0x8e, 0x0f}: "TheftRecoverySmm", efi.GUID{0x7c, 0x1f, 0x37, 0xde, 0xc4, 0xde, 0x21, 0x4d, 0xad, 0xf1, 0x59, 0x3a, 0xbc, 0xc1, 0x58, 0x82}: "ArmGicDxe", efi.GUID{0x7c, 0x29, 0x75, 0xb6, 0x03, 0x42, 0xe5, 0x48, 0xaf, 0x9f, 0xb5, 0x00, 0xc7, 0xc4, 0x7b, 0xac}: "UsbTypeCChargingSmm", efi.GUID{0x7c, 0x2e, 0xe7, 0x2e, 0x9e, 0xfb, 0x18, 0x43, 0xb8, 0x88, 0x33, 0xa3, 0x15, 0xc7, 0xa9, 0x1d}: "PpmPolicy", efi.GUID{0x7c, 0x34, 0xb9, 0xca, 0xe9, 0x8c, 0xe1, 0x4d, 0x9c, 0x6f, 0x64, 0x57, 0xac, 0x69, 0x33, 0x2b}: "PrepareForScheckEvent", efi.GUID{0x7c, 0x36, 0x1e, 0xd5, 0x5a, 0xef, 0xc6, 0x4e, 0xa3, 0x9e, 0x08, 0x3c, 0x85, 0x1e, 0xbf, 0x91}: "HidKbDxe", efi.GUID{0x7c, 0x3d, 0x85, 0x15, 0xdf, 0x3d, 0xe0, 0x43, 0xa1, 0xcb, 0xeb, 0xf8, 0x5b, 0x8f, 0x87, 0x2c}: "EfiDeferredImageLoadProtocolGuid", efi.GUID{0x7c, 0x4b, 0x1e, 0x3b, 0xd8, 0x09, 0x4f, 0x94, 0xa4, 0x08, 0x13, 0x09, 0xeb, 0x8b, 0x44, 0x27}: "EmuThreadThunkProtocolGuid", efi.GUID{0x7c, 0x4f, 0xb0, 0xd2, 0x9b, 0x69, 0x9a, 0x4f, 0x91, 0xf3, 0x04, 0x07, 0x8b, 0x95, 0x63, 0xcb}: "BootOrderData", efi.GUID{0x7c, 0x51, 0x4f, 0x4b, 0x45, 0x01, 0x83, 0x47, 0xa1, 0xd7, 0x01, 0x8d, 0x20, 0x79, 0x75, 0x55}: "PciHsUartDxe", efi.GUID{0x7c, 0x53, 0x9d, 0xca, 0x20, 0x0b, 0x94, 0x4f, 0x92, 0x83, 0x45, 0xf4, 0xd5, 0x1a, 0x74, 0x8d}: "DellAsfBypassAbstraction", efi.GUID{0x7c, 0x54, 0x49, 0xd0, 0x27, 0x82, 0xd2, 0x44, 0x8a, 0x5e, 0x02, 0x88, 0x8d, 0xe9, 0x30, 0xd1}: "ClearPasswordReq", efi.GUID{0x7c, 0x56, 0xc1, 0x7c, 0xb8, 0xcc, 0x50, 0x4c, 0x80, 0xba, 0xd4, 0x4a, 0x3b, 0x66, 0x74, 0x15}: "AmdSb800_PeiInterfacePei", efi.GUID{0x7c, 0x5e, 0x57, 0x14, 0xd7, 0x03, 0x62, 0x4a, 0x9c, 0x01, 0x4e, 0xbf, 0xbd, 0x48, 0xba, 0x48}: "SmbiosTypeAdd", efi.GUID{0x7c, 0x61, 0x63, 0x86, 0x3a, 0xca, 0x25, 0x4b, 0xb6, 0x3e, 0x6f, 0xfb, 0x38, 0x94, 0xd6, 0x5a}: "SioSmiSwDispatcher", efi.GUID{0x7c, 0x64, 0xca, 0xba, 0x3b, 0x88, 0x69, 0x41, 0x9e, 0x89, 0x79, 0x10, 0xc0, 0x60, 0xff, 0xee}: "GopConfigNex", efi.GUID{0x7c, 0x65, 0xb8, 0xae, 0xbf, 0xae, 0xa1, 0x40, 0x98, 0x66, 0xbb, 0x22, 0xc7, 0x22, 0x3f, 0xf0}: "Sha1AndRsaDxe", efi.GUID{0x7c, 0x66, 0xbe, 0x75, 0xe1, 0x48, 0x2d, 0x45, 0xb0, 0xfc, 0x36, 0x31, 0x38, 0xed, 0x87, 0xff}: "PStateControl", efi.GUID{0x7c, 0x66, 0xc1, 0x7c, 0xb8, 0xcc, 0x50, 0x4c, 0x80, 0xba, 0xd4, 0x4a, 0x3b, 0x66, 0x74, 0x15}: "SbInterfacePei", efi.GUID{0x7c, 0x70, 0x1a, 0xa1, 0x9a, 0xeb, 0x0f, 0x45, 0x8c, 0xb6, 0x92, 0x84, 0xb5, 0x6a, 0x9f, 0x80}: "FjGabiEntrySmiDispatcherSmm", efi.GUID{0x7c, 0x74, 0x38, 0xd0, 0x0c, 0xd0, 0x80, 0x49, 0xb3, 0x19, 0x49, 0x01, 0x99, 0xa4, 0x7d, 0x55}: "FspReservedMemoryResourceHobTsegGuid", efi.GUID{0x7c, 0x75, 0xd5, 0x99, 0x06, 0xd9, 0xe0, 0x11, 0x8d, 0x78, 0x8d, 0xe4, 0x48, 0x24, 0x01, 0x9b}: "PchEfiRaidDriverExecution", efi.GUID{0x7c, 0x78, 0xb5, 0x67, 0x6a, 0x0e, 0x96, 0x47, 0x94, 0x3e, 0xa0, 0x93, 0xb7, 0x3a, 0x02, 0x67}: "HiiUtilitiesProtocol", efi.GUID{0x7c, 0x79, 0x7a, 0xcb, 0xd9, 0x57, 0x16, 0x46, 0x88, 0xb4, 0x62, 0x42, 0x13, 0x96, 0x7b, 0xd7}: "CompalDptf", efi.GUID{0x7c, 0x7a, 0x4d, 0x3a, 0x8a, 0x01, 0x42, 0x4b, 0x81, 0xb3, 0xdc, 0x10, 0xe3, 0xb5, 0x91, 0xbd}: "UsbKeyboardLayoutKeyGuid", efi.GUID{0x7c, 0x84, 0xfa, 0xeb, 0x3b, 0x52, 0xf4, 0x46, 0xbb, 0x7d, 0xc5, 0x1e, 0xff, 0xd1, 0x99, 0x4c}: "FjMrcOutputInterfaceGeminilake", efi.GUID{0x7c, 0x8c, 0xbd, 0x3e, 0x3b, 0x73, 0x67, 0x46, 0x8f, 0xd1, 0x4a, 0xbe, 0xa3, 0x66, 0xc9, 0x5b}: "ASUSDirectKeyPEI", efi.GUID{0x7c, 0x8d, 0x58, 0x6b, 0x2e, 0xc7, 0x78, 0x4a, 0x88, 0x58, 0x77, 0xe1, 0xda, 0x8f, 0xc7, 0xf7}: "ProjectOwnProtocol", efi.GUID{0x7c, 0x8f, 0xd2, 0x1f, 0xfe, 0x8c, 0xc4, 0x46, 0xae, 0x0f, 0x0c, 0xeb, 0xa3, 0x7f, 0xf2, 0x8b}: "SystemSignaturesDxe", efi.GUID{0x7c, 0x98, 0x71, 0x2e, 0x27, 0x42, 0x51, 0x1e, 0x40, 0xe3, 0x8a, 0x82, 0x4d, 0xe9, 0x51, 0x1b}: "PlatformSioHwSmi", efi.GUID{0x7c, 0x98, 0xe6, 0xfe, 0xf3, 0x9f, 0x71, 0x49, 0xab, 0xc1, 0x23, 0x69, 0x7c, 0xb6, 0xac, 0xed}: "A01ModifyBootInfoDxe", efi.GUID{0x7c, 0x9a, 0xc9, 0x4a, 0xcf, 0x1d, 0x51, 0x4a, 0x8f, 0x06, 0x5e, 0xed, 0xfe, 0x8a, 0x88, 0x64}: "CryptoServiceRuntimeDxe", efi.GUID{0x7c, 0x9b, 0x0d, 0xa3, 0xd3, 0xde, 0xd6, 0x48, 0x83, 0xa6, 0x3f, 0xf4, 0x34, 0x44, 0xc3, 0x7a}: "AppleDxeManufacturingFixture", efi.GUID{0x7c, 0xa4, 0x1a, 0xaa, 0x68, 0x36, 0x75, 0x4f, 0xb5, 0x1b, 0x0c, 0x1c, 0x64, 0x99, 0x76, 0x4c}: "AmiGetPstatesZen4", efi.GUID{0x7c, 0xad, 0xec, 0x25, 0x93, 0x2c, 0xb8, 0x35, 0x2e, 0x54, 0xc7, 0x1a, 0x4c, 0x02, 0xd3, 0xd1}: "QualCommSupplicantDxe", efi.GUID{0x7c, 0xad, 0xec, 0x45, 0x93, 0x8c, 0xb8, 0x25, 0x5e, 0x53, 0x17, 0x1a, 0x4c, 0x02, 0xd3, 0xab}: "WCN6855", efi.GUID{0x7c, 0xb8, 0x9c, 0xb0, 0xd8, 0x67, 0x2b, 0x41, 0xbb, 0x9d, 0x9f, 0x4b, 0x21, 0x4d, 0x72, 0x0a}: "VTd", efi.GUID{0x7c, 0xb9, 0x05, 0xba, 0xbf, 0x8e, 0xb7, 0x48, 0x85, 0x8d, 0x4b, 0x0a, 0xfb, 0xf0, 0xd7, 0xda}: "BiosGuardRecoveryWorker", efi.GUID{0x7c, 0xc1, 0x4f, 0xb9, 0x9c, 0x57, 0xb3, 0x4a, 0xba, 0x28, 0x67, 0x8d, 0x18, 0x13, 0xd1, 0xd6}: "DellBiosConnectNetwork", efi.GUID{0x7c, 0xc5, 0x53, 0xd7, 0xd0, 0x87, 0x36, 0x46, 0x87, 0x6a, 0x5e, 0xe0, 0xe7, 0x3a, 0x66, 0x89}: "PlatformMilestoneHookDxe", efi.GUID{0x7c, 0xc5, 0x53, 0xd7, 0xd0, 0x87, 0x36, 0x46, 0x87, 0x6a, 0x5e, 0xe0, 0xe7, 0x3a, 0x66, 0x8a}: "BoardMilestoneHookDxe", efi.GUID{0x7c, 0xcf, 0xa6, 0xd3, 0x13, 0x2a, 0xcd, 0x4d, 0x96, 0x1f, 0xb8, 0x8c, 0x85, 0xac, 0xeb, 0x34}: "AmdCcxZenRvPei", efi.GUID{0x7c, 0xd3, 0x43, 0xbf, 0x71, 0x70, 0x4e, 0x41, 0xb3, 0xeb, 0x3c, 0x98, 0xd0, 0x8a, 0xa3, 0x2e}: "EcInit", efi.GUID{0x7c, 0xd3, 0x43, 0xbf, 0x78, 0x70, 0x4e, 0x41, 0xb3, 0xeb, 0x3c, 0x98, 0xd0, 0x8a, 0xa3, 0x2e}: "FjSysmanSmcsUpdater", efi.GUID{0x7c, 0xd3, 0xdc, 0xd4, 0xa3, 0x90, 0x6e, 0x40, 0xb1, 0x93, 0x32, 0x3c, 0x6a, 0xac, 0x24, 0x28}: "ASUSBackup", efi.GUID{0x7c, 0xd4, 0x13, 0xbf, 0x71, 0x76, 0x4e, 0x41, 0xb3, 0xeb, 0x17, 0x84, 0x07, 0x3e, 0xc5, 0xfe}: "EcInit", efi.GUID{0x7c, 0xd5, 0xa3, 0xb2, 0x71, 0x70, 0x4e, 0x01, 0xb3, 0xeb, 0x3c, 0x98, 0xd0, 0x9c, 0xb3, 0x2e}: "IntrusionDetect", efi.GUID{0x7c, 0xde, 0x7b, 0x0f, 0xf3, 0xaa, 0xd0, 0x48, 0x93, 0x1f, 0x47, 0x57, 0x50, 0xdd, 0xe2, 0x09}: "OemPei", efi.GUID{0x7c, 0xde, 0x7b, 0x0f, 0xf3, 0xaa, 0xd0, 0x48, 0x93, 0x1f, 0x47, 0x57, 0x50, 0xdd, 0xe2, 0x10}: "OemWwanPei", efi.GUID{0x7c, 0xe0, 0x46, 0x95, 0xbb, 0x2c, 0x88, 0x4c, 0x98, 0x6c, 0xcd, 0x34, 0x10, 0x86, 0xf0, 0x44}: "EfiDebugSupportPeriodicCallbackProtocolGuid", efi.GUID{0x7c, 0xe4, 0x06, 0x7d, 0x2c, 0xb3, 0x6f, 0x49, 0x94, 0x0e, 0xf3, 0x0c, 0xde, 0x0b, 0x7c, 0xe5}: "SystemFirmwareDeviceBlockSmm", efi.GUID{0x7c, 0xe5, 0x33, 0xe6, 0xb1, 0xbb, 0x6a, 0x4c, 0x9f, 0x45, 0x22, 0xc4, 0x93, 0x78, 0xad, 0xd0}: "BootScriptThunkHelper", efi.GUID{0x7c, 0xea, 0x45, 0x32, 0x09, 0x92, 0xe7, 0x41, 0xbe, 0x2c, 0xeb, 0x66, 0x2b, 0x8c, 0x06, 0x22}: "FspFirmwareVersionPeim", efi.GUID{0x7c, 0xed, 0xf8, 0xeb, 0xd1, 0x0d, 0x87, 0x47, 0x84, 0xf1, 0xf4, 0x8d, 0x53, 0x7d, 0xca, 0xcf}: "DriverHealthManagerDxe", efi.GUID{0x7c, 0xf1, 0xcf, 0x1d, 0x53, 0xaa, 0x78, 0x4b, 0xb2, 0x34, 0x86, 0x40, 0x27, 0x55, 0x50, 0x35}: "LibUefi", efi.GUID{0x7c, 0xf4, 0x38, 0xf2, 0xe9, 0x1d, 0x8b, 0x4e, 0x81, 0xb9, 0xcc, 0x92, 0x4e, 0x6b, 0x5b, 0xe5}: "EfiPcmciaRequestProtocol", efi.GUID{0x7c, 0xfa, 0x90, 0x5e, 0x13, 0x9f, 0x4a, 0x4c, 0x96, 0xa7, 0xc1, 0x15, 0xff, 0x56, 0x87, 0x98}: "LenovoVariableStorePei", efi.GUID{0x7c, 0xfd, 0x26, 0xb3, 0x82, 0xf9, 0x0a, 0x41, 0x96, 0xc6, 0x1c, 0x1e, 0x49, 0x9e, 0x15, 0x59}: "WyseThinClientDxe", efi.GUID{0x7d, 0x14, 0x34, 0xa0, 0x0c, 0x69, 0x54, 0x41, 0x8d, 0xe6, 0xc0, 0x44, 0x64, 0x1d, 0xe9, 0x42}: "FspVariableNvDataHobGuid", efi.GUID{0x7d, 0x17, 0xff, 0x6e, 0xef, 0xe4, 0x1d, 0x4e, 0x84, 0x19, 0xdb, 0x71, 0x72, 0x31, 0xeb, 0x7d}: "OemThermalDptfSettings", efi.GUID{0x7d, 0x1c, 0x65, 0xad, 0x22, 0x3c, 0xbf, 0x4d, 0x92, 0xe8, 0x38, 0xa7, 0xcd, 0xae, 0x87, 0xb2}: "VirtualUncachedPagesProtocolGuid", efi.GUID{0x7d, 0x1e, 0xc3, 0x84, 0x03, 0x37, 0xd3, 0x42, 0xb4, 0x3b, 0x1f, 0xee, 0x41, 0x66, 0x6d, 0x9a}: "SystemFormBrowserMetroViewLayoutDxe", efi.GUID{0x7d, 0x26, 0x3d, 0xad, 0xe1, 0x50, 0x94, 0x4b, 0x95, 0xd3, 0x10, 0x25, 0xef, 0x5b, 0x83, 0x91}: "SecFlashUpdDXE", efi.GUID{0x7d, 0x39, 0x3c, 0x5e, 0xa8, 0xa1, 0xe6, 0x4c, 0xb0, 0x58, 0x3a, 0x2e, 0xb7, 0xee, 0xdc, 0xdf}: "AmdSocSp6ShpDxe", efi.GUID{0x7d, 0x40, 0xfb, 0x84, 0x76, 0xd0, 0xdd, 0x4d, 0x87, 0x1f, 0x33, 0x37, 0x3a, 0x26, 0xba, 0xbb}: "FchPromontorySsdt", efi.GUID{0x7d, 0x40, 0xfb, 0x84, 0x86, 0xd0, 0xdd, 0x4d, 0x82, 0x2f, 0x33, 0x37, 0x3a, 0x26, 0xba, 0xcc}: "FchTaishanSsdt", efi.GUID{0x7d, 0x49, 0x8a, 0x62, 0xf6, 0x2b, 0x64, 0x42, 0x87, 0x41, 0x06, 0x9d, 0xbd, 0x33, 0x99, 0xd6}: "ConSplitter", efi.GUID{0x7d, 0x4e, 0xea, 0x1a, 0xf8, 0xd6, 0x1e, 0x49, 0xbb, 0x5c, 0x4b, 0xec, 0x10, 0xc9, 0x8c, 0x99}: "FchSmmDispatcher", efi.GUID{0x7d, 0x56, 0x14, 0x86, 0xbe, 0x35, 0x15, 0x44, 0x8d, 0x88, 0xbd, 0x7d, 0x0c, 0x9c, 0x70, 0xc0}: "PlatformOverridesManagerGuid", efi.GUID{0x7d, 0x5d, 0xc5, 0x9c, 0xff, 0xfb, 0x1c, 0x43, 0xbc, 0x14, 0x33, 0x4e, 0xae, 0xa6, 0x05, 0x2b}: "SmmCoreDispatcherDxe", efi.GUID{0x7d, 0x64, 0xf9, 0x3a, 0x6b, 0xc4, 0xe4, 0x11, 0xaa, 0x1d, 0xb8, 0xe8, 0x56, 0x2c, 0xba, 0xfa}: "ChunkManager", efi.GUID{0x7d, 0x72, 0x3a, 0x6d, 0xc8, 0x66, 0x19, 0x4d, 0x87, 0xe6, 0x02, 0x15, 0x86, 0x14, 0x90, 0xf3}: "EfiUnixSerialPort", efi.GUID{0x7d, 0x76, 0xcb, 0x43, 0x2c, 0x32, 0x85, 0x42, 0xb2, 0xfa, 0xe9, 0x52, 0xbf, 0x2d, 0xd9, 0x4c}: "AmdCpmSoundWireDxe", efi.GUID{0x7d, 0x98, 0x5c, 0x3c, 0x96, 0x79, 0x15, 0x44, 0x8b, 0x16, 0x9f, 0x4a, 0x8a, 0xd3, 0x6f, 0xdd}: "Int10ToSmiDxe", efi.GUID{0x7d, 0xa4, 0xad, 0x6d, 0x5a, 0x64, 0x28, 0x41, 0xb2, 0x92, 0x57, 0xa4, 0x75, 0xe1, 0x45, 0x6a}: "AppleSecureBootDxe", efi.GUID{0x7d, 0xa6, 0x6b, 0xa4, 0x69, 0xb1, 0x04, 0x4e, 0x9a, 0xac, 0x18, 0x45, 0xcb, 0xde, 0xe0, 0xaa}: "AcpiMetronomeDxe", efi.GUID{0x7d, 0xb7, 0xed, 0x59, 0x97, 0x53, 0x27, 0x41, 0x8a, 0x58, 0x81, 0xd7, 0xb4, 0x13, 0x24, 0x71}: "AmdPspPeiV2StxKrk", efi.GUID{0x7d, 0xc1, 0x43, 0x41, 0xbc, 0x54, 0x03, 0x49, 0x99, 0x58, 0x24, 0x54, 0x21, 0x6b, 0xb2, 0x1e}: "LpcPlatform", efi.GUID{0x7d, 0xca, 0x2c, 0x16, 0x17, 0xdb, 0xd4, 0x4c, 0x99, 0xc4, 0x15, 0xf1, 0x62, 0x82, 0x20, 0x6e}: "GoodixTouchpadUpdate", efi.GUID{0x7d, 0xd0, 0xc4, 0x11, 0x4f, 0xb4, 0x30, 0x46, 0xbc, 0xd8, 0xef, 0xf7, 0x86, 0xe2, 0x4a, 0x74}: "CypressCCGxSmm", efi.GUID{0x7d, 0xd8, 0xe2, 0xca, 0xbc, 0x5c, 0xe7, 0x47, 0x8c, 0xad, 0x50, 0x37, 0x7a, 0x5d, 0x0e, 0x90}: "PlatformErrorStrings", efi.GUID{0x7d, 0xdd, 0x9e, 0x24, 0x6d, 0x34, 0x90, 0x4c, 0xb9, 0x4f, 0x16, 0x07, 0x9e, 0xf0, 0x61, 0xd5}: "AmdCpuPolicy", efi.GUID{0x7d, 0xdf, 0xa1, 0x76, 0x4c, 0x75, 0xe1, 0x40, 0xbc, 0x72, 0x3f, 0xca, 0xd8, 0x42, 0xde, 0xf6}: "DellDaEppid", efi.GUID{0x7d, 0xe1, 0x60, 0x99, 0x1c, 0xfd, 0x9a, 0x41, 0x9a, 0x90, 0x39, 0x44, 0x54, 0x2c, 0x67, 0xae}: "PowerButtonSetupDxe", efi.GUID{0x7d, 0xe2, 0xf9, 0xc7, 0x5a, 0x04, 0x33, 0x4d, 0x85, 0xbd, 0xc7, 0xd0, 0xab, 0xa7, 0xc8, 0x36}: "It8659", efi.GUID{0x7d, 0xe7, 0x4a, 0xe3, 0x14, 0x33, 0xf6, 0x43, 0xb4, 0x1c, 0x6f, 0x19, 0xf3, 0xf1, 0xd6, 0xa8}: "AmdPspPeiV2Rmb", efi.GUID{0x7e, 0x01, 0x03, 0x55, 0x17, 0x3b, 0x1a, 0x41, 0xa6, 0x70, 0x09, 0xbb, 0x03, 0x9f, 0x1b, 0x6f}: "CrashLogDxe", efi.GUID{0x7e, 0x01, 0x84, 0xdd, 0x52, 0x7f, 0xf9, 0x48, 0xb1, 0x6e, 0x50, 0xed, 0x9e, 0x0d, 0xbe, 0x27}: "EfiSocketIioVariable", efi.GUID{0x7e, 0x0b, 0xfe, 0x9e, 0xe8, 0x27, 0xd5, 0x46, 0x83, 0x87, 0xcd, 0xda, 0xfd, 0x2c, 0x3a, 0x67}: "ASRockNetDnsBin", efi.GUID{0x7e, 0x12, 0x2c, 0x8f, 0x7d, 0x11, 0x4b, 0x48, 0x8a, 0x44, 0xfb, 0xd9, 0x11, 0xbe, 0x12, 0x5e}: "IpmiRedirFru", efi.GUID{0x7e, 0x15, 0x62, 0xbc, 0x33, 0x3e, 0xec, 0x4f, 0x99, 0x20, 0x2d, 0x3b, 0x36, 0xd7, 0x50, 0xdf}: "EfiLoadedImageDevicePathProtocolGuid", efi.GUID{0x7e, 0x21, 0x07, 0x68, 0xde, 0xe8, 0xd0, 0x42, 0x91, 0xd9, 0x60, 0xae, 0xce, 0xd7, 0x42, 0x0d}: "Stall", efi.GUID{0x7e, 0x2d, 0xcb, 0x7c, 0x15, 0xcd, 0x7e, 0x41, 0xa5, 0xc8, 0x00, 0x3d, 0xa6, 0x32, 0x5b, 0x9f}: "PowerStateManager", efi.GUID{0x7e, 0x3c, 0x0d, 0x0b, 0x3a, 0x47, 0xe2, 0x22, 0x84, 0x28, 0x3d, 0xae, 0x5c, 0xce, 0xac, 0x64}: "CableDetectDxe", efi.GUID{0x7e, 0x3e, 0x7b, 0x83, 0x59, 0x42, 0x35, 0x4e, 0x87, 0xed, 0x39, 0x7a, 0x24, 0xca, 0x15, 0x93}: "MpmSensorInfoDxe", efi.GUID{0x7e, 0x4c, 0xe3, 0x93, 0x0e, 0xb5, 0xdf, 0x11, 0x92, 0x23, 0x24, 0x43, 0xdf, 0xd7, 0x20, 0x85}: "ArmVeNorFlashDxe", efi.GUID{0x7e, 0x4e, 0xd0, 0xaa, 0xe6, 0xf6, 0x94, 0x46, 0xb1, 0x4f, 0xe2, 0xd6, 0x08, 0x74, 0x0e, 0x29}: "SmbiosType3", efi.GUID{0x7e, 0x4f, 0xea, 0x7c, 0x52, 0x20, 0xed, 0x46, 0xbe, 0xfd, 0xe2, 0x2a, 0x44, 0xdc, 0x65, 0xe7}: "Tpm20HobGuid", efi.GUID{0x7e, 0x52, 0x36, 0x1f, 0x7c, 0xa9, 0xf8, 0x45, 0xb2, 0x4a, 0x9d, 0x95, 0xb0, 0xa9, 0x40, 0xfe}: "AppleBrightnessControl", efi.GUID{0x7e, 0x58, 0x21, 0x27, 0xe8, 0x2a, 0xa0, 0x43, 0xaa, 0xeb, 0x19, 0xdd, 0xa1, 0x6c, 0x77, 0x64}: "FlexIoPortConfigSmm", efi.GUID{0x7e, 0x5b, 0x9f, 0xcc, 0x4b, 0x25, 0x8a, 0x4f, 0xa6, 0x48, 0x03, 0x4a, 0x40, 0xae, 0xda, 0x35}: "PlatformCustomizePei", efi.GUID{0x7e, 0x68, 0xc2, 0x77, 0x5a, 0x97, 0x9c, 0x67, 0xbe, 0x44, 0x2e, 0xf6, 0x78, 0x68, 0xce, 0xac}: "IhisiRegister", efi.GUID{0x7e, 0x69, 0x53, 0x50, 0xbc, 0x2c, 0x19, 0x48, 0x90, 0xd9, 0x05, 0x80, 0xde, 0xee, 0x57, 0x54}: "EfiCapsuleArchProtocolGuid", efi.GUID{0x7e, 0x69, 0xca, 0x4a, 0x83, 0xf8, 0x6f, 0x44, 0x98, 0xf7, 0x09, 0x64, 0x16, 0xff, 0xff, 0xff}: "OhciDxe", efi.GUID{0x7e, 0x6a, 0x9f, 0xcc, 0x5b, 0x24, 0x99, 0x4f, 0xb5, 0x48, 0x03, 0x4b, 0x30, 0xbd, 0xda, 0x44}: "FlexIoCard", efi.GUID{0x7e, 0x6e, 0x5c, 0x1c, 0x2a, 0x55, 0x3e, 0x44, 0x9a, 0x04, 0x74, 0x08, 0xad, 0xee, 0x99, 0xd3}: "FirmwareConfigDrv", efi.GUID{0x7e, 0x73, 0x1d, 0x5c, 0xd6, 0x36, 0xb1, 0x45, 0x86, 0x2c, 0x6b, 0x9c, 0x24, 0x4f, 0x4c, 0x07}: "PlatformStatusCodeHandlerDxe", efi.GUID{0x7e, 0x75, 0x1f, 0x16, 0x55, 0xed, 0x75, 0x4a, 0xa6, 0xf0, 0xed, 0x2d, 0xf1, 0x6e, 0x08, 0x42}: "LanguageDefaultsAndWmi", efi.GUID{0x7e, 0x77, 0xd9, 0xb8, 0x2a, 0xd7, 0x1f, 0x45, 0x9b, 0xdb, 0xba, 0xfb, 0x52, 0xa6, 0x84, 0x15}: "ArmCpuDxe", efi.GUID{0x7e, 0x7b, 0xdb, 0x71, 0x65, 0x41, 0xfa, 0x48, 0xac, 0x9d, 0xf9, 0xaf, 0x4c, 0xef, 0xc5, 0x34}: "DellPropertyDxeProtocol", efi.GUID{0x7e, 0x80, 0x1c, 0xdd, 0xb9, 0xbd, 0xa4, 0x49, 0xad, 0x50, 0xe5, 0x10, 0xdc, 0x94, 0x84, 0x76}: "FujNotInSmm", efi.GUID{0x7e, 0x80, 0x1d, 0xed, 0x5f, 0x9a, 0x6a, 0x43, 0xb8, 0xaa, 0xd7, 0x8e, 0xd9, 0xe7, 0xd9, 0x2c}: "DellNumberOfPStateProtocol", efi.GUID{0x7e, 0x8f, 0x7d, 0x28, 0x76, 0x61, 0xdb, 0x47, 0x90, 0xef, 0xf1, 0xd6, 0xd2, 0xa3, 0xde, 0x9e}: "BoardSmm", efi.GUID{0x7e, 0x90, 0x3d, 0xd9, 0x7d, 0xee, 0x77, 0x45, 0x83, 0x3c, 0x5a, 0xd3, 0xad, 0xbb, 0xb8, 0xc4}: "DeepS3ConfigDxe", efi.GUID{0x7e, 0x94, 0xb5, 0x06, 0x53, 0xff, 0x7d, 0x45, 0x98, 0xbc, 0xc5, 0xab, 0xc7, 0x77, 0xfd, 0x5a}: "SetupMouseDxe", efi.GUID{0x7e, 0xa9, 0xed, 0x60, 0x31, 0x36, 0xa4, 0x40, 0x85, 0xd4, 0x4a, 0x28, 0x06, 0x50, 0x86, 0xb8}: "AcerWMI", efi.GUID{0x7e, 0xb5, 0xad, 0xe0, 0xb6, 0xe1, 0xec, 0x44, 0xbf, 0x2e, 0x84, 0x28, 0x74, 0xa2, 0x6c, 0x83}: "LenovoWmaUsbDxe", efi.GUID{0x7e, 0xc8, 0x22, 0xa2, 0xec, 0x68, 0x45, 0x45, 0xa8, 0x6b, 0xa8, 0x90, 0x31, 0xa4, 0x5e, 0x82}: "OemCleanFlag", efi.GUID{0x7e, 0xcd, 0x47, 0xb1, 0xd3, 0x17, 0x66, 0x4d, 0xab, 0x39, 0x47, 0x2b, 0x1d, 0xa6, 0x59, 0xc1}: "UefiTableDxe", efi.GUID{0x7e, 0xce, 0x78, 0xeb, 0x07, 0x41, 0xf5, 0x4e, 0x86, 0xcb, 0x22, 0xe8, 0xd8, 0xac, 0x49, 0x50}: "DellSmmAsfInit", efi.GUID{0x7e, 0xd3, 0x39, 0xf6, 0xa1, 0x02, 0xa8, 0x4b, 0xad, 0x17, 0x5c, 0x6c, 0x6e, 0x5e, 0x93, 0x22}: "CbsSetupDxe", efi.GUID{0x7e, 0xd4, 0x99, 0xdc, 0x08, 0x68, 0x3a, 0x4f, 0xa1, 0xe4, 0xbe, 0x7a, 0x9a, 0xdc, 0x59, 0xff}: "FjIbvSfuControlAbstractionDxeProtocol", efi.GUID{0x7e, 0xe2, 0x3e, 0x3b, 0xef, 0x9b, 0x3f, 0x46, 0xb0, 0x3a, 0xa5, 0xc9, 0xa0, 0x98, 0xb7, 0xb5}: "CpuOverclockingConfigGuid", efi.GUID{0x7e, 0xe4, 0x95, 0x44, 0xa9, 0x42, 0x07, 0x40, 0x8c, 0x17, 0xb6, 0x66, 0x4f, 0x90, 0x9d, 0x04}: "BlockIoDxe", efi.GUID{0x7e, 0xeb, 0xfd, 0x26, 0xaf, 0xb8, 0xcf, 0x4c, 0xaa, 0x97, 0x02, 0x63, 0x3c, 0xe4, 0x8c, 0xa7}: "EfiProcessorSubClassGuid", efi.GUID{0x7e, 0xf3, 0xe3, 0x5a, 0xae, 0x4e, 0xae, 0x41, 0x82, 0x40, 0x35, 0x46, 0x5b, 0x5e, 0x81, 0xeb}: "CORE_DXE", efi.GUID{0x7e, 0xfc, 0xd6, 0x18, 0x62, 0xd8, 0xde, 0x48, 0xb5, 0x6d, 0xfa, 0x31, 0x14, 0x21, 0xbf, 0x29}: "EfiTpmCallBackProtocol", efi.GUID{0x7e, 0xfc, 0xdb, 0x56, 0x04, 0x4d, 0x3d, 0xc7, 0x8a, 0x5e, 0x73, 0x81, 0x9b, 0xd2, 0x3c, 0xa6}: "AmdSocSp3r3CpDxe", efi.GUID{0x7f, 0x00, 0x19, 0x92, 0x94, 0xd0, 0x61, 0x47, 0x9e, 0xb5, 0xc1, 0x4c, 0xf9, 0xd7, 0x16, 0xc0}: "FlashInfoPei", efi.GUID{0x7f, 0x07, 0xf3, 0x69, 0x4e, 0x4d, 0xde, 0x4f, 0xbb, 0xe3, 0x9d, 0xcd, 0xb1, 0x20, 0xf3, 0x9b}: "UsbOcUpdateDxeFischerLakeRP", efi.GUID{0x7f, 0x0f, 0x1b, 0x14, 0x41, 0xe2, 0x59, 0x46, 0x91, 0xbf, 0x45, 0x05, 0xd7, 0x9a, 0x77, 0x14}: "FjCpuInfo", efi.GUID{0x7f, 0x12, 0x46, 0xcd, 0x45, 0x92, 0x21, 0x45, 0xbb, 0x89, 0xa6, 0xd8, 0x5d, 0x68, 0xfc, 0x13}: "LegacyTableCompatibly", efi.GUID{0x7f, 0x15, 0x54, 0x6d, 0xef, 0x94, 0xaf, 0x41, 0xb3, 0x4c, 0xdc, 0x76, 0x11, 0xe6, 0xd4, 0x83}: "Common_SxApp", efi.GUID{0x7f, 0x1a, 0xad, 0xc2, 0xdf, 0xd9, 0x38, 0x46, 0x8d, 0xac, 0x01, 0x59, 0x96, 0xc8, 0x88, 0x57}: "ScPolicyHobGuid", efi.GUID{0x7f, 0x2b, 0xeb, 0x54, 0xc3, 0x0c, 0x1b, 0x4e, 0xb0, 0x3d, 0xe8, 0x17, 0x56, 0xf6, 0x42, 0xb9}: "GfxInitPei", efi.GUID{0x7f, 0x37, 0x45, 0xbe, 0x62, 0xf8, 0xbd, 0x42, 0x88, 0x86, 0x31, 0x4c, 0x67, 0xbc, 0x16, 0xe4}: "LfcWmiServiceSmm", efi.GUID{0x7f, 0x3d, 0x47, 0xda, 0x31, 0x4b, 0x63, 0x4d, 0x92, 0xb7, 0x3d, 0x90, 0x5e, 0xf8, 0x4b, 0x84}: "AmiSmmBufferValidationProtocol", efi.GUID{0x7f, 0x43, 0xf1, 0xbe, 0xeb, 0x8a, 0x6c, 0x43, 0x8d, 0x7c, 0x08, 0xba, 0x5f, 0xe4, 0x49, 0xaf}: "FjDtSetupServicesDxe", efi.GUID{0x7f, 0x49, 0x40, 0x56, 0x5e, 0x64, 0x11, 0x46, 0xb9, 0x15, 0xe6, 0x82, 0xc8, 0xbd, 0x47, 0x83}: "AsrockClockGenDxe", efi.GUID{0x7f, 0x4a, 0x32, 0xaa, 0x76, 0xa6, 0xdc, 0x46, 0xa3, 0x5d, 0xa4, 0x04, 0x22, 0x6a, 0x7a, 0x04}: "ReprotErrorCodeStatus", efi.GUID{0x7f, 0x4a, 0x36, 0xe4, 0x25, 0xf8, 0x0e, 0x43, 0x9d, 0x3a, 0x9c, 0x9b, 0xe6, 0x81, 0x7c, 0xa5}: "EdkiiLinuxTerm", efi.GUID{0x7f, 0x56, 0x03, 0x7c, 0x40, 0xc8, 0x9c, 0x4e, 0xbf, 0xcc, 0x65, 0x27, 0x93, 0xc2, 0xfb, 0xfb}: "DpfServicesDxe", efi.GUID{0x7f, 0x5c, 0x17, 0x51, 0x60, 0x03, 0x42, 0x40, 0xa3, 0xf2, 0xf1, 0x72, 0x22, 0xb4, 0x00, 0xac}: "SbFlashControllerSmm", efi.GUID{0x7f, 0x5e, 0x9d, 0x2a, 0x3a, 0xa4, 0xc7, 0x4f, 0xa2, 0x5e, 0x6e, 0x28, 0xd4, 0x12, 0xfa, 0x6f}: "efi_pop_RT", efi.GUID{0x7f, 0x63, 0xc2, 0x63, 0x76, 0xf4, 0x48, 0x4d, 0x96, 0xc5, 0xff, 0x0b, 0xd0, 0x11, 0x47, 0xab}: "PasswordMeasurementDxe", efi.GUID{0x7f, 0x71, 0xe7, 0x44, 0x5e, 0x07, 0x0d, 0x45, 0x98, 0xd5, 0x54, 0xeb, 0xbb, 0x40, 0x70, 0x1e}: "EfiPlatformTypeLightningRidgeExecB3Protocol", efi.GUID{0x7f, 0x72, 0x80, 0x3c, 0x46, 0x68, 0xbc, 0x41, 0x8e, 0x54, 0x01, 0x07, 0xc1, 0x0a, 0xcd, 0xf0}: "FchI3cHciDxe", efi.GUID{0x7f, 0x7f, 0x3a, 0xee, 0x81, 0x38, 0xa2, 0x4e, 0xb3, 0x8f, 0x5d, 0x9c, 0x98, 0xdb, 0x4a, 0xf1}: "FjSsdtDxe", efi.GUID{0x7f, 0x80, 0x6e, 0xaa, 0xc8, 0x88, 0x37, 0x42, 0xee, 0x25, 0xaa, 0xc4, 0x5b, 0xf1, 0x88, 0x04}: "EfiIntelLanDriver", efi.GUID{0x7f, 0x80, 0x6e, 0xce, 0xc8, 0x77, 0x37, 0x42, 0xbf, 0x25, 0xf9, 0xc4, 0x5f, 0xd1, 0x88, 0x04}: "EfiLanDriver", efi.GUID{0x7f, 0x82, 0xec, 0x88, 0xde, 0x6c, 0xdd, 0x41, 0x8b, 0x55, 0xbd, 0x62, 0x44, 0x9c, 0x4f, 0x1b}: "VbtMipiPanel2Guid", efi.GUID{0x7f, 0x86, 0xaa, 0xe2, 0xde, 0x70, 0x2a, 0x49, 0xb2, 0x5a, 0x77, 0xb3, 0x05, 0x50, 0x24, 0xcb}: "CbsBaseDxePHX", efi.GUID{0x7f, 0x87, 0x6c, 0x10, 0xba, 0xc2, 0x46, 0x4c, 0x87, 0x6c, 0xbd, 0xfe, 0x61, 0x71, 0xcd, 0x7e}: "DebugCommunicationLibUsb3Pei", efi.GUID{0x7f, 0x92, 0x7e, 0xe6, 0x40, 0x61, 0x7f, 0x40, 0x9a, 0x3e, 0x4d, 0xbd, 0x13, 0x19, 0x0f, 0x2c}: "IdeDeviceDetect", efi.GUID{0x7f, 0xa0, 0x58, 0x2d, 0xa7, 0x38, 0x0b, 0x49, 0x86, 0xa0, 0xd3, 0x9f, 0x60, 0xed, 0x79, 0x39}: "FjGabiEntryDxeBin", efi.GUID{0x7f, 0xa2, 0x70, 0xc7, 0x6a, 0x95, 0x7a, 0x49, 0x85, 0x48, 0xe0, 0x61, 0x97, 0x58, 0x8b, 0xf6}: "RecoveryOnFatNvmeDisk", efi.GUID{0x7f, 0xa6, 0x32, 0xd4, 0xdc, 0x14, 0x4b, 0x48, 0xb3, 0xbb, 0x3f, 0x02, 0x91, 0x84, 0x93, 0x27}: "EfiDiskInfoProtocolGuid", efi.GUID{0x7f, 0xa9, 0xe5, 0x12, 0xd1, 0x98, 0x1f, 0x4c, 0x87, 0xda, 0xfb, 0x67, 0xcf, 0xfb, 0xd9, 0xda}: "EfiLanDriverDxe", efi.GUID{0x7f, 0xb4, 0x80, 0x81, 0xb0, 0xeb, 0x03, 0x43, 0xa3, 0x89, 0x74, 0xfd, 0x15, 0x35, 0x6b, 0xa6}: "DebugLogDxe", efi.GUID{0x7f, 0xba, 0x7a, 0xbe, 0x8f, 0x93, 0xd5, 0x48, 0xa5, 0x7e, 0xe5, 0x5e, 0x84, 0x36, 0x4e, 0xe3}: "StaticSkuDataDxeGnrwsERB", efi.GUID{0x7f, 0xbf, 0x67, 0xe7, 0xb6, 0x4d, 0x34, 0x5b, 0x10, 0x11, 0x4f, 0xbe, 0x4c, 0xa7, 0xaf, 0xd2}: "VlvMmioPolicyPpiGuid", efi.GUID{0x7f, 0xc3, 0x34, 0xaf, 0xd7, 0xf5, 0xf7, 0x47, 0xb5, 0x86, 0xb5, 0x93, 0xcb, 0x33, 0x8c, 0x35}: "ClientronSecureBootDxe", efi.GUID{0x7f, 0xcb, 0xa2, 0xd6, 0x18, 0x6a, 0x2f, 0x4e, 0xb4, 0x3b, 0x99, 0x20, 0xa7, 0x33, 0x70, 0x0a}: "DxeCore", efi.GUID{0x7f, 0xcd, 0x85, 0x1d, 0x3d, 0xf4, 0xd2, 0x11, 0x9a, 0x0c, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d}: "EfiUnicodeCollationProtocolGuid", efi.GUID{0x7f, 0xd3, 0x46, 0xf7, 0xc6, 0xf6, 0xc0, 0x43, 0x94, 0xdb, 0x46, 0x6f, 0x5f, 0x10, 0xe0, 0x30}: "LenovoFingerprintSmm", efi.GUID{0x7f, 0xd6, 0x99, 0xf0, 0xae, 0x71, 0x36, 0x4c, 0xb2, 0xa3, 0xdc, 0xeb, 0x0e, 0xb2, 0xb7, 0xd8}: "WatchdogTimer", efi.GUID{0x7f, 0xd8, 0x9f, 0x09, 0x39, 0x4b, 0xf6, 0x43, 0xab, 0x47, 0xf8, 0x01, 0xf9, 0x92, 0x09, 0xf7}: "DellDcpRegister", efi.GUID{0x7f, 0xd9, 0x39, 0xd6, 0xcb, 0x5f, 0xcb, 0x42, 0x87, 0xc2, 0x88, 0x0a, 0x86, 0xf6, 0x7c, 0xf2}: "CbsBasePeiBRH", efi.GUID{0x7f, 0xda, 0x46, 0xd4, 0x99, 0xf2, 0x11, 0x49, 0x8c, 0x91, 0x91, 0xcc, 0xf5, 0xf8, 0xa7, 0x52}: "SDBadgingSupport", efi.GUID{0x7f, 0xe7, 0x75, 0x1e, 0x15, 0x8a, 0x53, 0x46, 0x96, 0x4d, 0x54, 0x2c, 0x15, 0x7e, 0xf4, 0x0a}: "SgPeiPolicyInit", efi.GUID{0x7f, 0xeb, 0xcf, 0xc7, 0xfd, 0xae, 0x1d, 0x42, 0xbc, 0xdf, 0x03, 0x33, 0x29, 0xab, 0x8b, 0x4c}: "GetVariableHookPei", efi.GUID{0x7f, 0xf1, 0x8b, 0x42, 0x16, 0x61, 0x59, 0x4d, 0x84, 0x3a, 0x40, 0x04, 0x70, 0xd1, 0x78, 0x64}: "DellSpdSmbusAccessSmm", efi.GUID{0x7f, 0xf9, 0x58, 0x33, 0xbe, 0x63, 0xa8, 0x47, 0x89, 0xbb, 0xed, 0x63, 0x61, 0x2e, 0x6c, 0x9f}: "LinUptpPure", efi.GUID{0x7f, 0xfb, 0x29, 0xaf, 0xb7, 0xea, 0x11, 0x42, 0x96, 0x84, 0xce, 0x8d, 0x4a, 0x47, 0xa0, 0xc7}: "StaticSkuDataDxeExpertWorkStationRP", efi.GUID{0x80, 0x00, 0x83, 0x20, 0x28, 0xcc, 0x69, 0x41, 0x98, 0x36, 0x7f, 0x42, 0xb8, 0xd0, 0xc8, 0xc9}: "GraphicsOutputDxe", efi.GUID{0x80, 0x05, 0x00, 0xf8, 0xab, 0x44, 0x1f, 0x44, 0x86, 0xb4, 0xda, 0x3c, 0xa0, 0x99, 0xee, 0xbb}: "H19RecordLogSmm", efi.GUID{0x80, 0x0e, 0x06, 0x80, 0x20, 0x2c, 0x9e, 0x42, 0x94, 0x6b, 0x1c, 0x89, 0x09, 0x7f, 0x0b, 0xed}: "VariableServiceDxe", efi.GUID{0x80, 0x10, 0x63, 0x61, 0x73, 0x55, 0x10, 0x43, 0x9a, 0xc5, 0x0b, 0xaf, 0xc9, 0x5e, 0x1c, 0x1b}: "AmdCcxZen3Smm", efi.GUID{0x80, 0x10, 0xa0, 0x37, 0x46, 0x23, 0x54, 0x4a, 0x99, 0x00, 0xd2, 0x2b, 0x7b, 0x68, 0x7c, 0x22}: "SmmPciRbIo", efi.GUID{0x80, 0x10, 0xd1, 0x92, 0x6f, 0x49, 0x95, 0x4d, 0xbe, 0x7e, 0x03, 0x74, 0x88, 0x38, 0x2b, 0x0a}: "EfiStatusCodeDataTypeStringGuid", efi.GUID{0x80, 0x1c, 0x77, 0xca, 0xd9, 0x02, 0xe4, 0x11, 0xa1, 0x95, 0x78, 0xe7, 0xd1, 0xaf, 0x36, 0xd1}: "HpNetworkBiosUpdateWmiSmm", efi.GUID{0x80, 0x20, 0x75, 0xdd, 0x6c, 0xdf, 0x33, 0x45, 0xad, 0x66, 0x62, 0x13, 0xee, 0x68, 0x1f, 0x84}: "ThermalDxe", efi.GUID{0x80, 0x22, 0xf7, 0x91, 0xcc, 0x36, 0xf3, 0x4b, 0xac, 0x40, 0xbc, 0x02, 0x9e, 0x4b, 0x31, 0x77}: "inf", efi.GUID{0x80, 0x29, 0x01, 0xfc, 0xf9, 0xd6, 0x41, 0x47, 0xb6, 0x60, 0x32, 0xd0, 0x4e, 0x26, 0x9b, 0xd8}: "DellFmpPm", efi.GUID{0x80, 0x2e, 0x32, 0xcc, 0x08, 0x6a, 0x80, 0x4e, 0x8b, 0xca, 0x01, 0xa8, 0x4b, 0xa6, 0xcf, 0xe4}: "PciHostBridge2", efi.GUID{0x80, 0x30, 0x99, 0xee, 0x97, 0x51, 0x4e, 0x4d, 0xb6, 0x3c, 0xf1, 0xf7, 0x41, 0x3e, 0x33, 0xce}: "CpuDxe", efi.GUID{0x80, 0x38, 0xcf, 0x41, 0x60, 0x05, 0x01, 0x4d, 0x86, 0x24, 0x3a, 0x0a, 0x47, 0x89, 0x45, 0x74}: "DetectDevice", efi.GUID{0x80, 0x3c, 0x1c, 0x8a, 0x91, 0xa8, 0xea, 0x4e, 0x91, 0x97, 0x66, 0x35, 0xe2, 0x77, 0xc4, 0xdb}: "HpVrocDxe", efi.GUID{0x80, 0x46, 0xb1, 0x3a, 0x3f, 0x5d, 0x4d, 0x4a, 0xbc, 0xdc, 0xcc, 0x38, 0x00, 0x18, 0xc7, 0xf7}: "EfiDiskInfoNvmeInterfaceGuid", efi.GUID{0x80, 0x49, 0x4b, 0x95, 0x90, 0xff, 0x02, 0x4b, 0x97, 0x7f, 0x91, 0x29, 0x22, 0x51, 0xa3, 0xe3}: "DellAutoBifurcateBoardCfgDxe", efi.GUID{0x80, 0x52, 0xd7, 0x07, 0xd4, 0x27, 0x69, 0x4d, 0x90, 0xd0, 0x56, 0x43, 0xe2, 0x38, 0xb3, 0x41}: "EfiPciPlatformProtocolGuid", efi.GUID{0x80, 0x5f, 0x98, 0xf5, 0x55, 0xcf, 0xad, 0x46, 0x8c, 0xcb, 0xd4, 0x9b, 0xf9, 0x16, 0x8a, 0xc4}: "AmiRedfishVlan", efi.GUID{0x80, 0x61, 0xbe, 0x21, 0x3a, 0x73, 0x3b, 0x44, 0xdf, 0x46, 0x41, 0xc0, 0x08, 0x04, 0x76, 0x87}: "AmdNbioPciePei", efi.GUID{0x80, 0x65, 0x1f, 0x0c, 0x57, 0x9c, 0x32, 0x4a, 0x84, 0x99, 0x22, 0x7c, 0x2e, 0xa2, 0x7e, 0x7d}: "DellSmmServicesProtocol", efi.GUID{0x80, 0x6b, 0x0b, 0xd4, 0xd5, 0x97, 0x82, 0x42, 0xbb, 0x1d, 0x22, 0x3a, 0x16, 0x91, 0x80, 0x58}: "EfiNvdimmLabelProtocolGuid", efi.GUID{0x80, 0x6c, 0xa7, 0x04, 0xb9, 0x06, 0x5e, 0x44, 0xb7, 0x3e, 0xcb, 0x8c, 0x61, 0xa6, 0xa9, 0x64}: "SIO791", efi.GUID{0x80, 0x6d, 0x91, 0x7d, 0xb1, 0x5b, 0x8c, 0x45, 0xa4, 0x8f, 0xe2, 0x5f, 0xdd, 0x51, 0xef, 0x94}: "EfiTtyTermGuid", efi.GUID{0x80, 0x7d, 0x4b, 0xd7, 0x7f, 0x4b, 0x73, 0x4a, 0x8a, 0x55, 0x4b, 0x59, 0xd7, 0xde, 0x74, 0x7a}: "AmdResetManager", efi.GUID{0x80, 0x81, 0x8a, 0xe8, 0xda, 0x16, 0x1b, 0x4a, 0x90, 0x8c, 0x3e, 0x51, 0x76, 0x86, 0xf1, 0xfa}: "WifiProvisioningSmm", efi.GUID{0x80, 0xa1, 0xe9, 0x4d, 0x40, 0xfa, 0x99, 0x48, 0xab, 0x66, 0x4e, 0x63, 0x25, 0xb0, 0x31, 0x5d}: "GpioExpanderDxe", efi.GUID{0x80, 0xaa, 0xb7, 0x30, 0xb5, 0x44, 0x7e, 0x47, 0x8a, 0xc3, 0x21, 0x49, 0x3f, 0x5b, 0x9d, 0x43}: "FjClearRtcDayLight", efi.GUID{0x80, 0xad, 0x3e, 0x13, 0x48, 0xfb, 0xe5, 0x11, 0x93, 0x9d, 0x64, 0x31, 0x50, 0x3b, 0x93, 0x9a}: "TransparentUnlockDrv", efi.GUID{0x80, 0xae, 0x6c, 0x16, 0xde, 0x98, 0xb9, 0x45, 0xbb, 0x47, 0x85, 0x30, 0x71, 0x45, 0xd8, 0x74}: "AmdNbioGfxRMBPei", efi.GUID{0x80, 0xb0, 0xf9, 0x43, 0x02, 0xc9, 0x37, 0x47, 0xb3, 0x06, 0x48, 0x70, 0x50, 0xf7, 0xca, 0xa5}: "fjHddEraseApp64", efi.GUID{0x80, 0xc0, 0x9f, 0x46, 0xc1, 0xae, 0xdf, 0x11, 0x92, 0x7c, 0x00, 0x02, 0xa5, 0xd5, 0xc5, 0x1b}: "ArmPlatformPrePeiCore", efi.GUID{0x80, 0xc7, 0x01, 0x99, 0x33, 0x3e, 0x18, 0x4d, 0xb5, 0x4a, 0xcf, 0x72, 0x34, 0xaf, 0xdb, 0x50}: "DellPolicySmm", efi.GUID{0x80, 0xc8, 0x7b, 0x3c, 0xf8, 0x41, 0x69, 0x48, 0xae, 0xfc, 0x87, 0x0a, 0x3e, 0xd2, 0x82, 0x99}: "EfiHeciProtocolGuid", efi.GUID{0x80, 0xca, 0x1c, 0x08, 0x21, 0xae, 0xc8, 0xaf, 0x1a, 0xc8, 0x30, 0x91, 0xa8, 0xf1, 0xcb, 0xc5}: "SmcOobPlatformPolicySmm", efi.GUID{0x80, 0xcd, 0x11, 0xa1, 0x5d, 0xcb, 0x2b, 0x4e, 0xa3, 0x27, 0x04, 0xea, 0x26, 0xee, 0x0e, 0x10}: "OtaPfrDxeDriver", efi.GUID{0x80, 0xcf, 0xa1, 0x80, 0x5d, 0xa8, 0x1a, 0x4c, 0x91, 0x31, 0x1f, 0xef, 0xc5, 0x95, 0x96, 0x18}: "AsusPcieCardReaderUpdate", efi.GUID{0x80, 0xd3, 0x6f, 0x6b, 0x55, 0x2c, 0xc6, 0x42, 0x98, 0xbf, 0xcb, 0xbc, 0x5a, 0x9a, 0xa6, 0x66}: "SocketSetup", efi.GUID{0x80, 0xd3, 0xf4, 0x8f, 0x91, 0x88, 0x95, 0x44, 0xaf, 0x40, 0x71, 0x6c, 0xd5, 0x5c, 0x07, 0xe8}: "LEMPostLogoDIYDxe", efi.GUID{0x80, 0xdd, 0x5d, 0x08, 0x41, 0xce, 0xa8, 0x4f, 0xb2, 0x98, 0x60, 0x71, 0xe8, 0xf6, 0x2b, 0xc5}: "SmcOobPlatformPolicyDxe", efi.GUID{0x80, 0xe3, 0x9f, 0x7c, 0xd2, 0xcf, 0xf0, 0x4b, 0x9b, 0x96, 0xe5, 0xdf, 0x40, 0x63, 0x5e, 0xcb}: "RealtekGopDriver", efi.GUID{0x80, 0xe8, 0x42, 0x51, 0xac, 0x97, 0xb3, 0x4a, 0x8f, 0x06, 0xf3, 0x67, 0x65, 0xdf, 0x70, 0x66}: "OemACRecoveryDxe", efi.GUID{0x80, 0xeb, 0x2c, 0xc6, 0x40, 0xfb, 0x46, 0x4a, 0xa5, 0xe5, 0xc1, 0xd9, 0x97, 0xc3, 0x6d, 0xfc}: "CapsuleLoaderTriggerDxe", efi.GUID{0x80, 0xed, 0xc7, 0x7c, 0x68, 0x9a, 0x81, 0x47, 0x80, 0xe4, 0xda, 0x16, 0x99, 0x10, 0x5a, 0xfe}: "EfiLightIsaIoProtocol", efi.GUID{0x80, 0xf0, 0xda, 0xbc, 0xde, 0x1b, 0x22, 0x4e, 0xae, 0x6a, 0x43, 0x54, 0x1e, 0x12, 0x8e, 0xc4}: "EfiIsaHcProtocolGuid", efi.GUID{0x80, 0xf5, 0x4f, 0x4f, 0xa0, 0xb8, 0x32, 0x43, 0xa6, 0xb0, 0xe2, 0xe5, 0x68, 0xe3, 0x6c, 0x9c}: "ASFVerbosity", efi.GUID{0x80, 0xf9, 0x74, 0x0b, 0x25, 0x23, 0xf3, 0x4a, 0x96, 0x64, 0x0c, 0x3a, 0xbe, 0x23, 0x7d, 0x52}: "BootPerformanceLogSmm", efi.GUID{0x80, 0xff, 0x0b, 0xee, 0x33, 0x2b, 0x05, 0x40, 0x8e, 0xf1, 0x3f, 0x9b, 0x23, 0xc2, 0x51, 0x36}: "GetCpuInfo", efi.GUID{0x81, 0x00, 0x13, 0x43, 0xd6, 0x60, 0x29, 0x4c, 0xbb, 0xc0, 0xab, 0x0b, 0x5b, 0xb9, 0x04, 0x83}: "DellMfgAuthenticationSmm", efi.GUID{0x81, 0x01, 0x5b, 0x39, 0xb9, 0xc9, 0x2e, 0x4e, 0xa8, 0x2e, 0x6b, 0x0d, 0x02, 0x71, 0x19, 0xf9}: "AmdCcxZen5Smm", efi.GUID{0x81, 0x14, 0x23, 0xd5, 0x4e, 0x17, 0x6f, 0x43, 0x8d, 0xf7, 0x9a, 0x6d, 0x8a, 0x27, 0x23, 0x2a}: "NbSspRouting", efi.GUID{0x81, 0x15, 0xb3, 0xbb, 0x5a, 0x85, 0xd7, 0x44, 0xa5, 0x50, 0x8a, 0x58, 0x5d, 0x9b, 0x2d, 0xe9}: "BaseCryptLibRuntimeCryptProtocol", efi.GUID{0x81, 0x23, 0x7e, 0x06, 0x34, 0x72, 0x98, 0x47, 0xb4, 0x9c, 0xd5, 0xfe, 0xcb, 0xff, 0x6d, 0x07}: "VariableAuthSmmRuntimeDxe", efi.GUID{0x81, 0x26, 0x52, 0xba, 0x67, 0xcf, 0xe2, 0x49, 0x92, 0x5f, 0xf6, 0x0b, 0x32, 0x81, 0x90, 0x39}: "FspInitNotify", efi.GUID{0x81, 0x2f, 0x65, 0xe5, 0x09, 0xec, 0x9c, 0x47, 0xba, 0xff, 0xe7, 0x56, 0xf1, 0x82, 0x90, 0x16}: "DirtyShutdownPei", efi.GUID{0x81, 0x30, 0x66, 0xf6, 0xd1, 0x02, 0x52, 0x4f, 0xb5, 0x7c, 0xfd, 0xad, 0x22, 0x49, 0x41, 0xd4}: "AmdMemSmbiosV2RvPei", efi.GUID{0x81, 0x32, 0x04, 0xcc, 0x2f, 0x11, 0x1c, 0x44, 0x80, 0x5d, 0x6d, 0x8d, 0xb3, 0x65, 0x96, 0x18}: "BbstableHook", efi.GUID{0x81, 0x35, 0x24, 0xcc, 0x2f, 0x11, 0x1c, 0x44, 0x81, 0x5d, 0x6d, 0x8d, 0xb3, 0x65, 0x96, 0x19}: "A01D2DRecoveryDriver", efi.GUID{0x81, 0x36, 0x05, 0x58, 0xf3, 0x13, 0xf6, 0x47, 0xb1, 0x37, 0xcd, 0xb3, 0xe8, 0x88, 0xd9, 0xa4}: "ExtendedDataGuid", efi.GUID{0x81, 0x3b, 0x6a, 0x55, 0x9d, 0x39, 0x51, 0x49, 0x82, 0xc5, 0xbc, 0x72, 0xfe, 0x5e, 0xfb, 0xcb}: "FjMfgFeaturesDxe", efi.GUID{0x81, 0x3e, 0xae, 0xb0, 0xb0, 0xc6, 0x35, 0x4d, 0xad, 0x51, 0x91, 0x17, 0xe0, 0x65, 0x1e, 0xa3}: "PlatformEmmcHs400TuningInfoGuid", efi.GUID{0x81, 0x3f, 0xb4, 0x91, 0xca, 0xdf, 0xba, 0x4e, 0x93, 0xe1, 0xfa, 0xd5, 0x01, 0xe8, 0xf6, 0xd2}: "AmiScceMMCEnabledPpiGuid", efi.GUID{0x81, 0x42, 0xd5, 0xee, 0x11, 0x1c, 0x58, 0x43, 0xbf, 0x5a, 0xf6, 0x49, 0x95, 0xfb, 0xf1, 0x1b}: "FmpDxe", efi.GUID{0x81, 0x43, 0x9c, 0xad, 0xde, 0x1e, 0x0c, 0x43, 0x8d, 0x42, 0x23, 0x76, 0x7c, 0x46, 0x5d, 0x52}: "EfiUsbKeyboardConnectGuid", efi.GUID{0x81, 0x4b, 0x74, 0xe0, 0x13, 0x95, 0xcd, 0x49, 0x8c, 0xea, 0xe9, 0x24, 0x5e, 0x70, 0x39, 0xda}: "EfiSmmGpiDispatchProtocolGuid", efi.GUID{0x81, 0x4c, 0x28, 0x5c, 0xae, 0xb0, 0x87, 0x4e, 0xa3, 0x22, 0xb0, 0x4c, 0x85, 0x62, 0x43, 0x23}: "EfiEventNotificationTypeSei", efi.GUID{0x81, 0x4d, 0x5d, 0xcc, 0xf5, 0xe9, 0x87, 0x43, 0x92, 0x07, 0xd0, 0xa3, 0x5d, 0x3e, 0x75, 0x75}: "AsusBiosDxeCrashFree", efi.GUID{0x81, 0x56, 0x70, 0xed, 0x49, 0x16, 0xbb, 0x4b, 0x80, 0x91, 0xe3, 0x6f, 0x52, 0x52, 0x37, 0x61}: "StandbyImmediate", efi.GUID{0x81, 0x71, 0x6e, 0x20, 0x35, 0xa9, 0xaf, 0x4b, 0x94, 0x9f, 0xa8, 0x75, 0x13, 0x6c, 0xd4, 0x6f}: "PldmBcc", efi.GUID{0x81, 0x75, 0x77, 0x11, 0x67, 0x2b, 0x75, 0x40, 0x8e, 0xb4, 0xf6, 0x91, 0xa4, 0x7e, 0xce, 0xc7}: "ProcMemInit", efi.GUID{0x81, 0x88, 0x36, 0x01, 0xad, 0xc4, 0x1d, 0x4b, 0xb6, 0x31, 0xd5, 0x7a, 0x8e, 0xc8, 0xdb, 0x6b}: "AmiGlobalVariableGuid", efi.GUID{0x81, 0x8c, 0x92, 0xa4, 0x03, 0x07, 0xd7, 0x4a, 0xa3, 0x2b, 0x75, 0x25, 0xbc, 0x3f, 0xe1, 0xf5}: "LenovoSecureUpdateDxe", efi.GUID{0x81, 0x9c, 0x06, 0xc3, 0x17, 0x67, 0xb6, 0x4f, 0xb6, 0x46, 0x04, 0x21, 0x48, 0x94, 0xba, 0xb4}: "SmcSwSmiFlashDxe", efi.GUID{0x81, 0x9f, 0x75, 0x0d, 0xb0, 0x43, 0x0a, 0x4e, 0xb6, 0x13, 0x61, 0x55, 0x0c, 0x61, 0x57, 0xc2}: "SystemGraphicsOutputBltPipeDxe", efi.GUID{0x81, 0xab, 0x1e, 0x1c, 0x29, 0x92, 0xac, 0x42, 0xb9, 0x40, 0x75, 0x7c, 0x49, 0x8a, 0x09, 0xed}: "AmiTseOemPortingVar22", efi.GUID{0x81, 0xad, 0x18, 0x07, 0x6a, 0xf2, 0x50, 0x48, 0xa6, 0xec, 0xf2, 0x68, 0xe3, 0x09, 0xd7, 0x07}: "Tpm20PlatformDxe", efi.GUID{0x81, 0xb8, 0x7d, 0x8c, 0x76, 0xda, 0x86, 0x44, 0x86, 0x54, 0x81, 0x52, 0xee, 0x34, 0x70, 0xa3}: "MuVarPolicyFoundationDxe", efi.GUID{0x81, 0xbe, 0x19, 0x6f, 0x81, 0x73, 0xf3, 0x4a, 0xbb, 0x26, 0x55, 0x33, 0x11, 0x72, 0x6e, 0x34}: "AsusAmlBuffSmi", efi.GUID{0x81, 0xc1, 0x44, 0x76, 0x6e, 0xfa, 0xda, 0x46, 0x80, 0xcb, 0x04, 0xb9, 0x90, 0x40, 0x62, 0xe8}: "EfiPathFileName", efi.GUID{0x81, 0xda, 0x5e, 0xd3, 0xd0, 0x07, 0x42, 0x41, 0x94, 0x09, 0xb0, 0x72, 0x33, 0xed, 0x2d, 0x07}: "CseSpiSelectPpiGuid", efi.GUID{0x81, 0xe3, 0x58, 0x2e, 0x7c, 0x3d, 0xd4, 0x43, 0x9a, 0x89, 0x8d, 0x33, 0x13, 0x62, 0xa2, 0xc0}: "BiosPostLogoDiyDxe", efi.GUID{0x81, 0xef, 0x17, 0x7d, 0xc8, 0x57, 0x10, 0x42, 0x95, 0x7c, 0x6f, 0xda, 0xa8, 0xea, 0x1d, 0xd6}: "PciHotPlugDxe", efi.GUID{0x81, 0xf4, 0xa1, 0xb7, 0x98, 0x12, 0x3a, 0x47, 0xa8, 0x32, 0x4d, 0x8a, 0xb8, 0x33, 0x31, 0xcd}: "OemSetup", efi.GUID{0x81, 0xf6, 0xe5, 0x79, 0xf4, 0x59, 0x15, 0x44, 0x8e, 0x46, 0x8c, 0x22, 0x3c, 0xf5, 0x17, 0xe6}: "EfiBootMediaHobGuid", efi.GUID{0x82, 0x0a, 0x2e, 0xd2, 0x56, 0xc2, 0x2b, 0x47, 0x98, 0x20, 0xf7, 0xba, 0x71, 0x27, 0xfb, 0xe7}: "OtaDxeDriver", efi.GUID{0x82, 0x0c, 0x9b, 0xd9, 0xb0, 0x9b, 0x8d, 0x4b, 0x95, 0x45, 0xa2, 0x67, 0x03, 0x75, 0xa9, 0x31}: "AfuCapsuleOnDiskSmm", efi.GUID{0x82, 0x0f, 0x2a, 0x3c, 0xdf, 0x36, 0x02, 0x47, 0xb0, 0xa3, 0x5a, 0x5b, 0x0a, 0x0f, 0x89, 0xc1}: "OemSmm", efi.GUID{0x82, 0x14, 0xce, 0x53, 0x8d, 0x8b, 0x24, 0x4b, 0x88, 0x8a, 0xc2, 0xbd, 0xa1, 0x9c, 0xf4, 0xa1}: "UefiToPublicWmiRouter", efi.GUID{0x82, 0x15, 0xd7, 0x77, 0x74, 0x42, 0xc5, 0x0e, 0x36, 0xcd, 0x65, 0xa2, 0xcc, 0x4f, 0xd6, 0x63}: "DellWsmtEnforceSmm", efi.GUID{0x82, 0x16, 0xad, 0xa0, 0x5c, 0xae, 0x9c, 0x4a, 0x91, 0x95, 0xf2, 0x71, 0x58, 0x5c, 0xe0, 0x7e}: "RSTeRaidDriver", efi.GUID{0x82, 0x1e, 0xbc, 0x81, 0xb2, 0xd8, 0x44, 0x44, 0xa3, 0x36, 0xe8, 0x3d, 0x80, 0x65, 0x4a, 0x6c}: "DynamicPowerSwitch", efi.GUID{0x82, 0x29, 0x62, 0xc0, 0x0a, 0xa3, 0xa5, 0x48, 0x81, 0x50, 0x5a, 0xbf, 0x41, 0x91, 0x05, 0x6f}: "LEMBootModeDxeSmm", efi.GUID{0x82, 0x2d, 0xc0, 0x3c, 0x0f, 0xd4, 0x97, 0x48, 0x96, 0xef, 0x2f, 0x35, 0xb3, 0xaa, 0xa0, 0x96}: "I2cMaster", efi.GUID{0x82, 0x32, 0x1e, 0xde, 0xd6, 0xc8, 0xad, 0x40, 0x95, 0x7e, 0xfb, 0xed, 0x9a, 0x49, 0x1f, 0x6d}: "Platform", efi.GUID{0x82, 0x41, 0x7c, 0x2b, 0xb0, 0x81, 0xaa, 0x4a, 0x9e, 0x70, 0xb8, 0x8a, 0xec, 0x29, 0xb8, 0x53}: "PeimBoardInit", efi.GUID{0x82, 0x56, 0xab, 0xaf, 0xca, 0xf6, 0x04, 0x4e, 0x88, 0xbf, 0x66, 0x63, 0x8c, 0x23, 0xef, 0xa1}: "WifiProvisioningDxe", efi.GUID{0x82, 0x5d, 0xa8, 0x54, 0x54, 0x3a, 0x06, 0x40, 0x9c, 0x0e, 0xe5, 0x27, 0x29, 0x5c, 0x4f, 0xa8}: "SetupLangService", efi.GUID{0x82, 0x62, 0x63, 0xdf, 0xed, 0x5e, 0xdf, 0x11, 0xa9, 0xd6, 0xb3, 0x34, 0xfb, 0xa2, 0x4b, 0xb0}: "IntelHdAudioDxe", efi.GUID{0x82, 0x62, 0xfc, 0x0e, 0xe5, 0xf1, 0x9a, 0x46, 0x8a, 0x70, 0x19, 0x4a, 0x87, 0x61, 0xf9, 0xaa}: "XenAcpiPlatformDxe", efi.GUID{0x82, 0x67, 0x0b, 0xf6, 0x47, 0x32, 0xdc, 0x4c, 0xbd, 0xb7, 0x5c, 0xeb, 0x18, 0x46, 0x86, 0xad}: "SystemUsbHidParserSmm", efi.GUID{0x82, 0x68, 0x19, 0xd5, 0x70, 0xa9, 0x10, 0x45, 0x8f, 0xb9, 0xd7, 0x58, 0x3b, 0x69, 0x06, 0xe7}: "LenovoVariableSmm", efi.GUID{0x82, 0x69, 0x1c, 0xc6, 0x04, 0xb9, 0xef, 0x4c, 0xbf, 0x1b, 0xc6, 0x3b, 0xf7, 0xca, 0x03, 0x52}: "SataPeim", efi.GUID{0x82, 0x69, 0x1c, 0xc6, 0x04, 0xb9, 0xef, 0x4c, 0xbf, 0x1b, 0xc6, 0x3b, 0xf7, 0xca, 0x03, 0x99}: "UsbPeim", efi.GUID{0x82, 0x6a, 0xb2, 0x79, 0x07, 0x5c, 0xaa, 0x4a, 0xa8, 0xf3, 0x8a, 0xd1, 0x95, 0xd2, 0x71, 0xa2}: "SetupConfigUpdateDxeFischerLakeRP", efi.GUID{0x82, 0x6f, 0xfa, 0x52, 0x55, 0x52, 0xe1, 0x45, 0x8a, 0xbf, 0xc6, 0x2e, 0xda, 0x2c, 0x89, 0xba}: "SmbiosType133", efi.GUID{0x82, 0x70, 0x82, 0x43, 0x0b, 0x11, 0x8f, 0x42, 0xb6, 0xbb, 0x41, 0xf6, 0x5e, 0x67, 0xb2, 0x02}: "AsusUsbDxe", efi.GUID{0x82, 0x77, 0x2f, 0xf4, 0x2e, 0x01, 0x12, 0x4c, 0x99, 0x56, 0x49, 0xf9, 0x43, 0x04, 0xf7, 0x21}: "EfiConsoleControlProtocolGuid", efi.GUID{0x82, 0x81, 0x46, 0xbc, 0x0b, 0x0c, 0x45, 0xd6, 0xa8, 0xac, 0xfb, 0x5d, 0x81, 0x07, 0x6a, 0xe8}: "UserInterfaceThemeDriver", efi.GUID{0x82, 0x82, 0xb3, 0xf3, 0x51, 0xb9, 0x2a, 0x4e, 0x8d, 0xf5, 0xde, 0x01, 0xfc, 0x52, 0x7a, 0xe4}: "RtcWakeup", efi.GUID{0x82, 0x8c, 0x1f, 0xc4, 0xe6, 0xb3, 0xe0, 0x47, 0xa6, 0x1d, 0x0f, 0x9e, 0x42, 0x9e, 0x69, 0x96}: "DebugCommunicationLibUsb3Dxe", efi.GUID{0x82, 0x8d, 0xa6, 0x7f, 0xa4, 0x10, 0x71, 0x4e, 0x95, 0x24, 0xd3, 0xd9, 0x50, 0x0d, 0x3c, 0xdf}: "PlatformSecureLibNull", efi.GUID{0x82, 0x8f, 0x4b, 0x8f, 0x91, 0x9b, 0x28, 0x40, 0x86, 0xe6, 0xf4, 0xdb, 0x7d, 0x4c, 0x1d, 0xff}: "Bds", efi.GUID{0x82, 0x96, 0xdd, 0xdb, 0xfa, 0x70, 0xce, 0x46, 0xb8, 0x9c, 0xd6, 0xaf, 0x71, 0x4e, 0x51, 0xb9}: "LpssSmm", efi.GUID{0x82, 0x99, 0x4d, 0x04, 0x57, 0xaa, 0xd7, 0x45, 0xbb, 0x7d, 0x62, 0x96, 0x6a, 0xf7, 0x35, 0x6b}: "DellStatusCodeHandlerPei", efi.GUID{0x82, 0x9e, 0xbd, 0x3e, 0x78, 0x2c, 0xe6, 0x4d, 0x97, 0x86, 0x8d, 0x4b, 0xfc, 0xb7, 0xc8, 0x81}: "EfiFaultTolerantWriteProtocolGuid", efi.GUID{0x82, 0xa1, 0x09, 0x27, 0xda, 0x0d, 0x91, 0x4a, 0xba, 0x53, 0x11, 0x03, 0x2b, 0x71, 0x36, 0x33}: "AmiPspOfbd", efi.GUID{0x82, 0xab, 0xb2, 0xb0, 0x9b, 0x2e, 0x89, 0x4f, 0xa3, 0xd8, 0xf5, 0xa9, 0x99, 0x68, 0x95, 0x0c}: "EfiPlatformTypeOpalCitySthiProtocol", efi.GUID{0x82, 0xad, 0x8a, 0x22, 0x50, 0xe1, 0x88, 0x42, 0xb1, 0x76, 0xa1, 0xaa, 0xd7, 0x7d, 0x78, 0x3e}: "FjIbvTraceAbstractionDxeProtocol", efi.GUID{0x82, 0xb3, 0x68, 0xc4, 0x50, 0x45, 0x09, 0x49, 0xad, 0x57, 0x24, 0x96, 0x14, 0x1b, 0x3f, 0x4a}: "AsrockRaidX64", efi.GUID{0x82, 0xb4, 0x95, 0xf8, 0x70, 0x19, 0xa7, 0x49, 0x84, 0xf5, 0x72, 0x39, 0x78, 0x08, 0x66, 0x42}: "DellFlashUpdate2Dxe", efi.GUID{0x82, 0xbb, 0x8b, 0x3d, 0x53, 0xb1, 0xaf, 0x4b, 0xab, 0x64, 0x09, 0xe7, 0xf9, 0x78, 0x58, 0x77}: "FjNuvotonNct5581Smm", efi.GUID{0x82, 0xbf, 0xde, 0xad, 0x60, 0xa5, 0xb9, 0x46, 0xa2, 0x80, 0x78, 0xc6, 0xab, 0x61, 0xae, 0xda}: "ErrorManager", efi.GUID{0x82, 0xc4, 0x26, 0xba, 0xde, 0xc1, 0x97, 0x4b, 0xa8, 0xbd, 0x16, 0x0d, 0xfd, 0xb9, 0x84, 0xac}: "FchPromontoryGpioDxe", efi.GUID{0x82, 0xcc, 0x2a, 0x06, 0x1e, 0x1d, 0x61, 0x4f, 0xaa, 0x94, 0x8b, 0x0c, 0x47, 0x23, 0x6a, 0x3d}: "BootScriptSaveOnS3SaveStateThunk", efi.GUID{0x82, 0xe4, 0xea, 0x2d, 0x96, 0x57, 0xf2, 0x40, 0x8d, 0xf5, 0xd8, 0x74, 0x19, 0xd6, 0xf3, 0x62}: "ASUSHDDPW", efi.GUID{0x82, 0xf0, 0x4c, 0xa3, 0x50, 0x0f, 0x0d, 0x4f, 0x89, 0x8a, 0x3d, 0x39, 0x30, 0x2b, 0xc5, 0x1e}: "IntelFsp2WrapperTokenSpaceGuid", efi.GUID{0x82, 0xf1, 0x6c, 0x41, 0x5f, 0x4a, 0x21, 0x4f, 0x91, 0x9a, 0x01, 0x61, 0xd8, 0x37, 0x18, 0x1e}: "POSTCODE0A_DUALACCELEROMETERWMI_SMM", efi.GUID{0x82, 0xf4, 0xda, 0x7a, 0xe1, 0xec, 0xc1, 0x42, 0x8f, 0xb0, 0xbf, 0x89, 0x55, 0x34, 0x06, 0x96}: "AmdMemSmbiosV2BrhPei", efi.GUID{0x82, 0xf5, 0x19, 0x04, 0x25, 0x06, 0x31, 0x45, 0x8a, 0x33, 0x85, 0xa9, 0x96, 0x5c, 0x95, 0xbc}: "WinNtBusDriverGuid", efi.GUID{0x82, 0xf5, 0xcb, 0xec, 0xe1, 0xee, 0xb8, 0x45, 0x89, 0x26, 0x06, 0x7f, 0x40, 0xb3, 0xe5, 0x5e}: "LenovoIsscPei", efi.GUID{0x82, 0xfa, 0xc9, 0xb6, 0x26, 0x9b, 0xe9, 0x4b, 0x8c, 0x40, 0x87, 0xa3, 0x70, 0xe4, 0x83, 0x65}: "AmiPlatformWrapperPei", efi.GUID{0x82, 0xfc, 0xc3, 0x35, 0x67, 0x17, 0xe9, 0x40, 0x89, 0xa7, 0x9a, 0x1c, 0xf2, 0x3a, 0x8e, 0xf9}: "AaeonPowerModeSmm", efi.GUID{0x82, 0xff, 0x5d, 0x75, 0xbe, 0x93, 0x9f, 0x4e, 0x89, 0x1f, 0x95, 0x59, 0x09, 0xd1, 0xea, 0x19}: "RtkUndiDxeDriver", efi.GUID{0x83, 0x0d, 0xaf, 0x11, 0x84, 0x07, 0x1e, 0x4c, 0x9a, 0x1b, 0x9c, 0xf4, 0x31, 0x27, 0x55, 0x5e}: "CrbModernStandby", efi.GUID{0x83, 0x10, 0x0d, 0xf0, 0x96, 0xa0, 0x2b, 0x45, 0xa2, 0xa9, 0x47, 0xea, 0xf7, 0xc4, 0xa0, 0x9c}: "BbSecDataUpdateSmm", efi.GUID{0x83, 0x15, 0x16, 0x05, 0xb3, 0x2a, 0xd1, 0x43, 0x80, 0x87, 0xe8, 0x90, 0x99, 0x7b, 0x0f, 0x80}: "DellPlatformFlexBay", efi.GUID{0x83, 0x22, 0x51, 0xec, 0xe2, 0xda, 0xd7, 0x48, 0xab, 0xb3, 0x95, 0xc1, 0xad, 0x78, 0xb5, 0x96}: "NvdimmSmbusCommon", efi.GUID{0x83, 0x29, 0xd5, 0xc2, 0x1b, 0x0b, 0x98, 0x4c, 0x97, 0xf7, 0xf7, 0x56, 0xc5, 0x37, 0x07, 0x63}: "TimeAlarmDevDxe", efi.GUID{0x83, 0x2a, 0xfd, 0x80, 0xaf, 0xb5, 0x67, 0x4a, 0x88, 0xbd, 0x08, 0x38, 0x8b, 0xdf, 0x1a, 0xdf}: "DellTcg2ServicesDxe", efi.GUID{0x83, 0x2b, 0xad, 0x30, 0xd0, 0xad, 0x4b, 0x41, 0xb1, 0x1c, 0xf9, 0x3c, 0xc1, 0xd0, 0xb7, 0x9b}: "AmiProcessTcgPpiRequestGuid", efi.GUID{0x83, 0x30, 0x63, 0x66, 0x16, 0x3f, 0xb2, 0x43, 0x8e, 0xd2, 0x80, 0x1a, 0x2e, 0xdc, 0x38, 0x24}: "DashBiosManagerDxe", efi.GUID{0x83, 0x30, 0xad, 0x61, 0xad, 0xdc, 0x50, 0x48, 0xa5, 0x0c, 0x73, 0xb2, 0x3b, 0x3b, 0x14, 0xf9}: "IsaIoDxe", efi.GUID{0x83, 0x38, 0xa7, 0x2c, 0x65, 0x7b, 0x20, 0x41, 0x87, 0xd1, 0x59, 0xf6, 0x89, 0xc3, 0xca, 0x3d}: "AsusEcSmmCallback", efi.GUID{0x83, 0x38, 0xbc, 0x67, 0x79, 0x7e, 0xc1, 0x4b, 0xa3, 0x3e, 0x3a, 0xf7, 0xd1, 0x75, 0x89, 0xba}: "AmiHddPowerMgmtProtocolGuid", efi.GUID{0x83, 0x3f, 0x97, 0x8e, 0xca, 0xab, 0xe4, 0x49, 0xa9, 0x40, 0x4e, 0xad, 0x5a, 0x6d, 0x8a, 0x1e}: "LenovoNationalLpcPc87393", efi.GUID{0x83, 0x41, 0xdd, 0x35, 0x0e, 0x27, 0xaf, 0x47, 0x93, 0xed, 0xeb, 0x0f, 0x95, 0xdf, 0x7e, 0x41}: "BleConPlatformDxe", efi.GUID{0x83, 0x4a, 0x6b, 0x8a, 0xfe, 0x42, 0xd2, 0x45, 0xa2, 0xef, 0x46, 0xf0, 0x6c, 0x7d, 0x98, 0x52}: "EfiUserCredentialClassSecureCardGuid", efi.GUID{0x83, 0x4e, 0x71, 0xc8, 0x5e, 0x89, 0x92, 0x41, 0xff, 0xff, 0xff, 0xff, 0x29, 0x36, 0x30, 0xb3}: "XnoteRecoveryLauncher", efi.GUID{0x83, 0x5b, 0xa4, 0x99, 0xfb, 0x0b, 0x38, 0x4c, 0x88, 0x35, 0xd5, 0x95, 0x71, 0x01, 0x01, 0x03}: "MAPS_DiagLEDDxe", efi.GUID{0x83, 0x70, 0x03, 0x1b, 0x15, 0x5f, 0x37, 0x44, 0xbe, 0x09, 0x6c, 0x68, 0xac, 0x67, 0x5b, 0x85}: "MtkWiFiDxeGen2", efi.GUID{0x83, 0x7f, 0xd4, 0x28, 0x4b, 0x91, 0xe6, 0x46, 0xb8, 0xa0, 0xd3, 0x7f, 0x11, 0x8c, 0xba, 0x90}: "IioPlatformHooks", efi.GUID{0x83, 0x99, 0x5d, 0xda, 0x3c, 0x03, 0x23, 0x48, 0x93, 0x49, 0x8b, 0x1b, 0x6a, 0x79, 0x80, 0x30}: "LenovoSystemStatusCodeGenericSmm", efi.GUID{0x83, 0x9a, 0xe3, 0x79, 0x13, 0xd0, 0x2e, 0x4b, 0x83, 0x6a, 0xa9, 0x9a, 0x71, 0x47, 0x35, 0x1c}: "DellPbaScardDxe", efi.GUID{0x83, 0xa1, 0xca, 0xb1, 0x67, 0xfa, 0xf5, 0x44, 0x8d, 0x77, 0xb5, 0x28, 0xc3, 0x09, 0x20, 0x7e}: "DxeDbgModuleLocator", efi.GUID{0x83, 0xa5, 0x04, 0x7c, 0x3e, 0x9e, 0x1c, 0x4f, 0xad, 0x65, 0xe0, 0x52, 0x68, 0xd0, 0xb4, 0xd1}: "FullShell", efi.GUID{0x83, 0xb0, 0x4c, 0xa7, 0x30, 0xc6, 0x9f, 0x47, 0x9e, 0xcf, 0xad, 0xba, 0xfd, 0x2f, 0x17, 0x04}: "BlueToothPei", efi.GUID{0x83, 0xb2, 0x54, 0xdc, 0x77, 0x1a, 0xd6, 0x4c, 0x83, 0xbb, 0xfd, 0xda, 0x46, 0x9a, 0x2e, 0xc6}: "EdkiiPeiUfsHostControllerPpiGuid", efi.GUID{0x83, 0xb4, 0x59, 0x5f, 0xa4, 0x73, 0x07, 0x45, 0xac, 0x11, 0xa1, 0xd2, 0x6e, 0xfa, 0x18, 0x7b}: "SmbiosProcessorDxe", efi.GUID{0x83, 0xb4, 0xe1, 0x6e, 0xb8, 0xa9, 0xaf, 0x4e, 0x9a, 0xe1, 0x3b, 0x28, 0xc5, 0xcf, 0xf3, 0x6b}: "SkipTpmStartupGuid", efi.GUID{0x83, 0xb5, 0x74, 0x33, 0x96, 0x7a, 0x6e, 0x49, 0x9b, 0x8c, 0x2b, 0xef, 0xe9, 0x11, 0xad, 0xb7}: "AaeonUartOverride", efi.GUID{0x83, 0xc4, 0xad, 0x21, 0x1f, 0x02, 0x3b, 0x4f, 0x8d, 0xce, 0x61, 0x3c, 0xc9, 0x81, 0xa2, 0x69}: "menu_dots_selected", efi.GUID{0x83, 0xca, 0x95, 0x65, 0x11, 0x8d, 0xa5, 0x4b, 0xbd, 0xd1, 0x92, 0x87, 0x98, 0x64, 0xd3, 0x20}: "PiSmmCpuDxeSmm", efi.GUID{0x83, 0xca, 0xf7, 0x71, 0xc5, 0x96, 0x42, 0x47, 0xba, 0xa2, 0x76, 0xb8, 0x07, 0xa0, 0x6b, 0x95}: "SctGopVbeBltBin", efi.GUID{0x83, 0xd1, 0x88, 0x31, 0x54, 0xd1, 0xc3, 0x4d, 0x8e, 0xc6, 0x59, 0x80, 0x4a, 0x62, 0x3c, 0xcd}: "PCA9535Pei", efi.GUID{0x83, 0xd3, 0xcc, 0xcc, 0x45, 0x71, 0x50, 0x48, 0xa4, 0xbe, 0x89, 0xc3, 0x6a, 0x15, 0xba, 0x15}: "GpioV2ControllerPei", efi.GUID{0x83, 0xd7, 0x1c, 0x92, 0x22, 0x3e, 0x79, 0x45, 0xa7, 0x1f, 0x00, 0xd7, 0x41, 0x97, 0xfc, 0xc8}: "HeciSmm", efi.GUID{0x83, 0xd7, 0x1c, 0x92, 0x22, 0x3e, 0x79, 0x45, 0xa7, 0x1f, 0x00, 0xd7, 0x41, 0x97, 0xfc, 0xc9}: "SpsSmm", efi.GUID{0x83, 0xde, 0x8b, 0x7c, 0x3e, 0x9e, 0x1c, 0x4f, 0xad, 0x65, 0xe0, 0x52, 0x68, 0xd0, 0xb4, 0xd1}: "RealtekUndi", efi.GUID{0x83, 0xdf, 0xe9, 0x7d, 0x2a, 0x2d, 0x48, 0x44, 0xa9, 0xb1, 0x7d, 0xa7, 0x51, 0x58, 0x56, 0x2a}: "UsbBtHciDxe", efi.GUID{0x83, 0xf0, 0xb3, 0xfb, 0x87, 0x57, 0xaf, 0x45, 0xba, 0xdc, 0x66, 0x48, 0x54, 0x10, 0x0f, 0x20}: "FitDiagnostics", efi.GUID{0x83, 0xf5, 0x54, 0xcc, 0x9e, 0x3f, 0xb0, 0x4a, 0x9f, 0x7c, 0xd2, 0xc7, 0xed, 0x1c, 0x87, 0xa5}: "AppleRtcRam", efi.GUID{0x83, 0xfa, 0xdf, 0x6a, 0xae, 0x55, 0x9f, 0x4c, 0x94, 0xa4, 0x80, 0x0c, 0x46, 0x9b, 0xda, 0xbc}: "StaticSkuDataDxeLightningRidgeEXECB2", efi.GUID{0x84, 0x0d, 0xd2, 0x06, 0x32, 0xa0, 0x25, 0x4e, 0x96, 0x9a, 0x34, 0x6d, 0x25, 0x5e, 0x46, 0xd1}: "CpuCsrAccess", efi.GUID{0x84, 0x1d, 0xc0, 0x6f, 0xc5, 0x46, 0x83, 0x4e, 0x91, 0xb7, 0xfd, 0x8f, 0xba, 0xbd, 0x7b, 0x12}: "BiosInfo", efi.GUID{0x84, 0x31, 0xaa, 0xa6, 0xf8, 0x2e, 0x68, 0x4f, 0x92, 0xbd, 0x72, 0x60, 0x39, 0x65, 0x4b, 0x2d}: "PlatformVariableInitDxe", efi.GUID{0x84, 0x39, 0x1a, 0xbb, 0x71, 0xd1, 0x03, 0x40, 0x90, 0x94, 0x46, 0xaf, 0x86, 0x6b, 0x45, 0xa2}: "IconPasswordLock", efi.GUID{0x84, 0x39, 0x6c, 0xc9, 0x9e, 0x42, 0xad, 0x4f, 0x8a, 0x61, 0xc1, 0xe8, 0x6b, 0xa4, 0x3b, 0xf8}: "AmdNbioIOMMUDxe", efi.GUID{0x84, 0x43, 0x4b, 0x52, 0x32, 0xd6, 0x62, 0x48, 0x9d, 0x3a, 0x6d, 0x82, 0xc9, 0xe8, 0x58, 0x25}: "SystemInventoryInfo", efi.GUID{0x84, 0x46, 0x2b, 0xa4, 0xea, 0x26, 0xd0, 0x40, 0xaa, 0x38, 0x94, 0xc2, 0x1c, 0x3c, 0x4e, 0x59}: "ATIPwrXPEI", efi.GUID{0x84, 0x4b, 0x30, 0xf6, 0x97, 0x79, 0xe8, 0x45, 0x90, 0x1d, 0x54, 0xd0, 0xd4, 0x95, 0x73, 0x7f}: "FjIbvRestoreConfigurationDataDxe", efi.GUID{0x84, 0x62, 0xd5, 0xce, 0xac, 0xcd, 0x9c, 0x49, 0x9f, 0xed, 0x69, 0xa9, 0x44, 0xce, 0x26, 0xcd}: "EcIoPeim", efi.GUID{0x84, 0x66, 0xd6, 0x2b, 0x14, 0xa2, 0x3c, 0x49, 0xba, 0xf9, 0x70, 0xd9, 0x70, 0x6e, 0x27, 0x8a}: "DualModeDxe", efi.GUID{0x84, 0x72, 0x64, 0xe9, 0xd5, 0x02, 0x86, 0x44, 0xa3, 0x4c, 0x90, 0x7f, 0x3d, 0x04, 0xbc, 0xa4}: "UsbS5Wakeup", efi.GUID{0x84, 0x7b, 0x22, 0x0b, 0x66, 0x94, 0xbd, 0x46, 0x8a, 0xba, 0x8e, 0xea, 0x99, 0xfa, 0xd2, 0x2c}: "AsusEcNvramDxe", efi.GUID{0x84, 0x7b, 0x3d, 0x61, 0x74, 0xf7, 0x7f, 0x49, 0x9a, 0x18, 0x6c, 0x0e, 0xd7, 0x8d, 0x13, 0x9d}: "SystemDefaultVariableProviderPei", efi.GUID{0x84, 0x7f, 0x8b, 0xc5, 0xa7, 0xff, 0x12, 0x41, 0x80, 0x97, 0xc7, 0x65, 0xcf, 0x75, 0x15, 0xc8}: "OemGetEdid", efi.GUID{0x84, 0x82, 0xbd, 0x0a, 0xa3, 0x6d, 0x16, 0x46, 0x97, 0x1a, 0x83, 0xa5, 0x14, 0x80, 0x67, 0xba}: "IsaFloppyDxe", efi.GUID{0x84, 0x85, 0xde, 0x66, 0x01, 0xde, 0xab, 0x4b, 0xb5, 0xd0, 0x8b, 0x99, 0x59, 0x43, 0x72, 0xfc}: "IchUhciPei", efi.GUID{0x84, 0x90, 0xa3, 0xbe, 0x4a, 0x04, 0x88, 0x4c, 0x87, 0x63, 0x2b, 0xfa, 0xff, 0xa8, 0x95, 0x0c}: "LTEB", efi.GUID{0x84, 0x90, 0xd0, 0xb5, 0xad, 0x80, 0x59, 0x47, 0xb5, 0x1c, 0x27, 0x54, 0x8a, 0xfb, 0x8b, 0x8d}: "EfiGpioProtocol", efi.GUID{0x84, 0x98, 0xb7, 0x44, 0xf6, 0x59, 0x5f, 0x4d, 0x86, 0x9a, 0x8c, 0x54, 0x36, 0xe0, 0x9e, 0xb9}: "ADLINK_PsuAtAtxModeSwitch", efi.GUID{0x84, 0x9f, 0x49, 0x67, 0xe5, 0xf2, 0xd2, 0x4d, 0x9e, 0x56, 0xc6, 0xe3, 0x89, 0xdd, 0x61, 0x73}: "DellRtcAutoOnSmm", efi.GUID{0x84, 0xa5, 0x5a, 0x49, 0xd4, 0x63, 0xf0, 0x45, 0xa4, 0xef, 0x36, 0x04, 0x2b, 0x19, 0xa2, 0x01}: "AppleVariablePolicy", efi.GUID{0x84, 0xac, 0x81, 0x9d, 0xf7, 0x25, 0xce, 0x45, 0x83, 0xd0, 0x88, 0x6e, 0xe0, 0x33, 0x43, 0x98}: "MTKSupp", efi.GUID{0x84, 0xb0, 0x00, 0x0e, 0x16, 0x2d, 0x27, 0x4a, 0xb1, 0x72, 0xb1, 0xf6, 0x8c, 0x2c, 0xc5, 0x5d}: "MicrocodeUpdates", efi.GUID{0x84, 0xb1, 0x46, 0xc1, 0x91, 0x88, 0xd3, 0x49, 0xb7, 0x34, 0xca, 0xcd, 0xd8, 0x4f, 0xc9, 0x42}: "ATH9K_UndiLayer", efi.GUID{0x84, 0xb4, 0xa4, 0xf3, 0x26, 0x9b, 0xea, 0x4e, 0x90, 0xe5, 0xa2, 0x06, 0x54, 0x0c, 0xa5, 0x25}: "EfiPciIovPlatformProtocol", efi.GUID{0x84, 0xb7, 0xcb, 0x45, 0x0c, 0x02, 0xe2, 0x46, 0x8a, 0x14, 0xbe, 0x20, 0xca, 0x21, 0xc3, 0xf1}: "PowerLossNotifySettingDxe", efi.GUID{0x84, 0xba, 0xb8, 0x09, 0xd3, 0x3d, 0xa6, 0x49, 0xa0, 0x5a, 0x31, 0x34, 0xa5, 0xf0, 0x7b, 0xad}: "ArmScmiPerformanceProtocol", efi.GUID{0x84, 0xce, 0x44, 0x7b, 0xf2, 0x91, 0x19, 0x4c, 0xa1, 0xd3, 0x33, 0x18, 0x5a, 0x65, 0x8d, 0xaf}: "FjS5WakeDxe", efi.GUID{0x84, 0xd1, 0x07, 0x7b, 0xd0, 0x02, 0xfd, 0x4b, 0xad, 0x6e, 0x55, 0x4c, 0x39, 0x35, 0x3a, 0x13}: "LenovoSysConfigReqDxe", efi.GUID{0x84, 0xd1, 0xcd, 0x67, 0xd9, 0xc0, 0x58, 0x43, 0xb3, 0x76, 0x33, 0x0b, 0xf6, 0x7d, 0x01, 0xad}: "HpCommonFlashInfoSmm", efi.GUID{0x84, 0xd5, 0x90, 0xb5, 0x47, 0xa9, 0x88, 0x48, 0xb4, 0x68, 0x0a, 0x44, 0x93, 0x09, 0xa1, 0x0f}: "FchS3SaveDxe", efi.GUID{0x84, 0xdc, 0x4f, 0x46, 0x3f, 0xd5, 0x7b, 0x4a, 0xb4, 0x91, 0x87, 0x99, 0x12, 0x28, 0xf0, 0x8b}: "FjUsbDeviceDxe", efi.GUID{0x84, 0xde, 0x5f, 0x46, 0xb0, 0xe8, 0x4b, 0xb0, 0xa8, 0x43, 0xa0, 0x3f, 0x68, 0xf6, 0x17, 0xa9}: "ThunkPpiList", efi.GUID{0x84, 0xe5, 0x5b, 0xf7, 0x2d, 0x34, 0xd2, 0x44, 0x98, 0x19, 0x36, 0x64, 0x1e, 0x8d, 0x01, 0x07}: "GetFmpInfo", efi.GUID{0x84, 0xe9, 0xbe, 0x0f, 0xbf, 0x33, 0xc0, 0x4a, 0xa8, 0x71, 0xb3, 0x52, 0xad, 0x59, 0xe3, 0x37}: "DisableLTEB", efi.GUID{0x84, 0xed, 0x53, 0xb0, 0x0c, 0x88, 0x7e, 0x4f, 0xa5, 0x7e, 0x2c, 0x82, 0xc6, 0xe9, 0xbc, 0xbf}: "OemWlanBT", efi.GUID{0x84, 0xee, 0xbd, 0x22, 0x07, 0xc8, 0x2e, 0x45, 0xb5, 0x6e, 0xf6, 0x83, 0xfd, 0x76, 0xc9, 0x89}: "BuslogicDxe", efi.GUID{0x84, 0xf0, 0x7e, 0x66, 0xef, 0x74, 0x07, 0x47, 0x90, 0xb3, 0x75, 0x14, 0x59, 0x20, 0xb3, 0x9c}: "EfiPeiBootInNonS3ModePpi", efi.GUID{0x84, 0xf3, 0x64, 0x3d, 0x32, 0xca, 0xc6, 0x42, 0xa6, 0x29, 0x42, 0xa4, 0x94, 0xb2, 0xcb, 0x4a}: "TpmCapsuleDxe", efi.GUID{0x84, 0xf4, 0xac, 0x3d, 0xdc, 0x53, 0xd6, 0x4b, 0x84, 0xc9, 0xaa, 0x17, 0xbc, 0xf2, 0xff, 0xdc}: "PowerFailureRecoveryPei", efi.GUID{0x85, 0x09, 0x95, 0xd5, 0xe3, 0x8b, 0x1c, 0x4b, 0xb6, 0x3f, 0x95, 0xd1, 0x5a, 0xb3, 0xb6, 0x5f}: "SmmCpuSyncProtocol", efi.GUID{0x85, 0x0a, 0x6e, 0xd7, 0x08, 0x49, 0x32, 0x47, 0xbe, 0x0f, 0xbe, 0x70, 0x7e, 0xf7, 0xcb, 0x37}: "SmbiosTpmDeviceInfo", efi.GUID{0x85, 0x0b, 0xbf, 0x22, 0xb3, 0x4e, 0x9b, 0x47, 0xa9, 0xe9, 0xa5, 0xf7, 0xcf, 0xcc, 0xa7, 0x87}: "LenovoSmartCardDetectDxe", efi.GUID{0x85, 0x0d, 0x1f, 0x7e, 0xff, 0x04, 0xb2, 0x4b, 0x86, 0x6a, 0x31, 0xa2, 0x99, 0x6a, 0x48, 0xa8}: "EfiPeiFvFileLoaderPpiGuid", efi.GUID{0x85, 0x0d, 0xa1, 0x68, 0x58, 0x68, 0x02, 0x44, 0xb0, 0x70, 0x02, 0x8b, 0x3e, 0xa2, 0x17, 0x47}: "SpiFvbServiceSmm", efi.GUID{0x85, 0x11, 0xe7, 0x44, 0x77, 0x22, 0x57, 0x45, 0xbc, 0x53, 0x95, 0x7f, 0xad, 0x9c, 0xa6, 0x5c}: "FjLvdsRTD213xR_Dxe", efi.GUID{0x85, 0x2a, 0x44, 0xa6, 0x2a, 0x7e, 0x4f, 0x4a, 0xb2, 0x6b, 0x98, 0xe1, 0xe6, 0x4c, 0x22, 0x1f}: "AmdMpmSensor", efi.GUID{0x85, 0x38, 0xd8, 0x5a, 0x55, 0x89, 0x9b, 0x49, 0x8e, 0x9a, 0xeb, 0xc2, 0x4b, 0x6e, 0x76, 0xb1}: "AmdNbioSmuV9Dxe", efi.GUID{0x85, 0x38, 0xdc, 0x60, 0xcf, 0x9d, 0x8c, 0x49, 0x9a, 0x32, 0xda, 0xdb, 0x6a, 0xfa, 0x99, 0xa0}: "ErrorCodeHandlerDxe", efi.GUID{0x85, 0x38, 0xee, 0x67, 0xd7, 0x80, 0x94, 0x44, 0xa5, 0xfd, 0x44, 0x55, 0x27, 0xe2, 0x3f, 0x0e}: "FirmwareRollbackProtectionDynamicUpdate", efi.GUID{0x85, 0x46, 0x5e, 0xeb, 0x66, 0xca, 0x69, 0x47, 0xb6, 0xa2, 0x26, 0x06, 0x8b, 0x00, 0x13, 0x26}: "EfiPciDevErrorSectionGuid", efi.GUID{0x85, 0x48, 0x7d, 0xbf, 0xe7, 0xbe, 0xa4, 0x48, 0xbe, 0xc3, 0x2e, 0x71, 0x60, 0xa4, 0x8a, 0x0d}: "FjGabiFlashCommonEcRegionCtrlDxe", efi.GUID{0x85, 0x4b, 0x98, 0x19, 0xa1, 0x18, 0x8c, 0x46, 0xaf, 0x3e, 0xc3, 0xd9, 0x3f, 0x18, 0xc9, 0xfa}: "AsusSetupRestorePei", efi.GUID{0x85, 0x50, 0xc8, 0xa1, 0x53, 0x30, 0x4b, 0x4c, 0xa9, 0xf6, 0x72, 0x4d, 0x22, 0xa7, 0x6e, 0xf9}: "AmiLegacyTpmguid", efi.GUID{0x85, 0x50, 0xd6, 0xcf, 0xe1, 0xdb, 0x91, 0x46, 0x95, 0xd1, 0x85, 0x5b, 0x2c, 0xa0, 0x0c, 0x69}: "FjIbvSfuOverrideAbstractionSmmProtocol", efi.GUID{0x85, 0x5c, 0xb0, 0xa2, 0x5b, 0x8d, 0xf3, 0x4f, 0xb7, 0xd1, 0x8f, 0xbe, 0x92, 0xb4, 0xaa, 0x32}: "PchEvaInt15HandlerFile", efi.GUID{0x85, 0x5f, 0xd5, 0x57, 0x77, 0xc1, 0x84, 0x4a, 0xa2, 0xdd, 0x86, 0x68, 0xe6, 0xf0, 0x82, 0xe1}: "DellCipherSmm", efi.GUID{0x85, 0x62, 0x7c, 0xd4, 0x5e, 0x33, 0x14, 0x4f, 0x9c, 0xb9, 0xda, 0xb5, 0x65, 0xb7, 0xb4, 0x4b}: "SmbusDebugSmm", efi.GUID{0x85, 0x6f, 0xcb, 0xbb, 0x3c, 0x30, 0xb9, 0x4e, 0x81, 0x82, 0xaf, 0x98, 0xd4, 0xb3, 0x02, 0x0c}: "Tpm2DeviceLibTrEE", efi.GUID{0x85, 0x70, 0x3f, 0x2d, 0x63, 0xba, 0x39, 0x47, 0xa1, 0x5f, 0xc8, 0x80, 0x2b, 0x6b, 0x80, 0x7b}: "NCT3933Pei", efi.GUID{0x85, 0x7a, 0x82, 0x50, 0x39, 0x76, 0xe0, 0x42, 0x99, 0xe7, 0x15, 0x64, 0x05, 0xe1, 0x79, 0x0d}: "HpPlatformErrorHandler", efi.GUID{0x85, 0x87, 0x6e, 0xaa, 0x6e, 0x72, 0x1d, 0x44, 0xac, 0xb8, 0xf7, 0x5f, 0xb0, 0xb2, 0xb9, 0xf2}: "CoreEG2", efi.GUID{0x85, 0x88, 0x68, 0x51, 0x4c, 0x02, 0x9b, 0x43, 0xb3, 0xde, 0x9c, 0x08, 0xe8, 0xf5, 0x91, 0xdb}: "SmmEventLog", efi.GUID{0x85, 0x9d, 0x0e, 0x49, 0xef, 0x8a, 0x93, 0x41, 0x8e, 0x56, 0xf7, 0x34, 0xa9, 0xff, 0xac, 0x8b}: "PeiSerialPortPpiGuid", efi.GUID{0x85, 0x9f, 0xb1, 0xcc, 0x26, 0xc0, 0x85, 0x42, 0x81, 0xe9, 0x50, 0x5b, 0xf5, 0x2d, 0x27, 0x91}: "Cf9Reset", efi.GUID{0x85, 0xae, 0x72, 0xf6, 0x69, 0x37, 0xb8, 0x4f, 0xa5, 0xa0, 0x70, 0xb3, 0x8f, 0xb0, 0xa7, 0xc4}: "DxeTimerLibEsal", efi.GUID{0x85, 0xaf, 0x68, 0x76, 0xef, 0xdf, 0x57, 0x4c, 0xbc, 0xc4, 0x88, 0x07, 0xfa, 0xfe, 0x7b, 0xe9}: "TouchPadDriver", efi.GUID{0x85, 0xb2, 0xc1, 0x3b, 0x15, 0x8a, 0x82, 0x4a, 0xaa, 0xbf, 0x4d, 0x7d, 0x13, 0xfb, 0x32, 0x65}: "EfiBusSpecificDriverOverrideProtocolGuid", efi.GUID{0x85, 0xb5, 0xc7, 0xae, 0xfc, 0x9a, 0x0b, 0x40, 0xa8, 0xc5, 0x78, 0xe1, 0x35, 0xef, 0xf8, 0x45}: "ApobRplDxe", efi.GUID{0x85, 0xbf, 0x0b, 0x74, 0xeb, 0x47, 0xd7, 0x45, 0x90, 0x5b, 0x24, 0x44, 0x51, 0xa0, 0xfd, 0x77}: "FirebirdCheckDxe", efi.GUID{0x85, 0xca, 0x4a, 0xe6, 0xcf, 0xf2, 0x46, 0x22, 0x87, 0xf4, 0x92, 0xb8, 0x39, 0xcc, 0xbb, 0x78}: "SingleFile", efi.GUID{0x85, 0xcc, 0x77, 0x04, 0x10, 0xf6, 0xb9, 0x47, 0xb3, 0x22, 0x42, 0xe1, 0xa9, 0x3d, 0x9e, 0xe7}: "FjGpioAbstractionReferenceSmm", efi.GUID{0x85, 0xd2, 0x03, 0x0f, 0x14, 0x66, 0xdc, 0x4d, 0x86, 0xdc, 0xda, 0xe5, 0xe3, 0x75, 0x44, 0x3a}: "EndOfFirstPowerOn", efi.GUID{0x85, 0xd6, 0xbe, 0x2b, 0x33, 0x66, 0x5f, 0x45, 0xa8, 0x40, 0x43, 0xa2, 0x2b, 0x79, 0x1f, 0xff}: "AcpiFPDTSupport", efi.GUID{0x85, 0xd6, 0xdc, 0x5b, 0x0a, 0xd8, 0xe6, 0x42, 0x98, 0x67, 0xa8, 0x4c, 0xce, 0x7f, 0x82, 0x8e}: "TbtSmm", efi.GUID{0x85, 0xd6, 0xde, 0x2b, 0x33, 0xf7, 0x5f, 0x45, 0xa8, 0x40, 0x43, 0xa2, 0x2b, 0x79, 0x1f, 0xb3}: "AcpiS3SaveDxe", efi.GUID{0x85, 0xd8, 0x4c, 0xee, 0x04, 0xd1, 0x56, 0x40, 0x84, 0xba, 0x46, 0x18, 0x82, 0xa7, 0x2a, 0x18}: "PrmHii", efi.GUID{0x85, 0xe0, 0x5c, 0x90, 0xb7, 0xe8, 0x6f, 0x47, 0xb1, 0xe0, 0x63, 0xc6, 0xa4, 0x58, 0x3b, 0x5b}: "HPOA3Dxe", efi.GUID{0x85, 0xe5, 0xe4, 0xee, 0x85, 0x05, 0x91, 0x40, 0xa8, 0x9f, 0xca, 0xb5, 0x1f, 0x6f, 0xcf, 0x3e}: "FchYuntaiPei", efi.GUID{0x85, 0xe9, 0x84, 0x4f, 0x3b, 0x4c, 0x25, 0x48, 0x9f, 0x42, 0x88, 0x91, 0x09, 0x01, 0x94, 0x22}: "GopConfigPei", efi.GUID{0x85, 0xea, 0x60, 0xe6, 0x8e, 0x05, 0x55, 0x4b, 0xa5, 0x4b, 0xf0, 0x2f, 0x83, 0xa2, 0x47, 0x07}: "DisplayEngine", efi.GUID{0x85, 0xf1, 0x99, 0x3c, 0x3e, 0x76, 0x34, 0x4c, 0xb4, 0x0e, 0x55, 0x80, 0xef, 0xf8, 0x65, 0xd4}: "SecureEraseLog", efi.GUID{0x85, 0xf5, 0xac, 0x3d, 0xdc, 0x53, 0xd6, 0x4b, 0x84, 0xc9, 0xbb, 0x37, 0xbc, 0xf2, 0xfa, 0x23}: "SerialPortSettingPei", efi.GUID{0x85, 0xf9, 0x63, 0x8b, 0xed, 0x5d, 0x8a, 0x44, 0x89, 0x96, 0xa0, 0x08, 0xbe, 0xd4, 0x5a, 0xa8}: "SystemDeleteSignaturesDxe", efi.GUID{0x86, 0x00, 0x45, 0xe9, 0xa9, 0x16, 0xd0, 0x4f, 0x91, 0x36, 0xbf, 0xd2, 0xff, 0x47, 0x82, 0x85}: "FjPcieWirelessWanSmm", efi.GUID{0x86, 0x05, 0xdd, 0xd3, 0x6d, 0x97, 0x9f, 0x44, 0x98, 0x37, 0x03, 0x92, 0xe9, 0x3b, 0x7d, 0x52}: "DellOsProtocolAccess", efi.GUID{0x86, 0x06, 0x9c, 0xdf, 0x2e, 0x2b, 0xd9, 0x49, 0x94, 0xf4, 0xa4, 0x1c, 0x47, 0xab, 0x96, 0x33}: "Hob", efi.GUID{0x86, 0x07, 0xea, 0xfa, 0x3e, 0xff, 0x91, 0x40, 0xa8, 0x95, 0x98, 0xe4, 0xe9, 0x11, 0x48, 0x92}: "LegacyRegionDxe", efi.GUID{0x86, 0x1c, 0x79, 0x16, 0xba, 0x47, 0xc7, 0xbf, 0x46, 0x8f, 0xd9, 0xb5, 0x0d, 0x50, 0x94, 0x87}: "AmdPsppControlPei", efi.GUID{0x86, 0x1c, 0x7b, 0x6a, 0x0e, 0x59, 0xa7, 0x47, 0x97, 0x1a, 0xc4, 0x9b, 0x40, 0x8d, 0x5e, 0xd7}: "LenovoSetupSecurityDxe", efi.GUID{0x86, 0x1c, 0xa1, 0xa7, 0x39, 0xc5, 0xb8, 0x4b, 0x89, 0x20, 0xe7, 0xcc, 0xb5, 0x30, 0x6d, 0xe3}: "SDTgaDecoder", efi.GUID{0x86, 0x20, 0x23, 0x5b, 0x0a, 0x35, 0xc7, 0x42, 0xa7, 0x0e, 0x34, 0x97, 0xb5, 0x76, 0x5d, 0x85}: "OEMSSDT", efi.GUID{0x86, 0x20, 0xe1, 0xdf, 0x23, 0x53, 0xbb, 0x44, 0xbb, 0x3d, 0x70, 0x21, 0x65, 0xfc, 0xfb, 0x61}: "DellHardwareSignature", efi.GUID{0x86, 0x25, 0x34, 0x39, 0x0e, 0x4e, 0x33, 0x48, 0xb4, 0xba, 0x12, 0x56, 0xb0, 0xff, 0xb4, 0x71}: "FmpDxe", efi.GUID{0x86, 0x27, 0xbf, 0xcc, 0x6c, 0xcd, 0x08, 0x43, 0xbd, 0xfa, 0x62, 0x58, 0x70, 0xce, 0xbf, 0x81}: "AmiCmosAccessPpiGuid", efi.GUID{0x86, 0x30, 0x3d, 0x27, 0xa3, 0x65, 0x3d, 0x46, 0xb5, 0xd6, 0xaa, 0xc7, 0xcc, 0xc1, 0x84, 0x45}: "PlatformTcg2Dxe", efi.GUID{0x86, 0x35, 0x2b, 0x33, 0xb4, 0xf0, 0xee, 0x46, 0xa3, 0x9c, 0x78, 0x63, 0x30, 0xe2, 0xd3, 0x28}: "EfiFpgaHssiConfigDataProtocol", efi.GUID{0x86, 0x44, 0x0c, 0x39, 0x26, 0xc0, 0x83, 0x40, 0x88, 0x69, 0xd8, 0xf2, 0x60, 0xa4, 0x97, 0x60}: "OemSyncSetupRN", efi.GUID{0x86, 0x48, 0x1e, 0x1a, 0x17, 0x95, 0x0e, 0x44, 0x9f, 0xde, 0x3b, 0xe4, 0x4c, 0xee, 0x21, 0x36}: "CpuDxe", efi.GUID{0x86, 0x49, 0x01, 0x66, 0x5d, 0xa4, 0x22, 0x4c, 0x9f, 0x6b, 0x7d, 0x4e, 0xf2, 0x03, 0x8c, 0xab}: "OemHddHeadParkSmm", efi.GUID{0x86, 0x53, 0x37, 0x74, 0x3c, 0xda, 0xa2, 0x4f, 0xbb, 0xa2, 0xf5, 0x3e, 0x37, 0x35, 0x34, 0x22}: "AmdAcpConfigurationDxe", efi.GUID{0x86, 0x56, 0x02, 0x12, 0x84, 0x39, 0x6c, 0x46, 0x98, 0x0b, 0x8b, 0x5e, 0x89, 0xda, 0x03, 0x19}: "AmiReadyToLoadDxeCorePpiGuid", efi.GUID{0x86, 0x57, 0x3f, 0xff, 0x26, 0x70, 0x3f, 0x40, 0x9a, 0x95, 0x47, 0xf9, 0x89, 0x39, 0x12, 0x94}: "FchSmbusPei", efi.GUID{0x86, 0x57, 0x67, 0x65, 0xca, 0xac, 0x11, 0x4b, 0x8a, 0xb7, 0xf8, 0x43, 0xaa, 0x2a, 0x8b, 0xea}: "WdtHob", efi.GUID{0x86, 0x60, 0x4a, 0x29, 0x5a, 0x13, 0xd9, 0x4a, 0xa8, 0x9a, 0x56, 0xd5, 0xa3, 0x27, 0xf0, 0xe2}: "NbWrapperPei", efi.GUID{0x86, 0x60, 0xaa, 0x79, 0x5a, 0x03, 0xd9, 0x4a, 0xa8, 0x9a, 0xa6, 0xd5, 0xaa, 0x27, 0xf0, 0xe2}: "NbPei", efi.GUID{0x86, 0x63, 0x44, 0xbd, 0x8a, 0x7f, 0xe1, 0x4e, 0xa0, 0x14, 0x8d, 0x3b, 0xab, 0x92, 0xb4, 0xe9}: "EmulationPlatformInit", efi.GUID{0x86, 0x65, 0xc7, 0xba, 0x15, 0x35, 0x0b, 0x42, 0xa1, 0xb7, 0x23, 0x5a, 0x71, 0x6e, 0xca, 0xad}: "OutOfBand", efi.GUID{0x86, 0x7a, 0xc2, 0x33, 0x39, 0x0a, 0xda, 0x48, 0x94, 0x24, 0x68, 0x13, 0xe5, 0xc3, 0x92, 0x8d}: "CompalEcAutoFlash", efi.GUID{0x86, 0x7a, 0xc2, 0x33, 0x39, 0x0a, 0xda, 0x48, 0x94, 0x24, 0x68, 0x13, 0xe5, 0xc3, 0x93, 0x9d}: "A31CMFCDxe", efi.GUID{0x86, 0x7b, 0xc2, 0x33, 0x39, 0x0a, 0xda, 0x48, 0x94, 0x97, 0x68, 0xa3, 0xe5, 0xc3, 0x92, 0x8d}: "CompalPlatformHookDxe", efi.GUID{0x86, 0x87, 0x3b, 0x64, 0x17, 0xb4, 0xd2, 0x48, 0x8f, 0x5e, 0x78, 0x19, 0x93, 0x1c, 0xae, 0xd8}: "PeiInMemory", efi.GUID{0x86, 0x88, 0x6d, 0x73, 0x2b, 0x6d, 0x84, 0x46, 0xad, 0xde, 0x84, 0xbf, 0xab, 0x0f, 0x27, 0x37}: "SmiFlashLibs", efi.GUID{0x86, 0x8a, 0xc2, 0x39, 0x97, 0x90, 0xda, 0x48, 0xb4, 0x24, 0x6c, 0x13, 0xe3, 0xd3, 0x91, 0xfa}: "CompalEcDxe", efi.GUID{0x86, 0x8a, 0xc2, 0x39, 0x97, 0x91, 0x1a, 0x48, 0xb4, 0x24, 0x6c, 0x13, 0xe3, 0xd3, 0x91, 0xfa}: "CompalEcSmm", efi.GUID{0x86, 0x92, 0xc2, 0x23, 0x7d, 0x94, 0x70, 0x42, 0xb0, 0x61, 0x7f, 0xe5, 0xd0, 0x75, 0x8b, 0x63}: "Legacy2Region", efi.GUID{0x86, 0x93, 0xd8, 0x8c, 0x97, 0xc8, 0x98, 0x30, 0x96, 0x87, 0xc4, 0x6a, 0x5b, 0x7d, 0xec, 0x05}: "AmdCpmManageabilityDxe", efi.GUID{0x86, 0x9e, 0x79, 0x1b, 0xcc, 0x28, 0xbf, 0x4d, 0xa7, 0x63, 0xf7, 0xf3, 0x3f, 0xfd, 0x27, 0x72}: "SmuV13Dxe", efi.GUID{0x86, 0xa9, 0x34, 0xe2, 0x46, 0x89, 0x5d, 0x48, 0xa6, 0x45, 0xc8, 0x06, 0x22, 0x5f, 0x02, 0x13}: "BiosDiags_2_0", efi.GUID{0x86, 0xac, 0x69, 0xe2, 0x49, 0x60, 0x09, 0x45, 0x8d, 0x16, 0x88, 0x99, 0xda, 0x52, 0x9b, 0xbb}: "PeiCmosInit", efi.GUID{0x86, 0xb0, 0x26, 0xc8, 0x21, 0xae, 0x6c, 0x41, 0x99, 0x77, 0x0d, 0x55, 0xaa, 0xe7, 0x42, 0xb4}: "EcAuditLogPei", efi.GUID{0x86, 0xb1, 0x25, 0xb6, 0x63, 0xe0, 0xf7, 0x44, 0x89, 0x05, 0x6a, 0x74, 0xdc, 0x6f, 0x52, 0xb4}: "EfiDns4ServiceBindingProtocolGuid", efi.GUID{0x86, 0xb4, 0xc9, 0xde, 0x16, 0x1f, 0xc7, 0x47, 0x8f, 0x68, 0xdf, 0x1a, 0x41, 0x88, 0x8b, 0xa5}: "UefiOvmfPkgPlatformInfo", efi.GUID{0x86, 0xb8, 0x71, 0x14, 0x1f, 0xa0, 0x35, 0x48, 0x90, 0x3c, 0x5c, 0x7e, 0x79, 0x20, 0x75, 0xc2}: "OememPei", efi.GUID{0x86, 0xbe, 0xaf, 0x15, 0xf9, 0xe7, 0xf9, 0x42, 0xa0, 0x2d, 0xe9, 0x50, 0x43, 0xe6, 0x2f, 0x98}: "AdlSmbios", efi.GUID{0x86, 0xc8, 0xe3, 0xe5, 0xfa, 0x25, 0x0c, 0x4c, 0xb3, 0x90, 0xdc, 0xa2, 0x88, 0x9a, 0x3b, 0x21}: "AmdErrorLogDisplayShpDxe", efi.GUID{0x86, 0xc9, 0x52, 0x9d, 0x16, 0x0b, 0x0a, 0x42, 0x8d, 0x4d, 0xd2, 0xea, 0xeb, 0x59, 0x3d, 0xbf}: "AssetIDDxeProtocol", efi.GUID{0x86, 0xc9, 0x6c, 0xab, 0x03, 0x8d, 0x0c, 0x40, 0x9f, 0xa3, 0x96, 0x60, 0x9c, 0x3b, 0x7b, 0xd3}: "AmiUsbInterface", efi.GUID{0x86, 0xd4, 0x8d, 0x58, 0x41, 0x66, 0x8e, 0x45, 0x82, 0xa7, 0x5c, 0xbe, 0xb8, 0x60, 0x21, 0x11}: "AmdCpmOemInitPeim", efi.GUID{0x86, 0xd4, 0x8d, 0x58, 0x41, 0x66, 0x8e, 0x45, 0x82, 0xa7, 0x5c, 0xbe, 0xb8, 0x60, 0x2f, 0x30}: "AmdCpmOemInitPeim", efi.GUID{0x86, 0xd6, 0x72, 0x66, 0xc0, 0x98, 0x85, 0x45, 0x9c, 0x15, 0x94, 0x69, 0xad, 0x4d, 0xbb, 0xd1}: "DHCP_vProPei", efi.GUID{0x86, 0xd9, 0x1f, 0x04, 0x16, 0xb0, 0xce, 0x47, 0xaf, 0xc5, 0x22, 0x69, 0xed, 0xd4, 0xad, 0x64}: "ACPIS4Dxe", efi.GUID{0x86, 0xde, 0x59, 0xd3, 0x1b, 0x0a, 0xbc, 0x47, 0x95, 0xd2, 0x1d, 0x1f, 0x8f, 0xff, 0x0a, 0xd8}: "ChipsetSvcSmm", efi.GUID{0x86, 0xe4, 0x41, 0x61, 0x43, 0x75, 0x1a, 0x4f, 0xa5, 0x79, 0xff, 0x53, 0x2e, 0xd7, 0x8e, 0x75}: "ResetSystemPei", efi.GUID{0x86, 0xe5, 0xb2, 0x08, 0xa8, 0x35, 0x3f, 0x4a, 0xa9, 0xed, 0xe4, 0x81, 0x34, 0x89, 0x16, 0x01}: "SmcInBandSmm", efi.GUID{0x86, 0xe8, 0x59, 0x05, 0x78, 0xac, 0xcc, 0x4b, 0x89, 0x9a, 0xe7, 0x83, 0x0b, 0x5d, 0x64, 0x62}: "SystemSmbiosBcpSmm", efi.GUID{0x86, 0xf2, 0x7f, 0x26, 0x86, 0xb2, 0xb5, 0x41, 0xae, 0x00, 0x95, 0x1e, 0xe5, 0xd3, 0x9d, 0x09}: "BctBaseSmmRMB", efi.GUID{0x86, 0xf7, 0x5e, 0x0f, 0xa0, 0x17, 0xc6, 0x40, 0xbc, 0x18, 0x1b, 0x32, 0x72, 0xa0, 0x09, 0x87}: "IccInit", efi.GUID{0x86, 0xf7, 0x95, 0x61, 0xb1, 0xd7, 0xf1, 0x45, 0x9a, 0xc7, 0x82, 0xef, 0x97, 0x6a, 0xdf, 0x4c}: "SmcNVDIMMSmmDriver", efi.GUID{0x86, 0xfb, 0x0f, 0xa8, 0xac, 0x4c, 0x76, 0x4d, 0x80, 0xed, 0x25, 0xf6, 0x20, 0x54, 0xad, 0x87}: "WifiConnectionManagerDxe", efi.GUID{0x86, 0xff, 0x40, 0x08, 0x90, 0xf6, 0xd8, 0x4f, 0xa8, 0x91, 0x8b, 0xf9, 0x44, 0xb0, 0xf3, 0x24}: "DellSmmKeyboardBacklightProtocol", efi.GUID{0x87, 0x0d, 0x11, 0x69, 0xb3, 0x9b, 0xfc, 0x47, 0xb4, 0x12, 0x22, 0xe4, 0xf1, 0x35, 0xae, 0x38}: "AmdCpmMemEyeToolDxe", efi.GUID{0x87, 0x0d, 0x1d, 0x97, 0xd1, 0x78, 0x65, 0x4c, 0xa8, 0x36, 0xa4, 0x20, 0xdc, 0xac, 0x20, 0x28}: "DellAmdArchDepexDxe", efi.GUID{0x87, 0x12, 0x99, 0x84, 0xf0, 0x3f, 0xcc, 0x4f, 0x9c, 0x11, 0xc7, 0xe0, 0x41, 0x86, 0x2c, 0x76}: "DellPowerManagementDxe", efi.GUID{0x87, 0x16, 0x85, 0x6e, 0xa9, 0xa7, 0xa2, 0x4a, 0x8d, 0xd0, 0x67, 0x3e, 0x03, 0xe5, 0x14, 0x33}: "SetSockOpt", efi.GUID{0x87, 0x1a, 0x35, 0xa6, 0x65, 0x29, 0x18, 0x47, 0x88, 0xc7, 0x0b, 0x5b, 0x5a, 0xc0, 0xb5, 0xe4}: "AmiMrcInfoHob", efi.GUID{0x87, 0x22, 0x0d, 0x38, 0x1f, 0xa4, 0x02, 0x47, 0x98, 0xdf, 0xef, 0x88, 0x57, 0xa5, 0xcd, 0xde}: "PepOvrDxe", efi.GUID{0x87, 0x24, 0x66, 0x5a, 0x49, 0x07, 0x63, 0x41, 0xa9, 0xa0, 0xc2, 0x9c, 0x39, 0x5f, 0x65, 0x03}: "OemDMIUpdate", efi.GUID{0x87, 0x27, 0x70, 0x9e, 0x60, 0xc7, 0xed, 0x4c, 0xbf, 0x46, 0xed, 0xc4, 0x28, 0xf1, 0x82, 0xee}: "GopOverrideDriver", efi.GUID{0x87, 0x34, 0xf0, 0xa3, 0xc5, 0x9f, 0xdc, 0x4d, 0x9a, 0x44, 0x4b, 0x61, 0xb4, 0xd2, 0x76, 0xd8}: "FjCapsuleUpdateDxe", efi.GUID{0x87, 0x3b, 0xa1, 0x57, 0x3d, 0x13, 0xf3, 0x4b, 0xbf, 0xf1, 0x1b, 0xca, 0xc7, 0x17, 0x6c, 0xf1}: "EdkiiTcgPpi", efi.GUID{0x87, 0x48, 0x02, 0x0d, 0x89, 0xb4, 0x9f, 0x4e, 0x88, 0x4b, 0xa4, 0xb6, 0xbb, 0x8a, 0x57, 0x6b}: "ODMCompuTraceDxe", efi.GUID{0x87, 0x4e, 0x87, 0xdf, 0xc5, 0xff, 0x5d, 0x4c, 0x8b, 0x1e, 0x81, 0xee, 0x01, 0xa6, 0xd4, 0x35}: "SetupLoadDefaultPei", efi.GUID{0x87, 0x4f, 0x82, 0x2c, 0x2c, 0x0f, 0xd7, 0x45, 0x81, 0xa6, 0x4f, 0x39, 0xe0, 0x42, 0xbd, 0xdf}: "EfiPlatformTypeHedtCrbProtocol", efi.GUID{0x87, 0x4f, 0xeb, 0xbb, 0x0b, 0x72, 0xd4, 0x45, 0xaa, 0x61, 0xfb, 0xf6, 0xd4, 0xc5, 0x49, 0x61}: "AmtMacPassThrough", efi.GUID{0x87, 0x5b, 0x1c, 0x50, 0x81, 0x81, 0xe5, 0x4a, 0xa6, 0xb2, 0xd0, 0x5a, 0xce, 0x0d, 0x83, 0xde}: "SmcOobPlatformPolicyCallback", efi.GUID{0x87, 0x5b, 0x46, 0xda, 0x6f, 0xa2, 0x12, 0x4c, 0xb7, 0x8a, 0x03, 0x61, 0x42, 0x8f, 0xa0, 0x26}: "AssetQrCode", efi.GUID{0x87, 0x63, 0xf7, 0x17, 0x12, 0xde, 0x59, 0x4e, 0xa1, 0x07, 0x48, 0x5b, 0xb1, 0x33, 0xb4, 0xd6}: "SecureBioDxe", efi.GUID{0x87, 0x65, 0xf7, 0xd6, 0xca, 0x98, 0xde, 0x43, 0x9e, 0x1a, 0x59, 0xe6, 0x0d, 0x0a, 0xbe, 0x73}: "AplFakeCapsulePei", efi.GUID{0x87, 0x66, 0x0e, 0x72, 0xc4, 0x43, 0xea, 0x84, 0xe1, 0xb5, 0x23, 0xaa, 0xed, 0x35, 0x98, 0x40}: "IntelGbeUndi", efi.GUID{0x87, 0x78, 0x17, 0x51, 0x97, 0xa6, 0x6f, 0x43, 0x93, 0x7f, 0x1c, 0xdc, 0x42, 0x1a, 0x3d, 0xcb}: "AmdRasRsServiceDxe", efi.GUID{0x87, 0x7b, 0x35, 0xe9, 0x78, 0x38, 0x4a, 0x44, 0xa1, 0x0d, 0x67, 0x56, 0xb5, 0x42, 0xeb, 0xe7}: "JpegDecoder", efi.GUID{0x87, 0x7d, 0xba, 0x44, 0x96, 0xfd, 0xb8, 0x45, 0x93, 0xd3, 0xa8, 0xa0, 0xa9, 0x4d, 0x09, 0x85}: "AmtConfig", efi.GUID{0x87, 0x7f, 0x36, 0x87, 0x19, 0x11, 0xce, 0x41, 0xaa, 0xec, 0x8b, 0xe0, 0x11, 0x1f, 0x55, 0x8a}: "EfiJsonConfigDataTable", efi.GUID{0x87, 0x80, 0x9a, 0x6c, 0x8e, 0xb6, 0x3d, 0x4f, 0xb8, 0x7d, 0xa7, 0x6c, 0x82, 0x9c, 0x7d, 0x3e}: "CcgxDiscoverySmm", efi.GUID{0x87, 0x82, 0xdb, 0x85, 0x68, 0xb2, 0xf4, 0x4d, 0x92, 0x26, 0x73, 0x02, 0xb2, 0x11, 0xe3, 0x03}: "OSSelect", efi.GUID{0x87, 0x82, 0xe4, 0xf1, 0xe1, 0x3f, 0x35, 0x45, 0x89, 0xab, 0x48, 0xd6, 0xc3, 0xda, 0x27, 0x59}: "EfiHotKeysProtocol", efi.GUID{0x87, 0x86, 0x4f, 0x3a, 0xf0, 0x0a, 0x39, 0x4f, 0x87, 0xcf, 0x8a, 0x2d, 0xe9, 0x7a, 0xb3, 0xdb}: "PasswordMgrSmm", efi.GUID{0x87, 0x87, 0xe2, 0x20, 0x32, 0xdf, 0xda, 0x4b, 0xb7, 0xe7, 0xcb, 0xbd, 0xa3, 0x37, 0x1e, 0xf8}: "IdeControllerProtocol", efi.GUID{0x87, 0x8c, 0x87, 0x31, 0x75, 0x0b, 0xd5, 0x11, 0x9a, 0x4f, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d}: "EfiSimplePointerProtocolGuid", efi.GUID{0x87, 0x90, 0xc5, 0xb5, 0xac, 0xfe, 0x41, 0x4b, 0x9d, 0x80, 0x79, 0x0b, 0xa5, 0xaa, 0x07, 0x0f}: "FwVersion", efi.GUID{0x87, 0x95, 0x1a, 0xb8, 0xd1, 0xd1, 0x8e, 0x41, 0xcc, 0xcf, 0x50, 0x8d, 0xaf, 0xce, 0x4d, 0x8c}: "GraphicsConfigurationDefaultsSmm", efi.GUID{0x87, 0x97, 0xea, 0xc7, 0x0a, 0xca, 0xb4, 0x43, 0xb1, 0xe5, 0x25, 0xef, 0x87, 0x39, 0x1f, 0x8d}: "PchS3Support", efi.GUID{0x87, 0x9c, 0xe0, 0x9f, 0xd8, 0x6f, 0x63, 0x40, 0x8e, 0xbe, 0x68, 0x09, 0xef, 0x5e, 0xab, 0xc5}: "HpCompressDecompress", efi.GUID{0x87, 0x9d, 0xd5, 0x57, 0xa9, 0xa2, 0x2c, 0x48, 0x8e, 0xc7, 0xd9, 0xf9, 0xfa, 0x3e, 0x20, 0xf4}: "PlatformWmiAslSupport", efi.GUID{0x87, 0x9d, 0xd6, 0xc3, 0x00, 0x52, 0xab, 0x4a, 0xa6, 0xdb, 0x25, 0x69, 0xba, 0x1a, 0x92, 0xfc}: "Tpm2DeviceLibRouterDxe", efi.GUID{0x87, 0xa8, 0xcc, 0xad, 0x30, 0x53, 0x4a, 0x41, 0x81, 0xa1, 0x5b, 0x57, 0x81, 0x46, 0xa3, 0x97}: "TgaDecoderDxe", efi.GUID{0x87, 0xab, 0xee, 0xa1, 0x59, 0xc8, 0x9d, 0x47, 0x89, 0xb5, 0x14, 0x61, 0xf4, 0x06, 0x1a, 0x3e}: "FspInApiModePpi", efi.GUID{0x87, 0xac, 0xcf, 0x27, 0xcc, 0x46, 0xd4, 0x11, 0x9a, 0x38, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d}: "EfiRealTimeClockArchProtocolGuid", efi.GUID{0x87, 0xc2, 0x38, 0x35, 0xd0, 0xf7, 0x2a, 0x4c, 0xbe, 0x3c, 0x2d, 0x7e, 0x27, 0xa5, 0x7a, 0x3f}: "BmcThermalPei", efi.GUID{0x87, 0xc5, 0xb4, 0xf1, 0x35, 0x6e, 0xab, 0x4f, 0xb9, 0x46, 0xfa, 0xe2, 0x59, 0x63, 0x86, 0x60}: "FjGabiFlashBiosRegionCtrlDxe", efi.GUID{0x87, 0xc8, 0xee, 0x28, 0x28, 0xbe, 0x44, 0x4b, 0x9f, 0xc5, 0x41, 0xc7, 0x07, 0x84, 0xd3, 0xe1}: "SwSmi534D0040Shp", efi.GUID{0x87, 0xcd, 0x7f, 0x2d, 0x54, 0x45, 0x64, 0x45, 0xb8, 0x11, 0x0f, 0x91, 0x67, 0xf7, 0x82, 0xb3}: "CrbAcpiPlatform", efi.GUID{0x87, 0xd4, 0x39, 0x63, 0xba, 0x26, 0x4b, 0x42, 0x9a, 0x5d, 0x68, 0x7e, 0x25, 0xd7, 0x40, 0xbc}: "Tcg2ConfigFormSetGuid", efi.GUID{0x87, 0xd7, 0x72, 0x78, 0xad, 0x4d, 0x96, 0x44, 0xbe, 0x61, 0xed, 0xb5, 0xb5, 0xf0, 0x12, 0xe7}: "SpdDataReadPei", efi.GUID{0x87, 0xdd, 0xff, 0x55, 0xc2, 0xf6, 0xdd, 0x49, 0xa7, 0x24, 0xf1, 0x97, 0xe6, 0x0a, 0xb0, 0x20}: "LemKeyboardLayoutProtocol", efi.GUID{0x87, 0xdf, 0x41, 0xb4, 0x94, 0x8d, 0x11, 0x48, 0x85, 0xf7, 0x0f, 0x9a, 0x7b, 0xf8, 0x9d, 0x2a}: "MeAlertAtHandler", efi.GUID{0x87, 0xe2, 0x8c, 0x03, 0x06, 0xb8, 0xb6, 0x45, 0xa8, 0x19, 0x51, 0x4d, 0xaf, 0x4b, 0x91, 0xb9}: "DellErrorLogConfig", efi.GUID{0x87, 0xe3, 0x59, 0xd9, 0x91, 0x7b, 0x2c, 0x45, 0x90, 0xe0, 0xa1, 0xdb, 0xac, 0x90, 0xdd, 0xb8}: "ArmPlatformPrePiUniCore", efi.GUID{0x87, 0xe8, 0x15, 0xba, 0xf5, 0xab, 0x8f, 0x43, 0xb8, 0x7a, 0x31, 0x10, 0xf1, 0xc8, 0xac, 0xe2}: "XhciPdoResetWA", efi.GUID{0x87, 0xed, 0xf7, 0xe4, 0xd5, 0x1e, 0x20, 0x47, 0xa5, 0x7d, 0x5b, 0xa0, 0x0a, 0x72, 0x75, 0x87}: "DdrtErrorHandler", efi.GUID{0x87, 0xf2, 0xa6, 0x7d, 0xe3, 0x4b, 0xcc, 0x45, 0x85, 0x15, 0xe2, 0x74, 0x86, 0x93, 0x6c, 0x0e}: "BoardSyncPspFwAToPspFwBDxe", efi.GUID{0x87, 0xfb, 0x3c, 0x8c, 0xae, 0xf7, 0x36, 0x4a, 0xaa, 0xff, 0x93, 0x1f, 0xdc, 0x5f, 0x43, 0x6e}: "AzaliaInitPei", efi.GUID{0x88, 0x08, 0xdc, 0xe1, 0xac, 0xc5, 0x2c, 0x4a, 0x83, 0xa5, 0x91, 0xad, 0x26, 0x96, 0x0f, 0x31}: "DellTpmPpiSmm", efi.GUID{0x88, 0x0d, 0x98, 0xe7, 0xfc, 0x35, 0x20, 0x4c, 0x83, 0x19, 0x92, 0x1a, 0x73, 0xc9, 0xa2, 0x39}: "SioChip1InitDxe", efi.GUID{0x88, 0x11, 0x57, 0xe8, 0xc1, 0x00, 0xd4, 0x4e, 0xb1, 0x4e, 0xe3, 0x84, 0x51, 0x35, 0x1e, 0xc4}: "HddPassword", efi.GUID{0x88, 0x11, 0xa1, 0x64, 0x86, 0x5b, 0x59, 0x4f, 0xa7, 0x02, 0x73, 0x36, 0x58, 0x96, 0xe6, 0x5e}: "AcpiVTD", efi.GUID{0x88, 0x16, 0x40, 0x41, 0x62, 0x28, 0x1b, 0x43, 0xba, 0xac, 0x6e, 0xca, 0xda, 0xc3, 0x84, 0xab}: "PciCfg2OnPciCfgThunk", efi.GUID{0x88, 0x1b, 0x91, 0xee, 0xe3, 0x39, 0x56, 0x4f, 0xb9, 0x4c, 0x64, 0xff, 0xf5, 0xb5, 0x3a, 0x3b}: "AmdCpmABRecoveryPeim", efi.GUID{0x88, 0x1f, 0xd4, 0xa7, 0xb8, 0x1c, 0xfb, 0x4b, 0x90, 0x1c, 0xf6, 0x8b, 0xd2, 0xa4, 0x7e, 0x9d}: "EcMeDisableDxe", efi.GUID{0x88, 0x35, 0x01, 0x07, 0x89, 0xc7, 0x12, 0x4e, 0xa7, 0xc3, 0x88, 0xfa, 0xfa, 0xe7, 0x9f, 0x7c}: "EfiSocketProcessorCoreVar", efi.GUID{0x88, 0x38, 0xc8, 0x40, 0x77, 0xa4, 0x0e, 0x49, 0xa0, 0xad, 0x7b, 0x96, 0x8c, 0xa2, 0xd7, 0x3f}: "DellVRHeatsinkDxe", efi.GUID{0x88, 0x3a, 0x16, 0x8f, 0x76, 0x23, 0xb3, 0x40, 0x89, 0xf7, 0xaa, 0xc7, 0x3e, 0x29, 0xe9, 0x41}: "HpRemoteDiagnosticsDriver", efi.GUID{0x88, 0x3d, 0xca, 0xcb, 0x1e, 0xcb, 0xc3, 0x49, 0xb4, 0x48, 0x5f, 0xf2, 0x87, 0xc5, 0x8d, 0x40}: "LenovoEn25Qh32FlashPartSmm", efi.GUID{0x88, 0x42, 0xce, 0x75, 0x5d, 0xde, 0x24, 0x4e, 0x90, 0xb5, 0xf7, 0x5b, 0xd7, 0x8e, 0x6b, 0xa1}: "SecureFirmwareVolumeDxe", efi.GUID{0x88, 0x5a, 0x4c, 0x99, 0xe2, 0xfc, 0xe5, 0x43, 0x9e, 0xa4, 0x2f, 0xab, 0xcb, 0x15, 0x30, 0x1d}: "SmmStatusCode", efi.GUID{0x88, 0x63, 0xb8, 0x9a, 0xf2, 0x95, 0x69, 0x4f, 0xac, 0xdc, 0xe1, 0x74, 0x9e, 0x54, 0x09, 0xf0}: "VariableCheckerSmm", efi.GUID{0x88, 0x6f, 0xe9, 0xe7, 0x7b, 0x01, 0x7c, 0x41, 0x8d, 0xc8, 0xb8, 0x4c, 0x2b, 0x87, 0x70, 0x20}: "BaseFspWrapperApiTestLibNull", efi.GUID{0x88, 0x71, 0xcc, 0x97, 0xc9, 0x79, 0x9f, 0x44, 0xb9, 0x69, 0x06, 0x5b, 0x64, 0xbf, 0x9c, 0x69}: "BiosExtensionLoader", efi.GUID{0x88, 0x71, 0xf1, 0x4d, 0x20, 0xf3, 0x15, 0x47, 0x82, 0xda, 0xa0, 0x5d, 0xef, 0x51, 0xf1, 0x11}: "AmdCpmOemInitPeim", efi.GUID{0x88, 0x71, 0xf1, 0x4d, 0x20, 0xf3, 0x15, 0x47, 0x82, 0xda, 0xa0, 0x5d, 0xef, 0x51, 0xf1, 0xd8}: "AmdCpmOemRvInitPeim", efi.GUID{0x88, 0x73, 0x41, 0x1b, 0xb7, 0xb6, 0x26, 0x40, 0xb8, 0x49, 0x30, 0x06, 0x04, 0x77, 0xa2, 0xad}: "BootDeviceOptionsWmi", efi.GUID{0x88, 0x77, 0xdf, 0xfc, 0x78, 0x78, 0xff, 0x11, 0xcc, 0x77, 0x88, 0xcc, 0xcc, 0x77, 0x88, 0xcc}: "EfiSmmRcToAptioBridge", efi.GUID{0x88, 0x7b, 0x4c, 0x90, 0xcf, 0x70, 0x57, 0x45, 0x90, 0x23, 0x85, 0xaa, 0x21, 0x53, 0xaa, 0xf0}: "AsusControlCenterBios", efi.GUID{0x88, 0x81, 0x01, 0x08, 0xcd, 0x42, 0x48, 0xbb, 0x10, 0x0f, 0x53, 0x87, 0xd5, 0x3d, 0xed, 0x3d}: "EfiPersistentVirtualCdGuid", efi.GUID{0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88}: "WholeFv", efi.GUID{0x88, 0x8f, 0x11, 0xba, 0x65, 0x5b, 0x84, 0x45, 0x9c, 0x5a, 0xc2, 0xd0, 0x87, 0xf6, 0xed, 0x1e}: "IrsiRuntimeDxe", efi.GUID{0x88, 0x8f, 0x7e, 0xce, 0x27, 0x9d, 0xc9, 0x46, 0xb6, 0x33, 0x21, 0xf8, 0xb8, 0x71, 0x20, 0x71}: "BaseBoardPei", efi.GUID{0x88, 0x91, 0x1e, 0x17, 0xd3, 0x31, 0xf5, 0x40, 0xb1, 0x0c, 0x53, 0x9b, 0x2d, 0xb9, 0x40, 0xcd}: "EfiShellPkgTokenSpaceGuid", efi.GUID{0x88, 0x92, 0x00, 0x2c, 0x14, 0x9c, 0xd9, 0x4a, 0x88, 0x77, 0xf0, 0xc2, 0xcb, 0xaa, 0x98, 0x93}: "HpKeyboardLayout", efi.GUID{0x88, 0x9a, 0xbe, 0xaa, 0x9c, 0xf0, 0x9f, 0x42, 0xb2, 0x93, 0x2d, 0x2d, 0xa9, 0xda, 0x99, 0x80}: "AudioDxe", efi.GUID{0x88, 0xa0, 0x23, 0x08, 0x48, 0x12, 0x85, 0x42, 0x96, 0x16, 0x01, 0x11, 0xcc, 0x76, 0xd3, 0xc5}: "SmbusRecovery", efi.GUID{0x88, 0xac, 0xcf, 0x27, 0xcc, 0x46, 0xd4, 0x11, 0x9a, 0x38, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d}: "EfiResetArchProtocolGuid", efi.GUID{0x88, 0xc8, 0xab, 0xd2, 0x13, 0xae, 0x3b, 0x4e, 0xbc, 0xee, 0x5d, 0xe3, 0x68, 0xfa, 0x4e, 0x72}: "MsegSmramPeim", efi.GUID{0x88, 0xca, 0xbf, 0x12, 0x2f, 0x7a, 0xb5, 0x4a, 0x9a, 0x5d, 0xc4, 0x0c, 0xa6, 0x8b, 0xf7, 0x5f}: "BootOrderSection", efi.GUID{0x88, 0xcc, 0xd0, 0xf3, 0xd3, 0x1b, 0xfe, 0x4e, 0x92, 0x94, 0x42, 0x3b, 0xb4, 0x95, 0xf6, 0xc6}: "DellDaCallingInterfaceSmm", efi.GUID{0x88, 0xdb, 0x67, 0x64, 0x72, 0x3e, 0x88, 0x44, 0x91, 0xe8, 0x7e, 0x02, 0x8a, 0xd0, 0x8c, 0xf8}: "DellIntrusionDetectPei", efi.GUID{0x88, 0xf2, 0x23, 0xc7, 0xf9, 0x52, 0x80, 0x4d, 0xb6, 0x33, 0xe1, 0x52, 0xf9, 0x30, 0xa0, 0xdc}: "EfiSimpleAudioOutProtocol", efi.GUID{0x88, 0xf2, 0x85, 0x08, 0x8c, 0x41, 0xe1, 0x4b, 0xa6, 0xaf, 0x8b, 0xad, 0x61, 0xda, 0x08, 0xfe}: "AmiTseDriverHealthEnb", efi.GUID{0x88, 0xf8, 0xf8, 0xa5, 0x91, 0x71, 0x9b, 0x42, 0x81, 0xae, 0x26, 0x88, 0xf4, 0x15, 0xbd, 0x2b}: "DellSmmGpioLookupPolicy", efi.GUID{0x88, 0xfb, 0x83, 0x06, 0x4c, 0x66, 0xa6, 0x4b, 0x9e, 0xd4, 0x1c, 0x09, 0x16, 0xee, 0x43, 0xa4}: "UserAuthenticationDxe", efi.GUID{0x88, 0xfe, 0x82, 0x48, 0xc6, 0x7a, 0x8f, 0x41, 0xbe, 0xc4, 0x3a, 0xf4, 0x37, 0x3a, 0x33, 0x74}: "FjBootVariableCheck", efi.GUID{0x89, 0x03, 0x8f, 0xae, 0xa2, 0x6b, 0xd3, 0x47, 0x9e, 0x55, 0x80, 0xb3, 0xdd, 0x9b, 0x8a, 0x98}: "DfciMenu", efi.GUID{0x89, 0x04, 0xd6, 0xde, 0x9c, 0x97, 0x5a, 0x4b, 0x8e, 0xe4, 0x40, 0x68, 0xb0, 0xcc, 0x38, 0xdc}: "OpalPasswordPei", efi.GUID{0x89, 0x0d, 0xad, 0x31, 0xb3, 0x75, 0xf3, 0x4c, 0xa1, 0xc2, 0x87, 0x73, 0x94, 0xed, 0xc6, 0x01}: "AmdNbioIOMMURPLPei", efi.GUID{0x89, 0x13, 0x41, 0x3d, 0x06, 0xf6, 0x5e, 0x48, 0xb7, 0xbb, 0xcb, 0x6e, 0xab, 0x46, 0x72, 0xcd}: "FjBIOSMasterPasswordBin", efi.GUID{0x89, 0x23, 0xad, 0x5f, 0xc7, 0x2b, 0xd2, 0x4b, 0x83, 0xd3, 0x42, 0x9f, 0xb6, 0xae, 0xa3, 0x3f}: "EfiSerialPortTokenSpaceGuid", efi.GUID{0x89, 0x2c, 0xb2, 0x71, 0x49, 0xb8, 0x83, 0x4d, 0x81, 0x15, 0x45, 0x63, 0xa6, 0x26, 0xac, 0x8d}: "KEMhGpioAccPei", efi.GUID{0x89, 0x31, 0x93, 0x9d, 0xe7, 0xee, 0x7c, 0x45, 0x98, 0x1e, 0x58, 0x1c, 0x1a, 0x63, 0x9f, 0xc3}: "AbtExtendedMessageProtocol", efi.GUID{0x89, 0x37, 0xde, 0x50, 0x33, 0xbd, 0xef, 0x4a, 0xb1, 0x82, 0x7f, 0xe9, 0x18, 0x3e, 0x88, 0xda}: "DellErrorHandlerSmmProtocolGuidVer2", efi.GUID{0x89, 0x3b, 0x6f, 0xfe, 0x17, 0x64, 0x00, 0x4f, 0xa2, 0x06, 0xea, 0x52, 0xe7, 0xd4, 0x4d, 0x3d}: "LenovoSmmAmtConfig", efi.GUID{0x89, 0x3d, 0xb5, 0xaa, 0xc6, 0x3a, 0xd1, 0x40, 0x8c, 0x65, 0x44, 0xea, 0x1f, 0xca, 0x9a, 0x4e}: "AmiPspRebuildBSmmCommunicate", efi.GUID{0x89, 0x3d, 0xc5, 0x81, 0x38, 0xe2, 0x33, 0x41, 0xbb, 0xd2, 0x5b, 0xda, 0x8b, 0xed, 0xec, 0x85}: "StorageEraseDxe", efi.GUID{0x89, 0x3f, 0xf5, 0x4d, 0x21, 0xd4, 0x9d, 0x4f, 0x83, 0x92, 0xbe, 0x3b, 0xec, 0xc6, 0x28, 0x8e}: "AhciInt13Dxe", efi.GUID{0x89, 0x44, 0x50, 0x6a, 0x4e, 0x88, 0x65, 0x44, 0xa0, 0x2f, 0x03, 0xb2, 0x48, 0xcd, 0xef, 0x13}: "UserInterfaceTheme", efi.GUID{0x89, 0x4a, 0x7f, 0xa1, 0x19, 0x5f, 0x4f, 0x44, 0xb7, 0xbe, 0x48, 0x19, 0x5e, 0x05, 0x75, 0xdb}: "SmbiosGenDxe", efi.GUID{0x89, 0x52, 0xb5, 0x78, 0x93, 0x53, 0x3a, 0x4a, 0x83, 0x4a, 0x11, 0x1a, 0xd7, 0x72, 0x69, 0x70}: "DellIoExpanderPca9555Smm", efi.GUID{0x89, 0x55, 0xd7, 0xa5, 0x9e, 0x58, 0xfb, 0x49, 0x8f, 0x93, 0xf4, 0x94, 0x28, 0x0e, 0xa1, 0xbd}: "SmbiosType140", efi.GUID{0x89, 0x5b, 0x70, 0x83, 0xf9, 0xcb, 0xf8, 0x44, 0x85, 0x46, 0xe0, 0x12, 0x4c, 0x68, 0x2d, 0x08}: "SpiNorFlashJedecSmm", efi.GUID{0x89, 0x60, 0x26, 0x5c, 0x03, 0xe1, 0x43, 0x4d, 0x9a, 0xb5, 0x12, 0xd7, 0x09, 0x5b, 0xe2, 0xaf}: "IntelSaGopDriver", efi.GUID{0x89, 0x60, 0x82, 0x12, 0xec, 0xd1, 0x05, 0x45, 0xb3, 0xae, 0x8e, 0x4c, 0xf3, 0xa4, 0xa7, 0x8b}: "SetBoardId", efi.GUID{0x89, 0x61, 0x1a, 0xc3, 0x9a, 0x63, 0x8b, 0x45, 0xb0, 0x40, 0xd7, 0xd5, 0x06, 0xca, 0x8f, 0x4f}: "GetHostByAddr", efi.GUID{0x89, 0x61, 0xd1, 0x57, 0x07, 0x7a, 0xfd, 0x4e, 0x97, 0x01, 0x5a, 0x19, 0xfe, 0x12, 0x0e, 0x73}: "PermanentlyRemoval", efi.GUID{0x89, 0x65, 0x38, 0xec, 0x9f, 0x99, 0x2d, 0x47, 0x89, 0x05, 0xca, 0xa5, 0x33, 0x2f, 0x64, 0x2a}: "H19TextColorsHook", efi.GUID{0x89, 0x6a, 0xf3, 0x36, 0xc3, 0x7a, 0x09, 0x4a, 0x99, 0x21, 0x89, 0x0e, 0x2c, 0x9d, 0x80, 0xa8}: "FjGabiNvramSmm", efi.GUID{0x89, 0x71, 0x55, 0x3f, 0xae, 0x8d, 0xae, 0x45, 0xa0, 0xb3, 0x2b, 0x99, 0xca, 0x7a, 0xa7, 0xa0}: "EfiFtwLiteProtocol", efi.GUID{0x89, 0x76, 0xb9, 0x08, 0xaf, 0x86, 0x36, 0x4a, 0x9e, 0x35, 0x11, 0x7b, 0x4d, 0x2e, 0xf2, 0x6a}: "AfscDxe", efi.GUID{0x89, 0x7a, 0x33, 0x5c, 0x08, 0xc7, 0x03, 0x4b, 0x94, 0x85, 0xc0, 0x8b, 0xca, 0x6f, 0xa8, 0xfa}: "SmmEntry64", efi.GUID{0x89, 0x95, 0x1e, 0x50, 0x8e, 0x8e, 0xaf, 0x4d, 0xa4, 0x66, 0x09, 0x42, 0x26, 0x13, 0x19, 0x9d}: "PrmSamplePrint", efi.GUID{0x89, 0x97, 0xe6, 0xd7, 0x68, 0x1f, 0xe8, 0x45, 0x96, 0xef, 0x3b, 0x64, 0x07, 0xa5, 0xb2, 0xdc}: "EfiKmsFormatAescbc256Guid", efi.GUID{0x89, 0x9d, 0xf1, 0x73, 0xa3, 0x1e, 0xb8, 0x45, 0x86, 0xa2, 0x9e, 0x15, 0x39, 0x47, 0xa0, 0x34}: "SBURetimerFMP", efi.GUID{0x89, 0xa4, 0xe0, 0xc0, 0x6c, 0xfb, 0x09, 0x45, 0xb1, 0xb3, 0xc7, 0x11, 0x9d, 0x48, 0x95, 0x02}: "XnoteAcpiNvsSmm", efi.GUID{0x89, 0xaa, 0xeb, 0x2d, 0x51, 0x2d, 0x5f, 0x48, 0xa2, 0xfa, 0x2a, 0x62, 0xf9, 0x42, 0x23, 0x64}: "HiiStringLanguageService", efi.GUID{0x89, 0xaf, 0x86, 0x00, 0x1a, 0xae, 0x35, 0x44, 0xa6, 0x98, 0x08, 0x15, 0xe8, 0x50, 0xa0, 0x04}: "AsusSetupReserveVariableItem", efi.GUID{0x89, 0xb3, 0x74, 0x9a, 0x07, 0x96, 0x99, 0x4c, 0xbd, 0x57, 0xa2, 0xe7, 0xd2, 0x72, 0xda, 0xe1}: "DellBootMenuFlashDxe", efi.GUID{0x89, 0xbd, 0xb3, 0x83, 0x76, 0x52, 0x5a, 0x4e, 0x8d, 0xef, 0x2e, 0x5a, 0x5e, 0xf2, 0xf2, 0xa3}: "PlatformSxConfig", efi.GUID{0x89, 0xbf, 0x6d, 0x4f, 0x7b, 0xc9, 0x60, 0x4f, 0x81, 0x78, 0x22, 0xa8, 0x2f, 0x96, 0xd0, 0x62}: "MeLockStatusDxe", efi.GUID{0x89, 0xbf, 0xf4, 0xda, 0x71, 0xce, 0x17, 0x49, 0xb5, 0x22, 0xc8, 0x9d, 0x32, 0xfb, 0xc5, 0x9f}: "SMBiosStaticData", efi.GUID{0x89, 0xc0, 0x08, 0x2f, 0x73, 0x20, 0xd9, 0x4b, 0x9e, 0x7e, 0x30, 0x8a, 0x18, 0x32, 0x7b, 0x53}: "IconWirelessSmall", efi.GUID{0x89, 0xcc, 0x76, 0x75, 0xa3, 0x8f, 0xad, 0x4c, 0xba, 0x02, 0x61, 0x19, 0xb4, 0x6e, 0xd4, 0x4a}: "AmiSioSmmHandoffProtocolGuid", efi.GUID{0x89, 0xd6, 0x72, 0x4d, 0x91, 0xcb, 0x48, 0x42, 0xa6, 0x0e, 0x33, 0x3c, 0x98, 0x27, 0x6d, 0xde}: "FjDeviceFwUpdateDxe", efi.GUID{0x89, 0xdc, 0xec, 0xaa, 0x49, 0x2a, 0xf1, 0x46, 0xa1, 0x63, 0xf7, 0x97, 0x9c, 0x03, 0x99, 0x98}: "IdeBusSrc", efi.GUID{0x89, 0xdd, 0xd4, 0x28, 0x9e, 0x16, 0xdd, 0x49, 0x84, 0x86, 0xa2, 0x00, 0xa2, 0xfd, 0x3c, 0x21}: "AmiPerformanceProfiling", efi.GUID{0x89, 0xe0, 0x77, 0x0a, 0x90, 0x15, 0x42, 0x44, 0xbb, 0xea, 0x11, 0x5e, 0x19, 0xe6, 0x35, 0x8a}: "EfiOsWdtPolicyProtocol", efi.GUID{0x89, 0xe2, 0xfa, 0x88, 0x6a, 0x0a, 0x97, 0x40, 0x9c, 0xca, 0x2b, 0xed, 0x64, 0x5b, 0x09, 0x4d}: "AplDxeIpl", efi.GUID{0x89, 0xe7, 0xe1, 0x2b, 0x48, 0x35, 0xb3, 0x43, 0x9e, 0xea, 0xb4, 0xc8, 0x87, 0x5e, 0x03, 0x21}: "A01ServiceBodyPei", efi.GUID{0x89, 0xe8, 0x37, 0x75, 0x63, 0xfc, 0xd2, 0x42, 0xb4, 0x00, 0xf7, 0x64, 0x6c, 0x45, 0xce, 0xe3}: "CastroCovePmicNvm", efi.GUID{0x89, 0xe8, 0x68, 0x3f, 0x77, 0xcb, 0xfc, 0x4e, 0xbc, 0x84, 0xaf, 0xa0, 0xa6, 0x4a, 0xd2, 0x6e}: "LsConnectorDxe", efi.GUID{0x89, 0xf4, 0x60, 0xa9, 0x73, 0x97, 0xcd, 0x40, 0x85, 0x2c, 0x55, 0x82, 0x2d, 0x53, 0x3f, 0x19}: "H19ComputraceRuntimeDxe", efi.GUID{0x8a, 0x07, 0x98, 0xb7, 0x0d, 0xf0, 0x90, 0x4f, 0x9d, 0xca, 0xd4, 0x32, 0x6e, 0xf8, 0x4b, 0xbf}: "HPReadBackCreateHpCleanNvram", efi.GUID{0x8a, 0x08, 0x40, 0xf1, 0xb0, 0x05, 0xe3, 0x46, 0x83, 0xff, 0xd5, 0xa6, 0x9b, 0x7c, 0x71, 0x85}: "SioIt8669eDxe", efi.GUID{0x8a, 0x11, 0x07, 0x9a, 0x8d, 0x76, 0x9b, 0x44, 0x97, 0xd0, 0x6a, 0xdc, 0x8f, 0x2b, 0x02, 0x44}: "CpuMpPei", efi.GUID{0x8a, 0x1e, 0x80, 0x8c, 0x95, 0x1a, 0x0f, 0x45, 0xbc, 0x59, 0xae, 0x49, 0x0d, 0xf2, 0x30, 0x29}: "FjShutdownLogSmm", efi.GUID{0x8a, 0x2e, 0xab, 0x7c, 0x99, 0xb7, 0x40, 0x45, 0x85, 0x17, 0x58, 0x64, 0x4d, 0x03, 0xcc, 0x9f}: "LenovoAtpSmiServices", efi.GUID{0x8a, 0x34, 0x9a, 0x35, 0xab, 0xca, 0xd0, 0x43, 0x8e, 0x30, 0xff, 0x87, 0x59, 0x29, 0xd5, 0x31}: "PchIoExpanderPreMem", efi.GUID{0x8a, 0x35, 0x88, 0xd9, 0x7f, 0x15, 0xb7, 0x43, 0x9a, 0x7a, 0x27, 0x57, 0xd6, 0x63, 0xdc, 0xeb}: "DellStorageAgentConfigPolicy", efi.GUID{0x8a, 0x38, 0x91, 0x50, 0xb6, 0x4b, 0xa5, 0x4d, 0xa4, 0x93, 0x5e, 0xe7, 0xa9, 0x0c, 0xea, 0x5e}: "OemBoardID", efi.GUID{0x8a, 0x40, 0x84, 0xca, 0x29, 0x09, 0x11, 0x4f, 0xbf, 0xed, 0x18, 0xc7, 0xd9, 0x57, 0x6c, 0x6b}: "PlatformInitDxe", efi.GUID{0x8a, 0x41, 0x37, 0x32, 0x8c, 0x47, 0x00, 0x47, 0xb5, 0x9f, 0x76, 0x8e, 0x2c, 0xcb, 0xc7, 0x26}: "CmosDxe", efi.GUID{0x8a, 0x45, 0xac, 0x25, 0x60, 0xcf, 0x6e, 0x47, 0x86, 0x1a, 0x21, 0x1c, 0x75, 0x76, 0x57, 0xa6}: "SnpDxePort", efi.GUID{0x8a, 0x55, 0x9a, 0x53, 0xc7, 0xc4, 0x78, 0x49, 0xb5, 0x2d, 0x14, 0x92, 0x41, 0x5e, 0xf6, 0x4d}: "RomDataMigration", efi.GUID{0x8a, 0x5a, 0x39, 0x79, 0xbb, 0x53, 0xbe, 0x41, 0xa6, 0xe6, 0xf6, 0x5e, 0x9a, 0xe4, 0xe0, 0xea}: "KEMhAcpi", efi.GUID{0x8a, 0x60, 0x6c, 0x31, 0x29, 0x44, 0xfc, 0x49, 0x9e, 0x2c, 0x0b, 0x81, 0x4d, 0x5e, 0xe4, 0xf3}: "PlatformPolicyManagerDxe", efi.GUID{0x8a, 0x61, 0x6c, 0x31, 0x29, 0x44, 0x3c, 0x49, 0x9e, 0x2c, 0x0b, 0xa1, 0x4d, 0x5e, 0xe4, 0xf3}: "SstSpiChipDxe", efi.GUID{0x8a, 0x69, 0x2f, 0xf1, 0x06, 0xe5, 0x1b, 0x4a, 0xb3, 0x2e, 0x69, 0x20, 0xe5, 0x5d, 0xa1, 0xc4}: "TpmMmioSevDecryptPei", efi.GUID{0x8a, 0x6b, 0x2e, 0xc2, 0x59, 0x81, 0xa3, 0x49, 0xb3, 0x53, 0xe8, 0x4b, 0x79, 0xdf, 0x19, 0xc0}: "VARIABLE", efi.GUID{0x8a, 0x78, 0x78, 0x9a, 0xe8, 0xbb, 0xe4, 0x11, 0x80, 0x9e, 0x67, 0x61, 0x1e, 0x5d, 0x46, 0xb0}: "EfiEventNotificationTypeSea", efi.GUID{0x8a, 0x79, 0x10, 0x58, 0x30, 0xed, 0x80, 0x40, 0x8d, 0xd7, 0xb9, 0x66, 0x7a, 0x74, 0x8c, 0x02}: "HashInstanceLibSha256", efi.GUID{0x8a, 0x8b, 0xe7, 0x45, 0x68, 0xbd, 0x3a, 0x45, 0x8e, 0x9e, 0xc3, 0x77, 0x31, 0x08, 0xb2, 0x13}: "SiInitPreMemPch", efi.GUID{0x8a, 0x8c, 0x3c, 0x24, 0xd0, 0xbb, 0xa9, 0x4a, 0xbe, 0x17, 0xcf, 0x9b, 0x58, 0x31, 0x30, 0xec}: "SmmOEMInt15", efi.GUID{0x8a, 0x8f, 0x4a, 0x17, 0x53, 0x7b, 0xb4, 0x48, 0xac, 0xa9, 0xd9, 0x55, 0xab, 0x1b, 0x5e, 0x90}: "SrSetupPure", efi.GUID{0x8a, 0x90, 0x82, 0xf2, 0xf9, 0xa6, 0x50, 0x4e, 0x9d, 0x6c, 0x21, 0x04, 0x78, 0xf1, 0xed, 0x46}: "FtBbUpdate", efi.GUID{0x8a, 0x91, 0x66, 0xeb, 0xef, 0x7e, 0x2a, 0x40, 0x84, 0x2e, 0x93, 0x1d, 0x21, 0xc3, 0x8a, 0xe9}: "EfiRtPropertiesTable", efi.GUID{0x8a, 0x91, 0x81, 0xcc, 0x55, 0xac, 0xcd, 0x4f, 0x83, 0xe6, 0x0c, 0x1c, 0xc2, 0x29, 0x37, 0xea}: "WakeSourcePei", efi.GUID{0x8a, 0x98, 0xdc, 0xb6, 0x85, 0x3d, 0x4d, 0x41, 0x88, 0x8f, 0x78, 0x16, 0x26, 0x35, 0x33, 0xd8}: "UcodeCapsuleDxe", efi.GUID{0x8a, 0x9b, 0x0d, 0x9e, 0x50, 0x1d, 0x8f, 0x44, 0x8f, 0xc6, 0x12, 0xf3, 0x22, 0x18, 0xa3, 0x46}: "IT889XPei", efi.GUID{0x8a, 0x9e, 0x80, 0xf1, 0xb8, 0xac, 0x76, 0x41, 0x8c, 0xd4, 0xb9, 0x84, 0x14, 0xd0, 0xfd, 0x0d}: "ApicInfoDataDxe", efi.GUID{0x8a, 0xa6, 0x50, 0x95, 0x9f, 0x70, 0xbb, 0x4b, 0x9a, 0xd0, 0xfd, 0xdc, 0x6a, 0x80, 0x3f, 0x27}: "ResizableBarFeatureDxe", efi.GUID{0x8a, 0xa8, 0x38, 0x8e, 0x67, 0xc2, 0x31, 0x41, 0xa8, 0xcd, 0xc0, 0xbc, 0x80, 0xa2, 0x4c, 0xb5}: "CbsSetupDxeSSP", efi.GUID{0x8a, 0xbc, 0xc4, 0xcc, 0x71, 0x0d, 0x97, 0x41, 0x86, 0xd5, 0xdd, 0x12, 0xe1, 0x0a, 0x97, 0xe6}: "InstantOn", efi.GUID{0x8a, 0xc7, 0x7b, 0x86, 0xac, 0x10, 0xa2, 0xb6, 0x88, 0xb5, 0xc4, 0x12, 0xab, 0xc4, 0x2a, 0x62}: "DellPlatformErrorHandlerSmm", efi.GUID{0x8a, 0xd8, 0x81, 0x75, 0x66, 0xf8, 0xc1, 0x42, 0x86, 0x83, 0x26, 0x28, 0x19, 0x38, 0xe5, 0xbf}: "RtkWifiSupDriver", efi.GUID{0x8a, 0xdf, 0x85, 0x0c, 0x12, 0x42, 0xc1, 0x4c, 0xa4, 0xaa, 0x1a, 0x7a, 0x36, 0xe8, 0xda, 0x97}: "FpgaPlatformEarlyInit", efi.GUID{0x8a, 0xe7, 0xc1, 0x40, 0xc5, 0xd6, 0x41, 0x4a, 0x80, 0x5a, 0x85, 0xd6, 0x80, 0xf8, 0xfd, 0xb1}: "FmpDxe", efi.GUID{0x8a, 0xe8, 0xf2, 0x4f, 0x04, 0xa4, 0xf7, 0x46, 0x9a, 0x2a, 0x35, 0xe0, 0x08, 0x44, 0xf6, 0xe6}: "SpiDeviceDxe", efi.GUID{0x8a, 0xed, 0x85, 0x27, 0x5f, 0x79, 0xa1, 0x43, 0xae, 0x2d, 0x6b, 0xff, 0xec, 0xcb, 0xa6, 0x46}: "AcpiUpdateCpuInfo", efi.GUID{0x8a, 0xee, 0x9a, 0x67, 0x51, 0xce, 0xcb, 0x4c, 0x9a, 0xf8, 0x90, 0xe0, 0x55, 0xb3, 0x93, 0x3e}: "NvmeRecoveryPei", efi.GUID{0x8a, 0xf3, 0x3f, 0x34, 0xe2, 0x32, 0xb3, 0x48, 0x91, 0x0f, 0x37, 0xe7, 0xfe, 0x9e, 0xf7, 0x2e}: "MeCapsuleDxe", efi.GUID{0x8a, 0xf3, 0xbd, 0x62, 0xd5, 0xe3, 0x2c, 0x49, 0x95, 0x0c, 0x23, 0xa7, 0xf6, 0x6e, 0x67, 0x2e}: "EfiPrimaryConsoleOutDevice", efi.GUID{0x8a, 0xf5, 0x0b, 0x56, 0x0d, 0x1e, 0x7e, 0x4d, 0x95, 0x3f, 0x29, 0x80, 0xa2, 0x61, 0xe0, 0x31}: "EfiSioVariableGuid", efi.GUID{0x8b, 0x04, 0x4a, 0xf9, 0xc4, 0x7f, 0xbc, 0x4a, 0x85, 0xa6, 0x86, 0x16, 0xa6, 0xd3, 0xcd, 0xce}: "LenovoTcgSmm", efi.GUID{0x8b, 0x06, 0x88, 0x4e, 0xb2, 0x41, 0x05, 0x4e, 0x89, 0x3c, 0xdb, 0x0b, 0x43, 0xf7, 0xd3, 0x48}: "FmpDxe", efi.GUID{0x8b, 0x07, 0x36, 0x6e, 0x6f, 0x6b, 0xbc, 0x42, 0x98, 0x1e, 0x4c, 0x63, 0x9a, 0xfa, 0x4d, 0x6d}: "FmpDxe", efi.GUID{0x8b, 0x0e, 0xa5, 0xd7, 0x3a, 0xfd, 0x3a, 0x44, 0x81, 0xa9, 0xc9, 0x51, 0xda, 0xc8, 0xb3, 0xff}: "LenovoLoggingDxe", efi.GUID{0x8b, 0x1d, 0xf8, 0x81, 0x46, 0xb7, 0x24, 0x4b, 0xb6, 0x49, 0x26, 0x54, 0xf7, 0x28, 0x1e, 0x4a}: "EcMemoryIntrusionTestModeSmm", efi.GUID{0x8b, 0x25, 0xd5, 0xc1, 0x1a, 0xf6, 0x02, 0x4c, 0x92, 0x93, 0xa0, 0x05, 0xbe, 0xb3, 0xea, 0xa1}: "PngDecoderDxe", efi.GUID{0x8b, 0x29, 0x2c, 0x98, 0xfa, 0xf4, 0xcb, 0x41, 0xb8, 0x38, 0x77, 0xaa, 0x68, 0x8f, 0xb8, 0x39}: "EfiUgaDrawProtocolGuid", efi.GUID{0x8b, 0x2b, 0xef, 0x38, 0x3d, 0xcf, 0xe2, 0x47, 0x97, 0xe3, 0x55, 0x71, 0x15, 0xe4, 0x39, 0x85}: "DellDiagsSbControlDxe", efi.GUID{0x8b, 0x2d, 0x05, 0x11, 0xac, 0xc1, 0x44, 0x42, 0xa5, 0x64, 0xb5, 0xa7, 0x1f, 0xf7, 0x82, 0x2a}: "BiosGuardStoreStatusDxe", efi.GUID{0x8b, 0x31, 0xf5, 0xf9, 0xed, 0xd0, 0xa8, 0x4c, 0xbe, 0x91, 0x18, 0x81, 0xce, 0xb5, 0x7f, 0x1b}: "AsusAcpiRam", efi.GUID{0x8b, 0x3d, 0x38, 0x4f, 0x0e, 0xa4, 0xb6, 0x44, 0x85, 0xe8, 0xf0, 0x94, 0xbe, 0x74, 0x6f, 0x88}: "FjIbvSfuControlAbstractionSmmProtocol", efi.GUID{0x8b, 0x3f, 0x72, 0x27, 0xa8, 0x25, 0xa1, 0x4d, 0xa3, 0xfc, 0x7b, 0x30, 0xe9, 0x87, 0x1d, 0xc7}: "SmcOobPlatformPolicy", efi.GUID{0x8b, 0x40, 0x39, 0x06, 0xa6, 0x19, 0x5d, 0x4b, 0xba, 0xfb, 0x12, 0xa2, 0xf5, 0x11, 0x40, 0x32}: "Acoustic", efi.GUID{0x8b, 0x4d, 0x80, 0x41, 0xf4, 0x2c, 0xca, 0x43, 0x90, 0x34, 0x18, 0xe5, 0xdd, 0x22, 0x7c, 0x93}: "HpNetworkTransferDriverWmiSmm", efi.GUID{0x8b, 0x4d, 0xa1, 0xfb, 0x6f, 0xbe, 0x61, 0x03, 0x93, 0xe8, 0x4c, 0xdf, 0x18, 0xe1, 0x9e, 0xde}: "ICCPolicy", efi.GUID{0x8b, 0x50, 0x92, 0x0f, 0x7c, 0xf1, 0xfb, 0x4e, 0x87, 0x22, 0xbc, 0xa5, 0x53, 0x1f, 0x8b, 0x53}: "CpuDeviceInfoDxe", efi.GUID{0x8b, 0x55, 0x87, 0xa2, 0xdd, 0xd9, 0x1b, 0x46, 0xa9, 0x29, 0xec, 0x2a, 0xd2, 0xfe, 0xf5, 0x91}: "DellSpiPartSst", efi.GUID{0x8b, 0x56, 0x20, 0xfa, 0x8b, 0x54, 0x2b, 0x4b, 0x81, 0xef, 0x1b, 0xa0, 0x8d, 0x4a, 0x3c, 0xec}: "BootScriptExecutorDxe", efi.GUID{0x8b, 0x5d, 0x1d, 0xd3, 0xf3, 0x61, 0xc5, 0x4f, 0x9c, 0xbb, 0x7a, 0xeb, 0x6d, 0x98, 0x79, 0x32}: "TouchDriver", efi.GUID{0x8b, 0x67, 0xfa, 0x65, 0xd8, 0xa1, 0xfd, 0x40, 0xb9, 0x13, 0xdf, 0xfa, 0x9a, 0xda, 0x28, 0x16}: "DellHddSecurityDxe", efi.GUID{0x8b, 0x6b, 0x3d, 0x94, 0xd0, 0xd4, 0x05, 0x40, 0x81, 0xa0, 0xaf, 0x26, 0xe5, 0xe0, 0x7f, 0x03}: "MeFwLayout", efi.GUID{0x8b, 0x6f, 0x9d, 0x29, 0xc9, 0x2e, 0x40, 0x4e, 0x9e, 0xc6, 0xdd, 0xaa, 0x7e, 0xbf, 0x5f, 0xd9}: "SiInit", efi.GUID{0x8b, 0x73, 0x5f, 0x02, 0xbd, 0x4e, 0x55, 0x4d, 0xb7, 0x28, 0x5f, 0x42, 0x1b, 0x60, 0x1f, 0x1f}: "PlatformInfoDxe", efi.GUID{0x8b, 0x73, 0x5f, 0x02, 0xbd, 0x4e, 0x55, 0x4d, 0xb7, 0x28, 0x5f, 0x42, 0x1b, 0x60, 0x1f, 0x20}: "PlatformCpuInfoDxe", efi.GUID{0x8b, 0x7b, 0x8d, 0xc8, 0x7b, 0x2a, 0x3d, 0x40, 0xa8, 0xa2, 0xef, 0x0a, 0x5a, 0xee, 0x66, 0x2f}: "OemEcRTCBackup", efi.GUID{0x8b, 0x7c, 0x28, 0x37, 0x93, 0xdc, 0xd5, 0x45, 0x9a, 0xaf, 0x3c, 0xd2, 0xe9, 0x06, 0xb1, 0x2b}: "DellErrorHandlerSmm", efi.GUID{0x8b, 0x7c, 0x28, 0x37, 0x93, 0xdc, 0xd5, 0x45, 0x9a, 0xaf, 0x3c, 0xd2, 0xe9, 0x06, 0xff, 0xff}: "DellDefaultBootListSmm", efi.GUID{0x8b, 0x7d, 0x9a, 0xd8, 0x16, 0xd0, 0x26, 0x4d, 0x93, 0xe3, 0xea, 0xb6, 0xb4, 0xd3, 0xb0, 0xa2}: "Enter_Setup", efi.GUID{0x8b, 0x82, 0xea, 0x32, 0x3b, 0x52, 0xcb, 0x44, 0xb7, 0xa4, 0x7e, 0x0a, 0x2a, 0x49, 0x95, 0x6c}: "FmacDriver", efi.GUID{0x8b, 0x9d, 0x43, 0x8f, 0xb2, 0x07, 0x21, 0x41, 0xaa, 0x95, 0x8a, 0xc9, 0x15, 0x71, 0xaa, 0x75}: "DellErrorHandlerDxe", efi.GUID{0x8b, 0x9d, 0x43, 0x8f, 0xb2, 0x07, 0x21, 0x41, 0xaa, 0x95, 0x8a, 0xc9, 0x15, 0x71, 0xff, 0xff}: "DellDefaultBootListDxe", efi.GUID{0x8b, 0xa3, 0xe0, 0x03, 0xbe, 0x3f, 0xcb, 0x49, 0xb3, 0x11, 0x72, 0x66, 0x11, 0x21, 0x31, 0x82}: "EgsFhfPolicyOverrideDxe", efi.GUID{0x8b, 0xa6, 0x3c, 0x4a, 0x23, 0x77, 0xfb, 0x48, 0x80, 0x3d, 0x57, 0x8c, 0xc1, 0xfe, 0xc4, 0x4d}: "AptioFwCapsule", efi.GUID{0x8b, 0xb0, 0x3c, 0x77, 0x1a, 0x51, 0xd5, 0x4b, 0x85, 0xad, 0x41, 0xd4, 0xf4, 0xb6, 0x4a, 0x52}: "AmtSetupDxe", efi.GUID{0x8b, 0xb2, 0xda, 0xd6, 0x2a, 0xe5, 0x76, 0x4c, 0xb9, 0xd1, 0x98, 0x2b, 0x11, 0x2c, 0x91, 0x30}: "EcDashControllerSmm", efi.GUID{0x8b, 0xc2, 0x62, 0x89, 0xfe, 0x0d, 0x39, 0x47, 0xa7, 0x3f, 0x09, 0x2d, 0x37, 0x4a, 0x7a, 0x13}: "efi_pop_RT_pressed", efi.GUID{0x8b, 0xd6, 0xc6, 0xa5, 0x8a, 0xe7, 0x26, 0x44, 0x92, 0x78, 0xa8, 0xf0, 0xd9, 0xeb, 0x4d, 0x8f}: "UsbMassStorageDxe", efi.GUID{0x8b, 0xd6, 0xdd, 0x82, 0x63, 0x91, 0x87, 0x41, 0x9b, 0x27, 0x20, 0xa8, 0xfd, 0x60, 0xa7, 0x1d}: "EdkiiIfrBitVarstore", efi.GUID{0x8b, 0xe1, 0x25, 0x9c, 0xba, 0x76, 0xda, 0x43, 0xa1, 0x32, 0xdb, 0xb0, 0x99, 0x7c, 0xef, 0xef}: "WinNtSimpleFileSystemDxe", efi.GUID{0x8b, 0xe1, 0x2b, 0x44, 0x6e, 0xca, 0x23, 0x4a, 0x9a, 0x99, 0x9a, 0xfe, 0x8a, 0x21, 0x3a, 0x32}: "SystemInformation", efi.GUID{0x8b, 0xe3, 0x0d, 0xe8, 0x52, 0x6d, 0xd5, 0x48, 0x8b, 0xa2, 0x52, 0x82, 0x8a, 0xee, 0x62, 0x21}: "OhciDxe", efi.GUID{0x8b, 0xeb, 0xcf, 0xc0, 0xe1, 0x6e, 0x3b, 0x44, 0xbc, 0xc9, 0x85, 0x4e, 0x7c, 0x9b, 0x41, 0x6d}: "LenovoSystemStatusCodePort80Smm", efi.GUID{0x8b, 0xeb, 0xdd, 0xe8, 0xd7, 0x82, 0x6e, 0x4b, 0xa2, 0xb4, 0xd5, 0xea, 0xec, 0x2b, 0x89, 0x76}: "IrsiRegistrationRuntimeDxe", efi.GUID{0x8b, 0xec, 0xb9, 0x78, 0x00, 0xc0, 0xc5, 0x46, 0xac, 0x93, 0x24, 0xa0, 0xc1, 0xbb, 0x00, 0xce}: "PwdCredentialProviderGuid", efi.GUID{0x8b, 0xf0, 0xdb, 0x6d, 0xc9, 0xcf, 0xcc, 0x43, 0x9e, 0x81, 0x07, 0x84, 0xba, 0x31, 0x2c, 0xa0}: "BeagleBoardTimerDxe", efi.GUID{0x8b, 0xf2, 0x9b, 0xc6, 0xc3, 0x16, 0x4f, 0x43, 0xa4, 0xa4, 0x29, 0x2b, 0xdb, 0x0f, 0x4d, 0x12}: "LenovoVariableDefault", efi.GUID{0x8b, 0xf3, 0x41, 0x80, 0x34, 0x0a, 0xd7, 0x49, 0xa9, 0x05, 0x03, 0xae, 0xef, 0x48, 0x26, 0xf7}: "PlatformSsdtImageGuid", efi.GUID{0x8b, 0xf8, 0x23, 0x07, 0x0f, 0x81, 0x44, 0x4e, 0x92, 0xa0, 0xa5, 0xc8, 0x3b, 0x43, 0x36, 0x98}: "PchFlashControllerDxe", efi.GUID{0x8b, 0xfb, 0x77, 0x7b, 0x0d, 0x1e, 0x7e, 0x4d, 0x95, 0x3f, 0x39, 0x80, 0xa2, 0x61, 0xe0, 0x76}: "TdtVolatileSetupData", efi.GUID{0x8b, 0xfb, 0x77, 0x7b, 0x0d, 0x1e, 0x7e, 0x4d, 0x95, 0x3f, 0x39, 0x80, 0xa2, 0x61, 0xe0, 0x77}: "IccVolatileSetupData", efi.GUID{0x8b, 0xfc, 0xf5, 0x39, 0x4d, 0xf3, 0x56, 0x42, 0x86, 0x89, 0xda, 0x3a, 0x44, 0x58, 0x05, 0x44}: "DellNbEcSmm", efi.GUID{0x8b, 0xfe, 0xde, 0xec, 0xc9, 0xf2, 0x9e, 0x4e, 0x9c, 0x0e, 0x06, 0x6f, 0x2a, 0xd3, 0x6b, 0x5c}: "Amd3rdPartyDxe", efi.GUID{0x8c, 0x05, 0xe5, 0xf8, 0xb6, 0xcc, 0x14, 0x47, 0xb2, 0x20, 0x3f, 0x7e, 0x3a, 0x64, 0x0b, 0xd1}: "EfiUserCredentialClassPasswordGuid", efi.GUID{0x8c, 0x19, 0xbd, 0x18, 0xf5, 0xec, 0xf2, 0x40, 0x98, 0xed, 0xc3, 0x88, 0xc3, 0xfd, 0x91, 0x36}: "DRAMPei", efi.GUID{0x8c, 0x1a, 0xe4, 0x9e, 0x12, 0xc1, 0x4f, 0x4e, 0xb2, 0xf0, 0x65, 0xd0, 0xf9, 0xb1, 0x33, 0xdb}: "DellPasswordPolicyExtSmmProtocol", efi.GUID{0x8c, 0x1e, 0xf2, 0x7e, 0xc1, 0x2f, 0xc3, 0x4b, 0xa8, 0x4a, 0x73, 0x02, 0x5e, 0xaa, 0xb8, 0x96}: "ProgressBarFullMiddle", efi.GUID{0x8c, 0x29, 0xe5, 0xdc, 0x89, 0x1d, 0x25, 0x41, 0x94, 0x4a, 0xcd, 0x04, 0xd3, 0xca, 0x0a, 0xaa}: "FjSysmanTeutatesBin", efi.GUID{0x8c, 0x2d, 0x5c, 0xa2, 0x92, 0x2f, 0x26, 0x46, 0x8d, 0x63, 0x84, 0x3b, 0xa9, 0x43, 0x96, 0x30}: "TxtDxeProtocol", efi.GUID{0x8c, 0x2e, 0x81, 0x60, 0x5b, 0x50, 0x3e, 0x4d, 0xa5, 0xb7, 0x17, 0x15, 0x65, 0x6c, 0xe3, 0x62}: "ProjectDxeDriver", efi.GUID{0x8c, 0x2f, 0x02, 0x93, 0x09, 0x1f, 0xef, 0x47, 0xbb, 0xb2, 0x58, 0x14, 0xff, 0x60, 0x9d, 0xf5}: "FileSystem", efi.GUID{0x8c, 0x35, 0x76, 0xcb, 0x21, 0x3a, 0xbf, 0x44, 0xb7, 0xc1, 0x33, 0xf0, 0x64, 0xac, 0x4c, 0x11}: "DisableUSBPei", efi.GUID{0x8c, 0x37, 0xa7, 0x20, 0x83, 0xaa, 0xe1, 0x4c, 0x82, 0x1f, 0x47, 0x40, 0xee, 0x1b, 0x3f, 0x9f}: "PeiOperatorPresencePpi", efi.GUID{0x8c, 0x3b, 0x4b, 0xfc, 0x0b, 0x2a, 0xa2, 0x47, 0x8a, 0x95, 0xaf, 0xfa, 0x51, 0xa0, 0x15, 0x93}: "OsInstallerMenuDxe", efi.GUID{0x8c, 0x40, 0x44, 0xde, 0xa3, 0xea, 0xa0, 0x4c, 0xa0, 0x5a, 0x27, 0x38, 0x0f, 0xc4, 0x86, 0x1f}: "FjGabiFlashCommonDeRegionCtrlSmm", efi.GUID{0x8c, 0x43, 0xb5, 0xaa, 0x5b, 0xf1, 0xef, 0x4d, 0xb6, 0x1a, 0x52, 0x80, 0xb6, 0x2b, 0xfb, 0x58}: "FchSongshanMultiFchPei", efi.GUID{0x8c, 0x45, 0x01, 0xe7, 0x00, 0x49, 0xa5, 0x4c, 0xb7, 0x72, 0x3d, 0x37, 0x94, 0x9f, 0x79, 0x27}: "StatusCodeCallbackGuid", efi.GUID{0x8c, 0x49, 0x1e, 0xa0, 0xe8, 0x96, 0x4c, 0x2a, 0x95, 0xf4, 0x85, 0x24, 0x8f, 0x98, 0x97, 0x53}: "FwBlockService", efi.GUID{0x8c, 0x49, 0x35, 0x36, 0x69, 0x40, 0x48, 0x4d, 0xa2, 0x6d, 0x16, 0x09, 0x41, 0xc0, 0x02, 0x6d}: "DeviceFwUpdate", efi.GUID{0x8c, 0x4d, 0x2d, 0x50, 0x07, 0xe6, 0x13, 0x46, 0xb1, 0x87, 0x3a, 0xca, 0xb0, 0x16, 0x9a, 0xd7}: "DellDualBootBlockDxe", efi.GUID{0x8c, 0x52, 0x81, 0x9f, 0x31, 0x3e, 0x0d, 0x42, 0xa9, 0xe8, 0x07, 0x4f, 0xd1, 0xc2, 0xc2, 0x2a}: "HpKeyPressTrigger", efi.GUID{0x8c, 0x52, 0x98, 0x8f, 0x36, 0xf7, 0x84, 0x4a, 0xaa, 0xa3, 0x37, 0x6a, 0x8e, 0x43, 0xbf, 0x51}: "ImagePasswordEmpty", efi.GUID{0x8c, 0x58, 0xc8, 0x98, 0x0a, 0x64, 0xb4, 0x4b, 0xae, 0xa0, 0x3f, 0x81, 0xcd, 0xe1, 0x75, 0x24}: "FspDxeIpl", efi.GUID{0x8c, 0x5c, 0x74, 0x60, 0x6b, 0xfe, 0x6b, 0x4c, 0xb7, 0x70, 0x3f, 0x7c, 0x35, 0xef, 0xf6, 0x96}: "TamperEventS3Check", efi.GUID{0x8c, 0x5e, 0xd8, 0xc8, 0x1c, 0xdc, 0x8c, 0x4f, 0xad, 0xa7, 0x58, 0xc1, 0xd1, 0x07, 0xa3, 0x04}: "EfiPeiSystemBoardPpi", efi.GUID{0x8c, 0x60, 0x15, 0x7d, 0x1a, 0xee, 0xcc, 0x43, 0xa2, 0x7a, 0xbe, 0x9d, 0x8b, 0xa0, 0xf5, 0xf8}: "DellTcgServicesPei", efi.GUID{0x8c, 0x66, 0xe2, 0xbb, 0xfc, 0x0e, 0xfb, 0x46, 0x91, 0x37, 0x4f, 0x2d, 0xa8, 0xf4, 0x19, 0xf3}: "ConsolePrefDxe", efi.GUID{0x8c, 0x7a, 0x96, 0x69, 0x59, 0x11, 0x22, 0x45, 0xaa, 0x89, 0x74, 0xcd, 0xc6, 0xe5, 0x99, 0xa0}: "IdeSecurityPwnv", efi.GUID{0x8c, 0x81, 0x79, 0x30, 0xd4, 0x46, 0x73, 0x4a, 0xae, 0xf3, 0xe3, 0xe4, 0x6c, 0xf1, 0xee, 0xdb}: "EfiBootScriptExecutorVariableGuid", efi.GUID{0x8c, 0x8d, 0x3e, 0xff, 0xd2, 0xf7, 0x2f, 0x47, 0xbe, 0x89, 0x71, 0x92, 0x81, 0x23, 0x19, 0x3c}: "PeiSmartPowerOn", efi.GUID{0x8c, 0x92, 0xa9, 0xd6, 0x97, 0x33, 0xd1, 0x4d, 0x81, 0x8f, 0xc6, 0x64, 0xba, 0x6d, 0xca, 0xaf}: "DevUtility", efi.GUID{0x8c, 0x99, 0x83, 0x64, 0x38, 0x96, 0x72, 0x4c, 0xbd, 0x1a, 0x77, 0xc5, 0x5c, 0x5c, 0xee, 0x8c}: "OSDSMIfunctionSmm", efi.GUID{0x8c, 0x9b, 0x0e, 0x31, 0x90, 0xcf, 0x1e, 0x42, 0x8e, 0x9b, 0x9e, 0xef, 0xb6, 0x17, 0xc8, 0xef}: "S3StorageDeviceInitList", efi.GUID{0x8c, 0xa4, 0x3f, 0x7a, 0xf2, 0x12, 0x0e, 0x4b, 0x9e, 0x74, 0x29, 0x77, 0x71, 0x1f, 0x59, 0x8b}: "AmdCcxZen3RmbPei", efi.GUID{0x8c, 0xa6, 0xdd, 0x84, 0x5a, 0xca, 0x30, 0x4c, 0x92, 0x61, 0xdd, 0x6d, 0xe7, 0xe4, 0x5a, 0x95}: "EzSetupPortingDxe", efi.GUID{0x8c, 0xac, 0x79, 0x7c, 0x6c, 0x5e, 0x3d, 0x4e, 0xba, 0x6f, 0xc2, 0x60, 0xee, 0x7c, 0x17, 0x2e}: "SmmRuntime", efi.GUID{0x8c, 0xb2, 0xf5, 0xd9, 0xf1, 0x9f, 0xd6, 0x47, 0xb5, 0x03, 0x3d, 0xc2, 0x3b, 0xd3, 0x45, 0xff}: "PchEarlyInitPeim", efi.GUID{0x8c, 0xb5, 0xb5, 0x98, 0xe8, 0xe2, 0x06, 0x4a, 0xaa, 0xcb, 0xe4, 0xce, 0x31, 0x6c, 0x2b, 0x68}: "DustFilterReminderDxe", efi.GUID{0x8c, 0xb7, 0x58, 0xb9, 0x3e, 0x1d, 0x40, 0xee, 0x8b, 0xf4, 0xf0, 0x63, 0x2d, 0x06, 0x39, 0x16}: "EmuThunkPpi", efi.GUID{0x8c, 0xbf, 0x64, 0xa4, 0xab, 0x77, 0xd8, 0x4b, 0xae, 0xf1, 0x82, 0xda, 0xe1, 0xa0, 0x6a, 0xf6}: "FjGabiFlashDescriptorDxeProtocol", efi.GUID{0x8c, 0xc1, 0x56, 0x82, 0xfe, 0x27, 0x99, 0x41, 0xb3, 0x69, 0xc6, 0xc9, 0x5c, 0x55, 0x5f, 0x06}: "H19AmdFTpmUpdate", efi.GUID{0x8c, 0xd3, 0x3d, 0xe1, 0x41, 0x1b, 0xf5, 0x49, 0x8d, 0x92, 0x08, 0x39, 0xd4, 0x23, 0x4a, 0xa2}: "AmdCpmAdaptiveS4Smm", efi.GUID{0x8c, 0xdb, 0xe3, 0x29, 0x30, 0x3b, 0xd7, 0x49, 0x92, 0x62, 0x53, 0xfb, 0x91, 0x7b, 0x9a, 0x6b}: "BochsVga", efi.GUID{0x8c, 0xdd, 0x17, 0x6f, 0x0a, 0x77, 0x7c, 0x42, 0xb2, 0x91, 0xc8, 0xeb, 0x64, 0x4f, 0x97, 0x9a}: "DellHwManagerSmm", efi.GUID{0x8c, 0xde, 0xb4, 0x70, 0x01, 0x3b, 0x0a, 0x4f, 0xa2, 0xf3, 0x93, 0xce, 0xe9, 0x77, 0x31, 0x3e}: "EfiJedecNvDimm", efi.GUID{0x8c, 0xdf, 0xd9, 0xbc, 0x89, 0xbe, 0x07, 0x40, 0x98, 0x6f, 0xfa, 0x40, 0x1a, 0x4a, 0xf9, 0x4e}: "Int15PanelColor", efi.GUID{0x8c, 0xe1, 0x48, 0x71, 0x3e, 0x70, 0x59, 0x4f, 0xac, 0x3d, 0x3a, 0x92, 0x3a, 0x0d, 0xaa, 0x50}: "OemDxeEcVer", efi.GUID{0x8c, 0xee, 0x4f, 0xa2, 0x1d, 0xab, 0x84, 0x4b, 0x8e, 0x74, 0x5d, 0xb4, 0x74, 0xd8, 0xfe, 0xa8}: "UefiDiagnostic", efi.GUID{0x8c, 0xfa, 0xb7, 0x47, 0xbd, 0xf4, 0xf6, 0x4a, 0x82, 0x00, 0x33, 0x30, 0x86, 0xf0, 0xd2, 0xc8}: "EfiSmmReadyToLockProtocolGuid", efi.GUID{0x8d, 0x04, 0xe4, 0xe3, 0x0c, 0x6c, 0xe4, 0x43, 0xae, 0x1c, 0xff, 0xb5, 0x79, 0xd8, 0xef, 0x41}: "OpalPasswordDxe", efi.GUID{0x8d, 0x05, 0xa3, 0x54, 0x37, 0x85, 0x32, 0x4a, 0xbd, 0xb0, 0x40, 0x27, 0xbb, 0x68, 0x87, 0x27}: "ITEAcPowerLossPei", efi.GUID{0x8d, 0x0f, 0x16, 0x00, 0x35, 0x2b, 0xf2, 0x4d, 0xbb, 0xe0, 0xb2, 0x72, 0xa8, 0xd6, 0x31, 0xf0}: "FirmwarePerformanceDxe", efi.GUID{0x8d, 0x1d, 0xbf, 0x2e, 0x63, 0xd3, 0x8f, 0x44, 0x8d, 0x39, 0x90, 0x2f, 0x3f, 0xb8, 0x1f, 0x75}: "SuperRTC", efi.GUID{0x8d, 0x23, 0x48, 0x4d, 0x23, 0x6a, 0xeb, 0x4b, 0xad, 0xa2, 0xd2, 0x4f, 0xd8, 0x33, 0xcc, 0x2c}: "HashService", efi.GUID{0x8d, 0x2b, 0xf1, 0xff, 0x96, 0x76, 0x8b, 0x4c, 0xa9, 0x85, 0x27, 0x47, 0x07, 0x5b, 0x4f, 0x50}: "EfiSystemNvDataFvGuid", efi.GUID{0x8d, 0x30, 0xbb, 0x08, 0xd8, 0xc7, 0x7b, 0x4d, 0xb4, 0xd4, 0xbc, 0x4b, 0xb5, 0x37, 0x68, 0xa6}: "OemVariableInit", efi.GUID{0x8d, 0x35, 0x51, 0xcd, 0x7e, 0x6e, 0xca, 0x45, 0xb4, 0x50, 0x57, 0xc0, 0x46, 0xbd, 0xfd, 0xdc}: "BmpConvert", efi.GUID{0x8d, 0x36, 0xdc, 0x58, 0xfa, 0x7b, 0x77, 0x4e, 0xab, 0xbc, 0x0e, 0x29, 0x41, 0x8d, 0xf9, 0x30}: "EfiSmmIoTrapDispatch2ProtocolGuid", efi.GUID{0x8d, 0x37, 0x13, 0x51, 0xa5, 0xc3, 0x6c, 0x4b, 0x8f, 0x5c, 0x9f, 0xa8, 0x2c, 0xbe, 0x4f, 0x6b}: "BiosRecoveryPei", efi.GUID{0x8d, 0x41, 0xd4, 0xcb, 0x39, 0x42, 0x9a, 0x49, 0x97, 0xc8, 0xc1, 0x06, 0x22, 0xf9, 0x9d, 0x0d}: "H19MPMDxe", efi.GUID{0x8d, 0x42, 0x63, 0xec, 0xca, 0x66, 0xf9, 0x4b, 0x82, 0xae, 0x84, 0x0f, 0x6d, 0x5c, 0x23, 0x05}: "AmiBoardPciInitProtocolGuid", efi.GUID{0x8d, 0x45, 0x0e, 0x9c, 0xe7, 0xea, 0x34, 0x12, 0xa3, 0xba, 0x3c, 0xe1, 0xcc, 0x33, 0x51, 0x68}: "AmiHidServiceDriver", efi.GUID{0x8d, 0x45, 0x0e, 0x9c, 0xe7, 0xea, 0x91, 0x41, 0xa3, 0xba, 0x3c, 0xe1, 0xcc, 0x31, 0x51, 0x68}: "HidKeyboardDxe", efi.GUID{0x8d, 0x4b, 0x71, 0x0e, 0xaa, 0xee, 0xba, 0x4f, 0x83, 0xab, 0x2b, 0x80, 0x05, 0xd4, 0x17, 0xc3}: "EnableM2PCIeCardDxe", efi.GUID{0x8d, 0x4c, 0x86, 0x5f, 0xae, 0xf2, 0x21, 0x42, 0xb8, 0xca, 0xf6, 0x4e, 0xcf, 0xb0, 0xac, 0xa7}: "OemDebug", efi.GUID{0x8d, 0x4f, 0x72, 0xae, 0xc6, 0x62, 0x38, 0x46, 0xa0, 0x65, 0x01, 0x38, 0xf4, 0x7b, 0x6d, 0x23}: "UefiPxeBcDxe", efi.GUID{0x8d, 0x55, 0x44, 0x43, 0xf9, 0x4e, 0x25, 0x47, 0xb1, 0xe4, 0x33, 0x76, 0xe8, 0xd6, 0x97, 0x4f}: "ShellLevel3HiiGuid", efi.GUID{0x8d, 0x5b, 0x8a, 0x43, 0xd6, 0x98, 0xca, 0x4c, 0xa1, 0x82, 0xba, 0x8c, 0x04, 0x71, 0xb5, 0xe8}: "PchSmiDispatcher", efi.GUID{0x8d, 0x5b, 0x95, 0x02, 0x90, 0xdf, 0xcb, 0x4a, 0xb2, 0x42, 0x78, 0xd0, 0x6b, 0x3f, 0xa6, 0xca}: "TrackPointJYT", efi.GUID{0x8d, 0x62, 0x09, 0xf9, 0x48, 0x4b, 0xfb, 0x42, 0xbd, 0x68, 0x0f, 0x86, 0x85, 0xe3, 0x33, 0x35}: "CheckBIOSVersion", efi.GUID{0x8d, 0x6f, 0x83, 0xda, 0x7f, 0x21, 0xa0, 0x4c, 0x99, 0xc2, 0x1c, 0xa4, 0xe1, 0x60, 0x77, 0xea}: "EfiHash2ServiceBindingProtocolGuid", efi.GUID{0x8d, 0x7f, 0x32, 0xe5, 0xfd, 0xc7, 0x33, 0x41, 0xbc, 0xe9, 0xc8, 0x7a, 0x27, 0x58, 0x34, 0xd8}: "GpioV2ProtocolInitDxePchS", efi.GUID{0x8d, 0x82, 0x60, 0x46, 0x2a, 0x84, 0x69, 0x4f, 0xb3, 0x1b, 0xd3, 0x93, 0x66, 0x2b, 0x52, 0x40}: "LenovoDeviceGuardDxe", efi.GUID{0x8d, 0x88, 0xdc, 0x8f, 0x62, 0x21, 0x71, 0x49, 0x81, 0xc2, 0x35, 0xd3, 0xa1, 0xaa, 0x50, 0x47}: "EfiRasMpLinkProtocol", efi.GUID{0x8d, 0x89, 0xb2, 0xeb, 0x68, 0x21, 0xc1, 0x48, 0x93, 0x6c, 0x64, 0xc8, 0x6e, 0xb6, 0x42, 0x4b}: "UsbPxeUndiDriver2", efi.GUID{0x8d, 0x8e, 0x24, 0xab, 0xe1, 0xab, 0xd4, 0x11, 0xbd, 0x0d, 0x00, 0x80, 0xc7, 0x3c, 0x88, 0x81}: "WinNtUgaDxe", efi.GUID{0x8d, 0x95, 0x38, 0x07, 0x5a, 0xa3, 0x75, 0x41, 0xac, 0xe9, 0xd3, 0x24, 0x45, 0x50, 0x1d, 0x34}: "FjTpmPhysicalPresenceLockSkip", efi.GUID{0x8d, 0x97, 0x3a, 0xec, 0x4e, 0x7c, 0xfa, 0x48, 0x9a, 0xbe, 0x6a, 0xd9, 0x1c, 0xc8, 0xf8, 0x11}: "EfiKmsProtocolGuid", efi.GUID{0x8d, 0x97, 0x58, 0xae, 0xb0, 0x8e, 0xcc, 0x42, 0xff, 0xff, 0xff, 0xff, 0xa4, 0x19, 0xf0, 0x39}: "XnoteSetupMainDxe", efi.GUID{0x8d, 0x9b, 0xe4, 0xe3, 0x87, 0x19, 0xd0, 0x48, 0x9a, 0x01, 0xed, 0xa1, 0x79, 0xca, 0x0b, 0xd6}: "XmlCliProtocol", efi.GUID{0x8d, 0x9c, 0xd4, 0xac, 0x47, 0x69, 0x0e, 0x49, 0xaa, 0xd1, 0xc3, 0x38, 0xac, 0x67, 0x25, 0x3e}: "PspClearNVDxe", efi.GUID{0x8d, 0xaf, 0x9c, 0x38, 0x8f, 0x99, 0xd8, 0x4a, 0xbf, 0xac, 0x20, 0xbe, 0x4a, 0xd9, 0x80, 0x4a}: "DellAuxMac", efi.GUID{0x8d, 0xb0, 0xe9, 0x1c, 0x49, 0x76, 0xe6, 0x4e, 0xae, 0xf5, 0x72, 0x9a, 0x4d, 0xa7, 0xe4, 0x69}: "EcIoDxe", efi.GUID{0x8d, 0xb1, 0x73, 0x1f, 0x30, 0x46, 0xc1, 0x43, 0xa1, 0xde, 0x6f, 0x80, 0x85, 0x5d, 0x7d, 0xa4}: "EfiFormBrowserExProtocolGuid", efi.GUID{0x8d, 0xb8, 0xf8, 0x22, 0x9e, 0x4e, 0xa3, 0x4d, 0x8c, 0xd5, 0x74, 0x46, 0x35, 0x93, 0xef, 0x13}: "DellPeiDiagLeds", efi.GUID{0x8d, 0xbf, 0xeb, 0x80, 0xde, 0x82, 0xc9, 0x42, 0x94, 0x5a, 0xe7, 0xad, 0x7e, 0xb0, 0xc2, 0x84}: "CaRemoval", efi.GUID{0x8d, 0xc7, 0xfe, 0x6f, 0xbf, 0x7d, 0x8b, 0x4f, 0x96, 0x8d, 0x2f, 0x43, 0xa0, 0x80, 0xc1, 0x3f}: "PhoenixDesktopWindowProtocolGuid", efi.GUID{0x8d, 0xcb, 0x78, 0x3f, 0xee, 0x72, 0x4e, 0x41, 0xb0, 0x23, 0xda, 0xca, 0x00, 0x3b, 0xdd, 0xf5}: "ProjectSxSMI", efi.GUID{0x8d, 0xcb, 0x78, 0x3f, 0xee, 0x72, 0x4e, 0x41, 0xb0, 0x23, 0xda, 0xca, 0x00, 0x3e, 0xfc, 0xde}: "AsusApmSmi", efi.GUID{0x8d, 0xd1, 0x5a, 0xab, 0x1a, 0x33, 0x7f, 0x4b, 0x9b, 0x7f, 0x64, 0xef, 0xba, 0xf1, 0xad, 0x31}: "PTInterfacePei", efi.GUID{0x8d, 0xd1, 0xad, 0x30, 0x43, 0xe1, 0x29, 0x43, 0xa9, 0x77, 0xb4, 0x9a, 0x65, 0x95, 0x73, 0xad}: "SpiAccessSmm", efi.GUID{0x8d, 0xed, 0xf6, 0x88, 0x6e, 0x7d, 0xeb, 0x40, 0x84, 0xb4, 0xd6, 0x6f, 0xbd, 0xdc, 0xe5, 0xc0}: "AmdMemSmbiosV2PhxPei", efi.GUID{0x8d, 0xf3, 0xb0, 0x99, 0x27, 0x1f, 0x46, 0x4f, 0x9f, 0x44, 0x42, 0xd6, 0x94, 0x72, 0x28, 0x82}: "AmdCpmMemEyeToolSmm", efi.GUID{0x8d, 0xf3, 0xb0, 0xb9, 0x27, 0x1f, 0x46, 0x4f, 0x9f, 0x44, 0x42, 0xd6, 0x94, 0x72, 0x98, 0x82}: "AmdCpmOemSmm", efi.GUID{0x8d, 0xfa, 0x2a, 0xdf, 0xd0, 0xcf, 0x71, 0x4f, 0x83, 0x0e, 0x6a, 0x0e, 0xb2, 0x2a, 0x95, 0x86}: "AdlinkDriverPei", efi.GUID{0x8e, 0x05, 0x58, 0x9d, 0xdd, 0xc8, 0x9f, 0x4a, 0xb1, 0x76, 0xdf, 0xcb, 0x92, 0x35, 0x48, 0x15}: "LenovoEn25Qh128FlashPartDxe", efi.GUID{0x8e, 0x05, 0xcb, 0xef, 0xdc, 0x8b, 0x62, 0x40, 0x8d, 0xae, 0x82, 0x62, 0x88, 0x6c, 0x51, 0x2b}: "Tcg2Dxe_", efi.GUID{0x8e, 0x08, 0x97, 0xeb, 0xdf, 0xcf, 0xc6, 0x49, 0xbe, 0x4b, 0xd9, 0x06, 0xa5, 0xb2, 0x0e, 0x86}: "EfiAcpiSdtProtocolGuid", efi.GUID{0x8e, 0x0c, 0xfc, 0x05, 0x6a, 0x27, 0x2d, 0x42, 0xba, 0xe1, 0x64, 0x5c, 0xfd, 0x7b, 0x78, 0x6b}: "Cf9Reset", efi.GUID{0x8e, 0x18, 0x61, 0x35, 0x48, 0xd8, 0x06, 0x44, 0x8f, 0x11, 0x26, 0x70, 0x97, 0x13, 0x2b, 0xd5}: "FjLvdsRTD213xR_Dxe", efi.GUID{0x8e, 0x19, 0x44, 0x9a, 0xa2, 0xa4, 0xe6, 0x44, 0x8a, 0x1f, 0x39, 0xbe, 0xfd, 0xac, 0x89, 0x6f}: "EfiCustomizedDecompressProtocol", efi.GUID{0x8e, 0x1e, 0x48, 0x1a, 0x2f, 0x34, 0xaa, 0x40, 0xaf, 0x31, 0xf4, 0xfb, 0x7c, 0x99, 0xd4, 0x28}: "AmtInt16", efi.GUID{0x8e, 0x20, 0xa1, 0xb4, 0x9a, 0x4d, 0xa2, 0x4e, 0x9d, 0x6b, 0xe4, 0x1a, 0x61, 0xe6, 0xc5, 0xac}: "PeiAmtPlatformPolicyPpi", efi.GUID{0x8e, 0x36, 0xec, 0x4c, 0x8e, 0x8e, 0x71, 0x4d, 0x8b, 0xe1, 0x95, 0x8c, 0x45, 0xfc, 0x8a, 0x53}: "EfiSmmPeriodicTimerDispatch2ProtocolGuid", efi.GUID{0x8e, 0x3a, 0xa0, 0x11, 0xc5, 0xa9, 0xb9, 0x4d, 0x90, 0xcf, 0x44, 0x34, 0xb0, 0x15, 0x86, 0xc4}: "BootPerformanceLog", efi.GUID{0x8e, 0x40, 0xfb, 0x67, 0x19, 0xa5, 0xe9, 0x40, 0x83, 0x21, 0x79, 0xf1, 0x3f, 0xfd, 0xf9, 0xaf}: "RstResourcePei", efi.GUID{0x8e, 0x4b, 0xe6, 0x1d, 0x8b, 0x13, 0x58, 0x42, 0xb7, 0xdd, 0xf2, 0xd8, 0xec, 0x14, 0x2a, 0x9e}: "AmiFwUpdateBmc", efi.GUID{0x8e, 0x58, 0xf1, 0xf0, 0x28, 0x90, 0xb8, 0x4e, 0x80, 0x31, 0xf2, 0x33, 0xb4, 0x8e, 0xa0, 0xb7}: "PxeDummyDxe", efi.GUID{0x8e, 0x5b, 0xb0, 0xa4, 0x0d, 0xb3, 0x26, 0x44, 0x50, 0xb6, 0x6d, 0x05, 0xdd, 0xea, 0x84, 0xa9}: "HpHoneywellLcn", efi.GUID{0x8e, 0x60, 0x83, 0x23, 0xd0, 0xc6, 0x3e, 0x4e, 0x85, 0x8d, 0x45, 0xdf, 0xac, 0x35, 0x43, 0xd5}: "PciHostBridge", efi.GUID{0x8e, 0x60, 0xdf, 0xa1, 0x27, 0x80, 0x3f, 0x41, 0xa2, 0xf2, 0x1d, 0xf7, 0x86, 0x3f, 0x90, 0x6b}: "OhciDxe", efi.GUID{0x8e, 0x6b, 0x19, 0xf7, 0x2b, 0x47, 0x1d, 0x4c, 0x9a, 0xb9, 0xa6, 0x9a, 0x89, 0x92, 0xf4, 0x6c}: "LenovoVariableStoreSmmRuntimeDxe", efi.GUID{0x8e, 0x70, 0x5c, 0x95, 0x6a, 0xb4, 0x8b, 0x48, 0x9d, 0x5b, 0xd7, 0xe6, 0x1d, 0x0f, 0x96, 0x09}: "SmbiosDataUpdateDxeEVB", efi.GUID{0x8e, 0x79, 0xe5, 0x34, 0x4f, 0xf4, 0x26, 0x45, 0xa0, 0x8c, 0x39, 0xbc, 0xa6, 0xe8, 0xd7, 0xd5}: "EarlyProgramGpioPei", efi.GUID{0x8e, 0x7c, 0x10, 0x96, 0x90, 0x94, 0x67, 0x47, 0x9d, 0x0d, 0x55, 0x90, 0xf1, 0xf6, 0xe1, 0xfc}: "PhysicalPresenceDxe", efi.GUID{0x8e, 0x80, 0xdd, 0xa1, 0x95, 0x1e, 0x99, 0x43, 0xab, 0xc0, 0x65, 0x3c, 0x82, 0xe8, 0x53, 0x0c}: "JunoAcpiTableFile", efi.GUID{0x8e, 0x82, 0x9a, 0x28, 0xe1, 0x65, 0x5b, 0x42, 0x80, 0x6d, 0xc4, 0x90, 0x90, 0xa8, 0x96, 0xd6}: "DellMultiCoreSupportPei", efi.GUID{0x8e, 0x83, 0x86, 0xfd, 0x34, 0x51, 0x66, 0x41, 0x8c, 0x73, 0xcc, 0x05, 0xb3, 0x90, 0x73, 0xcd}: "IntegratedVideoOptionPei", efi.GUID{0x8e, 0x84, 0x90, 0xe7, 0xab, 0xb6, 0xab, 0x44, 0x84, 0x91, 0xdc, 0xa5, 0x0c, 0x39, 0x07, 0xc6}: "EfiIpmiSolStatusProtocol", efi.GUID{0x8e, 0x86, 0x2d, 0xdf, 0xfc, 0x32, 0xf0, 0x4c, 0x8e, 0x6b, 0xff, 0xd9, 0x5d, 0x13, 0x43, 0xd0}: "EfiPrintProtocolGuid", efi.GUID{0x8e, 0x89, 0x4f, 0x2d, 0x20, 0x2a, 0x6f, 0x44, 0x9d, 0x90, 0xcb, 0xf6, 0xb4, 0x6d, 0x45, 0xcb}: "AmdRaidPassword", efi.GUID{0x8e, 0x90, 0x8e, 0x84, 0x11, 0xbd, 0x8e, 0x42, 0x94, 0xf9, 0x7a, 0x0e, 0xef, 0xcd, 0x37, 0xa6}: "BaseCsrToPcieLibNull", efi.GUID{0x8e, 0x9b, 0xd1, 0x5a, 0xda, 0x71, 0xe6, 0x40, 0xb3, 0x0e, 0xff, 0x2b, 0x81, 0x68, 0xc1, 0x0c}: "DellThermalDebugDxeDriver", efi.GUID{0x8e, 0x9c, 0x1b, 0x0d, 0x7b, 0xf7, 0x32, 0x46, 0x83, 0x43, 0x91, 0xf4, 0x3d, 0x9a, 0x85, 0x60}: "EfiCpuHtCapable", efi.GUID{0x8e, 0x9d, 0x98, 0x34, 0x0a, 0x93, 0x95, 0x4a, 0xab, 0x04, 0x2e, 0x6c, 0xfd, 0xff, 0x66, 0x31}: "TcgPei", efi.GUID{0x8e, 0xb0, 0x7c, 0xf7, 0x82, 0x66, 0xf7, 0x4d, 0x82, 0xa3, 0xbb, 0xbb, 0x52, 0x70, 0x4c, 0x1f}: "AppleNetLoadFileDxe", efi.GUID{0x8e, 0xb1, 0x48, 0x51, 0xec, 0xf1, 0xa8, 0x41, 0x92, 0x92, 0xe2, 0x59, 0x2e, 0x6f, 0x75, 0x47}: "FlabLoadPvUadmDxe", efi.GUID{0x8e, 0xb3, 0xbb, 0xa7, 0xb4, 0x3a, 0x9d, 0x40, 0xb1, 0x1b, 0xee, 0x31, 0xa2, 0x68, 0x8b, 0x0e}: "OemHooksPei", efi.GUID{0x8e, 0xcb, 0x16, 0xfe, 0xcf, 0x82, 0x43, 0x4f, 0xaa, 0xff, 0xa9, 0xb3, 0xb2, 0xb5, 0x54, 0x43}: "SmbiosInterfaceCoreDxe", efi.GUID{0x8e, 0xd0, 0x8c, 0xa0, 0x79, 0xca, 0x5a, 0x44, 0xab, 0x1b, 0xa5, 0xbb, 0x03, 0x9b, 0x56, 0x9e}: "I2CSpeedPei", efi.GUID{0x8e, 0xd6, 0x1d, 0xa8, 0x78, 0xf8, 0xff, 0x49, 0x83, 0x09, 0x79, 0x84, 0x44, 0xa9, 0xc0, 0x35}: "AbtSmm", efi.GUID{0x8e, 0xd9, 0xbc, 0x45, 0xad, 0x59, 0x74, 0x41, 0x95, 0x46, 0x34, 0x4a, 0x07, 0x48, 0x58, 0x98}: "EfiSupplicantServiceBindingProtocolGuid", efi.GUID{0x8e, 0xe2, 0x10, 0x73, 0xea, 0x96, 0x60, 0x43, 0x94, 0x6e, 0x5a, 0xdc, 0x6b, 0xe8, 0xf5, 0x31}: "DellSmmEcIoProtocol", efi.GUID{0x8e, 0xea, 0xf4, 0x13, 0xf1, 0xbf, 0xbf, 0x43, 0x8f, 0x44, 0x80, 0xbc, 0xc9, 0x60, 0x40, 0xf1}: "FpgaDxe", efi.GUID{0x8e, 0xf1, 0xf0, 0x9c, 0x7d, 0x7c, 0xde, 0x49, 0xb5, 0xaa, 0xbb, 0xba, 0xd6, 0xb2, 0x10, 0x07}: "AmiCallback", efi.GUID{0x8e, 0xf4, 0xa1, 0xf7, 0x6a, 0x0f, 0x12, 0x4f, 0xa7, 0x4d, 0xed, 0x6f, 0x5b, 0x6b, 0x00, 0xf2}: "OpromUpdateDxeLightningRidgeEXECB4", efi.GUID{0x8e, 0xf6, 0x2e, 0xba, 0x4f, 0x3f, 0x32, 0x45, 0x90, 0x9d, 0x5c, 0x23, 0x22, 0x0d, 0xf8, 0x4b}: "DashPldmSmbios", efi.GUID{0x8e, 0xff, 0x76, 0xfd, 0x5f, 0x66, 0xfc, 0x4a, 0xaf, 0x75, 0x72, 0x4e, 0xf5, 0xa5, 0x69, 0xe5}: "UcOnUc2Thunk", efi.GUID{0x8f, 0x0a, 0xaa, 0xa2, 0xd5, 0x43, 0x21, 0x4b, 0xa2, 0x6b, 0x5d, 0x02, 0x47, 0x6a, 0xd4, 0x57}: "AmdCcxZen5Pei", efi.GUID{0x8f, 0x0c, 0x4f, 0x27, 0x57, 0x9e, 0xd8, 0x41, 0x99, 0x66, 0x29, 0xcc, 0xd4, 0x8d, 0x31, 0xc2}: "SmmAccess", efi.GUID{0x8f, 0x13, 0xb2, 0x47, 0x6b, 0x5a, 0x65, 0x4c, 0x91, 0x67, 0x87, 0x40, 0x59, 0x5d, 0x16, 0xad}: "DellPasswordMgrSmm", efi.GUID{0x8f, 0x14, 0xd3, 0x8a, 0x5f, 0x94, 0xb4, 0x46, 0x8a, 0xcd, 0x71, 0x46, 0x9e, 0xa7, 0x39, 0x45}: "Tcg2ConfigPei", efi.GUID{0x8f, 0x18, 0x52, 0xec, 0xd1, 0x8d, 0x34, 0x48, 0xaa, 0xdb, 0xc6, 0x61, 0x87, 0xd4, 0x60, 0xec}: "AmdNbioSmm", efi.GUID{0x8f, 0x1c, 0x26, 0x07, 0x27, 0x9f, 0x09, 0x44, 0xbd, 0x78, 0x2b, 0xb0, 0xb6, 0x91, 0xf3, 0x31}: "DetectWlan", efi.GUID{0x8f, 0x22, 0x09, 0x32, 0xe2, 0x94, 0xa4, 0x4a, 0x8e, 0x18, 0x07, 0x91, 0xb7, 0x25, 0x4c, 0x2f}: "DellAbsoluteSmm", efi.GUID{0x8f, 0x24, 0xcd, 0x73, 0x0b, 0x42, 0x18, 0x46, 0x8f, 0x74, 0xe1, 0x5f, 0xf4, 0x82, 0x58, 0xb5}: "AmdCpmAdaptiveS4Dxe", efi.GUID{0x8f, 0x26, 0x9f, 0x22, 0xb0, 0x23, 0x36, 0x44, 0x83, 0xe3, 0x8b, 0x7a, 0xe0, 0x8a, 0x6b, 0xd8}: "EfiMfgUuidHob", efi.GUID{0x8f, 0x26, 0xbd, 0x14, 0xfc, 0x76, 0xdb, 0x4e, 0x87, 0xf0, 0xf0, 0xd4, 0xeb, 0xb2, 0x56, 0xb4}: "VfsFingerPrintDevice", efi.GUID{0x8f, 0x29, 0x43, 0x1e, 0x78, 0x34, 0xa7, 0x41, 0xb5, 0x77, 0x86, 0x06, 0x46, 0x35, 0xc7, 0x28}: "OptionRomPkgTokenSpaceGuid", efi.GUID{0x8f, 0x2d, 0xd1, 0xd0, 0x3c, 0x80, 0x84, 0x40, 0x8c, 0xa8, 0x36, 0x58, 0xd9, 0x34, 0xf5, 0xf2}: "Ax88179UefiDriver", efi.GUID{0x8f, 0x31, 0xdc, 0x1e, 0x05, 0x40, 0x8d, 0x48, 0xaf, 0x3a, 0x9b, 0xb5, 0x17, 0x9b, 0xc6, 0xf1}: "GmchMbiDxe", efi.GUID{0x8f, 0x3a, 0xac, 0x60, 0x66, 0x4d, 0xd4, 0x4c, 0x89, 0x5a, 0xc3, 0xf0, 0x6e, 0x66, 0x65, 0xee}: "iFfsAcpiTables", efi.GUID{0x8f, 0x41, 0xbf, 0x78, 0x9b, 0x55, 0xd5, 0x43, 0x94, 0x0a, 0xef, 0xfa, 0x17, 0x42, 0x17, 0xf7}: "DrySMI", efi.GUID{0x8f, 0x50, 0x0e, 0xe7, 0x66, 0x44, 0xf3, 0x49, 0xbb, 0xfb, 0xfd, 0xf2, 0x4e, 0x95, 0x0d, 0xbc}: "LockDownConfigGuid", efi.GUID{0x8f, 0x52, 0xc1, 0xb9, 0xd6, 0xb5, 0x9e, 0x48, 0xb5, 0x68, 0xc4, 0xf0, 0xa9, 0x76, 0x4d, 0x1c}: "FjGpioCoffeeLakeSmm", efi.GUID{0x8f, 0x54, 0x45, 0x80, 0x94, 0xfd, 0x8a, 0x45, 0x9b, 0xc8, 0xbe, 0xad, 0xb5, 0x73, 0x3d, 0x46}: "AbtDisk", efi.GUID{0x8f, 0x5a, 0xd8, 0x40, 0xe5, 0x37, 0x88, 0x47, 0x99, 0x7f, 0x70, 0x47, 0x8c, 0x4b, 0x7b, 0x48}: "SecureEraseDxe", efi.GUID{0x8f, 0x67, 0x19, 0xce, 0x08, 0x3f, 0x81, 0x4e, 0xa1, 0xf3, 0x18, 0x86, 0xca, 0x13, 0xad, 0xa7}: "SiliconPolicyPeiPostMem", efi.GUID{0x8f, 0x67, 0xd1, 0x5e, 0xf8, 0xb3, 0xe3, 0x11, 0x93, 0xb8, 0x04, 0x7d, 0x7b, 0x99, 0xe0, 0x97}: "SmapiSmm", efi.GUID{0x8f, 0x71, 0x36, 0xda, 0x22, 0xe0, 0xd8, 0x4f, 0xba, 0xd8, 0xef, 0x27, 0xf9, 0xe4, 0x92, 0x8f}: "HeciInitSmm", efi.GUID{0x8f, 0x72, 0x97, 0xd3, 0x9b, 0x4c, 0x18, 0x9c, 0x98, 0x16, 0xf9, 0xb8, 0x69, 0xb0, 0x00, 0x85}: "SataPortConfigSmm", efi.GUID{0x8f, 0x73, 0x26, 0x6f, 0x8f, 0x19, 0xca, 0x4d, 0xb7, 0xa6, 0x50, 0x97, 0xaa, 0x33, 0x0a, 0x22}: "AcpiPlatform", efi.GUID{0x8f, 0x76, 0xfc, 0x56, 0x03, 0xb6, 0x54, 0x44, 0x80, 0x83, 0xbf, 0xe9, 0x8d, 0x60, 0x84, 0xf9}: "GnbPei", efi.GUID{0x8f, 0x78, 0x66, 0x48, 0xa8, 0x6b, 0xd8, 0x47, 0x83, 0x06, 0xac, 0xf7, 0x7f, 0x55, 0x10, 0x46}: "FspNonVolatileStorageHob2", efi.GUID{0x8f, 0x7f, 0x25, 0xee, 0x10, 0xe7, 0x81, 0x41, 0x9b, 0x01, 0xc0, 0x66, 0x98, 0x45, 0x4a, 0x16}: "AmiPlatformInfoCompressedFfsSection", efi.GUID{0x8f, 0x80, 0xc1, 0xa2, 0x4f, 0x0d, 0xc9, 0x4c, 0xa6, 0x19, 0xd1, 0xe6, 0x41, 0xd3, 0x9d, 0x49}: "LenovoSecurityConfigVariable", efi.GUID{0x8f, 0x83, 0xf3, 0x27, 0x27, 0xba, 0xfa, 0x4f, 0xb3, 0x74, 0x35, 0xbe, 0xa2, 0x8a, 0x43, 0x1b}: "DellSmsc5544Dxe", efi.GUID{0x8f, 0x85, 0x49, 0x00, 0xa7, 0x8c, 0xcd, 0x4c, 0x91, 0x8b, 0xd9, 0x52, 0xcb, 0xf3, 0x29, 0x75}: "VirtioFdtDxe", efi.GUID{0x8f, 0x87, 0xa4, 0x31, 0x0d, 0x23, 0xc2, 0x4f, 0x90, 0xbb, 0xda, 0x5f, 0x41, 0xa4, 0x4b, 0x1b}: "DxeDebugportExtProtocolGuid", efi.GUID{0x8f, 0x87, 0xd2, 0x54, 0xcd, 0x25, 0x2b, 0x4a, 0x84, 0x20, 0xeb, 0xd1, 0x8e, 0x60, 0x9c, 0x76}: "OemHookStatusCodeLibNull", efi.GUID{0x8f, 0x88, 0xe9, 0xa9, 0x84, 0xca, 0x6b, 0x43, 0xb0, 0xd8, 0xa0, 0x3d, 0xeb, 0x35, 0x1c, 0xae}: "AppAdapterMkTme3v0", efi.GUID{0x8f, 0x8c, 0xa1, 0x58, 0xd8, 0xd9, 0x9d, 0x4e, 0xbc, 0x43, 0x34, 0x49, 0xb6, 0xbb, 0xce, 0x01}: "ComputraceDxe", efi.GUID{0x8f, 0x8d, 0x35, 0xa3, 0xaf, 0xb7, 0xb7, 0x47, 0xa3, 0x24, 0x90, 0x36, 0xfb, 0xd7, 0x3d, 0xdc}: "FjMfgErrorCheckDxe", efi.GUID{0x8f, 0x90, 0x2b, 0xc0, 0x92, 0xe8, 0x02, 0x45, 0xac, 0xb7, 0x54, 0x53, 0x19, 0x98, 0x9f, 0x6f}: "RealTimeClock", efi.GUID{0x8f, 0x92, 0x76, 0x4e, 0xad, 0x50, 0x34, 0x43, 0xb0, 0x6b, 0xa8, 0x42, 0x13, 0x10, 0x8a, 0x57}: "NtFwhPpiGuid", efi.GUID{0x8f, 0x94, 0x4b, 0x62, 0xba, 0x6e, 0xfd, 0x4d, 0x9d, 0xda, 0x10, 0xb0, 0x07, 0x3a, 0x37, 0x35}: "SocketPkgFpga", efi.GUID{0x8f, 0x9c, 0xa7, 0xdb, 0x2b, 0xdb, 0x05, 0x4b, 0xa4, 0x7c, 0xac, 0x78, 0x9a, 0x9b, 0x67, 0xd9}: "ShippingPowerOnDxe", efi.GUID{0x8f, 0xaa, 0x01, 0x77, 0xeb, 0x27, 0x62, 0x45, 0x8c, 0x59, 0x47, 0x31, 0xca, 0xa2, 0x4e, 0x7c}: "ScPmcFunctionDisableResetHobGuid", efi.GUID{0x8f, 0xaf, 0x2e, 0xb0, 0xa1, 0x28, 0xa8, 0x44, 0x99, 0x47, 0x72, 0xdf, 0x3a, 0x8a, 0x4d, 0xdd}: "UefiDMBMEDUSmi", efi.GUID{0x8f, 0xb3, 0xdc, 0x38, 0x1e, 0xd5, 0xe3, 0x11, 0x91, 0x29, 0x04, 0x7d, 0x7b, 0x99, 0xe0, 0x97}: "ProjectServiceSmm", efi.GUID{0x8f, 0xc2, 0xc8, 0x34, 0x1c, 0xb6, 0xa2, 0x45, 0x8f, 0x2e, 0x89, 0xe4, 0x6b, 0xec, 0xc6, 0x3b}: "PeiVariable", efi.GUID{0x8f, 0xe2, 0x00, 0x89, 0x99, 0xde, 0xc4, 0x4f, 0x89, 0x4b, 0x6f, 0x41, 0xcd, 0x13, 0x9a, 0x48}: "InfineonTpmUpdateDxe", efi.GUID{0x8f, 0xe6, 0x8a, 0xc9, 0xb9, 0x82, 0xbc, 0x47, 0xbe, 0x87, 0x33, 0x24, 0x0e, 0x11, 0x0d, 0x68}: "DellUefiBootInfoSmm", efi.GUID{0x8f, 0xeb, 0xb6, 0x30, 0xa3, 0x08, 0x66, 0x4e, 0x82, 0x79, 0xd8, 0x68, 0x1d, 0x12, 0x7f, 0x59}: "LenovoTpmFwWufuDxe", efi.GUID{0x8f, 0xed, 0x81, 0xc6, 0x2e, 0xfc, 0xa4, 0x41, 0x8f, 0x3f, 0x2c, 0x2a, 0x19, 0x61, 0xa8, 0x1b}: "FchProm21Pei", efi.GUID{0x8f, 0xef, 0xcb, 0x7e, 0x6e, 0x2c, 0xc0, 0x4c, 0xb8, 0xb8, 0xbf, 0x53, 0x63, 0x96, 0xcc, 0x9d}: "HpQX448Pei", efi.GUID{0x8f, 0xf3, 0x3d, 0x04, 0xe1, 0x32, 0x93, 0x48, 0x91, 0x1f, 0x37, 0xa7, 0xfe, 0x91, 0xf7, 0x23}: "CapsuleProcessorDxe", efi.GUID{0x8f, 0xf4, 0xda, 0xc7, 0x87, 0x47, 0xe4, 0x11, 0x90, 0x77, 0x04, 0x7d, 0x7b, 0x99, 0xe0, 0x97}: "VariableRuntimeProtectionDxe", efi.GUID{0x8f, 0xfe, 0xdd, 0x38, 0x91, 0x89, 0xaa, 0x44, 0x98, 0x89, 0x83, 0xf4, 0x91, 0x84, 0x65, 0xb0}: "EfiGpioOperationProtocolGuid", efi.GUID{0x90, 0x01, 0x06, 0xaf, 0x3a, 0x5e, 0x25, 0x40, 0xaf, 0xbd, 0xe1, 0xf9, 0x05, 0xbf, 0xaa, 0x4c}: "EfiHiiImageDecoderNamePngGuid", efi.GUID{0x90, 0x13, 0xa7, 0x72, 0xd6, 0x9a, 0x1c, 0x4c, 0xae, 0x00, 0xe0, 0x50, 0xaf, 0x18, 0xa7, 0x08}: "OemImageLanguage", efi.GUID{0x90, 0x1c, 0xa6, 0x72, 0x4d, 0xe5, 0x9c, 0x46, 0xa9, 0x15, 0x72, 0xe2, 0x9a, 0x3f, 0x37, 0xd3}: "StaticSkuDataDxeGnrwsPPVCRB", efi.GUID{0x90, 0x2a, 0xf5, 0xed, 0x4c, 0xa3, 0xa2, 0x47, 0x83, 0x2a, 0x93, 0x08, 0x11, 0x2c, 0xae, 0x38}: "AmdDynamicLid", efi.GUID{0x90, 0x2c, 0x63, 0xd0, 0xd7, 0xaf, 0x92, 0x44, 0xb1, 0x86, 0x25, 0x7c, 0x63, 0x14, 0x3c, 0x61}: "SmmBase", efi.GUID{0x90, 0x2f, 0x89, 0xd1, 0x84, 0x37, 0x0f, 0x41, 0x98, 0x4b, 0x9b, 0xec, 0x59, 0xd8, 0xd4, 0x94}: "AmdNbioPciePei", efi.GUID{0x90, 0x33, 0x3b, 0xfd, 0x9a, 0x9e, 0x43, 0x43, 0x8e, 0x03, 0x90, 0xf0, 0x80, 0xde, 0x90, 0x21}: "EcdPeiNbSbCustom", efi.GUID{0x90, 0x35, 0xf2, 0x44, 0x88, 0xdc, 0xdd, 0x11, 0xad, 0x8b, 0x08, 0x00, 0x20, 0x0c, 0x9a, 0x66}: "SystemAhciAtaAtapiPassThruDxe", efi.GUID{0x90, 0x3a, 0xe1, 0xbf, 0x43, 0xc1, 0xc2, 0x43, 0x97, 0x04, 0x71, 0xe3, 0x9e, 0x6d, 0x43, 0xae}: "IntelVtdSmm", efi.GUID{0x90, 0x3c, 0x25, 0xc3, 0x4f, 0xa2, 0x99, 0x45, 0xa6, 0x64, 0x1f, 0x88, 0x13, 0x77, 0x8f, 0xc9}: "ArmGlobalVariableGuid", efi.GUID{0x90, 0x4c, 0x9b, 0xc3, 0x56, 0xcb, 0xbc, 0x49, 0x95, 0x34, 0x01, 0x2f, 0x69, 0xa1, 0xc2, 0xcc}: "UuidPeiInit", efi.GUID{0x90, 0x53, 0x91, 0xdd, 0x7f, 0x3b, 0x8b, 0x42, 0x8d, 0xd4, 0xc4, 0xc2, 0xfa, 0x89, 0x7c, 0x63}: "AmdPlatformRasRsSmm", efi.GUID{0x90, 0x55, 0x43, 0xf6, 0x02, 0x24, 0x02, 0x4e, 0x99, 0xfd, 0xab, 0xdd, 0x9d, 0xd4, 0x0a, 0x6a}: "SaPolicyPpiGuid", efi.GUID{0x90, 0x55, 0x4e, 0x16, 0x7a, 0xfb, 0xb9, 0x47, 0x86, 0x87, 0x3e, 0x91, 0xda, 0x49, 0x9d, 0x97}: "AmiAmdUefiRaid", efi.GUID{0x90, 0x5a, 0x37, 0x0c, 0x4c, 0x4c, 0x28, 0x44, 0x8e, 0xa0, 0x53, 0x1b, 0xe8, 0x95, 0x9b, 0xf7}: "FlashDriverSmm", efi.GUID{0x90, 0x5c, 0xdc, 0x50, 0x33, 0x1d, 0xd6, 0x4f, 0x87, 0xe5, 0x06, 0x3b, 0x1d, 0xfa, 0x21, 0x70}: "AmiSerialProtocolGuid", efi.GUID{0x90, 0x61, 0x4f, 0xdf, 0xb8, 0x42, 0xa9, 0x4c, 0xba, 0x51, 0x7a, 0x80, 0x1b, 0x56, 0x5f, 0x08}: "b57undix64", efi.GUID{0x90, 0x61, 0xb3, 0xe2, 0x9b, 0x87, 0x3d, 0x4a, 0xad, 0x8d, 0xf2, 0xe7, 0xbb, 0xa3, 0x27, 0x84}: "EfiCertRsa2048Sha256Guid", efi.GUID{0x90, 0x62, 0x1d, 0xe1, 0xfd, 0xcc, 0x01, 0x45, 0xb5, 0x9a, 0xce, 0xcb, 0xa0, 0xe7, 0x91, 0x33}: "OdometerMetrics", efi.GUID{0x90, 0x66, 0x96, 0x56, 0xe8, 0x24, 0xfa, 0x4d, 0xbe, 0xa8, 0xbf, 0xcd, 0x83, 0xda, 0x44, 0xb8}: "MultiPdtDxe", efi.GUID{0x90, 0x6f, 0x4c, 0x1f, 0x6b, 0xb0, 0xd8, 0x48, 0xa2, 0x01, 0xba, 0xe5, 0xf1, 0xcd, 0x7d, 0x56}: "EfiPeiStallPpiGuid", efi.GUID{0x90, 0x77, 0x44, 0x77, 0xb4, 0x51, 0x81, 0x4a, 0xa8, 0xd2, 0x7e, 0xf7, 0x8e, 0x9f, 0x35, 0xc9}: "I2CSpeedDXE", efi.GUID{0x90, 0x78, 0x5f, 0x76, 0x55, 0x57, 0x6d, 0x40, 0x9b, 0x02, 0xc4, 0x4e, 0x71, 0x82, 0x68, 0x0c}: "LEMBoardId", efi.GUID{0x90, 0x7e, 0x65, 0xf0, 0x6a, 0x21, 0x30, 0x4c, 0xb6, 0x9b, 0xde, 0xd9, 0x62, 0x67, 0xbc, 0x29}: "OemThermalPolicyPEI", efi.GUID{0x90, 0x7f, 0x98, 0x6e, 0xa5, 0x95, 0x1b, 0x41, 0xbe, 0xd3, 0xa5, 0x27, 0x7f, 0x17, 0xb1, 0x32}: "UdiDxeDriver", efi.GUID{0x90, 0x81, 0x83, 0x1b, 0x25, 0x46, 0xad, 0x4e, 0xab, 0xc9, 0xcd, 0x5e, 0x6a, 0xf1, 0x8f, 0xe0}: "EfiHiiExportDatabase", efi.GUID{0x90, 0x84, 0xdf, 0x99, 0x2e, 0xf9, 0x45, 0x4a, 0x8a, 0x3e, 0xa8, 0x0c, 0x85, 0xd3, 0x28, 0x26}: "SataEraseDxe", efi.GUID{0x90, 0x86, 0x14, 0x77, 0x43, 0x7e, 0x73, 0x46, 0xaf, 0xae, 0x34, 0x53, 0x2c, 0xdd, 0x42, 0x48}: "SmmControlDxe", efi.GUID{0x90, 0x88, 0x4a, 0xfe, 0xd6, 0x2b, 0xf8, 0x4d, 0xa5, 0x9e, 0x30, 0x1d, 0x39, 0x8b, 0x54, 0x33}: "HeciTransportDxe", efi.GUID{0x90, 0x88, 0x68, 0xa6, 0xf0, 0xbf, 0x03, 0x4f, 0x9b, 0x1e, 0x76, 0xae, 0x86, 0xee, 0xc5, 0xab}: "LenovoSystemAcpiTablesDxe", efi.GUID{0x90, 0x8d, 0x9b, 0xee, 0xa6, 0xc5, 0xa2, 0x40, 0xbd, 0xe2, 0x52, 0x55, 0x8d, 0x33, 0xcc, 0xa1}: "EfiSmmUsbDispatch2ProtocolGuid", efi.GUID{0x90, 0x92, 0xa5, 0xe8, 0xaf, 0xa2, 0x99, 0x40, 0xb0, 0xaf, 0x32, 0x3f, 0xf9, 0xb7, 0xab, 0x41}: "BeginBootButton", efi.GUID{0x90, 0x99, 0x01, 0x7d, 0xe1, 0x8c, 0xf5, 0x46, 0xa7, 0x76, 0x3c, 0x51, 0x98, 0x67, 0x6a, 0xa0}: "EfiExtendedSalResetServicesProtocolGuid", efi.GUID{0x90, 0x9b, 0x42, 0x21, 0x67, 0x5f, 0x93, 0x4e, 0xaf, 0x55, 0x1d, 0x31, 0x4d, 0x64, 0x6e, 0x12}: "MemoryProfileInfo", efi.GUID{0x90, 0x9c, 0xb5, 0xbc, 0x86, 0xdc, 0xdd, 0x11, 0xad, 0x8b, 0x08, 0x00, 0x20, 0x0c, 0x9a, 0x66}: "SystemAhciAtaAtapiPassThruSmm", efi.GUID{0x90, 0xa2, 0x3c, 0x3d, 0xa5, 0xb9, 0xe3, 0x11, 0xb7, 0x5d, 0xb8, 0xac, 0x6f, 0x7d, 0x65, 0xe6}: "XenBusProtocolGuid", efi.GUID{0x90, 0xa6, 0x74, 0xfb, 0x1a, 0xde, 0xf4, 0x4b, 0x97, 0xc0, 0x17, 0x0b, 0x35, 0x35, 0xfc, 0x98}: "PciThunderbolt", efi.GUID{0x90, 0xb7, 0x25, 0xdd, 0x79, 0xae, 0xc2, 0x43, 0x86, 0x44, 0x96, 0xda, 0xb9, 0x0c, 0x36, 0x36}: "SystemOskTriggerDxe", efi.GUID{0x90, 0xc1, 0xef, 0x91, 0x79, 0xde, 0x1f, 0x44, 0xb5, 0x7f, 0xbb, 0x0f, 0x7d, 0x8a, 0x8b, 0x4d}: "FjM2WlanEnableDisablePei", efi.GUID{0x90, 0xc3, 0x09, 0x8e, 0x30, 0x1b, 0x5e, 0x41, 0xaf, 0x5c, 0xd4, 0x2a, 0xb0, 0x16, 0x0f, 0x8c}: "AmiCbsDxe", efi.GUID{0x90, 0xc6, 0xc7, 0xa6, 0xd8, 0xad, 0x78, 0x41, 0xbc, 0x97, 0xf6, 0xa4, 0xc1, 0x20, 0x62, 0x85}: "c_pg4306", efi.GUID{0x90, 0xce, 0x5f, 0x0c, 0x03, 0x1c, 0xd2, 0x4e, 0x9e, 0xfe, 0xb1, 0xd0, 0x2e, 0x72, 0xb3, 0xb0}: "menu_bottom_mid", efi.GUID{0x90, 0xd5, 0x2c, 0x64, 0x59, 0x80, 0x0a, 0x4c, 0xa9, 0x58, 0xc5, 0xec, 0x07, 0xd2, 0x3c, 0x4b}: "EfiPlatformToDriverConfigurationProtocolGuid", efi.GUID{0x90, 0xe9, 0xaa, 0x4a, 0x1c, 0x5f, 0xa3, 0x4b, 0xb0, 0xce, 0x66, 0x75, 0x4d, 0x38, 0x35, 0x21}: "NvmExpressLegacySmm", efi.GUID{0x90, 0xf5, 0x76, 0x38, 0xc6, 0x7a, 0x0c, 0x4e, 0x82, 0xef, 0x7b, 0x9a, 0x8a, 0x7b, 0x8d, 0xc9}: "GpioPolicyPei", efi.GUID{0x90, 0xf5, 0x89, 0xee, 0x16, 0xa8, 0xc5, 0x4a, 0xb3, 0xa9, 0x1b, 0xc7, 0x59, 0xb1, 0x24, 0x39}: "VerifyFwBootGuard", efi.GUID{0x91, 0x00, 0x74, 0xeb, 0x94, 0xa4, 0xd7, 0x44, 0x8d, 0x96, 0xc1, 0x92, 0xf9, 0x5a, 0x63, 0x94}: "OobTx", efi.GUID{0x91, 0x01, 0x08, 0x51, 0x06, 0xed, 0xa0, 0x4a, 0xbf, 0xd7, 0xf0, 0x48, 0x37, 0xcf, 0x70, 0xdb}: "SbRomArmorSmm", efi.GUID{0x91, 0x0e, 0xf5, 0xb7, 0x59, 0xa7, 0x2c, 0x41, 0xad, 0xe4, 0xdc, 0xd0, 0x3e, 0x7f, 0x7c, 0x28}: "XhciDxe", efi.GUID{0x91, 0x17, 0x63, 0x01, 0x4e, 0xf3, 0x0a, 0x4c, 0xb1, 0x5d, 0x0b, 0x6c, 0xe2, 0x2b, 0x27, 0xa8}: "TcgPeiAfterMem", efi.GUID{0x91, 0x18, 0xa2, 0x9b, 0x7d, 0x7e, 0x94, 0x4e, 0xb8, 0xdf, 0xf4, 0xd2, 0xd3, 0x20, 0x80, 0x1c}: "ROMss", efi.GUID{0x91, 0x26, 0xa9, 0x08, 0x6c, 0x92, 0x4f, 0x41, 0xa0, 0xb5, 0xe7, 0x85, 0xd9, 0x0b, 0x98, 0x53}: "Memory_OK_DXE", efi.GUID{0x91, 0x30, 0xec, 0x56, 0x4c, 0x95, 0xd2, 0x11, 0x8e, 0x3f, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b}: "EfiLoadFileProtocolGuid", efi.GUID{0x91, 0x31, 0x6d, 0xf2, 0x3c, 0x66, 0x95, 0x41, 0x92, 0x85, 0x14, 0x9b, 0x43, 0xbb, 0xda, 0x6e}: "SynServerSetupSmm", efi.GUID{0x91, 0x3a, 0xb3, 0x7a, 0xe5, 0xac, 0x26, 0x43, 0xb5, 0x72, 0xe7, 0xee, 0x33, 0xd3, 0x9f, 0x16}: "EfiManagedNetworkProtocolGuid", efi.GUID{0x91, 0x40, 0x0a, 0xf3, 0xdf, 0xd9, 0x8b, 0x47, 0x89, 0xf2, 0xa2, 0x66, 0xc1, 0x91, 0x79, 0x85}: "OCMR_Setup", efi.GUID{0x91, 0x40, 0x3a, 0xd1, 0x6d, 0x7c, 0x0e, 0x4d, 0xbd, 0xe8, 0x5d, 0xe6, 0xf7, 0x13, 0x5f, 0x35}: "BcmCvAPISmall", efi.GUID{0x91, 0x43, 0xd6, 0x86, 0x99, 0x96, 0x7c, 0x41, 0x95, 0x06, 0x14, 0xfe, 0xe0, 0x6b, 0x8e, 0x54}: "RfBootOptions", efi.GUID{0x91, 0x4f, 0xe2, 0x24, 0x6d, 0x2e, 0x25, 0x45, 0xba, 0xe9, 0xb9, 0x77, 0xde, 0x20, 0x05, 0xd6}: "AepLogDrv", efi.GUID{0x91, 0x51, 0x21, 0x4b, 0x25, 0x9a, 0xfd, 0x43, 0x86, 0xb5, 0x74, 0xe7, 0xaf, 0x72, 0x33, 0x15}: "AmiNvmePassThruProtocolGuid", efi.GUID{0x91, 0x5a, 0x68, 0xb3, 0x6f, 0xf9, 0x59, 0x49, 0xa5, 0x39, 0xa6, 0x3c, 0x3b, 0x9a, 0xce, 0xd3}: "UsbLanDriver", efi.GUID{0x91, 0x63, 0xa9, 0xea, 0xe3, 0x9b, 0x88, 0x44, 0x8a, 0xf3, 0xb3, 0xe6, 0xef, 0xd1, 0x57, 0xd5}: "EmuSecPei", efi.GUID{0x91, 0x6e, 0x57, 0x09, 0x3f, 0x6d, 0xd2, 0x11, 0x8e, 0x39, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b}: "EfiDevicePathProtocolGuid", efi.GUID{0x91, 0x72, 0x6a, 0x46, 0xdf, 0x50, 0x40, 0x4b, 0xa2, 0xeb, 0xce, 0xe6, 0x7d, 0x54, 0x28, 0xc9}: "AmiTseOemPortingVar16", efi.GUID{0x91, 0x7e, 0x50, 0xed, 0xeb, 0xaa, 0x20, 0x42, 0xa2, 0xb2, 0x1c, 0xfb, 0x4d, 0xc7, 0x22, 0x3a}: "OemMS", efi.GUID{0x91, 0x8b, 0x64, 0x55, 0x7d, 0x0e, 0xa3, 0x40, 0xa9, 0xb3, 0xa8, 0x15, 0xd7, 0xea, 0xdf, 0x97}: "EfiRestExProtocol", efi.GUID{0x91, 0x93, 0xb0, 0x68, 0x1f, 0x75, 0xff, 0x46, 0xa4, 0xd6, 0x71, 0xb8, 0x50, 0x2f, 0x52, 0xab}: "KeyboardLayoutDxe", efi.GUID{0x91, 0x94, 0xd1, 0xb7, 0x5a, 0xe5, 0x0d, 0x47, 0x85, 0x08, 0x85, 0xa5, 0xdf, 0xa4, 0x19, 0x74}: "SbDxe", efi.GUID{0x91, 0x94, 0xd1, 0xf7, 0x53, 0xea, 0x0d, 0x97, 0x55, 0x08, 0x75, 0xac, 0xdf, 0xa4, 0x19, 0x74}: "SbSocBristolDxe", efi.GUID{0x91, 0x95, 0x9a, 0xdf, 0x46, 0xb6, 0x21, 0x46, 0xaf, 0x0d, 0x18, 0x14, 0x3a, 0x73, 0x28, 0x9f}: "AppleLegacyBootFS", efi.GUID{0x91, 0xa7, 0xce, 0x5f, 0x6e, 0x51, 0x61, 0x4b, 0x89, 0x2c, 0x72, 0x29, 0xd4, 0xff, 0x23, 0xd4}: "Int15ActiveLFP", efi.GUID{0x91, 0xac, 0xd7, 0x24, 0x1a, 0x3a, 0xb7, 0x44, 0x8c, 0xd5, 0x08, 0x00, 0xa6, 0x6b, 0xcf, 0xe5}: "OemBadgingSupport", efi.GUID{0x91, 0xaf, 0x0c, 0x87, 0x9b, 0xb7, 0xba, 0x4e, 0x92, 0x0f, 0x71, 0xe3, 0xdd, 0x47, 0x89, 0xf4}: "HeciRuntimeDxe", efi.GUID{0x91, 0xbb, 0xa1, 0x80, 0x36, 0x20, 0xdd, 0x46, 0x9c, 0xc8, 0x97, 0xa1, 0xf2, 0xf7, 0xe5, 0xbc}: "HpSmmCoreServices", efi.GUID{0x91, 0xc5, 0x84, 0x06, 0xe8, 0x19, 0x9d, 0x49, 0x97, 0x8a, 0xd7, 0x15, 0x63, 0x6f, 0x1d, 0xab}: "AmdRasRvDxe", efi.GUID{0x91, 0xcd, 0x88, 0xf0, 0x46, 0xa0, 0xd2, 0x11, 0x8e, 0x42, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b}: "EfiVariableStoreProtocol", efi.GUID{0x91, 0xcf, 0xd5, 0x76, 0x55, 0x0c, 0x4e, 0x43, 0x97, 0xc2, 0xd2, 0x82, 0x5c, 0x82, 0xe6, 0x10}: "OemActivation3", efi.GUID{0x91, 0xd7, 0x7d, 0x66, 0xb3, 0xc6, 0x27, 0x4c, 0x8a, 0x6b, 0x0f, 0x8e, 0x72, 0x2d, 0xeb, 0x41}: "EfiEventNotificationTypeDmarGuid", efi.GUID{0x91, 0xdc, 0xde, 0xb2, 0x9f, 0xd5, 0xd2, 0x48, 0x89, 0x8a, 0x12, 0x49, 0x0c, 0x74, 0xa4, 0xe0}: "EfiIfrBootMaintenanceGuid", efi.GUID{0x91, 0xdd, 0x89, 0x44, 0xba, 0x8f, 0x0e, 0x4f, 0xb2, 0x18, 0xa2, 0x44, 0x97, 0x80, 0x5e, 0x1b}: "AmdFabricBrhPei", efi.GUID{0x91, 0xe3, 0x53, 0x6e, 0xfc, 0x40, 0x39, 0x45, 0x90, 0x55, 0x06, 0x46, 0x9c, 0x50, 0xaf, 0xbc}: "AmiPciAccessCspBaseLibOverride", efi.GUID{0x91, 0xe9, 0x83, 0x19, 0x33, 0x50, 0xda, 0x43, 0x8e, 0xa1, 0x16, 0xd0, 0x3a, 0xe8, 0x95, 0xc8}: "MemoryMarginToolHookSmmShp", efi.GUID{0x91, 0xec, 0xe5, 0xcf, 0xed, 0x31, 0xe9, 0x47, 0xbe, 0x7d, 0x9c, 0xcb, 0x59, 0x13, 0x4b, 0x71}: "SiSaPreMemPolicyPpiGuid", efi.GUID{0x91, 0xed, 0x1f, 0x2d, 0x7d, 0x67, 0x18, 0x49, 0xb5, 0x8b, 0xab, 0x4b, 0xce, 0x20, 0xe6, 0x72}: "AbtChk", efi.GUID{0x91, 0xee, 0x5e, 0x98, 0xac, 0xbc, 0x38, 0x42, 0x87, 0x78, 0x57, 0xef, 0xdc, 0x93, 0xf2, 0x4e}: "MainFormSet", efi.GUID{0x91, 0xf0, 0x35, 0x5a, 0xe4, 0xb3, 0xa7, 0x4d, 0xba, 0x74, 0xc9, 0x30, 0x3d, 0x35, 0x77, 0xf9}: "FjPowerButtonDxe", efi.GUID{0x91, 0xf0, 0xfa, 0xc9, 0xf8, 0x57, 0x4c, 0xa6, 0xa0, 0x7a, 0x44, 0x5b, 0x12, 0x4f, 0x0d, 0x93}: "FlashMapPei", efi.GUID{0x91, 0xf1, 0x61, 0xad, 0x5f, 0xae, 0x0e, 0x4c, 0xb9, 0xfa, 0xe8, 0x69, 0xd2, 0x88, 0xc6, 0x4f}: "EfiCpuIo2ProtocolGuid", efi.GUID{0x91, 0xf4, 0xa3, 0xb8, 0x43, 0x02, 0xc4, 0x45, 0xb6, 0x70, 0xc1, 0xbf, 0x61, 0x98, 0x02, 0xae}: "HpRuntimeBiosUpdateCheckDxe", efi.GUID{0x91, 0xf8, 0x7d, 0xf5, 0xd1, 0x1d, 0x67, 0x4c, 0x99, 0xa1, 0x4a, 0xb2, 0xda, 0xd9, 0xff, 0xbc}: "OdmDebugSmmProtocol", efi.GUID{0x92, 0x02, 0x19, 0xa6, 0x59, 0xde, 0x1e, 0x42, 0xba, 0x6a, 0x1c, 0x7d, 0x17, 0xdf, 0xdf, 0xa7}: "AmdAblPerformanceDxe", efi.GUID{0x92, 0x15, 0x01, 0xfb, 0x97, 0x2a, 0x82, 0x49, 0x8a, 0x54, 0x3b, 0x3f, 0x59, 0x5c, 0xd5, 0x9f}: "FchKeithPei", efi.GUID{0x92, 0x1c, 0x1e, 0x2a, 0xba, 0xaa, 0x62, 0x4d, 0xac, 0x40, 0xf3, 0xa4, 0xc3, 0x38, 0x73, 0x56}: "PeiSmbusLibSmbus2Ppi", efi.GUID{0x92, 0x21, 0x54, 0xb7, 0x4b, 0x9e, 0x7f, 0x42, 0x88, 0xfb, 0x18, 0xa0, 0x19, 0x82, 0x36, 0xe3}: "PdHostInterfaceTiDxe", efi.GUID{0x92, 0x23, 0xd7, 0x5f, 0x96, 0x61, 0x84, 0x46, 0xaf, 0x2f, 0x79, 0x99, 0x81, 0x5b, 0x5d, 0x45}: "Smbus2Arp", efi.GUID{0x92, 0x25, 0x3c, 0x23, 0xec, 0x1c, 0x4a, 0x49, 0xa0, 0x97, 0x15, 0xdc, 0x96, 0x37, 0x97, 0x77}: "FwVolDxe", efi.GUID{0x92, 0x2c, 0x51, 0x62, 0xc4, 0x63, 0x80, 0x4d, 0x82, 0xb1, 0xc1, 0xa4, 0xdc, 0x44, 0x80, 0xe5}: "EfiMiscProducer", efi.GUID{0x92, 0x2f, 0x4e, 0xe7, 0x3b, 0xed, 0x5d, 0x43, 0x8a, 0x7d, 0xbb, 0x29, 0x40, 0x8e, 0x9b, 0x22}: "AfuCapsuleOnDiskPei", efi.GUID{0x92, 0x30, 0xbc, 0xd2, 0xbb, 0x92, 0x21, 0x4b, 0xa2, 0x6b, 0xce, 0x6f, 0x7c, 0x3e, 0x98, 0x57}: "AtAmUi", efi.GUID{0x92, 0x36, 0x17, 0x89, 0xc2, 0x9a, 0x86, 0x4c, 0x9e, 0xcc, 0xf3, 0x77, 0x82, 0xdd, 0xeb, 0xaa}: "LenovoHdpManagerSmm", efi.GUID{0x92, 0x45, 0xba, 0xa8, 0x57, 0x4d, 0xc9, 0x41, 0xad, 0x6c, 0x07, 0x91, 0xbd, 0x23, 0xa9, 0x9b}: "OemUsbPorting", efi.GUID{0x92, 0x46, 0xa8, 0x19, 0xad, 0x4a, 0x4b, 0xc0, 0x90, 0xe9, 0xe0, 0x17, 0x36, 0x0a, 0x98, 0x60}: "DiskImage", efi.GUID{0x92, 0x46, 0xdd, 0xdc, 0xd3, 0x88, 0xe6, 0x4c, 0x8c, 0xef, 0x15, 0xe0, 0xe4, 0xda, 0x14, 0x94}: "Npce388nFlashDxe", efi.GUID{0x92, 0x4a, 0x29, 0xab, 0xf5, 0xea, 0xf3, 0x4c, 0xab, 0x2b, 0x2d, 0x4b, 0xed, 0x4d, 0xb6, 0x3d}: "PeiMfgMemoryTestPpiGuid", efi.GUID{0x92, 0x4d, 0x53, 0xa0, 0x76, 0x97, 0x4e, 0x4e, 0x92, 0x34, 0xc9, 0xdc, 0x18, 0x49, 0xdb, 0xb5}: "PlatformFlashAccessLibNull", efi.GUID{0x92, 0x4e, 0x6b, 0x99, 0xeb, 0xd1, 0x35, 0x4e, 0xb1, 0x94, 0xbf, 0x9e, 0x0c, 0x52, 0x4a, 0xcc}: "AssetIDOnRecoveryModeDxe", efi.GUID{0x92, 0x52, 0x66, 0xdf, 0xd7, 0x79, 0xe2, 0x40, 0xba, 0x51, 0xf7, 0xd4, 0x94, 0x62, 0x81, 0x85}: "CpuWakeUpBufferVariable", efi.GUID{0x92, 0x56, 0xd6, 0xcd, 0x98, 0x2e, 0xad, 0x45, 0xb7, 0xee, 0xcb, 0xed, 0x41, 0x55, 0xdc, 0xe8}: "FjSystemDataPei", efi.GUID{0x92, 0x5d, 0x58, 0x69, 0x0a, 0xb5, 0xd7, 0x4a, 0xb2, 0x65, 0x2e, 0xb1, 0xae, 0x06, 0x65, 0x74}: "FmpDxe", efi.GUID{0x92, 0x62, 0x6b, 0x03, 0x93, 0x27, 0xc0, 0x4d, 0x9a, 0x7f, 0xd6, 0xb5, 0xf0, 0x34, 0x55, 0x8c}: "FjSystemHooks", efi.GUID{0x92, 0x66, 0xf4, 0x41, 0x13, 0x95, 0x1c, 0x4d, 0x8b, 0xb3, 0xb6, 0xa1, 0x68, 0x18, 0x2d, 0xe4}: "DellMePciPlatformConfigDxe", efi.GUID{0x92, 0x6d, 0x29, 0xea, 0x69, 0x0b, 0x3c, 0x42, 0x8c, 0x28, 0x33, 0xb4, 0xe0, 0xa9, 0x12, 0x68}: "PcdDataBaseHobGuid", efi.GUID{0x92, 0x6e, 0x57, 0x09, 0x3f, 0x6d, 0xd2, 0x11, 0x8e, 0x39, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b}: "EfiFileInfoGuid", efi.GUID{0x92, 0x75, 0xa8, 0xf4, 0xad, 0xd3, 0x36, 0x43, 0xba, 0x00, 0x80, 0x85, 0x9f, 0xee, 0x44, 0xaf}: "SmBiosOverRide", efi.GUID{0x92, 0x7e, 0xb8, 0xa0, 0x92, 0x63, 0xfe, 0x47, 0x9a, 0xa0, 0x90, 0x20, 0x31, 0x47, 0xec, 0x04}: "DellHddPwSmm", efi.GUID{0x92, 0x8e, 0xa3, 0x0b, 0x4a, 0x15, 0xe2, 0x4b, 0xa5, 0xe0, 0xbe, 0x80, 0x57, 0x1c, 0xdb, 0x71}: "DellDtwlanSmm", efi.GUID{0x92, 0x9c, 0x49, 0xbe, 0x4b, 0x7d, 0xd4, 0x11, 0xbc, 0xee, 0x00, 0x80, 0xc7, 0x3c, 0x88, 0x81}: "EfiDebugAssertProtocol", efi.GUID{0x92, 0xa4, 0xd2, 0x3b, 0xc0, 0x96, 0x79, 0x40, 0xb4, 0x20, 0xfc, 0xf9, 0x8e, 0xf1, 0x03, 0xed}: "EfiCertX509Sha256Guid", efi.GUID{0x92, 0xa7, 0x3b, 0x16, 0x11, 0xf8, 0xba, 0x4f, 0xae, 0x8c, 0x10, 0x17, 0x32, 0xf0, 0x32, 0x8f}: "AdlSemaThermalControl", efi.GUID{0x92, 0xaa, 0x91, 0x43, 0x44, 0x66, 0x8a, 0x4d, 0x9a, 0x84, 0xdd, 0xd4, 0x05, 0xc3, 0x12, 0xf3}: "AppleBootPolicy", efi.GUID{0x92, 0xbc, 0xdc, 0x37, 0x9c, 0x17, 0x86, 0x47, 0xa2, 0xc7, 0x73, 0x2e, 0x0f, 0x3f, 0x24, 0xdb}: "SystemSecureFlashFvHobPei", efi.GUID{0x92, 0xbd, 0x28, 0xa1, 0xd3, 0xe5, 0x8c, 0x4a, 0xa9, 0x02, 0x55, 0x99, 0x89, 0xbd, 0xca, 0x05}: "DellPermanentDeviceDisablePei", efi.GUID{0x92, 0xc0, 0xfc, 0xbd, 0xa4, 0x36, 0x68, 0x46, 0xba, 0xfe, 0xec, 0x8f, 0x1b, 0x02, 0xa2, 0x8a}: "DellMultiFuncDevConfig", efi.GUID{0x92, 0xc9, 0xee, 0x8d, 0x9c, 0xd3, 0x5c, 0x4a, 0xab, 0x6b, 0x98, 0x6e, 0x14, 0x24, 0x2b, 0x9d}: "EfiDiskInfoSdMmcInterfaceGuid", efi.GUID{0x92, 0xcb, 0x62, 0x10, 0xa9, 0x72, 0xdc, 0x4f, 0x96, 0x94, 0xb1, 0xfe, 0x81, 0x7e, 0xfa, 0xaf}: "DustFilterAlertDxe", efi.GUID{0x92, 0xce, 0xae, 0xa6, 0x12, 0x00, 0x10, 0x4e, 0x88, 0xef, 0x58, 0x8d, 0x8d, 0xcc, 0xa8, 0xe4}: "DellSioIt8669eSmm", efi.GUID{0x92, 0xdb, 0x7f, 0xbe, 0xbe, 0xe3, 0x17, 0x45, 0xbd, 0x4b, 0xc6, 0xfc, 0xbe, 0x00, 0xda, 0xa1}: "MpDmaBrhDxe", efi.GUID{0x92, 0xf7, 0xd1, 0x63, 0x31, 0x77, 0x44, 0x4a, 0xbc, 0x8e, 0x91, 0x80, 0xa3, 0x6f, 0xd0, 0xa8}: "IccOverClocking", efi.GUID{0x93, 0x00, 0xa1, 0x0a, 0x7a, 0xe9, 0x28, 0x4e, 0x8e, 0x77, 0x7c, 0xb3, 0x70, 0x41, 0xb2, 0x91}: "DeviceBlacklistWmi", efi.GUID{0x93, 0x0d, 0x73, 0x64, 0x5b, 0xe4, 0xf1, 0x4a, 0x91, 0xb3, 0x75, 0xb5, 0x2e, 0xcb, 0xfa, 0xe9}: "MrdMultiBoardSupport", efi.GUID{0x93, 0x0d, 0xf4, 0x48, 0x30, 0xaf, 0x10, 0x44, 0x9f, 0x4a, 0xff, 0x61, 0x94, 0x7e, 0x3f, 0x62}: "MAPS_WatchDogTimerPEI", efi.GUID{0x93, 0x0f, 0xee, 0xff, 0xca, 0x34, 0x3a, 0x43, 0xb4, 0x4a, 0x18, 0xc2, 0x5c, 0x1e, 0x61, 0x5e}: "RecoveryControl", efi.GUID{0x93, 0x11, 0x57, 0xb4, 0x1a, 0x96, 0x20, 0x4d, 0xa1, 0x11, 0x91, 0xc8, 0xb0, 0x24, 0xed, 0x79}: "SwSmi534D0640", efi.GUID{0x93, 0x17, 0x7c, 0x5c, 0x9b, 0xaa, 0x4e, 0x43, 0xb3, 0x07, 0xb7, 0xff, 0xca, 0xb4, 0x9f, 0xad}: "RTCWakeup", efi.GUID{0x93, 0x1d, 0x87, 0x1c, 0x95, 0xba, 0x4d, 0x47, 0xba, 0x2a, 0x39, 0x7c, 0xcf, 0x9d, 0x26, 0x91}: "OemTurnOnAmp", efi.GUID{0x93, 0x23, 0x6a, 0xd9, 0x90, 0x87, 0xaa, 0x4b, 0x9c, 0xeb, 0x42, 0x53, 0x3f, 0x01, 0x6e, 0xe9}: "RegAccessSMM", efi.GUID{0x93, 0x24, 0x39, 0xb0, 0x68, 0x4e, 0xc7, 0xce, 0x99, 0x2c, 0xf6, 0xb5, 0xe0, 0x29, 0xba, 0xd2}: "AmdSocAm4VmrPei", efi.GUID{0x93, 0x30, 0x29, 0x42, 0xb9, 0x76, 0x82, 0x44, 0x8c, 0x02, 0x3b, 0xef, 0xde, 0xa9, 0xb3, 0x5d}: "TcgSmm", efi.GUID{0x93, 0x34, 0x8d, 0xb1, 0x62, 0x7e, 0xdb, 0x48, 0xa4, 0xda, 0x81, 0x20, 0xbf, 0xb1, 0x43, 0x94}: "FdiskOemSmmProtocol", efi.GUID{0x93, 0x38, 0x94, 0x41, 0xd0, 0xcd, 0x3f, 0x4a, 0xba, 0x63, 0xd1, 0x32, 0x5e, 0x72, 0x06, 0x1a}: "LenovoHdpManagerPei", efi.GUID{0x93, 0x3c, 0x15, 0x75, 0xd2, 0x7a, 0x52, 0x44, 0x80, 0x36, 0x64, 0x4a, 0xd4, 0xaa, 0xff, 0x25}: "AsusPcieSsdUpdate", efi.GUID{0x93, 0x3d, 0xce, 0x62, 0xd8, 0x25, 0xe0, 0x48, 0xba, 0xb3, 0x1a, 0xbe, 0x7c, 0x25, 0xdc, 0x49}: "MctpSmbusDxe", efi.GUID{0x93, 0x3f, 0x9d, 0x52, 0xe9, 0xe8, 0x73, 0x4e, 0xb1, 0xe1, 0xbd, 0xf6, 0xa9, 0xd5, 0x01, 0x13}: "ArpDxe", efi.GUID{0x93, 0x47, 0xf6, 0x70, 0x23, 0xc3, 0x61, 0x42, 0xac, 0x2c, 0xd8, 0x76, 0xf2, 0x7c, 0x53, 0x45}: "EfiKmsFormatGeneric256Guid", efi.GUID{0x93, 0x4d, 0x8e, 0x01, 0xcf, 0xe8, 0x51, 0x4f, 0x91, 0x70, 0x26, 0x58, 0xec, 0xa4, 0xc9, 0xe3}: "AmdMiniRasStxKrkServiceDxe", efi.GUID{0x93, 0x4d, 0xcb, 0x4b, 0xd2, 0x46, 0xef, 0x94, 0xbb, 0x82, 0x5c, 0x86, 0x71, 0xb2, 0x4d, 0x26}: "CxlErrorLogDxe", efi.GUID{0x93, 0x53, 0xcb, 0xb5, 0xda, 0x7f, 0x83, 0x43, 0xb6, 0x60, 0x05, 0x5c, 0x7e, 0x8a, 0xd9, 0x91}: "KeyboardBacklightBin", efi.GUID{0x93, 0x56, 0x44, 0xa1, 0x59, 0x56, 0x0e, 0x03, 0xc2, 0x56, 0x42, 0xa1, 0x86, 0x8a, 0x6d, 0x9b}: "MktmeCoreInitPeim", efi.GUID{0x93, 0x5e, 0x15, 0xef, 0xb4, 0x2c, 0x72, 0x4a, 0x87, 0x20, 0x8b, 0x44, 0x7a, 0x91, 0xf5, 0x40}: "AmdSocFp6CznDxe", efi.GUID{0x93, 0x6e, 0x0a, 0xf7, 0xe1, 0x82, 0x6a, 0x4e, 0x9a, 0x26, 0xe7, 0xde, 0x6a, 0xce, 0x5b, 0xbb}: "PostScreenInfo", efi.GUID{0x93, 0x6e, 0x57, 0x09, 0x3f, 0x6d, 0xd2, 0x11, 0x8e, 0x39, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b}: "EfiFileSystemInfoGuid", efi.GUID{0x93, 0x79, 0xca, 0xa9, 0x8f, 0xfb, 0xe4, 0x4b, 0x8c, 0xe1, 0xe2, 0xab, 0x9f, 0x2e, 0xcd, 0x04}: "SGXSetupSmm", efi.GUID{0x93, 0x87, 0x44, 0x6e, 0xdf, 0x9c, 0x87, 0x47, 0x93, 0x92, 0x4b, 0x6a, 0x6d, 0x5f, 0xfc, 0xa8}: "DellHwManagerDxe", efi.GUID{0x93, 0x89, 0x8e, 0x77, 0x45, 0x0c, 0xf7, 0x41, 0x97, 0x6a, 0x4c, 0x08, 0x88, 0x55, 0xe6, 0xb6}: "AmdIspCamera", efi.GUID{0x93, 0x8a, 0x0c, 0xdb, 0xee, 0x57, 0x4e, 0x4e, 0xaa, 0x7d, 0x11, 0x79, 0x23, 0x4a, 0x7d, 0x63}: "DellRamDisk", efi.GUID{0x93, 0x8c, 0x04, 0x9b, 0xb1, 0x3f, 0x6d, 0x4f, 0x85, 0x92, 0x13, 0x3e, 0x26, 0xf9, 0x4f, 0xfd}: "DellStealthMode2Policy", efi.GUID{0x93, 0x90, 0xf8, 0x0b, 0x5e, 0x3e, 0x7a, 0x45, 0x8c, 0xa6, 0x62, 0x35, 0x29, 0x15, 0xa3, 0xb4}: "PHashDPei", efi.GUID{0x93, 0x92, 0xde, 0x39, 0xd9, 0x5b, 0x28, 0x47, 0x82, 0x7e, 0x12, 0x42, 0xf3, 0xf9, 0xbe, 0x3a}: "HpAmdTbtDxe", efi.GUID{0x93, 0x93, 0x00, 0x7f, 0x08, 0xa9, 0xee, 0x4e, 0x84, 0x3b, 0x07, 0x71, 0xfc, 0xed, 0x8f, 0x59}: "MpmOemFunction", efi.GUID{0x93, 0xa1, 0xf0, 0x8b, 0x00, 0xcc, 0x79, 0x47, 0x9d, 0xb3, 0x3e, 0xa3, 0x5d, 0xc7, 0x7b, 0xcd}: "AmdPspPeiV2StxH", efi.GUID{0x93, 0xaa, 0x7b, 0x77, 0x60, 0x92, 0x1b, 0x42, 0x91, 0x73, 0xfa, 0x62, 0x61, 0x1b, 0x61, 0x88}: "HciPei", efi.GUID{0x93, 0xac, 0xc9, 0xc6, 0xc8, 0xcf, 0x4c, 0x41, 0x87, 0x2b, 0xd0, 0x11, 0x6f, 0x07, 0x6b, 0xf9}: "HpThermalDiagsSioSmi", efi.GUID{0x93, 0xb8, 0x30, 0xd3, 0xfa, 0xc7, 0xcd, 0x4b, 0xb0, 0xbe, 0x64, 0xdf, 0xe9, 0x84, 0x15, 0xc2}: "FjRiserPowerDelivery", efi.GUID{0x93, 0xb9, 0x8b, 0xf8, 0x30, 0x92, 0xdf, 0x4c, 0x91, 0x6a, 0x7a, 0x2d, 0x3b, 0xde, 0xe6, 0x90}: "AppleStartupManagerPolicyDxe", efi.GUID{0x93, 0xc2, 0x46, 0x54, 0x9b, 0x33, 0xcd, 0x47, 0xb7, 0x19, 0x58, 0x5d, 0xe3, 0x94, 0x08, 0xcc}: "PostReport", efi.GUID{0x93, 0xc4, 0x14, 0x79, 0x39, 0xf4, 0x6c, 0x4c, 0xab, 0x23, 0x7f, 0x72, 0x15, 0x0e, 0x72, 0xd4}: "ImageAppleLogo", efi.GUID{0x93, 0xc9, 0xbe, 0x7a, 0xd6, 0x53, 0x4f, 0x46, 0x83, 0x71, 0xff, 0xaf, 0xd9, 0x7f, 0x39, 0x28}: "AmiCryptoPkgTokenSpace", efi.GUID{0x93, 0xd0, 0xb3, 0xa3, 0x04, 0x1b, 0xbf, 0x45, 0x8d, 0x23, 0x23, 0x34, 0x60, 0x7c, 0x7b, 0x40}: "PlatformDeepS5", efi.GUID{0x93, 0xd0, 0xef, 0xef, 0x9b, 0x0d, 0xeb, 0x46, 0xa8, 0x56, 0x48, 0x35, 0x07, 0x00, 0xc9, 0x08}: "EfiHiiImageDecoderNameJpegGuid", efi.GUID{0x93, 0xd6, 0x3a, 0xfa, 0x8a, 0xd5, 0x19, 0x46, 0x96, 0x0b, 0x8e, 0xe8, 0x5c, 0x91, 0x48, 0x70}: "PeiPciLibPciCfg2", efi.GUID{0x93, 0xdf, 0xcd, 0x86, 0x72, 0x48, 0x97, 0x45, 0x8a, 0xf9, 0xa3, 0x5a, 0xe4, 0xd3, 0x72, 0x5f}: "IScsiDxe", efi.GUID{0x93, 0xe0, 0x67, 0xa7, 0x8d, 0x45, 0xe4, 0x4d, 0xa2, 0xa2, 0x08, 0xc7, 0xcb, 0x5f, 0xb8, 0x44}: "DellFreeFallSensorPei", efi.GUID{0x93, 0xe3, 0x92, 0x6f, 0xc0, 0x03, 0x7b, 0x42, 0xbb, 0xeb, 0x4e, 0xf8, 0x07, 0xb5, 0x5b, 0xd8}: "IconNetworkRecovery", efi.GUID{0x93, 0xe9, 0x1c, 0x04, 0x77, 0x66, 0x20, 0x47, 0xa6, 0x65, 0x37, 0x5b, 0x80, 0xff, 0xe0, 0x12}: "DellFpThunk", efi.GUID{0x93, 0xe9, 0xc3, 0x87, 0x8d, 0xb2, 0x26, 0x42, 0x89, 0xc9, 0x12, 0x0d, 0xbc, 0x92, 0xac, 0xbf}: "SmBusSmm", efi.GUID{0x93, 0xec, 0x5b, 0x69, 0xae, 0x82, 0x17, 0x4c, 0xbd, 0xad, 0x7f, 0x18, 0x4f, 0x4e, 0x65, 0x1d}: "LibC", efi.GUID{0x93, 0xf3, 0x70, 0xa5, 0xf5, 0xb0, 0xa4, 0x44, 0x85, 0x50, 0x61, 0x60, 0x05, 0x97, 0xb4, 0x09}: "BootScriptHideDxe", efi.GUID{0x93, 0xfc, 0xad, 0xdd, 0xc5, 0xfb, 0x89, 0x43, 0xb2, 0x0f, 0xec, 0x99, 0xe4, 0xa6, 0xae, 0x52}: "SmmLibNull", efi.GUID{0x93, 0xfd, 0x65, 0x42, 0xa5, 0x28, 0x8d, 0x48, 0xa5, 0x72, 0x2a, 0x47, 0xb1, 0x05, 0x61, 0xc0}: "D01PeiCallback", efi.GUID{0x94, 0x00, 0xe4, 0x72, 0xe1, 0x2e, 0x7a, 0x49, 0x8f, 0x33, 0x4c, 0x93, 0x4a, 0x9e, 0x9c, 0x0c}: "EfiSmmSmbusProtocolGuid", efi.GUID{0x94, 0x0b, 0x64, 0x88, 0x1c, 0x02, 0x26, 0x49, 0x91, 0x98, 0x0a, 0x98, 0xfb, 0x7a, 0x08, 0x26}: "COM_TYPE", efi.GUID{0x94, 0x0f, 0xa6, 0xe9, 0x8b, 0x7a, 0xba, 0x45, 0x9c, 0x32, 0x34, 0x85, 0x52, 0x6b, 0x57, 0x16}: "DellAcLossPei", efi.GUID{0x94, 0x0f, 0xb6, 0xe9, 0x0b, 0x7a, 0xcd, 0x48, 0x9c, 0x88, 0x84, 0x84, 0x52, 0x6c, 0x57, 0x19}: "DellSbConfigPei", efi.GUID{0x94, 0x12, 0x6e, 0x4b, 0xd2, 0x08, 0x31, 0x41, 0x83, 0xe4, 0x14, 0xbe, 0x9f, 0xcd, 0x42, 0xc1}: "AmdMemRestorePei", efi.GUID{0x94, 0x18, 0x85, 0x61, 0x92, 0x6b, 0xc8, 0x48, 0xa5, 0xeb, 0x4e, 0x2a, 0x5b, 0xcf, 0x3d, 0x5f}: "SmartCoverPortingDxe", efi.GUID{0x94, 0x1b, 0x19, 0xf2, 0xab, 0xdc, 0xff, 0x49, 0x8c, 0x8f, 0xa4, 0x1f, 0xa9, 0x90, 0x8d, 0x11}: "DeviceLayoutLoadDxe", efi.GUID{0x94, 0x1c, 0xc6, 0x54, 0x7d, 0x28, 0xc5, 0x4d, 0x99, 0xd5, 0xd3, 0x8d, 0x1a, 0x53, 0xae, 0x6b}: "PlatformInfoHob", efi.GUID{0x94, 0x1d, 0xa2, 0xe1, 0x20, 0x4a, 0x0e, 0x4e, 0xae, 0x09, 0xa9, 0xa2, 0x1f, 0x24, 0xbb, 0x9e}: "EfiMeFwSkuVariable", efi.GUID{0x94, 0x2a, 0x56, 0x84, 0xff, 0x1c, 0xdf, 0x11, 0xab, 0x3f, 0xfb, 0x61, 0xaa, 0x51, 0xc4, 0x1c}: "PmRuntimeDxe", efi.GUID{0x94, 0x2b, 0x05, 0x6f, 0xf5, 0x59, 0x06, 0x46, 0xa0, 0x17, 0x06, 0xcb, 0xdc, 0x5c, 0x20, 0xba}: "MctpSmbusSmm", efi.GUID{0x94, 0x2b, 0x9c, 0x61, 0x5a, 0xfe, 0xc3, 0x45, 0xb4, 0x45, 0xc6, 0xaf, 0x9b, 0xdd, 0x7c, 0xe0}: "BiosGuardSecSMIFlash", efi.GUID{0x94, 0x2c, 0x47, 0x75, 0x21, 0x62, 0xf2, 0x4c, 0x9e, 0xc7, 0x14, 0x62, 0xcb, 0x72, 0x6b, 0x1b}: "AmdSocAm5PhxDxe", efi.GUID{0x94, 0x35, 0xcf, 0x0d, 0x8c, 0x31, 0x96, 0x45, 0xb0, 0x0f, 0xbe, 0x61, 0x84, 0x2d, 0xe3, 0xe2}: "SystemBootTypePeiPei", efi.GUID{0x94, 0x3d, 0xed, 0x61, 0xd8, 0x30, 0x8c, 0x40, 0x97, 0xdf, 0xde, 0xdf, 0x27, 0x40, 0xf6, 0x30}: "AmtLockPbtn", efi.GUID{0x94, 0x40, 0x6a, 0xd5, 0x0f, 0x57, 0x3d, 0x4d, 0x8f, 0x5f, 0x8d, 0x8a, 0xa0, 0xb3, 0x96, 0xcb}: "EhciPei", efi.GUID{0x94, 0x46, 0xf0, 0x02, 0x0a, 0x2c, 0x1e, 0x4f, 0xb0, 0xce, 0x64, 0xbe, 0x25, 0x89, 0x0b, 0x03}: "DebugAgentTimerLibNull", efi.GUID{0x94, 0x5d, 0xda, 0x0c, 0x1a, 0x95, 0x61, 0x4c, 0x8d, 0xd5, 0xe5, 0xbf, 0x34, 0xba, 0x69, 0xec}: "SlotDataUpdateDxeLightningRidgeEXECB1", efi.GUID{0x94, 0x5e, 0xee, 0x71, 0xb9, 0x65, 0xd5, 0x45, 0x82, 0x1a, 0x3a, 0x4d, 0x86, 0xcf, 0xe6, 0xbe}: "EfiUserCredentialProtocolGuid", efi.GUID{0x94, 0x5f, 0xe6, 0x53, 0x18, 0xb4, 0x41, 0x45, 0x9a, 0x12, 0x18, 0x83, 0x9a, 0x56, 0xb4, 0x27}: "Thc", efi.GUID{0x94, 0x61, 0x4f, 0x5b, 0xdb, 0x44, 0x79, 0x41, 0xb6, 0xf2, 0x7b, 0x94, 0xad, 0xad, 0x31, 0x2b}: "AsfDxe", efi.GUID{0x94, 0x65, 0xe5, 0x57, 0x95, 0xce, 0xad, 0x46, 0x95, 0x31, 0x3c, 0x49, 0x31, 0x0c, 0xa7, 0xce}: "Ofbd", efi.GUID{0x94, 0x76, 0xd2, 0x2d, 0x5c, 0xad, 0xc7, 0x4e, 0x98, 0x70, 0xbc, 0x58, 0xf9, 0xe1, 0x79, 0x31}: "FjBiosSetupOptionControlBin", efi.GUID{0x94, 0x7b, 0x08, 0x37, 0x41, 0xef, 0x77, 0x49, 0x93, 0xe2, 0x3f, 0x6a, 0xdf, 0xdd, 0x06, 0xe1}: "LenovoSplashDxe", efi.GUID{0x94, 0x7e, 0x89, 0x3b, 0x64, 0x48, 0x6b, 0x41, 0x83, 0x53, 0x94, 0x79, 0x32, 0x54, 0x97, 0xac}: "OemDxe", efi.GUID{0x94, 0x7f, 0xf7, 0x7a, 0x38, 0x4c, 0xf1, 0x4f, 0x8c, 0xcd, 0x3e, 0x08, 0x4f, 0x2f, 0xfe, 0xc0}: "SkylakeGraphics", efi.GUID{0x94, 0x8b, 0xff, 0x6b, 0x8e, 0xd9, 0x7e, 0x4c, 0x83, 0x00, 0xe5, 0xb6, 0x47, 0x01, 0xc1, 0x18}: "ApobZpRvDxe", efi.GUID{0x94, 0x8e, 0x29, 0xaa, 0x5d, 0xa4, 0xb5, 0x45, 0x8c, 0xe5, 0x4f, 0xb7, 0x1f, 0xba, 0x4c, 0xe0}: "RpmcSmm", efi.GUID{0x94, 0x93, 0x10, 0xf9, 0xa3, 0xe5, 0x61, 0x4e, 0xb1, 0x68, 0xdc, 0x34, 0xd5, 0x34, 0x45, 0x1e}: "DellBbsmanagerSmm", efi.GUID{0x94, 0x94, 0xa1, 0x71, 0xb6, 0x2a, 0x96, 0x4e, 0x85, 0x81, 0xcf, 0x34, 0x25, 0x42, 0x73, 0xfe}: "MeBiosPayloadDataProtocol", efi.GUID{0x94, 0x94, 0xdc, 0x0e, 0x43, 0x27, 0xa5, 0x4b, 0x88, 0x18, 0x0a, 0xef, 0x52, 0x13, 0xf1, 0x88}: "EfiExtendedSalCacheServicesProtocolGuid", efi.GUID{0x94, 0x99, 0xc6, 0x3f, 0x00, 0x19, 0x8b, 0x46, 0xb2, 0xd9, 0xe6, 0x16, 0x30, 0x56, 0xc3, 0xe7}: "Ast2500Pei", efi.GUID{0x94, 0x9b, 0x09, 0xd6, 0x97, 0xcd, 0xc5, 0x4c, 0x87, 0x14, 0x7f, 0x63, 0x12, 0x70, 0x1a, 0x8a}: "VirtioGpuDxe", efi.GUID{0x94, 0x9e, 0x43, 0x67, 0x37, 0xfd, 0x32, 0x4a, 0xbd, 0x53, 0x3b, 0x97, 0x38, 0x64, 0x32, 0xe4}: "Ahci", efi.GUID{0x94, 0x9f, 0xea, 0xc7, 0x47, 0x15, 0xf0, 0x44, 0x86, 0x3f, 0x56, 0x3e, 0xae, 0x79, 0xe1, 0xc0}: "TianoCompressSmm", efi.GUID{0x94, 0xa3, 0x99, 0x9d, 0x78, 0x18, 0x2c, 0x4d, 0x98, 0xe9, 0xc1, 0x6b, 0x8e, 0xc4, 0x79, 0x33}: "DramSharedMailBox", efi.GUID{0x94, 0xa7, 0x66, 0xc6, 0x6d, 0x40, 0x51, 0x4a, 0xb3, 0x03, 0xac, 0xfb, 0x59, 0x13, 0x7a, 0x05}: "UsbOcUpdateDxeEldorado", efi.GUID{0x94, 0xb0, 0xe1, 0xdc, 0xc6, 0x7d, 0xd0, 0x45, 0x9f, 0xdd, 0xd7, 0xfc, 0x3c, 0xc3, 0xe4, 0xef}: "QemuRamfbDxe", efi.GUID{0x94, 0xb5, 0x80, 0x37, 0xa4, 0x32, 0x93, 0x45, 0xb8, 0xce, 0x8a, 0x3f, 0x40, 0x4f, 0x61, 0xf4}: "PlatformToDriver", efi.GUID{0x94, 0xbe, 0x29, 0x8b, 0x8b, 0x5b, 0x04, 0x4e, 0xb7, 0x71, 0x57, 0x61, 0xff, 0x97, 0xb1, 0x13}: "FjFpCredentialProviderDxe", efi.GUID{0x94, 0xbf, 0x12, 0xc1, 0xd0, 0x5c, 0xec, 0x45, 0xaa, 0x7f, 0xd3, 0xde, 0xda, 0xab, 0x76, 0x5f}: "OemWSsdtDriver", efi.GUID{0x94, 0xc3, 0xe2, 0xe8, 0xb7, 0xa4, 0x83, 0x45, 0x8c, 0x43, 0xca, 0xec, 0x15, 0xc3, 0x49, 0x66}: "EmulatedEepromPei", efi.GUID{0x94, 0xd3, 0x65, 0x00, 0x51, 0x99, 0x44, 0x41, 0x82, 0xa3, 0x0a, 0xfc, 0x85, 0x79, 0xc2, 0x51}: "EfiPeiRscHandlerPpiGuid", efi.GUID{0x94, 0xd3, 0xc8, 0x90, 0x04, 0x4e, 0x9c, 0x43, 0xba, 0x55, 0x2d, 0x8c, 0xfc, 0xb4, 0x14, 0xed}: "SataDriver", efi.GUID{0x94, 0xd6, 0x83, 0x05, 0x8b, 0xaf, 0xaa, 0x4b, 0x95, 0x83, 0x81, 0x3c, 0xed, 0xf4, 0x08, 0x43}: "CsmInt10Block", efi.GUID{0x94, 0xe4, 0x23, 0xd4, 0xb6, 0x2d, 0x2e, 0x4d, 0xae, 0x23, 0x0a, 0x3d, 0x8d, 0x9d, 0x6e, 0x22}: "FjEPrivacyFilterSmm", efi.GUID{0x94, 0xe4, 0x8f, 0x11, 0x99, 0x06, 0xaa, 0x42, 0xaa, 0xca, 0x62, 0xe8, 0x49, 0x35, 0x9b, 0x17}: "FspRsc2PostCodeMapServicePei", efi.GUID{0x94, 0xf3, 0x3e, 0x63, 0x50, 0x89, 0x44, 0x45, 0x8a, 0xa3, 0xe6, 0xb0, 0xb7, 0x20, 0x14, 0xd8}: "AmdMemSmbiosV2RmbPei", efi.GUID{0x94, 0xf9, 0x69, 0x6f, 0x17, 0x7e, 0xfb, 0x45, 0xb6, 0x2a, 0xd7, 0x82, 0x31, 0x95, 0xbe, 0xab}: "AtaFreezeLockDxe", efi.GUID{0x94, 0xff, 0x92, 0x37, 0x14, 0x86, 0xed, 0x45, 0x90, 0x2b, 0x12, 0x07, 0xbf, 0x14, 0x90, 0xa8}: "PrintThunk", efi.GUID{0x95, 0x08, 0xf9, 0xd4, 0x0b, 0xa6, 0x97, 0x4e, 0xb4, 0x46, 0x28, 0x55, 0x24, 0x6f, 0x89, 0x30}: "AmdNbioBaseRVDxe", efi.GUID{0x95, 0x0d, 0x8d, 0xf4, 0x4d, 0xa5, 0xc0, 0x41, 0xaf, 0xd0, 0x7e, 0x6c, 0xa1, 0xe7, 0x88, 0xd3}: "IblInitDxeIbl", efi.GUID{0x95, 0x10, 0xc0, 0x6d, 0x01, 0x90, 0x4d, 0x4e, 0xb8, 0x52, 0xaf, 0x42, 0x9e, 0xad, 0xff, 0x57}: "OemPowerMgmtDxe", efi.GUID{0x95, 0x15, 0x57, 0xda, 0x99, 0x4d, 0x7c, 0x48, 0x82, 0x7c, 0x26, 0x22, 0x67, 0x7d, 0x33, 0x07}: "EfiStatusCodeDataTypeAssert", efi.GUID{0x95, 0x1d, 0xaf, 0x97, 0x3c, 0x20, 0xde, 0x42, 0x8d, 0x6b, 0xd1, 0x3e, 0xb7, 0xe5, 0xa5, 0x5a}: "PEFirmwareUpdateDxe", efi.GUID{0x95, 0x22, 0x12, 0xc9, 0xed, 0x56, 0x4e, 0x4d, 0x06, 0xa6, 0x50, 0x8d, 0x89, 0x4d, 0x3e, 0x40}: "FspApiPerformanceGuid", efi.GUID{0x95, 0x28, 0xa6, 0x71, 0xd4, 0x1c, 0x9a, 0x4b, 0xa7, 0x7b, 0x57, 0x1f, 0xd7, 0x1b, 0xef, 0xc9}: "OemAcpiDriver", efi.GUID{0x95, 0x28, 0xd4, 0xab, 0xcf, 0x78, 0x72, 0x48, 0x84, 0x44, 0x1b, 0x5c, 0x18, 0x0b, 0xfb, 0xda}: "EfiPeiSmbusPpiGuid", efi.GUID{0x95, 0x28, 0xd4, 0xab, 0xcf, 0x78, 0x72, 0x48, 0x84, 0x44, 0x1b, 0x5c, 0x18, 0x0b, 0xfb, 0xff}: "EfiPeiBootScriptExecuterPpiGuid", efi.GUID{0x95, 0x30, 0xbc, 0x68, 0x39, 0x88, 0x97, 0x4a, 0x8f, 0xea, 0xbe, 0xe0, 0x6e, 0xca, 0x7b, 0xbb}: "LenovoW25Q32FlashPartDxe", efi.GUID{0x95, 0x31, 0x8c, 0x57, 0xc1, 0xd8, 0xf1, 0x44, 0x8a, 0x06, 0x2b, 0x59, 0x2f, 0xbe, 0x6a, 0xf3}: "TouchInputFilterDriver", efi.GUID{0x95, 0x34, 0xa1, 0xa0, 0xbf, 0xa2, 0xe1, 0x44, 0x98, 0xf8, 0xcc, 0x08, 0xd1, 0xae, 0x60, 0x4a}: "OemPeiSetGpio", efi.GUID{0x95, 0x3a, 0xb3, 0x80, 0x78, 0xb9, 0x4a, 0x43, 0x91, 0x95, 0x3c, 0x11, 0x8e, 0x9f, 0x35, 0xcb}: "MsiBoardSmm", efi.GUID{0x95, 0x43, 0xd0, 0x21, 0xa0, 0x96, 0xd5, 0x4f, 0xb4, 0x77, 0xa9, 0x22, 0x64, 0x8e, 0xda, 0xf3}: "AsusSampleDxeWrapperPkg", efi.GUID{0x95, 0x46, 0x7b, 0xaa, 0xb4, 0x00, 0x68, 0x44, 0xad, 0x92, 0x99, 0x37, 0x0a, 0xc0, 0x31, 0xc5}: "LegacyRegion2", efi.GUID{0x95, 0x4f, 0x1c, 0x4e, 0xea, 0x90, 0xde, 0x47, 0x9a, 0xcc, 0xb8, 0x92, 0x01, 0x89, 0xa1, 0xf5}: "SecPeiFspPlatformSecLibSample", efi.GUID{0x95, 0x51, 0xac, 0x8d, 0xd5, 0x3f, 0x32, 0x4e, 0x9c, 0x2a, 0x1a, 0x65, 0xbd, 0x69, 0x99, 0x32}: "AmiTseOemPortingVar9", efi.GUID{0x95, 0x68, 0x80, 0x3d, 0x1e, 0xfb, 0x67, 0x4f, 0xa7, 0x0d, 0x5c, 0xc1, 0xa7, 0xd7, 0x18, 0x57}: "EcdHctm", efi.GUID{0x95, 0x74, 0x93, 0xf6, 0x44, 0x1f, 0x8a, 0x4a, 0x8a, 0x1b, 0x5a, 0x66, 0x9f, 0x93, 0x96, 0xf6}: "DevConsole", efi.GUID{0x95, 0x74, 0xfc, 0xdf, 0xad, 0x75, 0x54, 0x43, 0xab, 0x0a, 0xbd, 0xfd, 0x90, 0x46, 0x06, 0x7c}: "AbtErasePei", efi.GUID{0x95, 0x77, 0x7f, 0x98, 0x48, 0xe9, 0xac, 0x49, 0x83, 0x66, 0xfc, 0xc5, 0x1a, 0x95, 0xd6, 0xe1}: "AsusABMSetupItem", efi.GUID{0x95, 0x77, 0xe6, 0x81, 0xa3, 0xd8, 0xb2, 0x43, 0x8b, 0x5f, 0xe0, 0x32, 0x6f, 0x76, 0xab, 0x91}: "wifi_4bars", efi.GUID{0x95, 0x90, 0x46, 0x1e, 0xc8, 0xef, 0x47, 0x41, 0x97, 0xdb, 0x4d, 0x68, 0xb7, 0x27, 0xe2, 0xe0}: "FwBlockService", efi.GUID{0x95, 0x91, 0x56, 0xd9, 0x94, 0xed, 0xd2, 0x47, 0x95, 0x23, 0x38, 0xbf, 0x2d, 0x20, 0x13, 0x71}: "IntelPciDeviceSecurityDxe", efi.GUID{0x95, 0x95, 0xa5, 0xf6, 0x9f, 0xbb, 0x5b, 0x41, 0xa7, 0xf3, 0xdc, 0x7c, 0x09, 0x38, 0x7b, 0xe6}: "SmBusMemoryDown", efi.GUID{0x95, 0x9b, 0x1d, 0x62, 0x6a, 0x16, 0x2b, 0x43, 0x98, 0x2d, 0x2d, 0x4e, 0xec, 0x78, 0x75, 0xa6}: "UncoreMiscDxe", efi.GUID{0x95, 0xa6, 0x4e, 0x70, 0x73, 0xf3, 0xd4, 0x42, 0xbf, 0x1b, 0x44, 0xbb, 0x7f, 0x60, 0xc2, 0x95}: "menu_bottom_left", efi.GUID{0x95, 0xae, 0xfc, 0x3f, 0xcf, 0x23, 0x67, 0x49, 0x94, 0xf5, 0x16, 0x35, 0x2f, 0x68, 0xe4, 0x3b}: "PpmInitialize", efi.GUID{0x95, 0xb0, 0xf8, 0xbd, 0xe5, 0xed, 0x50, 0x42, 0xb5, 0x77, 0xc5, 0xcb, 0x55, 0x15, 0xb7, 0xae}: "AmdCpmABRecoveryDxe", efi.GUID{0x95, 0xb1, 0xd5, 0x1a, 0xd9, 0x44, 0x17, 0x49, 0x9b, 0xae, 0xe1, 0x47, 0x84, 0x97, 0x93, 0x06}: "Fji210LanDriver", efi.GUID{0x95, 0xb7, 0x2c, 0x95, 0x36, 0xff, 0xcf, 0x48, 0xa2, 0x49, 0x4d, 0xf4, 0x86, 0xd6, 0xab, 0x8d}: "EfiTlsServiceBindingProtocolGuid", efi.GUID{0x95, 0xc2, 0x26, 0xc4, 0x29, 0x98, 0x1e, 0x44, 0x93, 0x1e, 0x9c, 0xe3, 0x5e, 0x3f, 0x9f, 0xe6}: "UiThirdPartyApp", efi.GUID{0x95, 0xd2, 0x6a, 0x54, 0x64, 0x0c, 0xe6, 0x4c, 0xa0, 0x6f, 0xfb, 0x9c, 0xd0, 0x4b, 0x41, 0xcd}: "SystemFlashCommunicationDxe", efi.GUID{0x95, 0xe6, 0x22, 0xc5, 0xff, 0x93, 0xc7, 0x4a, 0x82, 0x20, 0xf8, 0x49, 0xc6, 0x8c, 0x53, 0x8f}: "AsusApmPei", efi.GUID{0x95, 0xee, 0x2e, 0x95, 0xaf, 0xa6, 0xda, 0x43, 0xa5, 0x59, 0xf3, 0x49, 0xa4, 0x6d, 0x71, 0x0a}: "SimpleBootFlag", efi.GUID{0x95, 0xee, 0x3f, 0x76, 0xa1, 0x85, 0x2e, 0x41, 0x92, 0x76, 0x01, 0xbe, 0x8f, 0xae, 0x6c, 0xe1}: "DellSetupASPMDxe", efi.GUID{0x95, 0xef, 0x4a, 0xe8, 0xa6, 0x7c, 0x2f, 0x4b, 0xa3, 0x98, 0xb1, 0x4d, 0x1c, 0x67, 0xa0, 0xb1}: "PchFlashControllerSmm", efi.GUID{0x95, 0xf0, 0x6f, 0x2c, 0x5c, 0x52, 0x28, 0x41, 0xbd, 0x00, 0xb8, 0xda, 0x5e, 0x52, 0xa7, 0x6e}: "AmdCpmSocAm4SmbRDxe", efi.GUID{0x95, 0xf4, 0x60, 0x9d, 0xf2, 0xdb, 0x06, 0x4b, 0xaf, 0xca, 0xf6, 0x2c, 0x1c, 0x89, 0x64, 0x7f}: "PasswordLockWhite", efi.GUID{0x95, 0xfa, 0x7c, 0x69, 0xf2, 0xb1, 0xd7, 0x4e, 0xa0, 0xd2, 0x7a, 0xc6, 0xe4, 0x7b, 0x3c, 0x99}: "HybridGraphicsDxe", efi.GUID{0x95, 0xfb, 0xc3, 0xca, 0xf5, 0x33, 0x96, 0x45, 0x81, 0x8b, 0x68, 0xe0, 0x24, 0xdd, 0xb6, 0x7b}: "IsSecRecoveryPEI", efi.GUID{0x95, 0xfd, 0xec, 0x3f, 0xb2, 0x7c, 0x6e, 0x4a, 0x8f, 0xac, 0xde, 0xfd, 0x99, 0x47, 0xe3, 0x5e}: "ReportFvPei", efi.GUID{0x95, 0xff, 0x98, 0xec, 0x2c, 0x24, 0x13, 0x45, 0xb1, 0xbc, 0x69, 0xfa, 0x24, 0x11, 0x1c, 0x58}: "AcpiDebugDxe", efi.GUID{0x96, 0x04, 0x6c, 0x4d, 0xe4, 0x8d, 0xf2, 0x4a, 0x9a, 0x2e, 0x9b, 0xe5, 0xb9, 0x15, 0x6a, 0xc5}: "AmiPerfTuneDataHob", efi.GUID{0x96, 0x0e, 0xbc, 0xb7, 0xd2, 0x57, 0x10, 0x43, 0xae, 0xef, 0x74, 0xac, 0x77, 0xdf, 0x0d, 0xaf}: "SetupXpBoot", efi.GUID{0x96, 0x1a, 0x35, 0xc7, 0x15, 0x92, 0x26, 0x40, 0xbc, 0xbd, 0x12, 0xd6, 0xe7, 0xdb, 0x36, 0xe9}: "SystemFormBrowserMetroViewDxe", efi.GUID{0x96, 0x21, 0xc0, 0x0d, 0xc8, 0xce, 0x0e, 0x4a, 0x9d, 0xcd, 0xb0, 0xde, 0x59, 0xd8, 0x62, 0x04}: "Wcn685xLauncher", efi.GUID{0x96, 0x28, 0xd1, 0x81, 0x5e, 0x97, 0x7f, 0x48, 0xae, 0x40, 0x1c, 0x37, 0xb4, 0xd7, 0xa8, 0x20}: "DeviceWufuEsrtDxe", efi.GUID{0x96, 0x2a, 0x21, 0x81, 0xed, 0x09, 0x96, 0x49, 0x94, 0x71, 0x8d, 0x72, 0x9c, 0x8e, 0x69, 0xed}: "EfiFirmwareErrorSectionGuid", efi.GUID{0x96, 0x2f, 0x29, 0x4e, 0x43, 0xd8, 0x55, 0x4a, 0xa8, 0xc2, 0xd4, 0x81, 0xf2, 0x7e, 0xbe, 0xee}: "EfiEventNotificationTypeCpeGuid", efi.GUID{0x96, 0x35, 0x1b, 0xe7, 0x9e, 0x10, 0x42, 0x46, 0xa4, 0x32, 0xfc, 0xf4, 0x97, 0xf8, 0xda, 0xe7}: "FchKeithSmmInit", efi.GUID{0x96, 0x39, 0x06, 0xce, 0x4e, 0x6c, 0x31, 0x45, 0xa1, 0x8e, 0x63, 0x5e, 0xdd, 0x44, 0x7a, 0x36}: "ShmInitPei", efi.GUID{0x96, 0x57, 0x39, 0xd4, 0x4c, 0x6f, 0x6b, 0x4c, 0xb9, 0xd1, 0x92, 0xda, 0xa7, 0x19, 0x9a, 0x84}: "AmiRedFishApi", efi.GUID{0x96, 0x5c, 0x83, 0x62, 0xb8, 0x19, 0x6d, 0x4d, 0xbe, 0x13, 0x3a, 0xa1, 0x84, 0x78, 0x43, 0x44}: "SbSocStarshipSp3Pei", efi.GUID{0x96, 0x65, 0x5b, 0x75, 0x96, 0x68, 0xa3, 0x4b, 0xb3, 0xdd, 0x1c, 0x62, 0x9f, 0xd1, 0xea, 0x88}: "AmiFlashProtocolGuid", efi.GUID{0x96, 0x65, 0x68, 0xd9, 0xc4, 0x5b, 0x61, 0x48, 0x82, 0xb3, 0x17, 0x62, 0x60, 0xcb, 0x19, 0x65}: "AMDNavi", efi.GUID{0x96, 0x66, 0x5b, 0x6d, 0xee, 0xf2, 0x29, 0x47, 0x97, 0xd3, 0xa7, 0xb8, 0xee, 0xf3, 0xdb, 0xbe}: "LegacySioDxe", efi.GUID{0x96, 0x69, 0xc3, 0x66, 0x2e, 0xc6, 0x13, 0x4d, 0xbf, 0x9a, 0x75, 0x6e, 0x66, 0xb0, 0x1a, 0x3d}: "StoreRestoreMbrDefaultsAndWmi", efi.GUID{0x96, 0x70, 0x06, 0x12, 0xaf, 0x18, 0xdd, 0x41, 0xb4, 0xf1, 0xd2, 0x95, 0x92, 0x28, 0x30, 0x62}: "SystemDeviceModePrivateWmiSmm", efi.GUID{0x96, 0x79, 0x3d, 0x42, 0xc3, 0xe4, 0x88, 0x4d, 0xbe, 0xfb, 0x0a, 0x60, 0x25, 0x76, 0xca, 0xcd}: "PlatformSpdReadPei", efi.GUID{0x96, 0x81, 0xfe, 0x52, 0xde, 0xf9, 0x07, 0x4d, 0xb2, 0x2f, 0x51, 0xf7, 0x7a, 0x0e, 0x7c, 0x41}: "LocalApicTimerDxe", efi.GUID{0x96, 0x8a, 0x53, 0x98, 0x16, 0x61, 0xe1, 0x4b, 0xa6, 0x09, 0xbb, 0xcc, 0xcc, 0x2e, 0x0d, 0x15}: "VariableProviderSmm", efi.GUID{0x96, 0x8d, 0x68, 0x04, 0x68, 0x34, 0x52, 0x4d, 0x97, 0x27, 0x35, 0x7b, 0x9a, 0xed, 0x67, 0x27}: "FchPromontoryPlusCbsPei", efi.GUID{0x96, 0x94, 0x01, 0x29, 0xe5, 0x1e, 0xbd, 0x4a, 0x9c, 0xc5, 0x74, 0xa2, 0x10, 0xce, 0x77, 0xc6}: "Ax88772UsbNetDriver", efi.GUID{0x96, 0x96, 0x50, 0x4e, 0x3f, 0xe3, 0x8e, 0x40, 0x9a, 0xf5, 0xcc, 0x8c, 0x20, 0x06, 0x53, 0x85}: "SoftwareGuardConfigGuid", efi.GUID{0x96, 0x97, 0x89, 0x9f, 0x84, 0x1a, 0x1e, 0x46, 0x95, 0x23, 0xf1, 0xb8, 0x5c, 0xe8, 0x95, 0xb5}: "RTL8111D", efi.GUID{0x96, 0x9d, 0x8e, 0x1a, 0xe6, 0x66, 0x1b, 0x46, 0x95, 0xd6, 0x88, 0x2c, 0x98, 0x4d, 0x0b, 0x00}: "TbtPei", efi.GUID{0x96, 0xa6, 0x02, 0x77, 0x21, 0x65, 0xe8, 0x4f, 0xa7, 0x86, 0x52, 0x8b, 0x4d, 0x86, 0xf5, 0xf1}: "DfciDevSettingsMgr", efi.GUID{0x96, 0xab, 0x6d, 0x5b, 0x5d, 0x19, 0x24, 0x4d, 0x97, 0x27, 0xa7, 0xd0, 0xe9, 0x36, 0x65, 0xc6}: "IconSD", efi.GUID{0x96, 0xab, 0xa6, 0x24, 0x00, 0x8a, 0xc6, 0x4c, 0xba, 0xe7, 0x63, 0xa9, 0xd3, 0xdd, 0x3b, 0x42}: "SuperIoExDxe", efi.GUID{0x96, 0xac, 0x49, 0x37, 0xb8, 0x24, 0xe2, 0x44, 0xb8, 0x95, 0x4f, 0xab, 0xec, 0x4c, 0xf4, 0x0f}: "ErrorLogWmi", efi.GUID{0x96, 0xb4, 0xc0, 0xfc, 0x2a, 0x19, 0xb4, 0x48, 0xbe, 0x7e, 0x7f, 0x87, 0x63, 0xdd, 0x2f, 0xb1}: "FjFextDxe", efi.GUID{0x96, 0xc0, 0x7d, 0x51, 0xfc, 0xef, 0x37, 0x49, 0x80, 0x02, 0x87, 0xf8, 0xb1, 0xbf, 0x94, 0xbf}: "ResetHandler", efi.GUID{0x96, 0xc2, 0x33, 0xef, 0x4c, 0xf6, 0x46, 0x41, 0xad, 0x04, 0x34, 0x78, 0x99, 0x70, 0x2c, 0x84}: "SystemSmmUsbLegacySmm", efi.GUID{0x96, 0xcc, 0xbd, 0xf2, 0x85, 0x89, 0xdb, 0x11, 0x87, 0x19, 0x00, 0x40, 0xd0, 0x2b, 0x18, 0x35}: "EmuPhysicalDisksGuid", efi.GUID{0x96, 0xd0, 0x2e, 0x1e, 0xe2, 0x30, 0x54, 0x42, 0xbd, 0x89, 0x86, 0x3b, 0xbe, 0xf8, 0x23, 0x25}: "EfiTcg2FinalEventsTableGuid", efi.GUID{0x96, 0xd7, 0xb3, 0x63, 0x6b, 0x8c, 0xa4, 0x42, 0xab, 0x51, 0x7b, 0xad, 0x4d, 0xe1, 0x73, 0xd3}: "AcpiSmmPlatform", efi.GUID{0x96, 0xdb, 0x0c, 0x61, 0x56, 0x7e, 0xca, 0x44, 0xbf, 0xf4, 0x7d, 0x9b, 0x60, 0x00, 0xd8, 0x7b}: "EventLogDxe", efi.GUID{0x96, 0xe4, 0xe0, 0x1e, 0xb4, 0x28, 0x0b, 0x44, 0xa4, 0x5a, 0x74, 0x64, 0xbf, 0x4b, 0x32, 0xa2}: "FjUsbSecurityV", efi.GUID{0x96, 0xf7, 0x1e, 0xc6, 0x0d, 0xb5, 0x98, 0x4f, 0x9f, 0x78, 0x4f, 0x6f, 0x79, 0xd8, 0x00, 0xd5}: "MemoryInit", efi.GUID{0x96, 0xf8, 0x13, 0xe1, 0xcf, 0x75, 0x40, 0xf6, 0x81, 0x7f, 0xc8, 0x5a, 0x79, 0xe8, 0xae, 0x67}: "EmuThunkPpiGuid", efi.GUID{0x96, 0xfb, 0xcd, 0xab, 0x90, 0xed, 0x7e, 0x4c, 0xa8, 0x2b, 0xec, 0x98, 0xf9, 0x93, 0x05, 0xed}: "CbsBasePeiSSP", efi.GUID{0x96, 0xfe, 0x05, 0xe4, 0x56, 0x5a, 0xba, 0x40, 0xbc, 0x24, 0x61, 0x9c, 0x89, 0xe2, 0xd2, 0xee}: "EfiBmcSmbiosProtocol", efi.GUID{0x96, 0xff, 0x4b, 0x75, 0x34, 0x12, 0x41, 0x4b, 0xb4, 0x37, 0xef, 0x1b, 0x0c, 0x8c, 0xa1, 0x55}: "KEMrPegConfigPei", efi.GUID{0x97, 0x0c, 0x5a, 0x94, 0x82, 0x48, 0x0a, 0x41, 0x9f, 0x30, 0xe3, 0x1c, 0x99, 0x39, 0x8f, 0x7b}: "DxeIchSpiDxe", efi.GUID{0x97, 0x15, 0xdd, 0xa9, 0xc5, 0xf2, 0xb6, 0x4c, 0xaa, 0x7b, 0xee, 0x01, 0xae, 0x80, 0x61, 0x85}: "AmiSmmNvmeControllerProtocolGuid", efi.GUID{0x97, 0x21, 0x79, 0xb0, 0xc3, 0xab, 0xb1, 0x4b, 0x9f, 0xd3, 0xcb, 0xea, 0x8f, 0xd4, 0x13, 0x73}: "BaseAmiBeepLibNull", efi.GUID{0x97, 0x23, 0xdd, 0xcb, 0xc5, 0xd2, 0x5b, 0x41, 0xbd, 0x77, 0x96, 0x30, 0xa1, 0xb7, 0x85, 0x3d}: "EfiPeiIpmiUsbTransportPpi", efi.GUID{0x97, 0x2c, 0x8a, 0xce, 0x9d, 0xa0, 0xc3, 0x4d, 0x9a, 0x1e, 0xf8, 0xab, 0x65, 0x07, 0x5a, 0xfb}: "AmdPlatformRasBrhDxe", efi.GUID{0x97, 0x39, 0xfb, 0xf6, 0xef, 0xf4, 0x54, 0x43, 0xb9, 0xc2, 0x47, 0x37, 0xaf, 0xed, 0x4f, 0x2f}: "AsusWifiRealtek", efi.GUID{0x97, 0x3c, 0x3d, 0x10, 0x0f, 0xce, 0xf0, 0x4d, 0x97, 0xb0, 0x19, 0x4c, 0x61, 0xbd, 0x54, 0x0c}: "FchEspiCmdDxe", efi.GUID{0x97, 0x40, 0x56, 0xb7, 0x9b, 0x95, 0x0e, 0x47, 0x95, 0x4d, 0x92, 0x0e, 0xc4, 0x9d, 0xe1, 0x9c}: "AmdLegacyInterrupt", efi.GUID{0x97, 0x41, 0x5f, 0x87, 0xfc, 0x2a, 0xf5, 0x42, 0xb0, 0x90, 0x4d, 0xf0, 0x3b, 0x1d, 0xa6, 0x13}: "SpanishDxe", efi.GUID{0x97, 0x42, 0xae, 0x78, 0x0f, 0xc1, 0x77, 0x4d, 0xb6, 0xec, 0x52, 0x1f, 0x34, 0xbf, 0x06, 0xf8}: "SmbiosDataUpdateDxeEldorado", efi.GUID{0x97, 0x44, 0x91, 0x36, 0x9c, 0x3e, 0x45, 0x47, 0xa7, 0xe0, 0x44, 0x05, 0x8e, 0x0a, 0x91, 0x21}: "IncreaseIdleFanSpeedSmm", efi.GUID{0x97, 0x5b, 0x74, 0xc3, 0x33, 0x51, 0xf7, 0x4b, 0x81, 0x85, 0x66, 0x36, 0x17, 0xb9, 0x5e, 0xbf}: "UsbPwrCtrlDxe", efi.GUID{0x97, 0x68, 0x34, 0x74, 0x0c, 0x9e, 0x41, 0x4b, 0xbf, 0x1f, 0xba, 0xa1, 0xec, 0xb8, 0x5d, 0xa6}: "IioCfgUpdateDxeLightningRidgeEXRP", efi.GUID{0x97, 0x69, 0x78, 0xc8, 0xd7, 0x70, 0x45, 0x44, 0xa5, 0xa8, 0xe5, 0xc9, 0xc8, 0xdd, 0x56, 0xc6}: "MasterPswd", efi.GUID{0x97, 0x6b, 0x34, 0xeb, 0x5f, 0x97, 0x9f, 0x4a, 0x8b, 0x22, 0xf8, 0xe9, 0x2b, 0xb3, 0xd5, 0x69}: "EfiSmmCpuProtocolGuid", efi.GUID{0x97, 0x72, 0x72, 0x72, 0x14, 0xbc, 0x86, 0x48, 0xa6, 0x42, 0x61, 0x7b, 0xc5, 0x0a, 0x52, 0x65}: "IccInitDxe", efi.GUID{0x97, 0x7a, 0x9c, 0xe5, 0xe9, 0x7f, 0x32, 0x4e, 0x95, 0xb0, 0x70, 0x8e, 0xb5, 0x8a, 0xf5, 0x07}: "DellSmmPaidSupDevPolicyProtocol", efi.GUID{0x97, 0x7c, 0xde, 0xaa, 0xe7, 0x98, 0xfa, 0x4c, 0xb4, 0xef, 0xbb, 0xe2, 0x05, 0x06, 0xa3, 0x1d}: "EcIoSmmProtocol", efi.GUID{0x97, 0x7f, 0xb1, 0x8a, 0x8f, 0x75, 0xaa, 0x47, 0xba, 0x64, 0xdd, 0xc6, 0x3c, 0x3a, 0x1d, 0x86}: "H19DbxService", efi.GUID{0x97, 0x82, 0x06, 0x03, 0xa5, 0xdd, 0xcd, 0x4c, 0xbb, 0xfa, 0x7e, 0x09, 0xae, 0x02, 0x51, 0x77}: "I2cTouchPanelDxe", efi.GUID{0x97, 0x87, 0x7e, 0x58, 0xfb, 0xc2, 0xb7, 0x41, 0xae, 0x9b, 0xf5, 0x3a, 0x6c, 0x56, 0x2d, 0xf5}: "DellCsmConfig", efi.GUID{0x97, 0x91, 0x69, 0x3c, 0x3c, 0x09, 0x69, 0x4c, 0xb0, 0x6b, 0x12, 0x8a, 0xe3, 0x48, 0x1d, 0xc9}: "EfiAcpiDescriptionGuid", efi.GUID{0x97, 0x9c, 0x63, 0xdf, 0xdd, 0x21, 0xaf, 0x48, 0xa0, 0xde, 0x78, 0xcc, 0x2d, 0x95, 0xdc, 0x55}: "DefaultsManagerDxe", efi.GUID{0x97, 0xa4, 0x87, 0x76, 0x4e, 0xff, 0xff, 0x48, 0xbc, 0xaa, 0x67, 0xdb, 0xf6, 0x5c, 0x42, 0xd1}: "AsrockBfgdxe", efi.GUID{0x97, 0xa6, 0xe1, 0xcd, 0xeb, 0x5b, 0x4a, 0x7e, 0x95, 0xd8, 0x40, 0x78, 0xe5, 0x64, 0xe7, 0x0c}: "PngConvert", efi.GUID{0x97, 0xb0, 0x66, 0xe5, 0x78, 0x43, 0x5f, 0x48, 0x91, 0xd0, 0x1c, 0x09, 0x7c, 0x19, 0x0c, 0xe2}: "PowerButton", efi.GUID{0x97, 0xc6, 0x3e, 0x7b, 0xac, 0x49, 0x66, 0x49, 0x95, 0x8d, 0x97, 0x03, 0xf7, 0xf8, 0x36, 0xb2}: "PlatformHardwareHarden", efi.GUID{0x97, 0xd6, 0x3e, 0x4a, 0xbc, 0xe9, 0xfe, 0x40, 0xbd, 0xd5, 0x6f, 0x99, 0xfc, 0xdc, 0xe9, 0xf4}: "AmdNbioAlibZpDxe", efi.GUID{0x97, 0xd7, 0x7a, 0x48, 0x0f, 0xe1, 0xaf, 0x4b, 0x91, 0x44, 0x66, 0x0a, 0xb1, 0x1c, 0x2e, 0x29}: "WiFiLauncher", efi.GUID{0x97, 0xe4, 0x3f, 0xb7, 0x2e, 0xb9, 0x6e, 0x41, 0x83, 0x26, 0x45, 0xad, 0x0d, 0x27, 0x00, 0x92}: "IbbrFirmwareFileSystemFvGuid", efi.GUID{0x97, 0xe5, 0x1b, 0x16, 0xc5, 0xe9, 0xdb, 0x49, 0xae, 0x50, 0xc4, 0x62, 0xab, 0x54, 0xee, 0xda}: "PowerManagementAcpiTables2", efi.GUID{0x97, 0xe6, 0x14, 0xdc, 0x5a, 0x77, 0x3b, 0x4c, 0xa1, 0x1a, 0xed, 0xc3, 0x8e, 0x1b, 0xe3, 0xe6}: "AmiCsmOpromPolicyProtocolGuid", efi.GUID{0x97, 0xed, 0x9e, 0xa7, 0x98, 0x4b, 0x74, 0x49, 0x96, 0x90, 0x37, 0xb3, 0x2d, 0x6a, 0x5b, 0x56}: "RTSMArmVExpressLibSec", efi.GUID{0x97, 0xf0, 0x3d, 0x23, 0x18, 0x32, 0xb2, 0x47, 0x9e, 0x09, 0xfe, 0x58, 0xc2, 0xb2, 0x0d, 0x22}: "LenovoPlatformStage2Pei", efi.GUID{0x97, 0xf2, 0x6b, 0xad, 0x16, 0x4e, 0x91, 0x4a, 0x84, 0x3c, 0xff, 0xcf, 0xbf, 0x98, 0x6e, 0x51}: "SecureBIOCamera", efi.GUID{0x98, 0x03, 0x43, 0xaa, 0x8a, 0x3c, 0x17, 0x48, 0x8e, 0xd0, 0x62, 0x91, 0xb5, 0xc7, 0x7d, 0x6a}: "RTL8111HN", efi.GUID{0x98, 0x0d, 0x51, 0x81, 0x10, 0x21, 0x9f, 0x48, 0x8e, 0x26, 0x7f, 0xe8, 0x25, 0xcd, 0x83, 0x7e}: "LenovoVariableCommandSmiDispatch", efi.GUID{0x98, 0x16, 0x45, 0x67, 0x25, 0x18, 0xc5, 0x4a, 0x99, 0x9d, 0xf3, 0x50, 0xcc, 0x7d, 0x5d, 0x72}: "CryptoPPI", efi.GUID{0x98, 0x17, 0xd9, 0x8d, 0x87, 0xee, 0x0e, 0x4f, 0x8a, 0x84, 0x3f, 0x99, 0x83, 0x11, 0xf9, 0x30}: "ArpDxe", efi.GUID{0x98, 0x18, 0xca, 0x0c, 0x36, 0xd9, 0x86, 0x43, 0x87, 0x2b, 0x73, 0x4f, 0xe8, 0x50, 0xdc, 0x49}: "FjIbvSfuOverrideAbstractionDxeProtocol", efi.GUID{0x98, 0x19, 0x4a, 0xaf, 0x49, 0x49, 0x45, 0x45, 0x9c, 0x4c, 0xc1, 0xe7, 0xc0, 0x42, 0xe0, 0x56}: "ScPcieDeviceTablePpiGuid", efi.GUID{0x98, 0x1c, 0x88, 0x42, 0xf3, 0xa4, 0xb0, 0x44, 0xa3, 0x9d, 0xdf, 0xa1, 0x86, 0x67, 0xd8, 0xcd}: "EfiHashServiceBindingProtocolGuid", efi.GUID{0x98, 0x29, 0xff, 0x12, 0x9f, 0x42, 0x0b, 0x40, 0xb9, 0xee, 0xfe, 0xa8, 0x28, 0x7a, 0x1d, 0xfe}: "FjAbtDxe", efi.GUID{0x98, 0x2d, 0xdf, 0x3a, 0x5a, 0x69, 0x7d, 0x4e, 0xbe, 0x98, 0x58, 0x31, 0x45, 0x36, 0xd2, 0xe8}: "SimplifiedChineseDxe", efi.GUID{0x98, 0x37, 0xb1, 0xb9, 0x09, 0xd4, 0x58, 0x4d, 0x86, 0xe5, 0xb1, 0x83, 0x6c, 0xbe, 0xf3, 0x87}: "DxeOverClock", efi.GUID{0x98, 0x39, 0xb9, 0xbc, 0x48, 0x00, 0x9e, 0x4e, 0x94, 0x94, 0x46, 0xbe, 0xdf, 0x8d, 0x8a, 0x06}: "PchSmiDispatcher", efi.GUID{0x98, 0x3a, 0x9e, 0x67, 0x1d, 0x34, 0x4f, 0x46, 0x8d, 0x78, 0x3c, 0xe7, 0x44, 0xf0, 0xbe, 0xb7}: "FchYuntaiSsdt", efi.GUID{0x98, 0x3f, 0xc3, 0x24, 0x5d, 0x50, 0x77, 0x41, 0x90, 0xf7, 0xa2, 0x0c, 0xf8, 0xff, 0x30, 0x20}: "ReTimerFmpDummy", efi.GUID{0x98, 0x4f, 0x08, 0xff, 0xd2, 0xb1, 0xf8, 0x49, 0xaa, 0x57, 0xe7, 0xee, 0xe7, 0xc4, 0x8a, 0x12}: "VbtMipiPanel3Guid", efi.GUID{0x98, 0x4f, 0x3b, 0x3a, 0x4f, 0xa4, 0xa3, 0x86, 0x3f, 0xc1, 0x6f, 0x19, 0xac, 0x3f, 0x61, 0x63}: "HobSmm", efi.GUID{0x98, 0x57, 0xd3, 0xc7, 0xd2, 0xe4, 0x93, 0x4a, 0xb1, 0x45, 0x54, 0x88, 0x9f, 0x02, 0x58, 0x4b}: "EdkiiNonDiscoverableAhciDeviceGuid", efi.GUID{0x98, 0x58, 0x4e, 0xee, 0x14, 0x39, 0x59, 0x42, 0x9d, 0x6e, 0xdc, 0x7b, 0xd7, 0x94, 0x03, 0xcf}: "LzmaCustomDecompressGuid", efi.GUID{0x98, 0x5b, 0x96, 0x78, 0xbf, 0xb0, 0x9e, 0x44, 0x8b, 0x22, 0xd2, 0x91, 0x4e, 0x49, 0x8a, 0x98}: "EfiSmmStandbyButtonDispatchProtocolGuid", efi.GUID{0x98, 0x60, 0x23, 0xaa, 0xc3, 0x86, 0x56, 0x4a, 0x8b, 0x89, 0xb7, 0x15, 0xe0, 0x4a, 0xb5, 0xce}: "SsidPei", efi.GUID{0x98, 0x60, 0x34, 0x1b, 0x0b, 0xab, 0xe7, 0x4a, 0xdd, 0xbe, 0x88, 0xab, 0x3c, 0xd6, 0x22, 0x0d}: "BatteryIdm", efi.GUID{0x98, 0x60, 0x34, 0x2b, 0x0b, 0xaa, 0xe7, 0x4a, 0xbd, 0xbe, 0x88, 0xeb, 0x3c, 0xd6, 0x22, 0x0f}: "BiosDiags20", efi.GUID{0x98, 0x68, 0x8c, 0xa3, 0x5c, 0x2b, 0xf6, 0x4f, 0x93, 0x26, 0x2e, 0x63, 0x21, 0x2e, 0x56, 0xc2}: "PeiSpiPpiGuid", efi.GUID{0x98, 0x74, 0x23, 0x01, 0x20, 0x4e, 0xe5, 0x42, 0xbf, 0x75, 0x1c, 0xd3, 0xb2, 0x0f, 0x7c, 0xe3}: "PlatformStatusCodeHandlerPei", efi.GUID{0x98, 0x76, 0xfa, 0x13, 0x31, 0xc8, 0xc7, 0x49, 0x87, 0xea, 0x8f, 0x43, 0xfc, 0xc2, 0x51, 0x96}: "EfiEventVirtualAddressChangeGuid", efi.GUID{0x98, 0x80, 0xe6, 0x81, 0x95, 0x6f, 0xe8, 0x4c, 0xaa, 0x8f, 0xa7, 0xff, 0xc8, 0x9e, 0x0b, 0x9d}: "AmdGopConfigDrvDxe", efi.GUID{0x98, 0x8c, 0xbf, 0x3b, 0xe5, 0x7f, 0x28, 0x47, 0xad, 0x52, 0x1e, 0x07, 0xe5, 0x71, 0xd6, 0x10}: "PlatformWrapperPei", efi.GUID{0x98, 0x8e, 0x9e, 0x07, 0x93, 0xae, 0x9a, 0x4b, 0x8a, 0x71, 0x1d, 0xc8, 0x69, 0xf2, 0x3e, 0x09}: "ShellSortTestApp", efi.GUID{0x98, 0x93, 0x1e, 0x17, 0x9c, 0x26, 0x81, 0x40, 0x90, 0x99, 0x38, 0x44, 0xe2, 0x60, 0x46, 0x6c}: "EfiPlatformTypeProtocol", efi.GUID{0x98, 0x9c, 0x70, 0x07, 0x4a, 0x41, 0x39, 0x40, 0xb7, 0xd0, 0x29, 0xc2, 0x1f, 0x10, 0x5e, 0x92}: "AcpiPlatformFeatures", efi.GUID{0x98, 0xad, 0x8d, 0x7b, 0x25, 0x4b, 0x8a, 0x43, 0xbc, 0x31, 0xf6, 0xcc, 0x93, 0x1d, 0x5b, 0xb4}: "PlatformInitRecoveryPei", efi.GUID{0x98, 0xad, 0xdb, 0x7a, 0xe1, 0x7f, 0x74, 0x47, 0x92, 0x60, 0x74, 0x73, 0x27, 0x43, 0x5e, 0x6d}: "SpsAcpiHooks", efi.GUID{0x98, 0xb6, 0x58, 0x46, 0xb5, 0xea, 0x7a, 0x64, 0x98, 0x7a, 0x5a, 0x16, 0x65, 0x47, 0x8f, 0xf6}: "A01SysPasswordSmm", efi.GUID{0x98, 0xb6, 0xee, 0x42, 0x81, 0xb8, 0x7a, 0x64, 0x32, 0x4a, 0x5a, 0x16, 0xee, 0xaa, 0x9f, 0x3e}: "A01SysPassword", efi.GUID{0x98, 0xba, 0xc5, 0xe4, 0x85, 0xb6, 0x68, 0x43, 0x8d, 0x40, 0xb8, 0x00, 0x95, 0xfc, 0x05, 0x64}: "HpIcicleDxe", efi.GUID{0x98, 0xbc, 0xad, 0x7d, 0x89, 0x64, 0x1c, 0x4d, 0x90, 0x7a, 0x8e, 0xe2, 0x43, 0xaf, 0x80, 0x5b}: "AsusEupPei", efi.GUID{0x98, 0xbd, 0xa8, 0xc0, 0xd0, 0xde, 0x13, 0x43, 0x99, 0x70, 0x6f, 0xe2, 0x79, 0x4c, 0xd1, 0x57}: "AmdCpmOemInitPeim", efi.GUID{0x98, 0xc5, 0x87, 0x07, 0xc6, 0xf9, 0x7f, 0x4b, 0x8c, 0x85, 0x0c, 0x96, 0xc4, 0xe1, 0xe5, 0x31}: "FjHookFormBrowserDxe", efi.GUID{0x98, 0xc7, 0x37, 0x22, 0xe7, 0x93, 0x19, 0x41, 0xb1, 0x0c, 0xcf, 0x75, 0xcd, 0x22, 0xbf, 0xe0}: "AmdApcbZpDxe", efi.GUID{0x98, 0xca, 0x03, 0xe5, 0x3e, 0xb6, 0x92, 0x45, 0x9b, 0xcd, 0x5a, 0x44, 0x52, 0x35, 0x51, 0x34}: "SmmResourceCheckDxe", efi.GUID{0x98, 0xcb, 0x08, 0x7a, 0xbc, 0xe9, 0xc3, 0x41, 0xbe, 0x19, 0xb3, 0x02, 0xf3, 0xf1, 0xf5, 0x23}: "DellSolPostMessage", efi.GUID{0x98, 0xcb, 0x08, 0x7a, 0xbc, 0xe9, 0xc3, 0x41, 0xbe, 0x19, 0xb3, 0x02, 0xf3, 0xf1, 0xf5, 0x95}: "Terminal", efi.GUID{0x98, 0xcb, 0xc3, 0xda, 0x95, 0x22, 0x2e, 0x41, 0x82, 0x6d, 0xfd, 0xee, 0xa3, 0x20, 0xcf, 0x31}: "AmiRecoveryImageHobGuid", efi.GUID{0x98, 0xd8, 0x94, 0xfb, 0xd5, 0x57, 0x24, 0x46, 0xae, 0xe5, 0x05, 0x51, 0xae, 0x69, 0x2e, 0x9f}: "KEMhTstMode", efi.GUID{0x98, 0xde, 0x20, 0x58, 0x8e, 0xfc, 0x0b, 0x4b, 0xa4, 0xb9, 0x0a, 0x94, 0x0d, 0x16, 0x2a, 0x7e}: "SioDevStatusVar", efi.GUID{0x98, 0xde, 0xef, 0x52, 0x81, 0x4c, 0x23, 0x44, 0x8c, 0x6d, 0x4e, 0xca, 0xe6, 0x1d, 0xdd, 0xd9}: "UsbOcUpdateDxeGlacier", efi.GUID{0x98, 0xe7, 0xaf, 0xa6, 0x26, 0xa4, 0x51, 0x46, 0xaa, 0x19, 0xbb, 0x0a, 0x44, 0x8d, 0x81, 0x34}: "FrameworkHiiAlias", efi.GUID{0x98, 0xef, 0xee, 0x7b, 0x28, 0x30, 0x60, 0x42, 0x96, 0xf1, 0xbe, 0xeb, 0xa3, 0x1a, 0x78, 0x7c}: "OemSioResChangePei", efi.GUID{0x98, 0xf1, 0x12, 0xa9, 0x0e, 0x7f, 0x03, 0x48, 0xb9, 0x08, 0xb7, 0x57, 0xb8, 0x06, 0xec, 0x83}: "Hello", efi.GUID{0x98, 0xf1, 0x12, 0xb9, 0x0e, 0x7f, 0x03, 0x48, 0xb9, 0x08, 0xb7, 0x57, 0xb8, 0x06, 0xec, 0x83}: "AppleImg4VerificationDxe", efi.GUID{0x98, 0xf5, 0x3b, 0x89, 0x5d, 0xfa, 0x6c, 0x4b, 0x88, 0x29, 0x60, 0x16, 0xec, 0xc4, 0x43, 0xe7}: "MainErrorHandler", efi.GUID{0x98, 0xf9, 0x28, 0xcc, 0x90, 0xeb, 0xfb, 0x47, 0x97, 0xcd, 0x03, 0x21, 0x51, 0xf6, 0xfc, 0xb9}: "OemSetCbsVariable", efi.GUID{0x98, 0xfd, 0x8e, 0x2b, 0x63, 0xff, 0xb8, 0x42, 0xbc, 0xf3, 0xf5, 0x36, 0x15, 0xd1, 0x55, 0x36}: "AbtSetup", efi.GUID{0x99, 0x00, 0xac, 0x5c, 0xc9, 0x0d, 0xe5, 0x48, 0x80, 0x68, 0xbb, 0x95, 0xf5, 0x40, 0x0a, 0x9f}: "RecoveryOnDataCdGuid", efi.GUID{0x99, 0x01, 0xc2, 0x7d, 0x28, 0xde, 0x91, 0x4a, 0xa8, 0x9c, 0xff, 0x06, 0xf2, 0x37, 0x35, 0x2c}: "PrePostHotkey", efi.GUID{0x99, 0x05, 0xdc, 0x6e, 0x35, 0x39, 0x3d, 0x4f, 0xa1, 0xaf, 0x3c, 0xcc, 0x1f, 0xbc, 0x86, 0x55}: "FastbootWmi", efi.GUID{0x99, 0x0e, 0xb4, 0x7c, 0x86, 0x31, 0x5d, 0x4a, 0x82, 0x9d, 0x80, 0x2c, 0x57, 0x93, 0xf1, 0x32}: "DellAcpiSharedMemSmm", efi.GUID{0x99, 0x10, 0x46, 0x55, 0xde, 0x28, 0x16, 0x4a, 0xb5, 0x1e, 0xd0, 0xd1, 0x8a, 0x07, 0x93, 0xf9}: "CmosButtonLoadDefaultsDxe", efi.GUID{0x99, 0x12, 0x76, 0xff, 0x1f, 0xd4, 0x73, 0x4c, 0x83, 0x80, 0xa2, 0x40, 0x55, 0xad, 0xf4, 0xb9}: "EDUDxe", efi.GUID{0x99, 0x1d, 0x3f, 0x1c, 0x35, 0x4d, 0xbe, 0x4b, 0xb7, 0x5e, 0xa2, 0xc9, 0x2c, 0x72, 0x28, 0xda}: "OemWwanSmBiosType133", efi.GUID{0x99, 0x21, 0x1b, 0xe4, 0xef, 0x40, 0xd4, 0x40, 0xa4, 0x3b, 0xc6, 0x0b, 0x98, 0x1a, 0xcc, 0xdb}: "VariableCmosSmm", efi.GUID{0x99, 0x25, 0x90, 0x40, 0xa9, 0xa3, 0xee, 0x43, 0xad, 0x76, 0xd0, 0x48, 0x2f, 0xbe, 0x29, 0xb5}: "PlatformVTdSampleDxe", efi.GUID{0x99, 0x25, 0x99, 0xc5, 0x6a, 0xd9, 0xcc, 0x47, 0x9f, 0xba, 0x13, 0xe1, 0x9f, 0x00, 0xf6, 0xfc}: "BBLSupportDockingDxe", efi.GUID{0x99, 0x25, 0xf9, 0x4a, 0x76, 0x8e, 0xb4, 0x4b, 0xbf, 0xd2, 0xf5, 0xa6, 0x6e, 0x30, 0x41, 0xd4}: "EfiOcData", efi.GUID{0x99, 0x2b, 0x14, 0xfb, 0x57, 0xdf, 0xcb, 0x46, 0xbc, 0x69, 0x0b, 0xf8, 0x58, 0xa7, 0x34, 0xf9}: "SerialOverLan", efi.GUID{0x99, 0x2d, 0x34, 0x19, 0x4e, 0xff, 0x98, 0x47, 0xa3, 0xe0, 0xfa, 0x36, 0xc9, 0x61, 0xcc, 0xfe}: "PdtCapsuleDxe", efi.GUID{0x99, 0x30, 0xf9, 0x81, 0x7f, 0x0a, 0x1a, 0x4f, 0x94, 0xd4, 0xb3, 0xbe, 0x3f, 0xac, 0xea, 0x6a}: "SmcIpmiOemCommandSetProtocol", efi.GUID{0x99, 0x3b, 0xf0, 0x99, 0xd8, 0x98, 0xdd, 0x49, 0xa8, 0xd3, 0x32, 0x19, 0xd0, 0xff, 0xe4, 0x1e}: "Mtftp6Dxe", efi.GUID{0x99, 0x3b, 0xf1, 0xed, 0xf3, 0x4e, 0x9b, 0x4c, 0x9f, 0xae, 0x4d, 0xe2, 0xd6, 0x38, 0x19, 0x06}: "OverrideAcpiTable", efi.GUID{0x99, 0x40, 0xc0, 0xaf, 0x39, 0x0d, 0x5d, 0x40, 0xbe, 0x46, 0x84, 0x6f, 0x08, 0xc5, 0x1a, 0x31}: "AcpiPlatform", efi.GUID{0x99, 0x4e, 0x88, 0xb3, 0xbc, 0x9c, 0xe8, 0x4c, 0x85, 0x5e, 0x53, 0xa1, 0x2e, 0xd0, 0xb8, 0xf4}: "AsusIpmiPei", efi.GUID{0x99, 0x64, 0x94, 0xf1, 0x1b, 0x57, 0xc3, 0x44, 0x9b, 0x9c, 0xcc, 0x55, 0x21, 0x0b, 0x0c, 0x02}: "H19WMIHandlerSmm", efi.GUID{0x99, 0x67, 0x35, 0x04, 0xb7, 0x81, 0x08, 0x4e, 0xa3, 0x8d, 0xd9, 0x78, 0xfa, 0x47, 0xba, 0x42}: "EfiExtendedSalSmComLayerServicesProtocol", efi.GUID{0x99, 0x6a, 0x76, 0x90, 0xa5, 0x9c, 0xde, 0x44, 0x94, 0xda, 0xdc, 0xc1, 0xd2, 0xd6, 0xda, 0x1f}: "UsraPpi", efi.GUID{0x99, 0x74, 0xb1, 0xea, 0x0c, 0x7b, 0x9c, 0x45, 0xbd, 0x4a, 0x77, 0x2c, 0xff, 0x1b, 0x80, 0xa8}: "FchPromontoryPlusPei", efi.GUID{0x99, 0x77, 0x8b, 0x43, 0xd5, 0xf4, 0xa6, 0x47, 0xa7, 0x5c, 0x30, 0x5c, 0x44, 0x49, 0xf5, 0x12}: "SwSmiDxe", efi.GUID{0x99, 0x80, 0xbc, 0x2d, 0x2c, 0x1a, 0x61, 0x03, 0xbb, 0x80, 0xb9, 0xcc, 0x4f, 0x7f, 0x50, 0xd2}: "FlashPatchTableDxe", efi.GUID{0x99, 0x81, 0x8f, 0x7b, 0xc7, 0x42, 0x87, 0xdb, 0x30, 0x7e, 0x28, 0x92, 0xf3, 0x84, 0x95, 0x38}: "AmdCpmOemInitPeim", efi.GUID{0x99, 0x81, 0x90, 0x89, 0x26, 0x91, 0xa2, 0x4e, 0x84, 0x9b, 0x06, 0xa7, 0x5c, 0x24, 0x5d, 0x0b}: "MeResiliencyDxe", efi.GUID{0x99, 0x84, 0x59, 0xef, 0x5e, 0xb2, 0x3a, 0x47, 0xbf, 0xaf, 0xe7, 0xe5, 0x7d, 0xce, 0x82, 0xc4}: "TpmErrorHobGuid", efi.GUID{0x99, 0x8b, 0xb2, 0x7b, 0xbb, 0x61, 0xd5, 0x11, 0x9a, 0x5d, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d}: "Logo", efi.GUID{0x99, 0x8c, 0xf4, 0x47, 0x23, 0xcb, 0xf8, 0x4c, 0x9d, 0x7d, 0xce, 0x7c, 0x86, 0xef, 0x22, 0xa3}: "UsbTouchPanelDxe", efi.GUID{0x99, 0x8e, 0x24, 0xab, 0xe1, 0xab, 0xd4, 0x11, 0xbd, 0x0d, 0x00, 0x80, 0xc7, 0x3c, 0x88, 0x81}: "EfiWinNtUgaGuid", efi.GUID{0x99, 0x91, 0x93, 0x61, 0x08, 0x29, 0x7c, 0x4a, 0xbc, 0x76, 0xf4, 0x28, 0xaa, 0x4b, 0x1e, 0xa1}: "KEMrCPLDPei", efi.GUID{0x99, 0x96, 0x9b, 0x91, 0xd0, 0x8d, 0x76, 0x43, 0xaa, 0x0b, 0x0e, 0x54, 0xcc, 0xa4, 0x7d, 0x8f}: "FPVARIABLE", efi.GUID{0x99, 0x99, 0x23, 0x01, 0x0e, 0xfc, 0x6e, 0x4b, 0x9e, 0x79, 0xd5, 0x4d, 0x5d, 0xb6, 0xcd, 0x20}: "EfiServerMgmtSetupVariable", efi.GUID{0x99, 0x9d, 0x35, 0x01, 0x46, 0x94, 0x6d, 0x45, 0xad, 0xa4, 0x50, 0xa7, 0x11, 0xc0, 0x3a, 0xda}: "CpuPei", efi.GUID{0x99, 0x9d, 0x35, 0x01, 0x46, 0x94, 0x6d, 0x45, 0xad, 0xa4, 0x50, 0xa7, 0x11, 0xc0, 0x3a, 0xdb}: "CpuPeim", efi.GUID{0x99, 0xa1, 0xbe, 0x64, 0x6c, 0x7c, 0x51, 0x4f, 0xb0, 0xda, 0xf4, 0x2c, 0x89, 0x7d, 0xa5, 0xcc}: "SetupDataParser", efi.GUID{0x99, 0xa2, 0x4f, 0x6f, 0x46, 0x8f, 0xb2, 0x4b, 0x80, 0x39, 0x9b, 0x0a, 0x82, 0x28, 0x9d, 0x07}: "DellSimulationDetection", efi.GUID{0x99, 0xaa, 0x5b, 0x39, 0xfc, 0xe4, 0x21, 0x48, 0xac, 0xc3, 0xb5, 0x6e, 0x52, 0x46, 0xe0, 0x66}: "RestoreCbsDxe", efi.GUID{0x99, 0xbf, 0x60, 0xa1, 0xa4, 0x2a, 0x7d, 0x4d, 0x99, 0x93, 0x89, 0x9c, 0xb1, 0x2d, 0xf3, 0x76}: "MmCoreDataHob", efi.GUID{0x99, 0xc0, 0x14, 0x3c, 0x43, 0x31, 0xef, 0x46, 0xaf, 0x18, 0xde, 0x4a, 0xd2, 0xc3, 0xa7, 0x99}: "SystemHiiImageDisplayDxe", efi.GUID{0x99, 0xe0, 0x74, 0xb8, 0x6f, 0xb8, 0x7d, 0x41, 0x8d, 0xd5, 0xa0, 0xc0, 0x54, 0xae, 0xf0, 0x60}: "BoardSyncAPCBSmm", efi.GUID{0x99, 0xe2, 0x56, 0x89, 0xd9, 0xd5, 0x53, 0x44, 0x8b, 0x3f, 0xbb, 0xc8, 0x13, 0x13, 0x36, 0xab}: "OemSmi", efi.GUID{0x99, 0xe4, 0xe0, 0xfb, 0xbe, 0x2e, 0x21, 0x44, 0xa2, 0x37, 0xb2, 0x14, 0x35, 0xfb, 0x71, 0x45}: "VariableServiceSmm", efi.GUID{0x99, 0xe6, 0x4f, 0x41, 0x18, 0x1d, 0x80, 0x4c, 0x8c, 0x92, 0x61, 0x40, 0x73, 0x78, 0x01, 0xe2}: "FjUartModeSelection", efi.GUID{0x99, 0xed, 0x05, 0x43, 0x86, 0x9d, 0x2d, 0x49, 0x83, 0xae, 0x4d, 0x73, 0x59, 0xe9, 0x90, 0x89}: "SioIt8669ePei", efi.GUID{0x99, 0xed, 0x35, 0x43, 0x86, 0x9d, 0x2d, 0x49, 0x83, 0xae, 0x4d, 0x73, 0x59, 0xe9, 0x90, 0x89}: "SioPlatformHook", efi.GUID{0x99, 0xf3, 0xcc, 0x51, 0xdf, 0x4f, 0x55, 0x4e, 0xa4, 0x5b, 0xe1, 0x23, 0xf8, 0x4d, 0x45, 0x6a}: "ConPlatformDxe", efi.GUID{0x9a, 0x00, 0xde, 0x20, 0xb3, 0xb0, 0xda, 0x43, 0x80, 0x47, 0xb5, 0xe2, 0xb1, 0x9d, 0x6c, 0xc0}: "FlashOemHooKDxe", efi.GUID{0x9a, 0x13, 0x33, 0x81, 0x04, 0x2b, 0x37, 0x4c, 0xac, 0xf2, 0x69, 0x56, 0xde, 0xd1, 0x3a, 0x77}: "OemThermalPolicy", efi.GUID{0x9a, 0x1b, 0xfc, 0x62, 0x51, 0x88, 0x54, 0x46, 0x90, 0xad, 0xce, 0xa8, 0xc0, 0x7f, 0xe2, 0x59}: "IchSpi", efi.GUID{0x9a, 0x22, 0x35, 0x01, 0xb5, 0xeb, 0x21, 0x4a, 0x95, 0x7d, 0x1d, 0x20, 0x05, 0x7c, 0xf7, 0x51}: "TCMPEI", efi.GUID{0x9a, 0x22, 0x35, 0x01, 0xb5, 0xeb, 0x21, 0x4a, 0x95, 0x7d, 0x1d, 0x20, 0x05, 0x7c, 0xf7, 0x52}: "TCMDXE", efi.GUID{0x9a, 0x3f, 0x26, 0x79, 0x01, 0x17, 0x82, 0x43, 0x98, 0xc2, 0x57, 0x3f, 0x35, 0x58, 0xe6, 0xc8}: "PlatformFvbLibNull", efi.GUID{0x9a, 0x44, 0x7a, 0x05, 0xdc, 0x1f, 0x06, 0x4c, 0xbf, 0xc9, 0xf5, 0x3f, 0x6a, 0x99, 0xbb, 0x92}: "EfiPciCfg2PpiGuid", efi.GUID{0x9a, 0x44, 0xc9, 0xfb, 0x1c, 0x68, 0x17, 0x45, 0xab, 0x91, 0x90, 0x72, 0xac, 0xde, 0xbb, 0x77}: "GcExt", efi.GUID{0x9a, 0x58, 0x00, 0x60, 0x4a, 0xda, 0xa4, 0x44, 0xab, 0xe3, 0x43, 0x29, 0xb0, 0x98, 0x20, 0x7a}: "AmdSocFp11StxhDxe", efi.GUID{0x9a, 0x60, 0xdb, 0xe1, 0x13, 0xd4, 0x91, 0x47, 0xc6, 0xee, 0x09, 0x3d, 0x8b, 0xc0, 0x47, 0xa4}: "AmdNbioPcieDxe", efi.GUID{0x9a, 0x66, 0xf1, 0xd9, 0x05, 0xf5, 0xbd, 0x48, 0xa8, 0x92, 0x94, 0xb7, 0xca, 0x90, 0x30, 0x31}: "SignalBeforeEnterSetup", efi.GUID{0x9a, 0x6a, 0x89, 0x72, 0x1a, 0x4a, 0xc3, 0x46, 0xa2, 0xec, 0x01, 0x2d, 0xf5, 0xa8, 0x95, 0x65}: "ClientronSmbiosDxe", efi.GUID{0x9a, 0x6f, 0x13, 0xe1, 0xcf, 0xa0, 0x7a, 0x47, 0xa8, 0x6f, 0xdc, 0xe8, 0xef, 0xec, 0x3c, 0x63}: "AmdSocFt6MdnDxe", efi.GUID{0x9a, 0x7f, 0xd8, 0x78, 0x1e, 0x32, 0x07, 0x4a, 0x87, 0x5f, 0x8d, 0x83, 0xa3, 0xd0, 0x6e, 0x59}: "FpgaSocketN4Pe", efi.GUID{0x9a, 0x8f, 0x2f, 0xd4, 0x96, 0x9b, 0x47, 0x4f, 0xb0, 0x45, 0xa8, 0xf3, 0xcd, 0x1f, 0xd9, 0xd3}: "SecureVariable", efi.GUID{0x9a, 0x8f, 0xf9, 0xf5, 0x21, 0x7f, 0x90, 0x41, 0x96, 0xde, 0x4c, 0x27, 0x13, 0x75, 0x4b, 0xe5}: "DecompressFvAbtDxe", efi.GUID{0x9a, 0x91, 0x79, 0x79, 0x8d, 0x3d, 0xb5, 0x4b, 0xb8, 0x32, 0x45, 0xcc, 0x4f, 0xc7, 0xde, 0x57}: "DellDptfPolicyProtocol", efi.GUID{0x9a, 0x92, 0x21, 0x77, 0x6a, 0xd5, 0x0d, 0x45, 0x25, 0x01, 0x8e, 0xa5, 0x1f, 0xa6, 0x19, 0x74}: "SbCmos", efi.GUID{0x9a, 0x99, 0x61, 0xad, 0x7e, 0x50, 0xe6, 0x47, 0xba, 0x28, 0x79, 0xcc, 0x60, 0x9f, 0xa1, 0xa4}: "FspWrapperNotifyDxe", efi.GUID{0x9a, 0x9d, 0xf7, 0xb3, 0x6c, 0x43, 0x11, 0xdc, 0xb0, 0x52, 0xcd, 0x85, 0xdf, 0x52, 0x4c, 0xe6}: "EfiRegularExpressionProtocolGuid", efi.GUID{0x9a, 0xa1, 0x96, 0x34, 0x99, 0x2e, 0xba, 0x41, 0x83, 0x3e, 0x0f, 0xde, 0x2e, 0xbf, 0x2a, 0x55}: "AmiFastBootProtocol", efi.GUID{0x9a, 0xa1, 0xcc, 0xfe, 0xd3, 0xd1, 0xdd, 0x4c, 0xb4, 0x77, 0x56, 0x57, 0x3f, 0x58, 0xb1, 0xa3}: "AmdNbioAlibRNDxe", efi.GUID{0x9a, 0xa7, 0xee, 0xf7, 0x54, 0xd8, 0x99, 0x40, 0x9a, 0xe7, 0xd0, 0xa3, 0x28, 0xe4, 0x4f, 0x72}: "AssetIDSmmProtocol", efi.GUID{0x9a, 0xb4, 0x6f, 0xdb, 0x8c, 0x91, 0x11, 0x4c, 0xff, 0xff, 0xff, 0xff, 0x63, 0x65, 0x03, 0xa5}: "XnoteSystemPolicyDxe", efi.GUID{0x9a, 0xbc, 0xc9, 0xee, 0x07, 0x29, 0x59, 0x4d, 0x8b, 0x86, 0xd1, 0xec, 0x67, 0xde, 0x62, 0xe1}: "GenericMemoryTestDxe", efi.GUID{0x9a, 0xbd, 0x31, 0x36, 0xe4, 0x25, 0x67, 0x4b, 0x8d, 0x22, 0xef, 0xbb, 0x00, 0xac, 0xe8, 0x12}: "MAPS_SIO_InterfaceSmm", efi.GUID{0x9a, 0xe2, 0xb6, 0x9b, 0x72, 0x22, 0x6a, 0x42, 0xab, 0x77, 0x9b, 0x7f, 0xe5, 0xef, 0xea, 0x84}: "EfiPeiPlatformTypeHedtCrbPpi", efi.GUID{0x9a, 0xe4, 0xcb, 0x2d, 0x5b, 0x1e, 0x6e, 0x48, 0xbc, 0x23, 0x48, 0x15, 0x6b, 0x82, 0x82, 0xc9}: "X11DxeDriver", efi.GUID{0x9a, 0xf0, 0x8a, 0xdb, 0xe3, 0x34, 0x7b, 0x4a, 0x82, 0x25, 0x8c, 0x5b, 0x0c, 0x05, 0x9e, 0xb8}: "AppleSmc", efi.GUID{0x9a, 0xfa, 0x03, 0x88, 0x33, 0x0d, 0x22, 0x40, 0x85, 0x6b, 0xab, 0x59, 0x32, 0xa0, 0xf8, 0xbf}: "AmdInitPostPeim", efi.GUID{0x9b, 0x16, 0x59, 0xb7, 0xe2, 0x61, 0x92, 0x4f, 0x94, 0x47, 0x23, 0xe3, 0xdc, 0xd3, 0x3c, 0xec}: "AmdCcxZenRvSmm", efi.GUID{0x9b, 0x17, 0x23, 0xb3, 0xfb, 0x97, 0x7e, 0x47, 0xb0, 0xfe, 0xd8, 0x85, 0x91, 0xfa, 0x11, 0xab}: "PeCoffLoaderProtocolGuid", efi.GUID{0x9b, 0x1c, 0xd5, 0x2b, 0x2e, 0xeb, 0xfb, 0x4c, 0x95, 0xb7, 0x0c, 0x57, 0x65, 0xfd, 0xcb, 0xc3}: "AtaDeviceService", efi.GUID{0x9b, 0x1c, 0xfa, 0xd8, 0x9e, 0x04, 0x92, 0x42, 0xa5, 0x17, 0x45, 0x0a, 0x8d, 0x22, 0x42, 0xef}: "FjGabiFlashCommonFdRegionCtrlDxe", efi.GUID{0x9b, 0x1f, 0xca, 0xd7, 0x78, 0xe4, 0x57, 0x42, 0x9d, 0x8e, 0x2f, 0xe2, 0xde, 0xe9, 0x78, 0xbe}: "OemAcpiModePei", efi.GUID{0x9b, 0x25, 0x44, 0xb3, 0x57, 0x99, 0x48, 0x45, 0x8b, 0xd1, 0xb3, 0x14, 0x64, 0xbb, 0x83, 0x70}: "DataStorageDxe", efi.GUID{0x9b, 0x27, 0x9a, 0xd6, 0xeb, 0x58, 0xd1, 0x45, 0xa1, 0x48, 0x77, 0x1b, 0xb9, 0xeb, 0x52, 0x51}: "EpcOsDataGuid", efi.GUID{0x9b, 0x35, 0x87, 0x51, 0x0d, 0x79, 0x5b, 0x42, 0xa5, 0x93, 0xca, 0x1c, 0xdb, 0x3c, 0xeb, 0xad}: "EfiTcpSockProtocol", efi.GUID{0x9b, 0x39, 0x0a, 0x78, 0xdf, 0xca, 0x2b, 0x40, 0x85, 0xc7, 0xf7, 0x34, 0xd7, 0x0a, 0xfe, 0x81}: "SmartCoverPortingSmm", efi.GUID{0x9b, 0x4c, 0x29, 0xd6, 0x66, 0x08, 0x53, 0x47, 0xaa, 0xad, 0x76, 0x99, 0xaf, 0xc4, 0xbe, 0xe4}: "DefaultFixedBootOrder", efi.GUID{0x9b, 0x51, 0x3b, 0x86, 0xf0, 0x57, 0xf4, 0x4f, 0xbe, 0xc8, 0x14, 0x0a, 0xf9, 0x4f, 0xe1, 0x06}: "DellChassisPei", efi.GUID{0x9b, 0x52, 0xe1, 0x12, 0xa0, 0xb6, 0x7f, 0x4d, 0x8b, 0x15, 0x50, 0x36, 0xc9, 0xbc, 0x2d, 0xe3}: "Fji210LanControl", efi.GUID{0x9b, 0x5a, 0x5a, 0x86, 0x5d, 0xb8, 0x4c, 0x47, 0x84, 0x55, 0x65, 0xd1, 0xbe, 0x84, 0x4b, 0xe2}: "EfiDebugAgentGuid", efi.GUID{0x9b, 0x5d, 0x1e, 0x53, 0x9b, 0x41, 0x3c, 0x4c, 0x95, 0x61, 0xb8, 0x94, 0xf6, 0x95, 0xdd, 0xe4}: "FvbVariableStoragePei", efi.GUID{0x9b, 0x67, 0xc5, 0x59, 0xcb, 0x08, 0x53, 0x4a, 0xb2, 0xad, 0x8c, 0xfd, 0x83, 0x59, 0xee, 0xc5}: "OemACPIDriverDxe", efi.GUID{0x9b, 0x6a, 0xaf, 0x1a, 0x1b, 0xcb, 0x9e, 0x46, 0x94, 0x20, 0x0d, 0x39, 0x12, 0xb8, 0xe3, 0x76}: "MrcHooksChipServicesPpi", efi.GUID{0x9b, 0x74, 0x48, 0xe0, 0xa4, 0x68, 0xc2, 0x40, 0x9a, 0x83, 0xdc, 0x2a, 0xb3, 0x48, 0x19, 0xa8}: "FchSmmDispatcher", efi.GUID{0x9b, 0x78, 0xbc, 0x77, 0x8c, 0x10, 0x2b, 0x44, 0x86, 0xd5, 0xa4, 0xeb, 0x86, 0xc3, 0x9a, 0xbc}: "DellRmtPlatSiSmm", efi.GUID{0x9b, 0x7b, 0x62, 0x04, 0x5e, 0x38, 0x44, 0x47, 0x90, 0x21, 0xe6, 0x63, 0x19, 0xf2, 0x03, 0x94}: "AmiPbKeyRsa2048", efi.GUID{0x9b, 0x7b, 0xfe, 0x2b, 0x7a, 0x76, 0xbe, 0x44, 0x80, 0xf9, 0x6e, 0x02, 0x12, 0x89, 0x9f, 0xe0}: "Pca9555aPei", efi.GUID{0x9b, 0x7f, 0x34, 0x7c, 0xae, 0x6f, 0xa5, 0x45, 0x90, 0x6e, 0xf8, 0xdf, 0xeb, 0xee, 0x64, 0xff}: "DellWmiSecurityMgr", efi.GUID{0x9b, 0x82, 0x86, 0x24, 0xf3, 0xd3, 0xec, 0x47, 0x82, 0x7a, 0xfc, 0x10, 0x49, 0x07, 0xfc, 0x5c}: "SmmGenericSio", efi.GUID{0x9b, 0x90, 0x89, 0x9a, 0xd8, 0x71, 0x48, 0x4e, 0xbd, 0x52, 0x6b, 0xf2, 0xe6, 0x5c, 0x08, 0x57}: "PlatformHiiAMDDxe", efi.GUID{0x9b, 0x92, 0x85, 0x97, 0xf4, 0x3d, 0xd8, 0x47, 0xbc, 0x0f, 0x1a, 0x1f, 0x35, 0xb0, 0xf1, 0x70}: "HhmPei", efi.GUID{0x9b, 0x96, 0xae, 0x33, 0xca, 0xe7, 0xcd, 0x4b, 0x9c, 0x4d, 0x45, 0x31, 0xc1, 0x8a, 0x5d, 0xfa}: "TouchDriver", efi.GUID{0x9b, 0xab, 0x20, 0x42, 0x30, 0x17, 0xc5, 0x49, 0xa8, 0x9f, 0xb4, 0x71, 0xcf, 0x43, 0xb2, 0x21}: "FchPromontorySmmInit", efi.GUID{0x9b, 0xab, 0x20, 0x42, 0x30, 0x17, 0xc5, 0x49, 0xa8, 0x9f, 0xb4, 0x7f, 0xcf, 0x43, 0xa2, 0x21}: "FchSmmInit", efi.GUID{0x9b, 0xab, 0xbf, 0xb3, 0x9c, 0x9f, 0x8b, 0x4e, 0xad, 0x37, 0x7f, 0x8c, 0x51, 0xfc, 0x62, 0x80}: "EfiPeiI2cMasterPpiGuid", efi.GUID{0x9b, 0xb2, 0x17, 0xf3, 0xc9, 0x7d, 0x14, 0x41, 0x90, 0x86, 0xd7, 0x13, 0x7e, 0xf4, 0xf1, 0x18}: "DellTpmSmm", efi.GUID{0x9b, 0xb2, 0x59, 0x7a, 0x0b, 0x91, 0x71, 0x41, 0x82, 0x42, 0xa8, 0x5a, 0x0d, 0xf2, 0x5b, 0x5b}: "EfiHttpProtocolGuid", efi.GUID{0x9b, 0xba, 0x79, 0x6c, 0x26, 0x59, 0x95, 0x42, 0xa4, 0x50, 0x46, 0xb3, 0x40, 0x1d, 0x95, 0xa5}: "AcpiPlatform1", efi.GUID{0x9b, 0xba, 0xca, 0xb9, 0xc5, 0xe5, 0xdc, 0x41, 0x86, 0xe2, 0xe7, 0xce, 0xf8, 0x7b, 0x81, 0xcb}: "SystemFlashCommunicationSmm", efi.GUID{0x9b, 0xc3, 0x73, 0x91, 0xda, 0x08, 0x9a, 0x42, 0xbe, 0x15, 0x0f, 0x74, 0x81, 0xcf, 0x72, 0xce}: "AMTLockUsbKBD", efi.GUID{0x9b, 0xc4, 0xd3, 0xcf, 0xdc, 0x56, 0x5c, 0x46, 0xb3, 0xa0, 0x41, 0x9a, 0x8b, 0x42, 0xcb, 0x60}: "EfiAcpiParameter", efi.GUID{0x9b, 0xc8, 0x87, 0x4b, 0xa9, 0x39, 0x8f, 0x47, 0xa4, 0xb6, 0x81, 0x6a, 0x9e, 0xdc, 0x50, 0x87}: "DellVariable2Dxe", efi.GUID{0x9b, 0xd5, 0x00, 0x94, 0x9c, 0x0e, 0x6c, 0x4f, 0xb5, 0x9a, 0xfc, 0x20, 0x00, 0x9d, 0xb9, 0xec}: "AmiPciIrqProgramGuid", efi.GUID{0x9b, 0xd5, 0xb8, 0x98, 0xba, 0xe8, 0xee, 0x48, 0x98, 0xdd, 0xc2, 0x95, 0x39, 0x2f, 0x1e, 0xdb}: "EfiConfigFileNameGuid", efi.GUID{0x9b, 0xd6, 0xce, 0x2e, 0x93, 0x27, 0x88, 0x43, 0xba, 0x3c, 0x82, 0x30, 0x40, 0xeb, 0xcc, 0xd2}: "EfiOSInfo", efi.GUID{0x9b, 0xd8, 0x37, 0xc9, 0x9c, 0x5f, 0x1e, 0x4a, 0xb1, 0x0d, 0x8f, 0x53, 0xd7, 0x47, 0x42, 0x20}: "AmiPspRecovery", efi.GUID{0x9b, 0xd8, 0x70, 0xb9, 0xf8, 0x6a, 0x8b, 0x4b, 0x90, 0x45, 0xb0, 0x6d, 0x8d, 0xc2, 0xc8, 0xb6}: "PdSolutionDxe", efi.GUID{0x9b, 0xdd, 0x67, 0x19, 0x2c, 0xb7, 0x28, 0x43, 0x8c, 0x80, 0xd4, 0xac, 0xfc, 0x83, 0xfd, 0xf8}: "PciHotPlugDxe", efi.GUID{0x9b, 0xe0, 0x8c, 0xfb, 0xde, 0xa0, 0x7e, 0x46, 0x9d, 0xc6, 0x44, 0x65, 0xf5, 0x98, 0x76, 0x76}: "AmdFabricSspSmm", efi.GUID{0x9b, 0xf2, 0x17, 0xd3, 0x25, 0xa3, 0x12, 0x47, 0x9b, 0xf1, 0xc6, 0x19, 0x54, 0xdc, 0x19, 0x8c}: "EfiSmartCardEdgeProtocolGuid", efi.GUID{0x9b, 0xf2, 0x24, 0xb3, 0x97, 0x5e, 0xf9, 0x4b, 0xb4, 0xe0, 0x51, 0x25, 0xc1, 0xf6, 0x05, 0xd5}: "AsrockRtlansmi", efi.GUID{0x9b, 0xf2, 0x93, 0x1e, 0xb2, 0xa3, 0x40, 0xf3, 0xa6, 0x05, 0xde, 0x31, 0xee, 0x3d, 0xa0, 0x31}: "EdkTerminal", efi.GUID{0x9b, 0xf3, 0x10, 0xa4, 0xbb, 0x76, 0x5c, 0x42, 0xad, 0xd3, 0x86, 0x78, 0xa4, 0x1c, 0x89, 0xdc}: "SystemVspEvaRuntimeDxe", efi.GUID{0x9b, 0xf5, 0xa8, 0x2a, 0x2d, 0x10, 0x96, 0x40, 0x8f, 0xcd, 0xb6, 0x44, 0x22, 0xc6, 0x37, 0xb5}: "UefiDiagnosticsApp", efi.GUID{0x9b, 0xf6, 0x37, 0x67, 0xcc, 0xb8, 0xbc, 0x45, 0x93, 0x27, 0xcc, 0xf5, 0xee, 0xf7, 0x0c, 0xde}: "AmiPlatformIdeProtocolGuid", efi.GUID{0x9b, 0xfb, 0x0c, 0x1d, 0x00, 0xeb, 0xa6, 0x43, 0x81, 0x9c, 0xd2, 0x18, 0xdf, 0x8d, 0xc4, 0xb4}: "BootMode", efi.GUID{0x9c, 0x04, 0x3e, 0xde, 0x18, 0xa2, 0x91, 0x48, 0x74, 0x69, 0x4f, 0xc0, 0xae, 0x85, 0x32, 0x98}: "AmdCpmGpioInitPeim", efi.GUID{0x9c, 0x04, 0x3e, 0xde, 0x18, 0xa2, 0x91, 0x48, 0x86, 0x58, 0x4f, 0xc0, 0xae, 0x85, 0x32, 0x98}: "AmdCpmDisplayFeaturePeim", efi.GUID{0x9c, 0x04, 0x3e, 0xde, 0x18, 0xa2, 0x91, 0x48, 0x86, 0x58, 0x5f, 0xc0, 0x6a, 0x84, 0xc7, 0x83}: "SBCbsPEIEntryPei", efi.GUID{0x9c, 0x04, 0x3e, 0xde, 0x18, 0xa2, 0x91, 0x48, 0x86, 0x58, 0x5f, 0xc0, 0xfa, 0x84, 0xc7, 0x88}: "AmdProcessorInitPeim", efi.GUID{0x9c, 0x07, 0xae, 0x87, 0x43, 0x11, 0xd7, 0x48, 0xa6, 0xdc, 0xd9, 0xe6, 0x11, 0x5d, 0xbb, 0xca}: "FjGpioAlderLakeDxe", efi.GUID{0x9c, 0x10, 0x4a, 0x2b, 0xd7, 0x9e, 0xfe, 0x47, 0x80, 0xaa, 0x20, 0x87, 0xe4, 0xe0, 0x30, 0x1e}: "EcRotLockEcDxe", efi.GUID{0x9c, 0x15, 0x29, 0x6d, 0x7a, 0xcc, 0x57, 0x47, 0x81, 0x85, 0x42, 0xdd, 0xb2, 0xbe, 0xcb, 0x89}: "CompalWSMTSmm", efi.GUID{0x9c, 0x1f, 0x89, 0x34, 0xda, 0x54, 0xea, 0x44, 0x83, 0x13, 0xca, 0xb8, 0xaa, 0xb1, 0xbd, 0x0c}: "FchProm21SsdtDxe", efi.GUID{0x9c, 0x29, 0x65, 0xb2, 0x4e, 0x65, 0xd7, 0x4d, 0x86, 0x16, 0x35, 0x85, 0x61, 0xc0, 0x08, 0xa3}: "SystemVariableStoreManagerSmm", efi.GUID{0x9c, 0x2d, 0xac, 0x79, 0x16, 0x92, 0xc5, 0x43, 0xa0, 0x74, 0x0b, 0x45, 0xc7, 0x64, 0x22, 0xc1}: "SmmRedirElogProtocol", efi.GUID{0x9c, 0x2e, 0xd9, 0xff, 0xb0, 0x26, 0xe3, 0x44, 0x99, 0x60, 0x87, 0x2f, 0x6c, 0x41, 0x62, 0xb6}: "FjCmos", efi.GUID{0x9c, 0x2f, 0x54, 0x37, 0xe8, 0x24, 0x34, 0x48, 0x8b, 0x1d, 0x7c, 0x3e, 0x06, 0x45, 0x24, 0x5d}: "EcMpmSmm", efi.GUID{0x9c, 0x2f, 0xe0, 0x9f, 0xda, 0x5b, 0x71, 0x49, 0xa9, 0x18, 0xb7, 0x94, 0x51, 0xb4, 0x3e, 0x43}: "FmpDxe", efi.GUID{0x9c, 0x38, 0x92, 0x28, 0xe9, 0xfb, 0xd7, 0x43, 0xb9, 0xfc, 0x6c, 0x5d, 0x90, 0xd1, 0x84, 0x56}: "TisDxe", efi.GUID{0x9c, 0x44, 0x8e, 0x63, 0x59, 0x86, 0x87, 0x48, 0x82, 0x81, 0x27, 0x5f, 0xae, 0xd2, 0xa7, 0x43}: "HpTxtTpm2Provision", efi.GUID{0x9c, 0x4a, 0x52, 0xa4, 0x5e, 0x0b, 0x2d, 0x49, 0xae, 0xc9, 0x30, 0x86, 0x31, 0xb1, 0x89, 0xb4}: "AmiSetTcgReadytobootGuid", efi.GUID{0x9c, 0x52, 0x02, 0xef, 0x83, 0xa2, 0xcd, 0x48, 0x8d, 0x08, 0x6a, 0x1e, 0x9c, 0x3c, 0x03, 0xd3}: "AmiTseOemPortingVar18", efi.GUID{0x9c, 0x57, 0x65, 0xd9, 0xf4, 0x7d, 0x8d, 0x45, 0xa8, 0x03, 0x94, 0xd0, 0x80, 0x8b, 0xc4, 0x22}: "NCT7802YDxeInit", efi.GUID{0x9c, 0x59, 0xc9, 0xea, 0x94, 0x2d, 0x86, 0x48, 0x8f, 0x6c, 0xd7, 0xa8, 0x8b, 0x5b, 0x48, 0x3a}: "N17MQ3Gop", efi.GUID{0x9c, 0x66, 0x4a, 0xa4, 0xe0, 0xac, 0x96, 0x46, 0x81, 0x79, 0xf5, 0xea, 0x87, 0x93, 0x0c, 0x4f}: "HpErrorLoggingDxe", efi.GUID{0x9c, 0x68, 0x15, 0x42, 0x29, 0xf5, 0xff, 0x4a, 0x9b, 0xfe, 0xfe, 0xf3, 0x5a, 0xc5, 0x51, 0x8c}: "ProjectPeiPriori", efi.GUID{0x9c, 0x69, 0x9e, 0x99, 0x13, 0xb0, 0x5e, 0x47, 0xb1, 0x7b, 0xf3, 0xa8, 0xae, 0x5c, 0x48, 0x75}: "EdkiiDebugPpi", efi.GUID{0x9c, 0x6b, 0x45, 0xff, 0xc7, 0x0d, 0x82, 0x46, 0x9e, 0x92, 0x0d, 0xe8, 0x4b, 0x6e, 0x40, 0x67}: "PeiSmmControl", efi.GUID{0x9c, 0x6b, 0xe2, 0x41, 0xa6, 0xad, 0xb3, 0x45, 0x80, 0x8e, 0x23, 0x57, 0xa3, 0x5b, 0x60, 0xd6}: "ArmBootMonFsFileInfoGuid", efi.GUID{0x9c, 0x76, 0xab, 0x79, 0x59, 0xe9, 0x09, 0x4b, 0x97, 0x18, 0x80, 0xa8, 0x96, 0x01, 0x2c, 0x28}: "DellNetworkTransferDriver", efi.GUID{0x9c, 0x7a, 0x3d, 0xde, 0x18, 0xa2, 0x91, 0x48, 0x74, 0x69, 0x4f, 0xc0, 0xae, 0x85, 0x32, 0x98}: "AmdCpmPcieInitPeim", efi.GUID{0x9c, 0x7c, 0x0d, 0x5f, 0xf5, 0xa3, 0x84, 0x41, 0x83, 0x6d, 0xdc, 0xef, 0x65, 0x0a, 0x49, 0x3d}: "FjUCMPei", efi.GUID{0x9c, 0x7e, 0x19, 0x3e, 0xdc, 0xd8, 0xd3, 0x42, 0x89, 0xce, 0xb0, 0x4f, 0xa9, 0x83, 0x37, 0x56}: "RegularExpressionDxe", efi.GUID{0x9c, 0x81, 0xb4, 0x0e, 0x78, 0xd8, 0x8d, 0x4c, 0x91, 0x3b, 0x40, 0x49, 0x47, 0xae, 0xb8, 0x9f}: "PlatformStorageInformationDxe", efi.GUID{0x9c, 0x83, 0xf2, 0x99, 0xc3, 0x57, 0x1e, 0x41, 0xab, 0xc3, 0xad, 0xe5, 0x26, 0x7d, 0x96, 0x0d}: "OzmosisDefaults", efi.GUID{0x9c, 0x8c, 0xe1, 0x6b, 0x61, 0xbf, 0x9e, 0x49, 0x88, 0xec, 0x5c, 0xd5, 0x74, 0x30, 0x46, 0x0c}: "ScSmiDispatcher", efi.GUID{0x9c, 0x90, 0xf2, 0xa4, 0x2a, 0x5e, 0x8a, 0x43, 0x91, 0xba, 0x27, 0x2b, 0x09, 0x23, 0x04, 0x9a}: "PlatformSetup", efi.GUID{0x9c, 0x92, 0x47, 0x8e, 0x0e, 0xc8, 0xce, 0x40, 0xb0, 0x13, 0x80, 0x7f, 0xef, 0xc9, 0x41, 0x10}: "IntelGigabitLanDxe", efi.GUID{0x9c, 0x92, 0x54, 0xe9, 0xac, 0x5b, 0x94, 0x44, 0xb9, 0x63, 0x3b, 0x23, 0xd4, 0xa1, 0x3a, 0xd2}: "QuiesceSupport", efi.GUID{0x9c, 0x95, 0x7d, 0x57, 0x67, 0xe9, 0x46, 0x45, 0x86, 0x20, 0xc7, 0x78, 0xfa, 0xe5, 0xda, 0x05}: "EfiDebuggerConfigurationProtocolGuid", efi.GUID{0x9c, 0xaf, 0x54, 0x6a, 0xfe, 0x00, 0xee, 0x46, 0x9a, 0xa1, 0x35, 0x9c, 0x98, 0x22, 0xc8, 0xfc}: "SlotDataUpdateDxeEldorado", efi.GUID{0x9c, 0xb0, 0xfa, 0x38, 0x51, 0x28, 0x4c, 0x44, 0x9a, 0x43, 0xf8, 0x27, 0x25, 0xe4, 0x67, 0x1f}: "AcpiDsdtDynamicCpu", efi.GUID{0x9c, 0xbf, 0x61, 0x21, 0x38, 0x80, 0x12, 0x4f, 0xa7, 0x58, 0x30, 0x14, 0x06, 0x60, 0xf2, 0x2f}: "StaticSkuDataDxeFischerLakeRP", efi.GUID{0x9c, 0xc1, 0xce, 0x4e, 0x5f, 0x6e, 0x15, 0x48, 0x83, 0x42, 0xb5, 0x5f, 0x2c, 0xc5, 0xdf, 0xc1}: "LenovoVproHiiDxe", efi.GUID{0x9c, 0xc6, 0x1a, 0x67, 0x3a, 0xaf, 0xf1, 0x47, 0x88, 0x4f, 0xa4, 0xb0, 0x4b, 0x25, 0x70, 0x57}: "AmdPspPeiV2Phx", efi.GUID{0x9c, 0xc6, 0xa6, 0xa5, 0x0f, 0xb5, 0x57, 0x41, 0x80, 0x1c, 0x4e, 0xd7, 0x86, 0xa5, 0x53, 0x70}: "AmdCcxZen4Dxe", efi.GUID{0x9c, 0xc7, 0xf7, 0x0a, 0xb5, 0x65, 0x19, 0x43, 0xb0, 0xae, 0x44, 0xec, 0x48, 0x4e, 0x4a, 0xd7}: "EfiHashAlgorithmMD5Guid", efi.GUID{0x9c, 0xd3, 0x28, 0x29, 0x7d, 0x91, 0x2f, 0x4f, 0x95, 0x10, 0x16, 0xab, 0x73, 0xf2, 0x04, 0xb2}: "BiosAcm_Field", efi.GUID{0x9c, 0xd4, 0x00, 0xbf, 0x84, 0x77, 0x06, 0x4a, 0x9f, 0x5c, 0x12, 0xfb, 0x9e, 0x68, 0xc7, 0x2b}: "FjGabiFlashCoreSmm", efi.GUID{0x9c, 0xe0, 0x79, 0x54, 0x74, 0x2e, 0x1b, 0x48, 0x89, 0xf8, 0xb0, 0x17, 0x2e, 0x38, 0x8d, 0x1f}: "StartWatchDog", efi.GUID{0x9c, 0xe0, 0xb6, 0x4e, 0x56, 0xd2, 0x1e, 0x4e, 0xb5, 0x0a, 0x87, 0x4b, 0xd2, 0x84, 0xb3, 0xde}: "FspSiliconInitDonePpiGuid", efi.GUID{0x9c, 0xe0, 0xd7, 0x5b, 0xf7, 0xa2, 0x73, 0x48, 0x8d, 0xce, 0x28, 0xd3, 0x95, 0xda, 0x98, 0xf7}: "DellRmt3Smm", efi.GUID{0x9c, 0xe2, 0xe5, 0xc2, 0x9b, 0xe3, 0x8d, 0x4e, 0x99, 0x09, 0xe0, 0x0a, 0x14, 0x53, 0x59, 0xfd}: "HpFlashMe", efi.GUID{0x9c, 0xe7, 0x7b, 0x61, 0x33, 0x31, 0x4e, 0x47, 0x80, 0x17, 0xa7, 0x33, 0x59, 0x5b, 0x49, 0x30}: "ECSMI", efi.GUID{0x9c, 0xe9, 0x8c, 0x6b, 0x68, 0x9c, 0xec, 0x41, 0xb5, 0x07, 0xe0, 0x3a, 0x14, 0x3c, 0x7e, 0xd4}: "WirelessUndiLauncher", efi.GUID{0x9c, 0xe9, 0xbd, 0x28, 0xa7, 0xe8, 0x3e, 0x4e, 0x9a, 0x8a, 0xe6, 0x6c, 0xd6, 0x4f, 0x31, 0xc6}: "BasePciLibCf8", efi.GUID{0x9c, 0xea, 0x62, 0x23, 0xe5, 0x84, 0xff, 0x4d, 0x83, 0xbc, 0xb5, 0xac, 0xec, 0xb5, 0x7c, 0xbb}: "AmiCsmThunkDriverGuid", efi.GUID{0x9c, 0xf2, 0x4c, 0xe8, 0x1f, 0x19, 0xae, 0x4e, 0x96, 0xe1, 0xf4, 0x6a, 0xec, 0xea, 0xea, 0x0b}: "EfiTianoDecompressProtocol", efi.GUID{0x9c, 0xf6, 0xca, 0x2c, 0x61, 0x62, 0xbd, 0x47, 0xac, 0x46, 0xe6, 0xf4, 0x71, 0xd6, 0x54, 0xd9}: "StorageInfoProtocolDxe", efi.GUID{0x9c, 0xff, 0xa4, 0xce, 0xbc, 0xd7, 0x07, 0x4f, 0x96, 0xf1, 0x03, 0xf4, 0x1f, 0x2b, 0x17, 0xae}: "BaseFspDebugLibSerialPort", efi.GUID{0x9d, 0x00, 0x2a, 0xf4, 0x7f, 0x97, 0x08, 0x4f, 0x94, 0x40, 0xbc, 0xa5, 0xa3, 0xbe, 0xd9, 0xaf}: "AmiExtPciBusProtocolGuid", efi.GUID{0x9d, 0x01, 0xc2, 0x0e, 0x70, 0xbc, 0x4e, 0x4a, 0xa2, 0x39, 0x50, 0x1e, 0xf5, 0xd6, 0xf7, 0x42}: "InstallPlatformSsdt", efi.GUID{0x9d, 0x05, 0xd1, 0x76, 0x22, 0x2e, 0xef, 0x40, 0xa3, 0x1f, 0xc4, 0x9d, 0xbb, 0xc0, 0xdb, 0xce}: "SetupCheckSumPei", efi.GUID{0x9d, 0x07, 0x89, 0xcf, 0x55, 0xde, 0x18, 0x46, 0x86, 0x83, 0xbc, 0xfb, 0x0d, 0x5c, 0x90, 0xbc}: "AsusSlp2Encrypt", efi.GUID{0x9d, 0x0b, 0xc2, 0xe6, 0x4b, 0x0a, 0xf1, 0x45, 0x8e, 0x39, 0xa9, 0x67, 0xe2, 0x8f, 0x99, 0xc4}: "DustFilterReminderSmm", efi.GUID{0x9d, 0x13, 0xee, 0x3a, 0xc8, 0xed, 0x99, 0x45, 0xba, 0xbc, 0x50, 0x83, 0x23, 0xb5, 0xd4, 0xa3}: "TpmEsrtFmpUpd", efi.GUID{0x9d, 0x15, 0xa5, 0x27, 0x61, 0x5e, 0x09, 0x48, 0x91, 0x9a, 0x42, 0x2e, 0x88, 0x71, 0x01, 0xef}: "PcatSingleSegmentPciCfgPei", efi.GUID{0x9d, 0x15, 0xc4, 0xae, 0xfc, 0xf2, 0x90, 0x40, 0x95, 0xce, 0x38, 0x31, 0x7a, 0x8e, 0xd6, 0x4c}: "FirmwarePerformanceTable", efi.GUID{0x9d, 0x1e, 0x3f, 0xed, 0x20, 0x23, 0x37, 0x4b, 0x91, 0x19, 0xe9, 0x28, 0xc1, 0xe6, 0x32, 0x3b}: "BctBaseSmmSHP", efi.GUID{0x9d, 0x1f, 0x51, 0x0e, 0x86, 0x5b, 0x89, 0x43, 0x93, 0x25, 0x9f, 0x82, 0x17, 0x22, 0x0f, 0xbb}: "CpuInstallEfiMemoryPei", efi.GUID{0x9d, 0x22, 0x9a, 0x39, 0x54, 0xf6, 0xef, 0x4c, 0x9e, 0xd3, 0x6f, 0xc3, 0xc9, 0x92, 0xe3, 0x11}: "PciDxeInit", efi.GUID{0x9d, 0x22, 0x9a, 0x39, 0x54, 0xf6, 0xef, 0x4c, 0x9e, 0xd3, 0x6f, 0xc3, 0xc9, 0x92, 0xe3, 0x9c}: "PciDxeInit", efi.GUID{0x9d, 0x26, 0x02, 0x07, 0x0c, 0x38, 0x73, 0x48, 0xbf, 0xeb, 0x32, 0xf5, 0xbc, 0x44, 0xdd, 0x16}: "AmtLockI2cConInDxe", efi.GUID{0x9d, 0x29, 0xe6, 0xb2, 0x6a, 0x68, 0x14, 0x42, 0xb0, 0x70, 0x08, 0x03, 0x67, 0xfc, 0x53, 0x40}: "DellInstallHiiPidListHobPei", efi.GUID{0x9d, 0x30, 0xba, 0x75, 0xfd, 0x5d, 0xbf, 0x49, 0xac, 0xe8, 0x28, 0xb3, 0x9b, 0x52, 0xbd, 0xf7}: "CbsBasePeiRPL", efi.GUID{0x9d, 0x34, 0x78, 0x1f, 0xba, 0x7f, 0x86, 0x46, 0x80, 0x98, 0xfa, 0x01, 0x7e, 0xda, 0x35, 0xfb}: "ArmShellCmdRunAxf", efi.GUID{0x9d, 0x34, 0xcf, 0xa3, 0x9c, 0x63, 0x08, 0x4d, 0xac, 0x4a, 0xc9, 0x53, 0x41, 0xfb, 0x4f, 0x94}: "AppleIrRemoteDxe", efi.GUID{0x9d, 0x36, 0x18, 0xbd, 0x42, 0xc2, 0xca, 0x45, 0x82, 0xad, 0x13, 0x8a, 0xc2, 0xe2, 0x9b, 0xab}: "EfiSmmIoTrapDispatchProtocol", efi.GUID{0x9d, 0x37, 0x99, 0x39, 0xcb, 0xf9, 0xf2, 0x4e, 0xbd, 0x0e, 0xf2, 0x41, 0xff, 0x80, 0x46, 0x28}: "RTS52xx", efi.GUID{0x9d, 0x3f, 0x46, 0x1e, 0xfb, 0x4c, 0x96, 0x43, 0xa7, 0x84, 0x68, 0xc3, 0x50, 0xba, 0xdc, 0xf1}: "AmdSpiHcProtocolDxe", efi.GUID{0x9d, 0x5e, 0x02, 0x55, 0xe9, 0x32, 0x3b, 0x40, 0x81, 0xc1, 0xf9, 0xe3, 0xd9, 0xd7, 0x06, 0x40}: "AmdHsti", efi.GUID{0x9d, 0x64, 0xd9, 0x5c, 0x74, 0x28, 0x34, 0x48, 0x80, 0x2b, 0xc5, 0x59, 0xc9, 0x47, 0x03, 0xae}: "Usb4CmDxe", efi.GUID{0x9d, 0x66, 0xe3, 0x95, 0xbe, 0x34, 0x75, 0x47, 0xa6, 0x51, 0x7e, 0xa4, 0x1b, 0x69, 0xd8, 0x9e}: "Dhcp6Dxe", efi.GUID{0x9d, 0x7c, 0xca, 0x75, 0x2e, 0x50, 0x8a, 0x46, 0x9a, 0xaf, 0x7f, 0x2a, 0x29, 0xe6, 0xdb, 0xcf}: "AmiSbHddPolicyProtocolGuid", efi.GUID{0x9d, 0x81, 0xc1, 0xf2, 0xf5, 0x10, 0x23, 0x42, 0x92, 0x36, 0x9b, 0x4e, 0xbf, 0x1b, 0x9a, 0xe7}: "Logo1394", efi.GUID{0x9d, 0x83, 0x7c, 0xcd, 0x21, 0x05, 0x26, 0x4b, 0x94, 0x76, 0x9f, 0xf2, 0xcb, 0x70, 0x64, 0x9a}: "OpromUpdateDxeNeonCityEPECB", efi.GUID{0x9d, 0x85, 0xd7, 0xc1, 0x19, 0x57, 0xc3, 0x46, 0xa2, 0x98, 0xd0, 0x71, 0xe3, 0x02, 0x64, 0xd1}: "AcousticSetupProtocol", efi.GUID{0x9d, 0x91, 0xde, 0xb7, 0xf1, 0xe2, 0xea, 0x45, 0xb6, 0x6c, 0xd1, 0xe0, 0x35, 0x08, 0x18, 0x94}: "AmdCpmThunderboltSmm", efi.GUID{0x9d, 0x95, 0x79, 0xbc, 0xe5, 0x47, 0xde, 0x47, 0x8e, 0x8c, 0x49, 0xde, 0x89, 0xb1, 0xfd, 0x9d}: "FjDeviceFirmwareUpdateProtocol", efi.GUID{0x9d, 0x97, 0x10, 0x93, 0x8f, 0xa5, 0x3e, 0x41, 0x91, 0x3f, 0x5e, 0x92, 0x94, 0xd8, 0xed, 0x2a}: "SetupCheckSumListInit", efi.GUID{0x9d, 0x9a, 0x49, 0x37, 0x2f, 0x54, 0x89, 0x4c, 0xa0, 0x26, 0x35, 0xda, 0x14, 0x20, 0x94, 0xe4}: "EfiUartDevicePathGuid", efi.GUID{0x9d, 0xa5, 0xa6, 0x5a, 0x84, 0x57, 0x0b, 0x42, 0xa6, 0xe5, 0xd8, 0xf6, 0x41, 0xbd, 0x97, 0x32}: "EfiRasfSupportProtocol", efi.GUID{0x9d, 0xa6, 0x50, 0xd4, 0xe4, 0xd8, 0x48, 0xc0, 0x8e, 0x7e, 0x00, 0x24, 0xeb, 0x54, 0x1c, 0x79}: "NetworkInterfacePolicyDriver", efi.GUID{0x9d, 0xa6, 0x82, 0x29, 0x52, 0xa9, 0x2a, 0x4a, 0xa1, 0x9b, 0x0b, 0xe6, 0x1b, 0x29, 0x61, 0x99}: "PldmSmbios", efi.GUID{0x9d, 0xa7, 0xa0, 0xe8, 0x3f, 0x04, 0x36, 0x4a, 0x93, 0xf2, 0x6f, 0xa5, 0xc5, 0x06, 0xe9, 0xff}: "AmdPspKvm", efi.GUID{0x9d, 0xa7, 0xea, 0x72, 0x46, 0xd3, 0xc1, 0x43, 0xb6, 0xa2, 0xb8, 0x5e, 0xee, 0x72, 0x91, 0x33}: "NoBootDeviceOptionSmm", efi.GUID{0x9d, 0xb4, 0xc4, 0x19, 0xda, 0x28, 0x32, 0x42, 0x99, 0x6a, 0xd1, 0x75, 0xbb, 0xf6, 0xaf, 0xf7}: "SystemBiosSelfHealingPremiumDxe", efi.GUID{0x9d, 0xb9, 0x35, 0x3c, 0xb7, 0xd4, 0x85, 0x48, 0xab, 0xd9, 0x2b, 0xea, 0x4b, 0x9f, 0x3a, 0x01}: "ASUSFTMDXE", efi.GUID{0x9d, 0xbf, 0xf4, 0xdf, 0x27, 0xd0, 0x7e, 0x4f, 0x93, 0x85, 0xc1, 0xad, 0xb0, 0xce, 0xf7, 0x53}: "FjSmmAzaliaVerbTable", efi.GUID{0x9d, 0xc0, 0x17, 0xb0, 0xc1, 0xed, 0x40, 0x49, 0xb1, 0x3e, 0x57, 0xe9, 0x56, 0x60, 0xc9, 0x0f}: "AhciRom", efi.GUID{0x9d, 0xd2, 0xaf, 0x4a, 0xdf, 0x68, 0xee, 0x49, 0x8a, 0xa9, 0x34, 0x7d, 0x37, 0x56, 0x65, 0xa7}: "EfiCertPkcs7Guid", efi.GUID{0x9d, 0xe2, 0x7a, 0x4b, 0x37, 0x39, 0x0a, 0x40, 0x99, 0x55, 0x52, 0x88, 0x55, 0x20, 0x9d, 0x9f}: "SecureBioEnableDxe", efi.GUID{0x9d, 0xeb, 0xad, 0xed, 0xba, 0xdd, 0xbd, 0x48, 0x9d, 0x22, 0xc1, 0xc1, 0x69, 0xc8, 0xc5, 0xc6}: "CpuMpPei", efi.GUID{0x9d, 0xeb, 0xe9, 0x65, 0x2d, 0x81, 0x61, 0x41, 0x99, 0xc5, 0x05, 0xac, 0x4b, 0xcc, 0xa4, 0x94}: "DellSmmGpe", efi.GUID{0x9d, 0xec, 0x43, 0x35, 0x27, 0x4b, 0xa9, 0x4f, 0xad, 0xbd, 0x1d, 0xe1, 0x18, 0x07, 0x8f, 0xa7}: "AmdSb900Pei", efi.GUID{0x9d, 0xec, 0x43, 0x35, 0x27, 0x4b, 0xa9, 0x4f, 0xad, 0xbd, 0x1d, 0xf1, 0x18, 0x07, 0x8f, 0xa7}: "AmdSb800_PeiPei", efi.GUID{0x9d, 0xf7, 0x24, 0x3b, 0xa0, 0x91, 0xff, 0x46, 0xbe, 0x29, 0x45, 0x8a, 0xe2, 0x11, 0xfa, 0xc5}: "KbcEmul", efi.GUID{0x9d, 0xff, 0x3a, 0xb1, 0x6d, 0xc6, 0xad, 0x46, 0x8c, 0x23, 0x72, 0x34, 0x82, 0xef, 0xc8, 0x41}: "PlatformEmmcDxe", efi.GUID{0x9e, 0x00, 0xa6, 0x77, 0x6e, 0x11, 0x4d, 0x46, 0x8e, 0xf8, 0xb3, 0x52, 0x01, 0xa0, 0x22, 0xdd}: "DigitalThermalSensorSmm", efi.GUID{0x9e, 0x01, 0x80, 0xb1, 0x20, 0x98, 0xc0, 0x4d, 0x8b, 0x40, 0xa7, 0x73, 0xe2, 0x3d, 0x4f, 0x35}: "RamDisk", efi.GUID{0x9e, 0x04, 0x0f, 0x1f, 0x68, 0x3a, 0x97, 0x4c, 0x86, 0x5a, 0xbc, 0x5e, 0xed, 0x79, 0x20, 0xe7}: "AmiPeiNbCpuOnlyResetPpi", efi.GUID{0x9e, 0x0e, 0x18, 0x82, 0x32, 0xfb, 0x86, 0x40, 0xab, 0x38, 0x37, 0x0b, 0xb2, 0x91, 0x34, 0xe3}: "MemoryStorageChipsetSmm", efi.GUID{0x9e, 0x10, 0xb6, 0x16, 0x4c, 0x19, 0x0f, 0x44, 0x94, 0xf8, 0xc7, 0xcc, 0xcc, 0xc3, 0x2d, 0xeb}: "EfiCseEndofPostProtocolGuid", efi.GUID{0x9e, 0x12, 0xee, 0xb1, 0x36, 0xda, 0x81, 0x41, 0x91, 0xf8, 0x04, 0xa4, 0x92, 0x37, 0x66, 0xa7}: "EfiDriverFamilyOverrideProtocolGuid", efi.GUID{0x9e, 0x1a, 0x89, 0x21, 0x3e, 0x76, 0x77, 0x43, 0x88, 0x41, 0x8d, 0x5c, 0x90, 0xd8, 0x8c, 0x51}: "NetworkStackSetupScreen", efi.GUID{0x9e, 0x1a, 0x89, 0x54, 0x3e, 0x76, 0x77, 0x43, 0x88, 0x41, 0x8d, 0x5c, 0x90, 0xd8, 0x8c, 0xde}: "TerminalSrc", efi.GUID{0x9e, 0x1f, 0x62, 0x94, 0xca, 0xb5, 0xfd, 0x4c, 0x82, 0xbe, 0x0c, 0x54, 0x2e, 0xb0, 0xd9, 0xbe}: "TftpServer", efi.GUID{0x9e, 0x30, 0x72, 0x2f, 0xb0, 0xd5, 0x9d, 0x4a, 0x84, 0xa9, 0x1a, 0xb3, 0x8c, 0x69, 0x8f, 0x78}: "EcPs2Kbd", efi.GUID{0x9e, 0x30, 0xbf, 0x59, 0xe5, 0x0e, 0x0a, 0x46, 0xb9, 0x4c, 0xec, 0x1c, 0xbe, 0x02, 0xe5, 0x99}: "InitRasGlobalDataNameBufferSmm", efi.GUID{0x9e, 0x37, 0x7a, 0xcf, 0x88, 0xf7, 0xd4, 0x44, 0xaf, 0x65, 0x16, 0x5c, 0xe1, 0xe0, 0xed, 0x68}: "SmcOptimizeDxe", efi.GUID{0x9e, 0x3c, 0xf9, 0x32, 0xa0, 0x83, 0xe4, 0x4e, 0xb6, 0x6b, 0xc7, 0x04, 0x61, 0x5d, 0x98, 0x95}: "ApobDummyDxe", efi.GUID{0x9e, 0x3e, 0x84, 0x7f, 0x26, 0xba, 0x3c, 0x4d, 0x82, 0xf7, 0xc7, 0x03, 0xd8, 0x7d, 0x33, 0x4d}: "PhI2cPlatformSupport", efi.GUID{0x9e, 0x3f, 0x1f, 0x5d, 0xee, 0x8c, 0x99, 0x42, 0x93, 0xc2, 0x4c, 0x64, 0xeb, 0xb5, 0x89, 0x77}: "GetServByName", efi.GUID{0x9e, 0x48, 0x20, 0xc0, 0xb2, 0x6d, 0xf2, 0x4e, 0x9a, 0xa5, 0xca, 0x06, 0xfc, 0x11, 0xd3, 0x6a}: "EfiAcpiVariableCompatiblityGuid", efi.GUID{0x9e, 0x52, 0xb6, 0x3a, 0x90, 0x6f, 0x63, 0x48, 0xaf, 0xfa, 0xf5, 0xba, 0x08, 0xde, 0xa9, 0xaa}: "SbBeepLibPcAt", efi.GUID{0x9e, 0x5a, 0x3f, 0xa4, 0x9e, 0xb2, 0x1b, 0x45, 0x85, 0x26, 0x44, 0xc3, 0xe4, 0x3d, 0x50, 0x67}: "SioInit", efi.GUID{0x9e, 0x60, 0xe5, 0xa2, 0x2d, 0x8c, 0xe6, 0x42, 0xa2, 0xfc, 0x12, 0xbc, 0x74, 0xbd, 0x43, 0x7f}: "EfiPeiPlatformTypeNeonCityEprpPpi", efi.GUID{0x9e, 0x6b, 0xc1, 0xf2, 0x85, 0x89, 0xdb, 0x11, 0x92, 0xc8, 0x00, 0x40, 0xd0, 0x2b, 0x18, 0x35}: "EfiUnixFileSystem", efi.GUID{0x9e, 0x6d, 0x18, 0xe6, 0x97, 0x27, 0x3d, 0x42, 0xb0, 0x75, 0x97, 0x0a, 0x2c, 0x5f, 0xc3, 0x38}: "DmiArrayVarProtect", efi.GUID{0x9e, 0x8a, 0xa7, 0xc1, 0xe8, 0x11, 0x10, 0x49, 0x91, 0xa5, 0xfe, 0x48, 0xf5, 0xf4, 0xc2, 0x0d}: "DellEpsaDxe", efi.GUID{0x9e, 0x8b, 0x57, 0xa4, 0x66, 0xc6, 0x61, 0x41, 0xa1, 0x68, 0x15, 0x9f, 0xf5, 0x41, 0xac, 0xd3}: "CnvUefiConfigVariables", efi.GUID{0x9e, 0x8b, 0xd1, 0x82, 0x3a, 0x15, 0xd7, 0x4b, 0x92, 0x70, 0xab, 0xc1, 0x4a, 0xce, 0x5d, 0xc8}: "UefiDriverRealTek", efi.GUID{0x9e, 0x8f, 0x3f, 0xda, 0x46, 0x8d, 0x66, 0x4b, 0xa0, 0x09, 0x42, 0xc8, 0xbc, 0xad, 0x85, 0x30}: "FjVgaDxe", efi.GUID{0x9e, 0x92, 0x29, 0x2c, 0xcf, 0x27, 0xd5, 0x4d, 0xbb, 0x97, 0xe5, 0x52, 0x57, 0x91, 0xf5, 0xba}: "DRYDXE", efi.GUID{0x9e, 0x93, 0x9b, 0xcb, 0x6d, 0xfb, 0xb7, 0x48, 0x9e, 0x58, 0x90, 0x18, 0x8d, 0x77, 0x18, 0x9d}: "SgTpvAcpiS3Save", efi.GUID{0x9e, 0x9c, 0x8e, 0xe9, 0xbe, 0xda, 0x3f, 0x4d, 0xb0, 0x2a, 0xb3, 0x70, 0x8b, 0xd7, 0x84, 0xeb}: "FiopCcgFwUpdate", efi.GUID{0x9e, 0xa4, 0x86, 0xef, 0x3c, 0xcd, 0x5a, 0x44, 0x87, 0x8e, 0x7a, 0x73, 0x8d, 0x2c, 0x7e, 0xd2}: "BoardSpiBusSmm", efi.GUID{0x9e, 0xa5, 0x7d, 0x41, 0x73, 0xcb, 0x2b, 0x45, 0x90, 0xf3, 0xa8, 0xd9, 0xb8, 0x05, 0x00, 0x4a}: "BootOrderDxe", efi.GUID{0x9e, 0xa7, 0xa4, 0xf2, 0xef, 0x89, 0x25, 0x4b, 0xa4, 0x8d, 0xa5, 0xf0, 0x5c, 0x8d, 0x52, 0x2c}: "FchKeithDxe", efi.GUID{0x9e, 0xa7, 0xbc, 0x97, 0x22, 0x24, 0xad, 0x4e, 0xa1, 0x01, 0xba, 0xce, 0x64, 0x4a, 0x5a, 0xc8}: "OemBadgingSupportDxe", efi.GUID{0x9e, 0xae, 0xa2, 0xec, 0x94, 0x75, 0x01, 0x49, 0x87, 0x1c, 0x44, 0x9d, 0xa1, 0xa1, 0x16, 0x60}: "I2cDxe", efi.GUID{0x9e, 0xbc, 0x99, 0x7e, 0xe9, 0xed, 0xc1, 0x48, 0x85, 0xb9, 0x68, 0x94, 0x32, 0x81, 0x7f, 0x8f}: "SystemEsrtDxe", efi.GUID{0x9e, 0xbe, 0x77, 0x24, 0x1a, 0x8e, 0x1e, 0x43, 0xb7, 0x05, 0x14, 0xe6, 0x63, 0x71, 0x73, 0x77}: "PsmiComboBufferGuid", efi.GUID{0x9e, 0xc3, 0xaf, 0xd3, 0x47, 0xbc, 0xd3, 0x49, 0xaf, 0xed, 0x60, 0x4c, 0x46, 0x75, 0x2d, 0x0a}: "DellPsidPei", efi.GUID{0x9e, 0xc9, 0x89, 0xe8, 0xe9, 0xeb, 0xd7, 0x4b, 0x2f, 0xcc, 0x32, 0x16, 0x10, 0x06, 0x1e, 0x80}: "CypressCCG4Pei", efi.GUID{0x9e, 0xca, 0x7d, 0x83, 0x74, 0xe8, 0x82, 0x4d, 0xb2, 0x9a, 0x23, 0xfe, 0x0e, 0x23, 0xd1, 0xe2}: "VirtioMmioTransportGuid", efi.GUID{0x9e, 0xd4, 0xa4, 0x61, 0x68, 0x6f, 0x1b, 0x4f, 0xb9, 0x22, 0xa8, 0x6e, 0xed, 0x0b, 0x07, 0xa2}: "EfiUgaIoProtocolGuid", efi.GUID{0x9e, 0xd8, 0x16, 0x95, 0x6d, 0x0a, 0xf6, 0x4a, 0x8c, 0x26, 0x55, 0x26, 0xf1, 0x1e, 0xe8, 0x2e}: "BrightnessControlSmm", efi.GUID{0x9e, 0xe3, 0x05, 0x17, 0x53, 0xc3, 0xe2, 0x11, 0xa1, 0x87, 0x04, 0x7d, 0x7b, 0x99, 0xe0, 0x97}: "SetupMenuService", efi.GUID{0x9e, 0xec, 0xe9, 0x17, 0x36, 0x40, 0x37, 0x42, 0xb0, 0x74, 0xd1, 0xf2, 0x94, 0x64, 0x59, 0x9c}: "OemDataRegionFlashSmm", efi.GUID{0x9e, 0xf3, 0xa1, 0x1f, 0xff, 0xfe, 0xae, 0x4a, 0xbd, 0x7b, 0x38, 0xa0, 0x70, 0xa3, 0xb6, 0x09}: "PartitionDxe", efi.GUID{0x9f, 0x04, 0x19, 0x4c, 0x37, 0x41, 0xd3, 0x4d, 0x9c, 0x10, 0x8b, 0x97, 0xa8, 0x3f, 0xfd, 0xfa}: "EfiMemoryTypeInformationGuid", efi.GUID{0x9f, 0x07, 0xbf, 0x66, 0x14, 0x2a, 0xed, 0x47, 0xa0, 0xf2, 0x90, 0xca, 0xf3, 0x56, 0xe0, 0x88}: "ASM108XPEI", efi.GUID{0x9f, 0x0e, 0x6b, 0xb8, 0xaf, 0x9f, 0x68, 0x43, 0xa1, 0x31, 0x62, 0x41, 0x6f, 0x3d, 0xd2, 0x1b}: "AmdMemFp7Dxe", efi.GUID{0x9f, 0x0f, 0x82, 0x82, 0x97, 0x41, 0xd0, 0x46, 0xa9, 0x6c, 0xb1, 0xd1, 0x5b, 0xad, 0x98, 0x8e}: "AmiUsbVideoProtocol", efi.GUID{0x9f, 0x11, 0x80, 0x3e, 0xf4, 0x0b, 0x3c, 0x43, 0x8f, 0xb6, 0xe6, 0xc2, 0x28, 0xa0, 0x01, 0xeb}: "PrmPeLoaderConfigDxe", efi.GUID{0x9f, 0x14, 0x0d, 0xad, 0x67, 0xba, 0x0b, 0x4e, 0xa6, 0xa2, 0x4e, 0x88, 0x53, 0x67, 0x3e, 0xa5}: "ErrorGlobeTile", efi.GUID{0x9f, 0x19, 0x96, 0x09, 0xe2, 0x2c, 0x97, 0x4d, 0x83, 0x0b, 0x07, 0x7a, 0x7b, 0x28, 0x58, 0x8a}: "WpbtDxe", efi.GUID{0x9f, 0x1c, 0xfa, 0x4d, 0x8d, 0xd9, 0xb9, 0x43, 0x88, 0x32, 0x05, 0x9c, 0xad, 0xeb, 0xe4, 0x36}: "PeiPortingSample", efi.GUID{0x9f, 0x1d, 0x8c, 0x96, 0xc4, 0x80, 0xb7, 0x43, 0x8c, 0xae, 0x66, 0x8a, 0xa5, 0x6c, 0x4e, 0x71}: "SmbiosPeim", efi.GUID{0x9f, 0x1d, 0x8e, 0x78, 0xab, 0x1e, 0xd2, 0x47, 0xa2, 0xf3, 0x78, 0xca, 0xe8, 0x7d, 0x60, 0x12}: "IdccDataHubGuid", efi.GUID{0x9f, 0x21, 0x82, 0x1d, 0x6f, 0x38, 0x26, 0x4f, 0xaf, 0xac, 0x61, 0x3f, 0x24, 0x2c, 0x07, 0x60}: "DellSmmStatusCode", efi.GUID{0x9f, 0x29, 0xcd, 0x53, 0xc1, 0x2b, 0xc0, 0x40, 0x8c, 0x07, 0x23, 0xf6, 0x4f, 0xdb, 0x30, 0xe0}: "EdkiiPlatformLogoProtocolGuid", efi.GUID{0x9f, 0x32, 0xa7, 0xb5, 0x17, 0x0d, 0x1f, 0x40, 0x9d, 0xad, 0xa0, 0x90, 0xf8, 0xaa, 0x0b, 0xac}: "OemPei", efi.GUID{0x9f, 0x37, 0x1f, 0x4f, 0x62, 0x2a, 0xbb, 0x48, 0xac, 0x34, 0xd3, 0xf1, 0x35, 0xc6, 0xe2, 0xb7}: "PcatSingleSegmentPciCfg2Pei", efi.GUID{0x9f, 0x42, 0xa0, 0x97, 0x45, 0x39, 0x5b, 0x48, 0x83, 0x36, 0x1c, 0x52, 0x74, 0x71, 0x3f, 0x03}: "AmiPspPei", efi.GUID{0x9f, 0x54, 0x3c, 0xc1, 0xbb, 0x2c, 0x68, 0x48, 0x9e, 0xe4, 0x97, 0xd5, 0xdc, 0x69, 0xfa, 0x47}: "OneTimeBootDxe", efi.GUID{0x9f, 0x59, 0x2e, 0x25, 0x04, 0xd6, 0xea, 0x4b, 0x8f, 0xeb, 0x34, 0x76, 0x68, 0xe9, 0x3b, 0x8f}: "FjRTS54xx", efi.GUID{0x9f, 0x59, 0xe7, 0xba, 0x6b, 0x3c, 0xb7, 0x43, 0xbd, 0xf0, 0x9c, 0xe0, 0x7a, 0xa9, 0x1a, 0xa6}: "CpuIoDxe", efi.GUID{0x9f, 0x5a, 0x78, 0x4a, 0x09, 0xfe, 0x5d, 0x40, 0xff, 0xff, 0xff, 0xff, 0xd7, 0xbd, 0x26, 0x94}: "XnoteGopVbiosDxe", efi.GUID{0x9f, 0x60, 0xd6, 0xf4, 0xb3, 0x2f, 0x1a, 0x40, 0xa4, 0xe7, 0xbd, 0xb5, 0x67, 0x12, 0x56, 0x29}: "SbFlashControllerDxe", efi.GUID{0x9f, 0x67, 0xdf, 0x2c, 0xa0, 0x7a, 0x0f, 0x4d, 0xaf, 0xe1, 0x1a, 0xda, 0xe2, 0x70, 0x61, 0xc9}: "FjMfgFirstPowerOnDxe", efi.GUID{0x9f, 0x6e, 0xfd, 0x6d, 0x78, 0x92, 0xd8, 0x48, 0x8f, 0x45, 0xb6, 0xcf, 0xf2, 0xc2, 0xb6, 0x9c}: "TpmMeasurementLibNull", efi.GUID{0x9f, 0x76, 0x06, 0xf9, 0xed, 0x4a, 0x0d, 0x4a, 0x8c, 0x7c, 0xff, 0x21, 0xb9, 0xd1, 0x05, 0x1a}: "IntelVTdPmrPei", efi.GUID{0x9f, 0x86, 0xc8, 0xf4, 0xb4, 0xa6, 0x6f, 0x4f, 0xa3, 0xc7, 0x2d, 0xef, 0x22, 0xbd, 0x82, 0x25}: "M24Lc128Pei", efi.GUID{0x9f, 0x8f, 0x1d, 0xa1, 0x52, 0x2a, 0xbc, 0x40, 0x9b, 0x82, 0xbc, 0xcd, 0x7d, 0x28, 0x1e, 0xea}: "PchGpioUnlockSmm", efi.GUID{0x9f, 0x8f, 0x92, 0xe9, 0x3f, 0x5d, 0xbc, 0x47, 0xbf, 0xc0, 0xf5, 0x19, 0x0c, 0x69, 0xcc, 0xe5}: "NvmExpressSmm", efi.GUID{0x9f, 0x90, 0x43, 0x24, 0x2d, 0x89, 0xd7, 0x46, 0x79, 0x77, 0x49, 0x02, 0x25, 0x94, 0x19, 0xaa}: "HpRtxXhciSmm", efi.GUID{0x9f, 0x94, 0xe7, 0xa4, 0x18, 0xf8, 0xde, 0x49, 0xae, 0xc0, 0x08, 0xb0, 0xdb, 0x6e, 0x25, 0x0c}: "T23SmbiosOverride", efi.GUID{0x9f, 0x95, 0xca, 0x00, 0xfa, 0x6c, 0xb1, 0x4d, 0x95, 0xbc, 0xe4, 0x6c, 0x47, 0x51, 0x43, 0x90}: "EfiTlsProtocolGuid", efi.GUID{0x9f, 0x9d, 0x94, 0x3f, 0x66, 0xcc, 0x9a, 0x47, 0x9a, 0xd3, 0xf6, 0xc1, 0xc3, 0xff, 0x43, 0x78}: "AmiSgxDxe", efi.GUID{0x9f, 0x9e, 0xf7, 0xfa, 0x40, 0x4d, 0x02, 0x4f, 0x8a, 0xc9, 0x4b, 0x55, 0x12, 0x70, 0x8f, 0x7f}: "BiosGuardPolicyOverride", efi.GUID{0x9f, 0xa1, 0xe1, 0x69, 0x8c, 0xbc, 0x21, 0x40, 0xb3, 0xd9, 0xe0, 0xb2, 0x54, 0x50, 0x92, 0xc6}: "OC_Tuner", efi.GUID{0x9f, 0xab, 0x64, 0xda, 0x7f, 0xec, 0xe5, 0x4b, 0xac, 0x79, 0x53, 0x52, 0xdc, 0xd1, 0x61, 0x4d}: "AmdCpmOemSmm", efi.GUID{0x9f, 0xab, 0xd7, 0x7b, 0x9f, 0xdb, 0x5d, 0x45, 0x85, 0x66, 0x38, 0x7b, 0x2f, 0x13, 0xd4, 0x04}: "UsbPwrCtrlPei", efi.GUID{0x9f, 0xae, 0x3e, 0xff, 0x18, 0xab, 0xaf, 0x4c, 0xb2, 0xa1, 0x6b, 0xf3, 0xfd, 0xca, 0x3c, 0x4d}: "LenovoSmbiosProtocol", efi.GUID{0x9f, 0xba, 0xdd, 0x26, 0x0d, 0x5b, 0x80, 0x4e, 0x86, 0xb2, 0x80, 0xda, 0xe4, 0xd0, 0x1b, 0x0e}: "FdiskOemDxe", efi.GUID{0x9f, 0xc9, 0x4c, 0x58, 0xe8, 0x4b, 0xd1, 0x43, 0xa4, 0x5a, 0x93, 0x3d, 0xc3, 0x94, 0x79, 0xfc}: "AmiPeiNbCustomPpiGuid", efi.GUID{0x9f, 0xda, 0x2e, 0x0e, 0xb6, 0x4b, 0x40, 0x41, 0xae, 0xd6, 0x7d, 0xbc, 0xeb, 0x63, 0xc8, 0x29}: "MtkWifiSupDriver", efi.GUID{0x9f, 0xe3, 0x1d, 0x3c, 0x07, 0xd2, 0x8a, 0x40, 0xaa, 0xcc, 0x73, 0x1c, 0xfb, 0x7f, 0x1d, 0xd7}: "PciBus", efi.GUID{0x9f, 0xed, 0x60, 0xac, 0x3e, 0x52, 0x5b, 0x4f, 0x94, 0xca, 0x39, 0x61, 0x34, 0x6a, 0x00, 0xba}: "LenovoVariableInitDxe", efi.GUID{0x9f, 0xf2, 0x12, 0x8b, 0x35, 0x71, 0xab, 0x4e, 0xaf, 0xda, 0x05, 0x12, 0xf7, 0x4b, 0x65, 0xea}: "AmdSb900Dxe", efi.GUID{0x9f, 0xf8, 0x10, 0x52, 0x9e, 0x89, 0x75, 0x40, 0x81, 0xf9, 0x35, 0x59, 0x4e, 0x77, 0xcb, 0x9d}: "CcgOnlyPei", efi.GUID{0x9f, 0xf8, 0x30, 0xb4, 0x33, 0xeb, 0x14, 0x45, 0xb4, 0x90, 0x18, 0x85, 0xad, 0xdb, 0xf8, 0x40}: "TypeAEh", efi.GUID{0xa0, 0x08, 0x37, 0x4d, 0x9b, 0x6d, 0xd3, 0x47, 0xad, 0x87, 0xe8, 0x0c, 0x78, 0x1b, 0xc0, 0xa7}: "AmdApcbDxeV3", efi.GUID{0xa0, 0x09, 0x0c, 0xff, 0xc7, 0x76, 0x99, 0x4e, 0x8f, 0x21, 0x29, 0x42, 0xd1, 0x2e, 0x7b, 0x04}: "AmdOemRasBrhSmm", efi.GUID{0xa0, 0x0a, 0xcd, 0xd9, 0x0f, 0xc2, 0x10, 0x48, 0x99, 0x9e, 0xd9, 0x91, 0xfd, 0x04, 0x84, 0xd9}: "DellSmBiosStrucD9", efi.GUID{0xa0, 0x14, 0x26, 0x1a, 0xe7, 0x89, 0xe3, 0x11, 0x29, 0x90, 0x31, 0xd2, 0x81, 0xfe, 0xb1, 0xdc}: "NgnRasProtocol", efi.GUID{0xa0, 0x1c, 0x14, 0x61, 0x44, 0x14, 0x4e, 0x4c, 0xa1, 0x6d, 0xb6, 0x01, 0xe0, 0xa0, 0x94, 0x66}: "LenovoSystemKbcInitDxe", efi.GUID{0xa0, 0x21, 0x9d, 0x2b, 0x48, 0xe0, 0x33, 0x43, 0x9f, 0x02, 0xd3, 0x2f, 0xd5, 0x57, 0x67, 0x52}: "ProductIdentify", efi.GUID{0xa0, 0x24, 0x55, 0xda, 0x30, 0x60, 0x66, 0x4a, 0xa9, 0xe4, 0xd2, 0x66, 0x29, 0x87, 0x19, 0x21}: "FjAlderLakeSmm", efi.GUID{0xa0, 0x27, 0x00, 0x68, 0xdf, 0x2f, 0x07, 0x4e, 0xb5, 0x18, 0xe3, 0x63, 0x16, 0x85, 0x91, 0x4d}: "HpStorageResetHookDxe", efi.GUID{0xa0, 0x29, 0xf0, 0xba, 0xf3, 0xb2, 0xee, 0x45, 0x8b, 0x52, 0xd4, 0x02, 0x17, 0x7b, 0xe6, 0xb8}: "LenovoOsOptDefaultSmm", efi.GUID{0xa0, 0x2f, 0x4c, 0xf3, 0x88, 0xde, 0x70, 0x42, 0x84, 0x14, 0x96, 0x12, 0x22, 0xf4, 0x52, 0x1c}: "PeiFlashMapPpi", efi.GUID{0xa0, 0x31, 0xd8, 0xc8, 0x76, 0x35, 0xc8, 0x41, 0xb0, 0xa7, 0xd9, 0x40, 0x24, 0x35, 0x63, 0x95}: "OemDisplayModeDxe", efi.GUID{0xa0, 0x49, 0xff, 0xe6, 0xdf, 0x15, 0xfd, 0x48, 0x9a, 0xcf, 0xd7, 0xdc, 0x27, 0x1b, 0x39, 0xd5}: "UefiCorebootModulePkgTokenSpaceGuid", efi.GUID{0xa0, 0x70, 0x79, 0x35, 0x5d, 0xff, 0x36, 0x4c, 0xaf, 0x68, 0x0a, 0x29, 0xa4, 0x6f, 0xf2, 0xd5}: "OemAfterMemDxe", efi.GUID{0xa0, 0x70, 0x8f, 0x57, 0x6d, 0x06, 0xed, 0x11, 0xb9, 0x39, 0x02, 0x42, 0xac, 0x12, 0x00, 0x02}: "AmdMemStpSp6Dxe", efi.GUID{0xa0, 0x77, 0x83, 0x84, 0x8d, 0xa7, 0x9d, 0x46, 0xb7, 0x66, 0x87, 0x18, 0x6a, 0xa6, 0x77, 0x0d}: "EpuHwModeDxe", efi.GUID{0xa0, 0x7c, 0x9a, 0x3f, 0x0e, 0xa3, 0xe8, 0x45, 0x9c, 0xbb, 0xb6, 0x28, 0xd5, 0x4a, 0x35, 0x88}: "OemPei", efi.GUID{0xa0, 0x85, 0x34, 0xe5, 0xf3, 0x3b, 0xd2, 0x40, 0x93, 0x4b, 0x3d, 0xb0, 0xff, 0x40, 0x57, 0x37}: "ComputraceBds", efi.GUID{0xa0, 0x85, 0x46, 0x52, 0xa0, 0x89, 0xe3, 0x11, 0x9d, 0x4d, 0xbf, 0xa9, 0xf6, 0xa4, 0x03, 0x08}: "AndroidFastbootPlatformProtocolGuid", efi.GUID{0xa0, 0x8d, 0xf1, 0x1d, 0x8b, 0xa1, 0xdf, 0x11, 0x8c, 0x3a, 0x00, 0x02, 0xa5, 0xd5, 0xc5, 0x1b}: "SataSiI3132", efi.GUID{0xa0, 0x92, 0x8c, 0x47, 0x22, 0x26, 0xb7, 0x42, 0xa6, 0x5d, 0x58, 0x94, 0x16, 0x9e, 0x4d, 0x24}: "ELabel", efi.GUID{0xa0, 0xa2, 0x9a, 0x13, 0x1f, 0x31, 0xcc, 0x42, 0x91, 0x1a, 0x57, 0x9a, 0x24, 0x47, 0xb3, 0x7d}: "XhciDxe", efi.GUID{0xa0, 0xac, 0x1f, 0xe1, 0x10, 0x47, 0x8e, 0x4c, 0xa7, 0xa2, 0x01, 0xba, 0xa2, 0x59, 0x1b, 0x4c}: "FdtClientProtocolGuid", efi.GUID{0xa0, 0xbe, 0x10, 0x60, 0x51, 0xa0, 0x8d, 0x40, 0x9a, 0x6e, 0xb7, 0x44, 0xd4, 0x68, 0xa0, 0x5d}: "WinCapsuleUpdate", efi.GUID{0xa0, 0xbe, 0x3c, 0x79, 0x56, 0xda, 0xf2, 0x47, 0x82, 0x64, 0x24, 0x31, 0x0c, 0xb7, 0x51, 0x96}: "LenovoSystemVariableDxe", efi.GUID{0xa0, 0xbf, 0x3f, 0xce, 0xa2, 0xc4, 0xf6, 0x46, 0xaf, 0x38, 0xfd, 0xd6, 0xbf, 0x40, 0x9b, 0x0a}: "SmmSioHwmIo", efi.GUID{0xa0, 0xc6, 0x2d, 0xb1, 0x22, 0x10, 0xb6, 0x46, 0xb9, 0x95, 0x86, 0x46, 0xad, 0x5e, 0x5e, 0xeb}: "AcpiPcatProtocol", efi.GUID{0xa0, 0xce, 0x30, 0xd5, 0x63, 0xdd, 0xde, 0x11, 0x8a, 0x39, 0x08, 0x00, 0x20, 0x0c, 0x9a, 0x66}: "MemSpd", efi.GUID{0xa0, 0xdc, 0x1a, 0x80, 0x5e, 0x81, 0xa4, 0x46, 0x84, 0xf7, 0x65, 0x7f, 0x53, 0x62, 0x1a, 0x57}: "SectionExtractionDxe", efi.GUID{0xa0, 0xe0, 0x87, 0x8c, 0x90, 0xb3, 0xe3, 0x4b, 0x81, 0x9c, 0x7c, 0x6c, 0x83, 0xca, 0xe4, 0xeb}: "SmmBaseHelper", efi.GUID{0xa0, 0xe7, 0x70, 0x07, 0x3a, 0x9c, 0x9c, 0x49, 0xa3, 0x11, 0x2f, 0x83, 0x85, 0x08, 0x05, 0x56}: "BoardInfoSmm", efi.GUID{0xa0, 0xeb, 0xf2, 0xe1, 0xb9, 0xf7, 0x26, 0x4a, 0x86, 0x20, 0x13, 0x12, 0x21, 0x64, 0x2a, 0x90}: "EfiPciCfgPpiInServiceTableGuid", efi.GUID{0xa0, 0xef, 0x09, 0xb7, 0xa6, 0x47, 0x41, 0x4b, 0xb9, 0x31, 0x12, 0xec, 0xe7, 0xa8, 0xee, 0x56}: "EfiSmmPowerButtonDispatchProtocolGuid", efi.GUID{0xa0, 0xf7, 0x21, 0xad, 0x5b, 0x7f, 0xfe, 0x47, 0x8c, 0xc0, 0x24, 0x1f, 0x31, 0x8c, 0xab, 0xf5}: "AppleLegacyStartup", efi.GUID{0xa0, 0xfc, 0xbb, 0xf0, 0x4e, 0x68, 0xb3, 0x48, 0xba, 0xe2, 0x6c, 0x84, 0xb8, 0x9e, 0x53, 0x39}: "EfiPchExtendedResetProtocolGuid", efi.GUID{0xa0, 0xfd, 0x3a, 0xb2, 0xd3, 0xd1, 0x5a, 0x4f, 0xb0, 0x1f, 0x62, 0xed, 0x16, 0xa9, 0x78, 0x63}: "HpAudioPei", efi.GUID{0xa1, 0x04, 0x57, 0xe1, 0xf5, 0xa2, 0x68, 0x76, 0x28, 0xc0, 0xf8, 0xc8, 0x66, 0x31, 0x70, 0xa6}: "EcFlashDxe", efi.GUID{0xa1, 0x07, 0xe6, 0x2f, 0xd3, 0xb7, 0xd6, 0x41, 0xbe, 0x4a, 0xda, 0x60, 0xbd, 0x1c, 0xaa, 0xac}: "FchSmmDispatcher", efi.GUID{0xa1, 0x0e, 0x7f, 0x69, 0x30, 0xb6, 0x93, 0x4b, 0x9b, 0x08, 0xea, 0xff, 0xc5, 0xd5, 0xfc, 0x45}: "FmpDxe", efi.GUID{0xa1, 0x15, 0x84, 0x89, 0xf1, 0x06, 0x21, 0x4c, 0xb8, 0x3a, 0xc5, 0x55, 0xcf, 0x2f, 0x23, 0x64}: "DellMemoryThrottleProtocol", efi.GUID{0xa1, 0x1b, 0xe3, 0x88, 0x56, 0x18, 0x8b, 0x4b, 0xbb, 0xdf, 0xf8, 0x16, 0xdd, 0x94, 0x0a, 0xef}: "S3Communication", efi.GUID{0xa1, 0x1c, 0x78, 0x00, 0xe3, 0x5d, 0x5f, 0x40, 0xab, 0xb8, 0x37, 0x9c, 0x3c, 0x07, 0x69, 0x84}: "AmiRomLayoutGuid", efi.GUID{0xa1, 0x21, 0x6b, 0x4b, 0x6b, 0xf2, 0x4f, 0x40, 0x86, 0x94, 0xdb, 0x1c, 0x63, 0xa1, 0xd9, 0x2a}: "LenovoAt24Rf08EepromSmm", efi.GUID{0xa1, 0x23, 0x74, 0x55, 0xab, 0x63, 0x6c, 0x40, 0xbe, 0x7e, 0x91, 0xcd, 0xbc, 0x08, 0xc4, 0x57}: "QemuRamfb", efi.GUID{0xa1, 0x24, 0x42, 0x2a, 0x09, 0x26, 0xa7, 0x40, 0x88, 0xe2, 0xa6, 0x8d, 0xc0, 0xf1, 0xd1, 0x80}: "SpiFlashProDxe", efi.GUID{0xa1, 0x25, 0x44, 0xbe, 0xdb, 0x18, 0xef, 0x47, 0x92, 0x73, 0x27, 0x3e, 0x95, 0x00, 0x70, 0x14}: "EfiPlatformTypeNeonCityEpecbProtocol", efi.GUID{0xa1, 0x28, 0x11, 0x2e, 0xec, 0x18, 0x9d, 0x41, 0xa0, 0x58, 0x10, 0x76, 0xe2, 0x43, 0xe3, 0x23}: "HpSioSecuritySmmProtocol", efi.GUID{0xa1, 0x29, 0x7f, 0x59, 0x54, 0xf3, 0xbb, 0x4f, 0xaf, 0xf4, 0xbc, 0xbd, 0xa6, 0xa8, 0x7c, 0x2c}: "LpcFlashPeiLibNull", efi.GUID{0xa1, 0x2a, 0x42, 0x97, 0x5e, 0x85, 0xb2, 0x44, 0xae, 0xfd, 0x90, 0x5e, 0x0c, 0x8f, 0x41, 0x69}: "FjDtSmbiosDxe", efi.GUID{0xa1, 0x2b, 0xdf, 0x6f, 0x52, 0xf9, 0x48, 0x47, 0xbb, 0x6d, 0x31, 0xa7, 0x6d, 0x37, 0x7a, 0x82}: "OdmDebugSmm", efi.GUID{0xa1, 0x2c, 0x2f, 0xee, 0x1d, 0x91, 0xae, 0x44, 0x97, 0xd8, 0xab, 0x31, 0x37, 0x58, 0xb0, 0x25}: "DellMfgDefaultsDxe", efi.GUID{0xa1, 0x31, 0x1b, 0x5b, 0x62, 0x95, 0xd2, 0x11, 0x8e, 0x3f, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b}: "EfiLoadedImageProtocolGuid", efi.GUID{0xa1, 0x34, 0xad, 0xbc, 0xb7, 0xde, 0xfc, 0x4f, 0x90, 0xd8, 0xb0, 0x64, 0x3b, 0xd8, 0x27, 0x1a}: "AmtMacPassThrough", efi.GUID{0xa1, 0x36, 0x8e, 0x21, 0xa4, 0xc2, 0x42, 0x4d, 0x80, 0x24, 0xc9, 0xb8, 0x0e, 0x3d, 0xaf, 0x47}: "FjFvFlashRt", efi.GUID{0xa1, 0x3a, 0xe2, 0xdb, 0x42, 0xa3, 0x97, 0x4b, 0x85, 0xb6, 0xb2, 0x26, 0xf1, 0x61, 0x73, 0x89}: "EfiPayLoadHobBasePpi", efi.GUID{0xa1, 0x3b, 0x96, 0xb7, 0xa8, 0xd5, 0xbd, 0x4a, 0xb5, 0xce, 0x41, 0x94, 0x0b, 0x00, 0x69, 0x01}: "WakeUpInDxe", efi.GUID{0xa1, 0x43, 0xbf, 0x08, 0x5f, 0xcd, 0xe4, 0x44, 0x82, 0x75, 0x7d, 0x3b, 0x79, 0x22, 0x8f, 0xa3}: "Lpit", efi.GUID{0xa1, 0x43, 0xda, 0x37, 0x9a, 0xbb, 0x05, 0x48, 0x9b, 0x92, 0x0b, 0xde, 0x11, 0x19, 0x11, 0x49}: "ACPIRAM", efi.GUID{0xa1, 0x4d, 0xb8, 0x0e, 0x7a, 0x26, 0xb4, 0x40, 0x83, 0x47, 0x1f, 0x48, 0x69, 0x4c, 0x8b, 0x47}: "PeCoffExtraActionLibNull", efi.GUID{0xa1, 0x4f, 0x7f, 0xec, 0x17, 0xb2, 0xfc, 0x42, 0xa7, 0xf7, 0x02, 0x0c, 0x43, 0x05, 0xd5, 0xba}: "EfiSmramNvsHeader", efi.GUID{0xa1, 0x59, 0xc0, 0xa5, 0xe4, 0x94, 0xa7, 0x4a, 0x87, 0xb5, 0xab, 0x15, 0x5c, 0x2b, 0xf0, 0x72}: "EfiCertX509Guid", efi.GUID{0xa1, 0x62, 0xc0, 0x99, 0xdf, 0xa4, 0x99, 0x4e, 0x81, 0x3b, 0xc2, 0x83, 0xe1, 0xef, 0xe7, 0x61}: "SbSocRenoirDxe", efi.GUID{0xa1, 0x65, 0x11, 0x92, 0x72, 0x8d, 0x51, 0x44, 0x9f, 0xf6, 0xea, 0xb5, 0x08, 0xc3, 0x19, 0xab}: "OemSmbios", efi.GUID{0xa1, 0x65, 0xac, 0x92, 0x72, 0x8d, 0x51, 0x44, 0x9f, 0xf6, 0xea, 0xb5, 0x08, 0xc3, 0x19, 0xab}: "OemDxe", efi.GUID{0xa1, 0x6c, 0xe0, 0x99, 0x79, 0x37, 0xb4, 0x48, 0x8d, 0x0a, 0x8a, 0x49, 0x62, 0x30, 0xe1, 0x0f}: "NetworkOfflineLockerSmi", efi.GUID{0xa1, 0x77, 0x20, 0xc2, 0x9b, 0x5f, 0x91, 0x48, 0x9d, 0x1c, 0xde, 0xaa, 0x36, 0x32, 0xe9, 0x21}: "DellUefiBootInfoDxe", efi.GUID{0xa1, 0x79, 0xd2, 0x07, 0xe4, 0x34, 0x68, 0x41, 0x99, 0x3b, 0x17, 0x8b, 0x3a, 0xcc, 0x68, 0xef}: "AodSetupDxe", efi.GUID{0xa1, 0x7a, 0xc1, 0xd1, 0xc5, 0xca, 0x0f, 0x40, 0xbe, 0x17, 0xe2, 0xa2, 0xae, 0x06, 0x67, 0x7c}: "EfiKmsFormatMd4128Guid", efi.GUID{0xa1, 0x7d, 0x90, 0xea, 0x74, 0x4a, 0xb8, 0x80, 0xa6, 0x6e, 0xba, 0xa3, 0x84, 0x22, 0x3e, 0x12}: "DellBiosAttributes", efi.GUID{0xa1, 0x80, 0x2b, 0x4a, 0x73, 0x65, 0x91, 0x46, 0xad, 0x18, 0x56, 0x70, 0x4d, 0xb7, 0x4a, 0x59}: "HpSmbiosDoneSmm", efi.GUID{0xa1, 0x8a, 0x5d, 0x69, 0xee, 0x42, 0x46, 0x4c, 0x80, 0x5c, 0x6e, 0xa6, 0xbc, 0xe7, 0x99, 0xe3}: "EfiPeiVirtualBlockIoPpiGuid", efi.GUID{0xa1, 0x8b, 0xc0, 0x3f, 0xc6, 0xed, 0x5f, 0x4e, 0xbd, 0xc8, 0x0e, 0x46, 0xb6, 0x5c, 0x92, 0xf6}: "SmmGpiDispatch2OnSmmGpiDispatchThunk", efi.GUID{0xa1, 0x95, 0x8e, 0x59, 0x74, 0x96, 0x10, 0x4c, 0x93, 0x42, 0x3f, 0x06, 0x31, 0x70, 0x33, 0xf7}: "SmbiosType13", efi.GUID{0xa1, 0x97, 0x68, 0xa5, 0x7f, 0xa7, 0x00, 0x46, 0x84, 0xdb, 0x22, 0xb0, 0xa8, 0x01, 0xfa, 0x9a}: "SmmRuntime", efi.GUID{0xa1, 0xa7, 0x12, 0x04, 0x50, 0xc0, 0xc2, 0x42, 0x87, 0x7a, 0x77, 0xc3, 0x79, 0xf9, 0xf5, 0xf1}: "FirewireOhciDxe", efi.GUID{0xa1, 0xa8, 0xb9, 0x9f, 0x4a, 0x2f, 0xa6, 0x43, 0x88, 0x9c, 0xd0, 0xf7, 0xb6, 0xc4, 0x7a, 0xd5}: "EfiDhcp6ServiceBindingProtocolGuid", efi.GUID{0xa1, 0xaa, 0xea, 0x04, 0xa1, 0x29, 0xd7, 0x11, 0x88, 0x38, 0x00, 0x50, 0x04, 0x73, 0xd4, 0xeb}: "UsbRtSmm", efi.GUID{0xa1, 0xb0, 0x35, 0x39, 0x82, 0xa1, 0x87, 0x48, 0xbc, 0x56, 0x67, 0x55, 0x28, 0xe7, 0x88, 0x77}: "SetupUtilityApp", efi.GUID{0xa1, 0xb5, 0x25, 0x03, 0x37, 0x09, 0x4f, 0x4a, 0xb8, 0xaf, 0xec, 0x3f, 0x80, 0xee, 0x6b, 0x35}: "SataControllerLite", efi.GUID{0xa1, 0xc1, 0x8a, 0x9b, 0x26, 0xf3, 0x05, 0x49, 0xa4, 0x3d, 0xe1, 0xcc, 0xc6, 0xde, 0x6b, 0xc1}: "KEMrBootCnt", efi.GUID{0xa1, 0xc4, 0x00, 0x73, 0xf2, 0x43, 0x17, 0x40, 0xa5, 0x1b, 0xc8, 0x1a, 0x7f, 0x40, 0x58, 0x5b}: "EfiSmmStandbyButtonDispatch2ProtocolGuid", efi.GUID{0xa1, 0xc7, 0x3e, 0xda, 0xd3, 0xf6, 0x29, 0x41, 0x98, 0xb0, 0x94, 0x94, 0xf8, 0x58, 0x50, 0x06}: "DellLegUsbBusProtocol", efi.GUID{0xa1, 0xc8, 0x98, 0x46, 0x34, 0x49, 0x96, 0x4a, 0xbb, 0x90, 0xf7, 0xa5, 0x50, 0x89, 0xca, 0xfd}: "OemDxe", efi.GUID{0xa1, 0xca, 0x1b, 0xdf, 0x52, 0x91, 0x57, 0x43, 0xa6, 0xb6, 0xe5, 0xfb, 0xcf, 0xbb, 0x6b, 0x81}: "FchSmbusPei", efi.GUID{0xa1, 0xcd, 0xe8, 0x39, 0x35, 0x6a, 0xdd, 0x4c, 0xa9, 0x02, 0xd1, 0xa7, 0x95, 0xf7, 0x03, 0x80}: "AmiResetTypeHob", efi.GUID{0xa1, 0xd0, 0xd0, 0x29, 0x6b, 0x44, 0xf4, 0x4a, 0xae, 0x36, 0x52, 0x60, 0x69, 0xe2, 0xd5, 0x43}: "BBVersionHob", efi.GUID{0xa1, 0xd2, 0xd9, 0xc9, 0x86, 0xe5, 0x2f, 0x4f, 0xbf, 0x6e, 0x99, 0x24, 0x0c, 0x06, 0x9e, 0xb1}: "RealtekWsTbt3Pxe", efi.GUID{0xa1, 0xd4, 0x23, 0xa0, 0xa1, 0x05, 0x97, 0x47, 0xb8, 0x4f, 0x03, 0xb8, 0x54, 0xfd, 0x05, 0xf1}: "EneDXE", efi.GUID{0xa1, 0xd5, 0xcb, 0x6e, 0xf8, 0xc0, 0x02, 0x47, 0x83, 0x01, 0x4f, 0xc2, 0xc5, 0x47, 0x0a, 0x51}: "EfiArmTfCpuDriverEpDescriptor", efi.GUID{0xa1, 0xd6, 0x8d, 0x78, 0xee, 0xf1, 0xba, 0x4b, 0xa9, 0x25, 0xc0, 0xe7, 0xd6, 0x62, 0x71, 0xbd}: "SystemBoardDxe", efi.GUID{0xa1, 0xdb, 0xe7, 0x6d, 0x8a, 0xc2, 0xf7, 0x47, 0xaf, 0x06, 0x18, 0x10, 0xe1, 0x49, 0x5c, 0x56}: "FjJapanFeatureSupport", efi.GUID{0xa1, 0xdf, 0x0a, 0xb1, 0x43, 0x9e, 0x7f, 0x48, 0xaa, 0xf3, 0xa7, 0xa9, 0xbd, 0xea, 0xf4, 0xac}: "ProgressBarFullRightEndcap", efi.GUID{0xa1, 0xe3, 0x95, 0x84, 0xd9, 0x43, 0xe8, 0x11, 0x92, 0x7f, 0xa4, 0xc4, 0x94, 0x3f, 0x0c, 0x96}: "NvdimmInitializer", efi.GUID{0xa1, 0xe7, 0x8e, 0x7b, 0x35, 0x4e, 0x56, 0x45, 0xbb, 0x56, 0x67, 0x97, 0xe2, 0x44, 0x45, 0xc2}: "PeiCpuPlatformPolicyPpi", efi.GUID{0xa1, 0xeb, 0xbf, 0x25, 0xba, 0xa3, 0xe2, 0x4b, 0x92, 0x48, 0x88, 0x63, 0x92, 0xf7, 0xb0, 0x08}: "AmdNbioPciePei", efi.GUID{0xa1, 0xf1, 0x11, 0x6a, 0x8b, 0x31, 0x12, 0x47, 0x89, 0xc9, 0x2d, 0xbf, 0x00, 0x99, 0x5b, 0xe0}: "Cf9Reset", efi.GUID{0xa1, 0xf4, 0xad, 0x03, 0x7a, 0xa2, 0xe3, 0x45, 0xb2, 0x11, 0x31, 0x77, 0xc6, 0xc2, 0xe7, 0xed}: "SmbiosBasic", efi.GUID{0xa1, 0xf6, 0x0d, 0x51, 0xc1, 0xb6, 0x48, 0x49, 0xae, 0xe7, 0x59, 0xf2, 0x20, 0xf8, 0x98, 0xbd}: "SataController", efi.GUID{0xa1, 0xf6, 0xe1, 0xe0, 0x4b, 0x9d, 0xe3, 0x11, 0x83, 0xc4, 0x78, 0xe7, 0xd1, 0xaf, 0x36, 0xd1}: "HpNetworkBiosUpdateDriver", efi.GUID{0xa1, 0xfc, 0x86, 0xb6, 0x62, 0x94, 0x91, 0x4e, 0xa7, 0x04, 0xa6, 0x8c, 0x83, 0x41, 0x00, 0xa4}: "SetupConfigUpdateDxeBlizzard", efi.GUID{0xa1, 0xfc, 0xa3, 0xf3, 0x6f, 0x46, 0x78, 0x49, 0xac, 0x84, 0x2e, 0xa7, 0x0f, 0xae, 0x2b, 0xa2}: "AsfSecureBootSmm", efi.GUID{0xa1, 0xfe, 0xe7, 0x99, 0x6f, 0x9a, 0x68, 0x4d, 0xa7, 0x54, 0x30, 0x79, 0x3b, 0x78, 0xa7, 0x38}: "RasInit", efi.GUID{0xa2, 0x03, 0x93, 0x0b, 0xf6, 0x5b, 0x25, 0x47, 0x84, 0x14, 0x7e, 0xdc, 0xd3, 0x43, 0xd2, 0x7d}: "RZ616_MtkWiFiDex", efi.GUID{0xa2, 0x0d, 0xea, 0x29, 0xa0, 0x84, 0xc1, 0x4f, 0x80, 0xe4, 0x05, 0x31, 0xc7, 0x46, 0x6e, 0xf6}: "DellSupportAssistUi", efi.GUID{0xa2, 0x16, 0x02, 0x95, 0x21, 0xa6, 0x9c, 0x47, 0xa1, 0x3d, 0x29, 0x90, 0x61, 0x7b, 0xdf, 0xe7}: "ReadOnlyVariable2OnReadOnlyVariableThunk", efi.GUID{0xa2, 0x1f, 0x1b, 0x6f, 0x1d, 0x56, 0xc3, 0x47, 0xa2, 0x2d, 0xdb, 0xdc, 0x21, 0x24, 0x6d, 0x8f}: "TrustedChannelSmm", efi.GUID{0xa2, 0x23, 0x16, 0x6c, 0x45, 0x32, 0x42, 0x4f, 0xa8, 0xce, 0xf7, 0x3b, 0x05, 0x4f, 0xaa, 0xfc}: "MpmDxe", efi.GUID{0xa2, 0x24, 0x97, 0x60, 0xfe, 0xdb, 0x3e, 0x4e, 0xa1, 0x29, 0x9e, 0x01, 0xa7, 0x4e, 0x49, 0xbb}: "HpPlatformErrorLoggingDxe", efi.GUID{0xa2, 0x2d, 0x68, 0x1a, 0xe3, 0x3e, 0x93, 0x47, 0x85, 0x21, 0x4d, 0xb8, 0xa6, 0x99, 0x39, 0xfc}: "AmdNbioAlibMDNDxe", efi.GUID{0xa2, 0x2e, 0xb3, 0xeb, 0x82, 0x63, 0xf3, 0x43, 0x95, 0x5a, 0x39, 0x47, 0x5a, 0xe6, 0xe1, 0xab}: "UefiRaidPei", efi.GUID{0xa2, 0x2f, 0x76, 0xb3, 0xd6, 0x54, 0xbc, 0x4e, 0x84, 0xde, 0x4c, 0xfa, 0x93, 0x40, 0xfc, 0xb3}: "AcpiAMLDxe", efi.GUID{0xa2, 0x36, 0x6d, 0xfb, 0x7d, 0xef, 0x74, 0x4b, 0x99, 0xac, 0x80, 0xb3, 0x1f, 0x6b, 0xe9, 0xb1}: "WheaErrorInj", efi.GUID{0xa2, 0x41, 0xbb, 0xf8, 0x5e, 0x48, 0x9d, 0x4b, 0x88, 0xcf, 0x15, 0x1e, 0x62, 0xf8, 0x4d, 0xde}: "DellSmbRunRom", efi.GUID{0xa2, 0x50, 0x2a, 0x53, 0xe6, 0xbc, 0x75, 0x46, 0x80, 0xec, 0x53, 0xee, 0x57, 0xa6, 0x8f, 0xa2}: "FchBixbySmmInit", efi.GUID{0xa2, 0x56, 0x01, 0xf8, 0x2c, 0x1a, 0x35, 0x33, 0x98, 0x2c, 0x06, 0x6c, 0x1f, 0xc3, 0x76, 0x26}: "TbtInfo", efi.GUID{0xa2, 0x58, 0x1d, 0xea, 0x3d, 0xea, 0x14, 0x4c, 0x92, 0x8a, 0x80, 0xa1, 0x45, 0x45, 0xe6, 0x81}: "WheaPlatformBoot", efi.GUID{0xa2, 0x59, 0xd1, 0x14, 0xed, 0x52, 0x5d, 0x46, 0x93, 0x53, 0xf2, 0x39, 0xc5, 0x46, 0x4b, 0xf5}: "DellSmmLomProtocol", efi.GUID{0xa2, 0x5d, 0xb4, 0x16, 0x70, 0x7d, 0xea, 0x4a, 0xa5, 0x8d, 0x76, 0x0e, 0x9e, 0xcb, 0x84, 0x1d}: "FD_Drv_X86", efi.GUID{0xa2, 0x61, 0x1a, 0xbb, 0xb5, 0x6d, 0xd7, 0x4b, 0x8a, 0x98, 0x78, 0x23, 0xc9, 0x2b, 0x0a, 0x2a}: "FvbServicesSmm", efi.GUID{0xa2, 0x66, 0x0e, 0xf8, 0x2c, 0x1a, 0x5b, 0x41, 0x9b, 0x9c, 0x06, 0x6c, 0x1f, 0x04, 0xb6, 0x26}: "TbtDxe", efi.GUID{0xa2, 0x6b, 0xec, 0x80, 0xb4, 0xc4, 0xcc, 0x4a, 0xb8, 0x9c, 0xf6, 0x1d, 0x8b, 0xac, 0xd6, 0x75}: "OCUR", efi.GUID{0xa2, 0x6c, 0x81, 0x75, 0xbd, 0x8f, 0x9b, 0x43, 0xa1, 0x20, 0xc4, 0x7f, 0xf8, 0x6f, 0x0e, 0x29}: "BHInitDxe", efi.GUID{0xa2, 0x6e, 0xf6, 0xe2, 0x13, 0x03, 0x7e, 0x4b, 0xa7, 0x4f, 0x8e, 0x23, 0xa6, 0xfe, 0xb4, 0x49}: "UfsPhyOverrideHobGuid", efi.GUID{0xa2, 0x71, 0x51, 0xc8, 0xbd, 0x9c, 0x74, 0x4e, 0x8c, 0x9b, 0xd3, 0x33, 0x84, 0xa2, 0x36, 0xa3}: "I2cGlkToMde", efi.GUID{0xa2, 0x72, 0x74, 0x2e, 0xbf, 0xd7, 0x5e, 0x4f, 0x8f, 0xe4, 0xbf, 0x19, 0x24, 0x78, 0x56, 0xd0}: "SecCore", efi.GUID{0xa2, 0x7a, 0x53, 0xcb, 0x27, 0xf7, 0x0b, 0x44, 0x97, 0x02, 0xad, 0xe9, 0xd0, 0xa2, 0x93, 0xf1}: "PlatformStage2Pei", efi.GUID{0xa2, 0x7a, 0x83, 0x87, 0xb7, 0xee, 0x4e, 0x43, 0x9e, 0xac, 0x9d, 0x49, 0x63, 0x9e, 0x72, 0xa2}: "OtaShellCommands", efi.GUID{0xa2, 0x81, 0x7d, 0x69, 0x18, 0xcf, 0xc0, 0x4d, 0x9e, 0x0d, 0x06, 0x11, 0x3b, 0x61, 0x8a, 0x3f}: "EfiExtendedSalMpServicesProtocolGuid", efi.GUID{0xa2, 0x8a, 0x74, 0x72, 0x49, 0xb1, 0x14, 0x4d, 0x8f, 0xf1, 0x10, 0xf5, 0x83, 0x6c, 0x89, 0x33}: "AmdSmmDriver", efi.GUID{0xa2, 0x9a, 0x79, 0x11, 0x5d, 0x1c, 0x5b, 0x4e, 0x8a, 0x5d, 0x32, 0xd2, 0x0c, 0x39, 0xb9, 0xd3}: "AfuCapsuleOnDiskPostFlag", efi.GUID{0xa2, 0xa0, 0xcd, 0xa8, 0x37, 0x4f, 0x1b, 0x4a, 0x8e, 0x10, 0x8e, 0xf3, 0xcc, 0x3b, 0xf3, 0xa8}: "EdkiiNonDiscoverableUhciDeviceGuid", efi.GUID{0xa2, 0xa2, 0x55, 0x25, 0x1b, 0x10, 0x75, 0x47, 0xb1, 0x1e, 0x47, 0x67, 0x4f, 0x44, 0x66, 0x28}: "FjPostManagerProtocolAbstractionReference", efi.GUID{0xa2, 0xa2, 0x75, 0x2c, 0x1b, 0x10, 0x75, 0x47, 0xb1, 0x1e, 0x47, 0x67, 0x4e, 0xef, 0x66, 0x28}: "FjPowerButtonAbstractionReference", efi.GUID{0xa2, 0xa9, 0x49, 0xe9, 0x6a, 0x7f, 0xbf, 0x47, 0x9d, 0x5a, 0xa4, 0xa2, 0xb9, 0x82, 0x17, 0x10}: "SmbiosDataUpdateDxeGnrwsPPVCRB", efi.GUID{0xa2, 0xae, 0x76, 0xc7, 0x27, 0xaa, 0x6e, 0x44, 0x97, 0x5b, 0xe0, 0xbe, 0xa9, 0x07, 0x8b, 0xd9}: "BiosGuardPeiApRecoveryCapsule", efi.GUID{0xa2, 0xb0, 0xe0, 0x62, 0x9e, 0x9d, 0x5d, 0x4d, 0x85, 0xb3, 0x4f, 0x50, 0x92, 0x70, 0x2f, 0xd1}: "HpClockBufferPei", efi.GUID{0xa2, 0xbd, 0x49, 0x18, 0x52, 0x69, 0x86, 0x4e, 0xa1, 0xdb, 0x55, 0x9a, 0x3c, 0x47, 0x9d, 0xf1}: "EdkiiFirmwareManagementProgressProtocol", efi.GUID{0xa2, 0xbe, 0x4e, 0x70, 0xe6, 0x5e, 0x98, 0x48, 0x96, 0x59, 0x01, 0x8b, 0x74, 0xb4, 0x47, 0x89}: "EfiSeCOperationProtocolGuid", efi.GUID{0xa2, 0xd3, 0xd1, 0x12, 0xf7, 0x99, 0x0b, 0x42, 0xbc, 0x69, 0x8b, 0xb1, 0xd4, 0x92, 0xa3, 0x55}: "Logoid", efi.GUID{0xa2, 0xd3, 0xd1, 0x3f, 0xf7, 0x99, 0x0b, 0x42, 0xbc, 0x69, 0x8b, 0xb1, 0xd4, 0x92, 0xa3, 0x32}: "Fid", efi.GUID{0xa2, 0xe6, 0xb2, 0xcb, 0xf2, 0xc6, 0x68, 0x4d, 0xa7, 0x5f, 0xae, 0x62, 0x15, 0x65, 0xc7, 0x36}: "FchSmmDiagDispatcher", efi.GUID{0xa2, 0xf0, 0x02, 0x54, 0x18, 0x78, 0x8b, 0x47, 0x87, 0x44, 0x04, 0x8a, 0xae, 0x94, 0xbe, 0x0d}: "DellTpm20Dxe", efi.GUID{0xa2, 0xfd, 0x09, 0x4d, 0x1c, 0xae, 0x47, 0x4d, 0x9c, 0xd1, 0x6b, 0x54, 0x8a, 0x15, 0xca, 0xca}: "EfiPlatformTypeWolfPassProtocol", efi.GUID{0xa3, 0x00, 0x47, 0xf9, 0x9f, 0xf4, 0xd2, 0x4c, 0xbf, 0x25, 0x19, 0xe2, 0x80, 0xb7, 0x2e, 0x3b}: "SystemUsbDatabaseDxe", efi.GUID{0xa3, 0x0b, 0xe9, 0x84, 0x79, 0xcb, 0x67, 0x42, 0xae, 0x2f, 0x43, 0x7b, 0x86, 0xda, 0xa6, 0xf4}: "DellTrustChainingPei", efi.GUID{0xa3, 0x1a, 0xcc, 0x9f, 0xec, 0x8b, 0x5c, 0x48, 0xff, 0xff, 0xff, 0xff, 0x20, 0x68, 0x6c, 0xdb}: "XnoteAcpiNvsDxe", efi.GUID{0xa3, 0x1f, 0xb8, 0x5f, 0x65, 0xbf, 0xad, 0x43, 0xa4, 0x7b, 0xdf, 0x70, 0xc3, 0x11, 0x2b, 0x5a}: "SvSmmHandler", efi.GUID{0xa3, 0x20, 0xdc, 0x00, 0xa2, 0x66, 0x14, 0x4d, 0xbb, 0xd7, 0x5b, 0xa9, 0x38, 0xe5, 0x56, 0xde}: "LenovoSmbios", efi.GUID{0xa3, 0x24, 0x68, 0x22, 0x89, 0x19, 0x6c, 0x4d, 0xbd, 0x17, 0xc8, 0x63, 0x84, 0x5f, 0x7e, 0x99}: "DellSmiCpuDecodeProtocol", efi.GUID{0xa3, 0x26, 0x9a, 0xd1, 0xf1, 0x17, 0xc3, 0x48, 0x8a, 0x1e, 0x11, 0xeb, 0x0a, 0x7f, 0x6e, 0x4e}: "EfiPchRcVariable", efi.GUID{0xa3, 0x28, 0xd0, 0xd0, 0x17, 0x8b, 0x0d, 0x49, 0x9d, 0x86, 0xc3, 0xd0, 0x0f, 0x0d, 0x76, 0x95}: "PrivateWmi", efi.GUID{0xa3, 0x34, 0x37, 0xe5, 0x94, 0xe5, 0x25, 0x4c, 0xb1, 0xa2, 0x08, 0x14, 0x45, 0x65, 0x0f, 0x7f}: "SmmChildDispatcher2", efi.GUID{0xa3, 0x36, 0xb4, 0xaf, 0x6e, 0xce, 0x06, 0x41, 0xbf, 0xa8, 0xec, 0xf7, 0xeb, 0x1b, 0x64, 0x86}: "AsusPTTDxe", efi.GUID{0xa3, 0x3e, 0x3d, 0xb7, 0x99, 0x8c, 0x82, 0x46, 0x88, 0xd5, 0xa0, 0x8e, 0xb6, 0xbf, 0xd5, 0x61}: "IT889XSmm", efi.GUID{0xa3, 0x3e, 0x57, 0x43, 0x6b, 0x8f, 0xca, 0x4b, 0x97, 0x0b, 0xef, 0xfa, 0xb1, 0x5a, 0xc0, 0xe8}: "SanitizationModeSsdt", efi.GUID{0xa3, 0x3e, 0x8e, 0xd9, 0x39, 0x6f, 0xe4, 0x4b, 0x82, 0xce, 0x5a, 0x89, 0x0c, 0xcb, 0x2c, 0x95}: "EfiStatusCodeArchProtocol", efi.GUID{0xa3, 0x4d, 0x93, 0xdf, 0x31, 0xcd, 0xfe, 0x49, 0xaf, 0x50, 0xb3, 0xc8, 0x7c, 0x79, 0x32, 0x5f}: "PlatformDebugLibIoPort", efi.GUID{0xa3, 0x4f, 0xa1, 0xfd, 0xfc, 0xaf, 0x9a, 0x46, 0xb7, 0xbb, 0x34, 0xbc, 0xdd, 0x4a, 0xc0, 0x96}: "PlatformIde", efi.GUID{0xa3, 0x53, 0xa3, 0x1d, 0x00, 0x64, 0x41, 0x42, 0x9a, 0xb0, 0xe3, 0xe6, 0x5c, 0x69, 0x0e, 0xf7}: "IchSmbusArpDisabled", efi.GUID{0xa3, 0x58, 0x36, 0x78, 0x72, 0x41, 0x21, 0x44, 0xa2, 0x99, 0xe0, 0x09, 0x07, 0x9c, 0x0c, 0xb4}: "EfiLegacyBiosPlatformProtocolGuid", efi.GUID{0xa3, 0x5b, 0xeb, 0xec, 0x4d, 0xf4, 0xa3, 0x40, 0xa2, 0x1d, 0x6c, 0xbf, 0x14, 0x7f, 0xa9, 0x2f}: "N19M_GOP", efi.GUID{0xa3, 0x66, 0x6e, 0xcc, 0x2a, 0x47, 0x02, 0x48, 0x9b, 0x97, 0x21, 0x42, 0x0c, 0x02, 0x63, 0x91}: "AmdCpmZeroPowerOddDxe", efi.GUID{0xa3, 0x66, 0x77, 0x37, 0xd6, 0xa6, 0x4b, 0x44, 0xb9, 0x8f, 0x01, 0x26, 0x94, 0xc2, 0x86, 0x53}: "SerialPortTypePei", efi.GUID{0xa3, 0x66, 0x7c, 0x37, 0xe7, 0x8f, 0xe8, 0x4e, 0x85, 0xb8, 0xf1, 0xa2, 0x82, 0x56, 0x9e, 0x3b}: "EfiPlatformIdeInitProtocolGuid", efi.GUID{0xa3, 0x69, 0x32, 0x38, 0x18, 0x47, 0x5a, 0x42, 0xa1, 0x30, 0xb3, 0x5e, 0x80, 0x4b, 0x86, 0x5c}: "PlatformSioGpioInitPei", efi.GUID{0xa3, 0x73, 0x06, 0x3b, 0x97, 0x51, 0x4c, 0x45, 0xba, 0x76, 0xe2, 0xd0, 0xc8, 0xc4, 0x8e, 0xfd}: "GenericElog", efi.GUID{0xa3, 0x77, 0x2b, 0xbd, 0x0f, 0x50, 0xb4, 0x41, 0x93, 0xf9, 0x63, 0x7e, 0xc6, 0xc2, 0x3d, 0xb7}: "SmuV11PeiVMR", efi.GUID{0xa3, 0x82, 0x30, 0x4b, 0xc6, 0x80, 0x7e, 0x4d, 0x9c, 0xd0, 0x58, 0x39, 0x17, 0x26, 0x5d, 0xf1}: "AmiSmbiosNvramGuid", efi.GUID{0xa3, 0xa8, 0xe2, 0x3f, 0x00, 0xc4, 0xf8, 0x48, 0x83, 0x2f, 0x78, 0x81, 0xa3, 0x94, 0xc2, 0x50}: "IohInitDxe", efi.GUID{0xa3, 0xab, 0x9c, 0x5e, 0xb1, 0xf2, 0x7a, 0x49, 0xad, 0xac, 0x24, 0xf5, 0x75, 0xe9, 0xcd, 0xe9}: "TcgDxe", efi.GUID{0xa3, 0xac, 0x0a, 0x88, 0xdc, 0x4a, 0x04, 0x4a, 0x90, 0x79, 0xb7, 0x47, 0x34, 0x08, 0x25, 0xe5}: "EfiPropertiesTableGuid", efi.GUID{0xa3, 0xac, 0xbb, 0x42, 0x61, 0x71, 0x91, 0x48, 0xac, 0x10, 0xc7, 0x5e, 0x2e, 0x4d, 0xf6, 0x14}: "IffsPlatformPolicyProtocol", efi.GUID{0xa3, 0xae, 0x1a, 0x09, 0xa9, 0x09, 0xf6, 0x40, 0x98, 0x64, 0x01, 0x39, 0x38, 0x8a, 0x9f, 0x8c}: "XhciPei", efi.GUID{0xa3, 0xb2, 0x3b, 0x33, 0x20, 0x4f, 0x8b, 0x4c, 0xac, 0x38, 0x06, 0x72, 0xd7, 0x43, 0x15, 0xf8}: "AcpiPlatformPei", efi.GUID{0xa3, 0xb2, 0x3b, 0x33, 0x20, 0x4f, 0xcc, 0x4c, 0xac, 0x38, 0x06, 0x72, 0xd7, 0x41, 0x23, 0x45}: "FastBootPei", efi.GUID{0xa3, 0xb9, 0xf5, 0xce, 0x6d, 0x47, 0x7f, 0x49, 0x9f, 0xdc, 0xe9, 0x81, 0x43, 0xe0, 0x42, 0x2c}: "NVRAM", efi.GUID{0xa3, 0xc0, 0xc2, 0xd2, 0x23, 0x16, 0xf2, 0x4b, 0x9a, 0xda, 0xbc, 0xf8, 0x14, 0x93, 0xff, 0x7c}: "AX88179UsbNetDriver", efi.GUID{0xa3, 0xd3, 0xea, 0x59, 0x20, 0xa9, 0x80, 0x4a, 0x92, 0x98, 0xaa, 0x7b, 0x23, 0x56, 0x47, 0xaf}: "PeiMeConfig", efi.GUID{0xa3, 0xd4, 0xed, 0x3f, 0x12, 0x81, 0x34, 0x45, 0x8d, 0xb2, 0xe8, 0x86, 0xeb, 0x35, 0x07, 0x5e}: "ErrorMessage", efi.GUID{0xa3, 0xea, 0xfe, 0xbc, 0xbc, 0xf3, 0x96, 0x41, 0xb9, 0xa6, 0xae, 0x56, 0x9a, 0x6c, 0x00, 0x33}: "SmuV13Pei", efi.GUID{0xa3, 0xfe, 0x33, 0x3c, 0xd2, 0xea, 0xf1, 0x47, 0x98, 0xb3, 0x4f, 0x10, 0x25, 0x49, 0x66, 0xf5}: "SystemVariableHookProtocol", efi.GUID{0xa4, 0x05, 0xc9, 0x80, 0x0c, 0x1e, 0xf2, 0x47, 0x84, 0x17, 0x97, 0x7f, 0xb5, 0x39, 0xc0, 0x6f}: "PowerButton", efi.GUID{0xa4, 0x17, 0x22, 0xce, 0x65, 0x55, 0xd2, 0x4f, 0x9a, 0xb2, 0x53, 0xe1, 0x8f, 0x9a, 0x50, 0xfd}: "SctMtlGopWorkaroundDxe", efi.GUID{0xa4, 0x1a, 0x45, 0x28, 0xc4, 0xb4, 0xa9, 0x4a, 0xbe, 0x3a, 0x1b, 0xbc, 0xc2, 0xe5, 0x55, 0x3a}: "GptRecovery", efi.GUID{0xa4, 0x1b, 0x30, 0xfd, 0x62, 0x5e, 0x79, 0x46, 0xa0, 0x6f, 0xe0, 0x9a, 0xab, 0xdd, 0x2a, 0x91}: "EfiTdtOperationProtocolGuid", efi.GUID{0xa4, 0x1b, 0x49, 0xf4, 0x72, 0x76, 0x6f, 0x48, 0xb4, 0xd7, 0x99, 0x89, 0x9d, 0x22, 0xda, 0x57}: "AmiPeimHob", efi.GUID{0xa4, 0x2d, 0xb8, 0x8f, 0xbe, 0xc3, 0xa6, 0x42, 0x8a, 0x70, 0x7b, 0x94, 0xd6, 0x09, 0x72, 0xa6}: "DellSbAccessSmm", efi.GUID{0xa4, 0x35, 0x68, 0x1f, 0x5d, 0x4a, 0x02, 0x4b, 0x86, 0xc5, 0xb3, 0xfc, 0x87, 0x84, 0x0e, 0x92}: "AsusOA3Bin", efi.GUID{0xa4, 0x3b, 0x8e, 0x40, 0x10, 0x84, 0x44, 0x4c, 0xa5, 0x1e, 0xdf, 0x8b, 0xdb, 0x36, 0x05, 0x6c}: "HpPlatformSmbiosDxe", efi.GUID{0xa4, 0x45, 0x0a, 0xcd, 0x80, 0x89, 0x63, 0x4a, 0x9a, 0x0d, 0x01, 0x45, 0x49, 0xd2, 0x83, 0xc0}: "FjUsbHubRTS5420", efi.GUID{0xa4, 0x45, 0x7e, 0x82, 0x85, 0xc2, 0x45, 0x4e, 0x8b, 0xc7, 0xcd, 0x8e, 0x58, 0xd9, 0xee, 0x84}: "AmdPspRomArmorSmm", efi.GUID{0xa4, 0x51, 0x82, 0x19, 0x06, 0xde, 0x2a, 0x44, 0xaa, 0xb7, 0xb0, 0xee, 0x1e, 0x6d, 0xb8, 0xff}: "GenericVar", efi.GUID{0xa4, 0x54, 0x7e, 0xf7, 0xed, 0x09, 0x2f, 0x4c, 0xa9, 0x66, 0xbe, 0x1e, 0xdc, 0x72, 0x38, 0x56}: "FjTpmPhysicalPresenceQuerySkip", efi.GUID{0xa4, 0x5a, 0x95, 0x3c, 0xdc, 0x41, 0xd2, 0x4f, 0xb0, 0xe8, 0x27, 0xfb, 0x3c, 0x10, 0xe5, 0xff}: "MiscFunctionPortingProtocol", efi.GUID{0xa4, 0x5d, 0x8f, 0x44, 0xd7, 0x6d, 0xe1, 0x4f, 0x93, 0x07, 0x69, 0x22, 0x41, 0x92, 0x21, 0x5d}: "EfiSectionExtractionProtocolGuid", efi.GUID{0xa4, 0x5e, 0x48, 0x3c, 0x9a, 0x44, 0xce, 0x46, 0xbb, 0x08, 0x2a, 0x33, 0x6e, 0xa9, 0x6b, 0x4e}: "EfiCk505ClockPlatformInfoGuid", efi.GUID{0xa4, 0x5f, 0x49, 0xcd, 0x75, 0x84, 0xcf, 0x4e, 0x92, 0x03, 0x49, 0x3c, 0x9c, 0xd5, 0x40, 0x5d}: "EcDxeRestoreSmm", efi.GUID{0xa4, 0x6b, 0xb1, 0xcc, 0xd5, 0xb0, 0x1a, 0x40, 0xb0, 0x47, 0xe0, 0x91, 0xb1, 0xc6, 0x46, 0x7b}: "LEMDeviceInfoProtocol", efi.GUID{0xa4, 0x6e, 0xb3, 0x6a, 0xf2, 0xcb, 0xdc, 0x48, 0xb6, 0x10, 0x9e, 0xbf, 0x19, 0x3a, 0x5d, 0xef}: "OemDisplayModePei", efi.GUID{0xa4, 0x72, 0x55, 0x8f, 0xf9, 0x6b, 0x27, 0x4a, 0xb8, 0xb8, 0x85, 0x28, 0x2e, 0x0c, 0x9c, 0x14}: "AmiApcbSmm", efi.GUID{0xa4, 0x7b, 0x28, 0x16, 0x9d, 0x5b, 0x98, 0x4d, 0x91, 0x9f, 0x7b, 0x7b, 0x78, 0xcb, 0x2b, 0xe0}: "AmiLoadCsm", efi.GUID{0xa4, 0x80, 0x3a, 0x50, 0xc3, 0x34, 0xb4, 0x47, 0xbb, 0x6e, 0x00, 0xad, 0x1f, 0x36, 0xcf, 0x47}: "AmdLegacyInterrupt", efi.GUID{0xa4, 0x8b, 0x1c, 0xd7, 0xf2, 0x4a, 0x0d, 0x4d, 0xb1, 0xba, 0xf2, 0x40, 0x9f, 0x0c, 0x20, 0xd3}: "UncoreInitPeim", efi.GUID{0xa4, 0x93, 0x49, 0x07, 0xa1, 0x19, 0x0d, 0x4e, 0xb8, 0x92, 0x8f, 0xbc, 0xc6, 0xd7, 0x9f, 0x35}: "SaveMemoryConfig", efi.GUID{0xa4, 0x99, 0x89, 0xb9, 0x6f, 0xe9, 0x5a, 0x47, 0x99, 0xfc, 0x76, 0x21, 0x26, 0xf5, 0x0f, 0x5a}: "SmbiosUpdateData", efi.GUID{0xa4, 0xad, 0xa0, 0x1b, 0x6b, 0x52, 0x11, 0x4f, 0xa9, 0xbd, 0x3f, 0x83, 0xee, 0x17, 0xea, 0x30}: "CopyRight", efi.GUID{0xa4, 0xae, 0x9d, 0xb5, 0xde, 0xfa, 0x3e, 0x41, 0xa5, 0x22, 0x13, 0x63, 0x90, 0x44, 0xac, 0x2d}: "ElinkPei", efi.GUID{0xa4, 0xc3, 0x05, 0x62, 0x49, 0x11, 0x1a, 0x49, 0xa6, 0xd6, 0x1e, 0x72, 0x3b, 0x87, 0x83, 0xb1}: "MainPkgList", efi.GUID{0xa4, 0xc4, 0xa0, 0xc7, 0x5f, 0xb0, 0xc1, 0x41, 0xb1, 0x37, 0xf1, 0x96, 0x86, 0xb3, 0x02, 0xaf}: "SetupConfigUpdateDxeSierra", efi.GUID{0xa4, 0xc6, 0x46, 0x7c, 0x2f, 0x36, 0x64, 0x49, 0xaf, 0x20, 0x93, 0x33, 0xe5, 0x52, 0xdc, 0xc3}: "PciHotPlug", efi.GUID{0xa4, 0xc7, 0x1b, 0xa5, 0xd6, 0x0e, 0xc2, 0x44, 0xb5, 0xfb, 0xb8, 0x6f, 0xde, 0x07, 0x7d, 0xe1}: "AmiSetupNVLockDxe", efi.GUID{0xa4, 0xcd, 0xbb, 0x98, 0xb4, 0x18, 0xd3, 0x46, 0xbd, 0x1f, 0x6a, 0x3a, 0x52, 0xd4, 0x4c, 0xf8}: "SmmAccess2OnSmmAccessThunk", efi.GUID{0xa4, 0xda, 0xc5, 0xde, 0x81, 0x67, 0x20, 0x48, 0x9c, 0x63, 0xa7, 0xb0, 0xe4, 0xf1, 0xdb, 0x31}: "ShellLevel1HiiGuid", efi.GUID{0xa4, 0xda, 0xeb, 0x60, 0x65, 0x15, 0x9a, 0x4d, 0x99, 0xc8, 0x88, 0xdf, 0xa6, 0x55, 0x49, 0xa5}: "DellFlashScreenDxe", efi.GUID{0xa4, 0xde, 0x8d, 0x1b, 0xb2, 0xde, 0x52, 0x41, 0x91, 0xc2, 0xb7, 0x3c, 0xb1, 0x6c, 0xe4, 0x64}: "PeiAtaPolicyPpi", efi.GUID{0xa4, 0xe1, 0x27, 0x37, 0x8c, 0xa2, 0x92, 0x47, 0xa1, 0x02, 0xab, 0xb2, 0x75, 0x2c, 0xf0, 0x45}: "AaeonGpnvDxe", efi.GUID{0xa4, 0xe9, 0x0e, 0xde, 0x7a, 0x3c, 0xf2, 0x44, 0xb7, 0x8b, 0xe3, 0xcc, 0xd6, 0x9c, 0x3a, 0xf7}: "EfiExtendedSalBootServiceProtocolGuid", efi.GUID{0xa4, 0xf3, 0x2d, 0xf1, 0x2e, 0x6a, 0xbd, 0x44, 0xa3, 0xf9, 0x21, 0x35, 0xa0, 0x4e, 0x19, 0xe2}: "AsusEcPeiBiosReady", efi.GUID{0xa5, 0x0b, 0x07, 0x0c, 0x07, 0x3f, 0x9d, 0x4e, 0x88, 0x3f, 0x05, 0x7c, 0x50, 0x5f, 0xe3, 0xb8}: "BiosAuditLogWmiReporter", efi.GUID{0xa5, 0x0d, 0x82, 0xde, 0xcc, 0x69, 0x50, 0x4e, 0xb6, 0xc3, 0xf0, 0x7b, 0x27, 0xb1, 0x0b, 0xc2}: "CNVISetupDxe", efi.GUID{0xa5, 0x15, 0x49, 0xcf, 0x4f, 0xb4, 0x45, 0x4b, 0xa8, 0x41, 0x6c, 0xcd, 0xea, 0x0b, 0x33, 0xd8}: "ApobStxHPei", efi.GUID{0xa5, 0x1a, 0x63, 0x7e, 0xce, 0xaf, 0x7b, 0x43, 0x81, 0xfa, 0xfa, 0x34, 0xea, 0x14, 0xb3, 0xc3}: "ExFatRecovery", efi.GUID{0xa5, 0x2b, 0x39, 0x4d, 0xaa, 0x2b, 0xf9, 0x44, 0x96, 0xc4, 0xda, 0x44, 0x3a, 0x6f, 0x34, 0x83}: "PhMicrocodeCheckPei", efi.GUID{0xa5, 0x33, 0x49, 0x47, 0x6e, 0xe2, 0x22, 0x47, 0x8b, 0xa8, 0x85, 0x1d, 0x01, 0x54, 0x22, 0x8f}: "FjHddErase", efi.GUID{0xa5, 0x34, 0xf6, 0xa8, 0xf1, 0x28, 0x56, 0x44, 0xa9, 0xd5, 0x7e, 0x24, 0xb9, 0x9b, 0xdb, 0x65}: "PcxDecoderDxe", efi.GUID{0xa5, 0x34, 0xf6, 0xa9, 0xf1, 0x29, 0x56, 0x44, 0xa9, 0xd5, 0x6e, 0x24, 0xb8, 0x8b, 0xdb, 0x65}: "BmpDecoderDxe", efi.GUID{0xa5, 0x36, 0x06, 0x18, 0x1b, 0x87, 0x6d, 0x49, 0xb8, 0xf3, 0xe8, 0x3e, 0xf1, 0x96, 0xd1, 0x00}: "menu_top_right", efi.GUID{0xa5, 0x41, 0x02, 0x96, 0xe6, 0x5c, 0xbf, 0x4e, 0xb9, 0xc4, 0xe3, 0x7d, 0x29, 0x4b, 0xeb, 0xa9}: "FspWrapperPeim", efi.GUID{0xa5, 0x48, 0x7d, 0xbf, 0xe7, 0xbd, 0xa4, 0x48, 0xbe, 0xc3, 0x2e, 0x61, 0x60, 0xa4, 0x8a, 0x0d}: "FjGabiFlashCommonGbeRegionCtrlDxe", efi.GUID{0xa5, 0x4e, 0x07, 0xf2, 0xc9, 0xb8, 0xbc, 0x4e, 0x88, 0x1e, 0x30, 0x10, 0x22, 0x60, 0x70, 0x3e}: "ACPI_FACS_MODIFY", efi.GUID{0xa5, 0x50, 0xaf, 0x5d, 0x81, 0xea, 0xe2, 0x4d, 0x8f, 0x9b, 0xca, 0xbd, 0xa9, 0xcf, 0x5c, 0x14}: "SecureBootConfigFormSetGuid", efi.GUID{0xa5, 0x53, 0x7e, 0xe7, 0xb8, 0xa5, 0xdc, 0x45, 0xba, 0xeb, 0x66, 0xc8, 0x6f, 0x1a, 0xc8, 0x11}: "RuntimeAcpiSmm", efi.GUID{0xa5, 0x53, 0xa5, 0x7a, 0x0a, 0xfe, 0x53, 0x44, 0x87, 0x0d, 0x42, 0xa6, 0x55, 0x5d, 0xc2, 0x6c}: "PchInitDxeEbg", efi.GUID{0xa5, 0x56, 0xb8, 0x3f, 0xb0, 0xc8, 0x60, 0x47, 0xb4, 0x9a, 0x2e, 0xdd, 0x4f, 0xa3, 0x5b, 0xfa}: "LenovoIbexPeakGlobalSmiControl", efi.GUID{0xa5, 0x5e, 0x9b, 0xf1, 0xdf, 0x7c, 0xb2, 0x4c, 0x9c, 0x37, 0xf1, 0xbe, 0x08, 0xac, 0x58, 0x8b}: "BroadcomGigabitEthernetDxe", efi.GUID{0xa5, 0x65, 0x15, 0x27, 0x05, 0x6e, 0x48, 0x49, 0xba, 0xe7, 0x39, 0xaf, 0x38, 0x9f, 0xfb, 0x97}: "DMBMPEI", efi.GUID{0xa5, 0x69, 0x32, 0xfc, 0x14, 0x55, 0x79, 0x42, 0x8c, 0x56, 0x5d, 0x23, 0x71, 0x8d, 0x87, 0x9f}: "AsusSampleSmmWrapperPkg", efi.GUID{0xa5, 0x6d, 0xbb, 0x14, 0x47, 0x0c, 0x2c, 0x4f, 0x93, 0x48, 0x8d, 0xc2, 0x72, 0x61, 0x99, 0x98}: "VmwSvgaDxe", efi.GUID{0xa5, 0x74, 0x63, 0xd2, 0x16, 0x77, 0x08, 0x47, 0xad, 0x9f, 0x9c, 0x4f, 0x2c, 0x02, 0x54, 0x7e}: "IchS3Save", efi.GUID{0xa5, 0x7b, 0x6c, 0xfa, 0x80, 0x4e, 0xfb, 0x46, 0x95, 0xb7, 0x35, 0x91, 0xca, 0x0a, 0xd4, 0x1b}: "SmmSioEmi", efi.GUID{0xa5, 0x81, 0xa9, 0x55, 0x71, 0xf3, 0xa3, 0x4b, 0x93, 0xa5, 0x37, 0xfa, 0x0c, 0xa9, 0x50, 0x89}: "SynQuacerGpioPei", efi.GUID{0xa5, 0x82, 0x2e, 0xc9, 0x25, 0xad, 0x00, 0x48, 0x94, 0x22, 0xcb, 0xe8, 0xe7, 0xa3, 0x04, 0x77}: "OemDgpuBoardIDDxe", efi.GUID{0xa5, 0x8b, 0x0b, 0x13, 0x3e, 0xe6, 0xa0, 0x44, 0x85, 0xdb, 0x4d, 0x4e, 0x57, 0x1c, 0x52, 0x6a}: "IioCfgUpdateDxeNeonCityEPECB", efi.GUID{0xa5, 0x9a, 0xc2, 0x86, 0xb0, 0x0d, 0x43, 0x43, 0xbd, 0x52, 0x7a, 0x72, 0x9f, 0x37, 0xc9, 0x6d}: "AmiDigitalSignaturePPIGuid", efi.GUID{0xa5, 0xa5, 0x03, 0xf1, 0x45, 0x93, 0x3f, 0x4c, 0xb4, 0x96, 0xda, 0x14, 0xf4, 0x1b, 0x62, 0x69}: "PlatformStage1", efi.GUID{0xa5, 0xa5, 0x64, 0x19, 0xdf, 0x91, 0x2a, 0x4b, 0xb3, 0xc4, 0x8b, 0x4b, 0xf2, 0x38, 0xd0, 0xbf}: "SystemVirtualKeyboardDxe", efi.GUID{0xa5, 0xab, 0x66, 0x7e, 0x80, 0x57, 0xcb, 0x4a, 0xa5, 0x0f, 0x81, 0x98, 0x98, 0x9c, 0x69, 0xc3}: "FjGabiSettingsDxe", efi.GUID{0xa5, 0xb4, 0xec, 0x0e, 0x9f, 0x7b, 0x07, 0x47, 0x81, 0xd7, 0x9c, 0x04, 0x5e, 0x98, 0xca, 0x95}: "AmiPlatformInfoUncompressedFfsSection", efi.GUID{0xa5, 0xb8, 0x8a, 0x28, 0xcf, 0xf2, 0xce, 0x4f, 0x9c, 0x80, 0x10, 0xa4, 0x36, 0xc7, 0x72, 0x76}: "ChineseDxe", efi.GUID{0xa5, 0xba, 0x93, 0x06, 0xd0, 0x35, 0x60, 0x43, 0x83, 0xf6, 0x1d, 0xf2, 0x6d, 0x3c, 0x53, 0xce}: "SiCpuInitPei", efi.GUID{0xa5, 0xbc, 0x52, 0x31, 0xde, 0xea, 0x3d, 0x43, 0x86, 0x2e, 0xc0, 0x1c, 0xdc, 0x29, 0x1f, 0x44}: "EfiRngProtocolGuid", efi.GUID{0xa5, 0xc4, 0x32, 0xd4, 0x73, 0xd4, 0x67, 0x40, 0x9c, 0xf7, 0x02, 0xce, 0x92, 0xa3, 0xcb, 0xfd}: "FchProm21Dxe", efi.GUID{0xa5, 0xc7, 0x5f, 0xeb, 0x47, 0x37, 0x25, 0x4a, 0x90, 0xdb, 0x63, 0x12, 0x97, 0xa0, 0xa0, 0xaf}: "BoardInfoPeim", efi.GUID{0xa5, 0xd6, 0x78, 0xab, 0x2a, 0x7e, 0xaa, 0x47, 0x9f, 0x32, 0x78, 0x07, 0x93, 0xc0, 0xda, 0xdb}: "RfInventory", efi.GUID{0xa5, 0xda, 0xa9, 0xfb, 0x58, 0xee, 0x01, 0x4e, 0x9e, 0x94, 0x5b, 0x0e, 0xb6, 0x3f, 0x85, 0x1b}: "SpiProtectionDxe", efi.GUID{0xa5, 0xe0, 0x72, 0x08, 0x38, 0x6d, 0x67, 0x45, 0x96, 0x4c, 0x7a, 0x3b, 0x48, 0x05, 0x3a, 0x4f}: "FdmInitDxe", efi.GUID{0xa5, 0xe2, 0x1c, 0x38, 0x03, 0xc6, 0xd2, 0x48, 0x95, 0x15, 0x9b, 0x41, 0x41, 0xf4, 0xfd, 0xe7}: "AbtDebugDriver", efi.GUID{0xa5, 0xe4, 0x6f, 0x1d, 0x70, 0x8e, 0x10, 0x4d, 0x84, 0xcd, 0xb1, 0xd3, 0x32, 0x14, 0xf9, 0xb5}: "HpPopupsSupport", efi.GUID{0xa5, 0xf3, 0x4e, 0x8d, 0x58, 0x89, 0x5d, 0x40, 0x98, 0xc4, 0xed, 0x91, 0xb7, 0x15, 0x83, 0xf5}: "H2OEventLogConfigManagerDxe", efi.GUID{0xa6, 0x04, 0x1c, 0x84, 0xb5, 0xa8, 0xd8, 0x49, 0xb6, 0x5d, 0x86, 0xcd, 0xb3, 0x6d, 0x44, 0x16}: "SmuV11Pei", efi.GUID{0xa6, 0x07, 0x9b, 0x83, 0x4d, 0x05, 0x1c, 0x49, 0x9b, 0x15, 0x3a, 0x39, 0x06, 0x44, 0x99, 0x90}: "ThunderboltSmm", efi.GUID{0xa6, 0x0a, 0x4f, 0xed, 0x2b, 0xb0, 0x39, 0x45, 0xbf, 0x51, 0xc9, 0xe1, 0x14, 0xe0, 0xfe, 0x7f}: "DeviceFwServicePei", efi.GUID{0xa6, 0x0b, 0x64, 0x39, 0xb1, 0x7a, 0x97, 0x4d, 0x9f, 0xe2, 0x1a, 0xb6, 0x09, 0xc1, 0x70, 0xff}: "FjFlexIoPei", efi.GUID{0xa6, 0x0b, 0x7e, 0x63, 0xbb, 0xc5, 0xb7, 0x41, 0xa2, 0x3b, 0x3a, 0x65, 0xcf, 0xc3, 0xe9, 0xdb}: "BatteryState5", efi.GUID{0xa6, 0x12, 0xb4, 0xdd, 0xf3, 0xe3, 0x9e, 0x4e, 0x90, 0xa3, 0x2a, 0x99, 0x12, 0x70, 0x21, 0x9c}: "iFfsDxePolicyInit", efi.GUID{0xa6, 0x13, 0x34, 0x56, 0xd1, 0x9d, 0x7f, 0x4b, 0x9e, 0x7c, 0x55, 0x36, 0xe9, 0x2a, 0xa5, 0x5a}: "UefiDriverAsix", efi.GUID{0xa6, 0x19, 0xbc, 0xa3, 0x72, 0x35, 0xf4, 0x4a, 0xbc, 0xe4, 0xcd, 0x43, 0xa8, 0xd1, 0xf6, 0xaf}: "ASUSITEBS", efi.GUID{0xa6, 0x1d, 0x6f, 0x7b, 0x4f, 0xea, 0x38, 0x49, 0xa7, 0x9f, 0x0c, 0x58, 0xe1, 0x44, 0x2a, 0xa1}: "LenovoPopManagerDxe", efi.GUID{0xa6, 0x25, 0xba, 0xda, 0x31, 0xdf, 0x51, 0x41, 0x81, 0xef, 0x62, 0x77, 0x01, 0xee, 0x4f, 0x26}: "EarlyDevices", efi.GUID{0xa6, 0x33, 0x65, 0x50, 0x26, 0xe6, 0x00, 0x45, 0xb1, 0x4f, 0x17, 0x93, 0x9c, 0x0e, 0x5b, 0x60}: "AcpiSupportDxe", efi.GUID{0xa6, 0x39, 0xd0, 0xea, 0x90, 0x73, 0x1d, 0x41, 0xa9, 0xde, 0xe5, 0x29, 0x4b, 0x25, 0xb8, 0x97}: "ASUSEZFlash", efi.GUID{0xa6, 0x3d, 0xe8, 0x8a, 0x1f, 0x88, 0xa6, 0x4b, 0x99, 0x7d, 0x7b, 0xf1, 0x6e, 0xd5, 0x53, 0xb4}: "OemSmi", efi.GUID{0xa6, 0x3f, 0xb7, 0xb2, 0x24, 0x72, 0xd1, 0x49, 0x82, 0xb5, 0x1d, 0xbb, 0x11, 0x5f, 0x1c, 0x50}: "OdmAudioLib", efi.GUID{0xa6, 0x46, 0x0f, 0xfb, 0x73, 0x40, 0x3d, 0x41, 0x99, 0x1a, 0x81, 0x2a, 0xbe, 0xbc, 0x31, 0x38}: "PlatformStatusCodeHandlerSmm", efi.GUID{0xa6, 0x47, 0xe1, 0x31, 0x9a, 0xd3, 0x47, 0x41, 0x9d, 0xa3, 0xbe, 0xfd, 0x4d, 0x52, 0x32, 0x43}: "SystemCdExpressPei", efi.GUID{0xa6, 0x60, 0x7d, 0xea, 0x50, 0x10, 0xe4, 0x45, 0xbe, 0xdf, 0xbf, 0x17, 0x72, 0x90, 0xd4, 0xb2}: "EfiEmmcBootPartitionProtocolGuid", efi.GUID{0xa6, 0x77, 0x58, 0x75, 0x10, 0x4f, 0x5c, 0x4a, 0x9b, 0x2e, 0x85, 0x21, 0x23, 0xb9, 0x68, 0x2c}: "FlashSmiDxe", efi.GUID{0xa6, 0x8e, 0x6d, 0xf4, 0x67, 0x4a, 0x72, 0x48, 0xb0, 0xd1, 0xd4, 0xfd, 0xea, 0x0b, 0x69, 0x2f}: "LenovoSvpManagerSmm", efi.GUID{0xa6, 0x8e, 0xd7, 0x72, 0xee, 0x4d, 0xe3, 0x11, 0x81, 0x00, 0xf3, 0x84, 0x2a, 0x48, 0xd0, 0xa0}: "Isp1761PeriphDxe", efi.GUID{0xa6, 0x8e, 0xf6, 0xa2, 0xd6, 0x61, 0x84, 0x4b, 0xa9, 0xc3, 0x49, 0x7d, 0x8a, 0x5e, 0x38, 0x04}: "RtcWakeUp", efi.GUID{0xa6, 0x8f, 0x48, 0x15, 0x91, 0x23, 0x9b, 0x4c, 0x6f, 0xb7, 0x6f, 0xe0, 0xe0, 0xf4, 0x10, 0xbc}: "DellPeiPolicyInit", efi.GUID{0xa6, 0x90, 0x08, 0x75, 0xcf, 0x7a, 0x4f, 0x4f, 0x81, 0xbd, 0xb4, 0x00, 0xc2, 0xbe, 0xa9, 0x5a}: "AcpiModeEnable", efi.GUID{0xa6, 0x9b, 0x93, 0x9c, 0xcc, 0x1f, 0xf6, 0x46, 0xb4, 0xe1, 0x10, 0x2d, 0xbe, 0x18, 0x65, 0x67}: "EfiAcpiDisDispatchProtocolGuid", efi.GUID{0xa6, 0x9f, 0x18, 0x75, 0xcf, 0x7b, 0x4f, 0x4f, 0x81, 0xbd, 0xa4, 0xf1, 0xc3, 0xbe, 0xa9, 0x5a}: "CptSwSmi", efi.GUID{0xa6, 0xa7, 0xaa, 0xfe, 0x95, 0xcb, 0x70, 0x46, 0xb4, 0x99, 0x87, 0x7f, 0xa6, 0xca, 0x6b, 0xae}: "MeudFile", efi.GUID{0xa6, 0xa8, 0x45, 0x50, 0x74, 0x7d, 0x37, 0x40, 0xaa, 0xed, 0x14, 0x49, 0xdb, 0xae, 0xbc, 0xcc}: "PciLookupTableDxe", efi.GUID{0xa6, 0xab, 0xdb, 0x42, 0x6a, 0x84, 0xe6, 0x44, 0xbd, 0x76, 0x40, 0x28, 0x04, 0x84, 0xd9, 0x07}: "H19MpmShellInterface", efi.GUID{0xa6, 0xb1, 0xea, 0x49, 0x2f, 0xaf, 0x64, 0x40, 0x9b, 0x29, 0xd9, 0x65, 0x5b, 0x3b, 0x8d, 0xed}: "DellAmtConfigPei", efi.GUID{0xa6, 0xb3, 0x2b, 0xe1, 0xa1, 0x1e, 0x4f, 0x4f, 0xff, 0xff, 0xff, 0xff, 0xbc, 0xe2, 0x90, 0xc5}: "RecoveryPartitionDxe", efi.GUID{0xa6, 0xd8, 0x52, 0xe0, 0x4a, 0x22, 0x32, 0x4c, 0x8d, 0x37, 0x2e, 0x0a, 0xe1, 0x62, 0x36, 0x4d}: "PchSmbusDxe", efi.GUID{0xa6, 0xd9, 0xd8, 0xa7, 0xb0, 0x6a, 0xeb, 0x4a, 0xad, 0x9d, 0x16, 0x3e, 0x59, 0xa7, 0xa3, 0x80}: "SystemDiagnosticSplashScreenApp", efi.GUID{0xa6, 0xe4, 0xe1, 0x2b, 0x05, 0x65, 0xb3, 0x43, 0x9f, 0xfc, 0xa3, 0xc8, 0x33, 0x0e, 0x04, 0x32}: "TcgPei", efi.GUID{0xa6, 0xe4, 0xfd, 0xf7, 0x4c, 0x29, 0x3c, 0x49, 0xb5, 0x0f, 0x97, 0x34, 0x55, 0x3b, 0xb7, 0x57}: "CapsuleX64", efi.GUID{0xa6, 0xef, 0xe1, 0xe7, 0x07, 0x76, 0x78, 0x4a, 0xa7, 0xdd, 0x43, 0xe4, 0xbd, 0x72, 0xc0, 0x99}: "AppPkgTokenSpaceGuid", efi.GUID{0xa6, 0xf4, 0xa6, 0xd8, 0x97, 0x0e, 0x8b, 0x4a, 0xa4, 0x75, 0x39, 0xf1, 0xb2, 0x8b, 0x5a, 0xec}: "Fv2OnFvThunk", efi.GUID{0xa6, 0xfb, 0xd2, 0xd6, 0x60, 0xef, 0x38, 0x4c, 0xa8, 0x3e, 0x67, 0x69, 0x81, 0x4d, 0x23, 0xb0}: "CryptoPei", efi.GUID{0xa6, 0xfe, 0x25, 0x06, 0x5f, 0xf9, 0x8d, 0x49, 0x87, 0x89, 0x3e, 0xa0, 0x53, 0xa0, 0x6d, 0x7e}: "Cf9Reset", efi.GUID{0xa6, 0xfe, 0x34, 0xea, 0xa4, 0xed, 0x3f, 0x4a, 0xbe, 0x0c, 0x9b, 0xe1, 0x85, 0x9d, 0x46, 0x21}: "AmdMemSmbiosV2StxD5Pei", efi.GUID{0xa7, 0x0b, 0xb0, 0x88, 0x61, 0x75, 0xee, 0x43, 0x97, 0x33, 0xe4, 0x1b, 0xda, 0x84, 0x98, 0xe0}: "AmdCpmEcInitPeim", efi.GUID{0xa7, 0x13, 0x00, 0x7f, 0x79, 0xdc, 0x22, 0x4b, 0x80, 0x99, 0x11, 0xf7, 0x5f, 0xdc, 0x82, 0x9d}: "EfiCacheSubClassGuid", efi.GUID{0xa7, 0x19, 0x71, 0xc0, 0xaa, 0x98, 0xce, 0x4d, 0xb3, 0x47, 0x96, 0x08, 0x63, 0x4a, 0xa0, 0x6a}: "DiagnosticsConnection", efi.GUID{0xa7, 0x23, 0xcc, 0xf8, 0x10, 0x0f, 0xaf, 0x45, 0xaa, 0x1c, 0x0d, 0x9d, 0xd8, 0xbb, 0x3c, 0x20}: "DellHttpsBootManager", efi.GUID{0xa7, 0x2f, 0xfd, 0x0a, 0xf2, 0x5e, 0x3b, 0x4b, 0xa6, 0x5e, 0xb6, 0xf2, 0x76, 0xd0, 0x82, 0xa1}: "AdvBootOptionPolicyDxe", efi.GUID{0xa7, 0x38, 0x94, 0x59, 0x92, 0x42, 0x77, 0x49, 0x8c, 0x06, 0xff, 0xc1, 0x6c, 0x44, 0x5e, 0x83}: "AmdApcbZpSmm", efi.GUID{0xa7, 0x3a, 0x7c, 0x9c, 0x32, 0x53, 0x17, 0x49, 0x82, 0xb9, 0x56, 0xa5, 0xf3, 0xe6, 0x2a, 0x07}: "FspReservedMemoryResourceHobGfxGuid", efi.GUID{0xa7, 0x4e, 0x25, 0x85, 0x59, 0x47, 0xc4, 0x4f, 0x82, 0xd4, 0x5e, 0xed, 0x5f, 0xb0, 0xa4, 0xa0}: "DefaultPKFile", efi.GUID{0xa7, 0x51, 0xae, 0xb0, 0x11, 0xe7, 0x1e, 0x4f, 0xba, 0x16, 0x10, 0x12, 0x26, 0x1a, 0x6d, 0x71}: "WifiFmacDriver", efi.GUID{0xa7, 0x5c, 0x6f, 0x0b, 0x53, 0x4f, 0x5a, 0x44, 0xb7, 0x6e, 0x2e, 0x36, 0x5b, 0x80, 0x63, 0x66}: "ArmVirtTokenSpaceGuid", efi.GUID{0xa7, 0x61, 0x3f, 0x76, 0xfd, 0xbc, 0x57, 0x46, 0x87, 0xb2, 0x8d, 0xbc, 0xad, 0x64, 0x25, 0xf9}: "DellOpalHddSecurityDxe", efi.GUID{0xa7, 0x69, 0xfb, 0x84, 0x58, 0xc8, 0x3a, 0x48, 0xbb, 0x90, 0xd3, 0xbc, 0xaf, 0xbc, 0xc6, 0xed}: "DatabaseManagerDxe", efi.GUID{0xa7, 0x6a, 0x9f, 0x12, 0x69, 0xab, 0xb8, 0x4c, 0xae, 0xd1, 0x40, 0x98, 0x50, 0x01, 0x11, 0x5e}: "SerialMuxControl", efi.GUID{0xa7, 0x72, 0xb1, 0x2e, 0xe5, 0x68, 0x80, 0x4a, 0x9f, 0xf9, 0x19, 0xdf, 0x37, 0xa6, 0x93, 0xca}: "DellBfaSmmProtocol", efi.GUID{0xa7, 0x72, 0xbf, 0x17, 0x65, 0xba, 0x37, 0x48, 0x86, 0x6d, 0x97, 0x9b, 0x2f, 0x2c, 0x07, 0x5e}: "RasClvPatrolScrubProtocol", efi.GUID{0xa7, 0x78, 0xa2, 0x8e, 0xb8, 0x90, 0x5f, 0x45, 0xbe, 0x18, 0x23, 0x17, 0x2e, 0xac, 0x60, 0x68}: "HpDigitalSignatureVerificationNotInSmm", efi.GUID{0xa7, 0x78, 0xa2, 0x8e, 0xb8, 0x90, 0x5f, 0x45, 0xbe, 0x18, 0x23, 0x17, 0x2e, 0xac, 0x60, 0x69}: "HpDigitalSignatureVerificationInSmm", efi.GUID{0xa7, 0x85, 0x42, 0xfc, 0xb5, 0xeb, 0xd2, 0x45, 0x85, 0x41, 0xeb, 0xa3, 0x31, 0x8f, 0xc2, 0xc2}: "UsbOcUpdateDxeLightningRidgeEXECB1", efi.GUID{0xa7, 0x90, 0x7d, 0x6e, 0x36, 0x93, 0x1c, 0x46, 0x8a, 0xe9, 0x85, 0x9c, 0x51, 0xa9, 0xa7, 0x16}: "ReadyToBootNotifyDxe", efi.GUID{0xa7, 0x92, 0x3f, 0xcd, 0xe4, 0x9a, 0xf9, 0x42, 0xb2, 0xcc, 0xb4, 0x7a, 0x86, 0x15, 0xb8, 0x5b}: "PcieInitPei", efi.GUID{0xa7, 0x93, 0xaf, 0x7e, 0x26, 0x70, 0xfd, 0x46, 0xb3, 0x59, 0x6a, 0x98, 0xde, 0xe7, 0x08, 0x60}: "AsusCloudRecovery", efi.GUID{0xa7, 0x9b, 0x5c, 0x23, 0xa4, 0x2d, 0xf4, 0x4d, 0x92, 0xdd, 0x55, 0x55, 0xfc, 0x7d, 0xb2, 0xac}: "OemACRecoveryPei", efi.GUID{0xa7, 0x9f, 0xf2, 0x2f, 0x80, 0x5e, 0xd9, 0x4e, 0xb3, 0x80, 0x01, 0x7d, 0x3c, 0x55, 0x4f, 0xf4}: "EfiSmmRscHandlerProtocolGuid", efi.GUID{0xa7, 0xa1, 0x74, 0x8e, 0x76, 0x8a, 0x29, 0x4d, 0x94, 0x41, 0x3c, 0x17, 0x60, 0x18, 0xcb, 0x9f}: "SmbusSmm", efi.GUID{0xa7, 0xa5, 0x35, 0x4d, 0x2e, 0x62, 0x55, 0x49, 0xa5, 0xd2, 0xcd, 0xa8, 0x12, 0x94, 0x0d, 0x74}: "FwBlockService", efi.GUID{0xa7, 0xb4, 0xb4, 0x9f, 0xc0, 0x42, 0xcd, 0x4b, 0x85, 0x40, 0x9b, 0xcc, 0x67, 0x11, 0xf8, 0x3e}: "SystemUsbMassStorageDxe", efi.GUID{0xa7, 0xb7, 0x7d, 0x2e, 0x8e, 0x60, 0x41, 0x40, 0xb4, 0x5f, 0x00, 0x35, 0x9e, 0x07, 0x66, 0xc6}: "FvbServicesSmm", efi.GUID{0xa7, 0xb9, 0xb3, 0xfd, 0x82, 0x1e, 0x77, 0x4c, 0x9c, 0x6c, 0x43, 0x05, 0xc8, 0x51, 0xf2, 0x53}: "ProgClkGenPeim", efi.GUID{0xa7, 0xc2, 0x27, 0x8f, 0xfb, 0xa8, 0x45, 0x46, 0xac, 0xc7, 0xda, 0xf4, 0xc8, 0x0c, 0x4f, 0x95}: "DellODMDxe", efi.GUID{0xa7, 0xc5, 0xad, 0xf0, 0x6a, 0xf8, 0xa5, 0x45, 0x9d, 0x16, 0x37, 0x32, 0x3f, 0xcd, 0x77, 0xee}: "SmcPostMsgHotKey_SMM", efi.GUID{0xa7, 0xc8, 0x97, 0x71, 0x59, 0x65, 0x93, 0x4c, 0x93, 0xd5, 0x8a, 0x84, 0xf9, 0x88, 0x79, 0x8b}: "PlatformBootManagerProtocol", efi.GUID{0xa7, 0xc9, 0x74, 0xa9, 0x65, 0xf7, 0x11, 0x44, 0x91, 0x91, 0x41, 0xd3, 0x6d, 0x51, 0x39, 0xb9}: "AmiSerialUart0", efi.GUID{0xa7, 0xcc, 0x6b, 0xb2, 0x44, 0xd0, 0xe1, 0x49, 0xb1, 0xb5, 0xe2, 0xa9, 0x6b, 0xb7, 0xc2, 0x25}: "MitigationDxe", efi.GUID{0xa7, 0xd0, 0xaa, 0x8f, 0xb4, 0x02, 0x2f, 0x43, 0x8f, 0x5c, 0xb8, 0x80, 0x96, 0x5d, 0x8b, 0x41}: "SmmCommunicationBufferDxe", efi.GUID{0xa7, 0xd7, 0x9b, 0xaa, 0xfb, 0xca, 0x99, 0x44, 0xa4, 0xa9, 0x0b, 0x34, 0x6b, 0x40, 0xa6, 0x22}: "SmmRegisterInfo", efi.GUID{0xa7, 0xdb, 0xb3, 0x52, 0x65, 0x95, 0xe8, 0x48, 0x8e, 0x13, 0xec, 0x71, 0x96, 0x72, 0x1b, 0x3c}: "PlatformInfoPei", efi.GUID{0xa7, 0xdf, 0x24, 0xd1, 0x84, 0xd7, 0x4e, 0xc6, 0x81, 0x06, 0x29, 0x41, 0x1a, 0x7f, 0x59, 0xdb}: "MnpDxe", efi.GUID{0xa7, 0xe2, 0x1b, 0x33, 0x90, 0xbd, 0x81, 0x4a, 0xa1, 0x28, 0x36, 0xb0, 0xb2, 0x05, 0x79, 0x97}: "EfiPlatformTypeBuchananPassProtocol", efi.GUID{0xa7, 0xe6, 0xab, 0xfc, 0x53, 0x79, 0x84, 0x4a, 0xb7, 0xec, 0xd2, 0x9e, 0x89, 0xb6, 0x2e, 0x87}: "EmbeddedMonotonicCounter", efi.GUID{0xa7, 0xe8, 0x92, 0xb0, 0x70, 0x5b, 0xbc, 0x4a, 0x94, 0x4f, 0x6a, 0x63, 0x19, 0x5b, 0x0d, 0xa7}: "HpRpsuDetectSmm", efi.GUID{0xa7, 0xf1, 0xcd, 0xe4, 0x59, 0x76, 0x1b, 0x49, 0x90, 0x79, 0xb9, 0x61, 0xe0, 0xe4, 0x86, 0xfb}: "AmdPspPsbDisablePei", efi.GUID{0xa7, 0xf3, 0x9c, 0x39, 0xc7, 0x82, 0x9b, 0x4d, 0x91, 0x23, 0xdb, 0x11, 0x84, 0x29, 0x86, 0xd3}: "DpcDxe", efi.GUID{0xa7, 0xf8, 0x8a, 0x75, 0x04, 0x2a, 0x37, 0x49, 0x99, 0xe0, 0x83, 0x7d, 0x1f, 0x97, 0xc7, 0x6f}: "LenovoSystemAcpiNumaDxe", efi.GUID{0xa8, 0x00, 0xb4, 0x43, 0x80, 0x99, 0x71, 0x48, 0x8d, 0x8e, 0x9d, 0xa7, 0xcb, 0xd2, 0x46, 0xde}: "OemAmt", efi.GUID{0xa8, 0x03, 0xda, 0x18, 0xe4, 0xfa, 0x0a, 0x41, 0xa8, 0xc2, 0x34, 0xc9, 0x19, 0x13, 0xf5, 0x15}: "AmdPspIntrusionDetectionSmm", efi.GUID{0xa8, 0x06, 0x2c, 0x6f, 0xb4, 0xd4, 0x93, 0x4a, 0x9f, 0x78, 0x2b, 0x48, 0x0b, 0xe8, 0x0e, 0x0f}: "EfiSmiFlashProtocolGuid", efi.GUID{0xa8, 0x06, 0x8f, 0xcd, 0x0a, 0xc3, 0x83, 0x4a, 0x8c, 0x56, 0x45, 0xd4, 0x32, 0xa4, 0xbd, 0xeb}: "CbsBasePeiSHP", efi.GUID{0xa8, 0x11, 0x31, 0xc1, 0xc9, 0x6b, 0xe5, 0x11, 0x87, 0x97, 0x00, 0x1a, 0xca, 0x00, 0xbf, 0xc4}: "BlueFieldDxe", efi.GUID{0xa8, 0x15, 0x6c, 0xe8, 0x17, 0x4d, 0x6e, 0x4e, 0xac, 0x7c, 0x90, 0x90, 0x5b, 0xa5, 0xeb, 0xe3}: "TransparentUnlockDXE", efi.GUID{0xa8, 0x1c, 0x4e, 0x86, 0xeb, 0x85, 0x63, 0x4d, 0x9d, 0xcc, 0x6e, 0x0f, 0xc9, 0x0f, 0xfd, 0x55}: "SioBusDxe", efi.GUID{0xa8, 0x2c, 0xeb, 0xe4, 0x2c, 0xff, 0xa4, 0x4e, 0xa6, 0xfb, 0x3e, 0xa5, 0x6e, 0x71, 0x19, 0x96}: "WakeOnLanInit", efi.GUID{0xa8, 0x2d, 0x73, 0xa7, 0xaa, 0x11, 0x66, 0x43, 0x97, 0x15, 0xcd, 0x92, 0xcf, 0xb7, 0xd3, 0x62}: "SataController", efi.GUID{0xa8, 0x30, 0x6b, 0xb2, 0x72, 0x21, 0x46, 0x4a, 0x9b, 0x4f, 0x4d, 0x5b, 0x08, 0xdd, 0x6e, 0x40}: "T23OwnerStringService", efi.GUID{0xa8, 0x35, 0x1f, 0xe2, 0xff, 0x42, 0x50, 0x40, 0x82, 0xd6, 0x93, 0xf7, 0xcd, 0xfa, 0x70, 0x73}: "PiSmmCommunicationSmm", efi.GUID{0xa8, 0x35, 0xf4, 0x57, 0x37, 0x1c, 0x34, 0x48, 0xad, 0x61, 0xb0, 0x3d, 0x94, 0xdd, 0xce, 0xf3}: "DellPasswordMgrDxe", efi.GUID{0xa8, 0x38, 0xff, 0x14, 0xba, 0xac, 0x28, 0x42, 0xa7, 0xd7, 0xa7, 0x32, 0x60, 0xc7, 0x55, 0x9b}: "PiSmmStatusCodeOnFrameworkSmmStatusCodeThunk", efi.GUID{0xa8, 0x3e, 0x61, 0x4e, 0x1c, 0xc0, 0xa7, 0x4b, 0xba, 0x09, 0x38, 0xbd, 0x86, 0x81, 0x5f, 0x85}: "FjPasswordServiceSmm", efi.GUID{0xa8, 0x52, 0x6b, 0x71, 0x30, 0x82, 0x30, 0x44, 0xbb, 0xc1, 0x56, 0xb6, 0xec, 0x89, 0x64, 0xa0}: "PdaSmm", efi.GUID{0xa8, 0x5d, 0x73, 0xfa, 0xbd, 0xec, 0x48, 0x44, 0x81, 0x54, 0x91, 0xe7, 0x71, 0x20, 0xd4, 0x27}: "FjPowerButtonState", efi.GUID{0xa8, 0x5d, 0xc9, 0x2f, 0xed, 0x6d, 0x19, 0x4e, 0xba, 0x0f, 0xa2, 0x53, 0x03, 0x2e, 0x14, 0x4a}: "DellHotSosSmm", efi.GUID{0xa8, 0x67, 0xce, 0x91, 0xaa, 0xe0, 0x12, 0x40, 0xb9, 0x9f, 0xb6, 0xfc, 0xf3, 0x04, 0x8e, 0xaa}: "ArmScmiClockProtocol", efi.GUID{0xa8, 0x6b, 0x21, 0xbe, 0xc4, 0x38, 0x35, 0x45, 0xa6, 0xca, 0x5d, 0xca, 0x5b, 0x43, 0xad, 0xdf}: "SmiVariable", efi.GUID{0xa8, 0x73, 0x2a, 0xd8, 0xb5, 0x7c, 0xc1, 0x4b, 0x8f, 0xa5, 0x60, 0xf0, 0xee, 0x24, 0x70, 0xa7}: "BiosUpdatePlatformPolicySmm", efi.GUID{0xa8, 0x7d, 0xe0, 0x72, 0xa9, 0x63, 0xd4, 0x42, 0x83, 0xd5, 0x0b, 0xb5, 0x18, 0x38, 0x44, 0x75}: "EfiLegacyBootMarker", efi.GUID{0xa8, 0x7d, 0xf2, 0x45, 0x9d, 0xdb, 0xe1, 0x48, 0xbf, 0x5e, 0x45, 0x8d, 0xee, 0xd9, 0xde, 0x84}: "PchFlashControllerSmmProtocol", efi.GUID{0xa8, 0x92, 0x5b, 0xf1, 0x4c, 0x6b, 0xa3, 0x4e, 0xa3, 0x80, 0x2f, 0x35, 0x2a, 0xd1, 0x54, 0x17}: "RealTekLanDriver", efi.GUID{0xa8, 0x95, 0x2f, 0x74, 0x4a, 0x71, 0x43, 0x5c, 0x88, 0xba, 0xb3, 0x36, 0x1f, 0x12, 0xee, 0xe6}: "BootRomFlash", efi.GUID{0xa8, 0x96, 0x0c, 0xd2, 0xcf, 0xb9, 0x15, 0x4c, 0x9f, 0xbb, 0x1c, 0x05, 0x55, 0x17, 0xf4, 0x49}: "CxlCedt", efi.GUID{0xa8, 0x96, 0x5d, 0x25, 0x79, 0x15, 0xdf, 0x4a, 0x85, 0x75, 0x56, 0xd4, 0xb0, 0x46, 0x71, 0x17}: "DellTcg2EarlyPlatformPei", efi.GUID{0xa8, 0x97, 0xbf, 0x51, 0x91, 0xd3, 0x3f, 0x47, 0xbd, 0x87, 0x72, 0xe2, 0x12, 0x53, 0xd9, 0xcd}: "GpioV2ProtocolInitSmmPch", efi.GUID{0xa8, 0xa3, 0x05, 0x8d, 0x64, 0x84, 0x30, 0x42, 0x8a, 0x9f, 0xc3, 0xeb, 0x96, 0x82, 0x96, 0xfa}: "FmpDxe", efi.GUID{0xa8, 0xa5, 0x6a, 0x59, 0x89, 0x12, 0x30, 0x4e, 0xb3, 0x11, 0xf7, 0x4e, 0x64, 0xf3, 0x09, 0x91}: "SmmSecureBios", efi.GUID{0xa8, 0xac, 0xa1, 0xa6, 0x99, 0x74, 0x70, 0x43, 0xa3, 0x31, 0x5e, 0x8f, 0x92, 0xec, 0x30, 0xd5}: "OemPeiSetAcLossControl", efi.GUID{0xa8, 0xaf, 0xf1, 0xaf, 0xf5, 0x07, 0xfa, 0x46, 0xa7, 0xab, 0x60, 0xf4, 0xc9, 0x93, 0xb9, 0xbf}: "MpmKvm", efi.GUID{0xa8, 0xb5, 0x77, 0x11, 0xa6, 0x7b, 0x20, 0x4c, 0xa3, 0xb4, 0x7d, 0x65, 0x19, 0xd8, 0x67, 0x0a}: "ECHeartbeatPei", efi.GUID{0xa8, 0xc3, 0x00, 0x86, 0x13, 0x42, 0x6e, 0x45, 0x83, 0x2a, 0xd5, 0x1e, 0x8e, 0x5f, 0x4a, 0xb1}: "AppleHeciDxe", efi.GUID{0xa8, 0xc3, 0x46, 0xe6, 0xe2, 0xc7, 0xc2, 0x4d, 0xa7, 0xf2, 0xe3, 0x2a, 0x27, 0x0b, 0x0b, 0x26}: "LogoThunderbolt", efi.GUID{0xa8, 0xce, 0x7c, 0xa4, 0xf7, 0x5b, 0x6c, 0x4f, 0xa9, 0xce, 0x68, 0xba, 0xa3, 0xe5, 0x4e, 0x57}: "EcrotPdrRwDxe", efi.GUID{0xa8, 0xd1, 0x14, 0xed, 0xcb, 0x9d, 0x0f, 0x4c, 0x91, 0x7c, 0xdb, 0x0b, 0xfb, 0x56, 0xbd, 0x24}: "KEMrCPLDDxe", efi.GUID{0xa8, 0xeb, 0x33, 0x57, 0x2d, 0x49, 0xfa, 0x46, 0xaa, 0x6a, 0x37, 0x97, 0x79, 0xe1, 0x0b, 0x77}: "EfiMpstSupportProtocol", efi.GUID{0xa8, 0xf0, 0x9c, 0xac, 0x51, 0xe5, 0xe2, 0x4b, 0xad, 0x0a, 0xe1, 0xb5, 0x64, 0xee, 0xa2, 0x73}: "AmiCpuInfo_2Protocol", efi.GUID{0xa8, 0xf8, 0x31, 0xcd, 0xa6, 0x28, 0x49, 0x4e, 0x8b, 0x3e, 0x41, 0x42, 0xbd, 0x00, 0x6c, 0x41}: "MeUlvCheckDxe", efi.GUID{0xa8, 0xfc, 0xfa, 0x32, 0x74, 0x03, 0xbd, 0x49, 0xa0, 0x90, 0xb4, 0xb4, 0x60, 0x3a, 0x50, 0xd6}: "PpmInitializePei", efi.GUID{0xa8, 0xfd, 0xa1, 0xb7, 0x3e, 0xcb, 0x69, 0x4e, 0x87, 0xaf, 0xb6, 0x7f, 0xec, 0x56, 0x35, 0x48}: "GnbIoApicUpdate", efi.GUID{0xa9, 0x01, 0xd1, 0x15, 0xc5, 0x60, 0x77, 0x45, 0x96, 0x72, 0xde, 0x91, 0x84, 0x2d, 0x01, 0xd5}: "FjRTS52500S", efi.GUID{0xa9, 0x0d, 0xed, 0x17, 0xc5, 0xea, 0x13, 0x46, 0xbd, 0xe7, 0xc3, 0xa5, 0x06, 0x91, 0x76, 0x76}: "LoadPartialDefault", efi.GUID{0xa9, 0x0e, 0x30, 0xc8, 0x9e, 0x86, 0xdf, 0x42, 0xae, 0xf2, 0x5d, 0x93, 0x94, 0x52, 0xa3, 0x53}: "SetupDefaults", efi.GUID{0xa9, 0x17, 0x5f, 0xbb, 0x57, 0x77, 0xa7, 0x45, 0xba, 0x24, 0x7e, 0xf5, 0x3e, 0xad, 0xe8, 0x4d}: "AmdSocFp11StxhPei", efi.GUID{0xa9, 0x17, 0xe4, 0x35, 0x0b, 0xee, 0xdc, 0x48, 0xa9, 0x48, 0x75, 0xf8, 0xab, 0x93, 0xc9, 0x33}: "RuntimeAcpiPei", efi.GUID{0xa9, 0x24, 0xcf, 0x15, 0xab, 0xf9, 0xd0, 0x46, 0x8d, 0xcf, 0x83, 0x66, 0x4c, 0x63, 0x2f, 0xd8}: "MemDetect", efi.GUID{0xa9, 0x2a, 0x16, 0x70, 0x5e, 0x87, 0xc9, 0x4f, 0x86, 0x08, 0x27, 0xce, 0x6f, 0xa4, 0xf3, 0x3c}: "FjSecureUpdateDxe", efi.GUID{0xa9, 0x33, 0x8f, 0x26, 0xcd, 0xcc, 0xbe, 0x48, 0x88, 0x17, 0x86, 0x05, 0x3a, 0xc3, 0x2e, 0xd6}: "PeiSmmAccessPpiGuid", efi.GUID{0xa9, 0x38, 0x2b, 0x65, 0xf4, 0x77, 0x3f, 0x45, 0x89, 0xd5, 0xe7, 0xbd, 0xc3, 0x52, 0xfc, 0x53}: "PeiUsbHostControllerPpiGuid", efi.GUID{0xa9, 0x3a, 0x11, 0x7d, 0x80, 0x62, 0xc6, 0x48, 0xba, 0xce, 0xdf, 0xe7, 0x66, 0x8e, 0x83, 0x07}: "AmiMpTpmBin", efi.GUID{0xa9, 0x3a, 0x3b, 0x02, 0x8f, 0x09, 0x27, 0x40, 0xb8, 0x3f, 0xb6, 0x40, 0x7d, 0xa0, 0x65, 0x69}: "AmdPspFtpmDxe", efi.GUID{0xa9, 0x3a, 0xe2, 0xdb, 0x45, 0xa3, 0x97, 0x4b, 0x85, 0xb6, 0xb2, 0x26, 0xf1, 0x61, 0x73, 0x89}: "EfiTemporaryRamSupportPpiGuid", efi.GUID{0xa9, 0x43, 0xb8, 0xea, 0x14, 0xd4, 0xbb, 0x41, 0x87, 0xa2, 0x6c, 0x29, 0x52, 0xdf, 0xa2, 0xec}: "GpioCfgPei", efi.GUID{0xa9, 0x45, 0xaf, 0xb5, 0xea, 0xc3, 0xef, 0x41, 0xb6, 0x5c, 0x4e, 0xa9, 0x82, 0xda, 0x9d, 0x49}: "KvmPlatformDxe", efi.GUID{0xa9, 0x4f, 0x64, 0x8f, 0x50, 0xe8, 0xb1, 0x4d, 0x9c, 0xe2, 0x0b, 0x44, 0x69, 0x8e, 0x8d, 0xa4}: "EfiFirmwareVolumeBlock2ProtocolGuid", efi.GUID{0xa9, 0x4f, 0xf1, 0xa8, 0x88, 0xfc, 0xf4, 0x45, 0xa6, 0x22, 0xf0, 0x6e, 0x6c, 0x56, 0xe6, 0x32}: "FirmwareBootMediaInfoPei", efi.GUID{0xa9, 0x54, 0x2f, 0xfe, 0x7d, 0x01, 0xc2, 0x45, 0xa8, 0x2d, 0x98, 0x22, 0xbc, 0xf1, 0x4c, 0xa6}: "FanPolicyDxe", efi.GUID{0xa9, 0x56, 0xc8, 0x24, 0xe7, 0x46, 0x35, 0x46, 0x80, 0x17, 0x0f, 0xdc, 0xca, 0x1f, 0xf9, 0xc9}: "AmdFabricMdnSmm", efi.GUID{0xa9, 0x58, 0x9b, 0xa6, 0x05, 0x6c, 0xc1, 0x4d, 0x85, 0xbf, 0xaf, 0x80, 0xdc, 0xe6, 0xd9, 0x7d}: "EfiTraceHubTokenSpace", efi.GUID{0xa9, 0x5a, 0x20, 0x2a, 0xea, 0xf7, 0xbe, 0x47, 0xb3, 0xbd, 0x76, 0x31, 0xe9, 0x9b, 0x43, 0x51}: "G3WakeupPei", efi.GUID{0xa9, 0x5a, 0xa4, 0x7d, 0xbf, 0x6d, 0x1b, 0x4f, 0xa4, 0x3e, 0x32, 0x87, 0xcb, 0xe5, 0x13, 0x51}: "TpmPkgList", efi.GUID{0xa9, 0x63, 0xab, 0x28, 0xb0, 0x5f, 0x93, 0x4c, 0x9c, 0x44, 0x0d, 0xd8, 0xa1, 0xe9, 0x10, 0x1d}: "AmdNbioAlibRVDxe", efi.GUID{0xa9, 0x65, 0x01, 0x4b, 0xd6, 0x61, 0x23, 0x4e, 0xa0, 0xb5, 0x3e, 0xc7, 0x9c, 0x2e, 0x30, 0xd5}: "DxePchPlatformPolicyProtocolGuid", efi.GUID{0xa9, 0x6d, 0x62, 0xff, 0xee, 0x17, 0x49, 0x49, 0xa8, 0xb8, 0xb1, 0x0f, 0xa0, 0x04, 0x4e, 0x9f}: "EsrtFmpDxe", efi.GUID{0xa9, 0x72, 0x7a, 0x79, 0xe3, 0xea, 0x5e, 0x49, 0x99, 0x5d, 0xa2, 0x0d, 0x85, 0xf5, 0x09, 0xab}: "PreserveHobVariablesToNvram", efi.GUID{0xa9, 0x74, 0x09, 0x2c, 0xa3, 0xe7, 0x45, 0x4c, 0xb8, 0xb7, 0x3a, 0x04, 0x6e, 0x35, 0x0a, 0x50}: "EnhancedMcaErrorLog", efi.GUID{0xa9, 0x7f, 0x34, 0xe2, 0x73, 0xfd, 0x65, 0x41, 0xb1, 0x5c, 0xc4, 0x66, 0x5a, 0x25, 0x9e, 0x53}: "AmtGbeChecksum", efi.GUID{0xa9, 0x82, 0xd0, 0x7f, 0x6b, 0x3d, 0xe3, 0x44, 0x9c, 0x31, 0x74, 0xd6, 0xb8, 0x0f, 0x96, 0x5c}: "SetupConfigUpdateDxeLightningRidgeEXECB1", efi.GUID{0xa9, 0x8c, 0xff, 0xfa, 0x15, 0xe5, 0xed, 0x44, 0xb5, 0xf9, 0xe2, 0xf6, 0xe5, 0xd9, 0x02, 0xe3}: "ServerHotplugDxe", efi.GUID{0xa9, 0x8f, 0x5f, 0x86, 0x72, 0xbd, 0x38, 0x4d, 0xa1, 0xc6, 0x60, 0x41, 0xf4, 0x26, 0xe9, 0x2f}: "DellSbDxe", efi.GUID{0xa9, 0x90, 0xec, 0x83, 0x91, 0xd7, 0x13, 0x46, 0x9c, 0x57, 0x68, 0xc3, 0xde, 0x92, 0x3c, 0x3b}: "MeSmbiosUpdateConfig", efi.GUID{0xa9, 0x91, 0xa1, 0xb2, 0xac, 0x9b, 0x83, 0x4c, 0xa2, 0xf3, 0xd5, 0xf6, 0xe7, 0x1e, 0xfd, 0x03}: "ArmPlatformSysConfigLibNull", efi.GUID{0xa9, 0x92, 0x07, 0xc3, 0xf1, 0x10, 0x0e, 0x4b, 0x9a, 0xf6, 0xc9, 0x5c, 0xd8, 0xb0, 0x27, 0xca}: "FjLanReInitPei", efi.GUID{0xa9, 0x94, 0x4e, 0x7d, 0x9a, 0x26, 0xa1, 0x47, 0x80, 0xf0, 0x2b, 0x0e, 0xb4, 0x2f, 0x7b, 0x4b}: "Int15ServiceSmm", efi.GUID{0xa9, 0x96, 0x5a, 0xf4, 0xdf, 0x35, 0xcb, 0x40, 0xa0, 0xda, 0xc5, 0xf5, 0x51, 0xcd, 0x6b, 0x21}: "SetupMenuSmm", efi.GUID{0xa9, 0x9d, 0x92, 0xbb, 0xf7, 0x68, 0x35, 0x40, 0xb2, 0x2c, 0xa3, 0xbb, 0x3f, 0x23, 0xda, 0x55}: "SataControllerDriverGuid", efi.GUID{0xa9, 0x9e, 0x76, 0xe5, 0x06, 0xe7, 0x4b, 0x45, 0x95, 0x7f, 0xaf, 0xc6, 0xdb, 0x4b, 0x8a, 0x0d}: "QncS3ContextInLockBoxGuid", efi.GUID{0xa9, 0xa1, 0xc7, 0xc4, 0x39, 0xd6, 0x2d, 0x44, 0xb3, 0x58, 0x09, 0xd0, 0x6a, 0xe1, 0x8b, 0xfc}: "DellDaAssetTag", efi.GUID{0xa9, 0xa8, 0xfa, 0xe9, 0xb8, 0x40, 0x6f, 0x4c, 0x8c, 0x62, 0xcb, 0xc4, 0xd5, 0x32, 0x05, 0x5c}: "PcdRecoveryRestoreData", efi.GUID{0xa9, 0xac, 0xae, 0x49, 0xbb, 0x69, 0xb2, 0x4e, 0xb5, 0xf9, 0x1b, 0xf9, 0xe2, 0x50, 0x87, 0x79}: "FchTacomaPei", efi.GUID{0xa9, 0xaf, 0xb5, 0x2b, 0x33, 0xff, 0x7b, 0x41, 0x84, 0x97, 0xcb, 0x77, 0x3c, 0x2b, 0x93, 0xbf}: "CpuPei", efi.GUID{0xa9, 0xbd, 0x5f, 0x35, 0x72, 0x45, 0xbc, 0x49, 0x95, 0xb9, 0x54, 0x5e, 0x71, 0xde, 0xf9, 0xf9}: "FpgaSmm", efi.GUID{0xa9, 0xbf, 0x00, 0x62, 0x29, 0x85, 0xf0, 0x4d, 0xad, 0x67, 0x7d, 0xa8, 0xdf, 0x6b, 0x0a, 0x4a}: "FjSystemIdentifierDxe", efi.GUID{0xa9, 0xcb, 0x5a, 0xd0, 0x18, 0x3e, 0x80, 0x4c, 0xaa, 0x97, 0x02, 0x3a, 0x22, 0xf8, 0xa9, 0x46}: "FjAudioSpeaker", efi.GUID{0xa9, 0xd0, 0xc1, 0xe1, 0xb1, 0x40, 0x32, 0x46, 0xbd, 0xcc, 0xd9, 0xd6, 0xe5, 0x29, 0x56, 0x31}: "EfiPaddingRsaesPkcs1V1P5Guid", efi.GUID{0xa9, 0xd4, 0x77, 0xb1, 0xe3, 0xd6, 0xa3, 0x48, 0x92, 0xf7, 0xb5, 0x48, 0xde, 0x87, 0x9d, 0x94}: "SraDxe", efi.GUID{0xa9, 0xdc, 0x9f, 0x82, 0x17, 0x69, 0x13, 0x47, 0xa3, 0xad, 0xf0, 0x4c, 0xf3, 0xe1, 0xb2, 0x5f}: "S4SlpDelayDxe", efi.GUID{0xa9, 0xdd, 0xbd, 0x25, 0xf5, 0xcc, 0x13, 0x4d, 0x99, 0x54, 0xec, 0x69, 0xd3, 0x0b, 0xab, 0xc4}: "AmdCpmZeroPowerOddPeim", efi.GUID{0xa9, 0xde, 0x99, 0xb1, 0x5c, 0xfd, 0x84, 0x4a, 0x80, 0x82, 0x2f, 0x41, 0x70, 0x78, 0x03, 0x05}: "EarlyPL011BaseAddressGuid", efi.GUID{0xa9, 0xe2, 0x5a, 0x82, 0x84, 0x9c, 0x7e, 0x49, 0x94, 0xe0, 0x09, 0xc2, 0x37, 0x76, 0x59, 0x48}: "ThermalInitDxe", efi.GUID{0xa9, 0xe6, 0x7a, 0x8d, 0x90, 0xb4, 0xe1, 0x45, 0x87, 0x95, 0xc2, 0xbe, 0xaa, 0xdc, 0x38, 0x14}: "RawIp4Rx", efi.GUID{0xa9, 0xf8, 0x22, 0xef, 0x7e, 0x26, 0x40, 0x48, 0xbc, 0x32, 0xf0, 0xcf, 0xdf, 0xdf, 0xa4, 0x26}: "PeiSmmControlPei", efi.GUID{0xa9, 0xf9, 0x8e, 0x03, 0x69, 0x59, 0x93, 0x47, 0x96, 0x4f, 0xff, 0x12, 0xfa, 0x18, 0x39, 0x3e}: "AmdCpmOemInitPeim", efi.GUID{0xaa, 0x00, 0xf2, 0x25, 0xcb, 0xd3, 0x0a, 0x47, 0xbf, 0x51, 0xe7, 0xd1, 0x62, 0xd2, 0x2e, 0x6f}: "ShellDebug1HiiGuid", efi.GUID{0xaa, 0x04, 0xaa, 0x2e, 0xed, 0x5e, 0x27, 0x4c, 0xb9, 0xee, 0x26, 0x91, 0x6e, 0xc2, 0x5a, 0x8f}: "RtkUndiDxeX64_011", efi.GUID{0xaa, 0x05, 0xff, 0xd4, 0x7d, 0x3c, 0x8a, 0x4b, 0xa1, 0xee, 0xaa, 0x5e, 0xfa, 0x0b, 0x17, 0x42}: "TrustedDeviceSetup", efi.GUID{0xaa, 0x0e, 0x7a, 0x71, 0x18, 0x9b, 0x1a, 0x46, 0xb6, 0xec, 0xac, 0x09, 0x79, 0x4c, 0xa6, 0x31}: "LenovoSystemAcpiSupportDxe", efi.GUID{0xaa, 0x1b, 0xad, 0x36, 0x1a, 0x24, 0x16, 0x43, 0x81, 0x1f, 0x22, 0x0c, 0xed, 0xcf, 0x15, 0xea}: "AutoTpm", efi.GUID{0xaa, 0x1d, 0xa3, 0xb8, 0xfd, 0x33, 0xf4, 0x48, 0xb8, 0x4a, 0x4d, 0x39, 0x1f, 0xfa, 0x1f, 0x45}: "EventLogPei", efi.GUID{0xaa, 0x21, 0x28, 0x95, 0xcd, 0xea, 0x5b, 0x46, 0xb4, 0x78, 0x54, 0x29, 0xdf, 0xc9, 0xa7, 0x47}: "OA2", efi.GUID{0xaa, 0x28, 0x0d, 0x12, 0x30, 0x66, 0xf0, 0x46, 0x81, 0x57, 0xc0, 0xad, 0xc2, 0x38, 0x3b, 0xf5}: "AmiLegacyBootProtocolGuid", efi.GUID{0xaa, 0x35, 0xb1, 0xc1, 0xcb, 0x7a, 0xd0, 0x45, 0x80, 0xb7, 0x86, 0x2b, 0x8d, 0x5f, 0x0c, 0xd5}: "AmdFabricRvSmm", efi.GUID{0xaa, 0x3e, 0xd9, 0x23, 0x23, 0x07, 0x59, 0x45, 0xb7, 0x68, 0x5e, 0x22, 0xdf, 0x76, 0x2d, 0xe4}: "LenovoTpmEnablerDxe", efi.GUID{0xaa, 0x4b, 0xf7, 0x08, 0x36, 0xea, 0xd9, 0x41, 0x95, 0x21, 0x21, 0xa7, 0x0f, 0x87, 0x80, 0xbc}: "EfiDiskInfoScsiInterfaceGuid", efi.GUID{0xaa, 0x59, 0x47, 0xbd, 0x04, 0x51, 0xa3, 0x42, 0xbc, 0x64, 0x78, 0x59, 0x20, 0xe8, 0x6c, 0x99}: "FchProm21GpioSmm", efi.GUID{0xaa, 0x5f, 0xfe, 0xbd, 0x35, 0x2a, 0xbb, 0x44, 0xb1, 0x7a, 0x80, 0x84, 0xd4, 0xe2, 0xb9, 0xe9}: "FvbServicesRuntimeDxe", efi.GUID{0xaa, 0x61, 0x72, 0xb9, 0xc1, 0xc9, 0xfb, 0x4e, 0xa2, 0xdb, 0xa4, 0xeb, 0xdb, 0xc4, 0xe1, 0xa4}: "5GNicEFI", efi.GUID{0xaa, 0x62, 0x2e, 0x2d, 0xcf, 0x9e, 0xb7, 0x43, 0x82, 0x19, 0x94, 0xe7, 0xfc, 0x71, 0x3d, 0xfe}: "SystemUsbMouseDxe", efi.GUID{0xaa, 0x6f, 0x90, 0xbb, 0x47, 0x2a, 0x67, 0x5c, 0xdd, 0x9f, 0x68, 0x67, 0xfe, 0x12, 0x5d, 0x4f}: "DGPU_GOP_2", efi.GUID{0xaa, 0x73, 0x63, 0xb7, 0x59, 0x02, 0x6c, 0x41, 0x81, 0x70, 0xde, 0x9a, 0x0b, 0x6f, 0x95, 0x5e}: "BzmDxe", efi.GUID{0xaa, 0x77, 0x41, 0xfe, 0x8b, 0x16, 0x1c, 0x4c, 0xbc, 0x5d, 0x20, 0x5c, 0x93, 0x23, 0x07, 0xcb}: "OemKbLightSupportDxe", efi.GUID{0xaa, 0x81, 0x71, 0x6e, 0x35, 0xa8, 0xbe, 0x47, 0x9c, 0x49, 0x07, 0x43, 0x35, 0x4d, 0x2f, 0x5d}: "RecoveryPcdDataBase", efi.GUID{0xaa, 0x93, 0x27, 0x16, 0xe7, 0x0f, 0x10, 0x40, 0x98, 0x18, 0x45, 0xf5, 0x5c, 0x5c, 0xcc, 0x3e}: "AmdCpmInitDxe", efi.GUID{0xaa, 0x98, 0x01, 0x6f, 0x1d, 0x1f, 0x6d, 0x42, 0xae, 0x3e, 0x39, 0xab, 0x63, 0x3f, 0xcc, 0x28}: "Cf9ResetDxe", efi.GUID{0xaa, 0x98, 0x37, 0x0c, 0x2e, 0xd2, 0xd6, 0x4d, 0x8c, 0xb4, 0x3c, 0x9c, 0xfb, 0x1d, 0x86, 0xd3}: "NCT6126DSmm", efi.GUID{0xaa, 0x9b, 0xdf, 0x6c, 0x34, 0x09, 0xc2, 0x43, 0xa8, 0x5f, 0x28, 0x63, 0x86, 0x09, 0x76, 0x04}: "SystemHddPwdSmm", efi.GUID{0xaa, 0x9f, 0x19, 0x34, 0xfc, 0x81, 0xa2, 0x44, 0x9e, 0x66, 0x56, 0xe2, 0xb1, 0x8a, 0x13, 0x38}: "DashIoCfgPolicy", efi.GUID{0xaa, 0xa2, 0x12, 0x51, 0x75, 0xe1, 0x7e, 0x47, 0xa4, 0xe4, 0xd0, 0xb7, 0xe6, 0x89, 0xba, 0x9f}: "SystemEventLogDxe", efi.GUID{0xaa, 0xa2, 0x62, 0xe8, 0x9a, 0x29, 0x4b, 0x4a, 0xb0, 0x0a, 0xaa, 0x73, 0x50, 0xfd, 0x68, 0x42}: "DellSecurityAuditDisplayDxe", efi.GUID{0xaa, 0xa4, 0xfe, 0xe6, 0x5c, 0x57, 0xfc, 0x48, 0x99, 0xce, 0x17, 0x24, 0xdb, 0xdc, 0x1f, 0xf2}: "ActDxe", efi.GUID{0xaa, 0xaa, 0xc6, 0x8f, 0x61, 0x45, 0x15, 0x48, 0x8c, 0xf7, 0xb8, 0x73, 0x12, 0x99, 0x2d, 0xce}: "UserAuthenticationSmm", efi.GUID{0xaa, 0xad, 0xe9, 0xa7, 0xc3, 0x35, 0x6b, 0x4a, 0xa3, 0xb7, 0x6c, 0x38, 0xba, 0xa2, 0x4f, 0x1f}: "BootBlockVisibleUpdateDxe", efi.GUID{0xaa, 0xb2, 0xff, 0x3f, 0x92, 0x46, 0xe8, 0x42, 0x86, 0x5e, 0x7e, 0x11, 0x19, 0x86, 0xfa, 0xbe}: "wifi_2bars", efi.GUID{0xaa, 0xb8, 0x0c, 0x10, 0xfc, 0x7b, 0x2b, 0x4d, 0x90, 0xbe, 0x0a, 0x48, 0xc9, 0xed, 0x53, 0x16}: "BoardMilestoneHookDxe", efi.GUID{0xaa, 0xb9, 0x66, 0x54, 0x2f, 0xee, 0xdb, 0x4f, 0x84, 0xa3, 0xa3, 0x30, 0xbe, 0x13, 0x01, 0xff}: "AmdHstiV2", efi.GUID{0xaa, 0xc2, 0x9d, 0xdf, 0x34, 0x66, 0x84, 0x4f, 0xb6, 0x77, 0x53, 0x2b, 0xcc, 0x6a, 0xa9, 0xab}: "AmdFtpmTcg2Smm", efi.GUID{0xaa, 0xd7, 0xe9, 0x45, 0x85, 0x6d, 0xec, 0x4d, 0x8b, 0x88, 0x8c, 0x4b, 0xe5, 0xa1, 0xa0, 0x8d}: "NvmeSmmProtocol", efi.GUID{0xaa, 0xdd, 0xc0, 0x9d, 0xbd, 0x56, 0x7a, 0x44, 0x95, 0xcc, 0x51, 0x80, 0x43, 0x31, 0x10, 0xf9}: "menu_top_left", efi.GUID{0xaa, 0xde, 0xd8, 0xf0, 0x95, 0xc4, 0x39, 0x41, 0xb1, 0xfc, 0x78, 0xb7, 0x01, 0x68, 0x26, 0x0a}: "DellDxeDiagLeds", efi.GUID{0xaa, 0xe3, 0xaf, 0x4a, 0xee, 0xde, 0x81, 0x4d, 0x80, 0xf3, 0x82, 0xd2, 0x26, 0xc7, 0x1c, 0x4b}: "PvScsiPassThruDxe", efi.GUID{0xaa, 0xe5, 0x78, 0xb1, 0x76, 0x08, 0x0a, 0x42, 0xb4, 0x0f, 0xe3, 0x9b, 0x4e, 0x6e, 0xe0, 0x5b}: "WarmBootPei", efi.GUID{0xaa, 0xee, 0x4a, 0xa1, 0x7b, 0xc0, 0x46, 0x48, 0xbf, 0x54, 0xc4, 0x94, 0x37, 0x83, 0xeb, 0xcd}: "FchSmmDiagDispatcher", efi.GUID{0xaa, 0xf6, 0x9a, 0xfe, 0xf9, 0x17, 0x67, 0x4a, 0xb0, 0x09, 0xe3, 0x75, 0x79, 0x38, 0x5d, 0xe5}: "SiliconDataInitDxe", efi.GUID{0xab, 0x00, 0x33, 0x3a, 0x29, 0xc9, 0x7d, 0x48, 0xab, 0x34, 0x15, 0x9b, 0xc1, 0x35, 0x62, 0xc0}: "PchResetCallbackProtocolGuid", efi.GUID{0xab, 0x00, 0x73, 0xae, 0x4a, 0x0e, 0xf0, 0x43, 0xb0, 0x77, 0x42, 0xb9, 0xdf, 0xc4, 0x60, 0x33}: "FjGpnvSmm", efi.GUID{0xab, 0x07, 0xef, 0xf9, 0xd0, 0xab, 0xe0, 0x4f, 0xab, 0xa7, 0xbb, 0xa2, 0x95, 0x02, 0x47, 0x12}: "DellTagDxe", efi.GUID{0xab, 0x0d, 0x70, 0xc4, 0xb6, 0x41, 0xdf, 0x4f, 0xcc, 0xaa, 0xe3, 0x97, 0x36, 0xff, 0xf2, 0xba}: "I2cPlatformSpecificDxe", efi.GUID{0xab, 0x0f, 0xfe, 0x3d, 0xc7, 0x70, 0x53, 0x4b, 0x98, 0x55, 0x98, 0x5f, 0x14, 0xdb, 0x2d, 0xda}: "RawIp4Tx", efi.GUID{0xab, 0x10, 0x43, 0x04, 0xfd, 0x77, 0x2a, 0x40, 0xaf, 0x1a, 0x87, 0xd4, 0x12, 0x0e, 0x73, 0x29}: "FirmwarePerformanceSmm", efi.GUID{0xab, 0x14, 0xf0, 0xe6, 0x0e, 0xcb, 0x6e, 0x45, 0x8a, 0xf7, 0x72, 0x21, 0xed, 0xb7, 0x02, 0xf7}: "ThinkpadAcpiNvsDataProtocol", efi.GUID{0xab, 0x1b, 0x21, 0x2d, 0x45, 0x08, 0x24, 0x4d, 0x8b, 0xe6, 0xa6, 0xec, 0x7a, 0xb7, 0x65, 0x72}: "AmdCpmOemSmm", efi.GUID{0xab, 0x23, 0x9e, 0x48, 0x46, 0xf1, 0xd2, 0x40, 0x93, 0x1d, 0x90, 0x27, 0x5f, 0x15, 0x1d, 0xf1}: "EzTpmUpdNtcTpmFwUpdDrv", efi.GUID{0xab, 0x2c, 0x20, 0x1d, 0xab, 0xc8, 0x5c, 0x4d, 0x94, 0xf7, 0x3c, 0xfc, 0xc0, 0xd3, 0xd3, 0x35}: "EfiSmmCpuServiceProtocolGuid", efi.GUID{0xab, 0x2d, 0xae, 0x50, 0x4c, 0x3a, 0x77, 0x4f, 0x85, 0xea, 0xfc, 0x42, 0x71, 0xfc, 0x37, 0x6a}: "Ps2WakeupSmm", efi.GUID{0xab, 0x2f, 0x8b, 0xfa, 0x32, 0x00, 0xda, 0x43, 0x91, 0x65, 0x21, 0x3b, 0xea, 0xa2, 0xd9, 0x67}: "StoreRestoreMBR", efi.GUID{0xab, 0x31, 0xa0, 0x18, 0x43, 0xb4, 0x1a, 0x4d, 0xa5, 0xc0, 0x0c, 0x09, 0x26, 0x1e, 0x9f, 0x71}: "EfiDriverBindingProtocolGuid", efi.GUID{0xab, 0x31, 0xa5, 0xd5, 0x0b, 0x30, 0xa1, 0x4a, 0x9b, 0x8a, 0x9c, 0x6c, 0x8f, 0x01, 0x10, 0xf4}: "CrServiceSmm", efi.GUID{0xab, 0x35, 0x58, 0x9c, 0x6d, 0xe8, 0xa9, 0x48, 0x95, 0xd0, 0x37, 0x35, 0xb7, 0x5f, 0x82, 0xf6}: "LnvAMDArmor3", efi.GUID{0xab, 0x36, 0x7d, 0x92, 0x78, 0xc2, 0xc5, 0x4e, 0xb2, 0xf3, 0x8b, 0xaa, 0x4b, 0x8e, 0x1f, 0x34}: "FjGabiSystemDataEventLogAbstraction", efi.GUID{0xab, 0x37, 0xd3, 0xfc, 0xd3, 0xb1, 0xf8, 0x4e, 0x95, 0x7c, 0x80, 0x48, 0x60, 0x6f, 0xf6, 0x70}: "HiiDatabaseDxe", efi.GUID{0xab, 0x4a, 0x7a, 0x1f, 0xab, 0xe6, 0x6c, 0x41, 0x98, 0xb8, 0x31, 0xf6, 0x14, 0xff, 0xf1, 0x98}: "DellSmmComputracePreInit", efi.GUID{0xab, 0x5a, 0x5a, 0x86, 0x5d, 0xb8, 0x4c, 0x47, 0x84, 0x55, 0x65, 0xd1, 0xbe, 0x84, 0x4b, 0xe2}: "EfiSourceLevelDebugPkgTokenSpaceGuid", efi.GUID{0xab, 0x63, 0x69, 0x6d, 0x6d, 0x90, 0x65, 0x4a, 0xa7, 0xca, 0xbd, 0x40, 0xe5, 0xd6, 0xaf, 0x2b}: "Udp4Dxe", efi.GUID{0xab, 0x63, 0x69, 0x6d, 0x6d, 0x90, 0x65, 0x4a, 0xa7, 0xca, 0xbd, 0x40, 0xe5, 0xd6, 0xaf, 0x4d}: "Tcp4Dxe", efi.GUID{0xab, 0x67, 0xb8, 0xec, 0xf4, 0x8d, 0x2d, 0x49, 0x81, 0x50, 0xa7, 0xfd, 0x1b, 0x9b, 0x5a, 0x75}: "AmiSmmFlashProtocolGuid", efi.GUID{0xab, 0x6c, 0xbc, 0x0b, 0x28, 0xf2, 0x20, 0x4f, 0x8c, 0x6a, 0x84, 0x7c, 0xde, 0xe3, 0xff, 0x24}: "OFCDxe", efi.GUID{0xab, 0x75, 0x48, 0xf4, 0xfc, 0xb9, 0x78, 0x45, 0xa2, 0x80, 0xaa, 0x33, 0x5b, 0x49, 0x96, 0x7c}: "CmosSmm", efi.GUID{0xab, 0x80, 0x88, 0x75, 0xa2, 0x4c, 0xaa, 0x4d, 0xa8, 0x3e, 0xd1, 0xf9, 0xad, 0xf2, 0xc2, 0xf1}: "DellSmmSioEmi", efi.GUID{0xab, 0x86, 0x78, 0x71, 0x0a, 0xc4, 0xcf, 0x44, 0x91, 0x14, 0x41, 0x19, 0xe8, 0x4b, 0x0d, 0xc7}: "PciCfgOnPciCfg2Thunk", efi.GUID{0xab, 0x87, 0xcb, 0x19, 0xb9, 0x2c, 0x65, 0x46, 0x83, 0x60, 0xdd, 0xcf, 0x60, 0x54, 0xf7, 0x9d}: "EfiPciHotPlugRequestProtocolGuid", efi.GUID{0xab, 0x8a, 0x7f, 0xa1, 0xf9, 0x42, 0x94, 0x4d, 0x82, 0xcd, 0xa0, 0x99, 0xe1, 0xdd, 0x52, 0xdf}: "BootTimeDxe", efi.GUID{0xab, 0x95, 0x32, 0x01, 0x80, 0x66, 0x41, 0x4c, 0x9c, 0x98, 0xc4, 0x1a, 0xa6, 0xf5, 0x18, 0x8b}: "FlabLoadUadmDxe", efi.GUID{0xab, 0x96, 0x6e, 0x27, 0x01, 0x61, 0x79, 0x49, 0x99, 0x80, 0xe8, 0x5b, 0xfd, 0x69, 0x10, 0x2b}: "Common_AcpiDriverSupport", efi.GUID{0xab, 0x98, 0x94, 0x5d, 0x9e, 0x95, 0x6f, 0x4e, 0x8c, 0x0b, 0x86, 0x91, 0xc0, 0x29, 0xb7, 0x1c}: "OobMsmDxeDriver", efi.GUID{0xab, 0x9e, 0xbb, 0x43, 0x57, 0x7d, 0xef, 0x4d, 0xb0, 0xa2, 0xa3, 0xa9, 0xf9, 0xc6, 0xea, 0xe3}: "LenovoMailBoxDxe", efi.GUID{0xab, 0xad, 0x2f, 0x0f, 0x01, 0xe4, 0xed, 0x63, 0x7e, 0x29, 0x69, 0xf2, 0x15, 0xc6, 0x05, 0x11}: "OemUSBGetSetupData", efi.GUID{0xab, 0xb1, 0x5d, 0xe6, 0x3f, 0xa9, 0x7d, 0x41, 0x9a, 0x46, 0xce, 0x24, 0x19, 0xba, 0x72, 0xc4}: "StaticSkuDataDxeCLX64L", efi.GUID{0xab, 0xbf, 0xfb, 0xfd, 0x61, 0xbc, 0x61, 0x49, 0xb9, 0x17, 0x77, 0x44, 0x56, 0x41, 0x50, 0x7b}: "TseAfterPostInvPwdPrompt", efi.GUID{0xab, 0xc0, 0x1c, 0xe8, 0x85, 0x05, 0x1d, 0x8e, 0x5b, 0xd9, 0x59, 0x70, 0x2f, 0xda, 0x1f, 0xc4}: "OemBoardSmbios", efi.GUID{0xab, 0xc9, 0x98, 0x86, 0x46, 0xdf, 0x3c, 0x4b, 0xb1, 0x19, 0x1d, 0x4c, 0xc1, 0x19, 0x94, 0x97}: "Realtek5243CardReader", efi.GUID{0xab, 0xd0, 0xca, 0xf7, 0xa4, 0xdf, 0xd2, 0x40, 0x8a, 0xfa, 0xb7, 0xa8, 0xbe, 0x01, 0x70, 0x31}: "MsiBoardEC", efi.GUID{0xab, 0xd5, 0x0c, 0xa2, 0xac, 0x83, 0x82, 0x4f, 0xb9, 0xe3, 0x98, 0x7b, 0x8b, 0xaf, 0x9a, 0xfe}: "UsbXhcAcpiTablePatchDxe", efi.GUID{0xab, 0xd7, 0x50, 0x02, 0xde, 0xaa, 0x91, 0x46, 0x89, 0x09, 0x8d, 0xc1, 0x84, 0x82, 0x2d, 0x1d}: "SmbiosTpmDeviceInfo", efi.GUID{0xab, 0xe8, 0x16, 0xa2, 0xa4, 0x19, 0xff, 0x43, 0x86, 0xa3, 0xc5, 0x79, 0x38, 0xf0, 0x3b, 0x06}: "FireWireDevice", efi.GUID{0xab, 0xe9, 0x42, 0x0d, 0xde, 0x5d, 0xac, 0x4c, 0xa4, 0x85, 0x02, 0x15, 0xc2, 0x52, 0x71, 0x7f}: "AmdSmmControl", efi.GUID{0xab, 0xea, 0xfe, 0x88, 0xba, 0xbf, 0xb9, 0x4c, 0x89, 0x07, 0x31, 0xbc, 0x6e, 0x54, 0x6d, 0xbe}: "SXApp", efi.GUID{0xac, 0x05, 0x6f, 0x6e, 0x4b, 0x23, 0x5b, 0x46, 0x94, 0x50, 0xc3, 0x6e, 0x6d, 0x75, 0x66, 0xc5}: "LenovoSystemIsaKbcDxe", efi.GUID{0xac, 0x08, 0xb2, 0x3f, 0x85, 0x21, 0x8c, 0x49, 0xbf, 0x46, 0xdc, 0x23, 0xda, 0x58, 0x7b, 0x55}: "EmuRedfishService", efi.GUID{0xac, 0x08, 0xdc, 0x62, 0x51, 0xa6, 0xe9, 0x4e, 0xaf, 0x81, 0xea, 0xa9, 0x26, 0x1e, 0x97, 0x80}: "S3NvramSave", efi.GUID{0xac, 0x0a, 0x68, 0x89, 0x2b, 0x45, 0x44, 0x4b, 0xae, 0xf7, 0x80, 0x0b, 0x6b, 0xfa, 0xf1, 0x95}: "EfiIchTokenSpace", efi.GUID{0xac, 0x0e, 0xfa, 0xf9, 0xb5, 0xa5, 0xdd, 0x40, 0xbd, 0xfd, 0xf5, 0x40, 0xdf, 0xee, 0x30, 0x7d}: "SbRecoveryDevice", efi.GUID{0xac, 0x14, 0xc9, 0x71, 0x48, 0xec, 0xd5, 0x43, 0xa9, 0xba, 0x64, 0xbf, 0xc6, 0x9c, 0x73, 0xda}: "BiosConnectLoader", efi.GUID{0xac, 0x22, 0x9f, 0x2b, 0xe0, 0x2b, 0x86, 0x48, 0x9d, 0x12, 0x66, 0xb1, 0x35, 0x9f, 0xd0, 0xae}: "DellAmdThunderboltSmm", efi.GUID{0xac, 0x2c, 0xb1, 0x0b, 0xa9, 0xcf, 0x39, 0x48, 0xa4, 0xc2, 0x17, 0x97, 0x24, 0x81, 0x09, 0xd0}: "DellLegacy16Rom", efi.GUID{0xac, 0x36, 0x67, 0xbd, 0x26, 0xb1, 0xea, 0x4f, 0x9d, 0x1d, 0x17, 0x4d, 0x4a, 0x89, 0x9f, 0x22}: "SystemErrorMenuDxe", efi.GUID{0xac, 0x36, 0xf4, 0xb2, 0x27, 0xa1, 0xe8, 0x4e, 0x95, 0x7a, 0x50, 0x48, 0x60, 0x6d, 0xd6, 0x81}: "MarvellNicSerialDriver", efi.GUID{0xac, 0x44, 0x30, 0x2e, 0x9f, 0x87, 0x0f, 0x49, 0x97, 0x60, 0xbb, 0xdf, 0xaf, 0x69, 0x5f, 0x50}: "EfiLegacyBiosGuid", efi.GUID{0xac, 0x52, 0x12, 0x15, 0x7d, 0xf7, 0x44, 0x4c, 0x99, 0x77, 0xa4, 0x8c, 0xbe, 0xec, 0x9c, 0xca}: "SmmHooks", efi.GUID{0xac, 0x57, 0x2d, 0xd8, 0xf9, 0x99, 0x7a, 0x4c, 0xb5, 0x91, 0xbb, 0xcf, 0x8a, 0x0e, 0x7f, 0xbe}: "PchSmbusArpDisabled", efi.GUID{0xac, 0x5a, 0x73, 0xe4, 0x27, 0x9c, 0x3f, 0x49, 0x86, 0xea, 0x9e, 0xff, 0x43, 0xd7, 0xad, 0xcd}: "VirtualKeyboardDxe", efi.GUID{0xac, 0x5b, 0x3b, 0x49, 0x9e, 0xbb, 0xf5, 0x4b, 0x83, 0x79, 0x20, 0xe2, 0xac, 0xa9, 0x85, 0x41}: "EfiSaInfoProtocol", efi.GUID{0xac, 0x5d, 0x40, 0xd6, 0xd7, 0x92, 0xb2, 0x4b, 0xa9, 0xc9, 0xcb, 0x7c, 0x74, 0x90, 0x23, 0xf5}: "BIOSLD", efi.GUID{0xac, 0x65, 0x3a, 0x01, 0x4e, 0xdb, 0x19, 0x41, 0xce, 0xa6, 0x9a, 0x31, 0x98, 0x2c, 0xae, 0x96}: "ABCTDxe", efi.GUID{0xac, 0x65, 0x3a, 0x01, 0x4e, 0xdb, 0x23, 0x31, 0xce, 0xa6, 0x9a, 0x31, 0x98, 0x2c, 0xae, 0x96}: "HddDiagnostic", efi.GUID{0xac, 0x65, 0x3a, 0x01, 0xac, 0xde, 0x23, 0x31, 0xce, 0xa6, 0x9a, 0x31, 0x98, 0x22, 0x3e, 0x96}: "MemTest", efi.GUID{0xac, 0x6a, 0x49, 0x0a, 0x56, 0x8c, 0xa0, 0x4d, 0xa9, 0x60, 0xe4, 0x17, 0x24, 0x7a, 0x61, 0x83}: "BroadcomLomSmm", efi.GUID{0xac, 0x6a, 0xc3, 0xab, 0x31, 0x20, 0x22, 0x44, 0x89, 0x6e, 0x0a, 0x3b, 0x89, 0x9a, 0xd0, 0xb4}: "Microcode", efi.GUID{0xac, 0x6c, 0xc3, 0x25, 0xa6, 0x80, 0x0f, 0x40, 0xb0, 0xb1, 0x8a, 0xef, 0x82, 0x34, 0x18, 0x01}: "OemReadyBoot", efi.GUID{0xac, 0x70, 0xae, 0x1f, 0x03, 0x82, 0xf0, 0x48, 0xb9, 0xef, 0xe8, 0x73, 0xff, 0xec, 0xc1, 0xf2}: "PeiLegacyRegionPpi", efi.GUID{0xac, 0x7e, 0x54, 0x62, 0x78, 0x28, 0x42, 0x43, 0xbb, 0x6e, 0xb6, 0x0f, 0x1e, 0x0d, 0xd3, 0xf1}: "NCT7802YPeiInit", efi.GUID{0xac, 0x81, 0x26, 0x94, 0x3d, 0x4f, 0xac, 0x46, 0x9a, 0xea, 0xd4, 0xf2, 0x5f, 0x21, 0x24, 0x8a}: "FjMeFwUpdateOdm", efi.GUID{0xac, 0x87, 0xe2, 0x8d, 0x60, 0x94, 0x5c, 0x46, 0xb8, 0xfa, 0xf6, 0xe9, 0x86, 0x6a, 0xe5, 0x6d}: "xgbe_atl", efi.GUID{0xac, 0x89, 0x81, 0x85, 0xca, 0x0e, 0x66, 0x46, 0xba, 0xb8, 0x99, 0x72, 0x40, 0x99, 0x53, 0xc8}: "AcRecoverySmm", efi.GUID{0xac, 0x8a, 0x40, 0xc4, 0x1f, 0x28, 0x4a, 0x4c, 0xbe, 0x99, 0x2e, 0x5c, 0x56, 0xbc, 0xc1, 0x6d}: "OdometerInitDxe", efi.GUID{0xac, 0x8b, 0x06, 0xc5, 0xdc, 0xa7, 0xf1, 0x42, 0xae, 0x80, 0xca, 0xa2, 0x4b, 0xb4, 0x90, 0x4b}: "PttPassThruPpiGuid", efi.GUID{0xac, 0x8b, 0x20, 0xf4, 0x29, 0xae, 0x60, 0x4c, 0x9d, 0xc8, 0x9b, 0x33, 0x14, 0x7b, 0x06, 0x2b}: "DefaultSettingsSupportEfiVariable", efi.GUID{0xac, 0x8e, 0xcd, 0xa3, 0xe6, 0xb4, 0x68, 0x4b, 0x96, 0x41, 0x0d, 0x37, 0x63, 0x79, 0x98, 0x90}: "Int15Backlight", efi.GUID{0xac, 0x91, 0xf6, 0xa6, 0xc8, 0x31, 0x44, 0x44, 0x85, 0x4c, 0xe2, 0xc1, 0xa6, 0x95, 0x0f, 0x92}: "DuetBds", efi.GUID{0xac, 0x96, 0x85, 0xa1, 0xc5, 0x1f, 0x8d, 0x47, 0xbf, 0x14, 0x0b, 0x41, 0x58, 0x13, 0xd7, 0x1f}: "Ohci", efi.GUID{0xac, 0x9a, 0x83, 0x05, 0x1d, 0x36, 0xd8, 0x47, 0xb2, 0xba, 0x50, 0xd5, 0xf4, 0xb0, 0x9a, 0xd8}: "AsusRecoveryFailedPei", efi.GUID{0xac, 0xa1, 0xdf, 0xaa, 0x23, 0xe9, 0x73, 0x46, 0xb1, 0xb8, 0x71, 0x4a, 0xd8, 0x49, 0xf7, 0x90}: "SystemFormBrowserSimpleTextViewLayoutDxe", efi.GUID{0xac, 0xb2, 0x29, 0x66, 0x5d, 0x29, 0x66, 0x45, 0x8c, 0xcb, 0xec, 0x41, 0x82, 0x45, 0x3f, 0xe0}: "AmdLegacyInterrupt", efi.GUID{0xac, 0xbd, 0xf9, 0x72, 0xcc, 0x8e, 0xea, 0x4d, 0x8a, 0xb1, 0x5b, 0x59, 0x33, 0x33, 0x14, 0x8f}: "LenovoSecureSuiteApp", efi.GUID{0xac, 0xc0, 0x6e, 0x78, 0xae, 0x65, 0x1b, 0x4d, 0xb1, 0x37, 0x0d, 0x11, 0x0a, 0x48, 0x37, 0x97}: "IScsiCHAPAuthInfoGuid", efi.GUID{0xac, 0xc1, 0x6d, 0x9a, 0xc0, 0x94, 0xb1, 0x43, 0x87, 0x14, 0x4c, 0x70, 0xfd, 0x58, 0xa8, 0x15}: "BaseS3BootScriptLibNull", efi.GUID{0xac, 0xc2, 0x15, 0x31, 0xe1, 0x27, 0xa9, 0x14, 0x53, 0xcd, 0xac, 0x47, 0x34, 0x80, 0x2a, 0xd7}: "AmiPspSetPcdForRecovery", efi.GUID{0xac, 0xc2, 0x45, 0x51, 0xe1, 0x17, 0xa9, 0x44, 0x83, 0xcd, 0xac, 0x87, 0x24, 0x80, 0x5a, 0xd2}: "AmiPspPlatform", efi.GUID{0xac, 0xc4, 0x05, 0x7c, 0xf5, 0x68, 0x26, 0x45, 0xbd, 0x10, 0x7f, 0xab, 0xaf, 0x82, 0x23, 0x69}: "semaInit", efi.GUID{0xac, 0xc6, 0x10, 0x14, 0x4b, 0x9f, 0x5b, 0x49, 0x9c, 0x23, 0x8a, 0x5a, 0xeb, 0x01, 0x65, 0xe9}: "SmmSwDispatch2OnSmmSwDispatchThunk", efi.GUID{0xac, 0xce, 0x63, 0xc4, 0x57, 0xfc, 0x36, 0x4f, 0x88, 0xb7, 0x35, 0x6c, 0x75, 0x0c, 0x3b, 0xca}: "UhciPei", efi.GUID{0xac, 0xce, 0xb0, 0xa7, 0x0a, 0x48, 0x8b, 0x4f, 0xac, 0xe3, 0x76, 0x79, 0xbe, 0x16, 0xea, 0xf9}: "PdHostInterfaceTiPei", efi.GUID{0xac, 0xd0, 0xb8, 0x71, 0xa1, 0xab, 0xb4, 0x46, 0x8d, 0x28, 0x09, 0xc9, 0xfc, 0xa0, 0x15, 0x8d}: "IwlMei", efi.GUID{0xac, 0xd5, 0xa9, 0x09, 0x04, 0x52, 0x14, 0x42, 0x96, 0xe5, 0x94, 0x99, 0x2e, 0x75, 0x2b, 0xcd}: "EfiEventNotificationTypePei", efi.GUID{0xac, 0xd8, 0x73, 0x30, 0xab, 0xef, 0x55, 0x40, 0x9b, 0x37, 0xf6, 0x2c, 0xd9, 0x3a, 0x20, 0x0a}: "IrqAllocatorDxe", efi.GUID{0xac, 0xe1, 0xcf, 0x9c, 0x4c, 0x78, 0x3d, 0x46, 0xb1, 0x45, 0x39, 0x6d, 0x70, 0x14, 0xd5, 0x59}: "VideoInitPeim", efi.GUID{0xac, 0xe4, 0x68, 0x3b, 0xdc, 0x78, 0x98, 0x41, 0xb5, 0xb0, 0x9f, 0x34, 0x1e, 0x50, 0x3b, 0x7d}: "ProjectSMI", efi.GUID{0xac, 0xee, 0xea, 0x2c, 0x11, 0xe9, 0xb4, 0x49, 0xa8, 0x25, 0x83, 0xe7, 0xd9, 0x4b, 0x66, 0x3a}: "AcpiIordt", efi.GUID{0xac, 0xfc, 0x36, 0x26, 0x4e, 0xb5, 0xa5, 0x4a, 0xa7, 0x20, 0x49, 0x88, 0x7c, 0xe2, 0x28, 0xd2}: "ClearCmosPei", efi.GUID{0xac, 0xfe, 0xab, 0xdd, 0x63, 0xef, 0x2c, 0x45, 0x8f, 0x39, 0xed, 0x7f, 0xae, 0xd8, 0x26, 0x5e}: "PpmPlatformPolicyProtocolGuid", efi.GUID{0xad, 0x00, 0x21, 0x70, 0x64, 0x39, 0xcb, 0x49, 0x85, 0x11, 0xe8, 0x62, 0x7b, 0x38, 0x4a, 0xd0}: "RASMiscDriver", efi.GUID{0xad, 0x00, 0x3e, 0x4a, 0x67, 0xb6, 0x54, 0x40, 0x95, 0xb3, 0x2e, 0x8f, 0x30, 0x5b, 0xd6, 0xdd}: "PostMessagePei", efi.GUID{0xad, 0x01, 0x49, 0x25, 0xb7, 0x7d, 0xf8, 0x45, 0x93, 0xc8, 0x93, 0xd5, 0x79, 0x39, 0x8d, 0x9f}: "PeiPciSegmentLibPciCfg2", efi.GUID{0xad, 0x02, 0xf3, 0x21, 0x94, 0x6e, 0x1b, 0x47, 0x84, 0xbc, 0xb1, 0x48, 0x00, 0x40, 0x3a, 0x1d}: "EfiSmmCpuSaveStateProtocolGuid", efi.GUID{0xad, 0x0c, 0xe4, 0x48, 0xd2, 0xa6, 0x56, 0x47, 0x8a, 0xeb, 0x81, 0xf4, 0x68, 0xd4, 0xa8, 0x56}: "Tpm20ShutdownOverrideguid", efi.GUID{0xad, 0x0f, 0xcc, 0x26, 0xb3, 0xbe, 0x8a, 0x47, 0x91, 0xb2, 0x0c, 0x18, 0x8f, 0x72, 0x61, 0x98}: "EfiPeiVirtualBlockIo2PpiGuid", efi.GUID{0xad, 0x28, 0x59, 0x41, 0xd9, 0x31, 0xbf, 0x4c, 0x9e, 0x92, 0x6d, 0x1f, 0x67, 0xec, 0x57, 0x11}: "EfiNgnCfgOut", efi.GUID{0xad, 0x2b, 0x06, 0x04, 0x17, 0x21, 0xdf, 0x46, 0xae, 0xb9, 0x8e, 0x46, 0x8d, 0x83, 0x26, 0xe5}: "OemCheckRtcBattery", efi.GUID{0xad, 0x2e, 0x10, 0xba, 0x08, 0x53, 0x9b, 0x4f, 0x9e, 0x22, 0xc1, 0xce, 0x4d, 0xc4, 0x4f, 0x49}: "RSAKey", efi.GUID{0xad, 0x2e, 0x19, 0xb8, 0x81, 0xcb, 0x12, 0x47, 0xac, 0x86, 0xca, 0x44, 0xd1, 0xb1, 0x92, 0x65}: "DisableUsbSmiMode", efi.GUID{0xad, 0x30, 0xa5, 0xd6, 0xf3, 0x14, 0xdd, 0x45, 0xa0, 0x97, 0xfb, 0x2a, 0x7c, 0x92, 0xb7, 0x26}: "FjSystemResetDxe", efi.GUID{0xad, 0x31, 0x23, 0xef, 0x10, 0x70, 0x6c, 0x43, 0xb9, 0x0e, 0x2c, 0xb3, 0x53, 0x64, 0x04, 0xef}: "SioSetupUtilityDxe", efi.GUID{0xad, 0x31, 0xf8, 0x66, 0xcc, 0xfc, 0x21, 0x42, 0xb1, 0x1c, 0x7f, 0x4f, 0x48, 0x02, 0xb6, 0x90}: "CbsBaseDxeSTX", efi.GUID{0xad, 0x33, 0x42, 0xca, 0x7e, 0x84, 0x5d, 0x4e, 0xad, 0x3f, 0x21, 0xca, 0xbf, 0xe5, 0xe2, 0x3c}: "WinNtOemHookStatusCodeHandlerDxe", efi.GUID{0xad, 0x38, 0x23, 0xfa, 0xdf, 0x80, 0xd0, 0x49, 0x93, 0x96, 0xcf, 0x71, 0x45, 0xd0, 0x3a, 0x76}: "TxtOneTouchOpProtocol", efi.GUID{0xad, 0x3b, 0x35, 0xea, 0xd2, 0x99, 0xe6, 0x4b, 0x9b, 0x28, 0x53, 0xa8, 0xe8, 0x59, 0x69, 0x34}: "Armani_BatteryHealthControlSmm", efi.GUID{0xad, 0x3c, 0xb9, 0x63, 0x6d, 0xeb, 0x18, 0x44, 0x9c, 0x6d, 0x98, 0x70, 0x2f, 0x3d, 0x52, 0x62}: "Win7BootModeFeatureByte", efi.GUID{0xad, 0x3e, 0x24, 0x9b, 0xd0, 0x77, 0x54, 0x43, 0xb7, 0x8f, 0x70, 0xb3, 0x9a, 0xa4, 0x8f, 0x0d}: "SystemVspBcpSmm", efi.GUID{0xad, 0x49, 0xa3, 0x39, 0xfa, 0x0a, 0xe8, 0x54, 0xca, 0x0d, 0x7d, 0x6e, 0xa1, 0xe2, 0x95, 0x67}: "TpmSmm", efi.GUID{0xad, 0x4b, 0x49, 0xcb, 0xff, 0x23, 0x7e, 0x42, 0x86, 0x08, 0xd7, 0xe1, 0x38, 0xd3, 0x36, 0x3b}: "ArmPlatformLibNull", efi.GUID{0xad, 0x54, 0xb9, 0x8d, 0x7a, 0x04, 0x9a, 0x45, 0xac, 0x0f, 0xf3, 0x75, 0x87, 0x79, 0xf6, 0x1a}: "DellMfgModePei", efi.GUID{0xad, 0x54, 0xef, 0x41, 0xca, 0xe2, 0x33, 0x44, 0xfd, 0x27, 0xd9, 0xca, 0xca, 0x62, 0x1e, 0xae}: "AmdNbioIOMMUDxe", efi.GUID{0xad, 0x56, 0xf9, 0xad, 0x8c, 0xe9, 0x4c, 0x48, 0xae, 0x11, 0xb5, 0x1c, 0x7d, 0x33, 0x64, 0x47}: "ConfidentialComputingSecret", efi.GUID{0xad, 0x64, 0xa4, 0x23, 0x83, 0xcb, 0xb8, 0x48, 0x94, 0xab, 0x1a, 0x6f, 0xef, 0xcf, 0xe5, 0x22}: "EfiSioPpiGuid", efi.GUID{0xad, 0x64, 0xc3, 0x5f, 0x63, 0x4d, 0x80, 0x4b, 0xb1, 0x0c, 0x0c, 0x87, 0x80, 0xad, 0xa9, 0x17}: "XhciSmiDispatcher", efi.GUID{0xad, 0x80, 0x12, 0xa3, 0x1e, 0x48, 0xb6, 0x41, 0x95, 0xe8, 0x12, 0x7f, 0x4c, 0x98, 0x47, 0x79}: "TianoCustomDecompressGuid", efi.GUID{0xad, 0x86, 0xbf, 0x95, 0xe0, 0xa1, 0x43, 0x41, 0xb4, 0x87, 0x00, 0x4b, 0x1c, 0x2e, 0x05, 0xfa}: "DxeCmosInit", efi.GUID{0xad, 0x88, 0x7e, 0x6f, 0x34, 0xc6, 0x8a, 0x49, 0x84, 0xaf, 0xca, 0xec, 0x52, 0x6a, 0x3a, 0x51}: "AaeonModuleDxe", efi.GUID{0xad, 0x8a, 0x9d, 0x53, 0xac, 0xc6, 0x6c, 0x42, 0xb6, 0x1f, 0x22, 0x8e, 0x6d, 0x15, 0x01, 0xb6}: "LenovoHpmDxe", efi.GUID{0xad, 0x90, 0x06, 0x7f, 0x25, 0x17, 0x30, 0x49, 0x81, 0x37, 0x94, 0xd0, 0xfc, 0xf5, 0xf6, 0x3a}: "AmdXgbeAndDisplayConfigurePei", efi.GUID{0xad, 0x94, 0x4d, 0x41, 0x8d, 0x99, 0xd2, 0x47, 0xbf, 0xcd, 0x4e, 0x88, 0x22, 0x41, 0xde, 0x32}: "FwCapsuleHdr", efi.GUID{0xad, 0x99, 0x42, 0xb5, 0x21, 0xb5, 0xb8, 0x4b, 0xa3, 0x61, 0x68, 0x92, 0x49, 0xfe, 0x72, 0xb9}: "AodSmm", efi.GUID{0xad, 0xa8, 0x3a, 0xae, 0x81, 0xb5, 0xa0, 0x4a, 0x89, 0x8e, 0x14, 0xef, 0x42, 0xd2, 0x5f, 0x30}: "XnoteSecurityMenuSetup", efi.GUID{0xad, 0xae, 0xc3, 0xeb, 0x13, 0xcc, 0xb0, 0x49, 0xa6, 0x78, 0x5b, 0xed, 0x93, 0x95, 0x69, 0x55}: "BasePlatformHookLibNull", efi.GUID{0xad, 0xb4, 0x42, 0x45, 0xde, 0x29, 0x9b, 0x40, 0xae, 0x4f, 0x93, 0xa8, 0xc2, 0x53, 0x92, 0xe2}: "ClearCmosDxe", efi.GUID{0xad, 0xb7, 0xd4, 0x5d, 0xd5, 0xc8, 0xc0, 0x48, 0xa5, 0x06, 0x7e, 0xd7, 0x91, 0xeb, 0x1a, 0x8d}: "AmdFabricStxhSmm", efi.GUID{0xad, 0xb7, 0xd8, 0x2f, 0xfa, 0xf8, 0x21, 0x40, 0x9f, 0xc0, 0x0a, 0xa5, 0x72, 0x14, 0x7c, 0xdc}: "CpuPei", efi.GUID{0xad, 0xc0, 0x63, 0x88, 0x24, 0x77, 0x4b, 0xc8, 0x88, 0xe5, 0xa3, 0x3b, 0x11, 0x6d, 0x14, 0x85}: "Host", efi.GUID{0xad, 0xc0, 0xe5, 0x5c, 0xeb, 0x34, 0x2b, 0x4b, 0x8e, 0x15, 0xee, 0xae, 0x35, 0x3a, 0xc5, 0x15}: "OemSVN_ID_Smi", efi.GUID{0xad, 0xc1, 0x5d, 0x90, 0x4d, 0xc4, 0x65, 0x49, 0x98, 0xac, 0xb6, 0xb4, 0x44, 0x4b, 0xfd, 0x65}: "UfsPciHcPei", efi.GUID{0xad, 0xc6, 0x10, 0x14, 0x4b, 0x9f, 0x5b, 0x49, 0x9c, 0x23, 0x8a, 0x5a, 0xeb, 0x01, 0x65, 0xe9}: "SmmUsbDispatch2OnSmmUsbDispatchThunk", efi.GUID{0xad, 0xcc, 0x76, 0x98, 0xb4, 0x47, 0xdb, 0x4b, 0xb6, 0x5e, 0x16, 0xf1, 0x93, 0xc4, 0xf3, 0xdb}: "EfiProcessorGenericErrorSectionGuid", efi.GUID{0xad, 0xcd, 0x8f, 0x47, 0x0e, 0x76, 0x6c, 0x42, 0x86, 0x9b, 0x2f, 0x33, 0x45, 0x05, 0x17, 0x50}: "DellHddSmartDxe", efi.GUID{0xad, 0xcf, 0x57, 0xa4, 0xea, 0x64, 0xee, 0x49, 0xa5, 0x32, 0x56, 0x6a, 0xc2, 0xb6, 0xd6, 0xc4}: "PolyFuseWarningsDxe", efi.GUID{0xad, 0xd1, 0x62, 0x32, 0xa8, 0xa8, 0x97, 0x45, 0x82, 0x5e, 0xde, 0x6f, 0x16, 0x7c, 0x34, 0x07}: "PlatformErrorHandler", efi.GUID{0xad, 0xe4, 0x90, 0x51, 0x02, 0xe9, 0x2e, 0x46, 0x95, 0x09, 0xa7, 0xab, 0x1f, 0x51, 0xb2, 0x7c}: "KEMhSpiMux", efi.GUID{0xad, 0xe8, 0x19, 0x7d, 0x89, 0x10, 0xb7, 0x42, 0xa4, 0x40, 0xd8, 0x31, 0x8a, 0x44, 0xe8, 0x9f}: "SioIt8659ePei", efi.GUID{0xad, 0xef, 0xc2, 0xfa, 0x11, 0x85, 0x34, 0x4e, 0x9c, 0xae, 0x16, 0xa2, 0x57, 0xba, 0x94, 0x88}: "Capsule", efi.GUID{0xad, 0xfc, 0x53, 0xeb, 0x71, 0x30, 0xab, 0x4b, 0x98, 0x0c, 0x6e, 0x4a, 0x37, 0x92, 0x55, 0xf3}: "RealtekUefiDriver", efi.GUID{0xad, 0xfe, 0x3f, 0xeb, 0xf6, 0x45, 0x18, 0x4a, 0xac, 0x71, 0xc4, 0xee, 0x97, 0xb2, 0x61, 0x19}: "KbcPeim", efi.GUID{0xae, 0x0a, 0xb0, 0x13, 0xd2, 0x4f, 0x4e, 0x96, 0xb3, 0x0f, 0x94, 0x62, 0x70, 0x17, 0x37, 0x0a}: "BmpConvert", efi.GUID{0xae, 0x0f, 0x3e, 0x09, 0xc4, 0xa6, 0x50, 0x4f, 0x9f, 0x1b, 0xd4, 0x1e, 0x2b, 0x89, 0xc1, 0x9a}: "EfiCertSha512Guid", efi.GUID{0xae, 0x14, 0xcf, 0x75, 0x41, 0x34, 0xdc, 0x49, 0xaa, 0x10, 0xbb, 0x35, 0xa7, 0xba, 0x8b, 0xab}: "EdkiiPlatformSpecificResetHandlerPpi", efi.GUID{0xae, 0x21, 0x15, 0x22, 0x35, 0x0a, 0xcd, 0x44, 0xb5, 0x80, 0x5a, 0xed, 0xbb, 0x77, 0x0b, 0x1d}: "glyphs", efi.GUID{0xae, 0x28, 0x38, 0x4b, 0xce, 0x0a, 0xb6, 0x45, 0x8c, 0xdb, 0xda, 0xfc, 0x28, 0xbb, 0xf8, 0xc5}: "VAROEM", efi.GUID{0xae, 0x34, 0x40, 0x2b, 0x66, 0x85, 0x2f, 0x41, 0x9c, 0xa5, 0x67, 0xfd, 0x69, 0x8f, 0xc2, 0x61}: "TcoSmi", efi.GUID{0xae, 0x36, 0x48, 0x3c, 0x4b, 0xb2, 0xe3, 0x40, 0xb2, 0x4b, 0x94, 0x48, 0xed, 0x09, 0x5b, 0xfe}: "SpiDxe", efi.GUID{0xae, 0x37, 0x88, 0x7b, 0x1e, 0x08, 0x3f, 0x4d, 0x8a, 0xad, 0x87, 0xbb, 0x93, 0x95, 0x2f, 0x38}: "WlanControllerDxe", efi.GUID{0xae, 0x37, 0x99, 0x7b, 0x2e, 0x09, 0x5f, 0x4d, 0x8b, 0xbd, 0x87, 0xbb, 0x14, 0x16, 0x2f, 0x38}: "SerialPortSettingDxe", efi.GUID{0xae, 0x3a, 0xd4, 0x12, 0xc1, 0xdd, 0x15, 0x46, 0xb0, 0xbc, 0xe1, 0x15, 0xf9, 0xd1, 0x7f, 0xc1}: "FjPowerButtonSmm", efi.GUID{0xae, 0x3c, 0xcd, 0xcc, 0x0d, 0x17, 0x34, 0x4e, 0x87, 0x66, 0x57, 0xb9, 0x04, 0x2b, 0xeb, 0xb9}: "EcEkKey", efi.GUID{0xae, 0x3f, 0xe9, 0x38, 0xf4, 0xc5, 0x00, 0x47, 0x94, 0x0d, 0xdc, 0x10, 0xe2, 0xfd, 0xb6, 0xc0}: "OemPeiRuntime", efi.GUID{0xae, 0x43, 0x13, 0xea, 0x6c, 0xba, 0x59, 0x40, 0xbe, 0x74, 0x02, 0x4d, 0x36, 0xd7, 0xaa, 0x3f}: "LEMBootModeFlagPei", efi.GUID{0xae, 0x47, 0x99, 0x8b, 0x9e, 0x0a, 0x5f, 0x4d, 0x8a, 0x8d, 0x87, 0xc9, 0x14, 0x13, 0x6f, 0x38}: "FlexIoCardDxe", efi.GUID{0xae, 0x47, 0xaa, 0x8b, 0x9e, 0x0a, 0x5f, 0x4d, 0x89, 0x8d, 0x87, 0xc9, 0x14, 0x68, 0x2f, 0x38}: "RTS545XDxe", efi.GUID{0xae, 0x47, 0xea, 0xdb, 0x4b, 0xe6, 0xd9, 0x4d, 0x95, 0x86, 0x15, 0x1a, 0xec, 0x8d, 0x5c, 0x18}: "HpPlatformSmmServices", efi.GUID{0xae, 0x4d, 0x2d, 0x39, 0xbd, 0xd3, 0xaf, 0x4c, 0xb1, 0xef, 0x57, 0xa7, 0x8b, 0x6e, 0x39, 0xbc}: "NVMeInfoDxe", efi.GUID{0xae, 0x54, 0xee, 0x10, 0x07, 0xb2, 0x4f, 0x4a, 0xab, 0xd8, 0xcb, 0x52, 0x2e, 0xca, 0xa3, 0xa4}: "Udp6Dxe", efi.GUID{0xae, 0x5a, 0x88, 0x3a, 0x30, 0x3e, 0xb9, 0x42, 0xa9, 0x76, 0x2f, 0x1f, 0x13, 0xbd, 0x70, 0x15}: "SecurityPkgList", efi.GUID{0xae, 0x5c, 0x7c, 0x54, 0x40, 0x26, 0xcf, 0x4a, 0x95, 0x32, 0x0e, 0x25, 0xb3, 0xf0, 0x3f, 0x05}: "WheaDxe", efi.GUID{0xae, 0x61, 0x82, 0xa4, 0xc1, 0xb7, 0x3b, 0x46, 0xbf, 0x32, 0x86, 0x25, 0xb6, 0x77, 0x9a, 0x0e}: "UsbIoExt", efi.GUID{0xae, 0x6c, 0x9c, 0x60, 0x5e, 0xc5, 0xba, 0x4d, 0xba, 0xae, 0xff, 0xf0, 0x21, 0xea, 0xe1, 0x96}: "MediaSanitizationDynamicSetup", efi.GUID{0xae, 0x84, 0xb1, 0x1d, 0xf5, 0x81, 0x72, 0x4e, 0x85, 0x44, 0x2b, 0xab, 0x0c, 0x2c, 0xac, 0x5c}: "AmiBbsDevicePath", efi.GUID{0xae, 0x8b, 0xc4, 0xf5, 0x0d, 0xc1, 0x76, 0x4a, 0xb8, 0x55, 0x5d, 0x5b, 0x06, 0x2a, 0xfe, 0x04}: "LOMDriver", efi.GUID{0xae, 0x8e, 0x1c, 0x15, 0x2c, 0x7f, 0x2c, 0x47, 0x9e, 0x54, 0x98, 0x28, 0x19, 0x4f, 0x6a, 0x88}: "EfiDiskIo2ProtocolGuid", efi.GUID{0xae, 0x8e, 0x4d, 0xe8, 0x51, 0x01, 0xf0, 0x41, 0x98, 0x74, 0x2f, 0x83, 0x8d, 0xb4, 0x71, 0x06}: "PMBUSPEI", efi.GUID{0xae, 0x8e, 0x88, 0x52, 0x10, 0x5b, 0xd0, 0x47, 0xa8, 0x7f, 0xb8, 0x22, 0xab, 0xa0, 0xca, 0xf4}: "EfiPeiCoreFvLocationPpi", efi.GUID{0xae, 0x8f, 0xc8, 0xa7, 0xec, 0xeb, 0xed, 0x45, 0xa7, 0xc5, 0x5f, 0xa7, 0x55, 0x17, 0x73, 0x06}: "PerfTuneWdtPpi", efi.GUID{0xae, 0x9d, 0x5b, 0xdd, 0xbb, 0x16, 0x28, 0x4e, 0xb1, 0x0c, 0x08, 0xa3, 0xad, 0x7e, 0x44, 0xce}: "AsusWakeOnRtcS5", efi.GUID{0xae, 0x9d, 0xe7, 0xd4, 0xfc, 0xaa, 0x82, 0x43, 0x95, 0x40, 0x3e, 0x3f, 0xa4, 0x2d, 0x42, 0x55}: "AmiNvmeLegacyProtocolGuid", efi.GUID{0xae, 0xa4, 0x88, 0x68, 0xce, 0xaf, 0x4b, 0xe8, 0x91, 0x02, 0xf7, 0xb9, 0xda, 0xe6, 0xa0, 0x30}: "EmuBlockIoProtocolGuid", efi.GUID{0xae, 0xae, 0x37, 0x4e, 0xd7, 0xf9, 0x4d, 0x46, 0x99, 0x69, 0x0f, 0xfb, 0xeb, 0x6f, 0x42, 0x3f}: "AsusRomLayoutDxe", efi.GUID{0xae, 0xb3, 0x2c, 0x49, 0xdb, 0x66, 0x1e, 0x4f, 0x91, 0xae, 0x53, 0x4c, 0x48, 0xf2, 0xf8, 0x3d}: "WheaSupport", efi.GUID{0xae, 0xba, 0xf0, 0x56, 0x87, 0xf8, 0xd3, 0x45, 0x81, 0x4e, 0xb6, 0xd5, 0xc4, 0x89, 0xe0, 0xf9}: "AmiAgesaChipsetPei", efi.GUID{0xae, 0xbe, 0xb4, 0x19, 0xda, 0x54, 0xa9, 0x4a, 0x98, 0xb0, 0x41, 0xed, 0x75, 0xd8, 0x05, 0xba}: "EcRotTpmRecoveryDxe", efi.GUID{0xae, 0xbe, 0xdb, 0xdf, 0x4b, 0x7d, 0x3f, 0x4d, 0xba, 0x01, 0xfb, 0xf3, 0xda, 0x70, 0x85, 0x99}: "ThunderboltPei", efi.GUID{0xae, 0xbf, 0xb8, 0x7d, 0xbc, 0xb3, 0x3a, 0x48, 0x82, 0x52, 0xe0, 0xf2, 0x13, 0x15, 0x1a, 0xa7}: "ODMWlanTpowerOnOverride", efi.GUID{0xae, 0xc1, 0xfd, 0x76, 0x2a, 0xa4, 0x6a, 0x41, 0x98, 0xe3, 0xa2, 0xf2, 0x91, 0x46, 0xda, 0xc3}: "AppleDhcpProtocolDxe", efi.GUID{0xae, 0xce, 0x8e, 0x85, 0x83, 0x4a, 0xbe, 0x41, 0x96, 0x43, 0x6a, 0xbb, 0x93, 0x94, 0x3a, 0x4c}: "RealtekGopDriver", efi.GUID{0xae, 0xd4, 0xb5, 0x9c, 0x86, 0xde, 0x22, 0x46, 0xa1, 0xd1, 0x3b, 0xca, 0xab, 0x41, 0x8f, 0xe9}: "IAxTblDxe", efi.GUID{0xae, 0xd6, 0xe3, 0x0b, 0x2c, 0x6d, 0xad, 0x41, 0x98, 0x69, 0xa9, 0x73, 0x64, 0xe7, 0xc1, 0xf1}: "FjIbvSfuSecFlashAbstractionSmmProtocol", efi.GUID{0xae, 0xd7, 0xe9, 0x4c, 0xb2, 0x61, 0x61, 0x44, 0x94, 0x46, 0xab, 0x03, 0x76, 0xb4, 0xa7, 0xf7}: "FboSce", efi.GUID{0xae, 0xe4, 0x85, 0x28, 0xa5, 0x09, 0xc8, 0x4e, 0xa9, 0x08, 0x60, 0xc4, 0xe4, 0xa9, 0x2b, 0x90}: "FchBixbyGpioPei", efi.GUID{0xae, 0xe4, 0x85, 0x28, 0xa5, 0x09, 0xc8, 0x4e, 0xa9, 0x08, 0x60, 0xc4, 0xe4, 0xa9, 0x2b, 0xac}: "FchPromontoryGpioPei", efi.GUID{0xae, 0xe8, 0x9b, 0xbe, 0xbb, 0xeb, 0x0f, 0x45, 0x96, 0x2c, 0xbe, 0x19, 0x38, 0xe3, 0xfe, 0xf9}: "F2HotKeyAndCorrectPassClr0199", efi.GUID{0xae, 0xe8, 0xb9, 0x94, 0x77, 0x88, 0x9a, 0x47, 0x98, 0x42, 0xf5, 0x97, 0x4b, 0x82, 0xce, 0xd3}: "EfiBoardFeaturesGuid", efi.GUID{0xae, 0xed, 0x57, 0xea, 0x94, 0x52, 0xff, 0x40, 0x97, 0xe8, 0x46, 0x52, 0xe8, 0x3d, 0x9f, 0x5c}: "FjGraphicsDxe", efi.GUID{0xae, 0xf2, 0x90, 0x5e, 0x38, 0xe9, 0xf4, 0x48, 0x87, 0xf9, 0x5a, 0x21, 0x9e, 0x68, 0xdf, 0xd0}: "AmdNbioPei", efi.GUID{0xae, 0xf6, 0x4e, 0x9d, 0x41, 0x79, 0xc3, 0x4b, 0xb5, 0xea, 0xff, 0x61, 0xec, 0xc2, 0xfc, 0x17}: "HpetTimer", efi.GUID{0xaf, 0x1c, 0x79, 0x81, 0xad, 0x44, 0x1f, 0x44, 0xb0, 0xa2, 0x32, 0x2b, 0xa8, 0xfc, 0x95, 0xed}: "FchImcControl", efi.GUID{0xaf, 0x1d, 0x76, 0xec, 0x86, 0x6b, 0xd0, 0x41, 0x82, 0x94, 0x35, 0x0b, 0x90, 0xfc, 0x94, 0x78}: "SystemCapsulePolicyDxe", efi.GUID{0xaf, 0x1d, 0xa5, 0x11, 0x34, 0x68, 0xa1, 0x4b, 0xad, 0x5e, 0x4a, 0x58, 0x63, 0x3b, 0x34, 0x3e}: "AmdPspDxeV2Rmb", efi.GUID{0xaf, 0x1e, 0x10, 0x70, 0x85, 0x00, 0x0c, 0x44, 0xb3, 0x56, 0x8e, 0xe3, 0x6f, 0xef, 0x24, 0xf0}: "EfiLegacyRegion2ProtocolGuid", efi.GUID{0xaf, 0x21, 0xb2, 0x70, 0xff, 0xfd, 0xde, 0x4f, 0x99, 0x68, 0x1a, 0xf6, 0x23, 0xa9, 0x56, 0xd9}: "EfiI2cHostProtocolGuid", efi.GUID{0xaf, 0x27, 0x0a, 0xa6, 0xeb, 0xc1, 0x23, 0x48, 0xb6, 0x74, 0xf0, 0x36, 0x9e, 0xa4, 0x03, 0x49}: "RTL8852CEWifiDriver", efi.GUID{0xaf, 0x2f, 0x6b, 0x1c, 0xbd, 0xd8, 0xd1, 0x44, 0xa9, 0x1e, 0x73, 0x21, 0xb4, 0xc2, 0xf3, 0xd1}: "ScriptSaveDxe", efi.GUID{0xaf, 0x3c, 0xa9, 0x5e, 0xdd, 0xa8, 0x00, 0x44, 0x9f, 0xf6, 0xfe, 0x34, 0x3b, 0xca, 0xf3, 0x08}: "AodSmmSsp", efi.GUID{0xaf, 0x3f, 0x13, 0x19, 0xd4, 0xf2, 0xe6, 0x4e, 0x8a, 0x54, 0x30, 0xdb, 0xfd, 0xbd, 0xa2, 0xab}: "DellAmtFeatureDxe", efi.GUID{0xaf, 0x46, 0x25, 0x84, 0xea, 0x5a, 0xdb, 0x40, 0x86, 0x95, 0x42, 0xe5, 0x25, 0x75, 0xca, 0x45}: "A01DataServiceBodySmm", efi.GUID{0xaf, 0x47, 0xb0, 0x9a, 0x6e, 0xc2, 0xbf, 0x4d, 0xb4, 0x68, 0x27, 0xac, 0x65, 0x36, 0x48, 0x2e}: "TraceHubStatusCodeHandlerPei", efi.GUID{0xaf, 0x4a, 0x01, 0x58, 0x4a, 0x1c, 0x68, 0x48, 0x90, 0x42, 0x58, 0xbc, 0xd1, 0x63, 0x70, 0x54}: "FchProm21CbsPei", efi.GUID{0xaf, 0x4c, 0xa4, 0x24, 0xf2, 0x0b, 0x14, 0x45, 0x90, 0xc4, 0xc7, 0x94, 0xb3, 0xe7, 0x78, 0xf5}: "MePolicyInitDxe", efi.GUID{0xaf, 0x63, 0x2f, 0xb0, 0xd2, 0x96, 0x40, 0x40, 0xa1, 0x5b, 0xcb, 0xb8, 0xad, 0xf8, 0x19, 0x33}: "AmdMemSmbiosDxe", efi.GUID{0xaf, 0x65, 0xfa, 0x84, 0xbc, 0x21, 0xbe, 0x43, 0x85, 0xff, 0x8a, 0xa7, 0xe7, 0x83, 0x2a, 0x1d}: "AmiPciExpressLibNull", efi.GUID{0xaf, 0x75, 0x1f, 0xfe, 0x47, 0x36, 0x22, 0x44, 0xa7, 0xe1, 0xab, 0xd6, 0x45, 0x20, 0xd9, 0x04}: "PsrSetup", efi.GUID{0xaf, 0x7b, 0xcc, 0xc7, 0xb8, 0x73, 0xd5, 0x42, 0x9b, 0xe9, 0x6c, 0x8d, 0x03, 0x13, 0x7e, 0xd8}: "AsusSecureControl", efi.GUID{0xaf, 0x7b, 0xdd, 0x4e, 0x98, 0xba, 0xd8, 0x47, 0x85, 0xbf, 0x83, 0x1d, 0x98, 0xe7, 0x86, 0xcd}: "Sdev", efi.GUID{0xaf, 0x7e, 0xfd, 0x31, 0xa7, 0x80, 0x5e, 0x43, 0x8e, 0x0a, 0x3f, 0x18, 0x5f, 0x86, 0x67, 0xdd}: "UsbCoreDxe", efi.GUID{0xaf, 0x7f, 0x07, 0x6c, 0x58, 0x82, 0x08, 0x4c, 0xb8, 0x6d, 0xb8, 0xdc, 0x63, 0x26, 0x32, 0xb4}: "SmmPlatform", efi.GUID{0xaf, 0x8b, 0x72, 0x1c, 0xb6, 0x96, 0xe6, 0x46, 0xb5, 0x49, 0xe5, 0x0c, 0x45, 0x89, 0x8e, 0x3a}: "TamperEventProtection", efi.GUID{0xaf, 0x8f, 0x39, 0x04, 0xd6, 0xb8, 0x35, 0x4c, 0x99, 0xc9, 0x03, 0x79, 0x11, 0x23, 0x3d, 0xd9}: "H19QRCodeCreater", efi.GUID{0xaf, 0x94, 0xac, 0xd7, 0x98, 0xa4, 0xec, 0x45, 0xbf, 0xa2, 0xa5, 0x6e, 0x95, 0x34, 0x61, 0x8b}: "AmtForcePushPetVariable", efi.GUID{0xaf, 0x96, 0xbb, 0x93, 0xf2, 0xb9, 0xb8, 0x4e, 0x94, 0x62, 0xe0, 0xba, 0x74, 0x56, 0x42, 0x36}: "UefiOvmfPkgTokenSpaceGuid", efi.GUID{0xaf, 0x97, 0x90, 0x20, 0xcf, 0x5a, 0x2d, 0x4e, 0xa3, 0x1b, 0x72, 0x25, 0x7e, 0x05, 0xdc, 0x40}: "ODMMemoryOverride", efi.GUID{0xaf, 0x97, 0xcb, 0x33, 0x33, 0x6c, 0x42, 0x4c, 0x98, 0x6b, 0x07, 0x58, 0x1f, 0xa3, 0x66, 0xd4}: "BlockMmioToBlockIoDxe", efi.GUID{0xaf, 0x9e, 0x29, 0x92, 0x92, 0x66, 0x5d, 0x48, 0xae, 0x2c, 0xcd, 0x07, 0x78, 0x97, 0x40, 0x8b}: "LenovoMailboxSmmProtocol", efi.GUID{0xaf, 0xa5, 0x18, 0x3a, 0x5b, 0xf2, 0xee, 0x42, 0x86, 0x06, 0x8d, 0x30, 0xa9, 0x74, 0x91, 0x6b}: "PasswordEncodeSmmProtocol", efi.GUID{0xaf, 0xad, 0x9d, 0x29, 0xa6, 0x11, 0x1b, 0x47, 0x9e, 0x65, 0xcf, 0xe4, 0x08, 0xf5, 0x3d, 0xce}: "FjSpeakerDxe", efi.GUID{0xaf, 0xb0, 0xc9, 0xaa, 0x6a, 0xa4, 0xd8, 0x49, 0x80, 0x16, 0x9b, 0x9d, 0xad, 0x2c, 0x7f, 0x5e}: "DxeBoardConfigInit", efi.GUID{0xaf, 0xb1, 0x2b, 0x58, 0x33, 0x0a, 0x44, 0x46, 0x89, 0x8d, 0x94, 0xfc, 0x89, 0xc8, 0x38, 0xf3}: "HwmThermalDxe", efi.GUID{0xaf, 0xc7, 0xe7, 0xb5, 0xe7, 0xa3, 0x3c, 0x4d, 0xb2, 0x17, 0x04, 0x59, 0x6e, 0x4c, 0x36, 0x8f}: "AmiRedFishSecBootApiGuid", efi.GUID{0xaf, 0xce, 0x55, 0x04, 0x5c, 0xfe, 0x2f, 0x44, 0xba, 0x23, 0x34, 0xdf, 0xdc, 0x77, 0x50, 0x5a}: "NewRsmSampleDriver", efi.GUID{0xaf, 0xce, 0xd0, 0xb2, 0x8e, 0x84, 0x07, 0x4b, 0xbf, 0xea, 0x6f, 0xe6, 0xc7, 0x40, 0xb3, 0xd2}: "EcMpmPei", efi.GUID{0xaf, 0xd2, 0x87, 0x94, 0x94, 0xb3, 0x19, 0x41, 0xa9, 0x81, 0xce, 0x13, 0x3b, 0x11, 0xdb, 0x7a}: "BoardModernStandbyDxe", efi.GUID{0xaf, 0xd2, 0x87, 0x94, 0x94, 0xb3, 0x19, 0x41, 0xa9, 0x81, 0xce, 0x13, 0x3b, 0x11, 0xdb, 0x7b}: "BoardModernStandbySmm", efi.GUID{0xaf, 0xd3, 0xee, 0xa4, 0x37, 0x98, 0xb3, 0x46, 0x92, 0x75, 0xc7, 0x1c, 0xb4, 0x70, 0x71, 0xf9}: "NetsecDxe", efi.GUID{0xaf, 0xd5, 0xb0, 0x4f, 0x40, 0xd1, 0x78, 0x40, 0x83, 0xb5, 0x39, 0x01, 0x30, 0x75, 0xce, 0xbb}: "FjBeepOnPOSTPei", efi.GUID{0xaf, 0xd6, 0x58, 0xd2, 0xc0, 0x2f, 0x19, 0x40, 0x9c, 0x1f, 0x11, 0x01, 0xc3, 0xdd, 0x19, 0xb5}: "DxeCoreEntryPoint", efi.GUID{0xaf, 0xde, 0x96, 0xfd, 0x34, 0x2c, 0xfe, 0x43, 0xa7, 0xa8, 0x01, 0x1f, 0x8c, 0x3e, 0x94, 0x12}: "AfterG3InitPeim", efi.GUID{0xaf, 0xe6, 0xc8, 0xbd, 0xbc, 0xd9, 0x79, 0x43, 0xa7, 0x2a, 0xe0, 0xc4, 0xe7, 0x5d, 0xae, 0x1c}: "EfiHttpServiceBindingProtocolGuid", efi.GUID{0xb0, 0x00, 0x41, 0xba, 0xd5, 0xa7, 0xfe, 0x4a, 0xb5, 0xcf, 0x01, 0xfd, 0x0c, 0xd7, 0xb4, 0x29}: "SmmControl", efi.GUID{0xb0, 0x01, 0x7c, 0x4d, 0x5c, 0x49, 0x70, 0x40, 0xb0, 0xaa, 0x87, 0x5a, 0x64, 0xe6, 0x1c, 0x67}: "FjHddSmm", efi.GUID{0xb0, 0x03, 0xae, 0x55, 0x1d, 0x68, 0x0e, 0x45, 0x8a, 0xa5, 0x81, 0xb9, 0x4d, 0xba, 0x53, 0x62}: "SystemVspEvaPei", efi.GUID{0xb0, 0x04, 0xa1, 0x37, 0xd1, 0x2f, 0x88, 0x42, 0x83, 0xbf, 0xce, 0xb1, 0x77, 0x68, 0xf4, 0x0a}: "LenovoSmmKbdConfig", efi.GUID{0xb0, 0x05, 0x00, 0xb2, 0x2d, 0xbb, 0x6f, 0x49, 0x86, 0x9c, 0x23, 0x0b, 0x44, 0x79, 0xe7, 0xd1}: "EdkiiNonDiscoverableOhciDeviceGuid", efi.GUID{0xb0, 0x07, 0x07, 0xf5, 0xa0, 0x7d, 0x2d, 0x48, 0xb4, 0x58, 0xd2, 0x3a, 0x72, 0x93, 0x99, 0x59}: "EfiSecRev", efi.GUID{0xb0, 0x13, 0x5f, 0x90, 0x91, 0x8f, 0x0a, 0x4b, 0xbd, 0x76, 0xe1, 0xe7, 0x8f, 0x94, 0x22, 0xe4}: "UdfDxe", efi.GUID{0xb0, 0x14, 0x73, 0x2c, 0x8e, 0xa1, 0xaf, 0x4d, 0x8b, 0x23, 0x1f, 0x21, 0xd4, 0x15, 0x72, 0xa8}: "HddSpinDownSmm", efi.GUID{0xb0, 0x14, 0xed, 0x4f, 0x0c, 0x2b, 0x20, 0x4e, 0x90, 0x71, 0x61, 0x09, 0x4b, 0x1c, 0x4b, 0x55}: "EzFlashInterfaceWrapper", efi.GUID{0xb0, 0x16, 0xaf, 0x59, 0x1d, 0x66, 0x65, 0x48, 0xa3, 0x81, 0x38, 0xde, 0x68, 0x38, 0x5d, 0x8d}: "OpalSecurity", efi.GUID{0xb0, 0x1c, 0xd6, 0xc1, 0xb0, 0x78, 0xf0, 0x42, 0xbc, 0x3f, 0xf5, 0x4d, 0xfe, 0xc6, 0x5d, 0xb2}: "PartialMirrorHandler", efi.GUID{0xb0, 0x23, 0xe1, 0xb8, 0x3b, 0xf2, 0xa7, 0x49, 0xae, 0x74, 0x7e, 0x16, 0x36, 0xeb, 0x8f, 0x16}: "FjPasswordCtrl", efi.GUID{0xb0, 0x2e, 0x9d, 0xd4, 0xd5, 0x44, 0x21, 0x46, 0x9f, 0xd6, 0x1a, 0x92, 0xc9, 0x10, 0x9b, 0x99}: "HiiResourcesSample", efi.GUID{0xb0, 0x30, 0x29, 0x79, 0x29, 0x7b, 0xcd, 0x4e, 0x8b, 0x0c, 0x65, 0xd6, 0x26, 0x44, 0xc3, 0x43}: "CbsSetupSmmSTX", efi.GUID{0xb0, 0x36, 0x04, 0x34, 0xfa, 0xeb, 0x8a, 0x40, 0x9b, 0x8b, 0x56, 0x5b, 0x1f, 0x77, 0xcf, 0x2c}: "Lpc47N20x", efi.GUID{0xb0, 0x38, 0xb0, 0xb9, 0xb6, 0xe2, 0xab, 0x4a, 0x94, 0x35, 0x41, 0x65, 0xec, 0xfe, 0xd0, 0x32}: "AmiTsePasswordPromptExitGuid", efi.GUID{0xb0, 0x49, 0xe5, 0x89, 0xa9, 0x21, 0x76, 0x4f, 0x9d, 0xfa, 0x1b, 0x71, 0xe2, 0xa7, 0xc3, 0xf2}: "S3Resume2Pei", efi.GUID{0xb0, 0x49, 0xe5, 0x89, 0xfe, 0x7c, 0x9d, 0x44, 0x9b, 0xa3, 0x10, 0xd8, 0xb2, 0x31, 0x2d, 0x71}: "S3Resume2Pei", efi.GUID{0xb0, 0x4c, 0x07, 0xef, 0x1a, 0x70, 0x75, 0x49, 0x81, 0xc1, 0x38, 0xf9, 0x21, 0x2b, 0xd0, 0x89}: "AmdMiniRasServiceDxe", efi.GUID{0xb0, 0x52, 0xa6, 0xde, 0x87, 0xd5, 0x54, 0x4c, 0xb5, 0xb4, 0xc6, 0x82, 0xe7, 0xa0, 0xaa, 0x3d}: "AcpiS3IdtrProfileGuid", efi.GUID{0xb0, 0x52, 0xbd, 0xd7, 0xdc, 0xb2, 0x08, 0x4f, 0xb4, 0x67, 0xde, 0x50, 0xd7, 0x28, 0xf6, 0xbd}: "EfiNbMrcInfo", efi.GUID{0xb0, 0x53, 0xd3, 0x42, 0x1e, 0x8c, 0xca, 0x4a, 0xbe, 0xac, 0x28, 0xfb, 0x24, 0xf2, 0x0c, 0x42}: "EfiDxeIpmiUsbTransportProtocol", efi.GUID{0xb0, 0x58, 0xde, 0x2a, 0xbd, 0xd2, 0xe7, 0x4a, 0xb9, 0x18, 0xe9, 0xaa, 0xa1, 0xa4, 0x59, 0x85}: "DellThrottlingControlProtocol", efi.GUID{0xb0, 0x5b, 0x5a, 0x17, 0x08, 0x15, 0x14, 0x47, 0xa1, 0xcf, 0x34, 0xbd, 0x56, 0xc8, 0x25, 0xdf}: "FjHobFlexIOSave", efi.GUID{0xb0, 0x6e, 0x2e, 0x05, 0x40, 0xf2, 0xc5, 0x42, 0x83, 0x09, 0x45, 0x87, 0x45, 0x45, 0xc6, 0xb4}: "BootNowCount", efi.GUID{0xb0, 0x75, 0xb5, 0xaf, 0xac, 0x1f, 0x61, 0x03, 0xb6, 0xf3, 0x9d, 0x6d, 0xaa, 0xaa, 0xe9, 0xd3}: "OemWlanPowerSwitch", efi.GUID{0xb0, 0x7b, 0xd7, 0xe6, 0xd5, 0x34, 0x26, 0x47, 0xbd, 0x29, 0xff, 0xfe, 0x09, 0xe2, 0x6f, 0xb4}: "SwitchableRsteRaidDriver", efi.GUID{0xb0, 0x7e, 0x5d, 0xca, 0x67, 0x1b, 0x0b, 0x4b, 0x96, 0x4a, 0xf2, 0xa8, 0x61, 0xf0, 0xd6, 0x40}: "IccOverclockingDxe", efi.GUID{0xb0, 0x85, 0xe0, 0xfc, 0x4c, 0x9e, 0x58, 0x40, 0xbb, 0x55, 0x16, 0x76, 0xc7, 0x7c, 0x51, 0xa1}: "DellPolyFuseStringPolicyDxe", efi.GUID{0xb0, 0x87, 0xc8, 0xe8, 0x84, 0x68, 0x33, 0x49, 0xb9, 0x58, 0x71, 0xee, 0xbc, 0x51, 0x20, 0xda}: "SECWDTDXE", efi.GUID{0xb0, 0x88, 0x60, 0x29, 0xd7, 0x5a, 0xb7, 0x46, 0xa4, 0x2b, 0x00, 0x4c, 0x2a, 0x0f, 0x00, 0xbb}: "AmdMemSmbiosV2SspPei", efi.GUID{0xb0, 0x8a, 0x5f, 0xc9, 0xc2, 0x1b, 0x7c, 0x41, 0x83, 0x77, 0x98, 0x15, 0xf5, 0x78, 0xa9, 0xee}: "UsbOcUpdateDxeExpertWorkStationRP", efi.GUID{0xb0, 0x90, 0x9c, 0x07, 0x9c, 0x1b, 0x3c, 0x4c, 0x93, 0x16, 0xef, 0xc7, 0xf6, 0x80, 0xa6, 0x7b}: "PlatformSmbiosDxe", efi.GUID{0xb0, 0x9a, 0xe8, 0x41, 0x3d, 0xbd, 0xb6, 0x44, 0xa4, 0x31, 0xe4, 0x83, 0x6e, 0xfb, 0xf2, 0xcb}: "PowerManagement2", efi.GUID{0xb0, 0xa0, 0x3e, 0xdc, 0x44, 0xa1, 0x97, 0x47, 0xb5, 0x5b, 0x53, 0xfa, 0x24, 0x2b, 0x6e, 0x1d}: "EfiWheaProcessorSpecificErrorSection", efi.GUID{0xb0, 0xa0, 0x3e, 0xdc, 0x44, 0xa1, 0x97, 0x47, 0xb9, 0x5b, 0x53, 0xfa, 0x24, 0x2b, 0x6e, 0x1d}: "EfiProcessorSpecificErrorSectionGuid", efi.GUID{0xb0, 0xa6, 0x9e, 0xe5, 0x5b, 0xb0, 0x22, 0x4b, 0x8f, 0x3a, 0x24, 0x2d, 0xcb, 0xe9, 0x04, 0xa2}: "AmdCcxVhRnDxe", efi.GUID{0xb0, 0xaa, 0x64, 0x0b, 0x29, 0x54, 0xd4, 0x11, 0x98, 0x16, 0x00, 0xa0, 0xc9, 0x1f, 0xad, 0xcf}: "EfiBisProtocolGuid", efi.GUID{0xb0, 0xaf, 0x9e, 0x0a, 0xf9, 0xfa, 0xaa, 0x48, 0x91, 0xf9, 0x6c, 0xca, 0x33, 0x06, 0x12, 0x76}: "BctBaseSmmMDN", efi.GUID{0xb0, 0xbe, 0xbf, 0x11, 0x77, 0xfe, 0x62, 0x43, 0x84, 0xfb, 0x4f, 0x96, 0x1e, 0x7b, 0xb2, 0xed}: "H2OFormDialogDxe", efi.GUID{0xb0, 0xc2, 0x41, 0x69, 0x44, 0xce, 0x99, 0x40, 0x98, 0x3a, 0x03, 0x91, 0x3b, 0x3d, 0x76, 0x5f}: "EncryptDriver", efi.GUID{0xb0, 0xc6, 0x5f, 0x72, 0x4d, 0x98, 0xe3, 0x11, 0xad, 0x96, 0x04, 0x7d, 0x7b, 0x99, 0xe0, 0x97}: "SetupMenuInterfaceCoreDxe", efi.GUID{0xb0, 0xcb, 0xfa, 0x7c, 0x15, 0xb5, 0x70, 0x49, 0xae, 0x98, 0x38, 0xf5, 0x40, 0xe7, 0x34, 0x82}: "H2OVerifyRegionDxe", efi.GUID{0xb0, 0xcc, 0x75, 0x4e, 0x53, 0xa6, 0x76, 0x4c, 0xa2, 0x13, 0x5b, 0x2d, 0xbc, 0xd2, 0xa9, 0xef}: "TouchDriver", efi.GUID{0xb0, 0xcd, 0x1b, 0xfc, 0x31, 0x7d, 0xaa, 0x49, 0x93, 0x6a, 0xa4, 0x60, 0x0d, 0x9d, 0xd0, 0x83}: "EfiCrc32GuidedSectionExtractionGuid", efi.GUID{0xb0, 0xd2, 0x98, 0x36, 0x27, 0xe7, 0x37, 0x45, 0xa6, 0x36, 0xa8, 0x77, 0x07, 0x36, 0xab, 0xfb}: "GetHostByDns", efi.GUID{0xb0, 0xd4, 0x27, 0x78, 0x6e, 0x92, 0xf9, 0x48, 0x8a, 0xbd, 0x69, 0x81, 0x6e, 0xf8, 0x6d, 0x16}: "AppleDmgBootDxe", efi.GUID{0xb0, 0xd4, 0x9d, 0x0f, 0x9e, 0x59, 0x66, 0x4d, 0x85, 0x65, 0x22, 0xfb, 0xea, 0x1e, 0x02, 0x8c}: "AmdFabricPhxPei", efi.GUID{0xb0, 0xd6, 0x2e, 0xfa, 0x06, 0xf6, 0x50, 0x44, 0xb4, 0xf1, 0x4e, 0xd3, 0x4a, 0x17, 0xe0, 0x76}: "MsiBoardDxe", efi.GUID{0xb0, 0xdf, 0x46, 0xad, 0xd8, 0x01, 0x84, 0x4d, 0xbb, 0xab, 0x13, 0x59, 0xa9, 0x83, 0xab, 0x9f}: "OemPeim", efi.GUID{0xb0, 0xdf, 0x55, 0x52, 0x7c, 0x0e, 0xdc, 0x47, 0x95, 0xa7, 0x0b, 0x83, 0x8d, 0xa0, 0x9b, 0xb0}: "UpiPlatformHooksPeim", efi.GUID{0xb0, 0xe4, 0x54, 0xa9, 0x80, 0x03, 0xf6, 0x41, 0x95, 0xc1, 0xb8, 0xad, 0xe5, 0x6c, 0x23, 0x19}: "OemHookPei", efi.GUID{0xb0, 0xf6, 0x9d, 0xd7, 0x44, 0xef, 0xbd, 0x43, 0x97, 0x97, 0x43, 0xe9, 0x3b, 0xcf, 0x5f, 0xa8}: "VlanConfigFormSetGuid", efi.GUID{0xb0, 0xfa, 0x1b, 0xb8, 0xb3, 0x0e, 0xf9, 0x4c, 0x84, 0x65, 0x7f, 0xa9, 0x86, 0x36, 0x16, 0x64}: "EfiUfsDeviceConfigProtocolGuid", efi.GUID{0xb1, 0x0e, 0xcc, 0x97, 0x3b, 0xcd, 0x7a, 0x44, 0x93, 0x19, 0xe3, 0x27, 0x9e, 0xd0, 0x2d, 0x51}: "ShowInSetup", efi.GUID{0xb1, 0x14, 0x08, 0xbc, 0xf4, 0xcc, 0x6a, 0x4c, 0xa9, 0x06, 0x9e, 0x08, 0xd5, 0xe1, 0x45, 0x29}: "ODMServiceSmm", efi.GUID{0xb1, 0x18, 0xc5, 0x58, 0xf3, 0x76, 0xd4, 0x11, 0xbc, 0xea, 0x00, 0x80, 0xc7, 0x3c, 0x88, 0x81}: "EfiWinNtThunkProtocolGuid", efi.GUID{0xb1, 0x19, 0x95, 0xec, 0x88, 0xe7, 0x45, 0x4c, 0xb6, 0x95, 0x24, 0x44, 0x57, 0x44, 0x2d, 0x64}: "PeiSmmControl", efi.GUID{0xb1, 0x1b, 0xfe, 0x05, 0xd3, 0x41, 0xdd, 0x43, 0xab, 0xb0, 0x91, 0x86, 0x0b, 0x4a, 0xb1, 0x85}: "AsusBackupSync", efi.GUID{0xb1, 0x20, 0x48, 0x98, 0x76, 0x6d, 0xc2, 0x46, 0x81, 0x46, 0x25, 0xf2, 0x45, 0x66, 0x3d, 0x17}: "EmuPciPei", efi.GUID{0xb1, 0x21, 0x0b, 0xa6, 0x00, 0xa2, 0x85, 0x47, 0xa8, 0x6e, 0x51, 0x06, 0xe7, 0x6a, 0x36, 0x04}: "DellDynamicBacklightControlSmm", efi.GUID{0xb1, 0x32, 0xca, 0xd4, 0xf2, 0xb1, 0xf3, 0x4f, 0xb4, 0x75, 0x66, 0xe7, 0xb8, 0x19, 0x2a, 0x3b}: "AmiCpuidCksumHob", efi.GUID{0xb1, 0x43, 0x83, 0x10, 0x5b, 0x3f, 0x08, 0x49, 0x95, 0x25, 0xe2, 0x5e, 0x62, 0xd5, 0x72, 0x9a}: "LegacyPciUcrDxe", efi.GUID{0xb1, 0x4a, 0x8b, 0x78, 0x4f, 0x29, 0xd4, 0x4f, 0xbe, 0xb7, 0x4f, 0x5e, 0x07, 0x09, 0xe9, 0xac}: "DnAPartitionDxe", efi.GUID{0xb1, 0x5c, 0xbd, 0xe4, 0x52, 0x94, 0xca, 0x4b, 0xad, 0x8a, 0xc3, 0xed, 0xd7, 0x70, 0xc4, 0x0c}: "HpBatteryControl", efi.GUID{0xb1, 0x5c, 0xbd, 0xe4, 0x52, 0x94, 0xca, 0x4b, 0xad, 0x8a, 0xc3, 0xed, 0xd7, 0x70, 0xc4, 0x0d}: "HpDimmSpdAccess", efi.GUID{0xb1, 0x5c, 0xbd, 0xe4, 0x52, 0x94, 0xca, 0x4b, 0xad, 0x8a, 0xc3, 0xed, 0xd7, 0x70, 0xc4, 0x0e}: "HpThermalDiagnostic", efi.GUID{0xb1, 0x5c, 0xbd, 0xe4, 0x52, 0x94, 0xca, 0x4b, 0xad, 0x8a, 0xc3, 0xed, 0xd7, 0x70, 0xc4, 0x0f}: "HpSysDiagsLaunch", efi.GUID{0xb1, 0x5c, 0xbd, 0xe4, 0x52, 0x94, 0xca, 0x4b, 0xad, 0x8a, 0xc3, 0xed, 0xd7, 0x70, 0xc4, 0x10}: "HpSmartAdapterStatus", efi.GUID{0xb1, 0x5c, 0xbd, 0xe4, 0x52, 0x94, 0xca, 0x4b, 0xad, 0x8a, 0xc3, 0xed, 0xd7, 0x70, 0xc4, 0x11}: "HpDimmId", efi.GUID{0xb1, 0x5f, 0x92, 0x94, 0xf4, 0xee, 0xed, 0x41, 0xbd, 0x7a, 0xcd, 0xb0, 0x4a, 0xaa, 0x81, 0xc7}: "DellSbAcpiConfig", efi.GUID{0xb1, 0x6b, 0x2d, 0x0e, 0x24, 0xc6, 0x6d, 0x44, 0x99, 0x82, 0x69, 0x3c, 0xd1, 0x81, 0xa6, 0x07}: "EfiSmmTcoDispatchProtocol", efi.GUID{0xb1, 0x71, 0x64, 0x35, 0x83, 0xb4, 0xae, 0x42, 0xb6, 0xe7, 0x3b, 0x2e, 0xba, 0xb1, 0x4e, 0x15}: "ServerCommonTokenSpace", efi.GUID{0xb1, 0x7a, 0xd3, 0xc6, 0xbb, 0xac, 0x28, 0x49, 0xa9, 0x56, 0x57, 0x7b, 0xb3, 0xdb, 0xb7, 0x51}: "DellDimmLocation", efi.GUID{0xb1, 0x7c, 0xee, 0xb1, 0x00, 0x5d, 0x7f, 0x46, 0x9e, 0x60, 0x24, 0xcd, 0x83, 0x41, 0x93, 0x7a}: "SetupLoadDefaultDxe", efi.GUID{0xb1, 0x83, 0x73, 0x0e, 0xee, 0x83, 0xa4, 0x41, 0x93, 0x9e, 0x24, 0xc8, 0x86, 0xf0, 0x3a, 0xd6}: "DellVirtRtcSmm", efi.GUID{0xb1, 0x88, 0x51, 0x99, 0x96, 0x9f, 0xd4, 0x11, 0x87, 0xae, 0x00, 0x06, 0x29, 0x2e, 0x8a, 0x3b}: "EfiAuthorizationProtocol", efi.GUID{0xb1, 0x8b, 0xce, 0x2d, 0xd7, 0xbd, 0x0e, 0x45, 0xb9, 0xad, 0x9c, 0xf4, 0xeb, 0xd4, 0xf8, 0x90}: "EfiEventNotificationTypeCmcGuid", efi.GUID{0xb1, 0x8f, 0x86, 0x35, 0x8f, 0x4e, 0x4e, 0x4c, 0x93, 0xb4, 0xf2, 0x29, 0xcd, 0x89, 0xa9, 0x27}: "PxeDriverRt", efi.GUID{0xb1, 0x90, 0xee, 0xa7, 0x4a, 0xfb, 0x78, 0x44, 0xb8, 0x68, 0x36, 0x7e, 0xe9, 0xec, 0x97, 0xe2}: "FmpDxe", efi.GUID{0xb1, 0x93, 0x60, 0x8a, 0xb8, 0x02, 0x85, 0x46, 0xb2, 0x50, 0x48, 0xca, 0xb3, 0x64, 0xbc, 0xf8}: "FjPeiSetPlatformHardwareSwitch", efi.GUID{0xb1, 0x99, 0x64, 0x0f, 0xad, 0xe9, 0x3d, 0x49, 0xb9, 0xc2, 0x2f, 0x90, 0x81, 0x5c, 0x6c, 0xbc}: "EfiPhysicalPresenceGuid", efi.GUID{0xb1, 0xa3, 0xf8, 0x0e, 0x8a, 0x38, 0x62, 0x4b, 0x8b, 0xe6, 0xc7, 0x87, 0x7d, 0x50, 0xae, 0xdf}: "UefiPxeBcDxe", efi.GUID{0xb1, 0xaa, 0x4e, 0x1e, 0x37, 0xe6, 0x3e, 0x44, 0xa5, 0xd6, 0x56, 0xe6, 0x0d, 0x97, 0xc6, 0x19}: "UsbComboPeimPei", efi.GUID{0xb1, 0xb7, 0x8e, 0x2a, 0x13, 0x49, 0x5c, 0x4b, 0xa0, 0xc7, 0xe7, 0x07, 0x91, 0xa7, 0x15, 0xbc}: "SystemMemoryManagerRt", efi.GUID{0xb1, 0xcc, 0xba, 0x26, 0x42, 0x6f, 0xd4, 0x11, 0xbc, 0xe7, 0x00, 0x80, 0xc7, 0x3c, 0x88, 0x81}: "EfiCpuArchProtocolGuid", efi.GUID{0xb1, 0xd2, 0xf4, 0xbe, 0x3b, 0xc5, 0x33, 0x49, 0xa3, 0xba, 0x2a, 0x42, 0x2c, 0x89, 0xa4, 0x39}: "AmiFriProtocol", efi.GUID{0xb1, 0xdd, 0x29, 0x36, 0x8c, 0x22, 0x2e, 0x45, 0xb6, 0x16, 0x09, 0xed, 0x31, 0x6a, 0x97, 0x00}: "EfiPaddingNoneGuid", efi.GUID{0xb1, 0xec, 0xaa, 0x0f, 0x6e, 0x22, 0x82, 0x47, 0xaa, 0xce, 0x7d, 0xb9, 0xbc, 0xbf, 0x4d, 0xaf}: "EfiFtp4ServiceBindingProtocolGuid", efi.GUID{0xb1, 0xf2, 0xc7, 0x28, 0x0b, 0xb8, 0xeb, 0x4e, 0x8d, 0xc7, 0x0e, 0xa3, 0x49, 0x54, 0x92, 0x6e}: "FjEventLog", efi.GUID{0xb1, 0xf6, 0xeb, 0xd7, 0x2c, 0xcb, 0xf6, 0x4e, 0x8e, 0xd5, 0xfb, 0x67, 0x3c, 0x91, 0xdb, 0xe4}: "IntegratedDeviceDxe", efi.GUID{0xb2, 0x04, 0xc6, 0xe3, 0x43, 0x5d, 0xad, 0x46, 0xa1, 0xe4, 0xbf, 0x7d, 0x11, 0xb6, 0xaa, 0xc5}: "AmdCcxVhMdnSmm", efi.GUID{0xb2, 0x06, 0x87, 0x66, 0xfc, 0xbc, 0xd4, 0x4a, 0xa1, 0x85, 0x75, 0xe7, 0x9f, 0x3f, 0xe1, 0x69}: "NvmeDynamicSetup", efi.GUID{0xb2, 0x0c, 0xa0, 0x85, 0x24, 0x29, 0x49, 0x48, 0x95, 0xc4, 0x78, 0x78, 0x52, 0xf0, 0x3f, 0xc7}: "PlatformSmm", efi.GUID{0xb2, 0x0d, 0xf7, 0x12, 0x85, 0x85, 0xa6, 0x49, 0xa1, 0xe5, 0x20, 0xf0, 0x36, 0x3b, 0x05, 0xb0}: "WCN7850", efi.GUID{0xb2, 0x0e, 0xb5, 0xc4, 0x16, 0xed, 0x83, 0x42, 0xa5, 0xb0, 0xa7, 0x34, 0x1c, 0x3f, 0x99, 0x7b}: "ArmTrustedMonitorLibNull", efi.GUID{0xb2, 0x12, 0x06, 0xb4, 0x63, 0xa0, 0xd4, 0x11, 0x9a, 0x3a, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d}: "UsbCbi1Dxe", efi.GUID{0xb2, 0x22, 0x70, 0x5d, 0xcf, 0xd3, 0x10, 0x43, 0xac, 0x0a, 0x47, 0x08, 0xdc, 0x4e, 0x54, 0x69}: "IioCxl2SsdtInstallDxe", efi.GUID{0xb2, 0x25, 0xe7, 0x7b, 0x6c, 0xf5, 0xc7, 0x41, 0x9f, 0x03, 0x1e, 0x7b, 0x56, 0xb6, 0x59, 0x71}: "SystemUsbMemoryManagerDxe", efi.GUID{0xb2, 0x2e, 0x6b, 0xf4, 0xd7, 0xe0, 0x96, 0x4c, 0xa3, 0xb1, 0x0c, 0x61, 0xbb, 0x24, 0x5c, 0x42}: "EdkiiSmmCryptoProtocol", efi.GUID{0xb2, 0x2f, 0x14, 0x29, 0xd9, 0x26, 0x3a, 0x4c, 0xa4, 0xba, 0x7b, 0xbd, 0x03, 0x64, 0xee, 0xae}: "BaseSmbusLibNull", efi.GUID{0xb2, 0x39, 0x89, 0x92, 0x35, 0x42, 0x2f, 0x46, 0x95, 0x80, 0xf6, 0xa2, 0xb2, 0xc2, 0x1a, 0x4f}: "QemuAcpiTableNotifyProtocol", efi.GUID{0xb2, 0x42, 0x73, 0x11, 0x24, 0x98, 0x70, 0x41, 0x8a, 0xfb, 0xe5, 0x68, 0xe6, 0x2c, 0x06, 0x94}: "AmdSsdtPpcvOverride", efi.GUID{0xb2, 0x53, 0x1b, 0xff, 0x1c, 0xe8, 0x37, 0x4a, 0x8d, 0x64, 0x2f, 0x0f, 0x76, 0x42, 0xd8, 0x2f}: "CustomizeMultiLogoSmm", efi.GUID{0xb2, 0x57, 0x79, 0x54, 0x91, 0xd7, 0xff, 0x4c, 0x88, 0x08, 0x80, 0x24, 0x89, 0x7b, 0x4d, 0x98}: "PLX8605PEI", efi.GUID{0xb2, 0x58, 0x6f, 0x9a, 0x44, 0x74, 0xba, 0x4e, 0x8f, 0xad, 0xa0, 0x33, 0xef, 0x79, 0xac, 0xdf}: "SecureBIOCamera_Sunplus", efi.GUID{0xb2, 0x5d, 0x04, 0xfb, 0x8e, 0x59, 0x5a, 0x48, 0xba, 0x30, 0x5d, 0x7b, 0x1b, 0x1b, 0xd5, 0x4d}: "AOAC", efi.GUID{0xb2, 0x5d, 0x22, 0xfd, 0x26, 0x5a, 0x63, 0x42, 0x83, 0x98, 0x71, 0xc3, 0x59, 0x40, 0x4b, 0x85}: "AcerTPM", efi.GUID{0xb2, 0x5d, 0x4e, 0xc7, 0x96, 0xfa, 0xe2, 0x4a, 0xb3, 0x99, 0x15, 0x97, 0x7f, 0xe3, 0x00, 0x2d}: "EfiSpiHcProtocolGuid", efi.GUID{0xb2, 0x60, 0x17, 0x51, 0x7d, 0xe4, 0xb4, 0x44, 0x83, 0x66, 0x0f, 0x2c, 0xd3, 0xbc, 0x1d, 0x38}: "DellSmmRadioDeviceProtocol", efi.GUID{0xb2, 0x62, 0x39, 0x2f, 0xc5, 0x57, 0xec, 0x44, 0x9e, 0xfc, 0xa6, 0x9f, 0xd3, 0x02, 0x03, 0x2b}: "TopOfTemporaryRamPpiGuid", efi.GUID{0xb2, 0x64, 0xe0, 0x40, 0xe0, 0x0a, 0xb1, 0x48, 0xa0, 0x7d, 0xf8, 0xcf, 0x1e, 0x1a, 0x23, 0x10}: "EfiNetworkPkgTokenSpaceGuid", efi.GUID{0xb2, 0x74, 0x5a, 0x3f, 0x80, 0xbf, 0x50, 0x48, 0x85, 0x91, 0x4f, 0x2d, 0xf5, 0xf9, 0xcb, 0x2b}: "PhoenixGdiProtocolGuid", efi.GUID{0xb2, 0x74, 0x60, 0x33, 0x13, 0x2a, 0xcd, 0x46, 0xb4, 0x58, 0xfd, 0x4a, 0xeb, 0xba, 0x28, 0xa9}: "AmiGlkCpuPkgTokenSpaceGuid", efi.GUID{0xb2, 0x76, 0x5c, 0x6d, 0x6d, 0x3b, 0xce, 0x43, 0x94, 0xe2, 0x0d, 0x6f, 0xd2, 0xa6, 0x3b, 0xc8}: "RtkUsbUndiDxe", efi.GUID{0xb2, 0x79, 0x7c, 0x37, 0x40, 0x1a, 0x1e, 0x44, 0xb6, 0xf5, 0xa1, 0x70, 0xe3, 0x75, 0x37, 0x25}: "LenovoTpmMeasureDxe", efi.GUID{0xb2, 0x7f, 0xac, 0xb8, 0x11, 0x42, 0x2b, 0x4c, 0xb6, 0x2f, 0x50, 0x44, 0x21, 0x66, 0x6c, 0x87}: "RngTest", efi.GUID{0xb2, 0x84, 0x24, 0x77, 0x82, 0x74, 0x91, 0x4b, 0x9f, 0x9a, 0xad, 0x43, 0xf8, 0x1c, 0x58, 0x81}: "EfiMiscSubClassGuid", efi.GUID{0xb2, 0x8d, 0xf1, 0xea, 0xfd, 0xfb, 0x50, 0x4e, 0x8e, 0x77, 0xaa, 0xc8, 0x19, 0x16, 0x28, 0xb5}: "AmdSocFp8StxKrkPei", efi.GUID{0xb2, 0x92, 0x4a, 0x08, 0x6a, 0x03, 0x4c, 0x41, 0xad, 0xea, 0x62, 0x0a, 0xcf, 0x54, 0x76, 0x64}: "RasMiscDxe", efi.GUID{0xb2, 0x9e, 0xde, 0x27, 0xb4, 0x73, 0xb2, 0x43, 0xab, 0xd0, 0xe8, 0x7a, 0x59, 0x65, 0x42, 0x4e}: "HddStandBySmm", efi.GUID{0xb2, 0x9e, 0xe6, 0xc3, 0x29, 0x04, 0xd6, 0x4b, 0xae, 0x4a, 0x8c, 0xa0, 0x2f, 0xba, 0xcc, 0x2e}: "AdvancedAcpiDxe", efi.GUID{0xb2, 0x9f, 0x88, 0x47, 0x71, 0xd6, 0xab, 0x4f, 0xa0, 0xca, 0xdf, 0x0e, 0x44, 0xdf, 0x70, 0xd6}: "EfiPkcs7VerifyProtocolGuid", efi.GUID{0xb2, 0xa0, 0xec, 0xc4, 0x77, 0x52, 0x2b, 0x4f, 0x3e, 0xcb, 0xe4, 0x17, 0x5c, 0x94, 0x81, 0x2e}: "ExtraS3Memory", efi.GUID{0xb2, 0xa8, 0xdc, 0xeb, 0x85, 0x81, 0xfb, 0x4a, 0x9e, 0xa3, 0x18, 0x2c, 0x2d, 0xfc, 0x23, 0x1a}: "SmmSvcCallback", efi.GUID{0xb2, 0xad, 0x08, 0x97, 0xb1, 0x28, 0xf7, 0x46, 0x9a, 0x6c, 0xe7, 0x44, 0x97, 0xfa, 0x66, 0x79}: "EfiSdioProtocol", efi.GUID{0xb2, 0xae, 0x3a, 0x29, 0xb4, 0x73, 0xb2, 0x43, 0xab, 0xd0, 0xe8, 0x7a, 0x59, 0x65, 0x42, 0x4e}: "AltModeSxSmi", efi.GUID{0xb2, 0xb1, 0x6f, 0xc5, 0x7b, 0x01, 0x84, 0x49, 0xa3, 0xf6, 0x3f, 0x73, 0x4f, 0xfa, 0x9e, 0x33}: "EfiUdpProtocol", efi.GUID{0xb2, 0xcc, 0x26, 0x44, 0x84, 0xe6, 0x8a, 0x4a, 0xae, 0x40, 0x20, 0xd4, 0xb0, 0x25, 0xb7, 0x10}: "EfiPeiS3ResumePpiGuid", efi.GUID{0xb2, 0xcc, 0xba, 0x26, 0x42, 0x6f, 0xd4, 0x11, 0xbc, 0xe7, 0x00, 0x80, 0xc7, 0x3c, 0x88, 0x81}: "EfiMetronomeArchProtocolGuid", efi.GUID{0xb2, 0xd0, 0x66, 0xe6, 0x77, 0xe2, 0x2b, 0x7f, 0xbe, 0xcb, 0xe7, 0xd7, 0x5c, 0x9a, 0x81, 0x2e}: "SvrNbDxe", efi.GUID{0xb2, 0xd0, 0xec, 0xe4, 0x77, 0xe2, 0x2b, 0x4f, 0xbe, 0xcb, 0xe4, 0xd7, 0x5c, 0x9a, 0x81, 0x2e}: "NbDxe", efi.GUID{0xb2, 0xd3, 0x8b, 0xb9, 0x40, 0xec, 0x26, 0x48, 0x95, 0x47, 0x16, 0xdc, 0xb6, 0xbf, 0xa6, 0x0a}: "DellBcRcvExtractor", efi.GUID{0xb2, 0xd3, 0xb1, 0xe5, 0x64, 0x5e, 0x72, 0x49, 0x86, 0xe1, 0x7d, 0x38, 0xfb, 0x9d, 0x61, 0xeb}: "OemSmi", efi.GUID{0xb2, 0xd9, 0x05, 0x73, 0xae, 0x95, 0x50, 0x42, 0xbd, 0x78, 0x39, 0x6c, 0x3b, 0x6a, 0xc2, 0xee}: "RecoveryImageReadWriteV2", efi.GUID{0xb2, 0xef, 0x83, 0x86, 0xe1, 0xfd, 0xff, 0x4a, 0xb2, 0xdb, 0xe9, 0x64, 0x49, 0xfd, 0xd4, 0xe9}: "S3Pei", efi.GUID{0xb2, 0xfb, 0x48, 0xaa, 0x87, 0x9f, 0xfd, 0x4d, 0xb4, 0x16, 0x57, 0x59, 0x38, 0xf0, 0xc8, 0xf4}: "PropertiesTableAttributesDxe", efi.GUID{0xb3, 0x03, 0x3b, 0x37, 0x22, 0xd3, 0x3d, 0x42, 0x94, 0xe6, 0x26, 0x74, 0xa7, 0x21, 0x5b, 0xe3}: "FjGabiFlashCommonDeRegionCtrlDxe", efi.GUID{0xb3, 0x0c, 0x79, 0xd3, 0x90, 0xa8, 0x5a, 0x4a, 0xa4, 0x2e, 0xec, 0xb6, 0xb1, 0x40, 0xd8, 0x14}: "UHESerial", efi.GUID{0xb3, 0x0c, 0x9b, 0x79, 0xfd, 0xf2, 0x71, 0x45, 0x85, 0x22, 0x29, 0x53, 0x6e, 0xfe, 0x30, 0xbf}: "SystemEventLogSmm", efi.GUID{0xb3, 0x0f, 0xc4, 0x8e, 0x05, 0x42, 0x57, 0x4d, 0x90, 0x39, 0xa1, 0x92, 0x83, 0x2c, 0x7c, 0xed}: "DellEcConfigDxe", efi.GUID{0xb3, 0x13, 0x1d, 0x6d, 0x74, 0x88, 0x92, 0x4e, 0xae, 0xd5, 0x22, 0xfc, 0x7c, 0x4f, 0x73, 0x91}: "BiosGuardDxe", efi.GUID{0xb3, 0x17, 0x8c, 0x66, 0x21, 0x7e, 0x29, 0x42, 0xa0, 0x72, 0x29, 0x36, 0xf4, 0x14, 0xd7, 0x3d}: "LEMRomLayoutDxe", efi.GUID{0xb3, 0x17, 0x9d, 0x4b, 0xc9, 0x4d, 0xd9, 0x45, 0x8f, 0x06, 0xbd, 0xd3, 0xf9, 0xa4, 0x5e, 0x5c}: "AmdI2c3MasterDxe", efi.GUID{0xb3, 0x22, 0x21, 0xda, 0x4c, 0x45, 0x21, 0x43, 0x8f, 0x43, 0x8a, 0x61, 0x0a, 0xff, 0xeb, 0x80}: "PspResumeServicesSmm", efi.GUID{0xb3, 0x2a, 0xc1, 0x0a, 0x33, 0xdd, 0x60, 0x44, 0x87, 0xf5, 0x82, 0x69, 0x4d, 0x3d, 0x74, 0x02}: "SmcOFBDNull", efi.GUID{0xb3, 0x2e, 0xa8, 0xfd, 0xa4, 0x28, 0x50, 0x49, 0x84, 0xf6, 0x3d, 0x49, 0xa7, 0x3f, 0x04, 0x87}: "PlatformSmm", efi.GUID{0xb3, 0x32, 0xca, 0xd4, 0xfe, 0xb1, 0xf7, 0x4f, 0xb0, 0x73, 0x60, 0xed, 0xbb, 0x16, 0x22, 0x33}: "AmiDimmSpdDataHob", efi.GUID{0xb3, 0x34, 0x53, 0xa2, 0x7c, 0x46, 0x52, 0x41, 0xac, 0x84, 0xf4, 0xc2, 0x01, 0xee, 0xf8, 0xc3}: "AmdFabricStxhDxe", efi.GUID{0xb3, 0x37, 0x06, 0xb4, 0x70, 0x42, 0x2f, 0x4d, 0xb2, 0xb5, 0xd4, 0x1c, 0xfc, 0x4e, 0x0a, 0x56}: "CapsuleSmi", efi.GUID{0xb3, 0x44, 0x4e, 0xab, 0x86, 0x17, 0xcb, 0x4b, 0xbb, 0x8f, 0x98, 0xc3, 0x49, 0x14, 0x0d, 0x69}: "FchHuashanSsdt", efi.GUID{0xb3, 0x58, 0x97, 0x60, 0x0c, 0xda, 0xab, 0x4c, 0x84, 0xf0, 0x79, 0x3e, 0x84, 0x34, 0xc5, 0x7c}: "AcerProductInfoDxe", efi.GUID{0xb3, 0x60, 0xc9, 0x09, 0x83, 0xda, 0xbe, 0x47, 0xbb, 0xc4, 0x81, 0x26, 0x7b, 0xa9, 0xb0, 0x02}: "FlashBootFlag", efi.GUID{0xb3, 0x67, 0xb6, 0x1e, 0xd6, 0x3d, 0x19, 0x4f, 0xba, 0x60, 0x7c, 0x46, 0x38, 0xac, 0x40, 0x62}: "AcerPortingDxe", efi.GUID{0xb3, 0x68, 0xb4, 0x88, 0x8b, 0xa4, 0x87, 0x4b, 0xab, 0xe2, 0x8e, 0x56, 0xdf, 0xfd, 0xaf, 0x8d}: "DualBiosSMM", efi.GUID{0xb3, 0x6e, 0x2b, 0xcd, 0x11, 0xea, 0x48, 0x48, 0xb6, 0x87, 0xaf, 0xe5, 0x7d, 0x3d, 0x1c, 0x0f}: "ApplePpiPlatformInfoDB", efi.GUID{0xb3, 0x84, 0x0f, 0x39, 0x1c, 0x22, 0x9e, 0x4d, 0xb5, 0x06, 0x6d, 0xb9, 0x42, 0x3e, 0x0a, 0x7e}: "ShellHttpHii", efi.GUID{0xb3, 0x85, 0x08, 0x0e, 0xa2, 0x07, 0xaa, 0x41, 0x82, 0xe7, 0x80, 0x6a, 0x47, 0xa9, 0x21, 0x5e}: "Parade_Retimer_FmpDxe_FwUpd", efi.GUID{0xb3, 0x86, 0x0b, 0xf5, 0x2f, 0x13, 0x98, 0x49, 0xb3, 0x86, 0x2d, 0x49, 0xdc, 0xb7, 0x92, 0x50}: "AsusTCG2DxeSetupItem", efi.GUID{0xb3, 0x86, 0xfd, 0x79, 0x4f, 0xd7, 0x6f, 0x4d, 0x95, 0x77, 0xfb, 0xe0, 0x62, 0x97, 0x70, 0x86}: "SerialDebugInitDxe", efi.GUID{0xb3, 0x89, 0xa0, 0x23, 0xd5, 0xee, 0xc5, 0x4a, 0xb2, 0xab, 0x43, 0xe3, 0x29, 0x8c, 0x23, 0x43}: "VariableSmm", efi.GUID{0xb3, 0x8f, 0xe8, 0x7c, 0xd7, 0x4b, 0x79, 0x46, 0x87, 0xa8, 0xa8, 0xd8, 0xde, 0xe5, 0x0d, 0x2b}: "EfiEventReadyToBootGuid", efi.GUID{0xb3, 0x93, 0xc0, 0x5f, 0x00, 0x94, 0x36, 0x4d, 0xb3, 0x4f, 0x4e, 0xeb, 0x07, 0xaa, 0x65, 0xd4}: "PciDxeInit", efi.GUID{0xb3, 0x99, 0xda, 0x03, 0xf4, 0xdd, 0x7e, 0x4c, 0x8c, 0xca, 0x21, 0x6f, 0xc3, 0xf1, 0xf3, 0x11}: "BaseFspSecPlatformLibNull", efi.GUID{0xb3, 0xaf, 0x25, 0x43, 0x11, 0x9f, 0xc7, 0x42, 0xa2, 0x93, 0x94, 0xaa, 0xe3, 0x80, 0x49, 0x42}: "FjUpdateSystemInfoDxe", efi.GUID{0xb3, 0xb2, 0xde, 0xe9, 0xe4, 0x88, 0xd2, 0x46, 0xb9, 0xa4, 0xf6, 0x0c, 0xac, 0xb9, 0x18, 0xdc}: "SmcRiserCardPei", efi.GUID{0xb3, 0xb6, 0xaa, 0x22, 0xad, 0xfd, 0x83, 0x43, 0xa6, 0xd4, 0x1c, 0xba, 0xd1, 0x57, 0xc8, 0x95}: "AcpiI3cSlaveSsdt", efi.GUID{0xb3, 0xbb, 0x84, 0xf6, 0x02, 0xc8, 0xc5, 0x47, 0xa5, 0x9b, 0xa3, 0x92, 0xad, 0xf7, 0x2a, 0xaf}: "FabricTopologyDump", efi.GUID{0xb3, 0xc5, 0x18, 0x1f, 0xed, 0x29, 0x9e, 0x4d, 0xa5, 0x04, 0x6d, 0x97, 0x8e, 0x7e, 0xd5, 0x69}: "QncS3CodeInLockBoxGuid", efi.GUID{0xb3, 0xc5, 0x69, 0x68, 0x8d, 0xac, 0x73, 0x49, 0x8b, 0x37, 0xe3, 0x54, 0xdb, 0xf3, 0x4a, 0xdd}: "CmosManagerSmm", efi.GUID{0xb3, 0xcc, 0xba, 0x26, 0x42, 0x6f, 0xd4, 0x11, 0xbc, 0xe7, 0x00, 0x80, 0xc7, 0x3c, 0x88, 0x81}: "EfiTimerArchProtocolGuid", efi.GUID{0xb3, 0xd0, 0x55, 0xf6, 0x5d, 0x61, 0x22, 0x40, 0x96, 0x45, 0x0d, 0x1f, 0x2e, 0x9d, 0xf7, 0x8a}: "CompalCMFCOEMSwSmi", efi.GUID{0xb3, 0xd6, 0xd5, 0xcf, 0x21, 0x3c, 0x15, 0x4f, 0xb0, 0xe8, 0x08, 0x8f, 0x01, 0x28, 0x89, 0x0d}: "OemInt15CallbackSmm", efi.GUID{0xb3, 0xdc, 0xae, 0xa2, 0x80, 0x80, 0x3f, 0x4c, 0xb4, 0x14, 0x7a, 0x05, 0xd2, 0x5e, 0x06, 0x99}: "DellNtfsDxe", efi.GUID{0xb3, 0xdd, 0x65, 0xe0, 0xfa, 0x8d, 0xe0, 0x4c, 0xa1, 0x59, 0x11, 0xd7, 0xb6, 0xfe, 0xa5, 0x89}: "DellHwmIoSmm", efi.GUID{0xb3, 0xe0, 0x46, 0x02, 0xea, 0xe8, 0x03, 0x4e, 0xb2, 0xa5, 0x39, 0xfa, 0x93, 0x7f, 0xd1, 0x22}: "SsidPei", efi.GUID{0xb3, 0xf0, 0xde, 0x0e, 0x91, 0xef, 0x35, 0x49, 0x85, 0x9e, 0x23, 0x38, 0xdf, 0xfa, 0xc0, 0x99}: "MpdtUpdateDxe", efi.GUID{0xb3, 0xf1, 0x5c, 0x90, 0xf8, 0x32, 0x9c, 0x48, 0xa6, 0x41, 0x46, 0xa7, 0x14, 0x58, 0x32, 0x62}: "PcieErrorEnable", efi.GUID{0xb3, 0xf2, 0x8c, 0xb8, 0xce, 0x5c, 0x2c, 0x48, 0x8d, 0xb4, 0x6f, 0x32, 0x9a, 0x73, 0xbd, 0x6d}: "Rtk8156UsbUndiDxe", efi.GUID{0xb3, 0xf8, 0xf3, 0x1c, 0xb1, 0xc5, 0xa2, 0x49, 0xaa, 0x59, 0x5e, 0xef, 0x92, 0xff, 0xa6, 0x3c}: "EfiIa32X64ErrorTypeBusCheckGuid", efi.GUID{0xb3, 0xfa, 0x2a, 0x19, 0xf8, 0x55, 0xb8, 0x44, 0xb4, 0x9e, 0x27, 0x5a, 0x9d, 0xfd, 0xd0, 0x3f}: "SetupFunction", efi.GUID{0xb3, 0xfc, 0xf2, 0x7f, 0x68, 0xe8, 0x2d, 0x49, 0x90, 0x63, 0x6d, 0x22, 0xe6, 0xa2, 0xb1, 0x4c}: "SDConfigureSSID", efi.GUID{0xb4, 0x03, 0x16, 0x08, 0x1d, 0x0f, 0x22, 0x40, 0xb6, 0xfd, 0x4c, 0xe3, 0x5e, 0x09, 0xa1, 0xa6}: "EfiUnixNetwork", efi.GUID{0xb4, 0x05, 0x62, 0x72, 0x4d, 0x2e, 0x06, 0x46, 0x99, 0x8b, 0x6b, 0x2a, 0x3e, 0x88, 0x58, 0xe4}: "DellWBootCapsuleProtocol", efi.GUID{0xb4, 0x07, 0x75, 0x7e, 0xe1, 0x45, 0xd6, 0x21, 0x43, 0xe3, 0x32, 0xb9, 0xf7, 0xf4, 0x72, 0x0e}: "Ds125Br401aPei", efi.GUID{0xb4, 0x0d, 0xc6, 0xf8, 0x27, 0xd4, 0x6e, 0x43, 0xaf, 0x93, 0x5f, 0xcc, 0xda, 0x0d, 0xa3, 0x7b}: "DellThermInfoConfigSmm", efi.GUID{0xb4, 0x2f, 0x15, 0xef, 0x2f, 0x7b, 0x7d, 0x42, 0xbd, 0xb4, 0x7e, 0x0a, 0x05, 0x82, 0x6e, 0x64}: "BootFlowVariable", efi.GUID{0xb4, 0x2f, 0x23, 0x70, 0xf4, 0x81, 0xf6, 0x49, 0xaa, 0x05, 0x51, 0xd9, 0x9e, 0xbd, 0xc3, 0x52}: "PciPlatform", efi.GUID{0xb4, 0x37, 0x30, 0x36, 0x19, 0x1e, 0xf1, 0x4a, 0xaa, 0x61, 0x6f, 0xc8, 0xc0, 0x1a, 0x42, 0x7e}: "BoardUpdateAcpiDxe", efi.GUID{0xb4, 0x3c, 0x52, 0x5e, 0x97, 0xd3, 0x86, 0x49, 0x87, 0xbd, 0xa6, 0xdd, 0x8b, 0x22, 0xf4, 0x55}: "AtaAtapiPassThruDxe", efi.GUID{0xb4, 0x4c, 0xb1, 0x24, 0x4a, 0xa1, 0x9a, 0x4e, 0xaa, 0xd2, 0x85, 0x33, 0x35, 0xfa, 0x32, 0x97}: "AmdCpmModernStandbyFeatureDxe", efi.GUID{0xb4, 0x4e, 0x72, 0x8e, 0x14, 0xf3, 0x7a, 0x49, 0x84, 0xf3, 0x36, 0x7a, 0x47, 0xe6, 0x09, 0x10}: "DellIoExpanderDxe", efi.GUID{0xb4, 0x52, 0xd6, 0x3c, 0x33, 0x6d, 0xce, 0x4d, 0x89, 0xdb, 0x83, 0xdf, 0x97, 0x66, 0xfc, 0xca}: "EfiVectorHandoffInfoPpiGuid", efi.GUID{0xb4, 0x56, 0x71, 0xb0, 0x47, 0x59, 0x85, 0x48, 0xa3, 0xed, 0xfb, 0x1d, 0xfa, 0x94, 0x9a, 0xe4}: "PdHostInterfaceItePei", efi.GUID{0xb4, 0x58, 0x23, 0x2d, 0x6c, 0xe9, 0x4d, 0x48, 0xb2, 0xdd, 0x7c, 0x2e, 0xdf, 0xc7, 0xd5, 0x6f}: "ConsolePrefFormSet", efi.GUID{0xb4, 0x61, 0x93, 0x6d, 0x34, 0xb5, 0x25, 0x4c, 0x99, 0xd3, 0x1f, 0x12, 0xc6, 0x79, 0x4e, 0x8e}: "IioRasInit", efi.GUID{0xb4, 0x63, 0x3c, 0xc5, 0xc1, 0x39, 0x85, 0x41, 0xbc, 0x9b, 0x0f, 0xe9, 0x72, 0x2a, 0x0c, 0x60}: "SmrrEnableHobGuid", efi.GUID{0xb4, 0x6a, 0x7a, 0x9a, 0xa6, 0x9d, 0xa4, 0x4a, 0x90, 0xcb, 0x6d, 0x4b, 0x79, 0xed, 0xa7, 0xb9}: "HashInstanceLibSha1", efi.GUID{0xb4, 0x70, 0xca, 0xf8, 0x85, 0x6a, 0x16, 0x46, 0x8b, 0xde, 0x3e, 0xc5, 0x69, 0x64, 0x4a, 0xc3}: "LenovoW25Q32FlashPartSmm", efi.GUID{0xb4, 0x75, 0x0e, 0x6c, 0xb9, 0xb0, 0xd1, 0x44, 0x82, 0x10, 0x33, 0x77, 0xd7, 0xb4, 0xe0, 0x66}: "SmmAccessPei", efi.GUID{0xb4, 0x82, 0x97, 0xb6, 0xcd, 0x69, 0xff, 0x19, 0x91, 0x2b, 0x84, 0x43, 0x52, 0xf4, 0x7b, 0xd9}: "MrcDispatcher", efi.GUID{0xb4, 0x87, 0x22, 0x10, 0x12, 0x6b, 0x41, 0x4d, 0x91, 0xe1, 0xeb, 0xee, 0x1f, 0x3a, 0xa6, 0x14}: "UefiDebugLibDebugPortProtocol", efi.GUID{0xb4, 0x92, 0x2f, 0x49, 0xea, 0xf0, 0x75, 0x48, 0x9c, 0x59, 0x80, 0xce, 0xd0, 0xb9, 0x0a, 0x31}: "M24Lc256Pei", efi.GUID{0xb4, 0x94, 0xb1, 0x22, 0x0e, 0xcc, 0xc7, 0x46, 0x9f, 0xce, 0xda, 0x10, 0xd6, 0xed, 0x17, 0x31}: "PchSmbusArpEnabled", efi.GUID{0xb4, 0x94, 0xc8, 0x95, 0xec, 0xda, 0xe1, 0x46, 0x86, 0x00, 0x3c, 0x4c, 0x7f, 0xc9, 0x85, 0xd6}: "BiosGuardRecovery", efi.GUID{0xb4, 0x96, 0x1d, 0xd2, 0xc6, 0x20, 0x30, 0x4f, 0x8e, 0x82, 0x67, 0x01, 0x48, 0x5b, 0x10, 0x49}: "DellLomPolicy", efi.GUID{0xb4, 0x96, 0xeb, 0x4b, 0x69, 0xc0, 0x49, 0x4c, 0x84, 0x5f, 0x1c, 0x1c, 0xc6, 0x8c, 0xd8, 0xd6}: "FchShastaSsdt", efi.GUID{0xb4, 0x97, 0x1e, 0x26, 0xb5, 0xfb, 0xb1, 0x4d, 0xb2, 0x5c, 0x13, 0x27, 0x0b, 0xa7, 0xbb, 0x60}: "EmulatedEepromDxe", efi.GUID{0xb4, 0x9b, 0x70, 0xd3, 0x94, 0xb1, 0x71, 0x4b, 0xb9, 0xc0, 0xdb, 0xd8, 0xd2, 0xda, 0x97, 0xad}: "IntelIchLegacyInterruptDxe", efi.GUID{0xb4, 0xa3, 0x71, 0xd0, 0xc1, 0x3e, 0xc5, 0x40, 0xbe, 0xf8, 0xd0, 0xbd, 0x4a, 0x24, 0x46, 0xf0}: "PayloadLoaderPeim", efi.GUID{0xb4, 0xa8, 0x65, 0xae, 0xa3, 0x05, 0xfc, 0x4c, 0xa4, 0x86, 0xf3, 0x14, 0x9a, 0xa3, 0x4b, 0xc0}: "DellMfgModeDxe", efi.GUID{0xb4, 0xa8, 0xaa, 0xf9, 0xa4, 0xb4, 0xdc, 0x4a, 0x9e, 0x28, 0x29, 0xca, 0xd2, 0x22, 0xe1, 0x5a}: "FjSysmanAmphion", efi.GUID{0xb4, 0xae, 0x5d, 0x9e, 0x91, 0x4b, 0x66, 0x44, 0x9e, 0xbe, 0x81, 0xc7, 0xe4, 0x40, 0x1e, 0x6d}: "H2OFormBrowserDxe", efi.GUID{0xb4, 0xb0, 0xda, 0x69, 0xd9, 0x5f, 0xec, 0x4f, 0xaa, 0x30, 0x29, 0x8d, 0x2b, 0x5a, 0x34, 0x2e}: "DellFormBrowser3", efi.GUID{0xb4, 0xb3, 0x76, 0xec, 0x21, 0x68, 0x4b, 0x4d, 0xa0, 0xab, 0xd2, 0x8c, 0xc2, 0x7a, 0xc4, 0x39}: "AmdSmmControl", efi.GUID{0xb4, 0xc4, 0x63, 0x38, 0x58, 0xad, 0x83, 0x43, 0xab, 0x89, 0x0e, 0x0b, 0x76, 0x8d, 0xdb, 0x70}: "AplLayoutParsing", efi.GUID{0xb4, 0xc5, 0x92, 0xce, 0xb3, 0x14, 0xe1, 0x4a, 0xa2, 0x74, 0x3f, 0xfe, 0x74, 0xa5, 0xad, 0xc1}: "KEMoSetup", efi.GUID{0xb4, 0xc9, 0x1d, 0xbd, 0x23, 0xc2, 0xf0, 0x4f, 0x9a, 0x41, 0x9b, 0x0f, 0xb8, 0x14, 0xa1, 0x65}: "RealtekLanDxe", efi.GUID{0xb4, 0xca, 0x1d, 0xf9, 0x39, 0x36, 0xee, 0x11, 0xbe, 0x56, 0x02, 0x42, 0xac, 0x12, 0x00, 0x02}: "OobPprDxe", efi.GUID{0xb4, 0xcd, 0xb4, 0x72, 0x97, 0xb2, 0x47, 0x47, 0xb1, 0xba, 0x5a, 0x48, 0x39, 0xd3, 0x32, 0xae}: "AmdFabricRnSmm", efi.GUID{0xb4, 0xd0, 0xb9, 0xb9, 0x5c, 0xe6, 0x0f, 0x40, 0x90, 0xd5, 0x07, 0x29, 0x01, 0x2f, 0x32, 0xe2}: "DefaultsAndWmi", efi.GUID{0xb4, 0xd1, 0xae, 0x0b, 0x4b, 0xb1, 0xf1, 0x40, 0x9d, 0x67, 0xb8, 0xcd, 0x96, 0xf9, 0x23, 0xe4}: "AsusTCONDxe", efi.GUID{0xb4, 0xd8, 0x62, 0xac, 0x8f, 0x3e, 0xd2, 0x4e, 0x9a, 0xd6, 0xdc, 0xea, 0xa1, 0xcb, 0x96, 0xa3}: "DataAccessSupport", efi.GUID{0xb4, 0xdd, 0x87, 0xd4, 0x8b, 0x00, 0xd9, 0x11, 0xaf, 0xdc, 0x00, 0x10, 0x83, 0xff, 0xca, 0x4d}: "EfiSasDevicePathGuid", efi.GUID{0xb4, 0xe6, 0x1d, 0x80, 0x36, 0x20, 0xb7, 0x46, 0xb8, 0xf7, 0x79, 0x20, 0x5c, 0xbd, 0x17, 0x72}: "SmartCoverPortingPei", efi.GUID{0xb4, 0xee, 0x20, 0x58, 0x35, 0xc1, 0x54, 0x48, 0x9d, 0x2a, 0xaa, 0x9e, 0xfc, 0x44, 0x75, 0xe9}: "MeFwDowngrade", efi.GUID{0xb4, 0xf6, 0x08, 0x4f, 0x0b, 0x64, 0x54, 0x4f, 0x84, 0x0f, 0xf2, 0x25, 0xbd, 0x00, 0xb9, 0xf3}: "SpiFvbServiceDxe", efi.GUID{0xb4, 0xf6, 0xe6, 0x73, 0x29, 0xd0, 0x87, 0x4e, 0x84, 0x05, 0x60, 0x67, 0xc8, 0xbd, 0x02, 0xa6}: "UsbPei", efi.GUID{0xb4, 0xf7, 0x38, 0x6b, 0x98, 0xad, 0xe9, 0x40, 0x90, 0x93, 0xac, 0xa2, 0xb5, 0xa2, 0x53, 0xc4}: "DiskIoDxe", efi.GUID{0xb4, 0xfd, 0xc9, 0x81, 0x6f, 0x4d, 0x98, 0x4d, 0xb7, 0xb8, 0x6a, 0x9d, 0xaf, 0x67, 0x7e, 0x73}: "D01HddPassword", efi.GUID{0xb5, 0x00, 0xd7, 0x3e, 0x13, 0x3a, 0xbe, 0x43, 0x94, 0x50, 0x00, 0x12, 0x2e, 0x8b, 0x83, 0xd7}: "DataHubRecordPolicy", efi.GUID{0xb5, 0x07, 0x47, 0xfc, 0xb9, 0xbc, 0xac, 0x42, 0x87, 0x90, 0xe2, 0x26, 0x92, 0x74, 0xff, 0xbd}: "RtkUndiDxe", efi.GUID{0xb5, 0x08, 0xf3, 0x5c, 0x23, 0xfa, 0x00, 0x41, 0x8a, 0x76, 0xf3, 0x26, 0xc2, 0x81, 0x48, 0x80}: "AmiMeasureCPUMicrocodeGuid", efi.GUID{0xb5, 0x12, 0x06, 0x24, 0x63, 0xa0, 0xd4, 0x11, 0x9a, 0x3a, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d}: "IsaBusDxe", efi.GUID{0xb5, 0x12, 0x06, 0x24, 0x63, 0xa0, 0xd4, 0x11, 0x9a, 0x3a, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x8e}: "SmmCoreDispatcher", efi.GUID{0xb5, 0x17, 0xb8, 0xfe, 0x06, 0x50, 0xad, 0x4d, 0xb3, 0xb7, 0xb7, 0x2e, 0x26, 0xff, 0x3e, 0xc3}: "AsusOnBoardDevicePei", efi.GUID{0xb5, 0x19, 0x33, 0xa3, 0xe1, 0x8e, 0xe0, 0x45, 0x8c, 0x9f, 0x80, 0x9f, 0x5b, 0x09, 0x02, 0xcc}: "RsdpPlusProtocol", efi.GUID{0xb5, 0x1a, 0x92, 0x8b, 0xc3, 0xa1, 0x60, 0x46, 0xbd, 0x4b, 0xfa, 0x00, 0xb7, 0x24, 0x84, 0x21}: "PlatformFlashPartDxe", efi.GUID{0xb5, 0x1e, 0x7a, 0xc0, 0x04, 0x5c, 0x00, 0x41, 0x81, 0x7b, 0x0a, 0x11, 0xbb, 0x5f, 0x15, 0xdc}: "CppcDxe", efi.GUID{0xb5, 0x1f, 0xb7, 0x55, 0xc6, 0x17, 0x0e, 0x41, 0xb5, 0xbd, 0x5f, 0xa2, 0xe3, 0xd4, 0x46, 0x6b}: "EfiI2cBusConfigurationManagementProtocolGuid", efi.GUID{0xb5, 0x2b, 0xd3, 0x29, 0x1b, 0x1d, 0xe0, 0x4d, 0x8a, 0xa9, 0x02, 0xd7, 0x90, 0xca, 0x64, 0x3b}: "PmemResetNotify", efi.GUID{0xb5, 0x32, 0x37, 0x68, 0x38, 0x2a, 0xa8, 0x43, 0x9c, 0xe2, 0x02, 0xcd, 0x72, 0x50, 0xdc, 0xd9}: "A01BootDeviceServiceDxe", efi.GUID{0xb5, 0x3c, 0x73, 0x1c, 0x8f, 0x4c, 0xd9, 0x44, 0xbb, 0xf0, 0x95, 0x47, 0x70, 0x89, 0xeb, 0x08}: "DellSmBiosStrucDa", efi.GUID{0xb5, 0x3f, 0xf3, 0xb5, 0xd5, 0x66, 0x01, 0x49, 0xba, 0xf1, 0xf0, 0xc7, 0x74, 0xfc, 0x65, 0x88}: "VgaDriverPolicyDxe", efi.GUID{0xb5, 0x41, 0x4e, 0xe4, 0x58, 0x8b, 0x24, 0x45, 0xbf, 0x1d, 0x4e, 0xe6, 0x08, 0xa5, 0x98, 0x3d}: "BoardAcpiTables", efi.GUID{0xb5, 0x42, 0xea, 0x5a, 0xe1, 0x31, 0x15, 0x45, 0xbc, 0x31, 0xb8, 0xd5, 0x25, 0x75, 0x65, 0xa6}: "EfiExtendedSalBaseIoServicesProtocolGuid", efi.GUID{0xb5, 0x49, 0xf1, 0xec, 0x4e, 0xbf, 0xc8, 0x4a, 0x8a, 0x8c, 0xce, 0x87, 0xcb, 0xac, 0x93, 0xd3}: "EfiSiliconRcHobsReadyPpi", efi.GUID{0xb5, 0x4b, 0x42, 0xa2, 0x41, 0x54, 0xfe, 0x4e, 0xa6, 0x08, 0x2c, 0xcd, 0x60, 0x82, 0x4c, 0x06}: "NvVariableFailDetectPei", efi.GUID{0xb5, 0x4d, 0xd1, 0xf5, 0x0c, 0x2f, 0x11, 0x46, 0x9d, 0xdc, 0x7c, 0x18, 0x2b, 0x17, 0x3a, 0x71}: "ProgressBarEmptyRightEndcap", efi.GUID{0xb5, 0x53, 0xf2, 0x9b, 0x62, 0xb5, 0xfc, 0x4e, 0x98, 0x91, 0x50, 0xb3, 0x22, 0xbe, 0x76, 0x6c}: "AddSmbiosForNFA765", efi.GUID{0xb5, 0x59, 0xe1, 0x0f, 0x6f, 0x07, 0x36, 0x4c, 0xbf, 0x26, 0xd7, 0x24, 0xf2, 0x83, 0x12, 0x52}: "BdsCtrl", efi.GUID{0xb5, 0x5b, 0x4b, 0xcb, 0xa6, 0x59, 0xba, 0x48, 0xa7, 0x7b, 0xb4, 0xe4, 0xb3, 0xd4, 0x91, 0xeb}: "OemDxeWwan", efi.GUID{0xb5, 0x5b, 0x96, 0x38, 0x97, 0x80, 0xf5, 0x40, 0xb7, 0x42, 0x8c, 0xc1, 0x4a, 0x64, 0x9b, 0x64}: "AmiPeiSbCustomPpiGuid", efi.GUID{0xb5, 0x69, 0xdc, 0x2f, 0xec, 0x45, 0x84, 0x42, 0xae, 0xe2, 0x0f, 0x9d, 0xe8, 0x5a, 0xe9, 0xa5}: "AmiQrCode", efi.GUID{0xb5, 0x6f, 0x53, 0xb4, 0x51, 0xe2, 0xda, 0x4e, 0x8b, 0xcf, 0xd4, 0x38, 0x75, 0xbd, 0x1a, 0x11}: "GnbRenoirRouting", efi.GUID{0xb5, 0x6f, 0x53, 0xb4, 0x51, 0xe2, 0xda, 0x4e, 0x8b, 0xcf, 0xd4, 0x38, 0x75, 0xbd, 0x1a, 0x37}: "GnbRavenRouting", efi.GUID{0xb5, 0x71, 0x90, 0xf1, 0xf6, 0xb2, 0x9c, 0x4a, 0xb2, 0xe2, 0xfb, 0xf5, 0x6d, 0xa5, 0xb2, 0x29}: "AmdMemChanXLatZpPei", efi.GUID{0xb5, 0x72, 0x0f, 0x3c, 0x1e, 0xd5, 0xc8, 0x40, 0x90, 0xf1, 0x5a, 0x92, 0x3e, 0x0d, 0x1f, 0x24}: "TpmResiliencyDxe", efi.GUID{0xb5, 0x72, 0x2f, 0xc9, 0xd0, 0x7d, 0x15, 0x4e, 0x9d, 0x2c, 0xa5, 0x2c, 0xbd, 0x30, 0xca, 0x1e}: "LenovoSmpManagerDxe", efi.GUID{0xb5, 0x81, 0xce, 0x57, 0x95, 0xb9, 0x03, 0x47, 0xa4, 0x2a, 0x87, 0x74, 0xa3, 0x53, 0xe5, 0xaa}: "AsusRunTimePaysBios", efi.GUID{0xb5, 0x84, 0x8b, 0x73, 0x84, 0x1e, 0xb9, 0x4e, 0x8e, 0xf8, 0x95, 0xa1, 0x67, 0xea, 0x4a, 0xee}: "NvidiaGraphicsDxe", efi.GUID{0xb5, 0x8d, 0x4e, 0x63, 0x32, 0xc4, 0xbe, 0x43, 0xa6, 0x53, 0x9c, 0xa2, 0x92, 0x2c, 0xc4, 0x58}: "Nvme", efi.GUID{0xb5, 0x95, 0xf1, 0x80, 0xb6, 0xd7, 0x64, 0x4c, 0x84, 0xec, 0x1f, 0x3b, 0xe7, 0x95, 0x75, 0x1d}: "FjPasswordSkipPei", efi.GUID{0xb5, 0x9b, 0x24, 0x0a, 0x18, 0x59, 0xf5, 0x45, 0xb2, 0x20, 0x76, 0xa3, 0xb6, 0xc8, 0x95, 0x29}: "FjLvdsFwDownPei", efi.GUID{0xb5, 0xa5, 0x29, 0x80, 0x88, 0x40, 0xd2, 0x48, 0x96, 0xe0, 0xf7, 0x05, 0x2b, 0xc0, 0xa8, 0x42}: "PttHciSmm", efi.GUID{0xb5, 0xa6, 0x67, 0x6e, 0xef, 0x84, 0x26, 0x4f, 0x90, 0x2f, 0xe5, 0x08, 0xd8, 0xf3, 0xf1, 0xaf}: "AmdMemCzPei", efi.GUID{0xb5, 0xad, 0x21, 0x8e, 0x93, 0x0b, 0x5b, 0x46, 0xbe, 0x61, 0x17, 0x25, 0xde, 0x06, 0xc2, 0xac}: "EXT", efi.GUID{0xb5, 0xb1, 0x72, 0xfd, 0x91, 0x53, 0x6a, 0x4c, 0xbd, 0xfd, 0x9f, 0x59, 0xa7, 0x88, 0x0a, 0x21}: "PlatformRelatedInfoGuid", efi.GUID{0xb5, 0xb2, 0x74, 0x01, 0x05, 0xf5, 0x12, 0x4b, 0xaa, 0x60, 0x59, 0xdf, 0xf8, 0xd6, 0xea, 0x37}: "ShellNetwork2HiiGuid", efi.GUID{0xb5, 0xb3, 0x88, 0x0c, 0x1d, 0x6a, 0x57, 0x46, 0xaa, 0x88, 0x1b, 0x7d, 0x92, 0xff, 0x36, 0x99}: "CompalCMFCCommonSwSmi", efi.GUID{0xb5, 0xcb, 0x38, 0xa8, 0xef, 0x59, 0x93, 0x44, 0x89, 0xd0, 0x13, 0x3c, 0x89, 0x68, 0x90, 0x5d}: "CrbSmbios", efi.GUID{0xb5, 0xd5, 0x23, 0x4e, 0x03, 0xbf, 0xe1, 0x4c, 0xb2, 0x95, 0x13, 0xe6, 0x15, 0xd1, 0x3a, 0x61}: "MpmPldmBase", efi.GUID{0xb5, 0xde, 0x62, 0x39, 0xf6, 0xfd, 0x29, 0x48, 0x88, 0x9c, 0xd5, 0x44, 0x91, 0x8e, 0x84, 0xd9}: "SmmLegacyRegion", efi.GUID{0xb5, 0xe0, 0x47, 0x4c, 0x69, 0xe3, 0x9f, 0x46, 0xb3, 0x59, 0x28, 0xdb, 0xd7, 0x36, 0xa1, 0x31}: "PspSmm", efi.GUID{0xb5, 0xe6, 0xb8, 0x00, 0xce, 0x83, 0x8a, 0x44, 0x8a, 0xc6, 0xcc, 0xbc, 0x9d, 0x5f, 0x3b, 0xe3}: "FchTaishanSmmInit", efi.GUID{0xb5, 0xea, 0x1d, 0x3b, 0x5d, 0xc7, 0x2e, 0x44, 0x92, 0x38, 0x8e, 0x2f, 0xfb, 0x62, 0xb0, 0xbb}: "UefiPxe4BcDxe", efi.GUID{0xb5, 0xf2, 0x80, 0x07, 0xa8, 0xee, 0x94, 0x4a, 0x97, 0xb8, 0x59, 0xc8, 0x27, 0x5d, 0x56, 0x92}: "Ccg4ControllerDetectPortingSmm", efi.GUID{0xb5, 0xf4, 0x72, 0x00, 0xd5, 0x74, 0xc8, 0x4c, 0xaf, 0xf6, 0xcc, 0x94, 0x69, 0xd3, 0x3f, 0x7b}: "UsbMediaCardReaderConfigDxe", efi.GUID{0xb6, 0x03, 0x59, 0xc8, 0xb5, 0x84, 0x78, 0x4d, 0xb5, 0x9d, 0xd2, 0xd6, 0xb9, 0x75, 0x80, 0xf3}: "PngConvertDxe", efi.GUID{0xb6, 0x0d, 0xfa, 0x4e, 0xdc, 0x26, 0xb1, 0x4b, 0xa7, 0x6f, 0x14, 0xbc, 0x63, 0x0c, 0x7b, 0x3c}: "AmtForcePushPetHob", efi.GUID{0xb6, 0x14, 0xfe, 0x17, 0xba, 0x9a, 0xc3, 0x43, 0xbe, 0xb0, 0xd1, 0x2f, 0x81, 0xaa, 0xa8, 0x83}: "AmdCpmDiscreteUSB4Smm", efi.GUID{0xb6, 0x19, 0x71, 0xbb, 0x1f, 0xef, 0x56, 0x40, 0x93, 0x21, 0xcf, 0x29, 0xcc, 0x7a, 0x2f, 0xbc}: "I2cPlatformDxe", efi.GUID{0xb6, 0x21, 0xed, 0x56, 0x23, 0xba, 0x9e, 0x42, 0x89, 0x32, 0x37, 0x6d, 0x8e, 0x18, 0x2e, 0xe3}: "FspPerformanceDataGuid", efi.GUID{0xb6, 0x24, 0x68, 0x82, 0x9b, 0xcc, 0x62, 0x4d, 0x8e, 0x7a, 0x0f, 0xfb, 0xf6, 0x01, 0x3c, 0xbe}: "SmmHeciProtocol", efi.GUID{0xb6, 0x2d, 0x09, 0xdc, 0x93, 0x6f, 0x85, 0x4c, 0x96, 0x15, 0x7c, 0x8b, 0x23, 0xd4, 0x8d, 0xb9}: "HpNetworkConfigDriver", efi.GUID{0xb6, 0x34, 0xef, 0xc3, 0x7d, 0x05, 0x14, 0x46, 0xb3, 0x5d, 0xfd, 0x43, 0x84, 0xfa, 0x23, 0x91}: "AmdFabricRplSmm", efi.GUID{0xb6, 0x44, 0x06, 0x06, 0x7f, 0x6a, 0x97, 0x4a, 0x90, 0x0c, 0x49, 0x64, 0x5d, 0xa9, 0x56, 0xd7}: "FchYuntaiDxe", efi.GUID{0xb6, 0x4c, 0xc2, 0xe2, 0x55, 0xa5, 0xf9, 0x42, 0x84, 0x42, 0xbd, 0xb2, 0xb2, 0xb8, 0xb4, 0x90}: "HsmpBrhDxe", efi.GUID{0xb6, 0x56, 0x26, 0x15, 0x4b, 0x56, 0x8c, 0x4c, 0x87, 0x7e, 0xb6, 0x7f, 0xb7, 0x0d, 0xfd, 0xdc}: "FjHobFlexIOPresence", efi.GUID{0xb6, 0x59, 0xfb, 0xa8, 0x17, 0x84, 0xa1, 0x48, 0xb5, 0x65, 0x19, 0x98, 0x49, 0x27, 0x10, 0x66}: "AsusVerbTable", efi.GUID{0xb6, 0x64, 0x34, 0x01, 0x20, 0xac, 0x86, 0x4e, 0xa2, 0xf9, 0x23, 0xcc, 0x46, 0x50, 0xdd, 0xc2}: "MemoryDiagnostic", efi.GUID{0xb6, 0x65, 0x7b, 0x7b, 0x50, 0xe3, 0x39, 0x41, 0x8f, 0xe4, 0x66, 0x57, 0x72, 0xd3, 0x2a, 0x45}: "IhisiSmm", efi.GUID{0xb6, 0x65, 0x7b, 0x7b, 0x50, 0xe3, 0x39, 0x41, 0x8f, 0xe4, 0x66, 0x57, 0x72, 0xd3, 0x2a, 0x47}: "IhisiSmm", efi.GUID{0xb6, 0x71, 0x38, 0x7a, 0x20, 0x28, 0xc8, 0x4b, 0x9b, 0x7d, 0x78, 0x11, 0xba, 0x3b, 0xe3, 0x47}: "PrmAddrTransDsm", efi.GUID{0xb6, 0x72, 0x2b, 0xed, 0x13, 0x99, 0x2f, 0x43, 0xa1, 0x99, 0x70, 0xa0, 0x5f, 0x7a, 0x30, 0x3d}: "DellMEHandlerDxe", efi.GUID{0xb6, 0x73, 0x0e, 0x22, 0xdb, 0x6b, 0x13, 0x44, 0x84, 0x05, 0xb9, 0x74, 0xb1, 0x08, 0x61, 0x9a}: "EfiFirmwareVolume2ProtocolGuid", efi.GUID{0xb6, 0x73, 0x85, 0xb3, 0x00, 0x62, 0xc5, 0x4a, 0xb5, 0x1d, 0x82, 0xe6, 0x59, 0x38, 0xd7, 0x83}: "RecoveryOnFatIdeDiskGuid", efi.GUID{0xb6, 0x74, 0x4e, 0xc2, 0x55, 0x41, 0x64, 0x4e, 0x9a, 0x91, 0xc1, 0xe4, 0x4f, 0x5d, 0x0b, 0xbe}: "OemGlobalNvsSmm", efi.GUID{0xb6, 0x7b, 0x09, 0x78, 0xcf, 0x48, 0x9b, 0x44, 0x9b, 0xdb, 0xf6, 0x38, 0x49, 0x85, 0x64, 0x60}: "mAmiPpiInternalVarGuid", efi.GUID{0xb6, 0x7d, 0x76, 0x09, 0x2a, 0x41, 0xba, 0x45, 0x80, 0x26, 0xf0, 0x87, 0xca, 0xe2, 0x10, 0xe3}: "DTSPolicy", efi.GUID{0xb6, 0x8d, 0x9e, 0x0d, 0x5a, 0x5a, 0x5b, 0x4a, 0x86, 0x21, 0x85, 0xff, 0xc9, 0xae, 0x45, 0x83}: "DellStealthModePolicy", efi.GUID{0xb6, 0x95, 0x22, 0x2f, 0xb6, 0x1b, 0xb7, 0x4c, 0xbb, 0x9e, 0x15, 0xc2, 0xc3, 0x42, 0x42, 0x77}: "PcieSataController", efi.GUID{0xb6, 0x97, 0x4e, 0x32, 0xfa, 0x55, 0x25, 0x4f, 0xb4, 0x0e, 0xee, 0x41, 0x25, 0xfb, 0x12, 0x15}: "IT889XDxe", efi.GUID{0xb6, 0x99, 0x0c, 0xef, 0xd3, 0xb1, 0x25, 0x40, 0x94, 0x05, 0xbf, 0x6a, 0x56, 0x0f, 0xe0, 0xe0}: "SmbiosMiscDxe", efi.GUID{0xb6, 0x9a, 0xa5, 0x3c, 0xcb, 0x67, 0x85, 0x43, 0x9e, 0xdd, 0x40, 0x7c, 0x49, 0xf0, 0xd9, 0xbc}: "OemBootOsb", efi.GUID{0xb6, 0xa4, 0xbc, 0xec, 0xc3, 0x34, 0x29, 0x48, 0x82, 0x62, 0x5a, 0x57, 0x95, 0xc3, 0x25, 0xfb}: "AmdRasBrhDxe", efi.GUID{0xb6, 0xa9, 0x0f, 0x0c, 0xaf, 0xf3, 0xbd, 0x49, 0x89, 0xc5, 0x6c, 0x2d, 0x43, 0x96, 0x90, 0x72}: "MmioSerialUart", efi.GUID{0xb6, 0xab, 0xd5, 0xa3, 0xa4, 0x9d, 0xee, 0x43, 0xbe, 0x3b, 0xbd, 0xc4, 0x7d, 0x70, 0xf8, 0xfa}: "CPULowSpeed", efi.GUID{0xb6, 0xaf, 0x3b, 0xcd, 0xfb, 0x50, 0xe8, 0x4f, 0x8e, 0x4e, 0xab, 0x74, 0xd2, 0xc1, 0xa6, 0x00}: "EnglishDxe", efi.GUID{0xb6, 0xaf, 0xa4, 0x61, 0xe8, 0x69, 0xdb, 0x4e, 0xa6, 0x06, 0x20, 0xfb, 0x31, 0xc1, 0x3f, 0x82}: "lBoot", efi.GUID{0xb6, 0xb1, 0x57, 0x92, 0xdf, 0x82, 0x69, 0x4b, 0xa8, 0x3b, 0xc1, 0x6d, 0x67, 0x1b, 0x9a, 0x9f}: "ScreenCap", efi.GUID{0xb6, 0xb3, 0x19, 0xa9, 0x4e, 0xd4, 0xf0, 0x41, 0x91, 0x79, 0x8a, 0xa2, 0x4f, 0xf2, 0x26, 0x0e}: "PCIeSataDynamicSetup", efi.GUID{0xb6, 0xb8, 0x3a, 0x2e, 0x9d, 0xac, 0x70, 0x4d, 0xa6, 0x75, 0x54, 0xf5, 0x2f, 0xb2, 0x2d, 0x66}: "AtaPassThru", efi.GUID{0xb6, 0xbb, 0xad, 0xec, 0xae, 0xb0, 0x71, 0x45, 0x94, 0xe3, 0x31, 0x3c, 0x3d, 0x27, 0xa6, 0x11}: "AmdNbioGfxRNDxe", efi.GUID{0xb6, 0xc7, 0x0a, 0x00, 0x4d, 0xf4, 0x20, 0x42, 0xbd, 0x8b, 0x52, 0x1d, 0x30, 0xde, 0xa8, 0x0f}: "HpGraphicsDetectDxe", efi.GUID{0xb6, 0xc7, 0x3a, 0x12, 0x4d, 0xf4, 0x20, 0x42, 0xbd, 0x8b, 0x52, 0x1d, 0x30, 0xde, 0xa8, 0x0f}: "M2CarrierSupportDxe", efi.GUID{0xb6, 0xc9, 0xbf, 0x1c, 0x1e, 0x7f, 0x9e, 0x4e, 0x80, 0x1f, 0xfb, 0xce, 0x4d, 0x92, 0xa7, 0x6d}: "AmiTseBeforeTimeOutGuid", efi.GUID{0xb6, 0xdc, 0x69, 0x7b, 0x4c, 0x42, 0x44, 0x48, 0xa5, 0x3d, 0x08, 0x70, 0x56, 0x38, 0x28, 0x70}: "S3NotifyDispatchPei", efi.GUID{0xb6, 0xdc, 0xc0, 0xb6, 0x4e, 0x43, 0xec, 0x4b, 0xbd, 0xac, 0x8e, 0xe7, 0xed, 0x8a, 0x4e, 0xc8}: "ArithChk", efi.GUID{0xb6, 0xe5, 0x01, 0x8b, 0x19, 0x4f, 0xe8, 0x46, 0xab, 0x93, 0x1c, 0x53, 0x67, 0x1b, 0x90, 0xcc}: "EfiTpmDeviceInstanceTpm12Guid", efi.GUID{0xb6, 0xf6, 0xc2, 0x42, 0x6f, 0x97, 0xbd, 0x4e, 0xb6, 0xa9, 0xfb, 0x41, 0x78, 0xf9, 0x70, 0xfe}: "FchKernSmmInit", efi.GUID{0xb7, 0x01, 0xe2, 0xc7, 0x1e, 0x61, 0xca, 0x4f, 0x83, 0x0e, 0x74, 0x69, 0xc3, 0xb3, 0x92, 0x18}: "FjMfgTestBatteryDxe", efi.GUID{0xb7, 0x0b, 0x98, 0xdd, 0xda, 0x9f, 0x15, 0x4a, 0xbb, 0xd2, 0x73, 0x4e, 0x46, 0x78, 0xb2, 0xb1}: "AmdSocAm5RplPei", efi.GUID{0xb7, 0x10, 0x06, 0xa4, 0x88, 0x49, 0xcd, 0x43, 0x9d, 0x95, 0x9b, 0xe9, 0xe0, 0xe7, 0xa3, 0x11}: "IntelGigabitLan_I210", efi.GUID{0xb7, 0x11, 0xd4, 0x94, 0x69, 0x76, 0xc3, 0x45, 0xba, 0x3b, 0xf3, 0xa5, 0x8a, 0x71, 0x56, 0x81}: "EfiHiiFrontPageClass", efi.GUID{0xb7, 0x12, 0x06, 0x24, 0x63, 0xa0, 0xd4, 0x11, 0x9a, 0x3a, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4c}: "SystemUsbSupportPolicySmm", efi.GUID{0xb7, 0x12, 0x06, 0x24, 0x63, 0xa0, 0xd4, 0x11, 0x9a, 0x3a, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d}: "SystemUsbBusDxe", efi.GUID{0xb7, 0x12, 0x06, 0x24, 0x63, 0xa0, 0xd4, 0x11, 0x9a, 0x3a, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4e}: "SystemUsbSupportPolicyDxe", efi.GUID{0xb7, 0x14, 0x24, 0x34, 0xda, 0x0c, 0xcd, 0x4b, 0x96, 0x81, 0x31, 0x4f, 0xb8, 0x65, 0x65, 0x7d}: "MsiMeUpdateControl", efi.GUID{0xb7, 0x15, 0x84, 0xfb, 0x7e, 0xea, 0x6d, 0x4e, 0x93, 0x81, 0x00, 0x5c, 0x3b, 0xd1, 0xda, 0xd7}: "DellEcConfigPei", efi.GUID{0xb7, 0x20, 0x80, 0x1c, 0xf2, 0xd2, 0xf8, 0x42, 0x85, 0x2b, 0xcb, 0xc2, 0x32, 0xcc, 0xc9, 0xbc}: "AsusROGLiveServiceSupportDxe", efi.GUID{0xb7, 0x22, 0xe3, 0xd6, 0xed, 0x77, 0x94, 0x43, 0x86, 0xfd, 0xfc, 0xed, 0x3c, 0x05, 0x27, 0x80}: "LEMRomLayoutSmm", efi.GUID{0xb7, 0x2c, 0x46, 0x49, 0xff, 0x0c, 0xac, 0x41, 0xb1, 0x39, 0x51, 0xdf, 0xf9, 0x3d, 0x81, 0x40}: "TrackPointElan", efi.GUID{0xb7, 0x31, 0x96, 0x5d, 0x8b, 0x57, 0xe0, 0x43, 0x9e, 0xfc, 0xeb, 0x2c, 0x20, 0x12, 0x48, 0x01}: "SkipPlatformAuth", efi.GUID{0xb7, 0x38, 0x0c, 0x44, 0x16, 0xed, 0xea, 0x49, 0x96, 0x69, 0x31, 0x7e, 0xf9, 0x06, 0x63, 0x5d}: "I2cMasterDxe", efi.GUID{0xb7, 0x38, 0x0d, 0x44, 0x16, 0xe0, 0xea, 0x49, 0x97, 0x69, 0x31, 0x7e, 0xf9, 0x08, 0x83, 0x5d}: "I2cHcOperation", efi.GUID{0xb7, 0x50, 0x80, 0x0c, 0xf0, 0xd2, 0xf8, 0x42, 0x85, 0x2b, 0xd1, 0xde, 0xb2, 0xf2, 0xe9, 0xb0}: "SetupIoDetect", efi.GUID{0xb7, 0x5d, 0x15, 0x40, 0xf6, 0xf2, 0x7e, 0x4f, 0x8b, 0xa8, 0xa3, 0x46, 0x6d, 0x4e, 0xf5, 0xfe}: "RngDxe", efi.GUID{0xb7, 0x6c, 0x24, 0xb3, 0xd4, 0xe9, 0x9c, 0x41, 0x9e, 0x0c, 0x84, 0xe1, 0x0a, 0x3c, 0xd2, 0xfd}: "HstiIhvProviderDxeFHF", efi.GUID{0xb7, 0x78, 0xc0, 0x99, 0xd1, 0xd7, 0xe2, 0x4e, 0xb5, 0x85, 0xcc, 0x64, 0xa3, 0x09, 0x64, 0x0a}: "FjEvte", efi.GUID{0xb7, 0x7a, 0x9c, 0xbb, 0xd9, 0xb8, 0xf3, 0x4b, 0x9c, 0x29, 0x9b, 0xf3, 0x41, 0xe2, 0x17, 0xbc}: "EfiPlatformCpuInfoGuid", efi.GUID{0xb7, 0x7f, 0x62, 0x56, 0x7e, 0x0d, 0xfb, 0x45, 0x9a, 0x18, 0x95, 0x8d, 0x92, 0xe2, 0x78, 0x0a}: "FjPostScreenDxe", efi.GUID{0xb7, 0x82, 0x40, 0xd9, 0xe0, 0x04, 0x86, 0x45, 0x80, 0x72, 0x8f, 0xc5, 0x62, 0xab, 0xbb, 0xfa}: "IncompatiblePciDeviceSupport", efi.GUID{0xb7, 0x85, 0x15, 0xa1, 0xa2, 0x8f, 0x1c, 0x4f, 0xaa, 0x6f, 0xdd, 0x63, 0x09, 0x46, 0x96, 0x13}: "MeFwUpdLcl", efi.GUID{0xb7, 0x86, 0xf4, 0xcb, 0x96, 0xd1, 0x03, 0x4c, 0xaf, 0xe2, 0x33, 0xf3, 0x8e, 0x64, 0xda, 0x16}: "IntegratedTouch", efi.GUID{0xb7, 0x8a, 0xcd, 0xa1, 0x6f, 0xb8, 0xad, 0x43, 0x87, 0x7f, 0xb3, 0x43, 0x8d, 0xff, 0x79, 0x2e}: "HPLnx", efi.GUID{0xb7, 0x9c, 0x6b, 0x2c, 0x3b, 0xa1, 0xee, 0x4e, 0x80, 0xc0, 0x1a, 0x24, 0x0c, 0x8a, 0x69, 0xee}: "IccOverClocking", efi.GUID{0xb7, 0xac, 0x76, 0x24, 0xc7, 0xd4, 0xd3, 0x48, 0xab, 0x73, 0x75, 0x13, 0xb0, 0x3b, 0xb5, 0xdf}: "AmdOemRasRsSmm", efi.GUID{0xb7, 0xb0, 0xb8, 0xc9, 0x85, 0x9c, 0xe8, 0x46, 0xb3, 0x43, 0x36, 0x2f, 0xbd, 0x26, 0xe8, 0xf3}: "MuCryptoDxe", efi.GUID{0xb7, 0xb4, 0x7c, 0x01, 0x0c, 0xb8, 0x40, 0x40, 0xb6, 0xc8, 0xea, 0x98, 0x2b, 0xbb, 0x25, 0xb7}: "AmiSmbusHob", efi.GUID{0xb7, 0xb9, 0x14, 0x50, 0xfe, 0xb3, 0x0d, 0x4d, 0x8f, 0x5a, 0x2b, 0x27, 0x13, 0x2b, 0x77, 0x79}: "AdvBdsDxe", efi.GUID{0xb7, 0xbf, 0xcc, 0xf4, 0xe0, 0xf6, 0xfd, 0x47, 0x9d, 0xd4, 0x10, 0xa8, 0xf1, 0x50, 0xc1, 0x91}: "EfiSmmBase2ProtocolGuid", efi.GUID{0xb7, 0xc4, 0x69, 0xee, 0x9b, 0x7c, 0xbb, 0x41, 0xb4, 0x4b, 0x74, 0x81, 0x37, 0xe7, 0xb5, 0xbc}: "FjKbcSmm", efi.GUID{0xb7, 0xc6, 0x4d, 0x2a, 0xf5, 0x41, 0xdd, 0x45, 0xb4, 0x6f, 0x2d, 0xd3, 0x34, 0xc1, 0xcf, 0x65}: "LenovoConfigVariable", efi.GUID{0xb7, 0xc7, 0xc5, 0x79, 0x83, 0x10, 0xa6, 0x42, 0xad, 0x15, 0x2a, 0x4e, 0x7c, 0x42, 0x74, 0xd7}: "DxeSmmDriverEntryPoint", efi.GUID{0xb7, 0xc8, 0x05, 0x26, 0x64, 0xef, 0x5d, 0x47, 0x90, 0xf5, 0xe7, 0x67, 0x33, 0x9f, 0x4d, 0x3e}: "OemUsbLightBarDxe", efi.GUID{0xb7, 0xcc, 0xdb, 0x4f, 0x29, 0xe8, 0x4c, 0x4b, 0x88, 0x87, 0xb2, 0x3f, 0xd7, 0x25, 0x4b, 0x85}: "EfiRedfishPkgTokenSpace", efi.GUID{0xb7, 0xcd, 0x26, 0x4b, 0xd0, 0xef, 0xae, 0x42, 0x92, 0x11, 0x8c, 0x17, 0x11, 0xc3, 0x69, 0x5b}: "PcdStatusCodeDxe", efi.GUID{0xb7, 0xce, 0xe3, 0x7a, 0xe2, 0x2e, 0xfa, 0x48, 0xaa, 0x49, 0x35, 0x10, 0xbc, 0x83, 0xca, 0xbf}: "PeiSeCPlatformPolicyPpiGuid", efi.GUID{0xb7, 0xd2, 0x8c, 0x6e, 0x36, 0xb6, 0x59, 0x48, 0x85, 0xed, 0xc6, 0x37, 0xbd, 0xca, 0x59, 0x19}: "DellDaServiceTag", efi.GUID{0xb7, 0xd6, 0x7a, 0xc5, 0x15, 0x05, 0xa8, 0x40, 0x9d, 0x21, 0x55, 0x16, 0x52, 0x85, 0x4e, 0x37}: "EdkShell", efi.GUID{0xb7, 0xdc, 0x02, 0x03, 0xa3, 0xa6, 0x7c, 0x46, 0xb8, 0x5e, 0xf2, 0x1d, 0xb7, 0xe8, 0x53, 0x3b}: "SmmDispatchEngine", efi.GUID{0xb7, 0xdc, 0x58, 0xd5, 0x3e, 0x7a, 0x38, 0x4a, 0x8c, 0x46, 0xf6, 0xcf, 0x21, 0xdf, 0xc1, 0xe6}: "BtPreBootDxe", efi.GUID{0xb7, 0xeb, 0xc7, 0xe6, 0x04, 0x16, 0xcb, 0x4f, 0x8f, 0x87, 0xb3, 0xa6, 0xf4, 0x87, 0x30, 0xae}: "OrderedCollectionTest", efi.GUID{0xb7, 0xf0, 0xcc, 0x21, 0x6b, 0x24, 0x2c, 0x41, 0xa3, 0x34, 0x0b, 0x65, 0xa0, 0x7b, 0x28, 0xdf}: "SmmBaseOnSmmBase2Thunk", efi.GUID{0xb7, 0xf1, 0x88, 0x0c, 0x08, 0xdd, 0x29, 0x4e, 0xbe, 0x2d, 0xd0, 0x46, 0x88, 0xa4, 0x2c, 0x74}: "OemKbLightDxe", efi.GUID{0xb7, 0xf9, 0xf7, 0x04, 0x48, 0x12, 0x7c, 0x49, 0xb0, 0xeb, 0x8f, 0x74, 0x8a, 0xbf, 0xca, 0xf0}: "DellVideoProtocol", efi.GUID{0xb7, 0xfd, 0xd7, 0x3f, 0x4e, 0x1c, 0xba, 0x43, 0xa8, 0x57, 0x35, 0x85, 0x7f, 0x9e, 0xd3, 0xf5}: "SystemVariableStoreManagerRuntimeDxe", efi.GUID{0xb8, 0x0b, 0xca, 0xc8, 0xda, 0x67, 0x83, 0x48, 0x8c, 0xfc, 0x91, 0x80, 0xcb, 0x9e, 0xec, 0x68}: "OemActivation", efi.GUID{0xb8, 0x18, 0x22, 0x02, 0x5e, 0xfe, 0xbc, 0x4e, 0xbc, 0x96, 0x74, 0x05, 0x8a, 0x4e, 0x7e, 0x83}: "ErrorGlobeBorder", efi.GUID{0xb8, 0x1f, 0x93, 0x1a, 0x66, 0xc4, 0x4a, 0x45, 0xb6, 0x84, 0x73, 0xad, 0xa2, 0xcb, 0x05, 0x0b}: "AsusPostMessagePei", efi.GUID{0xb8, 0x21, 0xd6, 0x5a, 0x8a, 0xc2, 0x17, 0x44, 0xb6, 0x7a, 0xf7, 0x7f, 0xd1, 0x4b, 0xfb, 0xe4}: "AmiHeciDeliverSmmRuntimeDxe", efi.GUID{0xb8, 0x39, 0x05, 0xe1, 0x35, 0x1c, 0x84, 0x4b, 0x85, 0x93, 0x81, 0x55, 0x5d, 0x06, 0x5d, 0xd5}: "DellDaPasswords", efi.GUID{0xb8, 0x41, 0x36, 0xdc, 0xa8, 0x2f, 0xd3, 0x4e, 0xbc, 0x1f, 0xf9, 0x96, 0x2a, 0x03, 0x45, 0x4b}: "Mtftp4Dxe", efi.GUID{0xb8, 0x41, 0x5e, 0x60, 0x23, 0xe9, 0xcc, 0x47, 0x87, 0xb1, 0xa6, 0xe3, 0x85, 0x26, 0xe7, 0x8d}: "SmbiosCompatiInfo", efi.GUID{0xb8, 0x43, 0xb6, 0xb6, 0x41, 0x2b, 0x61, 0x4a, 0xa2, 0x24, 0xd4, 0xf4, 0x76, 0xef, 0x58, 0x0c}: "AmdCpmOemInitDxe", efi.GUID{0xb8, 0x43, 0xba, 0x0f, 0xdb, 0xac, 0xe2, 0x4e, 0xab, 0x31, 0x0f, 0xa4, 0xd5, 0xb6, 0xc3, 0xc5}: "FastBootTseProtocol", efi.GUID{0xb8, 0x46, 0xaa, 0xab, 0xa3, 0x84, 0x74, 0x4e, 0x88, 0x2f, 0x63, 0x68, 0xf6, 0xed, 0xc9, 0xb8}: "SystemUserMasterHddPwdDxe", efi.GUID{0xb8, 0x49, 0x13, 0x87, 0xe6, 0xc7, 0x3a, 0x44, 0xb9, 0xed, 0x91, 0xa4, 0x1a, 0xff, 0xfc, 0x82}: "SmuV11Dxe", efi.GUID{0xb8, 0x4a, 0x47, 0xa9, 0xb4, 0x1a, 0xbe, 0x43, 0x90, 0xb3, 0x17, 0xd1, 0x19, 0xfe, 0x80, 0x86}: "PxeDriverDl", efi.GUID{0xb8, 0x4e, 0x66, 0xcc, 0x24, 0x3c, 0x86, 0x40, 0xb6, 0xf6, 0x34, 0xe8, 0x56, 0xbc, 0xe3, 0x6e}: "EfiWinNtPassThroughGuid", efi.GUID{0xb8, 0x54, 0xaa, 0x69, 0x95, 0x97, 0x7a, 0x4e, 0x86, 0x89, 0x64, 0xa9, 0x6c, 0x9f, 0xe3, 0xe9}: "PeiGpioControl", efi.GUID{0xb8, 0x55, 0x28, 0x33, 0x6e, 0x61, 0x50, 0x4a, 0xac, 0x7e, 0x75, 0xa2, 0x1b, 0x7f, 0xc4, 0xa1}: "Lnv32MFlashSmm", efi.GUID{0xb8, 0x55, 0x8c, 0xe6, 0x7b, 0xc7, 0x66, 0x4f, 0x83, 0x4f, 0xd7, 0x3b, 0xfb, 0x9f, 0x29, 0xb3}: "AodDxe", efi.GUID{0xb8, 0x60, 0x4b, 0xec, 0xa6, 0xe4, 0x93, 0x42, 0xad, 0x72, 0x49, 0xc6, 0xfa, 0xdd, 0x10, 0xf7}: "PlatformDebug", efi.GUID{0xb8, 0x6b, 0x89, 0x61, 0x0a, 0x55, 0xa6, 0x48, 0xba, 0x27, 0xf0, 0x74, 0x08, 0xd0, 0xaa, 0xb9}: "FjIbvSfuPolicyAbstractionDxeProtocol", efi.GUID{0xb8, 0x6d, 0xc8, 0x00, 0x3b, 0x01, 0xf4, 0x4f, 0xb8, 0xe9, 0x20, 0x8f, 0x4f, 0xcf, 0x1c, 0x00}: "LibSignal", efi.GUID{0xb8, 0x7e, 0xc7, 0xa8, 0xd6, 0xeb, 0x51, 0x4e, 0xa6, 0x1a, 0xb0, 0x36, 0x62, 0x06, 0xb1, 0x7b}: "BctBaseSmmSTP", efi.GUID{0xb8, 0x8b, 0xd8, 0xac, 0x66, 0xd4, 0x8a, 0x4b, 0x8d, 0xa5, 0xec, 0x64, 0x07, 0xa8, 0x3b, 0x28}: "NvmeHealthDxe", efi.GUID{0xb8, 0x9c, 0x3e, 0x1d, 0xaf, 0x43, 0x0b, 0x49, 0x83, 0x0a, 0x35, 0x16, 0xaa, 0x53, 0x20, 0x47}: "EdkiiFaultTolerantWriteGuid", efi.GUID{0xb8, 0x9d, 0x9b, 0x4a, 0x62, 0xec, 0x92, 0x4a, 0x81, 0x8f, 0x8a, 0xa0, 0x24, 0x6d, 0x24, 0x6e}: "MiscSubclassDxe", efi.GUID{0xb8, 0x9f, 0x0b, 0xbc, 0xcf, 0x97, 0x17, 0x4b, 0x9a, 0x9e, 0xf5, 0x74, 0xe6, 0x2c, 0xbc, 0xc4}: "Ip4BmcLanConfig", efi.GUID{0xb8, 0xa3, 0x6c, 0x7a, 0x1b, 0xee, 0x9c, 0x48, 0xb3, 0x00, 0x24, 0x54, 0x4a, 0x7b, 0xd4, 0x18}: "ShellCTestApp", efi.GUID{0xb8, 0xa4, 0x1f, 0x37, 0x42, 0x80, 0xd6, 0x4e, 0xad, 0xa7, 0xa9, 0x87, 0xbd, 0x2c, 0xdf, 0x0a}: "LenovoSystemImageDisplayDxe", efi.GUID{0xb8, 0xad, 0xba, 0xb0, 0x1a, 0xf1, 0x35, 0x4c, 0x8f, 0x24, 0xa5, 0x76, 0x51, 0x13, 0x32, 0x10}: "D01DbmfFileSelectUIDxe", efi.GUID{0xb8, 0xb1, 0x6d, 0xde, 0x5a, 0xc2, 0x4f, 0x4f, 0x8e, 0xc5, 0xde, 0x5d, 0x27, 0x31, 0x21, 0x08}: "OemHooksSmm", efi.GUID{0xb8, 0xca, 0xae, 0x9d, 0xb8, 0xaf, 0xd3, 0x40, 0x80, 0xcd, 0x35, 0x45, 0xd5, 0x02, 0x5d, 0xbb}: "CpuSmm", efi.GUID{0xb8, 0xd3, 0xd0, 0xb5, 0x79, 0x4b, 0x48, 0x4a, 0xb9, 0x81, 0x24, 0x20, 0x1f, 0xaf, 0x20, 0x0c}: "H2OVerifyRegionPei", efi.GUID{0xb8, 0xfb, 0x49, 0x81, 0xcf, 0xa2, 0x34, 0x42, 0xb5, 0x06, 0xb7, 0x62, 0x55, 0xf7, 0xa3, 0x6d}: "EfiQpiRcParm", efi.GUID{0xb9, 0x01, 0x09, 0x90, 0xcd, 0x41, 0x54, 0x4d, 0xa8, 0x42, 0x4d, 0x55, 0x99, 0x80, 0x96, 0x0b}: "AmdCpmThunderboltPeim", efi.GUID{0xb9, 0x0b, 0x98, 0x64, 0xa3, 0x7b, 0xb0, 0x4c, 0xaa, 0x83, 0xfe, 0x39, 0x6a, 0x7f, 0x67, 0x24}: "UbaMainPeim", efi.GUID{0xb9, 0x0d, 0xf6, 0x34, 0xe4, 0xd3, 0x8b, 0x42, 0xb7, 0x70, 0x35, 0x41, 0xc8, 0xe0, 0x51, 0x12}: "SgxConfig", efi.GUID{0xb9, 0x12, 0x06, 0xb4, 0x63, 0xa0, 0xd4, 0x11, 0x9a, 0x3a, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d}: "UsbBotDxe", efi.GUID{0xb9, 0x1a, 0x89, 0xc2, 0x96, 0x9d, 0x5d, 0x47, 0xbe, 0x55, 0x9e, 0xdf, 0x18, 0xf4, 0xd5, 0xef}: "UsbIrq", efi.GUID{0xb9, 0x1b, 0xd0, 0x88, 0x7a, 0x24, 0xf6, 0x46, 0xbb, 0x6e, 0xbb, 0xa4, 0x9f, 0x11, 0x24, 0xf8}: "DellSmmEventDxe", efi.GUID{0xb9, 0x1e, 0xd5, 0x34, 0xdb, 0x76, 0xaf, 0x4c, 0x94, 0xae, 0x93, 0x48, 0x56, 0xe8, 0x95, 0xf6}: "LenovoAtpDxe", efi.GUID{0xb9, 0x24, 0xc0, 0x75, 0x0c, 0xc2, 0x06, 0x45, 0xb8, 0x5c, 0x7c, 0x73, 0x56, 0xf0, 0x23, 0x9b}: "AddonNetworkControlSmm", efi.GUID{0xb9, 0x2a, 0x90, 0xa1, 0x94, 0x53, 0xf2, 0x45, 0x85, 0x7a, 0x12, 0x82, 0x42, 0x13, 0xee, 0xfb}: "AsusMsoaDxe", efi.GUID{0xb9, 0x2c, 0x65, 0xaa, 0x52, 0x2d, 0x24, 0x46, 0x9f, 0xae, 0xd4, 0xe5, 0x8b, 0x67, 0xca, 0x46}: "PchSpiPeim", efi.GUID{0xb9, 0x32, 0x98, 0xa1, 0x25, 0xac, 0xd3, 0x11, 0x9a, 0x2d, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d}: "EfiSimpleNetworkProtocolGuid", efi.GUID{0xb9, 0x37, 0x3d, 0x8f, 0x55, 0xb9, 0x20, 0x43, 0x97, 0xf6, 0xbe, 0x35, 0x9d, 0xe9, 0xe3, 0xb2}: "HpPlatformInfoDxe", efi.GUID{0xb9, 0x38, 0x80, 0x26, 0x91, 0xb6, 0x4c, 0x40, 0x8e, 0x83, 0x58, 0x01, 0x4f, 0x39, 0x19, 0xfc}: "CheckCpuFanState", efi.GUID{0xb9, 0x3b, 0x05, 0x25, 0xae, 0x01, 0xf7, 0x4a, 0x82, 0xa7, 0xcd, 0xa6, 0xd9, 0x54, 0x59, 0x21}: "TouchPad_Synaptics_2nd", efi.GUID{0xb9, 0x3b, 0xce, 0x6f, 0x42, 0x97, 0xfd, 0x4c, 0x8e, 0x9e, 0x39, 0xf9, 0x8d, 0xca, 0x32, 0x71}: "AmiPciSmmHandoffProtocolGuid", efi.GUID{0xb9, 0x44, 0xad, 0xc7, 0x75, 0xa7, 0x01, 0x48, 0xb7, 0x72, 0xa9, 0x64, 0x26, 0x2b, 0xb9, 0x2e}: "ModuleS3ResumePeim", efi.GUID{0xb9, 0x48, 0x45, 0x9d, 0x8d, 0xa4, 0xb4, 0x4d, 0x9a, 0x68, 0x32, 0xc5, 0x13, 0x9e, 0x20, 0x18}: "Tcg2MmSwSmiRegistered", efi.GUID{0xb9, 0x53, 0x32, 0x45, 0x04, 0xa2, 0xe4, 0x46, 0xb8, 0x73, 0xca, 0x22, 0x49, 0xda, 0x48, 0x88}: "SmbiosUpdateDxe", efi.GUID{0xb9, 0x54, 0x53, 0xf6, 0xf0, 0x1f, 0xd7, 0x46, 0xa5, 0xf7, 0x09, 0x26, 0xcb, 0x23, 0x80, 0x48}: "MonoStatusCodePei", efi.GUID{0xb9, 0x56, 0x67, 0x8d, 0x5e, 0xe5, 0x6a, 0x4d, 0xa3, 0xa5, 0x5e, 0x4d, 0x72, 0xdd, 0xf7, 0x72}: "PciHostBridge", efi.GUID{0xb9, 0x58, 0x75, 0x94, 0xeb, 0x64, 0x64, 0x47, 0x9f, 0x74, 0x5e, 0xdb, 0xea, 0x0c, 0x74, 0x81}: "DxePlatform", efi.GUID{0xb9, 0x5a, 0xbe, 0x1e, 0x29, 0x21, 0xe7, 0x49, 0x84, 0xd7, 0xee, 0xb9, 0xfc, 0xe5, 0xde, 0xdd}: "EfiEmmcCardInfoProtocolGuid", efi.GUID{0xb9, 0x63, 0xcf, 0xf4, 0x14, 0x3a, 0x9b, 0x4a, 0xbc, 0xaa, 0x92, 0x68, 0x13, 0xba, 0x75, 0xf1}: "TcgLegacyInstallInt1A", efi.GUID{0xb9, 0x6d, 0x71, 0x44, 0x66, 0xae, 0x93, 0x4e, 0xbb, 0xbf, 0xc7, 0x8d, 0x90, 0x24, 0xdc, 0x47}: "KeepDevStaSmm", efi.GUID{0xb9, 0x74, 0x86, 0xe2, 0xfe, 0xca, 0x29, 0x4b, 0x85, 0xd4, 0x42, 0xac, 0xaa, 0x09, 0xbb, 0x69}: "UsbPxeUndiDriver3", efi.GUID{0xb9, 0x76, 0x1c, 0xf3, 0x55, 0x0b, 0x56, 0x44, 0x99, 0xfe, 0x50, 0xa9, 0xc5, 0xec, 0x11, 0x6c}: "DellDxeSioEmi", efi.GUID{0xb9, 0x7c, 0xb7, 0xbb, 0x2d, 0x76, 0x6c, 0x43, 0xac, 0x40, 0x8e, 0xe4, 0x90, 0x1c, 0x34, 0x46}: "AmdPbsSetupDxe", efi.GUID{0xb9, 0x81, 0x3f, 0xb7, 0xfc, 0x1d, 0x7c, 0x48, 0x82, 0x4c, 0x05, 0x09, 0xee, 0x2b, 0x01, 0x28}: "DebugServicePei", efi.GUID{0xb9, 0x86, 0x71, 0x53, 0xb2, 0x1e, 0x14, 0x41, 0xb1, 0xfc, 0x8a, 0xa8, 0x94, 0x09, 0x35, 0x44}: "EfiPrevBootNgnDimmCfgVariable", efi.GUID{0xb9, 0x87, 0x09, 0x89, 0x09, 0x3e, 0x08, 0x46, 0xa4, 0x68, 0x5e, 0x09, 0x87, 0xb2, 0x04, 0xed}: "FchSongshanI3cDxe", efi.GUID{0xb9, 0x87, 0x29, 0xcb, 0xae, 0x63, 0x91, 0x4b, 0xbf, 0x43, 0x21, 0xff, 0x64, 0x1a, 0x5d, 0x49}: "AmiUpdateDxePolicyCallback", efi.GUID{0xb9, 0x89, 0x0c, 0x24, 0xb1, 0x5b, 0x4d, 0x49, 0xa0, 0xa6, 0x8f, 0x0e, 0x19, 0x35, 0xb4, 0x5b}: "AmdFabricStxKrkSmm", efi.GUID{0xb9, 0x89, 0x7d, 0xc4, 0xdc, 0xb9, 0xa0, 0x4c, 0xbb, 0x20, 0x5b, 0x06, 0xeb, 0xe5, 0x7a, 0x1d}: "IpmbDxe", efi.GUID{0xb9, 0x8d, 0xd6, 0x45, 0x4e, 0x8b, 0xc0, 0x48, 0x99, 0xe9, 0xf2, 0x1f, 0x26, 0x2d, 0xb6, 0x53}: "XhciPei", efi.GUID{0xb9, 0x91, 0x9c, 0x44, 0x07, 0x09, 0xb5, 0x49, 0xaa, 0x76, 0x04, 0xaf, 0x30, 0x97, 0x40, 0x1c}: "SmbiosPlatformDxe", efi.GUID{0xb9, 0x98, 0xb6, 0x83, 0x08, 0x02, 0xcf, 0x4e, 0xbb, 0x83, 0xce, 0x42, 0xd0, 0xbe, 0xfc, 0x4a}: "DellPwByPassSmm", efi.GUID{0xb9, 0x9a, 0xa9, 0xab, 0xe0, 0xc7, 0xcf, 0x42, 0xa5, 0x84, 0x1c, 0x93, 0xac, 0x10, 0x3a, 0xb7}: "DellVideoSmm", efi.GUID{0xb9, 0x9e, 0x4d, 0xc8, 0x03, 0xb7, 0xa1, 0x4c, 0xbf, 0x74, 0x90, 0x31, 0x06, 0xa3, 0x73, 0x46}: "aDefaultDxeLate", efi.GUID{0xb9, 0x9f, 0x78, 0x41, 0xac, 0x02, 0x84, 0x44, 0xbd, 0x40, 0xa3, 0x14, 0x7d, 0x7e, 0xda, 0x25}: "PeiRecoveryLibNull", efi.GUID{0xb9, 0xa1, 0xa9, 0xd6, 0xfd, 0x4b, 0x1e, 0xd6, 0xf0, 0x37, 0x3f, 0xa4, 0xca, 0x06, 0xe0, 0x46}: "Lua", efi.GUID{0xb9, 0xa4, 0x5e, 0x46, 0xfc, 0x0f, 0xe7, 0x40, 0x9c, 0xc2, 0x0f, 0x2c, 0xc3, 0xe6, 0x6d, 0xff}: "TouchscreenIdm", efi.GUID{0xb9, 0xb3, 0x0f, 0x5c, 0xbb, 0xf7, 0x7b, 0x46, 0xa4, 0xdc, 0x89, 0xd7, 0xd5, 0xa5, 0x84, 0x32}: "AsusResLoader", efi.GUID{0xb9, 0xb6, 0x33, 0x32, 0xac, 0xf4, 0xe1, 0x4f, 0x90, 0x21, 0x71, 0xd0, 0xb4, 0xf0, 0xad, 0x82}: "BiosMeFwLayout", efi.GUID{0xb9, 0xb9, 0x92, 0xcd, 0x4c, 0x2d, 0x6b, 0x46, 0x84, 0x58, 0x95, 0x44, 0x7d, 0x8e, 0x4a, 0xfe}: "LenovoSystemSmBiosSmm", efi.GUID{0xb9, 0xc5, 0x09, 0x6c, 0x3f, 0xbf, 0xd2, 0x46, 0x91, 0x98, 0x4a, 0x06, 0x48, 0x26, 0xf4, 0x14}: "EfiWheaPlatformSupportProtocol", efi.GUID{0xb9, 0xe0, 0xfa, 0x90, 0x26, 0xac, 0x82, 0x44, 0xb5, 0x32, 0x9b, 0xed, 0x05, 0x2a, 0x8f, 0x8b}: "VmwVariableDxe", efi.GUID{0xb9, 0xe6, 0x75, 0x31, 0x01, 0x4b, 0x6a, 0x49, 0x9a, 0x2b, 0x64, 0xaf, 0x02, 0xd8, 0x7e, 0x34}: "CpuExceptionHandlerLibNull", efi.GUID{0xb9, 0xfa, 0xb5, 0xb6, 0xc4, 0x75, 0xae, 0x4a, 0x83, 0x14, 0x7f, 0xff, 0xa7, 0x15, 0x6e, 0xaa}: "VARBAK", efi.GUID{0xba, 0x00, 0xdc, 0xe8, 0x1f, 0x41, 0x52, 0x4d, 0xb9, 0x25, 0x50, 0x78, 0x54, 0x36, 0xac, 0x81}: "SmmSleepEvent", efi.GUID{0xba, 0x0d, 0x47, 0x27, 0xdd, 0x64, 0x71, 0x4c, 0x9c, 0xe5, 0x5e, 0x32, 0x72, 0x20, 0x75, 0x98}: "SioSmiSmbAlertDispatcher", efi.GUID{0xba, 0x18, 0xe2, 0x71, 0x3f, 0x0f, 0xb6, 0x46, 0xa4, 0x2e, 0x93, 0xa2, 0xc1, 0x19, 0x5a, 0x31}: "AmdRadeonDriver", efi.GUID{0xba, 0x1d, 0x32, 0x38, 0xe0, 0x4f, 0x17, 0x4e, 0x8a, 0xec, 0x41, 0x30, 0x55, 0xea, 0xed, 0xc1}: "EfiLegacy8259ProtocolGuid", efi.GUID{0xba, 0x21, 0xff, 0x35, 0xb0, 0x8d, 0xb4, 0x48, 0xa6, 0xa7, 0x42, 0x44, 0x0c, 0xe1, 0xdd, 0x7e}: "LegacyInt13Hook", efi.GUID{0xba, 0x28, 0xd5, 0x51, 0x30, 0x97, 0x60, 0x44, 0xab, 0xd4, 0xb1, 0xe5, 0xe3, 0xa4, 0x72, 0xed}: "PcieLanePEI", efi.GUID{0xba, 0x34, 0xad, 0x05, 0x02, 0x6f, 0x14, 0x42, 0x95, 0x2e, 0x4d, 0xa0, 0x39, 0x8e, 0x2b, 0xb9}: "EfiDxeServicesTableGuid", efi.GUID{0xba, 0x3a, 0x3d, 0x83, 0xb4, 0x39, 0xa2, 0x43, 0xb9, 0x30, 0x7a, 0x34, 0x53, 0x39, 0x31, 0xb3}: "UnitTestFrameworkPkgTokenSpace", efi.GUID{0xba, 0x3b, 0xfc, 0x75, 0xa4, 0x72, 0xda, 0x61, 0x41, 0x71, 0x07, 0x4c, 0x82, 0x42, 0x23, 0xc1}: "DigistorWorkAround", efi.GUID{0xba, 0x4c, 0x99, 0xf6, 0x51, 0x23, 0xbc, 0x4e, 0xa2, 0xda, 0x20, 0xba, 0xc2, 0xfe, 0x2c, 0xf3}: "SmmPciLibPciRootBridgeIo", efi.GUID{0xba, 0x52, 0x6c, 0xf2, 0x4b, 0x02, 0x0f, 0x41, 0xb4, 0xfb, 0x2f, 0x34, 0x57, 0x34, 0x43, 0xb4}: "E0104X7", efi.GUID{0xba, 0x5b, 0x60, 0x20, 0xb9, 0x7f, 0x79, 0x42, 0x95, 0x9f, 0x8d, 0xbf, 0x74, 0xcd, 0xb0, 0xc6}: "VideoBios", efi.GUID{0xba, 0x5d, 0x24, 0x84, 0x6b, 0x1b, 0xcd, 0x43, 0xab, 0x59, 0x7b, 0x2f, 0xee, 0x2c, 0x5b, 0xef}: "ASRockBIOSInfoDxe", efi.GUID{0xba, 0x66, 0xbc, 0x89, 0x0b, 0x03, 0x04, 0x4d, 0xa5, 0x67, 0xc6, 0x67, 0x27, 0xeb, 0x99, 0x11}: "FjGenericItemProtectedStorageSmm", efi.GUID{0xba, 0x6c, 0x76, 0x22, 0x44, 0xd4, 0x04, 0x4a, 0x9e, 0x77, 0x50, 0xbb, 0x24, 0x0f, 0x00, 0xa6}: "VPMSmm", efi.GUID{0xba, 0x6f, 0x4b, 0xa9, 0x07, 0xbb, 0x98, 0x4a, 0x87, 0x49, 0xa8, 0x60, 0xd6, 0xeb, 0x77, 0x24}: "LegacyBiosPlatformHookDxe", efi.GUID{0xba, 0x73, 0xd0, 0x2a, 0x27, 0xea, 0xb7, 0x45, 0x9c, 0xfa, 0xf9, 0x47, 0x01, 0x8f, 0xb8, 0xeb}: "QcaWifiDxeDriver", efi.GUID{0xba, 0x78, 0x0a, 0xbf, 0x29, 0xec, 0xcf, 0x49, 0xa1, 0xc9, 0x7a, 0xe5, 0x4e, 0xab, 0x6a, 0x51}: "EfiMtftp6ProtocolGuid", efi.GUID{0xba, 0x7c, 0xc0, 0xc8, 0x2c, 0x2f, 0x6f, 0x41, 0x95, 0x19, 0xd4, 0xf4, 0x9d, 0xa6, 0x57, 0x36}: "DlUefiUndi-X64-release", efi.GUID{0xba, 0x7c, 0xcc, 0x98, 0xdc, 0x90, 0x70, 0x4a, 0x8e, 0xf0, 0x2a, 0x66, 0x22, 0x28, 0x86, 0xa2}: "EsrtConfigPreserve", efi.GUID{0xba, 0x85, 0x79, 0xe9, 0x7b, 0x8a, 0xaf, 0x49, 0x9a, 0x7d, 0x53, 0x34, 0x6a, 0x86, 0xf1, 0xfd}: "DellAutoBifurcateSiPei", efi.GUID{0xba, 0x88, 0xab, 0x5b, 0xe2, 0xe0, 0x74, 0x46, 0xb6, 0xad, 0xb8, 0x12, 0xf6, 0x88, 0x1c, 0xd6}: "DxeVlvPlatformPolicyGuid", efi.GUID{0xba, 0x8c, 0xed, 0x86, 0x9e, 0x83, 0xff, 0x46, 0xa7, 0x40, 0x35, 0x04, 0xd8, 0xa7, 0x98, 0x08}: "PeiOemModule", efi.GUID{0xba, 0x8d, 0x73, 0xd0, 0x1f, 0xb2, 0xa4, 0x45, 0xb5, 0xaf, 0x22, 0xcc, 0x4e, 0x72, 0xed, 0x84}: "FjGabiSystemDataAccessApiSmm", efi.GUID{0xba, 0x8f, 0xaa, 0xcb, 0x80, 0xcf, 0x47, 0x47, 0x91, 0x67, 0xca, 0x05, 0x38, 0x55, 0xb4, 0xe1}: "PlatformVoltageControlPei", efi.GUID{0xba, 0x90, 0x04, 0xa0, 0x1a, 0x3f, 0x4c, 0x4b, 0xab, 0x90, 0x4f, 0xa9, 0x97, 0x26, 0xa1, 0xe8}: "EfiBlockIoCryptoProtocolGuid", efi.GUID{0xba, 0x9c, 0xc6, 0x33, 0x6b, 0xfb, 0xba, 0x40, 0xb8, 0x75, 0xde, 0x56, 0xd4, 0x60, 0x70, 0x21}: "FjHddPasswordDxe", efi.GUID{0xba, 0x9c, 0xd9, 0xa1, 0xf9, 0x81, 0xbf, 0x49, 0xa1, 0x5b, 0xd7, 0xeb, 0xd7, 0xf0, 0xbb, 0x8d}: "PCAL6408A", efi.GUID{0xba, 0xa7, 0x51, 0x4c, 0x95, 0x71, 0x2d, 0x44, 0x87, 0x92, 0xbe, 0xea, 0x6e, 0x2f, 0xf6, 0xec}: "EfiLegacyBiosThunkProtocol", efi.GUID{0xba, 0xa7, 0x7d, 0x67, 0x14, 0xdf, 0x9a, 0x42, 0xa7, 0x4f, 0x78, 0x41, 0x7e, 0x8b, 0x09, 0xe4}: "PhMePeim", efi.GUID{0xba, 0xad, 0x6d, 0x93, 0x50, 0xeb, 0x8b, 0x45, 0xa8, 0x96, 0xc7, 0xa2, 0x8c, 0x01, 0x03, 0x98}: "ClearPasswordByRtcRemoval", efi.GUID{0xba, 0xb4, 0x3a, 0xc9, 0x6e, 0x79, 0x56, 0x49, 0xbf, 0x8a, 0xb4, 0x6e, 0xb1, 0xaf, 0xe7, 0x37}: "MfgDoneSmm", efi.GUID{0xba, 0xb6, 0xd5, 0xdb, 0x34, 0x67, 0x5d, 0x4c, 0xbf, 0x53, 0x2c, 0x21, 0x0d, 0x93, 0xa0, 0x12}: "IsctSmm", efi.GUID{0xba, 0xb7, 0x6e, 0x38, 0x44, 0x63, 0xe8, 0x44, 0x98, 0x5c, 0x39, 0x78, 0xfd, 0x47, 0x91, 0x6b}: "DellTpmdxe", efi.GUID{0xba, 0xbb, 0xe3, 0x19, 0xb1, 0xbe, 0xe8, 0x43, 0xb3, 0x2d, 0x9a, 0xcb, 0xb2, 0x2c, 0x76, 0x39}: "BasePostCodeLibDebug", efi.GUID{0xba, 0xbc, 0xc8, 0x83, 0x0f, 0x81, 0x22, 0x4d, 0x9c, 0xa5, 0x1f, 0x27, 0xb0, 0x92, 0xd5, 0x47}: "GNVS", efi.GUID{0xba, 0xbd, 0x60, 0xe3, 0xce, 0xc3, 0xbe, 0x46, 0x8f, 0x37, 0xb2, 0x31, 0xe5, 0xcb, 0x9f, 0x35}: "FD_Drv_X64", efi.GUID{0xba, 0xc8, 0x5e, 0x56, 0x84, 0xa4, 0xe3, 0x11, 0x80, 0x2b, 0xb8, 0xac, 0x6f, 0x7d, 0x65, 0xe6}: "XenBusDxe", efi.GUID{0xba, 0xcd, 0x93, 0xd8, 0x65, 0x7f, 0xf5, 0x47, 0xa6, 0x7a, 0x22, 0x82, 0x52, 0xf0, 0x36, 0x33}: "DellFmpEc", efi.GUID{0xba, 0xcd, 0xfb, 0x75, 0xc4, 0x28, 0x5a, 0x45, 0xa7, 0x1d, 0x53, 0x6c, 0x9a, 0xb6, 0x50, 0x93}: "SmcSetupModify", efi.GUID{0xba, 0xcf, 0xcb, 0xdd, 0xeb, 0x8e, 0x8a, 0x48, 0x96, 0xd6, 0x09, 0x78, 0x31, 0xa6, 0xe5, 0x0b}: "HashLibBaseCryptoRouterPei", efi.GUID{0xba, 0xd3, 0xe7, 0x8e, 0x46, 0xfa, 0x15, 0x4c, 0xa8, 0xc7, 0xdf, 0x18, 0xb3, 0xda, 0x43, 0xcf}: "SystemSecureVariableStoragePei", efi.GUID{0xba, 0xdd, 0xc0, 0xb0, 0x2e, 0xaf, 0x04, 0x48, 0x8e, 0xad, 0xe4, 0x06, 0x51, 0x23, 0x0d, 0x83}: "DellUefiClass3ConfigDxe", efi.GUID{0xba, 0xe2, 0xb6, 0x7f, 0x50, 0xc5, 0x29, 0x45, 0xa8, 0x5d, 0xa8, 0xa9, 0xd1, 0x3b, 0x85, 0x1e}: "FjGrasscarryDxe", efi.GUID{0xba, 0xe7, 0xa3, 0x23, 0xd1, 0x75, 0xb9, 0x4c, 0x9c, 0x8f, 0x56, 0xfa, 0x4e, 0x48, 0xd9, 0x9e}: "EfiTraceHubDebugLibIa32", efi.GUID{0xba, 0xea, 0x0f, 0xbe, 0x43, 0x34, 0x19, 0x49, 0x9f, 0x3a, 0x2d, 0x42, 0x16, 0x32, 0x9e, 0xa9}: "WinNtAutoScan", efi.GUID{0xba, 0xed, 0x4b, 0x13, 0xcf, 0x7a, 0x95, 0x42, 0xa4, 0xb4, 0x66, 0x56, 0x5e, 0x3e, 0x97, 0xd1}: "OemAcpiNvs", efi.GUID{0xba, 0xed, 0x7b, 0xd9, 0x66, 0xe7, 0xf2, 0x40, 0xac, 0x17, 0x5f, 0xaf, 0x44, 0xa7, 0xbb, 0xf3}: "WiGigSmm", efi.GUID{0xba, 0xf9, 0xcb, 0x4d, 0xc1, 0xde, 0xb0, 0x42, 0x8a, 0x09, 0x01, 0x55, 0x56, 0x94, 0xf6, 0xcf}: "GbtCustomizeButtonSmm", efi.GUID{0xba, 0xfa, 0x4e, 0xf6, 0xa9, 0xd0, 0xc3, 0x42, 0xb5, 0xe8, 0x39, 0x1b, 0x48, 0x64, 0x7b, 0xf1}: "DellGt2LegacyVideoRom", efi.GUID{0xbb, 0x01, 0xc4, 0xe1, 0x36, 0x23, 0xf6, 0x47, 0xa5, 0x12, 0x43, 0x08, 0xf6, 0xf4, 0x29, 0x31}: "BixbyEarlyLink", efi.GUID{0xbb, 0x01, 0xd3, 0xf3, 0xa5, 0xf4, 0xa8, 0x45, 0xb0, 0xb7, 0xfa, 0x99, 0x9c, 0x62, 0x37, 0xae}: "ShellNetwork1HiiGuid", efi.GUID{0xbb, 0x0f, 0x0e, 0x4d, 0x24, 0xad, 0x13, 0x42, 0xb9, 0xb4, 0x69, 0x2b, 0x66, 0x62, 0xcb, 0x36}: "FjTpmDisable", efi.GUID{0xbb, 0x10, 0xb8, 0xbb, 0xf0, 0x5e, 0x8f, 0x4e, 0xb2, 0x98, 0xad, 0x74, 0xaa, 0x50, 0xef, 0x0a}: "EfiTcgWakeEventDataHobGuid", efi.GUID{0xbb, 0x20, 0x28, 0x5b, 0x8a, 0x9a, 0x3d, 0x44, 0xa8, 0x4c, 0x73, 0xb9, 0x25, 0xc5, 0x72, 0x7a}: "AmdApcbRvDxe", efi.GUID{0xbb, 0x27, 0xb4, 0xf4, 0x21, 0xba, 0x16, 0x4f, 0xbc, 0x4e, 0x43, 0xe4, 0x16, 0xab, 0x61, 0x9c}: "EfiArpProtocolGuid", efi.GUID{0xbb, 0x28, 0xef, 0xc2, 0xbd, 0xc6, 0xb6, 0x4c, 0xa3, 0xa1, 0xbf, 0x6b, 0xb7, 0xed, 0xa9, 0xf3}: "SecureBIOCamera", efi.GUID{0xbb, 0x2d, 0x6b, 0xc2, 0xb2, 0x83, 0xf2, 0x4a, 0xbb, 0xd7, 0xd4, 0x55, 0x80, 0x36, 0xde, 0x11}: "EcCapsuleDxe", efi.GUID{0xbb, 0x2e, 0xec, 0x65, 0xa4, 0x79, 0xda, 0x41, 0xaa, 0x73, 0x07, 0x4b, 0x88, 0x42, 0x26, 0xc1}: "PlatformDxe", efi.GUID{0xbb, 0x34, 0xfe, 0x61, 0xeb, 0x92, 0xbd, 0x49, 0x91, 0x51, 0x4d, 0xb9, 0x18, 0x4b, 0x9a, 0x6c}: "FjRuntimeServicesTableSmm", efi.GUID{0xbb, 0x35, 0x34, 0xac, 0xd3, 0xb1, 0xf8, 0x4e, 0x95, 0x7c, 0x80, 0x48, 0x60, 0x6f, 0xf6, 0x71}: "FrameworkHiiOnUefiHiiThunk", efi.GUID{0xbb, 0x35, 0xe8, 0x36, 0x1d, 0x66, 0x37, 0x4d, 0x8d, 0xe5, 0x88, 0x53, 0x25, 0xda, 0xe9, 0x10}: "RomCacheEnablePpi", efi.GUID{0xbb, 0x41, 0x91, 0x29, 0x1a, 0x21, 0xa5, 0x48, 0x92, 0xc0, 0x6f, 0x9a, 0x0a, 0x3a, 0x00, 0x6e}: "PowerManagementAcpiTables2", efi.GUID{0xbb, 0x41, 0xc3, 0x59, 0xbf, 0x28, 0x67, 0x48, 0x99, 0x51, 0xda, 0x47, 0x9e, 0x34, 0x9d, 0x52}: "MTKSuppGen2", efi.GUID{0xbb, 0x43, 0x55, 0xbf, 0xf8, 0x17, 0x51, 0x4c, 0xb4, 0xad, 0x59, 0xc0, 0xe9, 0xd2, 0xd4, 0x8d}: "OemNbTypeDxe", efi.GUID{0xbb, 0x47, 0x5b, 0xac, 0x77, 0x2c, 0x88, 0x46, 0xb5, 0x55, 0x98, 0x7e, 0x18, 0x46, 0xc8, 0x43}: "AcerProductInfoSmm", efi.GUID{0xbb, 0x4e, 0x8f, 0x4e, 0xb9, 0x64, 0x05, 0x4e, 0x9b, 0x18, 0x4c, 0xfe, 0x49, 0x23, 0x50, 0x97}: "EfiMemorySubClassGuid", efi.GUID{0xbb, 0x59, 0x0c, 0x82, 0x4c, 0x27, 0xb2, 0x43, 0x83, 0xea, 0xda, 0xc6, 0x73, 0x03, 0x5a, 0x59}: "SataController", efi.GUID{0xbb, 0x5f, 0xd3, 0xf6, 0xea, 0x63, 0x25, 0x4b, 0x81, 0xa5, 0x5e, 0x62, 0xb4, 0x88, 0x62, 0x92}: "PlatformSetup", efi.GUID{0xbb, 0x6d, 0xee, 0xf6, 0x7f, 0xd6, 0xa0, 0x4e, 0x8b, 0x96, 0x6a, 0x71, 0xb1, 0x9d, 0x84, 0xad}: "EdkiiStatusCodeDataTypeVariableGuid", efi.GUID{0xbb, 0x77, 0xde, 0xa2, 0x7d, 0x79, 0xb5, 0x4b, 0x80, 0xc4, 0x19, 0xae, 0xb8, 0xb5, 0xcd, 0x29}: "ASUSFAKESMI", efi.GUID{0xbb, 0x7e, 0x70, 0x2f, 0x1a, 0x4a, 0xd4, 0x11, 0x9a, 0x38, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d}: "EfiPciRootBridgeIoProtocolGuid", efi.GUID{0xbb, 0x85, 0xce, 0xbd, 0xaa, 0xfb, 0x4e, 0x4f, 0x92, 0x64, 0x50, 0x1a, 0x2c, 0x24, 0x95, 0x81}: "S3SaveStateDxe", efi.GUID{0xbb, 0x86, 0x6f, 0xce, 0x00, 0xb8, 0x71, 0x4c, 0xb2, 0xd1, 0x38, 0x97, 0xa3, 0xbc, 0x1d, 0xae}: "AmiHddSecurityInitProtocolGuid", efi.GUID{0xbb, 0x8d, 0xb5, 0xe5, 0x88, 0x76, 0xb4, 0x44, 0x97, 0xbf, 0x5f, 0x1d, 0x4b, 0x7c, 0xc8, 0xdb}: "EfiEapConfigurationProtocolGuid", efi.GUID{0xbb, 0x9e, 0x08, 0xf4, 0xbd, 0x6f, 0xde, 0x43, 0xab, 0x26, 0x93, 0xb8, 0x2b, 0xa6, 0xe4, 0x75}: "OemColorCalibrationDxe", efi.GUID{0xbb, 0xbe, 0x42, 0xb3, 0xc3, 0x41, 0xab, 0x40, 0xaa, 0x70, 0xe9, 0xf3, 0x74, 0x2d, 0x18, 0x35}: "AmdCcxZen3Dxe", efi.GUID{0xbb, 0xc4, 0x8b, 0x68, 0xdb, 0x6f, 0x33, 0x4b, 0xa8, 0xe1, 0xd7, 0xa9, 0x52, 0xdf, 0x4b, 0x4a}: "AmdSmmControl", efi.GUID{0xbb, 0xcc, 0x24, 0xf8, 0xe0, 0xd8, 0x22, 0x45, 0x8a, 0xa8, 0x65, 0xf0, 0x4b, 0x46, 0x3d, 0xb5}: "AmiPeiCpuinitPolicyPpi", efi.GUID{0xbb, 0xcf, 0xde, 0x66, 0x5c, 0x34, 0x92, 0x48, 0x9c, 0x92, 0xd0, 0x7c, 0x70, 0xdb, 0xc8, 0x17}: "AmdFwConfigSmm", efi.GUID{0xbb, 0xd0, 0xc7, 0x92, 0x9e, 0x67, 0x9d, 0x47, 0x87, 0x8d, 0xd4, 0xb8, 0x29, 0x68, 0x57, 0x8b}: "WdtAppProtocol", efi.GUID{0xbb, 0xdb, 0x31, 0x82, 0xe6, 0x30, 0x9b, 0x45, 0xba, 0x4b, 0x5e, 0xce, 0x97, 0x56, 0x15, 0x39}: "DellUsbCsmSwitchDxe", efi.GUID{0xbb, 0xdb, 0x71, 0xc1, 0xf7, 0x3a, 0x8b, 0x40, 0x95, 0x4e, 0x78, 0x9b, 0xff, 0xd8, 0xcd, 0x2e}: "AsusBackupPei", efi.GUID{0xbb, 0xe6, 0x0f, 0xbc, 0xc9, 0x2c, 0x3e, 0x46, 0x90, 0x82, 0xfa, 0x11, 0x76, 0xfc, 0x67, 0xde}: "EdkIIRedfishConfigHandlerProtocol", efi.GUID{0xbb, 0xe8, 0x9c, 0x31, 0x2e, 0xda, 0xf2, 0x4f, 0xb6, 0x9b, 0x0a, 0x85, 0x41, 0x46, 0xb4, 0x89}: "SystemUsbHidParserDxe", efi.GUID{0xbb, 0xee, 0xce, 0x8d, 0x41, 0x57, 0x92, 0x40, 0x88, 0x4d, 0x14, 0x4e, 0xc4, 0x72, 0x68, 0x2d}: "PrmAddressTranslateModule", efi.GUID{0xbb, 0xf3, 0x71, 0xb8, 0xb7, 0x04, 0xb8, 0x48, 0x9d, 0x8d, 0xab, 0xfa, 0xa9, 0xed, 0xde, 0x61}: "AsusWatchDogTimerPei", efi.GUID{0xbb, 0xfb, 0x2e, 0xb6, 0x23, 0x39, 0xb9, 0x4c, 0xa6, 0xe8, 0xdb, 0x81, 0x8e, 0x82, 0x8a, 0x80}: "MebxSetupBrowser", efi.GUID{0xbc, 0x02, 0x36, 0x4a, 0x05, 0x1a, 0x82, 0x4c, 0x99, 0xb4, 0x58, 0x8c, 0xd2, 0xa3, 0x2c, 0xd5}: "LegacySredir", efi.GUID{0xbc, 0x05, 0x8d, 0xea, 0x48, 0xe3, 0x75, 0x4b, 0xbf, 0x6b, 0x92, 0xe6, 0xb1, 0xe9, 0x80, 0x68}: "HQDxeService", efi.GUID{0xbc, 0x06, 0xa6, 0xac, 0x27, 0x06, 0x18, 0x47, 0xa8, 0xb9, 0xb7, 0xfa, 0x16, 0x0d, 0x80, 0x96}: "PdHostInterfaceIteDxe", efi.GUID{0xbc, 0x13, 0xa9, 0x31, 0x5f, 0x79, 0x22, 0x45, 0xa2, 0x8f, 0x82, 0xa1, 0x8c, 0xfb, 0x81, 0x6a}: "SndwInitDxe", efi.GUID{0xbc, 0x16, 0x23, 0x68, 0x95, 0x55, 0x52, 0x41, 0x97, 0xac, 0x8a, 0x5f, 0xcc, 0xc6, 0xea, 0x8d}: "AmtLockPs2ConInDxe", efi.GUID{0xbc, 0x19, 0x24, 0xc4, 0xdf, 0xf9, 0x50, 0x44, 0x98, 0x3f, 0x1a, 0xd3, 0x55, 0x09, 0xd2, 0xbc}: "DellAmtConfigMm", efi.GUID{0xbc, 0x21, 0x82, 0x74, 0xa9, 0x2b, 0x45, 0x15, 0x8a, 0xa9, 0xa0, 0x3a, 0x85, 0x91, 0x99, 0x9e}: "AppleNetVolume", efi.GUID{0xbc, 0x22, 0x98, 0x94, 0xd3, 0x26, 0xc6, 0x4b, 0x95, 0x4b, 0xf2, 0xc5, 0x81, 0x34, 0x2d, 0xe1}: "SystemXhciDxe", efi.GUID{0xbc, 0x2b, 0x06, 0xfb, 0x9d, 0xf1, 0xf4, 0x4c, 0x81, 0xfd, 0xfa, 0xe5, 0x35, 0xd4, 0x4a, 0x53}: "WifiProfileSync", efi.GUID{0xbc, 0x2b, 0x38, 0xea, 0x2f, 0x19, 0x83, 0x48, 0x9f, 0x30, 0xcf, 0xa4, 0xa5, 0x58, 0x36, 0x2a}: "OemUsbPortMapPei", efi.GUID{0xbc, 0x2d, 0x58, 0x6d, 0x85, 0xdb, 0x14, 0x45, 0x8f, 0xcc, 0x5a, 0xdf, 0x62, 0x27, 0xb1, 0x47}: "EfiPeiS3Resume2PpiGuid", efi.GUID{0xbc, 0x30, 0x0c, 0x9e, 0x06, 0x3f, 0xa6, 0x4b, 0x82, 0x88, 0x09, 0x17, 0x9b, 0x85, 0x5d, 0xbe}: "FrameworkBdsFrontPageFormsetGuid", efi.GUID{0xbc, 0x3f, 0x65, 0xc5, 0x46, 0xb1, 0x91, 0x4b, 0x8e, 0xef, 0x1a, 0xee, 0xae, 0x7a, 0x01, 0x60}: "ToolInitialDxe", efi.GUID{0xbc, 0x3f, 0xbe, 0xc2, 0xb0, 0x0e, 0xbd, 0x4b, 0xbe, 0x9a, 0x32, 0x02, 0x48, 0x1b, 0x76, 0xb2}: "SmbiosDataUpdateDxeBigPineKey", efi.GUID{0xbc, 0x45, 0x34, 0x60, 0x5d, 0x97, 0xa5, 0x44, 0xff, 0xff, 0xff, 0xff, 0xb9, 0x46, 0x54, 0x03}: "XnoteSetupAdvancedDxe", efi.GUID{0xbc, 0x45, 0x7e, 0x4c, 0x23, 0x8a, 0xcd, 0x26, 0x94, 0xad, 0x5d, 0x2c, 0x26, 0x3f, 0x25, 0xfe}: "EfiIioRasProtocol", efi.GUID{0xbc, 0x5f, 0x71, 0xc7, 0xab, 0xe2, 0x33, 0x4a, 0x84, 0x0f, 0x5d, 0xcd, 0x01, 0x98, 0xe5, 0x52}: "SaDxeMiscConfigGuid", efi.GUID{0xbc, 0x61, 0x71, 0x4d, 0x35, 0xbe, 0xaf, 0x43, 0x87, 0x9b, 0x95, 0x6e, 0xb3, 0x79, 0x83, 0xd6}: "AmiMemoryPresentFunctionOverrideGuid", efi.GUID{0xbc, 0x72, 0x53, 0x14, 0xb9, 0x66, 0x6d, 0x47, 0x81, 0xbc, 0x21, 0x27, 0xc3, 0x76, 0xbb, 0x66}: "FFS_pad", efi.GUID{0xbc, 0x76, 0x91, 0xa5, 0x51, 0xa1, 0xc8, 0x49, 0xb5, 0x4a, 0xb4, 0xac, 0x96, 0xf4, 0x36, 0xc3}: "96BoardsI2cDxe", efi.GUID{0xbc, 0x78, 0xef, 0x69, 0x71, 0x3b, 0xcc, 0x4e, 0x83, 0x4f, 0x3b, 0x74, 0xf9, 0x14, 0x84, 0x30}: "DellSmmFlashWriteProtect", efi.GUID{0xbc, 0x79, 0x32, 0xcf, 0x5a, 0xad, 0x13, 0x4a, 0xbe, 0x80, 0xfb, 0x7b, 0x6c, 0x17, 0x73, 0x0d}: "StaticSkuDataDxeBigPineKey", efi.GUID{0xbc, 0x7c, 0x76, 0xb0, 0x05, 0x47, 0x35, 0x4d, 0x88, 0x66, 0x17, 0xa9, 0xb8, 0x5e, 0x38, 0x43}: "EfiMemoryConfigVariableGuid", efi.GUID{0xbc, 0x94, 0x26, 0x2c, 0xd8, 0xfd, 0x2c, 0x45, 0x88, 0x99, 0x2a, 0x1a, 0x6b, 0x40, 0x1d, 0x56}: "SndwInstallDevTopology", efi.GUID{0xbc, 0x96, 0xec, 0x0e, 0x82, 0x0b, 0x73, 0x45, 0x97, 0x91, 0xc4, 0x14, 0xe4, 0xdc, 0xee, 0x64}: "IhisiService", efi.GUID{0xbc, 0xa3, 0x12, 0x32, 0x35, 0xb2, 0x46, 0x4e, 0x89, 0x29, 0xcc, 0xc0, 0x2f, 0x24, 0x47, 0xc9}: "DellVariable2RuntimeDxe", efi.GUID{0xbc, 0xa6, 0xf7, 0x4f, 0x56, 0xee, 0x7b, 0x40, 0xa5, 0x93, 0x99, 0x92, 0x94, 0xc6, 0x15, 0xfc}: "DellErrorMsg", efi.GUID{0xbc, 0xad, 0x6b, 0xa8, 0x5a, 0xbc, 0x74, 0x4d, 0x8f, 0xa7, 0x3d, 0xa0, 0xf1, 0xc5, 0x7d, 0x4b}: "DellMemorySlotInfo", efi.GUID{0xbc, 0xb8, 0x36, 0x22, 0x88, 0xe4, 0x24, 0x44, 0xbe, 0xb9, 0x97, 0xc8, 0xa1, 0x48, 0x36, 0x93}: "PlatformOpalDxe", efi.GUID{0xbc, 0xbc, 0x6d, 0x5b, 0xf4, 0x85, 0xfc, 0x4b, 0xaf, 0x96, 0x18, 0x85, 0x81, 0x32, 0x5c, 0x42}: "AmdLegacyInterrupt", efi.GUID{0xbc, 0xc5, 0x4e, 0x84, 0x49, 0xae, 0xb2, 0x41, 0xa7, 0x0a, 0x0a, 0xee, 0x59, 0x50, 0x55, 0x18}: "DellAdvSysMgmtDxe", efi.GUID{0xbc, 0xc7, 0x12, 0xd9, 0x98, 0xf0, 0x67, 0x43, 0x92, 0xba, 0xe9, 0x11, 0x08, 0x3c, 0x7b, 0x0e}: "Udp6Dxe", efi.GUID{0xbc, 0xc9, 0xfa, 0xbf, 0x98, 0x1c, 0xcd, 0x40, 0x86, 0x92, 0x1f, 0x97, 0xd1, 0x63, 0xeb, 0xb6}: "UniqueSleepStateBlinkRatesSmm", efi.GUID{0xbc, 0xcc, 0x6a, 0xc4, 0x65, 0x57, 0xe3, 0x40, 0x87, 0xd2, 0x82, 0xa5, 0x68, 0xac, 0x99, 0x1b}: "PcieRpConfigGuid", efi.GUID{0xbc, 0xd4, 0xe6, 0x71, 0x37, 0x48, 0xf1, 0x45, 0xa2, 0xd7, 0x3f, 0x93, 0x08, 0xb1, 0x7e, 0xd7}: "PlatformVariableHob", efi.GUID{0xbc, 0xd7, 0x51, 0x97, 0x9e, 0xab, 0x58, 0x40, 0xbb, 0x92, 0x0a, 0x05, 0x82, 0xe0, 0x26, 0x15}: "DellUsbChargerPei", efi.GUID{0xbc, 0xd9, 0xae, 0x77, 0x38, 0x09, 0x26, 0x40, 0x9d, 0x10, 0xf6, 0x84, 0x60, 0x27, 0xf3, 0x66}: "ApobMdnDxe", efi.GUID{0xbc, 0xdd, 0xf9, 0x3f, 0xfa, 0x14, 0x7f, 0x4a, 0x89, 0xd9, 0xb7, 0x70, 0x05, 0x5a, 0x42, 0xa5}: "TbtUpdateHandle", efi.GUID{0xbc, 0xe0, 0xb8, 0x58, 0xa5, 0x05, 0x15, 0x40, 0xa4, 0x7b, 0x77, 0x4a, 0x50, 0x34, 0x6c, 0x1e}: "CompalSsidSvidDxeSetting", efi.GUID{0xbc, 0xe3, 0x00, 0xd7, 0x91, 0x42, 0x49, 0x47, 0x87, 0xaf, 0x43, 0x2a, 0x02, 0x3d, 0xe6, 0x58}: "DellNbConfigDxe", efi.GUID{0xbc, 0xf8, 0xee, 0xef, 0xb5, 0x12, 0x2a, 0x43, 0xb5, 0xad, 0xe5, 0xd5, 0xf5, 0xb3, 0x34, 0x59}: "UsbTypeCPrivateWmiSmm", efi.GUID{0xbc, 0xfd, 0x21, 0xee, 0x29, 0xca, 0xd8, 0x4c, 0x8b, 0xdc, 0x90, 0x07, 0x05, 0x05, 0x66, 0x8a}: "PerformanceControlSmm", efi.GUID{0xbd, 0x06, 0x84, 0x7a, 0x3c, 0xe0, 0xad, 0x4d, 0xb5, 0x32, 0xe3, 0xcc, 0xed, 0x63, 0x5c, 0xc5}: "AmdI2cTouchPanelDxe", efi.GUID{0xbd, 0x13, 0x31, 0x8d, 0x86, 0x4d, 0x86, 0x41, 0x8d, 0x2b, 0x24, 0x56, 0x93, 0x06, 0xe5, 0x98}: "KEMhLpcDecodePei", efi.GUID{0xbd, 0x17, 0x02, 0x79, 0xcf, 0xbe, 0x5b, 0x48, 0x91, 0x70, 0x5f, 0xf7, 0x11, 0x31, 0x8b, 0x27}: "EfiHiiRestStyleFormset", efi.GUID{0xbd, 0x1c, 0x9e, 0x14, 0x63, 0xa2, 0xdb, 0x46, 0x89, 0x5c, 0x4b, 0x02, 0x01, 0xd2, 0x42, 0xb1}: "CrServiceDxe", efi.GUID{0xbd, 0x30, 0xa3, 0x90, 0x89, 0x6f, 0x00, 0x49, 0x93, 0x3a, 0xc2, 0x5e, 0xb4, 0x35, 0x63, 0x48}: "SDController", efi.GUID{0xbd, 0x35, 0x8d, 0x7f, 0xe3, 0x0c, 0x54, 0x46, 0xb5, 0xd3, 0x73, 0xfc, 0x4b, 0x38, 0xaa, 0xbf}: "PlatformEarlyDxe", efi.GUID{0xbd, 0x39, 0xf6, 0x89, 0x2d, 0x09, 0x52, 0x49, 0xbe, 0xc8, 0xf1, 0xf0, 0x5f, 0xe3, 0x40, 0x9c}: "OemActivation", efi.GUID{0xbd, 0x3d, 0xfb, 0xc5, 0x3b, 0x8a, 0x12, 0x4c, 0xae, 0x63, 0x11, 0x8d, 0xa7, 0x2f, 0xee, 0x83}: "AmdFabricRnPei", efi.GUID{0xbd, 0x43, 0xcc, 0xc0, 0x20, 0xc9, 0x64, 0x40, 0x93, 0x5b, 0x93, 0xb4, 0x47, 0x37, 0x94, 0x70}: "PowerManagementAcpiTableStorageGuid", efi.GUID{0xbd, 0x45, 0x32, 0xbc, 0x82, 0xb9, 0x55, 0x4f, 0x9f, 0x79, 0x05, 0x6a, 0xd7, 0xe9, 0x87, 0xc5}: "AhciSmm", efi.GUID{0xbd, 0x4c, 0x60, 0x7c, 0x40, 0x54, 0xe1, 0x46, 0x97, 0xf7, 0xa4, 0xdf, 0x8d, 0xd0, 0x9c, 0x1c}: "AmdSmmControl", efi.GUID{0xbd, 0x55, 0x68, 0xda, 0xb7, 0x07, 0x05, 0x4c, 0x9e, 0xd8, 0xe2, 0x59, 0xfd, 0x36, 0x0e, 0x22}: "EfiPei144FloppyBlockIoPpiGuid", efi.GUID{0xbd, 0x58, 0x72, 0xfb, 0x97, 0x40, 0x76, 0x45, 0x8c, 0xa5, 0x7b, 0x2c, 0x3d, 0x85, 0xe9, 0x88}: "CapsuleCallbackDxe", efi.GUID{0xbd, 0x5a, 0xeb, 0x3b, 0xe5, 0x5b, 0xb7, 0x40, 0xb9, 0xd8, 0x40, 0x26, 0xe3, 0xd6, 0xd6, 0xae}: "FjUtil", efi.GUID{0xbd, 0x70, 0x90, 0x54, 0xbd, 0x3f, 0xc9, 0x47, 0xb6, 0x40, 0x97, 0x5c, 0x30, 0x6f, 0x17, 0x5d}: "AmdCpmDsdt", efi.GUID{0xbd, 0x70, 0x93, 0x33, 0xc6, 0xcf, 0x54, 0x44, 0x8e, 0xf7, 0x70, 0x46, 0x53, 0x12, 0x08, 0x18}: "ThunderboltDROM", efi.GUID{0xbd, 0x7a, 0xa1, 0x5e, 0x30, 0x7b, 0x1d, 0x44, 0x83, 0xae, 0x3b, 0x73, 0xc1, 0x56, 0x4b, 0x42}: "PspS3Smm", efi.GUID{0xbd, 0x7d, 0x32, 0xbc, 0x82, 0xb9, 0x55, 0x4f, 0x9f, 0x79, 0x05, 0x6a, 0xd7, 0xe9, 0x87, 0xc5}: "SmiFlash", efi.GUID{0xbd, 0x84, 0x59, 0x33, 0x05, 0xe8, 0x9a, 0x40, 0xb8, 0xf8, 0xd2, 0x7e, 0xce, 0x5f, 0xf7, 0xa6}: "EfiStatusCodeSpecificDataGuid", efi.GUID{0xbd, 0x86, 0x66, 0x3b, 0x76, 0x0d, 0x30, 0x40, 0xb7, 0x0e, 0xb5, 0x51, 0x9e, 0x2f, 0xc5, 0xa0}: "EfiCapsuleGuid", efi.GUID{0xbd, 0x8a, 0x15, 0xc3, 0x62, 0xdb, 0x0f, 0x46, 0xb6, 0x4c, 0xfc, 0x25, 0x8b, 0xb9, 0x4a, 0x83}: "BiosLiveUpdateDxe", efi.GUID{0xbd, 0x90, 0x91, 0x69, 0x56, 0x64, 0x86, 0x42, 0x82, 0x3c, 0x28, 0xe4, 0x44, 0x2d, 0xfc, 0xab}: "AmdMpmPowerSupply", efi.GUID{0xbd, 0x90, 0xfc, 0x0f, 0xb8, 0xb0, 0x38, 0x45, 0x9d, 0x8a, 0x23, 0xab, 0x12, 0x34, 0x56, 0x78}: "SctPdmCustomFileDialogDxe", efi.GUID{0xbd, 0x96, 0xe7, 0x48, 0xd3, 0x4e, 0x55, 0x47, 0xa8, 0xca, 0x4c, 0xf4, 0x37, 0x25, 0x82, 0x41}: "EfiPeiPlatformTypeNeonCityFpgaPpi", efi.GUID{0xbd, 0x9a, 0xfa, 0x77, 0x59, 0x03, 0x32, 0x4d, 0xbd, 0x60, 0x28, 0xf4, 0xe7, 0x8f, 0x78, 0x4b}: "MicrosoftVendor", efi.GUID{0xbd, 0x9d, 0x4c, 0x74, 0xde, 0x74, 0x4d, 0x42, 0xab, 0x59, 0xaa, 0x39, 0x83, 0x05, 0x87, 0x1f}: "EDIDParserDriver", efi.GUID{0xbd, 0xa4, 0x70, 0x33, 0x23, 0x8c, 0x65, 0x45, 0xa2, 0xa2, 0x06, 0x5f, 0xee, 0xde, 0x60, 0x80}: "SecSMIFlash", efi.GUID{0xbd, 0xb0, 0xc2, 0x59, 0x73, 0xbc, 0x28, 0x44, 0xaa, 0x7f, 0x8e, 0xe9, 0x8d, 0xef, 0xb2, 0xc3}: "AmdNbioBaseRmbPei", efi.GUID{0xbd, 0xba, 0x5f, 0x8b, 0x1f, 0xf5, 0x42, 0x49, 0xbf, 0x16, 0x16, 0xaa, 0xa3, 0x8a, 0xe5, 0x2b}: "AcpiPlatform", efi.GUID{0xbd, 0xc2, 0x98, 0x46, 0x03, 0xa9, 0x0e, 0x41, 0xad, 0x1f, 0x5e, 0xef, 0x3a, 0x1a, 0xe4, 0x22}: "OverClockSmiHandler", efi.GUID{0xbd, 0xce, 0x22, 0x81, 0xfd, 0xf4, 0xa8, 0x4e, 0x97, 0x6c, 0xf0, 0x03, 0xad, 0xdc, 0x4c, 0xb4}: "EfiPeiIpmiTransportPpi", efi.GUID{0xbd, 0xd6, 0x33, 0xd2, 0xb1, 0xf1, 0x5a, 0x42, 0xbf, 0x45, 0x5c, 0xaf, 0x2b, 0x88, 0xed, 0xdc}: "WinNtOemHookStatusCodeHandlerPei", efi.GUID{0xbd, 0xd8, 0x2c, 0xdc, 0x2c, 0x40, 0xc4, 0x4d, 0x9b, 0xe0, 0x0c, 0x43, 0x2b, 0x07, 0xfa, 0x34}: "UefiFrameBufferInfoGuid", efi.GUID{0xbd, 0xdd, 0x69, 0xa4, 0xd0, 0x16, 0x35, 0x45, 0xba, 0xe3, 0x77, 0x27, 0x4b, 0xd7, 0x0b, 0x4c}: "FwBlockServiceSmm", efi.GUID{0xbd, 0xe6, 0x2a, 0xd4, 0x52, 0x13, 0xfb, 0x4b, 0x90, 0x9a, 0xca, 0x72, 0xa6, 0xea, 0xe8, 0x89}: "LzmaF86CustomDecompressGuid", efi.GUID{0xbd, 0xf0, 0xf5, 0xbc, 0x2e, 0xbf, 0xfa, 0x4c, 0xbe, 0x94, 0x43, 0xdd, 0xde, 0xc4, 0x45, 0xb0}: "FjMemResizedLogDxe", efi.GUID{0xbd, 0xf1, 0xb0, 0xb2, 0x91, 0x57, 0x02, 0x48, 0x93, 0xf0, 0x71, 0xd3, 0xa0, 0xfe, 0x99, 0x3d}: "ClientronServiceSmm", efi.GUID{0xbd, 0xf2, 0xad, 0x70, 0x92, 0xd3, 0xfa, 0x44, 0x92, 0xe7, 0x38, 0x84, 0x78, 0x33, 0x43, 0xaf}: "SDPlatformInitSmm", efi.GUID{0xbd, 0xf3, 0x35, 0xf0, 0x3e, 0x86, 0x73, 0x45, 0xa6, 0x09, 0xbb, 0x94, 0x05, 0xa8, 0xb1, 0xf7}: "SystemSecureVariableStorageSmm", efi.GUID{0xbd, 0xf5, 0x22, 0xfc, 0x25, 0xfa, 0x25, 0x46, 0xa5, 0x3b, 0x9c, 0xb4, 0x85, 0xa9, 0x8d, 0x87}: "SecureBootInitDxe", efi.GUID{0xbd, 0xf8, 0x90, 0xcb, 0x12, 0x70, 0x7d, 0x40, 0x88, 0xa3, 0x7d, 0x5e, 0x9e, 0x70, 0x1b, 0x87}: "PilotIIIPc8374", efi.GUID{0xbd, 0xfd, 0xcf, 0xbd, 0xc1, 0xaa, 0x04, 0x47, 0x8f, 0x49, 0xec, 0x25, 0x06, 0x43, 0x24, 0xc0}: "DellSbSmmProtocol", efi.GUID{0xbd, 0xfe, 0x32, 0x69, 0x97, 0x23, 0x2e, 0x46, 0xb0, 0xf9, 0xee, 0xb6, 0x19, 0xfa, 0x69, 0x3b}: "StatusReport", efi.GUID{0xbd, 0xfe, 0x3c, 0x2a, 0xe8, 0x27, 0x0a, 0x4d, 0x8b, 0x79, 0xd6, 0x88, 0xc2, 0xa3, 0xe1, 0xc0}: "EfiSmmLockBoxCommunicationGuid", efi.GUID{0xbe, 0x00, 0xe8, 0x02, 0x01, 0x8f, 0xa6, 0x4a, 0x94, 0x6b, 0xd7, 0x13, 0x88, 0xe1, 0x83, 0x3f}: "EFI_MTFTP4_SERVICE_BINDING_PROTOCOL_GUID", efi.GUID{0xbe, 0x00, 0xe8, 0x2f, 0x01, 0x8f, 0xa6, 0x4a, 0x94, 0x6b, 0xd7, 0x13, 0x88, 0xe1, 0x83, 0x3f}: "EfiMtftp4ServiceBindingProtocolGuid", efi.GUID{0xbe, 0x06, 0x5d, 0xc8, 0x75, 0x5f, 0xce, 0x48, 0xa8, 0x0f, 0x12, 0x36, 0xba, 0x3b, 0x87, 0xb1}: "EdkiiPerformanceMeasurementProtocol", efi.GUID{0xbe, 0x0e, 0x40, 0x60, 0xa3, 0x52, 0xcf, 0x46, 0xa3, 0x22, 0xe2, 0x1c, 0x47, 0x18, 0xfa, 0x88}: "AaeonEcDxe", efi.GUID{0xbe, 0x16, 0x3f, 0x7b, 0xcd, 0x79, 0x78, 0x4a, 0xa2, 0x7e, 0xb3, 0x29, 0xb1, 0xdf, 0x50, 0x0d}: "H2ODisplayEngineLocalMetroDxe", efi.GUID{0xbe, 0x19, 0x1c, 0x96, 0xac, 0xd1, 0xa7, 0x4b, 0x87, 0xaf, 0x4a, 0xe0, 0xf0, 0x9d, 0xf2, 0xa6}: "TrEEPei", efi.GUID{0xbe, 0x2a, 0xf7, 0x2e, 0x76, 0x8d, 0xcc, 0x49, 0x86, 0xeb, 0x47, 0xc7, 0xd1, 0x89, 0x1c, 0x7f}: "SelfHealingDetectCorruptionPei", efi.GUID{0xbe, 0x2b, 0xbf, 0x36, 0xed, 0x78, 0xed, 0x49, 0x88, 0xbb, 0x9a, 0xc4, 0x16, 0x30, 0xd4, 0xa8}: "DellRcaPkgBIOSIQDxe", efi.GUID{0xbe, 0x31, 0x4d, 0x4b, 0xc6, 0x88, 0x6a, 0x44, 0xa4, 0xa9, 0x4a, 0xd0, 0xf6, 0x12, 0xb3, 0x2e}: "EvaluateDefaults4FirstBootGuid", efi.GUID{0xbe, 0x34, 0x80, 0xcf, 0x68, 0x67, 0x8b, 0x4d, 0xb7, 0x39, 0x7c, 0xce, 0x68, 0x3a, 0x9f, 0xbe}: "EfiPciHostBridgeResourceAllocationProtocolGuid", efi.GUID{0xbe, 0x39, 0x09, 0xe2, 0xd4, 0x32, 0xbe, 0x41, 0xa1, 0x50, 0x89, 0x7f, 0x85, 0xd4, 0x98, 0x29}: "EfiMemoryOverwriteControlDataGuid", efi.GUID{0xbe, 0x3d, 0x1a, 0x07, 0xf4, 0xcf, 0x73, 0x4b, 0x83, 0xf0, 0x59, 0x8c, 0x13, 0xdc, 0xfd, 0xd5}: "Slp21Markers", efi.GUID{0xbe, 0x3d, 0x4d, 0xd5, 0x19, 0xce, 0x9f, 0x48, 0x8e, 0xde, 0x9f, 0xe2, 0xf7, 0x23, 0x86, 0x50}: "RestDxe", efi.GUID{0xbe, 0x40, 0x27, 0x91, 0x84, 0x22, 0x34, 0x47, 0xb9, 0x71, 0x84, 0xb0, 0x27, 0x35, 0x3f, 0x0c}: "FspHeaderFileGuid", efi.GUID{0xbe, 0x43, 0x34, 0x00, 0x97, 0x09, 0xd9, 0x42, 0xbb, 0x92, 0xfc, 0xdf, 0x69, 0x26, 0xdc, 0xee}: "FchSmbusDxe", efi.GUID{0xbe, 0x44, 0x71, 0xee, 0x54, 0x64, 0x43, 0x47, 0x9d, 0x23, 0x5d, 0xd8, 0xdf, 0xea, 0x5b, 0x5b}: "DellSmmAcpiProtocol", efi.GUID{0xbe, 0x45, 0xd4, 0x09, 0x89, 0x3c, 0x4f, 0x4e, 0xab, 0xe0, 0x51, 0xfa, 0x84, 0xc2, 0xe4, 0xff}: "ScGeneralConfigGuid", efi.GUID{0xbe, 0x4c, 0x7c, 0x54, 0x2a, 0xbc, 0x4d, 0x45, 0xae, 0xe0, 0xd2, 0x9e, 0x48, 0x7e, 0x0a, 0xca}: "ErrorLogHookPoint", efi.GUID{0xbe, 0x50, 0xa4, 0x15, 0x20, 0x5d, 0xe9, 0x47, 0x8b, 0x3b, 0x85, 0x60, 0x58, 0xcc, 0xd4, 0x08}: "AsusNct6796DHwmPei", efi.GUID{0xbe, 0x52, 0xfc, 0x14, 0xdc, 0x01, 0x6c, 0x42, 0x91, 0xae, 0xa2, 0x3c, 0x3e, 0x22, 0x0a, 0xe8}: "EfiSmmSxDispatchProtocolGuid", efi.GUID{0xbe, 0x59, 0xcf, 0xbb, 0x13, 0x26, 0x60, 0x49, 0xa0, 0xa4, 0x63, 0x9b, 0x4a, 0x97, 0x02, 0x06}: "HpEdidOverride", efi.GUID{0xbe, 0x5a, 0xc3, 0xe7, 0x8a, 0xd4, 0x4b, 0x43, 0xba, 0x22, 0x0c, 0xfc, 0xc8, 0x1d, 0xe6, 0x31}: "OilBiosAssistantDxe", efi.GUID{0xbe, 0x62, 0x3d, 0x28, 0x7d, 0x95, 0x63, 0x48, 0x80, 0x41, 0x7e, 0x9c, 0x22, 0x20, 0x17, 0x09}: "LfcNvsAcpi", efi.GUID{0xbe, 0x6b, 0xba, 0x10, 0x7e, 0xa9, 0xc3, 0x41, 0x9a, 0x07, 0x60, 0x7a, 0xd9, 0xbd, 0x60, 0xe5}: "EfiVlv2VariableGuid", efi.GUID{0xbe, 0x6d, 0x6a, 0x1c, 0x59, 0xca, 0xe4, 0x44, 0x8d, 0x42, 0x68, 0xfa, 0xc5, 0x24, 0xa8, 0x9c}: "SystemAudioDxe", efi.GUID{0xbe, 0x70, 0x51, 0xd1, 0x12, 0xd5, 0x94, 0x48, 0xb8, 0x63, 0x9d, 0x0e, 0x6f, 0xf5, 0xc5, 0x61}: "DellSlpMarkerCtrl", efi.GUID{0xbe, 0x71, 0x59, 0xb6, 0xbf, 0xba, 0xed, 0x49, 0x9d, 0xd2, 0x48, 0xec, 0x8d, 0xb4, 0xab, 0xd3}: "LenovoSoundService", efi.GUID{0xbe, 0x87, 0xe6, 0x20, 0x9b, 0xb0, 0xa1, 0x4d, 0xbc, 0xfe, 0xe8, 0x04, 0xb3, 0xb9, 0x7c, 0xe4}: "CsmeHealthDxe", efi.GUID{0xbe, 0x94, 0x31, 0x63, 0x97, 0x16, 0xe1, 0x11, 0xb5, 0xf0, 0x2c, 0xb2, 0x48, 0x24, 0x01, 0x9b}: "AmiPeiEndOfMemDetectGuid", efi.GUID{0xbe, 0x9a, 0xb0, 0x24, 0x47, 0x4e, 0x1c, 0x48, 0xa9, 0xad, 0xce, 0xf1, 0x2c, 0x39, 0x23, 0x27}: "Omap35xxTokenSpaceGuid", efi.GUID{0xbe, 0xab, 0x9b, 0x34, 0x59, 0x71, 0x58, 0x4e, 0x94, 0x62, 0x0e, 0xef, 0xd8, 0xea, 0xfb, 0x86}: "SocCrashLogAgent", efi.GUID{0xbe, 0xac, 0xcc, 0x15, 0x4a, 0x2a, 0xed, 0x45, 0x9e, 0xc2, 0x53, 0x13, 0x5f, 0x98, 0xab, 0x24}: "BmcAcpi", efi.GUID{0xbe, 0xc6, 0xc7, 0x20, 0xc6, 0x56, 0xb7, 0x46, 0xb3, 0xab, 0x55, 0x88, 0x28, 0x9a, 0xa8, 0x03}: "XnoteSwSmiServiceDxe", efi.GUID{0xbe, 0xc6, 0xdd, 0xb2, 0xee, 0xd2, 0xf1, 0x4e, 0x99, 0x2c, 0x2c, 0xd6, 0x95, 0x11, 0x5d, 0xa3}: "AmdCpmOemInitPeim", efi.GUID{0xbe, 0xc9, 0x38, 0xe9, 0xc2, 0xcf, 0x9d, 0x4a, 0xa3, 0xcd, 0x96, 0x53, 0xd8, 0x13, 0x30, 0x09}: "AmiChipsetModulePkgTokenSpaceGuid", efi.GUID{0xbe, 0xc9, 0xcd, 0x74, 0xef, 0x9f, 0x4f, 0x44, 0xff, 0xff, 0xff, 0xff, 0x14, 0xe5, 0x51, 0x21}: "XnotePlatformManagerDxe", efi.GUID{0xbe, 0xcb, 0xe3, 0xcf, 0x00, 0x48, 0xa4, 0x4e, 0x8c, 0xee, 0x90, 0xe9, 0x22, 0x85, 0x89, 0x6f}: "FprGoodixDriver", efi.GUID{0xbe, 0xd1, 0xf3, 0x61, 0x2e, 0x54, 0x94, 0x48, 0xb3, 0xda, 0x21, 0x43, 0xc2, 0x0b, 0x04, 0xca}: "AsusSecurityJumperDxe", efi.GUID{0xbe, 0xd9, 0xe7, 0x14, 0x34, 0x78, 0x7e, 0x47, 0xa9, 0x42, 0xff, 0x5f, 0x82, 0x3e, 0xe2, 0x49}: "DellSpiPartAtmel", efi.GUID{0xbe, 0xdb, 0x85, 0x73, 0x50, 0x80, 0xaf, 0x4f, 0x8b, 0x64, 0x4c, 0x38, 0x6e, 0x1f, 0xaa, 0x88}: "CodeAccessCheckS3Pei", efi.GUID{0xbe, 0xdc, 0x51, 0xe4, 0xa1, 0x96, 0x29, 0x47, 0xa5, 0xcf, 0x6b, 0x9c, 0x2c, 0xff, 0x47, 0xfd}: "EfiPrimaryConsoleInDevice", efi.GUID{0xbe, 0xdf, 0x3c, 0x1f, 0xae, 0xf7, 0x53, 0x44, 0x8c, 0x48, 0xc1, 0xad, 0x35, 0xa4, 0xfd, 0x98}: "SmbiosDmiEditProtocol", efi.GUID{0xbe, 0xe6, 0x4a, 0x0b, 0xa6, 0x6d, 0x08, 0x49, 0x8a, 0x71, 0x7e, 0x6a, 0x8a, 0x33, 0xb1, 0x1c}: "MeFwVersion", efi.GUID{0xbe, 0xec, 0xee, 0x70, 0x7a, 0x72, 0x44, 0x42, 0x90, 0x4c, 0xdb, 0x6b, 0xf0, 0x05, 0x53, 0x92}: "EfiEcAccessProtocolGuid", efi.GUID{0xbe, 0xf0, 0x3f, 0x03, 0xfb, 0xab, 0xac, 0x40, 0x87, 0xe3, 0xc2, 0x2a, 0x69, 0xbd, 0x7f, 0xa7}: "TransparentUnlockDXE", efi.GUID{0xbe, 0xf1, 0xc4, 0x74, 0x72, 0xfe, 0x68, 0x42, 0xa6, 0x85, 0xc4, 0xce, 0x71, 0x07, 0x04, 0x01}: "AsusTestVersionHeader", efi.GUID{0xbe, 0xf9, 0x14, 0x1c, 0x4f, 0x03, 0x8c, 0x47, 0xad, 0x0a, 0xd4, 0xd1, 0x78, 0xc1, 0x16, 0x29}: "OemNetworkDxe", efi.GUID{0xbe, 0xf9, 0x4f, 0xf7, 0xca, 0x90, 0x57, 0x4b, 0xb7, 0x69, 0xf6, 0x06, 0xfa, 0xa5, 0x25, 0x72}: "UnexpectedCapsuleUpdateCallback", efi.GUID{0xbf, 0x03, 0x14, 0x4d, 0xb8, 0xa1, 0xff, 0x45, 0xa5, 0xf0, 0xca, 0xd6, 0x1c, 0xf8, 0x2a, 0x28}: "DellMemorySlotConfigPei", efi.GUID{0xbf, 0x09, 0x76, 0x87, 0xe2, 0xbb, 0x9e, 0x4c, 0xb4, 0x5b, 0xa4, 0x68, 0x59, 0xc7, 0x6c, 0x73}: "FjGabiSettingsApiSmm", efi.GUID{0xbf, 0x11, 0x61, 0x09, 0x55, 0xb3, 0x80, 0x41, 0xba, 0x39, 0x73, 0x71, 0x53, 0x33, 0x9f, 0x0e}: "ServiceBatteryRemoval", efi.GUID{0xbf, 0x11, 0xd2, 0x91, 0xc2, 0x37, 0x5a, 0x49, 0x8d, 0xf7, 0x95, 0x46, 0xbd, 0x25, 0x55, 0xc0}: "PpamPlatformSmm", efi.GUID{0xbf, 0x12, 0xb3, 0x70, 0x4b, 0x97, 0x6a, 0x4c, 0xa7, 0x0a, 0xee, 0x23, 0x1b, 0x22, 0x95, 0x8a}: "FjPowerButton_jp", efi.GUID{0xbf, 0x15, 0xfa, 0x03, 0xc8, 0xa5, 0x06, 0x40, 0x81, 0xb5, 0xb8, 0x36, 0xe7, 0xa7, 0x00, 0x30}: "GnbSummitRouting", efi.GUID{0xbf, 0x1a, 0xbe, 0x76, 0x1e, 0x1e, 0x1d, 0x32, 0xb7, 0xf0, 0x9e, 0x09, 0x84, 0xfd, 0xda, 0xbc}: "ProgressBar", efi.GUID{0xbf, 0x1b, 0xa8, 0xe6, 0x3d, 0x87, 0xfd, 0x47, 0xb6, 0xbe, 0x61, 0xb3, 0xe5, 0x72, 0x09, 0x93}: "PchSmiDispatchProtocol", efi.GUID{0xbf, 0x1d, 0x0c, 0x37, 0x06, 0x96, 0xcc, 0x4f, 0xb4, 0x81, 0x13, 0x88, 0xd6, 0xab, 0xa1, 0x2e}: "AsusSmmService", efi.GUID{0xbf, 0x1f, 0x85, 0x17, 0xc4, 0x45, 0xf7, 0x4f, 0xa2, 0xa0, 0xc3, 0xb1, 0x2d, 0x63, 0xc2, 0x7e}: "SdBlockIoPei", efi.GUID{0xbf, 0x21, 0xfb, 0x48, 0xe5, 0x47, 0x6c, 0x40, 0xa7, 0x3e, 0xd8, 0x3d, 0x00, 0x76, 0x72, 0x14}: "FwhFlashPeiLibNull", efi.GUID{0xbf, 0x2c, 0xc3, 0x54, 0xb9, 0xa3, 0xce, 0x4c, 0x9c, 0x43, 0xe0, 0x59, 0xe3, 0x22, 0x55, 0xdf}: "SystemFirmwareDeviceSmm", efi.GUID{0xbf, 0x2e, 0x11, 0xd1, 0x82, 0x0d, 0x71, 0x40, 0x96, 0x7c, 0xe1, 0x69, 0x23, 0x27, 0x40, 0xba}: "CpPlatIpmiTokenSpace", efi.GUID{0xbf, 0x35, 0x1b, 0x92, 0x55, 0x02, 0x22, 0x47, 0xbf, 0x5a, 0x5b, 0x8b, 0x69, 0x09, 0x35, 0x93}: "IchInitPei", efi.GUID{0xbf, 0x37, 0x6f, 0x2d, 0xfc, 0x9a, 0xa5, 0x4a, 0xa0, 0x26, 0x32, 0xb2, 0xfc, 0xf3, 0x0f, 0xb9}: "LenovoPlatformDxe", efi.GUID{0xbf, 0x42, 0xc7, 0x0a, 0xc6, 0x07, 0x87, 0x4c, 0xa8, 0x7d, 0xa3, 0xb2, 0x91, 0x8a, 0xfd, 0x00}: "TileDxe", efi.GUID{0xbf, 0x46, 0x58, 0x67, 0x9b, 0x96, 0x29, 0x4f, 0xac, 0xbb, 0x81, 0xbf, 0x30, 0x8e, 0xb4, 0x57}: "FjSiidPostHandler", efi.GUID{0xbf, 0x47, 0xac, 0xbb, 0x55, 0xce, 0x4c, 0x4d, 0xb7, 0x28, 0xa8, 0x86, 0x6e, 0xe2, 0x30, 0x00}: "I2CApplicationPei", efi.GUID{0xbf, 0x64, 0xb5, 0x21, 0xea, 0x53, 0xd1, 0x40, 0x85, 0xae, 0xef, 0xfc, 0x93, 0xd2, 0x86, 0x40}: "FchKeithMdnDxe", efi.GUID{0xbf, 0x72, 0x18, 0xf0, 0x48, 0xaf, 0xd2, 0x40, 0x92, 0xdb, 0x51, 0x58, 0x84, 0x66, 0xee, 0xab}: "RtkUsbUndiDxe", efi.GUID{0xbf, 0x7a, 0x25, 0x7b, 0xec, 0xb5, 0xd5, 0x42, 0xa4, 0xcd, 0x8e, 0x29, 0x1e, 0x1f, 0x7b, 0x39}: "Enter_Setup", efi.GUID{0xbf, 0x7d, 0x30, 0xe2, 0x9a, 0x19, 0x98, 0x42, 0x9c, 0xf5, 0x87, 0x49, 0xe1, 0xca, 0x30, 0x38}: "LegacyUsbSmm", efi.GUID{0xbf, 0x80, 0xf8, 0xe4, 0xf1, 0x81, 0x87, 0x4b, 0xb8, 0xf5, 0x05, 0xef, 0x64, 0xfd, 0x66, 0x70}: "AcpiWsmtDxe", efi.GUID{0xbf, 0x81, 0x0d, 0x88, 0x88, 0xda, 0xe1, 0x49, 0x95, 0x43, 0xa5, 0x82, 0x47, 0xfe, 0xad, 0x1a}: "LenovoSetupAutomationSmm", efi.GUID{0xbf, 0x86, 0x4b, 0x16, 0x65, 0xb2, 0x33, 0x40, 0x92, 0xf9, 0xbc, 0xb6, 0xd4, 0xad, 0xc0, 0xc9}: "OobProvisionDxe", efi.GUID{0xbf, 0xa3, 0xf4, 0xa0, 0x2f, 0x02, 0xe5, 0x4a, 0xab, 0x09, 0x82, 0x5e, 0x7a, 0xb3, 0x08, 0x94}: "BoardInitPostMemPeim", efi.GUID{0xbf, 0xac, 0xfc, 0x9c, 0x71, 0x30, 0x33, 0x45, 0x94, 0x4e, 0x40, 0xea, 0xe5, 0x6a, 0xae, 0x9e}: "ApobRnPei", efi.GUID{0xbf, 0xaf, 0x09, 0xe6, 0x72, 0xea, 0x82, 0x4d, 0x83, 0xcf, 0xd7, 0xe0, 0x65, 0xac, 0x6b, 0x3b}: "NonAmtNetworkControllerSmm", efi.GUID{0xbf, 0xaf, 0xfa, 0x83, 0x4b, 0xfc, 0x9f, 0x46, 0x89, 0x2a, 0x79, 0x8e, 0x66, 0xa6, 0xf5, 0x0a}: "RestJsonStructureDxe", efi.GUID{0xbf, 0xb8, 0x37, 0xc9, 0xeb, 0xec, 0x42, 0x4f, 0x90, 0x7e, 0x37, 0xa5, 0xd4, 0xc1, 0x7b, 0x9d}: "CompalEepromDxe", efi.GUID{0xbf, 0xb9, 0x0f, 0x1b, 0x9d, 0x69, 0xdd, 0x4f, 0xa7, 0xc3, 0x25, 0x46, 0x68, 0x1b, 0xf6, 0x3b}: "EfiWiFi2ProtocolGuid", efi.GUID{0xbf, 0xbf, 0x74, 0x3e, 0x3d, 0x89, 0x97, 0x40, 0xb2, 0x63, 0x96, 0xde, 0xe7, 0xee, 0x2c, 0xfb}: "SetupStatusSmm", efi.GUID{0xbf, 0xc8, 0x5f, 0xde, 0xed, 0x06, 0xc5, 0x4d, 0xba, 0x9d, 0x29, 0xf7, 0x11, 0x69, 0x9a, 0x85}: "TraceHubStatusCodeHandlerRuntimeDxe", efi.GUID{0xbf, 0xcc, 0xe9, 0xe6, 0x44, 0x25, 0xef, 0x47, 0xac, 0xfd, 0xe4, 0x9a, 0x96, 0xa7, 0x9f, 0x49}: "AmdMbistBrhPei", efi.GUID{0xbf, 0xd0, 0x22, 0xbd, 0x18, 0x48, 0xf8, 0x4e, 0xbd, 0xcd, 0xb3, 0x47, 0x8f, 0x52, 0xa8, 0x02}: "HeavyPciBusDebug", efi.GUID{0xbf, 0xd2, 0x73, 0xbf, 0x8c, 0xac, 0x83, 0x4d, 0xa3, 0xb9, 0x4a, 0x0f, 0x42, 0x00, 0x74, 0xb3}: "LenovoStatusCodeMeDebugDxe", efi.GUID{0xbf, 0xd6, 0x54, 0x30, 0x1d, 0xe7, 0x18, 0x48, 0x8e, 0x1f, 0x17, 0xb0, 0x12, 0xb5, 0x87, 0x88}: "H19RecordLog", efi.GUID{0xbf, 0xe9, 0xb3, 0x74, 0x25, 0xa0, 0x4e, 0x4d, 0xb5, 0xb6, 0x50, 0x8f, 0x8b, 0x67, 0x08, 0x5e}: "GetMemoryValue", efi.GUID{0xbf, 0xeb, 0xd7, 0x0b, 0xa9, 0xf1, 0x0b, 0x4c, 0x99, 0x41, 0x63, 0x6d, 0x10, 0x2a, 0xa4, 0x8a}: "FchBixbyDxe", efi.GUID{0xbf, 0xfa, 0x6d, 0x96, 0x40, 0xa1, 0xba, 0x4b, 0x83, 0xca, 0x12, 0x02, 0x10, 0x90, 0xbb, 0x44}: "DxeIchSmbusLightDxe", efi.GUID{0xbf, 0xfb, 0x46, 0xc2, 0x5c, 0xf7, 0xf7, 0x43, 0x88, 0xa6, 0xb5, 0xfd, 0x0c, 0xf1, 0xdb, 0x7f}: "AmiDbtFileGuid", efi.GUID{0xbf, 0xfc, 0x1f, 0xc8, 0x77, 0xbb, 0x0b, 0x40, 0xbc, 0x86, 0xc9, 0xb1, 0x6c, 0xf9, 0x5e, 0xae}: "AppleUsbNotify", efi.GUID{0xc0, 0x00, 0x41, 0xaa, 0x70, 0x7f, 0xbf, 0xea, 0xb7, 0x20, 0x5b, 0x6f, 0x7a, 0xca, 0x5e, 0xeb}: "EepromDxe", efi.GUID{0xc0, 0x02, 0x83, 0x93, 0xcc, 0x7a, 0x93, 0x41, 0x8d, 0x81, 0xd9, 0x71, 0x7a, 0x4d, 0xbc, 0x24}: "FPPBA", efi.GUID{0xc0, 0x05, 0xde, 0xb4, 0xd0, 0x1b, 0xe1, 0x11, 0x8f, 0x0e, 0x77, 0xf3, 0x47, 0x24, 0x01, 0x9b}: "TbtOemBoard", efi.GUID{0xc0, 0x09, 0x78, 0xc9, 0x90, 0x5f, 0x66, 0x44, 0x8b, 0x38, 0x34, 0x1d, 0x7a, 0x67, 0xcf, 0x54}: "LenovoSmapiSmm", efi.GUID{0xc0, 0x0a, 0x83, 0x06, 0xd7, 0x75, 0x33, 0x49, 0xb6, 0xaf, 0x4d, 0x3a, 0xa3, 0x17, 0xd2, 0xaf}: "FJPhysicalPresencePage", efi.GUID{0xc0, 0x13, 0x0e, 0x17, 0x1b, 0xbf, 0x18, 0x42, 0x87, 0x1d, 0x2a, 0xbd, 0xc6, 0xf8, 0x87, 0xbc}: "EfiOEMBadgingProtocolGuid", efi.GUID{0xc0, 0x19, 0x31, 0x8e, 0x12, 0xf7, 0x67, 0x4e, 0x94, 0xdf, 0x6f, 0x8e, 0xfb, 0xb6, 0x06, 0x85}: "PlatformSetupMainInfoDxe", efi.GUID{0xc0, 0x22, 0xfc, 0xdc, 0x13, 0xa5, 0xe3, 0x11, 0xb5, 0x76, 0x44, 0x6d, 0x57, 0x15, 0x53, 0xeb}: "HotkeyInterfaceCoreDxe", efi.GUID{0xc0, 0x23, 0x63, 0x33, 0xd2, 0x4b, 0x0e, 0x4b, 0x8b, 0x17, 0x6d, 0xa1, 0xe1, 0x43, 0xe2, 0x20}: "AaeonEcSmm", efi.GUID{0xc0, 0x25, 0x1c, 0xc8, 0x3b, 0x53, 0xdf, 0x48, 0x93, 0xe5, 0xb8, 0x78, 0x07, 0x90, 0x1c, 0xf6}: "MiscFunctionPortingPpi", efi.GUID{0xc0, 0x25, 0x71, 0x90, 0xf1, 0xa5, 0xe3, 0x11, 0xa3, 0xfe, 0xa3, 0x19, 0x8b, 0x49, 0x35, 0x0c}: "FvSimpleFileSystem", efi.GUID{0xc0, 0x25, 0x97, 0xca, 0xe5, 0x12, 0xac, 0x4f, 0xad, 0x58, 0xd9, 0xaa, 0xb0, 0x3b, 0x8f, 0x11}: "LenovoHdpManagerDxe", efi.GUID{0xc0, 0x40, 0x92, 0xd6, 0x40, 0xdd, 0x2d, 0x4f, 0x98, 0x63, 0x48, 0x48, 0xda, 0x6e, 0x61, 0x5f}: "AmiTseInvalidPasswordGuid", efi.GUID{0xc0, 0x4b, 0x30, 0x4e, 0x03, 0x3b, 0x97, 0x4a, 0xbb, 0x55, 0x91, 0x37, 0x51, 0x89, 0xa3, 0x1d}: "iFlashDxeBin", efi.GUID{0xc0, 0x4c, 0xf4, 0xb6, 0x45, 0x9e, 0xdf, 0x11, 0xbe, 0x21, 0x00, 0x02, 0xa5, 0xd5, 0xc5, 0x1b}: "MmcDxe", efi.GUID{0xc0, 0x4d, 0x53, 0x52, 0x28, 0x33, 0x53, 0x41, 0xa1, 0x7c, 0x9f, 0xa7, 0x95, 0x65, 0x4c, 0x05}: "FjGpioGHODxe", efi.GUID{0xc0, 0x52, 0x6e, 0xc6, 0x2a, 0x08, 0xab, 0x48, 0xbd, 0xde, 0xed, 0x60, 0xc8, 0x8c, 0xc4, 0xda}: "FjLanReInitDxe", efi.GUID{0xc0, 0x54, 0x5c, 0xcb, 0x0d, 0x23, 0xdb, 0x43, 0x92, 0x2c, 0x24, 0xd3, 0x4f, 0x8c, 0x91, 0x5c}: "AmicsmPciBusNumXlatProtocol", efi.GUID{0xc0, 0x5b, 0x34, 0x1a, 0x35, 0xcc, 0xbc, 0x9a, 0x1c, 0xea, 0x1c, 0xad, 0x7d, 0x33, 0xad, 0xdf}: "SmcLsiRaidOOBSetup", efi.GUID{0xc0, 0x5e, 0x35, 0x18, 0x43, 0xef, 0xd5, 0x4c, 0x91, 0x32, 0xd2, 0xb3, 0x3c, 0x5e, 0x58, 0x97}: "FjUsbTypecPwrLimitCtrlPei", efi.GUID{0xc0, 0x5f, 0xe6, 0x8c, 0x33, 0x8f, 0xa7, 0x42, 0xa2, 0xea, 0x46, 0xde, 0xbe, 0x23, 0x1e, 0xa6}: "XhciDxe", efi.GUID{0xc0, 0x66, 0x30, 0x3e, 0x31, 0xbd, 0xdb, 0x4a, 0xb2, 0xa4, 0x6e, 0x66, 0x54, 0xc7, 0xb8, 0x1f}: "LenovoEventLogSelfhealingEvent", efi.GUID{0xc0, 0x67, 0x83, 0xee, 0xd6, 0xa1, 0x65, 0x45, 0x8f, 0x89, 0xef, 0x62, 0x85, 0x47, 0xb7, 0x22}: "IpSecDxe", efi.GUID{0xc0, 0x6c, 0xe6, 0x2c, 0x7f, 0x3f, 0x59, 0x48, 0xab, 0x07, 0xe7, 0x54, 0x29, 0x44, 0xdd, 0x19}: "PowerLoss", efi.GUID{0xc0, 0x6f, 0x7a, 0x0a, 0x10, 0xad, 0x5f, 0x44, 0xbc, 0xb0, 0x70, 0x4a, 0xd1, 0x7c, 0xdb, 0x23}: "Ucsi", efi.GUID{0xc0, 0x71, 0xa0, 0x2b, 0x84, 0xb8, 0x08, 0x4d, 0xbc, 0xff, 0x51, 0x8e, 0x16, 0x36, 0x4c, 0x8b}: "PciHostBridge", efi.GUID{0xc0, 0x81, 0xd9, 0x9a, 0x5f, 0x73, 0xe3, 0x11, 0xa4, 0xc4, 0x04, 0x7d, 0x7b, 0x99, 0xe0, 0x97}: "SwSmiInterfaceCoreSmm", efi.GUID{0xc0, 0x85, 0x2b, 0x0d, 0x68, 0xd4, 0xdb, 0x4a, 0x93, 0xbf, 0xe5, 0x3a, 0xe2, 0x03, 0xc0, 0x34}: "OemErpPolicy", efi.GUID{0xc0, 0x86, 0xbb, 0xc6, 0xf5, 0x16, 0x35, 0x45, 0x95, 0x3e, 0xe6, 0xc7, 0xcb, 0x6e, 0x4c, 0xb6}: "FpgaErrorHandler", efi.GUID{0xc0, 0x87, 0xa6, 0x11, 0xbf, 0xed, 0xcf, 0x4a, 0x8f, 0xd5, 0x32, 0xa0, 0xbd, 0x5d, 0x76, 0xaa}: "RZ6xxLauncher", efi.GUID{0xc0, 0x97, 0x29, 0x2a, 0x32, 0xfc, 0x98, 0x40, 0xa8, 0x8d, 0x0e, 0x5d, 0x71, 0x65, 0xc9, 0x3f}: "ThermalSetting", efi.GUID{0xc0, 0xa4, 0x4e, 0x4f, 0x03, 0x86, 0xb8, 0x4a, 0x8c, 0x4b, 0xc5, 0x14, 0x5c, 0x8c, 0x86, 0xf6}: "RaidDriverSmm", efi.GUID{0xc0, 0xa7, 0x3f, 0xce, 0xca, 0xe9, 0xe2, 0x11, 0x9b, 0xf4, 0x44, 0x6d, 0x57, 0x15, 0x53, 0xeb}: "LenovoStringDxe", efi.GUID{0xc0, 0xaa, 0xad, 0x73, 0x57, 0x98, 0x74, 0x4d, 0xb0, 0xd7, 0xec, 0x60, 0x94, 0x88, 0x2d, 0x99}: "BaseTraceHubDebugLibNull", efi.GUID{0xc0, 0xb0, 0x73, 0x26, 0x9f, 0x1f, 0xef, 0x45, 0xff, 0xff, 0xff, 0xff, 0x92, 0xfa, 0x6f, 0x0a}: "XnoteReportStatusCodePei", efi.GUID{0xc0, 0xb0, 0xce, 0x3a, 0x72, 0x3c, 0xe4, 0x11, 0x9a, 0x56, 0x74, 0xd4, 0x35, 0x05, 0x26, 0x46}: "TlsDxe", efi.GUID{0xc0, 0xb5, 0x58, 0x0a, 0x01, 0x0e, 0x9c, 0x42, 0xa8, 0xad, 0xeb, 0x73, 0x49, 0xa5, 0xcf, 0xa5}: "DellPlatformVTdPolicyDxe", efi.GUID{0xc0, 0xb8, 0x1f, 0x8d, 0x8a, 0xd2, 0xa0, 0x45, 0xad, 0x3c, 0x73, 0xec, 0xb9, 0xdc, 0x11, 0x4c}: "FjDmiBoardBiosInfo", efi.GUID{0xc0, 0xc2, 0x1c, 0x7a, 0xf6, 0x7a, 0x68, 0x4f, 0xa5, 0x64, 0xcc, 0x03, 0x55, 0x8f, 0xc3, 0xc5}: "SuperMDxe", efi.GUID{0xc0, 0xcf, 0x41, 0xd0, 0x70, 0x76, 0x5a, 0x43, 0xa5, 0x12, 0xf4, 0x5c, 0x92, 0x3b, 0x28, 0x5d}: "DellPeiSioEmi", efi.GUID{0xc0, 0xd4, 0x00, 0x57, 0xb1, 0xb7, 0x22, 0x42, 0xac, 0x5c, 0xdd, 0x41, 0x06, 0x42, 0xfd, 0xa7}: "DellUsbChargerSmm", efi.GUID{0xc0, 0xda, 0xdf, 0x66, 0x71, 0xaa, 0x4e, 0x43, 0x8b, 0xe7, 0x6a, 0x95, 0x9b, 0x42, 0xc3, 0xa9}: "OemAmt", efi.GUID{0xc0, 0xed, 0x11, 0x43, 0x54, 0x60, 0xd4, 0x46, 0x9e, 0x40, 0x89, 0x3e, 0xa9, 0x52, 0xfc, 0xcc}: "EfiHiiPopupProtocolGuid", efi.GUID{0xc0, 0xed, 0xd1, 0x39, 0xed, 0xc9, 0x63, 0x46, 0x90, 0xdb, 0x74, 0x57, 0xff, 0x05, 0x48, 0xc5}: "AmiErrorHandlerMain", efi.GUID{0xc0, 0xf2, 0x0f, 0x9b, 0x45, 0xe2, 0xe1, 0x11, 0x8e, 0xff, 0xd0, 0xdf, 0x9a, 0x35, 0xc1, 0x06}: "ChipsetSvcDxe", efi.GUID{0xc0, 0xfa, 0xb4, 0x0e, 0xec, 0xa3, 0xed, 0x4f, 0x97, 0x83, 0xa8, 0xd0, 0xff, 0xd1, 0xae, 0x33}: "DellSmBiosStrucDb", efi.GUID{0xc1, 0x05, 0xab, 0x0e, 0x6a, 0x76, 0x05, 0x48, 0xa0, 0x39, 0x30, 0x81, 0xde, 0x02, 0x10, 0xc7}: "FmpDxe", efi.GUID{0xc1, 0x0f, 0x41, 0x83, 0x86, 0x2c, 0x0a, 0x47, 0xaf, 0x66, 0x39, 0x66, 0xa1, 0xed, 0x42, 0xbd}: "PhAmtSupport", efi.GUID{0xc1, 0x2c, 0x42, 0xac, 0x16, 0xd9, 0x9a, 0x48, 0xb1, 0x65, 0x53, 0x6f, 0xdf, 0xc6, 0x33, 0xc2}: "PlatformDxe", efi.GUID{0xc1, 0x33, 0x42, 0xc7, 0xfd, 0x96, 0xb3, 0x4c, 0x94, 0x53, 0x55, 0xc9, 0xd7, 0x7c, 0xe3, 0xc8}: "WM00WMISmmHandler", efi.GUID{0xc1, 0x3e, 0x67, 0xe4, 0x43, 0x29, 0x2a, 0x49, 0x97, 0x9e, 0x2b, 0x3d, 0x87, 0x36, 0x01, 0x5f}: "FjSxEnterResumeSmiSmm", efi.GUID{0xc1, 0x3e, 0x88, 0x44, 0x7c, 0xc7, 0x49, 0x17, 0xb7, 0x3d, 0x30, 0xc7, 0xb4, 0x68, 0xb5, 0x56}: "ExFatDxe", efi.GUID{0xc1, 0x3e, 0x91, 0xa8, 0x0c, 0xc0, 0x3a, 0x4c, 0xa2, 0x45, 0x07, 0x7c, 0x0c, 0xa3, 0x57, 0x38}: "AspmOverrideDxe", efi.GUID{0xc1, 0x3f, 0xd7, 0x4e, 0xe7, 0x3a, 0xaf, 0x4b, 0x98, 0xde, 0x9f, 0x2a, 0xee, 0xaa, 0x00, 0xaf}: "FjS5WakeSmm", efi.GUID{0xc1, 0x48, 0x33, 0xb4, 0xaa, 0xe0, 0x67, 0x47, 0xae, 0x22, 0x2f, 0x31, 0x33, 0x31, 0x52, 0xb6}: "L05BatFwUpdateProtocol", efi.GUID{0xc1, 0x4d, 0xa4, 0xc9, 0x94, 0xa3, 0x6c, 0x42, 0x8b, 0x3e, 0x7e, 0xe5, 0x32, 0xa5, 0x50, 0x37}: "AmpI2cDriver", efi.GUID{0xc1, 0x50, 0x9a, 0xfc, 0x3d, 0x8b, 0xd0, 0x40, 0x99, 0x12, 0x6e, 0x26, 0xd7, 0x89, 0x6c, 0xba}: "AmiHeciSmm", efi.GUID{0xc1, 0x5c, 0xc3, 0x90, 0xa5, 0xc3, 0x48, 0x4f, 0x9a, 0xe6, 0x92, 0x2f, 0xce, 0x6d, 0x82, 0x7e}: "LnvWlanPxeBoot", efi.GUID{0xc1, 0x5e, 0x29, 0x58, 0xff, 0x2e, 0x01, 0x4d, 0xa3, 0x1c, 0x67, 0xc4, 0x2d, 0x6b, 0x38, 0x62}: "FDUpdateSMM", efi.GUID{0xc1, 0x61, 0x48, 0x4d, 0x2e, 0xa8, 0x5f, 0x4e, 0x9d, 0xd8, 0xb0, 0x0b, 0x30, 0xb8, 0x4d, 0xdc}: "HeciTransportSmm", efi.GUID{0xc1, 0x62, 0x82, 0x39, 0x65, 0x51, 0x25, 0x47, 0x87, 0xfc, 0xbb, 0x78, 0x6a, 0x97, 0x25, 0x82}: "IchPowerButton", efi.GUID{0xc1, 0x63, 0x7e, 0x17, 0xd6, 0xae, 0x88, 0x4d, 0x91, 0x7e, 0x9b, 0x4f, 0xb9, 0xfe, 0x40, 0x92}: "PhoenixSmmCoreServicesProtocolGuid", efi.GUID{0xc1, 0x64, 0x7c, 0x89, 0xb7, 0x0c, 0xa2, 0x4f, 0x81, 0x5c, 0x30, 0x74, 0x63, 0xe5, 0x35, 0xb5}: "OemManufactureModePei", efi.GUID{0xc1, 0x6d, 0x5d, 0x85, 0xe8, 0x9f, 0xe0, 0x42, 0x9f, 0x76, 0x50, 0xc2, 0xe2, 0xdd, 0x2e, 0x06}: "AmdPspDxeV2Rpl", efi.GUID{0xc1, 0x72, 0x5d, 0xea, 0x55, 0x44, 0xf8, 0x4f, 0x91, 0xa1, 0x43, 0x52, 0xdc, 0x1e, 0xe1, 0x12}: "gear8", efi.GUID{0xc1, 0x77, 0x4c, 0x48, 0x8e, 0x37, 0xe4, 0x41, 0xb4, 0xf1, 0x08, 0xa1, 0x55, 0x5f, 0xb1, 0x97}: "AsusWatchDogTimerDxe", efi.GUID{0xc1, 0x77, 0x74, 0x38, 0xc7, 0x69, 0xd2, 0x11, 0x8e, 0x39, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b}: "EfiSimpleTextInProtocolGuid", efi.GUID{0xc1, 0x77, 0x8b, 0x25, 0x89, 0x59, 0xa4, 0x45, 0xbf, 0xff, 0x7d, 0xaf, 0x14, 0x7b, 0x2c, 0xe0}: "FjAddingFlexIoToSmBios", efi.GUID{0xc1, 0x81, 0x8f, 0x13, 0x5f, 0x0a, 0x5b, 0x4f, 0xbf, 0xf9, 0xf9, 0xb5, 0xbc, 0xba, 0x6a, 0xbf}: "HpSecureBootModeDxe", efi.GUID{0xc1, 0x8b, 0x0e, 0xaa, 0xbc, 0xda, 0xb0, 0x46, 0xa8, 0x44, 0x37, 0xb8, 0x16, 0x9b, 0x2b, 0xea}: "EfiPciHotPlugInitProtocolGuid", efi.GUID{0xc1, 0x90, 0x61, 0x31, 0x48, 0x5e, 0x15, 0x4c, 0xac, 0x72, 0x37, 0x53, 0x2f, 0x3a, 0x1e, 0xc1}: "SystemUsbDatabaseSmm", efi.GUID{0xc1, 0x95, 0x64, 0xa3, 0x05, 0xc2, 0x4e, 0x41, 0xb7, 0x1f, 0x4b, 0xe3, 0x47, 0x6d, 0x69, 0x9c}: "FSVariable", efi.GUID{0xc1, 0x96, 0x5d, 0x99, 0x51, 0x66, 0xb0, 0x46, 0xbf, 0x3e, 0x83, 0xc0, 0x17, 0xb4, 0x3b, 0x1d}: "DellSmBiosStrucDe", efi.GUID{0xc1, 0x97, 0x7c, 0x97, 0xe1, 0x47, 0x6b, 0x4b, 0x96, 0x69, 0x43, 0x66, 0x99, 0xcb, 0xe4, 0x5b}: "SiPkgTokenSpaceGuid", efi.GUID{0xc1, 0xa0, 0xda, 0x87, 0xbb, 0x99, 0x35, 0x44, 0xab, 0x35, 0x36, 0xbc, 0x7d, 0xca, 0x4e, 0xda}: "UsbKeyboardPei", efi.GUID{0xc1, 0xa2, 0x08, 0xd6, 0x31, 0x43, 0x85, 0x46, 0x97, 0x49, 0xf6, 0x81, 0x9b, 0xaf, 0x4c, 0x04}: "StaticSkuDataDxeSierra", efi.GUID{0xc1, 0xa2, 0x8d, 0x42, 0xbe, 0x39, 0xb1, 0x41, 0x88, 0xa6, 0xa6, 0xfb, 0x87, 0x01, 0x39, 0xa4}: "BsfWsRouting", efi.GUID{0xc1, 0xab, 0xe6, 0xd7, 0x1b, 0x97, 0x1b, 0x46, 0xb5, 0xe4, 0x3c, 0x37, 0x66, 0x26, 0x7a, 0xd9}: "SbInterfaceDxe", efi.GUID{0xc1, 0xb1, 0xed, 0x49, 0x21, 0xbf, 0x61, 0x47, 0xbb, 0x12, 0xeb, 0x00, 0x31, 0xaa, 0xbb, 0x39}: "EfiPeiFirmwareVolumeInfoPpiGuid", efi.GUID{0xc1, 0xbd, 0xdb, 0x19, 0xdf, 0xde, 0xed, 0x4d, 0x86, 0x84, 0x24, 0x76, 0xb9, 0x9f, 0xac, 0x91}: "AST2500DxeInit", efi.GUID{0xc1, 0xbe, 0x3f, 0xf2, 0x7e, 0x98, 0x4b, 0x4b, 0xbf, 0x47, 0x7d, 0xdc, 0xc1, 0x18, 0xdb, 0xf3}: "I2cEnumerateDriver", efi.GUID{0xc1, 0xc0, 0x06, 0x40, 0xb3, 0xfc, 0x3e, 0x40, 0x99, 0x6d, 0x4a, 0x6c, 0x87, 0x24, 0xe0, 0x6d}: "EfiLoadFile2ProtocolGuid", efi.GUID{0xc1, 0xc2, 0xa8, 0x22, 0x75, 0x9f, 0x9d, 0x4b, 0xb0, 0x37, 0x22, 0xcc, 0x43, 0xe6, 0x92, 0x9e}: "SioDummyPei", efi.GUID{0xc1, 0xc3, 0x8d, 0x57, 0xd2, 0xdf, 0x14, 0x43, 0x99, 0x7f, 0xf8, 0x82, 0xcf, 0x50, 0xe5, 0xe7}: "FjEvteApp", efi.GUID{0xc1, 0xc5, 0xb9, 0xae, 0xf1, 0x94, 0x02, 0x4d, 0xbf, 0xd9, 0x46, 0x02, 0xdb, 0x2d, 0x3c, 0x54}: "EfiTcg2PhysicalPresenceGuid", efi.GUID{0xc1, 0xcc, 0x08, 0xf5, 0xda, 0xe0, 0x63, 0x4a, 0x95, 0x4c, 0x6f, 0x0c, 0xe5, 0xcd, 0x16, 0x43}: "ThermalDxe", efi.GUID{0xc1, 0xd9, 0xb4, 0x91, 0x1c, 0x14, 0x24, 0x48, 0x8d, 0x02, 0x3c, 0x29, 0x8e, 0x36, 0xeb, 0x3f}: "SataDriver", efi.GUID{0xc1, 0xe2, 0x3c, 0xb2, 0xa0, 0x16, 0x69, 0x4f, 0x98, 0x0a, 0x95, 0xc7, 0x72, 0x16, 0xf9, 0xa2}: "EfiPeiPlatformTypeKyanitePpi", efi.GUID{0xc1, 0xe3, 0xf9, 0xea, 0xcd, 0xc9, 0xdb, 0x46, 0xa5, 0xe5, 0x5a, 0x12, 0x4c, 0x83, 0x23, 0x23}: "EdkiiSdMmcOverrideProtocol", efi.GUID{0xc1, 0xe4, 0x3c, 0xfe, 0x5c, 0x90, 0x85, 0x40, 0xa7, 0xa0, 0x38, 0xde, 0xfe, 0x41, 0x78, 0xd2}: "BackupHddPasswordDxe", efi.GUID{0xc1, 0xe8, 0x34, 0xa3, 0x9f, 0xf4, 0xaa, 0x49, 0x9f, 0x82, 0x92, 0x10, 0x20, 0x5f, 0xc1, 0xfb}: "FchSandstoneDxe", efi.GUID{0xc1, 0xf3, 0xd8, 0xb0, 0xde, 0xb7, 0x11, 0x4c, 0xbc, 0x89, 0x2f, 0xb5, 0x62, 0xc8, 0xc4, 0x11}: "EdkiiSmmVarCheckProtocolGuid", efi.GUID{0xc1, 0xfe, 0x4e, 0xe0, 0x85, 0xae, 0x45, 0x48, 0x99, 0x9f, 0x95, 0x0e, 0xd7, 0x35, 0x2f, 0x17}: "DisableAbtSetup", efi.GUID{0xc2, 0x07, 0xce, 0xba, 0x87, 0x89, 0xdb, 0x11, 0xa5, 0x9a, 0x00, 0x40, 0xd0, 0x2b, 0x18, 0x35}: "EfiUnixGop", efi.GUID{0xc2, 0x0d, 0xe3, 0x3d, 0x4e, 0xd8, 0xea, 0x48, 0x8e, 0x38, 0xa9, 0xc1, 0x7d, 0x74, 0x3f, 0x10}: "TimerSMISmm", efi.GUID{0xc2, 0x14, 0x45, 0x3b, 0x98, 0xd0, 0x4c, 0x40, 0xb1, 0xdc, 0xd7, 0x1a, 0xea, 0xca, 0x4e, 0x96}: "AmdMemoryHobInfoPeimShp", efi.GUID{0xc2, 0x17, 0x9d, 0x5c, 0xd8, 0x4d, 0xd9, 0x45, 0x8e, 0x06, 0xbd, 0xd3, 0xf8, 0xb4, 0x5e, 0x4b}: "AmdI2cMasterDxe", efi.GUID{0xc2, 0x18, 0x43, 0x8e, 0x9a, 0x59, 0x5b, 0x43, 0xbc, 0x14, 0xd9, 0xc9, 0xfa, 0x41, 0x72, 0xce}: "AmdMemChanXLatDxe", efi.GUID{0xc2, 0x27, 0xc8, 0x01, 0x65, 0x77, 0xe9, 0x42, 0xb3, 0x1c, 0xe0, 0x3e, 0x89, 0xa0, 0x91, 0x13}: "AmdSocFp5RvPei", efi.GUID{0xc2, 0x33, 0x93, 0x97, 0x0b, 0xdf, 0xec, 0x48, 0x88, 0xa7, 0x88, 0xa7, 0xe6, 0xe5, 0x47, 0x9b}: "FjSmbiosEventLogDxe", efi.GUID{0xc2, 0x40, 0xc6, 0x75, 0x0e, 0x03, 0x57, 0x4c, 0x81, 0xe2, 0x53, 0x2b, 0x1d, 0xd7, 0x33, 0x9f}: "MemoryStorageKernelDxe", efi.GUID{0xc2, 0x43, 0x46, 0xf2, 0x22, 0xc6, 0x4e, 0x49, 0x8a, 0x0d, 0x46, 0x32, 0x57, 0x9c, 0x2d, 0x5b}: "EfiTrEEPhysicalPresenceGuid", efi.GUID{0xc2, 0x47, 0x76, 0x48, 0x08, 0x3d, 0x02, 0x4d, 0x9a, 0xa4, 0x7c, 0xe4, 0xf7, 0xbd, 0x5a, 0x7b}: "PlatformSmiSecureCheckSmm", efi.GUID{0xc2, 0x47, 0x89, 0x6b, 0x87, 0x42, 0x91, 0x4d, 0x8f, 0xe0, 0xa3, 0x81, 0xea, 0x5b, 0x56, 0x8f}: "rmHwA15Guid", efi.GUID{0xc2, 0x49, 0xf7, 0xee, 0x47, 0xc0, 0x6e, 0x4d, 0xb1, 0xbc, 0xd3, 0x6e, 0xb3, 0xa5, 0x55, 0x9c}: "QuarkVariableLockGuid", efi.GUID{0xc2, 0x4a, 0xac, 0xd6, 0xc2, 0x8b, 0xdd, 0x4c, 0x87, 0x76, 0x28, 0x0e, 0x14, 0x69, 0xde, 0x02}: "PchPolicyInitDxe", efi.GUID{0xc2, 0x50, 0x14, 0xaf, 0xde, 0x70, 0xd5, 0x44, 0x80, 0xb1, 0xb9, 0x0d, 0x44, 0x27, 0x79, 0x90}: "PasswordSupport", efi.GUID{0xc2, 0x55, 0xbd, 0x02, 0x1d, 0xab, 0x75, 0x4b, 0xb0, 0xfd, 0x9a, 0x63, 0xae, 0x09, 0xb3, 0x1d}: "BaseMemoryLibOptDxe", efi.GUID{0xc2, 0x56, 0x13, 0x4e, 0xed, 0x0e, 0x3f, 0x46, 0x81, 0x47, 0x99, 0x33, 0xab, 0xdb, 0xc7, 0xd5}: "EfiKmsFormatRsasha2563072Guid", efi.GUID{0xc2, 0x59, 0x14, 0xc4, 0x81, 0xa2, 0xd3, 0x40, 0xb3, 0x0a, 0x2b, 0x9d, 0xff, 0x3f, 0x3d, 0xa0}: "DellSaveMemoryConfigDxe", efi.GUID{0xc2, 0x5e, 0x2e, 0xbe, 0x50, 0x14, 0x9a, 0x4a, 0xb3, 0x64, 0x4f, 0x77, 0x7b, 0x42, 0x21, 0x6d}: "SwSmi534D0340", efi.GUID{0xc2, 0x61, 0x5c, 0x6d, 0x94, 0x76, 0x75, 0x47, 0x9f, 0x03, 0xed, 0x1e, 0x80, 0xde, 0xc3, 0x18}: "menu_top_mid", efi.GUID{0xc2, 0x69, 0xae, 0x8e, 0x79, 0x40, 0x0d, 0x4b, 0xb0, 0x75, 0x8b, 0xa0, 0x65, 0x3a, 0x43, 0x2f}: "NetworkStackOverridePei", efi.GUID{0xc2, 0x69, 0xf3, 0x1c, 0x8f, 0x3c, 0x75, 0x4d, 0xaa, 0xed, 0x45, 0xcf, 0xeb, 0x8e, 0x9b, 0x6c}: "UsbPortDisable", efi.GUID{0xc2, 0x6c, 0x4e, 0x00, 0x0f, 0xd6, 0x26, 0x47, 0xbe, 0x22, 0xd3, 0xd8, 0x02, 0x0c, 0x46, 0x87}: "AsusSmartHsioDxe", efi.GUID{0xc2, 0x6f, 0x20, 0x29, 0xab, 0x9e, 0x12, 0x46, 0xac, 0xa1, 0x1e, 0x3d, 0x09, 0x8f, 0xb1, 0xb3}: "LegacyVideoRom", efi.GUID{0xc2, 0x74, 0xee, 0xbf, 0xbd, 0x60, 0x7b, 0x46, 0x92, 0x61, 0xb7, 0x2a, 0x88, 0x1e, 0x49, 0xee}: "LenovoMailBoxSmm", efi.GUID{0xc2, 0x76, 0xeb, 0x65, 0x31, 0x71, 0x29, 0x42, 0xb8, 0xba, 0xca, 0x64, 0xc7, 0xb9, 0x2d, 0x75}: "SecureCorePcDeviceIdentifierDxe", efi.GUID{0xc2, 0x77, 0x74, 0x38, 0xc7, 0x69, 0xd2, 0x11, 0x8e, 0x39, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b}: "EfiSimpleTextOutProtocolGuid", efi.GUID{0xc2, 0x7a, 0xe5, 0x3f, 0x75, 0xc6, 0xb1, 0x46, 0x84, 0x58, 0xac, 0x62, 0x06, 0x58, 0x84, 0x24}: "TpvDxe", efi.GUID{0xc2, 0x7f, 0xf9, 0x3f, 0x20, 0x79, 0x72, 0x4c, 0x94, 0x78, 0x0c, 0x4d, 0xb7, 0xbe, 0xa3, 0x99}: "TrackPointSynaptics", efi.GUID{0xc2, 0x88, 0xa6, 0xd9, 0xec, 0xf1, 0x84, 0x48, 0x82, 0x62, 0x2c, 0x63, 0x81, 0xaf, 0x25, 0x4b}: "CsmSmiDispatcher", efi.GUID{0xc2, 0x8c, 0x5e, 0x08, 0xc9, 0x8e, 0x66, 0x46, 0xbd, 0x2a, 0x49, 0xd4, 0x81, 0xe9, 0x5f, 0xa7}: "FjEvteLaunch", efi.GUID{0xc2, 0x8e, 0x90, 0xd7, 0x7a, 0x22, 0x2f, 0x47, 0x80, 0x95, 0x6a, 0x15, 0x9d, 0xd7, 0x23, 0xd2}: "AmdNbioPcieRVDxe", efi.GUID{0xc2, 0x90, 0xf5, 0x4d, 0xcb, 0x43, 0xbe, 0x4a, 0xbe, 0x51, 0x0b, 0x55, 0xd3, 0x00, 0x0e, 0xa6}: "SystemSetupCapsuleFromStorageDxe", efi.GUID{0xc2, 0x93, 0xff, 0x1f, 0x76, 0x8c, 0xe4, 0x49, 0x8a, 0xb3, 0x43, 0xd9, 0x2f, 0x54, 0x45, 0xef}: "LogoJpg", efi.GUID{0xc2, 0x9d, 0xf6, 0x5f, 0x13, 0x76, 0xf5, 0x48, 0x93, 0x95, 0x35, 0xd5, 0x48, 0x1d, 0x4e, 0xf8}: "IntelDRSDxe", efi.GUID{0xc2, 0x9f, 0xd5, 0x7e, 0x95, 0x33, 0xd2, 0x5d, 0xa3, 0x1c, 0x1e, 0xf2, 0xf0, 0x98, 0xe1, 0x66}: "GopConsole", efi.GUID{0xc2, 0xa3, 0xc1, 0x9d, 0x96, 0xea, 0x3a, 0x4e, 0x84, 0x0e, 0x98, 0x40, 0xa2, 0x47, 0xf0, 0xa1}: "ThunderboltDxe", efi.GUID{0xc2, 0xb2, 0x84, 0x7d, 0xa1, 0x22, 0x72, 0x43, 0xb1, 0x2c, 0xeb, 0xb2, 0x32, 0xd3, 0xa6, 0xa3}: "VlvPolicyPpiGuid", efi.GUID{0xc2, 0xb8, 0xe0, 0x1d, 0xb6, 0xff, 0xdf, 0x4b, 0x97, 0xf5, 0x0f, 0xfb, 0x33, 0x97, 0x90, 0x38}: "BaseReportStatusCodeLibNull", efi.GUID{0xc2, 0xb9, 0xdc, 0xfc, 0x87, 0x79, 0xdf, 0x47, 0xa9, 0xa7, 0xbe, 0x3d, 0xba, 0x52, 0xd5, 0x0c}: "BootOptionPolicy", efi.GUID{0xc2, 0xba, 0x3c, 0x73, 0x3f, 0xb2, 0x92, 0x4b, 0xbc, 0x8e, 0xfb, 0x01, 0xce, 0x59, 0x07, 0xb7}: "FvbServicesRuntimeDxe", efi.GUID{0xc2, 0xc8, 0x44, 0x8d, 0xe5, 0x80, 0xe7, 0x49, 0xbc, 0x12, 0xae, 0x08, 0x9e, 0x48, 0xfa, 0x42}: "AmiTsePkgTokenSpace", efi.GUID{0xc2, 0xcc, 0xff, 0xef, 0x6a, 0x7d, 0xb1, 0x42, 0xad, 0x6d, 0x61, 0xb8, 0x82, 0x80, 0x1a, 0xff}: "PxeDriver", efi.GUID{0xc2, 0xcd, 0x90, 0x30, 0xfd, 0x5e, 0xbe, 0x4f, 0xb2, 0x2d, 0x58, 0x4e, 0xbd, 0x3d, 0x08, 0xba}: "TouchDriver", efi.GUID{0xc2, 0xce, 0x50, 0x42, 0xdb, 0xdd, 0x0b, 0x40, 0x8c, 0x62, 0xcf, 0x98, 0x64, 0xf6, 0xd1, 0x54}: "AmiSioPortCompatibilityProtocolGuid", efi.GUID{0xc2, 0xdb, 0x38, 0xac, 0x25, 0x85, 0xf8, 0x48, 0x96, 0x07, 0xfd, 0x9c, 0x91, 0x7b, 0xe4, 0x2e}: "AmdErrorLogDisplayDxe", efi.GUID{0xc2, 0xe1, 0x7f, 0x73, 0xe7, 0x15, 0xd6, 0x45, 0xb3, 0x7b, 0x31, 0x9f, 0xe8, 0x80, 0xf7, 0x33}: "SmmBase", efi.GUID{0xc2, 0xf1, 0xb0, 0x20, 0xd8, 0xb0, 0x5d, 0x4c, 0xaa, 0xd9, 0xf4, 0x45, 0x80, 0xdf, 0xdf, 0x8b}: "EfiPeiAmiKeycodePpi", efi.GUID{0xc2, 0xf2, 0x35, 0x30, 0xeb, 0x48, 0xbb, 0x46, 0xa5, 0x99, 0xb2, 0x33, 0x8d, 0xd5, 0x88, 0x67}: "AMIProjectPEI", efi.GUID{0xc2, 0xf5, 0x08, 0x78, 0xb0, 0x9c, 0x09, 0x46, 0x90, 0x7f, 0xb1, 0x84, 0x53, 0xc3, 0x63, 0xb4}: "DellStorageAgentsDxe", efi.GUID{0xc2, 0xf5, 0x19, 0x06, 0x58, 0x48, 0xaa, 0x4c, 0xa8, 0x6a, 0x73, 0xa2, 0x1a, 0x18, 0xdf, 0x6b}: "GenericWatchdogDxe", efi.GUID{0xc2, 0xf6, 0x3e, 0xcf, 0x25, 0xf1, 0xa0, 0x41, 0xb3, 0xde, 0x73, 0xaf, 0x41, 0x43, 0x81, 0x2e}: "FjCryptServiceDxe", efi.GUID{0xc2, 0xf6, 0x70, 0xc7, 0x78, 0x32, 0x57, 0x4a, 0xa1, 0xdb, 0xe1, 0x77, 0xf8, 0xdb, 0x2c, 0xd7}: "AmdRAIDCoreDxe", efi.GUID{0xc3, 0x0b, 0x1a, 0x30, 0x16, 0xba, 0xf9, 0x49, 0x85, 0x8b, 0xde, 0xe0, 0x5f, 0x91, 0xe7, 0xb8}: "TpAcpiNvsInitDxe", efi.GUID{0xc3, 0x0d, 0x5a, 0xff, 0xac, 0xdf, 0x4a, 0x43, 0xb3, 0xdf, 0xff, 0xd4, 0xc1, 0xea, 0x7e, 0x41}: "AmiTseOemPortingVar28", efi.GUID{0xc3, 0x24, 0x19, 0x1b, 0x21, 0x63, 0x4f, 0x48, 0x83, 0xef, 0x88, 0x94, 0xb2, 0x1d, 0xe2, 0x58}: "AmiPeiCrbInfoPpiGuid", efi.GUID{0xc3, 0x2a, 0xe8, 0x86, 0xaf, 0xd6, 0xa4, 0x47, 0x8c, 0x93, 0x0c, 0x76, 0xc7, 0xb3, 0xcc, 0xd3}: "LegacyBiosMiscSmm", efi.GUID{0xc3, 0x2f, 0x44, 0x99, 0x01, 0x1a, 0xf7, 0x40, 0x95, 0xa0, 0xd6, 0x54, 0x27, 0x96, 0x15, 0x81}: "DellOnboardNicDxe", efi.GUID{0xc3, 0x4f, 0x4b, 0xb8, 0x4a, 0xa8, 0xf4, 0x47, 0x99, 0x9d, 0xf0, 0x0c, 0x1f, 0xd5, 0x01, 0x39}: "CryptoServiceSmm", efi.GUID{0xc3, 0x51, 0x0e, 0x7b, 0xff, 0x46, 0x6c, 0x4d, 0xaa, 0x5d, 0x61, 0xdb, 0x3f, 0x44, 0xf5, 0x0e}: "EcMemMappingPei", efi.GUID{0xc3, 0x58, 0x9d, 0xde, 0x42, 0x42, 0xee, 0x4f, 0xa9, 0x0e, 0xc4, 0x0b, 0x05, 0x7c, 0xbb, 0x94}: "BmcSync", efi.GUID{0xc3, 0x5e, 0xd6, 0x38, 0x39, 0x8f, 0x60, 0x46, 0xb8, 0xa6, 0xf3, 0x6a, 0xa3, 0x92, 0x54, 0x75}: "AmiBdsConnectPolicyProtocolGuid", efi.GUID{0xc3, 0x61, 0xc4, 0xdb, 0xde, 0xb3, 0x2a, 0x42, 0xb9, 0xb4, 0x98, 0x86, 0xfd, 0x49, 0xa1, 0xe5}: "EfiJsonCapsuleResultTable", efi.GUID{0xc3, 0x70, 0x26, 0x52, 0x4e, 0x3d, 0xc3, 0x4e, 0x8a, 0x83, 0x34, 0x46, 0x7d, 0xaf, 0xe4, 0xba}: "SmmSxDispatch2OnSmmSxDispatchThunk", efi.GUID{0xc3, 0x70, 0x9c, 0x45, 0x44, 0x93, 0x84, 0x44, 0x9f, 0x93, 0x78, 0x22, 0x53, 0x0d, 0x0d, 0x11}: "MePciPlatform", efi.GUID{0xc3, 0x71, 0x6b, 0xeb, 0x59, 0x06, 0x8a, 0x4a, 0x8a, 0xe1, 0xda, 0xd2, 0xf5, 0x19, 0x2c, 0x62}: "BootMenuApp", efi.GUID{0xc3, 0x86, 0xb0, 0x40, 0xb5, 0x95, 0x4f, 0x44, 0xa8, 0x95, 0xcb, 0xf4, 0x84, 0xa1, 0x9a, 0x0f}: "AsusHwmSetupItem", efi.GUID{0xc3, 0x93, 0xc2, 0x12, 0x45, 0x37, 0x26, 0x47, 0x8f, 0xa2, 0x2a, 0x9e, 0xf1, 0x86, 0x79, 0xad}: "AaeonBfpiDxe", efi.GUID{0xc3, 0xa7, 0x2e, 0xee, 0x4a, 0x27, 0x8d, 0x89, 0x90, 0xd3, 0x46, 0xbe, 0xd3, 0x4a, 0xaf, 0x61}: "GpioControlDxe", efi.GUID{0xc3, 0xa8, 0x49, 0xe6, 0x22, 0xf2, 0x6c, 0x4e, 0x3d, 0x63, 0x92, 0xe7, 0xdf, 0xac, 0x65, 0xa3}: "DatabaseManagerPei", efi.GUID{0xc3, 0xa8, 0x67, 0xc8, 0xf1, 0x5b, 0x33, 0x4b, 0x82, 0xfe, 0xb1, 0xb4, 0x9d, 0x52, 0x86, 0xee}: "OEMAcpiPlatformSmi", efi.GUID{0xc3, 0xac, 0x21, 0xab, 0x33, 0xba, 0x2c, 0xee, 0x66, 0xbc, 0x12, 0x56, 0x77, 0x11, 0x1a, 0xb2}: "AmiDebuggerCpuProtocol", efi.GUID{0xc3, 0xad, 0x26, 0x1d, 0x11, 0xb0, 0x2c, 0xee, 0x21, 0x77, 0x89, 0xbb, 0xaa, 0xcc, 0x33, 0x92}: "AmiBeforeCpuRcProtocol", efi.GUID{0xc3, 0xb6, 0xfa, 0xdb, 0x4b, 0x6c, 0x4f, 0x4e, 0xa8, 0xfe, 0xad, 0x1c, 0x27, 0xd5, 0xe8, 0xba}: "OFCSmmDriver", efi.GUID{0xc3, 0xbc, 0x7f, 0x62, 0xf0, 0x41, 0x78, 0x43, 0x99, 0xb6, 0x53, 0x3d, 0xce, 0x88, 0x50, 0xa0}: "SmbusPei", efi.GUID{0xc3, 0xd0, 0xd4, 0x2e, 0x9d, 0x80, 0xa0, 0x40, 0xae, 0xf6, 0x52, 0xd6, 0x83, 0xc8, 0x6f, 0x23}: "AsusPTTPei", efi.GUID{0xc3, 0xd6, 0x90, 0xa4, 0xdf, 0xa8, 0x35, 0x42, 0xb7, 0x56, 0x3a, 0x2e, 0xcf, 0x32, 0xbc, 0x24}: "AmdMemSmbiosV2ZpPei", efi.GUID{0xc3, 0xdf, 0x2f, 0x8a, 0x95, 0x03, 0x2c, 0x44, 0xb9, 0xf7, 0x9a, 0x3d, 0x69, 0xd2, 0x09, 0x4c}: "SoftKbd", efi.GUID{0xc4, 0x03, 0x3b, 0xb4, 0xb0, 0xfe, 0x0b, 0x41, 0xa0, 0xa0, 0xc2, 0x5b, 0x1c, 0x8f, 0x8d, 0xd8}: "EcStorageAgentDxe", efi.GUID{0xc4, 0x04, 0x85, 0x5f, 0xaa, 0xbc, 0x00, 0x46, 0xb4, 0x35, 0x34, 0x7e, 0xec, 0x6b, 0x5e, 0x14}: "MmioSerialUart0", efi.GUID{0xc4, 0x0b, 0xb3, 0x37, 0x3c, 0x87, 0x41, 0x45, 0x8b, 0x65, 0xde, 0xa3, 0x70, 0xb6, 0x74, 0xdd}: "WMISwSmiShp", efi.GUID{0xc4, 0x0f, 0x00, 0x69, 0xe6, 0x15, 0xcf, 0x45, 0xa6, 0xd4, 0x73, 0x33, 0x7a, 0x9b, 0x59, 0x58}: "AmdCcxZenZpPei", efi.GUID{0xc4, 0x10, 0x05, 0xb9, 0xde, 0xa6, 0x45, 0x4e, 0xa5, 0x0c, 0xa4, 0x6c, 0xca, 0xfe, 0xef, 0x91}: "BaseBoardDXE", efi.GUID{0xc4, 0x11, 0xbe, 0x78, 0x44, 0xee, 0x22, 0x4a, 0x9f, 0x05, 0x03, 0x85, 0x2e, 0xc5, 0xc9, 0x78}: "EfiKmsFormatMd2128Guid", efi.GUID{0xc4, 0x1e, 0xa4, 0xf5, 0xad, 0x97, 0xf6, 0x40, 0x82, 0xeb, 0xee, 0x85, 0x01, 0xcd, 0x49, 0x26}: "AmiTlsCertificate", efi.GUID{0xc4, 0x25, 0xd0, 0x64, 0xbf, 0x1e, 0x22, 0x4c, 0x92, 0x7b, 0x74, 0xfe, 0x43, 0xdd, 0xa4, 0x12}: "OemSyncSetupRV", efi.GUID{0xc4, 0x27, 0x56, 0xca, 0xba, 0x51, 0xcb, 0x4d, 0xac, 0x62, 0xc0, 0x76, 0xeb, 0xd3, 0x7d, 0xdb}: "Python", efi.GUID{0xc4, 0x32, 0x10, 0x31, 0xa6, 0x98, 0x06, 0x4e, 0x8c, 0x03, 0xd8, 0x15, 0xfd, 0x1f, 0xe7, 0x09}: "LenovoSnbGopDriver", efi.GUID{0xc4, 0x3a, 0xe6, 0xc1, 0xcf, 0xd0, 0xe6, 0x4c, 0x83, 0x5b, 0xee, 0xd0, 0xe6, 0xa8, 0xa4, 0x5b}: "EfiPaddingRsaesOaepGuid", efi.GUID{0xc4, 0x4b, 0x74, 0x5d, 0x94, 0xca, 0x8a, 0x4f, 0x9c, 0x50, 0xeb, 0xc2, 0xa1, 0x07, 0x30, 0x3e}: "SerialIoUartDriver", efi.GUID{0xc4, 0x51, 0x02, 0x28, 0x09, 0x1d, 0x35, 0x40, 0x90, 0x62, 0x83, 0x9a, 0xcb, 0x5f, 0x18, 0xc1}: "CpuMpPei", efi.GUID{0xc4, 0x54, 0x57, 0xf9, 0x4d, 0x78, 0x55, 0x41, 0xa0, 0x5e, 0x5c, 0x0a, 0xe2, 0x55, 0x9f, 0xf8}: "AmdNbioBaseRVPei", efi.GUID{0xc4, 0x58, 0xcb, 0x79, 0x51, 0xac, 0x2f, 0x44, 0xaf, 0xd7, 0x98, 0xe4, 0x7d, 0x2e, 0x99, 0x08}: "EfiBootScriptExecutorContextGuid", efi.GUID{0xc4, 0x5f, 0x5b, 0xb4, 0xa6, 0xd6, 0x23, 0x45, 0xa2, 0x29, 0xe7, 0x77, 0x20, 0x97, 0xef, 0x14}: "DellLegUsbMemInfoDxe", efi.GUID{0xc4, 0x5f, 0xc9, 0x93, 0x41, 0xb7, 0x87, 0x45, 0x93, 0x04, 0x1c, 0x5a, 0x2b, 0xe6, 0xf7, 0x42}: "ApplePlatformSecurityPolicy", efi.GUID{0xc4, 0x6b, 0xf2, 0x4f, 0x4e, 0x69, 0x94, 0x49, 0x89, 0xc2, 0xe9, 0xe4, 0x46, 0x90, 0xd1, 0x74}: "HpNvErrorLog", efi.GUID{0xc4, 0x71, 0xdf, 0x1f, 0x6d, 0xd4, 0xfb, 0x45, 0xbf, 0x85, 0x56, 0xf1, 0xc5, 0x29, 0x72, 0x5a}: "ComTypeControlPei", efi.GUID{0xc4, 0x7a, 0x3d, 0x5d, 0x45, 0xbd, 0x01, 0x4b, 0xb9, 0xde, 0xa5, 0x8f, 0x4e, 0x32, 0x16, 0xcc}: "AmdCpmThunderboltMid", efi.GUID{0xc4, 0x7a, 0x4f, 0xf1, 0x36, 0xf7, 0xfe, 0x4a, 0xb0, 0x1a, 0x12, 0x9b, 0x1f, 0xa1, 0x3a, 0x5d}: "AplPreMemNvram", efi.GUID{0xc4, 0x7a, 0x69, 0xf6, 0x76, 0xa7, 0xe1, 0x4e, 0xb6, 0x43, 0x1f, 0xef, 0xf2, 0xb6, 0x15, 0xbb}: "IncompatiblePciDeviceSupportDxe", efi.GUID{0xc4, 0x7e, 0xb3, 0x3b, 0xe8, 0x82, 0x84, 0x4c, 0xaa, 0xa5, 0x1e, 0x0b, 0xcf, 0xcd, 0xa6, 0xfd}: "DellFmpFtb", efi.GUID{0xc4, 0x82, 0xd2, 0xd8, 0x78, 0x44, 0x75, 0x4d, 0xb1, 0x0b, 0xb0, 0x8f, 0x5e, 0x59, 0xb5, 0xe8}: "BasicDiagnostics", efi.GUID{0xc4, 0x83, 0x01, 0x33, 0x48, 0xf8, 0x88, 0x4c, 0xae, 0x5a, 0x22, 0x48, 0xf9, 0x1d, 0xf7, 0x73}: "DellExtendedBatteryLifeSmm", efi.GUID{0xc4, 0x83, 0xeb, 0xca, 0xaa, 0x23, 0x11, 0x43, 0x83, 0x27, 0x8b, 0x72, 0xdd, 0xb7, 0x04, 0x1b}: "RcPolicyOverrideDxe", efi.GUID{0xc4, 0x94, 0xef, 0xcf, 0x67, 0x41, 0x6a, 0x46, 0x88, 0x93, 0x87, 0x79, 0x45, 0x9d, 0xfa, 0x86}: "LenovoPlatformHiiAdvancedDxe", efi.GUID{0xc4, 0x9e, 0x51, 0x31, 0xf1, 0x65, 0x90, 0x47, 0xb2, 0x23, 0xaa, 0x93, 0x30, 0xdd, 0x75, 0xfd}: "Secure96Dxe", efi.GUID{0xc4, 0xa0, 0x52, 0xd9, 0x96, 0x4d, 0x53, 0x68, 0xde, 0xcd, 0x05, 0x8d, 0xc9, 0xdc, 0x5f, 0xcf}: "AmdSocAm4MtsPei", efi.GUID{0xc4, 0xaa, 0x23, 0xae, 0xb4, 0xab, 0x96, 0x4a, 0xa1, 0x98, 0xe0, 0x6c, 0xc8, 0x47, 0x5c, 0xf7}: "FchDxeLpcClkRun", efi.GUID{0xc4, 0xaa, 0xdb, 0x3e, 0x17, 0x50, 0x70, 0x48, 0x8c, 0xc4, 0x72, 0x1f, 0x9e, 0xf1, 0x97, 0x4f}: "CloudBmrApp", efi.GUID{0xc4, 0xac, 0x36, 0x6d, 0xa1, 0xb9, 0x4f, 0x47, 0xb3, 0x33, 0x07, 0x1a, 0x56, 0xf3, 0xd4, 0xf4}: "AmdFabricRmbPei", efi.GUID{0xc4, 0xb3, 0x71, 0x59, 0xd0, 0x8f, 0x1c, 0x41, 0xa5, 0x3f, 0x0a, 0x5e, 0xf4, 0x00, 0xa0, 0x94}: "DellPasswordSync", efi.GUID{0xc4, 0xb7, 0xa9, 0xba, 0x4a, 0x2b, 0x47, 0x40, 0xb2, 0x54, 0xc1, 0x2b, 0x42, 0xf0, 0x0d, 0x67}: "CrisRecoveryApl", efi.GUID{0xc4, 0xcc, 0x67, 0x01, 0xf7, 0xd0, 0x21, 0x4f, 0xa3, 0xef, 0x9e, 0x64, 0xb7, 0xcd, 0xce, 0x8b}: "ScsiBus", efi.GUID{0xc4, 0xcc, 0x67, 0x01, 0xf7, 0xd0, 0x21, 0x4f, 0xa3, 0xef, 0x9e, 0x64, 0xb7, 0xcd, 0xce, 0x8c}: "SystemAhciBusDxe", efi.GUID{0xc4, 0xd0, 0x93, 0x03, 0x0c, 0x6b, 0x96, 0x4b, 0xb4, 0xc3, 0x8c, 0x7e, 0xb7, 0x18, 0xf3, 0x48}: "CsrPseudoOffsetInitSmm", efi.GUID{0xc4, 0xd4, 0x8d, 0xfd, 0x48, 0xb7, 0xe3, 0x48, 0xa9, 0x32, 0xba, 0x68, 0xdd, 0x07, 0xbb, 0x06}: "FchSmbusDxe", efi.GUID{0xc4, 0xd7, 0x8c, 0xda, 0x00, 0x1c, 0xe2, 0x49, 0x80, 0x3e, 0x52, 0x14, 0xe7, 0x01, 0x89, 0x4c}: "EfiI2cEnumerateProtocolGuid", efi.GUID{0xc4, 0xdc, 0xe7, 0x3a, 0x73, 0xd0, 0xee, 0x41, 0x8d, 0x9b, 0x85, 0xc3, 0x8b, 0xc7, 0x87, 0x8d}: "PowerOnRobotDxe", efi.GUID{0xc4, 0xe5, 0x0a, 0x9d, 0x82, 0x72, 0x96, 0x49, 0x96, 0x33, 0xc4, 0xce, 0x9d, 0x9a, 0xdb, 0xac}: "PlatformPei", efi.GUID{0xc4, 0xed, 0x2f, 0xbe, 0x51, 0x2f, 0x10, 0x41, 0x93, 0x27, 0x36, 0xfa, 0xb7, 0x42, 0x9a, 0xab}: "EfiPlatformTypeLightningRidgeEx_8s2nProtocol", efi.GUID{0xc4, 0xef, 0x72, 0x52, 0x06, 0xd5, 0xed, 0x4c, 0xa4, 0x15, 0xda, 0x68, 0xb0, 0x51, 0x51, 0x20}: "PciDxeInit", efi.GUID{0xc4, 0xf0, 0x64, 0xac, 0xc1, 0x25, 0xc8, 0x47, 0xac, 0x74, 0xb1, 0x52, 0x74, 0x56, 0x35, 0x1d}: "EfiPlatformTypeHedtEvProtocol", efi.GUID{0xc4, 0xf8, 0x01, 0xb6, 0xb7, 0x43, 0x84, 0x47, 0x95, 0xb1, 0xf4, 0x22, 0x6c, 0xb4, 0x0c, 0xee}: "RuntimeDxe", efi.GUID{0xc5, 0x02, 0x96, 0xc2, 0x88, 0x1d, 0xda, 0x45, 0xa3, 0x32, 0x55, 0xf3, 0xc6, 0x93, 0xd4, 0x27}: "UsbOcUpdateDxeArcherCityModular", efi.GUID{0xc5, 0x08, 0x75, 0x89, 0xda, 0xfc, 0xb9, 0x4d, 0x8a, 0x7e, 0x62, 0x14, 0xcf, 0x6c, 0x24, 0x6c}: "LenovoNvmeInit", efi.GUID{0xc5, 0x08, 0x75, 0x89, 0xda, 0xfc, 0xb9, 0x4d, 0x8a, 0x7e, 0x62, 0x14, 0xcf, 0x6c, 0xff, 0xff}: "LenovoHstiUpdate", efi.GUID{0xc5, 0x0b, 0xbe, 0xb1, 0x28, 0x6c, 0x2d, 0x44, 0xaa, 0x37, 0x15, 0x1b, 0x42, 0x57, 0xbd, 0x78}: "EdkiiNonDiscoverableXhciDeviceGuid", efi.GUID{0xc5, 0x16, 0x12, 0xb1, 0xe4, 0x44, 0x2c, 0x47, 0xac, 0xb7, 0x12, 0x8a, 0x5a, 0x3a, 0xd7, 0xa1}: "OpromUpdateDxeNeonCityFPGA", efi.GUID{0xc5, 0x34, 0xb7, 0xe5, 0x1d, 0x39, 0xdf, 0x46, 0xb8, 0xea, 0x66, 0x95, 0xc9, 0x79, 0xb1, 0xd8}: "Npce388nFlashSmm", efi.GUID{0xc5, 0x35, 0xc4, 0x8c, 0x30, 0x63, 0x69, 0x42, 0xb0, 0xc3, 0xe3, 0xbd, 0x05, 0xc8, 0x6f, 0xb8}: "DebugCommunicationLibSerialPort", efi.GUID{0xc5, 0x3f, 0x88, 0xf5, 0xee, 0xf8, 0x44, 0x4e, 0xb3, 0x86, 0x60, 0x21, 0xfb, 0x32, 0x0c, 0x9b}: "ScReset", efi.GUID{0xc5, 0x4c, 0xee, 0xd1, 0x10, 0x73, 0xae, 0x45, 0x85, 0x4e, 0x44, 0x50, 0xe1, 0x0e, 0xa2, 0x0a}: "OemDisaplayTIO", efi.GUID{0xc5, 0x4c, 0xfa, 0x24, 0x3f, 0x34, 0x78, 0x4d, 0xab, 0xd9, 0x1c, 0xc3, 0x37, 0xe8, 0xab, 0xdb}: "SecureBioDxe", efi.GUID{0xc5, 0x51, 0xc0, 0x95, 0x23, 0xf1, 0x2e, 0x43, 0x93, 0x83, 0xb9, 0xcf, 0x11, 0x3f, 0x08, 0x2e}: "LenovoTcgServicesSmm", efi.GUID{0xc5, 0x51, 0xe7, 0xaf, 0xd4, 0x05, 0x98, 0x48, 0xbf, 0x94, 0x1a, 0x4b, 0x50, 0xf3, 0x5f, 0xd4}: "DellSmmCryptoAlgorithm", efi.GUID{0xc5, 0x5b, 0x66, 0x5a, 0xc5, 0x9e, 0x30, 0x42, 0xaf, 0x45, 0x27, 0xad, 0x9d, 0x5e, 0x8d, 0xea}: "AmdPspP2CmboxV2SspSmmBuffer", efi.GUID{0xc5, 0x67, 0x85, 0x7e, 0xfe, 0xad, 0xa6, 0x44, 0xa1, 0xfc, 0x65, 0x14, 0x10, 0x5c, 0x6b, 0x24}: "FjCameraCapsuleDxe", efi.GUID{0xc5, 0x6f, 0x7f, 0x07, 0x7c, 0x2d, 0x58, 0x4f, 0xb1, 0x2c, 0xf5, 0x28, 0x7e, 0x5f, 0x58, 0x43}: "DellTagsDxe", efi.GUID{0xc5, 0x7c, 0x10, 0x8a, 0xda, 0xdc, 0xb7, 0x4f, 0xa2, 0x72, 0x42, 0x43, 0xb4, 0x1a, 0xfb, 0xfe}: "AppleGraphicsPolicy", efi.GUID{0xc5, 0x81, 0x4f, 0x0c, 0x9f, 0x30, 0x41, 0x49, 0x85, 0xa2, 0x8c, 0x6a, 0x44, 0xb4, 0xf4, 0xf6}: "AmdVariableProtectionSmm", efi.GUID{0xc5, 0x84, 0x77, 0x48, 0x99, 0x62, 0xa6, 0x4b, 0xb0, 0x96, 0x5c, 0xc5, 0x27, 0x7c, 0xf7, 0x57}: "EdkiiCapsuleUpdatePolicyProtocol", efi.GUID{0xc5, 0x85, 0x36, 0x2b, 0x90, 0xcf, 0x67, 0x4a, 0x8a, 0x48, 0x91, 0x34, 0xba, 0x32, 0xd6, 0x77}: "PlatformStage1Pei", efi.GUID{0xc5, 0x85, 0xb9, 0x15, 0x03, 0x71, 0x35, 0x4f, 0xb5, 0x9d, 0x22, 0x35, 0xfc, 0x5f, 0x3f, 0xfe}: "UsbTypeCDxe", efi.GUID{0xc5, 0x95, 0x40, 0xe0, 0x8d, 0xf8, 0x42, 0x49, 0xbe, 0xf5, 0x34, 0x24, 0xa6, 0x93, 0xa8, 0xb9}: "BSODSmm", efi.GUID{0xc5, 0xa1, 0x4c, 0x4a, 0x1c, 0x87, 0xbb, 0x45, 0x88, 0x01, 0x69, 0x10, 0xa7, 0xaa, 0x58, 0x12}: "PeiBoardConfig", efi.GUID{0xc5, 0xa4, 0x70, 0x98, 0x5e, 0xc6, 0x84, 0x4d, 0xae, 0x30, 0x85, 0x53, 0x48, 0xaf, 0x07, 0xc7}: "FjErrors2Screen", efi.GUID{0xc5, 0xa5, 0x10, 0xd6, 0xc8, 0x2e, 0xc7, 0x4f, 0xb7, 0xbc, 0x56, 0x64, 0xeb, 0xb8, 0x55, 0xd2}: "XnoteHiddenMenuSetup", efi.GUID{0xc5, 0xb0, 0x31, 0x41, 0xc3, 0xde, 0x0a, 0x47, 0xaa, 0xd5, 0x15, 0x09, 0x34, 0x9d, 0xbf, 0xb4}: "AdlSioFunctionDxe", efi.GUID{0xc5, 0xb3, 0xa9, 0xc5, 0x07, 0x63, 0xcc, 0x43, 0x8d, 0x72, 0x9b, 0xc6, 0x7e, 0xee, 0x65, 0x70}: "SystemPolicyManagerDxe", efi.GUID{0xc5, 0xb5, 0x38, 0x51, 0x69, 0x93, 0xec, 0x48, 0x5b, 0x97, 0x38, 0xa2, 0xf7, 0x09, 0x66, 0x75}: "PrevBootErrSrcHob", efi.GUID{0xc5, 0xb8, 0x2d, 0xd4, 0x95, 0x1e, 0x2f, 0x4a, 0x97, 0x42, 0x47, 0x9c, 0x1b, 0xa4, 0x21, 0x92}: "OemDataRegionFlashDxe", efi.GUID{0xc5, 0xc5, 0x7b, 0xd5, 0x58, 0xf0, 0xa8, 0x4a, 0x85, 0x85, 0xb7, 0x64, 0x5e, 0x1a, 0x7d, 0x25}: "DpfServicesSmm", efi.GUID{0xc5, 0xd0, 0xc5, 0x88, 0xff, 0xb0, 0x06, 0x4e, 0x97, 0xd8, 0xa8, 0x4b, 0x2e, 0x25, 0x9e, 0xa8}: "SaveRestoreGptDefaultsAndWmi", efi.GUID{0xc5, 0xdc, 0xd1, 0x6f, 0xb9, 0xb5, 0x82, 0x4a, 0x87, 0x28, 0x8d, 0x85, 0x44, 0x28, 0xa4, 0xa3}: "DxeFfsGfxDriver", efi.GUID{0xc5, 0xe3, 0x68, 0x8e, 0x59, 0xfc, 0x80, 0x42, 0x84, 0x67, 0x38, 0x00, 0xd3, 0x1a, 0x81, 0x62}: "IccOverClocking9_5", efi.GUID{0xc5, 0xe6, 0x0d, 0x30, 0x5c, 0x76, 0x89, 0x4f, 0xbd, 0x6d, 0xa6, 0x23, 0x78, 0x5a, 0xbc, 0x27}: "PchLibNull", efi.GUID{0xc5, 0xe7, 0xa6, 0xb8, 0xfd, 0xb8, 0x5c, 0x42, 0xa6, 0x7e, 0x10, 0x09, 0xdf, 0x1f, 0x10, 0xb5}: "LenovoUserManagerDxe", efi.GUID{0xc5, 0xee, 0xa1, 0xf7, 0xa5, 0x7d, 0x80, 0x4d, 0x8e, 0xda, 0xc2, 0x83, 0x47, 0x27, 0x63, 0x28}: "CsmInt15HookSmm", efi.GUID{0xc5, 0xf1, 0x90, 0x64, 0xcc, 0xeb, 0x65, 0x46, 0x88, 0x92, 0x00, 0x75, 0xb9, 0xbb, 0x49, 0xb7}: "CpuDxe", efi.GUID{0xc5, 0xf2, 0x37, 0xba, 0xf3, 0xb0, 0x95, 0x4a, 0xb5, 0x5f, 0xf2, 0x5f, 0x4f, 0x6f, 0x84, 0x52}: "IntelGraphicsPeim", efi.GUID{0xc5, 0xf6, 0x98, 0x94, 0x77, 0x1b, 0xe7, 0x4a, 0xa0, 0x45, 0xdb, 0xc2, 0x9e, 0xb5, 0x54, 0x1d}: "StatusCodeLoggerDxe", efi.GUID{0xc5, 0xfa, 0x31, 0xcf, 0x4e, 0xc2, 0xd2, 0x11, 0x85, 0xf3, 0x00, 0xa0, 0xc9, 0x3e, 0xc9, 0x3b}: "BlockIoVendorGuid", efi.GUID{0xc5, 0xfd, 0x81, 0x0d, 0x98, 0xcb, 0x9f, 0x4b, 0xb9, 0x3b, 0x70, 0xa9, 0xc0, 0x66, 0x3a, 0xbe}: "DellDccsSmmDriver", efi.GUID{0xc6, 0x13, 0x6a, 0x31, 0xca, 0xb0, 0xc9, 0x4c, 0x85, 0x99, 0x54, 0x15, 0xba, 0xdf, 0x19, 0x23}: "AaeonUartOverridePrs", efi.GUID{0xc6, 0x17, 0x74, 0x65, 0x37, 0x3c, 0x7c, 0x4c, 0x90, 0x7a, 0x72, 0xc9, 0xef, 0x34, 0xf8, 0x02}: "FjEcDxe", efi.GUID{0xc6, 0x1b, 0xa3, 0x0a, 0x79, 0x33, 0xe8, 0x41, 0x82, 0x5a, 0x53, 0xf8, 0x2c, 0xc0, 0xf2, 0x54}: "AmiTpm32Bin", efi.GUID{0xc6, 0x2f, 0x86, 0x4c, 0x54, 0x0e, 0x36, 0x4e, 0x8c, 0x8f, 0xff, 0x6f, 0x31, 0x67, 0x95, 0x1f}: "FaultTolerantWriteLiteDxe", efi.GUID{0xc6, 0x60, 0xf9, 0xa8, 0xc3, 0x4c, 0x17, 0x44, 0x8a, 0xd9, 0x2a, 0x3b, 0x3f, 0x80, 0x27, 0xea}: "AmiMemoryInfoGuid", efi.GUID{0xc6, 0x63, 0xcf, 0xa2, 0x4f, 0xd4, 0xd0, 0x4c, 0x8a, 0xf6, 0x72, 0x2a, 0x01, 0x38, 0xc0, 0x21}: "ArmPlatformLibSecNull", efi.GUID{0xc6, 0x67, 0x0d, 0xb6, 0x46, 0x95, 0x1d, 0x4c, 0xb1, 0xda, 0x68, 0x1b, 0x00, 0x1c, 0x53, 0xc0}: "H2OUveConfigUtilDxe", efi.GUID{0xc6, 0x8f, 0x3a, 0xe3, 0x8f, 0x12, 0x2e, 0x48, 0x8c, 0xd5, 0x36, 0x01, 0x72, 0xce, 0x43, 0x14}: "OemModelIDPei", efi.GUID{0xc6, 0x90, 0xdc, 0x3c, 0xfb, 0x13, 0x75, 0x4a, 0x9e, 0x79, 0x59, 0xe9, 0xdd, 0x78, 0xb9, 0xfa}: "EfiPeiReadOnlyVariablePpiGuid", efi.GUID{0xc6, 0x9a, 0xd2, 0x8e, 0xaa, 0xd6, 0xe8, 0x4f, 0xad, 0xc5, 0xb7, 0xe5, 0x87, 0x91, 0xa0, 0x13}: "DellSmmPowerOffProtocol", efi.GUID{0xc6, 0x9c, 0x6e, 0x32, 0x39, 0x98, 0x85, 0x48, 0xb2, 0xed, 0x27, 0x59, 0x03, 0xb6, 0x68, 0xe1}: "SmmAccess", efi.GUID{0xc6, 0xa1, 0x4c, 0x4a, 0x1c, 0x87, 0xbb, 0x45, 0x88, 0x01, 0x69, 0x10, 0xa7, 0xaa, 0x58, 0x07}: "BiosInfo", efi.GUID{0xc6, 0xa4, 0x5f, 0x9c, 0x6b, 0x74, 0xa3, 0x40, 0x91, 0xce, 0xec, 0x04, 0x5f, 0x9d, 0x37, 0x16}: "SmbiosRecoveryDmiEdit", efi.GUID{0xc6, 0xa4, 0x74, 0x74, 0x30, 0x7f, 0xe1, 0x4d, 0xbc, 0x68, 0xda, 0x5e, 0xfe, 0x61, 0x5b, 0x52}: "SmbiosDataUpdateDxeNeonCityEPRP", efi.GUID{0xc6, 0xaa, 0x58, 0x1c, 0xc9, 0x76, 0x4d, 0xd9, 0xa1, 0x4c, 0x00, 0x59, 0xe1, 0x3b, 0x96, 0xa3}: "AppleMtftp4Dxe", efi.GUID{0xc6, 0xac, 0x6c, 0x2c, 0x3c, 0x6c, 0xa7, 0x4a, 0xb2, 0xde, 0x38, 0x4d, 0xae, 0x2b, 0x03, 0x52}: "RegAccessPeim", efi.GUID{0xc6, 0xb3, 0xce, 0x3e, 0x1c, 0x1b, 0x29, 0x47, 0x9c, 0x62, 0x33, 0xdd, 0x81, 0xd6, 0x5d, 0xde}: "FchPromontoryCbsPei", efi.GUID{0xc6, 0xb8, 0x0e, 0x05, 0x2e, 0xc1, 0x86, 0x4b, 0x89, 0x2b, 0x40, 0x98, 0x5e, 0x8b, 0x31, 0x37}: "UefiDevicePathLibDevicePathProtocol", efi.GUID{0xc6, 0xba, 0xcd, 0xcc, 0x83, 0x73, 0x2d, 0x45, 0xb8, 0xaf, 0xc5, 0xe2, 0x9d, 0x7d, 0x0b, 0xff}: "SystemPolicyManagerPei", efi.GUID{0xc6, 0xc4, 0xb3, 0x29, 0xaa, 0xe5, 0xe4, 0x49, 0x8c, 0xe0, 0x27, 0x72, 0xf7, 0x82, 0xdd, 0xc2}: "WinNtGopDxe", efi.GUID{0xc6, 0xce, 0xe1, 0x51, 0x2c, 0x1f, 0xf2, 0x4b, 0x98, 0x8e, 0xca, 0x3e, 0xab, 0x7a, 0xef, 0x37}: "FjSystemDataRt", efi.GUID{0xc6, 0xd4, 0x98, 0x0d, 0xb2, 0x59, 0xcc, 0x44, 0x8e, 0x28, 0x45, 0x40, 0x13, 0x0e, 0x34, 0x7d}: "LaunchPadDrv", efi.GUID{0xc6, 0xe2, 0xe5, 0xf2, 0x85, 0x89, 0xdb, 0x11, 0xa1, 0x91, 0x00, 0x40, 0xd0, 0x2b, 0x18, 0x35}: "EfiUnixUgaIoProtocol", efi.GUID{0xc6, 0xe4, 0x19, 0x04, 0x8e, 0x4e, 0x36, 0x44, 0x85, 0x09, 0x38, 0xb7, 0xae, 0x50, 0xbf, 0xfd}: "ReadyBootSMI", efi.GUID{0xc6, 0xe5, 0x4e, 0xe6, 0xc5, 0x6e, 0xd8, 0x41, 0xb6, 0xb9, 0xc3, 0xd3, 0x4a, 0x71, 0xfa, 0x47}: "OemPeiSetBixbyGpio", efi.GUID{0xc6, 0xe6, 0x1d, 0x62, 0x5e, 0x0f, 0xe3, 0x4e, 0xa1, 0x02, 0x0b, 0xde, 0x76, 0x9a, 0x0a, 0xd4}: "LenovoRemoteConfigUpdateDxe", efi.GUID{0xc6, 0xea, 0xd4, 0xce, 0xf3, 0x49, 0x12, 0x4c, 0xa5, 0x97, 0xfc, 0x8c, 0x33, 0x44, 0x76, 0x91}: "PeimBoardInitPreMem", efi.GUID{0xc6, 0xef, 0x56, 0x11, 0x32, 0xea, 0x96, 0x43, 0xb5, 0xd5, 0x26, 0x93, 0x2e, 0x83, 0xc3, 0x13}: "EfiSpiProtocolGuid", efi.GUID{0xc6, 0xf1, 0x99, 0xe0, 0x20, 0xf5, 0x50, 0x40, 0x95, 0x56, 0xd3, 0xa2, 0xca, 0x15, 0x45, 0x29}: "H19VariableChangedHook", efi.GUID{0xc6, 0xf6, 0x05, 0x7b, 0xe3, 0xb8, 0x07, 0x40, 0x9f, 0x81, 0x68, 0xe3, 0x77, 0x3d, 0x6e, 0x20}: "LEMPasswordStoreProtocol", efi.GUID{0xc6, 0xf7, 0xbe, 0xf5, 0x53, 0xe1, 0xba, 0x4a, 0x83, 0x40, 0x51, 0x53, 0x09, 0xf8, 0x29, 0x64}: "ExtendODMSmm", efi.GUID{0xc7, 0x09, 0x25, 0xa5, 0xcd, 0x5e, 0xd1, 0x42, 0x85, 0xa2, 0x46, 0xc3, 0x71, 0x35, 0xd1, 0x2d}: "GopPolicyDxe", efi.GUID{0xc7, 0x0b, 0x53, 0x65, 0x59, 0xa3, 0x0f, 0x41, 0xb0, 0x10, 0x5a, 0xad, 0xc7, 0xec, 0x2b, 0x62}: "EfiTcp4ProtocolGuid", efi.GUID{0xc7, 0x0b, 0xa3, 0xf0, 0x08, 0xaf, 0x56, 0x45, 0x99, 0xc4, 0x00, 0x10, 0x09, 0xc9, 0x3a, 0x44}: "EfiSecureBootEnableDisableGuid", efi.GUID{0xc7, 0x10, 0xbf, 0xd3, 0x1f, 0x0d, 0x1e, 0x4f, 0x8a, 0x9c, 0x13, 0x94, 0x02, 0x4d, 0xb4, 0x3a}: "AmdCcxVhMdnDxe", efi.GUID{0xc7, 0x11, 0xd5, 0x2a, 0x60, 0x1b, 0x02, 0x40, 0x84, 0x1d, 0x29, 0x98, 0xdd, 0xc1, 0x38, 0xee}: "CryptoSMM", efi.GUID{0xc7, 0x17, 0x5f, 0x4b, 0x67, 0xb5, 0x47, 0x4e, 0xbf, 0x3d, 0xe4, 0xc2, 0x1e, 0xf3, 0x34, 0x97}: "ExpansionSlotConfigPortingDxe", efi.GUID{0xc7, 0x17, 0x74, 0xb4, 0x1f, 0xe2, 0xc9, 0x4a, 0xb0, 0xa2, 0x7a, 0x15, 0x82, 0x23, 0xa1, 0x37}: "SetupConfigUpdateDxeNeonCityEPECB", efi.GUID{0xc7, 0x29, 0x97, 0xf2, 0x59, 0xb7, 0x5c, 0x4b, 0xb1, 0x34, 0x07, 0xfc, 0x40, 0xac, 0x3c, 0xd2}: "Raid", efi.GUID{0xc7, 0x2f, 0x92, 0xc2, 0x14, 0xd1, 0xf1, 0x47, 0x8a, 0xf9, 0xa4, 0xc0, 0x96, 0x66, 0x83, 0xd1}: "PriorBootSmm", efi.GUID{0xc7, 0x32, 0xb6, 0x51, 0x9e, 0x3b, 0x74, 0x44, 0x8d, 0x4a, 0x50, 0x3a, 0xc2, 0xb0, 0xec, 0xb2}: "AEPFreezeLockSmm", efi.GUID{0xc7, 0x37, 0x22, 0x64, 0xd4, 0x35, 0x2d, 0x47, 0x83, 0x65, 0x12, 0xe0, 0xcc, 0xf2, 0x7a, 0x22}: "BootMaintFormSetGuid", efi.GUID{0xc7, 0x3f, 0x22, 0x59, 0xd9, 0xaa, 0x58, 0x43, 0xad, 0x1a, 0xad, 0xb4, 0xb2, 0x5b, 0xfe, 0xf9}: "I2cTouchHidDxe", efi.GUID{0xc7, 0x46, 0xd9, 0xd5, 0xab, 0x92, 0xfb, 0x41, 0xa3, 0x90, 0x6c, 0x62, 0x39, 0xb4, 0xe4, 0x13}: "BoardInitAdvancedPreMem", efi.GUID{0xc7, 0x4f, 0x2c, 0x84, 0x52, 0x1e, 0x2e, 0x49, 0x9e, 0x64, 0x70, 0xf9, 0x98, 0xcd, 0x88, 0x11}: "SDSmbiosUpdate", efi.GUID{0xc7, 0x5a, 0x92, 0xfb, 0x2a, 0x19, 0x67, 0x95, 0x85, 0x86, 0x7c, 0x6f, 0x5f, 0x71, 0x06, 0x07}: "Cryptest", efi.GUID{0xc7, 0x5e, 0xd6, 0x48, 0x1e, 0x8b, 0x65, 0x49, 0x9a, 0xc2, 0xb7, 0xad, 0x62, 0x72, 0x09, 0xce}: "SaveMemoryConfig", efi.GUID{0xc7, 0x60, 0x21, 0x60, 0x80, 0xe0, 0xfe, 0x4a, 0xbe, 0x4a, 0xbb, 0x5d, 0x9b, 0x87, 0x04, 0x2d}: "AcpiTableDxe", efi.GUID{0xc7, 0x66, 0xb3, 0xd5, 0x85, 0xdb, 0x5f, 0x45, 0xb5, 0x0b, 0x90, 0x0a, 0x69, 0x4e, 0x4c, 0x8c}: "SlingShot", efi.GUID{0xc7, 0x67, 0x69, 0x62, 0x1b, 0x07, 0x9a, 0x4d, 0x9d, 0x0c, 0xf1, 0x12, 0xcf, 0x08, 0x36, 0xe9}: "EfiCrystalRidge", efi.GUID{0xc7, 0x67, 0x70, 0x6b, 0x43, 0xa8, 0x4c, 0xa3, 0x95, 0x30, 0x48, 0x44, 0x69, 0x63, 0xb7, 0x40}: "KeyMapLibNull", efi.GUID{0xc7, 0x68, 0x36, 0xca, 0x4e, 0xae, 0x4b, 0x45, 0x9e, 0x46, 0xda, 0x97, 0xaa, 0xae, 0x0f, 0xf5}: "X11SmmDriver", efi.GUID{0xc7, 0x6b, 0x24, 0xba, 0x2f, 0x7e, 0xe4, 0x4a, 0x81, 0x7a, 0xff, 0xde, 0x57, 0x2e, 0x39, 0xde}: "AppleSmc2", efi.GUID{0xc7, 0x6f, 0x13, 0x39, 0x11, 0x1a, 0xde, 0x49, 0xbf, 0x35, 0x0e, 0x78, 0xdd, 0xb5, 0x24, 0xfc}: "EfiLegacySpiControllerProtocolGuid", efi.GUID{0xc7, 0x72, 0xe2, 0x6b, 0x20, 0x13, 0xcd, 0x4c, 0x90, 0x17, 0xd4, 0x61, 0x2c, 0x01, 0x2b, 0x25}: "AdapterInfoPlatformSecurityGuid", efi.GUID{0xc7, 0x76, 0xaf, 0x78, 0x5c, 0x8a, 0x0f, 0x42, 0x8d, 0xe6, 0x12, 0x67, 0x8d, 0x10, 0x15, 0x90}: "TrackPointElan", efi.GUID{0xc7, 0x83, 0x98, 0x4f, 0x09, 0xb3, 0x52, 0x41, 0xac, 0xf3, 0x22, 0x38, 0x50, 0x47, 0x8d, 0x88}: "SmcPkgTokenSpace", efi.GUID{0xc7, 0x8e, 0x3f, 0xb6, 0xc9, 0xa9, 0x72, 0x44, 0xa4, 0xc0, 0x4d, 0x8b, 0xf3, 0x65, 0xcc, 0x51}: "EfiSdHostIoProtocolGuid", efi.GUID{0xc7, 0x90, 0x58, 0x4f, 0x0e, 0xf9, 0xba, 0x42, 0x97, 0x78, 0x55, 0x1b, 0xb6, 0xe5, 0x12, 0x16}: "Dec1515Dxe", efi.GUID{0xc7, 0x92, 0xff, 0xd2, 0xdb, 0x55, 0x79, 0x48, 0x9d, 0x0b, 0xa0, 0x8b, 0xce, 0x4f, 0x4e, 0x19}: "StaticSkuDataDxeBlizzard", efi.GUID{0xc7, 0xb5, 0x35, 0xce, 0x21, 0xef, 0xff, 0x48, 0xa4, 0x76, 0x3f, 0x5f, 0xaf, 0x3f, 0x98, 0xad}: "PersonalityModuleDxe", efi.GUID{0xc7, 0xbf, 0x5b, 0x02, 0xa9, 0xe6, 0x8b, 0x4b, 0x82, 0xad, 0x68, 0x15, 0xa1, 0xae, 0xaf, 0x4a}: "MnpDxe", efi.GUID{0xc7, 0xc9, 0xe8, 0x79, 0x52, 0x11, 0x00, 0x4f, 0xb8, 0x31, 0x14, 0xf1, 0xc4, 0x04, 0x1a, 0xe0}: "EfiIntelMfgFormatFru", efi.GUID{0xc7, 0xce, 0xbd, 0xf1, 0xd1, 0x31, 0x0f, 0x4f, 0xaf, 0x62, 0xd0, 0x2a, 0x44, 0x07, 0x60, 0x26}: "LenovoN25Q032FlashPartDxe", efi.GUID{0xc7, 0xd6, 0x85, 0xa4, 0x6b, 0xd7, 0xe0, 0x4d, 0xbe, 0x57, 0x96, 0xc1, 0xd2, 0xdf, 0xe5, 0x20}: "It8587eFlashSmm", efi.GUID{0xc7, 0xe0, 0xd1, 0x07, 0x62, 0x12, 0x1f, 0x48, 0x95, 0xc0, 0x3e, 0x05, 0xda, 0x38, 0xf7, 0x66}: "FchTacomaSmmInit", efi.GUID{0xc7, 0xe4, 0x28, 0x4b, 0x36, 0xff, 0x10, 0x4e, 0x93, 0xcf, 0xa8, 0x21, 0x59, 0xe7, 0x77, 0xc5}: "ResetSystemRuntimeDxe", efi.GUID{0xc7, 0xea, 0x34, 0x8b, 0x90, 0x26, 0x0b, 0x46, 0x8b, 0xa5, 0xd5, 0xcf, 0x32, 0x83, 0x17, 0x35}: "EfiCapsuleInfo", efi.GUID{0xc7, 0xee, 0xac, 0x61, 0x3f, 0x60, 0xaa, 0x40, 0x8e, 0xff, 0x66, 0x3d, 0x52, 0x94, 0xd1, 0x9c}: "HpPlatformFeatures", efi.GUID{0xc7, 0xf1, 0xca, 0xc7, 0x97, 0x2d, 0xcb, 0x45, 0x99, 0xd9, 0xd8, 0x9a, 0xaf, 0x8a, 0xcc, 0x11}: "DellSecurityVaultSmm", efi.GUID{0xc7, 0xf8, 0x89, 0xd6, 0x54, 0xc3, 0x15, 0x42, 0xaa, 0x48, 0xb6, 0xad, 0x66, 0xc7, 0x7e, 0xaf}: "LenovoN25Q032FlashPartSmm", efi.GUID{0xc8, 0x02, 0xe5, 0x88, 0xed, 0x27, 0x90, 0x43, 0xae, 0x14, 0x93, 0x76, 0x07, 0x59, 0x58, 0x23}: "DellIntrusionDetectPei", efi.GUID{0xc8, 0x11, 0x4c, 0xae, 0x6c, 0x1d, 0x4e, 0xf2, 0xa1, 0x83, 0xe1, 0xca, 0x36, 0xd1, 0xa8, 0xa9}: "HfsPlus", efi.GUID{0xc8, 0x19, 0xb9, 0x7c, 0x99, 0xd4, 0x29, 0x46, 0xac, 0xb3, 0x22, 0x76, 0x9e, 0x34, 0x3d, 0xdb}: "DellFlashIoSmm", efi.GUID{0xc8, 0x34, 0xfe, 0xad, 0xe1, 0x9a, 0x8f, 0x4f, 0xbe, 0x13, 0xcf, 0x96, 0xa2, 0xcb, 0x2c, 0x5b}: "ChipsetFormSet", efi.GUID{0xc8, 0x38, 0x2d, 0x48, 0x36, 0x4a, 0x42, 0x42, 0x4f, 0x03, 0x7e, 0xae, 0xc0, 0x4b, 0x76, 0xeb}: "AmdSocFp6RnPei", efi.GUID{0xc8, 0x38, 0x6b, 0x5d, 0x10, 0x55, 0x58, 0x44, 0xb4, 0x8d, 0x95, 0x81, 0xcf, 0xa7, 0xb0, 0x0d}: "EdkiiDeviceSecurityProtocol", efi.GUID{0xc8, 0x47, 0x16, 0x7f, 0x6e, 0xb7, 0xb2, 0x44, 0xa5, 0x65, 0xf7, 0x0f, 0xf1, 0x9c, 0xd1, 0x9e}: "EfiDns6ServiceBindingProtocolGuid", efi.GUID{0xc8, 0x4a, 0x4a, 0x65, 0xb0, 0x30, 0x61, 0x43, 0x92, 0xc5, 0x72, 0xd1, 0xf3, 0x2a, 0x58, 0x9d}: "TypeCPostWmiMessages", efi.GUID{0xc8, 0x4b, 0xa3, 0xfb, 0x37, 0x4e, 0x1d, 0x45, 0xa7, 0xff, 0x54, 0x69, 0xf5, 0x20, 0x64, 0xc6}: "UUDriver", efi.GUID{0xc8, 0x52, 0xff, 0x7f, 0xde, 0x82, 0x20, 0x48, 0x89, 0x60, 0x50, 0x93, 0x10, 0x2e, 0x48, 0x4d}: "IncompatiblePciDevice", efi.GUID{0xc8, 0x53, 0x68, 0x1a, 0x62, 0xf3, 0x68, 0x4f, 0xa7, 0x7e, 0x0b, 0x30, 0x4a, 0x19, 0x4c, 0x05}: "UseSocketDxe", efi.GUID{0xc8, 0x56, 0xe8, 0x1a, 0x5a, 0x1c, 0xf0, 0x45, 0x8f, 0xc2, 0x00, 0x93, 0x29, 0x2d, 0xb9, 0x15}: "IteOnlySmm", efi.GUID{0xc8, 0x57, 0x0e, 0x22, 0x71, 0x4e, 0x3f, 0x49, 0x91, 0xb8, 0x0f, 0x7f, 0x82, 0x0a, 0x1d, 0xa2}: "I2cMouseDxe", efi.GUID{0xc8, 0x57, 0x0e, 0x33, 0x71, 0x4e, 0x3f, 0x49, 0x91, 0xb9, 0x0f, 0x7f, 0x82, 0x0a, 0x1d, 0xa3}: "BatteryFwUpdateDxe", efi.GUID{0xc8, 0x58, 0xad, 0xae, 0xe1, 0xc3, 0xd2, 0x4e, 0x91, 0x93, 0x5e, 0x0d, 0x5d, 0x71, 0x80, 0x3d}: "StatusCodeLoggerPei", efi.GUID{0xc8, 0x64, 0x78, 0x86, 0x86, 0x39, 0xa6, 0x41, 0xaa, 0x26, 0xa3, 0xa4, 0x1f, 0x1b, 0x5d, 0xc3}: "StringMarshalSmm", efi.GUID{0xc8, 0x69, 0xe3, 0xa5, 0xf9, 0xab, 0x43, 0x4b, 0xb2, 0x12, 0xff, 0x1b, 0xfd, 0x35, 0x66, 0x6d}: "CbsSetupDxeZP", efi.GUID{0xc8, 0x6b, 0xcc, 0xa6, 0xda, 0x2a, 0xc3, 0x46, 0xbb, 0xa4, 0xe9, 0x96, 0x72, 0xcc, 0x95, 0x30}: "PciUartDxe", efi.GUID{0xc8, 0x7e, 0x9a, 0x3e, 0x9b, 0xeb, 0xac, 0x47, 0xb7, 0x8e, 0xf1, 0xa4, 0xc3, 0xfc, 0x78, 0xea}: "CbsBaseDxeSHP", efi.GUID{0xc8, 0x87, 0xd6, 0x51, 0x6e, 0x19, 0xfe, 0x4c, 0x8a, 0x0c, 0x83, 0x68, 0x98, 0x0e, 0xa8, 0xb6}: "DellChassisConfigSmm", efi.GUID{0xc8, 0x88, 0x4d, 0x1a, 0x5e, 0x01, 0xc2, 0x42, 0x9d, 0x4a, 0xc4, 0x21, 0x2b, 0xd8, 0x81, 0xac}: "MfgDoneSyncItem", efi.GUID{0xc8, 0x8c, 0x0f, 0x51, 0x00, 0x85, 0x16, 0x4d, 0xa2, 0x98, 0x96, 0xd2, 0x85, 0x84, 0xd6, 0xc2}: "DellPolicySmm", efi.GUID{0xc8, 0x8c, 0x99, 0xc2, 0xaa, 0xa0, 0xe6, 0x46, 0xa6, 0x34, 0xee, 0x32, 0xbf, 0x11, 0x31, 0x88}: "AmtDriverPeimPei", efi.GUID{0xc8, 0x8f, 0x0e, 0xa8, 0x2c, 0x33, 0x59, 0x43, 0x96, 0x22, 0x84, 0xe8, 0x3d, 0x90, 0xfd, 0x5a}: "BiosCriticalInfo", efi.GUID{0xc8, 0xa4, 0x50, 0x99, 0x15, 0xf3, 0xce, 0x4f, 0xad, 0xc8, 0xe1, 0xbb, 0x61, 0xf1, 0xcc, 0xcb}: "PeiHeciPei", efi.GUID{0xc8, 0xa5, 0x1c, 0x87, 0x45, 0xfa, 0x13, 0xe4, 0x74, 0x91, 0x02, 0xcd, 0xac, 0x5f, 0x90, 0xae}: "AcerBIOSConfigurationToolSmm", efi.GUID{0xc8, 0xa5, 0x7c, 0x04, 0xa6, 0xef, 0xca, 0x64, 0x98, 0xec, 0xa0, 0x1d, 0xf3, 0xbc, 0xc6, 0xa8}: "A01BootDeviceServiceSmm", efi.GUID{0xc8, 0xa6, 0xbb, 0xb4, 0x1f, 0x12, 0x7e, 0x45, 0xa0, 0x6e, 0x54, 0x33, 0x1e, 0xb8, 0x1c, 0x42}: "EcRotDisableSecProt", efi.GUID{0xc8, 0xa9, 0x33, 0x05, 0x88, 0x29, 0xff, 0x47, 0x95, 0x96, 0x03, 0x0e, 0x96, 0x51, 0x85, 0x9f}: "DellECBeepDxe", efi.GUID{0xc8, 0xaf, 0xee, 0xda, 0xa8, 0xd2, 0x9f, 0x4d, 0xb0, 0x93, 0x34, 0x38, 0x98, 0x4e, 0x5f, 0xdd}: "AmiDeviceGuardSecBootApiGuid", efi.GUID{0xc8, 0xb5, 0x49, 0xca, 0x77, 0xe9, 0x12, 0x46, 0x87, 0x06, 0x91, 0xb8, 0x2c, 0xd1, 0x4c, 0x87}: "IntelMchAcpiTables", efi.GUID{0xc8, 0xb8, 0xfd, 0x8c, 0xb2, 0xd6, 0xf3, 0x40, 0x8e, 0x97, 0x02, 0x30, 0x7c, 0xc9, 0x8b, 0x7c}: "EfiVariableIndexTableGuid", efi.GUID{0xc8, 0xc0, 0xf6, 0x1c, 0x85, 0xfa, 0xee, 0x43, 0x94, 0xaf, 0xdb, 0x27, 0xc5, 0x41, 0x74, 0xc9}: "RAIDCorePei", efi.GUID{0xc8, 0xd0, 0x06, 0xf7, 0xfc, 0xf6, 0x7a, 0x4f, 0xac, 0x98, 0x96, 0xba, 0x5c, 0xc4, 0x3a, 0xaa}: "SandyBridgeGopDriver", efi.GUID{0xc8, 0xd5, 0xbc, 0x60, 0xf7, 0x76, 0xaf, 0x45, 0xa5, 0x41, 0xc8, 0x13, 0xeb, 0x86, 0xb6, 0x35}: "AmdCpmWirelessButtonHidDxe", efi.GUID{0xc8, 0xd6, 0x79, 0xf1, 0xc4, 0x1f, 0x39, 0x4c, 0xac, 0x83, 0xf1, 0x07, 0x70, 0x80, 0xd0, 0x70}: "FjMfgDescriptorUnlockDxe", efi.GUID{0xc8, 0xe6, 0xf4, 0xdf, 0x4c, 0x23, 0x3e, 0x45, 0xa9, 0x2d, 0xfa, 0x50, 0x5e, 0x90, 0xd5, 0x39}: "DellDaOwnerTag", efi.GUID{0xc8, 0xeb, 0x59, 0x8d, 0x5e, 0xb8, 0x0e, 0x40, 0x97, 0x0a, 0x1f, 0x99, 0x5d, 0x1d, 0xb9, 0x1e}: "IntelSnbGopDriver", efi.GUID{0xc8, 0xf3, 0xf3, 0x7b, 0xca, 0x4f, 0xa7, 0x49, 0x80, 0x4f, 0x90, 0x33, 0xd2, 0xe4, 0x78, 0x41}: "AmdNbioBaseZPPei", efi.GUID{0xc8, 0xf4, 0x9f, 0x3e, 0x55, 0xa3, 0x63, 0x40, 0xa4, 0x87, 0x61, 0x03, 0x60, 0xc0, 0xac, 0xce}: "ThirdPartyNvme", efi.GUID{0xc8, 0xf5, 0xc1, 0x03, 0xf1, 0x48, 0x6e, 0x41, 0xa6, 0xb6, 0x99, 0x2d, 0xf3, 0xbb, 0xac, 0xa6}: "A01SmmServiceBody", efi.GUID{0xc8, 0xf7, 0x20, 0x6f, 0xef, 0xe5, 0x21, 0x4f, 0x8d, 0x19, 0xed, 0xc5, 0xf0, 0xc4, 0x96, 0xae}: "MemInfoProtocolGuid", efi.GUID{0xc9, 0x02, 0xea, 0x5c, 0x07, 0x4d, 0xd3, 0x69, 0x26, 0x9f, 0x44, 0x96, 0xfb, 0xe0, 0x96, 0xf9}: "EfiPersistentVirtualDiskGuid", efi.GUID{0xc9, 0x05, 0xe2, 0xbf, 0x17, 0x5b, 0x8f, 0x4f, 0x93, 0x75, 0x89, 0x61, 0x4a, 0xf8, 0xe1, 0x99}: "OEMDXE", efi.GUID{0xc9, 0x11, 0x81, 0x5d, 0xf9, 0xb4, 0xf3, 0x46, 0x9d, 0xdb, 0x73, 0xa4, 0x1a, 0xc6, 0x96, 0xc5}: "password_capslock_indicator", efi.GUID{0xc9, 0x12, 0xef, 0xdd, 0x4d, 0x94, 0x57, 0x47, 0xa3, 0xec, 0xcc, 0xfb, 0xad, 0xa9, 0x6d, 0xd2}: "DellFlashBios", efi.GUID{0xc9, 0x13, 0x34, 0xc7, 0x5c, 0x40, 0x50, 0x4f, 0xba, 0x17, 0x0d, 0xff, 0xb9, 0x13, 0xed, 0x16}: "DellDockPolicy", efi.GUID{0xc9, 0x2a, 0x3b, 0x90, 0xbf, 0xf6, 0x97, 0x43, 0xa4, 0xac, 0x2d, 0xc8, 0xfb, 0xee, 0x30, 0xa3}: "DellHddScp", efi.GUID{0xc9, 0x2a, 0xcb, 0xe5, 0x5d, 0xd3, 0x30, 0x44, 0x93, 0x6e, 0x1d, 0xe3, 0x32, 0x47, 0x8d, 0xe7}: "EfiGraphicsDeviceInfoHobGuid", efi.GUID{0xc9, 0x2a, 0xd5, 0xc2, 0x0e, 0x7c, 0xf3, 0x47, 0x87, 0x38, 0x86, 0x5b, 0x3f, 0x3b, 0xcf, 0x99}: "AmiPciPlatform", efi.GUID{0xc9, 0x30, 0x36, 0x75, 0xe5, 0xfa, 0xa9, 0x47, 0xbb, 0xbf, 0x88, 0xd6, 0x21, 0xcd, 0x72, 0x82}: "SmmChildDispatcher", efi.GUID{0xc9, 0x30, 0x67, 0x87, 0x69, 0x9a, 0x08, 0x45, 0x95, 0x79, 0xce, 0xbd, 0x14, 0x62, 0xa5, 0xfe}: "AmiSsidInit", efi.GUID{0xc9, 0x3b, 0xc8, 0x60, 0xfb, 0x89, 0xd5, 0x48, 0x89, 0x62, 0xa5, 0xdc, 0xe1, 0xd4, 0xc0, 0xfe}: "PostMessageDxe", efi.GUID{0xc9, 0x3d, 0x99, 0xb6, 0x1d, 0xa5, 0xe2, 0x47, 0x8e, 0xa1, 0xba, 0x1d, 0x80, 0xcc, 0xa8, 0x22}: "FchSmmDiagDispatcher", efi.GUID{0xc9, 0x3e, 0xb4, 0x1d, 0x5f, 0xdf, 0xf5, 0x4c, 0xaa, 0xf0, 0x0e, 0x85, 0xdb, 0x4e, 0x14, 0x9a}: "BootGuardDxe", efi.GUID{0xc9, 0x3f, 0xec, 0x83, 0x74, 0xcb, 0x2b, 0x4b, 0x89, 0xb9, 0xe9, 0x8f, 0x09, 0x72, 0xf2, 0xa8}: "RotateScreen", efi.GUID{0xc9, 0x4e, 0x98, 0x85, 0x00, 0xe3, 0x77, 0x42, 0xac, 0x62, 0x64, 0x0f, 0xab, 0xad, 0xb6, 0xa5}: "DellSbDxe", efi.GUID{0xc9, 0x56, 0x2c, 0x93, 0x98, 0xeb, 0xc6, 0x43, 0x85, 0x14, 0x2e, 0xb8, 0xa3, 0x1b, 0x52, 0x77}: "HpIOXAccess", efi.GUID{0xc9, 0x5b, 0xa5, 0x0d, 0xf8, 0x45, 0xb4, 0x4b, 0x87, 0x19, 0x52, 0x24, 0xf1, 0x8a, 0x4d, 0x45}: "EfiWiFiProtocolGuid", efi.GUID{0xc9, 0x62, 0x78, 0xbf, 0xff, 0xcd, 0x61, 0x42, 0x83, 0x85, 0xb6, 0x19, 0x16, 0xcd, 0x2e, 0x9a}: "EmmcDllTuning", efi.GUID{0xc9, 0x6c, 0xdb, 0x05, 0xe4, 0xe9, 0x09, 0x42, 0x9d, 0x46, 0xaa, 0x52, 0xc4, 0x05, 0x29, 0x37}: "CNVISetupSmm", efi.GUID{0xc9, 0x6e, 0xb4, 0x00, 0x12, 0x27, 0x6b, 0x48, 0xa6, 0xa4, 0xe2, 0x93, 0x35, 0x81, 0xc2, 0x8b}: "HstiPlatformDxe", efi.GUID{0xc9, 0x75, 0x22, 0x2c, 0x7b, 0x3a, 0x6f, 0x42, 0xbe, 0x54, 0x2d, 0x22, 0xbd, 0x9d, 0x10, 0x92}: "EdkiiCryptoProtocol", efi.GUID{0xc9, 0x7e, 0xfa, 0x08, 0xd4, 0x60, 0xc8, 0x47, 0xb2, 0x99, 0x9f, 0x83, 0xb4, 0xa9, 0xda, 0xc3}: "AcpiOverride", efi.GUID{0xc9, 0x80, 0xb8, 0x7b, 0xc8, 0x82, 0xc4, 0x40, 0x95, 0xfe, 0x33, 0x30, 0xb9, 0x84, 0x84, 0x4c}: "DashIoCfgSmm", efi.GUID{0xc9, 0x89, 0x91, 0x92, 0x70, 0x06, 0x0b, 0x4c, 0xaf, 0x7d, 0x13, 0x5d, 0x15, 0x50, 0xc8, 0xc0}: "RecvDgram", efi.GUID{0xc9, 0x8a, 0x53, 0x91, 0xd3, 0xa5, 0xef, 0x4d, 0x9a, 0x70, 0x28, 0xa0, 0x87, 0xde, 0xfa, 0x79}: "AppleDataHubUpdate", efi.GUID{0xc9, 0x98, 0x69, 0xf4, 0x30, 0xdd, 0x64, 0x4c, 0x96, 0x6c, 0xe1, 0x77, 0x77, 0xb2, 0x56, 0x8a}: "AppleSmc", efi.GUID{0xc9, 0x98, 0x88, 0xaf, 0x92, 0x9b, 0x56, 0x45, 0x83, 0x18, 0xe4, 0x25, 0xc9, 0xde, 0x0a, 0x65}: "F2App", efi.GUID{0xc9, 0x98, 0xaf, 0xbc, 0xb0, 0x22, 0x4f, 0x3b, 0x9c, 0xbd, 0xc8, 0xa6, 0xb4, 0xdb, 0xce, 0xe9}: "EmuSec", efi.GUID{0xc9, 0x99, 0x20, 0x7a, 0xf8, 0x9a, 0xe5, 0x4f, 0x98, 0x12, 0xbb, 0xc3, 0x52, 0x76, 0x2e, 0xf5}: "HpSioComPortWAPei", efi.GUID{0xc9, 0xa2, 0x6f, 0x5c, 0x68, 0x97, 0xf6, 0x45, 0x8e, 0x64, 0x5a, 0xec, 0xca, 0xda, 0xb4, 0x81}: "DxeCpuCacheProtocol", efi.GUID{0xc9, 0xb0, 0x97, 0x03, 0xe8, 0x22, 0x9e, 0x45, 0xa4, 0xff, 0x99, 0xbc, 0x65, 0x27, 0x09, 0x29}: "Tpm2StartupLocalityHobGuid", efi.GUID{0xc9, 0xba, 0x37, 0xb9, 0x1b, 0xb4, 0x14, 0x49, 0xbc, 0x32, 0x72, 0x41, 0x04, 0x00, 0xf9, 0xde}: "SetupDataProviderPei", efi.GUID{0xc9, 0xbe, 0xec, 0xe0, 0x93, 0xb1, 0x51, 0x43, 0xa4, 0x88, 0x36, 0xa6, 0x55, 0xf2, 0x2f, 0x9f}: "SaveMemoryConfig", efi.GUID{0xc9, 0xc0, 0x3a, 0x4d, 0x71, 0x58, 0xe5, 0x41, 0xa6, 0xc8, 0x17, 0x1c, 0xdf, 0x5a, 0x64, 0x63}: "DL3x00UsbUndiDxe", efi.GUID{0xc9, 0xc3, 0x38, 0x29, 0x9b, 0x4f, 0xb2, 0x43, 0xa4, 0x29, 0x7e, 0x63, 0x15, 0xad, 0x6a, 0x9d}: "SmcRomHoleProtocol", efi.GUID{0xc9, 0xc4, 0xd3, 0xb0, 0x54, 0x59, 0x84, 0x4a, 0x80, 0xbf, 0x14, 0x4c, 0xe9, 0xf0, 0x22, 0x23}: "PostBackLightControl", efi.GUID{0xc9, 0xc7, 0x0b, 0x02, 0xe5, 0x80, 0x6d, 0x47, 0xb1, 0x87, 0x0f, 0xb7, 0x54, 0x85, 0x0c, 0xab}: "PvnvramDxe", efi.GUID{0xc9, 0xcd, 0x26, 0xbd, 0x92, 0xa0, 0x2a, 0x46, 0x87, 0x7a, 0x5a, 0xb6, 0xad, 0xce, 0x48, 0x12}: "EfiPlatformCpuProtocolGuid", efi.GUID{0xc9, 0xce, 0xf1, 0x45, 0x5c, 0x0c, 0x31, 0x4b, 0xbd, 0xf3, 0x2f, 0xb6, 0xd7, 0x05, 0x6b, 0xdf}: "HpDmarSmm", efi.GUID{0xc9, 0xde, 0x61, 0x13, 0x70, 0xa2, 0x13, 0x40, 0x97, 0x01, 0xa5, 0x40, 0xf5, 0x6c, 0x58, 0xc9}: "MctpSmbusDxe", efi.GUID{0xc9, 0xe5, 0x0a, 0x88, 0x45, 0xfa, 0x63, 0x9b, 0x74, 0x89, 0x9b, 0x12, 0xcc, 0x56, 0x45, 0x40}: "AcerBIOSConfigurationToolDxe", efi.GUID{0xc9, 0xeb, 0xcf, 0xb9, 0xde, 0x9c, 0x0d, 0x4f, 0xa0, 0xaa, 0xbd, 0x7d, 0x01, 0x72, 0x00, 0xf8}: "TdtPlatformPolicy", efi.GUID{0xc9, 0xef, 0xc0, 0x1e, 0x3a, 0xc9, 0x62, 0x4b, 0x9b, 0x27, 0xc0, 0x59, 0xab, 0xd8, 0x0e, 0x92}: "VlvPlatformInitDxe", efi.GUID{0xc9, 0xfe, 0xa3, 0xa0, 0x9d, 0xfe, 0xe7, 0x4c, 0x8d, 0xb4, 0x9c, 0x54, 0xf3, 0xf1, 0x9e, 0x5a}: "HpSetup", efi.GUID{0xc9, 0xff, 0x4a, 0xb1, 0x2b, 0xf1, 0xaa, 0x4e, 0xb3, 0x35, 0x1c, 0xd8, 0x48, 0x89, 0xf6, 0xf1}: "CrConfigUtil", efi.GUID{0xca, 0x01, 0xba, 0x38, 0xfe, 0xb1, 0xea, 0x4d, 0x83, 0x40, 0x09, 0x63, 0xeb, 0x56, 0xe9, 0x8a}: "AmdNbioIOMMUDxe", efi.GUID{0xca, 0x04, 0x14, 0xab, 0x01, 0x48, 0x08, 0x42, 0x98, 0xbf, 0x30, 0xd5, 0x21, 0xda, 0xd4, 0xd3}: "AmiTseUserPasswordValidGuid", efi.GUID{0xca, 0x1b, 0x75, 0x5d, 0x2d, 0x5a, 0xc3, 0xbe, 0x8b, 0x77, 0x86, 0xf3, 0x0c, 0xa8, 0x93, 0xd3}: "PeiGraphicsOutput", efi.GUID{0xca, 0x1e, 0xc8, 0x46, 0x31, 0xe9, 0xb2, 0x40, 0xae, 0xcf, 0xdf, 0xd8, 0xf0, 0x06, 0x64, 0xef}: "MtkWiFiDxe", efi.GUID{0xca, 0x1f, 0x27, 0x16, 0xd9, 0x55, 0x33, 0x4a, 0x93, 0xfc, 0x5a, 0x3e, 0xb1, 0x28, 0xde, 0x21}: "MiscSubclassDxe", efi.GUID{0xca, 0x1f, 0x27, 0x16, 0xd9, 0x55, 0x33, 0x4a, 0x93, 0xfc, 0x5a, 0x3e, 0xb1, 0x28, 0xde, 0xb6}: "CrbDxe", efi.GUID{0xca, 0x1f, 0x27, 0x16, 0xd9, 0x55, 0x33, 0x4a, 0x93, 0xfc, 0x5a, 0x3e, 0xb1, 0x28, 0xde, 0xc7}: "EcsPlatformDxe", efi.GUID{0xca, 0x1f, 0x27, 0x16, 0xd9, 0x55, 0x33, 0x4a, 0x93, 0xfc, 0x5a, 0x3e, 0xb1, 0x28, 0xde, 0xe6}: "OemDxe", efi.GUID{0xca, 0x26, 0x50, 0x68, 0xfa, 0x92, 0xfd, 0x45, 0xbc, 0x72, 0xba, 0x44, 0x70, 0x0e, 0xe5, 0x75}: "UsbPortXhciPlatform", efi.GUID{0xca, 0x29, 0xe4, 0xa1, 0x33, 0xa9, 0x2c, 0x40, 0xb6, 0xbd, 0x31, 0x4e, 0xd5, 0x14, 0x25, 0x41}: "FjMrcOutputInterfaceCezanne", efi.GUID{0xca, 0x2a, 0x81, 0x91, 0x2d, 0x33, 0x15, 0x42, 0xb8, 0x32, 0x45, 0xc8, 0x8f, 0xc7, 0xde, 0x57}: "DellDptfChipsetPei", efi.GUID{0xca, 0x2b, 0xd2, 0xf7, 0xca, 0x1b, 0x91, 0x55, 0xcc, 0x8b, 0x1c, 0xa9, 0x8f, 0x28, 0x90, 0xfe}: "AmiCpuS3Pei", efi.GUID{0xca, 0x2d, 0x19, 0x64, 0x34, 0xd0, 0xd2, 0x49, 0xa6, 0xde, 0x65, 0xa8, 0x29, 0xeb, 0x4c, 0x74}: "IccPersistentData", efi.GUID{0xca, 0x35, 0xe1, 0x62, 0xc1, 0x88, 0x15, 0x4f, 0x93, 0xe1, 0x01, 0x19, 0x3b, 0x34, 0x99, 0xf4}: "ASiXUsbEthernet", efi.GUID{0xca, 0x39, 0x71, 0x6e, 0x21, 0x2b, 0x68, 0x41, 0x98, 0x04, 0x86, 0x7f, 0xaf, 0x71, 0xf9, 0x5d}: "BoardInitPei", efi.GUID{0xca, 0x3e, 0x38, 0xf9, 0x66, 0x85, 0x1e, 0x49, 0x85, 0x33, 0xed, 0x7d, 0x2e, 0xfe, 0xa8, 0x0d}: "SmcNVDIMMPeiDriver", efi.GUID{0xca, 0x3e, 0xe1, 0x35, 0x98, 0xdd, 0x8e, 0x44, 0xbf, 0x2b, 0x4d, 0xd5, 0x89, 0xd9, 0x1c, 0xc8}: "SioResetSystemDxe", efi.GUID{0xca, 0x3f, 0x5d, 0x56, 0x6d, 0xf0, 0xed, 0x4f, 0x95, 0xeb, 0x37, 0x0e, 0xdf, 0xfa, 0x9e, 0x57}: "AsrBootOptionDxe", efi.GUID{0xca, 0x40, 0x60, 0x80, 0xd9, 0xda, 0x78, 0x49, 0xa3, 0xb4, 0x2d, 0x2a, 0xb0, 0xc8, 0xa4, 0x8f}: "QemuKernelLoaderFsDxe", efi.GUID{0xca, 0x47, 0xf3, 0xaf, 0xa4, 0xae, 0x47, 0x44, 0x96, 0x8a, 0xe6, 0xfe, 0x75, 0x1c, 0x24, 0xc6}: "AmiAfuProtocol", efi.GUID{0xca, 0x4f, 0x3d, 0x97, 0x31, 0x73, 0xaf, 0x44, 0xbd, 0xcc, 0xfa, 0x0b, 0x13, 0xc4, 0x38, 0x62}: "SmbiosUpdateDxe", efi.GUID{0xca, 0x4f, 0xb6, 0xd4, 0x4c, 0x7c, 0xc1, 0x48, 0x97, 0x6f, 0x52, 0x87, 0x42, 0x37, 0x53, 0xe4}: "LenovoVariableDxeProtocol", efi.GUID{0xca, 0x53, 0x00, 0x9f, 0xca, 0x35, 0xf3, 0x4d, 0xa4, 0x5e, 0x8c, 0x8f, 0xa8, 0xd1, 0x02, 0x3e}: "TouchPadDriver", efi.GUID{0xca, 0x5d, 0x34, 0x7a, 0x26, 0x0c, 0x2a, 0x4f, 0xa8, 0x9a, 0x57, 0xc0, 0x8d, 0xdd, 0x22, 0xee}: "NvVariableInfo", efi.GUID{0xca, 0x66, 0xea, 0x20, 0xc3, 0x17, 0xd4, 0x4d, 0xa5, 0x1f, 0x95, 0x6c, 0xc9, 0xe4, 0xfc, 0x26}: "AmdIspCamera", efi.GUID{0xca, 0x69, 0xeb, 0x95, 0x40, 0x02, 0xf1, 0x49, 0xb0, 0x3c, 0xd5, 0xf9, 0xc1, 0x9c, 0x00, 0xb8}: "MeUpdateFaultToleranceDxe", efi.GUID{0xca, 0x6e, 0x5c, 0x99, 0x1b, 0x17, 0xfd, 0x45, 0xa3, 0xaa, 0xfd, 0x4c, 0x9c, 0x9d, 0xef, 0x59}: "EfiSpiSmmConfigurationProtocolGuid", efi.GUID{0xca, 0x6f, 0x39, 0x0c, 0xda, 0x6b, 0x15, 0x4a, 0xb6, 0xa3, 0xa6, 0xfa, 0x45, 0x44, 0xbd, 0xb7}: "EcFwUpdateDxe", efi.GUID{0xca, 0x74, 0xca, 0x43, 0x29, 0x7d, 0xa0, 0x49, 0xb3, 0xb9, 0x20, 0xf8, 0x40, 0x15, 0xb2, 0x7d}: "SecCoreNative", efi.GUID{0xca, 0x79, 0x37, 0x77, 0xe8, 0x2a, 0x73, 0x40, 0x8b, 0xc5, 0x43, 0x37, 0x6a, 0x61, 0xbf, 0xd5}: "DellEcPolicy", efi.GUID{0xca, 0x88, 0x77, 0x3e, 0xfc, 0x2b, 0xce, 0x4f, 0x81, 0x22, 0x51, 0x76, 0xca, 0x49, 0x2d, 0x9f}: "CbsSetupDxeRV", efi.GUID{0xca, 0x8f, 0x66, 0x11, 0xba, 0x73, 0x58, 0x4b, 0x85, 0xa2, 0x98, 0xac, 0x4d, 0xf5, 0x9a, 0x2c}: "SystemSmmCommunicationBufferManagerDxe", efi.GUID{0xca, 0x98, 0xb8, 0x35, 0xa9, 0xb6, 0xce, 0x49, 0x8c, 0x72, 0x90, 0x47, 0x35, 0xcc, 0x49, 0xb7}: "DxeMainDxe", efi.GUID{0xca, 0x99, 0x36, 0x16, 0xd9, 0xff, 0xfa, 0x4e, 0x99, 0x01, 0xa7, 0xb2, 0xdf, 0x3d, 0xe7, 0xd1}: "Class3Smm", efi.GUID{0xca, 0x9a, 0x64, 0xd5, 0x40, 0xda, 0x58, 0x4c, 0xa4, 0xdf, 0x8e, 0x42, 0xeb, 0x40, 0xa1, 0x80}: "SaPolicyProtocolGuid", efi.GUID{0xca, 0xa5, 0x00, 0xbb, 0xce, 0x08, 0x2f, 0x46, 0xa5, 0x37, 0x43, 0xc7, 0x4a, 0x82, 0x5c, 0xa4}: "EfiMpInitLibMpDepProtocol", efi.GUID{0xca, 0xa9, 0x02, 0xec, 0x1d, 0x09, 0xcd, 0x47, 0xaf, 0x28, 0x77, 0xd3, 0x8d, 0xed, 0x7a, 0x53}: "MebxConfiguration", efi.GUID{0xca, 0xb1, 0x9f, 0x01, 0x11, 0xd4, 0x48, 0x49, 0xb7, 0x3c, 0x4c, 0x05, 0x4a, 0xba, 0x9e, 0x8e}: "FastBootFunctionEnabledHob", efi.GUID{0xca, 0xb2, 0x0a, 0xb5, 0xd0, 0x48, 0xe4, 0x11, 0xa6, 0xd3, 0xb8, 0xe8, 0x56, 0x2c, 0xba, 0xfa}: "SerialMojoDxe", efi.GUID{0xca, 0xb8, 0x0f, 0xc1, 0xa8, 0x55, 0x32, 0x41, 0x82, 0x63, 0x3d, 0x5b, 0x82, 0x35, 0x9f, 0x04}: "AmiHidServiceDriver", efi.GUID{0xca, 0xba, 0x8a, 0x91, 0x8d, 0x3d, 0xb5, 0x4b, 0xb8, 0x32, 0x45, 0xcc, 0x4f, 0xc7, 0xde, 0x57}: "DellDptfDxeLoad", efi.GUID{0xca, 0xba, 0x9a, 0x99, 0x6a, 0x3d, 0xb5, 0x82, 0xb5, 0x62, 0x12, 0xcc, 0x4f, 0x33, 0xde, 0x57}: "DellDptfExtraGnvsArea", efi.GUID{0xca, 0xba, 0xcf, 0x1d, 0xda, 0x6a, 0x0d, 0x4c, 0x86, 0xed, 0xaf, 0x65, 0x8b, 0xdf, 0xec, 0x0c}: "AmiPlatformToDriverAgentProtocol", efi.GUID{0xca, 0xbc, 0x10, 0xe0, 0x3b, 0x3a, 0x03, 0x4b, 0xbc, 0xf4, 0xae, 0x1f, 0x64, 0xa8, 0x5c, 0x89}: "LenovoUserManagerPei", efi.GUID{0xca, 0xbc, 0x2b, 0xe2, 0x6a, 0x51, 0xa8, 0x46, 0x80, 0xe2, 0x67, 0x45, 0xe8, 0x36, 0x93, 0xbd}: "EdkiiSmmMemoryProfileGuid", efi.GUID{0xca, 0xbd, 0x76, 0x83, 0x03, 0x5e, 0x35, 0x47, 0x95, 0x1a, 0x4a, 0x74, 0x14, 0x1e, 0x58, 0x86}: "TrEEConfigDxe", efi.GUID{0xca, 0xbe, 0x76, 0x97, 0xd3, 0x53, 0x35, 0x47, 0xc4, 0x1f, 0x4a, 0x74, 0x13, 0x1e, 0x58, 0x22}: "A01TPMHookEntryPoint", efi.GUID{0xca, 0xbe, 0xaa, 0x27, 0xc5, 0x4b, 0x6e, 0x4e, 0x98, 0x0b, 0xbb, 0xd6, 0x62, 0x7d, 0xa2, 0x0e}: "TypeCWmiMessages", efi.GUID{0xca, 0xc2, 0x47, 0xc9, 0xe2, 0xc1, 0x07, 0x40, 0xbb, 0xe0, 0xfd, 0x7c, 0x78, 0x65, 0xa5, 0x48}: "DellNvmePwPei", efi.GUID{0xca, 0xc2, 0x8a, 0x95, 0x04, 0x99, 0xaa, 0x43, 0xb9, 0xde, 0x35, 0xe5, 0xd4, 0xc4, 0x12, 0x17}: "EfiOdmemGnvsAreaProtocol", efi.GUID{0xca, 0xd2, 0x1b, 0x02, 0xd2, 0x51, 0xe3, 0x11, 0x8e, 0x56, 0xb7, 0x54, 0x17, 0xc7, 0x0b, 0x44}: "UsbDeviceProtocolGuid", efi.GUID{0xca, 0xd7, 0x37, 0x97, 0x69, 0xd8, 0xe5, 0x45, 0xa5, 0xef, 0x75, 0xd9, 0x43, 0x86, 0x88, 0xde}: "PlatformGOPPolicy", efi.GUID{0xca, 0xda, 0x28, 0xcd, 0xbe, 0xbd, 0x1a, 0x48, 0x90, 0xac, 0x62, 0x5c, 0x79, 0xcf, 0x23, 0x4c}: "H19BIOSLock", efi.GUID{0xca, 0xe2, 0xe9, 0xb1, 0x78, 0xb0, 0x70, 0x40, 0xbc, 0xcd, 0x87, 0x44, 0x9a, 0xc7, 0xd2, 0xa6}: "CpuS3Pei", efi.GUID{0xca, 0xe6, 0xef, 0x8d, 0xf0, 0x2a, 0x4e, 0x47, 0x96, 0x42, 0x83, 0x82, 0x82, 0xb3, 0xc9, 0x82}: "BiosAuditLogHandlerSmm", efi.GUID{0xca, 0xed, 0x6f, 0x8e, 0xb4, 0x62, 0x8f, 0x4e, 0x8c, 0x42, 0x9b, 0x8f, 0x40, 0xef, 0x60, 0xcd}: "HpCallbackRegistrationDxe", efi.GUID{0xca, 0xee, 0x2b, 0xec, 0x4a, 0xe8, 0x5b, 0x44, 0x86, 0x9b, 0xf7, 0xa7, 0x3c, 0x96, 0xf5, 0x8a}: "LegacyRegion2Dxe", efi.GUID{0xca, 0xf5, 0xca, 0xd0, 0xf0, 0x3d, 0x4f, 0x3d, 0x89, 0xc5, 0x66, 0x10, 0x53, 0x56, 0xd6, 0x1b}: "AppleBds", efi.GUID{0xca, 0xf6, 0x08, 0xdb, 0x48, 0x30, 0xd8, 0x4c, 0x9b, 0x1f, 0x20, 0xbe, 0xd3, 0x3e, 0xcf, 0xe7}: "StatusCodeSmm", efi.GUID{0xca, 0xf7, 0x06, 0x12, 0x75, 0xa4, 0x24, 0x46, 0xa8, 0x3e, 0xe6, 0xfc, 0x9b, 0xb3, 0x8e, 0x49}: "SmmControl2Dxe", efi.GUID{0xca, 0xfa, 0x5a, 0xa3, 0x95, 0x8c, 0xec, 0x4e, 0x94, 0x53, 0xd8, 0xe5, 0xb5, 0x60, 0xa8, 0xba}: "Afu32FlashDriverSmm", efi.GUID{0xca, 0xfd, 0x8e, 0xb6, 0xe2, 0xbe, 0xf6, 0x4b, 0xb8, 0x6e, 0x45, 0xdc, 0x3c, 0xcb, 0xfe, 0x3c}: "DellDoSiodiagLedPei", efi.GUID{0xcb, 0x00, 0xf1, 0xea, 0xf4, 0xab, 0xe0, 0x49, 0x97, 0xe5, 0x5e, 0x0a, 0x77, 0x50, 0xdc, 0xcb}: "EcSecuredTransferSmm", efi.GUID{0xcb, 0x16, 0xa2, 0xfa, 0x69, 0xb5, 0x07, 0x44, 0x8c, 0x25, 0x1a, 0x14, 0x57, 0xb5, 0x1d, 0xec}: "AsusAcpiSwSmi", efi.GUID{0xcb, 0x1a, 0xe8, 0x2e, 0xb2, 0x64, 0xae, 0x41, 0x86, 0x35, 0x70, 0x30, 0xd1, 0x6c, 0x4a, 0xa8}: "PchBiosWriteProtect", efi.GUID{0xcb, 0x1b, 0x97, 0x79, 0xc6, 0xd5, 0x5a, 0x4d, 0x9c, 0x24, 0xbc, 0xa4, 0x6c, 0x2a, 0xdb, 0xbe}: "BdsDriverProxy", efi.GUID{0xcb, 0x1e, 0xe3, 0xd7, 0x17, 0x0a, 0x29, 0x45, 0x9b, 0x84, 0xc5, 0x29, 0xde, 0x8e, 0x1c, 0x0e}: "AcpiFvi", efi.GUID{0xcb, 0x1f, 0xea, 0x88, 0x5d, 0x3a, 0xcf, 0x4a, 0xa0, 0xb3, 0xaa, 0xcb, 0x36, 0xd4, 0xe9, 0x0f}: "UsbLegacyControlSmm", efi.GUID{0xcb, 0x21, 0xe2, 0xa4, 0xe7, 0xc1, 0x92, 0x42, 0x98, 0xb7, 0x4b, 0x2a, 0x41, 0xfc, 0x25, 0x4f}: "Cf9Reset", efi.GUID{0xcb, 0x23, 0x4b, 0x79, 0xce, 0xec, 0x7f, 0x49, 0xa1, 0x4d, 0x96, 0xe1, 0xaf, 0xcb, 0x00, 0xe3}: "NPKReserveMemGuid", efi.GUID{0xcb, 0x2a, 0x4b, 0x7e, 0x91, 0x73, 0x8f, 0x40, 0xb1, 0x43, 0x3a, 0x0b, 0x07, 0xc6, 0xe1, 0x65}: "FdoModeEnabledHobGuid", efi.GUID{0xcb, 0x2a, 0x7c, 0xb8, 0x3a, 0xac, 0x96, 0x4d, 0x9e, 0x4e, 0xa5, 0xb9, 0x58, 0x7a, 0x62, 0x98}: "StaticSkuDataDxeEldorado", efi.GUID{0xcb, 0x2e, 0x0d, 0xef, 0x7b, 0xae, 0xd2, 0x4e, 0x88, 0x48, 0xf3, 0x92, 0x90, 0xd1, 0x93, 0x22}: "StatusCodeLoggerSmm", efi.GUID{0xcb, 0x3e, 0x0e, 0x5b, 0x1f, 0x0a, 0x57, 0x4e, 0xa9, 0xd1, 0xe6, 0x8a, 0x9f, 0x32, 0xed, 0x0d}: "LANWakeupSmm", efi.GUID{0xcb, 0x42, 0xec, 0x90, 0x80, 0xb7, 0xb8, 0x4e, 0x8e, 0x99, 0xc8, 0xe3, 0xe5, 0xf3, 0x75, 0x30}: "UefiPciLibPciRootBridgeIo", efi.GUID{0xcb, 0x47, 0x91, 0x4f, 0x2e, 0x97, 0x5c, 0x4f, 0xb8, 0x69, 0xa0, 0x21, 0x82, 0xc9, 0xd9, 0x3c}: "PataController", efi.GUID{0xcb, 0x48, 0xe6, 0x2d, 0x02, 0x31, 0xca, 0x43, 0xa0, 0x2e, 0x42, 0xe3, 0x8e, 0xa5, 0xe7, 0x89}: "ProcessorErrorHandler", efi.GUID{0xcb, 0x4e, 0x09, 0x21, 0x20, 0x9f, 0x81, 0x47, 0xae, 0x4b, 0x50, 0x72, 0x8b, 0x38, 0x9a, 0x6e}: "IchInit", efi.GUID{0xcb, 0x52, 0x9d, 0x27, 0xd9, 0x5b, 0xf7, 0x4b, 0x99, 0xed, 0x5d, 0x36, 0x5f, 0x73, 0xbe, 0xbb}: "AmdMiniRasRplServiceDxe", efi.GUID{0xcb, 0x54, 0x78, 0xb6, 0xc7, 0x34, 0x5a, 0x43, 0x83, 0xe4, 0xa1, 0x11, 0x7b, 0x68, 0xe2, 0x59}: "FjGabiEntrySmiDispatcherDxe", efi.GUID{0xcb, 0x67, 0xaf, 0xa7, 0x3b, 0x60, 0x42, 0x4d, 0xba, 0x21, 0x70, 0xbf, 0xb6, 0x29, 0x3f, 0x96}: "EfiRngAlgorithmSp80090Hash256Guid", efi.GUID{0xcb, 0x70, 0xd4, 0xe4, 0xd2, 0x41, 0x08, 0x53, 0xd2, 0x60, 0x77, 0x8d, 0xda, 0xfa, 0xde, 0x13}: "AfterPowerLossDxe", efi.GUID{0xcb, 0x71, 0xc7, 0x4c, 0x7b, 0x77, 0x64, 0x4f, 0xb0, 0xf9, 0xc7, 0x0e, 0xd4, 0x35, 0x5d, 0x1c}: "MediaCradReaderConfigSmm", efi.GUID{0xcb, 0x71, 0xd1, 0x62, 0xcd, 0x78, 0x80, 0x44, 0x86, 0x78, 0xc6, 0xa2, 0xa7, 0x97, 0xa8, 0xde}: "CpuArchDxe", efi.GUID{0xcb, 0x79, 0xc0, 0xe6, 0x03, 0x3d, 0xdf, 0x4b, 0x8d, 0x72, 0x4a, 0xb7, 0xfd, 0x8d, 0x5a, 0xd3}: "SBSMM", efi.GUID{0xcb, 0x7e, 0x61, 0x77, 0x29, 0xe2, 0x20, 0x4e, 0xb8, 0xf9, 0xdf, 0x82, 0x45, 0x62, 0x4d, 0x7a}: "SystemAcpiTableLoaderDxe", efi.GUID{0xcb, 0x81, 0x9c, 0xc0, 0xe9, 0x31, 0xe6, 0x4d, 0xa9, 0xf9, 0x17, 0xa1, 0x44, 0x35, 0x42, 0x45}: "AdvancedPkgList", efi.GUID{0xcb, 0x9a, 0x3e, 0x99, 0x8c, 0x28, 0x88, 0x47, 0x87, 0xea, 0x09, 0xf7, 0xa1, 0x5f, 0xd7, 0x65}: "AmdCcxVhPei", efi.GUID{0xcb, 0x9b, 0x3d, 0x5d, 0x34, 0xb1, 0xe0, 0x4c, 0xb7, 0x1a, 0xac, 0x6e, 0x65, 0xa7, 0x51, 0x27}: "SioSsdtDxe", efi.GUID{0xcb, 0xa2, 0x34, 0xc0, 0x90, 0x11, 0x38, 0x46, 0x9d, 0xdf, 0x6f, 0x29, 0x78, 0x24, 0x74, 0x1e}: "TestPointStubDxe", efi.GUID{0xcb, 0xac, 0x4b, 0x9b, 0xc7, 0x55, 0xf8, 0x40, 0x84, 0x39, 0x13, 0xe3, 0xeb, 0x72, 0x9b, 0x3f}: "BATMonintor", efi.GUID{0xcb, 0xae, 0xf2, 0x3d, 0x89, 0x74, 0x91, 0x4d, 0x9b, 0xea, 0x9b, 0x13, 0x5a, 0x56, 0x46, 0x70}: "BdsCheckPointHandler", efi.GUID{0xcb, 0xb0, 0xc0, 0x77, 0x06, 0x04, 0x68, 0x48, 0xae, 0xb5, 0xc3, 0x6b, 0x01, 0xd4, 0x2f, 0xf6}: "MemoryInitWrapper", efi.GUID{0xcb, 0xb2, 0x19, 0xd7, 0x3a, 0x3d, 0x96, 0x45, 0xa3, 0xbc, 0xda, 0xd0, 0x0e, 0x67, 0x65, 0x6f}: "EfiImageSecurityDatabaseGuid", efi.GUID{0xcb, 0xb9, 0xb0, 0x8e, 0x7f, 0x36, 0xeb, 0x43, 0x8e, 0x99, 0x3a, 0x19, 0x2c, 0xd4, 0xf7, 0xf3}: "CrbSmbiosType0", efi.GUID{0xcb, 0xba, 0x4e, 0xec, 0x38, 0x26, 0x6e, 0x41, 0xbe, 0x80, 0xe5, 0xfa, 0x4b, 0x51, 0x19, 0x01}: "UniversalPayloadPciRootBridgeInfo", efi.GUID{0xcb, 0xba, 0xb8, 0x70, 0x26, 0x0b, 0x48, 0x40, 0xa6, 0xf8, 0x03, 0xa6, 0xaf, 0x2c, 0x50, 0x29}: "BootScriptHideSmm", efi.GUID{0xcb, 0xbe, 0x83, 0x9a, 0x54, 0x93, 0x2c, 0x48, 0xa3, 0x16, 0xe2, 0xad, 0xe0, 0x7d, 0x1a, 0xbc}: "AmdMemRestoreDxe", efi.GUID{0xcb, 0xcd, 0x50, 0x6c, 0x46, 0x7f, 0xcc, 0x4d, 0x8d, 0xdd, 0xd9, 0xf0, 0xa3, 0xc6, 0x11, 0x28}: "EfiPpmGlobalNvsAreaProtocol", efi.GUID{0xcb, 0xe6, 0x50, 0xd7, 0x1c, 0x81, 0x36, 0x44, 0xa3, 0x61, 0x8b, 0xb7, 0xbf, 0x53, 0xb1, 0xce}: "HpSystemInformationAspect", efi.GUID{0xcb, 0xe9, 0xa4, 0x0e, 0x9d, 0x81, 0x37, 0x4b, 0x93, 0x62, 0xae, 0x17, 0x83, 0x48, 0x1a, 0xc0}: "FjDtPowerFailureRecoveryPlatformSmm", efi.GUID{0xcb, 0xf8, 0x5e, 0x3e, 0x5d, 0x91, 0xda, 0x4f, 0x92, 0xdd, 0x71, 0x04, 0x2e, 0x0b, 0x7a, 0x01}: "PowerProfile", efi.GUID{0xcc, 0x02, 0xec, 0xda, 0xc7, 0x92, 0xdd, 0x47, 0xae, 0x0d, 0x49, 0x8c, 0x20, 0x42, 0x53, 0xae}: "HPOA3Smm", efi.GUID{0xcc, 0x06, 0xd0, 0xf2, 0x85, 0x89, 0xdb, 0x11, 0xa4, 0x72, 0x00, 0x40, 0xd0, 0x2b, 0x18, 0x35}: "EfiUnixMemory", efi.GUID{0xcc, 0x0b, 0x08, 0x9c, 0xef, 0x38, 0x9f, 0x4f, 0xbd, 0xc1, 0xb2, 0xf5, 0xd1, 0x1e, 0x9c, 0xb7}: "SyncSagVariable", efi.GUID{0xcc, 0x0b, 0xb8, 0x7a, 0xd4, 0x9b, 0xd2, 0x4f, 0x81, 0x1c, 0x60, 0x63, 0x40, 0x73, 0xac, 0x9c}: "PdHostInterfaceCypressSmm", efi.GUID{0xcc, 0x14, 0x4c, 0x94, 0x44, 0x3b, 0x73, 0x49, 0xa8, 0xd5, 0xeb, 0xe0, 0xb9, 0x23, 0xf7, 0xd0}: "GPIOPei", efi.GUID{0xcc, 0x15, 0x09, 0x59, 0x22, 0x86, 0x61, 0x4d, 0xbe, 0x64, 0xc3, 0x3e, 0xe7, 0x60, 0x14, 0x1f}: "DellSmBiosSmmDriver", efi.GUID{0xcc, 0x15, 0x3f, 0x55, 0xc0, 0xad, 0x64, 0x43, 0xb9, 0x35, 0xa5, 0xbf, 0xe2, 0xbf, 0xd2, 0xf9}: "FjI2cPDControllerDxe", efi.GUID{0xcc, 0x1b, 0x65, 0x77, 0x62, 0x72, 0x4f, 0x48, 0xa7, 0x4f, 0x65, 0x08, 0x21, 0x28, 0x5d, 0x9d}: "BiosSelfHealingDxe", efi.GUID{0xcc, 0x28, 0x3d, 0xae, 0x5b, 0xe0, 0xa1, 0x4f, 0xa0, 0x11, 0x7e, 0xb5, 0x5a, 0x3f, 0x14, 0x01}: "EfiDns4ProtocolGuid", efi.GUID{0xcc, 0x29, 0x30, 0x4b, 0x98, 0x6b, 0xfb, 0x47, 0xbc, 0x96, 0x76, 0xdc, 0xb8, 0x04, 0x41, 0xf0}: "EfiDiskInfoUfsInterfaceGuid", efi.GUID{0xcc, 0x30, 0x8a, 0xaf, 0xe4, 0x08, 0x73, 0x4e, 0x9e, 0x8e, 0x2e, 0x39, 0x67, 0x4d, 0x9e, 0x63}: "DellServiceMenu2", efi.GUID{0xcc, 0x31, 0x6e, 0x26, 0xc5, 0x13, 0x07, 0x48, 0xb9, 0xdc, 0x39, 0xa6, 0xba, 0x88, 0xff, 0x1a}: "CpuInitDataHobGuid", efi.GUID{0xcc, 0x45, 0xc4, 0xfe, 0x66, 0x24, 0xce, 0x4d, 0x90, 0x52, 0x74, 0x00, 0xe0, 0x44, 0x55, 0x4f}: "CbsBaseDxeZP", efi.GUID{0xcc, 0x48, 0xdf, 0xc7, 0x3e, 0x06, 0xd4, 0x4f, 0xb7, 0x75, 0x75, 0xc0, 0x0d, 0x9f, 0x19, 0xf6}: "SmbusDebugPei", efi.GUID{0xcc, 0x4a, 0x0f, 0xf4, 0x93, 0x4d, 0x54, 0x42, 0xa4, 0xed, 0xc9, 0x56, 0x6f, 0xb8, 0x16, 0x56}: "PdHostInterfaceCypressDxe", efi.GUID{0xcc, 0x51, 0xbc, 0xa8, 0x30, 0x5a, 0xd5, 0x41, 0x8b, 0x1a, 0xeb, 0x46, 0xab, 0xc5, 0x27, 0xfa}: "IioRas", efi.GUID{0xcc, 0x52, 0xd6, 0xef, 0x99, 0x0e, 0xf0, 0x40, 0x96, 0xc0, 0xe0, 0x8c, 0x08, 0x90, 0x70, 0xfc}: "S3Resume", efi.GUID{0xcc, 0x57, 0xce, 0x19, 0x8e, 0x62, 0x96, 0x4f, 0x93, 0xd4, 0x3c, 0x21, 0xf8, 0x23, 0xc3, 0x43}: "LEMPhyPresenceSet20", efi.GUID{0xcc, 0x58, 0x7c, 0xa3, 0x2b, 0xdc, 0x0e, 0x45, 0x85, 0xe2, 0xf4, 0xc5, 0x38, 0xf2, 0x20, 0x9b}: "Armani_ProductInfoDxe", efi.GUID{0xcc, 0x5a, 0x00, 0x02, 0x91, 0xad, 0xb9, 0x42, 0x86, 0x36, 0x40, 0x3b, 0x4f, 0x57, 0x99, 0xc2}: "LenovoFlashDeviceInterfaceSmm", efi.GUID{0xcc, 0x5f, 0x64, 0xc0, 0x00, 0x50, 0xcb, 0x4b, 0x9a, 0xe0, 0x4d, 0x46, 0x79, 0x6f, 0x13, 0x90}: "PdHostInterfaceIteSmm", efi.GUID{0xcc, 0x64, 0x66, 0x1b, 0xb4, 0x57, 0x47, 0x4e, 0xa4, 0x77, 0x2c, 0x9d, 0xd2, 0x41, 0x36, 0x67}: "DellPchPtssTablePei", efi.GUID{0xcc, 0x66, 0xcf, 0xfd, 0x91, 0x50, 0x3e, 0x48, 0xba, 0x85, 0xdf, 0xa4, 0x47, 0x2e, 0x42, 0x54}: "Common_LilyDxe", efi.GUID{0xcc, 0x68, 0x01, 0x2a, 0x20, 0x43, 0x2f, 0x45, 0xba, 0xca, 0x8b, 0xae, 0xc7, 0xda, 0xfb, 0xca}: "AmdI2CMasterPei", efi.GUID{0xcc, 0x68, 0x2f, 0x2b, 0xd2, 0x0c, 0xcf, 0x44, 0x8e, 0x8b, 0xbb, 0xa2, 0x0b, 0x1b, 0x5b, 0x75}: "EfiUsbBusProtocol", efi.GUID{0xcc, 0x6a, 0xf5, 0x46, 0x0b, 0x60, 0x0f, 0x45, 0xa5, 0x9c, 0x3a, 0x1a, 0x4a, 0xd4, 0x35, 0x3e}: "PrmPkgTokenSpace", efi.GUID{0xcc, 0x6b, 0x6f, 0x2d, 0x81, 0x96, 0x42, 0x8e, 0x85, 0x79, 0xb5, 0x7d, 0xcd, 0x00, 0x60, 0xf0}: "AutoScanPei", efi.GUID{0xcc, 0x6c, 0xa2, 0xbe, 0x96, 0xce, 0xd2, 0x45, 0x96, 0x4f, 0x50, 0x9b, 0x1b, 0xa1, 0x7a, 0x81}: "FjNvramSmiDxe", efi.GUID{0xcc, 0x75, 0xa0, 0x86, 0x54, 0x78, 0x11, 0x4b, 0xaf, 0x71, 0x95, 0xb8, 0x76, 0x2d, 0x94, 0x1a}: "N17PQ3Gop", efi.GUID{0xcc, 0x7c, 0x5a, 0xf9, 0x55, 0x4c, 0x26, 0x44, 0xa7, 0xb4, 0xdc, 0x89, 0x61, 0x95, 0x0b, 0xae}: "ShellLevel2HiiGuid", efi.GUID{0xcc, 0x80, 0x58, 0x82, 0xb5, 0xdb, 0x55, 0x49, 0x8a, 0xff, 0xb2, 0x6f, 0xa3, 0x3c, 0x84, 0xaa}: "AppleFirmwareFeatures", efi.GUID{0xcc, 0x81, 0x52, 0x3e, 0x12, 0x3a, 0xd7, 0x4e, 0x83, 0x1e, 0x62, 0x3d, 0x7a, 0x18, 0xd9, 0x8a}: "AmdSocSp6StpPei", efi.GUID{0xcc, 0x82, 0xba, 0x5d, 0x0d, 0xe8, 0x78, 0x44, 0xa0, 0x7d, 0x39, 0x4f, 0x36, 0x2d, 0x35, 0x24}: "RasClvSddcProtocol", efi.GUID{0xcc, 0x94, 0x56, 0xb6, 0xe3, 0x09, 0x3b, 0x4c, 0xb5, 0xcd, 0x05, 0xf4, 0x4d, 0x3c, 0xdb, 0xff}: "MmFvDispatch", efi.GUID{0xcc, 0x97, 0x72, 0xc3, 0xd9, 0x3f, 0x26, 0x40, 0x98, 0x90, 0x7a, 0x16, 0x28, 0x18, 0x46, 0x20}: "EcIoPeim", efi.GUID{0xcc, 0x98, 0x33, 0x2a, 0x2c, 0x65, 0x19, 0x49, 0x96, 0x81, 0xf2, 0x53, 0x5a, 0x85, 0x5f, 0x59}: "FjRandomNumberDxe", efi.GUID{0xcc, 0x98, 0x6f, 0xc6, 0x40, 0x98, 0xa6, 0x40, 0xbd, 0xc1, 0x7b, 0x4c, 0xcc, 0x77, 0xf8, 0xc6}: "RtkUndiDxe", efi.GUID{0xcc, 0x98, 0x6f, 0xc6, 0x40, 0x98, 0xa6, 0x40, 0xbd, 0xc1, 0x7b, 0x4c, 0xcc, 0x77, 0xf8, 0xc7}: "RtkUsbUndiDxe", efi.GUID{0xcc, 0x99, 0xb6, 0x8d, 0x81, 0xbc, 0xe2, 0x41, 0xaa, 0xc6, 0xd8, 0x1d, 0x53, 0x00, 0xd7, 0x59}: "PartitionVariable", efi.GUID{0xcc, 0xa3, 0xa1, 0x6a, 0xc4, 0x52, 0x03, 0x4b, 0x99, 0xf7, 0x28, 0x8f, 0x34, 0x5c, 0x1d, 0xb3}: "DellAudioConfigDxe", efi.GUID{0xcc, 0xa4, 0x39, 0x09, 0x2b, 0xdc, 0xa0, 0x48, 0x90, 0x9b, 0x30, 0x99, 0x4d, 0x39, 0xd8, 0x2c}: "ReportStatusCodeRouterSmm", efi.GUID{0xcc, 0xa8, 0x86, 0xac, 0xe4, 0xba, 0xe9, 0x4b, 0x9d, 0x59, 0x4d, 0xac, 0x6d, 0x77, 0x03, 0xed}: "LEMFactoryDefaultDxe", efi.GUID{0xcc, 0xaf, 0x70, 0xfa, 0x15, 0x37, 0x15, 0x4d, 0x86, 0x99, 0xf0, 0xdf, 0x4c, 0xaf, 0xc6, 0xd3}: "AmdNbioGfxRVDxe", efi.GUID{0xcc, 0xb5, 0xed, 0x5b, 0x30, 0xd8, 0xb2, 0x4e, 0x87, 0x42, 0x2d, 0x4c, 0xc9, 0xb5, 0x4f, 0x2c}: "Ip6Dxe", efi.GUID{0xcc, 0xba, 0xd4, 0x51, 0x0a, 0xe7, 0x36, 0x41, 0x94, 0x26, 0x54, 0x69, 0x73, 0xed, 0x93, 0x8c}: "LenovoPlatformS3SaveDxe", efi.GUID{0xcc, 0xc2, 0x8a, 0x87, 0x43, 0x53, 0xf2, 0x46, 0xb5, 0x63, 0x51, 0xf8, 0x9d, 0xaf, 0x56, 0xba}: "IntelIGopVbt", efi.GUID{0xcc, 0xc4, 0xbe, 0xe0, 0xe8, 0x8a, 0x15, 0x4d, 0x92, 0xe5, 0x97, 0x55, 0xa0, 0x89, 0x87, 0xbb}: "NCT3933UPEI", efi.GUID{0xcc, 0xcc, 0xea, 0x79, 0x8f, 0xad, 0x48, 0x44, 0xbb, 0xbc, 0x9d, 0xb8, 0xc9, 0x22, 0xac, 0x62}: "AbtUnlock", efi.GUID{0xcc, 0xce, 0x17, 0x0f, 0x3a, 0x65, 0x43, 0xc3, 0x9c, 0xfa, 0xfa, 0xa2, 0x7a, 0x07, 0xef, 0xe5}: "AppleCrypto", efi.GUID{0xcc, 0xd0, 0x16, 0x82, 0x6e, 0x7f, 0xf1, 0x46, 0x98, 0x2c, 0xe6, 0x21, 0x9d, 0x4a, 0xe0, 0x66}: "AmdMemSspSp3Dxe", efi.GUID{0xcc, 0xd5, 0xd8, 0xdf, 0xed, 0x5a, 0x20, 0x48, 0xa2, 0xb6, 0x5c, 0x55, 0xe4, 0xe6, 0x40, 0xef}: "AcpiPlatformSmi", efi.GUID{0xcc, 0xf2, 0x7b, 0xea, 0x54, 0xf1, 0xc4, 0x4c, 0xa7, 0x25, 0x63, 0x82, 0xc7, 0x01, 0xfb, 0xfe}: "AmdMemSmbiosV2RvDxe", efi.GUID{0xcc, 0xf5, 0xb0, 0x9c, 0xf3, 0xb0, 0xdd, 0x4a, 0x85, 0x83, 0x3c, 0x8a, 0xf6, 0xc0, 0x0d, 0xe0}: "DxeS3BootScriptLibS3SaveStateProtocol", efi.GUID{0xcc, 0xf6, 0x51, 0x7d, 0x72, 0x92, 0x41, 0x65, 0xa7, 0x4f, 0x6b, 0x78, 0x40, 0x82, 0xd2, 0x85}: "AcAdapterWarnDxe", efi.GUID{0xcc, 0xfc, 0xb5, 0x40, 0x62, 0xcd, 0x46, 0x4b, 0x89, 0xba, 0xd7, 0xf5, 0x25, 0x6d, 0x88, 0x1d}: "DellPolicyPei", efi.GUID{0xcc, 0xfe, 0xf5, 0x7b, 0xb5, 0xc5, 0x25, 0x4b, 0x81, 0x1b, 0xb4, 0xb5, 0x0b, 0x28, 0x79, 0xf7}: "PeiIpmiTransportPpi", efi.GUID{0xcd, 0x02, 0xd4, 0x87, 0x07, 0x8b, 0x93, 0x4b, 0xb3, 0x8b, 0xf8, 0x79, 0x9f, 0x28, 0xb0, 0x33}: "AmiTxtDxe", efi.GUID{0xcd, 0x03, 0x7f, 0xda, 0x7a, 0x03, 0x98, 0x4a, 0x81, 0xeb, 0x7e, 0x6a, 0x99, 0xa7, 0x11, 0xb9}: "DellExtendedBatteryLifeSmm", efi.GUID{0xcd, 0x06, 0xa0, 0xea, 0x56, 0x32, 0x9b, 0x78, 0xbd, 0x20, 0xeb, 0xab, 0xcd, 0x02, 0x58, 0x3f}: "SecureFlashPei", efi.GUID{0xcd, 0x0a, 0x68, 0x80, 0x8d, 0x2f, 0xb0, 0x48, 0xbf, 0xa9, 0x3e, 0x31, 0x77, 0xaa, 0x9e, 0x27}: "OsVersionDxe", efi.GUID{0xcd, 0x0e, 0xdd, 0x04, 0x44, 0x48, 0x6d, 0x42, 0xae, 0x59, 0x1e, 0xf6, 0x32, 0xc5, 0xea, 0x4c}: "SystemDxeToSmmEventDxe", efi.GUID{0xcd, 0x16, 0x02, 0x01, 0x09, 0x9c, 0xb5, 0x4e, 0xb7, 0xda, 0xd0, 0xa2, 0x86, 0x50, 0x92, 0xd4}: "ProjectDXE", efi.GUID{0xcd, 0x16, 0xa0, 0x8b, 0xe3, 0x3e, 0x34, 0x49, 0x9b, 0xee, 0xae, 0xd0, 0x8e, 0xa5, 0x72, 0xb9}: "PspPlatform", efi.GUID{0xcd, 0x1a, 0xab, 0x53, 0xb1, 0xed, 0x3a, 0x4e, 0xa2, 0xc7, 0x97, 0x8d, 0x72, 0x1d, 0x17, 0x9d}: "FspSecCoreS", efi.GUID{0xcd, 0x2f, 0x5f, 0xa2, 0x68, 0xc1, 0x77, 0x4e, 0xad, 0x3e, 0xa4, 0x88, 0xac, 0xb7, 0x25, 0xab}: "CompletePowerManagementProtocol", efi.GUID{0xcd, 0x2f, 0xd0, 0x59, 0x33, 0x92, 0x34, 0x4d, 0xbc, 0xfe, 0x87, 0xca, 0x81, 0xd3, 0xdd, 0xa7}: "EfiGenericElogProtocol", efi.GUID{0xcd, 0x30, 0x73, 0x8c, 0xd5, 0xba, 0xd1, 0x48, 0xa7, 0xd0, 0xf1, 0x1a, 0x82, 0x2b, 0xcd, 0xc8}: "FjGpioCoffeeLakeDxe", efi.GUID{0xcd, 0x33, 0x19, 0x8d, 0x06, 0xe8, 0x83, 0x4d, 0x9f, 0x9d, 0xff, 0x10, 0xe6, 0x4d, 0x76, 0xd5}: "ISL95856Pei", efi.GUID{0xcd, 0x33, 0x4b, 0x56, 0x2a, 0xc9, 0x93, 0x45, 0x90, 0xbf, 0x24, 0x73, 0xe4, 0x3c, 0x63, 0x22}: "EfiHobMemoryAllocBspStoreGuid", efi.GUID{0xcd, 0x41, 0x85, 0xe1, 0x55, 0xf7, 0x73, 0x4f, 0x92, 0x8d, 0x64, 0x3c, 0x8a, 0x79, 0xb2, 0x29}: "EfiNetworkInterfaceIdentifierProtocolGuid", efi.GUID{0xcd, 0x4a, 0x57, 0x86, 0x8f, 0x5a, 0xff, 0x4f, 0xa6, 0x4f, 0x6a, 0x17, 0x02, 0x78, 0x68, 0x50}: "CommonSetupDxe", efi.GUID{0xcd, 0x4e, 0xdb, 0x74, 0x29, 0x34, 0xd6, 0x46, 0x9b, 0xd3, 0x88, 0xb5, 0x0a, 0x81, 0x90, 0xa7}: "EcKeySmm", efi.GUID{0xcd, 0x54, 0x4f, 0xe9, 0xeb, 0x81, 0xed, 0x47, 0xae, 0xc3, 0x85, 0x6f, 0x5d, 0xc1, 0x57, 0xa9}: "PiSmmCore", efi.GUID{0xcd, 0x59, 0xff, 0x32, 0x33, 0x0c, 0xd0, 0x48, 0xa2, 0x44, 0x4b, 0xb8, 0x11, 0x33, 0x64, 0x03}: "EslUdp6ServiceGuid", efi.GUID{0xcd, 0x5a, 0xfd, 0xe5, 0xf8, 0x59, 0x0a, 0x4d, 0xb3, 0xa9, 0x22, 0xcb, 0x02, 0x0a, 0x6e, 0xaa}: "AmdFabricZpPei", efi.GUID{0xcd, 0x62, 0xd6, 0xe4, 0xcb, 0x7c, 0xb5, 0x4c, 0xae, 0xce, 0x4e, 0xea, 0x39, 0x8f, 0xf8, 0xe4}: "FpgaSocketBbsPcie", efi.GUID{0xcd, 0x69, 0xb7, 0xc4, 0x76, 0x28, 0xbd, 0x41, 0xad, 0xa2, 0x79, 0x67, 0x7f, 0x96, 0x97, 0xc3}: "aDefaultPei", efi.GUID{0xcd, 0x76, 0xd0, 0x68, 0xf3, 0xd8, 0x9b, 0x40, 0x98, 0x7f, 0x10, 0x12, 0xcd, 0xb8, 0x82, 0x42}: "SlotDataUpdateDxeLightningRidgeEXECB4", efi.GUID{0xcd, 0x7d, 0x0c, 0xa6, 0x2f, 0x51, 0x02, 0x4f, 0xb1, 0x80, 0x52, 0x2e, 0x01, 0x5e, 0x06, 0xb7}: "PpmProcessorSupportProtocol_3", efi.GUID{0xcd, 0x81, 0x61, 0xc8, 0x8c, 0xb3, 0xdd, 0x49, 0xa1, 0x76, 0x7d, 0xc3, 0x59, 0x18, 0x16, 0xa9}: "DellHotKeysConfig", efi.GUID{0xcd, 0x82, 0xd7, 0x74, 0x38, 0xf2, 0xf7, 0x42, 0x91, 0xe3, 0x97, 0x7d, 0x5b, 0x4b, 0xbb, 0xd6}: "OemACRecoveryDxe", efi.GUID{0xcd, 0x83, 0x6f, 0x50, 0x6f, 0x5c, 0xf1, 0x47, 0x9f, 0xe1, 0xbe, 0xe2, 0x97, 0x30, 0x9d, 0x32}: "SpsPeiPreMem", efi.GUID{0xcd, 0x83, 0x7b, 0x88, 0x0b, 0xb4, 0x90, 0x43, 0x94, 0xe2, 0xef, 0x77, 0xf3, 0x6a, 0xe1, 0x01}: "FjDxe", efi.GUID{0xcd, 0x84, 0xec, 0xcc, 0xc5, 0xcd, 0x75, 0x4c, 0x86, 0x37, 0xd4, 0x50, 0x8f, 0xc7, 0x9c, 0xcd}: "PngConvert", efi.GUID{0xcd, 0x84, 0xf4, 0x4c, 0x5f, 0x13, 0xdc, 0x4f, 0xba, 0xfb, 0x1a, 0xa1, 0x04, 0xb4, 0x8d, 0x36}: "HfsPlusDxe", efi.GUID{0xcd, 0x84, 0xfd, 0x71, 0x3b, 0x35, 0x4d, 0x46, 0xb7, 0xa4, 0x6e, 0xa7, 0xb9, 0x69, 0x95, 0xcb}: "NonDiscoverablePciDeviceDxe", efi.GUID{0xcd, 0x89, 0x77, 0x7d, 0x20, 0xfd, 0x05, 0x4c, 0xa5, 0x79, 0x91, 0x25, 0x3d, 0x5e, 0x3d, 0x9e}: "DellCmosManagerPeiSrc", efi.GUID{0xcd, 0x8a, 0x6f, 0xfe, 0xa6, 0x55, 0x6b, 0x4c, 0xb4, 0x48, 0x64, 0xe6, 0x59, 0xde, 0x94, 0xb3}: "LegacyRegion2", efi.GUID{0xcd, 0x8e, 0x70, 0xbf, 0x53, 0xa9, 0x2a, 0x44, 0xff, 0xff, 0xff, 0xff, 0x74, 0x8e, 0x01, 0xae}: "XnoteReportStatusCodeDxe", efi.GUID{0xcd, 0x9a, 0x23, 0xc2, 0xd0, 0x21, 0xb0, 0x4c, 0xb7, 0xdb, 0x6d, 0x35, 0xee, 0x7b, 0x0c, 0xc1}: "FirmwareRevisionSyncPei", efi.GUID{0xcd, 0xcf, 0xb9, 0x58, 0xea, 0x7b, 0xee, 0x43, 0xae, 0xe2, 0x89, 0x6a, 0xc2, 0xe0, 0xd6, 0xc4}: "AdapterWarningsDxe", efi.GUID{0xcd, 0xd2, 0x5b, 0xf7, 0x73, 0xf4, 0xa1, 0x4b, 0x89, 0xb3, 0x1e, 0x69, 0xef, 0xc8, 0xba, 0x70}: "ASUS_HW_FastBootDXE", efi.GUID{0xcd, 0xd9, 0x1a, 0x98, 0x85, 0x86, 0xab, 0x4a, 0xaf, 0xda, 0x05, 0x12, 0xf7, 0x4b, 0x65, 0xea}: "SB900SmbusLight", efi.GUID{0xcd, 0xe4, 0x5e, 0xa1, 0x1c, 0xc2, 0xd2, 0x44, 0x95, 0x47, 0x2f, 0x49, 0x86, 0x9f, 0xb9, 0xd3}: "LenovoTpm2ConfigPei", efi.GUID{0xcd, 0xee, 0x83, 0xde, 0x0f, 0x2e, 0xd3, 0x47, 0xb6, 0x34, 0x55, 0x66, 0x15, 0xb1, 0x01, 0xdf}: "OemUsbConfigDxe", efi.GUID{0xcd, 0xf4, 0xd6, 0x67, 0xb8, 0xd6, 0x73, 0x45, 0xbf, 0x4a, 0xde, 0x5e, 0x25, 0x2d, 0x61, 0xae}: "EfiJsonCapsuleId", efi.GUID{0xcd, 0xf5, 0xb4, 0x6b, 0x22, 0x80, 0x8d, 0x44, 0xbc, 0x6d, 0x77, 0x1b, 0xae, 0x93, 0x5f, 0xc6}: "EfiKmsFormatSha256256Guid", efi.GUID{0xcd, 0xfd, 0xd4, 0x96, 0x02, 0x15, 0x4d, 0x42, 0x9d, 0x4c, 0x9b, 0x12, 0xd2, 0xdc, 0xae, 0x5c}: "MicrocodeFmpImageTypeIdGuid", efi.GUID{0xce, 0x05, 0xd4, 0x3c, 0x91, 0x2d, 0xe9, 0x44, 0x89, 0x5d, 0x44, 0x59, 0xee, 0xcd, 0x8f, 0x9a}: "AmdRasRvApeiDxe", efi.GUID{0xce, 0x07, 0x97, 0x63, 0x61, 0xf9, 0x3d, 0x4f, 0x99, 0xbd, 0x7d, 0xfa, 0xff, 0xcb, 0x1d, 0x54}: "PlatformInit", efi.GUID{0xce, 0x0f, 0x68, 0x9b, 0x6b, 0xad, 0x3a, 0x4f, 0xb6, 0x0b, 0xf5, 0x98, 0x99, 0x00, 0x34, 0x43}: "DevicePathDxe", efi.GUID{0xce, 0x10, 0xa1, 0x43, 0xcd, 0x9c, 0x2b, 0x40, 0x8c, 0x29, 0x4a, 0x6d, 0x8a, 0xf7, 0x79, 0x90}: "EslUdp4ServiceGuid", efi.GUID{0xce, 0x11, 0x82, 0x91, 0xd2, 0xa1, 0xa0, 0x43, 0xa0, 0x4e, 0x75, 0xb5, 0xbf, 0x44, 0x50, 0x0e}: "EfiCPTokenSpaceGuid", efi.GUID{0xce, 0x23, 0x33, 0x54, 0x0c, 0x9f, 0xdf, 0x4d, 0xa3, 0x3c, 0xbc, 0x3b, 0x3a, 0x5a, 0xc2, 0x27}: "SmmBmcElog", efi.GUID{0xce, 0x2c, 0xf6, 0x39, 0x25, 0x68, 0x69, 0x46, 0xbb, 0x56, 0x54, 0x1a, 0xba, 0x75, 0x3a, 0x07}: "EfiGraphicsInfoHobGuid", efi.GUID{0xce, 0x3b, 0x98, 0x7e, 0x99, 0x5c, 0xe0, 0x4b, 0xb3, 0xd0, 0x21, 0x0e, 0x8f, 0xdd, 0xd3, 0xc0}: "VlanceDxe", efi.GUID{0xce, 0x4b, 0xfd, 0xec, 0x79, 0x42, 0xf8, 0x40, 0xba, 0xf2, 0xdc, 0xb7, 0x96, 0x38, 0xd4, 0x1e}: "AmiTseOemPortingGuid1", efi.GUID{0xce, 0x4e, 0xc6, 0x63, 0x83, 0xda, 0x9d, 0x47, 0xb3, 0x82, 0xf4, 0x93, 0x90, 0x72, 0xc8, 0x0d}: "DellGraphicsDrv", efi.GUID{0xce, 0x53, 0x44, 0x22, 0xd2, 0xfe, 0xcc, 0x49, 0xa4, 0x2f, 0x44, 0x3f, 0xf9, 0xcc, 0xb6, 0xc7}: "Ast2600VgaDriverX64", efi.GUID{0xce, 0x58, 0x04, 0x47, 0x8a, 0x3e, 0xa7, 0x40, 0xbf, 0xcb, 0x07, 0x75, 0x5a, 0xbc, 0x41, 0x04}: "FjGabiGpio", efi.GUID{0xce, 0x61, 0x90, 0xe4, 0xa7, 0x99, 0xd3, 0x41, 0xab, 0x3a, 0x36, 0xe5, 0xcf, 0xba, 0xd6, 0x3e}: "AtapiPassThruDxe", efi.GUID{0xce, 0x61, 0x90, 0xe4, 0xa7, 0x99, 0xd3, 0x41, 0xab, 0x3a, 0x36, 0xe5, 0xcf, 0xfe, 0xdc, 0xba}: "LsiLogicPassThruDxe", efi.GUID{0xce, 0x67, 0x04, 0x56, 0xf8, 0x83, 0x65, 0x47, 0x88, 0x6b, 0x6a, 0x0c, 0x03, 0x67, 0x8c, 0xd8}: "HpNotificationsDefaultsAndWmi", efi.GUID{0xce, 0x69, 0x73, 0x7e, 0x88, 0x01, 0x83, 0x41, 0x8c, 0x2d, 0xda, 0xf7, 0xb7, 0x30, 0xe4, 0x2b}: "AmiCmosBadHobGuid", efi.GUID{0xce, 0x6c, 0xfa, 0x2c, 0x57, 0x1a, 0xff, 0x46, 0xbe, 0x62, 0xd6, 0xb1, 0xea, 0x11, 0x25, 0x4e}: "SmmCryptoAlgorithm", efi.GUID{0xce, 0x72, 0x9d, 0xc8, 0x1a, 0xe2, 0x71, 0x4c, 0xba, 0x79, 0x77, 0x0e, 0xf3, 0x73, 0xd6, 0xda}: "BootSector", efi.GUID{0xce, 0x76, 0xef, 0x42, 0x06, 0xa6, 0x81, 0x48, 0xbe, 0xa6, 0xad, 0x3f, 0x3e, 0xc9, 0xf7, 0x54}: "Memory_OK_PEI", efi.GUID{0xce, 0x77, 0xaa, 0xcf, 0x08, 0x72, 0xc3, 0x43, 0xb8, 0x15, 0x99, 0xe8, 0xd6, 0x6a, 0x28, 0xba}: "b57undix64", efi.GUID{0xce, 0x7a, 0x6e, 0x32, 0x33, 0x21, 0xa2, 0x1b, 0x80, 0x0a, 0xb9, 0xc0, 0x0a, 0xcc, 0xb1, 0x7d}: "CpuSmmSaveRes", efi.GUID{0xce, 0x7c, 0xcf, 0x55, 0x1f, 0x05, 0xc3, 0x42, 0x9c, 0xa9, 0x20, 0xdb, 0x5c, 0xad, 0x9a, 0xe4}: "AmiEventLogsHiiHandle", efi.GUID{0xce, 0x7f, 0x92, 0xbb, 0x65, 0xc9, 0x80, 0x4a, 0xb4, 0xf7, 0xd0, 0x65, 0xd9, 0x61, 0xef, 0x2a}: "FjGpnv", efi.GUID{0xce, 0x80, 0xa4, 0x00, 0x51, 0xd7, 0x11, 0x4b, 0x89, 0xfb, 0x7d, 0xce, 0xbb, 0xb2, 0x2f, 0x4d}: "DellPmPolicyProtocol", efi.GUID{0xce, 0x84, 0xea, 0xc8, 0xac, 0x18, 0xb3, 0x4b, 0x9a, 0x23, 0xfb, 0x49, 0x25, 0x0f, 0x35, 0xa6}: "FjAudioFp", efi.GUID{0xce, 0x85, 0x24, 0xa8, 0x6b, 0xad, 0x01, 0x41, 0x99, 0xd3, 0xe1, 0x35, 0x8c, 0x9e, 0x7e, 0x37}: "EdkiiCpuFeaturesSetDone", efi.GUID{0xce, 0x86, 0x14, 0xf9, 0x0e, 0x70, 0x85, 0x4d, 0xad, 0xb5, 0x4e, 0xd5, 0x32, 0x53, 0x6a, 0x7f}: "NvmeInfoSmm", efi.GUID{0xce, 0x8b, 0x61, 0x19, 0xae, 0x55, 0xc6, 0x09, 0x37, 0xe9, 0x4c, 0xe0, 0x40, 0x84, 0xc7, 0xa1}: "httpDynamicCommand", efi.GUID{0xce, 0x95, 0xf9, 0xf8, 0x6f, 0xb2, 0xcf, 0x4e, 0xb2, 0x28, 0x0d, 0xa5, 0x15, 0x1b, 0xe7, 0x10}: "EmbeddedUefiOkrProtocol", efi.GUID{0xce, 0x97, 0xb6, 0x0a, 0x20, 0xb9, 0xac, 0x48, 0xa2, 0x65, 0xec, 0x56, 0x24, 0xed, 0xcd, 0xd7}: "DellDevPasswordProtocol", efi.GUID{0xce, 0xa1, 0xa7, 0xe6, 0x81, 0x58, 0x49, 0x4b, 0x80, 0xbe, 0x69, 0xc9, 0x18, 0x11, 0x68, 0x5c}: "Setup", efi.GUID{0xce, 0xa3, 0xec, 0x7f, 0x8c, 0xf1, 0xce, 0x4d, 0x94, 0x65, 0x4d, 0xeb, 0x94, 0x92, 0x98, 0xc9}: "E022X7", efi.GUID{0xce, 0xa3, 0xec, 0x7f, 0x8c, 0xf1, 0xce, 0x4d, 0x94, 0x65, 0x58, 0xd6, 0xfb, 0x06, 0x92, 0xb8}: "0_X64", efi.GUID{0xce, 0xa3, 0xec, 0x7f, 0x8c, 0xf1, 0xce, 0x4d, 0x94, 0x65, 0x80, 0xff, 0x64, 0xf2, 0xab, 0x7c}: "0_X64", efi.GUID{0xce, 0xa9, 0xbb, 0x93, 0x20, 0xf0, 0x40, 0x47, 0x8b, 0x4e, 0x9e, 0xcc, 0xe3, 0x90, 0x9c, 0xcd}: "AmdMemFp8StxPei", efi.GUID{0xce, 0xaf, 0x27, 0xfe, 0xc8, 0xa2, 0x30, 0x4c, 0x84, 0xc5, 0x4c, 0xe1, 0x4f, 0x6b, 0x29, 0x2d}: "SataDeviceFeaturePei", efi.GUID{0xce, 0xb6, 0xe9, 0xbe, 0x8a, 0x2f, 0xd4, 0x11, 0xbd, 0x0d, 0x00, 0x80, 0xc7, 0x3c, 0x88, 0x81}: "EfiWinNtCpuModel", efi.GUID{0xce, 0xb9, 0xda, 0x63, 0x03, 0x5d, 0x60, 0x45, 0x8a, 0x89, 0xd8, 0x13, 0x66, 0x36, 0x3a, 0x2c}: "ChipsetErrReporting", efi.GUID{0xce, 0xcd, 0xb1, 0x97, 0xbb, 0xaf, 0xf5, 0x42, 0x93, 0x28, 0x1c, 0xfe, 0xfe, 0x91, 0x2e, 0x66}: "IncreasePcieIdleFanSpeedSmm", efi.GUID{0xce, 0xd1, 0x05, 0x3a, 0x83, 0xe2, 0x38, 0x47, 0x88, 0xc9, 0xd1, 0x52, 0xf3, 0x35, 0xc0, 0xdc}: "MSIFreeDOS", efi.GUID{0xce, 0xe3, 0xcf, 0x89, 0x27, 0xc1, 0xf8, 0x42, 0xbd, 0x69, 0x29, 0x10, 0xaf, 0x7b, 0x87, 0xa7}: "SmmBoardInit", efi.GUID{0xce, 0xf0, 0xe2, 0x41, 0x8a, 0x23, 0x06, 0x49, 0xae, 0xf8, 0x37, 0xc5, 0x31, 0xad, 0xdf, 0x89}: "ThermalModePei", efi.GUID{0xce, 0xf4, 0x17, 0x03, 0x43, 0xad, 0x61, 0x44, 0x8d, 0x14, 0xb9, 0xf2, 0x54, 0x3f, 0xd8, 0x39}: "SataDriveInfoDxe", efi.GUID{0xce, 0xf7, 0x12, 0x76, 0x85, 0xc6, 0x5a, 0x46, 0x91, 0xd4, 0xd1, 0x2f, 0x9e, 0x93, 0x33, 0x83}: "SpiHcOperation", efi.GUID{0xce, 0xfa, 0x71, 0xa6, 0x9f, 0xb9, 0xab, 0x48, 0xb3, 0xb0, 0xf2, 0x5e, 0x5e, 0xe4, 0xb1, 0x15}: "TcgSetupDxe", efi.GUID{0xcf, 0x00, 0x7c, 0x9e, 0x5a, 0x35, 0x4e, 0x4d, 0xbf, 0x60, 0x04, 0x28, 0xcf, 0xf9, 0x55, 0x40}: "BaseSerialPortLib16550", efi.GUID{0xcf, 0x00, 0xb7, 0xa9, 0x9e, 0x01, 0x8b, 0x4d, 0xa3, 0xa7, 0x88, 0xe1, 0xea, 0x01, 0x69, 0x9e}: "HddSecurity", efi.GUID{0xcf, 0x00, 0xfc, 0x49, 0xd2, 0xbb, 0xd4, 0x4f, 0xb9, 0xd1, 0xf0, 0x84, 0xa5, 0x1e, 0xb7, 0x08}: "ApobSspDxe", efi.GUID{0xcf, 0x12, 0x8b, 0x9f, 0x96, 0xe7, 0x8f, 0x40, 0x9d, 0x59, 0x3a, 0xcd, 0xdc, 0x0a, 0xfb, 0xe3}: "Datahub2SmbiosThunk", efi.GUID{0xcf, 0x1a, 0x6e, 0x11, 0x33, 0x25, 0xc2, 0x4c, 0x82, 0x0a, 0xbb, 0xc1, 0x0a, 0x2a, 0xb0, 0x7c}: "CpuSpSmi", efi.GUID{0xcf, 0x1c, 0xca, 0xf0, 0x60, 0x4e, 0x6a, 0x49, 0x89, 0x0f, 0xe7, 0x8f, 0xca, 0x1c, 0x1d, 0x6b}: "CheckOemOSType", efi.GUID{0xcf, 0x1f, 0x39, 0xe3, 0x10, 0xe9, 0x62, 0x4e, 0xb2, 0x16, 0x75, 0x6c, 0x85, 0x0e, 0x29, 0xb9}: "SxDispatchNotify", efi.GUID{0xcf, 0x27, 0x25, 0xe7, 0x5b, 0x50, 0x50, 0x4b, 0x99, 0xcd, 0xa3, 0x24, 0x67, 0xfa, 0x4a, 0xa4}: "AsfTable", efi.GUID{0xcf, 0x27, 0xcf, 0x0c, 0x8d, 0xe6, 0x79, 0x42, 0x96, 0xb0, 0x8a, 0x4e, 0x1c, 0xdf, 0xf1, 0x0c}: "SettingsManagerDxe", efi.GUID{0xcf, 0x2a, 0x0f, 0xcc, 0x83, 0x88, 0xa7, 0x4d, 0x8f, 0x62, 0x39, 0xa6, 0xbd, 0xc6, 0xbd, 0x4c}: "OemSetupValueHookPei", efi.GUID{0xcf, 0x2d, 0xc3, 0x42, 0x5a, 0xf2, 0xf3, 0x47, 0x8f, 0x4c, 0xab, 0xd4, 0x78, 0xd7, 0x7f, 0x50}: "DellPbaUpekDxe", efi.GUID{0xcf, 0x2e, 0xa7, 0x61, 0xbf, 0xf7, 0x4e, 0x44, 0xbe, 0x85, 0x22, 0x13, 0x39, 0xd0, 0xf0, 0x0b}: "SdLegacySmm", efi.GUID{0xcf, 0x2f, 0xd0, 0x94, 0x5c, 0x04, 0xd3, 0x45, 0xb0, 0x23, 0x1a, 0x8b, 0x5c, 0xa5, 0xc7, 0x0a}: "BIOSVer", efi.GUID{0xcf, 0x32, 0xea, 0x54, 0x4a, 0xf3, 0xca, 0x4a, 0x95, 0x1c, 0x12, 0x03, 0xb7, 0xc5, 0x17, 0x25}: "OemRgbLbDxe", efi.GUID{0xcf, 0x34, 0xa0, 0xb0, 0xce, 0x41, 0x04, 0x41, 0x8e, 0xd3, 0x4f, 0x97, 0xe8, 0xad, 0xb9, 0x81}: "SioDummyDxe", efi.GUID{0xcf, 0x3c, 0x98, 0xbb, 0x1d, 0x15, 0xe1, 0x40, 0xa0, 0x7b, 0x4a, 0x17, 0xbe, 0x16, 0x82, 0x92}: "EfiMemoryOverwriteRequestControlLockGuid", efi.GUID{0xcf, 0x4a, 0x2f, 0xa4, 0x88, 0x5a, 0xe3, 0x4d, 0xa5, 0x4d, 0xee, 0x7c, 0xa9, 0x4c, 0x12, 0x46}: "AppleSpiIoCnl", efi.GUID{0xcf, 0x5a, 0xb9, 0xc3, 0xd2, 0x4e, 0x62, 0x84, 0xaa, 0x52, 0x78, 0x84, 0x15, 0xa6, 0x1c, 0x4b}: "GpsOnWwanSmm", efi.GUID{0xcf, 0x5e, 0x09, 0xa5, 0x8f, 0xa2, 0x3c, 0x45, 0x96, 0x0f, 0x87, 0x57, 0xe4, 0xa4, 0x80, 0xb1}: "Cf9Reset", efi.GUID{0xcf, 0x62, 0x2e, 0x2d, 0xcf, 0x9e, 0xb7, 0x43, 0x82, 0x19, 0x94, 0xe7, 0xfc, 0x71, 0x3d, 0xfe}: "SystemUsbKbDxe", efi.GUID{0xcf, 0x65, 0x1a, 0x8f, 0x27, 0x1d, 0x54, 0x43, 0x9f, 0x77, 0x4d, 0xb7, 0x64, 0x47, 0x1b, 0x4a}: "AmiOemRasSmm", efi.GUID{0xcf, 0x65, 0xc0, 0x7b, 0xe8, 0xaf, 0x96, 0x43, 0xae, 0x9f, 0xba, 0x27, 0xdf, 0xbe, 0xcf, 0x3d}: "PlatformKtiEparamUpdateData", efi.GUID{0xcf, 0x67, 0x1a, 0x46, 0x9b, 0x3d, 0xc0, 0x4f, 0xbc, 0xd2, 0x7c, 0x60, 0x63, 0x35, 0xde, 0x0f}: "SystemSetupSecurityGuiDxe", efi.GUID{0xcf, 0x6d, 0xb3, 0xa7, 0x5a, 0xc7, 0xe8, 0x4b, 0xbe, 0x2f, 0xe4, 0x84, 0x0c, 0xbe, 0x16, 0x3b}: "DellPbaMgrDxe", efi.GUID{0xcf, 0x6f, 0xa6, 0x34, 0x26, 0x8f, 0x93, 0x4f, 0x81, 0xe3, 0x91, 0x8f, 0x5f, 0x71, 0x7d, 0xe3}: "FjS5WakePei", efi.GUID{0xcf, 0x73, 0x4f, 0x53, 0x37, 0x09, 0x8a, 0x41, 0x90, 0xc7, 0x4f, 0x10, 0x79, 0xdc, 0xae, 0xd1}: "PeiRamBootDxe", efi.GUID{0xcf, 0x73, 0x74, 0xe0, 0xed, 0xe2, 0x96, 0x40, 0xbf, 0x9f, 0xdc, 0x64, 0x85, 0x3a, 0xe8, 0x0b}: "AmdMemFp8Dxe", efi.GUID{0xcf, 0x7a, 0x62, 0x82, 0x2d, 0xd9, 0x6d, 0x41, 0x8a, 0x6f, 0x78, 0x3c, 0xac, 0xd9, 0x12, 0x23}: "AoacEcWakeupCustomPpi", efi.GUID{0xcf, 0x7d, 0xe8, 0x99, 0x62, 0x61, 0xc5, 0x40, 0x9f, 0xa1, 0x32, 0x11, 0x1f, 0x51, 0x97, 0xf7}: "WebServer", efi.GUID{0xcf, 0x7e, 0x05, 0x6e, 0x99, 0xfa, 0x39, 0x4f, 0x95, 0xbc, 0x59, 0xf9, 0x92, 0x1d, 0x17, 0xe4}: "EdkiiSmmReadyToBootProtocolGuid", efi.GUID{0xcf, 0x8b, 0x1e, 0x9c, 0x72, 0x70, 0xf4, 0x45, 0xac, 0xc3, 0x98, 0x70, 0x0a, 0x0f, 0xc9, 0x07}: "AmdUnbXvDxe", efi.GUID{0xcf, 0x8d, 0xfc, 0x87, 0x0e, 0x66, 0xff, 0x4f, 0x87, 0x76, 0xd6, 0xba, 0x05, 0x3d, 0xed, 0xd1}: "DellIoExpanderPca9555Dxe", efi.GUID{0xcf, 0x8f, 0x9e, 0xa5, 0xa0, 0xbd, 0xbb, 0x43, 0x90, 0xb1, 0xd3, 0x73, 0x2e, 0xca, 0xa8, 0x77}: "EfiScsiPassThruProtocolGuid", efi.GUID{0xcf, 0x93, 0x69, 0xac, 0xc8, 0x43, 0xcb, 0x4f, 0x84, 0x0c, 0xb7, 0xcf, 0x2e, 0x07, 0x99, 0x77}: "PciHotPlug2", efi.GUID{0xcf, 0x95, 0xb4, 0x67, 0xce, 0x17, 0x4b, 0x42, 0x96, 0x33, 0x49, 0x77, 0x3a, 0xe6, 0x39, 0x08}: "UsbWorkaroundDxe", efi.GUID{0xcf, 0x97, 0x2a, 0xcb, 0x3b, 0x3d, 0x15, 0x42, 0xb5, 0x28, 0x7b, 0x89, 0x44, 0x20, 0x0e, 0x46}: "CcgxDiscovery", efi.GUID{0xcf, 0x97, 0x2e, 0xb4, 0x11, 0xb8, 0x09, 0x4a, 0x98, 0x10, 0xfe, 0xe8, 0xf5, 0x3a, 0x56, 0x1e}: "PlatformHstiDxe", efi.GUID{0xcf, 0xa3, 0x04, 0x42, 0xab, 0xcd, 0x29, 0x46, 0xad, 0x6b, 0x65, 0xe6, 0x47, 0xfc, 0x29, 0xd5}: "AmdCpmManageabilityBoardDxe", efi.GUID{0xcf, 0xaa, 0xa7, 0x7e, 0xd3, 0x7e, 0x66, 0x41, 0x82, 0x71, 0xb2, 0x11, 0x56, 0x52, 0x36, 0x20}: "SamplePlatformDevicePolicyDxe", efi.GUID{0xcf, 0xba, 0x3a, 0xb0, 0x32, 0xa5, 0x78, 0x5e, 0xac, 0xa0, 0xb1, 0x1f, 0x76, 0x5b, 0x3a, 0xfd}: "CpuDxe", efi.GUID{0xcf, 0xba, 0xe8, 0x0d, 0x0a, 0xe0, 0x38, 0x45, 0xbe, 0x0d, 0x81, 0xaf, 0x93, 0x74, 0xfc, 0xc9}: "EmulatedEepromSmmProtocol", efi.GUID{0xcf, 0xbb, 0xd4, 0xc7, 0x0a, 0xeb, 0x91, 0x4c, 0xbd, 0x8b, 0xfc, 0xa9, 0x9f, 0x28, 0xb0, 0x11}: "AmiTxtPei", efi.GUID{0xcf, 0xbd, 0xe3, 0x63, 0xc7, 0x2a, 0xc0, 0x4a, 0x9b, 0x92, 0x03, 0xa7, 0x54, 0x14, 0x22, 0xff}: "Hash2DxeCrypto", efi.GUID{0xcf, 0xc6, 0xee, 0x02, 0xf5, 0xfd, 0xf0, 0x4f, 0xa6, 0xaf, 0xdf, 0x56, 0x9b, 0xcd, 0x68, 0x28}: "HpDimmIdDxe", efi.GUID{0xcf, 0xc6, 0xee, 0x02, 0xf5, 0xfd, 0xf0, 0x4f, 0xa6, 0xaf, 0xdf, 0x56, 0x9b, 0xcd, 0x68, 0x29}: "HpDimmIdSmm", efi.GUID{0xcf, 0xc7, 0x26, 0xf4, 0xb9, 0xde, 0x61, 0x03, 0x4d, 0x4e, 0x9f, 0x29, 0x8c, 0x1b, 0x89, 0x6e}: "SavePlatformConfiguration", efi.GUID{0xcf, 0xd1, 0x0f, 0xf0, 0xbf, 0x2f, 0x96, 0x40, 0xa8, 0x82, 0x7e, 0x7b, 0x8f, 0xd8, 0x0b, 0xd5}: "SelfRepairApplication", efi.GUID{0xcf, 0xdb, 0x66, 0x36, 0x9d, 0xd7, 0xc6, 0x44, 0x82, 0xb2, 0x76, 0xf6, 0x38, 0x3c, 0xa8, 0xac}: "FjDfci", efi.GUID{0xcf, 0xdd, 0xa1, 0x91, 0x74, 0x53, 0x39, 0x49, 0x89, 0x51, 0xd7, 0x29, 0x3f, 0x1a, 0x78, 0x6f}: "EnhancedSpeedstepProtocolGuid", efi.GUID{0xcf, 0xde, 0xdf, 0xf7, 0x36, 0x9c, 0x43, 0x4d, 0x85, 0xa4, 0x6d, 0x92, 0xda, 0xfc, 0x34, 0x77}: "FchPromontoryGpioSmmInit", efi.GUID{0xcf, 0xf4, 0x87, 0xc8, 0x65, 0x45, 0x9b, 0x40, 0x91, 0x78, 0xd2, 0xbf, 0x1d, 0x22, 0x8d, 0xed}: "SioSetupUtilityDxe", efi.GUID{0xd0, 0x00, 0x66, 0xe1, 0x41, 0x3c, 0x98, 0x47, 0xb1, 0x6a, 0x0d, 0xba, 0x67, 0xd2, 0xfc, 0x47}: "AmiCpuSmbios", efi.GUID{0xd0, 0x04, 0xdb, 0xae, 0x2b, 0xee, 0x9a, 0x49, 0xb6, 0x73, 0xd7, 0x1a, 0xf8, 0x76, 0xcf, 0x83}: "DellSocketDxe", efi.GUID{0xd0, 0x0a, 0x8d, 0x8a, 0x8c, 0xe2, 0x07, 0x49, 0xa6, 0x51, 0xae, 0x9d, 0x65, 0xcd, 0x92, 0x98}: "TileSmm", efi.GUID{0xd0, 0x10, 0x77, 0x93, 0x10, 0xef, 0xbe, 0x42, 0x92, 0xe1, 0x84, 0x94, 0x72, 0x2b, 0x17, 0xb5}: "DellDirtyShutdownDxe", efi.GUID{0xd0, 0x1a, 0xa6, 0xb9, 0x02, 0x28, 0xf3, 0x41, 0xb5, 0x13, 0x96, 0x51, 0xce, 0x6b, 0xd5, 0x75}: "OvmfTpmDiscoveredPpi", efi.GUID{0xd0, 0x22, 0x05, 0xc7, 0xdb, 0x0d, 0x23, 0x46, 0xaa, 0xb7, 0xb8, 0x4d, 0xfc, 0x47, 0xef, 0xfd}: "AodSmmSsp", efi.GUID{0xd0, 0x22, 0x05, 0xc7, 0xdb, 0x0d, 0x23, 0x46, 0xaa, 0xb7, 0xb8, 0x4d, 0xfc, 0x47, 0xef, 0xff}: "AodSmmSsp", efi.GUID{0xd0, 0x23, 0xe1, 0xb3, 0x1e, 0x7a, 0xb4, 0x4d, 0xaf, 0x66, 0xbe, 0xd4, 0x1e, 0x9c, 0x66, 0x38}: "ScDeviceTableHobGuid", efi.GUID{0xd0, 0x27, 0x53, 0xf8, 0xcf, 0x01, 0x27, 0x4d, 0xae, 0x88, 0x9d, 0x20, 0xa1, 0x4f, 0x55, 0xbd}: "Rt8152UsbUndiDxe", efi.GUID{0xd0, 0x2e, 0x6a, 0x95, 0xcf, 0xa6, 0x9a, 0x40, 0xb8, 0xf5, 0x35, 0xf1, 0x4c, 0x3e, 0x3c, 0x02}: "EfiIderControllerDriverProtocol", efi.GUID{0xd0, 0x40, 0x23, 0xfd, 0xab, 0x3d, 0x49, 0x43, 0xa6, 0xc7, 0x3b, 0x4f, 0x12, 0xb4, 0x8e, 0xae}: "EfiTlsCaCertificateGuid", efi.GUID{0xd0, 0x42, 0x0f, 0x00, 0x3c, 0x28, 0xab, 0x46, 0x92, 0x87, 0xac, 0xb6, 0xc9, 0x94, 0x1f, 0xcd}: "SmmSupvErrorReport", efi.GUID{0xd0, 0x42, 0x9e, 0xc9, 0x64, 0x49, 0x09, 0x4b, 0xb9, 0x24, 0x4a, 0x59, 0xe1, 0x3e, 0x4f, 0x04}: "SbRunSmm", efi.GUID{0xd0, 0x53, 0x81, 0xf7, 0x0d, 0x87, 0xee, 0x4e, 0xa6, 0x84, 0x74, 0x14, 0x99, 0xc9, 0xa8, 0xce}: "EistDxe", efi.GUID{0xd0, 0x60, 0x75, 0x41, 0xf6, 0x80, 0xb2, 0x4c, 0xa1, 0x5e, 0x50, 0xac, 0xd3, 0x83, 0x69, 0x1f}: "FchSmmDispatcher", efi.GUID{0xd0, 0x61, 0x0d, 0x54, 0xd8, 0xc2, 0x2e, 0x4e, 0x8a, 0xd0, 0x5c, 0x3d, 0x1b, 0x56, 0xcd, 0x4e}: "UpdateSmbiosEcVersion", efi.GUID{0xd0, 0x61, 0xb4, 0x23, 0x94, 0x3c, 0x0d, 0x49, 0x9a, 0x4b, 0x4a, 0xe1, 0x91, 0x6b, 0xd4, 0x25}: "DellAtaAtapiIoProtocol", efi.GUID{0xd0, 0x67, 0x1a, 0x4a, 0x7a, 0xe7, 0x0a, 0x4f, 0xaf, 0x1d, 0xcc, 0x41, 0x2b, 0xe9, 0x3d, 0xc9}: "AmdCcxZenZpDxe", efi.GUID{0xd0, 0x68, 0x08, 0x2f, 0x47, 0x1a, 0xf7, 0x43, 0xbd, 0x6b, 0xd0, 0xc1, 0xf2, 0x51, 0x42, 0x98}: "SmbusDebugDxe", efi.GUID{0xd0, 0x6b, 0xfe, 0x1a, 0xc5, 0xc9, 0xd4, 0x44, 0xb7, 0xbd, 0x8f, 0x5e, 0x7d, 0x0f, 0x25, 0x60}: "DellDiagsSbControlSmm", efi.GUID{0xd0, 0x6d, 0xac, 0x13, 0xd0, 0x73, 0xd4, 0x11, 0xb0, 0x6b, 0x00, 0xaa, 0x00, 0xbd, 0x6d, 0xe7}: "EbcDxe", efi.GUID{0xd0, 0x74, 0x56, 0x3d, 0x75, 0xae, 0x23, 0x47, 0x91, 0x59, 0x1d, 0x65, 0x3b, 0x40, 0x40, 0x2f}: "DellTxTdxe", efi.GUID{0xd0, 0x8a, 0xab, 0xb2, 0xd9, 0x5e, 0x5f, 0x43, 0xb2, 0x23, 0x35, 0x6b, 0x64, 0x5d, 0x54, 0x7b}: "AmdCpmABRecoverySmm", efi.GUID{0xd0, 0x8a, 0xec, 0x25, 0x06, 0x00, 0x3e, 0x4f, 0x90, 0x8a, 0x0c, 0xb8, 0x26, 0x09, 0x93, 0x8e}: "NvmExpressSmm", efi.GUID{0xd0, 0x91, 0x7c, 0xa9, 0xeb, 0x6f, 0x55, 0x45, 0xb0, 0xda, 0x4e, 0x79, 0xec, 0x00, 0x9d, 0x68}: "GraphicalFirmwareInterface", efi.GUID{0xd0, 0x99, 0x7a, 0x5e, 0x1f, 0x76, 0x26, 0x4c, 0x82, 0x69, 0x85, 0x71, 0xd8, 0x5b, 0x0f, 0xec}: "ICE30plusSMI", efi.GUID{0xd0, 0x9c, 0x6c, 0x92, 0xb8, 0x4b, 0x9b, 0x47, 0x9a, 0xc4, 0x8a, 0x2a, 0x23, 0xf8, 0x53, 0x07}: "BaseIoLibIntrinsic", efi.GUID{0xd0, 0x9c, 0xf6, 0x23, 0x46, 0xff, 0xb6, 0x4d, 0xb9, 0x82, 0x63, 0xed, 0xf1, 0xa9, 0x01, 0xff}: "AmiTseOemPortingGuid2", efi.GUID{0xd0, 0x9f, 0xc7, 0xc2, 0x3c, 0x31, 0x4d, 0x4c, 0xb9, 0xf1, 0xed, 0x26, 0xf0, 0x0c, 0xa9, 0x55}: "XhciDxe", efi.GUID{0xd0, 0xa5, 0x16, 0x33, 0x16, 0xfe, 0xe2, 0x40, 0x81, 0x14, 0x75, 0xe5, 0x72, 0x44, 0x49, 0xf8}: "IntelLANDxe", efi.GUID{0xd0, 0xa6, 0xc8, 0x16, 0x8a, 0xfe, 0x82, 0x40, 0xa2, 0x08, 0xcf, 0x89, 0xc4, 0x29, 0x04, 0x33}: "UefiSystemTableInfoGuid", efi.GUID{0xd0, 0xa9, 0x50, 0x86, 0x80, 0x3a, 0xf2, 0x43, 0x85, 0xd8, 0x6d, 0x10, 0xcd, 0xbf, 0x61, 0x1e}: "SuperMSmm", efi.GUID{0xd0, 0xad, 0xa4, 0x16, 0x11, 0xef, 0x86, 0x4c, 0xb1, 0x59, 0x88, 0xa2, 0xa8, 0xc4, 0x50, 0x1c}: "wifi_3bars", efi.GUID{0xd0, 0xbe, 0x8f, 0x4a, 0xbb, 0x78, 0x82, 0x43, 0x9c, 0x6d, 0xd1, 0x42, 0x91, 0x90, 0x00, 0x3a}: "CoreDefaultSettings", efi.GUID{0xd0, 0xc5, 0xaf, 0x64, 0xdf, 0x1d, 0x24, 0x47, 0xbe, 0x8f, 0xec, 0xec, 0xc0, 0x46, 0x8e, 0x77}: "AmdNbioSmm", efi.GUID{0xd0, 0xd9, 0x71, 0x76, 0xdb, 0x53, 0x73, 0x41, 0xaa, 0x69, 0x23, 0x27, 0xf2, 0x1f, 0x0b, 0xc7}: "EfiAuthenticationInfoProtocolGuid", efi.GUID{0xd0, 0xdf, 0xb6, 0xaf, 0x22, 0x8d, 0x31, 0x49, 0xbe, 0xe9, 0xb0, 0x8f, 0x38, 0x4c, 0xc1, 0xf7}: "LenovoCustomizedLogoSmm", efi.GUID{0xd0, 0xe2, 0x80, 0x89, 0x77, 0x6c, 0x3b, 0x42, 0x8e, 0x3a, 0x8d, 0x3d, 0x40, 0xd1, 0x0c, 0xbb}: "RTL8852BEWifiDriver", efi.GUID{0xd0, 0xed, 0x42, 0x79, 0x23, 0xc0, 0x57, 0x43, 0x93, 0xed, 0xf6, 0x62, 0x6d, 0x71, 0x1e, 0x9e}: "PeiIpmiBmcInitialize", efi.GUID{0xd0, 0xf0, 0xb2, 0x4f, 0x83, 0x71, 0xfc, 0x4b, 0x9e, 0x65, 0x11, 0xa4, 0x03, 0x18, 0x47, 0xd2}: "AmdCpmPlatformOscTableInstall", efi.GUID{0xd0, 0xfb, 0x7c, 0x96, 0x81, 0xdf, 0xea, 0x11, 0x8b, 0x6e, 0x08, 0x00, 0x20, 0x0c, 0x9a, 0x66}: "FlashPei", efi.GUID{0xd0, 0xfe, 0x18, 0x13, 0x65, 0x27, 0xb5, 0x42, 0x80, 0x3e, 0x32, 0x15, 0xa3, 0xc0, 0x93, 0xc5}: "AmiTseOemPortingVar27", efi.GUID{0xd1, 0x0e, 0xc5, 0xfd, 0xb8, 0xac, 0x48, 0x80, 0x87, 0x35, 0x80, 0x98, 0xb7, 0xa1, 0x3e, 0x5e}: "ApplePowerState", efi.GUID{0xd1, 0x12, 0xed, 0x71, 0x0b, 0x25, 0xfb, 0x42, 0x8c, 0x17, 0x10, 0xdc, 0xfa, 0x77, 0x17, 0x01}: "AmiLegacyInterrupt", efi.GUID{0xd1, 0x1a, 0x10, 0x30, 0x9e, 0xa9, 0x75, 0x41, 0x90, 0x7f, 0x7a, 0x8a, 0x56, 0x1a, 0x87, 0x50}: "FjNvramMerge", efi.GUID{0xd1, 0x1d, 0xb7, 0xbb, 0x93, 0xb9, 0x7c, 0x48, 0x83, 0x9e, 0x7a, 0x75, 0x36, 0xb4, 0x9e, 0x46}: "FjPowerButtonPei", efi.GUID{0xd1, 0x1e, 0x1d, 0x57, 0xd9, 0xc2, 0x8e, 0x41, 0x95, 0x3a, 0x24, 0x8e, 0xbc, 0x68, 0x70, 0x48}: "DellIdeSmm", efi.GUID{0xd1, 0x24, 0x1d, 0x00, 0xb1, 0x4a, 0x02, 0xb2, 0x42, 0xd1, 0x0f, 0xb9, 0xf4, 0xe4, 0xad, 0x36}: "BiosPowerOnPortingSmm", efi.GUID{0xd1, 0x24, 0xa8, 0x3e, 0xe3, 0x81, 0xf5, 0x4f, 0xbd, 0x43, 0xbb, 0x9c, 0x65, 0xdf, 0x7c, 0x46}: "AmiCsmStartedProtocolGuid", efi.GUID{0xd1, 0x25, 0x32, 0x30, 0x9d, 0x00, 0x78, 0x47, 0x8b, 0x48, 0xf7, 0x8a, 0x23, 0x55, 0x5c, 0x4d}: "SecurityIdeLate", efi.GUID{0xd1, 0x3b, 0x3f, 0x5a, 0xa6, 0xb7, 0x4b, 0x40, 0xa0, 0xf7, 0x28, 0x5e, 0x1b, 0x89, 0x8b, 0x00}: "DiskControllerSmbios", efi.GUID{0xd1, 0x42, 0xc2, 0xc3, 0x03, 0x01, 0x74, 0x4c, 0x9a, 0x19, 0x3c, 0x5c, 0x3b, 0x47, 0xeb, 0xce}: "DellBiosAttributesSmm", efi.GUID{0xd1, 0x46, 0x7c, 0xba, 0x5e, 0x9c, 0xc8, 0x4f, 0x94, 0x3d, 0x1a, 0x49, 0x1f, 0x23, 0xfe, 0x01}: "AmiIso9660MediaGuid", efi.GUID{0xd1, 0x49, 0x48, 0x6d, 0x04, 0xdc, 0x57, 0x4d, 0xbc, 0x90, 0x2e, 0x0b, 0x5c, 0xff, 0x18, 0x28}: "AmiPldmInterfaceBin", efi.GUID{0xd1, 0x4c, 0xeb, 0xde, 0x01, 0x0f, 0x61, 0x4f, 0x9f, 0x39, 0x0d, 0xec, 0x61, 0xe9, 0x09, 0xfe}: "RunTimeWDTDXE", efi.GUID{0xd1, 0x60, 0x5e, 0xa4, 0x19, 0xc7, 0xaa, 0x44, 0xb0, 0x7a, 0xaa, 0x77, 0x7f, 0x85, 0x90, 0x6d}: "PeiAtaControllerPpiGuid", efi.GUID{0xd1, 0x6d, 0xac, 0x13, 0xd0, 0x73, 0xd4, 0x11, 0xb0, 0x6b, 0x00, 0xaa, 0x00, 0xbd, 0x6d, 0xe7}: "EfiEbcProtocolGuid", efi.GUID{0xd1, 0x6e, 0x44, 0x5b, 0x0b, 0xe3, 0xaa, 0x4f, 0x87, 0x1a, 0x36, 0x54, 0xec, 0xa3, 0x60, 0x80}: "EfiIp4Config2ProtocolGuid", efi.GUID{0xd1, 0x75, 0x97, 0xf9, 0x6e, 0x1a, 0x55, 0x45, 0x98, 0xf2, 0x18, 0x39, 0x84, 0x03, 0xd1, 0xb2}: "FjRuntimeServicesTableRt", efi.GUID{0xd1, 0x77, 0xa7, 0xb7, 0xb6, 0x6e, 0x9e, 0x46, 0xad, 0x1f, 0x11, 0x65, 0xeb, 0x92, 0xb3, 0xff}: "DellPropertySmmProtocol", efi.GUID{0xd1, 0x7e, 0xb6, 0x2c, 0x98, 0x54, 0xaa, 0x45, 0x99, 0x71, 0x21, 0x49, 0x64, 0x50, 0x91, 0x95}: "SecurityEventPei", efi.GUID{0xd1, 0x8f, 0x81, 0x49, 0x13, 0x74, 0x71, 0x4c, 0x84, 0xcf, 0x6b, 0xfe, 0x67, 0x0c, 0x64, 0x96}: "PEbiosinterface", efi.GUID{0xd1, 0x90, 0x61, 0x31, 0x48, 0x5e, 0x15, 0x4c, 0xac, 0x72, 0x37, 0x53, 0x2f, 0x3a, 0x1e, 0xc1}: "LenovoSystemUsbDatabaseSmm", efi.GUID{0xd1, 0x91, 0x2b, 0xef, 0x47, 0x18, 0x88, 0x4d, 0x91, 0x15, 0x28, 0x35, 0xa0, 0xbe, 0xfb, 0xdc}: "MpmPei", efi.GUID{0xd1, 0x92, 0x5e, 0xdd, 0xac, 0xdd, 0xcb, 0x48, 0x90, 0x7a, 0x88, 0x2d, 0x86, 0x10, 0xe8, 0x9e}: "SavePegConfig", efi.GUID{0xd1, 0x9e, 0x84, 0xd0, 0x8c, 0xa8, 0xa6, 0x4b, 0xb1, 0xd6, 0xab, 0x50, 0xe2, 0x80, 0xb7, 0xa9}: "UsbCredentialProviderGuid", efi.GUID{0xd1, 0xa2, 0x68, 0xe2, 0xa2, 0xf8, 0xb4, 0x4e, 0x85, 0xb7, 0xb0, 0x52, 0xfe, 0xb7, 0x95, 0x74}: "CpuInitDxe", efi.GUID{0xd1, 0xd2, 0x5e, 0xc0, 0xde, 0x5d, 0x6e, 0x4b, 0xa1, 0xae, 0x0b, 0x30, 0x6a, 0xcb, 0x42, 0xbc}: "TrEEDxe", efi.GUID{0xd1, 0xe0, 0x24, 0xde, 0xea, 0xfa, 0x06, 0x49, 0x9c, 0xc8, 0xac, 0x00, 0xbe, 0x3d, 0xff, 0x3a}: "AmiIbbrOBBHobGuid", efi.GUID{0xd1, 0xe2, 0x8f, 0xe1, 0x32, 0xef, 0x8e, 0x4c, 0x89, 0x5a, 0xf0, 0x2c, 0x3c, 0x38, 0xfb, 0x19}: "DellPropertyAccessorProtocol", efi.GUID{0xd1, 0xe2, 0xb0, 0x54, 0xea, 0xf3, 0xd1, 0x46, 0x8d, 0xba, 0x36, 0x7a, 0x34, 0x78, 0x24, 0xef}: "OemWakeOnLanPolicy", efi.GUID{0xd1, 0xee, 0x4c, 0x37, 0x67, 0xad, 0xc0, 0x40, 0xb2, 0xc9, 0x3d, 0xbc, 0xc5, 0xa5, 0xd3, 0x0a}: "PwByPassSmm", efi.GUID{0xd1, 0xee, 0x84, 0xc3, 0x7a, 0xb1, 0xe4, 0x40, 0xb0, 0xc9, 0xbe, 0x86, 0xd8, 0xb4, 0xde, 0x40}: "KEMhResetBtnPei", efi.GUID{0xd1, 0xf1, 0xad, 0x6d, 0xcc, 0xd4, 0x10, 0x49, 0xbb, 0x6e, 0x82, 0xb1, 0xfd, 0x80, 0xff, 0x3d}: "EfiSmmPeiSmramMemoryReserveGuid", efi.GUID{0xd1, 0xf7, 0x62, 0x00, 0xdb, 0xf7, 0xfa, 0x44, 0xab, 0xee, 0xf7, 0xa3, 0xcc, 0x63, 0x6e, 0x0b}: "PhStallPpi", efi.GUID{0xd1, 0xfe, 0x5c, 0xc6, 0xa5, 0x8b, 0xd4, 0x48, 0xa4, 0x93, 0x9e, 0x12, 0xf1, 0x79, 0x52, 0xb0}: "FjGabiSettingsApiItemAccessSmm", efi.GUID{0xd2, 0x03, 0x03, 0x55, 0x33, 0xf0, 0x68, 0x44, 0x85, 0x7a, 0x44, 0x2c, 0x10, 0xe1, 0x99, 0xe9}: "LenovoDriveEraseDxe", efi.GUID{0xd2, 0x03, 0x0f, 0x5c, 0xc7, 0x13, 0x8c, 0x4c, 0xb9, 0x2e, 0x2e, 0xcc, 0x69, 0x2c, 0xa5, 0xc8}: "DfuMeFirmware", efi.GUID{0xd2, 0x06, 0x36, 0x0e, 0xc3, 0x1d, 0x6f, 0x4e, 0xbe, 0x65, 0x39, 0x49, 0x82, 0xa2, 0x65, 0x47}: "PlatformVirtualKeyboardProtocol", efi.GUID{0xd2, 0x06, 0x4f, 0xc7, 0x92, 0xed, 0x9b, 0x48, 0x87, 0x9c, 0xc0, 0xe4, 0x28, 0xa2, 0x21, 0x67}: "UefiRaid", efi.GUID{0xd2, 0x07, 0x18, 0x88, 0xd1, 0x98, 0xc9, 0x4e, 0xaf, 0xa0, 0x77, 0x46, 0xc4, 0x2f, 0x24, 0x49}: "PeiAmtStatusCodePpi", efi.GUID{0xd2, 0x0f, 0x26, 0x28, 0x5f, 0x97, 0xb4, 0x48, 0xb1, 0xa8, 0x8f, 0x79, 0x19, 0xf5, 0x57, 0x46}: "AmdOemRasBrhDxe", efi.GUID{0xd2, 0x13, 0x2c, 0x29, 0x05, 0xc0, 0x2d, 0x43, 0xbc, 0x17, 0xe9, 0x07, 0x01, 0xc8, 0xe8, 0x4a}: "FjGenericItemStorageDxe", efi.GUID{0xd2, 0x13, 0x31, 0x1a, 0xa2, 0x91, 0xfd, 0x41, 0xa8, 0x3f, 0xad, 0x5e, 0x6b, 0x90, 0xd4, 0x3d}: "AmdDashSmm", efi.GUID{0xd2, 0x14, 0x15, 0x4d, 0xde, 0xfb, 0xc6, 0x49, 0xb2, 0x0a, 0xa4, 0x02, 0x88, 0xa0, 0xd4, 0xaa}: "HstiIhvSmm", efi.GUID{0xd2, 0x30, 0x1c, 0x0a, 0x21, 0x78, 0xd2, 0x4f, 0xb3, 0xc1, 0xd2, 0x4f, 0xa4, 0xc8, 0x4b, 0x6a}: "DellCfgChangeReport", efi.GUID{0xd2, 0x37, 0xcb, 0x7b, 0x80, 0xd2, 0x3d, 0x45, 0xbc, 0x91, 0xe1, 0xe4, 0xe6, 0x20, 0x8a, 0x70}: "KEMhSmbEfi", efi.GUID{0xd2, 0x38, 0x5a, 0xfc, 0xae, 0xe0, 0xb7, 0x49, 0xa4, 0x90, 0xa1, 0xa8, 0xbc, 0xf5, 0x1d, 0x44}: "ColdBootLongRun", efi.GUID{0xd2, 0x38, 0xcc, 0x9a, 0x9b, 0x95, 0x0c, 0x49, 0x90, 0xea, 0x72, 0x3d, 0x9d, 0x90, 0x21, 0x08}: "AmdMemAm4SspPei", efi.GUID{0xd2, 0x39, 0x7d, 0x17, 0xb8, 0x43, 0xc8, 0x40, 0x9a, 0xe1, 0x3c, 0x51, 0x98, 0xd6, 0x94, 0x1e}: "PeiTcgPpiGuid", efi.GUID{0xd2, 0x3a, 0x63, 0x09, 0x5e, 0x2a, 0x62, 0x45, 0x90, 0xa8, 0x24, 0xc6, 0x73, 0xc4, 0x09, 0x7c}: "AmdMemFp8Pei", efi.GUID{0xd2, 0x3d, 0x50, 0x24, 0x92, 0x5a, 0xb8, 0x4d, 0x95, 0xb6, 0x0f, 0x0b, 0xf6, 0xfe, 0xa9, 0x7c}: "AmdNbioPcieDxe", efi.GUID{0xd2, 0x3f, 0xb5, 0x97, 0x4c, 0xa8, 0x69, 0x44, 0x80, 0x3f, 0xa1, 0x6d, 0x13, 0xaf, 0x14, 0x79}: "HeciSmmRuntimeDxe", efi.GUID{0xd2, 0x41, 0x9d, 0x82, 0xa5, 0x6c, 0x5b, 0x48, 0xa1, 0xa2, 0xd1, 0xb7, 0x96, 0x27, 0xab, 0xcd}: "EfiOpaSocketMapHob", efi.GUID{0xd2, 0x42, 0x1c, 0x6e, 0x8f, 0x27, 0x27, 0x42, 0xbe, 0xde, 0x54, 0x8c, 0xf3, 0x20, 0x66, 0x80}: "AmdMemoryHobInfoPeimBrh", efi.GUID{0xd2, 0x44, 0x40, 0x3a, 0x14, 0xf6, 0x24, 0x41, 0xa7, 0x72, 0x20, 0x7b, 0xcd, 0xbe, 0x3d, 0xb0}: "DellSbServicesDxe", efi.GUID{0xd2, 0x45, 0x2f, 0xee, 0xa4, 0x5b, 0x1e, 0x44, 0x8a, 0x1d, 0xaa, 0x22, 0xdf, 0xa3, 0xb6, 0xc5}: "RomImageMemoryHob", efi.GUID{0xd2, 0x46, 0xb3, 0x4b, 0x76, 0x80, 0x71, 0x46, 0x8b, 0xc9, 0x7b, 0x95, 0xcb, 0xb9, 0xa6, 0xdf}: "MonoStatusCode", efi.GUID{0xd2, 0x4c, 0xd9, 0x41, 0xb6, 0x35, 0x5a, 0x45, 0x82, 0x58, 0xd4, 0xe5, 0x13, 0x34, 0xaa, 0xdd}: "EfiIp4ProtocolGuid", efi.GUID{0xd2, 0x52, 0xc2, 0x0c, 0x06, 0xc1, 0x61, 0x46, 0xb5, 0xbd, 0x31, 0x47, 0xa4, 0xf8, 0x1f, 0x92}: "EfiPrint_2sProtocol", efi.GUID{0xd2, 0x5c, 0x14, 0x93, 0x23, 0x7b, 0x16, 0x45, 0xbb, 0x23, 0xe3, 0x38, 0xcb, 0x2d, 0x27, 0x48}: "HddIdentifyDxe", efi.GUID{0xd2, 0x63, 0x43, 0xf4, 0x7d, 0xe0, 0x2c, 0x4d, 0xac, 0xac, 0xdd, 0x73, 0xc4, 0x3f, 0x6e, 0x25}: "FspUpdSetupDxe", efi.GUID{0xd2, 0x69, 0x16, 0x87, 0x2b, 0xa1, 0x85, 0x47, 0x80, 0x49, 0x06, 0x04, 0x8e, 0x4a, 0x1c, 0x52}: "HpBlockingDriver", efi.GUID{0xd2, 0x75, 0x3c, 0x56, 0x5d, 0x04, 0xfd, 0x43, 0xa7, 0xc0, 0xa4, 0x72, 0xb0, 0xad, 0x02, 0x55}: "gear6", efi.GUID{0xd2, 0x75, 0x7a, 0xa6, 0xce, 0xcc, 0xc1, 0x49, 0x1b, 0xcd, 0x61, 0xc3, 0x10, 0x52, 0x7e, 0x89}: "AmdNbioBaseSspPei", efi.GUID{0xd2, 0x75, 0xf8, 0xaa, 0x68, 0x09, 0x85, 0x45, 0xa4, 0x0a, 0xb3, 0x5c, 0x9f, 0xe0, 0xca, 0xec}: "AodSmmZp", efi.GUID{0xd2, 0x79, 0xf7, 0x2e, 0x9a, 0xd0, 0x0c, 0x42, 0x8b, 0xda, 0x52, 0xb6, 0xc4, 0x30, 0xb5, 0x59}: "Armani_EcCommunicationDxe", efi.GUID{0xd2, 0x82, 0xef, 0x5d, 0xd7, 0x6e, 0xde, 0x47, 0xb0, 0xac, 0x11, 0xe5, 0x5b, 0xaf, 0xfb, 0x05}: "LpcFlashLibNull", efi.GUID{0xd2, 0x8a, 0x2d, 0xd5, 0x9a, 0xea, 0x0c, 0x47, 0x9e, 0x33, 0x82, 0x8f, 0xa5, 0x91, 0xab, 0x8d}: "AmiPeiHashInterfaceProtocolGuid", efi.GUID{0xd2, 0x8d, 0xfa, 0x73, 0x9a, 0x58, 0x4c, 0x42, 0x82, 0xeb, 0x2d, 0x36, 0x0f, 0x09, 0xd9, 0x00}: "HwmFanSmm", efi.GUID{0xd2, 0x94, 0x05, 0x80, 0xe7, 0x39, 0x88, 0x40, 0x9b, 0xdd, 0xd9, 0x79, 0x73, 0x7d, 0xee, 0xe1}: "SmbiosDataUpdateDxeCLX64L", efi.GUID{0xd2, 0x99, 0x90, 0x7e, 0xef, 0xf1, 0xf0, 0x45, 0x94, 0x4a, 0x7b, 0x7f, 0x24, 0x1a, 0x0a, 0xbf}: "StaticSkuDataDxeGlacier", efi.GUID{0xd2, 0x9a, 0xaa, 0xfc, 0xc1, 0xd6, 0x3e, 0x48, 0x8a, 0x24, 0x15, 0xbe, 0x21, 0x70, 0x4f, 0xad}: "CablesIdm", efi.GUID{0xd2, 0x9a, 0xbd, 0xff, 0xdb, 0xf1, 0x92, 0x4f, 0xa6, 0x49, 0xeb, 0x9e, 0xed, 0xea, 0x86, 0xb5}: "AmiHddSmartProtocolGuid", efi.GUID{0xd2, 0x9a, 0xef, 0x8e, 0x3e, 0x46, 0x5f, 0x42, 0xa4, 0xfe, 0x2f, 0x67, 0x83, 0xd6, 0xf9, 0x7e}: "GenericSio", efi.GUID{0xd2, 0xa0, 0xdf, 0x07, 0xc5, 0x2a, 0xab, 0x4c, 0xac, 0x14, 0x30, 0x5c, 0x62, 0x48, 0x87, 0xe4}: "PlatformTokenSpace", efi.GUID{0xd2, 0xa2, 0x21, 0xf3, 0x25, 0x18, 0x66, 0x48, 0x62, 0x15, 0xbe, 0xeb, 0xcb, 0xf7, 0x34, 0xb0}: "PurleyPciDxeInit", efi.GUID{0xd2, 0xb5, 0x11, 0x10, 0x1a, 0x26, 0x4f, 0x42, 0x97, 0x7c, 0xc8, 0xa4, 0xb3, 0x93, 0x53, 0xb8}: "StaticSkuDataDxeArcherCityModular", efi.GUID{0xd2, 0xbc, 0x24, 0xd0, 0xea, 0x59, 0xac, 0x48, 0xa1, 0x7f, 0xb3, 0x22, 0x1e, 0xc2, 0x3a, 0x11}: "Int15GetMisc", efi.GUID{0xd2, 0xc3, 0x8a, 0x6f, 0x4c, 0xed, 0x86, 0x43, 0x8f, 0xdb, 0x2e, 0xe9, 0x20, 0xab, 0x50, 0xb3}: "FchHuashanMultiFchDxe", efi.GUID{0xd2, 0xdb, 0x4f, 0x6b, 0xe1, 0x47, 0x09, 0x4a, 0xba, 0x8e, 0x8e, 0x04, 0x1f, 0x20, 0x8b, 0x95}: "PchUsb", efi.GUID{0xd2, 0xe2, 0xd8, 0x2a, 0x91, 0x2e, 0xd1, 0x4c, 0x95, 0xf5, 0xe7, 0x8f, 0xe5, 0xeb, 0xe3, 0x16}: "EfiUsbProtocolGuid", efi.GUID{0xd2, 0xe7, 0x91, 0xb0, 0xa0, 0x05, 0x98, 0x41, 0x94, 0xf0, 0x74, 0xb7, 0xb8, 0xc5, 0x54, 0x59}: "EfiFlashMapHobGuid", efi.GUID{0xd2, 0xe8, 0xa4, 0xeb, 0x58, 0x38, 0xec, 0x41, 0xa2, 0x81, 0x26, 0x47, 0xba, 0x96, 0x60, 0xd0}: "EfiDebugPortProtocolGuid", efi.GUID{0xd2, 0xe9, 0x47, 0x03, 0x78, 0x37, 0xdc, 0x46, 0xb8, 0xb5, 0xf1, 0x68, 0x7c, 0x70, 0x39, 0x73}: "FjWwanRfSettingUIDxe", efi.GUID{0xd2, 0xe9, 0xcd, 0xbc, 0xbd, 0xba, 0xf5, 0x44, 0xbb, 0x3f, 0xd7, 0xb1, 0x61, 0x74, 0xf6, 0x4b}: "AsfDxe", efi.GUID{0xd2, 0xef, 0xde, 0xec, 0x96, 0xc5, 0xb1, 0x4c, 0xaf, 0xdf, 0x65, 0x06, 0xf6, 0xc7, 0xce, 0x2b}: "D01VariableLock", efi.GUID{0xd2, 0xf5, 0xc8, 0x31, 0x58, 0xb5, 0xbe, 0x41, 0x99, 0x71, 0x30, 0xed, 0x8c, 0xb9, 0x90, 0xc6}: "FjGabiFlashCommon10GbeRegionCtrlSmm", efi.GUID{0xd3, 0x00, 0xfd, 0xa4, 0x1a, 0x82, 0x19, 0x45, 0x85, 0xbb, 0x2e, 0x19, 0x87, 0xa6, 0xf4, 0xe1}: "LenovoMx25L3206EflashPartDxe", efi.GUID{0xd3, 0x07, 0xfe, 0x44, 0x12, 0xc3, 0xd4, 0x4a, 0xb8, 0x92, 0x26, 0x9a, 0xb0, 0x69, 0xc8, 0xe1}: "BiosGuardSmm", efi.GUID{0xd3, 0x0e, 0x12, 0xfc, 0xe1, 0x40, 0xdc, 0x46, 0x8c, 0x9c, 0xaa, 0xe3, 0xca, 0x13, 0x9a, 0xcf}: "BasePerformanceLibNull", efi.GUID{0xd3, 0x16, 0x95, 0x5d, 0x49, 0xbc, 0x37, 0x43, 0x9f, 0xc7, 0x29, 0xdf, 0x35, 0x26, 0xec, 0x87}: "EfiPeiPlatformTypeLightningRidgeEX8S2NPpi", efi.GUID{0xd3, 0x19, 0xf2, 0xf5, 0x06, 0x70, 0x48, 0x46, 0xac, 0x8d, 0xd6, 0x1d, 0xfb, 0x7b, 0xc6, 0xad}: "FontPackageListGuid", efi.GUID{0xd3, 0x27, 0x52, 0x4a, 0xef, 0x0b, 0xaa, 0x4c, 0xac, 0xbd, 0xec, 0x84, 0x44, 0x6c, 0x5c, 0x6c}: "MiscGaIoDxe", efi.GUID{0xd3, 0x2b, 0xea, 0xcd, 0x25, 0xfc, 0x1c, 0x4c, 0xb9, 0x7c, 0xb3, 0x11, 0x86, 0x06, 0x49, 0x90}: "EfiBootLogoProtocolGuid", efi.GUID{0xd3, 0x32, 0x98, 0x22, 0x30, 0x7a, 0x36, 0x4b, 0xb8, 0x27, 0xf4, 0x0c, 0xb7, 0xd4, 0x54, 0x36}: "EfiPeiStatusCodePpiGuid", efi.GUID{0xd3, 0x33, 0x92, 0x6f, 0x4e, 0x7b, 0x7d, 0x4c, 0xb4, 0x1c, 0x26, 0x54, 0x12, 0xd4, 0xb7, 0xc3}: "ShmAcpi", efi.GUID{0xd3, 0x36, 0x21, 0x81, 0x3a, 0x4d, 0x3a, 0x43, 0x94, 0x18, 0x29, 0xbb, 0x9b, 0xf7, 0x8f, 0x6e}: "EdkiiSystemFmpCapsuleConfigFileGuid", efi.GUID{0xd3, 0x36, 0x42, 0x9b, 0xe5, 0x34, 0x36, 0x4e, 0xa7, 0xf9, 0x0a, 0xc8, 0xb7, 0x70, 0x51, 0x60}: "CnvVfrSetupMenu", efi.GUID{0xd3, 0x37, 0x59, 0xfb, 0x39, 0x78, 0xe4, 0x4c, 0x43, 0x2c, 0xd0, 0x25, 0x85, 0xd2, 0x22, 0xa2}: "CcgxFwUpdateSmm", efi.GUID{0xd3, 0x51, 0xb8, 0x30, 0xfa, 0x90, 0x80, 0x41, 0xa7, 0x02, 0x97, 0xf4, 0x11, 0x4f, 0x30, 0x76}: "FjGabiSettingsCoreAbstractionDxe", efi.GUID{0xd3, 0x52, 0xe3, 0x58, 0xac, 0x92, 0x8a, 0x49, 0xb7, 0x51, 0x09, 0x93, 0x35, 0xad, 0x5f, 0x77}: "FjIbvBiosPasswordsAbstractionSmm", efi.GUID{0xd3, 0x58, 0x41, 0x7f, 0x4d, 0x07, 0x6d, 0x45, 0x8c, 0xb2, 0x01, 0xf9, 0xc8, 0xf7, 0x9d, 0xaa}: "EfiTpmDeviceSelectedGuid", efi.GUID{0xd3, 0x5d, 0x83, 0xec, 0x0f, 0xfe, 0x7b, 0x61, 0xa6, 0x21, 0xb3, 0x50, 0xc3, 0xe1, 0x33, 0x88}: "EfiIp6ServiceBindingProtocolGuid", efi.GUID{0xd3, 0x5d, 0x91, 0xca, 0x9b, 0x4c, 0x71, 0x44, 0xad, 0xe1, 0x33, 0xdf, 0x66, 0x76, 0x5d, 0xfd}: "LenovoDashSupportDxe", efi.GUID{0xd3, 0x63, 0x70, 0x5e, 0x12, 0x0c, 0x5b, 0x47, 0x98, 0x35, 0x14, 0xab, 0xb1, 0xcb, 0x0e, 0xe9}: "SerialRecoveryDevicePpi", efi.GUID{0xd3, 0x68, 0xb1, 0x41, 0x13, 0x7c, 0x0c, 0x43, 0xbf, 0xee, 0xb4, 0x38, 0xc2, 0x79, 0x5c, 0x1f}: "SmmWhea", efi.GUID{0xd3, 0x6d, 0x20, 0x5d, 0x6a, 0x51, 0xdc, 0x47, 0xa1, 0xbc, 0x6d, 0xa2, 0x04, 0xaa, 0xbe, 0x08}: "AmiOnboardRaidController", efi.GUID{0xd3, 0x73, 0x33, 0x24, 0x83, 0xc1, 0x6a, 0x4f, 0x9a, 0xe4, 0xe3, 0x84, 0x19, 0xfc, 0xdc, 0xcc}: "WarmResetFlagSmi", efi.GUID{0xd3, 0x74, 0x05, 0x01, 0xa7, 0x9c, 0x65, 0x42, 0xa5, 0x36, 0xd1, 0x0e, 0x7a, 0x8c, 0xdc, 0xb0}: "OemSolPei", efi.GUID{0xd3, 0x78, 0x82, 0x38, 0x85, 0x7b, 0xf0, 0x42, 0xab, 0xa9, 0xfb, 0x4b, 0xfd, 0x69, 0xf5, 0xab}: "EfiBluetoothIoServiceBindingProtocolGuid", efi.GUID{0xd3, 0x81, 0x6f, 0xb1, 0x84, 0xa6, 0x9d, 0x43, 0xa7, 0x21, 0xf6, 0x17, 0xc9, 0xeb, 0x8e, 0xd8}: "FjCameraCapsulePei", efi.GUID{0xd3, 0x8a, 0xb5, 0x07, 0x7b, 0xeb, 0x33, 0x42, 0x90, 0x44, 0x9c, 0x9e, 0x65, 0xa4, 0x97, 0x3b}: "RZ616_MtkSuppDex", efi.GUID{0xd3, 0x90, 0xed, 0x52, 0xf8, 0xbb, 0xfb, 0x45, 0xb2, 0x4c, 0x51, 0x21, 0x65, 0x5d, 0x23, 0xb8}: "FjHddFeaturesDxe", efi.GUID{0xd3, 0x95, 0xac, 0x7b, 0xdf, 0x0d, 0xf3, 0x42, 0x9e, 0x24, 0x7c, 0x64, 0x49, 0x40, 0x37, 0x9a}: "BdsStringPackGuid", efi.GUID{0xd3, 0x98, 0xe6, 0x9d, 0x1e, 0x49, 0x9a, 0x4f, 0x84, 0x2d, 0x0d, 0x9e, 0x97, 0x85, 0xae, 0x18}: "PerfTunePei", efi.GUID{0xd3, 0xa1, 0xa6, 0xfc, 0xd3, 0x66, 0x38, 0x4e, 0xa7, 0x37, 0xe4, 0x5a, 0x58, 0xb1, 0xa5, 0xd0}: "OobInit", efi.GUID{0xd3, 0xb0, 0xe2, 0xba, 0x14, 0x4d, 0x7e, 0x46, 0xbd, 0x56, 0x90, 0x1e, 0x40, 0xeb, 0xa0, 0xbb}: "WlanLauncher", efi.GUID{0xd3, 0xb2, 0x11, 0x51, 0xf7, 0xb8, 0xbf, 0x45, 0x8a, 0x63, 0x2a, 0x16, 0x78, 0xf6, 0x7a, 0x41}: "PeiSmmControl", efi.GUID{0xd3, 0xb2, 0xc3, 0x2f, 0xba, 0x6e, 0xb0, 0x42, 0xa4, 0xa7, 0x14, 0xc7, 0xa8, 0x4b, 0x5d, 0x22}: "EslIp6ServiceGuid", efi.GUID{0xd3, 0xb4, 0x42, 0xcc, 0x20, 0x72, 0x8a, 0x42, 0x9b, 0x6e, 0xe4, 0x49, 0x71, 0xd0, 0x28, 0x09}: "DellSmmMfgPolicyProtocol", efi.GUID{0xd3, 0xbe, 0xd4, 0x93, 0xeb, 0xc6, 0xa1, 0x41, 0x9f, 0xdc, 0x72, 0x4f, 0xd3, 0xc5, 0xc1, 0x3e}: "DellFmpDock", efi.GUID{0xd3, 0xc0, 0xff, 0x4b, 0x33, 0x7e, 0x70, 0x43, 0x8a, 0x28, 0x32, 0x38, 0xfc, 0x33, 0xad, 0x2f}: "DataStorageSmm", efi.GUID{0xd3, 0xc2, 0xb6, 0x54, 0xa9, 0x79, 0x0c, 0x40, 0xa3, 0xf6, 0xd7, 0x37, 0xcb, 0xec, 0x63, 0x68}: "IioPlatformHooksPeim", efi.GUID{0xd3, 0xc7, 0xb0, 0x85, 0xad, 0x70, 0xb0, 0x4f, 0x95, 0x56, 0x64, 0x41, 0x9e, 0x7f, 0x71, 0x3c}: "FjAcpiSmiSmm", efi.GUID{0xd3, 0xd7, 0x47, 0xdb, 0x81, 0xfe, 0xd3, 0x11, 0x9a, 0x35, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d}: "EfiFileSystemVolumeLabelInfoIdGuid", efi.GUID{0xd3, 0xde, 0x55, 0x02, 0x9c, 0xbf, 0x55, 0x41, 0x8d, 0xdb, 0x6e, 0x86, 0x09, 0xee, 0x04, 0x82}: "AmdGopPlatformToDriver", efi.GUID{0xd3, 0xdf, 0x1f, 0xe0, 0xc8, 0x48, 0x2c, 0x43, 0x95, 0x55, 0x44, 0x09, 0xdd, 0xbc, 0x6c, 0x6a}: "AmiFlashLibDxe", efi.GUID{0xd3, 0xf0, 0xb9, 0x3e, 0xd0, 0x40, 0x5b, 0x43, 0xb6, 0x92, 0x80, 0x91, 0x51, 0x80, 0x7f, 0xf4}: "TCM_MPDriver", efi.GUID{0xd3, 0xf3, 0xa3, 0x59, 0x73, 0xdd, 0xe7, 0x47, 0x96, 0x88, 0xe9, 0x6c, 0x1a, 0x6f, 0x50, 0xd1}: "DellRecoverySiPei", efi.GUID{0xd3, 0xfd, 0xc5, 0xf4, 0x9a, 0xb9, 0x29, 0x42, 0x9e, 0x0b, 0xdb, 0x7a, 0x09, 0xe6, 0x73, 0x93}: "LegacyUsbLan", efi.GUID{0xd4, 0x06, 0xd4, 0x3d, 0xc9, 0x5e, 0x98, 0x41, 0x99, 0x07, 0xf6, 0x74, 0xe6, 0x0b, 0x29, 0x94}: "BaseTraceHubInitLibNull", efi.GUID{0xd4, 0x12, 0xf3, 0x10, 0x25, 0x4a, 0x75, 0x4d, 0xa1, 0xf3, 0x1a, 0x26, 0x4a, 0xdc, 0xdb, 0xcf}: "DellSoftTAALoadDefault", efi.GUID{0xd4, 0x16, 0xa0, 0x74, 0x4b, 0x4e, 0xb5, 0x45, 0xae, 0x97, 0x4e, 0x6e, 0x33, 0xd6, 0x51, 0x25}: "LenovoBlockPowerButtonDxe", efi.GUID{0xd4, 0x19, 0x1f, 0x64, 0x65, 0xbd, 0x5f, 0x4d, 0x91, 0x8c, 0x2d, 0x53, 0xf3, 0xd4, 0x97, 0x07}: "FJPBA_64", efi.GUID{0xd4, 0x20, 0x1e, 0x2f, 0xb6, 0x17, 0x4a, 0x43, 0x97, 0x4b, 0xcf, 0xae, 0x19, 0x06, 0x2c, 0xc2}: "DellMemorySlotConfigDxe", efi.GUID{0xd4, 0x21, 0x8a, 0xe1, 0x4b, 0x96, 0x74, 0x49, 0x99, 0x2a, 0x2a, 0x2f, 0xef, 0x11, 0xe6, 0x43}: "WOSKDxe", efi.GUID{0xd4, 0x2a, 0xd7, 0x10, 0xd5, 0xf4, 0x35, 0x4f, 0xa5, 0xa3, 0x00, 0x1f, 0x6e, 0xd8, 0x1e, 0x1e}: "DxeSerialTextOut", efi.GUID{0xd4, 0x40, 0xc0, 0x18, 0xe4, 0x15, 0x48, 0x41, 0xb7, 0xb3, 0x58, 0x27, 0x64, 0x71, 0x0b, 0xbc}: "FprValidityRaptorDriver", efi.GUID{0xd4, 0x40, 0xfa, 0xa2, 0xa7, 0x68, 0x4f, 0x4a, 0x94, 0x46, 0x7a, 0xcd, 0x93, 0xfd, 0x23, 0x91}: "UsbDebugCard", efi.GUID{0xd4, 0x46, 0x1e, 0x29, 0x63, 0xca, 0x33, 0x4d, 0x98, 0x57, 0x13, 0x97, 0xc9, 0xad, 0x7c, 0x0d}: "LegacySmmSredir", efi.GUID{0xd4, 0x47, 0x64, 0xf6, 0xa6, 0x75, 0x3e, 0x46, 0xa8, 0x19, 0x07, 0x7f, 0x2d, 0xda, 0x05, 0xe9}: "EfiKmsFormatRsasha12048Guid", efi.GUID{0xd4, 0x48, 0x38, 0x5e, 0xb5, 0x0d, 0xc0, 0x4f, 0x97, 0x29, 0x3f, 0x35, 0x3d, 0x4f, 0x87, 0x9f}: "EfiLegacySpiSmmFlashProtocolGuid", efi.GUID{0xd4, 0x48, 0x45, 0xba, 0x07, 0xb2, 0x68, 0x4f, 0xb1, 0xd6, 0x10, 0xac, 0x7f, 0x9c, 0xf1, 0xc8}: "HddPasswordPei", efi.GUID{0xd4, 0x4e, 0x57, 0x35, 0x11, 0xe0, 0x40, 0x4f, 0x9f, 0xec, 0x69, 0x41, 0xc3, 0x9c, 0xb5, 0x49}: "OemPDFWUpdateFlagClean", efi.GUID{0xd4, 0x53, 0xee, 0xb0, 0x49, 0xa0, 0x79, 0x4a, 0xb2, 0xff, 0x19, 0xd9, 0xfa, 0xef, 0xaa, 0x94}: "EcpPeiPciCfgPpiGuid", efi.GUID{0xd4, 0x54, 0x2d, 0xff, 0x55, 0x5c, 0x06, 0x4c, 0x85, 0x49, 0xc3, 0x62, 0x7c, 0xb8, 0xb9, 0x95}: "EfiNbErrorLogDispatchProtocol", efi.GUID{0xd4, 0x54, 0x8f, 0x07, 0x22, 0xcc, 0x48, 0x40, 0x9e, 0x94, 0x87, 0x9c, 0x21, 0x4d, 0x56, 0x2f}: "DefaultFvPadFileNameGuid", efi.GUID{0xd4, 0x64, 0x16, 0x15, 0x01, 0x60, 0x8f, 0x47, 0x8c, 0x97, 0xc5, 0x14, 0x20, 0xfc, 0x2b, 0x75}: "FchI2cMasterDxe", efi.GUID{0xd4, 0x69, 0x35, 0x6d, 0xe5, 0x85, 0x43, 0x49, 0xae, 0x46, 0xee, 0x67, 0xa6, 0xe1, 0xab, 0x5a}: "EfiTelnetServerProtocol", efi.GUID{0xd4, 0x91, 0x0c, 0x7c, 0xdf, 0x63, 0xb4, 0x4a, 0xad, 0x2e, 0xb0, 0x1c, 0x6d, 0xf3, 0xe0, 0x7b}: "OemStandaloneDxe", efi.GUID{0xd4, 0x9b, 0x0f, 0x4e, 0x38, 0xe3, 0x26, 0x4b, 0x84, 0x3e, 0xbd, 0x3a, 0xd9, 0xb2, 0x83, 0x7b}: "PRKeyGuid", efi.GUID{0xd4, 0xa5, 0x63, 0x4b, 0x08, 0xcb, 0xcd, 0x47, 0xaf, 0xd9, 0xbe, 0xa3, 0x3a, 0x30, 0xf3, 0x13}: "CrashLogDxe", efi.GUID{0xd4, 0xa5, 0x63, 0x4b, 0x09, 0xcb, 0xcd, 0x47, 0xaf, 0xd9, 0xbe, 0xa4, 0x4a, 0x30, 0xf3, 0x15}: "PopUpRework", efi.GUID{0xd4, 0xa7, 0x59, 0x74, 0x33, 0x65, 0x80, 0x44, 0xbb, 0xa7, 0x79, 0xe2, 0x5a, 0x44, 0x43, 0xc9}: "AmiTseDriverHealth", efi.GUID{0xd4, 0xab, 0x20, 0x68, 0x92, 0xa2, 0x17, 0x48, 0x91, 0x47, 0xd9, 0x1d, 0xc8, 0xc5, 0x35, 0x42}: "EfiPlatformErrorHandlingProtocol", efi.GUID{0xd4, 0xad, 0x17, 0xaa, 0x6c, 0x75, 0x0d, 0x46, 0x94, 0xb8, 0x43, 0x88, 0xd7, 0xfb, 0x3e, 0x59}: "EdkiiPlatformBootManagerProtocol", efi.GUID{0xd4, 0xae, 0x0a, 0x9c, 0xc5, 0x74, 0x43, 0x40, 0xb4, 0x17, 0xa3, 0x22, 0x38, 0x14, 0xce, 0x76}: "ArmPlatformTokenSpaceGuid", efi.GUID{0xd4, 0xae, 0x8d, 0x18, 0x9d, 0x93, 0xaa, 0x4f, 0x9f, 0x47, 0xf0, 0x1d, 0x5c, 0x16, 0xdd, 0x82}: "H19ErrorLog", efi.GUID{0xd4, 0xdb, 0xbe, 0xbf, 0x7e, 0x1b, 0xf5, 0x42, 0xa5, 0x28, 0x43, 0x51, 0xe8, 0x60, 0xf1, 0x20}: "S3SupportSmm", efi.GUID{0xd4, 0xdf, 0xa3, 0xed, 0xc8, 0x83, 0x09, 0x4e, 0xaf, 0x09, 0x56, 0xc4, 0x17, 0xfd, 0x3c, 0xc9}: "SetupConfigUpdateDxeEldorado", efi.GUID{0xd4, 0xe4, 0x24, 0x8b, 0x4c, 0xc8, 0xfc, 0x4f, 0x81, 0xe5, 0xd3, 0xea, 0xcc, 0x3f, 0x08, 0xdd}: "ApplePlatformInfoDB", efi.GUID{0xd4, 0xe5, 0xfa, 0x8d, 0x0e, 0xb5, 0x10, 0x4c, 0x96, 0xe6, 0xf2, 0xc2, 0x66, 0xca, 0xcb, 0xb6}: "VideoRom", efi.GUID{0xd4, 0xea, 0x09, 0xbc, 0x94, 0x80, 0x2d, 0x43, 0xa4, 0xc8, 0x38, 0x1f, 0x87, 0xd5, 0xf5, 0x31}: "MpmSerialIoDxe", efi.GUID{0xd4, 0xef, 0x22, 0x17, 0xf0, 0xb7, 0xe8, 0x41, 0xad, 0x21, 0x0d, 0xa8, 0xfd, 0x62, 0x97, 0xa3}: "AmtLockUsbConInDxe", efi.GUID{0xd4, 0xf6, 0x8e, 0x92, 0xbc, 0x72, 0x86, 0x46, 0xb5, 0x7b, 0x1e, 0xeb, 0x6a, 0xbd, 0x4f, 0x93}: "AcpiReset", efi.GUID{0xd4, 0xf9, 0x7a, 0xf2, 0xad, 0x39, 0x08, 0x4d, 0x85, 0x6d, 0xc1, 0x15, 0xee, 0x4a, 0xad, 0x40}: "EfiPlatformTypeNeonCityFpgaProtocol", efi.GUID{0xd4, 0xfa, 0xb4, 0x50, 0x0d, 0x9d, 0x0b, 0x44, 0x81, 0x2c, 0xd8, 0xe3, 0xec, 0x21, 0x24, 0x4d}: "XhciHandlerCommon", efi.GUID{0xd4, 0xfd, 0xc1, 0x8f, 0x76, 0x38, 0x9b, 0x44, 0xa4, 0x1c, 0x6a, 0x78, 0x84, 0x95, 0xfc, 0x78}: "BiosAttributesMgr2Dxe", efi.GUID{0xd5, 0x02, 0x7f, 0x65, 0x9b, 0x96, 0x2f, 0x40, 0xab, 0xae, 0xe3, 0xb3, 0x54, 0xd7, 0x21, 0xd9}: "WifiProfileSyncDxe", efi.GUID{0xd5, 0x03, 0x73, 0x90, 0x4d, 0x39, 0x7c, 0x4e, 0xa4, 0x30, 0x7b, 0x6a, 0x76, 0x4b, 0xdc, 0x3c}: "AmdNbioPcieDxe", efi.GUID{0xd5, 0x08, 0xab, 0x5c, 0x8f, 0xad, 0x8b, 0x4d, 0xb8, 0x28, 0xd1, 0x7a, 0x8d, 0x9f, 0xe9, 0x77}: "TrEEPlatformDxe", efi.GUID{0xd5, 0x0e, 0x44, 0xc5, 0xa4, 0x9b, 0xbe, 0x4a, 0xba, 0xf6, 0xf4, 0x54, 0x68, 0x48, 0x1d, 0xcd}: "CbsSetupDxeSTXH", efi.GUID{0xd5, 0x11, 0xa6, 0xd0, 0x9d, 0x52, 0xff, 0x45, 0x87, 0x14, 0x37, 0x4e, 0x83, 0x33, 0x37, 0xd8}: "Npce285xFlashDxe", efi.GUID{0xd5, 0x19, 0x53, 0xd5, 0xdc, 0x6e, 0xe2, 0x43, 0x98, 0x5b, 0xf6, 0x56, 0xe5, 0xb5, 0x15, 0x3c}: "AmdFabricPhxDxe", efi.GUID{0xd5, 0x1a, 0xb0, 0x02, 0x59, 0x7e, 0xe8, 0x43, 0xa6, 0xd8, 0x23, 0x81, 0x80, 0x61, 0x3a, 0x5a}: "EmuVariableRuntimeDxe", efi.GUID{0xd5, 0x21, 0xb6, 0xb1, 0x9c, 0xf1, 0xa5, 0x41, 0x83, 0x0b, 0xd9, 0x15, 0x2c, 0x69, 0xaa, 0xe0}: "FdtTableGuid", efi.GUID{0xd5, 0x23, 0x88, 0x0c, 0xfb, 0x93, 0x5c, 0x48, 0xaa, 0xfa, 0xfa, 0x7b, 0x6b, 0xf0, 0xa2, 0x7f}: "CompalEepromSmm", efi.GUID{0xd5, 0x28, 0x3f, 0x9b, 0xa6, 0x10, 0xc8, 0x46, 0xba, 0x72, 0xbd, 0x40, 0xb8, 0x47, 0xa7, 0x1a}: "AmiTcgPlatformPeiAfterMem", efi.GUID{0xd5, 0x28, 0x56, 0x9e, 0xd5, 0xec, 0xa2, 0x41, 0x86, 0x8b, 0x99, 0xeb, 0x93, 0x3a, 0x32, 0x6e}: "AhciRom", efi.GUID{0xd5, 0x2c, 0xde, 0x77, 0xb8, 0x67, 0x49, 0x47, 0xa8, 0xef, 0x7e, 0x26, 0xef, 0xfc, 0x07, 0xaf}: "CbsSetupDxeBRH", efi.GUID{0xd5, 0x2d, 0x88, 0xde, 0x97, 0xb7, 0x2c, 0x4e, 0xa8, 0xbe, 0xc6, 0x36, 0x7b, 0xcb, 0x4a, 0x23}: "EpscHwDeviceId", efi.GUID{0xd5, 0x2f, 0x6a, 0x10, 0xff, 0x11, 0xea, 0x42, 0xaf, 0xba, 0xb4, 0x96, 0x9a, 0x70, 0x26, 0x16}: "BaseOobLibrary", efi.GUID{0xd5, 0x31, 0x42, 0x97, 0x4b, 0xed, 0xd1, 0x44, 0x88, 0x70, 0xce, 0x51, 0x5c, 0xc1, 0x4d, 0x68}: "FlashUpdate", efi.GUID{0xd5, 0x39, 0x9a, 0x2a, 0xd8, 0x95, 0x2e, 0x4e, 0x97, 0x93, 0xbf, 0xaa, 0xf0, 0xb6, 0x82, 0x0c}: "EarlySetPlatformHardwareSwitchPei", efi.GUID{0xd5, 0x3c, 0x5b, 0xfe, 0x09, 0x34, 0x25, 0x42, 0x9d, 0x79, 0x57, 0x91, 0x08, 0x8c, 0x02, 0xc8}: "RtkUndiDxe", efi.GUID{0xd5, 0x59, 0x87, 0x2c, 0x2d, 0x5c, 0xef, 0x66, 0x92, 0x5f, 0xb6, 0x6c, 0x10, 0x19, 0x57, 0xe2}: "EfiIp6ProtocolGuid", efi.GUID{0xd5, 0x5f, 0xa0, 0x21, 0x4a, 0xdb, 0xfc, 0x4c, 0xb8, 0x4b, 0xeb, 0x0d, 0xbb, 0x56, 0x99, 0x34}: "IconGenericCD", efi.GUID{0xd5, 0x66, 0x2a, 0xc3, 0xb7, 0xd8, 0x40, 0x26, 0xb7, 0x68, 0x08, 0x2c, 0x8f, 0x08, 0x3c, 0x37}: "ThunkPpiToProtocolPei", efi.GUID{0xd5, 0x66, 0xce, 0xa9, 0x37, 0x6d, 0x1e, 0x45, 0xa9, 0xbf, 0xf5, 0x8f, 0x7a, 0x0b, 0x3c, 0xc2}: "ASM1061_DXE", efi.GUID{0xd5, 0x69, 0xe5, 0x27, 0xfc, 0x0a, 0x8f, 0x4d, 0x8c, 0x90, 0x78, 0x3a, 0xc4, 0xa3, 0x18, 0xab}: "SaAcpiTables", efi.GUID{0xd5, 0x79, 0x0a, 0xe6, 0x9b, 0xdc, 0xf1, 0x47, 0x87, 0xd3, 0x51, 0xbf, 0x69, 0x7b, 0x61, 0x21}: "CpuPei", efi.GUID{0xd5, 0x7d, 0xe1, 0xb6, 0xa0, 0x5c, 0x3a, 0x4e, 0x85, 0x8c, 0xa1, 0x43, 0x45, 0xae, 0x0b, 0x83}: "SwSmi534D0040", efi.GUID{0xd5, 0x82, 0x8f, 0x9a, 0xb1, 0x39, 0xda, 0x48, 0x92, 0xdc, 0xa2, 0x2d, 0xa8, 0x83, 0x4d, 0xf6}: "MeSsdtAcpiTableStorage", efi.GUID{0xd5, 0x89, 0xc1, 0xd4, 0x2a, 0x00, 0x6b, 0x4e, 0x96, 0xc1, 0x9c, 0x9e, 0x87, 0x7d, 0x23, 0x0b}: "SmbiosType141", efi.GUID{0xd5, 0x8a, 0x40, 0x62, 0xac, 0x4e, 0x2b, 0x43, 0xab, 0x9b, 0xc4, 0xb8, 0x5b, 0xfa, 0xed, 0x02}: "DxeIpmiLibIpmiProtocol", efi.GUID{0xd5, 0x8f, 0x19, 0x22, 0x35, 0x48, 0x42, 0x48, 0xbf, 0x31, 0xeb, 0x95, 0x7c, 0x7d, 0xd7, 0x0d}: "GetNetByAddr", efi.GUID{0xd5, 0xa0, 0x93, 0x35, 0x52, 0xbd, 0xa0, 0x43, 0x80, 0x8e, 0xcb, 0xff, 0x5e, 0xce, 0x24, 0x77}: "SecureWipeLoader", efi.GUID{0xd5, 0xa6, 0x8c, 0xe0, 0x02, 0x8d, 0xae, 0x43, 0xab, 0xb1, 0x95, 0x2c, 0xc7, 0x87, 0xc9, 0x33}: "PeiDefaultVbtGuid", efi.GUID{0xd5, 0xaa, 0x6d, 0x46, 0x60, 0x47, 0x6e, 0x4f, 0x9a, 0x7f, 0xce, 0xbe, 0x84, 0x55, 0x39, 0x3e}: "FjPostScreenPostError", efi.GUID{0xd5, 0xad, 0x8b, 0x0a, 0xb8, 0x03, 0x19, 0x4d, 0xb1, 0x28, 0x7b, 0x8f, 0x0e, 0xda, 0xa5, 0x96}: "EfiConfigKeywordHandlerProtocolGuid", efi.GUID{0xd5, 0xb5, 0x57, 0x1d, 0xb4, 0xba, 0x2b, 0x4d, 0xb7, 0xeb, 0x0e, 0xb4, 0x1d, 0x7b, 0x18, 0x9c}: "LibGlob", efi.GUID{0xd5, 0xb9, 0x35, 0xf0, 0x4f, 0x74, 0xcb, 0x4f, 0x92, 0x83, 0xba, 0xb4, 0xfa, 0xd9, 0xfa, 0xe8}: "FjBeepIfNoGraphic", efi.GUID{0xd5, 0xcd, 0x8d, 0xed, 0x37, 0xd0, 0x1f, 0x4b, 0x98, 0xdd, 0xbd, 0xfd, 0xad, 0x4d, 0xd7, 0xdd}: "BatteryState4", efi.GUID{0xd5, 0xe4, 0x98, 0xde, 0x9b, 0x10, 0xfc, 0x48, 0xb8, 0x8d, 0x98, 0x0e, 0x97, 0xd8, 0xb9, 0x3a}: "ArmaniPei", efi.GUID{0xd5, 0xe4, 0xd2, 0xcb, 0x68, 0x70, 0xf5, 0x4f, 0xb4, 0x62, 0x98, 0x22, 0xb4, 0xad, 0x8d, 0x60}: "VariableRuntimeDxe", efi.GUID{0xd5, 0xe7, 0xd1, 0x6b, 0x34, 0x82, 0x94, 0x48, 0x95, 0x1f, 0xfe, 0xe3, 0x90, 0xc2, 0xeb, 0x6e}: "FchSmmDiagDispatcher", efi.GUID{0xd5, 0xe8, 0x5b, 0xa4, 0x88, 0xb9, 0x70, 0x4f, 0x9f, 0x16, 0x8b, 0xfb, 0xc6, 0x88, 0x46, 0x69}: "PchInitSmm", efi.GUID{0xd5, 0xea, 0xcf, 0x59, 0xec, 0xde, 0x47, 0x4f, 0xb9, 0xa5, 0x22, 0x2c, 0x25, 0x63, 0x32, 0x83}: "FjGabiFlashDescriptorSmmProtocol", efi.GUID{0xd5, 0xef, 0x12, 0x18, 0xfb, 0x0d, 0xd7, 0x44, 0x9a, 0xd6, 0x74, 0xfc, 0xbb, 0x33, 0xb1, 0x92}: "UiAppWrapper", efi.GUID{0xd5, 0xf0, 0x17, 0x13, 0x42, 0x78, 0x5c, 0x47, 0xb1, 0xca, 0x6e, 0xdc, 0x20, 0xdc, 0xbe, 0x7d}: "HashLibTpm2", efi.GUID{0xd5, 0xf0, 0x85, 0x9e, 0x85, 0x51, 0x2b, 0x48, 0x8d, 0x50, 0x56, 0x71, 0x30, 0x7f, 0xea, 0x80}: "AppleDiagnosticVault", efi.GUID{0xd5, 0xf2, 0x2b, 0xb1, 0xa7, 0x05, 0xac, 0x4c, 0x82, 0x10, 0x0f, 0xed, 0x4b, 0x3c, 0xd6, 0x7d}: "AmiCpuPeiPreMem", efi.GUID{0xd6, 0x0e, 0x9d, 0xea, 0x8b, 0xa1, 0x52, 0x40, 0xb5, 0x26, 0x6a, 0x94, 0xf4, 0x4d, 0x51, 0x70}: "FvbReady", efi.GUID{0xd6, 0x0f, 0x09, 0xb0, 0xad, 0x3d, 0x9c, 0x4a, 0xb6, 0x38, 0x83, 0x07, 0x7b, 0x75, 0x13, 0x53}: "HpIciclePei", efi.GUID{0xd6, 0x14, 0x7f, 0x43, 0xae, 0x97, 0xa8, 0x4d, 0xa5, 0x98, 0x2e, 0x65, 0x79, 0x1e, 0x69, 0x44}: "SplashBarDxe", efi.GUID{0xd6, 0x19, 0x29, 0xc8, 0xfd, 0x33, 0xed, 0x43, 0x80, 0x0c, 0x63, 0x5a, 0x33, 0x69, 0xd0, 0xf3}: "SystemDiagnosticSummaryScreenDxe", efi.GUID{0xd6, 0x20, 0xca, 0x99, 0xf8, 0x3b, 0x90, 0x4e, 0xa4, 0x30, 0xc6, 0xfd, 0xcc, 0x5a, 0x8e, 0x80}: "OemRaidDiskInfo", efi.GUID{0xd6, 0x29, 0x2a, 0x23, 0x72, 0x87, 0x1c, 0x47, 0xa2, 0x2c, 0x3c, 0x87, 0x45, 0xee, 0x59, 0xa5}: "GpioV2ProtocolInitSmm", efi.GUID{0xd6, 0x2a, 0xaf, 0xee, 0x6b, 0x2a, 0x9e, 0x44, 0xa1, 0x16, 0x3a, 0xdd, 0x82, 0xca, 0xde, 0x27}: "EcBlinkDxe", efi.GUID{0xd6, 0x30, 0xaf, 0xb6, 0xda, 0x3e, 0x72, 0x4c, 0x93, 0x52, 0x43, 0xdc, 0x3d, 0xc8, 0x27, 0x52}: "SioSxLedControl", efi.GUID{0xd6, 0x39, 0x52, 0xb1, 0x01, 0x6a, 0x08, 0x48, 0xa0, 0xf7, 0xb7, 0xf2, 0x0f, 0x07, 0x35, 0x55}: "Ax88772", efi.GUID{0xd6, 0x3a, 0x84, 0x1e, 0x37, 0xe2, 0xfc, 0x42, 0xbd, 0xa2, 0xde, 0x78, 0x54, 0x2e, 0x16, 0xdd}: "SstSpiFlash", efi.GUID{0xd6, 0x42, 0x08, 0xc5, 0x84, 0xb2, 0x3d, 0x4f, 0x90, 0x4b, 0xe2, 0xdc, 0x83, 0xe0, 0x0a, 0xf8}: "EarlyConsoleOutInterfacePei", efi.GUID{0xd6, 0x4a, 0xeb, 0x96, 0x2a, 0xa3, 0xd4, 0x11, 0xbc, 0xfd, 0x00, 0x80, 0xc7, 0x3c, 0x88, 0x81}: "EfiWinNtIoProtocolGuid", efi.GUID{0xd6, 0x52, 0x48, 0x3c, 0x7b, 0xd4, 0x46, 0x4f, 0xb0, 0x5e, 0xb5, 0xed, 0xc1, 0xaa, 0x43, 0x0a}: "TdthiProtocol", efi.GUID{0xd6, 0x55, 0x75, 0x98, 0x5d, 0x59, 0xfa, 0x4c, 0xb8, 0x95, 0x59, 0xb8, 0x93, 0x68, 0xbd, 0x4d}: "IntelVTdDxe", efi.GUID{0xd6, 0x57, 0xa6, 0xc3, 0xd4, 0x5f, 0xac, 0x4b, 0xbe, 0xde, 0x0e, 0xf6, 0x13, 0x75, 0x08, 0x70}: "CrashLogVariableUpdateDxe", efi.GUID{0xd6, 0x5b, 0x6c, 0x66, 0x14, 0xfd, 0xa8, 0x45, 0xa6, 0x39, 0xe3, 0x82, 0xa7, 0xe1, 0xba, 0xa2}: "OemNVMEGen5", efi.GUID{0xd6, 0x5e, 0x0b, 0xbd, 0x8c, 0x46, 0x72, 0x43, 0xae, 0x52, 0x47, 0xba, 0x08, 0xf8, 0x1a, 0x1f}: "RepSetHandler", efi.GUID{0xd6, 0x65, 0x79, 0x76, 0x5a, 0xf3, 0xa9, 0x41, 0x8b, 0xe4, 0x69, 0x5e, 0x92, 0xc3, 0x2b, 0x47}: "CapsuleIFWUSmm", efi.GUID{0xd6, 0x68, 0x2f, 0x2b, 0xd2, 0x0c, 0xcf, 0x44, 0x8e, 0x8b, 0xbb, 0xa2, 0x0b, 0x1b, 0x5b, 0x75}: "EfiUsbIoProtocolGuid", efi.GUID{0xd6, 0x73, 0xe1, 0x21, 0x21, 0xc2, 0xee, 0x48, 0xa1, 0x8f, 0xb7, 0x3d, 0x98, 0x10, 0xfb, 0xf6}: "AsusApmPei", efi.GUID{0xd6, 0x79, 0x02, 0x27, 0x54, 0x25, 0xbe, 0x47, 0x97, 0xd0, 0x6a, 0xe5, 0xad, 0x18, 0xb9, 0x73}: "OemEeprom", efi.GUID{0xd6, 0x7a, 0x5a, 0x53, 0x04, 0xc2, 0xb4, 0x49, 0xb7, 0x62, 0x4b, 0x32, 0xbf, 0x4e, 0xd3, 0x14}: "PchInitDxeCnl", efi.GUID{0xd6, 0x7d, 0xc3, 0xa6, 0x83, 0x0d, 0x27, 0x41, 0xb1, 0xe8, 0xa1, 0xe6, 0x00, 0xa7, 0x97, 0xbd}: "HPWMIDxe", efi.GUID{0xd6, 0x8e, 0x9e, 0xf1, 0x2b, 0x44, 0x94, 0x41, 0xaf, 0x8e, 0xc9, 0x14, 0x35, 0xe3, 0x63, 0x20}: "SmcTpmProvisionDxe", efi.GUID{0xd6, 0x95, 0xbf, 0xaa, 0x0c, 0xf4, 0x5f, 0x40, 0x83, 0x60, 0x6a, 0x59, 0x79, 0x4b, 0x80, 0x40}: "BasePciSegmentLibPci", efi.GUID{0xd6, 0x9e, 0x0f, 0x35, 0x6c, 0x20, 0x88, 0x42, 0xbd, 0xd1, 0x8b, 0xad, 0x8c, 0x05, 0x31, 0x12}: "DellServiceApp", efi.GUID{0xd6, 0xa0, 0x15, 0xad, 0xec, 0x8b, 0xcf, 0x4a, 0xa0, 0x73, 0xd0, 0x1d, 0xe7, 0x7e, 0x2d, 0x88}: "EfiVTUTF8Guid", efi.GUID{0xd6, 0xa3, 0x68, 0x65, 0x5f, 0x01, 0x4a, 0x4b, 0x9c, 0x89, 0x1d, 0x14, 0x63, 0x14, 0x13, 0x0a}: "EfiSmmBaseThunkCommunicationGuid", efi.GUID{0xd6, 0xb8, 0x41, 0xa0, 0x17, 0x3f, 0x82, 0x45, 0xaa, 0xc7, 0x5a, 0x61, 0x56, 0x72, 0xe2, 0x95}: "DellSioPolicyConfigDxe", efi.GUID{0xd6, 0xbd, 0x93, 0xb0, 0xe2, 0x2d, 0x71, 0x48, 0x87, 0x68, 0xee, 0x1d, 0xa5, 0x72, 0x49, 0xb4}: "TcgPasswordAuthenticationGuid", efi.GUID{0xd6, 0xd1, 0x78, 0x0e, 0x91, 0x56, 0x93, 0x47, 0x8f, 0xf7, 0x46, 0x5c, 0xb7, 0xf9, 0x12, 0x4e}: "DellNvmePwDxe", efi.GUID{0xd6, 0xd3, 0x81, 0xc1, 0xdc, 0xec, 0xd8, 0x45, 0xb5, 0x86, 0x9e, 0xa1, 0x85, 0x18, 0x67, 0xe4}: "PlatformStatusCodeHandlerRuntimeDxe", efi.GUID{0xd6, 0xd9, 0x53, 0x00, 0x59, 0x26, 0x99, 0x45, 0xa2, 0x6b, 0xef, 0x45, 0x36, 0xe6, 0x31, 0xa9}: "ShellAliasGuid", efi.GUID{0xd6, 0xd9, 0x94, 0xea, 0x8b, 0xbe, 0xd0, 0x4b, 0x94, 0x81, 0xb0, 0x43, 0x48, 0x16, 0x5c, 0xfb}: "AmdPspSmmV2Ssp", efi.GUID{0xd6, 0xda, 0x6a, 0xa6, 0x2c, 0x97, 0x5b, 0x46, 0x84, 0xd6, 0x07, 0x2a, 0xbe, 0x8d, 0x69, 0x11}: "DellNuvotonTpmFwMgmtDxe", efi.GUID{0xd6, 0xe2, 0xae, 0x45, 0xb5, 0x18, 0xfe, 0x4d, 0x92, 0xb3, 0x2c, 0x04, 0xf6, 0x16, 0x31, 0xaf}: "AaeonEcPei", efi.GUID{0xd6, 0xe5, 0xb4, 0xb5, 0x66, 0x18, 0x6a, 0x46, 0x87, 0x82, 0x23, 0xfe, 0xd9, 0xec, 0x35, 0x9e}: "CrisRecoveryGlk", efi.GUID{0xd6, 0xf0, 0x7e, 0xa1, 0xa0, 0x52, 0x70, 0x4b, 0x8f, 0xab, 0xfc, 0x60, 0xe8, 0x1c, 0x39, 0x6f}: "FchDxeAux", efi.GUID{0xd6, 0xf3, 0xb9, 0x91, 0xf3, 0x7a, 0x0a, 0x45, 0x86, 0x9d, 0x3b, 0x30, 0xd0, 0xc9, 0x6e, 0x62}: "DellAbsoluteDxe", efi.GUID{0xd6, 0xf7, 0x7b, 0xef, 0xff, 0xf8, 0x76, 0x4a, 0x82, 0x47, 0xc0, 0xd0, 0xd1, 0xcc, 0x49, 0xc0}: "EfiSmbiosSlotPopulationGuid", efi.GUID{0xd6, 0xfa, 0x4d, 0x23, 0x26, 0x86, 0xfd, 0x40, 0xa1, 0xef, 0xe4, 0xb6, 0x8c, 0xf5, 0x7a, 0x3b}: "ProtectedDataDisplayPolicy", efi.GUID{0xd6, 0xfe, 0x1d, 0x46, 0x33, 0x9d, 0xc0, 0x4a, 0x8d, 0x25, 0x57, 0x38, 0x1e, 0xd0, 0xbb, 0xc0}: "AfterG3PolicyInit", efi.GUID{0xd7, 0x04, 0x95, 0x45, 0xd7, 0x72, 0xb2, 0x4b, 0x95, 0x6d, 0xc9, 0xfa, 0x89, 0x99, 0x20, 0xe8}: "OemFwLnk", efi.GUID{0xd7, 0x04, 0xf9, 0xed, 0x09, 0x41, 0x62, 0x15, 0xda, 0xb9, 0x00, 0x83, 0x15, 0x9e, 0x88, 0x2b}: "HpCommonSmbiosDxe", efi.GUID{0xd7, 0x07, 0x94, 0x89, 0xfe, 0x99, 0xd8, 0x43, 0x9a, 0x21, 0x79, 0xec, 0x32, 0x8c, 0xac, 0x21}: "Setup", efi.GUID{0xd7, 0x0d, 0xc3, 0xc9, 0xd6, 0x91, 0x75, 0x4f, 0xbf, 0x08, 0x84, 0x6e, 0x60, 0x20, 0xf1, 0xa8}: "AmdNbioIOMMUZPDxe", efi.GUID{0xd7, 0x0e, 0x15, 0xd1, 0x82, 0xe5, 0x92, 0x41, 0x84, 0xa2, 0x71, 0xb4, 0xeb, 0xa9, 0xa7, 0xc6}: "AcpiPlatformDxe", efi.GUID{0xd7, 0x1d, 0xf8, 0x97, 0x4d, 0x1d, 0xda, 0x47, 0x90, 0x21, 0xd2, 0x08, 0x4a, 0xf3, 0x25, 0xab}: "DellTcg2PlatformDxe", efi.GUID{0xd7, 0x24, 0x4f, 0xf3, 0x31, 0x75, 0x83, 0x4b, 0x91, 0x16, 0xbd, 0x03, 0xfc, 0xf9, 0x98, 0x78}: "SyscfgSyncDxe", efi.GUID{0xd7, 0x31, 0x36, 0x26, 0x36, 0x58, 0x74, 0x4b, 0xbe, 0x48, 0xee, 0x22, 0xe9, 0x2c, 0xe5, 0xd3}: "WinNtConsoleDxe", efi.GUID{0xd7, 0x33, 0x23, 0xcd, 0x0a, 0x6a, 0x76, 0x4c, 0x83, 0x50, 0x24, 0x0a, 0xda, 0x36, 0xa2, 0xc7}: "DxePlatformSaPolicy", efi.GUID{0xd7, 0x3e, 0x4f, 0x56, 0x44, 0x60, 0x2d, 0x42, 0x9e, 0x48, 0x65, 0xaa, 0xf5, 0x85, 0x62, 0x1e}: "FjPostErrorLogDxe", efi.GUID{0xd7, 0x44, 0xb1, 0x92, 0xdf, 0xa2, 0x1f, 0x48, 0x9b, 0xd7, 0x8a, 0x79, 0x68, 0x63, 0x8e, 0xb5}: "PcdRecoveryPreserveData", efi.GUID{0xd7, 0x50, 0x54, 0x5d, 0x0c, 0x99, 0x80, 0x41, 0xa8, 0x03, 0x8e, 0x63, 0xf0, 0x60, 0x83, 0x07}: "EfiSmmMpProtocol", efi.GUID{0xd7, 0x51, 0x98, 0x27, 0xa8, 0x65, 0x09, 0x40, 0xa5, 0xb8, 0x1f, 0x56, 0xba, 0xb7, 0xe9, 0x9d}: "AmdMemAm5Dxe", efi.GUID{0xd7, 0x56, 0xb0, 0x82, 0x24, 0x58, 0x84, 0x40, 0x9c, 0x31, 0xbb, 0xb5, 0x2b, 0x47, 0xbd, 0xb8}: "DellDfuPersistentEventPei", efi.GUID{0xd7, 0x57, 0xe0, 0xc9, 0x6d, 0x3b, 0x5c, 0x47, 0xb8, 0xc2, 0x7c, 0x95, 0x5d, 0x2f, 0x58, 0xb3}: "gear4", efi.GUID{0xd7, 0x5c, 0x43, 0x18, 0x03, 0x80, 0xed, 0x4c, 0xaf, 0xa4, 0xec, 0xbc, 0x44, 0x0c, 0x0f, 0x30}: "FwBlockServiceDxe", efi.GUID{0xd7, 0x68, 0x75, 0x08, 0x70, 0x5a, 0xdc, 0x4d, 0x84, 0xfd, 0x92, 0xe3, 0x58, 0xe7, 0xbf, 0x2c}: "NvmePciHcPei", efi.GUID{0xd7, 0x68, 0x7a, 0x45, 0xa5, 0x15, 0xf9, 0x4a, 0xa2, 0x52, 0x99, 0x63, 0xff, 0x9b, 0x0c, 0x34}: "PowerButtonSetupPei", efi.GUID{0xd7, 0x72, 0x7e, 0x58, 0x50, 0xcc, 0x79, 0x4f, 0x82, 0x09, 0xca, 0x29, 0x1f, 0xc1, 0xa1, 0x0f}: "EfiHiiConfigRoutingProtocolGuid", efi.GUID{0xd7, 0x72, 0xd1, 0xe0, 0x81, 0x1d, 0x39, 0x4b, 0x90, 0xae, 0xff, 0x45, 0xd5, 0x73, 0x24, 0x83}: "CheckFspErrorInfoHobDxe", efi.GUID{0xd7, 0x76, 0x2a, 0x61, 0xdd, 0x5f, 0xe4, 0x44, 0x87, 0x02, 0x9b, 0x84, 0x49, 0x7b, 0x49, 0xea}: "OemAcpiDriver", efi.GUID{0xd7, 0x76, 0x31, 0xe4, 0xe8, 0xb6, 0x27, 0x48, 0xb7, 0x84, 0x7f, 0xfd, 0xc4, 0xb6, 0x85, 0x61}: "EfiRngAlgorithmRaw", efi.GUID{0xd7, 0x7b, 0x11, 0xd9, 0x07, 0x08, 0x38, 0x4f, 0xb7, 0x73, 0xad, 0x86, 0xa7, 0x91, 0xea, 0xfc}: "SiInitPreMemFsp", efi.GUID{0xd7, 0x97, 0x19, 0x5c, 0x45, 0x8d, 0x21, 0x4f, 0xaf, 0x3c, 0x22, 0x06, 0xb8, 0xed, 0x8b, 0xec}: "PL061GpioDxe", efi.GUID{0xd7, 0xa3, 0xa0, 0x17, 0xa5, 0xc0, 0x35, 0x46, 0xbb, 0xd5, 0x07, 0x21, 0x87, 0xdf, 0xe2, 0xee}: "EmbeddedGpioProtocolGuid", efi.GUID{0xd7, 0xa9, 0x42, 0xf6, 0xb7, 0x26, 0xcb, 0x47, 0xac, 0xc8, 0x13, 0x59, 0x51, 0xac, 0x93, 0xf8}: "SystemVspCmosRuntimeDxe", efi.GUID{0xd7, 0xa9, 0xfa, 0x3a, 0x0c, 0x4a, 0xaa, 0x4a, 0x8c, 0x09, 0x05, 0x19, 0x9b, 0x22, 0x42, 0x8c}: "OCMR_Setup_IGD", efi.GUID{0xd7, 0xba, 0xc8, 0x87, 0x95, 0x05, 0x53, 0x40, 0x82, 0x97, 0xde, 0xde, 0x39, 0x5f, 0x5d, 0x5b}: "EfiDhcp6ProtocolGuid", efi.GUID{0xd7, 0xbb, 0x19, 0x21, 0x32, 0x94, 0x47, 0x4f, 0xb5, 0xe2, 0x5c, 0x4e, 0xa3, 0x1b, 0x6b, 0xdc}: "DxeIpl", efi.GUID{0xd7, 0xc0, 0x7d, 0x75, 0xfe, 0xef, 0x12, 0x4c, 0xbc, 0x6f, 0xd7, 0xe8, 0x33, 0xeb, 0x90, 0x15}: "FjOA30Support", efi.GUID{0xd7, 0xc4, 0x05, 0xcc, 0xb1, 0x87, 0x05, 0x46, 0xa8, 0x3f, 0x59, 0x2f, 0xfd, 0x53, 0xf9, 0x59}: "mFmacDriver", efi.GUID{0xd7, 0xc4, 0xc6, 0x7c, 0x71, 0xa2, 0xdd, 0x4f, 0xb2, 0x9c, 0xad, 0x56, 0x1c, 0xb3, 0xff, 0x4c}: "WtCardReaderDxe", efi.GUID{0xd7, 0xce, 0xcd, 0xb8, 0xc4, 0xbd, 0x64, 0x44, 0x9a, 0x1a, 0xff, 0x3f, 0xbd, 0xf7, 0x48, 0x69}: "MePlatformGetResetType", efi.GUID{0xd7, 0xd6, 0xa6, 0x9e, 0xd0, 0x7c, 0x95, 0x46, 0xad, 0x99, 0x4d, 0x32, 0xe9, 0x35, 0x77, 0xa5}: "BrightnessHardwareVbiosNvidiaSmm", efi.GUID{0xd7, 0xdd, 0xce, 0x8b, 0x85, 0xe2, 0x68, 0x41, 0x9b, 0x3f, 0x09, 0xaf, 0x66, 0xc9, 0x3f, 0xfe}: "S3ResumePei", efi.GUID{0xd7, 0xe3, 0x3b, 0xb5, 0xa8, 0x3b, 0x68, 0x48, 0xa0, 0x2a, 0x8e, 0x15, 0xfb, 0x2c, 0x92, 0x99}: "CommonElogDxe", efi.GUID{0xd7, 0xed, 0xe0, 0x79, 0x1d, 0x9d, 0x41, 0x4f, 0xae, 0x1a, 0xf8, 0x96, 0x16, 0x9e, 0x52, 0x16}: "LenovoWmaPolicyDxe", efi.GUID{0xd7, 0xf0, 0xd9, 0xb7, 0xdb, 0xeb, 0xe4, 0x4e, 0xab, 0x77, 0xb3, 0x0c, 0x4b, 0x90, 0x93, 0xcc}: "TbtSmm", efi.GUID{0xd7, 0xf4, 0xaa, 0x17, 0x18, 0x0e, 0x99, 0x4b, 0x87, 0xc6, 0x94, 0xc8, 0xb5, 0xf2, 0x5f, 0xb4}: "FchShastaSmmInit", efi.GUID{0xd7, 0xf6, 0x69, 0x0f, 0x4b, 0x0e, 0xa6, 0x43, 0xbf, 0xc2, 0x68, 0x71, 0x69, 0x43, 0x69, 0xb0}: "WdtAppPei", efi.GUID{0xd7, 0xf7, 0x69, 0xff, 0x16, 0xba, 0x20, 0x4b, 0x85, 0x89, 0xea, 0x8e, 0xc0, 0x37, 0x99, 0x67}: "DellAmdThunderboltDxe", efi.GUID{0xd7, 0xf9, 0xc4, 0xb0, 0x31, 0x2f, 0x68, 0x4b, 0xbf, 0x3e, 0xc5, 0xaf, 0xac, 0xd5, 0x90, 0x25}: "FjPostScreenMfgPowerOffDxe", efi.GUID{0xd8, 0x04, 0xb9, 0xce, 0x67, 0xde, 0x86, 0x42, 0x8d, 0x3f, 0x22, 0x59, 0xe6, 0xb7, 0x81, 0xb8}: "UsbPowerShare", efi.GUID{0xd8, 0x0a, 0xca, 0x76, 0x14, 0x4a, 0x89, 0x43, 0xb7, 0xe5, 0xfd, 0x88, 0x79, 0x17, 0x62, 0xad}: "FmpDxe", efi.GUID{0xd8, 0x0f, 0x71, 0x2d, 0x96, 0xc3, 0x81, 0x49, 0xa6, 0x4f, 0xf9, 0x6e, 0xaa, 0x39, 0x31, 0xe7}: "TceqAlertPei", efi.GUID{0xd8, 0x0f, 0x71, 0x2d, 0xa7, 0xc4, 0x81, 0x49, 0xa6, 0x4f, 0xf9, 0x6e, 0xaa, 0x39, 0x31, 0xe7}: "TceqAlertDxe", efi.GUID{0xd8, 0x11, 0x0d, 0x16, 0xd8, 0x93, 0xa2, 0x40, 0xb1, 0xf8, 0x7f, 0x7e, 0x80, 0xe0, 0xc8, 0xc7}: "DellSecureBootDxe", efi.GUID{0xd8, 0x19, 0x4e, 0x52, 0x66, 0x80, 0xeb, 0x4b, 0x8b, 0xbd, 0x6f, 0xf9, 0xe4, 0x05, 0xb3, 0xa7}: "MeResiliencyDxe", efi.GUID{0xd8, 0x21, 0xe3, 0x41, 0x30, 0xce, 0x60, 0x41, 0xb0, 0x8a, 0x75, 0xaa, 0x57, 0x0b, 0xf3, 0x6f}: "LenovoFlashDeviceInterfaceDxe", efi.GUID{0xd8, 0x22, 0x17, 0x02, 0x2b, 0x52, 0x79, 0x40, 0x85, 0x2a, 0xfe, 0x44, 0xc2, 0xc1, 0x3f, 0x49}: "SataController", efi.GUID{0xd8, 0x2a, 0xb8, 0xb7, 0x49, 0x33, 0x68, 0x49, 0xa9, 0x40, 0x7b, 0x8c, 0x26, 0x5f, 0xf9, 0xb4}: "RtkUndiDxe", efi.GUID{0xd8, 0x2a, 0xb8, 0xb7, 0x49, 0x33, 0x68, 0x49, 0xa9, 0x40, 0x7b, 0x8c, 0x26, 0x5f, 0xf9, 0xb5}: "RtkUsbUndiDxe", efi.GUID{0xd8, 0x2a, 0xb8, 0xb7, 0x49, 0x33, 0x68, 0x49, 0xa9, 0x40, 0x7b, 0x8c, 0x26, 0x5f, 0xf9, 0xb9}: "b57undix64", efi.GUID{0xd8, 0x2d, 0x24, 0x59, 0xcf, 0xe7, 0x79, 0x49, 0xb6, 0x0e, 0xa6, 0x06, 0x7e, 0x2a, 0x18, 0x5f}: "LegacyRegion", efi.GUID{0xd8, 0x2e, 0xbd, 0x09, 0x85, 0xc4, 0x9c, 0x4d, 0xb9, 0xa1, 0x7b, 0x06, 0x4c, 0x03, 0x09, 0xd2}: "UsbSxCallback", efi.GUID{0xd8, 0x31, 0x2a, 0x82, 0xa7, 0x0a, 0x5d, 0x41, 0xbe, 0xef, 0xc5, 0xc8, 0x96, 0x50, 0x9c, 0x50}: "BctBaseSmmPHX", efi.GUID{0xd8, 0x32, 0x95, 0x58, 0x0c, 0x2d, 0x26, 0x46, 0xa5, 0x52, 0x07, 0x5c, 0xfa, 0xca, 0x50, 0x27}: "CustomLogoSmmDriver", efi.GUID{0xd8, 0x34, 0x17, 0x62, 0x5e, 0x8b, 0x01, 0x4c, 0xb3, 0x30, 0x9f, 0x89, 0xa1, 0x08, 0x17, 0x10}: "PlatformHookLibSerialPortPpi", efi.GUID{0xd8, 0x39, 0x9a, 0x9d, 0x42, 0xbd, 0x73, 0x4a, 0xa4, 0xd5, 0x8e, 0xe9, 0x4b, 0xe1, 0x13, 0x80}: "EfiDhcp4ServiceBindingProtocolGuid", efi.GUID{0xd8, 0x3d, 0xcd, 0x3c, 0x45, 0x8d, 0xed, 0x4f, 0x96, 0x2d, 0x2b, 0x38, 0xcd, 0x82, 0xb3, 0xc4}: "UserIdentifyManagerGuid", efi.GUID{0xd8, 0x3e, 0x70, 0x26, 0x71, 0x91, 0xa3, 0x40, 0x95, 0xc2, 0x56, 0x43, 0x6f, 0x8a, 0x5e, 0x56}: "EfiBpCommonPkgTokenSpaceGuid", efi.GUID{0xd8, 0x47, 0xe2, 0x7c, 0x88, 0xa5, 0xec, 0x40, 0xb3, 0x11, 0xf8, 0x20, 0x80, 0x0e, 0xfa, 0x02}: "H19FingerprintVendorDriver", efi.GUID{0xd8, 0x4f, 0x1d, 0x0a, 0x04, 0x47, 0x01, 0x45, 0x85, 0xeb, 0x93, 0x39, 0x94, 0x92, 0xcb, 0xed}: "DevShell", efi.GUID{0xd8, 0x5e, 0x96, 0x83, 0x18, 0xd6, 0x76, 0x41, 0x81, 0xd1, 0x57, 0xb8, 0x22, 0x62, 0x7c, 0xa1}: "FjSecuredCorePcDxe", efi.GUID{0xd8, 0x64, 0xa0, 0x2d, 0x52, 0x5a, 0xac, 0x4d, 0xb6, 0x0f, 0x54, 0x47, 0x1a, 0x7f, 0xc3, 0x72}: "CspFlashLibNull", efi.GUID{0xd8, 0x65, 0xc0, 0xeb, 0xfa, 0xbe, 0x37, 0x44, 0xbe, 0xd0, 0x9a, 0x41, 0x27, 0x21, 0x02, 0xf1}: "RestBoot", efi.GUID{0xd8, 0x6c, 0x5b, 0x40, 0x66, 0xaf, 0x93, 0x49, 0xb7, 0x7f, 0x35, 0xef, 0xda, 0x6b, 0xf7, 0xc5}: "SioSmbAlertDispatcherPei", efi.GUID{0xd8, 0x6e, 0xa0, 0x90, 0x14, 0xd5, 0xc5, 0x4c, 0xb1, 0x1c, 0x77, 0x43, 0xbe, 0xe2, 0x4c, 0x55}: "AmdSocAm4RvDxe", efi.GUID{0xd8, 0x78, 0x5e, 0x04, 0x5d, 0x3d, 0xe5, 0x4e, 0x90, 0xaa, 0x42, 0x12, 0x1e, 0x1e, 0xee, 0x49}: "CbsBasePeiRV", efi.GUID{0xd8, 0x78, 0xcd, 0x79, 0xdc, 0x6e, 0x78, 0x49, 0xbd, 0x02, 0x32, 0x99, 0xc3, 0x87, 0xab, 0x17}: "StatusCodeHandlerSmm", efi.GUID{0xd8, 0x80, 0x96, 0x0c, 0x93, 0x69, 0x5e, 0x42, 0x80, 0xcc, 0x9b, 0xab, 0x13, 0x38, 0xc4, 0xd6}: "DellBeforeServiceMenu2Dxe", efi.GUID{0xd8, 0x86, 0x7e, 0xd5, 0x21, 0xa9, 0x83, 0x40, 0xb3, 0xdd, 0x5a, 0xff, 0xa9, 0x2b, 0x4f, 0xe5}: "Pca9536Pei", efi.GUID{0xd8, 0x88, 0x41, 0xce, 0x24, 0x1d, 0xe8, 0x44, 0xbc, 0xa2, 0x2a, 0xb8, 0xf7, 0x50, 0xae, 0xc0}: "SetupConfigUpdateDxeHedtCRB", efi.GUID{0xd8, 0x95, 0x30, 0x86, 0xf4, 0x3b, 0x7c, 0x44, 0xae, 0x10, 0x15, 0xb3, 0xae, 0x99, 0x36, 0xfd}: "LenovoSystemBootModePei", efi.GUID{0xd8, 0x9f, 0x86, 0x3b, 0x10, 0x6d, 0xa3, 0x4b, 0x94, 0xd9, 0x89, 0x66, 0xf7, 0x63, 0xb3, 0xfb}: "HciDxe", efi.GUID{0xd8, 0xa1, 0x88, 0x19, 0xfc, 0x04, 0x68, 0x4d, 0xb5, 0x8d, 0x63, 0x6f, 0x36, 0xf3, 0x0d, 0x82}: "SoftStrapsPeim", efi.GUID{0xd8, 0xa2, 0xf7, 0xc7, 0xc9, 0x7d, 0xb5, 0x40, 0xaf, 0x51, 0x7b, 0xb0, 0xa1, 0xfa, 0xf1, 0x2e}: "FjAzaliaVerbTable", efi.GUID{0xd8, 0xa3, 0x6c, 0x19, 0x5a, 0x9a, 0x35, 0x47, 0xb3, 0x28, 0x8f, 0xfc, 0x1d, 0x93, 0xd1, 0x88}: "TcgPlatformSetupPolicy", efi.GUID{0xd8, 0xa3, 0xf6, 0x07, 0x20, 0x93, 0xcb, 0x4b, 0xba, 0x8b, 0x4f, 0xa6, 0x05, 0x5d, 0x90, 0x9d}: "AmdPspP2CmboxV2Ssp", efi.GUID{0xd8, 0xa9, 0x42, 0x32, 0x70, 0xce, 0xa0, 0x4a, 0x95, 0x5d, 0x5e, 0x7b, 0x14, 0x0d, 0xe4, 0xd2}: "EfiSmmCpuIo2ProtocolGuid", efi.GUID{0xd8, 0xaa, 0x64, 0x07, 0x82, 0x9d, 0x1f, 0x44, 0x80, 0xf3, 0x21, 0xaf, 0xa5, 0x6f, 0x80, 0x7c}: "Afu32MOfbd", efi.GUID{0xd8, 0xad, 0x02, 0x01, 0x7f, 0x03, 0xfc, 0x46, 0xa9, 0xf2, 0x41, 0xd3, 0x52, 0xd2, 0xf6, 0x95}: "TouchPad_Elan_2nd", efi.GUID{0xd8, 0xb1, 0x84, 0x3a, 0xb9, 0x77, 0x86, 0x47, 0x8c, 0x06, 0xc9, 0x70, 0x09, 0xdc, 0xd5, 0xc1}: "AmdLegacyInterrupt", efi.GUID{0xd8, 0xb2, 0xeb, 0xed, 0x7d, 0xcb, 0x50, 0x4a, 0xb7, 0xaa, 0xb4, 0xdf, 0xfb, 0x17, 0x9a, 0x8a}: "MemoyConfigChanged", efi.GUID{0xd8, 0xb6, 0x34, 0x32, 0x17, 0x35, 0x4e, 0x47, 0xb1, 0x81, 0xda, 0x89, 0x1c, 0xba, 0x5e, 0x13}: "PasswordUi", efi.GUID{0xd8, 0xba, 0x0c, 0x85, 0xf2, 0x5c, 0x46, 0x4b, 0x8f, 0xf6, 0xac, 0xed, 0x33, 0x9e, 0xdd, 0xb0}: "HeciControlPei", efi.GUID{0xd8, 0xc6, 0x98, 0xe9, 0x2b, 0x57, 0x18, 0x4e, 0x96, 0xcc, 0x03, 0x1e, 0xa3, 0xdd, 0x55, 0x8c}: "AmiOemCsm16BinaryGuid", efi.GUID{0xd8, 0xcf, 0x9b, 0xe5, 0x87, 0x68, 0x24, 0x47, 0x84, 0xdc, 0xfe, 0xe2, 0xed, 0xe2, 0x30, 0xd0}: "AmdCpmPciHotPlugInitDxe", efi.GUID{0xd8, 0xd5, 0xfc, 0x46, 0xb3, 0xa9, 0xe3, 0x42, 0x90, 0x4a, 0x01, 0x2f, 0x07, 0xbc, 0x5f, 0x5c}: "PowerOffSmm", efi.GUID{0xd8, 0xd6, 0x14, 0x44, 0x2c, 0x23, 0x72, 0x49, 0xa4, 0xf7, 0x2b, 0x21, 0xd4, 0x29, 0x87, 0x86}: "I2cHost", efi.GUID{0xd8, 0xd6, 0x45, 0xa2, 0xd4, 0xaf, 0x59, 0x43, 0x8f, 0x7e, 0x7d, 0x82, 0x9c, 0xa2, 0x71, 0x58}: "HpMpmProtocol", efi.GUID{0xd8, 0xe2, 0x7e, 0xa4, 0x0e, 0xf6, 0xfd, 0x42, 0x8e, 0x58, 0x7b, 0xd6, 0x5e, 0xe4, 0xc2, 0x9b}: "CpuIo2Smm", efi.GUID{0xd8, 0xe3, 0x3c, 0xd9, 0xeb, 0xa7, 0x30, 0x47, 0x8c, 0x8e, 0xcc, 0x46, 0x6a, 0x9e, 0xcc, 0x3c}: "ReportStatusCodeRouterRuntimeDxe", efi.GUID{0xd8, 0xeb, 0xed, 0xa7, 0xd7, 0xa8, 0xf8, 0x48, 0x81, 0xfb, 0x83, 0x76, 0x56, 0xb8, 0x20, 0x77}: "AmiNvramBackupRomAreaGuid", efi.GUID{0xd8, 0xf4, 0x52, 0xef, 0x2e, 0x4b, 0x2d, 0x4a, 0xb8, 0x88, 0xda, 0xc5, 0x42, 0x1d, 0x73, 0xf7}: "AsfSmm", efi.GUID{0xd8, 0xf6, 0x79, 0xc7, 0x13, 0x71, 0xa1, 0x4a, 0x96, 0x48, 0xeb, 0x16, 0x33, 0xc7, 0xd5, 0x3b}: "CapsulePei", efi.GUID{0xd8, 0xf9, 0xb5, 0xea, 0xeb, 0x4c, 0xfa, 0x4e, 0x87, 0xd3, 0xfa, 0x15, 0x5d, 0x31, 0x7b, 0x22}: "MipiCam", efi.GUID{0xd8, 0xff, 0x42, 0x35, 0xde, 0xab, 0xed, 0x45, 0x98, 0x47, 0x07, 0x19, 0xed, 0xa1, 0x39, 0xdd}: "AsusAmdCpustringDxe", efi.GUID{0xd9, 0x00, 0x28, 0xbb, 0xe8, 0x67, 0x69, 0x4c, 0xbe, 0x5a, 0x4e, 0x5a, 0xc6, 0xa9, 0xcc, 0x4f}: "QuantaIFDxe", efi.GUID{0xd9, 0x01, 0x95, 0x42, 0x47, 0xe4, 0xf4, 0x40, 0x86, 0x7b, 0x75, 0xc9, 0x3a, 0x1d, 0xb5, 0x4e}: "SmramCpuDataVariable", efi.GUID{0xd9, 0x09, 0xa2, 0xa3, 0xe3, 0x2d, 0x3b, 0x40, 0x9c, 0x6c, 0xdb, 0x3c, 0xdc, 0x5e, 0xcf, 0xcd}: "LnvSolPei", efi.GUID{0xd9, 0x16, 0x48, 0xd9, 0xec, 0xd2, 0xc9, 0x4b, 0x96, 0x3d, 0x09, 0xd2, 0x63, 0xf7, 0x15, 0xc1}: "HousingMonitoringPei", efi.GUID{0xd9, 0x19, 0x59, 0xac, 0x37, 0xf1, 0x87, 0x4f, 0x86, 0x9f, 0xd8, 0x63, 0xed, 0xa8, 0x8e, 0xd2}: "LenovoInitVproPolicy", efi.GUID{0xd9, 0x19, 0xc9, 0x2c, 0x95, 0x59, 0x3f, 0x4f, 0x91, 0x69, 0x62, 0x30, 0x1a, 0x6c, 0x72, 0xac}: "ECUpdateFramework", efi.GUID{0xd9, 0x1f, 0x7b, 0x1c, 0x3c, 0x37, 0x69, 0x45, 0x8d, 0xc1, 0x8d, 0xb2, 0xff, 0xfa, 0x76, 0x39}: "NistDxe", efi.GUID{0xd9, 0x2b, 0xa1, 0x6d, 0x0a, 0x14, 0xf5, 0x4f, 0x99, 0x1b, 0x5b, 0x47, 0x1c, 0xa4, 0x45, 0x6f}: "FjSystemIdentifierSmm", efi.GUID{0xd9, 0x2f, 0x83, 0xeb, 0x89, 0x90, 0x98, 0x48, 0x83, 0xc9, 0x41, 0x61, 0x8f, 0x5c, 0x48, 0xb9}: "DpHii", efi.GUID{0xd9, 0x36, 0xc8, 0x96, 0x1e, 0x45, 0xf4, 0x47, 0xb8, 0xe3, 0xea, 0x4c, 0xa2, 0x07, 0x38, 0x57}: "FjMiscControlDxe", efi.GUID{0xd9, 0x3c, 0x80, 0x4f, 0x14, 0x30, 0x3e, 0x43, 0x99, 0x21, 0x79, 0xbd, 0x8f, 0x6e, 0xa3, 0xe0}: "UcsiRefactorPd", efi.GUID{0xd9, 0x42, 0xd5, 0xb0, 0x31, 0xe5, 0x8f, 0x41, 0xb7, 0xca, 0xb9, 0xf5, 0x8d, 0x6d, 0xda, 0x45}: "OemCloudBootInterfaceSmm", efi.GUID{0xd9, 0x44, 0xa5, 0xbb, 0x47, 0x47, 0x3c, 0x4c, 0x93, 0x71, 0xf1, 0xac, 0xb6, 0xb1, 0x3c, 0xa3}: "DellNbEcDxe", efi.GUID{0xd9, 0x45, 0xe0, 0x9e, 0x5e, 0xc3, 0x67, 0x49, 0x84, 0x69, 0x6c, 0x7e, 0x74, 0x50, 0x81, 0x68}: "FjGrasscarryPartition", efi.GUID{0xd9, 0x45, 0xe0, 0x9e, 0x5e, 0xc3, 0x67, 0x49, 0x84, 0x69, 0x6c, 0x7e, 0x74, 0x50, 0x81, 0x69}: "FjRecPat", efi.GUID{0xd9, 0x4c, 0xb5, 0xec, 0xae, 0xe5, 0xdc, 0x4f, 0xa9, 0x71, 0xe8, 0x77, 0x75, 0x60, 0x68, 0xf7}: "EfiPramConfGuid", efi.GUID{0xd9, 0x4d, 0x41, 0xad, 0x6f, 0x07, 0xfa, 0x40, 0x8b, 0x6a, 0x1b, 0x67, 0x79, 0xad, 0xec, 0xa3}: "AcpiDebugTables", efi.GUID{0xd9, 0x54, 0x93, 0x7a, 0x68, 0x04, 0x4a, 0x44, 0x81, 0xce, 0x0b, 0xf6, 0x17, 0xd8, 0x90, 0xdf}: "EfiFirmwareFileSystemGuid", efi.GUID{0xd9, 0x55, 0xe6, 0xf5, 0xa6, 0x02, 0xf2, 0x46, 0x9e, 0x76, 0xb8, 0xbe, 0x8e, 0x60, 0xab, 0x22}: "EfiIfrRefreshIdOpGuid", efi.GUID{0xd9, 0x64, 0x87, 0xbf, 0x9a, 0xae, 0xb8, 0x4e, 0xaa, 0xe3, 0x04, 0xe5, 0xf6, 0x75, 0xd8, 0x66}: "FmacDriver", efi.GUID{0xd9, 0x6c, 0x00, 0x4c, 0xba, 0x19, 0x17, 0x46, 0x84, 0x83, 0x60, 0x91, 0x94, 0xa1, 0xac, 0xfc}: "UsbInt13", efi.GUID{0xd9, 0x77, 0x54, 0x79, 0x86, 0x17, 0x8a, 0x4d, 0x8b, 0x89, 0x3f, 0xa7, 0x62, 0x3f, 0x7e, 0xf8}: "DellSbPowerOffPei", efi.GUID{0xd9, 0x77, 0x8b, 0x4d, 0x23, 0xe9, 0xf8, 0x48, 0xb0, 0x70, 0x40, 0x53, 0xd7, 0x8b, 0x7e, 0x56}: "Tpm12DeviceLibTcg", efi.GUID{0xd9, 0x7a, 0x3e, 0x28, 0xfa, 0xef, 0x8b, 0x46, 0x82, 0x89, 0x88, 0x73, 0x47, 0xd2, 0x33, 0x00}: "FjCardReaderSmm", efi.GUID{0xd9, 0x95, 0xce, 0x4d, 0xa9, 0x37, 0xdc, 0x4d, 0x81, 0x43, 0x32, 0x6c, 0xe9, 0xa4, 0x9b, 0x3a}: "AmdSocFp8StxKrkDxe", efi.GUID{0xd9, 0xae, 0xc3, 0xea, 0x2d, 0x69, 0x7c, 0x4c, 0xa2, 0x5d, 0x38, 0x95, 0xc4, 0xf3, 0x98, 0xf3}: "DellCustomVbeSetting", efi.GUID{0xd9, 0xb4, 0x61, 0x39, 0x85, 0x13, 0xf7, 0x43, 0xb9, 0xc8, 0x6c, 0x3a, 0x38, 0x9f, 0xbf, 0x99}: "MobileDiag", efi.GUID{0xd9, 0xc3, 0x73, 0xcb, 0x01, 0x2f, 0x42, 0x43, 0xae, 0x67, 0x04, 0xdd, 0xe5, 0x26, 0x40, 0x92}: "SmmPlatform", efi.GUID{0xd9, 0xc9, 0xe2, 0xe5, 0xf5, 0x5b, 0x7e, 0x49, 0x88, 0x60, 0x94, 0xf8, 0x1a, 0x09, 0xad, 0xe0}: "NvmeSmm", efi.GUID{0xd9, 0xca, 0x1b, 0xca, 0x21, 0xe0, 0x47, 0x45, 0xa1, 0xb0, 0x5b, 0x22, 0xc7, 0xf6, 0x87, 0xf4}: "ACPIOSFRModelStringVariableGuid", efi.GUID{0xd9, 0xde, 0xdb, 0x53, 0x55, 0xc2, 0x08, 0x49, 0x84, 0x7e, 0xe1, 0x91, 0x58, 0x3a, 0xc7, 0xdc}: "UpdateFruSmbios", efi.GUID{0xd9, 0xdf, 0x13, 0x85, 0x51, 0xf6, 0xf7, 0x43, 0x92, 0x96, 0xb3, 0x1d, 0x53, 0x16, 0xca, 0xb9}: "PlatformBootMode", efi.GUID{0xd9, 0xe0, 0xaa, 0xcf, 0x2d, 0x0c, 0xc8, 0x4e, 0xa1, 0x22, 0xf6, 0xeb, 0x5f, 0x38, 0x09, 0x16}: "DetectErrorsDxe", efi.GUID{0xd9, 0xeb, 0xb6, 0xd7, 0x22, 0x63, 0xc3, 0x41, 0x8f, 0x34, 0x47, 0x97, 0x48, 0x14, 0x48, 0x8a}: "TPMNationZ", efi.GUID{0xd9, 0xf0, 0x6e, 0x71, 0x83, 0xff, 0x69, 0x4f, 0x81, 0xe9, 0x51, 0x8b, 0xd3, 0x9a, 0x8e, 0x70}: "EfiSdMmcPassThruProtocolGuid", efi.GUID{0xd9, 0xff, 0x77, 0x1f, 0x0d, 0xc0, 0x45, 0x42, 0xb2, 0xac, 0xf5, 0xf4, 0x3e, 0x33, 0x3c, 0x39}: "PtuLoader", efi.GUID{0xda, 0x02, 0x47, 0xb6, 0xb5, 0xe6, 0xc8, 0x43, 0x8c, 0xe8, 0xd2, 0x53, 0x07, 0x1e, 0x9d, 0x6c}: "RedfishRestExDxe", efi.GUID{0xda, 0x10, 0x46, 0x79, 0xee, 0xd0, 0x6b, 0x46, 0x81, 0xb3, 0x81, 0x97, 0x21, 0x3a, 0x69, 0x78}: "SystemSwSmiAllocatorSmm", efi.GUID{0xda, 0x14, 0xab, 0xe5, 0xa8, 0x65, 0xf8, 0x4c, 0xb4, 0xef, 0x0b, 0xb2, 0xd5, 0x83, 0x68, 0x25}: "UsbKbSmm", efi.GUID{0xda, 0x1c, 0x28, 0x02, 0xe2, 0x5a, 0x27, 0x4a, 0x93, 0xda, 0x18, 0xed, 0x4a, 0x54, 0x5f, 0xbf}: "MRCErrorHandler", efi.GUID{0xda, 0x20, 0x32, 0x17, 0x87, 0xf2, 0x34, 0x4d, 0x84, 0xc4, 0x12, 0xea, 0x96, 0x8b, 0x92, 0x7e}: "FjGabiEntrySmiDispatcherSmm", efi.GUID{0xda, 0x26, 0x26, 0x59, 0x1e, 0x4a, 0x39, 0x8b, 0x28, 0xba, 0xfe, 0xad, 0x92, 0xc4, 0xa0, 0xa4}: "RedfishHostInterfaceDxe", efi.GUID{0xda, 0x2c, 0x46, 0x25, 0x1f, 0x22, 0xdf, 0x47, 0xac, 0x1d, 0x25, 0x9c, 0xfa, 0xa4, 0xe3, 0x26}: "DtPlatformDefaultDtbFile", efi.GUID{0xda, 0x2f, 0xb2, 0xf5, 0x5c, 0xb3, 0x98, 0x48, 0x9f, 0x4e, 0x40, 0xa4, 0x4c, 0x47, 0xe2, 0x95}: "FjClearsureEraseDxe", efi.GUID{0xda, 0x31, 0xef, 0x4c, 0x82, 0x86, 0x74, 0x42, 0x9c, 0xc4, 0xae, 0xe7, 0x51, 0x6a, 0x5e, 0x7b}: "CapsuleApp", efi.GUID{0xda, 0x3a, 0x5e, 0x9b, 0x4c, 0x8b, 0x62, 0x42, 0x9d, 0x08, 0xb1, 0xac, 0x2b, 0x65, 0x85, 0xc5}: "HdaBeepRltkAlc3146", efi.GUID{0xda, 0x3c, 0x25, 0x90, 0x1f, 0x4e, 0xd6, 0x4c, 0x9e, 0xa4, 0x27, 0x6f, 0x87, 0x25, 0xbd, 0xd0}: "SwSmi534D3320", efi.GUID{0xda, 0x40, 0x06, 0x76, 0xac, 0xec, 0x29, 0x42, 0xa5, 0x91, 0x7d, 0x30, 0x66, 0xeb, 0x24, 0x2d}: "PldmImportBin", efi.GUID{0xda, 0x41, 0x44, 0x88, 0x59, 0x44, 0x96, 0x47, 0xa5, 0xae, 0xd3, 0x9f, 0x30, 0xe9, 0x7a, 0x9e}: "LanWakeupPei", efi.GUID{0xda, 0x44, 0x27, 0x39, 0x68, 0xdf, 0x3b, 0x4c, 0x96, 0x6b, 0xf2, 0x0f, 0x0f, 0x47, 0xbc, 0x23}: "acer_SetupUtility_interface", efi.GUID{0xda, 0x47, 0xec, 0x5a, 0xea, 0xa9, 0x22, 0x45, 0xa3, 0xdd, 0x9b, 0xbe, 0x13, 0x8d, 0x70, 0x56}: "DynamicFv", efi.GUID{0xda, 0x50, 0xfe, 0xeb, 0xae, 0x14, 0x5f, 0x4e, 0x9e, 0x21, 0xad, 0xb7, 0x6b, 0x32, 0x05, 0x41}: "AppleMcaDumpDxe", efi.GUID{0xda, 0x51, 0x0d, 0xf2, 0xfd, 0x16, 0xe6, 0x48, 0xb4, 0xd0, 0x53, 0x2b, 0x6b, 0xb8, 0xae, 0xa6}: "AdlSemaWatchdogDxe", efi.GUID{0xda, 0x51, 0xfc, 0x4e, 0xa6, 0x23, 0x90, 0x47, 0xa2, 0x92, 0x49, 0x85, 0xc7, 0xf5, 0xcd, 0xef}: "LenovoComputraceEnablerDxe", efi.GUID{0xda, 0x5d, 0x18, 0xa6, 0xc7, 0xb5, 0x35, 0x47, 0xb8, 0x71, 0x8d, 0x6b, 0xcc, 0xca, 0xc8, 0xc1}: "Pca9536Dxe", efi.GUID{0xda, 0x68, 0x2f, 0x2b, 0xd2, 0x0c, 0xcf, 0x44, 0x8e, 0x8b, 0xbb, 0xa2, 0x0b, 0x1b, 0x5b, 0x75}: "EfiUsbAtapiProtocol", efi.GUID{0xda, 0x72, 0xf2, 0xe4, 0x7f, 0x23, 0x4c, 0x45, 0x88, 0x68, 0xfc, 0xf0, 0x96, 0xcf, 0x1c, 0x6c}: "LenovoPasswordCp", efi.GUID{0xda, 0x84, 0xf3, 0x25, 0x4f, 0xcb, 0x89, 0x4a, 0x9e, 0x12, 0x1e, 0xb4, 0xbe, 0x79, 0xd6, 0xc1}: "EcMemoryIntrusionTestModeDxe", efi.GUID{0xda, 0x86, 0x7f, 0x30, 0x1f, 0x03, 0x27, 0x45, 0x8e, 0xc4, 0x2a, 0xe8, 0x2d, 0xdf, 0xc0, 0x86}: "OemAcpiDriver", efi.GUID{0xda, 0x88, 0x47, 0x09, 0xfa, 0x6f, 0x31, 0x40, 0xb4, 0x35, 0xff, 0x96, 0x23, 0x65, 0x60, 0x34}: "PspDxe", efi.GUID{0xda, 0x9a, 0x06, 0x7c, 0x4e, 0xde, 0x8c, 0x48, 0xb0, 0xfc, 0x4f, 0x2e, 0x05, 0x7d, 0x96, 0xd8}: "DUFontDriver", efi.GUID{0xda, 0x9b, 0x0f, 0x97, 0xfc, 0x88, 0x4c, 0x49, 0x9e, 0xa1, 0x26, 0x41, 0x96, 0x63, 0xce, 0x11}: "SmmCf9Trap", efi.GUID{0xda, 0x9f, 0x5e, 0xb9, 0xde, 0x26, 0xd2, 0x48, 0x88, 0x07, 0x1f, 0x91, 0x07, 0xac, 0x5e, 0x3a}: "UefiPxeBcDxe", efi.GUID{0xda, 0xa6, 0xa2, 0x2f, 0xd5, 0x11, 0xc3, 0x4d, 0x99, 0x9a, 0x74, 0x96, 0x48, 0xb0, 0x3c, 0x56}: "PiSmmIpl", efi.GUID{0xda, 0xa9, 0xef, 0xa2, 0x18, 0x52, 0x53, 0x46, 0xb3, 0x57, 0xfc, 0x51, 0xd7, 0x3e, 0x07, 0x54}: "SecureBootServiceDxe", efi.GUID{0xda, 0xab, 0x73, 0xdf, 0x42, 0x7a, 0x5e, 0x4e, 0xb3, 0x4b, 0xe6, 0x83, 0x06, 0x71, 0xc9, 0xa6}: "AmdSb900SmmDisp", efi.GUID{0xda, 0xad, 0xb1, 0x1c, 0xdd, 0xd8, 0x6e, 0x4c, 0x8d, 0xef, 0xa0, 0xda, 0xcb, 0x2a, 0xec, 0x83}: "RetimerCapsuleUpdate", efi.GUID{0xda, 0xb4, 0x5c, 0x24, 0x15, 0x8e, 0x1b, 0x4a, 0x87, 0xe3, 0x98, 0x78, 0xff, 0xa0, 0x75, 0x20}: "Legacy8259", efi.GUID{0xda, 0xb6, 0xb9, 0x15, 0xa9, 0x00, 0xe7, 0x4d, 0xb8, 0xe8, 0xed, 0x7a, 0xfb, 0x88, 0xf1, 0x6e}: "CpuPolicyInitDxe", efi.GUID{0xda, 0xc6, 0x72, 0x47, 0x6d, 0x50, 0x95, 0x4c, 0xac, 0x17, 0xae, 0x66, 0x88, 0x5f, 0x6d, 0x53}: "DellGpe", efi.GUID{0xda, 0xcc, 0x59, 0x1b, 0xb2, 0x7d, 0x55, 0x4a, 0xaf, 0xc2, 0x43, 0x64, 0xf8, 0x24, 0xd2, 0x88}: "McBankErrorInjection", efi.GUID{0xda, 0xcc, 0x8d, 0xeb, 0x4d, 0xd3, 0x65, 0x47, 0xb9, 0x89, 0xed, 0x96, 0xca, 0x2c, 0xa8, 0xd5}: "OemSwSmiDispatchProtocol", efi.GUID{0xda, 0xd0, 0x40, 0x54, 0x26, 0xf4, 0xf7, 0x45, 0xbb, 0x50, 0xb2, 0x82, 0x21, 0x2f, 0xdb, 0xaf}: "DellAmdCbsApcbUpdateSmmStp", efi.GUID{0xda, 0xd4, 0x51, 0x3d, 0x98, 0xde, 0xa1, 0x49, 0x94, 0x42, 0x9d, 0x81, 0xe0, 0xfb, 0xb6, 0xc2}: "WakeEventPei", efi.GUID{0xda, 0xd7, 0x31, 0x3a, 0x15, 0xb7, 0xb7, 0x42, 0x85, 0xfb, 0xb4, 0x18, 0x51, 0x50, 0xa0, 0x15}: "DellSetSkuIdPei", efi.GUID{0xda, 0xd7, 0x4e, 0x12, 0xbe, 0x3d, 0xdb, 0x49, 0x8a, 0xa8, 0xca, 0x58, 0x4c, 0xc0, 0x63, 0xe4}: "DirtyShutdown", efi.GUID{0xda, 0xd8, 0xb5, 0x09, 0x25, 0x9a, 0xaf, 0x47, 0xa8, 0x10, 0x45, 0xa6, 0xd5, 0x49, 0xe3, 0xf7}: "FjI2CPpi", efi.GUID{0xda, 0xd8, 0xf9, 0x46, 0x70, 0x26, 0xb2, 0x44, 0x9e, 0x42, 0xc9, 0xb1, 0x30, 0xce, 0x24, 0x65}: "SmbiosMisc", efi.GUID{0xda, 0xe1, 0x49, 0xad, 0x83, 0x5e, 0x0f, 0x4a, 0xac, 0xc7, 0x67, 0xf0, 0x8c, 0xae, 0xaa, 0x78}: "TrEEPei", efi.GUID{0xda, 0xe2, 0x7e, 0x62, 0xf9, 0x3b, 0x9b, 0x43, 0x92, 0x9f, 0x2e, 0x0e, 0x6e, 0x9d, 0xba, 0x62}: "BootScriptSmmPrivateDataGuid", efi.GUID{0xda, 0xe8, 0x4c, 0x93, 0x2a, 0x5e, 0x84, 0x41, 0x8a, 0x15, 0x8e, 0x08, 0x47, 0x98, 0x84, 0x31}: "AmiOptionRomPolicyProtocolGuid", efi.GUID{0xdb, 0x20, 0x38, 0x27, 0xd9, 0x55, 0x44, 0x5b, 0x93, 0xfc, 0x6a, 0x4e, 0xc1, 0x38, 0xee, 0xc6}: "DellSpecialBootControlDxe", efi.GUID{0xdb, 0x25, 0xf9, 0x41, 0xfa, 0x17, 0x93, 0x44, 0x9a, 0x2c, 0x32, 0x49, 0xfb, 0xac, 0x07, 0xec}: "FjGabiFlashCommonFdRegionCtrlSmm", efi.GUID{0xdb, 0x26, 0x16, 0x39, 0xec, 0x3c, 0x39, 0x43, 0xa3, 0xd6, 0x9c, 0xdf, 0xf4, 0x69, 0x0e, 0x12}: "PrepareWhiteListSmm", efi.GUID{0xdb, 0x29, 0xc0, 0x9c, 0x93, 0xe8, 0x8f, 0x4b, 0x98, 0x08, 0x11, 0x15, 0x5d, 0xc3, 0xb7, 0xae}: "CmlComp", efi.GUID{0xdb, 0x2e, 0x28, 0xb4, 0x71, 0x23, 0xe0, 0x44, 0x9a, 0xb3, 0xf3, 0x3b, 0x3f, 0x7a, 0xa7, 0xcc}: "SecureBIOCameraSonix", efi.GUID{0xdb, 0x2f, 0xcb, 0xef, 0x62, 0x06, 0x59, 0x4a, 0xa5, 0xd7, 0x03, 0x03, 0x3e, 0xa9, 0x7c, 0xae}: "GTSE", efi.GUID{0xdb, 0x35, 0xa2, 0xc0, 0xe7, 0x17, 0x8a, 0x44, 0xb8, 0xe4, 0x2e, 0x29, 0xfd, 0xfb, 0xb1, 0x58}: "LenovoEventLogVariableStoreSmm", efi.GUID{0xdb, 0x44, 0x6c, 0x04, 0xdf, 0x59, 0xb3, 0x41, 0xaf, 0x53, 0xef, 0x70, 0x7b, 0x93, 0x0e, 0x9a}: "FtRecovery", efi.GUID{0xdb, 0x44, 0x92, 0x38, 0x6e, 0x3d, 0x50, 0x4e, 0x83, 0x5d, 0x5a, 0x77, 0x5a, 0x32, 0x5d, 0x89}: "LenovoMx25L64XflashPartDxe", efi.GUID{0xdb, 0x60, 0xd4, 0x55, 0xea, 0x8f, 0x5a, 0x41, 0xb9, 0x5d, 0x70, 0x14, 0x5a, 0xe0, 0x67, 0x5c}: "DxePrintLibPrint2Protocol", efi.GUID{0xdb, 0x62, 0xea, 0x43, 0xe4, 0xc2, 0xf7, 0x4a, 0xae, 0x94, 0x2f, 0x48, 0xd7, 0x08, 0xa3, 0xbc}: "OemSsidGpio", efi.GUID{0xdb, 0x6a, 0x84, 0xd2, 0x1b, 0xb4, 0x03, 0x41, 0x87, 0x1f, 0xe2, 0x23, 0x5f, 0x47, 0x78, 0xc7}: "SmcPostMsgHotKey_PEI", efi.GUID{0xdb, 0x74, 0x60, 0xa5, 0xfe, 0x65, 0xf7, 0x45, 0xbd, 0x21, 0x2d, 0x2b, 0xdd, 0x8e, 0x96, 0x52}: "EfiLegacyDevOrderVariableGuid", efi.GUID{0xdb, 0x75, 0xcb, 0x90, 0xfc, 0x71, 0x9d, 0x48, 0xaa, 0xcf, 0x94, 0x34, 0x77, 0xec, 0x72, 0x12}: "SmartTimer", efi.GUID{0xdb, 0x78, 0xaf, 0xfc, 0x8c, 0x82, 0x79, 0x42, 0xa7, 0x43, 0xdf, 0xe3, 0xe9, 0xa7, 0xdb, 0x46}: "DellRpmcProvision", efi.GUID{0xdb, 0x83, 0x00, 0x5c, 0x7d, 0x3f, 0x20, 0x4b, 0xac, 0x9b, 0x73, 0xfc, 0x65, 0x1b, 0x25, 0x03}: "SocketPkgList", efi.GUID{0xdb, 0x8a, 0xec, 0xa4, 0xa8, 0xb7, 0xd1, 0x47, 0x8e, 0x52, 0xec, 0x82, 0x0d, 0x0a, 0xcf, 0x6f}: "FvbSmm", efi.GUID{0xdb, 0x90, 0xa2, 0x2a, 0x3d, 0x6b, 0xd0, 0x40, 0x9f, 0xed, 0x89, 0xe0, 0x04, 0xbb, 0x0c, 0xf2}: "LenovoSmmMeConfig", efi.GUID{0xdb, 0x93, 0x6d, 0x62, 0x42, 0x2c, 0xc3, 0x48, 0x91, 0x5a, 0x71, 0xf9, 0x68, 0xa8, 0x1b, 0x04}: "FmpDxe", efi.GUID{0xdb, 0x96, 0x9f, 0x5d, 0x31, 0xe7, 0xaa, 0x4c, 0xa0, 0x0d, 0x72, 0xe1, 0x87, 0xcd, 0x77, 0x62}: "EfiEapProtocolGuid", efi.GUID{0xdb, 0x9e, 0x25, 0x16, 0x84, 0x3a, 0xc1, 0x4f, 0x34, 0xba, 0xba, 0x5a, 0xc2, 0x32, 0x56, 0xdc}: "OemWwanDxe", efi.GUID{0xdb, 0x9e, 0x44, 0x16, 0x84, 0x3a, 0xc1, 0x4f, 0x88, 0xba, 0xba, 0x5a, 0xc2, 0x32, 0x56, 0xdc}: "OemWwanPei", efi.GUID{0xdb, 0xa1, 0x08, 0x1b, 0x1a, 0xf9, 0xa1, 0x4f, 0xa9, 0x11, 0x25, 0x5c, 0x41, 0x7f, 0x1c, 0xf7}: "ServerMgmtSetup", efi.GUID{0xdb, 0xa2, 0x0a, 0xf3, 0x37, 0xde, 0x84, 0x46, 0x86, 0xe8, 0xd8, 0xa8, 0x61, 0xa4, 0xee, 0x71}: "NonAmtNetWorkController", efi.GUID{0xdb, 0xaa, 0x42, 0x52, 0xab, 0xbd, 0x92, 0x4b, 0xb7, 0xd5, 0xa5, 0x8b, 0x6e, 0x0e, 0xee, 0x6b}: "IchSmbusArpDisabledPei", efi.GUID{0xdb, 0xb1, 0x1b, 0xaf, 0x31, 0x99, 0xb0, 0x4c, 0x86, 0x29, 0xb9, 0x31, 0x9b, 0xb0, 0xef, 0xa0}: "DfciSARecovery", efi.GUID{0xdb, 0xb2, 0xcc, 0xe7, 0x80, 0xc1, 0x42, 0x4b, 0x86, 0x04, 0x46, 0x89, 0xa7, 0xf6, 0x10, 0xad}: "AmiCrbPkgTokenSpace", efi.GUID{0xdb, 0xc8, 0x8b, 0x8c, 0x30, 0x19, 0x0b, 0x47, 0xb6, 0xc4, 0x0d, 0x8c, 0x2e, 0x6a, 0x9f, 0xd4}: "LnvPdrDxe", efi.GUID{0xdb, 0xca, 0x77, 0x9b, 0x07, 0x20, 0xb3, 0x42, 0x9b, 0x02, 0x7c, 0xbc, 0x28, 0xf4, 0x02, 0x73}: "AmdCpmPtZeroPowerOddDxe", efi.GUID{0xdb, 0xcb, 0x47, 0xe9, 0x8a, 0x85, 0x3e, 0x42, 0x95, 0xf6, 0x01, 0x9d, 0x18, 0x14, 0xde, 0x2a}: "AmdCcxZen3Pei", efi.GUID{0xdb, 0xce, 0x72, 0x9b, 0x9f, 0xed, 0x62, 0x44, 0x82, 0x08, 0xd8, 0x86, 0x6f, 0x82, 0x6a, 0xca}: "HpCommonAcpiHardwareIdSsdt", efi.GUID{0xdb, 0xd4, 0x05, 0x0d, 0x1d, 0x4a, 0xcd, 0x4d, 0x89, 0xb5, 0x87, 0xb3, 0x6c, 0x6d, 0xd1, 0x80}: "SDEmmcInfoDxe", efi.GUID{0xdb, 0xdc, 0xc5, 0x67, 0xf3, 0xcf, 0x9f, 0x46, 0xff, 0xff, 0xff, 0xff, 0xa7, 0xe1, 0x6f, 0x95}: "XnotePlatformPolicyPei", efi.GUID{0xdb, 0xdf, 0x65, 0x5f, 0x20, 0xac, 0x43, 0x4f, 0x9b, 0x21, 0x26, 0x9e, 0x81, 0xa0, 0xea, 0x7e}: "PdmWindowButtonGuid", efi.GUID{0xdb, 0xe3, 0xd7, 0xfd, 0xca, 0x96, 0x36, 0x40, 0x9f, 0x88, 0x9f, 0xaf, 0x7a, 0x43, 0xac, 0xa4}: "MfgPanicModeHandler", efi.GUID{0xdb, 0xe3, 0xe7, 0x38, 0x11, 0x12, 0xfb, 0x4e, 0x87, 0x09, 0x9e, 0x41, 0xab, 0x28, 0x10, 0xd1}: "FjHiddenAdminPage", efi.GUID{0xdb, 0xe6, 0x9c, 0x3f, 0xbc, 0x37, 0xf0, 0x49, 0x92, 0x93, 0xa9, 0xec, 0x7b, 0xda, 0xc3, 0xc9}: "AmiPeiSetupPcd", efi.GUID{0xdb, 0xf3, 0x6d, 0x7a, 0x0a, 0x1c, 0xc2, 0x45, 0x82, 0x51, 0xaf, 0xe7, 0x94, 0xd7, 0xd6, 0xb3}: "PciExpressPciCfg2", efi.GUID{0xdb, 0xf6, 0x56, 0x84, 0x3b, 0x04, 0x5e, 0x40, 0xb1, 0x8d, 0x68, 0x4e, 0x69, 0xb0, 0x5d, 0xe7}: "AmiOemRasDxe", efi.GUID{0xdb, 0xfb, 0x1c, 0xbc, 0x50, 0x7e, 0xbe, 0x42, 0xb4, 0x87, 0x22, 0xe0, 0xa9, 0x0c, 0xb0, 0x52}: "FspTempRamExitPpi", efi.GUID{0xdc, 0x00, 0xbc, 0x66, 0x57, 0x85, 0xc1, 0x4f, 0x9b, 0xec, 0x13, 0x77, 0x60, 0xe2, 0x7e, 0x96}: "RasClvMirrorFailoverProtocol", efi.GUID{0xdc, 0x03, 0x3b, 0xa4, 0x8a, 0xc1, 0xb1, 0x41, 0x91, 0xc8, 0x3f, 0xf9, 0xaa, 0xa2, 0x57, 0x13}: "ExitFormSet", efi.GUID{0xdc, 0x03, 0xc8, 0xe8, 0xa9, 0xe9, 0x81, 0x40, 0xb2, 0x1a, 0x6f, 0xab, 0xa9, 0x09, 0x92, 0xda}: "H19SelfTestDriver", efi.GUID{0xdc, 0x11, 0x12, 0x60, 0x12, 0x0b, 0x09, 0x4c, 0xae, 0x27, 0xab, 0x0e, 0xc9, 0x69, 0x24, 0x68}: "EfiTxtInfoProtocol", efi.GUID{0xdc, 0x16, 0x5d, 0x45, 0xaf, 0xe3, 0x5f, 0x4b, 0xa9, 0xad, 0xa4, 0xbc, 0x19, 0x80, 0x85, 0xbd}: "BaseDebugDeviceLibNull", efi.GUID{0xdc, 0x23, 0x66, 0x05, 0x85, 0x12, 0xaf, 0x4e, 0x94, 0x46, 0x75, 0xc3, 0xb0, 0x0f, 0x78, 0xc6}: "FchMultiFchDxe", efi.GUID{0xdc, 0x3a, 0xc0, 0x38, 0x15, 0x21, 0xed, 0x4f, 0x80, 0x02, 0x71, 0x49, 0x06, 0xaf, 0xbb, 0xf6}: "DMBM", efi.GUID{0xdc, 0x43, 0x1f, 0x17, 0xd9, 0xc4, 0xa6, 0x47, 0x96, 0x41, 0x65, 0xdd, 0xcd, 0xd5, 0xaa, 0x30}: "UsbRtDxe", efi.GUID{0xdc, 0x59, 0x41, 0xd0, 0x5f, 0xe1, 0xe3, 0x11, 0xb2, 0x61, 0xb8, 0xe8, 0x56, 0x2c, 0xba, 0xfa}: "EfiBootManagerPolicyNetworkGuid", efi.GUID{0xdc, 0x59, 0xf7, 0x4b, 0xc5, 0x8d, 0x66, 0x4b, 0xb3, 0xb1, 0x37, 0xb7, 0xf9, 0x18, 0x5b, 0x61}: "TDP1204", efi.GUID{0xdc, 0x5a, 0xc6, 0x0d, 0x73, 0xa9, 0x30, 0x41, 0x8d, 0xf0, 0x2a, 0xdb, 0xeb, 0x9e, 0x4a, 0x31}: "FirmwarePerformanceS3PointerGuid", efi.GUID{0xdc, 0x5b, 0xc2, 0xee, 0xf2, 0x67, 0x95, 0x4d, 0xb1, 0xd5, 0xf8, 0x1b, 0x20, 0x39, 0xd1, 0x1d}: "Enter_Setup", efi.GUID{0xdc, 0x61, 0x8a, 0x50, 0x57, 0x2c, 0x48, 0x48, 0xa5, 0x4a, 0x58, 0x01, 0x51, 0x79, 0xc9, 0x4a}: "ApplePowerState", efi.GUID{0xdc, 0x61, 0xbc, 0x1c, 0x35, 0x3d, 0xed, 0x41, 0x8e, 0x92, 0x91, 0x47, 0xa0, 0xd6, 0x8e, 0x77}: "AmdMemFp8StxDxe", efi.GUID{0xdc, 0x67, 0xf4, 0x9b, 0x4e, 0xdf, 0x1d, 0x44, 0x83, 0x56, 0xc3, 0x86, 0x3d, 0x66, 0x45, 0xd9}: "AsusFMPDxe", efi.GUID{0xdc, 0x6e, 0x5a, 0x59, 0x2c, 0x6d, 0x4a, 0x47, 0x90, 0x82, 0x3b, 0x99, 0x28, 0x51, 0xdf, 0xfe}: "OemCapsuleGuid", efi.GUID{0xdc, 0x8b, 0xca, 0xa6, 0x14, 0xae, 0x13, 0x4c, 0x93, 0x64, 0x2f, 0x0e, 0x09, 0xce, 0x0f, 0x54}: "AmdCpmEcInitDxe", efi.GUID{0xdc, 0x8c, 0x0d, 0x39, 0x38, 0xf7, 0xd9, 0x46, 0x82, 0xe4, 0xbb, 0x0d, 0xce, 0xee, 0x3f, 0x9d}: "UsbBusSmm", efi.GUID{0xdc, 0x92, 0xa8, 0x64, 0x61, 0x55, 0x36, 0x45, 0x92, 0xc7, 0x79, 0x9b, 0xfc, 0x18, 0x33, 0x55}: "EfiIsaAcpiProtocolGuid", efi.GUID{0xdc, 0x93, 0xa7, 0xbc, 0x32, 0x65, 0xef, 0x4b, 0x96, 0xb4, 0xfc, 0x29, 0x7d, 0x1f, 0xea, 0x98}: "DellPciBusPei", efi.GUID{0xdc, 0xa1, 0xc2, 0x19, 0xcb, 0x73, 0xbf, 0x46, 0xa4, 0x20, 0x4c, 0x55, 0x58, 0xf9, 0x58, 0xe8}: "DmiEditorDxe", efi.GUID{0xdc, 0xae, 0x8d, 0x37, 0x6b, 0xf0, 0x46, 0x44, 0x83, 0x14, 0x40, 0xab, 0x93, 0x3c, 0x87, 0xa3}: "EfiMmCommunication2Protocol", efi.GUID{0xdc, 0xb7, 0xc3, 0xa0, 0x19, 0x4e, 0xec, 0x48, 0xa8, 0xc7, 0xba, 0x58, 0xe2, 0xe0, 0x8f, 0xf4}: "AmdCpmOemInitPeim", efi.GUID{0xdc, 0xbb, 0xd0, 0xe5, 0xbc, 0x1b, 0xb7, 0x49, 0xa8, 0xb6, 0x67, 0xaa, 0xf0, 0xa1, 0xcd, 0x9e}: "SystemDiagnosticSplashScreenDxe", efi.GUID{0xdc, 0xbc, 0xe7, 0x60, 0xd0, 0x9e, 0xe7, 0x40, 0xa9, 0xe3, 0x99, 0x40, 0x4c, 0xfb, 0xd4, 0xb2}: "AlarmLEDBeeper", efi.GUID{0xdc, 0xc0, 0x18, 0x96, 0xa4, 0x50, 0x6c, 0x49, 0x99, 0x4f, 0x72, 0x41, 0xf2, 0x82, 0xed, 0x01}: "PlatformInitPreMem", efi.GUID{0xdc, 0xc1, 0xe3, 0x89, 0xe3, 0xb5, 0x34, 0x4d, 0xae, 0xad, 0xdd, 0x7e, 0xb2, 0x82, 0x8c, 0x18}: "UsbTimingPolicyProtocolGuid", efi.GUID{0xdc, 0xc6, 0xa3, 0x18, 0xea, 0x5e, 0xc8, 0x48, 0xa1, 0xc1, 0xb5, 0x33, 0x89, 0xf9, 0x89, 0x99}: "EfiSmmSwDispatch2ProtocolGuid", efi.GUID{0xdc, 0xca, 0x28, 0xc1, 0x3e, 0x62, 0x41, 0x4e, 0x97, 0xcb, 0xa7, 0x13, 0x8e, 0x62, 0x74, 0x60}: "BaseFspSecPlatformLibNull", efi.GUID{0xdc, 0xd8, 0xaa, 0xd3, 0x48, 0x3a, 0xac, 0x46, 0xb1, 0xc7, 0x28, 0xa9, 0xd3, 0xcf, 0x67, 0x55}: "WinNtThunkPPIToProtocolPei", efi.GUID{0xdc, 0xd9, 0x8f, 0xed, 0x97, 0x20, 0x5e, 0x42, 0xb7, 0x43, 0x64, 0xef, 0xb9, 0x9d, 0x5f, 0x0d}: "AmdPspDxeV2", efi.GUID{0xdc, 0xe3, 0xd3, 0x84, 0xad, 0x98, 0x40, 0x4d, 0x93, 0x96, 0x57, 0xe8, 0xad, 0xc7, 0x86, 0x8e}: "GetVariableHookDxe", efi.GUID{0xdc, 0xe8, 0x38, 0x31, 0xa9, 0xb9, 0xbb, 0x45, 0xa5, 0xe8, 0x6e, 0xba, 0xcd, 0x00, 0x5e, 0x4c}: "TouchPadDriver", efi.GUID{0xdc, 0xe9, 0xbe, 0x72, 0xc8, 0xf9, 0xcd, 0x4a, 0x8d, 0x69, 0x49, 0xc4, 0xe5, 0xbe, 0x62, 0x97}: "KEMhSDIO", efi.GUID{0xdc, 0xea, 0xec, 0x34, 0x29, 0x92, 0xd1, 0x44, 0x85, 0xb1, 0xb8, 0x40, 0x71, 0xa1, 0x31, 0x87}: "MebxDisplay", efi.GUID{0xdc, 0xeb, 0x8e, 0x4e, 0x55, 0xcf, 0xb6, 0x4f, 0xaa, 0x77, 0x98, 0x4a, 0xb5, 0x3d, 0xe8, 0x23}: "EmmcSoftwareTuning", efi.GUID{0xdc, 0xf6, 0x7a, 0x00, 0x4a, 0xbb, 0x2a, 0x4d, 0x8b, 0x57, 0xa9, 0x6a, 0x30, 0x72, 0x75, 0xb5}: "FJFP_PBA_64", efi.GUID{0xdc, 0xfa, 0xa7, 0x39, 0x24, 0x9a, 0x53, 0x45, 0x8c, 0xbd, 0x9b, 0x72, 0xb2, 0x4c, 0x22, 0xfd}: "DellPs2Emul", efi.GUID{0xdc, 0xfc, 0x20, 0xff, 0x5a, 0x80, 0x48, 0x77, 0xa0, 0x90, 0x6a, 0x8a, 0x37, 0x26, 0x0d, 0x76}: "Power", efi.GUID{0xdc, 0xfc, 0xe0, 0xff, 0x9a, 0x80, 0x48, 0x4d, 0xa0, 0x60, 0x6a, 0x8a, 0x6a, 0x26, 0x91, 0x76}: "EventLogsSetupPage", efi.GUID{0xdc, 0xfd, 0x90, 0xbf, 0x63, 0xf1, 0xc6, 0x4f, 0xa5, 0xa3, 0xd0, 0xfd, 0xc8, 0xf7, 0xce, 0x68}: "AmiUpdateCspResources", efi.GUID{0xdd, 0x02, 0x61, 0xbc, 0xc7, 0x3c, 0x86, 0x4b, 0x9a, 0x2c, 0x4e, 0x12, 0x5c, 0xab, 0xdf, 0x3a}: "FchKunlunDxe", efi.GUID{0xdd, 0x07, 0x85, 0x7c, 0xcf, 0xdf, 0xf7, 0x4b, 0x9b, 0xb1, 0x09, 0x0d, 0x5c, 0x59, 0x44, 0xfb}: "BoardNvs", efi.GUID{0xdd, 0x07, 0xb2, 0x40, 0xd7, 0x89, 0x58, 0x4f, 0xb2, 0x78, 0x62, 0x21, 0x76, 0xca, 0x09, 0x98}: "SioResetSystemSmm", efi.GUID{0xdd, 0x14, 0x5e, 0xac, 0x67, 0x45, 0xf7, 0x41, 0x9e, 0x29, 0x5f, 0x52, 0xcd, 0x31, 0x42, 0x14}: "X11DPHSmmDriver", efi.GUID{0xdd, 0x14, 0xfa, 0x4e, 0x34, 0x2a, 0x1c, 0x49, 0xb8, 0x1e, 0x7d, 0x05, 0xb2, 0x10, 0xfc, 0xfa}: "RemapPwdPei", efi.GUID{0xdd, 0x1a, 0x6f, 0x8d, 0xa5, 0x45, 0xa8, 0x45, 0x8b, 0xb8, 0x0c, 0x3a, 0x95, 0x31, 0x48, 0xfa}: "ReadyForLockProtocol", efi.GUID{0xdd, 0x1a, 0x87, 0x6f, 0x86, 0x9d, 0x76, 0x46, 0x8b, 0xad, 0x68, 0xe2, 0xe4, 0x51, 0xfc, 0x5b}: "MicrocodeFlashAccessLibNull", efi.GUID{0xdd, 0x1c, 0xb5, 0x0b, 0x50, 0xa7, 0x2f, 0x44, 0xa1, 0x5e, 0x7d, 0xea, 0xdf, 0xba, 0x30, 0xff}: "Mtftp4Dxe", efi.GUID{0xdd, 0x21, 0xb3, 0xdd, 0x18, 0x2d, 0x7d, 0x40, 0x8c, 0xc4, 0x7f, 0x99, 0x7b, 0xeb, 0x7d, 0x66}: "RecoveryPatch", efi.GUID{0xdd, 0x24, 0x81, 0xff, 0xd8, 0x34, 0xf8, 0x4c, 0x9c, 0x6f, 0xdf, 0x6f, 0xce, 0x3a, 0x9f, 0x13}: "DellUserInterface3Dxe", efi.GUID{0xdd, 0x2a, 0xb1, 0x10, 0xe2, 0xf5, 0x78, 0xcc, 0x5c, 0xa0, 0xb7, 0x7f, 0x76, 0x22, 0x3a, 0xcd}: "AmiCpuFeaturesDxe", efi.GUID{0xdd, 0x3b, 0x29, 0x58, 0x0c, 0x1e, 0xc6, 0x42, 0x83, 0x76, 0x61, 0xf0, 0x49, 0xf7, 0x7a, 0x97}: "AmdPspAspt", efi.GUID{0xdd, 0x43, 0x9b, 0xcb, 0x33, 0x42, 0x03, 0xdb, 0xe0, 0xed, 0xed, 0x89, 0xc0, 0xd0, 0x9c, 0xac}: "AmdSocAm4MtsDxe", efi.GUID{0xdd, 0x43, 0xd2, 0x87, 0x7a, 0xf7, 0xf8, 0x43, 0xa2, 0x1e, 0x6b, 0x04, 0xdd, 0x76, 0x74, 0x9b}: "DellEccErrorLog3Smm", efi.GUID{0xdd, 0x4c, 0x60, 0x92, 0x9f, 0x23, 0x63, 0x46, 0x97, 0xde, 0xaf, 0xea, 0xd4, 0xd9, 0x5a, 0xb0}: "FjIbvTraceAbstractionSmmProtocol", efi.GUID{0xdd, 0x51, 0x98, 0xc8, 0xa0, 0x5e, 0xce, 0x42, 0x89, 0x34, 0xeb, 0x8e, 0xa6, 0x08, 0xfb, 0xa9}: "LenovoSystemAcceleratorKeyDxe", efi.GUID{0xdd, 0x57, 0x94, 0xad, 0x64, 0xe9, 0x62, 0x45, 0xae, 0x91, 0x1c, 0xdf, 0x6f, 0xce, 0xc5, 0x2a}: "POSTCODE0A_BASEVERSIONWMI_SMM", efi.GUID{0xdd, 0x58, 0xf9, 0xe7, 0xde, 0x4b, 0x6e, 0x4d, 0x89, 0xaa, 0x77, 0x4e, 0xbf, 0x59, 0xa0, 0xfc}: "SetupConfigUpdateDxeGnrwsPPVCRB", efi.GUID{0xdd, 0x61, 0x15, 0xc2, 0x49, 0x23, 0x9e, 0x4b, 0x94, 0xd0, 0x56, 0x27, 0xfc, 0xd2, 0x2a, 0x69}: "FjPostScreenMfgAcCheckDxe", efi.GUID{0xdd, 0x63, 0xea, 0xf8, 0x59, 0x3e, 0x2e, 0x46, 0x90, 0xe4, 0x40, 0xed, 0x94, 0x7f, 0x60, 0xb0}: "AmdNbioDxe", efi.GUID{0xdd, 0x69, 0x39, 0xaf, 0xbc, 0x43, 0xc4, 0x43, 0x9e, 0x46, 0x9c, 0x33, 0x10, 0xaf, 0x6d, 0xa0}: "RtErrorLoggingDXE", efi.GUID{0xdd, 0x6b, 0x4e, 0x41, 0x7b, 0xe4, 0xcc, 0x47, 0xb2, 0x44, 0xbb, 0x61, 0x02, 0x0c, 0xf5, 0x16}: "EfiHardwareErrorVariableGuid", efi.GUID{0xdd, 0x6b, 0xe0, 0xff, 0x07, 0x61, 0xa6, 0x46, 0x7b, 0xb2, 0x5a, 0x9c, 0x7e, 0xc5, 0x27, 0x5c}: "EfiAcpiTableProtocolGuid", efi.GUID{0xdd, 0x6d, 0x0f, 0x7b, 0x00, 0x86, 0x54, 0x4f, 0xaf, 0x52, 0x0d, 0x47, 0x38, 0xc2, 0xd3, 0x08}: "DellUefiClass3ConfigSmm", efi.GUID{0xdd, 0x72, 0x12, 0x17, 0xcf, 0x45, 0xe8, 0x45, 0xbc, 0xd9, 0xf3, 0x89, 0x1b, 0xf2, 0x29, 0x75}: "BiosAuditLogDefaultsAndWmi", efi.GUID{0xdd, 0x88, 0x82, 0xfa, 0x96, 0xd2, 0xcf, 0x4d, 0xba, 0xa0, 0x2f, 0x56, 0xee, 0x8c, 0x6d, 0xa9}: "HpBeepDeviceWmi", efi.GUID{0xdd, 0x90, 0xfc, 0xaf, 0x14, 0xb0, 0x37, 0x47, 0x89, 0xe9, 0xd1, 0xa0, 0xf5, 0x0c, 0xd2, 0x5e}: "CPLDPEI", efi.GUID{0xdd, 0x99, 0x95, 0xa8, 0x31, 0xae, 0x9d, 0x41, 0x80, 0xc3, 0x34, 0x26, 0xbc, 0x0a, 0x8e, 0x4d}: "CxlDxe", efi.GUID{0xdd, 0xa6, 0x30, 0x18, 0x3d, 0xe0, 0xc0, 0x4b, 0xb1, 0x15, 0x94, 0xd9, 0x19, 0x50, 0xfe, 0x4a}: "SioDynamicSetup", efi.GUID{0xdd, 0xaa, 0x13, 0x89, 0x4e, 0x56, 0xf8, 0x4c, 0xb1, 0x76, 0xf3, 0xf9, 0x85, 0x97, 0x9c, 0x5f}: "RomHoleReplacementProtocol", efi.GUID{0xdd, 0xab, 0xe7, 0x43, 0x52, 0xe3, 0xfb, 0x4c, 0xa2, 0x30, 0x4c, 0xdc, 0x1d, 0x35, 0x0e, 0x5c}: "GraphicsConsole", efi.GUID{0xdd, 0xac, 0xd8, 0x46, 0xc3, 0x29, 0x13, 0x40, 0x81, 0xe8, 0x37, 0xa4, 0x25, 0xab, 0x4f, 0x99}: "SystemVspCmosSmm", efi.GUID{0xdd, 0xad, 0x94, 0x2b, 0x11, 0xae, 0x11, 0x41, 0x9f, 0xf0, 0x60, 0xbc, 0xb6, 0x5b, 0x22, 0x3d}: "AcpiCommon", efi.GUID{0xdd, 0xaf, 0x43, 0x3c, 0x0f, 0x57, 0x9b, 0x44, 0xa7, 0xb6, 0x5f, 0x33, 0x15, 0xd7, 0x30, 0x54}: "FjUsbInternSwitch", efi.GUID{0xdd, 0xb2, 0xd4, 0x32, 0xb3, 0x1d, 0xf9, 0x4a, 0x91, 0xb0, 0xfb, 0xae, 0x6e, 0x6e, 0xa2, 0x59}: "RtkUndiDxe", efi.GUID{0xdd, 0xb2, 0xd4, 0x32, 0xb3, 0x1d, 0xf9, 0x4a, 0x91, 0xb0, 0xfb, 0xae, 0x6e, 0x6e, 0xa2, 0x5a}: "RtkUndiDxe", efi.GUID{0xdd, 0xb6, 0xab, 0xbc, 0x9f, 0x3e, 0xe2, 0x47, 0xb8, 0xfb, 0x10, 0xb3, 0x9a, 0xf6, 0x34, 0x2c}: "DellDaTaaMac", efi.GUID{0xdd, 0xba, 0x29, 0xe0, 0x70, 0xe2, 0x7e, 0x46, 0x9c, 0x0f, 0xd7, 0x58, 0x6c, 0x33, 0x85, 0x0a}: "Runtime", efi.GUID{0xdd, 0xbf, 0x79, 0x18, 0xff, 0x47, 0x5b, 0x48, 0x88, 0xfb, 0x4f, 0xcd, 0x20, 0x6e, 0x49, 0xf4}: "AmdSocFp7r2RmbDxe", efi.GUID{0xdd, 0xca, 0x6b, 0xcf, 0xc4, 0xd4, 0x95, 0x40, 0xb2, 0xbc, 0x41, 0x7d, 0x72, 0x47, 0x89, 0x0a}: "StaticSkuDataDxeNeonCityFPGA", efi.GUID{0xdd, 0xd4, 0x36, 0x11, 0xb7, 0xd9, 0x01, 0x48, 0x83, 0x52, 0xe7, 0x58, 0x2d, 0x32, 0xa0, 0x5a}: "IntelDRS", efi.GUID{0xdd, 0xdb, 0x4e, 0x2a, 0x8a, 0xce, 0xc3, 0x46, 0x98, 0xac, 0xd1, 0xad, 0x3d, 0xee, 0x9d, 0x85}: "RepairResult", efi.GUID{0xdd, 0xdd, 0x46, 0x8e, 0x49, 0x3d, 0x9d, 0x4a, 0xb8, 0x75, 0x3c, 0x08, 0x6f, 0x6a, 0xa2, 0xbd}: "EdkiiVt400", efi.GUID{0xdd, 0xed, 0x92, 0xe0, 0x41, 0x0e, 0x9e, 0x4c, 0x9c, 0x31, 0x9c, 0x07, 0x6f, 0xa8, 0xb5, 0xb6}: "ApobRsDxe", efi.GUID{0xdd, 0xf9, 0x0e, 0x5a, 0x08, 0xa8, 0x7d, 0x45, 0x86, 0x55, 0x5c, 0x17, 0xba, 0xf9, 0x19, 0xc8}: "HpUsbControlDxe", efi.GUID{0xde, 0x0e, 0xf0, 0x06, 0x8c, 0x19, 0x17, 0x02, 0x24, 0x16, 0x42, 0x99, 0xbc, 0xe0, 0x72, 0xca}: "OemMfgdoneDcfg", efi.GUID{0xde, 0x13, 0x73, 0x46, 0x30, 0x4e, 0xf1, 0x43, 0x94, 0x3e, 0x32, 0x3f, 0x89, 0x84, 0x5d, 0xb5}: "EfiBluetoothIoProtocolGuid", efi.GUID{0xde, 0x18, 0xab, 0x3d, 0x6c, 0x97, 0xb9, 0x40, 0x97, 0x2b, 0x6c, 0xfd, 0x19, 0x6e, 0x0c, 0x92}: "UsbViewerDxe", efi.GUID{0xde, 0x1b, 0x84, 0x26, 0x0a, 0x92, 0x7a, 0x4e, 0x9f, 0xbe, 0x63, 0x7f, 0x47, 0x71, 0x43, 0xa6}: "Ip4ConfigDxe", efi.GUID{0xde, 0x1b, 0x9d, 0x51, 0xb4, 0x27, 0x08, 0x44, 0x99, 0x0d, 0xfe, 0xfd, 0xb6, 0xb5, 0x22, 0x0b}: "ServiceResetSmm", efi.GUID{0xde, 0x1e, 0x30, 0xe7, 0xd3, 0xa5, 0xb6, 0x4c, 0x9e, 0xb8, 0x32, 0x35, 0xf9, 0x38, 0xc3, 0xca}: "MeIgnitionPostMem", efi.GUID{0xde, 0x22, 0x9b, 0x2b, 0xd4, 0x2a, 0xbc, 0x4a, 0x95, 0x7d, 0x5f, 0x18, 0xc5, 0x04, 0xa0, 0x5c}: "EfiSocketMpLinkVariable", efi.GUID{0xde, 0x2d, 0x1a, 0x57, 0x41, 0xe1, 0x73, 0x4d, 0x92, 0x7d, 0x85, 0xf5, 0xa7, 0xbb, 0x18, 0x7e}: "AmiTcgLibDxe", efi.GUID{0xde, 0x32, 0xf4, 0x10, 0xec, 0xde, 0x31, 0x46, 0x80, 0xcd, 0x47, 0xf6, 0x5d, 0x8f, 0x80, 0xbb}: "EfiPeiPerformanceHob", efi.GUID{0xde, 0x34, 0x8c, 0xf3, 0x38, 0x9c, 0x8c, 0x43, 0x9a, 0xf6, 0x69, 0xf5, 0x84, 0xf1, 0x7e, 0xc0}: "PoofAnimationState4", efi.GUID{0xde, 0x35, 0x74, 0xd9, 0x80, 0xe0, 0xfc, 0x45, 0x96, 0xbe, 0x4a, 0x06, 0xa5, 0xc8, 0x2f, 0x7f}: "AsusVgaDxeBs", efi.GUID{0xde, 0x35, 0x74, 0xd9, 0x80, 0xe6, 0xfc, 0x41, 0x93, 0xbe, 0x4a, 0x76, 0xa5, 0xc8, 0x2f, 0x7f}: "SerialDebugInitPei", efi.GUID{0xde, 0x40, 0x5d, 0xfd, 0xbe, 0x20, 0xbe, 0x44, 0x94, 0x15, 0xa5, 0x1b, 0x52, 0x7a, 0xb4, 0xfa}: "IntelWLan6GControl", efi.GUID{0xde, 0x59, 0xaa, 0x51, 0xf2, 0xfd, 0xa3, 0x4e, 0xbc, 0x63, 0x87, 0x5f, 0xb7, 0x84, 0x2e, 0xe9}: "EfiHashAlgorithmSha256Guid", efi.GUID{0xde, 0x5a, 0xe3, 0x97, 0x3d, 0x23, 0x18, 0x4f, 0x82, 0x8a, 0x8a, 0x05, 0x24, 0xeb, 0xed, 0xde}: "menu_none_selected", efi.GUID{0xde, 0x5f, 0x6c, 0xb6, 0x83, 0x24, 0x5d, 0x47, 0x8a, 0x6b, 0xbf, 0xb6, 0xb7, 0x51, 0xe2, 0x0c}: "AmdHotPlugBrhSmm", efi.GUID{0xde, 0x69, 0xa2, 0x17, 0x35, 0x7c, 0x32, 0x41, 0x9e, 0xa0, 0xa3, 0xeb, 0x5a, 0xb8, 0x7f, 0x1e}: "PowerLostNotifyDxe", efi.GUID{0xde, 0x72, 0xd3, 0xa9, 0x77, 0xd6, 0x41, 0x4b, 0x8f, 0xad, 0x9e, 0xc1, 0x78, 0xde, 0x19, 0xce}: "DellVideoDevice2Protocol", efi.GUID{0xde, 0x74, 0xcd, 0xb2, 0xf9, 0x11, 0x8c, 0x41, 0xbf, 0x2e, 0xda, 0xc3, 0x03, 0x5a, 0xab, 0x7a}: "IsPlatformSupportWhea", efi.GUID{0xde, 0x75, 0xb0, 0x6d, 0x9e, 0x44, 0x44, 0x26, 0x96, 0xd0, 0xcc, 0x5a, 0x1b, 0x4c, 0x3b, 0x2a}: "FirmwareVolumePei", efi.GUID{0xde, 0x77, 0x83, 0xfc, 0xda, 0xa3, 0x1c, 0x42, 0xa4, 0x55, 0xe1, 0x11, 0xba, 0xa6, 0x79, 0xe9}: "AmiFchUart0Dxe", efi.GUID{0xde, 0x7d, 0x70, 0xcd, 0x72, 0x48, 0x6f, 0x43, 0xb6, 0xe3, 0x6f, 0x92, 0x91, 0x84, 0xf9, 0x59}: "BoardSpiConfigProtocolDxe", efi.GUID{0xde, 0x7f, 0x5e, 0xa1, 0x23, 0x9d, 0x61, 0x4a, 0xb3, 0xfe, 0xe0, 0x2b, 0x30, 0xbd, 0x80, 0xe6}: "ADCLOMUEFIdriverDxe", efi.GUID{0xde, 0x7f, 0xa9, 0x3d, 0x61, 0x22, 0xfb, 0x4c, 0xa1, 0x71, 0x74, 0xcd, 0x5a, 0x9a, 0xe2, 0x79}: "SaveSpdToRomDxe", efi.GUID{0xde, 0x83, 0x57, 0x71, 0x09, 0xbc, 0xbc, 0x46, 0xae, 0x7d, 0xe3, 0x98, 0x79, 0x59, 0x11, 0x97}: "AmdCcxXvPei", efi.GUID{0xde, 0x87, 0x98, 0x06, 0x5c, 0x14, 0x4c, 0x40, 0x9b, 0x23, 0xe2, 0x62, 0xa8, 0x87, 0x89, 0xaf}: "RfVlan", efi.GUID{0xde, 0x87, 0xb2, 0x3d, 0x51, 0xf5, 0xd1, 0x4d, 0xac, 0x5f, 0x05, 0x0f, 0xe6, 0xc1, 0x0a, 0x6c}: "Smsc5028PeiInit", efi.GUID{0xde, 0x88, 0xbc, 0x0b, 0xd1, 0x17, 0xba, 0x4d, 0xba, 0x54, 0x73, 0x4b, 0x01, 0xde, 0x42, 0x1f}: "OEMPlatformGopPolicy", efi.GUID{0xde, 0x8e, 0x3f, 0x56, 0xa5, 0x1f, 0xa2, 0x45, 0xbe, 0x23, 0xb0, 0xb6, 0xa0, 0x7d, 0xe2, 0x39}: "DramPolicyPpiGuid", efi.GUID{0xde, 0x99, 0x2f, 0xe8, 0xed, 0x74, 0x56, 0x4e, 0xbb, 0xa1, 0xb1, 0x43, 0xfc, 0xa3, 0xf6, 0x9a}: "DebugAgentTimerLibNull", efi.GUID{0xde, 0x9a, 0x63, 0x16, 0x0e, 0x3d, 0xf2, 0x45, 0xb1, 0x58, 0x91, 0x86, 0xfc, 0x41, 0x6a, 0x1e}: "EfiFileSystemCapsuleStorage", efi.GUID{0xde, 0x9f, 0x26, 0xd3, 0x75, 0xed, 0x91, 0x48, 0xbe, 0x1c, 0x01, 0x62, 0xef, 0x1f, 0xa5, 0xa3}: "FjSystemDataDriverDxe", efi.GUID{0xde, 0xa9, 0x42, 0x90, 0xdc, 0x23, 0x38, 0x4a, 0x96, 0xfb, 0x7a, 0xde, 0xd0, 0x80, 0x51, 0x6a}: "EfiGraphicsOutputProtocolGuid", efi.GUID{0xde, 0xae, 0x56, 0x2f, 0x53, 0xb7, 0x08, 0x4a, 0x8a, 0x8b, 0x57, 0x65, 0x93, 0x1b, 0x97, 0x24}: "HpIntelChipsetAcpiArea", efi.GUID{0xde, 0xb0, 0xe6, 0x6c, 0x1c, 0x78, 0x6c, 0x4f, 0xb4, 0x2d, 0x98, 0x34, 0x6c, 0x61, 0x4b, 0xec}: "HpetTimerDxe", efi.GUID{0xde, 0xb2, 0x27, 0x76, 0x42, 0x43, 0xda, 0x4d, 0xa3, 0x39, 0xa9, 0x6d, 0xaa, 0x05, 0x7d, 0xdf}: "AsusMbSwWmiSmm", efi.GUID{0xde, 0xb3, 0xee, 0x26, 0x89, 0xb6, 0x2e, 0x49, 0x80, 0xf0, 0xbe, 0x8b, 0xd7, 0xda, 0x4b, 0xa7}: "EfiSmmConfigurationProtocolGuid", efi.GUID{0xde, 0xb7, 0xc7, 0x73, 0x79, 0xf6, 0x24, 0x47, 0xab, 0xad, 0x79, 0xf2, 0x56, 0xb6, 0x43, 0x20}: "WakeOnLanPortingSmm", efi.GUID{0xde, 0xc1, 0xa0, 0xe0, 0x9b, 0x46, 0x37, 0x4d, 0x62, 0xe1, 0xf8, 0xbb, 0x8a, 0xb9, 0x58, 0xae}: "Pca9545aDxe", efi.GUID{0xde, 0xc4, 0xb0, 0x6b, 0xa4, 0xdc, 0x3e, 0x4f, 0xbc, 0xa8, 0x33, 0x06, 0x35, 0xda, 0x4e, 0xf3}: "EmulationDfxSetup", efi.GUID{0xde, 0xc7, 0x2e, 0xdf, 0x79, 0x6f, 0xf1, 0x40, 0xb7, 0x04, 0x7f, 0x82, 0x04, 0xe3, 0xd1, 0x45}: "PlatformFlashDxe", efi.GUID{0xde, 0xca, 0x7d, 0x9f, 0xea, 0x11, 0x8a, 0x44, 0xa4, 0x6f, 0x76, 0xe0, 0x03, 0x65, 0x7d, 0xd1}: "VariableSmmRuntimeDxe", efi.GUID{0xde, 0xd2, 0x82, 0x9c, 0x8d, 0x1f, 0x96, 0x44, 0xa5, 0xb0, 0xfc, 0xe7, 0x53, 0x7f, 0x6a, 0xbc}: "FchHuashanMultiFchSmm", efi.GUID{0xde, 0xde, 0x33, 0xd9, 0x60, 0x02, 0x76, 0x4e, 0xa7, 0xd9, 0x2f, 0x9f, 0x24, 0x40, 0xe5, 0xa5}: "NbSmi", efi.GUID{0xde, 0xe0, 0x28, 0xbc, 0xf6, 0x66, 0xe6, 0x49, 0xb8, 0x1f, 0xaf, 0x4d, 0xd9, 0xa8, 0xaa, 0x15}: "POSTCODE0A_BASESMBIOS_DXE", efi.GUID{0xde, 0xe2, 0xbf, 0xd3, 0xaf, 0x3d, 0xdf, 0x11, 0xba, 0x40, 0xe3, 0xa5, 0x56, 0xd8, 0x95, 0x93}: "IffsGpt", efi.GUID{0xde, 0xe6, 0xef, 0x89, 0xf2, 0x9c, 0x7f, 0x4b, 0x8f, 0x0b, 0xae, 0xbb, 0xa5, 0xa2, 0x5b, 0x26}: "ComputraceComponents", efi.GUID{0xde, 0xe6, 0xf1, 0xba, 0x9e, 0x20, 0xdb, 0x4a, 0x8d, 0x96, 0xfd, 0x8b, 0x71, 0xf3, 0xf6, 0x83}: "EfiEventUserProfileChangedGuid", efi.GUID{0xde, 0xe9, 0x69, 0xe3, 0x16, 0xdc, 0x58, 0x4f, 0xac, 0x7b, 0x08, 0x8e, 0xa6, 0xdd, 0x55, 0x66}: "CbsSetupDxeSHP", efi.GUID{0xde, 0xef, 0x3f, 0x0e, 0x6c, 0x4a, 0x4f, 0x4e, 0xb7, 0x7f, 0x4b, 0x45, 0x61, 0x50, 0x43, 0x0f}: "PegaSetKeyboardSetting", efi.GUID{0xde, 0xef, 0x3f, 0x0e, 0x6c, 0x4a, 0x4f, 0x4e, 0xb7, 0x7f, 0x4b, 0x46, 0xc9, 0x50, 0x43, 0x0f}: "PegaSMBIOS", efi.GUID{0xde, 0xf1, 0x53, 0x5f, 0x47, 0xe6, 0x5d, 0x42, 0x8b, 0x59, 0x2d, 0xde, 0xe1, 0x9e, 0x8c, 0x76}: "SecureBootMgrDxe", efi.GUID{0xde, 0xf2, 0x98, 0x20, 0x12, 0xaf, 0xe4, 0x42, 0xad, 0x75, 0xd8, 0x82, 0x03, 0xea, 0x06, 0x83}: "SecureBIOCamera_Sunplus2", efi.GUID{0xde, 0xf5, 0xfe, 0x2e, 0x55, 0xbf, 0xcf, 0x4b, 0xf0, 0x1e, 0x8f, 0x4e, 0xf0, 0xb9, 0x6a, 0x9d}: "DatabaseManagerSmm", efi.GUID{0xde, 0xf6, 0xc1, 0x3b, 0x3e, 0x69, 0x47, 0x45, 0xa3, 0x00, 0x21, 0x82, 0x3c, 0xa4, 0x20, 0xb2}: "PeiUsbControllerPpiGuid", efi.GUID{0xde, 0xfd, 0x9b, 0x9b, 0x45, 0xe2, 0x1d, 0x43, 0x97, 0xa1, 0xea, 0xde, 0x9f, 0x8f, 0x62, 0x7e}: "ServerHotplugSmm", efi.GUID{0xde, 0xfe, 0xc6, 0xf8, 0x15, 0xee, 0xed, 0x47, 0x99, 0xa4, 0x60, 0x79, 0x8a, 0x3c, 0x7d, 0xc4}: "StaticSkuDataDxeLightningRidgeEXECB3", efi.GUID{0xdf, 0x0a, 0xda, 0xb1, 0x77, 0x4f, 0x70, 0x40, 0xa8, 0x8e, 0xbf, 0xfe, 0x1c, 0x60, 0x52, 0x9a}: "AMITSE", efi.GUID{0xdf, 0x0d, 0xe8, 0xa8, 0xbb, 0xa3, 0x80, 0x48, 0x9d, 0xb2, 0x9b, 0xb1, 0xb8, 0xbb, 0x12, 0x12}: "SbMetronome", efi.GUID{0xdf, 0x13, 0xcb, 0x53, 0x6f, 0xa5, 0x01, 0x41, 0xbb, 0x4f, 0x9b, 0xe0, 0x40, 0x65, 0x7b, 0xb5}: "StdBoardSmm", efi.GUID{0xdf, 0x15, 0xab, 0x48, 0x93, 0x86, 0x84, 0x4e, 0x91, 0xfa, 0x27, 0x63, 0x13, 0x7b, 0x8e, 0x52}: "FjGabiSystemMonitoring", efi.GUID{0xdf, 0x18, 0x88, 0xaa, 0xb1, 0xd0, 0xe4, 0x45, 0xa7, 0xf2, 0xb6, 0xdb, 0x0e, 0x75, 0x2b, 0xa7}: "AmdPmfDxe", efi.GUID{0xdf, 0x1a, 0x4d, 0x2a, 0xdc, 0x21, 0x81, 0x4b, 0xa4, 0x2f, 0x8b, 0x8e, 0xe2, 0x38, 0x00, 0x60}: "EfiSmartCardReaderProtocolGuid", efi.GUID{0xdf, 0x1b, 0xf6, 0x86, 0xfd, 0x5b, 0xd3, 0x46, 0xb0, 0xf9, 0xe4, 0x37, 0x28, 0xda, 0x1d, 0x2e}: "OCMR_CPU_POWER_MANAGEMENT_DXE", efi.GUID{0xdf, 0x20, 0x20, 0xae, 0x75, 0xc1, 0x44, 0x43, 0xb7, 0x55, 0xbb, 0xa4, 0x77, 0x44, 0xf8, 0xb1}: "PeiVideoTextOut", efi.GUID{0xdf, 0x20, 0x8e, 0xdc, 0x75, 0x82, 0x4a, 0x40, 0xb2, 0x09, 0x38, 0x18, 0xa3, 0xba, 0x86, 0xa5}: "USBSecurityProtocol", efi.GUID{0xdf, 0x24, 0xcb, 0x64, 0x7f, 0xa6, 0x12, 0x52, 0xbb, 0x5f, 0xab, 0xe1, 0x51, 0x76, 0x8b, 0xb6}: "PowerLedSmm", efi.GUID{0xdf, 0x2c, 0x31, 0x52, 0xa9, 0xd4, 0x3e, 0x45, 0xa9, 0xdf, 0x9f, 0xda, 0xf5, 0x1c, 0xd6, 0x22}: "DellSmmDelay", efi.GUID{0xdf, 0x2c, 0x60, 0xc6, 0x6a, 0xe1, 0x47, 0x41, 0x9b, 0x9a, 0x0b, 0x39, 0x94, 0x98, 0x72, 0x2a}: "SystemCrisisRecoveryPei", efi.GUID{0xdf, 0x37, 0xec, 0x3c, 0xad, 0x90, 0x88, 0x4d, 0xaf, 0xf4, 0x09, 0x30, 0x56, 0xa6, 0x80, 0x7d}: "SystemSecureFlashSleepTrapSmmDxe", efi.GUID{0xdf, 0x3b, 0x7b, 0xa0, 0x8a, 0xb7, 0xee, 0x41, 0xa2, 0x76, 0x55, 0xc2, 0x25, 0xa0, 0x7b, 0x0b}: "EfiPeiPlatformTypeOpalCitySthiPpi", efi.GUID{0xdf, 0x3d, 0x52, 0x88, 0xac, 0x3a, 0xf6, 0x41, 0xb1, 0x5f, 0xdc, 0x7b, 0xea, 0x43, 0x4b, 0x39}: "TrackPointSynaptics", efi.GUID{0xdf, 0x4a, 0x71, 0xf3, 0xc3, 0xe3, 0x3b, 0x47, 0x8f, 0xcc, 0x5c, 0x34, 0x63, 0x0c, 0x45, 0xc0}: "ComputeHmacSha256ProtocolGuid", efi.GUID{0xdf, 0x4e, 0x2b, 0x17, 0x64, 0xdf, 0xe5, 0x48, 0xac, 0xae, 0xbd, 0xb5, 0x18, 0x78, 0xfd, 0xab}: "AsfPei", efi.GUID{0xdf, 0x58, 0xb0, 0x19, 0x7e, 0xf9, 0x5f, 0x47, 0x92, 0xc7, 0xbb, 0x26, 0xe0, 0x59, 0x4f, 0xc8}: "DashManagerDxe", efi.GUID{0xdf, 0x63, 0x63, 0xea, 0x7e, 0x20, 0x44, 0x45, 0xbc, 0x9d, 0x1c, 0x44, 0x0c, 0x1d, 0xb0, 0xbc}: "SlotDataUpdateDxeCLX64L", efi.GUID{0xdf, 0x72, 0x09, 0x63, 0xb5, 0x8a, 0x51, 0x4a, 0x9a, 0x88, 0x5d, 0xce, 0xe2, 0x25, 0xcc, 0x70}: "BootOrderSmm", efi.GUID{0xdf, 0x77, 0x39, 0xd8, 0xc3, 0x34, 0x21, 0x4a, 0xa1, 0x04, 0x36, 0x9b, 0x8d, 0x4f, 0xa7, 0xb7}: "LenovoMfgBenchEventDxe", efi.GUID{0xdf, 0x77, 0x40, 0x6c, 0x80, 0x8d, 0x19, 0x62, 0xb8, 0x0b, 0x1f, 0x25, 0x73, 0x30, 0x8d, 0x45}: "DellSecurityDxe", efi.GUID{0xdf, 0x78, 0x19, 0xb9, 0xc1, 0x9f, 0x7d, 0x42, 0xbb, 0x05, 0x4c, 0x82, 0x84, 0x55, 0xca, 0x27}: "EfiSioControlProtocolGuid", efi.GUID{0xdf, 0x7d, 0xcf, 0x31, 0x2f, 0xf0, 0x83, 0x47, 0xba, 0xa6, 0xa0, 0x87, 0xb2, 0xf8, 0x3b, 0xe6}: "AssetIDOnRecoveryModePei", efi.GUID{0xdf, 0x7e, 0xec, 0x1a, 0x87, 0x32, 0x69, 0x46, 0xb1, 0x14, 0x33, 0xa1, 0x19, 0x8a, 0x60, 0xc0}: "OemAcpiDriver", efi.GUID{0xdf, 0x8f, 0x83, 0x65, 0x50, 0xf4, 0x94, 0x43, 0xb4, 0xcc, 0x43, 0x95, 0x3e, 0x72, 0x94, 0x3d}: "FjDashCtrlDrv", efi.GUID{0xdf, 0x95, 0xed, 0xf3, 0x8e, 0x82, 0xc7, 0x41, 0xbc, 0xa0, 0x16, 0xc4, 0x19, 0x65, 0xa6, 0x34}: "TcgPpiSyncFlagGuid", efi.GUID{0xdf, 0xa0, 0x38, 0xab, 0x73, 0x68, 0xa9, 0x44, 0x87, 0xe6, 0xd4, 0xeb, 0x56, 0x14, 0x84, 0x49}: "EfiRamDiskProtocolGuid", efi.GUID{0xdf, 0xb7, 0x7f, 0x99, 0x23, 0xdb, 0xed, 0x40, 0xa8, 0x07, 0x96, 0x12, 0xd2, 0xf4, 0xa3, 0xe8}: "TopSwapRestorePei", efi.GUID{0xdf, 0xba, 0x3a, 0xe0, 0x36, 0xe5, 0x88, 0x4e, 0xb3, 0xa0, 0xb7, 0x7f, 0x78, 0xeb, 0x34, 0xfe}: "CpuDxe", efi.GUID{0xdf, 0xbd, 0xbc, 0x9a, 0xb5, 0xa4, 0xdc, 0x4f, 0x93, 0xf2, 0x52, 0xae, 0x58, 0x0a, 0x49, 0xcd}: "BootDeviceInitAttributeDxe", efi.GUID{0xdf, 0xc1, 0x5d, 0x4b, 0xaa, 0x1e, 0xb2, 0x48, 0xa7, 0xe9, 0xea, 0xc4, 0x89, 0xa0, 0x0b, 0x5c}: "EdkiiBootLogo2Protocol", efi.GUID{0xdf, 0xc2, 0x3f, 0xdb, 0x76, 0x73, 0x8d, 0x4a, 0x82, 0xab, 0x91, 0x54, 0xa1, 0x36, 0xa6, 0x5a}: "UniversalPayloadPlatformBootManagerOverrideProtocol", efi.GUID{0xdf, 0xc5, 0xdc, 0xd9, 0x07, 0x40, 0x5e, 0x43, 0x90, 0x98, 0x89, 0x70, 0x93, 0x55, 0x04, 0xb2}: "PlatformDxe", efi.GUID{0xdf, 0xcc, 0x12, 0x16, 0x49, 0x25, 0x6a, 0x46, 0xbf, 0x6f, 0xd0, 0x6d, 0xaa, 0xe6, 0x09, 0x58}: "AppleKeyMapAggregator", efi.GUID{0xdf, 0xdd, 0xc5, 0xcd, 0x9d, 0xe7, 0xec, 0x41, 0xa9, 0xb0, 0x65, 0x65, 0x49, 0x0d, 0xb9, 0xd3}: "IgdOpRegionProtocolGuid", efi.GUID{0xdf, 0xe1, 0xa2, 0x48, 0xd4, 0xf2, 0x0d, 0x49, 0x86, 0x77, 0xf7, 0xa5, 0xc6, 0xfc, 0xc9, 0x6a}: "USBIdm", efi.GUID{0xdf, 0xed, 0x74, 0x23, 0x03, 0xf2, 0xc0, 0x4f, 0xa2, 0x0e, 0x61, 0xba, 0xd7, 0x30, 0x89, 0xd6}: "IoTrap", efi.GUID{0xdf, 0xef, 0xcc, 0x95, 0x27, 0xea, 0x5d, 0x45, 0x87, 0xd5, 0xbc, 0x76, 0xca, 0x05, 0xb8, 0x71}: "AMTAutoProvision", efi.GUID{0xdf, 0xfa, 0xc7, 0xca, 0xf8, 0x36, 0x4f, 0x41, 0x8e, 0x1c, 0x8a, 0x80, 0xaa, 0x5c, 0x78, 0xd6}: "DashPldmBase", efi.GUID{0xdf, 0xfd, 0x8a, 0x5d, 0x95, 0x5c, 0xa5, 0x4d, 0xbb, 0x46, 0x83, 0x2f, 0x0d, 0x4b, 0xbc, 0x76}: "HpGraphicalFontSubComp", efi.GUID{0xdf, 0xfd, 0xdf, 0x98, 0x49, 0xce, 0x49, 0x40, 0x87, 0xff, 0xec, 0xcb, 0xd3, 0xc6, 0xc0, 0xd2}: "EcIoPeim", efi.GUID{0xe0, 0x10, 0x48, 0x20, 0x41, 0x49, 0x66, 0x4c, 0xb9, 0x9a, 0x6b, 0xee, 0x4f, 0x84, 0x45, 0x3c}: "AtherosWiFi", efi.GUID{0xe0, 0x11, 0xc5, 0x50, 0x68, 0x3c, 0xd1, 0x4f, 0xb7, 0xec, 0x25, 0x89, 0x65, 0x7e, 0xa2, 0x25}: "IDDxe", efi.GUID{0xe0, 0x25, 0x1a, 0x98, 0x83, 0x0d, 0x6d, 0x43, 0x91, 0x83, 0xc1, 0xaa, 0x53, 0xb8, 0x14, 0x38}: "ODMDiagnosticTestSmm", efi.GUID{0xe0, 0x25, 0x1a, 0x98, 0x83, 0x0d, 0x6d, 0x43, 0x91, 0x84, 0xc1, 0xaa, 0x53, 0xbb, 0x14, 0x3a}: "SmmOemServicesDriver", efi.GUID{0xe0, 0x25, 0x43, 0x09, 0xa2, 0x4d, 0x12, 0x49, 0x99, 0x0b, 0xd6, 0xdb, 0x19, 0x07, 0x75, 0x73}: "HeciAccessDxe", efi.GUID{0xe0, 0x26, 0x1a, 0x98, 0x83, 0x0d, 0x6d, 0x43, 0x91, 0x83, 0xc1, 0xaa, 0x53, 0xb8, 0x14, 0x38}: "SMBiosFunction", efi.GUID{0xe0, 0x30, 0xf9, 0xe6, 0xe5, 0xba, 0xe6, 0x40, 0x98, 0xc9, 0x4c, 0xd2, 0x29, 0x82, 0x78, 0xe7}: "IconNetworkVolume", efi.GUID{0xe0, 0x3e, 0x9d, 0x8b, 0xa4, 0x4b, 0x3b, 0x43, 0x9c, 0x48, 0x4e, 0x83, 0x0b, 0x3b, 0x40, 0xfd}: "FloppyCtrl", efi.GUID{0xe0, 0x43, 0x1d, 0x53, 0xc6, 0x5b, 0xf6, 0x4f, 0x84, 0x99, 0x5e, 0xae, 0x5b, 0x19, 0x5e, 0x53}: "PeiFramework", efi.GUID{0xe0, 0x49, 0x23, 0x7b, 0x2d, 0x52, 0x8e, 0x4f, 0xb9, 0x27, 0x69, 0xd9, 0x7c, 0x9e, 0x79, 0x5f}: "EfiPaddingRsassaPssGuid", efi.GUID{0xe0, 0x4a, 0xa3, 0x9d, 0xf9, 0xea, 0xbf, 0x4b, 0x8e, 0xc3, 0xfd, 0x60, 0x22, 0x6c, 0x44, 0xbe}: "EfiResetNotificationProtocolGuid", efi.GUID{0xe0, 0x4f, 0xad, 0x16, 0xb1, 0xb5, 0xdf, 0x11, 0x8c, 0xbf, 0x00, 0x02, 0xa5, 0xd5, 0xc5, 0x1b}: "PL310L2Cache", efi.GUID{0xe0, 0x50, 0x05, 0x51, 0xce, 0xbb, 0xbf, 0x4e, 0xbb, 0xa0, 0x94, 0x6e, 0x3d, 0x18, 0xe7, 0x05}: "PhEmulateKbcSmm", efi.GUID{0xe0, 0x51, 0xbf, 0xb2, 0x43, 0x65, 0xcb, 0x4a, 0xb0, 0x9e, 0xfd, 0x82, 0x6e, 0x1a, 0xf4, 0xc0}: "RasClvPcieErrHandProtocol", efi.GUID{0xe0, 0x52, 0xb8, 0xa0, 0x42, 0x48, 0x22, 0x42, 0x89, 0x64, 0xc8, 0x2e, 0xdc, 0xff, 0x0d, 0x6b}: "AsusUsbChargeSmm", efi.GUID{0xe0, 0x56, 0x57, 0x3e, 0x09, 0x67, 0x13, 0x43, 0x8b, 0x5a, 0x31, 0x53, 0x4a, 0x65, 0x42, 0xb8}: "OnboardTPMPei", efi.GUID{0xe0, 0x64, 0x50, 0x90, 0x9a, 0xf0, 0xcd, 0x4f, 0x87, 0x80, 0x3f, 0x10, 0xd8, 0xf0, 0x12, 0x6c}: "FchPromontoryPlusGpioSmmInit", efi.GUID{0xe0, 0x68, 0x34, 0xef, 0x0a, 0x1b, 0xd7, 0x46, 0x84, 0x2c, 0x92, 0x8e, 0x67, 0xef, 0xe0, 0xb8}: "X11DPHPeiDriver", efi.GUID{0xe0, 0x68, 0xbb, 0x24, 0x22, 0x09, 0xc4, 0x44, 0x84, 0xea, 0x95, 0xfd, 0x75, 0xe5, 0x9d, 0xe2}: "AsusGpnvVersion", efi.GUID{0xe0, 0x7c, 0xec, 0xb9, 0x59, 0x20, 0xa7, 0x49, 0xbc, 0xdf, 0xc0, 0x7d, 0x4c, 0xcc, 0x6e, 0x9e}: "DellFmpClassic", efi.GUID{0xe0, 0x7d, 0x67, 0x93, 0x9b, 0x9a, 0xdf, 0x47, 0x86, 0x74, 0x60, 0xe7, 0x68, 0x58, 0xae, 0xab}: "AudioSpeakerIdm", efi.GUID{0xe0, 0x7e, 0xae, 0x8a, 0xe6, 0x8e, 0x3b, 0x4f, 0x9a, 0x03, 0xee, 0x34, 0x37, 0x59, 0x3e, 0x03}: "OemSmmSx", efi.GUID{0xe0, 0x8a, 0x62, 0xbb, 0x4f, 0xcd, 0xfe, 0x49, 0x8d, 0x60, 0x63, 0x18, 0x6f, 0xd1, 0xe0, 0x5b}: "EfiCacheInstallPpi", efi.GUID{0xe0, 0x8d, 0x6a, 0x0b, 0x81, 0x62, 0xa2, 0x40, 0x8e, 0x9a, 0x09, 0xf1, 0xa1, 0x8a, 0x6d, 0x40}: "SystemUsbSwitchSmm", efi.GUID{0xe0, 0x9a, 0xb2, 0x1d, 0xcb, 0x9d, 0xbc, 0x43, 0x8d, 0x87, 0x5d, 0xa1, 0x49, 0x64, 0xdd, 0xe2}: "EfiUserInfoAccessSetupNormalGuid", efi.GUID{0xe0, 0x9c, 0xfb, 0x70, 0xb1, 0x2c, 0xd7, 0x4f, 0x80, 0xee, 0xab, 0x4b, 0x6c, 0xf4, 0xb4, 0x3f}: "GetHostByName", efi.GUID{0xe0, 0x9f, 0xbd, 0x74, 0x02, 0x89, 0xe3, 0x11, 0xb9, 0xd3, 0xf7, 0x22, 0x38, 0xfc, 0x9a, 0x31}: "AndroidFastbootTransportProtocolGuid", efi.GUID{0xe0, 0xa0, 0x52, 0xa0, 0xbc, 0xf7, 0xba, 0x48, 0x8d, 0xb5, 0xad, 0xf9, 0xf2, 0xf9, 0x30, 0x7b}: "DellRomArmorDxe", efi.GUID{0xe0, 0xa1, 0x2b, 0x81, 0x75, 0x6a, 0xe5, 0x4a, 0xad, 0x37, 0x63, 0xd0, 0x30, 0x97, 0x45, 0x01}: "VtioDxe", efi.GUID{0xe0, 0xaa, 0x80, 0xf8, 0xac, 0xe4, 0x64, 0x4c, 0xa3, 0x26, 0x82, 0x70, 0x9c, 0xc2, 0x41, 0xea}: "UsbDbg", efi.GUID{0xe0, 0xaa, 0xcd, 0xf6, 0x01, 0xb3, 0x02, 0x42, 0x89, 0xf6, 0x86, 0x23, 0xe6, 0xae, 0xd2, 0x6e}: "DellSmBiosStrucTherm", efi.GUID{0xe0, 0xbb, 0xc4, 0x13, 0x2c, 0x42, 0xac, 0x4c, 0x80, 0x4f, 0xfa, 0xcd, 0xba, 0x6f, 0x1a, 0x28}: "SuperIoExPei", efi.GUID{0xe0, 0xbc, 0x4d, 0xdd, 0xc2, 0x59, 0x4d, 0x4a, 0xab, 0x0d, 0x35, 0x89, 0x76, 0x02, 0x33, 0x85}: "MTKWiFiGen2Dxe", efi.GUID{0xe0, 0xc8, 0x9e, 0xa8, 0xa1, 0x0b, 0xaa, 0x40, 0xa0, 0x3e, 0xab, 0xdd, 0xa5, 0x29, 0x5c, 0xde}: "PciExpressDxe", efi.GUID{0xe0, 0xd6, 0x7d, 0xfc, 0x3c, 0x81, 0x4d, 0x43, 0xb4, 0xda, 0x3b, 0xd6, 0x49, 0xe9, 0xe1, 0x5a}: "EdkiiScoTerm", efi.GUID{0xe0, 0xda, 0x96, 0x28, 0x8a, 0x77, 0x31, 0x42, 0x86, 0xdf, 0x1f, 0x54, 0xf7, 0x52, 0xdb, 0x7b}: "FreeSpaceSkipFvCopyLib", efi.GUID{0xe0, 0xe2, 0x9b, 0x7b, 0x8a, 0xe2, 0x97, 0x41, 0xad, 0x3e, 0x32, 0xf0, 0x62, 0xf9, 0x46, 0x2c}: "AddressBasedMirror", efi.GUID{0xe0, 0xe4, 0x73, 0x90, 0xec, 0x60, 0x6e, 0x4b, 0x99, 0x03, 0x4c, 0x22, 0x3c, 0x26, 0x0f, 0x3c}: "EfiVendorKeysNvGuid", efi.GUID{0xe0, 0xe5, 0x02, 0x5b, 0x69, 0xc1, 0xf9, 0x49, 0x87, 0x9a, 0xce, 0x18, 0x06, 0xf0, 0x35, 0x7a}: "IpmiBoot", efi.GUID{0xe0, 0xe8, 0xd3, 0x37, 0x58, 0x88, 0x84, 0x4b, 0xa1, 0x06, 0x24, 0x4b, 0xb8, 0xcb, 0xfd, 0xc3}: "LenovoLoggingVariable", efi.GUID{0xe0, 0xea, 0x92, 0xed, 0x1c, 0xc3, 0x24, 0x48, 0x88, 0x02, 0x35, 0x59, 0x5e, 0xfa, 0x82, 0x87}: "WpbtDxe", efi.GUID{0xe0, 0xea, 0xaa, 0x64, 0xdf, 0x92, 0x80, 0x49, 0x86, 0x68, 0x6e, 0xb5, 0xea, 0xaf, 0x43, 0x93}: "FvInfoPei", efi.GUID{0xe0, 0xee, 0xc8, 0x5f, 0xf2, 0x9b, 0x8f, 0x49, 0xb4, 0xd3, 0xc5, 0x1e, 0xd4, 0xc8, 0x7b, 0xb4}: "LenovoSetupConfigDxe", efi.GUID{0xe0, 0xfa, 0x23, 0x86, 0x8a, 0xd6, 0x4c, 0x4e, 0x8d, 0x3a, 0xba, 0xdc, 0x1f, 0xee, 0xa0, 0x0d}: "FjSetupInterface", efi.GUID{0xe0, 0xfb, 0x29, 0x50, 0xe9, 0x39, 0xf8, 0x43, 0xa9, 0xf0, 0xe7, 0x8e, 0x17, 0x89, 0xfc, 0x27}: "SystemSwSmiAllocatorDxe", efi.GUID{0xe0, 0xfb, 0x9e, 0xf4, 0x82, 0x46, 0x71, 0x44, 0xae, 0x65, 0x00, 0xef, 0xfb, 0x47, 0x70, 0xba}: "LenovoSecureKeySmmProtocol", efi.GUID{0xe0, 0xff, 0x33, 0x8b, 0x1c, 0xd7, 0x82, 0x4f, 0x9c, 0xeb, 0xc9, 0x70, 0x58, 0xc1, 0x3f, 0x8e}: "BootFormSet", efi.GUID{0xe1, 0x05, 0x54, 0x93, 0x8c, 0x2f, 0x7c, 0x4a, 0xa8, 0x9a, 0x33, 0x60, 0x60, 0xc4, 0xb0, 0xd2}: "DellCoreService", efi.GUID{0xe1, 0x0e, 0xb4, 0xab, 0x3c, 0xd1, 0x3f, 0x48, 0x84, 0x90, 0x1e, 0xa5, 0x5f, 0x73, 0xbc, 0xc1}: "StdBoardDxe", efi.GUID{0xe1, 0x1b, 0x18, 0x2c, 0xac, 0x8b, 0x33, 0x44, 0x87, 0x3c, 0xe5, 0x07, 0x4c, 0xb5, 0xa7, 0x23}: "UbaConfigDatabasePei", efi.GUID{0xe1, 0x1e, 0xdd, 0x04, 0x38, 0x4c, 0xc7, 0x41, 0x83, 0xc6, 0x4e, 0xd6, 0xbb, 0x69, 0x2c, 0xfd}: "AaeonDioDxe", efi.GUID{0xe1, 0x21, 0x75, 0x0a, 0xf1, 0x09, 0xae, 0x44, 0x9b, 0x5f, 0x27, 0x81, 0xb7, 0x89, 0x71, 0xd6}: "SimpleBootFlag", efi.GUID{0xe1, 0x28, 0x6d, 0x22, 0x72, 0x76, 0xd5, 0x48, 0xad, 0xdc, 0xe5, 0xf9, 0x1f, 0x39, 0x8a, 0x3e}: "SetupConfigUpdateDxeExpertWorkStationRP", efi.GUID{0xe1, 0x2d, 0x5f, 0x12, 0x85, 0xfb, 0x0c, 0x44, 0xa5, 0x4c, 0x4d, 0x99, 0x35, 0x8a, 0x8d, 0x38}: "EfiAcpiS3SaveProtocolGuid", efi.GUID{0xe1, 0x3a, 0x51, 0x2d, 0x4b, 0x71, 0x93, 0x4f, 0xa5, 0x7a, 0x0a, 0x0c, 0xdd, 0xf4, 0x8e, 0xcc}: "BiosUpdateFaultToleranceDxe", efi.GUID{0xe1, 0x3f, 0x7a, 0xd7, 0xfe, 0x51, 0x13, 0x46, 0xa8, 0x1d, 0x82, 0xae, 0x24, 0x46, 0x4c, 0xfd}: "AmiTseOemPortingVar6", efi.GUID{0xe1, 0x42, 0x0e, 0x55, 0xfa, 0xb6, 0x99, 0x4e, 0xbb, 0xd9, 0x1a, 0x90, 0x1f, 0x00, 0x1d, 0x7a}: "AmiVendorKeysNvGuid", efi.GUID{0xe1, 0x4e, 0x30, 0x2a, 0xc3, 0xf3, 0x35, 0x4f, 0x95, 0xcd, 0x93, 0xdd, 0x0d, 0xa0, 0x0f, 0x2e}: "SystemSmbiosBcpDxe", efi.GUID{0xe1, 0x56, 0x19, 0xb4, 0xa2, 0x7c, 0xdb, 0x42, 0x95, 0x62, 0x16, 0x83, 0x89, 0xf0, 0xf0, 0x66}: "BootGuardPei", efi.GUID{0xe1, 0x57, 0xb1, 0xae, 0xaa, 0xec, 0x8e, 0x41, 0xbe, 0x87, 0xa8, 0xe5, 0xfa, 0xb1, 0x2d, 0x20}: "SmbiosUpdateDxe", efi.GUID{0xe1, 0x62, 0x0c, 0xe3, 0xb1, 0x8c, 0x98, 0x4d, 0xb5, 0x35, 0x43, 0x6b, 0xcd, 0x5f, 0x45, 0x66}: "LEMSataPortOverrideProtocol", efi.GUID{0xe1, 0x63, 0x2d, 0x1f, 0xbd, 0xfe, 0xc7, 0x4d, 0x9c, 0xc5, 0xba, 0x2b, 0x1c, 0xef, 0x9c, 0x5b}: "FileExploreFormSetGuid", efi.GUID{0xe1, 0x63, 0x47, 0xc4, 0x25, 0xa6, 0x82, 0x45, 0xab, 0xe3, 0x9c, 0x53, 0x29, 0xc0, 0xcd, 0x62}: "Common_LilySmm", efi.GUID{0xe1, 0x75, 0x91, 0xbb, 0x95, 0x3e, 0x7e, 0x4b, 0x87, 0x50, 0x9d, 0x6a, 0xa3, 0x4e, 0xb7, 0xf6}: "AsrockApmoff", efi.GUID{0xe1, 0x7b, 0x84, 0xee, 0xc2, 0xdb, 0xc7, 0x47, 0x86, 0x96, 0x79, 0x50, 0x1c, 0xc3, 0xe2, 0x4e}: "8042EmulationProtocol", efi.GUID{0xe1, 0x7b, 0xc6, 0x12, 0x2e, 0xad, 0x13, 0x4f, 0xa9, 0x5f, 0x6e, 0xdc, 0x2c, 0x43, 0x92, 0xde}: "MePolicyInitPei", efi.GUID{0xe1, 0x84, 0x58, 0x10, 0xda, 0x57, 0x36, 0x4f, 0x91, 0x04, 0x8d, 0x09, 0x23, 0x39, 0xd2, 0x34}: "DellThermInfoConfigDxe", efi.GUID{0xe1, 0x84, 0x6f, 0x03, 0x37, 0x7f, 0x8c, 0x42, 0xa7, 0x9e, 0x57, 0x5f, 0xdf, 0xaa, 0x84, 0xec}: "EfiIommuDMArErrorSectionGuid", efi.GUID{0xe1, 0x86, 0x3f, 0xe2, 0x6e, 0x05, 0x88, 0x48, 0xb6, 0x85, 0xcf, 0xcd, 0x67, 0xc1, 0x79, 0xd4}: "SbRun", efi.GUID{0xe1, 0x92, 0x1a, 0x20, 0x0f, 0x2d, 0xe9, 0x48, 0xa3, 0xab, 0x93, 0xe1, 0x69, 0x5a, 0x92, 0xf2}: "AppleHDA", efi.GUID{0xe1, 0x92, 0x9e, 0xea, 0xef, 0x22, 0x5f, 0x4b, 0xa5, 0xee, 0x13, 0x17, 0xb1, 0xe7, 0x7b, 0x10}: "PhCiraHotkey", efi.GUID{0xe1, 0x95, 0xaf, 0x21, 0x1f, 0x37, 0x12, 0x47, 0x9c, 0x07, 0x79, 0x8e, 0x3c, 0xb0, 0x19, 0xe4}: "LockSMRAMEntryDxe", efi.GUID{0xe1, 0x9f, 0xd0, 0xa7, 0xd4, 0x74, 0xa5, 0x4b, 0x84, 0x7c, 0x12, 0xed, 0x5b, 0x19, 0xad, 0xe4}: "PeiUsb2HostControllerPpi", efi.GUID{0xe1, 0xa2, 0x5e, 0x0a, 0x0b, 0xbe, 0xa0, 0x44, 0xa7, 0x75, 0xf4, 0x29, 0xc9, 0xa0, 0x18, 0xa0}: "PlatformInit", efi.GUID{0xe1, 0xb1, 0x91, 0x8a, 0xc7, 0x56, 0xdc, 0x4a, 0xab, 0xeb, 0x1c, 0x2c, 0xa1, 0x72, 0x9e, 0xff}: "AmiPostManagerProtocolGuid", efi.GUID{0xe1, 0xb3, 0x3b, 0x18, 0xe5, 0xa1, 0x45, 0x44, 0x8a, 0xc9, 0x0e, 0x83, 0xb6, 0x54, 0x7e, 0x0e}: "CpuFeaturesPei", efi.GUID{0xe1, 0xb4, 0xdf, 0xb7, 0x2f, 0x05, 0x9f, 0x44, 0x87, 0xbe, 0x98, 0x18, 0xfc, 0x91, 0xb7, 0x33}: "EfiRuntimeArchProtocolGuid", efi.GUID{0xe1, 0xb5, 0xdd, 0x73, 0xb4, 0x5f, 0x51, 0x47, 0xaf, 0x1e, 0x83, 0xcf, 0x75, 0xbe, 0xcb, 0xb6}: "EfiPeiConsplitAmiKeycodePpi", efi.GUID{0xe1, 0xba, 0xc8, 0x08, 0xa6, 0x92, 0xd5, 0x49, 0xff, 0xff, 0xff, 0xff, 0xba, 0x9d, 0x8d, 0xc2}: "SplashDxe", efi.GUID{0xe1, 0xbc, 0x8e, 0xd5, 0x26, 0xaf, 0x8d, 0x48, 0xbe, 0x66, 0xc1, 0x64, 0x41, 0x7f, 0x8c, 0x13}: "PciHostBridge", efi.GUID{0xe1, 0xc4, 0x77, 0x4e, 0x79, 0x78, 0x1d, 0x4a, 0x8a, 0x88, 0x58, 0x4b, 0xc2, 0xcd, 0x58, 0xc5}: "HpTriggerEfiDriverLoad", efi.GUID{0xe1, 0xca, 0xd9, 0xe7, 0x30, 0x69, 0xe3, 0x46, 0xbd, 0xf9, 0x00, 0x27, 0x44, 0x6e, 0x7d, 0xf2}: "Gpio", efi.GUID{0xe1, 0xca, 0xdc, 0x07, 0xae, 0xa9, 0xf4, 0x4e, 0xaa, 0x10, 0x46, 0x8b, 0x1c, 0x37, 0xbe, 0xcc}: "OemDxeShp", efi.GUID{0xe1, 0xcc, 0x42, 0x55, 0x5c, 0xdf, 0x1b, 0x4d, 0xab, 0xca, 0x36, 0x4f, 0x77, 0xd3, 0x99, 0xfb}: "EfiHiiCompatibilityProtocolGuid", efi.GUID{0xe1, 0xcf, 0x95, 0xef, 0x3a, 0x0d, 0x69, 0x48, 0x94, 0x8b, 0xfc, 0x36, 0xa3, 0xb1, 0x39, 0x01}: "BoardSpiBusDxe", efi.GUID{0xe1, 0xde, 0x7c, 0x6e, 0x4b, 0x41, 0xc2, 0x44, 0x9d, 0x0c, 0xbd, 0x26, 0x98, 0xf4, 0x59, 0x82}: "WakeOnLanPortingDxe", efi.GUID{0xe1, 0xe2, 0x59, 0xbc, 0x92, 0x74, 0x31, 0x40, 0x80, 0x6e, 0xc4, 0x8d, 0xcc, 0xc3, 0xa0, 0x26}: "FspInitPeim", efi.GUID{0xe1, 0xe2, 0xc0, 0xc2, 0xdb, 0xcb, 0x4c, 0x45, 0x8f, 0x27, 0x96, 0xac, 0xee, 0x19, 0x63, 0x67}: "BctBaseSmmZP", efi.GUID{0xe1, 0xe5, 0xad, 0xf1, 0x0a, 0x23, 0x73, 0x45, 0xa2, 0xbc, 0x56, 0xf9, 0x49, 0xbc, 0x9c, 0x3b}: "UpdateDsdtCrc", efi.GUID{0xe1, 0xe9, 0x9a, 0xb5, 0x27, 0xc1, 0xed, 0x4e, 0xa3, 0xa6, 0x4a, 0x07, 0x72, 0xcf, 0x7a, 0x4e}: "EsrtFmpDxe", efi.GUID{0xe1, 0xe9, 0xb7, 0xfa, 0xdd, 0x39, 0x2b, 0x4f, 0x84, 0x08, 0xe2, 0x0e, 0x90, 0x6c, 0xb6, 0xde}: "HdBootDevicePathVariablGuid", efi.GUID{0xe1, 0xeb, 0xfe, 0x69, 0x6e, 0xd8, 0xeb, 0x49, 0xb6, 0x0f, 0xa8, 0x7c, 0xb0, 0xfb, 0xc8, 0x22}: "FchSmbusDxe", efi.GUID{0xe1, 0xed, 0xc3, 0x2f, 0x14, 0x44, 0x1f, 0x4d, 0x90, 0x29, 0xd4, 0x70, 0xc7, 0xde, 0x48, 0x27}: "SioAcpiNvsArea", efi.GUID{0xe1, 0xf0, 0x5a, 0xc6, 0xb3, 0x82, 0x6a, 0x41, 0x8f, 0x0a, 0xdd, 0xd0, 0xd3, 0x09, 0x8c, 0x58}: "DellPbaUsh", efi.GUID{0xe1, 0xf3, 0xb7, 0x49, 0x08, 0x6c, 0x5b, 0x4a, 0x91, 0x1c, 0xe9, 0xe3, 0x97, 0xed, 0x41, 0x78}: "AcpiVariableHobOnSmramReserveHobThunk", efi.GUID{0xe1, 0xf6, 0xa2, 0xa8, 0x62, 0x6f, 0xfb, 0x4c, 0x9e, 0x47, 0x93, 0xcf, 0xd6, 0xd6, 0xe4, 0x76}: "DellLegacyUsbSmm", efi.GUID{0xe1, 0xf9, 0x93, 0xfd, 0x73, 0x3c, 0xe0, 0x46, 0xb7, 0xb8, 0x2b, 0xba, 0x3f, 0x71, 0x8f, 0x6c}: "TcgSmm", efi.GUID{0xe1, 0xfa, 0x77, 0x6c, 0x34, 0xa9, 0x7a, 0x45, 0x98, 0x2e, 0xbc, 0xc1, 0x2f, 0x97, 0x17, 0xad}: "AmdPspIntrusionDetectionPei", efi.GUID{0xe1, 0xff, 0xae, 0xbe, 0x33, 0x06, 0xb5, 0x41, 0x91, 0x3c, 0x93, 0x89, 0x33, 0x9c, 0x29, 0x27}: "RedfishPlatformConfigDxe", efi.GUID{0xe2, 0x04, 0x22, 0x14, 0xb1, 0xc7, 0xf9, 0x4a, 0xa7, 0x29, 0x92, 0x37, 0x58, 0xd9, 0x6d, 0x03}: "AmiLegx16Bin", efi.GUID{0xe2, 0x11, 0x6e, 0x87, 0x23, 0x5b, 0xa4, 0x4e, 0xaf, 0x2a, 0x40, 0x65, 0xef, 0xba, 0xd8, 0x41}: "LenovoVariableStoreSmm", efi.GUID{0xe2, 0x17, 0x38, 0x3a, 0x69, 0xfb, 0xbc, 0x4f, 0x83, 0x4d, 0xae, 0xe6, 0xa9, 0xb1, 0x41, 0x33}: "AmdCpmFwMessageInfoPei", efi.GUID{0xe2, 0x18, 0xf4, 0x42, 0x4b, 0x28, 0xf2, 0x41, 0xbf, 0x6a, 0xaf, 0x1c, 0x91, 0x66, 0xe6, 0x6c}: "SystemSetupHttpBootDxe", efi.GUID{0xe2, 0x19, 0x27, 0x5f, 0x35, 0x42, 0xeb, 0x44, 0xb9, 0x08, 0xcf, 0x74, 0xce, 0x26, 0xb3, 0x43}: "OemManufactureModeDxe", efi.GUID{0xe2, 0x1d, 0x3f, 0x8f, 0xe4, 0x2f, 0x5c, 0x4d, 0xa8, 0xec, 0x49, 0xe8, 0xcc, 0xa1, 0x7e, 0xbc}: "RsdpPlus", efi.GUID{0xe2, 0x20, 0x85, 0x04, 0xbc, 0x46, 0x9d, 0x82, 0x56, 0x83, 0x32, 0x9b, 0xf1, 0x16, 0x2c, 0xd2}: "BiosPowerOnSmm", efi.GUID{0xe2, 0x2c, 0xc4, 0xd6, 0x1c, 0x39, 0x45, 0x43, 0x8b, 0xfe, 0x19, 0x56, 0x32, 0xac, 0x45, 0x58}: "CertificateStorageEvent", efi.GUID{0xe2, 0x2c, 0xd0, 0x29, 0x2c, 0x4a, 0xe1, 0x45, 0x9d, 0xc1, 0xe7, 0x04, 0x9b, 0x7d, 0xb3, 0x21}: "SaDataHobGuid", efi.GUID{0xe2, 0x31, 0x52, 0x79, 0x05, 0xa2, 0x8d, 0x4b, 0x8c, 0x8d, 0x73, 0x53, 0xb7, 0x13, 0xdf, 0x7d}: "efi_pop_mid_pressed", efi.GUID{0xe2, 0x36, 0x3c, 0x85, 0xf5, 0xd7, 0xed, 0x4c, 0xbf, 0x73, 0xe0, 0x11, 0x1a, 0x64, 0x80, 0x82}: "AsusOA2Bin", efi.GUID{0xe2, 0x37, 0xcb, 0xb6, 0xfe, 0xe2, 0x0d, 0x40, 0xaa, 0xc2, 0xa0, 0x93, 0xee, 0x2c, 0x55, 0xf1}: "VariableCmosDxe", efi.GUID{0xe2, 0x3c, 0x00, 0x69, 0x96, 0xf7, 0xc4, 0x4e, 0xad, 0x17, 0xb4, 0xd4, 0x09, 0x29, 0x86, 0x36}: "MctpSmbusSmm", efi.GUID{0xe2, 0x40, 0xc6, 0x1c, 0xee, 0x28, 0x0c, 0x4d, 0x82, 0x11, 0x5d, 0x0e, 0x30, 0x96, 0x7e, 0xe6}: "DellRecoveryMgmtDxe", efi.GUID{0xe2, 0x4c, 0x03, 0x35, 0xe5, 0xa6, 0xb4, 0x4f, 0xba, 0xbe, 0xa0, 0x15, 0x6e, 0x9b, 0x25, 0x49}: "PlatDriOverrideDxe", efi.GUID{0xe2, 0x57, 0x17, 0xf1, 0x21, 0x1d, 0xbb, 0x47, 0x9e, 0x07, 0x04, 0xc6, 0x0d, 0xa0, 0x0e, 0xca}: "UnexpectedIrqWA", efi.GUID{0xe2, 0x5a, 0x55, 0x8b, 0x54, 0x42, 0xa2, 0x43, 0x83, 0x9e, 0x48, 0x69, 0x60, 0x4c, 0xcc, 0x9a}: "FspEndOfPei2Peim", efi.GUID{0xe2, 0x5e, 0xf8, 0x34, 0xc2, 0x93, 0x81, 0x44, 0xb7, 0x10, 0xd3, 0x49, 0x0c, 0xca, 0x63, 0x33}: "AsusAcpiRamSmm", efi.GUID{0xe2, 0x68, 0x56, 0x1e, 0x81, 0x84, 0xd4, 0x11, 0xbc, 0xf1, 0x00, 0x80, 0xc7, 0x3c, 0x88, 0x81}: "EfiVariableArchProtocolGuid", efi.GUID{0xe2, 0x81, 0xb1, 0x20, 0xe8, 0x33, 0x11, 0x42, 0xb9, 0xd7, 0x9b, 0x86, 0x96, 0x76, 0x4e, 0x66}: "WheaElog", efi.GUID{0xe2, 0x88, 0xdf, 0x09, 0x05, 0x0e, 0x28, 0x4f, 0xa5, 0x5f, 0x0d, 0x62, 0xbf, 0xbc, 0xf5, 0x9f}: "AmdFabricRvPei", efi.GUID{0xe2, 0x93, 0x46, 0x86, 0xe8, 0xed, 0xf8, 0x4d, 0x88, 0x71, 0x38, 0xc0, 0xba, 0xa1, 0x57, 0xeb}: "PeiFspWrapperHobProcessLibSample", efi.GUID{0xe2, 0xa1, 0x4c, 0xe7, 0x5c, 0x6e, 0x07, 0x4f, 0x98, 0x31, 0x83, 0x67, 0xb1, 0x32, 0xdb, 0x89}: "AmdPspDxeV2Rn", efi.GUID{0xe2, 0xa5, 0x91, 0x3e, 0xa1, 0x26, 0xe2, 0x4a, 0x85, 0x4b, 0x08, 0xc3, 0x9b, 0xaa, 0x0b, 0xc6}: "DellSdCardNotifyDxe", efi.GUID{0xe2, 0xb0, 0x8f, 0xc3, 0x43, 0x0c, 0xc9, 0x49, 0xb5, 0x44, 0x9b, 0x17, 0xaa, 0x4d, 0xcb, 0xa3}: "PowerManagementAcpiTables", efi.GUID{0xe2, 0xb0, 0xdb, 0x1d, 0xb5, 0x6f, 0x1f, 0x4b, 0xa1, 0x4c, 0xf2, 0xe5, 0xb5, 0xe5, 0x91, 0x68}: "aqnicdxe", efi.GUID{0xe2, 0xbb, 0xcd, 0x60, 0x51, 0x39, 0xd8, 0x42, 0xa9, 0x63, 0x86, 0x38, 0xa0, 0x02, 0xe3, 0xb5}: "SetupUtilitySilicon2", efi.GUID{0xe2, 0xc1, 0x66, 0xdc, 0x14, 0xc1, 0x0c, 0x4d, 0xac, 0xc0, 0x00, 0x3f, 0x15, 0xb3, 0xf7, 0x29}: "BctBaseSmmRN", efi.GUID{0xe2, 0xc4, 0x13, 0x35, 0xd6, 0x06, 0x21, 0x49, 0x9c, 0x2b, 0xe9, 0x38, 0x77, 0x7b, 0xa7, 0x9e}: "EblCmdLibNull", efi.GUID{0xe2, 0xca, 0x8e, 0x73, 0xf9, 0xdb, 0x00, 0x4c, 0xa0, 0xf6, 0x58, 0x6f, 0x3a, 0x50, 0x61, 0x39}: "FchMultiFchPei", efi.GUID{0xe2, 0xcf, 0xbe, 0x8f, 0x13, 0x13, 0xf6, 0x4c, 0xad, 0x2c, 0xd3, 0xb9, 0x47, 0x2f, 0x62, 0xd3}: "SmartTimer", efi.GUID{0xe2, 0xd1, 0x90, 0xdc, 0x6a, 0x55, 0xcf, 0x45, 0xb3, 0xef, 0x9d, 0xe4, 0x51, 0x80, 0x7a, 0x17}: "SaInitDxe", efi.GUID{0xe2, 0xd5, 0x0e, 0x3c, 0xea, 0x91, 0x94, 0x4b, 0x82, 0x0d, 0x9d, 0xaf, 0x9a, 0x3b, 0xb4, 0xa2}: "DmarAcpiTable", efi.GUID{0xe2, 0xd8, 0x8e, 0xc6, 0xc6, 0x9d, 0xbd, 0x4c, 0x9d, 0x94, 0xdb, 0x65, 0xac, 0xc5, 0xc3, 0x32}: "EfiSmmCommunicationProtocolGuid", efi.GUID{0xe2, 0xe2, 0x08, 0x5c, 0x70, 0xad, 0x99, 0x4c, 0x94, 0xa2, 0xae, 0x60, 0x4e, 0xa0, 0x33, 0xda}: "IcnsConvert", efi.GUID{0xe2, 0xe2, 0xee, 0xa0, 0xb7, 0xe7, 0x64, 0x49, 0x89, 0x59, 0x90, 0x82, 0x59, 0xdd, 0x09, 0x6b}: "FjAlsSmm", efi.GUID{0xe2, 0xe3, 0x0f, 0xea, 0x15, 0xf5, 0x7c, 0x46, 0x87, 0xf7, 0xc3, 0x29, 0x23, 0xde, 0x54, 0x1e}: "AmdLegacyInterrupt", efi.GUID{0xe2, 0xe9, 0x65, 0x03, 0x3e, 0xa0, 0xbe, 0x49, 0x8b, 0x2b, 0x02, 0xb7, 0xe3, 0xae, 0x95, 0x3c}: "KeyMonFilter", efi.GUID{0xe2, 0xf0, 0x1c, 0xc2, 0xbc, 0x6a, 0x3b, 0x4c, 0x9d, 0xe6, 0x3a, 0xba, 0x8c, 0x3f, 0x83, 0xc9}: "DxeIchSmbus", efi.GUID{0xe2, 0xf3, 0xc6, 0x24, 0xcd, 0x6a, 0x6b, 0x43, 0xa6, 0x04, 0x56, 0xa5, 0xcf, 0x74, 0x2a, 0x55}: "BaseFspPlatformInfoLibSample", efi.GUID{0xe2, 0xf7, 0x3e, 0xa5, 0x46, 0x9f, 0x56, 0x4b, 0xad, 0xc8, 0xfe, 0x93, 0xb2, 0x5d, 0x17, 0x58}: "FjDeviceInfoRealtekLan", efi.GUID{0xe2, 0xfd, 0xa6, 0x58, 0x73, 0xf8, 0x8b, 0x46, 0x89, 0x89, 0xdb, 0x4d, 0xe5, 0xe0, 0x6c, 0xe9}: "HddSecurityErase", efi.GUID{0xe3, 0x11, 0x8c, 0xe3, 0x8f, 0x96, 0xb8, 0x47, 0xac, 0xef, 0xac, 0xc0, 0x69, 0x3d, 0xb9, 0xff}: "EfiIchTokenSpaceGuid", efi.GUID{0xe3, 0x23, 0x64, 0xa4, 0x17, 0x46, 0xf1, 0x49, 0xb9, 0xff, 0xd1, 0xbf, 0xa9, 0x11, 0x58, 0x39}: "EfiSecurityArchProtocolGuid", efi.GUID{0xe3, 0x30, 0x12, 0x26, 0xa4, 0x22, 0x55, 0x3e, 0x40, 0xc6, 0x50, 0x48, 0x6d, 0x9f, 0x8d, 0x67}: "RTL8111dxe", efi.GUID{0xe3, 0x32, 0x60, 0x58, 0x86, 0x13, 0xcc, 0x4e, 0xb5, 0x47, 0xeb, 0x28, 0x5e, 0x21, 0x06, 0x6d}: "AmiAgesaPei", efi.GUID{0xe3, 0x38, 0x7c, 0xba, 0x1c, 0x6f, 0xd1, 0x49, 0x9c, 0xf9, 0x5c, 0x67, 0x32, 0x4e, 0xa4, 0x0b}: "FjLidDxe", efi.GUID{0xe3, 0x44, 0xef, 0x82, 0x70, 0x2c, 0xe7, 0x11, 0x8d, 0xf1, 0xb8, 0xe8, 0x56, 0x2c, 0xba, 0xfa}: "AppleVariableRuntimeDxe", efi.GUID{0xe3, 0x46, 0x79, 0x2a, 0xb2, 0x1a, 0xa9, 0x49, 0xac, 0xcb, 0xc6, 0x27, 0x51, 0x39, 0xc1, 0xa5}: "TrEEDxe", efi.GUID{0xe3, 0x4d, 0x9f, 0x8c, 0x90, 0x7b, 0xef, 0x47, 0x93, 0x08, 0x28, 0x7c, 0xec, 0xd6, 0x6d, 0xe8}: "EdkiiPlatformSpecificResetFilterPpi", efi.GUID{0xe3, 0x4e, 0x04, 0x99, 0xc1, 0x71, 0x63, 0x4c, 0xb6, 0x6f, 0x25, 0x4f, 0xab, 0xe3, 0x53, 0xca}: "RaidDriverPei", efi.GUID{0xe3, 0x55, 0x3c, 0xbf, 0x74, 0x2b, 0x22, 0x47, 0x81, 0x05, 0x62, 0x05, 0x3c, 0x27, 0xcf, 0xbc}: "PowerOnHddIdleNotification", efi.GUID{0xe3, 0x5d, 0xa6, 0x8b, 0xe1, 0x39, 0xfd, 0x4a, 0xa8, 0xfe, 0x7d, 0xd0, 0xba, 0xfe, 0xfc, 0xc0}: "DxePalLibEsal", efi.GUID{0xe3, 0x63, 0x9a, 0xa2, 0xe7, 0xe4, 0x5f, 0x49, 0x8a, 0x6a, 0x07, 0x73, 0x83, 0x00, 0xcb, 0xb3}: "AmiTcgPlatformDxe", efi.GUID{0xe3, 0x67, 0xff, 0x2e, 0x87, 0x59, 0xe8, 0x46, 0x81, 0x11, 0x80, 0xff, 0xa6, 0x7a, 0xeb, 0x93}: "DellUsbMouse", efi.GUID{0xe3, 0x6b, 0xd5, 0x4b, 0x75, 0x49, 0x8a, 0x4d, 0xa0, 0xad, 0xc4, 0x91, 0x20, 0x4b, 0x5d, 0x4d}: "EfiAdapterInfoUndiIpv6SupportGuid", efi.GUID{0xe3, 0x6c, 0x41, 0xad, 0x83, 0xa4, 0xb1, 0x45, 0x94, 0xc2, 0x4b, 0x4e, 0x4d, 0x57, 0x55, 0x62}: "TcgMor", efi.GUID{0xe3, 0x6e, 0x7e, 0x69, 0xaf, 0x2e, 0xcc, 0x41, 0xac, 0x6e, 0xf4, 0xef, 0xdf, 0xe9, 0x3e, 0x6d}: "AsfMsg", efi.GUID{0xe3, 0x71, 0x1c, 0xce, 0xb3, 0xec, 0xd2, 0x4e, 0x9d, 0xf4, 0x2b, 0x38, 0xab, 0x65, 0xb0, 0xbe}: "DellDiagManager", efi.GUID{0xe3, 0x74, 0x1b, 0xde, 0x7f, 0x4a, 0x08, 0xfe, 0x05, 0x8e, 0xac, 0x86, 0x78, 0xf9, 0x91, 0x12}: "ExternalUsbPortConfigSmm", efi.GUID{0xe3, 0x74, 0x1b, 0xde, 0x7f, 0x4a, 0x08, 0xfe, 0x05, 0x8e, 0xac, 0x86, 0x78, 0xf9, 0x91, 0x14}: "UpdateMarshalString", efi.GUID{0xe3, 0x74, 0x1b, 0xde, 0x7f, 0x4a, 0x08, 0xfe, 0x05, 0x8e, 0xac, 0x86, 0x78, 0xf9, 0x91, 0x15}: "HddSMARTCheckDxe", efi.GUID{0xe3, 0x74, 0x1b, 0xde, 0x7f, 0x4a, 0x08, 0xfe, 0x05, 0x8e, 0xac, 0x86, 0x78, 0xf9, 0x91, 0x16}: "UpdateHardwareSignature", efi.GUID{0xe3, 0x7b, 0x27, 0x7d, 0x78, 0x87, 0x39, 0x41, 0xa3, 0x3c, 0x73, 0x80, 0x65, 0x72, 0x00, 0x98}: "FjIbvSfuSecFlashAbstractionDxeProtocol", efi.GUID{0xe3, 0x7c, 0x24, 0x66, 0xc5, 0xf9, 0xbb, 0x44, 0xb5, 0x3a, 0x7e, 0xa9, 0x6c, 0x43, 0x5f, 0xc1}: "H19ReflowProcess", efi.GUID{0xe3, 0x7f, 0x10, 0x1e, 0x5d, 0x56, 0xe0, 0x4a, 0x94, 0xb5, 0x56, 0x3d, 0x9f, 0x96, 0xbf, 0xc8}: "EfiSmcInBandLoadDefault", efi.GUID{0xe3, 0x80, 0xef, 0xa0, 0xab, 0xf9, 0xba, 0x4c, 0x98, 0xfd, 0x70, 0x46, 0x20, 0xf4, 0x04, 0x8d}: "SecFlashUpdDxe", efi.GUID{0xe3, 0x8c, 0x55, 0x6b, 0xe5, 0x69, 0x67, 0x4c, 0xa6, 0x34, 0xf7, 0xfe, 0x72, 0xad, 0xbe, 0x84}: "BlockMmioProtocolGuid", efi.GUID{0xe3, 0x8c, 0x7b, 0x81, 0x6a, 0xbe, 0x26, 0x47, 0xbf, 0x4c, 0xa6, 0xbf, 0x69, 0x06, 0x14, 0xf2}: "SalPreMem", efi.GUID{0xe3, 0x8d, 0xc3, 0x02, 0x92, 0xfb, 0x29, 0x4b, 0x94, 0x30, 0xec, 0xe6, 0xd0, 0xc0, 0xf3, 0xb0}: "FjMfgServicesDxe", efi.GUID{0xe3, 0x8f, 0x94, 0x5e, 0xd3, 0x26, 0xb5, 0x42, 0xaf, 0x17, 0x61, 0x02, 0x87, 0x18, 0x8d, 0xec}: "EfiDiskInfoIdeInterfaceGuid", efi.GUID{0xe3, 0x94, 0x0b, 0xc3, 0xf2, 0xc8, 0xb0, 0x4a, 0x91, 0xab, 0xfa, 0x8d, 0xf6, 0x21, 0xb1, 0xc9}: "MnpDxe", efi.GUID{0xe3, 0x96, 0xb3, 0xed, 0xdc, 0x2d, 0x96, 0x43, 0xbc, 0xa5, 0x12, 0x02, 0xd3, 0x00, 0x5a, 0xea}: "Tcg2PhysicalPresenceDxe", efi.GUID{0xe3, 0x97, 0x04, 0xf0, 0xa2, 0xbf, 0xa1, 0x41, 0x9d, 0x29, 0x54, 0xc2, 0xe9, 0x37, 0x21, 0xc5}: "EfiStandaloneSmmNonSecureBuffer", efi.GUID{0xe3, 0x9c, 0x35, 0xab, 0xb3, 0x99, 0x18, 0xae, 0xc8, 0x9d, 0x95, 0xd3, 0xb0, 0x72, 0xe1, 0x9b}: "EfiStatusCodeDataTypeError", efi.GUID{0xe3, 0xa6, 0x2f, 0xe0, 0xf0, 0xaf, 0xbf, 0x47, 0x93, 0xd6, 0x3b, 0xde, 0xdf, 0x69, 0x0b, 0xbc}: "BoardKvmNetworkStack", efi.GUID{0xe3, 0xa7, 0xa6, 0xdb, 0x57, 0xbb, 0xe7, 0x4b, 0x8a, 0xf8, 0xd5, 0x78, 0xdb, 0x7e, 0x56, 0x87}: "EfiTscFrequencyGuid", efi.GUID{0xe3, 0xa8, 0xfe, 0xfe, 0x73, 0x96, 0x5d, 0x4a, 0xa8, 0x65, 0x88, 0x35, 0x1d, 0x21, 0x71, 0xce}: "AmdDmarControlDxe", efi.GUID{0xe3, 0xad, 0x6b, 0xba, 0x8b, 0xb3, 0xad, 0x49, 0xad, 0x8f, 0xd6, 0x08, 0x6f, 0x24, 0x0e, 0x78}: "AsusApmDxe", efi.GUID{0xe3, 0xb9, 0xaa, 0xa5, 0x27, 0xc7, 0xcd, 0x48, 0x8b, 0xbf, 0x42, 0x72, 0x33, 0x85, 0x49, 0x48}: "EfiI2cHostProtocolGuid", efi.GUID{0xe3, 0xba, 0xbb, 0xc4, 0x91, 0xf8, 0x4a, 0x4d, 0x90, 0xee, 0x0f, 0x05, 0xd9, 0x32, 0xc1, 0x51}: "FpdtPei", efi.GUID{0xe3, 0xc2, 0x4b, 0x7c, 0x7e, 0x7c, 0xd5, 0x43, 0xae, 0xbf, 0xff, 0x57, 0x81, 0x0a, 0xc2, 0xda}: "AsusWmiAtkDxeCore", efi.GUID{0xe3, 0xd1, 0x9e, 0xb0, 0xdf, 0xdd, 0x9f, 0x42, 0x97, 0x80, 0xc3, 0xb0, 0xc4, 0x85, 0x79, 0x24}: "ScsConfigGuid", efi.GUID{0xe3, 0xe2, 0x3d, 0xd9, 0x27, 0x37, 0x5b, 0x4d, 0xb4, 0x9f, 0x77, 0x7c, 0x93, 0xa9, 0x71, 0xd3}: "OpromUpdateDxeLightningRidgeEXECB3", efi.GUID{0xe3, 0xe6, 0xce, 0xe1, 0x42, 0x6c, 0x4f, 0x4a, 0x91, 0x6e, 0x38, 0x38, 0x52, 0x90, 0xa5, 0x56}: "SnpDxe", efi.GUID{0xe3, 0xea, 0x52, 0xab, 0x20, 0x1e, 0x14, 0x41, 0xb6, 0x1a, 0xec, 0x3e, 0xcd, 0xaa, 0xc1, 0xf0}: "AdlNxpPei", efi.GUID{0xe3, 0xef, 0x5a, 0xd6, 0xb8, 0x43, 0xcc, 0x42, 0xff, 0xff, 0xff, 0xff, 0x07, 0x45, 0x70, 0x63}: "RealtekCardReaderDxe", efi.GUID{0xe3, 0xf0, 0x5f, 0x7d, 0xb7, 0x2f, 0x19, 0x4e, 0x84, 0x19, 0x44, 0x26, 0x6c, 0xb6, 0x00, 0x00}: "DP", efi.GUID{0xe3, 0xf4, 0xd4, 0xc7, 0xea, 0xda, 0xb0, 0x40, 0x88, 0x46, 0xf4, 0xca, 0xf3, 0x13, 0x5c, 0xe8}: "BiosProtectDxe", efi.GUID{0xe3, 0xfb, 0xed, 0x2f, 0x63, 0xec, 0x1a, 0x4b, 0x8d, 0x28, 0x12, 0x94, 0x91, 0x2c, 0xfa, 0x2b}: "MobileDiagBinary", efi.GUID{0xe3, 0xfe, 0x36, 0xfd, 0x33, 0x7b, 0x9e, 0x4c, 0x83, 0x6e, 0x9a, 0xa2, 0x6a, 0x9e, 0x31, 0x49}: "BiosAcm_Dale", efi.GUID{0xe4, 0x01, 0xf9, 0xb0, 0x24, 0xc4, 0xde, 0x45, 0x90, 0x81, 0x95, 0xe2, 0x0b, 0xde, 0x6f, 0xb5}: "TcgConfigFormSetGuid", efi.GUID{0xe4, 0x05, 0xef, 0xf5, 0x38, 0xd5, 0x74, 0x47, 0x8f, 0x1b, 0xe9, 0x77, 0x30, 0x11, 0xe0, 0x38}: "FspInitDonePpiGuid", efi.GUID{0xe4, 0x0d, 0x2f, 0x79, 0xb7, 0xec, 0xa9, 0x4e, 0xb2, 0x5e, 0xa5, 0x31, 0xfb, 0xa3, 0x68, 0x09}: "H19AesEncryptPswd", efi.GUID{0xe4, 0x0e, 0xd6, 0x56, 0xcf, 0x5c, 0x5c, 0x48, 0xbb, 0xbb, 0xfe, 0xda, 0xe2, 0xb2, 0x41, 0x46}: "RegAccessDxe", efi.GUID{0xe4, 0x11, 0x8a, 0xb0, 0xb7, 0xe2, 0x75, 0x4b, 0xb5, 0x15, 0xaf, 0x61, 0x06, 0x68, 0xbf, 0xd1}: "EdkiiPeiBootInCapsuleOnDiskModePpi", efi.GUID{0xe4, 0x12, 0x07, 0x39, 0xdc, 0x0e, 0x7d, 0x44, 0x94, 0x92, 0x3f, 0xbc, 0x99, 0x6d, 0xd0, 0x44}: "H19CapsuleSystemFirmware", efi.GUID{0xe4, 0x12, 0xcf, 0xe1, 0x2b, 0x76, 0x76, 0x45, 0xa1, 0x58, 0x9b, 0x25, 0x5a, 0x82, 0x8a, 0xa7}: "gear2", efi.GUID{0xe4, 0x2c, 0x6f, 0xa0, 0xbf, 0x10, 0x1d, 0x4d, 0x84, 0x36, 0x45, 0xe5, 0x96, 0xe7, 0x37, 0x77}: "USBTimingEx", efi.GUID{0xe4, 0x2c, 0x6f, 0xa0, 0xbf, 0x10, 0x1d, 0x4d, 0x84, 0x36, 0x45, 0xe5, 0x96, 0xe7, 0x3b, 0x67}: "DaylightSavBoot", efi.GUID{0xe4, 0x2f, 0x86, 0x75, 0xc6, 0x4f, 0x88, 0x41, 0x80, 0x4b, 0x29, 0xdc, 0x77, 0x33, 0x17, 0x8b}: "StallServicePei", efi.GUID{0xe4, 0x35, 0x8a, 0x32, 0xc5, 0xf0, 0x56, 0x44, 0xa4, 0xe4, 0x93, 0x6e, 0xfd, 0xe8, 0xce, 0xf6}: "AmiI2cMasterBinrary", efi.GUID{0xe4, 0x36, 0xeb, 0x62, 0xdc, 0x61, 0x61, 0x48, 0x94, 0x51, 0x45, 0xab, 0x2d, 0x3e, 0xfa, 0xba}: "BiosImageInterface", efi.GUID{0xe4, 0x4a, 0x15, 0x1d, 0xdb, 0x5b, 0x41, 0x43, 0x90, 0xe2, 0x32, 0x53, 0x16, 0x79, 0xcf, 0x14}: "TypeCEventMediator", efi.GUID{0xe4, 0x52, 0xcc, 0x3c, 0xd8, 0x56, 0xfa, 0x4a, 0xa9, 0xcd, 0x0e, 0x8e, 0x2d, 0x81, 0x48, 0x8f}: "AsusSsidUpdate", efi.GUID{0xe4, 0x57, 0xa9, 0xc6, 0x03, 0x83, 0x61, 0x47, 0xa0, 0x84, 0x92, 0xc0, 0x69, 0x2d, 0x90, 0xf9}: "PoofAnimationState3", efi.GUID{0xe4, 0x61, 0x22, 0x49, 0x59, 0x06, 0x4c, 0x42, 0x82, 0xb6, 0x73, 0x27, 0x43, 0x89, 0xe7, 0xa7}: "DellRaidRom", efi.GUID{0xe4, 0x70, 0x58, 0x0e, 0x25, 0x05, 0xad, 0x40, 0x95, 0xa8, 0x0f, 0xff, 0x15, 0x5b, 0x8f, 0xc0}: "AmiSmbiosElogSupport", efi.GUID{0xe4, 0x71, 0x14, 0x40, 0x79, 0x9e, 0x64, 0x46, 0xbf, 0xb0, 0x17, 0x95, 0x24, 0x23, 0x05, 0x67}: "LenovoVproIderAsfBoot", efi.GUID{0xe4, 0x75, 0x91, 0xfd, 0x3a, 0x94, 0x85, 0x48, 0xa6, 0x1b, 0x40, 0xf6, 0x39, 0xbc, 0x71, 0xd3}: "MAPS_SmartFanSmm", efi.GUID{0xe4, 0x94, 0x46, 0xa1, 0xdf, 0x78, 0xf1, 0x4e, 0xa1, 0x18, 0x76, 0x54, 0xff, 0x6c, 0xfa, 0x9d}: "IpmiSdrReader", efi.GUID{0xe4, 0x95, 0x3d, 0x7e, 0xf8, 0x89, 0xb9, 0x41, 0xb7, 0x88, 0x5f, 0xb2, 0x2d, 0x77, 0xf9, 0xa3}: "SmcNVDIMMDxeDriver", efi.GUID{0xe4, 0xa9, 0x84, 0xeb, 0x8f, 0x28, 0x37, 0x46, 0xac, 0x61, 0x6d, 0x39, 0x66, 0xef, 0x61, 0x79}: "DellRecoveryDxe", efi.GUID{0xe4, 0xb0, 0x5c, 0x43, 0x9a, 0x7c, 0xb7, 0x4b, 0x99, 0x07, 0x8f, 0xd4, 0x64, 0x3e, 0x97, 0x8a}: "AuthVariableLibNull", efi.GUID{0xe4, 0xbc, 0x02, 0x58, 0xee, 0xee, 0x33, 0x4e, 0xa1, 0x30, 0xeb, 0xad, 0x27, 0xf0, 0xe4, 0x39}: "MsegSmramGuid", efi.GUID{0xe4, 0xbf, 0x4f, 0x22, 0xb6, 0xad, 0xf2, 0x4d, 0xb8, 0x35, 0x60, 0x21, 0x82, 0xae, 0xef, 0x20}: "Clock", efi.GUID{0xe4, 0xc2, 0xe6, 0x66, 0x45, 0x02, 0x45, 0x45, 0x81, 0x65, 0x12, 0x32, 0x24, 0x80, 0xaf, 0x31}: "AdvancedPmaxDxe", efi.GUID{0xe4, 0xd1, 0x00, 0xd4, 0x14, 0xa3, 0x2b, 0x44, 0x89, 0xed, 0xa9, 0x2e, 0x4c, 0x81, 0x97, 0xcb}: "EfiQuarkCapsuleGuid", efi.GUID{0xe4, 0xd3, 0x86, 0xf7, 0x03, 0xb0, 0x9d, 0x4c, 0x96, 0xa3, 0xa4, 0xfa, 0x84, 0xef, 0x96, 0x03}: "DellDeviceCfgDrv", efi.GUID{0xe4, 0xdf, 0x12, 0xe5, 0x44, 0xbf, 0x0d, 0x48, 0x9b, 0x7a, 0x77, 0x7b, 0x0b, 0xe3, 0x27, 0x75}: "EfiSmmBiosWriteDispatchProtocol", efi.GUID{0xe4, 0xe1, 0xc8, 0xac, 0x9f, 0x9f, 0x40, 0x4e, 0xa5, 0x7e, 0xf9, 0x9e, 0x52, 0xf3, 0x4c, 0xa5}: "AmtForcePushPetPolicy", efi.GUID{0xe4, 0xe7, 0xa1, 0xbe, 0x23, 0x9c, 0x36, 0x44, 0xb3, 0xfd, 0x44, 0x20, 0xdc, 0x67, 0x78, 0xf8}: "USBCSecurity", efi.GUID{0xe4, 0xf0, 0x2a, 0xf4, 0x2f, 0x18, 0x2b, 0x40, 0x8c, 0x8d, 0xcb, 0x54, 0xd5, 0x05, 0x32, 0x8c}: "SmmNoBootDeviceCsm", efi.GUID{0xe4, 0xfc, 0xb5, 0xdc, 0x16, 0x21, 0x7b, 0x4e, 0xbb, 0x83, 0x2f, 0xc7, 0x32, 0x92, 0x61, 0xbd}: "NvmExpressSmm", efi.GUID{0xe5, 0x16, 0xff, 0x45, 0xb2, 0x02, 0x89, 0x4c, 0x86, 0x04, 0xe6, 0x8c, 0x10, 0xdd, 0xe1, 0x07}: "SmmCommonService", efi.GUID{0xe5, 0x1b, 0x41, 0x0f, 0x0c, 0xb1, 0xda, 0x4d, 0xb2, 0x8c, 0x86, 0x8f, 0xc2, 0x47, 0x89, 0xf8}: "AmdVariableProtection", efi.GUID{0xe5, 0x27, 0xbe, 0x28, 0xcc, 0x66, 0x31, 0x4a, 0xa3, 0x15, 0xdb, 0x14, 0xc3, 0x74, 0x4d, 0x85}: "IscsiV6Private", efi.GUID{0xe5, 0x2d, 0x72, 0x63, 0x4a, 0xec, 0x37, 0x42, 0x95, 0x3f, 0x55, 0x02, 0x24, 0x67, 0x76, 0xb2}: "EventLogSmm", efi.GUID{0xe5, 0x34, 0x26, 0x7a, 0xb0, 0x4d, 0x01, 0x4e, 0xab, 0x8b, 0xb8, 0x33, 0xe5, 0xf2, 0x5a, 0xf1}: "FlashControllerNvsDxe", efi.GUID{0xe5, 0x40, 0x56, 0x4d, 0x02, 0x27, 0xf8, 0x4d, 0x88, 0xf4, 0x56, 0x48, 0x86, 0xfc, 0x43, 0xdc}: "PeiTxtScleanPpi", efi.GUID{0xe5, 0x45, 0xe5, 0x8f, 0xa9, 0xdc, 0x52, 0x4d, 0xbf, 0xcd, 0x8f, 0x13, 0xe7, 0x17, 0x01, 0x5f}: "AmiReflashProtocolGuid", efi.GUID{0xe5, 0x50, 0x59, 0x6e, 0x10, 0x86, 0xc9, 0x4a, 0x91, 0x53, 0xa3, 0xd3, 0x52, 0x12, 0x4a, 0x7a}: "AmdCcxVhRnSmm", efi.GUID{0xe5, 0x53, 0xe0, 0x83, 0xf6, 0x3b, 0x2d, 0x4c, 0x9b, 0x86, 0x72, 0xbe, 0x3c, 0xf2, 0xed, 0xcc}: "I2cMouseDxe", efi.GUID{0xe5, 0x54, 0x66, 0xec, 0x0c, 0x15, 0x85, 0x41, 0xbe, 0xbb, 0xe8, 0xe5, 0xcf, 0x07, 0x63, 0xb5}: "LenovoTpmConfigSmm", efi.GUID{0xe5, 0x55, 0x0b, 0xe4, 0xa2, 0x20, 0xb0, 0x41, 0xa1, 0xaa, 0x42, 0x04, 0x0c, 0x98, 0xff, 0x9d}: "WakeEventDxe", efi.GUID{0xe5, 0x59, 0x8b, 0x15, 0x4b, 0xde, 0x64, 0x49, 0x83, 0x06, 0x40, 0xc0, 0x3f, 0x5b, 0x5d, 0x57}: "FjMeDataRecoveryEventLogDxe", efi.GUID{0xe5, 0x5f, 0x3b, 0xbb, 0x36, 0x47, 0xda, 0x48, 0x8c, 0x9f, 0x76, 0xce, 0x08, 0x5f, 0x05, 0x15}: "FchSmbusPei", efi.GUID{0xe5, 0x65, 0x1b, 0x95, 0x72, 0x88, 0xed, 0x41, 0xad, 0x1d, 0xd5, 0x68, 0x1f, 0x4a, 0xf0, 0x33}: "EfiSpiHostProtocolGuid", efi.GUID{0xe5, 0x6a, 0x31, 0xcf, 0x83, 0xe1, 0x28, 0x45, 0xb3, 0x51, 0xe6, 0x5d, 0x34, 0x81, 0x25, 0x3b}: "EmbeddedDxe", efi.GUID{0xe5, 0x6f, 0xa7, 0x28, 0xd7, 0x43, 0xa3, 0x48, 0x97, 0x14, 0xc1, 0xb7, 0xbd, 0xd6, 0xdf, 0xb6}: "RedfishDiscoverDxe", efi.GUID{0xe5, 0x78, 0x5a, 0x33, 0x2d, 0x7d, 0xb9, 0x45, 0xb3, 0xb1, 0xbe, 0x96, 0x4e, 0x73, 0x1d, 0xab}: "DellFmpNvme", efi.GUID{0xe5, 0x81, 0xc2, 0x98, 0x06, 0xf9, 0xdd, 0x43, 0xa9, 0x2b, 0xb0, 0x03, 0xbf, 0x27, 0x65, 0xda}: "PeiNtThunkPpiGuid", efi.GUID{0xe5, 0x83, 0xab, 0x5a, 0x27, 0xf0, 0xa7, 0x4c, 0xbf, 0xd0, 0x16, 0x35, 0x8c, 0xc9, 0xe4, 0x53}: "WdtDxe", efi.GUID{0xe5, 0x83, 0xba, 0x5b, 0x27, 0xf0, 0xa7, 0x4c, 0xbf, 0xd0, 0x16, 0x35, 0x8c, 0xc9, 0xe1, 0x23}: "IccOverClocking", efi.GUID{0xe5, 0x99, 0x57, 0xe0, 0x4b, 0xdb, 0x1c, 0x45, 0xac, 0x87, 0x58, 0x93, 0xdd, 0x8e, 0x42, 0x95}: "FchTaishanDxe", efi.GUID{0xe5, 0x9a, 0x28, 0x65, 0x89, 0x15, 0x4c, 0x48, 0xa6, 0x10, 0x90, 0xe1, 0x0a, 0xc2, 0xdb, 0x28}: "SiSaPolicyPpiGuid", efi.GUID{0xe5, 0xa1, 0xbe, 0x50, 0xc5, 0xa2, 0xe9, 0x46, 0x9b, 0x3a, 0x59, 0x59, 0x65, 0x16, 0xb0, 0x0a}: "ArmVirtVariable", efi.GUID{0xe5, 0xaa, 0xed, 0x86, 0x3c, 0x07, 0x89, 0x4c, 0xb9, 0x49, 0x89, 0x84, 0xac, 0x8a, 0x55, 0xf3}: "SdMmcDevice", efi.GUID{0xe5, 0xaf, 0x9b, 0xaf, 0x59, 0x34, 0x03, 0x48, 0xb8, 0xee, 0x5d, 0x6f, 0xc7, 0xfc, 0x51, 0x1e}: "ApobRsPei", efi.GUID{0xe5, 0xc9, 0x9a, 0x2f, 0xe9, 0xe3, 0x96, 0x40, 0x9e, 0xe9, 0x28, 0xaa, 0x6f, 0x76, 0x3e, 0x59}: "DellHttpsBootManagerSmm", efi.GUID{0xe5, 0xca, 0xdf, 0x95, 0x28, 0xbb, 0x6b, 0x4d, 0xb1, 0xe2, 0x3a, 0xf3, 0xa6, 0xbf, 0x43, 0x4f}: "PTID", efi.GUID{0xe5, 0xcd, 0x05, 0x92, 0xe5, 0x5a, 0x4b, 0x4a, 0xbf, 0xbf, 0xf6, 0x21, 0x19, 0x67, 0xee, 0xf9}: "LibLocale", efi.GUID{0xe5, 0xd7, 0x01, 0x77, 0x1d, 0x7d, 0x32, 0x44, 0xa4, 0x68, 0x67, 0x3d, 0xab, 0x8a, 0xde, 0x60}: "LdrMemoryDescriptorGuid", efi.GUID{0xe5, 0xda, 0x66, 0x6e, 0x08, 0x41, 0xb5, 0x40, 0x89, 0xa9, 0xc6, 0x10, 0x3f, 0x06, 0x39, 0xec}: "GlobeBorder", efi.GUID{0xe5, 0xef, 0x9a, 0xef, 0xd3, 0x2b, 0x31, 0x40, 0xaf, 0x7d, 0x5e, 0xfe, 0x5a, 0xbb, 0x9a, 0x0d}: "PeiLockPhysicalPresencePpiGuid", efi.GUID{0xe6, 0x01, 0xe5, 0x7c, 0xbb, 0x4b, 0x8b, 0x47, 0x9b, 0x41, 0x5f, 0xa6, 0x6a, 0x36, 0x04, 0x2a}: "AmdRasBrhServiceDxe", efi.GUID{0xe6, 0x09, 0xe4, 0x97, 0xc1, 0x4c, 0xd9, 0x11, 0x81, 0xf6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}: "MiniSetupResourceSection", efi.GUID{0xe6, 0x0b, 0x50, 0x0f, 0xe4, 0xec, 0xd8, 0x4e, 0x90, 0x81, 0x9a, 0xa9, 0xa5, 0x23, 0xfb, 0x7b}: "HstiPublishCompleteProtocolGuid", efi.GUID{0xe6, 0x0b, 0x57, 0x93, 0xd5, 0x3a, 0xc8, 0x45, 0x8f, 0xa6, 0x9a, 0x86, 0x33, 0xe2, 0x2d, 0x2b}: "DxeCallback", efi.GUID{0xe6, 0x11, 0xd3, 0xb4, 0x1d, 0x72, 0x51, 0x40, 0x95, 0x6d, 0x24, 0x10, 0xc1, 0xd7, 0x89, 0xaa}: "TseSwitchingToPostScreen", efi.GUID{0xe6, 0x1a, 0x31, 0x9d, 0x7b, 0x83, 0xee, 0x41, 0x90, 0x7c, 0xba, 0x3a, 0x87, 0x66, 0xce, 0x5e}: "SgxLateInitSPR", efi.GUID{0xe6, 0x1d, 0x33, 0xf3, 0x55, 0x4a, 0xe4, 0x44, 0xb7, 0x67, 0x74, 0x53, 0xf7, 0xa1, 0xa0, 0x21}: "MicrocodeUpdate", efi.GUID{0xe6, 0x1d, 0xc6, 0x2f, 0x91, 0x17, 0x9c, 0x47, 0x8a, 0x32, 0x7a, 0xbb, 0x69, 0xa4, 0xd8, 0xd0}: "AmdPspFtpmPei", efi.GUID{0xe6, 0x1d, 0xe0, 0x4d, 0xbb, 0x7c, 0x86, 0x47, 0x9f, 0x2a, 0x9b, 0x9c, 0x7c, 0x97, 0xac, 0x06}: "S3RestoreAcpiPei", efi.GUID{0xe6, 0x2a, 0x02, 0xfd, 0x36, 0xcf, 0xf8, 0x42, 0xe3, 0x60, 0x23, 0x09, 0x23, 0x72, 0x57, 0xb9}: "AmdNbioIOMMUSSPPei", efi.GUID{0xe6, 0x2f, 0x0c, 0x90, 0x9f, 0x67, 0x93, 0x4b, 0xb6, 0x56, 0x25, 0x13, 0x6f, 0xa9, 0x39, 0x46}: "SelfhealingSupportShowInSetup", efi.GUID{0xe6, 0x37, 0xa7, 0x91, 0x54, 0x7b, 0x5f, 0x4b, 0xa4, 0x91, 0xed, 0x5e, 0xf5, 0xc5, 0xa7, 0x32}: "LastBootErrorLog", efi.GUID{0xe6, 0x3b, 0xa3, 0xdd, 0x6b, 0x4a, 0xf2, 0x41, 0x80, 0x67, 0xed, 0x4f, 0xe5, 0x0b, 0xea, 0x2b}: "FjDfciDxe", efi.GUID{0xe6, 0x41, 0x12, 0x1a, 0x19, 0x8f, 0xa9, 0x41, 0xbc, 0x0e, 0xe8, 0xef, 0x39, 0xe0, 0x65, 0x46}: "EfiHiiImageExProtocolGuid", efi.GUID{0xe6, 0x47, 0x2f, 0x93, 0x62, 0x23, 0x02, 0x40, 0x80, 0x3e, 0x3c, 0xd5, 0x4b, 0x13, 0x8f, 0x85}: "EfiScsiIoProtocolGuid", efi.GUID{0xe6, 0x53, 0x65, 0x8e, 0x52, 0xa1, 0x6a, 0x4a, 0x96, 0xc6, 0x01, 0x6f, 0xed, 0xc3, 0x49, 0x5e}: "AmdPlatformCustomizePei", efi.GUID{0xe6, 0x6f, 0xd3, 0xcd, 0x3e, 0xcf, 0x06, 0x4b, 0x92, 0x41, 0x0c, 0x8c, 0x45, 0x09, 0x80, 0x49}: "AmdSocAm5RplDxe", efi.GUID{0xe6, 0x74, 0xea, 0xd9, 0x4d, 0x0b, 0x16, 0x49, 0x98, 0x21, 0xeb, 0x58, 0xb8, 0x62, 0x11, 0xd8}: "SbPcdDxe", efi.GUID{0xe6, 0x7a, 0x99, 0x86, 0x43, 0xd4, 0x39, 0x49, 0xb7, 0x29, 0xa3, 0xd0, 0xf3, 0x2f, 0xb7, 0x72}: "OneClickRecovery", efi.GUID{0xe6, 0x82, 0x3a, 0x4e, 0x3f, 0xe4, 0x0a, 0x46, 0x86, 0x6e, 0x9b, 0x5a, 0xab, 0x80, 0x44, 0x48}: "EslIp4ServiceGuid", efi.GUID{0xe6, 0x83, 0xba, 0x5b, 0x27, 0xf0, 0xa7, 0x4c, 0xbf, 0xd0, 0x16, 0x35, 0x8c, 0xc9, 0xe1, 0x23}: "IntelIvbGopDriver", efi.GUID{0xe6, 0x83, 0xeb, 0x5a, 0x55, 0x3a, 0x99, 0x4f, 0xb9, 0x93, 0xc9, 0x1e, 0xb0, 0x59, 0xc1, 0x52}: "LEMDiskRelatedProtocolOnVmd", efi.GUID{0xe6, 0x86, 0x02, 0x24, 0xd1, 0x55, 0xd2, 0x4d, 0x8e, 0x9a, 0xad, 0x26, 0x56, 0x9c, 0x7a, 0xbd}: "BoardInitSmm", efi.GUID{0xe6, 0x86, 0xca, 0x3b, 0xdd, 0xff, 0xf8, 0x47, 0x9e, 0x76, 0x0d, 0x7e, 0x17, 0x06, 0xf6, 0xcd}: "ModernPreloadDxe", efi.GUID{0xe6, 0x89, 0xfb, 0x91, 0x82, 0xf2, 0xbc, 0x49, 0xac, 0x80, 0x27, 0x5e, 0x50, 0xb7, 0xb2, 0x98}: "XnotePlatformPolicyFsp", efi.GUID{0xe6, 0x8f, 0x5f, 0x40, 0x13, 0x52, 0x85, 0x4b, 0xb8, 0x21, 0x97, 0xb7, 0x7a, 0xff, 0x79, 0x5b}: "ASM104X_DXE", efi.GUID{0xe6, 0x96, 0x6c, 0x30, 0x13, 0x76, 0xe9, 0x44, 0xa5, 0x88, 0x95, 0x60, 0x9e, 0xba, 0x01, 0xa1}: "BctBaseSmmBRH", efi.GUID{0xe6, 0x9b, 0xd2, 0x1f, 0xd0, 0x70, 0xa4, 0x42, 0xa6, 0xe7, 0xe5, 0xd1, 0x0e, 0x6a, 0xc3, 0x76}: "AmiHddPasswordVerified", efi.GUID{0xe6, 0x9f, 0x1c, 0x92, 0xf3, 0x81, 0x3e, 0x42, 0xb1, 0xc2, 0xe9, 0x28, 0x15, 0x05, 0x4b, 0x60}: "CrbModernStandbySmm", efi.GUID{0xe6, 0xa3, 0x73, 0xdd, 0xdb, 0x9f, 0x0e, 0x48, 0x81, 0xa6, 0xa2, 0xd8, 0x5d, 0x22, 0x0b, 0x8c}: "DellXmlParser", efi.GUID{0xe6, 0xa6, 0xf0, 0x64, 0xa9, 0xdd, 0x5a, 0x4a, 0x99, 0xa6, 0x9c, 0xc8, 0xb8, 0xb9, 0xa7, 0x33}: "FjMfgAcCheckDxe", efi.GUID{0xe6, 0xa8, 0xbf, 0x3e, 0x1d, 0x51, 0x5b, 0x4b, 0xa9, 0x5f, 0xfb, 0x38, 0x26, 0x0f, 0x1c, 0x27}: "DeviceManagerFormSetGuid", efi.GUID{0xe6, 0xae, 0xf7, 0x0c, 0xd4, 0x3b, 0xa3, 0x48, 0x97, 0xe2, 0xe7, 0xe5, 0xb8, 0x3f, 0x67, 0xfd}: "CbsBasePeiRS", efi.GUID{0xe6, 0xaf, 0xa6, 0x9e, 0x5b, 0x6e, 0x9e, 0x4f, 0xa1, 0xe6, 0x86, 0xf0, 0x49, 0x03, 0x38, 0x34}: "ReportStatusCodeRouterPei", efi.GUID{0xe6, 0xb0, 0xf7, 0xda, 0xde, 0x32, 0x19, 0x46, 0xb6, 0x3a, 0x2b, 0x91, 0x73, 0xa7, 0x5b, 0x14}: "GetNetByName", efi.GUID{0xe6, 0xb5, 0x42, 0xea, 0x01, 0x5e, 0x6e, 0x4c, 0x81, 0x89, 0xc1, 0xef, 0xa6, 0xac, 0xfd, 0x01}: "LenovoProtectPBPei", efi.GUID{0xe6, 0xb9, 0xb7, 0xad, 0xb7, 0x70, 0xd4, 0x48, 0xb6, 0xa5, 0x18, 0xfa, 0x15, 0xeb, 0xcd, 0x78}: "IntelCpuPcdsSetDoneProtocol", efi.GUID{0xe6, 0xba, 0x8f, 0x51, 0xdf, 0x76, 0x3a, 0x4a, 0x86, 0x0d, 0x3e, 0x41, 0x6e, 0xd9, 0xf2, 0x03}: "SmmInt15Handler", efi.GUID{0xe6, 0xc2, 0xfb, 0x9c, 0x05, 0x29, 0x2a, 0x4c, 0x81, 0xcd, 0x36, 0xc5, 0x8b, 0x2c, 0xb5, 0xdb}: "LenovoPasskey", efi.GUID{0xe6, 0xc5, 0x4c, 0xd7, 0x69, 0xb1, 0x6e, 0x45, 0x91, 0xd2, 0xbe, 0x2c, 0x2d, 0x13, 0x43, 0xa6}: "SpiFlashLibNull", efi.GUID{0xe6, 0xcd, 0xeb, 0x5c, 0x96, 0x10, 0xe2, 0x4f, 0x99, 0x21, 0x5f, 0x8e, 0x25, 0x28, 0x1a, 0x3e}: "CpuSmm", efi.GUID{0xe6, 0xd3, 0xa6, 0x85, 0x5b, 0xb6, 0xfc, 0x4a, 0xb3, 0x8f, 0xc6, 0xd5, 0x4a, 0xf6, 0xdd, 0xc8}: "EfiSpiConfigurationProtocolGuid", efi.GUID{0xe6, 0xdf, 0x2f, 0x06, 0x0f, 0x2c, 0x2c, 0x46, 0x95, 0x72, 0x92, 0x01, 0x8e, 0x6e, 0x52, 0xe3}: "HpIcicleRepSet", efi.GUID{0xe6, 0xdf, 0x7e, 0xb4, 0x17, 0xd4, 0x61, 0x41, 0x95, 0x0d, 0xe8, 0x24, 0xe9, 0x20, 0xe5, 0xf0}: "AcerGetBootMode", efi.GUID{0xe6, 0xdf, 0xd7, 0x02, 0x36, 0xcb, 0xf9, 0x4f, 0x9e, 0xd9, 0x31, 0x80, 0x6b, 0x79, 0x72, 0x51}: "FchSmmDiagDispatcher", efi.GUID{0xe6, 0xf8, 0xa9, 0xf9, 0x97, 0xc7, 0xd8, 0x4f, 0x92, 0x13, 0x80, 0xc0, 0xcd, 0xc2, 0x90, 0xb1}: "PlatformData", efi.GUID{0xe6, 0xf9, 0x00, 0x14, 0xab, 0x4b, 0x68, 0x4b, 0xa5, 0x3f, 0x58, 0xfd, 0x24, 0x08, 0x18, 0xe6}: "Reset_Modify", efi.GUID{0xe6, 0xf9, 0xc7, 0x48, 0x68, 0x8f, 0xde, 0x49, 0xb6, 0x98, 0x0d, 0x6a, 0x01, 0x48, 0x90, 0xf7}: "SiInitPreMem", efi.GUID{0xe6, 0xfc, 0x82, 0x2a, 0xb6, 0x8b, 0x3e, 0x41, 0xb9, 0xeb, 0x45, 0xdf, 0xc0, 0x52, 0x2d, 0xf3}: "EfiSmmThunkProtocol", efi.GUID{0xe7, 0x02, 0x59, 0x13, 0x09, 0x97, 0x41, 0x4b, 0x8f, 0xd2, 0x40, 0x69, 0xda, 0xf0, 0x54, 0x6a}: "TcEfiGlobalVariableGuid", efi.GUID{0xe7, 0x09, 0xd5, 0x5f, 0xd5, 0x02, 0xc1, 0x44, 0x8b, 0xb7, 0xab, 0x29, 0x97, 0x1e, 0xef, 0x7e}: "FjGenericDeviceControlPei", efi.GUID{0xe7, 0x0a, 0x51, 0xbc, 0xbf, 0x76, 0xda, 0x4f, 0x88, 0xb3, 0x14, 0xde, 0x87, 0xb8, 0x67, 0x11}: "EcrotPdrRwSmm", efi.GUID{0xe7, 0x0c, 0xda, 0xe6, 0x45, 0xc9, 0x75, 0x47, 0x94, 0x1c, 0x55, 0xf7, 0x4d, 0x46, 0xfa, 0x84}: "FjSlp20Support", efi.GUID{0xe7, 0x0d, 0x83, 0x58, 0x39, 0x97, 0x69, 0x48, 0x88, 0xbe, 0xdc, 0x8c, 0xa2, 0x4c, 0xe9, 0xc1}: "AutoMeud", efi.GUID{0xe7, 0x0e, 0x30, 0xc1, 0xf6, 0x4b, 0x64, 0x41, 0x9f, 0xdc, 0xdc, 0x3e, 0x8e, 0xfb, 0x7f, 0xbd}: "AmdNbioPei", efi.GUID{0xe7, 0x0e, 0x51, 0xfc, 0xdc, 0xff, 0xd4, 0x11, 0xbd, 0x41, 0x00, 0x80, 0xc7, 0x3c, 0x88, 0x81}: "AprioriDxe", efi.GUID{0xe7, 0x11, 0x17, 0xc5, 0xbf, 0xb4, 0x4a, 0x40, 0xbf, 0xb8, 0x0a, 0x04, 0x8e, 0xf1, 0xff, 0xe4}: "EfiIp4ServiceBindingProtocolGuid", efi.GUID{0xe7, 0x12, 0x9b, 0x91, 0xbd, 0xb0, 0xcd, 0x4d, 0x88, 0x34, 0xbf, 0x53, 0x38, 0xe7, 0x45, 0xad}: "OemdAcpi", efi.GUID{0xe7, 0x19, 0x33, 0x8c, 0xf8, 0x2b, 0xf9, 0x4b, 0x8f, 0xd5, 0x03, 0x66, 0x41, 0xf6, 0x78, 0xd6}: "SecureWipe", efi.GUID{0xe7, 0x1e, 0x40, 0x31, 0x00, 0x16, 0x7c, 0x43, 0xa1, 0x1c, 0xb1, 0x03, 0x5d, 0x8e, 0x60, 0x70}: "PchAcpiTables", efi.GUID{0xe7, 0x1f, 0x76, 0xf7, 0x44, 0xcd, 0x1b, 0x48, 0x8c, 0x12, 0x27, 0x12, 0x48, 0x77, 0xc8, 0x06}: "IioCfgUpdateDxeEldorado", efi.GUID{0xe7, 0x1f, 0x9b, 0xa1, 0xbc, 0xc1, 0xf8, 0x49, 0x87, 0x5f, 0x54, 0xa5, 0xd5, 0x42, 0x44, 0x3f}: "CpuIo2Dxe", efi.GUID{0xe7, 0x22, 0x46, 0xfe, 0x0f, 0x18, 0x83, 0x43, 0xb6, 0xaf, 0x87, 0xa1, 0x8f, 0x04, 0x9b, 0x4a}: "FirmwareVolumesInstalledPpiGuid", efi.GUID{0xe7, 0x22, 0xd7, 0x3a, 0xd7, 0x8a, 0xd3, 0x4e, 0xa1, 0x18, 0x85, 0x96, 0x63, 0x87, 0xdb, 0x07}: "SecureWipe", efi.GUID{0xe7, 0x23, 0xb4, 0xf5, 0xc8, 0xc4, 0x4e, 0x47, 0xb5, 0xa1, 0x3c, 0x68, 0xad, 0x99, 0x34, 0x02}: "AaeonBiosInfoPei", efi.GUID{0xe7, 0x28, 0x53, 0x85, 0x6f, 0xf9, 0x98, 0x43, 0x9e, 0x7f, 0x1f, 0x0a, 0x8c, 0x01, 0x4e, 0x2c}: "AppleMeDriverDxe", efi.GUID{0xe7, 0x2e, 0x0a, 0xcd, 0x8b, 0x41, 0xe3, 0x47, 0x89, 0xc4, 0x65, 0xd9, 0x16, 0x9e, 0xfd, 0x23}: "PublishMrcNormalFv", efi.GUID{0xe7, 0x3c, 0x18, 0xef, 0xd5, 0x7e, 0x29, 0x4e, 0xbc, 0xda, 0x52, 0x41, 0x82, 0xb4, 0x74, 0x4b}: "AmdNbioGfxRPLDxe", efi.GUID{0xe7, 0x42, 0xb0, 0x59, 0xa7, 0x04, 0x18, 0x4d, 0x96, 0x7a, 0x8d, 0x31, 0xe3, 0xf3, 0x4e, 0x8c}: "BiosConnectIqIntegrationDxe", efi.GUID{0xe7, 0x4c, 0xf7, 0x13, 0xed, 0xcf, 0x97, 0x4e, 0x9e, 0xe6, 0x04, 0x2b, 0x3d, 0x2d, 0x97, 0x7f}: "FjCryptoDESSmm", efi.GUID{0xe7, 0x5a, 0x44, 0x60, 0xb2, 0xb5, 0x2f, 0x48, 0x86, 0x72, 0xb5, 0x10, 0x18, 0xc9, 0x5b, 0xc7}: "FjGpioGHOSmm", efi.GUID{0xe7, 0x61, 0x32, 0xf3, 0xcb, 0x23, 0xd5, 0x11, 0xbd, 0x5c, 0x00, 0x80, 0xc7, 0x3c, 0x88, 0x81}: "FrameworkEfiMpServiceProtocolGuid", efi.GUID{0xe7, 0x63, 0x51, 0x9a, 0x29, 0x5c, 0x3f, 0x45, 0x82, 0x5c, 0x83, 0x7a, 0x46, 0xa8, 0x1e, 0x15}: "SerialDxe", efi.GUID{0xe7, 0x65, 0xc0, 0x88, 0x0d, 0x90, 0x99, 0x48, 0xb7, 0xb0, 0xcd, 0x40, 0x4e, 0x11, 0x3f, 0x95}: "PchPortCF9hTrap", efi.GUID{0xe7, 0x67, 0xdd, 0x4d, 0xf5, 0xbd, 0x73, 0x44, 0x8a, 0xb0, 0x02, 0x82, 0x1c, 0x08, 0x43, 0x38}: "MemorySelfRepair", efi.GUID{0xe7, 0x6a, 0x23, 0xfd, 0x91, 0x07, 0xc4, 0x48, 0xb2, 0x9e, 0x29, 0xbd, 0xee, 0xe1, 0xa8, 0x11}: "SaInitPeim", efi.GUID{0xe7, 0x6a, 0x23, 0xfd, 0x91, 0x07, 0xc4, 0x48, 0xb2, 0x9e, 0x29, 0xbd, 0xee, 0xe1, 0xa8, 0x38}: "PchInitPeim", efi.GUID{0xe7, 0x75, 0xe2, 0x99, 0xa0, 0x75, 0x37, 0x4b, 0xa2, 0xe6, 0xc5, 0x38, 0x5e, 0x6c, 0x00, 0xcb}: "AmiMaskedDevicePath", efi.GUID{0xe7, 0x7d, 0xbe, 0x8b, 0xfb, 0x6f, 0x28, 0x41, 0x8c, 0x33, 0x23, 0x85, 0x2e, 0xbc, 0x79, 0x20}: "EarlyVideoPei", efi.GUID{0xe7, 0x8a, 0xc3, 0x62, 0xf4, 0x4b, 0x12, 0x41, 0xb2, 0xc8, 0x88, 0xb5, 0x0f, 0x31, 0x7b, 0xc9}: "AgesaSmmSaveMemoryConfig", efi.GUID{0xe7, 0x8c, 0xdd, 0xe2, 0x31, 0x0a, 0x3b, 0x4c, 0xa7, 0x74, 0xb2, 0x88, 0x1e, 0xd8, 0x56, 0x82}: "SysInfo", efi.GUID{0xe7, 0x8f, 0x93, 0x72, 0xc9, 0x5d, 0xb4, 0x49, 0xaa, 0xf0, 0x2d, 0x23, 0x82, 0x8a, 0x31, 0x90}: "DimmTypeDialogDxe", efi.GUID{0xe7, 0x90, 0xd2, 0x17, 0xbe, 0x49, 0xfc, 0x41, 0xbf, 0x62, 0x91, 0x2c, 0x17, 0x15, 0x2f, 0xa8}: "DellSimulatedECDxe", efi.GUID{0xe7, 0x94, 0x01, 0xc1, 0xb2, 0xde, 0xf4, 0x4a, 0x9e, 0xee, 0xbf, 0xfd, 0xe4, 0xd7, 0xd4, 0xc7}: "TimestampDxe", efi.GUID{0xe7, 0x95, 0xc2, 0x57, 0x11, 0x44, 0xfb, 0x47, 0xa1, 0x76, 0x68, 0xce, 0x13, 0xed, 0x44, 0x9c}: "VideoIdm", efi.GUID{0xe7, 0x9e, 0x6d, 0xa4, 0xb4, 0xc6, 0xc0, 0x42, 0x83, 0x78, 0x6e, 0x4b, 0xdc, 0x50, 0x40, 0x6b}: "SetupLoadDefault", efi.GUID{0xe7, 0x9f, 0xa7, 0x37, 0x93, 0x66, 0xeb, 0x4e, 0x85, 0x67, 0x9b, 0x2c, 0x3e, 0x05, 0xf2, 0xf3}: "FjIntrusionSmm", efi.GUID{0xe7, 0xba, 0xd9, 0x7a, 0x4d, 0x86, 0x7e, 0x4f, 0x9d, 0x11, 0x1c, 0xad, 0x80, 0x18, 0xfe, 0x7a}: "LenovoTpmFwUpdateSmm", efi.GUID{0xe7, 0xce, 0x17, 0xef, 0x7d, 0x26, 0xfd, 0x4b, 0xa2, 0x57, 0x4a, 0x6a, 0xb3, 0xee, 0x85, 0x91}: "MemorySubClassDxe", efi.GUID{0xe7, 0xd9, 0x0a, 0xac, 0xca, 0x6b, 0xf3, 0x4e, 0x92, 0x4f, 0xbd, 0xe0, 0xd0, 0x26, 0xbb, 0x23}: "PlatformPort80HandlerDxe", efi.GUID{0xe7, 0xda, 0xf2, 0x61, 0xd0, 0x75, 0xf2, 0x4e, 0xae, 0xe0, 0x93, 0x9c, 0xc3, 0x28, 0x5e, 0xd8}: "AsusSeupItemControllBin", efi.GUID{0xe7, 0xe1, 0x70, 0x2f, 0x99, 0x4f, 0x01, 0x44, 0x85, 0x1b, 0x20, 0x42, 0xae, 0x38, 0xfb, 0x74}: "AsusSetupHookDxe", efi.GUID{0xe7, 0xe3, 0xcf, 0x30, 0xe1, 0x3d, 0x86, 0x45, 0xbe, 0x20, 0xde, 0xab, 0xa1, 0xb3, 0xb7, 0x93}: "EfiPciEnumerationCompleteProtocolGuid", efi.GUID{0xe7, 0xe4, 0x36, 0x1a, 0xb6, 0xfa, 0x6a, 0x47, 0x8e, 0x75, 0x69, 0x5a, 0x05, 0x76, 0xfd, 0xd7}: "EfiPeiDecompressPpiGuid", efi.GUID{0xe7, 0xeb, 0x4a, 0x91, 0x35, 0x46, 0x9b, 0x45, 0xaa, 0x1c, 0x11, 0xe2, 0x19, 0xb0, 0x3a, 0x10}: "EfiMdePkgTokenSpaceGuid", efi.GUID{0xe7, 0xeb, 0xf3, 0x2f, 0xbb, 0xf9, 0x30, 0x42, 0x89, 0xe6, 0x15, 0x4d, 0x2b, 0x22, 0x65, 0x6f}: "DiagnosticTestInterfaceDxe", efi.GUID{0xe7, 0xec, 0x7a, 0xd0, 0x3d, 0x57, 0x47, 0x4c, 0xb6, 0x0c, 0x9d, 0x9a, 0x72, 0x17, 0x17, 0xd7}: "PeiSioHwmIo", efi.GUID{0xe7, 0xfa, 0xdb, 0xc1, 0x7a, 0xd4, 0x0d, 0x4d, 0x83, 0xb5, 0x9e, 0x6f, 0x41, 0x62, 0xd1, 0x5c}: "EXFAT", efi.GUID{0xe7, 0xfb, 0xfc, 0x29, 0x1e, 0x4b, 0xb2, 0x3c, 0x6d, 0x57, 0xa9, 0x94, 0xe8, 0xd0, 0x44, 0xb0}: "AmdPlatformRasSspPei", efi.GUID{0xe8, 0x06, 0x2b, 0xb5, 0x01, 0xfb, 0x04, 0x44, 0x87, 0x68, 0x5c, 0x94, 0x17, 0xb3, 0x38, 0x49}: "N17PQ1Gop", efi.GUID{0xe8, 0x0c, 0xac, 0x5b, 0x2a, 0x90, 0x82, 0x44, 0x9c, 0x26, 0xf2, 0x81, 0xc9, 0x38, 0x8e, 0x33}: "FjNvramSmiSmm", efi.GUID{0xe8, 0x0d, 0xcc, 0xc4, 0x87, 0x06, 0x22, 0x44, 0x99, 0xc1, 0x65, 0x35, 0x1a, 0x5d, 0x5f, 0x95}: "UserDefaults", efi.GUID{0xe8, 0x0e, 0xfa, 0xc5, 0x81, 0x2d, 0x02, 0x42, 0xa0, 0x21, 0x3d, 0xa7, 0x00, 0xb3, 0xde, 0xae}: "AmdCpmPcieInitDxe", efi.GUID{0xe8, 0x10, 0x11, 0x51, 0x4b, 0xa6, 0x88, 0x4b, 0xa4, 0x73, 0xe0, 0xd2, 0x96, 0xaf, 0x53, 0x52}: "TouchDriver", efi.GUID{0xe8, 0x22, 0x0f, 0x6a, 0xee, 0x69, 0x1c, 0x4f, 0x93, 0x36, 0x69, 0x86, 0x3f, 0xd9, 0x6e, 0xe9}: "SecurityEventDxe", efi.GUID{0xe8, 0x24, 0x7a, 0xfd, 0xcc, 0xb7, 0x72, 0x41, 0x9f, 0x1e, 0x64, 0x97, 0x0b, 0xe3, 0xef, 0x62}: "FchTacomaDxe", efi.GUID{0xe8, 0x28, 0xe8, 0x13, 0xa9, 0x41, 0x36, 0x4d, 0x98, 0xde, 0xfd, 0x39, 0x68, 0xe2, 0xc1, 0x8e}: "LnvPdrSmm", efi.GUID{0xe8, 0x2b, 0xfb, 0x87, 0xe6, 0xf1, 0x8d, 0x44, 0x97, 0x0a, 0xbe, 0x4d, 0xfe, 0x79, 0x21, 0xcb}: "AaeonSxSmi", efi.GUID{0xe8, 0x43, 0x82, 0x9d, 0x81, 0x83, 0x3d, 0x45, 0xac, 0xeb, 0xc3, 0x50, 0xee, 0x77, 0x57, 0xca}: "StartupMenuApp", efi.GUID{0xe8, 0x43, 0xd5, 0x18, 0x9a, 0xc5, 0xdc, 0x40, 0xaa, 0x28, 0x50, 0xb8, 0x32, 0xc6, 0x7d, 0x02}: "CutOffStrToLimitedLength", efi.GUID{0xe8, 0x45, 0xb9, 0x6b, 0x43, 0x37, 0x3e, 0x43, 0xb9, 0x0e, 0x29, 0xb3, 0x0d, 0x5d, 0xc6, 0x30}: "EfiIpmiTransportProtocol", efi.GUID{0xe8, 0x55, 0x8f, 0xfa, 0x22, 0xab, 0xdd, 0x42, 0xb9, 0x16, 0x7d, 0xce, 0x39, 0x00, 0x25, 0x74}: "TdthiProtocolFixed", efi.GUID{0xe8, 0x61, 0x19, 0x2a, 0x9e, 0x09, 0x01, 0x47, 0xae, 0xe0, 0xf5, 0x8c, 0x1e, 0xcf, 0x5b, 0x11}: "FjMiscControlSmm", efi.GUID{0xe8, 0x61, 0x1b, 0xcd, 0xb4, 0xc6, 0x0d, 0x42, 0xa1, 0xc5, 0x2a, 0x75, 0x08, 0x3c, 0xb0, 0xa6}: "FjMasterPasswordSmm", efi.GUID{0xe8, 0x63, 0x18, 0xd7, 0xb9, 0xa7, 0x29, 0x4b, 0xbe, 0xda, 0x4c, 0xda, 0xe4, 0x4e, 0x05, 0x6e}: "DellPowerManagement", efi.GUID{0xe8, 0x63, 0x52, 0xcc, 0x08, 0x93, 0x4a, 0x45, 0x89, 0xd0, 0x34, 0x0b, 0xd3, 0x9b, 0xc9, 0x8e}: "EfiEventNotificationTypeInitGuid", efi.GUID{0xe8, 0x66, 0x57, 0x3c, 0x9c, 0x26, 0x34, 0x4e, 0xaa, 0x14, 0xed, 0x77, 0x6e, 0x85, 0xb3, 0xb6}: "EfiCertRsa2048Guid", efi.GUID{0xe8, 0x70, 0xa6, 0x6d, 0x73, 0x3d, 0xb2, 0x4e, 0xa7, 0x21, 0xa2, 0xdd, 0xf6, 0x82, 0xfd, 0xd8}: "Tpm12MeasureConfigurationInfoFuncGuid", efi.GUID{0xe8, 0x72, 0xe7, 0x4f, 0x3e, 0xfe, 0x86, 0x40, 0xb6, 0x38, 0x8c, 0x49, 0x3c, 0x49, 0x04, 0x88}: "PhysicalPresencePei", efi.GUID{0xe8, 0x7b, 0x87, 0x04, 0xc0, 0xfa, 0x8e, 0x44, 0x80, 0x1d, 0xf0, 0xf8, 0x95, 0xcc, 0xb0, 0x12}: "SmbiosDmiEditSsi", efi.GUID{0xe8, 0x7f, 0xb3, 0x04, 0xae, 0xf6, 0x0b, 0x48, 0xbd, 0xd5, 0x37, 0xd9, 0x8c, 0x5e, 0x89, 0xaa}: "EdkiiVarErrorFlagGuid", efi.GUID{0xe8, 0x89, 0x9d, 0x0f, 0x59, 0x92, 0x76, 0x4f, 0xa5, 0xaf, 0x0c, 0x89, 0xe3, 0x40, 0x23, 0xdf}: "EfiFirmwareContentsSignedGuid", efi.GUID{0xe8, 0x94, 0xc0, 0x6c, 0x78, 0x82, 0xab, 0x47, 0x86, 0x8c, 0xd8, 0x26, 0x53, 0x99, 0x68, 0xc1}: "AsusPcie2ClkReqMapping", efi.GUID{0xe8, 0x95, 0x3f, 0x82, 0x2d, 0xd7, 0x65, 0x46, 0x8d, 0xd5, 0xf1, 0x35, 0x45, 0x7e, 0x75, 0x1a}: "HpKbTelemetryDxe", efi.GUID{0xe8, 0xa0, 0x3f, 0x52, 0x39, 0x86, 0xbb, 0x47, 0xb8, 0x59, 0x93, 0x9a, 0x45, 0x0d, 0xbf, 0x77}: "EnhancedFat", efi.GUID{0xe8, 0xa9, 0x89, 0x67, 0xe9, 0x6f, 0x1c, 0x4e, 0x90, 0xf9, 0x59, 0x32, 0x9e, 0xd2, 0x73, 0x00}: "AmdFabricRmbDxe", efi.GUID{0xe8, 0xac, 0x9c, 0xdc, 0x2e, 0x8c, 0xe7, 0x4f, 0x9e, 0x41, 0xe1, 0x8c, 0x75, 0xfe, 0x9b, 0x66}: "DellSmBiosStrucB2", efi.GUID{0xe8, 0xae, 0x4d, 0xea, 0x51, 0xa8, 0x9f, 0x4a, 0xab, 0xf4, 0xb7, 0x9f, 0xa2, 0x52, 0x82, 0x91}: "CpuSmbiosDriver", efi.GUID{0xe8, 0xbe, 0x18, 0x9c, 0x12, 0xc6, 0x03, 0x40, 0x85, 0x2f, 0xd4, 0xf1, 0x73, 0xd5, 0xf0, 0xc9}: "DellTcg2ConfigInfoCommon", efi.GUID{0xe8, 0xc6, 0x0d, 0xb6, 0x6f, 0x3b, 0xd5, 0x11, 0xaf, 0x09, 0x00, 0xa0, 0xc9, 0x44, 0xa0, 0x5b}: "EfiSalMcaInitPmiProtocolGuid", efi.GUID{0xe8, 0xcf, 0x5b, 0xab, 0xe9, 0xbe, 0xb7, 0x47, 0xb7, 0xe5, 0x7e, 0xea, 0x4d, 0x35, 0x7a, 0x01}: "UpdateAsfTableDxe", efi.GUID{0xe8, 0xd1, 0x6e, 0x11, 0xc6, 0xf9, 0x12, 0x41, 0xa4, 0x9c, 0x87, 0xad, 0xa5, 0x70, 0xde, 0xc1}: "AudioPlayback", efi.GUID{0xe8, 0xd9, 0xe5, 0xcf, 0xfe, 0x8a, 0x16, 0x45, 0x8c, 0xc3, 0x96, 0x40, 0x5c, 0xfa, 0xd0, 0xc8}: "PdrRecoveryPei", efi.GUID{0xe8, 0xe1, 0xe7, 0x4a, 0xfe, 0x9d, 0x3e, 0x4e, 0x85, 0xb4, 0xa5, 0xf6, 0xab, 0xd4, 0x70, 0xfb}: "Cpuid", efi.GUID{0xe8, 0xea, 0x7b, 0x1a, 0x87, 0x05, 0xb5, 0x4e, 0xb3, 0x5d, 0xd0, 0xd2, 0x62, 0x20, 0x18, 0x00}: "DellAcpiResetProtocol", efi.GUID{0xe8, 0xeb, 0x40, 0x9e, 0xd4, 0x52, 0x81, 0x40, 0xab, 0x06, 0x0d, 0xca, 0x34, 0x64, 0xa4, 0xa6}: "DeepSmi", efi.GUID{0xe8, 0xeb, 0x84, 0x14, 0x81, 0x26, 0xf1, 0x45, 0xa2, 0xe5, 0x12, 0xec, 0xad, 0x89, 0x3b, 0x62}: "ArmJunoDxe", efi.GUID{0xe8, 0xf7, 0x1b, 0xeb, 0xab, 0xd4, 0xc6, 0x43, 0x88, 0xc4, 0xb9, 0x91, 0x75, 0x35, 0x03, 0x83}: "Dec1515Pei", efi.GUID{0xe8, 0xff, 0x48, 0xef, 0x24, 0x9e, 0xb8, 0x4e, 0x82, 0x8d, 0x2e, 0xc1, 0x1a, 0x9d, 0xf8, 0xdd}: "DellGenerationIdPolicy", efi.GUID{0xe9, 0x00, 0x72, 0x3c, 0x5f, 0x00, 0xa4, 0x4e, 0x87, 0xde, 0xa3, 0xdf, 0xac, 0x8a, 0x27, 0xc3}: "EfiShellDynamicCommandProtocolGuid", efi.GUID{0xe9, 0x05, 0x7a, 0x9d, 0x40, 0xf7, 0xc3, 0x44, 0x85, 0x8b, 0x75, 0x58, 0x6a, 0x8f, 0x9c, 0x8e}: "dbxVar", efi.GUID{0xe9, 0x09, 0x65, 0xf0, 0xe9, 0x9a, 0x63, 0x44, 0xa2, 0x4c, 0xd8, 0xe3, 0x5e, 0x91, 0x33, 0xaa}: "TypeABh", efi.GUID{0xe9, 0x0a, 0x00, 0x1d, 0x6b, 0x75, 0x37, 0x49, 0xb7, 0x36, 0x1f, 0x3d, 0x96, 0xa5, 0xa8, 0xf0}: "Dptf", efi.GUID{0xe9, 0x0d, 0x38, 0x15, 0x51, 0x1d, 0x7f, 0x40, 0xbe, 0x3e, 0xca, 0x71, 0xec, 0x05, 0xc6, 0x0d}: "AsusSetupDxeVariableItem", efi.GUID{0xe9, 0x13, 0x5b, 0xb2, 0x24, 0x03, 0x59, 0x4f, 0xae, 0xe6, 0xac, 0x4a, 0x5d, 0x57, 0x85, 0xcc}: "EcBlockPei", efi.GUID{0xe9, 0x19, 0xf0, 0x53, 0x0c, 0xbb, 0x4b, 0x42, 0x87, 0x0a, 0x1f, 0xaf, 0x10, 0xb1, 0xcb, 0x4c}: "iFfsPei", efi.GUID{0xe9, 0x1a, 0xc1, 0xcd, 0xe7, 0x01, 0xcb, 0x42, 0x88, 0xeb, 0xfd, 0xff, 0xd8, 0x81, 0x98, 0x93}: "TcgLegacy", efi.GUID{0xe9, 0x20, 0x0d, 0xf8, 0x95, 0xfc, 0x8c, 0x42, 0x8f, 0xb2, 0xd0, 0x6f, 0xd6, 0x02, 0xbe, 0x05}: "OemTurboModeDxe", efi.GUID{0xe9, 0x21, 0x1d, 0x4b, 0xca, 0x4d, 0x20, 0x48, 0x81, 0x12, 0x61, 0xe5, 0x2b, 0x81, 0x5e, 0xc1}: "RtCommonService", efi.GUID{0xe9, 0x29, 0xbe, 0x9b, 0xa1, 0xfd, 0xec, 0x41, 0xad, 0x52, 0x45, 0x22, 0x13, 0x74, 0x2d, 0x2e}: "EdkiiFormDisplayEngineProtocolGuid", efi.GUID{0xe9, 0x2a, 0x52, 0x43, 0xfa, 0xec, 0x26, 0x48, 0xbc, 0x07, 0x0e, 0x05, 0x7a, 0x87, 0xd6, 0x07}: "RealtekGopDriver", efi.GUID{0xe9, 0x2e, 0xec, 0xce, 0x2d, 0xbf, 0xd9, 0x45, 0xb9, 0x6a, 0x11, 0x44, 0xb0, 0x62, 0x39, 0x5d}: "UsraQuiesceLibNull", efi.GUID{0xe9, 0x2f, 0xfe, 0x19, 0x0e, 0x47, 0x7e, 0x4c, 0x8d, 0x55, 0x6c, 0x7a, 0x08, 0xda, 0x85, 0x5a}: "SetupDefault", efi.GUID{0xe9, 0x30, 0x1f, 0x50, 0x4f, 0xd1, 0xda, 0x47, 0xae, 0x60, 0xb1, 0x01, 0xe4, 0x18, 0x9d, 0x07}: "AhciInt13Smm", efi.GUID{0xe9, 0x3e, 0x25, 0xf7, 0x52, 0xcc, 0x34, 0x42, 0xae, 0x8d, 0x4c, 0xd6, 0x4e, 0x8f, 0x74, 0x4f}: "DellRecoveryMgmtPei", efi.GUID{0xe9, 0x40, 0x5a, 0xe3, 0xbe, 0xd4, 0x4d, 0x4f, 0xab, 0xa7, 0x22, 0xc2, 0x9c, 0xae, 0x0b, 0xe1}: "UefiDriverRealTek", efi.GUID{0xe9, 0x4a, 0x92, 0x51, 0x81, 0xbe, 0x20, 0x48, 0x94, 0xba, 0x7c, 0x95, 0x46, 0xe7, 0x02, 0xd0}: "Tcg2PpVendorLibNull", efi.GUID{0xe9, 0x54, 0xde, 0x3d, 0x18, 0x8d, 0xa8, 0x4e, 0x94, 0x23, 0xc2, 0xe8, 0x46, 0xe1, 0x8e, 0x23}: "DellSmBiosStrucD3", efi.GUID{0xe9, 0x58, 0xf2, 0x84, 0xa9, 0x5a, 0xd6, 0x4d, 0xa4, 0xd4, 0x20, 0x9b, 0x3b, 0xe3, 0x1b, 0x0c}: "OfflineCrashDumpDxe", efi.GUID{0xe9, 0x66, 0x20, 0x4e, 0x76, 0x7c, 0x59, 0x4b, 0xa3, 0x0c, 0x4a, 0xe1, 0xe2, 0xdc, 0x7f, 0x75}: "DellSmartAmpSmm", efi.GUID{0xe9, 0x68, 0x4e, 0xd3, 0xbf, 0xb9, 0x24, 0x49, 0x8a, 0x06, 0x0e, 0xa2, 0x67, 0x22, 0x04, 0xdd}: "PciHostBridge", efi.GUID{0xe9, 0x6a, 0x67, 0x5a, 0x23, 0xdb, 0x68, 0x4a, 0xa2, 0x4d, 0xaa, 0x5f, 0xec, 0xd5, 0x74, 0x86}: "EfiVmdDriverProtocol", efi.GUID{0xe9, 0x6e, 0x5a, 0x84, 0xeb, 0xab, 0xdc, 0x4d, 0x89, 0x83, 0x0a, 0x13, 0xa2, 0xd1, 0xa7, 0x9d}: "TdxDxe", efi.GUID{0xe9, 0x71, 0x59, 0x14, 0x52, 0xad, 0x94, 0x40, 0xa8, 0xc8, 0xbe, 0x5b, 0x3f, 0xec, 0xc8, 0x2d}: "CpuPeim", efi.GUID{0xe9, 0x73, 0x76, 0x2f, 0x0b, 0x7c, 0x5a, 0x43, 0x9b, 0x22, 0xa8, 0x01, 0xbf, 0x25, 0xfc, 0xe5}: "SioThermalErrorDxe", efi.GUID{0xe9, 0x74, 0x06, 0xe3, 0xf0, 0xa7, 0x1f, 0x4e, 0xa5, 0xb6, 0xd1, 0x05, 0x2a, 0x9a, 0x75, 0x05}: "Pca6107Dxe", efi.GUID{0xe9, 0x76, 0xdf, 0x7e, 0xcd, 0x3d, 0x4f, 0x47, 0xa3, 0xbb, 0xde, 0x3b, 0x18, 0xa4, 0x7d, 0x61}: "MEC1416PeiInit", efi.GUID{0xe9, 0x7f, 0x66, 0xe6, 0xc3, 0xf8, 0xc6, 0x4b, 0x87, 0x48, 0xf8, 0x75, 0xc1, 0x2d, 0x9b, 0xb0}: "RmtcHelper", efi.GUID{0xe9, 0x80, 0x9f, 0xc9, 0xcc, 0x4c, 0x34, 0x4f, 0xaf, 0xe7, 0x91, 0x94, 0xbf, 0x12, 0x14, 0x12}: "GnbSocPhoenixDxe", efi.GUID{0xe9, 0x80, 0x9f, 0xc9, 0xcc, 0x4c, 0x34, 0x4f, 0xaf, 0xe7, 0x91, 0x94, 0xbf, 0x12, 0x35, 0x90}: "GnbSocRaphaelDxe", efi.GUID{0xe9, 0x85, 0x3e, 0x25, 0x3b, 0x99, 0x9b, 0x43, 0xb7, 0x4c, 0x61, 0x20, 0xf7, 0x7b, 0x47, 0x23}: "PlatformReset", efi.GUID{0xe9, 0x8a, 0x0f, 0x48, 0x46, 0x0c, 0xa9, 0x4a, 0xbc, 0x89, 0xdb, 0x9f, 0xba, 0x61, 0x98, 0x06}: "EfiDpcProtocolGuid", efi.GUID{0xe9, 0x8b, 0x4e, 0x73, 0x01, 0x48, 0x31, 0x4a, 0xa3, 0xfa, 0xd6, 0x1c, 0xcb, 0x60, 0x1c, 0xa9}: "OptionRomPolicy", efi.GUID{0xe9, 0x8e, 0x5a, 0x7c, 0xc5, 0x7e, 0x3c, 0x44, 0xa8, 0x67, 0x35, 0x49, 0xb6, 0x67, 0xee, 0xa6}: "WakeOnLanPortingPei", efi.GUID{0xe9, 0x90, 0x88, 0x89, 0xb2, 0x84, 0x3a, 0x4f, 0x8c, 0x58, 0xd8, 0x57, 0x78, 0x13, 0xe0, 0xac}: "EfiBluetoothAttributeProtocolGuid", efi.GUID{0xe9, 0x96, 0x2c, 0xd6, 0xd7, 0xd7, 0x28, 0x4d, 0xb0, 0xf9, 0xbf, 0x2c, 0xa1, 0x51, 0xdd, 0xef}: "IePolicyInitPei", efi.GUID{0xe9, 0x97, 0x06, 0xf8, 0xd6, 0x7f, 0x65, 0x46, 0x86, 0x46, 0x88, 0xe3, 0x3e, 0xf7, 0x1d, 0xfc}: "SecurityStubDxe", efi.GUID{0xe9, 0x9d, 0x93, 0x4e, 0x48, 0xd9, 0x0f, 0x4b, 0x88, 0xed, 0xe6, 0xe1, 0xce, 0x51, 0x7c, 0x1e}: "EdkiiIoMmuProtocol", efi.GUID{0xe9, 0xab, 0xe5, 0xd7, 0xab, 0x33, 0x8e, 0x41, 0x9f, 0x91, 0x72, 0xda, 0xe2, 0xba, 0x8e, 0x2f}: "ArmScmiBaseProtocol", efi.GUID{0xe9, 0xad, 0x86, 0x57, 0xbe, 0x7d, 0x53, 0x44, 0xbb, 0xf7, 0x6c, 0x18, 0x1f, 0xd0, 0x64, 0x58}: "AmdCpmOemHiiDxe", efi.GUID{0xe9, 0xb5, 0x62, 0x4d, 0xc8, 0x71, 0x2a, 0x41, 0x86, 0x04, 0x87, 0x8c, 0x92, 0x1d, 0x9a, 0xd1}: "SystemErrorLogSmm", efi.GUID{0xe9, 0xb7, 0x01, 0xa0, 0xbb, 0x84, 0x19, 0x48, 0xb7, 0xda, 0x93, 0xff, 0x51, 0x73, 0x08, 0x89}: "AsusOptConfigPei", efi.GUID{0xe9, 0xb9, 0x64, 0xf0, 0x2c, 0xf1, 0x56, 0x44, 0x8d, 0xd7, 0xe0, 0x73, 0xb0, 0xa6, 0x67, 0xe9}: "RtkManagementSetup", efi.GUID{0xe9, 0xbb, 0x29, 0x9a, 0xbb, 0x74, 0xd3, 0x41, 0xbc, 0xae, 0x6b, 0x08, 0x6e, 0x0f, 0xe0, 0xc5}: "SmuV11DxeVMR", efi.GUID{0xe9, 0xbc, 0x70, 0x37, 0x9d, 0xf0, 0x46, 0x44, 0x95, 0x33, 0x79, 0x48, 0x41, 0x4f, 0x6c, 0xc0}: "FjGpioGHOPei", efi.GUID{0xe9, 0xc7, 0xdd, 0x37, 0x1d, 0x7c, 0x1b, 0x4e, 0xb2, 0xcb, 0x4e, 0xd5, 0xd1, 0x25, 0x27, 0xb3}: "LenovoMePciUpdate", efi.GUID{0xe9, 0xcc, 0x8d, 0x1e, 0x1c, 0x34, 0x19, 0x42, 0xa7, 0x90, 0xf1, 0x4c, 0x28, 0xb5, 0x1c, 0xe4}: "L850Id0WAPei", efi.GUID{0xe9, 0xcc, 0x8d, 0x1e, 0x1c, 0x34, 0x19, 0x42, 0xa7, 0x90, 0xf1, 0x4c, 0x28, 0xb5, 0x1c, 0xee}: "LenovoEaiaPei", efi.GUID{0xe9, 0xd4, 0x02, 0xd6, 0x13, 0x1f, 0x0f, 0x4e, 0x8b, 0x6c, 0x2b, 0x2f, 0xd3, 0x29, 0x77, 0xd6}: "LEMSetFlashProtectedRange", efi.GUID{0xe9, 0xdb, 0x2d, 0x98, 0x79, 0x2b, 0x5f, 0x48, 0x9a, 0xc3, 0xfa, 0x67, 0xb5, 0x08, 0xc9, 0x13}: "Vmxnet3Dxe", efi.GUID{0xe9, 0xdc, 0x07, 0x2d, 0x98, 0xcf, 0x8f, 0x40, 0xa1, 0x3c, 0x20, 0xe4, 0x17, 0x46, 0xae, 0x95}: "TPMHwPresent", efi.GUID{0xe9, 0xe1, 0xe0, 0x8c, 0xdc, 0x26, 0x24, 0x4f, 0xad, 0xbd, 0x68, 0x71, 0xb8, 0x22, 0x37, 0x03}: "PciSdxcDxe", efi.GUID{0xe9, 0xee, 0xe9, 0x57, 0x7d, 0xeb, 0x53, 0x44, 0xbb, 0xf7, 0x6c, 0x13, 0x8b, 0xf0, 0x64, 0x58}: "AmdCpmDisplayFeatureDxe", efi.GUID{0xe9, 0xee, 0xe9, 0x57, 0x7d, 0xeb, 0x53, 0x44, 0xbb, 0xf7, 0x6c, 0x18, 0x1f, 0xd0, 0x90, 0x27}: "AmdAgesaDxeDriver", efi.GUID{0xea, 0x03, 0x40, 0x30, 0x75, 0x7a, 0x76, 0x47, 0x83, 0xd4, 0x6b, 0x78, 0x4b, 0x6e, 0x19, 0x00}: "MemoryInfoSetupUtilityDxe", efi.GUID{0xea, 0x03, 0xbd, 0xc9, 0xd6, 0x40, 0x4e, 0xd1, 0x0f, 0xfe, 0x6b, 0x80, 0x3f, 0xc3, 0xad, 0xf4}: "CpuTechDxe", efi.GUID{0xea, 0x07, 0x12, 0xea, 0x61, 0x7e, 0x69, 0x42, 0xb5, 0x58, 0xc3, 0x8f, 0xc0, 0xb7, 0x9a, 0x80}: "XhciPei", efi.GUID{0xea, 0x08, 0x7c, 0xb3, 0xbb, 0x12, 0x0f, 0x44, 0x81, 0x69, 0x38, 0x9e, 0x17, 0x05, 0xda, 0x16}: "OemGlobalNVSDxe", efi.GUID{0xea, 0x0d, 0x4c, 0x82, 0x01, 0x8b, 0x12, 0x4f, 0xa6, 0x8d, 0xa5, 0xda, 0xee, 0x2b, 0x97, 0x14}: "AmdMemSmbiosV2StxhPei", efi.GUID{0xea, 0x10, 0xc2, 0x94, 0x13, 0x31, 0x63, 0x45, 0xad, 0xeb, 0x76, 0xfe, 0x75, 0x9c, 0x2f, 0x46}: "Tcg2MmDependencyDxe", efi.GUID{0xea, 0x25, 0xee, 0xd4, 0x48, 0x0b, 0xae, 0x43, 0xa0, 0x16, 0x4d, 0x6e, 0x8b, 0x6c, 0x43, 0xb3}: "MemoryInit", efi.GUID{0xea, 0x27, 0xd1, 0x01, 0xf1, 0xf6, 0xf6, 0x4e, 0x94, 0x15, 0x8a, 0x00, 0x00, 0x93, 0xf8, 0x9d}: "UEfiCorebootPayloadPkgTokenSpaceGuid", efi.GUID{0xea, 0x33, 0xdd, 0x61, 0x1f, 0x42, 0xc0, 0x4c, 0x89, 0x29, 0xff, 0xee, 0xa9, 0xa1, 0xa2, 0x61}: "EdkiiPeiAtaAhciHostControllerPpi", efi.GUID{0xea, 0x36, 0xf4, 0xa1, 0x27, 0xa1, 0xf8, 0x4e, 0x95, 0x7c, 0x80, 0x48, 0x60, 0x6f, 0xf6, 0x70}: "1GNicEFI", efi.GUID{0xea, 0x36, 0xf4, 0xa2, 0x27, 0xa1, 0xf8, 0x4e, 0x95, 0x7c, 0x80, 0x48, 0x60, 0x6f, 0xf6, 0x70}: "SnpDxe", efi.GUID{0xea, 0x36, 0xf4, 0xa3, 0x27, 0xa1, 0xf8, 0x4e, 0x95, 0x7c, 0x80, 0x48, 0x60, 0x6f, 0xf6, 0x70}: "BCDxe", efi.GUID{0xea, 0x3e, 0xf0, 0xa2, 0x04, 0x93, 0xbe, 0x40, 0x87, 0xb2, 0x7f, 0x45, 0x7b, 0x01, 0x23, 0x2a}: "AsusSmbios", efi.GUID{0xea, 0x44, 0x91, 0x21, 0xb4, 0xd6, 0x6a, 0x4d, 0xb8, 0xf5, 0x63, 0xca, 0x8a, 0x09, 0xc8, 0xd0}: "CsSmmDriver", efi.GUID{0xea, 0x4b, 0x5c, 0x8e, 0xff, 0x34, 0x32, 0x4e, 0x83, 0x58, 0x33, 0x63, 0xda, 0x01, 0xe6, 0x28}: "LenovoSystemXhciResetSystem", efi.GUID{0xea, 0x4f, 0x5b, 0x4e, 0x6a, 0x93, 0xbc, 0x45, 0xac, 0x6a, 0x2f, 0x8f, 0x14, 0xa6, 0xc2, 0x9e}: "PrmConfigProtocol", efi.GUID{0xea, 0x52, 0x07, 0xd0, 0x9c, 0xa4, 0xad, 0x40, 0xa6, 0xda, 0x92, 0x1c, 0x03, 0x0c, 0x4b, 0x2f}: "DxeIchInitDxe", efi.GUID{0xea, 0x5f, 0x70, 0x9d, 0xe5, 0xe6, 0x6a, 0x43, 0xb9, 0xa2, 0x22, 0x6f, 0x6a, 0x9d, 0x3f, 0x9f}: "CxlInitPei", efi.GUID{0xea, 0x68, 0xfa, 0x41, 0xf0, 0x3a, 0x8b, 0x45, 0xaf, 0xd5, 0x1e, 0xef, 0xe9, 0xdd, 0x6f, 0x66}: "CsrPseudoOffsetInitDxe", efi.GUID{0xea, 0x6a, 0xf0, 0x1b, 0xec, 0x5b, 0x8d, 0x4a, 0x95, 0x76, 0x74, 0x9b, 0x09, 0x56, 0x2d, 0x30}: "ProcessorProducerGuid", efi.GUID{0xea, 0x6b, 0x92, 0xd4, 0xa3, 0x00, 0xe5, 0x40, 0xa2, 0xb9, 0xc3, 0x17, 0x96, 0x0f, 0x31, 0xbf}: "AmiPspFtpmPei", efi.GUID{0xea, 0x76, 0x5f, 0x55, 0x5f, 0x78, 0xd7, 0x40, 0x91, 0x74, 0x15, 0x3c, 0x43, 0x63, 0x6c, 0x68}: "CirrusLogic5430Dxe", efi.GUID{0xea, 0x78, 0x68, 0x4f, 0x51, 0xfd, 0xb2, 0x48, 0x99, 0x62, 0x5c, 0xef, 0xbb, 0xf6, 0xce, 0xa2}: "TccDxe", efi.GUID{0xea, 0x7f, 0x05, 0xd5, 0xa4, 0xa6, 0xb0, 0x4b, 0xa3, 0xa1, 0x7e, 0x01, 0x8a, 0x81, 0x05, 0xfa}: "FjTimestampSmm", efi.GUID{0xea, 0x7f, 0x5c, 0xb8, 0xbf, 0xae, 0x2b, 0x49, 0x96, 0xc6, 0x42, 0xea, 0x13, 0x3b, 0xcf, 0x29}: "AmiTseHddSecurity", efi.GUID{0xea, 0x87, 0x24, 0x8c, 0xf3, 0x9a, 0xe3, 0x11, 0xb9, 0x66, 0xb8, 0xac, 0x6f, 0x7d, 0x65, 0xe6}: "XenPvBlkDxe", efi.GUID{0xea, 0x89, 0xc5, 0xd6, 0x29, 0xdd, 0xef, 0x49, 0x97, 0xf6, 0x1a, 0x9f, 0xe1, 0x9a, 0x04, 0xe0}: "PwdCredentialProvider", efi.GUID{0xea, 0x8a, 0xa4, 0xf4, 0xd1, 0x40, 0x4b, 0x45, 0xb7, 0xcb, 0x56, 0x07, 0xa9, 0x93, 0xb8, 0xd9}: "BBSManagerSmm", efi.GUID{0xea, 0x92, 0xb7, 0x69, 0xce, 0x39, 0x2d, 0x40, 0xa2, 0xa6, 0xf7, 0x21, 0xde, 0x35, 0x1d, 0xfe}: "EdkiiSmmMemoryAttributeProtocol", efi.GUID{0xea, 0x95, 0x86, 0x33, 0x84, 0xca, 0xa2, 0x4f, 0x9d, 0xa8, 0x5c, 0x4b, 0xb8, 0x79, 0x05, 0xc6}: "XenioFdtDxe", efi.GUID{0xea, 0x95, 0x94, 0x25, 0xd9, 0x2d, 0xa5, 0x4e, 0xa1, 0x11, 0x61, 0xf5, 0x87, 0x81, 0x49, 0x9d}: "I2cMasterSmm", efi.GUID{0xea, 0x99, 0x34, 0xb4, 0xb6, 0x57, 0x15, 0x40, 0xbd, 0xbd, 0xae, 0xa5, 0xd3, 0xd4, 0xf5, 0x92}: "ApobBrhDxe", efi.GUID{0xea, 0x9b, 0x8d, 0xb4, 0xfa, 0x84, 0xd5, 0x46, 0xb2, 0x89, 0x3b, 0xc7, 0x7b, 0xb9, 0xee, 0x33}: "OemHookDxe", efi.GUID{0xea, 0x9d, 0x55, 0xbc, 0x81, 0x26, 0x45, 0x93, 0x9b, 0xe9, 0x07, 0x85, 0x0a, 0xf3, 0x9e, 0x6e}: "ShaHash", efi.GUID{0xea, 0xa6, 0x7e, 0x98, 0xfd, 0xfb, 0x73, 0x42, 0xb8, 0x19, 0xa7, 0x21, 0x0a, 0xdf, 0x67, 0x60}: "StatusCodeReport", efi.GUID{0xea, 0xb3, 0x90, 0x28, 0x3d, 0x05, 0x43, 0x16, 0xad, 0x0c, 0xd6, 0x48, 0x08, 0xda, 0x3f, 0xf1}: "HardwareInterruptProtocolGuid", efi.GUID{0xea, 0xb6, 0xfa, 0x99, 0x8b, 0x64, 0xac, 0x6e, 0x3e, 0xea, 0x5a, 0x16, 0xee, 0xa6, 0x4c, 0x3e}: "A01UnlockPassword", efi.GUID{0xea, 0xb7, 0x1a, 0x86, 0x47, 0x0e, 0xb3, 0x40, 0xae, 0xa6, 0x48, 0xd0, 0x7a, 0xf4, 0x70, 0x3c}: "CsbSmartCover", efi.GUID{0xea, 0xb7, 0x5a, 0x2f, 0x90, 0xda, 0x84, 0x4e, 0x83, 0xee, 0x5f, 0x73, 0x97, 0x25, 0x45, 0x31}: "BindingsPei", efi.GUID{0xea, 0xbd, 0x4e, 0x74, 0x0a, 0xf3, 0x13, 0x4f, 0xa0, 0xb8, 0xf7, 0xd7, 0x98, 0x2a, 0x57, 0xdb}: "BiosPasswordDxe", efi.GUID{0xea, 0xbe, 0xc0, 0xb9, 0x1c, 0x3f, 0xc0, 0x45, 0x82, 0x2b, 0xb0, 0x90, 0x8f, 0x66, 0x8f, 0x65}: "NTFS", efi.GUID{0xea, 0xbe, 0xe8, 0xce, 0x7a, 0x50, 0xf4, 0x49, 0xa3, 0xd7, 0xd1, 0x10, 0x0a, 0x20, 0x08, 0xcc}: "SynQuacerPciCpuIo2Dxe", efi.GUID{0xea, 0xc2, 0xf6, 0x11, 0x1f, 0xe2, 0xcf, 0x5a, 0xa5, 0xdf, 0x32, 0xc1, 0x2e, 0x5e, 0x0e, 0x70}: "PlatformPreInit", efi.GUID{0xea, 0xc4, 0x44, 0xce, 0x50, 0x62, 0xff, 0x4d, 0x9c, 0x1d, 0x86, 0xd3, 0xcd, 0x1e, 0x64, 0xa6}: "AsusVmdAiControlKeepVmdMode", efi.GUID{0xea, 0xc6, 0x94, 0xc1, 0x8c, 0xb6, 0x81, 0x49, 0xb6, 0x4b, 0x9b, 0xd2, 0x71, 0x47, 0x4b, 0x20}: "PchSpiRuntime", efi.GUID{0xea, 0xcc, 0x32, 0x2a, 0x78, 0x5d, 0xd7, 0x46, 0xba, 0xed, 0x8e, 0x53, 0xa1, 0xb3, 0x13, 0x57}: "AcpiPlatformDxe", efi.GUID{0xea, 0xd4, 0x54, 0xee, 0xad, 0xb2, 0x7f, 0x43, 0x86, 0x0f, 0x1a, 0xb9, 0x68, 0x52, 0x37, 0xe9}: "DustFilterAlertSmm", efi.GUID{0xea, 0xdb, 0xae, 0x12, 0x2d, 0x39, 0x2a, 0x4e, 0x87, 0x89, 0x5f, 0x6d, 0xc6, 0xb2, 0x36, 0x61}: "OemBadgingSupportDxe", efi.GUID{0xea, 0xdd, 0x6c, 0x33, 0x28, 0xab, 0x4c, 0x4c, 0x9f, 0x64, 0x5f, 0xe0, 0x39, 0x1f, 0xeb, 0xb8}: "DellAudioConfigPei", efi.GUID{0xea, 0xe5, 0xcf, 0xf0, 0x5a, 0x89, 0x18, 0x4c, 0xbe, 0x2a, 0x80, 0xfd, 0x85, 0xbb, 0x82, 0x99}: "UwbSmm", efi.GUID{0xea, 0xf0, 0x5f, 0x10, 0xc0, 0xa0, 0xa8, 0x48, 0xb8, 0xf7, 0xe8, 0xb4, 0xd6, 0x2a, 0x10, 0x19}: "FmpAuthenticationLibRsa2048Sha256", efi.GUID{0xea, 0xf1, 0x59, 0x4a, 0x8d, 0xa1, 0xa6, 0x40, 0x87, 0x17, 0xc1, 0x6d, 0xc5, 0xa6, 0xab, 0xb6}: "PchCrashLogAgent", efi.GUID{0xea, 0xf1, 0x76, 0xbb, 0x0f, 0x75, 0x31, 0x41, 0xbb, 0x54, 0xa8, 0x80, 0xad, 0x72, 0xc9, 0xe2}: "TimerWakeSmm", efi.GUID{0xea, 0xf3, 0x3f, 0x5c, 0x95, 0x5e, 0xab, 0x44, 0xa0, 0x42, 0xf1, 0xcb, 0x95, 0x2d, 0x0c, 0xe9}: "IntelRaidBiosThunk", efi.GUID{0xea, 0xf3, 0x49, 0x3d, 0x1b, 0xad, 0x66, 0x48, 0x84, 0x59, 0xe5, 0xb5, 0x8c, 0xa4, 0x10, 0xd3}: "AmdMemMcsrUserPreferenceDxe", efi.GUID{0xea, 0xfe, 0x73, 0x32, 0xa2, 0xff, 0xba, 0x4e, 0xa2, 0x93, 0x9f, 0x7e, 0xfd, 0xfe, 0xef, 0x87}: "FanIdm", efi.GUID{0xea, 0xff, 0xaa, 0x22, 0x58, 0x23, 0x53, 0x4c, 0x9a, 0xf0, 0xcc, 0x0c, 0xcb, 0x06, 0xe2, 0xef}: "PanelResolution", efi.GUID{0xeb, 0x05, 0x32, 0x63, 0x1f, 0x9a, 0xa7, 0x4c, 0xaa, 0xc2, 0xad, 0x81, 0x0d, 0xb1, 0x0b, 0xaf}: "FjMfgChangeSetupDefaultDxe", efi.GUID{0xeb, 0x06, 0xe6, 0xd5, 0xdf, 0x83, 0x90, 0x4e, 0x81, 0xe8, 0xc3, 0xdb, 0x2f, 0x77, 0x17, 0x9a}: "rmHwA15x2A7x3Guid", efi.GUID{0xeb, 0x20, 0x93, 0xbd, 0xb9, 0x7b, 0xed, 0x4a, 0xa6, 0x82, 0xcf, 0x4f, 0x96, 0xbe, 0x24, 0x4c}: "IntelMchFieldAcpiTables", efi.GUID{0xeb, 0x24, 0x7f, 0x7a, 0x6c, 0x42, 0x6f, 0x47, 0xae, 0x54, 0x09, 0xa2, 0x3a, 0x9e, 0x04, 0xc1}: "FjIbvAbstractionSmm", efi.GUID{0xeb, 0x33, 0xc2, 0x83, 0x1a, 0xd0, 0xd8, 0x45, 0x9f, 0xa1, 0xaf, 0x40, 0x20, 0x6f, 0xcc, 0x9b}: "AmiTseOemPortingVar20", efi.GUID{0xeb, 0x3c, 0x50, 0xf7, 0x1c, 0x48, 0xe2, 0x4a, 0xb4, 0x2d, 0x8b, 0xd6, 0x84, 0xf3, 0x95, 0xe1}: "SecureBIOCamera_Sonix", efi.GUID{0xeb, 0x3d, 0xe6, 0x3e, 0x03, 0xa0, 0xcb, 0x45, 0xa9, 0x49, 0x67, 0x54, 0xcd, 0x61, 0x8c, 0x9c}: "AcerHwConfigSmm", efi.GUID{0xeb, 0x65, 0x0c, 0xfd, 0x05, 0x04, 0xd2, 0x4c, 0x8a, 0xee, 0xf4, 0x00, 0xef, 0x13, 0xba, 0xc2}: "NtPeiLoadFilePpiGuid", efi.GUID{0xeb, 0x6a, 0x02, 0x00, 0x34, 0xf3, 0x15, 0x4c, 0xa7, 0xf0, 0xe1, 0xe8, 0x97, 0xe9, 0xfe, 0x91}: "NvmeRecovery", efi.GUID{0xeb, 0x76, 0x63, 0xae, 0x13, 0xc8, 0x2d, 0x48, 0x80, 0x05, 0x40, 0x02, 0x3a, 0x67, 0x4e, 0xc1}: "FPSmbiosType140", efi.GUID{0xeb, 0x76, 0x6c, 0xc9, 0x78, 0xbc, 0x9c, 0x42, 0x9f, 0x4b, 0xda, 0x51, 0x78, 0xc2, 0x84, 0x57}: "TpmNvsMm", efi.GUID{0xeb, 0x7e, 0xba, 0x49, 0xf4, 0x49, 0xb4, 0x4b, 0x85, 0xde, 0xfd, 0x4f, 0xe7, 0x36, 0x9e, 0x58}: "PlatformCpuPolicyPei", efi.GUID{0xeb, 0x84, 0xf7, 0x64, 0xfe, 0x69, 0x48, 0x45, 0xbf, 0xeb, 0xad, 0xd7, 0x60, 0x69, 0x97, 0xcc}: "SaveRestroreFrameBuffer", efi.GUID{0xeb, 0x85, 0x05, 0x2b, 0xb8, 0xd8, 0xa9, 0x49, 0x8b, 0x8c, 0xe2, 0x1b, 0x01, 0xae, 0xf2, 0xb7}: "AppleLegacyLoad", efi.GUID{0xeb, 0x86, 0x4e, 0xfc, 0xa2, 0xaa, 0xfe, 0x4e, 0x83, 0x1a, 0x1e, 0x66, 0xdb, 0x3c, 0x59, 0x70}: "AmdSmmControl", efi.GUID{0xeb, 0x8b, 0x35, 0xb7, 0x52, 0x6a, 0x50, 0x4d, 0x98, 0xf9, 0x7e, 0xdd, 0x70, 0xb4, 0xb3, 0x20}: "CommonPciPlatformDxe", efi.GUID{0xeb, 0x8b, 0x78, 0x43, 0x8f, 0x63, 0x4c, 0x43, 0x8a, 0x84, 0x46, 0xd3, 0x3a, 0x58, 0x9e, 0x76}: "DxeBmcElog", efi.GUID{0xeb, 0x8b, 0xc7, 0xf6, 0xfa, 0x21, 0x55, 0x48, 0x93, 0x25, 0x31, 0x1b, 0x6a, 0x9d, 0xaa, 0x9e}: "RealtekGopLoader", efi.GUID{0xeb, 0x95, 0xb9, 0x9b, 0xeb, 0x92, 0x0b, 0x49, 0xb8, 0x64, 0x13, 0xb8, 0x68, 0xa7, 0x95, 0x3c}: "UsbPortControlPei", efi.GUID{0xeb, 0x97, 0x2d, 0x83, 0xd7, 0x8f, 0xbb, 0x45, 0xac, 0xfe, 0x2a, 0x46, 0x8f, 0x51, 0xc1, 0xbd}: "DellMultiFuncDevConfigSmm", efi.GUID{0xeb, 0x98, 0x21, 0x08, 0x31, 0x17, 0x8a, 0x47, 0x90, 0x1c, 0x5a, 0x86, 0xa9, 0xc6, 0x49, 0x10}: "DellPermDevConfigDxe", efi.GUID{0xeb, 0x98, 0x51, 0xeb, 0xf5, 0xe7, 0xa1, 0x45, 0x9c, 0xcb, 0xe5, 0x33, 0x64, 0xbb, 0x49, 0x92}: "AmiSmmInfoProtocol", efi.GUID{0xeb, 0x99, 0xfd, 0x47, 0xe6, 0xc1, 0x77, 0x4f, 0xa3, 0x1a, 0x9f, 0x7f, 0xb4, 0xa8, 0xe7, 0xde}: "menu_down_arrow", efi.GUID{0xeb, 0x9f, 0x31, 0xe1, 0x0d, 0xca, 0x73, 0x4e, 0xb7, 0x9c, 0x34, 0xba, 0x11, 0x34, 0xd7, 0x9d}: "LVDS", efi.GUID{0xeb, 0xa0, 0xed, 0x2a, 0x92, 0x13, 0x32, 0x42, 0xa4, 0xf9, 0xc5, 0x7a, 0x3c, 0x2f, 0xa2, 0xd9}: "BindingsSmm", efi.GUID{0xeb, 0xaf, 0xa2, 0xfb, 0xce, 0x9a, 0xe0, 0x49, 0xbb, 0x82, 0x0e, 0xb9, 0xe8, 0x3b, 0xd5, 0xbe}: "HpAcLossSmm", efi.GUID{0xeb, 0xba, 0xc6, 0xab, 0x8d, 0xaa, 0x1d, 0x40, 0x9b, 0x17, 0xc6, 0xda, 0x6a, 0xf4, 0xf4, 0x8e}: "DashManagement", efi.GUID{0xeb, 0xd6, 0xbd, 0xad, 0xb2, 0x27, 0x42, 0x4a, 0xb3, 0x92, 0xf2, 0x9c, 0x00, 0xc8, 0xd8, 0x61}: "DeviceAddressPolicyProtocol", efi.GUID{0xeb, 0xdb, 0x78, 0x56, 0x02, 0x67, 0xda, 0x44, 0x8c, 0x0c, 0x60, 0x94, 0x2a, 0xc1, 0xf9, 0x80}: "Ps2KbdPei", efi.GUID{0xeb, 0xe5, 0xc2, 0x5d, 0x2a, 0x35, 0xc9, 0x4b, 0x85, 0xa6, 0xf2, 0x1b, 0x59, 0x06, 0x71, 0x54}: "OEMComDxe", efi.GUID{0xeb, 0xe9, 0xf6, 0x91, 0x02, 0x99, 0xb3, 0x44, 0xa4, 0x87, 0xc8, 0xe1, 0x48, 0xd0, 0xf4, 0xee}: "EmcaErrorLog", efi.GUID{0xeb, 0xea, 0x3e, 0x76, 0x2a, 0xfe, 0x78, 0x47, 0xbe, 0x0a, 0x38, 0x42, 0xef, 0x86, 0x10, 0xa8}: "BIOSLOCK", efi.GUID{0xec, 0x0e, 0xac, 0x98, 0x3c, 0x0f, 0x56, 0x41, 0x80, 0xa3, 0xc9, 0xbb, 0x0c, 0x10, 0xab, 0xc2}: "SmmPTDispatch2OnSmmPTDispatchThunk", efi.GUID{0xec, 0x16, 0xec, 0x1c, 0x60, 0x1c, 0x9b, 0x44, 0x97, 0x75, 0x23, 0xca, 0x66, 0xb9, 0x3f, 0x52}: "AmdBoardIdPei", efi.GUID{0xec, 0x1b, 0xa8, 0x1e, 0x1a, 0xf0, 0x98, 0x4d, 0xa2, 0x01, 0x4a, 0x61, 0xce, 0x2f, 0xc0, 0x22}: "PerformanceExProtocolGuid", efi.GUID{0xec, 0x1f, 0xdd, 0xcd, 0x13, 0x7c, 0x3e, 0x47, 0x8a, 0xe0, 0x7a, 0x07, 0x23, 0xad, 0xc7, 0x87}: "DualBiosDxe", efi.GUID{0xec, 0x29, 0xe3, 0xb7, 0x60, 0xad, 0x61, 0x4d, 0x86, 0xe3, 0x01, 0xa7, 0x90, 0x4e, 0x22, 0x3d}: "gear7", efi.GUID{0xec, 0x2f, 0x20, 0x1f, 0xa1, 0xdd, 0xbf, 0x4b, 0x85, 0x84, 0xbd, 0x42, 0xe3, 0x79, 0xce, 0x99}: "DellDiagDxe", efi.GUID{0xec, 0x2f, 0xd6, 0xe7, 0x94, 0x49, 0x30, 0x40, 0x8b, 0x3f, 0xab, 0x46, 0x06, 0xa3, 0x33, 0x50}: "SystemAcpiOA30Smm", efi.GUID{0xec, 0x30, 0x12, 0x56, 0xa5, 0xe2, 0x58, 0x4e, 0x80, 0xc2, 0x30, 0x48, 0x6d, 0x9f, 0x8d, 0x62}: "RtkUndiDxe", efi.GUID{0xec, 0x43, 0x77, 0x58, 0x05, 0xb5, 0x9f, 0x4e, 0x9f, 0x2b, 0x3d, 0xf7, 0x03, 0xd7, 0xb1, 0xd4}: "KEMrWdtSci", efi.GUID{0xec, 0x43, 0xa1, 0xbe, 0xec, 0x5d, 0x6b, 0x4c, 0xa6, 0x31, 0x2c, 0x2e, 0x27, 0x75, 0x94, 0x87}: "DreamTeamSleepSmi", efi.GUID{0xec, 0x4a, 0x06, 0x10, 0x12, 0x4e, 0x0d, 0x44, 0x81, 0x26, 0xd7, 0x1d, 0x07, 0x83, 0x74, 0x23}: "PeiCallback", efi.GUID{0xec, 0x4b, 0x09, 0x58, 0xfe, 0x30, 0x9a, 0x45, 0xb2, 0x32, 0x3a, 0x60, 0xd1, 0xc7, 0x8c, 0x16}: "WheaErrorLogListener", efi.GUID{0xec, 0x58, 0x35, 0x1a, 0xbb, 0x13, 0x51, 0x44, 0xa5, 0x89, 0x74, 0xdf, 0xbd, 0x9a, 0x27, 0xad}: "LidPoller", efi.GUID{0xec, 0x59, 0x4d, 0x3b, 0xd9, 0xdf, 0xc6, 0x4e, 0xbb, 0x8a, 0xe0, 0xfe, 0x2b, 0x42, 0x64, 0xa0}: "PciDxeInit", efi.GUID{0xec, 0x5d, 0x76, 0xf2, 0x41, 0x6b, 0xd5, 0x11, 0x8e, 0x71, 0x00, 0x90, 0x27, 0x07, 0xb3, 0x5e}: "Timer", efi.GUID{0xec, 0x67, 0xcb, 0x84, 0x7d, 0xb2, 0x83, 0x4f, 0x89, 0x7d, 0x16, 0xa9, 0x5b, 0x62, 0x6e, 0xbe}: "BoardInitAdvancedPostMem", efi.GUID{0xec, 0x6e, 0xd5, 0x03, 0x96, 0xe1, 0x15, 0x48, 0xb9, 0x1a, 0xc4, 0x88, 0x5a, 0x83, 0x90, 0x43}: "CompalGlobalNvsDxe", efi.GUID{0xec, 0x6f, 0x40, 0xe2, 0x09, 0x66, 0x85, 0x43, 0xab, 0x3d, 0x45, 0x35, 0xb6, 0xc7, 0xc4, 0x6d}: "SmmSxDispatch2OnSmmSxDispatchThunk", efi.GUID{0xec, 0x6f, 0xb7, 0xa0, 0x2c, 0x50, 0x1d, 0x40, 0x97, 0x05, 0x20, 0xae, 0xf6, 0xea, 0xf8, 0x32}: "EcAuditLogSmm", efi.GUID{0xec, 0x71, 0x21, 0x9f, 0x0f, 0x7d, 0x0f, 0x46, 0x91, 0x5d, 0xc5, 0x8a, 0x0f, 0x7e, 0x67, 0x64}: "AmdNbioPei", efi.GUID{0xec, 0x74, 0x47, 0x15, 0x50, 0x43, 0xd4, 0x40, 0xaf, 0x66, 0x7d, 0x18, 0x37, 0xbc, 0xd5, 0x59}: "EfiHeciTrustedChannelSmmProtocolGuid", efi.GUID{0xec, 0x76, 0x82, 0xa0, 0xfe, 0xa0, 0x06, 0x4e, 0x86, 0x70, 0x38, 0x53, 0x36, 0xc7, 0xd0, 0x93}: "x86Thunk", efi.GUID{0xec, 0x7f, 0x2a, 0x9c, 0xf2, 0xb7, 0xcf, 0x4b, 0x90, 0xed, 0xfd, 0xde, 0x21, 0xeb, 0x5c, 0x55}: "FjCrid", efi.GUID{0xec, 0x8b, 0xdd, 0xab, 0x25, 0x98, 0x78, 0x46, 0xad, 0x5a, 0x27, 0xc7, 0x4f, 0xad, 0xba, 0xa7}: "TPM20Esrt", efi.GUID{0xec, 0x8d, 0x3c, 0x31, 0x8d, 0xdf, 0x02, 0x45, 0x92, 0xb5, 0x1f, 0xf4, 0x88, 0x3a, 0x55, 0xae}: "FlashControllerNvsSmm", efi.GUID{0xec, 0x8f, 0xa7, 0x41, 0x70, 0x22, 0x1d, 0x42, 0x98, 0xc9, 0xbd, 0x13, 0xe7, 0x7d, 0xf1, 0x9f}: "NtfsDxe", efi.GUID{0xec, 0x98, 0xe1, 0x96, 0xbc, 0xcd, 0x21, 0x4c, 0x97, 0x43, 0xeb, 0x45, 0x77, 0x64, 0x8e, 0x59}: "IccDxe", efi.GUID{0xec, 0xa1, 0x9a, 0x6c, 0x6e, 0x28, 0x0a, 0x4a, 0xaa, 0x98, 0xe2, 0xe5, 0x30, 0x62, 0x6f, 0x4d}: "AmdiGpuVgaControlDxe", efi.GUID{0xec, 0xa9, 0x82, 0x0d, 0x89, 0x12, 0xd4, 0x4f, 0xac, 0x0b, 0x4c, 0x6b, 0x1a, 0x25, 0xab, 0xc6}: "SwitchableGraphicsDxe", efi.GUID{0xec, 0xad, 0x3d, 0xfc, 0x3c, 0x1e, 0xac, 0x49, 0x9c, 0xc8, 0x3c, 0x35, 0x97, 0xa8, 0xc8, 0x5f}: "Smbus2HostController", efi.GUID{0xec, 0xb8, 0x48, 0x60, 0x17, 0x6d, 0xc0, 0x45, 0x9b, 0xcf, 0x63, 0xd1, 0x64, 0xb4, 0x1a, 0xb3}: "LanRom", efi.GUID{0xec, 0xbd, 0x76, 0xf2, 0x41, 0x6c, 0xe5, 0x21, 0x9e, 0x71, 0x00, 0xa1, 0x38, 0x07, 0xb4, 0x5e}: "RestoreMtrrDxe", efi.GUID{0xec, 0xd9, 0x3b, 0x90, 0x93, 0x1e, 0xd6, 0x43, 0xa1, 0xc9, 0xb6, 0xab, 0x65, 0xac, 0x92, 0x70}: "RtkUndiDxe", efi.GUID{0xec, 0xdc, 0x8e, 0x40, 0x6d, 0xcf, 0x7c, 0x47, 0xa5, 0xa8, 0xb4, 0x84, 0x4e, 0x3d, 0xe2, 0x81}: "ConSplitterDxe", efi.GUID{0xec, 0xe8, 0xd7, 0x53, 0xf5, 0x56, 0x9c, 0x4f, 0x81, 0x98, 0x7b, 0xfb, 0x2e, 0xd4, 0xe0, 0x5e}: "BootSectorWriteProtect", efi.GUID{0xec, 0xee, 0x37, 0xba, 0x01, 0x2b, 0xce, 0x48, 0xb3, 0xd3, 0xaf, 0x6e, 0xc1, 0x89, 0x33, 0x30}: "AmdNbioIOMMUDxe", efi.GUID{0xec, 0xf4, 0xd2, 0x3b, 0x24, 0xe5, 0xe4, 0x46, 0xa9, 0xd8, 0x51, 0x01, 0x17, 0x42, 0x55, 0x62}: "EfiHiiStandardFormGuid", efi.GUID{0xec, 0xf5, 0xb9, 0x38, 0x18, 0xeb, 0xd4, 0x4c, 0xbf, 0x13, 0xf0, 0x72, 0x65, 0x9f, 0x40, 0x02}: "ExtendODMDxe", efi.GUID{0xec, 0xfd, 0x3a, 0x0b, 0x77, 0xf1, 0x48, 0x45, 0x9c, 0x7e, 0x4d, 0x09, 0xed, 0xf4, 0xa2, 0xfa}: "EcdSmartPowerOn", efi.GUID{0xed, 0x03, 0x8b, 0x45, 0x53, 0x6e, 0x4f, 0x41, 0x9f, 0x07, 0x3a, 0x82, 0x9c, 0x99, 0x06, 0x41}: "DriveLockSmm", efi.GUID{0xed, 0x09, 0x82, 0x6a, 0x36, 0x5d, 0x06, 0x49, 0xa3, 0x16, 0x55, 0x41, 0x00, 0x6f, 0x55, 0x8e}: "OneKeyBatteryDxe", efi.GUID{0xed, 0x16, 0xb2, 0x2f, 0x67, 0x4a, 0x33, 0x48, 0x9f, 0x5c, 0x24, 0x81, 0x24, 0xcd, 0x9a, 0xac}: "DxeGpioPolicy", efi.GUID{0xed, 0x18, 0xc9, 0x2e, 0xc2, 0x4d, 0x77, 0x4d, 0xbb, 0x83, 0xa5, 0x91, 0x21, 0x30, 0xf5, 0xb4}: "FchKTSataD3ColdSmm", efi.GUID{0xed, 0x19, 0xcf, 0x98, 0x09, 0x41, 0x81, 0x46, 0xb7, 0x9d, 0x91, 0x96, 0x75, 0x7c, 0x78, 0x24}: "EfiSocketMemoryVariable", efi.GUID{0xed, 0x20, 0xbd, 0x80, 0xac, 0x46, 0x66, 0x4f, 0xac, 0xba, 0x9a, 0x16, 0x58, 0xdb, 0x18, 0x30}: "AcerSystemStatusProtocol", efi.GUID{0xed, 0x24, 0x53, 0xaa, 0x11, 0xdc, 0x5d, 0x4d, 0xa5, 0x2b, 0xfa, 0xbd, 0xd7, 0xe8, 0x06, 0x34}: "PlacementDxe", efi.GUID{0xed, 0x2b, 0x09, 0x24, 0x36, 0x27, 0xa7, 0x40, 0x8d, 0x87, 0x51, 0x5e, 0x85, 0x94, 0xf6, 0xb3}: "FjGabiOsEntryGateDxe", efi.GUID{0xed, 0x2f, 0xd5, 0xd5, 0xa6, 0xf8, 0xac, 0x49, 0x97, 0xac, 0x72, 0x91, 0xa6, 0x04, 0x05, 0xa6}: "FsIso9660", efi.GUID{0xed, 0x33, 0x9d, 0xe4, 0x3d, 0x51, 0x34, 0x46, 0xb6, 0x98, 0x6f, 0x55, 0xaa, 0x75, 0x1c, 0x1b}: "EfiSmbusHcProtocolGuid", efi.GUID{0xed, 0x3a, 0xc7, 0x0d, 0xf6, 0xcb, 0x25, 0x4a, 0xa6, 0x8d, 0x59, 0xc8, 0x0f, 0x44, 0xc7, 0xc3}: "EfiDFUVerGuid", efi.GUID{0xed, 0x4c, 0x5e, 0xa7, 0x16, 0xd3, 0xfe, 0x4c, 0x94, 0x2c, 0x36, 0xa2, 0x57, 0x89, 0xf0, 0x4d}: "SetupConfigUpdateDxeGlacier", efi.GUID{0xed, 0x5a, 0xfa, 0x83, 0x71, 0x51, 0x49, 0x49, 0xbd, 0xc9, 0x0c, 0xbc, 0x9e, 0x12, 0x36, 0x63}: "FwCapsuleRecoveryPPI", efi.GUID{0xed, 0x5e, 0x09, 0x7c, 0xde, 0xc8, 0xbd, 0x49, 0x90, 0xd4, 0x6c, 0x9a, 0x3a, 0x3b, 0xe9, 0xc3}: "DellRmtPlatSiSmm", efi.GUID{0xed, 0x5f, 0x1f, 0xa1, 0xa1, 0x63, 0x4a, 0x41, 0xb8, 0xfe, 0xfb, 0x21, 0x84, 0xc2, 0x42, 0xfd}: "HpDtPrivateWmiSmm", efi.GUID{0xed, 0x63, 0xd7, 0x44, 0x98, 0x77, 0xa4, 0x49, 0x8b, 0x8b, 0xc3, 0xd5, 0xbb, 0x2f, 0xd4, 0xfd}: "RestrictedBootfromRemovableMediaPei", efi.GUID{0xed, 0x70, 0x08, 0x65, 0x7d, 0x2f, 0x86, 0x46, 0xbe, 0x6e, 0x2d, 0x04, 0x94, 0xf4, 0xb6, 0x29}: "EventLogPei", efi.GUID{0xed, 0x77, 0xe9, 0x78, 0x0f, 0x6e, 0x74, 0x47, 0xb5, 0xd1, 0x9d, 0xc7, 0xf7, 0x5f, 0x33, 0x9f}: "FchPromontoryUsb", efi.GUID{0xed, 0x7b, 0x41, 0x56, 0xbe, 0x6b, 0x82, 0x48, 0x86, 0xa0, 0x3a, 0xe8, 0xbb, 0x17, 0xf8, 0xf9}: "EfiKmsFormatRsasha11024Guid", efi.GUID{0xed, 0x7e, 0x55, 0xc0, 0x89, 0x9a, 0x70, 0x47, 0x96, 0x26, 0xfc, 0xa0, 0x51, 0xf2, 0xba, 0x09}: "PerfTuneWdtProtocol", efi.GUID{0xed, 0x85, 0xf7, 0xd2, 0xf3, 0x95, 0x75, 0x40, 0x89, 0x7d, 0x9d, 0x9c, 0xf9, 0xc5, 0xa7, 0x9d}: "AtaAtapiPpi", efi.GUID{0xed, 0x91, 0xb0, 0x86, 0x63, 0x14, 0xb5, 0x43, 0x82, 0xa1, 0x2c, 0x8b, 0x83, 0xcb, 0x89, 0x17}: "EfiPlatformRasPolicyProtocol", efi.GUID{0xed, 0xa1, 0x8f, 0x94, 0xd0, 0xf8, 0xca, 0x4e, 0x81, 0xb4, 0x19, 0x4d, 0x83, 0x64, 0xcc, 0xf6}: "AmdSocSp6ShpPei", efi.GUID{0xed, 0xa3, 0x91, 0x8d, 0x40, 0x90, 0xe0, 0x46, 0x82, 0x48, 0xfb, 0xbe, 0x3f, 0x2b, 0xe8, 0x08}: "ErrorLogPolicyDxe", efi.GUID{0xed, 0xb2, 0x04, 0x0b, 0x1c, 0x86, 0xcd, 0x42, 0xa2, 0x2f, 0xc3, 0xaa, 0xfa, 0xcc, 0xb8, 0x96}: "BiosVideoDxe", efi.GUID{0xed, 0xbf, 0xeb, 0xa7, 0x82, 0xcd, 0x78, 0x42, 0x94, 0xdc, 0x80, 0xf0, 0xcd, 0xe4, 0x6f, 0xe4}: "GpioV2ProtocolInitDxe", efi.GUID{0xed, 0xce, 0x67, 0x17, 0x82, 0xdb, 0xcd, 0x47, 0xbf, 0x2b, 0x68, 0x45, 0x8a, 0x8c, 0xcf, 0xff}: "EfiMemorySubclassDriver", efi.GUID{0xed, 0xcf, 0x2c, 0x33, 0xe7, 0xe5, 0xab, 0x49, 0x82, 0x0d, 0xe3, 0x4a, 0x54, 0xed, 0x3f, 0x57}: "DellSmmMfgModeProtocol", efi.GUID{0xed, 0xd5, 0xcb, 0x6d, 0x2d, 0xe8, 0x44, 0x4c, 0xbd, 0xa1, 0x71, 0x94, 0x19, 0x9a, 0xd9, 0x2a}: "EfiFmpCapsuleGuid", efi.GUID{0xed, 0xda, 0x9a, 0x6f, 0xb6, 0xdb, 0x6d, 0x4b, 0xa3, 0xc5, 0xa6, 0x9b, 0xfc, 0x7d, 0x45, 0x78}: "FjTpmLicense", efi.GUID{0xed, 0xec, 0xa5, 0xe2, 0x4c, 0xde, 0x2d, 0x43, 0x9a, 0xa0, 0x06, 0x1c, 0x33, 0xa3, 0x08, 0xc8}: "A01DataServiceBodyDxe", efi.GUID{0xed, 0xf5, 0x83, 0x9f, 0x07, 0xf4, 0xd3, 0x4b, 0x9b, 0x16, 0xdc, 0x27, 0xa7, 0x01, 0x6b, 0xbd}: "PlatformFirmwareVersionDxe", efi.GUID{0xed, 0xfe, 0x0d, 0xb3, 0x7f, 0x94, 0x96, 0x43, 0xb1, 0x5a, 0xdf, 0xbd, 0xb9, 0x16, 0xdc, 0x24}: "EdkiiPeiSdMmcHostControllerPpiGuid", efi.GUID{0xee, 0x00, 0x3e, 0x7f, 0x26, 0xb8, 0x58, 0x43, 0x8f, 0xfa, 0xc3, 0x0c, 0x3a, 0xf5, 0x26, 0xf2}: "LenovoTpm2ConfigSmm", efi.GUID{0xee, 0x00, 0x4c, 0xf4, 0x2c, 0x1f, 0x00, 0x4a, 0xaa, 0x09, 0x1c, 0x9f, 0x3e, 0x08, 0x00, 0xa3}: "EfiArpServiceBindingProtocolGuid", efi.GUID{0xee, 0x00, 0x74, 0xfb, 0x8f, 0x0e, 0x9c, 0x4b, 0xb6, 0x77, 0xcf, 0x3e, 0x0f, 0x27, 0xcf, 0x62}: "LEMEfiAtaPassThruProtocolHook", efi.GUID{0xee, 0x04, 0x90, 0x88, 0x88, 0x83, 0xbe, 0x43, 0x89, 0x75, 0xc5, 0x93, 0xfc, 0x50, 0xbb, 0x4a}: "EmulatedEepromDxe", efi.GUID{0xee, 0x0e, 0xf8, 0x38, 0xa3, 0xff, 0x7b, 0x41, 0xab, 0xf1, 0xf7, 0x13, 0x39, 0x90, 0x07, 0xe8}: "WufuDxe", efi.GUID{0xee, 0x13, 0xc5, 0x36, 0x38, 0xa3, 0x76, 0x49, 0xa0, 0xfb, 0x6d, 0xdb, 0xa3, 0xda, 0xfe, 0x87}: "DefaultdbtFile", efi.GUID{0xee, 0x16, 0x97, 0xc5, 0x90, 0x2d, 0x1d, 0x4b, 0x9c, 0x36, 0x16, 0x52, 0x3e, 0x10, 0x56, 0x89}: "AmdNbioIOMMUZPPei", efi.GUID{0xee, 0x19, 0x66, 0xef, 0x7d, 0xf7, 0x8c, 0x4a, 0x86, 0x93, 0xd6, 0x0d, 0x6a, 0xa5, 0x67, 0x02}: "SetupSecurity", efi.GUID{0xee, 0x1f, 0xff, 0x21, 0x3a, 0xd3, 0xce, 0x4f, 0xa6, 0x5e, 0x95, 0x5e, 0xa3, 0xc4, 0x1f, 0x40}: "QNCMemoryInitPpiGuid", efi.GUID{0xee, 0x20, 0x3d, 0xfb, 0x5d, 0xcb, 0xee, 0x45, 0xbb, 0xae, 0xc5, 0xaa, 0xa9, 0xc0, 0xfd, 0xfa}: "ChipsetSvcPei", efi.GUID{0xee, 0x20, 0x4d, 0xf7, 0xe7, 0x37, 0xfc, 0x48, 0x97, 0xf7, 0x9b, 0x10, 0x47, 0x74, 0x9c, 0x69}: "LogoDxe", efi.GUID{0xee, 0x25, 0xeb, 0x58, 0xcb, 0xfb, 0x9d, 0x41, 0xb9, 0xdd, 0x12, 0xc3, 0x8f, 0xff, 0xbf, 0x0d}: "WlanControllerPei", efi.GUID{0xee, 0x25, 0xeb, 0x78, 0x8b, 0xf7, 0x9d, 0x41, 0xb0, 0xdd, 0x12, 0xc3, 0x8f, 0xff, 0xbf, 0x1d}: "DeepPei", efi.GUID{0xee, 0x28, 0x93, 0xb2, 0xfc, 0x68, 0x66, 0x49, 0x9a, 0xce, 0xbe, 0x21, 0xfa, 0xdb, 0x73, 0x28}: "AsusVariable", efi.GUID{0xee, 0x2a, 0x86, 0xe7, 0x97, 0xa9, 0xf3, 0x48, 0x9c, 0x58, 0xb7, 0x9d, 0x34, 0x0d, 0x00, 0x3a}: "AcerLibMemBuffer", efi.GUID{0xee, 0x2c, 0x18, 0x9b, 0xd5, 0xae, 0x95, 0x4d, 0xb2, 0xa9, 0xa2, 0xcf, 0x6c, 0xdf, 0xea, 0xa8}: "OemAcpiPlatform", efi.GUID{0xee, 0x2e, 0x20, 0x71, 0x53, 0x5f, 0xd9, 0x40, 0xab, 0x3d, 0x9e, 0x0c, 0x26, 0xd9, 0x66, 0x57}: "AmiTseSetupEnterGuid", efi.GUID{0xee, 0x33, 0xcf, 0x3a, 0x92, 0xd8, 0xf4, 0x40, 0xa2, 0xfc, 0x38, 0x54, 0xd2, 0xe1, 0x32, 0x3d}: "EfiPeiCapsulePpiGuid", efi.GUID{0xee, 0x34, 0xf9, 0x52, 0x15, 0x7f, 0x23, 0x47, 0x90, 0xcf, 0x4e, 0x37, 0x12, 0x77, 0x18, 0xa5}: "TcgPeiPei", efi.GUID{0xee, 0x39, 0x98, 0x6a, 0x0e, 0x07, 0x5f, 0x4b, 0x8c, 0xcd, 0x87, 0xbb, 0x12, 0x34, 0x5f, 0x38}: "HddPasswordDxe", efi.GUID{0xee, 0x4f, 0x36, 0xe0, 0x40, 0x14, 0x41, 0x4a, 0xad, 0x3e, 0x50, 0xe0, 0xb1, 0x06, 0xa8, 0x3d}: "DellDaBfa", efi.GUID{0xee, 0x52, 0x66, 0x17, 0x20, 0x2b, 0xe8, 0x4c, 0xa6, 0x1b, 0x1c, 0x15, 0x27, 0x26, 0xfe, 0xc4}: "HeciLegacyDxe", efi.GUID{0xee, 0x57, 0x2e, 0x4d, 0x3f, 0x0e, 0xdd, 0x44, 0x93, 0xc4, 0xd3, 0xb5, 0x7e, 0x96, 0x94, 0x5d}: "CpuS3DataDxe", efi.GUID{0xee, 0x5b, 0xeb, 0xba, 0x33, 0x5b, 0x0a, 0x48, 0x8a, 0xb7, 0xb2, 0x9c, 0x85, 0xe7, 0xce, 0xab}: "FspGlobalDataInitPei", efi.GUID{0xee, 0x70, 0x53, 0xf4, 0x16, 0x1e, 0x7f, 0x41, 0xad, 0x8b, 0xd8, 0x86, 0xb4, 0xf0, 0x55, 0x47}: "BmcRfCertDxe", efi.GUID{0xee, 0x72, 0xed, 0x7f, 0x70, 0x01, 0x14, 0x48, 0x98, 0x78, 0xa8, 0xfb, 0x18, 0x64, 0xdf, 0xaf}: "SmmRelocateDxe", efi.GUID{0xee, 0x80, 0x10, 0x9c, 0x2e, 0xd0, 0x7f, 0x48, 0x94, 0x32, 0xf3, 0xbf, 0x08, 0x6e, 0xc1, 0x80}: "GenericMemoryTestDxe", efi.GUID{0xee, 0x80, 0xaa, 0x9f, 0xd1, 0x21, 0x31, 0x43, 0x93, 0xf5, 0xd6, 0x48, 0x56, 0x89, 0xc5, 0x3d}: "FingerPrintSwSmi", efi.GUID{0xee, 0x85, 0xa8, 0x86, 0x1e, 0xd7, 0xd6, 0x2e, 0x0f, 0xc1, 0x9d, 0x6c, 0xcc, 0x96, 0x77, 0xeb}: "FmpDxe", efi.GUID{0xee, 0x86, 0xed, 0x0d, 0x79, 0x6e, 0x64, 0x47, 0xaa, 0x83, 0x37, 0xa4, 0x72, 0xf4, 0x81, 0x23}: "ChkrecoveryFile", efi.GUID{0xee, 0x8f, 0xaa, 0x47, 0xd0, 0x48, 0xe4, 0x11, 0xa6, 0xd3, 0xb8, 0xe8, 0x56, 0x2c, 0xba, 0xfa}: "SpiLockDxe", efi.GUID{0xee, 0x97, 0x66, 0xd2, 0x83, 0x99, 0xb0, 0x48, 0x8f, 0x85, 0x7d, 0x3e, 0x66, 0x52, 0x8b, 0x07}: "LegacyBiosDxe", efi.GUID{0xee, 0x98, 0x75, 0x3e, 0x81, 0xfd, 0xc9, 0x46, 0x97, 0x98, 0xc2, 0xfd, 0x1a, 0x73, 0xe8, 0x39}: "AIMTSmm", efi.GUID{0xee, 0x9d, 0x6d, 0x4e, 0xb0, 0xca, 0x3b, 0x41, 0x9f, 0x6e, 0x59, 0x86, 0x9d, 0xd3, 0x64, 0xf6}: "CmosInterfaceCoreDxe", efi.GUID{0xee, 0xa2, 0x3f, 0x28, 0x2c, 0x53, 0x4d, 0x48, 0x93, 0x83, 0x9f, 0x93, 0xb3, 0x6f, 0x0b, 0x7e}: "EfiUpdateDataFileGuid", efi.GUID{0xee, 0xac, 0x23, 0xde, 0x55, 0xcf, 0xb6, 0x4f, 0xaa, 0x77, 0x98, 0x4a, 0xb5, 0x3d, 0xe8, 0x11}: "SaInitDxe", efi.GUID{0xee, 0xac, 0x23, 0xde, 0x55, 0xcf, 0xb6, 0x4f, 0xaa, 0x77, 0x98, 0x4a, 0xb5, 0x3d, 0xe8, 0x23}: "PchInitDxe", efi.GUID{0xee, 0xad, 0xe0, 0x4f, 0x6b, 0x60, 0x75, 0x43, 0x90, 0xb5, 0x65, 0x69, 0x8d, 0xfd, 0x0b, 0x9b}: "IntelUefiRaidDiskInfo", efi.GUID{0xee, 0xaf, 0x9f, 0x45, 0xcd, 0x3b, 0x4d, 0x43, 0x90, 0xc9, 0xa2, 0x83, 0xab, 0xae, 0x84, 0xd5}: "HspfTPMAcpiSmm", efi.GUID{0xee, 0xb0, 0x9f, 0xa1, 0xf4, 0x05, 0xd6, 0x4c, 0x8f, 0x28, 0x59, 0xb7, 0x82, 0xff, 0x95, 0xc6}: "PciExpress", efi.GUID{0xee, 0xb6, 0x4d, 0x53, 0xbd, 0xfe, 0x63, 0x4f, 0x9c, 0x1f, 0x84, 0x25, 0xca, 0x82, 0xc6, 0xe1}: "DellPsidWarnings", efi.GUID{0xee, 0xce, 0x3d, 0x7d, 0xce, 0xcb, 0xa7, 0x4e, 0x87, 0x09, 0x6e, 0x55, 0x2f, 0x1e, 0xdb, 0xde}: "FlaSStatusguid", efi.GUID{0xee, 0xd3, 0xcf, 0x9f, 0xc3, 0x38, 0xaf, 0x4a, 0x95, 0x12, 0xec, 0x41, 0x63, 0x71, 0xf6, 0x4a}: "DellDxeMain", efi.GUID{0xee, 0xdb, 0xe1, 0x89, 0xce, 0x54, 0x2e, 0x42, 0x9c, 0x98, 0x36, 0x2a, 0x3e, 0xfd, 0xf9, 0x2d}: "LemPostFlagPpi", efi.GUID{0xee, 0xe8, 0x64, 0x33, 0xb8, 0x91, 0x28, 0x44, 0x9f, 0xbc, 0x1e, 0x9c, 0x5d, 0xca, 0x39, 0x8d}: "DellMemorySlotInfo", efi.GUID{0xee, 0xe8, 0xac, 0x1d, 0x97, 0xcd, 0x1e, 0x49, 0x8a, 0x0c, 0x30, 0x5d, 0x64, 0x37, 0x32, 0x3c}: "AsusOnBoardDeviceDxe", efi.GUID{0xee, 0xe9, 0xe1, 0x76, 0xc7, 0x5f, 0x13, 0x46, 0xb9, 0x6f, 0xfa, 0x79, 0x77, 0x96, 0x57, 0x3a}: "DellPbaMgrSmm", efi.GUID{0xee, 0xea, 0x1c, 0x98, 0x1c, 0x93, 0x17, 0x4a, 0xb9, 0xc8, 0x66, 0xc7, 0xbc, 0xfd, 0x77, 0xe1}: "SecurityFormSet", efi.GUID{0xee, 0xfa, 0xc8, 0x39, 0xee, 0xfb, 0xa3, 0x41, 0x92, 0x82, 0x12, 0x3f, 0x18, 0xc4, 0x8c, 0xd9}: "BroadwaterMemoryInitPei", efi.GUID{0xef, 0x04, 0x20, 0x6c, 0x0e, 0x4e, 0xe4, 0x4b, 0xb1, 0x4c, 0x34, 0x0e, 0xb4, 0xaa, 0x58, 0x91}: "StatusCodeHandlerRuntimeDxe", efi.GUID{0xef, 0x07, 0x80, 0x76, 0x07, 0xe6, 0x17, 0x44, 0x8f, 0x5d, 0xbc, 0xfe, 0x16, 0xda, 0xe3, 0x36}: "SmbusConfigGuid", efi.GUID{0xef, 0x13, 0xa9, 0x57, 0xd8, 0xdb, 0xcc, 0x47, 0x89, 0xbf, 0x7d, 0x86, 0xde, 0x82, 0x2f, 0xa6}: "DellTcg2ConfigInfoTpm20", efi.GUID{0xef, 0x14, 0xd1, 0xd9, 0x0b, 0xf4, 0x48, 0x4d, 0xaa, 0xa0, 0xa3, 0xdc, 0x99, 0xc9, 0xf5, 0xbd}: "DebugAgentPei", efi.GUID{0xef, 0x1c, 0x4b, 0x29, 0xeb, 0x9b, 0xd5, 0x42, 0x99, 0x71, 0x0c, 0x89, 0x63, 0xcd, 0xaf, 0x02}: "SmLogo", efi.GUID{0xef, 0x20, 0xd9, 0x4a, 0x6f, 0x4d, 0x15, 0x49, 0x98, 0x2a, 0xdc, 0x16, 0x67, 0x71, 0x31, 0xd5}: "EfiPeiPlatformTypeCrescentCityPpi", efi.GUID{0xef, 0x21, 0xbb, 0x89, 0x1d, 0x99, 0xa3, 0x4e, 0xbe, 0x7a, 0x1c, 0xc7, 0x85, 0x33, 0xb1, 0x7f}: "PlutonSecurityProcessor", efi.GUID{0xef, 0x25, 0xb2, 0x28, 0xb1, 0xe6, 0xc0, 0x4d, 0x8d, 0x4d, 0x49, 0xef, 0xc8, 0x57, 0xcc, 0xdf}: "FpgaSocketBbsGbe", efi.GUID{0xef, 0x25, 0xd1, 0x9a, 0x2e, 0xa6, 0x76, 0x4b, 0x86, 0xce, 0x18, 0x25, 0x28, 0x61, 0x26, 0x6e}: "AsusWifiMtk", efi.GUID{0xef, 0x26, 0x5c, 0xaf, 0x97, 0xcc, 0x80, 0x4d, 0xa2, 0xbf, 0x3d, 0x0c, 0xd5, 0xdf, 0xc8, 0x6f}: "ThunderboltPei", efi.GUID{0xef, 0x29, 0x29, 0xe1, 0x8c, 0xf0, 0x26, 0x4e, 0x82, 0x90, 0x28, 0x17, 0x40, 0xd8, 0x74, 0xde}: "DisableChassisIntrusion", efi.GUID{0xef, 0x2c, 0x0c, 0x89, 0xc8, 0x43, 0x09, 0x42, 0xa7, 0x8d, 0xae, 0x14, 0xaa, 0x17, 0x98, 0xb4}: "AmiTcgPlatformPpiAfterMem", efi.GUID{0xef, 0x32, 0xb3, 0x9a, 0xd9, 0x81, 0xd1, 0x43, 0x86, 0x7a, 0x03, 0xdd, 0x57, 0x4e, 0x85, 0x66}: "DellBbsmanagerDxe", efi.GUID{0xef, 0x35, 0xce, 0x7a, 0x60, 0xc9, 0x65, 0x44, 0x91, 0xba, 0xfc, 0x52, 0x8b, 0x81, 0x82, 0xcb}: "DellMbistRecoveryStatusCodePei", efi.GUID{0xef, 0x37, 0xb7, 0x1b, 0x7a, 0x42, 0x44, 0x41, 0x8b, 0x3b, 0xb7, 0x6e, 0xf3, 0x85, 0x15, 0xe6}: "SdMmcPciHcPei", efi.GUID{0xef, 0x3a, 0x4b, 0xa7, 0x02, 0x25, 0xc5, 0x40, 0x83, 0xa9, 0x35, 0x24, 0x77, 0x62, 0x73, 0xea}: "SioGpioControlSmm", efi.GUID{0xef, 0x46, 0x93, 0x66, 0xad, 0xfd, 0xeb, 0x4a, 0x08, 0xa6, 0x21, 0x46, 0x2d, 0x3f, 0xef, 0x7d}: "PerformancePkgTokenSpaceGuid", efi.GUID{0xef, 0x47, 0x64, 0x2d, 0xc9, 0x3b, 0xa0, 0x41, 0xac, 0x19, 0x4d, 0x51, 0xd0, 0x1b, 0x4c, 0xe6}: "AmiDeviceNameDevicePath", efi.GUID{0xef, 0x4d, 0xad, 0x8e, 0xe8, 0x45, 0x6d, 0x4f, 0x96, 0xab, 0xe5, 0xbc, 0x99, 0x1d, 0x2f, 0x69}: "BatteryInfoSmm", efi.GUID{0xef, 0x52, 0x1f, 0x40, 0xae, 0x55, 0x8a, 0x48, 0x94, 0x24, 0xfe, 0xf5, 0x3b, 0xeb, 0x11, 0x22}: "SmmPowerButton", efi.GUID{0xef, 0x53, 0x77, 0x3f, 0x6f, 0xd3, 0xcc, 0x45, 0x8a, 0x1a, 0x2e, 0xaa, 0xff, 0x10, 0x38, 0xb6}: "PciPlatform", efi.GUID{0xef, 0x53, 0x77, 0x3f, 0x6f, 0xd3, 0xcc, 0x45, 0x8a, 0x1a, 0x2e, 0xaa, 0xff, 0x10, 0x38, 0xb7}: "BootMediaInfo", efi.GUID{0xef, 0x56, 0x0a, 0x47, 0x23, 0xdc, 0xc5, 0x47, 0x9d, 0x79, 0x88, 0x8e, 0x75, 0x5c, 0x87, 0x5f}: "HpLidSwitchingDxe", efi.GUID{0xef, 0x62, 0x73, 0x61, 0xff, 0xca, 0xd4, 0x47, 0xa1, 0x31, 0xe9, 0x5e, 0x4a, 0x34, 0x57, 0x51}: "AmdUsb4Pei", efi.GUID{0xef, 0x64, 0x07, 0xb8, 0x70, 0x4e, 0x9e, 0x41, 0x9f, 0xf7, 0xa9, 0x89, 0x10, 0x50, 0x4b, 0x90}: "PS8625PeiPkg", efi.GUID{0xef, 0x65, 0x43, 0x27, 0x93, 0x08, 0x0c, 0x48, 0x91, 0x60, 0x47, 0x2a, 0x26, 0xd2, 0xdc, 0x0f}: "FjGabiGpioAbstraction", efi.GUID{0xef, 0x66, 0x17, 0xc0, 0x09, 0xc8, 0xd0, 0x4b, 0x92, 0xd0, 0x5e, 0x55, 0xa6, 0xf3, 0xe6, 0xf5}: "VirtualSerial", efi.GUID{0xef, 0x6a, 0x4a, 0xa9, 0x9b, 0xd6, 0x10, 0x40, 0xba, 0x24, 0xf9, 0x1e, 0x1f, 0xe6, 0x2a, 0xda}: "LenovoSystemSecureBootDxe", efi.GUID{0xef, 0x6a, 0xde, 0x79, 0x2d, 0xbe, 0xb2, 0x4b, 0xac, 0xbf, 0x0a, 0x67, 0xe2, 0x89, 0xdb, 0xaf}: "AmdCcxVhSmm", efi.GUID{0xef, 0x6f, 0xcd, 0x56, 0x38, 0x90, 0xda, 0x49, 0x82, 0x75, 0x1b, 0x2f, 0x5b, 0x97, 0x91, 0xa9}: "EzFmpUpdOpt", efi.GUID{0xef, 0x74, 0x96, 0x20, 0x60, 0x60, 0xe4, 0x43, 0xbe, 0x87, 0xe7, 0x42, 0xe1, 0x6b, 0xeb, 0x00}: "NvmeControllerPei", efi.GUID{0xef, 0x75, 0x81, 0xee, 0x60, 0x4c, 0xaf, 0x82, 0xf5, 0xe2, 0x8a, 0x9e, 0xf1, 0xfc, 0x0a, 0x9a}: "AmdRasSspSmm", efi.GUID{0xef, 0x75, 0xc4, 0x64, 0x4b, 0x34, 0x2c, 0x49, 0x93, 0xad, 0xab, 0x9e, 0xb4, 0x39, 0x50, 0x04}: "EfiCompatibleMemoryTestedProtocol", efi.GUID{0xef, 0x76, 0x59, 0xf0, 0xf1, 0x83, 0x3d, 0x4f, 0x86, 0x19, 0xf7, 0x59, 0x5d, 0x41, 0xe5, 0x38}: "EfiPrint2ProtocolGuid", efi.GUID{0xef, 0x78, 0xc0, 0x42, 0xa8, 0x14, 0x30, 0x4e, 0x93, 0x29, 0x6f, 0x12, 0xd7, 0x96, 0xe5, 0x4a}: "LibWchar", efi.GUID{0xef, 0x7e, 0xc4, 0xb9, 0xd2, 0xd7, 0xc7, 0x4c, 0x9b, 0xd2, 0x88, 0xa7, 0xfe, 0xd4, 0x93, 0x8c}: "FjGabiLogoHandlerSmm", efi.GUID{0xef, 0x88, 0x80, 0xe6, 0xa4, 0xd1, 0x36, 0x43, 0xc1, 0xdb, 0x4d, 0x3a, 0x20, 0x47, 0x30, 0xa6}: "LcdGraphicsDxe", efi.GUID{0xef, 0x8a, 0x96, 0x39, 0xb2, 0x54, 0xbf, 0x42, 0x8e, 0x3f, 0xdf, 0x0b, 0x70, 0xa4, 0x93, 0x56}: "OemGigaLanDriver", efi.GUID{0xef, 0x96, 0x56, 0xe1, 0x71, 0x06, 0x22, 0x48, 0xaf, 0x07, 0xff, 0xd9, 0x9a, 0x47, 0x83, 0xcc}: "SmuV12Pei", efi.GUID{0xef, 0x96, 0x92, 0x8f, 0x80, 0x28, 0x59, 0x46, 0xb8, 0x57, 0x91, 0x5a, 0x89, 0x01, 0xbd, 0xc8}: "Ip4Config", efi.GUID{0xef, 0x9b, 0x0e, 0x24, 0x4b, 0xb6, 0x60, 0x47, 0xa0, 0x5f, 0x50, 0x02, 0x75, 0x64, 0xef, 0x1d}: "VariableBackupRestoreSmm", efi.GUID{0xef, 0x9d, 0x1e, 0x80, 0xbb, 0xdd, 0xa3, 0x4c, 0x96, 0x98, 0xc9, 0x15, 0x8e, 0xb8, 0x6a, 0xea}: "AmiPeriodicSmiControlProtocolGuid", efi.GUID{0xef, 0xa1, 0xa8, 0x4c, 0xda, 0xd4, 0x12, 0x42, 0x9f, 0x4d, 0x41, 0x63, 0x8e, 0x68, 0xb6, 0xc1}: "MemoryStorageChipsetDxe", efi.GUID{0xef, 0xa5, 0x4d, 0x11, 0xf1, 0x2c, 0x12, 0x4e, 0x9b, 0xbb, 0xc4, 0x70, 0xb5, 0x52, 0x05, 0xd9}: "EfiAdapterInfoSanMacAddressGuid", efi.GUID{0xef, 0xac, 0x16, 0xe5, 0x3c, 0xfa, 0x68, 0x40, 0x8c, 0xe4, 0x88, 0x8d, 0x62, 0xb0, 0xe4, 0x97}: "AmiEfiCrbInfoProtocolGuid", efi.GUID{0xef, 0xb2, 0xcf, 0xdc, 0xe6, 0xaa, 0xd0, 0x48, 0x8d, 0xf2, 0xdc, 0x4d, 0x76, 0x4a, 0x5a, 0x92}: "RTKLanMmio", efi.GUID{0xef, 0xb6, 0xa0, 0x31, 0x00, 0xa4, 0x19, 0x44, 0x83, 0x27, 0x0f, 0xb1, 0x34, 0xaa, 0x59, 0xe7}: "Mxm30Nbci", efi.GUID{0xef, 0xb6, 0xa1, 0xba, 0xb3, 0xf6, 0xdf, 0x46, 0xbd, 0xe6, 0x40, 0xcd, 0x66, 0x6f, 0x04, 0xec}: "FchPromontoryPlusSsdt", efi.GUID{0xef, 0xb7, 0xc0, 0xa0, 0xff, 0x99, 0x7f, 0x41, 0x8b, 0x9f, 0x5a, 0xd4, 0x70, 0x1d, 0x90, 0xd6}: "Tpm12DeviceLibAtmelI2c", efi.GUID{0xef, 0xb8, 0x39, 0x8a, 0x80, 0x66, 0x7f, 0x4a, 0x9a, 0xc4, 0x18, 0x36, 0x52, 0x14, 0xa3, 0xf0}: "AmdSocSp3r3CglDxe", efi.GUID{0xef, 0xd9, 0x3b, 0xc9, 0x79, 0xfb, 0xca, 0x41, 0xaf, 0xa2, 0xc9, 0xd9, 0x09, 0x73, 0x0c, 0x91}: "FjAcpiPlatformDxe", efi.GUID{0xef, 0xdd, 0x8a, 0xfa, 0xf2, 0x38, 0xa9, 0x43, 0xbf, 0x1a, 0x29, 0x36, 0xef, 0xc5, 0xc0, 0xcc}: "ResiliencyDxe", efi.GUID{0xef, 0xed, 0x61, 0x5b, 0xc8, 0x52, 0xfd, 0x41, 0xaa, 0xe7, 0x09, 0x38, 0xdd, 0xf0, 0xbb, 0x5e}: "DellRCSetupDxe", efi.GUID{0xef, 0xf5, 0x46, 0x2f, 0xb9, 0xf9, 0x45, 0x4e, 0x9a, 0xcc, 0xb1, 0x4c, 0x2a, 0xe0, 0x72, 0xba}: "SystemShutdownEvent", efi.GUID{0xef, 0xf5, 0x63, 0xe7, 0x1e, 0x30, 0xee, 0x6d, 0xbb, 0xb7, 0xa6, 0xec, 0x55, 0x3d, 0xcf, 0x7e}: "HpModernStandbySetupConfigDxe", efi.GUID{0xef, 0xf7, 0x36, 0x9d, 0x78, 0x60, 0x19, 0x44, 0x8c, 0x46, 0x2b, 0xbd, 0xb0, 0xe0, 0xc7, 0xb3}: "AmiBoardSioInitProtocolGuid", efi.GUID{0xf0, 0x0b, 0x2e, 0xf8, 0xf7, 0x95, 0xdb, 0x41, 0x92, 0x99, 0x2d, 0x05, 0x45, 0x46, 0xb3, 0xd0}: "IntelGopDriverRkl", efi.GUID{0xf0, 0x0c, 0x90, 0x6e, 0x96, 0xd5, 0xe1, 0x43, 0xb9, 0xf9, 0xd9, 0xe0, 0x58, 0x4c, 0xb2, 0x07}: "DellFnUsbEmulationSmmProtocol", efi.GUID{0xf0, 0x1b, 0x87, 0x38, 0x4a, 0xc6, 0x96, 0x48, 0xb8, 0xe4, 0x62, 0xd4, 0x85, 0x0c, 0x7e, 0x68}: "DellOemSxSmm", efi.GUID{0xf0, 0x1b, 0x87, 0x38, 0x4a, 0xc6, 0x96, 0x48, 0xb8, 0xe4, 0x62, 0xd7, 0x75, 0x0c, 0x7d, 0x68}: "DellAcLossSmm", efi.GUID{0xf0, 0x1e, 0x9c, 0x19, 0x00, 0x64, 0xc5, 0x41, 0xb0, 0xa4, 0xff, 0xbf, 0x21, 0x9d, 0xcb, 0xae}: "QuarkPlatformTokenSpaceGuid", efi.GUID{0xf0, 0x1f, 0x74, 0xab, 0x9f, 0x0b, 0x6b, 0x4e, 0xaa, 0xfa, 0x79, 0x40, 0x22, 0x41, 0xb8, 0x14}: "PreserveCACert", efi.GUID{0xf0, 0x23, 0x59, 0x2a, 0xfb, 0x06, 0x23, 0x4a, 0x9d, 0x06, 0xf9, 0x76, 0xc7, 0xb3, 0xc3, 0x12}: "PlatformStatusCodeHandlerDxe2", efi.GUID{0xf0, 0x2c, 0x3e, 0xc4, 0xdc, 0xbe, 0x1f, 0x46, 0xaa, 0xcd, 0xa4, 0xfa, 0x46, 0x6e, 0xa3, 0x82}: "LenovoTpmConfigPei", efi.GUID{0xf0, 0x2c, 0xcb, 0x18, 0xcd, 0x40, 0xe5, 0x11, 0xb9, 0x70, 0x08, 0x00, 0x20, 0x0c, 0x9a, 0x66}: "DellDptfChipsetDxe", efi.GUID{0xf0, 0x2e, 0xda, 0x9c, 0xca, 0xeb, 0x9c, 0x49, 0xa1, 0x93, 0x95, 0xb4, 0x68, 0x62, 0x55, 0x28}: "EventLogDxe", efi.GUID{0xf0, 0x3b, 0xd1, 0x69, 0x91, 0xaf, 0x96, 0x4d, 0xaa, 0x9f, 0x21, 0x84, 0xc5, 0xce, 0x3b, 0xc0}: "PlatformModuleTokenSpaceGuid", efi.GUID{0xf0, 0x3d, 0x5e, 0xca, 0x0a, 0x94, 0xf1, 0x48, 0x8c, 0x14, 0xdb, 0x2f, 0xb5, 0x99, 0x8b, 0x36}: "TdtWrapper", efi.GUID{0xf0, 0x3e, 0xee, 0xc3, 0xe6, 0x63, 0x59, 0x4f, 0xa4, 0x37, 0xaf, 0xa6, 0x3c, 0x46, 0xc8, 0x35}: "SmmAslSmi", efi.GUID{0xf0, 0x45, 0x51, 0xea, 0x09, 0x8f, 0xe4, 0x11, 0xba, 0x47, 0x3c, 0x97, 0x0e, 0x61, 0xed, 0x65}: "OemNvsDxe", efi.GUID{0xf0, 0x46, 0x3e, 0xab, 0x4b, 0x84, 0x6e, 0x45, 0x89, 0x11, 0x5d, 0x45, 0x46, 0x17, 0x24, 0x10}: "EventCtrl", efi.GUID{0xf0, 0x4c, 0xbb, 0x7c, 0xfe, 0x21, 0x99, 0x4c, 0x84, 0x8d, 0x77, 0xe9, 0x31, 0x67, 0x12, 0x8a}: "DellSfpSmm", efi.GUID{0xf0, 0x54, 0xc9, 0x7a, 0xbb, 0x4f, 0x9c, 0x4d, 0xa2, 0xbf, 0xe8, 0xa5, 0x92, 0x2e, 0x6f, 0x30}: "AmdNbioPei", efi.GUID{0xf0, 0x56, 0x85, 0xdf, 0x61, 0x3a, 0xde, 0x11, 0x8a, 0x39, 0x08, 0x00, 0x20, 0x0c, 0x9a, 0x66}: "PerfTunePei", efi.GUID{0xf0, 0x56, 0x8d, 0x65, 0x64, 0x43, 0x21, 0x47, 0xb7, 0x0e, 0x73, 0x2d, 0xdc, 0x8a, 0x27, 0x71}: "TrustedDeviceSetupApp", efi.GUID{0xf0, 0x57, 0x4d, 0x6b, 0xb0, 0x6a, 0x7d, 0x4a, 0xba, 0xb2, 0x23, 0x42, 0x5e, 0xf0, 0x55, 0xe5}: "ICE30plusDXE", efi.GUID{0xf0, 0x59, 0x75, 0x44, 0x2e, 0xd0, 0xf1, 0x4c, 0x99, 0xbc, 0xca, 0x11, 0x65, 0x40, 0x54, 0xc2}: "StdLibTokenSpaceGuid", efi.GUID{0xf0, 0x62, 0xca, 0x35, 0x4c, 0x99, 0xec, 0x40, 0x8a, 0x94, 0xac, 0xf4, 0x12, 0x81, 0x10, 0x68}: "FdmInitPei", efi.GUID{0xf0, 0x67, 0x72, 0x4d, 0x8c, 0xf4, 0x50, 0x40, 0xae, 0x55, 0x8f, 0xe1, 0x70, 0x80, 0x96, 0xa0}: "ASRockNetFtpBin", efi.GUID{0xf0, 0x68, 0x7e, 0xa6, 0x3d, 0xa7, 0xd0, 0x40, 0x98, 0xf5, 0x12, 0x1d, 0xef, 0xb5, 0xc1, 0x2d}: "HstiIhvProviderDxe", efi.GUID{0xf0, 0x6a, 0xd4, 0x02, 0xa0, 0x78, 0xfd, 0x43, 0xa9, 0xd6, 0x25, 0xb0, 0x94, 0xe0, 0xba, 0x93}: "LEN0130Driver", efi.GUID{0xf0, 0x77, 0x41, 0x67, 0x0f, 0x73, 0xb9, 0x4e, 0xa2, 0x69, 0x9c, 0x5f, 0x28, 0x52, 0x30, 0xd8}: "DellUsbBusDxe", efi.GUID{0xf0, 0x7b, 0xd2, 0x51, 0x14, 0x64, 0x69, 0x4c, 0xae, 0x20, 0xbf, 0x01, 0x7c, 0x32, 0x65, 0x05}: "WmiSetupUnderOsSmm", efi.GUID{0xf0, 0x7e, 0x19, 0x62, 0x7e, 0x7b, 0xe2, 0x11, 0xb9, 0x2a, 0x08, 0x00, 0x20, 0x0c, 0x9a, 0x66}: "BootOptionsPkgList", efi.GUID{0xf0, 0x85, 0x7b, 0x34, 0x17, 0xe9, 0x74, 0x4e, 0x85, 0xba, 0xf4, 0x94, 0x07, 0x1e, 0xee, 0x52}: "FchSHSataD3ColdSmm", efi.GUID{0xf0, 0x90, 0xa1, 0xee, 0x2f, 0x96, 0xe0, 0x11, 0xaa, 0x80, 0x08, 0x00, 0x20, 0x0c, 0x9a, 0x66}: "SctMilestoneTaskEntry", efi.GUID{0xf0, 0x91, 0x4a, 0xd5, 0x47, 0x45, 0x80, 0x43, 0x88, 0x90, 0x17, 0xc1, 0x99, 0x37, 0xf8, 0x53}: "DellSecureBootSmm", efi.GUID{0xf0, 0x92, 0xe6, 0x1c, 0x17, 0x33, 0x74, 0x45, 0x8b, 0x57, 0x48, 0x00, 0xed, 0x09, 0x1f, 0x40}: "DellDxeComputrace", efi.GUID{0xf0, 0xa4, 0x8a, 0x01, 0x3e, 0x77, 0xf3, 0x46, 0xb6, 0x2d, 0x2c, 0x70, 0xea, 0x32, 0xe0, 0xd0}: "EfiSystemPartCapsuleStorage", efi.GUID{0xf0, 0xa6, 0x93, 0x10, 0xed, 0x37, 0xba, 0x49, 0x9d, 0xcc, 0x4f, 0x69, 0x99, 0x80, 0x73, 0x15}: "MmioSerialUart2", efi.GUID{0xf0, 0xac, 0x9e, 0xe8, 0xf8, 0x96, 0xcd, 0x4c, 0x89, 0xe9, 0x96, 0x8c, 0xd3, 0x9f, 0x23, 0x17}: "BrightnessControlDxe", efi.GUID{0xf0, 0xb0, 0x25, 0x25, 0xc2, 0x80, 0xf7, 0x4a, 0xbc, 0x68, 0x3b, 0xe4, 0xbb, 0x42, 0xc1, 0x1e}: "PermanentlyDisabled", efi.GUID{0xf0, 0xb3, 0xf1, 0xa1, 0x0c, 0xa6, 0x62, 0x44, 0x80, 0x1f, 0xbe, 0xc9, 0x9d, 0xf5, 0x18, 0x21}: "HpOemSlic", efi.GUID{0xf0, 0xbe, 0x9c, 0x4d, 0xa0, 0x15, 0x0c, 0x4d, 0x83, 0xdb, 0x52, 0x13, 0xe7, 0x10, 0xc2, 0x3f}: "Tcg2ConfigDxe", efi.GUID{0xf0, 0xcc, 0x70, 0x34, 0x54, 0x60, 0xdd, 0x11, 0xad, 0x8b, 0x08, 0x00, 0x20, 0x0c, 0x9a, 0x66}: "EzFlash", efi.GUID{0xf0, 0xd3, 0xaf, 0xe0, 0xe8, 0xc7, 0x9c, 0x47, 0x9e, 0x4c, 0x45, 0x79, 0xdc, 0xd8, 0x50, 0xf8}: "IntegratedVideoOptionSmm", efi.GUID{0xf0, 0xd3, 0xaf, 0xe0, 0xe8, 0xc7, 0x9c, 0x47, 0x9e, 0x4c, 0x45, 0x79, 0xdc, 0xd8, 0x50, 0xf9}: "IntegratedVideoOptionDxe", efi.GUID{0xf0, 0xd6, 0xe3, 0x3a, 0x83, 0x64, 0xd6, 0x45, 0x93, 0x95, 0x30, 0x3c, 0x97, 0x89, 0x20, 0x8d}: "TrEEConfigPei", efi.GUID{0xf0, 0xdb, 0x6b, 0xf1, 0x61, 0x3a, 0xde, 0x11, 0x8a, 0x39, 0x08, 0x00, 0x20, 0x0c, 0x9a, 0x66}: "PerfTuneDxe", efi.GUID{0xf0, 0xe0, 0xe6, 0xd3, 0x06, 0x72, 0xc5, 0x40, 0xb5, 0x8a, 0x05, 0xfc, 0xad, 0x08, 0xdb, 0xc8}: "OemDxe", efi.GUID{0xf0, 0xe3, 0x07, 0x55, 0x84, 0x9c, 0xdc, 0x47, 0x8c, 0xea, 0xc2, 0x9a, 0x01, 0xb7, 0xcd, 0x5d}: "SioBdsPlugin", efi.GUID{0xf0, 0xe7, 0x3d, 0x1d, 0x07, 0x08, 0x4f, 0x42, 0xaa, 0x69, 0x11, 0xa5, 0x4e, 0x19, 0xa4, 0x6f}: "EfiExtScsiPassThruProtocolGuid", efi.GUID{0xf0, 0xe7, 0x6f, 0x78, 0xb0, 0x88, 0xf0, 0x4f, 0x82, 0x2d, 0x55, 0x9d, 0x04, 0xd8, 0x91, 0x56}: "PcieResizingDxe", efi.GUID{0xf0, 0xef, 0x4b, 0xd8, 0x9a, 0x15, 0x60, 0x4b, 0x9a, 0xb9, 0xac, 0x5c, 0x47, 0x4b, 0xd3, 0xb1}: "AmiTseNVRAMUpdateGuid", efi.GUID{0xf0, 0xf0, 0x11, 0x95, 0x3c, 0x83, 0xcd, 0x4d, 0xa9, 0xe5, 0x3c, 0xbe, 0x23, 0x93, 0xed, 0xd5}: "POESS4CallbackBin", efi.GUID{0xf0, 0xf6, 0x95, 0x68, 0x79, 0x88, 0xb8, 0x45, 0xa9, 0xd9, 0x96, 0x39, 0xe5, 0x32, 0x31, 0x9e}: "UhciPeiUsb", efi.GUID{0xf0, 0xf7, 0x4e, 0x4f, 0x29, 0xaa, 0xe9, 0x4c, 0xba, 0x41, 0x64, 0x3e, 0x01, 0x23, 0xa9, 0x9f}: "HiiResourceSamleFormSetGuid", efi.GUID{0xf0, 0xf7, 0x62, 0xfb, 0x33, 0x54, 0xe4, 0x11, 0xb8, 0x10, 0x40, 0x2c, 0xf4, 0x1d, 0x8a, 0x90}: "SecureEraseDxe", efi.GUID{0xf1, 0x04, 0xf7, 0xed, 0x75, 0x26, 0x19, 0x40, 0x92, 0x58, 0x6f, 0x0f, 0x6c, 0x67, 0x7d, 0x95}: "DellWdtFeatureSmm", efi.GUID{0xf1, 0x14, 0x11, 0x61, 0x7b, 0xa3, 0x68, 0x44, 0xa4, 0x36, 0x5b, 0xdd, 0xa1, 0x6a, 0xa2, 0x40}: "EdkiiHttpCallbackProtocol", efi.GUID{0xf1, 0x17, 0x72, 0xe7, 0x8d, 0x8b, 0x73, 0x49, 0x94, 0xbd, 0xc9, 0x75, 0x79, 0x4b, 0xc0, 0x10}: "MarvellUndiDriver", efi.GUID{0xf1, 0x1d, 0x27, 0xa2, 0xbb, 0xbc, 0x1d, 0x4f, 0x98, 0xa9, 0x06, 0xbc, 0x17, 0x2f, 0x07, 0x1a}: "EfiExtendedSalFvBlockServicesProtocolGuid", efi.GUID{0xf1, 0x2c, 0xf0, 0x1e, 0x69, 0xbf, 0xc3, 0x49, 0x8f, 0xdc, 0x5b, 0xb5, 0x5d, 0x22, 0x4c, 0xfa}: "DellPowerButtonConfig", efi.GUID{0xf1, 0x32, 0x8a, 0x36, 0xbb, 0x90, 0x37, 0x4c, 0xbe, 0x0a, 0x1f, 0xfd, 0x75, 0x4a, 0xb4, 0x2e}: "TilePei", efi.GUID{0xf1, 0x3b, 0x06, 0xd5, 0xe6, 0x7a, 0xa9, 0x46, 0xb8, 0xd9, 0x8e, 0x9f, 0x66, 0xe5, 0xdc, 0x06}: "PlatformSpiFvbSmm", efi.GUID{0xf1, 0x3c, 0x22, 0xa4, 0x27, 0x6b, 0x94, 0x49, 0x8f, 0xcb, 0xa3, 0xa2, 0x79, 0xc0, 0x4e, 0x81}: "EfiGenericElogSmmProtocolInstallled", efi.GUID{0xf1, 0x3e, 0x07, 0x21, 0x66, 0xff, 0xff, 0x41, 0x9b, 0xf4, 0xa3, 0xe9, 0x36, 0xdb, 0x19, 0x01}: "FchHuashanPei", efi.GUID{0xf1, 0x44, 0x89, 0x02, 0x3f, 0x31, 0x89, 0x46, 0x8c, 0xcd, 0xed, 0xbe, 0x92, 0x38, 0x0c, 0x7e}: "ClientCorePeiPreMem", efi.GUID{0xf1, 0x48, 0x2f, 0x49, 0xee, 0xd0, 0xe9, 0x41, 0xbb, 0xe8, 0x92, 0xc9, 0x8a, 0x3c, 0xb7, 0xf1}: "FchTacomaSsdt", efi.GUID{0xf1, 0x4d, 0x23, 0x0b, 0x80, 0x00, 0x2b, 0x41, 0x87, 0x16, 0x8a, 0x81, 0xa3, 0xa1, 0x1f, 0xaa}: "DellEdiagsDxe", efi.GUID{0xf1, 0x63, 0x6f, 0x1a, 0xad, 0xae, 0xfc, 0x45, 0x88, 0x2c, 0x03, 0x88, 0x50, 0x04, 0xa6, 0xd6}: "DellAdvSysMgmtSmm", efi.GUID{0xf1, 0x6d, 0xe2, 0x10, 0x75, 0x87, 0xe1, 0x4e, 0xb5, 0x0a, 0x3a, 0xe8, 0x28, 0x93, 0x70, 0x3a}: "SeCfTPMPpiGuid", efi.GUID{0xf1, 0x70, 0xb0, 0x8b, 0xf3, 0xa8, 0x1d, 0x47, 0x86, 0x16, 0x77, 0x4b, 0xa3, 0xf4, 0x30, 0xa0}: "SmmIpmiTransportProtocol", efi.GUID{0xf1, 0x84, 0x65, 0x9e, 0x33, 0xfb, 0xd0, 0x4b, 0x92, 0x2d, 0x47, 0xe5, 0xb7, 0xf5, 0xdb, 0xf1}: "GMUXDriver", efi.GUID{0xf1, 0x85, 0x45, 0xfa, 0x3b, 0x30, 0x25, 0x47, 0x80, 0xe4, 0xbb, 0x42, 0xbb, 0xd0, 0x24, 0x9c}: "SupportURL", efi.GUID{0xf1, 0x85, 0x84, 0x07, 0x1f, 0x0c, 0x1b, 0x4b, 0xaf, 0xb3, 0x4a, 0x09, 0xc0, 0xef, 0x87, 0xa1}: "It8728SmmFeatures", efi.GUID{0xf1, 0x8e, 0xff, 0x63, 0xa2, 0x20, 0xa7, 0x41, 0xae, 0x88, 0x1e, 0x26, 0x2e, 0x8a, 0xf3, 0x3f}: "AmdNbioIOMMURMBPei", efi.GUID{0xf1, 0x96, 0x11, 0x56, 0x34, 0x12, 0x45, 0x41, 0x88, 0x93, 0x88, 0x93, 0xa1, 0xf9, 0x7d, 0x97}: "FjOnScreenKeyboardDxe", efi.GUID{0xf1, 0xa0, 0x33, 0x06, 0xfe, 0x78, 0x39, 0x41, 0xb8, 0x78, 0x00, 0x45, 0xe8, 0x1c, 0xb8, 0xab}: "EfiVolatileMemModeVariable", efi.GUID{0xf1, 0xa2, 0xc7, 0x5a, 0xf8, 0x52, 0xc2, 0x4b, 0x84, 0x59, 0xae, 0xa6, 0x47, 0x53, 0xa0, 0x54}: "FjFirstPowerOnMessageBin", efi.GUID{0xf1, 0xaf, 0x37, 0x9d, 0xae, 0xa6, 0x7f, 0x44, 0x91, 0x5d, 0xdf, 0x2c, 0x44, 0x66, 0x36, 0x4b}: "MTKWIFI", efi.GUID{0xf1, 0xaf, 0x3f, 0x56, 0x71, 0xec, 0xb8, 0x4e, 0x9e, 0x6e, 0x60, 0xbf, 0x14, 0x47, 0xe2, 0x85}: "FlashUcAcmSmm", efi.GUID{0xf1, 0xb0, 0xf5, 0x04, 0xe2, 0x73, 0xc4, 0x4c, 0x97, 0x41, 0x66, 0x2d, 0xbc, 0x3a, 0xb7, 0x8b}: "ErrorCodeHandlerSmm", efi.GUID{0xf1, 0xb2, 0x09, 0x25, 0x22, 0xa0, 0xca, 0x4c, 0xaf, 0x70, 0xf9, 0xd3, 0x21, 0xfb, 0x66, 0x49}: "EdkiiDeviceIdentifierTypePci", efi.GUID{0xf1, 0xb5, 0xed, 0x52, 0x32, 0x96, 0xe5, 0x4c, 0x8b, 0x82, 0x30, 0x99, 0x20, 0x0e, 0x66, 0xda}: "SoftSkuSmm", efi.GUID{0xf1, 0xce, 0xe7, 0xa9, 0x82, 0x56, 0xcc, 0x42, 0xb1, 0x23, 0x99, 0x30, 0x97, 0x3f, 0x4a, 0x9f}: "EfiMpInitLibUpDepProtocol", efi.GUID{0xf1, 0xe3, 0x2d, 0x03, 0x62, 0x13, 0xa5, 0x45, 0xa5, 0xc2, 0x44, 0xa0, 0xe6, 0x3c, 0xc2, 0x63}: "FjGabiSystemTableSmm", efi.GUID{0xf1, 0xe4, 0x3a, 0xac, 0x50, 0x60, 0x09, 0x46, 0xb7, 0x01, 0x6a, 0x90, 0xb0, 0x97, 0x2e, 0x74}: "AmdNbioAlibDxe", efi.GUID{0xf1, 0xe5, 0x13, 0x2e, 0x6d, 0xb8, 0xf8, 0x4c, 0x99, 0x0f, 0x24, 0x3b, 0x6b, 0x9b, 0x8c, 0x61}: "NvmeRaidDxe", efi.GUID{0xf1, 0xe7, 0x9d, 0x30, 0x5e, 0x7f, 0xce, 0x4a, 0xb4, 0x9c, 0x53, 0x1b, 0xe5, 0xaa, 0x95, 0xef}: "EfiGenericMemTestProtocolGuid", efi.GUID{0xf1, 0xeb, 0x79, 0x6a, 0xb6, 0xbb, 0xa7, 0x42, 0xbd, 0xa1, 0x5e, 0xac, 0xf5, 0x2f, 0x24, 0x80}: "MotherBoardHealthDxe", efi.GUID{0xf1, 0xec, 0xee, 0x8f, 0xfd, 0xbc, 0x78, 0x4a, 0x92, 0x31, 0x48, 0x01, 0x56, 0x6b, 0x35, 0x67}: "AbsoluteComputraceInstaller", efi.GUID{0xf2, 0x04, 0xc8, 0x5a, 0x19, 0x7d, 0x5c, 0x5b, 0xa2, 0x2d, 0xfa, 0xf4, 0xa8, 0xfe, 0x51, 0x78}: "AcpiVariableHobOnSmramReserveHob", efi.GUID{0xf2, 0x04, 0xc9, 0x80, 0x94, 0xf2, 0x8d, 0x4c, 0x88, 0x99, 0xe6, 0x78, 0x12, 0x97, 0xd1, 0xc8}: "EmulationPlatformInitNull", efi.GUID{0xf2, 0x04, 0xfe, 0x8c, 0x7a, 0x02, 0xa0, 0x4b, 0xa0, 0x34, 0x6c, 0xec, 0x64, 0x86, 0x5b, 0x24}: "SecureBIOCameraSonix", efi.GUID{0xf2, 0x17, 0x81, 0x20, 0xf8, 0x25, 0x9d, 0x47, 0xb7, 0x26, 0x10, 0xc1, 0x0b, 0xed, 0x6d, 0xc1}: "AppleLegacyRegion", efi.GUID{0xf2, 0x19, 0xe4, 0x98, 0x41, 0x41, 0x04, 0x40, 0xbd, 0x7c, 0x45, 0x0d, 0x2b, 0x73, 0xe1, 0x8c}: "H2OCryptoServicesPreMemPei", efi.GUID{0xf2, 0x1d, 0x91, 0xf2, 0xdf, 0x7d, 0xd9, 0x40, 0x98, 0x35, 0xad, 0x2b, 0x1e, 0x20, 0x0c, 0xea}: "SystemSetupExitDxe", efi.GUID{0xf2, 0x1e, 0x72, 0x03, 0x01, 0x18, 0x91, 0x4c, 0xa2, 0x13, 0x14, 0x73, 0x23, 0xf7, 0x51, 0x32}: "AsfTableAsl", efi.GUID{0xf2, 0x27, 0xbe, 0xf8, 0xc7, 0x7e, 0xfd, 0x82, 0x70, 0x4e, 0xa9, 0x4b, 0xa8, 0xe6, 0x3c, 0x7d}: "EcGpioControl2Dxe", efi.GUID{0xf2, 0x28, 0xc6, 0x26, 0xd5, 0xce, 0x6c, 0x46, 0x82, 0x37, 0x43, 0x3c, 0xa4, 0xd2, 0x42, 0x41}: "MemoryEvContent", efi.GUID{0xf2, 0x2a, 0x00, 0x8a, 0x39, 0xec, 0x01, 0x4b, 0xbc, 0x64, 0x84, 0x28, 0x42, 0x67, 0xdf, 0x44}: "ASM104X_PEI", efi.GUID{0xf2, 0x2e, 0x28, 0x41, 0x5a, 0x9b, 0xb7, 0x4e, 0x95, 0xd8, 0xd9, 0xcd, 0x7b, 0xdc, 0xe3, 0x67}: "Oa2MagicNumber", efi.GUID{0xf2, 0x30, 0xf8, 0xf2, 0x85, 0x89, 0xdb, 0x11, 0x80, 0x6b, 0x00, 0x40, 0xd0, 0x2b, 0x18, 0x35}: "PeiUnixThunkPpi", efi.GUID{0xf2, 0x4a, 0x78, 0xaf, 0xe8, 0x76, 0xd1, 0x45, 0xa0, 0xff, 0x68, 0x72, 0x4c, 0xe9, 0x8a, 0xff}: "EcBlinkPei", efi.GUID{0xf2, 0x4f, 0xc8, 0x35, 0xfe, 0x7b, 0x3d, 0x45, 0x84, 0x5f, 0x68, 0x3a, 0x49, 0x2c, 0xf7, 0xb7}: "OvmfTpmMmioAccessiblePpi", efi.GUID{0xf2, 0x56, 0x21, 0x8f, 0x7a, 0x88, 0xa8, 0x4b, 0xbe, 0xf9, 0x00, 0x5c, 0x16, 0x29, 0x3b, 0x7a}: "AmiMemoryInfoSample", efi.GUID{0xf2, 0x62, 0x95, 0xe6, 0x82, 0xc9, 0x73, 0x4e, 0x87, 0xb4, 0x63, 0xbc, 0x79, 0xcd, 0xa1, 0x10}: "CPLDDXE", efi.GUID{0xf2, 0x63, 0x92, 0x7f, 0xc0, 0x0b, 0xa0, 0x4a, 0x85, 0x03, 0x6d, 0x69, 0x51, 0x3b, 0xca, 0x15}: "AsusHddGptRecovery", efi.GUID{0xf2, 0x6a, 0x58, 0x2d, 0xc4, 0x47, 0xbb, 0x47, 0xa8, 0x60, 0x89, 0x49, 0x5d, 0x5b, 0xbf, 0xeb}: "IntelVTdDmarPei", efi.GUID{0xf2, 0x80, 0x26, 0x84, 0x9c, 0x1a, 0xe6, 0x48, 0xa4, 0x33, 0xbe, 0x9a, 0xcb, 0x0d, 0xd4, 0x38}: "EfiIpmiBoot", efi.GUID{0xf2, 0x82, 0x6f, 0x6f, 0x31, 0x0d, 0x19, 0x43, 0x8e, 0x31, 0xcc, 0x72, 0x25, 0x38, 0xe8, 0x94}: "SystemVariableStoreManagerSmmRuntimeDxe", efi.GUID{0xf2, 0x83, 0x2a, 0x3a, 0xac, 0x98, 0x8b, 0x4a, 0xbb, 0xbc, 0xdd, 0xdc, 0xc6, 0x55, 0xa0, 0xd6}: "FchShastaDxe", efi.GUID{0xf2, 0x92, 0x09, 0x12, 0x39, 0x03, 0x2c, 0x40, 0xba, 0xb6, 0x16, 0x12, 0x2d, 0xb2, 0xec, 0x7e}: "PeiMemoryDiagnosticTest", efi.GUID{0xf2, 0x96, 0x80, 0x32, 0xce, 0x00, 0x32, 0x4e, 0xbd, 0x0f, 0x68, 0xb4, 0x40, 0x52, 0xe4, 0x63}: "HpUsbPowerOn", efi.GUID{0xf2, 0x98, 0xdf, 0xc6, 0xc0, 0x5e, 0x94, 0x4a, 0x8c, 0x11, 0x9a, 0x98, 0x28, 0xef, 0x03, 0xf2}: "WifiConnectionManagerDxe", efi.GUID{0xf2, 0x99, 0xa5, 0x93, 0x82, 0x6d, 0xcc, 0x4f, 0x99, 0x70, 0x49, 0xbb, 0x01, 0x3d, 0x69, 0x5a}: "OpteeRngDxe", efi.GUID{0xf2, 0x9a, 0xc3, 0x5a, 0xf6, 0xf9, 0x9c, 0x46, 0x88, 0xce, 0x14, 0x1a, 0xc4, 0x65, 0xf3, 0x70}: "FjAtaWriteReadVerify", efi.GUID{0xf2, 0x9e, 0x04, 0xf0, 0x2c, 0xff, 0xa7, 0x43, 0xa3, 0x08, 0xb0, 0x24, 0x21, 0xa3, 0xa6, 0x9a}: "BmcSmbiosDxe", efi.GUID{0xf2, 0xa3, 0x38, 0xf4, 0x7f, 0xfa, 0x0c, 0x49, 0x90, 0x7d, 0x27, 0x10, 0xc5, 0xb0, 0xe4, 0x8a}: "HpPlatformWmi", efi.GUID{0xf2, 0xbc, 0x4b, 0xca, 0x3d, 0xb4, 0x8e, 0x4d, 0x98, 0x4b, 0x56, 0xa4, 0xec, 0xba, 0x2a, 0x40}: "IntelRSTWrapper", efi.GUID{0xf2, 0xbc, 0xf0, 0x81, 0xad, 0xf1, 0xde, 0x4d, 0x9e, 0x5b, 0x75, 0xeb, 0x34, 0x27, 0xab, 0xc4}: "DellMfgModePeiDriver", efi.GUID{0xf2, 0xc3, 0x25, 0x25, 0x55, 0xe2, 0x75, 0x43, 0xa7, 0xc9, 0x92, 0xd1, 0x05, 0x4d, 0x62, 0xb8}: "MsiBoardECPei", efi.GUID{0xf2, 0xc5, 0x04, 0xe9, 0x68, 0xac, 0xd6, 0x46, 0xaf, 0xda, 0x3a, 0x78, 0xd9, 0xf0, 0xcb, 0x8c}: "AmdNbioAlibDxe", efi.GUID{0xf2, 0xc8, 0x5a, 0xcc, 0x85, 0xea, 0xa4, 0x48, 0x84, 0x93, 0x20, 0x21, 0xe0, 0xa3, 0x0d, 0x0f}: "PlatformCsm", efi.GUID{0xf2, 0xca, 0xd8, 0xb8, 0x94, 0x9e, 0x2c, 0x46, 0xa8, 0x34, 0x6c, 0x99, 0xfc, 0x05, 0xef, 0xcf}: "ArmScmiClock2Protocol", efi.GUID{0xf2, 0xcf, 0xdd, 0xd9, 0x5a, 0x21, 0x0a, 0x48, 0xaa, 0x63, 0x1d, 0xf1, 0xf5, 0xed, 0xbc, 0x01}: "HddSecurityPei", efi.GUID{0xf2, 0xd5, 0xb3, 0x02, 0x28, 0xac, 0xd3, 0x11, 0x9a, 0x2d, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d}: "EfiTcpProtocol", efi.GUID{0xf2, 0xd6, 0x1d, 0x27, 0xcb, 0x54, 0xe6, 0x45, 0x85, 0x85, 0x8c, 0x92, 0x3c, 0x1a, 0xc7, 0x06}: "PchS3Peim", efi.GUID{0xf2, 0xda, 0x5f, 0x1c, 0xb3, 0x9f, 0x1b, 0x43, 0x8e, 0xcd, 0xb7, 0xd3, 0x5c, 0xbe, 0xfa, 0xe9}: "EfiAfterPlatformLocksEvent", efi.GUID{0xf2, 0xdb, 0xee, 0x4f, 0x3c, 0x3e, 0x99, 0x4d, 0xad, 0x5f, 0xd9, 0x21, 0x95, 0xdd, 0xed, 0xd6}: "FjWatchdogGHO", efi.GUID{0xf2, 0xe1, 0xa7, 0x4f, 0x8b, 0xce, 0x38, 0x4d, 0xa3, 0xf8, 0x34, 0x2d, 0xc4, 0x51, 0x54, 0x46}: "IioCfgUpdateDxeNeonCityEPRP", efi.GUID{0xf2, 0xe5, 0x97, 0x1e, 0x50, 0xf8, 0xd9, 0x0f, 0x81, 0x91, 0xc1, 0x8f, 0xe4, 0x3b, 0x04, 0x05}: "WnameDxe", efi.GUID{0xf2, 0xea, 0x00, 0xfe, 0x37, 0xba, 0xcf, 0x4b, 0x93, 0x9c, 0x4c, 0x78, 0xea, 0x63, 0xec, 0xda}: "DellPropertyReady", efi.GUID{0xf2, 0xfb, 0x2c, 0x0b, 0x08, 0x3e, 0x4e, 0x4c, 0xa7, 0x4d, 0x59, 0x74, 0x8a, 0x9f, 0x93, 0x0f}: "LegacyRegionDxe", efi.GUID{0xf3, 0x04, 0x2b, 0x50, 0xab, 0x71, 0xb4, 0x47, 0xbe, 0xae, 0x47, 0x36, 0xea, 0x19, 0x0a, 0xa4}: "PciDxeInit", efi.GUID{0xf3, 0x0c, 0x74, 0x60, 0x28, 0xd4, 0x00, 0x45, 0x80, 0xe6, 0x04, 0xa5, 0x79, 0x82, 0x41, 0xed}: "HstiIhvDxe", efi.GUID{0xf3, 0x0c, 0x96, 0x62, 0xff, 0x40, 0x63, 0x42, 0xa7, 0x7c, 0xdf, 0xde, 0xbd, 0x19, 0x1b, 0x4b}: "EfiBluetoothConfigProtocolGuid", efi.GUID{0xf3, 0x0e, 0xbb, 0xae, 0x50, 0x94, 0xda, 0x43, 0xb2, 0xcf, 0x32, 0x3d, 0x04, 0xc9, 0x37, 0xcf}: "DellWmiBiosAttribDxe", efi.GUID{0xf3, 0x0f, 0x76, 0xd9, 0xca, 0x3c, 0x67, 0x42, 0x80, 0xf9, 0x75, 0x27, 0xfa, 0xfa, 0x42, 0x23}: "EfiMtftp6ServiceBindingProtocolGuid", efi.GUID{0xf3, 0x12, 0xee, 0x11, 0x62, 0x4b, 0x2f, 0x17, 0x37, 0xa6, 0xa6, 0xbe, 0xda, 0xb1, 0xff, 0x62}: "Pca9545aPei", efi.GUID{0xf3, 0x12, 0xff, 0x22, 0x62, 0x4b, 0x2f, 0x17, 0x37, 0xa6, 0xa6, 0xbe, 0xda, 0xb1, 0xff, 0x63}: "I2CcontrolPei", efi.GUID{0xf3, 0x13, 0x5b, 0xba, 0x83, 0x8b, 0x71, 0x48, 0x8c, 0x3d, 0x44, 0xce, 0x68, 0x3e, 0xac, 0x1e}: "AmtLibPei", efi.GUID{0xf3, 0x18, 0x37, 0x90, 0x5d, 0x57, 0x9c, 0x4d, 0xbc, 0x78, 0x65, 0xa1, 0x13, 0x81, 0xa0, 0x26}: "DellImgSrvBaseRom", efi.GUID{0xf3, 0x19, 0xa7, 0x1a, 0xa8, 0x10, 0xbb, 0x47, 0x98, 0x3f, 0x3a, 0x03, 0xba, 0xbb, 0xb1, 0xeb}: "JGPIOCtrlPei", efi.GUID{0xf3, 0x1f, 0x94, 0x85, 0xc9, 0x13, 0xe6, 0x46, 0x9e, 0xe7, 0x68, 0xb4, 0x87, 0xb8, 0x3f, 0x27}: "AaeonSmartBoost", efi.GUID{0xf3, 0x22, 0x2c, 0x4d, 0xe5, 0xc0, 0x9e, 0x41, 0x89, 0x78, 0xbc, 0x9c, 0x3c, 0xf8, 0x43, 0xa8}: "DellFmpGbe", efi.GUID{0xf3, 0x28, 0x52, 0x6e, 0x3e, 0x93, 0x61, 0x49, 0x95, 0x73, 0x0f, 0x1e, 0x61, 0xb5, 0x22, 0xac}: "LenovoSmbiosVpro", efi.GUID{0xf3, 0x2a, 0x00, 0x60, 0x95, 0xdc, 0x53, 0x42, 0x88, 0xad, 0x8b, 0xd8, 0x76, 0xd8, 0x37, 0x50}: "DellMfgModeSmm", efi.GUID{0xf3, 0x2c, 0x8c, 0xbb, 0xe3, 0xa5, 0xef, 0x49, 0x94, 0x1b, 0x4a, 0x01, 0xfa, 0xc6, 0xfd, 0x5f}: "SmiFlashDxe", efi.GUID{0xf3, 0x2d, 0x28, 0x69, 0x8f, 0x77, 0x69, 0x42, 0x91, 0xaa, 0xd7, 0xdf, 0x6e, 0x19, 0x33, 0x17}: "Uc2OnUcThunk", efi.GUID{0xf3, 0x2e, 0xc9, 0xd3, 0xaa, 0x39, 0xce, 0x4e, 0xa1, 0xe6, 0xdf, 0xd7, 0xa2, 0xd4, 0x97, 0xd4}: "ODMShareMemProtocol", efi.GUID{0xf3, 0x31, 0x80, 0x85, 0xa2, 0x96, 0x6e, 0x40, 0xab, 0xcc, 0xed, 0x26, 0x4a, 0x3a, 0x31, 0xd6}: "CryptRuntimeDxe", efi.GUID{0xf3, 0x32, 0x0f, 0xb7, 0xcc, 0x28, 0xbc, 0x40, 0x8e, 0x0a, 0x68, 0x27, 0x83, 0xbd, 0x6f, 0x68}: "BiosPasswordSmm", efi.GUID{0xf3, 0x33, 0xcc, 0xf3, 0x16, 0x37, 0x64, 0x48, 0x86, 0x06, 0x41, 0xc0, 0xcb, 0x1c, 0x1b, 0xce}: "OemPeiNbSbCustom", efi.GUID{0xf3, 0x34, 0x90, 0xdc, 0xd6, 0x75, 0xce, 0x4f, 0x86, 0xd3, 0x1f, 0x28, 0xb2, 0x3f, 0xa9, 0x33}: "OCPCtrlDxe", efi.GUID{0xf3, 0x37, 0x23, 0xcb, 0x73, 0xcf, 0x64, 0x41, 0x9b, 0x73, 0x79, 0x8b, 0xbf, 0x89, 0x28, 0xdf}: "TPMDxe", efi.GUID{0xf3, 0x39, 0xf6, 0x29, 0xda, 0x4b, 0xba, 0x49, 0x89, 0xbf, 0xbe, 0xc5, 0x3c, 0xe4, 0x8c, 0x2f}: "Tca9548aDxe", efi.GUID{0xf3, 0x3a, 0x68, 0x0c, 0x36, 0xaf, 0xca, 0x4c, 0x93, 0xc3, 0x04, 0x6e, 0xde, 0xf0, 0x1d, 0x9f}: "IblInitSmm", efi.GUID{0xf3, 0x3b, 0xd3, 0x33, 0x9e, 0x34, 0x68, 0x47, 0x94, 0x59, 0x83, 0x6a, 0x9f, 0x75, 0x58, 0xfb}: "DxeIoLibCpuIo2", efi.GUID{0xf3, 0x3f, 0x01, 0x8b, 0xd2, 0x31, 0x93, 0x46, 0x83, 0xe6, 0x59, 0xfa, 0x0c, 0x73, 0xf0, 0xe3}: "CompalCommonHookDxe", efi.GUID{0xf3, 0x3f, 0x01, 0x9b, 0xd2, 0x31, 0x93, 0x46, 0x83, 0xe6, 0x60, 0xfa, 0x0c, 0x73, 0xf0, 0xf7}: "CompalCommonHookSmm", efi.GUID{0xf3, 0x48, 0x11, 0x17, 0xf6, 0x6c, 0x58, 0x4c, 0x85, 0xd6, 0x73, 0x01, 0x3e, 0x19, 0xd9, 0x0e}: "DriveEraseInterfaceCoreDxe", efi.GUID{0xf3, 0x48, 0xb3, 0x07, 0x87, 0x21, 0x35, 0x40, 0xae, 0xaf, 0xf0, 0x7a, 0x85, 0xd9, 0x75, 0x4b}: "AmdEdidOverrideDxe", efi.GUID{0xf3, 0x4c, 0xc0, 0x26, 0xfb, 0xf5, 0x68, 0x49, 0x8d, 0x57, 0xc7, 0xfa, 0x0a, 0x93, 0x27, 0x83}: "DellSbServicesSmm", efi.GUID{0xf3, 0x4d, 0xdc, 0x20, 0xa8, 0xae, 0x12, 0x4d, 0x9a, 0x20, 0xc0, 0x7e, 0xb9, 0x15, 0x7e, 0x04}: "OemSetupCallBack", efi.GUID{0xf3, 0x4d, 0xe5, 0x8e, 0x96, 0xfc, 0xed, 0x40, 0xa1, 0xca, 0x3a, 0x1b, 0x26, 0x5f, 0x95, 0x28}: "ProjectPei", efi.GUID{0xf3, 0x4f, 0xc1, 0xb3, 0xe8, 0xba, 0x6c, 0x45, 0x86, 0x31, 0x27, 0xfe, 0x0c, 0xeb, 0x34, 0x0c}: "ScEspiSmiDispatchProtocolGuid", efi.GUID{0xf3, 0x60, 0xe1, 0xa2, 0x8d, 0x01, 0x6c, 0x48, 0xa7, 0xb5, 0x10, 0xb0, 0xe6, 0x69, 0xed, 0xa3}: "DellVariable2Dxe", efi.GUID{0xf3, 0x61, 0x2f, 0x18, 0xb7, 0xa6, 0x56, 0x4b, 0xab, 0x1c, 0x6e, 0xf6, 0xdd, 0xe0, 0x97, 0x98}: "FjGabiFlashBiosRegionCtrlSmm", efi.GUID{0xf3, 0x68, 0x78, 0x40, 0xa7, 0xd1, 0xc6, 0x46, 0x9f, 0xcb, 0x6f, 0x67, 0xa5, 0xe3, 0xc7, 0xd9}: "HdAudioConfigGuid", efi.GUID{0xf3, 0x70, 0xb0, 0x54, 0xb8, 0x9e, 0xcc, 0x47, 0xad, 0xaf, 0x39, 0x02, 0x9c, 0x85, 0x3c, 0xbb}: "NvramSmiDxe", efi.GUID{0xf3, 0x7b, 0x41, 0x03, 0x95, 0x6d, 0xdf, 0x41, 0x88, 0xef, 0x0d, 0xda, 0x6e, 0x86, 0xdc, 0x34}: "AsfPei", efi.GUID{0xf3, 0x7e, 0xb1, 0x05, 0xcb, 0x26, 0x4a, 0x44, 0x82, 0xf7, 0x92, 0x70, 0x5c, 0xfb, 0x6b, 0x1e}: "DellSetupFormSets", efi.GUID{0xf3, 0x89, 0x91, 0xc4, 0x4c, 0x1d, 0xd7, 0x4a, 0xa4, 0x39, 0xd0, 0x13, 0xab, 0x72, 0x09, 0x31}: "PerfTunePpi", efi.GUID{0xf3, 0x91, 0x06, 0x5b, 0xf2, 0x8f, 0x94, 0x4a, 0xa1, 0x6f, 0xf4, 0xbf, 0x95, 0x75, 0x6e, 0xa5}: "HpEdk2KeyboardEngine", efi.GUID{0xf3, 0x95, 0x4c, 0x86, 0x58, 0x15, 0x13, 0x4d, 0xa4, 0x74, 0x11, 0xd0, 0x02, 0x35, 0x76, 0xe2}: "SureStartPcdSmm", efi.GUID{0xf3, 0x9b, 0x4a, 0xa9, 0x9e, 0xdf, 0x11, 0x4c, 0xa9, 0xce, 0x23, 0xc1, 0xf6, 0x6f, 0xee, 0x13}: "OobMsmSmm", efi.GUID{0xf3, 0x9c, 0x90, 0xb4, 0x93, 0x7b, 0x51, 0x47, 0x9b, 0xd8, 0x5b, 0xa8, 0x22, 0x0b, 0x9b, 0xb2}: "BootManager", efi.GUID{0xf3, 0xa1, 0xb1, 0x9f, 0x71, 0x3b, 0x24, 0x43, 0xb3, 0x9a, 0x74, 0x5c, 0xbb, 0x01, 0x5f, 0xff}: "Ip4Dxe", efi.GUID{0xf3, 0xa2, 0x8b, 0xf1, 0x3d, 0x05, 0x8d, 0x40, 0x9e, 0x28, 0x96, 0xcd, 0xa6, 0x52, 0x72, 0xa8}: "FfsIntegrityCheckPei", efi.GUID{0xf3, 0xa5, 0xf0, 0x9b, 0xdd, 0x36, 0xcb, 0x4c, 0xb0, 0x5a, 0x8d, 0x70, 0xf6, 0xf7, 0x8a, 0xdf}: "ExpansionSlotConfigPortingDxe", efi.GUID{0xf3, 0xa8, 0x0e, 0xc8, 0xc9, 0xa3, 0x25, 0x42, 0xaa, 0x60, 0x76, 0x9d, 0xd4, 0xc7, 0x4e, 0x43}: "LenovoSvpManagerDxe", efi.GUID{0xf3, 0xac, 0x55, 0x15, 0x07, 0xbd, 0x85, 0x46, 0xb6, 0x68, 0xa8, 0x69, 0x45, 0xa4, 0x12, 0x4d}: "CpuPeiBeforeMem", efi.GUID{0xf3, 0xad, 0x02, 0xae, 0x5a, 0xe0, 0x70, 0x41, 0xaf, 0xc6, 0xc1, 0xf0, 0xee, 0xe8, 0x65, 0x18}: "Fadr", efi.GUID{0xf3, 0xaf, 0x62, 0x48, 0x7c, 0x66, 0x58, 0x54, 0xb2, 0x74, 0xa1, 0xc6, 0x2d, 0xf8, 0xba, 0x80}: "HeciInit", efi.GUID{0xf3, 0xaf, 0xa2, 0xb6, 0x7c, 0x76, 0x58, 0x56, 0xc3, 0x7a, 0xd1, 0xc8, 0x2e, 0xf7, 0x65, 0x43}: "MeUma", efi.GUID{0xf3, 0xb4, 0x47, 0x15, 0x8a, 0x3e, 0xef, 0x4f, 0x81, 0xc8, 0x32, 0x8e, 0xd6, 0x47, 0xab, 0x1a}: "Csm16", efi.GUID{0xf3, 0xbb, 0x46, 0x5f, 0x4b, 0xdf, 0x94, 0x47, 0x82, 0x6a, 0x29, 0x21, 0x7e, 0x63, 0x14, 0x12}: "GnbSocPhoenixPei", efi.GUID{0xf3, 0xbb, 0x46, 0x5f, 0x4b, 0xdf, 0x94, 0x47, 0x82, 0x6a, 0x29, 0x21, 0x7e, 0x63, 0x79, 0x4f}: "GnbSocRaphaelPei", efi.GUID{0xf3, 0xc0, 0x4f, 0x3c, 0xfd, 0xd0, 0x8c, 0x46, 0x98, 0x25, 0x5e, 0xea, 0x0e, 0x85, 0x35, 0x5d}: "KEMaSMBIOSDxe", efi.GUID{0xf3, 0xcb, 0x89, 0x45, 0xf9, 0x03, 0x98, 0x49, 0x9d, 0x6f, 0x26, 0x34, 0x3c, 0x69, 0x56, 0x2a}: "LenovoComputraceLoaderDxe", efi.GUID{0xf3, 0xce, 0x4d, 0x7a, 0x8e, 0x78, 0x95, 0x45, 0x9f, 0x0b, 0x4b, 0x97, 0x80, 0x3b, 0xc9, 0x7a}: "SaveRestoreGPT", efi.GUID{0xf3, 0xce, 0x7a, 0xca, 0x81, 0x11, 0xe0, 0x4a, 0x95, 0xa7, 0x0f, 0x1f, 0xd8, 0xaf, 0xd2, 0xed}: "LenovoSystemKeyDescDxe", efi.GUID{0xf3, 0xe5, 0xa7, 0x1c, 0x85, 0x23, 0x7d, 0x42, 0xa4, 0xaf, 0xf6, 0xe2, 0x8b, 0xb8, 0xbb, 0xec}: "AmdMemAm5Pei", efi.GUID{0xf3, 0xe9, 0xff, 0x1d, 0x5f, 0x7b, 0x44, 0x4b, 0x8e, 0xbd, 0x39, 0xa7, 0x39, 0xeb, 0xa9, 0x03}: "AcpiPlatform", efi.GUID{0xf3, 0xf7, 0x01, 0x81, 0xd2, 0x07, 0x18, 0x45, 0xa9, 0x87, 0xef, 0x51, 0xea, 0x64, 0xaf, 0xad}: "BatteryFwUpdateDxe", efi.GUID{0xf3, 0xfa, 0xdd, 0x5c, 0xa7, 0xe9, 0x16, 0x4d, 0xbd, 0xce, 0x1e, 0x00, 0x2d, 0xf4, 0x75, 0xbb}: "UefiDebugLibConOut", efi.GUID{0xf3, 0xfc, 0x05, 0x19, 0xb6, 0xdd, 0xbb, 0x49, 0xa7, 0x85, 0x1e, 0x50, 0xc8, 0x07, 0x16, 0x0d}: "SystemSlotInfoDxe", efi.GUID{0xf4, 0x00, 0xc3, 0xa6, 0xd0, 0xa5, 0xe9, 0x43, 0x81, 0xbc, 0xc4, 0xfb, 0x50, 0x69, 0xe4, 0xa2}: "FjGabiEntryDxe", efi.GUID{0xf4, 0x05, 0x5e, 0x16, 0xd6, 0xcc, 0x8c, 0x41, 0x9b, 0xd9, 0x6d, 0x6f, 0xf9, 0xb1, 0xb9, 0x96}: "HpCommonDxe", efi.GUID{0xf4, 0x08, 0x5b, 0x57, 0x46, 0xa9, 0x41, 0x43, 0xb4, 0x6a, 0x76, 0x5c, 0xc9, 0xf0, 0x46, 0x44}: "PCIeIdm", efi.GUID{0xf4, 0x0f, 0x91, 0x1e, 0x06, 0x31, 0xf0, 0x44, 0xbb, 0x75, 0x11, 0x5a, 0x52, 0xfb, 0x9b, 0xac}: "DellVideoDxe", efi.GUID{0xf4, 0x13, 0xdb, 0xf5, 0x20, 0x0d, 0x76, 0x4f, 0xbc, 0xb4, 0xb3, 0x61, 0xfc, 0xe4, 0xeb, 0x72}: "OemQkeyDxe", efi.GUID{0xf4, 0x17, 0x24, 0xaf, 0x7e, 0x7b, 0x2e, 0x4c, 0x94, 0xbb, 0x7a, 0x33, 0x89, 0xa1, 0x57, 0xca}: "EfiPeiPlatformTypeLightningRidgeExrpPpi", efi.GUID{0xf4, 0x20, 0xfd, 0xf7, 0x45, 0xe5, 0x3b, 0x4d, 0x9a, 0xb5, 0xea, 0xdb, 0x69, 0xaf, 0x13, 0x0b}: "DellVariableLockDownDxe", efi.GUID{0xf4, 0x27, 0x4a, 0xa0, 0x00, 0xdf, 0x42, 0x4d, 0xb5, 0x52, 0x39, 0x51, 0x13, 0x02, 0x11, 0x3d}: "DriverSampleFormSetGuid", efi.GUID{0xf4, 0x28, 0x25, 0x57, 0xc6, 0x9b, 0xbd, 0x41, 0x9d, 0x14, 0x5a, 0xad, 0x93, 0x46, 0x4a, 0x51}: "NationalPC8374L", efi.GUID{0xf4, 0x32, 0xd9, 0xe4, 0xc9, 0x31, 0x75, 0x40, 0x8f, 0xa3, 0x40, 0x30, 0xf7, 0xeb, 0x76, 0x7a}: "SmmPlatform", efi.GUID{0xf4, 0x32, 0xfb, 0xcf, 0xa8, 0xc2, 0xbb, 0x48, 0xa0, 0xeb, 0x6c, 0x3c, 0xca, 0x3f, 0xe8, 0x47}: "ApfsJumpStart", efi.GUID{0xf4, 0x34, 0x02, 0xd5, 0x4b, 0x6f, 0xe8, 0x43, 0xa0, 0x13, 0x3c, 0x1e, 0x33, 0xd9, 0xb9, 0xb1}: "EfiMemoryTypeFru", efi.GUID{0xf4, 0x39, 0xab, 0xdb, 0xf1, 0x8f, 0xb8, 0x45, 0xb9, 0x2b, 0x10, 0x78, 0x48, 0xac, 0x07, 0xe7}: "CompalCMFCSmmHook", efi.GUID{0xf4, 0x3f, 0xa0, 0x28, 0xb3, 0x12, 0x05, 0x43, 0xa4, 0x17, 0xbb, 0x1a, 0x4f, 0x94, 0x08, 0x1e}: "RamDiskDxe", efi.GUID{0xf4, 0x4b, 0x88, 0xe7, 0xa1, 0x51, 0x5b, 0x48, 0x98, 0x2a, 0xff, 0x89, 0x12, 0x99, 0x83, 0xbc}: "BaseMemoryLibRepStr", efi.GUID{0xf4, 0x4d, 0x5a, 0xab, 0xd7, 0xf0, 0xa8, 0x49, 0xbf, 0x5c, 0xf2, 0x5d, 0xa0, 0x4c, 0x25, 0x33}: "CpuGlobalNvsAreaProtocolGuid", efi.GUID{0xf4, 0x4f, 0x6e, 0x07, 0xb4, 0xaf, 0x74, 0x4b, 0x8d, 0x94, 0x05, 0x17, 0xbe, 0xc8, 0x63, 0x61}: "FchSmbusPei", efi.GUID{0xf4, 0x53, 0x48, 0xca, 0x4b, 0xe9, 0xb4, 0x42, 0x86, 0x42, 0xcd, 0xe2, 0x8a, 0x7f, 0xac, 0x2d}: "PeiTpmPpiGuid", efi.GUID{0xf4, 0x56, 0x33, 0xae, 0x5b, 0xf9, 0x4b, 0x40, 0xb1, 0xde, 0x64, 0xeb, 0x5d, 0x5e, 0x5b, 0xbe}: "MemRas", efi.GUID{0xf4, 0x57, 0xb4, 0x40, 0x09, 0x44, 0x2c, 0x49, 0xae, 0x48, 0x2a, 0x2b, 0x0c, 0xbc, 0xda, 0x58}: "DellEcIoSmm", efi.GUID{0xf4, 0x62, 0x54, 0x64, 0x50, 0xaf, 0xc5, 0x4f, 0x83, 0x8f, 0x1d, 0xfb, 0xe3, 0x22, 0x55, 0x11}: "UsbCdcNcm", efi.GUID{0xf4, 0x6d, 0x4f, 0xbe, 0xb5, 0x5c, 0x58, 0x46, 0x91, 0xc8, 0xad, 0x81, 0x06, 0xb8, 0x15, 0x0f}: "FjManufacturingModeSignOn", efi.GUID{0xf4, 0x74, 0x12, 0x05, 0x24, 0xa7, 0x32, 0x47, 0xbe, 0x00, 0x82, 0x79, 0x3a, 0x3d, 0x49, 0x9a}: "AmdUsb4Dxe", efi.GUID{0xf4, 0x82, 0xe0, 0x12, 0xce, 0x0d, 0x4b, 0x44, 0xb8, 0x9a, 0xef, 0x33, 0x28, 0x42, 0x8d, 0x64}: "ArmaniSmm", efi.GUID{0xf4, 0x91, 0xf6, 0xaa, 0x51, 0x98, 0x20, 0x41, 0x8a, 0x43, 0x11, 0x29, 0xb2, 0x82, 0x98, 0x99}: "FjDtPowerFailureRecoveryPlatformDxe", efi.GUID{0xf4, 0x92, 0x45, 0x3f, 0xde, 0xd5, 0x29, 0x4c, 0x88, 0x3e, 0x63, 0x43, 0x4b, 0xbe, 0x0b, 0x33}: "Cf9Reset", efi.GUID{0xf4, 0x93, 0x6a, 0x5a, 0x07, 0x29, 0x34, 0x4a, 0xbd, 0x11, 0x6c, 0xa8, 0xa0, 0x95, 0x9e, 0x09}: "EfiCmosDataHobInstalled", efi.GUID{0xf4, 0x9c, 0x8f, 0x13, 0xe7, 0xf0, 0x21, 0x47, 0x8f, 0x49, 0xf5, 0xff, 0xec, 0xf4, 0x2d, 0x40}: "EfiPeiMpInitLibMpDepPpi", efi.GUID{0xf4, 0x9e, 0xb8, 0x39, 0x05, 0xae, 0xd4, 0x4f, 0xa5, 0x9e, 0xc2, 0xba, 0xdb, 0x2b, 0xe7, 0x32}: "I2cHidParserDxe", efi.GUID{0xf4, 0xab, 0xc2, 0x7b, 0xc6, 0xdd, 0x04, 0x4e, 0xbf, 0xb0, 0xd9, 0xbd, 0xb6, 0x88, 0x89, 0x15}: "DxeFvMain2Test", efi.GUID{0xf4, 0xb4, 0x6e, 0xca, 0xd6, 0xf1, 0x75, 0x43, 0x97, 0xd6, 0x18, 0x85, 0x68, 0x71, 0xe1, 0xbf}: "UsbLanDriverSrc", efi.GUID{0xf4, 0xb7, 0x01, 0xd2, 0x5f, 0x51, 0xa8, 0x46, 0x95, 0x1d, 0x9f, 0x2b, 0xe2, 0x51, 0xc1, 0x13}: "CPUDefault-PEI", efi.GUID{0xf4, 0xba, 0xd9, 0xc7, 0x9d, 0xdc, 0x22, 0x4b, 0xb4, 0xe7, 0x75, 0x00, 0xea, 0xa7, 0xb6, 0x7f}: "SiliconDataInitPeim", efi.GUID{0xf4, 0xbd, 0xe3, 0x5b, 0xcf, 0x53, 0xa3, 0x46, 0xa6, 0xa9, 0x73, 0xc3, 0x4a, 0x6e, 0x5e, 0xe3}: "NvmExpressDxe", efi.GUID{0xf4, 0xbd, 0xe3, 0x5b, 0xcf, 0x53, 0xa3, 0x46, 0xa6, 0xa9, 0x73, 0xc3, 0x4a, 0x6e, 0x5e, 0xe4}: "NVMeSmm", efi.GUID{0xf4, 0xcd, 0x8c, 0xda, 0x8f, 0xed, 0xfc, 0x4f, 0xb5, 0xef, 0x2e, 0xf5, 0x5e, 0x24, 0x93, 0x2a}: "ShellAcpiViewHii", efi.GUID{0xf4, 0xce, 0x1a, 0xdb, 0xa0, 0x46, 0x81, 0x4a, 0x8e, 0x1e, 0x4b, 0x79, 0x3c, 0xea, 0xad, 0x68}: "LenovoTpmFwSwitchDxe", efi.GUID{0xf4, 0xd3, 0x7f, 0x6a, 0xee, 0x53, 0xec, 0x4d, 0xa1, 0xe5, 0x69, 0x17, 0x5b, 0x7f, 0xd5, 0x81}: "CpuCrashLogAgent", efi.GUID{0xf4, 0xd3, 0x8a, 0x9e, 0x3d, 0x38, 0xc3, 0x4e, 0x81, 0x6e, 0x7a, 0x47, 0x49, 0x37, 0x12, 0x90}: "FvbSmmDxe", efi.GUID{0xf4, 0xd4, 0x97, 0x6e, 0x98, 0x18, 0x08, 0x44, 0xa6, 0x2d, 0x99, 0xca, 0xde, 0xd3, 0x2f, 0xd8}: "DellDxeSbAcpi", efi.GUID{0xf4, 0xd4, 0xb5, 0xfa, 0xc0, 0x83, 0xaf, 0x4a, 0x84, 0x80, 0x44, 0x2d, 0x11, 0xdf, 0x6c, 0xea}: "VirtioScsiDxe", efi.GUID{0xf4, 0xd9, 0x96, 0x42, 0xfc, 0xf6, 0xde, 0x4d, 0x86, 0x85, 0x8c, 0xe2, 0xd7, 0x9d, 0x90, 0xf0}: "EfiDriverHealthManagerFormSet", efi.GUID{0xf4, 0xe6, 0x6e, 0xf4, 0x85, 0x47, 0xa3, 0x43, 0x92, 0x3d, 0x7f, 0x78, 0x6c, 0x3c, 0x84, 0x79}: "LenovoStartupMenuDxe", efi.GUID{0xf4, 0xeb, 0x6e, 0xeb, 0xc3, 0x1e, 0x69, 0x4d, 0x9d, 0x82, 0x65, 0xbf, 0x6c, 0x57, 0x9b, 0x34}: "LenovoSecureKeySmm", efi.GUID{0xf4, 0xef, 0x23, 0xb7, 0x4a, 0xee, 0xbd, 0x40, 0xbd, 0x7b, 0x22, 0x27, 0x2e, 0x36, 0xb3, 0xe7}: "ObbyFirmwareFileSystemFvGuid", efi.GUID{0xf4, 0xf0, 0x50, 0x37, 0x0b, 0x48, 0xcd, 0x4f, 0xa1, 0x53, 0x62, 0xa4, 0xbe, 0xb5, 0xd1, 0x14}: "CrashLogPei", efi.GUID{0xf4, 0xf6, 0xca, 0x0b, 0x78, 0x5a, 0x18, 0x48, 0x82, 0xbc, 0x55, 0x94, 0xd1, 0x75, 0x94, 0x3c}: "FchSmbusPei", efi.GUID{0xf4, 0xfc, 0x2f, 0x6e, 0x99, 0x68, 0x4c, 0x41, 0x9b, 0x55, 0x3a, 0x08, 0x84, 0x2e, 0x65, 0x0c}: "AppleIvyBridgeGop", efi.GUID{0xf4, 0xff, 0x4c, 0xf8, 0x1e, 0x51, 0xc8, 0x41, 0xb8, 0x29, 0x51, 0x9f, 0x51, 0x52, 0xf4, 0x44}: "LegacyBiosPlatformDxe", efi.GUID{0xf5, 0x01, 0x57, 0xa5, 0xef, 0xe3, 0xde, 0x43, 0xac, 0x72, 0x24, 0x9b, 0x57, 0x3f, 0xad, 0x2c}: "EfiIa32X64ErrorTypeCacheCheckGuid", efi.GUID{0xf5, 0x05, 0x40, 0x17, 0x63, 0x36, 0x05, 0x43, 0x90, 0x62, 0x90, 0x4b, 0x2b, 0xe2, 0xd0, 0x7a}: "ApobPhxPei", efi.GUID{0xf5, 0x0b, 0xef, 0x15, 0xed, 0xb7, 0xb6, 0x4f, 0x93, 0xd5, 0x08, 0xbb, 0x4d, 0xe8, 0x7a, 0xbb}: "HbmMemMap", efi.GUID{0xf5, 0x0d, 0xa2, 0x97, 0x57, 0x6f, 0x76, 0x4c, 0x90, 0x95, 0x0f, 0x64, 0x39, 0xf8, 0xa8, 0x1c}: "fTPMTisDxe", efi.GUID{0xf5, 0x0e, 0xff, 0xa3, 0x28, 0x0c, 0xf5, 0x42, 0xb5, 0x44, 0x8c, 0x7d, 0xe1, 0xe8, 0x00, 0x14}: "PiSmmCpuDxeSmm", efi.GUID{0xf5, 0x15, 0x2c, 0xd2, 0x8b, 0x81, 0x40, 0x49, 0x90, 0xeb, 0xab, 0xb3, 0x77, 0x25, 0x56, 0x43}: "SmbiosMisc", efi.GUID{0xf5, 0x15, 0x2c, 0xd2, 0x8b, 0x81, 0x40, 0x49, 0x90, 0xeb, 0xab, 0xb3, 0x77, 0x25, 0x56, 0x44}: "SmbiosPlatformInfo", efi.GUID{0xf5, 0x1a, 0xc0, 0xeb, 0xa9, 0x07, 0x9e, 0x48, 0xb7, 0xce, 0xdc, 0x08, 0x9e, 0x45, 0x9b, 0x2f}: "EdkiiUfsHostControllerProtocolGuid", efi.GUID{0xf5, 0x27, 0xd9, 0xe2, 0x19, 0x72, 0x06, 0x4c, 0xa7, 0x15, 0xad, 0xde, 0xf7, 0xf2, 0x82, 0x1b}: "OemPei", efi.GUID{0xf5, 0x35, 0xf9, 0x81, 0xe2, 0xf1, 0x3c, 0x48, 0x82, 0x04, 0xb1, 0xe7, 0x01, 0x51, 0x20, 0xa3}: "FjFastBootDxe", efi.GUID{0xf5, 0x36, 0x8c, 0x74, 0xcc, 0x6d, 0x57, 0x48, 0x8a, 0xf6, 0x64, 0xe6, 0x6e, 0xff, 0xba, 0x00}: "KeyboardLayoutSetup", efi.GUID{0xf5, 0x38, 0x43, 0x24, 0xda, 0xab, 0xbd, 0x4d, 0x87, 0x82, 0x1d, 0xe2, 0x93, 0xb5, 0xbb, 0xb4}: "PlatformStatusCodeHandlerPei", efi.GUID{0xf5, 0x3f, 0x5e, 0x66, 0xcc, 0x46, 0xd4, 0x11, 0x9a, 0x38, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d}: "EfiWatchdogTimerArchProtocolGuid", efi.GUID{0xf5, 0x44, 0xf4, 0x7b, 0x15, 0xcb, 0xef, 0x4d, 0x99, 0xdf, 0xe7, 0x25, 0xd9, 0xa8, 0xe3, 0x80}: "RamDisk", efi.GUID{0xf5, 0x46, 0xfa, 0x4a, 0x7e, 0xf9, 0x48, 0x4a, 0xb7, 0x61, 0x79, 0x79, 0xfa, 0xfc, 0xc4, 0xf1}: "PldmSmi", efi.GUID{0xf5, 0x47, 0x15, 0xb9, 0x24, 0x4d, 0xef, 0x4e, 0x85, 0x07, 0x74, 0xdd, 0xab, 0xeb, 0x71, 0xad}: "AmiSmmNvmePassThruProtocolGuid", efi.GUID{0xf5, 0x5a, 0xf0, 0x27, 0x44, 0x16, 0xf4, 0x4e, 0x89, 0x44, 0x48, 0xc4, 0xf7, 0x56, 0x75, 0xa0}: "RealTimeClockDxe", efi.GUID{0xf5, 0x5c, 0x36, 0x7c, 0xb7, 0x19, 0xf2, 0x48, 0x80, 0xf5, 0x0a, 0x32, 0x67, 0xf6, 0x9f, 0xea}: "SmiSecurityVerify", efi.GUID{0xf5, 0x64, 0xc4, 0xb9, 0xdf, 0xe8, 0xfb, 0x49, 0x8f, 0xe5, 0x86, 0xda, 0x95, 0x8d, 0x81, 0x33}: "ASRockHDAudioDxe", efi.GUID{0xf5, 0x64, 0xf5, 0x41, 0x6e, 0x61, 0xd7, 0x41, 0xb4, 0xe3, 0xe1, 0x24, 0xc7, 0xfe, 0xc0, 0x24}: "TransitionBios", efi.GUID{0xf5, 0x6c, 0x6a, 0x7e, 0x9c, 0xc8, 0x2f, 0x49, 0xac, 0x37, 0x23, 0x07, 0x84, 0x9c, 0x3a, 0xd5}: "EfiCpuPpmProtocol", efi.GUID{0xf5, 0x6e, 0xb8, 0x2a, 0xb5, 0xec, 0x34, 0x41, 0xb5, 0x56, 0x38, 0x54, 0xca, 0x1f, 0xe1, 0xb4}: "EfiPeiReadOnlyVariable2PpiGuid", efi.GUID{0xf5, 0x70, 0x71, 0x8f, 0x9e, 0x41, 0xae, 0xd3, 0xb0, 0x45, 0x7f, 0xb5, 0xd1, 0x99, 0xbd, 0xa5}: "AmdSocAm4RnPei", efi.GUID{0xf5, 0x79, 0x20, 0x37, 0x70, 0x00, 0x07, 0x49, 0x92, 0x2a, 0x4c, 0x18, 0xa1, 0xf5, 0x62, 0xa2}: "CbsSetupDxeRMB", efi.GUID{0xf5, 0x79, 0xf4, 0x6f, 0x20, 0x61, 0x41, 0x4a, 0xa8, 0xc9, 0xd9, 0x50, 0x0f, 0x7d, 0xf5, 0x94}: "Mdot2Driver", efi.GUID{0xf5, 0x99, 0x30, 0x3e, 0xcc, 0xcb, 0xe8, 0x4a, 0xae, 0xa0, 0x2b, 0x7d, 0x1e, 0x7f, 0x82, 0x94}: "LpssDxe", efi.GUID{0xf5, 0x99, 0xd5, 0xa8, 0x5b, 0xf4, 0x96, 0x43, 0x87, 0x61, 0xe1, 0xc7, 0xf7, 0x22, 0x2a, 0x4e}: "FjPowerOnTimeCounterSmm", efi.GUID{0xf5, 0x9b, 0x60, 0x04, 0xc3, 0xe1, 0xfc, 0x44, 0xe4, 0xde, 0x7f, 0x94, 0x89, 0x36, 0x21, 0x84}: "BiosConnectDaInterfaceSmm", efi.GUID{0xf5, 0xa0, 0x41, 0xd6, 0x7c, 0xcb, 0x46, 0x48, 0xa3, 0x80, 0x1d, 0x01, 0xb4, 0xd9, 0xe3, 0xb9}: "EfiPeiCorePrivate", efi.GUID{0xf5, 0xa2, 0xca, 0x11, 0x52, 0x45, 0xc3, 0x4a, 0x95, 0xd0, 0x8b, 0x5d, 0xb1, 0xff, 0x6d, 0x4f}: "OemDxe", efi.GUID{0xf5, 0xb7, 0xda, 0x5a, 0xe8, 0x4a, 0xb8, 0xfb, 0x8f, 0x44, 0x8c, 0xb7, 0xd8, 0xeb, 0xbf, 0x2f}: "CpuTechSmm", efi.GUID{0xf5, 0xbb, 0x91, 0x11, 0xb9, 0xdc, 0xf4, 0x44, 0x82, 0x7e, 0x95, 0x35, 0x97, 0x44, 0xc9, 0x87}: "PlatformStage2Pei", efi.GUID{0xf5, 0xc2, 0x67, 0xb1, 0x6a, 0xe2, 0xff, 0x4d, 0x8e, 0x1c, 0x08, 0x07, 0xc7, 0xf0, 0x2a, 0x88}: "AmiCcidIoProtocol", efi.GUID{0xf5, 0xd7, 0x37, 0x94, 0x31, 0x6d, 0x94, 0x44, 0x9a, 0x4b, 0xf6, 0xee, 0xb2, 0x1b, 0x6c, 0xc3}: "SioScriptPEI", efi.GUID{0xf5, 0xde, 0xf7, 0xa6, 0xc2, 0x10, 0xbf, 0x4d, 0x9b, 0x48, 0x19, 0x53, 0x88, 0xc5, 0x65, 0x07}: "LANControllerSmm", efi.GUID{0xf5, 0xe3, 0xa1, 0x99, 0x87, 0x08, 0xc7, 0x43, 0xb0, 0x0a, 0xf1, 0x4a, 0x64, 0x6b, 0xc1, 0x42}: "DellSbSmmHooks", efi.GUID{0xf5, 0xf2, 0x51, 0x45, 0x84, 0xc6, 0x27, 0x4f, 0x93, 0x6f, 0xc7, 0xb0, 0x4a, 0x5c, 0x5f, 0xf1}: "SecureBootDXE", efi.GUID{0xf5, 0xf2, 0x59, 0xaf, 0x28, 0x5e, 0x03, 0x4e, 0x80, 0xe2, 0x47, 0x27, 0x54, 0x5a, 0xf8, 0x11}: "PchReset", efi.GUID{0xf5, 0xf4, 0xd1, 0x06, 0x31, 0xb1, 0x7c, 0x4f, 0xa9, 0x83, 0x20, 0xe4, 0xbe, 0x9e, 0x8a, 0x3d}: "DellPSBFuseDxe", efi.GUID{0xf5, 0xfe, 0x35, 0x6b, 0x2f, 0x02, 0x96, 0x45, 0x84, 0x22, 0x59, 0xaf, 0xa2, 0x64, 0xc0, 0x3a}: "WmiRmtApi", efi.GUID{0xf6, 0x03, 0x83, 0xb8, 0x0e, 0x2e, 0xcc, 0x41, 0x85, 0x10, 0xf5, 0x89, 0x2b, 0xf1, 0xd9, 0xd9}: "PlatformVariableInitPei", efi.GUID{0xf6, 0x0b, 0x22, 0x47, 0xd4, 0x19, 0xf8, 0x45, 0xa8, 0x16, 0x46, 0x18, 0xf0, 0x49, 0x64, 0x02}: "OemDxeSample", efi.GUID{0xf6, 0x12, 0x9e, 0x35, 0x41, 0x09, 0xbf, 0x40, 0x8a, 0xd9, 0xbb, 0x53, 0x7f, 0xb1, 0x05, 0x39}: "VariableSmiExportHii", efi.GUID{0xf6, 0x17, 0x53, 0x76, 0x80, 0xf0, 0x61, 0x42, 0x89, 0x26, 0x3f, 0x47, 0xd1, 0x82, 0xbf, 0x64}: "FjTpmLicenseDxe", efi.GUID{0xf6, 0x1a, 0x45, 0xda, 0xd1, 0x88, 0xd7, 0x4f, 0xb8, 0x6e, 0x44, 0xbc, 0x47, 0xee, 0x1f, 0x7e}: "DellStorageAgentsSmm", efi.GUID{0xf6, 0x1b, 0xf0, 0xad, 0xd6, 0x47, 0x5d, 0x49, 0xb9, 0x5b, 0x68, 0x77, 0x77, 0x80, 0x72, 0x14}: "FirmwarePerformancePei", efi.GUID{0xf6, 0x1c, 0xd2, 0x2f, 0xe8, 0xe6, 0xf2, 0x4f, 0xa9, 0xca, 0x3b, 0x9f, 0x00, 0xe9, 0x28, 0x89}: "rmHwA9x4Guid", efi.GUID{0xf6, 0x1d, 0x7a, 0xb5, 0xdb, 0xff, 0x47, 0x42, 0xa3, 0xdf, 0x3a, 0x56, 0x21, 0x76, 0x75, 0x1a}: "UefiDebugLibStdErr", efi.GUID{0xf6, 0x1e, 0xbd, 0x90, 0x6a, 0xf6, 0x4a, 0x4b, 0x98, 0x79, 0xb0, 0x70, 0x1b, 0x99, 0xbc, 0x3c}: "NbBrhRouting", efi.GUID{0xf6, 0x21, 0x94, 0x23, 0x25, 0xf0, 0x9c, 0x42, 0x98, 0x89, 0xab, 0x85, 0x4e, 0x00, 0xee, 0xe6}: "CheckRaid", efi.GUID{0xf6, 0x21, 0xed, 0x35, 0x9a, 0xc0, 0xb7, 0x4c, 0xbf, 0x60, 0xb5, 0xb8, 0x55, 0x00, 0xb5, 0x1e}: "SystemAudioDeviceDxe", efi.GUID{0xf6, 0x2e, 0xa9, 0xcc, 0xb1, 0xf8, 0x0d, 0x41, 0x81, 0x19, 0x6f, 0xfe, 0x49, 0x66, 0xa2, 0x54}: "PrmRasGlobalDataInit", efi.GUID{0xf6, 0x34, 0x0c, 0x1c, 0x80, 0xd3, 0xfa, 0x41, 0xa0, 0x49, 0x8a, 0xd0, 0x6c, 0x1a, 0x66, 0xaa}: "EfiEdidDiscoveredProtocolGuid", efi.GUID{0xf6, 0x38, 0x39, 0xf7, 0x51, 0xb8, 0x4f, 0x49, 0xa0, 0x03, 0x33, 0x1b, 0x49, 0x40, 0x86, 0x05}: "SataDevSleepDxe", efi.GUID{0xf6, 0x3f, 0x58, 0x03, 0x36, 0xcb, 0x40, 0x49, 0x94, 0x7e, 0xb9, 0xb3, 0x9f, 0x4a, 0xfa, 0xf7}: "EfiSmbiosProtocolGuid", efi.GUID{0xf6, 0x3f, 0x5e, 0x66, 0xcc, 0x46, 0xd4, 0x11, 0x9a, 0x38, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d}: "EfiBdsArchProtocolGuid", efi.GUID{0xf6, 0x48, 0xa0, 0xa9, 0xa0, 0x48, 0x14, 0x47, 0xb7, 0xda, 0xa9, 0xad, 0x87, 0xd4, 0xda, 0xc9}: "EfiRestJsonStructureProtocol", efi.GUID{0xf6, 0x4e, 0x66, 0xbc, 0x70, 0x4c, 0xe4, 0x4f, 0xb3, 0x36, 0x83, 0xe2, 0xfc, 0x47, 0xb6, 0x97}: "DellEpsaBin", efi.GUID{0xf6, 0x52, 0xe8, 0x3d, 0xbf, 0x34, 0x45, 0x43, 0xff, 0xff, 0xff, 0xff, 0xcc, 0xe3, 0xa3, 0xee}: "BootFailedDxe", efi.GUID{0xf6, 0x55, 0x6f, 0x6e, 0x74, 0x8f, 0x71, 0x4f, 0x82, 0x64, 0xf1, 0x1b, 0xa0, 0x58, 0x14, 0x41}: "DashPldmBcc", efi.GUID{0xf6, 0x57, 0x7f, 0x87, 0x9b, 0x68, 0xc1, 0x4f, 0xa7, 0xaf, 0x02, 0xdf, 0x7f, 0xd5, 0x36, 0xe8}: "AdlSemaSmm", efi.GUID{0xf6, 0x5b, 0xd7, 0xdd, 0xf9, 0x4c, 0x2c, 0x4a, 0x97, 0x8f, 0xa5, 0xae, 0x65, 0x6b, 0x61, 0xe5}: "CaseOpenPei", efi.GUID{0xf6, 0x68, 0x33, 0x45, 0x85, 0x7c, 0x4a, 0x43, 0xa9, 0x8a, 0x72, 0xd1, 0xb7, 0xff, 0xa9, 0x26}: "EmuIoThunkProtocolGuid", efi.GUID{0xf6, 0x6f, 0x0d, 0xca, 0xa7, 0x62, 0x1f, 0x4b, 0xbb, 0x90, 0x52, 0xee, 0xca, 0x01, 0xa9, 0x9f}: "TCM_MADriver", efi.GUID{0xf6, 0x7e, 0x3f, 0xf4, 0x33, 0x6a, 0x7f, 0x42, 0x96, 0x1b, 0x6c, 0x4f, 0x41, 0x2a, 0x97, 0x7c}: "TraceHubPostCodeHandlerDxe", efi.GUID{0xf6, 0x7f, 0xe1, 0xae, 0x10, 0xb8, 0x8a, 0x4a, 0x9d, 0x4d, 0x8b, 0x9c, 0x32, 0x89, 0xc1, 0xac}: "SmcSwSMI", efi.GUID{0xf6, 0x86, 0x4f, 0x7f, 0xc9, 0xeb, 0x03, 0x46, 0xa4, 0xc2, 0xc7, 0xcc, 0x8b, 0x44, 0x76, 0xdb}: "Heci2BarSaveRestoreGuid", efi.GUID{0xf6, 0x87, 0x30, 0x55, 0xac, 0xba, 0x7f, 0x4d, 0x97, 0xb4, 0x31, 0xd8, 0x17, 0x9a, 0xae, 0x15}: "GetNameInfo", efi.GUID{0xf6, 0x8a, 0x65, 0x8d, 0x8b, 0x17, 0x2b, 0x43, 0x96, 0x92, 0xab, 0xe7, 0x17, 0xd9, 0xbd, 0xa8}: "FchHuashanDsdt", efi.GUID{0xf6, 0x9e, 0xb3, 0x3d, 0xbd, 0x81, 0x4a, 0x4e, 0xa0, 0x51, 0x12, 0xf8, 0xfd, 0xef, 0xd5, 0xc7}: "CertificateStorageSmm", efi.GUID{0xf6, 0x9f, 0x91, 0xd5, 0x08, 0xd7, 0x18, 0x49, 0x87, 0xa0, 0x1b, 0xb2, 0x1b, 0x15, 0x7c, 0x08}: "CaseOpenDxe", efi.GUID{0xf6, 0xa7, 0x0a, 0xc6, 0xd6, 0xe8, 0x56, 0x49, 0x8b, 0xa1, 0xfe, 0x26, 0x29, 0x8f, 0x5e, 0x87}: "EpcBiosDataGuid", efi.GUID{0xf6, 0xa9, 0x68, 0xae, 0x3e, 0x3a, 0xd2, 0x4a, 0x86, 0x9b, 0x27, 0xc9, 0x27, 0xcc, 0x5f, 0xd2}: "DellOA2", efi.GUID{0xf6, 0xab, 0x35, 0xb5, 0x7d, 0x96, 0xf2, 0x43, 0xb4, 0x94, 0xa1, 0xeb, 0x8e, 0x21, 0xa2, 0x8e}: "AppleRomInformation", efi.GUID{0xf6, 0xb1, 0x08, 0x43, 0xf0, 0x60, 0xfe, 0x49, 0x9e, 0x51, 0x3a, 0x25, 0x99, 0x25, 0x15, 0xbf}: "PoofAnimationState0", efi.GUID{0xf6, 0xb4, 0x1b, 0x5e, 0x47, 0x0d, 0xf3, 0x46, 0xa1, 0x8a, 0x41, 0xeb, 0x40, 0x0b, 0xd0, 0xf9}: "DellVirtRtcSmmProtocol", efi.GUID{0xf6, 0xba, 0xa5, 0x15, 0x91, 0x1c, 0x7d, 0x46, 0x9d, 0xfb, 0x31, 0x9d, 0x17, 0x8d, 0x4b, 0xb4}: "UniversalPayloadExtraData", efi.GUID{0xf6, 0xbf, 0x60, 0x53, 0x11, 0x39, 0x95, 0x44, 0xae, 0x3c, 0xb0, 0x2f, 0xf0, 0x04, 0xb5, 0x85}: "DxePciLibI440FxQ35", efi.GUID{0xf6, 0xc7, 0xf8, 0xd8, 0xbb, 0x52, 0xb3, 0x4c, 0xba, 0x5b, 0x06, 0x83, 0x62, 0x8a, 0x2c, 0xec}: "DellDesktopPowerLEDSmm", efi.GUID{0xf6, 0xca, 0x57, 0xe8, 0x46, 0xc0, 0xdc, 0x45, 0xbe, 0x3f, 0xee, 0x07, 0x65, 0xfb, 0xa8, 0x87}: "EfiS3SaveStateProtocolGuid", efi.GUID{0xf6, 0xca, 0xda, 0x2f, 0x9d, 0x66, 0x8c, 0x4f, 0x83, 0x68, 0xc3, 0xb3, 0xe6, 0xe3, 0x25, 0x35}: "UsbBbs", efi.GUID{0xf6, 0xcb, 0xca, 0xcc, 0xdd, 0x0b, 0x60, 0x44, 0x92, 0x7d, 0xd1, 0xd4, 0xf2, 0x1e, 0xa6, 0xea}: "DellBiosDRAMChipLocation", efi.GUID{0xf6, 0xce, 0x1c, 0xdf, 0x01, 0xf3, 0x63, 0x4a, 0x96, 0x61, 0xfc, 0x60, 0x30, 0xdc, 0xc8, 0x80}: "SecMain", efi.GUID{0xf6, 0xd3, 0x23, 0xa0, 0x97, 0xf2, 0x07, 0x43, 0x85, 0x52, 0xe6, 0x57, 0x2b, 0x30, 0xb5, 0x20}: "menu_mid_mid", efi.GUID{0xf6, 0xd4, 0x69, 0x61, 0x59, 0x06, 0xb5, 0x4f, 0xb0, 0x3c, 0x36, 0x45, 0xd8, 0xc8, 0x0d, 0xc8}: "AmiTseOemPortingVar21", efi.GUID{0xf6, 0xd9, 0x29, 0xb6, 0x90, 0xd3, 0xb3, 0x4f, 0xaa, 0x0a, 0xd2, 0x48, 0xc7, 0x3e, 0xa8, 0xf6}: "SmcOobMd5", efi.GUID{0xf6, 0xea, 0x32, 0x6e, 0xd1, 0x32, 0xe0, 0x43, 0xb6, 0xe1, 0xdc, 0xf6, 0xda, 0x81, 0xdf, 0x76}: "LenovoN25Q064FlashPartSmm", efi.GUID{0xf6, 0xec, 0x6e, 0x9b, 0xdc, 0xfb, 0xb6, 0x4d, 0x95, 0x62, 0xd2, 0x5f, 0x40, 0xd5, 0x76, 0x61}: "MicrocodeLoaderPpi", efi.GUID{0xf6, 0xed, 0xa6, 0x11, 0xbe, 0xa9, 0x6d, 0x42, 0xa6, 0xcc, 0xb2, 0x2f, 0xe5, 0x1d, 0x92, 0x24}: "PciHotPlugInitDxe", efi.GUID{0xf6, 0xf0, 0xa3, 0x13, 0x4a, 0x26, 0xf0, 0x3e, 0xf2, 0xe0, 0xde, 0xc5, 0x12, 0x34, 0x2f, 0x34}: "EfiPcdProtocolGuid", efi.GUID{0xf6, 0xf1, 0x4e, 0x66, 0xbf, 0x19, 0x98, 0x44, 0xab, 0x6a, 0xfc, 0x05, 0x72, 0xfb, 0x98, 0x51}: "SmmGenericElogProtocol", efi.GUID{0xf6, 0xf1, 0xae, 0xa6, 0x5a, 0xf2, 0x82, 0x40, 0xaf, 0x39, 0x22, 0x29, 0xbc, 0xf5, 0xa6, 0xe1}: "AmtStatusCodePei", efi.GUID{0xf7, 0x10, 0xbf, 0x72, 0x2f, 0xdf, 0x3c, 0x41, 0xa2, 0x7c, 0xc4, 0x1f, 0xd9, 0x71, 0x07, 0x22}: "PdHostInterfaceCypressPei", efi.GUID{0xf7, 0x12, 0xab, 0xc1, 0xaa, 0x74, 0x8d, 0x40, 0xa2, 0xf4, 0xc6, 0xce, 0xfd, 0x17, 0x98, 0x71}: "EdkiiMigratedFvInfo", efi.GUID{0xf7, 0x13, 0x23, 0xf0, 0x1f, 0x58, 0x31, 0x4f, 0xb0, 0x9c, 0xc1, 0xba, 0x2f, 0xc5, 0x87, 0x13}: "HpDriveWipe", efi.GUID{0xf7, 0x13, 0x23, 0xf0, 0x1f, 0x58, 0x31, 0x4f, 0xb0, 0x9c, 0xc1, 0xba, 0x2f, 0xc5, 0x87, 0x14}: "LoadHpDriveWipeDxe", efi.GUID{0xf7, 0x1a, 0x1b, 0xa3, 0x9b, 0x3a, 0x4a, 0x42, 0x86, 0x36, 0x98, 0x85, 0xe9, 0xde, 0x06, 0xf6}: "ASUSPei", efi.GUID{0xf7, 0x29, 0x18, 0x1f, 0xd7, 0x54, 0x08, 0x4a, 0x94, 0xd3, 0x8d, 0xb4, 0x12, 0x78, 0x25, 0x31}: "SioPS2PowerOn", efi.GUID{0xf7, 0x30, 0x3d, 0xd0, 0x38, 0x05, 0xde, 0x44, 0x95, 0x68, 0xb7, 0x22, 0xbc, 0x76, 0x27, 0xc9}: "H19UpdateACPITables", efi.GUID{0xf7, 0x35, 0x47, 0x5f, 0xf9, 0xdc, 0xfd, 0x40, 0x88, 0x58, 0x02, 0x6f, 0x93, 0x19, 0x42, 0xa9}: "DxeIchInit", efi.GUID{0xf7, 0x40, 0xa0, 0x2a, 0xa3, 0xa1, 0xea, 0x4e, 0x89, 0xca, 0x70, 0x7e, 0x1a, 0x7e, 0x86, 0xb8}: "Int15Smm", efi.GUID{0xf7, 0x42, 0x20, 0x1b, 0xe0, 0x5c, 0x60, 0x43, 0xb9, 0x8f, 0x29, 0x73, 0xca, 0xe2, 0x2b, 0x97}: "FjSysmanTeutatesSmmBin", efi.GUID{0xf7, 0x49, 0x77, 0x42, 0xad, 0x73, 0x63, 0x45, 0xb5, 0x0d, 0x9e, 0x62, 0x56, 0x3e, 0x27, 0xdf}: "LilyMilestoneDxe", efi.GUID{0xf7, 0x4c, 0xd2, 0x7f, 0xf6, 0x2b, 0x47, 0x45, 0x84, 0x41, 0x84, 0x5e, 0x79, 0x3c, 0x61, 0x9d}: "AmdSocSp5BrhDxe", efi.GUID{0xf7, 0x4d, 0x1b, 0x63, 0xea, 0xba, 0x1f, 0x4c, 0xa0, 0x61, 0x5b, 0x64, 0x62, 0x65, 0x28, 0x22}: "DellDiagsDxe", efi.GUID{0xf7, 0x4e, 0x32, 0x28, 0xb3, 0x6b, 0xab, 0x4b, 0xa2, 0xec, 0x18, 0xd5, 0xf7, 0x94, 0x0f, 0x23}: "FjMaptDxe", efi.GUID{0xf7, 0x51, 0xb7, 0x60, 0xb9, 0x43, 0x38, 0x42, 0x88, 0x19, 0x6b, 0x86, 0x2b, 0x68, 0xc8, 0x89}: "PhPlatformDxe", efi.GUID{0xf7, 0x68, 0x96, 0xcf, 0xf0, 0xb0, 0x7f, 0x4d, 0xb4, 0x1e, 0xae, 0xc7, 0x94, 0xee, 0xc7, 0xfc}: "LenovoSystemAcpiSmiServicesDxe2", efi.GUID{0xf7, 0x73, 0x51, 0xd0, 0x83, 0x76, 0x35, 0x4c, 0x84, 0x3a, 0x39, 0xb3, 0x07, 0x14, 0x2e, 0x95}: "OemFwUpdateGuid", efi.GUID{0xf7, 0x75, 0x7e, 0xe3, 0x5c, 0x01, 0x3d, 0x4b, 0x9d, 0xe8, 0xbe, 0x59, 0x5f, 0x8b, 0x06, 0x62}: "Amd3rdPartyDxe", efi.GUID{0xf7, 0x7f, 0x17, 0xfa, 0xc7, 0x1f, 0x8d, 0x45, 0xa3, 0x58, 0xd9, 0xd6, 0x2a, 0xe6, 0x1c, 0xec}: "PeimEntryPoint", efi.GUID{0xf7, 0x84, 0x11, 0xfa, 0x5d, 0x7e, 0x82, 0x4e, 0xb3, 0x0e, 0xfe, 0xa4, 0x76, 0x77, 0xa9, 0x4e}: "I226_PXE", efi.GUID{0xf7, 0x86, 0xb3, 0xdf, 0x00, 0xe1, 0xad, 0x43, 0x9c, 0x9a, 0xed, 0x90, 0xd0, 0x8a, 0x5e, 0x12}: "EfiIpSecProtocolGuid", efi.GUID{0xf7, 0x89, 0x3c, 0x2e, 0x19, 0xa5, 0x70, 0x45, 0xab, 0x2b, 0x91, 0xac, 0x50, 0x3c, 0xb3, 0x12}: "AmdCpmOemInitPeim", efi.GUID{0xf7, 0x8c, 0x21, 0xbb, 0x8f, 0xa5, 0x4c, 0x41, 0x97, 0x2c, 0x6e, 0xa3, 0x7f, 0xc5, 0xc8, 0x62}: "OemAdpTypeDxe", efi.GUID{0xf7, 0x97, 0x89, 0x53, 0x2e, 0x4b, 0x6f, 0x4e, 0x8a, 0xf1, 0x0e, 0x8c, 0xf1, 0xaa, 0x9c, 0x69}: "PlatformWrapperDxe", efi.GUID{0xf7, 0x9d, 0xe5, 0xe9, 0x38, 0x5d, 0x97, 0x40, 0x90, 0xd5, 0x83, 0x79, 0xe9, 0xa2, 0x62, 0xea}: "MsiSG", efi.GUID{0xf7, 0xb3, 0x05, 0x33, 0xcf, 0x0a, 0xe9, 0x49, 0x91, 0x24, 0x34, 0x17, 0x60, 0xf4, 0x67, 0xeb}: "AmdNbioBaseRplDxe", efi.GUID{0xf7, 0xc1, 0x7c, 0x16, 0xab, 0xf4, 0xcc, 0x46, 0x87, 0x73, 0x62, 0x78, 0x05, 0x6c, 0x14, 0xeb}: "BootMaintDxe", efi.GUID{0xf7, 0xc2, 0x0a, 0x43, 0xc6, 0xee, 0x93, 0x40, 0x94, 0xf7, 0x9f, 0x82, 0x5a, 0x7c, 0x1c, 0x40}: "SdDxe", efi.GUID{0xf7, 0xc9, 0x40, 0xb0, 0x6a, 0x5f, 0x67, 0x4b, 0xa7, 0xe5, 0x4e, 0xad, 0x94, 0x12, 0xf9, 0x20}: "AmdFabricBrhDxe", efi.GUID{0xf7, 0xd2, 0x1e, 0x0d, 0x2b, 0xe9, 0x62, 0x45, 0x92, 0xdd, 0x5c, 0x82, 0xec, 0x91, 0x7e, 0xae}: "CrbPei", efi.GUID{0xf7, 0xd2, 0x1e, 0x0d, 0x2b, 0xe9, 0x62, 0x45, 0x92, 0xdd, 0x5c, 0x82, 0xec, 0x91, 0x7e, 0xbf}: "EcsPlatformPei", efi.GUID{0xf7, 0xd3, 0x9f, 0x6b, 0xdf, 0x16, 0xe8, 0x45, 0xbd, 0x39, 0xb9, 0x4a, 0x66, 0x54, 0x1a, 0x5d}: "EdkiiPiSmmMemoryAttributesTableGuid", efi.GUID{0xf7, 0xd8, 0x51, 0x46, 0x4e, 0x87, 0x95, 0x48, 0xb3, 0xf3, 0x4f, 0xad, 0x23, 0x1c, 0x18, 0x25}: "AmdRaidRecovery", efi.GUID{0xf7, 0xd8, 0xc7, 0xb2, 0x7f, 0x4e, 0xa9, 0x46, 0x8c, 0xde, 0xf9, 0xfb, 0x6d, 0x27, 0x62, 0x78}: "EfiAmiDebugRxPkgTokenSpace", efi.GUID{0xf7, 0xd9, 0xba, 0xa0, 0x78, 0xab, 0x1b, 0x49, 0xb5, 0x83, 0xc5, 0x2b, 0x7f, 0x84, 0xb9, 0xe0}: "SmmControl", efi.GUID{0xf7, 0xdd, 0xd9, 0x7b, 0x83, 0x8b, 0x8e, 0x48, 0xae, 0xc9, 0x24, 0xc7, 0x86, 0x10, 0x28, 0x9c}: "VirtioFsDxe", efi.GUID{0xf7, 0xde, 0x1b, 0x53, 0x15, 0xef, 0x27, 0x4c, 0x84, 0x41, 0x11, 0x0e, 0x61, 0xb4, 0x89, 0x33}: "HpPwdPresentModule", efi.GUID{0xf7, 0xe4, 0x1d, 0x56, 0x8e, 0xbc, 0x9a, 0x4e, 0xa7, 0x41, 0x3e, 0x0d, 0x1a, 0x73, 0x56, 0x21}: "DeepSleepSmm", efi.GUID{0xf7, 0xea, 0x44, 0x5c, 0x0b, 0xff, 0x2e, 0x46, 0x87, 0xf4, 0x2d, 0x46, 0x46, 0x0b, 0xf4, 0x8f}: "TraceHubStatusCodeHandlerSmm", efi.GUID{0xf7, 0xee, 0xe9, 0xd6, 0xc8, 0x91, 0xe3, 0x4c, 0xad, 0xea, 0xea, 0xaa, 0xf3, 0xb4, 0xeb, 0x04}: "DellMeLocalFwUpdate2Dxe_ME180", efi.GUID{0xf7, 0xef, 0xf6, 0x28, 0x9f, 0x0a, 0xe3, 0x4b, 0xb1, 0x2e, 0xb5, 0x9a, 0x04, 0x26, 0x6a, 0xba}: "MeIgnitionFsp", efi.GUID{0xf7, 0xf1, 0xaf, 0x8a, 0x11, 0xd0, 0xe5, 0x4a, 0x83, 0x24, 0xdf, 0xa4, 0x70, 0xf7, 0x5d, 0x33}: "AsfDxe", efi.GUID{0xf7, 0xf1, 0xb3, 0x63, 0xc9, 0x1f, 0xf0, 0x4f, 0x88, 0xf6, 0x00, 0x70, 0x6e, 0xc8, 0x6e, 0xd7}: "RTS5264Dxe", efi.GUID{0xf7, 0xf8, 0xf4, 0xe6, 0x92, 0x49, 0xb2, 0x47, 0x83, 0x02, 0x85, 0x08, 0x74, 0x5e, 0x4a, 0x23}: "OemPir", efi.GUID{0xf7, 0xfd, 0x66, 0xbf, 0x4c, 0xf6, 0x11, 0x4b, 0x8a, 0xb7, 0xf8, 0x43, 0xaa, 0x2a, 0x8b, 0xea}: "AmiCapsuleHob", efi.GUID{0xf7, 0xfe, 0x51, 0x5b, 0x9d, 0xc7, 0x34, 0x44, 0x8f, 0x1b, 0xaa, 0x62, 0xde, 0x3e, 0x2c, 0x64}: "EfiDMArGenericErrorSectionGuid", efi.GUID{0xf8, 0x00, 0xcb, 0x30, 0x45, 0x2e, 0x18, 0x4c, 0xbd, 0x3e, 0xee, 0x7a, 0xd3, 0xc0, 0x25, 0x76}: "SECWDTPEI", efi.GUID{0xf8, 0x09, 0x88, 0xe5, 0xc1, 0xfb, 0xe2, 0x48, 0x88, 0x3a, 0xa3, 0x0f, 0xdc, 0x4b, 0x44, 0x1e}: "EfiIfrFrontPageGuid", efi.GUID{0xf8, 0x0d, 0xec, 0x5b, 0x66, 0xb4, 0x42, 0x44, 0x91, 0xf2, 0x72, 0x1d, 0xab, 0x8f, 0x7d, 0xa1}: "AudioSmm", efi.GUID{0xf8, 0x14, 0x50, 0xcf, 0xbe, 0x2e, 0x57, 0x4d, 0xaa, 0x83, 0xd7, 0xa3, 0x60, 0x73, 0x71, 0xea}: "DellFlashRecoveryImage2Pei", efi.GUID{0xf8, 0x14, 0x5c, 0xc5, 0xd0, 0x8e, 0xcc, 0x48, 0x98, 0x36, 0xdd, 0xf6, 0xa3, 0xc5, 0xea, 0x11}: "InstallRavenPlatformSsdt", efi.GUID{0xf8, 0x15, 0x10, 0x8c, 0x3a, 0x48, 0x19, 0x49, 0xa0, 0x78, 0xea, 0x33, 0x8f, 0x3c, 0x7d, 0xd4}: "SmmCommBuffer", efi.GUID{0xf8, 0x1a, 0x55, 0x15, 0xa3, 0x56, 0xdf, 0x43, 0xb0, 0xbd, 0x22, 0x42, 0x2a, 0xd2, 0xf0, 0x8d}: "DeviceStatusDxe", efi.GUID{0xf8, 0x22, 0xf6, 0xdf, 0xa6, 0x8b, 0x15, 0x47, 0xb5, 0x8b, 0xc8, 0x40, 0xc1, 0xd6, 0xfa, 0xf4}: "MsSysGrdTpmNvDef", efi.GUID{0xf8, 0x2c, 0x6f, 0xb0, 0x33, 0x84, 0xa3, 0x41, 0xb5, 0x13, 0xb1, 0x15, 0xc8, 0xe7, 0xeb, 0x8f}: "BiosUpdateExtendedPlatformPolicyPei", efi.GUID{0xf8, 0x3a, 0xde, 0x6f, 0xad, 0x37, 0xfc, 0x43, 0xb7, 0x28, 0xf4, 0xd3, 0x41, 0xf3, 0x92, 0x40}: "PhoenixSmmWatchdogTimerProtocolGuid", efi.GUID{0xf8, 0x3e, 0x22, 0xdd, 0x1b, 0x6d, 0x0a, 0x49, 0xa5, 0x3e, 0xba, 0x86, 0xfa, 0xae, 0xb7, 0x78}: "MmcMediaDevice", efi.GUID{0xf8, 0x4d, 0x50, 0x76, 0x28, 0x9d, 0x99, 0x40, 0x8e, 0xc8, 0x5a, 0x67, 0xcb, 0xe8, 0x86, 0xb0}: "EsataBootControlDxe", efi.GUID{0xf8, 0x4f, 0x46, 0x32, 0x81, 0xea, 0x4f, 0x44, 0xa0, 0xe8, 0xb8, 0x48, 0x82, 0xb8, 0x4d, 0x1c}: "FjGabiSettingsApiItemAccessDxe", efi.GUID{0xf8, 0x55, 0xcf, 0x29, 0x75, 0xb6, 0x5d, 0x4f, 0x8f, 0x2f, 0xb8, 0x7a, 0x3e, 0xcf, 0xd0, 0x63}: "CsmVideo", efi.GUID{0xf8, 0x5f, 0x26, 0x62, 0xbc, 0xa0, 0xa8, 0x46, 0x94, 0x7e, 0x67, 0xfe, 0xc0, 0xd7, 0x90, 0x7b}: "AmdAcpiHmatService", efi.GUID{0xf8, 0x60, 0xad, 0xf7, 0xa8, 0xef, 0xa3, 0x44, 0x91, 0x13, 0x23, 0x1f, 0x39, 0x9e, 0xb4, 0xc7}: "EfiKmsFormatMdc2128Guid", efi.GUID{0xf8, 0x65, 0x25, 0xbe, 0x13, 0xdc, 0xac, 0x45, 0xab, 0x4b, 0x08, 0xb4, 0xfe, 0xde, 0x5a, 0x4d}: "ComputeHDDPHashProtocol", efi.GUID{0xf8, 0x6a, 0x2c, 0x35, 0x5b, 0x31, 0xd6, 0x4b, 0xb0, 0x4f, 0x31, 0xd4, 0xed, 0x1e, 0xbe, 0x57}: "CbSupportPeim", efi.GUID{0xf8, 0x78, 0x47, 0x61, 0x5f, 0xb8, 0x8e, 0x43, 0x96, 0x74, 0x52, 0xde, 0x7e, 0x32, 0xea, 0xa2}: "ChargeLedDebugDxe", efi.GUID{0xf8, 0x82, 0xf5, 0x70, 0x71, 0x1d, 0x80, 0x44, 0xa6, 0x4e, 0x97, 0x55, 0xf5, 0xa9, 0xe2, 0x25}: "AmdMemSspSp3Pei", efi.GUID{0xf8, 0x85, 0x43, 0xce, 0x0c, 0xda, 0x8f, 0x4e, 0x92, 0x11, 0xa7, 0xf9, 0x54, 0x72, 0x1d, 0x2e}: "FjLvdsInit", efi.GUID{0xf8, 0x8c, 0xb3, 0x8f, 0x5d, 0xd2, 0x55, 0x48, 0x8f, 0x15, 0xc0, 0x7a, 0x0f, 0x6b, 0x8e, 0xa7}: "BiosReservedMemoryInit", efi.GUID{0xf8, 0x90, 0x2e, 0xf8, 0x19, 0x5c, 0x28, 0x41, 0xba, 0x8b, 0x0e, 0xea, 0xbf, 0x7f, 0x32, 0xef}: "RomHoleReplacementPostFlag", efi.GUID{0xf8, 0x95, 0xde, 0x95, 0x15, 0xa2, 0xc3, 0x48, 0x81, 0x4a, 0x40, 0xf0, 0x7b, 0x92, 0x5d, 0x24}: "AmdMemRestoreDxe", efi.GUID{0xf8, 0x98, 0x9a, 0x7c, 0x2b, 0x2b, 0x27, 0x40, 0x8f, 0x16, 0xf7, 0xd2, 0x77, 0xd5, 0x80, 0x25}: "IntelBootGuardKeyManifest", efi.GUID{0xf8, 0xa6, 0x16, 0xb7, 0xa1, 0xf3, 0x8e, 0x4b, 0x85, 0x82, 0x5a, 0x30, 0x3f, 0x1c, 0xdd, 0x64}: "PchSpiWrap", efi.GUID{0xf8, 0xa8, 0xe4, 0x87, 0x4a, 0xb7, 0xb5, 0x40, 0xb0, 0x19, 0xe1, 0x0a, 0x5d, 0xe1, 0x12, 0x36}: "VbiosHookSmm", efi.GUID{0xf8, 0xb1, 0x58, 0xc3, 0x88, 0x8a, 0xb6, 0x40, 0x89, 0xbb, 0x28, 0xec, 0xd6, 0xed, 0xdb, 0x24}: "PxeDriver", efi.GUID{0xf8, 0xb9, 0xd8, 0xaa, 0x83, 0x2c, 0x4b, 0x4e, 0x96, 0xe8, 0xc5, 0xb8, 0xb8, 0xac, 0x56, 0xbf}: "JedecNvDimmSMM", efi.GUID{0xf8, 0xc1, 0x23, 0x0f, 0xac, 0x4b, 0x0c, 0x47, 0xb6, 0xb8, 0xb3, 0x92, 0xd5, 0x44, 0x29, 0x0a}: "FmpCapsuleUpdate", efi.GUID{0xf8, 0xc7, 0x23, 0x13, 0xd5, 0xda, 0x26, 0x41, 0xa5, 0x4b, 0x7a, 0x05, 0xfb, 0xf4, 0x15, 0x15}: "SmmAccess", efi.GUID{0xf8, 0xc9, 0xc1, 0x32, 0x3f, 0xd5, 0xc8, 0x41, 0x94, 0xd0, 0xf6, 0x73, 0x9f, 0x23, 0x10, 0x11}: "BiosExtensionLoader", efi.GUID{0xf8, 0xca, 0x93, 0x28, 0x38, 0xb6, 0xd6, 0x41, 0x88, 0x64, 0xd9, 0x24, 0xd1, 0x89, 0xc0, 0xe8}: "SafeBatteryModeDxe", efi.GUID{0xf8, 0xe0, 0x4a, 0x1b, 0x1f, 0xed, 0xd1, 0x4f, 0x9b, 0x18, 0xb0, 0x82, 0x29, 0x0f, 0x86, 0xf5}: "EfiPlatformTypeLightningRidgeExrpProtocol", efi.GUID{0xf8, 0xe0, 0xf5, 0x2d, 0x9f, 0x46, 0x30, 0x47, 0x98, 0x3e, 0xa7, 0x52, 0x0f, 0xcf, 0x71, 0x08}: "CsmLoader", efi.GUID{0xf8, 0xe4, 0xea, 0xb0, 0x04, 0x9a, 0x6d, 0x4c, 0xa7, 0x48, 0x79, 0x3d, 0xaa, 0x0f, 0x65, 0xdf}: "TlsAuthConfigGuid", efi.GUID{0xf8, 0xe6, 0xb3, 0xa3, 0xca, 0xef, 0xc1, 0x4b, 0x88, 0xfb, 0xcb, 0x87, 0x33, 0x9b, 0x25, 0x79}: "EfiKmsFormatGeneric160Guid", efi.GUID{0xf8, 0xf2, 0xe2, 0x7d, 0x27, 0xb6, 0x1c, 0x44, 0xb3, 0x52, 0x5b, 0x02, 0xee, 0x03, 0x5c, 0x47}: "LenovoAIOFmpDxe", efi.GUID{0xf9, 0x00, 0xe7, 0x7c, 0x44, 0xbb, 0x57, 0x41, 0x96, 0x55, 0xdc, 0xcc, 0x39, 0x43, 0x2c, 0x1c}: "FjKbcDxe", efi.GUID{0xf9, 0x0e, 0x6e, 0xec, 0x02, 0x46, 0x83, 0x48, 0xb7, 0xad, 0x48, 0xc4, 0xcb, 0x83, 0x22, 0xc8}: "OtaStorageEfiDxeDriver", efi.GUID{0xf9, 0x11, 0x93, 0x25, 0x68, 0xa2, 0xc9, 0x46, 0x8d, 0xb4, 0x79, 0xac, 0xfb, 0x2b, 0x7d, 0xc1}: "EarlyDevices", efi.GUID{0xf9, 0x13, 0xb0, 0x63, 0x3c, 0x6a, 0x6b, 0x41, 0x8f, 0xb2, 0x3e, 0x03, 0xbb, 0x75, 0xc1, 0x25}: "DellSmbiosDxe", efi.GUID{0xf9, 0x14, 0x82, 0x8b, 0xdb, 0x4a, 0xdd, 0x47, 0xac, 0x62, 0x83, 0x13, 0xc5, 0x37, 0xe9, 0xfa}: "SmmBasePeim", efi.GUID{0xf9, 0x15, 0x96, 0x3f, 0xd3, 0x1d, 0x85, 0x41, 0x92, 0x0d, 0x8d, 0x0d, 0x5b, 0x23, 0xd3, 0x6c}: "fTPMInit", efi.GUID{0xf9, 0x18, 0xc4, 0xc1, 0x1d, 0x59, 0x1c, 0x46, 0x82, 0xa2, 0xb9, 0xcd, 0x96, 0xdf, 0xea, 0x86}: "LegacyInterrupt", efi.GUID{0xf9, 0x1a, 0xee, 0xa2, 0xdb, 0xcf, 0x73, 0x4f, 0x82, 0x9f, 0x3d, 0x2c, 0xf7, 0xe5, 0x14, 0x72}: "DellBoardPolicyDxe", efi.GUID{0xf9, 0x1d, 0xab, 0xf6, 0xcd, 0x12, 0x80, 0x48, 0xac, 0x0f, 0xd0, 0xde, 0x71, 0xcf, 0x89, 0xc0}: "OpromUpdateDxeHedtCRB", efi.GUID{0xf9, 0x21, 0x17, 0xf1, 0x68, 0x1a, 0xeb, 0x4f, 0xbb, 0x25, 0x55, 0xb6, 0xf7, 0xa1, 0xae, 0x74}: "LEMProgressBarProtocol", efi.GUID{0xf9, 0x28, 0xe3, 0x87, 0xa5, 0x93, 0x75, 0x43, 0xba, 0x69, 0x93, 0xa7, 0xa7, 0x7a, 0x5d, 0x9b}: "LenovoInitMePolicy", efi.GUID{0xf9, 0x29, 0xf2, 0x47, 0x16, 0xc3, 0xa3, 0x41, 0x9f, 0x39, 0x69, 0xee, 0x22, 0xa4, 0xe8, 0xa8}: "LenovoEDU", efi.GUID{0xf9, 0x31, 0x15, 0x9b, 0x32, 0xfb, 0xac, 0x49, 0xa8, 0xcb, 0xc7, 0x8b, 0x11, 0xdc, 0x74, 0x6b}: "RTL8153", efi.GUID{0xf9, 0x3b, 0xb6, 0x9f, 0x22, 0xb5, 0x03, 0x42, 0x9a, 0x53, 0x20, 0xec, 0x85, 0x4a, 0x31, 0x2a}: "DellDaNonVolitileStorage", efi.GUID{0xf9, 0x3f, 0x1c, 0x2e, 0x75, 0xdc, 0xc5, 0x41, 0xbd, 0x48, 0x26, 0x08, 0x7b, 0x5d, 0xc9, 0x2a}: "EdkiiVariableStorageIoCompletionProtocolGuid", efi.GUID{0xf9, 0x41, 0x96, 0x18, 0x75, 0x4f, 0x3f, 0x42, 0x94, 0x27, 0x64, 0x57, 0xe8, 0xed, 0x09, 0x5d}: "DashSmm", efi.GUID{0xf9, 0x4d, 0x24, 0x0d, 0xe3, 0x6c, 0x33, 0x41, 0xa1, 0xcf, 0x53, 0x20, 0x0a, 0xb6, 0x63, 0xac}: "FspsWrapperPeim", efi.GUID{0xf9, 0x61, 0x29, 0xef, 0xd0, 0x87, 0x9e, 0x4e, 0xa3, 0xb1, 0xb1, 0x4f, 0xfa, 0x8d, 0x34, 0x7c}: "FjUsbTypeCPowerLimitDxe", efi.GUID{0xf9, 0x64, 0x1f, 0x59, 0xb8, 0x1c, 0x29, 0x40, 0x88, 0x68, 0xf5, 0xa2, 0xc0, 0xcf, 0x36, 0x00}: "I2cPlatformDxe", efi.GUID{0xf9, 0x6f, 0x05, 0x6e, 0x95, 0xc6, 0x64, 0x43, 0x9e, 0x2c, 0x61, 0x26, 0xf5, 0xce, 0xea, 0xae}: "EfiPeiFirmwareVolumeInfoMeasurementExcludedPpiGuid", efi.GUID{0xf9, 0x72, 0xbd, 0x9d, 0xfc, 0xbd, 0x4e, 0x4a, 0x86, 0x2b, 0x33, 0x1f, 0x91, 0x98, 0x32, 0x34}: "SetupVarStructCheck", efi.GUID{0xf9, 0x77, 0xcc, 0x5e, 0x79, 0xab, 0x0e, 0x4e, 0x90, 0xd3, 0x79, 0xc3, 0x1b, 0x61, 0xb7, 0x78}: "UsbMouseSmm", efi.GUID{0xf9, 0x87, 0x70, 0x2c, 0x14, 0xb4, 0x69, 0x49, 0xb6, 0x16, 0x6b, 0x13, 0xbf, 0xec, 0x0e, 0x38}: "FjSystemResetSmm", efi.GUID{0xf9, 0x8a, 0xae, 0x17, 0x44, 0x66, 0x42, 0x43, 0xa7, 0x86, 0x4c, 0xa6, 0x96, 0x45, 0xd1, 0x37}: "HspFtpmAcpi", efi.GUID{0xf9, 0x8e, 0x34, 0x4e, 0x2d, 0xf0, 0xfb, 0x4d, 0x84, 0x7c, 0xfc, 0x5c, 0xa7, 0x55, 0xe4, 0x26}: "FchSmmDispatcher", efi.GUID{0xf9, 0x97, 0x4e, 0x4e, 0xff, 0x63, 0xda, 0x4b, 0x90, 0xbb, 0xc6, 0xf9, 0x43, 0xfa, 0x51, 0x00}: "PlatformStatusCodeHandlerSmm2", efi.GUID{0xf9, 0x99, 0xc4, 0x2e, 0x37, 0x03, 0xa1, 0x4d, 0x91, 0xca, 0x6b, 0xc4, 0xe8, 0xc0, 0x3d, 0xa2}: "Mtftp6Dxe", efi.GUID{0xf9, 0x9b, 0xf5, 0x1c, 0xf6, 0xe3, 0x9d, 0x4d, 0xbb, 0x94, 0x8b, 0x85, 0x72, 0x78, 0xbb, 0xc6}: "GnbDxe", efi.GUID{0xf9, 0x9d, 0x5c, 0xe1, 0x62, 0xfc, 0xb0, 0x47, 0x86, 0x9b, 0xff, 0xb4, 0x1b, 0xc6, 0xea, 0x90}: "DisplayLinkPxe", efi.GUID{0xf9, 0xa3, 0x4e, 0xd1, 0xd2, 0x8b, 0xa3, 0x49, 0xa6, 0x36, 0xc6, 0xf6, 0xc0, 0x80, 0x37, 0xd5}: "AmdPspDxeV2Ssp", efi.GUID{0xf9, 0xaa, 0xc4, 0xd1, 0xb1, 0xaa, 0xee, 0x4a, 0xac, 0xac, 0xd6, 0x8a, 0xef, 0x05, 0xf0, 0xd5}: "UsraLibNull", efi.GUID{0xf9, 0xab, 0xd6, 0x33, 0xfb, 0x6c, 0xfe, 0x4f, 0x9e, 0x68, 0x6f, 0xc6, 0x3f, 0xe6, 0x02, 0x52}: "AmdPspIntrusionDetectionDxe", efi.GUID{0xf9, 0xb4, 0xe9, 0x51, 0x5d, 0x55, 0x6c, 0x47, 0x8b, 0xb5, 0xbd, 0x18, 0xd9, 0xa6, 0x88, 0x78}: "EfiAmiSioProtocolGuid", efi.GUID{0xf9, 0xbc, 0xb3, 0x0f, 0x1d, 0x0a, 0x98, 0x45, 0xa5, 0x21, 0xe5, 0xc8, 0x4e, 0x95, 0xd9, 0x7a}: "EfiTraceHubStatusCodeHandlePei", efi.GUID{0xf9, 0xbe, 0xe8, 0x38, 0x26, 0xe5, 0x2b, 0x49, 0x99, 0x0a, 0x51, 0x74, 0x28, 0xb3, 0x7d, 0x06}: "FmpDxe", efi.GUID{0xf9, 0xdf, 0x22, 0x39, 0x92, 0xc8, 0xeb, 0x45, 0xa4, 0xcc, 0x4f, 0x4e, 0xa2, 0xfc, 0xf0, 0x5b}: "AicCcgFwUpdate", efi.GUID{0xf9, 0xdf, 0xf1, 0xe7, 0xb6, 0xda, 0x8a, 0x49, 0x9a, 0xdf, 0x57, 0xf3, 0x44, 0xed, 0xdf, 0x57}: "UfsPassThruDxe", efi.GUID{0xf9, 0xe4, 0xf4, 0x5d, 0xce, 0x9b, 0x38, 0x4c, 0x9d, 0x9c, 0x8d, 0xfe, 0x61, 0x68, 0x7a, 0xa5}: "UfsEraseDxe", efi.GUID{0xf9, 0xe5, 0x1b, 0xe4, 0x41, 0xec, 0x4e, 0x45, 0xb1, 0x25, 0xa5, 0x0e, 0xe1, 0x17, 0xca, 0x02}: "AmdMemS3CzDxe", efi.GUID{0xf9, 0xff, 0xca, 0xc8, 0xe0, 0xc6, 0x43, 0x44, 0xb9, 0x6f, 0x45, 0xfe, 0x2a, 0xd4, 0x80, 0xcd}: "IsHdpRequiredPostFlag", efi.GUID{0xfa, 0x04, 0x4f, 0xe1, 0x06, 0x87, 0x53, 0x43, 0x92, 0xf2, 0x9c, 0x24, 0x24, 0x74, 0x6f, 0x9f}: "AdvancedFormSet", efi.GUID{0xfa, 0x0a, 0x49, 0x4b, 0xc7, 0xf1, 0x7a, 0x48, 0x88, 0x12, 0xef, 0x2d, 0xa0, 0xce, 0xe9, 0x2c}: "AmdFabricMdnDxe", efi.GUID{0xfa, 0x0e, 0x6b, 0x70, 0x68, 0x87, 0xb6, 0x44, 0x8c, 0xb2, 0x46, 0x9b, 0x47, 0xa8, 0x0c, 0x47}: "LenovoFidoCp", efi.GUID{0xfa, 0x12, 0xab, 0x4f, 0xd5, 0x21, 0xa2, 0x42, 0x82, 0x60, 0xe0, 0xcf, 0xa5, 0x0c, 0x89, 0x9b}: "MonolithicCapsuleDxe", efi.GUID{0xfa, 0x16, 0x7f, 0x7e, 0x57, 0xb9, 0xab, 0x47, 0xb5, 0x8b, 0x7a, 0xc4, 0x0d, 0xa4, 0x4a, 0x5e}: "SIIDDxe", efi.GUID{0xfa, 0x1a, 0x5e, 0xd7, 0x28, 0x0a, 0xb1, 0x41, 0x9d, 0xa6, 0x76, 0x59, 0x76, 0x74, 0x25, 0x42}: "DellDiagAbstraction", efi.GUID{0xfa, 0x1c, 0xc3, 0xc1, 0x1c, 0x91, 0x24, 0x43, 0xab, 0x4c, 0x79, 0xe8, 0xe6, 0xde, 0x48, 0xe8}: "LEMDisposalProcess", efi.GUID{0xfa, 0x1c, 0xde, 0x95, 0xc6, 0x71, 0xb4, 0x4f, 0xa5, 0x38, 0x6e, 0xea, 0xf1, 0xdd, 0x39, 0x70}: "HWTopSwapFromECSmi", efi.GUID{0xfa, 0x22, 0x75, 0x2d, 0xf0, 0x67, 0x68, 0x47, 0xb6, 0xe0, 0xfd, 0x76, 0xf1, 0x7f, 0x4b, 0x04}: "DellPbaUpekDpba", efi.GUID{0xfa, 0x2c, 0x0c, 0x10, 0x86, 0xb5, 0x98, 0x41, 0x9b, 0x4c, 0x16, 0x83, 0xd1, 0x95, 0xb1, 0xda}: "MMC", efi.GUID{0xfa, 0x2e, 0xb9, 0x2f, 0xe0, 0x2e, 0xae, 0x4b, 0x9e, 0xb6, 0x74, 0x44, 0x12, 0x5e, 0x1e, 0xf7}: "DellGset", efi.GUID{0xfa, 0x2e, 0xb9, 0x2f, 0xe0, 0x2e, 0xae, 0x4b, 0x9e, 0xb6, 0x74, 0x64, 0x12, 0x5e, 0x1e, 0xf7}: "UhciDxe", efi.GUID{0xfa, 0x36, 0xd9, 0x74, 0xbd, 0xd8, 0x33, 0x46, 0xb6, 0x4d, 0x64, 0x24, 0xbd, 0xd2, 0x3d, 0x24}: "FwBlockServiceSmm", efi.GUID{0xfa, 0x3c, 0x9b, 0x6f, 0xf2, 0x1a, 0x74, 0x41, 0xa1, 0xc7, 0x8f, 0x63, 0x10, 0xd6, 0x8b, 0xe4}: "SwSmi534D0140", efi.GUID{0xfa, 0x47, 0x61, 0x08, 0x0d, 0x4c, 0x81, 0x47, 0xad, 0x27, 0x0a, 0x37, 0x25, 0xf0, 0x3f, 0x2b}: "DxeDg2OpregionInit", efi.GUID{0xfa, 0x49, 0xfc, 0xb0, 0x5f, 0x4f, 0x42, 0x45, 0x81, 0xc4, 0xe5, 0x4d, 0xb9, 0x59, 0x20, 0x22}: "LNVRNR", efi.GUID{0xfa, 0x6d, 0xe8, 0x04, 0xa9, 0x6f, 0x49, 0x47, 0xa0, 0x69, 0x5a, 0x70, 0x8f, 0x41, 0x6a, 0xf7}: "OemPDAutoFlash", efi.GUID{0xfa, 0x7b, 0xfb, 0x1d, 0x8e, 0xbf, 0x11, 0x4d, 0x97, 0x66, 0x2f, 0xb0, 0xd0, 0x44, 0x23, 0x10}: "AmiAgesaDxe", efi.GUID{0xfa, 0x7b, 0xfb, 0x1d, 0x8e, 0xbf, 0x12, 0x4d, 0x97, 0x66, 0xb0, 0xd0, 0x14, 0x12, 0x04, 0x15}: "UpdateHwSignature", efi.GUID{0xfa, 0x80, 0xd1, 0x35, 0xdd, 0x6a, 0x2c, 0x48, 0xb6, 0xec, 0xb5, 0x9c, 0x49, 0xb5, 0x32, 0x08}: "LpcSmsc100x", efi.GUID{0xfa, 0x83, 0x11, 0x1b, 0x23, 0x18, 0xa7, 0x46, 0x88, 0x72, 0x9c, 0x57, 0x87, 0x55, 0x40, 0x9d}: "EfiSmmPowerButtonDispatch2ProtocolGuid", efi.GUID{0xfa, 0x84, 0xa0, 0x85, 0x0e, 0x6b, 0x4c, 0xbd, 0xa2, 0x0e, 0x15, 0x6e, 0x46, 0x10, 0x31, 0x55}: "Legacy8259", efi.GUID{0xfa, 0x89, 0x36, 0x4d, 0x9d, 0x74, 0x43, 0x4f, 0x85, 0xb2, 0x8c, 0x23, 0x06, 0x5a, 0x04, 0xd5}: "FprSynapticsPrometheusDriver", efi.GUID{0xfa, 0x8b, 0xaf, 0x23, 0x89, 0x1d, 0xcb, 0x47, 0x87, 0x6c, 0x1b, 0xe1, 0x1f, 0xa0, 0xf4, 0xb0}: "AtaIdentifyData", efi.GUID{0xfa, 0x8c, 0x63, 0x28, 0x88, 0xea, 0x6c, 0x45, 0x92, 0xa5, 0xf2, 0x49, 0xca, 0x48, 0x85, 0x35}: "EfiRedirFruProtocol", efi.GUID{0xfa, 0x8c, 0xba, 0x1f, 0x94, 0x81, 0xc4, 0x49, 0xbd, 0x8e, 0x9f, 0x16, 0x2a, 0x95, 0x7b, 0xa1}: "WMISwSmiDXE", efi.GUID{0xfa, 0x8f, 0xff, 0x94, 0xbf, 0x65, 0x18, 0x49, 0x95, 0xce, 0x81, 0x41, 0xe4, 0x87, 0xca, 0x6b}: "PolicySampleDriver", efi.GUID{0xfa, 0x9e, 0x38, 0xd9, 0x9a, 0x2c, 0x96, 0x46, 0x8b, 0xb6, 0xfc, 0x5f, 0x39, 0x8d, 0x8d, 0xf3}: "SmmGpioControl", efi.GUID{0xfa, 0xa8, 0x1d, 0xf2, 0xb6, 0x35, 0xd0, 0x4c, 0xbb, 0x27, 0x62, 0x0d, 0x14, 0x60, 0xd3, 0x61}: "MIPICamera_Lattice", efi.GUID{0xfa, 0xae, 0x72, 0xd8, 0x5f, 0x7c, 0x66, 0x4c, 0x88, 0x36, 0xaa, 0x57, 0xef, 0xf0, 0xd9, 0xf8}: "IconGenericExternalHardDrive", efi.GUID{0xfa, 0xaf, 0xaa, 0x63, 0xbd, 0x53, 0xd1, 0x4e, 0xb5, 0xa3, 0xa8, 0xa5, 0x61, 0x9c, 0x56, 0x3f}: "SlotDataUpdateDxeLightningRidgeEXECB2", efi.GUID{0xfa, 0xb2, 0x54, 0x10, 0xf0, 0x3d, 0xfc, 0x41, 0xa7, 0xce, 0xd5, 0x93, 0x79, 0xf3, 0x98, 0x8e}: "AsusSIBoardPei", efi.GUID{0xfa, 0xbd, 0xb6, 0x76, 0xcd, 0x2a, 0x62, 0x44, 0x9e, 0x3f, 0xcb, 0x58, 0xc9, 0x69, 0xd9, 0x37}: "PerformanceProtocolGuid", efi.GUID{0xfa, 0xc1, 0x83, 0x75, 0xd6, 0x0b, 0x7c, 0x44, 0x9e, 0x4e, 0x39, 0x7e, 0x1a, 0xe3, 0x38, 0xb2}: "SystemSureBootPei", efi.GUID{0xfa, 0xd2, 0xd3, 0x0c, 0x1d, 0xb2, 0xb5, 0x47, 0xba, 0x95, 0xd8, 0xc0, 0x0b, 0x38, 0xf3, 0x24}: "DellAi13Rom", efi.GUID{0xfa, 0xd3, 0xe7, 0xdc, 0x44, 0xcc, 0x7e, 0x40, 0xae, 0x58, 0x90, 0x89, 0x5b, 0x32, 0x89, 0x15}: "OdmSmmGNVS", efi.GUID{0xfa, 0xdb, 0x67, 0xc0, 0x8b, 0x2c, 0x7c, 0x4a, 0x92, 0x1b, 0x28, 0xdc, 0xb2, 0x5d, 0x9e, 0xda}: "AmdNbioEarlyPhaseRPLPei", efi.GUID{0xfa, 0xf7, 0x85, 0xbd, 0xdf, 0x8a, 0xf8, 0x42, 0xb4, 0x00, 0xbf, 0x46, 0xe5, 0xe8, 0xad, 0xc7}: "PxeDriverI219", efi.GUID{0xfa, 0xf9, 0x10, 0xcf, 0xbe, 0x45, 0x8a, 0x08, 0x0d, 0xcf, 0x37, 0xb7, 0x5c, 0xfe, 0x91, 0x7c}: "SystemSmbiosLoaderDxe", efi.GUID{0xfa, 0xf9, 0x53, 0x02, 0x9a, 0x12, 0x8d, 0x4a, 0xb1, 0x2e, 0x7d, 0xc2, 0xb6, 0x37, 0x63, 0x02}: "dpDynamicCommand", efi.GUID{0xfb, 0x05, 0xd7, 0xeb, 0x92, 0xfa, 0xa7, 0x46, 0xb3, 0x2b, 0x7f, 0x56, 0x6d, 0x94, 0x46, 0x14}: "SP805WatchdogDxe", efi.GUID{0xfb, 0x0c, 0x50, 0x2a, 0x0e, 0x92, 0xf4, 0x49, 0x99, 0x88, 0x5c, 0xe4, 0xc0, 0xef, 0xd3, 0xab}: "SmbiosDmiEditAfriSmi", efi.GUID{0xfb, 0x21, 0xaa, 0x41, 0x8f, 0x7b, 0xd2, 0x46, 0xb7, 0x26, 0xc1, 0xbc, 0x5f, 0xe6, 0x52, 0x43}: "HpSmbiosDoneDxe", efi.GUID{0xfb, 0x26, 0x9f, 0xee, 0xde, 0xd6, 0xd3, 0x4f, 0x97, 0x20, 0xdc, 0x6c, 0xd3, 0xe3, 0x37, 0xc1}: "CrisisMemoryInitPei", efi.GUID{0xfb, 0x2b, 0xbf, 0x90, 0x98, 0xf9, 0xbc, 0x4c, 0xad, 0x72, 0x00, 0x8d, 0x4d, 0x04, 0x7a, 0x4b}: "PeiTbtInit", efi.GUID{0xfb, 0x2d, 0xd9, 0x11, 0xa9, 0x3c, 0x93, 0x4f, 0xba, 0x2e, 0x47, 0x80, 0xed, 0x3e, 0x03, 0xb5}: "VirtioBlkDxe", efi.GUID{0xfb, 0x3a, 0xf1, 0x0b, 0xb6, 0x98, 0x77, 0x4b, 0x96, 0xe3, 0x08, 0x68, 0x91, 0x7c, 0x2d, 0x2e}: "I2cBusConfigurationManagement", efi.GUID{0xfb, 0x3d, 0x89, 0x07, 0x5c, 0x11, 0x5e, 0x4c, 0xb5, 0x4e, 0x9a, 0x4e, 0x83, 0xee, 0x2e, 0x70}: "InstallSLICTable", efi.GUID{0xfb, 0x49, 0x12, 0xf2, 0xff, 0x22, 0x95, 0x4d, 0xa1, 0xc6, 0xcc, 0x99, 0x33, 0xf8, 0x8c, 0xf7}: "HPD", efi.GUID{0xfb, 0x5a, 0x03, 0x5f, 0x8d, 0xab, 0x0e, 0x46, 0xac, 0x58, 0x25, 0x4b, 0x89, 0x39, 0xe1, 0x5c}: "SystemBiosSelfHealingPremiumPei", efi.GUID{0xfb, 0x5d, 0x46, 0xd2, 0xc7, 0x9a, 0x54, 0x49, 0x8c, 0x48, 0xcc, 0x43, 0x9a, 0xda, 0x7c, 0x3c}: "FjIbvWakeStatusAbstractionPei", efi.GUID{0xfb, 0x67, 0xc7, 0x9c, 0x3d, 0x68, 0xf9, 0x45, 0xad, 0xba, 0x1c, 0x7f, 0xc7, 0x8b, 0xee, 0xd9}: "SmuV13Dxe", efi.GUID{0xfb, 0x88, 0xfa, 0x8f, 0x95, 0x43, 0xb4, 0xf6, 0x05, 0x25, 0x93, 0xff, 0x27, 0x7a, 0x62, 0x15}: "IfwiId", efi.GUID{0xfb, 0x8a, 0x97, 0x52, 0xd1, 0xf8, 0x0f, 0x4b, 0x97, 0x4a, 0x0b, 0x7c, 0x94, 0x45, 0xe4, 0xeb}: "AmdCcxZen3CznPei", efi.GUID{0xfb, 0x8b, 0x75, 0x5d, 0x23, 0xb3, 0x6c, 0x4f, 0x90, 0x17, 0xa3, 0x23, 0x8c, 0xe6, 0x51, 0x63}: "LenovoSetupRestartDxe", efi.GUID{0xfb, 0xa7, 0xb4, 0xc4, 0xe2, 0xd2, 0x2c, 0x42, 0x41, 0x79, 0xe5, 0xd4, 0x6b, 0x1e, 0x1a, 0xa6}: "OneKeyRecovery", efi.GUID{0xfb, 0xaa, 0xfd, 0x57, 0x48, 0xdb, 0x46, 0x45, 0xb7, 0x3c, 0x58, 0x42, 0x8d, 0x82, 0x61, 0xb3}: "MtkSuppDxe", efi.GUID{0xfb, 0xb5, 0x02, 0x75, 0xfc, 0x33, 0xf0, 0x42, 0xa9, 0x0c, 0xa4, 0x5e, 0x5b, 0x63, 0x44, 0x9b}: "FjGpioCometLakePei", efi.GUID{0xfb, 0xb6, 0x07, 0x8d, 0x1a, 0x3c, 0xa9, 0x4a, 0xa7, 0x36, 0x70, 0x39, 0xc8, 0x52, 0x9b, 0xdd}: "PciDeviceInfoDxe", efi.GUID{0xfb, 0xba, 0xe1, 0xe8, 0xb0, 0x12, 0x32, 0x49, 0xa4, 0x81, 0xdf, 0x93, 0x98, 0x2c, 0x7a, 0xe4}: "SystemUsbHcLatchDxe", efi.GUID{0xfb, 0xc7, 0xb8, 0xc4, 0xe2, 0xd2, 0x1c, 0x44, 0xba, 0xd6, 0xe5, 0xd4, 0x6b, 0x1e, 0x1a, 0xa6}: "L05DxeServiceBody", efi.GUID{0xfb, 0xcc, 0xf8, 0xe8, 0x80, 0xe8, 0x61, 0x03, 0xbc, 0xd1, 0xfe, 0x24, 0x8b, 0x2a, 0x30, 0x7e}: "SaveMemoryConfig", efi.GUID{0xfb, 0xcf, 0x18, 0xa0, 0xa2, 0x49, 0x75, 0x49, 0x83, 0xdd, 0x72, 0x76, 0xd4, 0x80, 0x00, 0x9e}: "FjOemIgcFmpDriver", efi.GUID{0xfb, 0xd5, 0xc5, 0x69, 0x8d, 0xfe, 0x36, 0x43, 0xbe, 0x00, 0x58, 0x2c, 0x62, 0x1a, 0x23, 0xe3}: "AmdI2cConfigDxe", efi.GUID{0xfb, 0xdb, 0x9d, 0x7d, 0x67, 0xfb, 0x03, 0x43, 0x90, 0xb0, 0x9a, 0x7a, 0x7f, 0xf2, 0x9b, 0x57}: "OpromUpdateDxeLightningRidgeEXECB1", efi.GUID{0xfb, 0xe9, 0x30, 0xe2, 0x32, 0x12, 0x2c, 0x4d, 0xac, 0x1c, 0xe3, 0x8f, 0xb0, 0x0e, 0xa5, 0x30}: "BiosLockRegion", efi.GUID{0xfb, 0xec, 0x6f, 0x2e, 0xe1, 0xb0, 0x80, 0x45, 0x89, 0x66, 0x29, 0x17, 0x8c, 0x72, 0x02, 0x2e}: "SmmS3BootScriptLibS3SmmSaveStateProtocol", efi.GUID{0xfb, 0xef, 0x74, 0x8e, 0x2a, 0xc0, 0x20, 0x43, 0x81, 0xf1, 0x4b, 0x11, 0x14, 0xd1, 0x09, 0x10}: "IntelPpiLayoutLoadPei", efi.GUID{0xfb, 0xf7, 0x72, 0x9c, 0xb6, 0x86, 0x6f, 0x40, 0xb8, 0x6e, 0xf3, 0x80, 0x9a, 0x86, 0xc1, 0x38}: "AmiSmmDummyProtocolRedir", efi.GUID{0xfb, 0xf9, 0x30, 0xe2, 0xc2, 0x12, 0x2c, 0x4d, 0xac, 0x1c, 0xe3, 0x8f, 0x10, 0x0e, 0xa5, 0x30}: "SnapScreen", efi.GUID{0xfb, 0xfd, 0xfb, 0x11, 0xd2, 0x10, 0xe6, 0x43, 0xb5, 0xb1, 0xb4, 0x38, 0x6e, 0xdc, 0xcb, 0x9a}: "EfiSeCRcInfoProtocolGuid", efi.GUID{0xfb, 0xff, 0xe9, 0xc1, 0x57, 0x55, 0xb5, 0x4c, 0xa5, 0xf5, 0x1f, 0xbd, 0x90, 0x2a, 0x74, 0xed}: "LibIIO", efi.GUID{0xfc, 0x00, 0x77, 0x07, 0x81, 0x1f, 0xd2, 0x4f, 0x8e, 0xa8, 0xbe, 0x92, 0x58, 0x88, 0x4d, 0x45}: "PostScreenInfo", efi.GUID{0xfc, 0x01, 0xca, 0x05, 0xc1, 0x0f, 0xdc, 0x11, 0x90, 0x11, 0x00, 0x17, 0x31, 0x53, 0xeb, 0xa8}: "OemRomHole_0", efi.GUID{0xfc, 0x03, 0xca, 0x9c, 0x9e, 0x4c, 0x19, 0x4a, 0x9b, 0x06, 0xed, 0x7b, 0x47, 0x9b, 0xde, 0x55}: "EfiSmmPeriodicTimerDispatchProtocolGuid", efi.GUID{0xfc, 0x04, 0xec, 0x61, 0xe6, 0x48, 0x13, 0xd8, 0x25, 0xc9, 0x8d, 0xaa, 0x44, 0x75, 0x0b, 0x12}: "EfiPlatformMemory2ErrorSectionGuid", efi.GUID{0xfc, 0x09, 0xb4, 0xce, 0x01, 0xfa, 0x31, 0x48, 0x8b, 0xdb, 0x7d, 0x06, 0xbe, 0x8f, 0xcc, 0x9e}: "PlatformG3State", efi.GUID{0xfc, 0x15, 0x85, 0x09, 0x73, 0x9f, 0xe4, 0x4b, 0xb5, 0x42, 0xd3, 0x8b, 0xe9, 0xe9, 0x1e, 0x96}: "FlashUtilitySmm", efi.GUID{0xfc, 0x27, 0x50, 0xa8, 0x09, 0x0e, 0xa9, 0x4f, 0xa4, 0x07, 0xca, 0xd2, 0x06, 0xfb, 0x4f, 0x1d}: "PlatformStage1Pei", efi.GUID{0xfc, 0x2e, 0xdd, 0xfc, 0xa8, 0x6c, 0x0b, 0x4d, 0x9d, 0x00, 0x6f, 0x9c, 0xfa, 0x57, 0x8f, 0x98}: "EfiCpRcPkgTokenSpace", efi.GUID{0xfc, 0x3b, 0x63, 0x18, 0x35, 0x17, 0x17, 0x42, 0x8a, 0xc9, 0x17, 0x23, 0x92, 0x82, 0xd3, 0xf8}: "EfiBttAbstractionGuid", efi.GUID{0xfc, 0x40, 0x7d, 0xa2, 0x2b, 0xea, 0x3f, 0x4f, 0xbd, 0x17, 0xd5, 0x03, 0x2a, 0x79, 0x54, 0x6f}: "LEMELocker", efi.GUID{0xfc, 0x43, 0x9e, 0xb0, 0x63, 0xff, 0x77, 0x4c, 0xa0, 0x5a, 0xaa, 0x5d, 0xc3, 0x5d, 0x50, 0x32}: "ECHeartbeatDxe", efi.GUID{0xfc, 0x49, 0xf9, 0xcc, 0x31, 0xf8, 0xea, 0x4c, 0xbf, 0xa1, 0xc4, 0x49, 0x83, 0xb9, 0x9b, 0x91}: "AmdNbioGfxRMBDxe", efi.GUID{0xfc, 0x51, 0xc7, 0xa4, 0xae, 0x23, 0x3e, 0x4c, 0x92, 0xe9, 0x49, 0x64, 0xcf, 0x63, 0xf3, 0x49}: "EfiUnicodeCollation2ProtocolGuid", efi.GUID{0xfc, 0x56, 0x27, 0x9b, 0x82, 0xbb, 0xd8, 0x44, 0x9f, 0x2b, 0xbc, 0xfc, 0xa6, 0x88, 0xe3, 0xc1}: "NvmeInfoDxe", efi.GUID{0xfc, 0x5b, 0x69, 0xdc, 0xe8, 0xf8, 0xd3, 0x4c, 0xa9, 0xe5, 0x83, 0xb8, 0x05, 0xd3, 0xfd, 0xdd}: "KEMhDispChipset", efi.GUID{0xfc, 0x5c, 0xba, 0x02, 0x92, 0xd0, 0x04, 0x44, 0x9e, 0x52, 0xa1, 0xb0, 0x18, 0x52, 0x50, 0x56}: "SiliconDataInitSmm", efi.GUID{0xfc, 0x5f, 0xa9, 0xe4, 0x1c, 0xda, 0x0f, 0x44, 0x8a, 0xcc, 0xe3, 0xfa, 0x6b, 0x5e, 0xe4, 0xf1}: "DecompressFvCnvDxe", efi.GUID{0xfc, 0x63, 0x70, 0xdc, 0x1d, 0xe0, 0x6f, 0x47, 0x9b, 0xf3, 0xde, 0x01, 0x08, 0x84, 0xbc, 0x53}: "DellSmbBbsInfo", efi.GUID{0xfc, 0x65, 0xaa, 0x51, 0xb6, 0x82, 0xe6, 0x49, 0x95, 0xe2, 0xe6, 0x82, 0x7a, 0x8d, 0x7d, 0xb4}: "AmiHddHpaProtocolGuid", efi.GUID{0xfc, 0x67, 0xa2, 0x55, 0x07, 0x66, 0x23, 0x40, 0x88, 0x4e, 0x48, 0xe5, 0xd3, 0xd3, 0xf4, 0xe2}: "DellHiiparserDxeDriver", efi.GUID{0xfc, 0x67, 0xde, 0x78, 0xfb, 0x7c, 0x3e, 0x42, 0xae, 0x1c, 0x25, 0x3f, 0x9b, 0x64, 0x5e, 0x25}: "EarlyDxe", efi.GUID{0xfc, 0x74, 0x49, 0xfa, 0x1d, 0xaf, 0x5d, 0x4e, 0xbd, 0xc5, 0xda, 0xcd, 0x6d, 0x27, 0xba, 0xec}: "AmiNvramMainRomAreaGuid", efi.GUID{0xfc, 0x76, 0x70, 0x61, 0xee, 0x65, 0x40, 0x43, 0x9b, 0x18, 0x7e, 0x72, 0xfe, 0xc0, 0x5d, 0x5a}: "SmcAOCPei", efi.GUID{0xfc, 0x7c, 0x11, 0xd8, 0xa6, 0x94, 0xd4, 0x11, 0x9a, 0x3a, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d}: "EfiPeiFlushInstructionCache", efi.GUID{0xfc, 0x7c, 0x9f, 0x8a, 0xfc, 0x5b, 0x8f, 0x45, 0x98, 0x6f, 0xbc, 0x3d, 0x1b, 0xa7, 0xac, 0x89}: "DellSpiPartStMicro", efi.GUID{0xfc, 0x89, 0xec, 0x1a, 0x8d, 0xdb, 0xef, 0x48, 0xa6, 0xcc, 0xc8, 0x7a, 0x0b, 0x63, 0xe9, 0x34}: "XnoteSwSmiServiceSmm", efi.GUID{0xfc, 0x8c, 0x62, 0x35, 0xff, 0x3c, 0x4f, 0x44, 0x99, 0xc1, 0xd5, 0xf0, 0x6a, 0x06, 0x99, 0x14}: "EfiDevicePathPropertyDatabase", efi.GUID{0xfc, 0x8f, 0x8e, 0x16, 0xde, 0xb8, 0xe4, 0x48, 0x9c, 0xfc, 0xd8, 0xa6, 0x67, 0xab, 0xef, 0x11}: "GnbSocRenoirPei", efi.GUID{0xfc, 0x8f, 0x8e, 0x16, 0xde, 0xb8, 0xe4, 0x48, 0x9c, 0xfc, 0xd8, 0xa6, 0x67, 0xab, 0xef, 0x65}: "GnbSocRavenPei", efi.GUID{0xfc, 0x8f, 0xc1, 0x2b, 0xf6, 0x7c, 0xc1, 0x47, 0xaf, 0x19, 0xa4, 0x07, 0x6d, 0xc0, 0x04, 0x70}: "CbsBasePeiZP", efi.GUID{0xfc, 0x96, 0x85, 0x21, 0xbd, 0x6e, 0x19, 0x4d, 0xa7, 0x9b, 0x41, 0xb1, 0x34, 0x48, 0x02, 0x1c}: "OemSWBoardIDDxe", efi.GUID{0xfc, 0x9f, 0x9a, 0xdf, 0x75, 0xa0, 0x67, 0x48, 0xa0, 0xb2, 0x5e, 0x75, 0x40, 0xbb, 0x02, 0x3e}: "AcpiSmm", efi.GUID{0xfc, 0xa5, 0x69, 0xec, 0xbe, 0x83, 0xbb, 0x43, 0x87, 0xf7, 0x4b, 0x07, 0xe3, 0x14, 0xe7, 0xc0}: "AmiErrorDisplayFrameworkProtocol", efi.GUID{0xfc, 0xb2, 0xb9, 0x1a, 0x50, 0x7a, 0xa2, 0x4f, 0xa1, 0x90, 0xee, 0xb3, 0x57, 0x97, 0x57, 0x1d}: "OpromUpdateDxeSierra", efi.GUID{0xfc, 0xb4, 0xa7, 0x76, 0xd5, 0xc8, 0x2d, 0x46, 0xa4, 0xd2, 0x6e, 0x88, 0x33, 0x8a, 0x77, 0x2a}: "PlatformCpuPolicy", efi.GUID{0xfc, 0xb8, 0x85, 0xb0, 0xfc, 0xcc, 0x37, 0x43, 0xa5, 0x9c, 0xde, 0x4a, 0xca, 0x1b, 0x03, 0x65}: "AmdCpmSocAm4SmBrPei", efi.GUID{0xfc, 0xc3, 0xc2, 0x0c, 0xf0, 0x41, 0x30, 0x48, 0xac, 0xf7, 0x0b, 0xa8, 0xec, 0x78, 0x04, 0x5a}: "SpiAccessPei", efi.GUID{0xfc, 0xcb, 0xe2, 0x2f, 0xaa, 0xb9, 0x93, 0x4a, 0xab, 0x5b, 0x40, 0x17, 0x3b, 0x58, 0x1c, 0x42}: "FmpDxe", efi.GUID{0xfc, 0xcc, 0x7c, 0xc0, 0xbf, 0xb4, 0x30, 0x4a, 0xa2, 0x5f, 0x1f, 0x57, 0xc0, 0x52, 0x26, 0x29}: "FdiskOemSmm", efi.GUID{0xfc, 0xcd, 0xe0, 0xb4, 0xcd, 0x30, 0x29, 0x4b, 0xa4, 0x45, 0xb0, 0xaa, 0x95, 0xa5, 0x32, 0xe4}: "SmmAccessPei", efi.GUID{0xfc, 0xd8, 0x90, 0xee, 0x81, 0x61, 0x15, 0x4b, 0x83, 0xc4, 0x7d, 0x1c, 0xa0, 0xc3, 0x6e, 0x2a}: "DramTweakerDxe", efi.GUID{0xfc, 0xf0, 0xda, 0x20, 0x48, 0x55, 0xdc, 0x44, 0xa4, 0x2a, 0x60, 0xea, 0xf0, 0xa2, 0x2e, 0x47}: "DxePlatformTdtPolicyGuid", efi.GUID{0xfc, 0xf1, 0x88, 0x11, 0xe9, 0x06, 0xb8, 0x49, 0xa6, 0x15, 0xf5, 0xa0, 0x88, 0x6f, 0xcf, 0x89}: "UhciInitPei", efi.GUID{0xfc, 0xf2, 0x25, 0x23, 0x83, 0x56, 0x48, 0x46, 0x97, 0xc4, 0x9a, 0x52, 0x0d, 0xfb, 0xe3, 0x25}: "AmiTcgPermFlags", efi.GUID{0xfc, 0xf4, 0xfd, 0x40, 0xcc, 0xb7, 0xc5, 0x4a, 0x9b, 0xa2, 0xa0, 0x50, 0xd2, 0x66, 0x56, 0xa7}: "SmcOptimizePei", efi.GUID{0xfd, 0x00, 0x56, 0xb5, 0x87, 0xa7, 0xf3, 0x4e, 0x80, 0x3a, 0xd1, 0xc9, 0xb5, 0x46, 0xf2, 0x4e}: "ErrorLogReport", efi.GUID{0xfd, 0x00, 0xec, 0xc0, 0xf8, 0xc2, 0x47, 0x4e, 0x90, 0xef, 0x9c, 0x81, 0x55, 0x28, 0x5b, 0xec}: "TcgNvramHobGuid", efi.GUID{0xfd, 0x01, 0xca, 0x05, 0xc1, 0x0f, 0xdc, 0x11, 0x90, 0x11, 0x00, 0x17, 0x31, 0x53, 0xeb, 0xa8}: "OemRomHole_1", efi.GUID{0xfd, 0x12, 0x77, 0x36, 0x5a, 0x6c, 0x00, 0x46, 0xbe, 0xa2, 0x9a, 0x1f, 0x81, 0xaa, 0xcc, 0x08}: "MiscGaIoPeim", efi.GUID{0xfd, 0x17, 0x48, 0x3e, 0x42, 0x27, 0x51, 0x43, 0xb5, 0x9f, 0x91, 0x49, 0x32, 0x80, 0x32, 0x9c}: "AlertStandardFormatPeim", efi.GUID{0xfd, 0x1f, 0x32, 0x23, 0x8e, 0x1f, 0x97, 0x45, 0x84, 0xec, 0x4d, 0xad, 0x0e, 0x2b, 0xa9, 0x95}: "SmmLockS3", efi.GUID{0xfd, 0x28, 0xed, 0xe4, 0xc1, 0x13, 0xc4, 0x40, 0xb5, 0x5a, 0xc5, 0x26, 0x07, 0x71, 0xa2, 0xcf}: "DeviceManagerDxe", efi.GUID{0xfd, 0x2a, 0x4d, 0x51, 0x96, 0x20, 0x83, 0x42, 0x9d, 0xa6, 0x70, 0x0c, 0xd2, 0x7d, 0xc7, 0xa5}: "ScSmmIoTrapControlGuid", efi.GUID{0xfd, 0x30, 0xd9, 0x3b, 0x23, 0xf8, 0x48, 0x49, 0x86, 0x91, 0x98, 0xe6, 0xfe, 0x36, 0xac, 0xe2}: "EfiDebugMaskPpi", efi.GUID{0xfd, 0x31, 0x20, 0x9b, 0x59, 0x57, 0x8d, 0x4e, 0x8d, 0xf5, 0x2d, 0xde, 0x44, 0x79, 0x7e, 0xbf}: "DxeFlipToBoot", efi.GUID{0xfd, 0x32, 0xc3, 0x04, 0xd3, 0x14, 0x1c, 0x41, 0xa1, 0xef, 0x65, 0x12, 0xe2, 0x60, 0x33, 0x9e}: "FjNvsAreaSmm", efi.GUID{0xfd, 0x36, 0x9c, 0xec, 0x42, 0x16, 0x84, 0x4b, 0x91, 0xfa, 0x91, 0x9c, 0x2d, 0x06, 0x6f, 0xb4}: "AmiPeimLoadHob", efi.GUID{0xfd, 0x3c, 0xd1, 0x35, 0xaf, 0x0b, 0xe8, 0x11, 0xae, 0x0a, 0xb8, 0xe8, 0x56, 0x2c, 0xba, 0xfa}: "AppleHpetTimerDxe", efi.GUID{0xfd, 0x4f, 0x38, 0xf0, 0x33, 0x86, 0x2f, 0x45, 0x90, 0x10, 0xf6, 0xb7, 0xd2, 0xea, 0xe2, 0xf1}: "WinNtFirmwareVolumePei", efi.GUID{0xfd, 0x4f, 0x59, 0x45, 0xd8, 0x60, 0xbb, 0x45, 0x8d, 0x6f, 0x86, 0x7b, 0xdf, 0x09, 0xe8, 0xc9}: "StorageSetupInfoProtocol", efi.GUID{0xfd, 0x64, 0x89, 0x9d, 0xf1, 0x9c, 0x7e, 0x42, 0xaf, 0x66, 0x80, 0x05, 0x4e, 0x94, 0x9d, 0xc0}: "DellSecureBootDxe", efi.GUID{0xfd, 0x65, 0x7c, 0x66, 0x78, 0xf7, 0xeb, 0x44, 0xab, 0xbe, 0xa5, 0x49, 0x7a, 0xf8, 0xa8, 0x5f}: "PciLegacy", efi.GUID{0xfd, 0x68, 0x31, 0x8d, 0xd5, 0x8c, 0x35, 0x4b, 0x9a, 0xa0, 0x3c, 0x96, 0x4d, 0x4c, 0xc1, 0x4a}: "RstVmdDriver", efi.GUID{0xfd, 0x6e, 0x04, 0xc5, 0xc3, 0x7b, 0x06, 0x42, 0x98, 0x7c, 0x32, 0xda, 0x45, 0x02, 0x6e, 0x6d}: "PlatformInitDxe", efi.GUID{0xfd, 0x6f, 0x5b, 0xa0, 0xaf, 0x87, 0x42, 0x4e, 0x95, 0xc9, 0x62, 0x28, 0xb6, 0x3c, 0xf3, 0xf3}: "EfiSmmUsbDispatchProtocolGuid", efi.GUID{0xfd, 0x6f, 0xf6, 0x43, 0x88, 0xb2, 0x39, 0x41, 0xba, 0xd5, 0xb8, 0x98, 0x03, 0xe7, 0x30, 0xa2}: "DxeTxtPolicyProtocol", efi.GUID{0xfd, 0x73, 0x64, 0xa1, 0x74, 0xd4, 0x89, 0x4c, 0xae, 0xc7, 0x90, 0xb8, 0x3c, 0x73, 0x86, 0x09}: "EdkiiPeiAtaPassThruPpi", efi.GUID{0xfd, 0x77, 0xc8, 0x52, 0x7c, 0xc2, 0x79, 0x47, 0xb7, 0x50, 0x78, 0x80, 0xb2, 0x8b, 0x43, 0x06}: "SetupConfigUpdateDxeNeonCityEPRP", efi.GUID{0xfd, 0x7b, 0x38, 0x3b, 0xbc, 0x7a, 0xf2, 0x4c, 0xa0, 0xca, 0xb6, 0xa1, 0x6c, 0x1b, 0x1b, 0x25}: "EdkiiFpdtExtendedFirmwarePerformance", efi.GUID{0xfd, 0x7e, 0x9b, 0x22, 0x02, 0xda, 0xb9, 0x46, 0x93, 0xf4, 0xe2, 0x0c, 0x00, 0x9f, 0x94, 0xe9}: "CpuS3DataDxe", efi.GUID{0xfd, 0x83, 0x97, 0xc1, 0x1e, 0xe2, 0x1a, 0x45, 0x83, 0x0e, 0xc7, 0xcb, 0x23, 0xdb, 0x52, 0xcc}: "menu_mid_left", efi.GUID{0xfd, 0x85, 0x82, 0xf7, 0x1e, 0x12, 0xf4, 0x49, 0x97, 0x16, 0x44, 0xe3, 0x07, 0x65, 0x65, 0x86}: "Python2710", efi.GUID{0xfd, 0x86, 0xb8, 0x91, 0x36, 0x26, 0xa8, 0x4f, 0xa4, 0xa9, 0x2e, 0xb0, 0x4f, 0x23, 0x5e, 0x09}: "CpuPeiBeforeMem", efi.GUID{0xfd, 0x8e, 0x6a, 0xf5, 0xfe, 0x62, 0xf9, 0x47, 0x98, 0x92, 0xd8, 0x72, 0x15, 0x26, 0xfc, 0xf5}: "QuantaIFSmm", efi.GUID{0xfd, 0x91, 0x4c, 0xf0, 0xeb, 0x5a, 0xbd, 0x45, 0xbe, 0x71, 0x65, 0x43, 0x59, 0x04, 0xc5, 0x68}: "AmiMultiPlatformPpi", efi.GUID{0xfd, 0x91, 0x8e, 0x0f, 0x64, 0x99, 0x65, 0x4a, 0xb0, 0x52, 0xc4, 0x63, 0x9c, 0x5a, 0x9e, 0xf0}: "SioRfTestWmiSmm", efi.GUID{0xfd, 0x9a, 0xa6, 0x1d, 0x97, 0xc2, 0xe2, 0x4e, 0xa0, 0x86, 0x0a, 0x41, 0xeb, 0x2b, 0x4d, 0xc8}: "XnoteGopVbtPei", efi.GUID{0xfd, 0xa4, 0x4b, 0x53, 0x4c, 0xd7, 0x41, 0x1e, 0xaa, 0x7d, 0xbb, 0x55, 0x13, 0x64, 0xfb, 0xad}: "AppleDebugSupportDxe", efi.GUID{0xfd, 0xb2, 0xa5, 0xd4, 0x44, 0xad, 0x4a, 0x40, 0x98, 0xa8, 0x29, 0x78, 0x57, 0xe7, 0x2a, 0x53}: "SmcOobDataReadyProtocol", efi.GUID{0xfd, 0xb6, 0x10, 0xe5, 0x5e, 0x52, 0x0b, 0xa8, 0xb1, 0x3c, 0x0b, 0x9b, 0x1d, 0x02, 0xcd, 0x3f}: "AutoRecoveryPei", efi.GUID{0xfd, 0xbb, 0x9f, 0x80, 0x7a, 0x12, 0x49, 0x42, 0x88, 0xbc, 0xfd, 0x0e, 0x76, 0x7f, 0x4f, 0xfd}: "IconInternalHD", efi.GUID{0xfd, 0xc8, 0xfd, 0x99, 0x9b, 0x84, 0xba, 0x4e, 0xad, 0x13, 0xfb, 0x96, 0x99, 0xc9, 0x0a, 0x4d}: "CustomizedDisplayLibGuid", efi.GUID{0xfd, 0xc9, 0xb8, 0xa1, 0x04, 0x3d, 0xaa, 0x43, 0x83, 0x99, 0x72, 0x0a, 0x62, 0x9e, 0xbf, 0x3f}: "LemSecureBoot", efi.GUID{0xfd, 0xc9, 0xb8, 0xa1, 0x04, 0x3d, 0xaa, 0x43, 0x83, 0x99, 0x72, 0x0a, 0x62, 0x9e, 0xbf, 0x4f}: "LemSecureBootForceKey", efi.GUID{0xfd, 0xcc, 0x60, 0x5b, 0x11, 0x10, 0xcf, 0x4b, 0xb7, 0xd1, 0xbb, 0x99, 0xca, 0x96, 0xa6, 0x03}: "SystemFatPei", efi.GUID{0xfd, 0xcc, 0xea, 0xaa, 0x7b, 0xf2, 0x17, 0x4c, 0xb6, 0x10, 0x75, 0xca, 0x1f, 0x2d, 0xfb, 0x52}: "EfiEbcVmTestProtocolGuid", efi.GUID{0xfd, 0xcd, 0x0e, 0xba, 0x29, 0xa4, 0xb9, 0x49, 0xa9, 0x61, 0x11, 0xee, 0xff, 0x78, 0x4c, 0x7f}: "OemPei", efi.GUID{0xfd, 0xd1, 0x2b, 0xec, 0xb0, 0xe3, 0x9b, 0x42, 0xad, 0xdf, 0x96, 0x57, 0x93, 0x5a, 0x36, 0x84}: "AmiSmmNvmeCommunicationGuid", efi.GUID{0xfd, 0xe9, 0x58, 0x1d, 0x80, 0xba, 0x47, 0x4a, 0x81, 0x90, 0x08, 0xae, 0x9b, 0xb8, 0xa0, 0xed}: "DellTagsPolicy", efi.GUID{0xfd, 0xec, 0xff, 0x3b, 0x5f, 0xd7, 0x75, 0x49, 0xb8, 0x88, 0x39, 0x02, 0xbd, 0x69, 0x00, 0x2b}: "MeGlobalNvsAreaProtocol", efi.GUID{0xfd, 0xed, 0x8b, 0x76, 0x4b, 0x7b, 0x9f, 0x4c, 0xb2, 0xff, 0x63, 0x77, 0xe3, 0x38, 0x72, 0x43}: "NTFS", efi.GUID{0xfd, 0xed, 0x8b, 0x76, 0x4b, 0x7b, 0x9f, 0x4c, 0xb2, 0xff, 0x63, 0x77, 0xe3, 0x38, 0x76, 0x51}: "OemGNVSDxe", efi.GUID{0xfd, 0xed, 0x8b, 0x76, 0x4b, 0x7b, 0x9f, 0x4c, 0xb2, 0xff, 0x63, 0x77, 0xe3, 0x38, 0x76, 0x71}: "SmbusDxe", efi.GUID{0xfd, 0xed, 0x8b, 0x76, 0x4b, 0x7b, 0x9f, 0x4c, 0xb2, 0xff, 0x63, 0x77, 0xe3, 0x38, 0x76, 0x91}: "SmbusSmm", efi.GUID{0xfd, 0xed, 0x8b, 0x76, 0x4b, 0x7b, 0x9f, 0x4c, 0xb2, 0xff, 0x63, 0x77, 0xe3, 0x38, 0x76, 0x92}: "OemSmi", efi.GUID{0xfd, 0xf4, 0x6d, 0x7d, 0x50, 0x36, 0x77, 0x4e, 0xbf, 0x3a, 0x84, 0xdc, 0x98, 0x8a, 0x02, 0x5c}: "TcgStorageSecurity", efi.GUID{0xfd, 0xf4, 0x94, 0x4b, 0xb9, 0x8f, 0xf1, 0x4c, 0xa0, 0xd8, 0xea, 0x03, 0xb4, 0x46, 0x7b, 0xe2}: "OemThermal", efi.GUID{0xfd, 0xff, 0xce, 0x6e, 0x4d, 0x61, 0x2e, 0x45, 0xa8, 0x1d, 0x25, 0xe5, 0x6b, 0x0d, 0xef, 0x98}: "BatteryState0", efi.GUID{0xfe, 0x0b, 0xbe, 0xb5, 0x82, 0x58, 0x89, 0x41, 0x80, 0xf3, 0x9a, 0x23, 0x83, 0xf5, 0x74, 0xc2}: "EfiPlatformTypeKyaniteProtocol", efi.GUID{0xfe, 0x10, 0x4b, 0x86, 0x5e, 0x3d, 0x08, 0x49, 0x88, 0xcc, 0xf0, 0x8d, 0x4e, 0xdc, 0x00, 0x50}: "LenovoSystemPciIsaBusDxe", efi.GUID{0xfe, 0x1c, 0x16, 0xde, 0x60, 0x1e, 0xa1, 0x42, 0x8c, 0xc3, 0xee, 0x7e, 0xf0, 0x73, 0x52, 0x12}: "EfiTpmMpDriverProtocolGuid", efi.GUID{0xfe, 0x1d, 0x02, 0x64, 0x2c, 0xa6, 0xa7, 0x42, 0xbf, 0x46, 0x15, 0x07, 0x8c, 0xdf, 0x9f, 0x89}: "EfiLpcPolicyProtocol", efi.GUID{0xfe, 0x20, 0x1f, 0x58, 0x59, 0x3c, 0xeb, 0x46, 0x8d, 0x9f, 0x47, 0xe6, 0xd3, 0x8a, 0x1c, 0x3b}: "IsvtCheckpointDxe", efi.GUID{0xfe, 0x24, 0x2e, 0xcf, 0xa6, 0xac, 0x6e, 0x4d, 0x94, 0x86, 0xe9, 0xa5, 0x54, 0x95, 0xd6, 0x54}: "PlatformServiceRecord", efi.GUID{0xfe, 0x27, 0x5c, 0x1b, 0x1c, 0xf0, 0xbc, 0x4f, 0xae, 0xae, 0x34, 0x1b, 0x2e, 0x99, 0x2a, 0x17}: "FspSFirmwareFileSystemFvGuid", efi.GUID{0xfe, 0x29, 0xc7, 0xe8, 0x0a, 0xfb, 0x44, 0x43, 0xad, 0x7e, 0x48, 0x78, 0x41, 0x16, 0xc9, 0xef}: "SmmIpmiInitialize", efi.GUID{0xfe, 0x2b, 0xea, 0x1e, 0xcb, 0x01, 0xcc, 0x40, 0xa3, 0x4e, 0xcb, 0x22, 0x4c, 0x80, 0x0a, 0xa2}: "Tpm2DeviceLibSeC", efi.GUID{0xfe, 0x2b, 0xf8, 0x9e, 0x7f, 0x70, 0x8f, 0x46, 0xa9, 0x44, 0xa6, 0x16, 0x26, 0xe4, 0x7d, 0xc9}: "AcpiGlobalVariable", efi.GUID{0xfe, 0x33, 0x5c, 0x39, 0x7f, 0x28, 0x3e, 0x41, 0xa0, 0x55, 0x80, 0x88, 0xc0, 0xe1, 0xd4, 0x3e}: "SmmRsTableGuid", efi.GUID{0xfe, 0x3f, 0x50, 0xfe, 0x7f, 0x49, 0x46, 0x4a, 0x9a, 0xd2, 0xfb, 0xdd, 0xd2, 0x53, 0xd5, 0xb1}: "SensorInfoDxe", efi.GUID{0xfe, 0x42, 0x35, 0xfe, 0xd3, 0xc1, 0xf8, 0x4e, 0x65, 0x7c, 0x80, 0x48, 0x60, 0x6f, 0xf6, 0x70}: "SetupUtility", efi.GUID{0xfe, 0x42, 0x35, 0xfe, 0xd3, 0xc1, 0xf8, 0x4e, 0x65, 0x7c, 0x80, 0x48, 0x60, 0x6f, 0xf6, 0x71}: "DriverSample", efi.GUID{0xfe, 0x42, 0xf3, 0xeb, 0xd3, 0xb1, 0xf8, 0x4e, 0x95, 0x7c, 0x80, 0x48, 0x60, 0x6f, 0xf6, 0x70}: "SetupBrowserDxe", efi.GUID{0xfe, 0x42, 0xf3, 0xeb, 0xd3, 0xb1, 0xf8, 0x4e, 0x95, 0x7c, 0x80, 0x48, 0x60, 0x6f, 0xf6, 0x71}: "SetupBrowser", efi.GUID{0xfe, 0x43, 0xa7, 0xc2, 0x51, 0x99, 0x99, 0x42, 0x98, 0x17, 0x71, 0xdb, 0x14, 0x75, 0x70, 0xd9}: "SmmPlatformDxe", efi.GUID{0xfe, 0x45, 0x48, 0x71, 0xb8, 0xf8, 0x45, 0x4b, 0x9a, 0xae, 0x70, 0x8e, 0xcd, 0xdf, 0xcb, 0x77}: "ExFatDxe", efi.GUID{0xfe, 0x48, 0x83, 0xb1, 0x40, 0xd5, 0xda, 0x4a, 0x87, 0x45, 0x17, 0x2c, 0x10, 0x9d, 0x3a, 0x22}: "FjExtDxe", efi.GUID{0xfe, 0x59, 0xd3, 0xe4, 0x80, 0xb1, 0xd2, 0x45, 0xa6, 0xe7, 0x46, 0x38, 0x87, 0x6b, 0xc4, 0x71}: "BiosGuard28", efi.GUID{0xfe, 0x66, 0x02, 0x4a, 0x57, 0xfe, 0x38, 0x47, 0x80, 0xab, 0x14, 0x6e, 0x46, 0xf0, 0x3a, 0x65}: "EfiWheaBootProtocol", efi.GUID{0xfe, 0x68, 0xc3, 0x16, 0x74, 0xf1, 0x81, 0x48, 0x92, 0xce, 0x38, 0x86, 0x99, 0xd3, 0x4d, 0x95}: "SmmGpioPolicy", efi.GUID{0xfe, 0x69, 0x8a, 0xb5, 0x3e, 0x16, 0xc0, 0x4c, 0xa4, 0x87, 0x30, 0x4d, 0x34, 0xd5, 0x48, 0x9f}: "EfiTcgMADriverHobGuid", efi.GUID{0xfe, 0x6a, 0x27, 0x89, 0x07, 0x0b, 0x39, 0x4b, 0xaf, 0x5f, 0x50, 0x6f, 0xc0, 0xd2, 0x10, 0x91}: "CbmrSetup", efi.GUID{0xfe, 0x6f, 0xf5, 0xe8, 0x9c, 0x91, 0xc5, 0x4c, 0xba, 0x88, 0x65, 0xab, 0xe1, 0x49, 0x13, 0xbb}: "EfiEventNotificationTypeMceGuid", efi.GUID{0xfe, 0x70, 0x3e, 0x50, 0x7a, 0x04, 0x0b, 0x41, 0xa5, 0x5f, 0x4f, 0x63, 0xc9, 0x38, 0x2c, 0x1e}: "CpuIo2OnCpuIoThunk", efi.GUID{0xfe, 0x72, 0x68, 0x6c, 0xa9, 0x56, 0x03, 0x44, 0xbb, 0x98, 0x95, 0x8d, 0x62, 0xde, 0x87, 0xf1}: "UefiSerialPortInfo", efi.GUID{0xfe, 0x73, 0x11, 0xf2, 0x86, 0xdf, 0x8b, 0x4b, 0xaf, 0xf9, 0xc7, 0xcb, 0x77, 0xb9, 0xc7, 0xdd}: "PeiIchInit", efi.GUID{0xfe, 0x78, 0x15, 0x96, 0xb7, 0xb6, 0xc3, 0x44, 0xaf, 0x35, 0x6b, 0xc7, 0x05, 0xcd, 0x2b, 0x1f}: "Fat", efi.GUID{0xfe, 0x78, 0x15, 0x96, 0xb7, 0xb6, 0xc3, 0x44, 0xaf, 0x35, 0x6b, 0xc7, 0x05, 0xcd, 0x3b, 0x3f}: "MacMiscDxe", efi.GUID{0xfe, 0x7c, 0x11, 0xd8, 0xa6, 0x94, 0xd4, 0x11, 0x9a, 0x3a, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d}: "EfiDecompressProtocolGuid", efi.GUID{0xfe, 0x8d, 0x87, 0x2c, 0x2e, 0xf9, 0x00, 0x4d, 0xbc, 0xed, 0x14, 0x6a, 0xfe, 0x09, 0x98, 0x41}: "MemCacheInit", efi.GUID{0xfe, 0x8e, 0x62, 0x6a, 0x82, 0x36, 0xdc, 0x4f, 0xa3, 0x1e, 0xc6, 0x35, 0xbd, 0xf1, 0x8c, 0xc8}: "BdsMilestone", efi.GUID{0xfe, 0x9b, 0x80, 0xbd, 0x29, 0x1e, 0xa0, 0x4c, 0xae, 0x2c, 0x1c, 0x7c, 0x8e, 0x79, 0xa0, 0x0c}: "WarmResetFlagPei", efi.GUID{0xfe, 0xa1, 0x68, 0x5b, 0x35, 0xb1, 0x65, 0x49, 0x82, 0xa4, 0x10, 0x3c, 0xb4, 0xbc, 0xf9, 0x2e}: "DellServiceOsInterfaceSmm", efi.GUID{0xfe, 0xa9, 0x98, 0x4e, 0x5a, 0xdf, 0x36, 0x41, 0xb9, 0x22, 0x4f, 0xb9, 0x70, 0xcb, 0xd7, 0x33}: "CpuSmm", efi.GUID{0xfe, 0xab, 0xe0, 0xb9, 0x79, 0x59, 0x14, 0x49, 0x97, 0x7f, 0x6d, 0xee, 0x78, 0xc2, 0x78, 0xa6}: "EfiPeiLoadFilePpiGuid", efi.GUID{0xfe, 0xae, 0xdf, 0xc3, 0x37, 0xd2, 0x20, 0x4a, 0x8b, 0xbf, 0x54, 0x44, 0xfd, 0xe0, 0x98, 0xde}: "FjPostScreenMfgFirstPowerOnDxe", efi.GUID{0xfe, 0xaf, 0x4b, 0x25, 0x5e, 0xf2, 0xf1, 0x45, 0xa0, 0x6f, 0x5e, 0xf1, 0x14, 0x43, 0xac, 0xa4}: "AmdMcaZen5Dxe", efi.GUID{0xfe, 0xbe, 0x42, 0xb2, 0x51, 0x9e, 0x0f, 0x4a, 0x9a, 0xcc, 0x83, 0x23, 0xf6, 0xca, 0x27, 0xae}: "FjGabiFtsSystemDataDxe", efi.GUID{0xfe, 0xc3, 0x7b, 0x84, 0x74, 0xb9, 0x6d, 0x44, 0x94, 0x49, 0x5a, 0xd5, 0x41, 0x2e, 0x99, 0x3b}: "BootManagerDxe", efi.GUID{0xfe, 0xc3, 0x7e, 0xb5, 0x33, 0xf8, 0xa6, 0x4b, 0x85, 0x78, 0x2a, 0x7d, 0x6a, 0x87, 0x44, 0x4b}: "EfiSpiNorFlashProtocolGuid", efi.GUID{0xfe, 0xc3, 0xbe, 0xf6, 0xfb, 0x88, 0xe3, 0x11, 0xae, 0x84, 0xe7, 0x3b, 0x77, 0x56, 0x1c, 0x35}: "FastbootTransportUsbDxe", efi.GUID{0xfe, 0xc7, 0x6d, 0xcf, 0xe5, 0xfb, 0xfe, 0x4a, 0x8a, 0x8e, 0xe7, 0xce, 0xd4, 0x73, 0x25, 0x9e}: "SureStartTestModePlatform", efi.GUID{0xfe, 0xc8, 0xa1, 0x96, 0x23, 0x40, 0x6d, 0x45, 0x90, 0x66, 0x0d, 0x8d, 0xbb, 0x54, 0xb8, 0x8e}: "FjGabiSystemData", efi.GUID{0xfe, 0xca, 0xee, 0x4b, 0x02, 0x5f, 0x2e, 0x43, 0x44, 0xb9, 0x3c, 0xa5, 0xca, 0x5d, 0xf1, 0x89}: "AmdNbioBaseSspDxe", efi.GUID{0xfe, 0xd4, 0xa9, 0x4e, 0xf6, 0xe6, 0x0b, 0x41, 0x80, 0x37, 0x0f, 0x98, 0xb5, 0x96, 0x8b, 0x65}: "NbciEfi", efi.GUID{0xfe, 0xd4, 0xa9, 0x4e, 0xf6, 0xe6, 0x0b, 0x41, 0x90, 0x37, 0x0f, 0x98, 0xb5, 0x96, 0x8b, 0x65}: "Mxm3Efi", efi.GUID{0xfe, 0xda, 0xa4, 0x1f, 0x5d, 0xfa, 0x75, 0x4d, 0xbe, 0xa6, 0x58, 0x63, 0x86, 0x2c, 0x52, 0x0a}: "TcgConfigDxe", efi.GUID{0xfe, 0xe0, 0xb8, 0x58, 0xb8, 0x15, 0x15, 0x49, 0xa4, 0x7b, 0x77, 0x4a, 0x50, 0x34, 0x62, 0x11}: "ProjectHookDxe", efi.GUID{0xfe, 0xe0, 0xdb, 0x74, 0x21, 0x56, 0x16, 0x46, 0xa9, 0x78, 0x8c, 0x1e, 0x23, 0x9f, 0x19, 0x1e}: "SmmMemoryManager", efi.GUID{0xfe, 0xec, 0x11, 0xbb, 0x0f, 0x82, 0x68, 0x49, 0xbb, 0xa6, 0xf7, 0x6a, 0xfe, 0x30, 0x25, 0x96}: "ArmTokenSpaceGuid", efi.GUID{0xfe, 0xed, 0xdf, 0x2d, 0xd5, 0xc2, 0xe3, 0x43, 0x9e, 0x10, 0x46, 0xdb, 0x2c, 0x7c, 0x1f, 0x26}: "SmbiosElogSetupScreen", efi.GUID{0xfe, 0xf4, 0x40, 0xfe, 0x15, 0x6c, 0x3e, 0x43, 0xb0, 0xb4, 0x5f, 0xd1, 0x90, 0xe7, 0x0d, 0xb2}: "ODMPEI", efi.GUID{0xfe, 0xff, 0xd8, 0x20, 0xc3, 0x15, 0xa9, 0x4e, 0x9d, 0x28, 0xcf, 0xe2, 0x74, 0x5d, 0x78, 0xf3}: "CryptoDxe", efi.GUID{0xff, 0x00, 0x3a, 0x9f, 0xff, 0xae, 0xff, 0x42, 0x82, 0xff, 0xd2, 0x2f, 0xd3, 0x44, 0xc3, 0xff}: "IrqBoardInfo", efi.GUID{0xff, 0x0c, 0xd7, 0xed, 0x36, 0x62, 0xe0, 0x4f, 0xa6, 0x98, 0x84, 0x36, 0xb4, 0xa3, 0xe0, 0xa8}: "SingleCapsuleDxe", efi.GUID{0xff, 0x0e, 0x62, 0x67, 0x02, 0xc8, 0xe8, 0x4b, 0xbf, 0xa1, 0x12, 0x5e, 0xb2, 0x5d, 0x1e, 0x8a}: "PublicWmiDxe", efi.GUID{0xff, 0x19, 0xc6, 0xa7, 0x64, 0x9a, 0x89, 0x4a, 0x94, 0x7b, 0xe7, 0x95, 0x3e, 0x24, 0x27, 0xcb}: "PegaBsDxe", efi.GUID{0xff, 0x28, 0xa1, 0xf2, 0x7b, 0x25, 0x6e, 0x45, 0x9d, 0xe8, 0x63, 0xe7, 0xc7, 0xdc, 0xdf, 0xac}: "OpromStartEndProtocolGuid", efi.GUID{0xff, 0x39, 0x80, 0x0d, 0xe9, 0x49, 0xc9, 0x4c, 0xa8, 0x06, 0xbb, 0x7c, 0x31, 0xb0, 0xbc, 0xb0}: "AmiTpm20PlatformPei", efi.GUID{0xff, 0x41, 0x0a, 0x76, 0x19, 0x36, 0x01, 0x4f, 0xb9, 0x5f, 0xa2, 0xe0, 0xe6, 0x99, 0xd4, 0x87}: "ServiceBodySmm", efi.GUID{0xff, 0x44, 0xfe, 0x72, 0xfc, 0x44, 0x53, 0x46, 0x91, 0x8a, 0x0d, 0x5e, 0x76, 0xc4, 0x16, 0xd2}: "SetupConfigUpdateDxeLightningRidgeEXECB3", efi.GUID{0xff, 0x46, 0xeb, 0xb0, 0x1d, 0xdb, 0xf8, 0x43, 0x83, 0x39, 0xb8, 0x10, 0x3a, 0x3a, 0x14, 0x12}: "PciDxeInit", efi.GUID{0xff, 0x46, 0xeb, 0xb0, 0x1d, 0xdb, 0xf8, 0x43, 0x83, 0x39, 0xb8, 0x10, 0x3a, 0x3a, 0x5a, 0xe8}: "PciDxeInit", efi.GUID{0xff, 0x4c, 0xe3, 0x1c, 0xe9, 0xdf, 0x9d, 0x4d, 0xb2, 0x64, 0x16, 0x6f, 0xfc, 0xb8, 0x31, 0x5a}: "MebxSetup", efi.GUID{0xff, 0x5b, 0x1c, 0x5d, 0x25, 0x3b, 0x83, 0x49, 0x9a, 0x33, 0xd4, 0x69, 0x1b, 0xb3, 0xe9, 0xa3}: "UltraFunctionSwSmi", efi.GUID{0xff, 0x5c, 0x7a, 0x6a, 0xd9, 0xe8, 0x70, 0x4f, 0xba, 0xda, 0x75, 0xab, 0x30, 0x25, 0xce, 0x14}: "EfiComponentName2ProtocolGuid", efi.GUID{0xff, 0x6b, 0x55, 0x0c, 0x6a, 0xb1, 0x9d, 0x43, 0xa3, 0xec, 0x11, 0x64, 0x37, 0x8e, 0x2c, 0x2a}: "AmdPspPeiV2", efi.GUID{0xff, 0x79, 0xb0, 0x63, 0x6b, 0x21, 0x8c, 0x40, 0x8c, 0x2c, 0x1a, 0xfd, 0x25, 0x81, 0x2a, 0xa9}: "CheckAudioState", efi.GUID{0xff, 0x7c, 0x11, 0xd8, 0xa6, 0x94, 0xd4, 0x11, 0x9a, 0x3a, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d}: "EfiPeiPeCoffLoaderGuid", efi.GUID{0xff, 0x7d, 0xe3, 0x3f, 0xa0, 0x7c, 0x34, 0x4f, 0xb1, 0x2a, 0x68, 0x94, 0x08, 0x11, 0x9f, 0x70}: "TxdDxeDriver", efi.GUID{0xff, 0x88, 0xee, 0x6f, 0xed, 0x49, 0xf1, 0x48, 0xb7, 0x7b, 0xea, 0xd1, 0x57, 0x71, 0xab, 0xe7}: "FmpDxe", efi.GUID{0xff, 0x89, 0xad, 0x5b, 0xe6, 0xb7, 0xc9, 0x42, 0x81, 0x4a, 0xcf, 0x24, 0x85, 0xd6, 0xe9, 0x8a}: "EfiEventNotificationTypeNmiGuid", efi.GUID{0xff, 0x8b, 0x58, 0xe5, 0x83, 0xe4, 0xb2, 0x4b, 0x8c, 0x43, 0x44, 0xf3, 0xb7, 0x05, 0xb4, 0x13}: "KEMrWdtDxe", efi.GUID{0xff, 0x8f, 0x6e, 0x66, 0x37, 0xf9, 0xa7, 0x41, 0xaf, 0x2f, 0xf7, 0x2b, 0x79, 0x0d, 0xeb, 0x8c}: "SmbiosDataUpdateDxeXPV", efi.GUID{0xff, 0x9b, 0xa1, 0x35, 0x49, 0x18, 0x7e, 0x47, 0xa5, 0x89, 0x7b, 0x44, 0xe9, 0xd8, 0x9c, 0xa5}: "TypeACh", efi.GUID{0xff, 0xa1, 0x19, 0xb6, 0x3f, 0x3b, 0x41, 0x49, 0xb0, 0xf4, 0x2b, 0x05, 0x3b, 0xbd, 0x17, 0x20}: "FpgaFvDataLibPei", efi.GUID{0xff, 0xae, 0xac, 0x2e, 0x52, 0x64, 0xea, 0x4f, 0x9b, 0x32, 0x9b, 0x12, 0xcc, 0x56, 0x51, 0x4f}: "A01SensitiveVariables", efi.GUID{0xff, 0xaf, 0x50, 0x69, 0xe3, 0x6e, 0xdd, 0x11, 0xad, 0x8b, 0x08, 0x00, 0x20, 0x0c, 0x9a, 0x66}: "AmdAgesaDxeDriv", efi.GUID{0xff, 0xb0, 0x04, 0x0c, 0x7d, 0x22, 0x9a, 0x47, 0x93, 0x5a, 0xf6, 0xe5, 0xa8, 0xb5, 0x19, 0x8c}: "EfiPeiPlatformTypeLightningRidgeExecB2Ppi", efi.GUID{0xff, 0xb3, 0x32, 0x6c, 0x2c, 0x9f, 0xc5, 0x44, 0xa0, 0x36, 0x34, 0x8a, 0x38, 0x8c, 0x63, 0x1b}: "PchIoExpander", efi.GUID{0xff, 0xbe, 0x6c, 0xbb, 0x72, 0xe0, 0xd2, 0x40, 0xa6, 0xeb, 0xba, 0xb7, 0x5b, 0xde, 0x87, 0xe7}: "TcgPlatformSetupPolicyGuid", efi.GUID{0xff, 0xd0, 0xaa, 0x9f, 0x0c, 0x0e, 0x85, 0x48, 0xa7, 0x38, 0xba, 0xb4, 0xe4, 0xfa, 0x1e, 0x66}: "FspmWrapperPeim", efi.GUID{0xff, 0xd8, 0x47, 0xe7, 0x94, 0x17, 0xc6, 0x48, 0x96, 0xd7, 0xa4, 0x19, 0xd9, 0xc6, 0x0f, 0x11}: "DellSioPolicyConfigPei", efi.GUID{0xff, 0xdc, 0x4b, 0x0b, 0xb2, 0x74, 0xad, 0x45, 0x91, 0xe1, 0x8f, 0x66, 0x34, 0xc8, 0xa1, 0xdc}: "SIOBasicIOPei", efi.GUID{0xff, 0xed, 0x58, 0x89, 0xf7, 0x02, 0x49, 0x4e, 0x87, 0xb1, 0xfb, 0xa4, 0xbe, 0x4e, 0x87, 0x68}: "SmbiosDataUpdateDxeLightningRidgeEXECB4", efi.GUID{0xff, 0xf0, 0xff, 0x70, 0x43, 0xa5, 0xb9, 0x45, 0x8b, 0xe3, 0x1b, 0xdb, 0x90, 0x41, 0x20, 0x80}: "TcgInternalflagGuid", efi.GUID{0xff, 0xfb, 0x19, 0x3a, 0x92, 0xab, 0x04, 0x40, 0xad, 0x2e, 0xf7, 0x69, 0xf5, 0x3a, 0xae, 0x63}: "ApobRplPei", efi.GUID{0xff, 0xfc, 0xe0, 0x9f, 0x23, 0xb0, 0xa1, 0x49, 0xa2, 0xc8, 0xac, 0xce, 0x1a, 0xa0, 0x10, 0xbb}: "FboSmiFlashLink", efi.GUID{0xff, 0xfd, 0xde, 0xa5, 0x4c, 0x94, 0x4d, 0x4b, 0x9a, 0x76, 0x8c, 0xf3, 0xac, 0xad, 0x2f, 0x7b}: "IntelRaidAtaAtapiPassThru", efi.GUID{0xff, 0xff, 0xec, 0xff, 0x3c, 0x92, 0xd2, 0x14, 0x9e, 0x3f, 0x22, 0xa0, 0xc9, 0x69, 0x56, 0x3b}: "EfiPerformanceProtocol", } } ./github.com/canonical/go-efilib/guids/guids.csv0000664000000000000000000235720700000000000016712 0ustar0000000000-0000-0000-0000-000000000000,ZeroGuid 00000000-0ED6-4E09-BBF9-28325DB6BA30,BSODDxeRuntime 00026AEB-F334-4C15-A7F0-E1E897E9FE91,NvmeRecovery 000AC7B6-F44D-4220-BD8B-521D30DEA80F,HpGraphicsDetectDxe 000F42D0-283C-46AB-9287-ACB6C9941FCD,SmmSupvErrorReport 0013BE6B-2198-43F1-93BA-2A7ED7B1E1CC,SystemUsbSwitchDxe 00160F8D-2B35-4DF2-BBE0-B272A8D631F0,FirmwarePerformanceDxe 001D24D1-4AB1-B202-42D1-0FB9F4E4AD36,BiosPowerOnPortingSmm 0029231B-72EF-4FA5-BD37-7018A046FB0D,LenovoMultipleKeyboardService 0029DE6A-E024-4EB8-A91D-9F23AA1F4E92,NetworkStackSetupScreen 003443BE-0997-42D9-BB92-FCDF6926DCEE,FchSmbusDxe 00364A4C-6A0A-4F08-8FFD-0937F3DBB13E,IdeBusBoard 0049858F-8CA7-4CCD-918B-D952CBF32975,VirtioFdtDxe 004E6CC2-D60F-4726-BE22-D3D8020C4687,AsusSmartHsioDxe 00504624-8A59-4EEB-BD0F-6B36E96128E0,FpNvStorage 0053D9D6-2659-4599-A26B-EF4536E631A9,ShellAliasGuid 0062F7D1-F7DB-44FA-ABEE-F7A3CC636E0B,PhStallPpi 0065B106-EB27-4A3C-851C-EC77D51EDCD6,AbsoluteActivateDxe 0065D394-9951-4144-82A3-0AFC8579C251,EfiPeiRscHandlerPpiGuid 0067835F-9A50-433A-8CBB-852078197814,EfiCpuCsrAccess 00720665-67EB-4A99-BAF7-D3C33A1C7CC9,EfiTcp4ServiceBindingProtocolGuid 0072F4B5-74D5-4CC8-AFF6-CC9469D33F7B,UsbMediaCardReaderConfigDxe 00781CA1-5DE3-405F-ABB8-379C3C076984,AmiRomLayoutGuid 007A2B20-8383-4CD2-AF81-2994473434D8,UsbOcUpdateDxeBigPineKey 007AF6DC-BB4A-4D2A-8B57-A96A307275B5,FJFP_PBA_64 0086AF89-AE1A-4435-A698-0815E850A004,AsusSetupReserveVariableItem 0090F816-86A1-4638-97C8-4D1BD79E7E5F,SmcPeiReportStatusConOut 00A2B266-B5CF-43A8-8547-CBEBFDEC894C,SmmSvcCallback 00A480CE-D751-4B11-89FB-7DCEBBB22F4D,DellPmPolicyProtocol 00B46EC9-2712-486B-A6A4-E2933581C28B,HstiPlatformDxe 00B8E6B5-83CE-448A-8AC6-CCBC9D5F3BE3,FchTaishanSmmInit 00C86DB8-013B-4FF4-B8E9-208F4FCF1C00,LibSignal 00CA959F-6CFA-4DB1-95BC-E46C47514390,EfiTlsProtocolGuid 00D6B14B-7DD0-4062-8821-E5F96A2A1B00,FspReservedMemoryResourceHobMiscGuid 00D6E846-49C7-4517-AC79-A70E8BC0553C,AmdMemChanXLatSspPei 00DBD91D-55E9-420F-9639-5E9F8437B44F,EfiExtendedSalStatusCodeServicesProtocolGuid 00DC20A3-66A2-4D14-BBD7-5BA938E556DE,LenovoSmbios 00E98021-F4FE-46CC-AB2D-894C373AFA01,DxeEnhancedSpeedstepProtocol 00EEAB3B-4719-432D-A2DC-C97A2C62BFDD,DellPermDevConfigPei 00F02769-AE45-41CF-AA58-6377B87BA99A,DeviceLayoutLoadPei 010216CD-9C09-4EB5-B7DA-D0A2865092D4,ProjectDXE 0102ADD8-037F-46FC-A9F2-41D352D2F695,TouchPad_Elan_2nd 010574D3-9CA7-4265-A536-D10E7A8CDCB0,OemSolPei 011A7546-DB4E-4119-A216-9A3167B6AF56,ComputraceDxe 01237498-4E20-42E5-BF75-1CD3B20F7CE3,PlatformStatusCodeHandlerPei 01239999-FC0E-4B6E-9E79-D54D5DB6CD20,EfiServerMgmtSetupVariable 0127B951-E840-480A-A083-087A9AE17353,LEMSetVariableCtlSmm 013295AB-6680-4C41-9C98-C41AA6F5188B,FlabLoadUadmDxe 013464B6-AC20-4E86-A2F9-23CC4650DDC2,MemoryDiagnostic 0135229A-EBB5-4A21-957D-1D20057CF751,TCMPEI 0135229A-EBB5-4A21-957D-1D20057CF752,TCMDXE 01359D99-9446-456D-ADA4-50A711C03ADA,CpuPei 01359D99-9446-456D-ADA4-50A711C03ADB,CpuPeim 01368881-C4AD-4B1D-B631-D57A8EC8DB6B,AmiGlobalVariableGuid 013A1234-DB4E-3123-CEA6-9A31982CAE96,DiskSanitizer 013A65AC-DB4E-3123-CEA6-9A31982CAE96,HddDiagnostic 013A65AC-DB4E-4119-CEA6-9A31982CAE96,ABCTDxe 013A65AC-DEAC-3123-CEA6-9A3198223E96,MemTest 0154DD51-9079-4A10-895C-9C0772815788,PlatformBootManagerStringPackGuid 0155DB6A-3C05-46F6-9341-FEFA4085E61E,FjPostScreenMfgErrorCheckDxe 01631791-F34E-4C0A-B15D-0B6CE22B27A8,TcgPeiAfterMem 01637772-B022-4047-BD52-35454C1C6B9F,Armani_EcCommunicationSmm 0167CCC4-D0F7-4F21-A3EF-9E64B7CDCE8B,ScsiBus 0167CCC4-D0F7-4F21-A3EF-9E64B7CDCE8C,SystemAhciBusDxe 0170F60C-1D40-4651-956D-F0BD9879D527,Virtio10 0174B2B5-F505-4B12-AA60-59DFF8D6EA37,ShellNetwork2HiiGuid 017CB4B7-B80C-4040-B6C8-EA982BBB25B7,AmiSmbusHob 017EA01C-4988-4CD9-8A6C-3480E386A325,LegacyStr 017F2629-2D3E-4EA9-9E59-88DA4D98C027,SpiProtectionPei 01806607-245B-47A8-952A-DC8C5C6A5316,OemDeviceDetect 0182244E-F95D-43FC-91EC-60594EF47599,Lpc47m18xDxe 01882424-63B1-4E30-90E8-4C2C344E89C0,RecoveryCpuInitPei 018A5C7A-12EB-429D-9DEF-6FCC410B04E8,IioCfgUpdateDxeLightningRidgeEXECB4 018AA4F0-773E-46F3-B62D-2C70EA32E0D0,EfiSystemPartCapsuleStorage 018E1925-D6A2-4A2A-8958-817610A15ADF,PeiS3LibNull 018E4D93-E8CF-4F51-9170-2658ECA4C9E3,AmdMiniRasStxKrkServiceDxe 018F3936-3A40-459D-9C82-3F1F78A90164,DellControlVaultDxe 019FB1CA-D411-4948-B73C-4C054ABA9E8E,FastBootFunctionEnabledHob 01AB1829-CECD-4CFA-A18C-EA75D66F3E74,IntelMebxProtocol 01AFCA2F-5089-4559-BEF3-6163AE15AE90,FRUSelfRepair 01B95206-CD66-4C0D-A867-ED42960E07DC,SystemFirmwareDeviceSmmProtocol 01C827C2-7765-42E9-B31C-E03E89A09113,AmdSocFp5RvPei 01CF676F-6F01-4FA3-9789-B6322D890394,AmdCcxZen4Pei 01D127EA-F6F1-4EF6-9415-8A000093F89D,UEfiCorebootPayloadPkgTokenSpaceGuid 01D6940E-06A2-455C-A0CA-DD380B3CEA31,SDSecureFlash 01D8F749-FD74-4F70-A393-6FED1D2C8D32,AsusWmiToProtocol 01ED6C55-0D2E-4859-BB57-3044737A3679,PhConSplitterDxe 01F34D25-4DE2-23AD-3FF3-36353FF323F1,EfiPeiPcdPpiGuid 01F7EC2A-8F6E-4C51-94C2-DE0E1C223F73,RasAcpi 01FB5D53-4FF9-4AD9-ADF5-7DC63659A1B2,PeiPciEnumeration 02005ACC-AD91-42B9-8636-403B4F5799C2,LenovoFlashDeviceInterfaceSmm 02049744-32D9-4338-A64B-FDC42C836F9A,FchDxe 02049744-32D9-4338-CCCB-FDC42C836F9C,FchPromontoryPlusDxe 02061E01-BEBD-4DF5-81B6-DFC4F23D1D00,SensorI2C 020BC7C9-80E5-476D-B187-0FB754850CAB,PvnvramDxe 020BCB33-7EA7-4E48-9AF8-1B6AC52CE83F,MeBackDoorSMI 021722D8-522B-4079-852A-FE44C2C13F49,SataController 021BD2CA-51D2-11E3-8E56-B75417C70B44,UsbDeviceProtocolGuid 021D723A-501C-4D1E-B792-0D3C4651B848,OemWwanSmm 022218B8-FE5E-4EBC-BC96-74058A4E7E83,ErrorGlobeBorder 02281CDA-5AE2-4A27-93DA-18ED4A545FBF,MRCErrorHandler 02337E07-2CF2-46BE-BCF7-834945FCCEB9,EfiUnbootablePartitionGuid 023B3AA9-098F-4027-B83F-B6407DA06569,AmdPspFtpmDxe 0246E0B3-E8EA-4E03-B2A5-39FA937FD122,SsidPei 024DEE41-33E7-11D3-9D69-0008C781F39F,EfiPartTypeLegacyMbrGuid 02509C17-DD0B-4915-81F6-1DE4BA954B14,FanTableSmm 0250B201-273B-4A64-9CAC-4FE9FB56F65E,AmdRAIDCoreDxe 0250D7AB-AADE-4691-8909-8DC184822D1D,SmbiosTpmDeviceInfo 0253F9FA-129A-4A8D-B12E-7DC2B6376302,dpDynamicCommand 0255DED3-BF9C-4155-8DDB-6E8609EE0482,AmdGopPlatformToDriver 025BBFC7-E6A9-4B8B-82AD-6815A1AEAF4A,MnpDxe 025F738B-4EBD-4D55-B728-5F421B601F1F,PlatformInfoDxe 025F738B-4EBD-4D55-B728-5F421B601F20,PlatformCpuInfoDxe 0273146C-96C4-45A1-A7AF-78E0524A0AE2,AmiBoardInfoProtocol 02814228-57C8-405C-8A67-C928E4B50992,EepromInterfaceCoreSmm 0284F846-2CB7-4960-8DB2-47AA71513AD5,menu_selection 028944F1-313F-4689-8CCD-EDBE92380C7E,ClientCorePeiPreMem 02955B8D-DF90-4ACB-B242-78D06B3FA6CA,TrackPointJYT 029D4C32-51E8-4866-BF51-FD0ED9A2DC55,DellBiosDimmLocation 02A6DE33-3EA9-4C17-8EA2-5681CC7AFDED,VMDDxeEfi 02AC0805-155F-473A-A302-0D89D6E1E6CC,AsusSLP2 02B01AD5-7E59-43E8-A6D8-238180613A5A,EmuVariableRuntimeDxe 02B2E27A-E8B5-4A42-82C3-55B43222EB9B,HpGFIStrsSubComp 02B3D5F2-AC28-11D3-9A2D-0090273FC14D,EfiTcpProtocol 02B92D47-5227-4C18-9FF5-888550C395B9,MktmeLateInit 02BA5CFC-D092-4404-9E52-A1B018525056,SiliconDataInitSmm 02BD55C2-AB1D-4B75-B0FD-9A63AE09B31D,BaseMemoryLibOptDxe 02C0AB0D-D5F0-4CAD-A4BF-0CC40A554BBD,HpInitNVSWksSmm 02C38DE3-FB92-4B29-9430-ECE6D0C0F3B0,FjMfgServicesDxe 02C40333-CED5-45BA-8836-B47E4C36489E,PlatformFanControl 02C5A102-58EA-4E53-8BE1-6ED1ACAA708A,AmdMemoryHobInfoPeim 02CE967A-DD7E-4FFC-9EE7-810CF0470880,EfiEndOfDxeEventGroupGuid 02D46AF0-78A0-43FD-A9D6-25B094E0BA93,LEN0130Driver 02D7DFE6-CB36-4FF9-9ED9-31806B797251,FchSmmDiagDispatcher 02E800BE-8F01-4AA6-946B-D71388E1833F,EFI_MTFTP4_SERVICE_BINDING_PROTOCOL_GUID 02EEA107-98DB-400E-9830-460A1542D799,Ip6ConfigNvDataGuid 02EEC6CF-FDF5-4FF0-A6AF-DF569BCD6828,HpDimmIdDxe 02EEC6CF-FDF5-4FF0-A6AF-DF569BCD6829,HpDimmIdSmm 02F04694-2C0A-4F1E-B0CE-64BE25890B03,DebugAgentTimerLibNull 0301BE48-7D25-443C-AA77-D5E753DB416A,EfiRsaBmcCommandsProtocol 0302DCB7-A6A3-467C-B85E-F21DB7E8533B,SmmDispatchEngine 03068297-DDA5-4CCD-BBFA-7E09AE025177,I2cTouchPanelDxe 0317F4CE-AD43-4461-8D14-B9F2543FD839,SataDriveInfoDxe 0325A554-05BE-466B-BC8C-70BE3C9DAFB1,AmiTcg2InfoProtocolGuid 0325B5A1-0937-4A4F-B8AF-EC3F80EE6B35,SataControllerLite 032DE3F1-1362-45A5-A5C2-44A0E63CC263,FjGabiSystemTableSmm 03327D04-C807-4B76-965F-B30046F15391,VtioSetup 033FF0BE-ABFB-40AC-87E3-C22A69BD7FA7,TransparentUnlockDXE 03417BF3-6D95-41DF-88EF-0DDA6E86DC34,AsfPei 0347E9D2-3778-46DC-B8B5-F1687C703973,FjWwanRfSettingUIDxe 034AA642-91B0-4160-A0F7-D31A28E013CB,H19DisplayControl 03583FF6-CB36-4940-947E-B9B39F4AFAF7,EfiSmbiosProtocolGuid 0365E9E2-A03E-49BE-8B2B-02B7E3AE953C,KeyMonFilter 0369593A-BA9B-457D-B46F-31D83A96D6FE,DehSmmProtocolVer3 036B6292-2793-4DC0-9A7F-D6B5F034558C,FjSystemHooks 036F84E1-7F37-428C-A79E-575FDFAA84EC,EfiIommuDMArErrorSectionGuid 03721EF2-1801-4C91-A213-147323F75132,AsfTableAsl 0379BE4E-D706-437D-B037-EDB82FB772A4,EfiDevicePathUtilitiesProtocolGuid 037B547A-97E8-4FF2-8CD1-DCB7A1B4915A,SetupConfigUpdateDxeArcherCityModular 0387F555-20A8-4FC2-BB94-CD30DA1B4008,EfiWindowsInt10Workaround 038CE287-B806-45B6-A819-514DAF4B91B9,DellErrorLogConfig 038EF9A9-5969-4793-964F-FF12FA18393E,AmdCpmOemInitPeim 0393D0C4-6B0C-4B96-B4C3-8C7EB718F348,CsrPseudoOffsetInitSmm 0397B0C9-22E8-459E-A4FF-99BC65270929,Tpm2StartupLocalityHobGuid 03A8E402-2AB7-46B3-B591-740383796B82,AmdMemChanXLatDummyPei 03ADF4A1-A27A-45E3-B211-3177C6C2E7ED,SmbiosBasic 03AF477A-8336-0142-8A65-B4BD93B1A1A9,FirmwareExtension 03BF5679-5749-4BC5-A53F-47471DA767C8,IsscSmm 03C1F5C8-48F1-416E-A6B6-992DF3BBACA6,A01SmmServiceBody 03C4E603-AC28-11D3-9A2D-0090273FC14D,EfiPxeBaseCodeProtocolGuid 03C4E624-AC28-11D3-9A2D-0090293FC14D,EfiPxeDhcp4Protocol 03C70B0D-67E6-5C16-8E57-312DF246A961,BootChimeAudio 03D56EEC-E196-4815-B91A-C4885A839043,CompalGlobalNvsDxe 03D73468-3D39-4C9E-97F1-1FA925BD7D9E,SystemSecureVariableStorageDxe 03DA99B3-DDF4-4C7E-8CCA-216FC3F1F311,BaseFspSecPlatformLibNull 03DBB540-E186-4615-8A7F-A427863B4E56,PoofAnimationState1 03E0A38B-3FBE-49CB-B311-726611213182,EgsFhfPolicyOverrideDxe 03EBDB4B-96BA-4F40-8329-7F3AA8865707,EcIoSmm 03FA15BF-A5C8-4006-81B5-B836E7A70030,GnbSummitRouting 03FDF171-1D67-4ACE-A904-3E36D338FA74,SeCPlatformReadyToBootGuid 04062BAD-2117-46DF-AEB9-8E468D8326E5,OemCheckRtcBattery 0412A7A1-C050-42C2-877A-77C379F9F5F1,FirewireOhciDxe 0419E4C6-4E8E-4436-8509-38B7AE50BFFD,ReadyBootSMI 0419F582-0625-4531-8A33-85A9965C95BC,WinNtBusDriverGuid 041CE993-6677-4720-A665-375B80FFE012,DellFpThunk 041FD986-B016-47CE-AFC5-2269EDD4AD64,ACPIS4Dxe 04356799-81B7-4E08-A38D-D978FA47BA42,EfiExtendedSalSmComLayerServicesProtocol 04398FAF-B8D6-4C35-99C9-037911233DD9,H19QRCodeCreater 043A3340-7CD0-4338-B7FE-7A6AEB790A28,HidKeyboardDxe 043DF38F-32E1-4893-911F-37A7FE91F723,CapsuleProcessorDxe 044310AB-77FD-402A-AF1A-87D4120E7329,FirmwarePerformanceSmm 044D9982-AA57-45D7-BB7D-62966AF7356B,DellStatusCodeHandlerPei 0455CEAF-FE5C-442F-BA23-34DFDC77505A,NewRsmSampleDriver 045B6F49-9102-4590-A0A5-35311B0AEFC3,EfiDpsdRSA1024AndSHA256SignatureVerificationProtocolGuid 045E78D8-3D5D-4EE5-90AA-42121E1EEE49,CbsBasePeiRV 04609BF5-E1C3-44FC-E4DE-7F9489362184,BiosConnectDaInterfaceSmm 04624E48-D24E-4670-BDFD-124DD92F3DAD,PxeDriverI225 04627B9B-385E-4744-9021-E66319F20394,AmiPbKeyRsa2048 04688D96-3468-4D52-9727-357B9AED6727,FchPromontoryPlusCbsPei 0468A601-C535-46FD-A95D-BBAB991B178C,EfiPowerOnHobGuid 0469CF6E-1A81-4FFF-AC00-1608472EA307,MsdmUpdateSmm 046C44DB-59DF-41B3-AF53-EF707B930E9A,FtRecovery 0471BC5B-64BE-43BF-8FA1-435AF1161384,CrystalRidgeMeasurement 0477CC85-F610-47B9-B322-42E1A93D9EE7,FjGpioAbstractionReferenceSmm 047CA5C8-EFA6-64CA-98EC-A01DF3BCC6A8,A01BootDeviceServiceSmm 048520E2-46BC-829D-5683-329BF1162CD2,BiosPowerOnSmm 04877BE8-FAC0-448E-801D-F0F895CCB012,SmbiosDmiEditSsi 04970E59-FCCC-47CC-B945-7976EE7DBB7A,OKRConfig 04A0D644-5599-430A-A4E1-C8FEE8CBF46A,SmbiosType142 04A76C80-06B9-445E-B73E-CB8C61A6A964,SIO791 04AFC94A-73AF-432F-BECB-B794568AC985,DellOnboardNicSmm 04B37FE8-F6AE-480B-BDD5-37D98C5E89AA,EdkiiVarErrorFlagGuid 04C332FD-14D3-411C-A1EF-6512E260339E,FjNvsAreaSmm 04DD0ECD-4844-426D-AE59-1EF632C5EA4C,SystemDxeToSmmEventDxe 04DD1EE1-4C38-41C7-83C6-4ED6BB692CFD,AaeonDioDxe 04E86DFA-6FA9-4749-A069-5A708F416AF7,OemPDAutoFlash 04EAAAA1-29A1-11D7-8838-00500473D4EB,UsbRtSmm 04F5B0F1-73E2-4CC4-9741-662DBC3AB78B,ErrorCodeHandlerSmm 04F75442-A593-4281-BD4B-095935B7D2F8,wifi_1bar 04F7F9B7-1248-497C-B0EB-8F748ABFCAF0,DellVideoProtocol 05041A6B-4DEE-47BB-9E58-5944D1870EE5,UsbConfigGuid 050EB8C6-C12E-4B86-892B-40985E8B3137,UefiDevicePathLibDevicePathProtocol 05105279-DCE6-4D27-BA3C-0C6F3E8DE66D,SetBoardIdVar 051274F4-A724-4732-BE00-82793A3D499A,AmdUsb4Dxe 0515BC05-2959-4E91-89C6-6B3A3F1FCB65,TCG_MPDriver 05161583-2AB3-43D1-8087-E890997B0F80,DellPlatformFlexBay 051A0B77-C066-4610-9904-BF25C296D6E6,LenovoEn25Qh32FlashPartDxe 052D9C71-95DC-4C3B-9B8F-B37655DB54E6,TrackPointJYTNDT 052E6EB0-F240-42C5-8309-45874545C6B4,BootNowCount 05302B01-E898-494E-9FB1-9E02DC5D7CCC,EcMudPei 0533A9C8-2988-47FF-9596-030E9651859F,DellECBeepDxe 0535C332-6D4D-4D89-9468-F3627BB386CE,H19MpmRuntimeDxe 0541150C-E33B-4DAF-A263-02E4BB4BF1CF,SecurityErrorHandlingDxe 054F2504-E2BC-4641-83FC-502588FE1F28,CpuInitDxe 0559E886-AC78-4BCC-899A-E7830B5D6462,SystemSmbiosBcpSmm 0565365C-2FE1-4F88-B3BE-624C04623A20,MicrocodeUpdateDxe 0565963B-3DFD-4712-9CFD-614C5EDBE592,MsiBoardPei 056623DC-1285-4EAF-9446-75C3B00F78C6,FchMultiFchDxe 05687F4A-3CA7-4D19-9BC5-E180CEA3569F,AmiPlatformSecurityChipGuid 056BCA18-2F19-41EE-84EA-83746CB5069A,CrystalRidgeSMM 056E7324-A718-465B-9A84-228F06642B4F,DxePlatform 0571DC0C-D3B8-422C-A9EF-AC446483BDFE,VisualCSM 057A449A-1FDC-4C06-BFC9-F53F6A99BB92,EfiPciCfg2PpiGuid 05839AAC-361D-47D8-B2BA-50D5F4B09AD8,AsusRecoveryFailedPei 0583D694-AF8B-4BAA-9583-813CEDF40843,CsmInt10Block 0584FC67-72B9-4D46-AE3E-AD330452D9B4,InputDeviceAggregatorDxe 05885D44-9588-428E-9EB0-1CA7E54CA96B,TdxPostMem 0589E077-93C8-470E-9B90-958B4E2FE686,DevUpdateProgress 05913B1B-DB0C-4679-94B1-F8AA09B4A971,FjPcieCardReaderRTS5250 05984E1A-D8BB-5D8A-A8E6-90E6FB2AB7DA,AlertUI 05ABE46F-BFA5-4C68-B305-3D545C58D805,Vby1PeiPreGop 05ABE46F-BFA5-4C68-B305-3D545C58D806,Vby1PeiPostBuffer 05AD34BA-6F02-4214-952E-4DA0398E2BB9,EfiDxeServicesTableGuid 05B0A258-308A-445E-B669-A854549D225C,SmmCpuProtocol 05B17EF3-26CB-444A-82F7-92705CFB6B1E,DellSetupFormSets 05C99A21-C70F-4AD2-8A5F-35DF3343F51E,EfiDevicePathFromTextProtocolGuid 05CA01FC-0FC1-11DC-9011-00173153EBA8,OemRomHole_0 05CA01FD-0FC1-11DC-9011-00173153EBA8,OemRomHole_1 05CDF411-F3C1-4B12-AA64-21416E18A13C,AmdCpmSharedBSmm 05DB6CC9-E9E4-4209-9D46-AA52C4052937,CNVISetupSmm 05DDA141-2DFA-48BB-B09D-D922344947FE,ApobZpRvPei 05DFCA46-141F-11DF-8508-E38C0891C4E2,HfsPlusDxe 05E9CF0F-4BE3-87F4-7265-B796A76959C3,S5MaxPowerSavingsSmm 05F7AA70-A64A-432C-8CEE-4CDECB8671D7,A01ODMDxeDriver 05FC0C8E-276A-422D-BAE1-645CFD7B786B,Cf9Reset 05FE1BB1-41D3-43DD-ABB0-91860B4AB185,AsusBackupSync 05FFB44D-EE01-40E1-9866-FD27FD4FBE92,ThunderboltDeviceDxe 060644B6-6A7F-4A97-900C-49645DA956D7,FchYuntaiDxe 060CC026-4C0D-4DDA-8F41-595FEF00A502,MemoryStatusCodeRecordGuid 0619F5C2-4858-4CAA-A86A-73A21A18DF6B,GenericWatchdogDxe 0625FEA6-F95F-498D-8789-3EA053A06D7E,Cf9Reset 062A6204-8C80-4A27-9D09-96654C965894,AsusHwmSensorPortingDxe 062ACC82-1D1E-4F61-AA94-8B0C47236A3D,BootScriptSaveOnS3SaveStateThunk 062FDFE6-2C0F-462C-9572-92018E6E52E3,HpIcicleRepSet 0633A0F1-78FE-4139-B878-0045E81CB8AB,EfiVolatileMemModeVariable 06384570-1680-4620-9D00-6AD9E3CCB19F,LenovoMtmFormatSmm 0639408B-19A6-4B5D-BAFB-12A2F5114032,Acoustic 0644022E-39BB-471B-8A98-1D8101B112B6,DellECBeepMm 0650F140-439A-2D4F-9807-C92669339399,AppleEvent 0653586A-9ED4-400C-A342-9EFAF99CE54E,SecuredCorePCDeviceIdentifier 067B1F5F-CF26-44C5-8554-93D777912D42,ConfidentialComputingSevSnpBlob 067E2381-7234-4798-B49C-D5FECBFF6D07,VariableAuthSmmRuntimeDxe 06818C78-1C8A-4591-9833-DC0E4B9566E4,TdtAm 06830AC0-75D7-4933-B6AF-4D3AA317D2AF,FJPhysicalPresencePage 0683FB88-664C-4BA6-9ED4-1C0916EE43A4,UserAuthenticationDxe 0684C591-19E8-499D-978A-D715636F1DAB,AmdRasRvDxe 0693BAA5-35D0-4360-83F6-1DF26D3C53CE,SiCpuInitPei 06968B6E-F620-4E8D-A6A6-52552354DD75,LenovoDxeRicohInit 069887DE-145C-404C-9B23-E262A88789AF,RfVlan 06B5947E-FF53-457D-98BC-C5ABC777FD5A,SetupMouseDxe 06BE9C49-717C-46C8-9848-E626B79FAA36,FchYuntaiSmmInit 06D1F4F5-B131-4F7C-A983-20E4BE9E8A3D,DellPSBFuseDxe 06D20D84-A032-4E25-969A-346D255E46D1,CpuCsrAccess 06DE824A-A4E2-4295-A3F6-03B3FEF5B109,LenovoSecurityVariableDxe 06E81C58-4AD7-44BC-8390-F10265F72480,PcdPpiGuid 06ECAF57-1A95-44DD-AE09-AB9B9BD681E9,MpmAsfDxe 06F00EDE-198C-0217-2416-4299BCE072CA,OemMfgdoneDcfg 06F73F04-36C0-4CBC-A3B0-9F16FB603350,OemPxeLoader 07013588-C789-4E12-A7C3-88FAFAE79F7C,EfiSocketProcessorCoreVar 0702269D-380C-4873-BFEB-32F5BC44DD16,AmtLockI2cConInDxe 0703F912-BF8D-4E2A-BE07-AB272525C592,EfiSmmPeiMmramMemoryReserve 0718AD81-F26A-4850-A6EC-F268E309D707,Tpm20PlatformDxe 071A3DBE-CFF4-4B73-83F0-598C13DCFDD5,Slp21Markers 0723F88B-810F-4E44-92A0-A5C83B433698,PchFlashControllerDxe 07261C8F-9F27-4409-BD78-2BB0B691F331,DetectWlan 072A957A-2A7A-4DB1-A35D-21C9795ACD6E,SetupUtilitySilicon1 07309A59-462F-4251-BF5F-324E80CD5B05,WtTimestamp 0732BD39-D6B0-4039-B6C2-9654466DE525,MeudError 0736595D-88AB-483E-9886-8132018980FE,SioChip1InitDxe 0738958D-A35A-4175-ACE9-D32445501D34,FjTpmPhysicalPresenceLockSkip 0739CE30-2E1A-449A-B575-FD64F1B4321D,SystemSetupCapsuleFromInternetDxe 073E2576-F6C1-4B91-92A9-D4675DDA34B1,PttPassThruProtocolGuid 073E7E01-2611-4E85-B896-A3B6767CBA00,AmiTsePasswordPromptEnterGuid 074993A4-19A1-4E0D-B892-8FBCC6D79F35,SaveMemoryConfig 074E1E48-8132-47A1-8C2C-3F14AD9A66DC,EfiGlobalNvsAreaProtocolGuid 07525079-2616-4599-93FA-5EE9E3F0295C,CsmPolicy 0755BB58-3362-4E3C-8D4C-8E0F28366E21,EcGbeSmm 0764AAD8-9D82-441F-80F3-21AFA56F807C,Afu32MOfbd 07683700-036B-440B-8EBA-637F9ECB3DEB,SioSmbusAccessSmm 076E4FF4-AFB4-4B74-8D94-0517BEC86361,FchSmbusPei 076FBF50-EF83-4B77-912C-D5BB77075AE3,CompalThermalDxe 07709C98-414A-4039-B7D0-29C21F105E92,AcpiPlatformFeatures 0770E7A0-9C3A-499C-A311-2F8385080556,BoardInfoSmm 07755871-CA72-42D1-AF0E-5BEB971F7E4C,RtcAlarmSmi 077700FC-1F81-4FD2-8EA8-BE9258884D45,PostScreenInfo 077A3100-1667-45FA-B98C-37651B5073EE,TpmSmbiosDxe 077F6FC5-2D7C-4F58-B12C-F5287E5F5843,DellTagsDxe 0780F2B5-EEA8-4A94-97B8-59C8275D5692,Ccg4ControllerDetectPortingSmm 078485F1-0C1F-4B1B-AFB3-4A09C0EF87A1,It8728SmmFeatures 0784924F-E296-11D4-9A49-0090273FC14D,EfiDriverDiagnosticsProtocolGuid 0787C598-F9C6-4B7F-8C85-0C96C4E1E531,FjHookFormBrowserDxe 07893DFB-115C-4C5E-B54E-9A4E83EE2E70,InstallSLICTable 078F54D4-CC22-4048-9E94-879C214D562F,DefaultFvPadFileNameGuid 079C90B0-1B9C-4C3C-9316-EFC7F680A67B,PlatformSmbiosDxe 079E8E98-AE93-4B9A-8A71-1DC869F23E09,ShellSortTestApp 07A50B13-7539-41CB-B924-9E72B870C6D3,UsbVhcDxe 07A9330A-F347-11D4-9A49-0090273FC14D,LegacyMetronome 07AD733A-0DDB-4244-BD82-071F39E2A420,PlatformSmm 07B348F3-2187-4035-AEAF-F07A85D9754B,AmdEdidOverrideDxe 07B37006-9302-408E-B416-B524D110DD7F,AppleHidInterface 07B58AD3-EB7B-4233-9044-9C9E65A4973B,RZ616_MtkSuppDex 07BDE155-616C-4291-BD0B-24411F3BB908,AmdRAIDCoreDxe 07BEF20E-5E47-4A69-B228-27C6C870EAE1,AmdSocFp7r2PhxDxe 07D1E0C7-1262-481F-95C0-3E05DA38F766,FchTacomaSmmInit 07D279A1-34E4-4168-993B-178B3ACC68EF,AodSetupDxe 07D75280-27D4-4D69-90D0-5643E238B341,EfiPciPlatformProtocolGuid 07DCCAE1-A9AE-4EF4-AA10-468B1C37BECC,OemDxeShp 07DFA0D2-2AC5-4CAB-AC14-305C624887E4,PlatformTokenSpace 07EDEF55-24EC-43F3-8E3E-8C0831E21E68,EzTpmUpdStTpmFwUpdDrv 07F1B357-4270-4122-A32A-7EAB3C013BAC,DfciManager 07F6A3D8-9320-4BCB-BA8B-4FA6055D909D,AmdPspP2CmboxV2Ssp 08018188-42CD-BB48-100F-5387D53DED3D,EfiPersistentVirtualCdGuid 081603B4-0F1D-4022-B6FD-4CE35E09A1A6,EfiUnixNetwork 081C9A43-431F-475D-B84C-93AD6714B80C,DiskIdm 081CCA80-AE21-AFC8-1AC8-3091A8F1CBC5,SmcOobPlatformPolicySmm 082198EB-1731-478A-901C-5A86A9C64910,DellPermDevConfigDxe 08226C3F-BBF8-431B-875E-7361444A23F9,AmdMemSmbiosV2RnPei 0823A088-1248-4285-9616-0111CC76D3C5,SmbusRecovery 0831AB36-D5D0-4280-BED2-A7E27E9FEFC9,HpSioInitPei 0833A84D-8A39-431F-BD1C-30965AAE71DD,ProcessorStartup 0840FF86-F690-4FD8-A891-8BF944B0F324,DellSmmKeyboardBacklightProtocol 08448B41-7F83-49BE-82A7-0E84790AB133,LePassKeyDeviceManager 08464531-4C99-4C4C-A887-8D8BA4BBB063,Ps2MouseDxe 08497E75-0BF6-40E2-8ABF-B98DFB464C93,SpiFlashPeiLibNull 084A92B2-036A-414C-ADEA-620ACF547664,RasMiscDxe 0859BA18-7DD7-4ED7-A88E-109C63917BDD,EfiPlatformMemtestProtocol 085A786C-5CFF-4762-81CF-D7CBFECA77D4,AmdPlatformRasBrhSmm 085DDD80-CE41-4FA8-B298-6071E8F62BC5,SmcOobPlatformPolicyDxe 085E8CC2-8EC9-4666-BD2A-49D481E95FA7,FjEvteLaunch 086147FA-4C0D-4781-AD27-0A3725F03F2B,DxeDg2OpregionInit 0872E0A5-6D38-4567-964C-7A3B48053A4F,FdmInitDxe 08747359-BA88-42F8-9D25-F71D93B6CD26,EcFlashSmm 087568D7-5A70-4DDC-84FD-92E358E7BF2C,NvmePciHcPei 087E9760-1FB5-49F7-879A-853D2B214CC7,LenovoSlp2Dxe 08804377-AF7A-4496-8A7B-175900E9AB46,EdkIIRedfishCredentialProtocol 0885F288-418C-4BE1-A6AF-8BAD61DA08FE,AmiTseDriverHealthEnb 08A2CA63-3B65-472C-874E-5E138E947324,AsusEcDxeRt 08A92691-926C-414F-A0B5-E785D90B9853,Memory_OK_DXE 08ABE065-C359-4B95-8D59-C1B58EB657B5,IntelLomSmm 08B2E586-35A8-4A3F-A9ED-E48134891601,SmcInBandSmm 08B97689-86AF-4A36-9E35-117B4D2EF26A,AfscDxe 08BB308D-C7D8-4D7B-B4D4-BC4BB53768A6,OemVariableInit 08BF43A1-CD5F-44E4-8275-7D3B79228FA3,Lpit 08C8BAE1-92A6-49D5-FFFF-FFFFBA9D8DC2,SplashDxe 08CB0301-F702-4F88-A1A2-B51C2D99E80C,SioCashDrawerPei 08DD466B-69FB-4C41-90B2-551161C5ECAC,AmiAgesaChipsetDxe 08EFD15D-EC55-4023-B648-7BA40DF7D05D,PeiRamBootPei 08F21707-8AE6-4467-B075-5CB33C880C10,DellPscProtocol 08F2C63B-08DE-4CCD-8670-ACFE644A1C48,PchS3Support 08F60D48-F447-42B3-83EE-BEACDE588204,PolicyInitDxe 08F74BAA-EA36-41D9-9521-21A70F8780BC,EfiDiskInfoScsiInterfaceGuid 08FA7EC9-60D4-47C8-B299-9F83B4A9DAC3,AcpiOverride 08FBD32F-867F-452B-B134-705161F73333,LenovoCryptServiceSmm 0903DD14-2CA0-458A-B5EB-0C0CA30D785C,AmiSmbiosBoardProtocolGuid 0914DE08-434D-4F9F-93B3-6FA48AEAF7E0,DellSpiPartMicron 0916E322-3740-31CE-AD62-BD172CECCA36,AsrockRaidSetup 091AAEA3-09A9-40F6-9864-0139388A9F8C,XhciPei 0922E604-F5EC-42EF-980D-A35E9A2B1844,IpSecConfig 09286371-5FF2-4065-B3D2-B81C882898AB,HpIcicleSmm 0939A4CC-DC2B-48A0-909B-30994D39D82C,ReportStatusCodeRouterSmm 093E0245-BDA6-48C7-A0B4-C3C9BFB87C79,WLANDxe 093E0FAE-A6C4-4F50-9F1B-D41E2B89C19A,EfiCertSha512Guid 094325E0-4DA2-4912-990B-D6DB19077573,HeciAccessDxe 094788DA-6FFA-4031-B435-FF9623656034,PspDxe 0948381E-0B3D-43A9-8E03-F2489F2B9E2E,FchSmmDispatcher 09576E91-6D3F-11D2-8E39-00A0C969723B,EfiDevicePathProtocolGuid 09576E92-6D3F-11D2-8E39-00A0C969723B,EfiFileInfoGuid 09576E93-6D3F-11D2-8E39-00A0C969723B,EfiFileSystemInfoGuid 095E3853-2F3D-4061-BBDF-0EC0D478FD16,OemServiceDxe 096111BF-B355-4180-BA39-737153339F0E,ServiceBatteryRemoval 09633AD2-2A5E-4562-90A8-24C673C4097C,AmdMemFp8Pei 09767DB6-412A-45BA-8026-F087CAE210E3,DTSPolicy 097CEE1C-A7F0-40CB-AB0D-F0774AE90E2B,FjSetupPower 09813137-B2A5-4462-8A2A-48F77ECA31BF,SmbiosDataUpdateDxeExpertWorkStationRP 09831032-6FA3-4484-AF4F-0A000A8D3A82,PL180MciDxe 098515FC-9F73-4BE4-B542-D38BE9E91E96,FlashUtilitySmm 098ED901-C6BF-4D20-91E2-A39F0C084A8D,QuickSpi 0996199F-2CE2-4D97-830B-077A7B28588A,WpbtDxe 0997E770-756E-4139-BF3F-7FC2A308177E,DellSmmS3 099CFA27-134F-449A-AF4A-D29C441CB521,AsusAmlBuffDxe 099E1F39-0102-43C3-8CEC-8E897B6562F7,EventLogSmm 099FD87F-4B39-43F6-AB47-F801F99209F7,DellDcpRegister 09A9D5AC-5204-4214-96E5-94992E752BCD,EfiEventNotificationTypePei 09B5D8DA-9A25-47AF-A810-45A6D549E3F7,FjI2CPpi 09B8BA84-3DD3-49A6-A05A-3134A5F07BAD,ArmScmiPerformanceProtocol 09B98059-2D74-43C5-9709-AD0A0051867D,DellAhciDxe 09BD2ED8-C485-4D9C-B9A1-7B064C0309D2,UsbSxCallback 09C960B3-DA83-47BE-BBC4-81267BA9B002,FlashBootFlag 09CE2C2D-4D83-44B8-97D0-1085EB5490B8,AsrockRaidLoader 09D13410-2718-463A-8B15-DA93C3CA0A64,UsbCdcEcm 09D445BE-3C89-4E4F-ABE0-51FA84C2E4FF,ScGeneralConfigGuid 09D5B53F-F4B0-4F59-A0B1-7B57D35C0E05,NicIp4ConfigNvDataGuid 09DF88E2-0E05-4F28-A55F-0D62BFBCF59F,AmdFabricRvPei 09EA8911-BE0D-4230-A003-EDC693B48E11,VlvPeiInitPpiGuid 09EA894A-BE0D-4230-A003-EDC693B48E95,PchInitPpiGuid 09EB7679-2152-47F3-B832-EE9B947B29F5,SmartUsbProtection 09FDCB1E-E08B-4B64-890C-70E3174BE07A,FpgaErrorRecord 0A056E30-B2C9-44F3-FFFF-FFFF94A524A6,XnotePowerButtonSmiHandler 0A18976F-6CA6-405B-AF4B-27B8F7F6DB98,AmiUsbIadProtocol 0A1C30D2-7821-4FD2-B3C1-D24FA4C84B6A,DellCfgChangeReport 0A1D4FD8-4704-4501-85EB-93399492CBED,DevShell 0A249BB5-5918-45F5-B220-76A3B6C89529,FjLvdsFwDownPei 0A24A50A-C148-42B6-9302-8ED31D334E73,ASRockNetFtp 0A2FBD15-1C25-407E-8915-60C5652BC2AA,SystemFirmwareUpdateDxe 0A32A803-ACDF-4C89-8293-91011548CD91,MicrocodeMeasurementDxe 0A457A6C-178E-438C-AC96-D9C0EC52BE66,DellTcgPeiPolicy 0A496AAC-8C56-4DA0-A960-E417247A6183,BroadcomLomSmm 0A4D622D-01F4-4974-B3F5-2BFE9888EF92,SLP20OEMPublicKeyVariableGuid 0A4FB373-359F-4A34-B354-AB7B2EB72552,AmdSocAm4SmPei 0A58B5C0-0E01-429C-A8AD-EB7349A5CFA5,DellPlatformVTdPolicyDxe 0A5EA2E1-BE0B-44A0-A775-F429C9A018A0,PlatformInit 0A602C5B-05A0-40C4-9181-EDCD891D0001,OememDxeBin 0A602C5B-05A0-40C4-9181-EDCD891D0002,OememSmiBin 0A602C5B-05A0-40C4-9181-EDCD891D0003,OememPeiBin 0A66E322-3740-4CCE-AD62-BD172CECCA35,ScsiDisk 0A7521E1-09F1-44AE-9B5F-2781B78971D6,SimpleBootFlag 0A77E089-1590-4442-BBEA-115E19E6358A,EfiOsWdtPolicyProtocol 0A7A6FC0-AD10-445F-BCB0-704AD17CDB23,Ucsi 0A814161-DE67-46E7-A813-B7F8F489AFCD,UpdateSmbios 0A845224-8675-4241-8AE9-4D94C93DEB90,PauseKey 0A8BADD5-03B8-4D19-B128-7B8F0EDAA596,EfiConfigKeywordHandlerProtocolGuid 0A9DB95A-0E4A-4816-8639-5BE4FFA9C909,AmdFabricPhxSmm 0A9EAFB0-FAF9-48AA-91F9-6CCA33061276,BctBaseSmmMDN 0A9F795E-B9FC-4117-BC4E-138695D16562,AmdSocFp5RvDxe 0AA10093-E97A-4E28-8E77-7CB37041B291,DeviceBlacklistWmi 0AA31BC6-3379-41E8-825A-53F82CC0F254,AmiTpm32Bin 0AB697CE-B920-48AC-A265-EC5624EDCDD7,DellDevPasswordProtocol 0ABD8284-6DA3-4616-971A-83A5148067BA,IsaFloppyDxe 0AC12AB3-DD33-4460-87F5-82694D3D7402,SmcOFBDNull 0AC2D35D-1C77-1033-A6F8-7CA55DF7D0AA,CpuPolicyPei 0AC742BF-07C6-4C87-A87D-A3B2918AFD00,TileDxe 0AC7D82C-9BAD-419F-B8FF-B39BA18737FD,Rtk8852CEWifiSupDriver 0AD3D31B-B3D8-4506-AE71-2EF11006D90F,UefiAcpiBoardInfoGuid 0AD4F13B-D197-44EC-FFFF-FFFF62C8C689,XnoteVariableDxe 0ADFB62D-FF74-484C-8944-F85C4BEA87A8,AmiEfiKeycodeProtocolGuid 0AE01967-8B3B-4572-85BD-EFD5C0F251EB,AmdPspRomArmor3Smm 0AE8CE5D-E448-4437-A8D7-EBF5F194F731,EfiDxeIplPpiGuid 0AEF5579-3700-41D2-A53E-DABD55E22432,DellUsbBusSmm 0AF0B742-63EC-45BD-8DB6-71AD7F2FE8E8,ShellDriver1HiiGuid 0AF7C79C-65B5-4319-B0AE-44EC484E4AD7,EfiHashAlgorithmMD5Guid 0AFD2FA7-5EF2-4B3B-A65E-B6F276D082A1,AdvBootOptionPolicyDxe 0B04B2ED-861C-42CD-A22F-C3AAFACCB896,BiosVideoDxe 0B0D3C7E-473A-22E2-8428-3DAE5CCEAC64,CableDetectDxe 0B1E645F-5E5C-48A1-FFFF-FFFF5804E747,XnotePlatformResetRuntimeDxe 0B227B84-9466-46BD-8ABA-8EEA99FAD22C,AsusEcNvramDxe 0B234DF1-0080-412B-8716-8A81A3A11FAA,DellEdiagsDxe 0B24790B-6C79-4CE4-8E09-3864C49BE256,SioWdtSmi 0B280816-52E7-4E51-AA57-11BD41CBEFC3,EfiPciHotplugDevice 0B2B4F68-3566-40FC-B7E6-FA819993840A,OemUniWillVariableDxe 0B2CFBF2-3E08-4C4E-A74D-59748A9F930F,LegacyRegionDxe 0B2E406A-ED5B-4668-BCD1-2B1DB01841FC,DellAcpiOemConfig 0B3AFDEC-F177-4548-9C7E-4D09EDF4A2FA,EcdSmartPowerOn 0B4AE6BE-6DA6-4908-8A71-7E6A8A33B11C,MeFwVersion 0B4BDCFF-74B2-45AD-91E1-8F6634C8A1DC,SIOBasicIOPei 0B590774-BC67-49F4-A7DB-E82E89E6B5D6,EfiPeiMpInitLibUpDepPpi 0B64AAB0-5429-11D4-9816-00A0C91FADCF,EfiBisProtocolGuid 0B6A8DE0-6281-40A2-8E9A-09F1A18A6D40,SystemUsbSwitchSmm 0B6E5233-A65C-44C9-9407-D9AB83BFC8BD,EfiCertSha224Guid 0B6F5CA7-4F53-445A-B76E-2E365B806366,ArmVirtTokenSpaceGuid 0B74F980-2325-4AF3-9664-0C3ABE237D52,BootPerformanceLogSmm 0B7BF76C-721A-44FB-A758-52E13CA457F1,DellSpiPartMxic 0B7C6357-A4F5-48B9-AA30-0CE7F9E66A72,RestoreVariablesSmi 0B7E694D-B909-4097-9C03-5E728489F709,HybridGraphicsConfigGuid 0B81B13E-E595-4D35-9E7B-A3C85E01A23F,HhmDxe 0B9303A2-5BF6-4725-8414-7EDCD343D27D,RZ616_MtkWiFiDex 0BA38E92-154A-4BE2-A5E0-BE80571CDB71,DellDtwlanSmm 0BA8263C-A8BD-4AAD-B402-6A6AF2F7E77D,BlockDeviceCapsuleGuid 0BA8630D-B1F9-4CED-887D-DD013A0C6B4A,UsbTypeCChargingPei 0BAED1B4-B14B-40F1-9D67-B8CD96F923E4,AsusTCONDxe 0BB12CAC-CFA9-4839-A4C2-1797248109D0,DellLegacy16Rom 0BB51CDD-A750-442F-A15E-7DEADFBA30FF,Mtftp4Dxe 0BB60340-8865-4584-A32D-7F839903DF4E,MmioSerialUart1 0BBC6CAB-F228-4F20-8C6A-847CDEE3FF24,OFCDxe 0BBC88DE-17D1-4DBA-BA54-734B01DE421F,OEMPlatformGopPolicy 0BC22608-ECC5-47B9-A038-4F0A68372E44,DellDeviceNameConfig 0BC7E05C-C88A-4254-BCBB-D42638D28AAD,PlatformMilestoneSmm 0BCAF6F4-5A78-4818-82BC-5594D175943C,FchSmbusPei 0BCB2808-FEA5-6047-9A60-8767A46A72A1,AppleUdp4Dxe 0BD7EBBF-F1A9-4C0B-9941-636D102AA48A,FchBixbyDxe 0BE3D6AE-6D2C-41AD-9869-A97364E7C1F1,FjIbvSfuSecFlashAbstractionSmmProtocol 0BE98320-5634-4AAB-B2B7-FCBC9777151E,FjTerraSmm 0BF06027-29A4-447D-8FA4-D8A289F1DDDC,CxlManager 0BF13AFB-98B6-4B77-96E3-0868917C2D2E,I2cBusConfigurationManagement 0BF70067-D53B-42DF-B770-E92C91C61411,EfiTdtProtocolGuid 0BF89093-3E5E-457A-8CA6-62352915A3B4,PHashDPei 0C008B0D-596A-42D1-809C-D2E7B649177E,HwErrorHandler 0C04B0FF-227D-479A-935A-F6E5A8B5198C,EfiPeiPlatformTypeLightningRidgeExecB2Ppi 0C070BA5-3F07-4E9D-883F-057C505FE3B8,BiosAuditLogWmiReporter 0C0F3B43-44DE-4907-B478-225F6F6289DC,UsbKeyboardLayoutPackageGuid 0C0FA9B6-F3AF-49BD-89C5-6C2D43969072,MmioSerialUart 0C109319-C149-450E-A3E3-B9BADD9DC3A4,EfiPeiMmConfigurationPpi 0C1F6580-9C57-4A32-8499-227C2EA27E7D,DellSmmServicesProtocol 0C215B39-425D-42E0-A1B4-367D574956EC,FjDmiSystemData 0C2C4003-6551-4EEA-B006-0FECB4BB300B,RTL8111E 0C34B372-2622-4A13-A46E-BFD0DEB48BFF,I2cBusDxe 0C375A90-4C4C-4428-8EA0-531BE8959BF7,FlashDriverSmm 0C3798AA-D22E-4DD6-8CB4-3C9CFB1D86D3,NCT6126DSmm 0C396FCA-6BDA-4A15-B6A3-A6FA4544BDB7,EcFwUpdateDxe 0C3B7B59-28E5-4C99-85E5-D0116DBFAAF2,IsctWakeReason 0C4F81C5-309F-4941-85A2-8C6A44B4F4F6,AmdVariableProtectionSmm 0C556BFF-B16A-439D-A3EC-1164378E2C2A,AmdPspPeiV2 0C5FCE90-1C03-4ED2-9EFE-B1D02E72B3B0,menu_bottom_mid 0C683AF3-AF36-4CCA-93C3-046EDEF01D9F,IblInitSmm 0C8050B7-D2F0-42F8-852B-D1DEB2F2E9B0,SetupIoDetect 0C80C256-3428-4D1C-BBEB-79FCC812AFF6,RestorePasswordSMI 0C81D263-7CE3-4F61-A175-FDA4FD240985,HpAltModePei 0C85DF8A-4212-4CC1-A4AA-1A7A36E8DA97,FpgaPlatformEarlyInit 0C8823D5-93FB-485C-AAFA-FA7B6BF0A27F,CompalEepromSmm 0C88B3B5-6A1D-4657-AA88-1B7D92FF3699,CompalCMFCCommonSwSmi 0C88F1B7-DD08-4E29-BE2D-D04688A42C74,OemKbLightDxe 0C95A916-A006-11D4-BCFA-0080C73C8881,WinNtThunkDxe 0C95A928-A006-11D4-BCFA-0080C73C8881,EfiWinNtVirtualDisksGuid 0C95A92F-A006-11D4-BCFA-0080C73C8881,EfiWinNtPhysicalDisksGuid 0C95A935-A006-11D4-BCFA-0080C73C8881,EfiWinNtFileSystemGuid 0C95A93D-A006-11D4-BCFA-0080C73C8881,EfiWinNtSerialPortGuid 0C95A940-A006-11D4-BCFA-0080C73C8881,WinNtBusDriverDxe 0C9680D8-6993-425E-80CC-9BAB1338C4D6,DellBeforeServiceMenu2Dxe 0C989D41-F4B4-4244-9D7F-E9FFB4163273,FastBootOption 0C9C3169-6F39-409E-990B-5B8B48B9D2B9,SyncUpNvramToPostFlag 0CABB327-11FE-416B-AE80-2DE5DF60F77D,IioPolicyHob 0CACEC37-B79B-4A78-B3C5-EA61EAF6980D,BiosInitToFactorySupport 0CC252D2-C106-4661-B5BD-3147A4F81F92,EfiPrint_2sProtocol 0CC2C3FC-41F0-4830-ACF7-0BA8EC78045A,SpiAccessPei 0CCA1898-D936-4386-872B-734FE850DC49,FjIbvSfuOverrideAbstractionDxeProtocol 0CCF27CF-E68D-4279-96B0-8A4E1CDFF10C,SettingsManagerDxe 0CD3D2FA-B21D-47B5-BA95-D8C00B38F324,DellAi13Rom 0CD80A60-46D9-48B3-A8B9-61E5598AB054,MultiPdtDxe 0CD9632B-A19C-4488-8917-4E1C8E75DC1A,ncm865x64 0CDA5D94-951A-4C61-8DD5-E5BF34BA69EC,SlotDataUpdateDxeLightningRidgeEXECB1 0CE47609-0E04-4EE5-A192-F410A1995E0A,b57undix64 0CE5EA44-BED3-49CA-AECC-B50AB9C5B0E9,DellRecoverySiDxe 0CEFD645-588E-4ED7-9943-054808CD7572,SiFirmwareVersionDxe 0CF7AEE6-3BD4-48A3-97E2-E7E5B83F67FD,CbsBasePeiRS 0D024887-B489-4E9F-884B-A4B6BB8A576B,ODMCompuTraceDxe 0D05D4DB-4A1D-4DCD-89B5-87B36C6DD180,SDEmmcInfoDxe 0D1B9C8E-F77B-4632-8343-91F43D9A8560,EfiCpuHtCapable 0D1CE46B-72D9-4BA7-95DA-23511865E661,CryptoPei 0D1ED2F7-E92B-4562-92DD-5C82EC917EAE,CrbPei 0D1ED2F7-E92B-4562-92DD-5C82EC917EBF,EcsPlatformPei 0D22D223-E9A7-00C5-BE84-3FCAF25EC1A7,InstallMadtDxe 0D244DF9-6CE3-4133-A1CF-53200AB663AC,FspsWrapperPeim 0D24A235-9C12-446C-8ECB-EFC1F5280209,DellJpegDecoder 0D275C72-10C6-4D8C-8B2C-6610E69E3403,Uart16550SerialDxe 0D28C529-87D4-4298-8A54-40F22A9FE24A,DellDaHddProtection 0D2B85C0-D468-4ADB-93BF-E53AE203C034,OemErpPolicy 0D3FB176-9569-4D51-A3EF-7D61C64FEABA,EfiSecurityPkgTokenSpaceGuid 0D42E9AB-5DDE-4CAC-A485-0215C252717F,AmdSmmControl 0D4BBF18-C2CC-4C23-BD63-BFDAD4C710D0,Tcg2Acpi 0D51905B-B77E-452A-A2C0-ECA0CC8D514A,EdkiiNonDiscoverableDeviceProtocolGuid 0D57B171-A6D2-49C9-95AD-ABC02546E605,DellSystemUsbPortConfigDxe 0D58AE36-31AF-4CF3-A74D-74891A1597F2,AssetIDDxe 0D648466-36BD-42C6-B287-7C3BAA2575C0,LenovoSetupUnderOsDxe 0D759F81-43B0-4E0A-B613-61550C6157C2,SystemGraphicsOutputBltPipeDxe 0D79A645-1D91-40A6-A81F-61E6982B32B4,EfiNt32PkgTokenSpaceGuid 0D8039FF-49E9-4CC9-A806-BB7C31B0BCB0,AmiTpm20PlatformPei 0D81FDC5-CB98-4B9F-B93B-70A9C0663ABE,DellDccsSmmDriver 0D82A9EC-1289-4FD4-AC0B-4C6B1A25ABC6,SwitchableGraphicsDxe 0D8E6E4E-B029-475F-9122-60A3FEDBA8C0,DxeIoLibEsal 0D8FA117-1239-4CD6-AD0A-331663824B13,DellOnboardNicPei 0D966D65-8F25-4574-8EAF-6C0463F38742,UsbPortConfigSmm 0D98D4C6-59B2-44CC-8E28-4540130E347D,LaunchPadDrv 0D9A1427-E02A-437D-926B-AA521FD722BA,EfiPciLanInfoGuid 0D9E8DB6-5A5A-4A5B-8621-85FFC9AE4583,DellStealthModePolicy 0DA55BC9-45F8-4BB4-8719-5224F18A4D45,EfiWiFiProtocolGuid 0DB48A36-4E54-EA9C-9B09-1EA5BE3A660B,EfiRestProtocolGuid 0DBCEC22-0ABE-4BF4-BFEE-A04D1CA6F643,PlatformInitDxeHedt 0DBF0B49-604C-40D4-9121-77AC41942626,FixedBootOrder 0DC02196-CEC8-4A0E-9DCD-B0DE59D86204,Wcn685xLauncher 0DC65ADC-A973-4130-8DF0-2ADBEB9E4A31,FirmwarePerformanceS3PointerGuid 0DC73AED-CBF6-4A25-A68D-59C80F44C7C3,EfiDFUVerGuid 0DCA3D4D-12DA-4728-BF7E-86CEB928D067,EfiNicIp4ConfigProtocol 0DCA793A-EA96-42D8-BD7B-DC7F684E38C1,LegacyRomLayout 0DCE384D-007C-4BA5-94BD-0F6EB64D2AA9,PeiNtAutoScanPpiGuid 0DCF3594-318C-4596-B00F-BE61842DE3E2,SystemBootTypePeiPei 0DDE9636-8321-4EDF-9F14-0BFCA3B473F5,DellIntrusionDetectSmm 0DDF623A-9F60-4AF2-B5C7-EFE4A637290E,FjDtDiagnosticsDxe 0DE19141-7AEB-46CA-9F87-2D19FEBC99C3,OemBootMiscDxe 0DE2CE25-446A-45A7-BFC9-37DA26344B37,EfiPeiDeviceRecoveryModulePpiGuid 0DE8BACF-E00A-4538-BE0D-81AF9374FCC9,EmulatedEepromSmmProtocol 0DED86EE-6E79-4764-AA83-37A472F48123,ChkrecoveryFile 0E00B084-2D16-4A27-B172-B1F68C2CC55D,MicrocodeUpdates 0E06A80E-D726-4BAF-A0CF-211260FE69D8,OemSSIDUpdate 0E0885B3-07A2-41AA-82E7-806A47A9215E,Parade_Retimer_FmpDxe_FwUpd 0E109C7B-8790-4B9D-981C-9D4B079E98D4,MsiSGSmm 0E135E4D-E63E-45C6-A9A2-E9363477DDFC,AmdNbioBaseMdnDxe 0E1B2F3C-DD5F-44CE-8D37-5AEC2B339B5C,BiosConnectSOSLauncher 0E1D2972-65AF-4AC1-BFA3-CEF4AB0C38FE,EfiCapsuleCrashGuid 0E2D6BB1-C624-446D-9982-693CD181A607,EfiSmmTcoDispatchProtocol 0E2DAF63-8A4F-4026-A899-DE2D7F46E5EC,TpvPei 0E2EDA9F-4BB6-4140-AED6-7DBCEB63C829,MtkWifiSupDriver 0E359F52-C6DE-4EA4-9A05-857DE1B7D320,FjWifi6eSupport 0E3606D2-1DC3-4E6F-BE65-394982A26547,PlatformVirtualKeyboardProtocol 0E3FEFDE-4A6C-4E4F-B77F-4B456150430F,PegaSetKeyboardSetting 0E3FEFDE-4A6C-4E4F-B77F-4B46C950430F,PegaSMBIOS 0E4D805D-746C-4EBC-8795-31A286CCA620,TcgPeiPolicyHobGuid 0E511F9D-5B86-4389-9325-9F8217220FBB,CpuInstallEfiMemoryPei 0E51393A-E865-4C3E-8C5F-442FE09146A5,DellSmmVariableProtocol 0E5870E4-0525-40AD-95A8-0FFF155B8FC0,AmiSmbiosElogSupport 0E714B8D-EEAA-4FBA-83AB-2B8005D417C3,EnableM2PCIeCardDxe 0E7383B1-83EE-41A4-939E-24C886F03AD6,DellVirtRtcSmm 0E78D1D6-5691-4793-8FF7-465CB7F9124E,DellNvmePwDxe 0E84FC69-29CC-4C6D-92AC-6D476921850F,UpdateDriverDxe 0E8C545B-A2EE-470D-8E26-BDA1A13C0AA3,LastEnumLangGuid 0E93C52B-4B73-5C32-86D5-69250A0BA723,AppleThemeFileNames 0EA3D651-49B4-47D9-BDC3-E4A379F3DE76,HwmInitSmm 0EA4E9CB-819D-4B37-9362-AE1783481AC0,FjDtPowerFailureRecoveryPlatformSmm 0EA50C2B-4C0D-4CA3-97C1-0014DB754473,UefiLegacyBootMarker 0EAB05C1-766A-4805-A039-3081DE0210C7,FmpDxe 0EB4819C-D878-4C8D-913B-404947AEB89F,PlatformStorageInformationDxe 0EB4FAC0-A3EC-4FED-9783-A8D0FFD1AE33,DellSmBiosStrucDb 0EB84DA1-267A-40B4-8347-1F48694C8B47,PeCoffExtraActionLibNull 0EC1C157-DD5E-426B-8764-68C1DA088C49,OSDSMIFunctionPei 0EC2019D-BC70-4A4E-A239-501EF5D6F742,InstallPlatformSsdt 0ECC666B-4662-47F9-9DD5-D096FF7DA49E,PeiSecPerformancePpiGuid 0ECE530F-7BDD-4405-9EB9-61C9868D8ABD,AaeonSmbiosDxe 0ECEDD30-67EC-4570-9EFB-308DE53EE93D,AmiTseOemPortingVar23 0EDC9494-2743-4BA5-8818-0AEF5213F188,EfiExtendedSalCacheServicesProtocolGuid 0EDEF0B3-EF91-4935-859E-2338DFFAC099,MpdtUpdateDxe 0EEC96BC-0B82-4573-9791-C414E4DCEE64,IhisiService 0EECB4A5-7B9F-4707-81D7-9C045E98CA95,AmiPlatformInfoUncompressedFfsSection 0EF3C867-459B-41D8-8541-DD7DC277EBC0,PdHostInterfaceRtkPei 0EF53039-3A38-42D1-BCEC-CE966E87061A,PeiFrb 0EF84C20-D178-490B-9FCD-122739FAAEFC,FchSmmDiagDispatcher 0EF8A3B1-388A-4B62-8BE6-C7877D50AEDF,UefiPxeBcDxe 0EF98D3A-3E33-497A-A401-77BE3EB74F38,EfiAcpiS3ContextGuid 0EFC6282-F1E5-469A-8A70-194A8761F9AA,XenAcpiPlatformDxe 0F03D285-6614-4DDC-86DC-DAE5E375443A,EndOfFirstPowerOn 0F0B1735-87A0-4193-B266-538C38AF48CE,EfiIfrTianoGuid 0F0DA838-E678-432E-9AEE-CB606E89B3DA,FchSmbusPei 0F17CECC-653A-C343-9CFA-FAA27A07EFE5,AppleCrypto 0F23C1F8-4BAC-470C-B6B8-B392D544290A,FmpCapsuleUpdate 0F2FADAB-E401-63ED-7E29-69F215C60511,OemUSBGetSetupData 0F411BE5-B10C-4DDA-B28C-868FC24789F8,AmdVariableProtection 0F492340-21B3-4E23-9140-8C14476292CD,SetupRepSetSmm 0F500BE6-ECE4-4ED8-9081-9AA9A523FB7B,HstiPublishCompleteProtocolGuid 0F5DD251-6C8B-4752-8110-FCDF57EEDFB2,DxeReportStatusConOut 0F5EF786-17A0-40C6-BC18-1B3272A00987,IccInit 0F647B12-5FA2-4B5E-9D61-2AB3C51F224E,BctBaseSmmSSP 0F6499B1-E9AD-493D-B9C2-2F90815C6CBC,EfiPhysicalPresenceGuid 0F69F6D7-0E4B-43A6-BFC2-6871694369B0,WdtAppPei 0F729F33-25C1-41A7-86B2-23A737A91823,IntelSnbGopVbt 0F7BDE7C-AAF3-48D0-931F-475750DDE209,OemPei 0F7BDE7C-AAF3-48D0-931F-475750DDE210,OemWwanPei 0F7EC77A-1EE1-400F-A99D-7CBD1FEB181E,PcatPciRootBridge 0F886E75-3029-4ECF-B694-22894D3F2143,PLEDDXE 0F8E91FD-9964-4A65-B052-C4639C5A9EF0,SioRfTestWmiSmm 0F92508B-F17C-4EFB-8722-BCA5531F8B53,CpuDeviceInfoDxe 0F99E33C-CA0C-4AA2-887D-B57EC9050278,SaveMemoryConfig 0F9D89E8-9259-4F76-A5AF-0C89E34023DF,EfiFirmwareContentsSignedGuid 0F9DD4B0-599E-4D66-8565-22FBEA1E028C,AmdFabricPhxPei 0FA00C23-CACA-5515-6AD3-B7D87540DFA3,BLSeedTest 0FA79B12-719A-41EC-8C57-7C24F4771162,VerifyHpRomSignature 0FAAECB1-226E-4782-AACE-7DB9BCBF4DAF,EfiFtp4ServiceBindingProtocolGuid 0FAD5644-7BDF-4A75-B568-287AE2EBD3A6,SmcSwSmiFlashSmm 0FAF9D33-E3B7-49DE-9B04-3A8B1E732AFD,Armani_BatteryInfoSmm 0FB3BCF9-0A1D-4598-A521-E5C84E95D97A,EfiTraceHubStatusCodeHandlePei 0FB7C852-ADCA-4853-8D0F-FBA71B1CE11A,EfiFormBrowserCompatibilityProtocolGuid 0FBA43B8-ACDB-4EE2-AB31-0FA4D5B6C3C5,FastBootTseProtocol 0FBEE984-33BF-4AC0-A871-B352AD59E337,DisableLTEB 0FC38C56-500A-4654-89A7-F43C1A3843F5,AmiPlatformInfoFfsFile 0FC50878-1633-432A-BDE4-841357FC15E9,AmiScsiPassThruInitProtocolGuid 0FC9013A-0568-4BA9-9B7E-C9C390A6609B,EfiLegacyRegionProtocolGuid 0FD41E0B-C4DF-4B4B-863D-17C0DBD6EF56,SbSmi 0FD57366-4708-3EE0-392B-14A873782A25,PciePowerManagementSmm 0FD60162-A235-47D3-BF7E-735E027D48B2,AmdFabricRmbSmm 0FD96974-23AA-4CDC-B9CB-98D17750322A,EfiHiiStringProtocolGuid 0FDB6F0B-5581-4999-AF7D-A571E3131BD2,FjGabiDeviceFirmwareApiSmm 0FDB764B-E669-4C69-83AC-5EDD99A2711E,ReadOnlyVariableOnReadOnlyVariable2Thunk 0FE159B5-076F-4C36-BF26-D724F2831252,BdsCtrl 0FE9DA53-043D-4265-A94D-FD77FEDE2EB4,TcgPlatformSetupPeiPolicy 0FEBE434-A6AF-4166-BC2F-DE2C5952C87D,DellAbsoluteDxe 0FFBCE19-324C-4690-A009-98C6AE2EB186,RecoveryOnFatUsbDiskGuid 0FFC90BD-B0B8-4538-9D8A-23AB12345678,SctPdmCustomFileDialogDxe 10064AEC-4E12-440D-8126-D71D07837423,PeiCallback 1009A840-C625-42B3-A94B-B90F991B1B1A,NhltInstallTable 100C2CFA-B586-4198-9B4C-1683D195B1DA,MMC 100CB8AA-7BFC-4D2B-90BE-0A48C9ED5316,BoardMilestoneHookDxe 1011B5D2-261A-424F-977C-C8A4B39353B8,StaticSkuDataDxeArcherCityModular 10149626-5583-4364-822F-A459B8121302,SystemFirmwareDeviceDxe 1015EA63-7421-417D-BB51-E5193061C551,DxeIpmiUsb 10164673-D365-4BE2-8513-1497CC07611D,ScPolicyPpiGuid 101DF54A-10FF-4E0D-94C0-A89D5546DD6C,AmdFabricStxhPei 102287B4-6B12-4D41-91E1-EBEE1F3AA614,UefiDebugLibDebugPortProtocol 1034183F-AF0A-4716-BE0E-4CB5319D6193,PciHotPlugNonRpDxe 103D3C97-CE0F-4DF0-97B0-194C61BD540C,FchEspiCmdDxe 1051EC65-F6FC-41EA-BA51-344C37F60CDF,BoardConfigInitPreMem 1054B2FA-3DF0-41FC-A7CE-D59379F3988E,AsusSIBoardPei 105884E1-57DA-4F36-9104-8D092339D234,DellThermInfoConfigDxe 105FF0EA-A0C0-48A8-B8F7-E8B4D62A1019,FmpAuthenticationLibRsa2048Sha256 1062CB92-72A9-4FDC-9694-B1FE817EFAAF,DustFilterAlertDxe 1065E739-23C2-493F-B1AD-DC6D8DF77CF4,HpGenSwSmi 106A2FD5-11FF-42EA-AFBA-B4969A702616,BaseOobLibrary 106C877F-C2BA-4C46-876C-BDFE6171CD7E,DebugCommunicationLibUsb3Pei 106F3545-B788-4CB5-9D2A-CE0CDB208DF5,EfiHiiThunkProducerGuid 107A772B-D5E1-11D4-9A46-0090273FC14D,EfiDriverConfigurationProtocolGuid 107A772C-D5E1-11D4-9A46-0090273FC14D,EfiComponentNameProtocolGuid 10811F41-037E-4EBE-9872-771D7646FFFA,LEMSAPAMLock 108343B1-3F5B-4908-9525-E25E62D5729A,LegacyPciUcrDxe 10921D66-281D-496E-A3B4-A8D47FD6DE9E,HpVpinSelectionSmm 1093A6F0-37ED-49BA-9DCC-4F6999807315,MmioSerialUart2 10952220-AA32-11DF-A438-0002A5D5C51B,PL35xSmc 10B12ADD-F5E2-CC78-5CA0-B77F76223ACD,AmiCpuFeaturesDxe 10B7F979-741C-467E-8764-8DD50D8AD6C5,SdioInt13 10B91E23-11BA-4CB5-9012-AF5016005DD3,SelfHealingDetectCorruptionDxe 10BA260F-3700-49DF-803F-7BE775CDB283,SetupConfigUpdateDxeGnrwsERB 10BA6BBE-A97E-41C3-9A07-607AD9BD60E5,EfiVlv2VariableGuid 10C22623-DB6F-4721-AA30-4C12AF4230A7,IdeRecovery 10C22623-DB6F-4721-AA30-9C12AF4230F8,ExtRecovery 10D72AD4-F4D5-4F35-A5A3-001F6ED81E1E,DxeSerialTextOut 10D93A56-2D64-47D3-828D-7A5066915292,AmdRasBrApeiDxe 10DB0A54-F6F9-4CA2-A75E-F9AACAE70970,BiosGuardConfigGuid 10E26DF1-8775-4EE1-B50A-3AE82893703A,SeCfTPMPpiGuid 10E88749-28D1-49A0-AC9E-0324E40211A8,WMISwSmi 10EE5462-B207-4A4F-ABD8-CB522ECAA3A4,Udp4Dxe 10EE54AE-B207-4A4F-ABD8-CB522ECAA3A4,Udp6Dxe 10F312D4-4A25-4D75-A1F3-1A264ADCDBCF,DellSoftTAALoadDefault 10F432DE-DEEC-4631-80CD-47F65D8F80BB,EfiPeiPerformanceHob 10FB6E0F-537F-41D2-9214-7D00EEBFD6A9,LnvSyncMFGDone2BiosGuard 11052D8B-C1AC-4244-A564-B5A71FF7822A,BiosGuardStoreStatusDxe 11060169-5EBE-4155-B035-D98538477ECC,CxlPlatformDevice 11148D39-5926-4022-91AC-CB252AF74530,Usb_Lan_RT8152B 1118396E-54CC-4389-BFD1-97D2AE13E12C,FjGabiCoreSmm 1126215D-B99C-4B09-9CA8-60C611ACE29D,OemEcFeature 11335C60-2618-4AF4-AF9F-15BD35D0577B,FjLidSmm 11354A0C-781E-44A1-A787-C0178C8D570F,P2sbConfigGuid 1136D4DD-D9B7-4801-8352-E7582D32A05A,IntelDRS 1137C217-B5BC-4E9A-B328-1E7BCD530520,DellThermalDebugSmmDriver 11399A01-0423-49CC-8368-85291533C35D,FprSynapticsMetallicaDriver 113B2126-FC8A-11E3-BD6C-B8E8562CBAFA,EfiBootManagerPolicyConnectAllGuid 113FD31A-BE8B-418B-B034-7EAFE5C60C99,EsaInterfacesForTseProtocolGuid 1144265E-F049-45B9-8778-752F12A1365A,IntelTechSetup 11472071-A5CA-4281-9779-DF2C839A455A,DxeSndwBeep 114B7105-6CC9-453C-BADC-16DF227BB4EF,TrEESmm 114BA15A-6189-180D-BFC0-2053B3480949,EfiBoardSelectGuid 114CA60C-D965-4C13-BEF7-C4062248E1FA,EcIoDxe 114DA5EF-2CF1-4E12-9BBB-C470B55205D9,EfiAdapterInfoSanMacAddressGuid 11527125-78B2-4D3E-A0DF-41E75C221F5A,CpuS3 1156EFC6-EA32-4396-B5D5-26932E83C313,EfiSpiProtocolGuid 115F8F4F-7899-4154-9C1D-B6E12B320BE1,EcCommunicationSmm 11650C26-915A-40AC-829C-A1E1B6333D79,PwrButtonCtrlPei 11668FCA-73BA-4B58-85A2-98AC4DF59A2C,SystemSmmCommunicationBufferManagerDxe 11681F03-6B8B-4CAD-83E7-588A64BC64EA,FjPowerOverEthernetD2927 116E1ACF-2533-4CC2-820A-BBC10A2AB07C,CpuSpSmi 116ED1E8-F9C6-4112-A49C-87ADA570DEC1,AudioPlayback 11726D68-F147-48DF-AB16-0489818BD570,AmiHpetTimer 117342B2-9824-4170-8AFB-E568E62C0694,AmdSsdtPpcvOverride 11777581-2B67-4075-8EB4-F691A47ECEC7,ProcMemInit 1177B5A8-7BA6-4C20-A3B4-7D6519D8670A,ECHeartbeatPei 11793215-CD3A-422A-A229-249417282DFA,FchDxeMmio 11799AA2-1C5D-4E5B-8A5D-32D20C39B9D3,AfuCapsuleOnDiskPostFlag 1181E16D-AF11-4C52-847E-516DD09BD376,DellCenturyRolloverSmm 11822C42-79E4-48C9-9F73-700D3556B0C0,MyAsusAutoInstallItem 1183FB2D-DFBD-40CD-945B-3FA630879BCD,FjEvteServicesDxe 1188F1FC-06E9-49B8-A615-F5A0886FCF89,UhciInitPei 118FE494-0699-42AA-AACA-62E849359B17,FspRsc2PostCodeMapServicePei 1191BBF5-DCB9-44F4-827E-95359744C987,PlatformStage2Pei 119BFA16-911B-4F1F-B1B2-69F43B759448,DellPcdUpdatePei 119F3764-A7C2-4329-B25C-E6305E743049,DellSmmSecurityVault 11A03A8E-A9C5-4DB9-90CF-4434B01586C4,BootPerformanceLog 11A51DAF-6834-4BA1-AD5E-4A58633B343E,AmdPspDxeV2Rmb 11A687C0-EDBF-4ACF-8FD5-32A0BD5D76AA,RZ6xxLauncher 11A6EDF6-A9BE-426D-A6CC-B22FE51D9224,PciHotPlugInitDxe 11ADE65F-956B-4D0E-B368-86DBC92F01AA,VariableSmiInt15Dxe 11AF0D83-0784-4C1E-9A1B-9CF43127555E,CrbModernStandby 11B1E470-255E-40E3-9517-30513E3F14D3,GsensorExtendModeDXE 11B34006-D85B-4D0A-A290-D5A571310EF7,PcdProtocolGuid 11BFBEB0-FE77-4362-84FB-4F961E7BB2ED,H2OFormDialogDxe 11C4D07D-B44F-4630-BCD8-EFF786E24A74,CypressCCGxSmm 11CAA2F5-4552-4AC3-95D0-8B5DB1FF6D4F,OemDxe 11CDB71A-AA09-4B1B-BC58-F99838A4980D,fTPMTisPei 11D1EC21-E568-4EB0-8E1D-A0809772B606,DellEnhancedVersionProtocol 11D8AC35-FB8A-44D1-8D09-0B5606D321B9,DSDT 11D92DFB-3CA9-4F93-BA2E-4780ED3E03B5,VirtioBlkDxe 11DD0F6C-209B-47CE-8A98-418C9B7CC756,DxeSwSmi 11E32C34-60B5-4991-8DEA-63D3E8C876DE,UsbRndisDriverSrc 11EE12F3-4B62-172F-37A6-A6BEDAB1FF62,Pca9545aPei 11F6C2EA-E21F-5ACF-A5DF-32C12E5E0E70,PlatformPreInit 11FBFDFB-10D2-43E6-B5B1-B4386EDCCB9A,EfiSeCRcInfoProtocolGuid 12025686-3984-466C-980B-8B5E89DA0319,AmiReadyToLoadDxeCorePpiGuid 12067096-18AF-41DD-B4F1-D29592283062,SystemDeviceModePrivateWmiSmm 1206F7CA-A475-4624-A83E-E6FC9BB38E49,SmmControl2Dxe 120992F2-0339-402C-BAB6-16122DB2EC7E,PeiMemoryDiagnosticTest 120D28AA-6630-46F0-8157-C0ADC2383BF5,AmiLegacyBootProtocolGuid 1216BD2A-C05E-4C6D-91E7-EB8E37AD3B7A,aDefaultDXE 12199730-7D13-4C92-97D5-1562515A1E48,OemThermalPolicy 121D5264-990F-4716-8061-C2144A7D4D0D,DxeDgOpregionInit 12345678-930A-4A95-AB04-2E6CFDFF6631,TcgPeiAftermem 12345678-AABB-CCDD-EEFF-112233445566,My 123AC7B6-F44D-4220-BD8B-521D30DEA80F,M2CarrierSupportDxe 124A2E7A-1949-483E-899F-6032904CA0A7,SystemSmmAhciAspiLegacyRt 124ED7DA-3DBE-49DB-8AA8-CA584CC063E4,DirtyShutdown 1259F60D-B754-468E-A789-4DB85D55E87E,EfiSwapAddressRangeProtocolGuid 125F2DE1-FB85-440C-A54C-4D99358A8D38,EfiAcpiS3SaveProtocolGuid 126A762D-5758-4FCA-8531-201A7F57F850,LenovoSetupStartupDxe 126F424E-F45B-4406-801E-2AACF404167F,AmiSetPhysicalPresenceGuid 127C1C4E-9135-46E3-B006-F9808B0559A5,Slp20Markers 127D145B-410D-4DD7-BFAF-15A3D3B60B94,SetupRepSetDxe 127D4E48-85C0-4FBA-B678-B14E9492AADF,FchKernPei 12826089-D1EC-4505-B3AE-8E4CF3A4A78B,SetBoardId 128FB770-5E79-4176-9E51-9BB268A17DD1,PciHostBridgeDxe 12900E5E-B88B-446C-AE19-18A0856B717F,SioSmbusAccessDxe 12963E55-5826-469E-A934-A3CBB3076EC5,DellSmmSbAcpi 129E6A54-2314-40B9-89EA-730D6B6E1002,PrmAddrTransDsmConfigDxe 129F6AA7-AB69-4CB8-AED1-40985001115E,SerialMuxControl 12A5DC4A-88AA-89DA-89D0-D4547191E3F4,RstUefiDriverSupport 12A5DC4B-88AA-89DA-89D0-D4547191E3F4,SdMmcOverride 12A9420E-546A-484B-85E7-6F6B27BF9B40,FjCapsuleResetHookSmm 12A94570-A22F-4069-B52E-B71EAEE4E06F,FjOemGlobalNVSDxe 12AEDBEA-392D-4E2A-8789-5F6DC6B23661,OemBadgingSupportDxe 12B0AA24-AC37-43F2-A84E-3CCA6437BF6D,AmdLegacyInterrupt 12B6C042-7C62-4666-A472-89ED5133A98C,FjIbvInterexchangeDataStorageProtocolSmm 12BFCA88-7A2F-4AB5-9A5D-C40CA68BF75F,BootOrderSection 12C293C3-3745-4726-8FA2-2A9EF18679AD,AaeonBfpiDxe 12C67BE1-AD2E-4F13-A95F-6EDC2C4392DE,MePolicyInitPei 12CADD30-6007-4C83-89D7-FF237F7B947A,SetupCompleteRedrawGuid 12CD8A4D-93FD-E81C-72FC-D931EBBC04D4,DellTouchScreen 12D1D3A2-99F7-420B-BC69-8BB1D492A355,Logoid 12D43AAE-DDC1-4615-B0BC-E115F9D17FC1,FjPowerButtonSmm 12E082F4-0DCE-444B-B89A-EF3328428D64,ArmaniSmm 12E1529B-B6A0-4D7F-8B15-5036C9BC2DE3,Fji210LanControl 12E2306C-1EBD-3140-B92E-EFA9099E82D2,CacheManager 12E5A97F-98D1-4C1F-87DA-FB67CFFBD9DA,EfiLanDriverDxe 12E7691F-1EEE-4ED4-8793-69E2801D602A,LenovoFpPba 12E7691F-1EEE-4ED4-8793-69E2801D6123,AsixPxe 12F38E73-B34D-4559-99E5-AE2DCD002156,BaseFspWrapperPlatformLibSample 12F70DB2-8585-49A6-A1E5-20F0363B05B0,WCN7850 12F75401-5415-4FF3-A981-A39BEE9F369E,SerialRecovery 12FF2998-429F-400B-B9EE-FEA8287A1DFE,FjAbtDxe 130B8BA5-E63E-44A0-85DB-4D4E571C526A,IioCfgUpdateDxeNeonCityEPECB 1310BA34-D7B4-4A80-A645-8C0417C6AA55,AmiMemoryInfoConfig 1310BA66-D7B4-77B0-A645-8C8887C6AA29,AmiSvrMemoryInfoConfig 1314216C-CB8D-421C-B854-06231386E642,PlatformInfoDxe 1314B450-E856-438E-8131-CF823CAB3550,ExpansionSlotConfigPortingPei 1317F0D5-7842-475C-B1CA-6EDC20DCBE7D,HashLibTpm2 1318FED0-2765-42B5-803E-3215A3C093C5,AmiTseOemPortingVar27 131AAC21-2145-49E6-A3E1-A97BCE090020,AcpiSpcr 13222252-931B-4552-9577-68556113AFD0,FjSmmPcieCardReaderRTS5250 1323C7F8-DAD5-4126-A54B-7A05FBF41515,SmmAccess 132EC73B-3025-4FBF-B193-8ACB50EFBD89,QFlash 132EC73B-BD26-4FBF-B193-8ACB50EFBD89,UserDefSetupDxe 132FD006-2915-40EA-B779-0F0DDD01465F,PxeDriverRtk 133EAD80-FB48-11E5-939D-6431503B939A,TransparentUnlockDrv 134BEDBA-7ACF-4295-A4B4-66565E3E97D1,OemAcpiNvs 13524551-5600-43B4-A5DF-F4B1942F339A,MeResiliencyPei 1353DE63-B74A-4BEF-80FD-2C5CFA83040B,GifDecoderDxe 135902E7-9709-4B41-8FD2-4069DAF0546A,TcEfiGlobalVariableGuid 1361DEC9-A270-4013-9701-A540F56C58C9,MctpSmbusDxe 136A3048-752A-4BF6-A757-0936119538ED,UiStringPackGuid 1374882C-B994-48DB-8D1B-93E817541FBD,CertificateStorageDxe 137B3044-F6D7-473E-A625-9FB92505C180,EfiSpiBusProtocolGuid 13863F79-D94B-4205-BB0F-E4E06AAA5A4E,DelayUefiRaidOprom 1388066E-3A57-4EFA-98F3-C12F3A958A29,EfiPeiSecurityPpiGuid 138F81C1-0A5F-4F5B-BFF9-F9B5BCBA6ABF,HpSecureBootModeDxe 138F9CF4-F0E7-4721-8F49-F5FFECF42D40,EfiPeiMpInitLibMpDepPpi 1390954D-DA95-4227-9328-7282C217DAA8,EfiSmmBaseProtocolGuid 1398661B-1EB6-417B-848E-CCC388526099,IntelUndiDxe 139AA2A0-311F-42CC-911A-579A2447B37D,XhciDxe 13A3F0F6-264A-3EF0-F2E0-DEC512342F34,EfiPcdProtocolGuid 13AC6DD0-73D0-11D4-B06B-00AA00BD6DE7,EbcDxe 13AC6DD1-73D0-11D4-B06B-00AA00BD6DE7,EfiEbcProtocolGuid 13B00AAE-4FD2-964E-B30F-94627017370A,BmpConvert 13B03F00-18B8-48DA-8B1C-B290C69BAAFE,EzFileBrowser 13BEAD28-488D-9112-5B0E-40B67EDD800C,AmdRasSmm 13C4BBE0-422C-4CAC-804F-FACDBA6F1A28,SuperIoExPei 13C5506E-8231-415E-9EBC-88DD115E3818,SmbiosElog 13D3B72A-8047-47B8-A4C4-4E814F6B25A1,DnxDxe 13E58E55-E1E1-4CA7-BE88-2D8FE72664DC,DashManagementPei 13E828E8-41A9-4D36-98DE-FD3968E2C18E,LnvPdrSmm 13ECD928-87AB-4460-BBE0-B520F9EB1D32,IconNetBoot 13F37218-70DF-45DD-8883-D4E6F5BE4255,NvidiaGpuAcpitables 13F40F6E-50C1-4B73-B1E2-6E72D21CB04A,EfiUsbLegacyPlatformProtocolGuid 13F4EA8E-BFF1-43BF-8F44-80BCC96040F1,FpgaDxe 13F74CE7-CFED-4E97-9EE6-042B3D2D977F,FjCryptoDESSmm 13FA7698-C831-49C7-87EA-8F43FCC25196,EfiEventVirtualAddressChangeGuid 1400F9E6-4BAB-4B68-A53F-58FD240818E6,Reset_Modify 14045170-CA65-47BC-9C15-2DE36D44AEE9,SmcInBandDxe 1405AD5E-5BED-11E3-866A-047D7B99E097,Slp20ServiceDxe 140E8004-16E1-4DE1-A352-C6EF51110ECF,ArmSmcLibNull 1410C6AC-9F4B-495B-9C23-8A5AEB0165E9,SmmSwDispatch2OnSmmSwDispatchThunk 1410C6AD-9F4B-495B-9C23-8A5AEB0165E9,SmmUsbDispatch2OnSmmUsbDispatchThunk 14186114-B990-4734-898E-5F86FAE49784,DellHwmIoDxe 141B0F7F-E241-4659-91BF-4505D79A7714,FjCpuInfo 1421D662-67BF-4A23-8B32-607E1C9E3AEE,MacAddressPassThroughDxe 142204E2-C7B1-4AF9-A729-923758D96D03,AmiLegx16Bin 14257B56-BDA2-4FAF-8E4F-C885DF75583C,IccPlatformDxe 1428F772-B64A-441E-B8C3-9EBDD7F893C7,QemuKernelLoaderFsMedia 143B7632-B81B-4CB7-ABD3-B625A5B9BFFE,EfiExtScsiPassThruProtocolGuid 143C715E-E903-4667-BF15-03F5A542F58E,ClientronShowSystemInfoDxe 1440F976-2332-4DF3-B77F-62F8C6C1EFFA,AmdNbioBaseRmbDxe 1448C340-0202-4711-9C4B-2D063AA6475B,ProgressBarEmptyLeftEndcap 144C3319-5F75-4A9F-A939-882A7AB29979,FjM2WlanEnableDisableDxe 1450464F-EB36-4AC6-ACEB-DAACC8FC3218,BoardSelectPei 145372BC-66B9-476D-81BC-2127C376BB66,FFS_pad 14575E7C-03D7-4A62-9C01-4EBFBD48BA48,SmbiosTypeAdd 145971E9-AD52-4094-A8C8-BE5B3FECC82D,CpuPeim 145E152B-3DDE-4EB4-99A7-77083C2BCBEC,DellFmpMcu 14610837-4E97-4427-96E0-21D9B2956996,EsalVariableDxeSal 14702E6F-73FB-46D5-BF5B-F0AD781A17B7,AuthenticationPromptProtocol 1471B886-A01F-4835-903C-5C7E792075C2,OememPei 1478454A-4584-4CCA-B0D2-120ACE129DBB,DellMfgModeSmmDriver 147B4839-5DBE-413F-917F-DFEB687C6312,PchResetPeim 14814579-D905-4A3B-8874-410B518674E7,RstNvmExpressSmm 1484EBE8-2681-45F1-A2E5-12ECAD893B62,ArmJunoDxe 14862240-96E5-4986-AB8E-9CEC8BC2AB57,ShowBmcIp 148C8945-F4A2-4586-A508-42F5470B2D47,DellSpdSmbusAccessDxe 14982A4F-B0ED-45B8-A811-5A7A9BC232DF,EfiHiiKeyBoardLayoutGuid 149A6B53-FAFA-44F9-8BAF-F50C68A05236,ScInitDxe 149E1CBD-A263-46DB-895C-4B0201D242B1,CrServiceDxe 14A7C46F-BC02-4047-9F18-A5D725D8BD19,EfiDFUResultGuid 14BAE438-5C05-483E-AFDB-D88325CC0E93,DellKeyManagementServiceSmm 14BB6DA5-0C47-4F2C-9348-8DC272619998,VmwSvgaDxe 14BD268F-76FC-4EDB-87F0-F0D4EBB256B4,VfsFingerPrintDevice 14D159A2-52ED-465D-9353-F239C5464BF5,DellSmmLomProtocol 14E7D9BE-7834-477E-A942-FF5F823EE249,DellSpiPartAtmel 14E9734F-3644-4F3F-ADFE-AB80BF5B48BC,SMBGlobalAcpiNvs 14F95E01-D562-432E-844A-95A43905107E,GuidBase 14FC52BE-01DC-426C-91AE-A23C3E220AE8,EfiSmmSxDispatchProtocolGuid 14FF38A8-ACBA-4228-A7D7-A73260C7559B,PiSmmStatusCodeOnFrameworkSmmStatusCodeThunk 1501F737-C56D-4721-988F-7437F3D22FD9,H19SmmReadyToLockHook 1504BA7B-58F8-4D12-9638-B494A7044376,LenovoSystemSmmServicesSmm 150CE416-EE63-46B6-8BA3-7322BBE04637,SaPlatformPolicyPpi 150EC16F-0BB6-42A8-B605-79794B89D15B,DellEdiagsConfig 151252AC-F77D-4C44-9977-A48CBEEC9CCA,SmmHooks 151664D4-6001-478F-8C97-C51420FC2B75,FchI2cMasterDxe 151C8EAE-7F2C-472C-9E54-9828194F6A88,EfiDiskIo2ProtocolGuid 152656B6-564B-4C8C-877E-B67FB70DFDDC,FjHobFlexIOPresence 15344673-D365-4BE2-8513-1497CC07611D,PchPlatformPolicyPpiGuid 15380DE9-1D51-407F-BE3E-CA71EC05C60D,AsusSetupDxeVariableItem 15446019-9170-436A-A981-CC7521E9D7F9,Usb4PlatformPei 154774EC-4350-40D4-AF66-7D1837BCD559,EfiHeciTrustedChannelSmmProtocolGuid 1547B4F3-3E8A-4FEF-81C8-328ED647AB1A,Csm16 15488FA6-2391-4C9B-6FB7-6FE0E0F410BC,DellPeiPolicyInit 154CAB4A-52B5-46CD-99C3-4368ABBACFFD,MetronomeDxe 15510D47-FADC-41F4-8B9D-FC323C821FE2,VerboseDisableCursor 1551A247-BB31-4393-8BB4-10509AE2F18F,ChargeLedDebugPei 15551AF8-56A3-43DF-B0BD-22422AD2F08D,DeviceStatusDxe 1555ACF3-BD07-4685-B668-A86945A4124D,CpuPeiBeforeMem 15721C79-5720-4838-A544-052563708E24,AlderLakeSmm 157C666C-7C74-4E4A-B639-7BBA21487CE1,QFanDXE 15853D7C-3DDF-43E0-A1CB-EBF85B8F872C,EfiDeferredImageLoadProtocolGuid 158B59E5-DE4B-4964-8306-40C03F5B5D57,FjMeDataRecoveryEventLogDxe 158DC712-F15A-44DC-93BB-1675045BE066,HashLibBaseCryptoRouterDxe 158DEF5A-F656-419C-B027-7A3192C079D2,ShellVariableGuid 158E2079-23F3-4E83-8A35-657A76408C0A,ApobSspPei 1597AB4F-D542-4EFE-9AF7-B244EC544C0B,EdkiiPeiPciDevicePpi 15A02416-DC90-4F8C-B687-093FFA8BB966,AMIProjectDxePriori 15A450BE-5D20-47E9-8B3B-856058CCD408,AsusNct6796DHwmPei 15A5BAF6-1C91-467D-9DFB-319D178D4BB4,UniversalPayloadExtraData 15AF363B-7C41-4D1A-800D-8BCEE473FF3B,AdlMiscellaneous 15AFBE86-E7F9-42F9-A02D-E95043E62F98,AdlSmbios 15B985C5-7103-4F35-B59D-2235FC5F3FFE,UsbTypeCDxe 15B9B6DA-00A9-4DE7-B8E8-ED7AFB88F16E,CpuPolicyInitDxe 15C5E761-58D8-461A-9173-CAB020916264,VAminiPort 15C75527-302A-4872-BBED-4730A0ABFFCA,LegacyBootEvent 15C80344-F980-4BF5-AAA0-BFBE027AEF16,LenovoEcService 15CCACBE-2A4A-45ED-9EC2-53135F98AB24,BmcAcpi 15CF24A9-F9AB-46D0-8DCF-83664C632FD8,MemDetect 15D101A9-60C5-4577-9672-DE91842D01D5,FjRTS52500S 15DD5676-2679-4E24-9CAA-85B22DD893EB,LenovoSecureFlashVerifySmm 15E1E31A-9F9D-4C84-82FB-1A707FC0F63B,RSTeSataEfi 15E4C005-52C0-444C-8C94-56FFA04C7B36,SmuV12Dxe 15EB6248-FB67-4690-B368-270B73B6ED2C,OemUniversalDxe 15EF0BF5-B7ED-4FB6-93D5-08BB4DE87ABB,HbmMemMap 15FE2940-B426-479A-A002-5454A34C7A6E,FlashMapBin 1601E050-BE0C-41B7-8F96-9F48F72B7E26,OnboardControllerCtrl 16036A73-E8EF-46D0-953C-9B8E96527D13,Reset 160D11D8-93D8-40A2-B1F8-7F7E80E0C8C7,DellSecureBootDxe 1612CCDF-2549-466A-BF6F-D06DAAE60958,AppleKeyMapAggregator 161BE597-E9C5-49DB-AE50-C462AB54EEDA,PowerManagementAcpiTables2 161F757E-ED55-4A75-A6F0-ED2DF16E0842,LanguageDefaultsAndWmi 16259EDB-3A84-4FC1-34BA-BA5AC23256DC,OemWwanDxe 16271FCA-55D9-4A33-93FC-5A3EB128DE21,MiscSubclassDxe 16271FCA-55D9-4A33-93FC-5A3EB128DEB6,CrbDxe 16271FCA-55D9-4A33-93FC-5A3EB128DEC7,EcsPlatformDxe 16271FCA-55D9-4A33-93FC-5A3EB128DEE6,OemDxe 162793AA-0FE7-4010-9818-45F55C5CCC3E,AmdCpmInitDxe 16287BA4-5B9D-4D98-919F-7B7B78CB2BE0,AmiLoadCsm 162CCA7D-DB17-4CD4-99C4-15F16282206E,GoodixTouchpadUpdate 163699CA-FFD9-4EFA-9901-A7B2DF3DE7D1,Class3Smm 163BA792-F811-4FBA-AE8C-101732F0328F,AdlSemaThermalControl 16449EDB-3A84-4FC1-88BA-BA5AC23256DC,OemWwanPei 164B86BF-B265-4033-92F9-BCB6D4ADC0C9,OobProvisionDxe 164CE56B-5EBC-4984-B0DA-C12B4F21D2EC,AmdRasRvSmm 164E5590-FB7A-47B9-8687-3E91DA499D97,AmiAmdUefiRaid 165E05F4-CCD6-418C-9BD9-6D6FF9B1B996,HpCommonDxe 16639ADE-3D0E-45F2-B158-9186FC416A1E,EfiFileSystemCapsuleStorage 166C533A-8F1E-4D34-A60E-0F68D8D61308,OemKey 166CAE80-98DE-45B9-BB47-85307145D874,AmdNbioGfxRMBPei 166CD554-8AAE-4617-8FDD-A2E3A5AFD89E,SystemSetupSecurityDxe 166D1713-23A0-4F6A-9821-ACD94F77BDE3,SbSocBixbyPei 166FD043-EA13-4848-BB3C-6FA295B94627,DellVariable2Smm 16791C86-47BA-BFC7-468F-D9B50D509487,AmdPsppControlPei 167CC1F7-F4AB-46CC-8773-6278056C14EB,BootMaintDxe 1682FE44-BD7A-4407-B7C7-DCA37CA3922D,EfiTlsConfigurationProtocolGuid 168D1A6E-F4A5-448A-9E95-795661BB3067,ArmPciCpuIo2Dxe 168E8FFC-B8DE-48E4-9CFC-D8A667ABEF11,GnbSocRenoirPei 168E8FFC-B8DE-48E4-9CFC-D8A667ABEF65,GnbSocRavenPei 16958446-19B7-480B-B047-7485AD3F716D,FdtHobGuid 16A4ADD0-EF11-4C86-B159-88A2A8C4501C,wifi_3bars 16A66E14-40A3-4A0C-B569-1C6822373345,AmdSocFp7r2PhxPei 16AD4FE0-B5B1-11DF-8CBF-0002A5D5C51B,PL310L2Cache 16B14E2B-DAD9-4618-ACE2-7D324A26F9A0,FjGpioResetPDPei 16B45DA2-7D70-4AEA-A58D-760E9ECB841D,FD_Drv_X86 16B6109E-194C-440F-94F8-C7CCCCC32DEB,EfiCseEndofPostProtocolGuid 16C368FE-F174-4881-92CE-388699D34D95,SmmGpioPolicy 16C58600-554B-4587-8C62-A40997CFE206,ASRockNetSmtpBin 16C8A6D0-FE8A-4082-A208-CF89C4290433,UefiSystemTableInfoGuid 16D0A23E-C09C-407D-A14A-AD058FDD0CA1,ACPI 16D11030-71BA-4E5E-A9F9-B475A549048A,EfiRedirElogProtocol 16D3B84B-45BA-8D9F-A4F2-8CA8AFB811CD,PiAst2500Pei 16DBCD0A-ED77-442C-A4AB-3DCADE378A1C,ThunderboltNhi 16E9BA4E-9EE9-48A8-A9A0-8E5F529911DA,Pca6107Pei 1705E39E-C353-11E2-A187-047D7B99E097,SetupMenuService 17088572-377F-44EF-8F4E-B09FFF46A070,Microcode 170D9568-C969-4FA1-A533-DB6779BFBE62,LenovoEn25Qh128FlashPartSmm 170E13C0-BF1B-4218-871D-2ABDC6F887BC,EfiOEMBadgingProtocolGuid 171148F3-6CF6-4C58-85D6-73013E19D90E,DriveEraseInterfaceCoreDxe 17119241-1153-970D-6509-75DCDFA41774,SbSocRavenDxe 171272DD-45CF-45E8-BCD9-F3891BF22975,BiosAuditLogDefaultsAndWmi 171E9188-31D3-40F5-B10C-539B2DB940CD,EfiShellPkgTokenSpaceGuid 171E9398-269C-4081-9099-3844E260466C,EfiPlatformTypeProtocol 171F43DC-C4D9-47A6-9641-65DDCDD5AA30,UsbRtDxe 1722EFD4-B7F0-41E8-AD21-0DA8FD6297A3,AmtLockUsbConInDxe 172B4EDF-DF64-48E5-ACAE-BDB51878FDAB,AsfPei 173220DA-F287-4D34-84C4-12EA968B927E,FjGabiEntrySmiDispatcherSmm 17390333-4CE6-48A8-AFB9-0EF55B666B74,RunTimeAcpiDxe 174005F5-3663-4305-9062-904B2BE2D07A,ApobPhxPei 174A8F8A-7B53-48B4-ACA9-D955AB1B5E90,SrSetupPure 174CF46D-B167-4E6A-B1CD-D41E24EFA0F9,AsusBackupSmm 1755E35E-3B29-4F3A-AD20-80788159DA1F,LEMPasswordStoreProtocolSmm 17565311-4B71-4340-88AA-DC9F4422E53A,SmmBiosGuardProtocol 175A5BB0-1508-4714-A1CF-34BD56C825DF,FjHobFlexIOSave 176652EE-2B20-4CE8-A61B-1C152726FEC4,HeciLegacyDxe 1767CEED-DB82-47CD-BF2B-68458A8CCFFF,EfiMemorySubclassDriver 17689034-F11B-468B-8CC4-E114C77F41B1,AsusPTTDxe 17706D27-83FE-4770-875F-4CEF4CB8F63D,AmiAhciPlatformPolicyProtocolGuid 17772369-D262-4B90-9F31-BDC41F2663A5,mebx_main 177B2C74-9674-45F4-AAEB-43F5506AE0FE,AsusPostMessageDxe 177D39D2-43B8-40C8-9AE1-3C5198D6941E,PeiTcgPpiGuid 177E63C1-AED6-4D88-917E-9B4FB9FE4092,PhoenixSmmCoreServicesProtocolGuid 17851FBF-45C4-4FF7-A2A0-C3B12D63C27E,SdBlockIoPei 17985E6F-E778-4D94-AEFA-C5DD2B77E186,QemuFwCfgAcpiPlatform 17A0A3D7-C0A5-4635-BBD5-072187DFE2EE,EmbeddedGpioProtocolGuid 17A269DE-7C35-4132-9EA0-A3EB5AB87F1E,PowerLostNotifyDxe 17A8A22C-8365-4540-9866-DAF6DABEABEF,McBankErrorInjection 17AAF4D7-0E18-4B99-87C6-94C8B5F25FB4,FchShastaSmmInit 17AE8AF9-6644-4342-A786-4CA69645D137,HspFtpmAcpi 17AF0060-A98C-4A03-90AD-6ABED75045BD,CbsBaseDxeRV 17BF72A7-BA65-4837-866D-979B2F2C075E,RasClvPatrolScrubProtocol 17CCF600-3AA4-4FF7-82D0-19CBEB78F443,MePolicyHelper 17D09362-326C-4920-A50C-76F8A116A093,SeCPolicyInitDxe 17D290E7-49BE-41FC-BF62-912C17152FA8,DellSimulatedECDxe 17E9EC9E-4036-4237-B074-D1F29464599C,OemDataRegionFlashSmm 17ED0DA9-EAC5-4613-BDE7-C3A506917676,LoadPartialDefault 17EE496A-D8E4-4B9A-94D1-CE8272300850,EfiPeiBootInRecoveryModePpiGuid 17F76387-DE12-4E59-A107-485BB133B4D6,SecureBioDxe 17FE14B6-9ABA-43C3-BEB0-D12F81AAA883,AmdCpmDiscreteUSB4Smm 180636A5-871B-496D-B8F3-E83EF196D100,menu_top_right 1807040D-5934-41A2-A088-8E0F777F71AB,NvramDxe 180D765F-C489-4F7A-8A3F-596018499EAF,DTbtDxe 1810AB4A-2314-4DF6-81EB-67C6EC058591,BootScriptTableBaseGuid 1812EFD5-0DFB-44D7-9AD6-74FCBB33B192,UiAppWrapper 181E874D-C089-4C99-8EC2-6D6761348220,AmiPllOverVotageFlagHob 18231874-2933-4A4C-AAF1-65B4A752A409,FwHealthReporterDxe 1826B10E-ECE1-4BD1-B351-BC469D17FC59,DellPlatformSwSmi 182F61F3-A6B7-4B56-AB1C-6EF6DDE09798,FjGabiFlashBiosRegionCtrlSmm 1830A6DD-E03D-4BC0-B115-94D91950FE4A,SioDynamicSetup 1834A306-0D70-470E-901F-2370FF30DDAB,DxeSpiNorFlash 1834C334-6F84-4147-B72E-16A1AF7BEF02,AsusPEFirmwareBiosGuardVS2015Bin 18355EC0-EF43-4CD5-9132-D2B33C5E5897,FjUsbTypecPwrLimitCtrlPei 183BB3E1-A1E5-4445-8AC9-0E83B6547E0E,CpuFeaturesPei 18435CD7-8003-4CED-AFA4-ECBC440C0F30,FwBlockServiceDxe 1849BDA2-6952-4E86-A1DB-559A3C479DF1,EdkiiFirmwareManagementProgressProtocol 18578E75-D073-4203-90D2-8788A871E44D,LenovoComputraceSmiServices 1859044F-C25A-4AA8-965A-2410D06A603F,ApobBrhPei 18633BFC-1735-4217-8AC9-17239282D3F8,EfiBttAbstractionGuid 1879BFDD-47FF-485B-88FB-4FCD206E49F4,AmdSocFp7r2RmbDxe 188DAED4-939D-4FAA-9F47-F01D5C16DD82,H19ErrorLog 189641F9-4F75-423F-9427-6457E8ED095D,DashSmm 18968E73-3C45-4333-B97F-8764C23923AC,FjAutoBiosUpdateInterfaceProtocol 18A031AB-B443-4D1A-A5C0-0C09261E9F71,EfiDriverBindingProtocolGuid 18A3B667-14AF-4AE7-840F-CD6317EA0CBD,NbRsRouting 18A3C6DC-5EEA-48C8-A1C1-B53389F98999,EfiSmmSwDispatch2ProtocolGuid 18AF0E1A-CDB4-48C2-B111-14CB070417BF,SyncCBSconfigPei 18BD198C-ECF5-40F2-98ED-C388C3FD9136,DRAMPei 18C040D4-15E4-4148-B7B3-582764710BBC,FprValidityRaptorDriver 18CB2CF0-40CD-11E5-B970-0800200C9A66,DellDptfChipsetDxe 18CC225E-8799-4945-9F92-EBB96423D6C1,FjGabiFlashCommonGbeRegionCtrlSmm 18CC325E-2799-4545-9F92-EBB9E423D6C1,FjGabiFlashCommonEcRegionCtrlSmm 18D543E8-C59A-40DC-AA28-50B832C67D02,CutOffStrToLimitedLength 18D5FF31-7A47-424D-B500-7D792D3E33AC,DellDtDiagSmm 18D6FC7E-D862-48DE-B56D-FA311421BF29,EfiTpmCallBackProtocol 18D93D57-0B00-4213-B0A2-A2FF5EC214E4,PrmConfigDxe 18DA03A8-FAE4-410A-A8C2-34C91913F515,AmdPspIntrusionDetectionSmm 18EBDB3E-95C2-4725-AB63-74B478C475DE,AmdCpmSocAm4RvDxe 18EF8946-68F5-49E6-B202-CE90C3EEF1C9,IchSmmDispatcherDxe 18FE7632-F5C8-4E63-8DE8-17A55C5913BD,StandaloneSmmPkgTokenSpace 1905FCF3-DDB6-49BB-A785-1E50C807160D,SystemSlotInfoDxe 19123709-F770-4FAA-858E-3BD5FB18464D,OemSmi 19133FAF-F2D4-4EE6-8A54-30DBFDBDA2AB,DellAmtFeatureDxe 1916F73E-C824-4F91-AC9C-BF1FD28E4431,DellServiceMenu 1925903D-3FAA-4A91-A257-448F4513B309,AmdNbioPciePei 192AFAB3-55F8-44B8-B49E-275A9DFDD03F,SetupFunction 19342D99-FF4E-4798-A3E0-FA36C961CCFE,PdtCapsuleDxe 1944F611-FBCC-40BC-88C8-850D0FE514E3,WCN6855 194D473A-01F6-48AE-9429-FD395813BE47,AdlinkNxpPei 194EE52B-02FE-418D-AA10-2E61E51CB894,DellMonotonicCounter 19618BCE-55AE-09C6-37E9-4CE04084C7A1,httpDynamicCommand 1964A5A5-91DF-4B2A-B3C4-8B4BF238D0BF,SystemVirtualKeyboardDxe 1967167B-A13D-4E45-801B-A605D11946D5,AmiTseOemPortingVar15 1967DD9B-B72C-4328-8C80-D4ACFC83FDF8,PciHotPlugDxe 196BFE1F-51FC-43E6-8E14-D421552BF0C7,FjFlashMapRt 196CA3D8-9A5A-4735-B328-8FFC1D93D188,TcgPlatformSetupPolicy 197DB236-F856-4924-90F8-CDF12FB875F3,Microcode 197E8644-1C26-7644-B5B4-978ED7301AD7,PlanarSelfRepair 198251A4-DE06-442A-AAB7-B0EE1E6DB8FF,GenericVar 1983E991-5033-43DA-8EA1-16D03AE895C8,MemoryMarginToolHookSmmShp 1988A1D8-04FC-4D68-B58D-636F36F30D82,SoftStrapsPeim 19984B85-18A1-468C-AF3E-C3D93F18C9FA,AsusSetupRestorePei 199C1EF0-6400-41C5-B0A4-FFBF219DCBAE,QuarkPlatformTokenSpaceGuid 199FD111-0785-4132-A9B3-1F66573F0060,GenericComponentsSmm 19A84692-4AAD-C04B-90E9-E017360A9860,DiskImage 19AD5244-FD6B-4E5C-826A-414646D6DA6A,EfiGlkVariableGuid 19AFD36B-F501-4446-9C9E-0457DB6E7888,SetupItemLinkageDxe 19B058DF-F97E-475F-92C7-BB26E0594FC8,DashManagerDxe 19B23409-85BD-44B0-897F-ECFE8AA7A145,SmbiosElogType15 19B4BEAE-54DA-4AA9-98B0-41ED75D805BA,EcRotTpmRecoveryDxe 19B6F165-7855-42E8-AA6F-2361CA87E024,LenovoSmmVideoInt10 19C2A1DC-73CB-46BF-A420-4C5558F958E8,DmiEditorDxe 19C4B49D-28DA-4232-996A-D175BBF6AFF7,SystemBiosSelfHealingPremiumDxe 19CB87AB-2CB9-4665-8360-DDCF6054F79D,EfiPciHotPlugRequestProtocolGuid 19CE57CC-628E-4F96-93D4-3C21F823C343,LEMPhyPresenceSet20 19D17940-BA8D-4FA7-A704-F33D9FAFAB9D,LibStringlist 19D92C2D-F089-4B7C-ABE6-333A1205ED89,AmiSmmMultiPlatformProtocol 19D96D3F-6A6A-47D2-B195-7B2432DA3BE2,AddBootOption 19DBBDC1-DEDF-4DED-8684-2476B99FAC91,AST2500DxeInit 19DF145A-B1D4-453F-8507-38816676D7F6,AtaBusDxe 19E3BBBA-BEB1-43E8-B32D-9ACBB22C7639,BasePostCodeLibDebug 19FE2FE9-470E-4C7E-8D55-6C7A08DA855A,SetupDefault 1A10742F-FA80-4B79-9DA6-357058CC397B,ArrowCursor 1A1241E6-8F19-41A9-BC0E-E8EF39E06546,EfiHiiImageExProtocolGuid 1A1D1204-E385-4943-A892-5334CE3809AC,DellCsmOemRom 1A1E4886-9517-440E-9FDE-3BE44CEE2136,CpuDxe 1A20B273-2CBF-4E64-A4A0-16A2AF252C27,AmdFchWheaSmm 1A2614A0-89E7-11E3-2990-31D281FEB1DC,NgnRasProtocol 1A3113D2-91A2-41FD-A83F-AD5E6B90D43D,AmdDashSmm 1A345BC0-CC35-9ABC-1CEA-1CAD7D33ADDF,SmcLsiRaidOOBSetup 1A3558EC-13BB-4451-A589-74DFBD9A27AD,LidPoller 1A36E4E7-FAB6-476A-8E75-695A0576FDD7,EfiPeiDecompressPpiGuid 1A481E8E-342F-40AA-AF31-F4FB7C99D428,AmtInt16 1A4D88C8-015E-42C2-9D4A-C4212BD881AC,MfgDoneSyncItem 1A57C46D-B93E-4036-8F33-1174CA091857,SystemDefaultVariableManagerPei 1A682DA2-3EE3-4793-8521-4DB8A69939FC,AmdNbioAlibMDNDxe 1A6853C8-F362-4F68-A77E-0B304A194C05,UseSocketDxe 1A6F63F1-AEAD-45FC-882C-03885004A6D6,DellAdvSysMgmtSmm 1A763B74-1400-4245-BF89-56910FA7BE48,FjSystemInfo 1A7BEAE8-0587-4EB5-B35D-D0D262201800,DellAcpiResetProtocol 1A7E4468-2F55-4A56-903C-01265EB7622B,TcpDxe 1A819E49-D8EE-48CB-9A9C-0AA0D2810A38,DxePchPolicyUpdateProtocolGuid 1A8DC70E-1D6D-4E33-BF0A-7FE6CD38744E,SiInitPch 1A8E9D96-66E6-461B-95D6-882C984D0B00,TbtPei 1A926325-2764-47C8-9E1C-4F83B1723336,VirtualEcDxe 1A931FB8-C466-454A-B684-73ADA2CB050B,AsusPostMessagePei 1AA34862-C1D3-49D1-9281-9F261545C09C,FjSystemDataFvDriverSmm 1AA6D900-89D1-4C21-9C50-EDC7390A67C3,SlotDataUpdateDxeNeonCityFPGA 1AA719F3-10A8-47BB-983F-3A03BABBB1EB,JGPIOCtrlPei 1AAF6A9B-CB1B-469E-9420-0D3912B8E376,MrcHooksChipServicesPpi 1AB9B2FC-7A50-4FA2-A190-EEB35797571D,OpromUpdateDxeSierra 1ABCB349-299B-46E8-99D1-582D91B3AB54,RstEraseDxe 1ACED566-76ED-4218-BC81-767F1F977A89,EfiNetworkInterfaceIdentifierProtocolGuid_31 1AD5B195-44D9-4917-9BAE-E14784979306,Fji210LanDriver 1AE42876-008F-4161-B2B7-1C0D15C5EF43,DefaultDataFile 1AE856C8-1C5A-45F0-8FC2-0093292DB915,IteOnlySmm 1AEA4E7D-D6F8-491E-BB5C-4BEC10C98C99,FchSmmDispatcher 1AEC7EDF-3287-4669-B114-33A1198A60C0,OemAcpiDriver 1AEC89FC-DB8D-48EF-A6CC-C87A0B63E934,XnoteSwSmiServiceSmm 1AFE6BD0-C9C5-44D4-B7BD-8F5E7D0F2560,DellDiagsSbControlSmm 1B037083-5F15-4437-BE09-6C68AC675B85,MtkWiFiDxeGen2 1B04374D-FA9C-420F-AC62-FEE6D45E8443,FspDebugServicePei 1B05DE41-C93B-4BB4-AD47-2A78AC0FC9E4,HstiProtocolGuid 1B06C65D-466E-35C9-154D-4D91BC4B9F8F,AmdPspDtpmPei 1B06FA46-E65B-4257-8855-5828B7591E61,FingerPrintHDDPasswordChecking 1B08A1DB-F91A-4FA1-A911-255C417F1CF7,ServerMgmtSetup 1B0FB9BF-699D-4FDD-A7C3-2546681BF63B,EfiWiFi2ProtocolGuid 1B1183FA-1823-46A7-8872-9C578755409D,EfiSmmPowerButtonDispatch2ProtocolGuid 1B1924C3-6321-484F-83EF-8894B21DE258,AmiPeiCrbInfoPpiGuid 1B2042F7-5CE0-4360-B98F-2973CAE22B97,FjSysmanTeutatesSmmBin 1B26C724-C7D4-4DE6-B0B1-C622BC2937FF,SmartCoverPortingDxe 1B2C4952-D778-4B64-BDA1-15A36F5FA545,Slp20PubKey 1B31A273-217E-3377-23D1-AB0CF19B9D47,ChgbootDxe 1B346098-AB0B-4AE7-DDBE-88AB3CD6220D,BatteryIdm 1B417388-B6B7-4026-B849-30060477A2AD,BootDeviceOptionsWmi 1B45CC0A-156A-428A-AF62-49864DA0E6E6,AprioriPei 1B49372D-CBBD-44D3-842C-8E900390DA8C,H19BatteryControl 1B496714-7685-402C-A5BA-37B8113D4E74,DellFreeFallSensorSmm 1B4AE0F8-ED1F-4FD1-9B18-B082290F86F5,EfiPlatformTypeLightningRidgeExrpProtocol 1B59CCDA-7DB2-4A55-AFC2-4364F824D288,McBankErrorInjection 1B5B480A-2B45-48AE-AA0A-D82B92A7738B,AppAdapterSgx3v0 1B5C27FE-F01C-4FBC-AEAE-341B2E992A17,FspSFirmwareFileSystemFvGuid 1B6664CC-57B4-4E47-A477-2C9DD2413667,DellPchPtssTablePei 1B69BD70-9FAD-4A0E-8A3E-DC15AA40FC56,LEMBIOSLock 1B6BC809-C986-4937-934F-1EA58622FE50,AmiTseBootOrderChangeGuid 1B6E9D50-12E4-4B55-81D9-1ABFEC59D4FC,WakeCtrlSmm 1B76B808-B90A-42A4-B0A0-BE61B121E114,FjTpmMisc 1B799E86-28CC-4DBF-A763-F7F33FFD2772,SmuV13Dxe 1B838190-4625-4EAD-ABC9-CD5E6AF18FE0,EfiHiiExportDatabase 1B8B5F2B-605A-4D09-AFDA-842C3933A050,AmiFchUart1Dxe 1B8DDEA4-DEB2-4152-91C2-B73CB16CE464,PeiAtaPolicyPpi 1B9CD864-DA7C-483E-8D69-D35CB4AD27C9,EfiWheaPlatformNonStandardErrorSection 1BA0062E-C779-4582-8566-336AE8F78F09,SecCore_VolumeTopFile 1BA0ADA4-526B-4F11-A9BD-3F83EE17EA30,CopyRight 1BA41B68-465F-4B22-8406-2B82173DAE50,DellSpecialBootControlSmm 1BAD4160-CE02-4BDD-9D04-DCF7D7B72E0F,IioErrorHandler 1BAD711C-D451-4241-B1F3-8537812E0C70,EfiMeBiosExtensionSetup 1BB13967-8B24-411B-9828-18D285A9CC4D,AmiPpiGuid 1BB47F5A-AB6A-4024-A73A-1E2C43178AD6,UsbBtDxe 1BB737EF-427A-4144-8B3B-B76EF38515E6,SdMmcPciHcPei 1BE14579-D805-4C3B-8874-410B818674E9,RealtekPxe 1BE65202-9318-492D-A551-08DF2BD60AEE,AmtPlatformPolicy 1BE9A477-92E6-4BA4-9496-C9DE8E152534,SbSocStarshipSp3Dxe 1BF06AEA-5BEC-4A8D-9576-749B09562D30,ProcessorProducerGuid 1BFC532E-F48A-4EBE-B2FB-2B286D70A6EB,IconUsbHD 1C015629-00CF-473D-BE1C-3561024F0569,AdlSemaDxe 1C0C34F6-D380-41FA-A049-8AD06C1A66AA,EfiEdidDiscoveredProtocolGuid 1C0D835F-C0C5-4848-B42B-95FEDBCC815C,GnbBristolRouting 1C110D74-159B-46B3-B47E-7B7AD22FA6D6,DellResetReduction 1C132679-BB95-479C-8A82-6DE72A52D6FD,AaeonPowerButtonSmi 1C14F9BE-034F-478C-AD0A-D4D178C11629,OemNetworkDxe 1C178237-6897-459E-9D36-67CE8EF94F76,EfiKmsFormatMd5sha128Guid 1C1EAB81-9229-42AC-B940-757C498A09ED,AmiTseOemPortingVar22 1C324C08-EB94-4715-9180-F5A453C57269,OemGOPCallBack 1C33C958-FEA4-435F-93EF-0A9C14AE87E4,DellMfgAuthentication 1C377111-E07E-4B33-9B5B-30817D1F1BE3,DellIntrusionDetectSmm 1C3F1D99-4D35-4BBE-B75E-A2C92C7228DA,OemWwanSmBiosType133 1C4C501A-8CDC-4D1F-8639-27E9049494C1,HpCommonAcpiArea 1C505528-32D7-4D70-8818-9A489B414ABA,PcieErrorLog 1C58AAC6-76C9-D94D-A14C-0059E13B96A3,AppleMtftp4Dxe 1C5C6E7E-552A-443E-9A04-7408ADEE99D3,FirmwareConfigDrv 1C5FDAF2-9FB3-431B-8ECD-B7D35CBEFAE9,EfiAfterPlatformLocksEvent 1C606E42-F267-4A2F-95EA-A081B62E3F4B,H19CheckPointHddService 1C675C27-6FB1-4170-94E7-3DFFE8BEADBA,LaunchPad3Drv 1C6A6DBE-CA59-44E4-8D42-68FAC524A89C,SystemAudioDxe 1C6B2FAF-D8BD-44D1-A91E-7321B4C2F3D1,ScriptSaveDxe 1C728BAF-96B6-46E6-B549-E50C45898E3A,TamperEventProtection 1C733CB5-4C8F-44D9-BBF0-95477089EB08,DellSmBiosStrucDa 1C7B1FD9-373C-4569-8DC1-8DB2FFFA7639,NistDxe 1C8020B7-D2F2-42F8-852B-CBC232CCC9BC,AsusROGLiveServiceSupportDxe 1C83550A-7E5B-4A30-9E93-E2153771AA25,FjDmiCpu 1C871D93-BA95-474D-BA2A-397CCF9D2691,OemTurnOnAmp 1C8B7F78-1699-40E6-AF33-9B995D16B043,PiSmmCommunicationPei 1C98780A-C67D-4D9B-A9D8-4AC0487A6D6E,PcdRecoveryPei 1CA0E202-FE9E-4776-9FAA-570C19617A06,EfiPciCallbackProtocol 1CA7E5F3-2385-427D-A4AF-F6E28BB8BBEC,AmdMemAm5Pei 1CAE7577-D662-4727-BAEC-777631D3A958,SystemVspCmosPei 1CB1ADDA-D8DD-4C6E-8DEF-A0DACB2AEC83,RetimerCapsuleUpdate 1CBC61DC-3D35-41ED-8E92-9147A0D68E77,AmdMemFp8StxDxe 1CBFC9B6-7F1E-4E9E-801F-FBCE4D92A76D,AmiTseBeforeTimeOutGuid 1CC640E2-28EE-4D0C-8211-5D0E30967EE6,DellRecoveryMgmtDxe 1CC6FA21-4A9D-46B4-9EBF-9E42F5D044F2,FjCapsuleResetHookSmm 1CE12314-AFBC-11F0-8A3E-AB44B8EE3120,PpmPolicyInitDxe 1CE34CFF-DFE9-4D9D-B264-166FFCB8315A,MebxSetup 1CE692F0-3317-4574-8B57-4800ED091F40,DellDxeComputrace 1CE7C25E-02E0-4CB8-9410-766EEE8B8A97,FjMfgTpmDxe 1CE9B08D-7649-4EE6-AEF5-729A4DA7E469,EcIoDxe 1CEBDD17-1325-42BB-8A7A-22857CF10A5E,AmdFabricRsDxe 1CEC16EC-1C60-449B-9775-23CA66B93F52,AmdBoardIdPei 1CEE181A-DF5C-4391-BCA8-CDE5A5A1A0BA,OemHooks 1CF369C2-3C8F-4D75-AAED-45CFEB8E9B6C,UsbPortDisable 1CF3F8B3-C5B1-49A2-AA59-5EEF92FFA63C,EfiIa32X64ErrorTypeBusCheckGuid 1CF40D19-EEAD-4C73-93DB-BBB8B6ACF929,SystemNUserUserManagerDxe 1CF59BF9-E3F6-4D9D-BB94-8B857278BBC6,GnbDxe 1CF6C0C8-FA85-43EE-94AF-DB27C54174C9,RAIDCorePei 1D000AE9-756B-4937-B736-1F3D96A5A8F0,Dptf 1D0CFB9B-EB00-43A6-819C-D218DF8DC4B4,BootMode 1D12B73E-7DDE-4910-93C5-2BDB041C6849,FjIbvBiosPasswordAbstractionDxeProtocol 1D154AE4-5BDB-4341-90E2-32531679CF14,TypeCEventMediator 1D201235-2F40-4FBC-8650-8502092D62AB,LenovoEaiaDxe 1D202CAB-C8AB-4D5C-94F7-3CFCC0D3D335,EfiSmmCpuServiceProtocolGuid 1D26ADC3-B011-EE2C-2177-89BBAACC3392,AmiBeforeCpuRcProtocol 1D292105-2653-11E5-B46F-B8E8562CBAFA,AppleCapsuleRuntimeDxe 1D3DE7F0-0807-424F-AA69-11A54E19A46F,EfiExtScsiPassThruProtocolGuid 1D3E9CB8-43AF-490B-830A-3516AA532047,EdkiiFaultTolerantWriteGuid 1D4B3C7B-7D01-4CFF-AF3A-0DAFB53F6321,FjGabiSystemDataLogoAbstraction 1D4B3C7B-7D01-4CFF-AF3A-0DAFB53F6322,FjGabiSystemDataLogoAbstractionFTS 1D57B5D5-BAB4-4D2B-B7EB-0EB41D7B189C,LibGlob 1D58E9FD-BA80-4A47-8190-08AE9BB8A0ED,DellTagsPolicy 1D6F730F-5A55-4078-869B-E0A18324BDC8,TemplateSec 1D6F853E-0006-40D8-9B4B-79618A5733B0,AmiTseOemPortingVar3Guid 1D6FE4A5-8E70-4D10-84CD-B1D33214F9B5,HpPopupsSupport 1D7ADD6E-B2DA-4B0B-B29F-49CB42F46356,EfiMemoryProducer 1D82219F-386F-4F26-AFAC-613F242C0760,DellSmmStatusCode 1D85CD7F-F43D-11D2-9A0C-0090273FC14D,EfiUnicodeCollationProtocolGuid 1D88C542-9DF7-424A-AA90-02B61F286938,WdtPei 1DA02C3C-62E5-438B-B0DB-9E5128379661,EarlySmmDevices 1DA353A3-6400-4241-9AB0-E3E65C690EF7,IchSmbusArpDisabled 1DA69AFD-C297-4EE2-A086-0A41EB2B4DC8,XnoteGopVbtPei 1DA97072-BDDC-4B30-99F1-72A0B56FFF2A,EfiMonotonicCounterArchProtocolGuid 1DACE8EE-CD97-491E-8A0C-305D6437323C,AsusOnBoardDeviceDxe 1DB184AE-81F5-4E72-8544-2BAB0C2CAC5C,AmiBbsDevicePath 1DB29AE0-9DCB-43BC-8D87-5DA14964DDE2,EfiUserInfoAccessSetupNormalGuid 1DB43EC9-DF5F-4CF5-AAF0-0E85DB4E149A,BootGuardDxe 1DBD1503-0A60-4230-AAA3-8016D8C3DE2F,EfiSmmIpmiTransportProtocol 1DCFBACA-6ADA-4C0D-86ED-AF658BDFEC0C,AmiPlatformToDriverAgentProtocol 1DCFF17C-AA53-4B78-B234-864027555035,LibUefi 1DD1D619-F9B8-463E-8681-D1DC7C07B72C,EdkiiNonDiscoverableSdhciDeviceGuid 1DDA5978-B29A-4EA7-AEFB-8B0BAA982E22,ExReportStatusCodeRouterPei 1DDBB0E2-6FB5-4B1F-A14C-F2E5B5E59168,aqnicdxe 1DDBFD6A-3423-462F-9150-A7FFA66FF0CA,StaticSkuDataDxeLightningRidgeEXRP 1DE0B8C2-FFB6-4BDF-97F5-0FFB33979038,BaseReportStatusCodeLibNull 1DE25879-6E2A-4D72-A768-288CCB9FA719,EfiMemoryConfigDataHob 1DE2AB60-EB98-4D6B-9DCE-A7EF2202B3AE,AmdAgesaParameterGroupPei 1DE64B8E-138B-4258-B7DD-F2D8EC142A9E,AmiFwUpdateBmc 1DE6EF1D-DB01-4C27-AD29-C582887E2E18,OemSataInitDxe 1DF18DA0-A18B-11DF-8C3A-0002A5D5C51B,SataSiI3132 1DFB7BFA-BF8E-4D11-9766-2FB0D0442310,AmiAgesaDxe 1DFB7BFA-BF8E-4D12-9766-B0D014120415,UpdateHwSignature 1DFC7675-CB00-4BF8-B8F0-E1C993814D2E,FjWirelessLanDxe 1DFFE9F3-7B5F-4B44-8EBD-39A739EBA903,AcpiPlatform 1E00830B-8BA5-4D24-8609-E74994E13A39,Common_LilyPei 1E107FE3-565D-4AE0-94B5-563D9F96BFC8,EfiSmcInBandLoadDefault 1E1CAC3D-8460-4EDA-9791-6D1B2DA75E21,NvmeSmartFeature 1E21C326-0D40-40F2-9F02-3A9B7838AA6B,AmiIpmiPkgTokenSpace 1E2ACC41-E26A-483D-AFC7-A056C34E087B,EfiPlatformInfoGuid 1E2ACC41-E26A-483D-AFC7-A056C34E087C,EfiNorthPeakGuid 1E2ED096-30E2-4254-BD89-863BBEF82325,EfiTcg2FinalEventsTableGuid 1E30E33D-1854-437A-BD68-FC1553AA8BE4,CseEmmcSelectPpiGuid 1E321458-2CF2-4AFD-8102-C86423ECD18D,FjMiniCardModePei 1E43298F-3478-41A7-B577-86064635C728,OptionRomPkgTokenSpaceGuid 1E463F9D-4CFB-4396-A784-68C350BADCF1,AmdSpiHcProtocolDxe 1E469095-EFC8-4147-97DB-4D68B727E2E0,FwBlockService 1E4EAAB1-E637-443E-A5D6-56E60D97C619,UsbComboPeimPei 1E5668E2-8481-11D4-BCF1-0080C73C8881,EfiVariableArchProtocolGuid 1E6EBC58-55E2-4FE4-A396-AA2C228EE7E2,PhPlatformSiSmmCodeCheckSmm 1E753E16-DCEF-47D0-9A38-7ADECDB983ED,TcmLegX16FileGuid 1E75E77F-8A15-4653-964D-542C157EF40A,SgPeiPolicyInit 1E77550E-E429-4FA9-BEBF-B515ACF7D919,Ip6 1E82B556-4EB6-479F-955A-78A5FE0C0CB2,BroadcomWirelessDxe 1E843AD6-E237-42FC-BDA2-DE78542E16DD,SstSpiFlash 1E8DCCE9-341C-4219-A790-F14C28B51CE4,L850Id0WAPei 1E8DCCE9-341C-4219-A790-F14C28B51CEE,LenovoEaiaPei 1E910FF4-3106-44F0-BB75-115A52FB9BAC,DellVideoDxe 1E93E633-D65A-459E-AB84-93D9EC266D18,EfiTapeIoProtocolGuid 1E93F29B-A3B2-F340-A605-DE31EE3DA031,EdkTerminal 1E97097A-C884-4BE4-A530-299F85BDC894,MediaSanitize 1E97E5F2-F850-0FD9-8191-C18FE43B0405,WnameDxe 1EA09F16-1A28-435B-8E8E-8AB7C1DE04D3,FjHiiString 1EA81BEC-F01A-4D98-A201-4A61CE2FC022,PerformanceExProtocolGuid 1EAF8A37-CD36-4267-831E-AC69789C5CCA,mSupplicantDriver 1EB667B3-3DD6-4F19-BA60-7C4638AC4062,AcerPortingDxe 1EBE5AB9-2129-49E7-84D7-EEB9FCE5DEDD,EfiEmmcCardInfoProtocolGuid 1EC0EFC9-C93A-4B62-9B27-C059ABD80E92,VlvPlatformInitDxe 1EC0F53A-FDE0-4576-8F25-7A1A410F58EB,StatusCodePei 1ED1D253-E62B-47C2-ACC3-50B859CBD511,Armani_BatteryHealthControlDxe 1ED46147-76E3-4171-BCE5-42D368D26AA6,DebugPortTableDxe 1EDC318F-4005-488D-AF3A-9BB5179BC6F1,GmchMbiDxe 1EE0E496-28B4-440B-A45A-7464BF4B32A2,FjUsbSecurityV 1EEA2BFE-01CB-40CC-A34E-CB224C800AA2,Tpm2DeviceLibSeC 1EF02CF1-BF69-49C3-8FDC-5BB55D224CFA,DellPowerButtonConfig 1EF08355-4136-443D-BE11-B4CB99524D80,HpWsCommonSmm 1EF46A7B-5F4D-4967-B3C4-A308D898EADD,AsusCalibrationDxeEntry 1F05933D-FF2E-4236-BE92-56682D3E8FB4,FdCapsule 1F08F001-AC83-43D3-996B-47FAE153CB2A,DisableAbtSetup 1F0F049E-3A68-4C97-865A-BC5EED7920E7,AmiPeiNbCpuOnlyResetPpi 1F1829F7-54D7-4A08-94D3-8DB412782531,SioPS2PowerOn 1F18C5B3-29ED-4D9E-A504-6D978E7ED569,QncS3CodeInLockBoxGuid 1F1DFC5B-5C64-49A3-A14A-AC2D3138B595,FjIbvAbstractionDxe 1F202FEC-DDA1-4BBF-8584-BD42E379CE99,DellDiagDxe 1F21D964-807D-49F4-AE4E-F52663D1A16F,FjCryptoDESDxe 1F28B56E-D26A-48FD-9FAC-9E18A2C5BBDB,CnvUefiVariables 1F2CCB4F-D817-404E-98E7-80E4851FB33E,GdbStub 1F2D63E1-FEBD-4DC7-9CC5-BA2B1CEF9C5B,FileExploreFormSetGuid 1F345462-CEA5-4ADD-9C43-5CA6720B9DA6,IrqBoardInfoRvp 1F36527E-A97C-45F8-B24A-9D95B0A940FE,AppleBrightnessControl 1F3CDFBE-F7AE-4453-8C48-C1AD35A4FD98,SmbiosDmiEditProtocol 1F4C6F90-B06B-48D8-A201-BAE5F1CD7D56,EfiPeiStallPpiGuid 1F642910-3D7B-4627-8D18-DC62671E0554,BiosReservedMemoryPolicyPpiGuid 1F6835A4-4A5D-4B02-86C5-B3FC87840E92,AsusOA3Bin 1F73B18D-4630-43C1-A1DE-6F80855D7DA4,EfiFormBrowserExProtocolGuid 1F77FFD9-C00D-4245-B2AC-F5F43E333C39,PtuLoader 1F78349D-7FBA-4686-8098-FA017EDA35FB,ArmShellCmdRunAxf 1F7A4AAB-E6AB-416C-98B8-31F614FFF198,DellSmmComputracePreInit 1F871708-1541-461F-91D5-4A90852DC913,FjGabiNvramMergeSmm 1F8ECE17-87A5-4196-B265-4F01FBF9AA2D,FjGabiLogoHandlerDxeBin 1F9BF300-67FB-46EE-B6E7-2B6F6590531C,HpCertificateManagerDriverWmiSmm 1FA1F39E-FEFF-4AAE-BD7B-38A070A3B609,PartitionDxe 1FA4DAFE-FA5D-4D75-BEA6-5863862C520A,TcgConfigDxe 1FAAA415-F8A9-4A33-B434-A7811FBEC145,SaveConfigMemData 1FAE70AC-8203-48F0-B9EF-E873FFECC1F2,PeiLegacyRegionPpi 1FBA8CFA-8194-49C4-BD8E-9F162A957BA1,WMISwSmiDXE 1FBD2960-4130-41E5-94AC-D2CF037FB37C,EfiAdapterInfoNetworkBootGuid 1FD28F7C-8CFE-46C4-AE0F-0CEBA37FF28B,SystemSignaturesDxe 1FD29BE6-70D0-42A4-A6E7-E5D10E6AC376,AmiHddPasswordVerified 1FD3AD5B-5E65-485E-9EBD-95B14D6ECCC6,SetupConfigUpdateDxeXPV 1FDF71C4-D46D-45FB-BF85-56F1C529725A,ComTypeControlPei 1FE16506-5CC5-4D89-B8FB-6EB5E134887D,DxeWhea 1FEAEE73-F8DC-439F-9FD3-A0ED92B5EBDA,SmbiosMFG 1FF7913E-D890-4360-AC75-B8D8384BD1E0,AmdSmmControl 1FFF93C2-8C76-49E4-8AB3-43D92F5445EF,LogoJpg 2000A832-C674-486A-81BE-CB4670A4F7FD,DellRebootDxe 201A92E1-2D0F-48E9-A3AB-93E1695A92F2,AppleHDA 2022B972-B1B9-4B55-A603-7851CB062E34,LePassKeyDxe 2029D12A-0A83-4277-86A2-712905201AE7,SpiWmi 202A2922-8C27-4943-9855-26180BF9F113,VariableInfo 202A2B0E-9A31-4812-B291-8747DF152439,Ps2MouseDxe 204810E0-4941-4C66-B99A-6BEE4F84453C,AtherosWiFi 204C3D37-D83F-49AB-883F-9B5D6C647762,FspTempRamExitGuid 20576248-C01A-439D-8CD6-418EAABE0A29,RasClvAdddcProtocol 20605BBA-7FB9-4279-959F-8DBF74CDB0C6,VideoBios 206E7181-A935-4BAF-949F-A875136CD46F,PldmBcc 208117F2-25F8-479D-B726-10C10BED6DC1,AppleLegacyRegion 20830080-CC28-4169-9836-7F42B8D0C8C9,GraphicsOutputDxe 209097AF-5ACF-4E2D-A31B-72257E05DC40,ODMMemoryOverride 209674EF-6060-43E4-BE87-E742E16BEB00,NvmeControllerPei 2098F2DE-AF12-42E4-AD75-D88203EA0683,SecureBIOCamera_Sunplus2 20A1D839-853D-4067-B69C-552A0D05C1AA,DellFormBrowser 20A7378C-AA83-4CE1-821F-4740EE1B3F9F,PeiOperatorPresencePpi 20B0F1C2-B0D8-4C5D-AAD9-F44580DFDF8B,EfiPeiAmiKeycodePpi 20B181E2-33E8-4211-B9D7-9B8696764E66,WheaElog 20C7C6BE-56C6-46B7-B3AB-5588289AA803,XnoteSwSmiServiceDxe 20C95B72-F4E3-4BB2-A289-19DBFD23F531,PlatformInit 20D19705-E59D-4362-9956-FA533AFF2429,SetBoardId 20D6E759-4C4A-40C0-9533-2BF0066850FD,EfiQuiesceProtocol 20D8FFFE-15C3-4EA9-9D28-CFE2745D78F3,CryptoDxe 20DAF0FC-5548-44DC-A42A-60EAF0A22E47,DxePlatformTdtPolicyGuid 20DC4DF3-AEA8-4D12-9A20-C07EB9157E04,OemSetupCallBack 20DE009A-B0B3-43DA-8047-B5E2B19D6CC0,FlashOemHooKDxe 20DED343-E5FA-49C2-B20F-C18798743D41,OemPowerMgmtSmm 20DF5C15-5E32-42D7-BB67-3390A0E51FFD,HpErrorLoggingPei 20E28787-DF32-4BDA-B7E7-CBBDA3371EF8,IdeControllerProtocol 20E687BE-B09B-4DA1-BCFE-E804B3B97CE4,CsmeHealthDxe 20EA66CA-17C3-4DD4-A51F-956CC9E4FC26,AmdIspCamera 20F8FD36-6D00-40FB-B704-D12C153C62EB,CcEventEntryHob 21073EF1-FF66-41FF-9BF4-A3E936DB1901,FchHuashanPei 21094ECB-9F20-4781-AE4B-50728B389A6E,IchInit 210DCB72-BC14-4A19-A29B-F696EB7DE12B,EzSetup 2119BBD7-9432-4F47-B5E2-5C4EA31B6BDC,DxeIpl 213A595C-F512-4935-90E3-2CEAD077C721,DashDxe 21429B90-5F67-4E93-AF55-1D314D646E12,MemoryProfileInfo 2145F72F-E6F1-4440-A828-59DC9AAB5F89,EmmcDxe 215FDD18-BD50-4FEB-890B-58CA0B4739E9,EfiSioProtocolGuid 21605810-54B3-4109-8AFF-3B3FBF4AF040,DellPasswordPolicyDxeProtocol 2161BF9C-8038-4F12-A758-30140660F22F,StaticSkuDataDxeFischerLakeRP 2167F964-7298-4A8F-9A2A-BFE498D600A8,HddReadySmi 216A681C-9E51-415F-9ADA-CB9FBCD05F5D,DellFlashIoDxe 21729246-5DF1-46A1-A5C6-2484BCD706FB,LEMSetVariablePreInit 21782819-FDA0-4ADE-BD36-C95F079F057D,AsusBackupAccess 217FA926-F494-4B3F-AC45-D213C2A0294D,PostLogo 21834F44-9201-4AA3-9B15-AFD794D93BC4,OemWakeOnRtcPolicy 218596FC-6EBD-4D19-A79B-41B13448021C,OemSWBoardIDDxe 21877E2F-F86E-4E8A-9C9B-D7B152DD40D8,EfiPeiPlatformTypeNeonCityEpecbPpi 21891A9E-763E-4377-8841-8D5C90D88C51,NetworkStackSetupScreen 218E36A1-C2A4-4D42-8024-C9B80E3DAF47,FjFvFlashRt 218F1930-10AB-43B3-9C66-B98483A1AE9D,OpalBlockSidDxe 218F4B00-E4F0-4CAD-8A90-577B833D0128,BixbyDxeDxe 219144EA-D6B4-4D6A-B8F5-63CA8A09C8D0,CsSmmDriver 2197DD5B-B8D9-4897-92F1-18D75903E6AF,HpSleepStateSmm 21A05FD5-DB4A-4CFC-B84B-EB0DBB569934,IconGenericCD 21A74F63-CA10-4DC6-A4EB-36C93B9A063A,PlatformFlashSmmProtocol 21ADC483-021F-4F3B-8DCE-613CC981A269,menu_dots_selected 21AF95E1-371F-4712-9C07-798E3CB019E4,LockSMRAMEntryDxe 21B0CB55-4330-4343-AFF8-A68089124118,DellServiceMenuConfig 21B564BF-53EA-40D1-85AE-EFFC93D28640,FchKeithMdnDxe 21BE6180-733A-443B-DF46-41C008047687,AmdNbioPciePei 21BF3644-1CE7-4E87-8C60-0A5C607173A6,RemoteFWConfiguration 21C3B115-4E0B-470C-85C7-E105A575C97B,EdkiiEmbeddedGpioPpi 21CCF0B7-246B-412C-A334-0B65A07B28DF,SmmBaseOnSmmBase2Thunk 21D04395-96A0-4FD5-B477-A922648EDAF3,AsusSampleDxeWrapperPkg 21E173D6-C221-48EE-A18F-B73D9810FBF6,AsusApmPei 21E34727-3881-4DEE-8020-D8908A980311,EpuHwModeDxe 21E70404-DF72-4122-B030-281306EB7BE3,VbtEdpTypeCGuid 21F2A221-0CF9-4E0A-9FD0-2DADDC025E31,BctBaseSmmSTX 21F302AD-6E94-471B-84BC-B14800403A1D,EfiSmmCpuSaveStateProtocolGuid 21FF1FEE-D33A-4FCE-A65E-955EA3C41F40,QNCMemoryInitPpiGuid 22046D50-F390-498C-92E5-5BA4F8E7F8B6,SBSATAIDE 220AC432-1D43-49E5-A74F-4C9DA67AD23B,HotPlugDevice 220E57C8-4E71-493F-91B8-0F7F820A1DA2,I2cMouseDxe 220E73B6-6BDB-4413-8405-B974B108619A,EfiFirmwareVolume2ProtocolGuid 221521AE-0A35-44CD-B580-5AEDBB770B1D,glyphs 2216614E-CDBE-46E7-BA61-9BD2BC640393,AmiPspFlashSmm 22198FD5-4835-4842-BF31-EB957C7DD70D,GetNetByAddr 221D6760-4AC0-4C12-BA96-9C63E4D9C1C8,HwmInitPei 221F1D4F-034C-4BEA-B2BB-B7A9672B06D7,CrbSmi 222C386D-5ABC-4FB4-B124-FBB82488ACF4,PlatformPei 2236B8BC-E488-4424-BEB9-97C8A1483693,PlatformOpalDxe 2237C798-93E7-4119-B10C-CF75CD22BFE0,AmdApcbZpDxe 2240157B-A45A-46EB-9A7E-1E79C4781FD7,HWChangeWarning 224453CE-FED2-49CC-A42F-443FF9CCB6C7,Ast2600VgaDriverX64 224FBFE4-ADB6-4DF2-B835-602182AEEF20,Clock 22597239-6107-DF44-AD3F-5F053E92222E,EmuSnpDxe 225C3A5A-5902-4307-968A-AF8DEFFE61E8,UsbPwrCtrlSmm 226824A3-1989-4D6C-BD17-C863845F7E99,DellSmiCpuDecodeProtocol 226A500A-E14F-414A-A956-40E5762D3D1E,PrmLoaderDxe 226D28E1-7672-48D5-ADDC-E5F91F398A3E,SetupConfigUpdateDxeExpertWorkStationRP 2272865B-EBF6-4047-B008-7889497F53BD,SuperMDriverProtocol 22766CBA-D444-4A04-9E77-50BB240F00A6,VPMSmm 22819110-7F6F-4852-B4BB-13A770149B0C,FpgaFormSet 228AAD82-E150-4288-B176-A1AAD77D783E,FjIbvTraceAbstractionDxeProtocol 228F344D-B3DE-43BB-A4D7-EA200B1B1482,EfiSmMonitorInitProtocolGuid 228F7D4F-231C-6BAA-BDCB-BEA9875B04D3,AmiCpmWrapperSmi 22951F5E-4F7B-405B-8ADA-ECDC431C616F,UefiWindowsInt10Workaround 229832D3-7A30-4B36-B827-F40CB7D45436,EfiPeiStatusCodePpiGuid 229B7EFD-DA02-46B9-93F4-E20C009F94E9,CpuS3DataDxe 229F268F-23B0-4436-83E3-8B7AE08A6BD8,EfiMfgUuidHob 22A5BB4D-F962-4D33-9CD6-FDAD39ACD153,PlatformBoardIdPei 22A8C2C1-9F75-4B9D-B037-22CC43E6929E,SioDummyPei 22AAB6B3-FDAD-4383-A6D4-1CBAD157C895,AcpiI3cSlaveSsdt 22AAFFEA-2358-4C53-9AF0-CC0CCB06E2EF,PanelResolution 22B194B4-CC0E-46C7-9FCE-DA10D6ED1731,PchSmbusArpEnabled 22BDEE84-C807-452E-B56E-F683FD76C989,BuslogicDxe 22BF0B85-4EB3-479B-A9E9-A5F7CFCCA787,LenovoSmartCardDetectDxe 22C71E5F-B32B-44E0-B705-B1ADCFE70C0C,SureStartPoliciesPei 22CEF43A-ED2B-4795-AF0D-918FF85B3573,ServiceBodyDxe 22DA1234-1DB3-4D56-8646-FD785A59337E,AmiDfciPlatform 22DC2B60-FE40-42AC-B01F-3AB1FAD9AAD8,EmuVariableFvbRuntimeDxe 22DF032E-B7B2-43EC-B903-BCE4190AED43,RstPeim32 22EA234F-E72A-11E4-91F9-28D2447C4829,HttpUtilitiesDxe 22EB683B-1AD2-4BE9-AE1C-C4F1F281BDF7,PoweronFromKeyboardPortDxe 22F8B88D-4E9E-4DA3-8CD5-74463593EF13,DellPeiDiagLeds 22FBD744-CA98-4F6D-9882-954201312DA0,H2OVarCheckRuntimeDxe 22FDFF5D-EF58-4E45-B515-A41067D5C80B,AssetQrCode 22FF12F3-4B62-172F-37A6-A6BEDAB1FF63,I2CcontrolPei 230F6679-F703-4DC2-B2B7-41C670BCC0D1,BiosInfoRecovery 231BE53D-B6E3-44D8-A8D5-E0566E55663D,EsrtOverrideDxe 231CDC65-129E-4870-A882-79244127BDE3,SkipStoragePwdPrompt 231D3A65-9442-4507-A4E4-E9D2176578F1,DellSmBiosStrucB1 2325F2FC-5683-4648-97C4-9A520DFBE325,AmiTcgPermFlags 232A29D6-8772-471C-A22C-3C8745EE59A5,GpioV2ProtocolInitSmm 232D6306-B70C-48BB-88BB-9FA6D47C8208,RtcStatus 232FB018-F308-4081-B280-812E6164123B,PasswordMgrDxe 23321FFD-1F8E-4597-84EC-4DAD0E2BA995,SmmLockS3 2333A860-A228-462E-8121-7B49895C11C5,ASRockSIDxe 2336A93D-08D7-41C5-AFC1-CDB60C94CDA4,CaseOpenPei 2338337A-47B0-4C41-9CA7-0160FB94DFF4,PlatformFlashDxe 233C2592-1CEC-494A-A097-15DC96379777,FwVolDxe 233DF097-3218-47B2-9E09-FE58C2B20D22,LenovoPlatformStage2Pei 2342CA44-3B35-4A34-995B-CEDEEB1A9576,Intel945Uga 2345FB4D-0B26-4A14-AA2E-F7B955154495,StibpFeatureDxe 234DFAD6-8626-40FD-A1EF-E4B68CF57A3B,ProtectedDataDisplayPolicy 234E6146-1FC6-4508-8231-1294CC28DA4C,FjGrasscarryLaunch 2354D320-3EB3-4C81-99F4-CC4AE143463E,EfiEdkCompatibilityPkgTokenSpaceGuid 235BE51A-D4D5-49EF-9C46-D313056B7401,UsbPolicySmm 235C9BA7-2DA4-4DF4-92DD-5555FC7DB2AC,OemACRecoveryPei 2361A042-F0DA-4006-B3C1-3A130FAE8DF0,I2cTouchPanel 2362EA9C-84E5-4DFF-83BC-B5ACECB57CBB,AmiCsmThunkDriverGuid 2366C20F-E15A-11E3-8BF1-E4115B28BC50,HttpDxe 2374EDDF-F203-4FC0-A20E-61BAD73089D6,IoTrap 237CC158-6032-4832-B0BA-1F83C0FCA609,CoreHotKeyProtocol 2383608E-C6D0-4E3E-858D-45DFAC3543D5,PciHostBridge 2386622C-FC1A-4B5B-AE3A-C81FB30AF128,FjDxeLeg 2386E231-A9CF-4F52-946A-6F6B6C133B46,DellSmBiosTableLoaderDxe 238D654D-A6AD-41C8-A31B-67A3208625C3,LenovoMx25L3206EflashPartSmm 239421F6-F025-429C-9889-AB854E00EEE6,CheckRaid 239B7F68-26E1-4B48-B966-85338AA7B637,OemSioPei 239E812C-AD4A-4D5A-8BB9-169131C344BF,AmdIdsDebugPrintPei 23A089B3-EED5-4AC5-B2AB-43E3298C2343,VariableSmm 23A3E7BA-75D1-4CB9-9C8F-56FA4E48D99E,EfiTraceHubDebugLibIa32 23A464AD-CB83-48B8-94AB-1A6FEFCFE522,EfiSioPpiGuid 23A7B657-077F-4ABC-AB7E-B70D8A389DBE,DellVariableProtocol 23AF8BFA-1D89-47CB-876C-1BE11FA0F4B0,AtaIdentifyData 23B461D0-3C94-490D-9A4B-4AE1916BD425,DellAtaAtapiIoProtocol 23B4BD04-198C-4A11-B65A-A52B33C98C18,AmiHspFtpmAcpi 23C29286-947D-4270-B061-7FE5D0758B63,Legacy2Region 23CACE14-EBA4-49F6-9681-C697FF0B649E,VirtioSerialDxe 23D1280D-43F0-4713-90B2-0E5E4221AF4C,BatteryState1 23D93EAA-0723-4559-B768-5E22DF762DE4,LenovoTpmEnablerDxe 23EED05D-1B93-4A1A-8E1B-931D69E37952,Omap35xxBoardInterruptDxe 23F0F40F-686D-45E4-B26E-11F9F265CF66,BatteryInfoDxe 23F0F40F-686D-45E4-B28E-11F9F245CF62,MpmBatteryInfoDxe 23F69CD0-FF46-4DB6-B982-63EDF1A901FF,AmiTseOemPortingGuid2 240286E6-55D1-4DD2-8E9A-AD26569C7ABD,BoardInitSmm 240612B5-A063-11D4-9A3A-0090273FC14D,IsaBusDxe 240612B5-A063-11D4-9A3A-0090273FC18E,SmmCoreDispatcher 240612B7-A063-11D4-9A3A-0090273FC14C,SystemUsbSupportPolicySmm 240612B7-A063-11D4-9A3A-0090273FC14D,SystemUsbBusDxe 240612B7-A063-11D4-9A3A-0090273FC14E,SystemUsbSupportPolicyDxe 24092BED-2736-40A7-8D87-515E8594F6B3,FjGabiOsEntryGateDxe 240C89B9-5BB1-494D-A0A6-8F0E1935B45B,AmdFabricStxKrkSmm 240E9BEF-B64B-4760-A05F-50027564EF1D,VariableBackupRestoreSmm 2413D304-AA41-4079-A81E-31B8D7C3FD6B,GpioV2PpiInitPei 24169E35-2454-4940-92BC-82321A2C7562,VlvInitPeim 242B3D0C-5FB8-4A75-9CD3-710DDFE42703,AmdNbioDxe 243373D3-C183-4F6A-9AE4-E38419FCDCCC,WarmResetFlagSmi 2433EC61-17BE-4B98-895C-333950C62318,RtkUndiDxe_2057 243C8C8A-BBD0-4AA9-BE17-CF9B583130EC,SmmOEMInt15 243E170B-83BB-4E43-840A-F9EC857FD783,FjGabiPostFlash 244338F5-ABDA-4DBD-8782-1DE293B5BBB4,PlatformStatusCodeHandlerPei 2443909F-892D-46D7-7977-4902259419AA,HpRtxXhciSmm 24486226-F8C2-41F5-B9DD-783E9E56DEA0,EfiMmioDeviceProtocolGuid 24503DD2-5A92-4DB8-95B6-0F0BF6FEA97C,AmdNbioPcieDxe 245CB4DA-8E15-4A1B-87E3-9878FFA07520,Legacy8259 245DCA21-FB7B-11D3-8F01-00A0C969723B,EfiPxeBaseCodeCallbackProtocolGuid 246F9F0A-11E3-459A-AE06-372BDC4DE806,LenovoSystemStatusCodeGenericRt 2476ACB7-D4C7-48D3-AB73-7513B03BB5DF,AmdOemRasRsSmm 2477BE9E-8E1A-431E-B705-14E663717377,PsmiComboBufferGuid 2480271C-09C6-4F36-AD75-5E1390BD9929,QNCSmmDispatcher 24848D1D-A637-45DD-974F-BEBA0340FF96,RemotePlatformErase 2486829B-D3F3-47EC-827A-FC104907FC5C,SmmGenericSio 2493F533-A25C-4E65-B26C-CF4DD6B7903B,SctMilestoneTaskSmm 249CEF4D-7B90-49F1-B67F-2033F0942623,DellTcg2Dxe 249EDD7D-346D-4C90-B94F-16079EF061D5,AmdCpuPolicy 24A2D66F-EEDD-4086-9042-F26E4797EE69,RootBridgesConnectedEventGroupGuid 24A44CAF-0BF2-4514-90C4-C794B3E778F5,MePolicyInitDxe 24A6AB96-8A00-4CC6-BAE7-63A9D3DD3B42,SuperIoExDxe 24B09ABE-4E47-481C-A9AD-CEF12C392327,Omap35xxTokenSpaceGuid 24B14CB4-A14A-4E9A-AAD2-853335FA3297,AmdCpmModernStandbyFeatureDxe 24B4980D-3F4D-4529-B326-CBE87E35013C,AmdDmarControlPei 24BB68E0-0922-44C4-84EA-95FD75E59DE2,AsusGpnvVersion 24C33F98-505D-4177-90F7-A20CF8FF3020,ReTimerFmpDummy 24C5DC2F-53E2-40CA-9ED6-A5D9A49F463B,EfiHashAlgorithmSha1NoPadGuid 24C6F3E2-6ACD-436B-A604-56A5CF742A55,BaseFspPlatformInfoLibSample 24C856A9-46E7-4635-8017-0FDCCA1FF9C9,AmdFabricMdnSmm 24CCD374-3DF6-4181-86F6-E3C66920A145,UpdateMemoryRecord 24D7AC91-3A1A-44B7-8CD5-0800A66BCFE5,OemBadgingSupport 24DC0658-F2CD-4034-B50D-2634640C35BA,AsusHardwareSignature 24DDC83F-9F06-44AB-B696-60FE7DF2C948,RstVmdPeim 24E24F91-2E6D-4525-BAE9-B977DE2005D6,AepLogDrv 24E70042-D5C5-4260-8C39-0AD3AA32E93D,EfiSmmEndOfDxeProtocolGuid 24E9A512-3A25-4CBA-A0AE-67C053BDF3B6,DxeVideoTextOut 24FA4CC5-343F-4D78-ABD9-1CC337E8ABDB,SecureBioDxe 24FF7176-8B2A-4138-9509-3D5E3059BCF4,ExtendOperatingAmbientTemperatureModeDXE 25053BB9-01AE-4AF7-82A7-CDA6D9545921,TouchPad_Synaptics_2nd 25075106-F537-4BD4-AFA5-CFF0E6F3B2A6,AmdFabricRvDxe 2509B2F1-A022-4CCA-AF70-F9D321FB6649,EdkiiDeviceIdentifierTypePci 2515F54F-3277-47DA-86A5-484510DD08E1,AmdPspDxeV2Mdn 25247A74-9440-47D5-BF0A-ED92A4D6EBA4,DellComputraceBinary 2525B0F0-80C2-4AF7-BC68-3BE4BB42C11E,PermanentlyDisabled 2525C3F2-E255-4375-A7C9-92D1054D62B8,MsiBoardECPei 25264B72-7A80-4856-A7EC-15802270EE1B,CheckBootGuardKeyDxe 252E599F-D604-4BEA-8FEB-347668E93B8F,FjRTS54xx 25330D5D-5474-4EB8-8192-E6DE3D5ED0B6,DellVariable2Smm 253E85E9-993B-439B-B74C-6120F77B4723,PlatformReset 25462CDA-221F-47DF-AC1D-259CFAA4E326,DtPlatformDefaultDtbFile 254901AD-7DB7-45F8-93C8-93D579398D9F,PeiPciSegmentLibPciCfg2 254B4A79-772C-45CC-05C9-17F84C2EA197,HpAmdXhciDxe 254BAFFE-F25E-45F1-A06F-5EF11443ACA4,AmdMcaZen5Dxe 2554EF5E-C9CA-4A48-9D94-249EB1E87C2D,LenovoCryptService 2555A2A2-101B-4775-B11E-47674F446628,FjPostManagerProtocolAbstractionReference 25566B03-B577-4CBF-958C-ED663EA24380,EfiSmmGpiDispatch2ProtocolGuid 255D96A8-1579-4ADF-8575-56D4B0467117,DellTcg2EarlyPlatformPei 256A381E-0165-4909-8663-EE317819292E,AIMT 258A5F45-00D5-485B-84DB-0B6D4AAB5E2F,TbtSsdt 258B415E-3E8E-4B82-8067-9EFC7949EAC8,ResetSystemDxe 258B77C1-5989-45A4-BFFF-7DAF147B2CE0,FjAddingFlexIoToSmBios 259311F9-A268-46C9-8DB4-79ACFB2B7DC1,EarlyDevices 259495EA-2DD9-4EA5-A111-61F58781499D,I2cMasterSmm 25A4FD4A-9703-4BA9-A190-B7C84EFB3E57,FdtVariableGuid 25A8824E-6BBF-4FB2-A200-84B0F7BECE6B,B57785 25AC458A-CF60-476E-861A-211C757657A6,SnpDxePort 25ACF158-DD61-4E64-9A49-55851E9A26C7,CsmBlockIo 25AE661D-3652-4767-A800-2C3D03F4097A,Armani_ProductInfoSmm 25B09472-F258-49EA-A1CE-8A68F3A4A54B,InitOemSetupVariable 25BB7F51-752C-491E-BCB1-55EA608B3197,CertificateStorageSmm 25BDDDA9-CCF5-4D13-9954-EC69D30BABC4,AmdCpmZeroPowerOddPeim 25BFEBA1-A3BA-4BE2-9248-886392F7B008,AmdNbioPciePei 25C0310A-CB9E-47E0-CBC0-F7F45E55AC9F,DellMfgBootListConfigDxe 25C36CAC-80A6-400F-B0B1-8AEF82341801,OemReadyBoot 25CA4430-495D-42EF-8157-4D0AE2124862,HidAbsolutePointer 25D3605E-522F-4570-A197-56BDDACB5FED,BiosUpdatePlatformPolicyPei 25EC8AD0-0006-4F3E-908A-0CB82609938E,NvmExpressSmm 25ECAD7C-2C93-35B8-2E54-C71A4C02D3D1,QualCommSupplicantDxe 25F200AA-D3CB-470A-BF51-E7D162D22E6F,ShellDebug1HiiGuid 25F384DA-CB4F-4A89-9E12-1EB4BE79D6C1,EcMemoryIntrusionTestModeDxe 25F49067-A65B-48F5-BBBE-35418C488836,TcgDxeMainDxe 25F7773E-7485-49C1-942F-7447CCC10736,IioDmiSmmGnrWs 25FC783F-41AD-4BA1-B190-6D4B3FB6CC5B,ThunderboltDxe 2601C96E-243B-4509-AB14-DF2228E5B401,DellSbSmm 2605C8B7-EF64-475D-90F5-E767339F4D3E,OemUsbLightBarDxe 260AA875-0EED-4EE1-8A14-046B4FB17EF5,DetectRecoveryModePei 261230E3-22A4-3E55-40C6-50486D9F8D67,RTL8111dxe 2619EA76-4599-4978-8649-E7371170C256,OpticalDiskIdm 261E97B4-FBB5-4DB1-B25C-13270BA7BB60,EmulatedEepromDxe 262B2E3F-DA2D-4B81-8D1D-F938E851FDED,SmcBoardInfoVariable 263631D7-5836-4B74-BE48-EE22E92CE5D3,WinNtConsoleDxe 2636FCAC-B54E-4AA5-A720-49887CE228D2,ClearCmosPei 26452F27-45DE-4A94-807A-0E6FDC1CB962,EmuPeiGateDxe 266E31CC-13C5-4807-B9DC-39A6BA88FF1A,CpuInitDataHobGuid 26703ED8-9171-40A3-95C2-56436F8A5E56,EfiBpCommonPkgTokenSpaceGuid 2673B0C0-1F9F-45EF-FFFF-FFFF92FA6F0A,XnoteReportStatusCodePei 267FF286-B286-41B5-AE00-951EE5D39D09,BctBaseSmmRMB 268038B9-B691-404C-8E83-58014F3919FC,CheckCpuFanState 26841BDE-920A-4E7A-9FBE-637F477143A6,Ip4ConfigDxe 2686340E-665C-427F-8819-05BA54F030F5,IdeController2 2688B232-9C02-4C12-BE1F-857C0FF2AAE3,TcgDxeplatform 268F33A9-CCCD-48BE-8817-86053AC32ED6,PeiSmmAccessPpiGuid 2696F127-44B2-4E14-8BFF-804AA177FE41,SDJpegDecoder 26A2481E-4424-46A2-9943-CC4039EAD8F8,S3Save 26BACCB1-6F42-11D4-BCE7-0080C73C8881,EfiCpuArchProtocolGuid 26BACCB2-6F42-11D4-BCE7-0080C73C8881,EfiMetronomeArchProtocolGuid 26BACCB3-6F42-11D4-BCE7-0080C73C8881,EfiTimerArchProtocolGuid 26C04CF3-F5FB-4968-8D57-C7FA0A932783,DellSbServicesSmm 26C628F2-CED5-466C-8237-433CA4D24241,MemoryEvContent 26C9D769-9167-4537-8219-D9F5FC2378BE,OemUsbTypeCDxe 26CC0FAD-BEB3-478A-91B2-0C188F726198,EfiPeiVirtualBlockIo2PpiGuid 26CC7C04-4E9D-4FED-AFBA-CBF23334DC0D,AmtWrapperDxe 26DC4851-195F-4AE1-9A19-FBF883BBB35E,AmiAptioSigOwner 26DDBA9F-5B0D-4E80-86B2-80DAE4D01B0E,FdiskOemDxe 26EBEC07-930B-4B92-81B7-2BC104D1CDBC,Nct5124dPeiInit 26EEB3DE-B689-492E-80F0-BE8BD7DA4BA7,EfiSmmConfigurationProtocolGuid 26F8AB01-D3CD-489C-984F-DFDEF768395B,PeiStatusCodeMemoryPpi 26FD847A-DC93-4D93-917C-6041A3856CBC,FchHuangshanDxe 26FDEB7E-B8AF-4CCF-AA97-02633CE48CA7,EfiProcessorSubClassGuid 2700F72F-E0EA-4767-9A1E-D172F0704778,PeiSelStatusCode 270279D6-2554-47BE-97D0-6AE5AD18B973,OemEeprom 2707E46D-DBD7-41C2-9C04-C9FDB8BAD86C,JpegDecoderDxe 2709A182-0DDA-4A91-BA53-11032B713633,AmiPspOfbd 271565A5-6E05-4948-BAE7-39AF389FFB97,DMBMPEI 2717997B-ABAC-4733-ADAF-9C19D8FBB7A1,CbmrDriver 271B424E-A4CC-4E0E-90A2-7EA4841F12F3,ExportHiiDb 271DD6F2-54CB-45E6-8585-8C923C1AC706,PchS3Peim 271F1343-20D6-4E14-9B62-3C0297F56F07,SmmPowerManagement 2721587E-2AE8-43A0-AAEB-19DDA16C7764,FlexIoPortConfigSmm 27270327-D3EC-4237-974D-D71ABB2EBFEA,FjMasterPasswordDxe 27287751-867A-46CD-91AF-416FF6AE3DFE,DellSystemIdConfigDxe 273820DB-55D9-5B44-93FC-6A4EC138EEC6,DellSpecialBootControlDxe 273D3086-65A3-463D-B5D6-AAC7CCC18445,PlatformTcg2Dxe 274365EF-0893-480C-9160-472A26D2DC0F,FjGabiGpioAbstraction 27470DBA-64DD-4C71-9CE5-5E3272207598,SioSmiSmbAlertDispatcher 274F0C8F-9E57-41D8-9966-29CCD48D31C2,SmmAccess 2755590C-6F3C-42FA-9EA4-A3BA543CDA25,EfiDebugSupportProtocolGuid 27584F62-1A26-41BA-85BE-74C0EEFF46AE,LANMacInfoDxe 27587B71-37F9-4A48-B570-58B6D14F6DEC,DellOromKbAccess 276E96AB-6101-4979-9980-E85BFD69102B,Common_AcpiDriverSupport 27723F8B-25A8-4DA1-A3FC-7B30E9871DC7,SmcOobPlatformPolicy 27755D2D-83DF-4916-BDFE-4FF3CD657965,POSTCODE0A_RGBKBCTRL_DXE 2785ED8A-795F-43A1-AE2D-6BFFECCBA646,AcpiUpdateCpuInfo 2786B637-5E93-4E57-B1D4-B69D8D496580,FjSysmanTeutatesSmmFjFextBin 278D0017-1F07-4F5E-A3EC-21D04DCC3A6F,IncompatiblePciDevice 279851D7-65A8-4009-A5B8-1F56BAB7E99D,AmdMemAm5Dxe 2799A453-FC10-4334-9E66-D3D6EF09D0EE,AmiTseOemPortingVar5Guid 279D52CB-5BD9-4BF7-99ED-5D365F73BEBB,AmdMiniRasRplServiceDxe 279DB133-B4C6-4A34-9BE3-C98326DC27DC,LEMHddSecurityEndProtocolHook 27A5159D-5E61-4809-919A-422E887101EF,PcatSingleSegmentPciCfgPei 27A71B1E-73EE-43D6-ACE3-521A2DC5D092,RepublishSecPpiPpi 27A95D13-15FB-4A2E-91E2-C784BF0D20D3,PersistenceConfigDxe 27A9836B-CD74-4DB2-9A8E-8A4FD52180B7,NvmeDeviceService 27AABECA-4BC5-4E6E-980B-BBD6627DA20E,TypeCWmiMessages 27ABF055-B1B8-4C26-8048-748F37BAA2DF,EfiEventExitBootServicesGuid 27B1960A-EE02-47A8-87B0-1222F119257F,FchTaishanPei 27BA7E67-D54D-4983-BE18-9DF07D2389DC,SystemNvmeServiceOwnerDxe 27BEDA18-AE2B-43C2-AF6B-74952441DE28,MonitorKeyDxe 27C10B10-114A-4D71-8C58-D67ED0F20D89,OemVGA 27C4686B-32B8-4BEC-A499-C5BA75639FC9,RsaSmm 27CFAC87-46CC-11D4-9A38-0090273FC14D,EfiRealTimeClockArchProtocolGuid 27CFAC88-46CC-11D4-9A38-0090273FC14D,EfiResetArchProtocolGuid 27D71940-D1F7-40F2-AA19-18C2B0564462,FjSysmanAmphionS3Resume 27DAEE12-488E-4E98-ADCF-38ADC10A6B68,H19ServiceBodySmm 27DE9EB2-73B4-43B2-ABD0-E87A5965424E,HddStandBySmm 27E569D5-0AFC-4D8F-8C90-783AC4A318AB,SaAcpiTables 27E94A0B-6E3C-4B4B-B876-176AE521CE60,DellHotSosDxe 27EEDF2D-469E-478C-805E-993CCFB5C0C1,CrbPxeLoader 27EEEC71-D849-4B64-A04B-5643CCEAC876,FchKunlunPei 27F05AF5-1644-4EF4-8944-48C4F75675A0,RealTimeClockDxe 27F3838F-BA27-4FFA-B374-35BEA28A431B,DellSmsc5544Dxe 27F4917B-A707-4AAD-9676-26DF168CBF0D,PchSpiSmm 27F51949-1577-4CF6-B2E2-AE9392A4EBB7,BootPriority 27F85559-359F-4B25-9B73-3EE5DE399121,DellSmbusHcSmm 27F9093F-527A-42AB-AE55-5C56DA8D9AB8,BootOrderDefaultSettings 280251C4-1D09-4035-9062-839ACB5F18C1,CpuMpPei 280BCC15-2CD7-467C-9647-1B30307D7ED5,AmiFriVariable 280DA667-74B6-410E-8ACD-D06C3F32EA20,IntelLANPei 2818256A-6BDB-4871-993C-95315854012E,EdidOverrideDxe 28260FD2-975F-48B4-B1A8-8F7919F55746,AmdOemRasBrhDxe 28324EF7-6BB3-4BAB-A2EC-18D5F7940F23,FjMaptDxe 28374747-76FF-41B3-9740-381EFAEF13BC,PspPlatform 283C945F-3FF5-4588-AD80-86E8708B942C,DellSimulatedECPei 283D62BE-957D-4863-8041-7E9C22201709,LfcNvsAcpi 283E7AD9-EFFA-468B-8289-887347D23300,FjCardReaderSmm 283FA2EE-532C-484D-9383-9F93B36F0B7E,EfiUpdateDataFileGuid 28451AA4-B4C4-4AA9-BE3A-1BBCC2E5553A,GptRecovery 2846412B-F50F-4A5B-8C8B-76644324AA66,FchSmbusDxe 2848A12F-3F86-47C7-81D8-D3FD47B205B2,CbsSetupDxeRPL 28638CFA-EA88-456C-92A5-F249CA488535,EfiRedirFruProtocol 2864CA7A-632C-456D-A4FB-B5B718566956,ReportStatusCodeRouterRuntimeDxe 286BF25A-C2C3-408C-B3B4-25E6758B7317,EfiTpmDeviceInstanceTpm20DtpmGuid 286EE96A-5B1F-484A-9689-CF770DC89185,SioShmLock 28758215-0D0D-4136-A8C8-68AB6711DF46,EcFwUpdateDxe 287D8F7E-6176-47DB-90EF-F1D6D2A3DE9E,BoardSmm 28825252-3211-352F-49CE-312534C41419,OdmGetPchCf9TrapHandleProtocol 2883464E-3CA2-4F4D-B903-21A1E3F61471,XhciControllerPei 2885E4AE-09A5-4EC8-A908-60C4E4A92B90,FchBixbyGpioPei 2885E4AE-09A5-4EC8-A908-60C4E4A92BAC,FchPromontoryGpioPei 288AB8A5-F2CF-4FCE-9C80-10A436C77276,ChineseDxe 2890B3EA-053D-1643-AD0C-D64808DA3FF1,HardwareInterruptProtocolGuid 2892389C-FBE9-43D7-B9FC-6C5D90D18456,TisDxe 2893CAF8-B638-41D6-8864-D924D189C0E8,SafeBatteryModeDxe 2894EC46-C67A-4256-87DE-34A741D85982,Mct 2896DAE0-778A-4231-86DF-1F54F752DB7B,FreeSpaceSkipFvCopyLib 2899C94A-1FB6-4B1A-B96B-8364975303E0,Ps2MouseAbsolutePointerDxe 289A828E-65E1-425B-806D-C49090A896D6,DellMultiCoreSupportPei 28A02147-19D6-491C-AFEF-DB351BF46124,DiagnosticsJumper 28A03FF4-12B3-4305-A417-BB1A4F94081E,RamDiskDxe 28A76FE5-43D7-48A3-9714-C1B7BDD6DFB6,RedfishDiscoverDxe 28A88A39-DD84-483F-9BEF-BA1168C2F850,UbaInitPei 28AB63A9-5FB0-4C93-9C44-0DD8A1E9101D,AmdNbioAlibRVDxe 28B225EF-E6B1-4DC0-8D4D-49EFC857CCDF,FpgaSocketBbsGbe 28B5A45C-CC5D-4221-9DFF-86B0F42DDC01,LenovoIvbGopDriver 28BCCC59-7F4D-46E3-BFE3-8465CB5223A8,HpRpsuDetectDxe 28BCCC5A-7F4E-46E4-BFE4-8465CB5234B9,HpRpsuDetectPei 28BDE99C-E8A7-4E3E-9A8A-E66CD64F31C6,BasePciLibCf8 28BE27E5-66CC-4A31-A315-DB14C3744D85,IscsiV6Private 28BF2E78-AD2D-4616-ABAD-7644CD7E47C8,FvBb1Pei 28C17F2E-4B7B-4708-885F-4784092C6254,ExBootItemDispatcher 28C7F2B1-B80B-4EEB-8DC7-0EA34954926E,FjEventLog 28D0232B-D26C-4B5F-94FF-B1340FC160B8,AmdCpuIdentifyPei 28D46803-7646-4DFE-90ED-8575584ED6E6,AmtDxePolicyInit 28D47F83-914B-46E6-B8A0-D37F118CBA90,IioPlatformHooks 28D4DD89-169E-49DD-8486-A200A2FD3C21,AmiPerformanceProfiling 28E21F4C-DC8F-4C17-8B9A-92BCEE6835D5,OemACPIDriverHookDxe 28E50D66-A0EA-4A44-977D-D07319B9304A,HeciControlSmm 28E59971-3F7E-4E34-8DED-0745907B484D,FingerPrintBindingDriver 28EBF627-9BF1-4719-A676-4AF8362FEB23,RTS5242Dxe 28EEC887-BE28-4B44-9FC5-41C70784D3E1,SwSmi534D0040Shp 28F6EFF7-0A9F-4BE3-B12E-B59A04266ABA,MeIgnitionFsp 28F6FD2C-EFF2-42F0-9E9F-CAC87509DC46,OemSmi 28F7B66E-DF6B-4D34-A420-91CA108E9D00,SecureFlashAuthenticationPei 28FB2B1C-90FA-4D2E-BB97-B104A96DE97D,AmdDisableDashDxe 28FD5211-3777-4A13-9A2E-66A7341D15E4,FjClearsureDxe 29010E46-1CF4-465F-BEE5-0FD9E5535AD7,FjLvdsFwDownPei 29018044-0EC2-4650-891F-0813797863B7,MeLock 29019496-1EE5-4ABD-9CC5-74A210CE77C6,Ax88772UsbNetDriver 2906CC1F-09CA-4457-9A4F-C212C545D3D3,AppleEpidGroupPublicKeysRl 290A4467-9F89-4F1F-A73C-E10B9FAFBD1B,FjFlexIoDxe 290B026F-6905-4612-BA0F-F635DDE35285,ErrorTriangle 290EA249-6E88-423C-B0DA-75CDDE7920CC,AmtPetAlertDxe 29142FB2-26D9-4C3A-A4BA-7BBD0364EEAE,BaseSmbusLibNull 2915211A-3CF7-4B4D-B448-02DDBD2BF87C,CustomLogoWmiDriver 291A3B75-C685-475E-876B-2E40A6A7E18A,SetTimerPeriodDxe 291E46D4-CA63-4D33-9857-1397C9AD7C0D,LegacySmmSredir 29206FC2-9EAB-4612-ACA1-1E3D098FB1B3,LegacyVideoRom 2928D39C-917D-4F2F-9510-16AB73F204B2,BiosAcm_Field 292C13D2-C005-432D-BC17-E90701C8E84A,FjGenericItemStorageDxe 2938C3C9-4F9B-43B2-A429-7E6315AD6A9D,SmcRomHoleProtocol 293A571A-3308-443F-9F36-39DCFDBF3B83,DellEcIoDxe 293AAEB2-73B4-43B2-ABD0-E87A5965424E,AltModeSxSmi 2942476E-543E-4504-A0D2-0B2115E4A3C4,SwSmi534D0740 29457247-977E-46AA-92E0-46E10E249225,AsusPeiGopVideo 294A6086-135A-4AD9-A89A-56D5A327F0E2,NbWrapperPei 294B196A-A3CC-4A43-857F-EEC26147857B,Tpm2DeviceLibSeC 294B1CEF-9BEB-42D5-9971-0C8963CDAF02,SmLogo 294B6514-CFCB-4CF4-8851-3F35330EAE60,RmtcPEI 294E3134-59C5-4C21-B59E-4A8F30515091,AmdPspPeiV2Shp 295B1031-F0B5-44F4-A75E-1CD2145C4D18,BreakpointCallbackDxe 296088B0-5AD7-46B7-A42B-004C2A0F00BB,AmdMemSmbiosV2SspPei 296E5F5A-3F3E-4B54-8395-98EBCC9407A6,AmiUsbCcid 296EB418-C4C8-4E05-AB59-39E8AF56F00A,EdkiiSmmExitBootServicesProtocolGuid 2977064F-AB96-4FA9-8545-F9C40251E07F,EfiPlatformPolicyProtocolGuid 297F2A58-1D5C-4F50-B49B-E0E23FC8973B,DellPlatformELabelsDxe 2982A69D-A952-4A2A-A19B-0BE61B296199,PldmSmbios 2986883F-88E0-48D0-4B82-20C26948DDAC,TxtInfoHob 299141BB-211A-48A5-92C0-6F9A0A3A006E,PowerManagementAcpiTables2 29926D4A-E531-490C-A529-C05E8A1D60D3,FwhFlashLibNull 299D6F8B-2EC9-4E40-9EC6-DDAA7EBF5FD9,SiInit 299DADAF-11A6-471B-9E65-CFE408F53DCE,FjSpeakerDxe 29A1A717-36E9-49E0-B381-EA3B5FF70942,LenovoSystemStatusCodePort80Rt 29A70110-7762-4211-AE88-FAB19B7665BE,MebxMenu 29B3C4C6-E5AA-49E4-8CE0-2772F782DDC2,WinNtGopDxe 29BAF53F-AA3E-4594-FFFF-FFFF85A7379C,XnotePlatformInfoDxe 29BE380A-FBC0-462B-A6C2-5C5A076CAFDE,ProjectPEI 29CBB005-C972-49F3-960F-292E2202CECD,FspNotifyPhasePeim 29CF55F8-B675-4F5D-8F2F-B87A3ECFD063,CsmVideo 29D02CE2-4A2C-45E1-9DC1-E7049B7DB321,SaDataHobGuid 29D0D0A1-446B-4AF4-AE36-526069E2D543,BBVersionHob 29D32BB5-1D1B-4DE0-8AA9-02D790CA643B,PmemResetNotify 29D40F30-E8BF-4803-88A6-4247A29A5318,AmdVersionDxe 29D8DD19-C836-45D9-8F05-322C27129C2A,SecureVariable 29E0564F-B702-4352-A3A1-15FABD4A4E4A,IioCfgUpdateDxeLightningRidgeEXECB3 29E3DB8C-3B30-49D7-9262-53FB917B9A6B,BochsVga 29EA0DA2-84A0-4FC1-80E4-0531C7466EF6,DellSupportAssistUi 29F639F3-4BDA-49BA-89BF-BEC53CE48C2F,Tca9548aDxe 29FCFBE7-4B1E-3CB2-6D57-A994E8D044B0,AmdPlatformRasSspPei 2A0168CC-4320-452F-BACA-8BAEC7DAFBCA,AmdI2CMasterPei 2A1961E8-099E-4701-AEE0-F58C1ECF5B11,FjMiscControlSmm 2A197802-E469-4FA7-A37B-2D681BCF416F,TrackPointElan 2A1A6774-328D-4C58-9F30-019EFF54F9B2,MSIInBIOSFlash 2A1E1C92-AABA-4D62-AC40-F3A4C3387356,PeiSmbusLibSmbus2Ppi 2A205AA9-F7EA-47BE-B3BD-7631E99B4351,G3WakeupPei 2A2997C0-FC32-4098-A88D-0E5D7165C93F,ThermalSetting 2A304EE1-F3C3-4F35-95CD-93DD0DA00F2E,SystemSmbiosBcpDxe 2A32CCEA-5D78-46D7-BAED-8E53A1B31357,AcpiPlatformDxe 2A3398CC-652C-4919-9681-F2535A855F59,FjRandomNumberDxe 2A3CFEBD-27E8-4D0A-8B79-D688C2A3E1C0,EfiSmmLockBoxCommunicationGuid 2A3DC717-6C36-4F55-9D2E-CA5A73D62F17,DellTokenHandlerProtocol 2A4224A1-2609-40A7-88E2-A68DC0F1D180,SpiFlashProDxe 2A43BA5F-AC29-4FDC-8A3B-0328D0256F8C,SocketDxe 2A46715F-3581-4A55-8E73-2B769AAA30C5,RamDiskFormSetGuid 2A46A149-5F3A-41BE-87E7-982A68369D4A,AmdMemFp11StxhPei 2A4D1ADF-21DC-4B81-A42F-8B8EE2380060,EfiSmartCardReaderProtocolGuid 2A4DC6B7-41F5-45DD-B46F-2DD334C1CF65,LenovoConfigVariable 2A4EDBDD-CE8A-46C3-98AC-D1AD3DEE9D85,RepairResult 2A500CFB-920E-49F4-9988-5CE4C0EFD3AB,SmbiosDmiEditAfriSmi 2A534210-9280-41D8-AE79-CADA01A2B127,EfiDriverHealthProtocolGuid 2A537C0E-5D9C-45D3-A6CE-3AD02D3E3B53,ReserveMem 2A571201-4966-47F6-8B86-F31E41F32F10,EfiEventLegacyBootGuid 2A57AE75-8B7A-4C64-8656-DB51DDC36F7B,EfiHiiExtProtocol 2A591128-6CC7-42B1-8AF0-58933B682DBB,EfiExtendedSalMcaServicesProtocolGuid 2A5923F0-06FB-4A23-9D06-F976C7B3C312,PlatformStatusCodeHandlerDxe2 2A6B4530-9099-4937-8FE7-F168EFE09C89,DellBoardConnectorMapPolicy 2A6E902B-F1F3-4275-BC7B-40FD4B5481E7,FlashUpdBootModePpiGuid 2A72D11E-7376-40F6-9C68-23FA2FE363F1,EfiEbcSimpleDebuggerProtocolGuid 2A7946E3-1AB2-49A9-ACCB-C6275139C1A5,TrEEDxe 2A7B832B-3EE0-44C2-8F3A-9FD43183B853,DellFmpPfat 2A82FCE6-8BB6-413E-B9EB-45DFC0522DF3,EfiSmmThunkProtocol 2A8EB7B1-4913-4B5C-A0C7-E70791A715BC,SystemMemoryManagerRt 2A9A39D5-95D8-4E2E-9793-BFAAF0B6820C,EarlySetPlatformHardwareSwitchPei 2A9D5E7F-A43A-4FC7-A25E-6E28D412FA6F,efi_pop_RT 2AA040F7-A1A3-4EEA-89CA-707E1A7E86B8,Int15Smm 2AA290DB-6B3D-40D0-9FED-89E004BB0CF2,LenovoSmmMeConfig 2AA8F59B-102D-4096-8FCD-B64422C637B5,UefiDiagnosticsApp 2AAEBE5F-BD22-4E05-B714-1B2B2338CD6A,RecoveryControl 2AAEC318-E84B-4E0B-BF41-AC65F17E9E2F,AmiTseOemPortingVar14 2AB4A35F-C2AF-ABCD-A22B-4AD3C58B7960,LogDataDxe 2AB86EF5-ECB5-4134-B556-3854CA1FE1B4,EfiPeiReadOnlyVariable2PpiGuid 2ACB1E45-DFA4-4FF3-8F81-91F7D787D22D,SystemUsbMemoryManagerSmm 2ACB6627-DF02-4E23-B4F9-6A93FA6E9DA6,EfiSataControllerProtocol 2AD073BA-EA27-45B7-9CFA-F947018FB8EB,QcaWifiDxeDriver 2AD0FC59-2314-4BF3-8633-13FA22A624A0,PlatformPei 2AD511C7-1B60-4002-841D-2998DDC138EE,CryptoSMM 2AD81E19-2E9B-44AA-B4AC-9E2165322E1C,EfiUsbLegacyStack 2AD8E2D2-2E91-4CD1-95F5-E78FE5EBE316,EfiUsbProtocolGuid 2ADA836D-0A3D-43D6-A25A-3845CAD2D400,EfiCpuTokenSpace 2ADB6E4C-C983-4140-A160-FBC7D6B450D9,AmdSocAm4SmDxe 2ADB8F5B-C7D4-4E7E-BE2A-23634DF668A1,MouseDriver 2ADE58B0-D2BD-4AE7-B918-E9AAA1A45985,DellThrottlingControlProtocol 2AE9D80F-3FB2-4095-B7B1-E93157B946B6,EfiHashAlgorithmSha1Guid 2AEDA0EB-1392-4232-A4F9-C57A3C2FA2D9,BindingsSmm 2AF54A50-EE6D-4F12-BCFF-F0234FF57CA0,RTSCallbackHandleSmm 2B00C709-782F-4879-A59A-8E2FCE2271F8,AmdCdmaDsmDxe 2B0585EB-D8B8-49A9-8B8C-E21B01AEF2B7,AppleLegacyLoad 2B1D0832-2184-4C8F-A90D-8E4AF9DE5BCD,BootModePeim 2B268417-CFD4-4C29-85FC-4959300E4969,BcmCvUsbSmall 2B2D301B-EA3D-4237-8B52-9335A7A030BA,IioCfgUpdateDxeCLX64L 2B2F68CC-0CD2-44CF-8E8B-BBA20B1B5B75,EfiUsbBusProtocol 2B2F68D6-0CD2-44CF-8E8B-BBA20B1B5B75,EfiUsbIoProtocolGuid 2B2F68DA-0CD2-44CF-8E8B-BBA20B1B5B75,EfiUsbAtapiProtocol 2B341C7B-0B32-4A65-9D46-E1B3ABD4C25C,Smbios131 2B346098-AA0B-4AE7-BDBE-88EB3CD6220F,BiosDiags20 2B3685C5-CF90-4A67-8A48-9134BA32D677,PlatformStage1Pei 2B3FE36D-BE59-4110-8F42-7BAD910C9663,SsidDxe 2B4034AE-8566-412F-9CA5-67FD698FC261,TcoSmi 2B440005-2829-412F-B085-DD012BBE8A9F,AdvBootConfigDxe 2B475251-13C6-4547-B2F2-40762FEF9B89,SystemBootMenuDxeGui 2B4A109C-9ED7-47FE-80AA-2087E4E0301E,EcRotLockEcDxe 2B657C46-9AD6-45A5-AB5C-71CE3364AA3D,HQEepromSmm 2B72FC60-6D4F-42D5-8FF0-ABEFD5CDF859,HDCPSwSmi 2B73B074-2E67-498B-82AC-CE38FB770FFC,DxeSalLibEsal 2B798455-13A0-4910-B49D-2EB1FB5F77C8,ApobStxKrkDxe 2B7A240D-D5AD-4FD6-BE1C-DFA4415F5526,DtPlatformFormSet 2B7C4182-81B0-4AAA-9E70-B88AEC29B853,PeimBoardInit 2B872B22-6C11-4DFD-994A-96BC13920A43,fTPMTcg2Smm 2B8A4061-9131-4D2A-A20B-D845D0EB1D83,Smbrun 2B8EFD98-FF63-42B8-BCF3-F53615D15536,AbtSetup 2B94ADDD-AE11-4111-9FF0-60BCB65B223D,AcpiCommon 2B9B22DE-2AD4-4ABC-957D-5F18C504A05C,EfiSocketMpLinkVariable 2B9D21A0-E048-4333-9F02-D32FD5576752,ProductIdentify 2B9E5A05-686F-4E72-AF0A-2D7BAA61E918,AmdNbioPcieRVPei 2B9F22AC-2BE0-4886-9D12-66B1359FD0AE,DellAmdThunderboltSmm 2B9FFB52-1B13-416F-A87B-BC930DEF92A8,TcgEventEntryHobGuid 2BA071C0-B884-4D08-BCFF-518E16364C8B,PciHostBridge 2BA0D612-C3AD-4249-915D-AA0E8709485F,SdioDriver 2BA36F7A-F5E7-4D35-9149-60894CB37431,Nfa765Launcher 2BB5AFA9-FF33-417B-8497-CB773C2B93BF,CpuPei 2BBED685-6633-455F-A840-43A22B791FFF,AcpiFPDTSupport 2BC18FFC-7CF6-47C1-AF19-A4076DC00470,CbsBasePeiZP 2BC1C74A-122F-40B2-B223-082B7465225D,FspWrapperTokenSpaceGuid 2BD51C9B-EB2E-4CFB-95B7-0C5765FDCBC3,AtaDeviceService 2BD56418-461E-545A-8E24-A0BC15D40525,AsfUi 2BD66684-A214-493C-BAF9-70D9706E278A,DualModeDxe 2BD77D17-3771-4974-8644-F99CF5B266A7,IntelGigabitLanPolicyProtocol 2BD77D17-3771-4974-8644-F99CF5B266A8,Intel_10gLanPolicyProtocol 2BDED685-F733-455F-A840-43A22B791FB3,AcpiS3SaveDxe 2BE1E4A6-6505-43B3-9FFC-A3C8330E0432,TcgPei 2BE1E789-3548-43B3-9EEA-B4C8875E0321,A01ServiceBodyPei 2BF5D013-4E75-45FC-ACB4-9247145C1743,GigUndiDxe 2BFE7B9B-767A-44BE-80F9-6E0212899FE0,Pca9555aPei 2C009288-9C14-4AD9-8877-F0C2CBAA9893,HpKeyboardLayout 2C03C536-4594-4515-9E7A-D3D204FE1363,EfiFileExplorerProtocolGuid 2C056F2D-993B-4A54-8ADD-84ACE5D9CCE7,HpAcpiCore 2C0974A9-E7A3-4C45-B8B7-3A046E350A50,EnhancedMcaErrorLog 2C181BE1-8BAC-4433-873C-E5074CB5A723,UbaConfigDatabasePei 2C194230-54B6-4C95-B809-877E83309358,ASUSGamingBoard 2C20B724-C903-435D-A5E5-2899E291D94E,AmdCpmPmfBoardDxe 2C2275C9-3A7B-426F-BE54-2D22BD9D1092,EdkiiCryptoProtocol 2C2694BC-FDD8-452C-8899-2A1A6B401D56,SndwInstallDevTopology 2C29929E-27CF-4DD5-BB97-E5525791F5BA,DRYDXE 2C3FFC0D-0AB4-4D75-B8EE-0086D76B8A0C,CxlPostMemInit 2C6B9CB7-A13B-4EEE-80C0-1A240C8A69EE,IccOverClocking 2C6CACC6-6C3C-4AA7-B2DE-384DAE2B0352,RegAccessPeim 2C6FF095-525C-4128-BD00-B8DA5E52A76E,AmdCpmSocAm4SmbRDxe 2C7087F9-B414-4969-B616-6B13BFEC0E38,FjSystemResetSmm 2C7314B0-A18E-4DAF-8B23-1F21D41572A8,HddSpinDownSmm 2C75A2A2-101B-4775-B11E-47674EEF6628,FjPowerButtonAbstractionReference 2C764A18-AA55-4A37-8771-FF6279A08DF7,ReflashECAfterBiosFlash 2C824F87-0F2C-45D7-81A6-4F39E042BDDF,EfiPlatformTypeHedtCrbProtocol 2C82AB3C-A734-4C7E-A790-F379BBF88F9B,PlatformMilestoneHookSmm 2C8759D5-5C2D-66EF-925F-B66C101957E2,EfiIp6ProtocolGuid 2C878DFE-F92E-4D00-BCED-146AFE099841,MemCacheInit 2CA73883-7B65-4120-87D1-59F689C3CA3D,AsusEcSmmCallback 2CA88B53-D296-4080-A4A5-CAD9BAE24B09,LoadFixedAddressConfigurationTableGuid 2CB14F4D-5D75-4FED-AEA0-4BC36E081AD5,DeepS3ConfigSmm 2CB4F37A-0026-43AF-A948-D71976A96860,CpuIoDxe 2CB67ED1-5498-45AA-9971-214964509195,SecurityEventPei 2CBC152B-B48A-4060-B009-DCB9379E5015,RcPolicyOverridePei 2CBF0E0E-B445-48BE-ABDD-B09A71303FC5,FjRtcWakeupSmm 2CC14F4D-6D85-4EDD-FEA3-4BC66D083AD7,HpModernStandbySetupConfigSmm 2CC4C70B-0312-4CD7-BFC2-A7A89C88C08A,DriveLockDxe 2CC919D9-5995-4F3F-9169-62301A6C72AC,ECUpdateFramework 2CCAF69C-6261-47BD-AC46-E6F471D654D9,StorageInfoProtocolDxe 2CDF679F-7AA0-4D0F-AFE1-1ADAE27061C9,FjMfgFirstPowerOnDxe 2CE0E430-A83D-4045-9040-D6BF6EC86300,CustomLogoDxe 2CE5604F-A982-4D2E-8FD0-D1600C2E1515,PciDynamicSetup 2CE66CC0-3F7F-4859-AB07-E7542944DD19,PowerLoss 2CE70F66-AC57-4346-A91F-89281A07FAD6,ErrorDisplayFramework 2CEAEEAC-E911-49B4-A825-83E7D94B663A,AcpiIordt 2CFA6CCE-1A57-46FF-BE62-D6B1EA11254E,SmmCryptoAlgorithm 2D07DCE9-CF98-408F-A13C-20E41746AE95,TPMHwPresent 2D11AA6E-EAB1-44E1-A1E6-E511FCB01498,QCASUPP 2D1E361C-7B3F-4D15-8B1F-66E551FABDC7,SaLateInitSmm 2D1FED91-677D-4918-B58B-AB4BCE20E672,AbtChk 2D211BAB-0845-4D24-8BE6-A6EC7AB76572,AmdCpmOemSmm 2D2358B4-E96C-484D-B2DD-7C2EDFC7D56F,ConsolePrefFormSet 2D27C618-7DCD-41F5-BB10-21166BE7E143,BiosAc 2D2E62AA-9ECF-43B7-8219-94E7FC713DFE,SystemUsbMouseDxe 2D2E62CF-9ECF-43B7-8219-94E7FC713DFE,SystemUsbKbDxe 2D3F7085-BA63-4739-A15F-C8802B6B807B,NCT3933Pei 2D408713-4023-4324-B8EA-53C02A83D941,PeCoffExtraActionLibSmm 2D4AAC1B-91A5-4CD5-9B5C-B40F5D2851A1,SpiFlashInfo 2D4F898E-2A20-446F-9D90-CBF6B46D45CB,AmdRaidPassword 2D513AE1-714B-4F93-A57A-0A0CDDF48ECC,BiosUpdateFaultToleranceDxe 2D586AF2-47C4-47BB-A860-89495D5BBFEB,IntelVTdDmarPei 2D58A07F-38A7-490B-86A0-D39F60ED7939,FjGabiEntryDxeBin 2D59F041-53A4-40D0-A6CD-844DC0DFEF17,SmmS3SaveState 2D61B52A-69EF-497D-8317-5574AEC89BE4,FirmwarePassword 2D6447EF-3BC9-41A0-AC19-4D51D01B4CE6,AmiDeviceNameDevicePath 2D6BB83D-84A2-404A-B4CA-3E7AC0EFB3D2,BootOptionPolicyDxe 2D6DCB78-CAE2-4459-927C-64A6B7E64A75,DellEdiagsSmm 2D6F37BF-9AFC-4AA5-A026-32B2FCF30FB9,LenovoPlatformDxe 2D6F6BCC-9681-8E42-8579-B57DCD0060F0,AutoScanPei 2D710FD8-C396-4981-A64F-F96EAA3931E7,TceqAlertPei 2D710FD8-C4A7-4981-A64F-F96EAA3931E7,TceqAlertDxe 2D7522FA-67F0-4768-B6E0-FD76F17F4B04,DellPbaUpekDpba 2D7FCD87-4554-4564-B811-0F9167F782B3,CrbAcpiPlatform 2D8B2364-F465-4A70-B8AB-BBC730DEDDBF,LCDIdm 2D9BD72A-B238-4BFF-9BB9-B51E0D4D553C,SlotDataUpdateDxeLightningRidgeEXECB3 2DA064D8-5A52-4DAC-B60F-54471A7FC372,CspFlashLibNull 2DBC8099-1A2C-0361-BB80-B9CC4F7F50D2,FlashPatchTableDxe 2DC22D1C-2B4D-4D04-9AD2-BC1D8FDE20FF,IsaAcpiDxe 2DCBE49A-1E5B-486E-BC23-48156B8282C9,X11DxeDriver 2DCD8815-74CB-4BED-A485-4B3928BF50EE,RsaBmcCommands 2DCE8BB1-BDD7-450E-B9AD-9CF4EBD4F890,EfiEventNotificationTypeCmcGuid 2DD27694-AD5C-4EC7-9870-BC58F9E17931,FjBiosSetupOptionControlBin 2DDFEDFE-C2D5-43E3-9E10-46DB2C7C1F26,SmbiosElogSetupScreen 2DE2AE4B-7489-4D91-9B63-9B12CC564540,A01ServiceBodyDxe 2DE648CB-3102-43CA-A02E-42E38EA5E789,ProcessorErrorHandler 2DEAE482-5796-40F2-8DF5-D87419D6F362,ASUSHDDPW 2DEBAA89-2D51-485F-A2FA-2A62F9422364,HiiStringLanguageService 2DED8109-2355-41F8-A657-D608D5CC1022,SdxcDxe 2DEE4B44-C08E-4E60-9AEB-A11E2ADAA4B5,FchPeiAux 2DF10014-CF21-4280-8C3F-E539B8EE5150,PpmPolicyInitDxe 2DF1E051-906D-4EFF-869D-24E65378FB9E,ConsoleInDevicesStartedProtocol 2DF5E0F8-469F-4730-983E-A7520FCF7108,CsmLoader 2DF61403-C180-45A5-A22B-1A3DB88FE9BA,DellGenericSioDxe 2DF6BA0B-7092-440D-BD04-FB091EC3F3C1,EdkiiPlatformSpecificResetHandlerProtocol 2DFE2E00-2CE9-4122-9B1F-DC5A6454C8AD,FixedFlashInfo 2E058B2B-EDC1-4431-87D9-C6C4EA102BE3,ScNvsAreaProtocolGuid 2E0F6A1D-B08E-456D-8815-77AEF39D4941,OemSlic 2E1128A1-18EC-419D-A058-1076E243E323,HpSioSecuritySmmProtocol 2E13E5F1-B86D-4CF8-990F-243B6B9B8C61,NvmeRaidDxe 2E1B8E61-9D16-466B-A802-3B1E92EA95EC,CbsSetupDxeSTP 2E1BB677-B167-4E39-9BB6-2F91467AC4CD,PciDxeInit 2E1C3FF9-DC75-41C5-BD48-26087B5DC92A,EdkiiVariableStorageIoCompletionProtocolGuid 2E226D21-7668-4A6C-916A-778AFA55A874,ClientronPeiDriver 2E2D1233-435E-F56F-7CC3-348CE660D1CF,SystemErrorEventsDxe 2E3044AC-879F-490F-9760-BBDFAF695F50,EfiLegacyBiosGuid 2E3AB8B6-AC9D-4D70-A675-54F52FB22D66,AtaPassThru 2E3C89F7-A519-4570-AB2B-91AC503CB312,AmdCpmOemInitPeim 2E3D2E75-9B2E-412D-B4B1-70416B8700FF,RecoveryOnFatFloppyDiskGuid 2E3F2275-89CD-4DE4-BD84-BEBFD94BCDCC,DellSmBiosDaCiSmm 2E551A63-E2F8-4401-B617-ECDE2338463C,PlatformMilestoneHookDxe 2E58E381-3D7C-43D4-9A89-8D331362A2C0,BiosPostLogoDiyDxe 2E5CFC2C-9CC0-4D78-BEAF-D84CBF20D1C8,efi_pop_LF 2E67047C-7647-40F8-886C-5C333C73272F,InitSerialPortPei 2E694472-97F9-4D3E-940B-360A2731DEBD,RegulatoryInfoSupportDxe 2E6A521C-F697-402D-9774-98B2B7E140F3,PlatformType 2E6FECFB-B0E1-4580-8966-29178C72022E,SmmS3BootScriptLibS3SmmSaveStateProtocol 2E71987C-4227-1E51-40E3-8A824DE9511B,PlatformSioHwSmi 2E7472A2-D7BF-4F5E-8FE4-BF19247856D0,SecCore 2E7D322C-0E5C-11DF-A0DE-1BF2A44EDC7E,VmwExtCfgDevDxe 2E7DB7A7-608E-4041-B45F-00359E0766C6,FvbServicesSmm 2E85FC4F-7050-4F09-9C5D-9A5DD01D3CB5,LegacyToEfiSmm 2E89AF61-6E76-42E6-8F3E-BCEE83C9526E,H19ServiceBodySmm 2E8A3B3E-F26C-11EA-BDE5-6726AD8F88BD,BootProgressPeim 2E8CD01A-BDB7-40B4-8376-E7C26EAC21FF,PciPlatform 2E8FF74E-8BA4-4CD6-814F-F96962DDFE27,DellDiagUtilityProtocol 2E97EA24-5866-4240-A891-D20AFC6074FF,AmdFabricZpSmm 2E9C3108-7C31-4728-8D61-F9EC77692383,AmdNbioGfxRPLPei 2EA77912-80A8-4947-BE69-CDD00AFBE556,EdkiiNonDiscoverableUfsDeviceGuid 2EA84160-ABA0-11DF-9896-0002A5D5C51B,PL301Axi 2EA9743A-23D9-425E-872C-F615AA195788,AppleRemovableMediaProtocol 2EAA04AA-5EED-4C27-B9EE-26916EC25A8F,RtkUndiDxeX64_011 2EACAEFF-6452-4FEA-9B32-9B12CC56514F,A01SensitiveVariables 2EB172A7-68E5-4A80-9FF9-19DF37A693CA,DellBfaSmmProtocol 2EBE0275-6458-4AF9-91ED-D3F4EDB100AA,SignOn 2EBF1D8D-D363-448F-8D39-902F3FB81F75,SuperRTC 2EC3760F-B7FC-4FC7-B8B4-CF371C9628FF,ThunderboltXDomainDevice 2EC499F9-0337-4DA1-91CA-6BC4E8C03DA2,Mtftp6Dxe 2EC918ED-4DC2-4D77-BB83-A5912130F5B4,FchKTSataD3ColdSmm 2EC9DA37-EE35-4DE9-86C5-6D9A81DC38A7,AmdSevDxe 2ECED69B-2793-4388-BA3C-823040EBCCD2,EfiOSInfo 2ED4D0C3-809D-40A0-AEF6-52D683C86F23,AsusPTTPei 2ED74D39-F9D5-485D-8357-0E00FE871C12,TouchPad_Synaptics 2ED8BC59-0671-49ED-A86F-1B6760B380A8,SmuV13Pei 2EDBC810-AA96-4C83-B743-5ED9CFF79833,CnvDxe 2EE72E7C-FB9E-4318-B888-33A315C7A91D,PpmPolicy 2EE81ACB-64B2-41AE-8635-7030D16C4AA8,PchBiosWriteProtect 2EF1BA1A-C836-4A50-BF89-525FF29FF787,Mxm30Pei 2EF72ABE-8D76-49CC-86EB-47C7D1891C7F,SelfHealingDetectCorruptionPei 2EF779D2-D09A-420C-8BDA-52B6C430B559,Armani_EcCommunicationDxe 2EF9F762-4328-8406-2A59-62B9729A607B,DashUi 2EFEF5DE-BF55-4BCF-F01E-8F4EF0B96A9D,DatabaseManagerSmm 2EFF67E3-5987-46E8-8111-80FFA67AEB93,DellUsbMouse 2F0868D0-1A47-43F7-BD6B-D0C1F2514298,SmbusDebugDxe 2F08C089-2073-4BD9-9E7E-308A18327B53,IconWirelessSmall 2F0CA072-99C6-43AB-810A-528C43C68EEF,AmdSmmControl 2F1E20D4-17B6-434A-974B-CFAE19062CC2,DellMemorySlotConfigDxe 2F2295B6-1BB6-4CB7-BB9E-15C2C3424277,PcieSataController 2F240E12-E14D-475C-83B0-EFFF22D77BE7,EfiKmsFormatSha512512Guid 2F30DA26-F51B-4B6F-85C4-31873C281BCA,LinuxInitrdDynamicShellCommand 2F3962B2-57C5-44EC-9EFC-A69FD302032B,TopOfTemporaryRamPpiGuid 2F3B1D78-060E-4D5B-AC7E-1E1DB2128559,OemDevInit 2F46F5EF-F9B9-4E45-9ACC-B14C2AE072BA,SystemShutdownEvent 2F4DDD35-F8C0-46D2-B0E3-A701360D7499,PcieLaneDXE 2F56AEDE-B753-4A08-8A8B-5765931B9724,HpIntelChipsetAcpiArea 2F5AB7EA-DA90-4E84-83EE-5F7397254531,BindingsPei 2F62A818-4A72-CD40-90B9-FF00DAABEE7B,EmuThunk 2F707EBB-4A1A-11D4-9A38-0090273FC14D,EfiPciRootBridgeIoProtocolGuid 2F70E1E7-4F99-4401-851B-2042AE38FB74,AsusSetupHookDxe 2F72309E-D5B0-4A9D-84A9-1AB38C698F78,EcPs2Kbd 2F7673E9-7C0B-435A-9B22-A801BF25FCE5,SioThermalErrorDxe 2F7E0C26-A57F-5F4F-AFCC-CD3D5EE07CED,PlanarSelfRepairApplication 2F841C60-1B1F-4007-BE6D-753CCBE05740,ODMSMBIOSTypeCASmm 2F87BA6A-5C04-4385-A780-F3BF78A97BEC,EfiBlockIoCryptoAlgoAesXtsGuid 2F8CDF1D-80E6-4FF0-95DB-2C3E071A1774,000_X64 2F9AC9E5-E3E9-4096-9EE9-28AA6F763E59,DellHttpsBootManagerSmm 2F9C1C3D-28AA-469F-85C0-193DB9D50678,DeferredPsbFuseDxe 2FA2A6DA-11D5-4DC3-999A-749648B03C56,PiSmmIpl 2FA5F75C-BF60-472F-AD9A-FD23AD5B937E,SmmUartModeGpioInit 2FA66F37-8D93-4023-B6A2-BC5049ACCF0B,DellPasswordPolicySmmProtocol 2FB216ED-4A67-4833-9F5C-248124CD9AAC,DxeGpioPolicy 2FB92EFA-2EE0-4BAE-9EB6-7444125E1EF7,DellGset 2FB92EFA-2EE0-4BAE-9EB6-7464125E1EF7,UhciDxe 2FC3B2D3-6EBA-42B0-A4A7-14C7A84B5D22,EslIp6ServiceGuid 2FC3EDE1-4414-4D1F-9029-D470C7DE4827,SioAcpiNvsArea 2FC61DE6-1791-479C-8A32-7ABB69A4D8D0,AmdPspFtpmPei 2FC95DA8-6DED-4E19-BA0F-A253032E144A,DellHotSosSmm 2FCC2A4E-6995-4688-812B-6EC7E7A41B51,RTL8152B_RTL8153_USB 2FD21CF6-E6E8-4FF2-A9CA-3B9F00E92889,rmHwA9x4Guid 2FD67077-63F5-4B43-B180-1974E5C70BEB,MTKSUPP 2FD8B7AD-F8FA-4021-9FC0-0AA572147CDC,CpuPei 2FDACAF6-669D-4F8C-8368-C3B3E6E32535,UsbBbs 2FDC69B5-45EC-4284-AEE2-0F9DE85AE9A5,AmiQrCode 2FE2CBFC-B9AA-4A93-AB5B-40173B581C42,FmpDxe 2FE607A1-B7D3-41D6-BE4A-DA60BD1CAAAC,FchSmmDispatcher 2FE800BE-8F01-4AA6-946B-D71388E1833F,EfiMtftp4ServiceBindingProtocolGuid 2FE93E1D-1D04-438F-A0F9-A84D781A7C57,EF_Allocator 2FEDFBE3-EC63-4B1A-8D28-1294912CFA2B,MobileDiagBinary 2FF29FA7-5E80-4ED9-B380-017D3C554FF4,EfiSmmRscHandlerProtocolGuid 2FF3EBE7-F9BB-4230-89E6-154D2B22656F,DiagnosticTestInterfaceDxe 2FFDAF4A-A9B5-4EF6-AA3B-A89611AAB284,DellSpiPartPromJet 300DE6C5-765C-4F89-BD6D-A623785ABC27,PchLibNull 30101AD1-A99E-4175-907F-7A8A561A8750,FjNvramMerge 301A0BC3-BA16-49F9-858B-DEE05F91E7B8,TpAcpiNvsInitDxe 301AF449-E0D7-43A3-8B1B-BC16725D374B,DxeDebugDispatchProtocolGuid 3020484F-4582-406E-B20F-89EACC93DC6A,DellSmmLegacyRegionProtocol 3022E512-B94A-4F12-806D-7EF1177899D8,PciHotPlug 303225D1-009D-4778-8B48-F78A23555C4D,SecurityIdeLate 3035F2C2-48EB-46BB-A599-B2338DD58867,AMIProjectPEI 304003EA-7A75-4776-83D4-6B784B6E1900,MemoryInfoSetupUtilityDxe 30461A00-DEEC-4EF1-B7B2-6CA9511B5982,AmiAgesaAcpi 30499E37-FC01-4DD6-8E07-2E3853DEBE60,AmdLegacyInterrupt 3054D6BF-E71D-4818-8E1F-17B012B58788,H19RecordLog 30572445-4C9B-4726-B080-D9AEA2B03DF1,PspPei 305DE41E-EA19-4D20-9A93-0E0DD42A3F67,Mec5107Pei 3065B008-5E9B-47A9-9FE0-001CDA3C5F68,CcgxFwUpdate 306C96E6-7613-44E9-A588-95609EBA01A1,BctBaseSmmBRH 3073D8AC-EFAB-4055-9B37-F62CD93A200A,IrqAllocatorDxe 3079818C-46D4-4A73-AEF3-E3E46CF1EEDB,EfiBootScriptExecutorVariableGuid 307D4A1D-DDD8-4E2F-AC68-D8B213C198FE,BiosAuditLogHandlerDxe 307F86DA-031F-4527-8EC4-2AE82DDFC086,OemAcpiDriver 30806658-1E9C-4A13-971E-707A69E958C8,Int15MicrocodeSmm 308DD02C-092B-4123-A2AF-3EF4440A6B4A,AmiResetTypeVariable 3090CDC2-5EFD-4FBE-B22D-584EBD3D08BA,TouchDriver 3095CD79-5B45-49DF-B27F-EF43843B8480,IrqBoardInfoSct 30965142-FC5A-4E6E-94DB-BBA441B36851,AmiPciOpromDataProtocol 309DE7F1-7F5E-4ACE-B49C-531BE5AA95EF,EfiGenericMemTestProtocolGuid 30A48939-C8F9-4018-BED7-9F9228F16781,BatteryHealthControlDxe 30A5E718-39CA-441C-BED3-F4A3A931458D,FchProm21SmmInit 30AC275E-BB30-4B84-A1CD-0AF1322C89C0,PeiSpeakerInterfacePpiGuid 30AD2B83-ADD0-414B-B11C-F93CC1D0B79B,AmiProcessTcgPpiRequestGuid 30ADD18D-E143-4329-A977-B49A659573AD,SpiAccessSmm 30AF1245-A58E-4EF7-8C75-B725939B3B9F,AmdCpmInitSmm 30AF4110-A58E-4EF7-8C75-B725939B3B9F,AmdCpmDisplayFeatureSmm 30B6EB8F-08A3-4E66-8279-D8681D127F59,LenovoTpmFwWufuDxe 30B7AA80-44B5-477E-8AC3-21493F5B9D43,FjClearRtcDayLight 30B851D3-90FA-4180-A702-97F4114F3076,FjGabiSettingsCoreAbstractionDxe 30CB00F8-2E45-4C18-BD3E-EE7AD3C02576,SECWDTPEI 30CC8A21-0476-4C80-B5C5-B26947E1891D,XhciDebugger 30CFE3E7-3DE1-4586-BE20-DEABA1B3B793,EfiPciEnumerationCompleteProtocolGuid 30D6ED39-28BD-4C0C-A799-6305A4FE8A6A,WatchDogTableDxe 30E7F470-4EB3-4856-8C83-31741A20F877,SdevTableDxe 30EB0F26-FC0A-4FD2-B9C9-751EA2BB1980,DataSource 30EB2979-B0F7-4D60-B2DC-1A2C96CEB1F4,PeiPlatformMemoryRangePpi 30F2B506-3F94-4A11-85D2-EBF60B35F594,ArmaniSmbiosUpdate 30F86179-A9EB-4456-9D3A-157DBB62BE3B,Int15CallbackSmm 30FD316A-6728-2E41-A690-0D1333D8CAC1,EmuGraphicsWindowProtocolGuid 310B3904-0728-4977-A90C-06B8ECD85A9F,A01DxeInstallHook 310E9B8C-CF90-421E-8E9B-9EEFB617C8EF,S3StorageDeviceInitList 311032C4-98A6-4E06-8C03-D815FD1FE709,LenovoSnbGopDriver 3115C2AC-27E1-14A9-53CD-AC4734802AD7,AmiPspSetPcdForRecovery 311FBE5F-655A-4D22-828D-373261C4C06E,WakeOnLanPortingDxe 31293F77-96BC-4780-8FCB-1ED1F9E425E3,UEFIH19SmmEnableCrashDump 312C0B23-93F2-466E-961B-6D584D0D26EE,ExpansionSlotConfigSmm 3137130C-D0A7-467E-9E8F-513816F159D8,OpromUpdateDxeNeonCityEPRP 3138C825-83ED-064A-A62A-CD13674E3F89,AppleDhcp4 3138E8DC-B9A9-45BB-A5E8-6EBACD005E4C,TouchPadDriver 313C8DEC-DF8D-4502-92B5-1FF4883A55AE,FlashControllerNvsSmm 31401EE7-1600-437C-A11C-B1035D8E6070,PchAcpiTables 3141FD4D-EA02-4A70-9BCE-97EE837319AC,TrEEConfigDxe 314A7E73-EAF2-40F3-81B5-61FC83C468CF,EcdBoardId 314EE04C-1106-4DC6-ACBC-CF19C0DBC5CC,PlatformInitAdvancedPostMem 31519EC4-65F1-4790-B223-AA9330DD75FD,Secure96Dxe 3152BCA5-EADE-433D-862E-C01CDC291F44,EfiRngProtocolGuid 31609F3D-4C94-4FF0-B7E4-5B6CA2302DB3,GlobalAcpiNvs 316190C1-5E48-4C15-AC72-37532F3A1EC1,SystemUsbDatabaseSmm 316190D1-5E48-4C15-AC72-37532F3A1EC1,LenovoSystemUsbDatabaseSmm 316A13C6-B0CA-4CC9-8599-5415BADF1923,AaeonUartOverridePrs 316AFD2F-8F25-4642-B0CC-411F67FC0C47,AaeonPowerModePei 316B1230-0500-4592-8C09-EABA0FB6B078,SmmPcieSataController 316B1230-0500-4592-8C09-EABA0FB6B07F,SmmHddSecurity 316C608A-4429-49FC-9E2C-0B814D5EE4F3,PlatformPolicyManagerDxe 316C618A-4429-493C-9E2C-0BA14D5EE4F3,SstSpiChipDxe 31740724-5F96-48CA-AA0F-332ACA6B9A75,SpcrAcpiDxe 3175E6B9-4B01-496A-9A2B-64AF02D87E34,CpuExceptionHandlerLibNull 317BC006-9056-42C8-A1C1-92A1AABBC9EE,AmdCcxZenZpSmm 317CCC63-FDE4-48CE-BA03-D08CD45567CC,AtaDeviceDriverPei 31878C87-0B75-11D5-9A4F-0090273FC14D,EfiSimplePointerProtocolGuid 3188D183-D154-4DC3-8EC6-59804A623CCD,PCA9535Pei 319CE8BB-DA2E-4FF2-B69B-0A854146B489,SystemUsbHidParserDxe 319D0E01-0F72-4BFA-91D8-EBA049C5582F,Npce285xFlashSmm 31A0B6EF-A400-4419-8327-0FB134AA59E7,Mxm30Nbci 31A4878F-230D-4FC2-90BB-DA5F41A44B1B,DxeDebugportExtProtocolGuid 31A6406A-6BDF-4E46-B2A2-EBAA89C40920,EfiHiiImageProtocolGuid 31A8CB18-5C76-4668-839D-9FE804B419BB,CrbLastFfsPei 31A913BC-795F-4522-A28F-82A18CFB816A,SndwInitDxe 31AD0D89-75B3-4CF3-A1C2-877394EDC601,AmdNbioIOMMURPLPei 31AD1E44-9D60-4B15-B60E-8E70BE156323,UpekFingerPrintDevice 31C8F5D2-B558-41BE-9971-30ED8CB990C6,FjGabiFlashCommon10GbeRegionCtrlSmm 31CA5D1A-D511-4931-B782-AE6B2B178CD7,EfiIfrFrameworkGuid 31CE593D-108A-485D-ADB2-78F21F2966BE,EfiLegacyInterruptProtocolGuid 31CF7DDF-F02F-4783-BAA6-A087B2F83BE6,AssetIDOnRecoveryModePei 31E147A6-D39A-4147-9DA3-BEFD4D523243,SystemCdExpressPei 31E9FB14-51E2-46E9-9F81-F2CA52FCB2B4,DellDiagsSmmProtocol 31F5B262-7D9E-4FCC-9BB8-0E415D0CD748,BFGPei 31FD7EAF-80A7-435E-8E0A-3F185F8667DD,UsbCoreDxe 3209228F-94E2-4AA4-8E18-0791B7254C2F,DellAbsoluteSmm 320AFE62-E593-49CB-A9F1-D4C2F4AF014C,EfiS3SmmSaveStateProtocolGuid 320BDC39-3FA0-4BA9-BF2D-B33F72BA9CA1,AmiTpmSupportTypeProtocolguid 320E0C11-B5FE-4C20-B8A8-815A20700CEF,AppleIpAgentDxe 3212A3BC-B235-4E46-8929-CCC02F2447C9,DellVariable2RuntimeDxe 321BBE0C-3560-4BDF-8310-235CD7C173C0,RomHoleReplacementPpi 322ADD64-FB21-4564-B17F-1E4291446415,DellRadioUsbLocationsPolicy 3233B6B9-F4AC-4FE1-9021-71D0B4F0AD82,BiosMeFwLayout 3234B6D8-3517-474E-B181-DA891CBA5E13,PasswordUi 3237418A-478C-4700-B59F-768E2CCBC726,CmosDxe 3242A9D8-CE70-4AA0-955D-5E7B140DE4D2,EfiSmmCpuIo2ProtocolGuid 3243E65C-5CE3-47B7-B406-268CF8C08968,HpTimingData 32442D09-1D11-4E27-8AAB-90FE6ACB0489,SystemFormBrowserCoreDxe 3245EA7C-9209-41E7-BE2C-EB662B8C0622,FspFirmwareVersionPeim 32464FF8-EA81-444F-A0E8-B84882B84D1C,FjGabiSettingsApiItemAccessDxe 324E97B6-55FA-4F25-B40E-EE4125FB1215,IT889XDxe 325E1442-9BE1-498B-B007-BF4C38BDB0EC,FpgaInitPpi 3262D1AD-A8A8-4597-825E-DE6F167C3407,PlatformErrorHandler 326AE723-AE32-4589-98B8-CAC23CDCC1B1,PcAtChipsetPkgTokenSpaceGuid 326E7ACE-2133-1BA2-800A-B9C00ACCB17D,CpuSmmSaveRes 326E9CC6-9839-4885-B2ED-275903B668E1,SmmAccess 3273FEEA-FFA2-4EBA-A293-9F7EFDFEEF87,FanIdm 328096F2-00CE-4E32-BD0F-68B44052E463,HpUsbPowerOn 32898322-2DA1-474A-BAAA-F3F7CF569470,HardwareInterrupt2Protocol 328A35E4-F0C5-4456-A4E4-936EFDE8CEF6,AmiI2cMasterBinrary 3291E91D-C5D9-42B7-B3B1-8EC54B03F043,OemPeiSample 3297DA1A-161B-4D35-BCAC-D1597B6BDC01,CbsBasePeiPHX 329F126F-299E-4BC5-8310-179F10EB46C9,DellSmbProtocolAccess 32B8AB1B-07E3-4B42-8EE7-02902A293BCC,AmdFchWheaDxe 32C1C9F8-D53F-41C8-94D0-F6739F231011,BiosExtensionLoader 32C5DC09-E493-4E04-A388-574DEE0CEE7B,FjRandomNumberSmm 32C82722-A756-43D4-9BB5-E07E0B1495F7,DellFmpTpm 32CBA21F-F308-4CBC-9AB5-F5A3699F044A,EfiUserCredentialClassFingerprintGuid 32D2963A-FE5D-4F30-B633-6E5DC55803CC,EfiUsbFunctionIoProtocolGuid 32D4B2DD-1DB3-4AF9-91B0-FBAE6E6EA259,RtkUndiDxe 32D4B2DD-1DB3-4AF9-91B0-FBAE6E6EA25A,RtkUndiDxe 32D9116A-AF15-4976-908C-2C6E05CB789A,AmiMultiPlatformProtocol 32EA828B-523B-44CB-B7A4-7E0A2A49956C,FmacDriver 32EE5672-C9F9-4926-8228-0C4E3B0E69FE,AsusTopSwap 32F93C9E-83A0-4EE4-B66B-C704615D9895,ApobDummyDxe 32FAFCA8-0374-49BD-A090-B4B4603A50D6,PpmInitializePei 32FF59CD-0C33-48D0-A244-4BB811336403,EslUdp6ServiceGuid 32FF9F5C-56B4-4149-81A8-E748645E9551,HpSioSecuritySmm 330183C4-F848-4C88-AE5A-2248F91DF773,DellExtendedBatteryLifeSmm 3305B3F7-0ACF-49E9-9124-341760F467EB,AmdNbioBaseRplDxe 33065910-FE56-49AB-B03D-ED1AFF65B596,DeviceImageInterface 3307DD15-23BA-4546-A004-FCBCC47D4A49,SiliconPolicyPeiPreMem 330AA623-79E7-467C-81AA-DE9EE0F96A52,SmmThunk 330BE755-FBED-4F18-B9A8-495856D3D7A1,EfiCpuHotAddDataProtocol 330D4706-F2A0-4E4F-A369-B66FA8D54385,EfiHiiConfigAccessProtocolGuid 330E57C8-4E71-493F-91B9-0F7F820A1DA3,BatteryFwUpdateDxe 3316A5D0-FE16-40E2-8114-75E5724449F8,IntelLANDxe 33195652-2C4F-4B55-B6CB-63D3C38598D3,PchHsUartDxe 331BE2A7-BD90-4A81-A128-36B0B2057997,EfiPlatformTypeBuchananPassProtocol 331DEB15-454B-48D8-9B74-70D01F3F3556,UefiDriverEntryPoint 331F9815-9D94-4A26-9CD2-DE377B5E9A08,TbtRetimerCapsule2Dxe 332855B8-616E-4A50-AC7E-75A21B7FC4A1,Lnv32MFlashSmm 332A0926-429B-4624-9211-A36B23DF0389,OhciPei 332B3586-F0B4-46EE-A39C-786330E2D328,EfiFpgaHssiConfigDataProtocol 332CCFED-E5E7-49AB-820D-E34A54ED3F57,DellSmmMfgModeProtocol 333BB2A3-4F20-4C8B-AC38-0672D74315F8,AcpiPlatformPei 333BB2A3-4F20-4CCC-AC38-0672D7412345,FastBootPei 333F3A12-11DE-4014-9E53-0E15878C7268,AmdI2cTouchPadDxe 334D5254-6160-4E4A-A78C-E15D3B3B3334,MmcHost 3358F97F-63BE-47A8-89BB-ED63612E6C9F,LinUptpPure 335984BD-E805-409A-B8F8-D27ECE5FF7A6,EfiStatusCodeSpecificDataGuid 335A78E5-7D2D-45B9-B3B1-BE964E731DAB,DellFmpNvme 335B0F6A-FCBD-402A-B4BB-0C3EEDAAF9D3,EhciRouting 336074B2-2A13-46CD-B458-FD4AEBBA28A9,AmiGlkCpuPkgTokenSpaceGuid 336323C0-4BD2-4B0E-8B17-6DA1E143E220,AaeonEcSmm 3363551A-B717-4918-93B9-EBE6AFA57586,FjGabiFlashCommonMeRegionCtrlDxe 3364E8EE-91B8-4428-9FBC-1E9C5DCA398D,DellMemorySlotInfo 336CDDEA-AB28-4C4C-9F64-5FE0391FEBB8,DellAudioConfigPei 3370A4BD-8C23-4565-A2A2-065FEEDE6080,SecSMIFlash 3374B583-7A96-496E-9B8C-2BEFE911ADB7,AaeonUartOverride 337F4407-5AEE-4B83-B2A7-4EADCA3088CD,EfiHiiUserCredentialFormsetGuid 3381FC3F-8791-41E5-8871-A960A4ED24B7,MemoryInit 338695EA-CA84-4FA2-9DA8-5C4BB87905C6,XenioFdtDxe 3389A820-4A27-4FA9-ADBD-39AB18078FA7,AmdSb900PeiSmbus 338E6713-0295-4C05-A0BB-D945A4595F11,CbsBaseDxeSSP 339370BD-CFC6-4454-8EF7-704653120818,ThunderboltDROM 3399DA41-CE44-4FDD-8D32-E578381FEBE0,menu_bottom_right 339EC458-9B6A-4CEC-A47A-712873653299,StdFlashLibNull 33AE969B-E7CA-4BCD-9C4D-4531C18A5DFA,TouchDriver 33BA5130-2255-4802-9019-C875D5D66E77,OpalBlockSidWmi 33C27A86-0A39-48DA-9424-6813E5C3928D,CompalEcAutoFlash 33C27A86-0A39-48DA-9424-6813E5C3939D,A31CMFCDxe 33C27B86-0A39-48DA-9497-68A3E5C3928D,CompalPlatformHookDxe 33C6406D-2F6B-41B5-8705-52BAFB633C09,AlertStandardFormatDxe 33C69CBA-FB6B-40BA-B875-DE56D4607021,FjHddPasswordDxe 33C6B455-87A9-4C8C-A4F6-6DB508A6260E,SkipScanRemovableDev 33CB97AF-6C33-4C42-986B-07581FA366D4,BlockMmioToBlockIoDxe 33CDC56C-B1EF-4B21-87E4-225F42C67F4A,SystemProgressIndicator 33D33BF3-349E-4768-9459-836A9F7558FB,DxeIoLibCpuIo2 33D6ABF9-6CFB-4FFE-9E68-6FC63FE60252,AmdPspIntrusionDetectionDxe 33D87F26-E58C-983F-F14C-A5FE58B10B64,AmdMemSmbiosV2PhxLpd5Pei 33F12300-FBF2-45E6-B6B7-79AF6029C7D4,CmosButtonLoadDefaultsPei 33FB3535-F15E-4C17-B303-5EB94595ECB6,SmmLockBox 340436B0-EBFA-408A-9B8B-565B1F77CF2C,Lpc47N20x 3417B225-916A-49F5-9AF5-C9C7BF937EA2,EfiMemoryMapDataHobBdat 34199FAA-81FC-44A2-9E66-56E2B18A1338,DashIoCfgPolicy 3423D855-3419-4D5D-B9EA-6C339FACBBE6,HPWMI 342414B7-0CDA-4BCD-9681-314FB865657D,MsiMeUpdateControl 343FF38A-32E2-48B3-910F-37E7FE9EF72E,MeCapsuleDxe 3458636B-9A94-44E7-BCA9-F8DFA1F5D894,LenovoSecureWipeLoader 345ECC0E-0CB6-4B75-BB57-1B129C47333E,EfiPlatformToDriverConfigurationClpGuid 346ACA3D-86AF-444E-BCB8-C56E6538BDE3,AmdCpmLpcUartPeim 346B093A-9002-4E99-A2F2-27A16C3DCD89,OemModifyOpRegion 3470CCF0-6054-11DD-AD8B-0800200C9A66,EzFlash 347B85F0-E917-4E74-85BA-F494071EEE52,FchSHSataD3ColdSmm 347CBF13-9C36-4E36-91F9-5BC76E5042D1,MacAddressPassThrough 347CC502-EB6C-44A0-9498-605888C94E0D,HandleStatusInSMM 34891F9C-54DA-44EA-8313-CAB8AAB1BD0C,FchProm21SsdtDxe 348C4D62-BFBD-4882-9ECE-C80BB1C4783B,HiiDatabase 348CA223-637B-4430-BAF3-1CE5D322B3FD,SetupBoot 3496A19A-2E99-41BA-833E-0FDE2EBF2A55,AmiFastBootProtocol 34989D8E-930A-4A95-AB04-2E6CFDFF6631,TcgPei 349BABBE-7159-4E58-9462-0EEFD8EAFB86,SocCrashLogAgent 349CF818-C0BA-4C43-929A-C8A1B1B3D255,InternalTpm2DeviceInterfaceGuid 34A66FCF-8F26-4F93-81E3-918F5F717DE3,FjS5WakePei 34B78650-B0BA-428F-87B1-A1AC762F7FBF,EfiHeciRuntimeProtocolGuid 34BC2673-256B-4BE2-9C4C-025EE484ACAE,DellXhciPei 34C8C28F-B61C-45A2-8F2E-89E46BECC63B,PeiVariable 34CC6167-7AE7-403E-8AB2-23837F398A30,PlatformInfo 34D51EB9-76DB-4CAF-94AE-934856E895F6,LenovoAtpDxe 34D8C727-FA83-4FDE-BF51-02426E4533DB,FjGpnvPei 34DF9766-19C0-44BD-BA4F-D2006A0C3DA5,CbsSetupSmmRPL 34E5798E-F44F-4526-A08C-39BCA6E8D7D5,EarlyProgramGpioPei 34E74B1B-8794-4402-AA43-99B5249B1CFD,DellSbSmm 34EB9E3F-9318-4CE7-99AD-9E7289038C52,WifiBootDevAuthList 34ECEADC-9229-44D1-85B1-B84071A13187,MebxDisplay 34F60DB9-D3E4-428B-B770-3541C8E05112,SgxConfig 34F85EE2-93C2-4481-B710-D3490CCA6333,AsusAcpiRamSmm 34FB0259-BD92-41CF-811B-17C9AD60518A,RemoteWakeUpPei 34FB5A1B-E3CD-4893-9403-0A39BA62FDA0,SvSmmSupport 35034CE2-A6E5-4FB4-BABE-A0156E9B2549,PlatDriOverrideDxe 350F9ED6-206C-4288-BDD1-8BAD8C053112,DellServiceApp 3513C4E2-06D6-4921-9C2B-E938777BA79E,EblCmdLibNull 35169D2C-2426-45CC-8AF4-5B618BC9A00A,EfiHeci2PmProtocolGuid 351D2427-262C-4A0B-874C-23703B4AA88D,AmdNbioBaseZPDxe 35269008-CF21-4A7C-A58C-5CBF2BDE4AA6,EmulatedEepromSmm 352C6AF8-315B-4BD6-B04F-31D4ED1EBE57,CbSupportPeim 35302F55-51C3-40DE-B68F-1EF144CCF1E8,LegacyUsbDxe 3538C287-F7D0-4C2A-BE3C-2D7E27A57A3F,BmcThermalPei 3542FFD8-ABDE-45ED-9847-0719EDA139DD,AsusAmdCpustringDxe 3543EC9D-4B27-4FA9-ADBD-1DE118078FA7,AmdSb900Pei 3543EC9D-4B27-4FA9-ADBD-1DF118078FA7,AmdSb800_PeiPei 3548423A-2B2C-4393-9826-B202959D2362,AbtCryptoDriver 35574ED4-E011-4F40-9FEC-6941C39CB549,OemPDFWUpdateFlagClean 355FBDA9-4572-49BC-95B9-545E71DEF9F9,FpgaSmm 3561188E-D848-4406-8F11-267097132BD5,FjLvdsRTD213xR_Dxe 35628CFC-3CFF-444F-99C1-D5F06A069914,EfiDevicePathPropertyDatabase 356471B1-B483-42AE-B6E7-3B2EBAB14E15,ServerCommonTokenSpace 356C2B12-3124-4451-BF66-B502D88A0074,XhciDxe 3578F929-7184-4275-B941-AAA906C8854F,WlanSuplct 357970A0-FF5D-4C36-AF68-0A29A46FF2D5,OemAfterMemDxe 35868FB1-4E8F-4C4E-93B4-F229CD89A927,PxeDriverRt 358E9F0F-DDC0-42D1-957B-DBF11497ECD8,EcCommunication 35935949-1E07-4FDE-B2C2-8448E074322A,FjPasswordInvalidHandler 3593A0D5-BD52-43A0-808E-CBFF5ECE2477,SecureWipeLoader 359A348A-CAAB-43D0-8E30-FF875929D531,PchIoExpanderPreMem 359E12F6-0941-40BF-8AD9-BB537FB10539,VariableSmiExportHii 35A19BFF-1849-477E-A589-7B44E9D89CA5,TypeACh 35B61F25-ABF2-4A11-A2D4-239CA475349C,AmdCpmVRMOverride 35B72237-3926-CF4A-A7F3-1449F9E0E4BD,EmuSimpleFileSystem 35B898CA-B6A9-49CE-8C72-904735CC49B7,DxeMainDxe 35C0C168-2607-4E51-BB53-448E3ED1A87F,PciBusNoEnumerationDxe 35C25B5C-BCD6-4BC5-940F-A27CD8CCC2C3,FjGabiSetupSettingsHandlerSmm 35C33F32-8C61-452D-8D14-9B5F53A2DFC0,SmmSpiInitilized 35C3FC82-1767-40E9-89A7-9A1CF23A8EF9,AaeonPowerModeSmm 35C5AB3E-B77A-450C-8854-159B2F0D32A5,Ich7MSmmDispatcher 35C84FF2-7BFE-453D-845F-683A492CF7B7,OvmfTpmMmioAccessiblePpi 35CA62F0-994C-40EC-8A94-ACF412811068,FdmInitPei 35CE663F-292D-4763-80F5-05C933F6EA15,RequiredUefiVarPeim 35D13CFD-0BAF-11E8-AE0A-B8E8562CBAFA,AppleHpetTimerDxe 35D180FA-6ADD-482C-B6EC-B59C49B53208,LpcSmsc100x 35DD4183-270E-47AF-93ED-EB0F95DF7E41,BleConPlatformDxe 35DE0B4E-30FB-46C3-BD84-1FDBA158BB56,EdkiiPeiStorageSecurityCommandPpi 35E13ECA-DD98-448E-BF2B-4DD589D91CC8,SioResetSystemDxe 35E417A9-EE0B-48DC-A948-75F8AB93C933,RuntimeAcpiPei 35E7A725-8DD2-4CAC-8011-33CDA8109056,EfiJsonCapsuleDataTable 35EC7319-053B-45B8-8523-8666A662122C,LogoDxe 35ED21F6-C09A-4CB7-BF60-B5B85500B51E,SystemAudioDeviceDxe 35FF21BA-8DB0-48B4-A6A7-42440CE1DD7E,LegacyInt13Hook 36164812-A023-44E5-BD85-05BF3C7700AA,EfiFindFvPpiGuid 36232936-0E76-31C8-A13A-3AF2FC1C3932,AmiDebuServiceProtocolGuid 3629DDB1-228C-452E-B616-09ED316A9700,EfiPaddingNoneGuid 362C7275-4D8F-4607-8D8F-28893A8ACD60,EpuHwModePei 363037B4-1E19-4AF1-AA61-6FC8C01A427E,BoardUpdateAcpiDxe 3631BD9A-25E4-4B67-8D22-EFBB00ACE812,MAPS_SIO_InterfaceSmm 3635498C-4069-4D48-A26D-160941C0026D,DeviceFwUpdate 363E0444-DF24-4598-87D6-0A8BB0B31FCA,CommonElogSmm 36544866-6D93-7A48-88FB-669582D2516B,ApplePlatformInfoDatabaseDxe 3666DBCF-D79D-44C6-82B2-76F6383CA8AC,FjDfci 366DF820-5D6D-4884-9611-E3E595090D9E,TpmFmpUefiDrv 3672557A-06A7-43EF-60C3-1964F3DD1198,SmcOutBand 367712FD-6C5A-4600-BEA2-9A1F81AACC08,MiscGaIoPeim 3677770F-EFB2-43B2-B8AE-B302E9604882,AmiTseEventBeforeBootGuid 3677D529-326F-4603-A926-EAACE01DCBB0,EfiPciExpressBaseAddressGuid 36847262-75FA-4554-ABAB-CC02DF6845D7,RtkWLanDriver 368A32F1-90BB-4C37-BE0A-1FFD754AB42E,TilePei 368B3649-F204-4CD0-89A8-091077C070FA,AcpiPlatform 368CDA0D-CF31-4B9B-8CF6-E7D1BFFF157E,EfiConsoleLock 36914497-3E9C-4745-A7E0-44058E0A9121,IncreaseIdleFanSpeedSmm 3698D2B0-E727-4537-A636-A8770736ABFB,GetHostByDns 369A5862-06DE-49C6-A2A5-17B8A9664984,TouchPad_Synaptics 369BDF2F-D89F-4B18-94A4-6314220A1A61,RhProxySsdt 369DE372-AB36-4CE1-8E45-8806B76DD70F,PspResource 36A7A938-3E62-47D6-B395-3D3FE135F3D1,OneTimeFlagPeiInit 36AD1BAA-241A-4316-811F-220CEDCF15EA,AutoTpm 36AEBB56-1F8B-4BC1-8EFE-4085A5D4C40A,DellLegUsbMemSmm 36B37F21-9D04-44B5-95EC-4DE4CB2FE6FB,menu_locked_selected 36BF2BBE-78ED-49ED-88BB-9AC41630D4A8,DellRcaPkgBIOSIQDxe 36BF4038-C902-428E-96EB-DFE3B468167F,FchSmbusDxe 36C513EE-A338-4976-A0FB-6DDBA3DAFE87,DefaultdbtFile 36D7B17A-9D4C-4B62-8D3B-D4B657F7C1A6,OemInitBrightness 36E835BB-661D-4D37-8DE5-885325DAE910,RomCacheEnablePpi 36F36A89-7AC3-4A09-9921-890E2C9D80A8,FjGabiNvramSmm 37087B94-EF41-4977-93E2-3F6ADFDD06E1,LenovoSplashDxe 370C1DBF-9606-4FCC-B481-1388D6ABA12E,AsusSmmService 3713AB0F-97A0-44AC-8ACC-F2B14527F955,TccPolicyUpdateDxe 371FA4B8-8042-4ED6-ADA7-A987BD2CDF0A,LenovoSystemImageDisplayDxe 372079F5-0070-4907-922A-4C18A1F562A2,CbsSetupDxeRMB 37215D67-D2D0-486B-977D-B5BD4DC38010,Platform_AcerPortingDxe 3727E1A4-A28C-4792-A102-ABB2752CF045,AaeonGpnvDxe 37287C8B-DC93-45D5-9AAF-3CD2E906B12B,DellErrorHandlerSmm 37287C8B-DC93-45D5-9AAF-3CD2E906FFFF,DellDefaultBootListSmm 372CC32F-5C3A-4C56-8E20-9F06AC89E8D6,AcerPortingSmm 372F8C51-C43B-472A-82AF-54B5C3234D7F,CpPcBiosIdFile 37317709-3B19-446A-B184-63027E14AF01,DeviceGuardProtocolOverride 37347E20-5C3D-47B7-B233-1E353A7E0145,AppleHttpClient 373B03B3-D322-423D-94E6-2674A7215BE3,FjGabiFlashCommonDeRegionCtrlDxe 37499A9D-542F-4C89-A026-35DA142094E4,EfiUartDevicePathGuid 3749AC96-24B8-44E2-B895-4FABEC4CF40F,ErrorLogWmi 374CEED1-AD67-40C0-B2C9-3DBCC5A5D30A,PwByPassSmm 374DE830-81C5-4CC8-B2AB-28F0AB73710B,SmmCpuFeaturesLibStm 3750F0F4-480B-4FCD-A153-62A4BEB5D114,CrashLogPei 37542F9C-24E8-4834-8B1D-7C3E0645245D,EcMpmSmm 375EA976-3CCD-4E74-A845-26B9B324B13C,EfiUxixSystemConfig 3770BCE9-F09D-4446-9533-7948414F6CC0,FjGpioGHOPei 377766A3-A6D6-444B-B98F-012694C28653,SerialPortTypePei 377C66A3-8FE7-4EE8-85B8-F1A282569E3B,EfiPlatformIdeInitProtocolGuid 377C79B2-1A40-441E-B6F5-A170E3753725,LenovoTpmMeasureDxe 3780B594-32A4-4593-B8CE-8A3F404F61F4,PlatformToDriver 37813270-948F-4096-A2D8-98D321381F0C,PasswordInterfaceCoreDxe 378D7B65-8DA9-4773-B6E4-A47826A833E1,PcRtc 378D7B65-8DA9-4773-B6E4-A47826A833E2,PcRtcSmm 378DAEDC-F06B-4446-8314-40AB933C87A3,EfiMmCommunication2Protocol 3792095A-E309-4C1E-AA01-85F5655A17F1,EfiSmmAccessProtocolGuid 3792FF94-8614-45ED-902B-1207BF1490A8,PrintThunk 37A01080-2346-4A54-9900-D22B7B687C22,SmmPciRbIo 37A0D020-CCD1-11DD-AD8B-0800200C9A66,SystemIdeAtaAtapiPassThruDxe 37A104B0-2FD1-4288-83BF-CEB17768F40A,LenovoSmmKbdConfig 37A73E40-4E38-4E36-9045-E9FCBCB73BFE,FjRecoveryFlashDisplay 37A79FE7-6693-4EEB-8567-9B2C3E05F2F3,FjIntrusionSmm 37AC8831-8051-4465-754C-E992AE1400A7,HpRtxXhciDxe 37AED342-1F52-44A3-8DBA-EF2BDDF471D5,GabiSettingAbstractionSmm 37AFCF55-2E8C-4722-B950-B48B9165C56B,LenovoSetupMainDxe 37B1100E-4C66-9B44-D736-9BBBF169CE2F,xGbEI2cMasterDxe 37B30BC4-873C-4541-8B65-DEA370B674DD,WMISwSmiShp 37CAA14D-5072-4753-ACB2-CADA3E99A9E7,KeyBoardIdm 37D3E8E0-8858-4B84-A106-244BB8CBFDC3,LenovoLoggingVariable 37D43B2A-43A0-4AEA-AB79-E4FEF53C0F12,MicroCodepointerGuid 37DA43A1-BB9A-4805-9B92-0BDE11191149,ACPIRAM 37DCBC92-179C-4786-A2C7-732E0F3F24DB,SystemSecureFlashFvHobPei 37DDC7E9-7C1D-4E1B-B2CB-4ED5D12527B3,LenovoMePciUpdate 37EB4355-1FC5-42E6-9039-D575D5051C2C,HpFlashMeDxe 37ECDF24-8453-476A-AB58-F4CF8BFE6742,LenovoPhxGopDxe 380D2287-A41F-4702-98DF-EF8857A5CDDE,PepOvrDxe 3812723D-7E48-4E29-BC27-F5A39AC94EF1,ItkDataVarGuid 38133149-14F1-4179-B187-EFE7D3F7479D,FjGabiFlashCommonMeRegionCtrlSmm 381CE2A5-C603-48D2-9515-9B4141F4FDE7,AbtDebugDriver 3821290E-B8DD-4821-8182-0361DE51609D,AmdCpmOemAcpi 3822B866-E122-43BE-877D-4AC7729D6E78,DellNbThermalProtocol 38280505-4324-6130-730D-A0952B0F329E,S5MaxPowerSavingsPortingSmm 382F560D-17A9-4887-BD9C-EB439C1CC482,RaidDriver 38321DBA-4FE0-4E17-8AEC-413055EAEDC1,EfiLegacy8259ProtocolGuid 383269A3-4718-425A-A130-B35E804B865C,PlatformSioGpioInitPei 385A0223-C20F-4920-84DE-A01FC911E922,DBGP 385A982C-2F49-4043-A51E-4901025C8B6B,PrePiExtractGuidedSectionData 3863C4B4-AD58-4383-AB89-0E0B768DDB70,AplLayoutParsing 3868FC3B-7E45-43A7-906C-4BA47DE1754D,EfiSmmFaultTolerantWriteProtocolGuid 386A4B1C-DDE4-4FC5-9B03-9C928FCC6FD2,gear1 386EB7BA-6344-44E8-985C-3978FD47916B,DellTpmdxe 38705437-5697-4715-85C6-29933073C212,SystemBoardPpi 387477C1-69C7-11D2-8E39-00A0C969723B,EfiSimpleTextInProtocolGuid 387477C2-69C7-11D2-8E39-00A0C969723B,EfiSimpleTextOutProtocolGuid 3876F590-7AC6-4E0C-82EF-7B9A8A7B8DC9,GpioPolicyPei 38802700-868A-4B4E-81D4-4F1BDCCFB46F,EfiExtendedSalSst 388278D3-7B85-42F0-ABA9-FB4BFD69F5AB,EfiBluetoothIoServiceBindingProtocolGuid 3885474D-8395-4AAB-8AA4-3743CE287646,FnWinKeySwap 38857C30-D9B8-4CBE-82C0-F9D8020CE5E3,PostCodePei 38871BF0-C64A-4896-B8E4-62D4850C7E68,DellOemSxSmm 38871BF0-C64A-4896-B8E4-62D7750C7D68,DellAcLossSmm 389244DB-3D6E-4E50-835D-5A775A325D89,LenovoMx25L64XflashPartDxe 38965BB5-8097-40F5-B742-8CC14A649B64,AmiPeiSbCustomPpiGuid 389CAF8D-998F-4AD8-BFAC-20BE4AD9804A,DellAuxMac 389F751F-1838-4388-8390-CD8154BD27F8,EfiFirmwareVolumeProtocolGuid 38A0EC22-FBE7-4911-8BC1-176E0D6C1DBD,IsaAcpi 38B8E214-1468-4BB7-95B1-74591E4C6E1D,AttemptUsbFirstHotkeyInfoHob 38B9F5EC-EB18-4CD4-BF13-F072659F4002,ExtendODMDxe 38BA01CA-B1FE-4DEA-8340-0963EB56E98A,AmdNbioIOMMUDxe 38C03ADC-2115-4FED-8002-714906AFBBF6,DMBM 38CDD10B-767D-4F6E-A744-67EE1DFE2FA5,PeiTxtMemoryUnlockedPpi 38D51B46-D275-475C-A951-80A7E1CF38B1,AmdCpmSensorFusionDxe 38D65EC3-8F39-4660-B8A6-F36AA3925475,AmiBdsConnectPolicyProtocolGuid 38DCB38F-D51E-11E3-9129-047D7B99E097,ProjectServiceSmm 38DDFE8F-8991-44AA-9889-83F4918465B0,EfiGpioOperationProtocolGuid 38E7E3DB-1211-4EFB-8709-9E41AB2810D1,FjHiddenAdminPage 38E8BEF9-E526-492B-990A-517428B37D06,FmpDxe 38E93FAE-C5F4-4700-940D-DC10E2FDB6C0,OemPeiRuntime 38ED731E-6A1B-441B-BF97-A7854C4A2B7F,EgsFhfPolicyOverridePei 38EF2B8B-CF3D-47E2-97E3-557115E43985,DellDiagsSbControlDxe 38F80EEE-FFA3-417B-ABF1-F713399007E8,WufuDxe 38FAB09C-2851-444C-9A43-F82725E4671F,AcpiDsdtDynamicCpu 39045756-FCA3-49BD-8DAE-C7BAE8389AFF,Tcg2Dxe 390712E4-0EDC-447D-9492-3FBC996DD044,H19CapsuleSystemFirmware 390C4486-C026-4083-8869-D8F260A49760,OemSyncSetupRN 390D8CDC-F738-46D9-82E4-BB0DCEEE3F9D,UsbBusSmm 390F84B3-221C-4D9E-B506-6DB9423E0A7E,ShellHttpHii 3911946A-7B2F-43AE-86BE-8EC5A8A356CD,AmdPspPeiV2Brh 39136FC7-1A11-49DE-BF35-0E78DDB524FC,EfiLegacySpiControllerProtocolGuid 3915886B-D833-4C23-B3ED-1453CCE7C5F2,IioCfgUpdateDxeLightningRidgeEXECB2 391626DB-3CEC-4339-A3D6-9CDFF4690E12,PrepareWhiteListSmm 391B853F-F488-479B-A3D6-870766C7A38F,CryptoSmm 3920405B-C897-44DA-88F3-4C498A6FF736,EfiSmmIchnDispatchExProtocolGuid 3922DFF9-C892-45EB-A4CC-4F4EA2FCF05B,AicCcgFwUpdate 3924C33A-125E-40A8-8450-38C6671E021D,AmdNbioPei 392744DA-DF68-4C3B-966B-F20F0F47BC23,acer_SetupUtility_interface 392D4DAE-D3BD-4CAF-B1EF-57A78B6E39BC,NVMeInfoDxe 392DE324-E962-4A7A-B62D-10414AF6B9C8,HousingMonitoringDxe 39342586-4E0E-4833-B4BA-1256B0FFB471,FmpDxe 3935B0A1-A182-4887-BC56-675528E78877,SetupUtilityApp 395B0181-C9B9-4E2E-A82E-6B0D027119F9,AmdCcxZen5Smm 395BAA99-E4FC-4821-ACC3-B56E5246E066,RestoreCbsDxe 395C33FE-287F-413E-A055-8088C0E1D43E,SmmRsTableGuid 3961B4D9-1385-43F7-B9C8-6C3A389FBF99,MobileDiag 3962DEB5-FDF6-4829-889C-D544918E84D9,SmmLegacyRegion 39640BA6-7AB1-4D97-9FE2-1AB609C170FF,FjFlexIoPei 396C7B44-8526-42AE-B5D4-3F0AFD89017E,H19MPMSmm 396E583B-D2DD-45F6-86E8-119885777CDE,AtaLegacySmm 398262C1-5165-4725-87FC-BB786A972582,IchPowerButton 39882267-CE96-4F37-A3EB-00B03BA4FC55,EcSecureFlashSmm 39968AEF-54B2-42BF-8E3F-DF0B70A49356,OemGigaLanDriver 3999379D-F9CB-4EF2-BD0E-F241FF804628,RTS52xx 399A229D-F654-4CEF-9ED3-6FC3C992E311,PciDxeInit 399A229D-F654-4CEF-9ED3-6FC3C992E39C,PciDxeInit 399CF3A7-82C7-4D9B-9123-DB11842986D3,DpcDxe 39A349AD-0AFA-54E8-CA0D-7D6EA1E29567,TpmSmm 39A7FADC-9A24-4553-8CBD-9B72B24C22FD,DellPs2Emul 39AB0D02-C244-40DC-B391-5A6EC2CCFC1C,FidoDxe 39AB7B23-814E-4289-9BD9-67EB025C35DF,PowerManagementDxe2 39B3CE2B-82D0-4C7E-B949-D5E65181B98A,IshFwLayout 39B68C46-F7FB-441B-B6EC-16B0F69821F3,EfiCapsuleReportGuid 39B7902B-2377-4F73-9835-B35128ABB8D1,AppleUpdateMTRR 39B89EF4-AE05-4FD4-A59E-C2BADB2BE732,I2cHidParserDxe 39C28A86-9097-48DA-B424-6C13E3D391FA,CompalEcDxe 39C28A86-9197-481A-B424-6C13E3D391FA,CompalEcSmm 39C2AE2A-33AC-32EA-3CA5-9B12EA564540,AcerToolsProcess 39C64B04-91AB-4D4A-B343-077A565B6089,FjInternalUsbConfig 39C7942C-C272-4912-9FE4-57F695CF5442,AmtBoot 39C8FAEE-FBEE-41A3-9282-123F18C48CD9,BroadwaterMemoryInitPei 39D1EDC0-C9ED-4663-90DB-7457FF0548C5,AmiErrorHandlerMain 39DE9293-5BD9-4728-827E-1242F3F9BE3A,HpAmdTbtDxe 39E35910-CA97-4851-811B-303822DA9036,AmdMemFp11StxhDxe 39E4761D-FF39-4603-B7A6-B5A5CEE1C9F2,Lily_RTLWlanDxe 39E8CA1A-7A69-4A73-834A-D06381933286,UsbPei 39E8CDA1-6A35-4CDD-A902-D1A795F70380,AmiResetTypeHob 39F5FC8B-F34D-4256-8689-DA3A44580544,DellNbEcSmm 39F62CCE-6825-4669-BB56-541ABA753A07,EfiGraphicsInfoHobGuid 39FD1631-64CB-410C-874D-240F88AED5F1,IGD 3A05D1CE-E283-4738-88C9-D152F335C0DC,MSIFreeDOS 3A09E64D-08A9-42D5-8234-1127E6AF05EB,SioPowerButtonOverrideSmm 3A18A5AF-F25B-42EE-8606-8D30A974916B,PasswordEncodeSmmProtocol 3A19FBFF-AB92-4004-AD2E-F769F53AAE63,ApobRplPei 3A29DD19-2C84-4A70-9A01-FBDDAFFB6461,DellMemoryS4 3A2A83F2-98AC-4A8B-BBBC-DDDCC655A0D6,FchShastaDxe 3A2AEC67-77B8-40AE-9281-03519C9E7F08,LenovoAoacSmm 3A2B9049-C351-4556-99B0-8B0A9BE9981A,PlatformDiskDxe 3A31D7DA-B715-42B7-85FB-B4185150A015,DellSetSkuIdPei 3A3300AB-C929-487D-AB34-159BC13562C0,PchResetCallbackProtocolGuid 3A35EE58-8286-4F00-9A5B-1B6AB7680815,amiFVhoblistguid 3A3817E2-FB69-4FBC-834D-AEE6A9B14133,AmdCpmFwMessageInfoPei 3A3B4F98-A44F-86A3-3FC1-6F19AC3F6163,HobSmm 3A4044D2-F614-4124-A772-207BCDBE3DB0,DellSbServicesDxe 3A4D7A7C-018A-4B42-81B3-DC10E3B591BD,UsbKeyboardLayoutKeyGuid 3A4E4376-4871-4B0E-A02F-ED36F2AECD00,AmiCsmVideoPolicyProtocolGuid 3A4F8687-0AF0-4F39-87CF-8A2DE97AB3DB,PasswordMgrSmm 3A53114D-5673-4DD9-B5B3-CB72C347669B,BFGSmm 3A61FD45-69A0-42AD-B261-24DA451BF442,ForceRecovery 3A666558-43E3-4D25-9169-DB81F5DB42E1,PKeyFileX509Guid 3A6A1473-13E0-4795-BA9F-22891277D74D,HdpEraseUnitAppDxe 3A7AA63A-88B9-410B-80C0-C97F146B6DF8,FjUtilSmm 3A829D04-3962-42DF-9137-B1D354AEA4AB,OemDxeGetBoardData 3A84B1D8-77B9-4786-8C06-C97009DCD5C1,AmdLegacyInterrupt 3A885AAE-3E30-42B9-A976-2F1F13BD7015,SecurityPkgList 3A95AD68-D735-418A-AF10-5AE516555994,AaeonLanByPassSmi 3AA7FD11-CC5F-11EC-95E0-E02BE9424581,DellLegacyBeep 3AA83745-9454-4F7A-A7C0-90DBD02FAB8E,BdsConnectDriversProtocolGuid 3AB14680-5D3F-4A4D-BCDC-CC380018C7F7,EfiDiskInfoNvmeInterfaceGuid 3AB38776-01BB-4A17-BC40-829BFF8F8DA5,FjLanFlexIo 3AB6529E-6F90-4863-AFFA-F5BA08DEA9AA,SbBeepLibPcAt 3AB85907-33CD-4D6C-93A5-9BE7E579BF95,FjNetworkServices 3AC66273-9F97-41B7-9AAD-5D781DA0B8A7,DellVideoDxe 3AC97E05-F217-4EBD-B134-8FDA26E85769,DebugDxe 3AC9D717-A920-4BB2-8EC8-F235094C7E50,CpuInfoSetupUtilityDxe 3ACC966D-8E33-45C6-B4FE-62724BCD15A9,AhciBusDxe 3ACEB0C0-3C72-11E4-9A56-74D435052646,TlsDxe 3ACF33EE-D892-40F4-A2FC-3854D2E1323D,EfiPeiCapsulePpiGuid 3AD722E7-8AD7-4ED3-A118-85966387DB07,SecureWipe 3AD9DF29-4501-478D-B1F8-7F7FE70E50F3,EfiUdp4ProtocolGuid 3ADF2D98-695A-4E7D-BE98-58314536D2E8,SimplifiedChineseDxe 3AE3D6F0-6483-45D6-9395-303C9789208D,TrEEConfigPei 3AE4CA4B-B55B-4C11-8FAC-7C95D7423F68,BiosGuardInstallGuidSmm 3AE7DCC4-D073-41EE-8D9B-85C38BC7878D,PowerOnRobotDxe 3AEE139D-EDC8-4599-BABC-508323B5D4A3,TpmEsrtFmpUpd 3AF6A731-3E9A-46A8-910D-DB4ECF37464D,InitXnoteSetupHiddenMenuDxe 3AF7320E-DE0E-408C-AF25-1C00E4AF2AD2,WyseThinClientSmm 3AF9647D-C46B-11E4-AA1D-B8E8562CBAFA,ChunkManager 3AFAA9D7-4A0C-4AAA-8C09-05199B22428C,OCMR_Setup_IGD 3B0673A3-5197-454C-BA76-E2D0C8C48EFD,GenericElog 3B0CF843-5A4D-41D7-B42E-123B3084CF88,SmmSpdAccess 3B1DEAB5-C75D-442E-9238-8E2FFB62B0BB,UefiPxe4BcDxe 3B1E4B7C-09D8-944F-A408-1309EB8B4427,EmuThreadThunkProtocolGuid 3B24F79D-91A0-46FF-BE29-458AE211FAC5,KbcEmul 3B286D06-DED4-441C-B4E4-444B50AA73BD,WifiBtDxe 3B2E5712-7F64-4E6C-9D18-63A6867CC744,AmdSocFp7r2RmbPei 3B37B724-4AF7-4A35-97B3-D2FB8F4F563C,DellStopShipConfig 3B387BFD-7ABC-4CF2-A0CA-B6A16C1B1B25,EdkiiFpdtExtendedFirmwarePerformance 3B3B7B6F-A2DE-4F1E-9B84-C6DDC1B36D4B,OemSleepSmi 3B3CB022-2614-4994-878E-C738CE85F6ED,ApobDummyPei 3B3EE27E-9BEF-463F-B03A-A5C9A098B7B5,CpuOverclockingConfigGuid 3B42EF57-16D3-44CB-8632-9FDB06B41451,MemoryInit 3B43161F-AEB4-43EC-9E1B-8050171B4899,BiosGuardRecoveryHook 3B4514C2-D098-404C-B1DC-D71AEACA4E96,AmdMemoryHobInfoPeimShp 3B462A2C-C75E-43C5-AC4F-D4AF0D5E002E,AmdFabricStxKrkPei 3B4D59EC-DFD9-4EC6-BB8A-E0FE2B4264A0,PciDxeInit 3B4D9B23-95AC-44F6-9FCD-0E9594586C72,BdsLibStringPackageGuid 3B6686BD-0D76-4030-B70E-B5519E2FC5A0,EfiCapsuleGuid 3B66F206-6386-4117-A7FD-F5B843A26A6F,HpNetworkFeatureByteKillDxe 3B68E4AC-78DC-4198-B5B0-9F341E503B7D,ProjectSMI 3B6A1473-13E0-4795-BA9F-22891277D74D,HdpEraseAppScreen 3B749932-2DE6-4021-A639-5753536A4FCF,AsusSensor 3B869FD8-6D10-4BA3-94D9-8966F763B3FB,HciDxe 3B897E94-4864-416B-8353-9479325497AC,OemDxe 3B8C8162-188C-46A4-AEC9-BE43F1D65697,EfiFwDisplayCapsuleGuid 3B95AA31-3793-434B-8667-C8070892E05E,EfiIp4ConfigProtocolGuid 3B9AEC47-FC79-4CA1-8F53-CFBA75DAA6FB,SchenkerSetupPei 3BA7E14B-176D-4B2A-948A-C86FB001943C,EfiErrorHandlingProtocol 3BB37EC4-82E8-4C84-AAA5-1E0BCFCDA6FD,DellFmpFtb 3BBCB209-26C8-4BA9-AD25-B95B45A04D26,BatteryState3 3BBF8B1D-4B2D-8602-6CC2-C781BACEBAC8,Pca9535aDxe 3BBF8C98-7FE5-4728-AD52-1E07E571D610,PlatformWrapperPei 3BC1B285-8A15-4A82-AABF-4D7D13FB3265,EfiBusSpecificDriverOverrideProtocolGuid 3BC1C867-2274-43F8-A4BA-939A5BD6D473,DellBlockIo 3BC1F6DE-693E-4547-A300-21823CA420B2,PeiUsbControllerPpiGuid 3BC2BD12-AD2E-11D5-87DD-00062945C3B9,CpuStatusCodeDataTypeExceptionHandlerGuid 3BC42C6D-ABEC-41BA-8CCB-D8E0EF1CEF85,PCHPolicy 3BCA86E6-FFDD-47F8-9E76-0D7E1706F6CD,ModernPreloadDxe 3BCE2765-74D9-4FE2-9FEE-E579C06F736B,UsbOcUpdateDxeSierra 3BD2A492-96C0-4079-B420-FCF98EF103ED,EfiCertX509Sha256Guid 3BD2ED18-9D72-4208-9D8A-4BE274E6ED69,CapsuleUpdateApp 3BD2F4EC-E524-46E4-A9D8-510117425562,EfiHiiStandardFormGuid 3BD61419-4BB8-4921-92C8-BA84A7A3591F,ResetDateTimeDxe 3BD930FD-F823-4948-8691-98E6FE36ACE2,EfiDebugMaskPpi 3BEB5ABD-5BE5-40B7-B9D8-4026E3D6D6AE,FjUtil 3BEB6B06-09CE-4386-8884-F323ADD04F1F,GlobeTile 3BF4AF16-AB7C-4B43-898D-AB26AC5DDC6C,SecSMIFlash 3BF66866-3F8B-4CD8-B74C-B994111F535F,FfsIntegrityCheckDxe 3BFFECFD-D75F-4975-B888-3902BD69002B,MeGlobalNvsAreaProtocol 3C094B02-9797-495E-8CA8-940371396A08,FjS3SaveMem 3C0D6860-7396-488A-BF52-2D8647D35B28,MeOptionsSmm 3C0ED5E2-91EA-4B94-820D-9DAF9A3BB4A2,DmarAcpiTable 3C0F72B5-D51E-40C8-90F1-5A923E0D1F24,TpmResiliencyDxe 3C14C099-3143-46EF-AF18-DE4AD2C3A799,SystemHiiImageDisplayDxe 3C1ABB6F-5A5A-4E48-BDF9-5DEDC58E05AB,FjGabiFtsSystemDataSmmBin 3C1DE39F-D207-408A-AACC-731CFB7F1DD7,PciBus 3C206312-B8B6-496F-BCFA-2F645EF4ACDE,TransparentUnlockWmiSmm 3C234470-69D3-42E1-B323-C809300F3925,EfiPeiPlatformTypePurleyLbgepdvpPpi 3C23ED00-56B9-4B3D-96B6-44DB8FAF2E6B,BCVersion 3C2A0F82-36DF-4702-B0A3-5A5B0A0F89C1,OemSmm 3C33A10A-917E-4925-A2C4-8B545BF10A82,HddPwSmm 3C33FEA3-EAD2-47F1-98B3-4F10254966F5,SystemVariableHookProtocol 3C35B99D-D4B7-4885-ABD9-2BEA4B9F3A01,ASUSFTMDXE 3C43AFDD-570F-449B-A7B6-5F3315D73054,FjUsbInternSwitch 3C4836AE-B24B-40E3-B24B-9448ED095BFE,SpiDxe 3C4852D6-D47B-4F46-B05E-B5EDC1AA430A,TdthiProtocol 3C485EA4-449A-46CE-BB08-2A336EA96B4E,EfiCk505ClockPlatformInfoGuid 3C4AA94C-713C-45E9-B25C-83DAED1780AC,LoadEFINetworkStack 3C4FC0F3-D0FD-468C-9825-5EEA0E85355D,KEMaSMBIOSDxe 3C5766E8-269C-4E34-AA14-ED776E85B3B6,EfiCertRsa2048Guid 3C5C631D-7995-4415-8B16-9F4A8AD36FCF,Int10ToSmi 3C5C987D-7996-4415-8B16-9F4A8AD36FDD,Int10ToSmiDxe 3C646132-ED96-4EF0-93ED-B209AE6E727F,ManufactureDxeToolBin 3C699197-093C-4C69-B06B-128AE3481DC9,EfiAcpiDescriptionGuid 3C7200E9-005F-4EA4-87DE-A3DFAC8A27C3,EfiShellDynamicCommandProtocolGuid 3C7BC880-41F8-4869-AEFC-870A3ED28299,EfiHeciProtocolGuid 3C7D193C-682C-4C14-A68F-552DEA4F437E,PcdDataBaseSignatureGuid 3C80727F-6846-41BC-8E54-0107C10ACDF0,FchI3cHciDxe 3C887050-42C8-4958-A08E-495D910CF515,InstallSdevDxe 3C8B9970-870A-11E4-B7C6-B8E8562CBAFA,ChipsetGpioDxe 3C8D294C-5FC3-4451-BB31-C4C032295E6C,IdleLoopEventGuid 3C955AA4-41DC-4FD2-B0E8-27FB3C10E5FF,MiscFunctionPortingProtocol 3C983C33-7D22-5E0E-AA5B-A7CD24A31B54,Tcg2FTPMSmm 3C99F185-763E-4C34-B40E-5580EFF865D4,SecureEraseLog 3C9A095D-C3CB-4302-96E1-7105A7C46A69,AmdCcxZenRvDxe 3C9C8411-A0D3-4A00-979C-F3A9FF556CF7,AsusBiosPeiCrashFree 3CA3AD41-6DC5-4338-9C0F-5C6A25D2F597,HpBcuPreserveDataDxe 3CA59AB6-67CB-4385-9EDD-407C49F0D9BC,OemBootOsb 3CA6DB44-8614-4DCA-8B95-A35EFD51779E,DxeCheckCMOSHealth 3CC02D82-D40F-4897-96EF-2F35B3AAA096,I2cMaster 3CCC52E4-56D8-4AFA-A9CD-0E8E2D81488F,AsusSsidUpdate 3CCD3DD8-8D45-4FED-962D-2B38CD82B3C4,UserIdentifyManagerGuid 3CD405CE-2D91-44E9-895D-4459EECD8F9A,AmdRasRvApeiDxe 3CD652B4-6D33-4DCE-89DB-83DF9766FCCA,EfiVectorHandoffInfoPpiGuid 3CDC90C6-13FB-4A75-9E79-59E9DD78B9FA,EfiPeiReadOnlyVariablePpiGuid 3CE1E631-7008-477C-ADA7-5DCFC7C1494B,EdkiiPeiFirmwareVolumeInfoPrehashedFvPpi 3CEC37DF-90AD-4D88-AFF4-093056A6807D,SystemSecureFlashSleepTrapSmmDxe 3CEF354A-3B7A-4519-AD70-72A134698311,Ebl 3CF15020-4DB3-4769-9D37-913A3489FE7D,BindProtDbgDxe 3CF5C82C-3298-4C3E-AA1D-AA319CA2A86D,PrmSampleSsdtDxe 3D0E663A-DC72-4489-87C5-E49EE773A452,IffsPpi 3D154670-6015-4425-B9C5-8035E34BE6FD,NvmExpressPei 3D17205B-4C49-47E2-8157-864CD3D80DBD,FatPei 3D18BA13-D9B1-4DD4-B916-D30796539ED8,EdkiiUfsHcPlatformProtocol 3D18D024-EA2F-4EDD-9FE3-672A37DB802D,OsTransparentUpdate 3D2AD454-BD5A-4F2F-A68E-185000CD2045,CmosInterfaceCoreSmm 3D2DBA75-5EBC-4EEA-A487-06AD9E1CACB3,DellI2cPlatformDxe 3D2F8940-A850-4543-B294-9B0BD0E750C7,HstiDxe 3D3CA290-B9A5-11E3-B75D-B8AC6F7D65E6,XenBusProtocolGuid 3D411389-F606-485E-B7BB-CB6EAB4672CD,FjBIOSMasterPasswordBin 3D417445-1F37-46D8-BC1F-D07014344974,AhciPciHcPei 3D49F3EA-AD1B-4866-8459-E5B58CA410D3,AmdMemMcsrUserPreferenceDxe 3D51D4DA-DE98-49A1-9442-9D81E0FBB6C2,WakeEventPei 3D532050-5CDA-4FD0-879E-0F7F630D5AFB,BrotliCustomDecompress 3D5674D0-AE75-4723-9159-1D653B40402F,DellTxTdxe 3D5ABD30-4175-87CE-6D64-D2ADE523C4BB,EfiVirtualCdGuid 3D61A466-AB40-409A-A698-F362D464B38F,EfiEventNotificationTypeBootGuid 3D64F384-CA32-42C6-A629-42A494B2CB4A,TpmCapsuleDxe 3D68B132-2652-47FD-B2E9-B417122B5A6D,DellCommonBoardInitSmm 3D6CDB0A-5B1F-43A3-A43B-441267F9DAB5,AmiSmbiosCpuInfoProtocol 3D7CD868-072E-4A7E-9C83-1DCE7C0DB0AC,DG_GOP 3D7F7739-A084-4FA9-9A83-6B4B0E2CD638,SATADxeConfiguration 3D806895-FB1E-4F67-A70D-5CC1A7D71857,EcdHctm 3D8BBB82-B153-4BAF-AB64-09E7F9785877,FjNuvotonNct5581Smm 3D92FF43-193F-46BE-B0E1-B820124BF6D9,FjGabiNvramAbstractionSmm 3D989471-CFAC-46B7-9B1C-08430109402D,TxtOneTouch 3D9FC54D-19E5-4AD0-B986-02D687D760E5,ASRLOGODXE 3DA02C3C-62E5-438B-B0DB-9E5128379661,EarlyDxeDevices 3DA97FDE-2261-4CFB-A171-74CD5A9AE279,SaveSpdToRomDxe 3DAB18DE-976C-40B9-972B-6CFD196E0C92,UsbViewerDxe 3DACF484-53DC-4BD6-84C9-AA17BCF2FFDC,PowerFailureRecoveryPei 3DACF585-53DC-4BD6-84C9-BB37BCF2FA23,SerialPortSettingPei 3DB287DE-F551-4DD1-AC5F-050FE6C10A6C,Smsc5028PeiInit 3DB39EF6-81BD-4E4A-A051-12F8FDEFD5C7,CertificateStorageSmm 3DC21D75-DE0E-4300-A0AA-19C41C0CF3DF,SaGlobalNvsAreaProtocol 3DC5DC4A-824A-44C5-89D0-D4547191E3F4,RstOneClickEnable 3DC82376-637B-40A6-A8FC-A565417F2C38,Ps2KeyboardDxe 3DD406D4-5EC9-4198-9907-F674E60B2994,BaseTraceHubInitLibNull 3DD57743-CA56-429A-B64F-77DE88F8ACF6,RecoveryBackup 3DD5AF4B-0925-4C81-93AC-79174C4782D8,NetworkBootConfigurationSmm 3DD7A87B-D5BD-44AF-986F-2E13DB5D274C,SnpDxe 3DD84775-EC79-4ECB-8404-74DE030C3F77,FmpDxe 3DDE54E9-8D18-4EA8-9423-C2E846E18E23,DellSmBiosStrucD3 3DE30DC2-D84E-48EA-8E38-A9C17D743F10,TimerSMISmm 3DE852F6-34BF-4345-FFFF-FFFFCCE3A3EE,BootFailedDxe 3DEC6443-30AA-44FD-979E-84B91D3C1412,SbSocPhoenixPei 3DEC6443-30AA-44FD-979E-84B91D3CEEFD,SbSocRaphaelPei 3DF2AECB-7489-4D91-9BEA-9B135A564670,BdsCheckPointHandler 3DFC255F-9C86-48BC-972D-E522533768DB,LenovoRebootCp 3DFE0FAB-70C7-4B53-9855-985F14DB2DDA,RawIp4Tx 3DFE2E72-9F6D-4350-BA4F-20333B52B876,AmiSyncSetupData 3E197E9C-D8DC-42D3-89CE-B04FA9833756,RegularExpressionDxe 3E1C696D-FCF0-45A7-85A7-E86C2A1C1080,UefiDevicePathLibOptionalDevicePathProtocol 3E20BE3F-F9B0-460B-B43D-ECC3497D7BC7,DellSoftTAADxe 3E26A614-09F7-486A-A88F-A99BF15E1FA1,LenovoPcdInit 3E2F4F05-26FA-490F-AC3B-351BAF08B28D,ArmaniSxCallback 3E3066C0-BD31-4ADB-B2A4-6E6654C7B81F,LenovoEventLogSelfhealingEvent 3E3099F5-CBCC-4AE8-AEA0-2B7D1E7F8294,LpssDxe 3E35C163-4074-45DD-431E-23989DD86B32,EfiHttpUtilitiesProtocolGuid 3E405418-0D8C-4F1A-B055-BEF90841468D,TcoWdtHob 3E44AD09-D88B-4C52-B41B-B8C00536474A,LenovoSystemCryptSvcRt 3E4817FD-2742-4351-B59F-91493280329C,AlertStandardFormatPeim 3E5281CC-3A12-4ED7-831E-623D7A18D98A,AmdSocSp6StpPei 3E544221-56DE-432E-BBC8-46FACF14FE77,AmdBiosFlashDxe 3E5756E0-6709-4313-8B5A-31534A6542B8,OnboardTPMPei 3E58A128-55C8-4164-FFFF-FFFF38A05639,XnotePlatformPolicyRtDxe 3E591C00-9E4A-11DF-9244-0002A5D5C51B,EfiMmcHostProtocolGuid 3E5EF8CB-915D-4FDA-92DD-71042E0B7A01,PowerProfile 3E625104-1920-44B1-AE2C-1BDA57ED73EA,KtiRas 3E710061-647A-4C03-BE85-FAD6CCFA5A18,PcPassword 3E745226-9818-45B6-A2AC-D7CD0E8BA2BC,EfiUsb2HcProtocolGuid 3E74BFBF-893D-4097-B263-96DEE7EE2CFB,SetupStatusSmm 3E7598EE-FD81-46C9-9798-C2FD1A73E839,AIMTSmm 3E7788CA-2BFC-4FCE-8122-5176CA492D9F,CbsSetupDxeRV 3E7D2B56-3F47-42AA-8F6B-22F519818DAB,ScPcieSmiDispatchProtocolGuid 3E7DD42F-A67E-4D4F-BC02-2B5A6EC8DAE9,SetupVariablePei 3E80119F-0BF4-433C-8FB6-E6C228A001EB,PrmPeLoaderConfigDxe 3E91A5E2-26A1-4AE2-854B-08C39BAA0BC6,DellSdCardNotifyDxe 3E9A7EC8-EB9B-47AC-B78E-F1A4C3FC78EA,CbsBaseDxeSHP 3E9F711D-3496-46EE-9DA5-46DFBC1D686F,PlatformFlashPartSmm 3E9FF4C8-A355-4063-A487-610360C0ACCE,ThirdPartyNvme 3EA824D1-81E3-4FF5-BD43-BB9C65DF7C46,AmiCsmStartedProtocolGuid 3EAF5E3A-E4B2-48E6-A9F1-B75CF204BCC8,PeiBoardConfigInit 3EB9F0D3-40D0-435B-B692-809151807FF4,TCM_MPDriver 3EBD8C7C-733B-4667-8FD1-4ABEA366C95B,ASUSDirectKeyPEI 3EBD9E82-2C78-4DE6-9786-8D4BFCB7C881,EfiFaultTolerantWriteProtocolGuid 3EBDAF20-6667-40D8-B4EE-F5999AC1B71F,EfiSecHobDataPpiGuid 3EBFA8E6-511D-4B5B-A95F-FB38260F1C27,DeviceManagerFormSetGuid 3ECEB3C6-1B1C-4729-9C62-33DD81D65DDE,FchPromontoryCbsPei 3ED700B5-3A13-43BE-9450-00122E8B83D7,DataHubRecordPolicy 3EDBAAC4-5017-4870-8CC4-721F9EF1974F,CloudBmrApp 3EE63DEB-A003-45CB-A949-6754CD618C9C,AcerHwConfigSmm 3EED924D-2BC1-4876-B769-F31F85AB397F,FjHddEraseApp 3EEFF35F-147C-4CD1-A234-92A069700DB6,EfiMemorySetup 3EF26668-C17B-43F8-A30A-D887F95906E1,DellFmpCpldPei 3EF7500E-CF55-474F-8E7E-009E0EACECD2,AmiUsbSmmProtocolGuid 3F06A22D-CD02-4EEA-B294-D6871DF1255D,LenovoVariableSmmProtocol 3F27C867-4720-4537-8D0C-20F32FF30C04,AmdMcaZen4Dxe 3F286E3E-16EA-4E5E-A2AD-63644F1AC3C7,PeiConsoleOutConsplitter 3F2BCF3A-7876-475B-B97D-EFAE8BEF75FC,AmdNbioGfxRNPei 3F31B066-82A2-4B2A-A6CE-AB0F7DD0066A,NVDimmMgmt 3F4592F4-D5DE-4C29-883E-63434BBE0B33,Cf9Reset 3F4CDD2B-A713-4443-A253-7EB22B71730E,BctBaseSmmRPL 3F557189-8DAE-45AE-A0B3-2B99CA7AA7A0,EfiFtwLiteProtocol 3F5A74B2-BF80-4850-8591-4F2DF5F9CB2B,PhoenixGdiProtocolGuid 3F626A59-87D2-4FCF-B5DE-9D12A8B2AF88,FeatureByte 3F68E889-CB77-4EFC-BC84-AFA0A64AD26E,LsConnectorDxe 3F7753EF-D36F-45CC-8A1A-2EAAFF1038B6,PciPlatform 3F7753EF-D36F-45CC-8A1A-2EAAFF1038B7,BootMediaInfo 3F78CB8D-72EE-414E-B023-DACA003BDDF5,ProjectSxSMI 3F78CB8D-72EE-414E-B023-DACA003EFCDE,AsusApmSmi 3F7E615B-0D45-4F80-88DC-26B234958560,FitDiagnosticsLoader 3F7F265B-29CE-4A54-8751-8A9E90719831,FjEdpDisplay 3F837872-2A07-4470-B8B7-9AC131360314,VariableEditDxe 3F8DC333-CCD5-4E58-B8CF-7B9A8F31EA96,AmiTseOemPortingVar29 3F949D9F-CC66-479A-9AD3-F6C1C3FF4378,AmiSgxDxe 3F9615F9-1DD3-4185-920D-8D0D5B23D36C,fTPMInit 3F97727B-5E18-4C4F-BC65-9CB8DFE1802F,FjGabiSystemDataCmosAbstraction 3F9A7CA0-A30E-45E8-9CBB-B628D54A3588,OemPei 3F9CE6DB-37BC-49F0-9293-A9EC7BDAC3C9,AmiPeiSetupPcd 3FA0BB4A-180B-4458-9F12-6EA68F69E6CC,PxeRomB571699 3FA4F847-D8EB-4DF4-BD49-103A0A847BBC,EfiKmsFormatMdc4128Guid 3FB208AC-2185-498C-BF46-DC23DA587B55,EmuRedfishService 3FB856A5-C8B0-4760-B49A-2EDD4FA35BFA,LenovoIbexPeakGlobalSmiControl 3FB90C4A-985E-46C3-AC50-4640F3261F1A,BiosFwInfo 3FBD651B-5F0B-47AF-BE25-AE35C63C8D5C,AmiCpmWrapperPei 3FBD651B-5F0B-47AF-BE25-AE35C63C8D5D,AmiCpmWrapperPei 3FC08BA1-EDC6-4E5F-BDC8-0E46B65C92F6,SmmGpiDispatch2OnSmmGpiDispatchThunk 3FC2A64E-0A39-48D1-9424-721344C1918A,CompalInfo 3FC69994-1900-468B-B2D9-E6163056C3E7,Ast2500Pei 3FCF2813-F138-411C-BFC4-DBE5B9499822,ODMEMUSBLAN 3FD1D3A2-99F7-420B-BC69-8BB1D492A332,Fid 3FD7FDB7-1C4E-43BA-A857-35857F9ED3F5,SystemVariableStoreManagerRuntimeDxe 3FDDA605-A76E-4F46-AD29-12F4531B3D08,EfiMpServiceProtocolGuid 3FE2A8A3-C400-48F8-832F-7881A394C250,IohInitDxe 3FE37DFF-7CA0-4F34-B12A-689408119F70,TxdDxeDriver 3FE57AC2-C675-46B1-8458-AC6206588424,TpvDxe 3FE61B25-D0BD-4907-9CE0-F5285718824E,It8587eFlashDxe 3FE72C6D-3612-4061-84AF-80C5B7AC6E25,PeiIpmiCmosClear 3FE89372-C0CC-466B-AA4A-B76DBBB11BBB,DellPolicyDxe 3FECFD95-7CB2-4A6E-8FAC-DEFD9947E35E,ReportFvPei 3FEDD4A3-8112-4534-8DB2-E886EB35075E,ErrorMessage 3FEEC852-F14C-4E7F-97FD-4C3A8C5BBECC,FWkey 3FF7D152-EF86-47C3-97B0-CED9BB809A67,ClvBootTimeTestExecution 3FF97FC2-7920-4C72-9478-0C4DB7BEA399,TrackPointSynaptics 3FF9DDBC-14FA-4A7F-89D9-B770055A42A5,TbtUpdateHandle 3FFCAE95-23CF-4967-94F5-16352F68E43B,PpmInitialize 3FFFB2AA-4692-42E8-865E-7E111986FABE,wifi_2bars 40008162-93D0-48F2-80DA-7E32F4C98F8B,Udp6Dxe 4004DE5A-09A5-4F0C-94D7-82322E096AA7,DxeCapsuleLibNull 4004E454-89A0-11E3-89AA-97EF9D942ABC,ArmVExpressFastBootDxe 4006C0C1-FCB3-403E-996D-4A6C8724E06D,EfiLoadFile2ProtocolGuid 40093F23-630C-4626-9C48-40373B19CBBE,EfiKmsFormatGeneric2048Guid 40096A3A-5C2A-4FBC-AEF7-5475DD7AB334,BasePcdLibNull 400B4476-3081-11D6-87ED-00062945C3B9,SystemSpeakerDxe 401471E4-9E79-4664-BFB0-179524230567,LenovoVproIderAsfBoot 40155DB7-F2F6-4F7E-8BA8-A3466D4EF5FE,RngDxe 401F52EF-55AE-488A-9424-FEF53BEB1122,SmmPowerButton 402EEC6F-D0FC-4FFD-9956-FA9813EA2D7A,AcerHwSupportSmm 4059F377-27D5-4139-B7E7-F99591F7C46D,FchSmmDispatcher 405B2307-6839-4D52-AEB9-BECE64252800,ArmFvpDxe 405B6CD8-AF66-4993-B77F-35EFDA6BF7C5,SioSmbAlertDispatcherPei 405DA936-3737-4C0C-8E3F-E6172A568592,FileExplorerDxe 405DA936-3737-5B0B-8E3F-E6172A568592,RecoverBiosUiDxe 405F8FE6-5213-4B85-B821-97B77AFF795B,ASM104X_DXE 407868F3-D1A7-46C6-9FCB-6F67A5E3C7D9,HdAudioConfigGuid 407B4008-BF5B-11DF-9547-CF16E0D72085,PL111LcdGraphicsDxe 408E3BA4-8410-4C44-A51E-DF8BDB36056C,HpPlatformSmbiosDxe 408EDCEC-CF6D-477C-A5A8-B4844E3DE281,ConSplitterDxe 40902599-A3A9-43EE-AD76-D0482FBE29B5,PlatformVTdSampleDxe 40A0BE5C-ECA6-45F1-BFF5-619E26951E5C,HstiDxeV2 40B086C3-95B5-444F-A895-CBF484A19A0F,AsusHwmSetupItem 40B09B5A-F0EF-4627-93D5-27F04B754D05,AmtReadyToBootGuid 40B207DD-89D7-4F58-B278-622176CA0998,SioResetSystemSmm 40B2D964-FE11-40DC-8283-2EFBDA295356,FmpDevicePkgTokenSpace 40B457F4-4409-492C-AE48-2A2B0CBCDA58,DellEcIoSmm 40B5FCCC-CD62-4B46-89BA-D7F5256D881D,DellPolicyPei 40BEAB40-CECE-4909-B133-20A413AE19E9,CpuMpDxe 40C1E78A-D6C5-4A41-805A-85D680F8FDB1,FmpDxe 40C83888-A477-490E-A0AD-7B968CA2D73F,DellVRHeatsinkDxe 40CDA63E-3F70-4B25-A50C-49DBD7EE343F,SmbiosType132 40D85A8F-37E5-4788-997F-70478C4B7B48,SecureEraseDxe 40E064B2-0AE0-48B1-A07D-F8CF1E1A2310,EfiNetworkPkgTokenSpaceGuid 40F75919-0CDB-4DB2-A0FB-6881CE7E9770,UsbMouseAbsolutePointerDxe 40F93610-8D5F-43D3-A896-C61EE79F1376,HpSmbusSmm 40FC560C-C5D9-4219-8963-46605AB2570A,FjSysmanFwUpdaterBin 40FDF4FC-B7CC-4AC5-9BA2-A050D26656A7,SmcOptimizePei 41015350-BA3B-4916-B043-4615408A87B3,OememSmiCore 410C1D0C-656F-4769-8DFB-90F9A0303E9F,IconFireWireHD 4110465D-5FF3-4F4B-B580-24ED0D06747A,SmbiosPlatformDxe 411F7E6F-4666-58B2-D69E-D680C0F68BE2,SystemAcpiAddedValueDxe 41282EF2-9B5A-4EB7-95D8-D9CD7BDCE367,Oa2MagicNumber 41292206-4069-42A6-AC38-C4A5C123C6E5,BaseTraceHubLibNull 4131B0C5-DEC3-470A-AAD5-1509349DBFB4,AdlSioFunctionDxe 4133A446-3E9B-463E-982D-0B7A09B1F138,FjShutdownLogDxe 413B1952-D564-4AEB-8CDA-8353161500BC,S3SaveSmm 41401688-2862-431B-BAAC-6ECADAC384AB,PciCfg2OnPciCfgThunk 41415623-A074-4369-98C8-370770AED42B,AmdMemSmbiosV2RsPei 4143C17D-54BC-4903-9958-2454216BB21E,LpcPlatform 414D94AD-998D-47D2-BFCD-4E882241DE32,FwCapsuleHdr 414E6BDD-E47B-47CC-B244-BB61020CF516,EfiHardwareErrorVariableGuid 414FE699-1D18-4C80-8C92-6140737801E2,FjUartModeSelection 415928AD-31D9-4CBF-9E92-6D1F67EC5711,EfiNgnCfgOut 416CF182-4A5F-4F21-919A-0161D837181E,POSTCODE0A_DUALACCELEROMETERWMI_SMM 417560D0-80F6-4CB2-A15E-50ACD383691F,FchSmmDispatcher 41781F4F-A3CD-4750-8A2C-2192B4DFE52B,EfiPeiPlatformTypeHedtEvPpi 41789FB9-02AC-4484-BD40-A3147D7EDA25,PeiRecoveryLibNull 417DA59E-CB73-452B-90F3-A8D9B805004A,BootOrderDxe 41804D8B-2CF4-43CA-9034-18E5DD227C93,HpNetworkTransferDriverWmiSmm 41846A2E-7AAA-4498-BC26-B5ACD49F92E1,DellSmbBootPriority 418BC604-F15E-4843-85D0-2D2480B7E488,EfiMpstNodeData 418FAF6C-2BCF-4141-8983-9D33E1B67B4C,SpiControllerSmm 41943893-CDD0-4A3F-BA63-D1325E72061A,LenovoHdpManagerPei 41A4631C-BB02-45AF-BEDD-AEDC56E53E79,SuperMPei 41A78FEC-2270-421D-98C9-BD13E77DF19F,NtfsDxe 41AA21FB-7B8F-46D2-B726-C1BC5FE65243,HpSmbiosDoneDxe 41B13735-0E0A-4F67-96D1-B15DA28205FA,SIOBasicIODXE 41B168D3-7C13-430C-BFEE-B438C2795C1F,SmmWhea 41CF3880-0560-4D01-8624-3A0A47894574,DetectDevice 41D94CD2-35B6-455A-8258-D4E51334AADD,EfiIp4ProtocolGuid 41DC6838-029A-4D2E-860C-6EC6425B5EDD,AsusWlanUpdate 41E26B9C-ADA6-45B3-808E-2357A35B60D6,ArmBootMonFsFileInfoGuid 41E2F0CE-238A-4906-AEF8-37C531ADDF89,ThermalModePei 41E321D8-CE30-4160-B08A-75AA570BF36F,LenovoFlashDeviceInterfaceDxe 41E89AB0-BD3D-44B6-A431-E4836EFBF2CB,PowerManagement2 41EADC00-8DB2-4BFE-B0EA-CBAAE7F4D31B,SetupModifyProtocol 41EF54AD-E2CA-4433-FD27-D9CACA621EAE,AmdNbioIOMMUDxe 41F19F4B-E16D-4908-89DA-BEA814A66093,AmdSpiHcProtocolSmm 41F46692-9513-4D1C-8BB3-B6A168182DE4,DellMePciPlatformConfigDxe 41F564F5-616E-41D7-B4E3-E124C7FEC024,TransitionBios 41F8606A-F74C-409D-9465-5219557CBC7D,DellFlashIoSmmProtocol 41F925DB-17FA-4493-9A2C-3249FBAC07EC,FjGabiFlashCommonFdRegionCtrlSmm 41FA68EA-3AF0-458B-AFD5-1EEFE9DD6F66,CsrPseudoOffsetInitDxe 4204A3CF-CDAB-4629-AD6B-65E647FC29D5,AmdCpmManageabilityBoardDxe 42076C6F-0CF3-4AE1-B3A8-49789CDD57DC,PSUDxe 4213591D-CEEF-425F-915B-AE4559680F62,XnoteSystemSetupDxe 4215689C-F529-4AFF-9BFE-FEF35AC5518C,ProjectPeiPriori 421E6422-EB00-4ED9-A58E-D01666CB3DAE,SmbiosDataUpdateDxeFischerLakeRP 4220AB9B-1730-49C5-A89F-B471CF43B221,FchPromontorySmmInit 4220AB9B-1730-49C5-A89F-B47FCF43A221,FchSmmInit 42293093-76B9-4482-8C02-3BEFDEA9B35D,TcgSmm 42322E78-4659-4704-A05E-F2D75D3726AC,GpioPolicyPei 42363877-5513-4019-BDFE-CC075B646711,GnbSocRenoirDxe 42363877-5513-4019-BDFE-CC075B6467FD,GnbSocRavenDxe 4239AA07-8DE8-4C67-A971-C6F3F56D7F93,RfTlsCertificates 423D7996-E4C3-4D88-BEFB-0A602576CACD,PlatformSpdReadPei 423F0216-FBD9-4ABD-A63C-60A4591A37C2,FjIbvTraceAbstractionPpi 4250CEC2-DDDB-400B-8C62-CF9864F6D154,AmiSioPortCompatibilityProtocolGuid 4265FD93-28A5-488D-A572-2A47B10561C0,D01PeiCallback 426A7245-6CBF-499A-94CE-02ED69AFC993,MemoryDiagnosticBios 426B3068-3BC7-4B73-ACE8-322F0D0A105B,BatteryHealthControlSmm 42734906-EAD7-4A98-ADBE-58BDA5CB64CE,EcKeyPei 427749F7-73AD-4563-B50D-9E62563E27DF,LilyMilestoneDxe 4278A574-4769-4D60-B090-DD4916691590,RecoveryModuleLoadPei 4284A11C-18C1-4C10-B2D9-586A0160A523,EfiPeiPlatformTypeLightningRidgeExecB4Ppi 42857F0A-13F2-4B21-8A23-53D3F714B840,SystemCapsuleRt 42881C98-A4F3-44B0-A39D-DFA18667D8CD,EfiHashServiceBindingProtocolGuid 428BF17F-6116-4D59-843A-400470D17864,DellSpdSmbusAccessSmm 428DA2C1-39BE-41B1-88A6-A6FB870139A4,BsfWsRouting 429501D9-E447-40F4-867B-75C93A1DB54E,SmramCpuDataVariable 4296D9F4-F6FC-4DDE-8685-8CE2D79D90F0,EfiDriverHealthManagerFormSet 42AAA06F-B219-42A3-889E-413053ED10AE,FchSmbusDxe 42BB2364-F488-45DE-9311-E9E2CD37BD74,RtKbcDriver 42BB673D-09F3-4E2E-9FEE-D081131DED5B,BootScriptSaveDxe 42BBACA3-7161-4891-AC10-C75E2E4DF614,IffsPlatformPolicyProtocol 42C078EF-14A8-4E30-9329-6F12D796E54A,LibWchar 42C2F6B6-976F-4EBD-B6A9-FB4178F970FE,FchKernSmmInit 42C32DCF-F25A-47F3-8F4C-ABD478D77F50,DellPbaUpekDxe 42CF2D4A-78B4-4B80-80F9-96A83A630D70,UsbDeviceDxe 42D353B0-8C1E-4ACA-BEAC-28FB24F20C42,EfiDxeIpmiUsbTransportProtocol 42D54A0F-ECA8-49D4-997B-EF3FBE3B5BC0,OemDxeUpdateRx 42D69902-10E7-4907-AD3B-46A5BF25A1A0,NvmeUnlockPei 42DBABA6-846A-44E6-BD76-40280484D907,H19MpmShellInterface 42EEB698-B881-647A-324A-5A16EEAA9F3E,A01SysPassword 42EF76CE-A606-4881-BEA6-AD3F3EC9F754,Memory_OK_PEI 42F418E2-284B-41F2-BF6A-AF1C9166E66C,SystemSetupHttpBootDxe 42F58B27-5DC3-4FA7-844D-5A7DBFF06432,Enquire 42F5F135-3F50-4319-98A2-3B22DF559D20,SmbiosMemory 42FCB444-B881-49D8-A6E9-5A1695FC9F3E,SysPassword 4305ED99-9D86-492D-83AE-4D7359E99089,SioIt8669ePei 4306B556-2A3D-455C-A5EA-16ED450BD553,FjSystemResetPeiBin 4308B1F6-60F0-49FE-9E51-3A25992515BF,PoofAnimationState0 430AC2F7-EEC6-4093-94F7-9F825A7C1C40,SdDxe 430DCC33-3169-44B9-B430-23FCAB9102E6,CheckEthernetState 430F6965-9A69-41C5-93ED-8BF06435C1C6,EdkiiPeiShadowMicrocodePpi 4311EDC0-6054-46D4-9E40-893EA952FCCC,EfiHiiPopupProtocolGuid 43130081-60D6-4C29-BBC0-AB0B5BB90483,DellMfgAuthenticationSmm 43172851-CF7E-4345-9FE0-D7012BB17B88,iFfsSmm 4325AFB3-9F11-42C7-A293-94AAE3804942,FjUpdateSystemInfoDxe 432F9D66-F40F-435E-B402-46D41A394CCE,AmiChipsetPolicy 4335ED99-9D86-492D-83AE-4D7359E99089,SioPlatformHook 4344558D-4EF9-4725-B1E4-3376E8D6974F,ShellLevel3HiiGuid 434DBB27-969C-47D1-876A-4146D4EB4E36,DellBluetoothSmm 43522AE9-ECFA-4826-BC07-0E057A87D607,RealtekGopDriver 4356B162-D0B2-11E1-8952-4437E6A60EA5,Lan9118Dxe 43573EA3-8F6B-4BCA-970B-EFFAB15AC0E8,SanitizationModeSsdt 435CB0E4-7C9A-4BB7-9907-8FD4643E978A,AuthVariableLibNull 435D621B-3C41-4536-B0C6-AF67059FC4BE,CrashLogDxe 43679142-87C4-44AD-AF02-B47F782D6CF3,PeiIpmiLibIpmiPpi 43788BEB-638F-434C-8A84-46D33A589E76,DxeBmcElog 437B9A30-299F-11ED-A261-0242AC120002,DebugLEDSmm 437F14D6-97AE-4DA8-A598-2E65791E6944,SplashBarDxe 43827082-110B-428F-B6BB-41F65E67B202,AsusUsbDxe 4383BB24-2E0F-47AB-8955-B9EE710ACE52,FjLanRtl8111xSmm 438A5B8D-98D6-4CCA-A182-BA8C0471B5E8,PchSmiDispatcher 438B7799-F4D5-47A6-A75C-305C4449F512,SwSmiDxe 4391AA92-6644-4D8A-9A84-DDD405C312F3,AppleBootPolicy 43A110CE-9CCD-402B-8C29-4A6D8AF77990,EslUdp4ServiceGuid 43A4C605-C66D-473E-A06A-37E9143FC439,PcRtc 43AC4333-472C-4B91-8C5C-52A8B4374256,IioCfgUpdateDxeNeonCityFPGA 43B03B31-057F-4F1F-9B53-C3A54F565586,SystemEventPei 43B16233-893C-4893-BF34-CDAC541926B0,UpdateSmbios 43B400A8-9980-4871-8D8E-9DA7CBD246DE,OemAmt 43B93232-AFBE-11D4-BD0F-0080C73C8881,PartitionDxe 43BB9EAB-7D57-4DEF-B0A2-A3A9F9C6EAE3,LenovoMailBoxDxe 43BC7B72-E961-4A59-8525-6F30A276625F,EcMemMappingDxe 43BE0B44-874B-4EAD-B09C-241A4FBD7EB3,EfiKmsFormatGeneric1024Guid 43BEB924-62EB-45FB-B0BF-9A97AF463D68,IteEcDxe 43C1B250-BF52-4DDE-8280-57E0AD61117D,H19AmdDimmSpdAccess 43CA74CA-7D29-49A0-B3B9-20F84015B27D,SecCoreNative 43CB767D-322C-4285-B2FA-E952BF2DD94C,AmdCpmSoundWireDxe 43DECD73-77CB-474D-BD6F-1A98E7E2B6C6,LenovoErrorManagerDxe 43E3023C-13DC-4BA6-99CB-AF6F9ECF8B73,H19DeviceFwUpdateHook 43E7ABDD-E352-4CFB-A230-4CDC1D350E5C,GraphicsConsole 43E7D039-EEA6-4C08-B741-096D39447845,SataDriveInfoSetupUtilityDxe 43EA62DB-C2E4-4AF7-AE94-2F48D708A3BC,OemSsidGpio 43F66FFD-B288-4139-BAD5-B89803E730A2,DxeTxtPolicyProtocol 43F9B080-C902-4737-B306-487050F7CAA5,fjHddEraseApp64 4402CA38-808F-4279-BCEC-5BAF8D59092F,EfiSocketCommonRcVariable 440C38B7-ED16-49EA-9669-317EF906635D,I2cMasterDxe 440D38B7-E016-49EA-9769-317EF908835D,I2cHcOperation 44148713-6138-4890-A15B-5FF60C03F87B,EcSureStartRAPDataTransferSmm 4414D6D8-232C-4972-A4F7-2B21D4298786,I2cHost 441FFA18-8714-421E-8C95-587080796FEE,AmiSmmDebuServiceProtocolGuid 4426CCB2-E684-4A8A-AE40-20D4B025B710,EfiPeiS3ResumePpiGuid 442BA91E-B0A8-499F-94F7-2E922C9AAE0D,AodDxe 442BE18B-CA6E-4A23-9A99-9AFE8A213A32,SystemInformation 444C3203-F8B1-42A7-ABE9-2E58025BE12A,FpdtPerformanceProtocol 44577A0D-361A-45B2-B33D-BB9EE60D5A4F,ArmRealViewEbPkgTokenSpaceGuid 44640C32-33D7-4FB0-B1F9-6C7B232E994D,SpsPei 44640C32-33D7-4FB0-B1F9-6C7B232E994E,SpsMeSec 446DBF63-2502-4CDA-BCFA-2465D2B0FE9D,EfiCertX509Sha512Guid 44716DB9-AE66-4E93-BBBF-C78D9024DC47,KeepDevStaSmm 447559F0-D02E-4CF1-99BC-CA11654054C2,StdLibTokenSpaceGuid 447A1B58-8F3E-4658-ABAA-9E7B2280B90A,NvramSmm 447C8D3F-429F-405D-BDC6-35D75F3DC082,OFCRuntimeDxe 44830575-0A1A-450B-9FEF-BC88A1866A13,FjGabiBootOrderHandlerSmm 44883EC1-C77C-1749-B73D-30C7B468B556,ExFatDxe 4489DD91-8FBA-4F0E-B218-A24497805E1B,AmdFabricBrhPei 448F5DA4-6DD7-4FE1-9307-69224192215D,EfiSectionExtractionProtocolGuid 4495E47E-42A9-4007-8C17-B6664F909D04,BlockIoDxe 449C91B9-0907-49B5-AA76-04AF3097401C,SmbiosPlatformDxe 44A20657-10B8-4049-A148-ACD8812AF257,Tcg2Smm 44A2AD5D-612C-47B3-B06E-C8F50BFBF07D,OpalExtraInfoVariableGuid 44B3334D-A693-4AAE-AC8E-01E1904D9C75,AtaSmartFeature 44B79884-59F6-4D5F-869A-8C5436E09EB9,ADLINK_PsuAtAtxModeSwitch 44BA7D87-FD96-45B8-93D3-A8A0A94D0985,AmtConfig 44CDFA70-2C7C-4791-9AA3-EAE8777F0A8B,X11DPGPeiDriver 44CF7D20-DFF6-4209-9A1F-F6CD5F5CE88B,LenovoVariableInitSmm 44D763ED-7798-49A4-8B8B-C3D5BB2FD4FD,RestrictedBootfromRemovableMediaPei 44D88421-93BD-4325-BE63-051B531889CB,BiosCfgToolSmm 44E71185-2277-4557-BC53-957FAD9CA65C,FjLvdsRTD213xR_Dxe 44E7717F-075E-450D-98D5-54EBBB40701E,EfiPlatformTypeLightningRidgeExecB3Protocol 44F0DE6E-4D8C-4045-A8C7-4DD168856B9E,EfiRngAlgorithmSp80090Ctr256Guid 44F23590-DC88-11DD-AD8B-0800200C9A66,SystemAhciAtaAtapiPassThruDxe 44F7D21F-C36F-4766-BC5B-C72E97E6897B,Fip006Dxe 44F8D447-A021-46AA-9811-12C1EA02119D,BiosConnectLauncher 44FE07D3-C312-4AD4-B892-269AB069C8E1,BiosGuardSmm 45055A79-B385-4705-A3AC-11CE99A1CB47,StaticSkuDataDxeNeonCityEPRP 4513F345-0A25-42C4-8114-3A26BA6CF570,PlatformVTdInfoSamplePei 45177528-7C6A-4B5C-9C56-1A65BB5FC434,AmdCcxVhRnPei 45234652-62B3-4BF7-3878-B54FC44B5328,ForceLpmAspmDisable 453253B9-A204-46E4-B873-CA2249DA4888,SmbiosUpdateDxe 453368F6-7C85-434A-A98A-72D1B7FFA926,EmuIoThunkProtocolGuid 453C5E5A-482D-43F0-87C9-5941F3A38AC2,EfiKmsFormatSha1160Guid 45424D0C-E6AF-4AF2-AD99-FA77168742D1,SmartTimer 4542B4AD-29DE-409B-AE4F-93A8C25392E2,ClearCmosDxe 4549AB47-6E60-4293-B91D-31B610AD8056,EfiEsrtOperationProtocolGuid 454B0149-5B42-485E-8A8E-A20422790B97,AmdFabricBrhSmm 454DB25C-E506-4F90-A6DF-69E0223E3F2B,PramAddrDataGuid 4551F2F5-C684-4F27-936F-C7B04A5C5FF1,SecureBootDXE 45594FFD-60D8-45BB-8D6F-867BDF09E8C9,StorageSetupInfoProtocol 455D16DC-E3AF-4B5F-A9AD-A4BC198085BD,BaseDebugDeviceLibNull 456BBE01-99D0-45EA-BB5F-16D84BEDC559,EfiRestExServiceBindingProtocol 456D2859-A84B-4E47-A2EE-3276D886997D,EfiSmmSxDispatch2ProtocolGuid 456F1C50-750A-4671-89ED-F536A68C6D9D,AsusSetupVariableItem 45739A09-045E-40B5-9FA2-F7F66CB35551,DisplayDetectDxe 4579B72D-7EC4-4DD4-8486-083C86B182A7,IScsi4Dxe 457A68D7-15A5-4AF9-A252-9963FF9B0C34,PowerButtonSetupPei 4589CBF3-03F9-4998-9D6F-26343C69562A,LenovoComputraceLoaderDxe 458B03ED-6E53-414F-9F07-3A829C990641,DriveLockSmm 458CE95A-4942-09A9-5D21-A6B16D5DAD7F,RedfishCredentialDxe 459504D7-72D7-4BB2-956D-C9FA899920E8,OemFwLnk 45982835-D04F-4745-BCFD-519E6BB2DE7A,NvmeInfoSetupUtilityDxe 4599D26F-1A11-49B8-B91F-858745CFF824,AmiStandardDefaultsVariable 459C70C3-9344-4484-9F93-7822530D0D11,MePciPlatform 459FAFEE-3BCD-434D-90C9-A283ABAE84D5,HspfTPMAcpiSmm 45A36262-660C-495E-BDC4-50A852A44A11,MtkSuppDxeGen2 45A60B6B-9A96-44AF-AE84-D775CCB6D320,DellMemorySlotInfo 45AAC157-93B6-46D6-AA9E-4CF6C32916A4,CRBSmm 45AC8863-E3FA-4A38-A23C-00BCD10CBD50,AmiNvramSmmCommunicationGuid 45AEE2D6-18B5-4DFE-92B3-2C04F61631AF,AaeonEcPei 45B19541-E875-48F7-AB36-A646BD4AD45B,HpPlatformInfoDxe 45B59855-500C-443B-B504-9AB4CA29BC68,EfiPlatformTypeLightningRidgeEX8S1NProtocol 45BCD98E-59AD-4174-9546-344A07485898,EfiSupplicantServiceBindingProtocolGuid 45BD5504-94A8-4301-B211-B0AE4F56E9AE,ThermalSMM 45CBB784-020C-46E2-8A14-BE20CA21C3F1,PowerLossNotifySettingDxe 45D68DB9-8B4E-48C0-99E9-F21F262DB653,XhciPei 45DC2877-0DF1-4BD4-810F-0C75111819CC,EcDxeRestorePei 45E78B8A-BD68-453A-8E9E-C3773108B213,SiInitPreMemPch 45E9D7AA-6D85-4DEC-8B88-8C4BE5A1A08D,NvmeSmmProtocol 45EAE125-2A1D-44E0-9953-7AB7F19888AF,DellDashPolicyVer3Protocol 45ECAD7C-8C93-25B8-5E53-171A4C02D3AB,WCN6855 45F1CEC9-0C5C-4B31-BDF3-2FB6D7056BDF,HpDmarSmm 45F27DA8-DB9D-48E1-BF5E-458DEED9DE84,PchFlashControllerSmmProtocol 45F9602A-3475-4D1E-9FE9-BAC99F42AD49,AppleBacklightController 45FC167C-8B1B-49F8-A3FF-9FE54241C969,RfIScsiBoot 45FDB42B-1F95-4A53-9BA4-1C8BFB8BCB01,DellGpeConfig 45FF16E5-02B2-4C89-8604-E68C10DDE107,SmmCommonService 4612B275-356B-44D3-9315-33E6E936E64C,FjTpmInit 461A67CF-3D9B-4FC0-BCD2-7C606335DE0F,SystemSetupSecurityGuiDxe 461B2833-3DA5-4556-95F2-BA506131051B,ExtCfgDevDrvDxe 461DFED6-9D33-4AC0-8D25-57381ED0BBC0,AfterG3PolicyInit 46233426-744E-4763-958D-44B1200B320A,AmdMemoryHobInfoPeim 462CAA21-7614-4503-836E-8AB6F4662331,Enter_Setup 46310243-7B03-4132-BE44-2243FACA7CDD,CMDB 4635E90F-2432-4385-8B1F-5FE1B3C97747,SetupConfigUpdateDxeBigPineKey 4639A701-74F9-4635-B126-9FF048D6B0D0,AmiTseOemPortingVar17 46419146-3D6E-473C-A3AA-22AB404F197C,FjDxeServicesTableDxe 464FDC84-D53F-4A7B-B491-87991228F08B,FjUsbDeviceDxe 4651D8F7-874E-4895-B3F3-4FAD231C1825,AmdRaidRecovery 4658B698-EAB5-647A-987A-5A1665478FF6,A01SysPasswordSmm 465EA4B9-0FFC-40E7-9CC2-0F2CC3E66DFF,TouchscreenIdm 465FDE84-E8B0-B04B-A843-A03F68F617A9,ThunkPpiList 4660828D-842A-4F69-B31B-D393662B5240,LenovoDeviceGuardDxe 466A7291-50DF-4B40-A2EB-CEE67D5428C9,AmiTseOemPortingVar16 466C4F69-2CE5-4163-99E7-5A673F9C431C,VGAInformation 466DAAD5-4760-4F6E-9A7F-CEBE8455393E,FjPostScreenPostError 467313DE-4E30-43F1-943E-323F89845DB5,EfiBluetoothIoProtocolGuid 46805D61-0BB8-4680-A9BE-C96C751AB5A4,BaseIpmiLibNull 4698C2BD-A903-410E-AD1F-5EEF3A1AE422,OverClockSmiHandler 4698C8A1-4934-4A96-BB90-F7A55089CAFD,OemDxe 469AFF53-E625-4460-8F18-AA2206DAE5BE,DellDockSmm 469FC080-AEC1-11DF-927C-0002A5D5C51B,ArmPlatformPrePeiCore 46A2DC1D-6D2A-4558-BC0E-86B4B54B4236,OemCustomizeCsm16Config 46A9772D-D258-4210-9017-8799C57466BA,SwitchDellSystemID 46B94C2D-AF5D-4915-814D-159323AE780A,PowerButtonHandler 46C81ECA-E931-40B2-AECF-DFD8F00664EF,MtkWiFiDxe 46CF6120-9BDE-49B1-9D59-D35E355BF850,OdometerResetSmm 46D8ACDD-29C3-4013-81E8-37A425AB4F99,SystemVspCmosSmm 46DDB415-5244-49C7-9374-F0E298E7D386,EdkiiHttpTlsCipherList 46E3256A-E5C1-4D2A-8282-505AFB41CE65,DuetFwh 46E44855-BD60-4AB7-AB0D-A679B9447D77,EfiTcp6ProtocolGuid 46F3E816-66CA-4062-8A6C-623BFC90DD8E,FjSmbiosProducerDxe 46F56ACC-600B-450F-A59C-3A1A4AD4353E,PrmPkgTokenSpace 46F9D8DA-2670-44B2-9E42-C9B130CE2465,SmbiosMisc 46FAE56C-AC1E-4BAD-B152-549DCE042D80,BBSManagerLegacySmm 46FCD5D8-A9B3-42E3-904A-012F07BC5F5C,PowerOffSmm 470458CE-3E8A-40A7-BFCB-07755ABC4104,FjGabiGpio 47060D0C-BB2B-42D2-9A85-4DF1A2BFDFE2,BoardDxe 470A56EF-DC23-47C5-9D79-888E755C875F,HpLidSwitchingDxe 470CA824-F687-4148-885E-46311241C201,PchEhciPei 470CB248-E8AC-473C-BB4F-81069A1FE6FD,SmmFaultTolerantWriteDxe 470E1529-B79E-4E32-A0FE-6A156D29F9B2,EfiBootScriptSaveProtocolGuid 47144F62-B423-4524-AC6A-90106BAA89FB,AmiTpm20MeasureConfigurationInfoGuid 4717DA5F-E544-4B15-8D27-BACC292A832F,AmdSocFp6CznPei 471F5144-6037-4952-8B01-CFF586FDE6B3,AmiTseOemPortingVar26 47220BF6-19D4-45F8-A816-4618F0496402,OemDxeSample 4723931D-F8AD-45BF-AC1F-929F7BA88E7F,ValidateExtendedBiosRegionDxe 4727E62C-DF17-4000-89E3-7AEE74AFEC63,FjGabiEntrySmiDispatcherDxe 472A583E-70CF-465A-BB77-53ADFCDB5883,OCMR_DXE 4735EC40-F0B8-4102-A4C1-2E83B6B0C0BD,FchHuashanDxe 473BF006-83E1-4B25-BC6A-DA8A20555B59,TouchPad_Sensel 474933A5-E26E-4722-8BA8-851D0154228F,FjHddErase 4759E93E-8F44-448F-88A1-BD97FC47BEA5,AmdPspP2CmboxV2 47672552-43B3-4D7D-9020-07B3655D9F18,HeciTransportPei 47727552-A54B-4A84-8CC1-BFF23E239636,Tcg2PlatformPei 47727552-A54B-4A84-8CC1-BFF23E249637,XmlCliCommonPei 4772C6DA-506D-4C95-AC17-AE66885F6D53,DellGpe 4776E33F-DB47-479A-A25F-A1CD0AFAB38B,EfiKmsFormatAesxts128Guid 4778683F-B2BD-46B9-BF34-1BD00D5EC7F5,AmdMemoryHobInfoPeim 47889FB2-D671-4FAB-A0CA-DF0E44DF70D6,EfiPkcs7VerifyProtocolGuid 478C92A0-2622-42B7-A65D-5894169E4D24,ELabel 478FCDAD-760E-426C-869B-2F3345051750,DellHddSmartDxe 4795255C-7031-473C-AF8A-8BC7701ACCA5,fTPMAcpi 47970A28-8F4A-4CB2-91DE-BF344153189A,AmiCspFlashLibNull 47AA8FEE-48D0-11E4-A6D3-B8E8562CBAFA,SpiLockDxe 47AE3255-FA69-459F-D334-D8A57BF952A4,IspI2cMasterDxe 47B2138F-5A6B-4C65-9167-8740595D16AD,DellPasswordMgrSmm 47B7FA8C-F4BD-4AF6-8200-333086F0D2C8,EfiSmmReadyToLockProtocolGuid 47C1AC56-67DA-4BB0-BDFD-C4DB6CB9EEAB,ConsoleBootMsgDxe 47C7B221-C42A-11D2-8E57-00A0C969723B,EfiShellEnvironment2Guid 47C7B223-C42A-11D2-8E57-00A0C969723B,EfiShellInterfaceGuid 47DCFD49-F110-4EF8-98D4-D8C8883270DA,D01IhisiSmm 47E83D0C-2AF4-468D-9191-9CE468C18E9E,DellSmmPchGpioControl 47E87E67-FBC0-4C01-9002-4A0A6ECB92FF,AmiTseOemPortingVar4Guid 47EA2673-2533-4C07-AABA-69CE5A7C5D35,FspInit 47F229F9-C316-41A3-9F39-69EE22A4E8A8,LenovoEDU 47F48C99-CB23-4CF8-9D7D-CE7C86EF22A3,UsbTouchPanelDxe 47F8F645-8DEB-4304-BEE5-BA87D6C680E9,DellTcg2Pei 47FD99EB-C1E6-4F77-A31A-9F7FB4A8E7DE,menu_down_arrow 4807FC5F-CBF5-424A-869F-A63A133735BC,CvpCore 480F8AE9-0C46-4AA9-BC89-DB9FBA619806,EfiDpcProtocolGuid 4810C827-B373-47C6-B53E-AAD30E197CA1,LEMPostFlagSMMProtocol 481E9536-A9D8-4AD7-B2BD-27BD10E48D05,AmdDashPei 482D38C8-4A36-4242-4F03-7EAEC04B76EB,AmdSocFp6RnPei 48301049-EFDF-4DD4-8962-E26586123ADF,AmdMemoryHobInfoPeimRmb 4839023B-4C12-4EB2-B2B8-C91B42D878A0,IsctAcpi 48441C12-74EA-4FBD-BD1F-199CF39C5BE4,Kb902xFlashSmm 48459B6D-0E45-46AE-B5C4-E701A25A0D6D,PlatformCrisis 484C77C1-378E-41E4-B4F1-08A1555FB197,AsusWatchDogTimerDxe 48569430-485F-4ACC-A184-B35D11CB7560,AmdCpmUcsiDxe 4862AFF3-667C-5458-B274-A1C62DF8BA80,HeciInit 4866788F-6BA8-47D8-8306-ACF77F551046,FspNonVolatileStorageHob2 48705A28-FF4E-4573-8164-A026963D801F,LenovoCapsuleUpdateVariable 487647C2-3D08-4D02-9AA4-7CE4F7BD5A7B,PlatformSmiSecureCheckSmm 487784C5-6299-4BA6-B096-5CC5277CF757,EdkiiCapsuleUpdatePolicyProtocol 487AD797-E10F-4BAF-9144-660AB11C2E29,WiFiLauncher 4882FE88-7AC6-418F-BEC4-3AF4373A3374,FjBootVariableCheck 48925241-D2ED-46D4-8A87-A18D153C2802,SmmOemEeprom 48959D4F-4574-470E-AA4C-CF144D1C1678,InstallVerbtableDxe 4896840D-46BB-412B-A30A-A62ABFB3682F,SpsAcpiSsdt 489E23AB-F146-40D2-931D-90275F151DF1,EzTpmUpdNtcTpmFwUpdDrv 48A2E1DF-F2D4-490D-8677-F7A5C6FCC96A,USBIdm 48AB15DF-8693-4E84-91FA-2763137B8E52,FjGabiSystemMonitoring 48AB7F57-DC34-4F6C-A7D3-B0B5B0A74314,EfiIa32X64ErrorTypeMsCheckGuid 48B05831-3298-49CC-86CD-3020D95381E7,ConfigDataUpdater 48C7F9E6-8F68-49DE-B698-0D6A014890F7,SiInitPreMem 48D51913-F340-4798-83D7-5CAB3D5C6DA7,AppleEffaceableBCENOR 48D65EC7-8B1E-4965-9AC2-B7AD627209CE,SaveMemoryConfig 48E40CAD-A6D2-4756-8AEB-81F468D4A856,Tpm20ShutdownOverrideguid 48E796BD-4ED3-4755-A8CA-4CF437258241,EfiPeiPlatformTypeNeonCityFpgaPpi 48ECB431-FB72-45C0-A922-F458FE040BD5,EfiEdidOverrideProtocolGuid 48F40D93-AF30-4410-9F4A-FF61947E3F62,MAPS_WatchDogTimerPEI 48FB21BF-47E5-406C-A73E-D83D00767214,FwhFlashPeiLibNull 48FBAE5F-09AC-4BDA-AFD8-B30884B2422A,AfterG3Init 4904B42F-9FC0-4C2E-BB3F-A2AB35123530,DebugAgentLibNull 4906415D-4B32-4D28-8557-21C390D76A3C,DeleteUefiCaFromDb 490D0119-4448-440D-8F5C-F58FB53EE057,PolicyInitDxe 490E9D85-8AEF-4193-8E56-F734A9FFAC8B,PeiSerialPortPpiGuid 49152E77-1ADA-4764-B7A2-7AFEFED95E8B,EfiDebugImageInfoTableGuid 49174342-7108-409B-8BBE-65FDA85389F5,SmiHandlerProfile 492261E4-0659-424C-82B6-73274389E7A7,DellRaidRom 492CB3AE-66DB-4F1E-91AE-534C48F2F83D,WheaSupport 492F48F1-D0EE-41E9-BBE8-92C98A3CB7F1,FchTacomaSsdt 492F92B4-F0EA-4875-9C59-80CED0B90A31,M24Lc256Pei 49328871-FE65-4586-A013-0ADAAEA1DAFF,FvbServicesRuntimeDxeRA 493B5BAC-BB9E-4BF5-8379-20E2ACA98541,EfiSaInfoProtocol 493D3613-845F-413C-A7C5-1BD890CDC4E1,AIMTBatteryInfo 4941D466-4042-4C49-2B8B-8C83834C1379,PegaPeim 49450E14-2BA1-40E9-9755-6FE327F8E022,DeviceChangeDxe 49462CB7-0CFF-41AC-B139-51DFF93D8140,TrackPointElan 4953F720-006D-41F5-990D-0AC7742ABB60,IntelGigabitLan 4953F720-006D-41F5-990D-0AC7742ABB61,Intel10GLan 495AA584-63D4-45F0-A4EF-36042B19A201,AppleVariablePolicy 495D1734-05D3-400F-AF35-C8BCD3B85CC3,DellSmmSysBootDevicesPolicyProtocol 4973D70C-1A94-412A-A3E1-2A4C98782BFA,OemDisplayRule 497E8A5D-C807-420F-8D85-47E772C7E6E4,IwlTransDriver 49818FD1-7413-4C71-84CF-6BFE670C6496,PEbiosinterface 49970331-E3FA-4637-9ABC-3B7868676970,AcpiPlatform 49AEACA9-69BB-4EB2-B5F9-1BF9E2508779,FchTacomaPei 49B7F3E1-6C08-4A5B-911C-E9E397ED4178,AcpiVariableHobOnSmramReserveHobThunk 49BA7EEB-49F4-4BB4-85DE-FD4FE7369E58,PlatformCpuPolicyPei 49BEA775-FB94-455D-9826-8DB4A04DBD02,POSTCODE0A_BASEFWUPDATE_DXE 49C6AC30-F172-4EA4-8599-3925855B4D47,DellDiagLedSmm 49E6316C-CC1D-4978-B889-FFAFC5C61D0C,FjErrorDisplay 49EA041E-6752-42CA-B0B1-7344FE2546B7,ArmTimerDxe 49EAB1A6-AF2F-4064-9B29-D9655B3B8DED,DellAmtConfigPei 49EDB1C1-BF21-4761-BB12-EB0031AABB39,EfiPeiFirmwareVolumeInfoPpiGuid 49F71D68-D464-435A-9C95-11325BACEFE6,QuickI2c 49F8C35C-B9EF-402A-AB44-871C139EB00D,FastBootSetupDxe 49F8D341-339B-4E88-A1CC-7FFD00343C59,DellS3ResumeStatusCodePei 49FC00CF-BBD2-4FD4-B9D1-F084A51EB708,ApobSspDxe 4A0266FE-FE57-4738-80AB-146E46F03A65,EfiWheaBootProtocol 4A033533-D570-43F6-BA84-61CBA70165F8,DellUefiClass3ConfigPei 4A0C7D11-CA7F-4C59-8659-6BDA5132A5A8,DtprDxe 4A0F0F08-EE19-4FE2-85B1-9AB4718D17D0,BiosSelfHealingSmm 4A153B6E-85A1-4982-98F4-6A8CFCA4ABA1,EfiExtendedSalSensorServicesProtocol 4A1A67D0-E77A-4F0A-AF1D-CC412BE93DC9,AmdCcxZenZpDxe 4A1D0E66-5271-4E22-83FE-90921B748213,EfiDxeIpmiTransportProtocol 4A2B80A1-6573-4691-AD18-56704DB74A59,HpSmbiosDoneSmm 4A2F3948-C40A-469D-86E7-4EDC54133B46,FchKernDxe 4A3602BC-1A05-4C82-99B4-588CD2A32CD5,LegacySredir 4A37320B-3FB3-4365-9730-9E89C600395D,SmmDispatcher 4A3CA68B-7723-48FB-803D-578CC1FEC44D,AptioFwCapsule 4A3E00AD-B667-4054-95B3-2E8F305BD6DD,PostMessagePei 4A3ED697-E9BC-40FE-BDD5-6F99FCDCE9F4,AmdNbioAlibZpDxe 4A436225-A1B5-48E1-828C-4E8E625F3ED6,FjGabiEntrySmm 4A49FE16-F432-4B93-A722-932432A20BCF,EFI 4A4CA1C5-871C-45BB-8801-6910A7AA5812,PeiBoardConfig 4A4CA1C6-871C-45BB-8801-6910A7AA5807,BiosInfo 4A4ECE10-61EB-4FC4-8839-F7CFDD962074,IccPei 4A5227D3-0BEF-4CAA-ACBD-EC84446C5C6C,MiscGaIoDxe 4A538818-5AE0-4EB2-B2EB-488B23657022,FvMainCompact 4A59F1EA-A18D-40A6-8717-C16DC5A6ABB6,PchCrashLogAgent 4A5CA267-4016-460F-80EE-7B4C3D77FD62,DellUserInterfaceDxe 4A64C620-1CEF-40A0-BE1C-EED6B20ECCE9,MrcHealthDataInit 4A64F200-F99C-42F3-80C7-0D91E2D3EB5D,SioGpioControlDxe 4A69756B-209B-4D57-8810-142DAC6BB7B5,FchSandstoneSmmInit 4A6D890F-93C3-4B6D-A67D-5F2C4DCE347B,RuntimeSmm 4A785A9F-FE09-405D-FFFF-FFFFD7BD2694,XnoteGopVbiosDxe 4A88EC66-0570-4AE2-BBBC-335A5C9BC287,CsrRegTableDxe 4A8FBED0-78BB-4382-9C6D-D1429190003A,CoreDefaultSettings 4A935D71-7D9E-4423-80E5-F8F8F4043F9C,ReadyToBootNotifySmm 4A9B9DB8-EC62-4A92-818F-8AA0246D246E,MiscSubclassDxe 4AA65902-3ED3-43B3-A52B-FC1D6C077AE4,AhciBusPei 4AAAE990-5F1C-4BA3-B0CE-66754D383521,NvmExpressLegacySmm 4AAFD29D-68DF-49EE-8AA9-347D375665A7,EfiCertPkcs7Guid 4AAFE3AA-DEEE-4D81-80F3-82D226C71C4B,PvScsiPassThruDxe 4AC94F68-E651-4B38-A1D8-2D5DEFFA0F60,HDAudioSmi 4AC99A7C-1DCF-4A51-8F06-5EEDFE8A8864,CryptoServiceRuntimeDxe 4ACA697E-F883-446F-98F7-096416FFFFFF,OhciDxe 4AD920EF-4D6F-4915-982A-DC16677131D5,EfiPeiPlatformTypeCrescentCityPpi 4AE7E1E8-9DFE-4E3E-85B4-A5F6ABD470FB,Cpuid 4AEDAA65-00F5-42F8-B737-B6BD1A4B5C48,FlashUcAcmDxe 4AF92599-8E76-4BB4-BFD2-F5A66E3041D4,EfiOcData 4AFA46F5-F97E-4A48-B761-7979FAFCC4F1,PldmSmi 4B0165A9-61D6-4E23-A0B5-3EC79C2E30D5,DxePchPlatformPolicyProtocolGuid 4B1D21E9-4DCA-4820-8112-61E52B815EC1,RtCommonService 4B215191-9A25-43FD-86B5-74E7AF723315,AmiNvmePassThruProtocolGuid 4B26CDB7-EFD0-42AE-9211-8C1711C3695B,PcdStatusCodeDxe 4B28E4C7-FF36-4E10-93CF-A82159E777C5,ResetSystemRuntimeDxe 4B3029CC-6B98-47FB-BC96-76DCB80441F0,EfiDiskInfoUfsInterfaceGuid 4B3082A3-80C6-4D7E-9CD0-583917265DF1,AmiSmbiosNvramGuid 4B3828AE-0ACE-45B6-8CDB-DAFC28BBF8C5,VAROEM 4B41EB16-9EF1-4CA8-8DF2-8485467BA977,KEMhDisp 4B47D616-A8D6-4552-9D44-CCAD2E0F4CF9,IScsiConfigGuid 4B490AFA-F1C7-487A-8812-EF2DA0CEE92C,AmdFabricMdnDxe 4B4D31BE-88C6-446A-A4A9-4AD0F612B32E,EvaluateDefaults4FirstBootGuid 4B4F517C-0145-4783-A1D7-018D20797555,PciHsUartDxe 4B562E45-2EB2-4E5C-BF2D-5763F4304DFB,UsbMassStorageSmm 4B5DC1DF-1EAA-48B2-A7E9-EAC489A00B5C,EdkiiBootLogo2Protocol 4B5DE05E-16F4-11ED-861D-0242AC120003,EcFmpCapsuleDxe 4B5F17C7-B567-4E47-BF3D-E4C21EF33497,ExpansionSlotConfigPortingDxe 4B63A5D4-CB08-47CD-AFD9-BEA33A30F313,CrashLogDxe 4B63A5D4-CB09-47CD-AFD9-BEA44A30F315,PopUpRework 4B680E2D-0D63-4F62-B930-7AE995B9B3A3,SmBusDxe 4B6B21A1-F26B-404F-8694-DB1C63A1D92A,LenovoAt24Rf08EepromSmm 4B6E1294-08D2-4131-83E4-14BE9FCD42C1,AmdMemRestorePei 4B709C41-2066-4684-A92A-CFAE7C7563FC,UpdateMsrSmi 4B7AE29D-3937-400A-9955-528855209D9F,SecureBioEnableDxe 4B837B03-6587-4D19-B82B-EDFAD836C0A0,SecMain 4B844201-6FE9-41D1-B46F-DFFC34E492A2,EfiDprRegsProgrammed 4B87C89B-39A9-478F-A4B6-816A9EDC5087,DellVariable2Dxe 4B8C9600-9958-443D-BE30-F4B7A7E53463,DxeSmartPowerOn 4B94F4FD-8FB9-4CF1-A0D8-EA03B4467BE2,OemThermal 4B9D17B3-4DC9-45D9-8F06-BDD3F9A45E5C,AmdI2c3MasterDxe 4BAED146-B579-4959-8150-F93F1C7A0B68,IntelGraphicsPreMemPeim 4BB346D2-8076-4671-8BC9-7B95CBB9A6DF,MonoStatusCode 4BBAF21C-98AD-421E-B53C-9EC2E8A87A29,AmdPlatformRasRsPei 4BC80B15-255D-4858-8072-51D6D98CF90E,SetHostName 4BCB4D93-46D2-94EF-BB82-5C8671B24D26,CxlErrorLogDxe 4BD01172-54D3-4A97-B6A0-DA57474CDF3C,FjGabiEntrySmmBin 4BD0EB2F-3A2D-442E-822D-753516F75424,PchInitDxeTgl 4BD56BE3-4975-4D8A-A0AD-C491204B5D4D,EfiAdapterInfoUndiIpv6SupportGuid 4BDE935B-7700-4E73-823D-AF9B402270AC,CloudBootCreateEmbeddedBoot 4BEB3357-F146-4E10-9F60-E4797906AFDA,PostMessageConfigUtilDxe 4BEB96B4-C069-4C49-845F-1C1CC68CD8D6,FchShastaSsdt 4BEECAFE-5F02-432E-44B9-3CA5CA5DF189,AmdNbioBaseSspDxe 4BF759DC-8DC5-4B66-B3B1-37B7F9185B61,TDP1204 4BF98E30-17E0-11E9-B56E-0800200C9A66,ThermalSensors 4BFFC0D3-7E33-4370-8A28-3238FC33AD2F,DataStorageSmm 4C006CD9-19BA-4617-8483-609194A1ACFC,UsbInt13 4C19049F-4137-4DD3-9C10-8B97A83FFDFA,EfiMemoryTypeInformationGuid 4C26DF71-EBE7-4DEA-B5E2-0B5980433908,GetAddrInfo 4C47E0B5-E369-469F-B359-28DBD736A131,PspSmm 4C494E55-5849-5342-4554-544552212121,SlpSupport 4C51A7BA-7195-442D-8792-BEEA6E2FF6EC,EfiLegacyBiosThunkProtocol 4C5C6A74-BAB7-46D6-8688-3B2E7F246E3F,SataController 4C612C0F-2CC9-4275-9484-C73FA66CA987,FjMacAddressPassThroughDriverBin 4C61D013-ECA5-4785-9625-B267A00E7721,LenovoTrustedDeviceSetupUIDxe 4C61D329-7746-40B4-98D0-54514A41AC22,PublicWmi 4C6E0267-C77D-410D-8100-1495911A989D,MetronomeDxe 4C7D1568-CF73-4676-A079-16F7F9600CCC,LenovoSecuritySmiDispatch 4C7E45BC-8A23-26CD-94AD-5D2C263F25FE,EfiIioRasProtocol 4C862FC6-0E54-4E36-8C8F-FF6F3167951F,FaultTolerantWriteLiteDxe 4C8A2451-C207-405B-9694-99EA13251341,EfiDebugMaskProtocolGuid 4C8BDF60-2085-4577-8A46-96CB180967BC,Tpm20Acpi 4C91B810-A28D-4BBC-BDF0-30A9C6C7EEC2,OemLOGO 4C9BA841-0A69-4567-9E37-42CBF5F7F269,OemGlobalNvsDxe 4CA16857-A0C5-4E46-BE0F-98A4BB314E5D,MemTest 4CA8A1EF-D4DA-4212-9F4D-41638E68B6C1,MemoryStorageChipsetDxe 4CBB6611-3608-492B-92A7-DD92FD6FE4FE,OEMBOARDPei 4CC14F19-C626-4AB6-9DEA-CA6C01FD10CD,AsusHeader 4CC771CB-777B-4F64-B0F9-C70ED4355D1C,MediaCradReaderConfigSmm 4CD28F5E-4BBB-4602-ACB8-741BAA7EB313,AmiTseOemPortingVar19 4CD97B67-12BB-4FC5-8B2A-580ADB6A6368,AmiTseOemPortingVar12 4CD9A941-CEF5-4940-9C1C-C5C33C27024B,ODMPowerLedProtocol 4CDF832E-1487-4EB5-BCBA-FE6D3849C74D,PdSolutionPei 4CE9D7AE-61B2-4461-9446-AB0376B4A7F7,FboSce 4CEC368E-8E8E-4D71-8BE1-958C45FC8A53,EfiSmmPeriodicTimerDispatch2ProtocolGuid 4CEF31DA-8682-4274-9CC4-AEE7516A5E7B,CapsuleApp 4CF36A40-5726-4A67-A94C-2CC87822E760,HpDtDxe 4CF484CD-135F-4FDC-BAFB-1AA104B48D36,HfsPlusDxe 4CF5B200-68B8-4CA5-9EEC-B23E3F50029A,EfiPciIoProtocolGuid 4CFD8C50-6368-4398-A7C7-ECCC2C51E152,CloudBmrDrv 4D00EF14-C4E0-426B-81B7-30A00A14AAD6,NandFlash 4D06B832-6987-40F2-B76D-D170B42DB182,TrEEPhysicalPresenceDxe 4D09FDA2-AE1C-4D47-9CD1-6B548A15CACA,EfiPlatformTypeWolfPassProtocol 4D0E0FBB-AD24-4213-B9B4-692B6662CB36,FjTpmDisable 4D0EBC36-88D7-492C-AF46-677BA21F6D81,SetupConfigUpdateDxeCLX64L 4D1403BF-A1B8-45FF-A5F0-CAD61CF82A28,DellMemorySlotConfigPei 4D1514D2-FBDE-49C6-B20A-A40288A0D4AA,HstiIhvSmm 4D1EFB42-6A65-4C9C-81A7-FE2A6B885DA8,EventLogPei 4D20583A-7765-4E7A-8A67-DCDE74EE3EC5,HttpBootConfigGuid 4D2ADE73-B751-4C68-9FA2-61909EBC59EA,KEMhMarsDxe 4D2C22F3-C0E5-419E-8978-BC9C3CF843A8,DellFmpGbe 4D2E57EE-0E3F-44DD-93C4-D3B57E96945D,CpuS3DataDxe 4D330321-025F-4AAC-90D8-5ED900173B63,EfiDriverDiagnostics2ProtocolGuid 4D35A5A7-622E-4955-A5D2-CDA812940D74,FwBlockService 4D3689FA-749D-4F43-85B2-8C23065A04D5,FprSynapticsPrometheusDriver 4D3708A0-6D9B-47D3-AD87-E80C781BC0A7,AmdApcbDxeV3 4D37DA42-3A0C-4EDA-B9EB-BC0E1DB4713B,PpisNeededByDxeCorePei 4D392BA5-2BAA-44F9-96C4-DA443A6F3483,PhMicrocodeCheckPei 4D3AC0C9-5871-41E5-A6C8-171CDF5A6463,DL3x00UsbUndiDxe 4D426243-BB19-4F62-9D37-A6D92DCC2628,SmbiosOverride 4D478675-9D19-4EB2-9960-CBC88D6C3935,PlatformHmacShaSmm 4D48238D-6A23-4BEB-ADA2-D24FD833CC2C,HashService 4D4861C1-A82E-4E5F-9DD8-B00B30B84DDC,HeciTransportSmm 4D5640E5-2702-4DF8-88F4-564886FC43DC,PeiTxtScleanPpi 4D62B5E9-71C8-412A-8604-878C921D9AD1,SystemErrorLogSmm 4D6C0496-8DE4-4AF2-9A2E-9BE5B9156AC5,AmiPerfTuneDataHob 4D7161BC-BE35-43AF-879B-956EB37983D6,AmiMemoryPresentFunctionOverrideGuid 4D7267F0-F48C-4050-AE55-8FE1708096A0,ASRockNetFtpBin 4D72D689-CB91-4248-A60E-333C98276DDE,FjDeviceFwUpdateDxe 4D7C01B0-495C-4070-B0AA-875A64E61C67,FjHddSmm 4D85D326-58E0-43FD-9F63-58DF46789B7F,PciResourceAlloc 4D8B155B-C059-4C8F-8926-06FD4331DB8A,GetPcdInfoPpiGuid 4D8B77D9-E923-48F8-B070-4053D78B7E56,Tpm12DeviceLibTcg 4D922231-4F16-468F-A771-A1E5C29713C9,OemDisplayRule 4D9CBEF0-15A0-4D0C-83DB-5213E710C23F,Tcg2ConfigDxe 4DA62F29-32BA-4470-94FE-D7C84260D427,SecureBioXhci 4DB83B45-9CA8-41ED-9FC7-C3FC00267B8E,CountryCode 4DC2E02D-D5FB-4330-BD53-53797347DF01,HwmFanDxe 4DCAAB0A-1990-4352-8D2F-2D8F135598A5,EslTcp4ServiceGuid 4DCBF9BA-DEC1-42B0-8A09-01555694F6CF,GbtCustomizeButtonSmm 4DCD2C72-ECBD-4F47-84BB-2B3BD2BFF90B,UsbCrisisEnumPei 4DCE95D9-37A9-4DDC-8143-326CE9A49B3A,AmdSocFp8StxKrkDxe 4DD4DF07-3278-406F-B5DE-EC7EECC650E1,CrbPxeUefiDriver 4DDA8138-47CD-4019-9178-115003431B21,SWSMI_Shadow 4DDD67E7-BDF5-4473-8AB0-02821C084338,MemorySelfRepair 4DE01DE6-7CBB-4786-9F2A-9B9C7C97AC06,S3RestoreAcpiPei 4DE67E0A-162C-4999-A5B8-BA0E5D43284C,CmosChecksum 4DE9A180-FA40-4899-AB66-4E6325B0315D,GpioExpanderDxe 4DF17188-F320-4715-82DA-A05DEF51F111,AmdCpmOemInitPeim 4DF17188-F320-4715-82DA-A05DEF51F1D8,AmdCpmOemRvInitPeim 4DF19259-DC71-4D46-BEF1-357BB578C418,EfiPs2PolicyProtocolGuid 4DF53F89-D421-4F9D-8392-BE3BECC6288E,AhciInt13Dxe 4DF590C2-43CB-4ABE-BE51-0B55D3000EA6,SystemSetupCapsuleFromStorageDxe 4DF75915-6C88-4EF4-995D-834D866DBD20,CpuSetAgesaPcd 4DFA1C9F-D98D-43B9-8832-059CADEBE436,PeiPortingSample 4E02A019-85B1-4EC9-9A38-B7DF0508397C,OemMFGDonePcd 4E0F9BD4-E338-4B26-843E-BD3AD9B2837B,PRKeyGuid 4E11E955-CCCA-11D4-BD0D-0080C73C8881,EfiWinNtGopGuid 4E1356C2-0EED-463F-8147-9933ABDBC7D5,EfiKmsFormatRsasha2563072Guid 4E173307-92DB-4A4F-9A8E-86A85649B405,EfiAdminPasswordHob 4E1C4F95-90EA-47DE-9ACC-B8920189A1F5,SecPeiFspPlatformSecLibSample 4E2066E9-7C76-4B59-A30C-4AE1E2DC7F75,DellSmartAmpSmm 4E23D5B5-BF03-4CE1-B295-13E615D13A61,MpmPldmBase 4E245C15-66E1-47C4-92B0-0F5727591720,UnlockNextHddUserPassword 4E26451F-1989-4E2E-8D79-68947FE878BB,SDCardReadOnlyMode 4E28CA50-D582-44AC-A11F-E3D56526DB34,EdkiiPiSmmCommunicationRegionTableGuid 4E292F96-D843-4A55-A8C2-D481F27EBEEE,EfiEventNotificationTypeCpeGuid 4E304BC0-3B03-4A97-BB55-91375189A31D,iFlashDxeBin 4E32566D-8E9E-4F52-81D3-5BB9715F9727,OvmfPkKek1AppPrefix 4E348EF9-F02D-4DFB-847C-FC5CA755E426,FchSmmDispatcher 4E37AEAE-F9D7-464D-9969-0FFBEB6F423F,AsusRomLayoutDxe 4E3A82E6-E43F-460A-866E-9B5AAB804448,EslIp4ServiceGuid 4E3F9A17-ACA9-42F3-A8CC-E7340FB6DB6E,MemTopology 4E4E97F9-63FF-4BDA-90BB-C6F943FA5100,PlatformStatusCodeHandlerSmm2 4E509696-E33F-408E-9AF5-CC8C20065385,SoftwareGuardConfigGuid 4E537B6B-C6A9-474F-A023-D512CD141A83,QrCodeGeneratorDxe 4E5B4FEA-936A-45BC-AC6A-2F8F14A6C29E,PrmConfigProtocol 4E613EA8-C01C-4BA7-BA09-38BD86815F85,FjPasswordServiceSmm 4E694D04-318B-4F89-A3B3-BA3560FD389E,HddSetupVarDefaults 4E6D9DEE-CAB0-413B-9F6E-59869DD364F6,CmosInterfaceCoreDxe 4E75CCB0-A653-4C76-A213-5B2DBCD2A9EF,TouchDriver 4E76928F-50AD-4334-B06B-A84213108A57,NtFwhPpiGuid 4E77C4E1-7879-4A1D-8A88-584BC2CD58C5,HpTriggerEfiDriverLoad 4E7AF417-C200-400A-9D18-865ADAD30896,AmiDddtPresentFlagHob 4E82091E-32A1-4689-8A00-CDE41ED63CDD,SioDxeInit 4E873773-8391-4E47-B7F4-CAFBDCC4B204,EfiDmaRemapProtocol 4E88068B-41B2-4E05-893C-DB0B43F7D348,FmpDxe 4E8EEBDC-CF55-4FB6-AA77-984AB53DE823,EmmcSoftwareTuning 4E8F4EBB-64B9-4E05-9B18-4CFE49235097,EfiMemorySubClassGuid 4E939DE9-D948-4B0F-88ED-E6E1CE517C1E,EdkiiIoMmuProtocol 4E98A9FE-DF5A-4136-B922-4FB970CBD733,CpuSmm 4E9BF661-4891-F0DF-2718-2EB41EAB5E43,CpuPowerManagementSmm 4EA43463-747C-46EB-97FB-B0E5C5F05306,UsbMouseAbsolutePointerDxe 4EA97C46-7491-4DFD-B442-747010F3CE5F,Main 4EA97C46-7491-4DFD-B542-747010F3CE7F,HpNetworkTransferWorker 4EA9D4FE-E6F6-410B-8037-0F98B5968B65,NbciEfi 4EA9D4FE-E6F6-410B-9037-0F98B5968B65,Mxm3Efi 4EB6E09C-D256-4E1E-B50A-874BD284B3DE,FspSiliconInitDonePpiGuid 4EBAAA68-EC78-4AF4-B5A8-6E9A9ECCF3FF,CombinedFWUpdate 4EC8B120-8307-11E0-BC91-0002A5D5C51B,PL011Uart 4ECB6C53-C641-4370-8CB2-3B0E496E8378,EfiExtendedSalVariableServicesProtocolGuid 4ECEC19C-6E5F-4815-8342-B55F2CC5DFC1,LenovoVproHiiDxe 4ED42C6A-AC97-46C9-9758-E1FA769D3AFA,OemIceSetup 4ED4BF27-4092-42E9-807D-527B1D00C9BD,EfiHobMemoryAllocStackGuid 4ED73FC1-3AE7-4BAF-98DE-9F2AEEAA00AF,FjS5WakeSmm 4ED88276-D4DF-4D03-8661-295801B2DA58,FastBootExceptionInfoHob 4EDD7BAF-BA98-47D8-85BF-831D98E786CD,Sdev 4EECDF66-C506-4458-9C0D-70021828FB31,SpiProtectionSmm 4EEF2D60-0E00-11DE-8C30-0800200C9A66,SataController 4EF83446-DCC5-46BE-A9A8-870390A6E28B,AmdAblPerformanceDxe 4EFA0DB6-26DC-4BB1-A76F-14BC630C7B3C,AmtForcePushPetHob 4EFA14DD-2A34-491C-B81E-7D05B210FCFA,RemapPwdPei 4EFC51DA-23A6-4790-A292-4985C7F5CDEF,LenovoComputraceEnablerDxe 4EFDD949-E871-4A21-96B6-B161B271B9BF,BiosIdentifiedInfo 4EFFB560-B28B-4E57-9DAD-4344E32EA3BA,MiscSubclass 4F08F6B4-640B-4F54-840F-F225BD00B9F3,SpiFvbServiceDxe 4F0DB016-304D-4E82-8551-7D2F39436D24,EmulatedEepromSmm 4F0F582E-6D6B-4BC0-9088-1819BAAF82D8,SystemBiosSelfHealingTestPei 4F11EC16-E52C-4C68-A34D-C83F4A453FF9,XnoteEspPeim 4F1F379F-2A62-48BB-AC34-D3F135C6E2B7,PcatSingleSegmentPciCfg2Pei 4F20C254-75D0-437C-93AB-CD2F88795E88,FjGabiIntrusionAbstraction 4F383D8B-A40E-44B6-85E8-F094BE746F88,FjIbvSfuControlAbstractionSmmProtocol 4F3AD257-79F5-43D1-8870-9D398080D908,IioInit 4F44FA64-A8D6-4C19-B61D-63109D77D3D2,AmiVerifyTcgVariablesGuid 4F4EA4C0-8603-4AB8-8C4B-C5145C8C86F6,RaidDriverSmm 4F4EF7F0-AA29-4CE9-BA41-643E0123A99F,HiiResourceSamleFormSetGuid 4F4FF580-B8A0-4332-A6B0-E2E568E36C9C,ASFVerbosity 4F51C243-7CEE-4144-8EED-234AC2DABD53,EfiPeiPlatformTypeLightningRidgeEX8S1NPpi 4F5890C7-F90E-42BA-9778-551BB6E51216,Dec1515Dxe 4F6878EA-FD51-48B2-9962-5CEFBBF6CEA2,TccDxe 4F6C5507-232F-4787-B95E-72F862490CB1,EventExitBootServicesFailedGuid 4F6DBF89-C97B-4F60-8178-22A82F96D062,MeLockStatusDxe 4F745D41-5598-4CF0-8A0A-923813DF9554,SmmUsbMassStorage 4F745D41-5598-4CF0-8A0A-923813DF9555,M2Smm 4F745D41-5598-4CF0-8A0A-923813DF9556,SmmCsm 4F792E68-E8C8-794E-B1D8-3703F3F2D5A5,EmulatorPkgTokenSpaceGuid 4F803CD9-3014-433E-9921-79BD8F6EA3E0,UcsiRefactorPd 4F821C7C-8E33-412A-AE63-D149F376CD1B,SmmWheaDxe 4F84E985-4C3B-4825-9F42-889109019422,GopConfigPei 4F874E36-4736-332F-B75A-BA8753217CD9,SioSmiDispatcher 4F89E208-E144-4804-9EC8-0F894F7E36D7,EfiPeiSectionExtractionPpiGuid 4F9147CB-972E-4F5C-B869-A02182C9D93C,PataController 4F921013-4F71-4C6C-BCF8-419B2B801932,SetupBrowser 4F948815-B4B9-43CB-8A33-90E060B34955,EfiUdp6ProtocolGuid 4F95E00D-6B84-40D1-B2A2-FDF718537183,WlanPei 4F967D7A-D55F-4B53-BDD9-269A80785D16,AdlSemaMiscellaneousDxe 4F9883C7-B309-4152-ACF3-223850478D88,SmcPkgTokenSpace 4FA09F49-AE5F-4D7E-870B-080030E1B63E,FvBbPei 4FA7E1F2-CE8B-4D38-A3F8-342DC4515446,IioCfgUpdateDxeNeonCityEPRP 4FAB12FA-21D5-42A2-8260-E0CFA50C899B,MonolithicCapsuleDxe 4FB0D5AF-D140-4078-83B5-39013075CEBB,FjBeepOnPOSTPei 4FB2CE1F-1A3A-42E3-BD0C-7B84F954189A,AcpiCallbacksSmm 4FB2F0D0-7183-4BFC-9E65-11A4031847D2,AmdCpmPlatformOscTableInstall 4FBB790E-71E9-42FF-9F8C-469C4FD0A04A,OpromCallback 4FC0733F-6FD2-491B-A890-5374521BF48F,AmiBoardInfo2ProtocolGuid 4FD14235-47A1-E350-123F-75925306279D,AmdSocAm4RnDxe 4FD1BA49-8F90-471A-A2C9-173C7A732FD0,SeCfTPMPolicyPpiGuid 4FD2D553-DABD-4C17-ADC1-32C8F3EDAAD9,LcdShadowDxe 4FD49958-F29D-4019-80F6-0700699D9540,OemWwanSmm 4FD5F726-BED2-410D-9097-C679DE190854,SetupLoadDefaultShp 4FDBCCB7-E829-4B4C-8887-B23FD7254B85,EfiRedfishPkgTokenSpace 4FE0ADEE-606B-4375-90B5-65698DFD0B9B,IntelUefiRaidDiskInfo 4FE772E8-FE3E-4086-B638-8C493C490488,PhysicalPresencePei 4FEBE43F-256E-4C82-A20A-BC0D03C72185,PTN3460CfgPei 4FED14B0-2B0C-4E20-9071-61094B1C4B55,EzFlashInterfaceWrapper 4FEEDBF2-3E3C-4D99-AD5F-D92195DDEDD6,FjWatchdogGHO 4FF26BC4-694E-4994-89C2-E9E44690D174,HpNvErrorLog 4FF2E88A-A404-46F7-9A2A-35E00844F6E6,SpiDeviceDxe 4FF3AA5B-105C-4409-87CD-59C15B7FC5D8,DellGlobalNvsDxe 4FF7A6BC-EE56-407B-A593-999294C615FC,DellErrorMsg 4FFF2014-2086-4EE6-9B58-886D1967861C,SecPeiDxeTimerLibUefiCpu 5007A40E-A5E0-44F7-86AE-662F9A91DA26,FvOnFv2Thunk 500CC042-E300-4759-9211-868B9AD0E207,FjUIDxe 5011522C-7B0E-4ACB-8E30-9B1D133CF2E0,FmpAuthenticationLibNull 5014B9B7-B3FE-4D0D-8F5A-2B27132B7779,AdvBdsDxe 501BD93A-F1A9-4F4C-A946-7867DF975537,LenovoEn25Qh64FlashPartSmm 501C5B87-8181-4AE5-A6B2-D05ACE0D83DE,SmcOobPlatformPolicyCallback 501E9589-8E8E-4DAF-A466-09422613199D,PrmSamplePrint 501F30E9-D14F-47DA-AE60-B101E4189D07,AhciInt13Smm 5023B95C-DB26-429B-A648-BD47664C8012,AmiMediaDevicePath 5029FBE0-39E9-43F8-A9F0-E78E1789FC27,SystemSwSmiAllocatorDxe 502B04F3-71AB-47B4-BEAE-4736EA190AA4,PciDxeInit 502D4D8C-E607-4613-B187-3ACAB0169AD7,DellDualBootBlockDxe 502D8541-01BE-4FB3-8986-3F9916548164,DellTpmSmm 503A80A4-34C3-47B4-BB6E-00AD1F36CF47,AmdLegacyInterrupt 503E70FE-047A-410B-A55F-4F63C9382C1E,CpuIo2OnCpuIoThunk 5045A8A6-7D74-4037-AAED-1449DBAEBCCC,PciLookupTableDxe 504F2F1F-E7EB-46F9-AA07-0606F311AA1A,SmmPlatform 5053697E-2CBC-4819-90D9-0580DEEE5754,EfiCapsuleArchProtocolGuid 50578334-FCFD-4DCA-B3AF-47DD76E946CF,AmdNbioDxe 5058F21C-BC34-11D4-BD18-0080C73C8881,Fat2 506533A6-E626-4500-B14F-17939C0E5B60,AcpiSupportDxe 506F83CD-5C6F-47F1-9FE1-BEE297309D32,SpsPeiPreMem 5074C00E-698B-4763-91E6-41663F6CC7C9,PBSPeiInitPei 50827A85-7639-42E0-99E7-156405E1790D,HpPlatformErrorHandler 508A61DC-2C57-4848-A54A-58015179C94A,ApplePowerState 5091388A-4BB6-4DA5-A493-5EE7A90CEA5E,OemBoardID 50A18017-37AD-8743-BCF2-DF1A8FF12FAB,EmuReset 50AE2DAB-3A4C-4F77-85EA-FC4271FC376A,Ps2WakeupSmm 50AE892F-E01C-46BC-9E47-064E2503776B,NICIdm 50B4FAD4-9D0D-440B-812C-D8E3EC21244D,XhciHandlerCommon 50BEA1E5-A2C5-46E9-9B3A-59596516B00A,ArmVirtVariable 50C511E0-3C68-4FD1-B7EC-2589657EA225,IDDxe 50C59A68-1920-4B6E-A296-2D37C0619EB9,SetupMenuSmm 50C86A39-C194-4B03-8B4E-22CE463BB2A0,DellSmmDiagLeds 50D51651-E5EA-4C7A-9DEF-7CF8A63AFC91,AmdPspDxeV2Phx 50DC5C90-1D33-4FD6-87E5-063B1DFA2170,AmiSerialProtocolGuid 50DE3789-BD33-4AEF-B182-7FE9183E88DA,DellErrorHandlerSmmProtocolGuidVer2 50E22E0A-4103-9999-9BE0-AA8CECBCE694,AmdRasApeiDxe 50EE664D-7703-42C3-9E69-8C89DE70D1D5,SioInit 50F6096D-7C98-4C78-9A1D-C5A1833B6A88,AmiTcgNvflagSample 50FB1120-0FB7-4B1C-9CEE-071B97703827,LGSetupPreservePolicyRuntime 5101D37B-CD13-493C-BD7C-40A3E45FC19B,UfsPciHcDxe 5104F56C-AA34-47E3-B4C1-1BF301C20758,PdmDxe 510550E0-BBCE-4EBF-BBA0-946E3D18E705,PhEmulateKbcSmm 51080191-ED06-4AA0-BFD7-F04837CF70DB,SbRomArmorSmm 510DF6A1-B6C1-4948-AEE7-59F220F898BD,SataController 510F8CC8-8500-4D16-A298-96D28584D6C2,DellPolicySmm 510FDE31-692D-4D86-8DB7-7F460C0A7B7E,PprVlsErrorLogListener 511110E8-A64B-4B88-A473-E0D296AF5352,TouchDriver 51116915-C34B-4D8E-86DB-6A70F2E60DAA,NVMe 51116915-C34B-4D8E-86DB-6A70F2E60DAC,IOBufferCopyController 5111B2D3-B8F7-45BF-8A63-2A1678F67A41,PeiSmmControl 5112A2AA-E175-477E-A4E4-D0B7E689BA9F,SystemEventLogDxe 5113378D-C3A5-4B6C-8F5C-9FA82CBE4F6B,BiosRecoveryPei 51175C7F-0360-4042-A3F2-F17222B400AC,SbFlashControllerSmm 511760B2-E47D-44B4-8366-0F2CD3BC1D38,DellSmmRadioDeviceProtocol 51177887-A697-436F-937F-1CDC421A3DCB,AmdRasRsServiceDxe 5122FA7B-17A3-4A8B-89AE-A93ADE92EADF,DigitalThermalSensor 51271E13-7DE3-43AF-8BC2-71AD3B824325,ShellMapGuid 512EC22F-CFF1-4101-BE42-6FA79BC50374,HpLibArchiveWorker 5138B5C5-9369-48EC-5B97-38A2F7096675,PrevBootErrSrcHob 5142E880-97AC-4AB3-8F06-F36765DF7066,OemACRecoveryDxe 5145C2AC-17E1-44A9-83CD-AC8724805AD2,AmiPspPlatform 5147A340-1B75-43F4-BA0F-46393D697FD4,FjGabiSettingsSmm 5148B18E-F1EC-41A8-9292-E2592E6F7547,FlabLoadPvUadmDxe 514A1936-2C6E-437F-B068-04CB15F53AF9,AmdRasRsDxe 514D2AFD-2096-4283-9DA6-700CD27DC7A5,ScSmmIoTrapControlGuid 515B224B-B059-460B-85C7-C28658F4B898,LenovoHpmSmm 515DFD4E-2D7E-40D1-8C22-8AD3CD224325,RasSmiHandler 515FAC42-8580-4CE6-91C3-AFF7D15694CD,SmbiosMiscDxe 5162AE21-17ED-45B7-AA9D-E669A3A33525,DellStorageAgentSmmProtocol 5167FD5D-AAA2-4FE1-9D0D-5CFCAB36C14C,LegacyRegion2OnLegacyRegionThunk 51688885-024C-439B-B3DE-9C08E8F591DB,SmmEventLog 5169AF60-8C5A-4243-B3E9-56C56D18EE26,SmmIpmiProtocolGuid 51739E2A-A022-4D73-ADB9-91F0C9BC7142,MpServicesOnFrameworkMpServicesThunk 517DC096-EFFC-4937-8002-87F8B1BF94BF,ResetHandler 5187359B-790D-425B-A593-CA1CDB3CEBAD,EfiTcpSockProtocol 518FBAE6-76DF-4A3A-860D-3E416ED9F203,SmmInt15Handler 5190E4AD-E902-462E-9509-A7AB1F51B27C,KEMhSpiMux 51924AE9-BE81-4820-94BA-7C9546E702D0,Tcg2PpVendorLibNull 5199296F-2808-4AFA-94C4-99F6B06C871E,ACPIS4Smm 519D1BDE-27B4-4408-990D-FEFDB6B5220B,ServiceResetSmm 519EAE59-C1D0-4A1C-8B21-F06B620DAD21,RedfishPlatformDxe 519FE23A-7C3D-40A9-9F65-B911EA1930E1,HpLegacyFlashWrapper 51AA59DE-FDF2-4EA3-BC63-875FB7842EE9,EfiHashAlgorithmSha256Guid 51AA65FC-82B6-49E6-95E2-E6827A8D7DB4,AmiHddHpaProtocolGuid 51AF821C-ADAF-4ABC-9FBF-26CD5245BA22,DellSmmGpioControlProtocol 51B632C7-3B9E-4474-8D4A-503AC2B0ECB2,AEPFreezeLockSmm 51BCC804-428A-4A6A-B352-E4844AED9105,NtfsPei 51BF97A8-D391-473F-BD87-72E21253D9CD,GpioV2ProtocolInitSmmPch 51C4C059-67F0-4E3C-9A55-FF42A8291C8C,PeiSmbusLibSmbusPpi 51C9DF0F-21B9-1015-9151-12872F032A51,HardwareHealthManagementPei 51C9F40C-5243-4473-B265-B3C8FFAFF9FA,Crc32SectionExtractDxe 51CCF399-4FDF-4E55-A45B-E123F84D456A,ConPlatformDxe 51D27BF0-6414-4C69-AE20-BF017C326505,WmiSetupUnderOsSmm 51D2DA4C-5950-43A8-B8D6-133A686072EA,FchSmbusDxe 51D4BACC-E70A-4136-9426-546973ED938C,LenovoPlatformS3SaveDxe 51D528BA-9730-4460-ABD4-B1E5E3A472ED,PcieLanePEI 51D687C8-196E-4CFE-8A0C-8368980EA8B6,DellChassisConfigSmm 51DD345A-B3FA-4119-B5D0-C5FAD7F37B31,DualBiosPei 51E1CEC6-1F2C-4BF2-988E-CA3EAB7AEF37,FjSystemDataRt 51E9B4F9-555D-476C-8BB5-BD18D9A68878,EfiAmiSioProtocolGuid 51F88613-4F29-482F-B055-30FA50F530FA,OemWlanAutoDisConnect 51FAE33E-9C59-4926-857F-65997BD4137F,VariablePolicyStubDxe 5200907B-59FF-49E7-9AF9-EE2DFA83624F,DellStatusServicePeiInit 520B070E-83AD-4135-AD62-07DFBD66396A,Armani_BatteryInfoDxe 520C3847-71A0-40E7-A895-8C8997C33455,AmdMemFeatPei 520F9C58-9F9D-48C6-A0A0-D9FE6D8FDE77,LenovoTdtAm 5210F89F-899E-4075-81F9-35594E77CB9D,CcgOnlyPei 5215290B-7FE9-44D4-8DDB-251166EEBE7F,OemMonotonicDxe 52198807-4F18-4CD8-888C-B6874D5A85BF,DellSoftKbd 522670C3-3D4E-4EC3-8A83-34467DAFE4BA,SmmSxDispatch2OnSmmSxDispatchThunk 52272F15-C22F-4B53-830A-FBEF9C3F643B,RealtekLan 5229AE5A-AB8E-4693-A8FD-B7D7CBCE694C,PTSataController 52312CDF-D4A9-453E-A9DF-9FDAF51CD622,DellSmmDelay 523F3049-819A-4998-8405-7848BC8C4942,BiosCfgTool 523FA0E8-8639-47BB-B859-939A450DBF77,EnhancedFat 52416508-181C-4899-8CCA-E020A2BD3F18,ODMSMM 5242AADB-BDAB-4B92-B7D5-A58B6E0EEE6B,IchSmbusArpDisabledPei 5243ED17-6742-484C-8922-F2FDB1DC2725,WmiSensorHandler 5244407B-C852-480D-BAB5-938C832C5581,ASRockSIPei 524685A0-89A0-11E3-9D4D-BFA9F6A40308,AndroidFastbootPlatformProtocolGuid 524B4384-D632-4862-9D3A-6D82C9E85825,SystemInventoryInfo 524E19D8-8066-4BEB-8BBD-6FF9E405B3A7,MeResiliencyDxe 52534DC0-3328-4153-A17C-9FA795654C05,FjGpioGHODxe 5255DFB0-0E7C-47DC-95A7-0B838DA09BB0,UpiPlatformHooksPeim 525B672C-8C8F-0361-AE8E-565EE0F563B8,MemInfoDxe 5261213D-3A3D-441E-B3AF-21D3F7A4CA17,EfiScsiBusProtocol 52715B77-04A5-487A-B980-CDC371B5BEC8,AsusPostErrPei 5272EFC4-D506-4CED-A415-DA68B0515120,PciDxeInit 527EA834-EBB5-44EC-AA27-BC0FDCC0226C,FjSecureServicesDxe 52888EAE-5B10-47D0-A87F-B822ABA0CAF4,EfiPeiCoreFvLocationPpi 5291C916-8638-4296-BD84-3F4ACBB2D5A3,AmdAgesaParameterGroupPei 52978AFB-F8D1-4B0F-974A-0B7C9445E4EB,AmdCcxZen3CznPei 529D3F93-E8E9-4E73-B1E1-BDF6A9D50113,ArpDxe 52A7AA5D-3B23-4F06-FFFF-FFFFA95DD84E,XnoteSetupSecurityDxe 52A88B2A-65FD-4951-8B25-06FB6598128B,DellSpiPartEon 52A9B223-FAB8-4A24-AEA6-461A59BD3F33,AmdSmbiosDxe 52B3DBA7-9565-48E8-8E13-EC7196721B3C,PlatformInfoPei 52BAF47B-6920-4304-A031-A45CC345DA3F,POSTCODE01_TPM_CONFIG_POLICY_SMM 52C05B14-0B98-496C-BC3B-04B50211D680,PeiCore 52C78312-8EDC-4233-98F2-1A1AA5E388A5,EfiNvmExpressPassThruProtocolGuid 52C877FD-C27C-4779-B750-7880B28B4306,SetupConfigUpdateDxeNeonCityEPRP 52CE9845-5AF4-43E2-BAFD-230812547AC2,PlatformGpioProtocolGuid 52DAA304-DEB3-449B-AFB8-A88A54F28F95,OhciPei 52DFCF2E-5BE5-4376-BC22-14F788A4A425,AmdNbioEarlyPhaseRVPei 52E75865-F4A4-4FFA-A9F0-D3048EA79F84,ThermalPei 52ED90D3-BBF8-45FB-B24C-5121655D23B8,FjHddFeaturesDxe 52EDB5F1-9632-4CE5-8B82-3099200E66DA,SoftSkuSmm 52EFDE98-4C81-4423-8C6D-4ECAE61DDDD9,UsbOcUpdateDxeGlacier 52F934EE-7F15-4723-90CF-4E37127718A5,TcgPeiPei 52F9F971-5302-4F46-B1A6-1E55669B52C8,SxStateSmiPkg 52FA6F82-5255-45E1-8ABF-C62EDA2C89BA,SmbiosType133 52FE8196-F9DE-4D07-B22F-51F77A0E7C41,LocalApicTimerDxe 5303664A-4222-474C-97A4-9A0D97D0020A,SVI3ManagementPei 53070378-119A-4836-77BD-893C824ACEB2,FchPromontoryXhciPei 53070378-119A-4836-82BD-893C824ACEB2,FchPei 531AED6E-3DEE-45EB-8DF1-B70ADB1F885D,TrueTypeDecoderDxe 531BDEF7-EF15-4C27-8441-110E61B48933,HpPwdPresentModule 531D43E0-5BC6-4FF6-8499-5EAE5B195E53,PeiFramework 531E5D9B-419B-4C3C-9561-B894F695DDE4,FvbVariableStoragePei 532A50A2-BCE6-4675-80EC-53EE57A68FA2,FchBixbySmmInit 532B6532-6499-428D-ACB1-F6F779C94DF9,AuthvarMailboxVariable 53322F73-3965-45A7-8B54-61972744102E,IntelUefiRaidDiskInfo 533AC901-A115-4806-9C4E-BD6D72C7ABDE,UpdateErrorInfo 534A6A34-CF78-4A56-BEDB-CB49A8D8060C,RTCWakeup 534BA4FD-D74C-1E41-AA7D-BB551364FBAD,AppleDebugSupportDxe 534DB6EE-FEBD-4F63-9C1F-8425CA82C6E1,DellPsidWarnings 534F73CF-0937-418A-90C7-4F1079DCAED1,PeiRamBootDxe 5351724A-7D47-4834-9C59-0DD01F305E16,FjSmmSupport 53531469-558E-4AF1-803A-F966F27C573B,BatteryState2 535A720E-06C0-4BB9-B563-452216ABBED4,HdLcdArmVExpress 535A7AD6-C204-49B4-B762-4B32BF4ED314,PchInitDxeCnl 5360BFF6-3911-4495-AE3C-B02FF004B585,DxePciLibI440FxQ35 536DF136-BD96-4E1E-ADF5-6B637C139063,UuidDxe 537186B9-1EB2-4114-B1FC-8AA894093544,EfiPrevBootNgnDimmCfgVariable 53838958-1CA0-4649-B93C-33F51EE085A7,EcRotSupportShowInSetup 538997F7-4B2E-4E6F-8AF1-0E8CF1AA9C69,PlatformWrapperDxe 5396C008-D8F9-4D76-B60E-9F9AABA2924A,LenovoStartupMenuDxe 53984C6A-1B4A-4174-9512-A65E5BC8B278,PlatformStage1 539A558A-C4C7-4978-B52D-1492415EF64D,RomDataMigration 539D8AAD-C6AC-426C-B61F-228E6D1501B6,LenovoHpmDxe 53A3CB31-7E97-4512-B2EB-BFA0AB8FD75A,DeviceDetect 53A4BF3F-82A4-4758-8A08-7EDD2EDFF2B5,PlatformEmmcController 53A4C71B-B581-4170-91B3-8DB87A4B5C46,EfiFvbExtensionProtocol 53A58D06-AC27-4D8C-B5E9-F08A80654170,EfiExtendedSalStallServicesProtocolGuid 53AB1ACD-EDB1-4E3A-A2C7-978D721D179D,FspSecCoreS 53AC1948-0ED0-428A-B4DD-D2FFF2F5776F,LenovoFlashProtectPei 53AD0657-8A74-4358-9F32-04AB4B5A0B92,SecureFlashEspFlagSmm 53B4BD04-098C-4A11-B65A-A02B33C98C08,HSPfTPMAcpi 53BCC14F-C24F-434C-B294-8ED2D4CC1860,DataHubDxe 53CB13DF-A56F-4101-BB4F-9BE040657BB5,StdBoardSmm 53CD299F-2BC1-40C0-8C07-23F64FDB30E0,EdkiiPlatformLogoProtocolGuid 53CE1482-8B8D-4B24-888A-C2BDA19CF4A1,UefiToPublicWmiRouter 53D7E8EC-56F5-4F9C-8198-7BFB2ED4E05E,BootSectorWriteProtect 53DBDED9-C255-4908-847E-E191583AC7DC,UpdateFruSmbios 53E65F94-B418-4541-9A12-18839A56B427,Thc 53F019E9-BB0C-424B-870A-1FAF10B1CB4C,iFfsPei 53F5C473-46B5-45F3-8261-E4A59A9E755D,AmdPspPeiV2Stp 53F66425-21F2-45F3-99D5-ECAE1E21663A,H19TpmDetection 53FEBC13-C534-483E-8DA0-968E6FFD18D0,SecureBIOCameraSunplus 5402F0A2-7818-478B-8744-048AAE94BE0D,DellTpm20Dxe 540D61D0-C2D8-4E2E-8AD0-5C3D1B56CD4E,UpdateSmbiosEcVersion 54141B25-D623-42B8-A249-3C2BB739AC4C,DummyDriverDxe 541D5A75-95EE-43C7-9E5D-2394DC486249,AmiTseAdminPasswordValidGuid 54289C30-4D54-4BA4-8D06-1C6B9B2DC23D,CpPcHotkeyData 542D6248-4198-4960-9F59-2384646D63B4,AmiOpromPolicyProtocolGuid 543323CE-9F0C-4DDF-A33C-BC3B3A5AC227,SmmBmcElog 54357618-E106-406C-A5CE-AD7A1BA3CCCD,ExternalUsbPortConfigDxe 54360212-BD31-403B-A983-C5E472049E40,OneTimeFlagsPeiInit 5440D0DA-F426-45F7-BB50-B282212FDBAF,DellAmdCbsApcbUpdateSmmStp 5446C293-339B-47CD-B719-585DE39408CC,PostReport 544C6868-AA26-4B94-A43D-80A1BF4E65EF,DellErrorHandlerSmm 5466B9AA-EE2F-4FDB-84A3-A330BE1301FF,AmdHstiV2 546AD295-0C64-4CE6-A06F-FB9CD04B41CD,SystemFlashCommunicationDxe 54706D54-2251-46F6-90A8-AFF0D4CD1E7D,WifiConnectionManagerDxe 5473C07A-3DCB-4DCA-BD6F-1E9689E7349A,EfiFirmwareFileSystem3Guid 547957B2-D791-4CFF-8808-8024897B4D98,PLX8605PEI 5479662B-6AE4-49E8-A6BD-6DE4B625811F,KeyboardDxe 5479E09C-2E74-481B-89F8-B0172E388D1F,StartWatchDog 547C4CBE-BC2A-454D-AEE0-D29E487E0ACA,ErrorLogHookPoint 547C5CAE-2640-4ACF-9532-0E25B3F03F05,WheaDxe 5487F114-45E6-4D34-95E5-C7CF09E8AEA9,FjNvramVariablesAccessReferencePei 54891A9E-763E-4377-8841-8D5C90D88CDE,TerminalSrc 548A6718-6BC0-45A9-B4E9-6F63B0E1DD43,RtkUndiDxeClientron 549070BD-3FBD-47C9-B640-975C306F175D,AmdCpmDsdt 54913A6D-F4EE-4CDB-8475-74062BFCECF5,NvramMailboxAddressVariable 5493C51C-79C8-4C2E-9758-1DB5B52B13B7,DellSmmNbDockProtocol 54975633-0945-4D9C-97C2-E0CC6469A5A3,MeLibPei 549F3345-8B83-4F08-A4DC-34BF55028A0F,ClientCorePeiPreMem 54A3058D-8537-4A32-BDB0-4027BB688727,ITEAcPowerLossPei 54A85D82-3A54-4006-9C0E-E527295C4FA8,SetupLangService 54AAC64F-8A72-4093-8051-F4D23C5D2A4A,SbSocBixbyDxe 54AB2D48-8067-42A2-BAED-71F8E04FFE6D,BootDevTypeOrderInfoDxe 54AB7A17-AD08-4F86-83C2-4CF398EBC0AD,AsusPostErrDxe 54AFED50-5999-4594-9B79-F0AAA09FA32C,DashIoCfgDxe 54B070F3-9EB8-47CC-ADAF-39029C853CBB,NvramSmiDxe 54B0E2D1-F3EA-46D1-8DBA-367A347824EF,OemWakeOnLanPolicy 54B34347-C478-4865-8415-742E5155B204,UefiRestNetwork 54B6C2D3-79A9-400C-A3F6-D737CBEC6368,IioPlatformHooksPeim 54BD6A5D-38F2-44BD-84AB-108BE4F45914,DellChassisConfigDxe 54C32CBF-A3B9-4CCE-9C43-E059E32255DF,SystemFirmwareDeviceSmm 54C61C94-287D-4DC5-99D5-D38D1A53AE6B,PlatformInfoHob 54CB734C-975C-4A74-9556-57AE6D9A2229,TrackPointElan 54CE6010-2A6D-42AA-B1E2-FD97DE9C4DA8,AppleDebugSupportFireWireInit 54D2878F-25CD-4A2B-8420-EBD18E609C76,OemHookStatusCodeLibNull 54EA32CF-F34A-4ACA-951C-1203B7C51725,OemRgbLbDxe 54EB2B7F-0CC3-4E1B-B03D-E81756F642B9,GfxInitPei 54EEEF50-2EC0-45B8-80CA-9CB1AB819507,ApobRmbDxe 54FCC43E-AA89-4333-9A85-CDEA24051E9E,EfiSupplicantProtocolGuid 55025E9D-32E9-403B-81C1-F9E3D9D70640,AmdHsti 5503017E-3B17-411A-A670-09BB039F1B6F,CrashLogDxe 550303D2-F033-4468-857A-442C10E199E9,LenovoDriveEraseDxe 5504DF0C-F54D-465F-9200-F0383DBA1BC3,DualMeFlashExe 5507247A-846B-4F22-B55F-72B4049435EF,AmtLockKbd 55073147-BE8A-493D-8342-BDFC17E7F2BA,AmdNbioBaseRplPei 5507E3F0-9C84-47DC-8CEA-C29A01B7CD5D,SioBdsPlugin 550E42E1-B6FA-4E99-BBD9-1A901F001D7A,AmiVendorKeysNvGuid 552BA34F-949E-404D-B6E2-02BA73534307,PlatformRasConfigSmm 553087F6-BAAC-4D7F-97B4-31D8179AAE15,GetNameInfo 553F15CC-ADC0-4364-B935-A5BFE2BFD2F9,FjI2cPDControllerDxe 5542AB6E-501E-4D60-97DB-ED717584BD1E,DellTcg2EarlyDxe 5542CCE1-DF5C-4D1B-ABCA-364F77D399FB,EfiHiiCompatibilityProtocolGuid 55461099-28DE-4A16-B51E-D0D18A0793F9,CmosButtonLoadDefaultsDxe 5546A554-C246-46D6-97E1-2506D2D8B674,AmiUpdateBoardIdHob 5552575A-7E00-4D61-A3A4-F7547351B49E,SmmBaseRuntime 55538D1E-B4C5-4BD5-B594-9B5BA9774F1E,AodSetupDxe 555F76EA-785F-40D7-9174-153C43636C68,CirrusLogic5430Dxe 55648B91-0E7D-40A3-A9B3-A815D7EADF97,EfiRestExProtocol 5568E427-68FC-4F3D-AC74-CA555231CC68,LinuxEfiInitrdMedia 5568E42E-DD33-4F6C-867F-7E73451104FE,StaticSkuDataDxeLightningRidgeEXECB4 556A3B81-399D-4951-82C5-BC72FE5EFBCB,FjMfgFeaturesDxe 557423A1-63AB-406C-BE7E-91CDBC08C457,QemuRamfb 5578AE16-F1C9-4E8F-B129-BA07F8FCF84A,IdeSetupProtocol 558D8B04-1C4E-4782-BB99-AFF903074C26,AmdCpmPciHotPlugDxe 55961E20-B0D9-4553-9948-E3ECF0BE0889,PlatformConfigPei 55987E62-1DF6-41D1-9062-334FCAC3E54D,GraphicsSplitter 55A2532E-297A-4AFD-90BF-139BFF5BB4D7,LenovoSystemAcpiTablesPei 55A267FC-6607-4023-884E-48E5D3D3F4E2,DellHiiparserDxeDriver 55A981A5-F371-4BA3-93A5-37FA0CA95089,SynQuacerGpioPei 55AE03B0-681D-450E-8AA5-81B94DBA5362,SystemVspEvaPei 55AF6E44-086A-491E-829A-7D95502539F5,RtSmmOemDriver 55B1D734-C5E1-49DB-9647-B16AFB0E305B,EfiHash2ProtocolGuid 55B71FB5-17C6-410E-B5BD-5FA2E3D4466B,EfiI2cBusConfigurationManagementProtocolGuid 55BB5A4B-3B3F-442C-BF09-0F87A67E8EE7,BindingsDxe 55BDA60B-1D0F-42D5-9F09-2D3D3067B899,EarlyDevices 55CF7CCE-051F-42C3-9CA9-20DB5CAD9AE4,AmiEventLogsHiiHandle 55D2C031-C1DB-4FD4-AC8C-C7EBE54E3E1D,DxeGraphicsOutput 55D460DB-8FEA-415A-B95D-70145AE0675C,DxePrintLibPrint2Protocol 55E3774A-EB45-4FD2-AAAE-B7DEEB504A0E,Tcg2Pei 55E76644-78A5-4A82-A900-7126A5798892,HeciInit 55E86300-F0B2-44AA-A5A4-EAEECE2E983B,PlatformToDriverDxe 55F10D34-4F05-426A-9A72-613EA8544DE0,AmdCpmPmfBoardPeim 55F6A413-280F-41E3-9394-6580F29DD7D0,DellSmmBbsmanagerLegacy 55F9900A-BFB0-4B30-83EE-7F437FAFAE33,LenovoDriveEraseSmm 55FFDD87-F6C2-49DD-A724-F197E60AB020,LemKeyboardLayoutProtocol 560467CE-83F8-4765-886B-6A0C03678CD8,HpNotificationsDefaultsAndWmi 5604D863-BF24-439B-BBF6-636D72036E07,SpiUtil 560BF58A-1E0D-4D7E-953F-2980A261E031,EfiSioVariableGuid 560FE30A-760C-46FA-989A-206F48C17C80,UsbHubTuningDxe 561196F1-1234-4145-8893-8893A1F97D97,FjOnScreenKeyboardDxe 561230EC-E2A5-4E58-80C2-30486D9F8D62,RtkUndiDxe 5618EC3F-A4EF-4EED-8759-64EEB780B4BE,DellSetupD4Smm 561DE4F7-BC8E-4E9A-A741-3E0D1A735621,DeepSleepSmm 563413A6-9DD1-4B7F-9E7C-5536E92AA55A,UefiDriverAsix 5639867A-8C8E-408D-AC2F-4B61BDC0BBBB,EfiBluetoothAttributeServiceBindingProtocolGuid 563C75D2-045D-43FD-A7C0-A472B0AD0255,gear6 563E434B-6EDA-40DC-9123-A0FA0166EB4C,FjGpioAlderLakePei 563F8EDE-1FA5-45A2-BE23-B0B6A07DE239,DramPolicyPpiGuid 563FAFF1-EC71-4EB8-9E6E-60BF1447E285,FlashUcAcmSmm 5640497F-645E-4611-B915-E682C8BD4783,AsrockClockGenDxe 56417BED-6BBE-4882-86A0-3AE8BB17F8F9,EfiKmsFormatRsasha11024Guid 564B33CD-C92A-4593-90BF-2473E43C6322,EfiHobMemoryAllocBspStoreGuid 564F3ED7-6044-422D-9E48-65AAF585621E,FjPostErrorLogDxe 56521F06-0A62-4822-9963-DF019D72C7E1,PchSmmSpiProtocol 56546975-C450-44B2-9D25-CE83C5820161,LegacyBridgeProtocol 565D3FCA-F06D-4FED-95EB-370EDFFA9E57,AsrBootOptionDxe 565EC8BA-A484-11E3-802B-B8AC6F7D65E6,XenBusDxe 56627FB7-0D7E-45FB-9A18-958D92E2780A,FjPostScreenDxe 5678DBEB-6702-44DA-8C0C-60942AC1F980,Ps2KbdPei 56966690-24E8-4DFA-BEA8-BFCD83DA44B8,MultiPdtDxe 56AA1233-7407-4058-9E17-88DE138EA15D,AmdCcxZen3CznDxe 56B4FD0A-800F-408F-B4E3-C1B2105177D4,DellAmtConfigDxe 56B70419-7103-4D0E-83F4-F3546BD21E40,EzFileExplorerLite 56BBC314-B442-4D5A-BA5C-D842DAFDBB24,PlatformInitAdvancedPreMem 56BD294C-4488-4B6D-A637-EAF159B43BED,OpromUpdateDxeCLX64L 56BF094C-69F6-49DD-8C1C-1ECEFF71C9E5,CsmRt32 56BF4B67-8DCF-424F-99A9-0F44B7F8C925,ODDBiosBootSupportDxe 56CBE66A-BF3C-48F9-B9DE-8DA42F906074,SbPcdPei 56CD6FEF-9038-49DA-8275-1B2F5B9791A9,EzFmpUpdOpt 56D23D33-07D7-48F9-81D6-7ED5991ECE88,OpaPlatCfgNvVar 56D60EE4-5CCF-485C-BBBB-FEDAE2B24146,RegAccessDxe 56DBFC7E-4D04-C73D-8A5E-73819BD23CA6,AmdSocSp3r3CpDxe 56E83C34-1451-4285-890D-E1F17EBD9C44,MeFirmwareRevisionCheck 56EC3091-954C-11D2-8E3F-00A0C969723B,EfiLoadFileProtocolGuid 56ED21B6-BA23-429E-8932-376D8E182EE3,FspPerformanceDataGuid 56EEE346-500C-4936-951A-2DA5F0FF39BB,DellGrasslakeConfig 56F0BAAE-F887-45D3-814E-B6D5C489E0F9,AmiAgesaChipsetPei 56F63543-A9FB-4432-AA6D-44827005B74A,Lily_RTLWlanbin 56FC768F-B603-4454-8083-BFE98D6084F9,GnbPei 5700D4C0-B7B1-4222-AC5C-DD410642FDA7,DellUsbChargerSmm 57144639-7BD1-4E72-B97B-D8A8C3AE2A9E,PlatformFlashSmm 571A2DDE-E141-4D73-927D-85F5A7BB187E,AmiTcgLibDxe 571D1ED1-C2D9-418E-953A-248EBC687048,DellIdeSmm 572528F4-9BC6-41BD-9D14-5AAD93464A51,NationalPC8374L 5726C43B-C1E0-4735-8049-5110EDF2851C,AmdSocFp8PhxPei 57292E63-5BD0-4787-AC14-43E6B0A1515B,OememSmi 5733EBA8-492D-46FA-AA6A-379779E10B77,EfiMpstSupportProtocol 57354F58-C310-4884-AB1C-D770510BA7D6,FanTuningPei 573A445F-4FB6-C2D3-2CC0-5B9C772CFB94,AmdRasSspApeiDxe 5740766A-718E-4DC0-9935-C36F7D3F884F,DefaultdbxFile 575B08F4-A946-4341-B46A-765CC9F04644,PCIeIdm 575DFB6F-4009-495F-B23E-A6A084CEA57B,Int40InterfaceSmm 57651554-BE8F-4546-80C6-36323D52935A,AmdPlatformRasRsDxe 5774B56B-40B5-4FD6-98F7-D4D27C86CA49,FjGenericItemProtectedStorageDxe 577D959C-E967-4546-8620-C778FAE5DA05,EfiDebuggerConfigurationProtocolGuid 5785E965-8357-48A1-AC12-CAF77A35FC72,PlatformStatusCodeHandlerSmm 5786ADE9-7DBE-4453-BBF7-6C181FD06458,AmdCpmOemHiiDxe 5788464F-3773-4A29-8AF7-E81BBEE419C3,ATAIdentify 578C315A-68CF-4E81-B5C6-22DB40D010BC,EfiI2cMasterProtocolGuid 578C3195-D8C1-44F1-8A06-2B592FBE6AF3,TouchInputFilterDriver 578DC3C1-DFD2-4314-997F-F882CF50E5E7,FjEvteApp 578F70A0-066D-11ED-B939-0242AC120002,AmdMemStpSp6Dxe 579A7D1F-C166-4D0D-ADDB-B20B8B768B72,TmeInitDxe 579B3063-8114-4FCD-9DF1-0E4519AF7744,ShellResolution 57A13B87-133D-4BF3-BFF1-1BCAC7176CF1,EdkiiTcgPpi 57A2146B-2F5F-4BFE-86B6-303471F2F47C,FchShastaPei 57A913EF-DBD8-47CC-89BF-7D86DE822FA6,DellTcg2ConfigInfoTpm20 57B82766-596A-45BD-8168-27E2BF41EF5C,DellPermanentDeviceSmm 57BDA600-D3FF-4A59-84CF-CCB53C941AAB,CrbSmbiosType4 57C295E7-4411-47FB-A176-68CE13ED449C,VideoIdm 57CE81B5-B995-4703-A42A-8774A353E5AA,AsusRunTimePaysBios 57D16189-7A07-4EFD-9701-5A19FE120E73,PermanentlyRemoval 57D21D52-3896-497C-9C20-B144BE7AD1CC,UnlockPei 57D55F85-C177-4A84-A2DD-8668E6F082E1,DellCipherSmm 57D59D87-A2A9-482C-8EC7-D9F9FA3E20F4,PlatformWmiAslSupport 57E56594-CE95-46AD-9531-3C49310CA7CE,Ofbd 57E9BE79-FA6E-4A83-A3EA-AB2B6678E4CA,ACPISxSMICore 57E9EEE9-EB7D-4453-BBF7-6C138BF06458,AmdCpmDisplayFeatureDxe 57E9EEE9-EB7D-4453-BBF7-6C181FD09027,AmdAgesaDxeDriver 57F435A8-1C37-4834-AD61-B03D94DDCEF3,DellPasswordMgrDxe 57F4434C-A01B-487F-A426-AC7BE1D79DA2,UefiHotkey 57F48613-300A-4101-A76D-4F73C533B5B8,PriorBootDxe 57F55732-CF55-43C7-B66B-216CE2282888,MonoStatusCodePei 57FDAAFB-DB48-4546-B73C-58428D8261B3,MtkSuppDxe 58014AAF-1C4A-4868-9042-58BCD1637054,FchProm21CbsPei 5802BCE4-EEEE-4E33-A130-EBAD27F0E439,MsegSmramGuid 58053681-13F3-47F6-B137-CDB3E888D9A4,ExtendedDataGuid 5808F44B-E501-467F-8899-670B9ADBD01C,RealtekLib 58094BEC-30FE-459A-B232-3A60D1C78C16,WheaErrorLogListener 58099949-C88B-4117-81A9-DB8949917CD8,SpdDxe 580DD900-385D-11D7-883A-00500473D4EB,Uhcd 58105900-9D9F-4F6E-8E0C-1F257113A3A6,ADLINK_ComHotCablePEI 5810798A-ED30-4080-8DD7-B9667A748C02,HashInstanceLibSha256 581F20FE-3C59-46EB-8D9F-47E6D38A1C3B,IsvtCheckpointDxe 5820DE98-FC8E-4B0B-A4B9-0A940D162A7E,SioDevStatusVar 5820EEB4-C135-4854-9D2A-AA9EFC4475E9,MeFwDowngrade 5821A154-1E3C-4EC0-92C9-2A66AB2FF186,FjNuvotonNct6796Smm 58279C2D-FB19-466E-B42E-CD437016DC25,AmiTseDriverHealthCtrl 58293BDD-1E0C-42C6-8376-61F049F77A97,AmdPspAspt 58295EC1-2EFF-4D01-A31C-67C42D6B3862,FDUpdateSMM 582BB1AF-0A33-4644-898D-94FC89C838F3,HwmThermalDxe 583CF04B-42E3-4638-AA22-02E4D3330A61,MacToUUID 5848FD2D-D6AF-474B-8275-95DDE70AE823,SmramCpuDataHeaderGuid 584CC99F-4BE8-43D1-A45A-933DC39479FC,AmiPeiNbCustomPpiGuid 5853694A-467F-4464-BBF9-0C971A74CB36,L05UefiDriveIdentificationDxe 5859CB76-6BEF-468A-BE2D-B3DD1A27F012,EfiUsbPolicyProtocolGuid 586032E3-1386-4ECC-B547-EB285E21066D,AmiAgesaPei 587743EC-B505-4E9F-9F2B-3DF703D7B1D4,KEMrWdtSci 587E72D7-CC50-4F79-8209-CA291FC1A10F,EfiHiiConfigRoutingProtocolGuid 587E8797-C2FB-41B7-AE9B-F53A6C562DF5,DellCsmConfig 58830DE7-9739-4869-88BE-DC8CA24CE9C1,AutoMeud 588ACA73-2ED8-4F76-9310-6F4D0B449242,AsusHeader 588DD486-6641-458E-82A7-5CBEB8602111,AmdCpmOemInitPeim 588DD486-6641-458E-82A7-5CBEB8602F30,AmdCpmOemInitPeim 589532D8-2D0C-4626-A552-075CFACA5027,CustomLogoSmmDriver 589BC616-BB4F-47ED-92F7-93393C697E25,AmiSbSmiProtocol 589F4B42-A905-11E0-8264-0800200C9A66,SctMilestoneTaskProtocol 58A18C8F-D9D8-4E9D-BC43-3449B6BBCE01,ComputraceDxe 58A30313-70D7-4201-8212-995765B3527F,DriveOptionSwitch 58A6FDE2-F873-468B-8989-DB4DE5E06CE9,HddSecurityErase 58A90A52-929F-44F8-AC35-A7E1AB18AC91,FPVARBAK 58AD4172-08AB-4AB4-99E6-8AA2F2B354DE,AdlSioFunctionPei 58B35361-8922-41BC-B313-EF7ED9ADFDF7,SecMigrationPei 58B8E0BC-05A5-4015-A47B-774A50346C1E,CompalSsidSvidDxeSetting 58B8E0FE-15B8-4915-A47B-774A50346211,ProjectHookDxe 58B9CFCD-7BEA-43EE-AEE2-896AC2E0D6C4,AdapterWarningsDxe 58BB9C75-D7E1-46AA-9F80-7B176F3B404B,AmdMemSmbiosV2StxLpd5Pei 58C518B1-76F3-11D4-BCEA-0080C73C8881,EfiWinNtThunkProtocolGuid 58C9681A-6956-41FA-B0AA-A3246D880E9A,DellWmiSmm 58CAD20D-D51F-B385-7F84-E829CA2F7C3A,EcGpioControl2Smm 58CDC779-DC8C-491B-BAC3-F86E06D1865F,DellGpeOrom 58DC368D-7BFA-4E77-ABBC-0E29418DF930,EfiSmmIoTrapDispatch2ProtocolGuid 58E26F0D-CBAC-4BBA-B70F-18221415665A,VirtioRngDxe 58E352D3-92AC-498A-B751-099335AD5F77,FjIbvBiosPasswordsAbstractionSmm 58E6ED63-1694-440B-9388-E98FED6B65AF,EfiSocketProtocolGuid 58E81D7C-4D7F-4C6F-AAE6-32A99F25FD17,DellPsidDxe 58E8A611-AB19-47DC-9850-3985DE8DF1FD,PsmiMapHobGuid 58EB25EE-FBCB-419D-B9DD-12C38FFFBF0D,WlanControllerPei 58EE5E10-D0CF-4071-B1D7-980236E71412,GnbPhoenixRouting 58EE5E10-D0CF-4071-B1D7-980236E71E4E,GnbRaphaelRouting 590915CC-8622-4D61-BE64-C33EE760141F,DellSmBiosSmmDriver 590A0D26-06E5-4D20-8A82-59EA1B34982D,UniversalPayloadSmbiosTable 5917EF16-F723-4BB9-A64B-D8C532F4D8B5,EfiUserCredentialClassHandprintGuid 591F64F9-1CB8-4029-8868-F5A2C0CF3600,I2cPlatformDxe 5920F406-5868-44F5-A9B9-6D4031481CC9,LenovoOemSecPei 59216A68-0664-4293-82E6-5DCF4F99A06F,AmdCpmUcsiPeim 59223FC7-AAD9-4358-AD1A-ADB4B25BFEF9,I2cTouchHidDxe 59242DD8-E7CF-4979-B60E-A6067E2A185F,LegacyRegion 5924BE03-9DD8-4BAB-808F-C21CABFE0B4B,DellErrorHandlerPei 592626DA-4A1E-8B39-28BA-FEAD92C4A0A4,RedfishHostInterfaceDxe 59287178-59B2-49CA-BC63-532B12EA2C53,PchSmbusSmm 592AB072-3987-4DB3-86B0-EBD8D43E4B76,AmdFabricRsPei 59324945-EC44-4C0D-B1CD-9DB139DF070C,EfiIScsiInitiatorNameProtocolGuid 59378206-861B-4380-A349-2F2F4F030C4B,DashBiosManagerSmm 594AC308-8819-4284-B661-B7570881CC0F,RfSecureBoot 5959E027-BAB0-4342-AA4B-8F73F017B485,OemRuntimeFunction 595A6EDC-6D2C-474A-9082-3B992851DFFE,OemCapsuleGuid 596AA5A8-1289-4E30-B311-F74E64F30991,SmmSecureBios 5971B3C4-8FD0-411C-A53F-0A5EF400A094,DellPasswordSync 597F29A1-F354-4FBB-AFF4-BCBDA6A87C2C,LpcFlashPeiLibNull 598E95A1-9674-4C10-9342-3F06317033F7,SmbiosType13 599438A7-4292-4977-8C06-FFC16C445E83,AmdApcbZpSmm 59A3F3D3-DD73-47E7-9688-E96C1A6F50D1,DellRecoverySiPei 59ADD62D-A1C0-44C5-A90F-A1168770468C,PlatformInit 59AF16B0-661D-4865-A381-38DE68385D8D,OpalSecurity 59B042E7-04A7-4D18-967A-8D31E3F34E8C,BiosConnectIqIntegrationDxe 59B90A53-461B-4C50-A79F-A32773C319AE,IdeBusSrc 59BF309E-0EE5-460A-B94C-EC1CBE02E599,InitRasGlobalDataNameBufferSmm 59C2B0BD-BC73-4428-AA7F-8EE98DEFB2C3,AmdNbioBaseRmbPei 59C341BB-28BF-4867-9951-DA479E349D52,MTKSuppGen2 59C34225-6FD4-4212-88F7-8845F2459DCE,FjPcieClkControl 59C5679B-08CB-4A53-B2AD-8CFD8359EEC5,OemACPIDriverDxe 59CFEAD5-DEEC-4F47-B9A5-222C25633283,FjGabiFlashDescriptorSmmProtocol 59D02FCD-9233-4D34-BCFE-87CA81D3DDA7,EfiGenericElogProtocol 59D0D225-38D7-4828-A7F9-1AB9BBF397A0,MAPS_SerialPortControlSmm 59D1C24F-50F1-401A-B101-F33E0DAED443,EfiGenericVariableGuid 59DBE71F-7508-49D3-9008-08FF60F47B82,WOLPlatformPortingSmm 59DFF742-7858-42B0-8D5B-12C2AD003D6C,MrcOemHooksPpi 59EAD3A3-A920-4A80-9298-AA7B235647AF,PeiMeConfig 59EDB77D-5397-4127-8A58-81D7B4132471,AmdPspPeiV2StxKrk 5A05F81C-C465-4C6F-9246-BFCC37534B88,BatteryInfo 5A0B785F-C5CD-4905-9274-868737A59388,IrstRemap 5A0EF9DD-A808-457D-8655-5C17BAF919C8,HpUsbControlDxe 5A112448-0523-4621-B96C-CF32F6AEF3A4,MemoryStorageKernelSmm 5A18C536-DB68-4154-908D-0E1D53BE8247,VariableStorageSelectorSmm 5A235B65-4BA0-4A97-89A2-C127DEA193A2,AsusOnBoardDimm 5A35A163-1B41-4396-A776-9A1FC51426F4,SyncSetup 5A35F091-B3E4-4DA7-BA74-C9303D3577F9,FjPowerButtonDxe 5A38B969-CD6A-4814-82E6-559F840BBC58,ISPDxe 5A3F3BD1-B7A6-404B-A0F7-285E1B898B00,DiskControllerSmbios 5A662487-0749-4163-A9A0-C29C395F6503,OemDMIUpdate 5A665BC5-9EC5-4230-AF45-27AD9D5E8DEA,AmdPspP2CmboxV2SspSmmBuffer 5A676AE9-DB23-4A68-A24D-AA5FECD57486,EfiVmdDriverProtocol 5A677D2C-DAB2-46F1-A4FC-C3255045807A,StringMarshalDxe 5A68191B-9B97-4752-9946-E36A5DA942B1,EfiPrimaryStandardErrorDevice 5A6A93F4-2907-4A34-BD11-6CA8A0959E09,EfiCmosDataHobInstalled 5A79206F-E6CB-4A81-8B8F-70D1E24BFA2F,OemASMediaUSBPortDisable 5AA6A59D-5784-420B-A6E5-D8F641BD9732,EfiRasfSupportProtocol 5AAB83E5-F027-4CA7-BFD0-16358CC9E453,WdtDxe 5AADEA58-008C-4D12-AA0D-C85889AAA73B,SbSetPcdPei 5AC39AF2-F9F6-469C-88CE-141AC465F370,FjAtaWriteReadVerify 5AC7A2F1-52F8-4BC2-8459-AEA64753A054,FjFirstPowerOnMessageBin 5AC804F2-7D19-5B5C-A22D-FAF4A8FE5178,AcpiVariableHobOnSmramReserveHob 5ACEC36D-23B3-4C4F-A2B7-B2BFD72A059E,ProcessorIdm 5AD19B8E-71DA-40E6-B30E-FF2B8168C10C,DellThermalDebugDxeDriver 5AD621B8-C28A-4417-B67A-F77FD14BFBE4,AmiHeciDeliverSmmRuntimeDxe 5AD75102-5B4C-44A9-A7D6-DA925BBC49A5,EhciSmm 5AD83885-8955-499B-8E9A-EBC24B6E76B1,AmdNbioSmuV9Dxe 5ADAB7F5-4AE8-FBB8-8F44-8CB7D8EBBF2F,CpuTechSmm 5ADE106C-10ED-4C66-8E16-86C4E52EC47A,FjRealtekLanDriver 5AE0C053-C2B3-4E7D-ADD9-FD3CEBC6D3D9,SlotDataUpdateDxeLightningRidgeEXRP 5AE3F37E-4EAE-41AE-8240-35465B5E81EB,CORE_DXE 5AEA42B5-31E1-4515-BC31-B8D5257565A6,EfiExtendedSalBaseIoServicesProtocolGuid 5AEB83E6-3A55-4F99-B993-C91EB059C152,LEMDiskRelatedProtocolOnVmd 5AEC47DA-A9EA-4522-A3DD-9BBE138D7056,DynamicFv 5B02E5E0-C169-49F9-879A-CE1806F0357A,IpmiBoot 5B0691F3-8FF2-4A94-A16F-F4BF95756EA5,HpEdk2KeyboardEngine 5B0E3ECB-0A1F-4E57-A9D1-E68A9F32ED0D,LANWakeupSmm 5B1B31A1-9562-11D2-8E3F-00A0C969723B,EfiLoadedImageProtocolGuid 5B232086-350A-42C7-A70E-3497B5765D85,OEMSSDT 5B2820BB-9A8A-443D-A84C-73B925C5727A,AmdApcbRvDxe 5B417B70-7F5F-496F-A803-8A0A2CAC34E3,EfiPlatformTypePurleyLbgepdvpProtocol 5B439945-4333-419F-8D88-84C69562E2F6,EfiPlatformTypeCrescentCityProtocol 5B442B31-1F54-4616-A6CC-3CEC4DB3A34B,SraSmmStub 5B446ED1-E30B-4FAA-871A-3654ECA36080,EfiIp4Config2ProtocolGuid 5B4F6194-44DB-4179-B6F2-7B94ADAD312B,AsfDxe 5B51FEF7-C79D-4434-8F1B-AA62DE3E2C64,EfiDMArGenericErrorSectionGuid 5B525F29-827D-4CA3-BEB5-8954B56C0573,EfiSmBmcVariable 5B60CCFD-1011-4BCF-B7D1-BB99CA96A603,SystemFatPei 5B61EDEF-52C8-41FD-AAE7-0938DDF0BB5E,DellRCSetupDxe 5B68A1FE-B135-4965-82A4-103CB4BCF92E,DellServiceOsInterfaceSmm 5B6BB60C-5AAF-4217-9825-0933D8328588,Ax88772 5B6DAB96-195D-4D24-9727-A7D0E93665C6,IconSD 5B6DBCBC-85F4-4BFC-AF96-188581325C42,AmdLegacyInterrupt 5B6F7107-BB3C-4660-92CD-542690280BBD,BootDiscoveryPolicyMgrFormset 5B74570A-03B1-4F5E-8ADB-FB7BB194D7CC,NVMeInfoSmm 5B74C741-4A5F-4A8E-B689-D804AB4368FD,DxeRealtekCrcInit 5B7CC220-E183-481C-87F4-27A92D8DB88F,SiInitPreMemFsp 5B7DF90B-2B93-4493-ABAA-4805BF008AEA,HpDmarSetup 5B85965C-455D-4CC6-9C4C-7F086967D2B0,PKeyFileSha256Guid 5B862868-7474-4CF2-81A1-9FCA12FEB5B0,FjSiidSmm 5B94E419-C795-414D-A0D4-B80A877BE5FE,FspSecCoreT 5B990069-AAF3-4CE8-93AE-533D0D30A56B,OemSSID 5BAB88BA-E0E2-4674-B6AD-B812F6881CD6,DxeVlvPlatformPolicyGuid 5BAC0CE8-902A-4482-9C26-F281C9388E33,FjNvramSmiSmm 5BAD89FF-B7E6-42C9-814A-CF2485D6E98A,EfiEventNotificationTypeNmiGuid 5BBA83E5-F027-4CA7-BFD0-16358CC9E123,IccOverClocking 5BBA83E6-F027-4CA7-BFD0-16358CC9E123,IntelIvbGopDriver 5BBC3340-6122-4925-BB48-44333899FFEC,AsusSecuredCorePC 5BCE8C69-40F2-87C4-047B-CEABF009F7ED,MctpSmbusSmm 5BCEC275-6968-4FBF-8339-90685DE8AD81,TouchDriver 5BD4977A-580F-4F1A-B3C2-5198E6DCBEEA,AmiCspGlobalNvsDxe 5BD5555A-835F-4F1A-B3C2-7777E6DCBFFF,AMTConfigurationDxe 5BD7E09C-A2F7-4873-8DCE-28D395DA98F7,DellRmt3Smm 5BDCD685-D80A-42E6-9867-A84CCE7F828E,TbtSmm 5BDDE605-B107-419E-9510-AA3C434EBBE4,LegacyBiosPlatform 5BDEE236-0CB5-4D86-A608-EE7B0C5F2956,LenovoSecureErrorManagerDxe 5BE3BDF4-53CF-46A3-A6A9-73C34A6E5EE3,NvmExpressDxe 5BE3BDF4-53CF-46A3-A6A9-73C34A6E5EE4,NVMeSmm 5BE40F57-FA68-4610-BBBF-E9C5FCDAD365,GetPcdInfoProtocolGuid 5BEC0DF8-B466-4442-91F2-721DAB8F7DA1,AudioSmm 5BEDB5CC-D830-4EB2-8742-2D4CC9B54F2C,Ip6Dxe 5BF3654C-7E7D-4FBA-8BC6-2AEBCD6F68EB,Apple80211 5BF62B21-4118-48E8-AAE0-46EA19615C04,H19PlatformServiceSmm 5C0083DB-3F7D-4B20-AC9B-73FC651B2503,SocketPkgList 5C08E2E2-AD70-4C99-94A2-AE604EA033DA,IcnsConvert 5C0DFC5E-B4CB-4484-B768-260D7184FB58,AmdCcxZen4Smm 5C0F03D2-13C7-4C8C-B92E-2ECC692CA5C8,DfuMeFirmware 5C0FB3B9-F7BB-467B-A4DC-89D7D5A58432,AsusResLoader 5C198761-16A8-4E69-972C-89D67954F81D,EfiDriverSupportedEfiVersionProtocolGuid 5C1997D7-8D45-4F21-AF3C-2206B8ED8BEC,PL061GpioDxe 5C19A130-A447-4DD8-BFD4-1CA7E2210A5C,FastbootDxe 5C1D737E-36D6-45B1-862C-6B9C244F4C07,PlatformStatusCodeHandlerDxe 5C266089-E103-4D43-9AB5-12D7095BE2AF,IntelSaGopDriver 5C284C81-B0AE-4E87-A322-B04C85624323,EfiEventNotificationTypeSei 5C2CD12E-E2F2-4276-A0F2-4A17832F774D,FchSmbusPei 5C337A89-C708-4B03-9485-C08BCA6FA8FA,SmmEntry64 5C3C5472-1ADC-44D8-93F5-78B31B950931,aModelName 5C3FF3EA-5E95-44AB-A042-F1CB952D0CE9,IntelRaidBiosThunk 5C403B01-8C30-4E68-96A0-55612F9C32B9,AsusEcDxeBs 5C43D50E-311D-4481-86E3-3842549EDC1C,AmdHotPlugRsSmm 5C44EAF7-FF0B-462E-87F4-2D46460BF48F,TraceHubStatusCodeHandlerSmm 5C476C6E-BB09-11E1-86A7-78E7D1AF36D1,HpNetworkTransferDriver 5C536A02-BDFE-4F47-BF72-18FF5DEAF8E9,FchSandstonePei 5C59F275-630A-4855-898C-9AD0C252F823,BrightnessHardwareEcSmm 5C6FA2C9-9768-45F6-8E64-5AECCADAB481,DxeCpuCacheProtocol 5C7C1793-AA9B-434E-B307-B7FFCAB49FAD,RTCWakeup 5C7F8702-838F-43DF-91E6-7833B6F2A067,DxeCoreReportStatusCodeLibFromHob 5C98DE6E-CB69-465F-B6B9-F661E26E6F9D,LibGdtoa 5C9D17C2-4DD8-45D9-8E06-BDD3F8B45E4B,AmdI2cMasterDxe 5CA8EC13-18DE-48E6-B037-67A2772F3EBB,Tcg2Pei_ 5CAB08D5-AD8F-4D8B-B828-D17A8D9FE977,TrEEPlatformDxe 5CAC0099-0DC9-48E5-8068-BB95F5400A9F,RecoveryOnDataCdGuid 5CB5C776-60D5-45EE-883C-452708CD743F,EfiLoadPeImageProtocolGuid 5CB9CB3D-31A4-480C-9498-29D269BACFBA,EdkiiPeiMpServices2Ppi 5CBC260D-CDC0-4BCB-9F74-0A3EA8160905,FjKbcEmiSmm 5CBDEC0C-BD0C-4C3B-8C83-8FEB1104BA69,Cf9Reset 5CBEF321-9B75-3120-88CD-5D123412CBCD,ATIPwrXSmi 5CD10F33-B73B-465F-A89B-7A881137D416,H19ServiceBodyDxe 5CD9649D-2874-4834-802B-C559C94703AE,Usb4CmDxe 5CDDFAF3-E9A7-4D16-BDCE-1E002DF475BB,UefiDebugLibConOut 5CDEEC47-2538-11E7-A438-B8E8562CBAFA,AppleVoiceOver 5CE5C0AD-34EB-4B2B-8E15-EEAE353AC515,OemSVN_ID_Smi 5CEA02C9-4D07-69D3-269F-4496FBE096F9,EfiPersistentVirtualDiskGuid 5CEBCDE6-1096-4FE2-9921-5F8E25281A3E,CpuSmm 5CF308B5-FA23-4100-8A76-F326C2814880,AmiMeasureCPUMicrocodeGuid 5CF32E0B-8EDF-2E44-9CDA-93205E99EC1C,EmuThunkProtocolGuid 5CF32E68-7660-449B-80E6-7EA36E03F6A8,EfiUserCredentialClassUnknownGuid 5CF98C48-F2A3-462A-90D6-8837400B4C09,ForceEfiBootDxe 5D11C653-8154-4AC3-A8C2-FBA28920FC90,VariableFlashInfoHob 5D1C5BFF-3B25-4983-9A33-D4691BB3E9A3,UltraFunctionSwSmi 5D1F3F9E-8CEE-4299-93C2-4C64EBB58977,GetServByName 5D206DD3-516A-47DC-A1BC-6DA204AABE08,AmiOnboardRaidController 5D337D63-2677-4868-8251-B97C6D1F0E90,YukonEthernet 5D3D7AC4-BD45-4B01-B9DE-A58F4E3216CC,AmdCpmThunderboltMid 5D3D9BCB-B134-4CE0-B71A-AC6E65A75127,SioSsdtDxe 5D3F625B-A39D-410C-8D6A-9C31056406DE,ODMServiceDxe 5D44BE77-5669-41D0-B685-1BF3F83EFB98,DellPasswordUi 5D5450D7-990C-4180-A803-8E63F0608307,EfiSmmMpProtocol 5D6B38C8-5510-4458-B48D-9581CFA7B00D,EdkiiDeviceSecurityProtocol 5D7022B2-D3CF-4310-AC0A-4708DC4E5469,IioCxl2SsdtInstallDxe 5D71AF21-F162-4FAE-97A6-4C92CA8FC623,FchSmmDispatcher 5D724549-D2B1-4EB2-8263-AF5ABB12EB03,SamsungWa 5D744BC4-CA94-4F8A-9C50-EBC2A107303E,SerialIoUartDriver 5D751BCA-5A2D-BEC3-8B77-86F30CA893D3,PeiGraphicsOutput 5D758BFB-B323-4F6C-9017-A3238CE65163,LenovoSetupRestartDxe 5D7FE222-B0D3-400F-B092-5657623BD0BE,BootBlockProtectionDxe 5D8111C9-B4F9-46F3-9DDB-73A41AC696C5,password_capslock_indicator 5D8AFDDF-5C95-4DA5-BB46-832F0D4BBC76,HpGraphicalFontSubComp 5D9498AB-959E-4E6F-8C0B-8691C029B71C,OobMsmDxeDriver 5D9516D3-BC49-4337-9FC7-29DF3526EC87,EfiPeiPlatformTypeLightningRidgeEX8S2NPpi 5D9631B7-578B-43E0-9EFC-EB2C20124801,SkipPlatformAuth 5D9F96DB-E731-4CAA-A00D-72E187CD7762,EfiEapProtocolGuid 5DA9E544-DC2D-4670-A3D5-985236D5DE45,DellHotSosSmmDriver 5DAA4237-0031-4B0B-967C-74477129D6F0,H19CheckPointMultiThreaing 5DAF50A5-EA81-4DE2-8F9B-CABDA9CF5C14,SecureBootConfigFormSetGuid 5DB12509-4550-4347-96B3-73C0FF6E869F,EfiRedfishDiscoverProtocol 5DB37E5C-2EEB-43F8-ADA0-243702D3945D,DellSioConfigDxe 5DB79943-DA75-415E-9282-74471AA2CFAA,CmosWarningPageUp 5DBA82CC-E80D-4478-A07D-394F362D3524,RasClvSddcProtocol 5DC03827-C9CB-4C83-B15F-6EAFBF86476C,AppleUartDxe 5DC2E5EB-352A-4BC9-85A6-F21B59067154,OEMComDxe 5DCFD448-794C-40E9-BDE4-4A923A9253F8,OemNvramDxe 5DD41324-E81E-4582-A45A-BF8E53A91548,OdmDxeGNVS 5DD4B7AD-C8D5-48C0-A506-7ED791EB1A8D,AmdFabricStxhSmm 5DEF82D2-6ED7-47DE-B0AC-11E55BAFFB05,LpcFlashLibNull 5DF4E4F9-9BCE-4C38-9D9C-8DFE61687AA5,UfsEraseDxe 5DF5A523-3036-4E1A-83E3-35D755EB4081,D01ODMWmiDxe 5DF9946D-8170-4FB5-854F-A98865F9878F,gear5 5DFAE03E-9C19-4996-85BF-65297BD4137F,PlatformVTdSampleDxe 5E0AD13C-014B-4921-9966-ACDEB04F3CC7,RemapIommuPei 5E1BB4F6-0D47-46F3-A18A-41EB400BD0F9,DellVirtRtcSmmProtocol 5E36941D-EBA5-4DD4-B6EE-D91C7A512290,AsusSmartHsioPei 5E3848D4-0DB5-4FC0-9729-3F353D4F879F,EfiLegacySpiSmmFlashProtocolGuid 5E3C397D-A1A8-4CE6-B058-3A2EB7EEDCDF,AmdSocSp6ShpDxe 5E4A8420-FEC0-40D3-98AE-C4CA45502B93,ODMDiagDxeProtocol 5E523CB4-D397-4986-87BD-A6DD8B22F455,AtaAtapiPassThruDxe 5E559C23-1FAA-4AE1-8D4A-C6CF026C766F,FirmwareIdGuid 5E566252-4F6C-071A-485D-C0B6CD6D05EF,AmdPspP2CmboxV2SmmBuffer 5E5BBC2F-E001-4FAE-94E5-D413E9CA2238,FjSystemDataDriverSmm 5E5CF20F-B63F-11E1-835E-386077F11E9D,I2cTouchPanelDxe 5E7063D3-0C12-475B-9835-14ABB1CB0EE9,SerialRecoveryDevicePpi 5E794317-A07E-45DF-94BB-1C997D6232CA,AmiFwRecoveryCapsule 5E7A99D0-761F-4C26-8269-8571D85B0FEC,ICE30plusSMI 5E90A50D-6955-4A49-9032-DA3812F8E8E5,AmiSmbiosProtocolGuid 5E90F2AE-E938-48F4-87F9-5A219E68DFD0,AmdNbioPei 5E90FA7C-9F13-4C4A-96A7-C115FF568798,LenovoVariableStorePei 5E93C847-456D-40B3-A6B4-78B0C9CF7F20,EfiEapManagement2ProtocolGuid 5E948FE3-26D3-42B5-AF17-610287188DEC,EfiDiskInfoIdeInterfaceGuid 5E975522-176F-4E2D-BB25-64ADCC7792A4,BaseDebugDeviceLibNull 5E9AEA45-1101-4A6E-9905-CC13B6C96608,LogoDxe 5E9CABA3-F2B1-497A-ADAC-24F575E9CDE9,TcgDxe 5E9E1E5A-D6BC-4AC6-A161-854B7BB5E10A,Realtek8153Lan 5E9F8130-8F37-4006-B224-DEA482383084,DashManagementDxe 5EA17ABD-7B30-441D-83AE-3B73C1564B42,PspS3Smm 5EA93CAF-A8DD-4400-9FF6-FE343BCAF308,AodSmmSsp 5EAD1D32-C38A-4508-8DCF-0B9918957A4C,AmdMemoryHobInfoPeim 5EC57454-ECB9-49B5-98C2-FBF2021BBE6E,OemPSU 5EC7E137-3FE2-441E-A336-F657268733A6,DeviceBlacklist 5EC9DF0F-9FB9-4CD5-9BAE-12872F032A6A,PeiIpmiUsb 5ECC77F9-AB79-4E0E-90D3-79C31B61B778,UsbMouseSmm 5ED1678F-B3F8-11E3-93B8-047D7B99E097,SmapiSmm 5EDA3123-0840-45F7-ADAB-13A655EF3BB7,DellAcpiConfig 5EDAE60B-A9B0-4246-91DC-E97A4E4ADB2E,Armani_PowerReportSmm 5EFDBD4A-64B1-4F21-8A53-A13E8740E6D7,FchYuntaiDsdt 5F035AFB-AB8D-460E-AC58-254B8939E15C,SystemBiosSelfHealingPremiumPei 5F03BA33-8C6B-4C24-AA2E-14A2657BD454,EfiUserCredentialClassSmartCardGuid 5F05B20F-4A56-C231-FA0B-A7B1F110041D,EfiRegexSyntaxTypePosixExtendedGuid 5F0CAB3E-F820-4FD3-B5F1-4568ADA0ACC6,PiSmmCommunicationPei 5F0D7C9C-A3F5-4184-836D-DCEF650A493D,FjUCMPei 5F0FBE1B-1673-4FD2-9BDD-31D7909D5161,AmdNbioBaseRnPei 5F171F5F-8385-4086-A69B-1FCF06AE4A3D,AmiOsPpiConfirmationOverrideGuid 5F1B0D5B-DB44-4B81-A69D-553C591AF092,OCMR_DXE 5F2719E2-4235-44EB-B908-CF74CE26B343,OemManufactureModeDxe 5F439A0B-45D8-4682-A4F4-F0576B513441,EfiSmmCpuIoGuid 5F46BBF3-DF4B-4794-826A-29217E631412,GnbSocPhoenixPei 5F46BBF3-DF4B-4794-826A-29217E63794F,GnbSocRaphaelPei 5F4735F7-DCF9-40FD-8858-026F931942A9,DxeIchInit 5F4B7803-A45D-450A-9105-A1A259C2D363,TPMHwPresentShp 5F53F1DE-E647-425D-8B59-2DDEE19E8C76,SecureBootMgrDxe 5F56DA51-6E43-435E-A167-FA4415E8E6B8,FjGabiCoreDxeBin 5F59B483-73A4-4507-AC11-A1D26EFA187B,SmbiosProcessorDxe 5F5D3502-8A4B-40CA-88A2-2305427A131A,SaPegDataHob 5F5F605D-1583-4A2D-A6B2-EB12DAB4A2B6,ShellBcfgHiiGuid 5F65D21A-8867-45D3-A41A-526F9FE2C598,SystemImageDecoderDxe 5F65DFDB-AC20-4F43-9B21-269E81A0EA7E,PdmWindowButtonGuid 5F67D40C-1D06-4E3E-8B4A-D2713F46E1DC,EfiSmtpProtocol 5F6A843E-D188-41A3-BA3C-A83D8997DC7F,BootPriority 5F712C4A-8B9C-4EE6-ADC6-F4241E2A4129,SmbiosType1 5F749A1D-9500-48CE-A41F-D0F2F71DEF8C,AmdSocAm4BrDxe 5F7CE43D-565A-4420-B4F8-22ECA7245755,AmiDbrFileGuid 5F7D4E0E-3D6D-42BC-A942-0E91E83E3C31,EfiPeiTcgLogHobGuid 5F82BC22-85E1-489D-93A1-42BBD664B434,IioCfgUpdateDxeLightningRidgeEXECB1 5F8504C4-BCAA-4600-B435-347EEC6B5E14,MmioSerialUart0 5F864C8D-F2AE-4221-B8CA-F64ECFB0ACA7,OemDebug 5F87BA17-957D-433D-9E15-C0E7C8798899,AmiDigitalSignatureProtocolGuid 5F9E1E5A-D6BC-4AC6-A161-854B7BB5E10A,RealtekLan 5FAC7360-D4F2-4C9E-A7ED-F2595E670889,SctIsaHcProtocolGuid 5FAD2389-2BC7-4BD2-83D3-429FB6AEA33F,EfiSerialPortTokenSpaceGuid 5FB81FA3-BF65-43AD-A47B-DF70C3112B5A,SvSmmHandler 5FC093B3-9400-4D36-B34F-4EEB07AA65D4,PciDxeInit 5FC1D176-F45F-840B-85FA-E041A18B536D,HstiIhvProviderDxeBHS 5FC364AD-4D63-4B80-B10C-0C8780ADA917,XhciSmiDispatcher 5FC8EEE0-9BF2-498F-B4D3-C51ED4C87BB4,LenovoSetupConfigDxe 5FCD1B11-2981-4EB8-8E03-4A0B5448DF5B,HpRemoteDiagnosticsDriverWmiSmm 5FCEA791-516E-4B61-892C-7229D4FF23D4,Int15ActiveLFP 5FD509E7-02D5-44C1-8BB7-AB29971EEF7E,FjGenericDeviceControlPei 5FD72392-6196-4684-AF2F-7999815B5D45,Smbus2Arp 5FD88B4C-B658-4650-B3CE-A59BB991BFD4,IgdPanelConfigGuid 5FDEE00D-DA40-405A-B92E-CF4A80EA8F76,AmiCcidPresence 5FE33B4A-DC10-4EB5-7E51-364C56D911F4,D01SecureEraseDxe 5FECEF6B-5FA4-4570-8163-0CF72A9C04C5,Ps2Main 5FF69DC2-7613-48F5-9395-35D5481D4EF8,IntelDRSDxe 5FF75356-3EBD-4589-B8BB-FEE7A372E3F3,XnoteBatteryStatusDisplay 5FF80B57-7F8F-48AC-A1DD-207414F503DB,WakeOnLanPei 60002AF3-DC95-4253-88AD-8BD876D83750,DellMfgModeSmm 6000589A-DA4A-44A4-ABE3-4329B098207A,AmdSocFp11StxhDxe 6010BEA0-A051-408D-9A6E-B744D468A05D,WinCapsuleUpdate 601211DC-0B12-4C09-AE27-AB0EC9692468,EfiTxtInfoProtocol 602160C7-E080-4AFE-BE4A-BB5D9B87042D,AcpiTableDxe 60319E22-7547-4BC6-B393-FBA7409F4E25,OemReadyToBoot 603445BC-975D-44A5-FFFF-FFFFB9465403,XnoteSetupAdvancedDxe 60400EBE-52A3-46CF-A322-E21C4718FA88,AaeonEcDxe 60445AE7-B5B2-482F-8672-B51018C95BC7,FjGpioGHOSmm 6046E678-24EF-4005-BA39-BDA11F6D555D,AmtInt16_csm 6048B8EC-6D17-45C0-9BCF-63D164B41AB3,LanRom 6056677A-1288-477D-B7C1-0708CD98A71E,AsusCheckDmi 605CED2C-583B-4171-9311-AA6E146B1A4B,I2cMasterDxe 605E41B8-E923-47CC-87B1-A6E38526E78D,SmbiosCompatiInfo 605EA650-C65C-42E1-BA80-91A52AB618C6,EfiEndOfPeiSignalPpiGuid 605EC241-85E0-4760-A5D2-0D02448FD468,Tca9548aPei 6069277B-246B-45D5-BD6D-81820E10C11F,CommonSmiCallBackSmm 606C2668-E9A4-46E7-A06B-3B9B7EE15CA0,OemPxeBoot 60707C56-8B72-435B-AB8F-251C9C0D2A34,BiosAuditLogSetupDxe 60740CF3-D428-4500-80E6-04A5798241ED,HstiIhvDxe 60745C8C-FE6B-4C6B-B770-3F7C35EFF696,TamperEventS3Check 6074610C-93C6-4A50-9AAA-0927DE7C6975,FirewireDeviceDxe 60798953-1E91-46C9-B521-316623424522,WheaErrorLog 607F766C-7455-42BE-930B-E4D76DB2720F,EfiTrEEProtocolGuid 60812E8C-505B-4D3E-A5B7-1715656CE362,ProjectDxeDriver 6083745A-36FE-4C37-859A-55B773AEC2D3,FchBixbyPei 608FBD1D-15E1-40C4-9443-662ECC0C07AA,DxeOemDriver 6096140B-F2AA-4FB5-950D-D8FE833564DC,AmdDashDxe 609724A2-DBFE-4E3E-A129-9E01A74E49BB,HpPlatformErrorLoggingDxe 609758B3-DA0C-4CAB-84F0-793E8434C57C,AcerProductInfoDxe 6098E606-472C-4F51-8A40-24376D2C66B7,System 609C6CAE-C55E-4DBA-BAAE-FFF021EAE196,MediaSanitizationDynamicSetup 60A14F6F-55B9-47A3-B067-01A93027F3FE,AppleMemoryTest 60AC3A8F-4D66-4CD4-895A-C3F06E6665EE,iFfsAcpiTables 60B27E1A-D65E-4DB0-B2BB-C16FA71E44AB,PdmWindowSpinGuid 60B3EA17-EB28-463C-AAED-66000E83BDB6,OEMBOARDDxe 60B5E939-0FCF-4227-BA83-6BBED45BC0E3,EfiBootStateGuid 60B751F7-43B9-4238-8819-6B862B68C889,PhPlatformDxe 60B9DA4F-993D-411D-B43A-08B41E7BEC24,AsrockAmdSetupDxeMts 60BCD5C8-76F7-45AF-A541-C813EB86B635,AmdCpmWirelessButtonHidDxe 60C79D40-74FA-4DC4-A654-14C32E2E217C,FjFirmwareOnlineUpdate 60C83BC9-89FB-48D5-8962-A5DCE1D4C0FE,PostMessageDxe 60CDBBE2-3951-42D8-A963-8638A002E3B5,SetupUtilitySilicon2 60DC3885-9DCF-498C-9A32-DADB6AFA99A0,ErrorCodeHandlerDxe 60DE9928-47DD-4516-BAFB-34FA8F74A5D3,AppAuthenticationDxe 60E7BCDC-9ED0-40E7-A9E3-99404CFBD4B2,AlarmLEDBeeper 60EBDAA4-1565-4D9A-99C8-88DFA65549A5,DellFlashScreenDxe 60EC7720-512B-4490-9FD1-A336769AE01F,SmmControlPei 60EDA97E-3631-40A4-85D4-4A28065086B8,AcerWMI 60FABA47-419B-4E50-85C7-20E86AEE00FC,ASRockNetTcpWrapper 60FF8964-E906-41D0-AFED-F241E974E08E,EfiDxeSmmReadyToLockProtocolGuid 6107BE23-5BAA-4FC9-8FC9-F2AEA77B07A7,FireWireOhci 6107EF7B-D384-4A24-BC9B-5FEF731F6A5B,IsaUartDxe 6108476E-4C45-4EC0-A7F2-5C2B3170EB71,WlanSupplicantDriver 610CDB96-7E56-44CA-BFF4-7D9B6000D87B,EventLogDxe 611114F1-A37B-4468-A436-5BDDA16AA240,EdkiiHttpCallbackProtocol 61141CA0-1444-4C4E-A16D-B601E0A09466,LenovoSystemKbcInitDxe 61187967-9A77-419D-AAEA-64DD56190815,AmiPeiSbOemPlatformPolicyOverridePpi 612A76D7-5FDD-44E4-8702-9B84497B49EA,OemAcpiDriver 612E0D09-5D11-4516-82EE-6DD605FE265F,DellTxtDxe 613AD642-6A48-4E88-9005-28769360BE73,LenovoSplash2Protocol 613D7B84-F774-497F-9A18-6C0ED78D139D,SystemDefaultVariableProviderPei 6141E486-7543-4F1A-A579-FF532ED78E75,ResetSystemPei 61422D26-81EC-47FF-B6CF-939EAEE73FBA,StatusCodeDxe 614778F8-B85F-438E-9674-52DE7E32EAA2,ChargeLedDebugDxe 615E6021-603D-4124-B7EA-C48A3737BACD,BiosKnobsDataBin 6162A355-D641-469F-82E5-CFFFF2722973,TcrOverMarvellNotify 61631080-5573-4310-9AC5-0BAFC95E1C1B,AmdCcxZen3Smm 6169AB1C-B05F-4D9C-AFEA-192911E41CE2,AmdPspSmmV2 6169D4F6-0659-4FB5-B03C-3645D8C80DC8,AmiTseOemPortingVar21 617076FC-65EE-4340-9B18-7E72FEC05D5A,SmcAOCPei 617362EF-CAFF-47D4-A131-E95E4A345751,AmdUsb4Pei 617BE79C-3133-474E-8017-A733595B4930,ECSMI 61851894-6B92-48C8-A5EB-4E2A5BCF3D5F,SmartCoverPortingDxe 61896BB8-550A-48A6-BA27-F07408D0AAB9,FjIbvSfuPolicyAbstractionDxeProtocol 61939199-2908-4A7C-BC76-F428AA4B1EA1,KEMrCPLDPei 6195F786-D7B1-45F1-9AC7-82EF976ADF4C,SmcNVDIMMSmmDriver 6199DC36-E114-4E0D-8099-99A0BD80A971,DxePlatformSgPolicy 619C2B94-FE5A-45C3-B445-C6AF9BDD7CE0,BiosGuardSecSMIFlash 61A4AFB6-69E8-4EDB-A606-20FB31C13F82,lBoot 61A4D49E-6F68-4F1B-B922-A86EED0B07A2,EfiUgaIoProtocolGuid 61A72ECF-F7BF-444E-BE85-221339D0F00B,SdLegacySmm 61ACEEC7-603F-40AA-8EFF-663D5294D19C,HpPlatformFeatures 61AD3083-DCAD-4850-A50C-73B23B3B14F9,IsaIoDxe 61AFA223-8AC8-4440-9AB5-762B1BF05156,Mtftp4Dxe 61AFA251-8AC8-4440-9AB5-762B1BF05156,Mtftp6Dxe 61BD410A-69F6-436F-9437-16B4F3108F3B,StaticSkuDataDxeHedtCRB 61C4F60B-8195-459C-8BA1-B7B01B64DCEF,PlatformS3SaveDxe 61C68702-4D7E-4F43-8DEF-A74305CE74C5,PeiSmmControlPpiGuid 61DD33EA-421F-4CC0-8929-FFEEA9A1A261,EdkiiPeiAtaAhciHostControllerPpi 61EC04FC-48E6-D813-25C9-8DAA44750B12,EfiPlatformMemory2ErrorSectionGuid 61ED3D94-30D8-408C-97DF-DEDF2740F630,AmtLockPbtn 61F0BA73-93A9-419D-BD69-ADE3C5D5217B,CbsSetupDxeSTX 61F2DAE7-75D0-4EF2-AEE0-939CC3285ED8,AsusSeupItemControllBin 61F3D1BE-542E-4894-B3DA-2143C20B04CA,AsusSecurityJumperDxe 61F6E81A-7BBA-4A7F-B9F2-B0A3B5D461C5,DellFileExplorerDxe 61FE34BB-92EB-49BD-9151-4DB9184B9A6C,FjRuntimeServicesTableSmm 6200BFA9-8529-4DF0-AD67-7DA8DF6B0A4A,FjSystemIdentifierDxe 6205C3A4-1149-491A-A6D6-1E723B8783B1,MainPkgList 621734D8-8B5E-4C01-B330-9F89A1081710,PlatformHookLibSerialPortPpi 62197EF0-7B7E-11E2-B92A-0800200C9A66,BootOptionsPkgList 621D9B95-166A-432B-982D-2D4EEC7875A6,UncoreMiscDxe 621DE6C6-0F5E-4EE3-A102-0BDE769A0AD4,LenovoRemoteConfigUpdateDxe 62265FF8-A0BC-46A8-947E-67FEC0D7907B,AmdAcpiHmatService 62327151-AFC3-4187-89DD-788F0F16B6D5,MiscConfigPei 62331B78-D8D0-4C8C-8CCB-D27DFE32DB9B,EfiLegacySpiSmmControllerProtocolGuid 62408AD5-4EAC-432B-AB9B-C4B85BFAED02,DxeIpmiLibIpmiProtocol 624B948F-6EBA-4DFD-9DDA-10B0073A3735,SocketPkgFpga 62512C92-63C4-4D80-82B1-C1A4DC4480E5,EfiMiscProducer 62547EAC-2878-4342-BB6E-B60F1E0DD3F1,NCT7802YPeiInit 62652B53-79D9-4CF2-B5AA-AD99810A7F17,EfiHpIoxAccess 62674376-D362-45B3-9A6B-0E0D4098CADA,EmbeddedPowerButtonDxe 626967C7-071B-4D9A-9D0C-F112CF0836E9,EfiCrystalRidge 6269CF63-0737-46BF-80AD-9A035F76127E,PowerFailureRecoverySmm 626D93DB-2C42-48C3-915A-71F968A81B04,FmpDxe 627EE2DA-3BF9-439B-929F-2E0E6E9DBA62,BootScriptSmmPrivateDataGuid 627FBCC3-41F0-4378-99B6-533DCE8850A0,SmbusPei 62835C96-19B8-4D6D-BE13-3AA184784344,SbSocStarshipSp3Pei 62864A34-4733-4DC8-9CC3-F86EDD0B3276,ThunderboltSmm 628A497D-2BF6-4264-8741-069DBD3399D6,ConSplitter 628C866A-9CBB-4E00-BF85-7A9E350E0816,PegaSmiDxe 62960CF3-40FF-4263-A77C-DFDEBD191B4B,EfiBluetoothConfigProtocolGuid 6298FE18-D5EF-42B7-BB0C-2953283F5704,SleepSmi 6298FE18-D5EF-42B7-BB0C-295328569842,ResetSmi 62BDF38A-E3D5-492C-950C-23A7F66E672E,EfiPrimaryConsoleOutDevice 62C1E22F-BF7A-462E-A037-BF97BBC3ADF9,EzConfigDxe 62C38AE7-4BF4-4112-B2C8-88B50F317BC9,AgesaSmmSaveMemoryConfig 62CE3D93-25D8-48E0-BAB3-1ABE7C25DC49,MctpSmbusDxe 62CEEF5A-1D7C-4943-9B3A-95E2494C8990,Emul6064KbdInputProtocolGuid 62D171CB-78CD-4480-8678-C6A2A797A8DE,CpuArchDxe 62DA6A56-13FB-485A-A8DA-A3DD7912CB6B,AmiResetSystemEventGuid 62DC08AC-A651-4EE9-AF81-EAA9261E9780,S3NvramSave 62E0B0A2-9D9E-4D5D-85B3-4F5092702FD1,HpClockBufferPei 62E135CA-88C1-4F15-93E1-01193B3499F4,ASiXUsbEthernet 62EB36E4-61DC-4861-9451-45AB2D3EFABA,BiosImageInterface 62EB9C56-A79C-4423-A7F0-891A345208CD,IioDmiInitPeim 62F45A1F-B263-4159-A8BD-F54427226CB3,TypeAAh 62FC1B9A-8851-4654-90AD-CEA8C07FE259,IchSpi 63017E66-D790-4EE6-A0AC-6192AA74ACF7,UCR 6302D008-7F9B-4F30-87AC-60C9FEF5DA4E,EfiShellProtocolGuid 630972DF-8AB5-4A51-9A88-5DCEE225CC70,BootOrderSmm 630AEB10-2106-4234-9DB3-836A3663F50D,BaseCacheAsRamLibNull 630EAF59-9E9E-4515-9F0D-45D556BCAC1A,GetEdid 630FBB44-65DE-43BD-B503-8DE5914536B5,FchProm21GpioPei 6317D53B-0771-42B9-B6A8-D06FDC2DAE96,FjWirelessLanSmm 631B4DF7-BAEA-4C1F-A061-5B6462652822,DellDiagsDxe 63220A49-7909-44D6-A6D0-F3634CC921A6,OemPei 63296C52-01CF-4EEA-A47C-782A14DA6894,SmramSaveInfoHandlerSmm 632D5625-B73D-43B8-AF30-8D225D96168E,BasePalLibNull 633194BE-1697-11E1-B5F0-2CB24824019B,AmiPeiEndOfMemDetectGuid 633205EB-9A1F-4CA7-AAC2-AD810DB10BAF,FjMfgChangeSetupDefaultDxe 6339D487-26BA-424B-9A5D-687E25D740BC,Tcg2ConfigFormSetGuid 633EF394-8950-4544-8AA3-E6B0B72014D8,AmdMemSmbiosV2RmbPei 63438C6E-971C-4E40-8F0B-1109457BE333,LenovoCpuInitPhnxDxe 634DF746-6F4B-4684-93E6-526653E7C35A,OemThermalPolicy 634E8DB5-C432-43BE-A653-9CA2922CC458,Nvme 6362004D-B2A3-44E1-AF2F-E860E5BD572E,CbsSetupSmmBRH 63722DE5-EC4A-4237-953F-5502246776B2,EventLogSmm 6372357A-06D7-43EF-B55C-1964F3DD6916,DxeIpmiInitialize 637E0BA6-C5BB-41B7-A23B-3A65CFC3E9DB,BatteryState5 637EB153-DB4A-42F1-9101-AAA0FE3EE156,FjVgaSmm 63809859-F029-41C3-9F34-EEEB9EA787A5,IioInit 63811871-CCD2-1042-AACB-5E5B88FF6E68,DiagAccess 6381293C-7AFE-49D9-AFFA-4B8F879A9BCC,DellAutoRtcResetPei 63819805-67BB-46EF-AA8D-1524A19A01E4,SmallLogo 63819805-DDDD-46EF-AA8D-1524A19A01E4,SmallLogo 6388CB0C-CD3A-4D1E-B26C-4D823D8B4BDF,PciExpressDxe 638E449C-8659-4887-8281-275FAED2A743,HpTxtTpm2Provision 6392C853-B610-4A4E-9644-3DBF88AE11EE,NuvotonFwManagementDxe 639707CE-F961-4F3D-99BD-7DFAFFCB1D54,PlatformInit 639B7869-4303-44C6-89AE-ADF4F1333318,EcSecureFlashDxe 63AA9A76-D85F-4A38-B851-A09D4DC1FC1D,EcRegionAccessDxe 63AAAFFA-53BD-4ED1-B5A3-A8A5619C563F,SlotDataUpdateDxeLightningRidgeEXECB2 63B013F9-6A3C-416B-8FB2-3E03BB75C125,DellSmbiosDxe 63B079FF-216B-408C-8C2C-1AFD25812AA9,CheckAudioState 63B2BC2D-DF5D-419B-873C-2C78A6604A7A,SgDxePolicyInit 63B3D796-8C6B-42A4-AB51-7BAD4DE173D3,AcpiSmmPlatform 63B3F1F7-1FC9-4FF0-88F6-00706EC86ED7,RTS5264Dxe 63B5AF02-29C8-47A1-90FB-55D331FE4791,AmdHotPlugSspSmm 63B6E435-32BC-49C6-81BD-B7A1A0FE1A6C,PeiSmbusPolicyPpiGuid 63B93CAD-EB6D-4418-9C6D-98702F3D5262,Win7BootModeFeatureByte 63C2637F-F476-4D48-96C5-FF0BD01147AB,PasswordMeasurementDxe 63C4785A-CA34-4012-A3C8-0B6A324F5546,EfiRngAlgorithmX9313DesGuid 63C64ECE-DA83-479D-B382-F4939072C80D,DellGraphicsDrv 63CBCC47-65BA-4C19-9FC0-0AD81C9DB818,SleepStateSmi 63D1F792-7731-4A44-BC8E-9180A36FD0A8,IccOverClocking 63D91D20-EDF8-48A3-87A9-D6526811DB1F,Armani_PowerReportDxe 63DAB9CE-5D03-4560-8A89-D81366363A2C,ChipsetErrReporting 63E3BDCF-2AC7-4AC0-9B92-03A7541422FF,Hash2DxeCrypto 63E60A51-497D-D427-C4A5-B8ABDC3AAEB6,EfiRegexSyntaxTypePerlGuid 63EA1463-FBFA-428A-B97F-E222755852D7,HighMemDxe 63EBC012-0D65-4D56-85E7-F5A7F4022730,KEMhLpcDecodeDxe 63FA7900-6DD2-4BB3-9976-870FE27A53C2,BackButtonSmall 63FF8EF1-20A2-41A7-AE88-1E262E8AF33F,AmdNbioIOMMURMBPei 64021DFE-A62C-42A7-BF46-15078CDF9F89,EfiLpcPolicyProtocol 64192DCA-D034-49D2-A6DE-65A829EB4C74,IccPersistentData 64196C76-58E3-0B4D-9484-B54F7C4349CA,BootModePei 641F19D4-BD65-4D5F-918C-2D53F3D49707,FJPBA_64 642237C7-35D4-472D-8365-12E0CCF27A22,BootMaintFormSetGuid 6426C814-601A-4116-9E9F-BF9D6F8F254F,DellFlashUpdateDxe 642CD590-8059-4C0A-A958-C5EC07D23C4B,EfiPlatformToDriverConfigurationProtocolGuid 64302048-7006-49C4-AF0A-5ACE61257437,ConfigRouting 64376478-47EA-49E7-AEFF-D763F84729F9,dGpuDetect 6439C273-09B3-43CB-B25E-C675F5BCC73D,AmdMemBrhSp5Pei 643B8786-B417-48D2-8F5E-7819931CAED8,PeiInMemory 643DB325-A252-4BD5-B563-CEA73D64ADA8,FjSystemDataFvDriverDxe 643DF777-F312-42ED-81CC-1B1F57E18AD6,PchSmbusArpDisabled 6441F818-6362-4E44-B570-7DBA31DD2453,EfiVariableWriteArchProtocolGuid 645462F4-AF50-4FC5-838F-1DFBE3225511,UsbCdcNcm 6456ED61-3579-41C9-8A26-0A0BD62B78FC,Ip4IScsiConfigGuid 6467DB88-3E72-4488-91E8-7E028AD08CF8,DellIntrusionDetectPei 6470A429-20F8-4F17-A8C7-00EAEC19FD0B,FchEspiCmdPei 64730D93-E45B-4AF1-91B3-75B52ECBFAE9,MrdMultiBoardSupport 6483998C-9638-4C72-BD1A-77C55C5CEE8C,OSDSMIfunctionSmm 648CE07B-AE5D-4973-BD3C-8C9153C05DC5,SgInfoHob 6490F1C5-EBCC-4665-8892-0075B9BB49B7,CpuDxe 64980BB9-7BA3-4CB0-AA83-FE396A7F6724,UbaMainPeim 64A11188-5B86-4F59-A702-73365896E65E,AcpiVTD 64A892DC-5561-4536-92C7-799BFC183355,EfiIsaAcpiProtocolGuid 64AAEAE0-92DF-4980-8668-6EB5EAAF4393,FvInfoPei 64AF2828-82FD-49B7-BBD9-7B02BAB72CD5,DellEDiagsSmm 64AFC5D0-1DDF-4724-BE8F-ECECC0468E77,AmdNbioSmm 64BEA199-7C6C-4F51-B0DA-F42C897DA5CC,SetupDataParser 64C0771F-0901-471E-BE1F-CB7DADDFB247,DxeTAC 64C475EF-344B-492C-93AD-AB9EB4395004,EfiCompatibleMemoryTestedProtocol 64C96700-6B4C-480C-A3E1-B8BDE8F602B2,AmiPeiAfterMrcGuid 64CB24DF-A67F-5212-BB5F-ABE151768BB6,PowerLedSmm 64D025C4-1EBF-4C22-927B-74FE43DDA412,OemSyncSetupRV 64DC5B4E-9179-4918-8903-D75E1BC8B263,Mec5107Dxe 64E6D006-E62A-481E-8F5A-3F76C9184741,AmdSmmCommunication 64F0A6E6-DDA9-4A5A-99A6-9CC8B8B9A733,FjMfgAcCheckDxe 64F784EB-69FE-4548-BFEB-ADD7606997CC,SaveRestroreFrameBuffer 650870ED-2F7D-4686-BE6E-2D0494F4B629,EventLogPei 650DFE73-6AC8-45E6-9215-9872BEC8B276,ICCDXE 6520932A-3C30-48A7-9E9D-4DD10CD49D4C,EcLabProductionModeSmm 65246A3B-33EF-4F7E-B657-A4A633F130B0,LenovoSystemVariableSmm 65289AE5-1589-484C-A610-90E10AC2DB28,SiSaPolicyPpiGuid 652B38A9-77F4-453F-89D5-E7BDC352FC53,PeiUsbHostControllerPpiGuid 652EC62A-DC15-4B73-B6BD-DAA13BF1D88C,Cf9ResetSmm 652FC80A-684E-40B6-86AC-710148E2C540,ObjMgr 6537C422-DC1A-4ABB-9D25-EAAFE3D3DFCD,AMDPhxGenericGop 6540F933-425F-464B-B4AD-B93A6ED0A8F5,OcInit 65468E65-77F3-40AA-A149-32F223B0A3BA,ControllerDiscoveryPei 654A4AC8-30B0-4361-92C5-72D1F32A589D,TypeCPostWmiMessages 654CE064-776B-4759-98F5-AB0EDF692D0E,AmdPspDxeV2Stp 654FE61A-2EDA-4749-A76A-56ED7ADE1CBE,CmosPei 654FE61B-2EDB-4740-A76B-56ED7ADE1CBF,PowerLossFun 654FE61C-2EDC-4741-A76C-56ED7ADE1CB0,RTCSingleWakeUpInPei 65530BC7-A359-410F-B010-5AADC7EC2B62,EfiTcp4ProtocolGuid 655B0D2F-BCF1-4B1E-9A6A-A2E891BB50E4,BiosGuardFirmwareVersionPeim 655E4407-C79C-42B7-BE2C-9E1A266B08A3,AmdFabricRsSmm 655E4C19-9D7B-4491-AD10-A49FF355C00A,FastBootOptionBds 65639144-D492-4328-A498-F4B5545E4A30,IffsPartitionStatusProtocol 65675786-ACCA-4B11-8AB7-F843AA2A8BEA,WdtHob 6568A3D6-015F-4B4A-9C89-1D146314130A,EfiSmmBaseThunkCommunicationGuid 65691229-3CE4-4147-ACCA-E558A23AD1AA,PciePortControl 656F7E22-5701-4341-A9A7-99A5D40A5245,AmdFabricSspDxe 6572045F-B1BF-458E-BC02-706762C609AE,EfiHeciSmmRuntimeProtocolGuid 657417C6-3C37-4C7C-907A-72C9EF34F802,FjEcDxe 6579AF18-92A2-415D-81D8-8B8FD867B42E,AmdSocSp5BrhPei 657F02D5-969B-402F-ABAE-E3B354D721D9,WifiProfileSyncDxe 65838FDF-F450-4394-B4CC-43953E72943D,FjDashCtrlDrv 658D56F0-4364-4721-B70E-732DDC8A2771,TrustedDeviceSetupApp 658DE942-03CE-43A3-891D-46423C5345BC,DellMfgSmm 6595CA83-8D11-4BA5-BDD1-92879864D320,PiSmmCpuDxeSmm 65986603-43BC-4ABF-94D8-5A58847381A6,SiliconPolicyDxe 659CD151-CA74-47AC-80DF-055F35BDBF4B,ControllerDiscoverySmm 659E9707-D2D6-4A66-9E38-4E840B3245C5,OemAfterSmbiosDxe 65A18235-5096-4032-8C63-214F0249CE8D,BaseMemoryLibSse2 65A72030-B02E-4BF3-8424-BA5F2FC56DE7,LenovoSetupUnderOsSmm 65E5746E-9C14-467D-B5B3-932A66D59F79,XhciPei 65E9EB9D-812D-4161-99C5-05AC4BCCA494,DellSmmGpe 65EB76C2-7131-4229-B8BA-CA64C7B92D75,SecureCorePcDeviceIdentifierDxe 65EC2EBB-79A4-41DA-AA73-074B884226C1,PlatformDxe 65FA678B-A1D8-40FD-B913-DFFA9ADA2816,DellHddSecurityDxe 65FB555D-5CCA-40C3-9967-227988288DD8,LenovoSupervisorPasswordManagerSmmProtocol 66014986-A45D-4C22-9F6B-7D4EF2038CAB,OemHddHeadParkSmm 6602BA49-08E4-4428-9661-D5E7157F8A9D,AmdLegacyInterrupt 66077457-4E51-4BB6-889B-1E8E1939A214,SmmWakeOnLan 66099139-C91F-4DD5-88EC-5707DE6881A4,HpFBCacheDxe 660C7774-313B-434A-8633-5D1488CCD172,I2CTPResetPei 66247CE3-F9C5-44BB-B53A-7EA96C435FC1,H19ReflowProcess 6626A54F-7E98-4145-8F8F-8DB70D3B04CE,PartialMirrorHandler 6629B2AC-295D-4566-8CCB-EC4182453FE0,AmdLegacyInterrupt 662AD66E-F52D-47F6-A350-488DB9F8AF68,FirmwareUserInterface 664EF1F6-19BF-4498-AB6A-FC0572FB9851,SmmGenericElogProtocol 6652DF0F-E80E-4BA1-8C3F-2A4E5B56324A,SioSmiWdtDispatcher 6653876C-F6A1-45BB-A027-20455093BC6D,SecPeiFspPlatformSecLibVlv2 66595A32-1877-4AE1-8748-809666EDADC7,AppleVTdDxe 665D3F60-AD3E-4CAD-8E26-DB46EEE9F1B5,RnRConfig 665E3FF5-46CC-11D4-9A38-0090273FC14D,EfiWatchdogTimerArchProtocolGuid 665E3FF6-46CC-11D4-9A38-0090273FC14D,EfiBdsArchProtocolGuid 66633083-3F16-43B2-8ED2-801A2EDC3824,DashBiosManagerDxe 666C5BD6-FD14-45A8-A639-E382A7E1BAA2,OemNVMEGen5 666E8FFF-F937-41A7-AF2F-F72B790DEB8C,SmbiosDataUpdateDxeXPV 6672D686-98C0-4585-9C15-9469AD4DBBD1,DHCP_vProPei 667A8B1C-9C97-4B2A-AE7E-568772FE45F3,BaseResetSystemLibNull 667C65FD-F778-44EB-ABBE-A5497AF8A85F,PciLegacy 667DD791-C6B3-4C27-8A6B-0F8E722DEB41,EfiEventNotificationTypeDmarGuid 667EF084-74EF-4707-90B3-75145920B39C,EfiPeiBootInNonS3ModePpi 6683D10C-CF6E-4914-B5B4-AB8ED7370ED7,AmiValidBootImageCertTblGuid 6684D675-EE06-49B2-876F-79C58FDDA5B7,IrmtAcpiTableStorageGuid 668706B2-BCFC-4AD4-A185-75E79F3FE169,NvmeDynamicSetup 668C17B3-7E21-4229-A072-2936F414D73D,LEMRomLayoutDxe 668F4529-63D0-4BB5-B65D-6FBB9D36A44A,QemuBootOrder 66916462-1F93-4C06-AB1F-F0F63583B916,OemDptf 669346EF-FDAD-4AEB-08A6-21462D3FEF7D,PerformancePkgTokenSpaceGuid 6695974D-968C-420B-80B9-7870CD20118F,PlatformSecLibNull 6696936D-3637-467C-87CB-14EA8248948C,SimpleTextInOutSerial 6697CE1C-D9B6-4535-B661-8B731BFF0408,SmbiosType2 6699390B-DD2B-432F-BEB2-8C7D6A2C0CFC,HpPlatformPeiServices 669A9747-A65E-4F39-8FD6-9557573BC9DA,DellSystemIdPolicy 66A06013-AEBC-4A1F-A01A-AA3A74F98836,HeciAccessSmm 66A5851D-661E-4904-85D4-0A6608805CBD,OemEepromLanDisable 66BC00DC-8557-4FC1-9BEC-137760E27E96,RasClvMirrorFailoverProtocol 66BE3B16-4E6C-4BF6-A4E8-F879B8ACF16D,DellSecurityAuditDisplayConfig 66BF079F-2A14-47ED-A0F2-90CAF356E088,ASM108XPEI 66C36996-C62E-4D13-BF9A-756E66B01A3D,StoreRestoreMbrDefaultsAndWmi 66CEB16A-66DD-40A7-AAFF-0A9B9F83FD6B,WwanReadySettingDxe 66D54351-4C4B-4470-9599-F17A32752871,AplRecoveryPei 66DE8584-DE01-4BAB-B5D0-8B99594372FC,IchUhciPei 66DECFBB-345C-4892-9C92-D07C70DBC817,AmdFwConfigSmm 66DFDAC0-AA71-434E-8BE7-6A959B42C3A9,OemAmt 66E6C2E4-0245-4545-8165-12322480AF31,AdvancedPmaxDxe 66ED4721-3C98-4D3E-81E3-D03DD39A7254,EfiUdp6ServiceBindingProtocolGuid 66EECF40-6312-4A1A-A83A-B3B2F8D8A71A,LenovoVariableDxe 66F0C42D-0D0E-4C23-93C0-2D5295DC5E21,BiosGuardHob 66F831AD-FCCC-4221-B11C-7F4F4802B690,CbsBaseDxeSTX 66F8B964-A3F1-497B-B228-26B89EC3BDCA,AmdDrtmControlPei 67056139-CE96-4688-B7E7-73803EA528FA,ConfigChangePromptDxe 6707536E-46AF-42D3-8F6C-15F2F202C234,MXMdat 6711A637-2C2B-48EA-BD29-88E8A2F80B93,DellFingerPrintReader 6713DB37-20C7-4E23-BD42-C5B300A6AE32,SmmPBDispatch2OnSmmPBDispatchThunk 671AC69C-AF3A-47F1-884F-A4B04B257057,AmdPspPeiV2Phx 67269263-0AF1-45DD-93C8-299921D0E1E9,SmbiosUpdateDataProtocolGuid 672A0C68-2BF0-46F9-93C3-C4E7DC0FA555,UsbCredentialProvider 67329203-BAA6-49CA-B3C2-3784EB517017,KvmPlatformDxe 67375F4E-29AE-433F-9C2A-29EE6C7F5F2A,EmulationEDIDPEI 6737934B-A27E-4C05-AD5B-6AB86273680B,AmiNbMrcInfo 6737F69B-B8CC-45BC-9327-CCF5EEF70CDE,AmiPlatformIdeProtocolGuid 674177F0-730F-4EB9-A269-9C5F285230D8,DellUsbBusDxe 67439E94-FD37-4A32-BD53-3B97386432E4,Ahci 67451698-1825-4AC5-999D-F350CC7D5D72,CryptoPPI 67499F84-F2E5-4DD2-9E56-C6E389DD6173,DellRtcAutoOnSmm 675846BF-969B-4F29-ACBB-81BF308EB457,FjSiidPostHandler 675B8766-7F03-4181-9BE1-73BC45DFF799,EfiIpmiCmosClearVariable 67620EFF-C802-4BE8-BFA1-125EB25D1E8A,PublicWmiDxe 67666768-9C64-4CAA-BAF4-CA3E4CB7697A,EfiSmbSmmDaCiProtocolVer2 6776572C-FE56-42CA-9B93-3D0960E7583A,IconBrokenBoot 67791E00-0C05-4AE7-A921-FC4057221653,TxtOneTouchDxe 677DA7BA-DF14-429A-A74F-78417E8B09E4,PhMePeim 67820532-7613-4DD3-9ED7-3D9BE3A7DA63,Aint13 67856945-C6BF-476A-925D-EBD1CD2EAE11,KEMrJtagDxe 6789A9E8-6FE9-4E1C-90F9-59329ED27300,AmdFabricRmbDxe 6799D91E-0311-41F0-99AF-F162B9EC93CE,ProcessVideoOpromDxe 679AEE8A-CE51-4CCB-9AF8-90E055B3933E,NvmeRecoveryPei 679E3A98-341D-464F-8D78-3CE744F0BEB7,FchYuntaiSsdt 67A54A24-3F4F-4048-8787-3E5AA2A0B7D2,SAPolicy 67AC0B1E-54C2-41A6-B57E-C2A321416ABC,ActiveBios2 67AFDE5F-EF16-47B8-BA19-C21B3907DBF1,MiscGaIoSmm 67B495CF-17CE-424B-9633-49773AE63908,UsbWorkaroundDxe 67B5787C-0E6A-4796-943E-A093B73A0267,HiiUtilitiesProtocol 67BBC344-84BC-4E5C-B4DF-F5E4A00E1F3A,SdHostDriver 67BC3883-7E79-4BC1-A33E-3AF7D17589BA,AmiHddPowerMgmtProtocolGuid 67C4F112-3385-4E55-9C5B-C05B717C4228,EfiSmmSwapAddressRangeProtocolGuid 67C53648-DA56-4726-AE21-FBA4D04686B3,RsdpPlus 67C5DCDB-CFF3-469F-FFFF-FFFFA7E16F95,XnotePlatformPolicyPei 67C63A11-F89D-4500-8270-D9DB251EB2AF,Ps2KeyboardPei 67CA9132-4415-4815-B2E0-DBDF68787871,OemMedinaEC 67CDD184-C0D9-4358-B376-330BF67D01AD,HpCommonFlashInfoSmm 67D1C54D-B8F7-4D69-A8F3-FF9116C4C02A,FchKunlunMultiFchSmm 67D6F4CD-D6B8-4573-BF4A-DE5E252D61AE,EfiJsonCapsuleId 67DB1E5C-EE66-48FD-A4B5-E9BD16EAFDF6,SmmAccessPei 67E0B205-4517-AEF4-3CE0-108993EEFD52,DellCommonBiosMenu 67EE3885-80D7-4494-A5FD-445527E23F0E,FirmwareRollbackProtectionDynamicUpdate 67EF7A73-2594-4A5E-930A-E166FABCD2C8,EfiDmiFormatFru 67F8444F-8743-48F1-A328-1EAAB8736080,EfiCertRsa2048Sha1Guid 67FA951E-4FA2-9F4E-A658-4DBD954AC22E,HpSmbiosDxe 67FB408E-A519-40E9-8321-79F13FFDF9AF,RstResourcePei 680027A0-2FDF-4E07-B518-E3631685914D,HpStorageResetHookDxe 6806C45F-13C4-4274-B8A3-055EF641A060,DxeFileExplorerProtocol 6807217E-E8DE-42D0-91D9-60AECED7420D,Stall 68155128-AB86-437C-B235-4F860939A56C,TouchDriver 68198A68-D249-4826-BC5E-45DF0CCA2A53,EmuLinuxLoader 681D2368-4540-4FA9-8C1D-8B79DBF6B9AE,HybridGraphicDxe 681F3771-6F1D-42DE-9AA2-F82BBCDBC5F9,WinNtFlashMapPei 6820ABD4-A292-4817-9147-D91DC8C53542,EfiPlatformErrorHandlingProtocol 682316BC-5595-4152-97AC-8A5FCCC6EA8D,AmtLockPs2ConInDxe 682FC854-D0CB-4C9F-A8C4-F4F97A39EF3E,OemProcMemInitLibPpi 6834FE45-4AEE-4FC6-BCB5-FF45B7A871E2,BeagleBoardTokenSpaceGuid 683732B5-2A38-43A8-9CE2-02CD7250DCD9,A01BootDeviceServiceDxe 6841E518-1D6F-4B75-B4D1-CF190DC56B01,PegaHotkeyHook 68455128-AB86-437C-B235-4F860939A57C,TouchDriver 6847CC74-E9EC-4F8F-A29D-AB44E754A8FC,ArmMpCoreInfoPpiGuid 68501047-111F-4BD2-AA33-6C1ECE271259,ApplePlatformInitDxe 685026CA-92FA-45FD-BC72-BA44700EE575,UsbPortXhciPlatform 68642720-69BB-4BC7-98CF-5C31EE74AFFB,PeiWakeOnLan 6865C455-8626-40D8-90F4-A69460A4AB5A,DcaHob 68661738-D70D-4BA1-BFCE-7DBABE14FB9C,FileExplorer 6869C5B3-AC8D-4973-8B37-E354DBF34ADD,CmosManagerSmm 686A1553-4BD8-4794-AA27-27F57384A990,DellEepromToNvs 68744031-8608-4B25-BBA1-DB4EA319D6EA,OememDxe 68744033-8608-4B25-BBA1-DB4EA319D6EA,ModernStandby 6874C031-8260-4B25-BBA1-DC4EA319D6EA,OemDxe 6877BA45-7E87-449F-984F-FD04503D7A28,SmcSetPowerStatusSmm 687A830D-55FB-415A-9520-182789353284,SetupExit 68866B10-73DA-45EA-A808-15A57D947F98,WatchdogRuntimeDxe 6888A4AE-AFCE-E84B-9102-F7B9DAE6A030,EmuBlockIoProtocolGuid 688BC4BB-6FDB-4B33-A8E1-D7A952DF4B4A,AmdSmmControl 6895F6F0-8879-45B8-A9D9-9639E532319E,UhciPeiUsb 6896350D-C3F1-4A4C-B42D-448D572896C7,DellBootMenuFlashBin 6898A004-3D24-4F38-8507-DC226B3D90CA,SpsPeiPostMem 689CDA29-29A8-42F6-93FC-46BA5F180651,ImagePasswordProceed 689E4C62-70BF-4CF3-88BB-33B318268670,EfiBlockIoCryptoAlgoAesCbcMsBitlockerGuid 68A10D85-6858-4402-B070-028B3EA21747,SpiFvbServiceSmm 68B09391-751F-46FF-A4D6-71B8502F52AB,KeyboardLayoutDxe 68B81E51-2583-4582-95DB-C5723236C4F1,NonSmmEmul6064TrapProtocolGuid 68BC3095-8839-4A97-8FEA-BEE06ECA7BBB,LenovoW25Q32FlashPartDxe 68D076CD-D8F3-409B-987F-1012CDB88242,SlotDataUpdateDxeLightningRidgeEXECB4 68D89864-C0A8-490D-BE18-C83D67240928,SmbiosDataUpdateDxeNeonCityFPGA 68EDC148-7120-41B4-9F53-F51BFC81A74E,CbsSetupSmmSTXH 68F0810C-1DDC-4407-BD65-872101407AB7,AmdCpmManageabilitySmm 68F19A73-C447-4FDD-B4B7-F380F7DD290F,FprGoodixDriver 69000FC4-15E6-45CF-A6D4-73337A9B5958,AmdCcxZenZpPei 69003CE2-F796-4EC4-AD17-B4D409298636,MctpSmbusSmm 69031D31-FC0A-4CEE-9803-F53015C4208D,RealtekGopLoader 6903A447-CB4F-45F6-89A2-7E7E2F9EE14C,InstallMsdm 69056653-3FC6-4382-90EC-B5FAF7599FD3,CnlHsioTuning 6906E93B-603B-4A0F-8692-832004AAF2DB,PchSmmPeriodicTimerControl 69110D87-9BB3-47FC-B412-22E4F135AE38,AmdCpmMemEyeToolDxe 69125D01-F951-47E9-9583-EF6A27AF703E,SpiAccessDxe 69282DF3-778F-4269-91AA-D7DF6E193317,Uc2OnUcThunk 6932FEBD-2397-462E-B0F9-EEB619FA693B,StatusReport 6941C2B0-CE44-4099-983A-03913B3D765F,EncryptDriver 69439F6E-FA94-4428-AE02-1F5C22EC72AE,AdlinkMeConfig 6950AFFF-6EE3-11DD-AD8B-0800200C9A66,AmdAgesaDxeDriv 6956714C-ACC3-448F-86B6-56AD3A2EB1BD,AdditionalLenovoUI 69585D92-B50A-4AD7-B265-2EB1AE066574,FmpDxe 695BEC93-82AE-4C17-BDAD-7F184F4E651D,LibC 695D7835-8D47-4C11-AB22-FA8ACCE7AE7A,EdkiiPlatformSpecificResetFilterProtocol 695D8AA1-42EE-4C46-805C-6EA6BCE799E3,EfiPeiVirtualBlockIoPpiGuid 69735520-DA83-444A-93DC-BDDD59E59182,Heci3Smm 6973BC24-57F4-46B0-8766-C025ABB97AA4,NvmeShutdownNotificationDxe 697CFA95-B1F2-4ED7-A0D2-7AC6E47B3C99,HybridGraphicsDxe 697D81A2-CF18-4DC0-9E0D-06113B618A3F,EfiExtendedSalMpServicesProtocolGuid 697E6EE3-2EAF-41CC-AC6E-F4EFDFE93E6D,AsfMsg 697F0EA1-B630-4B93-9B08-EAFFC5D5FC45,FmpDxe 6983D90E-3EF7-4D09-8F36-63AE0C59CFF2,DellDiagSmm 6987936E-ED34-44DB-AE97-1FA5E4ED2116,HelloWorld 6988173D-B7C9-47BE-BDDF-255A18676913,UefiDriverPolicyDXE 698AC232-28A6-40EC-94AA-7D302DBF5667,PdrCapsule 699190BD-6456-4286-823C-28E4442DFCAB,AmdMpmPowerSupply 69967A8C-1159-4522-AA89-74CDC6E599A0,IdeSecurityPwnv 6996FC68-B040-4616-A89C-60B4C95D7BE6,ProjectDxePriori 699ADD70-8554-4993-83F6-D2CDC081DD85,SerialCapsuleGuid 69A79759-1373-4367-A6C4-C7F59EFD986E,FspReservedMemoryResourceHobGuid 69AA54B8-9795-4E7A-8689-64A96C9FE3E9,PeiGpioControl 69B792EA-39CE-402D-A2A6-F721DE351DFE,EdkiiSmmMemoryAttributeProtocol 69C5D214-F993-4C34-9011-A06787E5C956,FjSxEnterResumeDispatchSmm 69C5D5FB-FE8D-4336-BE00-582C621A23E3,AmdI2cConfigDxe 69CA132E-062C-4D7F-BE7F-9B0B8446C888,PhLegacyRegionSmm 69D13BF0-AF91-4D96-AA9F-2184C5CE3BC0,PlatformModuleTokenSpaceGuid 69DAB0B4-5FD9-4FEC-AA30-298D2B5A342E,DellFormBrowser3 69E1A19F-BC8C-4021-B3D9-E0B2545092C6,OC_Tuner 69E6DD6D-F09E-485F-9627-EB70E9CFC82A,UbaInitDxe 69EF78BC-3B71-4ECC-834F-3B74F9148430,DellSmmFlashWriteProtect 69F04F6E-BCCF-45F8-894E-2C68088F94FF,I2cKbDxe 69F3077F-4D4E-4FDE-BBE3-9DCDB120F39B,UsbOcUpdateDxeFischerLakeRP 69F97A4E-1395-434A-A5D3-FF9CEA284885,DellDiagsConfig 69FD8E47-A161-4550-B01A-5594CEB2B2B2,IdeBusDxe 69FEEBE1-D86E-49EB-B60F-A87CB0FBC822,FchSmbusDxe 6A056C67-3128-4102-9EC7-265E73AAB860,GopCardEnabler 6A061113-FE54-4A07-A28E-0A69359EB069,SgTpvACPI 6A0F22E8-69EE-4F1C-9336-69863FD96EE9,SecurityEventDxe 6A11F1A1-318B-4712-89C9-2DBF00995BE0,Cf9Reset 6A159D4F-6E6B-4523-AEB5-F7AF1C444B0F,EfiPprVariable 6A1EE763-D47A-43B4-AABE-EF1DE2AB56FC,EfiHiiPackageListProtocolGuid 6A30E568-598D-407A-A777-8AEE93BA2812,AmdPlatformRasBrhPei 6A3AEA11-2CC2-4B66-B4D3-A8779D6087C1,SystemSecureBiosPei 6A3DEF38-0A45-4107-A74E-ABF2B8EAED86,MemorySubClass 6A4B2718-CAF3-4D51-BD91-9EB1D6229F57,PasswordEncodeProtocol 6A504489-884E-4465-A02F-03B248CDEF13,UserInterfaceTheme 6A54AF9C-00FE-46EE-9AA1-359C9822C8FC,SlotDataUpdateDxeEldorado 6A628EFE-3682-4FDC-A31E-C635BDF18CC8,BdsMilestone 6A763867-4086-40EC-A5AC-6D63021EFEDC,DellSmbDaTokenCfgPolicyGuidVer2 6A79EBF1-BBB6-42A7-BDA1-5EACF52F2480,MotherBoardHealthDxe 6A7A5CFF-E8D9-4F70-BADA-75AB3025CE14,EfiComponentName2ProtocolGuid 6A7B1C86-590E-47A7-971A-C49B408D5ED7,LenovoSetupSecurityDxe 6A7FD3F4-53EE-4DEC-A1E5-69175B7FD581,CpuCrashLogAgent 6A8209ED-5D36-4906-A316-5541006F558E,OneKeyBatteryDxe 6A85825E-C459-4108-9B81-6602953468E4,FjGenericItemStorageSmm 6A8A395F-4C07-49D1-B94C-22ED50D425F8,LenovoSecureKeyDxe 6A8AC704-E589-4DD0-8EE0-31F87FBE3323,DxeTouchPanelInit 6A908656-35A0-4740-BE0F-4B364FB7945B,FchI3cConsumerSPD5Pei 6A969F3E-ED1F-41FE-A932-43994B05548F,SocWdtSmm 6A9839EE-070E-4B5F-8CCD-87BB12345F38,HddPasswordDxe 6A9D5926-EB27-473E-82E3-223B12CCAA12,FjGabiFlashCoreAbstractionDxe 6AA1A3CC-52C4-4B03-99F7-288F345C1DB3,DellAudioConfigDxe 6AB36EA4-CBF2-48DC-B610-9EBF193A5DEF,OemDisplayModePei 6AB58A31-4BD5-4CAC-8966-9A7FF01C000B,PlatformVTdSamplePei 6AC3044D-E062-4F23-A60B-286764DD09F5,DellSmbiosSmm 6AC5D123-C6E5-41BA-9BE3-A0371EE54B78,SetupConfigUpdateDxeNeonCityFPGA 6AD37609-A9F9-4587-9023-7820E10F5B7A,HiiLayoutPkgDxe 6AD9A60F-5815-4C7C-8A10-5053D2BF7A1B,EfiSerialTerminalDeviceType 6ADFFA83-55AE-4C9F-94A4-800C469BDABC,StaticSkuDataDxeLightningRidgeEXECB2 6AEA1B20-6384-4B5F-ABAC-776A11698DED,LegacyBiosReverseThunk 6AF31B2C-03BE-46C1-B12D-EA4A36DFA74C,EdkiiPeiNvmExpressPassThruPpi 6AFD2B77-98C1-4ACD-A6F9-8A9439DE0FB1,EfiSmmStatusCodeProtocolGuid 6AFDA662-BFB0-43B8-9848-B67DCD452157,EcdShellApp 6B1AB225-2E47-4A61-8FF5-B8EA42EE3EA8,SecureFlashDxe 6B1C5323-297E-4720-B959-56D6F30FEE00,YieldingDelayDxe 6B1EFA14-06B8-4127-975A-5B2DCF5392E2,SmcPostMsgHotKey_DXE 6B216D1D-5D32-41FD-9698-6F8E58199454,FlashInfoSmm 6B26DE1E-3DF2-4A1D-9B7F-B816B8C90872,ComputraceSmm 6B274332-01AB-4AC3-B3AE-1DE3C65AC3AC,PmemResetNotifySmm 6B287864-759C-42C4-B435-A74AB694CD3B,SpecialBootStubDxe 6B309956-6617-472B-BBC7-2A09E55E3E52,ProgressBarFullLeftEndcap 6B30C738-A391-11D4-9A3B-0090273FC14D,EfiPlatformDriverOverrideProtocolGuid 6B35FEF5-022F-4596-8422-59AFA264C03A,WmiRmtApi 6B38F7B4-AD98-40E9-9093-ACA2B5A253C4,DiskIoDxe 6B41B553-A649-11D4-BD02-0080C73C8881,WinNtSerialIoDxe 6B4D57F0-6AB0-4A7D-BAB2-23425EF055E5,ICE30plusDXE 6B4FDBD2-47E1-4A09-BA8E-8E041F208B95,PchUsb 6B558CE3-69E5-4C67-A634-F7FE72ADBE84,BlockMmioProtocolGuid 6B588D7C-C72E-4A78-8858-77E1DA8FC7F7,ProjectOwnProtocol 6B6D0A03-FD5D-4E10-9774-2D3EAA62EB61,SklRaidDriver 6B6FD380-2C55-42C6-98BF-CBBC5A9AA666,SocketSetup 6B7067C7-A843-A34C-9530-48446963B740,KeyMapLibNull 6B760600-8E5A-4945-AB9C-5732FA90A0B3,FjLanCapsuleDxe 6B789215-B063-45FD-868A-668A49F00EC6,TXTWrapperPei 6B844C5B-6B75-42CA-8E8E-1CB94412B59B,TcgPeiplatform 6B85F263-F584-44F8-BB5D-F02C40795D8E,SmmTcgStorageSec 6B8947C2-4287-4D91-8FE0-A381EA5B568F,rmHwA15Guid 6B8CE99C-9C68-41EC-B507-E03A143C7ED4,WirelessUndiLauncher 6B9FD3F7-16DF-45E8-BD39-B94A66541A5D,EdkiiPiSmmMemoryAttributesTableGuid 6BA22418-4704-4507-ADC4-364B8667E586,LoadSecureWipeImage 6BA6F808-527F-4186-9C30-670499BD92D1,DellSmmComputraceAcpiMode 6BB0C4DE-DCA4-4F3E-BCA8-330635DA4EF3,EmulationDfxSetup 6BB4F5CD-8022-448D-BC6D-771BAE935FC6,EfiKmsFormatSha256256Guid 6BB945E8-3743-433E-B90E-29B30D5DC630,EfiIpmiTransportProtocol 6BBD635A-B13D-4A06-9F8F-1FA086D4EC0F,EcMudSmm 6BC32C76-91DB-4548-A419-0B889EB8196F,EventLogApplication 6BCF854D-132D-49B2-815C-F00151C7BBBB,FjRt8111EepromLess 6BD1E7D5-8234-4894-951F-FEE390C2EB6E,FchSmmDiagDispatcher 6BD7DE60-9EF7-4899-97D0-ABFFFDE970F2,EfiCryptoPkgTokenSpace 6BDF1640-FFC1-4C89-BA76-8DAB230E750C,AsusModuleToIntPeiWrapper 6BE18C9C-BF61-499E-88EC-5CD57430460C,ScSmiDispatcher 6BE272C7-1320-4CCD-9017-D4612C012B25,AdapterInfoPlatformSecurityGuid 6BFF8B94-D98E-4C7E-8300-E5B64701C118,ApobZpRvDxe 6C02F70F-9FBC-4A44-AC19-C648A7AA5541,FjKbcEmiDxe 6C077FAF-8258-4C08-B86D-B8DC632632B4,SmmPlatform 6C09C5B9-BF3F-46D2-9198-4A064826F414,EfiWheaPlatformSupportProtocol 6C0E75B4-B0B9-44D1-8210-3377D7B4E066,SmmAccessPei 6C160B26-E04C-4098-A6AC-C8C7B6471A86,SetupConfigUpdateDxeLightningRidgeEXECB2 6C1623A2-3245-4F42-A8CE-F73B054FAAFC,MpmDxe 6C1F082C-93D1-4F3A-A7E4-4EB84E733F7B,PsrPei 6C2004EF-4E0E-4BE4-B14C-340EB4AA5891,StatusCodeHandlerRuntimeDxe 6C289241-E240-483F-9E3E-872C0396B599,FlashSmiSmm 6C32B3FF-9F2C-44C5-A036-348A388C631B,PchIoExpander 6C33341C-BA4C-4DB4-9BD6-6356971DECEF,FjDisableManufacturingMode 6C3A7C66-3D26-4B1B-B803-2D801243BE29,AmdMbistRsPei 6C4077DF-8D80-6219-B80B-1F2573308D45,DellSecurityDxe 6C440404-5F74-44B8-CCE4-4B048830CCFC,LockLegacyResourcesDxe 6C4B1F2D-221D-4D86-AEE8-FD4CFABA879B,HQEepromDxe 6C50CDCB-7F46-4DCC-8DDD-D9F0A3C61128,EfiPpmGlobalNvsAreaProtocol 6C6872FE-56A9-4403-BB98-958D62DE87F1,UefiSerialPortInfo 6C77FAE1-A934-457A-982E-BCC12F9717AD,AmdPspIntrusionDetectionPei 6C79BA9B-5926-4295-A450-46B3401D95A5,AcpiPlatform1 6C8E136F-D3E6-4131-AC32-4687CB4ABD27,FmpDxe 6C92CB60-08C1-4149-BF94-60B7C5206011,MAPS_WatchDogTimerDXE 6C9A8087-B68E-4F3D-B87D-A76C829C7D3E,CcgxDiscoverySmm 6C9AA1EC-286E-4A0A-AA98-E2E530626F4D,AmdiGpuVgaControlDxe 6CBC8D0A-7ACE-40C5-92E5-F0DA0A8A869E,FjRealtekLanDriverSetup 6CC094E8-8278-47AB-868C-D826539968C1,AsusPcie2ClkReqMapping 6CC45765-CCE4-42FD-BC56-011AAAC6C9A8,EfiPeiReset2PpiGuid 6CD3857B-1A86-4734-814D-8302E514AE79,AthQCA6174Undi 6CDDBF28-89AC-4E01-9692-616B8A1009C8,FvFileLoaderOnLoadFileThunk 6CDF9BAA-0934-43C2-A85F-286386097604,SystemHddPwdSmm 6CE1E567-46C9-420C-A17E-615D02AE5534,ATPowerDxe 6CE58A5A-030A-4B59-A688-D1D37D7EA985,TpmPlatformMeasurement 6CE6B0DE-781C-4F6C-B42D-98346C614BEC,HpetTimerDxe 6CEC977B-142E-4EBA-ACBB-74D882B166CA,OemCustomDefaults 6CEE9C4A-E2A0-4F3D-A921-CE25F328C4BA,AsfSmm 6CF4D043-2D22-4FF0-AAB0-C5F932847400,SataDeviceFeatureDxe 6CF8600B-6B56-447D-AC08-05F8C3B00054,Tpm2ReservedNvIndexPei 6CFDBB02-DB4B-4C87-BE13-B4E79E68CE51,CbsBasePei 6CFF6068-4FD3-4779-95B8-4DFC90722371,PlatformVTdInfoSamplePei 6D000308-C913-40DB-AD40-B3094FB0F756,AmdCcxXvDxe 6D1D13B3-8874-4E92-AED5-22FC7C4F7391,BiosGuardDxe 6D1EAD71-0CEF-4B2A-B9AE-05D5E9B847CF,PasswordInterfaceCoreSmm 6D29159C-CC7A-4757-8185-42DDB2BECB89,CompalWSMTSmm 6D33944A-EC75-4855-A54D-809C75241F6C,BdsDxe 6D3569D4-85E5-4943-AE46-EE67A6E1AB5A,EfiTelnetServerProtocol 6D36ACC4-B9A1-474F-B333-071A56F3D4F4,AmdFabricRmbPei 6D39E536-4269-49FA-B7CD-25C35A4F8AD3,NvmeEraseDxe 6D3A727D-66C8-4D19-87E6-0215861490F3,EfiUnixSerialPort 6D3D1021-E7FC-42C2-B301-ECE9DB198287,SystemSpeakerPei 6D4849D1-DC04-4D57-BC90-2E0B5CFF1828,AmiPldmInterfaceBin 6D497A7A-D7DA-467C-B485-B7FB3493C41F,DxePciSegementLibEsal 6D4BAA0B-F431-4370-AF19-99D6209239F6,BiosGuardServices 6D54157F-94EF-41AF-B34C-DC7611E6D483,Common_SxApp 6D582DBC-DB85-4514-8FCC-5ADF6227B147,EfiPeiS3Resume2PpiGuid 6D5B6696-F2EE-4729-97D3-A7B8EEF3DBBE,LegacySioDxe 6D5C61C2-7694-4775-9F03-ED1E80DEC318,menu_top_mid 6D5C76B2-3B6D-43CE-94E2-0D6FD2A63BC8,RtkUsbUndiDxe 6D6963AB-906D-4A65-A7CA-BD40E5D6AF2B,Udp4Dxe 6D6963AB-906D-4A65-A7CA-BD40E5D6AF4D,Tcp4Dxe 6D6D9E06-7122-4587-88C5-BD3D13C7E8C4,AmdMemAm4RnPei 6D7A5333-52E0-4910-9DE7-91CDB06395F6,XnoteFlashCommunicationSmm 6D7E4A32-9A73-46BA-94A1-5F2F25EF3E29,EfiMemRasProtocol 6D85CF0A-4A5F-49B0-BAFD-A90992677FF7,WinbondWpcn381u 6D86FB36-BA90-472C-B583-3FBED3FB209A,FspHobGuid 6D9361B4-B534-4C25-99D3-1F12C6794E8E,IioRasInit 6D9BF711-A90D-42F9-A3FB-DD08B6E89037,SLP20EncryptedOEMPublicKeyVariableGuid 6DA12BD9-140A-4FF5-991B-5B471CA4456F,FjSystemIdentifierSmm 6DA4D20D-892D-4EDF-97A7-FEA2D88E26D7,HotKeyPei 6DA62821-54AF-4836-8EF0-8905EF9BD733,AmdCpmModernStandbyFeatureDxe 6DA670E8-3D73-4EB2-A721-A2DDF682FDD8,Tpm12MeasureConfigurationInfoFuncGuid 6DAB4706-5D57-4BDB-9A0E-393A4178D13E,TiOnlySmm 6DADA47D-645A-4128-B292-57A475E1456A,AppleSecureBootDxe 6DADF1D1-D4CC-4910-BB6E-82B1FD80FF3D,EfiSmmPeiSmramMemoryReserveGuid 6DB075DE-449E-2644-96D0-CC5A1B4C3B2A,FirmwareVolumePei 6DB21643-241A-4CC9-82DD-46A1E4845ECC,StrongPasswordPoliciesSync 6DB6CF42-0A3C-4BC9-97DB-9CED03B7F18D,DellHotKeySmmProtocol 6DB72521-256A-4CC1-12DD-96A1E6699ECC,PowerEffcienfyPoliciesSync 6DB9486F-6AF6-4090-984D-238482CE3EA4,BdatAccessHandler 6DC01095-9001-4E4D-B852-AF429EADFF57,OemPowerMgmtDxe 6DCBD5ED-E82D-4C44-BDA1-7194199AD92A,EfiFmpCapsuleGuid 6DDBF08B-CFC9-43CC-9E81-0784BA312CA0,BeagleBoardTimerDxe 6DE7DBA1-C28A-47F7-AF06-1810E1495C56,FjJapanFeatureSupport 6DF5FD0E-4076-41B9-96B5-10E4C9720BB3,OemApControlDxe 6DFD6E9F-9278-48D8-8F45-B6CFF2C2B69C,TpmMeasurementLibNull 6DFF3937-F9F2-41EB-A1D4-59D6E5D9640A,NvmePassThruOverride 6E056FF9-C695-4364-9E2C-6126F5CEEAAE,EfiPeiFirmwareVolumeInfoMeasurementExcludedPpiGuid 6E057ECF-FA99-4F39-95BC-59F9921D17E4,EdkiiSmmReadyToBootProtocolGuid 6E13B746-80DD-4EDC-B178-D25BD4838FBA,HwmThermalSmm 6E185705-E3AD-45EF-83C1-F1F9567AF396,DisconnectKbd 6E1C42D2-278F-4227-BEDE-548CF3206680,AmdMemoryHobInfoPeimBrh 6E27120A-A510-48AC-BD66-7083DA4D594F,CmosWarningPEI 6E2FFCF4-6899-414C-9B55-3A08842E650C,AppleIvyBridgeGop 6E32EAF6-32D1-43E0-B6E1-DCF6DA81DF76,LenovoN25Q064FlashPartSmm 6E36078B-6B6F-42BC-981E-4C639AFA4D6D,FmpDxe 6E448793-9CDF-4787-9392-4B6A6D5FFCA8,DellHwManagerDxe 6E5228F3-933E-4961-9573-0F1E61B522AC,LenovoSmbiosVpro 6E53E391-40FC-4539-9055-06469C50AFBC,AmiPciAccessCspBaseLibOverride 6E5950E5-8610-4AC9-9153-A3D352124A7A,AmdCcxVhRnSmm 6E59DF06-62D3-40B0-82B5-175CF84A94E4,OEMPEI 6E5ED30F-EC52-4136-8A41-3F4324218E41,DeviceIoOnPciRootBridgeIoThunk 6E605536-A30A-4D56-939E-1C373F798D7B,TcgLockDownVar 6E66DAE5-4108-40B5-89A9-C6103F0639EC,GlobeBorder 6E67A6B5-84EF-4F26-902F-E508D8F3F1AF,AmdMemCzPei 6E6E4A75-EF14-47FB-B43A-67EC43B87D22,SpiFlashProSmm 6E6EBC2D-77AB-46CF-B2A7-CC968B0E8AF3,mAmiTcgInterfaceVarGuid 6E6F05AC-234B-465B-9450-C36E6D7566C5,LenovoSystemIsaKbcDxe 6E6F55F6-8F74-4F71-8264-F11BA0581441,DashPldmBcc 6E7139CA-2B21-4168-9804-867FAF71F95D,BoardInitPei 6E7181AA-A835-47BE-9C49-0743354D2F5D,RecoveryPcdDataBase 6E72A82C-14A5-4F02-A377-4A423BB1817F,WindowsNameLabel 6E7CDEE1-414B-44C2-9D0C-BD2698F45982,WakeOnLanPortingDxe 6E7D90A7-9336-461C-8AE9-859C51A9A716,ReadyToBootNotifyDxe 6E851687-A7A9-4AA2-8DD0-673E03E51433,SetSockOpt 6E881000-5749-11E8-9BF0-8CDCD426C973,RedfishConfigHandlerDriver 6E8CD2B7-B636-4859-85ED-C637BDCA5919,DellDaServiceTag 6E900CF0-D596-43E1-B9F9-D9E0584CB207,DellFnUsbEmulationSmmProtocol 6E97D4F4-1898-4408-A62D-99CADED32FD8,DellDxeSbAcpi 6E987F90-95A5-411B-BED3-A5277F17B132,UdiDxeDriver 6E98C278-4B75-4E0F-81A8-F3E1459F0524,FjCmosAccessSmm 6E9A4C69-57C6-4FCD-B083-4F2C3BDB6051,FdtPlatformDxe 6EA0F71C-614A-437E-8F49-243AD4E83268,Emul6064TrapProtocolGuid 6EB44D26-1D39-4FEB-A993-4DAAFB5F8D85,HybridDriver 6EC99217-69BB-4AD6-9B4E-8F4AB9AF72B9,ResetTesting 6ECBD5A1-C0F8-4702-8301-4FC2C5470A51,EfiArmTfCpuDriverEpDescriptor 6ECD1463-4A4A-461B-AF5F-5A33E3B2162B,EfiPeiGraphicsPpiGuid 6ECEFFFD-614D-452E-A81D-25E56B0DEF98,BatteryState0 6ECF9B39-9DD7-4175-B657-CAB9437598DE,AlwaysPublishInt13ForCdrom 6ECFCE51-5724-450C-A38A-58553E954422,SmmAccessPei 6EDC0599-3935-4F3D-A1AF-3CCC1FBC8655,FastbootWmi 6EE1B483-A9B8-4EAF-9AE1-3B28C5CFF36B,SkipTpmStartupGuid 6EEDE20E-8F32-4FE2-BEB7-7A00F3CCDBC3,OpromUpdateDxeLightningRidgeEXRP 6EFAC84F-0AB0-4747-81BE-855562590449,XenIoProtocolGuid 6EFF177D-E4EF-4E1D-8419-DB717231EB7D,OemThermalDptfSettings 6F0198AA-1F1D-426D-AE3E-39AB633FCC28,Cf9ResetDxe 6F052B94-59F5-4606-A017-06CBDC5C20BA,MctpSmbusSmm 6F0CF054-AE6A-418C-A7CE-3C7A7CD74EC0,LogoPcx 6F0E5C58-E5C2-42A9-925C-A0CF93A86291,NvmeShutdownNotificationSmm 6F17DD8C-770A-427C-B291-C8EB644F979A,DellHwManagerSmm 6F19BE81-7381-4AF3-BB26-553311726E34,AsusAmlBuffSmi 6F19CF0F-7280-44C2-B7A5-0A575C47E16E,EcLabProductionModeDxe 6F1B1FA2-561D-47C3-A22D-DBDC21246D8F,TrustedChannelSmm 6F1E6343-DCB6-4109-A5B6-20F533806229,RtkUefiLan 6F20F7C8-E5EF-4F21-8D19-EDC5F0C496AE,MemInfoProtocolGuid 6F26738F-198F-4DCA-B7A6-5097AA330A22,AcpiPlatform 6F2AD552-F066-4ED6-ADA3-D92A3D8EA16E,CcgOnlySmm 6F2C06A8-D4B4-4A93-9F78-2B480BE80E0F,EfiSmiFlashProtocolGuid 6F4FA299-8F46-4BB2-8039-9B0A82289D07,DellSimulationDetection 6F625A69-7DB1-4F7B-94C2-056A785252CE,RsaInit 6F64916E-9F7A-4C35-B952-CD041EFB05A3,DefaultKEKFile 6F69F994-7E17-45FB-B62A-D7823195BEAB,AtaFreezeLockDxe 6F6F82F2-0D31-4319-8E31-CC722538E894,SystemVariableStoreManagerSmmRuntimeDxe 6F6FED5B-3741-4D4B-8AC7-C74914874A77,SbCrisis 6F71926E-60CE-428D-AA58-A3D9FB879429,IfConfig6 6F7E5A78-6F5E-42F4-9C30-8E144182C5D6,ProjectHookPei 6F7E5A78-6F5E-42F4-9C30-8E144182D5F9,CompalCommonHookPei 6F7E88AD-C634-498A-84AF-CAEC526A3A51,AaeonModuleDxe 6F86764B-BBE4-49A1-A5D2-32E6A6861834,FchSmmDiagDispatcher 6F871ADD-9D86-4676-8BAD-68E2E451FC5B,MicrocodeFlashAccessLibNull 6F8AC3D2-ED4C-4386-8FDB-2EE920AB50B3,FchHuashanMultiFchDxe 6F8C2B35-FEF4-448D-8256-E11B19D61077,EfiSecPlatformInformationPpiGuid 6F902A6D-97F1-42DD-A717-8ADD6170C365,AcpiUpdate 6F9233D3-7B4E-4C7D-B41C-265412D4B7C3,ShmAcpi 6F92E393-03C0-427B-BBEB-4EF807B55BD8,IconNetworkRecovery 6F960C35-FFED-4778-99A1-4D998CE519B9,AmdNbioSmuV10Dxe 6F9ADAED-DBB6-4B6D-A3C5-A69BFC7D4578,FjTpmLicense 6F9B3CFA-1AF2-4174-A1C7-8F6310D68BE4,SwSmi534D0140 6FA2994E-144F-404A-ADC9-31C3BC7196C9,DellGraphics3Drv 6FAFC957-08E9-4252-9C7F-E8108576AA11,SmartCoverSmm 6FBA9427-B3F4-4AAE-BAF3-C97288512994,LegacyUsbIrqSolutionWASmm 6FC01D84-46C5-4E83-91B7-FD8FBABD7B12,BiosInfo 6FC53026-4ADC-41ED-80A6-B8923471DE34,FjSystemConfigurationSmm 6FCC781C-27A7-4A8E-B4D1-E70F235F4FCF,PlatformPciDxe 6FCCBB10-6D6E-6A6E-9C2B-2B625FFF8566,RtErrorLogging 6FCE3BB9-9742-4CFD-8E9E-39F98DCA3271,AmiPciSmmHandoffProtocolGuid 6FD18837-36E6-46EC-8F61-6730E3E23D50,JhiDxe 6FD1DCC5-B5B9-4A82-8728-8D854428A4A3,DxeFfsGfxDriver 6FD5B00C-D426-4283-9887-6CF5CF1CB1FE,EfiUserManagerProtocolGuid 6FDE3AF8-37AD-43FC-B728-F4D341F39240,PhoenixSmmWatchdogTimerProtocolGuid 6FDF2BA1-F952-4748-BB6D-31A76D377A82,OdmDebugSmm 6FE38843-6500-42C2-A535-7769DEA56AA4,FpgaLoaderPeim 6FEE88FF-49ED-48F1-B77B-EAD15771ABE7,FmpDxe 6FF23F1D-877C-4B1B-93FC-F142B2EEA6A7,EfiGopDisplayBrightnessProtocolGuid 6FF479F5-6120-4A41-A8C9-D9500F7DF594,Mdot2Driver 6FFEC78D-7DBF-4F8B-968D-2F43A080C13F,PhoenixDesktopWindowProtocolGuid 700A8874-D215-4ABB-9EF2-7A80128560E0,EmmcSoftwareTuningStorage 700A8874-D215-4ACC-9EF2-7A80128560E0,UfsPlatform 70101EAF-0085-440C-B356-8EE36FEF24F0,EfiLegacyRegion2ProtocolGuid 70107F3E-AD8F-442C-A311-7495097F35F8,CountrySupport 7013D46A-D631-4DCE-ABB7-41760E02C7C7,DellTpmBusConfigDxe 70162AA9-875E-4FC9-8608-27CE6FA4F33C,FjSecureUpdateDxe 701E020C-E977-4B7E-89FB-5C3A503C4C5D,ThinkCenterHWDiag 702100AD-3964-49CB-8511-E8627B384AD0,RASMiscDriver 70232FB4-81F4-49F6-AA05-51D99EBDC352,PciPlatform 7030AB02-B04D-4ABE-8801-20201D0C566A,ASUSFancyStart 70456853-D70E-496C-B6B1-CF88A30BE1A9,AmdVersionPei 704EA695-F373-42D4-BF1B-44BB7F60C295,menu_bottom_left 704EBEA2-5EE6-4898-9659-018B74B44789,EfiSeCOperationProtocolGuid 7050210F-D434-4D76-B118-71DDFC6F4E43,OpalPasswordSmm 705D9A12-6281-4B05-BB64-C9FE38649CDF,SetupMenuDxe 7064F130-846E-4CE2-83C1-4BBCBCBF1AE5,AppleBootPolicy 706B0EFA-8768-44B6-8CB2-469B47A80C47,LenovoFidoCp 706C1E0C-44FC-4012-9B71-3DBFEC762F35,PlatformFlashSmm 70718A53-E05E-41A4-8420-378BEA75951F,ClickBiosUiSimple 7074566A-2F33-43D9-9C32-2DA17AE27BAD,BootDeviceInfoDxe 7076876E-80C2-4EE6-AAD2-28B349A6865B,EfiCertX509Sha384Guid 707B3C6E-99A6-4E17-84A0-40284C1B3F38,LenovoPiSaveStateAccess 707BE83E-0BF6-40A5-BE64-34C03AA0B8E2,EfiSmbusArpMapGuid 7081E22F-CAC6-4053-9468-675782CF88E5,EfiEventDxeDispatchGuid 70858A67-D4D5-4632-BF0E-D18E2C29C550,DTBTPEI 70943B04-3B8A-4F08-A412-F97C5B02F6BE,IntelPcieLanDxe 70995504-D7AA-4BBA-803A-A3A9C729A37E,DellSmmDpstProtocol 709E6472-1BCD-43BD-8B6B-CD2D6D08B967,AcpiAtd 70A4D159-1F01-4203-A598-7C2794151CE6,EfiOsBootOptionNames 70ADF2BD-D392-44FA-92E7-3884783343AF,SDPlatformInitSmm 70AEBF01-9EA0-48D8-AE17-3A184B12DBFE,TseDefaultBootOrder 70B0AF26-F847-4BB6-AAB9-CDE84FC61431,EdkiiIoMmuPpi 70B221AF-FDFF-4FDE-9968-1AF623A956D9,EfiI2cHostProtocolGuid 70B312BF-974B-4C6A-A70A-EE231B22958A,FjPowerButton_jp 70B4DE8C-3B01-4F0A-A2F3-93CEE977313E,EfiJedecNvDimm 70B8BACB-0B26-4048-A6F8-03A6AF2C5029,BootScriptHideSmm 70D57D67-7F05-494D-A014-B75D7345B700,StorageSecurityCommandDxe 70E1A818-0BE1-4449-BFD4-9EF68C7F02A8,ReFlash 70E56C5E-280C-44B0-A497-09681ABC375E,DmiDataGuid 70E65212-F3AD-495F-B3A1-7A63542ED7D5,DellTcgPei2 70EEECBE-727A-4244-904C-DB6BF0055392,EfiEcAccessProtocolGuid 70F582F8-1D71-4480-A64E-9755F5A9E225,AmdMemSspSp3Pei 70F64793-C323-4261-AC2C-D876F27C5345,EfiKmsFormatGeneric256Guid 70FB9CE0-2CB1-4FD7-80EE-AB4B6CF4B43F,GetHostByName 70FFF0FF-A543-45B9-8BE3-1BDB90412080,TcgInternalflagGuid 7101700F-A1C9-44E7-B68D-01FCEBC9C04A,FchBixbyEarlyLink 71032D4B-4B91-4EC1-AD53-81827FB43108,AmdCpmGpioInitDxe 710E415A-6A5B-4AEA-973F-6DD3F9CB0056,PLEDPEI 71100A17-76EA-48BD-8263-1A31B2952438,DellSystemPolicy3 7112633D-590A-434E-8F99-80EBAEE13170,LenovoVariableChkDxe 71148D38-5925-4021-91AB-CB252AF74531,AcerPDDockPXE 71148D39-5926-4022-91AC-CB252AF74530,AsusEzFlash 71148D39-5926-4022-91AC-CB252AF74532,AcerDockIIPXE 71198574-FE9A-45B5-A2F8-4D2987066D20,AsusWMIMethod 711C703F-C285-4B10-A3B0-36ECBD3C8BE2,EfiCapsuleVendorGuid 711CFE45-DEEF-4CF5-A094-E8522761CED6,PdHostInterfaceTiSmm 711E7D64-1131-494B-A2D1-84806CD72D53,EfiTcgTreeLogHobGuid 71202EEE-5F53-40D9-AB3D-9E0C26D96657,AmiTseSetupEnterGuid 71224824-6C22-45D7-9C1A-9E7CBFF18924,NCT6106DSECPeiInit 7122810D-CCD3-4B09-A0AB-8D107645C978,DellMonotonicCounterSmm 71287108-BF58-41EA-B71C-B3622DEBCA9D,DellSmmSbGeneric 71298B1B-26AA-44D8-87CD-91A087C3481A,SmbiosDataUpdateDxeLightningRidgeEXECB3 712B5720-7D64-4F52-FFFF-FFFF9946CF56,PxeOnDemandDxe 71332179-AE93-469A-89C5-9EFF7A780D51,AsusWifiPublish 714845FE-F8B8-4B45-9AAE-708ECDDFCB77,ExFatDxe 7148E18C-703E-4F59-AC3D-3A923A0DAA50,OemDxeEcVer 7149FE42-011E-4E93-98D8-D24869B7031F,I2cMasterPeim 715783DE-BC09-46BC-AE7D-E39879591197,AmdCcxXvPei 7166543F-3E35-41A2-9118-577BBA62C693,AmdAgesaParameterGroupPei 716B52A8-8230-4430-BBC1-56B6EC8964A0,PdaSmm 716EF0D9-FF83-4F69-81E9-518BD39A8E70,EfiSdMmcPassThruProtocolGuid 716FB533-26BD-4BAC-9820-229BD5A7D300,FprGoodixMocPrometheusDriver 7171F76B-EDCD-4F00-A7E5-559F71B8A00D,AmdMemSh5Dxe 7172526E-F691-4B01-AE22-A19FCC35F651,FchTacomaDsdt 71761D37-32B2-45CD-A7D0-B0FEDD93E8CF,EfiDirectedIoDMArErrorSectionGuid 717886AB-C40A-44CF-9114-4119E84B0DC7,PciCfgOnPciCfg2Thunk 717A0EAA-9B18-461A-B6EC-AC09794CA631,LenovoSystemAcpiSupportDxe 717FC150-ABD9-4614-8015-0B3323EAB95C,AmiNvramSpdMap 7197C8A7-6559-4C93-93D5-8A84F988798B,PlatformBootManagerProtocol 71A19494-2AB6-4E96-8581-CF34254273FE,MeBiosPayloadDataProtocol 71A37E51-F3C8-4B99-B335-A661CA8AD13A,AmdCpmOemInitDxe 71A37E51-F3C8-4B99-B335-A661CA8AD33A,AmdIncompatiblePci 71A62895-1CD4-4B9A-A77B-571FD71BEFC9,OemAcpiDriver 71A8917B-0891-4E27-8A73-A9B334840393,AmiPeiBeforeMrcGuid 71A9EA61-5A35-4A5D-ACEF-9CF86D6D67E0,EdkiiPeiCapsuleOnDiskPpi 71AC8619-B70C-4974-9307-F646E73CCCFA,PlainPasswordTransfer 71B22C89-B849-4D83-8115-4563A626AC8D,KEMhGpioAccPei 71B8D01E-D764-4BC6-9D02-0007F8382F54,FjCmosAccessRt 71B8D0AC-ABA1-46B4-8D28-09C9FCA0158D,IwlMei 71C4C155-D54B-4D59-A2C1-F9A5723C65A8,EfiIsPlatformSupportWheaProtocolGuid 71C914AC-EC48-43D5-A9BA-64BFC69C73DA,BiosConnectLoader 71DB7B7E-4165-48FA-AC9D-F9AF4CEFC534,DellPropertyDxeProtocol 71E218BA-0F3F-46B6-A42E-93A2C1195A31,AmdRadeonDriver 71E6D4BC-4837-45F1-A2D7-3F9308B17ED7,PlatformVariableHob 71ED12D1-250B-42FB-8C17-10DCFA771701,AmiLegacyInterrupt 71EE5E94-65B9-45D5-821A-3A4D86CFE6BE,EfiUserCredentialProtocolGuid 71F3B066-936A-4C84-9228-23230FD47C79,ImagePasswordFill 71F40B02-BD25-496B-A2F4-D9DBAF22A49B,PtuLoader 71F7CA83-96C5-4742-BAA2-76B807A06B95,SctGopVbeBltBin 71F7D079-099F-4C15-8A84-C44A3629D181,SbSocBrhPei 71FAE25E-4427-4C48-B707-FC5BF2F6742E,RTKUndiDxe 71FD84CD-353B-464D-B7A4-6EA7B96995CB,NonDiscoverablePciDeviceDxe 71FE861A-5450-48B6-BFB0-B93522616F99,TPS65950 72002D05-2C57-48B4-B9DD-D2F19035A44B,HpDtSmm 720E6687-43C4-84EA-E1B5-23AAED359840,IntelGbeUndi 72120D23-40FF-4AB5-855C-C8C6DE9AAE54,FchSmmDiagDispatcher 72133706-A922-43F1-9C75-581D9AE8F666,AmdNbioSmuV9Pei 721ACF02-4D77-4C2A-B3DC-270B7BA9E4B0,FspNonVolatileStorageHobGuid 721C8B66-426C-4E86-8E99-3457C46AB0B9,SystemBiosSetupDxe 7223263E-035D-4495-81AE-7DDEBCD8616F,SystemAudioDeviceSmm 72234213-0FD7-48A1-A59F-B41BC107FBCD,ACPIOSFRVariableGuid 72234E22-8A17-4E30-AEC5-F3B3397E6691,SxCallback 722A7C2F-81B3-407A-98C7-CF9158CF904B,SiInitPreMemFsp 722E4818-344E-4421-88CD-491CB908C142,DellSetupCfgPolicies 7235C51C-0C80-4CAB-87AC-3B084A6304B1,OvmfPlatformConfigGuid 7238A672-755C-45E2-84C1-4C720CB2A8D1,EcCloseShmApi 72405B40-38DA-4ABA-9283-CA8321C23E63,FvReportPei 72562100-5175-4BDA-A534-498B462DEDA3,MtlPchInitDxe 725FC6B0-984D-11E3-AD96-047D7B99E097,SetupMenuInterfaceCoreDxe 726205B4-2E4D-4606-998B-6B2A3E8858E4,DellWBootCapsuleProtocol 726A9E51-7B0E-4F77-9159-9239EB5DEA34,SioIt8659eDxe 72725F0E-5CD9-4997-8530-08D464C1FC46,XnoteCapsulePolicyDxe 72727297-BC14-4886-A642-617BC50A5265,IccInitDxe 7273772B-6DAA-4E2F-9063-6C95FDA931BF,AdlSemaPei 72748AA2-B149-4D14-8FF1-10F5836C8933,AmdSmmDriver 7279D04D-AAAE-994A-8A5C-5AEA41D1FE3A,AppleArpDxe 727F171D-99C0-42F7-8D1A-A61390AF5BB1,AbsoluteDxe 72896A9A-4A1A-46C3-A2EC-012DF5A89565,ClientronSmbiosDxe 728CAE6C-1FFC-449B-8681-BB2A621E0022,ContinueButtonSmall 72938FE7-5DC9-49B4-AAF0-2D23828A3190,DimmTypeDialogDxe 729B3079-8913-4E12-AFEF-2CA264799469,AmdAcpiDxe 72A61C90-E54D-469C-A915-72E29A3F37D3,StaticSkuDataDxeGnrwsPPVCRB 72A71390-9AD6-4C1C-AE00-E050AF18A708,OemImageLanguage 72B11962-5759-4975-AE95-F8C3FE55EF1D,PchSmbusSmm 72B4CDB4-B297-4747-B1BA-5A4839D332AE,AmdFabricRnSmm 72BEE9DC-F9C8-4ACD-8D69-49C4E5BE6297,KEMhSDIO 72BF10F7-DF2F-413C-A27C-C41FD9710722,PdHostInterfaceCypressPei 72CAB13A-8E3D-4C49-967E-487A1C291E51,DellTagsSmm 72D78EA6-4DEE-11E3-8100-F3842A48D0A0,Isp1761PeriphDxe 72DA3348-8D1E-4655-AF88-84ED025FB268,FjGabiMiscellaneousSmm 72E07DA8-63A9-42D4-83D5-0BB518384475,EfiLegacyBootMarker 72E40094-2EE1-497A-8F33-4C934A9E9C0C,EfiSmmSmbusProtocolGuid 72EAA79D-D346-43C1-B6A2-B85EEE729133,NoBootDeviceOptionSmm 72F9BDAC-8ECC-4DEA-8AB1-5B593333148F,LenovoSecureSuiteApp 72FE44FF-44FC-4653-918A-0D5E76C416D2,SetupConfigUpdateDxeLightningRidgeEXECB3 7300C4A1-43F2-4017-A51B-C81A7F40585B,EfiSmmStandbyButtonDispatch2ProtocolGuid 7305D9B2-95AE-4250-BD78-396C3B6AC2EE,RecoveryImageReadWriteV2 7307BD0F-8B7A-4BA5-9AF6-3997D1E32786,AmdNbioSmuV10Pei 7310E28E-96EA-4360-946E-5ADC6BE8F531,DellSmmEcIoProtocol 7317BA01-C34C-4DE2-BB19-1AD8A612A1A4,FjVariableAccessServicesSmm 732B020D-DFDA-425D-9470-4BBF2F1B007C,DellQueryStdPcdValues 73303035-D6D0-46B5-8ECA-139EE287C000,RaidDriver 7338B21C-B7FF-4B81-9B50-0F2A71626C83,TouchPadDriver 733CBAC2-B23F-4B92-BC8E-FB01CE5907B7,FvbServicesRuntimeDxe 73400E57-A467-45AB-9F8C-D2519F76ABA4,DeviceFwServiceDxe 7348AD47-2E40-4846-B658-B9213469C130,DellEcPolicy2 734AA01D-95EC-45B7-A23A-2D86D8FDEBB6,AmiTcgStorageSecurityInitProtocol 734E8BE9-4801-4A31-A3FA-D61CCB601CA9,OptionRomPolicy 734F8167-996B-4C5D-BBA3-815A72167FF8,BFGDxe 735CE436-D125-41D2-A524-F6699B9709A0,AcpiDynamicPci 735F8C64-D696-44D0-BDF2-447FD05A5406,EmbeddedExternalDeviceProtocolGuid 73656701-D13A-47AB-B0EE-4849537CDFAC,SgxEarlyInitPeimSPR 736AC82E-4216-42F1-8EDE-91EC63D0EC43,FjSysmanSetupHooks 736BF370-E38F-4AF1-850F-97360ED229A8,PlatformResetNotifySmm 736D8886-6D2B-4684-ADDE-84BFAB0F2737,SmiFlashLibs 737FE1C2-15E7-45D6-B37B-319FE880F733,SmmBase 73852F31-9834-4EC7-97EE-41E584DC3C49,LEMComputraceApiSmm 7385DBBE-8050-4FAF-8B64-4C386E1FAA88,CodeAccessCheckS3Pei 738A9314-82C1-4592-8FF7-C1BDF1B20ED4,ShellTftpHiiGuid 738B84B5-1E84-4EB9-8EF8-95A167EA4AEE,NvidiaGraphicsDxe 738C6917-71F0-4D45-AB68-91744136AEEA,AppleIpAgent 738ECAE2-DBF9-4C00-A0F6-586F3A506139,FchMultiFchPei 73905351-EB4D-4637-A83B-D1BF6C1C48EB,TSEInvalidateBgrtStatusProtocolGuid 7391A960-CCD1-11DD-AD8B-0800200C9A66,LenovoSystemIdeAtaAtapiPassThruSmm 7394F350-394D-488C-BB75-0CAB7B120AC5,EdkiiDeviceIdentifierTypeUsb 73991970-2E7E-4822-8151-43C82A4BB470,DellSaGvSwitchMm 73995A5C-C2AB-48CC-A404-E39B38505C56,PlatformRecoveryOrderGuid 739C2226-3264-4454-991C-8DC44A73D6AF,ProjectPeiDriver 739D1A2B-FBA1-404A-8784-25CFA57BEACD,HddAcousticDynamicSetup 73A54106-8C88-4BA9-B08E-FD879A1682CA,NvdimmCommon 73ADAAC0-9857-4D74-B0D7-EC6094882D99,BaseTraceHubDebugLibNull 73C7B7DE-F679-4724-ABAD-79F256B64320,WakeOnLanPortingSmm 73CB6D5E-2BE4-434E-AD6B-4D7FB8700C16,FjUsbCdcDxe 73CD248F-420B-4618-8F74-E15FF48258B5,AmdCpmAdaptiveS4Dxe 73D1D476-A7C9-4EFD-8F8B-D532EF381708,EfiPlatformTxtDeviceMemory 73DAB30F-3F9C-4160-B064-439CE16C3EDE,SystemBootManagerDxe 73DC6B53-A5CB-4605-97B9-0E83FDE59194,HQUcsiDriver 73DDB5E1-5FB4-4751-AF1E-83CF75BECBB6,EfiPeiConsplitAmiKeycodePpi 73E6F6B4-D029-4E87-8405-6067C8BD02A6,UsbPei 73E79970-4936-443B-B9A5-E0B61BC1288E,PlatformVTdSampleDxe 73E8D659-D2A2-4720-8316-B9BAD21E5A29,CbsBaseDxeRN 73E9457A-CEA1-4917-9A9C-9F1F0F0FD322,DebugPortDxe 73F19D89-1EA3-45B8-86A2-9E153947A034,SBURetimerFMP 73F3E50E-23C5-4586-BC6C-7E5223FA3C43,OemPortMappingPolicy 73F53712-2A64-4B86-961D-C25B63DF198C,AmdNbioIOMMURVDxe 73F70B77-943B-4090-99E8-4F8E4D824A43,wifi_none 73FA8DD2-589A-424C-82EB-2D360F09D900,HwmFanSmm 73FF4F56-AA8E-4451-B316-36353667AD44,FspBootLoaderTolumHobGuid 7408D748-FC8C-4EE6-9288-C4BEC092A410,EfiPeiMasterBootModePpiGuid 740A6C4B-3813-4A05-84B5-9AEE2BBE9F5E,FjFvFlashSmm 740BBF85-47EB-45D7-905B-244451A0FD77,FirebirdCheckDxe 742F95A8-714A-5C43-88BA-B3361F12EEE6,BootRomFlash 74346897-9E0C-4B41-BF1F-BAA1ECB85DA6,IioCfgUpdateDxeLightningRidgeEXRP 74375386-DA3C-4FA2-BBA2-F53E37353422,AmdAcpConfigurationDxe 7449D85D-C41F-474D-A34B-DF839241ED4E,DellAnimationDxe 744C9DBD-74DE-424D-AB59-AA398305871F,EDIDParserDriver 744D080F-EDF3-4FF4-9870-A2DA5BA5F0E6,PlatformDefaultSettings 744EBDEA-F30A-4F13-A0B8-F7D7982A57DB,BiosPasswordDxe 7459A7D4-6533-4480-BBA7-79E25A4443C9,AmiTseDriverHealth 745D377A-B988-47B2-B18F-BBC80DC56698,EfiVirtualMemoryAccessProtocol 7462660F-1CBD-48DA-AD11-91717913831C,EfiPciOptionRomTableGuid 74627A28-DB74-4102-B2B2-F8D788AFFFEF,HpIcicleDefaultAndWmi 7465BA75-88A7-4B61-9A7E-6D4EDF6804DC,AmiUdfMediaGuid 7474A4C6-7F30-4DE1-BC68-DA5EFE615B52,SmbiosDataUpdateDxeNeonCityEPRP 748221BC-2BA9-1545-8AA9-A03A8591999E,AppleNetVolume 748C36F5-6DCC-4857-8AF6-64E66EFFBA00,KeyboardLayoutSetup 748EA80F-96B4-4315-A277-28ACED336830,RklComp 7497B957-20C3-4E47-A2C0-594966FD28FD,UefiDriverPolicyDXE 74A016D4-4E4B-45B5-AE97-4E6E33D65125,LenovoBlockPowerButtonDxe 74A9FE73-8E72-4FAD-8043-ED4AF82C08AE,SwSmi534D0B40 74AB5A17-82D7-472B-B2CC-22CB825844C4,FjDeviceInfoBaseDriver 74B3E9BF-A025-4D4E-B5B6-508F8B67085E,GetMemoryValue 74BD9FE0-8902-11E3-B9D3-F72238FC9A31,AndroidFastbootTransportProtocolGuid 74C4F1BE-FE72-4268-A685-C4CE71070401,AsusTestVersionHeader 74C83F3A-5EE3-4EB7-B945-702B839FB1A6,DxePlatform 74C85C25-09DD-497D-9F71-91C172283ED4,SioFanMapDxe 74CBEC3C-8190-42A0-9C02-D1C5ADC706D7,AppleAirport 74CDC9BE-9FEF-444F-FFFF-FFFF14E55121,XnotePlatformManagerDxe 74D3B506-EE9C-47ED-B749-41261401DA78,QNCInitDxe 74D782CD-F238-42F7-91E3-977D5B4BBBD6,OemACRecoveryDxe 74D936FA-D8BD-4633-B64D-6424BDD23D24,FwBlockServiceSmm 74DB4ECD-3429-46D6-9BD3-88B50A8190A7,EcKeySmm 74DBE0FE-5621-4616-A978-8C1E239F191E,SmmMemoryManager 74DDF801-A7DC-4410-9DF8-C08E6D9FD6BB,FpgaCapsule 74E1B217-7CE5-432D-8C1B-0C216FADA7DF,ApobStxKrkPei 7502B5FB-33FC-42F0-A90C-A45E5B63449B,FjGpioCometLakePei 75032015-D156-423E-BFA3-7A65ABA47105,EfiI2cBusConfigurationManagementProtocolGuid 750890A6-7ACF-4F4F-81BD-B400C2BEA95A,AcpiModeEnable 750D5755-A0C9-42D3-A326-B5D465413523,AppleSEPDxe 750F8E5A-59BE-485B-A717-FD850FC8772B,FchKunlunMultiFchDxe 75153C93-7AD2-4452-8036-644AD4AAFF25,AsusPcieSsdUpdate 75189FA6-7BCF-4F4F-81BD-A4F1C3BEA95A,CptSwSmi 752F3136-4E16-4FDC-A22A-E5F46812F4CA,EfiShellParametersProtocolGuid 753630C9-FAE5-47A9-BBBF-88D621CD7282,SmmChildDispatcher 7537E889-FC63-42D2-B400-F7646C45CEE3,CastroCovePmicNvm 75472C94-6221-4CF2-9EC7-1462CB726B1B,AmdSocAm5PhxDxe 754AAF56-099B-440D-8DCD-626F4E2C52F4,RsaIScsiSupport 754BFF96-1234-4B41-B437-EF1B0C8CA155,KEMrPegConfigPei 755877A6-4F10-4A5C-9B2E-852123B9682C,FlashSmiDxe 755B6596-6896-4BA3-B3DD-1C629FD1EA88,AmiFlashProtocolGuid 755DFF82-93BE-4E9F-891F-955909D1EA19,RtkUndiDxeDriver 7565FA5B-101B-4493-9F27-1ECBD4BECC6C,AsusSetArmouryCrateField 7576CC89-8FA3-4CAD-BA02-6119B46ED44A,AmiSioSmmHandoffProtocolGuid 7578B307-B25B-44F9-892E-209B0E3993C6,Emul6064MsInputProtocolGuid 757DC0D7-EFFE-4C12-BC6F-D7E833EB9015,FjOA30Support 75816CA2-8FBD-439B-A120-C47FF86F0E29,BHInitDxe 7581D88A-F866-42C1-8683-26281938E5BF,RtkWifiSupDriver 75839B0B-0A99-4233-8AA4-3866F6CEF4B3,FpgaSocketVariable 7583C1FA-0BD6-447C-9E4E-397E1AE338B2,SystemSureBootPei 75844C24-A8FE-4331-8D0B-554C4606009B,RTKUSB 7585C771-3CE4-41FE-B780-845CD85BA444,FirmwarePassword 75862FE4-4FC6-4188-804B-29DC7733178B,StallServicePei 75866B1C-3F5F-4C01-929D-CEA40F1F6710,FjIbvSfuPolicyAbstractionSmmProtocol 758880AB-4CA2-4DAA-A83E-D1F9ADF2C2F1,DellSmmSioEmi 758AF8A7-2A04-4937-99E0-837D1F97C76F,LenovoSystemAcpiNumaDxe 75B0755B-B0D9-4205-BBF7-63289FFB8045,ProjectSmm 75B0886E-CD6A-469F-AE0B-8CED9033D199,EfiBpdtLibBp2DataGuid 75BA309D-5DFD-49BF-ACE8-28B39B52BDF7,CbsBasePeiRPL 75BE667C-48E1-452D-B0FC-363138ED87FF,PStateControl 75BFCE76-56F4-4FE1-B257-8B075E8F98A8,OemIp3SMI 75C024B9-C20C-4506-B85C-7C7356F0239B,AddonNetworkControlSmm 75C640C2-030E-4C57-81E2-532B1DD7339F,MemoryStorageKernelDxe 75C8F622-8090-4017-850C-3FA40B027984,SmcMemMapOut 75CA7C9D-502E-468A-9AAF-7F2A29E6DBCF,AmiSbHddPolicyProtocolGuid 75CE4288-DE5D-4E24-90B5-F75BD78E6BA1,SecureFirmwareVolumeDxe 75CF14AE-3441-49DC-AA10-BB35A7BA8BAB,EdkiiPlatformSpecificResetHandlerPpi 75D02D7A-5A2D-497A-9A4F-D7CE38EA1389,SDPreOSVariable 75E78806-C68F-4839-8A68-B29084820659,ExStatusCodeHandlerPei 75FBCDBA-28C4-455A-A71D-536C9AB65093,SmcSetupModify 75FC3BBA-72A4-61DA-4171-074C824223C1,DigistorWorkAround 76016A54-9959-495D-BB3E-BA35E25A51CB,SystemSetupMainDxe 7604B120-A55C-4A36-A9F6-420E5ADA995C,MpmAsfPei 760640DA-ECAC-4229-A591-7D3066EB242D,PldmImportBin 760A41FF-3619-4F01-B95F-A2E0E699D487,ServiceBodySmm 760E5D5F-9AD3-4055-B4C9-2F9F6E29CC2F,BiosLockDxe 760F874E-B8CB-405E-AA32-A46AE2F3D680,VariableDefaultUpdate 7612F7CE-C685-465A-91D4-D12F9E933383,SpiHcOperation 7627B2DE-4342-4DDA-A339-A96DAA057DDF,AsusMbSwWmiSmm 762C6E31-CA82-46A8-85FD-27BA83519D61,SiInitDxeGnrWs 763EEAEB-FE2A-4778-BE0A-3842EF8610A8,BIOSLOCK 763F61A7-BCFD-4657-87B2-8DBCAD6425F9,DellOpalHddSecurityDxe 763FEE95-85A1-412E-9276-01BE8FAE6CE1,DellSetupASPMDxe 7644C181-FA6E-46DA-80CB-04B9904062E8,EfiPathFileName 76504DF8-9D28-4099-8EC8-5A67CBE886B0,EsataBootControlDxe 7652F853-6243-4358-2BBD-6F235DCA34AB,DellSmmHwAccessInfo 765317F6-F080-4261-8926-3F47D182BF64,FjTpmLicenseDxe 765A8615-2FCF-4CEC-9812-85FDFDD48053,OtaStorageBmcDxeDriver 765F7890-5755-406D-9B02-C44E7182680C,LEMBoardId 76624D51-E916-46A0-824C-AB27E0AF3E77,SioSwSmi 7668AF85-DFEF-4C57-BCC4-8807FAFE7BE9,TouchPadDriver 76700A4A-25C7-4B2F-B190-8DABB2EF2129,FchSmbusDxe 7671D9D0-53DB-4173-AA69-2327F21F0BC7,EfiAuthenticationInfoProtocolGuid 767965D6-F35A-41A9-8BE4-695E92C32B47,CapsuleIFWUSmm 768007EF-E607-4417-8F5D-BCFE16DAE336,SmbusConfigGuid 76864548-0261-410E-A8B4-01615BFA3E0A,FwKeyHobPei 7687A497-FF4E-48FF-BCAA-67DBF65C42D1,AsrockBfgdxe 768BEDFD-7B4B-4C9F-B2FF-6377E3387243,NTFS 768BEDFD-7B4B-4C9F-B2FF-6377E3387651,OemGNVSDxe 768BEDFD-7B4B-4C9F-B2FF-6377E3387671,SmbusDxe 768BEDFD-7B4B-4C9F-B2FF-6377E3387691,SmbusSmm 768BEDFD-7B4B-4C9F-B2FF-6377E3387692,OemSmi 7692B160-3591-47AA-BDEE-655297662E76,UefiDMBMHooKInt13Protocol 769B1A29-C083-450A-8C96-D750FAF4530E,LenovoCertAuthDxe 76A1DF7D-754C-40E1-BC72-3FCAD842DEF6,DellDaEppid 76A7B4FC-C8D5-462D-A4D2-6E88338A772A,PlatformCpuPolicy 76B6BDFA-2ACD-4462-9E3F-CB58C969D937,PerformanceProtocolGuid 76B75C23-FE4F-4E17-A2AD-1A653DBB494A,EfiExtendedSalLockServicesProtocol 76BE1ABF-1E1E-321D-B7F0-9E0984FDDABC,ProgressBar 76BE7979-4701-48EF-9E6C-44B9EF030923,GpioV2ControllerPei 76CA0AD8-4A14-4389-B7E5-FD88791762AD,FmpDxe 76CBE15D-3C00-4597-8F13-621D77E879E1,AmtSaveMebxConfig 76D1059D-2E22-40EF-A31F-C49DBBC0DBCE,SetupCheckSumPei 76D5CF91-0C55-434E-97C2-D2825C82E610,OemActivation3 76E1E9EE-5FC7-4613-B96F-FA797796573A,DellPbaMgrSmm 76EB2674-B3F2-4489-BB6D-E2448F7EF614,BiosSelfHealingPei 76ED6631-44FE-4ED2-8B5D-1B5355BB25E8,LogoDxe 76ED893A-B2F9-4C7D-A05F-1EA170ECF6CD,IntelGraphicsPeim 76F3992D-529E-4EFE-8BBE-8E1ED432C223,AmiMeasurePciopromGuid 76FA2425-086F-4E33-8DFF-4E7D961A67DC,FjSiidRt 76FDC1AE-A42A-416A-98E3-A2F29146DAC3,AppleDhcpProtocolDxe 7701AA8F-27EB-4562-8C59-4731CAA24E7C,ScPmcFunctionDisableResetHobGuid 7701D7E5-7D1D-4432-A468-673DAB8ADE60,LdrMemoryDescriptorGuid 7702A696-6521-4FE8-A786-528B4D86F5F1,DfciDevSettingsMgr 77085416-E137-44A0-89F3-0C7DA7F2F52A,OemNecTseEsaSwitch 7710B056-174A-4444-96C2-F1AF729ADC25,NCT5525DDxeSerialType 77148690-7E43-4673-AFAE-34532CDD4248,SmmControlDxe 77165917-C00B-434B-BADC-A8FBFF437E7D,BeepExampleDxe 77197B37-A0FB-487C-9CDF-FC36179B73DE,DellStatusCodeHandlerDxe 7721929A-D56A-450D-2501-8EA51FA61974,SbCmos 772484B2-7482-4B91-9F9A-AD43F81C5881,EfiMiscSubClassGuid 77265330-9FB0-4AA5-8E37-35064728F5C3,IioCfgUpdateDxeSierra 773779CA-2AE8-4073-8BC5-43376A61BFD5,DellEcPolicy 7739F24C-93D7-11D4-9A3A-0090273FC14D,EfiHobListGuid 773CB08B-511A-4BD5-85AD-41D4F4B64A52,AmtSetupDxe 77447790-51B4-4A81-A8D2-7EF78E9F35C9,I2CSpeedDXE 77475D4F-7965-4038-B970-863FC73E0761,BSDP 7750576E-EBB3-454B-887C-6521B3CD34A5,AmdMemoryHobInfoPeim 77509744-7507-4B5C-BF6C-3BAB83652F4D,BctBaseSmmRV 7755CA7B-CA8F-43C5-889B-E1F59A93D575,IntelGopDriver 7758FA0F-2CAB-4684-949F-C20506339539,DellProfileManager 77617ECB-E229-4E20-B8F9-DF8245624D7A,SystemAcpiTableLoaderDxe 77651BCC-7262-484F-A74F-650821285D9D,BiosSelfHealingDxe 77786445-99AC-4C2E-9FF1-990965770530,NCT3933Smm 777BAA93-9260-421B-9173-FA62611B6188,HciPei 77892615-7C7A-4AEF-A320-2A0C15C44B95,BiosRegionLock 778E8993-0C45-41F7-976A-4C088855E6B6,AmdIspCamera 77A6009E-116E-464D-8EF8-B35201A022DD,DigitalThermalSensorSmm 77AB535A-45FC-624B-5560-F7B281D1F96E,EfiVirtualDiskGuid 77AED9BC-0938-4026-9D10-F6846027F366,ApobMdnDxe 77B35E10-AC21-4DFB-B094-DDA8878A6521,ASM1061Pei 77BC641D-582D-4B1C-BB79-594EDF3630EF,VTPCR7EventLog 77BC789B-108C-442B-86D5-A4EB86C39ABC,DellRmtPlatSiSmm 77C0B0CB-0406-4868-AEB5-C36B01D42FF6,MemoryInitWrapper 77C2687E-975A-679C-BE44-2EF67868CEAC,IhisiRegister 77CB5A2E-59C8-490E-B69D-A3862BE5B3A0,EobonPriorityMap 77CC5D6F-E1A8-4ABA-8AE8-1D92DE3B50F1,OemNVME 77CF025D-D743-4DE5-AC39-AE4A591064B0,RestoreVariablesDxe 77D71582-4274-0EC5-36CD-65A2CC4FD663,DellWsmtEnforceSmm 77DE2CD5-67B8-4749-A8EF-7E26EFFC07AF,CbsSetupDxeBRH 77E5B618-2612-4C28-BCDF-A2B14D8A3EFE,IFlashDxe 77EB6C06-FD48-488B-A1B3-AE0A70801369,CryptoDXE 77EC5618-2101-4112-86B1-2F752AE10F1A,EcSecureFlashDxe 77ECCE3A-7398-4C04-981D-D778E793E0F9,TransferNvramPasswordToSmram 77F04055-3E04-4821-BEB0-B2AEE4983198,FchSongshanI3cPei 77FA9ABD-0359-4D32-BD60-28F4E78F784B,MicrosoftVendor 7807E404-8281-4FF1-8457-0B54BABE263F,HitachiH8s2113Dxe 7808F5C2-9CB0-4609-907F-B18453C363B4,DellStorageAgentsDxe 78092548-48CF-449B-9BDB-F63849856460,AmiProtocolInternalHlxeGuid 78097BB6-48CF-449B-9BDB-F63849856460,mAmiPpiInternalVarGuid 780A399B-CADF-402B-85C7-F734D70AFE81,SmartCoverPortingSmm 78247C57-63DB-4708-99C2-A8B4A9A61F6B,EfiMtftp4ProtocolGuid 78259433-7B6D-4DB3-9AE8-36C4C2C3A17D,MeInfoSetup 78270D5E-9450-4FAE-8818-B91EA39864CD,ChipsetLibServicesSmm 7827D4B0-926E-48F9-8ABD-69816EF86D16,AppleDmgBootDxe 782C4946-0167-4C2B-949D-8DC4E53D25A7,FjUartModeSelection 782FD612-46F3-47A2-83D9-8FDB86E6FED1,FjGabiMiscAbstractionSmm 7833616E-AE0D-594F-870C-80E68682D587,ThunkProtocolList 783658A3-4172-4421-A299-E009079C0CB4,EfiLegacyBiosPlatformProtocolGuid 783AA974-DFB0-487B-906F-120FB9486E88,SetupConfigUpdateDxeLightningRidgeEXECB4 783D7527-85EE-4A95-A909-03F745E4E91D,TimerSmiDxe 7862806A-7171-47A0-98A2-12F3505A1EF2,AtapiCommandSmm 786DA51A-86A5-47C5-BF8D-04877BE47260,AmiPciExpressGen3LibNull 786EC0AC-65AE-4D1B-B137-0D110A483797,IScsiCHAPAuthInfoGuid 786FE7F0-88B0-4FF0-822D-559D04D89156,PcieResizingDxe 7872D787-4DAD-4496-BE61-EDB5B5F012E7,SpdDataReadPei 787D4843-68AC-4C28-BE53-BAC272BAECF9,DellVariable2RuntimeDxe 787E0C4A-4A27-4891-9489-AF5074C36E89,EfiTraceHubStatusCodeHandleHeaderPpi 78871234-8787-7878-A19B-0BE61B233187,DeviceWa 788B4AB1-294F-4FD4-BEB7-4F5E0709E9AC,DnAPartitionDxe 788DD6A1-F1EE-4BBA-A925-C0E7D66271BD,SystemBoardDxe 788E1D9F-1EAB-47D2-A2F3-78CAE87D6012,IdccDataHubGuid 78941450-90AB-4FB1-B75F-589214E24A0C,FontPackageGuid 78965B98-B0BF-449E-8B22-D2914E498A98,EfiSmmStandbyButtonDispatchProtocolGuid 78A6FB37-8F27-40A4-9C4E-9FC9E438D5E2,AmiTseOemPortingVar8 78AE4297-C10F-4D77-B6EC-521F34BF06F8,SmbiosDataUpdateDxeEldorado 78AF76C7-8A5C-420F-8DE6-12678D101590,TrackPointElan 78B55289-5393-4A3A-834A-111AD7726970,DellIoExpanderPca9555Smm 78B9EC8B-C000-46C5-AC93-24A0C1BB00CE,PwdCredentialProviderGuid 78BE11C4-EE44-4A22-9F05-03852EC5C978,EfiKmsFormatMd2128Guid 78BEE926-692F-48FD-9EDB-01422EF0D7AB,EfiEventMemoryMapChangeGuid 78BF418F-559B-43D5-940A-EFFA174217F7,DrySMI 78CE2354-CFBC-4643-AEBA-07A27FA892BF,WdtPersistentData 78D19E50-2B62-407F-9F49-C652A4124002,VariableRegionInfoDxe 78D87F9A-321E-4A07-875F-8D83A3D06E59,FpgaSocketN4Pe 78DE67FC-7CFB-423E-AE1C-253F9B645E25,EarlyDxe 78E1AF79-A9C1-44F6-AD49-8622C1776FAE,OemDxeDetectBlueTooth 78E4D245-CD4D-4A05-A2BA-4743E86CFCAB,EfiSecurityPolicyProtocolGuid 78E977ED-6E0F-4774-B5D1-9DC7F75F339F,FchPromontoryUsb 78EB25EE-F78B-419D-B0DD-12C38FFFBF1D,DeepPei 78EF0A56-1CF0-4535-B5DA-F6FD2F405A11,FmpDxe 78FFCA55-4869-4393-BEE9-72E58BD3BE38,SystemFixedBusNumbersDxe 7901F717-FE24-4C8B-87AD-C05F35660747,OemIp3Smi 790217BD-BECF-485B-9170-5FF711318B27,EfiHiiRestStyleFormset 7907C558-4C57-480E-9439-7F6684852920,DellMeLocalFwUpdateDxe_ME130 7914C493-F439-4C6C-AB23-7F72150E72D4,ImageAppleLogo 79263F9A-1701-4382-98C2-573F3558E6C8,PlatformFvbLibNull 792930B0-7B29-4ECD-8B0C-65D62644C343,CbsSetupSmmSTX 7929D36E-968A-4A4B-87CE-2375B1C7311D,DxePortingSample 792F0DE4-ECB7-4EA9-B25E-A531FBA36809,H19AesEncryptPswd 7934156D-CFCE-460E-92F5-A07909A59ECA,BiosGuardModule 79395A8A-53BB-41BE-A6E6-F65E9AE4E0EA,KEMhAcpi 793CBEA0-DA56-47F2-8264-24310CB75196,LenovoSystemVariableDxe 7942EDD0-C023-4357-93ED-F6626D711E9E,PeiIpmiBmcInitialize 794610DA-D0EE-466B-81B3-8197213A6978,SystemSwSmiAllocatorSmm 794B23CB-ECCE-497F-A14D-96E1AFCB00E3,NPKReserveMemGuid 795231E2-A205-4B8D-8C8D-7353B713DF7D,efi_pop_mid_pressed 795477D9-1786-4D8A-8B89-3FA7623F7EF8,DellSbPowerOffPei 7958EB26-C098-46EC-B5B7-BE9FF13F8E32,DellBoardPolicyPei 7979919A-3D8D-4BB5-B832-45CC4FC7DE57,DellDptfPolicyProtocol 797A72A9-EAE3-495E-995D-A20D85F509AB,PreserveHobVariablesToNvram 7982477A-B285-42E8-B22D-A30E7E3CFE26,Dispatcher 79839D38-DD05-489C-B3EF-F27BDA08E572,AmiAgesaSxSmi 798B3F5F-F5FE-4AE7-9E85-D71613D8CFFC,KEMaEAPI 798E722E-15B2-4E13-8AE9-6BA30FF7F167,IntelSmbiosDataHobGuid 79971BCB-D5C6-4D5A-9C24-BCA46C2ADBBE,BdsDriverProxy 799B0CB3-F2FD-4571-8522-29536EFE30BF,SystemEventLogSmm 79AA6086-035A-4AD9-A89A-A6D5AA27F0E2,NbPei 79AB769C-E959-4B09-9718-80A896012C28,DellNetworkTransferDriver 79AC2D9C-9216-43C5-A074-0B45C76422C1,SmmRedirElogProtocol 79B26A82-5C07-4AAA-A8F3-8AD195D271A2,SetupConfigUpdateDxeFischerLakeRP 79BA7128-D5EF-4B41-912C-5F80DC9E1B24,AmdMemoryHobInfoPeimRs 79C3AC4A-DEC6-48F1-AFFE-E7B95A1CCB32,PoofAnimationState2 79C5C7B7-1083-42A6-AD15-2A4E7C4274D7,DxeSmmDriverEntryPoint 79CA4208-BBA1-4A9A-8456-E1E66A81484E,Legacy8259 79CB58C4-AC51-442F-AFD7-98E47D2E9908,EfiBootScriptExecutorContextGuid 79CD78D8-6EDC-4978-BD02-3299C387AB17,StatusCodeHandlerSmm 79CE097A-91AA-41FF-B3A8-534559B30DB1,PasswordHob 79DE6AEF-BE2D-4BB2-ACBF-0A67E289DBAF,AmdCcxVhSmm 79DED328-7FCE-4909-9AFD-D66176AF97A6,OobRx 79E0EDD7-9D1D-4F41-AE1A-F896169E5216,LenovoWmaPolicyDxe 79E17317-1CBB-4A25-9884-91E041C05C2E,DellSmmMfgBootListPolicyProtocol 79E39A83-D013-4B2E-836A-A99A7147351C,DellPbaScardDxe 79E4A61C-ED73-4312-94FE-E3E7563362A9,PrintDxe 79E5CA15-7A2D-4F37-A63B-D1C7BBCA47AD,AhciPei 79E5F681-59F4-4415-8E46-8C223CF517E6,EfiBootMediaHobGuid 79E8C9C7-1152-4F00-B831-14F1C4041AE0,EfiIntelMfgFormatFru 79EACCCC-AD8F-4448-BBBC-9DB8C922AC62,AbtUnlock 79F90154-83F4-478C-80BF-878AC32E0A2C,RTL8111EPV 79FBAD19-F9E1-4D08-B7BC-358453195E41,AmiTpmRollbackSmmProtocolGuid 79FD86B3-D74F-4D6F-9577-FBE062977086,SerialDebugInitDxe 7A073909-6D74-4C73-9F05-3E0B055CA623,PlatformSioInitDxe 7A08CB98-E9BC-41C3-BE19-B302F3F1F523,DellSolPostMessage 7A08CB98-E9BC-41C3-BE19-B302F3F1F595,Terminal 7A1CC2C0-7AF6-4F68-A564-CC03558FC3C5,SuperMDxe 7A2099C9-9AF8-4FE5-9812-BBC352762EF5,HpSioComPortWAPei 7A2634E5-4DB0-4E01-AB8B-B833E5F25AF1,FlashControllerNvsDxe 7A28436A-E113-406A-AFF9-0DBF7F643E02,EfiTcgPrivateInterfaceGuid 7A2A4270-38BA-45C6-B53C-C83B342D5B15,TisPei 7A345DCA-0C26-4F2A-A89A-57C08DDD22EE,NvVariableInfo 7A379D61-0784-40DC-B28E-E96007CF30F1,LegacyUsbSmm 7A3871B6-2820-4BC8-9B7D-7811BA3BE347,PrmAddrTransDsm 7A3FA48C-12F2-4B0E-9E74-2977711F598B,AmdCcxZen3RmbPei 7A422A24-0CF1-407D-AAF1-6A74C0103B98,SystemUsbHidPointerDxe 7A4D1E44-4531-41B0-A0C5-B19ED7A1B097,SureStartPoliciesDxe 7A4DCEF3-788E-4595-9F0B-4B97803BC97A,SaveRestoreGPT 7A54B36F-F745-462C-B11F-16E03E52B617,AsusSpdTransfer 7A564231-240D-4BDB-8B87-8F589A988E13,SystemVspBcpRuntimeDxe 7A59B29B-910B-4171-8242-A85A0DF25B5B,EfiHttpProtocolGuid 7A5DBC75-5B2B-4E67-BDE1-D48EEE761562,EfiSmmSpiReadyProtocolGuid 7A627E16-679D-4814-8F82-EEAF3881F098,BatteryState6 7A699129-DAA0-4224-8629-7338DE5D45ED,TpmDriver 7A6CA3B8-EE1B-489C-B300-24544A7BD418,ShellCTestApp 7A6DF3DB-1C0A-45C2-8251-AFE794D7D6B3,PciExpressPciCfg2 7A7F24EB-426C-476F-AE54-09A23A9E04C1,FjIbvAbstractionSmm 7A8406BD-E03C-4DAD-B532-E3CCED635CC5,AmdI2cTouchPanelDxe 7A9354D9-0468-444A-81CE-0BF617D890DF,EfiFirmwareFileSystemGuid 7A97840A-F3F6-49EC-928A-36D90A76D6A5,RecoveryFchInitPei 7A9A372D-3487-402E-B489-5FC551A43BD1,X11DPHDxeDriver 7AA35A69-506C-444F-A7AF-694BF56F71C8,EfiFirmwareVolumeDispatchProtocol 7AA553A5-FE0A-4453-870D-42A6555DC26C,PchInitDxeEbg 7AA7B16D-0E14-4951-8B85-3F6572FCE258,SystemErrorLogPei 7AADBC0B-45B8-4694-BB98-A991961799D8,FlashInterfacePei 7AB0F90A-BDF8-4010-A434-4329FB61330D,SmBusPei 7AB22C56-2510-4FD2-AC18-57394419FBAB,UsbOcUpdateDxeNeonCityFPGA 7AB33A91-ACE5-4326-B572-E7EE33D39F16,EfiManagedNetworkProtocolGuid 7AB80BCC-9BD4-4FD2-811C-60634073AC9C,PdHostInterfaceCypressSmm 7ABBC454-F737-4322-931C-B1BB62A01D6F,BootMonFs 7ABCFE4A-F5D2-413A-9828-259E6B128DC9,LcfcWorkaroundMfgDoneDxe 7ABEC993-53D6-464F-8371-FFAFD97F3928,AmiCryptoPkgTokenSpace 7AC954F0-4FBB-4D9C-A2BF-E8A5922E6F30,AmdNbioPei 7ACE35EF-C960-4465-91BA-FC528B8182CB,DellMbistRecoveryStatusCodePei 7AD33249-4BC9-4D31-9855-06D3A8C052A0,WlanControllerSmm 7AD9BAE7-864D-4F7E-9D11-1CAD8018FE7A,LenovoTpmFwUpdateSmm 7ADA185E-7E10-4F7C-B2DA-26E99102C88D,AmdCpmDiscreteUSB4Dxe 7ADAF482-ECE1-42C1-8FB0-BF8955340696,AmdMemSmbiosV2BrhPei 7ADBAD98-7FE1-4774-9260-747327435E6D,SpsAcpiHooks 7AE1026D-C7FA-4867-9C14-A00534A6C547,DMIRecovery 7AE3CEB7-2EE2-48FA-AA49-3510BC83CABF,PeiSeCPlatformPolicyPpiGuid 7AF77F94-4C38-4FF1-8CCD-3E084F2FFEC0,SkylakeGraphics 7AFFD257-51D0-439A-A89A-85A3419308E4,DellJSONParserDriver 7B04A674-8EF3-443E-999D-D62508BD3A3E,PldmImportBinShp 7B05F6C6-B8E3-4007-9F81-68E3773D6E20,LEMPasswordStoreProtocol 7B07D184-02D0-4BFD-AD6E-554C39353A13,LenovoSysConfigReqDxe 7B0E51C3-46FF-4D6C-AA5D-61DB3F44F50E,EcMemMappingPei 7B0F6DDD-8600-4F54-AF52-0D4738C2D308,DellUefiClass3ConfigSmm 7B123212-02AE-4C43-820E-90C07E085242,FjGpioGeminilakePei 7B17ED3D-3892-43B4-B5E5-DF802B4F4855,SureStartPoliciesSmm 7B2349E0-522D-4F8E-B927-69D97C9E795F,EfiPaddingRsassaPssGuid 7B257ABF-B5EC-42D5-A4CD-8E291E1F7B39,Enter_Setup 7B3EC697-49AC-4966-958D-9703F7F836B2,PlatformHardwareHarden 7B3F16BE-79CD-4A78-A27E-B329B1DF500D,H2ODisplayEngineLocalMetroDxe 7B44CE84-91F2-4C19-A1D3-33185A658DAF,FjS5WakeDxe 7B59316E-E9DF-435F-98CD-5726645BE863,EfiHfiPcieGen3Protocol 7B60EE35-C708-4C2B-9094-478DC163358F,FjSysmanYggdrasilPei 7B668A4F-45E1-4A26-8DEC-81A4A1E58888,PspDxe 7B69DCB6-424C-4844-A53D-087056382870,S3NotifyDispatchPei 7B6F1DA6-EA4F-4938-A79F-0C58E1442AA1,LenovoPopManagerDxe 7B77FB8B-1E0D-4D7E-953F-3980A261E076,TdtVolatileSetupData 7B77FB8B-1E0D-4D7E-953F-3980A261E077,IccVolatileSetupData 7B7B65B6-E350-4139-8FE4-665772D32A45,IhisiSmm 7B7B65B6-E350-4139-8FE4-665772D32A47,IhisiSmm 7B8837AE-081E-4D3F-8AAD-87BB93952F38,WlanControllerDxe 7B8DAD98-4B25-438A-BC31-F6CC931D5BB4,PlatformInitRecoveryPei 7B8DB049-C7C7-4D3B-809F-926DEE47CCA2,SBSMI 7B8EE7A1-4E35-4556-BB56-6797E24445C2,PeiCpuPlatformPolicyPpi 7B8F8199-42C7-DB87-307E-2892F3849538,AmdCpmOemInitPeim 7B9937AE-092E-4D5F-8BBD-87BB14162F38,SerialPortSettingDxe 7B9A0A12-42F8-4D4C-82B6-32F0CA1953F4,AmiBoardInfoFileGuid 7B9BE2E0-E28A-4197-AD3E-32F062F9462C,AddressBasedMirror 7BAC95D3-0DDF-42F3-9E24-7C644940379A,BdsStringPackGuid 7BAEC70B-57E0-4C76-8E87-2F9E28088343,EfiVT100PlusGuid 7BB28B99-61BB-11D5-9A5D-0090273FC14D,Logo 7BB61314-11B5-4833-BCAD-B1601CA088C9,SmbiosType0 7BB880C9-82C8-40C4-95FE-3330B984844C,DashIoCfgSmm 7BBB9525-97BA-4516-B660-1B0EB78744A5,DellSmBiosStrucD0 7BBC4123-5D5E-4C1C-95D1-30EBA48701CA,S4SlpDelaySmm 7BC065CF-AFE8-4396-AE9F-BA27DFBECF3D,PlatformKtiEparamUpdateData 7BC2ABF4-DDC6-4E04-BFB0-D9BDB6888915,DxeFvMain2Test 7BCB37D2-D280-453D-BC91-E1E4E6208A70,KEMhSmbEfi 7BD19958-CF71-48DD-953C-640505C52D4A,DellMultiFuncDevDxe 7BD7AB9F-DB9F-455D-8566-387B2F13D404,UsbPwrCtrlPei 7BD9DDF7-8B83-488E-AEC9-24C78610289C,VirtioFsDxe 7BE725B2-F56C-41C7-9F03-1E7B56B65971,SystemUsbMemoryManagerDxe 7BEEEF98-3028-4260-96F1-BEEBA31A787C,OemSioResChangePei 7BF3F3C8-4FCA-49A7-804F-9033D2E47841,AmdNbioBaseZPPei 7BF444F5-CB15-4DEF-99DF-E725D9A8E380,RamDisk 7BF5FECC-C5B5-4B25-811B-B4B50B2879F7,PeiIpmiTransportPpi 7BF9BE38-9B8D-4D62-AD06-6805BEED9852,FjFlexIoDetectionViaI2C 7C03567F-C840-4E9C-BFCC-652793C2FBFB,DpfServicesDxe 7C04A583-9E3E-4F1C-AD65-E05268D0B4D1,FullShell 7C05C4AC-68F5-4526-BD10-7FABAF822369,semaInit 7C069ADA-DE4E-488C-B0FC-4F2E057D96D8,DUFontDriver 7C095EED-C8DE-49BD-90D4-6C9A3A3BE9C3,DellRmtPlatSiSmm 7C0C91D4-63DF-4AB4-AD2E-B01C6DF3E07B,OemStandaloneDxe 7C0D8842-B2D7-4E06-863D-F84218013BC7,LenovoPttPolicyDxe 7C245213-345E-44EF-9FD3-7B6DA92AA499,UsbPortDisableOverrideDxe 7C257A30-F8BA-404A-8476-666F9E19BC56,GabiSettingItemCallbackDxe 7C29785C-66B9-49FC-B797-1CA5550EF283,PeiUsbIoPpiGuid 7C2D1E53-E565-47EA-8A1E-DC97459926B0,OemServiceSmm 7C2E0E5E-7C35-4611-BC93-036013EDBE3D,AsusWmiAtkDxeSmmCoreBin 7C2E2D27-E8BD-4F5C-A569-AF65B77AA55D,DellPttSetupDxe 7C2E3F7B-A17A-4070-AE83-13FF416F62B2,MsiBoardNvs 7C347F9B-6FAE-45A5-906E-F8DFEBEE64FF,DellWmiSecurityMgr 7C365CF5-19B7-48F2-80F5-0A3267F69FEA,SmiSecurityVerify 7C380900-1B96-4615-978E-89E02E2C89D0,DebugDriverDxe 7C46C6A4-362F-4964-AF20-9333E552DCC3,PciHotPlug 7C4BC2E3-7C7E-43D5-AEBF-FF57810AC2DA,AsusWmiAtkDxeCore 7C5A8EE9-7EC5-443C-A867-3549B667EEA6,WakeOnLanPortingPei 7C604CBD-5440-46E1-97F7-A4DF8DD09C1C,AmdSmmControl 7C69E035-60D9-4782-AAAA-B05F2F8C1B09,PeiReportStatusConOut 7C79AC8C-5E6C-4E3D-BA6F-C260EE7C172E,SmmRuntime 7C81C66A-4F11-47AB-82D3-67C4D635AED1,LegacyMebxLaunch 7C820E3D-C3F7-42C1-A022-7FE434A87DFB,FvNetworkDxe 7C8507DD-DFCF-4BF7-9BB1-090D5C5944FB,BoardNvs 7C8BDE83-9E3E-4F1C-AD65-E05268D0B4D1,RealtekUndi 7C96D656-6B21-45A7-84D8-5068EEE1D415,MAPS_SmartFanDxe 7C9A98F8-2B2B-4027-8F16-F7D277D58025,IntelBootGuardKeyManifest 7C9AAA66-0D1A-4A23-BEA3-25195F6BC22C,FchKunlunMultiFchPei 7C9E5A63-B987-435E-B17F-9E9CFA53F880,SmmPlatform 7C9FE380-CFD2-4BF0-9B96-E5DF40635ECB,RealtekGopDriver 7CA1024F-EB17-11E5-9DBA-28D2447C4829,TlsAuthConfigDxe 7CAB2E8A-B799-4540-8517-58644D03CC9F,LenovoAtpSmiServices 7CB40E99-3186-4A5D-829D-802C5793F132,DellAcpiSharedMemSmm 7CB919C8-D499-4629-ACB3-22769E343DDB,DellFlashIoSmm 7CBB4CF0-21FE-4C99-848D-77E93167128A,DellSfpSmm 7CBD5702-C8E3-4F7E-BA08-EC7EF1BB2D67,IrqTableInfo 7CBDCA19-4776-A997-7CA7-56D5343F2904,EarlyOneTimeFlags 7CC1567C-CCB8-4C50-80BA-D44A3B667415,AmdSb800_PeiInterfacePei 7CC1667C-CCB8-4C50-80BA-D44A3B667415,SbInterfacePei 7CC6C4D7-A271-4FDD-B29C-AD561CB3FF4C,WtCardReaderDxe 7CC7ED80-9A68-4781-80E4-DA1699105AFE,EfiLightIsaIoProtocol 7CCA3104-2A1D-4E84-9C7C-44B97A234012,HpSioSecurityPei 7CCAD11A-EFA4-4F82-BDE7-7D07FF90B280,BootOrderWmi 7CCB2D7E-CD15-417E-A5C8-003DA6325B9F,PowerStateManager 7CD73063-546E-4C09-ABD2-11C6B04ACC4E,SataPowerManagementSmm 7CE247D8-A588-40EC-B311-F820800EFA02,H19FingerprintVendorDriver 7CE501E6-4BBB-478B-9B41-5FA66A36042A,AmdRasBrhServiceDxe 7CE700F9-BB44-4157-9655-DCCC39432C1C,FjKbcDxe 7CE75114-8272-45AF-B536-761BD38852CE,Slp21PubKey 7CE88FB3-4BD7-4679-87A8-A8D8DEE50D2B,EfiEventReadyToBootGuid 7CEA4F7E-2052-46ED-BEFD-E22A44DC65E7,Tpm20HobGuid 7CFACBB0-B515-4970-AE98-38F540E73482,H2OVerifyRegionDxe 7D019990-8CE1-46F5-A776-3C5198676AA0,EfiExtendedSalResetServicesProtocolGuid 7D06E47C-B32C-496F-940E-F30CDE0B7CE5,SystemFirmwareDeviceBlockSmm 7D08D718-48EC-4C52-919D-407E5B1A94E4,IntelGigabitLan 7D0EEA4D-74CA-4118-898E-964181DC5D1B,SmmIpl 7D113AA9-6280-48C6-BACE-DFE7668E8307,AmiMpTpmBin 7D15608C-EE1A-43CC-A27A-BE9D8BA0F5F8,DellTcgServicesPei 7D17EF81-57C8-4210-957C-6FDAA8EA1DD6,PciHotPlugDxe 7D19E8AD-1089-42B7-A440-D8318A44E89F,SioIt8659ePei 7D24A234-A8C2-4718-BF60-A2EF070F414E,OpalPasswordSmm 7D24A567-A8C2-4718-DC60-A2EF070F414E,SmmCrcInit 7D277BE3-8778-4139-A33C-738065720098,FjIbvSfuSecFlashAbstractionDxeProtocol 7D279373-EECC-4D4F-AE2F-CEC4B706B06A,Tpm2AcpiTableStorage 7D29BF67-6131-4CCC-91DE-BB8291565701,CbsBaseDxeSTXH 7D2BD134-500D-4F42-AEE2-26ACCFB6CB1D,LibStdio 7D3DCEEE-CBCE-4EA7-8709-6E552F1EDBDE,FlaSStatusguid 7D47DC17-F443-42A1-BCC3-54FD06A95821,SDPngDecoder 7D4E94A9-269A-47A1-80F0-2B0EB42F7B4B,Int15ServiceSmm 7D51F6CC-9272-6541-A74F-6B784082D285,AcAdapterWarnDxe 7D574D54-D364-4D4A-95E3-4945DB7AD3EE,ShellInstall1HiiGuid 7D5FF0E3-2FB7-4E19-8419-44266CB60000,DP 7D655829-26DD-4342-96AD-04899477C3FA,SpiSmmStub 7D6A1A2A-6B25-48DA-BE80-B8C88EF9AD56,DymanicUpdateBiosSizeInfo 7D6B8734-B754-443F-B588-7743843AD3F1,AmiSmbiosMemoryInfoHob 7D6B8869-8317-43D1-9E4E-ADB0B0F58407,FjMfgPostSatControlDxe 7D6DF4FD-3650-4E77-BF3A-84DC988A025C,TcgStorageSecurity 7D7789CD-FD20-4C05-A579-91253D5E3D9E,DellCmosManagerPeiSrc 7D77B32E-BAB2-4CC7-8378-7550513F3FCA,UsbOcUpdateDxeLightningRidgeEXECB4 7D84B2C2-22A1-4372-B12C-EBB232D3A6A3,VlvPolicyPpiGuid 7D86C03A-B1F6-4F0F-AB43-81D925F19481,WarmResetFlagDxe 7D916D80-5BB1-458C-A48F-E25FDD51EF94,EfiTtyTermGuid 7D9BE232-0D3D-47C1-B45C-344C5B5152AD,FjClearsureSmm 7D9DDBFB-FB67-4303-90B0-9A7A7FF29B57,OpromUpdateDxeLightningRidgeEXECB1 7DA45AA9-6DBF-4F1B-A43E-3287CBE51351,TpmPkgList 7DA53855-F630-4A30-9D85-0E99DFD92A06,EfiPlatformTypeLightningRidgeExecB4Protocol 7DA68578-C0E9-4742-8DE5-C91ACA88D5A7,DellBoardPolicySmm 7DA6F287-4BE3-45CC-8515-E27486936C0E,BoardSyncPspFwAToPspFwBDxe 7DADBC98-6489-4D1C-907A-8EE243AF805B,AsusEupPei 7DB8BFAE-B3BC-483A-8252-E0F213151AA7,ODMWlanTpowerOnOverride 7DC20199-DE28-4A91-A89C-FF06F237352C,PrePostHotkey 7DCAF14D-1499-4149-8364-1673CD1CE75C,PecNbDxe 7DCE671B-C223-446A-A705-ED637AAF6771,EdkiiCryptoPpi 7DD26A06-9942-41A8-B9CF-09DE46D5D219,BBSManagerDxe 7DE2F2F8-B627-441C-B352-5B02EE035C47,LenovoAIOFmpDxe 7DE9DF83-2D2A-4448-A9B1-7DA75158562A,UsbBtHciDxe 7DF0DD67-5B91-4D40-A835-58013457010A,SmbiosDataUpdateDxeHedtCRB 7DFA9220-5145-42CB-A815-0865C1B952F9,FidoUsbDxe 7E0C6E3E-C80F-47D1-8ADA-554926B2B6B3,GenericMemoryTestDxe 7E13637A-C3F8-43D1-B051-ED19D708EC7A,PeiIdeRecoveryNativeModePpi 7E1F0D85-04FF-4BB2-866A-31A2996A48A8,EfiPeiFvFileLoaderPpiGuid 7E24E860-A62C-4312-82F2-E7B58D0537C9,SceBootOrderSaveRestore 7E374E25-8E01-4FEE-87F2-390C23C606CD,PlatformAcpiTable 7E3D95E4-89F8-41B9-B788-5FB22D77F9A3,SmcNVDIMMDxeDriver 7E4B2ACB-7391-408F-B143-3A0B07C6E165,FdoModeEnabledHobGuid 7E4F3635-6E28-40C6-BCFB-2B1A46459946,BiosPasswordDxe 7E631AA5-AFCE-437B-81FA-FA34EA14B3C3,ExFatRecovery 7E66ABA5-5780-4ACB-A50F-8198989C69C3,FjGabiSettingsDxe 7E696C3E-5C5D-4A64-9650-E792FAD24128,AdlDriverSmm 7E6A6CF5-C89C-492F-AC37-2307849C3AD5,EfiCpuPpmProtocol 7E715650-10E6-4B7B-896A-4DC5FC742BC5,LenovoModulesSmmThunkSmm 7E7369CE-0188-4183-8C2D-DAF7B730E42B,AmiCmosBadHobGuid 7E7507B4-45E1-21D6-43E3-32B9F7F4720E,Ds125Br401aPei 7E7F16FA-B957-47AB-B58B-7AC40DA44A5E,SIIDDxe 7E8567C5-ADFE-44A6-A1FC-6514105C6B24,FjCameraCapsuleDxe 7E8ADB71-9A5B-4AC7-82BE-E8598285DC14,LANWakeupDxe 7E9099D2-F1EF-45F0-944A-7B7F241A0ABF,StaticSkuDataDxeGlacier 7E97A470-EFDB-4D02-8FCE-6190D27BA296,EfiExtendedSalRtcServicesProtocolGuid 7E983BCE-5C99-4BE0-B3D0-210E8FDDD3C0,VlanceDxe 7E99BC9E-EDE9-48C1-85B9-689432817F8F,SystemEsrtDxe 7EA76D38-C57A-412D-AF1D-D58BEE2B85B1,LenovoVproPetAlert 7EA7AACF-7ED3-4166-8271-B21156523620,SamplePlatformDevicePolicyDxe 7EAF93A7-7026-46FD-B359-6A98DEE70860,AsusCloudRecovery 7EB51510-729B-482E-AA28-C9EB6A7FB837,SioSxIntruderDxe 7EB7126D-C45E-4BD0-9357-7F507C5C9CF9,RomLayoutPei 7EB88C46-22FF-4CBD-8FE7-495383FAB1E4,PciBoardDxeInit 7EBB920D-1AAF-46D9-B2AF-541E1DCE148B,EdkiiPlatformHasDeviceTree 7EC6E119-1FD8-4C84-8E57-FF55D166C91E,PlutonSecurityProcessorV2 7EC95140-BCD7-48D1-9F5C-2AA2656D6CBF,DellSpdSmbusAccessSmm 7ECBEF8F-2C6E-4CC0-B8B8-BF536396CC9D,HpQX448Pei 7ECD9C20-68B9-4A6F-B515-D64FF500B109,FsRecovery 7ED59FC2-3395-5DD2-A31C-1EF2F098E166,GopConsole 7EDE6A1F-548E-453E-A95C-66939FE0295C,SwitchableGraphicsPei 7EDF76E9-3DCD-474F-A3BB-DE3B18A47D61,MEC1416PeiInit 7EE2BD44-3DA0-11D4-9A38-0090273FC14D,EfiIsaIoProtocolGuid 7EE44C61-ADDA-4D27-A4A3-A5615C16C644,MemoryInit 7EF09900-7397-45C0-9CA6-698324391870,DellAutoOsRecoveryDxe 7EF21E8C-2FC1-4BC3-A84A-73025EAAB896,ProgressBarFullMiddle 7F0013A7-DC79-4B22-8099-11F75FDC829D,EfiCacheSubClassGuid 7F009393-A908-4EEE-843B-0771FCED8F59,MpmOemFunction 7F03BD46-F05F-44A4-B00D-CA6A160BBE14,SalPostMem 7F0690AD-1725-4930-8137-94D0FCF5F63A,AmdXgbeAndDisplayConfigurePei 7F06A90F-AE0D-4887-82C0-FEC7F4F68B29,EmmcBlockIoPei 7F0FE834-0727-4640-95E9-9B1C056F87B8,CypressCCGx 7F133760-9CA0-4D4F-A201-038AB955B1B5,SetSystemState 7F1647C8-B76E-44B2-A565-F70FF19CD19E,EfiDns6ServiceBindingProtocolGuid 7F19E716-419C-4E79-8E37-C2BD84EB6528,PeiSpiSoftStrapsPpi 7F1D8127-EB69-44DD-A88A-ED37BDB97DB3,OemBadgingSmm 7F2BFC42-9BDE-4E9D-BE83-1BB752DF0C3A,SystemBiosSelfHealingPei 7F342334-54C3-40FB-A289-DA000A0637BD,BeepInterfaceCoreDxe 7F380019-B951-4BBD-BEDF-8DD7A621D773,OemNvDriverTypeDxe 7F3E00EE-B826-4358-8FFA-C30C3AF526F2,LenovoTpm2ConfigSmm 7F4158D3-074D-456D-8CB2-01F9C8F79DAA,EfiTpmDeviceSelectedGuid 7F480A20-7A19-4764-A5CA-4E9B8AECAF1E,PchPciBus 7F4A3A75-538C-4259-B420-C44818CBC553,ATIPwrXDXE 7F4F86F6-EBC9-4603-A4C2-C7CC8B4476DB,Heci2BarSaveRestoreGuid 7F51CB64-A6CF-4DA1-9E3D-E9F3976B3C92,FchSmmDispatcher 7F5E4E31-81B1-47E5-9E21-1E4B5BC2F61D,EdkiiPeiFirmwareVolumeInfoStoredHashFvPpi 7F630637-39BE-401D-AC06-57DC9117DF13,SDEVUpdate 7F6E0A24-DBFD-43DF-9755-0292D7D3DD48,IsaFloppyPei 7F786C3D-C586-48BE-BBBE-1D8273481C00,AsmUsb4InitPei 7F81D838-F91D-4C44-8552-8FB912122FDD,GopDxe 7F843E9E-BA26-4D3C-82F7-C703D87D334D,PhI2cPlatformSupport 7F865306-830D-4DC2-8E9A-B7856F925A0A,SupplicantDriver 7F8D35BD-0CE3-4654-B5D3-73FC4B38AABF,PlatformEarlyDxe 7F9263F2-0BC0-4AA0-8503-6D69513BCA15,AsusHddGptRecovery 7F955A3E-AFB5-4122-B925-4B1171F693F5,AmiBlockIoWriteProtectionProtocolGuid 7FA5F220-9F11-49B5-85A2-045AAC347D27,BackupService 7FA68D82-10A4-4E71-9524-D3D9500D3CDF,PlatformSecureLibNull 7FA9284E-40B3-417F-A2BB-58EAE1026314,FjSystemResetDxe 7FB30861-8941-4748-953A-2C59D93F9171,BiosConnectUiManager 7FB6E2BA-C550-4529-A85D-A8A9D13B851E,FjGrasscarryDxe 7FC90770-0E89-4A20-8152-6CB777B56F48,FlashInfoDxe 7FD082A9-3D6B-44E3-9C31-74D6B80F965C,SetupConfigUpdateDxeLightningRidgeEXECB1 7FD24CF7-2BF6-4547-8441-845E793C619D,AmdSocSp5BrhDxe 7FE9EA1F-4224-4C7B-9F44-FEC1728E7DA1,FjDevInfo 7FEB1D5D-33F4-48D3-BD11-C4B36B6D0E57,FmpDxe 7FECA3CE-F18C-4DCE-9465-4DEB949298C9,E022X7 7FECA3CE-F18C-4DCE-9465-58D6FB0692B8,0_X64 7FECA3CE-F18C-4DCE-9465-80FF64F2AB7C,0_X64 7FED72EE-0170-4814-9878-A8FB1864DFAF,SmmRelocateDxe 7FF2BC6B-FCB9-4381-A602-45CDF9BFFFB4,DelAmiCapsuleImageLoadedVar 7FF2FCB3-E868-492D-9063-6D22E6A2B14C,SDConfigureSSID 7FFC3700-7C5E-423F-A04B-32E9F16A6727,SuperMPeiPrococol 7FFF52C8-82DE-4820-8960-5093102E484D,IncompatiblePciDevice 80023209-6386-4C1D-909B-63506A2146FF,HWM_SetupDXE 80030344-4BA0-4F2C-A6AC-1E0E928F2470,AmiAgesaSbPei 800594D2-39E7-4088-9BDD-D979737DEEE1,SmbiosDataUpdateDxeCLX64L 80060E80-2C20-429E-946B-1C89097F0BED,VariableServiceDxe 80144152-6770-45D0-8463-E4B48EBE4B5B,HpAmdTbtPei 801ADCA0-815E-46A4-84F7-657F53621A57,SectionExtractionDxe 801B5C4B-6AE2-4065-9F72-82CA760C2ECA,EfiRsaTpmClearOwnership 801DE6B4-2036-46B7-B8F7-79205CBD1772,SmartCoverPortingPei 801E9DEF-DDBB-4CA3-9698-C9158EB86AEA,AmiPeriodicSmiControlProtocolGuid 8029A5B5-4088-48D2-96E0-F7052BC0A842,PttHciSmm 802C5E65-D47B-461B-A456-6C89C5CC3B30,SetVariableToWirelessDeviceDriver 802C5E65-D47B-461B-A9D9-6C89C5CC3A10,DxeRealtekMAC 8041F38B-0A34-49D7-A905-03AEEF4826F7,PlatformSsdtImageGuid 8045548F-FD94-458A-9BC8-BEADB5733D46,AbtDisk 80522809-D926-4D50-8E71-1E897AB29E1D,FjPowerDeliveryCapsuleDxe 805B032B-6A00-46F5-8501-CB88A21D5321,BcmDhd 805D1C5A-EF12-490A-9E7B-9F4AA2F97E73,AmiPspNvramSmm 806040CA-DAD9-4978-A3B4-2D2AB0C8A48F,QemuKernelLoaderFsDxe 80680ACD-2F8D-48B0-BFA9-3E3177AA9E27,OsVersionDxe 80752470-6EDE-485D-AC36-DC1BA66091EE,LenovoSpecialSwSmi 807E2D68-B13F-490A-A2FB-346A39459978,NCT6685DSmmDxe 807E2D68-B13F-490A-A2FB-346A39459D09,NCT6685DSmm 807E2D68-B13F-490A-A2FB-346A39459D0A,ECHeartbeatSmm 80897901-91F6-4EFE-9579-3353A0C02DAB,SDMediaDevice 809FBBFD-127A-4249-88BC-FD0E767F4FFD,IconInternalHD 80A1BB91-2036-46DD-9CC8-97A1F2F7E5BC,HpSmmCoreServices 80A1CF80-A85D-4C1A-9131-1FEFC5959618,AsusPcieCardReaderUpdate 80A29A57-BF37-4403-B7B0-D654E84F8A6D,PchInitDxeEhl 80AADD0D-8053-4BA7-941B-36F48BB23001,DellSystemPwSmm 80B08E6A-C6CE-430F-9C07-52A9526DB0F9,CompalWSMTDxe 80B33A95-B978-434A-9195-3C118E9F35CB,MsiBoardSmm 80BD20ED-46AC-4F66-ACBA-9A1658DB1830,AcerSystemStatusProtocol 80C904F2-F294-4C8D-8899-E6781297D1C8,EmulationPlatformInitNull 80C905A4-1E0C-47F2-8417-977FB539C06F,PowerButton 80CF7257-87AB-47F9-A3FE-D50B76D89541,PcdDxe 80D7491A-F7D9-479D-A8F7-1B393B02ED66,FastBootRuntime 80DBD530-B74C-4F11-8C03-418665532831,EfiMemoryConfigDataGuid 80DED13D-B821-4824-A0DD-52CA968C3A04,AmdCpmOemGpioDxe 80E1202E-2697-4264-9CC9-80762C3E5863,RecoveryFormSet 80E66E0A-CCD1-43FA-A7B1-2D5EE0F13910,PciRootBridge 80EBBF8D-82DE-42C9-945A-E7AD7EB0C284,CaRemoval 80EC6BA2-C4B4-4ACC-B89C-F61D8BACD675,OCUR 80F03C1F-89BD-4240-93A8-AC99E9A929FC,DellPowerOffConfig 80F195B5-D7B6-4C64-84EC-1F3BE795751D,FjPasswordSkipPei 80FD2A83-B5AF-4A67-88BD-08388BDF1ADF,DellTcg2ServicesDxe 8101F7F3-07D2-4518-A987-EF51EA64AFAD,BatteryFwUpdateDxe 8108AC4E-9F11-4D59-850E-E21A522C59B2,BmAutoCreateBootOptionGuid 81212A96-09ED-4996-9471-8D729C8E69ED,EfiFirmwareErrorSectionGuid 812136D3-4D3A-433A-9418-29BB9BF78F6E,EdkiiSystemFmpCapsuleConfigFileGuid 8122CEBD-F4FD-4EA8-976C-F003ADDC4CB4,EfiPeiIpmiTransportPpi 812BA1E0-6A75-4AE5-AD37-63D030974501,VtioDxe 8133139A-2B04-4C37-ACF2-6956DED13A77,OemThermalPolicy 81334616-86CE-49C2-B6F9-1804E61C73F6,LenovoIgdCustomize 8149FBB8-A2CF-4234-B506-B76255F7A36D,EfiQpiRcParm 81510D98-2110-489F-8E26-7FE825CD837E,LenovoVariableCommandSmiDispatch 8151A914-2437-41D0-A410-14DF75F9BE70,SystemMassStorageEventDxe 816C3759-DFE4-4644-AA17-1F090E02A599,TiOnlyPei 81791CAF-44AD-441F-B0A2-322BA8FC95ED,FchImcControl 817B8CE3-BE6A-4726-BF4C-A6BF690614F2,SalPreMem 8180B47F-EBB0-4303-A389-74FD15356BA6,DebugLogDxe 81A4F912-E72F-44ED-8931-16A9FE9650E0,KbcEmulDxe 81AFA132-8D94-4101-A538-833C05D145D9,BoardSelectDxe 81BC1E82-D8B2-4444-A336-E83D80654A6C,DynamicPowerSwitch 81C0C020-E99E-4406-9656-5E686A0E0CC3,FjTpm 81C53D89-E238-4133-BBD2-5BDA8BEDEC85,StorageEraseDxe 81C9FDB4-4D6F-4D98-B7B8-6A9DAF677E73,D01HddPassword 81CD3462-6A1A-42F8-829B-8D77481DDB64,AmiPciExpressGen2LibNull 81D12896-975E-487F-AE40-1C37B4D7A820,DeviceWufuEsrtDxe 81D1675C-86F6-48DF-BD95-9A6E4F0925C3,EdkiiVariablePolicyProtocol 81E4B34A-268C-4FCC-8E39-1C1D3E6F6E69,HddReadyDXE 81E67795-D8A3-43B2-8B5F-E0326F76AB91,wifi_4bars 81E68098-6F95-4CE8-AA8F-A7FFC89E0B9D,AmdGopConfigDrvDxe 81EC4A75-A7AE-487E-993F-2190BD47423A,LEMEventLogProtocolDxe 81F0BCF2-F1AD-4DDE-9E5B-75EB3427ABC4,DellMfgModePeiDriver 81F81D8B-B746-4B24-B649-2654F7281E4A,EcMemoryIntrusionTestModeSmm 81F93099-0A7F-4F1A-94D4-B3BE3FACEA6A,SmcIpmiOemCommandSetProtocol 81F935F5-F1E2-483C-8204-B1E7015120A3,FjFastBootDxe 820C59BB-274C-43B2-83EA-DAC673035A59,SataController 820D6942-B13F-4B91-AF2C-774025D84A22,DellAutoBifurcateSiSmm 820F3F0D-4D08-6C35-858A-D98EF42C051D,AmdPlatformRasSspDxe 820F6119-9F09-4C95-85BA-8AEBC21D4E89,FjPowerButtonStatePei 8214E213-180C-4822-A236-CDCA43F43C88,CbsSetupSmmMdn 8216D0CC-7F6E-46F1-982C-E6219D4AE066,AmdMemSspSp3Dxe 8217E118-1058-4C9B-936E-5B3027C2394B,PchLpcDxe 82180E9E-FB32-4086-AB38-370BB29134E3,MemoryStorageChipsetSmm 8218965D-20C0-4DD6-81A0-845C52270743,LenovoSetupDateTimeDxe 821ACA26-29EA-4993-839F-597FC021708D,AbsoluteAbtInstaller 821C9A09-541A-40F6-9F43-0AD193A12CFE,EdkiiMemoryProfileGuid 821D8B77-246D-4E96-8E10-3467D56AB1BA,SetupAdvanced 821D8B77-246D-4E96-8E10-3467D56AB1BB,SetupMain 822A31D8-0AA7-415D-BEEF-C5C896509C50,BctBaseSmmPHX 822A9647-5479-44F0-AC85-8869074D76AD,DellForeignKeyboardLayout 822D8836-2477-4F8C-9330-2F8695EBE4F9,FjSkylakeRtcBattery 8231DBBB-30E6-459B-BA4B-5ECE97561539,DellUsbCsmSwitchDxe 823B8A1A-6D01-45A6-8098-20DDD1C7B3D0,PlatformLtDxeLibNull 823F654C-D966-45A4-A4CC-5FB6741E34BE,AmdNbioEarlyPhaseRMBPei 823F95E8-D72D-4665-8DD5-F135457E751A,HpKbTelemetryDxe 82479446-5371-44F7-87BF-C808BC9A9925,SplashPei 824C0DEA-8B01-4F12-A68D-A5DAEE2B9714,AmdMemSmbiosV2StxhPei 824D5A3A-AF92-4C0C-9F19-19526DCA4ABB,FspmArchConfigPpi 8253972C-9CE7-4539-87EC-A248A48084C7,AddressTranslationDsm 8256C18C-27FE-4199-B369-C6C95C555F06,H19AmdFTpmUpdate 825880CC-DBB5-4955-8AFF-B26FA33C84AA,AppleFirmwareFeatures 82594D34-85DC-49D4-992E-238E622F6152,OemSmmSample 825AE2A9-9C84-497E-94E0-09C237765948,ThermalInitDxe 825BDE6A-E9E4-4CC8-9C2D-09B29C3BD426,EfiCpPcPlatTokenSpace 82627ACF-D92D-416D-8A6F-783CACD91223,AoacEcWakeupCustomPpi 826824B6-CC9B-4D62-8E7A-0FFBF6013CBE,SmmHeciProtocol 826BCF56-BAC4-43F4-8EA1-8CDF0A121ABD,LenovoTranslateService 826CA512-CF10-4AC9-B187-BE01496631BD,EfiCertSha1Guid 827E45A4-C285-4E45-8BC7-CD8E58D9EE84,AmdPspRomArmorSmm 82805649-7247-4DA4-8643-C8144D27E2E5,ProcMemErrReporting 82820F9F-4197-46D0-A96C-B1D15BAD988E,AmiUsbVideoProtocol 82833414-C8F4-4B62-AB6A-E4D5DAAB130F,HwmInitDxe 82841737-79FD-4AC2-A948-2E5C94E80E63,DashManagementPei 828C017B-BA8E-40E6-BDA4-45B6F9F6A8CD,AmdNbioIOMMUDxe 8296AF37-D183-4416-B3B6-19D2A80AD4A8,EbcDebugger 82988420-7467-4490-9059-FEB448DD1963,MeConfig 829C8576-8CF7-43DB-81E6-D955324BF931,OememDxeGNVS 829D41D2-6CA5-485B-A1A2-D1B79627ABCD,EfiOpaSocketMapHob 829FDCA9-6917-4713-A3AD-F04CF3E1B25F,S4SlpDelayDxe 82A3935E-BA18-4703-A7D7-6D356FFE26BA,CameraSmm 82A6080E-07CB-4841-A94E-D340FD0C5284,NvmeInfoDxe 82AB4703-FE33-49C3-AE40-4A20132C792A,AmdPspDxeV2Shp 82ADB73C-E005-4E07-976D-F7F75314EC4F,FchSmmDispatcher 82B056D7-5824-4084-9C31-BBB52B47BDB8,DellDfuPersistentEventPei 82BF4973-734D-4324-A3D3-FCC0EE3AD51E,DellEarlyLogoPei 82C93B6D-68ED-440E-A826-BDC7AEF8EE0D,WirelessBluetoothDetect 82D18B9E-153A-4BD7-9270-ABC14ACE5DC8,UefiDriverRealTek 82D3F268-757A-44CD-A87D-13FDA972B999,EfiPlatformTypeLightningRidgeExecB1Protocol 82DDD68B-9163-4187-9B27-20A8FD60A71D,EdkiiIfrBitVarstore 82E1070A-B808-4F26-A8E9-ACDCDFF2721A,Rtk8153UsbUndiDxe 82ECEE48-9571-4427-8485-85A5A45A0F39,DxeSmmReadyToLockOnExitPmAuthThunk 82EF44E3-2C70-11E7-8DF1-B8E8562CBAFA,AppleVariableRuntimeDxe 82FBE26B-53D4-448F-924C-7BE0126ECA4F,DellPxeUndiRom 832D97EB-8FD7-45BB-ACFE-2A468F51C1BD,DellMultiFuncDevConfigSmm 832EF075-7D39-4E4C-83B9-B1EBF34DA2D6,PcdInitDxe 83381B06-2EEA-4CF3-9B5F-D75B9B5C93DE,GetServByPort 833D3ABA-39B4-43A2-B930-7A34533931B3,UnitTestFrameworkPkgTokenSpace 83410FC1-2C86-470A-AF66-3966A1ED42BD,PhAmtSupport 8341855A-F272-4FFE-BBEE-DAEAC5CEDDC7,DellStorageAgentSmmRegister 834C0C5F-ADB3-4372-AEEB-03E4E9E6C591,IntelFspPkgTokenSpaceGuid 83705B89-CBF9-44F8-8546-E0124C682D08,SpiNorFlashJedecSmm 8373FD38-D98B-4C8A-851E-2E9396748AF3,TxeFwDowngradeDxe 8376BDCA-5E03-4735-951A-4A74141E5886,TrEEConfigDxe 8378AB1E-4147-400A-8D84-E3DE981C0453,TamperResistantBoot 837B3E7E-4259-4E35-87ED-397A24CA1593,MpmSensorInfoDxe 837D8904-2231-4558-8F70-EE72790BAB9C,ClientronLanDevInfoDxe 837DCA9E-E874-4D82-B29A-23FE0E23D1E2,VirtioMmioTransportGuid 837DD75D-9862-4E68-87F9-64F855BB83EC,HpNetworkFeatureByteKillSmm 83890F3D-B747-4F4D-8C21-12908759A53F,HstiIhvProviderDxeEGS 838DCF34-907B-4D55-9A4B-A0EF7167B5F4,NvramPei 83965ED8-D618-4176-81D1-57B822627CA1,FjSecuredCorePcDxe 839B07A6-054D-491C-9B15-3A3906449990,ThunderboltSmm 839EB770-5C64-4EED-A6D5-EC515B2B2B23,PlatformVTdInfoSamplePei 83ADC55E-24E1-471A-BF47-272F49CD8F9A,FjGabiFlashCoreDxe 83B3BD89-5276-4E5A-8DEF-2E5A5EF2F2A3,PlatformSxConfig 83B698B9-0208-4ECF-BB83-CE42D0BEFC4A,DellPwByPassSmm 83C233EB-D01A-45D8-9FA1-AF40206FCC9B,AmiTseOemPortingVar20 83C30E53-7A4C-4273-A686-65E9DC09D75B,AcpiDebugTable 83C8BCBA-810F-4D22-9CA5-1F27B092D547,GNVS 83DB711B-ADAC-46B3-BBFF-5E6E28CFFBD2,DellWlanSmm 83DD3B39-7CAF-4FAC-A542-E050B767E3A7,VirtioPciDeviceDxe 83E053E5-3BF6-4C2D-9B86-72BE3CF2EDCC,I2cMouseDxe 83EC3FC9-CB74-4B2B-89B9-E98F0972F2A8,RotateScreen 83EC90A9-D791-4613-9C57-68C3DE923C3B,MeSmbiosUpdateConfig 83F01464-99BD-45E5-B383-AF6305D8E9E6,EfiUdp4ServiceBindingProtocolGuid 83FA5AED-5171-4949-BDC9-0CBC9E123663,FwCapsuleRecoveryPPI 83FAAFBF-FC4B-469F-892A-798E66A6F50A,RestJsonStructureDxe 83FEE84D-9321-4908-895D-4F6E355CEC55,HDMIPConFW 8401A045-6F70-4505-8471-7015B40355E3,UsbBusPei 8401A046-6F70-4505-8471-7015B40355E3,UsbBotPei 8404B613-EA35-466F-BC7B-9F51C965198E,AsusBackDoorPW 841C04A6-A8B5-49D8-B65D-86CDB36D4416,SmuV11Pei 841DDA73-0A8D-4D49-AF60-2A145D2176CE,EfiNgnAcpiSmmInterfaceProtocol 84245DBA-1B6B-43CD-AB59-7B2FEE2C5BEF,ASRockBIOSInfoDxe 842546AF-5AEA-40DB-8695-42E52575CA45,A01DataServiceBodySmm 842680F2-1A9C-48E6-A433-BE9ACB0DD438,EfiIpmiBoot 842A454A-75E5-408B-8B1C-36420E4E3F21,NvramSmi 842C4FC7-1E52-492E-9E64-70F998CD8811,SDSmbiosUpdate 8434DA1F-5CEB-402E-A93C-038CBE0F3F0E,OemActivation3Smm 843CE545-9F06-410F-BA6C-311D66AD643A,MFGDoneSync2Setup 843DC720-AB1E-42CB-9357-8A0078F3561B,EfiSmmControl2ProtocolGuid 844EC5BC-AE49-41B2-A70A-0AEE59505518,DellAdvSysMgmtDxe 84562A94-1CFF-11DF-AB3F-FB61AA51C41C,PmRuntimeDxe 8456F6DB-043B-405E-B18D-684E69B05DE7,AmiOemRasDxe 845A6EE9-ABEB-4DDC-8983-0A13A2D1A79D,TdxDxe 8467C103-6FF6-4D66-86F6-E1124C111E94,DellHotKeyHandlerSmm 8467C103-6FF6-4D66-86F6-E1124C111E95,NbLegUsbPolicyload 846E721C-E036-4F2F-90A6-8094917FB077,NvmePciHcPei 84762744-FFA7-4228-B430-87AE0C2C3BE7,EmulatedEepromSmm 847BC3FE-B974-446D-9449-5AD5412E993B,BootManagerDxe 84821C5D-1CFE-4E2D-819D-5019448D175C,SmmSxCallBack 848377A0-A78D-469D-B766-87186AA6770D,EpuHwModeDxe 8489334D-4219-4CA1-9B42-1D46B0B75861,TcgPpVendorLibNull 848E908E-BD11-428E-94F9-7A0EEFCD37A6,BaseCsrToPcieLibNull 84945A3D-49C8-4059-8F34-6A4532D32A47,VariableEditSmm 8495E3A1-43D9-11E8-927F-A4C4943F0C96,NvdimmInitializer 84991287-3FF0-4FCC-9C11-C7E041862C76,DellPowerManagementDxe 849E502A-75B6-4F9C-AD12-1E01F1DC0C40,AmdAgesaParameterGroupPei 84C31E7D-3703-42D3-B43B-1FEE41666D9A,SystemFormBrowserMetroViewLayoutDxe 84CB67EC-B27D-4F83-897D-16A95B626EBE,BoardInitAdvancedPostMem 84D3E3DC-98AD-4D40-9396-57E8ADC7868E,GetVariableHookDxe 84D4AD5B-1702-442E-BDD8-57E1196111E5,SmmAccessDxe2 84DA4361-EE8A-4769-9368-4F28A1C92032,EfiBxtTokenSpaceGuid 84DDA68C-CA5A-4C30-9261-DD6DE7E45A95,EzSetupPortingDxe 84E7016D-1EB8-4637-B01E-9EED018C7AE0,BiosGuardNvs 84E90BA3-CB79-4267-AE2F-437B86DAA6F4,DellTrustChainingPei 84EEA114-C6BE-4445-8F90-51D97863E363,CpuHotplugSmm 84F258E9-5AA9-4DD6-A4D4-209B3BE31B0C,OfflineCrashDumpDxe 84FA65AF-21BC-43BE-85FF-8AA7E7832A1D,AmiPciExpressLibNull 84FB407D-D076-4DDD-871F-33373A26BABB,FchPromontorySsdt 84FB407D-D086-4DDD-822F-33373A26BACC,FchTaishanSsdt 84FB69A7-C858-483A-BB90-D3BCAFBCC6ED,DatabaseManagerDxe 850CBAD8-5CF2-4B46-8FF6-ACED339EDDB0,HeciControlPei 8513DFD9-F651-43F7-9296-B31D5316CAB9,PlatformBootMode 8519ED6D-228A-4A7D-A9E3-6E24D94FE22F,AmdCpmAdaptiveS4Peim 851A6355-CE10-4F67-9D13-91B3281A95D3,LenovoSystemOemActivationDxe 851D895C-2212-4D81-8316-18D7C13E5F60,AmdHspFtpmDxe 85226559-0DEF-48D8-A8C9-B746D6A4DF01,AmiMemoryErrorReportPpi 85254EA7-4759-4FC4-82D4-5EED5FB0A4A0,DefaultPKFile 853C36E2-D7F5-4CED-BF73-E0111A648082,AsusOA2Bin 855328E7-F96F-4398-9E7F-1F0A8C014E2C,AppleMeDriverDxe 8555FD40-140B-4F3C-905E-3BF378A099FA,EfiActiveManagementProtocol 855D2C2A-8A68-4783-AEC0-CCD995CBA569,FchKeithMdnSsdt 855D6DC1-9FE8-42E0-9F76-50C2E2DD2E06,AmdPspDxeV2Rpl 85674556-04B3-4151-8612-53C628835F34,H19DxeInstallHook 856C6A10-F3B8-4C2E-A273-7868C09BE8EA,MmcMediaDevice 85768E4A-6CDC-444E-93DF-936685B5DFCC,VlvRefCodePkgTokenSpaceGuid 85794F19-3BBB-4392-BB3C-06E3EB45E387,D01HookAcpiProtocol 858031F3-96A2-406E-ABCC-ED264A3A31D6,CryptRuntimeDxe 858189AC-0ECA-4666-BAB8-9972409953C8,AcRecoverySmm 858EBE6F-360F-415B-B7DC-463AAEB03412,TcgLegacy 858ECEAE-4A83-41BE-9643-6ABB93943A4C,RealtekGopDriver 85941FF3-13C9-46E6-9EE7-68B487B83F27,AaeonSmartBoost 85984EC9-E300-4277-AC62-640FABADB6A5,DellSbDxe 859A2015-3C7B-4F4E-847F-7AA88C8714A5,ConfigChangePromptSmm 859F2D28-2894-4EF7-A05C-F8BFC7922DB7,HidSimplePointer 85A00CB2-2924-4849-95C4-787852F03FC7,PlatformSmm 85A084FA-6B0E-BD4C-A20E-156E46103155,Legacy8259 85A5550B-3E76-42E4-8826-F9879983DE69,DellOA3 85A6D3E6-B65B-4AFC-B38F-C6D54AF6DDC8,EfiSpiConfigurationProtocolGuid 85A8AB57-0644-4110-850F-981322047070,EdkiiSmmLegacyBootProtocolGuid 85B0C7D3-70AD-4FB0-9556-64419E7F713C,FjAcpiSmiSmm 85B75607-F7CE-471E-B7E4-2AEA5F7232EE,EfiUserInfoAccessSetupAdminGuid 85B79D5D-EAAD-4A85-BA28-03D1362E668D,FchI2cMasterPei 85D80233-B31B-40F2-8131-034405FC5936,SmbiosType133 85D8435F-A603-4DAD-A285-7230D84F9F69,AcerDiagnosticLogDxe 85D91856-70A3-411D-9612-4531C060D867,ITE8225DxeInit 85DB8287-B268-4DF4-9226-7302B211E303,OSSelect 8600C3A8-4213-456E-832A-D51E8E5F4AB1,AppleHeciDxe 8614567D-35BE-4415-8D88-BD7D0C9C70C0,PlatformOverridesManagerGuid 861AB7EA-0E47-40B3-AEA6-48D07AF4703C,CsbSmartCover 86212936-0E76-41C8-A03A-2AF2FC1C39E2,EfiRscHandlerProtocolGuid 8623FAE0-D68A-4E4C-8D3A-BADC1FEEA00D,FjSetupInterface 8624F36D-6DE0-44C3-8322-74AD419D3A90,AmdErrorLogDxe 8628752A-6CB7-4814-96FC-24A815AC2226,EfiHashAlgorithmSha256NoPadGuid 863095D8-3BF4-447C-AE10-15B3AE9936FD,LenovoSystemBootModePei 863B519B-57F0-4FF4-BEC8-140AF94FE106,DellChassisPei 863D214F-0920-437B-8CAD-88EA83A24E97,DatahubStatusCodeHandlerDxe 864693E2-EDE8-4DF8-8871-38C0BAA157EB,PeiFspWrapperHobProcessLibSample 86488440-41BB-42C7-93AC-450FBF7766BF,SystemBootMenuDxe 864B10FE-3D5E-4908-88CC-F08D4EDC0050,LenovoSystemPciIsaBusDxe 864C95F3-1558-4D13-A474-11D0023576E2,SureStartPcdSmm 864E1CA8-85EB-4D63-9DCC-6E0FC90FFD55,SioBusDxe 8650A9D0-3A80-43F2-85D8-6D10CDBF611E,SuperMSmm 8657015B-EA43-440D-949A-AF3BE365C0FC,IoMmuDxe 86574ACD-5A8F-4FFF-A64F-6A1702786850,CommonSetupDxe 865A5A9B-B85D-474C-8455-65D1BE844BE2,EfiDebugAgentGuid 865A5AAB-B85D-474C-8455-65D1BE844BE2,EfiSourceLevelDebugPkgTokenSpaceGuid 865F8FA9-BD72-4D38-A1C6-6041F426E92F,DellSbDxe 8663617C-CA3A-4B25-B63E-6FFB3894D65A,SioSmiSwDispatcher 867864C8-3986-41A6-AA26-A3A41F1B5DC3,StringMarshalSmm 86787704-8FED-11E3-B3FF-F33B73ACFEC2,TcpFastbootTransportDxe 867BC78A-10AC-B6A2-88B5-C412ABC42A62,DellPlatformErrorHandlerSmm 8680725B-3E11-46B7-AB11-2B30180386BA,DustFilterWmi 8683EFB2-FDE1-4AFF-B2DB-E96449FDD4E9,S3Pei 86843F56-675D-40A5-9530-BC858372F103,OsSelectionVariableGuid 868A660F-47F8-4088-A4C0-C55FF8DB0C96,LEMPhyPresenceSet12 8698C9AB-DF46-4B3C-B119-1D4CC1199497,Realtek5243CardReader 86997AE6-D443-4939-B729-A3D0F32FB772,OneClickRecovery 869C711D-649C-44FE-8B9E-2CBB2911C3E6,EfiPeiDelayedDispatchPpi 86A075CC-7854-4B11-AF71-95B8762D941A,N17PQ3Gop 86A885EE-D71E-2ED6-0FC1-9D6CCC9677EB,FmpDxe 86AD232B-D33A-465C-BF5F-41370BA92FE2,EfiMiniShellFile 86B091ED-1463-43B5-82A1-2C8B83CB8917,EfiPlatformRasPolicyProtocol 86B9FA34-F889-4DDC-AEC7-40D286EC6181,I2cTouchScreenDxe 86BA6273-0562-4CD6-8971-8732949A1191,BiosInitToFactorySupportSmm 86C17F69-6A91-451A-86B6-F92EBC602831,AthQCA9377Undi 86C29AA5-0DB0-4343-BD52-7A729F37C96D,AmiDigitalSignaturePPIGuid 86C77A67-0B97-4633-A187-49104D0685C7,NuvotonFwManagementDxe 86CDDF93-4872-4597-8AF9-A35AE4D3725F,IScsiDxe 86D64391-9699-417C-9506-14FEE06B8E54,RfBootOptions 86D70125-BAA3-4296-A62F-602BEBBB9081,DxeIpl 86E82AC3-D6AF-47A4-8C93-0C76C7B3CCD3,LegacyBiosMiscSmm 86ED8CBA-839E-46FF-A740-3504D8A79808,PeiOemModule 86EDAAE5-073C-4C89-B949-8984AC8A55F3,SdMmcDevice 86F5680A-155C-4BC8-AC77-573848E2AD3D,AmiTreePpiGuid 86F61BDF-5BFD-46D3-B0F9-E43728DA1D2E,OCMR_CPU_POWER_MANAGEMENT_DXE 86F67A12-2E32-44FC-8D6C-7901E2B5649A,CapsuleUpdatePolicyDxe 8708203B-8948-4E51-BEE7-8C1B56EEC9CD,FjPvCredentialProviderDxe 870CAF91-B79B-4EBA-920F-71E3DD4789F4,HeciRuntimeDxe 870E0F5A-1981-45F6-AE26-0391425CC46F,CpuCsrAccessSMM 871349B8-C7E6-443A-B9ED-91A41AFFFC82,SmuV11Dxe 8714C537-6D4B-4247-AA6C-29E8495F9100,FspNotifyDxe 871669D2-A12B-4785-8049-06048E4A1C52,HpBlockingDriver 871CA5C8-FA45-E413-7491-02CDAC5F90AE,AcerBIOSConfigurationToolSmm 87346F74-B249-49B8-8287-2702CE61109C,BiosGuardServices 87367F87-1119-41CE-AAEC-8BE0111F558A,EfiJsonConfigDataTable 87438836-AD8D-4E3E-9249-895120A67240,DebugCommunicationLibUsb 874E9954-24D4-43E6-90A1-C5775340CF45,AmiPlatformInfoHob 875F4197-2AFC-42F5-B090-4DF03B1DA613,SpanishDxe 876730C9-9A69-4508-9579-CEBD1462A5FE,AmiSsidInit 876E11E2-5B23-4EA4-AF2A-4065EFBAD841,LenovoVariableStoreSmm 877609BF-BBE2-4C9E-B45B-A46859C76C73,FjGabiSettingsApiSmm 87777B50-6429-4F8A-8A62-F5B14F1F5948,FruCpuFeature3v0 877F57F6-689B-4FC1-A7AF-02DF7FD536E8,AdlSemaSmm 87837AA2-EEB7-434E-9EAC-9D49639E72A2,OtaShellCommands 878AC2CC-5343-46F2-B563-51F89DAF56BA,IntelIGopVbt 878CA608-293F-482E-83A9-50A484B5D4ED,EDockSmm 8790C65B-61E2-41A0-B6AD-FCE066F18414,EarlyConsoleOutInterfaceDxe 87AB821C-79B8-4EF6-A913-21D22063F55F,AcpiPlatform 87AE079C-1143-48D7-A6DC-D9E6115DBBCA,FjGpioAlderLakeDxe 87B90206-0D59-4B75-B43B-E6450D12D2AF,IsaHostControllerPei 87C2106E-8790-459D-BD44-2EF32A68C3F9,IhisiServicesSmm 87C3E993-B28D-4226-89C9-120DBC92ACBF,SmBusSmm 87C4741D-CEF4-48A1-89AA-7F86EFA0A21A,MediaCapsuleEarly 87C73C1C-1529-4EF5-A3FA-08D73EF8C827,DellSmmSioDash 87C76262-F1F3-4452-B805-47438A6793A7,SgDxePolicyInit 87C8BAD7-0595-4053-8297-DEDE395F5D5B,EfiDhcp6ProtocolGuid 87D243DD-F77A-43F8-A21E-6B04DD76749B,DellEccErrorLog3Smm 87D402CD-8B07-4B93-B38B-F8799F28B033,AmiTxtDxe 87DAA0C1-99BB-4435-AB35-36BC7DCA4EDA,UsbKeyboardPei 87DD3539-0667-4BB7-9FB2-47D3C50B021B,PhoenixDesktopMessageProtocolGuid 87E1BB14-4D5C-7C4E-A90E-E1415687D062,EmuTimer 87E328F9-93A5-4375-BA69-93A7A77A5D9B,LenovoInitMePolicy 87E36301-0406-44DB-AAF3-9E0E591F3725,VConfig 87E4A8F8-B74A-40B5-B019-E10A5DE11236,VbiosHookSmm 87EA012D-CBAD-44C1-8431-61193A060941,PeriodicSmiControl 87FB2BE8-F1E6-448D-970A-BE4DFE7921CB,AaeonSxSmi 87FC8DCF-660E-4FFF-8776-D6BA053DEDD1,DellIoExpanderPca9555Dxe 87FFC11C-D0AB-4D12-A779-0A5474050759,OemProtocol 88015920-2B9B-4B2E-840C-AD76BC6C3ABF,AmdNbioDxe 8803FA9A-0D33-4022-856B-AB5932A0F8BF,AmdInitPostPeim 880AACA3-4ADC-4A04-9079-B747340825E5,EfiPropertiesTableGuid 880AE5C9-FA45-9B63-7489-9B12CC564540,AcerBIOSConfigurationToolDxe 880D81BF-DA88-49E1-9543-A58247FEAD1A,LenovoSetupAutomationSmm 881807D2-98D1-4EC9-AFA0-7746C42F2449,PeiAmtStatusCodePpi 8825B553-85A6-466A-9846-0CC23C5AEA42,SystemSetupCapsuleUpdateDxe 88286B57-478E-ECBE-6407-D8BA02E7873C,UsbPortConfigPortingDxe 882C5D54-1DAD-4F4A-8316-4BDF841E09D0,EfiNorthPeakStatusCodeHandlePpi 882C5E65-D37B-441B-A1D9-6C89C5CC3AE1,UsbDonglePei 882F2546-EF1F-4090-9F9C-93845AD7841C,SmBusControllerIdentifier 884441DA-4459-4796-A5AE-D39F30E97A9E,LanWakeupPei 88523DDF-3AAC-41F6-B15F-DC7BEA434B39,TrackPointSynaptics 88548343-32E6-45D4-B1F1-1D4FA72DD4A3,MeFwuDxe 8863C0AD-7724-C84B-88E5-A33B116D1485,Host 88640B94-021C-4926-9198-0A98FB7A0826,COM_TYPE 8868E871-E4F1-11D3-BC22-0080C73C8881,EfiAcpi20TableGuid 886ACB20-78C0-4F88-9D3C-BADCE37EDA47,LenovoN25Q064FlashPartDxe 887B83CD-B40B-4390-94E2-EF77F36AE101,FjDxe 88863325-C803-469B-9904-6FB2E33F0070,AssetIDOnS3 88888888-8888-8888-8888-888888888888,WholeFv 889004EE-8388-43BE-8975-C593FC50BB4A,EmulatedEepromDxe 88A15A4F-977D-4682-B17C-DA1F316C1F32,RomLayout 88AEC621-2E0A-4280-BFCE-8AC7E31E774F,BH611FJ1 88B00BA7-7561-43EE-9733-E41BDA8498E0,AmdCpmEcInitPeim 88B1FC50-4536-4931-A8CD-AB54BA416AC0,VmdVrocWrapper 88B468B3-A48B-4B87-ABE2-8E56DFFDAF8D,DualBiosSMM 88B49226-A63F-4505-9D3C-B5A67B846133,FrameworkSmmStatusCodeOnPiSmmStatusCodeThunk 88C065E7-900D-4899-B7B0-CD404E113F95,PchPortCF9hTrap 88C17E54-EBFE-4531-A992-581029F58126,FspPcdInit 88C5D0C5-B0FF-4E06-97D8-A84B2E259EA8,SaveRestoreGptDefaultsAndWmi 88C61F0D-DFA9-4087-8687-626A8B010E0C,PasswordLockSmall 88C9D306-0900-4EB5-8260-3E2DBEDA1F89,PeiPostScriptTablePpiGuid 88D01BB9-247A-46F6-BB6E-BBA49F1124F8,DellSmmEventDxe 88D3D12C-5B7B-497E-A27B-1CB65D42BF0F,BrightnessHardwareGopDxe 88E31BA1-1856-4B8B-BBDF-F816DD940AEF,S3Communication 88E502C8-27ED-4390-AE14-937607595823,DellIntrusionDetectPei 88EA1FCB-3A5D-4ACF-A0B3-AACB36D4E90F,UsbLegacyControlSmm 88EB4F41-E574-4144-9C93-79485B110910,DellCoreServiceHWIDDxe 88EC827F-6CDE-41DD-8B55-BD62449C4F1B,VbtMipiPanel2Guid 88F6ED8D-7D6E-40EB-84B4-D66FBDDCE5C0,AmdMemSmbiosV2PhxPei 88F74F5E-E998-4D59-44D8-225FEF02FCE3,TiXio2001BridgeConfig 88FAE289-0A6A-4097-9CCA-2BED645B094D,AplDxeIpl 88FEEAAB-BFBA-4CB9-8907-31BC6E546DBE,SXApp 8900C607-C0AA-478E-AF00-65870BC951FD,SetupStatusDxe 8900E28F-DE99-4FC4-894B-6F41CD139A48,InfineonTpmUpdateDxe 8901FE25-27D3-4815-A63D-35851C4F50EF,FjGabiPostFlashAbstraction 890987B9-3E09-4608-A468-5E0987B204ED,FchSongshanI3cDxe 890A3508-E816-41CF-B7E6-ED28E5BB5C28,AmtCompatiblity 890C2CEF-43C8-4209-A78D-AE14AA1798B4,AmiTcgPlatformPpiAfterMem 8913AADD-564E-4CF8-B176-F3F985979C5F,RomHoleReplacementProtocol 89173692-9AC2-4C86-9ECC-F37782DDEBAA,LenovoHdpManagerSmm 891A4B58-440A-4792-BEC5-173E2E3E6797,PostMessageDxe 891BF95C-A903-42E7-8D5F-B7F9B6C8831C,PchLpcPei 89276AFE-0B07-4B39-AF5F-506FC0D21091,CbmrSetup 893BF598-FA5D-4B6C-8829-6016ECC443E7,MainErrorHandler 8956E299-D5D9-4453-8B3F-BBC8131336AB,OemSmi 8958EDFF-02F7-4E49-87B1-FBA4BE4E8768,SmbiosDataUpdateDxeLightningRidgeEXECB4 8962C28B-0DFE-4739-A73F-092D374A7A13,efi_pop_RT_pressed 89680AAC-452B-4B44-AEF7-800B6BFAF195,EfiIchTokenSpace 8969E833-7DC7-4DAC-A2ED-08251482EE5B,I2cPssMonzaDxe 897508C5-FCDA-4DB9-8A7E-6214CF6C246C,LenovoNvmeInit 897508C5-FCDA-4DB9-8A7E-6214CF6CFFFF,LenovoHstiUpdate 8975A90C-238C-4FA8-9EF1-03C6C359CA39,AmdCpmDiscreteUSB4Peim 8977B212-0A43-4048-993B-B39AC7B0FE21,gear9 897A5222-978B-49AB-BAA0-FC523FB92602,FjThermalSmm 897C64C1-0CB7-4FA2-815C-307463E535B5,OemManufactureModePei 8980E2D0-6C77-423B-8E3A-8D3D40D10CBB,RTL8852BEWifiDriver 898415A1-06F1-4C21-B83A-C555CF2F2364,DellMemoryThrottleProtocol 89843C0B-5701-4FF6-A473-65759904F735,EfiBmcAcpiSwChildPolicyProtocol 8987081E-DAEB-44A9-8BEF-A195B22D9417,BasePciLibPciExpress 898890E9-84B2-4F3A-8C58-D8577813E0AC,EfiBluetoothAttributeProtocolGuid 89908199-9126-4EA2-849B-06A75C245D0B,MeResiliencyDxe 899407D7-99FE-43D8-9A21-79EC328CAC21,Setup 899AFD18-75E8-408B-A41A-6E2E7ECDF454,EfiExtendedSalMtcServicesProtocolGuid 89A1B278-A1A1-4DF7-B137-DE5AD7C47913,EfiPchTokenSpaceGuid 89A27A0C-33A6-426A-A433-43EBC7BA5A5E,RaidOptionSetup 89ADA336-4455-11E0-B7E6-A801E0D72085,InitResetArch 89B6C309-F785-421F-A03C-38A800345201,AmdCpmUartDxe 89BB21EF-991D-4EA3-BE7A-1CC78533B17F,PlutonSecurityProcessor 89BC66BA-030B-4D04-A567-C66727EB9911,FjGenericItemProtectedStorageSmm 89BF244F-E569-416F-B110-8AE5EFD5171C,DellDxePrereq 89C44717-7EE4-487B-8F5C-8E609556A90F,VideoInitDoneSent 89CFE3CE-C127-42F8-BD69-2910AF7B87A7,SmmBoardInit 89DEEF37-31D8-469C-95B6-0169BC866CFB,EfiIpProtocol 89E1DBEE-54CE-422E-9C98-362A3EFDF92D,LemPostFlagPpi 89E3C1DC-B5E3-4D34-AEAD-DD7EB2828C18,UsbTimingPolicyProtocolGuid 89E549B0-21A9-4F76-9DFA-1B71E2A7C3F2,S3Resume2Pei 89E549B0-7CFE-449D-9BA3-10D8B2312D71,S3Resume2Pei 89EFE6DE-9CF2-4B7F-8F0B-AEBBA5A25B26,ComputraceComponents 89F06049-F297-4436-8540-E0BF9E92B56B,SdioRecovery 89F09528-C33A-47FB-BA19-FADE80A39F76,DxePlatformDxe 89F639BD-092D-4952-BEC8-F1F05FE3409C,OemActivation 89FD3E04-D647-42D1-8972-A6156FC3A0DD,LockLegacyResourcesPortingDxe 8A002AF2-EC39-4B01-BC64-84284267DF44,ASM104X_PEI 8A107CC5-DCDA-4FB7-A272-4243B41AFBFE,AppleGraphicsPolicy 8A1C3C80-A891-4EEA-9197-6635E277C4DB,HpVrocDxe 8A219718-4EF5-4761-91C8-C0F04BDA9E56,EfiDhcp4ProtocolGuid 8A2FDFC3-0395-442C-B9F7-9A3D69D2094C,SoftKbd 8A39B8EF-6680-4A7F-9AC4-18365214A3F0,AmdSocSp3r3CglDxe 8A47CA0A-B201-46EF-8883-54D4557A93A0,DisplayLogoDxe 8A4E8240-74F8-4024-AE2B-B39221C9FA59,NvOptimusSMM 8A50765D-1582-41EB-8289-1409419C24DD,LenovoMfgDoneSmm 8A563114-70F2-4ADC-9A47-19424DFBE82C,CrbPciePei 8A6093B1-02B8-4685-B250-48CAB364BCF8,FjPeiSetPlatformHardwareSwitch 8A66BB48-6F23-4809-938D-33ACA6C481AE,FjPciPei 8A6B4A83-42FE-45D2-A2EF-46F06C7D9852,EfiUserCredentialClassSecureCardGuid 8A76A029-F948-4A56-93D0-2E2BC2ABDB4B,OemACRecoveryPei 8A78B107-0FDD-4CC8-B7BA-DC3E13CB8524,PeiCpuIoPei 8A813C26-0297-4608-975A-2D744204C746,LenovoTamperSmm 8A867F67-89D8-4134-BBBD-64BBAA5256F5,AmdCpmI2cDxe 8A8A6221-E240-4E09-ABC3-B1DF3609B027,AmdNbioPcieDxe 8A8D0AD0-E28C-4907-A651-AE9D65CD9298,TileSmm 8A91B1E1-56C7-4ADC-ABEB-1C2CA1729EFF,AmiPostManagerProtocolGuid 8A97886A-EEE1-4BF8-AD20-68F398F95B12,AMDPSPKvmMiscDxe 8A97B11E-EE8E-11E2-B664-047D7B99E097,AcpiInterfaceCoreDxe 8A99693A-F42D-442B-B369-DDD6780DA710,PlatformHstiSetupDxe 8A9EE24D-DAE8-401F-A591-241DF848407F,WwanSmm 8A9F7CFC-5BFC-458F-986F-BC3D1BA7AC89,DellSpiPartStMicro 8AA67071-8BEC-47AB-83C8-CD0EB723D072,IdeBusDriverBindingProtocol 8AAE7EE0-8EE6-4F3B-9A03-EE3437593E03,OemSmmSx 8AAEDB2A-A6BB-47C6-94CE-1B8096423F2A,EfiSocketServiceBindingProtocolGuid 8AAFF1F7-D011-4AE5-8324-DFA470F75D33,AsfDxe 8AB17F97-758F-47AA-BA64-DDC63C3A1D86,H19DbxService 8AB1D576-5977-4A89-9414-099D90B53E79,TpvSmm 8AB2F241-77FA-49C7-BD2C-FD71A743FD8A,PostMessagePei 8ABF6B02-4DC9-4F98-B9FF-4B328A22AE07,PrmPeLoaderHandler 8AC88C0F-6220-F243-8E27-56E17CC503DB,AppleNetLoadFile2 8ACEFE43-D9A5-471D-B802-9879862AC3BC,FchSmbusDxe 8AD3148F-945F-46B4-8ACD-71469EA73945,Tcg2ConfigPei 8AE83DA6-881F-4BA6-997D-7BF16ED553B4,OemSmi 8AE96C45-9798-45E5-A952-143B6330A540,ClientronSmbiosUpdateDxe 8AF1FE4F-DB8D-43A4-AA5D-4ADE632A0FE9,SmcPeiSerialTextOut 8AF4CF68-EBE4-4B21-A008-0CB3DA277BE5,ShadowMicrocodePei 8AF7DD16-2342-4987-9426-6604A207E24B,HddStandBy 8AF7DD16-2342-4987-9426-6604A207E26A,PasswordSeverityDxe 8B013FF3-31D2-4693-83E6-59FA0C73F0E3,CompalCommonHookDxe 8B01E5B6-4F19-46E8-AB93-1C53671B90CC,EfiTpmDeviceInstanceTpm12Guid 8B05600F-4E47-46ED-BDB0-44115D465D08,UpSmbiosData 8B0E1353-358C-4E2F-9345-EEBF1DAB989B,AsrockRtlandxe 8B12F29F-7135-4EAB-AFDA-0512F74B65EA,AmdSb900Dxe 8B24E4D4-C84C-4FFC-81E5-D3EACC3F08DD,ApplePlatformInfoDB 8B29BE94-5B8B-4E04-B771-5761FF97B113,FjFpCredentialProviderDxe 8B335317-B490-4C75-93DF-C68201346758,FjSetupControlDxe 8B33FFE0-D71C-4F82-9CEB-C97058C13F8E,BootFormSet 8B34EAC7-2690-460B-8BA5-D5CF32831735,EfiCapsuleInfo 8B48D921-54F7-11E4-9FF3-047D7B99E097,WirelessDeviceSupportDxe 8B529353-1FCC-4AC0-A121-90BE9F9CBF7A,DellDiagsLegacy 8B555AE2-4254-43A2-839E-4869604CCC9A,FspEndOfPei2Peim 8B5FBABD-F51F-4942-BF16-16AAA38AE52B,AcpiPlatform 8B63F985-5DED-448A-8996-A008BED45AA8,SystemDeleteSignaturesDxe 8B68002A-817B-0361-BABA-6341A44EA052,DPTFPolicy 8B702C70-A9FE-45F6-BA66-951B50BA3B92,OpalRevertDxe 8B778A74-C275-49D5-93ED-4D709A129CB1,AbtDxe 8B786703-E8C7-4BEA-8F07-CDF991B90999,AmdPspDxeV2Rv 8B7E5420-1B71-442A-9916-C13A4FE02482,SmbiosDataUpdateDxeLightningRidgeEXRP 8B8214F9-4ADB-47DD-AC62-8313C537E9FA,SmmBasePeim 8B843E20-8132-4852-90CC-551A4E4A7F1C,EfiDevicePathToTextProtocolGuid 8B87A12B-F438-49C0-8A7B-8D16A1FDACD4,Rt8111FPciUndiDxe 8B8AFD01-8A32-4249-9800-FABC2B1084E5,BluetoothSmm 8B8EE015-62B3-40EC-A9E5-836CBFE1F33D,TouchPadDriver 8B8F683B-F376-4BA0-B8D7-B4BBD30319CC,AtSha204aDxe 8B921AB5-A1C3-4660-BD4B-FA00B7248421,PlatformFlashPartDxe 8B93CA34-91CC-4D2A-8C74-371F92691F13,RetimerFMP 8B9947AE-0A9E-4D5F-8A8D-87C914136F38,FlexIoCardDxe 8B9D3EE0-4BA4-433B-9C48-4E830B3B40FD,FloppyCtrl 8BA016CD-3EE3-4934-9BEE-AED08EA572B9,PspPlatform 8BA65DE3-39E1-4AFD-A8FE-7DD0BAFEFCC0,DxePalLibEsal 8BAA47AE-0A9E-4D5F-898D-87C914682F38,RTS545XDxe 8BB070F1-A8F3-471D-8616-774BA3F430A0,SmmIpmiTransportProtocol 8BB18D0B-9193-4DC5-BDA0-7BEA3735DC34,FjUsbHub 8BB59471-823C-4A11-B610-CE3985793EB1,DellSystemPolicy 8BB76937-EC61-4E48-B397-6667DA243486,FjDtPlatformSetupServicesDxe 8BBC2910-04E8-4450-A6CD-349E5D4D765B,DellRuntimeAcpiDxe 8BBE7DE7-6FFB-4128-8C33-23852EBC7920,EarlyVideoPei 8BC1714D-FFCB-41C3-89DC-6C74D06D98EA,EfiSmmPciRootBridgeIoProtocolGuid 8BCEDDD7-E285-4168-9B3F-09AF66C93FFE,S3ResumePei 8BE1FE5B-0B4E-4AB4-B77B-5E03403DF501,DellUsbTouchPanelDxe 8BE4DF61-93CA-11D2-AA0D-00E098032B8C,EfiGlobalVariableGuid 8BEB8C19-3FEC-4FAB-A378-C903E890FCAE,AmiEventLogsFormset 8BEEDB0D-A31A-0361-A312-5DC8574C65F1,AzaliaPolicyPei 8BF0A193-CC00-4779-9DB3-3EA35DC77BCD,AmdPspPeiV2StxH 8C0ACC5E-28C1-4599-8238-9558A9D7A428,UsbTypeCPowerLimitPei 8C1015F8-483A-4919-A078-EA338F3C7DD4,SmmCommBuffer 8C1CAD13-167D-486F-8B20-12FF6D1305CC,FjPowerButtonDxe 8C2487EA-9AF3-11E3-B966-B8AC6F7D65E6,XenPvBlkDxe 8C2BDD31-8FC6-4C74-A5B1-E967E51CA482,AsusFnLockOption 8C3319E7-2BF8-4BF9-8FD5-036641F678D6,SecureWipe 8C376010-2400-4D7D-B47B-9D851DF3C9D1,PchMeUma 8C3CFB87-F7AE-4A36-AAFF-931FDC5F436E,AzaliaInitPei 8C439043-85CA-467A-96F1-CB14F4D0DCDA,LegacyRegionDxe 8C4C9A41-BF56-4627-9E0A-C8386D66115C,EfiTcgPlatformProtocolGuid 8C542316-A1E5-4001-89E7-15EDFF12577D,gear11 8C72C36E-DACC-4E81-8D60-FFA61D88FF54,EfiPeiPlatformpeiExecutedPpi 8C7330CD-BAD5-48D1-A7D0-F11A822BCDC8,FjGpioCoffeeLakeDxe 8C783970-F02A-4A4D-AF09-8797A51EEC8D,PowerManagement 8C7D4D1E-98AD-4CEE-8483-DD7005002544,ProjectPEI 8C7DB881-DA76-4486-8654-8152EE3470A3,MuVarPolicyFoundationDxe 8C801E8A-1A95-450F-BC59-AE490DF23029,FjShutdownLogSmm 8C86F037-50E9-4CFB-9DDB-903F084F3A40,FjIbvNvramGateReferenceDxe 8C87E0A0-B390-4BE3-819C-7C6C83CAE4EB,SmmBaseHelper 8C8A2E6C-A56C-4A6C-8C9B-B4B6BB4208AE,NvmeRaidDxe 8C8BC8DB-1930-470B-B6C4-0D8C2E6A9FD4,LnvPdrDxe 8C8CE578-8A3D-4F1C-9935-896185C32DD3,EfiFirmwareFileSystem2Guid 8C91E049-9BF9-440E-BBAD-7DC5FC082C02,DWMciDxe 8C927876-EC71-4DE4-A91D-8AD478CA9539,CpuRas 8C939604-0700-4415-9D62-1161DB8164A6,AmiTcgPlatformProtocolguid 8C9D8537-9479-40F4-8C82-70D1EF5F7353,UsbOcUpdateDxeLightningRidgeEXECB2 8C9F4DE3-7B90-47EF-9308-287CECD66DE8,EdkiiPlatformSpecificResetFilterPpi 8CB50D77-4524-4F78-A9AD-628DF311203E,FjCypressConfigDriver 8CB53645-72FF-42A9-8ECA-0D7EC3D726C9,EcRotUnlockEcPei 8CB71915-531F-4AF5-82BF-A09140817BAA,FLASHMAPBIN 8CC435C5-6330-4269-B0C3-E3BD05C86FB8,DebugCommunicationLibSerialPort 8CC4C372-D69A-4201-BC19-07799B699369,CollectBootInfoProtocol 8CD89386-C897-3098-9687-C46A5B7DEC05,AmdCpmManageabilityDxe 8CDD593E-43CD-47FD-837D-2E2DD1C2B78C,SetupConfigUpdateDxeGnrwsCRB 8CE0E1E9-26DC-4F24-ADBD-6871B8223703,PciSdxcDxe 8CE65FC0-8F33-42A7-A2EA-46DEBE231EA6,XhciDxe 8CE8BC38-805D-442D-8DB0-479275CB1BF2,SystemErrorLogDxe 8CF2F62C-BC9B-4821-808D-EC9EC421A1A0,EfiPartitionInfoProtocolGuid 8CF6052D-8153-435F-ABA4-114B6A3FB53D,DellAhciSmm 8CFADE70-1806-440F-FFFF-FFFFE7CB5DA6,XnotePlatformPolicyDxe 8CFC5233-23C6-49E3-8A2D-7E581AB305BA,EdbCfg 8CFDB8C8-D6B2-40F3-8E97-02307CC98B7C,EfiVariableIndexTableGuid 8CFE04F2-027A-4BA0-A034-6CEC64865B24,SecureBIOCameraSonix 8D05A3A8-8464-4230-8A9F-C3EB968296FA,FmpDxe 8D07B6FB-3C1A-4AA9-A736-7039C8529BDD,PciDeviceInfoDxe 8D12E231-C667-4FD1-98F2-2449A7E7B2E5,EfiSmmControlProtocolGuid 8D1933CD-E806-4D83-9F9D-FF10E64D76D5,ISL95856Pei 8D1AE715-7F82-449D-A26C-62AC650AF73F,Int15PanelType 8D1F8D27-31C2-4B5B-B736-4BB5B4A25FBA,ASRGetDLSiteWrapper 8D1FB8C0-D28A-45A0-AD3C-73ECB9DC114C,FjDmiBoardBiosInfo 8D22D303-69D5-40C9-A71E-5C38C951FC18,LegacyUsbIrqSolutionWADxe 8D247131-385E-491F-BA68-8DE95530B3A6,EfiSetupVariableDefault 8D25EF2C-2015-416E-B8AA-2369FECD4BDA,CTA9x4ArmVExpressLibSec 8D3113BD-4D86-4186-8D2B-24569306E598,KEMhLpcDecodePei 8D3168FD-8CD5-4B35-9AA0-3C964D4CC14A,RstVmdDriver 8D32716A-60DF-4BDE-8647-3D178CC82B6C,DellMePlatformConfigDxe 8D33AA3A-AC58-4C2D-9966-F18AB8C11393,LegacyUsbDxe 8D3BE215-D6F6-4264-BEA6-28073FB13AAA,ChipsetSmmThunk 8D3BE215-D6F6-4264-BEA6-28073FB13AEA,SmmThunk 8D44C8C2-80E5-49E7-BC12-AE089E48FA42,AmiTsePkgTokenSpace 8D463051-692F-4924-9AEC-0A833B1BA49B,PxeRomAr8132 8D46CE70-B62D-4CF7-875C-BEC8016D7D01,DellTcg2ConfigInfoTpm12 8D48BD70-C8A3-4C06-901B-747946AAC358,EfiIsaHcPpiGuid 8D4A8276-1994-4E82-983A-A71753617797,menu_checked_selected 8D4EF3A5-8958-405D-98C4-ED91B71583F5,H2OEventLogConfigManagerDxe 8D59D32B-C655-4AE9-9B15-F25904992A43,EfiAbsolutePointerProtocolGuid 8D59EBC8-B85E-400E-970A-1F995D1DB91E,IntelSnbGopDriver 8D5EA70B-02EB-48D8-BEAB-459778C5DE1F,SmmConfidentialMem 8D658AF6-178B-432B-9692-ABE717D9BDA8,FchHuashanDsdt 8D6756B9-E55E-4D6A-A3A5-5E4D72DDF772,PciHostBridge 8D6F1ADD-45A5-45A8-8BB8-0C3A953148FA,ReadyForLockProtocol 8D7AE6A9-B490-45E1-8795-C2BEAADC3814,RawIp4Rx 8D7F9B78-FE02-41F7-B515-0841C429654B,WiFiSupplicant 8D91A3ED-9040-46E0-8248-FBBE3F2BE808,ErrorLogPolicyDxe 8DA47F11-AA15-48C8-B0A7-23EE4852086B,A01WMISmmHandler 8DA5D50B-A39C-4FF7-AB4F-7426A145D0E4,RandomNumberGen 8DAA8C2C-5E2B-4158-8ADF-5FACFC0E9B77,AcerLID 8DAC5195-3FD5-4E32-9C2A-1A65BD699932,AmiTseOemPortingVar9 8DB6415E-1C83-4E8C-BB14-5560B58FC844,EmulationEDID 8DB699CC-BC81-41E2-AAC6-D81D5300D759,PartitionVariable 8DB954AD-047A-459A-AC0F-F3758779F61A,DellMfgModePei 8DBBB229-87E3-4CBC-B2F7-6A54C830D166,HpCableDetect 8DC58D0D-67F5-4B97-9DFC-E442BB9A5648,tftp 8DCE1957-D774-4FDA-B90F-0B231CB2E0CC,DellSmmServices 8DCEEEBB-5741-4092-884D-144EC472682D,PrmAddressTranslateModule 8DD46B11-0403-4B4C-B372-7041CB151834,DellFlashUpdate2Pei 8DD9176D-EE87-4F0E-8A84-3F998311F930,Dhcp6Dxe 8DD9176E-EE87-4F0E-8A84-3F998311F930,Dhcp4Dxe 8DD91798-EE87-4F0E-8A84-3F998311F930,ArpDxe 8DDE1037-94E5-4B84-8611-279A004BA8F5,PspP2Cmbox 8DE287AC-9460-465C-B8FA-F6E9866AE56D,xgbe_atl 8DE29E5A-BABA-4696-B07D-33E83D5AD811,CbsBaseDxe 8DEEC992-D39C-4A5C-AB6B-986E14242B9D,EfiDiskInfoSdMmcInterfaceGuid 8DEFE6CA-2AF0-474E-9642-838282B3C982,BiosAuditLogHandlerSmm 8DF01A06-9BD5-4BF7-B021-DB4FD9CCF45B,EfiHashAlgorithmSha224Guid 8DF39C0E-8170-4415-B7B3-DA2613B51046,EarlyGuidHobPei 8DFAE5D4-B50E-4C10-96E6-F2C266CACBB6,VideoRom 8E008510-9BB1-457D-9F70-897ABA865DB9,EfiLegacyBiosExtProtocolGuid 8E09C390-1B30-415E-AF5C-D42AB0160F8C,AmiCbsDxe 8E199D3F-3A74-492B-8CB3-93D668D87D07,IsRecovery 8E1F3306-C9CC-46E6-83BC-5928B0DD036E,OpalDeviceService 8E201427-463A-4D24-A0F4-25A875F61BAA,DellModBayConfig 8E21ADB5-0B93-465B-BE61-1725DE06C2AC,EXT 8E3119C0-F712-4E67-94DF-6F8EFBB60685,PlatformSetupMainInfoDxe 8E325979-3FE1-4927-AAE2-8F5C4BD2AF0D,SdMmcPciHcDxe 8E38A88A-C267-4131-A8CD-C0BC80A24CB5,CbsSetupDxeSSP 8E3C826C-B69E-4F56-95AB-1324DD02E28B,StdBoardPei 8E4318C2-599A-435B-BC14-D9C9FA4172CE,AmdMemChanXLatDxe 8E46DDDD-3D49-4A9D-B875-3C086F6AA2BD,EdkiiVt400 8E477676-55FD-48CF-9210-15A99B27D740,Slp10 8E47929C-C80E-40CE-B013-807FEFC94110,IntelGigabitLanDxe 8E55BB3F-1148-4EA5-BDB6-425E4584FF78,DefaultUpdate 8E57AE62-99DC-4F12-ACB7-216E2DD031AD,DxeCrcInit 8E5C4BEA-34FF-4E32-8358-3363DA01E628,LenovoSystemXhciResetSystem 8E61FD6B-7A8B-404F-B83F-AA90A47CABDF,SmmSmbiosElog 8E6553E6-A152-4A6A-96C6-016FEDC3495E,AmdPlatformCustomizePei 8E68E3C5-FC59-4280-8467-3800D31A8162,IccOverClocking9_5 8E6FEDCA-62B4-4E8F-8C42-9B8F40EF60CD,HpCallbackRegistrationDxe 8E724EB4-F314-497A-84F3-367A47E60910,DellIoExpanderDxe 8E74A1A7-8A76-4D29-9441-3C176018CB9F,SmbusSmm 8E74EFFB-C02A-4320-81F1-4B1114D10910,IntelPpiLayoutLoadPei 8E83304D-5BF1-454B-B111-AC574A5121E7,AsusMyAsusDxe 8E88BF4D-9F15-4206-BBD5-55D368B62AD1,NvmeRecoveryDxe 8E8CBC58-834C-41E3-B8CA-F00CCF5A717C,IccOverclockingProtocol 8E8FB93D-6F87-4CF8-9A9E-DF5B898D223A,MaintenanceLed 8E973F83-ABCA-49E4-A940-4EAD5A6D8A1E,LenovoNationalLpcPc87393 8E9A984C-57E7-4BEB-A62B-58982E0620F1,DellNvmePwSmm 8EA278A7-90B8-455F-BE18-23172EAC6068,HpDigitalSignatureVerificationNotInSmm 8EA278A7-90B8-455F-BE18-23172EAC6069,HpDigitalSignatureVerificationInSmm 8EAD4DEF-45E8-4F6D-96AB-E5BC991D2F69,BatteryInfoSmm 8EAE69C2-4079-4B0D-B075-8BA0653A432F,NetworkStackOverridePei 8EB0B9CB-367F-43EB-8E99-3A192CD4F7F3,CrbSmbiosType0 8EB48F19-CC92-4031-8D3D-EE473CCC87EB,SystemPrivateKey 8EB7B229-27E3-4FBC-B9F1-3A245B3AF1D6,HpCableDetect 8EB9B46C-8F80-4E6A-9FBF-EC892FBA2807,SmmAccessPei 8EC24268-E545-4242-B536-04F94C889969,BoardUpdatePolicyDxe 8EC38829-A59F-40E3-BAD0-85F815A157D1,DellServiceResetSmm 8EC40FB3-4205-4D57-9039-A192832C7CED,DellEcConfigDxe 8EC41824-6658-4B55-9364-771A0658F5E2,WarmResetFlagShell 8ED29AC6-D6AA-4FE8-ADC5-B7E58791A013,DellSmmPowerOffProtocol 8EE41730-CD91-FE40-A83A-F60F1ECB492D,IcnsConvert 8EE54DF3-FC96-40ED-A1CA-3A1B265F9528,ProjectPei 8EE7D3BA-FA46-4C15-A8C7-DF18B3DA43CF,SystemSecureVariableStoragePei 8EEF9AD2-463E-425F-A4FE-2F6783D6F97E,GenericSio 8EF61509-890B-4FF2-B352-1C0E9CDDEC8B,I2CLibPei 8F0B5301-C79B-44F1-8FD3-26D73E316700,PowerMgmtSmm 8F163A88-2376-40B3-89F7-AAC73E29E941,HpRemoteDiagnosticsDriver 8F1A65CF-1D27-4354-9F77-4DB764471B4A,AmiOemRasSmm 8F1AC44A-CE7E-4E29-95BB-92E321BB1573,SecFspWrapperPlatformSecLibSample 8F2156F2-887A-4BA8-BEF9-005C16293B7A,AmiMemoryInfoSample 8F26EF0A-4F7F-4E4B-9802-8C22B700FFAC,EnglishDxe 8F27C2A7-A8FB-4645-ACC7-DAF4C80C4F95,DellODMDxe 8F2C127E-117D-484B-8A44-FBD911BE125E,IpmiRedirFru 8F3D37B9-B955-4320-97F6-BE359DE9E3B2,HpPlatformInfoDxe 8F3F1DE2-2FE4-4D5C-A8EC-49E8CCA17EBC,RsdpPlus 8F439D8B-07B2-4121-AA95-8AC91571AA75,DellErrorHandlerDxe 8F439D8B-07B2-4121-AA95-8AC91571FFFF,DellDefaultBootListDxe 8F4B8F82-9B91-4028-86E6-F4DB7D4C1DFF,Bds 8F4CD826-A5A0-4E93-9522-CFB0AB72926C,SataController 8F5572A4-6BF9-4A27-B8B8-85282E0C9C14,AmiApcbSmm 8F5A2E02-538C-4D59-B920-C4786ACBC552,Ahci 8F5C2D02-AF2B-49DE-B8D8-DF90130A2512,FlashMeDxe 8F644FA9-E850-4DB1-9CE2-0B44698E8DA4,EfiFirmwareVolumeBlock2ProtocolGuid 8F6F4178-E25F-442C-B54F-D805205EA3FF,DellXhciSmm 8F7170F5-419E-D3AE-B045-7FB5D199BDA5,AmdSocAm4RnPei 8F76DA58-1F99-4275-A4EC-4756515B1CE8,EfiBluetoothLeConfigProtocolGuid 8F7D7B1D-0E1C-4C98-B12E-4EC99C4081AC,EmptyApplication 8F7E1A3A-9657-44F0-B9E6-4EF74B22D543,EfiTraceHubDebugLibX64 8F7F3D20-9823-42DD-9FF7-53DAC93EF407,CsrPseudoOffsetInitPeim 8F87955A-85EC-4826-B4FE-173B914AB383,XhciSmm 8F8B0266-C275-411A-87EC-AAD81EB1F026,FjMfgPowerOffDxe 8F8EB724-139E-4A32-A3D0-F7D376E5B908,RecoveryDeviceMap 8F92960E-2880-4659-B857-915A8901BDC8,Ip6Dxe 8F92960F-2880-4659-B857-915A8901BDC8,Ip4Dxe 8F9296EF-2880-4659-B857-915A8901BDC8,Ip4Config 8F98528C-F736-4A84-AAA3-376A8E43BF51,ImagePasswordEmpty 8F9D4825-797D-48FC-8471-845025792EF6,EdkiiS3SmmInitDone 8FAAD0A7-02B4-432F-8F5C-B880965D8B41,SmmCommunicationBufferDxe 8FB38CF8-D25D-4855-8F15-C07A0F6B8EA7,BiosReservedMemoryInit 8FB4CD1D-0660-466E-8ED0-AD723FD7DBAE,AmdNbioAlibRPLDxe 8FB82DA4-C3BE-42A6-8A70-7B94D60972A6,DellSbAccessSmm 8FBECFE2-1313-4CF6-AD2C-D3B9472F62D3,SmartTimer 8FC1FDD4-3876-449B-A41C-6A788495FC78,BiosAttributesMgr2Dxe 8FC6AAAA-4561-4815-8CF7-B87312992DCE,UserAuthenticationSmm 8FD1935A-6A80-4535-B714-C3CBE45A5C5C,PeiSerialTextOut 8FDB0B2D-996F-4C1C-89E0-C32E6DCE6CA6,AmdPspDxeV2Brh 8FDC888D-2162-4971-81C2-35D3A1AA5047,EfiRasMpLinkProtocol 8FE545E5-DCA9-4D52-BFCD-8F13E717015F,AmiReflashProtocolGuid 8FEEECF1-BCFD-4A78-9231-4801566B3567,AbsoluteComputraceInstaller 8FF4D380-8891-4495-AF40-716CD55C07E8,LEMPostLogoDIYDxe 8FF5354A-634F-4637-B3CE-4DF1CE6B56FE,RtkUndi8111H 8FFA88FB-4395-F6B4-0525-93FF277A6215,IfwiId 9006872D-3A86-4BAE-A2F0-E527B9D7119E,IntelLanUefiDriver 900901B9-41CD-4D54-A842-4D559980960B,AmdCpmThunderboltPeim 900C2FE6-679F-4B93-B656-25136FA93946,SelfhealingSupportShowInSetup 901E524A-5A57-4C2D-93A4-74F516E07C07,ClientronServiceDxe 90253CDA-4E1F-4CD6-9EA4-276F8725BDD0,SwSmi534D3320 9029F23E-E1EE-40D1-9382-36DD61A63EAA,NCT6686DPeiInit 9029F23E-E1EE-40D1-9382-36DD61A6791D,NCT6791DPeiInit 9029F23E-E1EE-40D1-9382-36DD61A81866,F81966PeiInit 903718F3-575D-4D9C-BC78-65A11381A026,DellImgSrvBaseRom 903AF10A-BDE0-46CE-A061-8DBFF2D24269,Kb902xFlashDxe 903B2AC9-F6BF-4397-A4AC-2DC8FBEE30A3,DellHddScp 903BD9EC-1E93-43D6-A1C9-B6AB65AC9270,RtkUndiDxe 9042A9DE-23DC-4A38-96FB-7ADED080516A,EfiGraphicsOutputProtocolGuid 9044434C-40E8-47A1-A3BA-8507F3C0E256,CpuUncoreTokenSpace 904C7B88-70CF-4557-9023-85AA2153AAF0,AsusControlCenterBios 905064E0-F09A-4FCD-8780-3F10D8F0126C,FchPromontoryPlusGpioSmmInit 905CE085-E8B7-476F-B1E0-63C6A4583B5B,HPOA3Dxe 905CF1B3-32F8-489C-A641-46A714583262,PcieErrorEnable 905DC1AD-C44D-4965-98AC-B6B4444BFD65,UfsPciHcPei 905F13B0-8F91-4B0A-BD76-E1E78F9422E4,UdfDxe 9069C144-0A7E-41EF-9C07-418BCA9BF939,AcpiDebugSmm 907125C0-A5F1-11E3-A3FE-A3198B49350C,FvSimpleFileSystem 907303D5-394D-4E7C-A430-7B6A764BDC3C,AmdNbioPcieDxe 9073E4E0-60EC-4B6E-9903-4C223C260F3C,EfiVendorKeysNvGuid 90766A99-9CA5-44DE-94DA-DCC1D2D6DA1F,UsraPpi 907AB054-712B-41BA-930F-2BBFB7F57ECB,DellQuickSetSmm 907AB576-C955-4A95-AE7E-596D2256CC61,OverrideGetVBiosVbt 908C3852-B61B-4F26-AB66-F74F97E7DC1C,AmtBypass 9096EB5B-59D1-49F8-866C-78D24631A6B4,EndOfDxeBeforePciEnumEventGroupGuid 90A06ED8-D514-4CC5-B11C-7743BEE24C55,AmdSocAm4RvDxe 90A330BD-6F89-4900-933A-C25EB4356348,SDController 90B2B846-CA6D-4D6E-A8D3-C140A8E110AC,SystemFirmwareDescriptor 90BD1EF6-F66A-4B4A-9879-B0701B99BC3C,NbBrhRouting 90BF2BFB-F998-4CBC-AD72-008D4D047A4B,PeiTbtInit 90C35CC1-C3A5-4F48-9AE6-922FCE6D827E,LnvWlanPxeBoot 90C5A43A-8513-4695-AF0B-F4AA7FCFB898,TouchPad_Sensel 90C8D394-4E04-439C-BA55-2D8CFCB414ED,SataDriver 90C9751D-FA74-4EA6-8C4B-F44D2BE8CD48,FmpDxe 90C9751D-FA74-4EA6-8C4B-F44D2BE8CD4B,FmpDxe 90CB75DB-71FC-489D-AACF-943477EC7212,SmartTimer 90CBFE5B-9784-44A4-8CB8-C640AEB9EA1C,DellSystemUsbPortConfigSmm 90DADB68-B868-4D62-A07F-09B3B64DA039,Mebx 90E01103-F784-4020-91AC-C51E8BF553B2,LenovoWmaPciDxe 90E2AE43-90AE-4679-6EDF-BEA81D4DC8AC,HpRtcInitPei 90EC2C4D-28BE-4726-AF9B-94BC6CBE17F2,NearTdpLockOcPeim 90EC42CB-B780-4EB8-8E99-C8E3E5F37530,UefiPciLibPciRootBridgeIo 90FAE0B9-AC26-4482-B532-9BED052A8F8B,VmwVariableDxe 9100696B-368F-4F9A-984A-D606E578CCC1,SetupConfigUpdateDxeLightningRidgeEXRP 9104D81E-05B6-4754-A2DE-7DB342FE5496,DellAcpiSharedMemDxe 910A077B-4B23-40FF-8DCD-64685349310C,SoftSkuStatus 910CC93A-F2B7-4630-884D-625D570FACF6,IshCapsuleDxe 910DCA07-1F94-4EE7-AF2F-FF72F3154353,EfiSmmBaseHelperReadyProtocolGuid 911A3B22-8301-4CD8-835B-CC70826D5829,AmdiGpuVbsWA 911D584C-35F7-4955-BEF9-B452769DDC3A,DebugSupportDxe 912740BE-2284-4734-B971-84B027353F0C,FspHeaderFileGuid 912C464D-DDBF-43C0-B725-F1F61EA42875,AmdCpmOemRnInitPeim 913D8F08-0130-4E85-B58E-389CA566C1EC,DellDeviceDetectionDxe 913FA238-7B16-4B72-A5F0-815E7D2C8C1F,AmiTseOemPortingVar24 9140CA7B-CABD-4A09-88F7-0862043CC286,DellSmstTransfer 91472655-50E0-4D81-9AF6-239E6F431B8C,H19StartupMenu 914AEBE7-4635-459B-AA1C-11E219B03A10,EfiMdePkgTokenSpaceGuid 91538AC9-A5D3-4DEF-9A70-28A087DEFA79,AppleDataHubUpdate 91574965-A7EF-4DC6-AD6A-5356CC21C500,DellBootLayerDxe 915CB605-0E96-4C75-B724-53DCBAE7ADB5,DellDxeDiagLeds 9168384A-5F66-4CF7-AEB6-845BDEBD3012,PlatformFlashAccessLibDxe 9173C39B-08DA-429A-BE15-0F7481CF72CE,AMTLockUsbKBD 91797A08-B861-49A6-A271-7ECA11D79025,MemTestPei 91812ACA-332D-4215-B832-45C88FC7DE57,DellDptfChipsetPei 918211CE-A1D2-43A0-A04E-75B5BF44500E,EfiCPTokenSpaceGuid 9189541F-AC0C-4368-9062-70E1957C3445,EfiVirtualLockstep 918AB56A-365D-4EF5-B712-45994FCDDE57,OdmEmDellSMBiosUpdate 918ABA30-3D8D-4BB5-B849-45CC4FC7DE7C,Dptf 918ABACA-3D8D-4BB5-B832-45CC4FC7DE57,DellDptfDxeLoad 919B12E7-B0BD-4DCD-8834-BF5338E745AD,OemdAcpi 919B9699-8DD0-4376-AA0B-0E54CCA47D8F,FPVARIABLE 91A1DDCF-5374-4939-8951-D7293F1A786F,EnhancedSpeedstepProtocolGuid 91A44D23-5DCC-4425-91E6-42DA61640BA7,AsusBootDeviceSkip 91A737E6-7B54-4B5F-A491-ED5EF5C5A732,LastBootErrorLog 91ABC830-16FC-4D9E-A189-5FC8BB411402,AmiSmmDigitalSignatureProtocolGuid 91AD7375-8E8E-49D2-A343-68BC78273955,HddPasswordPei 91B43F81-DFCA-4EBA-93E1-FAD501E8F6D2,AmiScceMMCEnabledPpiGuid 91B4D9C1-141C-4824-8D02-3C298E36EB3F,SataDriver 91B886FD-2636-4FA8-A4A9-2EB04F235E09,CpuPeiBeforeMem 91B9F3D6-7AF3-450A-869D-3B30D0C96E62,DellAbsoluteDxe 91BA201E-1621-46FC-825A-B0363ECAD4BC,DellPbaFpDxe 91BAC015-3A26-40FF-9F3E-C3F4FE9D24F9,SystemSmbiosAddedValueDxe 91C74E50-361D-4CDA-A16B-C92BE4BF16EE,AmiTcmSignalguid 91CE67A8-E0AA-4012-B99F-B6FCF3048EAA,ArmScmiClockProtocol 91D1E327-FE5A-49B8-AB65-0ECE2DDB45EC,EdkiiDynamicTableFactoryProtocol 91D211BF-37C2-495A-8DF7-9546BD2555C0,PpamPlatformSmm 91D34812-236F-4B8B-B527-27F96A0CC3DF,MTKWiFiDxe 91E7996D-7681-477C-BDFE-AD11447E66CE,RealtekLomSmm 91EFC190-DE79-441F-B57F-BB0F7D8A8B4D,FjM2WlanEnableDisablePei 91F6E9EB-9902-44B3-A487-C8E148D0F4EE,EmcaErrorLog 91F72280-36CC-4BF3-AC40-BC029E4B3177,inf 91FB89E6-F282-49BC-AC80-275E50B7B298,XnotePlatformPolicyFsp 9204A71D-2050-4AB7-AD42-749CF9ADB4EB,Lpc47N20x 9205CDE5-5AE5-4A4B-BFBF-F6211967EEF9,LibLocale 9210E52A-729E-4817-85C8-F45500CE24C6,PchLpcSmm 921165A1-8D72-4451-9FF6-EAB508C319AB,OemSmbios 9219007F-D094-4761-9EB5-C14CF9D716C0,FlashInfoPei 921B35BF-0255-4722-BF5A-5B8B69093593,IchInitPei 921C9FE6-81F3-423E-B1C2-E92815054B60,CrbModernStandbySmm 921CD783-3E22-4579-A71F-00D74197FCC8,HeciSmm 921CD783-3E22-4579-A71F-00D74197FCC9,SpsSmm 9221315B-30BB-46B5-813E-1B1BF4712BD3,Defaults 9221BC02-8F2E-4CCA-BA89-EA6F91A4175E,CsmLoader 92299EAF-6692-485D-AE2C-CD077897408B,LenovoMailboxSmmProtocol 922DBE2C-528C-4484-FFFF-FFFFCFDAD219,XnoteSystemPolicySmm 92504A36-247E-4E21-A80C-72FE49FA638D,BrightnessHardwareVbiosAtiSmm 9257B1B6-82DF-4B69-A83B-C16D671B9A9F,ScreenCap 92604CDD-239F-4663-97DE-AFEAD4D95AB0,FjIbvTraceAbstractionSmmProtocol 92685943-D810-47FF-A112-CC8490776A1F,CORE_PEI 926C9CD0-4BB8-479B-9AC4-8A2A23F85307,BaseIoLibIntrinsic 927AE345-BB7B-434F-8D29-71BE0D12AB2C,AmdFabricZpDxe 927D36AB-C278-4EC5-B2F3-8BAA4B8E1F34,FjGabiSystemDataEventLogAbstraction 9282ED2E-F8CE-CA47-AF50-3542332F7D53,AppleDnsResolver 92854555-35E8-4AB2-B0E2-CF56C9F4DE18,AXUsbUndiDxe 928939B2-4235-462F-9580-F6A2B2C21A4F,QemuAcpiTableNotifyProtocol 928EF6D4-72BC-4686-B57B-1EEB6ABD4F93,AcpiReset 929189C9-0670-4C0B-AF7D-135D1550C8C0,RecvDgram 929E8A68-0FB6-4F20-AC5E-D294C50B1CBB,TcpConnect_DXE 92ABFB76-D724-4585-A513-EB5FF3EB1C5D,AmdCpmSharedBPei 92AC65A1-8D72-4451-9FF6-EAB508C319AB,OemDxe 92B144D7-A2DF-481F-9BD7-8A7968638EB5,PcdRecoveryPreserveData 92B7896C-3362-46CE-99B3-4F5E3C34EB42,UniversalPayloadSmbios3Table 92BA9255-2819-4479-867A-1C58F072C5B2,TCG_MADriver 92C6033D-A685-BB41-AA2F-6F6E2CD374A2,AppleSmbios 92C78E4E-C994-4F9E-82AB-AF1DBA6858C9,DellSmmComputrace 92C7D0BB-679E-479D-878D-D4B82968578B,WdtAppProtocol 92D11080-496F-4D95-BE7E-037488382B0A,EfiStatusCodeDataTypeStringGuid 92D83572-3D44-40E3-8718-36446B3EBA2E,IdentifyAcpiTable 92E33939-A133-4C30-6E13-1165DA59A8A4,DeviceBlacklistDefaultsSmm 92E33E65-20F0-455D-9D71-02C09D5060AE,PciPort 92F7436E-7395-4DA1-A7BE-F352F0BCD79C,LibContainer 93022F8C-1F09-47EF-BBB2-5814FF609DF5,FileSystem 93039971-8545-4B04-B45E-32EB8326040E,EfiHiiPlatformSetupFormsetGuid 930C273B-A875-4713-9373-F12E8483E125,IntelGigabitLan_I210 9310979D-A58F-413E-913F-5E9294D8ED2A,SetupCheckSumListInit 93145CD2-7B23-4516-BB23-E338CB2D2748,HddIdentifyDxe 9317EC24-7CB0-4D0E-8B32-2ED9209CD8AF,EfiPaddingRsassaPkcs1V1P5Guid 931E1E51-83DD-427F-B5E0-5F25E2C504A8,AdapterWarnings 931F5366-FBB9-4C2C-9362-B532CBEB4F66,ServiceResetDxe 931FC048-C71D-4455-8930-470630E30EE5,SmmPerformanceExProtocolGuid 932C56C9-EB98-43C6-8514-2EB8A31B5277,HpIOXAccess 932F47E6-2362-4002-803E-3CD54B138F85,EfiScsiIoProtocolGuid 93390241-7D4D-4986-8A06-D46C982F5ECD,CrystalRidgePeim 934CE8DA-5E2A-4184-8A15-8E0847988431,AmiOptionRomPolicyProtocolGuid 935405E1-2F8C-4A7C-A89A-336060C4B0D2,DellCoreService 93570BE6-3AD5-45C8-8FA6-9A8633E22D2B,DxeCallback 935D2F78-3A1F-4DE6-B28D-123A40DD2DEC,SmmGenericElog 93677DE0-9A9B-47DF-8674-60E76858AEAB,AudioSpeakerIdm 936A2417-D1FE-4BF3-974A-EC00CE20A064,PeiPostStart 936DADBA-EB50-458B-A896-C7A28C010398,ClearPasswordByRtcRemoval 93755C1C-BE15-4D5A-BF95-5F9753853CB6,FileSelectUIDxe 937710D0-EF10-42BE-92E1-8494722B17B5,DellDirtyShutdownDxe 937FE521-95AE-4D1A-8929-48BCD90AD31A,EfiIp6ConfigProtocolGuid 938302C0-7ACC-4193-8D81-D9717A4DBC24,FPPBA 93A599F2-6D82-4FCC-9970-49BB013D695A,OpteeRngDxe 93B80003-9FB3-11D4-9A3A-0090273FC14D,IsaSerialDxe 93B80004-9FB3-11D4-9A3A-0090273FC14D,PciBusDxe 93BA1826-DFFB-45DD-82A7-E7DCAA3BBDF3,SmmVariableWriteGuid 93BB96AF-B9F2-4EB8-9462-E0BA74564236,UefiOvmfPkgTokenSpaceGuid 93BBA9CE-F020-4740-8B4E-9ECCE3909CCD,AmdMemFp8StxPei 93C81A74-B648-4F7F-925E-E4A0CDCC776D,VlvInitDxe 93C95FC4-B741-4587-9304-1C5A2BE6F742,ApplePlatformSecurityPolicy 93CFC972-6B9F-4031-A542-C7299F126924,FjNuvotonNct6796Pei 93D4BED3-C6EB-41A1-9FDC-724FD3C5C13E,DellFmpDock 93E18521-9E52-4EEB-A230-7C24B2EC03E8,LenovoMfgDoneDxe 93E1BD6D-6CC6-4EFA-A047-3C1ED9E95F89,LenovoTpmConfigDxe 93E34C7E-B50E-11DF-9223-2443DFD72085,ArmVeNorFlashDxe 93F1025B-B6D4-4F2F-A4A9-A4ABA0CF604F,aDefaultDxe 9400D59B-0E9C-4F6C-B59A-FC20009DB9EC,AmiPciIrqProgramGuid 9401BD4F-1A00-4990-AB56-DAF0E4E348DE,AmiHddSmartInitProtocolGuid 94118D41-65A5-497C-90A1-9D78591C797A,AmdNbioPei 94223E4B-D03E-40CD-82D5-0443158B22F9,OemSetupScreenSyncVariable 942681AC-4F3D-46AC-9AEA-D4F25F21248A,FjMeFwUpdateOdm 942F8076-3335-4EF9-93CC-74A470263DDA,SetAutoUmaModeSmm 9437D7F5-6D31-4494-9A4B-F6EEB21B6CC3,SioScriptPEI 943D6B8B-D4D0-4005-81A0-AF26E5E07F03,MeFwLayout 94440339-CC93-4506-B4C6-EE8D0F4CA191,EdkiiNonDiscoverableAmbaDeviceGuid 944C14CC-3B44-4973-A8D5-EBE0B923F7D0,GPIOPei 94567C6F-F7A9-4229-1330-FE11CCAB3A11,AmiInternalUcodeHob 945A0C97-4882-410A-9F30-E31C99398F7B,DxeIchSpiDxe 94621F9E-B5CA-4CFD-82BE-0C542EB0D9BE,TftpServer 94710277-9396-45BA-8A47-534A5B46F391,ClearPassword 94734718-0BBC-47FB-96A5-EE7A5AE6A2AD,Dhcp4Dxe 947558B9-64EB-4764-9F74-5EDBEA0C7481,DxePlatform 94796E10-7CF6-4A20-A3A0-4CF1A8341A16,menu_dots 947B9E77-9231-449C-BED5-FD4051BD4E39,AmdSocAm4CznDxe 94813714-E10A-4798-9909-8C904F66B4D9,NvmExpressPei 9487D2AF-B394-4119-A981-CE133B11DB7A,BoardModernStandbyDxe 9487D2AF-B394-4119-A981-CE133B11DB7B,BoardModernStandbySmm 948FA1ED-F8D0-4ECA-81B4-194D8364CCF6,AmdSocSp6ShpPei 94925FB1-EEF4-41ED-BD7A-CDB04AAA81C7,DellSbAcpiConfig 949822BC-26D3-4BC6-954B-F2C581342DE1,SystemXhciDxe 9498F6C5-1B77-4AE7-A045-DBC29EB5541D,StatusCodeLoggerDxe 94AB2F58-1438-4EF1-9152-18941A3A0E68,EfiSecurity2ArchProtocolGuid 94B9E8AE-8877-479A-9842-F5974B82CED3,EfiBoardFeaturesGuid 94C0203B-54C9-416E-A6E0-47E8D4786901,EfiPeiPlatformTypeLightningRidgeExecB3Ppi 94C210EA-3113-4563-ADEB-76FE759C2F46,Tcg2MmDependencyDxe 94C69847-A0CF-4635-AA23-D2667BD7F791,SdioBusInitProtocol 94D02FCF-045C-45D3-B023-1A8B5CA5C70A,BIOSVer 94D411B7-7669-45C3-BA3B-F3A58A715681,EfiHiiFrontPageClass 94E24C26-80FA-427D-80FB-E374E9E9BF85,Dhcp6Dxe 94ED2946-24EA-11DF-AF40-4300B0D2BA57,LegacyMemoryAllocatorDxe 94EDD12A-419B-447F-9434-9B3B70783903,PlatformDxe 94EDD133-419B-447F-9434-9B3B70883903,ModernStandbyResouceCheck 94FF8FFA-65BF-4918-95CE-8141E487CA6B,PolicySampleDriver 950216A2-A621-479C-A13D-2990617BDFE7,ReadOnlyVariable2OnReadOnlyVariableThunk 950C3A26-E0C2-491C-B6B2-0374F5C73B96,SmmChildDispatcher2 950C810A-4EED-419E-8EE8-71E8354D86C8,OcInitPostMem 950E191B-8524-4F51-80A1-5C4F1B03F35C,PeiSha256HashPpiGuid 950FC066-ECC9-4BCE-82B1-BA7D68F44283,AplSmbiosGetFlashData 9511F0F0-833C-4DCD-A9E5-3CBE2393EDD5,POESS4CallbackBin 9516D89E-0A6D-4AF6-8C26-5526F11EE82E,BrightnessControlSmm 951B65E5-8872-41ED-AD1D-D5681F4AF033,EfiSpiHostProtocolGuid 951CCE35-A7D4-4905-89FD-FC9BC3B56B83,ClientCore 9524B339-5702-4D07-87E3-47ABA10E0C1E,SmbiosMemory 9527D62D-A1C0-44C5-A90F-A11687701127,PlatformInitPostMem 952821AA-EACD-465B-B478-5429DFC9A747,OA2 952CB795-FF36-48CF-A249-4DF486D6AB8D,EfiTlsServiceBindingProtocolGuid 952EEE95-A6AF-43DA-A559-F349A46D710A,SimpleBootFlag 95367732-2D61-4A2E-A5B0-B8A143DC9303,ClientronDxeDriver 95409D5D-0A41-4258-8A99-810A22126BBE,OemSmbios 9546E07C-2CBB-4C88-986C-CD341086F044,EfiDebugSupportPeriodicCallbackProtocolGuid 954B4980-FF90-4B02-977F-91292251A3E3,DellAutoBifurcateBoardCfgDxe 954E2958-EBB2-4687-B98F-844DF4FAC63A,CompalSsidSvidDxeProgram 9550A68A-709F-4BBB-9AD0-FDDC6A803F27,ResizableBarFeatureDxe 955C708E-B46A-488B-9D5B-D7E61D0F9609,SmbiosDataUpdateDxeEVB 9566132D-C678-484B-9B56-D4CF3F4F690F,MetroMsgDxe 956A2ED0-A6CF-409A-B8F5-35F14C3E3C02,EfiIderControllerDriverProtocol 9581983A-3663-46F0-83EC-8A0506EB63E7,BiosInfoChecker 9588502A-5370-11E3-8631-D7C5951364C8,AndroidFastbootApp 958AC2CA-9904-43AA-B9DE-35E5D4C41217,EfiOdmemGnvsAreaProtocol 95924E18-771C-42A9-B885-BEDDB60D2D38,LenovoSmmKeyboardConfigProtocol 95A1046F-5EA7-4C6D-86A7-AA91B7421E68,CspFlashPeiLibNull 95A7DF51-966F-499C-BCAB-9C2422C0D3D2,FchI3cPei 95A9A93E-A86E-4926-AAEF-9918E772D987,EfiEraseBlockProtocolGuid 95AF7E4D-C45D-47FF-AEB2-D9BC13466B3F,AppleAhciController 95BA4462-7EF0-49A3-9702-6896C39E414C,CbsSetupDxePHX 95BF86AD-A1E0-4143-B487-004B1C2E05FA,DxeCmosInit 95C051C5-F123-432E-9383-B9CF113F082E,LenovoTcgServicesSmm 95C3AB19-59C2-4418-A35F-CAB8724F8028,USRATraceLibNull 95C894B4-DAEC-46E1-8600-3C4C7FC985D6,BiosGuardRecovery 95C8D770-E1A4-4422-B263-E32F14FD8186,Ax88772b 95CC7C54-FB3A-46A7-BCB1-3D68AA2BE526,GnbDxe 95CCEFDF-EA27-455D-87D5-BC76CA05B871,AMTAutoProvision 95DE1CFA-71C6-4FB4-A538-6EEAF1DD3970,HWTopSwapFromECSmi 95DE95F8-A215-48C3-814A-40F07B925D24,AmdMemRestoreDxe 95DFCAE5-BB28-4D6B-B1E2-3AF3A6BF434F,PTID 95E3669D-34BE-4775-A651-7EA41B69D89E,Dhcp6Dxe 95E55549-FF26-4948-868F-487D3B3D4DAE,BoardXHCIAcpiTableDxe 95E8152B-1B98-4F11-8A77-DB26583EBC42,AmiPeiSbInitPolicyGuid 95E89B6F-73DF-47E1-8F9B-DE52BDD37F53,OemPcdUpdate 95EB69CA-0240-49F1-B03C-D5F9C19C00B8,MeUpdateFaultToleranceDxe 95EBEE68-F645-4866-9BA9-51D3EEB3B650,FmpDxe 95ECB758-627E-4A2E-B7B8-DC863EFE3425,AmiDeviceGuardApi 95EF106E-469F-41D8-AFFF-CA5292A4D97C,AEPFreezeLockDxe 960241A5-5CE6-4EBF-B9C4-E37D294BEBA9,FspWrapperPeim 960C2719-4FDE-7E4A-44C6-26A6B2EFE9B2,SmmNvmExpressCsm 960CEA3A-20E6-4D33-AAAD-C9BD3CA5961D,TmeInitDxe 96107C8E-9490-4767-9D0D-5590F1F6E1FC,PhysicalPresenceDxe 961578FE-B6B7-44C3-AF35-6BC705CD2B1F,Fat 961578FE-B6B7-44C3-AF35-6BC705CD3B3F,MacMiscDxe 9618C0DC-50A4-496C-994F-7241F282ED01,PlatformInitPreMem 961C19BE-D1AC-4BA7-87AF-4AE0F09DF2A6,TrEEPei 96213700-AB86-4397-9D57-ABC7FE75478C,MpmMoselleDxe 9622E42C-8E38-4A08-9E8F-54F784652F6B,AcpiTableDxe 964E5B21-6000-23D2-9E39-01A0C969723B,SioIoProtocol 964E5B21-6459-11D2-8E39-00A0C969723B,EfiBlockIoProtocolGuid 964E5B22-6459-11D2-8E39-00A0C969723B,EfiSimpleFileSystemProtocolGuid 966DFABF-A140-4BBA-83CA-12021090BB44,DxeIchSmbusLightDxe 96735D5D-4595-4183-B1D7-934CC402AA95,ramdisk 96751A3D-72F4-41A6-A794-ED5D0E67AE6B,EfiCcMeasurementProtocol 967CFBD0-DF81-11EA-8B6E-0800200C9A66,FlashPei 967DF566-4DB7-3D52-39EC-1B9F450D5ACD,Sff8472Dxe 968BC767-031B-4798-FFFF-FFFF1EE81120,XnotePlatformInfoPei 968C1D9F-80C4-43B7-8CAE-668AA56C4E71,SmbiosPeim 9698CA50-54BB-4B43-B1CC-EC1338B7D767,Mec5105InitPei 96A1C8FE-4023-456D-9066-0D8DBB54B88E,FjGabiSystemData 96B5C032-DF4C-4B6E-8232-438DCF448D0E,NullMemoryTestDxe 96BDEA61-C364-4513-B6B3-037E9AD54CE4,SetSsidSvidDxe 96C35B25-319B-4ABD-9F6B-02ED49BCBD1E,GuiPwdPrompt 96C836D9-451E-47F4-B8E3-EA4CA2073857,FjMiscControlDxe 96CC2936-0E9B-4016-B6A9-BBCD3500A4E9,OemGigaLanDriverDxe 96D0626B-71D5-4001-AC71-E05B103BD45D,F10App 96D4FDCD-1502-424D-9D4C-9B12D2DCAE5C,MicrocodeFmpImageTypeIdGuid 96DED71A-B9E7-4EAD-962C-01693CED2A64,I2CPeiInitGuid 96E198EC-CDBC-4C21-9743-EB4577648E59,IccDxe 96E9CA61-6C2E-4FF3-B265-F21904C44181,CbsSetupSmmSTP 96EB4AD6-A32A-11D4-BCFD-0080C73C8881,EfiWinNtIoProtocolGuid 96F1AC24-2B21-45FA-A0B5-67010C95E9D8,AhciMmioSmm 96F46153-97A7-4793-ACC1-FA19BF78EA97,EdkiiPeCoffImageEmulatorProtocol 96F5296D-05F7-4F3C-8467-E456890E0CB5,EdkiiEndOfS3Resume 96FD1838-4496-4AE7-BE7C-8515296BFBED,HpDiagnosticsPortingSetupConfigSmm 9708ADB2-28B1-46F7-9A6C-E74497FA6679,EfiSdioProtocol 970B1E38-9701-47AA-88A5-566A9F232264,AcerGnvsSmm 970F9BDA-88FC-494C-9EA1-26419663CE11,SmmCf9Trap 97134844-245E-48AB-BE0C-07114F63C9E5,CrbPxePei 97159409-CE5F-4C1C-BDAE-7BD6981C2C11,SmcSetPowerStatus 97159409-CE5F-4C1C-BDAE-7BD6981C2C4F,SmcOpromCtl 971D0D87-78D1-4C65-A836-A420DCAC2028,DellAmdArchDepexDxe 9727502C-034E-472B-8E1B-67BB28C6CFDB,DebugAgentDxe 97276B3B-9FD1-4AC0-B8C1-D346DB4146F5,DefaultsManagerWmi 972F9755-D73E-4362-BF62-2AA56A8DA511,DellCapsuleUpdateWrapper 9737D7CA-D869-45E5-A5EF-75D9438688DE,PlatformGOPPolicy 973A0673-3AAA-479C-9746-DBD7DEAAA0B4,DellHotKeysPolicy 973BE267-0960-40C7-9856-FA73C92A46BA,DellServiceResetDxe 973D4FCA-7331-44AF-BDCC-FA0B13C43862,SmbiosUpdateDxe 97422AA1-855E-44B2-AEFD-905E0C8F4169,FjDtSmbiosDxe 974231D5-ED4B-44D1-8870-CE515CC14D68,FlashUpdate 9751D7BC-AB9E-4058-BB92-0A0582E02615,DellUsbChargerPei 9759BD61-F11E-4FEE-9004-1E8C88E72223,gear10 97696D59-7430-4CD9-BC28-19C769FB04FD,DellHotSosPei 976C0B53-45E2-4D17-8328-8E8F5CA3002A,OobEthDxe 9776BECA-53D3-4735-C41F-4A74131E5822,A01TPMHookEntryPoint 977C97C1-47E1-4B6B-9669-436699CBE45B,SiPkgTokenSpaceGuid 9785929B-3DF4-47D8-BC0F-1A1F35B0F170,HhmPei 978D7247-98EA-4A14-BF98-32A35F34566B,AcpiPowerButton 978FD233-09A8-4FA0-98E2-D4B62C203251,WarmResetFlagOS 978FE043-D7AF-422E-8A92-2B48E463BDE6,EfiKmsFormatGeneric512Guid 979333C2-DF0B-48EC-88A7-88A7E6E5479B,FjSmbiosEventLogDxe 97A03375-250D-4C59-93A8-F76796725E18,AmdApcbRvSmm 97A0429F-3945-485B-8336-1C5274713F03,AmiPspPei 97A20DF5-6F57-4C76-9095-0F6439F8A81C,fTPMTisDxe 97AF1D95-203C-42DE-8D6B-D13EB7E5A55A,PEFirmwareUpdateDxe 97B1CDCE-AFBB-42F5-9328-1CFEFE912E66,IncreasePcieIdleFanSpeedSmm 97B4FA0C-4D7E-C2D0-678E-FB92E96D2CC2,NfitBindingProtocol 97B53FD2-A84C-4469-803F-A16D13AF1479,HeciSmmRuntimeDxe 97B5E066-4144-422D-AD2B-C31A6F6A1D2E,SmmOemDriver 97B97368-1831-434C-A9D8-A20440A91C48,Vmxnet2Dxe 97BAE479-C473-4424-9040-69F5BF9F74F8,OcrEntryCall 97BB442B-F9FE-45E3-8A28-439EEDCD1813,DualBiosPei 97BCA79E-2422-4EAD-A101-BACE644A5AC8,OemBadgingSupportDxe 97C81E5D-8FA0-486A-AAEA-0EFDF090FE4F,SerialIo 97CA1A5B-B760-4D1F-A54B-D19092032C90,DebuggerTerminalVar 97CC0EB1-CD3B-447A-9319-E3279ED02D51,ShowInSetup 97CC7188-79C9-449F-B969-065B64BF9C69,BiosExtensionLoader 97CDCF04-4C8E-42FE-8015-11CC8A6E9D81,Tpm2DeviceLibRouterPei 97E35ADE-233D-4F18-828A-8A0524EBEDDE,menu_none_selected 97E409E6-4CC1-11D9-81F6-000000000000,MiniSetupResourceSection 97E8965F-C761-4F48-B6E4-9FFA9CB2A2D6,AmiDeploymentModeNvGuid 97F81DD7-1D4D-47DA-9021-D2084AF325AB,DellTcg2PlatformDxe 97F91E78-EA12-4EA6-B7B3-7B0678C28673,AmiPeiPciTableInitPpiGuid 980BB149-F036-4449-BCF0-58C22207CBB1,FjNuvotonNct6796Dxe 9819ED2A-D201-3519-87DB-61C616E11507,FmpDxe 981A25E0-0D83-436D-9183-C1AA53B81438,ODMDiagnosticTestSmm 981A25E0-0D83-436D-9184-C1AA53BB143A,SmmOemServicesDriver 981A26E0-0D83-436D-9183-C1AA53B81438,SMBiosFunction 981AD9CD-8685-4AAB-AFDA-0512F74B65EA,SB900SmbusLight 981CEAEE-931C-4A17-B9C8-66C7BCFD77E1,SecurityFormSet 9826A826-004E-4197-B179-9F489AF1E3C9,SystemBoardInfo 982C298B-F4FA-41CB-B838-77AA688FB839,EfiUgaDrawProtocolGuid 982D8C6F-F6F6-4135-A309-A4593EA56417,AmiInternalFactoryTdcTdpHob 982DDBE9-2B79-485F-9AC3-FA67B508C913,Vmxnet3Dxe 982ECA04-0492-4AF0-9C6E-354A3BEAC9FF,HpCoreBootOrder 9842073D-95D9-9F49-BD3F-2E29525125DF,EmuBusDriver 984820B1-6D76-46C2-8146-25F245663D17,EmuPciPei 9848733F-B8A1-4B80-B548-D6C0A569C088,AmdPspDxeV2StxH 9851740C-22E0-440D-9090-EF2D71C251C9,AmiCmosAccessDxeProtocolGuid 98538A96-6116-4BE1-A609-BBCCCC2E0D15,VariableProviderSmm 98584C0B-49D6-4BAF-B542-ECEE2582409C,AsusBackupDxe 9859BB19-407C-4F8B-BCE1-F8DA6565F4A5,AndroidBootImgProtocol 985EEE91-BCAC-4238-8778-57EFDC93F24E,MainFormSet 9870A4C5-C65E-4D84-AE30-855348AF07C7,FjErrors2Screen 987555D6-595D-4CFA-B895-59B89368BD4D,IntelVTdDxe 9876CCAD-47B4-4BDB-B65E-16F193C4F3DB,EfiProcessorGenericErrorSectionGuid 9879341A-197E-4CF6-9BDA-48392F85045F,LEMProductTYpe 987EA6EA-FBFD-4273-B819-A7210ADF6760,StatusCodeReport 987F7795-E948-49AC-8366-FCC51A95D6E1,AsusABMSetupItem 9889665E-A0B4-4341-9711-2AB98252D282,FjUsbTypecPwrLimitCtrlDxe 988E6D64-D7F9-4EAB-84C5-29BF677A6DAC,PoweronFromKeyboardPortSmm 98948C4A-70F2-4035-8E9F-5927493CFC07,FaultTolerantWriteSmmDxe 989B6C1C-6FE1-D64E-A292-1313C410F0F2,Ip4Config 989D5548-AC40-45F3-ADF5-D05F94A891AE,EfiBmcLanProtocol 98A04529-1391-4FEA-AEED-2DCE76A63E14,DustFilter 98A4CA0B-7FE1-48B0-B68D-23EB0E259C13,ScsiPassThruAtapi 98AC0EEC-0F3C-4156-80A3-C9BB0C10ABC2,SmmPTDispatch2OnSmmPTDispatchThunk 98B29A61-827F-4A28-B1AE-3B00A978537E,OemPeiSetSetupItemPcd 98B5B58C-E2E8-4A06-AACB-E4CE316C2B68,DustFilterReminderDxe 98B8D59B-E8BA-48EE-98DD-C295392F1EDB,EfiConfigFileNameGuid 98BA1A5C-DAF7-451F-829E-698D08ABC065,FchI3cConsumerSPD5Dxe 98BBCDA4-18B4-46D3-BD1F-6A3A52D44CF8,SmmAccess2OnSmmAccessThunk 98BC3E46-0455-4B53-B27D-7C96EFB440B8,DellSpdSmbusAccessDxe 98C281E5-F906-43DD-A92B-B003BF2765DA,PeiNtThunkPpiGuid 98C5594F-9759-11E2-9F93-047D7B99E097,SecureBootService 98C80A4F-E16B-4D11-939A-ABE561260330,EdkiiCapsuleOnDiskName 98C8588C-640A-4BB4-AEA0-3F81CDE17524,FspDxeIpl 98CC7CBA-90DC-4A70-8EF0-2A66222886A2,EsrtConfigPreserve 98CF19ED-4109-4681-B79D-9196757C7824,EfiSocketMemoryVariable 98D8A754-8482-46E2-828C-BB632F34D9F7,DellHotSosDxeDriver 98DFFDDF-CE49-4049-87FF-ECCBD3C6C0D2,EcIoPeim 98E21F53-590C-43CE-99C8-637B6580A5DA,DellUsbExtSmm 98E419F2-4141-4004-BD7C-450D2B73E18C,H2OCryptoServicesPreMemPei 98EF6039-130B-4784-9125-B723128F1639,FjNuvotonNct5581Dxe 9901C780-3E33-4D18-B54A-CF7234AFDB50,DellPolicySmm 99042912-122A-11D4-BD0D-0080C73C8881,EfiWinNtMemory 99044EE3-71C1-4C63-B66F-254FABE353CA,RaidDriverPei 9905D167-3D73-4A94-835F-03AFA1656AE6,FjFextSmm 9906EC03-DD8E-42E4-9EC0-D33F77397266,OemWorkaroundDxe 99341558-39A1-42B9-A1B2-1CA4F1720F8E,AmiCommunicationPei 993E9ACB-288C-4788-87EA-09F7A15FD765,AmdCcxVhPei 99442FC3-1A01-40F7-95A0-D65427961581,DellOnboardNicDxe 994C5A88-FCE2-43E5-9EA4-2FABCB15301D,SmmStatusCode 9950A4C8-F315-4FCE-ADC8-E1BB61F1CCCB,PeiHeciPei 995188B1-9F96-11D4-87AE-0006292E8A3B,EfiAuthorizationProtocol 9951DD61-4EA0-4D47-F540-40B4E4453507,DellTouchPadHid 99549F44-49BB-4820-B9D2-901329412D67,IdeController 995C6ECA-171B-45FD-A3AA-FD4C9C9DEF59,EfiSpiSmmConfigurationProtocolGuid 995D96C1-6651-46B0-BF3E-83C017B43B1D,DellSmBiosStrucDe 9960E17D-FD1C-419A-9A90-3944542C67AE,PowerButtonSetupDxe 9962883C-C025-4EBB-B699-4EA4D147C8A8,AmiTxtTcgPeim 99649826-952B-4ED5-92A8-4ED69B717FE3,AaeonGpnvSmm 996B4E92-D1EB-4E35-B194-BF9E0C524ACC,AssetIDOnRecoveryModeDxe 996EC11C-5397-4E73-B58F-827E52906DEF,EfiVectorHandoffTableGuid 99796403-CF03-42EC-A817-7183411D79E2,PchSmbusDxe 997FB7DF-DB23-40ED-A807-9612D2F4A3E8,TopSwapRestorePei 99846A70-614D-4062-820E-2473E4E128E3,FchEspiCmdSmm 999ABACA-3D6A-82B5-B562-12CC4F33DE57,DellDptfExtraGnvsArea 999BD818-7DF7-4A9A-A502-9B75033E6A0F,EsrtDxe 999E699C-B013-475E-B17B-F3A8AE5C4875,EdkiiDebugPpi 99A1E3F5-0887-43C7-B00A-F14A646BC142,DellSbSmmHooks 99A45B83-0BFB-4C38-8835-D59571010103,MAPS_DiagLEDDxe 99A96812-4730-4290-8BFE-7B4E514FF93B,EfiGlobalVariableControl 99B0F38D-1F27-4F46-9F44-42D694722882,AmdCpmMemEyeToolSmm 99C062A1-A4DF-4E99-813B-C283E1EFE761,SbSocRenoirDxe 99C078B7-D7D1-4EE2-B585-CC64A309640A,FjEvte 99C20A37-042A-46E2-80F4-E4027FDBC86F,PlatformSmm 99CA20D6-3BF8-4E90-A430-C6FDCC5A8E80,OemRaidDiskInfo 99CE8846-DB18-4D9E-B3BE-8B96E1CD55CE,SioMec152xPei 99D5757C-D906-11E0-8D78-8DE44824019B,PchEfiRaidDriverExecution 99D6037C-D317-4AF0-B0D2-3959530E6B16,CollectPOSTFlag 99DF8490-F92E-4A45-8A3E-A80C85D32826,SataEraseDxe 99E06CA1-3779-48B4-8D0A-8A496230E10F,NetworkOfflineLockerSmi 99E275E7-75A0-4B37-A2E6-C5385E6C00CB,AmiMaskedDevicePath 99E7FEA1-9A6F-4D68-A754-30793B78A738,RasInit 99E87DCF-6162-40C5-9FA1-32111F5197F7,WebServer 99EF5934-7822-49C4-83A4-50C1AFBCBE00,MeCapsule 99F03B99-98D8-49DD-A8D3-3219D0FFE41E,Mtftp6Dxe 99F1AE6D-A4CD-43EF-9A85-B0FD4F6CC091,LegacyBiosPlatform 99F2839C-57C3-411E-ABC3-ADE5267D960D,OzmosisDefaults 99FAB6EA-648B-6EAC-3EEA-5A16EEA64C3E,A01UnlockPassword 99FDC8FD-849B-4EBA-AD13-FB9699C90A4D,CustomizedDisplayLibGuid 9A069A23-836F-41DF-AF02-F14BEC97DE72,FmpDxe 9A07118A-768D-449B-97D0-6ADC8F2B0244,CpuMpPei 9A08BC1A-7561-4A68-8875-C0977C91573C,NetBootUI 9A09E60C-50F2-4602-9248-1F29382DDF3B,AmdCpmAudioFeatureDxe 9A29BBE9-74BB-41D3-BCAE-6B086E0FE0C5,SmuV11DxeVMR 9A306620-F506-46C6-A095-30F75040AE79,SystemAhciPeimPei 9A44198E-A4A2-44E6-8A1F-39BEFDAC896F,EfiCustomizedDecompressProtocol 9A473A4A-4CEB-B95A-415E-5BA0BC639B2E,EfiRegexSyntaxTypeEcma262Guid 9A4E9246-D553-11D5-87E2-00062945C3B9,EfiStatusCodeDataTypeDebugGuid 9A5163E7-5C29-453F-825C-837A46A81E15,SerialDxe 9A54122B-F5E4-40D8-AE61-A71E406ED449,ChaosKeyDxe 9A55DA14-D845-4B3D-92DC-332143CC5C1C,HDAudioDxe 9A595246-6F53-4526-B856-3C0667F4DA67,LEMAllDriversConnectedEventHook 9A5F2711-B97F-4D5E-B111-265652D44587,WolPwrControlSmm 9A61F154-4A83-B8C5-80DE-239BFF40D66B,AmdRasDxe 9A6C1378-802C-4969-8C7B-85DFFBE82DF4,IntelPcieUndiDriver 9A6DC1AC-94C0-43B1-8714-4C70FD58A815,BaseS3BootScriptLibNull 9A6F58B2-7444-4EBA-8FAD-A033EF79ACDF,SecureBIOCamera_Sunplus 9A713C0D-2053-44AC-9D4A-E7933C4205A9,EcIoDxe 9A74B389-9607-4C99-BD57-A2E7D272DAE1,DellBootMenuFlashDxe 9A78788A-BBE8-11E4-809E-67611E5D46B0,EfiEventNotificationTypeSea 9A7A6AB4-9DA6-4AA4-90CB-6D4B79EDA7B9,HashInstanceLibSha1 9A7EF41E-C140-4BD1-B884-1E11240B4CE6,PeiPlatformMemorySizePpi 9A83BECB-9354-482C-A316-E2ADE07D1ABC,AmdMemRestoreDxe 9A871B00-1C16-4F61-8D2C-93B6654B5AD6,FdtClientDxe 9A89909B-71D8-4E48-BD52-6BF2E65C0857,PlatformHiiAMDDxe 9A8D3433-9FE8-42B6-870B-1E31C84EBE3B,BootScriptExecutorImageGuid 9A8F82D5-39B1-48DA-92DC-A22DA8834DF6,MeSsdtAcpiTableStorage 9A9A912B-5F53-4586-8820-704485A29D21,MePlatformReset 9A9DA223-B117-4799-A070-4D2CFCB1C442,F75111PeiPkg 9AADE345-E064-4355-A815-874564DCA760,AccessPoint80211 9AB047AF-C26E-4DBF-B468-27AC6536482E,TraceHubStatusCodeHandlerPei 9AB332EF-81D9-43D1-867A-03DD574E8566,DellBbsmanagerDxe 9AB86388-95F2-4F69-ACDC-E1749E5409F0,VariableCheckerSmm 9AB9A129-B8FA-4045-BB05-48DBCE724F82,HWMINIT 9ABCBDDF-A4B5-4FDC-93F2-52AE580A49CD,BootDeviceInitAttributeDxe 9AC8B567-5FDB-46E5-8B12-ACFC4B24C5EC,OemDataRegionRestore 9ACC38D2-959B-490C-90EA-723D9D902108,AmdMemAm4SspPei 9AD125EF-A62E-4B76-86CE-18252861266E,AsusWifiMtk 9AD981C0-735F-11E3-A4C4-047D7B99E097,SwSmiInterfaceCoreSmm 9AE51047-E0B9-4A50-9E72-84E359D20189,OpromUpdateDxeLightningRidgeEXECB2 9AF1DA25-F06C-43BB-BE88-834550BF765B,DellGSetConfig 9B013FF3-31D2-4693-83E6-60FA0C73F0F7,CompalCommonHookSmm 9B048C93-3FB1-4F6D-8592-133E26F94FFD,DellStealthMode2Policy 9B0FF2C0-E245-11E1-8EFF-D0DF9A35C106,ChipsetSvcDxe 9B1531F9-FB32-49AC-A8CB-C78B11DC746B,RTL8153 9B182CEE-AED5-4D95-B2A9-A2CF6CDFEAA8,OemAcpiPlatform 9B2031FD-5759-4E8D-8DF5-2DDE44797EBF,DxeFlipToBoot 9B243EAD-77D0-4354-B78F-70B39AA48F0D,SystemVspBcpSmm 9B2756FC-BB82-44D8-9F2B-BCFCA688E3C1,NvmeInfoDxe 9B32B55D-D4D1-4329-B787-5A027B0ACE49,FjSwitchOnboardLANControllers 9B3ADA4F-AE56-4C24-8DEA-F03B7558AE50,PcdPeim 9B3F28D5-10A6-46C8-BA72-BD40B847A71A,AmiTcgPlatformPeiAfterMem 9B4236D3-34E5-4E36-A7F9-0AC8B7705160,CnvVfrSetupMenu 9B4BACCB-55C7-40F8-8439-13E3EB729B3F,BATMonintor 9B517978-EBA1-44E7-BA65-7C2CD08BF8E9,EdkiiPlatformLogoProtocol 9B5E3ADA-8B4C-4262-9D08-B1AC2B6585C5,HdaBeepRltkAlc3146 9B680FCE-AD6B-4F3A-B60B-F59899003443,DevicePathDxe 9B69E973-CBDC-4035-9AE8-EC9C7617FA28,LEMPostFlagProtocol 9B6EECF6-FBDC-4DB6-9562-D25F40D57661,MicrocodeLoaderPpi 9B70DA26-0813-4CF0-BB50-969B869C41D9,DellMBistPei 9B72CEDB-ED9F-4462-8208-D8866F826ACA,HpCommonAcpiHardwareIdSsdt 9B75E867-2746-48BE-B706-B1B93A348693,AsusModuleToIntDxeWrapper 9B77CADB-2007-42B3-9B02-7CBC28F40273,AmdCpmPtZeroPowerOddDxe 9B8A0C3A-5186-4B55-89F4-CAFDE613DAB1,BootScriptHidePei 9B8AC1A1-F326-4905-A43D-E1CCC6DE6BC1,KEMrBootCnt 9B942747-154E-4D29-A436-BF7100C8B53B,Ip4Config2NvDataGuid 9B9BFDDE-E245-431D-97A1-EADE9F8F627E,ServerHotplugSmm 9BA1D976-0624-41A3-8650-28165E8D9AE8,BaseDebugLibNull 9BA21891-7E7D-4E94-B8DF-F4D2D320801C,ROMss 9BB08B63-7756-4D1D-B7F6-B9BC2371F33F,SioEasyCleanWmiSmm 9BB65D37-8CA8-4789-BE45-EE18536EE089,UsbOcUpdateDxeNeonCityEPECB 9BB6E29A-2272-426A-AB77-9B7FE5EFEA84,EfiPeiPlatformTypeHedtCrbPpi 9BB995EB-92EB-490B-B864-13B868A7953C,UsbPortControlPei 9BBE29E9-FDA1-41EC-AD52-452213742D2E,EdkiiFormDisplayEngineProtocolGuid 9BCEDB6D-13CA-473E-B605-8A47688729FA,ODMDXE 9BD36F4F-08DC-4EAB-8637-2BC1BD5E0D95,EfiRasClvTester 9BD4232A-E5B0-418C-9ABD-B0B8574F138C,EcStorageAgentPei 9BD56875-85E9-4510-9DC0-1F842608591F,FjGpioGeminilakeDxe 9BE4D575-B6F1-4AC6-91AA-E2A7376D5A26,ASRockHDAudioPei 9BE82016-23FD-4ECE-826A-55A683A25F0C,SioFlexIoSmbiosDxe 9BEA1D1C-D130-42FF-BBFB-1B9DA3933DDD,SecureBioXhci 9BEC7109-6D7A-413A-8E4B-019CED0503E1,AmiBoardInfoSectionGuid 9BF0A5F3-36DD-4CCB-B05A-8D70F6F78ADF,ExpansionSlotConfigPortingDxe 9BF253B5-B562-4EFC-9891-50B322BE766C,AddSmbiosForNFA765 9BF467DC-DF4E-441D-8356-C3863D6645D9,AsusFMPDxe 9BFE0707-8174-4B8A-A5F5-556FB10E8843,RTCWakeup 9BFF300D-D647-480E-9FF3-2006D3D7CCC6,DellMultiDisplayDxe 9C080BCC-38EF-4F9F-BDC1-B2F5D11E9CB7,SyncSagVariable 9C0AAED4-74C5-4043-B417-A3223814CE76,ArmPlatformTokenSpaceGuid 9C0E458D-EAE7-1234-A3BA-3CE1CC335168,AmiHidServiceDriver 9C0E458D-EAE7-4191-A3BA-3CE1CC315168,HidKeyboardDxe 9C1080EE-D02E-487F-9432-F3BF086EC180,GenericMemoryTestDxe 9C109E5E-BF38-4A78-9CAC-43DE7E726F9E,AmiMemoryAbsentOverrideGuid 9C18BEE8-C612-4003-852F-D4F173D5F0C9,DellTcg2ConfigInfoCommon 9C1E8BCF-7072-45F4-ACC3-98700A0FC907,AmdUnbXvDxe 9C25E18B-76BA-43DA-A132-DBB0997CEFEF,WinNtSimpleFileSystemDxe 9C2A7FEC-B7F2-4BCF-90ED-FDDE21EB5C55,FjCrid 9C452F5C-6200-4AA6-8068-F44B4F36D41E,H2OKeyDescDxe 9C4D5E0C-1C12-4BC5-83D4-E671BDD61E40,DellServiceOsInterfaceSmm 9C4FB516-3A1E-D847-A1A1-7058B6986732,EfiEmuSystemConfig 9C53CE0E-0E9F-4F20-B1A1-150E4349D777,Tpm12PPILockOverrideguid 9C5835AB-E86D-48A9-95D0-3735B75F82F6,LnvAMDArmor3 9C5F9A77-DB16-4174-8E30-AA0BE19BC1FE,H19EmmcSecureErase 9C5FA4C6-746B-40A3-91CE-EC045F9D3716,SmbiosRecoveryDmiEdit 9C72F7FB-86B6-406F-B86E-F3809A86C138,AmiSmmDummyProtocolRedir 9C76C900-1E8C-11E0-8766-0002A5D5C51B,L2X0CacheLibNull 9C799F08-212E-49A0-9CF1-C4FDB0130FCC,DellBeepErrorCodePei 9C7C3AA7-5332-4917-82B9-56A5F3E62A07,FspReservedMemoryResourceHobGfxGuid 9C7CCB02-9154-4864-9E4B-DC0487E37660,DhcpDummyDxe 9C82D2DE-1F8D-4496-A5B0-FCE7537F6ABC,FchHuashanMultiFchSmm 9C91D86F-DDA2-477D-B122-1660C585CB9F,DellCpldUpdateDxe 9C939BA6-1FCC-46F6-B4E1-102DBE186567,EfiAcpiDisDispatchProtocolGuid 9C98C00A-2E9B-4896-95C8-AC64358284E5,AmiDxeHashInterfaceguid 9C9E1444-A361-44F9-9888-F87517124B1A,SioSsdtDxe 9CA93627-B65B-4324-A202-C0B461764543,EfiPeiSmbus2PpiGuid 9CB0F5CC-B0F3-4ADD-8583-3C8AF6C00DE0,DxeS3BootScriptLibS3SaveStateProtocol 9CB2E73F-7325-40F4-A484-659BB344C3CD,SgxPolicyStatusGuid 9CB5D4AE-DE86-4622-A1D1-3BCAAB418FE9,IAxTblDxe 9CBA9D12-A029-4366-AB1E-172B81914757,OntarioGenericVBios 9CC029DB-E893-4B8F-9808-11155DC3B7AE,CmlComp 9CC55D7D-FBFF-431C-BC14-334EAEA6052B,SmmCoreDispatcherDxe 9CC767FB-683D-45F9-ADBA-1C7FC78BEED9,SmuV13Dxe 9CCA03FC-4C9E-4A19-9B06-ED7B479BDE55,EfiSmmPeriodicTimerDispatchProtocolGuid 9CCFE1AC-784C-463D-B145-396D7014D559,VideoInitPeim 9CDA2EF0-EBCA-499C-A193-95B468625528,EventLogDxe 9CDD2B26-2411-4637-BAEA-A1A8F197B1DC,AmdMemSh5Pei 9CE4D938-9C87-41D0-9E55-34923FAF8B4F,AmiPeiNbInitPolicyGuid 9CF0F18E-7C7D-49DE-B5AA-BBBAD6B21007,AmiCallback 9CF30325-DC5C-4556-A8B0-74215C5F7FC4,HeciPei 9CFBC2E6-2905-4C2A-81CD-36C58B2CB5DB,LenovoPasskey 9CFCACBF-3071-4533-944E-40EAE56AAE9E,ApobRnPei 9CFD802C-09A1-43D6-8217-AA49C1F90D2C,Mebx 9D09195C-EB6D-457A-907F-C0E0B3A97757,AsusGlobalVariable 9D0AE5C4-7282-4996-9633-C4CE9D9ADBAC,PlatformPei 9D0CEA63-745B-417D-BBA4-E5193061C907,DxeFrb 9D0DA369-540B-46F8-85A0-2B5F2C301E15,EfiTimeVariable 9D1A8B60-6CB0-11DE-8E91-0002A5D5C51B,ThunderboltNhiDxe 9D1E9E1D-B7BE-4AE4-B6A2-0B05544A4122,Mctp 9D225237-FA01-464C-A949-BAABC02D31D0,StatusCodeHandlerPei 9D311AE6-837B-41EE-907C-BA3A8766CE5E,SgxLateInitSPR 9D36F7EF-6078-4419-8C46-2BBDB0E0C7B3,AmiBoardSioInitProtocolGuid 9D37AFF1-A6AE-447F-915D-DF2C4466364B,MTKWIFI 9D4548B9-A48D-4DB4-9A68-32C5139E2018,Tcg2MmSwSmiRegistered 9D4EF6AE-7941-4BC3-B5EA-FF61ECC2FC17,HpetTimer 9D52C986-0B16-420A-8D4D-D2EAEB593DBF,AssetIDDxeProtocol 9D52E46E-F07E-44E8-9A90-F8576C91C211,BaseFspDebugLibSerialPort 9D58058E-C8DD-4A9F-B176-DFCB92354815,LenovoEn25Qh128FlashPartDxe 9D5EB938-9A44-4568-8192-C1563BEBAA01,LenovoIsscDxe 9D5FD24C-53DF-44AC-A336-B4879CDB29D9,AmdSpiRomProtectPei 9D60F495-DBF2-4B06-AFCA-F62C1C89647F,PasswordLockWhite 9D705FEA-E6E5-436A-B9A2-226F6A9D3F9F,CxlInitPei 9D7A05E9-F740-44C3-858B-75586A8F9C8E,dbxVar 9D7AF408-64A3-4AF4-83C9-2D1095F700D1,CpuMpPei 9D81AC84-25F7-45CE-83D0-886EE0334398,MTKSupp 9D8243E8-8381-453D-ACEB-C350EE7757CA,StartupMenuApp 9D83F169-17C4-4E7E-90A7-6381A5C21831,ClientronSecureBootDxe 9D8964FD-9CF1-427E-AF66-80054E949DC0,DellSecureBootDxe 9D933189-EEE7-457C-981E-581C1A639FC3,AbtExtendedMessageProtocol 9D94D324-0D45-407D-9337-734CF92C0EF2,KeyboardConfig 9D994E6A-5612-4D9F-AE8F-45CE771D57EA,RTSCallbackHandleDxe 9D99A394-1878-4D2C-98E9-C16B8EC47933,DramSharedMailBox 9D9A39D8-BD42-4A73-A4D5-8EE94BE11380,EfiDhcp4ServiceBindingProtocolGuid 9D9F2522-242C-439B-A9AC-248DFE244639,FcclSmbios 9DA34AE0-EAF9-4BBF-8EC3-FD60226C44BE,EfiResetNotificationProtocolGuid 9DA54910-78B9-CBE5-725C-87E49C07471B,WtGetEdidDxe 9DAECAB8-AFB8-40D3-80CD-3545D5025DBB,CpuSmm 9DB1BC64-D6CD-4005-923F-94045B3F1F73,SecureBioFw 9DB2466C-4E61-49CE-9AFD-789AE72C8F5D,HpLibArchiveDriver 9DB4032F-F8B3-4758-B88E-124708BDB9C0,DellAutoBifurcateDxe 9DB72E22-9262-4A18-8FE0-85E03DFA9673,SmmCpuSync2Protocol 9DBD72F9-BDFC-4A4E-862B-331F91983234,SetupVarStructCheck 9DC0DDAA-56BD-447A-95CC-5180433110F9,menu_top_left 9DC1A3C2-EA96-4E3A-840E-9840A247F0A1,ThunderboltDxe 9DCACA24-81F8-43EC-91CA-25CC68F67583,AmdPlatformRasRmbDxe 9DD92425-6737-45CD-829C-1AC2CD20C873,LenovoAt24Rf08EepromPei 9DDF1845-E5CA-452B-B105-17C87FE293E0,SceBootOrderSaveRestore 9DE698D3-491E-4F9A-842D-0D9E9785AE18,PerfTunePei 9DF83401-C0A9-4FBD-BE58-986493837BE8,FjFlashMapSmm 9E039967-FB3B-4BE4-83AA-F72F309E481E,EventLogDxe 9E0C30BC-3F06-4BA6-8288-09179B855DBE,FrameworkBdsFrontPageFormsetGuid 9E0D9B8A-1D50-448F-8FC6-12F32218A346,IT889XPei 9E140B52-A636-4E66-A060-7DDE153B5E9B,HpTbtSetup 9E1CC850-6731-4848-8752-6673C7005EEE,FspInitPreMem 9E23D768-D2F3-4366-9FC3-3A7ABA864374,EfiVlanConfigProtocolGuid 9E278343-9BA3-4E8C-8D54-5DF04A99AFF8,AsusTCG2InfoSetupItem 9E2E1579-77D3-4905-AD14-4479BEC03DA2,IrqBoardInfoRvpM 9E37D110-80BA-4F24-B8FA-2A1D2539E513,EmulatedEepromPei 9E37D253-ABF8-4985-8E23-BACA10395613,OemSkuTokenSpace 9E40EBE8-52D4-4081-AB06-0DCA3464A4A6,DeepSmi 9E43E128-C74D-42F4-8C0C-4811674A17B5,EfiMonitorKeyFilterProtocol 9E498932-4ABC-45AF-A34D-0247787BE7C6,EfiDiskInfoAhciInterfaceGuid 9E53D652-D0E1-4906-A0CB-31685C32BFCC,DellNbEcPei 9E5628D5-ECD5-41A2-868B-99EB933A326E,AhciRom 9E58292B-7C68-497D-A0CE-6500FD9F1B95,EdkiiWorkingBlockSignatureGuid 9E5DAEB4-4B91-4466-9EBE-81C7E4401E6D,H2OFormBrowserDxe 9E625A27-4840-47CC-A6B5-1E9311CFC60E,Pkpub 9E6584F1-FB33-4BD0-922D-47E5B7F5DBF1,GMUXDriver 9E66F251-727C-418C-BFD6-C2B4252818EA,EfiHiiImageDecoderProtocolGuid 9E6A5868-6BC0-4F5D-BA8F-4874D31E41C9,DellUefiClass3ConfigDxe 9E6AB24C-F800-42B1-92A2-B352ACB97005,AutomaticPowerOn 9E702787-C760-4CED-BF46-EDC428F182EE,GopOverrideDriver 9E71D609-6D24-47FD-B572-6140F8D9C2A4,PchTcoSmiDispatchProtocol 9E76472E-DB4A-44B7-997C-3A3560B037B2,AcerLidSmm 9E7C00CF-355A-4D4E-BF60-0428CFF95540,BaseSerialPortLib16550 9E85F0D5-5185-482B-8D50-5671307FEA80,AppleDiagnosticVault 9E863906-A40F-4875-977F-5B93FF237FC6,TerminalDxe 9E876632-FBB4-41B7-9800-30E0B4E8273F,AmdSmmControl 9E8AD3F4-383D-4EC3-816E-7A4749371290,FvbSmmDxe 9E8DD95D-868B-41A4-966C-107338C291BB,SmbiosDataUpdateDxeLightningRidgeEXECB2 9E90E60F-FD1E-4B01-BA6E-9FDE5A02E60B,DellConnectionMgr 9E9F374B-8F16-4230-9824-5846EE766A97,EfiSecPlatformInformation2PpiGuid 9EA28D33-0175-4788-BEA8-6950516030A5,SmBusPei 9EA5DF0F-A35C-48C1-BAC9-F63452B47C3E,LenovoSystemCapsuleRt 9EA6AFE6-6E5B-4F9E-A1E6-86F049033834,ReportStatusCodeRouterPei 9EA6D6D7-7CD0-4695-AD99-4D32E93577A5,BrightnessHardwareVbiosNvidiaSmm 9EADE774-C736-493E-B2A1-9CE0415861FA,AmdXgbeWorkaroundPei 9EBA2D25-BBE3-4AC2-A2C6-C87F44A1278C,PasswordUI 9ECD1C5A-90F2-471B-8419-1DB62BD9CC27,FjImonCalibration 9ECD3C5A-90F2-471B-8419-1DB62BD9CC27,SmscUSX2064 9ECD3C5A-90F2-471B-8419-1DB63BD9CC27,FjSmbusProgram 9ECD574F-CB36-4A9A-B2AE-E98B2762572E,FjMeIshDxe 9EDAD122-904B-4150-9AC6-B94653750453,AcChargeBeepSMI 9EDCBD06-3C78-4822-BD6E-A6847F7531C4,FastBootTseHook 9EE045D9-C35E-4967-8469-6C7E74508168,FjGrasscarryPartition 9EE045D9-C35E-4967-8469-6C7E74508169,FjRecPat 9EE41A8C-C112-4E4F-B2F0-65D0F9B133DB,DellPasswordPolicyExtSmmProtocol 9EE4CD62-7FA7-4183-9012-F6C4CF6E2C7D,NVBIOSINFO 9EEDA353-2930-46CB-A023-03E4E358A90C,FchPromontoryPlusSmmInit 9EF82BFE-707F-468F-A944-A61626E47DC9,AcpiGlobalVariable 9EF8C276-B3E6-4AD9-8FE7-C74F71C47248,AAFTblSMI 9EFE0B7E-27E8-46D5-8387-CDDAFD2C3A67,ASRockNetDnsBin 9F00131E-5248-44A6-BF84-93ED18E1780F,SioMec152xDxe 9F0053CA-35CA-4DF3-A45E-8C8FA8D1023E,TouchPadDriver 9F048812-A546-4C85-A5CF-A0785423705D,SystemConfigUpdate 9F1D2270-2E0F-4D07-9477-587989B8A32C,InterWifiDriver 9F1D2270-2E0F-4D07-9477-587989B8A32D,NetworkDevice 9F2171EC-7D0F-460F-915D-C58A0F7E6764,AmdNbioPei 9F3A0016-AE55-4288-829D-D22FD344C347,AmiBoardInfo 9F3A0016-AE55-4288-829D-D55FD3AAC347,AmiBoardInfo2 9F3A00FF-AEFF-42FF-82FF-D22FD344C3FF,IrqBoardInfo 9F455D3B-2B8A-4C06-960B-A71B9714B9CD,StatusCodeDxe 9F49A879-3D71-42B3-A0AD-DDB1F33010A3,EfiSpiAcpiProtocolGuid 9F53EC68-49A7-7F4B-88DE-C41A96FDBAA6,Ip4Dxe 9F58E424-B96B-45A5-ADDC-D2FE394A99D9,AmiPeiEndMemoryDetect 9F5E8C5E-0373-4A08-8DB5-1F913316C5E4,LenovoSecuritySmiDispatchProtocol 9F606D27-E218-4112-834B-8ABCE950B1FB,SmbiosRpTable 9F6D574F-CA37-41DB-8E4B-78106A338813,SwSmi534D0C40 9F732236-7A4E-4F27-9EEB-AB579F8F7A47,AudioPlaybackSmm 9F7DCADE-11EA-448A-A46F-76E003657DD1,VariableSmmRuntimeDxe 9F81528C-3E31-420D-A9E8-074FD1C2C22A,HpKeyPressTrigger 9F83F5ED-F407-4BD3-9B16-DC27A7016BBD,PlatformFirmwareVersionDxe 9F899796-1A84-461E-9523-F1B85CE895B5,RTL8111D 9F8B12CF-E796-408F-9D59-3ACDDC0AFBE3,Datahub2SmbiosThunk 9F8D3B44-A115-4687-87EA-2C29BEB092AD,DellMemorySlotConfigSmm 9F94D327-0B18-4245-8FF2-832E300D2CEF,WifiConfig 9F972E33-9B91-4A94-8540-5A00640C2771,POSTCODE0A_RGBKBCTRL_SMM 9F9A9506-5597-4515-BAB6-8BCDE784BA87,UniversalPayloadAcpiTable 9FA1B225-3346-461B-A069-ED01B673D240,EfiI2cBusProtocolGuid 9FA2F805-3D86-42BC-A9C3-2B26A5DF09F9,LenovoPchConfig 9FAA80EE-21D1-4331-93F5-D6485689C53D,FingerPrintSwSmi 9FAAD0FF-0E0C-4885-A738-BAB4E4FA1E66,FspmWrapperPeim 9FB02E41-2F22-4F41-B926-850B7D7C2A5B,DellAutoBifurcateSiDxe 9FB1A1F3-3B71-4324-B39A-745CBB015FFF,Ip4Dxe 9FB4B4A7-42C0-4BCD-8540-9BCC6711F83E,SystemUsbMassStorageDxe 9FB63BF9-B522-4203-9A53-20EC854A312A,DellDaNonVolitileStorage 9FB6793F-7008-4963-AED6-35AFB265DF60,FjGpioGeminilakeSmm 9FB8AC55-D266-4F86-AC43-BF2BA74F5A7A,AmdCcxZen5Dxe 9FB9A8A1-2F4A-43A6-889C-D0F7B6C47AD5,EfiDhcp6ServiceBindingProtocolGuid 9FBFB853-7098-4929-B262-43537D88A414,SystemErrorCheckPEI 9FC7B519-3522-4A71-BEB6-F99F5B2DBF92,VgaConfigurationReadyToBoot 9FCC1AA3-8BEC-485C-FFFF-FFFF20686CDB,XnoteAcpiNvsDxe 9FCFD3EE-38C3-4AAF-9512-EC416371F64A,DellDxeMain 9FD2360E-6B48-11D5-8E71-00902707B35E,PciHostBridge1 9FD5A342-7177-4837-95A5-34E080A8328C,TxtDxe 9FD7E742-ACB4-4C6B-9D16-91B363858253,HeciControlDxe 9FE02F9C-5BDA-4971-A918-B79451B43E43,FmpDxe 9FE09C87-6FD8-4063-8EBE-6809EF5EABC5,HpCompressDecompress 9FE0FCFF-B023-49A1-A2C8-ACCE1AA010BB,FboSmiFlashLink 9FE10324-D10E-4CF2-99C4-F1B5A0B4732A,PostMessageSmm 9FE1D71B-3F91-4103-AE62-3FEECA4D2BAA,SpiFlash 9FE6A332-1A1F-43E3-BD25-F7891C6FC74A,EfiBmcSelfTestLogProtocol 9FE7DE69-0AEA-470A-B50A-139813649189,KekVar 9FF8B817-D14C-4A43-9314-123DA3960AD6,AmdMemAm4ZpPei 9FF8B917-D14C-4A43-9314-123DA3960AD6,AmdMemAm4Dxe A0015941-01A1-4146-B101-B1BB05D8631C,EfiEvPpi A001B7E9-84BB-4819-B7DA-93FF51730889,AsusOptConfigPei A00490BA-3F1A-4B4C-AB90-4FA99726A1E8,EfiBlockIoCryptoProtocolGuid A017BA59-DCAD-473B-BBB3-294E9AF20D34,OemPeiHook A018CFFB-49A2-4975-83DD-7276D480009E,FjOemIgcFmpDriver A01E498C-96E8-2A4C-95F4-85248F989753,FwBlockService A023D3F6-F297-4307-8552-E6572B30B520,menu_mid_mid A023D4A1-05A1-4797-B84F-03B854FD05F1,EneDXE A030D115-54DD-447B-9064-F206883D7CCC,PeiTpmInitializationDonePpiGuid A0337044-949C-423E-B581-DAE2AD435534,VbtInfoGuid A034147D-690C-4154-8DE6-C044641DE942,FspVariableNvDataHobGuid A035D164-1FE5-4DF8-B5F6-23F42BFBEC09,SeedProtocolDxe A03A9429-C570-4EF9-9E00-C7A673976E5F,SmmControlDxe A041B8D6-3F17-4582-AAC7-5A615672E295,DellSioPolicyConfigDxe A04A27F4-DF00-4D42-B552-39511302113D,DriverSampleFormSetGuid A052A0E0-F7BC-48BA-8DB5-ADF9F2F9307B,DellRomArmorDxe A0534D92-9776-4E4E-9234-C9DC1849DBB5,PlatformFlashAccessLibNull A053F561-F56B-4140-8901-B4CB5D70929E,BootScriptThunkGuid A05B6FFD-87AF-4E42-95C9-6228B63CF3F3,EfiSmmUsbDispatchProtocolGuid A05ECE52-15A8-424E-BFD3-FCF3D566A09C,AmtPolicyInitPei A05F5C06-1782-48AA-962A-86A0892022B6,ASM1061Dxe A062CF1F-8473-4AA3-8793-600BC4FFA9A9,EfiLegacySredirProtocolGuid A062CF1F-8473-4AA3-8793-600BC4FFE9A8,CsmDxe A06F2CE4-10BF-4D1D-8436-45E596E73777,USBTimingEx A06F2CE4-10BF-4D1D-8436-45E596E73B67,DaylightSavBoot A071C476-F78C-41C2-A173-B43D699A2C80,AppleEfiSocShutdown A07B3BDF-B78A-41EE-A276-55C225A07B0B,EfiPeiPlatformTypeOpalCitySthiPpi A07D8A73-D4F9-4AA0-BC25-391CCFC47E98,I2cControllerTemplate A08276EC-A0FE-4E06-8670-385336C7D093,x86Thunk A08CD08E-CA79-445A-AB1B-A5BB039B569E,I2CSpeedPei A0A13495-A2BF-44E1-98F8-CC08D1AE604A,OemPeiSetGpio A0A3FEC9-FE9D-4CE7-8DB4-9C54F3F19E5A,HpSetup A0A8D728-BC2D-483F-B583-28489B77C8F6,FprSynapticsPrometheusDriver A0AAFF71-35DA-41EE-863F-A24F429E59E4,IconSelected A0AD1682-AE5C-4A9C-9195-F271585CE07E,RSTeRaidDriver A0B76FEC-502C-401D-9705-20AEF6EAF832,EcAuditLogSmm A0B852E0-4842-4222-8964-C82EDCFF0D6B,AsusUsbChargeSmm A0B87E92-6392-47FE-9AA0-90203147EC04,DellHddPwSmm A0BAD9F7-AB78-491B-B583-C52B7F84B9E0,SmmControl A0C0B7EF-99FF-417F-8B9F-5AD4701D90D6,Tpm12DeviceLibAtmelI2c A0C3B7DC-4E19-48EC-A8C7-BA58E2E08FF4,AmdCpmOemInitPeim A0C6D314-97B1-4FB5-ADCE-05138A2B5D00,FjHddEraseDxe A0C6D918-8DEE-41BB-9D92-6753A572B652,EfiTpmStateInitHub A0C98B77-CBA5-4BB8-993B-4AF6CE33ECE4,Tcg2Pei A0D75050-8DA7-4E58-9AD4-00FB9E3DB2F0,AsusI2cDetect A0D7E505-5DD4-4459-A4D3-36119563C4F9,DellAudioPei A0E4DE1F-ED01-419A-957D-237903108BA8,EfiNgnCfgCur A0E5A45F-5374-46B3-B51E-D310B2C48AAE,ProjectOwnPeiProtocol A0E8E04C-9B5A-43BE-8B7D-C98760492B68,SectionExtractionDxe A0E8EE6A-0E92-44D4-861B-0EAA4ACA44A2,EfiKmsFormatAescbc128Guid A0EAF572-69D8-4825-B1B0-9EE3B4C64FA7,ASUSGamingBoard A0EEE2E2-E7B7-4964-8959-908259DD096B,FjAlsSmm A0EF80E3-F9AB-4CBA-98FD-704620F4048D,SecFlashUpdDxe A0F4A3BF-022F-4AE5-AB09-825E7AB30894,BoardInitPostMemPeim A1047342-BDBA-4DAE-A67A-40979B65C7F8,EfiSocketPowermanagementVar A111CD80-CB5D-4E2B-A327-04EA26EE0E10,OtaPfrDxeDriver A1147A20-3144-4F8D-8295-B48311C8E4A4,ArmJunoTokenSpaceGuid A11585B7-8FA2-4F1C-AA6F-DD6309469613,MeFwUpdLcl A11A707C-EB9A-450F-8CB6-9284B56A9F80,FjGabiEntrySmiDispatcherSmm A11D8F9F-2A52-40BC-9B82-BCCD7D281EEA,PchGpioUnlockSmm A11F5FED-63A1-414A-B8FE-FB2184C242FD,HpDtPrivateWmiSmm A128BD92-E5D3-4A8C-A902-559989BDCA05,DellPermanentDeviceDisablePei A134273C-0429-4B93-A30C-305D5EC22DB5,KEMhGpioAccDxe A1445693-5659-030E-C256-42A1868A6D9B,MktmeCoreInitPeim A14694E4-78DF-4EF1-A118-7654FF6CFA9D,IpmiSdrReader A14AEEAA-C07B-4846-BF54-C4943783EBCD,FchSmmDiagDispatcher A15E7FDE-9D23-4A61-B3FE-E02B30BD80E6,ADCLOMUEFIdriverDxe A15EE4CD-C21C-44D2-9547-2F49869FB9D3,LenovoTpm2ConfigPei A160BF99-2AA4-4D7D-9993-899CB12DF376,MmCoreDataHob A16473FD-D474-4C89-AEC7-90B83C738609,EdkiiPeiAtaPassThruPpi A166D63D-3815-4FA2-BAB6-555D96BA516F,FjMemoryInfo2 A1671208-7269-4E1B-BADA-CE0F51844C2A,PlatformTcoReset A16BA302-6514-4287-BEE3-6223B7DE2C21,NVRAMID A17EF0D6-52A0-4B70-8FAB-FC60E81C396F,FchDxeAux A17F4A89-5F19-444F-B7BE-48195E0575DB,SmbiosGenDxe A17F8AAB-42F9-4D94-82CD-A099E1DD52DF,BootTimeDxe A18596AC-1FC5-478D-BF14-0B415813D71F,Ohci A1902AB9-5394-45F2-857A-12824213EEFB,AsusMsoaDxe A196BA47-8ED3-4188-A765-FA964DD7ED7A,LenovoSystemErrorLogDxe A19832B9-AC25-11D3-9A2D-0090273FC14D,EfiSimpleNetworkProtocolGuid A19A6C36-7053-4E2C-8BD0-E8286230E473,PciHostBridgeLibNull A19B1FE7-C1BC-49F8-875F-54A5D542443F,CpuIo2Dxe A19FB0EE-05F4-4CD6-8F28-59B782FF95C6,PciExpress A1A38D16-5CD1-4109-BE88-BF0DB27A9838,CbsBaseDxeRPL A1AFF049-FDEB-442A-B320-13AB4CB72BBC,EfiMdeModulePkgTokenSpaceGuid A1B0B230-67DC-431E-A94A-A96AF1EBE637,Tpm2DeviceLibTcg2 A1B8C9FD-3D04-43AA-8399-720A629EBF3F,LemSecureBoot A1B8C9FD-3D04-43AA-8399-720A629EBF4F,LemSecureBootForceKey A1B98C63-7032-4ED7-8CF2-8169D2788BA8,SpecificResetProtocolDxe A1C85085-3053-4C4B-A9F6-724D22A76EF9,AmiLegacyTpmguid A1CD8AB7-B86F-43AD-877F-B3438DFF792E,HPLnx A1D99CBA-81F9-49BF-A15B-D7EBD7F0BB8D,PCAL6408A A1DD808E-1E95-4399-ABC0-653C82E8530C,JunoAcpiTableFile A1DF608E-8027-413F-A2F2-1DF7863F906B,OhciDxe A1E37052-80D9-4E65-A317-3E9A55C43EC9,EfiIdeControllerInitProtocolGuid A1E429CA-A933-402C-B6BD-314ED5142541,FjMrcOutputInterfaceCezanne A1E96071-C1DD-4595-80D8-3D497F7AB527,OemMS A1E96071-C1DD-4595-80D8-3D497F7AB577,LenovoWifiVariable A1EEAB87-C859-479D-89B5-1461F4061A3E,FspInApiModePpi A1F1B3F0-A60C-4462-801F-BEC99DF51821,HpOemSlic A1F436EA-A127-4EF8-957C-8048606FF670,1GNicEFI A1FF7424-7A1A-478E-A9E4-92F357D12832,LoaderMemoryMapInfo A20CD5AB-83AC-4F82-B9E3-987B8BAF9AFE,UsbXhcAcpiTablePatchDxe A20F7425-BC87-47D1-945C-637603323584,PlatformConfigTool A210F973-229D-4F4D-AA37-9895E6C9EABA,DpcDxe A216E8AB-19A4-43FF-86A3-C57938F03B06,FireWireDevice A219423C-92FE-41AE-965C-2EFFC6018670,PdSolutionSmm A222C87E-68EC-4545-A86B-A89031A45E82,OemCleanFlag A226CA17-7907-4E77-8807-5D4878A38FA7,HpDiagnosticsPorting A2271DF1-BCBB-4F1D-98A9-06BC172F071A,EfiExtendedSalFvBlockServicesProtocolGuid A229F23E-E1FF-40D1-9382-36DD61A63EAA,AltModePei A2424BB5-5441-4EFE-A608-2CCD60824C06,NvVariableFailDetectPei A245D6D8-AFD4-4359-8F7E-7D829CA27158,HpMpmProtocol A24FEE8C-AB1D-4B84-8E74-5DB474D8FEA8,UefiDiagnostic A25334B3-467C-4152-AC84-F4C201EEF8C3,AmdFabricStxhDxe A25C2D8C-2F92-4626-8D63-843BA9439630,TxtDxeProtocol A25F2FCD-C168-4E77-AD3E-A488ACB725AB,CompletePowerManagementProtocol A2627D18-010B-45B8-AD38-AB01691FC850,AmdHspConfigPei A2702A3C-62FD-402D-B8C3-1D18F6C6FDE5,AodSetupDxe A2760074-ED4C-4719-8382-C942CBF16D85,DisplayTypeDxe A27D40FC-EA2B-4F3F-BD17-D5032A79546F,LEMELocker A27E7C62-249F-4B7B-BD5C-807202035DEC,DellFlashUpdatePei A287558B-D9DD-461B-A929-EC2AD2FEF591,DellSpiPartSst A2990B11-F05C-4182-9703-BB02275DB8F9,SmcNvdimmSmmProtocol A29A63E3-E4E7-495F-8A6A-07738300CBB3,AmiTcgPlatformDxe A2AA0A8F-43D5-4B21-A26B-5D02476AD457,AmdCcxZen5Pei A2AB9D42-967A-45B3-9507-28CCC7021F51,UnknownBoot A2AEDCB3-8080-4C3F-B414-7A05D25E0699,DellNtfsDxe A2B05C85-8D5B-4FF3-B7D1-8FBE92B4AA32,PchEvaInt15HandlerFile A2B8BC76-C45B-40B0-A23E-D6827C835D1E,TouchPad_Elan A2BCE73D-5B22-4FC7-80F5-F1A9D26ED758,WheaErrorInj2 A2C1808F-0D4F-4CC9-A619-D1E641D39D49,LenovoSecurityConfigVariable A2C74B0C-F38F-42F6-A147-379013ED92ED,OEMIP3SMBIOS A2CC7663-4D7C-448A-AAB5-4C034B6FDAB7,rmHwA5Guid A2CF63C6-D44F-4CD0-8AF6-722A0138C021,ArmPlatformLibSecNull A2DE77BB-797D-4BB5-80C4-19AEB8B5CD29,ASUSFAKESMI A2DF5376-C2ED-49C0-90FF-8B173B0FD066,EsaFull A2E160F3-018D-486C-A7B5-10B0E669EDA3,DellVariable2Dxe A2E5609E-8C2D-42E6-A2FC-12BC74BD437F,EfiPeiPlatformTypeNeonCityEprpPpi A2EE1AF9-CFDB-4F73-829F-3D2CF7E51472,DellBoardPolicyDxe A2EFA9DA-5218-4653-B357-FC51D73E0754,SecureBootServiceDxe A2F03EEA-9304-40BE-87B2-7F457B01232A,AsusSmbios A2F436EA-A127-4EF8-957C-8048606FF670,SnpDxe A2F68EA6-61D6-4B84-A9C3-497D8A5E3804,RtcWakeUp A2FA40D4-68A7-4A4F-9446-7ACD93FD2391,UsbDebugCard A30D9B7C-DED3-48D6-83A6-3FF43444C37A,AppleDxeManufacturingFixture A31280AD-481E-41B6-95E8-127F4C984779,TianoCustomDecompressGuid A31B1AF7-3A9B-424A-8636-9885E9DE06F6,ASUSPei A33319B5-8EE1-45E0-8C9F-809F5B0902CC,RsdpPlusProtocol A334E8C1-F49F-49AA-9F82-9210205FC1FB,FchSandstoneDxe A3358D8F-B7AF-47B7-A324-9036FBD73DDC,FjMfgErrorCheckDxe A340C064-723C-4A9C-A4DD-D5B47A26FBB0,EsrtManagementProtocolGuid A342B464-0D5D-4576-9400-750FF10719E7,XmlCliCommonSmm A34CF082-0F50-4F0D-898A-3D39302BC51E,IntelFsp2WrapperTokenSpaceGuid A3527D16-E6CC-42F5-BADB-BF3DE177742B,UsbCbiDxe A353290B-867D-4CD3-A81B-4B7E5E100E16,EfiPlatformTxtPolicyData A356AB39-35C4-35DA-B37A-F8EA9E8B36A3,EfiStatusCodeDataTypeProgressCode A35AFACA-8C95-4EEC-9453-D8E5B560A8BA,Afu32FlashDriverSmm A3610442-E69F-4DF3-82CA-2360C4031A23,ReportStatusCodeRouterPei A362215D-75B6-4B54-80E5-7434751877F3,RtkUndiDxe A36495C1-C205-414E-B71F-4BE3476D699C,FSVariable A368D636-4C77-4B50-AAE8-F99E2DA40440,PnpRuntimeDxe A37A9E43-9077-4539-9B90-BD719B032B23,SpiControllerDxe A37C58CC-DC2B-450E-85E2-F4C538F2209B,Armani_ProductInfoDxe A38C6898-2B5C-4FF6-9326-2E63212E56C2,PeiSpiPpiGuid A391E822-7044-4CF4-BE5B-345E44B8627C,SgPlatformPolicyPpi A3922B1A-35E4-4132-9CED-91D38D7171D8,FpgaSocketPkgList A3979E64-ACE8-4DDC-BC07-4D66B8FD0977,EfiIpSec2ProtocolGuid A3A209D9-2DE3-403B-9C6C-DB3CDC5ECFCD,LnvSolPei A3AD355A-13D0-4DCF-9C21-3D2C5F1BAD5F,FboGroupForm A3AEC012-9A26-4AA5-986C-004423E43975,SnapshotLite A3B3D093-1B04-45BF-8D23-2334607C7B40,PlatformDeepS5 A3B3E6F8-EFCA-4BC1-88FB-CB87339B2579,EfiKmsFormatGeneric160Guid A3BC19A6-3572-4AF4-BCE4-CD43A8D1F6AF,ASUSITEBS A3C4B758-FA8C-4A75-91E2-807EC3B3DA34,DeepSleepDxe A3CD8EAC-B4E6-4B68-9641-0D3763799890,Int15Backlight A3CF349D-639C-4D08-AC4A-C95341FB4F94,AppleIrRemoteDxe A3D5ABB6-9DA4-43EE-BE3B-BDC47D70F8FA,CPULowSpeed A3D93A29-501B-4F6E-869A-6FD4BCEF90A7,DellSmbFactDefault A3EAAB3C-BA3A-4524-9DC7-7E339996F496,ASUSRT A3EDC05D-B618-4FF6-9552-76D7886343C8,OvmfLoadedX86LinuxKernelProtocol A3F03487-9FC5-4DDC-9A44-4B61B4D276D8,FjCapsuleUpdateDxe A3F436EA-A127-4EF8-957C-8048606FF670,BCDxe A3FF0EF5-0C28-42F5-B544-8C7DE1E80014,PiSmmCpuDxeSmm A40610B7-4988-43CD-9D95-9BE9E0E7A311,IntelGigabitLan_I210 A40DAE55-2F33-42F5-B064-C8D62CCF3B87,AppleSystemInitialization A410F39B-76BB-425C-ADD3-8678A41C89DC,SystemVspEvaRuntimeDxe A4223CF1-6B27-4994-8FCB-A3A279C04E81,EfiGenericElogSmmProtocolInstallled A428AD0A-5034-4E37-8F9D-DB2CE72A59B3,SmbiosOverride A42B4684-26EA-40D0-AA38-94C21C3C4E59,ATIPwrXPEI A42F4ACF-5A88-4DE3-A54D-EE7CA94C1246,AppleSpiIoCnl A43B03DC-C18A-41B1-91C8-3FF9AAA25713,ExitFormSet A43F5A9E-B29E-451B-8526-44C3E43D5067,SioInit A44A669C-ACE0-4696-8179-F5EA87930C4F,HpErrorLoggingDxe A4524A9C-0B5E-492D-AEC9-308631B189B4,AmiSetTcgReadytobootGuid A4578B9E-C666-4161-A168-159FF541ACD3,CnvUefiConfigVariables A457CFAD-64EA-49EE-A532-566AC2B6D6C4,PolyFuseWarningsDxe A45B3A0D-2E55-4C03-AD9C-27D4820B507E,EfiUgaSplashProtocol A45BE8D5-B988-4F70-9F16-8BFBC6884669,PchInitSmm A45E60D1-C719-44AA-B07A-AA777F85906D,PeiAtaControllerPpiGuid A46423E3-4617-49F1-B9FF-D1BFA9115839,EfiSecurityArchProtocolGuid A464BF8C-77AB-4BD8-AEF1-82DAE1A06AF6,FjGabiFlashDescriptorDxeProtocol A469DDBD-16D0-4535-BAE3-77274BD70B4C,FwBlockServiceSmm A46B1A31-AD66-4905-92F6-2B4659DC3063,EfiExtendedSalPciServicesProtocolGuid A46BA67D-B169-4E04-9AAC-1845CBDEE0AA,AcpiMetronomeDxe A46C3330-BE36-4977-9D24-A7CF92EEF0FE,PxeDhcp4Dxe A46D9EE7-C6B4-42C0-8378-6E4BDC50406B,SetupLoadDefault A477AF13-877D-4060-BAA1-25D1BEA08AD3,EfiKmsFormatRsasha2562048Guid A47CCEA8-5BF7-4F6C-A9CE-68BAA3E54E57,EcrotPdrRwDxe A47EE2D8-F60E-42FD-8E58-7BD65EE4C29B,CpuIo2Smm A48261AE-B7C1-463B-BF32-8625B6779A0E,UsbIoExt A484323B-FF47-422A-ADAB-8D1E1BC13860,HpS3ConfigDxe A485D6C7-D76B-4DE0-BE57-96C1D2DFE520,It8587eFlashSmm A487A478-51EF-48AA-8794-7BEE2A0562F1,tftpDynamicCommand A490D6C3-A8DF-4235-B756-3A2ECF32BC24,AmdMemSmbiosV2ZpPei A4928C81-0703-4AD7-A32B-7525BC3FE1F5,LenovoSecureUpdateDxe A4B05B8E-B30D-4426-50B6-6D05DDEA84A9,HpHoneywellLcn A4B9A806-B574-4354-BFC7-05217DC0FAF4,FlashHookSmm A4C55A05-88D4-44CB-8DC7-B3C092802E22,FchSmbusPei A4C751FC-23AE-4C3E-92E9-4964CF63F349,EfiUnicodeCollation2ProtocolGuid A4CB211C-3E43-4775-BF1A-8CECE36E793B,AaeonLanByPassPkg A4D53F5B-C216-4C8A-83D9-390B4A656CD4,AmdSocFp7PhxDxe A4E221CB-C1E7-4292-98B7-4B2A41FC254F,Cf9Reset A4E7949F-F818-49DE-AEC0-08B0DB6E250C,T23SmbiosOverride A4E9A172-9D5B-47AE-BFCF-2C9FCA6F0ADC,AmdSocSp3r3CglPei A4EC8ADB-B7A8-47D1-8E52-EC820D0ACF6F,FvbSmm A4EE0728-E5D7-4AC5-B21E-658ED857E834,ArmMpCoreInfoGuid A4EED3AF-9837-46B3-9275-C71CB47071F9,NetsecDxe A4F2909C-5E2A-438A-91BA-272B0923049A,PlatformSetup A4FD00D3-821A-4519-85BB-2E1987A6F4E1,LenovoMx25L3206EflashPartDxe A5095ECF-A28F-453C-960F-8757E4A480B1,Cf9Reset A510A614-2192-11DF-AF29-2754E86B3594,PciExpressHostBridge A51BC7A4-0ED6-44C2-B5FB-B86FDE077DE1,AmiSetupNVLockDxe A52509C7-5ECD-42D1-85A2-46C37135D12D,GopPolicyDxe A5288050-8828-46C4-8F72-1CD735A56520,Slp20Dxe A53EF7E2-9F46-4B56-ADC8-FE93B25D1758,FjDeviceInfoRealtekLan A53F1264-54B1-4707-84F9-32DCD52FC58C,FjExtSmm A5559F06-6415-4759-8869-DE15F9CD9C9B,IffsGlobalNvsAreaProtocol A55701F5-E3EF-43DE-AC72-249B573FAD2C,EfiIa32X64ErrorTypeCacheCheckGuid A56074DB-65FE-45F7-BD21-2D2BDD8E9652,EfiLegacyDevOrderVariableGuid A5683620-7998-4BB2-A377-1C1E31E1E215,TcgDxe A56897A1-A77F-4600-84DB-22B0A801FA9A,SmmRuntime A56FAD72-A264-4370-85C5-00584654DCE2,InstallVerbTablePei A570F393-B0F5-44A4-8550-61600597B409,BootScriptHideDxe A57C1118-6AFC-46D2-BAE6-929262D3EB1E,EfiDxeSystemBoardProtocol A58C5D1D-C22B-4845-90BC-8C94FCE96457,FastBootOption A59176BC-A151-49C8-B54A-B4AC96F436C3,96BoardsI2cDxe A59A0056-3341-44B5-9C9C-6D76F7673817,SignOn A59E8FCF-BDA0-43BB-90B1-D3732ECAA877,EfiScsiPassThruProtocolGuid A5A6C69C-B50F-4157-801C-4ED786A55370,AmdCcxZen4Dxe A5AAB9E3-C727-48CD-8BBF-427233854948,EfiI2cHostProtocolGuid A5BC1114-6F64-4EDE-B863-3E83ED7C83B1,EfiPlatformMemoryErrorSectionGuid A5C02C56-19A7-43B5-A0D0-04518A1CA69E,AmdErrorPei A5C059A1-94E4-4AA7-87B5-AB155C2BF072,EfiCertX509Guid A5C1EF72-9379-4370-B4C7-0F5126CAC38E,TrEEConfigPei A5C6D68B-E78A-4426-9278-A8F0D9EB4D8F,UsbMassStorageDxe A5CE755B-EA21-4884-88C7-C7D4B1AE2837,ProgressBar A5CFD301-408D-E8C2-44FE-07ACB1D56BAF,Sff8472Pei A5D75589-589E-49FB-8F93-F494280EA1BD,SmbiosType140 A5DEFDFF-944C-4B4D-9A76-8CF3ACAD2F7B,IntelRaidAtaAtapiPassThru A5E369C8-ABF9-4B43-B212-FF1BFD35666D,CbsSetupDxeZP A5F36439-BD52-49FB-B158-7F6688952BEA,OemSpecialLogoSupport A5F8F888-7191-429B-81AE-2688F415BD2B,DellSmmGpioLookupPolicy A5FADA55-1CAF-4486-9CDB-24018E71E952,PxeDriverDl A6077307-B297-4051-9AC0-A0DC8147E601,menu_locked A60A27AF-C1EB-4823-B674-F0369EA40349,RTL8852CEWifiDriver A60B21B1-A200-4785-A86E-5106E76A3604,DellDynamicBacklightControlSmm A60C6B59-E459-425D-9C69-0BCC9CB27D81,EfiGetPcdInfoPpiGuid A60C7DCD-512F-4F02-B180-522E015E06B7,PpmProcessorSupportProtocol_3 A610E170-08AF-11E3-A05F-047D7B99E097,ConfigurationVariable A6185DDA-B5C7-4735-B871-8D6BCCCAC8C1,Pca9536Dxe A6190292-DE59-421E-BA6A-1C7D17DFDFA7,AmdAblPerformanceDxe A622AB73-1E7F-43C8-A465-0D5B267F1A37,MicrowindowsDxe A622E42C-8E38-4A08-9E8F-54F784652F6B,SystemAcpiOA30Dxe A62D933A-9293-4D9F-9A16-CE81994CC4F2,AppleDebugSupport A630B937-3AB3-4263-85B1-A63E98F29949,PcieErrorHandler A6351A87-2965-4718-88C7-0B5B5AC0B5E4,AmiMrcInfoHob A640936B-F84C-4B97-9F95-2BFE78C1F0A1,KEMhHwmDxe A6442A85-7E2A-4A4F-B26B-98E1E64C221F,AmdMpmSensor A6688890-BFF0-4F03-9B1E-76AE86EEC5AB,LenovoSystemAcpiTablesDxe A66ADAD6-972C-465B-84D6-072ABE8D6911,DellNuvotonTpmFwMgmtDxe A671FACE-B99F-48AB-B3B0-F25E5EE4B115,TcgSetupDxe A673005A-69F6-4597-8AF9-7AACA0039296,Int15BootDisplay A67A75D2-CCCE-49C1-1BCD-61C310527E89,AmdNbioBaseSspPei A67E68F0-A73D-40D0-98F5-121DEFB5C12D,HstiIhvProviderDxe A6848B1E-73A6-429C-9B1C-C9528607725D,BoardDPTF A6885402-D022-4B0E-A509-4711B90F2A39,ReportStatusCodeRouterSmm A69B58A9-6C05-4DC1-85BF-AF80DCE6D97D,EfiTraceHubTokenSpace A6A1ACA8-7499-4370-A331-5E8F92EC30D5,OemPeiSetAcLossControl A6A1C030-F956-4A9E-9540-D0E81D2E33F2,LenovoSmBiosHole A6A3A962-C591-4701-9D25-73D0226D89DC,PeiRamBootCacheRdy A6A72875-2962-4C18-9F46-8DA644CCFE00,EfiIScsiInitiatorNameProtocolGuid A6A79162-E325-4C30-BCC3-59373064EFB3,EfiTcoResetProtocolGuid A6AA3184-2EF8-4F68-92BD-726039654B2D,PlatformVariableInitDxe A6AECE92-0012-4E10-88EF-588D8DCCA8E4,DellSioIt8669eSmm A6AEF1F6-F25A-4082-AF39-2229BCF5A6E1,AmtStatusCodePei A6AFE798-A426-4651-AA19-BB0A448D8134,FrameworkHiiAlias A6BCC829-889F-4EB5-A490-1B4C1AAF789C,SetupConfigUpdateDxeEVB A6C0E11E-929E-42B3-90CC-4F778E03FF57,PkpubKey A6C300F4-A5D0-43E9-81BC-C4FB5069E4A2,FjGabiEntryDxe A6C37DD6-0D83-4127-B1E8-A1E600A797BD,HPWMIDxe A6C7C690-ADD8-4178-BC97-F6A4C1206285,c_pg4306 A6CA8BDC-AE14-4C13-9364-2F0E09CE0F54,AmdCpmEcInitDxe A6CC6BC8-2ADA-46C3-BBA4-E99672CC9530,PciUartDxe A6DB3378-CFD7-4BFD-A1C4-2709FEC52F8B,AmiTseOemPortingVar10 A6DEFC45-18DC-41C9-B2A8-D0089DE08DD3,UfsPassThruDxe A6F691AC-31C8-4444-854C-E2C1A6950F92,DuetBds A6F7DEF5-10C2-4DBF-9B48-195388C56507,LANControllerSmm A702CE64-AB7A-498F-BAE6-CE18BBAE4C31,BrightnessHardwareVbiosSmm A708BD51-F56F-4DA2-8F78-1480CB2C1D84,SMSC5045PeiInit A7119441-E153-970D-5508-75DCDFA41974,SbSocSummitDxe A721B30A-5A7C-4B6F-AC69-07496129A26A,FjRealtekLanControl A7317702-051C-4979-9EDB-962054567C34,LastPeimBeforeFspm A732241F-383D-4D9C-8AE1-8E09837589D7,XenBusRootDeviceGuid A733A552-26E6-4803-92DE-6C5543EE54EA,SlotDataUpdateDxeSierra A73D663D-A491-4278-9A69-9521BE3379F2,ArmVeTimerDxe A74B3AEF-2502-40C5-83A9-3524776273EA,SioGpioControlSmm A74CB083-C630-479F-9ECF-ADBAFD2F1704,BlueToothPei A74D7B1D-0393-40D7-9AB2-0AE36CF3F1E8,TraceHubPostCodeHandlerPei A75E4CED-D316-4CFE-942C-36A25789F04D,SetupConfigUpdateDxeGlacier A767E093-458D-4DE4-A2A2-08C7CB5FB844,DellFreeFallSensorPei A76B4E22-B50A-401D-8B35-5124B0BA4104,TcgPeiPolicyGuid A770C357-B693-4E6D-A6CF-D21C728E550B,EdkiiFormBrowserEx2ProtocolGuid A7717414-C616-4977-9420-844712A735BF,EfiCertTypeRsa2048Sha256Guid A7732DA8-11AA-4366-9715-CD92CFB7D362,SataController A775A229-DBF2-455D-B737-FBD53D368A26,OTP A77B2472-E282-4E9F-A245-C2C0E27BBCC1,EfiBlockIo2ProtocolGuid A77C8452-0821-4544-AE47-257489855F91,AmiPspNvramDxe A799931B-FDB0-40B2-8A25-D26B58885379,AmdSocAm4BrPei A799B420-F79B-44F0-A167-BC3F99DD6166,CbsBaseDxeSTP A79DC347-DEB4-4A4E-8497-CA5F8E7F0601,DellImageServerSmm A79EED97-4B98-4974-9690-37B32D6A5B56,RTSMArmVExpressLibSec A7A11C86-C539-4BB8-8920-E7CCB5306DE3,SDTgaDecoder A7A15766-449B-AA93-114B-71B47BE174CA,DellDataWipeSmm A7AF67CB-603B-4D42-BA21-70BFB6293F96,EfiRngAlgorithmSp80090Hash256Guid A7B0CEAC-480A-4F8B-ACE3-7679BE16EAF9,PdHostInterfaceTiPei A7B36DCF-C75A-4BE8-BE2F-E4840CBE163B,DellPbaMgrDxe A7B81226-FE2B-43B3-9BC7-6B24B5920DBF,DellAcLossPei A7BBB38E-3AB4-409D-B11B-EE31A2688B0E,OemHooksPei A7C0687A-E8B9-42EC-B8A5-A950DF6EF94A,AlternativeDefaultMemoryQuota A7C13377-CD27-48E7-A488-F38E3A51D11D,SDGifDecoder A7C619FF-9A64-4A89-947B-E7953E2427CB,PegaBsDxe A7C88FAE-EBEC-45ED-A7C5-5FA755177306,PerfTuneWdtPpi A7CED760-C71C-4E1A-ACB1-89604D5216CB,EfiIioUdsProtocolGuid A7CF5E50-A5B4-43E2-9BC2-E64F9F74CF6E,OemPei A7D09FE1-74D4-4BA5-847C-12ED5B19ADE4,PeiUsb2HostControllerPpi A7D41F88-1CB8-4BFB-901C-F68BD2A47E9D,EcMeDisableDxe A7D8002B-923B-41C0-884C-3FC3795203FA,SystemVariableStoreProtocol A7D8D9A6-6AB0-4AEB-AD9D-163E59A7A380,SystemDiagnosticSplashScreenApp A7E2CE72-DC32-4BC0-9E35-FEB30AE5CC47,AmiEarlyBistPpi A7E45308-81B0-43AE-AD30-2398395C27DF,ClearPassword A7E9ADAA-35C3-4A6B-A3B7-6C38BAA24F1F,BootBlockVisibleUpdateDxe A7EBBFED-CD82-4278-94DC-80F0CDE46FE4,GpioV2ProtocolInitDxe A7EDEBD8-A8D7-48F8-81FB-837656B82077,AmiNvramBackupRomAreaGuid A7EE90B1-FB4A-4478-B868-367EE9EC97E2,FmpDxe A7EEAF1E-969F-40EE-A21E-1856F5E6D41C,InstallMSDMTable A7F43547-1FF1-4BCC-9425-A082909BCD0D,SystemSureBootDxe A7FD9E38-C005-45AD-8B65-F13CF6A1FD79,AmdUnbXvPei A8021F3B-B649-4C18-8270-A796ACCF32E1,EfiEmmcWpHobGuid A80CF838-838E-4739-B49E-D97D20DDE98F,GpioControlPei A80E8FC8-332C-4359-9622-84E83D90FD5A,BiosCriticalInfo A80FFB86-4CAC-4D76-80ED-25F62054AD87,WifiConnectionManagerDxe A8154B55-2021-4D40-AE81-2E23A02DCC46,FtdiUsbSerialDxe A817E61D-049A-4509-BEB0-79FCA7696235,PlatformDriOverrideDxe A81BD805-268C-45AA-8BDD-0B8EB92A5341,SmmFlash A81DD68E-F878-49FF-8309-798444A9C035,AbtSmm A82485CE-AD6B-4101-99D3-E1358C9E7E37,EdkiiCpuFeaturesSetDone A82FAE00-DB01-4737-A6DA-7A2E1A75C203,SmbiosDataUpdateDxeSierra A833441A-0CA0-4032-859A-3CFF7B6646A7,DellImageServerDxe A838CBB5-59EF-4493-89D0-133C8968905D,CrbSmbios A8499E65-A6F6-48B0-96DB-45C266030D83,SiInitPreMemFsp A84B495B-79F4-40AB-8B60-653F69DCD944,AmiHeciDeliverProtocolGuid A85027FC-0E09-4FA9-A407-CAD206FB4F1D,PlatformStage1Pei A85DCA1B-198F-4E14-A673-874264687E85,DataSink A8656175-9210-4AB5-8ED4-A7503BD92F0C,BoardSmbiosDxe A869B539-26F0-4F22-9A3E-F434E6898984,ProcessErrorCodeDxe A86BADBC-BC5A-4D74-8FA7-3DA0F1C57D4B,DellMemorySlotInfo A8752510-D83E-400A-85DE-FD1587882AFE,DellLomConfig A883FD70-4E7E-4B17-8EBB-C5646FF154CA,SpiMouseDxe A886C548-0CDD-4E2E-B364-AE956AAA4554,SwSmi534D0540 A8913EC1-C00C-4C3A-A245-077C0CA35738,AspmOverrideDxe A89599DD-AE31-419D-80C3-3426BC0A8E4D,CxlDxe A89BB035-B7E2-42CF-B27D-C1A50FCBC1CA,DellUnzipDriver A89EC8E0-0BA1-40AA-A03E-ABDDA5295CDE,PciExpressDxe A8A2093B-FEFA-43C1-8E62-CE526847265E,AmitcEfiOsVariableGuid A8A2F6E1-6F62-4CFB-9E47-93CFD6D6E476,DellLegacyUsbSmm A8B31E06-7068-5D87-A1A6-10754A09B92D,FTPMSmm A8BA4592-4D57-41C9-AD6C-0791BD23A99B,OemUsbPorting A8BC51CC-5A30-41D5-8B1A-EB46ABC527FA,IioRas A8C60A60-A950-48CB-A612-7FA732DF7243,OemRuntime A8C67255-E029-4B1A-968E-ECA6E9C11C73,AmtSmbios A8C6A171-5478-4A7C-9EB6-655C6CCC4E3A,InsydeReportFvPei A8C77EB8-EBD6-4E51-A61A-B0366206B17B,BctBaseSmmSTP A8CDA0A2-4F37-4A1B-8E10-8EF3CC3BF3A8,EdkiiNonDiscoverableUhciDeviceGuid A8CEC941-CD87-4AB7-980C-4C77C33BF3BA,ImcErrorHandler A8CF6278-8758-458D-ADFB-3471F5AD50B1,SystemHddPwdPei A8D599F5-F45B-4396-8761-E1C7F7222A4E,FjPowerOnTimeCounterSmm A8DB985F-CB2C-4822-B8B1-1C8E48123FA5,FjGabiPasswordHandlerSmm A8E80DDF-A3BB-4880-9DB2-9BB1B8BB1212,SbMetronome A8F14FA9-FC88-45F4-A622-F06E6C56E632,FirmwareBootMediaInfoPei A8F634A5-28F1-4456-A9D5-7E24B99BDB65,PcxDecoderDxe A8F7B053-CAD8-438F-98B3-200D4603B79C,OemLanSsid A8F960C6-4CC3-4417-8AD9-2A3B3F8027EA,AmiMemoryInfoGuid A8FB59B6-8417-48A1-B565-199849271066,AsusVerbTable A90F8536-4AF8-45D6-B58D-D225FD1C06D9,FjI2cTouchPanelDxe A912F198-7F0E-4803-B908-B757B806EC83,Hello A9177B11-8825-3A50-AE81-2E23A02DAA42,DashUsbSerialDxe A919B3B6-D44E-41F0-9179-8AA24FF2260E,PCIeSataDynamicSetup A91EE51F-0FF0-4A6C-A6F4-9214303AEDF7,MeEsrtUpdate A92CC133-370E-47F0-9980-5D78896BEFE4,PlatformMilestoneHookDxePrior A92CDB4B-82F1-4E0B-A516-8A655D371524,VirtioNetDxe A9388856-F674-4B2B-98B8-6F463029711C,SbSocRsDxe A93A7745-FC4C-4435-8B60-B5BC3B7E9135,WheaLastBootError A9474AB8-1AB4-43BE-90B3-17D119FE8086,PxeDriverDl A94A6AEF-D69B-4010-BA24-F91E1FE62ADA,LenovoSystemSecureBootDxe A94A9BF3-DF9E-4C11-A9CE-23C1F66FEE13,OobMsmSmm A94B6FBA-BB07-4A98-8749-A860D6EB7724,LegacyBiosPlatformHookDxe A954E4B0-0380-41F6-95C1-B8ADE56C2319,OemHookPei A95C1D60-CB9F-4BD8-A030-3F1C4A185156,SecureBootMod A960F489-9773-40CD-852C-55822D533F19,H19ComputraceRuntimeDxe A9620E5C-5FA1-40B7-8B21-50B632F88F38,EfiLoader A9626A70-A4AC-4B9B-8396-8C931E11904F,AmdCpmPmfDxe A9638A2E-8862-439C-BA51-032161F6FE31,BayhubSecureErase A9731431-D968-4277-B752-A3A9A6AE1898,PeiIpmiPpiGuid A974C9A7-F765-4411-9191-41D36D5139B9,AmiSerialUart0 A9759271-49CD-49BE-8764-5DEBFBE68F73,AmdResetManager A97C91D0-6FEB-4555-B0DA-4E79EC009D68,GraphicalFirmwareInterface A97EAC62-6F1A-4B05-8CFB-65B1CE7D6A3C,BiosVideoDxe A9874C4B-599B-4B46-8161-FA4E72E53BBA,ShadowDownPei A9920538-40A4-4335-9D71-1EF546AEFB27,DellSfpPei A993B66C-22EA-46BA-A27A-0A23356D901C,AmiHddTemperatureProtocol A9A048F6-48A0-4714-B7DA-A9AD87D4DAC9,EfiRestJsonStructureProtocol A9A7A430-A520-4279-AB90-95683EFFEEC6,SioChip1Smm A9ACE824-4486-44E6-915A-8FBAED0799B9,SetupDataProviderDxe A9B54638-4F79-4369-BCA3-44B2B593ACB8,OemSmi A9B700CF-019E-4D8B-A3A7-88E1EA01699E,HddSecurity A9C8E043-B66A-42B9-A48F-98B23491EBAB,Cf9Reset A9C9211C-7B14-4DA9-A14F-3AF7451CC0F8,BiosUpdateExtendedPlatformPolicySmm A9CA7993-FB8F-4BE4-8CE1-E2AB9F2ECD04,SGXSetupSmm A9CC8E41-4BC1-4D1A-8E0C-C721DDFCE881,H19VariableLock A9CE66D5-6D37-451E-A9BF-F58F7A0B3CC2,ASM1061_DXE A9D372DE-D677-4B41-8FAD-9EC178DE19CE,DellVideoDevice2Protocol A9DC6F60-F861-47D1-8751-ECAAE7D27291,LibMath A9DD1597-F2C5-4CB6-AA7B-EE01AE806185,AmiSmmNvmeControllerProtocolGuid A9E7CEF1-5682-42CC-B123-9930973F4A9F,EfiMpInitLibUpDepProtocol A9E8E979-4B94-4150-B949-51D45FE5EA18,LEMDisableSecSMIFlashProtocol A9E9888F-CA84-436B-B0D8-A03DEB351CAE,AppAdapterMkTme3v0 A9F634A5-29F1-4456-A9D5-6E24B88BDB65,BmpDecoderDxe A9F8D54E-1107-4F0A-ADD0-4587E7A4A735,IntelSiliconPkgTokenSpaceGuid AA00D50B-4911-428F-B91A-A59DDB13E24C,EdkiiSmmCpuRendezvousProtocol AA0E8BC1-DABC-46B0-A844-37B8169B2BEA,EfiPciHotPlugInitProtocolGuid AA17ADD4-756C-460D-94B8-4388D7FB3E59,EdkiiPlatformBootManagerProtocol AA1AA47C-3668-4F75-B51B-0C1C6499764C,AmiGetPstatesZen4 AA1FF342-8968-4C70-882B-9E46DE9E4E78,OemSsidDataUpdateDxe AA236098-86C3-4A56-8B89-B715E04AB5CE,SsidPei AA298E94-A45D-45B5-8CE5-4FB71FBA4CE0,RpmcSmm AA2A3D4A-FDBB-4C27-BF42-1C74F1742E82,OemIp3Pei AA324A7F-A676-46DC-A35D-A404226A7A04,ReprotErrorCodeStatus AA382865-12B0-44E5-A731-6DEF4DF34CE7,LenovoPromptService AA40B708-9073-4436-B5FE-D22D7ABBA5C4,MemoryDiagnosticDxe AA40D00E-5B9B-4DAD-A487-FC1BCBEF8170,SgPeiInitPpi AA4100C0-7F70-EABF-B720-5B6F7ACA5EEB,EepromDxe AA430398-3C8A-4817-8ED0-6291B5C77D6A,RTL8111HN AA48FBB2-9F87-4DFD-B416-575938F0C8F4,PropertiesTableAttributesDxe AA506A03-4A54-492B-8F2B-9AD9A949358A,UfsBootLunIdHobGuid AA5324ED-DC11-4D5D-A52B-FABDD7E80634,PlacementDxe AA600F06-26F5-428F-B4F1-913BEF6E4DBB,FspWrapperExtractGuidedPeim AA652CB9-2D52-4624-9FAE-D4E58B67CA46,PchSpiPeim AA69724F-11C0-4B04-A860-2E8E196B03CA,AmdMemBrhSp5Dxe AA6E807F-88C8-4237-EE25-AAC45BF18804,EfiIntelLanDriver AA6E8785-726E-441D-ACB8-F75FB0B2B9F2,CoreEG2 AA7B4695-00B4-4468-AD92-99370AC031C5,LegacyRegion2 AA7E190D-BE21-4409-8E67-A2CD0F61E170,UniversalPayloadSerialPortInfo AA8818DF-D0B1-45E4-A7F2-B6DB0E752BA7,AmdPmfDxe AA893E19-A641-4819-AD23-011B7C24250D,IT8728SioAcBackSmm AA924214-DFCB-4BEE-AA33-FAE9729AF000,A01ODMSmmServiceDriver AA9BD7A7-CAFB-4499-A4A9-0B346B40A622,SmmRegisterInfo AAA76748-3602-450A-B905-6A98A3E6D363,ProjectDxe AAB16018-679D-4461-BA20-E70CF7866A9B,EfiSystemTypeFru AAB18F19-FE14-4666-8604-87FF6D662C9A,EfiSpiSmmNorFlashProtocolGuid AAB53D89-3AC6-40D1-8C65-44EA1FCA9A4E,AmiPspRebuildBSmmCommunicate AAB5438C-F15B-4DEF-B61A-5280B62BFB58,FchSongshanMultiFchPei AAB8AD42-45D2-49AD-9219-257D9B495979,BtVendorConfigDxe AABDBE33-DBDC-43D3-AFE3-AB37F9B46782,LEMCBMRDxe AABE9A45-B345-49D2-88EF-6AD0B85ED7E6,AmiRomLayoutProtocolGuid AABE9A88-F09C-429F-B293-2D2DA9DA9980,AudioDxe AABF95D6-F40C-405F-8360-6A59794B8040,BasePciSegmentLibPci AAC33064-9ED0-4B89-A5AD-3EA767960B22,FaultTolerantWritePei AAC9B0AF-A46A-49D8-8016-9B9DAD2C7F5E,DxeBoardConfigInit AAD04E7E-F6E6-4694-B14F-E2D608740E29,SmbiosType3 AAD10051-5D94-4B9F-B778-E4555EE3CCCA,IioSmm AAD1E926-23B8-4C3A-8B44-0C9A031664F2,FmpDxe AAD8B9F8-2C83-4E4B-96E8-C5B8B8AC56BF,JedecNvDimmSMM AADE7C97-98E7-4CFA-B4EF-BBE20506A31D,EcIoSmmProtocol AADFA1AC-E923-4673-B1B8-714AD849F790,SystemFormBrowserSimpleTextViewLayoutDxe AAE2EA7B-E052-4371-8E4B-FF0E52D80F66,AdlinkSetupItemMod AAE65279-0761-41D1-BA13-4A3C1383603F,Ozmosis AAEACCFD-F27B-4C17-B610-75CA1F2DFB52,EfiEbcVmTestProtocolGuid AAECDC89-2A49-46F1-A163-F7979C039998,IdeBusSrc AAEEA070-C492-4469-B378-BBAB2060A4A7,BiosAttributesMgr2Smm AAF32C78-947B-439A-A180-2E144EC37792,EfiAuthenticatedVariableGuid AAF691F4-9851-4120-8A43-1129B2829899,FjDtPowerFailureRecoveryPlatformDxe AAF875D2-0968-4585-A40A-B35C9FE0CAEC,AodSmmZp AB1404CA-4801-4208-98BF-30D521DAD4D3,AmiTseUserPasswordValidGuid AB17430C-135B-46A6-95C0-57052798A584,PlatformIbraTopSwapPei AB189162-6DB5-4EFC-AC59-D0B3CC851119,OemEarlyPei AB1C1816-D542-4E6F-9B1E-8ECD9253E2E7,ArmGlobalVariablePpiGuid AB21ACC3-BA33-EE2C-66BC-125677111AB2,AmiDebuggerCpuProtocol AB226E66-31D8-4613-879D-D2FAB610263C,EdkiiDynamicTablesPkgTokenSpace AB248E8D-ABE1-11D4-BD0D-0080C73C8881,WinNtUgaDxe AB248E99-ABE1-11D4-BD0D-0080C73C8881,EfiWinNtUgaGuid AB27C87B-91B9-4F1C-B942-8437B164277A,FchHuangshanPei AB294A92-EAF5-4CF3-AB2B-2D4BED4DB63D,PeiMfgMemoryTestPpiGuid AB2BEE2F-C1A6-4399-853D-C07C774FFD0D,EfiLpcWpce791PolicyProtocolGuid AB359CE3-99B3-AE18-C89D-95D3B072E19B,EfiStatusCodeDataTypeError AB38A0DF-6873-44A9-87E6-D4EB56148449,EfiRamDiskProtocolGuid AB3E46F0-844B-456E-8911-5D4546172410,EventCtrl AB4E44B3-1786-4BCB-BB8F-98C349140D69,FchHuashanSsdt AB52EAE3-1E20-4114-B61A-EC3ECDAAC1F0,AdlNxpPei AB5A4DF4-F0D7-49A8-BF5C-F25DA04C2533,CpuGlobalNvsAreaProtocolGuid AB5AD18D-331A-4B7F-9B7F-64EFBAF1AD31,PTInterfacePei AB5BCFE8-BEE9-47B7-B7E5-7EEA4D357A01,UpdateAsfTableDxe AB5ED376-DD38-4D22-AE89-B645A4A3236E,SynQuacerI2cDxe AB6CC986-8D03-400C-9FA3-96609C3B7BD3,AmiUsbInterface AB741FF0-0B9F-4E6B-AAFA-79402241B814,PreserveCACert AB78D6A5-7E2A-47AA-9F32-780793C0DADB,RfInventory AB7ED12E-1D78-4635-AB87-23F00A911EC7,RomLayoutDxe AB8F1705-7EB6-4D08-A9B3-918BDE24F479,UpdatePcdPei AB971179-52CF-4D7A-A91E-3B14DB19BB74,SmartCoverPei ABA99AB9-C7E0-42CF-A584-1C93AC103AB7,DellVideoSmm ABAA46B8-84A3-4E74-882F-6368F6EDC9B8,SystemUserMasterHddPwdDxe ABB40EE1-D13C-483F-8490-1EA55F73BCC1,StdBoardDxe ABB50A68-0CA7-4C9F-8DB4-56C34E01CB95,SystemFirmwareDeviceBlockDxe ABB74F50-FD2D-4072-A321-CAFC72977EFA,SmmRelocatePei ABBCE13D-E25A-4D9F-A1F9-2F7710786892,Platform ABC36AAC-2031-4422-896E-0A3B899AD0B4,Microcode ABC6BAEB-AA8D-401D-9B17-C6DA6AF4F48E,DashManagement ABCB1463-3275-4B96-9CBB-ABBDFF4AEDBE,MultiLanguageDxe ABCDFB96-ED90-4C7E-A82B-EC98F99305ED,CbsBasePeiSSP ABD42895-78CF-4872-8444-1B5C180BFBDA,EfiPeiSmbusPpiGuid ABD42895-78CF-4872-8444-1B5C180BFBFF,EfiPeiBootScriptExecuterPpiGuid ABDD8BEC-9825-4678-AD5A-27C74FADBAA7,TPM20Esrt ABEA0163-A472-4152-9A07-2E954C230FF5,OemPei ABFC0212-9344-439C-8653-699234CFAD03,AmdCpmWwanInitDxe ABFE2830-855B-4A98-94D6-EEB23D1EBF45,AmdIdsDebugPrintDxe AC05BF33-995A-4ED4-AAB8-EF7AE80F5CB0,UefiCpuPkgTokenSpaceGuid AC0AD9E7-6BCA-4EF3-924F-BDE0D026BB23,PlatformPort80HandlerDxe AC255206-DCF9-4837-8353-72BBBC0AC849,OzmosisTheme AC274B5F-4D79-48D1-96DF-FEE354CF7083,EfiSerialPortTokenSpace AC3435BB-B1D3-4EF8-957C-8048606FF671,FrameworkHiiOnUefiHiiThunk AC38DBC2-8525-48F8-9607-FD9C917BE42E,AmdErrorLogDisplayDxe AC3AE4F1-6050-4609-B701-6A90B0972E74,AmdNbioAlibDxe AC3DA503-65E7-4153-96FC-8707FB7594FB,ASUSBIOSInfo AC422CC1-D916-489A-B165-536FDFC633C2,PlatformDxe AC44EB5B-286B-4A41-BF5C-B75B8286454B,PchAnOddDetect AC4CE557-F5CD-439E-963C-40F09683DAC5,AppleKeyMapAggregator AC4E8F32-1CEE-4493-9EF0-AAD8773F8323,RTS5229 AC5919D9-F137-4F87-869F-D863EDA88ED2,LenovoInitVproPolicy AC5B47BB-2C77-4688-B555-987E1846C843,AcerProductInfoSmm AC5E14DD-4567-41F7-9E29-5F52CD314214,X11DPHSmmDriver AC60ED9F-523E-4F5B-94CA-3961346A00BA,LenovoVariableInitDxe AC62D8B4-3E8F-4ED2-9AD6-DCEAA1CB96A3,DataAccessSupport AC64F0C4-25C1-47C8-AC74-B1527456351D,EfiPlatformTypeHedtEvProtocol AC65572E-F3A7-4D9C-93FE-22A221C14591,DellSetupDMASupportDxe AC6993CF-43C8-4FCB-840C-B7CF2E079977,PciHotPlug2 AC6A415B-844B-4288-B618-D14D6144DFE1,FjGpioAbstractionReference AC6A515B-844B-4388-B618-D14D6144DFE1,FjGpioAbstractionReference AC6F7D21-3704-4D4D-ACED-FE32C6AAAFF4,DTbtPeiPreMem AC6FD56A-3D41-4EFD-A1B9-870293811A28,PhMebxHotkey AC7FA810-44E5-4CA6-9D17-778CC5B034EB,AsrockAmdSetupDxeRv AC80A942-12F1-4296-922E-30E91F751412,SbSocPhoenixDxe AC80A942-12F1-4296-922E-30E91F753975,SbSocRaphaelDxe AC86A8CC-BAE4-4BE9-9D59-4DAC6D7703ED,LEMFactoryDefaultDxe AC874606-8727-41A0-BCCD-43A4237466DD,EneUpdDXE AC8F7B00-C65B-4568-8806-9DEA9E5F1085,DellStatusCodeHandlerSmm AC95AD3D-4366-44BF-9A62-E4B29D7A2206,SmmAccess2Dxe AC991242-FBB0-42FA-AEF4-AA9746FD68E1,SmuV13Dxe AC9CF0A8-E551-4BE2-AD0A-E1B564EEA273,AmiCpuInfo_2Protocol ACA0F10C-04C9-4C4E-9D7B-B7A097F5E1EC,LenovoEn25Qh64FlashPartDxe ACA24109-6C7A-4CEC-9133-5FB9D8274910,IntelLtsxFit ACA606BC-0627-4718-A8B9-B7FA160D8096,PdHostInterfaceIteDxe ACAEAA7A-C039-4424-88DA-F42212EA0E55,PchPcieSmm ACB93B08-5CDC-4A8F-93D4-06E342DF182E,PchPeiInitPpiGuid ACC8E1E4-9F9F-4E40-A57E-F99E52F34CA5,AmtForcePushPetPolicy ACD03321-777E-4D3D-B1C8-20CFD88820C9,EfiRngAlgorithmX931AesGuid ACD28235-075B-48B5-98A1-DA04FCAF84F3,SiInitDxe ACD49C8D-6947-490E-AAD1-C338AC67253E,PspClearNVDxe ACD88BB8-D466-4B8A-8DA5-EC6407A83B28,NvmeHealthDxe ACDEA335-34B9-4FD0-A4B8-FA4DD0F73958,SmuV12DxeCZN ACE09B4D-CE11-4E48-8C9C-8D6901F70787,MeOptionsDxe ACE91E4E-238E-4A8B-9A4F-87B7DC82C066,CvpPeriphSpi ACED1C77-4EA5-4710-9412-EED3135F9C7D,SaveTraceHubConfig AD0D149F-BA67-4E0B-A6A2-4E8853673EA5,ErrorGlobeTile AD14AC1B-DA15-4CE5-A7E2-1F5437EDB4B3,SmbiosMemory AD15A0D6-8BEC-4ACF-A073-D01DE77E2D88,EfiVTUTF8Guid AD17A972-5892-4440-A78B-1BFE5F49B709,AsusSetBiosLockDown AD1A3937-A666-4E2B-9A35-8942A609931C,PowerFailureRecoveryDxe AD1F487A-BA56-48DC-8EAA-E8FBEA74B8F2,ASM104X_SMI AD21F7A0-7F5B-47FE-8CC0-241F318CABF5,AppleLegacyStartup AD3D267D-50E1-4B94-95D3-1025EF5B8391,SecFlashUpdDXE AD414DD9-076F-40FA-8B6A-1B6779ADECA3,AcpiDebugTables AD416CE3-A483-45B1-94C2-4B4E4D575562,TcgMor AD46DFB0-01D8-4D84-BBAB-1359A983AB9F,OemPeim AD49E1DA-5E83-4A0F-ACC7-67F08CAEAA78,TrEEPei AD4A0D05-806D-4FE4-96AD-3BD62D8C4CE0,DellDoSiodiagLedDxe AD53BB27-F696-4213-ACBB-AEFA2F4B8BDC,OemModelIDDxe AD5B2C0E-F480-4912-875B-6182F056C5D1,DellStatusDetectPei AD608272-D07F-4964-801E-7BD3B7888652,MonotonicCounterRuntimeDxe AD61999A-507E-47E6-BA28-79CC609FA1A4,FspWrapperNotifyDxe AD61F191-AE5F-4C0E-B9FA-E869D288C64F,EfiCpuIo2ProtocolGuid AD651C7D-3C22-4DBF-92E8-38A7CDAE87B2,VirtualUncachedPagesProtocolGuid AD6BF297-4E16-4A91-843C-FFCFBF986E51,SecureBIOCamera AD70855E-0CC5-4ABF-8979-BE762A949EA3,IncompatiblePciDeviceSupport AD77AE29-4C20-4FDD-8504-8176619B676A,AmiHddSecurityEndProtocolGuid AD7C7A22-5F5D-4864-A8EF-2B78AD0A52D8,DellUsbExtDxe AD82C06C-34C0-44F0-BA98-801C3CA7592F,AmdNbioDxe AD82F436-75C5-4AA9-9293-C5550A7FF971,EdkiiDebugPrintErrorLevel AD873A33-61E5-45DE-BB73-84F8461FB9EF,DellHddSecurity AD92822B-30C8-49B1-8AF3-63CCDF19B07F,DxeSmmIoLibSmm AD9457DD-E964-4562-AE91-1CDF6FCEC52A,POSTCODE0A_BASEVERSIONWMI_SMM AD9C4381-1EDE-430C-8D42-23767C465D52,EfiUsbKeyboardConnectGuid ADA0B656-AD68-4281-813E-5ADA5A65583F,EcRotClearVariable ADA1C665-7A8A-467C-84EA-7172B2B65862,FchSSSataD3ColdSmm ADB5951F-E8B9-42B1-9BFE-39D7B55484C8,HpRuntimeBiosUpdateCheckSmm ADB7B9E6-70B7-48D4-B6A5-18FA15EBCD78,IntelCpuPcdsSetDoneProtocol ADB99273-4FA6-4943-BBBF-565E7CFE9004,AmdFabricRplDxe ADBDD6EB-27B2-4A42-B392-F29C00C8D861,DeviceAddressPolicyProtocol ADC0425F-E954-459C-BAA4-60FED1C1162A,VariableBackupRestoreDxe ADCBFD3F-95F8-4EE9-9F1A-6DA826862D4D,DiagnosticTestBIOSInterfaceSmm ADCCA887-5330-414A-81A1-5B578146A397,TgaDecoderDxe ADD70A4D-1067-4FA3-A669-94C82877F106,TpmNvmeSupport ADDEBF82-A560-46B9-A280-78C6AB61AEDA,ErrorManager ADF01BF6-47D6-495D-B95B-687777807214,FirmwarePerformancePei ADF3A128-416D-4060-8DDF-30A1D7AAB699,EfiSmmIchnDispatch2ProtocolGuid ADF47106-5CF8-4D02-BCF9-BACCC7D3162B,CrbSmbiosDxe ADF956AD-E98C-484C-AE11-B51C7D336447,ConfidentialComputingSecret ADFC6F79-AA9F-462B-ABDB-C48E0F6356BF,AmdFabricRnDxe ADFE34C8-9AE1-4F8F-BE13-CF96A2CB2C5B,ChipsetFormSet AE02ADF3-E05A-4170-AFC6-C1F0EEE86518,Fadr AE076D12-F66E-4DD5-8825-86C820A21CAF,DualBiosSmi AE08C457-5787-4658-92C1-9177417FC0F8,OemPeiSetCstateSupport AE0B5B70-D044-4456-BA51-970E4C6870BF,EfiTraceHubStatusCodeHandleSmm AE0CC06C-1167-48C1-89A2-90499DF68FC3,XnoteEsrtDxe AE2020DF-C175-4344-B755-BBA47744F8B1,PeiVideoTextOut AE23AAC4-ABB4-4A96-A198-E06CC8475CF7,FchDxeLpcClkRun AE23D34B-0323-4707-A434-1DDAC210753B,OemBadgingSupportDxe AE24851D-E414-4062-959D-5F43EA99363C,DellAudioDxe AE265864-CF5D-41A8-913D-71C155E76442,CpuIoPei AE3356F4-F95B-404B-B1DE-64EB5D5E5BBE,MemRas AE3AA8AD-B581-4AA0-898E-14EF42D25F30,XnoteSecurityMenuSetup AE3D28CC-E05B-4FA1-A011-7EB55A3F1401,EfiDns4ProtocolGuid AE3D856A-655D-478D-8E48-1661311AA3BF,HpEsrtDxe AE402620-E6FA-4E09-9B63-3FD5BDABF77D,I225_PXE AE4C11C8-1D6C-F24E-A183-E1CA36D1A8A9,HfsPlus AE587172-CA15-48E1-8BE1-29DDF05C6A1E,OemSpecVtdRmrr AE587172-CC15-48E1-8BE0-29DDF05C6A1F,DxeSelStatusCode AE587172-CC15-48E1-8BE1-29DDF05C6A1E,OemVtdRmrr AE58978D-8EB0-42CC-FFFF-FFFFA419F039,XnoteSetupMainDxe AE6376EB-C813-482D-8005-40023A674EC1,FPSmbiosType140 AE65A8B4-05A3-4CFC-A486-F3149AA34BC0,DellMfgModeDxe AE65F02C-EEE9-4AAC-8C73-47AA4D7CF2BE,LenovoFmpDxe AE67A517-EB4C-4D22-9751-D66470D9B5DF,OemDeviceDisablePolicy AE68A9F6-3A3E-4AD2-869B-27C927CC5FD2,DellOA2 AE717C2F-1A42-4F2B-8861-78B79CA07E07,FV_MAIN_NESTED AE724F8D-62C6-4638-A065-0138F47B6D23,UefiPxeBcDxe AE7300AB-0E4A-43F0-B077-42B9DFC46033,FjGpnvSmm AE73630A-022D-4884-A696-F728CBF53AEF,SetupItemLinkageSmm AE80D021-618E-11D4-BCD7-0080C73C8881,EfiDataHubProtocolGuid AE87A309-FC97-4E55-94DD-BB1B061CE84A,FjSystemConfigurationRt AE8F0389-6BA2-47D3-9E55-80B3DD9B8A98,DfciMenu AE933E1C-CC47-4E38-8F0E-E2F61D2605DF,EfiPeiSmmCommunicationPpiGuid AE9F1E7C-80C9-4A23-917F-7450BA578E0F,TheftRecoverySmm AEA6B965-DCF5-4311-B4B8-0F12464494D2,BootScriptDataGuid AEA7C021-B7AB-4ECE-8035-536C234A40DC,SyncBIOSimagePei AEA8F032-4601-0189-2411-6C8E3027EE8E,DellDataWipeDxe AEA90534-A602-46E2-B3E5-1F01DA2664BB,OemVMDHiddenSlot AEAD58C8-C3E1-4ED2-9193-5E0D5D71803D,StatusCodeLoggerPei AEB157E1-ECAA-418E-BE87-A8E5FAB12D20,SmbiosUpdateDxe AEB8657C-AEBF-40A1-9866-BB22C7223FF0,Sha1AndRsaDxe AEB9C5C1-94F1-4D02-BFD9-4602DB2D3C54,EfiTcg2PhysicalPresenceGuid AEBB0EF3-9450-43DA-B2CF-323D04C937CF,DellWmiBiosAttribDxe AEBFFA01-7EDC-49FF-8D88-CB848C5E8670,SiPolicyPpiGuid AEC4159D-F2FC-4090-95CE-38317A8ED64C,FirmwarePerformanceTable AEC7B585-9AFC-400B-A8C5-78E135EFF845,ApobRplDxe AED6AA78-D5BF-4BC5-8CC5-F9EE47CF9299,CapsuleRuntimeDxe AEDA2428-9A22-4637-9B21-545E28FBB829,EfiEblAddCommandProtocolGuid AEDB04D0-EE2B-499A-B673-D71AF876CF83,DellSocketDxe AEE17FF6-B810-4A8A-9D4D-8B9C3289C1AC,SmcSwSMI AEF41E72-D85E-4EA9-980B-66E5820DE19E,LenovoSmartBootDxe AEF82756-87F2-4CF6-BE80-E59055295AA1,PEbiosinterface AEFAF26C-FB6D-4FEF-AF7A-9D78FF201FCA,FirmwareUpdate AF060190-5E3A-4025-AFBD-E1F905BFAA4C,EfiHiiImageDecoderNamePngGuid AF1450C2-70DE-44D5-80B1-B90D44277990,PasswordSupport AF198108-862B-4B46-AAB8-B0B34D3ADE0F,WifiPxeControl AF1BB1DB-9931-4CB0-8629-B9319BB0EFA0,DfciSARecovery AF23B340-97B4-4685-8D4F-A3F28169B21D,EdkiiVarCheckProtocolGuid AF2417F4-7B7E-4C2E-94BB-7A3389A157CA,EfiPeiPlatformTypeLightningRidgeExrpPpi AF277E13-3F21-40B2-9452-43503BAD0670,BixbyPei AF29FB7F-EAB7-4211-9684-CE8D4A47A0C7,StaticSkuDataDxeExpertWorkStationRP AF34C37F-F5D7-47F7-B586-B593CB338C35,ClientronSecureBootDxe AF382531-52E6-4CC4-B247-DB8E320CBBA3,SmbiosDMIEditBoard AF3969DD-43BC-43C4-9E46-9C3310AF6DA0,RtErrorLoggingDXE AF405B70-23A4-11E9-96B9-A0C589EF4E75,DellDiagUiManager AF43E178-C2E9-4712-A7CD-08BFDAC7482C,UfsPciHcDxe AF4A1998-4949-4545-9C4C-C1E7C042E056,ScPcieDeviceTablePpiGuid AF4CC162-D41C-455A-AB45-6DBCC1CD32F3,LpssDummyProtocolGuid AF4F281F-519F-4A39-8182-4B053D429874,DellTpmBusConfigDxe AF525A5E-183E-4309-9E49-EA22CF412EAE,MsiBoardECSmm AF56054C-8B1A-409F-BAF0-893CB964AA4E,FjSysmanWatchdogPeiBin AF59F2F5-5E28-4E03-80E2-4727545AF811,PchReset AF5B3C56-95E6-4434-9373-39BB718ACD00,DellFmpInterface AF5C26EF-CC97-4D80-A2BF-3D0CD5DFC86F,ThunderboltPei AF6AC311-84C3-11D2-8E3C-00A0C969723B,EfiDeviceIoProtocolGuid AF784AF2-76E8-45D1-A0FF-68724CE98AFF,EcBlinkPei AF8898C9-9B92-4556-8318-E425C9DE0A65,F2App AF8A30CC-08E4-4E73-9E8E-2E39674D9E63,DellServiceMenu2 AF9BAFE5-3459-4803-B8EE-5D6FC7FC511E,ApobRsPei AF9FFD67-EC10-488A-9DFC-6CBF5EE22C2E,EfiAcpiVariableGuid AFA4CF3F-AF71-4C30-A4FB-2910E771F9B0,AmiNvmeControllerProtocolGuid AFAB5682-F6CA-4E04-88BF-66638C23EFA1,WifiProvisioningDxe AFB3D17B-A330-4860-9BEB-E3C7D1D49C50,FjSecureServicesSmm AFB436A3-CE6E-4106-BFA8-ECF7EB1B6486,AsusPTTDxe AFB575B0-1FAC-0361-B6F3-9D6DAAAAE9D3,OemWlanPowerSwitch AFB6DFD0-8D22-4931-BEE9-B08F384CC1F7,LenovoCustomizedLogoSmm AFBFDE41-2E6E-4262-BA65-62B9236E5495,EfiTimestampProtocolGuid AFC04099-0D39-405D-BE46-846F08C51A31,AcpiPlatform AFD33148-A91F-4256-84A8-2F8976CE77AF,PowerReportDxe AFD69E65-1CB3-472C-BE63-0C98A2C0665C,RAIDXpert2_F50_0x00 AFE62C45-75C9-496E-A23D-DA7B51209B72,CbsBaseDxeMDN AFE751C5-05D4-4898-BF94-1A4B50F35FD4,DellSmmCryptoAlgorithm AFF1AFA8-07F5-46FA-A7AB-60F4C993B9BF,MpmKvm AFF347CA-AEA4-4447-968A-E6FE751C24C6,AmiAfuProtocol AFFC90DD-B014-4737-89E9-D1A0F50CD25E,CPLDPEI AFFE115B-8589-456D-BAB5-8F2EDA53AEB7,ArmPlatformUpdateFdtEventGuid B0090FD6-3DAD-4A9C-B638-83077B751353,HpIciclePei B00E7F2A-450A-47D9-9372-172ECD15B744,FjS5P B00EE730-80CD-4178-927D-378A75F9A3D1,RTLWifiDriver B017C09D-EDC1-4940-B13E-57E95660C90F,AhciRom B02DE24A-0794-434A-A8A0-04A0F68D857A,N17PQ3Gop B02EAF8F-28A1-44A8-9947-72DF3A8A4DDD,UefiDMBMEDUSmi B02F63AF-96D2-4040-A15B-CBB8ADF81933,AmdMemSmbiosDxe B0392493-4E68-CEC7-992C-F6B5E029BAD2,AmdSocAm4VmrPei B03ABACF-A532-5E78-ACA0-B11F765B3AFD,CpuDxe B03D4E0D-5156-44AB-BEDB-9675A3D57D41,PhPlatformSiSmmCodeCheckDxe B040C9F7-5F6A-4B67-A7E5-4EAD9412F920,AmdFabricBrhDxe B0423E2F-3B2C-4A36-BF98-3EB3B4B7CB0E,PrmSsdtInstallDxe B053ED84-880C-4F7E-A57E-2C82C6E9BCBF,OemWlanBT B05E6B60-323F-4BCF-9A2B-5DBFB07301EF,AmdNbioEarlyPhaseRNPei B0649250-512B-41AB-8608-FE0757311B8B,AmdPspPeiV2Ssp B065BC30-E7A8-4502-B653-5D7A954D2314,DellLegacyBootInfoDxe B0695C20-F9FC-4372-800F-63B06FB52A4F,OemIp3Dxe B06F2CF8-8433-41A3-B513-B115C8E7EB8F,BiosUpdateExtendedPlatformPolicyPei B07156B4-5947-4885-A3ED-FB1DFA949AE4,PdHostInterfaceItePei B0732526-38C8-4B40-8877-61C7B06AAC45,EfiCpuIoProtocolGuid B0767CBC-4705-4D35-8866-17A9B85E3843,EfiMemoryConfigVariableGuid B078474C-A6E0-465D-8229-B46110CC437B,OemAdjustHsioWorkaround B0792197-ABC3-4BB1-9FD3-CBEA8FD41373,BaseAmiBeepLibNull B079EE3C-37A6-47E6-BF8A-94A7E85C41AE,MFTSmm B085B8FC-CCFC-4337-A59C-DE4ACA1B0365,AmdCpmSocAm4SmBrPei B08A11E4-E2B7-4B75-B515-AF610668BFD1,EdkiiPeiBootInCapsuleOnDiskModePpi B091E7D2-05A0-4198-94F0-74B7B8C55459,EfiFlashMapHobGuid B092E8A7-5B70-4ABC-944F-6A63195B0DA7,HpRpsuDetectSmm B093BDD6-2DE2-4871-8768-EE1DA57249B4,TcgPasswordAuthenticationGuid B098F766-B17A-4005-8309-EB23F1448C15,AmiCmosBadFlagHob B09CB87C-67D8-412B-BB9D-9F4B214D720A,VTd B09E43FC-FF63-4C77-A05A-AA5DC35D5032,ECHeartbeatDxe B09ED1E3-DDDF-429F-9780-C3B0C4857924,ScsConfigGuid B09FBA70-839F-4079-920B-81D8964361F6,AmdNbioSmuV8Pei B0A034CF-41CE-4104-8ED3-4F97E8ADB981,SioDummyDxe B0A6DB04-8A0F-4F4F-9C45-C3344515A583,FjGabiFlashCoreAbstractionSmm B0ADDE44-2985-40FE-9484-1B08772931EE,WheaERST B0AE3E81-C6B0-4D35-AD51-9117E0651EA3,PlatformEmmcHs400TuningInfoGuid B0AE51A7-E711-4F1E-BA16-1012261A6D71,WifiFmacDriver B0B2AB82-2E9B-4F89-A3D8-F5A99968950C,EfiPlatformTypeOpalCitySthiProtocol B0B86877-C921-4D8D-9957-B73D6BA20BAD,EcCapsuleDXE B0BAADB8-F11A-4C35-8F24-A57651133210,D01DbmfFileSelectUIDxe B0C0DDBA-AF2E-4804-8EAD-E40651230D83,DellUefiClass3ConfigDxe B0C2372B-9393-4CBC-9CAF-53913C9DCE29,FlashDeviceFvbRuntimeDxe B0C4F9D7-2F31-4B68-BF3E-C5AFACD59025,FjPostScreenMfgPowerOffDxe B0D0314D-57C3-4453-9486-18822D8C81BA,FmpDxe B0D3C4C9-5954-4A84-80BF-144CE9F02223,PostBackLightControl B0D542D9-E531-418F-B7CA-B9F58D6DDA45,OemCloudBootInterfaceSmm B0D6ED53-B844-43F5-BD2F-61095264E77E,PchSmiDispatcher B0D8F3C1-B7DE-4C11-BC89-2FB562C8C411,EdkiiSmmVarCheckProtocolGuid B0DAEB4F-1EF7-11E4-BBCC-78E7D1AF36D1,HpNetworkBiosUpdateDxeDriver B0E11362-00DA-4611-8D7D-10EF2527F653,VideoBiosDataBlock B0EAE4F8-9A04-4C6D-A748-793DAA0F65DF,TlsAuthConfigGuid B0EB46FF-DB1D-43F8-8339-B8103A3A1412,PciDxeInit B0EB46FF-DB1D-43F8-8339-B8103A3A5AE8,PciDxeInit B0EC5D53-7481-4821-AC57-69DDB2868DE6,UndiLayer B0EE53D4-A049-4A79-B2FF-19D9FAEFAA94,EcpPeiPciCfgPpiGuid B0EEAC59-2B94-406C-8822-07199A4F231A,DellRmtPlatSiDxe B0F0D157-AD8F-45EF-BFD6-F525AABC3092,GabiSettingItemDefaultRestoreSmm B0F901E4-C424-45DE-9081-95E20BDE6FB5,TcgConfigFormSetGuid B0FC49FA-4F5F-4542-81C4-E54DB9592022,LNVRNR B1095967-FCF4-4C53-BC16-7E3DF9C247EB,StdFlashPeiLibNull B10ADFA1-9E43-487F-AAF3-A7A9BDEAF4AC,ProgressBarFullRightEndcap B11216C5-44E4-472C-ACB7-128A5A3AD7A1,OpromUpdateDxeNeonCityFPGA B11E930D-A082-42E2-A7F2-C63767A4D3E7,AsusSIBoardDxe B122A262-3551-4F48-8892-55F6C0614290,EfiFirmwareClassGuid B122A263-3661-4F68-9929-78F8B0D62180,EfiSystemResourceTableGuid B129AD37-3F38-444B-E425-9AA991A81893,HpOsToUefiInterface B129FD4F-3E47-4BAA-B050-03CC41599BAF,OemI2cDevices B12BF2D5-05A7-4CAC-8210-0FED4B3CD67D,AmiCpuPeiPreMem B12DC6A0-1022-46B6-B995-8646AD5E5EEB,AcpiPcatProtocol B13AFF9D-C66D-46AD-8C23-723482EFC841,PlatformEmmcDxe B13EDD38-684C-41ED-A305-D7B7E32497DF,Smbios B144E169-AFB1-4426-B0EC-099728909342,MuxGraphicsSwitch B147CD7E-17D3-4D66-AB39-472B1DA659C1,UefiTableDxe B14AFFC9-F12B-4EAA-B335-1CD84889F6F1,CrConfigUtil B14BA91B-CCD9-4CF9-8FF3-BD159DDE760C,FjScrtyBootService B15239D6-6A01-4808-A0F7-B7F20F073555,Ax88772 B15E091B-C90E-4F0D-81E4-BB32A2DA68FA,OemCloudBootInterfaceDxe B1625D3C-9D2D-4E0D-B864-8A763EE4EC50,TcpDxe B162D432-E339-4316-862D-00280AB6A07E,BiosEventLogConfigUtilDxe B1659B1F-F74E-4866-9D66-2930900391A5,FwBlockService B167C2F5-E26A-4DFF-8E1C-0807C7F02A88,AmiCcidIoProtocol B16F81D3-A684-439D-A721-F617C9EB8ED8,FjCameraCapsulePei B177D4A9-D6E3-48A3-92F7-B548DE879D94,SraDxe B178E5AA-0876-420A-B40F-E39B4E6EE05B,WarmBootPei B180019E-9820-4DC0-8B40-A773E23D4F35,RamDisk B18348FE-D540-4ADA-8745-172C109D3A22,FjExtDxe B18D3493-7E62-48DB-A4DA-8120BFB14394,FdiskOemSmmProtocol B18E803F-F4D2-49DC-9C10-643174F56B97,Usb_Lan_Ax88179 B1951813-0CFA-418E-B312-33368D5902EB,SystemPwSmm B1975734-77C2-4827-9617-914883F3B578,ATFHobPeim B199DEA9-FD5C-4A84-8082-2F4170780305,EarlyPL011BaseAddressGuid B1A44F23-EDCC-4425-A1E6-22DA61640BA7,AsusESALaunchDetect B1A49A06-B630-4BF5-85BD-0997CE642D49,TouchDriver B1A81722-50C3-4AA6-8BBF-DD0D83989134,HhmSmm B1AEE818-B959-487B-A795-16C2A54CB36E,DellPeiMain B1B621D5-F19C-41A5-830B-D9152C69AAE0,FdtTableGuid B1BAC051-D5C2-4AC1-AC7D-9D2F518A1E7B,AmdApcbSmmV3 B1BE0BC5-6C28-442D-AA37-151B4257BD78,EdkiiNonDiscoverableXhciDeviceGuid B1BE2060-4EF0-49ED-AD8A-2F7230573034,OEMIp3ECPei B1C6D274-064F-46C7-A924-DCF85F3D747E,AmiRedfishIScsi B1CAA183-FA67-44F5-8D77-B528C309207E,DxeDbgModuleLocator B1CD7448-319C-41AA-821D-3E606BF6F90D,SmcOemActivation B1D7B153-118C-48EB-982C-B55FCE99F6F4,GpnvErrorLoggingToken B1DA0ADF-4F77-4070-A88E-BFFE1C60529A,AMITSE B1DBC95C-0EE7-4261-B290-5BF0A4DB9527,DellSmmRadioExecProtocol B1DD2F34-DA6D-4B8D-9D1C-DCB76B6E400F,NvStoreRestoreDefaultSmm B1DFF070-1322-4CD9-A5B0-F56BA2B54E23,AmdNbioGfxMDNDxe B1E9E2CA-B078-4070-BCCD-87449AC7D2A6,CpuS3Pei B1EE129E-DA36-4181-91F8-04A4923766A7,EfiDriverFamilyOverrideProtocolGuid B1EE7CB1-5D00-467F-9E60-24CD8341937A,SetupLoadDefaultDxe B1F7AF2F-2807-478C-A893-2BF4DDD1F62B,PeiVariableAuth B1FBF84A-C091-4A80-A744-23442A2B7BDF,AmiChipsetPkgTokenSpaceGuid B20005B0-BB2D-496F-869C-230B4479E7D1,EdkiiNonDiscoverableOhciDeviceGuid B219E140-DFFC-11E3-B956-0022681E6906,DnsDxe B2360B42-7173-420A-8696-46CA6BAB1060,MeasuredFvHobGuid B23AFDA0-D1D3-4F5A-B01F-62ED16A97863,HpAudioPei B23CE2C1-16A0-4F69-980A-95C77216F9A2,EfiPeiPlatformTypeKyanitePpi B242BEFE-9E51-4A0F-9ACC-8323F6CA27AE,FjGabiFtsSystemDataDxe B246672E-71A8-453E-A0F2-95DECD7A1B86,H19ComputraceSmm B2585B69-FB63-4220-844A-8FBEA8BF01AF,PeiIoLibCpuIo B25B13E9-0324-4F59-AEE6-AC4A5D5785CC,EcBlockPei B265299C-654E-4DD7-8616-358561C008A3,SystemVariableStoreManagerSmm B268252E-541A-4907-9542-6AC8196C5D2D,AmdNbioPcieZPPei B26B30A8-2172-4A46-9B4F-4D5B08DD6E40,T23OwnerStringService B26BCCA7-D044-49E1-B1B5-E2A96BB7C225,MitigationDxe B26E6830-629F-443F-BE20-D26E502C25BC,AmdFchHwmSmm B273CC44-E62A-41DC-9CAD-BDB4235459D8,UnicodeCollationDxe B2768462-14E4-4B8F-AFB0-B274B367BAF0,LoadSetupDefaultDxe B27DAB38-9814-4E06-A5A2-65AE9A14258F,AmiIntSmmCommProtocol B28CBC31-FD64-404E-83DF-ED162AF76B4B,CertificateBasedAuthenticationDxe B29328EE-68FC-4966-9ACE-BE21FADB7328,AsusVariable B295BD1C-63E3-48E3-B265-F7DFA2070123,AmiMultiLanSupportProtocolGuid B2A191A9-9BAC-4C83-A2F3-D5F6E71EFD03,ArmPlatformSysConfigLibNull B2A23305-9455-489C-AA81-21DB48C41EAB,LenovoAoacDxe B2A3D57C-7071-014E-B3EB-3C98D09CB32E,IntrusionDetect B2AB115E-C8B6-4036-BF31-E74BD8926CCE,DxePlatformAmtPolicy B2AB8AD0-5ED9-435F-B223-356B645D547B,AmdCpmABRecoverySmm B2B0F1BD-5791-4802-93F0-71D3A0FE993D,ClientronServiceSmm B2B73FA6-7224-49D1-82B5-1DBB115F1C50,OdmAudioLib B2BD9B02-9DF7-4E4B-A484-C27988EFBC77,AsusMbSwWmiDxe B2BF51E0-6543-4ACB-B09E-FD826E1AF4C0,RasClvPcieErrHandProtocol B2C62021-9E80-4250-B567-896EA8360AD1,DellFlashRecoveryImagePei B2C7D8F7-4E7F-46A9-8CDE-F9FB6D276278,EfiAmiDebugRxPkgTokenSpace B2C9CD52-86B3-4031-B830-8BD84495ABC8,HddSpinDownDxe B2CD74DE-11F9-418C-BF2E-DAC3035AAB7A,IsPlatformSupportWhea B2D0CEAF-848E-4B07-BFEA-6FE6C740B3D2,EcMpmPei B2DDC6BE-D2EE-4EF1-992C-2CD695115DA3,AmdCpmOemInitPeim B2DED54E-47CD-8416-1818-FBB243809984,AmdSocFp6RnDxe B2DEDC91-D59F-48D2-898A-12490C74A4E0,EfiIfrBootMaintenanceGuid B2E56A22-DFE7-4850-97AE-10E76112DE05,BatteryInfoDxe B2E6299D-686A-4214-B070-080367FC5340,DellInstallHiiPidListHobPei B2F436AC-A127-4EE8-957A-5048606DD681,MarvellNicSerialDriver B2FA4764-3B6E-43D3-91DF-87D15A3E5668,AmiAhciBusProtocolGuid B2FA5764-3B6E-43D3-91DF-87D15A3E5668,AmiAhciSmmProtocolGuid B304F34D-B27B-452C-8931-CF60A2F0D268,FchProm21GpioDxe B30DFEED-947F-4396-B15A-DFBDB916DC24,EdkiiPeiSdMmcHostControllerPpiGuid B31FF060-8363-11DF-8395-0800200C9A66,SystemAhciBusSmm B323179B-97FB-477E-B0FE-D88591FA11AB,PeCoffLoaderProtocolGuid B3246CB7-E9D4-419C-9E0C-84E10A3CD2FD,HstiIhvProviderDxeFHF B324F29B-5E97-4BF9-B4E0-5125C1F605D5,AsrockRtlansmi B326872A-4DC2-4DB3-88B2-F6C4475F8C91,CpuConfigGuid B326FD7C-F982-410A-96C6-1C1E499E1559,WyseThinClientDxe B336F62D-4135-4A55-AE4E-4971BBF0885D,RealTimeClock B342BEBB-41C3-40AB-AA70-E9F3742D1835,AmdCcxZen3Dxe B344259B-9957-4548-8BD1-B31464BB8370,DataStorageDxe B347F047-AF8C-490E-AC07-0AA9B7E53858,EfiWinNtSystemConfigGuid B34ADD50-05D4-4C99-BC55-F3F2F7F52E1A,LegacyToEfiDxe B34E5765-2E04-4DAF-867F-7F40BE6FC33D,ExtFs B35AD166-FCBA-4D4D-89C7-4B47104E3AFD,AppleSpiIoSkl B3685A91-F96F-4959-A539-A63C3B9ACED3,UsbLanDriver B3711230-CA04-4F11-9A84-2D8111F8AA83,EcBlockSmm B3737A34-628C-43CF-9A65-C235772F1819,FjScrtyRuntimeService B3738534-9051-40D1-9333-91284A5990CE,AmiPciHotPlugLibNull B375D24E-863A-2DC3-C429-7DAB7323AB9B,SceBootOrderSaveRestore B3762FA2-54D6-4EBC-84DE-4CFA9340FCB3,AcpiAMLDxe B37C08EA-12BB-440F-8169-389E1705DA16,OemGlobalNVSDxe B38573B6-6200-4AC5-B51D-82E65938D783,RecoveryOnFatIdeDiskGuid B3884E99-9CBC-4CE8-855E-53A12ED0B8F4,AsusIpmiPei B38CFE42-F0A2-40A5-8F95-EAE71D32B5D3,RtHooks B3903068-7482-4424-BA4B-405F8FD7654E,SiPolicyHobGuid B3930571-BEBA-4FC5-9203-9427242E6A43,EfiBluetoothHcProtocolGuid B396DA3A-52B2-4CD6-A89A-13E7C4AE9790,AmiTcgStorageSecurityProtocol B39C4342-F66D-40C6-85B4-B529DE7B6A64,UpdateRandomNum B3ABBE0A-8B28-4446-BB2C-4409BCC75FD9,AsusGpnvDxe B3B0654A-969D-4096-86CB-27E262A02083,PeiCoreEntryPoint B3B88F4B-7042-488E-A255-66F965E8D435,PasswordPopupDxe B3B99742-BE07-4CE9-A1AF-B36AD93D74B4,FjIbvNvramGateReferenceSmm B3BFAB9B-9F9C-4E8B-AD37-7F8C51FC6280,EfiPeiI2cMasterPpiGuid B3C14FF3-BAE8-456C-8631-27FE0CEB340C,ScEspiSmiDispatchProtocolGuid B3D3502E-CB82-4017-AB34-2F17D2D7035F,PepBccdSmm B3DA895C-6A27-4C4C-94E4-2359BE2532F5,SecureEraseDxe B3DAE700-2A77-4EA4-AF79-3297B484BE61,AmiMeasurePcioprom B3E123D0-7A1E-4DB4-AF66-BED41E9C6638,ScDeviceTableHobGuid B3F56470-6141-4621-8F19-704E577AA9E8,DriverSampleInventoryGuid B3F79D9A-436C-DC11-B052-CD85DF524CE6,EfiRegularExpressionProtocolGuid B3F9713B-70CC-43E9-BC34-D960C6F4ACC9,FchKeithDsdt B40612B2-A063-11D4-9A3A-0090273FC14D,UsbCbi1Dxe B40612B9-A063-11D4-9A3A-0090273FC14D,UsbBotDxe B40637B3-4270-4D2F-B2B5-D41CFC4E0A56,CapsuleSmi B4186561-8967-4113-BC5F-284B7670C4A0,DellDxeDelay B41956E1-7CA2-42DB-9562-168389F0F066,BootGuardPei B422FB70-E835-448D-A921-EBA460E105B6,SmmIpmiLibSmmIpmiProtocol B4282EDB-2371-44E0-9AB3-F33B3F7AA7CC,SecureBIOCameraSonix B42B8D12-2ACB-499A-A920-DD5BE6CF09B1,WdtProtocol B42E97CF-B811-4A09-9810-FEE8F53A561E,PlatformHstiDxe B430F89F-EB33-4514-B490-1885ADDBF840,TypeAEh B43348C1-E0AA-4767-AE22-2F31333152B6,L05BatFwUpdateProtocol B4339807-7CAC-49BA-9FB7-6231C622F270,BeginStickyBootButton B43499EA-57B6-4015-BDBD-AEA5D3D4F592,ApobBrhDxe B43B03C4-FEB0-410B-A0A0-C25B1C8F8DD8,EcStorageAgentDxe B441DF87-8D94-4811-85F7-0F9A7BF89D2A,MeAlertAtHandler B44A486C-8BB3-457A-A8CE-F89B179C9504,DellEcIoPei B4536FB5-E251-4EDA-8BCF-D43875BD1A11,GnbRenoirRouting B4536FB5-E251-4EDA-8BCF-D43875BD1A37,GnbRavenRouting B4571193-961A-4D20-A111-91C8B024ED79,SwSmi534D0640 B4598C09-DA08-5F75-A956-2CFF901B1C24,MonacoFont B45B5FC4-D6A6-4523-A229-E7772097EF14,DellLegUsbMemInfoDxe B45EBA39-D53E-4A94-A839-D501633A5918,SystemNvmeAspiLegacySmm B461563A-CBA3-4396-9051-7F8B109F60C5,AsusDxeSmmNvram B469B35A-0934-4039-9A36-7382C428F892,FjVariableRt B47417C7-E21F-4AC9-B0A2-7A158223A137,SetupConfigUpdateDxeNeonCityEPECB B4788552-650A-43D2-BFE4-324B4E1B435D,ToBootEvent B47EDFE6-D417-4161-950D-E824E920E5F0,AcerGetBootMode B48D9BEA-84FA-46D5-B289-3BC77BB9EE33,OemHookDxe B4909CF3-7B93-4751-9BD8-5BA8220B9BB2,BootManager B494DF39-A5F8-48A1-B2D0-EF523AD91C55,PeiPolicyInit B4A1208E-4D9A-4EA2-9D6B-E41A61E6C5AC,PeiAmtPlatformPolicyPpi B4BBA6C8-121F-457E-A06E-54331EB81C42,EcRotDisableSecProt B4C26857-8FE5-42BE-968B-39F45E921D45,AppleDxePState B4D311E6-721D-4051-956D-2410C1D789AA,TseSwitchingToPostScreen B4DE05C0-1BD0-11E1-8F0E-77F34724019B,TbtOemBoard B4E0CDFC-30CD-4B29-A445-B0AA95A532E4,SmmAccessPei B4E58F43-730A-46D7-B15F-1E06203EFC28,BxtRefCodePkgTokenSpaceGuid B4F03647-68C2-49E7-4A4A-EBA399F55EB2,HpLinuxRepsetWrapperWks B50AB2CA-48D0-11E4-A6D3-B8E8562CBAFA,SerialMojoDxe B51AF856-7196-433C-885E-C7DEC8384266,Manufacture B51B8D2D-D28B-4FD5-9872-888B99F8A292,LEMEventLogProtocolSmm B52B06E8-FB01-4404-8768-5C9417B33849,N17PQ1Gop B5320E5F-0875-42BC-A5B7-15AF36CE87CF,TcgDmarDxe B535ABF6-967D-43F2-B494-A1EB8E21A28E,AppleRomInformation B535FD4A-10D0-462B-AF47-791D8D32914D,BackupFlashImage B53BE3D7-3BA8-4868-A02A-8E15FB2C9299,CommonElogDxe B540A530-6978-4DA7-91CB-7207D764D262,FastBootVariableGuid B54299AD-B521-4BB8-A361-689249FE72B9,AodSmm B55600FD-A787-4EF3-803A-D1C9B546F24E,ErrorLogReport B55A4515-5895-4EA8-845B-75B7480F6502,SmmControl2OnSmmControlThunk B579B530-C797-4839-883E-EFCABD7756E9,VerbTable B57A1DF6-FFDB-4247-A3DF-3A562176751A,UefiDebugLibStdErr B57EC3FE-F833-4BA6-8578-2A7D6A87444B,EfiSpiNorFlashProtocolGuid B5852752-C452-4666-B189-03EEE5E3A07B,KEMoPLATFORMMENUDxe B589283B-0C57-4600-9AC8-493F5AB9D333,DataAccessHandler B58A69FE-163E-4CC0-A487-304D34D5489F,EfiTcgMADriverHobGuid B590D584-A947-4888-B468-0A449309A10F,FchS3SaveDxe B597FB4A-3527-4982-A4E4-8E212C3CCA9C,AcpiSdevAcpiTable B59AE9E1-C127-4EED-A3A6-4A0772CF7A4E,EsrtFmpDxe B59DAEA4-FADE-413E-A522-13639044AC2D,ElinkPei B5A05743-9B71-489B-A0ED-A0EB3950D23B,SecPeiDxeTimerLibCpu B5A7329F-0D17-401F-9DAD-A090F8AA0BAC,OemPei B5ADE90F-DC14-47A7-8002-E87238AAE930,LEMEfiNvmExpressPassThruProtocolHook B5AE0B17-F07D-4CE9-9FC1-403C40CD6BE1,GnrWsSmiDispatcher B5AE312C-BC8A-43B1-9C62-EBB826DD5D07,GrubFile B5AEB34F-3047-4955-B880-ADD36D86DC0F,EdkiiPayloadCommandLine B5AF1D7A-B8CF-4EB3-8925-A820E16B687D,BootScriptDataBootTimeGuid B5AF45A9-C3EA-41EF-B65C-4EA982DA9D49,KvmPlatformDxe B5B1181B-ACEE-4CC7-866F-9D8DFD27B399,LenovoEventLogVariableStoreDxe B5B35764-460C-4A06-99FC-77A17C1B5CEB,EfiPciOverrideProtocolGuid B5B4E5D6-1866-466A-8782-23FED9EC359E,CrisRecoveryGlk B5BB551E-F2A7-43B9-813A-F77DD80900F5,HpCertificateManagerDriver B5BD8969-0978-414B-BA9F-C46B0A95B76B,DellReFlashSmm B5BE0BFE-5882-4189-80F3-9A2383F574C2,EfiPlatformTypeKyaniteProtocol B5C59087-FEAC-4B41-9D80-790BA5AA070F,FwVersion B5C63B66-55E8-44DD-9993-BD8D06B55A4B,RemoveSMBIOS B5CB5393-7FDA-4383-B660-055C7E8AD991,KeyboardBacklightBin B5CEC017-74CB-4E10-BAC3-924A4CC629C8,AmiTseOemPortingVar7 B5D09084-80AD-4759-B51C-27548AFB8B8D,EfiGpioProtocol B5D0D3B8-4B79-4A48-B981-24201FAF200C,H2OVerifyRegionPei B5E7C7AF-A3E7-4D3C-B217-04596E4C368F,AmiRedFishSecBootApiGuid B5F33FB5-66D5-4901-BAF1-F0C774FC6588,VgaDriverPolicyDxe B5F53C73-3A8B-49E3-A428-B7D15A2FD994,CbsBaseDxeRMB B601F8C4-43B7-4784-95B1-F4226CB40CEE,RuntimeDxe B60A3E6B-18C4-46E5-A29A-C9A10665A28E,EfiI2cIoProtocolGuid B60D320C-25AE-4DCF-B848-196A7E55972F,KeepCriticalData B60D67C6-9546-4C1D-B1DA-681B001C53C0,H2OUveConfigUtilDxe B60DC6E8-3B6F-11D5-AF09-00A0C944A05B,EfiSalMcaInitPmiProtocolGuid B619A1FF-3B3F-4941-B0F4-2B053BBD1720,FpgaFvDataLibPei B625B186-E063-44F7-8905-6A74DC6F52B4,EfiDns4ServiceBindingProtocolGuid B629D9F6-D390-4FB3-AA0A-D248C73EA8F6,SmcOobMd5 B62EFBBB-3923-4CB9-A6E8-DB818E828A80,MebxSetupBrowser B633AD75-118C-4E7C-BEDF-A31D3234221E,SmmStatus B6363410-FD56-4D85-A9C4-D7041C0B51CA,FjMfgSetPostPassedGpioDxe B63BF800-F267-4F55-9217-E97FB3B69846,DynamicPageCount B63EBF4E-D196-40BA-AB63-1FA9A6068E84,LenovoOsOptDefaultDxe B63F8EC7-A9C9-4472-A4C0-4D8BF365CC51,EfiSdHostIoProtocolGuid B6460A49-0AC1-484F-AE58-F16EB239DB3D,TpmBootFlowVariable B64702DA-E6B5-43C8-8CE8-D253071E9D6C,RedfishRestExDxe B65694CC-09E3-4C3B-B5CD-05F44D3CDBFF,MmFvDispatch B65971BE-BABF-49ED-9DD2-48EC8DB4ABD3,LenovoSoundService B65BF670-FC37-4225-AB85-EC960A7A1ED9,UsraRegisterFilterLibNull B65F896E-6E6D-4D5A-8BCE-2E458E971D6C,AmdPspPeiV2Rpl B66C5FDE-2483-475D-8A6B-BFB6B751E20C,AmdHotPlugBrhSmm B670E168-BD14-4D33-86B0-E632848403F1,AmdMemoryHobInfoPeimV2 B674D90A-9BDA-410D-A26C-14D6AFFEBD6E,CompalCMFCDxe B674D90A-9BDA-410D-A26C-14D6AFFEBD6F,CompalEDIDDxe B675297C-4203-48E5-AF9F-B500C7C47BAC,UsbTypeCChargingSmm B67854CB-34C7-435A-83E4-A1117B68E259,FjGabiEntrySmiDispatcherDxe B686FCA1-9462-4E91-A704-A68C834100A4,SetupConfigUpdateDxeBlizzard B68EFDCA-BEE2-4BF6-B86E-45DC3CCBFE3C,DellDoSiodiagLedPei B69782B4-69CD-19FF-912B-844352F47BD9,MrcDispatcher B6993DC9-A51D-47E2-8EA1-BA1D80CCA822,FchSmmDiagDispatcher B6A2AFF3-767C-5658-C37A-D1C82EF76543,MeUma B6AF30D6-3EDA-4C72-9352-43DC3DC82752,SioSxLedControl B6B5FAB9-75C4-4AAE-8314-7FFFA7156EAA,VARBAK B6B643B8-2B41-4A61-A224-D4F476EF580C,AmdCpmOemInitDxe B6B9295F-CABF-4CEC-BB14-FE4246F2173A,iFfsDxe B6C0DCB6-434E-4BEC-BDAC-8EE7ED8A4EC8,ArithChk B6C1C466-E78A-4202-801A-B7950E956E0B,ProjectDXE B6C26249-C597-46FA-B559-7537F04A3564,AIMTSensorInfo B6C9FA82-9B26-4BE9-8C40-87A370E48365,AmiPlatformWrapperPei B6CB37E2-E2FE-400D-AAC2-A093EE2C55F1,VariableCmosDxe B6D47007-1445-41DC-BC8C-8AC34D7FB236,HpMMIOHConfigDxe B6DC988A-3D85-414D-888F-7816263533D8,UcodeCapsuleDxe B6DD6150-70B2-4DB4-AD9A-3C7C2B04E580,AsusEcDxeSmm B6E17DD5-5CA0-4E3A-858C-A14345AE0B83,SwSmi534D0040 B6E78A31-AF84-4B5D-92FC-5077C483F891,PostCodeDxe B6E9A733-EB75-41B6-B30C-009BCF3801C8,BasePostCodeLibPort80 B6EC423C-21D2-490D-85C6-DD5864EAA674,PeiBaseMemoryTestPpiGuid B6F44CC0-9E45-11DF-BE21-0002A5D5C51B,MmcDxe B703C820-4D3D-4658-8EED-5B2F9DE54711,efi_pop_LF_pressed B7084E63-46B7-4D1A-8677-E30B53DBF050,EfiFrameworkDevicePath B709063B-A0F0-4F07-A270-87B5E9452981,SmbSwitchPei B709EFA0-47A6-4B41-B931-12ECE7A8EE56,EfiSmmPowerButtonDispatchProtocolGuid B70CDF18-CFE2-453C-AF07-31CAC6345A16,HpCommonSmm B70F32F3-28CC-40BC-8E0A-682783BD6F68,BiosPasswordSmm B7139637-C114-447C-B73E-CDBCD307BEBB,WinCSMDxe B716A6F8-F3A1-4B8E-8582-5A303F1CDD64,PchSpiWrap B71ECD12-E01E-440B-AA52-4D6E59D45B3C,DellSecurityConfig B723EFF4-EE4A-40BD-BD7B-22272E36B3E7,ObbyFirmwareFileSystemFvGuid B72B4B3A-1BE2-44BB-9EDB-B6215F113682,FjIfSecureBootAndRaid B733C141-E88F-4786-94AF-8B87BC4867FE,PttSsdtAcpiTableGuid B7358BEB-6A52-4D50-98F9-7EDD70B4B320,CommonPciPlatformDxe B73D3EA3-8C99-4682-88D5-A08EB6BFD561,IT889XSmm B73F054B-D1F8-4496-98E8-DFEACF8D8511,ClientronBds B73F81B9-1DFC-487C-824C-0509EE2B0128,DebugServicePei B73FE497-B92E-416E-8326-45AD0D270092,IbbrFirmwareFileSystemFvGuid B74B152F-5271-498B-A4A2-5722CBBEC614,DellPolyFuseStringPolicySmm B74BB37A-ECA2-4F79-A544-90569ABE6B99,LenovoSystemSmmCommunicationSmm B74E676E-3B2E-483F-9458-C378FE0AC69F,Tcm32FileGuid B74EAE11-AAEE-476A-AB0F-351063D67825,MeUpdate B750C811-02C2-4BED-99B2-8C6960080D45,IrqBoardInfoOverride B7520A2D-509A-423B-B7CD-E320E805C7E0,Usb4PlatformDxe B7542192-9E4B-427F-88FB-18A0198236E3,PdHostInterfaceTiDxe B7543E56-08D7-4C4F-B5D6-7E3ADFCB82C4,FjOemActivationSmm B7564097-959B-470E-954D-920EC49DE19C,AmdLegacyInterrupt B759169B-61E2-4F92-9447-23E3DCD33CEC,AmdCcxZenRvSmm B7611005-1F26-45BA-A3DB-01F39DDB2785,BootMode B761DA21-76EC-4AB0-99E8-4DC251B72CB5,DellSmmEcProtocol B76373AA-0259-416C-8170-DE9A0B6F955E,BzmDxe B76E5014-EB63-47EB-8915-686FCC3820B9,AmdNbioBaseCZPei B7784107-973C-4957-905E-54455A47E07D,AmdNbioPcieDxe B795675E-7583-4F98-AC6A-F9DDBBCC32E8,SystemFirmwareManagementRuntimeDxe B796223A-3776-4010-BABD-7E138F9167FC,PlatformSecureUpdatePei B7963BA1-D5A8-4ABD-B5CE-41940B006901,WakeUpInDxe B798078A-F00D-4F90-9DCA-D4326EF84BBF,HPReadBackCreateHpCleanNvram B7A1F481-1298-473A-A832-4D8AB83331CD,OemSetup B7A1FDA8-CB3E-4E69-87AF-B67FEC563548,GnbIoApicUpdate B7A5041A-78BA-49E3-B73B-54C757811FB6,IdeBusPei B7A5041B-78BA-48E3-B63B-44C7578113B6,FloppyPeimPei B7A777D1-6EB6-469E-AD1F-1165EB92B3FF,DellPropertySmmProtocol B7AFDD62-3E29-4FF9-9236-3AAB2A8C82F2,AmdSmmControl B7B82AD8-3349-4968-A940-7B8C265FF9B4,RtkUndiDxe B7B82AD8-3349-4968-A940-7B8C265FF9B5,RtkUsbUndiDxe B7B82AD8-3349-4968-A940-7B8C265FF9B9,b57undix64 B7BC0E96-57D2-4310-AEEF-74AC77DF0DAF,SetupXpBoot B7C14441-ACA2-4F7F-8AB1-47B9C88635A9,DashIoCfgSmm B7C2AB7A-8D0B-4A95-892C-C93F30A673C8,AsusRecoveryFailedDxe B7D19491-E55A-470D-8508-85A5DFA41974,SbDxe B7D4E312-4894-4147-BF44-9D6BFF50B7AF,BluetoothBusDxe B7D9F0D7-EBDB-4EE4-AB77-B30C4B9093CC,TbtSmm B7DDFF7A-1726-11E6-B12F-B8E8562CBAFA,WiFiPlatformDxe B7DE919D-E2F1-45EA-B66C-D1E035081894,AmdCpmThunderboltSmm B7DF1944-C9E5-473C-BFCB-34EF8155B373,HpM2IoExpanderSmm B7DFB4E1-052F-449F-87BE-9818FC91B733,EfiRuntimeArchProtocolGuid B7E329EC-AD60-4D61-86E3-01A7904E223D,gear7 B7EE4835-84CE-4B15-BF52-2D11574CE470,HardwareSignatureEntry B7F50E91-A759-412C-ADE4-DCD03E7F7C28,XhciDxe B7FC8359-5175-457C-B591-8AE8FDC47605,UsbOcUpdateDxeEVB B80764EF-4E70-419E-9FF7-A98910504B90,PS8625PeiPkg B8167809-E73A-4387-8323-0AFE83D3074F,SmmAslSmiProtocol B8192EAD-CB81-4712-AC86-CA44D1B19265,DisableUsbSmiMode B81A9587-D1D1-418E-CCCF-508DAFCE4D8C,GraphicsConfigurationDefaultsSmm B81BFAB0-0EB3-4CF9-8465-7FA986361664,EfiUfsDeviceConfigProtocolGuid B831F761-ACBB-49B7-A5D4-EF4B77502A9E,SmbiosDataUpdateDxeBlizzard B835353D-4049-410B-8F18-4C749C4C7A78,DxeSleepEvent B835921B-FD04-412E-9748-9889881B75B2,AmiI2cHid B847EF5E-A5B0-45DF-BECD-06CA113FBF7B,LanDriver B84B4FC3-A84A-47F4-999D-F00C1FD50139,CryptoServiceSmm B8502C59-B268-4BE8-ADD6-601AFEAA4BC9,SpiKeyboard B850A139-BABB-4D91-9F27-72D2EF01BF3A,VbtMipiJdiGuid B859281C-16FA-45A8-9201-1C3830A973BD,GecUpdateSMI B85C7FEA-AEBF-492B-96C6-42EA133BCF29,AmiTseHddSecurity B8642E41-D350-4BFF-9DEC-4940F15CD6E5,nfa765x64 B86B0E9F-9FAF-4368-A131-62416F3DD21B,AmdMemFp7Dxe B871F3BB-04B7-48B8-9D8D-ABFAA9EDDE61,AsusWatchDogTimerPei B874E099-B86F-417D-8DD5-A0C054AEF060,BoardSyncAPCBSmm B87AA73F-DCB3-4533-8398-6C1284272840,ReserveMemFlagVariable B87C2ACB-AC3A-4D96-9E4E-A5B9587A6298,StaticSkuDataDxeEldorado B88303F6-2E0E-41CC-8510-F5892BF1D9D9,PlatformVariableInitPei B88CF2B3-5CCE-482C-8DB4-6F329A73BD6D,Rtk8156UsbUndiDxe B8916C45-0680-40FA-B88F-89F9D42EEC51,FchSmbusDxe B894C949-A1F8-41C1-A7C0-DF523AD91C15,MrcPlatformHooksPeim B8969637-81DE-43AF-BC9A-24D98913F2F6,HandleParsingHiiGuid B89FD028-D4C6-4BB7-BCA4-17D8C945DC23,DellVideoDeviceSmm B8A31DAA-33FD-48F4-B84A-4D391FFA1F45,EventLogPei B8A3F491-0243-45C4-B670-C1BF619802AE,HpRuntimeBiosUpdateCheckDxe B8A6E7C5-B8FD-425C-A67E-1009DF1F10B5,LenovoUserManagerDxe B8AB793E-27A7-4107-907F-3FF4320D7F15,FchKunlunSmmInit B8AC7FB2-4211-4C2B-B62F-504421666C87,RngTest B8B8B609-0B6C-4B8C-A731-DE03A6C3F3DC,ScBiosWriteProtect B8C2663C-F9FD-452A-ABD8-20556FE2AE65,BiosAuditLogHandlerPei B8C45127-8A9D-4362-B20A-6C0012CB1430,PlatformSecureVariableSmm B8CDCED7-BDC4-4464-9A1A-FF3FBDF74869,MePlatformGetResetType B8D62377-7970-4CE1-87F4-9DDE56AE8982,BiosGuardVerifyRomImage B8D6A844-AB11-454F-B2AF-2D8BCF6F4DCA,PeripheralDxeInit B8D8CAF2-9E94-462C-A834-6C99FC05EFCF,ArmScmiClock2Protocol B8D9777E-D72A-451F-9BDB-BAFB52A68415,ArmCpuDxe B8E123B0-F23B-49A7-AE74-7E1636EB8F16,FjPasswordCtrl B8E62775-BB0A-43F0-A843-5BE8B14F8CCD,BootGraphicsResourceTableDxe B8E63775-BB0A-43F0-A843-5BE8B14F8CCD,SystemAcpiBgrtDxe B8FE3D49-DCF3-4CBB-8070-47B4F5A34559,GopDebugDxe B904772F-F8A1-4147-82FF-56CAF2D6E042,PlatformSecureBiosPei B90510C4-A6DE-4E45-A50C-A46CCAFEEF91,BaseBoardDXE B912F198-7F0E-4803-B908-B757B806EC83,AppleImg4VerificationDxe B913CF23-9B49-47AC-A7C8-EA6539502A40,ExtendOperatingAmbientTemperatureModePEI B91547F5-4D24-4EEF-8507-74DDABEB71AD,AmiSmmNvmePassThruProtocolGuid B91978DF-9FC1-427D-BB05-4C828455CA27,EfiSioControlProtocolGuid B921DC51-49D4-4C14-9089-931C2D6B92BE,AmdSocAm4RvPei B9237513-6C44-4411-A990-21E556E05ADE,EfiKmsFormatGeneric3072Guid B92FEC73-D902-4690-9B92-430E0E906369,AmiPspPlatformDxe B937BAC9-B41B-4914-BC32-72410400F9DE,SetupDataProviderPei B941CF11-E648-401C-92A1-342A70C6B742,DellSmbVersionManifest B94A1958-05F4-E7F5-4053-286F96ADB3ED,TrackPointAWS B94FC17C-579C-4AB3-BA28-678D1813D1D6,DellBiosConnectNetwork B958B78C-1D3E-EE40-8BF4-F0632D063916,EmuThunkPpi B95E9FDA-26DE-48D2-8807-1F9107AC5E3A,UefiPxeBcDxe B970D89B-6AF8-4B8B-9045-B06D8DC2C8B6,PdSolutionDxe B9720942-1FE8-4205-AD85-55326D91CAB8,SiInitPreMemGnrWs B97261AA-C9C1-4EFB-A2DB-A4EBDBC4E1A4,5GNicEFI B979746A-8C1F-4A2B-97E4-78E93A71A70A,EfiBdatAccess B97FCC2A-477F-4939-AEC7-EF4236D88E3B,SureStartPcdDxe B981A835-6EE8-4F4C-AE0B-210AA0BFBF01,RngDxe B9846521-FF99-4953-8FA2-85C9ADCCE5AF,PeiGfxDriver B98999A4-E96F-475A-99FC-762126F50F5A,SmbiosUpdateData B98BD3B2-EC40-4826-9547-16DCB6BFA60A,DellBcRcvExtractor B9A3F174-1B36-4AEC-99E2-F2855EB4C3DE,BoardInfoDxe B9A61AD0-2802-41F3-B513-9651CE6BD575,OvmfTpmDiscoveredPpi B9B038B0-E2B6-4AAB-9435-4165ECFED032,AmiTsePasswordPromptExitGuid B9B0F38D-1F27-4F46-9F44-42D694729882,AmdCpmOemSmm B9B13798-D409-4D58-86E5-B1836CBEF387,DxeOverClock B9B20B00-2FE5-8445-ACC5-8E29EF01A3E6,AppleMemoryTest B9B9D0B4-E65C-400F-90D5-0729012F32E2,DefaultsAndWmi B9C0BEEA-3F1C-45C0-822B-B0908F668F65,NTFS B9C1528F-B5D6-489E-B568-C4F0A9764D1C,FjGpioCoffeeLakeSmm B9C37931-F069-418C-9E19-31B0BC031887,LenovoPostValidatorPei B9C42F17-8179-6E98-B2B7-21865B1ACA3E,FTPMDxe B9C464F5-E8DF-49FB-8FE5-86DA958D8133,ASRockHDAudioDxe B9C47EEF-D7D2-4CC7-9BD2-88A7FED4938C,FjGabiLogoHandlerSmm B9C87A34-3FC6-41A9-AA66-CD011F75CB80,LenovoCustomizedLogoDxe B9CABA9B-E5C5-41DC-86E2-E7CEF87B81CB,SystemFlashCommunicationSmm B9CFEBC9-9CDE-4F0D-A0AA-BD7D017200F8,TdtPlatformPolicy B9D4C360-BCFB-4F9B-9298-53C136982258,EfiFormBrowser2ProtocolGuid B9E0ABFE-5979-4914-977F-6DEE78C278A6,EfiPeiLoadFilePpiGuid B9EC7CE0-2059-49A7-BCDF-C07D4CCC6E9E,DellFmpClassic B9F10C17-6CA0-40B5-9B44-6253CFC7D24B,GdbDebugAgent B9F2AC77-54C7-4075-B42E-C36325A9468D,LenovoVerifiedBootPei B9F5C05A-C8C4-4D1C-966F-1977EF2CA54D,AmdPlatformRasRnDxe B9F93638-35F5-447D-B908-A2B852AA0B89,LenovoSmbiosTcgDxe BA05B97C-8EBF-48B7-858D-4B0AFBF0D7DA,BiosGuardRecoveryWorker BA080879-3AF4-4639-9613-D1FC8ED8A669,EfiJedecNvDimmSmm BA0C203A-166B-4B93-9636-8327AB2BF71F,AmdErrorLogDisplayBrhDxe BA0ECDFD-A429-49B9-A961-11EEFF784C7F,OemPei BA102EAD-5308-4F9B-9E22-C1CE4DC44F49,RSAKey BA118F88-5B65-4584-9C5A-C2D087F6ED1E,IrsiRuntimeDxe BA15E887-ABF5-438F-B87A-3110F1C8ACE2,XhciPdoResetWA BA23B311-343D-11E6-9185-5820B1D65299,EfiHttpBootCallbackProtocolGuid BA23D959-EFCB-4340-B0A9-B33F9CF05CB8,PhPlatformPei BA24061E-B532-4375-A5E4-99C1CAE45D18,EcSecureFlashPei BA246BC7-7E2F-4AE4-817A-FFDE572E39DE,AppleSmc2 BA25E07A-E253-442C-90FF-B4C92FAD6990,UsbMassStoragePei BA26C482-C1DE-4B97-A8BD-160DFDB984AC,FchPromontoryGpioDxe BA28936B-4051-48CF-A5CD-B63D7BFCA84A,SmBusDxe BA2EF68E-3F4F-4532-909D-5C23220DF84B,DashPldmSmbios BA31025C-4AA8-4CAE-98CA-BA12C6BC7D78,SmmControl2Dxe BA320263-FFD4-4DA5-A617-D832193E835E,AmdRasRsServiceSmm BA33F15D-4000-45C1-8E88-F91692D457E3,MpInformationHob BA37EEEC-2B01-48CE-B3D3-AF6EC1893330,AmdNbioIOMMUDxe BA37F2C5-B0F3-4A95-B55F-F25F4F6F8452,IntelGraphicsPeim BA4100B0-A7D5-4AFE-B5CF-01FD0CD7B429,SmmControl BA4548D4-B207-4F68-B1D6-10AC7F9CF1C8,HddPasswordPei BA51887A-BEB9-45DA-8E37-98A6B46E7C58,IeHeciInit BA522681-CF67-49E2-925F-F60B32819039,FspInitNotify BA57B64D-4AD2-68B8-AB93-AF89654F7DBE,AmdBoardIdDxe BA5B13F3-8B83-4871-8C3D-44CE683EAC1E,AmtLibPei BA658945-DEE1-42B3-9FA4-BB6B22FB03E4,efi_pop_mid BA67550C-3628-4137-A53E-42660E081604,MePlatformPolicy BA67E259-F498-4404-A8E5-1479D24FFFD3,PlatformSxConfig BA6BADE3-B38B-49AD-AD8F-D6086F240E78,AsusApmDxe BA73672C-A5D3-11D4-BD00-0080C73C8881,EfiWinNtConsoleGuid BA7BE337-6CFB-4DBB-B26C-21EC2FC16073,SecCore BA7C38E3-6F1C-49D1-9CF9-5C67324EA40B,FjLidDxe BA7C46D1-9C5E-4FC8-943D-1A491F23FE01,AmiIso9660MediaGuid BA846D12-59AC-4E18-88FF-E04687552416,SmiCallback BA87DD62-AB60-46DE-8FD8-023510D52D11,gear12 BA929954-35B0-4DD3-90CD-9634BD7E1CF1,ResetDxe BAA1B6EF-F6B3-46DF-BDE6-40CD666F04EC,FchPromontoryPlusSsdt BAA9B7C4-2B4A-4047-B254-C12B42F00D67,CrisRecoveryApl BAAEAD09-02A0-4131-9E0D-BC529EF0FF2A,EfiTcgMpDriverHobGuid BAB4F20F-0981-4B5F-A047-6EF83BEEAB3C,EhciPei BAC76586-3515-420B-A1B7-235A716ECAAD,OutOfBand BACA647C-883B-4169-9E89-7910C060FFEE,GopConfigNex BACE07C2-8987-11DB-A59A-0040D02B1835,EfiUnixGop BAE29D7B-89BB-4223-AF76-96D0B3249B36,SsaBiosServicesPpi BAE2B0D3-4D14-467E-BD56-901E40EBA0BB,WlanLauncher BAE5596A-14DF-40FC-810E-BB2428009600,HpCmosButton BAE7599F-3C6B-43B7-BDF0-9CE07AA91AA6,CpuIoDxe BAEB5BEE-5B33-480A-8AB7-B29C85E7CEAB,FspGlobalDataInitPei BAF029A0-B2F3-45EE-8B52-D402177BE6B8,LenovoOsOptDefaultSmm BAF1E6DE-209E-4ADB-8D96-FD8B71F3F683,EfiEventUserProfileChangedGuid BAF3E67B-B175-49F6-84FF-75C354439CFD,FirmwareUpdate BAFCAE65-945C-466F-FFFF-FFFF8B5877A4,XnoteReportStatusCodeSmm BB00A5CA-08CE-462F-A537-43C74A825CA4,EfiMpInitLibMpDepProtocol BB11ECFE-820F-4968-BBA6-F76AFE302596,ArmTokenSpaceGuid BB11F12E-FEF8-49DE-8C28-748D64160915,StaticSkuDataDxeGnrwsCRB BB1A3984-D171-4003-9094-46AF866B45A2,IconPasswordLock BB1A61A2-6DB5-4BD7-8A98-7823C92B0A2A,FvbServicesSmm BB1FBD4F-2E30-4793-9BED-74F672BC8FFE,PchResetRuntime BB218CF7-A58F-414C-972C-6EA37FC5C862,OemAdpTypeDxe BB25CF6F-F1D4-11D2-9A0C-0090273FC1FD,EfiSerialIoProtocolGuid BB2800D9-67E8-4C69-BE5A-4E5AC6A9CC4F,QuantaIFDxe BB2F0636-B0DD-489B-ADB6-606FE3A47258,CpuHotAdd BB3B5FE5-4736-48DA-8C9F-76CE085F0515,FchSmbusPei BB3BF734-D640-4CF5-AFEA-CA8CFA6020D1,ASUS_USBFLASHBACK BB5B5907-5F8E-42AD-915D-5D98B52ED697,PlatformStage2 BB5F17A9-7757-45A7-BA24-7EF53EADE84D,AmdSocFp11StxhPei BB628AE0-CD4F-49FE-8D60-63186FD1E05B,EfiCacheInstallPpi BB62E663-625D-40B2-A088-BBE83623A245,EfiEapManagementProtocolGuid BB65942B-521F-4EC3-BAF9-A92540CF60D2,SataController BB676756-99A8-44E0-8128-AE2BABAD4C69,EcAuditLogDxe BB67A43B-C7AE-4299-A275-7526DC697735,PlatformStatusCodeHandlerPei2 BB696233-9D1F-4AC5-B057-41DDAD3B0CC1,OemAcpiMode BB6CBEFF-E072-40D2-A6EB-BAB75BDE87E7,TcgPlatformSetupPolicyGuid BB7119B6-EF1F-4056-9321-CF29CC7A2FBC,I2cPlatformDxe BB76F1EA-750F-4131-BB54-A880AD72C9E2,TimerWakeSmm BB801A52-C90F-4EDE-91B2-82520888CBC3,IntelgbeUndiDxe BB83F95F-EDBC-4884-A520-CD42AF388FAE,BaseDebugLibSerialPort BB87B31D-F366-47E9-885E-E816B09B97B6,DellAlertStandardFormatSmm BB8C2CF3-A5E3-49EF-941B-4A01FAC6FD5F,SmiFlashDxe BB906FAA-2A47-5C67-DD9F-6867FE125D4F,DGPU_GOP_2 BB9175E1-3E95-4B7E-8750-9D6AA34EB7F6,AsrockApmoff BB927FCE-C965-4A80-B4F7-D065D961EF2A,FjGpnv BB929DA9-68F7-4035-B22C-A3BB3F23DA55,SataControllerDriverGuid BB983CCF-151D-40E1-A07B-4A17BE168292,EfiMemoryOverwriteRequestControlLockGuid BB9C7AB7-B8D9-4BF3-9C29-9BF341E217BC,EfiPlatformCpuInfoGuid BB9D2F77-E1FD-4451-A946-6E868D216E4D,PlatformNotifyDispatchPei BBA544D9-4747-4C3C-9371-F1ACB6B13CA3,DellNbEcDxe BBAC47BF-CE55-4D4C-B728-A8866EE23000,I2CApplicationPei BBADFF1E-B651-4014-B476-D42919A839D2,UsbTextLookupDxe BBB31581-855A-44D7-A550-8A585D9B2DE9,BaseCryptLibRuntimeCryptProtocol BBB71DD1-B993-487C-839E-7A7536B49E46,FjPowerButtonPei BBB77CB9-762D-436C-AC40-8EE4901C3446,AmdPbsSetupDxe BBB810BB-5EF0-4E8F-B298-AD74AA50EF0A,EfiTcgWakeEventDataHobGuid BBC98A25-89B0-474B-AC85-8E524EB33E25,PchSmiRegister BBCB6F85-303C-4EB9-8182-AF98D4B3020C,Tpm2DeviceLibTrEE BBCF59BE-2613-4960-A0A4-639B4A970206,HpEdidOverride BBCFF46C-C8D3-4113-8985-B9D4F3B3F64E,FspBootLoaderTemporaryMemoryGuid BBE2668C-0EFC-46FB-9137-4F2DA8F419F3,ConsolePrefDxe BBEB4F87-720B-45D4-AA61-FBF6D4C54961,AmtMacPassThrough BC00DE36-935C-4577-8DC5-487F06B6DD12,DellSystemUsbPortConfigPei BC05DC37-9DA0-4050-9728-F34DDB01E200,BiosRegionLockEntry BC05DC37-9DA0-4050-9728-F34DDB01E301,SpiLockSmi BC0814B1-CCF4-4C6A-A906-9E08D5E14529,ODMServiceSmm BC09EAD4-8094-432D-A4C8-381F87D5F531,MpmSerialIoDxe BC0B9FB8-97CF-4B17-9A9E-F574E62CBCC4,Ip4BmcLanConfig BC0FE6BB-2CC9-463E-9082-FA1176FC67DE,EdkIIRedfishConfigHandlerProtocol BC114B43-8CB4-4FC6-862F-FE226BAD050E,HpRpsuSetupDxe BC13B357-3C0F-40C6-85A8-D18D269898C1,OSDSMIfunctionDxe BC1A046C-7DBD-41F2-94E5-D7595554CAF4,SystemFirmwareReportDxe BC1CFBDB-7E50-42BE-B487-22E0A90CB052,FspTempRamExitPpi BC28E0DE-66F6-49E6-B81F-AF4DD9A8AA15,POSTCODE0A_BASESMBIOS_DXE BC2B7672-A48B-4D58-B39E-AEE3707B5A23,Tpm12DeviceLibDTpm BC3245BD-B982-4F55-9F79-056AD7E987C5,AhciSmm BC327DBD-B982-4F55-9F79-056AD7E987C5,SmiFlash BC412D75-2729-4C3A-B193-5B9A588FF66F,FirmwarePerformanceProtocol BC468182-0C0B-D645-A8AC-FB5D81076AE8,UserInterfaceThemeDriver BC46CC5F-13F2-44CF-A598-CCA3444D4E2B,GpioExpanderPei BC510AE7-76BF-4FDA-88B3-14DE87B86711,EcrotPdrRwSmm BC52476E-F67E-4301-B262-369C4878AAC2,PlatformSeCHookProtocolGuid BC559DEA-2681-9345-9BE9-07850AF39E6E,ShaHash BC59E2E1-7492-4031-806E-C48DCCC3A026,FspInitPeim BC5F861C-86ED-417E-BB7B-6C026BCD755B,EfiFrbCodeProtocol BC5F861C-86ED-417E-BB7B-6C026BDC6523,EfiSelStatusCodeProtocol BC5FA650-EDBB-4D0D-B3A3-D98907F847DF,PeiBlockIoPpiGuid BC6102DD-3CC7-4B86-9A2C-4E125CABDF3A,FchKunlunDxe BC62157E-3E33-4FEC-9920-2D3B36D750DF,EfiLoadedImageDevicePathProtocolGuid BC664EF6-4C70-4FE4-B336-83E2FC47B697,DellEpsaBin BC74787A-BE99-4A2F-8C9C-C6D7E5C77AD3,BoardUpdatePolicySmm BC79959D-47E5-47DE-8E8C-49DE89B1FD9D,FjDeviceFirmwareUpdateProtocol BC7A1133-4C66-C6BA-B4D8-EB9FEFB9F146,AmdSocSp3r3CpPei BC85572D-F297-4D9C-93FE-DD9226C14591,DellSetupSerrDxe BC8C4A18-E784-42A7-993F-88BCE13247C5,SupplicantDriver BC93AC24-BBAA-49DE-8EB5-2396F87929E0,AmdNbioAlibRMBDxe BCA793DC-6532-4BEF-96B4-FC297D1FEA98,DellPciBusPei BCABB6DD-3E9F-47E2-B8FB-10B39AF6342C,DellDaTaaMac BCAD34A1-DEB7-4FFC-90D8-B0643BD8271A,AmtMacPassThrough BCAF98C9-22B0-3B4F-9CBD-C8A6B4DBCEE9,EmuSec BCB59C90-DC86-11DD-AD8B-0800200C9A66,SystemAhciAtaAtapiPassThruSmm BCB93998-0048-4E9E-9494-46BEDF8D8A06,PchSmiDispatcher BCBB3912-29FA-4B25-B619-3C0D739FEF51,DellHotKeyHandlerDxe BCC87E0D-86D6-4D4D-8040-2D983D368BD1,EmuGopDxe BCCAD460-4F7D-4E51-8A5D-3BBA236D9EBB,AppleBootBeep BCCBF64A-5231-426E-AE37-4CC70F15813D,SetupLanguageDxe BCCDE9D2-BABD-44F5-BB3F-D7B16174F64B,AsfDxe BCD9DF8C-BE89-4007-986F-FA401A4AF94E,Int15PanelColor BCDAF080-1BDE-4E22-AE6A-43541E128EC4,EfiIsaHcProtocolGuid BCEA6548-E204-4486-8F2A-36E13C7838CE,FpgaSocketSetup BCECAD77-6299-415D-AE48-733C45476891,DxeWifiManager BCED1375-8E68-4D9F-B8B4-37862B22FA6D,SDPlatformInitDxe BCF5F0BD-BF2E-4CFA-BE94-43DDDEC445B0,FjMemResizedLogDxe BCF94D6E-86D9-4A87-A446-B21B803BD140,BootDeviceInfoSmm BCFEEAA3-F3BC-4196-B9A6-AE569A6C0033,SmuV13Pei BD0ABB5D-A29F-4001-A3CA-98485EF7F224,AcpiSmmPlatform BD0B5ED6-468C-4372-AE52-47BA08F81A1F,RepSetHandler BD18369D-C242-45CA-82AD-138AC2E29BAB,EfiSmmIoTrapDispatchProtocol BD1C1A1C-04EC-47ED-8AB7-D19319C64138,FastBoot BD1DC9B4-C223-4FF0-9A41-9B0FB814A165,RealtekLanDxe BD22D0BF-4818-4EF8-BDCD-B3478F52A802,HeavyPciBusDebug BD26CDC9-A092-462A-877A-5AB6ADCE4812,EfiPlatformCpuProtocolGuid BD2B77A3-500F-41B4-93F9-637EC6C23DB7,SmuV11PeiVMR BD445D79-B7AD-4F04-9AD8-29BD2040EB3C,EfiLockBoxProtocolGuid BD446386-7F8A-4EE1-A014-8D3BAB92B4E9,EmulationPlatformInit BD44F629-EAE7-4198-87F1-39FAB0FD717E,FspEventEndOfFirmwareGuid BD45A258-C7BD-4BF0-B254-D0D45E02F877,DellCmosManagerDxeSrc BD463212-701B-4E34-BEC1-F3FB7602F8AA,IsaHostControllerDxe BD4759AA-5104-42A3-BC64-785920E86C99,FchProm21GpioSmm BD4E9C29-855C-4BD8-8173-3F10B617F250,FjDisableDefaultConfigOrMfgModeBin BD6736AC-B126-4FEA-9D1D-174D4A899F22,SystemErrorMenuDxe BD67BF44-CAB8-4A1B-A3F9-FC3CE2D0E764,DellUsbMassStorageDxe BD6C3E7A-ECA5-4C3A-BD11-C705F9ACEF16,FileExplorer BD712601-082F-4C59-8677-2C8A3C297948,LoadFileOnFv2 BD7E9A27-D6C5-416A-B245-5F507D95B2BD,WinNtBusDriverDxe BD809BFE-1E29-4CA0-AE2C-1C7C8E79A00C,WarmResetFlagPei BD839E54-FE54-4B64-9FA3-0A806B1042BC,HddDynamicSwitch BD85F7FA-8ADF-42F8-B400-BF46E5E8ADC7,PxeDriverI219 BD87394D-465C-40A9-9657-FBED21789860,BinConvert BD87C542-9CFF-4D4A-A890-02B6AF986F34,PeiOverClock BD87C547-93FF-4F4A-A890-02B1AF986F34,OverclockInterface BD88EC68-EBE4-4F7B-935A-4F666642E75F,EfiAcpiEnDispatchProtocolGuid BD8C1056-9F36-44EC-92A8-A6337F817986,EfiEdidActiveProtocolGuid BD9320EB-7BB9-4AED-A682-CF4F96BE244C,IntelMchFieldAcpiTables BD996F6E-7767-4827-9208-B1C299000E4A,PspResource BD9CA80B-940E-4B55-88A4-BB3A3CC99863,DellStatusServiceSmmInit BDA39D3A-451B-4350-8266-81AB10FA0523,PeiDxeDebugLibReportStatusCode BDAD7D1A-4C48-4C75-B5BC-D002D17F6397,AhciRecovery BDB38125-4D63-49F4-8212-61CF5A190AF8,EfiUserInfoAccessSetupRestrictedGuid BDC8E6AF-D9BC-4379-A72A-E0C4E75DAE1C,EfiHttpServiceBindingProtocolGuid BDCBB03C-545E-43C1-8AA8-F058C4FA81A8,DxeGpioControl BDCE85BB-FBAA-4F4E-9264-501A2C249581,S3SaveStateDxe BDCFFDBD-AAC1-4704-8F49-EC25064324C0,DellSbSmmProtocol BDD4822C-5A9B-4673-9ADA-50CAC7246FCE,FjFlashServiceDxe BDD56254-6890-446D-9171-3C370A584B2C,ITEAcPowerLossSmm BDE92229-F9A5-4897-81E4-8BAB6792A395,DellDtLegUsbPolicy BDE97C22-D8EB-4625-BC36-773457AE25DB,AMDGenericGop BDF8B095-EDE5-4250-B577-C5CB5515B7AE,AmdCpmABRecoveryDxe BDFAAD26-4D7F-44A6-8719-375ECB4AA407,DellPxeBaseRom BDFCC092-36A4-4668-BAFE-EC8F1B02A28A,DellMultiFuncDevConfig BDFD9E08-3113-4259-86ED-58DD830535D8,StorageFlushDxe BDFDE060-7E41-4EAE-AD9B-E5BBA7A48A3A,EfiDevicePathPropertyDatabase BDFE430E-8F2A-4DB0-9991-6F856594777E,SystemEhciDxe BDFE5FAA-2A35-44BB-B17A-8084D4E2B9E9,FvbServicesRuntimeDxe BE0FEABA-3443-4919-9F3A-2D4216329EA9,WinNtAutoScan BE189D38-C963-41CF-B695-D90E9E545A13,UfsBlockIoPei BE216BA8-38C4-4535-A6CA-5DCA5B43ADDF,SmiVariable BE2565F8-DC13-45AC-AB4B-08B4FEDE5A4D,ComputeHDDPHashProtocol BE2DB903-B7C2-4ABC-8F64-B06E705D27E7,PostWave BE2E5EC2-1450-4A9A-B364-4F777B42216D,SwSmi534D0340 BE2FEDC4-2F51-4110-9327-36FAB7429AAB,EfiPlatformTypeLightningRidgeEx_8s2nProtocol BE4425A1-18DB-47EF-9273-273E95007014,EfiPlatformTypeNeonCityEpecbProtocol BE45377F-F862-42BD-8886-314C67BC16E4,LfcWmiServiceSmm BE499C92-7D4B-11D4-BCEE-0080C73C8881,EfiDebugAssertProtocol BE4F6DF4-5CB5-4658-91C8-AD8106B8150F,FjManufacturingModeSignOn BE644001-E7D4-48B1-B096-8BA047BC7AE7,EfiHtBistHob BE6B4F66-5B89-4DC2-9102-A178C8621CF2,UefiBootMarkerProtocol BE6D9471-C8BF-4B35-BEA7-7687CDF7E142,AmdMemFp7Pei BE731247-5FA2-4D5B-9DB6-5385CCCD59E1,UsbOcUpdateDxeLightningRidgeEXECB3 BE733C7B-07D9-4401-A08E-F475B0FA11ED,SystemPowerOnEvent BE7ABA7F-938F-48D5-A57E-E55E84364EE3,StaticSkuDataDxeGnrwsERB BE7FDB92-E3BE-4517-BD4B-C6FCBE00DAA1,MpDmaBrhDxe BE8A2412-E62A-422A-870D-6185B7A32271,OemEcVerUpd BE9BE8AE-EBBB-450F-962C-BE1938E3FEF9,F2HotKeyAndCorrectPassClr0199 BEA143EC-5DEC-4C6B-A631-2C2E27759487,DreamTeamSleepSmi BEA1E7E4-9C23-4436-B3FD-4420DC6778F8,USBCSecurity BEA26CCC-CE96-45D2-964F-509B1BA17A81,FjNvramSmiDxe BEA39084-044A-4C88-8763-2BFAFFA8950C,LTEB BEAEFFE1-0633-41B5-913C-9389339C2927,RedfishPlatformConfigDxe BEB07103-05F9-4B5D-89AF-29471D593CD5,S5Charging BEC14E72-A956-4676-87E7-B092087F5F6C,FjIntrusion BEE0DC09-B048-476D-A0BB-ACF9B4F65C41,DellUsbKbPei BEE9B6CE-2F8A-11D4-BD0D-0080C73C8881,EfiWinNtCpuModel BEF1437F-8AEB-436C-8D7C-08BA5FE449AF,FjDtSetupServicesDxe BEF4D2B1-C53B-4933-A3BA-2A422C89A439,AmiFriProtocol BEF5ED27-4E93-40F8-AE11-6B41E1D4BCA9,AbtEraseDxe BF00D49C-7784-4A06-9F5C-12FB9E68C72B,FjGabiFlashCoreSmm BF0A78BA-EC29-49CF-A1C9-7AE54EAB6A51,EfiMtftp6ProtocolGuid BF13D47C-7671-414E-B3EB-1784073EC5FE,EcInit BF27A268-F369-43A2-B295-242DEE7F3C29,DellPowerButtonDxe BF2AE378-01E0-4605-9E3B-2EE2FC7339DE,FmpDxe BF3C55E3-2B74-4722-8105-62053C27CFBC,PowerOnHddIdleNotification BF420205-644E-4718-9C39-679B7854F446,AmdSpiFvbSmm BF43D37C-7071-414E-B3EB-3C98D08AA32E,EcInit BF43D37C-7078-414E-B3EB-3C98D08AA32E,FjSysmanSmcsUpdater BF4B9D10-13EC-43DD-8880-E90B718F27DE,EmbeddedDeviceGuid BF5543BB-17F8-4C51-B4AD-59C0E9D2D48D,OemNbTypeDxe BF639845-D046-43F9-ADBC-D0086AE25871,DellSmmThermalDebugProtocol BF66FDF7-F64C-4B11-8AB7-F843AA2A8BEA,AmiCapsuleHob BF6F4946-F369-47E9-9084-230C7F9E737A,BCdpfLauncher BF708ECD-A953-442A-FFFF-FFFF748E01AE,XnoteReportStatusCodeDxe BF73D2BF-AC8C-4D83-A3B9-4A0F420074B3,LenovoStatusCodeMeDebugDxe BF7862C9-CDFF-4261-8385-B61916CD2E9A,EmmcDllTuning BF7D4885-BEE7-48A4-BEC3-2E7160A48A0D,FjGabiFlashCommonEcRegionCtrlDxe BF7D48A5-BDE7-48A4-BEC3-2E6160A48A0D,FjGabiFlashCommonGbeRegionCtrlDxe BF8764D9-AE9A-4EB8-AAE3-04E5F675D866,FmacDriver BF885A32-2ACF-495D-A7BA-D3F92FA96289,DellXhciDxe BF89F10D-B205-474F-96E3-7A7BB1B4A407,VgaClassDxe BF90FDDC-F163-4FC6-A5A3-D0FDC8F7CE68,AmiUpdateCspResources BFA8CC03-C1CD-439E-BCF6-14207A2CDE94,PowerEfficiencySync BFB01142-3061-48A4-922F-9D246E201120,AmiTcgResetVarHobGuid BFBEDBD4-1B7E-42F5-A528-4351E860F120,S3SupportSmm BFC2B71F-ACBF-4E54-9B19-B6EEB400507B,AmdCpmPmfDxe BFD59D42-FE0F-4251-B772-4B098A1AEC85,ActiveBios BFD7DC1D-24F1-40D9-82E7-2E09BB6B4EBE,EfiDriverConfiguration2ProtocolGuid BFDCAD58-3630-4300-A2C6-0DB46CECA482,OemGlobalNvsDxe BFDCAD58-3630-4301-A2C6-0DB46CECA482,OemGlobalNvsSmm BFE13A90-C143-43C2-9704-71E39E6D43AE,IntelVtdSmm BFE205C9-5B17-4F8F-9375-89614AF8E199,OEMDXE BFE9131B-0F64-4D0F-94A4-0D830DB928A3,MeSmmProtocolThunk BFEE74C2-60BD-467B-9261-B72A881E49EE,LenovoMailBoxSmm BFFAC9BC-1C98-40CD-8692-1F97D163EBB6,UniqueSleepStateBlinkRatesSmm C007C321-E87E-46B4-A5B5-C33E845D89EB,WarmBootDxe C0092746-B67B-4D02-FFFF-FFFF78E038D1,XnoteAcpiPlatformDxe C0113C45-1638-4F3E-BC29-95CD8FB72005,OemNvemDetectDxe C01766EF-C809-4BD0-92D0-5E55A6F3E6F5,VirtualSerial C020489E-6DB2-4EF2-9AA5-CA06FC11D36A,EfiAcpiVariableCompatiblityGuid C026632A-073C-444A-AD9C-5E963FEBBC0F,FchSmmDispatcher C02B0573-2B4E-4A31-A31A-94567B50442C,PchUsbPolicyPpiGuid C02B908F-E892-4502-ACB7-545319989F6F,RealTimeClock C034A2CB-1190-4638-9DDF-6F297824741E,TestPointStubDxe C03DDD47-DC0A-4319-9FEC-44B078C242E6,AmiTseOemPortingVar13 C0512F00-0181-48C0-8B71-90504B8F991E,EfiBootNameLabel C0557EED-9A89-4770-9626-FCA051F2BA09,PerfTuneWdtProtocol C0571D26-6176-11E9-8647-D663BD873D93,DebugInfo C05A042A-7E6F-410A-9177-E288D13C3C34,PsrControlDxe C05ED2D1-5DDE-4B6E-A1AE-0B306ACB42BC,TrEEDxe C0622982-A30A-48A5-8150-5ABF4191056F,LEMBootModeDxeSmm C0645FCC-5000-4BCB-9AE0-4D46796F1390,PdHostInterfaceIteSmm C067DBFA-2C8B-4A7C-921B-28DCB25D9EDA,AmdNbioEarlyPhaseRPLPei C06C5A03-704C-45D6-808E-4D9E867897D3,AppleEffaceableLocker C07119A7-98AA-4DCE-B347-9608634AA06A,DiagnosticsConnection C0734D12-7927-432B-986B-A7E3A35BA005,LightPciBusPciBusDxe C0757D65-3F84-2592-AEB9-33D19BABCCF7,TmpDecFileHolder C0757D75-3F84-2592-AEB9-33D19BABCCF7,TmpDecFileHolderDxe C076EC0C-7028-4399-A072-71EE5C448B9F,EfiCustomModeEnableGuid C07A1EB5-5C04-4100-817B-0A11BB5F15DC,CppcDxe C07CCCFC-B4BF-4A30-A25F-1F57C0522629,FdiskOemSmm C095791A-3001-47B2-80C9-EAC7319F2FA4,EfiFirmwarePerformanceGuid C0988B6D-C3F6-4C25-B565-ECB116912411,OemDisplayRule C09C81CB-31E9-4DE6-A9F9-17A144354245,AdvancedPkgList C0A02971-C45C-47A6-AAAA-3F089A7B7A50,DellRmtPlatSiDxe C0A235DB-17E7-448A-B8E4-2E29FDFBB158,LenovoEventLogVariableStoreSmm C0A2EC40-7CA9-4FF7-A17C-08B81D70DE80,ECSmmFramework C0A8BD98-DED0-4313-9970-6FE2794CD157,AmdCpmOemInitPeim C0B9206E-B6AB-4DF0-B3D6-286AC76698BD,DellD010AlegacyVideoRom C0CC43BD-C920-4064-935B-93B447379470,PowerManagementAcpiTableStorageGuid C0CD2D36-A81B-450D-A502-3767DFA29826,EfiPlatformTypeNeonCityEprpProtocol C0CFEB8B-6EE1-443B-BCC9-854E7C9B416D,LenovoSystemStatusCodePort80Smm C0D5EC34-13E4-403B-9643-54AA7F72259D,SystemSecureFlashAuthenticationSmm C0E0A489-FB6C-4509-B1B3-C7119D489502,XnoteAcpiNvsSmm C0EBC974-B5B2-4725-9091-9F45578F213C,AddressTranslationDsmMemRas C0EC00FD-C2F8-4E47-90EF-9C8155285BEC,TcgNvramHobGuid C0EE640C-B469-4EB1-8F11-46ACA1427307,WmiRmtApiDXE C0FDBE28-4E64-44AB-9F7E-F33140E4FA2F,FanTableDxe C10194E7-DEB2-4AF4-9EEE-BFFDE4D7D4C7,TimestampDxe C10A9E4D-BDB4-4B1A-82CC-D901F86F5739,DellSmmDiagLeds C10FB8CA-55A8-4132-8263-3D5B82359F04,AmiHidServiceDriver C112BF94-5CD0-45EC-AA7F-D3DEDAAB765F,OemWSsdtDriver C1172A76-6A56-4C09-B1FD-C29F94DA1380,AmdMemoryHobInfoPeim C1176733-159F-42D5-BCB9-320660B17310,UbaConfigDatabasePpi C118F50D-391D-45F4-B3D3-11BC931AA56D,DsdtAsl C11B7A48-BA61-48B4-9198-48972B538007,SystemSdLegacySmm C11CCB12-C17A-4266-B47D-18FD101811EA,HdpBackupToNvram C128CADC-623E-4E41-97CB-A7138E627460,BaseFspSecPlatformLibNull C12A7328-F81F-11D2-BA4B-00A0C93EC93B,EfiPartTypeSystemPartGuid C12C4E6A-BC3D-4A91-8299-7E0A4D5B5289,SmcOemID C1300EE7-4BF6-4164-9FDC-DC3E8EFB7FBD,AmdNbioPei C13111A8-6BC9-11E5-8797-001ACA00BFC4,BlueFieldDxe C13C549F-2CBB-4868-9EE4-97D5DC69FA47,OneTimeBootDxe C1443436-B954-43BA-8278-C1E442C21539,DellFlashWriteProtect C144476F-F118-4C84-A936-417C8AFBD437,GenericUSBDebugger C146B184-8891-49D3-B734-CACDD84FC942,ATH9K_UndiLayer C153205A-E898-4C24-8689-A4B4BCC5C8A2,PeiCachePpiGuid C1544C01-92A4-4198-8A84-778583C23621,EfiPxeDhcp4CallbackProtocol C162FF6A-F5A5-4DB7-9ECF-80EEC2501768,UtilityPartitionDxe C166B802-190F-4BFE-B8CD-EE53971A063C,PeiMeCore C1685343-EE19-4BAF-B47D-5C995DF7FA2F,StaticSkuDataDxeEVB C16E2B26-B1D9-42BD-9002-BAB27F18A573,PspFarCheckDxe C171DBBB-3AF7-408B-954E-789BFFD8CD2E,AsusBackupPei C178E415-6E49-469A-B73D-F6C5EB4101EB,AmdSpiRomProtectDxe C181D3D6-ECDC-45D8-B586-9EA1851867E4,PlatformStatusCodeHandlerRuntimeDxe C182FB38-0FE4-4BEC-9270-A273E1EF2C80,AmdXgbeWorkaroundDxe C184562C-6864-40A3-A081-C8D35E82B920,WinCeGuid C18B8105-AB89-44DE-8D37-50B31FAE5D1E,SgTpvAcpiTables C18BF867-0B3B-4C40-811D-242100665912,SystemSdLegacyDxe C194C6EA-B68C-4981-B64B-9BD271474B20,PchSpiRuntime C19783FD-E21E-451A-830E-C7CB23DB52CC,menu_mid_left C19A6517-3FE4-49D8-94B6-C4D77350AA44,FlashUtilityDxe C1A0DA4E-2836-4B7D-A5D2-B67A2242438C,OemGpioEarlyInit C1A69A12-8653-4FDE-A215-48FCD95288C3,PlatformSetupDxe C1A74056-260E-4871-A031-E645A65B6E11,EfiExtendedSalVirtualServicesProtocol C1A78A9E-11E8-4910-91A5-FE48F5F4C20D,DellEpsaDxe C1AABE42-2CA8-4361-B37A-1466520E960E,FjNvsAreaRt C1AB12F7-74AA-408D-A2F4-C6CEFD179871,EdkiiMigratedFvInfo C1B135AA-7ACB-45D0-80B7-862B8D5F0CD5,AmdFabricRvSmm C1B2415B-3D28-4766-AAE8-EFBEF3BF1451,AmdSocSp6StpDxe C1C31CFA-911C-4324-AB4C-79E8E6DE48E8,LEMDisposalProcess C1C41626-504C-4092-ACA9-41F936934328,EfiCertSha256Guid C1C418F9-591D-461C-82A2-B9CD96DFEA86,LegacyInterrupt C1D5258B-F61A-4C02-9293-A005BEB3EAA1,PngDecoderDxe C1D61CB0-78B0-42F0-BC3F-F54DFEC65DB2,PartialMirrorHandler C1D7859D-5719-46C3-A298-D071E30264D1,AcousticSetupProtocol C1DBFAE7-D47A-4D0D-83B5-9E6F4162D15C,EXFAT C1E63AC4-D0CF-4CE6-835B-EED0E6A8A45B,EfiPaddingRsaesOaepGuid C1E6791D-F35B-43EF-920A-BE06BA7F86A1,AmiTcgPlatformPpiBeforeMem C1E9FFFB-5557-4CB5-A5F5-1FBD902A74ED,LibIIO C1F7EE7A-4D23-4287-97BB-C0FD265D09BF,OpromUpdateDxeEldorado C1FBD624-27EA-40D1-AA48-94C3DC5C7E0D,SbPei C1FCD448-6300-4458-B864-28DF015364BC,EfiPeiLoadedImagePpiGuid C1FF0D4A-15B0-498E-9B7E-924DC0317849,semaProtocol C20E9728-D613-4171-82A4-B26C4D8A03BD,OCPCtrlPei C21561DD-2349-4B9E-94D0-5627FCD22A69,FjPostScreenMfgAcCheckDxe C2199640-29C0-4F0A-990C-71BF9B14430D,DellSfpDxe C21CF0E2-6ABC-4C3B-9DE6-3ABA8C3F83C9,DxeIchSmbus C22077A1-5F9B-4891-9D1C-DEAA3632E921,DellUefiBootInfoDxe C2223A0B-80D3-4C35-891F-BD0CC4E990F0,LenovoSystemFvFileLoader C2239ACD-21D0-4CB0-B7DB-6D35EE7B0CC1,FirmwareRevisionSyncPei C2281410-58B3-4F74-9458-22901ACEB901,EepromInterfaceCoreDxe C22E6B8A-8159-49A3-B353-E84B79DF19C0,VARIABLE C246FBBF-F75C-43F7-88A6-B5FD0CF1DB7F,AmiDbtFileGuid C24E74B6-4155-4E64-9A91-C1E44F5D0BBE,OemGlobalNvsSmm C26B2DBB-83B2-4AF2-BBD7-D4558036DE11,EcCapsuleDxe C2702B74-800C-4131-8746-8FB5B89CE4AC,EfiSmmAccess2ProtocolGuid C27B193A-D076-4AC6-8DA1-7AC67B4ACA06,ProjectPei C280C73E-15CA-11DA-B0CA-001083FFCA4D,EfiAuthenticationChapLocalGuid C282E903-24E5-4418-A978-A7419249C9B0,SmmTxtConfigLock C2891AB9-9D96-475D-BE55-9EDF18F4D5EF,UsbIrq C2922FC7-D114-47F1-8AF9-A4C0966683D1,PriorBootSmm C29602C5-1D88-45DA-A332-55F3C693D427,UsbOcUpdateDxeArcherCityModular C2998CC8-A0AA-46E6-A634-EE32BF113188,AmtDriverPeimPei C2A743FE-9951-4299-9817-71DB147570D9,SmmPlatformDxe C2AD1A7F-D9DF-4638-8DAC-015996C88857,ScPolicyHobGuid C2BE3FBC-0EB0-4BBD-BE9A-3202481B76B2,SmbiosDataUpdateDxeBigPineKey C2C0E2E1-CBDB-454C-8F27-96ACEE196367,BctBaseSmmZP C2C79FD0-313C-4C4D-B9F1-ED26F00CA955,XhciDxe C2D38A48-D3AC-43DA-A484-17F980864DEA,AmdHspFtpmPei C2D52983-0B1B-4C98-97F7-F756C5370763,TimeAlarmDevDxe C2D52AC9-7C0E-47F3-8738-865B3F3BCF99,AmiPciPlatform C2E5D736-0771-42AC-B99F-1B7F1CA5610A,FileAccessPei C2E5E29C-E39B-4E8D-9909-E00A145359FD,HpFlashMe C2EF28BB-C6BD-4CB6-A3A1-BF6BB7EDA9F3,SecureBIOCamera C2F1BD4E-9FEE-4079-909B-C683A86750CC,FchHuangshanSsdt C2F9AE46-3437-4FEF-9CB1-9A568B282FEE,FspSecCoreM C3068C28-3579-4670-B38D-2E21AD057993,PlatformHiiAdvancedDxe C3069C81-6717-4FB6-B646-04214894BAB4,SmcSwSmiFlashDxe C30792A9-10F1-4B0E-9AF6-C95CD8B027CA,FjLanReInitPei C30ADC21-4AA5-4313-A7E7-53395B42BEAB,AmdCpmDisplayFeatureSmmBr C30B94E3-C8F2-4AB0-91AB-FA8DF621B1C9,MnpDxe C30FFF4A-10C6-4C0F-A454-FD319BAF6CE6,IntelBootGuardBootPolicy C311C600-84E9-4F1E-BF44-BF36E3415158,LenovoMailBoxPei C3158ABD-DB62-460F-B64C-FC258BB94A83,BiosLiveUpdateDxe C319F914-34A4-4845-98C1-1689B98C2C13,FjSlp1Support C31A6189-639A-458B-B040-D7D506CA8F4F,GetHostByAddr C3253C90-A24F-4599-A664-1F8813778FC9,ArmGlobalVariableGuid C3274B63-ADE0-414C-BC43-12AB926C634B,IdeBusPei C32A66D5-D8B7-2640-B768-082C8F083C37,ThunkPpiToProtocolPei C32B1741-9035-4935-AA2F-3E49ABC9D77F,HpThermalDiagsDxe C358B1F8-8A88-40B6-89BB-28ECD6EDDB24,PxeDriver C35B1E30-30F0-4F14-B603-28556F14F874,DellDtDevCountsDxe C35F272C-97C2-465A-A216-696B668A8CFE,UserProfileManagerGuid C35F9520-5791-4667-ADE4-1CFDA837722D,AmiSmiVariableDxeDriverStarted C37297CC-3FD9-4026-9890-7A1628184620,EcIoPeim C3745B97-5133-4BF7-8185-663617B95EBF,UsbPwrCtrlDxe C3811036-710B-4E39-8CF1-0AF9BE3A8198,TimerDxe C384EED1-B17A-40E4-B0C9-BE86D8B4DE40,KEMhResetBtnPei C38D9312-05CB-48A8-8D3E-13643D686EA3,MtlPchInitSmm C38E6D34-5A7F-4BF9-BE57-94DD30380276,EfiPccardSsProtocol C38FB0E2-0C43-49C9-B544-9B17AA4DCBA3,PowerManagementAcpiTables C3944F59-4029-CCEB-AE0D-D4A6B479924F,UsbPortConfigDxe C39B4C90-CB56-49BC-9534-012F69A1C2CC,UuidPeiInit C3A657D6-5FD4-4BAC-BEDE-0EF613750870,CrashLogVariableUpdateDxe C3B95ACF-4ED2-8462-AA52-788415A61C4B,GpsOnWwanSmm C3C242D1-0103-4C74-9A19-3C5C3B47EBCE,DellBiosAttributesSmm C3D69D87-5200-4AAB-A6DB-2569BA1A92FC,Tpm2DeviceLibRouterDxe C3DFAEFE-D237-4A20-8BBF-5444FDE098DE,FjPostScreenMfgFirstPowerOnDxe C3E36D09-8294-4B97-A857-D5288FE33E28,EfiBiosIdGuid C3E69EB2-0429-4BD6-AE4A-8CA02FBACC2E,AdvancedAcpiDxe C3EE3EF0-63E6-4F59-A437-AFA63C46C835,SmmAslSmi C3EF34B6-057D-4614-B35D-FD4384FA2391,AmdFabricRplSmm C40DAA42-6E1D-4F6F-96F0-5E17BC8A1D4B,AmiHeciDeliverRuntimeDxe C40DF81F-7436-4661-B645-A933B5D2F3C1,AsusFWUpdateInterface C41459C2-A281-40D3-B30A-2B9DFF3F3DA0,DellSaveMemoryConfigDxe C41E9862-D078-4E7D-9062-00E3FAC34C19,AsusEcPei C41F8C82-B3E6-47E0-A61D-0F9E429E6996,DebugCommunicationLibUsb3Dxe C42419BC-F9DF-4450-983F-1AD35509D2BC,DellAmtConfigMm C426C295-9829-441E-931E-9CE35E3F9FE6,UiThirdPartyApp C42DD02B-BB83-4118-8F16-31011415A63A,UserLEDCtrlPei C4331752-8BAC-4F2A-A9C3-418ADFB033C4,DellSpiPartWinbond C43E2CF0-BEDC-461F-AACD-A4FA466EA382,LenovoTpmConfigPei C4408AAC-281F-4C4A-BE99-2E5C56BCC16D,OdometerInitDxe C44763E1-A625-4582-ABE3-9C5329C0CD62,Common_LilySmm C448F450-D9D2-4BDF-AC47-6EB2A225D54B,AmdOemRasRsDxe C4491F51-66B9-4590-95E4-E2B4AD777703,HeciSmm C45BC25F-3937-4FC4-AC79-BBE8BD3E5F97,AdlinkBSCSmm C463CEAC-FC57-4F36-88B7-356C750C3BCA,UhciPei C464322E-3DC4-49AD-B9FD-AF1B56B2249B,HwAssetDxe C468B382-4550-4909-AD57-2496141B3F4A,AsrockRaidX64 C46ACCBC-5765-40E3-87D2-82A568AC991B,PcieRpConfigGuid C46CCD44-D365-4C2C-9BDC-42E61B57E23F,FjI2CProtocol C4700DAB-41B6-4FDF-CCAA-E39736FFF2BA,I2cPlatformSpecificDxe C47D89B9-B9DC-4CA0-BB20-5B06EBE57A1D,IpmbDxe C48D651C-9D0E-4CE7-AD39-EDD1AB836B30,AmiTseAfterFirstBootOptionGuid C49189F3-1D4C-4AD7-A439-D013AB720931,PerfTunePpi C491D352-7623-4843-ACCC-2791A7574421,DefaultdbFile2 C4968F6A-5CCC-4BDC-9E86-B7A65A2EEAF1,AmdCdmaDsmDxe C4975200-64F1-4FB6-9773-F6A9F89D985E,SaPegDataVariable C498F432-B8B7-44BF-86D3-7B36F2EC1390,IFWIVersionHobGuid C49A3700-A175-4451-BAE1-3E5F91D0D46A,DellAmdCbsApcbUpdateSmm C4A58D6D-3677-49CB-A00A-9470765FB55E,AddPerfRecordProtocolGuid C4B4A7FB-D2E2-422C-4179-E5D46B1E1AA6,OneKeyRecovery C4B50EB2-ED16-4283-A5B0-A7341C3F997B,ArmTrustedMonitorLibNull C4B769CD-2876-41BD-ADA2-79677F9697C3,aDefaultPei C4B8C7FB-D2E2-441C-BAD6-E5D46B1E1AA6,L05DxeServiceBody C4BBBAE3-F891-4D4A-90EE-0F05D932C151,FpdtPei C4C7A1A9-D639-442D-B358-09D06AE18BFC,DellDaAssetTag C4CC0DE8-0687-4422-99C1-65351A5D5F95,UserDefaults C4D1F932-821F-4744-BF06-6D30F7730F8D,Ps2KeyboardDxe C4E83158-DE62-4A33-A381-75A4C0EED568,PhysicalPresence C4EB3614-4986-42B9-8C0D-9FE118278908,CrystalRidge C4ECA0B2-5277-4F2B-3ECB-E4175C94812E,ExtraS3Memory C4F2D007-37FD-422D-B63D-7ED73886E6CA,IdeRController C5046EFD-7BC3-4206-987C-32DA45026E6D,PlatformInitDxe C5068BAC-A7DC-42F1-AE80-CAA24BB4904B,PttPassThruPpiGuid C50842D6-B284-4F3D-904B-E2DC83E00AF8,EarlyConsoleOutInterfacePei C50B323E-9075-4F2A-AC8E-D2596A1085CC,EfiSmmIchnDispatchProtocolGuid C5149B43-AE85-4F53-9982-B94335D3A9E7,EfiRngAlgorithmSp80090Hmac256Guid C516673C-6C71-4F0E-83B5-57FC662376EC,LibPosix C51711E7-B4BF-404A-BFB8-0A048EF1FFE4,EfiIp4ServiceBindingProtocolGuid C5184932-DBA5-46DB-A5BA-CC0BDA9C1435,EfiHashProtocolGuid C522E695-93FF-4AC7-8220-F849C68C538F,AsusApmPei C53B2402-0073-4C8C-B4ED-99F362742D24,CrbSdev C53C63B4-39C1-4185-BC9B-0FE9722A0C60,SmrrEnableHobGuid C5440ED5-9BA4-4ABE-BAF6-F45468481DCD,CbsSetupDxeSTXH C54B425F-AA79-48B4-981F-998B3C4B641C,TrEEConfigFormSetGuid C54F4B67-E527-4379-BF61-193C7A68C661,menu_none C54FB758-5DC3-4068-893A-4E67F7CCF5D4,FjDmiFJJSpecific C5542B64-B3F1-4855-A5C3-9E87DBC3F2CB,SmbiosDataUpdateDxeGnrwsCRB C55C14F8-8ED0-48CC-9836-DDF6A3C5EA11,InstallRavenPlatformSsdt C5653FBC-B146-4B91-8EEF-1AEEAE7A0160,ToolInitialDxe C56EDB22-3D78-4705-A222-BDD6BD154DA0,TpmClearOnRollbackSmm C56FB1B2-017B-4984-A3F6-3F734FFA9E33,EfiUdpProtocol C5753963-3B84-4095-BF78-EDDAD3F9C9DD,EfiPciBusErrorSectionGuid C57AD6B7-0515-40A8-9D21-551652854E37,EdkShell C5847038-FF75-4074-9E4C-C36A2EB398A5,LibTime C58B7F84-FFA7-4112-8097-C765CF7515C8,OemGetEdid C59716EE-2D90-4B1D-9C36-16523E105689,AmdNbioIOMMUZPPei C599195F-9B5B-4910-9310-A6103F5ED3F6,POSTWarningDxe C5992599-D96A-47CC-9FBA-13E19F00F6FC,BBLSupportDockingDxe C5A9B3C5-6307-43CC-8D72-9BC67EEE6570,SystemPolicyManagerDxe C5B04B6F-07E8-4663-9345-BC72ECCBB397,FjNvramVariablesAccessReferenceDxe C5B9C74A-6D72-4719-99AB-C59F199091EB,SemihostFs C5D3191B-27D5-4873-8DF2-628136991A21,UserIdentifyManager C5D5B33B-3759-4CD1-955F-0D1E7719E49E,MFGRTC C5F25542-2A79-4A26-81BB-4EA63233B309,EdkiiNonDiscoverableNvmeDeviceGuid C5FA0EE8-2D81-4202-A021-3DA700B3DEAE,AmdCpmPcieInitDxe C5FB3DBD-8A3B-4C12-AE63-118DA72FEE83,AmdFabricRnPei C6068612-B6E0-48A3-BB92-60E4A4F89EDF,UefiPciSegmentLibPciRootBridgeIo C60AA7F6-E8D6-4956-8BA1-FE26298F5E87,EpcBiosDataGuid C613EC78-63ED-4B93-ACD4-54B3D4CCC268,NetworkLockerDxe C61C6982-B904-4CEF-BF1B-C63BF7CA0352,SataPeim C61C6982-B904-4CEF-BF1B-C63BF7CA0399,UsbPeim C61EF796-B50D-4F98-9F78-4F6F79D800D5,MemoryInit C629036A-2EF0-4A74-9642-A9FE3884275E,AmdFchHwmDxe C62CEB80-FB40-4A46-A5E5-C1D997C36DFC,CapsuleLoaderTriggerDxe C62F4B20-681E-11DF-8F0D-0002A5D5C51B,PciHostBridge C642C14C-0E9C-4AEF-94A5-A213BAA35DE0,HstiResultDxe C65A623F-2768-4700-BE2C-1D8BA2C43998,Inside C65AF0E1-82B3-416A-8F0A-DDD0D3098C58,DellPbaUsh C65CFED1-8BA5-48D4-A493-9E12F17952B0,FjGabiSettingsApiItemAccessSmm C6602CDF-E16A-4147-9B9A-0B399498722A,SystemCrisisRecoveryPei C666A794-406D-4A51-B303-ACFB59137A05,UsbOcUpdateDxeEldorado C66E52C0-082A-48AB-BDDE-ED60C88CC4DA,FjLanReInitDxe C66F98CC-9840-40A6-BDC1-7B4CCC77F8C6,RtkUndiDxe C66F98CC-9840-40A6-BDC1-7B4CCC77F8C7,RtkUsbUndiDxe C6734411-2DDA-4632-A592-920F24D6ED21,AmiAtaPassThruInitProtocolGuid C6760651-A38D-5F4F-AEAF-F6661549DF75,EmuBlockIo C67CBA49-B3C6-4CBA-9671-BF2788712128,DellLegacyTcgSupport C681ED8F-FC2E-41A4-8F3F-2C2A1961A81B,FchProm21Pei C68C190E-F95E-4ABC-AA01-D65F344D91F9,LGImageRecovery C68DAA4E-7AB5-41E8-A91D-5954421053F3,CbSupportDxe C68ED8E2-9DC6-4CBD-9D94-DB65ACC5C332,EfiSmmCommunicationProtocolGuid C694F176-570E-48C7-840E-1B30920CBA76,FjIbvBiosPasswordAbstractionSmmProtocol C69BF28B-16C3-434F-A4A4-292BDB0F4D12,LenovoVariableDefault C6A957E4-8303-4761-A084-92C0692D90F9,PoofAnimationState3 C6AA1F27-5597-4802-9F63-D62836598635,SaPolicyProtocol C6BB86C0-16F5-4535-953E-E6C7CB6E4CB6,FpgaErrorHandler C6C9AC93-CFC8-414C-872B-D0116F076BF9,HpThermalDiagsSioSmi C6D37AB1-ACBB-4928-A956-577BB3DBB751,DellDimmLocation C6DF98F2-5EC0-4A94-8C11-9A9828EF03F2,WifiConnectionManagerDxe C6E9602D-C00D-4250-B24D-FE324B8DA40B,AcerPortingDxe C6F6CF5A-F085-401E-8402-00134B668703,FjFextPei C70522D0-0DDB-4623-AAB7-B84DFC47EFFD,AodSmmSsp C70522D0-0DDB-4623-AAB7-B84DFC47EFFF,AodSmmSsp C723F288-52F9-4D80-B633-E152F930A0DC,EfiSimpleAudioOutProtocol C7340A2F-0539-42F1-B9EB-0C35237A4923,CbsBasePeiRMB C73413C9-405C-4F50-BA17-0DFFB913ED16,DellDockPolicy C7351A96-9215-4026-BCBD-12D6E7DB36E9,SystemFormBrowserMetroViewDxe C74233C1-96FD-4CB3-9453-55C9D77CE3C8,WM00WMISmmHandler C74D1B0B-91B1-484A-A038-FE7A0847AA07,DualBiosDxe C74E5DB2-FA96-4AE2-B399-15977FE3002D,EfiSpiHcProtocolGuid C74F06D2-ED92-489B-879C-C0E428A22167,UefiRaid C7542254-A8F7-40BA-9BB9-390D31977775,OCMR_PEI C75F1B28-B273-4F0D-9838-952B70E6B9B4,UsbCardReaderSmm C770A27F-956A-497A-8548-E06197588BF6,RecoveryOnFatNvmeDisk C770F6C2-3278-4A57-A1DB-E177F8DB2CD7,AmdRAIDCoreDxe C7715FBC-E2AB-4A33-840F-5DCD0198E552,SaDxeMiscConfigGuid C7735A2F-88F5-4882-AE63-FAAC8C8B86B3,EfiVAminiPortProtocolGuid C776AEA2-AA27-446E-975B-E0BEA9078BD9,BiosGuardPeiApRecoveryCapsule C779F6D8-7113-4AA1-9648-EB1633C7D53B,CapsulePei C77C3A41-61AB-4143-983E-3339280628E5,EdkiiCpuFeaturesInitDone C77DD102-1DB4-4997-AE37-4E8C521EF567,AmiProcessTcgSetupGuid C79DD14B-C66D-4ADD-A5A1-CBE3FDF2BD72,DisableCacheAsRamPei C7A0C4A4-B05F-41C1-B137-F19686B302AF,SetupConfigUpdateDxeSierra C7A7030C-C3D8-45EE-BED9-5D9E76762953,MouseDriver C7A90676-51CC-4FFA-B5CA-69EA88D2F78D,EfiPlatformTypeOpalCityFpgaProtocol C7AD44B9-A775-4801-B772-A964262BB92E,ModuleS3ResumePeim C7B11F3C-89E9-445F-A972-671B8B17580D,DellSmbStrucB2Config C7B7070B-E5A8-4B86-9110-BDCA1095F496,PeiFspHobProcessLibSample C7C27153-E7FD-4D67-9670-CB214EEF0F0E,LEMBBRecoveryPostFlag C7C62103-5E52-41BF-820A-2B2C21A89825,BdatDxe C7C71709-C3E0-4028-9C78-1CAAE73DAE2A,DellPlatformAcLossPei C7C89169-1A42-4E5E-B34B-E6830671C9A6,AmdSb900Smm C7CAF1C7-2D97-45CB-99D9-D89AAF8ACC11,DellSecurityVaultSmm C7CC7BAF-73B8-42D5-9BE9-6C8D03137ED8,AsusSecureControl C7CFEB7F-AEFD-421D-BCDF-033329AB8B4C,GetVariableHookPei C7D35798-E4D2-4A93-B145-54889F02584B,EdkiiNonDiscoverableAhciDeviceGuid C7D4BBCF-EB0A-4C91-BD8B-FCA99F28B011,AmiTxtPei C7D4F4E3-DAEA-40B0-8846-F4CAF3135CE8,BiosProtectDxe C7D7B773-68E6-4626-80F9-609C4451EB0C,FjDmiWakeCause C7D9BAF4-DC9D-4B22-B4E7-7500EAA7B67F,SiliconDataInitPeim C7DAF48F-4787-11E4-9077-047D7B99E097,VariableRuntimeProtectionDxe C7DCFF6F-6F2A-4DC1-91C6-DF0BAFDBDA46,VbtMipiSharpGuid C7DD8530-96D8-40DD-BE88-CBDF446C6474,Stibp C7DF48CC-063E-4FD4-B775-75C00D9F19F6,SmbusDebugPei C7E201B7-611E-4FCA-830E-7469C3B39218,FjMfgTestBatteryDxe C7E6800D-9566-1143-81A8-B8C566AF3556,SNP C7EA9787-CA0A-43B4-B1E5-25EF87391F8D,PchS3Support C7EA9F94-1547-44F0-863F-563EAE79E1C0,TianoCompressSmm C7F7A2D8-7DC9-40B5-AF51-7BB0A1FAF12E,FjAzaliaVerbTable C7F9E27D-045A-4D33-85BD-C7D0ABA7C836,It8659 C7FCCF43-5859-4ABE-BCB5-4C1626ED8B03,DellPeiDiagLeds C80EA8F3-A3C9-4225-AA60-769DD4C74E43,LenovoSvpManagerDxe C810485E-D0EC-4E98-AAB5-120C7E554428,TdtAm C811FA38-42C8-4579-A9BB-60E94EDDFB34,AmiTseSetupGuid C81C25C0-533B-48DF-93E5-B87807901CF6,MiscFunctionPortingPpi C81FFCBF-BB77-400B-BC86-C9B16CF95EAE,AppleUsbNotify C826B086-AE21-416C-9977-0D55AAE742B4,EcAuditLogPei C828DD3F-8868-40A6-AA59-D5CA372D0937,UefiDriverAsix88179 C82919D6-33FD-43ED-800C-635A3369D0F3,SystemDiagnosticSummaryScreenDxe C8300EA9-869E-42DF-AEF2-5D939452A353,SetupDefaults C8339973-A563-4561-B858-D8476F9DEFC4,Metronome C84D9EB9-B703-4CA1-BF74-903106A37346,aDefaultDxeLate C85171A2-9CBD-4E74-8C9B-D33384A236A3,I2cGlkToMde C85903B6-84B5-4D78-B59D-D2D6B97580F3,PngConvertDxe C85D06BE-5F75-48CE-A80F-1236BA3B87B1,EdkiiPerformanceMeasurementProtocol C86181CD-B38C-49DD-A176-7DC3591816A9,DellHotKeysConfig C8638628-5B57-47B9-BA9A-AB1F90709C3F,AmdPspDxeV2StxKrk C866BD71-7C79-4BF1-A93B-066B830D8F9A,MpS3 C867A8C3-5BF1-4B33-82FE-B1B49D5286EE,OEMAcpiPlatformSmi C8714E83-895E-4192-FFFF-FFFF293630B3,XnoteRecoveryLauncher C8786997-70D7-4445-A5A8-E5C9C8DD56C6,MasterPswd C87DBB18-9ADD-41D5-80D7-4C8D795AD942,DellSmmEventSmm C8858B5A-7A6A-4193-9253-CA6AB5F1EA37,DashMctpSmbusDxe C887F4CF-4565-409B-9178-D2BF1D228DED,SioSetupUtilityDxe C88B0B6D-0DFC-49A7-9CB4-49074B4C3A78,EfiStorageSecurityCommandProtocolGuid C88D7B8B-2A7B-403D-A8A2-EF0A5AEE662F,OemEcRTCBackup C89851DD-5EA0-42CE-8934-EB8EA608FBA9,LenovoSystemAcceleratorKeyDxe C89CEC07-C4EE-440C-BFC5-A22F43372F22,DellDashConfig C89D72CE-E21A-4C71-BA79-770EF373D6DA,BootSector C8AB0F4E-26FE-40F1-9579-EA8D30D503A4,SystemFlashUpdateDriverDxe C8B2ED5E-B80C-4C09-A315-3A53D2625E1A,HpPlatformDxeServices C8B36958-00A7-4678-83EF-E5525A8CE4A4,OemFixedBootOrderIpmi C8B64E46-9819-45AB-875D-09DFDA6D8B1B,Firewire C8C07CBA-2F2C-416F-9519-D4F49DA65736,DlUefiUndi-X64-release C8CA0BB8-67DA-4883-8CFC-9180CB9EEC68,OemActivation C8CAFFF9-C6E0-4443-B96F-45FE2AD480CD,IsHdpRequiredPostFlag C8D831A0-3576-41C8-B0A7-D94024356395,OemDisplayModeDxe C8D85E8C-DC1C-4F8C-ADA7-58C1D107A304,EfiPeiSystemBoardPpi C8E1EE4E-1B9D-439D-B204-328BB5973F0A,SetDevPhyConnStatus C8E94F20-D850-4C27-BF03-A78055084E07,SystemBiosSelfHealingDxe C8EA84CE-18AC-4BB3-9A23-FB49250F35A6,FjAudioFp C8EEBF0E-0E10-47F7-81BD-39DB75CA939F,EfiGenericFruProtocol C8F23B39-C95C-4318-9233-53FB3AC44592,VariableVsr C8F6D366-DDF1-4960-9D57-82F2655A1294,AodPei C8FF7F70-1B85-4C66-A983-69699F62E91E,N19EP_GOP C9122295-56ED-4D4E-06A6-508D894D3E40,FspApiPerformanceGuid C9168F11-0C60-4A8C-A41F-1B2289315F4E,EcRotEnterRecoveryPei C91C3C17-FC74-46E5-BDBE-6F486A5A9F3C,AmiRomLayoutFfsFileGuid C9265471-71A3-4D74-AA7A-3E6C5EC81135,AmdRasBrhServiceSmm C92B795E-CDFC-4932-91B5-00BBB5F0C95E,FjIbvInterexchangeDataStorageProtocoDxe C92E82A5-AD25-4800-9422-CBE8E7A30477,OemDgpuBoardIDDxe C92F72B5-7DD0-4E15-9D2C-A52CBD30CA1E,LenovoSmpManagerDxe C937B8BF-ECEB-4F42-907E-37A5D4C17B9D,CompalEepromDxe C937D89B-5F9C-4A1E-B10D-8F53D7474220,AmiPspRecovery C939F82A-3501-4657-8256-FD4C2288872F,HpErrorLoggingSmm C93AB4BA-796E-4956-BF8A-B46EB1AFE737,MfgDoneSmm C93BD9EF-FB79-41CA-AFA2-C9D909730C91,FjAcpiPlatformDxe C947C2CA-C1E2-4007-BBE0-FD7C7865A548,DellNvmePwPei C952402C-F2A8-410F-96F7-2C789BE0E0A1,LenovoTamperDxe C95E6A28-FB95-49F2-AE01-F38166FD4524,OemServicesDriver C95F8AB0-1BC2-417C-8377-9815F578A9EE,UsbOcUpdateDxeExpertWorkStationRP C96C3984-429E-4FAD-8A61-C1E86BA43BF8,AmdNbioIOMMUDxe C96C76EB-BC78-429C-9F4B-DA5178C28457,TpmNvsMm C9737920-C2AD-41C3-B133-0F9C251B6743,PeiDebugDispatchPpiGuid C97809C0-5F90-4466-8B38-341D7A67CF54,LenovoSmapiSmm C9839A23-4B0E-465E-8F29-14A5010CA7DF,PerDisCptInRomPostFlag C98AE68F-82B9-47BC-BE87-33240E110D68,DellUefiBootInfoSmm C99E42D0-4964-4B09-B924-4A59E13E4F04,SbRunSmm C99F80E9-4CCC-4F34-AFE7-9194BF121412,GnbSocPhoenixDxe C99F80E9-4CCC-4F34-AFE7-9194BF123590,GnbSocRaphaelDxe C9A3B737-8841-499E-814C-463054C7C7A3,FjPowerOverEthernet C9A44DC1-A394-426C-8B3E-7EE532A55037,AmpI2cDriver C9A6DE36-FDFF-4FAF-8343-85D9E3470F43,NvmeInt13 C9B8B0B7-9C85-46E8-B343-362FBD26E8F3,MuCryptoDxe C9BD03EA-40D6-D14E-0FFE-6B803FC3ADF4,CpuTechDxe C9C01943-980E-DD30-A095-A411ACB3D229,WtTouchPanelDxe C9C30DD7-91D6-4F75-BF08-846E6020F1A8,AmdNbioIOMMUZPDxe C9C39664-96DD-4C5C-AFD7-CD657629CFB0,CpPlatFlashTokenSpace C9C87129-DFAC-48DE-8581-7363A90E101D,UFSProvisioningTool C9D9CE44-708D-4E27-B989-E35A33999C28,DellSmmMultiPlatform C9D9D2A1-E586-4F2F-BF6E-99240C069EB1,RealtekWsTbt3Pxe C9DCF469-A7C4-11D5-87DA-00062945C3B9,EfiStandardCallerId C9E057D7-3B6D-475C-B8C2-7C955D2F58B3,gear4 C9F1A91B-3AB2-4AEA-8B5A-374876B941A3,SDEmmcInfoSetupUtilityDxe C9F36E6A-6884-465D-A20D-0610B65CFCD6,SyncBIOSimage C9F5A078-1F2D-4086-A1BE-1638774FEF44,SsdtRtd3ATables C9FAF091-57F8-A64C-A07A-445B124F0D93,FlashMapPei CA05F74F-1E56-46A9-AF6C-DE5BBE83A37D,MemoryMarginToolHookSmmStp CA0D6FF6-62A7-4B1F-BB90-52EECA01A99F,TCM_MADriver CA1BCAD9-E021-4547-A1B0-5B22C7F687F4,ACPIOSFRModelStringVariableGuid CA261A26-7718-4B9B-8A07-5178B1AE3A02,DiskIoDxe CA2F6405-4953-4C00-9C46-D18683A9003F,SmmKbcDriver CA3668C7-AE4E-454B-9E46-DA97AAAE0FF5,X11SmmDriver CA37BC1F-A327-4AE9-828A-8C40D8506A17,EfiDns6ProtocolGuid CA3B3A50-5698-4551-8B18-CEAEEF917D50,DxeDebugCmdProtocolGuid CA3FF937-D646-4936-90E8-1B950649B389,EfiSocketPciResourceData CA4233AD-847E-4E5D-AD3F-21CABFE5E23C,WinNtOemHookStatusCodeHandlerDxe CA452C68-DF0C-45C9-82FB-EAE42B312946,EfiVLVTokenSpaceGuid CA452C6A-DF0C-4DC9-82FB-EAE2AB312946,EfiQuarkNcSocIdTokenSpaceGuid CA4853F4-E94B-42B4-8642-CDE28A7FAC2D,PeiTpmPpiGuid CA49B5C8-E977-4612-8706-91B82CD14C87,IntelMchAcpiTables CA4BBCF2-B43D-4D8E-984B-56A4ECBA2A40,IntelRSTWrapper CA4D1912-C415-4686-8615-A0823D8C4F27,Cf9ResetSmm CA515306-00CE-4032-874E-11B755FF6866,DataHubStdErrDxe CA54F443-1EF2-4DAB-9E7E-6DB7B720B587,EfiPccardCsProtocol CA5627C4-51BA-4DCB-AC62-C076EBD37DDB,Python CA599759-90A7-4FE4-BC8B-4B71C350DCAC,LibGen CA5A1928-6523-409D-A9FE-5DCC87387222,TrEEPei CA5D7EB0-1B67-4B0B-964A-F2A861F0D640,IccOverclockingDxe CA5E3DF0-940A-48F1-8C14-DB2FB5998B36,TdtWrapper CA6EB4F4-F1D6-4375-97D6-18856871E1BF,UsbLanDriverSrc CA771C80-02D9-11E4-A195-78E7D1AF36D1,HpNetworkBiosUpdateWmiSmm CA786553-AC6A-41AA-9AB6-531630850C92,ICE30plusPEI CA7ACEF3-1181-4AE0-95A7-0F1FD8AFD2ED,LenovoSystemKeyDescDxe CA84408A-0929-4F11-BFED-18C7D9576C6B,PlatformInitDxe CA886C07-ACDF-41A6-A501-CBC53DD4008D,DellPeiReportFv CA89914D-2317-452E-B245-36C6FB77A9C6,SaSsdtAcpiTableStorageGuid CA915DD3-4C9B-4471-ADE1-33DF66765DFD,LenovoDashSupportDxe CA9725C0-12E5-4FAC-AD58-D9AAB03B8F11,LenovoHdpManagerDxe CA9D537C-0B20-4F94-9283-45F4D51A748D,DellAsfBypassAbstraction CA9D8617-D652-403B-B6C5-BA47570116AD,TxtPei CAA3FA1C-76C4-44CE-BEC0-3E6D847AF8D4,EfiSmiServices CAA4381E-750C-4770-B870-7A23B4E42130,EfiHashAlgorithmSha512Guid CAB0E94C-E15F-11E3-918D-B8E8562CBAFA,EfiBootManagerPolicyConsoleGuid CAB9347C-8CE9-4DE1-9C6F-6457AC69332B,PrepareForScheckEvent CAC3FB95-33F5-4596-818B-68E024DDB67B,IsSecRecoveryPEI CAC7FADF-36F8-414F-8E1C-8A80AA5C78D6,DashPldmBase CAC94001-5611-4440-9B21-F54B700A1D34,DellSmmSystemSioProtocol CACB3817-81E6-497E-87FF-C8FA8F24EC28,SgACPI CAD40D6E-C871-4398-910D-2D74EE94711A,AmiTseAfterTimeOutGuid CAD9920E-0CF5-4C6B-B92B-CC0A4E19557C,FjSysmanAmphionSmm CADAB771-60DF-A925-19B3-0A6608DD2DA5,CCGxFwUpdateDrv CAE0AD55-47B7-4E03-A714-95E1711CC279,BcpBootOrder CAE2D87D-5CBC-47E7-8CAD-50377A5D0E90,PlatformErrorStrings CAE3AA63-676F-4DA3-BD50-6CC5EDDE9AAD,EdkiiPeiNvmExpressHostControllerPpi CAEB83C4-23AA-4311-8327-8B72DDB7041B,RcPolicyOverrideDxe CAEE2F3B-3191-4DA0-AD10-A5C07E636CD1,LibString CB077E14-EBD8-4AC2-986F-82F3CD4E717E,SdHostDriver CB2337F3-CF73-4164-9B73-798BBF8928DF,TPMDxe CB2987B9-63AE-4B91-BF43-21FF641A5D49,AmiUpdateDxePolicyCallback CB2A97CF-3D3B-4215-B528-7B8944200E46,CcgxDiscovery CB2C0D12-8E6A-4B12-94F4-1BC49EC460B1,AmiHstiPkgTokenSpaceGuid CB3FD86E-38A3-4C03-9A5C-90CFA3A2AB7A,EfiExtendedSalMcaLogServicesProtocolGuid CB494BAD-23FF-427E-8608-D7E138D3363B,ArmPlatformLibNull CB49CE50-3A75-11DE-8A39-0800200C9A66,PerfTuneSmm CB4B5BB5-59A6-48BA-A77B-B4E4B3D491EB,OemDxeWwan CB4CE667-ED8D-4A66-B437-EA6A970F2E48,SmmResetSystem CB537AA2-F727-440B-9702-ADE9D0A293F1,PlatformStage2Pei CB5C54C0-230D-43DB-922C-24D34F8C915C,AmicsmPciBusNumXlatProtocol CB659161-B780-4906-914A-DB57D1DD544A,EupControl CB73C3D9-2F01-4342-AE67-04DDE5264092,SmmPlatform CB76358C-3A21-44BF-B7C1-33F064AC4C11,DisableUSBPei CB7A797C-57D9-4616-88B4-624213967BD7,CompalDptf CB871572-C11A-47B5-B492-675EAFA77727,EfiDiskInfoUsbInterfaceGuid CB8C0E4F-14F7-4F5A-8DAD-752CB0B42045,SystemStatusBarDxe CB90F8BD-7012-407D-88A3-7D5E9E701B87,PilotIIIPc8374 CB933912-DF8F-4305-B1F9-7B44FA11395C,AcpiPlatform CB934658-ADA4-40E5-98CE-9B476FA108B4,DellPcdUpdateDxe CB992535-8713-4ADE-94F2-5D32CCAB8C5E,PostIbbVerificationCollectorPei CB9B43DD-4233-DB03-E0ED-ED89C0D09CAC,AmdSocAm4MtsDxe CB9B939E-FB6D-48B7-9E58-90188D77189D,SgTpvAcpiS3Save CBAA8FBA-CF80-4747-9167-CA053855B4E1,PlatformVoltageControlPei CBB2E6A2-C6F2-4D68-A75F-AE621565C736,FchSmmDiagDispatcher CBBEE336-2682-4CD6-818B-0A0D967E5A67,EfiClpProtocol CBBF9572-28DC-4712-AA9D-0FF6E4029BFC,AmiSystemCredentialManagement CBC59C4A-383A-41EB-A8EE-4498AEA567E4,FlashDriver CBC6B94E-DEAA-462C-840C-6698180DE292,QualcommDRS CBC91F44-A4BC-4A5B-8696-703451D0B053,ReserveBootGuardFvMainHashKey CBCA3D88-CB1E-49C3-B448-5FF287C58D40,LenovoEn25Qh32FlashPartSmm CBD2E4D5-7068-4FF5-B462-9822B4AD8D60,VariableRuntimeDxe CBD4418D-4239-499A-97C8-C10622F99D0D,H19MPMDxe CBD86677-362F-4C04-9459-A741326E05CF,SeCUmaPpiGuid CBDAF74E-D6E8-4934-BB03-27F356D4B91C,FjEarlyInitPei CBDD2397-D2C5-415B-BD77-9630A1B7853D,EfiPeiIpmiUsbTransportPpi CBF25110-18FF-4EE3-9735-E2477436FF3F,XnotePlatformInfoSmm CBF36E61-59D3-11E8-8518-B05ADAEB7886,NvdimmLostPassphraserecoveryDxe CBF486B7-D196-4C03-AFE2-33F38E64DA16,IntegratedTouch CC043281-112F-441C-805D-6D8DB3659618,BbstableHook CC05C4D7-87B1-4605-A83F-592FFD53F959,mFmacDriver CC0F2ACF-8883-4DA7-8F62-39A6BDC6BD4C,OemSetupValueHookPei CC0F8A3F-3DEA-4376-9679-5426BA0A907E,PkVar CC17F218-E492-45A2-A1A4-16DBB1BB11C5,AmdNbioDxe CC1BAA36-11EB-45CC-9ADC-7565E273AC70,PnpSmm CC1FC04E-0B3D-4E0E-AED7-5898541E2683,CSMLinkerDxe CC243581-112F-441C-815D-6D8DB3659619,A01D2DRecoveryDriver CC276239-D6E5-41D4-AC30-36794E52B98B,FujInSmm CC28F998-EB90-47FB-97CD-032151F6FCB9,OemSetCbsVariable CC322E80-6A08-4E80-8BCA-01A84BA6CFE4,PciHostBridge2 CC34A436-EC78-4330-96CB-1AD2216CF87B,InputmodulesApp CC3CE225-D9E0-4AB1-AD66-B857C2D16D2E,FchKeithSsdt CC42B4D3-7220-428A-9B6E-E44971D02809,DellSmmMfgPolicyProtocol CC5263E8-9308-454A-89D0-340BD39BC98E,EfiEventNotificationTypeInitGuid CC54F583-3F9E-4AB0-9F7C-D2C7ED1C87A5,AppleRtcRam CC582C73-F48F-4B62-83E8-A586B4C88F84,AppleFirmwareFeatures CC5AC8F2-EA85-48A4-8493-2021E0A30D0F,PlatformCsm CC5D4D81-E9F5-4387-9207-D0A35D3E7575,AsusBiosDxeCrashFree CC620D5E-FECF-49D4-B51B-461D52494669,AutoEcud CC664EB8-3C24-4086-B6F6-34E856BCE36E,EfiWinNtPassThroughGuid CC6E66A3-472A-4802-9B97-21420C026391,AmdCpmZeroPowerOddDxe CC71B046-CF07-4DAE-AEAD-7046845BCD8A,LenovoVideoInitDxe CC74AC11-6121-4EDA-A857-4D6EA9357CEE,Nct6126dTrdPeiInit CC74C741-4A5F-4A8E-B689-D804AB4368CC,DxeNotifyEC CC81918A-AC55-4FCD-83E6-0C1CC22937EA,WakeSourcePei CC84D725-DA1E-46A7-9E75-4BACF1FD3902,SystemFontDxe CC8A415D-2EAC-4335-BF4F-9ABC23F5ACCB,SmbiosDataUpdateDxeGnrwsERB CC8A8528-23F3-427E-AF41-C91E3297B622,AmdFabricStxKrkDxe CC93A70B-EC27-49C5-8B34-13931EFED6E2,EfiAlertStandardFormatProtocolGuid CC9F5B7E-254B-4F8A-A648-034A40AEDA35,PlatformCustomizePei CC9F6A7E-245B-4F99-B548-034B30BDDA44,FlexIoCard CCA91175-03E3-442A-B3B8-2E4A335C1DEA,AmiHsti CCA92EF6-F8B1-410D-8119-6FFE4966A254,PrmRasGlobalDataInit CCABB74A-6077-49F7-A291-71EBB7A7036C,OA1 CCABD229-51C4-4DE7-AE2F-3AAF71F9ECE5,SystemSetupAdvancedDxe CCB16BA4-B0D5-401A-B047-E091B1C6467B,LEMDeviceInfoProtocol CCB19F85-C026-4285-81E9-505BF52D2791,Cf9Reset CCBF2786-CD6C-4308-BDFA-625870CEBF81,AmiCmosAccessPpiGuid CCC4BC8A-0D71-4197-86D5-DD12E10A97E6,InstantOn CCC53F6B-A03A-4ED8-839A-03D99C02B4E3,EfiNtLoadAsDllPpi CCC5C136-ACD3-4251-9BDC-F663CD2297B7,AppleAudioDecoder CCCACBF6-0BDD-4460-927D-D1D4F21EA6EA,DellBiosDRAMChipLocation CCCB0C28-4B24-11D5-9A5A-0090273FC14D,GraphicsConsoleDxe CCCC8702-BD68-45B1-8237-C7DD004CDB37,DellSmBiosStrucD2 CCCCD383-7145-4850-A4BE-89C36A15BA15,GpioV2ControllerPei CCCD2056-D401-4DEF-85B0-1FA11FF3B5E3,IioVvar CCCD3CAE-170D-4E34-8766-57B9042BEBB9,EcEkKey CCCDBAC6-7383-452D-B8AF-C5E29D7D0BFF,SystemPolicyManagerPei CCE87321-962F-4446-93EE-C291F18612A7,OhciSmm CCEC84CD-CDC5-4C75-8637-D4508FC79CCD,PngConvert CCF23F50-F7C1-4F00-8E70-13643C37E8B0,TBTRetimerFirmwareUpdateDxe CCF949FC-F831-4CEA-BFA1-C44983B99B91,AmdNbioGfxRMBDxe CD0A2EE7-418B-47E3-89C4-65D9169EFD23,PublishMrcNormalFv CD0A45A4-8980-4A63-9A0D-014549D283C0,FjUsbHubRTS5420 CD167C1E-6E0B-42B3-82F6-E3E906199810,FspReadyForNotifyPhasePpi CD1B61E8-C6B4-420D-A1C5-2A75083CB0A6,FjMasterPasswordSmm CD1C556B-62BF-4EEC-8E73-7731F8E847B2,AmdCpmGpioInitSmm CD2333D7-6A0A-4C76-8350-240ADA36A2C7,DxePlatformSaPolicy CD26C70C-F69D-419C-AE25-50E844D1DAE8,RtkMAPT CD28DACA-BDBE-481A-90AC-625C79CF234C,H19BIOSLock CD2AC321-3EA6-4AA1-92B7-DAC13F900883,AmdCpmAudioFeatureDxe CD2B6EB3-EA11-4848-B687-AFE57D3D1C0F,ApplePpiPlatformInfoDB CD31F8A8-28A6-4E49-8B3E-4142BD006C41,MeUlvCheckDxe CD361957-AFBE-425E-A358-5F5889CFFE7B,EfiHiiOldProtocol CD3BAFB6-50FB-4FE8-8E4E-AB74D2C1A600,EnglishDxe CD3D0A05-9E24-437C-A891-1EE053DB7638,EdkiiVariableLockProtocolGuid CD3F92A7-9AE4-42F9-B2CC-B47A8615B85B,PcieInitPei CD46127F-9245-4521-BB89-A6D85D68FC13,LegacyTableCompatibly CD495FA4-8475-4ECF-9203-493C9CD5405D,EcDxeRestoreSmm CD51358D-6E7E-45CA-B450-57C046BDFDDC,BmpConvert CD539048-F16F-4F86-BD86-6B726BDC34F4,HpAcpiPlatform CD541D77-6699-4B36-A31E-1AA4C5D5B946,AmiStatusCodeCpuBistData CD554A69-EE4D-404F-855A-84A6A39755D7,AmiSriovLibNull CD707DDE-4872-436F-B6E3-6F929184F959,BoardSpiConfigProtocolDxe CD72881F-45B5-4FEB-98C8-313DA8117462,EfiI2cMasterProtocolGuid CD72B362-8A6F-4699-AF55-03FD8924C506,HpRpsuDefaultsAndWmi CD7C839D-0521-4B26-9476-9FF2CB70649A,OpromUpdateDxeNeonCityEPECB CD84562C-6864-40A3-A081-C8D35E82B920,CspLibDxe CD8F06A8-C30A-4A83-8C56-45D432A4BDEB,CbsBasePeiSHP CD8FEC49-F25D-4A24-8FB8-EF9CA58067F0,SbSocRsPei CD92B9B9-2D4C-466B-8458-95447D8E4AFE,LenovoSystemSmBiosSmm CDB65801-494D-472E-A6A8-AFF5B76E8D1F,DellTxtConfigPei CDBD2D34-0E33-46A8-A6E8-38AE30899FA1,EzTpmUpdIfxFwDrv CDC0191E-1891-4119-817E-0B6A3685A511,LenovoSystemBusIsaRtcSmm CDC11AE9-01E7-42CB-88EB-FDFFD8819893,TcgLegacy CDC1C80D-E6D3-4A42-9229-75F3BEFCF109,PciOutOfResourceSetupPage CDC5DDDF-E79D-41EC-A9B0-6565490DB9D3,IgdOpRegionProtocolGuid CDD36FE6-CF3E-4B06-9241-0C8C45098049,AmdSocAm5RplDxe CDD65692-2E98-45AD-B7EE-CBED4155DCE8,FjSystemDataPei CDDBF370-3DA5-46D9-9D0A-BFC112EC5316,OemSsid CDDD1FEC-7C13-473E-8AE0-7A0723ADC787,DualBiosDxe CDE1A697-5BEB-7E4A-95D8-4078E564E70C,PngConvert CDEA2BD3-FC25-4C1C-B97C-B31186064990,EfiBootLogoProtocolGuid CDEB315F-C5D9-40F1-2314-60CB26262E4F,UefiSwitchMonitorDxe CDEC3671-816E-43DC-A002-DCD645229338,I2cHostDxe CDF0823D-0D05-40F2-A424-978BCD270156,FlexIoPortConfigDxe CE033449-3D90-9644-862E-2D7D9AA3F06A,BinConvert CE04E069-89C4-4B9C-89FC-4AA48E98163A,FchSmbusPei CE063996-6C4E-4531-A18E-635EDD447A36,ShmInitPei CE12B236-17E5-47B4-96AE-C85BBAC1E5BF,SmcAssetInfo CE159F09-D896-4058-B5BB-1AE6EAB00E01,OemPowerModeDxe CE19678F-3F08-4E81-A1F3-1886CA13ADA7,SiliconPolicyPeiPostMem CE1C71E3-ECB3-4ED2-9DF4-2B38AB65B0BE,DellDiagManager CE1F0D0A-2E92-4EBA-A171-AD89125CEE87,ValidateExtendedBiosRegionPostMem CE2217A4-5565-4FD2-9AB2-53E18F9A50FD,SctMtlGopWorkaroundDxe CE248B77-1179-4BC6-B324-9D2EDC4B976E,AhciControllerPei CE25C500-D518-11E3-A146-047D7B99E097,ProjectServiceDxe CE2B8E5E-CFA9-4F18-9AE1-ACEAB642892C,DellOA30CtrlSmm CE345171-BA0B-11D2-8E4F-00A0C969723B,EfiDiskIoProtocolGuid CE35B5C7-EF21-48FF-A476-3F5FAF3F98AD,PersonalityModuleDxe CE366D33-B057-4C03-8561-CAF17738B66F,WdtAppDxe CE3CAD4C-4743-0482-5909-F385307178C2,NvmeResetHookDxe CE3DA938-6AD6-458A-8831-6B0A03DF6C86,Pentium4Base CE3FA7C0-E9CA-11E2-9BF4-446D571553EB,LenovoStringDxe CE3FBFA0-C4A2-46F6-AF38-FDD6BF409B0A,SmmSioHwmIo CE4188D8-1D24-44E8-BCA2-2AB8F750AEC0,SetupConfigUpdateDxeHedtCRB CE4385F8-DA0C-4E8F-9211-A7F954721D2E,FjLvdsInit CE44C4EA-6250-4DFF-9C1D-86D3CD1E64A6,AsusVmdAiControlKeepVmdMode CE4D553D-7FF4-4527-A38C-0411138D7B97,FjUsbTypecPwrLimitCtrlSx CE57B167-B0E4-41E8-A897-5F4FEB781D40,EdkiiSystemFmpCapsuleDriverFvFileGuid CE5A3D67-6831-47E0-946E-B3300D02E0C6,HpDmarDxe CE5BB14C-DFB6-49A1-A614-77804ACBB489,AmdCpmOemUpepDxe CE5BC14C-DFB6-49A1-A614-77804ACBB489,AmdCpmOemPTDxe CE5E5929-C7A3-4602-AD9E-C9DAF94EBFCF,EfiIpSecConfigProtocolGuid CE660500-824D-11E0-AC72-0002A5D5C51B,HdLcdGraphicsDxe CE673A28-800D-4B4A-8316-2661F9B3D9C6,DimmTsInfo CE6E807F-77C8-4237-BF25-F9C45FD18804,EfiLanDriver CE6F86BB-B800-4C71-B2D1-3897A3BC1DAE,AmiHddSecurityInitProtocolGuid CE76670A-55C0-484B-962E-84A2F65210A6,MEMPATCHPEI CE7CD764-A1D9-44E5-9857-14FEFAAE96DD,PnpDxe CE7E8F88-9D27-46C9-B633-21F8B8712071,BaseBoardPei CE845704-1683-4D38-A4F9-7D0B50775793,EfiPlatformBootModeGuid CE8A2C97-A09D-4DC3-9A1E-F8AB65075AFB,AmdPlatformRasBrhDxe CE92C5B4-14B3-4AE1-A274-3FFE74A5ADC1,KEMoSetup CEA4FF9C-D7BC-4F07-96F1-03F41F2B17AE,BaseFspDebugLibSerialPort CEAB683C-EC56-4A2D-A906-4053FA4E9C16,EfiTemporaryRamDonePpiGuid CEB0203C-DE91-4ECE-A95F-0217E959E191,SystemSecureFlashAuthenticationDxe CEB409FC-FA01-4831-8BDB-7D06BE8FCC9E,PlatformG3State CEB7FE23-21A1-4B5C-8E92-2E7B52A95076,Legacy8259 CEB904D8-DE67-4286-8D3F-2259E6B781B8,UsbPowerShare CED4EAC6-49F3-4C12-A597-FC8C33447691,PeimBoardInitPreMem CED56284-CDAC-499C-9FED-69A944CE26CD,EcIoPeim CEDF3529-7319-4530-9348-FB1211CDDFFA,OpenBmcSmbios CEE19373-FB2A-4B8E-BEF5-B6D7731F4939,I2cBus CEE33516-58E3-47DB-BB3F-2758B5A76C28,FirmwareVersionInfoDxe CEE8BEEA-507A-49F4-A3D7-D1100A2008CC,SynQuacerPciCpuIo2Dxe CEEC2EE9-BF2D-45D9-B96A-1144B062395D,UsraQuiesceLibNull CEF05965-F399-42A0-A226-A3FE96AA944E,RedfishHi CEF5B9A3-476D-497F-9FDC-E98143E0422C,NVRAM CEF68C66-06AB-4FB3-A3ED-5FFA885B5725,SmbiosBoard CEFF9D2F-F5E3-4DEF-B051-386FA007AE4D,AsusSmmCommBuffDxe CF009B23-17B9-43EE-BB69-4393CA186B1C,LEMDeviceGuardInit CF10171A-57F0-470A-90E0-62D95F213F9B,HpBeepDeviceDefaults CF10F9FA-45BE-088A-0DCF-37B75CFE917C,SystemSmbiosLoaderDxe CF28CD73-F3DE-4125-8651-61CC4D786FB2,OEMWMIDxe CF2E24FE-ACA6-4D6E-9486-E9A55495D654,PlatformServiceRecord CF2F5574-3C73-4D2F-976D-665CAD2E5381,ASUSDirectKeyDXE CF316AE5-E183-4528-B351-E65D3481253B,EmbeddedDxe CF31FAC5-C24E-11D2-85F3-00A0C93EC93B,BlockIoVendorGuid CF3279BC-AD5A-4A13-BE80-FB7B6C17730D,StaticSkuDataDxeBigPineKey CF368415-2CFD-4757-803F-6E273D9123EE,AcerLidPei CF3EF6C2-F125-41A0-B3DE-73AF4143812E,FjCryptServiceDxe CF46C339-0651-407A-8E85-D0D72731CCD5,RequestPOPOnReset CF4915A5-B44F-4B45-A841-6CCDEA0B33D8,ApobStxHPei CF5014F8-2EBE-4D57-AA83-D7A3607371EA,DellFlashRecoveryImage2Pei CF569F50-DE44-4F54-B4D7-F4AE25CDA599,XenIoPciDxe CF67DF48-F242-4D81-A88B-82832C8108CD,AcerHwSupportDxe CF6BCADD-D4C4-4095-B2BC-417D7247890A,StaticSkuDataDxeNeonCityFPGA CF6DC7FE-FBE5-4AFE-8A8E-E7CED473259E,SureStartTestModePlatform CF7A379E-F788-44D4-AF65-165CE1E0ED68,SmcOptimizeDxe CF8034BE-6768-4D8B-B739-7CCE683A9FBE,EfiPciHostBridgeResourceAllocationProtocolGuid CF89079D-DE55-4618-8683-BCFB0D5C90BC,AsusSlp2Encrypt CF8AC870-80E7-43CA-A2A9-A64CFBBACC94,EfiSmiServices CF93C01F-1A16-4DFC-B8BC-9C4DAF67C104,EfiEventNotificationTypePcieGuid CF9668F7-B0F0-4D7F-B41E-AEC794EEC7FC,LenovoSystemAcpiSmiServicesDxe2 CFAA77CE-7208-43C3-B815-99E8D66A28BA,b57undix64 CFAAE0D9-0C2D-4EC8-A122-F6EB5F380916,DetectErrorsDxe CFB33810-6E87-4284-B203-A66ABE07F6E8,EfiHeciProtocolGuid CFBCAB7B-050D-494F-A841-51BEEB73406E,USBControllerDxe CFD3C49B-56DC-465C-B3A0-419A8B42CB60,EfiAcpiParameter CFD5D6B3-3C21-4F15-B0E8-088F0128890D,OemInt15CallbackSmm CFD65085-DBE1-4691-95D1-855B2CA00C69,FjIbvSfuOverrideAbstractionSmmProtocol CFE3CBBE-4800-4EA4-8CEE-90E92285896F,FprGoodixDriver CFE5D9E8-8AFE-4516-8CC3-96405CFAD0C8,PdrRecoveryPei CFE5EC91-31ED-47E9-BE7D-9CCB59134B71,SiSaPreMemPolicyPpiGuid CFEE9115-F19F-453E-A0E8-97DECD36828C,H19DisplayMsgInBlackScreen CFEF94C4-4167-466A-8893-8779459DFA86,LenovoPlatformHiiAdvancedDxe CFFA207A-B1FD-4265-B0A1-9ACD477545C4,AcerGnvsDxe CFFB32F4-C2A8-48BB-A0EB-6C3CCA3FE847,ApfsJumpStart D00752EA-A49C-40AD-A6DA-921C030C4B2F,DxeIchInitDxe D024BCD2-59EA-48AC-A17F-B3221EC23A11,Int15GetMisc D038747C-D00C-4980-B319-490199A47D55,FspReservedMemoryResourceHobTsegGuid D03D30F7-0538-44DE-9568-B722BC7627C9,H19UpdateACPITables D03F3A1D-088E-46C8-A9FB-8209770F2CE2,ChipsetPlatformLibServicesDxe D04159DC-E15F-11E3-B261-B8E8562CBAFA,EfiBootManagerPolicyNetworkGuid D041CFC0-7670-435A-A512-F45C923B285D,DellPeiSioEmi D049547C-8227-44D2-8A5E-02888DE930D1,ClearPasswordReq D05173F7-7683-4C35-843A-39B307142E95,OemFwUpdateGuid D05ACBA9-3E18-4C80-AA97-023A22F8A946,FjAudioSpeaker D0632C90-AFD7-4492-B186-257C63143C61,SmmBase D06D425B-EED7-0361-AAD2-8C431409572D,BootGuardRecoveryHookPei D071A3B4-3EC1-40C5-BEF8-D0BD4A2446F0,PayloadLoaderPeim D0738DBA-B21F-45A4-B5AF-22CC4E72ED84,FjGabiSystemDataAccessApiSmm D07AECE7-573D-4C47-B60C-9D9A721717D7,PeiSioHwmIo D080F93D-C0E8-47D6-9201-6B0EF6E28E1A,RfTrustedModules D083E94C-6560-42E4-B6D4-2DF75ADF6A2A,EfiDataHubStatusCodeRecordGuid D0849ED1-A88C-4BA6-B1D6-AB50E280B7A9,UsbCredentialProviderGuid D088A413-0A70-4217-BA55-9A3CB65C41B3,ExitPmAuthProtocolGuid D0893F05-B06D-4161-B947-9BE9B85AC3A1,SnpNt32Dxe D0927E0C-FEA5-4569-8AC0-33C8F60E5073,NvmeRstPassword D096FB72-A964-4FE6-9FBF-FA83CCD91549,FchSmbusDxe D0A611D5-529D-45FF-8714-374E833337D8,Npce285xFlashDxe D0BA757A-6B67-4BA3-B138-7A15DD8CB94F,FjGabiSystemDataHandlerSmm D0CAA91E-2DE4-4B0D-B3DC-09C67E854E34,BiosSnp16 D0CAF5CA-3DF0-3D4F-89C5-66105356D61B,AppleBds D0D028A3-8B17-490D-9D86-C3D00F0D7695,PrivateWmi D0D12D8F-803C-4084-8CA8-3658D934F5F2,Ax88179UefiDriver D0F71512-9E32-4CC9-A5A3-AD679A0667B8,FlashProtectionConfigGuid D0FE7349-5FFB-424C-93D6-AAE9CFE4D909,SmuV12PeiCZN D0FF5E04-1D07-491D-970E-E220A3B79611,AmdNbioGfxRVPei D10F6F20-1EDA-4D9E-9D9B-0F1306C7A713,HpFileAccess D1112EBF-0D82-4071-967C-E169232740BA,CpPlatIpmiTokenSpace D1150ED7-E582-4192-84A2-71B4EBA9A7C6,AcpiPlatformDxe D11C8E2A-3CD1-443C-AC09-63526DE7E170,SmmSupervisorBinRelease D122882C-DA73-438B-A6B3-E07B7D18DB6F,FastBootSmi D124DFA7-D784-C64E-8106-29411A7F59DB,MnpDxe D1263703-D6C0-4354-A7BE-9B635EC99C4A,TpmToollessFwUpd D13A4091-7C6D-4D0E-BDE8-5DE6F7135F35,BcmCvAPISmall D1405D16-7AFC-4695-BB12-41459D3695A2,EfiNetworkStackSetupGuid D14EA3F9-8BD2-49A3-A636-C6F6C08037D5,AmdPspDxeV2Ssp D15170BE-D512-4894-B863-9D0E6FF5C561,DellSlpMarkerCtrl D1531968-E138-4E2E-8F7E-383307169276,EzFlashInterfaceAsusSignBin D1533719-20B1-404D-B970-CE13148DC0CD,PxeDriverRtkLan D1578747-1A2C-4972-8D56-3C8B93ED25A5,StaticSkuDataDxeXPV D15E7D4B-138B-4CA3-BB2C-5907127F8DAD,BluetoothConfigDxe D1775564-479F-4F52-AE9C-F03076FB9F45,SecurityIdeSmm D177EC7B-5353-4E18-A044-6360AC6D467D,AmdPlatformCustomizeSmm D178F11D-8716-418E-A131-967D2AC42843,EdkiiMicrocodePatchHob D17F5B0B-ABEC-4C0B-9E4C-80ABFAAD0379,PTDxeInit D1892F90-3784-410F-984B-9BEC59D8D494,AmdNbioPciePei D18C0912-6825-4E8F-8D5A-AF7EEDB2E5BC,LpssConfigGuid D19A26A3-17F1-48C3-8A1E-11EB0A7F6E4E,EfiPchRcVariable D1A26C1F-ABF5-4806-BB24-68D317E071D5,AppleEpidCertificate D1A3216F-63E5-4F31-8D30-FF53F7CABF5C,MpCpuDxe D1A86E3F-0707-4C35-83CD-DC2C29C891A3,EdkiiNvVarStoreFormatted D1AF503B-68B9-4FC9-AE87-DFB72F21B3F1,DellFmpMe D1B61D55-88E1-4C14-8904-9E7CEA40AD6F,Cf9Reset D1B7872C-E60D-4D86-932A-E9F8D46D344A,AMIProjectDXE D1C17AA1-CAC5-400F-BE17-E2A2AE06677C,EfiKmsFormatMd4128Guid D1C4AAF9-AAB1-4AEE-ACAC-D68AEF05F0D5,UsraLibNull D1D63B06-137F-4F5A-8C25-28DADFA1E988,FjPasswordSkipDmi D1E59F50-E8C3-4545-BF61-11F002233C97,TxtPeiAp D1EE4CC5-7310-45AE-854E-4450E10EA20A,OemDisaplayTIO D1FC3703-6591-4AE9-A795-C5628CCF5236,DellSmmNbProtocol D201B7F4-515F-46A8-951D-9F2BE251C113,CPUDefault-PEI D20C96A8-B9CF-4C15-9FBB-1C055517F449,CxlCedt D20D8922-A2F8-4F80-FFFF-FFFFDC893C8D,XnotePlatformResetSmm D21D96B4-20C6-4F30-8E82-6701485B1049,DellLomPolicy D22C15F5-818B-4940-90EB-ABB377255643,SmbiosMisc D22C15F5-818B-4940-90EB-ABB377255644,SmbiosPlatformInfo D22E0A82-C256-472B-9820-F7BA7127FBE7,OtaDxeDriver D231DB5B-4A9C-4092-A8C5-9CA0BC7D6AA6,IffsInfoProtocol D233D6BD-F1B1-425A-BF45-5CAF2B88EDDC,WinNtOemHookStatusCodeHandlerPei D238B630-280F-11E4-9A1E-047D7B99E097,EventInterfaceCoreDxe D2465DFB-9AC7-4954-8C48-CC439ADA7C3C,FjIbvWakeStatusAbstractionPei D256C663-1E0F-4704-A76A-94CEED7C16DE,FjDtPlatformSmbiosDxe D258D6AF-2FC0-4019-9C1F-1101C3DD19B5,DxeCoreEntryPoint D25F555A-30EF-49EE-8FB5-C76B5817CC2A,AppleBootUI D26374A5-7716-4708-AD9F-9C4F2C02547E,IchS3Save D26697EE-9983-48B0-8F85-7D3E66528B07,LegacyBiosDxe D26C221E-2430-4C8A-9170-3FCB4500413F,TcgEvent2EntryHobGuid D27FED59-ABB4-4FED-BEAD-2A878C7E4A7E,SmbiosMeasurementDxe D2846ADB-B41B-4103-871F-E2235F4778C7,SmcPostMsgHotKey_PEI D290465F-16B5-4579-A70B-CA1DF4FCE8DF,SDGlobalNVS D299F352-094F-4B87-8CD2-C94F9E0A44C3,DellRecoveryPei D29B104A-BE98-464A-9771-746B9A07DCA1,FjSysmanWatchdogBin D2A92001-22AD-43B9-BEBC-1B152100D8CC,EfiPeiPlatformTypeWolfPassPpi D2ABC888-AE13-4E3B-BCEE-5DE368FA4E72,MsegSmramPeim D2B04F7C-699B-4F9A-91F3-04078B9563CB,BootOrderData D2B2B828-0826-48A7-B3DF-983C006024F0,EfiStatusCodeRuntimeProtocolGuid D2B6C80A-FAFE-4512-835D-50D136540AAA,MultiConfigUpdateDxe D2BC3092-92BB-4B21-A26B-CE6F7C3E9857,AtAmUi D2C18636-40E5-4EB5-A31B-36695FD42C87,EfiShellEnvironment2ExtGuid D2C2B842-46B0-4466-88B8-5A8285E9CEC2,IScsiFontSupport D2C2C0A3-1623-4BF2-9ADA-BCF81493FF7C,AX88179UsbNetDriver D2C69B26-82E1-4A1B-AD35-ED0261B9F347,MemoryInitPei D2CB970C-8622-46E1-9083-DB2EA20CA6E3,SystemSecureFlashBootModePei D2DC7458-E6C1-4C8E-A32B-545269DC6361,OemPeiSetAcLossAuto D2F785ED-95F3-4075-897D-9D9CF9C5A79D,AtaAtapiPpi D2F8BE2B-9898-414D-A76A-20A5C8DE77E0,TouchPad_Elan D2FF92C7-55DB-4879-9D0B-A08BCE4F4E19,StaticSkuDataDxeBlizzard D303BB6F-7434-41FD-BC8E-0984A03C9B7D,AmdCpmAcpPowerGatingDxe D30E0E10-519B-4E39-AD47-DC3CE266A8AE,FjGabiNvramMergeDxe D317F29B-A325-4712-9BF1-C61954DC198C,EfiSmartCardEdgeProtocolGuid D31D5D8B-61F3-4FC5-9CBB-7AEB6D987932,TouchDriver D31EAA20-8436-4E34-9A06-C47C78E19F18,SIOBasicIODxe D31F0400-7D16-4316-BF88-6065883B402B,EfiPchInfoProtocolGuid D3231048-B7D7-46FC-80F8-2F7B229586C5,UTDMUIApp D3269FDE-ED75-4891-BE1C-0162EF1FA5A3,FjSystemDataDriverDxe D326D041-BD31-4C01-B5A8-628BE87F0653,EfiSmmFirmwareVolumeBlockProtocolGuid D326F501-4D17-6E44-C840-208426F90CEC,Pca9535aPei D32CAE03-FFFE-4F67-BBF9-7CB851C4580E,SmcFeatureSupportFlags D3300D09-B70F-4315-9785-FE37209EFDCB,HddSecurityBdsCall D330B893-C7FA-4BCD-B0BE-64DFE98415C2,FjRiserPowerDelivery D33AC55B-82A6-448D-8D14-DFE0814D0792,DellSetupRollbackDxeDriver D34BDC5E-968A-40F5-A48C-E594F45AE211,VariableAuthSmm D34D3234-38BA-428B-9ACD-84E830A80785,AmiModulePkgTokenSpaceGuid D34E68E9-B9BF-4924-8A06-0EA2672204DD,PciHostBridge D358D713-7E11-43F1-9456-F5FF2EBE19A8,SbSocBrhDxe D359DE86-0A1B-47BC-95D2-1D1F8FFF0AD8,ChipsetSvcSmm D35EDA81-07D0-4142-9409-B07233ED2D07,CseSpiSelectPpiGuid D362743E-CD68-4500-AA93-C596383AE31B,FjPasswordCtrlPei D3637873-F8BE-4ECD-B6CA-5160E5978C88,DellSyncSetupSmm D3667456-63A0-4713-B7DB-4162C196A37E,DxePostEnd D36DDD2D-1C66-4210-B77A-2FD9F920E51F,AsusEupSmi D3705011-BC19-4AF7-BE16-F68030378C15,EfiIntelFrameworkModulePkgTokenSpaceGuid D3709BB4-B194-4B71-B9C0-DBD8D2DA97AD,IntelIchLegacyInterruptDxe D3721461-FC24-443E-B486-724C9B5A2F70,MemTestDxe D3790CB3-A890-4A5A-A42E-ECB6B140D814,UHESerial D38D1F35-890B-43CA-BF9B-96337B86B06B,TypeADh D38FC876-0B17-4D95-A7F8-A022ECA1CA42,MeExtMeasurement D397728F-4C9B-9C18-9816-F9B869B00085,SataPortConfigSmm D3987D4B-971A-435F-8CAF-4967EB627241,SerialDxe D398E61C-2A9C-4A6D-B265-47696CF9E442,ASUSFS2 D39A4E04-C42D-4941-BFBD-286DF48B304B,MeLockStatusSmm D3A6CF7C-2A13-4DCD-961F-B88C85ACEB34,AmdCcxZenRvPei D3AAD8DC-3A48-46AC-B1C7-28A9D3CF6755,WinNtThunkPPIToProtocolPei D3AAFF0F-CB22-4792-896C-802C2E9383BA,WifiManagerApp D3AFC39E-BC47-49D3-AFED-604C46752D0A,DellPsidPei D3B36F2B-D551-11D4-9A46-0090273FC14D,EfiConsoleInDeviceGuid D3B36F2C-D551-11D4-9A46-0090273FC14D,EfiConsoleOutDeviceGuid D3B36F2D-D551-11D4-9A46-0090273FC14D,EfiStandardErrorDeviceGuid D3B46F3B-D441-1244-9A12-0012273FC14D,EfiXenInfoGuid D3B7F871-3F04-48D4-B9C1-5871825D00AA,GnbMatisseRouting D3BF10C7-0D1F-4F1E-8A9C-1394024DB43A,AmdCcxVhMdnDxe D3BFE2DE-3DAF-11DF-BA40-E3A556D89593,IffsGpt D3C92EF3-39AA-4ECE-A1E6-DFD7A2D497D4,ODMShareMemProtocol D3DD0586-976D-449F-9837-0392E93B7D52,DellOsProtocolAccess D3E6E0F0-7206-40C5-B58A-05FCAD08DBC8,OemDxe D3E8A227-E905-407E-8F8F-FED32FB2F93B,DellUsbSmmCore D3EB600F-06EF-4837-A2A8-7C4C90BE8DA5,BctBaseSmmSTXH D3ECC567-9FD5-44C1-86CF-5DA7A24F4B5D,EfiLpcWpc83627PolicyProtocolGuid D3F67D2D-67CA-4FB6-9654-77E82901469C,VirtualDev D400D1E4-A314-442B-89ED-A92E4C8197CB,EfiQuarkCapsuleGuid D4013B06-AB7D-4B9C-89D5-6EF61F507ECA,AsrockAmdSetupDxeRN D40B6B80-97D5-4282-BB1D-223A16918058,EfiNvdimmLabelProtocolGuid D423E494-2DB6-4D2E-AE23-0A3D8D9D6E22,FjEPrivacyFilterSmm D42AE6BD-1352-4BFB-909A-CA72A6EAE889,LzmaF86CustomDecompressGuid D42DB8C5-1E95-4A2F-9742-479C1BA42192,OemDataRegionFlashDxe D42F8F9A-9B96-4F47-B045-A8F3CD1FD9D3,SecureVariable D432A67F-14DC-484B-B3BB-3F0291849327,EfiDiskInfoProtocolGuid D432C4A5-D473-4067-9CF7-02CE92A3CBFD,FchProm21Dxe D434ED39-8EDD-4FF8-91BF-4B11AFE85471,SwapAddressRangeDxe D4395796-6F4C-4C6B-B9D1-92DAA7199A84,AmiRedFishApi D43E3F66-1B5D-4623-975F-7F5EBEEEF02D,MtkWifiDriver D446DA7F-F299-4911-8C91-91CCF5F8A752,SDBadgingSupport D450A69D-D8E4-C048-8E7E-0024EB541C79,NetworkInterfacePolicyDriver D458A654-F64C-49DB-B8D1-3821306BF1F6,BaseMemoryLibMmx D45DAC0C-4FE8-4304-FFFF-FFFF1745BE1A,XnotePopNoiseSmm D462AE45-FF5A-4448-A474-B986E2A0D5B1,G3WakeupDxe D463AB1A-F04A-4EF0-AAA2-CC3D03B25AF0,DxeSioHwmIo D4695647-7D01-4D96-AC7E-BB90EEE29EB9,H2OCryptoServicesPostMemPei D472AB34-8E21-4343-8BFF-01ECDE292375,DellThrottlingDriver D4787B71-A878-49C9-97CE-967DF2399AAA,SmramRomHoleK0Protocol D47C6285-335E-4F14-9CB9-DAB565B7B44B,SmbusDebugSmm D485A971-B6DC-4E1C-8730-C4455460A6FF,ResetDateTimePei D487DDB4-008B-11D9-AFDC-001083FFCA4D,EfiSasDevicePathGuid D4926BEA-00A3-40E5-A2B9-C317960F31BF,AmiPspFtpmPei D49D2EB0-44D5-4621-9FD6-1A92C9109B99,HiiResourcesSample D4A28A3E-DCF2-43CF-A2B7-F3572A7CAB09,EfiIobaseHob D4A5B2FD-AD44-404A-98A8-297857E72A53,SmcOobDataReadyProtocol D4A79A0D-B67D-4E83-8EFB-455924372934,DellTerminalPlatformPolicy D4A86A1B-F939-4D4D-BF7F-CE404572B282,BootOrderAdjustDxe D4A88838-EBF4-48D7-9D97-CE6789FDE0B7,CryptoPkgTest D4B47610-BC1C-480B-BD23-CB031B7AA0A2,BiosPowerOn D4B61940-73AB-48A5-9E26-53A4CA4A2C37,DellDiagsSmm D4B64FCA-7C4C-48C1-976F-5287423753E4,LenovoVariableDxeProtocol D4BECF5B-190D-46DB-92CC-3F5D74904DDA,SmmAccessDxe D4C189D5-002A-4E6B-96C1-9C9E877D230B,SmbiosType141 D4CA32B1-B1F2-4FF3-B475-66E7B8192A3B,AmiCpuidCksumHob D4CA32B3-B1FE-4FF7-B073-60EDBB162233,AmiDimmSpdDataHob D4D7C050-C273-44A0-8456-ABA6399EAF4D,LenovoResetSystemToFactoryDefaultsDxe D4DCD37C-90A3-406E-B193-323C6AAC2428,ASUSBackup D4E79DAE-AAFC-4382-9540-3E3FA42D4255,AmiNvmeLegacyProtocolGuid D4E91137-43F4-4E56-B989-D3D0E7B16955,InstallHookDxe D4EE25EA-0B48-43AE-A016-4D6E8B6C43B3,MemoryInit D4F29055-E1FB-11D4-BD0D-0080C73C8881,EfiWinNtCpuSpeed D4F90895-A60B-4E97-B446-2855246F8930,AmdNbioBaseRVDxe D4F9FE6D-1696-462A-AC07-C009D1A0189A,IdeConfigSetup D4FF05AA-3C7D-4B8A-A1EE-AA5EFA0B1742,TrustedDeviceSetup D50234F4-6F4B-43E8-A013-3C1E33D9B9B1,EfiMemoryTypeFru D5057FEA-A6A4-4BB0-A3A1-7E018A8105FA,FjTimestampSmm D5063BF1-7AE6-46A9-B8D9-8E9F66E5DC06,PlatformSpiFvbSmm D5116E4B-DAD6-4122-A096-08D339B7FA40,ProcessErrorCode D5125E0F-1226-444F-A218-0085996ED5DA,Smbus D5196882-A970-4510-8FB9-D7583B6906E7,LenovoVariableSmm D51E367C-EF5A-4EC6-A39E-083C851EBF91,HidKbDxe D521F60C-7D65-4FF2-99C6-12A296040C57,DellCommonBoardInitDxe D5231481-174E-436F-8DF7-9A6D8A27232A,NbSspRouting D52B0965-681A-4DC6-92C6-B20A30208598,AAFTblPEI D52BB262-F022-49EC-86D2-7A293A7A054B,PchAcpiSmiDispatchProtocol D52D8AD2-EA9A-470C-9E33-828FA591AB8D,AmiPeiHashInterfaceProtocolGuid D530CEA0-DD63-11DE-8A39-0800200C9A66,MemSpd D5367802-B873-4C0F-B544-31B7CCF5C555,CmosManagerHob D53E4F4C-125B-4441-A3CB-72EE159533AE,AmtPetAlertDxe D53E9F23-CF7F-4270-ADC4-05E2920471EF,AmdSmmControl D54A91F0-4547-4380-8890-17C19937F853,DellSecureBootSmm D54D3DBE-CE19-489F-8EDE-9FE2F7238650,RestDxe D55319D5-6EDC-43E2-985B-F656E5B5153C,AmdFabricPhxDxe D558DCB7-7A3E-4A38-8C46-F6CF21DFC1E6,BtPreBootDxe D5649ACA-DA40-4C58-A4DF-8E42EB40A180,SaPolicyProtocolGuid D56A4094-570F-4D3D-8F5F-8D8AA0B396CB,EhciPei D56B6D73-1A7B-4015-9BB4-7B071729ED24,EdkiiSmmPerformanceMeasurementProtocol D5710339-A467-4F76-B053-4F14C2F5C999,FjDtPlatformDiagnosticsDxe D579766D-54C0-4A51-AA39-411E59981DF2,UsbOcUpdateDxeBlizzard D57BC5C5-F058-4AA8-8585-B7645E1A7D25,DpfServicesSmm D57C852E-809F-45CF-A377-D77BC0CB78EE,HddSmart D57E86D8-A921-4083-B3DD-5AFFA92B4FE5,Pca9536Pei D58EBCE1-AF26-488D-BE66-C164417F8C13,PciHostBridge D5919FF6-D708-4918-87A0-1BB21B157C08,CaseOpenDxe D5950985-8BE3-4B1C-B63F-95D15AB3B65F,SmmCpuSyncProtocol D598FC5D-AC01-4D9A-95B5-A1D2422504A5,TouchDriver D5A531AB-300B-4AA1-9B8A-9C6C8F0110F4,CrServiceSmm D5B01A04-24D8-44B9-A390-888D669A1CBF,HpAmdXhciSmm D5B06D16-2EA1-4DEF-98D0-A05D40728417,EfiWatchdogTimerDriverProtocolGuid D5B366C7-DB85-455F-B50B-900A694E4C8C,SlingShot D5C39D65-28B2-400A-9FBE-77E28BDD3CD5,AmdDebugDataPreserve D5D52FED-F8A6-49AC-97AC-7291A60405A6,FsIso9660 D5D946C7-92AB-41FB-A390-6C6239B4E413,BoardInitAdvancedPreMem D5E4EE5F-3E0A-453C-A725-B692BB06365A,EfiExtendedSalElogServicesProtocol D5E606EB-83DF-4E90-81E8-C3DB2F77179A,rmHwA15x2A7x3Guid D5FC5B41-F893-48A5-96EF-375C1874D45F,WlanSuplct D602D4E9-1F13-4E0F-8B6C-2B2FD32977D6,LEMSetFlashProtectedRange D6047569-C508-498F-AEC1-72E77DADE7AC,AepLogWmiSmm D6062B50-15CA-11DA-9219-001083FFCA4D,EfiAuthenticationChapRadiusGuid D608A2C1-4331-4685-9749-F6819BAF4C04,StaticSkuDataDxeSierra D6099B94-CD97-4CC5-8714-7F6312701A8A,VirtioGpuDxe D60CF145-F97C-4085-A73D-8D399757DFE9,AmiCpmWrapperDxe D60CF145-F97C-4085-A73D-8D399757DFEA,AmiCpmWrapperDxe D610A5C5-2EC8-4FC7-B7BC-5664EBB855D2,XnoteHiddenMenuSetup D617467B-1FF7-403F-A87D-29F61C80EE7C,AmdCpmOemInitPeim D61B6C7A-653A-45A9-8AF3-63A8A5076639,DellHddSmart D61DE96F-6AAA-4B7A-BF5E-DDCA9301DEDD,DellHardwareFailureLogDxe D6207835-B7E3-4FF8-B276-CDE3E52206BC,SmbiosDataUpdateDxeLightningRidgeEXECB1 D6294C9B-0866-4753-AAAD-7699AFC4BEE4,DefaultFixedBootOrder D62C96E9-D7D7-4D28-B0F9-BF2CA151DDEF,IePolicyInitPei D62E660E-6561-45DB-A838-8609BBA5FF37,Cf9Reset D62E673F-A935-4751-9279-4C1E63ED0A4E,FchI3cDxe D635213B-5334-46B3-AE37-8D436DD3D523,OemNvme D639D97F-5FCB-42CB-87C2-880A86F67CF2,CbsBasePeiBRH D6405DAC-92D7-4BB2-A9C9-CB7C749023F5,BIOSLD D641A0F5-CB7C-4846-A380-1D01B4D9E3B9,EfiPeiCorePrivate D6476950-2481-4CBB-8400-442542C766C8,ProcessorErrorHandler D6494E1B-E06F-4AB5-B64D-48B25AA9EB33,SmmCpuPlatformHookLibNull D65AEFE3-43B8-42CC-FFFF-FFFF07457063,RealtekCardReaderDxe D65D9F72-7BCE-4F73-A673-47AF446A1A31,SmmRuntimeDxeReportStatusCodeLibFramework D684FB08-8B0E-4CAF-8CFF-1EA386279809,HybridGraphicsSmm D687E479-DB37-4BCE-864A-02EEF6819DF1,SystemFormBrowserSimpleTextViewDxe D689F8C7-C354-4215-AA48-B6AD66C77EAF,LenovoN25Q032FlashPartSmm D69240C0-DD40-4F2D-9863-4848DA6E615F,AmiTseInvalidPasswordGuid D69A279B-58EB-45D1-A148-771BB9EB5251,EpcOsDataGuid D6A1CD70-4B33-4994-A6EA-375F2CCC5437,EfiWheaElogFv D6A2CB7F-6A18-4E2F-B43B-9920A733700A,DxeCore D6A530AD-14F3-45DD-A097-FB2A7C92B726,FjSystemResetDxe D6A9928C-3397-4DD1-818F-C664BA6DCAAF,DevUtility D6A9A1B9-4BFD-D61E-F037-3FA4CA06E046,Lua D6AC4AC2-8BC2-4CDD-8776-280E1469DE02,PchPolicyInitDxe D6B51356-0C90-4EE6-B3A7-48AA74D4A77A,SkipRegionAccessDxe D6B6547A-750E-4A3D-B61B-8703D8FA3287,DellAuxMac D6B6DA34-917B-4511-B147-407653BF391A,FjEvtControlDxe D6C1D55A-DB24-45CE-AE52-1E5087BE222E,AmdResetHook D6C42CE2-391C-4345-8BFE-195632AC4558,CertificateStorageEvent D6C589EA-DD29-49EF-97F6-1A9FE19A04E0,PwdCredentialProvider D6C92E00-1FAB-4775-8310-3AC1D774C3CD,GenesysInit D6C97E78-FCD7-47F5-B575-6E1940246C7C,DellCountryCodeDxeSync D6CC7A4D-440F-4FFC-879E-176CB5558118,FchSmmDispatcher D6D27C49-66CA-42C7-BC51-788328B5E5D0,SwSmi534D0240 D6D2FBA6-EF60-4C38-A83E-6769814D23B0,CryptoPei D6D47F07-1445-416C-BC8C-89C34D7CB210,HpFirstBootOptimizerDxe D6DAB28B-E52A-4C76-B9D1-982B112C9130,EcDashControllerSmm D6DF0817-248A-41F1-A1D3-59E537187D10,DellTcg2Smm D6E322B7-77ED-4394-86FD-FCED3C052780,LEMRomLayoutSmm D6E5092D-C7B2-4872-AF66-FDC0E6F95E78,EfiSystemNvDataHob D6E9EEF7-91C8-4CE3-ADEA-EAAAF3B4EB04,DellMeLocalFwUpdate2Dxe_ME180 D6EB696B-7EC3-4D1B-AA28-6775744C9EB5,TSEScreenMgmtProtocolGuid D6F37045-3DA2-4AA0-9777-1DF7D9FC61C9,iMRRaid D6F43B1B-0F21-462B-B8B7-A033C3EB4261,BaseMemoryLibOptPei D6F76587-98CA-43DE-9E1A-59E60D0ABE73,AplFakeCapsulePei D700E3BC-4291-4749-87AF-432A023DE658,DellNbConfigDxe D71863E8-A7B9-4B29-BEDA-4CDAE44E056E,DellPowerManagement D719B2CB-3D3A-4596-A3BC-DAD00E67656F,EfiImageSecurityDatabaseGuid D71C8BA4-4AF2-4D0D-B1BA-F2409F0C20D3,UncoreInitPeim D71C9263-2E64-40F9-82B8-F25B27069D4F,EnePEI D71DB106-E32D-4225-BFF4-DE6D77871761,PowerMgmtInitDoneProtocolGuid D739F969-FB2D-4BC2-AFE7-081327D3FEDE,ActiveManagement D74B7D80-4B7F-4A73-8A55-4B59D7DE747A,AmdResetManager D74CC5E6-B169-456E-91D2-BE2C2D1343A6,SpiFlashLibNull D750E6CB-811C-4436-A361-8BB7BF53B1CE,HpSystemInformationAspect D753C57C-87D0-4636-876A-5EE0E73A6689,PlatformMilestoneHookDxe D753C57C-87D0-4636-876A-5EE0E73A668A,BoardMilestoneHookDxe D759C710-49EA-4D26-9F7C-DE1064876E2F,FpgaSocketHob D75E1AFA-0A28-41B1-9DA6-765976742542,DellDiagAbstraction D7642443-87B7-4832-9607-0E1EA81C1D86,AmiRomLayoutHob D76E0A85-4908-4732-BE0F-BE707EF7CB37,SmbiosTpmDeviceInfo D77A3FE1-51FE-4613-A81D-82AE24464CFD,AmiTseOemPortingVar6 D77C900D-A1C7-41C5-B989-0C3D37FCA432,AmtWrapperDxe D780600B-697E-43B7-9D6E-30F742891A72,OemACPIDriverSmm D7908EC2-227A-472F-8095-6A159DD723D2,AmdNbioPcieRVDxe D79DF6B0-EF44-43BD-9797-43E93BCF5FA8,VlanConfigFormSetGuid D7A50E8B-FD3A-443A-81A9-C951DAC8B3FF,LenovoLoggingDxe D7AC94AF-A498-45EC-BFA2-A56E9534618B,AmtForcePushPetVariable D7AD636E-B997-459B-BF3F-8846897980E1,EfiHiiProtocolGuid D7B10D4E-67E6-4C74-83E9-F9AF0ACC33CC,PchInitSmm D7B6EBD9-6322-41C3-8F34-47974814488A,TPMNationZ D7BD52B0-B2DC-4F08-B467-DE50D728F6BD,EfiNbMrcInfo D7C74207-A831-4A26-B1F5-D193065CE8B6,EfiAdapterInfoMediaStateGuid D7CA1F9B-E478-4257-9D8E-2FE2DEE978BE,OemAcpiModePei D7D7CA47-663B-488D-AEE3-6A35DCB89E2A,SbGlobalSmiControl D7DCC862-A2A0-4CDA-B18E-4477D2FE49E3,RadioExecSmm D7E31ECB-0A17-4529-9B84-C529DE8E1C0E,AcpiFvi D7E3630F-55CA-43DF-8035-F4FB0774D0D9,TmFifoDxe D7E3D34E-1FF0-4E7A-8877-1FAAF9EB9654,CbsBaseDxeBRH D7E5ABE9-33AB-418E-9F91-72DAE2BA8E2F,ArmScmiBaseProtocol D7E69789-1F68-45E8-96EF-3B6407A5B2DC,EfiKmsFormatAescbc256Guid D7E6ABC1-971B-461B-B5E4-3C3766267AD9,SbInterfaceDxe D7EBF6B1-CB2C-4EF6-8ED5-FB673C91DBE4,IntegratedDeviceDxe D8097F30-C9AB-4D76-8D87-890CA413657A,ElkhartLakeDxe D8117CFC-94A6-11D4-9A3A-0090273FC14D,EfiPeiFlushInstructionCache D8117CFE-94A6-11D4-9A3A-0090273FC14D,EfiDecompressProtocolGuid D8117CFF-94A6-11D4-9A3A-0090273FC14D,EfiPeiPeCoffLoaderGuid D8117D02-94A6-11D4-9A3A-0090273FC14D,EfiPeiTransferControl D815413A-D96D-40A6-9F9F-88E09E36FA49,PsdsAcpiDxe D81AF109-4741-4EDD-B4C4-58CFF321D7AD,FjBiosPostGpioPei D81D1706-BE6F-4734-B2AF-F885FFDCB16D,AsixUsbEthernetDxe D824AD37-7AB9-4817-BD53-DBAB779A3C83,DellAdvSysMgmtConfigSmm D82A73A8-7CB5-4BC1-8FA5-60F0EE2470A7,BiosUpdatePlatformPolicySmm D82D57AC-99F9-4C7A-B591-BBCF8A0E7FBE,PchSmbusArpDisabled D8320405-3CED-406C-B93C-433A58C6D1FA,SecureBIOCameraSonix D8367B27-7A08-4AC5-AD1F-C93C3E94225E,AodSmmRv D83977DF-34C3-4A21-A104-369B8D4FA7B7,LenovoMfgBenchEventDxe D84BEFF0-159A-4B60-9AB9-AC5C474BD3B1,AmiTseNVRAMUpdateGuid D85A4835-5A82-4894-AC02-706F43D5978E,EdkiiConfigurationManagerProtocol D85A4A0C-2E73-4491-92E1-DCEFC3882A68,DellPhysicalPresence D8654609-F6F3-44E9-B8ED-20A9829818C8,DellIoExpanderSmm D872AEFA-7C5F-4C66-8836-AA57EFF0D9F8,IconGenericExternalHardDrive D87DFF41-21E5-44A6-978B-80786AB97229,DellPermanentDevicePolicySmm D8803829-0373-4475-9767-461EDEA28813,CsmInt10HookSmm D890F055-873A-4E6E-A79F-1B8DD2427FE4,AmdNbioBaseRnDxe D893CDBA-7F65-47F5-A67A-228252F03633,DellFmpEc D8944553-C4DD-41F4-9B30-E1397CFB267B,EfiNicIp4ConfigVariableGuid D89A7D8B-D016-4D26-93E3-EAB6B4D3B0A2,Enter_Setup D8A6F4A6-0E97-4A8B-A475-39F1B28B5AEC,Fv2OnFvThunk D8AAB432-93CC-48D2-9F34-3496CAF92185,SmartFanCtrlDXE D8AB1072-4B45-4828-837D-A4214377802E,BCLANDXE D8B6B249-77F8-4809-ACE2-5975DA16AAF5,TouchPadDriver D8CAC470-CB7B-11E3-856B-047D7B99E097,BootOptionInterfaceCoreDxe D8D282C4-4478-4D75-B10B-B08F5E59B5E8,BasicDiagnostics D8E32E50-1DD2-4F8A-93A5-2569C03D0FC1,FchSmbusPei D8E4C555-0BB6-4C6D-94CD-36072D59DCD2,PrmConfigDxe D8F15168-57A0-46D5-9071-2F3C23CB236D,RpmcPei D8F8C7F6-52BB-4CB3-BA5B-0683628A2CEC,DellDesktopPowerLEDSmm D8FA1C9B-049E-4292-A517-450A8D2242EF,FjGabiFlashCommonFdRegionCtrlDxe D9035175-8CE2-47DE-A8B8-CC98E5E2A885,EfiPlatformInfoProtocol D903BF23-E1DE-4DF0-8B96-73B6F2C2B797,DevFwUpd D9072C35-EB8F-43AD-A220-34D40E2A8285,EfiSmmSpiProtocolGuid D9117BD7-0807-4F38-B773-AD86A791EAFC,SiInitPreMemFsp D912C7BC-F098-4367-92BA-E911083C7B0E,Udp6Dxe D919136E-865C-4B10-B099-5D897CFEDE08,AmdCpmInitPeim D92E9C5B-BB6C-46EE-B8E7-6B0B3D4B2BBC,AsusBiosRecoveryDxe D933DEDE-0260-4E76-A7D9-2F9F2440E5A5,NbSmi D9389EFA-2C9A-4696-8BB6-FC5F398D8DF3,SmmGpioControl D93C3649-69A5-43C7-8CD3-49D41772453A,FchPromontoryPlusGpioPei D93CE3D8-A7EB-4730-8C8E-CC466A9ECC3C,ReportStatusCodeRouterRuntimeDxe D93D907E-EE7D-4577-833C-5AD3ADBBB8C4,DeepS3ConfigDxe D93DE2E3-3727-4D5B-B49F-777C93A971D3,OpromUpdateDxeLightningRidgeEXECB3 D94082B7-04E0-4586-8072-8FC562ABBBFA,IncompatiblePciDeviceSupport D94816D9-D2EC-4BC9-963D-09D263F715C1,HousingMonitoringPei D952A0C4-4D96-6853-DECD-058DC9DC5FCF,AmdSocAm4MtsPei D9569195-ED94-47D2-9523-38BF2D201371,IntelPciDeviceSecurityDxe D959E387-7B91-452C-90E0-A1DBAC90DDB8,ArmPlatformPrePiUniCore D95D6B4F-92FA-4E78-9C48-C68C0813688E,OemLinkDellPwdLib D965579C-7DF4-458D-A803-94D0808BC422,NCT7802YDxeInit D9686596-5BC4-4861-82B3-176260CB1965,AMDNavi D96A2393-8790-4BAA-9CEB-42533F016EE9,RegAccessSMM D97435DE-E080-45FC-96BE-4A06A5C82F7F,AsusVgaDxeBs D97435DE-E680-41FC-93BE-4A76A5C82F7F,SerialDebugInitPei D9760FF3-3CCA-4267-80F9-7527FAFA4223,EfiMtftp6ServiceBindingProtocolGuid D97BEDBA-E766-40F2-AC17-5FAF44A7BBF3,WiGigSmm D985F810-69ED-4E58-FFFF-FFFF4ED8D2DC,XnoteSystemPolicyPei D988358A-157F-43B7-9A7A-2757D663DCEB,DellStorageAgentConfigPolicy D98E3EA3-6F39-4BE4-82CE-5A890CCB2C95,EfiStatusCodeArchProtocol D993E866-5C8F-4DE7-BE99-453E284A43AF,WakeOnLanDxe D995C16A-DF06-4B26-9C5B-246FC7464649,SystemAcpiSlp2Dxe D995E954-BBC1-430F-AD91-B44DCB3C6F35,EfiPcieErrorSectionGuid D99B0C82-9BB0-4B8D-9545-A2670375A931,AfuCapsuleOnDiskSmm D99D0269-592D-4618-A36C-FA8007331CBC,DeviceInfoLookupDxe D99FC054-CC38-4582-B0A6-F533678BAFA9,DellPeiPchGpioControl D9A688C2-F1EC-4884-8262-2C6381AF254B,CsmSmiDispatcher D9AE5A34-2096-4DED-BF11-4738B0A39FA8,DellAmdCbsApcbUpdateSmmShp D9B07611-4ED7-38BF-B304-42116E7C966A,OSRecovery D9BEE56E-75DC-49D9-B4D7-B534210F637A,EfiCertDbGuid D9CD0AA0-C20F-4810-999E-D991FD0484D9,DellSmBiosStrucD9 D9D114EF-F40B-4D48-AAA0-A3DC99C9F5BD,DebugAgentPei D9D6BA2A-8225-469B-B36E-3B34EBE805CF,StatusCodeHandlerRuntimeDxeUsb D9DCC5DF-4007-435E-9098-8970935504B2,PlatformDxe D9DDCFF2-215A-480A-AA63-1DF1F5EDBC01,HddSecurityPei D9E4F040-B4D0-4C26-8400-B1D91B756B77,IteOnlyPei D9E9FA06-0FE0-41C3-96FB-83425A3394F8,EfiExtendedSalBaseServicesProtocolGuid D9EA74E6-0B4D-4916-9821-EB58B86211D8,SbPcdDxe D9EB5F72-63F5-4CC2-9FCF-BFECE18FF0B6,OemThermalPolicySMM D9F11A26-249C-46AC-9CB5-E4F77E035C90,NetworkRecoveryNameLabel D9F1669A-F505-48BD-A892-94B7CA903031,SignalBeforeEnterSetup D9F5B28C-9FF1-47D6-B503-3DC23BD345FF,PchEarlyInitPeim DA11541F-5341-4763-8386-3863943973B2,I2cInitializeDxe DA17EC65-21E4-49AB-B8BA-1F8D026DC148,FjPortReplicatorSmm DA1B0D11-D1A7-46C4-9DC9-F3714875C6EB,VarCheckPolicyLibMmiHandler DA1C487A-C375-4D18-BD71-E0FA9F893998,EpsaReconnectUsbDriver DA2122B3-454C-4321-8F43-8A610AFFEB80,PspResumeServicesSmm DA36718F-E022-4FD8-BAD8-EF27F9E4928F,HeciInitSmm DA389016-4D1E-4814-A13B-364F13D8DE3E,ClientronProgramGpioPei DA3B0E29-2DA7-48A7-AE98-B21093DBBC2B,RecoveryImageReadWrite DA3EC7A1-F6D3-4129-98B0-9494F8585006,DellLegUsbBusProtocol DA3F7A4B-52F2-4086-B0B8-FEE95DF7A733,SmbusDxe DA3F8F9E-8D46-4B66-A009-42C8BCAD8530,FjVgaDxe DA451AF6-88D1-4FD7-B86E-44BC47EE1F7E,DellStorageAgentsSmm DA465B87-A26F-4C12-B78A-0361428FA026,AssetQrCode DA473D7F-4B31-4D63-92B7-3D905EF84B84,AmiSmmBufferValidationProtocol DA490532-DA5F-43C9-A0CE-6A2E05919350,AfuCapsuleOnDiskDxe DA4B2D79-FEE1-42C6-9B56-923633398AEB,BiosCapsule DA5524A0-6030-4A66-A9E4-D26629871921,FjAlderLakeSmm DA56B22F-8379-4F2F-B328-221C0182C6F5,NearTdpLockOc DA571595-4D99-487C-827C-2622677D3307,EfiStatusCodeDataTypeAssert DA5D9983-033C-4823-9349-8B1B6A798030,LenovoSystemStatusCodeGenericSmm DA64AB9F-EC7F-4BE5-AC79-5352DCD1614D,AmdCpmOemSmm DA6855BD-07B7-4C05-9ED8-E259FD360E22,EfiPei144FloppyBlockIoPpiGuid DA78142B-E4A5-4833-B20B-6723007947CB,FjLanI219LmSmm DA7CAF76-CB17-4D80-AE21-2BD3AE421C76,RuntimeAmiFlashLibCompat DA7F03CD-037A-4A98-81EB-7E6A99A711B9,DellExtendedBatteryLifeSmm DA806754-AF95-4E1B-ABC8-FAB569FC2B3F,DellErrorHandlerPei DA836F8D-217F-4CA0-99C2-1CA4E16077EA,EfiHash2ServiceBindingProtocolGuid DA8CCDF4-ED8F-4FFC-B5EF-2EF55E24932A,ShellAcpiViewHii DA8CD7C4-1C00-49E2-803E-5214E701894C,EfiI2cEnumerateProtocolGuid DA964524-D0E5-4C32-90D0-010021CFB2DC,PMBUSDXE DA97681C-A9E3-4209-A9D5-F9E98152F39A,ClearChassisIntrusion DA9F192F-BAE4-4F20-8C6C-55C1ACDE80B0,menu_checked DAA55048-BC3F-4DD9-999B-F58ABF2BBFCC,DxePlatform DAAF0056-87B5-4584-854C-CF207B364CEA,SwSmi534D0840 DABA25A6-DF31-4151-81EF-627701EE4F26,EarlyDevices DABAFA6C-F394-4DAB-835F-8012FD730766,LEMSetVariableCtl DABF7A7B-B5FE-4A18-845D-F241D8582794,UndiFirmwareVersionDxe DAC2B117-B5FB-4964-A312-0DCC77061B9B,Font DAC3CB98-2295-412E-826D-FDEEA320CF31,AmiRecoveryImageHobGuid DAC84E15-C3F5-40F1-8184-8DE8DA91FE0E,SbSocMatissePei DAC84E15-C3F5-40F1-8184-8DE8DA91FE11,SbSocRenoirPei DACF6769-C3D5-4EFF-A181-FA0988E1D9B4,AmdCpmModernStandbyInitDxe DACF705C-71DF-497D-AABE-10186B2E1DDE,Recovery DADE1003-1B31-4FE4-8557-26FCEFC78275,InjectorKext DADE8301-CB29-4FD5-8148-56FD246C5B88,UefiApplicationEntryPoint DAE6B815-877D-4597-A637-CFCFCCC431ED,PlatformStatusCodeHandlerDxe DAEC02CC-92C7-47DD-AE0D-498C204253AE,HPOA3Smm DAEEAFC8-D2A8-4D9F-B093-3438984E5FDD,AmiDeviceGuardSecBootApiGuid DAF4BF89-CE71-4917-B522-C89D32FBC59F,SMBiosStaticData DAF7B0E6-32DE-4619-B63A-2B9173A75B14,GetNetByName DAFF1B62-A67A-4E11-8B57-496B572E0775,SystemLoadDefaultDxe DB08F6CA-3048-4CD8-9B1F-20BED33ECFE7,StatusCodeSmm DB0C8A93-57EE-4E4E-AA7D-1179234A7D63,DellRamDisk DB1ACEF4-46A0-4A81-8E1E-4B793CEAAD68,LenovoTpmFwSwitchDxe DB1C3561-4F9E-4748-A807-BCBE7FA92FC9,EzConfig DB2E0816-718E-4B1A-91AF-F2286FAB08BF,FchBixbySsdt DB33570E-910C-4669-A934-DC26BD304836,PchMctp DB3FC2DF-7376-4A8D-82AB-9154A136A65A,UniversalPayloadPlatformBootManagerOverrideProtocol DB41E01B-A8B0-4E15-B619-4463975B357B,SetupDataChecksumErr DB47D7D3-FE81-11D3-9A35-0090273FC14D,EfiFileSystemVolumeLabelInfoIdGuid DB4DB11A-0E5C-40B5-8E46-17D04486A21B,LenovoMx25L64XflashPartSmm DB4DC31F-F307-4D6A-A347-180FD27EC10A,MsiTouchPanel DB4E8151-57ED-4BED-8833-6751B5D1A8D7,ConnectConInEventGuid DB551771-4449-4387-908D-F70685B1DCAF,PlatformMilestoneHookSmm DB63592C-B8CC-44C8-918C-51F534598A5A,PchResetProtocolGuid DB6AE46F-C20B-45AC-8E53-ED0B90015E3C,AsusQualityIntSelfBin DB6FB49A-918C-4C11-FFFF-FFFF636503A5,XnoteSystemPolicyDxe DB73174E-E46A-4927-9947-CF2DBEAF1681,PowerMgmtConfigGuid DB8AF09A-34E3-4A7B-8225-8C5B0C059EB8,AppleSmc DB941521-4EA7-4C87-A711-354DB5D6D7E6,OemSmbiosConfigDxe DB9A1E3D-45CB-4ABB-853B-E5387FDB2E2D,EfiLegacyBiosProtocolGuid DBA5B11B-8686-43DD-8850-854FD3D4B244,AsusFirstBootSetting DBA6A7E3-BB57-4BE7-8AF8-D578DB7E5687,EfiTscFrequencyGuid DBA79C8F-DB2B-4B05-A47C-AC789A9B67D9,ShippingPowerOnDxe DBAB39F4-8FF1-45B8-B92B-107848AC07E7,CompalCMFCSmmHook DBADD769-E86A-4819-8120-E991792C0BC1,VbtMipiAuoGuid DBAFED06-A439-4166-B051-C1C5339BC3BA,AmdNbioIOAPICPei DBB5F303-214D-41C4-BEA3-A1B56A42DA8B,IsaAcpiDriver DBBF780A-1337-49A8-9B73-3902D6047BD8,H19DisplayHook DBC461C3-B3DE-422A-B9B4-9886FD49A1E5,EfiJsonCapsuleResultTable DBC6381F-5554-4D14-8FFD-76D787B8ACBF,IpmiProtocolGuid DBC9FD21-FAD8-45B0-9E78-27158867CC93,BdsAllDriversConnectedProtocolGuid DBD5B6BA-6734-4C5D-BF53-2C210D93A012,IsctSmm DBDA3714-78BF-43FF-B30B-4BD3DBC01B54,PsmiMotBufferGuid DBDD9682-70FA-46CE-B89C-D6AF714E51B9,LpssSmm DBE23AA1-A342-4B97-85B6-B226F1617389,EfiPayLoadHobBasePpi DBE23AA9-A345-4B97-85B6-B226F1617389,EfiTemporaryRamSupportPpiGuid DBE33D2A-6B10-4E77-BEF8-C829F29C8A85,DellUsbBusDxe DBE37563-AFEF-4B41-BDCE-B01B6D1E8690,Tpm12DeviceLibInfineonI2c DBEA47AE-E64B-4DD9-9586-151AEC8D5C18,HpPlatformSmmServices DBFAB6C3-6C4B-4E4F-A8FE-AD1C27D5E8BA,OFCSmmDriver DBFF9D55-89B7-46DA-BDDF-677D3DC0241D,EfiAcpiSupportProtocolGuid DC08D13D-EC1A-4458-B37A-C50118D7AC48,SetupAutomationSmm DC092DB6-6F93-4C85-9615-7C8B23D48DB9,HpNetworkConfigDriver DC14E697-775A-4C3B-A11A-EDC38E1BE3E6,AmiCsmOpromPolicyProtocolGuid DC2AA475-F636-48BB-6D74-7F2D926C1111,LEMElockerSet DC2AA475-F939-48BB-9D74-7F2D629C1111,LoadComputraceImage DC2CD8BD-402C-4DC4-9BE0-0C432B07FA34,UefiFrameBufferInfoGuid DC3641B8-2FA8-4ED3-BC1F-F9962A03454B,Mtftp4Dxe DC38DF16-8280-49C1-B253-D7DBB301CF71,SystemNUserPasswordCredentialDxe DC38DF16-8280-49C1-B253-D7DBB301CF78,UserCredentialPwdDxe DC3AA475-F939-48BB-9D74-7F2D629C1111,LoadCptImage DC3EA0B0-A144-4797-B55B-53FA242B6E1D,EfiWheaProcessorSpecificErrorSection DC3EA0B0-A144-4797-B95B-53FA242B6E1D,EfiProcessorSpecificErrorSectionGuid DC54B283-1A77-4CD6-83BB-FDDA469A2EC6,EdkiiPeiUfsHostControllerPpiGuid DC571B6D-D570-4862-A95F-299B28FDC2D2,DellAdvSysMgmtConfigDxe DC58C51B-EC67-4DB7-B8A7-881858F55913,IntelLanUefiDriverI225 DC5FAA6B-BA33-49CD-8146-AF7D6DA39687,AcpiOemNVSInitDxe DC66C1E2-C114-4D0C-ACC0-003F15B3F729,BctBaseSmmRN DC68E307-6C8C-4997-B32F-3F73C381B769,DellSmmTagsProtocol DC695BFC-F8E8-4CD3-A9E5-83B805D3FDDD,KEMhDispChipset DC7063FC-E01D-476F-9BF3-DE010884BC53,DellSmbBbsInfo DC7E8613-C4BB-4DB0-8462-13511357ABE2,EfiKmsFormatAesxts256Guid DC8E20DF-8275-404A-B209-3818A3BA86A5,USBSecurityProtocol DC9034F3-75D6-4FCE-86D3-1F28B23FA933,OCPCtrlDxe DC90D1E2-556A-45CF-B3EF-9DE451807A17,SaInitDxe DC92A37B-4AC5-4117-AABB-019FFC0FD06A,FpkSetup DC952D08-C62B-41C6-BAC7-70ED054F91E5,Pkcs7VerifyDxe DC958E14-CA7E-479C-A656-2CB95F8A169B,RpmcDxe DC95D600-B0CA-43EC-871A-976B8A55CCE0,NvramHdrInfo DC99D47E-6808-4F3A-A1E4-BE7A9ADC59FF,FjIbvSfuControlAbstractionDxeProtocol DC9B795B-FFD9-44E8-A36D-6637852EB6E4,S5MaxPowerSavingsDxe DC9CACE8-8C2E-4FE7-9E41-E18C75FE9B66,DellSmBiosStrucB2 DCA1F451-980F-471A-8882-7A33123DFE52,MemoryIdm DCA41C06-FD2B-41E4-BBE7-946444DB0BD9,SystemFindFvPei DCAA4B60-408F-4BAD-99B9-B880D4EF0950,Tdt DCB5FCE4-2116-4E7B-BB83-2FC7329261BD,NvmExpressSmm DCBC3662-9CDA-4B52-A04C-82EB1D2348C7,EfiKmsFormatMd5128Guid DCBE6D66-D928-4138-8041-358F35CBCF80,IsaBusDxe DCC64575-FA7D-4B7B-B1AD-48427C97C74D,LibCtype DCC8F917-080B-400B-A31C-036F1373F048,CertificateStorageDxe DCCF6769-C3D5-4EFF-A181-FA0988E1D9B4,AmdCpmMsCommonInitDxe DCCFB2EF-AAE6-48D0-8DF2-DC4D764A5A92,RTKLanMmio DCD0BE23-9586-40F4-B643-06522CED4EDE,EfiPeiSecurity2PpiGuid DCDADB6D-880B-4CB9-9CC0-506C3E182CB2,BackupBiosInfo DCDD4692-88D3-4CE6-8CEF-15E0E4DA1494,Npce388nFlashDxe DCDED170-9AAD-4E64-BDD1-F55FA86E75B1,ApobPhxDxe DCDF614D-930E-4FDF-AFCD-F4A8A408E077,EarlyVideoDxe DCE1B094-7DC6-45D0-9FDD-D7FC3CC3E4EF,QemuRamfbDxe DCE5298C-1D89-4125-944A-CD04D3CA0AAA,FjSysmanTeutatesBin DCE7D3FA-CC44-407E-AE58-90895B328915,OdmSmmGNVS DCEC4A77-8CF7-4EA0-ADF3-63365B42C539,BluetoothHidDxe DCFA911D-26EB-469F-A220-38B7DC461220,EfiMemoryAttributesTableGuid DCFC22C0-A513-11E3-B576-446D571553EB,HotkeyInterfaceCoreDxe DCFD4C57-AAFD-4D92-B570-04B1212ED15E,AmdCpmOemInitDxe DD071A16-CF16-4AD3-A01E-5B15680CDFF0,KEMhUuid DD1BB969-BE0D-4B70-9E13-2ED2E1854240,LenovoWufuEsrtDxe DD1C807E-BDB9-49A4-AD50-E510DC948476,FujNotInSmm DD223EF8-6D1B-490A-A53E-BA86FAAEB778,MmcMediaDevice DD25B790-AE79-43C2-8644-96DAB90C3636,SystemOskTriggerDxe DD2E8F57-893F-4335-8DEA-4B5C343AE398,FjDeviceInfoIntelLan DD32356C-434B-418E-B3F7-E7227825F78E,UsbHubEnable DD455A69-EC75-456C-84D2-95CAE7D3C6D3,EslTcp6ServiceGuid DD4A4648-2DE7-4665-964D-21D9EF5FB446,EfiCcFinalEventsTable DD4DBCE0-59C2-4A4D-AB0D-358976023385,MTKWiFiGen2Dxe DD4EA471-D8D2-4CE7-86B3-14AFECE76141,KEMrWdtSmi DD51AB78-E55D-4413-AFAE-E592F6B5321B,AmiEventLogsDynamic DD5B9DAE-16BB-4E28-B10C-08A3AD7E44CE,AsusWakeOnRtcS5 DD5E92D1-DDAC-48CB-907A-882D8610E89E,SavePegConfig DD6C613A-5A77-4B4F-A61E-3BDD2AE21D81,PerfTuneProtocol DD73A3E6-9FDB-480E-81A6-A2D85D220B8C,DellXmlParser DD752080-DF6C-4533-AD66-6213EE681F84,ThermalDxe DD787473-07CE-4C63-82CE-930B33F39C09,SmmControl DD84017E-7F52-48F9-B16E-50ED9E0DBE27,EfiSocketIioVariable DD87502B-CBDE-48A4-A896-F521E0745CC0,AppAdapterTdx3v0 DD915390-3B7F-428B-8DD4-C4C2FA897C63,AmdPlatformRasRsSmm DD980BB7-9FDA-4A15-BBD2-734E4678B2B1,AmdSocAm5RplPei DD9E7534-7762-4698-8C14-F58517A625AA,EfiSimpleTextInputExProtocolGuid DDA33BE6-4A6B-41F2-8067-ED4FE50BEA2B,FjDfciDxe DDABFEAC-EF63-452C-8F39-ED7FAED8265E,PpmPlatformPolicyProtocolGuid DDADFC93-FBC5-4389-B20F-EC99E4A6AE52,SmmLibNull DDB321DD-2D18-407D-8CC4-7F997BEB7D66,RecoveryPatch DDB412A6-E3F3-4E9E-90A3-2A991270219C,iFfsDxePolicyInit DDC3080A-2740-4EC2-9AA5-A0ADEFD6FF9C,EfiIioSystemProtocol DDCBCFBA-8EEB-488A-96D6-097831A6E50B,HashLibBaseCryptoRouterPei DDCF3616-3275-4164-98B6-FE85707FFE7D,EfiVariableInfoGuid DDD75BF6-4CF9-4A2C-978F-A5AE656B61E5,CaseOpenPei DDE1BC72-D45E-4209-AB85-14462D2F5074,RomImageAddress DDE31574-3589-4FA9-BC69-1729AF6FDA4E,AmiNvramUpdateProtocolGuid DDED691E-0495-45DB-ADFF-D68452C9A5A4,Float DDEF12C9-944D-4757-A3EC-CCFBADA96DD2,DellFlashBios DDFB5557-3E2E-4569-B459-BEFFE189B8B0,AmiSmbiosFlashDataProtocolGuid DE072137-A9FC-408C-8B4D-6FD2D798BBCB,FjUsbSecurityVG2 DE0EE9A4-3C7A-44F2-B78B-E3CCD69C3AF7,EfiExtendedSalBootServiceProtocolGuid DE115752-A79D-4F33-8459-A9524A64FC52,SioFanMapSmm DE13C06E-F532-49DA-A319-5F7DD0F603C2,GopFirmwareVersionDxe DE141A05-FA40-432D-9631-5E3E990F44D5,SlotDataUpdateDxeNeonCityEPRP DE161CFE-1E60-42A1-8CC3-EE7EF0735212,EfiTpmMpDriverProtocolGuid DE1B74E3-4A7F-FE08-058E-AC8678F99112,ExternalUsbPortConfigSmm DE1B74E3-4A7F-FE08-058E-AC8678F99114,UpdateMarshalString DE1B74E3-4A7F-FE08-058E-AC8678F99115,HddSMARTCheckDxe DE1B74E3-4A7F-FE08-058E-AC8678F99116,UpdateHardwareSignature DE1E3282-C8D6-40AD-957E-FBED9A491F6D,Platform DE223A35-931C-4C12-8E47-73B7A65C2B7A,AmdPspRomArmor2Smm DE23ACEE-CF55-4FB6-AA77-984AB53DE811,SaInitDxe DE23ACEE-CF55-4FB6-AA77-984AB53DE823,PchInitDxe DE24E0D1-FAEA-4906-9CC8-AC00BE3DFF3A,AmiIbbrOBBHobGuid DE28BC59-6228-41BD-BDF6-A3B9ADB58DA1,FramerworkEfiFirmwareVolumeBlockProtocolGuid DE35F257-36BF-4F71-8270-51CF5378B86C,GraphicsConfiguration DE371F7C-DEC4-4D21-ADF1-593ABCC15882,ArmGicDxe DE3D7A9C-A218-4891-7469-4FC0AE853298,AmdCpmPcieInitPeim DE3E049C-A218-4891-7469-4FC0AE853298,AmdCpmGpioInitPeim DE3E049C-A218-4891-8658-4FC0AE853298,AmdCpmDisplayFeaturePeim DE3E049C-A218-4891-8658-5FC06A84C783,SBCbsPEIEntryPei DE3E049C-A218-4891-8658-5FC0FA84C788,AmdProcessorInitPeim DE3E5631-461B-B4F4-0625-61B58B8787E1,HpCmosHandleLoadDefaults DE44408C-EAA3-4CA0-A05A-27380FC4861F,FjGabiFlashCommonDeRegionCtrlSmm DE498C70-1EDA-466B-ABCF-DD3ABC3D24B4,DummyMSOA DE5DE16A-75E4-42DE-86D8-30666A08EA93,DellUefiClass3ConfigPei DE5FC8BF-06ED-4DC5-BA9D-29F711699A85,TraceHubStatusCodeHandlerRuntimeDxe DE6DB1B8-C25A-4F4F-8EC5-DE5D27312108,OemHooksSmm DE820DA5-69CC-4E50-B6C3-F07B27B10BC2,CNVISetupDxe DE83EECD-2E0F-47D3-B634-556615B101DF,OemUsbConfigDxe DE882DD5-B797-4E2C-A8BE-C6367BCB4A23,EpscHwDeviceId DE8A5A2C-D788-47FB-A0B5-20CA8E58DFEC,DellSystemIdConfigPei DE8D943C-187E-42C3-98D1-1F7584DF6ABD,LfcGr2BoardType DE8F2878-36D5-498E-BA59-168C2647B335,PeiIffsTransitionStartPpi DE98E4D5-109B-48FC-B88D-980E97D8B93A,ArmaniPei DE9ABB5C-2F92-4352-9C56-F51BC9D5E55A,DxeFramework DE9D58C3-4242-4FEE-A90E-C40B057CBB94,BmcSync DEA652B0-D587-4C54-B5B4-C682E7A0AA3D,AcpiS3IdtrProfileGuid DEB0EE00-18DF-415C-AF03-74D09B0AAD87,JedecNvDimm DEBABF6E-49E4-4C21-8403-A1FB8F803A9D,FjSysmanAcpiStatesBin DEC5DAA4-6781-4820-9C63-A7B0E4F1DB31,ShellLevel1HiiGuid DEC9B486-1F16-47C7-8F68-DF1A41888BA5,UefiOvmfPkgPlatformInfo DECC9729-74CF-42E7-8672-B94B7EF4A4C5,ApobRmbPei DED3F743-CE2C-4BA6-92A2-FFCE2A6D72D9,PeiServicesTablePointerLibIdt DED60489-979C-4B5A-8EE4-4068B0CC38DC,OpalPasswordPei DED7956D-7E20-4F20-91A1-190439B04D5B,SmbiosGetFlashData DEE3F62A-3B0F-448B-81F9-4AFD546515B9,SiliconNvsDataPei DEE8D745-82AB-4168-B9D5-24D40641E441,HeciAccessPei DEEA4A6A-9308-465B-AD99-B5BDA5B55575,CompalThermalUtilitySmi DEEB4CD1-0F01-4F61-9F39-0DEC61E909FE,RunTimeWDTDXE DEEEA15E-4A77-4513-BA75-71D26FEF78A1,SmmIoLibSmmCpuIo2 DEF30E37-7AEC-4F69-91A2-CF099E2729F2,PciTableInit DEFBFC7A-CC02-4225-88AD-3C41E621785B,DellIdeDxe DEFD645B-720F-4ED3-9B4A-A3688BF5A300,AmdMemMcsrUserPreferenceDxe DF13AA16-B7B9-42A0-A399-00EE6C81A85A,DxeBoardInit DF1BCAA1-9152-4357-A6B6-E5FBCFBB6B81,FchSmbusPei DF1CCEF6-F301-4A63-9661-FC6030DCC880,SecMain DF2AFA8D-CFD0-4F71-830E-6A0EB22A9586,AdlinkDriverPei DF2B6949-B0AF-42B3-A70A-935D4875E480,OemRomIdVar DF2D868E-32FC-4CF0-8E6B-FFD95D1343D0,EfiPrintProtocolGuid DF2EC7DE-6F79-40F1-B704-7F8204E3D145,PlatformFlashDxe DF4F6190-42B8-4CA9-BA51-7A801B565F08,b57undix64 DF500D60-FAD2-0884-F5D6-52D8B082868F,WtSetCoreNumAndSmtDxe DF59F831-6689-45B5-A4D9-3E660D56573E,LenovoBootOptionProtocol DF5CD25A-8E55-46BA-8CDA-BC7DB7BF9C64,MdesStatusCodeDxe DF636282-5EED-11DF-A9D6-B334FBA24BB0,IntelHdAudioDxe DF639C97-21DD-48AF-A0DE-78CC2D95DC55,DefaultsManagerDxe DF655424-0025-4D4F-82B0-6DAC258BA879,NetworkOffLineLockerProtocol DF66196C-958F-472F-9393-717D82110AF6,AmiHashLogExtendExGuid DF665292-79D7-40E2-BA51-F7D494628185,CpuWakeUpBufferVariable DF6A1801-70F8-4E2A-8631-62E297565609,DxeSioEmi DF73ABDA-7A42-4E5E-B34B-E6830671C9A6,AmdSb900SmmDisp DF85204D-83CF-4132-B4FC-9A75F2BC874F,NonAmtNetworkControllerSmm DF8556F0-3A61-11DE-8A39-0800200C9A66,PerfTunePei DF874E87-FFC5-4C5D-8B1E-81EE01A6D435,SetupLoadDefaultPei DF8DE36D-D241-4947-87F1-36F9EDE545D8,ASUSFS DF934DA3-CD31-49FE-AF50-B3C87C79325F,PlatformDebugLibIoPort DF939333-42FC-4B2A-A59E-BBAE8281FEEF,EdkiiBootManagerMenuFile DF93FD41-44AE-4952-8971-41D472EAFC78,PspGetIntrusionLog DF960F12-05CE-4E18-B926-00AFC9F31C7E,PeiSioEmi DF9A9591-B646-4621-AF0D-18143A73289F,AppleLegacyBootFS DF9A9FFC-A075-4867-A0B2-5E7540BB023E,AcpiSmm DF9C0686-2B2E-49D9-94F4-A41C47AB9633,Hob DF9DC2AA-6634-4F84-B677-532BCC6AA9AB,AmdFtpmTcg2Smm DFA66065-B419-11D3-9A2D-0090273FC14D,EfiVT100Guid DFB36C78-E534-4E05-9D5D-1803F36E88F2,ReportFvRecoveryPei DFB386F7-E100-43AD-9C9A-ED90D08A5E12,EfiIpSecProtocolGuid DFB9BF4C-3520-4A80-904E-71D5F42E866A,XmlCliCommonDxe DFC54544-2516-47A5-B288-29F100AEFD01,HpCheckpointFlowControlCsbPrivate DFD4B243-0430-429D-829A-CA2BAB3FE7A6,AuthenticatedBiosInterfaceSmm DFD8D5CC-5AED-4820-A2B6-5C55E4E640EF,AcpiPlatformSmi DFDBBEAE-7D4B-4D3F-BA01-FBF3DA708599,ThunderboltPei DFDD9231-F5D7-4C8D-8BE8-6EAD873240F3,DellRuntimeSmbiosProtocol DFE12086-5323-44BB-BB3D-702165FCFB61,DellHardwareSignature DFE7EE64-D4FD-4424-BF1F-85DA524236FB,DellMfgModeDxeDriver DFEC7540-B6ED-425C-883F-9D8F3C85384B,MemRas DFF4BF9D-D027-4F7E-9385-C1ADB0CEF753,FjSmmAzaliaVerbTable DFF4E6C8-234C-453E-A92D-FA505E90D539,DellDaOwnerTag DFF5AB67-23C6-406F-99D4-F51B22044113,SmmWifiToolDriver DFF622F8-8BA6-4715-B58B-C840C1D6FAF4,MsSysGrdTpmNvDef DFFC7495-75AD-4354-AB0A-BDFD9046067C,AbtErasePei E000A056-8E65-4730-A6BA-6ED08B8D289C,FjSystemResetPei E000FC69-653B-43F5-93BC-4387957F330D,NVMEPowerSettingControl E008B434-0E73-440C-8612-A143F6A07BCB,Recovery E010BCCA-3A3B-4B03-BCF4-AE1F64A85C89,LenovoUserManagerPei E01FDFD3-48C8-432C-9555-4409DDBC6C6A,AmiFlashLibDxe E029BADD-E270-467E-9C0F-D7586C33850A,Runtime E02FA6E3-AFF0-47BF-93D6-3BDEDF690BBC,BoardKvmNetworkStack E0364FEE-1440-4A41-AD3E-50E0B106A83D,DellDaBfa E03ABADF-E536-4E88-B3A0-B77F78EB34FE,CpuDxe E03D5A07-CDCD-4AD1-A829-0B5A4AA6D62B,BiosConnectProfileLoaderDaSmm E03E0D46-5263-4845-B0A4-58D57B3177E2,UbaConfigDatabaseProtocol E03E6451-297A-4FE9-B1F7-639B70327C52,EnhancePeiVariable E04095C5-F88D-4942-BEF5-3424A693A8B9,BSODSmm E0471A15-76DC-4203-8B27-6DB4F8BA644A,UbaConfigDatabaseDxe E048749B-68A4-40C2-9A83-DC2AB34819A8,FchSmmDispatcher E04EFEC1-AE85-4845-999F-950ED7352F17,DisableAbtSetup E0527711-50F7-4672-B868-6A447EF54513,PatchDevice E052D8A6-224A-4C32-8D37-2E0AE162364D,PchSmbusDxe E05799E5-DB4B-451C-AC87-5893DD8E4295,FchTaishanDxe E05B0241-2F68-4DB4-8ADF-5760DE2E1570,TpmFwUpdateDxe E062C52D-78DC-4CC5-B246-B13497A8123C,PeiDxePostCodeLibReportStatusCode E065DDB3-8DFA-4CE0-A159-11D7B6FEA589,DellHwmIoSmm E0744B81-9513-49CD-8CEA-E9245E7039DA,EfiSmmGpiDispatchProtocolGuid E0746C42-D3F9-4F8B-B211-1410957B9FF5,BootOption E07473CF-E2ED-4096-BF9F-DC64853AE80B,AmdMemFp8Dxe E07A890D-7CC3-D042-A74B-12F117DDDF15,AppleGraphicsConsole E0857D65-5F84-4592-AE49-33D49BA6CCF7,MeSoftStrapUpdatePei E08CA6D5-8D02-43AE-ABB1-952CC787C933,PeiDefaultVbtGuid E08EB66A-F063-4BB4-9D11-18F77C227BB7,HpPlatformSataPortConfigDxe E092EDDD-0E41-4C9E-9C31-9C076FA8B5B6,ApobRsDxe E099F1C6-F520-4050-9556-D3A2CA154529,H19VariableChangedHook E09F355D-DAE8-4910-B14A-92780FDCF7CB,EdkiiPlatformSpecificResetNotificationPpi E0A0C1DE-469B-4D37-62E1-F8BB8AB958AE,Pca9545aDxe E0ADB57E-E1B6-44EC-BF2E-842874A26C83,LenovoWmaUsbDxe E0AFD3F0-C7E8-479C-9E4C-4579DCD850F8,IntegratedVideoOptionSmm E0AFD3F0-C7E8-479C-9E4C-4579DCD850F9,IntegratedVideoOptionDxe E0B3E91A-4A7F-46AF-AD7E-D05F62A2EA9A,SystemOnScreenKeyboardDxe E0B7F019-E82D-4432-9831-BC2CC4863F1F,FchHuangshanSmmInit E0BEC4CC-8AE8-4D15-92E5-9755A08987BB,NCT3933UPEI E0C14753-F9BE-11D2-9A0C-0090273FC14D,EfiPcAnsiGuid E0CEA537-FDB0-4D30-8C1C-9B0359A4598F,FjNuvotonNct5581Pei E0D172D7-1D81-4B39-90AE-FF45D5732483,CheckFspErrorInfoHobDxe E0D1BE6F-1C43-414E-B571-73C8C3105B18,UefiDriverAsix88179 E0D8CA17-4276-4386-BB79-48CB813D3C4F,EmbeddedTokenSpaceGuid E0E1AB16-C482-4015-AE70-64BDFCAA89AB,DellBiosConnectAdvancedDownloadMgr E0E1F6A1-9D4B-11E3-83C4-78E7D1AF36D1,HpNetworkBiosUpdateDriver E0E2C90C-F1AD-4759-8EA9-5B4E770576CD,AmdNbioPcieZPDxe E0E7D776-E7EB-4E5F-9AA8-54CF3AA64A43,PeiServicesTablePointerLibKr7 E0ECBEC9-B193-4351-A488-36A655F22F9F,SaveMemoryConfig E0EDAB16-C482-4015-AE70-64BDFCAA89AB,DellBiosConnectDownloadMgr E0F2E558-993B-43A9-88C8-D5308BCEBBBE,EcStorageAgentSmm E0FF720B-0140-43FE-9528-7A781357E42E,UsbOhciDxe E10539B8-1C35-4B84-8593-81555D065DD5,DellDaPasswords E10C1F46-6ECB-47A7-BA9A-1C29D074A022,AmdSocAm5PhxPei E1136F9A-A0CF-477A-A86F-DCE8EFEC3C63,AmdSocFt6MdnDxe E113F896-75CF-F640-817F-C85A79E8AE67,EmuThunkPpiGuid E11D6290-CCFD-4501-B59A-CECBA0E79133,OdometerMetrics E11FACA0-4710-4C8E-A7A2-01BAA2591B4C,FdtClientProtocolGuid E121EC07-9C42-45EE-B0B6-FFF8EF03C521,AppleRtcRam E12929EF-F08C-4E26-8290-281740D874DE,DisableChassisIntrusion E12BB3A6-1EA1-4F4F-FFFF-FFFFBCE290C5,RecoveryPartitionDxe E1319FEB-CA0D-4E73-B79C-34BA1134D79D,LVDS E13DD38C-1B41-49F5-8D92-0839D4234AA2,AmdCpmAdaptiveS4Smm E1404778-B848-4FFF-8351-9F78791417D9,TurboSmm E143C542-4FC4-4DD9-99F2-75715C44E41C,IePolicyInitDxe E1475E0C-1746-4802-862E-011C2C2D9D86,EfiRuntimeCryptProtocolGuid E14F04FA-8706-4353-92F2-9C2424746F9F,AdvancedFormSet E15696EF-0671-4822-AF07-FFD99A4783CC,SmuV12Pei E15704A1-A2F5-7668-28C0-F8C8663170A6,EcFlashDxe E159A956-3299-4EE9-9176-65181A4E5E9F,AmiIdeBusInitProtocolGuid E15C4934-056C-466C-9ECE-FF86C0742B57,OemWorkaroundPei E15C9DF9-FC62-47B0-869B-FFB41BC6EA90,DisplayLinkPxe E160D276-F2F9-44A2-8EA6-8BB5C4C30307,FjThermalDxe E1628C66-2A2D-4DC5-BD41-B20F3538AAF7,BootPicker E16600D0-3C41-4798-B16A-0DBA67D2FC47,AmiCpuSmbios E17F0016-E0E6-4B01-AB59-797A2699901B,AaeonHiManager E18541CD-F755-4F73-928D-643C8A79B229,EfiNetworkInterfaceIdentifierProtocolGuid E18A21D4-964B-4974-992A-2A2FEF11E643,WOSKDxe E18DBA7B-AB76-43FF-8C27-50EE3373481D,CxlEndpointDriver E18FE2D1-EF32-4C8E-895A-F02C3C38FB19,DellPropertyAccessorProtocol E19E3D16-BC11-11E4-9CAA-C2051D5D46B0,EfiArmProcessorErrorSectionGuid E1A21D94-4A20-4E0E-AE09-A9A21F24BB9E,EfiMeFwSkuVariable E1AD4352-2610-4DD6-BB8F-8BB2B03383A3,LenovoSystemScsiOpromPassThruDxe E1AEB947-940F-4635-A87F-817AB51B7261,DualDieRecoveryPei E1AF9F5B-7CDE-4F98-91ED-5E67868282B8,AsusBbVideo E1B26D32-414F-46DB-9AEE-420077F35DBE,AsrockAmdcpuDxe E1B8CF4A-FE7B-4676-B4F7-50C7228282A4,AmdApcbPeiV3 E1C1D0A9-40B1-4632-BDCC-D9D6E5295631,EfiPaddingRsaesPkcs1V1P5Guid E1C401BB-2336-47F6-A512-4308F6F42931,BixbyEarlyLink E1CD9D21-0FC2-438D-9703-04E66D961E57,EfiExtendedSalPalServicesProtocolGuid E1CEE6E3-6C42-4A4F-916E-38385290A556,SnpDxe E1CF12E4-762B-4576-A158-9B255A828AA7,gear2 E1DB609A-D413-4791-C6EE-093D8BC047A4,AmdNbioPcieDxe E1DC0888-C5AC-4A2C-83A5-91AD26960F31,DellTpmPpiSmm E1E1685A-7ABC-450F-882A-4E692CC6AF7E,FpgaConfigDataDxeNeonCityFPGA E1E4A857-C970-4075-A4DA-E9C41B69ADFC,AmiTextOutProtocolGuid E1EB612F-1C6C-485D-9D06-650844881569,EfiSignedCapsulePkgTokenSpaceGuid E1EDF165-6623-4B54-BD7A-A05E064206B0,FjSignon E1F2EBA0-F7B9-4A26-8620-131221642A90,EfiPciCfgPpiInServiceTableGuid E1F4062C-993B-4972-9A6A-3EB68AEC5403,RtkUndiDxe E1F7F068-97E7-4B74-BF0F-626745AF9934,DxeSpiNorFlashCommBuffer E20939BE-32D4-41BE-A150-897F85D49829,EfiMemoryOverwriteControlDataGuid E20BE735-E059-4CD5-A927-FF7D528EC650,DescriptorUpdate E21B0336-9B81-4743-B033-6D7405734E3C,PciDeviceInfoSetupUtilityDxe E21F35A8-42FF-4050-82D6-93F7CDFA7073,PiSmmCommunicationSmm E223CF65-F6CE-4122-B3AF-4BD18AFF40A1,CpuInfoProtocolGuid E227C522-D5FE-4A53-87B1-0FBE570F98E9,ObservableProtocolGuid E22BBCCA-516A-46A8-80E2-6745E83693BD,EdkiiSmmMemoryProfileGuid E22F236E-5094-48FD-8018-CF46BB584539,FjSystemResetSmm E2307DBF-199A-4298-9CF5-8749E1CA3038,LegacyUsbSmm E230E9FB-1232-4D2C-AC1C-E38FB00EA530,BiosLockRegion E230F9FB-12C2-4D2C-AC1C-E38F100EA530,SnapScreen E2347FA9-FD73-4165-B15C-C4665A259E53,AmtGbeChecksum E234A986-8946-485D-A645-C806225F0213,BiosDiags_2_0 E23F86E1-056E-4888-B685-CFCD67C179D4,SbRun E2406FEC-6609-4385-AB3D-4535B6C7C46D,SmmSxDispatch2OnSmmSxDispatchThunk E2441B64-7EF4-41FE-B3A3-8CAA7F8D3017,PciPlatform E252C258-C839-48CF-A85C-E8F4C3235BDA,OemApVariable E2657A19-7CD8-5389-98BC-6E201BBF4F70,MonacoFont2x E268A2D1-F8A2-4EB4-85B7-B052FEB79574,CpuInitDxe E269AC86-6049-4509-8D16-8899DA529BBB,PeiCmosInit E273212C-11D9-4728-B1AC-B6EE5083EED6,TbtRetimerCapsule1Dxe E2775B47-D453-4EE3-ADA7-391A1B05AC17,PciSioSerialDxe E28674B9-CAFE-4B29-85D4-42ACAA09BB69,UsbPxeUndiDriver3 E287D20B-D897-4E1E-A5D9-977763936A04,EfiPchS3SupportProtocolGuid E28B6026-542C-4908-A92D-C01BE5F0FD79,PlatformOcPolicyPei E292BA71-812C-42B9-885D-3F0565B098C7,SyncSetupCpt E2A5ECED-DE4C-432D-9AA0-061C33A308C8,A01DataServiceBodyDxe E2A74738-8934-48F5-8412-99E948C8DC1B,SmbiosDmiEdit E2AA867F-70DE-492A-B25A-77B3055024CB,CbsBaseDxePHX E2B36190-879B-4A3D-AD8D-F2E7BBA32784,EfiCertRsa2048Sha256Guid E2B40649-EAA4-434F-8BBC-9FA4A82E6AAE,AmdSmmControl E2C24CB6-A555-42F9-8442-BDB2B2B8B490,HsmpBrhDxe E2C3BC69-615C-4B5B-8E5C-A033A9C25ED6,Tcg800155PlatformIdEventHob E2CFB356-39A9-497B-B6B1-95B9D2EB2817,DellSlpConfig E2D5F333-D89E-4F3B-A270-7AB3C1727A57,AmdMemShpSp6Pei E2D7B442-8413-45B8-928C-C77DEEE25D4A,FjGpioAbstractionReferencePei E2D927F5-7219-4C06-A715-ADDEF7F2821B,OemPei E2DD8CE7-0A31-4C3B-A774-B2881ED85682,SysInfo E2EA6F47-E678-47FA-8C1B-02A03E825C6E,TcgMorLockSmm E2EAE962-C492-4CA4-A11F-1A7CBB050A41,English E2ECA273-A1C0-407E-9A5C-F10C55142196,BaseSmbusLibNull E2F05B00-408B-4A2B-914B-F3330B312F5E,SpeakerInit E2F66EA2-0313-4B7E-A74F-8E23A6FEB449,UfsPhyOverrideHobGuid E3007647-798F-FF48-AC61-E0B8D1B66327,PlatformDataRegion E305E101-913A-4A51-8E0E-B4618C5DB326,DellDxePchGpioControl E30674E9-A7F0-4E1F-A5B6-D1052A9A7505,Pca6107Dxe E30C62E1-8CB1-4D98-B535-436BCD5F4566,LEMSataPortOverrideProtocol E331EA77-E196-4590-9F35-87CF021BE337,FjBiosReadyGpio E3391FCF-E910-4E62-B216-756C850E29B9,SxDispatchNotify E33A8FC6-128F-482E-8CD5-360172CE4314,OemModelIDPei E33D951C-EBE8-474C-AFAA-21AC65AA768F,LEMBootModeFlagDxe E340F951-0CD0-4E18-A0C7-2E2FC9F6B01B,FjGabiSettingsCoreAbstractionSmm E3441740-3B41-4C90-9C9D-964056C7417D,DxePciLibEsal E34AE77D-3314-43F6-B41C-6F19F3F1D6A8,AmdPspPeiV2Rmb E352725A-B84A-4EBC-A994-228E19224816,SmcBMCSMI E35A40E9-D4BE-4F4D-ABA7-22C29CAE0BE1,UefiDriverRealTek E360BDBA-C3CE-46BE-8F37-B231E5CB9F35,FD_Drv_X64 E364A338-2842-4F57-A7C7-CDC8CFDF6CD7,AppleEvent E3697058-B73E-421A-BE3D-C08008D8A005,SmbiosDataUpdateDxeArcherCityModular E369E9DE-DC16-4F58-AC7B-088EA6DD5566,CbsSetupDxeSHP E36B2401-2251-4B13-AF67-A1B2EC561E36,DellSimulatedECSmm E374574A-2ADF-43DB-A778-88A75FC08026,DellSmbDaTokensConfig E3752948-B9A1-4770-90C4-DF41C38986BE,QemuVideoDxe E378875C-3282-48A0-A9A8-B1E4E16BD513,ChassisIntrusionS3 E37E75F7-015C-4B3D-9DE8-BE595F8B0662,Amd3rdPartyDxe E380280C-4C35-4AA3-B961-7AE489A2B926,AmiSmbiosDynamicDataGuid E3830347-4844-49F1-9570-18AA377B711C,AppleDiagnosticVault E3862753-53F0-4EF2-A2A8-C04800376EAE,FchI3cHciPei E38A1C3C-928C-4BF7-B6C1-7F0EF163FAA5,FlashDeviceLibRuntimeSmm E38C1029-E38F-45B9-8F0D-E2E60BC9B262,DisplayEngineGuid E38C11E3-968F-47B8-ACEF-ACC0693DB9FF,EfiIchTokenSpaceGuid E38CB52D-A74D-45DB-A8D0-290C9B21BBF2,UserProfileManager E391CC76-41F7-4995-8145-D416D03A2AD3,IntelGraphicsPeiDriver E3926671-4595-4D35-8911-2941BD77E475,DellEcChipDetectPei E3932A34-5729-4F24-9FB1-D7409B456A15,OemBadgingSupport E3B5B05E-E4B9-4ED1-BF0F-36D4CA7FE365,MulitBoardPei E3C604B2-5D43-46AD-A1E4-BF7D11B6AAC5,AmdCcxVhMdnSmm E3CACF62-3062-4E1D-978E-46807AB9747D,PlatformConfigChangeGuid E3E0E706-86E7-44A1-BF05-ECC42AE9999E,CbsBasePeiRN E3E4048D-6C0C-43E4-AE1C-FFB579D8EF41,OpalPasswordDxe E3E49B8D-1987-48D0-9A01-EDA179CA0BD6,XmlCliProtocol E3E8BA35-541F-4EF1-BFB8-75F02A26CC75,HybridGraphicsPei E3ED7C21-9DB8-47C7-8E7D-7DB97FE2063E,DellSmmCircBuff E3F7AF0C-DB93-4A36-A516-BE4844EA56C2,AsusFtmPei E405B445-B580-4C7F-9C1D-F226B81F74DD,BiosPowerSave E405FE96-5A56-40BA-BC24-619C89E2D2EE,EfiBmcSmbiosProtocol E40B55E5-20A2-41B0-A1AA-42040C98FF9D,WakeEventDxe E40DA004-CEAB-43CD-B4A8-98497BF33987,DellDashPolicyProtocol E41B2199-40EF-40D4-A43B-C60B981ACCDB,VariableCmosSmm E41BE5F9-EC41-454E-B125-A50EE117CA02,AmdMemS3CzDxe E424C009-CD92-4FEC-8029-D79D3F1CF3DE,IntelIchReset E425CF37-E55B-43D7-B2C6-CDB9EE8D25A5,RasClvRankSparingProtocol E42DAC01-2260-4D0B-ADF9-86D3888396FD,FjMacPei E43176D7-B6E8-4827-B784-7FFDC4B68561,EfiRngAlgorithmRaw E4364A7F-F825-430E-9D3A-9C9BE6817CA5,EdkiiLinuxTerm E449F62E-A726-48D2-942B-7872BF90067D,PciSerialDxe E44E41B5-8B58-4524-BF1D-4EE608A5983D,BoardAcpiTables E44FC862-12DF-4D4B-9511-93802514AAF8,RomHoleReplacementProtocolSmm E451DCBE-96A1-4729-A5CF-6B9C2CFF47FD,EfiPrimaryConsoleInDevice E4541241-8897-411A-91F8-7D7E45837146,BaseSerialPortLibNull E458FC74-9F13-4E0E-A81E-E32605FA7247,FlashUtilitySmmProtocol E45CA739-88A3-48E7-87E0-9FBE6C383059,AmiSMMUserCredServices E4673EC1-2943-492A-979E-2B3D8736015F,FjSxEnterResumeSmiSmm E469AA26-9268-4EB0-A087-DD4CEE37404B,SecuritySelectDxe E472DF6D-2B4F-44AC-9165-CA2FCD5AB1F5,AmiCspFlashPeiLibNull E4735AAC-9C27-493F-86EA-9EFF43D7ADCD,VirtualKeyboardDxe E490346E-2D11-45FF-9B49-F6489BC9DA36,AspmOverrideSmm E49061CE-99A7-41D3-AB3A-36E5CFBAD63E,AtapiPassThruDxe E49061CE-99A7-41D3-AB3A-36E5CFFEDCBA,LsiLogicPassThruDxe E492B063-E846-4810-A968-01BC24339774,DellSmmEventProtocol E494D22E-8BE9-11E9-9FCA-509A4C0CAE74,FprGoodixMocPrometheusDriver E49D33ED-513D-4634-B698-6F55AA751C1B,EfiSmbusHcProtocolGuid E4A83242-DEEE-F12E-15FF-0102036CC3CE,OneKeyLabel E4A88140-8E28-461D-91BC-A90FF015717C,UsbOcUpdateDxeLightningRidgeEXRP E4A95FFC-DA1C-440F-8ACC-E3FA6B5EE4F1,DecompressFvCnvDxe E4BD5CB1-9452-4BCA-AD8A-C3EDD770C40C,HpBatteryControl E4BD5CB1-9452-4BCA-AD8A-C3EDD770C40D,HpDimmSpdAccess E4BD5CB1-9452-4BCA-AD8A-C3EDD770C40E,HpThermalDiagnostic E4BD5CB1-9452-4BCA-AD8A-C3EDD770C40F,HpSysDiagsLaunch E4BD5CB1-9452-4BCA-AD8A-C3EDD770C410,HpSmartAdapterStatus E4BD5CB1-9452-4BCA-AD8A-C3EDD770C411,HpDimmId E4C5BA98-B685-4368-8D40-B80095FC0564,HpIcicleDxe E4C9411C-1268-404C-9E90-2573EF04F43F,StaticSkuDataDxeNeonCityEPECB E4CDF1A7-7659-491B-9079-B961E0E486FB,AmdPspPsbDisablePei E4D359FE-B180-45D2-A6E7-4638876BC471,BiosGuard28 E4D470CB-41D2-5308-D260-778DDAFADE13,AfterPowerLossDxe E4D662CD-7CCB-4CB5-AECE-4EEA398FF8E4,FpgaSocketBbsPcie E4D932F4-31C9-4075-8FA3-4030F7EB767A,SmmPlatform E4EB2CA8-FF2C-4EA4-A6FB-3EA56E711996,WakeOnLanInit E4ECD0B2-E277-4F2B-BECB-E4D75C9A812E,NbDxe E4ED28FD-13C1-40C4-B55A-C5260771A2CF,DeviceManagerDxe E4F272DA-237F-454C-8868-FCF096CF1C6C,LenovoPasswordCp E4F61863-FE2C-4B56-A8F4-08519BC439DF,VlanConfigDxe E4F7ED87-1ED5-4720-A57D-5BA00A727587,DdrtErrorHandler E4F880BF-81F1-4B87-B8F5-05EF64FD6670,AcpiWsmtDxe E503CA98-B63E-4592-9BCD-5A4452355134,SmmResourceCheckDxe E50B6E5D-359B-4BE0-A0B0-0715A301A606,EfiPeiSelPpi E50E8D30-1F12-4642-A79A-39870DF70361,SioSmbusAccessPei E510B6FD-525E-A80B-B13C-0B9B1D02CD3F,AutoRecoveryPei E512DFE4-BF44-480D-9B7A-777B0BE32775,EfiSmmBiosWriteDispatchProtocol E515404D-8DF5-4562-BCCB-74948D328189,AmdCpmThunderboltDxe E516ACEF-FA3C-4068-8CE4-888D62B0E497,AmiEfiCrbInfoProtocolGuid E51CF66A-7D79-43D0-9EE8-0A2084BDEAD4,AmdRasRnDxe E51D1B4E-68C3-41D8-956D-BA554427C3A3,PcieLaneDXE E51F643F-5F3C-4CFD-9126-4687305F18DA,ReadyToPxeBootGuid E5205B53-9758-44AB-A44D-DB3BE41D6742,DellNbConfigPei E523FC7A-3DF9-4846-A801-D8CC1BE29148,PxeDriver E5327F8D-C7FD-4133-BCE9-C87A275834D8,GpioV2ProtocolInitDxePchS E53485A0-3BF3-40D2-934B-3DB0FF405737,ComputraceBds E535D55A-A0B6-4AE6-82CC-FCAB7B5DC579,OemErpHookDxe E53734A3-E594-4C25-B1A2-081445650F7F,SmmChildDispatcher2 E541B773-DD11-420C-B026-DF993653F8BF,EfiSmmSwDispatchProtocolGuid E5434B26-AEDF-43DE-8935-D1C485A912B9,EfiPeiPlatformTypeOpalCityFpgaPpi E54A3327-A345-4068-8842-70AC0D519855,Tpm2DeviceLibDTpm E557F408-3BC2-48CE-A9E1-40A3A90EC1C7,USBControllerPei E5588BFF-E483-4BB2-8C43-44F3B705B413,KEMrWdtDxe E5652F81-EC09-479C-BAFF-E756F1829016,DirtyShutdownPei E5669E69-48A9-2F5F-684C-9289FCA737E9,RasOemDimmMap E566B097-4378-485F-91D0-1C097C190CE2,PowerButton E5769EA9-E706-454B-957F-AFC6DB4B8A0D,QncS3ContextInLockBoxGuid E57A1D7C-D16A-4975-AF5B-00EBAC089FC6,StartupMenuTimeout E5811364-BADA-4F1B-9E3A-6799C1A76DB0,DellSetupChangesMngSmm E58809F8-FBC1-48E2-883A-A30FDC4B441E,EfiIfrFrontPageGuid E59BCFD8-6887-4724-84DC-FEE2EDE230D0,AmdCpmPciHotPlugInitDxe E59C7A97-7FE9-4E32-95B0-708EB58AF507,DellSmmPaidSupDevPolicyProtocol E59CD769-5083-4F26-9094-6C919F916C4E,EdkiiAtaAtapiPolicyProtocol E59EA6B0-B05B-4B22-8F3A-242DCBE904A2,AmdCcxVhRnDxe E5A1333E-E1B4-4D55-CEEB-35C3EF133443,EfiFormBrowserProtocolGuid E5AB14DA-65A8-4CF8-B4EF-0BB2D5836825,UsbKbSmm E5B1D3B2-5E64-4972-86E1-7D38FB9D61EB,OemSmi E5B24906-CF08-4DCD-9EE3-0D163FCA34BF,DellTcg2Dxe E5B58DBB-7688-44B4-97BF-5F1D4B7CC8DB,EfiEapConfigurationProtocolGuid E5B734C5-391D-46DF-B8EA-6695C979B1D8,Npce388nFlashSmm E5CB2AC9-D35D-4430-936E-1DE332478DE7,EfiGraphicsDeviceInfoHobGuid E5CEE945-CCF3-4A38-A9F9-881321F3FCBE,GopConfigNexPeim E5D0875A-F647-4E16-BE4D-95024029CC44,MdesStatusCodeProtocol E5D0BBDC-1BBC-49B7-A8B6-67AAF0A1CD9E,SystemDiagnosticSplashScreenDxe E5D3026A-1CA5-40F0-8FB6-4B1AFA3C6EAA,AmiCmosAccessSmmProtocol E5DAFE50-10CB-41B5-9CB5-274E1CF1A8D7,Ip6BmcLanConfig E5DD1403-D622-C24E-8488-C71B17F5E802,EfiAdapterInformationProtocolGuid E5E2681D-2E43-44E6-A8CF-0630E35F9D8B,BoardSpiConfigProtocolSmm E5E2C9D9-5BF5-497E-8860-94F81A09ADE0,NvmeSmm E5E3C886-25FA-4C0C-B390-DCA2889A3B21,AmdErrorLogDisplayShpDxe E5E6AB4A-0D7D-4A06-A164-61E47CCE9B3B,DellAcpiPolicy E5FD5ACD-59F8-4D0A-B3A9-22CB020A6EAA,AmdFabricZpPei E5FF803C-DE51-4CC7-A8DB-39549815A886,DellUsbMassStorageDxe E6012F53-7595-409A-9FAC-30E0390A2A69,DellSmbQuickSetSupportProt E609AFBF-EA72-4D82-83CF-D7E065AC6B3B,NonAmtNetworkControllerSmm E60A79D5-DC9B-47F1-87D3-51BF697B6121,CpuPei E6186D9E-2797-423D-B075-970A2C5FC338,DmiArrayVarProtect E622443C-284E-4B47-A984-FD66B482DAC0,BootManagerPolicyDxe E629A64A-12C2-42D2-8F1F-B4A459887C28,SysTopologyReportDxe E62F9F2F-4895-4AB5-1234-399D0D9C1234,ComputraceDxe E633E57C-BBB1-4C6A-9F45-22C49378ADD0,BootScriptThunkHelper E6427302-1B37-4B55-8DD5-F43A2F018DE2,AmdCpmModernStandbyInitPei E646C3A8-C7E2-4DC2-A7F2-E32A270B0B26,LogoThunderbolt E646CA5D-6D6B-4773-879B-8B4DA2775E09,FchImcControl E649A8C3-F222-4E6C-3D63-92E7DFAC65A3,DatabaseManagerPei E64ACA85-F2CF-2246-87F4-92B839CCBB78,SingleFile E64EE5C6-6EC5-41D8-B6B9-C3D34A71FA47,OemPeiSetBixbyGpio E65DB1AB-A93F-417D-9A46-CE2419BA72C4,StaticSkuDataDxeCLX64L E660EA85-058E-4B55-A54B-F02F83A24707,DisplayEngine E6667FE9-F8C3-4BC6-8748-F875C12D9BB0,RmtcHelper E666D0B2-E277-7F2B-BECB-E7D75C9A812E,SvrNbDxe E66B4E21-D75C-45FD-AF53-4CD5918B5FEB,SbRecoveryDeviceDxe E6727A5E-CBCD-44C8-B37F-78BC3A0C16C8,X86EmulatorDxe E6754707-8F1A-4546-B9C6-B136D346DBF7,DellBattPolicy E67E927F-6140-407F-9A3E-4DBD13190F2C,IdeDeviceDetect E68088EF-D1A4-4336-C1DB-4D3A204730A6,LcdGraphicsDxe E683DC4F-09ED-4F22-866B-8E4046947C6C,EfiDebugSerialIoProtocol E6891556-798F-4EC9-9E48-E190B901364C,OemCheckErrors E68C55B8-C77B-4F66-834F-D73BFB9F29B3,AodDxe E68DC11A-A5F4-4AC3-AA2E-29E298BFF645,BCP E69562F2-C982-4E73-87B4-63BC79CDA110,CPLDDXE E6A6F568-53B5-45A4-859D-43B8C6C3645B,BiosDiags E6A7A1CE-5881-4B49-80BE-69C91811685C,Setup E6A81BBF-873D-47FD-B6BE-61B3E5720993,PchSmiDispatchProtocol E6AF1F7B-FC3F-46DA-A828-A3B457A44282,EfiPeiCpuIoPpiInstalledGuid E6C079CB-3D03-4BDF-8D72-4AB7FD8D5AD3,SBSMM E6C20B9D-0A4B-45F1-8E39-A967E28F99C4,DustFilterReminderSmm E6C2F70A-B604-4877-85BA-DEEC89E117EB,PchInitVariableGuid E6C7EBB7-1604-4FCB-8F87-B3A6F48730AE,OrderedCollectionTest E6D77BB0-34D5-4726-BD29-FFFE09E26FB4,SwitchableRsteRaidDriver E6DA0CE7-C945-4775-941C-55F74D46FA84,FjSlp20Support E6DB4007-113B-4605-8F5F-668D7364C807,SmmInt15Service E6DC9900-CCF6-452B-85FA-C7F1E52F0152,SlotDataUpdateDxeNeonCityEPECB E6E9CCBF-2544-47EF-ACFD-E49A96A79F49,AmdMbistBrhPei E6ED9B13-31AF-4C92-A561-D47B2FA994F7,FastBootHandlerDxe E6EDCD6E-6F99-43D3-ABFA-E3E683683AB6,AsusGetOpRom E6F014AB-CB0E-456E-8AF7-7221EDB702F7,ThinkpadAcpiNvsDataProtocol E6F4F8F7-4992-47B2-8302-8508745E4A23,OemPir E6F930E0-BAE5-40E6-98C9-4CD2298278E7,IconNetworkVolume E6FEA4AA-575C-48FC-99CE-1724DBDC1FF2,ActDxe E6FF49A0-15DF-48FD-9ACF-D7DC271B39D5,UefiCorebootModulePkgTokenSpaceGuid E701458C-4900-4CA5-B772-3D37949F7927,StatusCodeCallbackGuid E706CB54-84B8-40BD-832F-7FB2D5CB87B3,FileExplorerLite E70E508F-4466-49F3-BBFB-FDF24E950DBC,LockDownConfigGuid E71B3596-109E-4642-A432-FCF497F8DAE7,FchKeithSmmInit E724981B-2875-4C8A-9F9A-02AEC1965016,AsusModuleToIntSmmWrapper E72527CF-505B-4B50-99CD-A32467FA4AA4,AsfTable E7301EDE-A5D3-4CB6-9EB8-3235F938C3CA,MeIgnitionPostMem E7428F24-EF0C-4AE4-B521-9D247494900E,AsusOnBoardDeviceOprom E747D8FF-1794-48C6-96D7-A419D9C60F11,DellSioPolicyConfigPei E7488F2F-A9DD-4034-EB46-538F71DC7B9D,HpPcieRedriverPei E74CA1E2-6E5C-4F07-9831-8367B132DB89,AmdPspDxeV2Rn E74CCC19-BFF9-442E-9DA5-6A866262F179,DellCoreServiceHWIDNvs E74E2F92-ED3B-435D-8A7D-BB29408E9B22,AfuCapsuleOnDiskPei E750224E-7BCE-40AF-B5BB-47E3611EB5C2,TdxDxe E751F11E-E85A-4690-A729-75756C1E7D32,HidMouseDxe E7591211-2A96-4FD8-BB84-08387723DA26,PlatformVTdInfoSamplePei E763F5EF-301E-6DEE-BBB7-A6EC553DCF7E,HpModernStandbySetupConfigDxe E764500B-E398-4AB7-BBBC-99A8E683681F,MeSmbiosDxe E767BF7F-4DB6-5B34-1011-4FBE4CA7AFD2,VlvMmioPolicyPpiGuid E770BB69-BCB4-4D04-9E97-23FF9456FEAC,SystemAccess E77217F1-8B8D-4973-94BD-C975794BC010,MarvellUndiDriver E77E53A5-A5B8-45DC-BAEB-66C86F1AC811,RuntimeAcpiSmm E7862AEE-A997-48F3-9C58-B79D340D003A,AcerLibMemBuffer E7884BF4-51A1-485B-982A-FF89129983BC,BaseMemoryLibRepStr E790848E-B6AB-44AB-8491-DCA50C3907C6,EfiIpmiSolStatusProtocol E7980D88-35FC-4C20-8319-921A73C9A239,SioChip1InitDxe E79A7050-8109-40D1-B3C0-2A3C74C40204,AGI E7B2CD04-4B14-44C2-B748-CEAF2B664AB0,EdkiiPeiVariablePpi E7B5B715-1183-4533-BE76-56A6D7CEB02E,AmiPeiPciEnumerationPpi E7C35ABE-D48A-434B-BA22-0CFCC81DE631,OilBiosAssistantDxe E7CCB2DB-C180-4B42-8604-4689A7F610AD,AmiCrbPkgTokenSpace E7D62FEC-4994-4030-8B3F-AB4606A33350,SystemAcpiOA30Smm E7D9CAE1-6930-46E3-BDF9-0027446E7DF2,Gpio E7E1EFA6-7607-4A78-A7DD-43E4BD72C099,AppPkgTokenSpaceGuid E7E96F88-017B-417C-8DC8-B84C2B877020,BaseFspWrapperApiTestLibNull E7E9E21B-AA10-46F8-9E48-930D2D88F66B,FjSysmanAmphionSmmFjFext E7F1DFF9-DAB6-498A-9ADF-57F344EDDF57,UfsPassThruDxe E7F958DD-4BDE-4D6E-89AA-774EBF59A0FC,SetupConfigUpdateDxeGnrwsPPVCRB E806424F-D425-4B1A-BC26-5F690389A15A,PlatformMeHookPpi E807983E-D366-40C9-846A-0ED7E6022C96,DellTagsConfig E80DE38B-6D52-48D5-8BA2-52828AEE6221,OhciDxe E80F8135-5770-470F-AFAA-6B7B3CFB8A46,VlvInitPeimLate E813E116-C099-4D21-9C34-A552D5E9A5D0,AmiPeiMrcDefault E813FD31-D8CE-4DDF-8A9F-24D5CAC64FCF,AdlinkGetBoardInfo E8145F46-B686-4068-A2FA-13A58CB38BE6,ManufacturingModeSmm E81CC0AB-0585-8E1D-5BD9-59702FDA1FC4,OemBoardSmbios E82F99DE-74ED-4E56-BBA1-B143FCA3F69A,DebugAgentTimerLibNull E83C2C69-31E2-4557-A96F-0ADAB9EB7353,SmbiosDataUpdateDxeNeonCityEPECB E847BD26-1DC5-4DE0-BF2F-254F61A5B4DA,GfxInitPei E84AEF95-7CA6-4B2F-A398-B14D1C67A0B1,PchFlashControllerSmm E84CF29C-191F-4EAE-96E1-F46AECEAEA0B,EfiTianoDecompressProtocol E84D8EAE-0151-41F0-9874-2F838DB47106,PMBUSPEI E8571188-00C1-4ED4-B14E-E38451351EC4,HddPassword E857CAF6-C046-45DC-BE3F-EE0765FBA887,EfiS3SaveStateProtocolGuid E859E40F-CC24-41B7-B5A5-685822AABCC6,UserApplicationBin E862A2AA-299A-4A4B-B00A-AA7350FD6842,DellSecurityAuditDisplayDxe E86C15A8-4D17-4E6E-AC7C-90905BA5EBE3,TransparentUnlockDXE E883F269-3D02-4A88-9A11-E29076DCB73E,FjMfgChangeBootOrderDxe E889C99E-EBE9-4BD7-2FCC-321610061E80,CypressCCG4Pei E88A7123-4949-4154-89D4-D1D93E531B71,BcomCvIdm E88A8180-16DA-4A1B-908C-3E517686F1FA,WifiProvisioningSmm E88DB748-A947-46CF-AB6F-5C99B6C6C4B8,RealtekGopDriver E8933D6C-9AE6-4EC7-8C04-0AA0C62F0B49,DellNvmeC1Log E8935638-7437-46BC-ADB5-3153820FD6CE,RTKUndiDxe E894B313-54CA-4BB2-8CDD-851E8AC9027C,AmiDebugportHob E89C977A-4547-4FBB-8E64-E1BE3CE39B34,CxlManager E89EACF0-96F8-4CCD-89E9-968CD39F2317,BrightnessControlDxe E8A0A79D-043F-4A36-93F2-6FA5C506E9FF,AmdPspKvm E8A59290-A2AF-4099-B0AF-323FF9B7AB41,BeginBootButton E8A9F123-07DF-46E2-9BF6-C593CAF06A62,HardwareHealthManagementDxe E8C729FE-FB0A-4344-AD7E-48784116C9EF,SmmIpmiInitialize E8C803DC-E9A9-4081-B21A-6FABA90992DA,H19SelfTestDriver E8C887B0-6884-4933-B958-71EEBC5120DA,SECWDTDXE E8DC00BA-411F-4D52-B925-50785436AC81,SmmSleepEvent E8DCDF2D-0F9B-455B-90ED-A8CA5312B943,GpioV2ProtocolInitSmm E8DDEB8B-82D7-4B6E-A2B4-D5EAEC2B8976,IrsiRegistrationRuntimeDxe E8E1BAFB-12B0-4932-A481-DF93982C7AE4,SystemUsbHcLatchDxe E8E2C394-A4B7-4583-8C43-CAEC15C34966,EmulatedEepromPei E8F56FFE-919C-4CC5-BA88-65ABE14913BB,EfiEventNotificationTypeMceGuid E8F64C63-03A3-40C9-AD3F-BC320F8505C3,PlatformFirmwareVersionInfo E8F6A75C-3CDA-4B00-9837-8CA2A1F34EAC,SpsDxe E8F8CCFB-E880-0361-BCD1-FE248B2A307E,SaveMemoryConfig E8F9217A-73AD-4923-FFFF-FFFF1D270E05,XnotePlatformPolicySmm E9008D70-2A4E-47EA-8EC4-72E25767E5EF,AmiBiosPpiFlaSManagementGuid E904C5F2-AC68-46D6-AFDA-3A78D9F0CB8C,AmdNbioAlibDxe E90A7B5E-37B2-43E4-B281-4C8E349045E9,ReFlashSmm E923445E-2E1E-4642-8CB9-239320AA41E8,UsbOcUpdateDxeCLX64L E92BAE14-3DFD-4C70-9FE6-3899F36C7846,PLEDSMM E92C4950-A483-445A-B6A8-B7029CA910AA,PlatformStage2 E9312938-E56B-4614-A252-CF7D2F377E26,AmiTcgPlatformPeiBeforeMem E9357B87-3878-444A-A10D-6756B542EBE7,JpegDecoder E938C9BE-CFC2-4A9D-A3CD-9653D8133009,AmiChipsetModulePkgTokenSpaceGuid E9450086-16A9-4FD0-9136-BFD2FF478285,FjPcieWirelessWanSmm E947CBDB-858A-423E-95F6-019D1814DE2A,AmdCcxZen3Pei E949A9A2-7F6A-47BF-9D5A-A4A2B9821710,SmbiosDataUpdateDxeGnrwsPPVCRB E94CD42A-3AAD-4EA0-9B09-945891C60CCD,DxeIoLibCpuIo E94DB579-061B-437B-83C2-65C0AE7C14E2,LenovoAt24Rf08EepromDxe E94F54CD-81EB-47ED-AEC3-856F5DC157A9,PiSmmCore E954929C-5BAC-4494-B963-3B23D4A13AD2,QuiesceSupport E9647284-02D5-4486-A34C-907F3D04BCA4,UsbS5Wakeup E974833F-A4AE-4E39-BE37-8B6780DFAD01,Int15PanelFitting E975314A-1464-411F-85E4-041D903CB6C4,DellSmBiosStrucFan E97985BA-8A7B-49AF-9A7D-53346A86F1FD,DellAutoBifurcateSiPei E98ADB03-B8B9-4AF8-BA20-26E9114CBCE5,EfiUserCredential2ProtocolGuid E98E9C9E-DABE-4D3F-B02A-B3708BD784EB,FiopCcgFwUpdate E9928F9F-5D3F-47BC-BFC0-F5190C69CCE5,NvmExpressSmm E995D524-6B97-41BF-8CE3-D7C889742246,H19ReadBackDefaultData E9987145-B05B-4787-B918-5BEB86C4AB6F,TamperEventS0Protect E998C6D8-572B-4E18-96CC-031EA3DD558C,AmiOemCsm16BinaryGuid E9A21859-002A-4751-8031-A0B5D13EF722,UsbPxeUndiDriver1 E9A60F94-7A8B-45BA-9C32-3485526B5716,DellAcLossPei E9B4B126-4E13-41F5-9E4C-9BF88B3C1B0C,KbdConfig E9B53C0E-0491-4676-972F-9D15DD634DB3,DellBatman2Dxe E9B60F94-7A0B-48CD-9C88-8484526C5719,DellSbConfigPei E9B69E14-AE08-4459-8CF6-6EDD19A39DD5,AmdNbioIOMMURNPei E9C5A905-6292-4E00-BEDD-DA6AF653138E,FjvProSupport E9CA4775-8657-47FC-97E7-7ED65A084324,EfiHiiFontProtocolGuid E9D7735D-06E2-47B7-B856-2A20138FAEA4,FchHuashanSmmInit E9DB0D58-D48D-47F6-9C6E-6F40E86C7B41,PeiTpmInitializedPpiGuid E9DD7F62-25EC-4F9D-A4AB-AAD20BF59A10,StatusCodePei E9DEB2B3-88E4-46D2-B9A4-F60CACB918DC,SmcRiserCardPei E9E59DF7-5D38-4097-90D5-8379E9A262EA,MsiSG E9EC3243-F41D-41D2-A636-B00F5737125B,CxlDxeDriver E9EC9168-1065-4F90-8C44-C1413AAAE43F,ODMAdminPasswordCheckVariable E9F02217-2093-4470-8A54-5C2CFFE73ECB,EfiSpiSmmHcProtocolGuid E9F05D70-9946-4AB9-A7F7-070E92C415BD,Int15BootTV E9F4B929-EE33-4B70-8E90-17D283AF508C,LibSoftfloat E9F8B700-7E13-4736-88DA-82624ACDECDD,SystemInventoryInfoSmm E9FAA8A9-40B8-4C6F-8C62-CBC4D532055C,PcdRecoveryRestoreData EA067D5D-56FD-4B00-B79A-352AFF8F2BD6,UpdateSmbiosType41 EA0FE3E2-F515-467C-87F7-C32923DE541E,AmdLegacyInterrupt EA1207EA-7E61-4269-B558-C38FC0B79A80,XhciPei EA1343AE-BA6C-4059-BE74-024D36D7AA3F,LEMBootModeFlagPei EA1D58A2-EA3D-4C14-928A-80A14545E681,WheaPlatformBoot EA296D92-0B69-423C-8C28-33B4E0A91268,PcdDataBaseHobGuid EA2E8235-37BD-4FFD-8571-556D4AAE3ED8,UsbTypeCSxIndicatorsSMM EA2EC402-2FD5-475F-922C-98EAE0376312,SystemLegacyBiosDxe EA32C776-6C14-41F4-80C6-0349E9E48AF8,FvbVariableStorageSmm EA343100-1A37-4239-A3CB-B92240B935CF,SdioSmm EA34FEA6-EDA4-4A3F-BE0C-9BE1859D4621,AmdMemSmbiosV2StxD5Pei EA353BAD-99D2-4BE6-9B28-53A8E8596934,Armani_BatteryHealthControlSmm EA382BBC-192F-4883-9F30-CFA4A558362A,OemUsbPortMapPei EA42B5E6-5E01-4C6E-8189-C1EFA6ACFD01,LenovoProtectPBPei EA449C41-8236-4B97-9FF9-084E4BA70020,ProgressBarEmptyMiddle EA4B0675-1F36-4ABE-BB3A-6D60760A02A2,AmiPciPortCompatibilityProtocolGuid EA4DAEE8-A851-4A9F-ABF4-B79FA2528291,CpuSmbiosDriver EA5145F0-8F09-11E4-BA47-3C970E61ED65,OemNvsDxe EA57EDAE-5294-40FF-97E8-4652E83D9F5C,FjGraphicsDxe EA5D72C1-4455-4FF8-91A1-4352DC1EE112,gear8 EA629472-D7C6-4C0E-8820-2B811C7EE3AF,AmiTseOemPortingVar11 EA6363DF-207E-4544-BC9D-1C440C1DB0BC,SlotDataUpdateDxeCLX64L EA67CA3E-1F54-436B-9788-D4EB29C34267,Early16550UartBaseAddress EA6D974D-AD75-40ED-BCDD-FDA297AA8F8A,ChipsetLibServicesDxe EA7BF2CC-F154-4CC4-A725-6382C701FBFE,AmdMemSmbiosV2RvDxe EA7CA24B-DED5-4DAD-A389-BF827E8F9B38,EfiPeiFirmwareVolumeInfo2PpiGuid EA7D60A6-1050-45E4-BEDF-BF177290D4B2,EfiEmmcBootPartitionProtocolGuid EA7F0916-B5C8-493F-A006-565CC2041044,FspS3Notify EA816D2C-CEE5-4F02-99B5-D3905CBBD077,EfiHiiNewProtocol EA8D05BC-E348-4B75-BF6B-92E6B1E98068,HQDxeService EA907DA1-4A74-80B8-A66E-BAA384223E12,DellBiosAttributes EA94D9D6-BE8B-4BD0-9481-B04348165CFB,AmdPspSmmV2Ssp EA9D0ED6-A18B-4052-B526-6A94F44D5170,FvbReady EA9E92E1-22EF-4B5F-A5EE-1317B1E77B10,PhCiraHotkey EAA006CD-3256-789B-BD20-EBABCD02583F,SecureFlashPei EAA5A822-EACE-488B-B187-11ABC8E72E69,AmdMemS3BlackListPei EAA96391-9BE3-4488-8AF3-B3E6EFD157D5,EmuSecPei EAAF7109-EC2D-4A30-BF4F-621408630E4C,FlashOemHooKSmm EAB17499-7B0C-459C-BD4A-772CFF1B80A8,FchPromontoryPlusPei EAB5F9D8-4CEB-4EFA-87D3-FA155D317B22,MipiCam EAB843A9-D414-41BB-87A2-6C2952DFA2EC,GpioCfgPei EAC3AED9-692D-4C7C-A25D-3895C4F398F3,DellCustomVbeSetting EAC9599C-2D94-4886-8F6C-D7A88B5B483A,N17MQ3Gop EAD039A6-7390-411D-A9DE-E5294B25B897,ASUSEZFlash EADD5061-93EF-4CCC-8450-F78A7F0820F0,Tcg2ConfigPei EADEC90E-C2BE-4B96-A161-55236822C0BB,AdlinkBSCDxe EAEE5615-0CFD-45FC-8769-A0D85695AF85,EdkiiNonDiscoverableEhciDeviceGuid EAF100CB-ABF4-49E0-97E5-5E0A7750DCCB,EcSecuredTransferSmm EAF18DB2-FBFD-4E50-8E77-AAC8191628B5,AmdSocFp8StxKrkPei EAF59C0E-BD46-413A-9AE9-DD9F6D1A927D,SmbiosDxe EAF9E3C1-C9CD-46DB-A5E5-5A124C832323,EdkiiSdMmcOverrideProtocol EAFA9C29-D84E-42BF-B19A-6D9734EF4ABB,HpJpeg EB00DB50-C654-460F-8D7A-0E444FD32B45,DebugMaskPei EB079C68-0B05-4A53-B8D5-01C995D66A23,AmdMemPprSmmDriver EB098808-8FC1-4FB1-AB66-26784633B745,UltraFunctionTable EB12FD12-42EA-4A72-A05E-4EBD04618477,CbsSetupSmmSHP EB1BF7E8-D4AB-43C6-88C4-B99175350383,Dec1515Pei EB23F55A-7863-4AC2-8D3D-956535DE0375,EfiIncompatiblePciDeviceSupportProtocolGuid EB317729-1FAA-4931-BF83-31EDBDF61E99,ErrorControl EB338826-681B-4295-B356-2B364C757B09,EfiFtp4ProtocolGuid EB346B97-975F-4A9F-8B22-F8E92BB3D569,EfiSmmCpuProtocolGuid EB3FFEAD-45F6-4A18-AC71-C4EE97B26119,KbcPeim EB5198EB-E7F5-45A1-9CCB-E53364BB4992,AmiSmmInfoProtocol EB53FCAD-3071-4BAB-980C-6E4A379255F3,RealtekUefiDriver EB5E4685-CA66-4769-B6A2-26068B001326,EfiPciDevErrorSectionGuid EB5FC7A5-3747-4A25-90DB-631297A0A0AF,BoardInfoPeim EB61D625-1B5D-4F45-A2A0-931EF7280B48,SmartAssetTagInfoDxe EB66918A-7EEF-402A-842E-931D21C38AE9,EfiRtPropertiesTable EB6B71C3-0659-4A8A-8AE1-DAD2F5192C62,BootMenuApp EB6EEBF4-1EC3-4D69-9D82-65BF6C579B34,LenovoSecureKeySmm EB704011-1402-11D3-8E77-00A0C969723B,EfiMtcGuid EB740091-A494-44D7-8D96-C192F95A6394,OobTx EB742231-AA20-4A04-A879-89D80854B266,SmbiosType11 EB78CE7E-4107-4EF5-86CB-22E8D8AC4950,DellSmmAsfInit EB832FD9-9089-4898-83C9-41618F5C48B9,DpHii EB84A9E4-288F-4637-AC61-6D3966EF6179,DellRecoveryDxe EB8DCCDA-D34D-4765-B989-ED96CA2CA8D5,OemSwSmiDispatchProtocol EB97088E-CFDF-49C6-BE4B-D906A5B20E86,EfiAcpiSdtProtocolGuid EB98A90A-42EE-4A36-8DCC-AFA722C9CAB3,AmiTcgPkgTokenSpaceGuid EB9D2D2F-2D88-11D3-9A16-0090273FC14D,EfiMpsTableGuid EB9D2D30-2D88-11D3-9A16-0090273FC14D,EfiAcpi10TableGuid EB9D2D31-2D88-11D3-9A16-0090273FC14D,EfiSmbiosTableGuid EB9D2D32-2D88-11D3-9A16-0090273FC14D,EfiSalSystemTableGuid EBA4E8D2-3858-41EC-A281-2647BA9660D0,EfiDebugPortProtocolGuid EBB2898D-2168-48C1-936C-64C86EB6424B,UsbPxeUndiDriver2 EBB32EA2-6382-43F3-955A-39475AE6E1AB,UefiRaidPei EBB6653C-D182-4E9B-BC73-947A291F7740,AdvBootIhisiSmm EBBD7E6A-37D0-417A-9410-D19A59BE349F,DellBiosVersionNameDxe EBBE2D1B-1647-4BDA-AB9A-7863E396D41A,EfiActiveBiosProtocolGuid EBC01AF5-07A9-489E-B7CE-DC089E459B2F,EdkiiUfsHostControllerProtocolGuid EBC065D8-BEFA-4437-BED0-9A41272102F1,RestBoot EBC3AEAD-CC13-49B0-A678-5BED93956955,BasePlatformHookLibNull EBD11F37-177E-4216-A98E-56C77ADCEABE,XnoteFlashCommunicationDxe EBD705FB-FA92-46A7-B32B-7F566D944614,SP805WatchdogDxe EBDCA8B2-8185-4AFB-9EA3-182C2DFC231A,SmmSvcCallback EBF342FE-B1D3-4EF8-957C-8048606FF670,SetupBrowserDxe EBF342FE-B1D3-4EF8-957C-8048606FF671,SetupBrowser EBF8ED7C-0DD1-4787-84F1-F48D537DCACF,DriverHealthManagerDxe EBFA847C-523B-46F4-BB7D-C51EFFD1994C,FjMrcOutputInterfaceGeminilake EBFE50DA-14AE-4E5F-9E21-ADB76B320541,AppleMcaDumpDxe EC02A9CA-091D-47CD-AF28-77D38DED7A53,MebxConfiguration EC1CD13C-5656-4D2B-8532-974CC030EF1B,BiosGuardUpdateProtectRegion EC20EB79-6C1A-4664-9A0D-D2E4CC16D664,EfiTcp6ServiceBindingProtocolGuid EC2A6C28-2286-44ED-916B-243AB5253546,SLP20MarkerVariableGuid EC2BD1FD-E3B0-429B-ADDF-9657935A3684,AmiSmmNvmeCommunicationGuid EC2BEECA-E84A-445B-869B-F7A73C96F58A,LegacyRegion2Dxe EC2E931B-3281-48A5-8107-DF8A8BED3C5D,PlatformGOPPolicyGuid EC2EAB61-EFB5-4A80-8391-8779C1C2507A,PlatformSecureBiosSmm EC359751-1DB5-4E8A-B2E9-7BA1FE9A9168,FmacDrv EC35E25B-0425-4435-A34C-96D75703B893,FjEndofPeiGPIOOverride EC386589-999F-472D-8905-CAA5332F642A,H19TextColorsHook EC3A978D-7C4E-48FA-9ABE-6AD91CC8F811,EfiKmsProtocolGuid EC3A9E6F-9691-4D84-B00D-3E55472807EA,AmdFabricRplPei EC4B60B8-E4A6-4293-AD72-49C6FADD10F7,PlatformDebug EC4EBACB-2638-416E-BE80-E5FA4B511901,UniversalPayloadPciRootBridgeInfo EC512283-DAE2-48D7-ABB3-95C1AD78B596,NvdimmSmbusCommon EC52188F-8DD1-4834-AADB-C66187D460EC,AmdNbioSmm EC5A555B-6384-4C00-8625-2C1768B95B38,LenovoMeConOutReady EC63428D-66CA-4BF9-82AE-840F6D5C2305,AmiBoardPciInitProtocolGuid EC6654E5-150C-4185-BEBB-E8E5CF0763B5,LenovoTpmConfigSmm EC69A5FC-83BE-43BB-87F7-4B07E314E7C0,AmiErrorDisplayFrameworkProtocol EC6E0EF9-4602-4883-B7AD-48C4CB8322C8,OtaStorageEfiDxeDriver EC761DAF-6B86-41D0-8294-350B90FC9478,SystemCapsulePolicyDxe EC76B3B4-6821-4D4B-A0AB-D28CC27AC439,AmdSmmControl EC7F4FA1-B217-42FC-A7F7-020C4305D5BA,EfiSmramNvsHeader EC835DD3-FE0F-617B-A621-B350C3E13388,EfiIp6ServiceBindingProtocolGuid EC853378-008D-4E10-BDDF-E13FEC491B23,PowerReportSmm EC87D643-EBA4-4BB5-A1E5-3F3E36B20DA9,EfiSetupVariableGuid EC8A3D69-6DDF-4108-9476-7337FC522136,EfiKmsFormatGeneric128Guid EC9519B1-E788-4C45-B695-244457442D64,PeiSmmControl EC953378-008D-4E10-BDDF-E13FEC491B23,LGPowerReportSmm EC953378-008D-4E10-BDDF-E13FEC492C54,LGEcCommunicationSmm EC98FF95-242C-4513-B1BC-69FA24111C58,AcpiDebugDxe EC9C36FD-1642-4B84-91FA-919C2D066FB4,AmiPeimLoadHob ECA08963-33A3-408C-8FDE-7E67A51F45AB,D01UsttCallback ECA27516-306C-4E28-8C94-4E521096695E,DxeSiPolicyProtocolGuid ECA2AE9E-7594-4901-871C-449DA1A11660,I2cDxe ECADBBB6-B0AE-4571-94E3-313C3D27A611,AmdNbioGfxRNDxe ECB54CD9-E5AE-4FDC-A971-E877756068F7,EfiPramConfGuid ECB867AB-8DF4-492D-8150-A7FD1B9B5A75,AmiSmmFlashProtocolGuid ECBCA4B6-34C3-4829-8262-5A5795C325FB,AmdRasBrhDxe ECCBF582-EEE1-45B8-8926-067F40B3E55E,LenovoIsscPei ECD70736-C8A9-4123-B536-5D068A0D9AAB,PlatformSxConfig ECD81473-0533-4844-BC77-48F0DE27519B,DellSmBiosStrucD8 ECDEEFD2-C596-4CB1-AFDF-6506F6C7CE2B,D01VariableLock ECDEFE8B-F2C9-4E9E-9C0E-066F2AD36B5C,Amd3rdPartyDxe ECEB5BA3-F44D-40A3-A21D-6CBF147FA92F,N19M_GOP ECEBCB00-D9C8-11E4-AF3D-8CDCD426C973,HttpBootDxe ECF149B5-BF4E-4AC8-8A8C-CE87CBAC93D3,EfiSiliconRcHobsReadyPpi ECFD4BCE-4279-40F8-BAF2-DCB79638D41E,AmiTseOemPortingGuid1 ED01E769-0B97-48E1-99EA-DF144BD2FF32,OememPeiSSID ED097352-9041-445A-80B6-B29D509E8845,PchDmiTcVcPpi ED14D1A8-9DCB-4C0F-917C-DB0BFB56BD24,KEMrCPLDDxe ED150714-DF30-407D-B24A-4B742FD5CEA2,DuetConsoleOutConfigGuid ED17FA2D-609A-4E8D-99F6-9C0CBBDD8C2F,TbtPei ED1D807E-9A5F-436A-B8AA-D78ED9E7D92C,DellNumberOfPStateProtocol ED2B72B6-9913-432F-A199-70A05F7A303D,DellMEHandlerDxe ED2DE537-7823-4CB1-B687-85BA9BBEF0B4,RaidRom ED32D533-99E6-4209-9CC0-2D72CDD998A7,EfiSmmVariableProtocolGuid ED3F1E9D-2320-4B37-9119-E928C1E6323B,BctBaseSmmSHP ED443008-3F06-46DB-927E-7AB2F02AF9D9,ApplePciCameraDxe ED4F0AA6-B02B-4539-BF51-C9E114E0FE7F,DeviceFwServicePei ED4F127B-45B0-4B44-88E9-0D7EF1BE98A0,FjSysmanYggdrasilSmmPowerOnTime ED507E91-AAEB-4220-A2B2-1CFB4DC7223A,OemMS ED52984E-6ED7-4445-9D5D-200C3201F51E,PlatformStage0 ED6E0531-F715-4A3D-9B12-C1CA5EF698A2,IntelFsp2PkgTokenSpaceGuid ED705681-1649-4BBB-8091-E36F52523761,StandbyImmediate ED73A77B-8AB0-4272-B7B8-E25311366FBF,AddrDecode ED769C37-F526-444A-8D70-249BEFF04948,L05UpdateSlp20 ED815341-E67F-46C4-9DED-AA14222803C4,WakeOnLanSmm ED888C65-2D84-4595-9086-A15A1F66DE2B,EnableLsiDecoding ED8B5E2B-6622-4D14-9069-9BDEC54C9491,TcgPwdTseHook ED8DCDD5-D037-4B1F-98DD-BDFDAD4DD7DD,BatteryState4 ED8FD9DC-2097-425E-B743-64EFB99D5F0D,AmdPspDxeV2 ED92EAE0-C31C-4824-8802-35595EFA8287,WpbtDxe EDA2B104-7A10-4519-B0A1-EBA5C52ACFCE,AmiTseOemPortingVar1Guid EDA39402-F375-4496-92D3-83B43CB8A76A,SmBiosMemory EDA3DFD4-83C8-4E09-AF09-56C417FD3CC9,SetupConfigUpdateDxeEldorado EDADEB9D-DDBA-48BD-9D22-C1C169C8C5C6,CpuMpPei EDB396E3-2DDC-4396-BCA5-1202D3005AEA,Tcg2PhysicalPresenceDxe EDB90543-661B-4CBD-9278-D88B4C608BE9,DellIntrusionDetectDxe EDBEDF47-6EA3-4512-83C1-70F4769D4BDE,Capsule_A_fvi EDBF5904-491A-4363-A56E-FF573DE56A70,EmulatedEepromDxe EDD33148-A91F-4257-84A8-2F2976CE79AF,LGPowerReportDxe EDD33148-A91F-4257-84A8-2F2976CE8ABE,LGEcCommunicationDxe EDD33148-A91F-4257-84A8-3A1A76CE8ABE,LGBdsFlowDxe EDD35E31-07B9-11D2-83A3-00A0C91FADCF,BootObjectAuthorizationParmsetGuid EDD70CFF-6236-4FE0-A698-8436B4A3E0A8,SingleCapsuleDxe EDEBB2D8-CB7D-4A50-B7AA-B4DFFB179A8A,MemoyConfigChanged EDF13B99-4EF3-4C9B-9FAE-4DE2D6381906,OverrideAcpiTable EDF52A90-A34C-47A2-832A-9308112CAE38,AmdDynamicLid EDF704F1-2675-4019-9258-6F0F6C677D95,DellWdtFeatureSmm EDF8DA40-AAD1-11DF-A1F4-0002A5D5C51B,PL341Dmc EDF904D7-4109-1562-DAB9-0083159E882B,HpCommonSmbiosDxe EDFD1E22-C6BF-4B06-A4B2-5AE050C84A37,USBControllerSmm EDFE3817-8661-42B2-A3F6-948FA7AEA20B,DxeThunderbolt EE003542-F156-4927-8455-F6762052E32F,SiInitDxe EE0BFF80-2B33-4005-8EF1-3F9B23C25136,GetCpuInfo EE0EA811-FBD9-4777-B95A-BA4F71101F74,PeiHeciPpiGuid EE16160A-E8BE-47A6-820A-C6900DB0250A,EfiPeiMpServicesPpiGuid EE1BB93E-54C5-4B17-9496-A20085950561,SmmUsbDispatch2OnSmmUsbDispatchThunk EE1DF00B-B4FE-4762-A330-1E8AB4D9149D,ExtfTable EE21FDBC-CA29-4CD8-8BDC-90070505668A,PerformanceControlSmm EE257F8F-E710-4181-9B01-C06698454A16,AmiPlatformInfoCompressedFfsSection EE28FF61-B960-47EB-B6BA-1F5EFBDAB442,OemTpmTypeDxe EE2EA7C3-274A-898D-90D3-46BED34AAF61,GpioControlDxe EE2F2CA1-911D-44AE-97D8-AB313758B025,DellMfgDefaultsDxe EE2F45D2-5BA4-441E-8A1D-AA22DFA3B6C5,RomImageMemoryHob EE30FD26-1524-4CA2-B56D-345830DC9CDB,LenovoFingerprintCp EE31EE7B-07B8-48C5-8F3F-C42A700E0432,AAEONCH7511Pei EE3A7F7F-3881-4EA2-B38F-5D9C98DB4AF1,FjSsdtDxe EE4CD885-D104-4056-84BA-461882A72A18,PrmHii EE4E5898-3914-4259-9D6E-DC7BD79403CF,LzmaCustomDecompressGuid EE54D4EA-B2AD-437F-860F-1AB9685237E9,DustFilterAlertSmm EE685731-CFF3-4EE7-9388-7E63FC5A59B0,PlatformEarlyInit EE69C4B7-7C9B-41BB-B44B-748137E7B5BC,FjKbcSmm EE7144BE-6454-4743-9D23-5DD8DFEA5B5B,DellSmmAcpiProtocol EE8175EF-4C60-82AF-F5E2-8A9EF1FC0A9A,AmdRasSspSmm EE8367C0-A1D6-4565-8F89-EF628547B722,IpSecDxe EE847BE1-DBC2-47C7-8696-79501CC3E24E,8042EmulationProtocol EE89F590-A816-4AC5-B3A9-1BC759B12439,VerifyFwBootGuard EE90D8FC-6181-4B15-83C4-7D1CA0C36E2A,DramTweakerDxe EE911B88-39E3-4F56-B94C-64FFF5B53A3B,AmdCpmABRecoveryPeim EE993080-5197-4D4E-B63C-F1F7413E33CE,CpuDxe EE9B8D90-C5A6-40A2-BDE2-52558D33CCA1,EfiSmmUsbDispatch2ProtocolGuid EE9E0D09-51B9-4537-AA64-3BD74C5FBFDF,OemDPTC EE9F26FB-D6DE-4FD3-9720-DC6CD3E337C1,CrisisMemoryInitPei EEA190F0-962F-11E0-AA80-0800200C9A66,SctMilestoneTaskEntry EEAE874B-64D3-4323-B582-545FB3C2EB5A,SmmBbsManagerInitNotifyProtocol EEAF2AD6-2A6B-449E-A116-3ADD82CADE27,EcBlinkDxe EEC25BDC-67F2-4D95-B1D5-F81B2039D11D,Enter_Setup EEC9BC9A-2907-4D59-8B86-D1EC67DE62E1,GenericMemoryTestDxe EECC1363-884B-4FE4-A763-B387951B6DDD,SbSocMatisseDxe EECE5260-9E1F-4F74-9DBB-508257CBAAD1,LifeCycleState EED54281-1C11-4358-BF5A-F64995FBF11B,FmpDxe EED5EA31-38E2-463D-B623-2C57702B8A1C,SectionExtractionPei EEDFD470-449A-4B15-8038-C85487AF5E4C,HpCommonFlashInfoDxe EEE00707-6734-491B-ADB3-C168265AB5B5,DellUsbMassStorageSmm EEE07404-26EE-43C9-9071-4E48008C4691,EfiWheaSupportProtocolGuid EEE4417A-D34E-40B1-9483-1BF62BD113CC,SystemFirmwareDeviceDxeSmm EEE4E585-0585-4091-A89F-CAB51F6FCF3E,FchYuntaiPei EEECC312-FF36-4E21-9C5F-0B208CDC02FA,FjDTPMAutoConfigDriver EEEE611D-F78F-4FB9-B868-55907F169280,PlatformInitPreMem EEF749C2-C047-4D6E-B1BC-D36EB3A5559C,QuarkVariableLockGuid EF02529C-A283-48CD-8D08-6A1E9C3C03D3,AmiTseOemPortingVar18 EF074CB0-701A-4975-81C1-38F9212BD089,AmdMiniRasServiceDxe EF0C99B6-B1D3-4025-9405-BF6A560FE0E0,SmbiosMiscDxe EF0D2ECB-AE7B-4ED2-8848-F39290D19322,StatusCodeLoggerSmm EF0E795C-749A-4B41-B994-7DDC6B594388,UsbOcUpdateDxeNeonCityEPRP EF14FD78-0793-4E2B-AC6D-062847E01791,MfgModeVariableGuid EF152FB4-7B2F-427D-BDB4-7E0A05826E64,BootFlowVariable EF155E93-2CB4-4A72-8720-8B447A91F540,AmdSocFp6CznDxe EF17CEE7-267D-4BFD-A257-4A6AB3EE8591,MemorySubClassDxe EF183CE7-7ED5-4E29-BCDA-524182B4744B,AmdNbioGfxRPLDxe EF22F8A9-267E-4840-BC32-F0CFDFDFA426,PeiSmmControlPei EF2331AD-7010-436C-B90E-2CB3536404EF,SioSetupUtilityDxe EF251B71-CEED-484E-82E3-3A1F34F512E2,EfiQuarkSCSocIdTokenSpaceGuid EF2961F9-87D0-4E9E-A3B1-B14FFA8D347C,FjUsbTypeCPowerLimitDxe EF2B91D1-1847-4D88-9115-2835A0BEFBDC,MpmPei EF33C296-F64C-4146-AD04-347899702C84,SystemSmmUsbLegacySmm EF3468E0-1B0A-46D7-842C-928E67EFE0B8,X11DPHPeiDriver EF351864-16F3-4A2F-B57D-3B9B785A6248,AmdCpmSocAm4RvPei EF398D58-9DFD-4103-BF94-78C6F4FE712F,EfiPeiResetPpiGuid EF402953-B819-4CC2-A44C-4C9B4CFBC889,AmiTseOemPortingVar2Guid EF48FFE8-9E24-4EB8-828D-2EC11A9DF8DD,DellGenerationIdPolicy EF52F4D8-4B2E-4A2D-B888-DAC5421D73F7,AsfSmm EF598499-B25E-473A-BFAF-E7E57DCE82C4,TpmErrorHobGuid EF6619EE-F77D-4A8C-8693-D60D6AA56702,SetupSecurity EF7BF7D6-F8FF-4A76-8247-C0D0D1CC49C0,EfiSmbiosSlotPopulationGuid EF86A49E-CD3C-445A-878E-7A738D2C7ED2,BoardSpiBusSmm EF95CFE1-0D3A-4869-948B-FC36A3B13901,BoardSpiBusDxe EF96596D-F1D8-4B76-8ABE-700E03C1CA74,HspAcpifTpmSmm EF9A3971-C1A0-4A93-BD40-5AA165F2DC3A,ConsoleOutDevicesStartedProtocol EF9A853E-2DF3-48ED-91E5-6232668C4DB1,CbsSetupSmmPhx EF9AEFE5-2BD3-4031-AF7D-5EFE5ABB9A0D,PeiLockPhysicalPresencePpiGuid EF9FC172-A1B2-4693-B327-6D32FC416042,EfiHiiDatabaseProtocolGuid EFA96432-DE33-4DD2-AEE6-328C33DF777A,EfiHashAlgorithmSha384Guid EFB7F614-BC8B-4DDD-B09A-22079FC1512F,TbtDxe EFC41654-87AD-461D-A5F2-D79B0C01C31A,DellWmiBiosAttribSmm EFCB058E-8BDC-4062-8DAE-8262886C512B,Tcg2Dxe_ EFCB2FDB-0662-4A59-A5D7-03033EA97CAE,GTSE EFD652CC-0E99-40F0-96C0-E08C089070FC,S3Resume EFDCAE58-13E2-4BEC-9AED-992C8DCBDD9E,FjTriggerMebxDxe EFE67B1B-BC77-4BB9-A570-7F8DD858506D,ICE30plusPEI EFE92A04-F5D0-4E44-8757-25B3AFA3BFFF,RSTeSataRaidEfi EFEEF8BC-12B5-432A-B5AD-E5D5F5B33459,UsbTypeCPrivateWmiSmm EFEFD093-0D9B-46EB-A856-48350700C908,EfiHiiImageDecoderNameJpegGuid EFF9400A-AD95-475B-868F-C7AFC313BA72,AmiPeiCreateDummyRcHob EFFC8F05-B526-4EB5-B36B-8CD889923C0C,LegacyRegion EFFFCCC2-7D6A-42B1-AD6D-61B882801AFF,PxeDriver F002485F-B0B6-4C3A-9E7B-54FABD83074D,EfiPlatformTypeLightningRidgeExecB2Protocol F00497E3-BFA2-41A1-9D29-54C2E93721C5,EfiStandaloneSmmNonSecureBuffer F0049EF2-FF2C-43A7-A308-B02421A3A69A,BmcSmbiosDxe F00D1083-A096-452B-A2A9-47EAF7C4A09C,BbSecDataUpdateSmm F00FD1CF-2FBF-4096-A882-7E7B8FD80BD5,SelfRepairApplication F01872BF-AF48-40D2-92DB-51588466EEAB,RtkUsbUndiDxe F019E406-8C9C-11E5-8797-001ACA00BFC4,BfbFs F01BED57-04BC-4F3F-9660-D6F2EA228259,EfiLegacySpiFlashProtocolGuid F02313F7-581F-4F31-B09C-C1BA2FC58713,HpDriveWipe F02313F7-581F-4F31-B09C-C1BA2FC58714,LoadHpDriveWipeDxe F023E844-257F-47CA-8C25-CD91C5B047F2,AmiSerialUart1 F035B9D5-744F-4FCB-9283-BAB4FAD9FAE8,FjBeepIfNoGraphic F035F3BD-863E-4573-A609-BB9405A8B1F7,SystemSecureVariableStorageSmm F0384FFD-8633-452F-9010-F6B7D2EAE2F1,WinNtFirmwareVolumePei F04C91FD-5AEB-45BD-BE71-65435904C568,AmiMultiPlatformPpi F05976EF-83F1-4F3D-8619-F7595D41E538,EfiPrint2ProtocolGuid F064B9E9-F12C-4456-8DD7-E073B0A667E9,RtkManagementSetup F064C91F-188C-4F56-B7FD-30A9B86A29F3,EfiCpuTypeFru F06509E9-9AE9-4463-A24C-D8E35E9133AA,TypeABh F0657E90-216A-4C30-B69B-DED96267BC29,OemThermalPolicyPEI F084FF45-F9FA-4E9E-8DFF-E2D780D22CC2,EfiCpuRasProtocol F088BB30-DA92-4BFF-ABBC-73E42177A43D,DellSataPortNumMapPolicy F088CD91-A046-11D2-8E42-00A0C969723B,EfiVariableStoreProtocol F08FC315-CC4F-4D8C-B34C-B030C4E7B919,EfiCrystalRidgeSmm F0966B41-C23F-41B9-9604-0FF7E111965A,EdkiiPlatformHasAcpi F099D67F-71AE-4C36-B2A3-DCEB0EB2B7D8,WatchdogTimer F0A30BC7-AF08-4556-99C4-001009C93A44,EfiSecureBootEnableDisableGuid F0ADC5A7-F86A-45A5-9D16-37323FCD77EE,SmcPostMsgHotKey_SMM F0B79D0F-CE2B-D148-9ACE-F204E9393CAA,Tcp4 F0BBFCA0-684E-48B3-BAE2-6C84B89E5339,EfiPchExtendedResetProtocolGuid F0CA1CCF-4E60-496A-890F-E78FCA1C1D6B,CheckOemOSType F0CFE5EA-895A-4C18-BE2A-80FD85BB8299,UwbSmm F0D7222F-FD43-4A5D-B8BF-A259C87AE3B2,FlashDeviceLibDxe F0D8DEAA-C495-4139-B1FC-78B70168260A,DellDxeDiagLeds F0E6A44F-7195-41C3-AC64-54F202CD0A21,SecureBootConfigDxe F0F1588E-9028-4EB8-8031-F233B48EA0B7,PxeDummyDxe F0F1C259-FD3A-446B-B2F2-049334D1BD23,AmdSocAm4CznPei F0F6F006-DAB4-44B2-A7A1-0F72EEDCA716,AcpiPlatform F0FFF864-8454-46E5-9F2B-CF14F0A41A48,WarmBootSmm F100061D-A26E-4790-8BE3-D41F364D85A9,WmiSetupUnderOsSmm F1039C39-9299-41FE-8799-5EAFB668EE6C,AmdRasRnApeiDxe F103A5A5-9345-4C3F-B496-DA14F41B6269,PlatformStage1 F109F361-370C-4D9C-B1AB-7CA2D4C8B3FF,AmiCpuInfoProtocol F10CF621-1502-4130-A860-D300459E2C08,MEbxInvokeDxe F10D6C2A-A2D6-4D96-A212-2B4F6005F389,LenovoSecureBootConfigDxe F110703C-9D16-40CA-250A-2700CA534F87,DellMfgBootListConfigSmm F1143A53-CBEB-4833-A4DC-0826E063EC08,MeRegionUpdateVolume F11721F9-1A68-4FEB-BB25-55B6F7A1AE74,LEMProgressBarProtocol F11757E2-1D21-47BB-9E07-04C60DA00ECA,UnexpectedIrqWA F122A15C-C10B-4D54-8F48-60F4F06DD1AD,LegacyBiosDxe F1297746-69D5-4013-84CC-0FEB09CCD5C3,PlatformInfoBootMsgDxe F12DF3A4-6A2E-44BD-A3F9-2135A04E19E2,AsusEcPeiBiosReady F12F698A-E506-4A1B-B32E-6920E55DA1C4,TpmMmioSevDecryptPei F139BD77-7FF7-49D6-9086-D50AB26F6DD7,EfiSvSmmProtocol F140088A-05B0-46E3-83FF-D5A69B7C7185,SioIt8669eDxe F1448205-61B4-4624-B325-6C06BB1BC90B,SioFlexIoAcpiDxe F149AE6A-1252-49A8-94FC-A2DDF5DCCF5D,AsusWatchDogTimerSmm F14F7AC4-F736-4AFE-B01A-129B1FA13A5D,AplPreMemNvram F1530049-1292-4D78-9F26-D3D59D17E5E4,LenovoEcEkKeyDXE F1577E74-CAAB-41C8-9E26-F11EEBB6C83D,SdMmcDevice F15B92A8-6B4C-4EA3-A380-2F352AD15417,RealTekLanDriver F16BDBF0-3A61-11DE-8A39-0800200C9A66,PerfTuneDxe F16F8948-F81F-4F30-91A6-8F2F0FD57882,MAPS_SIO_InterfacePei F174D532-D257-4FE0-92A3-B664E8BBC8ED,HpCoreErrorCodeHandlerPei F179D6C8-1FC4-4C39-AC83-F1077080D070,FjMfgDescriptorUnlockDxe F1809E8A-ACB8-4176-8CD4-B98414D0FD0D,ApicInfoDataDxe F18BA2F3-053D-408D-9E28-96CDA65272A8,FfsIntegrityCheckPei F19071B5-B2F6-4A9C-B2E2-FBF56DA5B229,AmdMemChanXLatZpPei F193C257-3CB5-4D90-A694-2E371082E116,UpdateSerial_NUM F1946499-571B-44C3-9B9C-CC55210B0C02,H19WMIHandlerSmm F19B5EA5-7CDF-4CB2-9C37-F1BE08AC588B,BroadcomGigabitEthernetDxe F19E8ED6-442B-4194-AF8E-C91435E36320,SmcTpmProvisionDxe F1A18726-FD79-4DF5-A326-E20B8CC46B06,DellBootScriptSmiHandler F1A25221-A98B-4189-85F2-0BA226A370DA,FTP_DXE F1ADE5E1-230A-4573-A2BC-56F949BC9C3B,UpdateDsdtCrc F1B4C587-6E35-4FAB-B946-FAE259638660,FjGabiFlashBiosRegionCtrlDxe F1B52F57-16A6-4922-B81D-65838458FAB4,OemMfgPorting F1BDCEC7-31D1-4F0F-AF62-D02A44076026,LenovoN25Q032FlashPartDxe F1BE4604-24B3-4DA5-8BBF-E87A6C046C93,CbsSetupDxeMDN F1C50D3A-58E4-4104-9176-00CDF8BC4BB2,H2ODisplayEngineLocalTextDxe F1CF1802-8F94-4504-AA96-CE193C57C86E,PostCodeSmm F1DBDF29-12EA-20D1-2C48-84C3DC5C7E0D,SbSocRavenPei F1DBDF29-A2EA-90D1-2A48-94C3DC5C7E0D,SbSocSummitPei F1E48287-3FE1-4535-89AB-48D6C3DA2759,EfiHotKeysProtocol F1EFB523-3D59-4888-BB71-EAA5A96628FA,SecurityStubDxe F1F7C421-96DF-4C8A-AF91-62A3C9AED310,EfiTxtLockConfig F1FBD629-22EA-40D1-AA48-94C3DC5C7E0D,SbSocBristolPei F1FCD66F-8966-441E-909C-77F211AB9C3E,MERecoveryDxe F2074EA5-B8C9-4EBC-881E-30102260703E,ACPI_FACS_MODIFY F208336A-BFF4-4678-BA4F-342C72373C3A,FjOemIgcEsrtDxe F20D51DA-16FD-48E6-B4D0-532B6BB8AEA6,AdlSemaWatchdogDxe F21173FE-DF86-4B8B-AFF9-C7CB77B9C7DD,PeiIchInit F21249FB-22FF-4D95-A1C6-CC9933F88CF7,HPD F2191B94-DCAB-49FF-8C8F-A41FA9908D11,DeviceLayoutLoadDxe F21DA8FA-35B6-4CD0-BB27-620D1460D361,MIPICamera_Lattice F22FC20C-8CF4-45EB-8E06-AD4E50B95DD3,EfiHiiDriverHealthFormsetGuid F231ED70-045A-4273-A156-C344748F083F,RtcLossOptionSmm F235025B-85A0-4AD8-839E-A7FEDFD0CDE3,WatchRobotPei F235025B-85A0-4AD8-839E-A7FEDFD0CDE4,PowerOnRobotPei F238F47C-1DE9-4E8B-81B9-CC924E6B5BE5,EfiPcmciaRequestProtocol F23C466D-D24A-46E4-A951-A58FBC5ECE7F,KEMaEeepDxe F23FBEC1-987E-4B4B-BF47-7DDCC118DBF3,I2cEnumerateDriver F244E34D-3643-4E3B-9DA5-8C691CBDE0EB,MeUnlock F2458956-7449-4632-A875-8F418B74C937,CF9IoTrap F24643C2-C622-494E-8A0D-4632579C2D5B,EfiTrEEPhysicalPresenceGuid F26C52BA-024B-410F-B4FB-2F34573443B4,E0104X7 F26D2D30-817A-45E0-B703-E6C8837A8821,SmbiosType24 F26D3191-663C-4195-9285-149B43BBDA6E,SynServerSetupSmm F2765DEC-6B41-11D5-8E71-00902707B35E,Timer F276BDEC-6C41-21E5-9E71-00A13807B45E,RestoreMtrrDxe F27AF9D4-39AD-4D08-856D-C115EE4AAD40,EfiPlatformTypeNeonCityFpgaProtocol F27CF007-4AC7-4B74-B2D0-73161C241462,FjMfgNvmeIdentifyCheckDxe F27F4D0C-70E4-413B-A537-FF39A2199AA5,CbsSetupDxeRN F27F9354-A692-4D27-BEB5-2408C6F43B04,FjBatteryFuncsDxe F281FC6E-F4C4-431C-962B-2F13AE7984EC,EfiSbPcieErrorLogDispatchProtocol F282908A-A6F9-4E50-9D6C-210478F1ED46,FtBbUpdate F282DD45-CA7B-40EC-9618-99381C08F409,OpaPlatCfg F28AD240-3DB8-4809-B6F9-6841129FB23A,FjNvramVariablesAccessReferenceSmm F2911DF2-7DDF-40D9-9835-AD2B1E200CEA,SystemSetupExitDxe F29729C7-B759-4B5C-B134-07FC40AC3CD2,Raid F2A128FF-257B-456E-9DE8-63E7C7DCDFAC,OpromStartEndProtocolGuid F2A4A79E-89EF-4B25-A48D-A5F05C8D522C,FchKeithDxe F2BA331A-8985-11DB-A406-0040D02B1835,EmuVirtualDisksGuid F2BDCC96-8985-11DB-8719-0040D02B1835,EmuPhysicalDisksGuid F2C16B9E-8985-11DB-92C8-0040D02B1835,EfiUnixFileSystem F2C1819D-10F5-4223-9236-9B4EBF1B9AE7,Logo1394 F2C1910E-F5C9-4B72-B243-6D59096A79F0,EfiI2cSlaveProtocolGuid F2C8B80E-8985-11DB-93F1-0040D02B1835,EfiUnixUga F2CC3F5B-725F-4290-9A12-B379970295FF,RtkUndiDxe F2CC5D06-8985-11DB-BB19-0040D02B1835,EfiUnixConsole F2D006CC-8985-11DB-A472-0040D02B1835,EfiUnixMemory F2D3B330-8985-11DB-8AA3-0040D02B1835,EfiUnixCpuModel F2D74E5A-8985-11DB-9705-0040D02B1835,EfiUnixCpuSpeed F2D7FB2E-FFE7-4321-A4F5-DBB4370B963B,SubcomponentMeasureEvent F2E23F54-8985-11DB-AC79-0040D02B1835,EfiUnixIoProtocol F2E5E2C6-8985-11DB-A191-0040D02B1835,EfiUnixUgaIoProtocol F2E7CE72-5657-494A-BDBA-F3DD8E1DF641,HpAcLossPei F2E98868-8985-11DB-9A59-0040D02B1835,EfiUnixThunkProtocol F2ED3D14-8985-11DB-B057-0040D02B1835,PeiUnixAutoscanPpi F2F0DC30-8985-11DB-A15B-0040D02B1835,UnixFwhPpi F2F48768-8985-11DB-B8DA-0040D02B1835,UnixPeiLoadFile F2F830F2-8985-11DB-806B-0040D02B1835,PeiUnixThunkPpi F2FBD108-8985-11DB-B06A-0040D02B1835,MiscSubclass F2FD1544-9794-4A2C-992E-E5BBCF20E394,EfiSmbios3TableGuid F3009649-36D6-4164-AA05-E72DEEA3722F,EfiCseEndofServicesProtocolGuid F303AF22-6804-494B-A28A-A03BE7D5C742,CsmRt32Asm F30A4091-D9DF-478B-89F2-A266C1917985,OCMR_Setup F30AA2DB-DE37-4684-86E8-D8A861A4EE71,NonAmtNetWorkController F30C2915-5782-4E6A-A846-05BABCE7B6A0,EfiI2cAcpiProtocolGuid F310C41A-F0F2-49E6-8AF5-4B2F6EB495B5,LenovoSetupStartupDxeGui F317B29B-7DC9-4114-9086-D7137EF4F118,DellTpmSmm F31C76B9-0B55-4456-99FE-50A9C5EC116C,DellDxeSioEmi F321A2D2-1825-4866-6215-BEEBCBF734B0,PurleyPciDxeInit F3224A5E-17A3-47C2-A38B-481456863C74,AmiSmmNvramUpdateProtocolGuid F328E36C-23B6-4A95-854B-32E19534CD75,SmmCommunicateHeaderGuid F33261E7-23CB-11D5-BD5C-0080C73C8881,FrameworkEfiMpServiceProtocolGuid F3331DE6-4A55-44E4-B767-7453F7A1A021,MicrocodeUpdate F3358D50-72D4-46C0-9BDC-EDC1DADFB55F,DellSmmMemLibWrapper F3410F5B-4756-488F-844D-546B5DF05A0D,FjBiosPostGpioDxe F342BE75-274C-433C-A24D-2816F5433D50,VmwSmbios F34C2FA0-DE88-4270-8414-961222F4521C,PeiFlashMapPpi F34F24D7-7531-4B83-9116-BD03FCF99878,SyscfgSyncDxe F3552032-8985-11DB-8429-0040D02B1835,RealTimeClock F35F733F-5235-4D7B-83FA-97780CEBCB20,Ping6 F3604610-DD52-4BED-8F76-ABC9284CD040,UltrasoundHpdCheck F363B225-4D2C-4352-80CD-8EA4280F8DC0,OemEdidFromGop F36FF770-A7E1-42CF-9ED2-56F0F271F44C,EfiManagedNetworkServiceBindingProtocolGuid F3714ADF-E3C3-473B-8FCC-5C34630C45C0,ComputeHmacSha256ProtocolGuid F3749E2C-5139-4E7A-B53A-4F5080B68B8F,PciSerialDxe F3774E67-3F2E-4ED1-9A5D-A22EB1A073EF,FjVarstoreSyncGHO F3794B60-8985-11DB-8E53-0040D02B1835,Cpu F38C34DE-9C38-438C-9AF6-69F584F17EC0,PoofAnimationState4 F38D1338-AF7A-4FB6-91DB-1A9C2183570D,WdtPpi F38D9312-05CB-48A8-8D3E-13643D686EA3,PchInitSmm F3982635-7706-4842-840F-6479B4865866,DellSimpleBootFlagDxe F3A3FCA1-466F-4978-AC84-2EA70FAE2BA2,AsfSecureBootSmm F3A4B484-9B26-4EEA-90E5-A206540CA525,EfiPciIovPlatformProtocol F3B38282-B951-4E2A-8DF5-DE01FC527AE4,RtcWakeup F3C6170E-8B8D-46BC-BC11-D7BEBF1F694D,TheftRecoveryDxe F3C9667B-C50C-4E9C-A1F1-78C3B1DDF2C2,LibNetUtil F3CC33F3-3716-4864-8606-41C0CB1C1BCE,OemPeiNbSbCustom F3D0CC88-1BD3-4EFE-9294-423BB495F6C6,DellDaCallingInterfaceSmm F3D301BB-F4A5-45A8-B0B7-FA999C6237AE,ShellNetwork1HiiGuid F3E4543D-CF35-6CEF-35C4-4FE6344DFC54,EfiFormCallbackProtocolGuid F3ED95DF-828E-41C7-BCA0-16C41965A634,TcgPpiSyncFlagGuid F3F3BB19-6420-45C9-8819-B606A7F20E50,DellPStateControlProtocol F3FF1468-04BA-4966-9FB2-E4A790054650,EfiCapsuleCrashLogVarGuid F4089EBB-6FBD-43DE-AB26-93B82BA6E475,OemColorCalibrationDxe F40C4423-455F-4567-A111-6F81133CE9BB,OledInit F40F4ACC-4D93-4254-A4ED-C9566FB81656,PdHostInterfaceCypressDxe F4208BAC-AE29-4C60-9DC8-9B33147B062B,DefaultSettingsSupportEfiVariable F426C7CF-DEB9-0361-4D4E-9F298C1B896E,SavePlatformConfiguration F429C00A-9640-46B3-9544-F8F86A28F30F,PlatformConfigChangeProtocolGuid F42A009D-977F-4F08-9440-BCA5A3BED9AF,AmiExtPciBusProtocolGuid F42AF0E4-182F-402B-8C8D-CB54D505328C,SmmNoBootDeviceCsm F42F7782-012E-4C12-9956-49F94304F721,EfiConsoleControlProtocolGuid F438A3F2-FA7F-490C-907D-2710C5B0E48A,HpPlatformWmi F43A3770-293D-4834-8D5A-DAB72F94D5E3,DefaultsManagerSmm F43F7EF6-6A33-427F-961B-6C4F412A977C,TraceHubPostCodeHandlerDxe F44363D2-E07D-4D2C-ACAC-DD73C43F6E25,FspUpdSetupDxe F44875AB-B9FC-4578-A280-AA335B49967C,CmosSmm F4491BA4-7672-486F-B4D7-99899D22DA57,AmiPeimHob F4493D0A-FDCB-4E25-9F11-6416B1514F0E,OemVerbTable F44C00EE-1F2C-4A00-AA09-1C9F3E0800A3,EfiArpServiceBindingProtocolGuid F45370EE-1E16-417F-AD8B-D886B4F05547,BmcRfCertDxe F45A96A9-35DF-40CB-A0DA-C5F551CD6B21,SetupMenuSmm F46998C9-DD30-4C64-966C-E17777B2568A,AppleSmc F46B2EB2-E0D7-4C96-A3B1-0C61BB245C42,EdkiiSmmCryptoProtocol F46D8EA6-4A67-4872-B0D1-D4FDEA0B692F,LenovoSvpManagerSmm F46EE6F4-4785-43A3-923D-7F786C3C8479,LenovoStartupMenuDxe F4731D79-537E-4505-BD52-C03F9B1F6B89,BaseTimerLibNullTemplate F4796268-1F6E-473C-80B2-7AFC3D2AC7DC,RtcWakeUpSmm F479E147-A125-11D4-BCFC-0080C73C8881,WinNtBlockIoDxe F48D0D95-A54D-41C0-AFD0-7E6CA1E788D3,IblInitDxeIbl F495F038-71E6-49DB-9A80-B2E98F7BA718,PeiDbgModuleLocator F496922D-172F-4BBC-A1EB-0EEB949C3486,EfiAlternateFvBlock F49EFBE0-4682-4471-AE65-00EFFB4770BA,LenovoSecureKeySmmProtocol F4A48AEA-40D1-454B-B7CB-5607A993B8D9,BBSManagerSmm F4A87592-D3AD-4336-BA00-80859FEE44AF,SmBiosOverRide F4AC8555-3F91-4668-AC20-9577E6909DAD,DecompressFspsDxe F4B2C007-94A1-4CD5-A710-F4141FCEBCA0,AmiTseOemTSEVarGuid F4B427BB-BA21-4F16-BC4E-43E416AB619C,EfiArpProtocolGuid F4C5FDD3-B99A-4229-9E0B-DB7A09E67393,LegacyUsbLan F4C8869F-A6B4-4F6F-A3C7-2DEF22BD8225,M24Lc128Pei F4CBB827-B4AF-4EEF-B512-F3F872F67D7A,FjWakeEventDxe F4CCBFB7-F6E0-47FD-9DD4-10A8F150C191,EfiSmmBase2ProtocolGuid F4CF63B9-3A14-4A9B-BCAA-926813BA75F1,TcgLegacyInstallInt1A F4D6609F-2FB3-401A-A4E7-BDB567125629,SbFlashControllerDxe F4DDF547-08F9-40B3-9408-2023E8DB8874,CPURDRAND F4EA205B-7345-452C-9D62-53BA6F3B8910,FmpAuthenticationLibPkcs7 F4EF842B-E3D1-411A-86DC-F4BF1FBA9E40,Platform_AcerPortingSmm F4EF9D7A-98C5-4C1A-B4D9-D8D87265BE0C,PeiSdhcPpiGuid F4F63529-281E-4040-A313-C1D6766384BE,AmiHddSecurityProtocolGuid F5042177-1D29-45C5-BA4D-4D0EB2E88575,IT8728SioAcBack F50707B0-7DA0-482D-B458-D23A72939959,EfiSecRev F5089266-1AA0-4953-97D8-562F8A73B519,EfiUsbHcProtocolGuid F508CCC1-E0DA-4A63-954C-6F0CE5CD1643,ThermalDxe F50B86B3-132F-4998-B386-2D49DCB79250,AsusTCG2DxeSetupItem F50E702C-8653-4CDE-BBCE-43B4D55B34B8,EfiMiscSubclassDriver F515E82B-44D9-41D8-BA90-EAEFC7C6A668,FlashMediaReaderDxe F51D8B66-E76A-43CF-9880-3FAE4D30F687,SmmBbsManagerProtocol F5255151-DD1F-4BD9-A350-235200798740,UpdateDsdtByAcpiSdtDxe F52C3858-5EF8-4D41-834E-C39EEF8A45A3,EfiSerialGpioProtocol F537251E-54AA-4B6F-A204-4D577F6D50C8,SpiInitPei F541796D-A62E-4954-A775-9584F61B9CDD,EfiTcgProtocolGuid F5508F5C-88D7-426C-B1C4-198A0272405C,UpdateD01AcpiTableHdr F5513824-BA68-0145-AED9-E0A89FAB40B9,DpcDxe F5633D05-A7DC-4A2D-8371-A6B84278563B,FchKeithMdnSmmInit F5699255-115A-4F7D-BB0C-658E9A1F42C6,PspfTpmLibNull F56A8EFD-62FE-47F9-9892-D8721526FCF5,QuantaIFSmm F56E697B-3EF8-471D-3EF8-6B6636A6F2F8,InstallWsmtDxe F56F984F-3846-49D8-AA0A-23DE27E38386,RfAutoGen F5701B5C-014B-4DEF-A914-A537BB49A89C,ArmaniKeyboardLayouts F5751C02-5378-469A-8514-07562D5057A6,CheckWakeUp F57D1C2E-3879-11DF-9118-931B1E0F29B0,VmwLogRuntimeDxe F57DF891-1DD1-4C67-99A1-4AB2DAD9FFBC,OdmDebugSmmProtocol F5883FC5-F8EE-4E44-B386-6021FB320C9B,ScReset F5932638-89A4-477E-B93E-32A51284F3F8,AsusMcuPowerSavingDxe F5985F80-CF55-46AD-8CCB-D49BF9168AC4,AmiRedfishVlan F59A5549-B879-440C-A1F6-38AF40F2773E,PcieSataController F5A41EC4-97AD-40F6-82EB-EE8501CD4926,AmiTlsCertificate F5AC7057-5650-466E-B692-76A47223EFB0,AcpiSmmPlatform F5AF6D30-2EDE-4026-8E71-74EF7F36D363,DellDfuPersistentEventDxe F5B22FDA-B35C-4898-9F4E-40A44C47E295,FjClearsureEraseDxe F5B423E7-C4C8-474E-B5A1-3C68AD993402,AaeonBiosInfoPei F5BEF7C6-E153-4ABA-8340-515309F82964,ExtendODMSmm F5C09051-2CF4-476D-8C83-7EF35BACF30A,WakeOnRtcSmm F5C48BAE-C10D-4A76-B855-5D5B062AFE04,LOMDriver F5D14DB5-2F0C-4611-9DDC-7C182B173A71,ProgressBarEmptyRightEndcap F5D16B69-80C9-F8A0-C28D-ADC6F0D71370,AmdMemSmbiosV2RplPei F5DB13F4-0D20-4F76-BCB4-B361FCE4EB72,OemQkeyDxe F5DD1F71-C3E2-473D-84D5-341A374054AF,SystemFlashCommunicationDataProtocol F5E655D9-02A6-46F2-9E76-B8BE8E60AB22,EfiIfrRefreshIdOpGuid F5EF05E4-D538-4774-8F1B-E9773011E038,FspInitDonePpiGuid F5F219D3-7006-4648-AC8D-D61DFB7BC6AD,FontPackageListGuid F5F2AC62-6232-445C-B322-5969A083980C,MAPS_SIO_InterfaceDxe F5F87B4F-CC3C-408D-89E3-61C59C5407C4,SataConfigGuid F5F98F9A-7F21-4190-96DE-4C2713754BE5,DecompressFvAbtDxe F5FF6D65-F0E5-4763-B204-8B739DF0DD1E,SystemTouchHotZoneDxe F605503E-9870-4DA5-BE65-CCAA85004EE2,MemoryDeviceInfoDxe F60B6782-3247-4CDC-BDB7-5CEB184686AD,SystemUsbHidParserSmm F617B358-12CF-414A-A069-60677BDA13B3,DxeIchPlatformPolicyProtocolGuid F617B358-12CF-414A-A069-60677BDA13B4,UsbPolicyGuid F6304B84-7997-45E8-901D-54D0D495737F,FjIbvRestoreConfigurationDataDxe F639D37E-02A1-4BA8-AD17-5C6C6E5E9322,CbsSetupDxe F642A9D7-26B7-47CB-ACC8-135951AC93F8,SystemVspCmosRuntimeDxe F6435590-2402-4E02-99FD-ABDD9DD40A6A,SaPolicyPpiGuid F64D8B24-1F12-47A4-91AD-5EFC6136B736,LEMDiskRelatedProtocolNull F64EFABA-D0A9-42C3-B5E8-391B48647BF1,DellGt2LegacyVideoRom F65354B9-1FF0-46D7-A5F7-0926CB238048,MonoStatusCodePei F655D0B3-615D-4022-9645-0D1F2E9DF78A,CompalCMFCOEMSwSmi F65ABA32-76FD-49C6-A1C4-CD7FADF96659,AmiReportFvLibCompatibility F65D1315-5B05-444F-ADF1-7C1F05685852,TpmVendorInfineon F66447D4-75A6-463E-A819-077F2DDA05E9,EfiKmsFormatRsasha12048Guid F665C81D-EFDE-4B5F-88E8-2160B748D2B4,DellVideoConfigPei F6663081-02D1-4F52-B57C-FDAD224941D4,AmdMemSmbiosV2RvPei F6697AC4-A776-4EE1-B643-1FEFF2B615BB,IncompatiblePciDeviceSupportDxe F672AE85-3769-4FB8-A5A0-70B38FB0A7C4,DxeTimerLibEsal F67FEE3A-DBE2-4228-9732-B4DD1E5FF6AF,BoardInfoSmmProtocol F684BBB3-C802-47C5-A59B-A392ADF72AAF,FabricTopologyDump F6937495-1F44-4A8A-8A1B-5A669F9396F6,DevConsole F6994CBA-2351-4EBC-A2DA-20BAC2FE2CF3,SmmPciLibPciRootBridgeIo F6A11F0E-0CBE-440C-BD85-49FB595686EA,LegacyUcrDxe F6A59595-BB9F-415B-A7F3-DC7C09387BE6,SmBusMemoryDown F6AB1DF9-12CD-4880-AC0F-D0DE71CF89C0,OpromUpdateDxeHedtCRB F6BEC3FE-88FB-11E3-AE84-E73B77561C35,FastbootTransportUsbDxe F6C5CE3D-2668-402A-952E-270786150DFB,SwSmi534D3220 F6C73719-F34C-479C-B32F-277FCBBCFE4F,DelBootOption F6C78BEB-21FA-4855-9325-311B6A9DAA9E,RealtekGopLoader F6CDAAE0-B301-4202-89F6-8623E6AED26E,DellSmBiosStrucTherm F6D35FBB-63EA-4B25-81A5-5E62B4886292,PlatformSetup F6D74E2F-EEAC-41B7-9E7A-29B258393DB2,AmiAmdPciResourceReport F6ECDC25-2079-475A-B0E8-F48B8FA5C20A,DellSTMicroTpmFwMgmtDxe F6EE6DBB-D67F-4EA0-8B96-6A71B19D84AD,EdkiiStatusCodeDataTypeVariableGuid F6F48D69-0C1E-4A3A-80DD-CC15474FF52A,DellDesktopPowerLEDDxe F6FB3997-F4EF-4354-B9C2-4737AFED4F2F,AsusWifiRealtek F706D0C8-F6FC-4F7A-AC98-96BA5CC43AAA,SandyBridgeGopDriver F70A4116-FDF6-45FB-93CD-84CDDD73DFD4,EfiPeiPlatformTypeLightningRidgeExecB1Ppi F70A6E93-82E1-4E6A-9A26-E7DE6ACE5BBB,PostScreenInfo F7119829-314A-4E7F-8853-44AA79A7CB43,PspFactoryReset F7162F38-6088-4842-B0ED-C143DAD39EFB,PTUpdatePCD F7196B8E-472B-4C1D-9AB9-A69A8992F46C,LenovoVariableStoreSmmRuntimeDxe F71AAB75-41BE-C209-A324-9B963BBDCB26,AmdRasSspDxe F7253EE9-CC52-4234-AE8D-4CD64E8F744F,DellRecoveryMgmtPei F737BB15-5019-4A16-9DD9-8FD34E431EAD,SmbiosDataUpdateDxeGlacier F73938F6-B851-494F-A003-331B49408605,SataDevSleepDxe F746D37F-F6C6-43C0-94DB-466F5F10E030,LenovoFingerprintSmm F74D20EE-37E7-48FC-97F7-9B1047749C69,LogoDxe F74FF9BE-90CA-4B57-B769-F606FAA52572,UnexpectedCapsuleUpdateCallback F7503CEB-481C-4AE2-B42D-8BD684F395E1,SecureBIOCamera_Sonix F75BD2CD-F473-4BA1-89B3-1E69EFC8BA70,ASUS_HW_FastBootDXE F75BE584-342D-44D2-9819-36641E8D0107,GetFmpInfo F761BD04-6E5E-4E37-94F4-4699972B243D,AmdMemStpSp6Pei F7673C6A-9C5C-4C54-B086-C6E0B7D03DB8,AmdSmmControl F76E0A70-B5ED-4C38-AC9A-E5F54BF16E34,DriverHealthFormSetGuid F771B43A-A5C2-45A8-8254-CBC08250DA15,BoardInitDxe F7731B4C-58A2-4DF4-8980-5645D39ECE58,PowerMgmtDxe F7761FE7-CD44-481B-8C12-27124877C806,IioCfgUpdateDxeEldorado F7763316-8C04-41D8-A87D-45B73C13C43C,BltLibSample F7787C3F-0CD5-4536-9354-0670EE22D7FD,AmdCpmModernStandbyAcpiTableInstall F77CB08E-6682-4DF7-82A3-BBBB52704C1F,AppleNetLoadFileDxe F77E54A4-09ED-4C2F-A966-BE1EDC723856,FjTpmPhysicalPresenceQuerySkip F78153D0-870D-4EEE-A684-741499C9A8CE,EistDxe F78285FD-121E-49F4-9716-44E307656586,Python2710 F786D3E4-B003-4C9D-96A3-A4FA84EF9603,DellDeviceCfgDrv F788DE7A-AB18-4886-BD3E-79ED9786F1A5,AmdMemPprSmmDriverSsp F799A761-2FC3-4240-92F1-FE457DC2FBBD,SpdPlatformInfoSmm F7A11672-3EDB-4F77-8A1E-5E8C1E0C98E8,CsbSmartCoverSmm F7A1EEC5-7DA5-4D80-8EDA-C28347276328,CsmInt15HookSmm F7A1F48E-0F6A-4F12-A74D-ED6F5B6B00F2,OpromUpdateDxeLightningRidgeEXECB4 F7AD60F8-EFA8-44A3-9113-231F399EB4C7,EfiKmsFormatMdc2128Guid F7B0E92D-AB47-4A1D-8BDE-41E529EB5A70,H19UnlockPswd F7B1EE00-A1B2-43DD-8F1B-815F0D1CE451,SataDevInfo F7B87A79-A640-4AA5-8C1E-453FB26EF376,EfiPeiPlatformTypeBuchananPassPpi F7CA7568-5A09-4D2C-8A9B-758468592AE2,AmiNvramControlProtocolGuid F7CAAF4A-B2DD-431A-8964-375D7E71B9B1,SMBIOSTypeDAhCallingInterfaceSmm F7CAD0AB-DFA4-40D2-8AFA-B7A8BE017031,MsiBoardEC F7D19491-EA53-970D-5508-75ACDFA41974,SbSocBristolDxe F7D22BCA-1BCA-5591-CC8B-1CA98F2890FE,AmiCpuS3Pei F7D6D25E-6243-4D5C-9BA5-C2DC48F003B0,AmiFlashLibPei F7D7F748-CCDE-481F-9B86-2EF5EDACC21D,DellVideoConfigDxe F7D9FD14-9335-4389-80C5-334D6ABFCCED,ArmVirtPrePiUniCoreRelocatable F7DC7A53-D789-4149-9DEC-C18F2F8CC3D3,SioPowerButtonOverrideDxe F7DC7A53-D789-4849-9DEC-C78F2F8CC1D6,SmartCoverDxe F7DFDECF-9C36-4D43-85A4-6D92DAFC3477,FchPromontoryGpioSmmInit F7ECF277-CD66-4DE8-A425-1D9F899492A7,AsusFtmDxe F7ED0F76-1F41-4527-AF2A-EECC76B8F078,ArmaniDxe F7EEA79A-D854-4099-9AE7-D0A328E44F72,AssetIDSmmProtocol F7FD20F4-E545-4D3B-9AB5-EADB69AF130B,DellVariableLockDownDxe F7FDE4A6-294C-493C-B50F-9734553BB757,CapsuleX64 F8000580-44AB-441F-86B4-DA3CA099EEBB,H19RecordLogSmm F80156A2-1A2C-3335-982C-066C1FC37626,TbtInfo F80697E9-7FD6-4665-8646-88E33EF71DFC,SecurityStubDxe F80D20E9-FC95-428C-8FB2-D06FD602BE05,OemTurboModeDxe F80E66A2-1A2C-415B-9B9C-066C1F04B626,TbtDxe F8126429-7B88-4AD2-98C4-402CBE26F9A8,IdentityAndAuthManagerDxe F81B1762-B783-4E64-AAE3-BE61B5A9039F,AmdNbioBaseCZDxe F821665C-0137-4F34-A7A1-57A0BD256D62,IntelScLegacyInterrupt F824CCBB-D8E0-4522-8AA8-65F04B463DB5,AmiPeiCpuinitPolicyPpi F827CF46-8A8F-43F9-BD99-0E7F5206907D,FjSysmanTeutatesSmmWatchdog F82E0BF0-95F7-41DB-9299-2D054546B3D0,IntelGopDriverRkl F82E90F8-5C19-4128-BA8B-0EEABF7F32EF,RomHoleReplacementPostFlag F8309A76-A48F-448C-B7B3-0D832433CE5F,EcIoSmm F8356C42-4BA6-706F-59E9-A9B1AFF2BCD8,AmdPlatformRasSspSmm F83AB02A-2B44-4799-A21F-85E7F2E8A32C,KEMhMfgMode F83AF871-59F4-432F-82E6-31A532894099,ITEFwFmp F83E3245-2127-474F-8819-974FDC139CE4,FjSysmanProtocol F8411271-787D-4CD3-B142-88A09F93D8B4,FjFlashServiceSmm F84B5A60-67F6-415C-9F6F-2FD94FC19B12,DellChassisConfigPei F84CFFF4-511E-41C8-B829-519F5152F444,LegacyBiosPlatformDxe F84D8725-5ADF-48D2-8819-1B0331AEB719,DRYPEI F85327D0-01CF-4D27-AE88-9D20A14F55BD,Rt8152UsbUndiDxe F8626165-6CEB-924A-BAFC-F13AB9D65728,EmuSystemConfigGuid F866226A-EAA5-4F5A-A90A-6CFBA57C588E,SmmPerformanceProtocolGuid F866AD0F-1FBB-4D52-813D-7EB95E2F19D4,menu_mid_right F8673422-16DE-449C-8728-AB0361DBF9F0,LegacyInterruptHookDxe F872A62B-3151-4F39-805E-5702CE1F7504,MsiPtpTouchPad F8775D50-8ABD-4ADF-92AC-853E51F6C8DC,IoMmuAbsentProtocol F87A3D1B-B0C3-44B6-B470-F4F4C09C110C,AsusQuickVgaPei F880AAE0-E4AC-4C64-A326-82709CC241EA,UsbDbg F8870015-6994-4B98-95A2-BD56DA91C07F,EfiMemoryMap F88BB993-9230-4CDF-916A-7A2D3BDEE690,AppleStartupManagerPolicyDxe F894643D-C449-42D1-8EA8-85BDD8C65BDE,EfiPeiMemoryDiscoveredPpiGuid F895B482-1970-49A7-84F5-723978086642,DellFlashUpdate2Dxe F8BB41A2-485E-4B9D-88CF-151E62F84DDE,DellSmbRunRom F8BE27F2-7EC7-82FD-704E-A94BA8E63C7D,EcGpioControl2Dxe F8BFF014-18FB-4EF9-B10C-AE22738DBEED,DxePlatformSeCPolicyGuid F8C60DB4-D427-436E-AF93-5FCCDA0DA37B,DellThermInfoConfigSmm F8C6FEDE-EE15-47ED-99A4-60798A3C7DC4,StaticSkuDataDxeLightningRidgeEXECB3 F8CA70B4-6A85-4616-8BDE-3EC569644AC3,LenovoW25Q32FlashPartSmm F8CC23A7-0F10-45AF-AA1C-0D9DD8BB3C20,DellHttpsBootManager F8D85E52-00F9-4DE4-AEEC-0AE76BA6C210,FjGpioCoffeeLakePei F8E21975-0899-4F58-A4BE-5525A9C6D77A,EfiHobMemoryAllocModuleGuid F8E5058C-CCB6-4714-B220-3F7E3A640BD1,EfiUserCredentialClassPasswordGuid F8EA63DD-3E59-462E-90E4-40ED947F60B0,AmdNbioDxe F8F995CE-B26F-4ECF-B228-0DA5151BE710,EmbeddedUefiOkrProtocol F8FABC29-6CAB-48EB-802D-FF2EF6A3DF87,HpCableDetect F8FD0711-CAC1-492F-AFC6-AFF5DA4D01B1,FpkConfigUpdateNeonCityEPRP F906769F-4AED-4A0D-8C7C-FF21B9D1051A,IntelVTdPmrPei F909628D-4B48-42FB-BD68-0F8685E33335,CheckBIOSVersion F9109394-E5A3-4E61-B168-DC34D534451E,DellBbsmanagerSmm F91486CE-700E-4D85-ADB5-4ED532536A7F,NvmeInfoSmm F91DCAB4-3639-11EE-BE56-0242AC120002,OobPprDxe F920B52A-B421-4509-BD00-B75FD9562775,AcerCF9Hook F921941B-708E-4BCD-98FA-525E4A9DCD55,RtkUsbUndiDriver F9229745-981C-4E07-9FC6-789545CB8818,AcpiSupportDxe F9268411-99AC-4F1F-B2D7-5804ED5B8E1E,OemLogoScale F935FF1B-AFF0-40F3-B77A-B795A7A7D714,DellPhysicalPresenceSmm F9383ECA-8566-491E-8533-ED7D2EFEA80D,SmcNVDIMMPeiDriver F94700A3-F49F-4CD2-BF25-19E280B72E3B,SystemUsbDatabaseDxe F94A048B-7FC4-4ABC-85A6-8616A6D3CDCE,LenovoTcgSmm F94AB34A-8069-4A9F-AD08-9534EF37D9BE,DellMeLocalFwUpdateDxe F95754C4-784D-4155-A05E-5C0AE2559FF8,AmdNbioBaseRVPei F95A7CCC-4C55-4426-A7B4-DC8961950BAE,ShellLevel2HiiGuid F962C719-6C1E-4A75-8629-38157622A906,AddressTranslationDxe F99775D1-1A6E-4555-98F2-18398403D1B2,FjRuntimeServicesTableRt F99C0302-9256-4050-B41D-F24B87F702D2,KeyboardLayouts F9A66268-C49F-4D29-8D20-FC1FB04B82F4,IntelLanUefiDriverGpy215 F9A9F8E6-C797-4FD8-9213-80C0CDC290B1,PlatformData F9AAA8B4-B4A4-4ADC-9E28-29CAD222E15A,FjSysmanAmphion F9B71F6A-5EB5-42D6-84FF-9E8A2389526F,DellAutoRtcResetDxe F9CD1703-8108-45CD-9384-5B247B8CAFF5,SerialIoDxe F9D88642-0737-49BC-81B5-6889CD57D9EA,SmbiosDxe F9E5AA3D-9D61-48C6-8348-24DA25924211,EmulatedEepromPei F9EF07AB-ABD0-4FE0-ABA7-BBA295024712,DellTagDxe F9F0B131-F346-4F16-80DD-F941072B3A7D,IffsPersistentData F9F1020C-CC31-4203-8850-EEC07A52A5B5,SecPchLibFsp F9F5318B-D0ED-4CA8-BE91-1881CEB57F1B,AsusAcpiRam F9FA0EAC-A5B5-40DD-BDFD-F540DFEE307D,SbRecoveryDevice F9FA662B-8361-4DF0-A419-781EB024B2B7,LenovoTpmProvisionDxe F9FAAF5D-E848-4537-8A75-0E3BD2DEFB6A,UsbOcUpdateDxeXPV FA0F4B4F-D6EF-40E7-BC1B-29245CA03BC2,FvbInitilized FA1184F7-7E5D-4E82-B30E-FEA47677A94E,I226_PXE FA177FF7-1FC7-458D-A358-D9D62AE61CEC,PeimEntryPoint FA1B2631-91C4-43F0-BA91-AFBFC7452087,DellEnhancedVersionDxe FA20568B-548B-4B2B-81EF-1BA08D4A3CEC,BootScriptExecutorDxe FA2338AD-80DF-49D0-9396-CF7145D03A76,TxtOneTouchOpProtocol FA2ED6B0-F606-4450-B4F1-4ED34A17E076,MsiBoardDxe FA327F24-2DE2-4B60-871A-436BC90605D4,LEMComputraceApiDxe FA3AD693-D58A-4619-960B-8EE85C914870,PeiPciLibPciCfg2 FA3CDE4C-87C2-427D-AEDE-7DD096C88C58,IscsiV4Private FA4585F1-303B-4725-80E4-BB42BBD0249C,SupportURL FA4974FC-AF1D-4E5D-BDC5-DACD6D27BAEC,AmiNvramMainRomAreaGuid FA4F6740-B95A-43F9-90B5-78D8147C0219,LenovoSlp2Smm FA528024-59A6-4689-BEA0-B555D87D7DBE,FpgaFvDataLibDxe FA5A8753-A30E-4C73-9265-8FEC0AC118AE,UsbHubEnableSmi FA68BD3F-8AD7-4D41-8CD9-2E72FB387AD7,SctMilestoneTaskDxe FA6C7BA5-4E80-46FB-95B7-3591CA0AD41B,SmmSioEmi FA70AFCC-3715-4D15-8699-F0DF4CAFC6D3,AmdNbioGfxRVDxe FA735DA8-ECBD-4448-8154-91E77120D427,FjPowerButtonState FA7E8D10-1312-4B98-9A3B-3B5B13A25DB0,PsmiHandlerBufferGuid FA7FA216-4DB5-D8DD-64D9-FA8D539A5ACD,PiAst2500Dxe FA8288DD-D296-4DCF-BAA0-2F56EE8C6DA9,HpBeepDeviceWmi FA82AC30-EA3B-4FDC-9D90-C2FDFFCAFBE4,SnapScreenDxe FA8ADDEF-38F2-43A9-BF1A-2936EFC5C0CC,ResiliencyDxe FA8B2FAB-0032-43DA-9165-213BEAA2D967,StoreRestoreMBR FA8F55E8-AB22-42DD-B916-7DCE39002574,TdthiProtocolFixed FA920010-6785-4941-B6EC-498C579F160A,VirtioDeviceProtocolGuid FA990751-0795-4D5E-AB70-A6F5A6771AC9,GopPolicy FAA216CB-B569-4407-8C25-1A1457B51DEC,AsusAcpiSwSmi FAAB0F29-0582-4AD1-9BB9-E693A0D99823,SioWdatDxe FAB13F43-BF42-450E-B695-A35479A9D642,DellPowerOffPolicy FAB5D4F4-83C0-4AAF-8480-442D11DF6CEA,VirtioScsiDxe FAB72A4B-E67F-4951-845C-BE5D8F5AE62F,AmdCcxZen3RmbDxe FAB7E9E1-39DD-4F2B-8408-E20E906CB6DE,HdBootDevicePathVariablGuid FABDD96B-2DDD-4747-9612-F9E777C84A38,SetupUtility FAC2EFAD-8511-4E34-9CAE-16A257BA9488,Capsule FACFB110-7BFD-4EFB-873E-88B6B23B97EA,PhDefEfiVar FAD7933A-6C21-4234-A434-0A8A0D2B0781,EfiIsaHcServiceBindingProtocolGuid FAD8842C-7DC7-472F-A6A7-1CA1F073644F,AmdMemoryHobInfoPeim FAD93433-76B9-4482-4567-3BEACEA9B35D,A01WMISmmCallback FAE06C19-0F1C-47D3-832D-E3B9C25AD020,aDefaultPei FAEA0786-FF3E-4091-A895-98E4E9114892,LegacyRegionDxe FAF79E9F-4D40-4F02-8AC9-4B5512708F7F,BiosGuardPolicyOverride FAFF8CA9-E515-44ED-B5F9-E2F6E5D902E3,ServerHotplugDxe FB011592-2A97-4982-8A54-3B3F595CD59F,FchKeithPei FB045DB2-598E-485A-BA30-5D7B1B1BD54D,AOAC FB049119-AC72-459F-865A-641DC13C931D,OemLOGO FB062BBC-F19D-4CF4-81FD-FAE535D44A53,WifiProfileSync FB07B301-8B02-4952-876E-D071EECA6B53,FjBeepOnPOSTDxe FB0F46A6-4073-413D-991A-812ABEBC3138,PlatformStatusCodeHandlerSmm FB142B99-DF57-46CB-BC69-0BF858A734F9,SerialOverLan FB15CB3F-D373-45A1-B9B1-0079D4E9D6B2,menu_seperator FB257425-8C55-4DE8-8238-F53906AA5B94,IrqBoardInfoRvpDt FB2B7D4B-B6AE-4284-8307-2D7F848C1B46,OemBootOptionPolicyDxe FB2CE027-10E9-4F0A-A7A9-1B9D9CBD6DCC,RecoveryLedBlink FB2EE051-A1F6-4B6C-A137-961C41F2C5DD,TPMfirmwaredriver FB3D20EE-CB5D-45EE-BBAE-C5AAA9C0FDFA,ChipsetSvcPei FB4ED61B-2022-428A-8715-9D8F029DDA4C,RtkUndiDxe FB547927-DAEC-4884-A12E-94109FEDF18C,gear3 FB5937D3-7839-4CE4-432C-D02585D222A2,CcgxFwUpdateSmm FB62F7F0-5433-11E4-B810-402CF41D8A90,SecureEraseDxe FB6D36A2-EF7D-4B74-99AC-80B31F6BE9B1,WheaErrorInj FB6D9542-612D-4F45-872F-5CFF52E93DCF,EfiPeiRecoveryModulePpiGuid FB7258BD-4097-4576-8CA5-7B2C3D85E988,CapsuleCallbackDxe FB73FD5B-FAB5-4EE8-8E32-48035C2071AB,Smbios248 FB7400EE-0E8F-4B9C-B677-CF3E0F27CF62,LEMEfiAtaPassThruProtocolHook FB74A690-DE1A-4BF4-97C0-170B3535FC98,PciThunderbolt FB76E42B-EA77-48F3-A61D-208FF0535F92,TrEEPpVendorLibNull FB8415B7-EA7E-4E6D-9381-005C3BD1DAD7,DellEcConfigPei FB85101D-F422-4C8C-82C4-EF4DCD05E1BF,SmcSmBios FB8CE09B-A0DE-467E-9DC6-4465F5987676,AmdFabricSspSmm FB925AC7-192A-9567-8586-7C6F5F710607,Cryptest FB94D898-57D5-4624-AEE5-0551AE692E9F,KEMhTstMode FBA14D8B-BE6F-0361-93E8-4CDF18E19EDE,ICCPolicy FBA2AFEB-9ACE-49E0-BB82-0EB9E83BD5BE,HpAcLossSmm FBA34BC8-4E37-451D-A7FF-5469F52064C6,UUDriver FBA4A10E-8931-4BE0-B1EB-92A1326F64BE,AcerHwConfigDxe FBA9DAA5-EE58-4E01-9E94-5B0EB63F851B,SpiProtectionDxe FBAA1C41-ED48-4EAA-98AD-7A3F95B47915,InstallD01MsftDxe FBB3F083-5787-45AF-BADC-664854100F20,FitDiagnostics FBB4A01B-947E-4D82-B27D-1E207C070053,BaseCacheAsRamLibNull FBC9449A-681C-4517-AB91-9072ACDEBB77,GcExt FBDC5309-BF95-44B5-A8AE-E0593E0522BF,BackupBiosUpdate FBDCC90A-A7A2-4D50-AF79-880A513C5387,QCAWIFI FBE0E499-2EBE-4421-A237-B21435FB7145,VariableServiceSmm FBF95065-427F-47B3-8077-D13C60710998,dbVar FBFCA56B-BB36-4B78-AAAB-BE1B97EC7CCB,EdkiiXtermR6 FBFFA123-4540-4439-A901-8899AABCDEF0,SyncMSR FC012980-D6F9-4741-B660-32D04E269BD8,DellFmpPm FC06B535-5E1F-4562-9F25-0A3B9ADB63C3,EfiIa32X64ErrorTypeTlbCheckGuid FC089179-D584-4ECD-A886-96A18562D907,HpThermalDiagsDxe FC120ED3-40E1-46DC-8C9C-AAE3CA139ACF,BasePerformanceLibNull FC1B7640-3466-4C06-B1CC-1C935394B5C2,PchSerialGpio FC1BCDB0-7D31-49AA-936A-A4600D9DD083,EfiCrc32GuidedSectionExtractionGuid FC1D4706-88FB-42B0-98B0-A4B2E607EBAA,LibErr FC22F5BD-FA25-4625-A53B-9CB485A98D87,SecureBootInitDxe FC3269A5-5514-4279-8C56-5D23718D879F,AsusSampleSmmWrapperPkg FC3DADEC-1E3C-49AC-9CC8-3C3597A8C85F,Smbus2HostController FC4285A7-EBB5-45D2-8541-EBA3318FC2C2,UsbOcUpdateDxeLightningRidgeEXECB1 FC44722E-1813-419F-9FDD-C3FB644CEC8C,DellErrorHandlerDxe FC4707B5-BCB9-42AC-8790-E2269274FFBD,RtkUndiDxe FC4B3B8C-2A0B-47A2-8A95-AFFA51A01593,OsInstallerMenuDxe FC4E86EB-AAA2-4EFE-831A-1E66DB3C5970,AmdSmmControl FC510EE7-FFDC-11D4-BD41-0080C73C8881,AprioriDxe FC53F573-17DD-454C-B067-ECB10B7D7FC7,EfiHeciSmmProtocolGuid FC5A38D2-E0AE-49B7-A490-A1A8BCF51D44,ColdBootLongRun FC5C7020-1A48-4198-9BE2-EAD5ABC8CF2F,BdsDxe FC622601-83C2-4C56-9A4D-E78642DF69B1,FjSysmanTeutatesPowerStateBin FC637F1E-50DA-4013-924D-C531F1DFF38B,GopConfig FC63ED62-949D-4FB0-B754-D558A6367C56,EzFlashDxe FC6F3967-AAA8-47D7-837F-A1CD442E7572,TcpDxe FC73690C-8D4A-4F8C-B7F5-BA241F316E28,CpuInitDxe FC740D58-59BA-429B-99EF-627051737B76,ImageDecoder FC740D58-59BA-429B-99EF-627051737B78,AsusImageDecoder FC788727-C2D0-469C-BD03-5AEA03323C67,GlobeMask FC7A2E28-EF78-4472-8B17-B8BB0024616E,UefiRaid FC7B9F22-2AF6-4BDC-9B94-38646F1E0830,AsusIoSecInterface FC7DD6E0-813C-434D-B4DA-3BD649E9E15A,EdkiiScoTerm FC8377DE-A3DA-421C-A455-E111BAA679E9,AmiFchUart0Dxe FC87501F-F707-49A2-B676-77717DD904DC,SmiCpuDecode FC8BE767-89F1-4D6E-8099-6F021EBC87CC,AmiIrqDmaMaskVariable FC8CFD34-4D25-478C-83F0-0309C93FFBA4,AmdCcxVhDxe FC90EB7A-3E0A-483C-A26C-484D36593FF4,AcpiPlatform FC9A50C1-8B3D-40D0-9912-6E26D7896CBA,AmiHeciSmm FCA3A635-C4AF-458D-9679-F7B61480E39F,AmdGraphicsDxe FCA6A1D3-66D3-4E38-A737-E45A58B1A5D0,OobInit FCAA9AD2-D6C1-483E-8A24-15BE21704FAD,CablesIdm FCABE6A7-7953-4A84-B7EC-D29E89B62E87,EmbeddedMonotonicCounter FCAF78DB-828C-4279-A743-DFE3E9A7DB46,DellRpmcProvision FCC0B496-192A-48B4-BE7E-7F8763DD2FB1,FjFextDxe FCCCE259-07E1-417A-A755-E0F2CF39295E,CpuInitDxe FCD337AB-B1D3-4EF8-957C-8048606FF670,HiiDatabaseDxe FCD6562A-253A-40D7-87DE-28CFF25898C6,InsideHT FCD67501-3518-491A-92CA-4EBC91E84BBE,AmdRAIDCoreDxe FCD6E85B-4A8E-4326-A7AB-8E67229DA8E3,AmdSocFp7PhxPei FCDC2416-D7EB-4491-B194-3EFF5DB333C0,SVI3ManagementDxe FCDCB9C2-7987-47DF-A9A7-BE3DBA52D50C,BootOptionPolicy FCDD2EFC-6CA8-4D0B-9D00-6F9CFA578F98,EfiCpRcPkgTokenSpace FCDF7788-7878-11FF-CC77-88CCCC7788CC,EfiSmmRcToAptioBridge FCE085B0-9E4C-4058-BB55-1676C77C51A1,DellPolyFuseStringPolicyDxe FCE2733C-8804-4293-AC52-562D2D729D2A,AmiSetupFormSetVar FCE47C4E-5ECC-4A41-B90E-0BAB09968D02,SystemSecureFlashSleepTrapSmm FCF51E6B-527F-438D-BE6D-A6D15F0CD98B,EfiTraceHubStatusCodeHandleRuntimeDxe FCF94301-9763-4A64-AA84-7892C4712367,IpSecDxe FCFE7223-7291-4CE7-85BD-DEE481BB7115,AmdSocFp8PhxDxe FD022AE6-CF36-42F8-E360-2309237257B9,AmdNbioIOMMUSSPPei FD023012-19F4-4235-ADCF-D924DBE246FE,StaticSkuDataDxeLightningRidgeEXECB1 FD082F6E-6391-4DBC-86C3-E33CA14F3453,HpPlatformFormsDxe FD0C65EB-0405-4CD2-8AEE-F400EF13BAC2,NtPeiLoadFilePpiGuid FD0F4478-0EFD-461D-BA2D-E58C45FD5F5E,EfiGetPcdInfoProtocolGuid FD144455-591B-4E1C-80EF-295B783FC8D4,CrashLogSmm FD225DB2-5A26-4263-8398-71C359404B85,AcerTPM FD2340D0-3DAB-4349-A6C7-3B4F12B48EAE,EfiTlsCaCertificateGuid FD236AE7-0791-48C4-B29E-29BDEEE1A811,SaInitPeim FD236AE7-0791-48C4-B29E-29BDEEE1A838,PchInitPeim FD252115-77AF-4D9D-A259-81DD98780E18,UpdateTCMFlag FD27652D-F758-4EFC-B1A9-283EFE51F4E9,MeFwCapsulePei FD301BA4-5E62-4679-A06F-E09AABDD2A91,EfiTdtOperationProtocolGuid FD315206-9EFC-43AF-8845-4C7528667CAC,OemSMIEE FD36FEE3-7B33-4C9E-836E-9AA26A9E3149,BiosAcm_Dale FD3B3390-9E9A-4343-8E03-90F080DE9021,EcdPeiNbSbCustom FD3B7E55-FA7B-4E07-AE1D-208B81FB0BAD,FvbRuntimeDxe FD3F690E-B4B0-4D68-89DB-19A1A3318F90,MICROCODE FD44820B-F1AB-41C0-AE4E-0C55556EB9BD,SMBiosFlashData FD480A76-B134-4EF7-ADFE-B0E054639807,UsraProtocol FD4D6227-6B16-4BA2-BA9F-E94EB89FAF8D,EsrtDxe FD4E7631-3558-4C24-ADD3-C47EBEAB9267,HpSmmVariableProtocol FD5D40DE-20BE-44BE-9415-A51B527AB4FA,IntelWLan6GControl FD5FBE54-8C35-B345-8A0F-7AC8A5FD0521,EmuSnpProtocolGuid FD724D10-6C1D-4CEB-AC39-693900669CE1,Supplicant FD72B1B5-5391-4C6A-BDFD-9F59A7880A21,PlatformRelatedInfoGuid FD75A212-ACBF-41C3-A416-1C6AA1B997C9,PeiS3mDpe FD76FF8E-665F-4AFC-AF75-724EF5A569E5,UcOnUc2Thunk FD776D5E-A7B7-4C1C-896F-616AE444436C,MAPS_SerialPortControlDxe FD7A24E8-B7CC-4172-9F1E-64970BE3EF62,FchTacomaDxe FD7C4665-34BE-426B-B1F8-3AB753CE44B0,PeiBootScriptDonePpi FD86838E-5134-4166-8C73-CC05B39073CD,IntegratedVideoOptionPei FD8DD4C4-B748-48E3-A932-BA68DD07BB06,FchSmbusDxe FD9175E4-943A-4885-A61B-40F639BC71D3,MAPS_SmartFanSmm FD93F9E1-3C73-46E0-B7B8-2BBA3F718F6C,TcgSmm FD96334B-2F26-42BE-A947-7AEFB4AF9291,IntelLanDriverPolicy FD96DEAF-2C34-43FE-A7A8-011F8C3E9412,AfterG3InitPeim FD98B162-41BA-4C9E-982E-023699DE02F0,DellEcPolicy3 FDA14FA3-AFFC-469A-B7BB-34BCDD4AC096,PlatformIde FDA82EB3-28A4-4950-84F6-3D49A73F0487,PlatformSmm FDACDB6C-ACBC-4D87-8A59-83F539FC66FD,FanTuningDxe FDAE6F77-8719-49E3-9526-D681E5251187,AmtPetInitDxe FDB3B9A7-1E82-4C77-9C6C-4305C851F253,ProgClkGenPeim FDBC2130-2A17-4830-8477-544F3669772F,DxeCpuPowerManagement FDBE121D-3EB4-4F95-A294-B3794D177FEB,DellECZPODD FDBEBA3C-B4C5-4F76-B80A-3D1F8DA62973,DellFlashPowerConfigSmm FDC50ED1-ACB8-8048-8735-8098B7A13E5E,ApplePowerState FDCB1801-A303-4430-9481-28F298C01EC9,SmcSwSmiFlashProtocol FDCF66CC-5091-483E-BA85-DFA4472E4254,Common_LilyDxe FDD7E3DB-96CA-4036-9F88-9FAF7A43ACA4,MfgPanicModeHandler FDD96161-9E65-482B-B7BE-4B2F40974415,FjBootOptionDxe FDDC2E1E-33A9-40A6-A232-21D64B3622E8,SmiVariableInstallInt15Dxe FDE29A56-C197-4AE1-BB98-792B2F09725D,FspVariablePcd FDEE5331-BEC6-4C6D-B82E-C5B14E91693E,PlatformSioEspiVwSmi FDFBBFAB-BC61-4961-B917-77445641507B,TseAfterPostInvPwdPrompt FDFBF935-656D-4EA7-9DD3-B7FB42497D78,DellSecurityAuditDisplaySmm FDFF263D-5F68-4591-87BA-B768F445A9AF,Tcg2Dxe FE00EAF2-BA37-4BCF-939C-4C78EA63ECDA,DellPropertyReady FE075D44-D9F1-4DA1-AE6A-8250553CDE66,AmiTseOemPortingVar25 FE0CD24C-B7A0-4F0D-A78C-EC3E27181AE5,AmdMtkWlanDrvCfgDxe FE16CB8E-82CF-4F43-AAFF-A9B3B2B55443,SmbiosInterfaceCoreDxe FE1F75AF-3647-4422-A7E1-ABD64520D904,PsrSetup FE27AFCE-A2C8-4C30-84C5-4CE14F6B292D,SataDeviceFeaturePei FE2B0D33-133D-4253-A97C-08F141044D85,OemRealtekWlanUndi FE2F54A9-017D-45C2-A82D-9822BCF14CA6,FanPolicyDxe FE31B86D-EC7C-4F24-821A-603FF8BBA568,OnBoardLanPxeDriver FE3542FE-C1D3-4EF8-657C-8048606FF670,SetupUtility FE3542FE-C1D3-4EF8-657C-8048606FF671,DriverSample FE3CE4C1-905C-4085-A7A0-38DEFE4178D2,BackupHddPasswordDxe FE40F4FE-6C15-433E-B0B4-5FD190E70DB2,ODMPEI FE4177AA-168B-4C1C-BC5D-205C932307CB,OemKbLightSupportDxe FE444F51-5288-46E6-B171-73C91BDE358B,DellUefiClass3ConfigSmm FE4622E7-180F-4383-B6AF-87A18F049B4A,FirmwareVolumesInstalledPpiGuid FE4A8890-2BD6-4DF8-A59E-301D398B5433,HeciTransportDxe FE503FFE-497F-4A46-9AD2-FBDDD253D5B1,SensorInfoDxe FE5B3CD5-3409-4225-9D79-5791088C02C8,RtkUndiDxe FE5C7F1B-E256-47A8-8F1E-9478107C7875,AmtInitDxe FE5CEA76-4F72-49E8-986F-2CD899DFFE5D,FaultTolerantWriteDxe FE5FDD35-A0A4-456C-AF66-03137A5599FF,RaidResourcePei FE612B72-203C-47B1-8560-A66D946EB371,setupdata FE61BB5F-1B67-4C24-B346-73DB42E873E5,ArmHwDxe FE6C231F-C490-41B2-8A85-826FC7764AF0,FjVariableSmm FE6E1666-591E-4AB8-9531-2BF6433A3925,ApobRnDxe FE6F3B89-6417-4F00-A206-EA52E7D44D3D,LenovoSmmAmtConfig FE6F8ACD-55A6-4C6B-B448-64E659DE94B3,LegacyRegion2 FE72846D-6C19-4237-9052-9C693CF409E3,AmdFabricSspPei FE7D8450-446D-0F9E-FBE7-DBAFF5AF1FF0,AmdSocAm4VmrDxe FE82B152-96C9-4A53-95DC-6E49C85087C3,ControllerDiscoveryDxe FE9AF6AA-17F9-4A67-B009-E37579385DE5,SiliconDataInitDxe FEA01457-E381-4135-9475-C6AFD0076C61,CryptoDxe FEAA2E2B-53AC-4D5E-AE10-1EFD5DA4A2BA,BeagleBoardPciEmulation FEAAA7A6-CB95-4670-B499-877FA6CA6BAE,MeudFile FEB817B5-5006-4DAD-B3B7-B72E26FF3EC3,AsusOnBoardDevicePei FEC445CC-2466-4DCE-9052-7400E044554F,CbsBaseDxeZP FEC46340-CA99-49FE-BCCA-D09FA6064A4A,MrcHooksServicesPpi FEC58211-6025-45B7-9DCF-DB21A433BB78,MmcSetPowerOffTypePei FECCA19A-D1D3-4CDD-B477-56573F58B1A3,AmdNbioAlibRNDxe FED6583D-2418-4760-AC96-B5E18F0A6326,SmmCorePlatformHookLibNull FEDD6305-E2D7-4ED5-9FAA-DA080E336C22,PeiUsb2HostControllerPpiGuid FEDE0A1B-BCA2-4A9F-BB2B-D9FD7DEC2E9F,StatusCodeRuntimeDxe FEDF8E0C-E147-11E3-9903-B8E8562CBAFA,EfiBootManagerPolicyProtocolGuid FEE6987C-9FF3-4971-ABC1-23697CB6ACED,A01ModifyBootInfoDxe FEEA2404-752E-4E6E-823C-877D848CB12B,AsfSecureBootDxe FEFEA8E3-9673-4A5D-A865-88351D2171CE,AmdDmarControlDxe FF052503-1AF9-4AEB-83C4-C2D4CEB10CA3,PhoenixEfiSmmSwSmiProtocolGuid FF084F98-B1D2-49F8-AA57-E7EEE7C48A12,VbtMipiPanel3Guid FF0C09A0-76C7-4E99-8F21-2942D12E7B04,AmdOemRasBrhSmm FF0C8745-3270-4439-B74F-3E45F8C77064,IntelGopDriver FF0C8746-3270-4439-B74F-3E45F8C87566,gMXMsigned FF0C8746-3270-4439-B74F-3E45F8C8A588,gMXMsignedN16M2 FF0C8746-3270-4439-B74F-3E45F8C8A589,gMXMsignedN16E FF0E5C5A-FA43-4593-BE3F-9D902E0359A6,FchPromontoryPlusGpioDxe FF10945A-1EA3-4BD8-B785-B525C5E14EBB,NonAmtNetWorkController FF11E702-8923-47CC-AD30-D9E0E240DD10,AAFTblDxe FF162074-864F-4343-93AE-5B06CA256A3A,DeleteNvStorageVariableSmm FF189B79-F558-4B6A-8A78-6FCD2B4B0E3C,FrontPageDxe FF1B53B2-E81C-4A37-8D64-2F0F7642D82F,CustomizeMultiLogoSmm FF20FCDC-805A-7748-A090-6A8A37260D76,Power FF259F16-18D1-4298-8DD2-BD87FF2894A9,PchResetPeim FF2D54D4-5C55-4C06-8549-C3627CB8B995,EfiNbErrorLogDispatchProtocol FF30FA10-EE1D-455D-971F-34B97D20679C,PlatformMemoryConfigurationPei FF311042-1C7A-4769-8085-93686179E437,MeIgnitionDxe FF391B6E-07CE-4904-BFFF-12BE96D4ACF1,FvbVariableStorageSmmRuntimeDxe FF3E5307-9FD0-48C9-85F1-8AD56C701E01,EfiCertSha384Guid FF3E8D8C-F7D2-472F-BE89-71928123193C,PeiSmartPowerOn FF3EAE9F-AB18-4CAF-B2A1-6BF3FDCA3C4D,LenovoSmbiosProtocol FF3F5786-7026-403F-9A95-47F989391294,FchSmbusPei FF456B9C-0DC7-4682-9E92-0DE84B6E4067,PeiSmmControl FF478412-38C3-4770-85F6-5D076C62125F,TargetDiskModeUI FF4DDA4A-64E4-42A4-96CA-3D4F2D4311A9,AmdPlatformCustomizeDxe FF5A0DC3-DFAC-434A-B3DF-FFD4C1EA7E41,AmiTseOemPortingVar28 FF626DA9-17EE-4949-A8B8-B10FA0044E9F,EsrtFmpDxe FF63C459-3400-40F9-85FF-54AD7855F5B7,DellFmpLoader FF69F7D7-BA16-4B20-8589-EA8EC0379967,DellAmdThunderboltDxe FF761299-D41F-4C73-8380-A24055ADF4B9,EDUDxe FF8124DD-34D8-4CF8-9C6F-DF6FCE3A9F13,DellUserInterface3Dxe FF917E22-A228-448D-BDAA-68EFCCDDA5D3,TxtDxe FF97F61A-A215-46D3-8008-21CB4356042F,Wcn7851Launcher FFA0AE14-0FD1-4169-B87D-58FB8C346556,FjLoadRtd3Table FFBD9AD2-F1DB-4F92-A649-EB9EEDEA86B5,AmiHddSmartProtocolGuid FFD2BE39-1D4E-4623-ACC3-30689B9EA78A,TouchPadDriver FFD92E9C-26B0-44E3-9960-872F6C4162B6,FjCmos FFE06BDD-6107-46A6-7BB2-5A9C7EC5275C,EfiAcpiTableProtocolGuid FFE0FCDC-809A-4D48-A060-6A8A6A269176,EventLogsSetupPage FFE92C5D-2D83-44E2-A4EA-294D53991DBC,HpChipsetSHUsbPortDisableSmm FFECFFFF-923C-14D2-9E3F-22A0C969563B,EfiPerformanceProtocol FFEE0F93-34CA-433A-B44A-18C25C1E615E,RecoveryControl FFF12B8D-7696-4C8B-A985-2747075B4F50,EfiSystemNvDataFvGuid ./github.com/canonical/go-efilib/guids/guids.go0000664000000000000000000000365100000000000016511 0ustar00// Copyright 2024 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. //go:generate go run ./generate map guids guidToNameMap guids.csv guidmap_generated.go //go:generate gofmt -w guidmap_generated.go //go:generate go run ./generate list guids_test allGuids guids.csv guidlist_generated_test.go //go:generate gofmt -w guidlist_generated_test.go // Package guids provides a way to map well known firmware volume and // file GUIDs to readable names. package guids import ( "bytes" "sort" efi "github.com/canonical/go-efilib" ) // FileOrVolumeNameString returns the semi-readable name for the supplied // GUID if it corresponds to a well known name used for files or // firmware volumes (see [efi.MediaFvDevicePathNode] and // [efi.MediaFvFileDevicePathNode]). If it is not known by this package, // then ("", false) will be returned. // // Deprecated: use [IndustryStandardString]. func FileOrVolumeNameString(guid efi.GUID) (name string, wellKnown bool) { return IndustryStandardString(guid) } // IndustryStandardString returns the semi-readable name for the supplied // GUID if it corresponds to a well known industry standard name. If it is // not known by this package, then ("", false) will be returned. func IndustryStandardString(guid efi.GUID) (name string, wellKnown bool) { name, wellKnown = guidToNameMap[guid] return name, wellKnown } // ListAllKnown returns a list of all well-known GUIDs that are used // to identify the names of firmware volumes and their files (see // [efi.MediaFvDevicePathNode] and [efi.MediaFvFileDevicePathNode]). func ListAllKnown() []efi.GUID { var out []efi.GUID for guid := range guidToNameMap { out = append(out, guid) } sort.Slice(out, func(i, j int) bool { return bytes.Compare(out[i][:], out[j][:]) < 0 }) return out } func init() { efi.RegisterFWFileNameLookup(IndustryStandardString) efi.RegisterFWVolNameLookup(IndustryStandardString) } ./github.com/canonical/go-efilib/ids.go0000664000000000000000000001067300000000000015044 0ustar00// Copyright 2020 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package efi import ( "github.com/canonical/go-efilib/internal/uefi" ) var ( // HashAlgorithmSHA1Guid corresponds to the SHA1 algorithm. HashAlgorithmSHA1Guid GUID = GUID(uefi.EFI_HASH_ALGORITHM_SHA1_GUID) // HashAlgorithmSHA256Guid corresponds to the SHA256 algorithm. HashAlgorithmSHA256Guid GUID = GUID(uefi.EFI_HASH_ALGORITHM_SHA256_GUID) // HashAlgorithmSHA224Guid corresponds to the SHA224 algorithm. HashAlgorithmSHA224Guid GUID = GUID(uefi.EFI_HASH_ALGORITHM_SHA224_GUID) // HashAlgorithmSHA384Guid corresponds to the SHA384 algorithm. HashAlgorithmSHA384Guid GUID = GUID(uefi.EFI_HASH_ALGORITHM_SHA384_GUID) // HashAlgorithmSHA412Guid corresponds to the SHA512 algorithm. HashAlgorithmSHA512Guid GUID = GUID(uefi.EFI_HASH_ALGORITHM_SHA512_GUID) // CertTypeRSA2048SHA256Guid is used to define the type of a // WinCertificateGUID that corresponds to a PKCS#1-v1.5 encoded RSA2048 // SHA256 signature and is implemented by the *WinCertificateGUIDPKCS1v15 // type. CertTypeRSA2048SHA256Guid GUID = GUID(uefi.EFI_CERT_TYPE_RSA2048_SHA256_GUID) // CertTypePKCS7Guid is used to define the type of a WinCertificateGUID // that corresponds to a detached PKCS#7 signature and is implemented by // the *WinCertificatePKCS7 type. CertTypePKCS7Guid GUID = GUID(uefi.EFI_CERT_TYPE_PKCS7_GUID) // CertSHA1Guid is used to define the type of a signature list that // contains a SHA1 digest. CertSHA1Guid GUID = GUID(uefi.EFI_CERT_SHA1_GUID) // CertSHA256Guid is used to define the type of a signature list that // contains a SHA-256 digest. CertSHA256Guid GUID = GUID(uefi.EFI_CERT_SHA256_GUID) // CertSHA224Guid is used to define the type of a signature list that // contains a SHA-224 digest. CertSHA224Guid GUID = GUID(uefi.EFI_CERT_SHA224_GUID) // CertSHA384Guid is used to define the type of a signature list that // contains a SHA-384 digest. CertSHA384Guid GUID = GUID(uefi.EFI_CERT_SHA384_GUID) // CertSHA512Guid is used to define the type of a signature list that // contains a SHA-512 digest. CertSHA512Guid GUID = GUID(uefi.EFI_CERT_SHA512_GUID) // CertRSA2048Guid is used to define the type of a signature list that // contains RSA2048 public keys. CertRSA2048Guid GUID = GUID(uefi.EFI_CERT_RSA2048_GUID) // CertRSA2048SHA1Guid is used to define the type of a signature list // that contains SHA1 digests of RSA2048 public keys. CertRSA2048SHA1Guid GUID = GUID(uefi.EFI_CERT_RSA2048_SHA1_GUID) // CertRSA2048SHA256Guid is used to define the type of a signature list // that contains SHA-256 digesta of RSA2048 public keya. CertRSA2048SHA256Guid GUID = GUID(uefi.EFI_CERT_RSA2048_SHA256_GUID) // CertX509Guid is used to define the type of a signature list that // contains a DER encoded X.509 certificate. CertX509Guid GUID = GUID(uefi.EFI_CERT_X509_GUID) // CertX509SHA256Guid is used to define the type of a signature list // that contains the SHA-256 digest of the TBS content of a X.509 // certificate, and a revocation time. CertX509SHA256Guid GUID = GUID(uefi.EFI_CERT_X509_SHA256_GUID) // CertX509SHA384Guid is used to define the type of a signature list // that contains the SHA-384 digest of the TBS content of a X.509 // certificate, and a revocation time. CertX509SHA384Guid GUID = GUID(uefi.EFI_CERT_X509_SHA384_GUID) // CertX509SHA512Guid is used to define the type of a signature list // that contains the SHA-512 digest of the TBS content of a X.509 // certificate, and a revocation time. CertX509SHA512Guid GUID = GUID(uefi.EFI_CERT_X509_SHA512_GUID) // GlobalVariable is the namespace for many variables within the UEFI specification. GlobalVariable GUID = GUID(uefi.EFI_GLOBAL_VARIABLE) // ImageSecurityDatabaseGuid is the namespace for signature databases defined // byt the UEFI specification. ImageSecurityDatabaseGuid GUID = GUID(uefi.EFI_IMAGE_SECURITY_DATABASE_GUID) PCAnsiGuid GUID = GUID(uefi.EFI_PC_ANSI_GUID) VT100Guid GUID = GUID(uefi.EFI_VT_100_GUID) VT100PlusGuid GUID = GUID(uefi.EFI_VT_100_PLUS_GUID) VTUTF8Guid GUID = GUID(uefi.EFI_VT_UTF8_GUID) DevicePathMessagingUARTFlowControl GUID = GUID(uefi.DEVICE_PATH_MESSAGING_UART_FLOW_CONTROL) SASDevicePathGuid GUID = GUID(uefi.EFI_SAS_DEVICE_PATH_GUID) DebugPortProtocolGuid GUID = GUID(uefi.EFI_DEBUGPORT_PROTOCOL_GUID) ) ./github.com/canonical/go-efilib/internal/0000775000000000000000000000000000000000000015543 5ustar00./github.com/canonical/go-efilib/internal/ioerr/0000775000000000000000000000000000000000000016663 5ustar00./github.com/canonical/go-efilib/internal/ioerr/ioerr.go0000664000000000000000000000743000000000000020336 0ustar00// Copyright 2021 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package ioerr import ( "errors" "fmt" "io" "unicode" "unicode/utf8" ) // Return the index of the first %w in format, or -1 if none. // TODO: handle "%[N]w". func parsePercentW(format string) int { // Loosely copied from golang.org/x/xerrors/fmt.go. n := 0 sz := 0 var isW bool for i := 0; i < len(format); i += sz { if format[i] != '%' { sz = 1 continue } // "%%" is not a format directive. if i+1 < len(format) && format[i+1] == '%' { sz = 2 continue } sz, isW = parsePrintfVerb(format[i:]) if isW { return n } n++ } return -1 } // Parse the printf verb starting with a % at s[0]. // Return how many bytes it occupies and whether the verb is 'w'. func parsePrintfVerb(s string) (int, bool) { // Assume only that the directive is a sequence of non-letters followed by a single letter. sz := 0 var r rune for i := 1; i < len(s); i += sz { r, sz = utf8.DecodeRuneInString(s[i:]) if unicode.IsLetter(r) { return i + sz, r == 'w' } } return len(s), false } // EOFIsUnexpected converts [io.EOF] errors into [io.ErrUnexpectedEOF], which is // useful when using [binary.Read] to decode parts of a structure that aren't // at the start and when a [io.EOF] error is not expected. // // It can be called in one of 2 ways: // - With a single argument which must be one of: // - error: in this case, the supplied error is returned untouched unless it is // [io.EOF], in which case, it will be returned as [io.ErrUnexpectedEOF]. This // only works on unwrapped [io.EOF] errors. // - nil: in this case, a nil error is returned. // - With multiple arguments - the first one must be a format string and the rest // being an arbitrary number of arguments. This is converted to an error using // [fmt.Errorf], with any [io.EOF] arguments converted to [io.ErrUnexpectedEOF]. // // This will panic if a single argument is supplied which isn't an error or nil. // It will also panic if multiple arguments is supplied and the first argument is // not a format string. func EOFIsUnexpected(args ...any) error { switch { case len(args) > 1: format, ok := args[0].(string) if !ok { panic(fmt.Sprintf("expected a format string, got %T", args[0])) } idx := parsePercentW(format) if idx >= 0 { if err, isErr := args[idx+1].(error); isErr && err == io.EOF { args[idx+1] = io.ErrUnexpectedEOF } } return fmt.Errorf(format, args[1:]...) case len(args) == 1: switch err := args[0].(type) { case error: if err == io.EOF { err = io.ErrUnexpectedEOF } return err case nil: return nil default: panic("invalid type") } default: panic("no arguments") } } // PassRawEOF converts any wrapped or unwrapped [io.EOF] into a plain [io.EOF]. // // It can be called in one of 2 ways: // - With a single argument, which must be one of: // - error: In this case, if the supplied error is a wrapped or unwrapped [io.EOF], // a raw [io.EOF] is returned. // - nil: in this case, a nil error is returned. // - With multipple arguments - the first one must be a format string and the rest // being an arbitrary number of arguments. This will be converted into an error // using [fmt.Errorf] and that error is then passed to a nested PassRawEO. func PassRawEOF(args ...any) error { switch { case len(args) > 1: format, ok := args[0].(string) if !ok { panic(fmt.Sprintf("expected a format string, got %T", args[0])) } return PassRawEOF(fmt.Errorf(format, args[1:]...)) case len(args) == 1: switch err := args[0].(type) { case error: if errors.Is(err, io.EOF) { return io.EOF } return err case nil: return nil default: panic("invalid type") } default: panic("no arguments") } } ./github.com/canonical/go-efilib/internal/pkcs7/0000775000000000000000000000000000000000000016572 5ustar00./github.com/canonical/go-efilib/internal/pkcs7/der.go0000664000000000000000000000774200000000000017705 0ustar00package pkcs7 import ( "bytes" "errors" "math" "golang.org/x/crypto/cryptobyte" cryptobyte_asn1 "golang.org/x/crypto/cryptobyte/asn1" ) type asn1Element interface { Add(builder *cryptobyte.Builder) } type asn1Primitive struct { tag cryptobyte_asn1.Tag contents []byte } func (p asn1Primitive) Add(builder *cryptobyte.Builder) { builder.AddASN1(p.tag, func(child *cryptobyte.Builder) { child.AddBytes(p.contents) }) } type asn1Structured struct { tag cryptobyte_asn1.Tag contents []asn1Element } func (s asn1Structured) Add(builder *cryptobyte.Builder) { builder.AddASN1(s.tag, func(child *cryptobyte.Builder) { for _, elem := range s.contents { elem.Add(child) } }) } func parseBase256Int(bytes []byte) (int, error) { // x/crypto/cryptobyte expects these to fit into an int32, so numbers up to // 4 bytes are valid. If there are more bytes, make sure they're all // leading zeros. for len(bytes) > 4 { b := bytes[0] bytes = bytes[1:] if b != 0 { return 0, errors.New("base-256 number too large") } } var ret64 int64 for i := 0; i < len(bytes); i++ { b := bytes[i] n := len(bytes) - i - 1 ret64 |= int64(b) << (8 * n) } if ret64 > math.MaxInt32 { return 0, errors.New("base-256 number too large") } return int(ret64), nil } type reader struct { r *bytes.Reader n int } func newReader(data []byte) *reader { return &reader{r: bytes.NewReader(data)} } func (r *reader) Read(data []byte) (n int, err error) { n, err = r.r.Read(data) r.n += n return n, err } func (r *reader) ReadByte() (b byte, err error) { b, err = r.r.ReadByte() if err != nil { return 0, err } r.n += 1 return b, nil } func readDERElement(data []byte) (int, asn1Element, error) { r := newReader(data) b, err := r.ReadByte() if err != nil { return 0, nil, errors.New("element truncated before tag") } tag := cryptobyte_asn1.Tag(b) if tag&0x1f == 0x1f { return 0, nil, errors.New("high tag numbers are not supported") } b, err = r.ReadByte() if err != nil { return 0, nil, errors.New("element truncated before length") } var length int switch { case b == 0xff: return 0, nil, errors.New("invalid length") case b > 0x80: bytes := make([]byte, int(b&0x7f)) if _, err := r.Read(bytes); err != nil { return 0, nil, errors.New("element length base-256 truncated") } l, err := parseBase256Int(bytes) if err != nil { return 0, nil, err } length = l case b == 0x80: return 0, nil, errors.New("indefinite length elements are not supported") default: length = int(b) } content := data[r.n:] if length > len(content) { return 0, nil, errors.New("element content truncated") } content = content[:length] if tag&0x20 == 0 { return r.n + len(content), asn1Primitive{ tag: tag, contents: content}, nil } total := r.n ret := asn1Structured{tag: tag} for len(content) > 0 { n, elem, err := readDERElement(content) if err != nil { return total + n, nil, err } total += n content = content[n:] ret.contents = append(ret.contents, elem) } return total, ret, nil } // fixupDERLengths attempts to make some BER encodings compatible with go's // encoding/asn1 package which only supports DER encoding. This does not // convert a BER encoding in to DER, and it is not possible to do this in // a generic way anyway because it can't handle type-specific rules for // types with context-specific, private or application specific tags. // What this does do is make lengths and high tag number fields properly // DER encoded. // // This shouldn't be necessary because UEFI requires DER encodings, but // there are some artefacts in the wild that have length encodings that // aren't proper DER, such as the 2016 dbx update which contains long-form // lengths for lengths that can be represented by the short-form encoding. func fixupDERLengths(data []byte) ([]byte, error) { _, elem, err := readDERElement(data) if err != nil { return nil, err } builder := cryptobyte.NewBuilder(nil) elem.Add(builder) return builder.Bytes() } ./github.com/canonical/go-efilib/internal/pkcs7/pkcs7.go0000664000000000000000000001440000000000000020147 0ustar00// Copyright 2022 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package pkcs7 import ( "bytes" "crypto/x509" "encoding/asn1" "errors" "fmt" "math/big" "golang.org/x/crypto/cryptobyte" cryptobyte_asn1 "golang.org/x/crypto/cryptobyte/asn1" ) var ( oidSignedData = asn1.ObjectIdentifier{1, 2, 840, 113549, 1, 7, 2} ) type contentInfo struct { contentType asn1.ObjectIdentifier content []byte } func readContentInfo(der cryptobyte.String) (*contentInfo, error) { if !der.ReadASN1(&der, cryptobyte_asn1.SEQUENCE) { return nil, errors.New("malformed input") } ci := new(contentInfo) if !der.ReadASN1ObjectIdentifier(&ci.contentType) { return nil, errors.New("malformed contentType") } if !der.ReadOptionalASN1((*cryptobyte.String)(&ci.content), nil, cryptobyte_asn1.Tag(0).ContextSpecific().Constructed()) { return nil, errors.New("malformed content") } return ci, nil } type issuerAndSerialNumber struct { issuerNameRaw []byte serialNumber big.Int } func readIssuerAndSerialNumber(der cryptobyte.String) (*issuerAndSerialNumber, error) { if !der.ReadASN1(&der, cryptobyte_asn1.SEQUENCE) { return nil, errors.New("malformed input") } isn := new(issuerAndSerialNumber) if !der.ReadASN1Element((*cryptobyte.String)(&isn.issuerNameRaw), cryptobyte_asn1.SEQUENCE) { return nil, errors.New("malformed issuerName") } if !der.ReadASN1Integer(&isn.serialNumber) { return nil, errors.New("malformed serialNumber") } return isn, nil } type signerInfo struct { version int issuerAndSerialNumber issuerAndSerialNumber // digestAlgorithm pkix.AlgorithmIdentifier // authenticatedAttributes []attribute // digestEncryptionAlgorithm pkix.AlgorithmIdentifier // encryptedDigest []byte // unauthenticatedAttriubtes []attribute } func readSignerInfo(der cryptobyte.String) (*signerInfo, error) { if !der.ReadASN1(&der, cryptobyte_asn1.SEQUENCE) { return nil, errors.New("malformed input") } si := new(signerInfo) if !der.ReadASN1Integer(&si.version) { return nil, errors.New("malformed version") } var isnRaw cryptobyte.String if !der.ReadASN1Element(&isnRaw, cryptobyte_asn1.SEQUENCE) { return nil, errors.New("malformed issuerAndSerialNumber") } isn, err := readIssuerAndSerialNumber(isnRaw) if err != nil { return nil, fmt.Errorf("cannot read issuerAndSerialNumber: %w", err) } si.issuerAndSerialNumber = *isn return si, nil } type signedData struct { version int //digestAlgorithms []pkix.AlgorithmIdentifier contentInfo contentInfo certificates []*x509.Certificate //crls []pkix.RevokedCertificate signerInfos []signerInfo } func readSignedData(der cryptobyte.String) (*signedData, error) { if !der.ReadASN1(&der, cryptobyte_asn1.SEQUENCE) { return nil, errors.New("malformed input") } sd := new(signedData) sd.version = 1 if der.PeekASN1Tag(cryptobyte_asn1.INTEGER) { if !der.ReadASN1Integer(&sd.version) { return nil, errors.New("malformed version") } } if sd.version != 1 { return nil, fmt.Errorf("invalid version %d", sd.version) } var unused cryptobyte.String if !der.ReadASN1(&unused, cryptobyte_asn1.SET) { return nil, errors.New("malformed digestAlgorithms") } var ciRaw cryptobyte.String if !der.ReadASN1Element(&ciRaw, cryptobyte_asn1.SEQUENCE) { return nil, errors.New("malformed contentInfo") } ci, err := readContentInfo(ciRaw) if err != nil { return nil, fmt.Errorf("cannot read contentInfo: %w", err) } sd.contentInfo = *ci var certsRaw cryptobyte.String if !der.ReadOptionalASN1(&certsRaw, nil, cryptobyte_asn1.Tag(0).ContextSpecific().Constructed()) { return nil, errors.New("malformed certificates") } certs, err := x509.ParseCertificates(certsRaw) if err != nil { return nil, fmt.Errorf("cannot parse certificates: %w", err) } sd.certificates = certs if !der.SkipOptionalASN1(cryptobyte_asn1.Tag(1).ContextSpecific().Constructed()) { return nil, errors.New("malformed crls") } var sisRaw cryptobyte.String if !der.ReadASN1(&sisRaw, cryptobyte_asn1.SET) { return nil, errors.New("malformed signerInfos") } for !sisRaw.Empty() { var siRaw cryptobyte.String if !sisRaw.ReadASN1Element(&siRaw, cryptobyte_asn1.SEQUENCE) { return nil, errors.New("malformed signerInfo") } si, err := readSignerInfo(siRaw) if err != nil { return nil, fmt.Errorf("cannot read signedInfo: %w", err) } sd.signerInfos = append(sd.signerInfos, *si) } return sd, nil } func unwrapSignedData(der *cryptobyte.String) error { s := *der if !s.ReadASN1(&s, cryptobyte_asn1.SEQUENCE) { return errors.New("malformed input") } if !s.PeekASN1Tag(cryptobyte_asn1.OBJECT_IDENTIFIER) { return nil } ci, err := readContentInfo(*der) if err != nil { return fmt.Errorf("cannot read contentInfo: %w", err) } if !ci.contentType.Equal(oidSignedData) { return errors.New("not signed data") } *der = cryptobyte.String(ci.content) return nil } type SignedData struct { Certificates []*x509.Certificate contentInfo contentInfo signers []issuerAndSerialNumber } func UnmarshalSignedData(data []byte) (*SignedData, error) { data, err := fixupDERLengths(data) if err != nil { return nil, err } der := cryptobyte.String(data) if err := unwrapSignedData(&der); err != nil { return nil, fmt.Errorf("cannot unwrap signedData: %w", err) } sd, err := readSignedData(der) if err != nil { return nil, fmt.Errorf("cannot read signedData: %w", err) } var signers []issuerAndSerialNumber for _, s := range sd.signerInfos { signers = append(signers, s.issuerAndSerialNumber) } return &SignedData{ Certificates: sd.certificates, contentInfo: sd.contentInfo, signers: signers}, nil } func (p *SignedData) getCertFrom(ias *issuerAndSerialNumber) *x509.Certificate { for _, c := range p.Certificates { if c.SerialNumber.Cmp(&ias.serialNumber) == 0 && bytes.Equal(c.RawIssuer, ias.issuerNameRaw) { return c } } return nil } func (p *SignedData) GetSigners() []*x509.Certificate { var certs []*x509.Certificate for _, s := range p.signers { c := p.getCertFrom(&s) if c == nil { return nil } certs = append(certs, c) } return certs } func (p *SignedData) ContentType() asn1.ObjectIdentifier { return p.contentInfo.contentType } func (p *SignedData) Content() []byte { return p.contentInfo.content } ./github.com/canonical/go-efilib/internal/uefi/0000775000000000000000000000000000000000000016473 5ustar00./github.com/canonical/go-efilib/internal/uefi/authvars.go0000664000000000000000000000513500000000000020663 0ustar00// Copyright 2021 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package uefi import ( "encoding/binary" "io" "github.com/canonical/go-efilib/internal/ioerr" ) const ( EFI_VARIABLE_AUTHENTICATION_3_CERT_ID_SHA256 = 1 EFI_VARIABLE_AUTHENTICATION_3_TIMESTAMP_TYPE = 1 EFI_VARIABLE_AUTHENTICATION_3_NONCE_TYPE = 2 ) type EFI_VARIABLE_AUTHENTICATION struct { MonotonicCount uint64 AuthInfo WIN_CERTIFICATE_UEFI_GUID } func Read_EFI_VARIABLE_AUTHENTICATION(r io.Reader) (out *EFI_VARIABLE_AUTHENTICATION, err error) { out = &EFI_VARIABLE_AUTHENTICATION{} if err := binary.Read(r, binary.LittleEndian, &out.MonotonicCount); err != nil { return nil, err } cert, err := Read_WIN_CERTIFICATE_UEFI_GUID(r) if err != nil { return nil, ioerr.EOFIsUnexpected(err) } out.AuthInfo = *cert return out, nil } type EFI_VARIABLE_AUTHENTICATION_2 struct { TimeStamp EFI_TIME AuthInfo WIN_CERTIFICATE_UEFI_GUID } func Read_EFI_VARIABLE_AUTHENTICATION_2(r io.Reader) (out *EFI_VARIABLE_AUTHENTICATION_2, err error) { out = &EFI_VARIABLE_AUTHENTICATION_2{} if err := binary.Read(r, binary.LittleEndian, &out.TimeStamp); err != nil { return nil, err } cert, err := Read_WIN_CERTIFICATE_UEFI_GUID(r) if err != nil { return nil, ioerr.EOFIsUnexpected(err) } out.AuthInfo = *cert return out, nil } type EFI_VARIABLE_AUTHENTICATION_3 struct { Version uint8 Type uint8 MetadataSize uint32 Flags uint32 } type EFI_VARIABLE_AUTHENTICATION_3_CERT_ID struct { Type uint8 IdSize uint32 Id []byte } func Read_EFI_VARIABLE_AUTHENTICATION_3_CERT_ID(r io.Reader) (out *EFI_VARIABLE_AUTHENTICATION_3_CERT_ID, err error) { out = &EFI_VARIABLE_AUTHENTICATION_3_CERT_ID{} if err := binary.Read(r, binary.LittleEndian, &out.Type); err != nil { return nil, err } if err := binary.Read(r, binary.LittleEndian, &out.IdSize); err != nil { return nil, ioerr.EOFIsUnexpected(err) } out.Id = make([]byte, out.IdSize) if _, err := io.ReadFull(r, out.Id); err != nil { return nil, ioerr.EOFIsUnexpected(err) } return out, nil } type EFI_VARIABLE_AUTHENTICATION_3_NONCE struct { NonceSize uint32 Nonce []byte } func Read_EFI_VARIABLE_AUTHENTICATION_3_NONCE(r io.Reader) (out *EFI_VARIABLE_AUTHENTICATION_3_NONCE, err error) { out = &EFI_VARIABLE_AUTHENTICATION_3_NONCE{} if err := binary.Read(r, binary.LittleEndian, &out.NonceSize); err != nil { return nil, err } out.Nonce = make([]byte, out.NonceSize) if _, err := io.ReadFull(r, out.Nonce); err != nil { return nil, ioerr.EOFIsUnexpected(err) } return out, nil } ./github.com/canonical/go-efilib/internal/uefi/base.go0000664000000000000000000000140500000000000017734 0ustar00// Copyright 2021 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package uefi import ( "encoding/binary" ) type EFI_GUID [16]byte func New_EFI_GUID(a uint32, b, c, d uint16, e [6]uint8) (out EFI_GUID) { binary.LittleEndian.PutUint32(out[0:4], a) binary.LittleEndian.PutUint16(out[4:6], b) binary.LittleEndian.PutUint16(out[6:8], c) binary.BigEndian.PutUint16(out[8:10], d) copy(out[10:], e[:]) return } type EFI_LBA uint64 type EFI_TABLE_HEADER struct { Signature uint64 Revision uint32 HeaderSize uint32 CRC uint32 Reserved uint32 } type EFI_MAC_ADDRESS struct { Addr [32]uint8 } type EFI_IPv4_ADDRESS struct { Addr [4]uint8 } type EFI_IPv6_ADDRESS struct { Addr [16]uint8 } ./github.com/canonical/go-efilib/internal/uefi/boot.go0000664000000000000000000000163000000000000017765 0ustar00// Copyright 2024 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package uefi const ( EFI_OS_INDICATIONS_BOOT_TO_FW_UI = 0x0000000000000001 EFI_OS_INDICATIONS_TIMESTAMP_REVOCATION = 0x0000000000000002 EFI_OS_INDICATIONS_FILE_CAPSULE_DELIVERY_SUPPORTED = 0x0000000000000004 EFI_OS_INDICATIONS_FMP_CAPSULE_SUPPORTED = 0x0000000000000008 EFI_OS_INDICATIONS_CAPSULE_RESULT_VAR_SUPPORTED = 0x0000000000000010 EFI_OS_INDICATIONS_START_OS_RECOVERY = 0x0000000000000020 EFI_OS_INDICATIONS_START_PLATFORM_RECOVERY = 0x0000000000000040 EFI_OS_INDICATIONS_JSON_CONFIG_DATA_REFRESH = 0x0000000000000080 EFI_BOOT_OPTION_SUPPORT_KEY = 0x00000001 EFI_BOOT_OPTION_SUPPORT_APP = 0x00000002 EFI_BOOT_OPTION_SUPPORT_SYSPREP = 0x00000010 EFI_BOOT_OPTION_SUPPORT_COUNT = 0x00000300 ) ./github.com/canonical/go-efilib/internal/uefi/db.go0000664000000000000000000000637100000000000017416 0ustar00// Copyright 2021 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package uefi import ( "encoding/binary" "errors" "io" "math" "github.com/canonical/go-efilib/internal/ioerr" ) const ESLHeaderSize = 28 type EFI_SIGNATURE_DATA struct { SignatureOwner EFI_GUID SignatureData []byte } func (d *EFI_SIGNATURE_DATA) Write(w io.Writer) error { if _, err := w.Write(d.SignatureOwner[:]); err != nil { return err } if _, err := w.Write(d.SignatureData); err != nil { return err } return nil } type EFI_SIGNATURE_LIST struct { SignatureType EFI_GUID SignatureListSize uint32 SignatureHeaderSize uint32 SignatureSize uint32 SignatureHeader []byte Signatures []EFI_SIGNATURE_DATA } func (l *EFI_SIGNATURE_LIST) Write(w io.Writer) error { if _, err := w.Write(l.SignatureType[:]); err != nil { return err } if err := binary.Write(w, binary.LittleEndian, l.SignatureListSize); err != nil { return err } if err := binary.Write(w, binary.LittleEndian, l.SignatureHeaderSize); err != nil { return err } if err := binary.Write(w, binary.LittleEndian, l.SignatureSize); err != nil { return err } if _, err := w.Write(l.SignatureHeader); err != nil { return err } for _, s := range l.Signatures { if err := s.Write(w); err != nil { return err } } return nil } func Read_EFI_SIGNATURE_LIST(r io.Reader) (out *EFI_SIGNATURE_LIST, err error) { out = &EFI_SIGNATURE_LIST{} if err := binary.Read(r, binary.LittleEndian, &out.SignatureType); err != nil { return nil, err } if err := binary.Read(r, binary.LittleEndian, &out.SignatureListSize); err != nil { return nil, ioerr.EOFIsUnexpected(err) } if err := binary.Read(r, binary.LittleEndian, &out.SignatureHeaderSize); err != nil { return nil, ioerr.EOFIsUnexpected(err) } if err := binary.Read(r, binary.LittleEndian, &out.SignatureSize); err != nil { return nil, ioerr.EOFIsUnexpected(err) } if out.SignatureHeaderSize > math.MaxUint32-ESLHeaderSize { return nil, errors.New("signature header size too large") } if out.SignatureHeaderSize+ESLHeaderSize > out.SignatureListSize { return nil, errors.New("inconsistent size fields: total signatures payload size underflows") } signaturesSize := out.SignatureListSize - out.SignatureHeaderSize - ESLHeaderSize if out.SignatureSize < uint32(binary.Size(EFI_GUID{})) { return nil, errors.New("invalid SignatureSize") } if signaturesSize%out.SignatureSize != 0 { return nil, errors.New("inconsistent size fields: total signatures payload size not a multiple of the individual signature size") } numOfSignatures := int(signaturesSize / out.SignatureSize) out.SignatureHeader = make([]byte, out.SignatureHeaderSize) if _, err := io.ReadFull(r, out.SignatureHeader); err != nil { return nil, ioerr.EOFIsUnexpected(err) } for i := 0; i < numOfSignatures; i++ { var s EFI_SIGNATURE_DATA if _, err := io.ReadFull(r, s.SignatureOwner[:]); err != nil { return nil, ioerr.EOFIsUnexpected(err) } s.SignatureData = make([]byte, int(out.SignatureSize)-binary.Size(s.SignatureOwner)) if _, err := io.ReadFull(r, s.SignatureData); err != nil { return nil, ioerr.EOFIsUnexpected(err) } out.Signatures = append(out.Signatures, s) } return out, nil } ./github.com/canonical/go-efilib/internal/uefi/devicepath.go0000664000000000000000000001621200000000000021140 0ustar00// Copyright 2021 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package uefi import ( "encoding/binary" "io" "github.com/canonical/go-efilib/internal/ioerr" ) const ( MBR_TYPE_PCAT = 0x01 MBR_TYPE_EFI_PARTITION_TABLE_HEADER = 0x02 ) const ( RFC_1700_TCP_PROTOCOL = 6 RFC_1700_UDP_PROTOCOL = 17 ) const ( NO_DISK_SIGNATURE = 0x00 SIGNATURE_TYPE_MBR = 0x01 SIGNATURE_TYPE_GUID = 0x02 ) const ( HARDWARE_DEVICE_PATH = 0x01 ACPI_DEVICE_PATH = 0x02 MESSAGING_DEVICE_PATH = 0x03 MEDIA_DEVICE_PATH = 0x04 BBS_DEVICE_PATH = 0x05 END_DEVICE_PATH_TYPE = 0x7f ) const ( HW_PCI_DP = 0x01 HW_VENDOR_DP = 0x04 ) const ( ACPI_DP = 0x01 ACPI_EXTENDED_DP = 0x02 ) const ( MSG_ATAPI_DP = 0x01 MSG_SCSI_DP = 0x02 MSG_USB_DP = 0x05 MSG_USB_CLASS_DP = 0x0f MSG_VENDOR_DP = 0x0a MSG_MAC_ADDR_DP = 0x0b MSG_IPv4_DP = 0x0c MSG_IPv6_DP = 0x0d MSG_USB_WWID_DP = 0x10 MSG_DEVICE_LOGICAL_UNIT_DP = 0x11 MSG_SATA_DP = 0x12 MSG_NVME_NAMESPACE_DP = 0x17 MSG_URI_DP = 0x18 ) const ( MEDIA_HARDDRIVE_DP = 0x01 MEDIA_CDROM_DP = 0x02 MEDIA_VENDOR_DP = 0x03 MEDIA_FILEPATH_DP = 0x04 MEDIA_PIWG_FW_FILE_DP = 0x06 MEDIA_PIWG_FW_VOL_DP = 0x07 MEDIA_RELATIVE_OFFSET_RANGE_DP = 0x08 ) const END_ENTIRE_DEVICE_PATH_SUBTYPE = 0xff type EFI_DEVICE_PATH_PROTOCOL struct { Type uint8 SubType uint8 Length uint16 } type PCI_DEVICE_PATH struct { Header EFI_DEVICE_PATH_PROTOCOL Function uint8 Device uint8 } type VENDOR_DEVICE_PATH struct { Header EFI_DEVICE_PATH_PROTOCOL Guid EFI_GUID } type ACPI_HID_DEVICE_PATH struct { Header EFI_DEVICE_PATH_PROTOCOL HID uint32 UID uint32 } type ACPI_EXTENDED_HID_DEVICE_PATH struct { Header EFI_DEVICE_PATH_PROTOCOL HID uint32 UID uint32 CID uint32 } type ATAPI_DEVICE_PATH struct { Header EFI_DEVICE_PATH_PROTOCOL PrimarySecondary uint8 SlaveMaster uint8 Lun uint16 } type SCSI_DEVICE_PATH struct { Header EFI_DEVICE_PATH_PROTOCOL Pun uint16 Lun uint16 } type USB_DEVICE_PATH struct { Header EFI_DEVICE_PATH_PROTOCOL ParentPortNumber uint8 InterfaceNumber uint8 } type USB_CLASS_DEVICE_PATH struct { Header EFI_DEVICE_PATH_PROTOCOL VendorId uint16 ProductId uint16 DeviceClass uint8 DeviceSubClass uint8 DeviceProtocol uint8 } type MAC_ADDR_DEVICE_PATH struct { Header EFI_DEVICE_PATH_PROTOCOL MacAddress EFI_MAC_ADDRESS IfType uint8 } type IPv4_DEVICE_PATH struct { Header EFI_DEVICE_PATH_PROTOCOL LocalIpAddress EFI_IPv4_ADDRESS RemoteIpAddress EFI_IPv4_ADDRESS LocalPort uint16 RemotePort uint16 Protocol uint16 StaticIpAddress bool GatewayIpAddress EFI_IPv4_ADDRESS SubnetMask EFI_IPv4_ADDRESS } type IPv6_DEVICE_PATH struct { Header EFI_DEVICE_PATH_PROTOCOL LocalIpAddress EFI_IPv6_ADDRESS RemoteIpAddress EFI_IPv6_ADDRESS LocalPort uint16 RemotePort uint16 Protocol uint16 IpAddressOrigin uint8 PrefixLength uint8 GatewayIpAddress EFI_IPv6_ADDRESS } type USB_WWID_DEVICE_PATH struct { Header EFI_DEVICE_PATH_PROTOCOL InterfaceNumber uint16 VendorId uint16 ProductId uint16 SerialNumber []uint16 } func (p *USB_WWID_DEVICE_PATH) Write(w io.Writer) error { if err := binary.Write(w, binary.LittleEndian, &p.Header); err != nil { return err } if err := binary.Write(w, binary.LittleEndian, p.InterfaceNumber); err != nil { return err } if err := binary.Write(w, binary.LittleEndian, p.VendorId); err != nil { return err } if err := binary.Write(w, binary.LittleEndian, p.ProductId); err != nil { return err } if err := binary.Write(w, binary.LittleEndian, p.SerialNumber); err != nil { return err } return nil } func Read_USB_WWID_DEVICE_PATH(r io.Reader) (out *USB_WWID_DEVICE_PATH, err error) { out = &USB_WWID_DEVICE_PATH{} if err := binary.Read(r, binary.LittleEndian, &out.Header); err != nil { return nil, err } if err := binary.Read(r, binary.LittleEndian, &out.InterfaceNumber); err != nil { return nil, ioerr.EOFIsUnexpected(err) } if err := binary.Read(r, binary.LittleEndian, &out.VendorId); err != nil { return nil, ioerr.EOFIsUnexpected(err) } if err := binary.Read(r, binary.LittleEndian, &out.ProductId); err != nil { return nil, ioerr.EOFIsUnexpected(err) } out.SerialNumber = make([]uint16, (int(out.Header.Length)-binary.Size(out.Header)-binary.Size(out.InterfaceNumber)-binary.Size(out.VendorId)-binary.Size(out.ProductId))/2) if err := binary.Read(r, binary.LittleEndian, out.SerialNumber); err != nil { return nil, ioerr.EOFIsUnexpected(err) } return out, nil } type DEVICE_LOGICAL_UNIT_DEVICE_PATH struct { Header EFI_DEVICE_PATH_PROTOCOL Lun uint8 } type SATA_DEVICE_PATH struct { Header EFI_DEVICE_PATH_PROTOCOL HBAPortNumber uint16 PortMultiplierPortNumber uint16 Lun uint16 } type NVME_NAMESPACE_DEVICE_PATH struct { Header EFI_DEVICE_PATH_PROTOCOL NamespaceId uint32 NamespaceUuid uint64 } type HARDDRIVE_DEVICE_PATH struct { Header EFI_DEVICE_PATH_PROTOCOL PartitionNumber uint32 PartitionStart uint64 PartitionSize uint64 Signature [16]uint8 MBRType uint8 SignatureType uint8 } type CDROM_DEVICE_PATH struct { Header EFI_DEVICE_PATH_PROTOCOL BootEntry uint32 PartitionStart uint64 PartitionSize uint64 } type FILEPATH_DEVICE_PATH struct { Header EFI_DEVICE_PATH_PROTOCOL PathName []uint16 } func (p *FILEPATH_DEVICE_PATH) Write(w io.Writer) error { if err := binary.Write(w, binary.LittleEndian, &p.Header); err != nil { return err } if err := binary.Write(w, binary.LittleEndian, p.PathName); err != nil { return err } return nil } func Read_FILEPATH_DEVICE_PATH(r io.Reader) (out *FILEPATH_DEVICE_PATH, err error) { out = &FILEPATH_DEVICE_PATH{} if err := binary.Read(r, binary.LittleEndian, &out.Header); err != nil { return nil, err } out.PathName = make([]uint16, (int(out.Header.Length)-binary.Size(out.Header))/2) if err := binary.Read(r, binary.LittleEndian, &out.PathName); err != nil { return nil, ioerr.EOFIsUnexpected(err) } return out, nil } type MEDIA_FW_VOL_FILEPATH_DEVICE_PATH struct { Header EFI_DEVICE_PATH_PROTOCOL FvFileName EFI_GUID } type MEDIA_FW_VOL_DEVICE_PATH struct { Header EFI_DEVICE_PATH_PROTOCOL FvName EFI_GUID } type MEDIA_RELATIVE_OFFSET_RANGE_DEVICE_PATH struct { Header EFI_DEVICE_PATH_PROTOCOL Reserved uint32 StartingOffset uint64 EndingOffset uint64 } type UART_FLOW_CONTROL_DEVICE_PATH struct { Header EFI_DEVICE_PATH_PROTOCOL Guid EFI_GUID FlowControlMap uint32 } type SAS_DEVICE_PATH struct { Header EFI_DEVICE_PATH_PROTOCOL Guid EFI_GUID Reserved uint32 SasAddress uint64 Lun uint64 DeviceTopology uint16 RelativeTargetPort uint16 } ./github.com/canonical/go-efilib/internal/uefi/gpt.go0000664000000000000000000000333000000000000017613 0ustar00// Copyright 2021 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package uefi import ( "bytes" "encoding/binary" "errors" "hash/crc32" "io" "github.com/canonical/go-efilib/internal/ioerr" ) const EFI_PTAB_HEADER_ID uint64 = 0x5452415020494645 type EFI_PARTITION_ENTRY struct { PartitionTypeGUID EFI_GUID UniquePartitionGUID EFI_GUID StartingLBA EFI_LBA EndingLBA EFI_LBA Attributes uint64 PartitionName [36]uint16 } type EFI_PARTITION_TABLE_HEADER struct { Hdr EFI_TABLE_HEADER MyLBA EFI_LBA AlternateLBA EFI_LBA FirstUsableLBA EFI_LBA LastUsableLBA EFI_LBA DiskGUID EFI_GUID PartitionEntryLBA EFI_LBA NumberOfPartitionEntries uint32 SizeOfPartitionEntry uint32 PartitionEntryArrayCRC32 uint32 } func Read_EFI_PARTITION_TABLE_HEADER(r io.Reader) (out *EFI_PARTITION_TABLE_HEADER, crc uint32, err error) { var hdr EFI_TABLE_HEADER if err := binary.Read(r, binary.LittleEndian, &hdr); err != nil { return nil, 0, err } if hdr.HeaderSize < uint32(binary.Size(hdr)) { return nil, 0, errors.New("invalid header size") } origCrc := hdr.CRC hdr.CRC = 0 var b bytes.Buffer if err := binary.Write(&b, binary.LittleEndian, &hdr); err != nil { return nil, 0, err } if _, err := io.CopyN(&b, r, int64(hdr.HeaderSize-uint32(binary.Size(hdr)))); err != nil { return nil, 0, ioerr.EOFIsUnexpected(err) } crc = crc32.ChecksumIEEE(b.Bytes()) out = &EFI_PARTITION_TABLE_HEADER{} if err := binary.Read(&b, binary.LittleEndian, out); err != nil { return nil, 0, err } out.Hdr.CRC = origCrc return out, crc, nil } ./github.com/canonical/go-efilib/internal/uefi/ids.go0000664000000000000000000000734000000000000017605 0ustar00// Copyright 2021 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package uefi var ( EFI_HASH_ALGORITHM_SHA1_GUID = New_EFI_GUID(0x2ae9d80f, 0x3fb2, 0x4095, 0xb7b1, [...]uint8{0xe9, 0x31, 0x57, 0xb9, 0x46, 0xb6}) EFI_HASH_ALGORITHM_SHA256_GUID = New_EFI_GUID(0x51aa59de, 0xfdf2, 0x4ea3, 0xbc63, [...]uint8{0x87, 0x5f, 0xb7, 0x84, 0x2e, 0xe9}) EFI_HASH_ALGORITHM_SHA224_GUID = New_EFI_GUID(0x8df01a06, 0x9bd5, 0x4bf7, 0xb021, [...]uint8{0xdb, 0x4f, 0xd9, 0xcc, 0xf4, 0x5b}) EFI_HASH_ALGORITHM_SHA384_GUID = New_EFI_GUID(0xefa96432, 0xde33, 0x4dd2, 0xaee6, [...]uint8{0x32, 0x8c, 0x33, 0xdf, 0x77, 0x7a}) EFI_HASH_ALGORITHM_SHA512_GUID = New_EFI_GUID(0xcaa4381e, 0x750c, 0x4770, 0xb870, [...]uint8{0x7a, 0x23, 0xb4, 0xe4, 0x21, 0x30}) EFI_CERT_TYPE_RSA2048_SHA256_GUID = New_EFI_GUID(0xa7717414, 0xc616, 0x4977, 0x9420, [...]uint8{0x84, 0x47, 0x12, 0xa7, 0x35, 0xbf}) EFI_CERT_TYPE_PKCS7_GUID = New_EFI_GUID(0x4aafd29d, 0x68df, 0x49ee, 0x8aa9, [...]uint8{0x34, 0x7d, 0x37, 0x56, 0x65, 0xa7}) EFI_CERT_SHA1_GUID = New_EFI_GUID(0x826ca512, 0xcf10, 0x4ac9, 0xb187, [...]uint8{0xbe, 0x01, 0x49, 0x66, 0x31, 0xbd}) EFI_CERT_SHA256_GUID = New_EFI_GUID(0xc1c41626, 0x504c, 0x4092, 0xaca9, [...]uint8{0x41, 0xf9, 0x36, 0x93, 0x43, 0x28}) EFI_CERT_SHA224_GUID = New_EFI_GUID(0xb6e5233, 0xa65c, 0x44c9, 0x9407, [...]uint8{0xd9, 0xab, 0x83, 0xbf, 0xc8, 0xbd}) EFI_CERT_SHA384_GUID = New_EFI_GUID(0xff3e5307, 0x9fd0, 0x48c9, 0x85f1, [...]uint8{0x8a, 0xd5, 0x6c, 0x70, 0x1e, 0x01}) EFI_CERT_SHA512_GUID = New_EFI_GUID(0x093e0fae, 0xa6c4, 0x4f50, 0x9f1b, [...]uint8{0xd4, 0x1e, 0x2b, 0x89, 0xc1, 0x9a}) EFI_CERT_RSA2048_GUID = New_EFI_GUID(0x3c5766e8, 0x269c, 0x4e34, 0xaa14, [...]uint8{0xed, 0x77, 0x6e, 0x85, 0xb3, 0xb6}) EFI_CERT_RSA2048_SHA1_GUID = New_EFI_GUID(0x67f8444f, 0x8743, 0x48f1, 0xa328, [...]uint8{0x1e, 0xaa, 0xb8, 0x73, 0x60, 0x80}) EFI_CERT_RSA2048_SHA256_GUID = New_EFI_GUID(0xe2b36190, 0x879b, 0x4a3d, 0xad8d, [...]uint8{0xf2, 0xe7, 0xbb, 0xa3, 0x27, 0x84}) EFI_CERT_X509_GUID = New_EFI_GUID(0xa5c059a1, 0x94e4, 0x4aa7, 0x87b5, [...]uint8{0xab, 0x15, 0x5c, 0x2b, 0xf0, 0x72}) EFI_CERT_X509_SHA256_GUID = New_EFI_GUID(0x3bd2a492, 0x96c0, 0x4079, 0xb420, [...]uint8{0xfc, 0xf9, 0x8e, 0xf1, 0x03, 0xed}) EFI_CERT_X509_SHA384_GUID = New_EFI_GUID(0x7076876e, 0x80c2, 0x4ee6, 0xaad2, [...]uint8{0x28, 0xb3, 0x49, 0xa6, 0x86, 0x5b}) EFI_CERT_X509_SHA512_GUID = New_EFI_GUID(0x446dbf63, 0x2502, 0x4cda, 0xbcfa, [...]uint8{0x24, 0x65, 0xd2, 0xb0, 0xfe, 0x9d}) EFI_GLOBAL_VARIABLE = New_EFI_GUID(0x8be4df61, 0x93ca, 0x11d2, 0xaa0d, [...]uint8{0x00, 0xe0, 0x98, 0x03, 0x2b, 0x8c}) EFI_IMAGE_SECURITY_DATABASE_GUID = New_EFI_GUID(0xd719b2cb, 0x3d3a, 0x4596, 0xa3bc, [...]uint8{0xda, 0xd0, 0x0e, 0x67, 0x65, 0x6f}) EFI_PC_ANSI_GUID = New_EFI_GUID(0xe0c14753, 0xf9be, 0x11d2, 0x9a0c, [...]uint8{0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d}) EFI_VT_100_GUID = New_EFI_GUID(0xdfa66065, 0xb419, 0x11d3, 0x9a2d, [...]uint8{0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d}) EFI_VT_100_PLUS_GUID = New_EFI_GUID(0x7baec70b, 0x57e0, 0x4c76, 0x8e87, [...]uint8{0x2f, 0x9e, 0x28, 0x08, 0x83, 0x43}) EFI_VT_UTF8_GUID = New_EFI_GUID(0xad15a0d6, 0x8bec, 0x4acf, 0xa073, [...]uint8{0xd0, 0x1d, 0xe7, 0x7e, 0x2d, 0x88}) DEVICE_PATH_MESSAGING_UART_FLOW_CONTROL = New_EFI_GUID(0x37499a9d, 0x542f, 0x4c89, 0xa026, [...]uint8{0x35, 0xda, 0x14, 0x20, 0x94, 0xe4}) EFI_SAS_DEVICE_PATH_GUID = New_EFI_GUID(0xd487ddb4, 0x008b, 0x11d9, 0xafdc, [...]uint8{0x00, 0x10, 0x83, 0xff, 0xca, 0x4d}) EFI_DEBUGPORT_PROTOCOL_GUID = New_EFI_GUID(0xeba4e8d2, 0x3858, 0x41ec, 0xa281, [...]uint8{0x26, 0x47, 0xba, 0x96, 0x60, 0xd0}) ) ./github.com/canonical/go-efilib/internal/uefi/loadoption.go0000664000000000000000000000371400000000000021177 0ustar00// Copyright 2021 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package uefi import ( "encoding/binary" "io" "github.com/canonical/go-efilib/internal/ioerr" ) const ( LOAD_OPTION_ACTIVE = 0x00000001 LOAD_OPTION_FORCE_RECONNECT = 0x00000002 LOAD_OPTION_HIDDEN = 0x00000008 LOAD_OPTION_CATEGORY = 0x00001f00 LOAD_OPTION_CATEGORY_BOOT = 0x00000000 LOAD_OPTION_CATEGORY_APP = 0x00000100 ) type EFI_LOAD_OPTION struct { Attributes uint32 FilePathListLength uint16 Description []uint16 FilePathList []byte OptionalData []byte } func (o *EFI_LOAD_OPTION) Write(w io.Writer) error { if err := binary.Write(w, binary.LittleEndian, o.Attributes); err != nil { return err } if err := binary.Write(w, binary.LittleEndian, o.FilePathListLength); err != nil { return err } if err := binary.Write(w, binary.LittleEndian, o.Description); err != nil { return err } if _, err := w.Write(o.FilePathList); err != nil { return err } if _, err := w.Write(o.OptionalData); err != nil { return err } return nil } func Read_EFI_LOAD_OPTION(r io.Reader) (out *EFI_LOAD_OPTION, err error) { out = &EFI_LOAD_OPTION{} if err := binary.Read(r, binary.LittleEndian, &out.Attributes); err != nil { return nil, err } if err := binary.Read(r, binary.LittleEndian, &out.FilePathListLength); err != nil { return nil, ioerr.EOFIsUnexpected(err) } for i := 0; ; i++ { var c uint16 if err := binary.Read(r, binary.LittleEndian, &c); err != nil { return nil, ioerr.EOFIsUnexpected(err) } out.Description = append(out.Description, c) if c == 0 { break } } out.FilePathList = make([]byte, out.FilePathListLength) if _, err := io.ReadFull(r, out.FilePathList); err != nil { return nil, ioerr.EOFIsUnexpected(err) } optionalData, err := io.ReadAll(r) if err != nil { return nil, err } out.OptionalData = optionalData return out, nil } ./github.com/canonical/go-efilib/internal/uefi/net.go0000664000000000000000000000026000000000000017606 0ustar00// Copyright 2025 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package uefi const ( NET_IFTYPE_ETHERNET = 1 ) ./github.com/canonical/go-efilib/internal/uefi/time.go0000664000000000000000000000166400000000000017767 0ustar00// Copyright 2021 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package uefi import ( "time" ) type EFI_TIME struct { Year uint16 Month uint8 Day uint8 Hour uint8 Minute uint8 Second uint8 Pad1 uint8 Nanosecond uint32 Timezone int16 Daylight uint8 Pad2 uint8 } func (t *EFI_TIME) GoTime() time.Time { return time.Date(int(t.Year), time.Month(t.Month), int(t.Day), int(t.Hour), int(t.Minute), int(t.Second), int(t.Nanosecond), time.FixedZone("", -int(t.Timezone)*60)) } func New_EFI_TIME(t time.Time) *EFI_TIME { _, offset := t.Zone() return &EFI_TIME{ Year: uint16(t.Year()), Month: uint8(t.Month()), Day: uint8(t.Day()), Hour: uint8(t.Hour()), Minute: uint8(t.Minute()), Second: uint8(t.Second()), Nanosecond: uint32(t.Nanosecond()), Timezone: -int16(offset / 60)} } ./github.com/canonical/go-efilib/internal/uefi/vars.go0000664000000000000000000000117700000000000020003 0ustar00// Copyright 2021 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package uefi const ( EFI_VARIABLE_NON_VOLATILE = 1 << 0 EFI_VARIABLE_BOOTSERVICE_ACCESS = 1 << 1 EFI_VARIABLE_RUNTIME_ACCESS = 1 << 2 EFI_VARIABLE_HARDWARE_ERROR_RECORD = 1 << 3 EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS = 1 << 4 EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS = 1 << 5 EFI_VARIABLE_APPEND_WRITE = 1 << 6 EFI_VARIABLE_ENHANCED_AUTHENTICATED_ACCESS = 1 << 7 ) ./github.com/canonical/go-efilib/internal/uefi/wincert.go0000664000000000000000000001061000000000000020473 0ustar00// Copyright 2021 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package uefi import ( "encoding/binary" "fmt" "io" "math" "github.com/canonical/go-efilib/internal/ioerr" ) const ( WIN_CERT_TYPE_PKCS_SIGNED_DATA = 0x0002 WIN_CERT_TYPE_EFI_PKCS115 = 0x0ef0 WIN_CERT_TYPE_EFI_GUID = 0x0ef1 ) type WIN_CERTIFICATE struct { Length uint32 Revision uint16 CertificateType uint16 } func checkWIN_CERTIFICATE(cert *WIN_CERTIFICATE, expectedType uint16) error { if cert.Length < uint32(binary.Size(*cert)) { return fmt.Errorf("invalid WIN_CERTIFICATE.Length (%d) (too small)", cert.Length) } // Make sure the remaining bytes after hdr.Length won't overflow // an int on 32-bit platforms. It never can on 64-bit platforms // because int is int64 and we are dealing with uint32. On 32-bit // platforms, int is int32 and therefore the uint32 length can // overflow an int. if cert.Length-uint32(binary.Size(*cert)) > math.MaxInt32 { return fmt.Errorf("invalid WIN_CERTIFICATE.Length (%d) (too large)", cert.Length) } if cert.Revision != 0x0200 { return fmt.Errorf("unexpected WIN_CERTIFICATE.Revision (%#x)", cert.Revision) } if cert.CertificateType != expectedType { return fmt.Errorf("unexpected WIN_CERTIFICATE.CertificateType (%#x)", cert.CertificateType) } return nil } type WIN_CERTIFICATE_EFI_PKCS1_15 struct { Hdr WIN_CERTIFICATE HashAlgorithm EFI_GUID Signature [256]byte } func Read_WIN_CERTIFICATE_EFI_PKCS1_15(r io.Reader) (out *WIN_CERTIFICATE_EFI_PKCS1_15, err error) { out = new(WIN_CERTIFICATE_EFI_PKCS1_15) if err := binary.Read(r, binary.LittleEndian, &out.Hdr); err != nil { return nil, ioerr.PassRawEOF("cannot read WIN_CERTIFICATE_EFI_PKCS1_15.Hdr: %w", err) } if err := checkWIN_CERTIFICATE(&out.Hdr, WIN_CERT_TYPE_EFI_PKCS115); err != nil { return nil, fmt.Errorf("cannot check WIN_CERTIFICATE_EFI_PKCS1_15.Hdr: %w", err) } lr := &io.LimitedReader{ R: r, N: int64(out.Hdr.Length) - int64(binary.Size(out.Hdr)), } if _, err := io.ReadFull(lr, out.HashAlgorithm[:]); err != nil { return nil, ioerr.EOFIsUnexpected("cannot read WIN_CERTIFICATE_EFI_PKCS1_15.HashAlgorithm: %w", err) } if _, err := io.ReadFull(lr, out.Signature[:]); err != nil { return nil, ioerr.EOFIsUnexpected("cannot read WIN_CERTIFICATE_EFI_PKCS1_15.Signature: %w", err) } if lr.N > 0 { return nil, fmt.Errorf("invalid WIN_CERTIFICATE_PKCS1_15.Hdr.Length (%d) (too large)", out.Hdr.Length) } return out, nil } type WIN_CERTIFICATE_UEFI_GUID struct { Hdr WIN_CERTIFICATE CertType EFI_GUID CertData []byte } func Read_WIN_CERTIFICATE_UEFI_GUID(r io.Reader) (out *WIN_CERTIFICATE_UEFI_GUID, err error) { out = new(WIN_CERTIFICATE_UEFI_GUID) if err := binary.Read(r, binary.LittleEndian, &out.Hdr); err != nil { return nil, ioerr.PassRawEOF("cannot read WIN_CERTIFICATE_UEFI_GUID.Hdr: %w", err) } if err := checkWIN_CERTIFICATE(&out.Hdr, WIN_CERT_TYPE_EFI_GUID); err != nil { return nil, fmt.Errorf("cannot check WIN_CERTIFICATE_UEFI_GUID.Hdr: %w", err) } lr := &io.LimitedReader{ R: r, N: int64(out.Hdr.Length) - int64(binary.Size(out.Hdr)), } if _, err := io.ReadFull(lr, out.CertType[:]); err != nil { return nil, ioerr.EOFIsUnexpected("cannot read WIN_CERTIFICATE_UEFI_GUID.CertType: %w", err) } out.CertData = make([]byte, int(lr.N)) // The remaining bytes are the CertData if _, err := io.ReadFull(lr, out.CertData); err != nil { return nil, ioerr.EOFIsUnexpected("cannot read WIN_CERTIFICATE_UEFI_GUID.CertData: %w", err) } return out, nil } type WIN_CERTIFICATE_EFI_PKCS struct { Hdr WIN_CERTIFICATE CertData []byte } func Read_WIN_CERTIFICATE_EFI_PKCS(r io.Reader) (*WIN_CERTIFICATE_EFI_PKCS, error) { out := new(WIN_CERTIFICATE_EFI_PKCS) if err := binary.Read(r, binary.LittleEndian, &out.Hdr); err != nil { return nil, ioerr.PassRawEOF("cannot read WIN_CERTIFICATE_EFI_PKCS.Hdr: %w", err) } if err := checkWIN_CERTIFICATE(&out.Hdr, WIN_CERT_TYPE_PKCS_SIGNED_DATA); err != nil { return nil, fmt.Errorf("cannot check WIN_CERTIFICATE_UEFI_GUID.Hdr: %w", err) } lr := &io.LimitedReader{ R: r, N: int64(out.Hdr.Length) - int64(binary.Size(out.Hdr)), } out.CertData = make([]byte, int(lr.N)) if _, err := io.ReadFull(lr, out.CertData); err != nil { return nil, ioerr.EOFIsUnexpected("cannot read WIN_CERTIFICATE_EFI_PKCS.CertData: %w", err) } return out, nil } ./github.com/canonical/go-efilib/internal/unix/0000775000000000000000000000000000000000000016526 5ustar00./github.com/canonical/go-efilib/internal/unix/ioctl.go0000664000000000000000000000154200000000000020171 0ustar00// Copyright 2021 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package unix import ( "syscall" "unsafe" ) func IoctlGetUint(fd int, req uint) (uint, error) { var value uint _, _, err := syscall.Syscall(syscall.SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(unsafe.Pointer(&value))) if err != 0 { return 0, err } return value, nil } func IoctlGetUint64(fd int, req uint) (uint64, error) { var value uint64 _, _, err := syscall.Syscall(syscall.SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(unsafe.Pointer(&value))) if err != 0 { return 0, err } return value, nil } func IoctlSetPointerUint(fd int, req, value uint) error { v := value _, _, err := syscall.Syscall(syscall.SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(unsafe.Pointer(&v))) if err != 0 { return err } return nil } ./github.com/canonical/go-efilib/linux/0000775000000000000000000000000000000000000015066 5ustar00./github.com/canonical/go-efilib/linux/disk.go0000664000000000000000000000401300000000000016345 0ustar00// Copyright 2021 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package linux import ( "errors" "fmt" "math" "os" "syscall" "golang.org/x/sys/unix" efi "github.com/canonical/go-efilib" internal_unix "github.com/canonical/go-efilib/internal/unix" ) func getSectorSize(f *os.File) (int64, error) { fi, err := f.Stat() if err != nil { return 0, err } if fi.Mode().IsRegular() { return 512, nil } if fi.Mode()&os.ModeDevice == 0 { return 0, errors.New("not a regular file or device") } sz, err := unix.IoctlGetInt(int(f.Fd()), unix.BLKSSZGET) if err != nil { return 0, err } return int64(sz), nil } func getDeviceSize(f *os.File) (int64, error) { fi, err := f.Stat() if err != nil { return 0, err } if fi.Mode().IsRegular() { return fi.Size(), nil } if fi.Mode()&os.ModeDevice == 0 { return 0, errors.New("not a regular file or device") } sz, err := internal_unix.IoctlGetUint64(int(f.Fd()), unix.BLKGETSIZE64) switch { case err == syscall.ENOTTY: n, err := internal_unix.IoctlGetUint(int(f.Fd()), unix.BLKGETSIZE) if err != nil { return 0, err } if int64(n) > int64(math.MaxInt64>>9) { return 0, errors.New("overflow") } return int64(n << 9), nil case err != nil: return 0, err case sz > math.MaxInt64: return 0, errors.New("overflow") default: return int64(sz), nil } } // NewHardDriveDevicePathNodeFromDevice constructs a HardDriveDevicePathNode for the // specified partition on the device or file at the supplied path. func NewHardDriveDevicePathNodeFromDevice(dev string, part int) (*efi.HardDriveDevicePathNode, error) { f, err := osOpen(dev) if err != nil { return nil, err } defer f.Close() sz, err := getDeviceSize(f) if err != nil { return nil, fmt.Errorf("cannot determine device size: %w", err) } ssz, err := getSectorSize(f) if err != nil { return nil, fmt.Errorf("cannot determine logical sector size: %w", err) } return efi.NewHardDriveDevicePathNodeFromDevice(f, sz, ssz, part) } ./github.com/canonical/go-efilib/linux/dp_acpi.go0000664000000000000000000000530000000000000017012 0ustar00// Copyright 2021 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package linux import ( "encoding/binary" "encoding/hex" "errors" "fmt" "os" "path/filepath" "regexp" "strconv" "strings" efi "github.com/canonical/go-efilib" ) // acpiIdRE matches a ACPI or PNP ID, capturing the vendor and product. var acpiIdRE = regexp.MustCompile(`^([[:upper:][:digit:]]{3,4})([[:xdigit:]]{4})$`) // acpiModaliasRE matches a modalias for an ACPI node, capturing the CID. var acpiModaliasRE = regexp.MustCompile(`^acpi:[[:alnum:]]+:([[:alnum:]]*)`) func maybeUseSimpleACPIDevicePathNode(node *efi.ACPIExtendedDevicePathNode) efi.DevicePathNode { if node.HIDStr != "" || node.UIDStr != "" || node.CIDStr != "" { return node } if node.CID != 0 && node.CID != node.HID { return node } return &efi.ACPIDevicePathNode{HID: node.HID, UID: node.UID} } func decodeACPIOrPNPId(str string) (efi.EISAID, string) { m := acpiIdRE.FindStringSubmatch(str) if len(m) == 0 { return 0, str } vendor := m[1] p, _ := hex.DecodeString(m[2]) product := binary.BigEndian.Uint16(p) if len(vendor) != 3 { return 0, fmt.Sprintf("%s%04x", vendor, product) } id, _ := efi.NewEISAID(vendor, product) return id, "" } func newACPIExtendedDevicePathNode(path string) (*efi.ACPIExtendedDevicePathNode, error) { node := new(efi.ACPIExtendedDevicePathNode) hidBytes, err := os.ReadFile(filepath.Join(path, "hid")) if err != nil { return nil, err } hid, hidStr := decodeACPIOrPNPId(strings.TrimSpace(string(hidBytes))) node.HID = hid node.HIDStr = hidStr modalias, err := os.ReadFile(filepath.Join(path, "modalias")) switch { case os.IsNotExist(err): case err != nil: return nil, err default: m := acpiModaliasRE.FindSubmatch(modalias) if len(m) == 0 { return nil, errors.New("invalid modalias") } if len(m[1]) > 0 { cid, cidStr := decodeACPIOrPNPId(string(m[1])) node.CID = cid node.CIDStr = cidStr } } uidBytes, err := os.ReadFile(filepath.Join(path, "uid")) switch { case os.IsNotExist(err): case err != nil: return nil, err default: uidStr := strings.TrimSpace(string(uidBytes)) uid, err := strconv.ParseUint(uidStr, 10, 32) if err != nil { node.UIDStr = uidStr } else { node.UID = uint32(uid) } } return node, nil } func handleACPIDevicePathNode(state *devicePathBuilderState) error { state.AdvanceSysfsPath(1) subsystem, err := filepath.EvalSymlinks(filepath.Join(state.SysfsPath(), "subsystem")) switch { case os.IsNotExist(err): return errSkipDevicePathNodeHandler case err != nil: return err } if subsystem != filepath.Join(sysfsPath, "bus", "acpi") { return errSkipDevicePathNodeHandler } return nil } ./github.com/canonical/go-efilib/linux/dp_ata.go0000664000000000000000000000307200000000000016647 0ustar00// Copyright 2021 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package linux import ( "errors" "fmt" "os" "path/filepath" "regexp" "strconv" "strings" ) // ataRE matches an ATA path component, capturing the ATA print ID. var ataRE = regexp.MustCompile(`^ata([[:digit:]]+)$`) type ataParams struct { printId uint32 port uint32 *scsiParams } func handleATAPath(path string) (*ataParams, error) { components := strings.Split(path, string(os.PathSeparator)) if len(components) < 6 { return nil, errors.New("invalid path: insufficient components") } ata := components[len(components)-6] m := ataRE.FindStringSubmatch(ata) if len(m) == 0 { return nil, fmt.Errorf("invalid path component: %s", ata) } scsiParams, err := handleSCSIPath(path) if err != nil { return nil, err } printId, err := strconv.ParseUint(m[1], 10, 32) if err != nil { return nil, fmt.Errorf("invalid print ID: %w", err) } // Obtain the ATA port number local to this ATA controller. The kernel // creates one ata%d device per port (see drivers/ata/libata-core.c:ata_host_register). portBytes, err := os.ReadFile(filepath.Join(path, "../../../../..", "ata_port", ata, "port_no")) if err != nil { return nil, fmt.Errorf("cannot obtain port ID: %w", err) } port, err := strconv.ParseUint(strings.TrimSpace(string(portBytes)), 10, 16) if err != nil { return nil, fmt.Errorf("invalid port ID: %w", err) } return &ataParams{ printId: uint32(printId), port: uint32(port), scsiParams: scsiParams}, nil } ./github.com/canonical/go-efilib/linux/dp_hv.go0000664000000000000000000000245200000000000016520 0ustar00// Copyright 2022 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package linux import ( "os" "path/filepath" efi "github.com/canonical/go-efilib" ) var ( hvVendorGuid = efi.MakeGUID(0x9b17e5a2, 0x0891, 0x42dd, 0xb653, [...]uint8{0x80, 0xb5, 0xc2, 0x28, 0x09, 0xba}) hvSCSIGuid = efi.MakeGUID(0xba6163d9, 0x04a1, 0x4d29, 0xb605, [...]uint8{0x72, 0xe2, 0xff, 0xb1, 0xdc, 0x7f}) ) func handleHVDevicePathNode(state *devicePathBuilderState) error { component := state.PeekUnhandledSysfsComponents(1) deviceId, err := efi.DecodeGUIDString(component) if err != nil { return err } state.AdvanceSysfsPath(1) path := state.SysfsPath() classIdStr, err := os.ReadFile(filepath.Join(path, "class_id")) if err != nil { return err } classId, err := efi.DecodeGUIDString(string(classIdStr)) if err != nil { return err } switch classId { case hvSCSIGuid: state.Interface = interfaceTypeSCSI default: return errUnsupportedDevice("unhandled device class: " + classId.String()) } data := make([]byte, len(deviceId)+len(classId)) copy(data, classId[:]) copy(data[len(classId):], deviceId[:]) state.Path = append(state.Path, &efi.VendorDevicePathNode{ Type: efi.HardwareDevicePath, GUID: hvVendorGuid, Data: data}) return nil } ./github.com/canonical/go-efilib/linux/dp_ide.go0000664000000000000000000000243500000000000016645 0ustar00// Copyright 2021 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package linux import ( "errors" "fmt" "math" efi "github.com/canonical/go-efilib" ) func handleIDEDevicePathNode(state *devicePathBuilderState) error { if state.SysfsComponentsRemaining() < 6 { return errors.New("invalid path: insufficient components") } state.AdvanceSysfsPath(6) params, err := handleATAPath(state.SysfsPath()) if err != nil { return err } // PATA has a maximum of 2 ports. if params.port < 1 || params.port > 2 { return fmt.Errorf("invalid port: %d", params.port) } // Each PATA device is represented in the SCSI layer by setting the // target to the drive number, and the LUN as the LUN (see // drivers/ata/libata-scsi.c:ata_scsi_scan_host). // The channel is always 0 for PATA devices (no port multiplier). if params.channel != 0 { return errors.New("invalid SCSI channel") } if params.target > 1 { return errors.New("invalid drive") } if params.lun > math.MaxUint16 { return errors.New("invalid LUN") } state.Path = append(state.Path, &efi.ATAPIDevicePathNode{ Controller: efi.ATAPIControllerRole(params.port - 1), Drive: efi.ATAPIDriveRole(params.target), LUN: uint16(params.lun)}) return nil } ./github.com/canonical/go-efilib/linux/dp_nvme.go0000664000000000000000000000321500000000000017046 0ustar00// Copyright 2021 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package linux import ( "errors" "fmt" "os" "path/filepath" "regexp" "strconv" efi "github.com/canonical/go-efilib" ) // nvmeNSRe matches "nvme/nvme/nvmen", capturing ns_id var nvmeNSRe = regexp.MustCompile(`^nvme\/nvme[[:digit:]]+\/nvme[[:digit:]]+n([[:digit:]]+)$`) func handleNVMEDevicePathNode(state *devicePathBuilderState) error { if state.SysfsComponentsRemaining() < 3 { return errors.New("invalid path: not enough components") } components := state.PeekUnhandledSysfsComponents(3) m := nvmeNSRe.FindStringSubmatch(components) if len(m) == 0 { return errors.New("invalid path") } state.AdvanceSysfsPath(3) nsid, err := strconv.ParseUint(m[1], 10, 32) if err != nil { return fmt.Errorf("cannot parse nsid: %w", err) } var euid efi.EUI64 euidBuf, err := os.ReadFile(filepath.Join(state.SysfsPath(), "eui")) if os.IsNotExist(err) { euidBuf, err = os.ReadFile(filepath.Join(state.SysfsPath(), "device", "eui")) } switch { case os.IsNotExist(err): // Nothing to do case err != nil: return fmt.Errorf("cannot determine euid: %w", err) default: n, err := fmt.Sscanf(string(euidBuf), "%02x %02x %02x %02x %02x %02x %02x %02x", &euid[0], &euid[1], &euid[2], &euid[3], &euid[4], &euid[5], &euid[6], &euid[7]) if err != nil { return fmt.Errorf("cannot parse euid: %w", err) } if n != 8 { return errors.New("invalid euid") } } state.Path = append(state.Path, &efi.NVMENamespaceDevicePathNode{ NamespaceID: uint32(nsid), NamespaceUUID: euid}) return nil } ./github.com/canonical/go-efilib/linux/dp_pci.go0000664000000000000000000000460300000000000016656 0ustar00// Copyright 2021 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package linux import ( "bytes" "errors" "fmt" "os" "path/filepath" "regexp" "strconv" efi "github.com/canonical/go-efilib" ) var classRE = regexp.MustCompile(`^0x([[:xdigit:]]+)$`) // pciRE matches "nnnn:bb:dd:f" where "nnnn" is the domain, "bb" is the bus number, // "dd" is the device number and "f" is the function. It captures the device and // function. var pciRE = regexp.MustCompile(`^[[:xdigit:]]{4}:[[:xdigit:]]{2}:([[:xdigit:]]{2})\.([[:digit:]]{1})$`) func handlePCIDevicePathNode(state *devicePathBuilderState) error { component := state.PeekUnhandledSysfsComponents(1) m := pciRE.FindStringSubmatch(component) if len(m) == 0 { return fmt.Errorf("invalid component: %s", component) } devNum, _ := strconv.ParseUint(m[1], 16, 8) fun, _ := strconv.ParseUint(m[2], 10, 8) state.AdvanceSysfsPath(1) classBytes, err := os.ReadFile(filepath.Join(state.SysfsPath(), "class")) if err != nil { return fmt.Errorf("cannot read device class: %w", err) } var class []byte n, err := fmt.Sscanf(string(classBytes), "0x%x", &class) if err != nil { return fmt.Errorf("cannot decode device class: %w", err) } if n != 1 { return errors.New("invalid device class") } vendorBytes, err := os.ReadFile(filepath.Join(state.SysfsPath(), "vendor")) if err != nil { return fmt.Errorf("cannot read device vendor: %w", err) } var vendor uint16 n, err = fmt.Sscanf(string(vendorBytes), "0x%04x", &vendor) if err != nil { return fmt.Errorf("cannot decode device vendor: %w", err) } if n != 1 { return errors.New("invalid device vendor") } switch { case vendor == 0x1af4: state.Interface = interfaceTypeVirtio case bytes.HasPrefix(class, []byte{0x01, 0x00}): state.Interface = interfaceTypeSCSI case bytes.HasPrefix(class, []byte{0x01, 0x01}): state.Interface = interfaceTypeIDE case bytes.HasPrefix(class, []byte{0x01, 0x06}): state.Interface = interfaceTypeSATA case bytes.HasPrefix(class, []byte{0x01, 0x08}): state.Interface = interfaceTypeNVME case bytes.HasPrefix(class, []byte{0x06, 0x04}): state.Interface = interfaceTypePCI default: return errUnsupportedDevice("unhandled device class: " + string(classBytes)) } state.Path = append(state.Path, &efi.PCIDevicePathNode{ Function: uint8(fun), Device: uint8(devNum)}) return nil } ./github.com/canonical/go-efilib/linux/dp_pci_root.go0000664000000000000000000000220000000000000017710 0ustar00// Copyright 2021 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package linux import ( "fmt" "path/filepath" "regexp" ) // pcirootRE matches a pcixxxx.xx path component. var pcirootRE = regexp.MustCompile(`^pci[[:xdigit:]]{4}:[[:xdigit:]]{2}$`) func handlePCIRootDevicePathNode(state *devicePathBuilderState) error { component := state.PeekUnhandledSysfsComponents(1) if !pcirootRE.MatchString(component) { return errSkipDevicePathNodeHandler } state.AdvanceSysfsPath(1) node, err := newACPIExtendedDevicePathNode(filepath.Join(state.SysfsPath(), "firmware_node")) if err != nil { return err } if node.HID.Vendor() != "PNP" || (node.HID.Product() != 0x0a03 && node.HID.Product() != 0x0a08) { return fmt.Errorf("unexpected hid: %v", node.HID) } node.HID = 0x0a0341d0 if node.CID != 0 && (node.CID.Vendor() != "PNP" || (node.CID.Product() != 0x0a03 && node.CID.Product() != 0x0a08)) { return fmt.Errorf("unexpected cid: %v", node.CID) } state.Interface = interfaceTypePCI state.Path = append(state.Path, maybeUseSimpleACPIDevicePathNode(node)) return nil } ./github.com/canonical/go-efilib/linux/dp_sata.go0000664000000000000000000000401000000000000017023 0ustar00// Copyright 2021 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package linux import ( "errors" "fmt" "os" "path/filepath" efi "github.com/canonical/go-efilib" ) func handleSATADevicePathNode(state *devicePathBuilderState) error { if state.SysfsComponentsRemaining() < 6 { return errors.New("invalid path: insufficient components") } state.AdvanceSysfsPath(6) params, err := handleATAPath(state.SysfsPath()) if err != nil { return err } // Each SATA device is represented in the SCSI layer by setting the // channel to the port multiplier port number and the LUN as the LUN (see // drivers/ata/libata-scsi.c:ata_scsi_scan_host). pmp := params.channel if pmp > 0x7fff { return errors.New("invalid PMP") } // The target is always zero for SATA devices, as each port only has // a single device. if params.target != 0 { return errors.New("invalid SCSI target") } // We need to determine if the device is connected via a port // multiplier because we have to set the PMP address to 0xffff // if it isn't. Unfortunately, it is zero indexed so checking // that it is zero isn't sufficient. // // The kernel will expose a single host link%d device if there // is no port multiplier, or one of more PMP link%d.%d devices // if there is a port multiplier attached (see // drivers/ata/libata-pmp.c:sata_pmp_init_links and // drivers/ata/libata-transport.c:ata_tlink_add). _, err = os.Stat(filepath.Join(state.SysfsPath(), "../../../../..", fmt.Sprintf("link%d.%d", params.printId, pmp))) switch { case os.IsNotExist(err): // No port multiplier is connected. pmp = 0xffff case err != nil: return err default: // A port multiplier is connected. } state.Path = append(state.Path, &efi.SATADevicePathNode{ // The kernel provides a one-indexed number and the firmware is zero-indexed. HBAPortNumber: uint16(params.port) - 1, PortMultiplierPortNumber: uint16(pmp), LUN: uint16(params.lun)}) return nil } ./github.com/canonical/go-efilib/linux/dp_scsi.go0000664000000000000000000000406000000000000017041 0ustar00// Copyright 2022 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package linux import ( "errors" "fmt" "math" "os" "path/filepath" "regexp" "strconv" "strings" efi "github.com/canonical/go-efilib" ) // scsiRE matches a SCSI path, capturing the channel, target and LUN. var scsiRE = regexp.MustCompile(`^host[[:digit:]]+\/target[[:digit:]]+\:[[:digit:]]+\:[[:digit:]]+\/[[:digit:]]+\:([[:digit:]]+)\:([[:digit:]]+)\:([[:digit:]]+)\/block\/s[dr][[:alpha:]]$`) type scsiParams struct { channel uint32 target uint32 lun uint64 } func handleSCSIPath(path string) (*scsiParams, error) { components := strings.Split(path, string(os.PathSeparator)) if len(components) < 5 { return nil, errors.New("invalid path: insufficient components") } path = filepath.Join(components[len(components)-5:]...) m := scsiRE.FindStringSubmatch(path) if len(m) == 0 { return nil, fmt.Errorf("invalid path components: %s", path) } channel, err := strconv.ParseUint(m[1], 10, 32) if err != nil { return nil, fmt.Errorf("invalid channel: %w", err) } target, err := strconv.ParseUint(m[2], 10, 32) if err != nil { return nil, fmt.Errorf("invalid target: %w", err) } lun, err := strconv.ParseUint(m[3], 10, 64) if err != nil { return nil, fmt.Errorf("invalid lun: %w", err) } return &scsiParams{ channel: uint32(channel), target: uint32(target), lun: lun}, nil } func handleSCSIDevicePathNode(state *devicePathBuilderState) error { if state.SysfsComponentsRemaining() < 5 { return errors.New("invalid path: insufficient components") } state.AdvanceSysfsPath(5) params, err := handleSCSIPath(state.SysfsPath()) if err != nil { return err } if params.channel != 0 { return errors.New("invalid channel") } if params.target > math.MaxUint16 { return errors.New("invalid target") } if params.lun > math.MaxUint16 { return errors.New("invalid LUN") } state.Path = append(state.Path, &efi.SCSIDevicePathNode{ PUN: uint16(params.target), LUN: uint16(params.lun)}) return nil } ./github.com/canonical/go-efilib/linux/dp_virtio.go0000664000000000000000000000247000000000000017417 0ustar00// Copyright 2021 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package linux import ( "errors" "fmt" "os" "path/filepath" "regexp" "strings" ) const ( virtioBlockDevice uint32 = 2 virtioSCSIHost uint32 = 8 ) var ( blkRE = regexp.MustCompile(`^block\/vd[[:alpha:]]$`) virtioRE = regexp.MustCompile(`^virtio[[:digit:]]`) ) func handleVirtioDevicePathNode(state *devicePathBuilderState) error { if !virtioRE.MatchString(state.PeekUnhandledSysfsComponents(1)) { return errors.New("invalid path") } state.AdvanceSysfsPath(1) data, err := os.ReadFile(filepath.Join(state.SysfsPath(), "modalias")) if err != nil { return err } var device uint32 var vendor uint32 n, err := fmt.Sscanf(strings.TrimSpace(string(data)), "virtio:d%08xv%08x", &device, &vendor) if err != nil { return fmt.Errorf("cannot scan modalias: %w", err) } if n != 2 { return errors.New("invalid modalias format") } switch device { case virtioBlockDevice: if !blkRE.MatchString(state.PeekUnhandledSysfsComponents(2)) { return errors.New("invalid path for block device") } state.AdvanceSysfsPath(2) case virtioSCSIHost: state.Interface = interfaceTypeSCSI default: return fmt.Errorf("unrecognized virtio device type %#08x", device) } return nil } ./github.com/canonical/go-efilib/linux/dp_virtual.go0000664000000000000000000000057400000000000017574 0ustar00// Copyright 2022 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package linux func handleVirtualDevicePathNode(state *devicePathBuilderState) error { if state.PeekUnhandledSysfsComponents(1) == "virtual" { return errUnsupportedDevice("virtual devices are not supported") } return errSkipDevicePathNodeHandler } ./github.com/canonical/go-efilib/linux/dp_vmbus_root.go0000664000000000000000000000231700000000000020302 0ustar00// Copyright 2022 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package linux import ( "fmt" "regexp" ) // vmbusrootRE matches a VMBUS:XX component. var vmbusrootRE = regexp.MustCompile(`^VMBUS:[[:xdigit:]]{2}$`) func handleVMBusRootDevicePathNode(state *devicePathBuilderState) error { if !vmbusrootRE.MatchString(state.PeekUnhandledSysfsComponents(1)) { return errSkipDevicePathNodeHandler } state.AdvanceSysfsPath(1) node, err := newACPIExtendedDevicePathNode(state.SysfsPath()) if err != nil { return err } if node.HID != 0 || node.CID != 0 || node.HIDStr != "VMBUS" || node.CIDStr != "" { return fmt.Errorf("unexpected node properties: %v", node) } // The hardware ID exposed by the kernel seems to be capitalized, but the // one exposed from the firmware on an instance I've tested on isn't. Fix // up here - I'm not sure if this is right (is it always "VMBus"?), but the // device path does need to be an exact match for lookups because the firmware // essentially just does a memcmp. node.HIDStr = "VMBus" state.Interface = interfaceTypeVMBus state.Path = append(state.Path, maybeUseSimpleACPIDevicePathNode(node)) return nil } ./github.com/canonical/go-efilib/linux/filepath.go0000664000000000000000000003022100000000000017207 0ustar00// Copyright 2021 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package linux import ( "bufio" "errors" "fmt" "os" "path/filepath" "strconv" "strings" "golang.org/x/sys/unix" efi "github.com/canonical/go-efilib" ) func init() { registerDevicePathNodeHandler("pci-root", handlePCIRootDevicePathNode) registerDevicePathNodeHandler("vmbus-root", handleVMBusRootDevicePathNode) registerDevicePathNodeHandler("virtual", handleVirtualDevicePathNode) registerDevicePathNodeHandler("acpi", handleACPIDevicePathNode) registerDevicePathNodeHandler("pci", handlePCIDevicePathNode, interfaceTypePCI) registerDevicePathNodeHandler("scsi", handleSCSIDevicePathNode, interfaceTypeSCSI) registerDevicePathNodeHandler("ide", handleIDEDevicePathNode, interfaceTypeIDE) registerDevicePathNodeHandler("sata", handleSATADevicePathNode, interfaceTypeSATA) registerDevicePathNodeHandler("nvme", handleNVMEDevicePathNode, interfaceTypeNVME) registerDevicePathNodeHandler("hv", handleHVDevicePathNode, interfaceTypeVMBus) registerDevicePathNodeHandler("virtio", handleVirtioDevicePathNode, interfaceTypeVirtio) } // FilePathToDevicePathMode specifies the mode for FilePathToDevicePath type FilePathToDevicePathMode int const ( // FullPath indicates that only a full device path should be created. FullPath FilePathToDevicePathMode = iota // ShortFormPathHD indicates that a short-form device path beginning // with a HD() node should be created. ShortFormPathHD // ShortFormPathFile indicates that a short-form device path consisting // of only the file path relative to the device should be created. ShortFormPathFile ) // ErrNoDevicePath is returned from FilePathToDevicePath if the device in // which a file is stored cannot be mapped to a device path with the // specified mode. type ErrNoDevicePath string func (e ErrNoDevicePath) Error() string { return "cannot map file path to a UEFI device path: " + string(e) } type interfaceType int const ( interfaceTypeUnknown interfaceType = iota interfaceTypePCI interfaceTypeUSB interfaceTypeSCSI interfaceTypeIDE interfaceTypeSATA interfaceTypeNVME interfaceTypeVMBus interfaceTypeVirtio ) var ( // errSkipDevicePathNodeHandler is returned from a handler when it // wants to defer handling to another handler. errSkipDevicePathNodeHandler = errors.New("") ) // errUnsupportedDevice is returned from a handler when it cannot // determine the interface. type errUnsupportedDevice string func (e errUnsupportedDevice) Error() string { return "unsupported device: " + string(e) } type devicePathNodeHandler func(*devicePathBuilderState) error type registeredDpHandler struct { name string fn devicePathNodeHandler } var devicePathNodeHandlers = make(map[interfaceType][]registeredDpHandler) func registerDevicePathNodeHandler(name string, fn devicePathNodeHandler, interfaces ...interfaceType) { if len(interfaces) == 0 { interfaces = []interfaceType{interfaceTypeUnknown} } for _, i := range interfaces { devicePathNodeHandlers[i] = append(devicePathNodeHandlers[i], registeredDpHandler{name, fn}) } } type devicePathBuilderState struct { Interface interfaceType Path efi.DevicePath processed []string remaining []string } func (s *devicePathBuilderState) SysfsPath() string { return filepath.Join(append([]string{sysfsPath, "devices"}, s.processed...)...) } func (s *devicePathBuilderState) SysfsComponentsRemaining() int { return len(s.remaining) } func (s *devicePathBuilderState) PeekUnhandledSysfsComponents(n int) string { if n < 0 { n = len(s.remaining) } if n > len(s.remaining) { n = len(s.remaining) } return filepath.Join(s.remaining[:n]...) } func (s *devicePathBuilderState) AdvanceSysfsPath(n int) { if n < 0 { n = len(s.remaining) } if n > len(s.remaining) { n = len(s.remaining) } s.processed = append(s.processed, s.remaining[:n]...) s.remaining = s.remaining[n:] } type devicePathBuilder struct { devicePathBuilderState } func (s *devicePathBuilder) done() bool { return len(s.remaining) == 0 } func (b *devicePathBuilder) ProcessNextComponent() error { nProcessed := len(b.processed) remaining := b.remaining iface := b.Interface handlers := devicePathNodeHandlers[b.Interface] if len(handlers) == 0 { // There should always be at least one handler registered for an interface. panic(fmt.Sprintf("no handlers registered for interface type %v", b.Interface)) } for _, handler := range handlers { err := handler.fn(&b.devicePathBuilderState) if err != nil { // Roll back changes b.processed = b.processed[:nProcessed] b.remaining = remaining b.Interface = iface } if err == errSkipDevicePathNodeHandler { // Try the next handler. continue } if err != nil { return fmt.Errorf("[handler %s]: %w", handler.name, err) } if iface != interfaceTypeUnknown && b.Interface == interfaceTypeUnknown { // The handler set the interface type back to unknown. Turn this // in to a errUnsupportedDevice error. return errUnsupportedDevice("[handler " + handler.name + "]: unrecognized interface") } return nil } // If we get here, then all handlers returned errSkipDevicePathNodeHandler. if b.Interface != interfaceTypeUnknown { // If the interface has already been determined, require at least one // handler to handle this node or return an error. panic(fmt.Sprintf("all handlers skipped handling interface type %v", b.Interface)) } return errUnsupportedDevice("unhandled root node") } func newDevicePathBuilder(dev *dev) (*devicePathBuilder, error) { path, err := filepath.Rel(filepath.Join(sysfsPath, "devices"), dev.sysfsPath) if err != nil { return nil, err } return &devicePathBuilder{ devicePathBuilderState: devicePathBuilderState{ remaining: strings.Split(path, string(os.PathSeparator))}}, nil } type mountPoint struct { dev uint64 root string mountDir string mountSource string } func scanBlockDeviceMounts() (mounts []*mountPoint, err error) { f, err := os.Open(mountsPath) if err != nil { return nil, err } defer f.Close() scanner := bufio.NewScanner(f) for scanner.Scan() { fields := strings.Fields(scanner.Text()) if len(fields) < 10 || len(fields) > 11 { return nil, errors.New("invalid mount info: incorrect number of fields") } devStr := strings.Split(fields[2], ":") if len(devStr) != 2 { return nil, errors.New("invalid mount info: invalid device number") } devMajor, err := strconv.ParseUint(devStr[0], 10, 32) if err != nil { return nil, fmt.Errorf("invalid mount info: invalid device number: %w", err) } devMinor, err := strconv.ParseUint(devStr[1], 10, 32) if err != nil { return nil, fmt.Errorf("invalid mount info: invalid device number: %w", err) } var mountSource string if len(fields) == 10 { mountSource = fields[8] } else { mountSource = fields[9] } if !filepath.IsAbs(mountSource) { continue } mounts = append(mounts, &mountPoint{ dev: unix.Mkdev(uint32(devMajor), uint32(devMinor)), root: fields[3], mountDir: fields[4], mountSource: mountSource}) } if scanner.Err() != nil { return nil, fmt.Errorf("cannot parse mount info: %w", err) } return mounts, nil } func getFileMountPoint(path string) (*mountPoint, error) { var st unix.Stat_t if err := unixStat(path, &st); err != nil { return nil, fmt.Errorf("cannot stat %s: %w", path, err) } mounts, err := scanBlockDeviceMounts() if err != nil { return nil, fmt.Errorf("cannot obtain list of block device mounts: %w", err) } var candidate *mountPoint for _, mount := range mounts { if mount.dev != st.Dev { continue } rel, err := filepath.Rel(mount.mountDir, path) if err != nil || strings.HasPrefix(rel, "..") { continue } if candidate == nil { candidate = mount } if len(mount.mountDir) > len(candidate.mountDir) { candidate = mount } } if candidate == nil { return nil, errors.New("not found") } return candidate, nil } type dev struct { sysfsPath string devPath string part int } type filePath struct { dev path string } func newFilePath(path string) (*filePath, error) { path, err := filepathEvalSymlinks(path) if err != nil { return nil, fmt.Errorf("cannot evaluate symbolic links: %w", err) } mount, err := getFileMountPoint(path) if err != nil { return nil, fmt.Errorf("cannot obtain mount information for path: %w", err) } rel, err := filepath.Rel(mount.mountDir, path) if err != nil { return nil, err } out := &filePath{path: filepath.Join(mount.root, rel)} childDev, err := filepath.EvalSymlinks(filepath.Join(sysfsPath, "dev/block", fmt.Sprintf("%d:%d", unix.Major(mount.dev), unix.Minor(mount.dev)))) if err != nil { return nil, err } parentDev := filepath.Dir(childDev) parentSubsystem, err := filepath.EvalSymlinks(filepath.Join(parentDev, "subsystem")) switch { case os.IsNotExist(err): // No subsystem link, could be the block/ directory case err != nil: return nil, err } if parentSubsystem != filepath.Join(sysfsPath, "class", "block") { // Parent device is not a block device out.dev.sysfsPath = childDev out.dev.devPath = filepath.Join("/dev", filepath.Base(childDev)) } else { // Parent device is a block device, so this is a partitioned // device. out.dev.sysfsPath = parentDev out.dev.devPath = filepath.Join("/dev", filepath.Base(parentDev)) b, err := os.ReadFile(filepath.Join(childDev, "partition")) if err != nil { return nil, fmt.Errorf("cannot obtain partition number for %d: %w", mount.dev, err) } part, err := strconv.Atoi(strings.TrimSpace(string(b))) if err != nil { return nil, fmt.Errorf("cannot determine partition number for %d: %w", mount.dev, err) } out.dev.part = part } return out, nil } // FilePathToDevicePath creates an EFI device path from the supplied filepath. // // If mode is FullPath, this will attempt to create a full device path which // requires the use of sysfs. If the device in which the file is stored cannot be // mapped to a device path, a ErrNoDevicePath error is returned. This could be // because the device is not recognized by this package, or because the device // genuinely cannot be mapped to a device path (eg, it is a device-mapper or loop // device). In this case, one of the ShortForm modes can be used. // // If mode is ShortFormPathHD, this will attempt to create a short-form device // path beginning with a HD() component. If the file is stored inside an // unpartitioned device, a ErrNoDevicePath error will be returned. In this case, // ShortFormPathFile can be used. // // When mode is ShortFormPathHD or FullPath and the file is stored inside a // partitoned device, read access is required on the underlying block device // in order to decode the partition table. // // If mode is ShortFormPathFile, this will attempt to create a short-form device // path consisting only of the file path relative to the device. // // In all modes, read access to the file's directory is required. func FilePathToDevicePath(path string, mode FilePathToDevicePathMode) (out efi.DevicePath, err error) { fp, err := newFilePath(path) if err != nil { return nil, err } if mode == ShortFormPathHD && fp.part == 0 { return nil, ErrNoDevicePath("file is not inside partitioned media - use linux.ShortFormPathFile") } builder, err := newDevicePathBuilder(&fp.dev) if err != nil { return nil, err } if mode == FullPath { for !builder.done() { var e errUnsupportedDevice err := builder.ProcessNextComponent() switch { case errors.As(err, &e): return nil, ErrNoDevicePath("encountered an error when handling components " + builder.PeekUnhandledSysfsComponents(-1) + " from device path " + builder.SysfsPath() + ": " + err.Error()) case err != nil: return nil, fmt.Errorf("cannot process components %s from device path %s: %w", builder.PeekUnhandledSysfsComponents(-1), builder.SysfsPath(), err) } } } out = builder.Path if mode != ShortFormPathFile && fp.part > 0 { node, err := NewHardDriveDevicePathNodeFromDevice(fp.devPath, fp.part) if err != nil { return nil, fmt.Errorf("cannot construct hard drive device path node: %w", err) } out = append(out, node) } out = append(out, efi.NewFilePathDevicePathNode(fp.path)) return out, err } ./github.com/canonical/go-efilib/linux/gpt.go0000664000000000000000000000320000000000000016202 0ustar00// Copyright 2022 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package linux import ( "fmt" "os" efi "github.com/canonical/go-efilib" ) // ReadPartitionTable reads a complete GUID partition table from the supplied // device path. // // This function expects the device to have a valid protective MBR. // // If role is efi.PrimaryPartitionTable, this will read the primary partition // table that is located immediately after the protective MBR. If role is // efi.BackupPartitionTable, this will read the backup partition table that is // located at the end of the device. // // If checkCrc is true and either CRC check fails for the requested table, an // error will be returned. Setting checkCrc to false disables the CRC checks. // // Note that whilst this function checks the integrity of the header and // partition table entries, it does not check the contents of the partition // table entries. // // If role is efi.BackupPartitionTable and the backup table is not located at // the end of the device, this will return efi.ErrInvalidBackupPartitionTableLocation // along with the valid table. func ReadPartitionTable(path string, role efi.PartitionTableRole, checkCrc bool) (*efi.PartitionTable, error) { f, err := os.Open(path) if err != nil { return nil, err } defer f.Close() sz, err := getDeviceSize(f) if err != nil { return nil, fmt.Errorf("cannot determine device size: %w", err) } ssz, err := getSectorSize(f) if err != nil { return nil, fmt.Errorf("cannot determine logical sector size: %w", err) } return efi.ReadPartitionTable(f, sz, ssz, role, checkCrc) } ./github.com/canonical/go-efilib/linux/mockable.go0000664000000000000000000000057600000000000017202 0ustar00// Copyright 2021 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package linux import ( "os" "path/filepath" "golang.org/x/sys/unix" ) var ( mountsPath = "/proc/self/mountinfo" sysfsPath = "/sys" filepathEvalSymlinks = filepath.EvalSymlinks osOpen = os.Open unixStat = unix.Stat ) ./github.com/canonical/go-efilib/loadoption.go0000664000000000000000000000772700000000000016443 0ustar00// Copyright 2021 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package efi import ( "bytes" "errors" "fmt" "io" "math" "github.com/canonical/go-efilib/internal/uefi" ) // LoadOptionAttributes corresponds to the attributes of a load option type LoadOptionAttributes uint32 const ( LoadOptionActive LoadOptionAttributes = uefi.LOAD_OPTION_ACTIVE LoadOptionForceReconnect LoadOptionAttributes = uefi.LOAD_OPTION_FORCE_RECONNECT LoadOptionHidden LoadOptionAttributes = uefi.LOAD_OPTION_HIDDEN LoadOptionCategory LoadOptionAttributes = uefi.LOAD_OPTION_CATEGORY LoadOptionCategoryBoot LoadOptionAttributes = uefi.LOAD_OPTION_CATEGORY_BOOT LoadOptionCategoryApp LoadOptionAttributes = uefi.LOAD_OPTION_CATEGORY_APP ) // IsBootCategory indicates whether the attributes has the LOAD_OPTION_CATEGORY_BOOT // flag set. These applications are typically part of the boot process. func (a LoadOptionAttributes) IsBootCategory() bool { return a&LoadOptionCategory == LoadOptionCategoryBoot } // IsAppCategory indicates whether the attributes has the LOAD_OPTION_CATEGORY_APP // flag set. func (a LoadOptionAttributes) IsAppCategory() bool { return a&LoadOptionCategory == LoadOptionCategoryApp } // LoadOption corresponds to the EFI_LOAD_OPTION type. type LoadOption struct { Attributes LoadOptionAttributes Description string FilePath DevicePath OptionalData []byte } // String implements [fmt.Stringer]. func (o *LoadOption) String() string { return fmt.Sprintf(`EFI_LOAD_OPTION { Attributes: %d, Description: %q, FilePath: %s, OptionalData: %x, }`, o.Attributes, o.Description, o.FilePath, o.OptionalData) } // Bytes returns the serialized form of this load option. func (o *LoadOption) Bytes() ([]byte, error) { var buf bytes.Buffer if err := o.Write(&buf); err != nil { return nil, err } return buf.Bytes(), nil } // Write serializes this load option to the supplied io.Writer. func (o *LoadOption) Write(w io.Writer) error { opt := uefi.EFI_LOAD_OPTION{ Attributes: uint32(o.Attributes), Description: ConvertUTF8ToUCS2(o.Description + "\x00"), OptionalData: o.OptionalData} var dp bytes.Buffer if err := o.FilePath.Write(&dp); err != nil { return err } if dp.Len() > math.MaxUint16 { return errors.New("FilePath too long") } opt.FilePathList = dp.Bytes() opt.FilePathListLength = uint16(dp.Len()) return opt.Write(w) } // IsActive indicates whether the attributes has the LOAD_OPTION_ACTIVE flag set. // These will be tried automatically if they are in BootOrder. func (o *LoadOption) IsActive() bool { return o.Attributes&LoadOptionActive > 0 } // IsVisible indicates whether the attributes does not have the LOAD_OPTION_HIDDEN // flag set. func (o *LoadOption) IsVisible() bool { return o.Attributes&LoadOptionHidden == 0 } // IsBootCategory indicates whether the attributes has the LOAD_OPTION_CATEGORY_BOOT // flag set. These applications are typically part of the boot process. func (o *LoadOption) IsBootCategory() bool { return o.Attributes.IsBootCategory() } // IsAppCategory indicates whether the attributes has the LOAD_OPTION_CATEGORY_APP // flag set. func (o *LoadOption) IsAppCategory() bool { return o.Attributes.IsAppCategory() } // ReadLoadOption reads a LoadOption from the supplied io.Reader. Due to the // way that EFI_LOAD_OPTION is defined, where there is no size encoded for the // OptionalData field, this function will consume all of the bytes available // from the supplied reader. func ReadLoadOption(r io.Reader) (out *LoadOption, err error) { opt, err := uefi.Read_EFI_LOAD_OPTION(r) if err != nil { return nil, err } out = &LoadOption{ Attributes: LoadOptionAttributes(opt.Attributes), Description: ConvertUTF16ToUTF8(opt.Description), OptionalData: opt.OptionalData} dp, err := ReadDevicePath(bytes.NewReader(opt.FilePathList)) if err != nil { return nil, fmt.Errorf("cannot read device path: %w", err) } out.FilePath = dp return out, nil } ./github.com/canonical/go-efilib/mbr/0000775000000000000000000000000000000000000014507 5ustar00./github.com/canonical/go-efilib/mbr/mbr.go0000664000000000000000000000410200000000000015613 0ustar00// Copyright 2020 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package mbr import ( "encoding/binary" "errors" "io" ) const mbrSignature = 0xaa55 var ErrInvalidSignature = errors.New("invalid master boot record signature") // Address is a CHS address. type Address [3]uint8 func (a Address) Head() uint8 { return a[0] } func (a Address) Sector() uint8 { return a[1] & 0x3f } func (a Address) Cylinder() uint16 { c := uint16(a[2]) c |= uint16(a[1]&0xc0) << 2 return c } // PartitionEntry corresponds to a partition entry from a MBR. type PartitionEntry struct { BootIndicator uint8 StartAddress Address Type uint8 EndAddress Address StartingLBA uint32 NumberOfSectors uint32 } // Record corresponds to a MBR. type Record struct { BootstrapCode [440]byte UniqueSignature uint32 Partitions [4]PartitionEntry } // IsProtectiveMBR indicates whether this is a PMBR, which is present // in the first sector of a GPT volume. func (r *Record) IsProtectiveMBR() bool { var maybePMBR bool for _, p := range r.Partitions { switch p.Type { case 0x00: // This is ok for a PMBR case 0xee: // Maybe a PMBR. // XXX: We probably should check the geometry. switch { case maybePMBR: // There should only be one of these. return false default: maybePMBR = true } default: // This is not a valid PMBR return false } } return maybePMBR } type record struct { BootstrapCode [440]byte UniqueSignature uint32 Unknown [2]uint8 Partitions [4]PartitionEntry Signature uint16 } // ReadRecord reads a MBR from r. It returns ErrInvalidSignature if the // MBR has an invalid signature. func ReadRecord(r io.Reader) (*Record, error) { var rec record if err := binary.Read(r, binary.LittleEndian, &rec); err != nil { return nil, err } if rec.Signature != mbrSignature { return nil, ErrInvalidSignature } return &Record{BootstrapCode: rec.BootstrapCode, UniqueSignature: rec.UniqueSignature, Partitions: rec.Partitions}, nil } ./github.com/canonical/go-efilib/mockable_linux.go0000664000000000000000000000037000000000000017252 0ustar00// Copyright 2021 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package efi import ( "os" "golang.org/x/sys/unix" ) var ( removeVarFile = os.Remove unixStatfs = unix.Statfs ) ./github.com/canonical/go-efilib/net.go0000664000000000000000000001222200000000000015043 0ustar00// Copyright 2025 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package efi import ( "errors" "fmt" "net/netip" "github.com/canonical/go-efilib/internal/uefi" ) // NetworkInterfaceType describes the type of network hardware. type NetworkInterfaceType uint8 const ( NetworkInterfaceTypeReserved NetworkInterfaceType = 0 NetworkInterfaceTypeEthernet NetworkInterfaceType = 1 ) // IPProtocol describes an IP protocol type IPProtocol uint16 const ( IPProtocolTCP IPProtocol = uefi.RFC_1700_TCP_PROTOCOL IPProtocolUDP IPProtocol = uefi.RFC_1700_UDP_PROTOCOL ) // String implements [fmt.Stringer]. func (p IPProtocol) String() string { switch p { case IPProtocolTCP: return "TCP" case IPProtocolUDP: return "UDP" default: return fmt.Sprintf("%#x", uint16(p)) } } // IPv4Address corresponds to an IP v4 address. type IPv4Address [4]uint8 // String implements [fmt.Stringer]. func (a IPv4Address) String() string { return fmt.Sprintf("%d:%d:%d:%d", a[0], a[1], a[2], a[3]) } // AsNetIPAddr returns the address as a [netip.Addr]. func (a IPv4Address) AsNetIPAddr() netip.Addr { return netip.AddrFrom4([4]uint8(a)) } // IPv4AddressOrigin describes how an IP v4 address was assigned. type IPv4AddressOrigin bool const ( IPv4AddressDHCPAssigned IPv4AddressOrigin = false // Assigned by a DHCP server. StaticIPv4Address IPv4AddressOrigin = true // Statically assigned. ) // String implements [fmt.Stringer]. func (o IPv4AddressOrigin) String() string { switch o { case IPv4AddressDHCPAssigned: return "DHCP" case StaticIPv4Address: return "Static" } panic("not reached") } // IPv6Address corresponds to an IP v6 address. type IPv6Address [16]uint8 // String implements [fmt.Stringer]. func (a IPv6Address) String() string { return fmt.Sprintf("%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x", a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15]) } // AsNetIPAddr returns the address as a [netip.Addr]. func (a IPv6Address) AsNetIPAddr() netip.Addr { return netip.AddrFrom16([16]uint8(a)) } // IPv6AddressOrigin describes how an IP v6 address was assigned. type IPv6AddressOrigin uint8 const ( StaticIPv6Address IPv6AddressOrigin = 0 // Statically assigned. IPv6AddressSLAACAssigned IPv6AddressOrigin = 1 // Assigned using SLAAC. IPv6AddressDHCPAssigned IPv6AddressOrigin = 2 // Assigned by a DHCPv6 server. ) // String implements [fmt.Stringer]. func (o IPv6AddressOrigin) String() string { switch o { case StaticIPv6Address: return "Static" case IPv6AddressSLAACAssigned: return "StatelessAutoConfigure" case IPv6AddressDHCPAssigned: return "StatefulAutoConfigure" default: return fmt.Sprintf("%#x", uint8(o)) } } // MACAddressType describes the type of a MAC address. type MACAddressType int const ( MACAddressTypeUnknown MACAddressType = iota // an unknown address type MACAddressTypeEUI48 // EUI-48 address type MACAddressTypeEUI64 // EUI-64 address type ) // MACAddress is an abstraction for a MAC address. type MACAddress interface { fmt.Stringer // Bytes32 returns the address as a 32-byte left-aligned, zero padded array, // which is how MAC addresses are represented in UEFI. Bytes32() [32]uint8 Type() MACAddressType // Address type } // EUI64 represents a EUI-64 (64-bit Extended Unique Identifier). type EUI64 [8]uint8 // String implements [fmt.Stringer]. func (id EUI64) String() string { return fmt.Sprintf("%02x-%02x-%02x-%02x-%02x-%02x-%02x-%02x", id[0], id[1], id[2], id[3], id[4], id[5], id[6], id[7]) } // Bytes implements [MACAddress.Bytes32]. func (id EUI64) Bytes32() [32]uint8 { var out [32]uint8 copy(out[:], id[:]) return out } // Type implements [MACAddress.Type]. func (EUI64) Type() MACAddressType { return MACAddressTypeEUI64 } // AsEUI48 returns this identifier as EUI-48, if it is a valid EUI-48. func (id EUI64) AsEUI48() (EUI48, error) { if id[3] != 0xFF || id[4] != 0xFE { return EUI48{}, errors.New("EUI64 doesn't represent a EUI48 address") } var out EUI48 copy(out[0:], id[:3]) copy(out[3:], id[5:]) return out, nil } // EUI48 represents a EUI-48 (48-bit Extended Unique Identifier). type EUI48 [6]uint8 // String implements [fmt.Stringer]. func (id EUI48) String() string { return fmt.Sprintf("%02x-%02x-%02x-%02x-%02x-%02x", id[0], id[1], id[2], id[3], id[4], id[5]) } // Bytes32 implements [MACAddress.Bytes32]. func (id EUI48) Bytes32() [32]byte { var out [32]uint8 copy(out[:], id[:]) return out } // Type implements [MACAddress.Type]. func (EUI48) Type() MACAddressType { return MACAddressTypeEUI64 } // AsEUI64 returns this identifier as EUI-64. func (id EUI48) AsEUI64() EUI64 { var out EUI64 copy(out[0:], id[:3]) out[3] = 0xFF out[4] = 0xFE copy(out[5:], id[3:]) return out } type unknownMACAddress [32]uint8 func (address unknownMACAddress) String() string { return fmt.Sprintf("%x", [32]byte(address)) } func (address unknownMACAddress) Bytes32() [32]uint8 { var out [32]uint8 copy(out[:], address[:]) return out } func (unknownMACAddress) Type() MACAddressType { return MACAddressTypeUnknown } ./github.com/canonical/go-efilib/pe.go0000664000000000000000000001435300000000000014670 0ustar00// Copyright 2020 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package efi import ( "crypto" "debug/pe" "encoding/binary" "errors" "fmt" "hash" "io" "sort" "github.com/canonical/go-efilib/internal/ioerr" ) const ( certTableIndex = 4 // Index of the Certificate Table entry in the Data Directory of a PE image optional header ) type eofIsUnexpectedReaderAt struct { r io.ReaderAt } func (r *eofIsUnexpectedReaderAt) ReadAt(p []byte, off int64) (n int, err error) { n, err = r.r.ReadAt(p, off) return n, ioerr.EOFIsUnexpected(err) } // ComputePeImageDigest computes the digest of the supplied PE image in accordance with the // Authenticode specification, using the specified digest algorithm. func ComputePeImageDigest(alg crypto.Hash, r io.ReaderAt, sz int64) ([]byte, error) { var dosheader [96]byte if n, err := r.ReadAt(dosheader[0:], 0); err != nil { if n > 0 && err == io.EOF { err = io.ErrUnexpectedEOF } return nil, err } var coffHeaderOffset int64 if dosheader[0] == 'M' && dosheader[1] == 'Z' { signoff := int64(binary.LittleEndian.Uint32(dosheader[0x3c:])) var sign [4]byte r.ReadAt(sign[:], signoff) if !(sign[0] == 'P' && sign[1] == 'E' && sign[2] == 0 && sign[3] == 0) { return nil, fmt.Errorf("invalid PE COFF file signature: %v", sign) } coffHeaderOffset = signoff + 4 } p, err := pe.NewFile(r) if err != nil { return nil, fmt.Errorf("cannot decode PE binary: %w", err) } var isPe32Plus bool var sizeOfHeaders int64 var dd []pe.DataDirectory switch oh := p.OptionalHeader.(type) { case *pe.OptionalHeader32: sizeOfHeaders = int64(oh.SizeOfHeaders) dd = oh.DataDirectory[0:oh.NumberOfRvaAndSizes] case *pe.OptionalHeader64: isPe32Plus = true sizeOfHeaders = int64(oh.SizeOfHeaders) dd = oh.DataDirectory[0:oh.NumberOfRvaAndSizes] default: return nil, errors.New("PE binary doesn't contain an optional header") } // 1) Load the image header in to memory. hr := io.NewSectionReader(&eofIsUnexpectedReaderAt{r}, 0, sizeOfHeaders) // 2) Initialize a hash algorithm context. h := alg.New() // 3) Hash the image header from its base to immediately before the start of the checksum address in the optional header. // This includes the DOS header, 4-byte PE signature, COFF header, and the first 64 bytes of the optional header. b := make([]byte, int(coffHeaderOffset)+binary.Size(p.FileHeader)+64) if _, err := io.ReadFull(hr, b); err != nil { return nil, fmt.Errorf("cannot read from image to start to checksum: %w", err) } h.Write(b) // 4) Skip over the checksum, which is a 4-byte field. hr.Seek(4, io.SeekCurrent) var certTable *pe.DataDirectory if len(dd) > certTableIndex { // 5) Hash everything from the end of the checksum field to immediately before the start of the Certificate Table entry in the // optional header data directory. // This is 60 bytes for PE32 format binaries, or 76 bytes for PE32+ format binaries. sz := 60 if isPe32Plus { sz = 76 } b = make([]byte, sz) if _, err := io.ReadFull(hr, b); err != nil { return nil, fmt.Errorf("cannot read from checksum to certificate table data directory entry: %w", err) } h.Write(b) // 6) Get the Attribute Certificate Table address and size from the Certificate Table entry. certTable = &dd[certTableIndex] } // 7) Exclude the Certificate Table entry from the calculation and hash everything from the end of the Certificate Table entry // to the end of image header, including the Section Table. The Certificate Table entry is 8 bytes long. if certTable != nil { hr.Seek(8, io.SeekCurrent) } chunkedHashAll := func(r io.Reader, h hash.Hash) error { b := make([]byte, 4096) for { n, err := r.Read(b) h.Write(b[:n]) if err == io.EOF { return nil } if err != nil { return err } } } if err := chunkedHashAll(hr, h); err != nil { return nil, fmt.Errorf("cannot hash remainder of headers and section table: %w", err) } // 8) Create a counter called sumOfBytesHashed, which is not part of the signature. Set this counter to the SizeOfHeaders field. sumOfBytesHashed := sizeOfHeaders // 9) Build a temporary table of pointers to all of the section headers in the image. Do not include any section headers in the // table whose Size field is zero. var sections []*pe.SectionHeader for _, section := range p.Sections { if section.Size == 0 { continue } sections = append(sections, §ion.SectionHeader) } // 10) Using the Offset field in the referenced SectionHeader structure as a key, arrange the table's elements in ascending order. // In other words, sort the section headers in ascending order according to the disk-file offset of the sections. sort.Slice(sections, func(i, j int) bool { return sections[i].Offset < sections[j].Offset }) for _, section := range sections { // 11) Walk through the sorted table, load the corresponding section into memory, and hash the entire section. Use the // Size field in the SectionHeader structure to determine the amount of data to hash. sr := io.NewSectionReader(&eofIsUnexpectedReaderAt{r}, int64(section.Offset), int64(section.Size)) if err := chunkedHashAll(sr, h); err != nil { return nil, fmt.Errorf("cannot hash section %s: %w", section.Name, err) } // 12) Add the section’s Size value to sumOfBytesHashed. sumOfBytesHashed += int64(section.Size) // 13) Repeat steps 11 and 12 for all of the sections in the sorted table. } // 14) Create a value called fileSize, which is not part of the signature. Set this value to the image’s file size. If fileSize is // greater than sumOfBytesHashed, the file contains extra data that must be added to the hash. This data begins at the // sumOfBytesHashed file offset, and its length is: // fileSize – (certTable.Size + sumOfBytesHashed) fileSize := sz if fileSize > sumOfBytesHashed { var certSize int64 if certTable != nil { certSize = int64(certTable.Size) } if fileSize < (sumOfBytesHashed + certSize) { return nil, errors.New("image too short") } sr := io.NewSectionReader(&eofIsUnexpectedReaderAt{r}, sumOfBytesHashed, fileSize-sumOfBytesHashed-certSize) if err := chunkedHashAll(sr, h); err != nil { return nil, fmt.Errorf("cannot hash extra data: %w", err) } } return h.Sum(nil), nil } ./github.com/canonical/go-efilib/secureboot.go0000664000000000000000000002314600000000000016436 0ustar00// Copyright 2024 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package efi import ( "bytes" "context" "crypto/x509" "errors" "fmt" ) func readBinaryVariable(ctx context.Context, name string, guid GUID) (bool, error) { data, _, err := ReadVariable(ctx, name, guid) if err != nil { return false, err } if len(data) != 1 { return false, fmt.Errorf("variable contents has unexpected number of bytes (got %d bytes)", len(data)) } switch data[0] { case 0: return false, nil case 1: return true, nil default: return false, fmt.Errorf("unexpected variable contents: %d", uint8(data[0])) } } // ReadSecureBootVariable reads the SecureBoot global variable which provides // an indication of whether secure boot is enabled. If it returns false, then // secure boot is disabled. If it returns true, then it is an indication that // secure boot is enabled. In general, [DefaultVarContext] should be supplied // to this. // // Note that this function cannot prove that secure boot is enabled. If a platform // provides a way to disable secure boot and execute arbitrary code, then the // platform or kernel may not tell the truth about this. Obtaining proof that // secure boot is enabled would involve the use of attestations and a third // party verifier. func ReadSecureBootVariable(ctx context.Context) (bool, error) { return readBinaryVariable(ctx, "SecureBoot", GlobalVariable) } // ReadPlatformKeyCertificate reads the PK global variable and returns the corresponding // certificate, if a platform key is enrolled. If no platform key is enrolled, this // will return nil. In general, [DefaultVarContext] should be supplied to this. func ReadPlatformKeyCertificate(ctx context.Context) (*x509.Certificate, error) { db, err := ReadSignatureDatabaseVariable(ctx, PKVariable) if err != nil { return nil, err } switch len(db) { case 0: return nil, nil case 1: esl := db[0] if esl.Type != CertX509Guid { return nil, fmt.Errorf("invalid PK contents: unexpected signature list type: %v", esl.Type) } if len(esl.Signatures) != 1 { return nil, fmt.Errorf("invalid PK contents: unexpected number of signature data entries (%d)", len(esl.Signatures)) } return x509.ParseCertificate(esl.Signatures[0].Data) default: return nil, errors.New("invalid PK contents: more than one signature list") } } var ( // PKVariable corresponds to the PK global variable PKVariable VariableDescriptor = VariableDescriptor{Name: "PK", GUID: GlobalVariable} // KEKVariable corresponds to the KEK global variable KEKVariable VariableDescriptor = VariableDescriptor{Name: "KEK", GUID: GlobalVariable} // DbVariable corresponds to the authorized signature database variable DbVariable VariableDescriptor = VariableDescriptor{Name: "db", GUID: ImageSecurityDatabaseGuid} // DbxVariable corresponds to the forbidden signature database variable DbxVariable VariableDescriptor = VariableDescriptor{Name: "dbx", GUID: ImageSecurityDatabaseGuid} ) // ReadSignatureDatabaseVariable reads the signature database from the supplied // variable. In general, [DefaultVarContext] should be supplied to this. func ReadSignatureDatabaseVariable(ctx context.Context, desc VariableDescriptor) (SignatureDatabase, error) { data, _, err := ReadVariable(ctx, desc.Name, desc.GUID) if err != nil { return nil, err } return ReadSignatureDatabase(bytes.NewReader(data)) } // InconsistentSecureBootModeError is returned from [ComputeSecureBootMode] if // some of the variables are in an inconsistent state. type InconsistentSecureBootModeError struct { err error } func (e *InconsistentSecureBootModeError) Error() string { return "inconsistent secure boot mode: " + e.err.Error() } func (e *InconsistentSecureBootModeError) Unwrap() error { return e.err } // SecureBootMode describes the secure boot mode of a platform. type SecureBootMode int const ( // SetupMode indicates that a platform is in setup mode. In this mode, no platform // key is enrolled and secure boot cannot be enabled. Writes to secure boot // variables other than PK can be performed without authentication. // // SetupMode can transition to UserMode by enrolling a platform key, which can be // done from the OS by performing a self-signed authenticated write to the PK // global variable. // // Since UEFI 2.5, SetupMode can transition to AuditMode by writing 1 to the // AuditMode global variable before ExitBootServices. SetupMode SecureBootMode = iota + 1 // AuditMode indicates that a platform is in audit mode. This mode implies setup // mode - no platform key is enrolled and secure boot cannot be enabled. Writes to // secure boot variables other than PK can be performed without authentication. // // AuditMode provides a way of ensuring that the current signature database // configuration is able to authenticate an OS without preventing it from booting // if authentication fails. // // AuditMode can transition to DeployedMode by enrolling a platform key, which can be // done from the OS by performing a self-signed authenticated write to the PK // global variable. // // AuditMode only exists since UEFI 2.5. AuditMode // UserMode indicates that a platform is in user mode. In this mode, a platform // key is enrolled and secure boot can be enabled (but may be disabled using some // platform specific mechanism). Writes to secure boot variables require authentication. // // UserMode can transition to SetupMode by erasing the platform key, either via // some platform specific mechanism or by an authenticated write of an empty payload // to the PK global variable. // // Since UEFI 2.5, UserMode can transition to AuditMode by writing 1 to the AuditMode // global variable before ExitBootServices. // // Since UEFI 2.5, UserMode can transition to DeployedMode by writing 1 to the // DeployedMode global variable before ExitBootServices. UserMode // DeployedMode indicates that a platform is in deployed mode. In this mode, a // platform key is enrolled and secure boot can be enabled (but may be disabled using // some platform specific mechanism. Writes to secure boot variables require // authentication. This is the most secure mode. // // DeployedMode may transition back to UserMode by some optional platform specific // mechanism which clears the DeployedMode variable. // // DeployedMode exists since UEFI 2.5. DeployedMode ) type secureBootModeFeatures int const ( secureBootModeFeaturesUndetermined secureBootModeFeatures = iota secureBootModeFeaturesAtLeastUefi2_5 secureBootModeFeaturesBeforeUefi2_5 ) // ComputeSecureBootMode determines the secure boot mode of a platform. In general, // [DefaultVarContext] should be supplied to this. func ComputeSecureBootMode(ctx context.Context) (SecureBootMode, error) { setupMode, err := readBinaryVariable(ctx, "SetupMode", GlobalVariable) if err != nil { return 0, fmt.Errorf("cannot read SetupMode variable: %w", err) } var features secureBootModeFeatures auditMode, err := readBinaryVariable(ctx, "AuditMode", GlobalVariable) switch { case errors.Is(err, ErrVarNotExist): features = secureBootModeFeaturesBeforeUefi2_5 case err != nil: return 0, fmt.Errorf("cannot read AuditMode variable: %w", err) default: features = secureBootModeFeaturesAtLeastUefi2_5 } var deployedMode bool if features == secureBootModeFeaturesAtLeastUefi2_5 { var err error deployedMode, err = readBinaryVariable(ctx, "DeployedMode", GlobalVariable) if err != nil { return 0, fmt.Errorf("cannot read DeployedMode variable: %w", err) } } secureBoot, err := ReadSecureBootVariable(ctx) if err != nil { return 0, fmt.Errorf("cannot read SecureBoot variable: %w", err) } pk, err := ReadPlatformKeyCertificate(ctx) if err != nil { return 0, fmt.Errorf("cannot read PK variable: %w", err) } switch setupMode { case true: if secureBoot { // Secure boot cannot be enabled in setup mode return 0, &InconsistentSecureBootModeError{errors.New("firmware indicates secure boot is enabled in setup mode")} } if pk != nil { // There should be no platform key in setup mode. If one is enrolled from the OS, // the firmware should update the value of SetupMode. return 0, &InconsistentSecureBootModeError{errors.New("firmware indicates setup mode is enabled with a platform key enrolled")} } if features == secureBootModeFeaturesBeforeUefi2_5 { return SetupMode, nil } if deployedMode { // Deployed mode cannot be enabled in setup mode. return 0, &InconsistentSecureBootModeError{errors.New("firmware indicates deployed mode is enabled in setup mode")} } if auditMode { return AuditMode, nil } return SetupMode, nil case false: if pk == nil { // There should be a platform key when not in setup mode. If it is deleted with // an authenticated write from the OS, then the firmware should update the value // of SetupMode. return 0, &InconsistentSecureBootModeError{errors.New("firmware indicates it isn't in setup mode when no platform key is enrolled")} } if features == secureBootModeFeaturesBeforeUefi2_5 { return UserMode, nil } if auditMode { // Audit mode implies setup mode. return 0, &InconsistentSecureBootModeError{errors.New("firmware indicates audit mode is enabled when not in setup mode")} } if deployedMode { return DeployedMode, nil } return UserMode, nil } panic("not reached") } // IsDeployedModeSupported indicates whether the firmware is new enough (ie based on // at least UEFI 2.5) to support deployed mode. In general, [DefaultVarContext] should // be supplied to this. func IsDeployedModeSupported(ctx context.Context) bool { _, _, err := ReadVariable(ctx, "DeployedMode", GlobalVariable) return err == nil } ./github.com/canonical/go-efilib/string.go0000664000000000000000000000342200000000000015565 0ustar00// Copyright 2021 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package efi import ( "fmt" "strings" "unicode" "unicode/utf16" "unicode/utf8" ) // ConvertUTF16ToUTF8 converts the supplied UTF-16 or UCS2 string // to a UTF-8 string. If the supplied string is NULL-terminated, // then the NULL termination is removed from the string. func ConvertUTF16ToUTF8(in []uint16) string { var u8 []byte for _, r := range utf16.Decode(in) { if r == 0 { break } u8Char := make([]byte, utf8.RuneLen(r)) utf8.EncodeRune(u8Char, r) u8 = append(u8, u8Char...) } return string(u8) } // ConvertUTF8ToUTF16 converts the supplied UTF-8 string to a // UTF-16 string. func ConvertUTF8ToUTF16(in string) []uint16 { var unicodeStr []rune for len(in) > 0 { r, sz := utf8.DecodeRuneInString(in) unicodeStr = append(unicodeStr, r) in = in[sz:] } return utf16.Encode(unicodeStr) } // ConvertUTF8ToUCS2 converts the supplied UTF-8 string to a // UCS2 string. Any code point outside of the Basic Multilingual // Plane cannot be represented by UCS2 and is converted to the // replacement character. func ConvertUTF8ToUCS2(in string) []uint16 { var unicodeStr []rune for len(in) > 0 { r, sz := utf8.DecodeRuneInString(in) if r >= 0x10000 { r = unicode.ReplacementChar } unicodeStr = append(unicodeStr, r) in = in[sz:] } return utf16.Encode(unicodeStr) } type indentStringer struct { src fmt.Stringer indent int } func (s *indentStringer) String() string { indent := make([]byte, s.indent) for i := range indent { indent[i] = '\t' } return strings.Replace(s.src.String(), "\n", "\n"+string(indent), -1) } func indent(src fmt.Stringer, indent int) fmt.Stringer { return &indentStringer{src: src, indent: indent} } ./github.com/canonical/go-efilib/strings_1_19.go0000664000000000000000000000153500000000000016504 0ustar00//go:build !go1.20 // +build !go1.20 // Copyright 2025 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package efi import ( "fmt" "strconv" "unicode/utf8" ) func formatString(state fmt.State, verb rune) string { // 1 byte for "%", 5 bytes for flags, 7 bytes for max width, 1 period, 7 bytes for max precision, 1 byte for verb. // Go's fmt package caps width and precision to 1e6. var tmp [1 + 5 + 7 + 1 + 7 + 1]byte b := append(tmp[:0], '%') for _, c := range []byte{'+', '-', '#', ' ', '0'} { if !state.Flag(int(c)) { continue } b = append(b, c) } if w, ok := state.Width(); ok { b = strconv.AppendInt(b, int64(w), 10) } if p, ok := state.Precision(); ok { b = append(b, '.') b = strconv.AppendInt(b, int64(p), 10) } b = utf8.AppendRune(b, verb) return string(b) } ./github.com/canonical/go-efilib/strings_1_20.go0000664000000000000000000000034200000000000016467 0ustar00//go:build go1.20 // +build go1.20 // Copyright 2025 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package efi import "fmt" var formatString = fmt.FormatString ./github.com/canonical/go-efilib/types.go0000664000000000000000000000034100000000000015420 0ustar00// Copyright 2020 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package efi type PhysicalAddress uint64 // LBA corresponds to the EFI_LBA type. type LBA uint64 ./github.com/canonical/go-efilib/vars.go0000664000000000000000000002472000000000000015236 0ustar00// Copyright 2020-2021 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package efi import ( "bytes" "context" "errors" "fmt" "reflect" "sort" "sync" "time" "github.com/canonical/go-efilib/internal/uefi" ) type VariableAttributes uint32 const ( AttributeNonVolatile VariableAttributes = uefi.EFI_VARIABLE_NON_VOLATILE AttributeBootserviceAccess VariableAttributes = uefi.EFI_VARIABLE_BOOTSERVICE_ACCESS AttributeRuntimeAccess VariableAttributes = uefi.EFI_VARIABLE_RUNTIME_ACCESS AttributeHardwareErrorRecord VariableAttributes = uefi.EFI_VARIABLE_HARDWARE_ERROR_RECORD AttributeAuthenticatedWriteAccess VariableAttributes = uefi.EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS AttributeTimeBasedAuthenticatedWriteAccess VariableAttributes = uefi.EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS AttributeAppendWrite VariableAttributes = uefi.EFI_VARIABLE_APPEND_WRITE AttributeEnhancedAuthenticatedAccess VariableAttributes = uefi.EFI_VARIABLE_ENHANCED_AUTHENTICATED_ACCESS ) var ( // ErrVarsUnavailable indicates that there is no backend available for variable accesses in the current platform ErrVarsUnavailable = errors.New("no variable backend is available") ) var ( // These errors gneerally ccrrespnod to errors that are returned from the variable service. They // may be returned in other cirumstaces too, particularly because the kernel may map these errors // to commonly used error codes, eg, efivarfs at least uses EINVAL ErrVarNotExist = errors.New("variable does not exist") // corresponds to EFI_NOT_FOUND ErrVarInvalidParam = errors.New("invalid parameter for variable access") // corresponds to EFI_INVALID_PARAMETER ErrVarDeviceError = errors.New("variable access failed because of a hardware error") // corresponds to EFI_DEVICE_ERROR ErrVarPermission = errors.New("variable access failed because of insufficient permissions or an authentication failure") // corresponds eo EFI_SECURTY_VIOLATION. ErrVarInsufficientSpace = errors.New("insufficient storage space available for variable") // corresponds to EFI_INSUFFICIENT_SPACE. // ErrVarWritProtected corresponds to EFI_WRITE_PROTECTED although there are other reasons // this error could be returned such as permissions errors in the VFS layer with efivarfs. ErrVarWriteProtected = errors.New("variable is write protected") ) // VariableDescriptor represents the identity of a variable. type VariableDescriptor struct { Name string GUID GUID } // VarsBackendKey is used to key a [VarsBackend] or [VarsBackend2] on a [context.Context]. type VarsBackendKey struct{} // VarsBackend is used by the [ReadVariable], [WriteVariable] and [ListVariables] // functions, and indirectly by other functions in this package to abstract access // to a specific backend. A default backend is initialized at process initialization // and is available via [DefaultVarContext]. type VarsBackend interface { Get(name string, guid GUID) (VariableAttributes, []byte, error) Set(name string, guid GUID, attrs VariableAttributes, data []byte) error List() ([]VariableDescriptor, error) } // VarsBackend2 is like [VarsBackend] only it takes a context that the backend can use // for deadlines or cancellation - this is particularly applicable on systems where there // may be multiple writers and writes have to be serialized by the operating system to // some degree. type VarsBackend2 interface { Get(ctx context.Context, name string, guid GUID) (VariableAttributes, []byte, error) Set(ctx context.Context, name string, guid GUID, attrs VariableAttributes, data []byte) error List(ctx context.Context) ([]VariableDescriptor, error) } type varsBackendWrapper struct { Backend VarsBackend } func (v *varsBackendWrapper) Get(ctx context.Context, name string, guid GUID) (VariableAttributes, []byte, error) { return v.Backend.Get(name, guid) } func (v *varsBackendWrapper) Set(ctx context.Context, name string, guid GUID, attrs VariableAttributes, data []byte) error { return v.Backend.Set(name, guid, attrs, data) } func (v *varsBackendWrapper) List(ctx context.Context) ([]VariableDescriptor, error) { return v.Backend.List() } func getVarsBackend(ctx context.Context) VarsBackend2 { switch v := ctx.Value(VarsBackendKey{}).(type) { case VarsBackend2: return v case VarsBackend: return &varsBackendWrapper{Backend: v} case nil: return &varsBackendWrapper{Backend: nullVarsBackend{}} default: val := ctx.Value(VarsBackendKey{}) panic(fmt.Sprintf("invalid variable backend type %q: %#v", reflect.TypeOf(val), val)) } } type nullVarsBackend struct{} func (v nullVarsBackend) Get(name string, guid GUID) (VariableAttributes, []byte, error) { return 0, nil, ErrVarsUnavailable } func (v nullVarsBackend) Set(name string, guid GUID, attrs VariableAttributes, data []byte) error { return ErrVarsUnavailable } func (v nullVarsBackend) List() ([]VariableDescriptor, error) { return nil, ErrVarsUnavailable } func isContextDone(ctx context.Context) error { select { case <-ctx.Done(): return ctx.Err() default: return nil } } // ReadVariable returns the value and attributes of the EFI variable with the specified // name and GUID. In general, [DefaultVarContext] or the result of [WithDefaultVarsBackend] // should be supplied to this. This will return an error if the context is done. func ReadVariable(ctx context.Context, name string, guid GUID) ([]byte, VariableAttributes, error) { backend := getVarsBackend(ctx) if err := isContextDone(ctx); err != nil { return nil, 0, err } attrs, data, err := backend.Get(ctx, name, guid) return data, attrs, err } // WriteVariable writes the supplied data value with the specified attributes to the // EFI variable with the specified name and GUID. In general, [DefaultVarContext] or the // result of [WithDefaultVarsBackend] should be supplied to this. This will return an error // if the context is done. // // If the variable already exists, the specified attributes must match the existing // attributes with the exception of AttributeAppendWrite. // // If the variable does not exist, it will be created. func WriteVariable(ctx context.Context, name string, guid GUID, attrs VariableAttributes, data []byte) error { backend := getVarsBackend(ctx) if err := isContextDone(ctx); err != nil { return err } return backend.Set(ctx, name, guid, attrs, data) } // ListVariables returns a sorted list of variables that can be accessed. In // general, [DefaultVarContext] or the result of [WithDefaultVarsBackend] should // be supplied to this. This will return an error if the context is done. func ListVariables(ctx context.Context) ([]VariableDescriptor, error) { backend := getVarsBackend(ctx) if err := isContextDone(ctx); err != nil { return nil, err } names, err := backend.List(ctx) if err != nil { return nil, err } if err := isContextDone(ctx); err != nil { return nil, err } sort.Stable(variableDescriptorSlice(names)) return names, nil } // variableDescriptorSlice is a slice of VariableDescriptor instances that implements // the sort.Interface interface, so that it can be sorted. type variableDescriptorSlice []VariableDescriptor func (l variableDescriptorSlice) Len() int { return len(l) } func (l variableDescriptorSlice) Less(i, j int) bool { entryI := l[i] entryJ := l[j] // Sort by GUID first switch bytes.Compare(entryI.GUID[:], entryJ.GUID[:]) { case -1: // i always sorts before j return true case 0: // The GUIDs are identical, so sort based on name return entryI.Name < entryJ.Name case 1: // i always sorts after j return false default: panic("unexpected bytes.Compare return value") } } func (l variableDescriptorSlice) Swap(i, j int) { l[i], l[j] = l[j], l[i] } func withVarsBackend(ctx context.Context, backend VarsBackend) context.Context { return context.WithValue(ctx, VarsBackendKey{}, backend) } func withVarsBackend2(ctx context.Context, backend VarsBackend2) context.Context { return context.WithValue(ctx, VarsBackendKey{}, backend) } func newDefaultVarContext() context.Context { return addDefaultVarsBackend(context.Background()) } type defaultVarContextInitializer struct { once sync.Once context context.Context } func (d *defaultVarContextInitializer) init() context.Context { d.once.Do(func () { d.context = newDefaultVarContext() }) return d.context } func (d *defaultVarContextInitializer) Deadline() (deadline time.Time, ok bool) { return d.init().Deadline() } func (d *defaultVarContextInitializer) Done() <-chan struct{} { return d.init().Done() } func (d *defaultVarContextInitializer) Err() error { return d.init().Err() } func (d *defaultVarContextInitializer) Value(key any) any { return d.init().Value(key) } // DefaultVarContext should generally be passed to functions that interact with // EFI variables in order to use the default system backend for accessing EFI // variables. It is based on a new background context. // // On Linux, this uses efivarfs. The kernel rate limits unprivileged users' read // accesses to the EFI variable runtime service to 100 accesses per second, after // which any thread that attempts to perform a read access will sleep in an // uninterruptible state. This makes adding a deadline to the context for sections // of code that perform multiple variable reads worthwhile in some cases. // Unfortunately, there is no way to determine whether an access will be ratelimited // before performing it. var DefaultVarContext context.Context = &defaultVarContextInitializer{} // WithDefaultVarsBackend adds the default system backend for accessing EFI // variables to an existing context. It allows for usage of any context other // than the internally created background one. // // On Linux, this uses efivarfs. The kernel rate limits unprivileged users' read // accesses to the EFI variable runtime service to 100 accesses per second, after // which any thread that attempts to perform a read access will sleep in an // uninterruptible state. This makes adding a deadline to the context for sections // of code that perform multiple variable reads worthwhile in some cases. // Unfortunately, there is no way to determine whether an access will be ratelimited // before performing it. func WithDefaultVarsBackend(ctx context.Context) context.Context { return addDefaultVarsBackend(ctx) } ./github.com/canonical/go-efilib/vars_linux.go0000664000000000000000000002376100000000000016461 0ustar00// Copyright 2020-2021 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package efi import ( "bytes" "context" "encoding/binary" "errors" "fmt" "io" "os" "path/filepath" "syscall" "golang.org/x/sys/unix" internal_unix "github.com/canonical/go-efilib/internal/unix" ) func efivarfsPath() string { return "/sys/firmware/efi/efivars" } type varFile interface { io.ReadWriteCloser Readdir(n int) ([]os.FileInfo, error) Stat() (os.FileInfo, error) GetInodeFlags() (uint, error) SetInodeFlags(flags uint) error } func makeVarFileMutableAndTakeFile(f varFile) (restore func() error, err error) { const immutableFlag = 0x00000010 flags, err := f.GetInodeFlags() if err != nil { return nil, err } if flags&immutableFlag == 0 { // Nothing to do f.Close() return func() error { return nil }, nil } if err := f.SetInodeFlags(flags &^ immutableFlag); err != nil { return nil, err } return func() error { defer func() { f.Close() }() return f.SetInodeFlags(flags) }, nil } type realVarFile struct { *os.File } func (f *realVarFile) GetInodeFlags() (uint, error) { flags, err := internal_unix.IoctlGetUint(int(f.Fd()), unix.FS_IOC_GETFLAGS) if err != nil { return 0, &os.PathError{Op: "ioctl", Path: f.Name(), Err: err} } return flags, nil } func (f *realVarFile) SetInodeFlags(flags uint) error { if err := internal_unix.IoctlSetPointerUint(int(f.Fd()), unix.FS_IOC_SETFLAGS, flags); err != nil { return &os.PathError{Op: "ioctl", Path: f.Name(), Err: err} } return nil } var openVarFile = func(path string, flags int, perm os.FileMode) (varFile, error) { f, err := os.OpenFile(path, flags, perm) if err != nil { return nil, err } return &realVarFile{f}, nil } var guidLength = len("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx") func probeEfivarfs() bool { var st unix.Statfs_t if err := unixStatfs(efivarfsPath(), &st); err != nil { return false } if uint(st.Type) != uint(unix.EFIVARFS_MAGIC) { return false } return true } func maybeRetry(n int, fn func() (bool, error)) error { for i := 1; ; i++ { retry, err := fn() switch { case i > n: return err case !retry: return err case err == nil: return nil } } } // inodeMayBeImmutable returns whether the supplied error returned from open (for // writing) or unlink indicates that the inode is immutable. This is indicated // when the error is EPERM. // // We retry for EPERM errors that occur when opening an inode for writing, // or when unlinking its directory entry. Although we temporarily mark inodes as // mutable before opening them to write or when unlinking, we can get this error // as a result of race with another process that might have been writing to the // variable (and subsequently marked the inode as immutable again when it // finished) or may have deleted and recreated it, making the new inode immutable. func inodeMayBeImmutable(err error) bool { var errno syscall.Errno if !errors.As(err, &errno) { return false } return errno == syscall.EPERM } func transformEfivarfsError(err error) error { switch { case errors.Is(err, os.ErrNotExist) || err == io.EOF: // ENOENT can come from the VFS layer during opening and unlinking, and // converted from EFI_NOT_FOUND errors returned from the variable // service. When reading a variable, if the variable doesn't exist // when trying to determine the size of it, the kernel converts ENOENT // into success with 0 bytes read which means we need to handle io.EOF // as well. return ErrVarNotExist case errors.Is(err, syscall.EINVAL): // EINVAL can come from the VFS layer during opening or unlinking due // to invalid or incompatible flag combinations, although we don't expect // that. It's also converted from EFI_INVALID_PARAMETER errors returned // from the variable service. return ErrVarInvalidParam case errors.Is(err, syscall.EIO): // EIO can come from the VFS layer during unlinking, although we don't // expect that. It's also converted from EFI_DEVICE_ERROR errors returned // from the variable service return ErrVarDeviceError case errors.Is(err, os.ErrPermission): // EACCESS can come from the VFS layer for the following reasons: // - opening a file for writing when the caller does not have write // access to it. // - opening a file for writing when the caller does not have write // access to the parent directory and a new file needs to be created. // - unlinking a file when the caller does not have write access to // the parent directory. // EPERM can come from the VFS layer when opening a file for writing // or unlinking if the inode is immutable (see inodeMayBeImmutable). // // EACCES is also converted from EFI_SECURITY_VIOLATION errors returned // from the variable service. return ErrVarPermission case errors.Is(err, syscall.ENOSPC): // ENOSPC is converted from EFI_OUT_OF_RESOURCES errors returned from // the variable service. return ErrVarInsufficientSpace case errors.Is(err, syscall.EROFS): // EROFS is converted from EFI_WRITE_PROTECTED errors returned from the // variable service. return ErrVarWriteProtected default: return err } } func writeEfivarfsFile(path string, attrs VariableAttributes, data []byte) (retry bool, err error) { // Open for reading to make the inode mutable r, err := openVarFile(path, os.O_RDONLY, 0) switch { case errors.Is(err, os.ErrNotExist): // It's not an error if the variable doesn't exist. case err != nil: return false, transformEfivarfsError(err) default: restoreImmutable, err := makeVarFileMutableAndTakeFile(r) if err != nil { r.Close() return false, transformEfivarfsError(err) } defer restoreImmutable() } if len(data) == 0 { // short-cut for unauthenticated variable delete - efivarfs will perform a // zero-byte write to delete the variable if we unlink the entry here. if attrs&(AttributeAuthenticatedWriteAccess|AttributeTimeBasedAuthenticatedWriteAccess|AttributeEnhancedAuthenticatedAccess) > 0 { // If the supplied attributes are incompatible with the variable, // the variable service will return EFI_INVALID_PARAMETER and // we'll get EINVAL back. If the supplied attributes are correct // but we perform a zero-byte write to an authenticated variable, // the variable service will return EFI_SECURITY_VIOLATION, but // the kernel also turns this into EINVAL. Instead, we generate // an appropriate error if the supplied attributes indicate that // the variable is authenticated. return false, ErrVarPermission } if err := removeVarFile(path); err != nil { switch { case errors.Is(err, os.ErrNotExist): // It's not an error if the variable doesn't exist. return false, nil case inodeMayBeImmutable(err): // Try again return true, transformEfivarfsError(err) default: // Don't try again return false, transformEfivarfsError(err) } } return false, nil } flags := os.O_WRONLY | os.O_CREATE if attrs&AttributeAppendWrite != 0 { flags |= os.O_APPEND } w, err := openVarFile(path, flags, 0644) switch { case inodeMayBeImmutable(err): // Try again return true, transformEfivarfsError(err) case err != nil: // Don't try again return false, transformEfivarfsError(err) } defer w.Close() var buf bytes.Buffer binary.Write(&buf, binary.LittleEndian, attrs) buf.Write(data) _, err = buf.WriteTo(w) return false, transformEfivarfsError(err) } type efivarfsVarsBackend struct{} func (v efivarfsVarsBackend) Get(name string, guid GUID) (VariableAttributes, []byte, error) { path := filepath.Join(efivarfsPath(), fmt.Sprintf("%s-%s", name, guid)) f, err := openVarFile(path, os.O_RDONLY, 0) if err != nil { return 0, nil, transformEfivarfsError(err) } defer f.Close() // Read the entire payload in a single read, as that's how // GetVariable works and is the only way the kernel can obtain // the variable contents. If we perform multiple reads, the // kernel still has to obtain the entire variable contents // each time. To do this, we need to know the size of the variable // contents, which we can obtain from the inode. fi, err := f.Stat() if err != nil { return 0, nil, err } if fi.Size() < 4 { return 0, nil, ErrVarNotExist } buf := make([]byte, fi.Size()) if _, err := f.Read(buf); err != nil { return 0, nil, transformEfivarfsError(err) } return VariableAttributes(binary.LittleEndian.Uint32(buf)), buf[4:], nil } func (v efivarfsVarsBackend) Set(name string, guid GUID, attrs VariableAttributes, data []byte) error { path := filepath.Join(efivarfsPath(), fmt.Sprintf("%s-%s", name, guid)) return maybeRetry(4, func() (bool, error) { return writeEfivarfsFile(path, attrs, data) }) } func (v efivarfsVarsBackend) List() ([]VariableDescriptor, error) { f, err := openVarFile(efivarfsPath(), os.O_RDONLY, 0) switch { case errors.Is(err, os.ErrNotExist): return nil, ErrVarsUnavailable case err != nil: return nil, transformEfivarfsError(err) } defer f.Close() dirents, err := f.Readdir(-1) if err != nil { return nil, err } var entries []VariableDescriptor for _, dirent := range dirents { if !dirent.Mode().IsRegular() { // Skip non-regular files continue } if len(dirent.Name()) < guidLength+1 { // Skip files with a basename that isn't long enough // to contain a GUID and a hyphen continue } if dirent.Name()[len(dirent.Name())-guidLength-1] != '-' { // Skip files where the basename doesn't contain a // hyphen between the name and GUID continue } if dirent.Size() == 0 { // Skip files with zero size. These are variables that // have been deleted by writing an empty payload continue } name := dirent.Name()[:len(dirent.Name())-guidLength-1] guid, err := DecodeGUIDString(dirent.Name()[len(name)+1:]) if err != nil { continue } entries = append(entries, VariableDescriptor{Name: name, GUID: guid}) } return entries, nil } func addDefaultVarsBackend(ctx context.Context) context.Context { if !probeEfivarfs() { return withVarsBackend(ctx, nullVarsBackend{}) } return withVarsBackend(ctx, efivarfsVarsBackend{}) } ./github.com/canonical/go-efilib/vars_null.go0000664000000000000000000000045100000000000016263 0ustar00// Copyright 2020-2021 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. //go:build !linux package efi import "context" func addDefaultVarsBackend(ctx context.Context) context.Context { return withVarsBackend(ctx, nullVarsBackend{}) } ./github.com/canonical/go-efilib/wincert.go0000664000000000000000000005257200000000000015744 0ustar00// Copyright 2020 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package efi import ( "bytes" "crypto" "crypto/x509" "crypto/x509/pkix" "encoding/asn1" "encoding/binary" "errors" "fmt" "io" "golang.org/x/crypto/cryptobyte" cryptobyte_asn1 "golang.org/x/crypto/cryptobyte/asn1" "github.com/canonical/go-efilib/internal/ioerr" "github.com/canonical/go-efilib/internal/pkcs7" "github.com/canonical/go-efilib/internal/uefi" ) var ( oidSHA256 = asn1.ObjectIdentifier{2, 16, 840, 1, 101, 3, 4, 2, 1} oidSpcIndirectData = asn1.ObjectIdentifier{1, 3, 6, 1, 4, 1, 311, 2, 1, 4} oidSpcPeImageDataobj = asn1.ObjectIdentifier{1, 3, 6, 1, 4, 1, 311, 2, 1, 15} ) func readAlgorithmIdentifier(der cryptobyte.String) (*pkix.AlgorithmIdentifier, error) { if !der.ReadASN1(&der, cryptobyte_asn1.SEQUENCE) { return nil, errors.New("malformed input") } ai := new(pkix.AlgorithmIdentifier) if !der.ReadASN1ObjectIdentifier(&ai.Algorithm) { return nil, errors.New("malformed algorithm") } if der.Empty() { return ai, nil } var paramsBytes cryptobyte.String var paramsTag cryptobyte_asn1.Tag if !der.ReadAnyASN1Element(¶msBytes, ¶msTag) { return nil, errors.New("malformed parameters") } ai.Parameters.Class = int(paramsTag & 0xc0) ai.Parameters.Tag = int(paramsTag & 0x1f) if paramsTag&0x20 != 0 { ai.Parameters.IsCompound = true } ai.Parameters.FullBytes = paramsBytes paramsBytes.ReadASN1((*cryptobyte.String)(&ai.Parameters.Bytes), paramsTag) return ai, nil } type spcPeImageData struct { flags asn1.BitString // file spcLink } func readSpcPeImageData(der cryptobyte.String) (*spcPeImageData, error) { if !der.ReadASN1(&der, cryptobyte_asn1.SEQUENCE) { return nil, errors.New("malformed input") } data := new(spcPeImageData) if !der.ReadASN1BitString(&data.flags) { return nil, errors.New("malformed flags") } return data, nil } type digestInfo struct { digestAlgorithm pkix.AlgorithmIdentifier digest []byte } func readDigestInfo(der cryptobyte.String) (*digestInfo, error) { if !der.ReadASN1(&der, cryptobyte_asn1.SEQUENCE) { return nil, errors.New("malformed input") } di := new(digestInfo) var daRaw cryptobyte.String if !der.ReadASN1Element(&daRaw, cryptobyte_asn1.SEQUENCE) { return nil, errors.New("malformed digestAlgorithm") } da, err := readAlgorithmIdentifier(daRaw) if err != nil { return nil, fmt.Errorf("cannot read digestAlgorithm: %w", err) } di.digestAlgorithm = *da if !der.ReadASN1((*cryptobyte.String)(&di.digest), cryptobyte_asn1.OCTET_STRING) { return nil, errors.New("malformed digest") } return di, nil } type spcAttributeTypeAndOptionalValue struct { attrType asn1.ObjectIdentifier valueRaw cryptobyte.String } func readSpcAttributeTypeAndOptionalValue(der cryptobyte.String) (*spcAttributeTypeAndOptionalValue, error) { if !der.ReadASN1(&der, cryptobyte_asn1.SEQUENCE) { return nil, errors.New("malformed input") } data := new(spcAttributeTypeAndOptionalValue) if !der.ReadASN1ObjectIdentifier(&data.attrType) { return nil, errors.New("malformed type") } if der.Empty() { return data, nil } // This is weird - the spec documents this field with: // value [0] EXPLICIT ANY OPTIONAL // // It's not explicit though - the underlying SpcPeImageData structure // doesn't have another tag. The tag in public signatures is actually // just a universal sequence tag. I think this should really // be: // value ANY DEFINED BY type OPTIONAL if !der.ReadAnyASN1Element(&data.valueRaw, nil) { return nil, errors.New("malformed value") } return data, nil } type spcIndirectDataContent struct { data spcAttributeTypeAndOptionalValue messageDigest digestInfo } func readSpcIndirectDataContent(der cryptobyte.String) (*spcIndirectDataContent, error) { if !der.ReadASN1(&der, cryptobyte_asn1.SEQUENCE) { return nil, errors.New("malformed input") } idc := new(spcIndirectDataContent) var dataRaw cryptobyte.String if !der.ReadASN1Element(&dataRaw, cryptobyte_asn1.SEQUENCE) { return nil, errors.New("malformed data") } data, err := readSpcAttributeTypeAndOptionalValue(dataRaw) if err != nil { return nil, fmt.Errorf("cannot read data: %w", err) } idc.data = *data var mdRaw cryptobyte.String if !der.ReadASN1Element(&mdRaw, cryptobyte_asn1.SEQUENCE) { return nil, errors.New("malformed messageDigest") } md, err := readDigestInfo(mdRaw) if err != nil { return nil, fmt.Errorf("cannot read messageDigest: %w", err) } idc.messageDigest = *md return idc, nil } type authenticodeContent struct { digestAlgorithm asn1.ObjectIdentifier flags asn1.BitString digest []byte } func unmarshalAuthenticodeContent(data []byte) (*authenticodeContent, error) { idc, err := readSpcIndirectDataContent(cryptobyte.String(data)) if err != nil { return nil, fmt.Errorf("cannot read SpcIndirectDataContent: %w", err) } if !idc.data.attrType.Equal(oidSpcPeImageDataobj) { return nil, errors.New("not a PE image data object") } peData, err := readSpcPeImageData(idc.data.valueRaw) if err != nil { return nil, fmt.Errorf("cannot read spcPeImageData: %w", err) } return &authenticodeContent{ digestAlgorithm: idc.messageDigest.digestAlgorithm.Algorithm, flags: peData.flags, digest: idc.messageDigest.digest}, nil } // type X509CertID represents the identity of a X.509 certificate. type X509CertID interface { RawSubject() []byte // The encoded subject SubjectKeyId() []byte // The subject key ID PublicKeyAlgorithm() x509.PublicKeyAlgorithm // The certificate's public key algorithm RawIssuer() []byte // The encoded issuer AuthorityKeyId() []byte // The authority key ID SignatureAlgorithm() x509.SignatureAlgorithm // The algorithm the issuer used to sign the certificate } type x509CertId struct { cert *x509.Certificate } // NewX509CertIDFromCertificate returns a new X509CertID from the // supplied certificate. func NewX509CertIDFromCertificate(cert *x509.Certificate) X509CertID { return &x509CertId{cert: cert} } func (id *x509CertId) RawSubject() []byte { return id.cert.RawSubject } func (id *x509CertId) SubjectKeyId() []byte { return id.cert.SubjectKeyId } func (id *x509CertId) PublicKeyAlgorithm() x509.PublicKeyAlgorithm { return id.cert.PublicKeyAlgorithm } func (id *x509CertId) RawIssuer() []byte { return id.cert.RawIssuer } func (id *x509CertId) AuthorityKeyId() []byte { return id.cert.AuthorityKeyId } func (id *x509CertId) SignatureAlgorithm() x509.SignatureAlgorithm { return id.cert.SignatureAlgorithm } func certLikelyIssued(issuer, subject X509CertID) bool { if !bytes.Equal(issuer.RawSubject(), subject.RawIssuer()) { return false } if !bytes.Equal(issuer.SubjectKeyId(), subject.AuthorityKeyId()) { // XXX: this ignores the issuer and serial number fields // of the akid extension, although crypto/x509 doesn't // expose this - we'd have to parse it ourselves. return false } switch issuer.PublicKeyAlgorithm() { case x509.RSA: switch subject.SignatureAlgorithm() { case x509.SHA1WithRSA, x509.SHA256WithRSA, x509.SHA384WithRSA, x509.SHA512WithRSA: return true case x509.SHA256WithRSAPSS, x509.SHA384WithRSAPSS, x509.SHA512WithRSAPSS: return true default: return false } case x509.ECDSA: switch subject.SignatureAlgorithm() { case x509.ECDSAWithSHA1, x509.ECDSAWithSHA256, x509.ECDSAWithSHA384, x509.ECDSAWithSHA512: return true default: return false } case x509.Ed25519: switch subject.SignatureAlgorithm() { case x509.PureEd25519: return true default: return false } default: return false } } func isSelfSignedCert(cert X509CertID) bool { return certLikelyIssued(cert, cert) } func certsMatch(x, y X509CertID) bool { return bytes.Equal(x.RawSubject(), y.RawSubject()) && bytes.Equal(x.SubjectKeyId(), y.SubjectKeyId()) && x.SignatureAlgorithm() == y.SignatureAlgorithm() && bytes.Equal(x.RawIssuer(), y.RawIssuer()) && bytes.Equal(x.AuthorityKeyId(), y.AuthorityKeyId()) && x.PublicKeyAlgorithm() == y.PublicKeyAlgorithm() } func buildCertChains(trusted X509CertID, untrusted []*x509.Certificate, chain []X509CertID, depth *int) (chains [][]X509CertID) { removeCert := func(certs []*x509.Certificate, x *x509.Certificate) []*x509.Certificate { var newCerts []*x509.Certificate for _, cert := range certs { if cert == x { continue } newCerts = append(newCerts, cert) } return newCerts } if depth == nil { depth = new(int) } *depth++ if *depth > 100 { return nil } current := chain[len(chain)-1] if !isSelfSignedCert(current) { // for certificates that aren't self-signed: // check the list of untrusted certs first for _, x := range untrusted { xid := NewX509CertIDFromCertificate(x) if !certLikelyIssued(xid, current) { continue } // try to build chains with this untrusted cert chains = append(chains, buildCertChains(trusted, removeCert(untrusted, x), append(chain, xid), depth)...) } // check the trust anchor if certLikelyIssued(trusted, current) { // we have a complete chain chains = append(chains, append(chain, trusted)) } } // If we have no chains, check if the current certificate is the // trust anchor. This handles the case where the leaf certificate // is the trust anchor. We should only reach this condition at // depth==1. Checking that there are no chains before comparing // is an optimization because if there are then we know that // current != trusted. if len(chains) == 0 && certsMatch(trusted, current) { chains = append(chains, chain) } return chains } type WinCertificateType uint16 const ( // WinCertificateTypeAuthenticode indicates that a WinCertificate // is an authenticode signature and is implemented by the // *WinCertificateAuthenticode type. WinCertificateTypeAuthenticode WinCertificateType = uefi.WIN_CERT_TYPE_PKCS_SIGNED_DATA // WinCertificatePKCS1v15 indicates that a WinCertificate is a // PKCS#1-v1.5 encoded RSA2048 signature and is implemented by // the *WinCertificatePKCS1v15 type. WinCertificateTypePKCS1v15 WinCertificateType = uefi.WIN_CERT_TYPE_EFI_PKCS115 // WinCertificateTypeGUID indicates that a WinCertificate is a // signature of a type indicated by a separate GUID and is implemented // by a type that implements the WinCertificateGUID interface. WinCertificateTypeGUID WinCertificateType = uefi.WIN_CERT_TYPE_EFI_GUID ) // WinCertificate is an interface type corresponding to implementations of WIN_CERTIFICATE. type WinCertificate interface { Type() WinCertificateType // Type of this certificate } // WinCertificatePKCS1v15 corresponds to the WIN_CERTIFICATE_EFI_PKCS1_15 type // and represents a RSA2048 signature with PKCS#1 v1.5 padding. type WinCertificatePKCS1v15 struct { HashAlgorithm crypto.Hash Signature [256]byte } // Type implements [WinCertificate.Type]. func (c *WinCertificatePKCS1v15) Type() WinCertificateType { return WinCertificateTypePKCS1v15 } // WinCertificateGUID corresponds to implementations of WIN_CERTIFICATE_UEFI_GUID. type WinCertificateGUID interface { WinCertificate GUIDType() GUID } func newWinCertificateGUID(cert *uefi.WIN_CERTIFICATE_UEFI_GUID) (WinCertificateGUID, error) { switch cert.CertType { case uefi.EFI_CERT_TYPE_RSA2048_SHA256_GUID: if len(cert.CertData) != binary.Size(WinCertificateGUIDPKCS1v15{}) { return nil, errors.New("invalid length for WIN_CERTIFICATE_UEFI_GUID with EFI_CERT_TYPE_RSA2048_SHA256_GUID type") } c := new(WinCertificateGUIDPKCS1v15) binary.Read(bytes.NewReader(cert.CertData), binary.LittleEndian, &c) return c, nil case uefi.EFI_CERT_TYPE_PKCS7_GUID: p7, err := pkcs7.UnmarshalSignedData(cert.CertData) if err != nil { return nil, fmt.Errorf("cannot decode payload for WIN_CERTIFICATE_UEFI_GUID with EFI_CERT_TYPE_PKCS7_GUID type: %w", err) } return &WinCertificatePKCS7{p7: p7}, nil default: return &WinCertificateGUIDUnknown{ unknownGUIDType: GUID(cert.CertType), Data: cert.CertData, }, nil } } // WinCertificateGUIDUnknown corresponds to a WIN_CERTIFICATE_UEFI_GUID with // an unknown type. type WinCertificateGUIDUnknown struct { unknownGUIDType GUID Data []byte } // Type implements [WinCertificate.Type]. func (c *WinCertificateGUIDUnknown) Type() WinCertificateType { return WinCertificateTypeGUID } // GUIDType implements [WinCertificateGUID.GUIDType]. func (c *WinCertificateGUIDUnknown) GUIDType() GUID { return c.unknownGUIDType } // WinCertificateGUIDPKCS1v15 corresponds to a WIN_CERTIFICATE_UEFI_GUID with // the EFI_CERT_TYPE_RSA2048_SHA256_GUID type, and represents a RSA2048 SHA256 // signature with PKCS#1 v1.5 padding type WinCertificateGUIDPKCS1v15 struct { PublicKey [256]byte Signature [256]byte } // Type implements [WinCertificate.Type]. func (c *WinCertificateGUIDPKCS1v15) Type() WinCertificateType { return WinCertificateTypeGUID } // GUIDType implements [WinCertificateGUID.GUIDType]. func (c *WinCertificateGUIDPKCS1v15) GUIDType() GUID { return CertTypeRSA2048SHA256Guid } // WinCertificatePKCS7 corresponds to a WIN_CERTIFICATE_UEFI_GUID with // the EFI_CERT_TYPE_PKCS7_GUID type, and represents a detached PKCS7 // signature. type WinCertificatePKCS7 struct { p7 *pkcs7.SignedData } // Type implements [WinCertificate.Type]. func (c *WinCertificatePKCS7) Type() WinCertificateType { return WinCertificateTypeGUID } // GUIDType implements [WinCertificateGUID.GUIDType]. func (c *WinCertificatePKCS7) GUIDType() GUID { return CertTypePKCS7Guid } // GetSigners returns the signing certificates. func (c *WinCertificatePKCS7) GetSigners() []*x509.Certificate { return c.p7.GetSigners() } // CertWithIDLikelyTrustAnchor determines if the specified certificate is likely to // be a trust anchor for this signature. This is "likely" because it only checks if // there are candidate certificate chains rooted to the specified certificate. // When attempting to build candidate certificate chains, it considers a certificate // to be likely issued by another certificate if: // - The certificate's issuer matches the issuer's subject. // - The certificate's Authority Key Identifier keyIdentifier field matches the // issuer's Subject Key Identifier. // - The certificate's signature algorithm is compatible with the issuer's public // key algorithm. // // It performs no verification of any candidate certificate chains and no verification // of the signature. func (c *WinCertificatePKCS7) CertWithIDLikelyTrustAnchor(cert X509CertID) bool { for _, s := range c.GetSigners() { if len(buildCertChains(cert, c.p7.Certificates, []X509CertID{NewX509CertIDFromCertificate(s)}, nil)) == 0 { return false } } return true } // CertLikelyTrustAnchor determines if the specified certificate is likely to be // a trust anchor for this signature. This is "likely" because it only checks if // there are candidate certificate chains rooted to the specified certificate. // When attempting to build candidate certificate chains, it considers a certificate // to be likely issued by another certificate if: // - The certificate's issuer matches the issuer's subject. // - The certificate's Authority Key Identifier keyIdentifier field matches the // issuer's Subject Key Identifier. // - The certificate's signature algorithm is compatible with the issuer's public // key algorithm. // // It performs no verification of any candidate certificate chains and no verification // of the signature. // // Deprecate: use [CertWithIDLikelyTrustAnchor]. func (c *WinCertificatePKCS7) CertLikelyTrustAnchor(cert *x509.Certificate) bool { return c.CertWithIDLikelyTrustAnchor(NewX509CertIDFromCertificate(cert)) } // WinCertificateAuthenticode corresponds to a WIN_CERTIFICATE_EFI_PKCS and // represents an Authenticode signature. type WinCertificateAuthenticode struct { p7 *pkcs7.SignedData authenticode *authenticodeContent } // Type implements [WinCertificate.Type]. func (c *WinCertificateAuthenticode) Type() WinCertificateType { return WinCertificateTypeAuthenticode } // GetSigner returns the signing certificate. func (c *WinCertificateAuthenticode) GetSigner() *x509.Certificate { return c.p7.GetSigners()[0] } // CertWithIDLikelyTrustAnchor determines if the specified certificate is likely to // be a trust anchor for this signature. This is "likely" because it only checks if // there are candidate certificate chains rooted to the specified certificate. // When attempting to build candidate certificate chains, it considers a certificate // to be likely issued by another certificate if: // - The certificate's issuer matches the issuer's subject. // - The certificate's Authority Key Identifier keyIdentifier field matches the // issuer's Subject Key Identifier. // - The certificate's signature algorithm is compatible with the issuer's public // key algorithm. // // It performs no verification of any candidate certificate chains and no verification // of the signature. func (c *WinCertificateAuthenticode) CertWithIDLikelyTrustAnchor(cert X509CertID) bool { return len(buildCertChains(cert, c.p7.Certificates, []X509CertID{NewX509CertIDFromCertificate(c.GetSigner())}, nil)) > 0 } // CertLikelyTrustAnchor determines if the specified certificate is likely to be // a trust anchor for this signature. This is "likely" because it only checks if // there are candidate certificate chains rooted to the specified certificate. // When attempting to build candidate certificate chains, it considers a certificate // to be likely issued by another certificate if: // - The certificate's issuer matches the issuer's subject. // - The certificate's Authority Key Identifier keyIdentifier field matches the // issuer's Subject Key Identifier. // - The certificate's signature algorithm is compatible with the issuer's public // key algorithm. // // It performs no verification of any candidate certificate chains and no verification // of the signature. // // Deprecated: use [CertWithIDLikelyTrustAnchor]. func (c *WinCertificateAuthenticode) CertLikelyTrustAnchor(cert *x509.Certificate) bool { return c.CertWithIDLikelyTrustAnchor(NewX509CertIDFromCertificate(cert)) } func (c *WinCertificateAuthenticode) DigestAlgorithm() crypto.Hash { switch { case c.authenticode.digestAlgorithm.Equal(oidSHA256): return crypto.SHA256 default: return crypto.Hash(0) } } // Digest returns the PE image digest of the image associated with this // signature. func (c *WinCertificateAuthenticode) Digest() []byte { return c.authenticode.digest } func digestAlgorithmIdToCryptoHash(id GUID) (crypto.Hash, error) { switch id { case HashAlgorithmSHA1Guid: return crypto.SHA1, nil case HashAlgorithmSHA256Guid: return crypto.SHA256, nil case HashAlgorithmSHA224Guid: return crypto.SHA224, nil case HashAlgorithmSHA384Guid: return crypto.SHA384, nil case HashAlgorithmSHA512Guid: return crypto.SHA512, nil default: return crypto.Hash(0), errors.New("unrecognized digest") } } // ReadWinCertificate decodes a signature (something that is confusingly // represented by types with "certificate" in the name in both the UEFI // and PE/COFF specifications) from the supplied reader and returns a // WinCertificate of the appropriate type. The type returned is dependent // on the data, and will be one of *[WinCertificateAuthenticode], // *[WinCertificatePKCS1v15], *[WinCertificatePKCS7] or // *[WinCertificateGUIDPKCS1v15]. func ReadWinCertificate(r io.Reader) (WinCertificate, error) { rHdr := new(bytes.Buffer) rTmp := io.TeeReader(r, rHdr) var hdr uefi.WIN_CERTIFICATE if err := binary.Read(rTmp, binary.LittleEndian, &hdr); err != nil { return nil, ioerr.PassRawEOF("cannot read WIN_CERTIFICATE: %w", err) } mr := io.MultiReader(rHdr, r) switch hdr.CertificateType { case uefi.WIN_CERT_TYPE_PKCS_SIGNED_DATA: cert, err := uefi.Read_WIN_CERTIFICATE_EFI_PKCS(mr) if err != nil { return nil, ioerr.PassRawEOF("cannot read WIN_CERTIFICATE_EFI_PKCS: %w", err) } p7, err := pkcs7.UnmarshalSignedData(cert.CertData) if err != nil { return nil, fmt.Errorf("cannot decode WIN_CERTIFICATE_EFI_PKCS.CertData payload: %w", err) } if len(p7.GetSigners()) != 1 { return nil, errors.New("WIN_CERTIFICATE_EFI_PKCS.CertData PKCS7 content has invalid number of signers") } if !p7.ContentType().Equal(oidSpcIndirectData) { return nil, fmt.Errorf("WIN_CERTIFICATE_EFI_PKCS.CertData PKCS7 content has invalid content type (expected %v)", oidSpcIndirectData) } auth, err := unmarshalAuthenticodeContent(p7.Content()) if err != nil { return nil, fmt.Errorf("cannot decode authenticode content for WIN_CERTIFICATE_EFI_PKCS from PKCS7 contents: %w", err) } return &WinCertificateAuthenticode{ p7: p7, authenticode: auth, }, nil case uefi.WIN_CERT_TYPE_EFI_PKCS115: cert, err := uefi.Read_WIN_CERTIFICATE_EFI_PKCS1_15(mr) if err != nil { return nil, ioerr.PassRawEOF("cannot read WIN_CERTIFICATE_EFI_PKCS1_15: %w", err) } digest, err := digestAlgorithmIdToCryptoHash(GUID(cert.HashAlgorithm)) if err != nil { return nil, fmt.Errorf("cannot determine digest algorithm from WIN_CERTIFICATE_EFI_PKCS1_15.HashAlgorithm: %w", err) } return &WinCertificatePKCS1v15{ HashAlgorithm: digest, Signature: cert.Signature, }, nil case uefi.WIN_CERT_TYPE_EFI_GUID: cert, err := uefi.Read_WIN_CERTIFICATE_UEFI_GUID(mr) if err != nil { return nil, ioerr.PassRawEOF("cannot read WIN_CERTIFICATE_UEFI_GUID: %w", err) } return newWinCertificateGUID(cert) default: return nil, errors.New("unexpected type") } } ./github.com/canonical/go-kbkdf/0000775000000000000000000000000000000000000013556 5ustar00./github.com/canonical/go-kbkdf/LICENSE0000664000000000000000000002150100000000000014562 0ustar00All files in this repository are licensed as follows. If you contribute to this repository, it is assumed that you license your contribution under the same license unless you state otherwise. All files Copyright (C) 2021 Canonical Ltd. unless otherwise specified in the file. This software is licensed under the LGPLv3, included below. As a special exception to the GNU Lesser General Public License version 3 ("LGPL3"), the copyright holders of this Library give you permission to convey to a third party a Combined Work that links statically or dynamically to this Library without providing any Minimal Corresponding Source or Minimal Application Code as set out in 4d or providing the installation information set out in section 4e, provided that you comply with the other provisions of LGPL3 and provided that you meet, for the Application the terms and conditions of the license(s) which apply to the Application. Except as stated in this special exception, the provisions of LGPL3 will continue to comply in full to this Library. If you modify this Library, you may apply this exception to your version of this Library, but you are not obliged to do so. If you do not wish to do so, delete this exception statement from your version. This exception does not (and cannot) modify any license terms which apply to the Application, with which you must still comply. GNU LESSER GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. This version of the GNU Lesser General Public License incorporates the terms and conditions of version 3 of the GNU General Public License, supplemented by the additional permissions listed below. 0. Additional Definitions. As used herein, "this License" refers to version 3 of the GNU Lesser General Public License, and the "GNU GPL" refers to version 3 of the GNU General Public License. "The Library" refers to a covered work governed by this License, other than an Application or a Combined Work as defined below. An "Application" is any work that makes use of an interface provided by the Library, but which is not otherwise based on the Library. Defining a subclass of a class defined by the Library is deemed a mode of using an interface provided by the Library. A "Combined Work" is a work produced by combining or linking an Application with the Library. The particular version of the Library with which the Combined Work was made is also called the "Linked Version". The "Minimal Corresponding Source" for a Combined Work means the Corresponding Source for the Combined Work, excluding any source code for portions of the Combined Work that, considered in isolation, are based on the Application, and not on the Linked Version. The "Corresponding Application Code" for a Combined Work means the object code and/or source code for the Application, including any data and utility programs needed for reproducing the Combined Work from the Application, but excluding the System Libraries of the Combined Work. 1. Exception to Section 3 of the GNU GPL. You may convey a covered work under sections 3 and 4 of this License without being bound by section 3 of the GNU GPL. 2. Conveying Modified Versions. If you modify a copy of the Library, and, in your modifications, a facility refers to a function or data to be supplied by an Application that uses the facility (other than as an argument passed when the facility is invoked), then you may convey a copy of the modified version: a) under this License, provided that you make a good faith effort to ensure that, in the event an Application does not supply the function or data, the facility still operates, and performs whatever part of its purpose remains meaningful, or b) under the GNU GPL, with none of the additional permissions of this License applicable to that copy. 3. Object Code Incorporating Material from Library Header Files. The object code form of an Application may incorporate material from a header file that is part of the Library. You may convey such object code under terms of your choice, provided that, if the incorporated material is not limited to numerical parameters, data structure layouts and accessors, or small macros, inline functions and templates (ten or fewer lines in length), you do both of the following: a) Give prominent notice with each copy of the object code that the Library is used in it and that the Library and its use are covered by this License. b) Accompany the object code with a copy of the GNU GPL and this license document. 4. Combined Works. You may convey a Combined Work under terms of your choice that, taken together, effectively do not restrict modification of the portions of the Library contained in the Combined Work and reverse engineering for debugging such modifications, if you also do each of the following: a) Give prominent notice with each copy of the Combined Work that the Library is used in it and that the Library and its use are covered by this License. b) Accompany the Combined Work with a copy of the GNU GPL and this license document. c) For a Combined Work that displays copyright notices during execution, include the copyright notice for the Library among these notices, as well as a reference directing the user to the copies of the GNU GPL and this license document. d) Do one of the following: 0) Convey the Minimal Corresponding Source under the terms of this License, and the Corresponding Application Code in a form suitable for, and under terms that permit, the user to recombine or relink the Application with a modified version of the Linked Version to produce a modified Combined Work, in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source. 1) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (a) uses at run time a copy of the Library already present on the user's computer system, and (b) will operate properly with a modified version of the Library that is interface-compatible with the Linked Version. e) Provide Installation Information, but only if you would otherwise be required to provide such information under section 6 of the GNU GPL, and only to the extent that such information is necessary to install and execute a modified version of the Combined Work produced by recombining or relinking the Application with a modified version of the Linked Version. (If you use option 4d0, the Installation Information must accompany the Minimal Corresponding Source and Corresponding Application Code. If you use option 4d1, you must provide the Installation Information in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.) 5. Combined Libraries. You may place library facilities that are a work based on the Library side by side in a single library together with other library facilities that are not Applications and are not covered by this License, and convey such a combined library under terms of your choice, if you do both of the following: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities, conveyed under the terms of this License. b) Give prominent notice with the combined library that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 6. Revised Versions of the GNU Lesser General Public License. The Free Software Foundation may publish revised and/or new versions of the GNU Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library as you received it specifies that a certain numbered version of the GNU Lesser General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that published version or of any later version published by the Free Software Foundation. If the Library as you received it does not specify a version number of the GNU Lesser General Public License, you may choose any version of the GNU Lesser General Public License ever published by the Free Software Foundation. If the Library as you received it specifies that a proxy can decide whether future versions of the GNU Lesser General Public License shall apply, that proxy's public statement of acceptance of any version is permanent authorization for you to choose that version for the Library. ./github.com/canonical/go-kbkdf/README.md0000664000000000000000000000246100000000000015040 0ustar00[![Tests](https://github.com/canonical/go-kbkdf/workflows/Tests/badge.svg)](https://github.com/canonical/go-kbkdf/actions?query=workflow%3ATests) [![GoDoc](https://godoc.org/github.com/canonical/go-kbkdf?status.svg)](https://godoc.org/github.com/canonical/go-kbkdf) # Description This package implements the key derivation functions defined in [NIST SP800-108](https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-108.pdf). It implements the 3 modes specified: - Counter mode - Feedback mode (with or without iteration counter) - Double-Pipeline mode (with or without iteration counter) It includes a sub-package implementing various HMAC based pseudo-random functions. The counter mode KDF with HMAC based PRF is used in the [TPM 2.0 Reference Library specification](https://trustedcomputinggroup.org/resource/tpm-library-specification/) and consumed by the [Go TPM2 package](https://github.com/canonical/go-tpm2/) # Unit testing The included unit tests are automatically generated based on the [CAVP test vectors supplied by NIST](https://csrc.nist.gov/projects/cryptographic-algorithm-validation-program/key-derivation), which means that they test the correctness of the key derivation functions against the [specification](https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-108.pdf). ./github.com/canonical/go-kbkdf/hmac_prf/0000775000000000000000000000000000000000000015335 5ustar00./github.com/canonical/go-kbkdf/hmac_prf/prf.go0000664000000000000000000000242100000000000016452 0ustar00// Copyright 2021 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. /* Package hmac_prf implements HMAC based pseudo-random functions (PRFs). These can be used by the key derivation functions described in NIST SP-800-108. Note that the application must ensure that the required digest algorithm is imported into the final binary. The package does not do that. */ package hmac_prf import ( "crypto" "crypto/hmac" "github.com/canonical/go-kbkdf" ) type prf crypto.Hash func (p prf) Size() uint32 { return uint32(crypto.Hash(p).Size()) } func (p prf) Run(s, x []byte) []byte { h := hmac.New(crypto.Hash(p).New, s) h.Write(x) return h.Sum(nil) } // From creates a PRF from the supplied digest algorithm. func From(alg crypto.Hash) kbkdf.PRF { return prf(alg) } var ( // SHA1 is a HMAC-SHA1 PRF SHA1 = prf(crypto.SHA1) // SHA224 is a HMAC-SHA224 PRF SHA224 = prf(crypto.SHA224) // SHA256 is a HMAC-SHA256 PRF SHA256 = prf(crypto.SHA256) // SHA384 is a HMAC-SHA384 PRF SHA384 = prf(crypto.SHA384) // SHA512 is a HMAC-SHA512 PRF SHA512 = prf(crypto.SHA512) // SHA512_224 is a HMAC-SHA512/224 PRF SHA512_224 = prf(crypto.SHA512_224) // SHA512_256 is a HMAC-SHA512/256 PRF SHA512_256 = prf(crypto.SHA512_256) ) ./github.com/canonical/go-kbkdf/kdf.go0000664000000000000000000000730300000000000014654 0ustar00// Copyright 2021 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. /* Package kbkdf implements the key derivation functions described in NIST SP-800-108. All 3 modes are implemented - counter, feedback and pipeline. The counter mode is used extensively in the reference TPM implementation. */ package kbkdf import ( "bytes" "encoding/binary" ) func fixedBytes(label, context []byte, bitLength uint32) []byte { var res bytes.Buffer res.Write(label) res.Write([]byte{0}) res.Write(context) binary.Write(&res, binary.BigEndian, bitLength) return res.Bytes() } func commonKDF(prfLen uint32, bitLength uint32, fn func(uint32) []byte) []byte { n := (bitLength + prfLen - 1) / prfLen // The number of iterations required var res bytes.Buffer for i := uint32(1); i <= n; i++ { res.Write(fn(i)) } return res.Bytes()[:(bitLength+7)/8] } func counterModeKeyInternal(prf PRF, key, fixed []byte, bitLength uint32) []byte { return commonKDF(prf.Size(), bitLength, func(i uint32) []byte { var x bytes.Buffer binary.Write(&x, binary.BigEndian, i) x.Write(fixed) return prf.Run(key, x.Bytes()) }) } // CounterModeKey derives a key of the specified length using the counter mode // function described in NIST SP-800-108, using the supplied PRF, secret key and // other input parameters. func CounterModeKey(prf PRF, key, label, context []byte, bitLength uint32) []byte { return counterModeKeyInternal(prf, key, fixedBytes(label, context, bitLength), bitLength) } // IterationCounterMode defines whether the iteration counter is included // in the feedback and double-pipeline KDFs type IterationCounterMode bool const ( OmitIterationCounter IterationCounterMode = false IncludeIterationCounter IterationCounterMode = true ) func feedbackModeKeyInternal(prf PRF, key, fixed, iv []byte, bitLength uint32, iterationCounterMode IterationCounterMode) []byte { k := iv return commonKDF(prf.Size(), bitLength, func(i uint32) []byte { var x bytes.Buffer x.Write(k) if iterationCounterMode == IncludeIterationCounter { binary.Write(&x, binary.BigEndian, i) } x.Write(fixed) k = prf.Run(key, x.Bytes()) return k }) } // FeebackModeKey derives a key of the specified length using the feedback mode // function described in NIST SP-800-108, using the supplied PRF, secret key and // other input parameters. // // The iterationCounterMode argument specifies whether the iteration counter should be // included as an input to the PRF. func FeedbackModeKey(prf PRF, key, label, context, iv []byte, bitLength uint32, iterationCounterMode IterationCounterMode) []byte { return feedbackModeKeyInternal(prf, key, fixedBytes(label, context, bitLength), iv, bitLength, iterationCounterMode) } func pipelineModeKeyInternal(prf PRF, key, fixed []byte, bitLength uint32, iterationCounterMode IterationCounterMode) []byte { a := fixed return commonKDF(prf.Size(), bitLength, func(i uint32) []byte { a = prf.Run(key, a) var x bytes.Buffer x.Write(a) if iterationCounterMode == IncludeIterationCounter { binary.Write(&x, binary.BigEndian, i) } x.Write(fixed) return prf.Run(key, x.Bytes()) }) } // PipelineModeKey derives a key of the specified length using the double-pipeline // iteration mode function described in NIST SP-800-108, using the supplied PRF, // secret key and other input parameters. // // The iterationCounterMode argument specifies whether the iteration counter should be // included as an input to the PRF. func PipelineModeKey(prf PRF, key, label, context []byte, bitLength uint32, iterationCounterMode IterationCounterMode) []byte { return pipelineModeKeyInternal(prf, key, fixedBytes(label, context, bitLength), bitLength, iterationCounterMode) } ./github.com/canonical/go-kbkdf/prf.go0000664000000000000000000000054700000000000014702 0ustar00// Copyright 2021 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package kbkdf // PRF represents a pseudorandom function. type PRF interface { // Size returns the output length of this PRF. Size() uint32 // Run computes bytes for the supplied seed and input value. Run(s, x []byte) []byte } ./github.com/canonical/go-password-validator/0000775000000000000000000000000000000000000016322 5ustar00./github.com/canonical/go-password-validator/LICENSE0000664000000000000000000000205400000000000017330 0ustar00MIT License Copyright (c) 2020 Lane Wagner Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ./github.com/canonical/go-password-validator/Makefile0000664000000000000000000000061300000000000017762 0ustar00test: go test ./... fmt: go fmt ./... vet: go vet ./... install-lint: GO111MODULE=off go get -u golang.org/x/lint/golint GO111MODULE=off go list -f {{.Target}} golang.org/x/lint/golint lint: go list ./... | grep -v /vendor/ | xargs -L1 golint -set_exit_status install-staticcheck: GO111MODULE=off go get honnef.co/go/tools/cmd/staticcheck staticcheck: staticcheck -f stylish ./... ./github.com/canonical/go-password-validator/README.md0000664000000000000000000001227500000000000017610 0ustar00# go-password-validator Simple password validator using raw entropy values. Hit the project with a star if you find it useful ⭐ Supported by [Boot.dev](https://boot.dev) [![](https://godoc.org/github.com/wagslane/go-password-validator?status.svg)](https://godoc.org/github.com/wagslane/go-password-validator) ![Deploy](https://github.com/wagslane/go-password-validator/workflows/Tests/badge.svg) [![Mentioned in Awesome Go](https://awesome.re/mentioned-badge.svg)](https://github.com/avelino/awesome-go) This project can be used to front a password strength meter, or simply validate password strength on the server. Benefits: * No stupid rules (doesn't require uppercase, numbers, special characters, etc) * Everything is based on entropy (raw cryptographic strength of the password) * Doesn't load large sets of data into memory - very fast and lightweight * Doesn't contact any API's or external systems * Inspired by this [XKCD](https://xkcd.com/936/) ![XKCD Passwords](https://imgs.xkcd.com/comics/password_strength.png) ## ⚙️ Installation Outside of a Go module: ```bash go get github.com/wagslane/go-password-validator ``` ## 🚀 Quick Start ```go package main import ( passwordvalidator "github.com/wagslane/go-password-validator" ) func main(){ entropy := passwordvalidator.GetEntropy("a longer password") // entropy is a float64, representing the strength in base 2 (bits) const minEntropyBits = 60 err := passwordvalidator.Validate("some password", minEntropyBits) // if the password has enough entropy, err is nil // otherwise, a formatted error message is provided explaining // how to increase the strength of the password // (safe to show to the client) } ``` ## What Entropy Value Should I Use? It's up to you. That said, here is a graph that shows some common timings for different values, somewhere in the 50-70 range seems "reasonable". Keep in mind that attackers likely aren't just brute-forcing passwords, if you want protection against common passwords or [PWNed passwords](https://haveibeenpwned.com/) you'll need to do additional work. This library is lightweight, doesn't load large datasets, and doesn't contact external services. ![entropy](https://external-preview.redd.it/rhdADIZYXJM2FxqNf6UOFqU5ar0VX3fayLFpKspN8uI.png?auto=webp&s=9c142ebb37ed4c39fb6268c1e4f6dc529dcb4282) ## How It Works First, we determine the "base" number. The base is a sum of the different "character sets" found in the password. We've *arbitrarily* chosen the following character sets: * 26 lowercase letters * 26 uppercase letters * 10 digits * 5 replacement characters - `!@$&*` * 5 seperator characters - `_-., ` * 22 less common special characters - `"#%'()+/:;<=>?[\]^{|}~` Using at least one character from each set your base number will be 94: `26+26+10+5+5+22 = 94` Every unique character that doesn't match one of those sets will add `1` to the base. If you only use, for example, lowercase letters and numbers, your base will be 36: `26+10 = 36`. After we have calculated a base, the total number of brute-force-guesses is found using the following formulae: `base^length` A password using base 26 with 7 characters would require `26^7`, or `8031810176` guesses. Once we know the number of guesses it would take, we can calculate the actual entropy in bits using `log2(guesses)`. That calculation is done in log space in practice to avoid numeric overflow. ### Additional Safety We try to err on the side of reporting *less* entropy rather than *more*. #### Same Character With repeated characters like `aaaaaaaaaaaaa`, or `111222`, we modify the length of the sequence to count as no more than `2`. * `aaaa` has length 2 * `111222` has length 4 #### Common Sequences Common sequences of length three or greater count as length `2`. * `12345` has length 2 * `765432` has length 2 * `abc` has length 2 * `qwerty` has length 2 The sequences are checked from back->front and front->back. Here are the sequences we've implemented so far, and they're case-insensitive: * `0123456789` * `qwertyuiop` * `asdfghjkl` * `zxcvbnm` * `abcdefghijklmnopqrstuvwxyz` ## Not ZXCVBN There's another project that has a similar purpose, [zxcvbn](https://github.com/dropbox/zxcvbn), and you may want to check it out as well. Our goal is not to be zxcvbn, because it's already good at what it does. `go-password-validator` doesn't load any large datasets of real-world passwords, we write simple rules to calculate an entropy score. It's up to the user of this library to decide how to use that entropy score, and what scores constitute "secure enough" for their application. ## 💬 Contact [![Twitter Follow](https://img.shields.io/twitter/follow/wagslane.svg?label=Follow%20Wagslane&style=social)](https://twitter.com/intent/follow?screen_name=wagslane) Submit an issue (above in the issues tab) ## Transient Dependencies None! And it will stay that way, except of course for the standard library. ## 👏 Contributing I love help! Contribute by forking the repo and opening pull requests. Please ensure that your code passes the existing tests and linting, and write tests to test your changes if applicable. All pull requests should be submitted to the `main` branch. ```bash make test make fmt make vet make lint ``` ./github.com/canonical/go-password-validator/base.go0000664000000000000000000000271100000000000017564 0ustar00package passwordvalidator import "strings" const ( replaceChars = `!@$&*` sepChars = `_-., ` otherSpecialChars = `"#%'()+/:;<=>?[\]^{|}~` lowerChars = `abcdefghijklmnopqrstuvwxyz` upperChars = `ABCDEFGHIJKLMNOPQRSTUVWXYZ` digitsChars = `0123456789` ) func getBase(password string) int { chars := map[rune]struct{}{} for _, c := range password { chars[c] = struct{}{} } hasReplace := false hasSep := false hasOtherSpecial := false hasLower := false hasUpper := false hasDigits := false base := 0 for c := range chars { switch { case strings.ContainsRune(replaceChars, c): hasReplace = true case strings.ContainsRune(sepChars, c): hasSep = true case strings.ContainsRune(otherSpecialChars, c): hasOtherSpecial = true case strings.ContainsRune(lowerChars, c): hasLower = true case strings.ContainsRune(upperChars, c): hasUpper = true case strings.ContainsRune(digitsChars, c): hasDigits = true default: base++ } } if hasReplace { base += len(replaceChars) } if hasSep { base += len(sepChars) } if hasOtherSpecial { base += len(otherSpecialChars) } if hasLower { base += len(lowerChars) } if hasUpper { base += len(upperChars) } if hasDigits { base += len(digitsChars) } return base } // GetBase returns the estimated total size of the character set the // runes contained in password come from. func GetBase(password string) int { return getBase(password) } ./github.com/canonical/go-password-validator/entropy.go0000664000000000000000000000154400000000000020355 0ustar00package passwordvalidator import ( "math" ) // GetEntropy returns the entropy in bits for the given password // See the ReadMe for more information func GetEntropy(password string) float64 { return getEntropy(password) } func getEntropy(password string) float64 { base := getBase(password) length := getLength(password) // calculate log2(base^length) return logPow(float64(base), length, 2) } func logX(base, n float64) float64 { if base == 0 { return 0 } // change of base formulae return math.Log2(n) / math.Log2(base) } // logPow calculates log_base(x^y) // without leaving logspace for each multiplication step // this makes it take less space in memory func logPow(expBase float64, pow int, logBase float64) float64 { // logb (MN) = logb M + logb N total := 0.0 for i := 0; i < pow; i++ { total += logX(logBase, expBase) } return total } ./github.com/canonical/go-password-validator/length.go0000664000000000000000000000513700000000000020140 0ustar00package passwordvalidator const ( seqNums = "0123456789" seqKeyboard0 = "qwertyuiop" seqKeyboard1 = "asdfghjkl" seqKeyboard2 = "zxcvbnm" seqAlphabet = "abcdefghijklmnopqrstuvwxyz" ) func removeMoreThanTwoFromSequence(s, seq string) string { seqRunes := []rune(seq) runes := []rune(s) matches := 0 for i := 0; i < len(runes); i++ { for j := 0; j < len(seqRunes); j++ { if i >= len(runes) { break } r := runes[i] r2 := seqRunes[j] if r != r2 { matches = 0 continue } // found a match, advance the counter matches++ if matches > 2 { runes = deleteRuneAt(runes, i) } else { i++ } } } return string(runes) } func deleteRuneAt(runes []rune, i int) []rune { if i >= len(runes) || i < 0 { return runes } copy(runes[i:], runes[i+1:]) runes[len(runes)-1] = 0 runes = runes[:len(runes)-1] return runes } func getReversedString(s string) string { n := 0 rune := make([]rune, len(s)) for _, r := range s { rune[n] = r n++ } rune = rune[0:n] // Reverse for i := 0; i < n/2; i++ { rune[i], rune[n-1-i] = rune[n-1-i], rune[i] } // Convert back to UTF-8. return string(rune) } func removeMoreThanTwoRepeatingChars(s string) string { var prevPrev rune var prev rune runes := []rune(s) for i := 0; i < len(runes); i++ { r := runes[i] if r == prev && r == prevPrev { runes = deleteRuneAt(runes, i) i-- } prevPrev = prev prev = r } return string(runes) } func getLength(password string) int { password = removeMoreThanTwoRepeatingChars(password) password = removeMoreThanTwoFromSequence(password, seqNums) password = removeMoreThanTwoFromSequence(password, seqKeyboard0) password = removeMoreThanTwoFromSequence(password, seqKeyboard1) password = removeMoreThanTwoFromSequence(password, seqKeyboard2) password = removeMoreThanTwoFromSequence(password, seqAlphabet) password = removeMoreThanTwoFromSequence(password, getReversedString(seqNums)) password = removeMoreThanTwoFromSequence(password, getReversedString(seqKeyboard0)) password = removeMoreThanTwoFromSequence(password, getReversedString(seqKeyboard1)) password = removeMoreThanTwoFromSequence(password, getReversedString(seqKeyboard2)) password = removeMoreThanTwoFromSequence(password, getReversedString(seqAlphabet)) return len(password) } // GetLength returns the number of runes left in password after // the shortening of: sequence of more than two identical runes, // and sequences of more than two runes from the same "proximity set" // (meaning a set of characters close by on a standard keyboard). func GetLength(password string) int { return getLength(password) } ./github.com/canonical/go-password-validator/validate.go0000664000000000000000000000310100000000000020435 0ustar00package passwordvalidator import ( "errors" "fmt" "strings" ) // Validate returns nil if the password has greater than or // equal to the minimum entropy. If not, an error is returned // that explains how the password can be strengthened. This error // is safe to show the client func Validate(password string, minEntropy float64) error { entropy := getEntropy(password) if entropy >= minEntropy { return nil } hasReplace := false hasSep := false hasOtherSpecial := false hasLower := false hasUpper := false hasDigits := false for _, c := range password { switch { case strings.ContainsRune(replaceChars, c): hasReplace = true case strings.ContainsRune(sepChars, c): hasSep = true case strings.ContainsRune(otherSpecialChars, c): hasOtherSpecial = true case strings.ContainsRune(lowerChars, c): hasLower = true case strings.ContainsRune(upperChars, c): hasUpper = true case strings.ContainsRune(digitsChars, c): hasDigits = true } } allMessages := []string{} if !hasOtherSpecial || !hasSep || !hasReplace { allMessages = append(allMessages, "including more special characters") } if !hasLower { allMessages = append(allMessages, "using lowercase letters") } if !hasUpper { allMessages = append(allMessages, "using uppercase letters") } if !hasDigits { allMessages = append(allMessages, "using numbers") } if len(allMessages) > 0 { return fmt.Errorf( "insecure password, try %v or using a longer password", strings.Join(allMessages, ", "), ) } return errors.New("insecure password, try using a longer password") } ./github.com/canonical/go-sp800.90a-drbg/0000775000000000000000000000000000000000000014653 5ustar00./github.com/canonical/go-sp800.90a-drbg/.gitignore0000664000000000000000000000001200000000000016634 0ustar00vendor/*/ ./github.com/canonical/go-sp800.90a-drbg/LICENSE0000664000000000000000000002150100000000000015657 0ustar00All files in this repository are licensed as follows. If you contribute to this repository, it is assumed that you license your contribution under the same license unless you state otherwise. All files Copyright (C) 2021 Canonical Ltd. unless otherwise specified in the file. This software is licensed under the LGPLv3, included below. As a special exception to the GNU Lesser General Public License version 3 ("LGPL3"), the copyright holders of this Library give you permission to convey to a third party a Combined Work that links statically or dynamically to this Library without providing any Minimal Corresponding Source or Minimal Application Code as set out in 4d or providing the installation information set out in section 4e, provided that you comply with the other provisions of LGPL3 and provided that you meet, for the Application the terms and conditions of the license(s) which apply to the Application. Except as stated in this special exception, the provisions of LGPL3 will continue to comply in full to this Library. If you modify this Library, you may apply this exception to your version of this Library, but you are not obliged to do so. If you do not wish to do so, delete this exception statement from your version. This exception does not (and cannot) modify any license terms which apply to the Application, with which you must still comply. GNU LESSER GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. This version of the GNU Lesser General Public License incorporates the terms and conditions of version 3 of the GNU General Public License, supplemented by the additional permissions listed below. 0. Additional Definitions. As used herein, "this License" refers to version 3 of the GNU Lesser General Public License, and the "GNU GPL" refers to version 3 of the GNU General Public License. "The Library" refers to a covered work governed by this License, other than an Application or a Combined Work as defined below. An "Application" is any work that makes use of an interface provided by the Library, but which is not otherwise based on the Library. Defining a subclass of a class defined by the Library is deemed a mode of using an interface provided by the Library. A "Combined Work" is a work produced by combining or linking an Application with the Library. The particular version of the Library with which the Combined Work was made is also called the "Linked Version". The "Minimal Corresponding Source" for a Combined Work means the Corresponding Source for the Combined Work, excluding any source code for portions of the Combined Work that, considered in isolation, are based on the Application, and not on the Linked Version. The "Corresponding Application Code" for a Combined Work means the object code and/or source code for the Application, including any data and utility programs needed for reproducing the Combined Work from the Application, but excluding the System Libraries of the Combined Work. 1. Exception to Section 3 of the GNU GPL. You may convey a covered work under sections 3 and 4 of this License without being bound by section 3 of the GNU GPL. 2. Conveying Modified Versions. If you modify a copy of the Library, and, in your modifications, a facility refers to a function or data to be supplied by an Application that uses the facility (other than as an argument passed when the facility is invoked), then you may convey a copy of the modified version: a) under this License, provided that you make a good faith effort to ensure that, in the event an Application does not supply the function or data, the facility still operates, and performs whatever part of its purpose remains meaningful, or b) under the GNU GPL, with none of the additional permissions of this License applicable to that copy. 3. Object Code Incorporating Material from Library Header Files. The object code form of an Application may incorporate material from a header file that is part of the Library. You may convey such object code under terms of your choice, provided that, if the incorporated material is not limited to numerical parameters, data structure layouts and accessors, or small macros, inline functions and templates (ten or fewer lines in length), you do both of the following: a) Give prominent notice with each copy of the object code that the Library is used in it and that the Library and its use are covered by this License. b) Accompany the object code with a copy of the GNU GPL and this license document. 4. Combined Works. You may convey a Combined Work under terms of your choice that, taken together, effectively do not restrict modification of the portions of the Library contained in the Combined Work and reverse engineering for debugging such modifications, if you also do each of the following: a) Give prominent notice with each copy of the Combined Work that the Library is used in it and that the Library and its use are covered by this License. b) Accompany the Combined Work with a copy of the GNU GPL and this license document. c) For a Combined Work that displays copyright notices during execution, include the copyright notice for the Library among these notices, as well as a reference directing the user to the copies of the GNU GPL and this license document. d) Do one of the following: 0) Convey the Minimal Corresponding Source under the terms of this License, and the Corresponding Application Code in a form suitable for, and under terms that permit, the user to recombine or relink the Application with a modified version of the Linked Version to produce a modified Combined Work, in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source. 1) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (a) uses at run time a copy of the Library already present on the user's computer system, and (b) will operate properly with a modified version of the Library that is interface-compatible with the Linked Version. e) Provide Installation Information, but only if you would otherwise be required to provide such information under section 6 of the GNU GPL, and only to the extent that such information is necessary to install and execute a modified version of the Combined Work produced by recombining or relinking the Application with a modified version of the Linked Version. (If you use option 4d0, the Installation Information must accompany the Minimal Corresponding Source and Corresponding Application Code. If you use option 4d1, you must provide the Installation Information in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.) 5. Combined Libraries. You may place library facilities that are a work based on the Library side by side in a single library together with other library facilities that are not Applications and are not covered by this License, and convey such a combined library under terms of your choice, if you do both of the following: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities, conveyed under the terms of this License. b) Give prominent notice with the combined library that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 6. Revised Versions of the GNU Lesser General Public License. The Free Software Foundation may publish revised and/or new versions of the GNU Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library as you received it specifies that a certain numbered version of the GNU Lesser General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that published version or of any later version published by the Free Software Foundation. If the Library as you received it does not specify a version number of the GNU Lesser General Public License, you may choose any version of the GNU Lesser General Public License ever published by the Free Software Foundation. If the Library as you received it specifies that a proxy can decide whether future versions of the GNU Lesser General Public License shall apply, that proxy's public statement of acceptance of any version is permanent authorization for you to choose that version for the Library. ./github.com/canonical/go-sp800.90a-drbg/ctr.go0000664000000000000000000002324000000000000015773 0ustar00// Copyright 2021 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package drbg import ( "bytes" "crypto/aes" "encoding/binary" "errors" "fmt" "io" "math/big" "golang.org/x/xerrors" ) var ( dfKey = []byte{ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f} ) type blockCipher interface { encrypt(key, data []byte) []byte blockSize() int } type aesBlockCipherImpl struct{} var aesBlockCipher = aesBlockCipherImpl{} func (b aesBlockCipherImpl) encrypt(key, data []byte) (out []byte) { c, err := aes.NewCipher(key) if err != nil { panic(fmt.Sprintf("cannot create cipher: %v", err)) } out = make([]byte, len(data)) c.Encrypt(out, data) return } func (b aesBlockCipherImpl) blockSize() int { return aes.BlockSize } // bcc implements BCC, described in section 10.3.3 of SP800-90A. func bcc(b blockCipher, key, data []byte) []byte { if len(data)%b.blockSize() != 0 { panic("data length must be a multiple of the block length") } // 1) chaining_value = 0(x outlen) chainingValue := make([]byte, b.blockSize()) // 2) n = len (data)/outlen. n := len(data) / b.blockSize() // 3) Starting with the leftmost bits of data, split data into n blocks of // outlen bits each, forming block[1] to block[n]. blocks := make([][]byte, n) for i := 0; i < n; i++ { blocks[i] = data[i*b.blockSize() : (i+1)*b.blockSize()] } inputBlock := make([]byte, b.blockSize()) // 4) For i = 1 to n do for i := 0; i < n; i++ { for j := 0; j < len(inputBlock); j++ { // 4.1) input_block = chaining_value ⊕ block[i]. inputBlock[j] = chainingValue[j] ^ blocks[i][j] } // 4.2) chaining_value = Block_Encrypt (Key, input_block). chainingValue = b.encrypt(key, inputBlock) } return chainingValue } // block_cipher_df implements Block_Cipher_df, described in section 10.3.2 of SP800-90A. func block_cipher_df(b blockCipher, keyLen int, input []byte, requestedBytes int) []byte { // 2) L = len (input_string)/8. l := uint32(len(input)) // 3) N = number_of_bits_to_return/8. n := uint32(requestedBytes) // 4) S = L || N || input_string || 0x80. var s bytes.Buffer binary.Write(&s, binary.BigEndian, l) binary.Write(&s, binary.BigEndian, n) s.Write(input) s.Write([]byte{0x80}) // 5) While (len (S) mod outlen) ≠ 0, do // S = S || 0x00. for s.Len()%b.blockSize() != 0 { s.Write([]byte{0x00}) } // 6) temp = the Null string. var temp bytes.Buffer // 7) i = 0. i := uint32(0) // 8) K = leftmost (0x00010203...1D1E1F, keylen). k := dfKey[:keyLen] iv := make([]byte, b.blockSize()) // 9) While len(temp) < keylen + outlen, do for temp.Len() < (keyLen + b.blockSize()) { // 9.1) IV = i || 0(x (outlen - len (i))). binary.BigEndian.PutUint32(iv, i) // 9.2) temp = temp || BCC (K, (IV || S)). var data bytes.Buffer data.Write(iv) data.Write(s.Bytes()) temp.Write(bcc(b, k, data.Bytes())) // 9.3) i = i + 1. i += 1 } // 10) K = leftmost (temp, keylen). k = make([]byte, keyLen) copy(k, temp.Bytes()) // 11) X = select (temp, keylen+1, keylen+outlen). x := make([]byte, b.blockSize()) copy(x, temp.Bytes()[keyLen:]) // 12) temp = the Null string. temp.Reset() // 13) While len (temp) < number_of_bits_to_return, do for temp.Len() < requestedBytes { // 13.1) = Block_Encrypt (K, X). x = b.encrypt(k, x) // 13.2) temp = temp || X. temp.Write(x) } // 14) requested_bits = leftmost (temp, number_of_bits_to_return). return temp.Bytes()[:requestedBytes] } type ctrDRBG struct { b blockCipher v []byte key []byte reseedCounter uint64 } func (d *ctrDRBG) keyLen() int { return len(d.key) } func (d *ctrDRBG) blockSize() int { return d.b.blockSize() } func (d *ctrDRBG) seedLength() int { return d.keyLen() + d.b.blockSize() } // update implements CTR_DRBG_Update, described in section 10.2.1.2 of // SP800-90A. func (d *ctrDRBG) update(providedData []byte) { if len(providedData) != d.seedLength() { panic("provided data has the wrong length") } // 1) temp = Null var temp bytes.Buffer mod := twoExp(uint(d.blockSize() * 8)) v := new(big.Int) // 2) While (len(temp) < seedLen) do for temp.Len() < d.seedLength() { // 2.1) V = (V+1) mod 2^blocklen v.SetBytes(d.v) v.Add(v, one) v.Mod(v, mod) d.v = zeroExtendBytes(v, d.blockSize()) // 2.2) output_block = Block_Encrypt (Key, V). // 2.3) temp = temp || output_block. temp.Write(d.b.encrypt(d.key, d.v)) } // 3) temp = leftmost(temp, seedLen) temp.Truncate(d.seedLength()) // 4) temp = temp ⊕ provided_data. for i := 0; i < temp.Len(); i++ { temp.Bytes()[i] ^= providedData[i] } // 5) Key = leftmost (temp, keylen). d.key = temp.Bytes()[:d.keyLen()] // 6) V = rightmost (temp, blocklen). d.v = temp.Bytes()[d.keyLen():] } // instantiate implements CTR_DRBG_Instantiate_algorithm, described in section 10.2.1.3.2 of // SP800-90A. func (d *ctrDRBG) instantiate(entropyInput, nonce, personalization []byte, securityStrength int) { var tmp bytes.Buffer // 1) seed_material = entropy_input || nonce || personalization_string. tmp.Write(entropyInput) tmp.Write(nonce) tmp.Write(personalization) seedMaterial := tmp.Bytes() // 2) seed_material = df (seed_material, seedlen). seedMaterial = block_cipher_df(d.b, d.keyLen(), seedMaterial, d.seedLength()) // 3) Key = 0(x keylen) is done in NewCTR. // 4) V = 0(x blocklen). d.v = make([]byte, d.blockSize()) // 5) (Key, V) = CTR_DRBG_Update (seed_material, Key, V). d.update(seedMaterial) // 6) reseed_counter = 1. d.reseedCounter = 1 } // reseed implements CTR_DRBG_Reseed_algorithm, described in section 10.2.1.4.2 of // SP800-90A. func (d *ctrDRBG) reseed(entropyInput, additionalInput []byte) { var tmp bytes.Buffer // 1) seed_material = entropy_input || additional_input. tmp.Write(entropyInput) tmp.Write(additionalInput) seedMaterial := tmp.Bytes() // 2) seed_material = df (seed_material, seedlen). seedMaterial = block_cipher_df(d.b, d.keyLen(), seedMaterial, d.seedLength()) // 3) (Key, V) = CTR_DRBG_Update (seed_material, Key, V). d.update(seedMaterial) // 4) reseed_counter = 1. d.reseedCounter = 1 } // generate implements CTR_DRBG_Generate_algorithm, described in section 10.2.1.5.2 of // SP800-90A. func (d *ctrDRBG) generate(additionalInput, data []byte) error { // 1) If reseed_counter > reseed_interval, then return an indication that a // reseed is required. if d.reseedCounter > 1<<48 { return ErrReseedRequired } // 2) If (additional_input ≠ Null), then if len(additionalInput) > 0 { // 2.1) additional_input = Block_Cipher_df (additional_input, seedlen). additionalInput = block_cipher_df(d.b, d.keyLen(), additionalInput, d.seedLength()) // 2.2) (Key, V) = CTR_DRBG_Update (additional_input, Key, V). d.update(additionalInput) // Else additional_input = 0(x seedlen). } else { additionalInput = make([]byte, d.seedLength()) } // 3) temp = Null. var temp bytes.Buffer mod := twoExp(uint(d.blockSize() * 8)) v := new(big.Int) // 4) While (len (temp) < requested_number_of_bits) do: for temp.Len() < len(data) { // 4.1.2) V = (V+1) mod 2^blocklen. v.SetBytes(d.v) v.Add(v, one) v.Mod(v, mod) d.v = zeroExtendBytes(v, d.blockSize()) // 4.2) output_block = Block_Encrypt (Key, V). outputBlock := d.b.encrypt(d.key, d.v) // 4.3) temp = temp || output_block. temp.Write(outputBlock) } // 5) returned_bits = leftmost (temp, requested_number_of_bits). copy(data, temp.Bytes()) // 6) (Key, V) = CTR_DRBG_Update (additional_input, Key, V). d.update(additionalInput) // 7) reseed_counter = reseed_counter + 1. d.reseedCounter += 1 return nil } // NewCTR creates a new block cipher based DRBG as specified in section 10.2 of SP-800-90A. // The DRBG uses the AES block cipher. // // The optional personalization argument is combined with entropy input to derive the // initial seed. This argument can be used to differentiate this instantiation from others. // // The optional entropySource argument allows the default entropy source (rand.Reader from // the crypto/rand package) to be overridden. The supplied entropy source must be truly // random. func NewCTR(keyLen int, personalization []byte, entropySource io.Reader) (*DRBG, error) { switch keyLen { case 16, 24, 32: default: return nil, errors.New("invalid key size") } d := &DRBG{impl: &ctrDRBG{b: aesBlockCipher, key: make([]byte, keyLen)}} if err := d.instantiate(personalization, entropySource, keyLen); err != nil { return nil, xerrors.Errorf("cannot instantiate: %w", err) } return d, nil } // NewCTRWithExternalEntropy creates a new block cipher based DRBG as specified in // section 10.2 of SP-800-90A. The DRBG uses the AES block cipher. The entropyInput and // nonce arguments provide the initial entropy to seed the created DRBG. // // The optional personalization argument is combined with entropy input to derive the // initial seed. This argument can be used to differentiate this instantiation from others. // // The optional entropySource argument provides the entropy source for future reseeding. If // it is not supplied, then the DRBG can only be reseeded with externally supplied entropy. // The supplied entropy source must be truly random. func NewCTRWithExternalEntropy(keyLen int, entropyInput, nonce, personalization []byte, entropySource io.Reader) (*DRBG, error) { switch keyLen { case 16, 24, 32: default: return nil, errors.New("invalid key size") } d := &DRBG{impl: &ctrDRBG{b: aesBlockCipher, key: make([]byte, keyLen)}} if err := d.instantiateWithExternalEntropy(entropyInput, nonce, personalization, entropySource, keyLen); err != nil { return nil, err } return d, nil } ./github.com/canonical/go-sp800.90a-drbg/drbg.go0000664000000000000000000002045600000000000016127 0ustar00// Copyright 2021 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. /* Package drbg implements several DRBGs as recommended by NIST SP-800-90A (see http://csrc.nist.gov/publications/nistpubs/800-90A/SP800-90A.pdf). The hash, HMAC and block cipher mode DRBGs are implemented. DRBG instances are automatically reseeded once the current seed period expires. All DRBGs are instantiated with the maximum security strength associated with the requested configuration. The security strength cannot be specified via the API. DRBGs are instantiated by default using the platform's default entropy source (via the crypto/rand package). This entropy source can be overridden, but it must provide truly random data in order to achieve the selected security strength. Note that prediction resistance is not implemented. Prediction resistance requires that the supplied entropy source is non-deterministic. */ package drbg import ( "crypto/rand" "errors" "io" "math/big" "golang.org/x/xerrors" ) // ErrReseedRequired indicates that the DRBG must be reseeded before // it can generate random bytes. var ErrReseedRequired = errors.New("the DRGB must be reseeded") var one = big.NewInt(1) func twoExp(n uint) (out *big.Int) { d := make([]byte, n/8+1) d[0] = byte(1 << (n % 8)) out = new(big.Int) out.SetBytes(d) return } func zeroExtendBytes(x *big.Int, l int) (out []byte) { out = make([]byte, l) tmp := x.Bytes() copy(out[len(out)-len(tmp):], tmp) return } func selectSecurityStrength(requested int) int { switch { case requested <= 14: return 14 case requested <= 16: return 16 case requested <= 24: return 24 default: return 32 } } type drbgImpl interface { instantiate(entropyInput, nonce, personalization []byte, securityStrength int) reseed(entropyInput, additionalInput []byte) generate(additionalInput, data []byte) error } // DRBG corresponds to an instantiated DRBG based on one of the mechanisms specified // in SP-800-90A. type DRBG struct { entropySource io.Reader securityStrength int impl drbgImpl } // instantiate implements the steps described in section 9.1 of SP800-90A. func (d *DRBG) instantiate(personalization []byte, entropySource io.Reader, securityStrength int) error { // 3) If the length of the personalization_string > max_personalization_string_length, // return (ERROR_FLAG, Invalid). if int64(len(personalization)) > 1<<32 { return errors.New("personalization too large") } d.entropySource = rand.Reader if entropySource != nil { d.entropySource = entropySource } // 4) Set security_strength to the lowest security strength greater than or equal // to requested_instantiation_security_strength from the set {112, 128, 192, 256} d.securityStrength = selectSecurityStrength(securityStrength) // 6) (status, entropy_input) = Get_entropy_input (security_strength, min_length, // max_length, prediction_resistance_request). // 7) If (status ≠ SUCCESS), return (status, Invalid). entropyInput := make([]byte, securityStrength) if _, err := d.entropySource.Read(entropyInput); err != nil { return xerrors.Errorf("cannot get entropy: %w", err) } // 8) Obtain a nonce. nonce := make([]byte, securityStrength/2) if _, err := d.entropySource.Read(nonce); err != nil { return xerrors.Errorf("cannot get nonce: %w", err) } // 9) initial_working_state = Instantiate_algorithm (entropy_input, nonce, // personalization_string, security_strength). d.impl.instantiate(entropyInput, nonce, personalization, securityStrength) return nil } func (d *DRBG) instantiateWithExternalEntropy(entropyInput, nonce, personalization []byte, entropySource io.Reader, securityStrength int) error { if len(entropyInput) < securityStrength { return errors.New("entropyInput too small") } if int64(len(entropyInput)) > 1<<32 { return errors.New("entropyInput too large") } if int64(len(personalization)) > 1<<32 { return errors.New("personalization too large") } d.entropySource = entropySource d.securityStrength = selectSecurityStrength(securityStrength) d.impl.instantiate(entropyInput, nonce, personalization, securityStrength) return nil } // ReseedWithExternalEntropy will reseed the DRBG with the supplied entropy. func (d *DRBG) ReseedWithExternalEntropy(entropyInput, additionalInput []byte) error { if int64(len(additionalInput)) > 1<<32 { return errors.New("additionalInput too large") } if len(entropyInput) < d.securityStrength { return errors.New("entropyInput too small") } if int64(len(entropyInput)) > 1<<32 { return errors.New("entropyInput too large") } d.impl.reseed(entropyInput, additionalInput) return nil } // Reseed will reseed the DRBG with additional entropy using the entropy source // it was initialized with. func (d *DRBG) Reseed(additionalInput []byte) error { // 3) If the length of the additional_input > max_additional_input_length, // return (ERROR_FLAG). if int64(len(additionalInput)) > 1<<32 { return errors.New("additionalInput too large") } if d.entropySource == nil { return errors.New("cannot reseed without external entropy") } // 4) (status, entropy_input) = Get_entropy_input (security_strength, min_length, // max_length, prediction_resistance_request). entropyInput := make([]byte, d.securityStrength) if _, err := d.entropySource.Read(entropyInput); err != nil { // 5) If (status ≠ SUCCESS), return (status). return xerrors.Errorf("cannot get entropy: %w", err) } // 6) new_working_state = Reseed_algorithm (working_state, entropy_input, // additional_input). d.impl.reseed(entropyInput, additionalInput) return nil } // Generate will fill the supplied data buffer with random bytes. // // If the DRBG needs to be reseeded before it can generate random bytes and it // has been initialized with a source of entropy, the reseed operation will be // performed automatically. If the DRBG hasn't been initialized with a source of // entropy and it needs to be reseeded, ErrNeedsReseed will be returned. // // If the length of data is greater than 65536 bytes, an error will be returned. func (d *DRBG) Generate(additionalInput, data []byte) error { // 2) If requested_number_of_bits > max_number_of_bits_per_request, then // return (ERROR_FLAG, Null). if len(data) > 65536 { return errors.New("too many bytes requested") } // 4) If the length of the additional_input > max_additional_input_length, // then return (ERROR_FLAG, Null). if int64(len(additionalInput)) > 1<<32 { return errors.New("additionalInput too large") } // 6) Clear the reseed_required_flag. reseedRequired := false for { // 7) If reseed_required_flag is set, or if prediction_resistance_request // is set, then if reseedRequired { // 7.1) status = Reseed_function (state_handle, prediction_resistance_request, // additional_input). if err := d.Reseed(additionalInput); err != nil { // 7.2) If (status ≠ SUCCESS), then return (status, Null). return xerrors.Errorf("cannot reseed: %w", err) } // 7.4) additional_input = the Null string. additionalInput = nil // 7.5) Clear the reseed_required_flag. reseedRequired = false } // 8) (status, pseudorandom_bits, new_working_state) = Generate_algorithm ( // working_state, requested_number_of_bits, additional_input). err := d.impl.generate(additionalInput, data) switch { case err == ErrReseedRequired && d.entropySource != nil: // 9) If status indicates that a reseed is required before the requested bits // can be generated, then // 9.1) Set the reseed_required_flag. // 9.3) Go to step 7. reseedRequired = true case err == ErrReseedRequired: return err case err != nil: return xerrors.Errorf("cannot generate random data: %w", err) default: return nil } } } // Read will read len(data) random bytes in to data. // // If the DRBG needs to be reseeded in order to generate all of the random bytes // and it has been initialized with a source of entropy, the reseed operation will // be performed automatically. If the DRBG hasn't been initialized with a source of // entropy and it needs to be reseeded, ErrNeedsReseed will be returned. func (d *DRBG) Read(data []byte) (int, error) { total := 0 for len(data) > 0 { b := data if len(data) > 65536 { b = data[:65536] } if err := d.Generate(nil, b); err != nil { return total, err } total += len(b) data = data[len(b):] } return total, nil } ./github.com/canonical/go-sp800.90a-drbg/hash.go0000664000000000000000000001611200000000000016126 0ustar00// Copyright 2021 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package drbg import ( "bytes" "crypto" "encoding/binary" "fmt" "io" "math/big" "golang.org/x/xerrors" ) func seedLength(h crypto.Hash) (int, error) { switch h { case crypto.SHA1, crypto.SHA224, crypto.SHA256, crypto.SHA512_224, crypto.SHA512_256: return 55, nil case crypto.SHA384, crypto.SHA512: return 111, nil default: return 0, fmt.Errorf("unsupported digest algorithm: %v", h) } } // hashgen implements Hashgen, described in section 10.1.1.4 of // SP800-90A. func hashgen(alg crypto.Hash, v []byte, requestedBytes int) []byte { // 1) m = requested_no_of_bits / outlen. m := (requestedBytes + (alg.Size() - 1)) / alg.Size() // 2) data = V. data := v // 3) W = the Null string. var W bytes.Buffer mod := twoExp(uint(len(v) * 8)) h := alg.New() tmp := new(big.Int) // 4) For i = 1 to m for i := 1; i <= m; i++ { // 4.1) w = Hash (data). h.Reset() h.Write(data) w := h.Sum(nil) // 4.2) W = W || w. W.Write(w) // 4.3) data = (data + 1) mod 2^seedlen. tmp.SetBytes(data) tmp.Add(tmp, one) tmp.Mod(tmp, mod) data = zeroExtendBytes(tmp, len(v)) } // 5) returned_bits = leftmost (W, requested_no_of_bits). return W.Bytes()[:requestedBytes] } // hash_df implements the Hash_df function described in section 10.3.1 of // SP800-90A. func hash_df(alg crypto.Hash, input []byte, requestedBytes int) []byte { // 1) temp = the Null string. var temp bytes.Buffer // 2) len = no_of_bits_to_return / outlen. n := (requestedBytes + (alg.Size() - 1)) / alg.Size() if n > 0xff { panic("invalid requested bytes") } // 3) counter = 0x01. counter := uint8(1) h := alg.New() requestedBits := uint32(requestedBytes * 8) // 4) For i = 1 to len do for i := 1; i <= n; i++ { // 4.1) temp = temp || Hash (counter || no_of_bits_to_return || input_string). h.Reset() h.Write([]byte{counter}) binary.Write(h, binary.BigEndian, requestedBits) h.Write(input) temp.Write(h.Sum(nil)) // 4.2) counter = counter + 1. counter += 1 } // 5) requested_bits = leftmost (temp, no_of_bits_to_return). return temp.Bytes()[:requestedBytes] } type hashDRBG struct { h crypto.Hash v []byte c []byte reseedCounter uint64 } func (d *hashDRBG) seedLen() int { return len(d.v) } // instantiate implements Hash_DRBG_Instantiate_algorithm, described in section 10.1.1.2 of // SP800-90A. func (d *hashDRBG) instantiate(entropyInput, nonce, personalization []byte, securityStrength int) { // 1) seed_material = entropy_input || nonce || personalization_string. var seedMaterial bytes.Buffer seedMaterial.Write(entropyInput) seedMaterial.Write(nonce) seedMaterial.Write(personalization) // 2) seed = Hash_df (seed_material, seedlen). seed := hash_df(d.h, seedMaterial.Bytes(), d.seedLen()) // 3) V = seed. d.v = seed // 4) C = Hash_df ((0x00 || V), seedlen). d.c = hash_df(d.h, append([]byte{0x00}, d.v...), d.seedLen()) // 5) reseed_counter = 1. d.reseedCounter = 1 } // reseed implements Hash_DRBG_Reseed_algorithm, described in section 10.1.1.3 of // SP800-90A. func (d *hashDRBG) reseed(entropyInput, additionalInput []byte) { // 1) seed_material = 0x01 || V || entropy_input || additional_input. var seedMaterial bytes.Buffer seedMaterial.Write([]byte{0x01}) seedMaterial.Write(d.v) seedMaterial.Write(entropyInput) seedMaterial.Write(additionalInput) // 2) seed = Hash_df (seed_material, seedlen). seed := hash_df(d.h, seedMaterial.Bytes(), d.seedLen()) // 3) V = seed. d.v = seed // 4) C = Hash_df ((0x00 || V), seedlen). d.c = hash_df(d.h, append([]byte{0x00}, seed...), d.seedLen()) // 5) reseed_counter = 1. d.reseedCounter = 1 } // generate implements Hash_DRBG_Generate_algorithm, described in section 10.1.1.4 of // SP800-90A. func (d *hashDRBG) generate(additionalInput, data []byte) error { // 1) If reseed_counter > reseed_interval, then return an indication that a reseed // is required. if d.reseedCounter > 1<<48 { return ErrReseedRequired } mod := twoExp(uint(d.seedLen() * 8)) // 2) If (additional_input ≠ Null), then do if len(additionalInput) > 0 { // 2.1) w = Hash (0x02 || V || additional_input). h := d.h.New() h.Write([]byte{0x02}) h.Write(d.v) h.Write(additionalInput) w := new(big.Int).SetBytes(h.Sum(nil)) // 2.2) V = (V + w) mod 2^seedlen. v := new(big.Int).SetBytes(d.v) v.Add(v, w) v.Mod(v, mod) d.v = zeroExtendBytes(v, d.seedLen()) } // 3) (returned_bits) = Hashgen (requested_number_of_bits, V). returnedBytes := hashgen(d.h, d.v, len(data)) copy(data, returnedBytes) // 4) H = Hash (0x03 || V). hash := d.h.New() hash.Write([]byte{0x03}) hash.Write(d.v) h := hash.Sum(nil) // 5) V = (V + H + C + reseed_counter) mod 2^seedlen. v := new(big.Int).SetBytes(d.v) v.Add(v, new(big.Int).SetBytes(h)) v.Add(v, new(big.Int).SetBytes(d.c)) v.Add(v, big.NewInt(int64(d.reseedCounter))) v.Mod(v, mod) d.v = zeroExtendBytes(v, d.seedLen()) // 6) reseed_counter = reseed_counter + 1. d.reseedCounter += 1 return nil } // NewHash creates a new hash based DRBG as specified in section 10.1.1 of SP-800-90A. // The DRBG uses the supplied hash algorithm. // // The optional personalization argument is combined with entropy input to derive the // initial seed. This argument can be used to differentiate this instantiation from others. // // The optional entropySource argument allows the default entropy source (rand.Reader from // the crypto/rand package) to be overridden. The supplied entropy source must be truly // random. func NewHash(h crypto.Hash, personalization []byte, entropySource io.Reader) (*DRBG, error) { seedLen, err := seedLength(h) if err != nil { return nil, xerrors.Errorf("cannot compute seed length: %w", err) } d := &DRBG{impl: &hashDRBG{h: h, v: make([]byte, seedLen)}} if err := d.instantiate(personalization, entropySource, h.Size()/2); err != nil { return nil, xerrors.Errorf("cannot instantiate: %w", err) } return d, nil } // NewHashWithExternalEntropy creates a new hash based DRBG as specified in section // 10.1.1 of SP-800-90A. The DRBG uses the supplied hash algorithm. The entropyInput and // nonce arguments provide the initial entropy to seed the created DRBG. // // The optional personalization argument is combined with entropy input to derive the // initial seed. This argument can be used to differentiate this instantiation from others. // // The optional entropySource argument provides the entropy source for future reseeding. If // it is not supplied, then the DRBG can only be reseeded with externally supplied entropy. // The supplied entropy source must be truly random. func NewHashWithExternalEntropy(h crypto.Hash, entropyInput, nonce, personalization []byte, entropySource io.Reader) (*DRBG, error) { seedLen, err := seedLength(h) if err != nil { return nil, xerrors.Errorf("cannot compute seed length: %w", err) } d := &DRBG{impl: &hashDRBG{h: h, v: make([]byte, seedLen)}} if err := d.instantiateWithExternalEntropy(entropyInput, nonce, personalization, entropySource, h.Size()/2); err != nil { return nil, err } return d, nil } ./github.com/canonical/go-sp800.90a-drbg/hmac.go0000664000000000000000000001224500000000000016116 0ustar00// Copyright 2021 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package drbg import ( "bytes" "crypto" "crypto/hmac" "hash" "io" "golang.org/x/xerrors" ) type hmacDRBG struct { h crypto.Hash v []byte key []byte reseedCounter uint64 } // update implements HMAC_DRBG_Update, described in section 10.1.2.2 of // SP800-90A. func (d *hmacDRBG) update(providedData []byte) { // 1) K = HMAC (K, V || 0x00 || provided_data). h := hmac.New(func() hash.Hash { return d.h.New() }, d.key) h.Write(d.v) h.Write([]byte{0x00}) h.Write(providedData) d.key = h.Sum(nil) // 2) V = HMAC (K, V). h = hmac.New(func() hash.Hash { return d.h.New() }, d.key) h.Write(d.v) d.v = h.Sum(nil) // 3) If (provided_data = Null), then return K and V. if len(providedData) == 0 { return } // 4) K = HMAC (K, V || 0x01 || provided_data). h = hmac.New(func() hash.Hash { return d.h.New() }, d.key) h.Write(d.v) h.Write([]byte{0x01}) h.Write(providedData) d.key = h.Sum(nil) // 5) V = HMAC (K, V). h = hmac.New(func() hash.Hash { return d.h.New() }, d.key) h.Write(d.v) d.v = h.Sum(nil) } // instantiate implements HMAC_DRBG_Instantiate_algorithm, described in section 10.1.2.3 of // SP800-90A. func (d *hmacDRBG) instantiate(entropyInput, nonce, personalization []byte, securityStrength int) { // 1) seed_material = entropy_input || nonce || personalization_string. var seedMaterial bytes.Buffer seedMaterial.Write(entropyInput) seedMaterial.Write(nonce) seedMaterial.Write(personalization) // 2) Key = 0x00 00...00. Comment: outlen bits. d.key = make([]byte, d.h.Size()) // 3) V = 0x01 01...01. Comment: outlen bits. d.v = make([]byte, d.h.Size()) for i := range d.v { d.v[i] = 0x01 } // 4) (Key, V) = HMAC_DRBG_Update (seed_material, Key, V). d.update(seedMaterial.Bytes()) // 5) reseed_counter = 1. d.reseedCounter = 1 } // reseed implements HMAC_DRBG_Reseed_algorithm, described in section 10.1.2.4 of // SP800-90A. func (d *hmacDRBG) reseed(entropyInput, additionalInput []byte) { // 1) seed_material = entropy_input || additional_input. var seedMaterial bytes.Buffer seedMaterial.Write(entropyInput) seedMaterial.Write(additionalInput) // 2) (Key, V) = HMAC_DRBG_Update (seed_material, Key, V). d.update(seedMaterial.Bytes()) // 3) reseed_counter = 1. d.reseedCounter = 1 } // generate implements HMAC_DRBG_Generate_algorithm, described in section 10.1.2.5 of // SP800-90A. func (d *hmacDRBG) generate(additionalInput, data []byte) error { // 1) If reseed_counter > reseed_interval, then return an indication that a // reseed is required. if d.reseedCounter > 1<<48 { return ErrReseedRequired } // 2) If additional_input ≠ Null, then // (Key, V) = HMAC_DRBG_Update (additional_input, Key, V). if len(additionalInput) > 0 { d.update(additionalInput) } // 3) temp = Null. var temp bytes.Buffer h := hmac.New(func() hash.Hash { return d.h.New() }, d.key) // 4) While (len (temp) < requested_number_of_bits) do: for temp.Len() < len(data) { // 4.1) V = HMAC (Key , V). h.Reset() h.Write(d.v) d.v = h.Sum(nil) // 4.2) temp = temp || V. temp.Write(d.v) } // 5) returned_bits = leftmost (temp, requested_number_of_bits). copy(data, temp.Bytes()) // 6) (Key, V) = HMAC_DRBG_Update (additional_input, Key, V). d.update(additionalInput) // 7) reseed_counter = reseed_counter + 1. d.reseedCounter += 1 return nil } // NewHMAC creates a new HMAC based DRBG as specified in section 10.1.2 of SP-800-90A. // The DRBG uses the supplied hash algorithm. // // The optional personalization argument is combined with entropy input to derive the // initial seed. This argument can be used to differentiate this instantiation from others. // // The optional entropySource argument allows the default entropy source (rand.Reader from // the crypto/rand package) to be overridden. The supplied entropy source must be truly // random. func NewHMAC(h crypto.Hash, personalization []byte, entropySource io.Reader) (*DRBG, error) { d := &DRBG{impl: &hmacDRBG{h: h}} if err := d.instantiate(personalization, entropySource, h.Size()/2); err != nil { return nil, xerrors.Errorf("cannot instantiate: %w", err) } return d, nil } // NewHMACWithExternalEntropy creates a new hash based DRBG as specified in section // 10.1.2 of SP-800-90A. The DRBG uses the supplied hash algorithm. The entropyInput and // nonce arguments provide the initial entropy to seed the created DRBG. // // The optional personalization argument is combined with entropy input to derive the // initial seed. This argument can be used to differentiate this instantiation from others. // // The optional entropySource argument provides the entropy source for future reseeding. If // it is not supplied, then the DRBG can only be reseeded with externally supplied entropy. // The supplied entropy source must be truly random. func NewHMACWithExternalEntropy(h crypto.Hash, entropyInput, nonce, personalization []byte, entropySource io.Reader) (*DRBG, error) { d := &DRBG{impl: &hmacDRBG{h: h}} if err := d.instantiateWithExternalEntropy(entropyInput, nonce, personalization, entropySource, h.Size()/2); err != nil { return nil, err } return d, nil } ./github.com/canonical/go-tpm2/0000775000000000000000000000000000000000000013357 5ustar00./github.com/canonical/go-tpm2/.gitignore0000664000000000000000000000003600000000000015346 0ustar00go-tpm2.test NVChip vendor/*/ ./github.com/canonical/go-tpm2/.travis.yml0000664000000000000000000000030400000000000015465 0ustar00language: go dist: xenial install: - sudo snap install core core18 - sudo snap install --edge tpm2-simulator-chrisccoulson - ./get-deps script: - ./run-tests --with-mssim - go vet ./... ./github.com/canonical/go-tpm2/LICENSE0000664000000000000000000002150100000000000014363 0ustar00All files in this repository are licensed as follows. If you contribute to this repository, it is assumed that you license your contribution under the same license unless you state otherwise. All files Copyright (C) 2019 Canonical Ltd. unless otherwise specified in the file. This software is licensed under the LGPLv3, included below. As a special exception to the GNU Lesser General Public License version 3 ("LGPL3"), the copyright holders of this Library give you permission to convey to a third party a Combined Work that links statically or dynamically to this Library without providing any Minimal Corresponding Source or Minimal Application Code as set out in 4d or providing the installation information set out in section 4e, provided that you comply with the other provisions of LGPL3 and provided that you meet, for the Application the terms and conditions of the license(s) which apply to the Application. Except as stated in this special exception, the provisions of LGPL3 will continue to comply in full to this Library. If you modify this Library, you may apply this exception to your version of this Library, but you are not obliged to do so. If you do not wish to do so, delete this exception statement from your version. This exception does not (and cannot) modify any license terms which apply to the Application, with which you must still comply. GNU LESSER GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. This version of the GNU Lesser General Public License incorporates the terms and conditions of version 3 of the GNU General Public License, supplemented by the additional permissions listed below. 0. Additional Definitions. As used herein, "this License" refers to version 3 of the GNU Lesser General Public License, and the "GNU GPL" refers to version 3 of the GNU General Public License. "The Library" refers to a covered work governed by this License, other than an Application or a Combined Work as defined below. An "Application" is any work that makes use of an interface provided by the Library, but which is not otherwise based on the Library. Defining a subclass of a class defined by the Library is deemed a mode of using an interface provided by the Library. A "Combined Work" is a work produced by combining or linking an Application with the Library. The particular version of the Library with which the Combined Work was made is also called the "Linked Version". The "Minimal Corresponding Source" for a Combined Work means the Corresponding Source for the Combined Work, excluding any source code for portions of the Combined Work that, considered in isolation, are based on the Application, and not on the Linked Version. The "Corresponding Application Code" for a Combined Work means the object code and/or source code for the Application, including any data and utility programs needed for reproducing the Combined Work from the Application, but excluding the System Libraries of the Combined Work. 1. Exception to Section 3 of the GNU GPL. You may convey a covered work under sections 3 and 4 of this License without being bound by section 3 of the GNU GPL. 2. Conveying Modified Versions. If you modify a copy of the Library, and, in your modifications, a facility refers to a function or data to be supplied by an Application that uses the facility (other than as an argument passed when the facility is invoked), then you may convey a copy of the modified version: a) under this License, provided that you make a good faith effort to ensure that, in the event an Application does not supply the function or data, the facility still operates, and performs whatever part of its purpose remains meaningful, or b) under the GNU GPL, with none of the additional permissions of this License applicable to that copy. 3. Object Code Incorporating Material from Library Header Files. The object code form of an Application may incorporate material from a header file that is part of the Library. You may convey such object code under terms of your choice, provided that, if the incorporated material is not limited to numerical parameters, data structure layouts and accessors, or small macros, inline functions and templates (ten or fewer lines in length), you do both of the following: a) Give prominent notice with each copy of the object code that the Library is used in it and that the Library and its use are covered by this License. b) Accompany the object code with a copy of the GNU GPL and this license document. 4. Combined Works. You may convey a Combined Work under terms of your choice that, taken together, effectively do not restrict modification of the portions of the Library contained in the Combined Work and reverse engineering for debugging such modifications, if you also do each of the following: a) Give prominent notice with each copy of the Combined Work that the Library is used in it and that the Library and its use are covered by this License. b) Accompany the Combined Work with a copy of the GNU GPL and this license document. c) For a Combined Work that displays copyright notices during execution, include the copyright notice for the Library among these notices, as well as a reference directing the user to the copies of the GNU GPL and this license document. d) Do one of the following: 0) Convey the Minimal Corresponding Source under the terms of this License, and the Corresponding Application Code in a form suitable for, and under terms that permit, the user to recombine or relink the Application with a modified version of the Linked Version to produce a modified Combined Work, in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source. 1) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (a) uses at run time a copy of the Library already present on the user's computer system, and (b) will operate properly with a modified version of the Library that is interface-compatible with the Linked Version. e) Provide Installation Information, but only if you would otherwise be required to provide such information under section 6 of the GNU GPL, and only to the extent that such information is necessary to install and execute a modified version of the Combined Work produced by recombining or relinking the Application with a modified version of the Linked Version. (If you use option 4d0, the Installation Information must accompany the Minimal Corresponding Source and Corresponding Application Code. If you use option 4d1, you must provide the Installation Information in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.) 5. Combined Libraries. You may place library facilities that are a work based on the Library side by side in a single library together with other library facilities that are not Applications and are not covered by this License, and convey such a combined library under terms of your choice, if you do both of the following: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities, conveyed under the terms of this License. b) Give prominent notice with the combined library that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 6. Revised Versions of the GNU Lesser General Public License. The Free Software Foundation may publish revised and/or new versions of the GNU Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library as you received it specifies that a certain numbered version of the GNU Lesser General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that published version or of any later version published by the Free Software Foundation. If the Library as you received it does not specify a version number of the GNU Lesser General Public License, you may choose any version of the GNU Lesser General Public License ever published by the Free Software Foundation. If the Library as you received it specifies that a proxy can decide whether future versions of the GNU Lesser General Public License shall apply, that proxy's public statement of acceptance of any version is permanent authorization for you to choose that version for the Library. ./github.com/canonical/go-tpm2/README.md0000664000000000000000000000445600000000000014647 0ustar00# go-tpm2 [![Tests](https://github.com/canonical/go-tpm2/workflows/Tests/badge.svg)](https://github.com/canonical/go-tpm2/actions?query=workflow%3ATests) [![GoDoc](https://godoc.org/github.com/canonical/go-tpm2?status.svg)](https://godoc.org/github.com/canonical/go-tpm2) This repository contains a go library for interacting with TPM 2.0 devices. Some currently supported features are: - All authorization modes: cleartext password, HMAC session based and policy session based. - All session configurations: salted or unsalted + bound or unbound. - Session-based command and response parameter encryption using AES-CFB or XOR obfuscation. - Session-based command auditing. - Backends for Linux TPM character devices and TPM simulators implementing the Microsoft TPM 2.0 simulator interface. The current support status for each command group is detailed below. Command group | Support | Comment --- | --- | --- Start-up | Full | Testing | Full | Session Commands | Full | Object Commands | Full | Duplication Commands | Partial | TPM2_Duplicate and TPM2_Import are supported Asymmetric Primitives | None | Symmetric Primitives | None | Random Number Generator | Full | Hash/HMAC/Event Sequences | Full | Attestation Commands | Full | Ephemeral EC Keys | None | Signing and Signature Verification | Full | Command Audit | Full | Integrity Collection (PCR) | Partial | TPM2_PCR_Extend, TPM2_PCR_Event, TPM2_PCR_Read and TPM2_PCR_Reset are supported Enhanced Authorization (EA) Commands | Partial | All commands are supported except for TPM2_PolicyLocality, TPM2_PolicyPhysicalPresence, TPM2_PolicyTemplate and TPM2_PolicyAuthorizeNV Hierarchy Commands | Partial | TPM2_CreatePrimary, TPM2_HierarchyControl, TPM2_Clear, TPM2_ClearControl and TPM2_HierarchyChangeAuth are supported Dictionary Attack Functions | Full | Miscellaneous Management Functions | None | Field Upgrade | None | Context Management | Full | Clocks and Timers | Partial | TPM2_ReadClock is supported Capability Commands | Full | Non-Volatile Storage | Partial | All commands are supported except for TPM2_NV_Certify Vendor Specific | None | ## Relevant links - [TPM 2.0 Library Specification](https://trustedcomputinggroup.org/resource/tpm-library-specification/) - [IBM's Software TPM 2.0](https://sourceforge.net/projects/ibmswtpm2/) ./github.com/canonical/go-tpm2/auth.go0000664000000000000000000002063300000000000014653 0ustar00// Copyright 2019 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package tpm2 import ( "bytes" "crypto/hmac" "errors" "fmt" "hash" ) func trimAuthValue(value []byte) []byte { return bytes.TrimRight(value, "\x00") } type sessionParam struct { Session SessionContext // The session instance used for this session parameter AssociatedResource ResourceContext // The resource associated with an authorization IsPassword bool // Whether the command auth will contain a password IncludeAuthValue bool // Whether the authorization value of associatedResource is included in the HMAC key NonceCaller Nonce DecryptNonce Nonce EncryptNonce Nonce } func newExtraSessionParam(session SessionContext) (*sessionParam, error) { if session.Params().HashAlg == HashAlgorithmNull || session.State() == nil { return nil, errors.New("limited context or flushed session") } if session.Handle().Type() != HandleTypeHMACSession { return nil, errors.New("invalid session type") } return &sessionParam{Session: session}, nil } func newSessionParamForAuth(session SessionContext, resource ResourceContext) (*sessionParam, error) { if session.Handle() != HandlePW && (session.Params().HashAlg == HashAlgorithmNull || session.State() == nil) { return nil, errors.New("invalid context for session: limited context or flushed session") } s := &sessionParam{ Session: session, AssociatedResource: resource} switch { case s.Session.Handle() == HandlePW: // Passphrase session s.IsPassword = true case s.Session.Handle().Type() == HandleTypePolicySession: // A policy session. Include the auth value of the associated context // if the session includes a TPM2_PolicyAuthValue assertion. if s.Session.State().NeedsPassword && s.Session.State().NeedsAuthValue { return nil, errors.New("invalid session context state") } s.IsPassword = s.Session.State().NeedsPassword s.IncludeAuthValue = s.Session.State().NeedsAuthValue case s.Session.Params().IsBound: // A bound HMAC session. Include the auth value of the associated // context only if it is not the bind entity. bindName := computeBindName(s.AssociatedResource.Name(), trimAuthValue(s.AssociatedResource.AuthValue())) s.IncludeAuthValue = !bytes.Equal(bindName, s.Session.Params().BoundEntity) default: // A non-bound HMAC session. Include the auth value of the associated // context in the HMAC key s.IncludeAuthValue = true } return s, nil } func (s *sessionParam) IsAuth() bool { return s.AssociatedResource != nil } func (s *sessionParam) ComputeSessionHMACKey() []byte { var key []byte key = append(key, s.Session.Params().SessionKey...) if s.IncludeAuthValue { key = append(key, trimAuthValue(s.AssociatedResource.AuthValue())...) } return key } func (s *sessionParam) computeHMAC(pHash []byte, nonceNewer, nonceOlder, nonceDecrypt, nonceEncrypt Nonce, attrs SessionAttributes) ([]byte, bool) { key := s.ComputeSessionHMACKey() h := hmac.New(func() hash.Hash { return s.Session.Params().HashAlg.NewHash() }, key) h.Write(pHash) h.Write(nonceNewer) h.Write(nonceOlder) h.Write(nonceDecrypt) h.Write(nonceEncrypt) h.Write([]byte{uint8(attrs)}) return h.Sum(nil), len(key) > 0 } func (s *sessionParam) ComputeCommandHMAC(commandCode CommandCode, commandHandles []Name, cpBytes []byte) []byte { cpHash := cryptComputeCpHash(s.Session.Params().HashAlg, commandCode, commandHandles, cpBytes) h, _ := s.computeHMAC(cpHash, s.NonceCaller, s.Session.State().NonceTPM, s.DecryptNonce, s.EncryptNonce, s.Session.Attrs()) return h } func (s *sessionParam) ComputeResponseHMAC(resp AuthResponse, commandCode CommandCode, rpBytes []byte) ([]byte, bool) { rpHash := cryptComputeRpHash(s.Session.Params().HashAlg, ResponseSuccess, commandCode, rpBytes) return s.computeHMAC(rpHash, s.Session.State().NonceTPM, s.NonceCaller, nil, nil, resp.SessionAttributes) } func (s *sessionParam) BuildCommandAuth(commandCode CommandCode, commandHandles []Name, cpBytes []byte) *AuthCommand { var hmac []byte if s.IsPassword { hmac = s.AssociatedResource.AuthValue() } else { hmac = s.ComputeCommandHMAC(commandCode, commandHandles, cpBytes) } return &AuthCommand{ SessionHandle: s.Session.Handle(), Nonce: s.NonceCaller, SessionAttributes: s.Session.Attrs(), HMAC: hmac} } func (s *sessionParam) ProcessResponseAuth(resp AuthResponse, commandCode CommandCode, rpBytes []byte) error { state := s.Session.State() state.NonceTPM = resp.Nonce state.IsAudit = resp.SessionAttributes&AttrAudit > 0 state.IsExclusive = resp.SessionAttributes&AttrAuditExclusive > 0 state.NeedsPassword = false state.NeedsAuthValue = false if s.IsPassword { if len(resp.HMAC) != 0 { return errors.New("unexpected HMAC") } return nil } hmac, hmacRequired := s.ComputeResponseHMAC(resp, commandCode, rpBytes) if (hmacRequired || len(resp.HMAC) > 0) && !bytes.Equal(hmac, resp.HMAC) { return fmt.Errorf("incorrect HMAC (expected: %x, got: %x)", hmac, resp.HMAC) } return nil } func computeBindName(name Name, auth Auth) Name { if len(auth) > len(name) { auth = auth[0:len(name)] } r := make(Name, len(name)) copy(r, name) j := 0 for i := len(name) - len(auth); i < len(name); i++ { r[i] ^= auth[j] j++ } return r } type sessionParams struct { CommandCode CommandCode Sessions []*sessionParam EncryptSessionIndex int DecryptSessionIndex int } func newSessionParams() *sessionParams { return &sessionParams{ EncryptSessionIndex: -1, DecryptSessionIndex: -1} } func (p *sessionParams) append(s *sessionParam) error { if len(p.Sessions) >= 3 { return errors.New("too many session parameters") } if p.EncryptSessionIndex == -1 && s.Session.Attrs()&AttrResponseEncrypt > 0 { p.EncryptSessionIndex = len(p.Sessions) } if p.DecryptSessionIndex == -1 && s.Session.Attrs()&AttrCommandEncrypt > 0 { p.DecryptSessionIndex = len(p.Sessions) } p.Sessions = append(p.Sessions, s) return nil } func (p *sessionParams) AppendSessionForResource(session SessionContext, resource ResourceContext) error { s, err := newSessionParamForAuth(session, resource) if err != nil { return err } return p.append(s) } func (p *sessionParams) AppendExtraSessions(sessions ...SessionContext) error { for i, session := range sessions { if session == nil { continue } s, err := newExtraSessionParam(session) if err != nil { return fmt.Errorf("cannot handle session context at index %d: %v", i, err) } if err := p.append(s); err != nil { return err } } return nil } func (p *sessionParams) ComputeCallerNonces() error { for _, s := range p.Sessions { if s.Session.Params().HashAlg == HashAlgorithmNull { continue } s.NonceCaller = make(Nonce, s.Session.Params().HashAlg.Size()) if err := cryptComputeNonce(s.NonceCaller); err != nil { return fmt.Errorf("cannot compute new caller nonce: %v", err) } } return nil } func (p *sessionParams) BuildCommandAuthArea(commandCode CommandCode, commandHandles []Name, cpBytes []byte) ([]AuthCommand, error) { p.CommandCode = commandCode if err := p.ComputeCallerNonces(); err != nil { return nil, fmt.Errorf("cannot compute caller nonces: %v", err) } if err := p.EncryptCommandParameter(cpBytes); err != nil { return nil, fmt.Errorf("cannot encrypt first command parameter: %v", err) } p.ComputeEncryptNonce() var area []AuthCommand for _, s := range p.Sessions { a := s.BuildCommandAuth(p.CommandCode, commandHandles, cpBytes) area = append(area, *a) } return area, nil } func (p *sessionParams) InvalidateSessionContexts(authResponses []AuthResponse) { for i, resp := range authResponses { session := p.Sessions[i].Session if resp.SessionAttributes&AttrContinueSession != 0 { continue } session.Dispose() } } func (p *sessionParams) ProcessResponseAuthArea(authResponses []AuthResponse, rpBytes []byte) error { defer p.InvalidateSessionContexts(authResponses) if len(authResponses) != len(p.Sessions) { return fmt.Errorf("unexpected number of response auths (got %d, expected %d)", len(authResponses), len(p.Sessions)) } for i, resp := range authResponses { if err := p.Sessions[i].ProcessResponseAuth(resp, p.CommandCode, rpBytes); err != nil { return &InvalidAuthResponseError{i + 1, err.Error()} } } if err := p.DecryptResponseParameter(rpBytes); err != nil { return fmt.Errorf("cannot decrypt first response parameter: %v", err) } return nil } ./github.com/canonical/go-tpm2/cmds_attestation.go0000664000000000000000000003651400000000000017264 0ustar00// Copyright 2019 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package tpm2 import ( "github.com/canonical/go-tpm2/mu" ) // Section 18 - Attestation Commands // Certify executes the TPM2_Certify command, which is used to prove that an object with a specific // name is loaded in to the TPM. By producing an attestation, the TPM certifies that the object // with a given name is loaded in to the TPM and consistent with a valid sensitive area. // // The objectContext parameter corresponds to the object for which to produce an attestation. The // command requires authorization with the admin role for objectContext, with session based // authorization provided via objectContextAuthSession. // // If signContext is not nil, the returned attestation will be signed by the key associated with // it. This command requires authorization with the user auth role for signContext, with session // based authorization provided via signContextAuthSession. // // If signContext is not nil and the object associated with signContext is not a signing key, a // *[TPMHandleError] error with an error code of [ErrorKey] will be returned for handle index 2. // // If signContext is not nil and if the scheme of the key associated with signContext is // [AsymSchemeNull], then inScheme must be provided to specify a valid signing scheme for the key. // If it isn't, a *[TPMParameterError] error with an error code of [ErrorScheme] will be returned // for parameter index 2. // // If signContext is not nil and the scheme of the key associated with signContext is not // [AsymSchemeNull], then inScheme may be nil. If it is provided, then the specified scheme must // match that of the signing key, else a *[TPMParameterError] error with an error code of // [ErrorScheme] will be returned for parameter index 2. // // If successful, it returns an attestation structure detailing the name of the object associated // with objectContext. If signContext is not nil, the attestation structure will be signed by the // associated key and returned too. func (t *TPMContext) Certify(objectContext, signContext ResourceContext, qualifyingData Data, inScheme *SigScheme, objectContextAuthSession, signContextAuthSession SessionContext, sessions ...SessionContext) (certifyInfo *Attest, signature *Signature, err error) { if inScheme == nil { inScheme = &SigScheme{Scheme: SigSchemeAlgNull} } if err := t.StartCommand(CommandCertify). AddHandles(UseResourceContextWithAuth(objectContext, objectContextAuthSession), UseResourceContextWithAuth(signContext, signContextAuthSession)). AddParams(qualifyingData, inScheme). AddExtraSessions(sessions...). Run(nil, mu.Sized(&certifyInfo), &signature); err != nil { return nil, nil, err } return certifyInfo, signature, nil } // CertifyCreation executes the TPM2_CertifyCreation command, which is used to prove the // association between the object represented by objectContext and its creation data represented by // creationHash. It does this by computing a ticket from creationHash and the name of the object // represented by objectContext and then verifying that it matches the provided creationTicket, // which was provided by the TPM at object creation time. // // If signContext is not nil, the returned attestation will be signed by the key associated with // it. This command requires authorization with the user auth role for signContext, with session // based authorization provided via signContextAuthSession. // // If signContext is not nil and the object associated with signContext is not a signing key, a // *[TPMHandleError] error with an error code of [ErrorKey] will be returned for handle index 1. // // If signContext is not nil and if the scheme of the key associated with signContext is // [AsymSchemeNull], then inScheme must be provided to specify a valid signing scheme for the key. // If it isn't, a *[TPMParameterError] error with an error code of [ErrorScheme] will be returned // for parameter index 3. // // If signContext is not nil and the scheme of the key associated with signContext is not // [AsymSchemeNull], then inScheme may be nil. If it is provided, then the specified scheme must // match that of the signing key, else a *[TPMParameterError] error with an error code of // [ErrorScheme] will be returned for parameter index 3. // // If creationTicket corresponds to an invalid ticket, a *[TPMParameterError] error with an error // code of [ErrorTicket] will be returned for parameter index 4. // // If the digest generated for signing is greater than or has a larger size than the modulus of // the key associated with signContext, a *[TPMError] with an error code of [ErrorValue] will be // returned. // // If successful, it returns an attestation structure. If signContext is not nil, the attestation // structure will be signed by the associated key and returned too. func (t *TPMContext) CertifyCreation(signContext, objectContext ResourceContext, qualifyingData Data, creationHash Digest, inScheme *SigScheme, creationTicket *TkCreation, signContextAuthSession SessionContext, sessions ...SessionContext) (certifyInfo *Attest, signature *Signature, err error) { if inScheme == nil { inScheme = &SigScheme{Scheme: SigSchemeAlgNull} } if err := t.StartCommand(CommandCertifyCreation). AddHandles(UseResourceContextWithAuth(signContext, signContextAuthSession), UseHandleContext(objectContext)). AddParams(qualifyingData, creationHash, inScheme, creationTicket). AddExtraSessions(sessions...). Run(nil, mu.Sized(&certifyInfo), &signature); err != nil { return nil, nil, err } return certifyInfo, signature, nil } // Quote executes the TPM2_Quote command in order to quote a set of PCR values. The TPM will hash // the set of PCRs specified by the pcrs parameter. // // If signContext is not nil, the returned attestation will be signed by the key associated with // it. This command requires authorization with the user auth role for signContext, with session // based authorization provided via signContextAuthSession. // // If signContext is not nil and the object associated with signContext is not a signing key, a // *[TPMHandleError] error with an error code of [ErrorKey] will be returned for handle index 1. // // If signContext is not nil and if the scheme of the key associated with signContext is // [AsymSchemeNull], then inScheme must be provided to specify a valid signing scheme for the key. // If it isn't, a *[TPMParameterError] error with an error code of [ErrorScheme] will be returned // for parameter index 2. // // If signContext is not nil and the scheme of the key associated with signContext is not // [AsymSchemeNull], then inScheme may be nil. If it is provided, then the specified scheme must // match that of the signing key, else a *[TPMParameterError] error with an error code of // [ErrorScheme] will be returned for parameter index 2. // // This function will call [TPMContext.InitProperties] if it hasn't already been called. // // On success, it returns an attestation structure containing the hash of the PCRs selected by the // pcrs parameter. If signContext is not nil, the attestation structure will be signed by the // associated key and returned too. func (t *TPMContext) Quote(signContext ResourceContext, qualifyingData Data, inScheme *SigScheme, pcrs PCRSelectionList, signContextAuthSession SessionContext, sessions ...SessionContext) (quoted *Attest, signature *Signature, err error) { if err := t.initPropertiesIfNeeded(); err != nil { return nil, nil, err } if inScheme == nil { inScheme = &SigScheme{Scheme: SigSchemeAlgNull} } if err := t.StartCommand(CommandQuote). AddHandles(UseResourceContextWithAuth(signContext, signContextAuthSession)). AddParams(qualifyingData, inScheme, pcrs.WithMinSelectSize(t.properties.minPcrSelectSize)). AddExtraSessions(sessions...). Run(nil, mu.Sized("ed), &signature); err != nil { return nil, nil, err } return quoted, signature, nil } // GetSessionAuditDigest executes the TPM2_GetSessionAuditDigest to obtain the current digest of // the audit session corresponding to sessionContext. // // The privacyAdminContext argument must be a ResourceContext that corresponds to // [HandleEndorsement]. This command requires authorization with the user auth role for // privacyAdminContext, with session based authorization provided via // privacyAdminContextAuthSession. // // If signContext is not nil, the returned attestation will be signed by the key associated with // it. This command requires authorization with the user auth role for signContext, with // session based authorization provided via signContextAuthSession. // // If signContext is not nil and the object associated with signContext is not a signing key, // a *[TPMHandleError] error with an error code of [ErrorKey] will be returned for handle index 2. // // If signContext is not nil and if the scheme of the key associated with signContext is // [AsymSchemeNull], then inScheme must be provided to specify a valid signing scheme for the key. // If it isn't, a *[TPMParameterError] error with an error code of [ErrorScheme] will be returned // for parameter index 2. // // If signContext is not nil and the scheme of the key associated with signContext is not // [AsymSchemeNull], then inScheme may be nil. If it is provided, then the specified scheme must // match that of the signing key, else a *[TPMParameterError] error with an error code of // [ErrorScheme] will be returned for parameter index 2. // // On success, it returns an attestation structure detailing the current audit digest for // sessionContext. If signContext is not nil, the attestation structure will be signed by the // associated key and returned too. func (t *TPMContext) GetSessionAuditDigest(privacyAdminContext, signContext ResourceContext, sessionContext SessionContext, qualifyingData Data, inScheme *SigScheme, privacyAdminContextAuthSession, signContextAuthSession SessionContext, sessions ...SessionContext) (auditInfo *Attest, signature *Signature, err error) { if inScheme == nil { inScheme = &SigScheme{Scheme: SigSchemeAlgNull} } if err := t.StartCommand(CommandGetSessionAuditDigest). AddHandles(UseResourceContextWithAuth(privacyAdminContext, privacyAdminContextAuthSession), UseResourceContextWithAuth(signContext, signContextAuthSession), UseHandleContext(sessionContext)). AddParams(qualifyingData, inScheme). AddExtraSessions(sessions...). Run(nil, mu.Sized(&auditInfo), &signature); err != nil { return nil, nil, err } return auditInfo, signature, nil } // GetCommandAuditDigest executes the TPM2_GetCommandAuditDigest command to obtain the current // command audit digest, the current audit digest algorithm and a digest of the list of commands // being audited. // // The privacyContext argument must be a ResourceContext corresponding to [HandleEndorsement]. // This command requires authorization with the user auth role for privacyContext, with session // based authorization provided via privacyContextAuthSession. // // If signContext is not nil, the returned attestation will be signed by the key associated with // it. This command requires authorization with the user auth role for signContext, with session // based authorization provided via provided via signContextAuthSession. // // If signContext is not nil and the object associated with signContext is not a signing key, a // *[TPMHandleError] error with an error code of [ErrorKey] will be returned for handle index 2. // // If signContext is not nil and if the scheme of the key associated with signContext is // [AsymSchemeNull], then inScheme must be provided to specify a valid signing scheme for the key. // If it isn't, a *[TPMParameterError] error with an error code of [ErrorScheme] will be returned // for parameter index 2. // // If signContext is not nil and the scheme of the key associated with signContext is not // [AsymSchemeNull], then inScheme may be nil. If it is provided, then the specified scheme must // match that of the signing key, else a *[TPMParameterError] error with an error code of // [ErrorScheme] will be returned for parameter index 2. // // On success, it returns an attestation structure detailing the current command audit digest, // digest algorithm and a digest of the list of commands being audited. If signContext is not // nil, the attestation structure will be signed by the associated key and returned too. func (t *TPMContext) GetCommandAuditDigest(privacyContext, signContext ResourceContext, qualifyingData Data, inScheme *SigScheme, privacyContextAuthSession, signContextAuthSession SessionContext, sessions ...SessionContext) (auditInfo *Attest, signature *Signature, err error) { if inScheme == nil { inScheme = &SigScheme{Scheme: SigSchemeAlgNull} } if err := t.StartCommand(CommandGetCommandAuditDigest). AddHandles(UseResourceContextWithAuth(privacyContext, privacyContextAuthSession), UseResourceContextWithAuth(signContext, signContextAuthSession)). AddParams(qualifyingData, inScheme). AddExtraSessions(sessions...). Run(nil, mu.Sized(&auditInfo), &signature); err != nil { return nil, nil, err } return auditInfo, signature, nil } // GetTime executes the TPM2_GetTime command in order to obtain the current values of time and // clock. // // The privacyAdminContext argument must be a ResourceContext that corresponds to // [HandleEndorsement]. The command requires authorization with the user auth role for // privacyAdminContext, with session based authorization provided via // privacyAdminContextAuthSession. // // If signContext is not nil, the returned attestation will be signed by the key associated with // it. This command requires authorization with the user auth role for signContext, with session // based authorization provided via signContextAuthSession. // // If signContext is not nil and the object associated with signContext is not a signing key, a // *[TPMHandleError] error with an error code of [ErrorKey] will be returned for handle index 2. // // If signContext is not nil and if the scheme of the key associated with signContext is // [AsymSchemeNull], then inScheme must be provided to specify a valid signing scheme for the key. // If it isn't, a *[TPMParameterError] error with an error code of [ErrorScheme] will be returned // for parameter index 2. // // If signContext is not nil and the scheme of the key associated with signContext is not // [AsymSchemeNull], then inScheme may be nil. If it is provided, then the specified scheme must // match that of the signing key, else a *[TPMParameterError] error with an error code of // [ErrorScheme] will be returned for parameter index 2. // // On success, it returns an attestation structure detailing the current values of time and clock. // If signContext is not nil, the attestation structure will be signed by the associated key and // returned too. func (t *TPMContext) GetTime(privacyAdminContext, signContext ResourceContext, qualifyingData Data, inScheme *SigScheme, privacyAdminContextAuthSession, signContextAuthSession SessionContext, sessions ...SessionContext) (timeInfo *Attest, signature *Signature, err error) { if inScheme == nil { inScheme = &SigScheme{Scheme: SigSchemeAlgNull} } if err := t.StartCommand(CommandGetTime). AddHandles(UseResourceContextWithAuth(privacyAdminContext, privacyAdminContextAuthSession), UseResourceContextWithAuth(signContext, signContextAuthSession)). AddParams(qualifyingData, inScheme). AddExtraSessions(sessions...). Run(nil, mu.Sized(&timeInfo), &signature); err != nil { return nil, nil, err } return timeInfo, signature, nil } ./github.com/canonical/go-tpm2/cmds_cap.go0000664000000000000000000006425200000000000015470 0ustar00// Copyright 2019 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package tpm2 import ( "encoding/binary" "fmt" "math" ) // Section 30 - Capability Commands // GetCapabilityRaw executes the TPM2_GetCapability command, which returns various properties of // the TPM and its current state. The capability parameter indicates the category of data to be // returned. The property parameter indicates the first value of the selected category to be // returned. The propertyCount parameter indicates the number of values to be returned. // // If no property in the TPM corresponds to the value of property, then the next property is // returned. // // The underlying implementation of TPM2_GetCapability is not required to (or may not be able to) // return all of the requested values in a single request. // // If capability is [CapabilityHandles] and property does not correspond to a valid handle type, a // *[TPMParameterError] error with an error code of [ErrorHandle] is returned for parameter index // 2. // // On success, a capability structure is returned containing the requested number of properties, // the number of properties available, or the number of properties that could be returned, // whichever is less. If there are more properties in the selected category, moreData will be true // whether the remaining properties were requested or not. func (t *TPMContext) GetCapabilityRaw(capability Capability, property, propertyCount uint32, sessions ...SessionContext) (moreData bool, capabilityData *CapabilityData, err error) { if err := t.StartCommand(CommandGetCapability). AddParams(capability, property, propertyCount). AddExtraSessions(sessions...). Run(nil, &moreData, &capabilityData); err != nil { return false, nil, err } return moreData, capabilityData, nil } // GetCapability executes the TPM2_GetCapability command, which returns various properties of the // TPM and its current state. The capability parameter indicates the category of data to be // returned. The property parameter indicates the first value of the selected category to be // returned. The propertyCount parameter indicates the number of values to be returned. // // If no property in the TPM corresponds to the value of property, then the next property is // returned. // // The underlying implementation of TPM2_GetCapability is not required to (or may not be able to) // return all of the requested values in a single request. This function will re-execute the // TPM2_GetCapability command until all of the requested properties have been returned. As a // consequence, any [SessionContext] instances provided should have the [AttrContinueSession] // attribute defined. // // If capability is [CapabilityHandles] and property does not correspond to a valid handle type, a // *[TPMParameterError] error with an error code of [ErrorHandle] is returned for parameter index // 2. // // On success, a capability structure is returned containing the requested number of properties, // or the number of properties available, whichever is less. func (t *TPMContext) GetCapability(capability Capability, property, propertyCount uint32, sessions ...SessionContext) (capabilityData *CapabilityData, err error) { capabilityData = &CapabilityData{Capability: capability, Data: &CapabilitiesU{}} nextProperty := property remaining := propertyCount for { moreData, data, err := t.GetCapabilityRaw(capability, nextProperty, remaining, sessions...) if err != nil { return nil, err } if data.Capability != capability { return nil, &InvalidResponseError{CommandGetCapability, fmt.Errorf("TPM responded with data for the wrong capability (got %s)", data.Capability)} } var l int var p uint32 switch data.Capability { case CapabilityAlgs: capabilityData.Data.Algorithms = append(capabilityData.Data.Algorithms, data.Data.Algorithms...) l = len(data.Data.Algorithms) if l > 0 { p = uint32(data.Data.Algorithms[l-1].Alg) } case CapabilityHandles: capabilityData.Data.Handles = append(capabilityData.Data.Handles, data.Data.Handles...) l = len(data.Data.Handles) if l > 0 { p = uint32(data.Data.Handles[l-1]) } case CapabilityCommands: capabilityData.Data.Command = append(capabilityData.Data.Command, data.Data.Command...) l = len(data.Data.Command) if l > 0 { p = uint32(data.Data.Command[l-1].CommandCode()) } case CapabilityPPCommands: capabilityData.Data.PPCommands = append(capabilityData.Data.PPCommands, data.Data.PPCommands...) l = len(data.Data.PPCommands) if l > 0 { p = uint32(data.Data.PPCommands[l-1]) } case CapabilityAuditCommands: capabilityData.Data.AuditCommands = append(capabilityData.Data.AuditCommands, data.Data.AuditCommands...) l = len(data.Data.AuditCommands) if l > 0 { p = uint32(data.Data.AuditCommands[l-1]) } case CapabilityPCRs: if moreData { return nil, &InvalidResponseError{CommandGetCapability, fmt.Errorf("TPM did not respond with all requested properties for capability %s", data.Capability)} } return data, nil case CapabilityTPMProperties: capabilityData.Data.TPMProperties = append(capabilityData.Data.TPMProperties, data.Data.TPMProperties...) l = len(data.Data.TPMProperties) if l > 0 { p = uint32(data.Data.TPMProperties[l-1].Property) } case CapabilityPCRProperties: capabilityData.Data.PCRProperties = append(capabilityData.Data.PCRProperties, data.Data.PCRProperties...) l = len(data.Data.PCRProperties) if l > 0 { p = uint32(data.Data.PCRProperties[l-1].Tag) } case CapabilityECCCurves: capabilityData.Data.ECCCurves = append(capabilityData.Data.ECCCurves, data.Data.ECCCurves...) l = len(data.Data.ECCCurves) if l > 0 { p = uint32(data.Data.ECCCurves[l-1]) } case CapabilityAuthPolicies: capabilityData.Data.AuthPolicies = append(capabilityData.Data.AuthPolicies, data.Data.AuthPolicies...) l = len(data.Data.AuthPolicies) if l > 0 { p = uint32(data.Data.AuthPolicies[l-1].Handle) } } nextProperty += p + 1 remaining -= uint32(l) if !moreData || remaining <= 0 { break } } return capabilityData, nil } // GetCapabilityAlgs is a convenience function for [TPMContext.GetCapability], and returns // properties of the algorithms supported by the TPM. The first parameter indicates the first // algorithm for which to return properties. If this algorithm isn't supported, then the // properties of the next supported algorithm are returned instead. The propertyCount parameter // indicates the number of algorithms for which to return properties. func (t *TPMContext) GetCapabilityAlgs(first AlgorithmId, propertyCount uint32, sessions ...SessionContext) (algs AlgorithmPropertyList, err error) { data, err := t.GetCapability(CapabilityAlgs, uint32(first), propertyCount, sessions...) if err != nil { return nil, err } return data.Data.Algorithms, nil } // GetCapabilityAlg is a convenience function for [TPMContext.GetCapability] that returns the // properties of the specified algorithm if it is supported by the TPM. If the algorithm isn't // recognized, a *[MissingPropertyError[AlgorithmId]] error may be returned. func (t *TPMContext) GetCapabilityAlg(alg AlgorithmId, sessions ...SessionContext) (AlgorithmProperty, error) { algs, err := t.GetCapabilityAlgs(alg, 1, sessions...) if err != nil { return AlgorithmProperty{}, err } if len(algs) == 0 || algs[0].Alg != alg { return AlgorithmProperty{}, &MissingPropertyError[AlgorithmId]{Capability: CapabilityAlgs, Property: alg} } return algs[0], nil } // IsAlgorithmSupported is a convenience function for [TPMContext.GetCapability] that determines if // the specified algorithm is supported by the TPM. Note that this will indicate that the algorithm // is unsupported if the TPM returns an error. func (t *TPMContext) IsAlgorithmSupported(alg AlgorithmId, sessions ...SessionContext) bool { if _, err := t.GetCapabilityAlg(alg, sessions...); err != nil { return false } return true } // GetCapabilityCommands is a convenience function for [TPMContext.GetCapability], and returns // attributes of the commands supported by the TPM. The first parameter indicates the first command // for which to return attributes. If this command isn't supported, then the attributes of the next // supported command are returned instead. The propertyCount parameter indicates the number of // commands for which to return attributes. func (t *TPMContext) GetCapabilityCommands(first CommandCode, propertyCount uint32, sessions ...SessionContext) (commands CommandAttributesList, err error) { data, err := t.GetCapability(CapabilityCommands, uint32(first), propertyCount, sessions...) if err != nil { return nil, err } return data.Data.Command, nil } // GetCapabilityCommand is a convenience function for [TPMContext.GetCapability] that returns the // attributes of the specified command if it is supported by the TPM. If it isn't supported, a // *[MissingPropertyError[CommandCode]] error may be returned. func (t *TPMContext) GetCapabilityCommand(code CommandCode, sessions ...SessionContext) (CommandAttributes, error) { commands, err := t.GetCapabilityCommands(code, 1, sessions...) if err != nil { return 0, err } if len(commands) == 0 || commands[0].CommandCode() != code { return 0, &MissingPropertyError[CommandCode]{Capability: CapabilityCommands, Property: code} } return commands[0], nil } // IsCommandSupported is a convenience function for [TPMContext.GetCapability] that determines if // the specified command is supported by the TPM. Note that this will indicate that the command is // unsupported if the TPM returns an error. func (t *TPMContext) IsCommandSupported(code CommandCode, sessions ...SessionContext) bool { if _, err := t.GetCapabilityCommand(code, sessions...); err != nil { return false } return true } // GetCapabilityPPCommands is a convenience function for [TPMContext.GetCapability], and returns a // list of commands that require physical presence for platform authorization. The first parameter // indicates the command code at which the returned list should start. The propertyCount parameter // indicates the maximum number of command codes to return. func (t *TPMContext) GetCapabilityPPCommands(first CommandCode, propertyCount uint32, sessions ...SessionContext) (ppCommands CommandCodeList, err error) { data, err := t.GetCapability(CapabilityPPCommands, uint32(first), propertyCount, sessions...) if err != nil { return nil, err } return data.Data.PPCommands, nil } // GetCapabilityAuditCommands is a convenience function for [TPMContext.GetCapability], and returns // a list of commands that are currently set for command audit. The first parameter indicates the // command code at which the returned list should start. The propertyCount parameter indicates the // maximum number of command codes to return. func (t *TPMContext) GetCapabilityAuditCommands(first CommandCode, propertyCount uint32, sessions ...SessionContext) (auditCommands CommandCodeList, err error) { data, err := t.GetCapability(CapabilityAuditCommands, uint32(first), propertyCount, sessions...) if err != nil { return nil, err } return data.Data.AuditCommands, nil } // GetCapabilityHandles is a convenience function for [TPMContext.GetCapability], and returns a // list of handles of resources on the TPM. The firstHandle parameter indicates the type of handles // to be returned (represented by the most-significant byte), and also the handle at which the list // should start. The propertyCount parameter indicates the maximum number of handles to return. func (t *TPMContext) GetCapabilityHandles(firstHandle Handle, propertyCount uint32, sessions ...SessionContext) (handles HandleList, err error) { data, err := t.GetCapability(CapabilityHandles, uint32(firstHandle), propertyCount, sessions...) if err != nil { return nil, err } return data.Data.Handles, nil } // DoesHandleExist is a convenience function for [TPMContext.GetCapability] that determines if a // resource with the specified handle exists on the TPM. This will indicate that the resource does // not exist if the TPM returns an error. If handle corresponds to a session, this will only return // true if the session is loaded. func (t *TPMContext) DoesHandleExist(handle Handle, sessions ...SessionContext) bool { origHandle := handle if handle.Type() == HandleTypeSavedSession { handle &= 0x00ffffff handle |= Handle(HandleTypeLoadedSession) << 24 } handles, err := t.GetCapabilityHandles(handle, 1, sessions...) if err != nil { return false } if len(handles) == 0 || handles[0] != origHandle { return false } return true } // DoesSavedSessionExist is a convenience function for [TPMContext.GetCapability] that determines // if the specified handle corresponds to a saved session. This will indicate that there is no // saved session if the TPM returns an error. func (t *TPMContext) DoesSavedSessionExist(handle Handle, sessions ...SessionContext) bool { switch handle.Type() { case HandleTypeHMACSession, HandleTypePolicySession: // ok default: return false } handle &= 0x00ffffff handle |= Handle(HandleTypeSavedSession) << 24 handles, err := t.GetCapabilityHandles(handle, 1, sessions...) if err != nil { return false } handle &= 0x00ffffff handle |= Handle(HandleTypeHMACSession) << 24 if len(handles) == 0 || handles[0] != handle { return false } return true } // GetCapabilityPCRs is a convenience function for [TPMContext.GetCapability], and returns the // current allocation of PCRs on the TPM. func (t *TPMContext) GetCapabilityPCRs(sessions ...SessionContext) (pcrs PCRSelectionList, err error) { data, err := t.GetCapability(CapabilityPCRs, 0, CapabilityMaxProperties, sessions...) if err != nil { return nil, err } return data.Data.AssignedPCR, nil } // GetCapabilityTPMProperties is a convenience function for [TPMContext.GetCapability], and returns // the values of properties of the TPM. The first parameter indicates the first property for which // to return a value. If the property does not exist, then the value of the next available property // is returned. The propertyCount parameter indicates the number of properties for which to return // values. func (t *TPMContext) GetCapabilityTPMProperties(first Property, propertyCount uint32, sessions ...SessionContext) (tpmProperties TaggedTPMPropertyList, err error) { data, err := t.GetCapability(CapabilityTPMProperties, uint32(first), propertyCount, sessions...) if err != nil { return nil, err } return data.Data.TPMProperties, nil } // GetCapabilityTPMProperty is a convenience function for [TPMContext.GetCapability] that returns // the value of the specified property if it exists. If it doesn't exist, a // *[MissingPropertyError[Property]] error may be returned. func (t *TPMContext) GetCapabilityTPMProperty(property Property, sessions ...SessionContext) (uint32, error) { props, err := t.GetCapabilityTPMProperties(property, 1, sessions...) if err != nil { return 0, err } if len(props) == 0 || props[0].Property != property { return 0, &MissingPropertyError[Property]{Capability: CapabilityTPMProperties, Property: property} } return props[0].Value, nil } // GetManufacturer is a convenience function for [TPMContext.GetCapability] that returns the ID of // the TPM manufacturer. func (t *TPMContext) GetManufacturer(sessions ...SessionContext) (manufacturer TPMManufacturer, err error) { m, err := t.GetCapabilityTPMProperty(PropertyManufacturer, sessions...) if err != nil { return 0, err } return TPMManufacturer(m), nil } // GetInputBuffer is a convenience function for [TPMContext.GetCapability] that returns the value // of the [PropertyInputBuffer] property, which indicates the maximum size of arguments of the // [MaxBuffer] type in bytes. The size is TPM implementation specific, but required to be at least // 1024 bytes. // // Deprecated: Use [GetMaxBufferSize] instead. func (t *TPMContext) GetInputBuffer(sessions ...SessionContext) int { n, err := t.GetCapabilityTPMProperty(PropertyInputBuffer, sessions...) if err != nil { return 1024 } return int(n) } // GetMaxBufferSize is a convenience function for [TPMContext.GetCapability] that returns the value // of the [PropertyInputBuffer] property, which indicates the maximum size in bytes supported by the // TPM for arguments of the [MaxBuffer] type. func (t *TPMContext) GetMaxBufferSize(sessions ...SessionContext) (uint16, error) { n, err := t.GetCapabilityTPMProperty(PropertyInputBuffer, sessions...) if err != nil { return 0, err } if n > math.MaxUint16 { return 0, &InvalidResponseError{CommandGetCapability, ErrCapabilityValueOutOfRange} } return uint16(n), nil } // GetMaxDigest is a convenience function for [TPMContext.GetCapability] that returns the value of // the [PropertyMaxDigest] property, which indicates the size of the largest digest algorithm // supported by the TPM in bytes. // // Deprecated: Use [GetMaxDigestSize]. func (t *TPMContext) GetMaxDigest(sessions ...SessionContext) (int, error) { n, err := t.GetMaxDigestSize(sessions...) return int(n), err } // GetMaxDigestSize is a convenience function for [TPMContext.GetCapability] that returns the value // of the [PropertyMaxDigest] property, which indicates the size in bytes of the largest digest // algorithm supported by the TPM. func (t *TPMContext) GetMaxDigestSize(sessions ...SessionContext) (uint16, error) { n, err := t.GetCapabilityTPMProperty(PropertyMaxDigest, sessions...) if err != nil { return 0, err } if n > 64 { return 0, &InvalidResponseError{CommandGetCapability, ErrCapabilityValueOutOfRange} } return uint16(n), nil } // GetMaxData is a convenience function for [TPMContext.GetCapability] that returns the maximum // size of arguments of the [Data] type supported by the TPM in bytes. // // Deprecated: Use [GetMaxDataSize]. func (t *TPMContext) GetMaxData(sessions ...SessionContext) (int, error) { n, err := t.GetMaxDataSize(sessions...) return int(n), err } // GetMaxDataSize is a convenience function for [TPMContext.GetCapability] that returns the // maximum size in bytes supported by the TPM for arguments of the [Data] type. func (t *TPMContext) GetMaxDataSize(sessions ...SessionContext) (uint16, error) { n, err := t.GetMaxDigestSize(sessions...) if err != nil { return 0, err } return n + uint16(binary.Size(AlgorithmId(0))), nil } // GetNVBufferMax is a convenience function for [TPMContext.GetCapability] that returns the value // of the [PropertyNVBufferMax] property, which indicates the maximum buffer size supported by the // TPM in bytes for [TPMContext.NVReadRaw] and [TPMContext.NVWriteRaw]. // // Deprecated: Use [GetNVMaxBufferSize]. func (t *TPMContext) GetNVBufferMax(sessions ...SessionContext) (int, error) { n, err := t.GetNVMaxBufferSize(sessions...) return int(n), err } // GetNVMaxBufferSize is a convenience function for [TPMContext.GetCapability] that returns the // value of the [PropertyNVBufferMax] property, which indicates the maximum buffer size in bytes // supported by the TPM for arguments of the [MaxNVBuffer] type (used by [TPMContext.NVReadRaw] // and [TPMContext.NVWriteRaw]). It may return a [ErrCapabilityValueOutOfRange] error if the // returned value doesn't fit into uint16. func (t *TPMContext) GetNVMaxBufferSize(sessions ...SessionContext) (uint16, error) { n, err := t.GetCapabilityTPMProperty(PropertyNVBufferMax, sessions...) if err != nil { return 0, err } if n > math.MaxUint16 { return 0, &InvalidResponseError{CommandGetCapability, ErrCapabilityValueOutOfRange} } return uint16(n), nil } // GetNVIndexMax is a convenience function for [TPMContext.GetCapability] that returns the value of // the [PropertyNVIndexMax] property, which indicates the maximum size of a single NV index. // // Deprecated: Use [GetNVMaxIndexSize]. func (t *TPMContext) GetNVIndexMax(sessions ...SessionContext) (int, error) { return t.GetNVMaxIndexSize(sessions...) } // GetNVMaxIndexSize is a convenience function for [TPMContext.GetCapability] that returns the // value of the [PropertyNVIndexMax] property, which indicates the maximum size in bytes of a // single NV index. func (t *TPMContext) GetNVMaxIndexSize(sessions ...SessionContext) (int, error) { n, err := t.GetCapabilityTPMProperty(PropertyNVIndexMax, sessions...) if err != nil { return 0, err } return int(n), nil } // GetMinPCRSelectSize is a convenience function for [TPMContext.GetCapability] that returns the // value of the [PropertyPCRSelectMin] property, which indicates the minimum number of bytes in a // PCR selection. It may return a [ErrCapabilityValueOutOfRange] error if the returned value // doesn't fit into uint8. func (t *TPMContext) GetMinPCRSelectSize(sessions ...SessionContext) (uint8, error) { n, err := t.GetCapabilityTPMProperty(PropertyPCRSelectMin, sessions...) if err != nil { return 0, err } if n > math.MaxUint8 { return 0, &InvalidResponseError{CommandGetCapability, ErrCapabilityValueOutOfRange} } return uint8(n), nil } // GetCapabilityPCRProperties is a convenience function for [TPMContext.GetCapability], and returns // the values of PCR properties. The first parameter indicates the first property for which to // return a value. If the property does not exist, then the value of the next available property is // returned. The propertyCount parameter indicates the number of properties for which to return // values. Each returned property value is a list of PCR indexes associated with a property. func (t *TPMContext) GetCapabilityPCRProperties(first PropertyPCR, propertyCount uint32, sessions ...SessionContext) (pcrProperties TaggedPCRPropertyList, err error) { data, err := t.GetCapability(CapabilityPCRProperties, uint32(first), propertyCount, sessions...) if err != nil { return nil, err } return data.Data.PCRProperties, nil } // GetCapabilityECCCurves is a convenience function for [TPMContext.GetCapability], and returns a // list of ECC curves supported by the TPM. func (t *TPMContext) GetCapabilityECCCurves(sessions ...SessionContext) (eccCurves ECCCurveList, err error) { data, err := t.GetCapability(CapabilityECCCurves, uint32(ECCCurveFirst), CapabilityMaxProperties, sessions...) if err != nil { return nil, err } return data.Data.ECCCurves, nil } // IsECCCurveSupported is a convenience function for [TPMContext.GetCapability] that determines if // the specified curve is supported. This will indicate that the specified curve is unsupported if // the TPM returns an error. func (t *TPMContext) IsECCCurveSupported(curve ECCCurve, sessions ...SessionContext) bool { curves, err := t.GetCapabilityECCCurves(sessions...) if err != nil { return false } for _, supported := range curves { if supported == curve { return true } } return false } // GetCapabilityAuthPolicies is a convenience function for [TPMContext.GetCapability], and returns // auth policy digests associated with permanent handles. The first parameter indicates the first // handle for which to return an auth policy. If the handle doesn't exist, then the auth policy // for the next available handle is returned. The propertyCount parameter indicates the number of // permanent handles for which to return an auth policy. func (t *TPMContext) GetCapabilityAuthPolicies(first Handle, propertyCount uint32, sessions ...SessionContext) (authPolicies TaggedPolicyList, err error) { data, err := t.GetCapability(CapabilityAuthPolicies, uint32(first), propertyCount, sessions...) if err != nil { return nil, err } return data.Data.AuthPolicies, nil } // GetCapabilityAuthPolicy is a convenience function for [TPMContext.GetCapability], and returns // the auth policy digest associated with the supplied permanent handle, if there is one. This will // return a null hash if there is no auth policy digest. If the handle isn't recognized, a // *[MissingPropertyError[Handle]] error may be returned. func (t *TPMContext) GetCapabilityAuthPolicy(handle Handle, sessions ...SessionContext) (TaggedHash, error) { policies, err := t.GetCapabilityAuthPolicies(handle, 1, sessions...) if err != nil { return MakeTaggedHash(HashAlgorithmNull, nil), err } if len(policies) == 0 || policies[0].Handle != handle { return MakeTaggedHash(HashAlgorithmNull, nil), &MissingPropertyError[Handle]{Capability: CapabilityAuthPolicies, Property: handle} } return policies[0].PolicyHash, nil } // IsTPM2 determines whether this TPMContext is connected to a TPM2 device. It does this by // attempting to execute a TPM2_GetCapability command, and verifying that the response packet has // the expected tag. // // On success, this will return true if TPMContext is connected to a TPM2 device, or false if it is // connected to a TPM1.2 device. It will return false if communication with the device fails of if // the response is badly formed. func (t *TPMContext) IsTPM2() (isTpm2 bool) { _, err := t.GetCapabilityTPMProperties(PropertyTotalCommands, 0) if _, ok := err.(*TPMErrorBadTag); ok { return false } return true } // TestParms executes the TPM2_TestParms command to check if the specified combination of algorithm // parameters is supported. func (t *TPMContext) TestParms(parameters *PublicParams, sessions ...SessionContext) error { return t.StartCommand(CommandTestParms).AddParams(parameters).AddExtraSessions(sessions...).Run(nil) } // IsRSAKeySizeSupporters is a convenience function around [TPMContext.TestParms] that determines // whether the specified RSA key size is supported. func (t *TPMContext) IsRSAKeySizeSupported(keyBits uint16, sessions ...SessionContext) bool { params := PublicParams{ Type: ObjectTypeRSA, Parameters: &PublicParamsU{ RSADetail: &RSAParams{ Symmetric: SymDefObject{Algorithm: SymObjectAlgorithmNull}, Scheme: RSAScheme{Scheme: RSASchemeNull}, KeyBits: keyBits, Exponent: 0}}} if err := t.TestParms(¶ms, sessions...); err != nil { return false } return true } // IsSymmetricAlgorithmSupported is a convenience function around [TPMContext.TestParms] that // determines whether the specified symmetric algorithm and key size combination is supported. func (t *TPMContext) IsSymmetricAlgorithmSupported(algorithm SymObjectAlgorithmId, keyBits uint16, sessions ...SessionContext) bool { params := PublicParams{ Type: ObjectTypeSymCipher, Parameters: &PublicParamsU{ SymDetail: &SymCipherParams{ Sym: SymDefObject{ Algorithm: algorithm, KeyBits: &SymKeyBitsU{Sym: keyBits}, Mode: &SymModeU{Sym: SymModeCFB}}}}} if err := t.TestParms(¶ms, sessions...); err != nil { return false } return true } ./github.com/canonical/go-tpm2/cmds_clock.go0000664000000000000000000000150100000000000016004 0ustar00// Copyright 2019 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package tpm2 // Section 29 - Clocks and Timers // ReadClock executes the TPM2_ReadClock command. On succesful completion, it will return a // TimeInfo struct that contains the current value of time, clock, reset and restart counts. func (t *TPMContext) ReadClock(sessions ...SessionContext) (currentTime *TimeInfo, err error) { if err := t.StartCommand(CommandReadClock). AddExtraSessions(sessions...). Run(nil, ¤tTime); err != nil { return nil, err } return currentTime, nil } // func (t *TPMContext) ClockSet(auth Handle, newTime uint64, authAuth interface{}) error { // } // func (t *TPMContext) ClockRateAdjust(auth Handle, rateAdjust ClockAdjust, authAuth interface{}) error { // } ./github.com/canonical/go-tpm2/cmds_command_audit.go0000664000000000000000000000314400000000000017522 0ustar00// Copyright 2019 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package tpm2 // Section 21 - Command Audit // SetCommandCodeAuditStatus executes the TPM2_SetCommandCodeAuditStatus command to allow the // privacy administrator or platform to change the audit status of a command, or change the digest // algorithm used for command auditing (but not both at the same time). // // The auth parameter should be a ResourceContext corresponding to either [HandlePlatform] or // [HandleOwner]. This command requires authorization of auth with the user auth role, with session // based authorization provided via authAuthSession. // // The auditAlg argument specifies the digest algorithm for command auditing. The setList argument // is used to specify which commands should be added to the list of commands to be audited. The // clearList argument is used to specify which commands should be removed from the list of commands // to be audited. // // If auditAlg is not [HashAlgorithmNull] or the current audit digest algorithm, and the length of // setList or clearList is greater than zero, a *[TPMParameterError] error with an error code of // [ErrorValue] will be returned for parameter index 1. func (t *TPMContext) SetCommandCodeAuditStatus(auth ResourceContext, auditAlg HashAlgorithmId, setList, clearList CommandCodeList, authAuthSession SessionContext, sessions ...SessionContext) error { return t.StartCommand(CommandSetCommandCodeAuditStatus). AddHandles(UseResourceContextWithAuth(auth, authAuthSession)). AddParams(auditAlg, setList, clearList). Run(nil) } ./github.com/canonical/go-tpm2/cmds_context.go0000664000000000000000000002612500000000000016406 0ustar00// Copyright 2019 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package tpm2 // Section 28 - Context Management import ( "errors" "fmt" "github.com/canonical/go-tpm2/mu" ) // ContextSave executes the TPM2_ContextSave command on the handle referenced by saveContext, in // order to save the context associated with that handle outside of the TPM. The TPM encrypts and // integrity protects the context with a key derived from the hierarchy proof. If saveContext does // not correspond to a transient object or a session, then it will return an error. // // On successful completion, it returns a Context structure that can be passed to // [TPMContext.ContextLoad]. Note that this function wraps the context blob returned from the TPM // with some host-side state associated with the resource, so that it can be restored fully in // [TPMContext.ContextLoad]. This means that the context structure cannot be passed directly to the // TPM using the TPM2_ContextLoad command, but [TPMContext.ContextLoad] must be used instead. If // saveContext corresponds to a session, the host-side state that is added to the returned context // blob includes the session key. // // If saveContext corresponds to a session, then TPM2_ContextSave also removes resources associated // with the session from the TPM (it becomes a saved session rather than a loaded session). In this // case, saveContext can only be used as an argument to [TPMContext.FlushContext]. // // If saveContext corresponds to a session and no more contexts can be saved, a *[TPMError] error // will be returned with an error code of [ErrorTooManyContexts]. If a context ID cannot be // assigned for the session, a *[TPMWarning] error with a warning code of [WarningContextGap] will // be returned. func (t *TPMContext) ContextSave(saveContext HandleContext) (context *Context, err error) { if err := t.StartCommand(CommandContextSave). AddHandles(UseHandleContext(saveContext)). Run(nil, &context); err != nil { return nil, err } if saveContext == nil { return nil, &InvalidResponseError{CommandContextSave, errors.New("expected an error because no saveContext was supplied")} } blob, err := mu.MarshalToBytes(saveContext.SerializeToBytes(), context.Blob) if err != nil { return nil, fmt.Errorf("cannot wrap context blob: %w", err) } context.Blob = blob return context, nil } // ContextLoad executes the TPM2_ContextLoad command with the supplied Context, in order to restore // a context previously saved from [TPMContext.ContextSave]. // // Note that the context blob returned from [TPMContext.ContextSave] wraps the context blob returned // from the TPM with some host-side state that can be used by this function to reconstruct a // HandleContext. This function expects a context structure created by [TPMContext.ContextSave] as // opposed to one created directly by the TPM2_ContextSave command on the TPM. // // If the size field of the integrity HMAC in the unwrapped context blob is greater than the size of // the largest digest algorithm, a *[TPMError] with an error code of [ErrorSize] is returned. If the // unwrapped context blob is shorter than the indicated size of the integrity HMAC, a *[TPMError] error // with an error code of [ErrorInsufficient] is returned. // // If the size of the integrity HMAC in the unwrapped context blob does not match the size of the // context integrity digest algorithm for the TPM, or the unwrapped context blob is too short, a // *[TPMParameterError] error with an error code of [ErrorSize] is returned. // // If the integrity HMAC check for the context including the unwrapped blob fails, a // *[TPMParameterError] with an error code of [ErrorIntegrity] will be returned. // // If the hierarchy that the context is part of is disabled, a *[TPMParameterError] error with an // error code of [ErrorHierarchy] will be returned. // // If the context corresponds to a session but the handle doesn't reference a saved session or the // sequence number is invalid, a *[TPMParameterError] error with an error code of [ErrorHandle] // will be returned. // // If the context corresponds to a session and no more sessions can be created until the oldest // session is context loaded, and context doesn't correspond to the oldest session, a *[TPMWarning] // error with a warning code of [WarningContextGap] will be returned. // // If there are no more slots available for objects or loaded sessions, a *[TPMWarning] error with // a warning code of either [WarningSessionMemory] or [WarningObjectMemory] will be returned. // // On successful completion, it returns a HandleContext which corresponds to the resource loaded in // to the TPM. The returned context will be equivalent to the HandleContext originally passed to // [TPMContext.ContextSave]. func (t *TPMContext) ContextLoad(context *Context) (loadedContext HandleContext, err error) { if context == nil { return nil, makeInvalidArgError("context", "nil value") } var contextData []byte var blob ContextData if _, err := mu.UnmarshalFromBytes(context.Blob, &contextData, &blob); err != nil { return nil, fmt.Errorf("cannot unmarshal context blob: %w", err) } hc, _, err := NewHandleContextFromBytes(contextData) if err != nil { return nil, fmt.Errorf("cannot unmarshal handle context: %w", err) } switch hc.Handle().Type() { case HandleTypeHMACSession, HandleTypePolicySession: if hc.Handle() != context.SavedHandle { return nil, errors.New("host and TPM context blobs have inconsistent handles") } case HandleTypeTransient: default: return nil, errors.New("unexpected context type") } tpmContext := Context{ Sequence: context.Sequence, SavedHandle: context.SavedHandle, Hierarchy: context.Hierarchy, Blob: blob} var loadedHandle Handle if err := t.StartCommand(CommandContextLoad). AddParams(tpmContext). Run(&loadedHandle); err != nil { return nil, err } switch hc.Handle().Type() { case HandleTypeTransient: if loadedHandle.Type() != HandleTypeTransient { return nil, &InvalidResponseError{CommandContextLoad, fmt.Errorf("handle %v returned from TPM is the wrong type", loadedHandle)} } switch obj := hc.(type) { case ObjectContext: return newObjectContext(loadedHandle, hc.Name(), obj.Public()), nil case ResourceContext: return newResourceContext(loadedHandle, hc.Name()), nil default: return newHandleContext(loadedHandle), nil } case HandleTypeHMACSession, HandleTypePolicySession: if loadedHandle != context.SavedHandle { return nil, &InvalidResponseError{CommandContextLoad, fmt.Errorf("handle %v returned from TPM is incorrect", loadedHandle)} } return hc, nil default: panic("not reached") } } // FlushContext executes the TPM2_FlushContext command on the handle referenced by flushContext, // in order to flush resources associated with it from the TPM. If flushContext does not correspond // to a transient object or a session, then it will return with an error. // // On successful completion, flushContext is invalidated. If flushContext corresponded to a // session, then it will no longer be possible to restore that session with // [TPMContext.ContextLoad], even if it was previously saved with [TPMContext.ContextSave]. func (t *TPMContext) FlushContext(flushContext HandleContext) error { if flushContext == nil { return makeInvalidArgError("flushContext", "nil value") } if err := t.StartCommand(CommandFlushContext).AddParams(flushContext.Handle()).Run(nil); err != nil { return err } flushContext.Dispose() return nil } // EvictControl executes the TPM2_EvictControl command on the handle referenced by object. To // persist a transient object, object should correspond to the transient object and // persistentHandle should specify the persistent handle to which the resource associated with // object should be persisted. To evict a persistent object, object should correspond to the // persistent object and persistentHandle should be the handle associated with that resource. // // The auth parameter should be a ResourceContext that corresponds to a hierarchy - it should be // [HandlePlatform] for objects within the platform hierarchy, or [HandleOwner] for objects within // the storage or endorsement hierarchies. If auth is a ResourceContext corresponding to // [HandlePlatform] but object corresponds to an object outside of the platform hierarchy, or auth // is a ResourceContext corresponding to [HandleOwner] but object corresponds to an object inside // of the platform hierarchy, a *[TPMHandleError] error with an error code of [ErrorHierarchy] will // be returned for handle index 2. The auth handle requires authorization with the user auth role, // with session based authorization provided via authAuthSession. // // If object corresponds to a transient object that only has a public part loaded, or which has the // [AttrStClear] attribute set, then a *[TPMHandleError] error with an error code of // [ErrorAttributes] will ba returned for handle index 2. // // If object corresponds to a persistent object and persistentHandle is not the handle for that // object, a *[TPMHandleError] error with an error code of [ErrorHandle] will be returned for // handle index 2. // // If object corresponds to a transient object and persistentHandle is not in the correct range // determined by the value of auth, a *[TPMParameterError] error with an error code of [ErrorRange] // will be returned. // // If there is insuffient space to persist a transient object, a *[TPMError] error with an error // code of [ErrorNVSpace] will be returned. If a persistent object already exists at the specified // handle, a *[TPMError] error with an error code of [ErrorNVDefined] will be returned. // // On successful completion of persisting a transient object, it returns a ResourceContext that // corresponds to the persistent object. If object can be type asserted to [ObjectContext], then // the returned ResourceContext can also be type asserted to [ObjectContext]. On successful // completion of evicting a persistent object, it returns a nil ResourceContext, and object will be // invalidated. func (t *TPMContext) EvictControl(auth, object ResourceContext, persistentHandle Handle, authAuthSession SessionContext, sessions ...SessionContext) (ResourceContext, error) { var public *Public if object != nil && object.Handle() != persistentHandle { // We are persisting an object if obj, isObj := object.(ObjectContext); isObj && obj.Public() != nil { if err := mu.CopyValue(&public, obj.Public()); err != nil { return nil, fmt.Errorf("cannot copy public area of object: %v", err) } } } if err := t.StartCommand(CommandEvictControl). AddHandles(UseResourceContextWithAuth(auth, authAuthSession), UseHandleContext(object)). AddParams(persistentHandle). Run(nil); err != nil { return nil, err } if object == nil { return nil, &InvalidResponseError{CommandEvictControl, errors.New("expected an error")} } name := make(Name, len(object.Name())) copy(name, object.Name()) if object.Handle() == persistentHandle { // we evicted an object object.Dispose() return nil, nil } if public == nil { return newResourceContext(persistentHandle, name), nil } return newObjectContext(persistentHandle, name, public), nil } ./github.com/canonical/go-tpm2/cmds_da.go0000664000000000000000000000510200000000000015276 0ustar00// Copyright 2019 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package tpm2 // Section 25 - Dictionary Attack Functions // DictionaryAttackLockReset executes the TPM2_DictionaryAttackLockReset command to cancel the // effect of a TPM lockout. The lockContext parameter must always be a ResourceContext // corresponding to [HandleLockout]. The command requires authorization with the user auth role // for lockContext, with session based authorization provided via lockContextAuthSession. // // On successful completion, the lockout counter will be reset to zero. func (t *TPMContext) DictionaryAttackLockReset(lockContext ResourceContext, lockContextAuthSession SessionContext, sessions ...SessionContext) error { return t.StartCommand(CommandDictionaryAttackLockReset). AddHandles(UseResourceContextWithAuth(lockContext, lockContextAuthSession)). AddExtraSessions(sessions...). Run(nil) } // DictionaryAttackParameters executes the TPM2_DictionaryAttackParameters command to change the // dictionary attack lockout settings. The newMaxTries parameter sets the maximum value of the // lockout counter before the TPM enters lockout mode. If it is set to zero, then the TPM will // enter lockout mode and the use of dictionary attack protected entities will be disabled. // The newRecoveryTime parameter specifies the amount of time in seconds it takes for the lockout // counter to decrement by one. If it is set to zero, then dictionary attack protection is // disabled. The lockoutRecovery parameter specifies the amount of time in seconds that the lockout // hierarchy authorization cannot be used after an authorization failure. If it is set to zero, // then the lockout hierarchy can be used again after a TPM reset, restart or resume. The // newRecoveryTime and lockoutRecovery parameters are measured against powered on time rather than // clock time. // // The lockContext parameter must be a ResourceContext corresponding to [HandleLockout]. The // command requires authorization with the user auth role for lockContext, with session based // authorization provided via lockContextAuthSession. func (t *TPMContext) DictionaryAttackParameters(lockContext ResourceContext, newMaxTries, newRecoveryTime, lockoutRecovery uint32, lockContextAuthSession SessionContext, sessions ...SessionContext) error { return t.StartCommand(CommandDictionaryAttackParameters). AddHandles(UseResourceContextWithAuth(lockContext, lockContextAuthSession)). AddParams(newMaxTries, newRecoveryTime, lockoutRecovery). AddExtraSessions(sessions...). Run(nil) } ./github.com/canonical/go-tpm2/cmds_duplication.go0000664000000000000000000002355000000000000017234 0ustar00// Copyright 2019 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package tpm2 import ( "github.com/canonical/go-tpm2/mu" ) // Section 13 - Duplication Commands // Duplicate executes the TPM2_Duplicate command in order to duplicate the object associated with // objectContext so that it may be used in a different hierarchy. The new parent is specified by // the newParentContext argument, which may correspond to an object on the same or a different TPM, // or may be nil for no parent. // // This command requires authorization for objectContext with the duplication role, with the // session provided via objectContextAuthSession. // // If symmetricAlg is provided, it defines the symmetric algorithm used for the inner duplication // wrapper (see section 23.3 - "Protected Storage Hierarchy - Duplication" of Part 1 of the Trusted // Platform Module Library specification). If symmetricAlg is provided and symmetricAlg.Algorithm // is not [SymObjectAlgorithmNull], a symmetric key for the inner duplication wrapper may be // provided via encryptionKeyIn. // // If newParentContext is supplied, an outer duplication wrapper is applied (see section 23.3 - // "Protected Storage Hierarchy - Duplication" of Part 1 of the Trusted Platform Module Library // specification) // // If the object associated with objectContext has the [AttrFixedParent] atttribute set, a // *[TPMHandleError] error with an error code of [ErrorAttributes] will be returned for handle // index 1. // // If the object associated with objectContext has a name algorithm of [HashAlgorithmNull], a // *[TPMHandleError] error with an error code of [ErrorType] will be returned for handle index 1. // // If newParentContext is provided and it does not correspond to a storage parent, a // *[TPMHandleError] error with an error code of [ErrorType] will be returned for handle index 2. // // If the object associated with objectContext has the [AttrEncryptedDuplication] attribute set and // no symmetricAlg is provided or symmetricAlg.Algorithm is [SymObjectAlgorithmNull], a // *[TPMParameterError] error with an error code of [ErrorSymmetric] will be returned for parameter // index 2. // // If the object associated with objectContext has the [AttrEncryptedDuplication] attribute set and // newParentContext is not provided, a *[TPMHandleError] error with an error code of // [ErrorHierarchy] will be returned for handle index 2. // // If the length of encryptionKeyIn is not consistent with symmetricAlg, a *[TPMParameterError] // error with an error code of [ErrorSize] will be returned for parameter index 1. // // If newParentContext corresponds to an ECC key and the public point of the key is not on the // curve specified by the key, a *[TPMError] error with an error code of [ErrorKey] will be // returned. // // On success, the function returns a randomly generated symmetric key as Data for the inner // duplication wrapper if symmetricAlg was provided, symmetricAlg.Algorithm was not // [SymObjectAlgorithmNull] and encryptionKeyIn was not provided. It also returns the sensitive // area associated with objectContext protected with an inner duplication wrapper (if specified by // symmetricAlg) and an outer duplication wrapper (if newParentContext was provided). If // newParentContext was provided, a secret structure that can be used by the private part of the // new parent to recover the seed used to generate the outer wrapper is returned as an // EncryptedSecret. func (t *TPMContext) Duplicate(objectContext, newParentContext ResourceContext, encryptionKeyIn Data, symmetricAlg *SymDefObject, objectContextAuthSession SessionContext, sessions ...SessionContext) (encryptionKeyOut Data, duplicate Private, outSymSeed EncryptedSecret, err error) { if symmetricAlg == nil { symmetricAlg = &SymDefObject{Algorithm: SymObjectAlgorithmNull} } if err := t.StartCommand(CommandDuplicate). AddHandles(UseResourceContextWithAuth(objectContext, objectContextAuthSession), UseHandleContext(newParentContext)). AddParams(encryptionKeyIn, symmetricAlg). AddExtraSessions(sessions...). Run(nil, &encryptionKeyOut, &duplicate, &outSymSeed); err != nil { return nil, nil, nil, err } return encryptionKeyOut, duplicate, outSymSeed, nil } // func (t *TPMContext) Rewrap(oldParent, newParent HandleContext, inDuplicate Private, name Name, inSymSeed EncryptedSecret, oldParentAuth interface{}, sessions ...SessionContext) (Private, EncryptedSecret, error) { // } // Import executes the TPM2_Import command in order to encrypt the sensitive area of the object // associated with the objectPublic and duplicate arguments with the symmetric algorithm of the // storage parent associated with parentContext, so that it can be loaded and used in the new // hierarchy. // // If the object to be imported has an outer duplication wrapper (see section 23.3 - // "Protected Storage Hierarchy - Duplication" of Part 1 of the Trusted Platform Module Library // specification), then inSymSeed must be supplied which contains a secret structure that can be // recovered by the private part of the key associated with parentContext in order to remove the // outer wrapper. // // If the object to be imported has an inner duplication wrapper (see section 23.3 - // "Protected Storage Hierarchy - Duplication" of Part 1 of the Trusted Platform Module Library // specification), then symmetricAlg must be provided with the algorithm of the inner duplication // wrapper, and encryptionKey must be provided with the symmetric key for the inner duplication // wrapper. // // This command requires authorization with the user auth role for parentContext, with session // based authorization provided via parentContextAuthSession. // // If objectPublic has the [AttrFixedTPM] or [AttrFixedParent] attributes set, a // *[TPMParameterError] error with an error code of [ErrorAttributes] will be returned for // parameter index 2. // // If parentContext is not associated with a storage parent, a *[TPMHandleError] error with an // error code of [ErrorType] will be returned. // // If the length of encryptionKey is not consistent with symmetricAlg, a *[TPMParameterError] error // with an error code of [ErrorSize] will be returned for parameter index 1. // // If symmetricAlg is not provided or symmetricAlg.Algorithm is [SymObjectAlgorithmNull] and // objectPublic has the [AttrEncryptedDuplication] attribute set, a *[TPMParameterError] error with // an error code of [ErrorAttributes] will be returned for parameter index 1. // // If the length of inSymSeed is not zero and the object associated with parentContext is not an // asymmetric key, a *[TPMHandleError] error with an error code of [ErrorType] will be returned. // // If parentContext is associated with a RSA key and the size of inSymSeed does not match the size // of the key's public modulus, a *[TPMParameterError] error with an error code of [ErrorSize] will // be returned for parameter index 4. // // If parentContext is associated with a RSA key and the plaintext size of inSymSeed is larger than // the name algorithm, a *[TPMParameterError] error with an error code of [ErrorValue] will be // returned for parameter index 4. // // If parentContext is associated with a ECC key and inSymSeed does not contain enough data to // unmarshal a ECC point, a *[TPMParameterError] error with an error code of [ErrorInsufficient] // will be returned for parameter index 4. // // If parentContext is associated with a ECC key and the ECC point in inSymSeed is not on the curve // specified by the parent key, a *[TPMParameterError] error with an error code of [ErrorECCPoint] // will be returned for parameter index 4. // // If parentContext is associated with a ECC key and multiplication of the ECC point in inSymSeed // results in a point at infinity, a *[TPMParameterError] error with an error code of // [ErrorNoResult] will be returned for parameter index 4. // // If the name of the object associated with objectPublic cannot be computed, a // *[TPMParameterError] error with an error code of [ErrorHash] will be returned for parameter // index 2. // // If the object has an outer duplication wrapper and the integrity value of duplicate cannot be // unmarshalled correctly, a *[TPMParameterError] error with an error code of either [ErrorSize] or // [ErrorInsufficient] will be returned for parameter index 3. If the integrity check fails, a // *[TPMParameterError] error with an error code of [ErrorIntegrity] will be returned for parameter // index 3. // // If the object has an inner duplication wrapper and the integrity value of duplicate cannot be // unmarshalled correctly after decrypting the inner wrapper, a *[TPMParameterError] error with an // error code of either [ErrorSize] or [ErrorInsufficient] will be returned for parameter index 3. // If the integrity check fails, a *[TPMParameterError error with an error code of [ErrorIntegrity] // will be returned for parameter index 3. // // If, after removing the duplication wrappers, the sensitive area does not unmarshal correctly, a // *[TPMParameterError] error with an error code of either [ErrorSize] or [ErrorInsufficient] will // be returned for parameter index 3. // // On success, a new private area encrypted with the symmetric algorithm defined by the object // associated with parentContext is returned. func (t *TPMContext) Import(parentContext ResourceContext, encryptionKey Data, objectPublic *Public, duplicate Private, inSymSeed EncryptedSecret, symmetricAlg *SymDefObject, parentContextAuthSession SessionContext, sessions ...SessionContext) (outPrivate Private, err error) { if symmetricAlg == nil { symmetricAlg = &SymDefObject{Algorithm: SymObjectAlgorithmNull} } if err := t.StartCommand(CommandImport). AddHandles(UseResourceContextWithAuth(parentContext, parentContextAuthSession)). AddParams(encryptionKey, mu.Sized(objectPublic), duplicate, inSymSeed, symmetricAlg). AddExtraSessions(sessions...). Run(nil, &outPrivate); err != nil { return nil, err } return outPrivate, nil } ./github.com/canonical/go-tpm2/cmds_ea.go0000664000000000000000000007702100000000000015310 0ustar00// Copyright 2019 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package tpm2 // Section 23 - Enhanced Authorization (EA) Commands // PolicySigned executes the TPM2_PolicySigned command to include a signed authorization in a // policy. This is a combined assertion that binds a policy to the signing key associated with // authContext. // // An authorizing entity signs a digest of authorization qualifiers with the key associated with // authContext. The digest is computed as: // // digest := H(nonceTPM||expiration||cpHashA||policyRef) // // ... where H is the digest algorithm associated with the auth parameter. // // Where there are no restrictions, the digest is computed from 4 zero bytes, which corresponds to // an expiration time of zero. The authorization qualifiers must match the arguments passed to this // command. The signature is provided via the auth parameter. // // The signature can be created using [github.com/canonical/go-tpm2/policyutil.SignPolicySignedAuthorization]. // // If includeNonceTPM is set to true, this function includes the most recently received TPM nonce // value for the session associated with policySession as the first command parameter. In this // case, the nonce value must be included in the digest that is signed by the authorizing entity. // The current nonce value can be obtained and sent to the signer from the [SessionContextState] // obtained from [SessionContext]. // // The cpHashA parameter allows the session to be bound to a specific command and set of command // parameters by providing a command parameter digest. Command parameter digests can be computed // using [github.com/canonical/go-tpm2/policyutil.ComputeCpHash], using the digest algorithm for the // session. If provided, the cpHashA value must be included in the digest that is signed by the // authorizing entity. Note that this only binds the use of the session to a specific set of command // parameters - this assertion cannot be used to bind a policy to a specific set of command // parameters. For that, use [TPMContext.PolicyCpHash]. If the cpHashA parameter is not provided, // the session is not bound to a specific command and set of command parameters. // // If policySession does not correspond to a trial session and cpHashA is supplied, a *[TPMError] // error with an error code of [ErrorCpHash] will be returned if the session context already has a // command parameter digest, name digest or template digest recorded on it and cpHashA does not // match it. // // If policySession does not correspond to a trial session, cpHashA is supplied and its length does // not match the digest algorithm for the session, a *[TPMParameterError] error with an error code // of [ErrorSize] will be returned for parameter index 2. // // If the expiration parameter is not 0, it sets a timeout based on the absolute value of // expiration in seconds, by which time the authorization will expire. If includeNonceTPM is true // then the timeout is measured from the time that the current TPM nonce was generated for the // session, else it is measured from the time that this command is executed. If the session // associated with policySession is not a trial session and expiration corresponds to a time in the // past, or the TPM's time epoch has changed since the session was started, a *[TPMParameterError] // error with an error code of [ErrorExpired] will be returned for parameter index 4. // // If the session associated with policySession is not a trial session and the signing scheme or // digest algorithm associated with the auth parameter is not supported by the TPM, a // *[TPMParameterError] error with an error code of ErrorScheme will be returned for parameter // index 5. // // If the session associated with policySession is not a trial session, the signature will be // validated against a digest computed from the provided arguments, using the key associated with // authContext. If the signature is invalid, a *[TPMParameterError] error with an error code of // [ErrorSignature] will be returned for parameter index 5. // // On successful completion, the policy digest of the session associated with policySession will be // extended to include the name of authContext and the value of policyRef. If provided, the value // of cpHashA will be recorded on the session context to restrict the session's usage. If // expiration is non-zero, the expiration time of the session context will be updated unless it // already has an expiration time that is earlier. If expiration is less than zero, a timeout value // and corresponding *TkAuth ticket will be returned if policySession does not correspond to a // trial session. If includeNonceTPM is false, the returned ticket will expire on the next TPM // reset if that occurs before the timeout. func (t *TPMContext) PolicySigned(authContext ResourceContext, policySession SessionContext, includeNonceTPM bool, cpHashA Digest, policyRef Nonce, expiration int32, auth *Signature, sessions ...SessionContext) (timeout Timeout, policyTicket *TkAuth, err error) { var nonceTPM Nonce if includeNonceTPM { nonceTPM = policySession.State().NonceTPM } if err := t.StartCommand(CommandPolicySigned). AddHandles(UseHandleContext(authContext), UseHandleContext(policySession)). AddParams(nonceTPM, cpHashA, policyRef, expiration, auth). AddExtraSessions(sessions...). Run(nil, &timeout, &policyTicket); err != nil { return nil, nil, err } return timeout, policyTicket, nil } // PolicySecret executes the TPM2_PolicySecret command to include a secret-based authorization to // the policy session associated with policySession, and is a combined assertion. The command // requires authorization with the user auth role for authContext, with session based // authorization provided via authContextAuthSession. If authContextAuthSession corresponds a // policy session, and that session does not include a TPM2_PolicyPassword or TPM2_PolicyAuthValue // assertion, a *[TPMSessionError] error with an error code of [ErrorMode] will be returned for // session index 1. // // This function includes the most recently received TPM nonce value for the session associated // with policySession as the first command parameter. // // The cpHashA parameter allows the session to be bound to a specific command and set of command // parameters by providing a command parameter digest. Command parameter digests can be computed // using [github.com/canonical/go-tpm2/policyutil.ComputeCpHash], using the digest algorithm for the // session. Note that this only binds the use of the session to a specific set of command // parameters - this assertion cannot be used to bind a policy to a specific set of command // parameters. For that, use [TPMContext.PolicyCpHash]. If the cpHashA parameter is not provided, // the session is not bound to a specific command and set of command parameters. // // If policySession does not correspond to a trial session and cpHashA is supplied, a *[TPMError] // error with an error code of [ErrorCpHash] will be returned if the session context already has a // command parameter digest, name digest or template digest recorded on it and cpHashA does not // match it. // // If policySession does not correspond to a trial session, cpHashA is supplied and its length does // not match the digest algorithm for the session, a *[TPMParameterError] error with an error code // of [ErrorSize] will be returned for parameter index 2. // // If the expiration parameter is not 0, it sets a timeout based on the absolute value of // expiration in seconds, by which time the authorization will expire. The timeout is measured from // the time that the current TPM nonce was generated for the session. If the session associated // with policySession is not a trial session and expiration corresponds to a time in the past, or // the TPM's time epoch has changed since the session was started, a *[TPMParameterError] error // with an error code of [ErrorExpired] will be returned for parameter index 4. // // On successful completion, knowledge of the authorization value associated with authContext is // proven. The policy digest of the session associated with policySession will be extended to // include the name of authContext and the value of policyRef. If provided, the value of cpHashA // will be recorded on the session context to restrict the session's usage. If expiration is // non-zero, the expiration time of the session context will be updated unless it already has an // expiration time that is earlier. If expiration is less than zero, a timeout value and // corresponding *TkAuth ticket will be returned if policySession does not correspond to a trial // session. func (t *TPMContext) PolicySecret(authContext ResourceContext, policySession SessionContext, cpHashA Digest, policyRef Nonce, expiration int32, authContextAuthSession SessionContext, sessions ...SessionContext) (timeout Timeout, policyTicket *TkAuth, err error) { if err := t.StartCommand(CommandPolicySecret). AddHandles(UseResourceContextWithAuth(authContext, authContextAuthSession), UseHandleContext(policySession)). AddParams(policySession.State().NonceTPM, cpHashA, policyRef, expiration). AddExtraSessions(sessions...). Run(nil, &timeout, &policyTicket); err != nil { return nil, nil, err } return timeout, policyTicket, nil } // PolicyTicket executes the TPM2_PolicyTicket command, and behaves similarly to // [TPMContext.PolicySigned] with the exception that it takes an authorization ticket rather than a // signed authorization. The ticket parameter represents a valid authorization with an expiration // time, and will have been returned from a previous call to [TPMContext.PolicySigned] or // [TPMContext.PolicySecret] when called with an expiration time of less than zero. // // If policySession corresponds to a trial session, a *[TPMHandleError] error with an error code of // [ErrorAttributes] will be returned. // // If the size of timeout is not the expected size, a *[TPMParameterError] with an error code of // [ErrorSize] will be returned for parameter index 1. // // A *[TPMError] error with an error code of [ErrorCpHash] will be returned if cpHashA is supplied // and the session context already has a command parameter digest, name digest or template digest // recorded on it and cpHashA does not match it. // // The cpHashA and policyRef arguments must match the values passed to the command that originally // produced the ticket. If the command that produced the ticket was [TPMContext.PolicySecret], // authName must correspond to the name of the entity of which knowledge of the authorization value // was proven. If the command that produced the ticket was [TPMContext.PolicySigned], authName must // correspond to the name of the key that produced the signed authorization. // // If the ticket is invalid, a *[TPMParameterError] error with an error code of [ErrorTicket] will // be returned for parameter index 5. If the ticket corresponds to an authorization that has // expired, a *[TPMParameterError] error with an error code of [ErrorExpired] will be returned for // parameter index 1. // // On successful verification of the ticket, the policy digest of the session context associated // with policySession will be extended with the same values that the command that produced the // ticket would extend it with. If provided, the value of cpHashA will be recorded on the session // context to restrict the session's usage. The expiration time of the session context will be // updated with the value of timeout, unless it already has an expiration time that is earlier. func (t *TPMContext) PolicyTicket(policySession SessionContext, timeout Timeout, cpHashA Digest, policyRef Nonce, authName Name, ticket *TkAuth, sessions ...SessionContext) error { return t.StartCommand(CommandPolicyTicket). AddHandles(UseHandleContext(policySession)). AddParams(timeout, cpHashA, policyRef, authName, ticket). AddExtraSessions(sessions...). Run(nil) } // PolicyOR executes the TPM2_PolicyOR command to allow a policy to be satisfied by different sets // of conditions, and is an immediate assertion. If policySession does not correspond to a trial // session, it determines if the current policy digest of the session context associated with // policySession is contained in the list of digests specified via pHashList. If it is not, then a // *[TPMParameterError] error with an error code of [ErrorValue] is returned without making any // changes to the session context. // // On successful completion, the policy digest of the session context associated with policySession // is cleared, and then extended to include a digest of the concatenation of all of the digests // contained in pHashList. func (t *TPMContext) PolicyOR(policySession SessionContext, pHashList DigestList, sessions ...SessionContext) error { return t.StartCommand(CommandPolicyOR). AddHandles(UseHandleContext(policySession)). AddParams(pHashList). AddExtraSessions(sessions...). Run(nil) } // PolicyPCR executes the TPM2_PolicyPCR command to gate a policy based on the values of the PCRs // selected via the pcrs parameter. If no digest has been specified via the pcrDigest parameter, // then it is a deferred assertion and the policy digest of the session context associated with // policySession will be extended to include the value of the PCR selection and a digest computed // from the selected PCR contents. // // If pcrDigest is provided, then it is a combined assertion. If policySession does not correspond // to a trial session, the digest computed from the selected PCRs will be compared to the value of // pcrDigest and a *[TPMParameterError] error with an error code of [ErrorValue] will be returned // for parameter index 1 if they don't match, without making any changes to the session context. If // policySession corresponds to a trial session, the digest computed from the selected PCRs is not // compared to the value of pcrDigest; instead, the policy digest of the session is extended to // include the value of the PCR selection and the value of pcrDigest. // // If the PCR contents have changed since the last time this command was executed for this session, // a *[TPMError] error will be returned with an error code of [ErrorPCRChanged]. // // This function will call [TPMContext.InitProperties] if it hasn't already been called. func (t *TPMContext) PolicyPCR(policySession SessionContext, pcrDigest Digest, pcrs PCRSelectionList, sessions ...SessionContext) error { if err := t.initPropertiesIfNeeded(); err != nil { return err } return t.StartCommand(CommandPolicyPCR). AddHandles(UseHandleContext(policySession)). AddParams(pcrDigest, pcrs.WithMinSelectSize(t.properties.minPcrSelectSize)). AddExtraSessions(sessions...). Run(nil) } // func (t *TPMContext) PolicyLocality(policySession HandleContext, locality Locality, sessions ...SessionContext) error { // } // PolicyNV executes the TPM2_PolicyNV command to gate a policy based on the contents of the NV // index associated with nvIndex, and is an immediate assertion. The caller specifies a value to be // used for the comparison via the operandB argument, an offset from the start of the NV index data // from which to start the comparison via the offset argument, and a comparison operator via the // operation argument. // // The command requires authorization to read the NV index, defined by the state of the // [AttrNVPPRead], [AttrNVOwnerRead], [AttrNVAuthRead] and [AttrNVPolicyRead] attributes. The // handle used for authorization is specified via authContext. If the NV index has the // [AttrNVPPRead] attribute, authorization can be satisfied with [HandlePlatform]. If the NV index // has the [AttrNVOwnerRead] attribute, authorization can be satisfied with [HandleOwner]. If the // NV index has the [AttrNVAuthRead] or [AttrNVPolicyRead] attribute, authorization can be // satisfied with nvIndex. The command requires authorization with the user auth role for // authContext, with session based authorization provided via authContextAuthSession. If the // resource associated with authContext is not permitted to authorize this access and policySession // does not correspond to a trial session, a *[TPMError] error with an error code of // [ErrorNVAuthorization] will be returned. // // If nvIndex is being used for authorization and the [AttrNVAuthRead] attribute is defined, the // authorization can be satisfied by demonstrating knowledge of the authorization value, either via // cleartext or HMAC authorization. If nvIndex is being used for authorization and the // [AttrNVPolicyRead] attribute is defined, the authorization can be satisfied using a policy // session with a digest that matches the authorization policy for the index. // // If the index associated with nvIndex has the [AttrNVReadLocked] attribute set and policySession // does not correspond to a trial session, a *[TPMError] error with an error code of // [ErrorNVLocked] will be returned. // // If the index associated with nvIndex has not been initialized (ie, the [AttrNVWritten] attribute // is not set) and policySession does not correspond to a trial session, a *[TPMError] with an // error code of [ErrorNVUninitialized] will be returned. // // If the session associated with policySession is not a trial session and offset is outside of the // bounds of the NV index, a *[TPMParameterError] error with an error code of [ErrorValue] is // returned for paramter index 2. // // If the session associated with policySession is not a trial session and the size of operandB in // combination with the value of offset would result in a read outside of the bounds of the NV // index, a *[TPMParameterError] error with an error code of [ErrorSize] is returned for paramter // index 1. // // If the comparison fails and policySession does not correspond to a trial session, a *[TPMError] // error will be returned with an error code of [ErrorPolicy]. // // On successful completion, the policy digest of the session context associated with policySession // is extended to include the values of operandB, offset, operation and the name of nvIndex. func (t *TPMContext) PolicyNV(authContext, nvIndex ResourceContext, policySession SessionContext, operandB Operand, offset uint16, operation ArithmeticOp, authContextAuthSession SessionContext, sessions ...SessionContext) error { return t.StartCommand(CommandPolicyNV). AddHandles(UseResourceContextWithAuth(authContext, authContextAuthSession), UseHandleContext(nvIndex), UseHandleContext(policySession)). AddParams(operandB, offset, operation). AddExtraSessions(sessions...). Run(nil) } // PolicyCounterTimer executes the TPM2_PolicyCounterTimer command to gate a policy based on the // contents of the [TimeInfo] structure, and is an immediate assertion. The caller specifies a // value to be used for the comparison via the operandB argument, an offset from the start of the // [TimeInfo] structure from which to start the comparison via the offset argument, and a // comparison operator via the operation argument. // // If the comparison fails and policySession does not correspond to a trial session, a *[TPMError] // error will be returned with an error code of [ErrorPolicy]. // // On successful completion, the policy digest of the session context associated with policySession // is extended to include the values of operandB, offset and operation. func (t *TPMContext) PolicyCounterTimer(policySession SessionContext, operandB Operand, offset uint16, operation ArithmeticOp, sessions ...SessionContext) error { return t.StartCommand(CommandPolicyCounterTimer). AddHandles(UseHandleContext(policySession)). AddParams(operandB, offset, operation). AddExtraSessions(sessions...). Run(nil) } // PolicyCommandCode executes the TPM2_PolicyCommandCode command to indicate that an authorization // policy should be limited to a specific command. Ths is a deferred assertion. // // If the command code is not implemented, a *[TPMParameterError] error with an error code of // [ErrorPolicyCC] will be returned. If the session associated with policySession has already been // limited to a different command code, a *[TPMParameterError] error with an error code of // [ErrorValue] will be returned. // // On successful completion, the policy digest of the session context associated with policySession // will be extended to include the value of the specified command code, and the command code will // be recorded on the session context to limit usage of the session. func (t *TPMContext) PolicyCommandCode(policySession SessionContext, code CommandCode, sessions ...SessionContext) error { return t.StartCommand(CommandPolicyCommandCode). AddHandles(UseHandleContext(policySession)). AddParams(code). AddExtraSessions(sessions...). Run(nil) } // func (t *TPMContext) PolicyPhysicalPresence(policySession HandleContext, sessions ...SessionContext) error { // } // PolicyCpHash executes the TPM2_PolicyCpHash command to bind a policy to a specific command and // set of command parameters. This is a deferred assertion. // // [TPMContext.PolicySigned], [TPMContext.PolicySecret] and [TPMContext.PolicyTicket] allow an // authorizing entity to execute an arbitrary command as the cpHashA parameter is not included in // the session's policy digest. [TPMContext.PolicyCommandCode] allows the policy to be limited to // a specific command. This command allows the policy to be limited further to a specific command // and set of command parameters. // // Command parameter digests can be computed using [github.com/canonical/go-tpm2/policyutil.ComputeCpHash], // using the digest algorithm for the session. // // If the size of cpHashA is inconsistent with the digest algorithm for the session, a // *[TPMParameterError] error with an error code of [ErrorSize] will be returned. // // If the session associated with policySession already has a command parameter digest, name digest // or template digest defined, a *[TPMError] error with an error code of [ErrorCpHash] will be // returned if cpHashA does not match the digest already recorded on the session context. // // On successful completion, the policy digest of the session context associated with policySession // will be extended to include the value of cpHashA, and the value of cpHashA will be recorded on // the session context to limit usage of the session to the specific command and set of command // parameters. func (t *TPMContext) PolicyCpHash(policySession SessionContext, cpHashA Digest, sessions ...SessionContext) error { return t.StartCommand(CommandPolicyCpHash). AddHandles(UseHandleContext(policySession)). AddParams(cpHashA). AddExtraSessions(sessions...). Run(nil) } // PolicyNameHash executes the TPM2_PolicyNameHash command to bind a policy to a specific set of // TPM entities, without being bound to the parameters of the command. This is a deferred // assertion. // // The name hash can be computed using [github.com/canonical/go-tpm2/policyutil.ComputeNameHash], // using the digest algorithm for the session. // // If the size of nameHash is inconsistent with the digest algorithm for the session, a // *[TPMParameterError] error with an error code of [ErrorSize] will be returned. // // If the session associated with policySession already has a name digest, command parameter // digest or template digest defined, a *[TPMError] error with an error code of [ErrorCpHash] will // be returned. // // On successful completion, the policy digest of the session context associated with policySession // will be extended to include the value of nameHash, and the value of nameHash will be recorded on // the session context to limit usage of the session to the specific set of TPM entities. func (t *TPMContext) PolicyNameHash(policySession SessionContext, nameHash Digest, sessions ...SessionContext) error { return t.StartCommand(CommandPolicyNameHash). AddHandles(UseHandleContext(policySession)). AddParams(nameHash). AddExtraSessions(sessions...). Run(nil) } // PolicyDuplicationSelect executes the TPM2_PolicyDuplicationSelect command to allow the policy to // be restricted to duplication and to allow duplication to a specific new parent. The objectName // argument corresponds to the name of the object to be duplicated. The newParentName argument // corresponds to the name of the new parent object. This is a deferred assertion. // // If the session associated with policySession already has a command parameter digest, name digest // or template digest defined, a *[TPMError] error with an error code of [ErrorCpHash] will be // returned. // // If the session associated with policySession has already been limited to a specific command // code, a *[TPMError] error with an error code of [ErrorCommandCode] will be returned. // // On successful completion, the policy digest of the session context associated with policySession // will be extended to include the value of newParentName and includeObject. If includeObject is // true, the policy digest of the session will be extended to also include the value of objectName. // A digest of objectName and newParentName will be recorded as the name hash on the session // context to limit usage of the session to those entities, and the [CommandDuplicate] command code // will be recorded to limit usage of the session to [TPMContext.Duplicate]. func (t *TPMContext) PolicyDuplicationSelect(policySession SessionContext, objectName, newParentName Name, includeObject bool, sessions ...SessionContext) error { return t.StartCommand(CommandPolicyDuplicationSelect). AddHandles(UseHandleContext(policySession)). AddParams(objectName, newParentName, includeObject). AddExtraSessions(sessions...). Run(nil) } // PolicyAuthorize executes the TPM2_PolicyAuthorize command, which allows policies to change. This // is an immediate assertion. The command allows an authorizing entity to sign a new policy that // can be used in an existing policy. The authorizing party signs a digest that is computed as // follows: // // digest := H(approvedPolicy||policyRef) // // ... where H is the name algorithm of the key used to sign the digest. // // The signature can be created by [github.com/canonical/go-tpm2/policyutil.SignPolicyAuthorization]. // // The signature is then verified by [TPMContext.VerifySignature], which provides a ticket that is // used by this function. The digest that is signed can be created by // [github.com/canonical/go-tpm2/policyutil.ComputePolicyAuthorizationTBSDigest]. // // If the name algorithm of the signing key is not supported, a *[TPMParameterError] error with an // error code of [ErrorHash] will be returned for parameter index 3. // // If the length of keySign does not match the length of the name algorithm, a *[TPMParameterError] // error with an error code of [ErrorSize] will be returned for parameter index 3. // // If policySession is not associated with a trial session, the current digest of the session // associated with policySession will be compared with approvedPolicy. If they don't match, then a // *[TPMParameterError] error with an error code of [ErrorValue] will be returned for parameter // index 1. // // If policySession is not associated with a trial session and checkTicket is invalid, a // *[TPMParameterError] error with an error code of [ErrorValue] will be returned for parameter // index 4. // // On successful completion, the policy digest of the session context associated with policySession // is cleared, and then extended to include the value of keySign and policyRef. func (t *TPMContext) PolicyAuthorize(policySession SessionContext, approvedPolicy Digest, policyRef Nonce, keySign Name, checkTicket *TkVerified, sessions ...SessionContext) error { if checkTicket == nil { checkTicket = &TkVerified{Tag: TagVerified, Hierarchy: HandleNull} } return t.StartCommand(CommandPolicyAuthorize). AddHandles(UseHandleContext(policySession)). AddParams(approvedPolicy, policyRef, keySign, checkTicket). AddExtraSessions(sessions...). Run(nil) } // PolicyAuthValue executes the TPM2_PolicyAuthValue command to bind the policy to the // authorization value of the entity on which the authorization is used. This is a deferred // assertion. On successful completion, the policy digest of the session context associated with // policySession will be extended to record that this assertion has been executed, and a flag will // be set on the session context to indicate that the authorization value of the entity on which // the authorization is used must be included in the key for computing the command HMAC when the // session is used. // // When using policySession in a subsequent authorization, the authorization value of the entity // being authorized must be provided by calling [ResourceContext].SetAuthValue. func (t *TPMContext) PolicyAuthValue(policySession SessionContext, sessions ...SessionContext) error { if err := t.StartCommand(CommandPolicyAuthValue). AddHandles(UseHandleContext(policySession)). AddExtraSessions(sessions...). Run(nil); err != nil { return err } policySession.State().NeedsPassword = false policySession.State().NeedsAuthValue = true return nil } // PolicyPassword executes the TPM2_PolicyPassword command to bind the policy to the authorization // value of the entity on which the authorization is used. This is a deferred assertion. On // successful completion, the policy digest of the session context associated with policySession // will be extended to record that this assertion has been executed, and a flag will be set on the // session context to indicate that the authorization value of the entity on which the // authorization is used must be included in cleartext in the command authorization when the // session is used. // // When using policySession in a subsequent authorization, the authorization value of the entity // being authorized must be provided by calling [ResourceContext].SetAuthValue. func (t *TPMContext) PolicyPassword(policySession SessionContext, sessions ...SessionContext) error { if err := t.StartCommand(CommandPolicyPassword). AddHandles(UseHandleContext(policySession)). AddExtraSessions(sessions...). Run(nil); err != nil { return err } policySession.State().NeedsPassword = true policySession.State().NeedsAuthValue = false return nil } // PolicyGetDigest executes the TPM2_PolicyGetDigest command to return the current policy digest of // the session context associated with policySession. func (t *TPMContext) PolicyGetDigest(policySession SessionContext, sessions ...SessionContext) (policyDigest Digest, err error) { if err := t.StartCommand(CommandPolicyGetDigest). AddHandles(UseHandleContext(policySession)). AddExtraSessions(sessions...). Run(nil, &policyDigest); err != nil { return nil, err } return policyDigest, nil } // PolicyNvWritten executes the TPM2_PolicyNvWritten command to bind a policy to the value of the // [AttrNVWritten] attribute of the NV index being authorized, and is a deferred assertion. // // If this command has been executed previously in this session, and the value of writtenSet // doesn't match the value provided previously, a *[TPMParameterError] error with an error code of // [ErrorValue] will be returned. // // On successful completion, the policy digest of the session associated with policySession will be // extended to include the value of writtenSet. A flag will be set on the session context so that // the value of the [AttrNVWritten] attribute of the NV index being authorized will be compared to // writtenSet when the session is used. func (t *TPMContext) PolicyNvWritten(policySession SessionContext, writtenSet bool, sessions ...SessionContext) error { return t.StartCommand(CommandPolicyNvWritten). AddHandles(UseHandleContext(policySession)). AddParams(writtenSet). AddExtraSessions(sessions...). Run(nil) } // func (t *TPMContext) PolicyTemplate(policySession HandleContext, templateHash Digest, sessions ...SessionContext) error { // } // func (t *TPMContext) PolicyAuthorizeNV(authContext, nvIndex, policySession HandleContext, authContextAuth interface{}, sessions ...SessionContext) error { // } ./github.com/canonical/go-tpm2/cmds_hashhmac.go0000664000000000000000000003355100000000000016477 0ustar00// Copyright 2019 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package tpm2 // Section 17 - Hash/HMAC/Event Sequences // HMACStart executes the TPM2_HMAC_Start command to begin a HMAC sequence. The context argument // corresponds to a loaded HMAC key. This command requires authorization with the user auth role // for context, with session based authorization provided via contextAuthSession. The command // creates a new HMAC sequence object on the TPM. The auth argument defines the authorization value // for the newly created sequence object, which is required for subsequent use of it. // // If context does not correspond to an object with the type [ObjectTypeKeyedHash], a // *[TPMHandleError] error with an error code of [ErrorType] will be returned. // // If context corresponds to an object with the [AttrRestricted] attribute set, a *[TPMHandleError] // error with an error code of [ErrorAttributes] will be returned. // // If context does not correspond to a signing key, a *[TPMHandleError] error with an error code of // [ErrorKey] will be returned. // // The hashAlg argument specifies the HMAC algorithm. If the default scheme of the key associated // with context is [KeyedHashSchemeNull], then hashAlg must not be [HashAlgorithmNull]. If the // default scheme of the key associated with context is not [KeyedHashSchemeNull], then hashAlg // must either be [HashAlgorithmNull] or must match the key's default scheme, else a // *[TPMParameterError] error with an error code of [ErrorValue] will be returned for parameter // index 2. // // On success, a ResourceContext corresponding to the newly created HMAC/ sequence object will be // returned. It will not be necessary to call [ResourceContext].SetAuthValue on it - this function // sets the correct authorization value so that it can be used in subsequent commands that require // knowledge of the authorization value. func (t *TPMContext) HMACStart(context ResourceContext, auth Auth, hashAlg HashAlgorithmId, contextAuthSession SessionContext, sessions ...SessionContext) (sequenceContext ResourceContext, err error) { var sequenceHandle Handle if err := t.StartCommand(CommandHMACStart). AddHandles(UseResourceContextWithAuth(context, contextAuthSession)). AddParams(auth, hashAlg). AddExtraSessions(sessions...). Run(&sequenceHandle); err != nil { return nil, err } rc := newResourceContext(sequenceHandle, nil) authValue := make([]byte, len(auth)) copy(authValue, auth) rc.SetAuthValue(authValue) return rc, nil } // HashSequenceStart executes the TPM2_HashSequenceStart command to begin a hash or event sequence. // The command creates a new sequence object on the TPM. The auth argument defines the // authorization value for the newly created sequence object, which is required for subsequent use // of it. // // If hashAlg is [HashAlgorithmNull], this function will return a ResourceContext corresponding to // a newly created event sequence object. If hashAlg is not [HashAlgorithmNull], this function will // return a ResourceContext corresponding to a newly created hash sequence object. It will not be // necessary to call [ResourceContext].SetAuthValue on it - this function sets the correct // authorization value so that it can be used in subsequent commands that require knowledge of the // authorization value. func (t *TPMContext) HashSequenceStart(auth Auth, hashAlg HashAlgorithmId, sessions ...SessionContext) (sequenceContext ResourceContext, err error) { var sequenceHandle Handle if err := t.StartCommand(CommandHashSequenceStart). AddParams(auth, hashAlg). AddExtraSessions(sessions...). Run(&sequenceHandle); err != nil { return nil, err } rc := newResourceContext(sequenceHandle, nil) authValue := make([]byte, len(auth)) copy(authValue, auth) rc.SetAuthValue(authValue) return rc, nil } // SequenceUpdate executes the TPM2_SequenceUpdate command to add data to the HMAC, hash or event // sequence associated with sequenceContext. This command requires authorization with the user auth // role for sequenceContext, with session based authorization provided via // sequenceContextAuthSession. // // If sequenceContext does not correspond to a sequence object, then a *[TPMHandleError] error with // an error code of [ErrorMode] will be returned. // // If sequenceContext corresponds to a hash sequence and the hash sequence is intended to produce a // digest that will be signed with a restricted signing key, the first block of data added to this // sequence must be 4 bytes and not the value of [TPMGeneratedValue]. func (t *TPMContext) SequenceUpdate(sequenceContext ResourceContext, buffer MaxBuffer, sequenceContextAuthSession SessionContext, sessions ...SessionContext) error { return t.StartCommand(CommandSequenceUpdate). AddHandles(UseResourceContextWithAuth(sequenceContext, sequenceContextAuthSession)). AddParams(buffer). AddExtraSessions(sessions...). Run(nil) } // SequenceComplete executes the TPM2_SequenceComplete command to add the last part of the data // the HMAC or hash sequence associated with sequenceContext, and returns the result. This command // requires authorization with the user auth role for sequenceContext, with session based // authorization provided via sequenceContextAuthSession. // // If sequenceContext does not correspond to a HMAC or hash sequence object, then a // *[TPMHandleError] error with an error code of [ErrorMode] will be returned. // // If sequenceContext corresponds to a hash sequence and the hash sequence is intended to produce a // digest that will be signed with a restricted signing key, the first block of data added to this // sequence must be 4 bytes and not the value of [TPMGeneratedValue]. If the returned digest is // safe to sign with a restricted signing key, then a ticket that can be passed to // [TPMContext.Sign] will be returned. In this case, the hierarchy argument is used to specify the // hierarchy for the ticket. // // On success, the sequence object associated with sequenceContext will be evicted, and // sequenceContext will become invalid. func (t *TPMContext) SequenceComplete(sequenceContext ResourceContext, buffer MaxBuffer, hierarchy Handle, sequenceContextAuthSession SessionContext, sessions ...SessionContext) (result Digest, validation *TkHashcheck, err error) { if err := t.StartCommand(CommandSequenceComplete). AddHandles(UseResourceContextWithAuth(sequenceContext, sequenceContextAuthSession)). AddParams(buffer, hierarchy). AddExtraSessions(sessions...). Run(nil, &result, &validation); err != nil { return nil, nil, err } if validation.Hierarchy == HandleNull && len(validation.Digest) == 0 { validation = nil } sequenceContext.Dispose() return result, validation, nil } // EventSequenceComplete executes the TPM2_EventSequenceComplete command to add the last part of // the data to the event sequence associated with sequenceContext, and return the result. This // command requires authorization with the user auth role for sequenceContext, with session based // authorization provided via sequenceContextAuthSession. // // If pcrContext is not nil, the result will be extended to the corresponding PCR in the same // manner as [TPMContext.PCRExtend]. Authorization with the user auth role is required for // pcrContext, with session based authorization provided via pcrContextAuthSession. // // If sequenceContext does not correspond to an event sequence object, then a *[TPMHandleError] // error with an error code of [ErrorMode] will be returned for handle index 2. // // If pcrContext is not nil and the corresponding PCR can not be extended from the current // locality, a *[TPMError] error with an error code of [ErrorLocality] will be returned. // // On success, the sequence object associated with sequenceContext will be evicted, and // sequenceContext will become invalid. func (t *TPMContext) EventSequenceComplete(pcrContext, sequenceContext ResourceContext, buffer MaxBuffer, pcrContextAuthSession, sequenceContextAuthSession SessionContext, sessions ...SessionContext) (results TaggedHashList, err error) { if err := t.StartCommand(CommandEventSequenceComplete). AddHandles(UseResourceContextWithAuth(pcrContext, pcrContextAuthSession), UseResourceContextWithAuth(sequenceContext, sequenceContextAuthSession)). AddParams(buffer). AddExtraSessions(sessions...). Run(nil, &results); err != nil { return nil, err } sequenceContext.Dispose() return results, nil } type sequenceExecuteContext struct { sequenceContext ResourceContext buffer []byte hierarchy Handle tpm *TPMContext total int result Digest validation *TkHashcheck } func (c *sequenceExecuteContext) last() bool { return len(c.buffer[c.total:]) <= int(c.tpm.properties.maxBufferSize) } func (c *sequenceExecuteContext) run(sessions ...SessionContext) error { if c.last() { result, validation, err := c.tpm.SequenceComplete(c.sequenceContext, c.buffer[c.total:], c.hierarchy, sessions[0], sessions[1:]...) if err != nil { return err } c.result = result c.validation = validation return nil } b := c.buffer[c.total:] b = b[:c.tpm.properties.maxBufferSize] if err := c.tpm.SequenceUpdate(c.sequenceContext, b, sessions[0], sessions[1:]...); err != nil { return err } c.total += len(b) return nil } // SequenceExecute executes a hash or HMAC sequence to completion and returns the result by adding // the provided data to the sequence with a number of TPM2_SequenceUpdate commands appropriate for // the size of buffer, and executing a final TPM2_SequenceComplete command. This command requires // authorization with the user auth role for sequenceContext, with session based authorization // provided via sequenceContextAuthSession. // // If sequenceContext does not correspond to a hash or HMAC sequence object, then a // *[TPMHandleError] error with an error code of [ErrorMode] will be returned. // // If sequenceContext corresponds to a hash sequence and the hash sequence is intended to produce a // digest that will be signed with a restricted signing key, the first block of data added to this // sequence must be 4 bytes and not the value of [TPMGeneratedValue]. If the returned digest is // safe to sign with a restricted signing key, then a ticket that can be passed to // [TPMContext.Sign] will be returned. In this case, the hierarchy argument is used to specify the // hierarchy for the ticket. // // On success, the sequence object associated with sequenceContext will be evicted, and // sequenceContext will become invalid. func (t *TPMContext) SequenceExecute(sequenceContext ResourceContext, buffer []byte, hierarchy Handle, sequenceContextAuthSession SessionContext, sessions ...SessionContext) (result Digest, validation *TkHashcheck, err error) { if err := t.initPropertiesIfNeeded(); err != nil { return nil, nil, err } sessionsCopy := []SessionContext{sequenceContextAuthSession} sessionsCopy = append(sessionsCopy, sessions...) c := &sequenceExecuteContext{ sequenceContext: sequenceContext, buffer: buffer, hierarchy: hierarchy, tpm: t} if err := execMultipleHelper(c, sessionsCopy...); err != nil { return nil, nil, err } return c.result, c.validation, nil } type eventSequenceExecuteContext struct { pcrContext ResourceContext sequenceContext ResourceContext buffer []byte tpm *TPMContext total int results TaggedHashList } func (c *eventSequenceExecuteContext) last() bool { return len(c.buffer[c.total:]) <= int(c.tpm.properties.maxBufferSize) } func (c *eventSequenceExecuteContext) run(sessions ...SessionContext) error { if c.last() { results, err := c.tpm.EventSequenceComplete(c.pcrContext, c.sequenceContext, c.buffer[c.total:], sessions[0], sessions[1], sessions[2:]...) if err != nil { return err } c.results = results return nil } b := c.buffer[c.total:] b = b[:c.tpm.properties.maxBufferSize] if err := c.tpm.SequenceUpdate(c.sequenceContext, b, sessions[1], sessions[2:]...); err != nil { return err } c.total += len(b) return nil } // EventSequenceExecute executes an event sequence to completion and returns the result by adding // the provided data to the sequence with a number of TPM2_SequenceUpdate commands appropriate for // the size of buffer, and executing a final TPM2_EventSequenceComplete command. This command // requires authorization with the user auth role for sequenceContext, with session based // authorization provided via sequenceContextAuthSession. // // If pcrContext is not nil, the result will be extended to the corresponding PCR in the same // manner as [TPMContext.PCRExtend]. Authorization with the user auth role is required for // pcrContext, with session based authorization provided via pcrContextAuthSession. // // If sequenceContext does not correspond to an event sequence object, then a *[TPMHandleError] // error with an error code of [ErrorMode] will be returned for handle index 1 if the command is // [CommandSequenceUpdate], or handle index 2 if the command is [CommandEventSequenceComplete]. // // If pcrContext is not nil and the corresponding PCR can not be extended from the current // locality, a *[TPMError] error with an error code of [ErrorLocality] will be returned. // // On success, the sequence object associated with sequenceContext will be evicted, and // sequenceContext will become invalid. func (t *TPMContext) EventSequenceExecute(pcrContext, sequenceContext ResourceContext, buffer []byte, pcrContextAuthSession, sequenceContextAuthSession SessionContext, sessions ...SessionContext) (results TaggedHashList, err error) { if err := t.initPropertiesIfNeeded(); err != nil { return nil, err } sessionsCopy := []SessionContext{pcrContextAuthSession, sequenceContextAuthSession} sessionsCopy = append(sessionsCopy, sessions...) c := &eventSequenceExecuteContext{ pcrContext: pcrContext, sequenceContext: sequenceContext, buffer: buffer, tpm: t} if err := execMultipleHelper(c, sessionsCopy...); err != nil { return nil, err } return c.results, nil } ./github.com/canonical/go-tpm2/cmds_hierarchy.go0000664000000000000000000004332400000000000016700 0ustar00// Copyright 2019 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package tpm2 // Section 24 - Hierarchy Commands import ( "errors" "fmt" "github.com/canonical/go-tpm2/mu" ) // CreatePrimary executes the TPM2_CreatePrimary command to create a new primary object in the // hierarchy corresponding to primaryObject. // // The primaryObject parameter should correspond to a hierarchy. The command requires // authorization with the user auth role for primaryObject, with session based authorization // provided via primaryObjectAuthSession. // // A template for the object is provided via the inPublic parameter. The Type field of inPublic // defines the algorithm for the object. The NameAlg field defines the digest algorithm for // computing the name of the object. The Attrs field defines the attributes of the object. The // AuthPolicy field allows an authorization policy to be defined for the new object. // // Data that will form part of the sensitive area of the object can be provided via inSensitive, // which is optional. // // If the Attrs field of inPublic does not have the [AttrSensitiveDataOrigin] attribute set, then // the sensitive data in the created object is initialized with the data provided via the Data // field of inSensitive. // // If the Attrs field of inPublic has the [AttrSensitiveDataOrigin] attribute set and Type is // [ObjectTypeSymCipher], then the sensitive data in the created object is initialized with a TPM // generated key. The size of this key is determined by the symmetric algorithm defined in the // Params field of inPublic. If Type is [ObjectTypeKeyedHash], then the sensitive data in the // created object is initialized with a TPM generated value that is the same size as the name // algorithm selected by the NameAlg field of inPublic. // // If the Type field of inPublic is [ObjectTypeRSA] or [ObjectTypeECC], then the sensitive data in // the created object is initialized with a TPM generated private key. The size of this is // determined by the asymmetric algorithm defined in the Params field of inPublic. // // If the Type field of inPublic is [ObjectTypeKeyedHash] and the Attrs field has // [AttrSensitiveDataOrigin], [AttrSign] and [AttrDecrypt] all clear, then the created object is a // sealed data object. // // If the Attrs field of inPublic has the [AttrRestricted] and [AttrDecrypt] attributes set, and // the Type field is not [ObjectTypeKeyedHash], then the newly created object will be a storage // parent. // // If the Attrs field of inPublic has the [AttrRestricted] and [AttrDecrypt] attributes set, and // the Type field is [ObjectTypeKeyedHash], then the newly created object will be a derivation // parent. // // The authorization value for the created object is initialized to the value of the UserAuth // field of inSensitive. // // If there are no available slots for new objects on the TPM, a *[TPMWarning] error with a warning // code of [WarningObjectMemory] will be returned. // // If the attributes in the Attrs field of inPublic are inconsistent or inappropriate for the // usage, a *[TPMParameterError] error with an error code of [ErrorAttributes] will be returned for // parameter index 2. // // If the NameAlg field of inPublic is [HashAlgorithmNull], then a *[TPMParameterError] error with // an error code of [ErrorHash] will be returned for parameter index 2. // // If an authorization policy is defined via the AuthPolicy field of inPublic then the length of // the digest must match the name algorithm selected via the NameAlg field, else a // *[TPMParameterError] error with an error code of [ErrorSize] is returned for parameter index 2. // // If the scheme in the Params field of inPublic is inappropriate for the usage, a // *[TPMParameterError] errow with an error code of [ErrorScheme] will be returned for parameter // index 2. // // If the Type field of inPublic is [ObjectTypeRSA], [ObjectTypeECC] or [ObjectTypeKeyedHash] and // the digest algorithm specified by the scheme in the Params field of inPublic is inappropriate // for the usage, a *[TPMParameterError] error with an error code of [ErrorHash] will be returned // for parameter index 2. // // If the Type field of inPublic is not [ObjectTypeKeyedHash], a *[TPMParameterError] error with an // error code of [ErrorSymmetric] will be returned for parameter index 2 if the symmetric algorithm // specified in the Params field of inPublic is inappropriate for the usage. // // If the Type field of inPublic is [ObjectTypeECC] and the KDF scheme specified in the Params // field of inPublic is not [KDFAlgorithmNull], a *[TPMParameterError] error with an error code of // [ErrorKDF] will be returned for parameter index 2. // // If the length of the UserAuth field of inSensitive is longer than the name algorithm selected by // the NameAlg field of inPublic, a *[TPMParameterError] error with an error code of [ErrorSize] // will be returned for parameter index 1. // // If the Type field of inPublic is [ObjectTypeRSA] and the Params field specifies an unsupported // exponent, a *[TPMError] with an error code of [ErrorRange] will be returned. If the specified // key size is an unsupported value, a *[TPMError] with an error code of [ErrorValue] will be // returned. // // If the Type field of inPublic is [ObjectTypeSymCipher] and the key size is an unsupported value, // a *[TPMError] with an error code of [ErrorKeySize] will be returned. If the // [AttrSensitiveDataOrigin] attribute is not set and the length of the Data field of inSensitive // does not match the key size specified in the Params field of inPublic, a *[TPMError] with an // error code of [ErrorKeySize] will be returned. // // If the Type field of inPublic is [ObjectTypeKeyedHash] and the [AttrSensitiveDataOrigin] // attribute is not set, a *[TPMError] with an error code of [ErrorSize] will be returned if the // length of the Data field of inSensitive is longer than permitted for the digest algorithm // selected by the specified scheme. // // This function will call [TPMContext.InitProperties] if it hasn't already been called. // // On success, a ResourceContext instance will be returned that corresponds to the newly created // object on the TPM. It will not be necessary to call [ResourceContext].SetAuthValue on it - this // function sets the correct authorization value so that it can be used in subsequent commands that // require knowledge of the authorization value. The returned ResourceContext can be type asserted // to [ObjectContext]. If the Type field of inPublic is [ObjectTypeKeyedHash] or // [ObjectTypeSymCipher], then the returned *Public object will have a Unique field that is the digest // of the sensitive data and the value of the object's seed in the sensitive area, computed using the // object's name algorithm. If the Type field of inPublic is [ObjectTypeECC] or [ObjectTypeRSA], then // the returned *Public object will have a Unique field containing details about the public part of the // key, computed from the private part of the key. // // The returned *CreationData will contain a digest computed from the values of PCRs selected by // the creationPCR parameter at creation time in the PCRDigest field. It will also contain the // provided outsideInfo in the OutsideInfo field. The returned *TkCreation ticket can be used to // prove the association between the created object and the returned *CreationData via the // [TPMContext.CertifyCreation] method. func (t *TPMContext) CreatePrimary(primaryObject ResourceContext, inSensitive *SensitiveCreate, inPublic *Public, outsideInfo Data, creationPCR PCRSelectionList, primaryObjectAuthSession SessionContext, sessions ...SessionContext) (objectContext ResourceContext, outPublic *Public, creationData *CreationData, creationHash Digest, creationTicket *TkCreation, err error) { if err := t.initPropertiesIfNeeded(); err != nil { return nil, nil, nil, nil, nil, err } if primaryObject == nil { // The convention in this pacage is to treat nil as TPM_RH_NULL. // Don't do that here in order to avoid accidential usage of // the null hierarchy. primaryObject = unassignedResource() } if inSensitive == nil { inSensitive = &SensitiveCreate{} } var objectHandle Handle var name Name if err := t.StartCommand(CommandCreatePrimary). AddHandles(UseResourceContextWithAuth(primaryObject, primaryObjectAuthSession)). AddParams(mu.Sized(inSensitive), mu.Sized(inPublic), outsideInfo, creationPCR.WithMinSelectSize(t.properties.minPcrSelectSize)). AddExtraSessions(sessions...). Run(&objectHandle, mu.Sized(&outPublic), mu.Sized(&creationData), &creationHash, &creationTicket, &name); err != nil { return nil, nil, nil, nil, nil, err } if objectHandle.Type() != HandleTypeTransient { return nil, nil, nil, nil, nil, &InvalidResponseError{CommandCreatePrimary, fmt.Errorf("handle 0x%08x returned from TPM is the wrong type", objectHandle)} } if outPublic == nil { return nil, nil, nil, nil, nil, &InvalidResponseError{CommandCreatePrimary, errors.New("no public area returned from TPM")} } if outPublic.NameAlg.Available() && !outPublic.compareName(name) { return nil, nil, nil, nil, nil, &InvalidResponseError{CommandCreatePrimary, errors.New("name and public area returned from TPM are not consistent")} } var public *Public if err := mu.CopyValue(&public, outPublic); err != nil { return nil, nil, nil, nil, nil, &InvalidResponseError{CommandCreatePrimary, fmt.Errorf("cannot copy returned public area from TPM: %w", err)} } rc := newObjectContext(objectHandle, name, public) rc.authValue = make([]byte, len(inSensitive.UserAuth)) copy(rc.authValue, inSensitive.UserAuth) return rc, outPublic, creationData, creationHash, creationTicket, nil } // HierarchyControl executes the TPM2_HierarchyControl command in order to enable or disable the // hierarchy associated with the enable argument. If state is true, the hierarchy associated with // the enable argument will be enabled. If state is false, the hierarchy associated with the enable // argument will be disabled. This command requires authorization with the user auth role for // authContext, with session based authorization provided via authContextAuthSession. // // If enable is [HandlePlatform] and state is false, then this will disable use of the platform // hierarchy. In this case, authContext must correspond to [HandlePlatform]. // // If enable is [HandlePlatformNV] and state is false, then this will disable the use of NV indices // with the [AttrNVPlatformCreate] attribute set, indicating that they were created by the platform // owner. In this case, authContext must correspond to [HandlePlatform]. // // If enable is [HandleOwner] and state is false, then this will disable the use of the storage // hierarchy and any NV indices with the [AttrNVPlatformCreate] attribute clear. In this case, // authContext must correspond to [HandleOwner] or [HandlePlatform]. // // If enable is [HandleEndorsement] and state is false, then this will disable the use of the // endorsment hierarchy. In this case, authContext must correspond to [HandleEndorsement] or // [HandlePlatform]. // // When a hierarchy is disabled, persistent objects associated with it become unavailable, and // transient objects associated with it are flushed from the TPM. // // If state is true, then authContext must correspond to [HandlePlatform]. Note that the platform // hierarchy can't be re-enabled by this command. func (t *TPMContext) HierarchyControl(authContext ResourceContext, enable Handle, state bool, authContextAuthSession SessionContext, sessions ...SessionContext) error { return t.StartCommand(CommandHierarchyControl). AddHandles(UseResourceContextWithAuth(authContext, authContextAuthSession)). AddParams(enable, state). AddExtraSessions(sessions...). Run(nil) } // SetPrimaryPolicy executes the TPM2_SetPrimaryPolicy command in order to set an authorization // policy for the permanent resource associated with authContext. The command requires authorization // with the user role for authContext, with session based authorization supplied via // authContextAuthSession. // // The caller can either use the permanent resource's existing authorization value or existing policy // (if there is one) to authorize. // // If authContext corresponds to a hierarchy that is disabled, a *[TPMHandleError] error will be // returned with the error code [ErrorHierarchy]. // // If the size of the supplied digest is not consistent with the specified digest algorithm, a // *[TPMParameterError] error will be returned with the error code [ErrorSize] for parameter 1. // // To clear the authorization policy and return it to the empty value, pass a zero length policy // digest and [HashAlgorithmNull]. func (t *TPMContext) SetPrimaryPolicy(authContext ResourceContext, authPolicy Digest, hashAlg HashAlgorithmId, authContextAuthSession SessionContext, sessions ...SessionContext) error { return t.StartCommand(CommandSetPrimaryPolicy). AddHandles(UseResourceContextWithAuth(authContext, authContextAuthSession)). AddParams(authPolicy, hashAlg). AddExtraSessions(sessions...). Run(nil) } // Clear executes the TPM2_Clear command to remove all context associated with the current owner. // The command requires knowledge of the authorization value for either the platform or lockout // hierarchy. The hierarchy is specified by passing a ResourceContext corresponding to either // [HandlePlatform] or [HandleLockout] to authContext. The command requires authorization with the // user auth role for authContext, with session based authorization provided via // authContextAuthSession. // // On successful completion, all NV indices and objects associated with the current owner will have // been evicted and subsequent use of ResourceContext instances associated with these resources // will fail. The authorization values of the storage, endorsement and lockout hierarchies will // have been cleared. It isn't necessary to update the corresponding ResourceContext instances for // these by calling [ResourceContext].SetAuthValue in order to use them in subsequent commands // that require knowledge of the authorization value for those permanent resources. // // If the TPM2_Clear command has been disabled, a *[TPMError] error will be returned with an error // code of [ErrorDisabled]. func (t *TPMContext) Clear(authContext ResourceContext, authContextAuthSession SessionContext, sessions ...SessionContext) error { r, err := t.StartCommand(CommandClear). AddHandles(UseResourceContextWithAuth(authContext, authContextAuthSession)). AddExtraSessions(sessions...). RunWithoutProcessingResponse(nil) if err != nil { return err } // Clear auth values for the owner, endorsement and lockout hierarchies. If the supplied session is not // bound to authContext, the TPM will response with a HMAC generated with a key derived from the empty // auth value. for _, h := range []Handle{HandleOwner, HandleEndorsement, HandleLockout} { if rc, exists := t.permanentResources[h]; exists { rc.SetAuthValue(nil) } } return r.Complete() } // ClearControl executes the TPM2_ClearControl command to enable or disable execution of the // TPM2_Clear command (via the [TPMContext.Clear] function). // // If disable is true, then this command will disable the execution of TPM2_Clear. In this case, // the command requires knowledge of the authorization value for the platform or lockout hierarchy. // The hierarchy is specified via the authContext parameter by passing a ResourceContext // corresponding to either [HandlePlatform] or [HandleLockout]. // // If disable is false, then this command will enable execution of TPM2_Clear. In this case, the // command requires knowledge of the authorization value for the platform hierarchy, and // authContext must be a ResourceContext corresponding to [HandlePlatform]. If authContext is a // ResourceContext corresponding to [HandleLockout], a *[TPMError] error with an error code of // [ErrorAuthFail] will be returned. // // The command requires the authorization with the user auth role for authContext, with session // based authorization provided via authContextAuthSession. func (t *TPMContext) ClearControl(authContext ResourceContext, disable bool, authContextAuthSession SessionContext, sessions ...SessionContext) error { return t.StartCommand(CommandClearControl). AddHandles(UseResourceContextWithAuth(authContext, authContextAuthSession)). AddParams(disable). AddExtraSessions(sessions...). Run(nil) } // HierarchyChangeAuth executes the TPM2_HierarchyChangeAuth command to change the authorization // value for the hierarchy associated with the authContext parameter. The command requires // authorization with the user auth role for authContext, with session based authorization provided // via authContextAuthSession. // // If the value of newAuth is longer than the context integrity digest algorithm for the TPM, a // *[TPMParameterError] error with an error code of [ErrorSize] will be returned. // // On successful completion, the authorization value of the hierarchy associated with authContext // will be set to the value of newAuth, and authContext will be updated to reflect this - it isn't // necessary to update authContext with [ResourceContext].SetAuthValue in order to use it in // subsequent commands that require knowledge of the authorization value for the resource. func (t *TPMContext) HierarchyChangeAuth(authContext ResourceContext, newAuth Auth, authContextAuthSession SessionContext, sessions ...SessionContext) error { r, err := t.StartCommand(CommandHierarchyChangeAuth). AddHandles(UseResourceContextWithAuth(authContext, authContextAuthSession)). AddParams(newAuth). AddExtraSessions(sessions...). RunWithoutProcessingResponse(nil) if err != nil { return err } // If the HMAC key for this command includes the auth value for authHandle, the TPM will respond with a HMAC generated with a key // that includes newAuth instead. authContext.SetAuthValue(newAuth) return r.Complete() } ./github.com/canonical/go-tpm2/cmds_nv.go0000664000000000000000000015564100000000000015353 0ustar00// Copyright 2019 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package tpm2 // Section 31 - Non-volatile Storage import ( "encoding/binary" "errors" "fmt" "github.com/canonical/go-tpm2/mu" ) // NVDefineSpaceRaw executes the TPM2_NV_DefineSpace command to reserve space to hold the data // associated with a NV index described by the publicInfo parameter. The Index field of publicInfo // defines the handle at which the index should be reserved. The NameAlg field defines the digest // algorithm for computing the name of the NV index. The Attrs field is used to describe attributes // for the index, as well as its type. An authorization policy for the index can be defined using // the AuthPolicy field of publicInfo. The Size field defines the size of the index. // // The auth parameter specifies an authorization value for the NV index. // // The authContext parameter specifies the hierarchy used for authorization, and should correspond // to [HandlePlatform] or [HandleOwner]. The command requires authorization with the user auth role // for the specified hierarchy, with session based authorization provided via // authContextAuthSession. // // If the Attrs field of publicInfo has [AttrNVPolicyDelete] set but TPM2_NV_UndefineSpaceSpecial // isn't supported, or the Attrs field defines a type that is unsupported, a *[TPMParameterError] // error with an error code of [ErrorAttributes] will be returned for parameter index 2. // // If the AuthPolicy field of publicInfo defines an authorization policy digest then the digest // length must match the size of the name algorithm defined by the NameAlg field of publicInfo, // else a *[TPMParameterError] error with an error code of [ErrorSize] will be returned for // parameter index 2. // // If the length of auth is greater than the name algorithm selected by the NameAlg field of the // publicInfo parameter, a *[TPMParameterError] error with an error code of [ErrorSize] will be // returned for parameter index 1. // // If authContext corresponds to [HandlePlatform] but the [AttrPhEnableNV] attribute is clear, a // *[TPMHandleError] error with an error code of [ErrorHierarchy] will be returned. // // If the type indicated by the Attrs field of publicInfo isn't supported by the TPM, a // *[TPMParameterError] error with an error code of [ErrorAttributes] will be returned for // parameter index 2. // // If the type defined by publicInfo is [NVTypeCounter], [NVTypeBits], [NVTypePinPass] or // [NVTypePinFail], the Size field of publicInfo must be 8. If the type defined by publicInfo is // [NVTypeExtend], the Size field of publicInfo must match the size of the name algorithm defined // by the NameAlg field. If the size is unexpected, or the size for an index of type // [NVTypeOrdinary] is too large, a *[TPMParameterError] error with an error code of [ErrorSize] // will be returned for parameter index 2. // // If the type defined by publicInfo is [NVTypeCounter], then the Attrs field must not have the // [AttrNVClearStClear] attribute set, else a *[TPMParameterError] error with an error code of // [ErrorAttributes] will be returned for parameter index 2. // // If the type defined by publicInfo is [NVTypePinFail], then the Attrs field must have the // [AttrNVNoDA] attribute set. If the type is either [NVTypePinPass] or [NVTypePinFail], then the // Attrs field must have the [AttrNVAuthWrite], [AttrNVGlobalLock] and [AttrNVWriteDefine] // attributes clear, else a *[TPMParameterError] error with an error code of [ErrorAttributes] will // be returned for parameter index 2. // // If the Attrs field of publicInfo has either [AttrNVWriteLocked], [AttrNVReadLocked] or // [AttrNVWritten] set, a *[TPMParameterError] error with an error code of [ErrorAttributes] will // be returned for parameter index 2. // // The Attrs field of publicInfo must have one of either [AttrNVPPWrite], [AttrNVOwnerWrite], // [AttrNVAuthWrite] or [AttrNVPolicyWrite] set, and must also have one of either [AttrNVPPRead], // [AttrNVOwnerRead], [AttrNVAuthRead] or [AttrNVPolicyRead set]. If there is no way to read or // write an index, a *[TPMParameterError] error with an error code of [ErrorAttributes] will be // returned for parameter index 2. // // If the Attrs field of publicInfo has [AttrNVClearStClear] set, a *[TPMParameterError] error with // an error code of [ErrorAttributes] will be returned for parameter index 2 if // [AttrNVWriteDefine] is set. // // If authContext corresponds to [HandlePlatform], then the Attrs field of publicInfo must have the // [AttrNVPlatformCreate] attribute set. If authContext corresponds to [HandleOwner], then the // [AttrNVPlatformCreate] attributes must be clear, else a *[TPMHandleError] error with an error // code of [ErrorAttributes] will be returned. // // If the Attrs field of publicInfo has the [AttrNVPolicyDelete] attribute set, then // [HandlePlatform] must be used for authorization via authContext, else a *[TPMParameterError] // error with an error code of [ErrorAttributes] will be returned for parameter index 2. // // If an index is already defined at the location specified by the Index field of publicInfo, a // *[TPMError] error with an error code of [ErrorNVDefined] will be returned. // // If there is insufficient space for the index, a *[TPMError] error with an error code of // [ErrorNVSpace] will be returned. // // On successful completion, the NV index will be defined. func (t *TPMContext) NVDefineSpaceRaw(authContext ResourceContext, auth Auth, publicInfo *NVPublic, authContextAuthSession SessionContext, sessions ...SessionContext) error { return t.StartCommand(CommandNVDefineSpace). AddHandles(UseResourceContextWithAuth(authContext, authContextAuthSession)). AddParams(auth, mu.Sized(publicInfo)). AddExtraSessions(sessions...). Run(nil) } // NVDefineSpace executes the TPM2_NV_DefineSpace command to reserve space to hold the data // associated with a NV index described by the publicInfo parameter. The Index field of publicInfo // defines the handle at which the index should be reserved. The NameAlg field defines the digest // algorithm for computing the name of the NV index. The Attrs field is used to describe attributes // for the index, as well as its type. An authorization policy for the index can be defined using // the AuthPolicy field of publicInfo. The Size field defines the size of the index. // // The name algorithm must be linked into the current binary. To create an NV index with a name // algorithm that is not available, use [TPMContext.NVDefineSpaceRaw]. // // The auth parameter specifies an authorization value for the NV index. // // The authContext parameter specifies the hierarchy used for authorization, and should correspond // to [HandlePlatform] or [HandleOwner]. The command requires authorization with the user auth role // for the specified hierarchy, with session based authorization provided via // authContextAuthSession. // // If the Attrs field of publicInfo has [AttrNVPolicyDelete] set but TPM2_NV_UndefineSpaceSpecial // isn't supported, or the Attrs field defines a type that is unsupported, a *[TPMParameterError] // error with an error code of [ErrorAttributes] will be returned for parameter index 2. // // If the AuthPolicy field of publicInfo defines an authorization policy digest then the digest // length must match the size of the name algorithm defined by the NameAlg field of publicInfo, // else a *[TPMParameterError] error with an error code of [ErrorSize] will be returned for // parameter index 2. // // If the length of auth is greater than the name algorithm selected by the NameAlg field of the // publicInfo parameter, a *[TPMParameterError] error with an error code of [ErrorSize] will be // returned for parameter index 1. // // If authContext corresponds to [HandlePlatform] but the [AttrPhEnableNV] attribute is clear, a // *[TPMHandleError] error with an error code of [ErrorHierarchy] will be returned. // // If the type indicated by the Attrs field of publicInfo isn't supported by the TPM, a // *[TPMParameterError] error with an error code of [ErrorAttributes] will be returned for // parameter index 2. // // If the type defined by publicInfo is [NVTypeCounter], [NVTypeBits], [NVTypePinPass] or // [NVTypePinFail], the Size field of publicInfo must be 8. If the type defined by publicInfo is // [NVTypeExtend], the Size field of publicInfo must match the size of the name algorithm defined // by the NameAlg field. If the size is unexpected, or the size for an index of type // [NVTypeOrdinary] is too large, a *[TPMParameterError] error with an error code of [ErrorSize] // will be returned for parameter index 2. // // If the type defined by publicInfo is [NVTypeCounter], then the Attrs field must not have the // [AttrNVClearStClear] attribute set, else a *[TPMParameterError] error with an error code of // [ErrorAttributes] will be returned for parameter index 2. // // If the type defined by publicInfo is [NVTypePinFail], then the Attrs field must have the // [AttrNVNoDA] attribute set. If the type is either [NVTypePinPass] or [NVTypePinFail], then the // Attrs field must have the [AttrNVAuthWrite], [AttrNVGlobalLock] and [AttrNVWriteDefine] // attributes clear, else a *[TPMParameterError] error with an error code of [ErrorAttributes] will // be returned for parameter index 2. // // If the Attrs field of publicInfo has either [AttrNVWriteLocked], [AttrNVReadLocked] or // [AttrNVWritten] set, a *[TPMParameterError] error with an error code of [ErrorAttributes] will // be returned for parameter index 2. // // The Attrs field of publicInfo must have one of either [AttrNVPPWrite], [AttrNVOwnerWrite], // [AttrNVAuthWrite] or [AttrNVPolicyWrite] set, and must also have one of either [AttrNVPPRead], // [AttrNVOwnerRead], [AttrNVAuthRead] or [AttrNVPolicyRead set]. If there is no way to read or // write an index, a *[TPMParameterError] error with an error code of [ErrorAttributes] will be // returned for parameter index 2. // // If the Attrs field of publicInfo has [AttrNVClearStClear] set, a *[TPMParameterError] error with // an error code of [ErrorAttributes] will be returned for parameter index 2 if // [AttrNVWriteDefine] is set. // // If authContext corresponds to [HandlePlatform], then the Attrs field of publicInfo must have the // [AttrNVPlatformCreate] attribute set. If authContext corresponds to [HandleOwner], then the // [AttrNVPlatformCreate] attributes must be clear, else a *[TPMHandleError] error with an error // code of [ErrorAttributes] will be returned. // // If the Attrs field of publicInfo has the [AttrNVPolicyDelete] attribute set, then // [HandlePlatform] must be used for authorization via authContext, else a *[TPMParameterError] // error with an error code of [ErrorAttributes] will be returned for parameter index 2. // // If an index is already defined at the location specified by the Index field of publicInfo, a // *[TPMError] error with an error code of [ErrorNVDefined] will be returned. // // If there is insufficient space for the index, a *[TPMError] error with an error code of // [ErrorNVSpace] will be returned. // // On successful completion, the NV index will be defined and a ResourceContext corresponding to // the new index will be returned. It will not be necessary to call [ResourceContext].SetAuthValue // on the returned ResourceContext - this function sets the correct authorization value so that it // can be used in subsequent commands that require knowledge of it. The returned ResourceContext // can be type asserted to [NVIndexContext]. func (t *TPMContext) NVDefineSpace(authContext ResourceContext, auth Auth, publicInfo *NVPublic, authContextAuthSession SessionContext, sessions ...SessionContext) (ResourceContext, error) { if publicInfo == nil { return nil, makeInvalidArgError("publicInfo", "nil value") } name, err := publicInfo.ComputeName() if err != nil { return nil, fmt.Errorf("cannot compute name from public info: %v", err) } if err := t.NVDefineSpaceRaw(authContext, auth, publicInfo, authContextAuthSession, sessions...); err != nil { return nil, err } var public *NVPublic // publicInfo already marshalled correctly, so this can't fail. mu.MustCopyValue(&public, publicInfo) rc := newNVIndexContext(publicInfo.Index, name, public) rc.authValue = make([]byte, len(auth)) copy(rc.authValue, auth) return rc, nil } // NVUndefineSpace executes the TPM2_NV_UndefineSpace command to remove the NV index associated // with nvIndex, and free the resources used by it. If the index has the [AttrNVPolicyDelete] // attribute set, then a *[TPMHandleError] error with an error code of [ErrorAttributes] will be // returned for handle index 2. // // The authContext parameter specifies the hierarchy used for authorization and should correspond // to either [HandlePlatform] or [HandleOwner]. The command requires authorization with the user // auth role for the specified hierarchy, with session based authorization provided via // authContextAuthSession. // // If authContext corresponds to [HandleOwner] and the NV index has the [AttrNVPlatformCreate] // attribute set, then a *TPMError error with an error code of ErrorNVAuthorization will be // returned. // // On successful completion, nvIndex will be invalidated. func (t *TPMContext) NVUndefineSpace(authContext, nvIndex ResourceContext, authContextAuthSession SessionContext, sessions ...SessionContext) error { if err := t.StartCommand(CommandNVUndefineSpace). AddHandles(UseResourceContextWithAuth(authContext, authContextAuthSession), UseHandleContext(nvIndex)). AddExtraSessions(sessions...). Run(nil); err != nil { return err } nvIndex.Dispose() return nil } // NVUndefineSpaceSpecial executes the TPM2_NV_UndefineSpaceSpecial command to remove the NV index // associated with nvIndex, and free the resources used by it. If the NV index does not have the // [AttrNVPolicyDelete] attribute set, then a *[TPMHandleError] error with an error code of // [ErrorAttributes] will be returned for handle index 1. // // The platform parameter must correspond to [HandlePlatform]. The command requires authorization // with the user auth role for the platform hierarchy, with session based authorization provided // via platformAuthSession. The command requires authorization with the admin role for nvIndex, // with the session provided via nvIndexAuthSession. // // On successful completion, nvIndex will be invalidated. func (t *TPMContext) NVUndefineSpaceSpecial(nvIndex, platform ResourceContext, nvIndexAuthSession, platformAuthSession SessionContext, sessions ...SessionContext) error { r, err := t.StartCommand(CommandNVUndefineSpaceSpecial). AddHandles(UseResourceContextWithAuth(nvIndex, nvIndexAuthSession), UseResourceContextWithAuth(platform, platformAuthSession)). AddExtraSessions(sessions...). RunWithoutProcessingResponse(nil) if err != nil { return err } // If the HMAC key for this command includes the authorization value for nvIndex (eg, because the PolicyAuthValue assertion was // executed), the TPM will respond with a HMAC generated with a key based on an empty auth value. nvIndex.SetAuthValue(nil) err = r.Complete() nvIndex.Dispose() return err } // NVReadPublic executes the TPM2_NV_ReadPublic command to read the public area of the NV index // associated with nvIndex. func (t *TPMContext) NVReadPublic(nvIndex HandleContext, sessions ...SessionContext) (nvPublic *NVPublic, nvName Name, err error) { if err := t.StartCommand(CommandNVReadPublic). AddHandles(UseHandleContext(nvIndex)). AddExtraSessions(sessions...). Run(nil, mu.Sized(&nvPublic), &nvName); err != nil { return nil, nil, err } return nvPublic, nvName, nil } // NVWriteRaw executes the TPM2_NV_Write command to write data to the NV index associated with // nvIndex, at the specified offset. // // The command requires authorization, defined by the state of the [AttrNVPPWrite], // [AttrNVOwnerWrite], [AttrNVAuthWrite] and [AttrNVPolicyWrite] attributes. The handle used for // authorization is specified via authContext. If the NV index has the [AttrNVPPWrite] attribute, // authorization can be satisfied with [HandlePlatform]. If the NV index has the [AttrNVOwnerWrite] // attribute, authorization can be satisfied with [HandleOwner]. If the NV index has the // [AttrNVAuthWrite] or [AttrNVPolicyWrite] attribute, authorization can be satisfied with nvIndex. // The command requires authorization with the user auth role for authContext, with session based // authorization provided via authContextAuthSession. If the resource associated with authContext // is not permitted to authorize this access, a *TPMError error with an error code of // [ErrorNVAuthorization] will be returned. // // If nvIndex is being used for authorization and the [AttrNVAuthWrite] attribute is defined, the // authorization can be satisfied by demonstrating knowledge of the authorization value, either via // cleartext or HMAC authorization. If nvIndex is being used for authorization and the // [AttrNVPolicyWrite] attribute is defined, the authorization can be satisfied using a policy // session with a digest that matches the authorization policy for the index. // // If the index has the [AttrNVWriteLocked] attribute set, a *[TPMError] error with an error code // of [ErrorNVLocked] will be returned. // // If the type of the index is [NVTypeCounter], [NVTypeBits] or [NVTypeExtend], a *[TPMError] error // with an error code of [ErrorAttributes] will be returned. // // If the value of offset is outside of the bounds of the index, a *[TPMParameterError] error with // an error code of [ErrorValue] will be returned for parameter index 2. // // If the length of the data and the specified offset would result in a write outside of the bounds // of the index, or if the index has the [AttrNVWriteAll] attribute set and the size of the data // doesn't match the size of the index, a *[TPMError] error with an error code of [ErrorNVRange] // will be returned. // // On successful completion, the [AttrNVWritten] flag will be set if this is the first time that // the index has been written to. If nvIndex can be type asserted to [NVIndexContext], the name of // nvIndex will be updated accordingly. func (t *TPMContext) NVWriteRaw(authContext, nvIndex ResourceContext, data MaxNVBuffer, offset uint16, authContextAuthSession SessionContext, sessions ...SessionContext) error { if err := t.StartCommand(CommandNVWrite). AddHandles(UseResourceContextWithAuth(authContext, authContextAuthSession), UseHandleContext(nvIndex)). AddParams(data, offset). AddExtraSessions(sessions...). Run(nil); err != nil { return err } if nv, isNv := nvIndex.(NVIndexContext); isNv { nv.SetAttr(AttrNVWritten) } return nil } type nvWriteHelperContext struct { authContext ResourceContext nvIndex ResourceContext data []byte offset uint16 tpm *TPMContext total uint16 } func (c *nvWriteHelperContext) last() bool { return len(c.data[c.total:]) <= int(c.tpm.properties.maxNVBufferSize) } func (c *nvWriteHelperContext) run(sessions ...SessionContext) error { d := c.data[c.total:] if len(d) > int(c.tpm.properties.maxNVBufferSize) { d = d[:c.tpm.properties.maxNVBufferSize] } if err := c.tpm.NVWriteRaw(c.authContext, c.nvIndex, d, c.offset+c.total, sessions[0], sessions[1:]...); err != nil { return err } c.total += uint16(len(d)) return nil } // NVWrite executes the TPM2_NV_Write command to write data to the NV index associated with // nvIndex, at the specified offset. // // The command requires authorization, defined by the state of the [AttrNVPPWrite], // [AttrNVOwnerWrite], [AttrNVAuthWrite] and [AttrNVPolicyWrite] attributes. The handle used for // authorization is specified via authContext. If the NV index has the [AttrNVPPWrite] attribute, // authorization can be satisfied with [HandlePlatform]. If the NV index has the [AttrNVOwnerWrite] // attribute, authorization can be satisfied with [HandleOwner]. If the NV index has the // [AttrNVAuthWrite] or [AttrNVPolicyWrite] attribute, authorization can be satisfied with nvIndex. // The command requires authorization with the user auth role for authContext, with session based // authorization provided via authContextAuthSession. If the resource associated with authContext // is not permitted to authorize this access, a *TPMError error with an error code of // [ErrorNVAuthorization] will be returned. // // If nvIndex is being used for authorization and the [AttrNVAuthWrite] attribute is defined, the // authorization can be satisfied by demonstrating knowledge of the authorization value, either via // cleartext or HMAC authorization. If nvIndex is being used for authorization and the // [AttrNVPolicyWrite] attribute is defined, the authorization can be satisfied using a policy // session with a digest that matches the authorization policy for the index. // // If data is too large to be written in a single command, this function will re-execute the // TPM2_NV_Write command until all data is written. In this case, authContextAuthSession must not // be a policy session. // // If the index has the [AttrNVWriteLocked] attribute set, a *[TPMError] error with an error code // of [ErrorNVLocked] will be returned. // // If the type of the index is [NVTypeCounter], [NVTypeBits] or [NVTypeExtend], a *[TPMError] error // with an error code of [ErrorAttributes] will be returned. // // If the value of offset is outside of the bounds of the index, a *[TPMParameterError] error with // an error code of [ErrorValue] will be returned for parameter index 2. // // If the length of the data and the specified offset would result in a write outside of the bounds // of the index, or if the index has the [AttrNVWriteAll] attribute set and the size of the data // doesn't match the size of the index, a *[TPMError] error with an error code of [ErrorNVRange] // will be returned. // // On successful completion, the [AttrNVWritten] flag will be set if this is the first time that // the index has been written to. If nvIndex can be type asserted to [NVIndexContext], the name of // nvIndex will be updated accordingly. func (t *TPMContext) NVWrite(authContext, nvIndex ResourceContext, data []byte, offset uint16, authContextAuthSession SessionContext, sessions ...SessionContext) error { if err := t.initPropertiesIfNeeded(); err != nil { return err } sessionsCopy := []SessionContext{authContextAuthSession} sessionsCopy = append(sessionsCopy, sessions...) context := &nvWriteHelperContext{ authContext: authContext, nvIndex: nvIndex, data: data, offset: offset, tpm: t} return execMultipleHelper(context, sessionsCopy...) } // NVSetPinCounterParams is a convenience function for [TPMContext.NVWrite] for updating the // contents of the NV pin pass or NV pin fail index associated with nvIndex. If the type of nvIndex // is not NVTypePinPass of NVTypePinFail, an error will be returned. This will return an error if // nvIndex cannot be type asserted to [NVIndexContext]. // // The command requires authorization, defined by the state of the [AttrNVPPWrite], // [AttrNVOwnerWrite], [AttrNVAuthWrite] and [AttrNVPolicyWrite] attributes. The handle used for // authorization is specified via authContext. If the NV index has the [AttrNVPPWrite] attribute, // authorization can be satisfied with [HandlePlatform]. If the NV index has the [AttrNVOwnerWrite] // attribute, authorization can be satisfied with [HandleOwner]. If the NV index has the // [AttrNVAuthWrite] or [AttrNVPolicyWrite] attribute, authorization can be satisfied with nvIndex. // The command requires authorization with the user auth role for authContext, with session based // authorization provided via authContextAuthSession. If the resource associated with authContext // is not permitted to authorize this access, a *TPMError error with an error code of // [ErrorNVAuthorization] will be returned. // // If nvIndex is being used for authorization and the [AttrNVAuthWrite] attribute is defined, the // authorization can be satisfied by demonstrating knowledge of the authorization value, either via // cleartext or HMAC authorization. If nvIndex is being used for authorization and the // [AttrNVPolicyWrite] attribute is defined, the authorization can be satisfied using a policy // session with a digest that matches the authorization policy for the index. // // If the index has the [AttrNVWriteLocked] attribute set, a *[TPMError] error with an error code // of [ErrorNVLocked] will be returned. // // On successful completion, the [AttrNVWritten] flag will be set if this is the first time that // the index has been written to. If nvIndex can be type asserted to [NVIndexContext], the name of // nvIndex will be updated accordingly. func (t *TPMContext) NVSetPinCounterParams(authContext, nvIndex ResourceContext, params *NVPinCounterParams, authContextAuthSession SessionContext, sessions ...SessionContext) error { context, isNv := nvIndex.(NVIndexContext) if !isNv { return errors.New("nvIndex does not correspond to a NV index") } if context.Type() != NVTypePinPass && context.Type() != NVTypePinFail { return errors.New("nvIndex does not correspond to a PIN pass or PIN fail index") } data := mu.MustMarshalToBytes(params) return t.NVWrite(authContext, nvIndex, data, 0, authContextAuthSession, sessions...) } // NVIncrement executes the TPM2_NV_Increment command to increment the counter associated with // nvIndex. // // The command requires authorization, defined by the state of the [AttrNVPPWrite], // [AttrNVOwnerWrite], [AttrNVAuthWrite] and [AttrNVPolicyWrite] attributes. The handle used for // authorization is specified via authContext. If the NV index has the [AttrNVPPWrite] attribute, // authorization can be satisfied with [HandlePlatform]. If the NV index has the [AttrNVOwnerWrite] // attribute, authorization can be satisfied with [HandleOwner]. If the NV index has the // [AttrNVAuthWrite] or [AttrNVPolicyWrite] attribute, authorization can be satisfied with nvIndex. // The command requires authorization with the user auth role for authContext, with session based // authorization provided via authContextAuthSession. If the resource associated with authContext // is not permitted to authorize this access, a *TPMError error with an error code of // [ErrorNVAuthorization] will be returned. // // If nvIndex is being used for authorization and the [AttrNVAuthWrite] attribute is defined, the // authorization can be satisfied by demonstrating knowledge of the authorization value, either via // cleartext or HMAC authorization. If nvIndex is being used for authorization and the // [AttrNVPolicyWrite] attribute is defined, the authorization can be satisfied using a policy // session with a digest that matches the authorization policy for the index. // // If the index has the [AttrNVWriteLocked] attribute set, a *[TPMError] error with an error code // of [ErrorNVLocked] will be returned. // // If the type of the index is not [NVTypeCounter], a *[TPMHandleError] error with an error code of // [ErrorAttributes] will be returned for handle index 2. // // On successful completion, the [AttrNVWritten] flag will be set if this is the first time that // the index has been written to. If nvIndex can be type asserted to [NVIndexContext], the name of // nvIndex will be updated accordingly. func (t *TPMContext) NVIncrement(authContext, nvIndex ResourceContext, authContextAuthSession SessionContext, sessions ...SessionContext) error { if err := t.StartCommand(CommandNVIncrement). AddHandles(UseResourceContextWithAuth(authContext, authContextAuthSession), UseHandleContext(nvIndex)). AddExtraSessions(sessions...). Run(nil); err != nil { return err } if nv, isNv := nvIndex.(NVIndexContext); isNv { nv.SetAttr(AttrNVWritten) } return nil } // NVExtend executes the TPM2_NV_Extend command to extend data to the NV index associated with // nvIndex, using the index's name algorithm. // // The command requires authorization, defined by the state of the [AttrNVPPWrite], // [AttrNVOwnerWrite], [AttrNVAuthWrite] and [AttrNVPolicyWrite] attributes. The handle used for // authorization is specified via authContext. If the NV index has the [AttrNVPPWrite] attribute, // authorization can be satisfied with [HandlePlatform]. If the NV index has the [AttrNVOwnerWrite] // attribute, authorization can be satisfied with [HandleOwner]. If the NV index has the // [AttrNVAuthWrite] or [AttrNVPolicyWrite] attribute, authorization can be satisfied with nvIndex. // The command requires authorization with the user auth role for authContext, with session based // authorization provided via authContextAuthSession. If the resource associated with authContext // is not permitted to authorize this access, a *TPMError error with an error code of // [ErrorNVAuthorization] will be returned. // // If nvIndex is being used for authorization and the [AttrNVAuthWrite] attribute is defined, the // authorization can be satisfied by demonstrating knowledge of the authorization value, either via // cleartext or HMAC authorization. If nvIndex is being used for authorization and the // [AttrNVPolicyWrite] attribute is defined, the authorization can be satisfied using a policy // session with a digest that matches the authorization policy for the index. // // If the index has the [AttrNVWriteLocked] attribute set, a *[TPMError] error with an error code // of [ErrorNVLocked] will be returned. // // If the type of the index is not [NVTypeExtend], a *TPMHandleError error with an error code of // [ErrorAttributes] will be returned for handle index 2. // // On successful completion, the [AttrNVWritten] flag will be set if this is the first time that // the index has been written to. If nvIndex can be type asserted to [NVIndexContext], the name of // nvIndex will be updated accordingly. func (t *TPMContext) NVExtend(authContext, nvIndex ResourceContext, data MaxNVBuffer, authContextAuthSession SessionContext, sessions ...SessionContext) error { if err := t.StartCommand(CommandNVExtend). AddHandles(UseResourceContextWithAuth(authContext, authContextAuthSession), UseHandleContext(nvIndex)). AddParams(data). AddExtraSessions(sessions...). Run(nil); err != nil { return err } if nv, isNv := nvIndex.(NVIndexContext); isNv { nv.SetAttr(AttrNVWritten) } return nil } // NVSetBits executes the TPM2_NV_SetBits command to OR the value of bits with the contents of the // NV index associated with nvIndex. // // The command requires authorization, defined by the state of the [AttrNVPPWrite], // [AttrNVOwnerWrite], [AttrNVAuthWrite] and [AttrNVPolicyWrite] attributes. The handle used for // authorization is specified via authContext. If the NV index has the [AttrNVPPWrite] attribute, // authorization can be satisfied with [HandlePlatform]. If the NV index has the [AttrNVOwnerWrite] // attribute, authorization can be satisfied with [HandleOwner]. If the NV index has the // [AttrNVAuthWrite] or [AttrNVPolicyWrite] attribute, authorization can be satisfied with nvIndex. // The command requires authorization with the user auth role for authContext, with session based // authorization provided via authContextAuthSession. If the resource associated with authContext // is not permitted to authorize this access, a *TPMError error with an error code of // [ErrorNVAuthorization] will be returned. // // If nvIndex is being used for authorization and the [AttrNVAuthWrite] attribute is defined, the // authorization can be satisfied by demonstrating knowledge of the authorization value, either via // cleartext or HMAC authorization. If nvIndex is being used for authorization and the // [AttrNVPolicyWrite] attribute is defined, the authorization can be satisfied using a policy // session with a digest that matches the authorization policy for the index. // // If the index has the [AttrNVWriteLocked] attribute set, a *[TPMError] error with an error code // of [ErrorNVLocked] will be returned. // // If the type of the index is not [NVTypeBits], a *[TPMHandleError] error with an error code of // [ErrorAttributes] will be returned for handle index 2. // // On successful completion, the [AttrNVWritten] flag will be set if this is the first time that // the index has been written to. If nvIndex can be type asserted to [NVIndexContext], the name of // nvIndex will be updated accordingly. func (t *TPMContext) NVSetBits(authContext, nvIndex ResourceContext, bits uint64, authContextAuthSession SessionContext, sessions ...SessionContext) error { if err := t.StartCommand(CommandNVSetBits). AddHandles(UseResourceContextWithAuth(authContext, authContextAuthSession), UseHandleContext(nvIndex)). AddParams(bits). AddExtraSessions(sessions...). Run(nil); err != nil { return err } if nv, isNv := nvIndex.(NVIndexContext); isNv { nv.SetAttr(AttrNVWritten) } return nil } // NVWriteLock executes the TPM2_NV_WriteLock command to inhibit further writes to the NV index // associated with nvIndex. // // The command requires authorization, defined by the state of the [AttrNVPPWrite], // [AttrNVOwnerWrite], [AttrNVAuthWrite] and [AttrNVPolicyWrite] attributes. The handle used for // authorization is specified via authContext. If the NV index has the [AttrNVPPWrite] attribute, // authorization can be satisfied with [HandlePlatform]. If the NV index has the [AttrNVOwnerWrite] // attribute, authorization can be satisfied with [HandleOwner]. If the NV index has the // [AttrNVAuthWrite] or [AttrNVPolicyWrite] attribute, authorization can be satisfied with nvIndex. // The command requires authorization with the user auth role for authContext, with session based // authorization provided via authContextAuthSession. If the resource associated with authContext // is not permitted to authorize this access, a *TPMError error with an error code of // [ErrorNVAuthorization] will be returned. // // If nvIndex is being used for authorization and the [AttrNVAuthWrite] attribute is defined, the // authorization can be satisfied by demonstrating knowledge of the authorization value, either via // cleartext or HMAC authorization. If nvIndex is being used for authorization and the // [AttrNVPolicyWrite] attribute is defined, the authorization can be satisfied using a policy // session with a digest that matches the authorization policy for the index. // // If the index has neither the [AttrNVWriteDefine] or [AttrNVWriteStClear] attributes set, then a // *[TPMHandleError] error with an error code of [ErrorAttributes] will be returned for handle // index 2. // // On successful completion, the [AttrNVWriteLocked] attribute will be set. If nvIndex can be type // asserted to [NVIndexContext], the name of nvIndex will be updated accordingly. The attribute will // be cleared again (and writes will be reenabled) on the next TPM reset or TPM restart unless the // index has the [AttrNVWriteDefine] attribute set and [AttrNVWritten] attribute is set. func (t *TPMContext) NVWriteLock(authContext, nvIndex ResourceContext, authContextAuthSession SessionContext, sessions ...SessionContext) error { if err := t.StartCommand(CommandNVWriteLock). AddHandles(UseResourceContextWithAuth(authContext, authContextAuthSession), UseHandleContext(nvIndex)). AddExtraSessions(sessions...). Run(nil); err != nil { return err } if nv, isNv := nvIndex.(NVIndexContext); isNv { nv.SetAttr(AttrNVWriteLocked) } return nil } // NVGlobalWriteLock executes the TPM2_NV_GlobalWriteLock command to inhibit further writes for all // NV indexes that have the [AttrNVGlobalLock] attribute set. // // The authContext parameter specifies a hierarchy, and should correspond to either // [HandlePlatform] or [HandleOwner]. The command requires the user auth role for authContext, with // session based authorization provided via authContextAuthSession. // // On successful completion, the [AttrNVWriteLocked] attribute will be set for all NV indexes that // have the [AttrNVGlobalLock] attribute set. If an index also has the [AttrNVWriteDefine] // attribute set, this will permanently inhibit further writes unless [AttrNVWritten] is clear. // ResourceContext instances associated with NV indices that are updated as a consequence of this // function will no longer be able to be used because the name will be incorrect. func (t *TPMContext) NVGlobalWriteLock(authContext ResourceContext, authContextAuthSession SessionContext, sessions ...SessionContext) error { return t.StartCommand(CommandNVGlobalWriteLock). AddHandles(UseResourceContextWithAuth(authContext, authContextAuthSession)). AddExtraSessions(sessions...). Run(nil) } // NVReadRaw executes the TPM2_NV_Read command to read the contents of the NV index associated with // nvIndex. The amount of data to read, and the offset within the index are defined by the size and // offset parameters. // // The command requires authorization, defined by the state of the [AttrNVPPRead], // [AttrNVOwnerRead], [AttrNVAuthRead] and [AttrNVPolicyRead] attributes. The handle used for // authorization is specified via authContext. If the NV index has the [AttrNVPPRead] attribute, // authorization can be satisfied with [HandlePlatform]. If the NV index has the [AttrNVOwnerRead] // attribute, authorization can be satisfied with [HandleOwner]. If the NV index has the // [AttrNVAuthRead] or [AttrNVPolicyRead] attribute, authorization can be satisfied with nvIndex. // The command requires authorization with the user auth role for authContext, with session based // authorization provided via authContextAuthSession. If the resource associated with authContext // is not permitted to authorize this access, a *[TPMError] error with an error code of // [ErrorNVAuthorization] will be returned. // // If nvIndex is being used for authorization and the [AttrNVAuthRead] attribute is defined, the // authorization can be satisfied by demonstrating knowledge of the authorization value, either via // cleartext or HMAC authorization. If nvIndex is being used for authorization and the // [AttrNVPolicyRead] attribute is defined, the authorization can be satisfied using a policy // session with a digest that matches the authorization policy for the index. // // If the index has the [AttrNVReadLocked] attribute set, a *[TPMError] error with an error code of // [ErrorNVLocked] will be returned. // // If the index has not been initialized (ie, the [AttrNVWritten] attribute is not set), a // *[TPMError] error with an error code of [ErrorNVUninitialized] will be returned. // // If the value of size is too large, a *[TPMParameterError] error with an error code of // [ErrorValue] will be returned for parameter index 1. // // If the value of offset falls outside of the bounds of the index, a *[TPMParameterError] error // with an error code of [ErrorValue] will be returned for parameter index 2. // // If the data selection falls outside of the bounds of the index, a *[TPMError] error with an // error code of [ErrorNVRange] will be returned. // // On successful completion, the requested data will be returned. func (t *TPMContext) NVReadRaw(authContext, nvIndex ResourceContext, size, offset uint16, authContextAuthSession SessionContext, sessions ...SessionContext) (data MaxNVBuffer, err error) { if err := t.StartCommand(CommandNVRead). AddHandles(UseResourceContextWithAuth(authContext, authContextAuthSession), UseHandleContext(nvIndex)). AddParams(size, offset). AddExtraSessions(sessions...). Run(nil, &data); err != nil { return nil, err } return data, nil } type nvReadHelperContext struct { authContext ResourceContext nvIndex ResourceContext size uint16 offset uint16 tpm *TPMContext data []byte } func (c *nvReadHelperContext) last() bool { return c.size <= c.tpm.properties.maxNVBufferSize } func (c *nvReadHelperContext) run(sessions ...SessionContext) error { sz := c.size if c.size > c.tpm.properties.maxNVBufferSize { sz = c.tpm.properties.maxNVBufferSize } data, err := c.tpm.NVReadRaw(c.authContext, c.nvIndex, sz, c.offset, sessions[0], sessions[1:]...) if err != nil { return err } c.data = append(c.data, data...) c.size -= sz c.offset += sz return nil } // NVRead executes the TPM2_NV_Read command to read the contents of the NV index associated with // nvIndex. The amount of data to read, and the offset within the index are defined by the size and // offset parameters. // // The command requires authorization, defined by the state of the [AttrNVPPRead], // [AttrNVOwnerRead], [AttrNVAuthRead] and [AttrNVPolicyRead] attributes. The handle used for // authorization is specified via authContext. If the NV index has the [AttrNVPPRead] attribute, // authorization can be satisfied with [HandlePlatform]. If the NV index has the [AttrNVOwnerRead] // attribute, authorization can be satisfied with [HandleOwner]. If the NV index has the // [AttrNVAuthRead] or [AttrNVPolicyRead] attribute, authorization can be satisfied with nvIndex. // The command requires authorization with the user auth role for authContext, with session based // authorization provided via authContextAuthSession. If the resource associated with authContext // is not permitted to authorize this access, a *[TPMError] error with an error code of // [ErrorNVAuthorization] will be returned. // // If nvIndex is being used for authorization and the [AttrNVAuthRead] attribute is defined, the // authorization can be satisfied by demonstrating knowledge of the authorization value, either via // cleartext or HMAC authorization. If nvIndex is being used for authorization and the // [AttrNVPolicyRead] attribute is defined, the authorization can be satisfied using a policy // session with a digest that matches the authorization policy for the index. // // If the requested data can not be read in a single command, this function will re-execute the // TPM2_NV_Read command until all data is read. In this case, authContextAuth should not correspond // to a policy session. // // If the index has the [AttrNVReadLocked] attribute set, a *[TPMError] error with an error code of // [ErrorNVLocked] will be returned. // // If the index has not been initialized (ie, the [AttrNVWritten] attribute is not set), a // *[TPMError] error with an error code of [ErrorNVUninitialized] will be returned. // // If the value of size is too large, a *[TPMParameterError] error with an error code of // [ErrorValue] will be returned for parameter index 1. // // If the value of offset falls outside of the bounds of the index, a *[TPMParameterError] error // with an error code of [ErrorValue] will be returned for parameter index 2. // // If the data selection falls outside of the bounds of the index, a *[TPMError] error with an // error code of [ErrorNVRange] will be returned. // // On successful completion, the requested data will be returned. func (t *TPMContext) NVRead(authContext, nvIndex ResourceContext, size, offset uint16, authContextAuthSession SessionContext, sessions ...SessionContext) (data []byte, err error) { if err := t.initPropertiesIfNeeded(); err != nil { return nil, err } sessionsCopy := []SessionContext{authContextAuthSession} sessionsCopy = append(sessionsCopy, sessions...) context := &nvReadHelperContext{ authContext: authContext, nvIndex: nvIndex, size: size, offset: offset, tpm: t} if err := execMultipleHelper(context, sessionsCopy...); err != nil { return nil, err } return context.data, nil } func (t *TPMContext) nvReadUint64(authContext, nvIndex ResourceContext, authContextAuthSession SessionContext, sessions ...SessionContext) (uint64, error) { data, err := t.NVRead(authContext, nvIndex, 8, 0, authContextAuthSession, sessions...) if err != nil { return 0, err } if len(data) != binary.Size(uint64(0)) { return 0, &InvalidResponseError{CommandNVRead, fmt.Errorf("unexpected number of bytes returned (got %d)", len(data))} } return binary.BigEndian.Uint64(data), nil } // NVReadBits is a convenience function for [TPMContext.NVRead] for reading the contents of the NV // bit field index associated with nvIndex. If the type of nvIndex is not [NVTypeBits], an error // will be returned. This will return an error if nvIndex cannot be type asserted to [NVIndexContext]. // // The command requires authorization, defined by the state of the [AttrNVPPRead], // [AttrNVOwnerRead], [AttrNVAuthRead] and [AttrNVPolicyRead] attributes. The handle used for // authorization is specified via authContext. If the NV index has the [AttrNVPPRead] attribute, // authorization can be satisfied with [HandlePlatform]. If the NV index has the [AttrNVOwnerRead] // attribute, authorization can be satisfied with [HandleOwner]. If the NV index has the // [AttrNVAuthRead] or [AttrNVPolicyRead] attribute, authorization can be satisfied with nvIndex. // The command requires authorization with the user auth role for authContext, with session based // authorization provided via authContextAuthSession. If the resource associated with authContext // is not permitted to authorize this access, a *[TPMError] error with an error code of // [ErrorNVAuthorization] will be returned. // // If nvIndex is being used for authorization and the [AttrNVAuthRead] attribute is defined, the // authorization can be satisfied by demonstrating knowledge of the authorization value, either via // cleartext or HMAC authorization. If nvIndex is being used for authorization and the // [AttrNVPolicyRead] attribute is defined, the authorization can be satisfied using a policy // session with a digest that matches the authorization policy for the index. // // If the index has the [AttrNVReadLocked] attribute set, a *[TPMError] error with an error code of // [ErrorNVLocked] will be returned. // // If the index has not been initialized (ie, the [AttrNVWritten] attribute is not set), a // *[TPMError] error with an error code of [ErrorNVUninitialized] will be returned. // // On successful completion, the current bitfield value will be returned. func (t *TPMContext) NVReadBits(authContext, nvIndex ResourceContext, authContextAuthSession SessionContext, sessions ...SessionContext) (uint64, error) { context, isNv := nvIndex.(NVIndexContext) if !isNv { return 0, errors.New("nvIndex does not correspond to a NV index") } if context.Type() != NVTypeBits { return 0, errors.New("nvIndex does not correspond to a bit field") } return t.nvReadUint64(authContext, nvIndex, authContextAuthSession, sessions...) } // NVReadCounter is a convenience function for [TPMContext.NVRead] for reading the contents of the // NV counter index associated with nvIndex. If the type of nvIndex is not [NVTypeCounter], an // error will be returned. This will return an error if nvIndex cannot be type asserted to // [NVIndexContext]. // // The command requires authorization, defined by the state of the [AttrNVPPRead], // [AttrNVOwnerRead], [AttrNVAuthRead] and [AttrNVPolicyRead] attributes. The handle used for // authorization is specified via authContext. If the NV index has the [AttrNVPPRead] attribute, // authorization can be satisfied with [HandlePlatform]. If the NV index has the [AttrNVOwnerRead] // attribute, authorization can be satisfied with [HandleOwner]. If the NV index has the // [AttrNVAuthRead] or [AttrNVPolicyRead] attribute, authorization can be satisfied with nvIndex. // The command requires authorization with the user auth role for authContext, with session based // authorization provided via authContextAuthSession. If the resource associated with authContext // is not permitted to authorize this access, a *[TPMError] error with an error code of // [ErrorNVAuthorization] will be returned. // // If nvIndex is being used for authorization and the [AttrNVAuthRead] attribute is defined, the // authorization can be satisfied by demonstrating knowledge of the authorization value, either via // cleartext or HMAC authorization. If nvIndex is being used for authorization and the // [AttrNVPolicyRead] attribute is defined, the authorization can be satisfied using a policy // session with a digest that matches the authorization policy for the index. // // If the index has the [AttrNVReadLocked] attribute set, a *[TPMError] error with an error code of // [ErrorNVLocked] will be returned. // // If the index has not been initialized (ie, the [AttrNVWritten] attribute is not set), a // *[TPMError] error with an error code of [ErrorNVUninitialized] will be returned. // // On successful completion, the current counter value will be returned. func (t *TPMContext) NVReadCounter(authContext, nvIndex ResourceContext, authContextAuthSession SessionContext, sessions ...SessionContext) (uint64, error) { context, isNv := nvIndex.(NVIndexContext) if !isNv { return 0, errors.New("nvIndex does not correspond to a NV index") } if context.Type() != NVTypeCounter { return 0, errors.New("nvIndex does not correspond to a counter") } return t.nvReadUint64(authContext, nvIndex, authContextAuthSession, sessions...) } // NVReadPinCounterParams is a convenience function for [TPMContext.NVRead] for reading the // contents of the NV pin pass or NV pin fail index associated with nvIndex. If the type of nvIndex // is not [NVTypePinPass] or [NVTypePinFail], an error will be returned. This will return an error // if nvIndex cannot be type asserted to [NVIndexContext]. // // The command requires authorization, defined by the state of the [AttrNVPPRead], // [AttrNVOwnerRead], [AttrNVAuthRead] and [AttrNVPolicyRead] attributes. The handle used for // authorization is specified via authContext. If the NV index has the [AttrNVPPRead] attribute, // authorization can be satisfied with [HandlePlatform]. If the NV index has the [AttrNVOwnerRead] // attribute, authorization can be satisfied with [HandleOwner]. If the NV index has the // [AttrNVAuthRead] or [AttrNVPolicyRead] attribute, authorization can be satisfied with nvIndex. // The command requires authorization with the user auth role for authContext, with session based // authorization provided via authContextAuthSession. If the resource associated with authContext // is not permitted to authorize this access, a *[TPMError] error with an error code of // [ErrorNVAuthorization] will be returned. // // If nvIndex is being used for authorization and the [AttrNVAuthRead] attribute is defined, the // authorization can be satisfied by demonstrating knowledge of the authorization value, either via // cleartext or HMAC authorization. If nvIndex is being used for authorization and the // [AttrNVPolicyRead] attribute is defined, the authorization can be satisfied using a policy // session with a digest that matches the authorization policy for the index. // // If the index has the [AttrNVReadLocked] attribute set, a *[TPMError] error with an error code of // [ErrorNVLocked] will be returned. // // If the index has not been initialized (ie, the [AttrNVWritten] attribute is not set), a // *[TPMError] error with an error code of [ErrorNVUninitialized] will be returned. // // On successful completion, the current PIN count and limit will be returned. func (t *TPMContext) NVReadPinCounterParams(authContext, nvIndex ResourceContext, authContextAuthSession SessionContext, sessions ...SessionContext) (*NVPinCounterParams, error) { context, isNv := nvIndex.(NVIndexContext) if !isNv { return nil, errors.New("nvIndex does not correspond to a NV index") } if context.Type() != NVTypePinPass && context.Type() != NVTypePinFail { return nil, errors.New("nvIndex does not correspond to a PIN pass or PIN fail index") } data, err := t.NVRead(authContext, nvIndex, 8, 0, authContextAuthSession, sessions...) if err != nil { return nil, err } var res NVPinCounterParams if _, err := mu.UnmarshalFromBytes(data, &res); err != nil { return nil, &InvalidResponseError{CommandNVRead, fmt.Errorf("cannot unmarshal response bytes: %w", err)} } return &res, nil } // NVReadLock executes the TPM2_NV_ReadLock command to inhibit further reads of the NV index // associated with nvIndex. // // The command requires authorization, defined by the state of the [AttrNVPPRead], // [AttrNVOwnerRead], [AttrNVAuthRead] and [AttrNVPolicyRead] attributes. The handle used for // authorization is specified via authContext. If the NV index has the [AttrNVPPRead] attribute, // authorization can be satisfied with [HandlePlatform]. If the NV index has the [AttrNVOwnerRead] // attribute, authorization can be satisfied with [HandleOwner]. If the NV index has the // [AttrNVAuthRead] or [AttrNVPolicyRead] attribute, authorization can be satisfied with nvIndex. // The command requires authorization with the user auth role for authContext, with session based // authorization provided via authContextAuthSession. If the resource associated with authContext // is not permitted to authorize this access, a *[TPMError] error with an error code of // [ErrorNVAuthorization] will be returned. // // If nvIndex is being used for authorization and the [AttrNVAuthRead] attribute is defined, the // authorization can be satisfied by demonstrating knowledge of the authorization value, either via // cleartext or HMAC authorization. If nvIndex is being used for authorization and the // [AttrNVPolicyRead] attribute is defined, the authorization can be satisfied using a policy // session with a digest that matches the authorization policy for the index. // // If the index doesn't have the [AttrNVReadStClear] attribute set, then a *[TPMHandleError] error // with an error code of [ErrorAttributes] will be returned for handle index 2. // // On successful completion, the [AttrNVReadLocked] attribute will be set. If nvIndex can be type // asserted to [NVIndexContext], the name of nvIndex will be updated accordingly. The attribute // will be cleared again (and reads will be reenabled) on the next TPM reset or TPM restart. func (t *TPMContext) NVReadLock(authContext, nvIndex ResourceContext, authContextAuthSession SessionContext, sessions ...SessionContext) error { if err := t.StartCommand(CommandNVReadLock). AddHandles(UseResourceContextWithAuth(authContext, authContextAuthSession), UseHandleContext(nvIndex)). AddExtraSessions(sessions...). Run(nil); err != nil { return err } if nv, isNv := nvIndex.(NVIndexContext); isNv { nv.SetAttr(AttrNVReadLocked) } return nil } // NVChangeAuth executes the TPM2_NV_ChangeAuth command to change the authorization value for the // NV index associated with nvIndex, setting it to the new value defined by newAuth. The command // requires the admin auth role for nvIndex, with the session provided via nvIndexAuthSession. // // If the size of newAuth is greater than the name algorithm for the index, a *[TPMParameterError] // error with an error code of [ErrorSize] will be returned. // // On successful completion, the authorization value of the NV index associated with nvIndex will // be set to the value of newAuth, and nvIndex will be updated to reflect this - it isn't necessary // to update nvIndex with [ResourceContext].SetAuthValue in order to use it in authorization roles // that require knowledge of the authorization value for the index. func (t *TPMContext) NVChangeAuth(nvIndex ResourceContext, newAuth Auth, nvIndexAuthSession SessionContext, sessions ...SessionContext) error { r, err := t.StartCommand(CommandNVChangeAuth). AddHandles(UseResourceContextWithAuth(nvIndex, nvIndexAuthSession)). AddParams(newAuth). AddExtraSessions(sessions...). RunWithoutProcessingResponse(nil) if err != nil { return err } // If the session is not bound to nvIndex, the TPM will respond with a HMAC generated with a key derived from newAuth. If the // session is bound, the TPM will respond with a HMAC generated from the original key nvIndex.SetAuthValue(newAuth) return r.Complete() } // func (t *TPMContext) NVCertify(signContext, authContext, nvIndex HandleContext, qualifyingData Data, // inScheme *SigScheme, size, offset uint16, signContextAuth, authContextAuth interface{}, // sessions ...SessionContext) (*Attest, *Signature, error) { // } ./github.com/canonical/go-tpm2/cmds_object.go0000664000000000000000000012407100000000000016167 0ustar00// Copyright 2019 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package tpm2 // Section 12 - Object Commands import ( "errors" "fmt" "github.com/canonical/go-tpm2/mu" ) // Create executes the TPM2_Create command to create a new ordinary object as a child of the // storage parent associated with parentContext. // // The command requires authorization with the user auth role for parentContext, with session based // authorization provided via parentContextAuthSession. // // A template for the object is provided via the inPublic parameter. The Type field of inPublic // defines the algorithm for the object. The NameAlg field defines the digest algorithm for // computing the name of the object. The Attrs field defines the attributes of the object. The // AuthPolicy field allows an authorization policy to be defined for the new object. // // Data that will form part of the sensitive area of the object can be provided via inSensitive, // which is optional. // // If the Attrs field of inPublic does not have the [AttrSensitiveDataOrigin] attribute set, then // the sensitive data in the created object is initialized with the data provided via the Data // field of inSensitive. // // If the Attrs field of inPublic has the [AttrSensitiveDataOrigin] attribute set and Type is // [ObjectTypeSymCipher], then the sensitive data in the created object is initialized with a TPM // generated key. The size of this key is determined by the symmetric algorithm defined in the // Params field of inPublic. If Type is [ObjectTypeKeyedHash], then the sensitive data in the // created object is initialized with a TPM generated value that is the same size as the name // algorithm selected by the NameAlg field of inPublic. // // If the Type field of inPublic is [ObjectTypeRSA] or [ObjectTypeECC], then the sensitive data // in the created object is initialized with a TPM generated private key. The size of this is // determined by the asymmetric algorithm defined in the Params field of inPublic. // // If the Type field of inPublic is [ObjectTypeKeyedHash] and the Attrs field has // [AttrSensitiveDataOrigin], [AttrSign] and [AttrDecrypt] all clear, then the created object is a // sealed data object. // // If the Attrs field of inPublic has the [AttrRestricted] and [AttrDecrypt] attributes set, and // the Type field is not [ObjectTypeKeyedHash], then the newly created object will be a storage // parent. // // If the Attrs field of inPublic has the [AttrRestricted] and [AttrDecrypt] attributes set, and // the Type field is [ObjectTypeKeyedHash], then the newly created object will be a derivation // parent. // // The authorization value for the created object is initialized to the value of the UserAuth field // of inSensitive. // // If the object associated with parentContext is not a valid storage parent object, a // *[TPMHandleError] error with an error code of [ErrorType] will be returned for handle index 1. // // If there are no available slots for new objects on the TPM, a *[TPMWarning] error with a warning // code of [WarningObjectMemory] will be returned. // // If the Attrs field of inPublic as the [AttrSensitiveDataOrigin] attribute set and the Data field // of inSensitive has a non-zero size, or the [AttrSensitiveDataOrigin] attribute is clear and the // Data field of inSensitive has a zero size, a *[TPMParameterError] error with an error code of // [ErrorAttributes] will be returned for parameter index 1. // // If the attributes in the Attrs field of inPublic are inconsistent or inappropriate for the // usage, a *[TPMParameterError] error with an error code of [ErrorAttributes] will be returned for // parameter index 2. // // If the NameAlg field of inPublic is [HashAlgorithmNull], then a *[TPMParameterError] error with // an error code of [ErrorHash] will be returned for parameter index 2. // // If an authorization policy is defined via the AuthPolicy field of inPublic then the length of // the digest must match the name algorithm selected via the NameAlg field, else a // *[TPMParameterError] error with an error code of [ErrorSize] is returned for parameter index 2. // // If the scheme in the Params field of inPublic is inappropriate for the usage, a // *[TPMParameterError] error with an error code of [ErrorScheme] will be returned for parameter // index 2. // // If the Type field of inPublic is [ObjectTypeRSA], [ObjectTypeECC] or [ObjectTypeKeyedHash] and // the digest algorithm specified by the scheme in the Params field of inPublic is inappropriate // for the usage, a *[TPMParameterError] error with an error code of [ErrorHash] will be returned // for parameter index 2. // // If the Type field of inPublic is not [ObjectTypeKeyedHash], a *[TPMParameterError] error with an // error code of [ErrorSymmetric] will be returned for parameter index 2 if the symmetric algorithm // specified in the Params field of inPublic is inappropriate for the usage. // // If the Type field of inPublic is [ObjectTypeECC] and the KDF scheme specified in the Params // field of inPublic is not [KDFAlgorithmNull], a *[TPMParameterError] error with an error code of // [ErrorKDF] will be returned for parameter index 2. // // If the Type field of inPublic is not [ObjectTypeKeyedHash] and the [AttrRestricted], // [AttrFixedParent] and [AttrDecrypt] attributes of Attrs are set, a *[TPMParameterError] error // with an error code of [ErrorHash] will be returned for parameter index 2 if the NameAlg field of // inPublic does not select the same name algorithm as the parent object. A *[TPMParameterError] // error with an error code of [ErrorSymmetric] will be returned for parameter index 2 if the // symmetric algorithm specified in the Params field of inPublic does not match the symmetric // algorithm of the parent object. // // If the length of the UserAuth field of inSensitive is longer than the name algorithm selected by // the NameAlg field of inPublic, a *[TPMParameterError] error with an error code of [ErrorSize] // will be returned for parameter index 1. // // If the Type field of inPublic is [ObjectTypeRSA] and the Params field specifies an unsupported // exponent, a *[TPMError] with an error code of [ErrorRange] will be returned. If the specified // key size is an unsupported value, a *[TPMError] with an error code of [ErrorValue] will be // returned. // // If the Type field of inPublic is [ObjectTypeSymCipher] and the key size is an unsupported value, // a *[TPMError] with an error code of [ErrorKeySize] will be returned. If the // [AttrSensitiveDataOrigin] attribute is not set and the length of the Data field of inSensitive // does not match the key size specified in the Params field of inPublic, a *[TPMError] with an // error code of [ErrorKeySize] will be returned. // // If the Type field of inPublic is [ObjectTypeKeyedHash] and the [AttrSensitiveDataOrigin] // attribute is not set, a *[TPMError] with an error code of [ErrorSize] will be returned if the // length of the Data field of inSensitive is longer than permitted for the digest algorithm // selected by the specified scheme. // // This function will call [TPMContext.InitProperties] if it hasn't already been called. // // On success, the private and public parts of the newly created object will be returned. The newly // created object will not exist on the TPM. If the Type field of inPublic is [ObjectTypeKeyedHash] // or [ObjectTypeSymCipher], then the returned *Public object will have a Unique field that is the // digest of the sensitive data and the value of the object's seed in the sensitive area, computed // using the object's name algorithm. If the Type field of inPublic is [ObjectTypeECC] or // [ObjectTypeRSA], then the returned *Public object will have a Unique field containing details // about the public part of the key, computed from the private part of the key. // // The returned *CreationData will contain a digest computed from the values of PCRs selected by // the creationPCR parameter at creation time in the PCRDigest field. It will also contain the // provided outsideInfo in the OutsideInfo field. The returned *TkCreation ticket can be used to // prove the association between the created object and the returned *CreationData via the // [TPMContext.CertifyCreation] method. func (t *TPMContext) Create(parentContext ResourceContext, inSensitive *SensitiveCreate, inPublic *Public, outsideInfo Data, creationPCR PCRSelectionList, parentContextAuthSession SessionContext, sessions ...SessionContext) (outPrivate Private, outPublic *Public, creationData *CreationData, creationHash Digest, creationTicket *TkCreation, err error) { if err := t.initPropertiesIfNeeded(); err != nil { return nil, nil, nil, nil, nil, err } if inSensitive == nil { inSensitive = &SensitiveCreate{} } if err := t.StartCommand(CommandCreate). AddHandles(UseResourceContextWithAuth(parentContext, parentContextAuthSession)). AddParams(mu.Sized(inSensitive), mu.Sized(inPublic), outsideInfo, creationPCR.WithMinSelectSize(t.properties.minPcrSelectSize)). AddExtraSessions(sessions...). Run(nil, &outPrivate, mu.Sized(&outPublic), mu.Sized(&creationData), &creationHash, &creationTicket); err != nil { return nil, nil, nil, nil, nil, err } return outPrivate, outPublic, creationData, creationHash, creationTicket, nil } // Load executes the TPM2_Load command in order to load both the public and private parts of an // object in to the TPM. // // The parentContext parameter corresponds to the parent key. The command requires authorization // with the user auth role for parentContext, with session based authorization provided via // parentContextAuthSession. // // The object to load is specified by providing the inPrivate and inPublic arguments. // // If there are no available slots for new objects on the TPM, a *[TPMWarning] error with a warning // code of [WarningObjectMemory] will be returned. // // If inPrivate is empty, a *[TPMParameterError] error with an error code of [ErrorSize] will be // returned for parameter index 1. // // If parentContext does not correspond to a storage parent, a *[TPMHandleError] error with an // error code of [ErrorType] will be returned. // // If the name algorithm associated with inPublic is invalid, a *[TPMParameterError] error with an // error code of [ErrorHash] will be returned for parameter index 2. // // If the integrity value or IV for inPrivate cannot be unmarshalled correctly, a // *[TPMParameterError] error with an error code of either [ErrorSize] or [ErrorInsufficient] will // be returned for parameter index 1. If the integrity check of inPrivate fails, a // *[TPMParameterError] error with an error code of [ErrorIntegrity] will be returned for parameter // index 1. If the size of the IV for inPrivate doesn't match the block size for the encryption // algorithm, a *[TPMParameterError] error with an error code of [ErrorValue] will be returned for // parameter index 1. // // TPM2_Load performs many of the same validations of the public attributes as TPM2_Create, and may // return similar error codes as *[TPMParameterError] for parameter index 2. // // If the object associated with parentContext has the [AttrFixedTPM] attribute clear, some // additional validation of the decrypted sensitive data is performed as detailed below. // // If the Type field of inPublic does not match the type specified in the sensitive data, a // *[TPMParameterError] error with an error code of [ErrorType] is returned for parameter index 1. // If the authorization value in the sensitive area is larger than the name algorithm, a // *[TPMParameterError] error with an error code of [ErrorSize] is returned for parameter index 1. // // If the Type field of inPublic is [ObjectTypeRSA] and the size of the modulus in the Unique field // is inconsistent with the size specified in the Params field, a *[TPMParameterError] error with // an error code of [ErrorKey] will be returned for parameter index 2. If the value of the exponent // in the Params field is invalid, a *[TPMParameterError] error with an error code of [ErrorValue] // will be returned for parameter index 2. If the size of private key in the sensitive area is not // the correct size, a *[TPMParameterError] error with an error code of [ErrorKeySize] will be // returned for parameter index 1. // // If the Type field of inPublic is [ObjectTypeECC] and the private key in the sensitive area is // invalid, a *[TPMParameterError] error with an error code of [ErrorKeySize] will be returned for // parameter index 1. If the public point specified in the Unique field of inPublic does not belong // to the private key, a *[TPMError] with an error code of [ErrorBinding] will be returned. // // If the Type field of inPublic is [ObjectTypeSymCipher] and the size of the symmetric key in the // sensitive area is inconsistent with the symmetric algorithm specified in the Params field of // inPublic, a *[TPMParameterError] error with an error code of [ErrorKeySize] will be returned for // parameter index 1. // // If the Type field of inPublic is [ObjectTypeKeyedHash] and the size of the sensitive data is // larger than permitted for the digest algorithm selected by the scheme defined in the Params // field of inPublic, a *[TPMParameterError] error with an error code of [ErrorKeySize] will be // returned for parameter index 1. // // If the Type field of inPublic is [ObjectTypeSymCipher] or [ObjectTypeKeyedHash] and the size of // seed value in the sensitive area does not match the name algorithm, a *[TPMError] error with an // error code of [ErrorKeySize] will be returned. If the digest in the Unique field of inPublic is // inconsistent with the value of the sensitive data and the seed value, a *[TPMError] with an // error code of [ErrorBinding] will be returned. // // If the loaded object is a storage parent and the size of the seed value in the sensitive area // isn't sufficient for the selected name algorithm, a *[TPMParameterError] error with an error // code of [ErrorSize] will be returned for parameter index 1. // // On success, a ResourceContext corresponding to the newly loaded transient object will be // returned. If subsequent use of the returned ResourceContext requires knowledge of the // authorization value of the corresponding TPM resource, this should be provided by calling // [ResourceContext].SetAuthValue. The return ResourceContext can be type asserted to [ObjectContext]. func (t *TPMContext) Load(parentContext ResourceContext, inPrivate Private, inPublic *Public, parentContextAuthSession SessionContext, sessions ...SessionContext) (objectContext ResourceContext, err error) { var objectHandle Handle var name Name if err := t.StartCommand(CommandLoad). AddHandles(UseResourceContextWithAuth(parentContext, parentContextAuthSession)). AddParams(inPrivate, mu.Sized(inPublic)). AddExtraSessions(sessions...). Run(&objectHandle, &name); err != nil { return nil, err } if objectHandle.Type() != HandleTypeTransient { return nil, &InvalidResponseError{CommandLoad, fmt.Errorf("handle 0x%08x returned from TPM is the wrong type", objectHandle)} } if inPublic == nil { return nil, &InvalidResponseError{CommandLoad, errors.New("expected an error because no public area was supplied")} } if inPublic.NameAlg.Available() && !inPublic.compareName(name) { return nil, &InvalidResponseError{CommandLoad, errors.New("name returned from TPM not consistent with supplied public area")} } var public *Public if err := mu.CopyValue(&public, inPublic); err != nil { // if this fails then the TPM should have returned an error. return nil, &InvalidResponseError{CommandLoad, fmt.Errorf("expected an error because the public area was invalid: %w", err)} } return newObjectContext(objectHandle, name, public), nil } // LoadExternal executes the TPM2_LoadExternal command in order to load an object that is not a // protected object in to the TPM. The object is specified by providing the inPrivate and inPublic // arguments, although inPrivate is optional. If only the public part is to be loaded, the // hierarchy parameter must specify a hierarchy to associate the loaded object with so that // tickets can be created properly. If both the public and private parts are to be loaded, then // hierarchy should be [HandleNull]. // // If there are no available slots for new objects on the TPM, a *[TPMWarning] error with a warning // code of [WarningObjectMemory] will be returned. // // If the hierarchy specified by the hierarchy parameter is disabled, a *[TPMParameterError] error // with an error code of [ErrorHierarchy] will be returned for parameter index 3. // // If inPrivate is provided and hierarchy is not [HandleNull], a *[TPMParameterError] error with an // error code of [ErrorHierarchy] will be returned for parameter index 3. // // If inPrivate is provided and the Attrs field of inPublic has either [AttrFixedTPM], // [AttrFixedParent] or [AttrRestricted] attribute set, a *[TPMParameterError] error with an error // code of [ErrorAttributes] will be returned for parameter index 2. // // TPM2_LoadExternal performs many of the same validations of the public attributes as TPM2_Create, // and may return similar error codes as *[TPMParameterError] for parameter index 2. // // If inPrivate is provided and the Type field of inPublic does not match the type specified in the // sensitive data, a *[TPMParameterError] error with an error code of [ErrorType] is returned for // parameter index 1. If the authorization value in the sensitive area is larger than the name // algorithm, a *[TPMParameterError] error with an error code of [ErrorSize] is returned for // parameter index 1. // // If the Type field of inPublic is [ObjectTypeRSA] and the size of the modulus in the Unique field // is inconsistent with the size specified in the Params field, a *[TPMParameterError] error with // an error code of [ErrorKey] will be returned for parameter index 2. If the value of the exponent // in the Params field is invalid, a *[TPMParameterError] error with an error code of [ErrorValue] // will be returned for parameter index 2. If inPrivate is provided and the size of private key in // the sensitive area is not the correct size, a *[TPMParameterError] error with an error code of // [ErrorKeySize] will be returned for parameter index 1. // // If the Type field of inPublic is [ObjectTypeECC], inPrivate is provided and the private key in // the sensitive area is invalid, a *[TPMParameterError] error with an error code of [ErrorKeySize] // will be returned for parameter index 1. If the public point specified in the Unique field of // inPublic does not belong to the private key, a *[TPMError] with an error code of [ErrorBinding] // will be returned. // // If the Type field of inPublic is [ObjectTypeECC], inPrivate is not provided and the size of the // public key in the Unique field of inPublic is inconsistent with the value of the Params field of // inPublic, a *[TPMParameterError] error with an error code of [ErrorKey] is returned for // parameter index 2. If the public point is not on the curve specified in the Params field of // inPublic, a *[TPMParameterError] error with an error code of [ErrorECCPoint] will be returned // for parameter index 2. // // If the Type field of inPublic is [ObjectTypeSymCipher], inPrivate is provided and the size of // the symmetric key in the sensitive area is inconsistent with the symmetric algorithm specified // in the Params field of inPublic, a *[TPMParameterError] error with an error code of // [ErrorKeySize] will be returned for parameter index 1. // // If the Type field of inPublic is [ObjectTypeKeyedHash], inPrivate is provided and the size of // the sensitive data is larger than permitted for the digest algorithm selected by the scheme // defined in the Params field of inPublic, a *[TPMParameterError] error with an error code of // [ErrorKeySize] will be returned for parameter index 1. // // If the Type field of inPublic is [ObjectTypeSymCipher] or [ObjectTypeKeyedHash] and inPrivate // has not been provided, a *[TPMParameterError] error with an error code of [ErrorKey] will be // returned for parameter index 2 if the size of the digest in the Unique field of inPublic does // not match the selected name algorithm. // // If the Type field of inPublic is [ObjectTypeSymCipher] or [ObjectTypeKeyedHash], inPrivate has // been provided and the size of seed value in the sensitive area does not match the name // algorithm, a *[TPMError] error with an error code of [ErrorKeySize] will be returned. If the // digest in the Unique field of inPublic is inconsistent with the value of the sensitive data and // the seed value, a *[TPMError] with an error code of [ErrorBinding] will be returned. // // On success, a ResourceContext corresponding to the newly loaded transient object will be // returned. If inPrivate has been provided, it will not be necessary to call // [ResourceContext].SetAuthValue on it - this function sets the correct authorization value so // that it can be used in subsequent commands that require knowledge of the authorization value. // The return ResourceContext can be type asserted to [ObjectContext]. func (t *TPMContext) LoadExternal(inPrivate *Sensitive, inPublic *Public, hierarchy Handle, sessions ...SessionContext) (objectContext ResourceContext, err error) { var objectHandle Handle var name Name if err := t.StartCommand(CommandLoadExternal). AddParams(mu.Sized(inPrivate), mu.Sized(inPublic), hierarchy). AddExtraSessions(sessions...). Run(&objectHandle, &name); err != nil { return nil, err } if objectHandle.Type() != HandleTypeTransient { return nil, &InvalidResponseError{CommandLoadExternal, fmt.Errorf("handle 0x%08x returned from TPM is the wrong type", objectHandle)} } if inPublic == nil { return nil, &InvalidResponseError{CommandLoadExternal, errors.New("expected an error because no public area was supplied")} } if inPublic.NameAlg.Available() && !inPublic.compareName(name) { return nil, &InvalidResponseError{CommandLoadExternal, errors.New("name returned from TPM not consistent with supplied public area")} } var public *Public if err := mu.CopyValue(&public, inPublic); err != nil { // if this fails then the TPM should have returned an error. return nil, &InvalidResponseError{CommandLoadExternal, fmt.Errorf("expected an error because the public area was invalid: %w", err)} } rc := newObjectContext(objectHandle, name, public) if inPrivate != nil { rc.authValue = make([]byte, len(inPrivate.AuthValue)) copy(rc.authValue, inPrivate.AuthValue) } return rc, nil } // ReadPublic executes the TPM2_ReadPublic command to read the public area of the object associated // with objectContext. // // If objectContext corresponds to a sequence object, a *[TPMError] with an error code of // [ErrorSequence] will be returned. // // On success, the public part of the object is returned, along with the object's name and // qualified name. func (t *TPMContext) ReadPublic(objectContext HandleContext, sessions ...SessionContext) (outPublic *Public, name Name, qualifiedName Name, err error) { if err := t.StartCommand(CommandReadPublic). AddHandles(UseHandleContext(objectContext)). AddExtraSessions(sessions...). Run(nil, mu.Sized(&outPublic), &name, &qualifiedName); err != nil { return nil, nil, nil, err } return outPublic, name, qualifiedName, nil } // ActivateCredential executes the TPM2_ActivateCredential command to associate a credential with // the object associated with activateContext. // // The activateContext parameter corresponds to an object to which credentialBlob is to be // associated. It would typically be an attestation key, and the credential issuer would have // validated that this object has the expected properties of an attestation key (it is a // restricted, non-duplicable signing key) before issuing the credential. Authorization with the // admin role is required for activateContext, with session based authorization provided via // activateContextAuthSession. // // The credentialBlob is an encrypted and integrity protected credential (see section 24 - // "Credential Protection" of Part 1 of the Trusted Platform Module Library specification). The // secret parameter is used by the private part of the key associated with keyContext in order to // recover the seed used to protect the credential. // // The keyContext parameter corresponds to an asymmetric restricted decrypt. It is typically an // endorsement key, and the credential issuer would have verified that it is a valid endorsement // key by verifying the associated endorsement certificate. Authorization with the user auth role // is required for keyContext, with session based authorization provided via keyContextAuthSession. // // If keyContext does not correspond to an asymmetric restricted decrypt key, a *[TPMHandleError] // error with an error code of [ErrorType] is returned for handle index 2. // // If recovering the seed from secret fails, a *[TPMParameterError] error with an error code of // [ErrorScheme], [ErrorValue], [ErrorSize] or [ErrorECCPoint] may be returned for parameter index // 2. // // If the integrity value or IV for credentialBlob cannot be unmarshalled correctly or any other // errors occur during unmarshalling of credentialBlob, a *[TPMParameterError] error with an error // code of either [ErrorSize] or [ErrorInsufficient] will be returned for parameter index 1. If // the integrity check of credentialBlob fails, a *[TPMParameterError] error with an error code of // [ErrorIntegrity] will be returned for parameter index 1. If the size of the IV for // credentialBlob doesn't match the block size for the encryption algorithm, a *[TPMParameterError] // error with an error code of [ErrorValue] will be returned for parameter index 1. // // On success, the decrypted credential is returned. This is typically used to decrypt a // certificate associated with activateContext, or provide a response to a challenge provided by // the credential issuer. func (t *TPMContext) ActivateCredential(activateContext, keyContext ResourceContext, credentialBlob IDObject, secret EncryptedSecret, activateContextAuthSession, keyContextAuthSession SessionContext, sessions ...SessionContext) (certInfo Digest, err error) { if err := t.StartCommand(CommandActivateCredential). AddHandles(UseResourceContextWithAuth(activateContext, activateContextAuthSession), UseResourceContextWithAuth(keyContext, keyContextAuthSession)). AddParams(credentialBlob, secret). AddExtraSessions(sessions...). Run(nil, &certInfo); err != nil { return nil, err } return certInfo, nil } // MakeCredential executes the TPM2_MakeCredential command to allow the TPM to perform the actions // of a certificate authority, in order to create an activation credential. // // The object associated with context must be the public part of a storage key, which would // typically be the endorsement key of the TPM from which the request originates. The certificate // authority would normally be in receipt of the TPM manufacturer issued endorsement certificate // corresponding to this key and would have validated this. The certificate is an assertion from // the manufacturer that the key is a valid endorsement key (a restricted, non-duplicable decrypt // key) that is resident on a genuine TPM. // // The credential parameter is the activation credential, which would typically be used to protect // the generated certificate or supply a challenge. The objectName parameter is the name of object // for which a certificate is requested. The public part of this object would normally be validated // by the certificate authority to ensure that it has the properties expected of an attestation key // (it is a restricted, non-duplicable signing key). // // If context does not correspond to an asymmetric restricted decrypt key, a *[TPMHandleError] // error with an error code of [ErrorType] is returned. // // If the size of credential is larger than the name algorithm associated with context, a // *[TPMParameterError] error with an error code of [ErrorSize] will be returned for parameter // index 1. // // If the algorithm of the object associated with context is [ObjectTypeECC], a *[TPMError] with an // error code of [ErrorKey] will be returned if the ECC key is invalid. If the algorithm of the // object associated with context is [ObjectTypeRSA], a *[TPMError] with an error code of // [ErrorScheme] will be returned if the padding scheme is invalid or not supported. // // On success, the encrypted and integrity protected activation credential is returned as // IDObject (see section 24 - "Credential Protection" of Part 1 of the Trusted Platform Module // Library specification). A secret which can be used by the private part of the key associated // with context to recover the seed used to protect the credential (using the // TPM2_ActivateCredential command) is returned as EncryptedSecret. func (t *TPMContext) MakeCredential(context ResourceContext, credential Digest, objectName Name, sessions ...SessionContext) (credentialBlob IDObject, secret EncryptedSecret, err error) { if err := t.StartCommand(CommandMakeCredential). AddHandles(UseHandleContext(context)). AddParams(credential, objectName). AddExtraSessions(sessions...). Run(nil, &credentialBlob, &secret); err != nil { return nil, nil, err } return credentialBlob, secret, nil } // Unseal executes the TPM2_Unseal command to decrypt the sealed data object associated with // itemContext and retrieve its sensitive data. The command requires authorization with the user // auth role for itemContext, with session based authorization provided via itemContextAuthSession. // // If the type of object associated with itemContext is not [ObjectTypeKeyedHash], a // *[TPMHandleError] error with an error code of [ErrorType] will be returned. If the object // associated with itemContext has either the [AttrDecrypt], [AttrSign] or [AttrRestricted] // attributes set, a *[TPMHandleError] error with an error code of [ErrorAttributes] will be // returned. // // On success, the object's sensitive data is returned in decrypted form. func (t *TPMContext) Unseal(itemContext ResourceContext, itemContextAuthSession SessionContext, sessions ...SessionContext) (outData SensitiveData, err error) { if err := t.StartCommand(CommandUnseal). AddHandles(UseResourceContextWithAuth(itemContext, itemContextAuthSession)). AddExtraSessions(sessions...). Run(nil, &outData); err != nil { return nil, err } return outData, nil } // ObjectChangeAuth executes the TPM2_ObjectChangeAuth to change the authorization value of the // object associated with objectContext. This command requires authorization with the admin role // for objectContext, with sessio based authorization provided via objectContextAuthSession. // // The new authorization value is provided via newAuth. The parentContext parameter must // correspond to the parent object for objectContext. No authorization is required for // parentContext. // // If the object associated with objectContext is a sequence object, a *[TPMHandleError] error with // an error code of ErrorType will be returned for handle index 1. // // If the length of newAuth is longer than the name algorithm for objectContext, a // *[TPMParameterError] error with an error code of [ErrorSize] will be returned. // // If the object associated with parentContext is not the parent object of objectContext, a // *[TPMHandleError] error with an error code of [ErrorType] will be returned for handle index 2. // // On success, this returns a new private area for the object associated with objectContext. This // function does not make any changes to the version of the object that is currently loaded in to // the TPM. func (t *TPMContext) ObjectChangeAuth(objectContext, parentContext ResourceContext, newAuth Auth, objectContextAuthSession SessionContext, sessions ...SessionContext) (outPrivate Private, err error) { if err := t.StartCommand(CommandObjectChangeAuth). AddHandles(UseResourceContextWithAuth(objectContext, objectContextAuthSession), UseHandleContext(parentContext)). AddParams(newAuth). AddExtraSessions(sessions...). Run(nil, &outPrivate); err != nil { return nil, err } return outPrivate, nil } // CreateLoaded executes the TPM2_CreateLoaded command to create a new primary, ordinary or derived // object. To create a new primary object, parentContext should correspond to a hierarchy. To // create a new ordinary object, parentContext should correspond to a storage parent. To create a // new derived object, parentContext should correspond to a derivation parent. // // The command requires authorization with the user auth role for parentContext, with session based // authorization provided via parentContextAuthSession. // // A template for the object is provided via the inPublic parameter. Because of the way that this // parameter is handled by the TPM spec, the parameter is an interface that serializes the actual // template. The interface is implemented by both the [Public] and [PublicDerived] types. // // The Type field of the template defines the algorithm for the object. The NameAlg field defines // the digest algorithm for computing the name of the object. The Attrs field defines the // attributes of the object. The AuthPolicy field allows an authorization policy to be defined for // the new object. // // Data that will form part of the sensitive area of the object can be provided via inSensitive, // which is optional. // // If parentContext does not correspond to a derivation parent and the Attrs field of of the // template does not have the [AttrSensitiveDataOrigin] attribute set, then the sensitive data in // the created object is initialized with the data provided via the Data field of inSensitive. // // If the Attrs field of the template has the [AttrSensitiveDataOrigin] attribute set and Type is // [ObjectTypeSymCipher], then the sensitive data in the created object is initialized with a TPM // generated key. The size of this key is determined by the symmetric algorithm defined in the // Params field of the template. If Type is [ObjectTypeKeyedHash], then the sensitive data in the // created object is initialized with a TPM generated value that is the same size as the name // algorithm selected by the NameAlg field of the template. // // If the Type field of the template is [ObjectTypeRSA] then the sensitive data in the created // object is initialized with a TPM generated private key. The size of this is determined by the // asymmetric algorithm defined in the Params field of the template. // // If the Type field of the template is [ObjectTypeECC] and parentContext does not correspond to a // derivation parent, then the sensitive data in the created object is initialized with a TPM // generated private key. The size of this is determined by the asymmetric algorithm defined in // the Params field of the template. // // If parentContext corresponds to a derivation parent, the sensitive data in the created object is // initialized with a value derived from the parent object's private seed, and the derivation // values specified in either the Unique field of the template or the Data field of inSensitive. // // If the Type field of the template is [ObjectTypeKeyedHash], the Attrs field has // [AttrSensitiveDataOrigin], [AttrSign] and [AttrDecrypt] all clear, then the created object is a // sealed data object. // // If the Attrs field of the template has the [AttrRestricted] and [AttrDecrypt] attributes set, // and the Type field is not [ObjectTypeKeyedHash], then the newly created object will be a storage // parent. // // If the Attrs field of the template has the [AttrRestricted] and [AttrDecrypt] attributes set, // and the Type field is [ObjectTypeKeyedHash], then the newly created object will be a derivation // parent. // // The authorization value for the created object is initialized to the value of the UserAuth field // of inSensitive. // // If parentContext corresponds to an object and it isn't a valid storage parent or derivation // parent, *[TPMHandleError] error with an error code of [ErrorType] will be returned for handle // index 1. // // If there are no available slots for new objects on the TPM, a *[TPMWarning] error with a warning // code of [WarningObjectMemory] will be returned. // // If the attributes in the Attrs field of the template are inconsistent or inappropriate for the // usage, a *[TPMParameterError] error with an error code of [ErrorAttributes] will be returned for // parameter index 2. // // If the NameAlg field of the template is [HashAlgorithmNull], then a *[TPMParameterError] error // with an error code of [ErrorHash] will be returned for parameter index 2. // // If an authorization policy is defined via the AuthPolicy field of the template then the length // of the digest must match the name algorithm selected via the NameAlg field, else a // *[TPMParameterError] error with an error code of [ErrorSize] is returned for parameter index 2. // // If the scheme in the Params field of the template is inappropriate for the usage, a // *[TPMParameterError] errow with an error code of [ErrorScheme] will be returned for parameter // index 2. // // If the Type field of the template is [ObjectTypeRSA], [ObjectTypeECC] or [ObjectTypeKeyedHash] // and the digest algorithm specified by the scheme in the Params field of the template is // inappropriate for the usage, a *[TPMParameterError] error with an error code of [ErrorHash] will // be returned for parameter index 2. // // If the Type field of the template is not [ObjectTypeKeyedHash], a *[TPMParameterError] error // with an error code of [ErrorSymmetric] will be returned for parameter index 2 if the symmetric // algorithm specified in the Params field of the template is inappropriate for the usage. // // If the Type field of the template is [ObjectTypeECC] and the KDF scheme specified in the Params // field is not [KDFAlgorithmNull], a *[TPMParameterError] error with an error code of [ErrorKDF] // will be returned for parameter index 2. // // If the Type field of the template is not [ObjectTypeKeyedHash] and the [AttrRestricted], // [AttrFixedParent] and [AttrDecrypt] attributes of Attrs are set, a *[TPMParameterError] error // with an error code of [ErrorHash] will be returned for parameter index 2 if the NameAlg field of // the template does not select the same name algorithm as the parent object. A // *[TPMParameterError] error with an error code of [ErrorSymmetric] will be returned for parameter // index 2 if the symmetric algorithm specified in the Params field of the template does not match // the symmetric algorithm of the parent object. // // If the length of the UserAuth field of inSensitive is longer than the name algorithm selected by // the NameAlg field of the template, a *[TPMParameterError] error with an error code of // [ErrorSize] will be returned for parameter index 1. // // If the Type field of the template is [ObjectTypeRSA] and the Params field specifies an // unsupported exponent, a *[TPMError] with an error code of [ErrorRange] will be returned. If the // specified key size is an unsupported value, a *[TPMError] with an error code of [ErrorValue] // will be returned. // // If the Type field of the template is [ObjectTypeSymCipher] and the key size is an unsupported // value, a *[TPMError] with an error code of [ErrorKeySize] will be returned. If the // [AttrSensitiveDataOrigin] attribute is not set and the length of the Data field of inSensitive // does not match the key size specified in the Params field of the template, a *[TPMError] with an // error code of [ErrorKeySize] will be returned. // // If the Type field of the template is [ObjectTypeKeyedHash] and the [AttrSensitiveDataOrigin] // attribute is not set, a *[TPMError] with an error code of [ErrorSize] will be returned if the // length of the Data field of inSensitive is longer than permitted for the digest algorithm // selected by the specified scheme. // // On success, a ResourceContext instance will be returned that corresponds to the newly created // object on the TPM, along with the private and public parts. It will not be necessary to call // [ResourceContext].SetAuthValue on the returned ResourceContext - this function sets the correct // authorization value so that it can be used in subsequent commands that require knowledge of the // authorization value. The returned ResourceContext can be type asserted to [ObjectContext]. If // the Type field of the template is [ObjectTypeKeyedHash] or [ObjectTypeSymCipher], then the // returned *Public object will have a Unique field that is the digest of the sensitive data and // the value of the object's seed in the sensitive area, computed using the object's name algorithm. // If the Type field of the template is [ObjectTypeECC] or [ObjectTypeRSA], then the returned *Public // object will have a Unique field containing details about the public part of the key, computed from // the private part of the key. func (t *TPMContext) CreateLoaded(parentContext ResourceContext, inSensitive *SensitiveCreate, inPublic PublicTemplate, parentContextAuthSession SessionContext, sessions ...SessionContext) (objectContext ResourceContext, outPrivate Private, outPublic *Public, err error) { if inSensitive == nil { inSensitive = &SensitiveCreate{} } if inPublic == nil { return nil, nil, nil, makeInvalidArgError("inPublic", "nil value") } inTemplate, err := inPublic.ToTemplate() if err != nil { return nil, nil, nil, fmt.Errorf("cannot marshal public template: %v", err) } var objectHandle Handle var name Name if err := t.StartCommand(CommandCreateLoaded). AddHandles(UseResourceContextWithAuth(parentContext, parentContextAuthSession)). AddParams(mu.Sized(inSensitive), inTemplate). AddExtraSessions(sessions...). Run(&objectHandle, &outPrivate, mu.Sized(&outPublic), &name); err != nil { return nil, nil, nil, err } if objectHandle.Type() != HandleTypeTransient { return nil, nil, nil, &InvalidResponseError{CommandCreateLoaded, fmt.Errorf("handle 0x%08x returned from TPM is the wrong type", objectHandle)} } if outPublic == nil { return nil, nil, nil, &InvalidResponseError{CommandCreateLoaded, errors.New("no public area returned from TPM")} } if outPublic.NameAlg.Available() && !outPublic.compareName(name) { return nil, nil, nil, &InvalidResponseError{CommandCreateLoaded, errors.New("name and public area returned from TPM are not consistent")} } var public *Public if err := mu.CopyValue(&public, outPublic); err != nil { return nil, nil, nil, &InvalidResponseError{CommandCreateLoaded, fmt.Errorf("cannot copy returned public area from TPM: %w", err)} } rc := newObjectContext(objectHandle, name, public) rc.authValue = make([]byte, len(inSensitive.UserAuth)) copy(rc.authValue, inSensitive.UserAuth) return rc, outPrivate, outPublic, nil } ./github.com/canonical/go-tpm2/cmds_pcr.go0000664000000000000000000001452000000000000015502 0ustar00// Copyright 2019 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package tpm2 import "errors" // Section 22 - Integrity Collection (PCR) // PCRExtend executes the TPM2_PCR_Extend command to extend the PCR associated with the pcrContext // parameter with the tagged digests provided via the digests argument. The tagged digests can be // created using [TaggedHashListBuilder]. // // If pcrContext is nil, this function will do nothing. The command requires authorization with the // user auth role for pcrContext, with session based authorization provided via // pcrContextAuthSession. // // If the PCR associated with pcrContext can not be extended from the current locality, a // *[TPMError] error with an error code of [ErrorLocality] will be returned. func (t *TPMContext) PCRExtend(pcrContext ResourceContext, digests TaggedHashList, pcrContextAuthSession SessionContext, sessions ...SessionContext) error { return t.StartCommand(CommandPCRExtend). AddHandles(UseResourceContextWithAuth(pcrContext, pcrContextAuthSession)). AddParams(digests). AddExtraSessions(sessions...). Run(nil) } // PCREvent executes the TPM2_PCR_Event command to extend the PCR associated with the pcrContext // parameter with a digest of the provided eventData, hashed with the algorithm for each supported // PCR bank. // // If pcrContext is nil, this function will do nothing. The command requires authorization with the // user auth role for pcrContext, with session based authorization provided via // pcrContextAuthSession. // // If the PCR associated with pcrContext can not be extended from the current locality, a // *[TPMError] error with an error code of [ErrorLocality] will be returned. // // On success, this function will return a list of tagged digests that the PCR associated with // pcrContext was extended with. func (t *TPMContext) PCREvent(pcrContext ResourceContext, eventData Event, pcrContextAuthSession SessionContext, sessions ...SessionContext) (digests TaggedHashList, err error) { if err := t.StartCommand(CommandPCREvent). AddHandles(UseResourceContextWithAuth(pcrContext, pcrContextAuthSession)). AddParams(eventData). AddExtraSessions(sessions...). Run(nil, &digests); err != nil { return nil, err } return digests, nil } // PCRRead executes the TPM2_PCR_Read command to return the values of the PCRs defined in the // pcrSelectionIn parameter. The underlying command may not be able to read all of the specified // PCRs in a single transaction, so this function will re-execute the TPM2_PCR_Read command until // all requested values have been read. As a consequence, any SessionContext instances provided // should have the [AttrContinueSession] attribute defined. // // This function will call [TPMContext.InitProperties] if it hasn't already been called. // // On success, the current value of pcrUpdateCounter is returned, as well as the requested PCR // values. func (t *TPMContext) PCRRead(pcrSelectionIn PCRSelectionList, sessions ...SessionContext) (pcrUpdateCounter uint32, pcrValues PCRValues, err error) { if err := t.initPropertiesIfNeeded(); err != nil { return 0, nil, err } remaining := pcrSelectionIn pcrValues = make(PCRValues) for i := 0; ; i++ { var updateCounter uint32 var pcrSelectionOut PCRSelectionList var values DigestList if err := t.StartCommand(CommandPCRRead). AddParams(remaining.WithMinSelectSize(t.properties.minPcrSelectSize)). AddExtraSessions(sessions...). Run(nil, &updateCounter, &pcrSelectionOut, &values); err != nil { return 0, nil, err } if i == 0 { pcrUpdateCounter = updateCounter } else if updateCounter != pcrUpdateCounter { return 0, nil, &InvalidResponseError{CommandPCRRead, errors.New("PCR update counter changed between commands")} } else if len(values) == 0 && pcrSelectionOut.IsEmpty() { return 0, nil, makeInvalidArgError("pcrSelectionIn", "unimplemented PCRs specified") } if n, err := pcrValues.AddValues(pcrSelectionOut, values); err != nil { return 0, nil, &InvalidResponseError{CommandPCRRead, err} } else if n != len(values) { return 0, nil, &InvalidResponseError{CommandPCRRead, errors.New("too many digests")} } remaining = remaining.MustRemove(pcrSelectionOut) if remaining.IsEmpty() { break } } return pcrUpdateCounter, pcrValues, nil } // PCRAllocate executes the TPM2_PCR_Allocate command to set the PCR allocation, which is // persistent even across TPM2_Clear. The supplied authContext parameter must correspond to // [HandlePlatform]. This command requires authorization of authContext with the user auth // role, with session based authorization provided via authContextAuthSession. // // The desired PCR allocation is supplied via the pcrAllocation argument. The function indicates // whether the allocation was successful. This will only be true if no error is returned. Note // that the allocation takes effect after the next TPM reset. The function returns the maximum // number of PCRs supported per bank, plus the size needed for the new allocation and the the // size available. func (t *TPMContext) PCRAllocate(authContext ResourceContext, pcrAllocation PCRSelectionList, authContextAuthSession SessionContext, sessions ...SessionContext) (allocationSuccess bool, maxPCR uint32, sizeNeeded uint32, sizeAvailable uint32, err error) { if err := t.StartCommand(CommandPCRAllocate). AddHandles(UseResourceContextWithAuth(authContext, authContextAuthSession)). AddParams(pcrAllocation). AddExtraSessions(sessions...). Run(nil, &allocationSuccess, &maxPCR, &sizeNeeded, &sizeAvailable); err != nil { return false, 0, 0, 0, err } return allocationSuccess, maxPCR, sizeNeeded, sizeAvailable, nil } // PCRReset executes the TPM2_PCR_Reset command to reset the PCR associated with pcrContext in all // banks. This command requires authorization with the user auth role for pcrContext, with session // based authorization provided via pcrContextAuthSession. // // If the PCR associated with pcrContext can not be reset from the current locality, a *[TPMError] // error with an error code of [ErrorLocality] will be returned. func (t *TPMContext) PCRReset(pcrContext ResourceContext, pcrContextAuthSession SessionContext, sessions ...SessionContext) error { return t.StartCommand(CommandPCRReset). AddHandles(UseResourceContextWithAuth(pcrContext, pcrContextAuthSession)). AddExtraSessions(sessions...). Run(nil) } ./github.com/canonical/go-tpm2/cmds_rng.go0000664000000000000000000000147100000000000015505 0ustar00// Copyright 2019 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package tpm2 // Section 16 - Random Number Generator // GetRandom executes the TPM2_GetRandom command to return the requested number of bytes from the // TPM's random number generator. func (t *TPMContext) GetRandom(bytesRequested uint16, sessions ...SessionContext) (randomBytes Digest, err error) { if err := t.StartCommand(CommandGetRandom). AddParams(bytesRequested). AddExtraSessions(sessions...). Run(nil, &randomBytes); err != nil { return nil, err } return randomBytes, nil } func (t *TPMContext) StirRandom(inData SensitiveData, sessions ...SessionContext) error { return t.StartCommand(CommandStirRandom). AddParams(inData). AddExtraSessions(sessions...). Run(nil) } ./github.com/canonical/go-tpm2/cmds_session.go0000664000000000000000000002236000000000000016402 0ustar00// Copyright 2019 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package tpm2 // Section 11 - Session Commands import ( "fmt" internal_crypt "github.com/canonical/go-tpm2/internal/crypt" ) // StartAuthSession executes the TPM2_StartAuthSession command to start an authorization session. // On successful completion, it will return a SessionContext that corresponds to the new session. // // The type of session is defined by the sessionType parameter. If sessionType is // [SessionTypeHMAC] or [SessionTypePolicy], then the created session may be used for // authorization. If sessionType is [SessionTypeTrial], then the created session can only be used // for computing an authorization policy digest. // // The authHash parameter defines the algorithm used for computing command and response parameter // digests, command and response HMACs, and derivation of the session key and symmetric keys for // parameter encryption where used. The size of the digest algorithm is used to determine the nonce // size used for the session. // // If tpmKey is provided then a salted session is created. In this case, it must be possible to // type assert the provided key to [ObjectContext]. The key must correspond to an asymmetric // decrypt key in the TPM - it must have a type of [ObjectTypeRSA] or [ObjectTypeECC] and it must // have the [AttrDecrypt] attribute set. In this case, a random salt value will be established // which will contribute to the session key derivation. If tpmKey has the type of [ObjectTypeRSA], // the random salt will be created on the host and RSA-OAEP encrypted with the public part of // tpmKey before being sent to the TPM. If tpmKey has the type of [ObjectTypeECC], a random salt // is established using ECDH key exchange and an ephemeral host key. If tpmKey is provided but does // not correspond to an asymmetric key, a *[TPMHandleError] error with an error code of [ErrorKey] // will be returned for handle index 1. If tpmKey is provided but corresponds to an object with only // its public part loaded, a *[TPMHandleError] error with an error code of [ErrorHandle] will be // returned for handle index 1. If tpmKey is provided but does not correspond to a decrypt key, a // *[TPMHandleError] error with an error code of [ErrorAttributes] will be returned for handle // index 1. // // If tpmkey is provided but establishment of the salt fails on the TPM, a *[TPMParameterError] // error with an error code of [ErrorValue] or [ErrorKey] may be returned for parameter index 2. // // If tpmKey is not provided, an unsalted session is created. // // If bind is specified then a bound session is created. The authorization value for the // corresponding bind resource must be known, by calling [ResourceContext].SetAuthValue on bind // before calling this function. In this case, the authorization value will contribute to the // session key derivation. The created session will be bound to the resource associated with bind, // unless the authorization value of that resource is subsequently changed. If bind corresponds to // a transient object and only the public part of the object is loaded, or if bind corresponds to // a NV index with a type of [NVTypePinPass] or [NVTypePinFail], a *[TPMHandleError] error with an // error code of [ErrorHandle] will be returned for handle index 2. // // If tpmKey or bind is specified, a session key is computed. If neither tpmKey or bind are // specified, then no session key is computed. // // When the created session is used for authorization, a HMAC key used to generate and verify // command and response HMACs is created. If the session is used for authorization of the bound // resource, then the HMAC key is generated from the session key if there is one. If the session is // used for authorization of any other resource, then the HMAC key is generated from the session // key (if there is one) and the authorization value of the resource that the session is being used // for authorization of. // // If symmetric is provided, it defines the symmetric algorithm to use if the session is // subsequently used for session based command or response parameter encryption. Session based // parameter encryption allows the first command and/or response parameter for a command to be // encrypted between the TPM and host CPU for supported parameter types (go types that correspond // to TPM2B prefixed types). If symmetric is provided and corresponds to a symmetric block cipher // (ie, the Algorithm field is not [SymAlgorithmXOR]) then the symmetric mode must be // [SymModeCFB], else a *[TPMParameterError] error with an error code of [ErrorMode] is returned // for parameter index 4. // // When the created session is used for parameter encryption, the encryption key is derived from // the session key if there is one. If the session is also used for authorization, then the // encryption key derivation also uses the authorization value of the resource that the session is // being used for authorization of, regardless of whether it is bound to it. // // If a SessionContext instance with the [AttrCommandEncrypt] attribute set is provided in the // variable length sessions parameter, then the initial caller nonce will be encrypted as this is // the first command parameter, despite not being exposed via this API. If a SessionContext // instance with the AttrResponseEncrypt attribute set is provided, then the initial TPM nonce will // be encrypted in the response. // // If sessionType is [SessionTypeHMAC] and the session is subsequently used for authorization of a // resource to which the session is not bound, the authorization value of that resource must be // known as it is used to derive the key for computing command and response HMACs. // // If no more sessions can be created without first context loading the oldest saved session, then // a *[TPMWarning] error with a warning code of [WarningContextGap] will be returned. If there are // no more slots available for loaded sessions, a *[TPMWarning] error with a warning code of // [WarningSessionMemory] will be returned. If there are no more session handles available, a // *[TPMwarning] error with a warning code of [WarningSessionHandles] will be returned. func (t *TPMContext) StartAuthSession(tpmKey, bind ResourceContext, sessionType SessionType, symmetric *SymDef, authHash HashAlgorithmId, sessions ...SessionContext) (sessionContext SessionContext, err error) { if symmetric == nil { symmetric = &SymDef{Algorithm: SymAlgorithmNull} } if !authHash.Available() { return nil, makeInvalidArgError("authHash", fmt.Sprintf("unsupported digest algorithm or algorithm not linked in to binary (%v)", authHash)) } digestSize := authHash.Size() var salt []byte var encryptedSalt EncryptedSecret tpmKeyHandle := HandleNull if tpmKey != nil { object, isObject := tpmKey.(ObjectContext) if !isObject { return nil, makeInvalidArgError("tpmKey", "resource context is not an object") } if object.Public() == nil { return nil, makeInvalidArgError("tpmKey", "no public area") } tpmKeyHandle = tpmKey.Handle() var err error encryptedSalt, salt, err = cryptSecretEncrypt(object.Public(), []byte(SecretKey)) if err != nil { return nil, fmt.Errorf("cannot compute encrypted salt: %v", err) } } var authValue []byte bindHandle := HandleNull if bind != nil { bindHandle = bind.Handle() authValue = trimAuthValue(bind.AuthValue()) } var isBound bool = false var boundEntity Name if bindHandle != HandleNull && sessionType == SessionTypeHMAC { boundEntity = computeBindName(bind.Name(), authValue) isBound = true } nonceCaller := make([]byte, digestSize) if err := cryptComputeNonce(nonceCaller); err != nil { return nil, fmt.Errorf("cannot compute initial nonceCaller: %v", err) } var sessionHandle Handle var nonceTPM Nonce if err := t.StartCommand(CommandStartAuthSession). AddHandles(UseHandleContext(tpmKey), UseHandleContext(bind)). AddParams(Nonce(nonceCaller), encryptedSalt, sessionType, symmetric, authHash). AddExtraSessions(sessions...). Run(&sessionHandle, &nonceTPM); err != nil { return nil, err } switch sessionHandle.Type() { case HandleTypeHMACSession, HandleTypePolicySession: default: return nil, &InvalidResponseError{CommandStartAuthSession, fmt.Errorf("handle 0x%08x returned from TPM is the wrong type", sessionHandle)} } data := &sessionContextData{ Params: SessionContextParams{ HashAlg: authHash, IsBound: isBound, BoundEntity: boundEntity, Symmetric: *symmetric, }, State: SessionContextState{ NonceTPM: nonceTPM, }} if tpmKeyHandle != HandleNull || bindHandle != HandleNull { key := make([]byte, len(authValue)+len(salt)) copy(key, authValue) copy(key[len(authValue):], salt) data.Params.SessionKey = internal_crypt.KDFa(authHash.GetHash(), key, []byte(SessionKey), []byte(nonceTPM), nonceCaller, digestSize*8) } return newSessionContext(sessionHandle, data), nil } // PolicyRestart executes the TPM2_PolicyRestart command on the policy session associated with // sessionContext, to reset the policy authorization session to its initial state. func (t *TPMContext) PolicyRestart(sessionContext SessionContext, sessions ...SessionContext) error { return t.StartCommand(CommandPolicyRestart). AddHandles(UseHandleContext(sessionContext)). AddExtraSessions(sessions...). Run(nil) } ./github.com/canonical/go-tpm2/cmds_signature.go0000664000000000000000000001001200000000000016707 0ustar00// Copyright 2019 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package tpm2 // Secion 20 - Signing and Signature Verification // VerifySignature executes the TPM2_VerifySignature command to validate the provided signature // against a message with the provided digest, using the key associated with keyContext. If // keyContext corresponds to an object that isn't a signing key, a *[TPMHandleError] error with an // error code of [ErrorAttributes] will be returned. // // If the signature is invalid, a *[TPMParameterError] error with an error code of [ErrorSignature] // will be returned for parameter index 2. If the signature references an unsupported signature // scheme, a *[TPMParameterError] error with an error code of [ErrorScheme] will be returned for // parameter index 2. // // If keyContext corresponds to a HMAC key but only the public part is loaded, a // *[TPMParameterError] error with an error code of [ErrorHandle] will be returned for parameter // index 2. // // On success, a valid TkVerified structure will be returned. func (t *TPMContext) VerifySignature(keyContext ResourceContext, digest Digest, signature *Signature, sessions ...SessionContext) (validation *TkVerified, err error) { if err := t.StartCommand(CommandVerifySignature). AddHandles(UseHandleContext(keyContext)). AddParams(digest, signature). AddExtraSessions(sessions...). Run(nil, &validation); err != nil { return nil, err } return validation, nil } // Sign executes the TPM2_Sign command to sign the provided digest with the key associated with // keyContext. The function requires authorization with the user auth role for keyContext, with // session based authorization provided via keyContextAuthSession. // // If the object associated with keyContext is not a signing key, a *[TPMHandleError] error with an // error code of [ErrorKey] will be returned. // // If the scheme of the key associated with keyContext is [AsymSchemeNull], then inScheme must be // provided to specify a valid signing scheme for the key. If it isn't, a *[TPMParameterError] // error with an error code of [ErrorScheme] will be returned for parameter index 2. // // If the scheme of the key associated with keyContext is not [AsymSchemeNull], then inScheme may // be nil. If it is provided, then the specified scheme must match that of the signing key, else a // *[TPMParameterError] error with an error code of [ErrorScheme] will be returned for parameter // index 2. // // If the chosen scheme is unsupported, a *[TPMError] error with an error code of [ErrorScheme] // will be returned. // // If the length of digest does not match the size of the digest associated with the selected // signing scheme, a *[TPMParameterError] error with an error code of [ErrorSize] will be returned // for parameter index 1. // // If the key associated with keyContext has the [AttrRestricted] attribute, then the validation // parameter must be provided as proof that the supplied digest was created by the TPM. If the key // associated with keyContext does not have the [AttrRestricted] attribute, then validation may be // nil. If validation is not nil and doesn't correspond to a valid ticket, or it is nil and the // key associated with keyContext has the [AttrRestricted] attribute set, a *[TPMParameterError] // error with an error code of [ErrorTicket] will be returned for parameter index 3. func (t *TPMContext) Sign(keyContext ResourceContext, digest Digest, inScheme *SigScheme, validation *TkHashcheck, keyContextAuthSession SessionContext, sessions ...SessionContext) (signature *Signature, err error) { if inScheme == nil { inScheme = &SigScheme{Scheme: SigSchemeAlgNull} } if validation == nil { validation = &TkHashcheck{Tag: TagHashcheck, Hierarchy: HandleNull} } if err := t.StartCommand(CommandSign). AddHandles(UseResourceContextWithAuth(keyContext, keyContextAuthSession)). AddParams(digest, inScheme, validation). AddExtraSessions(sessions...). Run(nil, &signature); err != nil { return nil, err } return signature, nil } ./github.com/canonical/go-tpm2/cmds_startup.go0000664000000000000000000000507700000000000016427 0ustar00// Copyright 2019 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package tpm2 // Section 10 - Testing // Startup executes the TPM2_Startup command with the specified StartupType. If this isn't preceded // by _TPM_Init then it will return a *[TPMError] error with an error code of [ErrorInitialize]. // The shutdown and startup sequence determines how the TPM responds to this call: // - A call with startupType == [StartupClear] preceded by a call to [TPMContext.Shutdown] with // shutdownType == [StartupClear] or without a preceding call to [TPMContext.Shutdown] will // cause a TPM reset. // - A call with startupType == [StartupClear] preceded by a call to [TPMContext.Shutdown] with // shutdownType == [StartupState] will cause a TPM restart. // - A call with startupType == [StartupState] preceded by a call to [TPMContext.Shutdown] with // shutdownType == [StartupState] will cause a TPM resume. // - A call with startupType == [StartupState] that isn't preceded by a call to // [TPMContext.Shutdown] with shutdownType == [StartupState] will fail with a // *[TPMParameterError] error with an error code of [ErrorValue]. // // If called with startupType == [StartupState], a *[TPMError] error with an error code of // [ErrorNVUninitialized] will be returned if the saved state cannot be recovered. In this case, // the function must be called with startupType == [StartupClear]. // // Subsequent use of HandleContext instances corresponding to entities that are evicted as a // consequence of this function will no longer work. func (t *TPMContext) Startup(startupType StartupType) error { return t.StartCommand(CommandStartup).AddParams(startupType).Run(nil) } // Shutdown executes the TPM2_Shutdown command with the specified StartupType, and is used to // prepare the TPM for a power cycle. Calling this with shutdownType == [StartupClear] prepares the // TPM for a TPM reset. Calling it with shutdownType == [StartupState] prepares the TPM for either // a TPM restart or TPM resume, depending on how [TPMContext.Startup] is called. Some commands // executed after [TPMContext.Shutdown] but before a power cycle will nullify the effect of this // function. // // If a PCR bank has been reconfigured and shutdownType == [StartupState], a *[TPMParameterError] // error with an error code of [ErrorType] will be returned. func (t *TPMContext) Shutdown(shutdownType StartupType, sessions ...SessionContext) error { return t.StartCommand(CommandShutdown).AddParams(shutdownType).AddExtraSessions(sessions...).Run(nil) } ./github.com/canonical/go-tpm2/cmds_symmetric.go0000664000000000000000000000026200000000000016730 0ustar00// Copyright 2022 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package tpm2 // Section 15 - Symmetric Primitives ./github.com/canonical/go-tpm2/cmds_testing.go0000664000000000000000000000610100000000000016367 0ustar00// Copyright 2019 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package tpm2 // Section 9 - Start-up // SelfTest executes the TPM2_SelfTest command and causes the TPM to perform a self test // of its capabilities. If fullTest is true, it will test all functions. If fullTest is // false, it will only perform a test of functions that haven't already been tested. // // Some implementatons will return immediately and then begin testing. In this case, if // fullTest is true or fullTest is false and there are tests to perform, a *[TPMWarning] // with the warning code [WarningTesting] will be returned. If fullTest is false and // there are no tests to perform, this function will return with success. // // Some implementations will block and only return if all required tests have been completed. // In this case, if a failure occurs, a *[TPMError] with the error code [ErrorFailure] will // be returned. If all tests that execute complete successfully, the function will return // no error. func (t *TPMContext) SelfTest(fullTest bool, sessions ...SessionContext) error { return t.StartCommand(CommandSelfTest). AddParams(fullTest). AddExtraSessions(sessions...). Run(nil) } // IncrementalSelfTest executes the TPM2_IncrementalSelfTest command and causes the TPM to // perform a test of the selected algorithms. // // If toTest contains an algorithm that has already been tested, it won't be tested again. // // The TPM will return a todo list of algorithms that haven't been fully tested. Supplying // an empty toTest list is a way to determine which algorithms have not been fully tested // yet. // // If toTest is not an empty list, this command should respond with no error. Subsequent // calls to this command or any others will return a *[TPMWarning] with warning code // [WarningTesting] until the requested testing is complete. func (t *TPMContext) IncrementalSelfTest(toTest AlgorithmList, sessions ...SessionContext) (AlgorithmList, error) { var toDoList AlgorithmList if err := t.StartCommand(CommandIncrementalSelfTest). AddParams(toTest). AddExtraSessions(sessions...). Run(nil, &toDoList); err != nil { return nil, err } return toDoList, nil } // GetTestResult executes the TPM2_GetTestResult command and returns manufacturer-specific information // regarding the results of a self-test as well as the test status. // // If TPM2_SelfTest hasn't been executed and a testable function hasn't been tested, then testResult // will equal [ResponseNeedsTest]. If TPM2_SelfTest has been executed and testing is ongoing, then // testResult will equal [ResponseTesting]. // // If testing of all functions is complete without failure, testResult will be [ResponseSuccess]. If // any test failed, testResult will be [ResponseFailure]. func (t *TPMContext) GetTestResult(sessions ...SessionContext) (outData MaxBuffer, testResult ResponseCode, err error) { if err := t.StartCommand(CommandGetTestResult). AddExtraSessions(sessions...). Run(nil, &outData, &testResult); err != nil { return nil, 0, err } return outData, testResult, nil } ./github.com/canonical/go-tpm2/command.go0000664000000000000000000005137100000000000015333 0ustar00// Copyright 2021 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package tpm2 import ( "bytes" "encoding/binary" "errors" "fmt" "io" "math" "github.com/canonical/go-tpm2/mu" ) // CommandHeader is the header for a TPM command. type CommandHeader struct { Tag StructTag CommandSize uint32 CommandCode CommandCode } // WriteCommandPacket serializes a complete TPM command packet from the provided arguments // to the supplied writer. The parameters argument must already be serialized to the TPM // wire format. // // This will return an error if the supplied arguments cannot be represented correctly // by the TPM wire format. func WriteCommandPacket(w io.Writer, command CommandCode, handles HandleList, authArea []AuthCommand, parameters []byte) error { header := CommandHeader{CommandCode: command} var payload []byte switch { case len(authArea) > 0: header.Tag = TagSessions aBytes, err := mu.MarshalToBytes(mu.Raw(authArea)) if err != nil { return fmt.Errorf("cannot marshal authArea: %w", err) } if int64(len(aBytes)) > math.MaxUint32 { return errors.New("authArea is too large") } payload = mu.MustMarshalToBytes(mu.Raw(handles), uint32(len(aBytes)), mu.Raw(aBytes), mu.Raw(parameters)) case len(authArea) == 0: header.Tag = TagNoSessions payload = mu.MustMarshalToBytes(mu.Raw(handles), mu.Raw(parameters)) } if int64(len(payload)) > math.MaxUint32-int64(binary.Size(header)) { return errors.New("total payload is too large") } header.CommandSize = uint32(binary.Size(header) + len(payload)) _, err := mu.MarshalToWriter(w, header, mu.Raw(payload)) return err } // ReadCommandPacket reads a command packet from the supplied reader, returning the command code, // handles, auth area and parameters. The parameters will still be in the TPM wire format. The number // of command handles associated with the command must be supplied by the caller. func ReadCommandPacket(r io.Reader, numHandles int) (command CommandCode, handles HandleList, authArea []AuthCommand, parameters []byte, err error) { var header CommandHeader if _, err := mu.UnmarshalFromReader(r, &header); err != nil { return 0, nil, nil, nil, fmt.Errorf("cannot unmarshal header: %w", err) } lr := io.LimitReader(r, int64(header.CommandSize)-int64(binary.Size(header))) handles = make(HandleList, numHandles) if _, err := mu.UnmarshalFromReader(lr, mu.Raw(&handles)); err != nil { return 0, nil, nil, nil, fmt.Errorf("cannot unmarshal handles: %w", err) } switch header.Tag { case TagSessions: var authSize uint32 if _, err := mu.UnmarshalFromReader(lr, &authSize); err != nil { return 0, nil, nil, nil, fmt.Errorf("cannot unmarshal auth area size: %w", err) } // TODO: Make mu.UnmarshalFromReader return io.EOF when no bytes are read instead. alr := &io.LimitedReader{R: lr, N: int64(authSize)} for alr.N > 0 { var auth AuthCommand if _, err := mu.UnmarshalFromReader(alr, &auth); err != nil { return 0, nil, nil, nil, fmt.Errorf("cannot unmarshal auth at index %d: %w", len(authArea), err) } authArea = append(authArea, auth) } case TagNoSessions: default: return 0, nil, nil, nil, fmt.Errorf("invalid tag: %v", header.Tag) } parameters, err = io.ReadAll(lr) if err != nil { return 0, nil, nil, nil, fmt.Errorf("cannot read parameters: %w", err) } return header.CommandCode, handles, authArea, parameters, nil } // CommandPacket corresponds to a complete command packet including header and payload. // // Deprecated: use [ReadCommandPacket]. type CommandPacket []byte // GetCommandCode returns the command code contained within this packet. // // Deprecated: just supply a [CommandHeader] to [mu.UnmarshalFromBytes] or // [mu.UnmarshalFromReader]. func (p CommandPacket) GetCommandCode() (CommandCode, error) { var header CommandHeader if _, err := mu.UnmarshalFromBytes(p, &header); err != nil { return 0, fmt.Errorf("cannot unmarshal header: %w", err) } return header.CommandCode, nil } // Unmarshal unmarshals this command packet, returning the handles, auth area and parameters. The // parameters will still be in the TPM wire format. The number of command handles associated with // the command must be supplied by the caller. // // Deprecated: use [ReadCommandPacket]. func (p CommandPacket) Unmarshal(numHandles int) (handles HandleList, authArea []AuthCommand, parameters []byte, err error) { r := bytes.NewReader(p) _, handles, authArea, parameters, err = ReadCommandPacket(r, numHandles) if err != nil { return nil, nil, nil, err } if r.Len() > 0 { return nil, nil, nil, errors.New("trailing bytes") } return handles, authArea, parameters, nil } // MarshalCommandPacket serializes a complete TPM packet from the provided arguments. The // parameters argument must already be serialized to the TPM wire format. // // This will return an error if the supplied parameters cannot be represented correctly // by the TPM wire format. func MarshalCommandPacket(command CommandCode, handles HandleList, authArea []AuthCommand, parameters []byte) (CommandPacket, error) { buf := new(bytes.Buffer) if err := WriteCommandPacket(buf, command, handles, authArea, parameters); err != nil { return nil, err } return buf.Bytes(), nil } // MustMarshalCommandPacket serializes a complete TPM packet from the provided arguments. // The parameters argument must already be serialized to the TPM wire format. // // This will panic if the supplied parameters cannot be represented correctly by the TPM // wire format. func MustMarshalCommandPacket(commandCode CommandCode, handles HandleList, authArea []AuthCommand, parameters []byte) CommandPacket { b, err := MarshalCommandPacket(commandCode, handles, authArea, parameters) if err != nil { panic(err) } return b } // ResponseHeader is the header for the TPM's response to a command. type ResponseHeader struct { Tag StructTag ResponseSize uint32 ResponseCode ResponseCode } // ReadResponsePacket reads a response packet from the supplied reader, returning the response code, // parameters, and auth area. The parameters will still be in the TPM wire format. The response handle // will be written to the memory pointed to by the supplied handle argument if provided. func ReadResponsePacket(r io.Reader, handle *Handle) (rc ResponseCode, parameters []byte, authArea []AuthResponse, err error) { var header ResponseHeader if _, err := mu.UnmarshalFromReader(r, &header); err != nil { return 0, nil, nil, fmt.Errorf("cannot unmarshal header: %w", err) } switch header.Tag { case TagRspCommand: // Only valid with the response code TPM_RC_BAD_TAG, expected from TPM1.2 devices in // response to receiving a TPM2 device with an unrecognized tag. if header.ResponseCode != ResponseBadTag { return 0, nil, nil, fmt.Errorf("received error for response with tag TPM_ST_RSP_COMMAND: %w", InvalidResponseCodeError(header.ResponseCode)) } case TagSessions: if header.ResponseCode != ResponseSuccess { // All error responses have the TPM_ST_NO_SESSIONS tag return 0, nil, nil, fmt.Errorf("received error for response with tag TPM_ST_SESSIONS: %w", InvalidResponseCodeError(header.ResponseCode)) } case TagNoSessions: if header.ResponseCode != ResponseSuccess && header.ResponseSize != uint32(binary.Size(header)) { return 0, nil, nil, fmt.Errorf("invalid response size for unsuccessful response (%d)", header.ResponseSize) } default: return 0, nil, nil, fmt.Errorf("invalid tag: %v", header.Tag) } // TODO: Make mu.UnmarshalFromReader return io.EOF when no bytes are read instead. lr := &io.LimitedReader{R: r, N: int64(header.ResponseSize) - int64(binary.Size(header))} switch header.Tag { case TagSessions, TagNoSessions: if header.ResponseCode == ResponseSuccess && handle != nil { // Read the response handle in the case of success and where a handle is expected if _, err := mu.UnmarshalFromReader(lr, handle); err != nil { return 0, nil, nil, fmt.Errorf("cannot unmarshal handle: %w", err) } } default: } switch header.Tag { case TagRspCommand: case TagSessions: var parameterSize uint32 if _, err := mu.UnmarshalFromReader(lr, ¶meterSize); err != nil { return 0, nil, nil, fmt.Errorf("cannot unmarshal parameterSize: %w", err) } parameters = make([]byte, parameterSize) if _, err := io.ReadFull(lr, parameters); err != nil { return 0, nil, nil, fmt.Errorf("cannot read parameters: %w", err) } for lr.N > 0 { var auth AuthResponse if _, err := mu.UnmarshalFromReader(lr, &auth); err != nil { return 0, nil, nil, fmt.Errorf("cannot unmarshal auth at index %d: %w", len(authArea), err) } authArea = append(authArea, auth) } case TagNoSessions: parameters, err = io.ReadAll(lr) if err != nil || lr.N > 0 { if err == nil { err = io.ErrUnexpectedEOF } return 0, nil, nil, fmt.Errorf("cannot read parameters: %w", err) } } return header.ResponseCode, parameters, authArea, nil } // WriteResponsePacket serializes a complete TPM response packet from the provided arguments // to the supplied writer. The parameters argument must already be serialized to the TPM // wire format. If handle is nil, then no response handle is serialized. // // This will return an error if the supplied arguments cannot be represented correctly // by the TPM wire format. // // This will return an error if the supplied arguments are inconsistent, eg, an error // response code with a non-zero parameters length or non-zero authArea length. func WriteResponsePacket(w io.Writer, rc ResponseCode, handle *Handle, parameters []byte, authArea []AuthResponse) error { header := ResponseHeader{ResponseCode: rc} switch { case rc == ResponseBadTag && len(authArea) == 0: // This is any response expected from a TPM1.2 device in response to a TPM2 command because of the invalid command tag header.Tag = TagRspCommand case rc != ResponseSuccess && len(authArea) == 0: // Any other non-success response header.Tag = TagNoSessions case rc == ResponseSuccess && len(authArea) == 0: // Success response without sessions header.Tag = TagNoSessions case rc == ResponseSuccess && len(authArea) > 0: // Success response with sessions header.Tag = TagSessions default: return errors.New("inconsistent ResponseCode and authArea arguments") } payload := new(bytes.Buffer) if rc != ResponseSuccess { if len(parameters) > 0 { // Error responses don't have parameters return errors.New("inconsistent ResponseCode and parameters arguments") } header.ResponseSize = uint32(binary.Size(header)) _, err := mu.MarshalToWriter(w, header) return err } // This is a success response. // Serialize the response handle if provided. if handle != nil { mu.MustMarshalToWriter(payload, handle) } switch header.Tag { case TagNoSessions: if _, err := payload.Write(parameters); err != nil { panic(fmt.Errorf("cannot write parameters: %w", err)) } case TagSessions: if int64(len(parameters)) > math.MaxUint32 { return errors.New("parameter area is too large") } mu.MustMarshalToWriter(payload, uint32(len(parameters))) if _, err := payload.Write(parameters); err != nil { panic(fmt.Errorf("cannot write parameters: %w", err)) } if _, err := mu.MarshalToWriter(payload, mu.Raw(authArea)); err != nil { return fmt.Errorf("cannot marshal authArea: %w", err) } } if int64(payload.Len()) > math.MaxUint32-int64(binary.Size(header)) { return errors.New("total payload is too large") } header.ResponseSize = uint32(binary.Size(header) + payload.Len()) _, err := mu.MarshalToWriter(w, header, mu.Raw(payload.Bytes())) return err } // ResponsePacket corresponds to a complete response packet including header and payload. // // Deprecated: use [ReadResponsePacket]. type ResponsePacket []byte // Unmarshal deserializes the response packet and returns the response code, handle, parameters // and auth area. The parameters will still be in the TPM wire format. The caller supplies a // pointer to which the response handle will be written. The pointer must be supplied if the // command returns a handle, and must be nil if the command does not return a handle, else // the response will be incorrectly unmarshalled. // // Deprecated: use [ReadResponsePacket]. func (p ResponsePacket) Unmarshal(handle *Handle) (rc ResponseCode, parameters []byte, authArea []AuthResponse, err error) { r := bytes.NewReader(p) rc, parameters, authArea, err = ReadResponsePacket(r, handle) if err != nil { return 0, nil, nil, err } if r.Len() > 0 { return 0, nil, nil, errors.New("trailing bytes") } return rc, parameters, authArea, nil } // CommandHandleContext is used to supply a [HandleContext] to a [CommandContext]. type CommandHandleContext struct { handle HandleContext session SessionContext } // Handle returns the HandleContext. func (c *CommandHandleContext) Handle() HandleContext { return c.handle } // Session returns the SessionContext if the handle requires authorization. func (c *CommandHandleContext) Session() SessionContext { return c.session } // UseResourceContextWithAuth creates a CommandHandleContext for a [ResourceContext] that // requires authorization in a command. The supplied [SessionContext] is the session used for // authorization and determines the type of authorization used for the specified resource: // // - If SessionContext is nil, then passphrase authorization is used. // - If SessionContext is a HMAC session, then HMAC authorization is used. // - If SessionContext is a policy session, then policy authorization is used. // // If the authorization value of the resource is required as part of the authorization (eg, for // passphrase authorization, a HMAC session that is not bound to the specified resource, or a // policy session that contains the TPM2_PolicyPassword or TPM2_PolicyAuthValue assertion), it is // obtained from the supplied ResourceContext, and should be set by calling // [ResourceContext].SetAuthValue before the command is executed. // // Resources that require authorization will require authorization with one of 3 roles, depending // on the command: user, admin or duplication. The role determines the required authorization // type, which is dependent on the type of the resource. // // Where a command requires authorization with the user role for a resource, the following // authorization types are permitted: // // - [HandleTypePCR]: passphrase or HMAC session if no auth policy is set, or a policy session if // an auth policy is set. // - [HandleTypeNVIndex]: passphrase, HMAC session or policy session depending on attributes. // - [HandleTypePermanent]: passphrase or HMAC session. A policy session can also be used if an // auth policy is set. // - [HandleTypeTransient] / [HandleTypePersistent]: policy session. Passphrase or HMAC session // can also be used if AttrWithUserAuth is set. // // Where a command requires authorization with the admin role for a resource, the following // authorization types are permitted: // // - [HandleTypeNVIndex]: policy session. // - [HandleTypeTransient] / [HandleTypePersistent]: policy session. Passphrase or HMAC session // can also be used if AttrAdminWithPolicy is not set. // // Where a command requires authorization with the duplication role for a resource, a policy // session is required. // // Where a policy session is used for a resource that requires authorization with the admin or // duplication role, the session must contain the TPM2_PolicyCommandCode assertion. // // If the ResourceContext is nil, then [HandleNull] is used. func UseResourceContextWithAuth(r ResourceContext, s SessionContext) *CommandHandleContext { if r == nil { r = nullResource() } if s == nil { s = pwSession() } return &CommandHandleContext{handle: r, session: s} } // UseHandleContext creates a CommandHandleContext for any [HandleContext] that does not require // authorization. If the HandleContext is nil, then [HandleNull] is used. func UseHandleContext(h HandleContext) *CommandHandleContext { if h == nil { h = nullResource() } return &CommandHandleContext{handle: h} } type commandDispatcher interface { RunCommand(c *cmdContext, responseHandle *Handle) (*rspContext, error) CompleteResponse(r *rspContext, responseParams ...interface{}) error } // CommandContext provides an API for building a command to execute via a [TPMContext]. type CommandContext struct { dispatcher commandDispatcher cmd cmdContext } // ResponseContext contains the context required to validate a response and obtain response // parameters. type ResponseContext struct { dispatcher commandDispatcher rsp *rspContext } // Complete performs validation of the response auth area and updates internal [SessionContext] // state. If a response HMAC is invalid, an error will be returned. The caller supplies a command // dependent number of pointers to the response parameters. // // If a SessionContext supplied to the original [CommandContext] has the [AttrResponseEncrypt] // attribute set, then the first response parameter will be decrypted using the properties of that // SessionContext. func (c *ResponseContext) Complete(responseParams ...interface{}) error { return c.dispatcher.CompleteResponse(c.rsp, responseParams...) } // AddHandles appends the supplied command handle contexts to this command. func (c *CommandContext) AddHandles(handles ...*CommandHandleContext) *CommandContext { c.cmd.Handles = append(c.cmd.Handles, handles...) return c } // AddParams appends the supplied command parameters to this command. func (c *CommandContext) AddParams(params ...interface{}) *CommandContext { c.cmd.Params = append(c.cmd.Params, params...) return c } // AddExtraSessions adds the supplied additional session contexts to this command. These sessions // are not used for authorization of any resources, but can be used for command or response // parameter encryption, or command auditing. func (c *CommandContext) AddExtraSessions(sessions ...SessionContext) *CommandContext { c.cmd.ExtraSessions = append(c.cmd.ExtraSessions, sessions...) return c } // RunWithoutProcessingResponse executes the command defined by this context using the [TPMContext] // that created it. The caller supplies a pointer to the response handle if the command returns // one. // // If a [SessionContext] used for this command has the [AttrCommandEncrypt] attribute set, then the // first command parameter will be encrypted using the properties of that SessionContext. // // If the TPM returns a response indicating that the command should be retried, this function will // retry up to a maximum number of times defined by the number supplied to // [TPMContext.SetMaxSubmissions]. // // This performs no validation of the response auth area. Instead, a ResponseContext is returned // and the caller is expected to call [ResponseContext.Complete]. This is useful for commands that // change an authorization value, where the response HMAC is computed with a key based on the new // value. // // A *[TransportError] will be returned if the transmission interface returns an error. // // One of *[TPMWarning], *[TPMError], *[TPMParameterError], *[TPMHandleError] or *[TPMSessionError] // will be returned if the TPM returns a response code other than [ResponseSuccess]. func (c *CommandContext) RunWithoutProcessingResponse(responseHandle *Handle) (*ResponseContext, error) { r, err := c.dispatcher.RunCommand(&c.cmd, responseHandle) if err != nil { return nil, err } return &ResponseContext{ dispatcher: c.dispatcher, rsp: r}, nil } // Run executes the command defined by this context using the [TPMContext] that created it. The // caller supplies a pointer to the response handle if the command returns one, and a command // dependent number of pointers to response parameters. // // If a [SessionContext] used for this command has the [AttrCommandEncrypt] attribute set, then // the first command parameter will be encrypted using the properties of that SessionContext. // // If a SessionContext used for this command has the [AttrResponseEncrypt] attribute set, then the // first response parameter will be decrypted using the properties of that SessionContext. // // If the TPM returns a response indicating that the command should be retried, this function will // retry up to a maximum number of times defined by the number supplied to // [TPMContext.SetMaxSubmissions]. // // This performs validation of the response auth area and updates internal SessionContext state. // If a response HMAC is invalid, an error will be returned. // // A *[TransportError] will be returned if the transmission interface returns an error. // // One of *[TPMWarning], *[TPMError], *[TPMParameterError], *[TPMHandleError] or *[TPMSessionError] // will be returned if the TPM returns a response code other than [ResponseSuccess]. func (c *CommandContext) Run(responseHandle *Handle, responseParams ...interface{}) error { r, err := c.RunWithoutProcessingResponse(responseHandle) if err != nil { return err } return r.Complete(responseParams...) } ./github.com/canonical/go-tpm2/constants.go0000664000000000000000000000212400000000000015721 0ustar00// Copyright 2019 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package tpm2 import ( "math" ) const ( DefaultRSAExponent = 65537 ) const ( CapabilityMaxProperties uint32 = math.MaxUint32 ) const ( // CFBKey is used as the label for the symmetric key derivation used in parameter encryption. CFBKey = "CFB" // DuplicateString is used as the label for key establishment for object duplication. DuplicateString = "DUPLICATE" // IdentityKey is used as the label for key establishment when issuing and using activation // credentials. IdentityKey = "IDENTITY" // IntegrityKey is used as the label for the HMAC key derivation used for outer wrappers. IntegrityKey = "INTEGRITY" // SecretKey is used as the label for salt establishment when starting a salted session. SecretKey = "SECRET" // SessionKey is used as the label for the session key derivation. SessionKey = "ATH" // StorageKey is used as the label for the symmetric key derivation used for encrypting and // decrypting outer wrappers. StorageKey = "STORAGE" ) ./github.com/canonical/go-tpm2/crypto.go0000664000000000000000000000450600000000000015233 0ustar00// Copyright 2019 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package tpm2 import ( "crypto/aes" "crypto/cipher" "crypto/ecdsa" "crypto/elliptic" "crypto/rand" "crypto/rsa" "encoding/binary" "fmt" internal_crypt "github.com/canonical/go-tpm2/internal/crypt" ) type NewCipherFunc func([]byte) (cipher.Block, error) var ( eccCurves = map[ECCCurve]elliptic.Curve{ ECCCurveNIST_P224: elliptic.P224(), ECCCurveNIST_P256: elliptic.P256(), ECCCurveNIST_P384: elliptic.P384(), ECCCurveNIST_P521: elliptic.P521(), } symmetricAlgs = map[SymAlgorithmId]NewCipherFunc{ SymAlgorithmAES: aes.NewCipher, } ) // RegisterCipher allows a go block cipher implementation to be registered for the // specified algorithm, so binaries don't need to link against every implementation. func RegisterCipher(alg SymAlgorithmId, fn NewCipherFunc) { symmetricAlgs[alg] = fn } func cryptComputeCpHash(alg HashAlgorithmId, command CommandCode, handles []Name, parameters []byte) Digest { hash := alg.NewHash() binary.Write(hash, binary.BigEndian, command) for _, name := range handles { hash.Write([]byte(name)) } hash.Write(parameters) return hash.Sum(nil) } func cryptComputeRpHash(hashAlg HashAlgorithmId, responseCode ResponseCode, commandCode CommandCode, rpBytes []byte) []byte { hash := hashAlg.NewHash() binary.Write(hash, binary.BigEndian, responseCode) binary.Write(hash, binary.BigEndian, commandCode) hash.Write(rpBytes) return hash.Sum(nil) } func cryptComputeNonce(nonce []byte) error { _, err := rand.Read(nonce) return err } func cryptSecretEncrypt(public *Public, label []byte) (EncryptedSecret, []byte, error) { if !public.NameAlg.Available() { return nil, nil, fmt.Errorf("nameAlg %v is not available", public.NameAlg) } pub := public.Public() switch p := pub.(type) { case *rsa.PublicKey: if public.Params.RSADetail.Scheme.Scheme != RSASchemeNull && public.Params.RSADetail.Scheme.Scheme != RSASchemeOAEP { return nil, nil, fmt.Errorf("unsupported RSA scheme: %v", public.Params.RSADetail.Scheme.Scheme) } case *ecdsa.PublicKey: if p.Curve == nil { return nil, nil, fmt.Errorf("unsupported curve: %v", public.Params.ECCDetail.CurveID.GoCurve()) } } return internal_crypt.SecretEncrypt(rand.Reader, pub, public.NameAlg.GetHash(), label) } ./github.com/canonical/go-tpm2/cryptutil/0000775000000000000000000000000000000000000015416 5ustar00./github.com/canonical/go-tpm2/cryptutil/doc.go0000664000000000000000000000036300000000000016514 0ustar00// Copyright 2021 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. /* Package cryptutil contains some cryptographic functions that are useful when using go-tpm2. */ package cryptutil ./github.com/canonical/go-tpm2/cryptutil/kdf.go0000664000000000000000000000175200000000000016516 0ustar00// Copyright 2022 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package cryptutil import ( "github.com/canonical/go-tpm2" internal_crypt "github.com/canonical/go-tpm2/internal/crypt" ) // KDFa performs key derivation using the counter mode described in SP800-108 // and HMAC as the PRF. // // This will panic if hashAlg is not available. func KDFa(hashAlg tpm2.HashAlgorithmId, key, label, contextU, contextV []byte, sizeInBits int) []byte { return internal_crypt.KDFa(hashAlg.GetHash(), key, label, contextU, contextV, sizeInBits) } // KDFe performs key derivation using the "Concatenation Key Derivation Function // (Approved Alternative 1) in the original version of SP800-56A. // // This will panic if hashAlg is not available. func KDFe(hashAlg tpm2.HashAlgorithmId, z, label, partyUInfo, partyVInfo []byte, sizeInBits int) []byte { return internal_crypt.KDFe(hashAlg.GetHash(), z, label, partyUInfo, partyVInfo, sizeInBits) } ./github.com/canonical/go-tpm2/cryptutil/secret.go0000664000000000000000000000500000000000000017225 0ustar00// Copyright 2022 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package cryptutil import ( "crypto" "crypto/ecdsa" "crypto/rsa" "errors" "io" "github.com/canonical/go-tpm2" internal_crypt "github.com/canonical/go-tpm2/internal/crypt" ) // SecretDecrypt recovers a seed from the supplied secret structure using the supplied private key. // It can be used to recover secrets created by the TPM, such as those created by the // TPM2_Duplicate command. // // If priv is a *[rsa.PrivateKey], this will recover the seed by decrypting the supplied secret // with RSA-OAEP. // // If priv is a *[ecdsa.PrivateKey], this uses ECDH to derive the seed using the supplied secret, // which will contain a serialized ephemeral peer key. // // The specified digest algorithm must match the name algorithm of the public area associated with // the supplied private key. func SecretDecrypt(priv crypto.PrivateKey, hashAlg tpm2.HashAlgorithmId, label, secret []byte) (seed []byte, err error) { if !hashAlg.Available() { return nil, errors.New("digest algorithm is not available") } return internal_crypt.SecretDecrypt(priv, hashAlg.GetHash(), label, secret) } // SecretEncrypt establishes a seed and associated secret value using the supplied public key. The // corresponding private key can recover the seed from the returned secret value. This is useful // for sharing secrets with the TPM via the TPM2_Import, TPM2_ActivateCredential and // TPM2_StartAuthSession commands. // // If public has the type [tpm2.ObjectTypeRSA], this will generate a random seed and then RSA-OAEP // encrypt it to create the secret. // // If public has the type [tpm2.ObjectTypeECC], this uses ECDH to derive a seed value using an an // ephemeral key. The secret contains the serialized form of the public part of the ephemeral key. func SecretEncrypt(rand io.Reader, public *tpm2.Public, label []byte) (secret tpm2.EncryptedSecret, seed []byte, err error) { if !public.NameAlg.Available() { return nil, nil, errors.New("digest algorithm is not available") } pub := public.Public() switch p := pub.(type) { case *rsa.PublicKey: if public.Params.RSADetail.Scheme.Scheme != tpm2.RSASchemeNull && public.Params.RSADetail.Scheme.Scheme != tpm2.RSASchemeOAEP { return nil, nil, errors.New("unsupported RSA scheme") } case *ecdsa.PublicKey: if p.Curve == nil { return nil, nil, errors.New("unsupported curve") } } return internal_crypt.SecretEncrypt(rand, pub, public.NameAlg.GetHash(), label) } ./github.com/canonical/go-tpm2/cryptutil/signatures.go0000664000000000000000000001407100000000000020134 0ustar00// Copyright 2021 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package cryptutil import ( "crypto" "crypto/ecdsa" "crypto/hmac" "crypto/rsa" "crypto/subtle" "errors" "fmt" "io" "math/big" "golang.org/x/crypto/cryptobyte" "golang.org/x/crypto/cryptobyte/asn1" "github.com/canonical/go-tpm2" ) var _ crypto.Signer = HMACKey(nil) // HMACKey can be used to sign and verify signatures using the [Sign] and [VerifySignature] APIs. type HMACKey []byte // Public implements [crypto.Signer.Public]. func (k HMACKey) Public() crypto.PublicKey { return k } // Sign implements [crypto.Signer.Sign]. func (k HMACKey) Sign(_ io.Reader, digest []byte, opts crypto.SignerOpts) ([]byte, error) { h := hmac.New(opts.HashFunc().New, k) h.Write(digest) return h.Sum(nil), nil } func digestFromSignerOpts(opts crypto.SignerOpts) (tpm2.HashAlgorithmId, error) { switch opts.HashFunc() { case crypto.SHA1: return tpm2.HashAlgorithmSHA1, nil case crypto.SHA256: return tpm2.HashAlgorithmSHA256, nil case crypto.SHA384: return tpm2.HashAlgorithmSHA384, nil case crypto.SHA512: return tpm2.HashAlgorithmSHA512, nil case crypto.SHA3_256: return tpm2.HashAlgorithmSHA3_256, nil case crypto.SHA3_384: return tpm2.HashAlgorithmSHA3_384, nil case crypto.SHA3_512: return tpm2.HashAlgorithmSHA3_512, nil default: return tpm2.HashAlgorithmNull, fmt.Errorf("unsupported digest algorithm %v", opts.HashFunc()) } } // Sign creates a signature of the supplied digest using the supplied signer and options. // Note that only RSA-SSA, RSA-PSS, ECDSA and HMAC signatures can be created. The returned // signature can be verified on a TPM using the associated public key. func Sign(rand io.Reader, signer crypto.Signer, digest []byte, opts crypto.SignerOpts) (*tpm2.Signature, error) { hashAlg, err := digestFromSignerOpts(opts) if err != nil { return nil, err } // Check we have a supported signer type that we can create a tpm2.Signature for // before the actual signing. switch k := signer.Public().(type) { case *rsa.PublicKey: _ = k if _, pss := opts.(*rsa.PSSOptions); pss && !hashAlg.Available() { return nil, errors.New("digest algorithm is not available") } case *ecdsa.PublicKey: _ = k case HMACKey: _ = k if !hashAlg.Available() { return nil, errors.New("digest algorithm is not available") } default: return nil, errors.New("unsupported key type") } sig, err := signer.Sign(rand, digest, opts) if err != nil { return nil, err } switch k := signer.Public().(type) { case *rsa.PublicKey: _ = k if _, pss := opts.(*rsa.PSSOptions); pss { return &tpm2.Signature{ SigAlg: tpm2.SigSchemeAlgRSAPSS, Signature: &tpm2.SignatureU{ RSAPSS: &tpm2.SignatureRSAPSS{ Hash: hashAlg, Sig: sig}}}, nil } return &tpm2.Signature{ SigAlg: tpm2.SigSchemeAlgRSASSA, Signature: &tpm2.SignatureU{ RSASSA: &tpm2.SignatureRSASSA{ Hash: hashAlg, Sig: sig}}}, nil case *ecdsa.PublicKey: _ = k r, s := new(big.Int), new(big.Int) var inner cryptobyte.String input := cryptobyte.String(sig) if !input.ReadASN1(&inner, asn1.SEQUENCE) || !input.Empty() || !inner.ReadASN1Integer(r) || !inner.ReadASN1Integer(s) || !inner.Empty() { return nil, errors.New("invalid ASN.1 signature") } return &tpm2.Signature{ SigAlg: tpm2.SigSchemeAlgECDSA, Signature: &tpm2.SignatureU{ ECDSA: &tpm2.SignatureECDSA{ Hash: hashAlg, SignatureR: r.Bytes(), SignatureS: s.Bytes()}}}, nil case HMACKey: _ = k d := tpm2.MakeTaggedHash(hashAlg, sig) return &tpm2.Signature{ SigAlg: tpm2.SigSchemeAlgHMAC, Signature: &tpm2.SignatureU{HMAC: &d}}, nil default: panic("not reached") } } // VerifySignature verifies a signature created by a TPM using the supplied public key. Note that // only RSA-SSA, RSA-PSS, ECDSA and HMAC signatures are supported. func VerifySignature(key crypto.PublicKey, digest []byte, signature *tpm2.Signature) (ok bool, err error) { if !signature.SigAlg.IsValid() { return false, errors.New("invalid signature algorithm") } hashAlg := signature.HashAlg() // We don't use IsValid here because we want to know if the algorithm has a corresponding // go algorithm ID to avoid a panic later on. SM3 is valid but is not represented in go. if hashAlg.GetHash() == crypto.Hash(0) { return false, errors.New("invalid digest algorithm") } switch k := key.(type) { case *rsa.PublicKey: switch signature.SigAlg { case tpm2.SigSchemeAlgRSASSA: if err := rsa.VerifyPKCS1v15(k, hashAlg.GetHash(), digest, signature.Signature.RSASSA.Sig); err != nil { if err == rsa.ErrVerification { return false, nil } return false, err } return true, nil case tpm2.SigSchemeAlgRSAPSS: if !hashAlg.Available() { return false, errors.New("digest algorithm is not available") } options := rsa.PSSOptions{SaltLength: rsa.PSSSaltLengthEqualsHash} if err := rsa.VerifyPSS(k, hashAlg.GetHash(), digest, signature.Signature.RSAPSS.Sig, &options); err != nil { if err == rsa.ErrVerification { return false, nil } return false, err } return true, nil default: return false, errors.New("unsupported RSA signature algorithm") } case *ecdsa.PublicKey: switch signature.SigAlg { case tpm2.SigSchemeAlgECDSA: ok = ecdsa.Verify(k, digest, new(big.Int).SetBytes(signature.Signature.ECDSA.SignatureR), new(big.Int).SetBytes(signature.Signature.ECDSA.SignatureS)) return ok, nil default: return false, errors.New("unsupported ECC signature algorithm") } case HMACKey: switch signature.SigAlg { case tpm2.SigSchemeAlgHMAC: if !hashAlg.Available() { return false, errors.New("digest algorithm is not available") } test, err := Sign(nil, k, digest, hashAlg.GetHash()) if err != nil { return false, err } return subtle.ConstantTimeCompare(signature.Signature.HMAC.Digest(), test.Signature.HMAC.Digest()) == 1, nil default: return false, errors.New("unsupported keyed hash signature algorithm") } default: return false, errors.New("invalid public key type") } } ./github.com/canonical/go-tpm2/doc.go0000664000000000000000000000114200000000000014451 0ustar00/* Package tpm2 implements an API for communicating with TPM 2.0 devices. This documentation refers to TPM commands and types that are described in more detail in the [TPM 2.0 Library Specification]. Knowledge of this specification is assumed in this documentation. Communication with Linux TPM character devices and TPM simulators implementing the Microsoft TPM2 simulator interface is supported. The core type by which consumers of this package communicate with a TPM is [TPMContext]. [TPM 2.0 Library Specification]: https://trustedcomputinggroup.org/resource/tpm-library-specification/ */ package tpm2 ./github.com/canonical/go-tpm2/errors.go0000664000000000000000000012512100000000000015224 0ustar00// Copyright 2019 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package tpm2 import ( "errors" "fmt" "math" ) const ( // AnyCommandCode is used to match any command code when using IsTPMError, // IsTPMHandleError, IsTPMParameterError, IsTPMSessionError and IsTPMWarning, // or to match any property when using IsMissingPropertyError with the // CommandCode type parameter. // // As this value sets the 2 MSB reserved bits which should always be zero, this // can always be distringuished from a valid command code. AnyCommandCode CommandCode = 0xc0000000 // AnyErrorCode is used to match any error code when using IsTPMError, // IsTPMHandleError, IsTPMParameterError and IsTPMSessionError. As this // is beyond the range of valid format-one error codes, it can always be // distinguished from a valid error code. AnyErrorCode ErrorCode = 0xff // AnyHandle is used to match any handle when using IsResourceUnavailableError, // or to match any property when using IsMissingPropertyError with the Handle // type parameter. AnyHandle Handle = 0xffffffff // AnyHandleIndex is used to match any handle when using IsTPMHandleError. AnyHandleIndex int = -1 // AnyParameterIndex is used to match any parameter when using IsTPMParameterError. AnyParameterIndex int = -1 // AnySessionIndex is used to match any session when using IsTPMSessionError. AnySessionIndex int = -1 // AnyWarningCode is used to match any warning code when using IsTPMWarning. As this // is beyond the range of any valid warning code, it can always be distinguished from // a valid warning code. AnyWarningCode WarningCode = 0xff // AnyVendorResponseCode is used to match any response code when using IsTPMVendorError. // As bit 10 is clear, this is always an invalid vendor code so can be distinguished from // a valid vendor code. AnyVendorResponseCode ResponseCode = 0x900 // AnyCapability is used to match any capability when using IsMissingPropertyError. AnyCapability Capability = 0xffffffff // AnyProperty is used to match any property when using IsMissingPropertyError with // the Property type parameter. AnyProperty Property = 0xffffffff // AnyAlgorithmId is used to match any property when using IsMissingPropertyError // with the AlgorithmId type parameter. AnyAlgorithmId AlgorithmId = 0xffff ) // ErrCapabilityValueOutOfRange may be returned wrapped in *[InvalidResponseError] // from any TPM2_GetCapability utility function that checks the returned value. var ErrCapabilityValueOutOfRange = errors.New("the requested value is out of range") func (a AlgorithmId) isMissingPropertyErrorAnyValue() bool { return a == AnyAlgorithmId } func (c CommandCode) isMissingPropertyErrorAnyValue() bool { return c == AnyCommandCode } func (p Property) isMissingPropertyErrorAnyValue() bool { return p == AnyProperty } func (h Handle) isMissingPropertyErrorAnyValue() bool { return h == AnyHandle } type MissingPropertyErrorType interface { AlgorithmId | CommandCode | Property | Handle isMissingPropertyErrorAnyValue() bool } // MissingPropertyError may be returned by some TPM2_GetCapability utility functions // that are used to fetch a single property if they determine that the returned // property doesn't match the requested one. type MissingPropertyError[T MissingPropertyErrorType] struct { Capability Capability Property T } func (e *MissingPropertyError[T]) Error() string { return fmt.Sprintf("property %v of type %T for capability %v does not exist", e.Property, e.Property, e.Capability) } func (e *MissingPropertyError[T]) Is(target error) bool { t, ok := target.(*MissingPropertyError[T]) if !ok { return false } return (t.Capability == AnyCapability || t.Capability == e.Capability) && (t.Property.isMissingPropertyErrorAnyValue() || t.Property == e.Property) } // IsMissingPropertyError determines if the supplied error is a *[MissingPropertyError] with the specified // capability and property. func IsMissingPropertyError[T MissingPropertyErrorType](err error, capability Capability, property T) bool { return errors.Is(err, &MissingPropertyError[T]{Capability: capability, Property: property}) } // ResourceUnavailableError is returned from [TPMContext.NewResourceContext] if it is called with // a handle that does not correspond to a resource that is available on the TPM. This could be // because the resource doesn't exist on the TPM, or it lives within a hierarchy that is disabled. type ResourceUnavailableError struct { Handle Handle err error } func (e *ResourceUnavailableError) Error() string { return fmt.Sprintf("a resource at handle %#08x is not available on the TPM", e.Handle) } func (e *ResourceUnavailableError) Unwrap() error { return e.err } func (e *ResourceUnavailableError) Is(target error) bool { t, ok := target.(*ResourceUnavailableError) if !ok { return false } return t.Handle == AnyHandle || t.Handle == e.Handle } // InvalidResponseError is returned from any [TPMContext] method that executes a TPM command if the // TPM's response is invalid. Some examples of invalid responses that would result in this error // are: // // - The response packet was too large. // - The response packet could not be unmarshalled. // - The size field in the response header doesn't match the actual size. // - The response code and response tag were inconsistent. // - An error occurred whilst unmarshalling the response auth area or parameters. // - The response auth area or parameter area have unused bytes after unmarshalling. // - There were an unexpected number of response auths. // - A response auth was invalid. // // Any session contexts associated with the command that caused this error should be considered // invalid. // // It is possible that the TPM command completed successfully. // // If any function that executes a command which allocates objects on the TPM returns this error, // it is possible that these objects were allocated and now exist on the TPM. // // If any function that executes a command which makes persistent changes to the TPM returns this // error, it is possible that the persistent changes were completed. type InvalidResponseError struct { Command CommandCode err error } func (e *InvalidResponseError) Unwrap() error { return e.err } func (e *InvalidResponseError) Error() string { return fmt.Sprintf("TPM returned an invalid response for command %s: %v", e.Command, e.err.Error()) } // InvalidAuthResponseError is returned from any [TPMContext] method that executes a TPM command if // one of the response auth HMACs is invalid. If this error occurs, session contexts associated // with the command that caused this error should be considered invalid. type InvalidAuthResponseError struct { Index int // Index of the session responsible for this error, starting from 1 msg string } func (e *InvalidAuthResponseError) Error() string { return fmt.Sprintf("encountered an error whilst processing the auth response for session %d: %s", e.Index, e.msg) } // TctiError is returned from any [TPMContext] method if the underlying [Transport] returns an error. // If this error occurs, the underlying connection will generally be unusable for subsequent // commands. // // Deprecated: Use [TransportError]. type TctiError = TransportError // TransportError is returned from any [TPMContext] method if the underlying [Transport] returns an error. // If this error occurs, the underlying connection will generally be unusable for subsequent commands, as // the TPM and host-side state can become inconsistent. It should be considered a fatal error, requiring // the existing connection to be closed and all host-side state to be discarded before re-opening a new // connection. type TransportError struct { Op string // The operation that caused the error err error } func (e *TransportError) Error() string { return fmt.Sprintf("cannot complete %s operation on Transport: %v", e.Op, e.err) } func (e *TransportError) Unwrap() error { return e.err } // TPMVendorError represents a TPM response that indicates a vendor-specific error // (where rc & 0x580 == 0x500). type TPMVendorError struct { Command CommandCode // Command code associated with this error Code ResponseCode // Response code } // CommandCode returns the command code that generated this error. func (e *TPMVendorError) CommandCode() CommandCode { return e.Command } // ResponseCode returns a TPM response code for this error. // It will panic if the [ResponseCode] field is not a valid vendor error response // code, ie, the F bit (7) is set, or the V bit (8) is clear, or the T bit (10) // is clear. func (e *TPMVendorError) ResponseCode() ResponseCode { if e.Code.F() || !e.Code.V() || !e.Code.T() { panic(fmt.Errorf("%w (response code is not format-0, TPM2, and vendor defined)", InvalidResponseCodeError(e.Code))) } return e.Code } func (e *TPMVendorError) Error() string { return fmt.Sprintf("TPM returned a vendor defined error whilst executing command %s: %#08x", e.Command, responseCodeFormatter(e)) } func (e *TPMVendorError) Is(target error) bool { t, ok := target.(*TPMVendorError) if !ok { return false } return (t.Code == AnyVendorResponseCode || t.Code == e.Code) && (t.Command == AnyCommandCode || t.Command == e.Command) } // WarningCode represents a TPM warning. These are TCG defined format 0 response codes with the // severity bit set (response codes 0x900 to 0x97f). They are mapped from their response code // minus the S and V bits (0x900). type WarningCode uint8 const ( WarningContextGap WarningCode = WarningCode(ResponseContextGap - rcWarn) // TPM_RC_CONTEXT_GAP WarningObjectMemory WarningCode = WarningCode(ResponseObjectMemory - rcWarn) // TPM_RC_OBJECT_MEMORY WarningSessionMemory WarningCode = WarningCode(ResponseSessionMemory - rcWarn) // TPM_RC_SESSION_MEMORY WarningMemory WarningCode = WarningCode(ResponseMemory - rcWarn) // TPM_RC_MEMORY WarningSessionHandles WarningCode = WarningCode(ResponseSessionHandles - rcWarn) // TPM_RC_SESSION_HANDLES WarningObjectHandles WarningCode = WarningCode(ResponseObjectHandles - rcWarn) // TPM_RC_OBJECT_HANDLES // WarningLocality corresponds to TPM_RC_LOCALITY and is returned for a command if a policy // session is used for authorization and the session includes a TPM2_PolicyLocality assertion, but // the command isn't executed with the authorized locality. WarningLocality WarningCode = WarningCode(ResponseLocality - rcWarn) // WarningYielded corresponds to TPM_RC_YIELDED and is returned for any command that is suspended // as a hint that the command can be retried. This is handled automatically when executing // commands using CommandContext by resubmitting the command. WarningYielded WarningCode = WarningCode(ResponseYielded - rcWarn) // WarningCanceled corresponds to TPM_RC_CANCELED and is returned for any command that is canceled // before being able to complete. WarningCanceled WarningCode = WarningCode(ResponseCanceled - rcWarn) WarningTesting WarningCode = WarningCode(ResponseTesting - rcWarn) // TPM_RC_TESTING WarningReferenceH0 WarningCode = WarningCode(ResponseReferenceH0 - rcWarn) // TPM_RC_REFERENCE_H0 WarningReferenceH1 WarningCode = WarningCode(ResponseReferenceH1 - rcWarn) // TPM_RC_REFERENCE_H1 WarningReferenceH2 WarningCode = WarningCode(ResponseReferenceH2 - rcWarn) // TPM_RC_REFERENCE_H2 WarningReferenceH3 WarningCode = WarningCode(ResponseReferenceH3 - rcWarn) // TPM_RC_REFERENCE_H3 WarningReferenceH4 WarningCode = WarningCode(ResponseReferenceH4 - rcWarn) // TPM_RC_REFERENCE_H4 WarningReferenceH5 WarningCode = WarningCode(ResponseReferenceH5 - rcWarn) // TPM_RC_REFERENCE_H5 WarningReferenceH6 WarningCode = WarningCode(ResponseReferenceH6 - rcWarn) // TPM_RC_REFERENCE_H6 WarningReferenceS0 WarningCode = WarningCode(ResponseReferenceS0 - rcWarn) // TPM_RC_REFERENCE_S0 WarningReferenceS1 WarningCode = WarningCode(ResponseReferenceS1 - rcWarn) // TPM_RC_REFERENCE_S1 WarningReferenceS2 WarningCode = WarningCode(ResponseReferenceS2 - rcWarn) // TPM_RC_REFERENCE_S2 WarningReferenceS3 WarningCode = WarningCode(ResponseReferenceS3 - rcWarn) // TPM_RC_REFERENCE_S3 WarningReferenceS4 WarningCode = WarningCode(ResponseReferenceS4 - rcWarn) // TPM_RC_REFERENCE_S4 WarningReferenceS5 WarningCode = WarningCode(ResponseReferenceS5 - rcWarn) // TPM_RC_REFERENCE_S5 WarningReferenceS6 WarningCode = WarningCode(ResponseReferenceS6 - rcWarn) // TPM_RC_REFERENCE_S6 // WarningNVRate corresponds to TPM_RC_NV_RATE and is returned for any command that requires NV // access if NV access is currently rate limited to prevent the NV memory from wearing out. WarningNVRate WarningCode = WarningCode(ResponseNVRate - rcWarn) // WarningLockout corresponds to TPM_RC_LOCKOUT and is returned for any command that requires // authorization for an entity that is subject to dictionary attack protection, and the TPM is in // dictionary attack lockout mode. WarningLockout WarningCode = WarningCode(ResponseLockout - rcWarn) // WarningRetry corresponds to TPM_RC_RETRY and is returned for any command if the TPM was not // able to start the command. This is handled automatically when executing comands using // CommandContext by resubmitting the command. WarningRetry WarningCode = WarningCode(ResponseRetry - rcWarn) // WarningNVUnavailable corresponds to TPM_RC_NV_UNAVAILABLE and is returned for any command that // requires NV access but NV memory is currently not available. WarningNVUnavailable WarningCode = WarningCode(ResponseNVUnavailable - rcWarn) ) // ResponseCode returns a TPM response code for this warning code. // It will panic if it cannot be converted to a valid response code. func (c WarningCode) ResponseCode() ResponseCode { rc := rcWarn + ResponseCode(c) if rc.F() { // The result overflowed into bit 7. panic(fmt.Errorf("%w (warning code results in a response code that overflows into bit 7)", InvalidResponseCodeError(rc))) } return rc } // TPMWarning represents a TPM response that indicates a warning, // where 0x900 < rc <= 0x97f. type TPMWarning struct { Command CommandCode // Command code associated with this error Code WarningCode // Warning code } // CommandCode returns the command code that generated this error. func (e *TPMWarning) CommandCode() CommandCode { return e.Command } // ResponseCode returns a TPM response code for this warning. // It will panic if it cannot be converted to a valid response code. func (e *TPMWarning) ResponseCode() ResponseCode { return e.Code.ResponseCode() } func (e *TPMWarning) Error() string { return fmt.Sprintf("TPM returned a warning whilst executing command %s: %+s", e.Command, responseCodeFormatter(e)) } func (e *TPMWarning) Is(target error) bool { t, ok := target.(*TPMWarning) if !ok { return false } return (t.Code == AnyWarningCode || t.Code == e.Code) && (t.Command == AnyCommandCode || t.Command == e.Command) } // ErrorCode represents a TPM error. This type represents TCG defined format 0 response codes // without the severity bit set (response codes 0x100 to 0x17f), and format 1 response codes // (response codes 0x080 to 0x0bf). // // Format 0 error numbers are 7 bits wide and are represented by codes 0x00 to 0x7f - they are // mapped from their response code minus the V bit (0x100). Format 1 error numbers are 6 bits // wide and are represented by codes 0x80 to 0xbf - they are mapped directly from their base // response code. type ErrorCode uint8 const ( // ErrorInitialize corresponds to TPM_RC_INITIALIZE and is returned for any command executed // between a _TPM_Init event and a TPM2_Startup command. ErrorInitialize ErrorCode = ErrorCode(ResponseInitialize - rcVer1) // ErrorFailure corresponds to TPM_RC_FAILURE and is returned for any command if the TPM is in // failure mode. ErrorFailure ErrorCode = ErrorCode(ResponseFailure - rcVer1) ErrorSequence ErrorCode = ErrorCode(ResponseSequence - rcVer1) // TPM_RC_SEQUENCE ErrorDisabled ErrorCode = ErrorCode(ResponseDisabled - rcVer1) // TPM_RC_DISABLED ErrorExclusive ErrorCode = ErrorCode(ResponseExclusive - rcVer1) // TPM_RC_EXCLUSIVE // ErrorAuthType corresponds to TPM_RC_AUTH_TYPE and is returned for a command where an // authorization is required and the authorization type is expected to be a policy session, but // another authorization type has been provided. ErrorAuthType ErrorCode = ErrorCode(ResponseAuthType - rcVer1) // ErrorAuthMissing corresponds to TPM_RC_AUTH_MISSING and is returned for a command that accepts // a ResourceContext argument that requires authorization, but no authorization session has been // provided in the command payload. ErrorAuthMissing ErrorCode = ErrorCode(ResponseAuthType - rcVer1) ErrorPolicy ErrorCode = ErrorCode(ResponsePolicy - rcVer1) // TPM_RC_POLICY ErrorPCR ErrorCode = ErrorCode(ResponsePCR - rcVer1) // TPM_RC_PCR // ErrorPCRChanged corresponds to TPM_RC_PCR_CHANGED and is returned for a command where a policy // session is used for authorization and the PCR contents have been updated since the last time // that they were checked in the session with a TPM2_PolicyPCR assertion. ErrorPCRChanged ErrorCode = ErrorCode(ResponsePCRChanged - rcVer1) // ErrorUpgrade corresponds to TPM_RC_UPGRADE and is returned for any command that isn't // TPM2_FieldUpgradeData if the TPM is in field upgrade mode. ErrorUpgrade ErrorCode = ErrorCode(ResponseUpgrade - rcVer1) ErrorTooManyContexts ErrorCode = ErrorCode(ResponseTooManyContexts - rcVer1) // TPM_RC_TOO_MANY_CONTEXTS // ErrorAuthUnavailable corresponds to TPM_RC_AUTH_UNAVAILABLE and is returned for a command where // the provided authorization requires the use of the authorization value for an entity, but the // authorization value cannot be used. For example, if the entity is an object and the command // requires the user auth role but the object does not have the AttrUserWithAuth attribute. ErrorAuthUnavailable ErrorCode = ErrorCode(ResponseAuthUnavailable - rcVer1) // ErrorReboot corresponds to TPM_RC_REBOOT and is returned for any command if the TPM requires a // _TPM_Init event before it will execute any more commands. ErrorReboot ErrorCode = ErrorCode(ResponseReboot - rcVer1) ErrorUnbalanced ErrorCode = ErrorCode(ResponseUnbalanced - rcVer1) // TPM_RC_UNBALANCED // ErrorCommandSize corresponds to TPM_RC_COMMAND_SIZE and indicates that the value of the // commandSize field in the command header does not match the size of the command packet // transmitted to the TPM. ErrorCommandSize ErrorCode = ErrorCode(ResponseCommandSize - rcVer1) // ErrorCommandCode corresponds to TPM_RC_COMMAND_CODE and is returned for any command that is not // implemented by the TPM. ErrorCommandCode ErrorCode = ErrorCode(ResponseCommandCode - rcVer1) ErrorAuthsize ErrorCode = ErrorCode(ResponseAuthsize - rcVer1) // TPM_RC_AUTHSIZE // ErrorAuthContext corresponds to TPM_RC_AUTH_CONTEXT and is returned for any command that does // not accept any sessions if sessions have been provided in the command payload. ErrorAuthContext ErrorCode = ErrorCode(ResponseAuthContext - rcVer1) ErrorNVRange ErrorCode = ErrorCode(ResponseNVRange - rcVer1) // TPM_RC_NV_RANGE ErrorNVSize ErrorCode = ErrorCode(ResponseNVSize - rcVer1) // TPM_RC_NV_SIZE ErrorNVLocked ErrorCode = ErrorCode(ResponseNVLocked - rcVer1) // TPM_RC_NV_LOCKED ErrorNVAuthorization ErrorCode = ErrorCode(ResponseNVAuthorization - rcVer1) // TPM_RC_NV_AUTHORIZATION ErrorNVUninitialized ErrorCode = ErrorCode(ResponseNVUninitialized - rcVer1) // TPM_RC_NV_UNINITIALIZED ErrorNVSpace ErrorCode = ErrorCode(ResponseNVSpace - rcVer1) // TPM_RC_NV_SPACE ErrorNVDefined ErrorCode = ErrorCode(ResponseNVDefined - rcVer1) // TPM_RC_NV_DEFINED ErrorBadContext ErrorCode = ErrorCode(ResponseBadContext - rcVer1) // TPM_RC_BAD_CONTEXT ErrorCpHash ErrorCode = ErrorCode(ResponseCpHash - rcVer1) // TPM_RC_CPHASH ErrorParent ErrorCode = ErrorCode(ResponseParent - rcVer1) // TPM_RC_PARENT ErrorNeedsTest ErrorCode = ErrorCode(ResponseNeedsTest - rcVer1) // TPM_RC_NEEDS_TEST // ErrorNoResult corresponds to TPM_RC_NO_RESULT and is returned for any command if the TPM // cannot process a request due to an unspecified problem. ErrorNoResult ErrorCode = ErrorCode(ResponseNoResult - rcVer1) ErrorSensitive ErrorCode = ErrorCode(ResponseSensitive - rcVer1) // TPM_RC_SENSITIVE errorCode1Start ErrorCode = ErrorCode(rcFmt1) ErrorAsymmetric ErrorCode = ErrorCode(ResponseAsymmetric) // TPM_RC_ASYMMETRIC // ErrorAttributes corresponds to TPM_RC_ATTRIBUTES and is returned as a *TPMSessionError for a // command in the following circumstances: // * More than one SessionContext instance with the AttrCommandEncrypt attribute has been provided. // * More than one SessionContext instance with the AttrResponseEncrypt attribute has been provided. // * A SessionContext instance referencing a trial session has been provided for authorization. ErrorAttributes ErrorCode = ErrorCode(ResponseAttributes) // ErrorHash corresponds to TPM_RC_HASH and is returned as a *TPMParameterError error for any // command that accepts a HashAlgorithmId parameter if the parameter value is not a valid digest // algorithm. ErrorHash ErrorCode = ErrorCode(ResponseHash) // ErrorValue corresponds to TPM_RC_VALUE and is returned as a *TPMParameterError or // *TPMHandleError for any command where an argument value is incorrect or out of range for the // command. ErrorValue ErrorCode = ErrorCode(ResponseValue) // TPM_RC_VALUE // ErrorHierarchy corresponds to TPM_RC_HIERARCHY and is returned as a *TPMHandleError error for // any command that accepts a ResourceContext or Handle argument if that argument corresponds to // a hierarchy on the TPM that has been disabled. ErrorHierarchy ErrorCode = ErrorCode(ResponseHierarchy) ErrorKeySize ErrorCode = ErrorCode(ResponseKeySize) // TPM_RC_KEY_SIZE ErrorMGF ErrorCode = ErrorCode(ResponseMGF) // TPM_RC_MGF // ErrorMode corresponds to TPM_RC_MODE and is returned as a *TPMParameterError error for any // command that accepts a SymModeId parameter if the parameter value is not a valid symmetric // mode. ErrorMode ErrorCode = ErrorCode(ResponseMode) // ErrorType corresponds to TPM_RC_TYPE and is returned as a *TPMParameterError error for any // command that accepts a ObjectTypeId parameter if the parameter value is not a valid public // type. ErrorType ErrorCode = ErrorCode(ResponseType) ErrorHandle ErrorCode = ErrorCode(ResponseHandle) // TPM_RC_HANDLE // ErrorKDF corresponds to TPM_RC_KDF and is returned as a *TPMParameterError error for any // command that accepts a KDFAlgorithmId parameter if the parameter value is not a valid key // derivation function. ErrorKDF ErrorCode = ErrorCode(ResponseKDF) ErrorRange ErrorCode = ErrorCode(ResponseRange) // TPM_RC_RANGE // ErrorAuthFail corresponds to TPM_RC_AUTH_FAIL and is returned as a *TPMSessionError error for // a command if an authorization check fails. The dictionary attack counter is incremented when // this error is returned. ErrorAuthFail ErrorCode = ErrorCode(ResponseAuthFail) // ErrorNonce corresponds to TPM_RC_NONCE and is returned as a *TPMSessionError error for any // command where a password authorization has been provided and the authorization session in the // command payload contains a non-zero sized nonce field. ErrorNonce ErrorCode = ErrorCode(ResponseNonce) // ErrorPP corresponds to TPM_RC_PP and is returned as a *TPMSessionError for a command in the // following circumstances: // * Authorization of the platform hierarchy is provided and the command requires an assertion of // physical presence that hasn't been provided. // * Authorization is provided with a policy session that includes the TPM2_PolicyPhysicalPresence // assertion, and an assertion of physical presence hasn't been provided. ErrorPP ErrorCode = ErrorCode(ResponsePP) // ErrorScheme corresponds to TPM_RC_SCHEME and is returned as a *TPMParameterError error for any // command that accepts a SigSchemeId or ECCSchemeId parameter if the parameter value is not valid. ErrorScheme ErrorCode = ErrorCode(ResponseScheme) // ErrorSize corresponds to TPM_RC_SIZE and is returned for a command in the following circumstances: // * As a *TPMParameterError if the command accepts a parameter type corresponding to TPM2B or // TPML prefixed types and the size or length field has an invalid value. // * As a *TPMError if the TPM's parameter unmarshalling doesn't consume all of the bytes in the // input buffer. // * As a *TPMError if the size field of the command's authorization area is an invalid value. // * As a *TPMSessionError if the authorization area for a command payload contains more than 3 // sessions. ErrorSize ErrorCode = ErrorCode(ResponseSize) // ErrorSymmetric corresponds to TPM_RC_SYMMETRIC and is returned for a command in the following // circumstances: // * As a *TPMParameterError if the command accepts a SymAlgorithmId parameter if the parameter // value is not a valid symmetric algorithm. // * As a *TPMSessionError if a SessionContext instance is provided with the AttrCommandEncrypt // attribute set but the session has no symmetric algorithm. // * As a *TPMSessionError if a SessionContext instance is provided with the AttrResponseEncrypt // attribute set but the session has no symmetric algorithm. ErrorSymmetric ErrorCode = ErrorCode(ResponseSymmetric) // ErrorTag corresponds to TPM_RC_TAG and is returned as a *TPMParameterError error for a command // that accepts a StructTag parameter if the parameter value is not the correct value. ErrorTag ErrorCode = ErrorCode(ResponseTag) // ErrorSelector corresponds to TPM_RC_SELECTOR and is returned as a *TPMParameterError error for // a command that accepts a parameter type corresponding to a TPMU prefixed type if the value of // the selector field in the surrounding TPMT prefixed type is incorrect. ErrorSelector ErrorCode = ErrorCode(ResponseSelector) // ErrorInsufficient corresponds to TPM_RC_INSUFFICIENT and is returned as a *TPMParameterError // for a command if there is insufficient data in the TPM's input buffer to complete unmarshalling // of the command parameters. ErrorInsufficient ErrorCode = ErrorCode(ResponseInsufficient) ErrorSignature ErrorCode = ErrorCode(ResponseSignature) // TPM_RC_SIGNATURE ErrorKey ErrorCode = ErrorCode(ResponseKey) // TPM_RC_KEY // ErrorPolicyFail corresponds to TPM_RC_POLICY_FAIL and is returned as a *TPMSessionError error // for a command in the following circumstances: // * A policy session is used for authorization and the policy session digest does not match the // authorization policy digest for the entity being authorized. // * A policy session is used for authorization and the digest algorithm of the session does not // match the name algorithm of the entity being authorized. // * A policy session is used for authorization but the authorization is for the admin or DUP role // and the policy session does not include a TPM2_PolicyCommandCode assertion. // * A policy session is used for authorization and the policy session includes a // TPM2_PolicyNvWritten assertion but the entity being authorized is not a NV index. // * A policy session is used for authorization, the policy session includes the // TPM2_PolicyNvWritten assertion, but the NV index being authorized does not have the // AttrNVWritten attribute set. ErrorPolicyFail ErrorCode = ErrorCode(ResponsePolicyFail) ErrorIntegrity ErrorCode = ErrorCode(ResponseIntegrity) // TPM_RC_INTEGRITY ErrorTicket ErrorCode = ErrorCode(ResponseTicket) // TPM_RC_TICKET // ErroReservedBits corresponds to TPM_RC_RESERVED_BITS and is returned as a *TPMParameterError // error for a command that accepts a parameter type corresponding to a TPMA prefixed type if the // parameter value has reserved bits set. ErrorReservedBits ErrorCode = ErrorCode(ResponseReservedBits) // ErrorBadAuth corresponds to TPM_RC_BAD_AUTH and is returned as a *TPMSessionError error for a // command if an authorization check fails and the authorized entity is exempt from dictionary // attack protections. ErrorBadAuth ErrorCode = ErrorCode(ResponseBadAuth) // ErrorExpired corresponds to TPM_RC_EXPIRED and is returned as a *TPMSessionError error for a // command if a policy session is used for authorization, and the session has expired. ErrorExpired ErrorCode = ErrorCode(ResponseExpired) // ErrorPolicyCC corresponds to TPM_RC_POLICY_CC and is returned as a *TPMSessionError error for // a command if a policy session is used for authorization, the session includes a // TPM2_PolicyCommandCode assertion, but the command code doesn't match the command for which the // authorization is being used for. ErrorPolicyCC ErrorCode = ErrorCode(ResponsePolicyCC) ErrorBinding ErrorCode = ErrorCode(ResponseBinding) // TPM_RC_BINDING // ErrorCurve corresponds to TPM_RC_CURVE and is returned as a *TPMParameterError for a command // that accepts a ECCCurve parameter if the parameter value is incorrect. ErrorCurve ErrorCode = ErrorCode(ResponseCurve) ErrorECCPoint ErrorCode = ErrorCode(ResponseECCPoint) // TPM_RC_ECC_POINT ErrorFWLimited ErrorCode = ErrorCode(ResponseFWLimited) // TPM_RC_FW_LIMITED ErrorSVNLimited ErrorCode = ErrorCode(ResponseSVNLimited) // TPM_RC_SVN_LIMITED ) // ResponseCode returns a TPM response code for this error code. // It will panic if it cannot be converted to a valid response code. func (c ErrorCode) ResponseCode() ResponseCode { if c >= errorCode1Start { // Format-one rc := ResponseCode(c) if rc.P() { panic(fmt.Errorf("%w (error code results in a format-1 response code that overflows into bit 6)", InvalidResponseCodeError(rc))) } return rc } // Format-zero return rcVer1 + ResponseCode(c) } // TPMErrorBadTag represents a TPM response that indicates that the tag field of the command header // was invalid (rc == [ResponseBadTag]). This error will occur when trying to execute a TPM2 // command on a TPM1.2 device (along with a response tag == [TagRspCommand]). type TPMErrorBadTag struct { Command CommandCode } // CommandCode returns the command code that generated this error. func (e *TPMErrorBadTag) CommandCode() CommandCode { return e.Command } // ResponseCode returns a TPM response code for this error. func (TPMErrorBadTag) ResponseCode() ResponseCode { return ResponseBadTag } func (e *TPMErrorBadTag) Error() string { return fmt.Sprintf("TPM returned an error whilst executing command %s: %+s", e.Command, ResponseBadTag) } // TPMError represents a TPM response that indicates an error that is not associated with a // specific handle, parameter or session (format-zero errors, 0x100 <= rc <= 0x17f), or as a // base for errors that are associated with a specific handle, parameter or session // (format-one errors, 0x080 < rc <= 0x0bf). type TPMError struct { Command CommandCode // Command code associated with this error Code ErrorCode // Error code } // CommandCode returns the command code that generated this error. func (e *TPMError) CommandCode() CommandCode { return e.Command } // ResponseCode returns a TPM response code for this error. If the error is associated // with a format-one response, the returned response code will be the base response code. // It will panic if it cannot be converted to a valid response code. func (e *TPMError) ResponseCode() ResponseCode { return e.Code.ResponseCode() } func (e *TPMError) Error() (err string) { return fmt.Sprintf("TPM returned an error whilst executing command %s: %+s", e.Command, responseCodeFormatter(e)) } func (e *TPMError) Is(target error) bool { t, ok := target.(*TPMError) if !ok { return false } return (t.Code == AnyErrorCode || t.Code == e.Code) && (t.Command == AnyCommandCode || t.Command == e.Command) } // TPMParameterError represents a TPM response that indicates an error that is associated with a // command parameter (format-one errors 0x080 < rc <= 0x0bf). type TPMParameterError struct { *TPMError Index int // Index of the parameter associated with this error in the command parameter area, starting from 1 } // ResponseCode returns a TPM response code for this error. // It will panic if it cannot be converted to a valid parameter error response code. func (e *TPMParameterError) ResponseCode() ResponseCode { if e.Index < 0 || e.Index > math.MaxUint8 { panic("parameter index out of range") } return e.TPMError.ResponseCode().SetParameterIndex(uint8(e.Index)) } func (e *TPMParameterError) Error() string { return fmt.Sprintf("TPM returned an error for parameter %d whilst executing command %s: %+s", e.Index, e.Command, responseCodeFormatter(e)) } func (e *TPMParameterError) Is(target error) bool { t, ok := target.(*TPMParameterError) if !ok { return false } return e.TPMError.Is(t.TPMError) && (t.Index == AnyParameterIndex || t.Index == e.Index) } func (e *TPMParameterError) Unwrap() error { return e.TPMError } // TPMSessionError represents a TPM response that indicates an error that is associated with a // session (format-one errors 0x080 < rc <= 0x0bf). type TPMSessionError struct { *TPMError Index int // Index of the session associated with this error in the authorization area, starting from 1 } // ResponseCode returns a TPM response code for this error. // It will panic if it cannot be converted to a valid session error response code. func (e *TPMSessionError) ResponseCode() ResponseCode { if e.Index < 0 || e.Index > math.MaxUint8 { panic("session index out of range") } return e.TPMError.ResponseCode().SetSessionIndex(uint8(e.Index)) } func (e *TPMSessionError) Error() string { return fmt.Sprintf("TPM returned an error for session %d whilst executing command %s: %+s", e.Index, e.Command, responseCodeFormatter(e)) } func (e *TPMSessionError) Is(target error) bool { t, ok := target.(*TPMSessionError) if !ok { return false } return e.TPMError.Is(t.TPMError) && (t.Index == AnySessionIndex || t.Index == e.Index) } func (e *TPMSessionError) Unwrap() error { return e.TPMError } // TPMHandleError represents a TPM response that indicates an error that is associated with a // command handle (format-one errors 0x080 < rc <= 0x0bf). type TPMHandleError struct { *TPMError // Index is the index of the handle associated with this error in the command handle area, starting from 1. An index of 0 corresponds // to an unspecified handle Index int } // ResponseCode returns a TPM response code for this error. // It will panic if it cannot be converted to a valid handle error response code. func (e *TPMHandleError) ResponseCode() ResponseCode { if e.Index < 0 || e.Index > math.MaxUint8 { panic("handle index out of range") } return e.TPMError.ResponseCode().SetHandleIndex(uint8(e.Index)) } func (e *TPMHandleError) Error() string { return fmt.Sprintf("TPM returned an error for handle %d whilst executing command %s: %+s", e.Index, e.Command, responseCodeFormatter(e)) } func (e *TPMHandleError) Is(target error) bool { t, ok := target.(*TPMHandleError) if !ok { return false } return e.TPMError.Is(t.TPMError) && (t.Index == AnyHandleIndex || t.Index == e.Index) } func (e *TPMHandleError) Unwrap() error { return e.TPMError } // IsResourceUnavailableError indicates whether an error is a [ResourceUnavailableError] with the // specified handle. To test for any handle, use [AnyHandle]. func IsResourceUnavailableError(err error, handle Handle) bool { return errors.Is(err, &ResourceUnavailableError{Handle: handle}) } // IsTPMError indicates whether the error or any error within its chain is a *[TPMError] with the // specified [ErrorCode] and [CommandCode]. To test for any error code, use [AnyErrorCode]. To test // for any command code, use [AnyCommandCode]. func IsTPMError(err error, code ErrorCode, command CommandCode) bool { return errors.Is(err, &TPMError{Command: command, Code: code}) } // AsTPMError returns a TPMError if the supplied error is one or any within its chain is. // It will only return a TPMError if the supplied parameters match - see IsTPMError for // how this works. func AsTPMError(err error, code ErrorCode, command CommandCode) *TPMError { var outErr *TPMError if errors.As(err, &outErr) { if IsTPMError(outErr, code, command) { return outErr } } return nil } // IsTPMHandleError indicates whether the error or any error within its chain is a // *[TPMHandleError] with the specified [ErrorCode], [CommandCode] and handle index. To test for // any error code, use [AnyErrorCode]. To test for any command code, use [AnyCommandCode]. To test // for any handle index, use [AnyHandleIndex]. func IsTPMHandleError(err error, code ErrorCode, command CommandCode, handle int) bool { return errors.Is(err, &TPMHandleError{TPMError: &TPMError{Command: command, Code: code}, Index: handle}) } // AsTPMHandleError returns a TPMHandleError if the supplied error is one or any within its // chain is. It will only return a TPMHandleError if the supplied parameters match - see // IsTPMHandleError for how this works. func AsTPMHandleError(err error, code ErrorCode, command CommandCode, handle int) *TPMHandleError { var outErr *TPMHandleError if errors.As(err, &outErr) { if IsTPMHandleError(outErr, code, command, handle) { return outErr } } return nil } // IsTPMParameterError indicates whether the error or any error within its chain is a // *[TPMParameterError] with the specified [ErrorCode], [CommandCode] and parameter index. To test // for any error code, use [AnyErrorCode]. To test for any command code, use [AnyCommandCode]. To // test for any parameter index, use [AnyParameterIndex]. func IsTPMParameterError(err error, code ErrorCode, command CommandCode, param int) bool { return errors.Is(err, &TPMParameterError{TPMError: &TPMError{Command: command, Code: code}, Index: param}) } // AsTPMParameterError returns a TPMParameterError if the supplied error is one or any within its // chain is. It will only return a TPMParameterError if the supplied parameters match - see // IsTPMParameterError for how this works. func AsTPMParameterError(err error, code ErrorCode, command CommandCode, handle int) *TPMParameterError { var outErr *TPMParameterError if errors.As(err, &outErr) { if IsTPMParameterError(outErr, code, command, handle) { return outErr } } return nil } // IsTPMSessionError indicates whether the error or any error within its chain is a // *[TPMSessionError] with the specified [ErrorCode], [CommandCode] and session index. To test for // any error code, use [AnyErrorCode]. To test for any command code, use [AnyCommandCode]. To test // for any session index, use [AnySessionIndex]. func IsTPMSessionError(err error, code ErrorCode, command CommandCode, session int) bool { return errors.Is(err, &TPMSessionError{TPMError: &TPMError{Command: command, Code: code}, Index: session}) } // AsTPMSessionError returns a TPMSessionError if the supplied error is one or any within its // chain is. It will only return a TPMSessionError if the supplied parameters match - see // IsTPMSessionError for how this works. func AsTPMSessionError(err error, code ErrorCode, command CommandCode, handle int) *TPMSessionError { var outErr *TPMSessionError if errors.As(err, &outErr) { if IsTPMSessionError(outErr, code, command, handle) { return outErr } } return nil } // IsTPMWarning indicates whether the error or any error within its chain is a *[TPMWarning] with // the specified [WarningCode] and [CommandCode]. To test for any warning code, use // [AnyWarningCode]. To test for any command code, use [AnyCommandCode]. func IsTPMWarning(err error, code WarningCode, command CommandCode) bool { return errors.Is(err, &TPMWarning{Command: command, Code: code}) } // AsTPMWarningError returns a TPMWarning if the supplied error is one or any within its // chain is. It will only return a TPMWarning if the supplied parameters match - see // IsTPMWarning for how this works. func AsTPMWarning(err error, code WarningCode, command CommandCode) *TPMWarning { var outErr *TPMWarning if errors.As(err, &outErr) { if IsTPMWarning(outErr, code, command) { return outErr } } return nil } // IsTPMVendorError indicates whether the error or any error within its chain is a // *[TPMVendorError] with the specified [ResponseCode] and [CommandCode]. To test for // any response code, use [AnyVendorResponseCode]. To test for any command code, use // [AnyCommandCode]. func IsTPMVendorError(err error, rc ResponseCode, command CommandCode) bool { return errors.Is(err, &TPMVendorError{Command: command, Code: rc}) } // AsTPMVendorError returns a TPMVendorError if the supplied error is one or any within // its chainis. It wil only return a TPMVendorError if the supplied parameters match - see // IsTPMVendorError for how this works. func AsTPMVendorError(err error, rc ResponseCode, command CommandCode) *TPMVendorError { var outErr *TPMVendorError if errors.As(err, &outErr) { if IsTPMVendorError(outErr, rc, command) { return outErr } } return nil } // InvalidResponseCode is returned from [DecodeResponseCode] and any [TPMContext] method that // executes a command on the TPM if the TPM response code is invalid. type InvalidResponseCodeError ResponseCode func (e InvalidResponseCodeError) Error() string { return fmt.Sprintf("invalid response code %#08x", ResponseCode(e)) } // DecodeResponseCode decodes the ResponseCode provided via resp. If the specified response code is // [ResponseSuccess], it returns no error, else it returns an error that is appropriate for the // response code. The command code is used for adding context to the returned error. // // If the response code is invalid, an [InvalidResponseCodeError] error will be returned. func DecodeResponseCode(command CommandCode, resp ResponseCode) error { switch { case !resp.IsValid(): return InvalidResponseCodeError(resp) case resp == ResponseSuccess: return nil case resp == ResponseBadTag: return &TPMErrorBadTag{Command: command} case resp.F(): // Format-one error codes err := &TPMError{Command: command, Code: ErrorCode(resp.E()) + errorCode1Start} switch { case resp.P(): // Associated with a parameter return &TPMParameterError{TPMError: err, Index: int(resp.N())} case resp.N()&uint8(rcNSessionIndicator>>rcNShift) != 0: // Associated with a session index := resp.N() &^ uint8(rcNSessionIndicator>>rcNShift) return &TPMSessionError{TPMError: err, Index: int(index)} case resp.N() != 0: // Associated with a handle return &TPMHandleError{TPMError: err, Index: int(resp.N())} default: // Not associated with a specific parameter, session or handle return err } default: // Format-zero error codes switch { case !resp.V(): // A TPM1.2 error that isn't TPM_RC_BAD_TAG return InvalidResponseCodeError(resp) case resp.T(): // An error defined by the TPM vendor return &TPMVendorError{Command: command, Code: resp} case resp.S(): // A warning return &TPMWarning{Command: command, Code: WarningCode(resp.E())} default: return &TPMError{Command: command, Code: ErrorCode(resp.E())} } } } ./github.com/canonical/go-tpm2/internal/0000775000000000000000000000000000000000000015173 5ustar00./github.com/canonical/go-tpm2/internal/crypt/0000775000000000000000000000000000000000000016334 5ustar00./github.com/canonical/go-tpm2/internal/crypt/kdf.go0000664000000000000000000000317200000000000017432 0ustar00// Copyright 2019 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package crypt import ( "bytes" "crypto" "encoding/binary" kbkdf "github.com/canonical/go-kbkdf" "github.com/canonical/go-kbkdf/hmac_prf" ) // KDFa performs key derivation using the counter mode described in SP800-108 // and HMAC as the PRF. // // This will panic if hashAlg is not available. func KDFa(hashAlg crypto.Hash, key, label, contextU, contextV []byte, sizeInBits int) []byte { context := make([]byte, len(contextU)+len(contextV)) copy(context, contextU) copy(context[len(contextU):], contextV) outKey := kbkdf.CounterModeKey(hmac_prf.From(hashAlg), key, label, context, uint32(sizeInBits)) if sizeInBits%8 != 0 { outKey[0] &= ((1 << uint(sizeInBits%8)) - 1) } return outKey } // KDFe performs key derivation using the "Concatenation Key Derivation Function // (Approved Alternative 1) in the original version of SP800-56A. // // This will panic if hashAlg is not available. func KDFe(hashAlg crypto.Hash, z, label, partyUInfo, partyVInfo []byte, sizeInBits int) []byte { digestSize := hashAlg.Size() counter := 0 var res bytes.Buffer for bytes := (sizeInBits + 7) / 8; bytes > 0; bytes -= digestSize { if bytes < digestSize { digestSize = bytes } counter++ h := hashAlg.New() binary.Write(h, binary.BigEndian, uint32(counter)) h.Write(z) h.Write(label) h.Write([]byte{0}) h.Write(partyUInfo) h.Write(partyVInfo) res.Write(h.Sum(nil)[0:digestSize]) } outKey := res.Bytes() if sizeInBits%8 != 0 { outKey[0] &= ((1 << uint(sizeInBits%8)) - 1) } return outKey } ./github.com/canonical/go-tpm2/internal/crypt/secret.go0000664000000000000000000001034500000000000020153 0ustar00// Copyright 2022 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package crypt import ( "crypto" "crypto/ecdsa" "crypto/elliptic" "crypto/rsa" "errors" "fmt" "io" "math/big" "github.com/canonical/go-tpm2/mu" ) type eccPoint struct { X []byte Y []byte } func zeroExtendBytes(x *big.Int, l int) (out []byte) { out = make([]byte, l) tmp := x.Bytes() copy(out[len(out)-len(tmp):], tmp) return } // SecretDecrypt recovers a seed from the supplied secret structure using the supplied private key. // It can be used to recover secrets created by the TPM, such as those created by the // TPM2_Duplicate command. // // If priv is a *[rsa.PrivateKey], this will recover the seed by decrypting the supplied secret // with RSA-OAEP. // // If priv is a *[ecdsa.PrivateKey], this uses ECDH to derive the seed using the supplied secret, // which will contain a serialized ephemeral peer key. // // The specified digest algorithm must match the name algorithm of the public area associated with // the supplied private key. // // This will panic if hashAlg is not available. func SecretDecrypt(priv crypto.PrivateKey, hashAlg crypto.Hash, label, secret []byte) (seed []byte, err error) { switch p := priv.(type) { case *rsa.PrivateKey: h := hashAlg.New() label0 := make([]byte, len(label)+1) copy(label0, label) return rsa.DecryptOAEP(h, nil, p, secret, label0) case *ecdsa.PrivateKey: var ephPoint eccPoint if _, err := mu.UnmarshalFromBytes(secret, &ephPoint); err != nil { return nil, fmt.Errorf("cannot unmarshal ephemeral point: %w", err) } ephX := new(big.Int).SetBytes(ephPoint.X) ephY := new(big.Int).SetBytes(ephPoint.Y) if !p.Curve.IsOnCurve(ephX, ephY) { return nil, errors.New("ephemeral point is not on curve") } sz := p.Curve.Params().BitSize / 8 mulX, _ := p.Curve.ScalarMult(ephX, ephY, p.D.Bytes()) return KDFe(hashAlg, zeroExtendBytes(mulX, sz), label, ephPoint.X, zeroExtendBytes(p.X, sz), hashAlg.Size()*8), nil default: return nil, errors.New("unsupported key type") } } // SecretEncrypt establishes a seed and associated secret value using the supplied public key and // digest algorithm. The corresponding private key can recover the seed from the returned secret // value. This is useful for sharing secrets with the TPM via the TPM2_Import, // TPM2_ActivateCredential and TPM2_StartAuthSession commands. // // If public is a *[rsa.PublicKey], this will generate a random seed and then RSA-OAEP encrypt it // to create the secret. // // If public is a *[ecdsa.PublicKey], this uses ECDH to derive a seed value using an an ephemeral // key. The secret contains the serialized form of the public part of the ephemeral key. // // The supplied digest algorithm must match the name algorithm of the public area associated with // the supplied public key. // // This will panic if hashAlg is not available. func SecretEncrypt(rand io.Reader, public crypto.PublicKey, hashAlg crypto.Hash, label []byte) (secret []byte, seed []byte, err error) { digestSize := hashAlg.Size() switch p := public.(type) { case *rsa.PublicKey: secret := make([]byte, digestSize) if _, err := rand.Read(secret); err != nil { return nil, nil, fmt.Errorf("cannot read random bytes for secret: %v", err) } h := hashAlg.New() label0 := make([]byte, len(label)+1) copy(label0, label) encryptedSecret, err := rsa.EncryptOAEP(h, rand, p, secret, label0) return encryptedSecret, secret, err case *ecdsa.PublicKey: if p.Curve == nil { return nil, nil, errors.New("no curve") } if !p.Curve.IsOnCurve(p.X, p.Y) { return nil, nil, errors.New("public key is not on curve") } ephPriv, ephX, ephY, err := elliptic.GenerateKey(p.Curve, rand) if err != nil { return nil, nil, fmt.Errorf("cannot generate ephemeral ECC key: %v", err) } sz := p.Curve.Params().BitSize / 8 encryptedSecret := mu.MustMarshalToBytes(&eccPoint{ X: zeroExtendBytes(ephX, sz), Y: zeroExtendBytes(ephY, sz)}) mulX, _ := p.Curve.ScalarMult(p.X, p.Y, ephPriv) secret := KDFe(hashAlg, zeroExtendBytes(mulX, sz), label, zeroExtendBytes(ephX, sz), zeroExtendBytes(p.X, sz), digestSize*8) return encryptedSecret, secret, nil default: return nil, nil, errors.New("unsupported key type") } } ./github.com/canonical/go-tpm2/internal/crypt/symmetric.go0000664000000000000000000000216100000000000020677 0ustar00// Copyright 2022 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package crypt import ( "crypto/cipher" "fmt" ) type SymmetricAlgorithm interface { NewCipher(key []byte) (cipher.Block, error) } // SymmetricEncrypt performs in place symmetric encryption of the supplied // data with the supplied cipher using CFB mode. func SymmetricEncrypt(alg SymmetricAlgorithm, key, iv, data []byte) error { c, err := alg.NewCipher(key) if err != nil { return fmt.Errorf("cannot create cipher: %w", err) } // The TPM uses CFB cipher mode for all secret sharing s := cipher.NewCFBEncrypter(c, iv) s.XORKeyStream(data, data) return nil } // SymmetricDecrypt performs in place symmetric decryption of the supplied // data with the supplied cipher using CFB mode. func SymmetricDecrypt(alg SymmetricAlgorithm, key, iv, data []byte) error { c, err := alg.NewCipher(key) if err != nil { return fmt.Errorf("cannot create cipher: %w", err) } // The TPM uses CFB cipher mode for all secret sharing s := cipher.NewCFBDecrypter(c, iv) s.XORKeyStream(data, data) return nil } ./github.com/canonical/go-tpm2/internal/crypt/xor.go0000664000000000000000000000106300000000000017473 0ustar00// Copyright 2019 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package crypt import ( "crypto" ) // XORObfuscation performs XOR obfuscation as described in part 1 of the TPM // library specification. // // This will panic if hashAlg is not available. func XORObfuscation(hashAlg crypto.Hash, key []byte, contextU, contextV, data []byte) { dataSize := len(data) mask := KDFa(hashAlg, key, []byte("XOR"), contextU, contextV, dataSize*8) for i := 0; i < dataSize; i++ { data[i] ^= mask[i] } } ./github.com/canonical/go-tpm2/internal/ppi/0000775000000000000000000000000000000000000015763 5ustar00./github.com/canonical/go-tpm2/internal/ppi/ppi.go0000664000000000000000000000612100000000000017102 0ustar00// Copyright 2023 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package ppi import ( "sync" "github.com/canonical/go-tpm2" "github.com/canonical/go-tpm2/ppi" ) type PPIBackend interface { SubmitOperation(op ppi.OperationId, arg *uint32) error StateTransitionAction() (ppi.StateTransitionAction, error) OperationStatus(op ppi.OperationId) (ppi.OperationStatus, error) OperationResponse() (*ppi.OperationResponse, error) } type PPI struct { ppiType ppi.Type version ppi.Version functions PPIBackend staOnce sync.Once sta ppi.StateTransitionAction staError error ops map[ppi.OperationId]ppi.OperationStatus rspOnce sync.Once rsp *ppi.OperationResponse rspError error } func New(ppiType ppi.Type, version ppi.Version, functions PPIBackend) *PPI { return &PPI{ ppiType: ppiType, version: version, functions: functions, ops: make(map[ppi.OperationId]ppi.OperationStatus), } } func (p *PPI) submitOperation(op ppi.OperationId) error { return p.functions.SubmitOperation(op, nil) } func (p *PPI) Type() ppi.Type { return p.ppiType } func (p *PPI) Version() ppi.Version { return p.version } func (p *PPI) StateTransitionAction() (ppi.StateTransitionAction, error) { p.staOnce.Do(func() { p.sta, p.staError = p.functions.StateTransitionAction() }) return p.sta, p.staError } func (p *PPI) OperationStatus(op ppi.OperationId) (ppi.OperationStatus, error) { status, exists := p.ops[op] if exists { return status, nil } status, err := p.functions.OperationStatus(op) if err != nil { return 0, err } p.ops[op] = status return status, nil } func (p *PPI) EnableTPM() error { return p.submitOperation(ppi.OperationEnableTPM) } func (p *PPI) DisableTPM() error { return p.submitOperation(ppi.OperationDisableTPM) } func (p *PPI) ClearTPM() error { return p.submitOperation(ppi.OperationClearTPM) } func (p *PPI) EnableAndClearTPM() error { return p.submitOperation(ppi.OperationEnableAndClearTPM) } func (p *PPI) SetPCRBanks(algs ...tpm2.HashAlgorithmId) error { bits := ppi.MakeHashAlgorithms(algs...) return p.functions.SubmitOperation(ppi.OperationSetPCRBanks, (*uint32)(&bits)) } func (p *PPI) ChangeEPS() error { return p.submitOperation(ppi.OperationChangeEPS) } func (p *PPI) LogAllDigests() error { return p.submitOperation(ppi.OperationLogAllDigests) } func (p *PPI) DisableEndorsementAndEnableStorageHierarchy() error { return p.submitOperation(ppi.OperationDisableEndorsementEnableStorageHierarchy) } func (p *PPI) SetPPRequiredForOperation(op ppi.OperationId) error { op = op.SetPPRequiredOperationId() if op == ppi.NoOperation { return ppi.ErrOperationUnsupported } return p.submitOperation(op) } func (p *PPI) ClearPPRequiredForOperation(op ppi.OperationId) error { op = op.ClearPPRequiredOperationId() if op == ppi.NoOperation { return ppi.ErrOperationUnsupported } return p.submitOperation(op) } func (p *PPI) OperationResponse() (*ppi.OperationResponse, error) { p.rspOnce.Do(func() { p.rsp, p.rspError = p.functions.OperationResponse() }) return p.rsp, p.rspError } ./github.com/canonical/go-tpm2/internal/ppi_efi/0000775000000000000000000000000000000000000016606 5ustar00./github.com/canonical/go-tpm2/internal/ppi_efi/ppi_efi.go0000664000000000000000000002304200000000000020551 0ustar00// Copyright 2025 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package ppi_efi import ( "bytes" "context" "encoding/binary" "errors" "fmt" "io" "math" efi "github.com/canonical/go-efilib" internal_ppi "github.com/canonical/go-tpm2/internal/ppi" "github.com/canonical/go-tpm2/ppi" ) const ( maxOp = ppi.OperationId(127) physicalPresenceName = "Tcg2PhysicalPresence" physicalPresenceConfigName = "Tcg2PhysicalPresenceConfig" physicalPresenceFlagsName = "Tcg2PhysicalPresenceFlags" ) // ErrUnavailable indicates that the EFI based physical presence interface // is not available. var ErrUnavailable = errors.New("no EFI physical presence interface available") var physicalPresenceGuid = efi.MakeGUID(0xaeb9c5c1, 0x94f1, 0x4d02, 0xbfd9, [...]uint8{0x46, 0x02, 0xdb, 0x2d, 0x3c, 0x54}) type physicalPresence struct { PPRequest uint8 PPRequestParameter uint32 LastPPRequest uint8 LastPPResponse uint32 } func readPhysicalPresence(ctx context.Context) (*physicalPresence, efi.VariableAttributes, error) { ppBytes, attrs, err := efi.ReadVariable(ctx, physicalPresenceName, physicalPresenceGuid) if err != nil { return nil, 0, err } var pp physicalPresence if err := binary.Read(bytes.NewReader(ppBytes), binary.LittleEndian, &pp); err != nil { if err == io.EOF { err = io.ErrUnexpectedEOF } return nil, 0, fmt.Errorf("cannot decode EFI_TCG2_PHYSICAL_PRESENCE: %w", err) } return &pp, attrs, nil } func (p *physicalPresence) SetRequest(op ppi.OperationId, arg *uint32) error { if op > math.MaxUint8 { return ppi.ErrOperationUnsupported } p.PPRequest = uint8(op) p.PPRequestParameter = 0 if arg != nil { p.PPRequestParameter = *arg } return nil } func (p *physicalPresence) Submit(ctx context.Context, attrs efi.VariableAttributes) error { var buf bytes.Buffer if err := binary.Write(&buf, binary.LittleEndian, p); err != nil { return err } if err := efi.WriteVariable(ctx, physicalPresenceName, physicalPresenceGuid, attrs, buf.Bytes()); err != nil { return ppi.ErrOperationFailed } return nil } type physicalPresenceFlags uint32 const ( ppRequiredForClear physicalPresenceFlags = (1 << 1) ppRequiredForTurnOn physicalPresenceFlags = (1 << 4) ppRequiredForTurnOff physicalPresenceFlags = (1 << 5) ppRequiredForChangeEPS physicalPresenceFlags = (1 << 6) ppRequiredForChangePCRs physicalPresenceFlags = (1 << 7) ) type physicalPresenceConfig struct { StructVersion uint32 PPICapabilities uint32 PPIVersion [8]byte PPITransitionAction uint32 UserConfirmation [64]uint8 } func (c *physicalPresenceConfig) Version() (ppi.Version, error) { term := bytes.IndexByte(c.PPIVersion[:], '\x00') if term < 0 { return ppi.Version{}, errors.New("invalid PPI version: not NULL terminated") } return ppi.ParseVersion(string(c.PPIVersion[:term])) } func (c *physicalPresenceConfig) TransitionAction() ppi.StateTransitionAction { return ppi.StateTransitionAction(c.PPITransitionAction) } func (c *physicalPresenceConfig) OperationStatus(op ppi.OperationId) ppi.OperationStatus { if op > maxOp { return ppi.OperationNotImplemented } index := 63 - int(op>>1) shift := 0 if op&1 == 1 { shift = 4 } return ppi.OperationStatus((c.UserConfirmation[index] >> shift) & 0xf) } func varsContext(ctx context.Context, customVars efi.VarsBackend) context.Context { if customVars != nil { return context.WithValue(ctx, efi.VarsBackendKey{}, customVars) } return efi.WithDefaultVarsBackend(ctx) } type efiPpiImpl struct { CustomVars efi.VarsBackend Flags physicalPresenceFlags Config *physicalPresenceConfig } func (p *efiPpiImpl) varsContext(ctx context.Context) context.Context { return varsContext(ctx, p.CustomVars) } func (p *efiPpiImpl) SubmitOperation(op ppi.OperationId, arg *uint32) error { ctx := p.varsContext(context.Background()) pp, attrs, err := readPhysicalPresence(ctx) if err != nil { return err } if err := pp.SetRequest(op, arg); err != nil { return err } return pp.Submit(ctx, attrs) } func (p *efiPpiImpl) StateTransitionAction() (ppi.StateTransitionAction, error) { if p.Config == nil { // We can't determine what this is without Tcg2PhysicalPresenceConfig, // so just return the most likely (reboot). return ppi.StateTransitionRebootRequired, nil } action := p.Config.TransitionAction() if action > ppi.StateTransitionActionOSVendorSpecific { return 0, fmt.Errorf("invalid transition action %d", action) } return action, nil } func (p *efiPpiImpl) OperationStatus(op ppi.OperationId) (ppi.OperationStatus, error) { if p.Config == nil { // Without Tcg2PhysicalPresenceConfig, we return a status for each operation // that is based on Tcg2PhysicalPresenceFlags. This only tells us whether // user confirmation is required or not, and we also have to guess at the // mapping between operation ID and a flag bit. In this case, the result // may not be accurate. A consequence of this is that a caller may request // an operation that isn't available, but then there will be an error in // the response on the next boot. var flags physicalPresenceFlags switch op { case ppi.OperationEnableTPM: flags = ppRequiredForTurnOn case ppi.OperationDisableTPM: flags = ppRequiredForTurnOff case ppi.OperationClearTPM: flags = ppRequiredForClear case ppi.OperationEnableAndClearTPM: // Map this to turn on and clear flags = ppRequiredForTurnOn | ppRequiredForClear case ppi.OperationSetPPRequiredForClearTPM, ppi.OperationSetPPRequiredForChangePCRs, ppi.OperationSetPPRequiredForEnableTPM, ppi.OperationSetPPRequiredForDisableTPM, ppi.OperationSetPPRequiredForChangeEPS: // Setting user confirmation as required shouldn't require user confirmation. return ppi.OperationPPNotRequired, nil case ppi.OperationClearPPRequiredForClearTPM, ppi.OperationClearPPRequiredForChangePCRs, ppi.OperationClearPPRequiredForEnableTPM, ppi.OperationClearPPRequiredForDisableTPM, ppi.OperationClearPPRequiredForChangeEPS: // Setting user confirmation as not required should require user confirmation. return ppi.OperationPPRequired, nil case ppi.OperationSetPCRBanks: flags = ppRequiredForChangePCRs case ppi.OperationChangeEPS: flags = ppRequiredForChangeEPS default: return ppi.OperationNotImplemented, nil } if p.Flags&flags > 0 { return ppi.OperationPPRequired, nil } return ppi.OperationPPNotRequired, nil } status := p.Config.OperationStatus(op) if status > ppi.OperationPPNotRequired { return 0, fmt.Errorf("invalid operation status %d", status) } return status, nil } func (p *efiPpiImpl) OperationResponse() (*ppi.OperationResponse, error) { pp, _, err := readPhysicalPresence(p.varsContext(context.Background())) if err != nil { return nil, err } if pp.LastPPRequest == 0 { return nil, nil } r := &ppi.OperationResponse{Operation: ppi.OperationId(pp.LastPPRequest)} if pp.LastPPResponse != 0 { r.Err = ppi.OperationError(pp.LastPPResponse) } return r, nil } func (p *efiPpiImpl) SupportsConfig() bool { return p.Config != nil } type PPIBackend interface { internal_ppi.PPIBackend SupportsConfig() bool } // NewBackend returns a new backend and the version number of the EFI physical presence interface. func NewBackend(customVars efi.VarsBackend) (PPIBackend, ppi.Version, error) { ctx := varsContext(context.Background(), customVars) var flags physicalPresenceFlags flagBytes, _, err := efi.ReadVariable(ctx, physicalPresenceFlagsName, physicalPresenceGuid) switch { case errors.Is(err, efi.ErrVarsUnavailable) || errors.Is(err, efi.ErrVarPermission) || errors.Is(err, efi.ErrVarNotExist): return nil, ppi.Version{}, ErrUnavailable case err != nil: return nil, ppi.Version{}, fmt.Errorf("cannot read %s variable: %w", physicalPresenceFlagsName, err) case len(flagBytes) < 4: return nil, ppi.Version{}, errors.New("cannot decode EFI_TCG2_PHYSICAL_PRESENCE_FLAGS: not enough bytes") default: flags = physicalPresenceFlags(binary.LittleEndian.Uint32(flagBytes[:])) } var config *physicalPresenceConfig var version ppi.Version configBytes, _, err := efi.ReadVariable(ctx, physicalPresenceConfigName, physicalPresenceGuid) switch { case errors.Is(err, efi.ErrVarsUnavailable) || errors.Is(err, efi.ErrVarPermission): return nil, ppi.Version{}, ErrUnavailable case errors.Is(err, efi.ErrVarNotExist): // EDK2 and the firmware on my (chrisccoulson's) XPS-15 9520 don't implement this. // The code in EDK2 pre-dates the draft v1.4 of the TCG PC Client Platform Physical // Presence Interface Specification. version = ppi.Version14 case err != nil: return nil, ppi.Version{}, fmt.Errorf("cannot read %s variable: %w", physicalPresenceConfigName, err) default: r := bytes.NewReader(configBytes) var structVersion uint32 if err := binary.Read(io.NewSectionReader(r, 0, 4), binary.LittleEndian, &structVersion); err != nil { if err == io.EOF { err = io.ErrUnexpectedEOF } return nil, ppi.Version{}, fmt.Errorf("cannot decode EFI_TCG2_PHYSICAL_PRESENCE_CONFIG.StructVersion: %w", err) } if structVersion != 1 { return nil, ppi.Version{}, ErrUnavailable } config = new(physicalPresenceConfig) if err := binary.Read(r, binary.LittleEndian, config); err != nil { if err == io.EOF { err = io.ErrUnexpectedEOF } return nil, ppi.Version{}, fmt.Errorf("cannot decode EFI_TCG2_PHYSICAL_PRESENCE_CONFIG: %w", err) } version, err = config.Version() if err != nil { return nil, ppi.Version{}, err } } return &efiPpiImpl{ CustomVars: customVars, Flags: flags, Config: config, }, version, nil } ./github.com/canonical/go-tpm2/internal/util/0000775000000000000000000000000000000000000016150 5ustar00./github.com/canonical/go-tpm2/internal/util/object.go0000664000000000000000000000764700000000000017763 0ustar00// Copyright 2021 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package util import ( "bytes" "crypto/hmac" "crypto/rand" "errors" "fmt" "hash" "io" "github.com/canonical/go-tpm2" internal_crypt "github.com/canonical/go-tpm2/internal/crypt" "github.com/canonical/go-tpm2/mu" ) // UnwrapOuter removes an outer wrapper from the supplied sensitive data blob. The // supplied name is associated with the data. // // It checks the integrity HMAC is valid using the specified digest algorithm and // a key derived from the supplied seed and returns an error if the check fails. // // It then decrypts the data blob using the specified symmetric algorithm and a // key derived from the supplied seed and name. func UnwrapOuter(hashAlg tpm2.HashAlgorithmId, symmetricAlg *tpm2.SymDefObject, name tpm2.Name, seed []byte, useIV bool, data []byte) ([]byte, error) { if !hashAlg.Available() { return nil, errors.New("digest algorithm is not available") } if symmetricAlg == nil || !symmetricAlg.Algorithm.IsValidBlockCipher() { return nil, errors.New("symmetric algorithm is not a valid block cipher") } r := bytes.NewReader(data) var integrity []byte if _, err := mu.UnmarshalFromReader(r, &integrity); err != nil { return nil, fmt.Errorf("cannot unmarshal integrity digest: %w", err) } data, _ = io.ReadAll(r) hmacKey := internal_crypt.KDFa(hashAlg.GetHash(), seed, []byte(tpm2.IntegrityKey), nil, nil, hashAlg.Size()*8) h := hmac.New(func() hash.Hash { return hashAlg.NewHash() }, hmacKey) h.Write(data) h.Write(name) if !bytes.Equal(h.Sum(nil), integrity) { return nil, errors.New("integrity digest is invalid") } r = bytes.NewReader(data) iv := make([]byte, symmetricAlg.Algorithm.BlockSize()) if useIV { if _, err := mu.UnmarshalFromReader(r, &iv); err != nil { return nil, fmt.Errorf("cannot unmarshal IV: %w", err) } if len(iv) != symmetricAlg.Algorithm.BlockSize() { return nil, errors.New("IV has the wrong size") } } data, _ = io.ReadAll(r) symKey := internal_crypt.KDFa(hashAlg.GetHash(), seed, []byte(tpm2.StorageKey), name, nil, int(symmetricAlg.KeyBits.Sym)) if err := internal_crypt.SymmetricDecrypt(symmetricAlg.Algorithm, symKey, iv, data); err != nil { return nil, fmt.Errorf("cannot decrypt: %w", err) } return data, nil } // ProduceOuterWrap adds an outer wrapper to the supplied data. The supplied name // is associated with the data. // // It encrypts the data using the specified symmetric algorithm and a key derived // from the supplied seed and name. // // It then prepends an integrity HMAC of the encrypted data and the supplied // name using the specified digest algorithm and a key derived from the supplied // seed. func ProduceOuterWrap(hashAlg tpm2.HashAlgorithmId, symmetricAlg *tpm2.SymDefObject, name tpm2.Name, seed []byte, useIV bool, data []byte) ([]byte, error) { if !hashAlg.Available() { return nil, errors.New("digest algorithm is not available") } if symmetricAlg == nil || !symmetricAlg.Algorithm.IsValidBlockCipher() { return nil, errors.New("symmetric algorithm is not a valid block cipher") } iv := make([]byte, symmetricAlg.Algorithm.BlockSize()) if useIV { if _, err := rand.Read(iv); err != nil { return nil, fmt.Errorf("cannot generate IV: %w", err) } } symKey := internal_crypt.KDFa(hashAlg.GetHash(), seed, []byte(tpm2.StorageKey), name, nil, int(symmetricAlg.KeyBits.Sym)) if err := internal_crypt.SymmetricEncrypt(symmetricAlg.Algorithm, symKey, iv, data); err != nil { return nil, fmt.Errorf("cannot encrypt: %w", err) } if useIV { data = mu.MustMarshalToBytes(iv, mu.RawBytes(data)) } hmacKey := internal_crypt.KDFa(hashAlg.GetHash(), seed, []byte(tpm2.IntegrityKey), nil, nil, hashAlg.Size()*8) h := hmac.New(func() hash.Hash { return hashAlg.NewHash() }, hmacKey) h.Write(data) h.Write(name) integrity := h.Sum(nil) return mu.MustMarshalToBytes(integrity, mu.RawBytes(data)), nil } ./github.com/canonical/go-tpm2/linux/0000775000000000000000000000000000000000000014516 5ustar00./github.com/canonical/go-tpm2/linux/device.go0000664000000000000000000004210400000000000016305 0ustar00// Copyright 2019 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package linux import ( "encoding/binary" "errors" "fmt" "io" "os" "path/filepath" "sort" "strconv" "strings" "sync" efi "github.com/canonical/go-efilib" "github.com/canonical/go-tpm2" internal_ppi "github.com/canonical/go-tpm2/internal/ppi" internal_ppi_efi "github.com/canonical/go-tpm2/internal/ppi_efi" "github.com/canonical/go-tpm2/mu" "github.com/canonical/go-tpm2/ppi" ) const ( devPath = "/dev" ) var ( // ErrDefaultNotTPM2Device indicates that the default device is not a TPM device. ErrDefaultNotTPM2Device = errors.New("the default TPM device is not a TPM2 device") // ErrNoPhysicalPresenceInterface indicates that there is no physical presence interface // available for a TPM device. ErrNoPhysicalPresenceInterface = errors.New("no physical presence interface available") // ErrNoResourceManagedDevice indicates that a TPM device has no corresponding resource // managed device. ErrNoResourceManagedDevice = errors.New("no resource managed TPM device available") // ErrNoTPMDevices indicates that there are no TPM devices. ErrNoTPMDevices = errors.New("no TPM devices are available") sysfsPath = "/sys" customEfiVars efi.VarsBackend ) type nonBlockingTpmFileReader struct { file *tpmFile } func (r *nonBlockingTpmFileReader) Read(data []byte) (int, error) { n, err := r.file.ReadNonBlocking(data) if n == 0 && err == nil { err = io.EOF } return n, err } type tpmDevices struct { once sync.Once devices []*DirectDevice err error } var devices tpmDevices // TctiDevice represents a connection to a Linux TPM character device. // // Deprecated: Use Transport type TctiDevice = Transport // TPMMajorVersion describes the major version of a TPM device. type TPMMajorVersion int const ( TPMVersion1 TPMMajorVersion = 1 TPMVersion2 TPMMajorVersion = 2 ) // TPMDevice represents a Linux TPM character device. // // Deprecated: use [Device]. type TPMDevice = Device // Device represents a Linux TPM character device. type Device struct { path string sysfsPath string version TPMMajorVersion prsOnce sync.Once devicePartialReadSupported bool mrsOnce sync.Once deviceMaxResponseSize uint32 } func (d *Device) partialReadSupported(f *os.File) bool { d.prsOnce.Do(func() { d.devicePartialReadSupported = func() bool { if f == nil { var err error f, err = os.OpenFile(d.path, os.O_RDWR, 0) if err != nil { return false } defer f.Close() } tf := &tpmFile{file: f} cmd := tpm2.MustMarshalCommandPacket( tpm2.CommandGetCapability, nil, nil, mu.MustMarshalToBytes(tpm2.CapabilityTPMProperties, tpm2.PropertyManufacturer, uint32(1)), ) if _, err := tf.Write(cmd); err != nil { return false } var rspHdr tpm2.ResponseHeader buf := make([]byte, binary.Size(rspHdr)) if _, err := io.ReadFull(tf, buf); err != nil { return false } if _, err := mu.UnmarshalFromBytes(buf, &rspHdr); err != nil { return false } if rspHdr.ResponseCode != tpm2.ResponseSuccess { return false } var moreData bool var capabilityData *tpm2.CapabilityData if _, err := mu.UnmarshalFromReader(&nonBlockingTpmFileReader{tf}, &moreData, &capabilityData); err != nil { return false } return true }() }) return d.devicePartialReadSupported } type dummyDevice struct { d *Device f *os.File } func (d *dummyDevice) Open() (tpm2.Transport, error) { return newTransport(&tpmFile{file: d.f}, false, maxResponseSize), nil } func (d *dummyDevice) String() string { return d.d.String() } func (d *Device) maxResponseSize(f *os.File) uint32 { d.mrsOnce.Do(func() { d.deviceMaxResponseSize = func() uint32 { tpm, err := tpm2.OpenTPMDevice(&dummyDevice{d: d, f: f}) if err != nil { return maxResponseSize } sz, err := tpm.GetCapabilityTPMProperty(tpm2.PropertyMaxResponseSize) if err != nil { return maxResponseSize } return sz }() }) return d.deviceMaxResponseSize } func (d *Device) openInternal() (*Transport, error) { f, err := os.OpenFile(d.path, os.O_RDWR, 0) if err != nil { return nil, err } partialReadSupported := d.partialReadSupported(f) var maxResponseSize uint32 if !partialReadSupported { maxResponseSize = d.maxResponseSize(f) } return newTransport(&tpmFile{file: f}, partialReadSupported, maxResponseSize), nil } // Path returns the path of the character device. func (d *Device) Path() string { return d.path } // SysfsPath returns the path of the device in sysfs. func (d *Device) SysfsPath() string { return d.sysfsPath } // MajorVersion indicates the TPM version. func (d *Device) MajorVersion() TPMMajorVersion { return d.version } // PartialReadSupported indicates whether the TPM character device supports // partial reads. func (d *Device) PartialReadSupported() bool { return d.partialReadSupported(nil) } // Open implements [tpm2.TPMDevice.Open]. The returned transport cannot be used from multiple // goroutines simultaneously. func (d *Device) Open() (tpm2.Transport, error) { return d.openInternal() } // String implements [fmt.Stringer]. func (d *Device) String() string { return "linux TPM character device: " + d.path } // TPMDeviceRaw represents a raw Linux TPM character device. // // Deprecated: use [DirectDevice]. type TPMDeviceRaw = DirectDevice // RawDevice represents a raw Linux TPM character device. // // Deprecated: use [DirectDevice]. type RawDevice = DirectDevice // DirectDevice represents a direct Linux TPM character device. These devices don't // use the kernel's resource manager. It is safe to use this from multiple goroutines // simultaneously. type DirectDevice struct { Device devno int ppiOnce sync.Once ppi ppi.PPI ppiErr error rmOnce sync.Once rm *RMDevice rmErr error } // PhysicalPresenceInterface returns the physical presence interface associated // with this device. This will return the EFI implementation if it's supported, else // it will return the ACPI implementation that is exposed via sysfs if supported. // If no implementation is supported, an [ErrNoPhysicalPresenceInterface] error // will be returned. Calling this function will always return either a pointer to // the same interface or the same error for the lifetime of a process. func (d *DirectDevice) PhysicalPresenceInterface() (ppi.PPI, error) { d.ppiOnce.Do(func() { d.ppi, d.ppiErr = func() (ppi.PPI, error) { requestedPpiType, requestedPpiTypeSet := loadForcedPpiType() var ( efiPpi ppi.PPI efiErr error = ErrNoPhysicalPresenceInterface ) if !requestedPpiTypeSet || requestedPpiType == ppi.EFI { // Try to instantiate the EFI PPI implementation first. Linux only associates // the ACPI PPI exposed via sysfs to TPM devices that have a corresponding // node in the ACPI device tree. We'll implement the same behaviour for the // EFI PPI - it will only be accessible from TPM device instances that have a // node in the device tree. _, efiErr = os.Stat(filepath.Join(d.sysfsPath, "device", "firmware_node")) switch { case errors.Is(efiErr, os.ErrNotExist) || errors.Is(efiErr, os.ErrPermission): efiErr = ErrNoPhysicalPresenceInterface case efiErr != nil: efiErr = fmt.Errorf("cannot test whether TPM device is linked to a device tree node: %w", efiErr) default: var backend internal_ppi_efi.PPIBackend var version ppi.Version backend, version, efiErr = internal_ppi_efi.NewBackend(customEfiVars) switch { case errors.Is(efiErr, internal_ppi_efi.ErrUnavailable): // EFI PPI is unavailable. Fall through to trying ACPI PPI. efiErr = ErrNoPhysicalPresenceInterface case efiErr != nil: // Instantiating EFI PPI failed with an unexpected error. // Do nothing with this error - it will be wrapped below. // Fall through to trying ACPI PPI. case backend.SupportsConfig(): // Use the EFI PPI implementation return internal_ppi.New(ppi.EFI, version, backend), nil default: // The EFI PPI implementation doesn't support Tcg2PhysicalPresenceConfig. // Save it for now, and only use it if we can't use the ACPI PPI // implementation. efiPpi = internal_ppi.New(ppi.EFI, version, backend) } } } var acpiErr error = ErrNoPhysicalPresenceInterface if !requestedPpiTypeSet || requestedPpiType == ppi.ACPI { // Try to instantiate the ACPI PPI implementation that's exposed via sysfs. var backend *acpiPpiImpl backend, acpiErr = newAcpiPpi(filepath.Join(d.sysfsPath, "ppi")) switch { case errors.Is(acpiErr, os.ErrNotExist) || errors.Is(acpiErr, os.ErrPermission): // ACPI PPI is unavailable. acpiErr = ErrNoPhysicalPresenceInterface case acpiErr != nil: // Instantiating ACPI PPI failed with an unexpected error. // Do nothing with this error - it will be wrapped below. default: // Use the ACPI PPI implementation. return internal_ppi.New(ppi.ACPI, backend.Version, backend), nil } } if efiPpi != nil { // We can't use the ACPI PPI implementation, but we can use the EFI PPI // implementation with the caveat that it doesn't support // Tcg2PhysicalPresenceConfig, so just return that. return efiPpi, nil } // Instantiating a PPI instance failed, so handle the errors here. switch { case acpiErr == ErrNoPhysicalPresenceInterface && efiErr == ErrNoPhysicalPresenceInterface: // Both PPI implementations are unavailable. return nil, ErrNoPhysicalPresenceInterface case efiErr == ErrNoPhysicalPresenceInterface: // The EFI implementation is unavailable and the ACPI implementation returned an // unexpected error. Return the ACPI error. return nil, fmt.Errorf("no EFI PPI available and cannot initialize ACPI PPI backend: %w", acpiErr) case acpiErr == ErrNoPhysicalPresenceInterface: // The ACPI implementation is unavailable and the EFI implementation returned an // unexpected error. Return the EFI error. return nil, fmt.Errorf("no ACPI PPI available and cannot initialize EFI PPI backend: %w", efiErr) default: // Both implementations returned an unexpected error. Return both errors. // TODO: Use errors.Join when we can depend on go1.20. For now, we'll // return both errors without any wrapping. return nil, fmt.Errorf("cannot initialize EFI PPI backend: %v\ncannot initialize ACPI PPI backend: %v", efiErr, acpiErr) } }() }) return d.ppi, d.ppiErr } // ResourceManagedDevice returns the corresponding resource managed device if one // is available. If there isn't one, a [ErrNoResourceManagedDevice] error is returned. // Calling this function will always return either a pointer to the same interface or // the same error for the lifetime of a process. func (d *DirectDevice) ResourceManagedDevice() (*RMDevice, error) { d.rmOnce.Do(func() { d.rm, d.rmErr = func() (*RMDevice, error) { if d.version != TPMVersion2 { // the kernel resource manager is only available for TPM2 devices. return nil, ErrNoResourceManagedDevice } base := fmt.Sprintf("tpmrm%d", d.devno) sysfsPath, err := filepath.EvalSymlinks(filepath.Join(d.sysfsPath, "device/tpmrm", base)) switch { case os.IsNotExist(err): // the kernel is probably too old return nil, ErrNoResourceManagedDevice case err != nil: return nil, err default: return &RMDevice{ Device: Device{ path: filepath.Join(devPath, base), sysfsPath: sysfsPath, version: d.version}, raw: d}, nil } }() }) return d.rm, d.rmErr } // TPMDeviceRM represents a Linux TPM character device that makes use of the kernel // resource manager. // // Deprecated: use [RMDevice]. type TPMDeviceRM = RMDevice // RMDevice represents a Linux TPM character device that makes use of the kernel // resource manager. It is safe to use this from multiple goroutines simultaneously. type RMDevice struct { Device raw *DirectDevice } // DirectDevice returns the corresponding direct device. func (d *RMDevice) DirectDevice() *DirectDevice { return d.raw } // RawDevice returns the corresponding raw device. // // Deprecated: use DirectDevice. func (d *RMDevice) RawDevice() *RawDevice { return d.raw } // OpenDevice attempts to open a connection to the Linux TPM character device at // the specified path. If successful, it returns a new Transport instance which // can be passed to tpm2.NewTPMContext. Failure to open the TPM character device // will result in a *os.PathError being returned. // // Deprecated: Use [DirectDevice] and [RMDevice]. func OpenDevice(path string) (*Transport, error) { device := &Device{path: path} tcti, err := device.openInternal() if err != nil { return nil, err } s, err := tcti.statter.Stat() if err != nil { tcti.Close() return nil, err } if s.Mode()&os.ModeDevice == 0 { tcti.Close() return nil, fmt.Errorf("unsupported file mode %v", s.Mode()) } return tcti, nil } func tpmDeviceVersion(path string) (TPMMajorVersion, error) { versionPath := filepath.Join(path, "tpm_version_major") versionBytes, err := os.ReadFile(versionPath) switch { case os.IsNotExist(err): // Handle older kernels that didn't have this attribute file. There were no other // sysfs attributes for TPM2 devices when this was introduced, so detect the // presence of a TPM1.2 device by testing that a known attribute file exists. // This attribute exists for as far as I can check back in the kernel git tree. _, err := os.Stat(filepath.Join(path, "pcrs")) switch { case os.IsNotExist(err): return TPMVersion2, nil case err != nil: return 0, err default: return TPMVersion1, nil } case err != nil: return 0, err default: version, err := strconv.Atoi(strings.TrimSpace(string(versionBytes))) if err != nil { return 0, err } switch version { case 1, 2: return TPMMajorVersion(version), nil default: return 0, fmt.Errorf("unexpected version %d", version) } } } func probeTpmDevices() (out []*DirectDevice, err error) { class := filepath.Join(sysfsPath, "class/tpm") f, err := os.Open(class) if err != nil { if os.IsNotExist(err) { return nil, nil } return nil, err } defer f.Close() entries, err := f.ReadDir(0) if err != nil { return nil, err } for _, entry := range entries { var devno int if _, err := fmt.Sscanf(entry.Name(), "tpm%d", &devno); err != nil { return nil, fmt.Errorf("unexpected name \"%s\": %w", entry.Name(), err) } sysfsPath, err := filepath.EvalSymlinks(filepath.Join(class, entry.Name())) if err != nil { return nil, fmt.Errorf("cannot resolve path for \"%s\": %w", entry.Name(), err) } version, err := tpmDeviceVersion(sysfsPath) if err != nil { return nil, fmt.Errorf("cannot determine version of TPM device at %s: %w", sysfsPath, err) } out = append(out, &DirectDevice{ Device: Device{ path: filepath.Join(devPath, entry.Name()), sysfsPath: sysfsPath, version: version}, devno: devno, }) } sort.Slice(out, func(i, j int) bool { return out[i].devno < out[j].devno }) return out, nil } // ListTPMDevices returns a list of all TPM devices. Note that this returns all // devices, regardless of version. Calling this function always returns the same // slice or the same error for the lifetime of a process. It is safe to call this // function from multiple goroutines simultaneously. func ListTPMDevices() (out []*DirectDevice, err error) { devices.once.Do(func() { devices.devices, devices.err = probeTpmDevices() }) return devices.devices, devices.err } // ListTPMDevices returns a list of all TPM2 devices. Calling this function always // returns the same slice or the same error for the lifetime of a process. It is // safe to call this function from multiple goroutines simultaneously. func ListTPM2Devices() (out []*DirectDevice, err error) { candidates, err := ListTPMDevices() if err != nil { return nil, err } for _, device := range candidates { if device.MajorVersion() != TPMVersion2 { continue } out = append(out, device) } return out, err } // DefaultTPMDevice returns the default TPM device. If there are no devices // available, then [ErrNoTPMDevices] is returned. Calling this function always // returns a pointer to the same device or the same error for the lifetime of // a process. It is safe to call this function from multiple goroutines // simultaneously. func DefaultTPMDevice() (*DirectDevice, error) { devices, err := ListTPMDevices() if err != nil { return nil, err } if len(devices) == 0 { return nil, ErrNoTPMDevices } return devices[0], nil } // DefaultTPM2Device returns the default TPM2 device. If there are no devices // available, then [ErrNoTPMDevices] is returned. If the default TPM device is // not a TPM2 device, then [ErrDefaultNotTPM2Device] is returned. Calling this // function always returns a pointer to the same device or the same error for the // lifetime of a process. It is safe to call this function from multiple goroutines // simultaneously. func DefaultTPM2Device() (*DirectDevice, error) { device, err := DefaultTPMDevice() if err != nil { return nil, err } if device.MajorVersion() != TPMVersion2 { return nil, ErrDefaultNotTPM2Device } return device, nil } ./github.com/canonical/go-tpm2/linux/file.go0000664000000000000000000001416700000000000015775 0ustar00// Copyright 2019-2024 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package linux import ( "io" "os" "syscall" ) // The TPM character device's read and poll implementations are a bit funky, in a way that // doesn't play nicely with go's netpoller. The read() implementation can return 0 instead of // -EWOULDBLOCK when there is no response ready to read. This is a problem because go's // internal/poll will attempt to read before waiting, which means that the os.File.Read() // implementation just returns io.EOF when it should park the routine and poll the device // descriptor instead. // // To work around this, we use raw read and write system calls via the syscall.RawConn // implementation provided by os.File. The read and write callbacks provided to these return // a boolean which indicates whether the operation should complete, or whether the operation // should block and poll the descriptor to become ready. // // In the read case, we perform a read and then block and poll the device if this read returned // no errors and zero bytes, before performing another read whenever the device becomes ready in // the future. // // Note that the read() system call can block until the current command completes, even in // non-blocking mode, if we call it whilst the kernel's TPM async worker is dispatching the // command. This is because both reading and command dispatching take a lock on the // command/response buffer. Ideally we would work around this by polling before reading, but // this doesn't work properly because go's netpoller uses epoll with edge-triggered polling, // so polling before reading can result in the routine becoming permanently blocked. // // Polling can also block for the same reason (the poll implementation for the TPM character // device also locks the command/response buffer). As the poll implementation blocks before the // system call would normally suspend the current task in the VFS layer, this means that polling // can potentially ignore any specified timeout if it is called whilst a TPM command is being // dispatched. // // We never block and poll the device in the write case. Although the write() implementation // will return -EBUSY if there is a response waiting to be read from the device, it's not // possible to poll the device to wait for it to become ready for writing because there is // nothing in the read() implementation that will wake a sleeping task when the device becomes // ready for writing. func ignoringEINTR(fn func() (int, error)) (int, error) { for { n, err := fn() if err != syscall.EINTR { return n, err } } } type tpmFile struct { file *os.File } func (f *tpmFile) wrapErr(op string, err error) error { if err == nil || err == io.EOF { return err } return &os.PathError{ Op: op, Path: f.file.Name(), Err: err} } func (f *tpmFile) ReadNonBlocking(data []byte) (n int, err error) { conn, err := f.file.SyscallConn() if err != nil { return 0, err } var readErr error if err := conn.Read(func(fd uintptr) bool { n, readErr = ignoringEINTR(func() (int, error) { return syscall.Read(int(fd), data) }) return true }); err != nil { // The only errors that can be returned from this are poll.ErrFileClosing, // os.ErrDeadlineExceeded and poll.ErrNotPollable. However: // - We are not setting a deadline, so we won't see os.ErrDeadlineExceeded. // - We aren't requesting the current goroutine to wait, so we won't see poll.ErrNotPollable. // Therefore, assume that the error is poll.ErrFileClosing, which is private. return n, f.wrapErr("read", os.ErrClosed) } return n, f.wrapErr("read", readErr) } func (f *tpmFile) Read(data []byte) (n int, err error) { conn, err := f.file.SyscallConn() if err != nil { return 0, err } var readErr error if err := conn.Read(func(fd uintptr) bool { n, readErr = ignoringEINTR(func() (int, error) { return syscall.Read(int(fd), data) }) return n > 0 }); err != nil { // The only errors that can be returned from this are poll.ErrFileClosing, // os.ErrDeadlineExceeded and poll.ErrNotPollable. However: // - We are not setting a deadline, so we won't see os.ErrDeadlineExceeded. // - Although we are requesting the current goroutine to park if the fd isn't // ready, we should only see poll.ErrNotPollable if the opened fd was // pollable when it was opened but no longer is, which shouldn't happen. If // the fd isn't pollable when it's opened, it won't be registered with the // netpoller. In this case, the fd will be in blocking mode anyway, and so // we won't request the current goroutine to park. // Therefore, assume that the error is poll.ErrFileClosing, which is private. return n, f.wrapErr("read", os.ErrClosed) } return n, f.wrapErr("read", readErr) } func (f *tpmFile) Write(data []byte) (n int, err error) { conn, err := f.file.SyscallConn() if err != nil { return 0, err } var writeErr error if err := conn.Write(func(fd uintptr) bool { n, writeErr = ignoringEINTR(func() (int, error) { return syscall.Write(int(fd), data) }) return true }); err != nil { // The only errors that can be returned from this are poll.ErrFileClosing, // os.ErrDeadlineExceeded and poll.ErrNotPollable. However: // - We are not setting a deadline, so we won't see os.ErrDeadlineExceeded. // - Although we are requesting the current goroutine to park if the fd isn't // ready, we should only see poll.ErrNotPollable if the opened fd was // pollable when it was opened but no longer is, which shouldn't happen. If // the fd isn't pollable when it's opened, it won't be registered with the // netpoller. In this case, the fd will be in blocking mode anyway, and so // we won't request the current goroutine to park. // Therefore, assume that the error is poll.ErrFileClosing, which is private. return 0, f.wrapErr("write", os.ErrClosed) } if n < len(data) && writeErr == nil { writeErr = io.ErrShortWrite } return n, f.wrapErr("write", writeErr) } func (f *tpmFile) Close() error { return f.file.Close() } func (f *tpmFile) Stat() (os.FileInfo, error) { return f.file.Stat() } func (f *tpmFile) Len() int { return 0 } ./github.com/canonical/go-tpm2/linux/linux.go0000664000000000000000000000036600000000000016211 0ustar00// Copyright 2019 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. /* Package linux provides an interface for communicating with TPMs using a Linux TPM character device */ package linux ./github.com/canonical/go-tpm2/linux/ppi.go0000664000000000000000000000406200000000000015637 0ustar00// Copyright 2025 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package linux import ( "sync/atomic" "github.com/canonical/go-tpm2/ppi" ) var ( forcedPpiType uint32 ) const ( forcePpiTypeSet uint32 = 1 << 30 forcePpiTypeLocked uint32 = 1 << 31 ) // ForcePPIType can be used to force the PPI implementation that is returned from // [DirectDevice.PhysicalPresenceInterface] on any device. This will panic if it is // called after [DirectDevice.PhysicalPresenceInterface] has been called for any device. // If the forced PPI implementation isn't available, then any calls to // [DirectDevice.PhysicalPresenceInterface] will return an error rather than falling // back to an available implementation. func ForcePPIType(ppiType ppi.Type) { for { val := atomic.LoadUint32(&forcedPpiType) if val&forcePpiTypeLocked > 0 { // This happens once loadForcedPpiType has been called. panic("cannot call ForcePPIType once DirectDevice.PhysicalPresenceInterface has been called for any device") } // Update forcedPpiType atomically to reflect that this function // has been called and to store the type that was requested. newval := forcePpiTypeSet | uint32(ppiType) if atomic.CompareAndSwapUint32(&forcedPpiType, val, newval) { break } // We raced with another caller or a caller of loadForcedPpiType, // so try again. } } func loadForcedPpiType() (ppiType ppi.Type, set bool) { for { val := atomic.LoadUint32(&forcedPpiType) if val&forcePpiTypeSet > 0 { // ForcePPIType has been called. ppiType = ppi.Type(val & 0x3) set = true } if val&forcePpiTypeLocked > 0 { // This function has already been called, so there // will be no more updates to forcedPpiType. break } // Update forcedPpiType to indicate that it should no longer // be modified. newval := val | forcePpiTypeLocked if atomic.CompareAndSwapUint32(&forcedPpiType, val, newval) { break } // We raced with another caller or a caller of ForcePPIType, // so try again. } return ppiType, set } ./github.com/canonical/go-tpm2/linux/ppi_acpi.go0000664000000000000000000000776600000000000016651 0ustar00// Copyright 2023 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package linux import ( "bufio" "errors" "fmt" "os" "path/filepath" "strconv" "strings" "sync" "syscall" "github.com/canonical/go-tpm2/ppi" ) type acpiPpiImpl struct { sysfsPath string Version ppi.Version opsOnce sync.Once ops map[ppi.OperationId]ppi.OperationStatus opsError error } func (p *acpiPpiImpl) SubmitOperation(op ppi.OperationId, arg *uint32) error { if arg != nil && p.Version.Compare(ppi.Version13) < 0 { return ppi.ErrOperationUnsupported } f, err := os.OpenFile(filepath.Join(p.sysfsPath, "request"), os.O_WRONLY, 0) switch { case errors.Is(err, os.ErrPermission): return ppi.ErrPermission case err != nil: return err } defer f.Close() cmd := strconv.FormatUint(uint64(op), 10) if arg != nil { cmd += " " + strconv.FormatUint(uint64(*arg), 10) } _, err = f.WriteString(cmd) switch { case errors.Is(err, os.ErrPermission): return ppi.ErrOperationUnsupported case errors.Is(err, syscall.EFAULT): return ppi.ErrOperationFailed default: return err } } func (p *acpiPpiImpl) StateTransitionAction() (ppi.StateTransitionAction, error) { actionBytes, err := os.ReadFile(filepath.Join(p.sysfsPath, "transition_action")) if err != nil { return 0, err } var action ppi.StateTransitionAction var dummy string if _, err := fmt.Sscanf(string(actionBytes), "%d:%s\n", &action, &dummy); err != nil { return 0, fmt.Errorf("cannot scan transition action %q: %w", string(actionBytes), err) } if action > ppi.StateTransitionActionOSVendorSpecific { return 0, fmt.Errorf("invalid transition action %d", action) } return action, nil } func (p *acpiPpiImpl) OperationStatus(op ppi.OperationId) (ppi.OperationStatus, error) { p.opsOnce.Do(func() { p.ops, p.opsError = func() (map[ppi.OperationId]ppi.OperationStatus, error) { opsFile, err := os.OpenFile(filepath.Join(p.sysfsPath, "tcg_operations"), os.O_RDONLY, 0) if err != nil { return nil, err } defer opsFile.Close() ops := make(map[ppi.OperationId]ppi.OperationStatus) scanner := bufio.NewScanner(opsFile) for scanner.Scan() { var op ppi.OperationId var status ppi.OperationStatus if _, err := fmt.Sscanf(scanner.Text(), "%d%d", &op, &status); err != nil { return nil, fmt.Errorf("cannot scan operation \"%s\": %w", scanner.Text(), err) } ops[op] = status } switch { case errors.Is(scanner.Err(), syscall.EPERM): return nil, ppi.ErrOperationUnsupported case scanner.Err() != nil: return nil, err } return ops, nil }() }) if p.opsError != nil { return 0, p.opsError } status, implemented := p.ops[op] if !implemented { return ppi.OperationNotImplemented, nil } if status > ppi.OperationPPNotRequired { return 0, fmt.Errorf("invalid operation status %d", status) } return status, nil } func (p *acpiPpiImpl) OperationResponse() (*ppi.OperationResponse, error) { rspBytes, err := os.ReadFile(filepath.Join(p.sysfsPath, "response")) switch { case errors.Is(err, syscall.EFAULT): return nil, ppi.ErrOperationFailed case err != nil: return nil, err } rsp := string(rspBytes) var arg1, arg2 uint32 if _, err := fmt.Sscanf(rsp, "%d", &arg1); err != nil { return nil, fmt.Errorf("cannot scan response %q: %w", rsp, err) } if arg1 == 0 { return nil, nil } if _, err := fmt.Sscanf(rsp, "%d%v:", &arg1, &arg2); err != nil { return nil, fmt.Errorf("cannot scan response %q: %w", rsp, err) } r := &ppi.OperationResponse{Operation: ppi.OperationId(arg1)} if arg2 != 0 { r.Err = ppi.OperationError(arg2) } return r, nil } func newAcpiPpi(path string) (*acpiPpiImpl, error) { versionBytes, err := os.ReadFile(filepath.Join(path, "version")) if err != nil { return nil, err } version, err := ppi.ParseVersion(strings.TrimSpace(string(versionBytes))) if err != nil { return nil, fmt.Errorf("cannot parse version: %w", err) } return &acpiPpiImpl{ sysfsPath: path, Version: version, }, nil } ./github.com/canonical/go-tpm2/linux/transport.go0000664000000000000000000000367700000000000017116 0ustar00// Copyright 2019 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package linux import ( "errors" "io" "os" "syscall" "github.com/canonical/go-tpm2" "github.com/canonical/go-tpm2/transportutil" ) const ( maxCommandSize = 4096 maxResponseSize = 4096 ) type fileStatter interface { Stat() (os.FileInfo, error) } // Tcti represents a connection to a Linux TPM character device. // // Deprecated: Use [Transport]. type Tcti = Transport // Transport represents a connection to a Linux TPM character device. It is not intended to be // used from multiple goroutines simultaneously. type Transport struct { r transportutil.ResponseBuffer w io.Writer closer io.Closer statter fileStatter } func newTransport(file *tpmFile, partialReadSupported bool, maxResponseSize uint32) *Transport { var r transportutil.ResponseBuffer = file if !partialReadSupported { r = transportutil.BufferResponses(r, maxResponseSize) } return &Transport{ r: r, w: transportutil.BufferCommands(file, maxCommandSize), closer: file, statter: file, } } // Read implmements [tpm2.Transport]. func (d *Transport) Read(data []byte) (int, error) { n, err := d.r.Read(data) if err != nil && errors.Is(err, os.ErrClosed) { return n, transportutil.ErrClosed } return n, err } // Write implmements [tpm2.Transport]. func (d *Transport) Write(data []byte) (int, error) { if d.r.Len() > 0 { return 0, tpm2.ErrTransportBusy } n, err := d.w.Write(data) if err != nil { switch { case errors.Is(err, os.ErrClosed): return n, transportutil.ErrClosed case errors.Is(err, syscall.Errno(syscall.EBUSY)): return n, transportutil.ErrBusy } } return n, err } // Close implements [tpm2.Transport.Close]. func (d *Transport) Close() error { if err := d.closer.Close(); err != nil { if errors.Is(err, os.ErrClosed) { return transportutil.ErrClosed } return err } return nil } ./github.com/canonical/go-tpm2/mu/0000775000000000000000000000000000000000000014000 5ustar00./github.com/canonical/go-tpm2/mu/doc.go0000664000000000000000000000627500000000000015106 0ustar00/* Package mu contains functions for marshalling go values to and unmarshalling them from the TPM wire format. Go types are marshalled to and from the TPM wire format according to the following rules: - UINT8 <-> uint8 - BYTE <-> byte - INT8 <-> int8 - BOOL <-> bool - UINT16 <-> uint16 - INT16 <-> int16 - UINT32 <-> uint32 - INT32 <-> int32 - UINT64 <-> uint64 - INT64 <-> int64 - TPM2B prefixed types (sized buffers with a 2-byte size field) have 2 representations in go: 1. []byte, or any type with an identical underlying type. A zero sized value is unmarshalled to nil. 2. Pointer to a struct, either referenced from a field with the `tpm2:"sized"` tag or wrapped with the Sized() function. A zero sized value is represented as a nil pointer. - TPMA prefixed types (attributes) <-> whichever go type corresponds to the underlying TPM type (UINT8, UINT16, or UINT32). - TPM_ALG_ID (algorithm enum) <-> uint16 - TPML prefixed types (lists with a 4-byte length field) <-> slice of whichever go type corresponds to the underlying TPM type. Zero length lists are unmarshalled to nil. - TPMS prefixed types (structures) <-> struct - TPMT prefixed types (tagged union) <-> struct with at least one member that is a struct or pointer to a struct that represents a union. The first member is the selector field unless overridden on the union member with the `tpm2:"selector:"` tag. - TPMU prefixed types (unions) <-> struct which implements the Union interface. The default selector field can be overridden by using the `tpm2:"selector:"` tag. TPMI prefixed types (interface types) are generally not explicitly supported. These are used by the TPM for type checking during unmarshalling, but this package doesn't distinguish between TPMI prefixed types with the same underlying type. Byte array types are supported and are marshalled to and from a fixed size bytes sequence. No other array types are supported. Pointers are automatically dererenced during marshalling and unmarshalling. The marshalling code parses the "tpm2" tag on struct fields, the value of which is a comma separated list of options. These options are: - sized1 - the field is a variable sized buffer with a single byte size field, used to support the TPMS_PCR_SELECT type. This is only valid for byte slice fields. - ignore - the field is ignored by this package. - selector: - override the default selector field on a field to a structure that represents a union. The default behaviour without this option is to use the first field as the selector. It is invalid to use this on any field that isn't a structure or pointer to a structure that represents a union. - sized - turns a pointer to a structure into a sized (TPM2B) type. A zero sized structure is represented by a nil pointer. It is invalid to use this on any field that isn't a pointer to a structure. - raw - turns a slice into a raw type so that it is marshalled and unmarshalled without a size or length field. The slice must be pre-allocated to the correct length by the caller during unmarshalling. This is only valid for slice fields. */ package mu ./github.com/canonical/go-tpm2/mu/mu.go0000664000000000000000000011532600000000000014760 0ustar00// Copyright 2019 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package mu import ( "bytes" "encoding/binary" "errors" "fmt" "io" "math" "reflect" "runtime" "strings" ) const ( // maxListLength is the maximum theoretical length of a TPML type that can be // supported, although no lists are this long in practise. TPML types have a // uint32 length field and are represented in go as slices. The length of a // slice is represented as a go int, which is either 32-bit or 64-bit, so set // the maximum to the highest number that can be represented by an int32 maxListLength = math.MaxInt32 ) var ( sized1BytesType reflect.Type = reflect.TypeOf(Sized1Bytes(nil)) customMarshallerType reflect.Type = reflect.TypeOf((*customMarshallerIface)(nil)).Elem() customUnmarshallerType reflect.Type = reflect.TypeOf((*customUnmarshallerIface)(nil)).Elem() nilValueType reflect.Type = reflect.TypeOf(NilUnionValue) rawBytesType reflect.Type = reflect.TypeOf(RawBytes(nil)) unionType reflect.Type = reflect.TypeOf((*Union)(nil)).Elem() ) // InvalidSelectorError may be returned as a wrapped error from [UnmarshalFromBytes] or // [UnmarshalFromReader] when a union type indicates that a selector value is invalid. type InvalidSelectorError struct { Selector reflect.Value } func (e *InvalidSelectorError) Error() string { return fmt.Sprintf("invalid selector value: %v", e.Selector) } type customMarshallerIface interface { Marshal(w io.Writer) error } type customUnmarshallerIface interface { Unmarshal(r io.Reader) error } // CustomMarshaller is implemented by types that require custom marshalling // behaviour because they are non-standard and not directly supported by this // package. // // If the implementation makes a recursive call in to this package, it should // return errors from any recursive call without wrapping. This allows the full // context of the error to be surfaced from the originating call. type CustomMarshaller interface { // Marshal should serialize the value to the supplied writer. // The implementation of this should take a value receiver, but if // it takes a pointer receiver then the value must be addressable. Marshal(w io.Writer) error // Unmarshal should unserialize the value from the supplied reader. // The implementation of this should take a pointer receiver. Unmarshal(r io.Reader) error } var _ CustomMarshaller = struct { customMarshallerIface customUnmarshallerIface }{} type empty struct{} // NilUnionValue is a special value, the type of which should be returned from implementations // of [Union].Select to indicate that a union contains no data for a particular selector value. var NilUnionValue empty // RawBytes is a special byte slice type which is marshalled and unmarshalled without a // size field. The slice must be pre-allocated to the correct length by the caller during // unmarshalling. type RawBytes []byte // Sized1Bytes is a special byte slice which is marshalled and unmarhalled with a // single byte size field. This is to faciliate the TPMS_PCR_SELECT type, which // looks like any other variable sized type (TPML and TPM2B types) with a size // field and variable sized payload, only TPMS_PCR_SELECT has a single byte size // field. type Sized1Bytes []byte type wrappedValue struct { value interface{} opts *options } // Raw converts the supplied value, which should be a slice, to a raw slice. // A raw slice is one that is marshalled without a corresponding size or // length field. // // To unmarshal a raw slice, the supplied value must be a pointer to the // preallocated destination slice. func Raw(val interface{}) *wrappedValue { return &wrappedValue{value: val, opts: &options{raw: true}} } // Sized converts the supplied value to a sized value. // // To marshal a sized value, the supplied value must be a pointer to the actual // value. // // To unmarshal a sized value, the supplied value must be a pointer to the // destination pointer that will point to the unmarshalled value. func Sized(val interface{}) *wrappedValue { return &wrappedValue{value: val, opts: &options{sized: true}} } // Union is implemented by structure types that correspond to TPMU prefixed TPM types. // A struct that contains a union member automatically becomes a tagged union. The // selector field is the first member of the tagged union, unless overridden with the // `tpm2:"selector:"` tag. // // Go doesn't have support for unions - TPMU types must be implemented with // a struct that contains a field for each possible value. // // Implementations of this must be addressable when marshalling. type Union interface { // Select is called by this package to map the supplied selector value // to a field. The returned value must be a pointer to the selected field. // For this to work correctly, implementations must take a pointer receiver. // // If the supplied selector value maps to no data, return NilUnionValue. // // If nil is returned, this is interpreted as an error. Select(selector reflect.Value) interface{} } type containerNode struct { value reflect.Value custom bool index int sized bool entry [1]uintptr } type containerStack []containerNode func (s containerStack) push(node containerNode) containerStack { return append(s, node) } func (s containerStack) pop() containerStack { return s[:len(s)-1] } func (s containerStack) top() *containerNode { return &s[len(s)-1] } func (s containerStack) String() string { str := new(bytes.Buffer) str.WriteString("=== BEGIN STACK ===\n") for i := len(s) - 1; i >= 0; i-- { switch { case s[i].custom && s[i].entry != [1]uintptr{0}: frames := runtime.CallersFrames(s[i].entry[:]) frame, _ := frames.Next() fmt.Fprintf(str, "... %s location %s:%d, argument %d\n", s[i].value.Type(), frame.File, frame.Line, s[i].index) case s[i].custom: fmt.Fprintf(str, "... %s\n", s[i].value.Type()) case s[i].value.Kind() == reflect.Struct: fmt.Fprintf(str, "... %s field %s\n", s[i].value.Type(), s[i].value.Type().Field(s[i].index).Name) case s[i].value.Kind() == reflect.Slice: fmt.Fprintf(str, "... %s index %d\n", s[i].value.Type(), s[i].index) default: panic("unsupported kind") } } str.WriteString("=== END STACK ===\n") return str.String() } // Error is returned from any function in this package to provide context // of where an error occurred. type Error struct { // Index indicates the argument on which this error occurred. Index int Op string entry [1]uintptr stack containerStack leafType reflect.Type err error } func (e *Error) Error() string { s := new(bytes.Buffer) fmt.Fprintf(s, "cannot %s argument %d whilst processing element of type %s: %v", e.Op, e.Index, e.leafType, e.err) if len(e.stack) != 0 { fmt.Fprintf(s, "\n\n%s", e.stack) } return s.String() } func (e *Error) Unwrap() error { return e.err } // Type returns the type of the value on which this error occurred. func (e *Error) Type() reflect.Type { return e.leafType } // Depth returns the depth of the value on which this error occurred. func (e *Error) Depth() int { return len(e.stack) } // Container returns the type of the container at the specified depth. // // If the returned type is a structure, the returned index corresponds // to the index of the field in that structure. // // If the returned type is a slice, the returned index corresponds to // the index in that slice. // // If the returned type implements the [CustomMarshaller] interface, the // returned index corresponds to the argument index in the recursive call // in to one of the marshalling or unmarshalling APIs. The returned frame // indicates where this recursive call originated from. func (e *Error) Container(depth int) (containerType reflect.Type, index int, entry runtime.Frame) { var frame runtime.Frame if e.stack[depth].entry != [1]uintptr{0} { frames := runtime.CallersFrames(e.stack[depth].entry[:]) frame, _ = frames.Next() } return e.stack[depth].value.Type(), e.stack[depth].index, frame } type fatalError struct { index int entry [1]uintptr stack containerStack err interface{} } func (e *fatalError) Error() string { s := new(bytes.Buffer) fmt.Fprintf(s, "%v", e.err) if len(e.stack) > 0 { fmt.Fprintf(s, "\n\n%s", e.stack) } return s.String() } type options struct { selector string sized bool raw bool ignore bool sized1 bool } func (o *options) enterSizedType(v reflect.Value) (exit func()) { orig := *o o.sized = false if v.Kind() == reflect.Slice { o.raw = true } return func() { *o = orig } } func parseStructFieldMuOptions(f reflect.StructField) (out *options) { out = new(options) s := f.Tag.Get("tpm2") for _, part := range strings.Split(s, ",") { switch { case strings.HasPrefix(part, "selector:"): out.selector = part[9:] case part == "sized": out.sized = true case part == "raw": out.raw = true case part == "ignore": out.ignore = true case part == "sized1": out.sized1 = true } } return out } // TPMKind indicates the TPM type class associated with a Go type type TPMKind int const ( // TPMKindUnsupported indicates that a go type has no corresponding // TPM type class. TPMKindUnsupported TPMKind = iota // TPMKindPrimitive indicates that a go type corresponds to one // of the primitive TPM types (UINT8, BYTE, INT8, BOOL, UINT16, // INT16, UINT32, INT32, UINT64, INT64, TPM_ALG_ID, any TPMA_ // prefixed type). TPMKindPrimitive // TPMKindSized indicates that a go type corresponds to a // TPM2B prefixed TPM type. TPMKindSized // TPMKindList indicates that a go type corresponds to a // TPML prefixed TPM type. TPMKindList // TPMKindStruct indicates that a go type corresponds to a // TPMS prefixed TPM type. TPMKindStruct // TPMKindTaggedUnion indicates that a go type corresponds // to a TPMT prefixed TPM type. TPMKindTaggedUnion // TPMKindUnion indicates that a go type corresponds to a // TPMU prefixed TPM type. TPMKindUnion // TPMKindCustom correponds to a go type that defines its own // marshalling behaviour. TPMKindCustom // TPMKindRaw corresponds to a go slice that is marshalled // without a size field. It behaves like a sequence of // individual values. TPMKindRaw // TPMKindSized1Bytes indicates that a go type corresponds to // a variable sized byte slice with a single byte size field, // and is a special type used to support TPMS_PCR_SELECT. TPMKindSized1Bytes TPMKindFixedBytes tpmKindIgnore ) func isCustom(t reflect.Type) bool { if t.Kind() != reflect.Ptr { t = reflect.PtrTo(t) } return t.Implements(customMarshallerType) && t.Implements(customUnmarshallerType) } func isUnion(t reflect.Type) bool { if t.Kind() != reflect.Ptr { t = reflect.PtrTo(t) } return t.Elem().Kind() == reflect.Struct && t.Implements(unionType) } func tpmKind(t reflect.Type, o *options) (TPMKind, error) { if o == nil { var def options o = &def } if o.ignore { return tpmKindIgnore, nil } sizeSpecifiers := 0 if o.sized { sizeSpecifiers += 1 } if o.raw { sizeSpecifiers += 1 } if o.sized1 { sizeSpecifiers += 1 } if sizeSpecifiers > 1 { return TPMKindUnsupported, errors.New(`only one of "sized", "raw" and "sized1" may be specified`) } if t.Kind() != reflect.Ptr && isCustom(t) { if sizeSpecifiers != 0 || o.selector != "" { return TPMKindUnsupported, errors.New("invalid options for custom type") } return TPMKindCustom, nil } switch t.Kind() { case reflect.Bool, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64: if sizeSpecifiers != 0 || o.selector != "" { return TPMKindUnsupported, errors.New("invalid options for primitive type") } return TPMKindPrimitive, nil case reflect.Ptr: switch { case t.Elem().Kind() != reflect.Struct: // Ignore "sized" for pointers to non-structures. If this parameter is // present, we'll return an error after dereferencing. return TPMKindUnsupported, nil case o.sized: return TPMKindSized, nil default: return TPMKindUnsupported, nil } case reflect.Slice: switch { case o.sized || o.selector != "": return TPMKindUnsupported, errors.New("invalid options for slice type") case o.raw && t == sized1BytesType: return TPMKindUnsupported, errors.New(`"raw" option is invalid with Sized1Bytes type`) case t == sized1BytesType || o.sized1: return TPMKindSized1Bytes, nil case t == rawBytesType || o.raw: return TPMKindRaw, nil case t.Elem().Kind() == reflect.Uint8: return TPMKindSized, nil default: return TPMKindList, nil } case reflect.Struct: if sizeSpecifiers > 0 { return TPMKindUnsupported, errors.New("invalid options for struct type") } k := TPMKindStruct for i := 0; i < t.NumField(); i++ { if isUnion(t.Field(i).Type) { k = TPMKindTaggedUnion break } } if isUnion(t) { if k == TPMKindTaggedUnion { return TPMKindUnsupported, errors.New("struct type cannot represent both a union and tagged union") } return TPMKindUnion, nil } if o.selector != "" { return TPMKindUnsupported, errors.New(`"selector" option is invalid with struct types that don't represent unions`) } return k, nil case reflect.Array: switch { case sizeSpecifiers != 0 || o.selector != "": return TPMKindUnsupported, errors.New("invalid options for array type") case t.Elem().Kind() != reflect.Uint8: return TPMKindUnsupported, errors.New("unsupported array type") } return TPMKindFixedBytes, nil default: return TPMKindUnsupported, fmt.Errorf("unsupported kind: %v", t.Kind()) } } // DetermineTPMKind returns the TPMKind associated with the supplied go value. It will // automatically dereference pointer types. // // This doesn't mean that the supplied go value can actually be handled by this package // because it doesn't recurse into containers. func DetermineTPMKind(i interface{}) TPMKind { var t reflect.Type var o *options switch v := i.(type) { case *wrappedValue: t = reflect.TypeOf(v.value) o = v.opts default: t = reflect.TypeOf(i) } for { k, err := tpmKind(t, o) switch { case err != nil: return TPMKindUnsupported case k == TPMKindUnsupported: t = t.Elem() default: return k } } } type context struct { caller [1]uintptr // address of the function calling into the public API mode string // marshal or unmarshal index int // current argument index stack containerStack // type stack for this context parent *context // parent context associated with a call from a custom type } func (c *context) checkInfiniteRecursion(v reflect.Value) { ctx := c for ctx != nil { for i := len(ctx.stack) - 1; i >= 0; i-- { n := ctx.stack[i] if n.value.Kind() == reflect.Slice || (n.value.Kind() == reflect.Struct && (n.sized || isUnion(n.value.Type()))) { return } if n.value.Type() == v.Type() { panic(fmt.Sprintf("infinite recursion detected when processing type %s", v.Type())) } } ctx = ctx.parent } } func (c *context) enterStructField(s reflect.Value, i int, opts *options) (exit func()) { c.checkInfiniteRecursion(s) c.stack = c.stack.push(containerNode{value: s, index: i, sized: opts != nil && opts.sized}) return func() { c.stack = c.stack.pop() } } func (c *context) enterListElem(l reflect.Value, i int) (exit func()) { c.stack = c.stack.push(containerNode{value: l, index: i}) return func() { c.stack = c.stack.pop() } } func (c *context) enterUnionElem(u reflect.Value, opts *options) (elem reflect.Value, exit func(), err error) { valid := false if len(c.stack) > 0 { if k, _ := tpmKind(c.stack.top().value.Type(), nil); k == TPMKindTaggedUnion { valid = true } } if !valid { panic(fmt.Sprintf("union type %s is not inside a struct", u.Type())) } var selectorVal reflect.Value if opts == nil || opts.selector == "" { selectorVal = c.stack.top().value.Field(0) } else { selectorVal = c.stack.top().value.FieldByName(opts.selector) if !selectorVal.IsValid() { panic(fmt.Sprintf("selector name %s for union type %s does not reference a valid field", opts.selector, u.Type())) } } switch selectorVal.Kind() { case reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64: // ok default: panic(fmt.Sprintf("selector for union type %s has an invalid type (%s)", u.Type(), selectorVal.Type())) } if !u.CanAddr() { panic(fmt.Sprintf("union type %s needs to be addressable", u.Type())) } p := u.Addr().Interface().(Union).Select(selectorVal) switch { case p == nil: return reflect.Value{}, nil, &InvalidSelectorError{selectorVal} case p == NilUnionValue: return reflect.Value{}, nil, nil } pv := reflect.ValueOf(p) index := -1 for i := 0; i < u.NumField(); i++ { if u.Field(i).Addr().Interface() == pv.Interface() { index = i break } } if index == -1 { panic(fmt.Sprintf("Union.Select implementation for type %s returned a non-member pointer", u.Type())) } return pv.Elem(), c.enterStructField(u, index, nil), nil } func (c *context) enterCustomType(v reflect.Value) (exit func()) { c.checkInfiniteRecursion(v) c.stack = c.stack.push(containerNode{value: v, custom: true}) return func() { c.stack = c.stack.pop() } } func (c *context) wrapOrNewError(value reflect.Value, err error) error { muErr, isMuErr := err.(*Error) if !isMuErr { return c.newError(value, err) } stack := make(containerStack, len(c.stack)) copy(stack, c.stack) stack = append(stack, containerNode{value: value, custom: true, index: muErr.Index, entry: muErr.entry}) return &Error{ Index: c.index, Op: c.mode, entry: c.caller, stack: append(stack, muErr.stack...), leafType: muErr.leafType, err: muErr.err} } func (c *context) newError(value reflect.Value, err error) error { if err == io.EOF { // All io.EOF is unexpected err = io.ErrUnexpectedEOF } stack := make(containerStack, len(c.stack)) copy(stack, c.stack) return &Error{ Index: c.index, Op: c.mode, entry: c.caller, stack: stack, leafType: value.Type(), err: err} } func (c *context) wrapFatal(err interface{}) *fatalError { f, ok := err.(*fatalError) if !ok { return &fatalError{ index: c.index, entry: c.caller, stack: c.stack, err: err} } stack := make(containerStack, len(c.stack)) copy(stack, c.stack) stack.top().index = f.index stack.top().entry = f.entry return &fatalError{ index: c.index, entry: c.caller, stack: append(stack, f.stack...), err: f.err} } type marshaller struct { *context w io.Writer nbytes int } func newMarshaller(caller [1]uintptr, w io.Writer) *marshaller { var parent *context if m, ok := w.(*marshaller); ok { parent = m.context } return &marshaller{ context: &context{ caller: caller, mode: "marshal", parent: parent}, w: w} } func (m *marshaller) Write(p []byte) (n int, err error) { n, err = m.w.Write(p) m.nbytes += n return } func (m *marshaller) marshalSized(v reflect.Value, opts *options) error { if v.IsNil() { if err := binary.Write(m, binary.BigEndian, uint16(0)); err != nil { return m.newError(v, err) } return nil } if opts == nil { opts = new(options) } exit := opts.enterSizedType(v) defer exit() tmpBuf := new(bytes.Buffer) sm := &marshaller{context: m.context, w: tmpBuf} if err := sm.marshalValue(v, opts); err != nil { return err } if tmpBuf.Len() > math.MaxUint16 { return m.newError(v, fmt.Errorf("sized value size of %d is larger than 2^16-1", tmpBuf.Len())) } if err := binary.Write(m, binary.BigEndian, uint16(tmpBuf.Len())); err != nil { return m.newError(v, err) } if _, err := tmpBuf.WriteTo(m); err != nil { return m.newError(v, err) } return nil } func (m *marshaller) marshalSized1Bytes(v reflect.Value) error { if v.Len() > math.MaxUint8 { return m.newError(v, fmt.Errorf("value size of %d is larger than 2^8-1", v.Len())) } if err := binary.Write(m, binary.BigEndian, uint8(v.Len())); err != nil { return m.newError(v, err) } return m.marshalRaw(v) } func (m *marshaller) marshalFixedBytes(v reflect.Value) error { if err := binary.Write(m, binary.BigEndian, v.Interface()); err != nil { return m.newError(v, err) } return nil } func (m *marshaller) marshalRawList(v reflect.Value) error { for i := 0; i < v.Len(); i++ { exit := m.enterListElem(v, i) if err := m.marshalValue(v.Index(i), nil); err != nil { exit() return err } exit() } return nil } func (m *marshaller) marshalRaw(v reflect.Value) error { switch v.Type().Elem().Kind() { case reflect.Uint8: if _, err := m.Write(v.Bytes()); err != nil { return m.newError(v, err) } return nil default: return m.marshalRawList(v) } } func (m *marshaller) marshalPtr(v reflect.Value, opts *options) error { p := v if v.IsNil() { p = reflect.New(v.Type().Elem()) } return m.marshalValue(p.Elem(), opts) } func (m *marshaller) marshalPrimitive(v reflect.Value) error { if err := binary.Write(m, binary.BigEndian, v.Interface()); err != nil { return m.newError(v, err) } return nil } func (m *marshaller) marshalList(v reflect.Value) error { if v.Len() > maxListLength { return m.newError(v, fmt.Errorf("slice length of %d is out of range", v.Len())) } // Marshal length field if err := binary.Write(m, binary.BigEndian, uint32(v.Len())); err != nil { return m.newError(v, err) } return m.marshalRawList(v) } func (m *marshaller) marshalStruct(v reflect.Value) error { for i := 0; i < v.NumField(); i++ { opts := parseStructFieldMuOptions(v.Type().Field(i)) exit := m.enterStructField(v, i, opts) if err := m.marshalValue(v.Field(i), opts); err != nil { exit() return err } exit() } return nil } func (m *marshaller) marshalUnion(v reflect.Value, opts *options) error { // Ignore during marshalling - let the TPM unmarshalling catch it elem, exit, _ := m.enterUnionElem(v, opts) if !elem.IsValid() { return nil } err := m.marshalValue(elem, nil) exit() return err } func (m *marshaller) marshalCustom(v reflect.Value) error { if !v.Type().Implements(customMarshallerType) { // support Marshal() implementations that take a pointer receiver. if !v.CanAddr() { panic(fmt.Sprintf("custom type %s needs to be addressable", v.Type())) } v = v.Addr() } exit := m.enterCustomType(v) if err := v.Interface().(customMarshallerIface).Marshal(m); err != nil { exit() return m.wrapOrNewError(v, err) } exit() return nil } func (m *marshaller) marshalValue(v reflect.Value, opts *options) error { kind, err := tpmKind(v.Type(), opts) switch { case err != nil: panic(fmt.Sprintf("cannot marshal unsupported type %s (%v)", v.Type(), err)) case kind == TPMKindUnsupported: return m.marshalPtr(v, opts) case kind == tpmKindIgnore: return nil } switch kind { case TPMKindPrimitive: return m.marshalPrimitive(v) case TPMKindSized: return m.marshalSized(v, opts) case TPMKindList: return m.marshalList(v) case TPMKindStruct, TPMKindTaggedUnion: return m.marshalStruct(v) case TPMKindUnion: return m.marshalUnion(v, opts) case TPMKindCustom: return m.marshalCustom(v) case TPMKindRaw: return m.marshalRaw(v) case TPMKindSized1Bytes: return m.marshalSized1Bytes(v) case TPMKindFixedBytes: return m.marshalFixedBytes(v) } panic("unhandled kind") } func (m *marshaller) marshal(vals ...interface{}) (int, error) { defer func() { if err := recover(); err != nil { panic(m.wrapFatal(err)) } }() for i, v := range vals { m.index = i var opts *options switch w := v.(type) { case *wrappedValue: v = w.value opts = w.opts default: } if err := m.marshalValue(reflect.ValueOf(v), opts); err != nil { return m.nbytes, err } } return m.nbytes, nil } type unmarshaller struct { *context r io.Reader nbytes int } func newUnmarshaller(caller [1]uintptr, r io.Reader) *unmarshaller { var parent *context if u, ok := r.(*unmarshaller); ok { parent = u.context } return &unmarshaller{ context: &context{ caller: caller, mode: "unmarshal", parent: parent}, r: r} } func (u *unmarshaller) Read(p []byte) (n int, err error) { n, err = u.r.Read(p) u.nbytes += n return } func (u *unmarshaller) unmarshalSized(v reflect.Value, opts *options) error { var size uint16 if err := binary.Read(u, binary.BigEndian, &size); err != nil { return u.newError(v, err) } // v is either: // - a pointer kind, in which case it is a pointer to a struct. This // is the sized structure case. // - a slice kind, in which case the slice is always a byte slice. This // is the sized buffer case. switch { case size == 0: // zero sized structure. Clear the pointer if it was pre-set and // then return early. v.Set(reflect.Zero(v.Type())) return nil case v.Kind() == reflect.Slice && (v.IsNil() || v.Cap() < int(size)): // sized buffer with no pre-allocated buffer or a pre-allocated // buffer that isn't large enough. Allocate a new one. v.Set(reflect.MakeSlice(v.Type(), int(size), int(size))) case v.Kind() == reflect.Slice: // sized buffer with pre-allocated buffer that is large enough. v.SetLen(int(size)) } if opts == nil { opts = new(options) } exit := opts.enterSizedType(v) defer exit() su := &unmarshaller{context: u.context, r: io.LimitReader(u, int64(size))} return su.unmarshalValue(v, opts) } func (u *unmarshaller) unmarshalSized1Bytes(v reflect.Value) error { var size uint8 if err := binary.Read(u, binary.BigEndian, &size); err != nil { return u.newError(v, err) } switch { case size == 0: // zero sized. Set the slice to nil if it was pre-set. v.Set(reflect.Zero(v.Type())) return nil case v.IsNil() || v.Cap() < int(size): // No pre-allocated slice or one that isn't big enough. // Allocate a new one. v.Set(reflect.MakeSlice(v.Type(), int(size), int(size))) default: // Reuse the pre-allocated slice. v.SetLen(int(size)) } return u.unmarshalRaw(v) } func (u *unmarshaller) unmarshalFixedBytes(v reflect.Value) error { if err := binary.Read(u, binary.BigEndian, v.Addr().Interface()); err != nil { return u.newError(v, err) } return nil } func (u *unmarshaller) unmarshalRawList(v reflect.Value, n int) (reflect.Value, error) { for i := 0; i < n; i++ { v = reflect.Append(v, reflect.Zero(v.Type().Elem())) exit := u.enterListElem(v, i) if err := u.unmarshalValue(v.Index(i), nil); err != nil { exit() return reflect.Value{}, err } exit() } return v, nil } func (u *unmarshaller) unmarshalRaw(v reflect.Value) error { switch v.Type().Elem().Kind() { case reflect.Uint8: if _, err := io.ReadFull(u, v.Bytes()); err != nil { return u.newError(v, err) } return nil default: _, err := u.unmarshalRawList(v.Slice(0, 0), v.Len()) return err } } func (u *unmarshaller) unmarshalPtr(v reflect.Value, opts *options) error { if v.IsNil() { v.Set(reflect.New(v.Type().Elem())) } return u.unmarshalValue(v.Elem(), opts) } func (u *unmarshaller) unmarshalPrimitive(v reflect.Value) error { if err := binary.Read(u, binary.BigEndian, v.Addr().Interface()); err != nil { return u.newError(v, err) } return nil } func (u *unmarshaller) unmarshalList(v reflect.Value) error { // Unmarshal the length var length uint32 if err := binary.Read(u, binary.BigEndian, &length); err != nil { return u.newError(v, err) } switch { case length > maxListLength: return u.newError(v, fmt.Errorf("list length of %d is out of range", length)) case v.IsNil() && length > 0: // Try to reuse the existing slice, although it may be // reallocated later if the capacity isn't large enough v.Set(reflect.MakeSlice(v.Type(), 0, 0)) case length == 0: // Clear any existing slice v.Set(reflect.Zero(v.Type())) } s, err := u.unmarshalRawList(v.Slice(0, 0), int(length)) if err != nil { return err } v.Set(s) return nil } func (u *unmarshaller) unmarshalStruct(v reflect.Value) error { for i := 0; i < v.NumField(); i++ { opts := parseStructFieldMuOptions(v.Type().Field(i)) exit := u.enterStructField(v, i, opts) if err := u.unmarshalValue(v.Field(i), opts); err != nil { exit() return err } exit() } return nil } func (u *unmarshaller) unmarshalUnion(v reflect.Value, opts *options) error { elem, exit, err := u.enterUnionElem(v, opts) if err != nil { return u.newError(v, err) } if !elem.IsValid() { return nil } err = u.unmarshalValue(elem, nil) exit() return err } func (u *unmarshaller) unmarshalCustom(v reflect.Value) error { if !v.CanAddr() { panic(fmt.Sprintf("custom type %s needs to be addressable", v.Type())) } exit := u.enterCustomType(v) if err := v.Addr().Interface().(customUnmarshallerIface).Unmarshal(u); err != nil { exit() return u.wrapOrNewError(v, err) } exit() return nil } func (u *unmarshaller) unmarshalValue(v reflect.Value, opts *options) error { kind, err := tpmKind(v.Type(), opts) switch { case err != nil: panic(fmt.Sprintf("cannot unmarshal unsupported type %s (%v)", v.Type(), err)) case kind == TPMKindUnsupported: return u.unmarshalPtr(v, opts) case kind == tpmKindIgnore: return nil } switch kind { case TPMKindPrimitive: return u.unmarshalPrimitive(v) case TPMKindSized: return u.unmarshalSized(v, opts) case TPMKindList: return u.unmarshalList(v) case TPMKindStruct, TPMKindTaggedUnion: return u.unmarshalStruct(v) case TPMKindUnion: return u.unmarshalUnion(v, opts) case TPMKindCustom: return u.unmarshalCustom(v) case TPMKindRaw: return u.unmarshalRaw(v) case TPMKindSized1Bytes: return u.unmarshalSized1Bytes(v) case TPMKindFixedBytes: return u.unmarshalFixedBytes(v) } panic("unhandled kind") } func (u *unmarshaller) unmarshal(vals ...interface{}) (int, error) { defer func() { if err := recover(); err != nil { panic(u.wrapFatal(err)) } }() for i, v := range vals { u.index = i var opts *options switch w := v.(type) { case *wrappedValue: v = w.value opts = w.opts default: } val := reflect.ValueOf(v) if val.Kind() != reflect.Ptr { panic(fmt.Sprintf("cannot unmarshal to non-pointer type %s", reflect.TypeOf(v))) } if val.IsNil() { panic(fmt.Sprintf("cannot unmarshal to nil pointer of type %s", val.Type())) } if err := u.unmarshalValue(val.Elem(), opts); err != nil { return u.nbytes, err } } return u.nbytes, nil } func marshalToWriter(skip int, w io.Writer, vals ...interface{}) (int, error) { var caller [1]uintptr runtime.Callers(skip+1, caller[:]) m := newMarshaller(caller, w) return m.marshal(vals...) } // MarshalToWriter marshals vals to w in the TPM wire format, according // to the rules specified in the package description. // // Pointers are automatically dereferenced. Nil pointers are marshalled to // the zero value for the pointed to type, unless the pointer is to a // sized structure (a struct field with the 'tpm2:"sized"` tag), in which // case a value of zero size is marshalled. // // The number of bytes written to w are returned. If this function does // not complete successfully, it will return an error and the number of // bytes written. // // This function only returns an error if a sized value (sized buffer, // sized structure or list) is too large for its corresponding size field, // or if the supplied io.Writer returns an error. func MarshalToWriter(w io.Writer, vals ...interface{}) (int, error) { return marshalToWriter(2, w, vals...) } // MustMarshalToWriter is the same as [MarshalToWriter], except that it panics if it encounters an error. func MustMarshalToWriter(w io.Writer, vals ...interface{}) int { n, err := marshalToWriter(2, w, vals...) if err != nil { panic(err) } return n } func marshalToBytes(skip int, vals ...interface{}) ([]byte, error) { buf := new(bytes.Buffer) if _, err := marshalToWriter(skip+1, buf, vals...); err != nil { return nil, err } return buf.Bytes(), nil } // MarshalToBytes marshals vals to TPM wire format, according to the rules // specified in the package description. // // Pointers are automatically dereferenced. Nil pointers are marshalled to // the zero value for the pointed to type, unless the pointer is to a // sized structure (a struct field with the 'tpm2:"sized"` tag), in which // case a value of zero size is marshalled. // // The number of bytes written to w are returned. If this function does // not complete successfully, it will return an error and the number of // bytes written. // // This function only returns an error if a sized value (sized buffer, // sized structure or list) is too large for its corresponding size field. func MarshalToBytes(vals ...interface{}) ([]byte, error) { return marshalToBytes(2, vals...) } // MustMarshalToBytes is the same as [MarshalToBytes], except that it panics if it encounters an error. func MustMarshalToBytes(vals ...interface{}) []byte { b, err := marshalToBytes(2, vals...) if err != nil { panic(err) } return b } func unmarshalFromReader(skip int, r io.Reader, vals ...interface{}) (n int, err error) { var caller [1]uintptr runtime.Callers(skip+1, caller[:]) u := newUnmarshaller(caller, r) return u.unmarshal(vals...) } // UnmarshalFromReader unmarshals data in the TPM wire format from r to // vals, according to the rules specified in the package description. The // values supplied to this function must be pointers to the destination // values. // // Pointers are automatically dererefenced. If a pointer is nil, then // memory is allocated for the value and the pointer is initialized // accordingly, unless the pointer is to a sized structure (a struct field // with the 'tpm2:"sized"' tag) and the value being unmarshalled has a // zero size, in which case the pointer is cleared. If a pointer is // already initialized by the caller, then this function will unmarshal // to the already allocated memory. // // Slices are allocated automatically, unless the caller has already // allocated a slice in which case it will be used if it has a large // enough capacity. Zero length slices are unmarshalled as nil. // // This can unmarshal raw slices (those without a corresponding size or // length fields, represented by the [RawBytes] type or a slice value // referenced from a struct field with the 'tpm2:"raw"' tag), but the // caller must pre-allocate a slice of the correct size first. This // function cannot allocate a slice because it doesn't have a way to // determine the size to allocate. // // The number of bytes read from r are returned. If this function does // not complete successfully, it will return an error and the number of // bytes read. In this case, partial results may have been unmarshalled // to the supplied destination values. func UnmarshalFromReader(r io.Reader, vals ...interface{}) (int, error) { return unmarshalFromReader(2, r, vals...) } // UnmarshalFromReader unmarshals data in the TPM wire format from b to // vals, according to the rules specified in the package description. // The values supplied to this function must be pointers to the // destination values. // // Pointers are automatically dererefenced. If a pointer is nil, then // memory is allocated for the value and the pointer is initialized // accordingly, unless the pointer is to a sized structure (a struct field // with the 'tpm2:"sized"' tag) and the value being unmarshalled has a // zero size, in which case the pointer is cleared. If a pointer is // already initialized by the caller, then this function will unmarshal // to the already allocated memory. // // Slices are allocated automatically, unless the caller has already // allocated a slice in which case it will be used if it has a large // enough capacity. Zero length slices are unmarshalled as nil. // // This can unmarshal raw slices (those without a corresponding size or // length fields, represented by the [RawBytes] type or a slice value // referenced from a struct field with the 'tpm2:"raw"' tag), but the // caller must pre-allocate a slice of the correct size first. This // function cannot allocate a slice because it doesn't have a way to // determine the size to allocate. // // The number of bytes consumed from b are returned. If this function // does not complete successfully, it will return an error and the number // of bytes consumed. In this case, partial results may have been // unmarshalled to the supplied destination values. func UnmarshalFromBytes(b []byte, vals ...interface{}) (int, error) { buf := bytes.NewReader(b) return unmarshalFromReader(2, buf, vals...) } func copyValue(skip int, dst, src interface{}) error { var wrappedSrc *wrappedValue switch s := src.(type) { case *wrappedValue: wrappedSrc = s default: wrappedSrc = &wrappedValue{value: s} } switch d := dst.(type) { case *wrappedValue: _ = d panic("can only pass options to the source") } dstV := reflect.ValueOf(dst) if dstV.Kind() != reflect.Ptr { panic(fmt.Sprintf("cannot unmarshal to non-pointer type %s", reflect.TypeOf(dst))) } if dstV.IsNil() { panic(fmt.Sprintf("cannot unmarshal to nil pointer of type %s", dstV.Type())) } dstLocal := dst isInterface := false if dstV.Elem().Kind() == reflect.Interface { if !reflect.TypeOf(wrappedSrc.value).Implements(dstV.Elem().Type()) { panic(fmt.Sprintf("type %s does not implement destination interface %s", reflect.TypeOf(src), dstV.Elem().Type())) } dstLocal = reflect.New(reflect.TypeOf(wrappedSrc.value)).Interface() isInterface = true } wrappedDst := &wrappedValue{value: dstLocal, opts: wrappedSrc.opts} buf := new(bytes.Buffer) if _, err := marshalToWriter(skip+1, buf, wrappedSrc); err != nil { return err } if _, err := unmarshalFromReader(skip+1, buf, wrappedDst); err != nil { return err } if isInterface { dstV.Elem().Set(reflect.ValueOf(dstLocal).Elem()) } return nil } // CopyValue copies the value of src to dst. The destination must be a // pointer to the actual destination value. This works by serializing the // source value in the TPM wire format and the deserializing it again into // the destination. // // This will return an error for any reason that would cause [MarshalToBytes] or // [UnmarshalFromBytes] to return an error. func CopyValue(dst, src interface{}) error { return copyValue(2, dst, src) } // MustCopyValue is the same as [CopyValue] except that it panics if it encounters an error. func MustCopyValue(dst, src interface{}) { if err := copyValue(2, dst, src); err != nil { panic(err) } } // IsValid determines whether the supplied value is representable by // the TPM wire format. It returns false if the type would cause a panic // during marshalling or unmarshalling. func IsValid(v interface{}) (valid bool) { defer func() { if err := recover(); err != nil { valid = false } }() var d interface{} if err := CopyValue(&d, v); err != nil { return false } return true } // DeepEqual determines whether the supplied values are deeply equal. // Values are deeply equal if they have the same type and have the same // representation when serialized. This will return false if either value // cannot be represented by the TPM wire format. func DeepEqual(x, y interface{}) (equal bool) { if reflect.TypeOf(x) != reflect.TypeOf(y) { return false } defer func() { if err := recover(); err != nil { equal = false } }() x2 := MustMarshalToBytes(x) y2 := MustMarshalToBytes(y) return bytes.Equal(x2, y2) } ./github.com/canonical/go-tpm2/objectutil/0000775000000000000000000000000000000000000015523 5ustar00./github.com/canonical/go-tpm2/objectutil/credential.go0000664000000000000000000000406000000000000020164 0ustar00// Copyright 2021 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package objectutil import ( "errors" "fmt" "io" "github.com/canonical/go-tpm2" internal_crypt "github.com/canonical/go-tpm2/internal/crypt" internal_util "github.com/canonical/go-tpm2/internal/util" "github.com/canonical/go-tpm2/mu" ) // MakeCredential performs the duties of a certificate authority in order to create an activation // credential. It establishes a seed which is used to protect the activation credential (see // section 24 - "Credential Protection" of Part 1 of the Trusted Platform Module Library // specification). // // The encrypted and integrity protected credential blob and a secret are returned, and these can // be supplied to the TPM2_ActivateCredential command on the TPM on which both the private part of // key and the object associated with objectName are loaded in order to recover the activation // credential. func MakeCredential(rand io.Reader, key *tpm2.Public, credential tpm2.Digest, objectName tpm2.Name) (credentialBlob tpm2.IDObject, secret tpm2.EncryptedSecret, err error) { if !mu.IsValid(key) { return nil, nil, errors.New("key is not valid") } if !key.IsStorageParent() || !key.IsAsymmetric() { return nil, nil, errors.New("key must be an asymmetric storage parent") } if !key.NameAlg.Available() { return nil, nil, errors.New("name algorithm for key is not available") } credentialBlob, err = mu.MarshalToBytes(credential) if err != nil { return nil, nil, fmt.Errorf("cannot marshal credential: %w", err) } secret, seed, err := internal_crypt.SecretEncrypt(rand, key.Public(), key.NameAlg.GetHash(), []byte(tpm2.IdentityKey)) if err != nil { return nil, nil, fmt.Errorf("cannot create encrypted symmetric seed: %w", err) } credentialBlob, err = internal_util.ProduceOuterWrap(key.NameAlg, &key.AsymDetail().Symmetric, objectName, seed, false, credentialBlob) if err != nil { return nil, nil, fmt.Errorf("cannot apply outer wrapper: %w", err) } return credentialBlob, secret, nil } ./github.com/canonical/go-tpm2/objectutil/doc.go0000664000000000000000000000034500000000000016621 0ustar00// Copyright 2023 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. /* Package objectutil contains utilities for creating and working with objects. */ package objectutil ./github.com/canonical/go-tpm2/objectutil/duplication.go0000664000000000000000000002423600000000000020374 0ustar00// Copyright 2021 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package objectutil import ( "bytes" "crypto" "crypto/rand" "errors" "fmt" "io" "github.com/canonical/go-tpm2" internal_crypt "github.com/canonical/go-tpm2/internal/crypt" internal_util "github.com/canonical/go-tpm2/internal/util" "github.com/canonical/go-tpm2/mu" ) func duplicateToSensitive(duplicate tpm2.Private, name tpm2.Name, outerHashAlg tpm2.HashAlgorithmId, outerSymmetricAlg *tpm2.SymDefObject, outerSeed []byte, innerSymmetricAlg *tpm2.SymDefObject, innerSymmetricKey tpm2.Data) (sensitive *tpm2.Sensitive, err error) { if len(outerSeed) > 0 { // Remove outer wrapper duplicate, err = internal_util.UnwrapOuter(outerHashAlg, outerSymmetricAlg, name, outerSeed, false, duplicate) if err != nil { return nil, fmt.Errorf("cannot unwrap outer wrapper: %w", err) } } if innerSymmetricAlg != nil && innerSymmetricAlg.Algorithm != tpm2.SymObjectAlgorithmNull { // Remove inner wrapper if name.Algorithm() == tpm2.HashAlgorithmNull { return nil, errors.New("invalid name") } if !name.Algorithm().Available() { return nil, errors.New("name algorithm is not available") } if !innerSymmetricAlg.Algorithm.IsValidBlockCipher() { return nil, errors.New("inner symmetric algorithm is not a valid block cipher") } if err := internal_crypt.SymmetricDecrypt(innerSymmetricAlg.Algorithm, innerSymmetricKey, make([]byte, innerSymmetricAlg.Algorithm.BlockSize()), duplicate); err != nil { return nil, fmt.Errorf("cannot decrypt inner wrapper: %w", err) } r := bytes.NewReader(duplicate) var innerIntegrity []byte if _, err := mu.UnmarshalFromReader(r, &innerIntegrity); err != nil { return nil, fmt.Errorf("cannot unmarshal inner integrity digest: %w", err) } duplicate, _ = io.ReadAll(r) h := name.Algorithm().NewHash() h.Write(duplicate) h.Write(name) if !bytes.Equal(h.Sum(nil), innerIntegrity) { return nil, errors.New("inner integrity digest is invalid") } } if _, err := mu.UnmarshalFromBytes(duplicate, mu.Sized(&sensitive)); err != nil { return nil, fmt.Errorf("cannot unmarhsal sensitive: %w", err) } return sensitive, nil } // UnwrapDuplicated unwraps the supplied duplication object and returns the corresponding // sensitive area. The duplication object will normally be created by executing the // [tpm2.TPMContext.Duplicate] command. // // If outerSecret is supplied then it is assumed that the object has an outer duplication wrapper. // For an object duplicated with [tpm2.TPMContext.Duplicate], outerSecret is the secret structure // returned by this command. In this case, privKey, outerHashAlg and outerSymmetricAlg must be // supplied - privKey is the key that recovers the seed used to generate the outer wrapper (the new // parent when using [tpm2.TPMContext.Duplicate]), outerHashAlg is the algorithm used for integrity // checking and key derivation (the new parent's name algorithm when using // [tpm2.TPMContext.Duplicate]) and must not be [tpm2.HashAlgorithmNull], and outerSymmetricAlg // defines the symmetric algorithm for the outer wrapper (the new parent's symmetric algorithm when // using [tpm2.TPMContext.Duplicate]) and must not be [tpm2.SymObjectAlgorithmNull]). // // If innerSymmetricAlg is supplied and the Algorithm field is not [tpm2.SymObjectAlgorithmNull], // then it is assumed that the object has an inner duplication wrapper. In this case, the symmetric // key for the inner wrapper must be supplied using the innerSymmetricKey argument. func UnwrapDuplicated(duplicate tpm2.Private, public *tpm2.Public, privKey crypto.PrivateKey, outerHashAlg tpm2.HashAlgorithmId, outerSymmetricAlg *tpm2.SymDefObject, outerSecret tpm2.EncryptedSecret, innerSymmetricKey tpm2.Data, innerSymmetricAlg *tpm2.SymDefObject) (*tpm2.Sensitive, error) { var seed []byte if len(outerSecret) > 0 { if privKey == nil { return nil, errors.New("parent private key is required for outer wrapper") } if outerHashAlg != tpm2.HashAlgorithmNull && !outerHashAlg.Available() { return nil, fmt.Errorf("digest algorithm %v is not available", outerHashAlg) } var err error seed, err = internal_crypt.SecretDecrypt(privKey, outerHashAlg.GetHash(), []byte(tpm2.DuplicateString), outerSecret) if err != nil { return nil, fmt.Errorf("cannot decrypt symmetric seed: %w", err) } } name, err := public.ComputeName() if err != nil { return nil, fmt.Errorf("cannot compute name: %w", err) } sensitive, err := duplicateToSensitive(duplicate, name, outerHashAlg, outerSymmetricAlg, seed, innerSymmetricAlg, innerSymmetricKey) if err != nil { return nil, fmt.Errorf("cannot convert duplicate to sensitive: %w", err) } return sensitive, nil } func sensitiveToDuplicate(sensitive *tpm2.Sensitive, name tpm2.Name, outerHashAlg tpm2.HashAlgorithmId, outerSymmetricAlg *tpm2.SymDefObject, outerSeed []byte, innerSymmetricAlg *tpm2.SymDefObject, innerSymmetricKey tpm2.Data) (innerSymmetricKeyOut tpm2.Data, duplicate tpm2.Private, err error) { applyInnerWrapper := false if innerSymmetricAlg != nil && innerSymmetricAlg.Algorithm != tpm2.SymObjectAlgorithmNull { applyInnerWrapper = true } applyOuterWrapper := false if len(outerSeed) > 0 { applyOuterWrapper = true } duplicate, err = mu.MarshalToBytes(mu.Sized(sensitive)) if err != nil { return nil, nil, fmt.Errorf("cannot marshal sensitive: %w", err) } if applyInnerWrapper { if name.Algorithm() == tpm2.HashAlgorithmNull { return nil, nil, errors.New("invalid name") } if !name.Algorithm().Available() { return nil, nil, errors.New("name algorithm is not available") } if !innerSymmetricAlg.Algorithm.IsValidBlockCipher() { return nil, nil, errors.New("inner symmetric algorithm is not a valid block cipher") } // Apply inner wrapper h := name.Algorithm().NewHash() h.Write(duplicate) h.Write(name) innerIntegrity := h.Sum(nil) duplicate = mu.MustMarshalToBytes(innerIntegrity, mu.RawBytes(duplicate)) if len(innerSymmetricKey) == 0 { innerSymmetricKeyOut = make([]byte, innerSymmetricAlg.KeyBits.Sym/8) if _, err := rand.Read(innerSymmetricKeyOut); err != nil { return nil, nil, fmt.Errorf("cannot obtain symmetric key for inner wrapper: %w", err) } innerSymmetricKey = innerSymmetricKeyOut } else if len(innerSymmetricKey) != int(innerSymmetricAlg.KeyBits.Sym/8) { return nil, nil, errors.New("the supplied symmetric key for inner wrapper has the wrong length") } if err := internal_crypt.SymmetricEncrypt(innerSymmetricAlg.Algorithm, innerSymmetricKey, make([]byte, innerSymmetricAlg.Algorithm.BlockSize()), duplicate); err != nil { return nil, nil, fmt.Errorf("cannot apply inner wrapper: %w", err) } } if applyOuterWrapper { // Apply outer wrapper duplicate, err = internal_util.ProduceOuterWrap(outerHashAlg, outerSymmetricAlg, name, outerSeed, false, duplicate) if err != nil { return nil, nil, fmt.Errorf("cannot apply outer wrapper: %w", err) } } return innerSymmetricKeyOut, duplicate, nil } // CreateImportable creates a duplication object that can be imported in to a TPM with the // [tpm2.TPMContext.Import] command from the supplied sensitive area. // // If parentPublic is supplied, an outer duplication wrapper will be applied to the duplication // object. The parentPublic argument should correspond to the public area of the storage key to // which the duplication object will be imported. A secret structure will be returned as // [tpm2.EncryptedSecret] which can be used by the private part of parentPublic in order to // recover the seed used to generate the outer wrapper. // // If innerSymmetricAlg is supplied and the Algorithm field is not [tpm2.SymObjectAlgorithmNull], // this function will apply an inner duplication wrapper to the duplication object. If // innerSymmetricKey is supplied, it will be used as the symmetric key for the inner wrapper. It // must have a size appropriate for the selected symmetric algorithm. If innerSymmetricKey is not // supplied, a symmetric key will be created and returned as [tpm2.Data]. func CreateImportable(rand io.Reader, sensitive *tpm2.Sensitive, public, parentPublic *tpm2.Public, innerSymmetricKey tpm2.Data, innerSymmetricAlg *tpm2.SymDefObject) (innerSymmetricKeyOut tpm2.Data, duplicate tpm2.Private, outerSecret tpm2.EncryptedSecret, err error) { if public.Attrs&(tpm2.AttrFixedTPM|tpm2.AttrFixedParent) != 0 { return nil, nil, nil, errors.New("object must be a duplication root") } if public.Attrs&tpm2.AttrEncryptedDuplication != 0 { if innerSymmetricAlg == nil || innerSymmetricAlg.Algorithm == tpm2.SymObjectAlgorithmNull { return nil, nil, nil, errors.New("inner symmetric algorithm must be supplied for an object with AttrEncryptedDuplication") } if parentPublic == nil { return nil, nil, nil, errors.New("parent object must be supplied for an object with AttrEncryptedDuplication") } } name, err := public.ComputeName() if err != nil { return nil, nil, nil, fmt.Errorf("cannot compute name: %w", err) } var seed []byte var outerHashAlg tpm2.HashAlgorithmId var outerSymmetricAlg *tpm2.SymDefObject if parentPublic != nil { if !mu.IsValid(parentPublic) { return nil, nil, nil, errors.New("parent object is invalid") } if parentPublic.NameAlg != tpm2.HashAlgorithmNull && !parentPublic.NameAlg.Available() { return nil, nil, nil, fmt.Errorf("digest algorithm %v is not available", parentPublic.NameAlg) } if !parentPublic.IsStorageParent() || !parentPublic.IsAsymmetric() { return nil, nil, nil, errors.New("parent object must be an asymmetric storage key") } outerHashAlg = parentPublic.NameAlg outerSymmetricAlg = &parentPublic.AsymDetail().Symmetric outerSecret, seed, err = internal_crypt.SecretEncrypt(rand, parentPublic.Public(), parentPublic.NameAlg.GetHash(), []byte(tpm2.DuplicateString)) if err != nil { return nil, nil, nil, fmt.Errorf("cannot create encrypted outer symmetric seed: %w", err) } } innerSymmetricKeyOut, duplicate, err = sensitiveToDuplicate(sensitive, name, outerHashAlg, outerSymmetricAlg, seed, innerSymmetricAlg, innerSymmetricKey) if err != nil { return nil, nil, nil, fmt.Errorf("cannot convert sensitive to duplicate: %w", err) } return innerSymmetricKeyOut, duplicate, outerSecret, nil } ./github.com/canonical/go-tpm2/objectutil/keys.go0000664000000000000000000002433500000000000017034 0ustar00// Copyright 2021 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package objectutil import ( "crypto/ecdsa" "crypto/elliptic" "crypto/rsa" "errors" "io" "math/big" "github.com/canonical/go-tpm2" ) func zeroExtendBytes(x *big.Int, l int) (out []byte) { out = make([]byte, l) tmp := x.Bytes() copy(out[len(out)-len(tmp):], tmp) return } // NewRSAPublicKey returns a public area for the supplied RSA key which can be used to verify // signatures. The public area can be customized with additional options. // // Without any options, the public area will have the following properties: // - SHA-256 for the name algorithm - customize with [WithNameAlg]. // - No RSA scheme - customize with [WithRSAScheme]. // // The returned public area can be loaded into a TPM with [tpm2.TPMContext.LoadExternal]. func NewRSAPublicKey(key *rsa.PublicKey, options ...PublicTemplateOption) (*tpm2.Public, error) { pub := &tpm2.Public{ Type: tpm2.ObjectTypeRSA, NameAlg: tpm2.HashAlgorithmSHA256, Attrs: tpm2.AttrSign, Params: &tpm2.PublicParamsU{ RSADetail: &tpm2.RSAParams{ Symmetric: tpm2.SymDefObject{Algorithm: tpm2.SymObjectAlgorithmNull}, Scheme: tpm2.RSAScheme{Scheme: tpm2.RSASchemeNull}}}} applyPublicTemplateOptions(pub, options...) keyBits := uint16(key.N.BitLen()) switch pub.Params.RSADetail.KeyBits { case 0: pub.Params.RSADetail.KeyBits = keyBits case keyBits: // ok default: return nil, errors.New("invalid RSA key bit length") } exponent := uint32(key.E) switch pub.Params.RSADetail.Exponent { case 0: pub.Params.RSADetail.Exponent = exponent case exponent: // ok default: return nil, errors.New("invalid RSA key exponent") } if pub.Params.RSADetail.Exponent == tpm2.DefaultRSAExponent { pub.Params.RSADetail.Exponent = 0 } pub.Unique = &tpm2.PublicIDU{RSA: key.N.Bytes()} return pub, nil } // NewECCPublicKey returns a public area for the supplied elliptic key which can be used to verify // signatures. The public area can be customized with additional options. // // Without any options, the public area will have the following properties: // - SHA-256 for the name algorithm - customize with [WithNameAlg]. // - No ECC scheme - customize with [WithECCScheme]. // // The returned public area can be loaded into a TPM with [tpm2.TPMContext.LoadExternal]. func NewECCPublicKey(key *ecdsa.PublicKey, options ...PublicTemplateOption) (*tpm2.Public, error) { var curve tpm2.ECCCurve switch key.Curve { case elliptic.P224(): curve = tpm2.ECCCurveNIST_P224 case elliptic.P256(): curve = tpm2.ECCCurveNIST_P256 case elliptic.P384(): curve = tpm2.ECCCurveNIST_P384 case elliptic.P521(): curve = tpm2.ECCCurveNIST_P521 default: return nil, errors.New("unsupported curve") } pub := &tpm2.Public{ Type: tpm2.ObjectTypeECC, NameAlg: tpm2.HashAlgorithmSHA256, Attrs: tpm2.AttrSign, Params: &tpm2.PublicParamsU{ ECCDetail: &tpm2.ECCParams{ Symmetric: tpm2.SymDefObject{Algorithm: tpm2.SymObjectAlgorithmNull}, Scheme: tpm2.ECCScheme{Scheme: tpm2.ECCSchemeNull}, KDF: tpm2.KDFScheme{Scheme: tpm2.KDFAlgorithmNull}}}} applyPublicTemplateOptions(pub, options...) switch pub.Params.ECCDetail.CurveID { case tpm2.ECCCurve(0): pub.Params.ECCDetail.CurveID = curve case curve: // ok: default: return nil, errors.New("invalid elliptic curve") } pub.Unique = &tpm2.PublicIDU{ ECC: &tpm2.ECCPoint{ X: zeroExtendBytes(key.X, key.Params().BitSize/8), Y: zeroExtendBytes(key.Y, key.Params().BitSize/8)}} return pub, nil } // NewSealedObject returns a public and sensitive area for a sealed data object containing the // supplied data and with the specified auth value. The supplied [io.Reader] is used to generate // the seed parameter for the sensitive area. The public area can be customized with additional // options. // // Without any options, the public area will have the following properties: // - SHA-256 for the name algorithm - customize with [WithNameAlg]. // - Authorization with the object's auth value is permitted for both the user and admin roles - // customize with [WithUserAuthMode] and [WithAdminAuthMode]. // - DA protected - customize with [WithDictionaryAttackProtection] and // [WithoutDictionaryAttackProtection]. // // The returned public and sensitive area can be loaded into a TPM with // [tpm2.TPMContext.LoadExternal] or imported into a hierarchy by creating an importable object // with [CreateImportable]. func NewSealedObject(rand io.Reader, data []byte, authValue tpm2.Auth, options ...PublicTemplateOption) (*tpm2.Public, *tpm2.Sensitive, error) { pub := &tpm2.Public{ Type: tpm2.ObjectTypeKeyedHash, NameAlg: tpm2.HashAlgorithmSHA256, Attrs: tpm2.AttrUserWithAuth, Params: &tpm2.PublicParamsU{ KeyedHashDetail: &tpm2.KeyedHashParams{ Scheme: tpm2.KeyedHashScheme{Scheme: tpm2.KeyedHashSchemeNull}}}} applyPublicTemplateOptions(pub, options...) if len(authValue) > pub.NameAlg.Size() { return nil, nil, errors.New("authValue too large") } sensitive := &tpm2.Sensitive{ Type: tpm2.ObjectTypeKeyedHash, AuthValue: make(tpm2.Auth, pub.NameAlg.Size()), SeedValue: make(tpm2.Digest, pub.NameAlg.Size()), Sensitive: &tpm2.SensitiveCompositeU{Bits: data}} copy(sensitive.AuthValue, authValue) if _, err := io.ReadFull(rand, sensitive.SeedValue); err != nil { return nil, nil, err } h := pub.NameAlg.NewHash() h.Write(sensitive.SeedValue) h.Write(sensitive.Sensitive.Bits) pub.Unique = &tpm2.PublicIDU{KeyedHash: h.Sum(nil)} return pub, sensitive, nil } // NewSymmetricKey returns a public and sensitive area for the supplied symmetric key with the // specified usage and auth value. The supplied [io.Reader] is used to generate the seed parameter // for the sensitive area. The public area can be customized with additional options. // // Without any options, the public area will have the following properties: // - SHA-256 for the name algorithm - customize with [WithNameAlg]. // - Authorization with the object's auth value is permitted for both the user and admin roles - // customize with [WithUserAuthMode] and [WithAdminAuthMode]. // - DA protected - customize with [WithDictionaryAttackProtection] and // [WithoutDictionaryAttackProtection]. // - AES-128-CFB for the symmetric scheme - customize with [WithSymmetricScheme]. // // The returned public and sensitive area can be loaded into a TPM with // [tpm2.TPMContext.LoadExternal] or imported into a hierarchy by creating an importable object // with [CreateImportable]. func NewSymmetricKey(rand io.Reader, usage Usage, key []byte, authValue tpm2.Auth, options ...PublicTemplateOption) (*tpm2.Public, *tpm2.Sensitive, error) { if usage == 0 { panic("invalid usage") } attrs := tpm2.AttrUserWithAuth if usage&UsageDecrypt != 0 { attrs |= tpm2.AttrDecrypt } if usage&UsageEncrypt != 0 { attrs |= tpm2.AttrSign } pub := &tpm2.Public{ Type: tpm2.ObjectTypeSymCipher, NameAlg: tpm2.HashAlgorithmSHA256, Attrs: attrs, Params: &tpm2.PublicParamsU{ SymDetail: &tpm2.SymCipherParams{ Sym: tpm2.SymDefObject{ Algorithm: tpm2.SymObjectAlgorithmAES, KeyBits: new(tpm2.SymKeyBitsU), Mode: &tpm2.SymModeU{Sym: tpm2.SymModeCFB}}}}} applyPublicTemplateOptions(pub, options...) symKeyBits := uint16(len(key) * 8) switch pub.Params.SymDetail.Sym.KeyBits.Sym { case 0: pub.Params.SymDetail.Sym.KeyBits.Sym = symKeyBits case symKeyBits: // ok default: return nil, nil, errors.New("invalid symmetric key length") } if len(authValue) > pub.NameAlg.Size() { return nil, nil, errors.New("authValue too large") } sensitive := &tpm2.Sensitive{ Type: tpm2.ObjectTypeSymCipher, AuthValue: make(tpm2.Auth, pub.NameAlg.Size()), SeedValue: make(tpm2.Digest, pub.NameAlg.Size()), Sensitive: &tpm2.SensitiveCompositeU{Sym: key}} copy(sensitive.AuthValue, authValue) if _, err := io.ReadFull(rand, sensitive.SeedValue); err != nil { return nil, nil, err } h := pub.NameAlg.NewHash() h.Write(sensitive.SeedValue) h.Write(sensitive.Sensitive.Sym) pub.Unique = &tpm2.PublicIDU{Sym: h.Sum(nil)} return pub, sensitive, nil } // NewHMACKey returns a public and sensitive area for the supplied HMAC key with the specified auth // value. The supplied [io.Reader] is used to generate the seed parameter for the sensitive area. // The public area can be customized with additional options. // // Without any options, the public area will have the following properties: // - SHA-256 for the name algorithm - customize with [WithNameAlg]. // - Authorization with the object's auth value is permitted for both the user and admin roles - // customize with [WithUserAuthMode] and [WithAdminAuthMode]. // - DA protected - customize with [WithDictionaryAttackProtection] and // [WithoutDictionaryAttackProtection]. // - SHA-256 for the HMAC digest algorithm - customize with [WithHMACDigest]. // // The returned public and sensitive area can be loaded into a TPM with // [tpm2.TPMContext.LoadExternal] or imported into a hierarchy by creating an importable object // with [CreateImportable]. func NewHMACKey(rand io.Reader, key []byte, authValue tpm2.Auth, options ...PublicTemplateOption) (*tpm2.Public, *tpm2.Sensitive, error) { pub := &tpm2.Public{ Type: tpm2.ObjectTypeKeyedHash, NameAlg: tpm2.HashAlgorithmSHA256, Attrs: tpm2.AttrUserWithAuth | tpm2.AttrSign, Params: &tpm2.PublicParamsU{ KeyedHashDetail: &tpm2.KeyedHashParams{ Scheme: tpm2.KeyedHashScheme{ Scheme: tpm2.KeyedHashSchemeHMAC, Details: &tpm2.SchemeKeyedHashU{ HMAC: &tpm2.SchemeHMAC{HashAlg: tpm2.HashAlgorithmSHA256}}}}}} applyPublicTemplateOptions(pub, options...) if len(authValue) > pub.NameAlg.Size() { return nil, nil, errors.New("authValue too large") } sensitive := &tpm2.Sensitive{ Type: tpm2.ObjectTypeKeyedHash, AuthValue: make(tpm2.Auth, pub.NameAlg.Size()), SeedValue: make(tpm2.Digest, pub.NameAlg.Size()), Sensitive: &tpm2.SensitiveCompositeU{Bits: key}} copy(sensitive.AuthValue, authValue) if _, err := io.ReadFull(rand, sensitive.SeedValue); err != nil { return nil, nil, err } h := pub.NameAlg.NewHash() h.Write(sensitive.SeedValue) h.Write(sensitive.Sensitive.Bits) pub.Unique = &tpm2.PublicIDU{KeyedHash: h.Sum(nil)} return pub, sensitive, nil } ./github.com/canonical/go-tpm2/objectutil/named.go0000664000000000000000000000043300000000000017136 0ustar00// Copyright 2022 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package objectutil import ( "github.com/canonical/go-tpm2" ) // Named is some type that represents an object. type Named interface { Name() tpm2.Name } ./github.com/canonical/go-tpm2/objectutil/qn.go0000664000000000000000000000445000000000000016473 0ustar00// Copyright 2021 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package objectutil import ( "errors" "fmt" "github.com/canonical/go-tpm2" "github.com/canonical/go-tpm2/mu" ) func computeOneQualifiedName(object Named, parentQn tpm2.Name) (tpm2.Name, error) { switch { case object.Name().Type() == tpm2.NameTypeNone: return nil, nil case object.Name().Type() != tpm2.NameTypeDigest: return nil, errors.New("invalid name") case !object.Name().Algorithm().Available(): return nil, errors.New("name algorithm is not available") case !parentQn.IsValid() || parentQn.Type() == tpm2.NameTypeNone: return nil, errors.New("invalid parent qualified name") case parentQn.Algorithm() != tpm2.HashAlgorithmNull && parentQn.Algorithm() != object.Name().Algorithm(): return nil, errors.New("name algorithm mismatch") } h := object.Name().Algorithm().NewHash() h.Write(parentQn) h.Write(object.Name()) return mu.MustMarshalToBytes(object.Name().Algorithm(), mu.RawBytes(h.Sum(nil))), nil } // ComputeQualifiedName computes the qualified name of an object from the specified qualified name // of a root object and a list of ancestor objects. The ancestor objects are ordered starting with // the immediate child of the object associated with the root qualified name. func ComputeQualifiedName(object Named, rootQn tpm2.Name, ancestors ...Named) (tpm2.Name, error) { lastQn := rootQn for i, ancestor := range ancestors { var err error lastQn, err = computeOneQualifiedName(ancestor, lastQn) if err != nil { return nil, fmt.Errorf("cannot compute intermediate QN for ancestor at index %d: %w", i, err) } } return computeOneQualifiedName(object, lastQn) } // ComputeQualifiedNameInHierarchy computes the qualified name of an object protected in the // specified hierarchy from a list of ancestor objects. The ancestor objects are ordered // starting from the primary object. func ComputeQualifiedNameInHierarchy(object Named, hierarchy tpm2.Handle, ancestors ...Named) (tpm2.Name, error) { switch hierarchy { case tpm2.HandleOwner, tpm2.HandleNull, tpm2.HandleEndorsement, tpm2.HandlePlatform: // Good! default: return nil, errors.New("invalid hierarchy") } return ComputeQualifiedName(object, mu.MustMarshalToBytes(hierarchy), ancestors...) } ./github.com/canonical/go-tpm2/objectutil/templates.go0000664000000000000000000010041700000000000020053 0ustar00// Copyright 2023 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package objectutil import ( "github.com/canonical/go-tpm2" ) // Usage describes the usage of a key. type Usage int const ( // UsageSign indicates that a key can be used for signing. UsageSign Usage = 1 << iota // UsageDecrypt indicates that a key can be used for decryption. UsageDecrypt // UsageEncrypt indicates that a key can be used for encryption. UsageEncrypt = UsageSign // UsageKeyAgreement indicates that a key can be used for key agreement. UsageKeyAgreement = UsageDecrypt ) // PublicTemplateOption provides a way to customize the parameters of a public area or public // template. type PublicTemplateOption func(*tpm2.Public) // WithNameAlg returns an option for the specified name algorithm. func WithNameAlg(alg tpm2.HashAlgorithmId) PublicTemplateOption { return func(pub *tpm2.Public) { pub.NameAlg = alg } } // AuthMode represents an authorization mode for an object. type AuthMode int const ( // AllowAuthValue indicates that an object's auth value can be used for authorization with a // passphrase or HMAC session, in addition to a policy session. AllowAuthValue AuthMode = iota + 1 // RequirePolicy indicates that only a policy session can be used for authorization. RequirePolicy ) // WithUserAuthMode returns an option that specifies the supplied mode should be used for // authorization with the user role. func WithUserAuthMode(mode AuthMode) PublicTemplateOption { return func(pub *tpm2.Public) { switch mode { case AllowAuthValue: pub.Attrs |= tpm2.AttrUserWithAuth case RequirePolicy: pub.Attrs &^= tpm2.AttrUserWithAuth default: panic("invalid mode") } } } // WithAdminAuthMode returns an option that specifies the supplied mode should be used for // authorization with the admin role. func WithAdminAuthMode(mode AuthMode) PublicTemplateOption { return func(pub *tpm2.Public) { switch mode { case AllowAuthValue: pub.Attrs &^= tpm2.AttrAdminWithPolicy case RequirePolicy: pub.Attrs |= tpm2.AttrAdminWithPolicy default: panic("invalid mode") } } } // WithDictionaryAttackProtection returns an option that enables DA protection for an object. func WithDictionaryAttackProtection() PublicTemplateOption { return func(pub *tpm2.Public) { pub.Attrs &^= tpm2.AttrNoDA } } // WithoutDictionaryAttackProtection returns an option that disables DA protection for an object. func WithoutDictionaryAttackProtection() PublicTemplateOption { return func(pub *tpm2.Public) { pub.Attrs |= tpm2.AttrNoDA } } // WithExternalSensitiveData returns an option that indicates the sensitive data for an object was // or is to be generated outside of the TPM. func WithExternalSensitiveData() PublicTemplateOption { return func(pub *tpm2.Public) { pub.Attrs &^= tpm2.AttrSensitiveDataOrigin } } // WithInternalSensitiveData returns an option that indicates the sensitive data for an object // was or is to be generated by the TPM. func WithInternalSensitiveData() PublicTemplateOption { return func(pub *tpm2.Public) { pub.Attrs |= tpm2.AttrSensitiveDataOrigin } } // ProtectionGroupMode describes the protection group that an object is created within. type ProtectionGroupMode int const ( // NonDuplicable indicates that the protection group is not duplicable. This implies // tpm2.AttrFixedTPM and tpm2.AttrFixedParent are both set. NonDuplicable ProtectionGroupMode = iota + 1 // Duplicable indicates that the protection group is duplicable. This implies that // tpm2.AttrFixedTPM is not set. Duplicable // DuplicableEncrypted indicates that the protection group is duplicable with encryption. // This implies that tpm2.AttrFixedTPM is not set and tpm2.AttrEncryptedDuplication is set. DuplicableEncrypted ) // WithProtectionGroupMode returns an option for the specified protection group mode, which // describes the hierarchy that an object is created within. // // If mode is [NonDuplicable], then [tpm2.AttrFixedTPM] will be set and // [tpm2.AttrEncryptedDuplication] will be unset. [tpm2.AttrFixedParent] will also be set, which // is equivalent to setting [DuplicationMode] to [FixedParent]. // // If mode is [Duplicable], then both [tpm2.AttrFixedTPM] and [tpm2.AttrEncryptedDuplication] will // be unset. // // If mode is [DuplicableEncrypted], then [tpm2.AttrFixedTPM] will be unset and // [tpm2.AttrEncryptedDuplication] will be set. func WithProtectionGroupMode(mode ProtectionGroupMode) PublicTemplateOption { return func(pub *tpm2.Public) { switch mode { case NonDuplicable: pub.Attrs &^= tpm2.AttrEncryptedDuplication pub.Attrs |= (tpm2.AttrFixedTPM | tpm2.AttrFixedParent) case Duplicable: pub.Attrs &^= (tpm2.AttrFixedTPM | tpm2.AttrEncryptedDuplication) case DuplicableEncrypted: pub.Attrs &^= tpm2.AttrFixedTPM pub.Attrs |= tpm2.AttrEncryptedDuplication default: panic("invalid mode") } } } // WithProtectionGroupModeFromParent returns an option that sets the protection group mode // based on the attributes of the supplied parent public area. func WithProtectionGroupModeFromParent(parent *tpm2.Public) PublicTemplateOption { switch { case parent.Attrs&(tpm2.AttrFixedTPM|tpm2.AttrFixedParent) == tpm2.AttrFixedTPM|tpm2.AttrFixedParent: return WithProtectionGroupMode(NonDuplicable) case parent.Attrs&(tpm2.AttrFixedTPM|tpm2.AttrEncryptedDuplication) == 0: return WithProtectionGroupMode(Duplicable) case parent.Attrs&(tpm2.AttrFixedTPM|tpm2.AttrEncryptedDuplication) == tpm2.AttrEncryptedDuplication: return WithProtectionGroupMode(DuplicableEncrypted) default: panic("invalid mode") } } // DuplicationMode describes whether an object can be duplicated directly. type DuplicationMode int const ( // FixedParent indicates that the object cannot be duplicated directory. This implies that // tpm2.AttrFixedParent is set. FixedParent DuplicationMode = iota + 1 // DuplicationRoot indicates that the object is a duplication root. This implies that // tpm2.AttrFixedParent is not set. DuplicationRoot // DuplicationRootEncrypted indicates that the object is a duplication root and duplication // requires encryption. This implies that tpm2.AttrFixedParent is not set and // tpm2.AttrEncryptedDuplication is set. DuplicationRootEncrypted ) // WithDuplicationMode returns an option for the specified duplication mode, which describes // whether an object can be duplicated. // // If mode is [FixedParent] then the [tpm2.AttrFixedParent] attribute is set. // // If mode is [DuplicationRoot], this unsets both [tpm2.AttrFixedTPM] and [tpm2.AttrFixedParent], and // doesn't change [tpm2.AttrEncryptedDuplication]. In this case, whether encrypted duplication is // required will be determined by the protection group, which is inherited from the result of // [WithProtectionGroupMode]. // // If mode is [DuplicationRootEncrypted], this behaves like [DuplicationRoot] but also sets // [tpm2.AttrEncryptedDuplication] so that duplication requires encryption. Note that this is only // valid if the protection group the object is created within is not duplicable (the parent object // has the [tpm2.AttrFixedTPM] attribute set) or the protection group is already duplicable with // encryption (the parent object has the [tpm2.AttrFixedTPM] attribute unset and the // [tpm2.AttrEncryptedDuplication] attribute set). func WithDuplicationMode(mode DuplicationMode) PublicTemplateOption { return func(pub *tpm2.Public) { switch mode { case FixedParent: pub.Attrs |= tpm2.AttrFixedParent case DuplicationRoot: pub.Attrs &^= (tpm2.AttrFixedTPM | tpm2.AttrFixedParent) case DuplicationRootEncrypted: if pub.Attrs&(tpm2.AttrFixedTPM|tpm2.AttrEncryptedDuplication) == 0 { panic("invalid mode for protection group") } pub.Attrs &^= (tpm2.AttrFixedTPM | tpm2.AttrFixedParent) pub.Attrs |= tpm2.AttrEncryptedDuplication default: panic("invalid mode") } } } // WithAuthPolicy returns an option that sets the specified authorization policy digest. func WithAuthPolicy(policy tpm2.Digest) PublicTemplateOption { return func(pub *tpm2.Public) { pub.AuthPolicy = policy } } // WithSymmetricScheme returns an option for the specified symmetric mode. This will panic for // objects with the type [tpm2.ObjectTypeKeyedHash]. // // Symmetric keys and asymmetric storage keys always have a symmetric scheme. Other keys never have // a symmetric scheme. Only [tpm2.SymModeCFB] is valid for storage keys. func WithSymmetricScheme(alg tpm2.SymObjectAlgorithmId, keyBits uint16, mode tpm2.SymModeId) PublicTemplateOption { return func(pub *tpm2.Public) { sym := tpm2.SymDefObject{ Algorithm: alg, KeyBits: &tpm2.SymKeyBitsU{Sym: keyBits}, Mode: &tpm2.SymModeU{Sym: mode}} switch pub.Type { case tpm2.ObjectTypeRSA: pub.Params.RSADetail.Symmetric = sym case tpm2.ObjectTypeECC: pub.Params.ECCDetail.Symmetric = sym case tpm2.ObjectTypeSymCipher: pub.Params.SymDetail.Sym = sym default: panic("invalid object type") } } } // WithSymmetricUnique returns an option for the specified public identity. This will panic for // objects with a type other than [tpm2.ObjectTypeSymCipher]. // // This is useful when creating templates for primary keys. func WithSymmetricUnique(unique tpm2.Digest) PublicTemplateOption { return func(pub *tpm2.Public) { if pub.Type != tpm2.ObjectTypeSymCipher { panic("invalid object type") } pub.Unique = &tpm2.PublicIDU{Sym: make([]byte, len(unique))} copy(pub.Unique.Sym, unique) } } // WithRSAKeyBits returns an option for the specified RSA key size in bits. This will panic for // objects with a type other than [tpm2.ObjectTypeRSA]. func WithRSAKeyBits(keyBits uint16) PublicTemplateOption { return func(pub *tpm2.Public) { if pub.Type != tpm2.ObjectTypeRSA { panic("invalid object type") } pub.Params.RSADetail.KeyBits = keyBits } } // WithRSAParams returns an option for the specified RSA key size in bits and the specified // pbulic exponent. This will panic for objects with a type other than [tpm2.ObjectTypeRSA]. func WithRSAParams(keyBits uint16, exponent uint32) PublicTemplateOption { return func(pub *tpm2.Public) { if pub.Type != tpm2.ObjectTypeRSA { panic("invalid object type") } if exponent == tpm2.DefaultRSAExponent { exponent = 0 } pub.Params.RSADetail.KeyBits = keyBits pub.Params.RSADetail.Exponent = exponent } } // WithRSAScheme returns an option for the specified RSA scheme. This will panic for objects with a // type other than [tpm2.ObjectTypeRSA]. // // Attestation keys always have a signing scheme. Storage keys never have a scheme set. Decrypt or // signing keys may have an appropriate scheme set. func WithRSAScheme(scheme tpm2.RSASchemeId, hashAlg tpm2.HashAlgorithmId) PublicTemplateOption { return func(pub *tpm2.Public) { if pub.Type != tpm2.ObjectTypeRSA { panic("invalid object type") } s := tpm2.RSAScheme{ Scheme: scheme, Details: new(tpm2.AsymSchemeU)} switch scheme { case tpm2.RSASchemeRSASSA: s.Details.RSASSA = &tpm2.SigSchemeRSASSA{HashAlg: hashAlg} case tpm2.RSASchemeRSAES: s.Details.RSAES = new(tpm2.EncSchemeRSAES) if hashAlg != tpm2.HashAlgorithmNull { panic("invalid digest") } case tpm2.RSASchemeRSAPSS: s.Details.RSAPSS = &tpm2.SigSchemeRSAPSS{HashAlg: hashAlg} case tpm2.RSASchemeOAEP: s.Details.OAEP = &tpm2.EncSchemeOAEP{HashAlg: hashAlg} } pub.Params.RSADetail.Scheme = s } } // WithRSAUnique returns an option for the specified public identity. This will panic for // objects with a type other than [tpm2.ObjectTypeRSA]. // // This is useful when creating templates for primary keys. func WithRSAUnique(unique tpm2.PublicKeyRSA) PublicTemplateOption { return func(pub *tpm2.Public) { if pub.Type != tpm2.ObjectTypeRSA { panic("invalid object type") } pub.Unique = &tpm2.PublicIDU{RSA: make([]byte, len(unique))} copy(pub.Unique.RSA, unique) } } // WithECCCurve returns an option for the specified elliptic curve. This will panic for objects with a // type other than [tpm2.ObjectTypeECC]. func WithECCCurve(curve tpm2.ECCCurve) PublicTemplateOption { return func(pub *tpm2.Public) { if pub.Type != tpm2.ObjectTypeECC { panic("invalid object type") } pub.Params.ECCDetail.CurveID = curve } } // WithECCScheme returns an option for the specified ECC scheme. This will panic for objects with a // type other than [tpm2.ObjectTypeECC]. // // Attestation keys always have a signing scheme. Storage keys never have a scheme set. Key // exchange or signing keys may have an appropriate scheme set. func WithECCScheme(scheme tpm2.ECCSchemeId, hashAlg tpm2.HashAlgorithmId) PublicTemplateOption { return func(pub *tpm2.Public) { if pub.Type != tpm2.ObjectTypeECC { panic("invalid object type") } s := tpm2.ECCScheme{ Scheme: scheme, Details: new(tpm2.AsymSchemeU)} switch scheme { case tpm2.ECCSchemeECDSA: s.Details.ECDSA = &tpm2.SigSchemeECDSA{HashAlg: hashAlg} case tpm2.ECCSchemeECDH: s.Details.ECDH = &tpm2.KeySchemeECDH{HashAlg: hashAlg} case tpm2.ECCSchemeECDAA: s.Details.ECDAA = &tpm2.SigSchemeECDAA{HashAlg: hashAlg} case tpm2.ECCSchemeSM2: s.Details.SM2 = &tpm2.SigSchemeSM2{HashAlg: hashAlg} case tpm2.ECCSchemeECSchnorr: s.Details.ECSchnorr = &tpm2.SigSchemeECSchnorr{HashAlg: hashAlg} case tpm2.ECCSchemeECMQV: s.Details.ECMQV = &tpm2.KeySchemeECMQV{HashAlg: hashAlg} } pub.Params.ECCDetail.Scheme = s } } // WithECCUnique returns an option for the specified public identity. This will panic for // objects with a type other than [tpm2.ObjectTypeECC]. // // This is useful when creating templates for primary keys. func WithECCUnique(unique *tpm2.ECCPoint) PublicTemplateOption { return func(pub *tpm2.Public) { if pub.Type != tpm2.ObjectTypeECC { panic("invalid object type") } pub.Unique = &tpm2.PublicIDU{ ECC: &tpm2.ECCPoint{ X: make([]byte, len(unique.X)), Y: make([]byte, len(unique.Y))}} copy(pub.Unique.ECC.X, unique.X) copy(pub.Unique.ECC.Y, unique.Y) } } // WithHMACDigest returns an option for the specified HMAC digest algorithm. This will panic for // objects with a type other than [tpm2.ObjectTypeKeyedHash] and a scheme other than // [tpm2.KeyedHashSchemeHMAC]. func WithHMACDigest(alg tpm2.HashAlgorithmId) PublicTemplateOption { return func(pub *tpm2.Public) { if pub.Type != tpm2.ObjectTypeKeyedHash || pub.Params.KeyedHashDetail.Scheme.Scheme != tpm2.KeyedHashSchemeHMAC { panic("invalid object type") } pub.Params.KeyedHashDetail.Scheme.Details.HMAC = &tpm2.SchemeHMAC{HashAlg: alg} } } // WithDerivationScheme returns an option for the specified derivation scheme. This will panic for // objects with a type other than [tpm2.ObjectTypeKeyedHash], a scheme other than // [tpm2.KeyedHashSchemeXOR] and objects that aren't parents. This option is intended for // derivation parents. func WithDerivationScheme(hashAlg tpm2.HashAlgorithmId, kdf tpm2.KDFAlgorithmId) PublicTemplateOption { return func(pub *tpm2.Public) { if pub.Type != tpm2.ObjectTypeKeyedHash || pub.Params.KeyedHashDetail.Scheme.Scheme != tpm2.KeyedHashSchemeXOR || pub.Attrs&(tpm2.AttrRestricted|tpm2.AttrDecrypt|tpm2.AttrSign) != (tpm2.AttrRestricted|tpm2.AttrDecrypt) { panic("invalid object type") } pub.Params.KeyedHashDetail.Scheme.Details.XOR = &tpm2.SchemeXOR{HashAlg: hashAlg, KDF: kdf} } } // WithKeyedHashUnique returns an option for the specified public identity. This will panic for // objects with a type other than [tpm2.ObjectTypeKeyedHash]. // // This is useful when creating templates for primary keys. func WithKeyedHashUnique(unique tpm2.Digest) PublicTemplateOption { return func(pub *tpm2.Public) { if pub.Type != tpm2.ObjectTypeKeyedHash { panic("invalid object type") } pub.Unique = &tpm2.PublicIDU{KeyedHash: make([]byte, len(unique))} copy(pub.Unique.KeyedHash, unique) } } func applyPublicTemplateOptions(pub *tpm2.Public, options ...PublicTemplateOption) { for _, option := range options { option(pub) } } // NewRSAStorageKeyTemplate returns a template for a RSA storage key. The template can be // customized by supplying additional options. // // Without any options, the template will have the following properties: // - SHA-256 for the name algorithm - customize with [WithNameAlg]. // - Authorization with the object's auth value is permitted for both the user and admin roles - // customize with [WithUserAuthMode] and [WithAdminAuthMode]. // - DA protected - customize with [WithDictionaryAttackProtection] and // [WithoutDictionaryAttackProtection]. // - Not duplicable - customize with [WithProtectionGroupMode] and [WithDuplicationMode]. // - AES-128-CFB for the symmetric scheme - customize with [WithSymmetricScheme]. // - RSA key size of 2048 bits - customize with [WithRSAKeyBits]. func NewRSAStorageKeyTemplate(options ...PublicTemplateOption) *tpm2.Public { template := &tpm2.Public{ Type: tpm2.ObjectTypeRSA, NameAlg: tpm2.HashAlgorithmSHA256, Attrs: tpm2.AttrFixedTPM | tpm2.AttrFixedParent | tpm2.AttrSensitiveDataOrigin | tpm2.AttrUserWithAuth | tpm2.AttrRestricted | tpm2.AttrDecrypt, Params: &tpm2.PublicParamsU{ RSADetail: &tpm2.RSAParams{ Symmetric: tpm2.SymDefObject{ Algorithm: tpm2.SymObjectAlgorithmAES, KeyBits: &tpm2.SymKeyBitsU{Sym: 128}, Mode: &tpm2.SymModeU{Sym: tpm2.SymModeCFB}}, Scheme: tpm2.RSAScheme{Scheme: tpm2.RSASchemeNull}, KeyBits: 2048, Exponent: 0}}} applyPublicTemplateOptions(template, options...) return template } // NewRSAAttestationKeyTemplate returns a template for a RSA attestation key. The template can be // customized by supplying additional options. // // Without any options, the template will have the following properties: // - SHA-256 for the name algorithm - customize with [WithNameAlg]. // - Authorization with the object's auth value is permitted for both the user and admin roles - // customize with [WithUserAuthMode] and [WithAdminAuthMode]. // - DA protected - customize with [WithDictionaryAttackProtection] and // [WithoutDictionaryAttackProtection]. // - Not duplicable - customize with [WithProtectionGroupMode] and [WithDuplicationMode]. // - RSA key size of 2048 bits - customize with [WithRSAKeyBits]. // - RSA-PSS and SHA-256 for the RSA scheme - customize with [WithRSAScheme]. func NewRSAAttestationKeyTemplate(options ...PublicTemplateOption) *tpm2.Public { template := &tpm2.Public{ Type: tpm2.ObjectTypeRSA, NameAlg: tpm2.HashAlgorithmSHA256, Attrs: tpm2.AttrFixedTPM | tpm2.AttrFixedParent | tpm2.AttrSensitiveDataOrigin | tpm2.AttrUserWithAuth | tpm2.AttrRestricted | tpm2.AttrSign, Params: &tpm2.PublicParamsU{ RSADetail: &tpm2.RSAParams{ Symmetric: tpm2.SymDefObject{Algorithm: tpm2.SymObjectAlgorithmNull}, Scheme: tpm2.RSAScheme{ Scheme: tpm2.RSASchemeRSAPSS, Details: &tpm2.AsymSchemeU{ RSAPSS: &tpm2.SigSchemeRSAPSS{HashAlg: tpm2.HashAlgorithmSHA256}}}, KeyBits: 2048, Exponent: 0}}} applyPublicTemplateOptions(template, options...) return template } // NewRSAKeyTemplate returns a template for a RSA key with the specicied usage. The template can be // customized by supplying additional options. // // Without any options, the template will have the following properties: // - SHA-256 for the name algorithm - customize with [WithNameAlg]. // - Authorization with the object's auth value is permitted for both the user and admin roles - // customize with [WithUserAuthMode] and [WithAdminAuthMode]. // - DA protected - customize with [WithDictionaryAttackProtection] and // [WithoutDictionaryAttackProtection]. // - Not duplicable - customize with [WithProtectionGroupMode] and [WithDuplicationMode]. // - RSA key size of 2048 bits - customize with [WithRSAKeyBits]. // - No RSA scheme - customize with [WithRSAScheme]. func NewRSAKeyTemplate(usage Usage, options ...PublicTemplateOption) *tpm2.Public { if usage == 0 { panic("invalid usage") } attrs := tpm2.AttrFixedTPM | tpm2.AttrFixedParent | tpm2.AttrSensitiveDataOrigin | tpm2.AttrUserWithAuth if usage&UsageDecrypt != 0 { attrs |= tpm2.AttrDecrypt } if usage&UsageSign != 0 { attrs |= tpm2.AttrSign } template := &tpm2.Public{ Type: tpm2.ObjectTypeRSA, NameAlg: tpm2.HashAlgorithmSHA256, Attrs: attrs, Params: &tpm2.PublicParamsU{ RSADetail: &tpm2.RSAParams{ Symmetric: tpm2.SymDefObject{Algorithm: tpm2.SymObjectAlgorithmNull}, Scheme: tpm2.RSAScheme{Scheme: tpm2.RSASchemeNull}, KeyBits: 2048, Exponent: 0}}} applyPublicTemplateOptions(template, options...) return template } // NewECCStorageKeyTemplate returns a template for a ECC storage key. The template can be // customized by supplying additional options. // // Without any options, the template will have the following properties: // - SHA-256 for the name algorithm - customize with [WithNameAlg]. // - Authorization with the object's auth value is permitted for both the user and admin roles - // customize with [WithUserAuthMode] and [WithAdminAuthMode]. // - DA protected - customize with [WithDictionaryAttackProtection] and // [WithoutDictionaryAttackProtection]. // - Not duplicable - customize with [WithProtectionGroupMode] and [WithDuplicationMode]. // - AES-128-CFB for the symmetric scheme - customize with [WithSymmetricScheme]. // - NIST P-256 for the curve - customize with [WithECCCurve]. func NewECCStorageKeyTemplate(options ...PublicTemplateOption) *tpm2.Public { template := &tpm2.Public{ Type: tpm2.ObjectTypeECC, NameAlg: tpm2.HashAlgorithmSHA256, Attrs: tpm2.AttrFixedTPM | tpm2.AttrFixedParent | tpm2.AttrSensitiveDataOrigin | tpm2.AttrUserWithAuth | tpm2.AttrRestricted | tpm2.AttrDecrypt, Params: &tpm2.PublicParamsU{ ECCDetail: &tpm2.ECCParams{ Symmetric: tpm2.SymDefObject{ Algorithm: tpm2.SymObjectAlgorithmAES, KeyBits: &tpm2.SymKeyBitsU{Sym: 128}, Mode: &tpm2.SymModeU{Sym: tpm2.SymModeCFB}}, Scheme: tpm2.ECCScheme{Scheme: tpm2.ECCSchemeNull}, CurveID: tpm2.ECCCurveNIST_P256, KDF: tpm2.KDFScheme{Scheme: tpm2.KDFAlgorithmNull}}}} applyPublicTemplateOptions(template, options...) return template } // NewECCAttestationKeyTemplate returns a template for a ECC attestation key. The template can be // customized by supplying additional options. // // Without any options, the template will have the following properties: // - SHA-256 for the name algorithm - customize with [WithNameAlg]. // - Authorization with the object's auth value is permitted for both the user and admin roles - // customize with [WithUserAuthMode] and [WithAdminAuthMode]. // - DA protected - customize with [WithDictionaryAttackProtection] and // [WithoutDictionaryAttackProtection]. // - Not duplicable - customize with [WithProtectionGroupMode] and [WithDuplicationMode]. // - NIST P-256 for the curve - customize with [WithECCCurve]. // - ECDSA and SHA-256 for the ECC scheme - customize with [WithECCScheme]. func NewECCAttestationKeyTemplate(options ...PublicTemplateOption) *tpm2.Public { template := &tpm2.Public{ Type: tpm2.ObjectTypeECC, NameAlg: tpm2.HashAlgorithmSHA256, Attrs: tpm2.AttrFixedTPM | tpm2.AttrFixedParent | tpm2.AttrSensitiveDataOrigin | tpm2.AttrUserWithAuth | tpm2.AttrRestricted | tpm2.AttrSign, Params: &tpm2.PublicParamsU{ ECCDetail: &tpm2.ECCParams{ Symmetric: tpm2.SymDefObject{Algorithm: tpm2.SymObjectAlgorithmNull}, Scheme: tpm2.ECCScheme{ Scheme: tpm2.ECCSchemeECDSA, Details: &tpm2.AsymSchemeU{ ECDSA: &tpm2.SigSchemeECDSA{HashAlg: tpm2.HashAlgorithmSHA256}}}, CurveID: tpm2.ECCCurveNIST_P256, KDF: tpm2.KDFScheme{Scheme: tpm2.KDFAlgorithmNull}}}} applyPublicTemplateOptions(template, options...) return template } // NewECCKeyTemplate returns a template for a ECC key with the specicied usage. The template can be // customized by supplying additional options. // // Without any options, the template will have the following properties: // - SHA-256 for the name algorithm - customize with [WithNameAlg]. // - Authorization with the object's auth value is permitted for both the user and admin roles - // customize with [WithUserAuthMode] and [WithAdminAuthMode]. // - DA protected - customize with [WithDictionaryAttackProtection] and // [WithoutDictionaryAttackProtection]. // - Not duplicable - customize with [WithProtectionGroupMode] and [WithDuplicationMode]. // - NIST-P256 for the curve - customize with [WithECCCurve]. // - No ECC scheme - customize with [WithECCScheme]. func NewECCKeyTemplate(usage Usage, options ...PublicTemplateOption) *tpm2.Public { if usage == 0 { panic("invalid usage") } attrs := tpm2.AttrFixedTPM | tpm2.AttrFixedParent | tpm2.AttrSensitiveDataOrigin | tpm2.AttrUserWithAuth if usage&UsageKeyAgreement != 0 { attrs |= tpm2.AttrDecrypt } if usage&UsageSign != 0 { attrs |= tpm2.AttrSign } template := &tpm2.Public{ Type: tpm2.ObjectTypeECC, NameAlg: tpm2.HashAlgorithmSHA256, Attrs: attrs, Params: &tpm2.PublicParamsU{ ECCDetail: &tpm2.ECCParams{ Symmetric: tpm2.SymDefObject{Algorithm: tpm2.SymObjectAlgorithmNull}, Scheme: tpm2.ECCScheme{Scheme: tpm2.ECCSchemeNull}, CurveID: tpm2.ECCCurveNIST_P256, KDF: tpm2.KDFScheme{Scheme: tpm2.KDFAlgorithmNull}}}} applyPublicTemplateOptions(template, options...) return template } // NewSymmetricStorageKeyTemplate returns a template for a symmetric storage key. The template can be // customized by supplying additional options. // // Without any options, the template will have the following properties: // - SHA-256 for the name algorithm - customize with [WithNameAlg]. // - Authorization with the object's auth value is permitted for both the user and admin roles - // customize with [WithUserAuthMode] and [WithAdminAuthMode]. // - DA protected - customize with [WithDictionaryAttackProtection] and // [WithoutDictionaryAttackProtection]. // - Sensitive data generated by the TPM - customize with [WithInternalSensitiveData] and // [WithExternalSensitiveData]. // - Not duplicable - customize with [WithProtectionGroupMode] and [WithDuplicationMode]. // - AES-128-CFB for the symmetric scheme - customize with [WithSymmetricScheme]. func NewSymmetricStorageKeyTemplate(options ...PublicTemplateOption) *tpm2.Public { template := &tpm2.Public{ Type: tpm2.ObjectTypeSymCipher, NameAlg: tpm2.HashAlgorithmSHA256, Attrs: tpm2.AttrFixedTPM | tpm2.AttrFixedParent | tpm2.AttrSensitiveDataOrigin | tpm2.AttrUserWithAuth | tpm2.AttrRestricted | tpm2.AttrDecrypt, Params: &tpm2.PublicParamsU{ SymDetail: &tpm2.SymCipherParams{ Sym: tpm2.SymDefObject{ Algorithm: tpm2.SymObjectAlgorithmAES, KeyBits: &tpm2.SymKeyBitsU{Sym: 128}, Mode: &tpm2.SymModeU{Sym: tpm2.SymModeCFB}}}}} applyPublicTemplateOptions(template, options...) return template } // NewSymmetricKeyTemplate returns a template for a symmetric key with the specicied usage. The template can be // customized by supplying additional options. // // Without any options, the template will have the following properties: // - SHA-256 for the name algorithm - customize with [WithNameAlg]. // - Authorization with the object's auth value is permitted for both the user and admin roles - // customize with [WithUserAuthMode] and [WithAdminAuthMode]. // - DA protected - customize with [WithDictionaryAttackProtection] and // [WithoutDictionaryAttackProtection]. // - Sensitive data generated by the TPM - customize with [WithInternalSensitiveData] and // [WithExternalSensitiveData]. // - Not duplicable - customize with [WithProtectionGroupMode] and [WithDuplicationMode]. // - AES-128-CFB for the symmetric scheme - customize with [WithSymmetricScheme]. func NewSymmetricKeyTemplate(usage Usage, options ...PublicTemplateOption) *tpm2.Public { if usage == 0 { panic("invalid usage") } attrs := tpm2.AttrFixedTPM | tpm2.AttrFixedParent | tpm2.AttrSensitiveDataOrigin | tpm2.AttrUserWithAuth if usage&UsageDecrypt != 0 { attrs |= tpm2.AttrDecrypt } if usage&UsageEncrypt != 0 { attrs |= tpm2.AttrSign } template := &tpm2.Public{ Type: tpm2.ObjectTypeSymCipher, NameAlg: tpm2.HashAlgorithmSHA256, Attrs: attrs, Params: &tpm2.PublicParamsU{ SymDetail: &tpm2.SymCipherParams{ Sym: tpm2.SymDefObject{ Algorithm: tpm2.SymObjectAlgorithmAES, KeyBits: &tpm2.SymKeyBitsU{Sym: 128}, Mode: &tpm2.SymModeU{Sym: tpm2.SymModeCFB}}}}} applyPublicTemplateOptions(template, options...) return template } // NewHMACKeyTemplate returns a template for a HMAC key. The template can be customized by // supplying additional options. // // Without any options, the template will have the following properties: // - SHA-256 for the name algorithm - customize with [WithNameAlg]. // - Authorization with the object's auth value is permitted for both the user and admin roles - // customize with [WithUserAuthMode] and [WithAdminAuthMode]. // - DA protected - customize with [WithDictionaryAttackProtection] and // [WithoutDictionaryAttackProtection]. // - Sensitive data generated by the TPM - customize with [WithInternalSensitiveData] and // [WithExternalSensitiveData]. // - Not duplicable - customize with [WithProtectionGroupMode] and [WithDuplicationMode]. // - SHA-256 for the HMAC digest algorithm - customize with [WithHMACDigest]. func NewHMACKeyTemplate(options ...PublicTemplateOption) *tpm2.Public { template := &tpm2.Public{ Type: tpm2.ObjectTypeKeyedHash, NameAlg: tpm2.HashAlgorithmSHA256, Attrs: tpm2.AttrFixedTPM | tpm2.AttrFixedParent | tpm2.AttrSensitiveDataOrigin | tpm2.AttrUserWithAuth | tpm2.AttrSign, Params: &tpm2.PublicParamsU{ KeyedHashDetail: &tpm2.KeyedHashParams{ Scheme: tpm2.KeyedHashScheme{ Scheme: tpm2.KeyedHashSchemeHMAC, Details: &tpm2.SchemeKeyedHashU{ HMAC: &tpm2.SchemeHMAC{HashAlg: tpm2.HashAlgorithmSHA256}}}}}} applyPublicTemplateOptions(template, options...) return template } // NewDerivationParentTemplate returns a template for a derivation parent. The template can be // customized by supplying additional options. // // Without any options, the template will have the following properties: // - SHA-256 for the name algorithm - customize with [WithNameAlg]. // - Authorization with the object's auth value is permitted for both the user and admin roles - // customize with [WithUserAuthMode] and [WithAdminAuthMode]. // - DA protected - customize with [WithDictionaryAttackProtection] and // [WithoutDictionaryAttackProtection]. // - Sensitive data generated by the TPM - customize with [WithInternalSensitiveData] and // [WithExternalSensitiveData]. // - Not duplicable - customize with [WithProtectionGroupMode] and [WithDuplicationMode]. // - SHA-256 and SP800-108 KDF for the derivation scheme - customize with [WithDerivationScheme]. func NewDerivationParentTemplate(options ...PublicTemplateOption) *tpm2.Public { template := &tpm2.Public{ Type: tpm2.ObjectTypeKeyedHash, NameAlg: tpm2.HashAlgorithmSHA256, Attrs: tpm2.AttrFixedTPM | tpm2.AttrFixedParent | tpm2.AttrSensitiveDataOrigin | tpm2.AttrUserWithAuth | tpm2.AttrRestricted | tpm2.AttrDecrypt, Params: &tpm2.PublicParamsU{ KeyedHashDetail: &tpm2.KeyedHashParams{ Scheme: tpm2.KeyedHashScheme{ Scheme: tpm2.KeyedHashSchemeXOR, Details: &tpm2.SchemeKeyedHashU{ XOR: &tpm2.SchemeXOR{ HashAlg: tpm2.HashAlgorithmSHA256, KDF: tpm2.KDFAlgorithmKDF1_SP800_108}}}}}} applyPublicTemplateOptions(template, options...) return template } // NewSealedObjectTemplate returns a template for a sealed object. The template can be customized // by supplying additional options. // // Without any options, the template will have the following properties: // - SHA-256 for the name algorithm - customize with [WithNameAlg]. // - Authorization with the object's auth value is permitted for both the user and admin roles - // customize with [WithUserAuthMode] and [WithAdminAuthMode]. // - DA protected - customize with [WithDictionaryAttackProtection] and // [WithoutDictionaryAttackProtection]. // - Not duplicable - customize with [WithProtectionGroupMode] and [WithDuplicationMode]. func NewSealedObjectTemplate(options ...PublicTemplateOption) *tpm2.Public { template := &tpm2.Public{ Type: tpm2.ObjectTypeKeyedHash, NameAlg: tpm2.HashAlgorithmSHA256, Attrs: tpm2.AttrFixedTPM | tpm2.AttrFixedParent | tpm2.AttrUserWithAuth, Params: &tpm2.PublicParamsU{ KeyedHashDetail: &tpm2.KeyedHashParams{ Scheme: tpm2.KeyedHashScheme{Scheme: tpm2.KeyedHashSchemeNull}}}} applyPublicTemplateOptions(template, options...) return template } ./github.com/canonical/go-tpm2/paramcrypt.go0000664000000000000000000000721600000000000016076 0ustar00// Copyright 2019 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package tpm2 import ( "crypto/aes" "encoding/binary" "errors" "fmt" internal_crypt "github.com/canonical/go-tpm2/internal/crypt" "github.com/canonical/go-tpm2/mu" ) func isParamEncryptable(param interface{}) bool { return mu.DetermineTPMKind(param) == mu.TPMKindSized } func (s *sessionParam) ComputeSessionValue() []byte { var key []byte key = append(key, s.Session.Params().SessionKey...) if s.IsAuth() { key = append(key, trimAuthValue(s.AssociatedResource.AuthValue())...) } return key } func (p *sessionParams) decryptSession() (*sessionParam, int) { if p.DecryptSessionIndex == -1 { return nil, -1 } return p.Sessions[p.DecryptSessionIndex], p.DecryptSessionIndex } func (p *sessionParams) encryptSession() (*sessionParam, int) { if p.EncryptSessionIndex == -1 { return nil, -1 } return p.Sessions[p.EncryptSessionIndex], p.EncryptSessionIndex } func (p *sessionParams) hasDecryptSession() bool { return p.DecryptSessionIndex != -1 } func (p *sessionParams) ComputeEncryptNonce() { s, i := p.encryptSession() if s == nil || i == 0 || !p.Sessions[0].IsAuth() { return } ds, di := p.decryptSession() if ds != nil && di == i { return } p.Sessions[0].EncryptNonce = s.Session.State().NonceTPM } func (p *sessionParams) EncryptCommandParameter(cpBytes []byte) error { s, i := p.decryptSession() if s == nil { return nil } hashAlg := s.Session.Params().HashAlg sessionValue := s.ComputeSessionValue() size := binary.BigEndian.Uint16(cpBytes) data := cpBytes[2 : size+2] symmetric := s.Session.Params().Symmetric switch symmetric.Algorithm { case SymAlgorithmAES: if symmetric.Mode.Sym != SymModeCFB { return errors.New("unsupported cipher mode") } k := internal_crypt.KDFa(hashAlg.GetHash(), sessionValue, []byte(CFBKey), s.NonceCaller, s.Session.State().NonceTPM, int(symmetric.KeyBits.Sym)+(aes.BlockSize*8)) offset := (symmetric.KeyBits.Sym + 7) / 8 symKey := k[0:offset] iv := k[offset:] if err := internal_crypt.SymmetricEncrypt(symmetric.Algorithm, symKey, iv, data); err != nil { return fmt.Errorf("AES encryption failed: %v", err) } case SymAlgorithmXOR: internal_crypt.XORObfuscation(hashAlg.GetHash(), sessionValue, s.NonceCaller, s.Session.State().NonceTPM, data) default: return fmt.Errorf("unknown symmetric algorithm: %v", symmetric.Algorithm) } if i > 0 && p.Sessions[0].IsAuth() { p.Sessions[0].DecryptNonce = s.Session.State().NonceTPM } return nil } func (p *sessionParams) DecryptResponseParameter(rpBytes []byte) error { s, _ := p.encryptSession() if s == nil { return nil } hashAlg := s.Session.Params().HashAlg sessionValue := s.ComputeSessionValue() size := binary.BigEndian.Uint16(rpBytes) data := rpBytes[2 : size+2] symmetric := s.Session.Params().Symmetric switch symmetric.Algorithm { case SymAlgorithmAES: if symmetric.Mode.Sym != SymModeCFB { return errors.New("unsupported cipher mode") } k := internal_crypt.KDFa(hashAlg.GetHash(), sessionValue, []byte(CFBKey), s.Session.State().NonceTPM, s.NonceCaller, int(symmetric.KeyBits.Sym)+(aes.BlockSize*8)) offset := (symmetric.KeyBits.Sym + 7) / 8 symKey := k[0:offset] iv := k[offset:] if err := internal_crypt.SymmetricDecrypt(symmetric.Algorithm, symKey, iv, data); err != nil { return fmt.Errorf("AES encryption failed: %v", err) } case SymAlgorithmXOR: internal_crypt.XORObfuscation(hashAlg.GetHash(), sessionValue, s.Session.State().NonceTPM, s.NonceCaller, data) default: return fmt.Errorf("unknown symmetric algorithm: %v", symmetric.Algorithm) } return nil } ./github.com/canonical/go-tpm2/policyutil/0000775000000000000000000000000000000000000015554 5ustar00./github.com/canonical/go-tpm2/policyutil/auth.go0000664000000000000000000001656700000000000017063 0ustar00// Copyright 2023 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package policyutil import ( "crypto" "errors" "fmt" "io" "github.com/canonical/go-tpm2" "github.com/canonical/go-tpm2/cryptutil" "github.com/canonical/go-tpm2/mu" ) // ComputePolicyAuthorizationTBSDigest computes the TBS digest for a policy authorization from the // supplied message and policy reference. For a TPM2_PolicyAuthorize assertion, message is the // approved policy digest. // // This will panic if the specified digest algorithm is not available. func ComputePolicyAuthorizationTBSDigest(alg crypto.Hash, message []byte, policyRef tpm2.Nonce) []byte { h := alg.New() h.Write(message) h.Write(policyRef) return h.Sum(nil) } // PolicyAuthorization corresponds to a signed authorization for a TPM2_PolicyAuthorize or // TPM2_PolicySigned assertion. type PolicyAuthorization struct { AuthKey *tpm2.Public // The public key of the signer, associated with the corresponding assertion. PolicyRef tpm2.Nonce // The policy ref of the corresponding assertion Signature *tpm2.Signature // The actual signature } // SignPolicyAuthorization signs a new policy authorization using the supplied signer and // options. Note that only RSA-SSA, RSA-PSS, ECDSA and HMAC signatures can be created. // // The authKey argument is the corresponding public key. Both the authKey and policyRef arguments // bind the authorization to a specific assertion in a policy. // // If the authorization is for use with TPM2_PolicyAuthorize then the supplied message is the // approved policy digest. This can sign authorizations for TPM2_PolicySigned as well, but // [SignPolicySignedAuthorization] is preferred for that because it constructs the message // appropriately. func SignPolicyAuthorization(rand io.Reader, message []byte, authKey *tpm2.Public, policyRef tpm2.Nonce, signer crypto.Signer, opts crypto.SignerOpts) (*PolicyAuthorization, error) { if !opts.HashFunc().Available() { return nil, errors.New("digest algorithm is not available") } digest := ComputePolicyAuthorizationTBSDigest(opts.HashFunc(), message, policyRef) sig, err := cryptutil.Sign(rand, signer, digest, opts) if err != nil { return nil, err } return &PolicyAuthorization{ AuthKey: authKey, PolicyRef: policyRef, Signature: sig, }, nil } // Verify verifies the signature of this authorization. If the authorization is for // use with TPM2_PolicyAuthorize then the supplied message is the approved policy digest. // This can verify authorizations for TPM2_PolicySigned as well, but // [PolicySignedAuthorization.Verify] is preferred for that because it constructs the // message appropriately. func (a *PolicyAuthorization) Verify(message []byte) (ok bool, err error) { if a.AuthKey == nil || a.Signature == nil { return false, errors.New("invalid authorization") } if !a.Signature.SigAlg.IsValid() { return false, errors.New("invalid signature algorithm") } hashAlg := a.Signature.HashAlg().GetHash() if !hashAlg.Available() { return false, errors.New("digest algorithm is not available") } if !a.AuthKey.IsAsymmetric() { return false, errors.New("cannot verify HMAC signature") } digest := ComputePolicyAuthorizationTBSDigest(hashAlg, message, a.PolicyRef) return cryptutil.VerifySignature(a.AuthKey.Public(), digest, a.Signature) } // PolicySignedAuthorization represents a signed authorization for a TPM2_PolicySigned assertion. type PolicySignedAuthorization struct { NonceTPM tpm2.Nonce // The TPM nonce of the session that this authorization is bound to CpHash tpm2.Digest // The command parameters that this authorization is bound to Expiration int32 // The expiration time of this authorization PolicyAuthorization } func computePolicySignedMessage(nonceTPM tpm2.Nonce, expiration int32, cpHash tpm2.Digest) []byte { return mu.MustMarshalToBytes(mu.Raw(nonceTPM), expiration, mu.Raw(cpHash)) } // Verify verifies the signature of this signed authorization. func (a *PolicySignedAuthorization) Verify() (ok bool, err error) { msg := computePolicySignedMessage(a.NonceTPM, a.Expiration, a.CpHash) return a.PolicyAuthorization.Verify(msg) } // PolicySignedParams provide the parameters that a TPM2_PolicySigned assertion should // be bound to and can be passed to [SignPolicySignedAuthorization]. type PolicySignedParams struct { HashAlg tpm2.HashAlgorithmId // The policy session digest algorithm NonceTPM tpm2.Nonce // The TPM nonce of the session that an authorization should be bound to CpHash CpHash // The command parameters that an authorization should be bound to Expiration int32 // The expiration time of an authorization } // SignPolicySignedAuthorization creates a signed authorization that can be used by [Policy.Execute] // for a TPM2_PolicySigned assertion or by using [tpm2.TPMContext.PolicySigned] directly. Note that // only RSA-SSA, RSA-PSS, ECDSA and HMAC signatures can be created. The signer must be the owner of // the corresponding authKey. The policyRef argument binds the authorization to a specific assertion // in a policy. // // The authorizing party chooses the values of the supplied parameters in order to limit the scope of // the authorization. // // If nonceTPM is supplied, the authorization will be bound to the session with the specified TPM // nonce. If it is not supplied, the authorization is not bound to a specific session. // // If cpHash is supplied, the authorization will be bound to the corresponding command parameters. // If it is not supplied, the authorization is not bound to any specific command parameters. In this // case, it is important to supply the current session digest. // // If expiration is not zero, then the absolute value of this specifies an expiration time in // seconds, after which the authorization will expire. If nonceTPM is also provided, the expiration // time is measured from the time that nonceTPM was generated. If nonceTPM is not provided, the // expiration time is measured from the time that this authorization is used in the // TPM2_PolicySigned assertion. // // The expiration field can be used to request a ticket from the TPM by specifying a negative // value. The ticket can be used to satisfy the corresponding TPM2_PolicySigned assertion in future // sessions, and its validity period and scope are restricted by the expiration and cpHashA // arguments. If the authorization is not bound to a specific session, the ticket will expire on // the next TPM reset if this occurs before the calculated expiration time func SignPolicySignedAuthorization(rand io.Reader, params *PolicySignedParams, authKey *tpm2.Public, policyRef tpm2.Nonce, signer crypto.Signer, opts crypto.SignerOpts) (*PolicySignedAuthorization, error) { if params == nil { params = &PolicySignedParams{ HashAlg: tpm2.HashAlgorithmNull, } } var cpHashA tpm2.Digest if params.CpHash != nil { var err error cpHashA, err = params.CpHash.Digest(params.HashAlg) if err != nil { return nil, fmt.Errorf("cannot compute cpHash: %w", err) } } msg := computePolicySignedMessage(params.NonceTPM, params.Expiration, cpHashA) auth, err := SignPolicyAuthorization(rand, msg, authKey, policyRef, signer, opts) if err != nil { return nil, err } return &PolicySignedAuthorization{ NonceTPM: params.NonceTPM, CpHash: cpHashA, Expiration: params.Expiration, PolicyAuthorization: *auth, }, nil } ./github.com/canonical/go-tpm2/policyutil/builder.go0000664000000000000000000010033200000000000017530 0ustar00// Copyright 2023 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package policyutil import ( "bytes" "errors" "fmt" "sort" "github.com/canonical/go-tpm2" "github.com/canonical/go-tpm2/mu" ) type policyBuilderBranchRunner struct { policySession *computePolicySession policyTickets nullTickets policyResources mockPolicyResources } func (r *policyBuilderBranchRunner) session() policySession { return r.policySession } func (r *policyBuilderBranchRunner) tickets() policyTickets { return &r.policyTickets } func (r *policyBuilderBranchRunner) resources() policyResources { return &r.policyResources } func (r *policyBuilderBranchRunner) authResourceName() tpm2.Name { return nil } func (*policyBuilderBranchRunner) loadExternal(public *tpm2.Public) (ResourceContext, error) { // the handle is not relevant here resource := tpm2.NewResourceContext(0x80000000, public.Name()) return newResourceContext(resource, nil), nil } func (r *policyBuilderBranchRunner) authorize(auth ResourceContext, askForPolicy bool, commandParams *authorizationCommandParams, prefer tpm2.SessionType) (SessionContext, error) { return new(mockSessionContext), nil } func (r *policyBuilderBranchRunner) runBranch(branches policyBranches) (selected int, err error) { return 0, nil } func (r *policyBuilderBranchRunner) runAuthorizedPolicy(keySign *tpm2.Public, policyRef tpm2.Nonce, policies []*authorizedPolicy) (approvedPolicy tpm2.Digest, checkTicket *tpm2.TkVerified, err error) { return nil, nil, nil } func (r *policyBuilderBranchRunner) notifyPolicyPCRDigest() error { return nil } // PolicyBuilderBranchNode is a point in a [PolicyBuilderBranch] to which sub-branches // can be added. type PolicyBuilderBranchNode struct { parentBranch *PolicyBuilderBranch childBranches []*PolicyBuilderBranch currentBranch *PolicyBuilderBranch committed bool } func (n *PolicyBuilderBranchNode) policy() *PolicyBuilder { return n.parentBranch.policy } func (n *PolicyBuilderBranchNode) alg() tpm2.HashAlgorithmId { return n.parentBranch.alg() } func (n *PolicyBuilderBranchNode) digest() (tpm2.Digest, error) { return n.parentBranch.digest() } func (n *PolicyBuilderBranchNode) commitBranchNode() error { n.committed = true var branches []*policyBranch for _, branch := range n.childBranches { branches = append(branches, &branch.policyBranch) } return n.parentBranch.commitBranches(branches) } type PolicyBuilderBranchContinuation func(*PolicyBuilderBranch) // AddBranch adds a new branch to this branch node. The branch can be created with // an optional name which can be used to select it during execution. func (n *PolicyBuilderBranchNode) AddBranch(name string, fn PolicyBuilderBranchContinuation) error { if n.committed { return n.policy().fail("AddBranch", errors.New("cannot add branch to committed node")) } if n.currentBranch != nil { return n.policy().fail("AddBranch", errors.New("cannot add branch before the currently in progress branch is finished")) } if len(n.childBranches) >= policyOrMaxDigests { return n.policy().fail("AddBranch", fmt.Errorf("cannot add more than %d branches", policyOrMaxDigests)) } pbn := policyBranchName(name) if !pbn.isValid() { return n.policy().fail("AddBranch", errors.New("invalid branch name")) } digest, err := n.digest() if err != nil { return n.policy().fail("AddBranch", fmt.Errorf("internal error: %w", err)) } b := newPolicyBuilderBranch(n.policy(), n.alg(), pbn, digest) n.currentBranch = b fn(b) n.currentBranch = nil if err := b.completeBranch(); err != nil { return n.policy().fail("AddBranch", fmt.Errorf("cannot complete branch: %w", err)) } if len(b.policyBranch.Policy) > 0 { // only include branches with assertions. b.policyBranch.index = len(n.childBranches) n.childBranches = append(n.childBranches, b) } return n.policy().err } // PolicyBuilderBranch corresponds to a branch in a policy that is being computed. type PolicyBuilderBranch struct { policy *PolicyBuilder policyBranch policyBranch runner policyBuilderBranchRunner parentIsEmpty bool currentBranchNode *PolicyBuilderBranchNode } func newPolicyBuilderBranch(policy *PolicyBuilder, alg tpm2.HashAlgorithmId, name policyBranchName, digest tpm2.Digest) *PolicyBuilderBranch { out := &PolicyBuilderBranch{ policy: policy, policyBranch: policyBranch{Name: policyBranchName(name)}, runner: policyBuilderBranchRunner{policySession: newComputePolicySession(alg, digest, false)}, } if len(digest) == 0 || bytes.Equal(digest, make(tpm2.Digest, alg.Size())) { out.parentIsEmpty = true } return out } func (b *PolicyBuilderBranch) alg() tpm2.HashAlgorithmId { return b.runner.session().HashAlg() } func (b *PolicyBuilderBranch) digest() (tpm2.Digest, error) { return b.runner.session().PolicyGetDigest() } func (b *PolicyBuilderBranch) commitBranches(branches []*policyBranch) error { b.currentBranchNode = nil if err := b.prepareToModifyBranch(); err != nil { return err } switch len(branches) { case 0: // elide the branch node // case 1: // Whilst it makes sense to elide the branch node in this case // and then copy the sub-branch into this branch, the caller may // expect to be able to still address the single sub-branch by // name when executing the policy. default: element := &policyElement{ Type: commandPolicyBranchNode, Details: &policyElementDetails{ BranchNode: &policyBranchNodeElement{Branches: branches}}} if err := element.runner().run(&b.runner); err != nil { return err } b.policyBranch.Policy = append(b.policyBranch.Policy, element) } return nil } func (b *PolicyBuilderBranch) prepareToModifyBranch() error { if b.policy.failed() { return b.policy.err } if len(b.policyBranch.PolicyDigests) > 0 { return errors.New("cannot modify completed branch") } if b.currentBranchNode != nil { return errors.New("cannot modify branch whilst a branch node is being added") } return nil } func (b *PolicyBuilderBranch) completeBranch() error { if err := b.prepareToModifyBranch(); err != nil { return err } digest, err := b.digest() if err != nil { return fmt.Errorf("internal error: %w", err) } b.policyBranch.PolicyDigests = taggedHashList{{HashAlg: b.alg(), Digest: digest}} return nil } // PolicyNV adds a TPM2_PolicyNV assertion to this branch in order to bind the policy to the // contents of the specified index. The caller specifies a value to be used for the comparison // via the operandB argument, an offset from the start of the NV index data from which to start // the comparison via the offset argument, and a comparison operator via the operation argument. // // When using this assertion, it is generally good practise for the NV index to have an // authorization policy that permits the use of TPM2_PolicyNV and TPM2_NV_Read without any // conditions (ie, a policy with branches for those commands without any additional assertions). // Where this assertion appears in a policy with multiple branches or a policy that is authorized, // the contents of the NV index will be tested in the process of automatic branch selection if // the index has a policy that permits the use of TPM2_NV_Read without any other conditions. func (b *PolicyBuilderBranch) PolicyNV(nvIndex *tpm2.NVPublic, operandB tpm2.Operand, offset uint16, operation tpm2.ArithmeticOp) (tpm2.Digest, error) { if err := b.prepareToModifyBranch(); err != nil { return nil, b.policy.fail("PolicyNV", err) } if !nvIndex.Name().IsValid() { return nil, b.policy.fail("PolicyNV", errors.New("invalid nvIndex")) } element := &policyElement{ Type: tpm2.CommandPolicyNV, Details: &policyElementDetails{ NV: &policyNVElement{ NvIndex: nvIndex, OperandB: operandB, Offset: offset, Operation: operation}}} if err := element.runner().run(&b.runner); err != nil { return nil, b.policy.fail("PolicyNV", fmt.Errorf("internal error: %w", err)) } b.policyBranch.Policy = append(b.policyBranch.Policy, element) digest, err := b.runner.session().PolicyGetDigest() if err != nil { return nil, b.policy.fail("PolicyNV", fmt.Errorf("internal error: %w", err)) } return digest, nil } // PolicySecret adds a TPM2_PolicySecret assertion to this branch so that the policy requires // knowledge of the authorization value of the object associated with authObject. func (b *PolicyBuilderBranch) PolicySecret(authObject Named, policyRef tpm2.Nonce) (tpm2.Digest, error) { if err := b.prepareToModifyBranch(); err != nil { return nil, b.policy.fail("PolicySecret", err) } authObjectName := authObject.Name() if len(authObjectName) == 0 || !authObjectName.IsValid() { return nil, b.policy.fail("PolicySecret", errors.New("invalid authObject name")) } element := &policyElement{ Type: tpm2.CommandPolicySecret, Details: &policyElementDetails{ Secret: &policySecretElement{ AuthObjectName: authObjectName, PolicyRef: policyRef}}} if err := element.runner().run(&b.runner); err != nil { return nil, b.policy.fail("PolicySecret", fmt.Errorf("internal error: %w", err)) } b.policyBranch.Policy = append(b.policyBranch.Policy, element) digest, err := b.runner.session().PolicyGetDigest() if err != nil { return nil, b.policy.fail("PolicySecret", fmt.Errorf("internal error: %w", err)) } return digest, nil } // PolicySigned adds a TPM2_PolicySigned assertion to this branch so that the policy requires // an assertion signed by the owner of the supplied key. This supports HMAC assertions, but // the [PolicyResources] implementation supplied to [Policy.Execute] must implement the // ExternalSensitive method in order to obtain the sensitive part of the key, which is not // stored inside the policy. func (b *PolicyBuilderBranch) PolicySigned(authKey *tpm2.Public, policyRef tpm2.Nonce) (tpm2.Digest, error) { if err := b.prepareToModifyBranch(); err != nil { return nil, b.policy.fail("PolicySigned", err) } authKeyName := authKey.Name() if len(authKeyName) == 0 || !authKeyName.IsValid() { return nil, b.policy.fail("PolicySigned", errors.New("invalid authKey")) } element := &policyElement{ Type: tpm2.CommandPolicySigned, Details: &policyElementDetails{ Signed: &policySignedElement{ AuthKey: authKey, PolicyRef: policyRef}}} if err := element.runner().run(&b.runner); err != nil { return nil, b.policy.fail("PolicySigned", fmt.Errorf("internal error: %w", err)) } b.policyBranch.Policy = append(b.policyBranch.Policy, element) digest, err := b.runner.session().PolicyGetDigest() if err != nil { return nil, b.policy.fail("PolicySigned", fmt.Errorf("internal error: %w", err)) } return digest, nil } // PolicyAuthorize adds a TPM2_PolicyAuthorize assertion to this branch so that the policy // can be changed by allowing the authorizing entity to sign new policies. // // When [Policy.Execute] runs this assertion, it will select an execute an appropriate // authorized policy. // // Note that authorizations signed by the owner of the key must use a digest algorithm that // matches the name algorithm of the key. This is a TPM limitation. Policies can only be // authorized by asymmetric signatures. // // This assertion must come before any other assertions in a policy. Whilst this is not // a limitation of how this works on the TPM, the [Policy.Authorize] and [Policy.Execute] // APIs currently do not support authorized policies with a non-empty starting digest. func (b *PolicyBuilderBranch) PolicyAuthorize(policyRef tpm2.Nonce, keySign *tpm2.Public) (tpm2.Digest, error) { if err := b.prepareToModifyBranch(); err != nil { return nil, b.policy.fail("PolicyAuthorize", err) } if !b.parentIsEmpty || len(b.policyBranch.Policy) > 0 { return nil, b.policy.fail("PolicyAuthorize", errors.New("must be before any other assertions")) } keySignName := keySign.Name() if !keySignName.IsValid() { return nil, b.policy.fail("PolicyAuthorize", errors.New("invalid keySign")) } element := &policyElement{ Type: tpm2.CommandPolicyAuthorize, Details: &policyElementDetails{ Authorize: &policyAuthorizeElement{ PolicyRef: policyRef, KeySign: keySign}}} if err := element.runner().run(&b.runner); err != nil { return nil, b.policy.fail("PolicyAuthorize", fmt.Errorf("internal error: %w", err)) } b.policyBranch.Policy = append(b.policyBranch.Policy, element) digest, err := b.runner.session().PolicyGetDigest() if err != nil { return nil, b.policy.fail("PolicyAuthorize", fmt.Errorf("internal error: %w", err)) } return digest, nil } // PolicyAuthValue adds a TPM2_PolicyAuthValue assertion to this branch so that the policy // requires knowledge of the authorization value of the resource on which the policy session // is used. func (b *PolicyBuilderBranch) PolicyAuthValue() (tpm2.Digest, error) { if err := b.prepareToModifyBranch(); err != nil { return nil, b.policy.fail("PolicyAuthValue", err) } element := &policyElement{ Type: tpm2.CommandPolicyAuthValue, Details: &policyElementDetails{AuthValue: new(policyAuthValueElement)}} if err := element.runner().run(&b.runner); err != nil { return nil, b.policy.fail("PolicyAuthValue", fmt.Errorf("internal error: %w", err)) } b.policyBranch.Policy = append(b.policyBranch.Policy, element) digest, err := b.runner.session().PolicyGetDigest() if err != nil { return nil, b.policy.fail("PolicyAuthValue", fmt.Errorf("internal error: %w", err)) } return digest, nil } // PolicyCommandCode adds a TPM2_PolicyCommandCode assertion to this branch to bind the policy // to the specified command. func (b *PolicyBuilderBranch) PolicyCommandCode(code tpm2.CommandCode) (tpm2.Digest, error) { if err := b.prepareToModifyBranch(); err != nil { return nil, b.policy.fail("PolicyCommandCode", err) } element := &policyElement{ Type: tpm2.CommandPolicyCommandCode, Details: &policyElementDetails{ CommandCode: &policyCommandCodeElement{CommandCode: code}}} if err := element.runner().run(&b.runner); err != nil { return nil, b.policy.fail("PolicyAuthValue", fmt.Errorf("internal error: %w", err)) } b.policyBranch.Policy = append(b.policyBranch.Policy, element) digest, err := b.runner.session().PolicyGetDigest() if err != nil { return nil, b.policy.fail("PolicyCommandCode", fmt.Errorf("internal error: %w", err)) } return digest, nil } // PolicyCounterTimer adds a TPM2_PolicyCounterTimer assertion to this branch to bind the policy // to the contents of the [tpm2.TimeInfo] structure. func (b *PolicyBuilderBranch) PolicyCounterTimer(operandB tpm2.Operand, offset uint16, operation tpm2.ArithmeticOp) (tpm2.Digest, error) { if err := b.prepareToModifyBranch(); err != nil { return nil, b.policy.fail("PolicyCounterTimer", err) } element := &policyElement{ Type: tpm2.CommandPolicyCounterTimer, Details: &policyElementDetails{ CounterTimer: &policyCounterTimerElement{ OperandB: operandB, Offset: offset, Operation: operation}}} if err := element.runner().run(&b.runner); err != nil { return nil, b.policy.fail("PolicyCounterTimer", fmt.Errorf("internal error: %w", err)) } b.policyBranch.Policy = append(b.policyBranch.Policy, element) digest, err := b.runner.session().PolicyGetDigest() if err != nil { return nil, b.policy.fail("PolicyCounterTimer", fmt.Errorf("internal error: %w", err)) } return digest, nil } // PolicyCpHash adds a TPM2_PolicyCpHash assertion to this branch in order to bind the policy to // the supplied command parameters. // // As this binds the authorization to an object and and a policy has to have the same algorithm as // this, policies with this assertion can only be computed for a single digest algorithm. func (b *PolicyBuilderBranch) PolicyCpHash(cpHash CpHash) (tpm2.Digest, error) { if err := b.prepareToModifyBranch(); err != nil { return nil, b.policy.fail("PolicyCpHash", err) } cpHashA, err := cpHash.Digest(b.alg()) if err != nil { return nil, b.policy.fail("PolicyCpHash", fmt.Errorf("cannot compute cpHashA: %w", err)) } element := &policyElement{ Type: tpm2.CommandPolicyCpHash, Details: &policyElementDetails{ CpHash: &policyCpHashElement{Digest: cpHashA}}} if err := element.runner().run(&b.runner); err != nil { return nil, b.policy.fail("PolicyCpHash", fmt.Errorf("internal error: %w", err)) } b.policyBranch.Policy = append(b.policyBranch.Policy, element) digest, err := b.runner.session().PolicyGetDigest() if err != nil { return nil, b.policy.fail("PolicyCpHash", fmt.Errorf("internal error: %w", err)) } return digest, nil } // PolicyNameHash adds a TPM2_PolicyNameHash assertion to this branch in order to bind the policy to // the supplied command handles. // // As this binds the authorization to an object and and a policy has to have the same algorithm as // this, policies with this assertion can only be computed for a single digest algorithm. func (b *PolicyBuilderBranch) PolicyNameHash(nameHash NameHash) (tpm2.Digest, error) { if err := b.prepareToModifyBranch(); err != nil { return nil, b.policy.fail("PolicyNameHash", err) } nameHashA, err := nameHash.Digest(b.alg()) if err != nil { return nil, b.policy.fail("PolicyNameHash", fmt.Errorf("cannot compute nameHash: %w", err)) } element := &policyElement{ Type: tpm2.CommandPolicyNameHash, Details: &policyElementDetails{ NameHash: &policyNameHashElement{Digest: nameHashA}}} if err := element.runner().run(&b.runner); err != nil { return nil, b.policy.fail("PolicyNameHash", fmt.Errorf("internal error: %w", err)) } b.policyBranch.Policy = append(b.policyBranch.Policy, element) digest, err := b.runner.session().PolicyGetDigest() if err != nil { return nil, b.policy.fail("PolicyNameHash", fmt.Errorf("internal error: %w", err)) } return digest, nil } // PolicyPCRValues adds a TPM2_PolicyPCR assertion to this branch in order to bind the policy to the // supplied PCR values. This stores the raw PCR values in the policy which permits it to be computed // for multiple digests using [Policy.AddDigest]. A downside of this is that it may occupy more space // for an assertion that contains more than a single PCR value compared with [PolicyPCRDigest], // depending on the selection of algorithms. func (b *PolicyBuilderBranch) PolicyPCRValues(values tpm2.PCRValues) (tpm2.Digest, error) { if err := b.prepareToModifyBranch(); err != nil { return nil, b.policy.fail("PolicyPCRValues", err) } var pcrs pcrValueList for alg := range values { if !alg.IsValid() { return nil, b.policy.fail("PolicyPCRValues", fmt.Errorf("invalid digest algorithm %v", alg)) } for pcr := range values[alg] { s := tpm2.PCRSelect{pcr} if _, err := s.ToBitmap(0); err != nil { return nil, b.policy.fail("PolicyPCRValues", fmt.Errorf("invalid PCR %v: %w", pcr, err)) } digest := values[alg][pcr] if len(digest) != alg.Size() { return nil, b.policy.fail("PolicyPCRValues", fmt.Errorf("invalid digest size for PCR %v, algorithm %v", pcr, alg)) } pcrs = append(pcrs, pcrValue{ PCR: tpm2.Handle(pcr), Digest: taggedHash{HashAlg: alg, Digest: digest}}) } } sort.Slice(pcrs, func(i, j int) bool { return pcrs[i].PCR < pcrs[j].PCR || pcrs[i].Digest.HashAlg < pcrs[j].Digest.HashAlg }) element := &policyElement{ Type: commandPolicyPCRValues, Details: &policyElementDetails{ PCRValues: &policyPCRValuesElement{PCRs: pcrs}}} if err := element.runner().run(&b.runner); err != nil { return nil, b.policy.fail("PolicyPCRValues", fmt.Errorf("internal error: %w", err)) } b.policyBranch.Policy = append(b.policyBranch.Policy, element) digest, err := b.runner.session().PolicyGetDigest() if err != nil { return nil, b.policy.fail("PolicyPCRValues", fmt.Errorf("internal error: %w", err)) } return digest, nil } // PolicyPCRDigest adds a TPM2_PolicyPCR assertion to this branch in order to bind the policy to the // supplied PCR selection and digest. The digest used to compute pcrDigest must match the algorithm // that this [PolicyBuilder] was constructed with. // // The downside of this API instead of using [PolicyPCRValues] is that policies with this element in // can only be computed for a single digest. It does have the advantage of potentially being more // space efficient when the assertion contains more than a single PCR, depending on algorithm selection. func (b *PolicyBuilderBranch) PolicyPCRDigest(pcrDigest tpm2.Digest, pcrs tpm2.PCRSelectionList) (tpm2.Digest, error) { if err := b.prepareToModifyBranch(); err != nil { return nil, b.policy.fail("PolicyPCRDigest", err) } if len(pcrDigest) != b.alg().Size() { return nil, b.policy.fail("PolicyPCRDigest", errors.New("invalid pcrDigest size")) } for i, pcr := range pcrs { if !mu.IsValid(pcr) { return nil, b.policy.fail("PolicyPCRDigest", fmt.Errorf("invalid selection at %d", i)) } if !pcr.Hash.IsValid() { return nil, b.policy.fail("PolicyPCRDigest", fmt.Errorf("invalid digest algorithm %v at selection %d", pcr.Hash, i)) } } element := &policyElement{ Type: tpm2.CommandPolicyPCR, Details: &policyElementDetails{ PCR: &policyPCRElement{ PCRDigest: pcrDigest, PCRs: pcrs}}} if err := element.runner().run(&b.runner); err != nil { return nil, b.policy.fail("PolicyPCRDigest", fmt.Errorf("internal error: %w", err)) } b.policyBranch.Policy = append(b.policyBranch.Policy, element) digest, err := b.runner.session().PolicyGetDigest() if err != nil { return nil, b.policy.fail("PolicyPCRDigest", fmt.Errorf("internal error: %w", err)) } return digest, nil } // PolicyDuplicationSelect adds a TPM2_PolicyDuplicationSelect assertion to this branch in order // to permit duplication of object to newParent with the [tpm2.TPMContext.Duplicate] function. // If includeObject is true, then the assertion is bound to both object and newParent. If // includeObject is false then the assertion is only bound to newParent. In this case, supplying // object is optional. Note that when the TPM2_PolicyDuplicationSelect assertions is executed, // the object name must be supplied because the assertion sets the name hash of the session. If // object is supplied here, then it will be included in the policy and used when the assertion is // executed. If it isn't supplied here, then it will be obtained from the [PolicySessionUsage] // supplied to [Policy.Execute]. func (b *PolicyBuilderBranch) PolicyDuplicationSelect(object, newParent Named, includeObject bool) (tpm2.Digest, error) { if err := b.prepareToModifyBranch(); err != nil { return nil, b.policy.fail("PolicyDuplicationSelect", err) } var objectName tpm2.Name if object != nil { objectName = object.Name() } if (includeObject && len(objectName) == 0) || !objectName.IsValid() { return nil, b.policy.fail("PolicyDuplicationSelect", errors.New("invalid object name")) } var newParentName tpm2.Name if newParent != nil { newParentName = newParent.Name() } if len(newParentName) == 0 || !newParentName.IsValid() { return nil, b.policy.fail("PolicyDuplicationSelect", errors.New("invalid newParent name")) } element := &policyElement{ Type: tpm2.CommandPolicyDuplicationSelect, Details: &policyElementDetails{ DuplicationSelect: &policyDuplicationSelectElement{ Object: objectName, NewParent: newParentName, IncludeObject: includeObject}}} if err := element.runner().run(&b.runner); err != nil { return nil, b.policy.fail("PolicyDuplicationSelect", fmt.Errorf("internal error: %w", err)) } b.policyBranch.Policy = append(b.policyBranch.Policy, element) digest, err := b.runner.session().PolicyGetDigest() if err != nil { return nil, b.policy.fail("PolicyDuplicationSelect", fmt.Errorf("internal error: %w", err)) } return digest, nil } // PolicyPassword adds a TPM2_PolicyPassword assertion to this branch so that the policy // requires knowledge of the authorization value of the resource on which the policy session // is used. func (b *PolicyBuilderBranch) PolicyPassword() (tpm2.Digest, error) { if err := b.prepareToModifyBranch(); err != nil { return nil, b.policy.fail("PolicyPassword", err) } element := &policyElement{ Type: tpm2.CommandPolicyPassword, Details: &policyElementDetails{ Password: new(policyPasswordElement)}} if err := element.runner().run(&b.runner); err != nil { return nil, b.policy.fail("PolicyPassword", fmt.Errorf("internal error: %w", err)) } b.policyBranch.Policy = append(b.policyBranch.Policy, element) digest, err := b.runner.session().PolicyGetDigest() if err != nil { return nil, b.policy.fail("PolicyPassword", fmt.Errorf("internal error: %w", err)) } return digest, nil } // PolicyNvWritten adds a TPM2_PolicyNvWritten assertion to this branch in order to bind the // policy to the status of the [tpm2.AttrNVWritten] attribute for the NV index on which the // session is used. func (b *PolicyBuilderBranch) PolicyNvWritten(writtenSet bool) (tpm2.Digest, error) { if err := b.prepareToModifyBranch(); err != nil { return nil, b.policy.fail("PolicyNvWritten", err) } element := &policyElement{ Type: tpm2.CommandPolicyNvWritten, Details: &policyElementDetails{ NvWritten: &policyNvWrittenElement{WrittenSet: writtenSet}}} if err := element.runner().run(&b.runner); err != nil { return nil, b.policy.fail("PolicyNvWritten", fmt.Errorf("internal error: %w", err)) } b.policyBranch.Policy = append(b.policyBranch.Policy, element) digest, err := b.runner.session().PolicyGetDigest() if err != nil { return nil, b.policy.fail("PolicyNvWritten", fmt.Errorf("internal error: %w", err)) } return digest, nil } // PolicyOR adds a TPM2_PolicyOR assertion to this branch for low-level control of policies // that can be satisfied with different sets of conditions. This is to make it possible to // use this API to compute digests of policies with branches without having to use the // [Policy] API to execute them, or to build policies with branches with low-level control // of branch execution by manually executing a sequence of [Policy] structures corresponding // to each branch. Applications that use [Policy] for execution should normally just make // use of [PolicyBuilderBranch.AddBranchNode] and [PolicyBuilderBranchNode.AddBranch] for // constructing policies with branches though. func (b *PolicyBuilderBranch) PolicyOR(pHashList ...tpm2.Digest) (tpm2.Digest, error) { if err := b.prepareToModifyBranch(); err != nil { return nil, b.policy.fail("PolicyOR", err) } if len(pHashList) < 2 || len(pHashList) > 8 { return nil, b.policy.fail("PolicyOR", errors.New("invalid number of digests")) } for i, digest := range pHashList { if len(digest) != b.alg().Size() { return nil, b.policy.fail("PolicyOR", fmt.Errorf("digest at index %d has the wrong size", i)) } } element := &policyElement{ Type: tpm2.CommandPolicyOR, Details: &policyElementDetails{ OR: &policyORElement{HashList: pHashList}}} if err := element.runner().run(&b.runner); err != nil { return nil, b.policy.fail("PolicyOR", fmt.Errorf("internal error: %w", err)) } b.policyBranch.Policy = append(b.policyBranch.Policy, element) digest, err := b.runner.session().PolicyGetDigest() if err != nil { return nil, b.policy.fail("PolicyOR", fmt.Errorf("internal error: %w", err)) } return digest, nil } type PolicyBuilderBranchNodeContinuation func(*PolicyBuilderBranchNode) // AddBranchNode adds a branch node to this branch from which sub-branches can be added. // This makes it possible to create policies that can be satisified with different sets of // conditions. One of the sub-branches will be selected during execution, and will be // executed before the remaining assertions in this branch. func (b *PolicyBuilderBranch) AddBranchNode(fn PolicyBuilderBranchNodeContinuation) error { if err := b.prepareToModifyBranch(); err != nil { return b.policy.fail("AddBranchNode", err) } n := &PolicyBuilderBranchNode{parentBranch: b} b.currentBranchNode = n fn(n) b.currentBranchNode = nil if err := n.commitBranchNode(); err != nil { return b.policy.fail("AddBranchNode", fmt.Errorf("cannot commit branch node: %w", err)) } return b.policy.err } // PolicyBuilder provides a way to compute an authorization policy. A policy consists // of a sequence of assertions, and may contain sub-branches in order to create a policy // that can satisfy multiple conditions. A policy can be arbitrarily complex. // // All policies have a root branch and execution with [Policy.Execute] starts with this // branch. Whenever a branch node is encountered, a sub-branch is chosen. Execution then // continues with the chosen sub-branch until all assertions in it have been executed. // Execution then resumes in the parent branch, with the assertion immediately following // the branch node. // // The PolicyBuilder API only allows a policy to be appended to. // // The PolicyBuilder instance will be marked as failed whenever an error occurs. This means // that it isn't necessary to check errors for every call. In the event of an earlier // error, calls to [PolicyBuilder.Policy] and [PolicyBuilder.Digest] will return an error. // // XXX: Note that the PolicyBuilder API may change. type PolicyBuilder struct { root *PolicyBuilderBranch err error } // NewPolicyBuilder returns a new PolicyBuilder. It will panic if the supplied algorithm // is not available. func NewPolicyBuilder(alg tpm2.HashAlgorithmId) *PolicyBuilder { if !alg.Available() { panic("invalid algorithm") } b := new(PolicyBuilder) b.root = newPolicyBuilderBranch(b, alg, "", nil) return b } // NewPolicyBuilderOR returns a new PolicyBuilder initialized with a TPM2_PolicyOR // assertion of the supplied policies. This is to make it possible to use this API to // compute digests of policies with branches without having to use the [Policy] API to // execute them, or to build policies with branches with low-level control of branch // execution by manually executing a sequence of [Policy] structures corresponding to // each branch. Applications that use [Policy] for execution should normally just make // use of [PolicyBuilderBranch.AddBranchNode] and [PolicyBuilderBranchNode.AddBranch] // for constructing policies with branches though. func NewPolicyBuilderOR(alg tpm2.HashAlgorithmId, policies ...*Policy) *PolicyBuilder { b := NewPolicyBuilder(alg) var pHashList tpm2.DigestList for i, policy := range policies { digest, err := policy.Digest(alg) if err != nil { b.fail("NewPolicyBuilderOR", fmt.Errorf("cannot add branch %d: %w", i, err)) return b } pHashList = append(pHashList, digest) } element := &policyElement{ Type: tpm2.CommandPolicyOR, Details: &policyElementDetails{ OR: &policyORElement{ HashList: pHashList, }}} if err := element.runner().run(&b.root.runner); err != nil { b.fail("PolicyOR", err) } b.root.policyBranch.Policy = append(b.root.policyBranch.Policy, element) return b } func (b *PolicyBuilder) fail(name string, err error) error { if !b.failed() { b.err = fmt.Errorf("encountered an error when calling %s: %w", name, err) } return err } func (b *PolicyBuilder) failed() bool { return b.err != nil } // RootBranch returns the root branch associated with the policy that is being built. func (b *PolicyBuilder) RootBranch() *PolicyBuilderBranch { return b.root } // Digest returns the current digest. This will commit the current // [PolicyBuilderBranchNode] to the root [PolicyBuilderBranch] if it hasn't been // done already. // // This will return an error if any call when building the policy failed. func (b *PolicyBuilder) Digest() (tpm2.Digest, error) { if b.failed() { return nil, fmt.Errorf("could not build policy: %w", b.err) } if b.root.currentBranchNode != nil { return nil, errors.New("branch node is being added") } digest, err := b.root.digest() if err != nil { return nil, fmt.Errorf("internal error: %w", err) } return digest, nil } // Policy returns the current policy and digest. This will commit the current // [PolicyBuilderBranchNode] to the root [PolicyBuilderBranch] if it hasn't been // done already. // // This will return an error if any call when building the policy failed. func (b *PolicyBuilder) Policy() (tpm2.Digest, *Policy, error) { if b.failed() { return nil, nil, fmt.Errorf("could not build policy: %w", b.err) } if b.root.currentBranchNode != nil { return nil, nil, errors.New("branch node is being added") } digest, err := b.root.digest() if err != nil { return nil, nil, fmt.Errorf("internal error: %w", err) } policy := &Policy{ policy: policy{ PolicyDigests: taggedHashList{{HashAlg: b.root.alg(), Digest: digest}}, Policy: b.root.policyBranch.Policy, }, } if err := mu.CopyValue(&policy, policy); err != nil { return nil, nil, fmt.Errorf("cannot copy policy metadata: %w", err) } return digest, policy, nil } ./github.com/canonical/go-tpm2/policyutil/cphash.go0000664000000000000000000000601200000000000017350 0ustar00// Copyright 2019 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package policyutil import ( "encoding/binary" "errors" "fmt" "github.com/canonical/go-tpm2" "github.com/canonical/go-tpm2/mu" ) // CpHash provides a way to obtain a command parameter digest. type CpHash interface { // Digest returns the command parameter digest for the specified algorithm. Digest(alg tpm2.HashAlgorithmId) (tpm2.Digest, error) } func computeCpHash(alg tpm2.HashAlgorithmId, command tpm2.CommandCode, handles []tpm2.Name, cpBytes []byte) (tpm2.Digest, error) { if !alg.Available() { return nil, errors.New("algorithm is not available") } h := alg.NewHash() binary.Write(h, binary.BigEndian, command) for _, handle := range handles { h.Write(handle.Name()) } h.Write(cpBytes) return h.Sum(nil), nil } type commandParams struct { command tpm2.CommandCode handles []Named params []interface{} } func (c *commandParams) Digest(alg tpm2.HashAlgorithmId) (tpm2.Digest, error) { cpBytes, err := mu.MarshalToBytes(c.params...) if err != nil { return nil, err } var handles []tpm2.Name for i, handle := range c.handles { name := handle.Name() if !name.IsValid() { return nil, fmt.Errorf("invalid name for handle %d", i) } handles = append(handles, name) } return computeCpHash(alg, c.command, handles, cpBytes) } // CommandParameters returns a CpHash implementation for the specified command code, handles and // parameters. The required parameters are defined in part 3 of the TPM 2.0 Library Specification // for the specific command. func CommandParameters(command tpm2.CommandCode, handles []Named, params ...interface{}) CpHash { return &commandParams{ command: command, handles: handles, params: params} } type cpDigest tpm2.TaggedHash func (d *cpDigest) Digest(alg tpm2.HashAlgorithmId) (tpm2.Digest, error) { if alg != d.HashAlg { return nil, errors.New("no digest for algorithm") } return tpm2.Digest((*tpm2.TaggedHash)(d).Digest()), nil } // CommandParameterDigest returns a CpHash implementation for the specified algorithm and digest. func CommandParameterDigest(alg tpm2.HashAlgorithmId, digest tpm2.Digest) CpHash { d := tpm2.MakeTaggedHash(alg, digest) return (*cpDigest)(&d) } // ComputeCpHash computes a command parameter digest from the specified command code, the supplied // handles, and parameters using the specified digest algorithm. // // The required parameters is defined in part 3 of the TPM 2.0 Library Specification for the // specific command. // // The result of this is useful for extended authorization commands that bind an authorization to // a command and set of command parameters, such as [tpm2.TPMContext.PolicySigned], // [tpm2.TPMContext.PolicySecret], [tpm2.TPMContext.PolicyTicket] and // [tpm2.TPMContext.PolicyCpHash]. func ComputeCpHash(alg tpm2.HashAlgorithmId, command tpm2.CommandCode, handles []Named, params ...interface{}) (tpm2.Digest, error) { d := CommandParameters(command, handles, params...) return d.Digest(alg) } ./github.com/canonical/go-tpm2/policyutil/doc.go0000664000000000000000000000036400000000000016653 0ustar00// Copyright 2023 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. /* Package policyutil contains utilties for constructing and executing authorization policies. */ package policyutil ./github.com/canonical/go-tpm2/policyutil/named.go0000664000000000000000000000062000000000000017165 0ustar00// Copyright 2022 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package policyutil import ( "github.com/canonical/go-tpm2" ) // Named is some resource that has a name. type Named interface { Name() tpm2.Name } // NamedHandle is some resource that has a name and a handle. type NamedHandle interface { Handle() tpm2.Handle Named } ./github.com/canonical/go-tpm2/policyutil/namehash.go0000664000000000000000000000341000000000000017665 0ustar00// Copyright 2019 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package policyutil import ( "errors" "fmt" "github.com/canonical/go-tpm2" ) // NameHash provides a way to obtain a name digest. type NameHash interface { // Digest returns the name digest for the specified algorithm. Digest(alg tpm2.HashAlgorithmId) (tpm2.Digest, error) } type commandHandles []Named func (handles commandHandles) Digest(alg tpm2.HashAlgorithmId) (tpm2.Digest, error) { if !alg.Available() { return nil, errors.New("algorithm is not available") } h := alg.NewHash() for i, handle := range handles { if !handle.Name().IsValid() { return nil, fmt.Errorf("invalid name for handle %d", i) } h.Write(handle.Name()) } return h.Sum(nil), nil } // CommandHandles returns a NameHash implementation for the supplied command handles. func CommandHandles(handles ...Named) NameHash { return commandHandles(handles) } type nameDigest tpm2.TaggedHash func (d *nameDigest) Digest(alg tpm2.HashAlgorithmId) (tpm2.Digest, error) { if alg != d.HashAlg { return nil, errors.New("no digest for algorithm") } return tpm2.Digest((*tpm2.TaggedHash)(d).Digest()), nil } // CommandHandleDigest returns a NameHash implementation for the specified algorithm and digest. func CommandHandleDigest(alg tpm2.HashAlgorithmId, digest tpm2.Digest) NameHash { d := tpm2.MakeTaggedHash(alg, digest) return (*nameDigest)(&d) } // ComputeNameHash computes a digest from the supplied handles using the specified digest // algorithm. // // The result of this is useful with [tpm2.TPMContext.PolicyNameHash]. func ComputeNameHash(alg tpm2.HashAlgorithmId, handles ...Named) (tpm2.Digest, error) { d := CommandHandles(handles...) return d.Digest(alg) } ./github.com/canonical/go-tpm2/policyutil/or_tree.go0000664000000000000000000000571600000000000017553 0ustar00// Copyright 2023 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package policyutil import ( "errors" "github.com/canonical/go-tpm2" ) const ( // policyOrMaxDigests sets a reasonable limit on the maximum number of or // digests. policyOrMaxDigests = 4096 // equivalent to a depth of 4 ) // ensureSufficientORDigests turns a single digest in to a pair of identical digests. // This is because TPM2_PolicyOR assertions require more than one digest. This avoids // having a separate policy sequence when there is only a single digest, without having // to store duplicate digests on disk. func ensureSufficientORDigests(digests tpm2.DigestList) tpm2.DigestList { if len(digests) == 1 { return tpm2.DigestList{digests[0], digests[0]} } return digests } type policyOrNode struct { parent *policyOrNode digests tpm2.DigestList } type policyOrTree struct { alg tpm2.HashAlgorithmId leafNodes []*policyOrNode } func newPolicyOrTree(alg tpm2.HashAlgorithmId, digests tpm2.DigestList) (out *policyOrTree, err error) { if len(digests) == 0 { return nil, errors.New("no digests") } if len(digests) > policyOrMaxDigests { return nil, errors.New("too many digests") } var prev []*policyOrNode for len(prev) != 1 { // The outer loop runs on each level of the tree. If // len(prev) == 1, then we have produced the root node // and the loop should not continue. var current []*policyOrNode var nextDigests tpm2.DigestList for len(digests) > 0 { // The inner loop runs on each sibling node within a level. n := len(digests) if n > 8 { // The TPM only supports 8 conditions in TPM2_PolicyOR. n = 8 } // Create a new node with the next n digests and save it. node := &policyOrNode{digests: ensureSufficientORDigests(digests[:n])} current = append(current, node) // Consume the next n digests to fit in to this node and produce a single digest // that will go in to the parent node. trial := newComputePolicySession(alg, nil, true) trial.PolicyOR(node.digests) nextDigest, err := trial.PolicyGetDigest() if err != nil { return nil, err } nextDigests = append(nextDigests, nextDigest) // We've consumed n digests, so adjust the slice to point to the next ones to consume to // produce a sibling node. digests = digests[n:] } // There are no digests left to produce sibling nodes. // Link child nodes to parents. for i, child := range prev { child.parent = current[i>>3] } // Grab the digests for the nodes we've just produced to create the parent nodes. prev = current digests = nextDigests if out == nil { // Save the leaf nodes to return. out = &policyOrTree{ alg: alg, leafNodes: current, } } } return out, nil } func (t *policyOrTree) selectBranch(i int) (out []tpm2.DigestList) { node := t.leafNodes[i>>3] for node != nil { out = append(out, node.digests) node = node.parent } return out } ./github.com/canonical/go-tpm2/policyutil/path_chooser.go0000664000000000000000000005417400000000000020574 0ustar00// Copyright 2023 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package policyutil import ( "bytes" "errors" "fmt" "github.com/canonical/go-tpm2" "github.com/canonical/go-tpm2/mu" ) type policyPathChooserTreeWalkerResult struct { paths []policyBranchPath // ordered collection of paths details map[policyBranchPath]PolicyBranchDetails // map of details collected for each path missingAuthorized map[policyBranchPath]struct{} // map of each collected path with missing authorized policies } type policyPathChooserTreeWalkerBranchContext struct { nodeCtx *policyPathChooserTreeWalkerBranchNodeContext policySession *recorderPolicySession path policyBranchPath missingAuthorized bool details PolicyBranchDetails } func (c *policyPathChooserTreeWalkerBranchContext) session() policySession { return c.policySession } func (c *policyPathChooserTreeWalkerBranchContext) beginBranchNode() (treeWalkerBranchNodeContext, error) { return &policyPathChooserTreeWalkerBranchNodeContext{ branchCtx: c, alg: c.nodeCtx.alg, path: c.path, details: c.details, result: c.nodeCtx.result, }, nil } func (c *policyPathChooserTreeWalkerBranchContext) completeFullPath() error { result := c.nodeCtx.result result.paths = append(result.paths, c.path) result.details[c.path] = c.details if c.missingAuthorized { result.missingAuthorized[c.path] = struct{}{} } return nil } type policyPathChooserTreeWalkerBranchNodeContext struct { branchCtx *policyPathChooserTreeWalkerBranchContext alg tpm2.HashAlgorithmId path policyBranchPath details PolicyBranchDetails result *policyPathChooserTreeWalkerResult } func (c *policyPathChooserTreeWalkerBranchNodeContext) beginBranch(name string) (treeWalkerBranchContext, error) { branchCtx := &policyPathChooserTreeWalkerBranchContext{ nodeCtx: c, path: c.path.Concat(name), details: c.details, } branchCtx.policySession = newRecorderPolicySession(c.alg, &branchCtx.details) switch { case name != "" && name[0] == '<': branchCtx.missingAuthorized = true // this path is missing authorized policies case c.branchCtx != nil: branchCtx.missingAuthorized = c.branchCtx.missingAuthorized } return branchCtx, nil } // policyPathChooser attempts to automatically select a sequence of paths to execute. type policyPathChooser struct { mockPolicyResources sessionAlg tpm2.HashAlgorithmId resources *executePolicyResources tpm TPMHelper usage *policySessionUsageConstraints ignoreAuthorizations []PolicyAuthorizationID ignoreNV []Named // These fields are reset on each call to choose walkResult *policyPathChooserTreeWalkerResult nvCheckedOk map[nvAssertionMapKey]struct{} // map of PolicyNV assertions that would succeed } func newPolicyPathChooser(sessionAlg tpm2.HashAlgorithmId, resources *executePolicyResources, tpm TPMHelper, usage *policySessionUsageConstraints, ignoreAuthorizations []PolicyAuthorizationID, ignoreNV []Named) *policyPathChooser { return &policyPathChooser{ sessionAlg: sessionAlg, resources: resources, tpm: tpm, usage: usage, ignoreAuthorizations: ignoreAuthorizations, ignoreNV: ignoreNV, } } // filterInvalidBranches removes branches that are definitely invalid. func (s *policyPathChooser) filterInvalidBranches() { // iterate over each execution path for p, d := range s.walkResult.details { if d.IsValid() { continue } delete(s.walkResult.details, p) } } // filterIgnoredResources removes branches that require resources that the caller // requested to not be used. func (s *policyPathChooser) filterIgnoredResources() { for _, ignore := range s.ignoreAuthorizations { // iterate over each execution path for p, d := range s.walkResult.details { var auths []PolicyAuthorizationID auths = append(auths, d.Secret...) auths = append(auths, d.Signed...) auths = append(auths, d.Authorize...) // iterate over each authorization in this path for _, auth := range auths { if bytes.Equal(auth.AuthName, ignore.AuthName) && bytes.Equal(auth.PolicyRef, ignore.PolicyRef) { // this path contains an authorization to ignore, so drop it delete(s.walkResult.details, p) break } } } } for _, ignore := range s.ignoreNV { // iterate over each execution path for p, d := range s.walkResult.details { // iterate over each PolicyNV assertion in this path for _, nv := range d.NV { if bytes.Equal(nv.Name, ignore.Name()) { // this path contains a PolicyNV assertion to ignore, so drop it delete(s.walkResult.details, p) break } } } } } // filterMissingAuthorizedBranches removes branches that contain TPM2_PolicyAuthorize // assertions with no candidate authorized policies returned from the supplied // PolicyResources. func (s *policyPathChooser) filterMissingAuthorizedBranches() { // iterate over each execution path for p := range s.walkResult.details { if _, missing := s.walkResult.missingAuthorized[p]; missing { delete(s.walkResult.details, p) } } } // filterUsageIncompatibleBranches removes branches that are not compatible with // the specified session usage, if it is supplied. func (s *policyPathChooser) filterUsageIncompatibleBranches() error { // iterate over each execution path for p, d := range s.walkResult.details { if s.usage.hasCommand { code, set := d.CommandCode() if set && code != s.usage.commandCode { // this path doesn't match the command code, so drop it delete(s.walkResult.details, p) continue } } if s.usage.canCpHash() { cpHash, set := d.CpHash() if set { usageCpHash, err := s.usage.cpHash(s.sessionAlg) if err != nil { return fmt.Errorf("cannot obtain cpHash from usage parameters: %w", err) } if !bytes.Equal(usageCpHash, cpHash) { // this path doesn't match the command parameters, so drop it delete(s.walkResult.details, p) continue } } } if s.usage.canNameHash() { nameHash, set := d.NameHash() if set { usageNameHash, err := s.usage.nameHash(s.sessionAlg) if err != nil { return fmt.Errorf("cannot obtain nameHash from usage parameters: %w", err) } if !bytes.Equal(usageNameHash, nameHash) { // this path doesn't match the command handles, so drop it delete(s.walkResult.details, p) continue } } } if d.AuthValueNeeded && s.usage.noAuthValue { // this path requires an auth value which the usage indicates is not possible, so drop it delete(s.walkResult.details, p) continue } if s.usage.hasHandles { nvWritten, set := d.NvWritten() if set { authHandle := s.usage.authHandle() if authHandle.Handle().Type() != tpm2.HandleTypeNVIndex { // this path uses TPM2_PolicyNvWritten but the auth handle is not a // NV index, so drop this path delete(s.walkResult.details, p) continue } pub, err := s.tpm.NVReadPublic(tpm2.NewHandleContext(authHandle.Handle())) if err != nil { return fmt.Errorf("cannot obtain NV index public area: %w", err) } written := pub.Attrs&tpm2.AttrNVWritten != 0 if nvWritten != written { // this path uses TPM2_PolicyNvWritten but the auth handle attributes // are incompatible, so drop this path. delete(s.walkResult.details, p) continue } } } } return nil } // filterPcrIncompatibleBranches removes branches that contain TPM2_PolicyPCR // assertions with values which don't match the current PCR values. func (s *policyPathChooser) filterPcrIncompatibleBranches() error { // Build a list of PCR selections from the paths var pcrs tpm2.PCRSelectionList // iterate over each execution path for p, d := range s.walkResult.details { // iterate over each PolicyPCR assertion in this path for _, item := range d.PCR { // merge the selections tmpPcrs, err := pcrs.Merge(item.PCRs) if err != nil { // this assertion is invalid, so drop this path delete(s.walkResult.details, p) break } pcrs = tmpPcrs } } if pcrs.IsEmpty() { // There are no PolicyPCR assertions return nil } // Read the current PCR values pcrValues, err := s.tpm.PCRRead(pcrs) if err != nil { return fmt.Errorf("cannot obtain PCR values: %w", err) } // iterate over each execution path for p, d := range s.walkResult.details { // iterate over each PolicyPCR assertion in this path for _, item := range d.PCR { // compare the assertion to the current values pcrDigest, err := ComputePCRDigest(s.sessionAlg, item.PCRs, pcrValues) if err != nil { return fmt.Errorf("cannot compute PCR digest: %w", err) } if !bytes.Equal(pcrDigest, item.PCRDigest) { // the assertion doesn't match the current PCR values, so drop this path delete(s.walkResult.details, p) break } } } return nil } func (s *policyPathChooser) bufferMatch(operandA, operandB tpm2.Operand, operation tpm2.ArithmeticOp) bool { if len(operandA) != len(operandB) { panic("mismatched operand sizes") } switch operation { case tpm2.OpEq: return bytes.Equal(operandA, operandB) case tpm2.OpNeq: return !bytes.Equal(operandA, operandB) case tpm2.OpSignedGT: switch { case len(operandA) == 0: return false case (operandA[0]^operandB[0])&0x80 > 0: return operandA[0]&0x80 == 0 default: return bytes.Compare(operandA, operandB) > 0 } case tpm2.OpUnsignedGT: return bytes.Compare(operandA, operandB) > 0 case tpm2.OpSignedLT: switch { case len(operandA) == 0: return false case (operandA[0]^operandB[0])&0x80 > 0: return operandA[0]&0x80 > 0 default: return bytes.Compare(operandA, operandB) < 0 } case tpm2.OpUnsignedLT: return bytes.Compare(operandA, operandB) < 0 case tpm2.OpSignedGE: switch { case len(operandA) == 0: return true case (operandA[0]^operandB[0])&0x80 > 0: return operandA[0]&0x80 == 0 default: return bytes.Compare(operandA, operandB) >= 0 } case tpm2.OpUnsignedGE: return bytes.Compare(operandA, operandB) >= 0 case tpm2.OpSignedLE: switch { case len(operandA) == 0: return true case (operandA[0]^operandB[0])&0x80 > 0: return operandA[0]&0x80 > 0 default: return bytes.Compare(operandA, operandB) <= 0 } case tpm2.OpUnsignedLE: return bytes.Compare(operandA, operandB) <= 0 case tpm2.OpBitset: for i := range operandA { if operandA[i]&operandB[i] != operandB[i] { return false } } return true case tpm2.OpBitclear: for i := range operandA { if operandA[i]&operandB[i] > 0 { return false } } return true default: panic("not reached") } } func (s *policyPathChooser) canAuthNV(pub *tpm2.NVPublic, policy *Policy, command tpm2.CommandCode) bool { if pub.Attrs&tpm2.AttrNVPolicyRead == 0 { return false } if policy == nil { return false } details, err := policy.Details(pub.Name().Algorithm(), "", nil) if err != nil { return false } for _, d := range details { if len(d.NV) > 0 { continue } if len(d.Secret) > 0 { continue } if len(d.Signed) > 0 { continue } if len(d.Authorize) > 0 { continue } if d.AuthValueNeeded { continue } code, set := d.CommandCode() if set && code != command { continue } if len(d.CounterTimer) > 0 { continue } if _, set := d.CpHash(); set { continue } if _, set := d.NameHash(); set { continue } if len(d.PCR) > 0 { continue } nvWritten, set := d.NvWritten() if set && !nvWritten { continue } return true } return false } type nvAssertionMapKey uint32 func makeNvAssertionMapKey(nv *PolicyNVDetails) nvAssertionMapKey { return nvAssertionMapKey(mapKey(nv)) } type nvIndexInfo struct { resource tpm2.ResourceContext pub *tpm2.NVPublic policy *Policy } type nvAssertionStatus int const ( nvAssertionStatusIndeterminate nvAssertionStatus = iota nvAssertionStatusIncompatible nvAssertionStatusOK ) // filterNVIncompatibleBranches removes branches that contain TPM2_PolicyNV assertions // that will fail. This ignores assertions where it's not possible to determine the current // NV index contents because it requires authorization to read. It populates the nvCheckedOk // map for assertions that were checked to be good. func (s *policyPathChooser) filterNVIncompatibleBranches() error { nvResult := make(map[nvAssertionMapKey]nvAssertionStatus) // a map of assertion IDs to status nvInfo := make(map[tpm2.Handle]*nvIndexInfo) // a map of handles to information about the corresponding index // iterate over each execution path for p, d := range s.walkResult.details { incompatible := false // iterate over each PolicyNV assertion in this path for _, nv := range d.NV { nv := nv // check if we have a result for this assertion key := makeNvAssertionMapKey(&nv) if status, exists := nvResult[key]; exists { // We have a result. if status == nvAssertionStatusIncompatible { // The assertion is incompatible with the current index // contents. Mark this path as bad and break early. incompatible = true break } // Nothing else to do for this assertion continue } // add preliminary result nvResult[key] = nvAssertionStatusIndeterminate // obtain NV index info info, exists := nvInfo[nv.Index] if !exists { // Read the index info from the TPM pub, err := s.tpm.NVReadPublic(tpm2.NewHandleContext(nv.Index)) if tpm2.IsTPMHandleError(err, tpm2.ErrorHandle, tpm2.AnyCommandCode, tpm2.AnyHandleIndex) { // if no NV index exists, then this branch won't work. nvResult[key] = nvAssertionStatusIncompatible incompatible = true break } if err != nil { return err } name := pub.Name() if !bytes.Equal(name, nv.Name) { // if the NV index doesn't have the expected name, then this // branch won't work. nvResult[key] = nvAssertionStatusIncompatible incompatible = true break } // Obtain the policy for the index policy, err := s.resources.policy(nv.Name) if err != nil { return err } info = &nvIndexInfo{resource: tpm2.NewNVIndexResourceContext(pub, name), pub: pub, policy: policy} nvInfo[nv.Index] = info } // Check the assertion is compatible with the public area if int(nv.Offset) > int(info.pub.Size) { nvResult[key] = nvAssertionStatusIncompatible incompatible = true break } if int(nv.Offset)+len(nv.OperandB) > int(info.pub.Size) { nvResult[key] = nvAssertionStatusIncompatible incompatible = true break } // If we can't execute TPM2_NV_Read without authorization, then the result // is indeterminate. We don't mark this path as bad, but we don't add it to // nvCheckedOk. if !s.canAuthNV(info.pub, info.policy, tpm2.CommandNVRead) { continue } // Run the policy session and read the NV index status, err := func() (nvAssertionStatus, error) { session, policySession, err := s.tpm.StartAuthSession(tpm2.SessionTypePolicy, nv.Name.Algorithm()) if err != nil { return nvAssertionStatusIndeterminate, err } defer session.Flush() rc := tpm2.NewResourceContext(nv.Index, nv.Name) params := &policyExecuteParams{ tpm: s.tpm, usage: policySessionUsageConstraints{ hasCommand: true, hasHandles: true, hasParams: true, commandCode: tpm2.CommandNVRead, handles: []NamedHandle{rc, rc}, params: []any{uint16(len(nv.OperandB)), nv.Offset}, noAuthValue: true, }, } resources := new(nullPolicyResources) tickets, _ := newExecutePolicyTickets(s.sessionAlg, nil, ¶ms.usage) runner := newPolicyExecuteRunner( policySession, params, tickets, newExecutePolicyResources(session, resources, tickets, nil, nil), resources, new(PolicyBranchDetails), ) if err := runner.run(info.policy.policy.Policy); err != nil { // ignore policy execution error return nvAssertionStatusIndeterminate, nil } data, err := s.tpm.NVRead(info.resource, info.resource, uint16(len(nv.OperandB)), nv.Offset, session.Session()) if err != nil { // ignore NVRead error return nvAssertionStatusIndeterminate, nil } operandA := tpm2.Operand(data) operandB := nv.OperandB if !s.bufferMatch(operandA, operandB, nv.Operation) { return nvAssertionStatusIncompatible, nil } return nvAssertionStatusOK, nil }() if err != nil { return err } // update the result for this assertion nvResult[key] = status if status == nvAssertionStatusIncompatible { // the assertion is incompatible, so mark this path as bad and break early incompatible = true break } if status == nvAssertionStatusOK { // the assertion is good, so add it to nvCheckedOk s.nvCheckedOk[key] = struct{}{} } } if incompatible { // the last checked PolicyNV assertion for this path is bad, so // drop the whole path delete(s.walkResult.details, p) } } return nil } // filterCounterTimerIncompatibleBranches removes branches that contain TPM2_PolicyCounterTimer // assertions that will fail. func (s *policyPathChooser) filterCounterTimerIncompatibleBranches() error { // determine whether any paths use TPM2_PolicyCounterTimer hasCounterTimerAssertions := false // iterate over each execution path for _, d := range s.walkResult.details { if len(d.CounterTimer) > 0 { // we've found one - no need to check any more hasCounterTimerAssertions = true break } } if !hasCounterTimerAssertions { // no TPM2_PolicyCounterTimer assertions return nil } // Read the current time info timeInfo, err := s.tpm.ReadClock() if err != nil { return fmt.Errorf("cannot obtain time info: %w", err) } // Serialize the current time info timeInfoData, err := mu.MarshalToBytes(timeInfo) if err != nil { return fmt.Errorf("cannot marshal time info: %w", err) } // iterate over each execution path for p, d := range s.walkResult.details { incompatible := false // iterate over each PolicyCounterTimer assertion in this path for _, item := range d.CounterTimer { if int(item.Offset) > len(timeInfoData) { // the assertion is invalid, so drop this path and break early incompatible = true break } if int(item.Offset)+len(item.OperandB) > len(timeInfoData) { // the assertion is invalid, so drop this path and break early incompatible = true break } operandA := timeInfoData[int(item.Offset) : int(item.Offset)+len(item.OperandB)] operandB := item.OperandB if !s.bufferMatch(operandA, operandB, item.Operation) { // the assertion doesn't match the current time info, so drop this path and // break early incompatible = true break } } if incompatible { // the last checked PolicyCounterTimer assertion for this path is bad, so // drop the whole path delete(s.walkResult.details, p) } } return nil } type policyPathChooserTreeWalkError struct { err error } func (e *policyPathChooserTreeWalkError) Error() string { return fmt.Sprintf("cannot perform tree walk: %v", e.err) } func (e *policyPathChooserTreeWalkError) Unwrap() error { return e.err } func (*policyPathChooserTreeWalkError) isPolicyDelimiterError() {} func (s *policyPathChooser) choose(branches policyBranches) (policyBranchPath, error) { // reset state s.walkResult = &policyPathChooserTreeWalkerResult{ details: make(map[policyBranchPath]PolicyBranchDetails), missingAuthorized: make(map[policyBranchPath]struct{}), } s.nvCheckedOk = make(map[nvAssertionMapKey]struct{}) walker := newTreeWalker(s, &policyPathChooserTreeWalkerBranchNodeContext{ alg: s.sessionAlg, result: s.walkResult, }) if err := walker.run(policyElements{ &policyElement{ Type: commandPolicyBranchNode, Details: &policyElementDetails{ BranchNode: &policyBranchNodeElement{Branches: branches}, }, }, }); err != nil { return "", &policyPathChooserTreeWalkError{err: err} } // Drop incompatible paths s.filterInvalidBranches() s.filterIgnoredResources() s.filterMissingAuthorizedBranches() if err := s.filterUsageIncompatibleBranches(); err != nil { return "", fmt.Errorf("cannot filter branches incompatible with usage: %w", err) } if err := s.filterPcrIncompatibleBranches(); err != nil { return "", fmt.Errorf("cannot filter branches with TPM2_PolicyPCR assertions that will fail: %w", err) } if err := s.filterCounterTimerIncompatibleBranches(); err != nil { return "", fmt.Errorf("cannot filter branches with TPM2_PolicyCounterTimer assertions that will fail: %w", err) } if err := s.filterNVIncompatibleBranches(); err != nil { return "", fmt.Errorf("cannot filter branches with TPM2_PolicyNV assertions that will fail: %w", err) } var candidates []policyBranchPath for _, path := range s.walkResult.paths { if _, exists := s.walkResult.details[path]; !exists { continue } candidates = append(candidates, path) } if len(candidates) == 0 { return "", errors.New("no appropriate paths found") } // Provisionally select the first path path := candidates[0] // Try to find a better path for _, candidate := range candidates { details := s.walkResult.details[candidate] // prefer paths without TPM2_PolicyAuthValue and TPM2_PolicyPassword if details.AuthValueNeeded { continue } // prefer paths without TPM2_PolicySecret if len(details.Secret) > 0 { continue } // prefer paths without TPM2_PolicySigned if len(details.Signed) > 0 { continue } // prefer paths without unchecked TPM2_PolicyNV nvOK := true for _, nv := range details.NV { if _, ok := s.nvCheckedOk[makeNvAssertionMapKey(&nv)]; !ok { nvOK = false break } } if !nvOK { continue } // prefer paths without TPM2_PolicyCommandCode if we don't know the usage if _, set := details.CommandCode(); set && !s.usage.hasCommand { continue } // prefer paths without TPM2_PolicyCpHash if we don't know the usage if _, set := details.CpHash(); set && !s.usage.canCpHash() { continue } // prefer paths without TPM2_PolicyNameHash if we don't know the usage if _, set := details.NameHash(); set && !s.usage.canNameHash() { continue } // we've found the perfect path! path = candidate break } return path, nil } ./github.com/canonical/go-tpm2/policyutil/pcr_digest.go0000664000000000000000000000412000000000000020223 0ustar00// Copyright 2019 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package policyutil import ( "errors" "fmt" "math" "github.com/canonical/go-tpm2" ) // ComputePCRDigest computes a digest using the specified algorithm from the provided set of PCR // values and the provided PCR selections. The digest is computed the same way as PCRComputeCurrentDigest // as defined in the TPM reference implementation. It is most useful for computing an input to // [tpm2.TPMContext.PolicyPCR] or [TrialAuthPolicy.PolicyPCR], and for validating quotes and creation data. func ComputePCRDigest(alg tpm2.HashAlgorithmId, pcrs tpm2.PCRSelectionList, values tpm2.PCRValues) (tpm2.Digest, error) { if !alg.Available() { return nil, errors.New("algorithm is not available") } h := alg.NewHash() for _, s := range pcrs { if _, ok := values[s.Hash]; !ok { return nil, fmt.Errorf("the provided values don't contain digests for the selected PCR bank %v", s.Hash) } bmp, err := s.Select.ToBitmap(math.MaxUint8) if err != nil { return nil, fmt.Errorf("invalid selection: %w", err) } sel := bmp.ToPCRs() for _, i := range sel { d, ok := values[s.Hash][i] if !ok { return nil, fmt.Errorf("the provided values don't contain a digest for PCR%d in bank %v", i, s.Hash) } h.Write(d) } } return h.Sum(nil), nil } // ComputePCRDigestFromAllValues computes a digest using the specified algorithm from all of the // provided set of PCR values. The digest is computed the same way as PCRComputeCurrentDigest as // defined in the TPM reference implementation. It returns the PCR selection associated with the // computed digest. func ComputePCRDigestFromAllValues(alg tpm2.HashAlgorithmId, values tpm2.PCRValues) (tpm2.PCRSelectionList, tpm2.Digest, error) { if !alg.Available() { return nil, nil, errors.New("algorithm is not available") } pcrs, err := values.SelectionList() if err != nil { return nil, nil, err } digest, err := ComputePCRDigest(alg, pcrs, values) if err != nil { return nil, nil, err } return pcrs, digest, nil } ./github.com/canonical/go-tpm2/policyutil/policy.go0000664000000000000000000010251700000000000017410 0ustar00// Copyright 2023 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package policyutil import ( "bytes" "crypto" "errors" "fmt" "hash/fnv" "io" "path/filepath" "reflect" "strconv" "strings" "unicode/utf8" "github.com/canonical/go-tpm2" "github.com/canonical/go-tpm2/mu" ) const ( pathForbiddenChars = "{}*<>[]/" // We use command codes to identify element types. In the case // where we need a custom command code for a special element, // we set the vendor bit (0x20000000) and also set one of the // reserved bits (0xdfff0000) commandPolicyBranchNode tpm2.CommandCode = 0x20010171 commandPolicyPCRValues tpm2.CommandCode = 0x2002017F ) var ( // ErrMissingDigest is returned from [Policy.Execute] when a TPM2_PolicyCpHash or // TPM2_PolicyNameHash assertion is missing a digest for the selected session algorithm. ErrMissingDigest = errors.New("missing digest for session algorithm") ) type ( taskFn func() error authMapKey uint32 ticketMapKey uint32 ) func mapKey(vals ...interface{}) uint32 { h := fnv.New32() mu.MustMarshalToWriter(h, vals...) return h.Sum32() } func makeAuthMapKey(authName tpm2.Name, policyRef tpm2.Nonce) authMapKey { return authMapKey(mapKey(authName, policyRef)) } func makeTicketMapKey(ticket *PolicyTicket) ticketMapKey { return ticketMapKey(mapKey(ticket.AuthName, ticket.PolicyRef, ticket.CpHash)) } // PolicyTicket corresponds to a ticket generated from a TPM2_PolicySigned or TPM2_PolicySecret // assertion and is returned by [Policy.Execute]. Generated tickets can be supplied to // [Policy.Execute] in the future in order to satisfy these assertions as long as they haven't // expired. type PolicyTicket struct { AuthName tpm2.Name // The name of the auth object associated with the corresponding assertion PolicyRef tpm2.Nonce // The policy ref of the corresponding assertion CpHash tpm2.Digest // The cpHash supplied to the assertion that generated this ticket Timeout tpm2.Timeout // The timeout returned by the assertion that generated this ticket // Ticket is the actual ticket returned by the TPM for the assertion that generated this ticket. // The Tag field indicates whether this was generated by TPM2_PolicySigned or TPM2_PolicySecret. Ticket *tpm2.TkAuth } // PolicyError is returned from [Policy.Execute] and other methods when an error // is encountered during some processing of a policy. It provides an indication of // where an error occurred. type PolicyError struct { Path string // the path of the branch at which the error occurred task string err error } type policyDelimiterError interface { error isPolicyDelimiterError() } // makePolicyError returns a PolicyError in the following way: // - If the supplied error already contains a PolicyError from the current policy, // it is unwrapped to the first error within the current policy and returned. // - If the supplied error does not contain a PolicyError from the current policy // the error is wrapped with a new PolicyError. // // A policy boundary is indicated by the presence of a policyDelimiterError. func makePolicyError(err error, path policyBranchPath, task string) *PolicyError { pErr := &PolicyError{Path: string(path), task: task, err: err} var delim policyDelimiterError errors.As(err, &delim) var pErrNext *PolicyError for errors.As(errors.Unwrap(pErr), &pErrNext) { if delim != nil { var delim2 policyDelimiterError if !errors.As(pErrNext, &delim2) || delim2 != delim { break } } pErr = pErrNext } return pErr } func (e *PolicyError) Error() string { branch := "root branch" if len(e.Path) > 0 { branch = "branch '" + e.Path + "'" } return fmt.Sprintf("cannot run '%s' task in %s: %v", e.task, branch, e.err) } func (e *PolicyError) Unwrap() error { return e.err } // PolicyNVError is returned from [Policy.Execute] and other methods when an error // is encountered when executing a TPM2_PolicyNV assertion. If there was an error // authorizing use of the NV index with a policy session, this will wrap a // *[ResourceAuthorizeError]. type PolicyNVError struct { Index tpm2.Handle // The NV index handle Name tpm2.Name // The NV index name err error } func (e *PolicyNVError) Error() string { return fmt.Sprintf("cannot complete assertion with NV index %v (name: %#x): %v", e.Index, e.Name, e.err) } func (e *PolicyNVError) Unwrap() error { return e.err } // PolicyAuthorizationError is returned from [Policy.Execute] if: // - the policy uses TPM2_PolicySecret and the associated resource could not be authorized. When // this occurs because there was an error loading the associated resource, this will wrap a // *[ResourceLoadError]. If there was an error authorizing use of the resource with a policy // session, this will wrap a *[ResourceAuthorizeError]. // - the policy uses TPM2_PolicySigned and no or an invalid signed authorization was supplied. // - the policy uses TPM2_PolicyAuthorize and no or an invalid authorized policy was supplied. type PolicyAuthorizationError struct { AuthName tpm2.Name PolicyRef tpm2.Nonce err error } func (e *PolicyAuthorizationError) Error() string { return fmt.Sprintf("cannot complete authorization with authName=%#x, policyRef=%#x: %v", e.AuthName, e.PolicyRef, e.err) } func (e *PolicyAuthorizationError) Unwrap() error { return e.err } // ResourceLoadError is returned from [Policy.Execute] if the policy uses TPM2_PolicySecret // and the associated resource could not be loaded. If loading the resource required // authorization with a policy session and that failed, this will wrap another *[PolicyError]. type ResourceLoadError struct { Name tpm2.Name err error } func (e *ResourceLoadError) Error() string { return fmt.Sprintf("cannot load resource with name %#x: %v", e.Name, e.err) } func (e *ResourceLoadError) Unwrap() error { return e.err } func (*ResourceLoadError) isPolicyDelimiterError() {} // ResourceAuthorizeError is returned from [Policy.Execute] if an error is encountered // when trying to authorize a resource required by a policy. This should be wrappped in // either a *[PolicyNVError] or *[PolicyAuthorizationError] which indicates the assertion // that the error occurred for. This may wrap another *[PolicyError]. type ResourceAuthorizeError struct { Name tpm2.Name err error } func (e *ResourceAuthorizeError) Error() string { return fmt.Sprintf("cannot authorize resource with name %#x: %v", e.Name, e.err) } func (e *ResourceAuthorizeError) Unwrap() error { return e.err } func (*ResourceAuthorizeError) isPolicyDelimiterError() {} type policyBranchName string func (n policyBranchName) isValid() bool { if !utf8.ValidString(string(n)) { return false } if strings.ContainsAny(string(n), pathForbiddenChars) { return false } return true } func (n policyBranchName) Marshal(w io.Writer) error { if !n.isValid() { return errors.New("invalid name") } _, err := mu.MarshalToWriter(w, []byte(n)) return err } func (n *policyBranchName) Unmarshal(r io.Reader) error { var b []byte if _, err := mu.UnmarshalFromReader(r, &b); err != nil { return err } name := policyBranchName(b) if !name.isValid() { return errors.New("invalid name") } *n = name return nil } type policyBranchPath string func (p policyBranchPath) PopNextComponent() (next string, remaining policyBranchPath) { remaining = p for len(remaining) > 0 { s := strings.SplitN(string(remaining), "/", 2) remaining = "" if len(s) == 2 { remaining = policyBranchPath(s[1]) } component := s[0] if len(component) > 0 { return component, remaining } } return "", "" } func (p policyBranchPath) Concat(path string) policyBranchPath { var pathElements []string if p != "" { pathElements = append(pathElements, string(p)) } if path != "" { pathElements = append(pathElements, path) } return policyBranchPath(strings.Join(pathElements, "/")) } type authorizedPolicy struct { policyBranch authorization *PolicyAuthorization } type authorizationCommandParams struct { commandCode tpm2.CommandCode handles []NamedHandle params []interface{} } // policySession corresponds to a policy session. This is a limited version // of PolicyExecuteSession that's used in all code paths in Policy. type policySession interface { Name() tpm2.Name HashAlg() tpm2.HashAlgorithmId PolicySigned(authKey tpm2.ResourceContext, includeNonceTPM bool, cpHashA tpm2.Digest, policyRef tpm2.Nonce, expiration int32, auth *tpm2.Signature) (tpm2.Timeout, *tpm2.TkAuth, error) PolicySecret(authObject tpm2.ResourceContext, cpHashA tpm2.Digest, policyRef tpm2.Nonce, expiration int32, authObjectAuthSession tpm2.SessionContext) (tpm2.Timeout, *tpm2.TkAuth, error) PolicyTicket(timeout tpm2.Timeout, cpHashA tpm2.Digest, policyRef tpm2.Nonce, authName tpm2.Name, ticket *tpm2.TkAuth) error PolicyOR(pHashList tpm2.DigestList) error PolicyPCR(pcrDigest tpm2.Digest, pcrs tpm2.PCRSelectionList) error PolicyNV(auth, index tpm2.ResourceContext, operandB tpm2.Operand, offset uint16, operation tpm2.ArithmeticOp, authAuthSession tpm2.SessionContext) error PolicyCounterTimer(operandB tpm2.Operand, offset uint16, operation tpm2.ArithmeticOp) error PolicyCommandCode(code tpm2.CommandCode) error PolicyCpHash(cpHashA tpm2.Digest) error PolicyNameHash(nameHash tpm2.Digest) error PolicyDuplicationSelect(objectName, newParentName tpm2.Name, includeObject bool) error PolicyAuthorize(approvedPolicy tpm2.Digest, policyRef tpm2.Nonce, keySign tpm2.Name, verified *tpm2.TkVerified) error PolicyAuthValue() error PolicyPassword() error PolicyGetDigest() (tpm2.Digest, error) PolicyNvWritten(writtenSet bool) error } type policyTickets interface { ticket(authName tpm2.Name, policyRef tpm2.Nonce) *PolicyTicket addTicket(ticket *PolicyTicket) invalidTicket(ticket *PolicyTicket) } type policyResources interface { loadedResource(name tpm2.Name) (ResourceContext, error) authorizedPolicies(keySign tpm2.Name, policyRef tpm2.Nonce) ([]*Policy, error) signedAuthorization(authKey tpm2.Name, policyRef tpm2.Nonce) (*PolicySignedAuthorization, error) } type policyRunner interface { session() policySession tickets() policyTickets resources() policyResources authResourceName() tpm2.Name loadExternal(public *tpm2.Public) (ResourceContext, error) authorize(auth ResourceContext, askForPolicy bool, params *authorizationCommandParams, prefer tpm2.SessionType) (SessionContext, error) runBranch(branches policyBranches) (selected int, err error) runAuthorizedPolicy(keySign *tpm2.Public, policyRef tpm2.Nonce, policies []*authorizedPolicy) (approvedPolicy tpm2.Digest, checkTicket *tpm2.TkVerified, err error) notifyPolicyPCRDigest() error } type taggedHash struct { HashAlg tpm2.HashAlgorithmId Digest tpm2.Digest } func (h taggedHash) Marshal(w io.Writer) error { ta := tpm2.MakeTaggedHash(h.HashAlg, h.Digest) _, err := mu.MarshalToWriter(w, ta) return err } func (h *taggedHash) Unmarshal(r io.Reader) error { var ta tpm2.TaggedHash if _, err := mu.UnmarshalFromReader(r, &ta); err != nil { return err } if ta.HashAlg != tpm2.HashAlgorithmNull && !ta.HashAlg.IsValid() { return errors.New("invalid digest algorithm") } *h = taggedHash{ HashAlg: ta.HashAlg, Digest: ta.Digest()} return nil } type taggedHashList []taggedHash type policyNVElement struct { NvIndex *tpm2.NVPublic OperandB tpm2.Operand Offset uint16 Operation tpm2.ArithmeticOp } func (*policyNVElement) name() string { return "TPM2_PolicyNV assertion" } func (e *policyNVElement) run(runner policyRunner) (err error) { nvIndex, err := tpm2.NewNVIndexResourceContextFromPub(e.NvIndex) if err != nil { return fmt.Errorf("cannot create nvIndex context: %w", err) } var auth ResourceContext = newResourceContext(nvIndex, nil) askForPolicy := true switch { case e.NvIndex.Attrs&tpm2.AttrNVPolicyRead != 0: // use NV index for auth case e.NvIndex.Attrs&tpm2.AttrNVAuthRead != 0: // use NV index for auth case e.NvIndex.Attrs&tpm2.AttrNVOwnerRead != 0: auth, err = runner.resources().loadedResource(tpm2.MakeHandleName(tpm2.HandleOwner)) askForPolicy = false case e.NvIndex.Attrs&tpm2.AttrNVPPRead != 0: auth, err = runner.resources().loadedResource(tpm2.MakeHandleName(tpm2.HandlePlatform)) askForPolicy = false default: return errors.New("invalid nvIndex read auth mode") } if err != nil { return &PolicyNVError{ Index: nvIndex.Handle(), Name: nvIndex.Name(), err: fmt.Errorf("cannot create auth context: %w", err), } } params := &authorizationCommandParams{ commandCode: tpm2.CommandPolicyNV, handles: []NamedHandle{auth.Resource(), nvIndex, runner.session().Name()}, params: []any{e.OperandB, e.Offset, e.Operation}, } authSession, err := runner.authorize(auth, askForPolicy, params, tpm2.SessionTypePolicy) if err != nil { return &PolicyNVError{ Index: nvIndex.Handle(), Name: nvIndex.Name(), err: &ResourceAuthorizeError{Name: nvIndex.Name(), err: err}, } } defer authSession.Flush() if err := runner.session().PolicyNV(auth.Resource(), nvIndex, e.OperandB, e.Offset, e.Operation, authSession.Session()); err != nil { return &PolicyNVError{Index: nvIndex.Handle(), Name: nvIndex.Name(), err: err} } return nil } type policySecretElement struct { AuthObjectName tpm2.Name PolicyRef tpm2.Nonce CpHashA tpm2.Digest Expiration int32 } func (*policySecretElement) name() string { return "TPM2_PolicySecret assertion" } func (e *policySecretElement) run(runner policyRunner) (err error) { if ticket := runner.tickets().ticket(e.AuthObjectName, e.PolicyRef); ticket != nil { err := runner.session().PolicyTicket(ticket.Timeout, ticket.CpHash, ticket.PolicyRef, ticket.AuthName, ticket.Ticket) switch { case tpm2.IsTPMParameterError(err, tpm2.ErrorExpired, tpm2.CommandPolicyTicket, 1): // The ticket has expired - ignore this and fall through to PolicySecret runner.tickets().invalidTicket(ticket) case tpm2.IsTPMParameterError(err, tpm2.ErrorTicket, tpm2.CommandPolicyTicket, 5): // The ticket is invalid - ignore this and fall through to PolicySecret runner.tickets().invalidTicket(ticket) case err != nil: return &PolicyAuthorizationError{AuthName: e.AuthObjectName, PolicyRef: e.PolicyRef, err: err} default: // The ticket was accepted return nil } } authObject, err := runner.resources().loadedResource(e.AuthObjectName) if err != nil { return &PolicyAuthorizationError{ AuthName: e.AuthObjectName, PolicyRef: e.PolicyRef, err: &ResourceLoadError{Name: e.AuthObjectName, err: err}, } } defer authObject.Flush() params := &authorizationCommandParams{ commandCode: tpm2.CommandPolicySecret, handles: []NamedHandle{authObject.Resource(), runner.session().Name()}, params: []any{e.CpHashA, e.PolicyRef, e.Expiration}, } authSession, err := runner.authorize(authObject, false, params, tpm2.SessionTypeHMAC) if err != nil { return &PolicyAuthorizationError{ AuthName: e.AuthObjectName, PolicyRef: e.PolicyRef, err: &ResourceAuthorizeError{Name: e.AuthObjectName, err: err}, } } defer authSession.Flush() timeout, ticket, err := runner.session().PolicySecret(authObject.Resource(), e.CpHashA, e.PolicyRef, e.Expiration, authSession.Session()) if err != nil { return &PolicyAuthorizationError{AuthName: e.AuthObjectName, PolicyRef: e.PolicyRef, err: err} } runner.tickets().addTicket(&PolicyTicket{ AuthName: e.AuthObjectName, PolicyRef: e.PolicyRef, CpHash: nil, Timeout: timeout, Ticket: ticket}) return nil } type policySignedElement struct { AuthKey *tpm2.Public PolicyRef tpm2.Nonce Unused1 tpm2.Digest Unused2 int32 } func (*policySignedElement) name() string { return "TPM2_PolicySigned assertion" } func (e *policySignedElement) run(runner policyRunner) error { authKeyName := e.AuthKey.Name() if !authKeyName.IsValid() { return errors.New("invalid auth key name") } if ticket := runner.tickets().ticket(authKeyName, e.PolicyRef); ticket != nil { err := runner.session().PolicyTicket(ticket.Timeout, ticket.CpHash, ticket.PolicyRef, ticket.AuthName, ticket.Ticket) switch { case tpm2.IsTPMParameterError(err, tpm2.ErrorExpired, tpm2.CommandPolicyTicket, 1): // The ticket has expired - ignore this and fall through to PolicySigned runner.tickets().invalidTicket(ticket) case tpm2.IsTPMParameterError(err, tpm2.ErrorTicket, tpm2.CommandPolicyTicket, 5): // The ticket is invalid - ignore this and fall through to PolicySigned runner.tickets().invalidTicket(ticket) case err != nil: return &PolicyAuthorizationError{AuthName: authKeyName, PolicyRef: e.PolicyRef, err: err} default: // The ticket was accepted return nil } } auth, err := runner.resources().signedAuthorization(authKeyName, e.PolicyRef) if err != nil { return &PolicyAuthorizationError{ AuthName: authKeyName, PolicyRef: e.PolicyRef, err: fmt.Errorf("cannot obtain signed authorization: %w", err), } } authKey, err := runner.loadExternal(e.AuthKey) if err != nil { return fmt.Errorf("cannot create authKey context: %w", err) } defer authKey.Flush() includeNonceTPM := false if len(auth.NonceTPM) > 0 { includeNonceTPM = true } timeout, ticket, err := runner.session().PolicySigned(authKey.Resource(), includeNonceTPM, auth.CpHash, e.PolicyRef, auth.Expiration, auth.PolicyAuthorization.Signature) if err != nil { return &PolicyAuthorizationError{AuthName: authKeyName, PolicyRef: e.PolicyRef, err: err} } runner.tickets().addTicket(&PolicyTicket{ AuthName: authKeyName, PolicyRef: e.PolicyRef, CpHash: auth.CpHash, Timeout: timeout, Ticket: ticket}) return nil } type policyAuthorizations []PolicyAuthorization type policyAuthorizeElement struct { PolicyRef tpm2.Nonce KeySign *tpm2.Public } func (*policyAuthorizeElement) name() string { return "authorized policy" } func (e *policyAuthorizeElement) run(runner policyRunner) error { keySignName := e.KeySign.Name() if !keySignName.IsValid() { return errors.New("invalid keySign") } policies, err := runner.resources().authorizedPolicies(keySignName, e.PolicyRef) if err != nil { return &PolicyAuthorizationError{AuthName: keySignName, PolicyRef: e.PolicyRef, err: err} } // Filter out policies that aren't computed for the current session algorithm or // don't have a matching authorization, although we shouldn't really have any // without a matching authorization. var candidatePolicies []*authorizedPolicy for _, policy := range policies { digest, err := policy.Digest(runner.session().HashAlg()) if err == ErrMissingDigest { // no suitable digest continue } if err != nil { return err } // Find the signed authorization var policyAuth *PolicyAuthorization for _, auth := range policy.policy.PolicyAuthorizations { if auth.Signature == nil { continue } if !bytes.Equal(auth.AuthKey.Name(), keySignName) { continue } if !bytes.Equal(auth.PolicyRef, e.PolicyRef) { continue } if ok, _ := auth.Verify(digest); !ok { continue } policyAuth = &auth break } if policyAuth == nil { // no matching authorization - this shouldn't really happen. continue } candidatePolicies = append(candidatePolicies, &authorizedPolicy{ policyBranch: policyBranch{ Name: policyBranchName(fmt.Sprintf("%x", digest)), Policy: policy.policy.Policy, PolicyDigests: taggedHashList{{HashAlg: runner.session().HashAlg(), Digest: digest}}, }, authorization: policyAuth, }) } approvedPolicy, checkTicket, err := runner.runAuthorizedPolicy(e.KeySign, e.PolicyRef, candidatePolicies) if err != nil { return &PolicyAuthorizationError{AuthName: keySignName, PolicyRef: e.PolicyRef, err: err} } if err := runner.session().PolicyAuthorize(approvedPolicy, e.PolicyRef, keySignName, checkTicket); err != nil { return &PolicyAuthorizationError{AuthName: keySignName, PolicyRef: e.PolicyRef, err: err} } return nil } type policyAuthValueElement struct{} func (*policyAuthValueElement) name() string { return "TPM2_PolicyAuthValue assertion" } func (*policyAuthValueElement) run(runner policyRunner) error { return runner.session().PolicyAuthValue() } type policyCommandCodeElement struct { CommandCode tpm2.CommandCode } func (*policyCommandCodeElement) name() string { return "TPM2_PolicyCommandCode assertion" } func (e *policyCommandCodeElement) run(runner policyRunner) error { return runner.session().PolicyCommandCode(e.CommandCode) } type policyCounterTimerElement struct { OperandB tpm2.Operand Offset uint16 Operation tpm2.ArithmeticOp } func (*policyCounterTimerElement) name() string { return "TPM2_PolicyCounterTimer assertion" } func (e *policyCounterTimerElement) run(runner policyRunner) error { return runner.session().PolicyCounterTimer(e.OperandB, e.Offset, e.Operation) } type cpHashParams struct { CommandCode tpm2.CommandCode Handles []tpm2.Name CpBytes []byte } type policyCpHashElement struct { Digest tpm2.Digest } func (*policyCpHashElement) name() string { return "TPM2_PolicyCpHash assertion" } func (e *policyCpHashElement) run(runner policyRunner) error { return runner.session().PolicyCpHash(e.Digest) } type policyNameHashElement struct { Digest tpm2.Digest } func (*policyNameHashElement) name() string { return "TPM2_PolicyNameHash assertion" } func (e *policyNameHashElement) run(runner policyRunner) error { return runner.session().PolicyNameHash(e.Digest) } type policyBranch struct { Name policyBranchName PolicyDigests taggedHashList Policy policyElements index int `tpm2:"ignore"` // index of this branch in a branch node } func (b *policyBranch) name() string { switch len(b.Name) { case 0: return "{" + strconv.Itoa(b.index) + "}" default: return string(b.Name) } } func (b *policyBranch) nameMatches(pattern string) (bool, error) { names := []string{"{" + strconv.Itoa(b.index) + "}"} if len(b.Name) > 0 { names = append(names, string(b.Name)) } for _, name := range names { switch match, err := filepath.Match(pattern, name); { case err != nil: return false, err case match: return true, nil } } return false, nil } type policyBranches []*policyBranch func (b policyBranches) filterBranches(pattern string) ([]int, error) { var indices []int for i, br := range b { switch match, err := br.nameMatches(pattern); { case err != nil: return nil, fmt.Errorf("cannot match: %w", err) case match: indices = append(indices, i) } } return indices, nil } func (b policyBranches) Marshal(w io.Writer) error { _, err := mu.MarshalToWriter(w, []*policyBranch(b)) return err } func (b *policyBranches) Unmarshal(r io.Reader) error { var branches []*policyBranch if _, err := mu.UnmarshalFromReader(r, &branches); err != nil { return err } for i, branch := range branches { branch.index = i } *b = policyBranches(branches) return nil } type policyORElement struct { HashList tpm2.DigestList } func (*policyORElement) name() string { return "TPM2_PolicyOR assertion" } func (e *policyORElement) run(runner policyRunner) error { return runner.session().PolicyOR(e.HashList) } type policyBranchNodeElement struct { Branches policyBranches } func (*policyBranchNodeElement) name() string { return "branch node" } func (e *policyBranchNodeElement) run(runner policyRunner) error { if len(e.Branches) == 0 { return errors.New("no branches") } selected, err := runner.runBranch(e.Branches) if err != nil { return err } // Obtain the branch digests var digests tpm2.DigestList for _, branch := range e.Branches { found := false for _, digest := range branch.PolicyDigests { if digest.HashAlg != runner.session().HashAlg() { continue } digests = append(digests, digest.Digest) found = true break } if !found { return ErrMissingDigest } } tree, err := newPolicyOrTree(runner.session().HashAlg(), digests) if err != nil { return fmt.Errorf("cannot compute PolicyOR tree: %w", err) } skipIntermediates := false if selected < 0 { selected = 0 skipIntermediates = true } pHashLists := tree.selectBranch(selected) if skipIntermediates { return runner.session().PolicyOR(pHashLists[len(pHashLists)-1]) } else { for _, pHashList := range pHashLists { if err := runner.session().PolicyOR(pHashList); err != nil { return err } } } return nil } type pcrValue struct { PCR tpm2.Handle Digest taggedHash } type pcrValueList []pcrValue type policyPCRValuesElement struct { PCRs pcrValueList } func (*policyPCRValuesElement) name() string { return "TPM2_PolicyPCR values assertion" } func (e *policyPCRValuesElement) run(runner policyRunner) error { values, err := e.pcrValues() if err != nil { return err } pcrs, pcrDigest, err := ComputePCRDigestFromAllValues(runner.session().HashAlg(), values) if err != nil { return fmt.Errorf("cannot compute PCR digest: %w", err) } return runner.session().PolicyPCR(pcrDigest, pcrs) } func (e *policyPCRValuesElement) pcrValues() (tpm2.PCRValues, error) { values := make(tpm2.PCRValues) for i, value := range e.PCRs { if value.PCR.Type() != tpm2.HandleTypePCR { return nil, fmt.Errorf("invalid PCR handle at index %d", i) } if err := values.SetValue(value.Digest.HashAlg, int(value.PCR), value.Digest.Digest); err != nil { return nil, fmt.Errorf("invalid PCR value at index %d: %w", i, err) } } return values, nil } type policyPCRElement struct { PCRDigest tpm2.Digest PCRs tpm2.PCRSelectionList } func (*policyPCRElement) name() string { return "TPM2_PolicyPCR assertion" } func (e *policyPCRElement) run(runner policyRunner) error { if err := runner.notifyPolicyPCRDigest(); err != nil { return err } return runner.session().PolicyPCR(e.PCRDigest, e.PCRs) } type policyDuplicationSelectElement struct { Object tpm2.Name NewParent tpm2.Name IncludeObject bool } func (*policyDuplicationSelectElement) name() string { return "TPM2_PolicyDuplicationSelect assertion" } func (e *policyDuplicationSelectElement) run(runner policyRunner) error { object := e.Object if len(object) == 0 && !e.IncludeObject { object = runner.authResourceName() } return runner.session().PolicyDuplicationSelect(object, e.NewParent, e.IncludeObject) } type policyPasswordElement struct{} func (*policyPasswordElement) name() string { return "TPM2_PolicyPassword assertion" } func (*policyPasswordElement) run(runner policyRunner) error { return runner.session().PolicyPassword() } type policyNvWrittenElement struct { WrittenSet bool } func (*policyNvWrittenElement) name() string { return "TPM2_PolicyNvWritten assertion" } func (e *policyNvWrittenElement) run(runner policyRunner) error { return runner.session().PolicyNvWritten(e.WrittenSet) } type policyElementDetails struct { NV *policyNVElement Secret *policySecretElement Signed *policySignedElement Authorize *policyAuthorizeElement AuthValue *policyAuthValueElement CommandCode *policyCommandCodeElement CounterTimer *policyCounterTimerElement CpHash *policyCpHashElement NameHash *policyNameHashElement OR *policyORElement PCR *policyPCRElement DuplicationSelect *policyDuplicationSelectElement Password *policyPasswordElement NvWritten *policyNvWrittenElement BranchNode *policyBranchNodeElement PCRValues *policyPCRValuesElement } func (d *policyElementDetails) Select(selector reflect.Value) interface{} { switch selector.Interface().(tpm2.CommandCode) { case tpm2.CommandPolicyNV: return &d.NV case tpm2.CommandPolicySecret: return &d.Secret case tpm2.CommandPolicySigned: return &d.Signed case tpm2.CommandPolicyAuthorize: return &d.Authorize case tpm2.CommandPolicyAuthValue: return &d.AuthValue case tpm2.CommandPolicyCommandCode: return &d.CommandCode case tpm2.CommandPolicyCounterTimer: return &d.CounterTimer case tpm2.CommandPolicyCpHash: return &d.CpHash case tpm2.CommandPolicyNameHash: return &d.NameHash case tpm2.CommandPolicyOR: return &d.OR case tpm2.CommandPolicyPCR: return &d.PCR case tpm2.CommandPolicyDuplicationSelect: return &d.DuplicationSelect case tpm2.CommandPolicyPassword: return &d.Password case tpm2.CommandPolicyNvWritten: return &d.NvWritten case commandPolicyBranchNode: return &d.BranchNode case commandPolicyPCRValues: return &d.PCRValues default: return nil } } type policyElementRunner interface { name() string run(runner policyRunner) error } type policyElement struct { Type tpm2.CommandCode Details *policyElementDetails } func (e *policyElement) runner() policyElementRunner { switch e.Type { case tpm2.CommandPolicyNV: return e.Details.NV case tpm2.CommandPolicySecret: return e.Details.Secret case tpm2.CommandPolicySigned: return e.Details.Signed case tpm2.CommandPolicyAuthorize: return e.Details.Authorize case tpm2.CommandPolicyAuthValue: return e.Details.AuthValue case tpm2.CommandPolicyCommandCode: return e.Details.CommandCode case tpm2.CommandPolicyCounterTimer: return e.Details.CounterTimer case tpm2.CommandPolicyCpHash: return e.Details.CpHash case tpm2.CommandPolicyNameHash: return e.Details.NameHash case tpm2.CommandPolicyOR: return e.Details.OR case tpm2.CommandPolicyPCR: return e.Details.PCR case tpm2.CommandPolicyDuplicationSelect: return e.Details.DuplicationSelect case tpm2.CommandPolicyPassword: return e.Details.Password case tpm2.CommandPolicyNvWritten: return e.Details.NvWritten case commandPolicyBranchNode: return e.Details.BranchNode case commandPolicyPCRValues: return e.Details.PCRValues default: panic("invalid type") } } type policyElements []*policyElement type policy struct { PolicyDigests taggedHashList PolicyAuthorizations policyAuthorizations Policy policyElements } type nullTickets struct{} func (*nullTickets) ticket(authName tpm2.Name, policyRef tpm2.Nonce) *PolicyTicket { return nil } func (*nullTickets) addTicket(ticket *PolicyTicket) {} func (*nullTickets) invalidTicket(ticket *PolicyTicket) {} type mockPolicyResources struct { authorized AuthorizedPolicies } func newMockPolicyResources(authorizedPolicies AuthorizedPolicies) *mockPolicyResources { return &mockPolicyResources{ authorized: authorizedPolicies, } } func (*mockPolicyResources) loadedResource(name tpm2.Name) (ResourceContext, error) { // the handle is not relevant here return newResourceContext(tpm2.NewResourceContext(0x80000000, name), nil), nil } func (r *mockPolicyResources) policy(name tpm2.Name) (*Policy, error) { return nil, nil } func (r *mockPolicyResources) authorizedPolicies(keySign tpm2.Name, policyRef tpm2.Nonce) ([]*Policy, error) { if r.authorized == nil { return nil, nil } return r.authorized.AuthorizedPolicies(keySign, policyRef) } func (*mockPolicyResources) signedAuthorization(authKey tpm2.Name, policyRef tpm2.Nonce) (*PolicySignedAuthorization, error) { return new(PolicySignedAuthorization), nil } // Policy corresponds to an authorization policy. It can be serialized with // [github.com/canonical/go-tpm2/mu]. type Policy struct { policy policy } // Marshal implements [mu.CustomMarshaller.Marshal]. func (p Policy) Marshal(w io.Writer) error { _, err := mu.MarshalToWriter(w, uint32(0), p.policy) return err } // Unmarshal implements [mu.CustomMarshaller.Unarshal]. func (p *Policy) Unmarshal(r io.Reader) error { var version uint32 _, err := mu.UnmarshalFromReader(r, &version, &p.policy) if err != nil { return err } if version != 0 { return errors.New("invalid version") } return nil } // Digest returns the digest for this policy for the specified algorithm, if it // has been computed. If it hasn't been computed, ErrMissingDigest is returned. func (p *Policy) Digest(alg tpm2.HashAlgorithmId) (tpm2.Digest, error) { if !alg.IsValid() { return nil, errors.New("invalid algorithm") } for _, digest := range p.policy.PolicyDigests { if digest.HashAlg == alg { return digest.Digest, nil } } return nil, ErrMissingDigest } // Authorize signs this policy with the supplied signer so that it can be used as an // authorized policy for a TPM2_PolicyAuthorize assertion with the supplied authKey and // policyRef. Calling this updates the policy, so it should be persisted afterwards. // This signs every digest that the policy has been computed for. // // TPM2_PolicyAuthorize expects the digest algorithm of the signature to match the name // algorithm of the public key, so the name algorithm of authKey must match the algorithm // supplied through the opts argument. // // This expects the policy to contain a digest for the selected algorithm already. func (p *Policy) Authorize(rand io.Reader, authKey *tpm2.Public, policyRef tpm2.Nonce, signer crypto.Signer, opts crypto.SignerOpts) (err error) { authName := authKey.Name() authAlg := authName.Algorithm() if opts.HashFunc() != authAlg.GetHash() { return errors.New("mismatched authKey name and opts") } if !authAlg.Available() { return errors.New("auth algorithm is unavailable") } var authorizations policyAuthorizations for _, auth := range p.policy.PolicyAuthorizations { if bytes.Equal(auth.AuthKey.Name(), authName) && bytes.Equal(auth.PolicyRef, policyRef) { continue } authorizations = append(authorizations, auth) } for _, approvedPolicy := range p.policy.PolicyDigests { auth, err := SignPolicyAuthorization(rand, approvedPolicy.Digest, authKey, policyRef, signer, opts) if err != nil { return fmt.Errorf("cannot sign authorization for digest %v: %w", approvedPolicy.HashAlg, err) } authorizations = append(authorizations, *auth) } p.policy.PolicyAuthorizations = authorizations return nil } ./github.com/canonical/go-tpm2/policyutil/policy_branches.go0000664000000000000000000000544200000000000021254 0ustar00// Copyright 2023 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package policyutil import "github.com/canonical/go-tpm2" type policyBranchesWalkResult struct { branches []string } type policyBranchesTreeWalkerBranchContext struct { nodeCtx *policyBranchesTreeWalkerBranchNodeContext policySession *nullPolicySession path policyBranchPath } func (c *policyBranchesTreeWalkerBranchContext) session() policySession { return c.policySession } func (c *policyBranchesTreeWalkerBranchContext) beginBranchNode() (treeWalkerBranchNodeContext, error) { return newPolicyBranchesTreeWalkerBranchNodeContext(c.nodeCtx.alg, c.path, c.nodeCtx.result), nil } func (c *policyBranchesTreeWalkerBranchContext) completeFullPath() error { c.nodeCtx.result.branches = append(c.nodeCtx.result.branches, string(c.path)) return nil } type policyBranchesTreeWalkerBranchNodeContext struct { alg tpm2.HashAlgorithmId path policyBranchPath // the path of the branch that this node is in result *policyBranchesWalkResult } func newPolicyBranchesTreeWalkerBranchNodeContext(alg tpm2.HashAlgorithmId, path policyBranchPath, result *policyBranchesWalkResult) *policyBranchesTreeWalkerBranchNodeContext { return &policyBranchesTreeWalkerBranchNodeContext{ alg: alg, path: path, result: result, } } func (c *policyBranchesTreeWalkerBranchNodeContext) beginBranch(name string) (treeWalkerBranchContext, error) { return &policyBranchesTreeWalkerBranchContext{ nodeCtx: c, policySession: newNullPolicySession(c.alg), path: c.path.Concat(name), }, nil } // Branches returns the path of every branch in this policy. // // If the authorizedPolicies argument is supplied, associated authorized policies will be // merged into the result, otherwise missing authorized policies will be represented // by a path component of the form "". The supplied algorithm // is only really required for policies that make use of authorized policies, and is used // to select the algorithm for encoding the path component for an authorized policy, which // is the policy digest. Setting this to [tpm2.HashAlgorithmNull] selects the first digest // algorithm that this policy is computed for. func (p *Policy) Branches(alg tpm2.HashAlgorithmId, authorizedPolicies AuthorizedPolicies) ([]string, error) { if alg == tpm2.HashAlgorithmNull { if len(p.policy.PolicyDigests) == 0 { return nil, ErrMissingDigest } alg = p.policy.PolicyDigests[0].HashAlg } var result policyBranchesWalkResult walker := newTreeWalker(newMockPolicyResources(authorizedPolicies), newPolicyBranchesTreeWalkerBranchNodeContext(alg, "", &result)) if err := walker.run(p.policy.Policy); err != nil { return nil, err } return result.branches, nil } ./github.com/canonical/go-tpm2/policyutil/policy_compute.go0000664000000000000000000001166300000000000021145 0ustar00package policyutil import ( "errors" "fmt" "github.com/canonical/go-tpm2" "github.com/canonical/go-tpm2/mu" ) type policyComputeRunner struct { policySession *computePolicySession policyTickets nullTickets policyResources mockPolicyResources currentPath policyBranchPath } func newPolicyComputeRunner(alg tpm2.HashAlgorithmId) *policyComputeRunner { return &policyComputeRunner{ policySession: newComputePolicySession(alg, nil, true), } } func (r *policyComputeRunner) session() policySession { return r.policySession } func (r *policyComputeRunner) tickets() policyTickets { return &r.policyTickets } func (r *policyComputeRunner) resources() policyResources { return &r.policyResources } func (r *policyComputeRunner) authResourceName() tpm2.Name { return nil } func (r *policyComputeRunner) loadExternal(public *tpm2.Public) (ResourceContext, error) { // the handle is not relevant here resource := tpm2.NewResourceContext(0x80000000, public.Name()) return newResourceContext(resource, nil), nil } func (r *policyComputeRunner) authorize(auth ResourceContext, askForPolicy bool, commandParams *authorizationCommandParams, prefer tpm2.SessionType) (session SessionContext, err error) { return new(mockSessionContext), nil } func (r *policyComputeRunner) runBranch(branches policyBranches) (selected int, err error) { currentDigest, err := r.session().PolicyGetDigest() if err != nil { return 0, err } for _, branch := range branches { computedDigest, err := func() (tpm2.Digest, error) { origPolicySession := r.policySession origPath := r.currentPath r.policySession = newComputePolicySession(r.session().HashAlg(), currentDigest, true) r.currentPath = r.currentPath.Concat(branch.name()) defer func() { r.policySession = origPolicySession r.currentPath = origPath }() if err := r.run(branch.Policy); err != nil { return nil, err } return r.session().PolicyGetDigest() }() if err != nil { return 0, err } added := false for j, digest := range branch.PolicyDigests { if digest.HashAlg != r.session().HashAlg() { continue } branch.PolicyDigests[j] = taggedHash{HashAlg: r.session().HashAlg(), Digest: computedDigest} added = true break } if !added { branch.PolicyDigests = append(branch.PolicyDigests, taggedHash{HashAlg: r.session().HashAlg(), Digest: computedDigest}) } } r.currentPath = r.currentPath.Concat("**") return -1, nil } func (r *policyComputeRunner) runAuthorizedPolicy(keySign *tpm2.Public, policyRef tpm2.Nonce, policies []*authorizedPolicy) (approvedPolicy tpm2.Digest, checkTicket *tpm2.TkVerified, err error) { return nil, nil, nil } func (r *policyComputeRunner) notifyPolicyPCRDigest() error { return fmt.Errorf("cannot compute digest for policies with TPM2_PolicyPCR assertions which contain pre-computed digests") } func (r *policyComputeRunner) run(elements policyElements) error { for len(elements) > 0 { element := elements[0].runner() elements = elements[1:] if err := element.run(r); err != nil { return makePolicyError(err, r.currentPath, element.name()) } } return nil } // AddDigest computes and adds an additional digest to this policy for the specified // algorithm. The policy should be persisted after calling this if it is going to be // used for a resource wth the specified algorithm. On success, it returns the computed // digest. // // This will fail for policies that contain TPM2_PolicyCpHash or TPM2_PolicyNameHash // assertions, These can only be computed for a single digest algorithm, because they // are bound to a specific resource via its name. // // It will also fail for policies that contain TPM2_PolicyPCR assertions that were // added by [PolicyBuilderBranch.PolicyPCRDigest]. In order to compute policies // containing TPM2_PolicyPCR assertions for more than one digest, use the // [PolicyBuilderBranch.PolicyPCRValues] API, which stores the raw PCR values from // which a new digest can be computed (but may occupy more space for an assertion that // contains more than a single PCR value, depending on the selection of algorithms). func (p *Policy) AddDigest(alg tpm2.HashAlgorithmId) (tpm2.Digest, error) { if !alg.Available() { return nil, errors.New("unavailable algorithm") } var policy *policy if err := mu.CopyValue(&policy, p.policy); err != nil { return nil, fmt.Errorf("cannot make temporary copy of policy: %w", err) } runner := newPolicyComputeRunner(alg) if err := runner.run(policy.Policy); err != nil { return nil, err } computedDigest, err := runner.session().PolicyGetDigest() if err != nil { return nil, err } addedDigest := false for i, d := range policy.PolicyDigests { if d.HashAlg == alg { policy.PolicyDigests[i] = taggedHash{HashAlg: alg, Digest: computedDigest} addedDigest = true break } } if !addedDigest { policy.PolicyDigests = append(policy.PolicyDigests, taggedHash{HashAlg: alg, Digest: computedDigest}) } p.policy = *policy return computedDigest, nil } ./github.com/canonical/go-tpm2/policyutil/policy_details.go0000664000000000000000000001655700000000000021125 0ustar00// Copyright 2023 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package policyutil import ( "bytes" "fmt" "path/filepath" "github.com/canonical/go-tpm2" ) // PolicyNVDetails contains the properties of a TPM2_PolicyNV assertion. type PolicyNVDetails struct { Auth tpm2.Handle Index tpm2.Handle Name tpm2.Name OperandB tpm2.Operand Offset uint16 Operation tpm2.ArithmeticOp } // PolicyAuthorizationDetails contains the properties of a TPM2_PolicySecret, // TPM2_PolicySigned or TPM2_PolicyAuthorize assertion. type PolicyAuthorizationDetails struct { AuthName tpm2.Name PolicyRef tpm2.Nonce } // PolicyCounterTimerDetails contains the properties of a TPM2_PolicyCounterTimer // assertion. type PolicyCounterTimerDetails struct { OperandB tpm2.Operand Offset uint16 Operation tpm2.ArithmeticOp } // PolicyPCRDetails contains the properties of a TPM2_PolicyPCR assertion. type PolicyPCRDetails struct { PCRDigest tpm2.Digest PCRs tpm2.PCRSelectionList } // PolicyBranchDetails contains the properties of a single policy branch. type PolicyBranchDetails struct { NV []PolicyNVDetails // TPM2_PolicyNV assertions Secret []PolicyAuthorizationDetails // TPM2_PolicySecret assertions Signed []PolicyAuthorizationDetails // TPM2_PolicySigned assertions Authorize []PolicyAuthorizationDetails // TPM2_PolicyAuthorize assertions AuthValueNeeded bool // The branch contains a TPM2_PolicyAuthValue or TPM2_PolicyPassword assertion policyCommandCode tpm2.CommandCodeList CounterTimer []PolicyCounterTimerDetails // TPM2_PolicyCounterTimer assertions policyCpHash tpm2.DigestList policyNameHash tpm2.DigestList PCR []PolicyPCRDetails // TPM2_PolicyPCR assertions policyNvWritten []bool } // IsValid indicates whether the corresponding policy branch is valid. func (r *PolicyBranchDetails) IsValid() bool { if len(r.policyCommandCode) > 1 { for _, code := range r.policyCommandCode[1:] { if code != r.policyCommandCode[0] { return false } } } cpHashNum := 0 if len(r.policyCpHash) > 0 { if len(r.policyCpHash) > 1 { for _, cpHash := range r.policyCpHash[1:] { if !bytes.Equal(cpHash, r.policyCpHash[0]) { return false } } } cpHashNum += 1 } if len(r.policyNameHash) > 0 { if len(r.policyNameHash) > 1 { return false } cpHashNum += 1 } if cpHashNum > 1 { return false } if len(r.policyNvWritten) > 1 { for _, nvWritten := range r.policyNvWritten[1:] { if nvWritten != r.policyNvWritten[0] { return false } } } return true } // The command code associated with a branch if set, either set by the TPM2_PolicyCommandCode // or TPM2_PolicyDuplicationSelect assertion. func (r *PolicyBranchDetails) CommandCode() (code tpm2.CommandCode, set bool) { if len(r.policyCommandCode) == 0 { return 0, false } return r.policyCommandCode[0], true } // The cpHash associated with a branch if set, either set by the TPM2_PolicyCpHash, // TPM2_PolicySecret, or TPM2_PolicySigned assertions. func (r *PolicyBranchDetails) CpHash() (cpHashA tpm2.Digest, set bool) { if len(r.policyCpHash) == 0 { return nil, false } return r.policyCpHash[0], true } // The nameHash associated with a branch if set, either set by the TPM2_PolicyNameHash // or TPM2_PolicyDuplicationSelect assertion. func (r *PolicyBranchDetails) NameHash() (nameHash tpm2.Digest, set bool) { if len(r.policyNameHash) == 0 { return nil, false } return r.policyNameHash[0], true } // The nvWrittenSet value associated with a branch if set. func (r *PolicyBranchDetails) NvWritten() (nvWrittenSet bool, set bool) { if len(r.policyNvWritten) == 0 { return false, false } return r.policyNvWritten[0], true } type policyDetailsTreeWalkerBranchContext struct { nodeCtx *policyDetailsTreeWalkerBranchNodeContext policySession *recorderPolicySession path policyBranchPath details PolicyBranchDetails } func (c *policyDetailsTreeWalkerBranchContext) session() policySession { return c.policySession } func (c *policyDetailsTreeWalkerBranchContext) beginBranchNode() (treeWalkerBranchNodeContext, error) { remaining := c.nodeCtx.remaining consumeGreedy := c.nodeCtx.consumeGreedy var next string if consumeGreedy { next = "*" } else { next, remaining = c.nodeCtx.remaining.PopNextComponent() if next == "**" { consumeGreedy = true next = "*" } } return newPolicyDetailsTreeWalkerBranchNodeContext(c.nodeCtx.alg, c.path, remaining, next, consumeGreedy, &c.details, c.nodeCtx.result), nil } func (c *policyDetailsTreeWalkerBranchContext) completeFullPath() error { c.nodeCtx.result[string(c.path)] = c.details return nil } type policyDetailsTreeWalkerBranchNodeContext struct { alg tpm2.HashAlgorithmId path policyBranchPath // the path of this branch that this node is in remaining policyBranchPath // remaining components of the specified path next string // next component of the specified path consumeGreedy bool details PolicyBranchDetails // details inherited from the parent branch result map[string]PolicyBranchDetails } func newPolicyDetailsTreeWalkerBranchNodeContext(alg tpm2.HashAlgorithmId, path, remaining policyBranchPath, next string, consumeGreedy bool, details *PolicyBranchDetails, result map[string]PolicyBranchDetails) *policyDetailsTreeWalkerBranchNodeContext { return &policyDetailsTreeWalkerBranchNodeContext{ alg: alg, path: path, remaining: remaining, next: next, consumeGreedy: consumeGreedy, details: *details, result: result, } } func (c *policyDetailsTreeWalkerBranchNodeContext) beginBranch(name string) (treeWalkerBranchContext, error) { switch len(c.next) { case 0: // handle this branch - there is no next component specified default: switch match, err := filepath.Match(c.next, name); { case err != nil: return nil, fmt.Errorf("cannot match: %w", err) case !match: // skip - the next component was specified but it's not a match for this branch. return nil, errTreeWalkerSkipBranch } } branchCtx := &policyDetailsTreeWalkerBranchContext{ nodeCtx: c, path: c.path.Concat(name), details: c.details, } branchCtx.policySession = newRecorderPolicySession(c.alg, &branchCtx.details) return branchCtx, nil } // Details returns details of all branches with the supplied path prefix, for // the specified algorithm. If the specified algorithm is [tpm2.HashAlgorithmNull], // then the first algorithm the policy is computed for is used. // // If the authorizedPolicies argument is supplied, details of branches from associated // authorized policies will be inserted into the result. func (p *Policy) Details(alg tpm2.HashAlgorithmId, path string, authorizedPolicies AuthorizedPolicies) (map[string]PolicyBranchDetails, error) { if alg == tpm2.HashAlgorithmNull { if len(p.policy.PolicyDigests) == 0 { return nil, ErrMissingDigest } alg = p.policy.PolicyDigests[0].HashAlg } result := make(map[string]PolicyBranchDetails) walker := newTreeWalker( newMockPolicyResources(authorizedPolicies), newPolicyDetailsTreeWalkerBranchNodeContext(alg, "", policyBranchPath(path), "*", false, new(PolicyBranchDetails), result), ) if err := walker.run(p.policy.Policy); err != nil { return nil, err } return result, nil } ./github.com/canonical/go-tpm2/policyutil/policy_execute.go0000664000000000000000000007642700000000000021144 0ustar00package policyutil import ( "bytes" "errors" "fmt" "github.com/canonical/go-tpm2" ) type executePolicyTickets struct { usageCpHash tpm2.Digest tickets map[authMapKey][]*PolicyTicket newTickets map[*PolicyTicket]struct{} invalidTickets map[*PolicyTicket]struct{} } func newExecutePolicyTickets(alg tpm2.HashAlgorithmId, tickets []*PolicyTicket, usage *policySessionUsageConstraints) (*executePolicyTickets, error) { var usageCpHash tpm2.Digest if usage.canCpHash() { var err error usageCpHash, err = usage.cpHash(alg) if err != nil { return nil, fmt.Errorf("cannot compute cpHash from constraints: %w", err) } } // Drop any tickets with the duplicate authName, policyRef and cpHash ticketsFiltered := make(map[ticketMapKey]*PolicyTicket) for _, ticket := range tickets { key := makeTicketMapKey(ticket) if _, exists := ticketsFiltered[key]; exists { continue } ticketsFiltered[key] = ticket } ticketMap := make(map[authMapKey][]*PolicyTicket) for _, ticket := range ticketsFiltered { key := makeAuthMapKey(ticket.AuthName, ticket.PolicyRef) if _, exists := ticketMap[key]; !exists { ticketMap[key] = []*PolicyTicket{} } ticketMap[key] = append(ticketMap[key], ticket) } return &executePolicyTickets{ usageCpHash: usageCpHash, tickets: ticketMap, newTickets: make(map[*PolicyTicket]struct{}), invalidTickets: make(map[*PolicyTicket]struct{}), }, nil } func (t *executePolicyTickets) ticket(authName tpm2.Name, policyRef tpm2.Nonce) *PolicyTicket { tickets := t.tickets[makeAuthMapKey(authName, policyRef)] if len(tickets) == 0 { return nil } if len(t.usageCpHash) == 0 { return tickets[0] } for _, ticket := range tickets { if len(ticket.CpHash) == 0 { return ticket } if bytes.Equal(ticket.CpHash, t.usageCpHash) { return ticket } } return nil } func (t *executePolicyTickets) addTicket(ticket *PolicyTicket) { if ticket.Ticket == nil || (ticket.Ticket.Hierarchy == tpm2.HandleNull && len(ticket.Ticket.Digest) == 0) { // skip null tickets return } key := makeAuthMapKey(ticket.AuthName, ticket.PolicyRef) if _, exists := t.tickets[key]; !exists { t.tickets[key] = []*PolicyTicket{} } t.tickets[key] = append([]*PolicyTicket{ticket}, t.tickets[key]...) t.newTickets[ticket] = struct{}{} } func (t *executePolicyTickets) invalidTicket(ticket *PolicyTicket) { key := makeAuthMapKey(ticket.AuthName, ticket.PolicyRef) var tickets []*PolicyTicket for _, tk := range t.tickets[key] { if tk == ticket { continue } tickets = append(tickets, tk) } t.tickets[key] = tickets if _, exists := t.newTickets[ticket]; exists { delete(t.newTickets, ticket) } else { t.invalidTickets[ticket] = struct{}{} } } func (t *executePolicyTickets) currentTickets() (out []*PolicyTicket) { for _, tickets := range t.tickets { for _, ticket := range tickets { out = append(out, ticket) } } return out } type executePolicyResourcesAuthorizer interface { Authorize(tpm2.ResourceContext) error } type policyExecuteRunner struct { policySessionContext SessionContext policySession *teePolicySession policyTickets *executePolicyTickets policyResources *executePolicyResources authorizer executePolicyResourcesAuthorizer tpm TPMHelper usage *policySessionUsageConstraints ignoreAuthorizations []PolicyAuthorizationID ignoreNV []Named pathChooser *policyPathChooser remaining policyBranchPath currentPath policyBranchPath } func newPolicyExecuteRunner(session PolicyExecuteSession, params *policyExecuteParams, tickets *executePolicyTickets, resources *executePolicyResources, authorizer executePolicyResourcesAuthorizer, details *PolicyBranchDetails) *policyExecuteRunner { return &policyExecuteRunner{ policySessionContext: session.Context(), policySession: newTeePolicySession( session, newRecorderPolicySession(session.HashAlg(), details), ), policyTickets: tickets, policyResources: resources, authorizer: authorizer, tpm: params.tpm, usage: ¶ms.usage, ignoreAuthorizations: params.ignoreAuthorizations, ignoreNV: params.ignoreNV, pathChooser: newPolicyPathChooser(session.HashAlg(), resources, params.tpm, ¶ms.usage, params.ignoreAuthorizations, params.ignoreNV), remaining: policyBranchPath(params.path), } } func (r *policyExecuteRunner) session() policySession { return r.policySession } func (r *policyExecuteRunner) tickets() policyTickets { return r.policyTickets } func (r *policyExecuteRunner) resources() policyResources { return r.policyResources } func (r *policyExecuteRunner) authResourceName() tpm2.Name { if r.usage == nil { return nil } return r.usage.handles[r.usage.authIndex].Name() } func (r *policyExecuteRunner) loadExternal(public *tpm2.Public) (ResourceContext, error) { if public.IsAsymmetric() { return r.tpm.LoadExternal(nil, public, tpm2.HandleOwner) } if !public.Name().IsValid() { return nil, errors.New("invalid name") } sensitive, err := r.policyResources.externalSensitive(public.Name()) if err != nil { return nil, fmt.Errorf("cannot obtain external sensitive area: %w", err) } return r.tpm.LoadExternal(sensitive, public, tpm2.HandleNull) } func (r *policyExecuteRunner) authorize(auth ResourceContext, askForPolicy bool, commandParams *authorizationCommandParams, prefer tpm2.SessionType) (sessionOut SessionContext, err error) { policy := auth.Policy() if policy == nil && askForPolicy { policy, err = r.policyResources.policy(auth.Resource().Name()) if err != nil { return nil, fmt.Errorf("cannot load policy: %w", err) } } // build available session types availableSessionTypes := map[tpm2.SessionType]bool{ tpm2.SessionTypeHMAC: true, tpm2.SessionTypePolicy: true, } if policy == nil { // no policy was supplied for the resource availableSessionTypes[tpm2.SessionTypePolicy] = false } var alg tpm2.HashAlgorithmId switch auth.Resource().Handle().Type() { case tpm2.HandleTypeNVIndex: pub, err := r.tpm.NVReadPublic(auth.Resource()) if err != nil { return nil, fmt.Errorf("cannot obtain NVPublic: %w", err) } switch { case pub.Attrs&(tpm2.AttrNVAuthRead|tpm2.AttrNVPolicyRead) == tpm2.AttrNVAuthRead: // index only supports auth read availableSessionTypes[tpm2.SessionTypePolicy] = false case pub.Attrs&(tpm2.AttrNVAuthRead|tpm2.AttrNVPolicyRead) == tpm2.AttrNVPolicyRead: // index only supports policy read availableSessionTypes[tpm2.SessionTypeHMAC] = false } alg = auth.Resource().Name().Algorithm() case tpm2.HandleTypePermanent: // Auth value is always available for permanent resources. Auth policy // is available if policyDigest, err := r.tpm.GetPermanentHandleAuthPolicy(auth.Resource().Handle()) if err != nil { return nil, fmt.Errorf("cannot obtain permanent handle auth policy: %w", err) } switch { case policyDigest.HashAlg == tpm2.HashAlgorithmNull: // policy is not enabled for this resource alg = r.session().HashAlg() availableSessionTypes[tpm2.SessionTypePolicy] = false default: // policy is enabled for this resource alg = policyDigest.HashAlg } case tpm2.HandleTypeTransient, tpm2.HandleTypePersistent: pub, err := r.tpm.ReadPublic(auth.Resource()) if err != nil { return nil, fmt.Errorf("cannot obtain Public: %w", err) } if pub.Attrs&tpm2.AttrUserWithAuth == 0 { // object only supports policy for user role availableSessionTypes[tpm2.SessionTypeHMAC] = false } alg = auth.Resource().Name().Algorithm() default: return nil, errors.New("unexpected handle type") } // Select session type sessionType := prefer if !availableSessionTypes[prefer] { var try tpm2.SessionType switch prefer { case tpm2.SessionTypeHMAC: try = tpm2.SessionTypePolicy case tpm2.SessionTypePolicy: try = tpm2.SessionTypeHMAC default: panic("invalid preferred session type") } if !availableSessionTypes[try] { return nil, errors.New("no auth types available") } sessionType = try } // Save the current policy session to make space for others that might be loaded restore, err := r.policySessionContext.Save() if err != nil { return nil, fmt.Errorf("cannot save session: %w", err) } defer func() { if restoreErr := restore(); restoreErr != nil && err == nil { err = fmt.Errorf("cannot restore saved session: %w", restoreErr) } }() session, policySession, err := r.tpm.StartAuthSession(sessionType, alg) if err != nil { return nil, fmt.Errorf("cannot create session to authorize auth object: %w", err) } defer func() { if err == nil { return } session.Flush() }() var authValueNeeded bool if sessionType == tpm2.SessionTypePolicy { params := &policyExecuteParams{ tpm: r.tpm, usage: policySessionUsageConstraints{ hasCommand: true, hasHandles: true, hasParams: true, commandCode: commandParams.commandCode, handles: commandParams.handles, params: commandParams.params, }, ignoreAuthorizations: r.ignoreAuthorizations, ignoreNV: r.ignoreNV, } var details PolicyBranchDetails runner := newPolicyExecuteRunner(policySession, params, r.policyTickets, r.policyResources.forSession(session), r.authorizer, &details) if err := runner.run(policy.policy.Policy); err != nil { return nil, err } authValueNeeded = details.AuthValueNeeded } else { authValueNeeded = true } if authValueNeeded { if err := r.authorizer.Authorize(auth.Resource()); err != nil { return nil, fmt.Errorf("cannot authorize resource: %w", err) } } return session, nil } func (r *policyExecuteRunner) runBranch(branches policyBranches) (selected int, err error) { if len(branches) == 0 { return 0, errors.New("no branches") } // Select a branch selected, name, err := r.selectBranch(branches) if err != nil { return 0, err } // Run it! r.currentPath = r.currentPath.Concat(name) if err := r.run(branches[selected].Policy); err != nil { return 0, err } return selected, nil } func (r *policyExecuteRunner) runAuthorizedPolicy(keySign *tpm2.Public, policyRef tpm2.Nonce, policies []*authorizedPolicy) (approvedPolicy tpm2.Digest, checkTicket *tpm2.TkVerified, err error) { if len(policies) == 0 { return nil, nil, errors.New("no policies") } var branches policyBranches for _, policy := range policies { branches = append(branches, &policy.policyBranch) } // Select a policy selected, name, err := r.selectBranch(branches) if err != nil { return nil, nil, err } policy := policies[selected] // The approved digest and authorization approvedPolicy = policy.PolicyDigests[0].Digest auth := policy.authorization // Verify the signature authKey, err := r.tpm.LoadExternal(nil, keySign, tpm2.HandleOwner) if err != nil { return nil, nil, err } defer authKey.Flush() tbs := ComputePolicyAuthorizationTBSDigest(keySign.Name().Algorithm().GetHash(), approvedPolicy, policyRef) ticket, err := r.tpm.VerifySignature(authKey.Resource(), tbs, auth.Signature) if err != nil { return nil, nil, err } // Run the policy r.currentPath = r.currentPath.Concat(name) if err := r.run(policy.Policy); err != nil { return nil, nil, err } return approvedPolicy, ticket, nil } func (r *policyExecuteRunner) notifyPolicyPCRDigest() error { return nil } func (r *policyExecuteRunner) selectBranch(branches policyBranches) (int, string, error) { // Pop the next supplied path component and find matching branches. var candidateIndices []int next, remaining := r.remaining.PopNextComponent() switch next { case "": // Choose from all branches for i := range branches { candidateIndices = append(candidateIndices, i) } default: // Filter branches var err error candidateIndices, err = branches.filterBranches(next) if err != nil { return 0, "", fmt.Errorf("cannot filter branches with pattern %q: %w", next, err) } } var selected int switch len(candidateIndices) { case 0: return 0, "", fmt.Errorf("no branch with name that matches pattern %q", next) // next is never empty here case 1: selected = candidateIndices[0] r.remaining = remaining default: // We have muliple candidate branches - try to automatically choose a path. var candidateBranches policyBranches for _, i := range candidateIndices { candidateBranches = append(candidateBranches, branches[i]) } path, err := r.pathChooser.choose(candidateBranches) if err != nil { var patternStr string if next != "" { patternStr = fmt.Sprintf(" with pattern %q", next) } return 0, "", fmt.Errorf("cannot automatically choose path from branches%s: %w", patternStr, err) } switch next { case "": // Save the entire path chosen from this subtree. r.remaining = path case "**": // Special case for the greedy wildcard match. Prepend the entire path // chosen from this subtree to the remaining components. r.remaining = path.Concat(string(remaining)) default: // Prepend the first component of the path chosen from this subtree // to the remaining components. component, _ := path.PopNextComponent() r.remaining = policyBranchPath(component).Concat(string(remaining)) } // Pop the next path component again and find matching branches. This // shouldn't fail now. next, remaining := r.remaining.PopNextComponent() candidateIndices, err = branches.filterBranches(next) switch { case err != nil: return 0, "", fmt.Errorf("internal error: cannot filter branches after automatically choosing path: %w", err) case len(candidateIndices) != 1: return 0, "", errors.New("internal error: unexpected number of branches after automatically choosing path") default: selected = candidateIndices[0] r.remaining = remaining } } return selected, branches[selected].name(), nil } func (r *policyExecuteRunner) run(elements policyElements) error { for len(elements) > 0 { element := elements[0].runner() elements = elements[1:] if err := element.run(r); err != nil { return makePolicyError(err, r.currentPath, element.name()) } } return nil } type policySessionUsageConstraints struct { hasCommand bool hasHandles bool hasParams bool commandCode tpm2.CommandCode handles []NamedHandle params []interface{} authIndex uint8 noAuthValue bool } func (u *policySessionUsageConstraints) canCpHash() bool { return u.hasCommand && u.hasHandles && u.hasParams } func (u *policySessionUsageConstraints) cpHash(alg tpm2.HashAlgorithmId) (tpm2.Digest, error) { var handleNames []Named for _, handle := range u.handles { handleNames = append(handleNames, handle) } return ComputeCpHash(alg, u.commandCode, handleNames, u.params...) } func (u *policySessionUsageConstraints) canNameHash() bool { return u.hasHandles } func (u *policySessionUsageConstraints) nameHash(alg tpm2.HashAlgorithmId) (tpm2.Digest, error) { var handleNames []Named for _, handle := range u.handles { handleNames = append(handleNames, handle) } return ComputeNameHash(alg, handleNames...) } func (u *policySessionUsageConstraints) authHandle() NamedHandle { if len(u.handles) == 0 { return nil } return u.handles[u.authIndex] } // PolicyAuthorizationID contains an identifier for a TPM2_PolicySecret, // TPM2_PolicySigned or TPM2_PolicyAuthorize assertion. type PolicyAuthorizationID = PolicyAuthorizationDetails type policyExecuteParams struct { resources PolicyExecuteResources tpm TPMHelper tickets []*PolicyTicket usage policySessionUsageConstraints path string ignoreAuthorizations []PolicyAuthorizationID ignoreNV []Named } type PolicyExecuteOption func(*policyExecuteParams) // WithResources allows [Policy.Execute] to obtain resources required by a policy, using // an implementation of [PolicyExecuteResources] created by [NewPolicyExecuteResources]. // This must be supplied for any policy that executes TPM2_PolicyNV, TPM2_PolicySecret, // TPM2_PolicySigned or TPM2_PolicyAuthorize assertions. func WithResources(tpm *tpm2.TPMContext, options ...PolicyExecuteResourcesOption) PolicyExecuteOption { return func(p *policyExecuteParams) { p.resources = NewPolicyExecuteResources(tpm, options...) } } // WithPolicyExecuteResources allows [Policy.Execute] to obtain resources required by a // policy. This must be supplied for any policy that executes TPM2_PolicyNV, TPM2_PolicySecret, // TPM2_PolicySigned or TPM2_PolicyAuthorize assertions. func WithPolicyExecuteResources(resources PolicyExecuteResources) PolicyExecuteOption { return func(p *policyExecuteParams) { p.resources = resources } } // WithTPMHelper allows [Policy.Execute] to make use of other TPM functions, using an // implementation of [TPMHelper] created by [NewTPMHelper]. This must be supplied for any // policy that executes TPM2_PolicyNV, TPM2_PolicySecret, TPM2_PolicySigned, or // TPM2_PolicyAuthorize assertions, or any policy that contains branches with TPM2_PolicyPCR or // TPM2_PolicyCounterTimer assertions where branches aren't selected explicitly. func WithTPMHelper(tpm *tpm2.TPMContext, options ...TPMHelperOption) PolicyExecuteOption { return func(p *policyExecuteParams) { p.tpm = NewTPMHelper(tpm, options...) } } // WithExternalTPMHelper allows [Policy.Execute] to make use of other TPM functions. This // must be supplied for any policy that executes TPM2_PolicyNV, TPM2_PolicySecret, // TPM2_PolicySigned, or TPM2_PolicyAuthorize assertions, or any policy that contains branches // with TPM2_PolicyPCR or TPM2_PolicyCounterTimer assertions where branches aren't selected // explicitly. func WithExternalTPMHelper(tpm TPMHelper) PolicyExecuteOption { return func(p *policyExecuteParams) { p.tpm = tpm } } // WithTickets supplies tickets for TPM2_PolicySecret and TPM2_PolicySigned assertions. // These are also supplied to sub-policies. func WithTickets(tickets []*PolicyTicket) PolicyExecuteOption { return func(p *policyExecuteParams) { p.tickets = tickets } } // WithSessionUsageHandlesConstraint tells [Policy.Execute] which handles will be used // with the executed policy, and assists with automatically choosing branches where a // policy has branches containing TPM2_PolicyNameHash, TPM2_PolicyDuplicationSelect or // TPM2_PolicyNvWritten assertions. // // This clears the effect of [WithSessionUsageAuthIndex]. func WithSessionUsageHandlesContraint(handles ...NamedHandle) PolicyExecuteOption { if len(handles) == 0 || len(handles) > 3 { panic("invalid number of handles") } return func(p *policyExecuteParams) { p.usage = policySessionUsageConstraints{ hasHandles: true, handles: handles, noAuthValue: p.usage.noAuthValue, } } } // WithSessionUsageHandlesConstraint tells [Policy.Execute] which command, handles and // parameters will be used with the executed policy, and assists with automatically choosing // branches where a policy has branches containing TPM2_PolicyCommandCode, TPM2_PolicyCpHash, // TPM2_PolicyNameHash, TPM2_PolicyDuplicationSelect or TPM2_PolicyNvWritten assertions. // // This clears the effect of [WithSessionUsageAuthIndex]. func WithSessionUsageCommandConstraint(commandCode tpm2.CommandCode, handles []NamedHandle, params ...any) PolicyExecuteOption { if len(handles) == 0 || len(handles) > 3 { panic("invalid number of handles") } return func(p *policyExecuteParams) { p.usage = policySessionUsageConstraints{ hasCommand: true, hasHandles: true, hasParams: true, commandCode: commandCode, handles: handles, params: params, noAuthValue: p.usage.noAuthValue, } } } // WithSessionUsageNoAuthValueConstraint tells [Policy.Execute] that an authorization value // will not be available when the executed policy is used. This ensures that branches with // TPM2_PolicyAuthValue or TPM2_PolicyPassword assertions will not be selected. func WithSessionUsageNoAuthValueConstraint() PolicyExecuteOption { return func(p *policyExecuteParams) { p.usage.noAuthValue = true } } // WithSessionUsageAuthIndex tells [Policy.Execute] the index (zero indexed) of the handle // that the executed policy will be used for. This is zero for most commands, where most // commands only have a single handle that requires authorization. There are a few commands // that require authorization for 2 handles: TPM2_ActivateCredential, // TPM2_EventSequenceComplete, TPM2_Certify, TPM2_GetSessionAuditDigest, // TPM2_GetCommandAuditDigest, TPM2_GetTime, TPM2_CertifyX509, TPM2_NV_UndefineSpaceSpecial, // TPM2_NV_Certify, and TPM2_AC_Send. // // This must be used after [WithSessionUsageHandlesConstraint] or // [WithSessionUsageCommandConstraint]. func WithSessionUsageAuthIndex(index uint8) PolicyExecuteOption { return func(p *policyExecuteParams) { if !p.usage.hasHandles { panic("must use with WithSessionUsageHandlesConstraint or WithSessionUsageCommandConstraint") } if int(index) >= len(p.usage.handles) { panic("invalid index") } p.usage.authIndex = index } } // WithPathConstraint provides a way to explicitly select which branches or authorized // policies [Policy.Execute] should execute, or constraining which of these can be considered // when automatically choosing them, by specifying patterns. // // A path consists of zero or more components separated by a '/' character, with each // component identifying a branch to select when a branch node is encountered (or a policy // to select when an authorized policy is required) during execution. When a branch node // or authorized policy is encountered, the selected sub-branch or policy is executed // before resuming execution in the original branch. // // When selecting a branch, a component can either identify a branch by its name (if it // has one), or it can be a numeric identifier of the form "{n}" which selects the branch // at index n. // // When selecting an authorized policy, a component identifies the policy by specifying // the digest of the policy for the current session algorithm. // // If a component is "**", then [Policy.Execute] will attempt to automatically choose an // execution path for the entire sub-tree associated with the current branch node or // authorized policy. This includes choosing additional branches and authorized policies // encountered during the execution of the selected sub-tree. Remaining path components // will be consumed when resuming execution in the original branch // // A component can be a pattern that is compatible with filepath.Match. In the case where // the pattern matches more than one branch, then [Policy.Execute] will attempt to // automatically choose an immediate sub-branch or authorized policy, but additional // branches and authorized policies encountered during the execution of the selected sub-tree // will consume additional path components. // // If the path has insufficent components for the branch nodes or authorized policies // encountered in a policy, [Policy.Execute] will attempt to automatically choose an // appropriate execution path for the remainder of the policy. func WithPathConstraint(path string) PolicyExecuteOption { return func(p *policyExecuteParams) { p.path = path } } // WithIgnoreAuthorizationsConstraint tells [Policy.Execute] which branches or authorized policies // containing TPM2_PolicySigned, TPM2_PolicySecret or TPM2_PolicyAuthorize assertions that should // not be automatically chosen. The assertions are identified by an ID. This can be used where // these assertions have failed on previous runs. This propagates to sub-policies. func WithIgnoreAuthorizationsConstraint(ids []PolicyAuthorizationID) PolicyExecuteOption { return func(p *policyExecuteParams) { p.ignoreAuthorizations = ids } } // WithIgnoreNVConstraint tells [Policy.Execute] which branches or authorized policies containing // TPM2_PolicyNV assertions that should not be automatically chosen. The assertions are identified // by the NV index name. This can be used where these assertions have failed due to an authorization // issue on previous runs. This propagates to sub-policies. func WithIgnoreNVConstraint(nv []Named) PolicyExecuteOption { return func(p *policyExecuteParams) { p.ignoreNV = nv } } // PolicyExecuteResult is returned from [Policy.Execute]. type PolicyExecuteResult struct { // NewTickets contains tickets that were created as a result of executing this policy. NewTickets []*PolicyTicket // InvalidTickets contains those tickets originally supplied to [Policy.Execute] that // were used but found to be invalid. These tickets shouldn't be supplied to // [Policy.Execute] again. InvalidTickets []*PolicyTicket // AuthValueNeeded indicates that the policy executed the TPM2_PolicyAuthValue or // TPM2_PolicyPassword assertion. AuthValueNeeded bool // Path indicates the executed path. Path string policyCommandCode *tpm2.CommandCode policyCpHash tpm2.Digest policyNameHash tpm2.Digest policyNvWritten *bool } // CommandCode returns the command code if a TPM2_PolicyCommandCode or // TPM2_PolicyDuplicationSelect assertion was executed. func (r *PolicyExecuteResult) CommandCode() (code tpm2.CommandCode, set bool) { if r.policyCommandCode == nil { return 0, false } return *r.policyCommandCode, true } // CpHash returns the command parameter hash if a TPM2_PolicyCpHash assertion // was executed or a TPM2_PolicySecret or TPM2_PolicySigned assertion was executed // with a cpHash. func (r *PolicyExecuteResult) CpHash() (cpHashA tpm2.Digest, set bool) { if len(r.policyCpHash) == 0 { return nil, false } return r.policyCpHash, true } // NameHash returns the name hash if a TPM2_PolicyNameHash or TPM2_PolicyDuplicationSelect // assertion was executed. func (r *PolicyExecuteResult) NameHash() (nameHash tpm2.Digest, set bool) { if len(r.policyNameHash) == 0 { return nil, false } return r.policyNameHash, true } // NvWritten returns the nvWrittenSet value if a TPM2_PolicyNvWritten assertion // was executed. func (r *PolicyExecuteResult) NvWritten() (nvWrittenSet bool, set bool) { if r.policyNvWritten == nil { return false, false } return *r.policyNvWritten, true } // Execute runs this policy using the supplied policy session. // // TPM2_PolicyNV assertions will create a session for authorizing the associated NV index. The // auth type is determined automatically from the NV index attributes, but where both HMAC and // policy auth is supported, policy auth is used. // // TPM2_PolicySecret assertions will create a session for authorizing the associated resource. // The auth type is determined automatically based on the public attributes for NV indices and // ordinary objects, but where both HMAC and policy auth is supported, HMAC auth is used. If the // resource is a permanent resource, then only HMAC auth is used. // // The caller may explicitly select branches and authorized policies to execute with the // [WithPathConstraint] option. Alternatively, if a path is not specified explicitly, or it contains // a pattern that matches multiple branches, an appropriate execution path is chosen automatically // where possible. This works by selecting the first suitable path, with a preference for paths that // don't include TPM2_PolicySecret, TPM2_PolicySigned, TPM2_PolicyAuthValue, and TPM2_PolicyPassword // assertions. It also has a preference for paths that don't include TPM2_PolicyNV assertions that // require authorization to use or read, and for paths without TPM2_PolicyCommandCode, // TPM2_PolicyCpHash, TPM2_PolicyNameHash and TPM2_PolicyDuplicatiionSelect assertions where no // session usage contraints are supplied. A path is omitted from the set of suitable paths if any of // the following conditions are true: // - It contains a command code, command parameter hash, or name hash that doesn't match // those supplied via [WithSessionUsageCommandConstraint] or // [WithSessionUsageHandlesConstraint]. // - It contains a TPM2_PolicyAuthValue or TPM2_PolicyPassword assertion and this isn't permitted // because of the [WithSessionUsageNoAuthValue] option. // - It uses TPM2_PolicyNvWritten with a value that doesn't match the public area of the NV index // that the session will be used to authorize, provided via the [WithSessionUsageCommandConstraint] // or [WithSessionUsageHandlesConstraint].. // - It uses TPM2_PolicySigned, TPM2_PolicySecret or TPM2_PolicyAuthorize and the specific // authorization was supplied to [WithIgnoreAuthorizationsConstraint]. // - It uses TPM2_PolicyNV and the NV index was supplied to [WithIgnoreNVConstraint]. // - It uses TPM2_PolicyNV with conditions that will fail against the current NV index contents, // if the index has an authorization policy that permits the use of TPM2_NV_Read without any // other conditions, else the condition isn't checked. // - It uses TPM2_PolicyPCR with values that don't match the current PCR values. // - It uses TPM2_PolicyCounterTimer with conditions that will fail. // // Note that this automatic selection makes the following assumptions: // - TPM2_PolicySecret assertions always succeed. Where they are known to not succeed because // the authorization value isn't known or the resource can't be loaded, supply the assertion // details to [WithIgnoreAuthorizationsConstraint]. // - TPM2_PolicySigned assertions always succeed. Where they are known to not succeed because // an assertion can't be provided or it is invalid, supply the assertion details to // [WithIgnoreAuthorizationsConstraint]. // - TPM2_PolicyAuthorize assertions always succeed if policies are returned from the // implementation of [PolicyExecuteResources.AuthorizedPolicies]. Where these are known // to not succeed, supply the assertion details to [WithIgnoreAuthorizationsConstraint]. // - TPM2_PolicyNV assertions on NV indexes that require authorization to read will always // succeed. Where these are known to not suceed, supply the NV index name to // [WithIgnoreNVConstraint]. // // On success, the supplied policy session may be used for authorization in a context that requires // that this policy is satisfied. Information about the result of executing the session is also // returned. func (p *Policy) Execute(session PolicyExecuteSession, options ...PolicyExecuteOption) (result *PolicyExecuteResult, err error) { if session == nil { return nil, errors.New("no session") } params := new(policyExecuteParams) for _, opt := range options { opt(params) } if params.resources == nil { params.resources = new(nullPolicyResources) } if params.tpm == nil { params.tpm = new(nullTpmHelper) } tickets, err := newExecutePolicyTickets(session.HashAlg(), params.tickets, ¶ms.usage) if err != nil { return nil, err } var details PolicyBranchDetails runner := newPolicyExecuteRunner( session, params, tickets, newExecutePolicyResources(session.Context(), params.resources, tickets, params.ignoreAuthorizations, params.ignoreNV), params.resources, &details, ) if err := runner.run(p.policy.Policy); err != nil { return nil, err } result = &PolicyExecuteResult{ AuthValueNeeded: details.AuthValueNeeded, Path: string(runner.currentPath), } if commandCode, set := details.CommandCode(); set { result.policyCommandCode = &commandCode } if cpHash, set := details.CpHash(); set { result.policyCpHash = cpHash } if nameHash, set := details.NameHash(); set { result.policyNameHash = nameHash } if nvWritten, set := details.NvWritten(); set { result.policyNvWritten = &nvWritten } for ticket := range tickets.newTickets { result.NewTickets = append(result.NewTickets, ticket) } for ticket := range tickets.invalidTickets { result.InvalidTickets = append(result.InvalidTickets, ticket) } return result, nil } ./github.com/canonical/go-tpm2/policyutil/policy_stringer.go0000664000000000000000000002245200000000000021324 0ustar00// Copyright 2023 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package policyutil import ( "bytes" "errors" "fmt" "io" "github.com/canonical/go-tpm2" ) type policyStringifierRunner struct { w io.Writer policySession policySession policyTickets nullTickets policyResources *mockPolicyResources depth int currentPath policyBranchPath } func newPolicyStringifierRunner(alg tpm2.HashAlgorithmId, authorizedPolicies AuthorizedPolicies, w io.Writer) *policyStringifierRunner { return &policyStringifierRunner{ w: w, policySession: newStringifierPolicySession(alg, w, 0), policyResources: newMockPolicyResources(authorizedPolicies), } } func (r *policyStringifierRunner) session() policySession { return r.policySession } func (r *policyStringifierRunner) tickets() policyTickets { return &r.policyTickets } func (r *policyStringifierRunner) resources() policyResources { return r.policyResources } func (r *policyStringifierRunner) authResourceName() tpm2.Name { return nil } func (r *policyStringifierRunner) loadExternal(public *tpm2.Public) (ResourceContext, error) { // the handle is not relevant here resource := tpm2.NewResourceContext(0x80000000, public.Name()) return newResourceContext(resource, nil), nil } func (r *policyStringifierRunner) authorize(auth ResourceContext, askForPolicy bool, commandParams *authorizationCommandParams, prefer tpm2.SessionType) (session SessionContext, err error) { return new(mockSessionContext), nil } func (r *policyStringifierRunner) runBranch(branches policyBranches) (selected int, err error) { var treeDepth int switch { case len(branches) <= 8: treeDepth = 1 case len(branches) <= 64: treeDepth = 2 case len(branches) <= 512: treeDepth = 3 default: treeDepth = 4 } var digests tpm2.DigestList for _, branch := range branches { var digest tpm2.Digest for _, d := range branch.PolicyDigests { if d.HashAlg != r.session().HashAlg() { continue } digest = d.Digest break } if len(digest) == 0 { return 0, ErrMissingDigest } digests = append(digests, digest) } tree, err := newPolicyOrTree(r.session().HashAlg(), digests) if err != nil { return 0, fmt.Errorf("cannot compute PolicyOR tree: %w", err) } fmt.Fprintf(r.w, "\n%*s BranchNode {", r.depth*3, "") maybeOpenSection := func(i int) { extraDepth := (treeDepth - 1) * 2 if treeDepth > 3 && i%512 == 0 { fmt.Fprintf(r.w, "\n%*s {", (r.depth+extraDepth-5)*3, "") fmt.Fprintf(r.w, "\n%*s {", (r.depth+extraDepth-4)*3, "") } if treeDepth > 2 && i%64 == 0 { fmt.Fprintf(r.w, "\n%*s {", (r.depth+extraDepth-3)*3, "") fmt.Fprintf(r.w, "\n%*s {", (r.depth+extraDepth-2)*3, "") } if treeDepth > 1 && i%8 == 0 { fmt.Fprintf(r.w, "\n%*s {", (r.depth+extraDepth-1)*3, "") fmt.Fprintf(r.w, "\n%*s {", (r.depth+extraDepth)*3, "") } } maybeCloseSection := func(i int, finish bool) error { if i == 0 { return errors.New("invalid index") } extraDepth := (treeDepth - 1) * 2 digests := tree.selectBranch(i - 1) if treeDepth > 1 && (i%8 == 0 || finish) { fmt.Fprintf(r.w, "\n%*s }", (r.depth+extraDepth)*3, "") if len(digests) > 1 { session := newStringifierPolicySession(r.session().HashAlg(), r.w, r.depth+extraDepth) if err := session.PolicyOR(digests[0]); err != nil { return err } } fmt.Fprintf(r.w, "\n%*s }", (r.depth+extraDepth-1)*3, "") } if treeDepth > 2 && (i%64 == 0 || finish) { fmt.Fprintf(r.w, "\n%*s }", (r.depth+extraDepth-2)*3, "") if len(digests) > 2 { session := newStringifierPolicySession(r.session().HashAlg(), r.w, r.depth+extraDepth-2) if err := session.PolicyOR(digests[0]); err != nil { return err } } fmt.Fprintf(r.w, "\n%*s }", (r.depth+extraDepth-3)*3, "") } if treeDepth > 4 && (i%512 == 0 || finish) { fmt.Fprintf(r.w, "\n%*s }", (r.depth+extraDepth-4)*3, "") if len(digests) > 3 { session := newStringifierPolicySession(r.session().HashAlg(), r.w, r.depth+extraDepth-4) if err := session.PolicyOR(digests[0]); err != nil { return err } } fmt.Fprintf(r.w, "\n%*s }", (r.depth+extraDepth-5)*3, "") } return nil } maybeOpenSection(0) for i, branch := range branches { if i > 0 { if err := maybeCloseSection(i, false); err != nil { return 0, fmt.Errorf("internal error: %w", err) } maybeOpenSection(i) } err := func() error { origSession := r.policySession origPath := r.currentPath origDepth := r.depth r.depth++ r.depth += ((treeDepth - 1) * 2) r.policySession = newStringifierPolicySession(r.policySession.HashAlg(), r.w, r.depth) r.currentPath = r.currentPath.Concat(branch.name()) defer func() { r.depth = origDepth r.policySession = origSession r.currentPath = origPath }() fmt.Fprintf(r.w, "\n%*sBranch %d", r.depth*3, "", i) if len(branch.Name) > 0 { fmt.Fprintf(r.w, " (%s)", branch.Name) } fmt.Fprintf(r.w, " {") fmt.Fprintf(r.w, "\n%*s # digest %v:%#x", r.depth*3, "", r.policySession.HashAlg(), digests[i]) if err := r.run(branch.Policy); err != nil { return err } fmt.Fprintf(r.w, "\n%*s}", r.depth*3, "") return nil }() if err != nil { return 0, err } } if err := maybeCloseSection(len(branches), true); err != nil { return 0, fmt.Errorf("internal error: %w", err) } fmt.Fprintf(r.w, "\n%*s }", r.depth*3, "") return -1, nil } func (r *policyStringifierRunner) runAuthorizedPolicy(keySign *tpm2.Public, policyRef tpm2.Nonce, policies []*authorizedPolicy) (approvedPolicy tpm2.Digest, checkTicket *tpm2.TkVerified, err error) { fmt.Fprintf(r.w, "\n%*s AuthorizedPolicies {", r.depth*3, "") for _, policy := range policies { err := func() error { origSession := r.policySession origPath := r.currentPath r.depth++ r.policySession = newStringifierPolicySession(r.policySession.HashAlg(), r.w, r.depth) r.currentPath = r.currentPath.Concat(string(policy.Name)) defer func() { r.depth-- r.policySession = origSession r.currentPath = origPath }() var digest tpm2.Digest for _, d := range policy.PolicyDigests { if d.HashAlg != r.policySession.HashAlg() { continue } digest = d.Digest break } if len(digest) == 0 { return ErrMissingDigest } fmt.Fprintf(r.w, "\n%*sAuthorizedPolicy %x {", r.depth*3, "", digest) fmt.Fprintf(r.w, "\n%*s # digest %v:%#x", r.depth*3, "", r.policySession.HashAlg(), digest) if err := r.run(policy.Policy); err != nil { return err } fmt.Fprintf(r.w, "\n%*s}", r.depth*3, "") return nil }() if err != nil { return nil, nil, err } } fmt.Fprintf(r.w, "\n%*s }", r.depth*3, "") return nil, nil, nil } func (r *policyStringifierRunner) notifyPolicyPCRDigest() error { return nil } func (r *policyStringifierRunner) run(elements policyElements) error { for len(elements) > 0 { element := elements[0].runner() elements = elements[1:] if err := element.run(r); err != nil { return makePolicyError(err, r.currentPath, element.name()) } } return nil } func (p *Policy) string(alg tpm2.HashAlgorithmId, authorizedPolicies AuthorizedPolicies) (string, error) { var digest tpm2.Digest if alg == tpm2.HashAlgorithmNull { if len(p.policy.PolicyDigests) > 0 { alg = p.policy.PolicyDigests[0].HashAlg digest = p.policy.PolicyDigests[0].Digest } } else { for _, d := range p.policy.PolicyDigests { if d.HashAlg != alg { continue } digest = d.Digest break } } if len(digest) == 0 { return "", ErrMissingDigest } w := new(bytes.Buffer) fmt.Fprintf(w, "\nPolicy {") fmt.Fprintf(w, "\n # digest %v:%#x", alg, digest) for i, auth := range p.policy.PolicyAuthorizations { fmt.Fprintf(w, "\n # auth %d authName:%#x, policyRef:%#x, sigAlg:%v", i, auth.AuthKey.Name(), auth.PolicyRef, auth.Signature.SigAlg) if auth.Signature.SigAlg.IsValid() { fmt.Fprintf(w, ", hashAlg:%v", auth.Signature.HashAlg()) } } runner := newPolicyStringifierRunner(alg, authorizedPolicies, w) if err := runner.run(p.policy.Policy); err != nil { return "", err } fmt.Fprintf(w, "\n}") return w.String(), nil } func (p *Policy) String() string { if len(p.policy.PolicyDigests) == 0 { return "%!(ERROR=no computed digests)" } return p.Stringer(p.policy.PolicyDigests[0].HashAlg, nil).String() } type policyStringer struct { alg tpm2.HashAlgorithmId authorizedPolicies AuthorizedPolicies policy *Policy } // String implements fmt.Stringer. It will print a string representation of the policy // with the first computed digest algorithm. func (s *policyStringer) String() string { str, err := s.policy.string(s.alg, s.authorizedPolicies) if err != nil { return fmt.Sprintf("%%!(ERROR=%v)", err) } return str } // Stringer returns a fmt.Stringer that will print a string representation of the policy // for the specified digest algorithm. The policy must already include this algorithm. If // the algorithm is [tpm2.HashAlgorithmNull], then the first computed algorithm will be used. // If authorizedPolicies is supplied, the string representation will include the relevant // authorized policies as well. func (p *Policy) Stringer(alg tpm2.HashAlgorithmId, authorizedPolicies AuthorizedPolicies) fmt.Stringer { return &policyStringer{ alg: alg, authorizedPolicies: authorizedPolicies, policy: p, } } ./github.com/canonical/go-tpm2/policyutil/policy_validate.go0000664000000000000000000001060600000000000021256 0ustar00// Copyright 2023 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package policyutil import ( "bytes" "errors" "fmt" "github.com/canonical/go-tpm2" ) type policyValidateRunner struct { policySession *computePolicySession policyTickets nullTickets policyResources mockPolicyResources currentPath policyBranchPath } func newPolicyValidateRunner(alg tpm2.HashAlgorithmId) *policyValidateRunner { return &policyValidateRunner{ policySession: newComputePolicySession(alg, nil, false), } } func (r *policyValidateRunner) session() policySession { return r.policySession } func (r *policyValidateRunner) tickets() policyTickets { return &r.policyTickets } func (r *policyValidateRunner) resources() policyResources { return &r.policyResources } func (r *policyValidateRunner) authResourceName() tpm2.Name { return nil } func (r *policyValidateRunner) loadExternal(public *tpm2.Public) (ResourceContext, error) { // the handle is not relevant here resource := tpm2.NewResourceContext(0x80000000, public.Name()) return newResourceContext(resource, nil), nil } func (r *policyValidateRunner) authorize(auth ResourceContext, askForPolicy bool, commandParams *authorizationCommandParams, prefer tpm2.SessionType) (session SessionContext, err error) { return new(mockSessionContext), nil } func (r *policyValidateRunner) runBranch(branches policyBranches) (selected int, err error) { currentDigest, err := r.session().PolicyGetDigest() if err != nil { return 0, err } for i, branch := range branches { computedDigest, err := func() (tpm2.Digest, error) { origPolicySession := r.policySession origPath := r.currentPath r.policySession = newComputePolicySession(r.session().HashAlg(), currentDigest, false) r.currentPath = r.currentPath.Concat(branch.name()) defer func() { r.policySession = origPolicySession r.currentPath = origPath }() if err := r.run(branch.Policy); err != nil { return nil, err } return r.session().PolicyGetDigest() }() if err != nil { return 0, err } for _, digest := range branch.PolicyDigests { if digest.HashAlg != r.session().HashAlg() { continue } if !bytes.Equal(digest.Digest, computedDigest) { return 0, fmt.Errorf("stored and computed branch digest mismatch for branch %d (computed: %x, stored: %x)", i, computedDigest, digest.Digest) } break } } r.currentPath = r.currentPath.Concat("**") return -1, nil } func (r *policyValidateRunner) runAuthorizedPolicy(keySign *tpm2.Public, policyRef tpm2.Nonce, policies []*authorizedPolicy) (approvedPolicy tpm2.Digest, checkTicket *tpm2.TkVerified, err error) { return nil, nil, nil } func (r *policyValidateRunner) notifyPolicyPCRDigest() error { return nil } func (r *policyValidateRunner) run(elements policyElements) error { for len(elements) > 0 { element := elements[0].runner() elements = elements[1:] if err := element.run(r); err != nil { return makePolicyError(err, r.currentPath, element.name()) } } return nil } // Validate performs some checking of every element in the policy, and // verifies that every branch is consistent with their stored digests. On // success, it returns the digest correpsonding to this policy for the // specified digest algorithm. func (p *Policy) Validate(alg tpm2.HashAlgorithmId) (tpm2.Digest, error) { if !alg.Available() { return nil, errors.New("unavailable algorithm") } expectedDigest, err := p.Digest(alg) if err != nil { return nil, err } runner := newPolicyValidateRunner(alg) if err := runner.run(p.policy.Policy); err != nil { return nil, err } computedDigest, err := runner.session().PolicyGetDigest() if err != nil { return nil, err } if !bytes.Equal(computedDigest, expectedDigest) { return nil, fmt.Errorf("stored and computed policy digest mismatch (computed: %x, stored: %x)", computedDigest, expectedDigest) } for _, auth := range p.policy.PolicyAuthorizations { if auth.AuthKey.Name().Algorithm() != alg { continue } ok, err := auth.Verify(computedDigest) if err != nil { return nil, &PolicyAuthorizationError{AuthName: auth.AuthKey.Name(), PolicyRef: auth.PolicyRef, err: fmt.Errorf("cannot verify signature: %w", err)} } if !ok { return nil, &PolicyAuthorizationError{AuthName: auth.AuthKey.Name(), PolicyRef: auth.PolicyRef, err: errors.New("invalid signature")} } } return expectedDigest, nil } ./github.com/canonical/go-tpm2/policyutil/resources.go0000664000000000000000000005746200000000000020133 0ustar00// Copyright 2023 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package policyutil import ( "bytes" "errors" "fmt" "math" "github.com/canonical/go-tpm2" "github.com/canonical/go-tpm2/mu" ) // ResourceContext corresponds to a resource on the TPM. type ResourceContext interface { Resource() tpm2.ResourceContext // The actual resource Policy() *Policy // The policy associated with this resource, if there is one Flush() // Flush the resource once it's no longer needed } // LoadPolicyParams contains parameters for policy sessions that are required to execute // TPM2_Load commands via [PolicyResources.LoadedResource]. type LoadPolicyParams struct { Tickets []*PolicyTicket // See [PolicyExecuteParams.Tickets] IgnoreAuthorizations []PolicyAuthorizationID // See [PolicyExecuteParams.IgnoreAuthorizations] IgnoreNV []Named // See [PolicyExecuteParams.IgnoreNV] } // PolicyExecuteResources provides a way for [Policy.Execute] to access resources that // are required by a policy. type PolicyExecuteResources interface { // LoadedResource loads the resource with the specified name if required, and returns // a context. The Flush method of the returned context will be called once the resource // is no longer needed. // // This should return an error if no resource can be returned. LoadedResource(name tpm2.Name, policyParams *LoadPolicyParams) (resource ResourceContext, newTickets []*PolicyTicket, invalidTickets []*PolicyTicket, err error) // Policy returns a policy for the resource with the specified name if there // is one. As a policy is optional, returning a nil policy isn't an error. Policy(name tpm2.Name) (*Policy, error) // AuthorizedPolicies returns a set of policies that are signed by the key with // the specified name, appropriate for a TPM2_PolicyAuthorize assertion with the // specified reference. AuthorizedPolicies(keySign tpm2.Name, policyRef tpm2.Nonce) ([]*Policy, error) // Authorize sets the authorization value of the specified resource context. Authorize(resource tpm2.ResourceContext) error // SignedAuthorization signs a TPM2_PolicySigned authorization for the specified key, policy ref // and session nonce. The supplied algorithm is the session algorithm, which should be // used to construct a cpHash if desired. SignedAuthorization(sessionAlg tpm2.HashAlgorithmId, sessionNonce tpm2.Nonce, authKey tpm2.Name, policyRef tpm2.Nonce) (*PolicySignedAuthorization, error) // ContextSave saves the context of the transient resource associated with the supplied // handle. This will return nil if it fails. ContextSave(resource tpm2.ResourceContext) *tpm2.Context // ContextLoad loads the supplied context and returns a transient handle. This will return // nil if the context can't be loaded or isn't a transient resource. ContextLoad(context *tpm2.Context, policy *Policy) ResourceContext // ExternalSensitive returns the sensitive area associated with the supplied name, to be // loaded with TPM2_LoadExternal. ExternalSensitive(name tpm2.Name) (*tpm2.Sensitive, error) } type ( // Authorizer provides a way to supply authorizations to [Policy.Execute]. The implementation // sets the authorization value for the supplied resource. Authorizer func(tpm2.ResourceContext) error // SignedAuthorizer provides a way to supplied signed authorizations to [Policy.Execute]. SignedAuthorizer func(sessionAlg tpm2.HashAlgorithmId, sessionNonce tpm2.Nonce, authKey tpm2.Name, policyRef tpm2.Nonce) (*PolicySignedAuthorization, error) // ExternalSensitiveGetter provides a way to supply sensitive areas to [Policy.Execute]. // The implementation returns the sensitive area for the object with the specified name. ExternalSensitiveGetter func(tpm2.Name) (*tpm2.Sensitive, error) ) type NVAuthorizedPolicy struct { Name tpm2.Name Policy *Policy } // PersistentResource contains details associated with a persistent object or // NV index. type PersistentResource struct { Name tpm2.Name Handle tpm2.Handle Policy *Policy } // TransientResource contains details associated with a transient object. type TransientResource struct { ParentName tpm2.Name Public *tpm2.Public Private tpm2.Private Policy *Policy } type resourceContext struct { resource tpm2.ResourceContext policy *Policy } func newResourceContext(resource tpm2.ResourceContext, policy *Policy) *resourceContext { return &resourceContext{ resource: resource, policy: policy, } } func (r *resourceContext) Resource() tpm2.ResourceContext { return r.resource } func (r *resourceContext) Policy() *Policy { return r.policy } func (r *resourceContext) Flush() {} type tpmResourceContextFlushable struct { resourceContext tpm *tpm2.TPMContext } func newTpmResourceContextFlushable(tpm *tpm2.TPMContext, resource tpm2.ResourceContext, policy *Policy) *tpmResourceContextFlushable { return &tpmResourceContextFlushable{ resourceContext: resourceContext{ resource: resource, policy: policy, }, tpm: tpm, } } func (r *tpmResourceContextFlushable) Flush() { r.tpm.FlushContext(r.resource) } type policyExecuteResources struct { tpm *tpm2.TPMContext authorizer Authorizer signedAuthorizer SignedAuthorizer externalSensitiveGetter ExternalSensitiveGetter newTPMHelper NewTPMHelperFn newPolicySession NewPolicyExecuteSessionFn persistent []PersistentResource transient []TransientResource authorizedPolicies []*Policy nvAuthorizedPolicies []NVAuthorizedPolicy sessions []tpm2.SessionContext } type NewTPMHelperFn func(*tpm2.TPMContext, ...tpm2.SessionContext) TPMHelper // PolicyExecuteResourcesOption is an option supplied to [NewPolicyExecuteResources]. type PolicyExecuteResourcesOption func(*policyExecuteResources) // WithPersistentResources allows information about persistent resources and NV indexes // required by a policy to be supplied. // // Information about persistent resources and NV indexes doesn't need to be supplied // explicitly if there is no need to associate a policy with them. The created // [PolicyExecuteResources] will query TPM handles whenever a policy requires a persistent // resource or NV index for which there is no information. // // The created [PolicyExecuteResources] doesn't support associating policies with permanent // resources - policies that use permanent resources will only use HMAC authorization for // these. func WithPersistentResources(resources []PersistentResource) PolicyExecuteResourcesOption { return func(r *policyExecuteResources) { r.persistent = resources } } // WithTransientResources allows information about transient resources required by a // policy to be supplied. // // When loading transient objects to use for a policy, the created [PolicyExecuteResources] // will automatically load any prerequisite parent objects first, as long as the details of // these are supplied. func WithTransientResources(resources []TransientResource) PolicyExecuteResourcesOption { return func(r *policyExecuteResources) { r.transient = resources } } // WithAuthorizedPolicies allows authorized policies required by a policy to be supplied. func WithAuthorizedPolicies(policies []*Policy) PolicyExecuteResourcesOption { return func(r *policyExecuteResources) { r.authorizedPolicies = policies } } // WithAuthorizer allows resources used when executing a policy to be authorized. // This may be required for policies that contain TPM2_PolicyNV or TPM2_PolicySecret // assertions. func WithAuthorizer(fn Authorizer) PolicyExecuteResourcesOption { return func(r *policyExecuteResources) { r.authorizer = fn } } // WithSignedAuthorizer allows signed authorizations required when executing a policy to // be supplied. This is required for any policy that includes TPM2_PolicySigned assertions. func WithSignedAuthorizer(fn SignedAuthorizer) PolicyExecuteResourcesOption { return func(r *policyExecuteResources) { r.signedAuthorizer = fn } } // WithExternalSensitiveGetter allows sensitive areas required when executing a policy to // be supplied. This may be required for any policy that includes TPM2_PolicySigned // assertions with HMAC keys. func WithExternalSensitiveGetter(fn ExternalSensitiveGetter) PolicyExecuteResourcesOption { return func(r *policyExecuteResources) { r.externalSensitiveGetter = fn } } // WithPolicyExecuteResourcesNewTPMHelperFn allows the function used to create a new // [TPMHelper] to be overridden. The default is [NewTPMHelper]. func WithPolicyExecuteResourcesNewTPMHelperFn(fn NewTPMHelperFn) PolicyExecuteResourcesOption { return func(r *policyExecuteResources) { r.newTPMHelper = fn } } // WithPolicyExecuteResourcesNewPolicySessionFn allows the function used to create a new // [PolicySession] to be overridden. The default is [NewPolicyExecuteSession]. func WithPolicyExecuteResourcesNewPolicySessionFn(fn NewPolicyExecuteSessionFn) PolicyExecuteResourcesOption { return func(r *policyExecuteResources) { r.newPolicySession = fn } } // WithExecutePoliyResourcesSessions allows extra sessions to be supplied to TPM commands. func WithPolicyExecuteResourcesSessions(sessions ...tpm2.SessionContext) PolicyExecuteResourcesOption { return func(r *policyExecuteResources) { r.sessions = sessions } } // NewPolicyExecuteResources returns a PolicyExecuteResources implementation that // communicates with the supplied TPM. func NewPolicyExecuteResources(tpm *tpm2.TPMContext, options ...PolicyExecuteResourcesOption) PolicyExecuteResources { r := &policyExecuteResources{ tpm: tpm, } for _, opt := range options { opt(r) } if r.newPolicySession == nil { r.newPolicySession = NewPolicyExecuteSession } if r.newTPMHelper == nil { r.newTPMHelper = func(tpm *tpm2.TPMContext, sessions ...tpm2.SessionContext) TPMHelper { return NewTPMHelper( tpm, WithTPMHelperNewPolicyExecuteSessionFn(r.newPolicySession), WithTPMHelperSessions(sessions...), ) } } return r } func (r *policyExecuteResources) LoadedResource(name tpm2.Name, policyParams *LoadPolicyParams) (ResourceContext, []*PolicyTicket, []*PolicyTicket, error) { if name.Type() == tpm2.NameTypeHandle && (name.Handle().Type() == tpm2.HandleTypePCR || name.Handle().Type() == tpm2.HandleTypePermanent) { return newResourceContext(r.tpm.GetPermanentContext(name.Handle()), nil), nil, nil, nil } // Search persistent resources for _, resource := range r.persistent { if !bytes.Equal(resource.Name, name) { continue } rc, err := r.tpm.NewResourceContext(resource.Handle, r.sessions...) if err != nil { return nil, nil, nil, err } if !bytes.Equal(rc.Name(), name) { return nil, nil, nil, fmt.Errorf("persistent TPM resource has the wrong name (%#x)", rc.Name()) } return newResourceContext(rc, resource.Policy), nil, nil, nil } // Search loadable objects for _, object := range r.transient { if !bytes.Equal(object.Public.Name(), name) { continue } // After this point, the loop always exits and we return. parent, newTickets, invalidTickets, err := r.LoadedResource(object.ParentName, policyParams) if err != nil { return nil, nil, nil, fmt.Errorf("cannot load parent with name %#x: %w", object.ParentName, err) } defer parent.Flush() // Build a map of new and invalid tickets newTicketMap := make(map[*PolicyTicket]struct{}) invalidTicketMap := make(map[*PolicyTicket]struct{}) for _, ticket := range newTickets { newTicketMap[ticket] = struct{}{} } for _, ticket := range invalidTickets { invalidTicketMap[ticket] = struct{}{} } // Filter the originally supplied tickets to supply to the policy session below ticketMap := make(map[*PolicyTicket]struct{}) for _, ticket := range policyParams.Tickets { ticketMap[ticket] = struct{}{} } for ticket := range newTicketMap { ticketMap[ticket] = struct{}{} } for ticket := range invalidTicketMap { delete(ticketMap, ticket) } var tickets []*PolicyTicket for ticket := range ticketMap { tickets = append(tickets, ticket) } sessionType := tpm2.SessionTypeHMAC if parent.Policy() != nil { sessionType = tpm2.SessionTypePolicy } session, err := r.tpm.StartAuthSession(nil, nil, sessionType, nil, parent.Resource().Name().Algorithm(), r.sessions...) if err != nil { return nil, nil, nil, fmt.Errorf("cannot start session to authorize parent with name %#x: %w", parent.Resource().Name(), err) } defer r.tpm.FlushContext(session) requireAuthValue := true if parent.Policy() != nil { result, err := parent.Policy().Execute( r.newPolicySession(r.tpm, session, r.sessions...), WithPolicyExecuteResources(r), WithExternalTPMHelper(r.newTPMHelper(r.tpm, r.sessions...)), WithTickets(tickets), WithSessionUsageCommandConstraint(tpm2.CommandLoad, []NamedHandle{parent.Resource()}, object.Private, object.Public), WithIgnoreAuthorizationsConstraint(policyParams.IgnoreAuthorizations), WithIgnoreNVConstraint(policyParams.IgnoreNV), ) if err != nil { return nil, nil, nil, fmt.Errorf("cannot execute policy session to authorize parent with name %#x: %w", parent.Resource().Name(), err) } requireAuthValue = result.AuthValueNeeded // Add new and invalid tickets to the ones collected earlier, noting // that this may have marked a previously new ticket as invalid for _, ticket := range result.NewTickets { newTicketMap[ticket] = struct{}{} } for _, ticket := range result.InvalidTickets { invalidTicketMap[ticket] = struct{}{} delete(newTicketMap, ticket) } newTickets = nil for ticket := range newTicketMap { newTickets = append(newTickets, ticket) } invalidTickets = nil for ticket := range invalidTicketMap { invalidTickets = append(invalidTickets, ticket) } } if requireAuthValue { if err := r.Authorize(parent.Resource()); err != nil { return nil, nil, nil, fmt.Errorf("cannot authorize parent with name %#x: %w", parent.Resource().Name(), err) } } resource, err := r.tpm.Load(parent.Resource(), object.Private, object.Public, session, r.sessions...) if err != nil { return nil, nil, nil, err } return newTpmResourceContextFlushable(r.tpm, resource, object.Policy), newTickets, invalidTickets, nil } // Search persistent and NV index handles handles, err := r.tpm.GetCapabilityHandles(tpm2.HandleTypePersistent.BaseHandle(), math.MaxUint32, r.sessions...) if err != nil { return nil, nil, nil, err } nvHandles, err := r.tpm.GetCapabilityHandles(tpm2.HandleTypeNVIndex.BaseHandle(), math.MaxUint32, r.sessions...) if err != nil { return nil, nil, nil, err } handles = append(handles, nvHandles...) for _, handle := range handles { resource, err := r.tpm.NewResourceContext(handle, r.sessions...) if tpm2.IsResourceUnavailableError(err, handle) { continue } if err != nil { return nil, nil, nil, err } if !bytes.Equal(resource.Name(), name) { continue } return newResourceContext(resource, nil), nil, nil, nil } return nil, nil, nil, errors.New("resource not found") } func (r *policyExecuteResources) Policy(name tpm2.Name) (*Policy, error) { for _, resource := range r.persistent { if !bytes.Equal(resource.Name, name) { continue } return resource.Policy, nil } for _, object := range r.transient { if !bytes.Equal(object.Public.Name(), name) { continue } return object.Policy, nil } return nil, nil } func (r *policyExecuteResources) AuthorizedPolicies(keySign tpm2.Name, policyRef tpm2.Nonce) ([]*Policy, error) { var out []*Policy for _, policy := range r.authorizedPolicies { for _, auth := range policy.policy.PolicyAuthorizations { if !bytes.Equal(auth.AuthKey.Name(), keySign) { continue } if !bytes.Equal(auth.PolicyRef, policyRef) { continue } out = append(out, policy) break } } return out, nil } func (r *policyExecuteResources) Authorize(resource tpm2.ResourceContext) error { if r.authorizer == nil { return errors.New("no Authorizer") } return r.authorizer(resource) } func (r *policyExecuteResources) SignedAuthorization(sessionAlg tpm2.HashAlgorithmId, sessionNonce tpm2.Nonce, authKey tpm2.Name, policyRef tpm2.Nonce) (*PolicySignedAuthorization, error) { if r.signedAuthorizer == nil { return nil, errors.New("no SignedAuthorizer") } return r.signedAuthorizer(sessionAlg, sessionNonce, authKey, policyRef) } func (r *policyExecuteResources) ContextSave(resource tpm2.ResourceContext) *tpm2.Context { context, _ := r.tpm.ContextSave(resource) return context } func (r *policyExecuteResources) ContextLoad(context *tpm2.Context, policy *Policy) ResourceContext { hc, err := r.tpm.ContextLoad(context) if err != nil { return nil } rc, ok := hc.(tpm2.ResourceContext) if !ok { return nil } return newTpmResourceContextFlushable(r.tpm, rc, policy) } func (r *policyExecuteResources) ExternalSensitive(name tpm2.Name) (*tpm2.Sensitive, error) { if r.externalSensitiveGetter == nil { return nil, errors.New("no ExternalSensitiveGetter") } return r.externalSensitiveGetter(name) } type nullPolicyResources struct{} func (*nullPolicyResources) LoadedResource(name tpm2.Name, policyParams *LoadPolicyParams) (ResourceContext, []*PolicyTicket, []*PolicyTicket, error) { return nil, nil, nil, errors.New("no PolicyExecuteResources") } func (*nullPolicyResources) Policy(name tpm2.Name) (*Policy, error) { return nil, nil } func (*nullPolicyResources) AuthorizedPolicies(keySign tpm2.Name, policyRef tpm2.Nonce) ([]*Policy, error) { return nil, nil } func (*nullPolicyResources) Authorize(resource tpm2.ResourceContext) error { return errors.New("no PolicyExecuteResources") } func (*nullPolicyResources) SignedAuthorization(sessionAlg tpm2.HashAlgorithmId, sessionNonce tpm2.Nonce, authKey tpm2.Name, policyRef tpm2.Nonce) (*PolicySignedAuthorization, error) { return nil, errors.New("no PolicyExecuteResources") } func (*nullPolicyResources) ContextSave(resource tpm2.ResourceContext) *tpm2.Context { return nil } func (*nullPolicyResources) ContextLoad(context *tpm2.Context, policy *Policy) ResourceContext { return nil } func (*nullPolicyResources) ExternalSensitive(name tpm2.Name) (*tpm2.Sensitive, error) { return nil, errors.New("no PolicyExecuteResources") } type cachedResourceType int const ( cachedResourceTypeResource cachedResourceType = iota cachedResourceTypeContext cachedResourceTypePolicy ) type cachedResource struct { typ cachedResourceType data []byte policy *Policy } type nameMapKey uint32 func makeNameMapKey(name tpm2.Name) nameMapKey { return nameMapKey(mapKey(name)) } type executePolicyResources struct { session SessionContext resources PolicyExecuteResources tickets *executePolicyTickets ignoreAuthorizations []PolicyAuthorizationID ignoreNV []Named cachedResources map[nameMapKey]cachedResource cachedAuthorizedPolicies map[authMapKey][]*Policy } func newExecutePolicyResources(session SessionContext, resources PolicyExecuteResources, tickets *executePolicyTickets, ignoreAuthorizations []PolicyAuthorizationID, ignoreNV []Named) *executePolicyResources { return &executePolicyResources{ session: session, resources: resources, tickets: tickets, ignoreAuthorizations: ignoreAuthorizations, ignoreNV: ignoreNV, cachedResources: make(map[nameMapKey]cachedResource), cachedAuthorizedPolicies: make(map[authMapKey][]*Policy), } } func (r *executePolicyResources) forSession(session SessionContext) *executePolicyResources { out := *r out.session = session return &out } func (r *executePolicyResources) externalSensitive(name tpm2.Name) (*tpm2.Sensitive, error) { return r.resources.ExternalSensitive(name) } func (r *executePolicyResources) policy(name tpm2.Name) (*Policy, error) { if cached, exists := r.cachedResources[makeNameMapKey(name)]; exists { return cached.policy, nil } policy, err := r.resources.Policy(name) if err != nil { return nil, err } r.cachedResources[makeNameMapKey(name)] = cachedResource{ typ: cachedResourceTypePolicy, policy: policy, } return policy, nil } func (r *executePolicyResources) loadedResource(name tpm2.Name) (ResourceContext, error) { if cached, exists := r.cachedResources[makeNameMapKey(name)]; exists { switch cached.typ { case cachedResourceTypeResource: if hc, _, err := tpm2.NewHandleContextFromBytes(cached.data); err == nil { if resource, ok := hc.(tpm2.ResourceContext); ok { return newResourceContext(resource, cached.policy), nil } } case cachedResourceTypeContext: var context *tpm2.Context if _, err := mu.UnmarshalFromBytes(cached.data, &context); err == nil { if resource := r.resources.ContextLoad(context, cached.policy); resource != nil { return resource, nil } } } } // Save the current policy session to make space for others that might be loaded restore, err := r.session.Save() if err != nil { return nil, fmt.Errorf("cannot save session: %w", err) } defer func() { if restoreErr := restore(); restoreErr != nil && err == nil { err = fmt.Errorf("cannot restore saved session: %w", restoreErr) } }() params := &LoadPolicyParams{ Tickets: r.tickets.currentTickets(), IgnoreAuthorizations: r.ignoreAuthorizations, IgnoreNV: r.ignoreNV, } resource, newTickets, invalidTickets, err := r.resources.LoadedResource(name, params) if err != nil { return nil, err } switch resource.Resource().Handle().Type() { case tpm2.HandleTypeTransient: policy := resource.Policy() if context := r.resources.ContextSave(resource.Resource()); context != nil { r.cachedResources[makeNameMapKey(name)] = cachedResource{ typ: cachedResourceTypeContext, data: mu.MustMarshalToBytes(context), policy: policy, } } default: r.cachedResources[makeNameMapKey(name)] = cachedResource{ typ: cachedResourceTypeResource, data: resource.Resource().SerializeToBytes(), policy: resource.Policy(), } } for _, ticket := range newTickets { r.tickets.addTicket(ticket) } for _, ticket := range invalidTickets { r.tickets.invalidTicket(ticket) } return resource, nil } func (r *executePolicyResources) authorizedPolicies(keySign tpm2.Name, policyRef tpm2.Nonce) ([]*Policy, error) { if policies, exists := r.cachedAuthorizedPolicies[makeAuthMapKey(keySign, policyRef)]; exists { return policies, nil } policies, err := r.resources.AuthorizedPolicies(keySign, policyRef) if err != nil { return nil, err } r.cachedAuthorizedPolicies[makeAuthMapKey(keySign, policyRef)] = policies return policies, nil } func (r *executePolicyResources) signedAuthorization(authKey tpm2.Name, policyRef tpm2.Nonce) (*PolicySignedAuthorization, error) { return r.resources.SignedAuthorization(r.session.Session().Params().HashAlg, r.session.Session().State().NonceTPM, authKey, policyRef) } // AuthorizedPolicies provides a way for [Policy.Branches], [Policy.Details] and // [Policy.Stringer] to access authorized policies that are required by a policy. type AuthorizedPolicies interface { // AuthorizedPolicies returns a set of policies that are signed by the key with // the specified name, appropriate for a TPM2_PolicyAuthorize assertion with the // specified reference. AuthorizedPolicies(keySign tpm2.Name, policyRef tpm2.Nonce) ([]*Policy, error) } type authorizedPolicies struct { signedPolicies []*Policy nvPolicies []NVAuthorizedPolicy } func (p *authorizedPolicies) AuthorizedPolicies(keySign tpm2.Name, policyRef tpm2.Nonce) ([]*Policy, error) { var out []*Policy for _, policy := range p.signedPolicies { for _, auth := range policy.policy.PolicyAuthorizations { if !bytes.Equal(auth.AuthKey.Name(), keySign) { continue } if !bytes.Equal(auth.PolicyRef, policyRef) { continue } out = append(out, policy) break } } return out, nil } func NewAuthorizedPolicies(policies []*Policy, nvPolicies []NVAuthorizedPolicy) AuthorizedPolicies { return &authorizedPolicies{ signedPolicies: policies, nvPolicies: nvPolicies, } } ./github.com/canonical/go-tpm2/policyutil/session.go0000664000000000000000000007260100000000000017574 0ustar00// Copyright 2023 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package policyutil import ( "bytes" "errors" "fmt" "io" "github.com/canonical/go-tpm2" "github.com/canonical/go-tpm2/mu" ) // SessionContext corresponds to a session on the TPM type SessionContext interface { Session() tpm2.SessionContext Save() (restore func() error, err error) Flush() } // PolicyExecuteSession corresponds to a policy session used by [Policy.Execute]. type PolicyExecuteSession interface { Context() SessionContext Name() tpm2.Name HashAlg() tpm2.HashAlgorithmId PolicySigned(authKey tpm2.ResourceContext, includeNonceTPM bool, cpHashA tpm2.Digest, policyRef tpm2.Nonce, expiration int32, auth *tpm2.Signature) (tpm2.Timeout, *tpm2.TkAuth, error) PolicySecret(authObject tpm2.ResourceContext, cpHashA tpm2.Digest, policyRef tpm2.Nonce, expiration int32, authObjectAuthSession tpm2.SessionContext) (tpm2.Timeout, *tpm2.TkAuth, error) PolicyTicket(timeout tpm2.Timeout, cpHashA tpm2.Digest, policyRef tpm2.Nonce, authName tpm2.Name, ticket *tpm2.TkAuth) error PolicyOR(pHashList tpm2.DigestList) error PolicyPCR(pcrDigest tpm2.Digest, pcrs tpm2.PCRSelectionList) error PolicyNV(auth, index tpm2.ResourceContext, operandB tpm2.Operand, offset uint16, operation tpm2.ArithmeticOp, authAuthSession tpm2.SessionContext) error PolicyCounterTimer(operandB tpm2.Operand, offset uint16, operation tpm2.ArithmeticOp) error PolicyCommandCode(code tpm2.CommandCode) error PolicyCpHash(cpHashA tpm2.Digest) error PolicyNameHash(nameHash tpm2.Digest) error PolicyDuplicationSelect(objectName, newParentName tpm2.Name, includeObject bool) error PolicyAuthorize(approvedPolicy tpm2.Digest, policyRef tpm2.Nonce, keySign tpm2.Name, verified *tpm2.TkVerified) error PolicyAuthValue() error PolicyPassword() error PolicyGetDigest() (tpm2.Digest, error) PolicyNvWritten(writtenSet bool) error } type tpmSessionContext struct { tpm *tpm2.TPMContext session tpm2.SessionContext } func newTpmSessionContext(tpm *tpm2.TPMContext, session tpm2.SessionContext) *tpmSessionContext { return &tpmSessionContext{ tpm: tpm, session: session, } } func (s *tpmSessionContext) Session() tpm2.SessionContext { return s.session } func (s *tpmSessionContext) Save() (restore func() error, err error) { context, err := s.tpm.ContextSave(s.session) if err != nil { return nil, err } return func() error { if context == nil { // already restored return nil } hc, err := s.tpm.ContextLoad(context) if err != nil { return err } context = nil sc, ok := hc.(tpm2.SessionContext) if !ok { return errors.New("internal error: invalid context type") } s.session = sc return nil }, nil } func (s *tpmSessionContext) Flush() { s.tpm.FlushContext(s.session) } type NewPolicyExecuteSessionFn func(*tpm2.TPMContext, tpm2.SessionContext, ...tpm2.SessionContext) PolicyExecuteSession // tpmPolicySession is the internal implementation of PolicyExecuteSession. type tpmPolicySession struct { tpm *tpm2.TPMContext policySession SessionContext sessions []tpm2.SessionContext } func NewPolicyExecuteSession(tpm *tpm2.TPMContext, policySession tpm2.SessionContext, sessions ...tpm2.SessionContext) PolicyExecuteSession { return &tpmPolicySession{ tpm: tpm, policySession: newTpmSessionContext(tpm, policySession), sessions: sessions, } } func (s *tpmPolicySession) Context() SessionContext { return s.policySession } func (s *tpmPolicySession) Name() tpm2.Name { return s.policySession.Session().Name() } func (s *tpmPolicySession) HashAlg() tpm2.HashAlgorithmId { return s.policySession.Session().Params().HashAlg } func (s *tpmPolicySession) PolicySigned(authKey tpm2.ResourceContext, includeNonceTPM bool, cpHashA tpm2.Digest, policyRef tpm2.Nonce, expiration int32, auth *tpm2.Signature) (tpm2.Timeout, *tpm2.TkAuth, error) { return s.tpm.PolicySigned(authKey, s.policySession.Session(), includeNonceTPM, cpHashA, policyRef, expiration, auth, s.sessions...) } func (s *tpmPolicySession) PolicySecret(authObject tpm2.ResourceContext, cpHashA tpm2.Digest, policyRef tpm2.Nonce, expiration int32, authObjectAuthSession tpm2.SessionContext) (tpm2.Timeout, *tpm2.TkAuth, error) { return s.tpm.PolicySecret(authObject, s.policySession.Session(), cpHashA, policyRef, expiration, authObjectAuthSession, s.sessions...) } func (s *tpmPolicySession) PolicyTicket(timeout tpm2.Timeout, cpHashA tpm2.Digest, policyRef tpm2.Nonce, authName tpm2.Name, ticket *tpm2.TkAuth) error { return s.tpm.PolicyTicket(s.policySession.Session(), timeout, cpHashA, policyRef, authName, ticket, s.sessions...) } func (s *tpmPolicySession) PolicyOR(pHashList tpm2.DigestList) error { return s.tpm.PolicyOR(s.policySession.Session(), pHashList, s.sessions...) } func (s *tpmPolicySession) PolicyPCR(pcrDigest tpm2.Digest, pcrs tpm2.PCRSelectionList) error { return s.tpm.PolicyPCR(s.policySession.Session(), pcrDigest, pcrs, s.sessions...) } func (s *tpmPolicySession) PolicyNV(auth, index tpm2.ResourceContext, operandB tpm2.Operand, offset uint16, operation tpm2.ArithmeticOp, authAuthSession tpm2.SessionContext) error { return s.tpm.PolicyNV(auth, index, s.policySession.Session(), operandB, offset, operation, authAuthSession, s.sessions...) } func (s *tpmPolicySession) PolicyCounterTimer(operandB tpm2.Operand, offset uint16, operation tpm2.ArithmeticOp) error { return s.tpm.PolicyCounterTimer(s.policySession.Session(), operandB, offset, operation, s.sessions...) } func (s *tpmPolicySession) PolicyCommandCode(code tpm2.CommandCode) error { return s.tpm.PolicyCommandCode(s.policySession.Session(), code, s.sessions...) } func (s *tpmPolicySession) PolicyCpHash(cpHashA tpm2.Digest) error { return s.tpm.PolicyCpHash(s.policySession.Session(), cpHashA, s.sessions...) } func (s *tpmPolicySession) PolicyNameHash(nameHash tpm2.Digest) error { return s.tpm.PolicyNameHash(s.policySession.Session(), nameHash, s.sessions...) } func (s *tpmPolicySession) PolicyDuplicationSelect(objectName, newParentName tpm2.Name, includeObject bool) error { return s.tpm.PolicyDuplicationSelect(s.policySession.Session(), objectName, newParentName, includeObject, s.sessions...) } func (s *tpmPolicySession) PolicyAuthorize(approvedPolicy tpm2.Digest, policyRef tpm2.Nonce, keySign tpm2.Name, verified *tpm2.TkVerified) error { return s.tpm.PolicyAuthorize(s.policySession.Session(), approvedPolicy, policyRef, keySign, verified, s.sessions...) } func (s *tpmPolicySession) PolicyAuthValue() error { return s.tpm.PolicyAuthValue(s.policySession.Session(), s.sessions...) } func (s *tpmPolicySession) PolicyPassword() error { return s.tpm.PolicyPassword(s.policySession.Session(), s.sessions...) } func (s *tpmPolicySession) PolicyGetDigest() (tpm2.Digest, error) { return s.tpm.PolicyGetDigest(s.policySession.Session(), s.sessions...) } func (s *tpmPolicySession) PolicyNvWritten(writtenSet bool) error { return s.tpm.PolicyNvWritten(s.policySession.Session(), writtenSet, s.sessions...) } // computePolicySession is an implementation of policySession that computes a // digest from a sequence of assertions. type computePolicySession struct { alg tpm2.HashAlgorithmId digest tpm2.Digest noCpNameHash bool } func newComputePolicySession(alg tpm2.HashAlgorithmId, digest tpm2.Digest, noCpNameHash bool) *computePolicySession { out := &computePolicySession{ alg: alg, digest: make(tpm2.Digest, alg.Size()), noCpNameHash: noCpNameHash, } copy(out.digest, digest) return out } func (s *computePolicySession) reset() { s.digest = make(tpm2.Digest, s.alg.Size()) } func (s *computePolicySession) updateForCommand(command tpm2.CommandCode, params ...interface{}) error { h := s.alg.NewHash() h.Write(s.digest) mu.MustMarshalToWriter(h, command) if _, err := mu.MarshalToWriter(h, params...); err != nil { return err } s.digest = h.Sum(nil) return nil } func (s *computePolicySession) mustUpdateForCommand(command tpm2.CommandCode, params ...interface{}) { if err := s.updateForCommand(command, params...); err != nil { panic(err) } } func (s *computePolicySession) policyUpdate(command tpm2.CommandCode, name tpm2.Name, policyRef tpm2.Nonce) { s.mustUpdateForCommand(command, mu.Raw(name)) h := s.alg.NewHash() h.Write(s.digest) mu.MustMarshalToWriter(h, mu.Raw(policyRef)) s.digest = h.Sum(nil) } func (*computePolicySession) Name() tpm2.Name { return nil } func (s *computePolicySession) HashAlg() tpm2.HashAlgorithmId { return s.alg } func (s *computePolicySession) PolicySigned(authKey tpm2.ResourceContext, includeNonceTPM bool, cpHashA tpm2.Digest, policyRef tpm2.Nonce, expiration int32, auth *tpm2.Signature) (tpm2.Timeout, *tpm2.TkAuth, error) { if len(authKey.Name()) == 0 || !authKey.Name().IsValid() { return nil, nil, errors.New("invalid authKey name") } s.policyUpdate(tpm2.CommandPolicySigned, authKey.Name(), policyRef) return nil, nil, nil } func (s *computePolicySession) PolicySecret(authObject tpm2.ResourceContext, cpHashA tpm2.Digest, policyRef tpm2.Nonce, expiration int32, authObjectAuthSession tpm2.SessionContext) (tpm2.Timeout, *tpm2.TkAuth, error) { if len(authObject.Name()) == 0 || !authObject.Name().IsValid() { return nil, nil, errors.New("invalid authObject name") } s.policyUpdate(tpm2.CommandPolicySecret, authObject.Name(), policyRef) return nil, nil, nil } func (s *computePolicySession) PolicyTicket(timeout tpm2.Timeout, cpHashA tpm2.Digest, policyRef tpm2.Nonce, authName tpm2.Name, ticket *tpm2.TkAuth) error { panic("not reached") } func (s *computePolicySession) PolicyOR(pHashList tpm2.DigestList) error { if len(pHashList) < 2 || len(pHashList) > 8 { return errors.New("invalid number of branches") } s.reset() digests := new(bytes.Buffer) for i, digest := range pHashList { if len(digest) != s.alg.Size() { return fmt.Errorf("invalid digest length at branch %d", i) } digests.Write(digest) } s.mustUpdateForCommand(tpm2.CommandPolicyOR, mu.Raw(digests.Bytes())) return nil } func (s *computePolicySession) PolicyPCR(pcrDigest tpm2.Digest, pcrs tpm2.PCRSelectionList) error { if len(pcrDigest) != s.alg.Size() { return errors.New("invalid pcrDigest size") } return s.updateForCommand(tpm2.CommandPolicyPCR, pcrs, mu.Raw(pcrDigest)) } func (s *computePolicySession) PolicyNV(auth, index tpm2.ResourceContext, operandB tpm2.Operand, offset uint16, operation tpm2.ArithmeticOp, authAuthSession tpm2.SessionContext) error { if len(index.Name()) == 0 || !index.Name().IsValid() { return errors.New("invalid index name") } h := s.alg.NewHash() mu.MustMarshalToWriter(h, mu.Raw(operandB), offset, operation) s.mustUpdateForCommand(tpm2.CommandPolicyNV, mu.Raw(h.Sum(nil)), mu.Raw(index.Name())) return nil } func (s *computePolicySession) PolicyCounterTimer(operandB tpm2.Operand, offset uint16, operation tpm2.ArithmeticOp) error { h := s.alg.NewHash() mu.MustMarshalToWriter(h, mu.Raw(operandB), offset, operation) s.mustUpdateForCommand(tpm2.CommandPolicyCounterTimer, mu.Raw(h.Sum(nil))) return nil } func (s *computePolicySession) PolicyCommandCode(code tpm2.CommandCode) error { s.mustUpdateForCommand(tpm2.CommandPolicyCommandCode, code) return nil } func (s *computePolicySession) PolicyCpHash(cpHashA tpm2.Digest) error { if s.noCpNameHash { return fmt.Errorf("cannot compute digest for policies with TPM2_PolicyCpHash assertion") } if len(cpHashA) != s.alg.Size() { return errors.New("invalid digest size") } s.mustUpdateForCommand(tpm2.CommandPolicyCpHash, mu.Raw(cpHashA)) return nil } func (s *computePolicySession) PolicyNameHash(nameHash tpm2.Digest) error { if s.noCpNameHash { return fmt.Errorf("cannot compute digest for policies with TPM2_PolicyNameHash assertion") } if len(nameHash) != s.alg.Size() { return errors.New("invalid digest size") } s.mustUpdateForCommand(tpm2.CommandPolicyNameHash, mu.Raw(nameHash)) return nil } func (s *computePolicySession) PolicyDuplicationSelect(objectName, newParentName tpm2.Name, includeObject bool) error { if len(newParentName) == 0 || !newParentName.IsValid() { return errors.New("invalid newParent name") } if includeObject { if len(objectName) == 0 || !objectName.IsValid() { return errors.New("invalid object name") } s.mustUpdateForCommand(tpm2.CommandPolicyDuplicationSelect, mu.Raw(objectName), mu.Raw(newParentName), includeObject) } else { s.mustUpdateForCommand(tpm2.CommandPolicyDuplicationSelect, mu.Raw(newParentName), includeObject) } return nil } func (s *computePolicySession) PolicyAuthorize(approvedPolicy tpm2.Digest, policyRef tpm2.Nonce, keySign tpm2.Name, verified *tpm2.TkVerified) error { if len(keySign) == 0 || !keySign.IsValid() { return errors.New("invalid keySign name") } s.policyUpdate(tpm2.CommandPolicyAuthorize, keySign, policyRef) return nil } func (s *computePolicySession) PolicyAuthValue() error { s.mustUpdateForCommand(tpm2.CommandPolicyAuthValue) return nil } func (s *computePolicySession) PolicyPassword() error { s.mustUpdateForCommand(tpm2.CommandPolicyAuthValue) return nil } func (s *computePolicySession) PolicyGetDigest() (tpm2.Digest, error) { digest := make(tpm2.Digest, len(s.digest)) copy(digest, s.digest) return digest, nil } func (s *computePolicySession) PolicyNvWritten(writtenSet bool) error { s.mustUpdateForCommand(tpm2.CommandPolicyNvWritten, writtenSet) return nil } type nullPolicySession struct { alg tpm2.HashAlgorithmId } func newNullPolicySession(alg tpm2.HashAlgorithmId) *nullPolicySession { return &nullPolicySession{alg: alg} } func (*nullPolicySession) Name() tpm2.Name { return nil } func (s *nullPolicySession) HashAlg() tpm2.HashAlgorithmId { return s.alg } func (*nullPolicySession) PolicySigned(authKey tpm2.ResourceContext, includeNonceTPM bool, cpHashA tpm2.Digest, policyRef tpm2.Nonce, expiration int32, auth *tpm2.Signature) (tpm2.Timeout, *tpm2.TkAuth, error) { return nil, nil, nil } func (*nullPolicySession) PolicySecret(authObject tpm2.ResourceContext, cpHashA tpm2.Digest, policyRef tpm2.Nonce, expiration int32, authObjectAuthSession tpm2.SessionContext) (tpm2.Timeout, *tpm2.TkAuth, error) { return nil, nil, nil } func (*nullPolicySession) PolicyTicket(timeout tpm2.Timeout, cpHashA tpm2.Digest, policyRef tpm2.Nonce, authName tpm2.Name, ticket *tpm2.TkAuth) error { return nil } func (*nullPolicySession) PolicyOR(pHashList tpm2.DigestList) error { return nil } func (*nullPolicySession) PolicyPCR(pcrDigest tpm2.Digest, pcrs tpm2.PCRSelectionList) error { return nil } func (*nullPolicySession) PolicyNV(auth, index tpm2.ResourceContext, operandB tpm2.Operand, offset uint16, operation tpm2.ArithmeticOp, authAuthSession tpm2.SessionContext) error { return nil } func (*nullPolicySession) PolicyCounterTimer(operandB tpm2.Operand, offset uint16, operation tpm2.ArithmeticOp) error { return nil } func (*nullPolicySession) PolicyCommandCode(code tpm2.CommandCode) error { return nil } func (*nullPolicySession) PolicyCpHash(cpHashA tpm2.Digest) error { return nil } func (*nullPolicySession) PolicyNameHash(nameHash tpm2.Digest) error { return nil } func (*nullPolicySession) PolicyDuplicationSelect(objectName, newParentName tpm2.Name, includeObject bool) error { return nil } func (*nullPolicySession) PolicyAuthorize(approvedPolicy tpm2.Digest, policyRef tpm2.Nonce, keySign tpm2.Name, verified *tpm2.TkVerified) error { return nil } func (*nullPolicySession) PolicyAuthValue() error { return nil } func (*nullPolicySession) PolicyPassword() error { return nil } func (s *nullPolicySession) PolicyGetDigest() (tpm2.Digest, error) { return make(tpm2.Digest, s.alg.Size()), nil } func (*nullPolicySession) PolicyNvWritten(writtenSet bool) error { return nil } type teePolicySession struct { outputs []policySession } func newTeePolicySession(outputs ...policySession) *teePolicySession { return &teePolicySession{outputs: outputs} } func (s *teePolicySession) head() policySession { return s.outputs[0] } func (s *teePolicySession) forEachExceptHead(fn func(policySession) error) error { for _, session := range s.outputs[1:] { if err := fn(session); err != nil { return err } } return nil } func (s *teePolicySession) forEach(fn func(policySession) error) error { for _, session := range s.outputs { if err := fn(session); err != nil { return err } } return nil } func (s *teePolicySession) Name() tpm2.Name { return s.head().Name() } func (s *teePolicySession) HashAlg() tpm2.HashAlgorithmId { return s.head().HashAlg() } func (s *teePolicySession) PolicySigned(authKey tpm2.ResourceContext, includeNonceTPM bool, cpHashA tpm2.Digest, policyRef tpm2.Nonce, expiration int32, auth *tpm2.Signature) (tpm2.Timeout, *tpm2.TkAuth, error) { timeout, ticket, err := s.head().PolicySigned(authKey, includeNonceTPM, cpHashA, policyRef, expiration, auth) if err != nil { return nil, nil, err } if err := s.forEachExceptHead(func(session policySession) error { _, _, err := session.PolicySigned(authKey, includeNonceTPM, cpHashA, policyRef, expiration, auth) return err }); err != nil { return nil, nil, err } return timeout, ticket, nil } func (s *teePolicySession) PolicySecret(authObject tpm2.ResourceContext, cpHashA tpm2.Digest, policyRef tpm2.Nonce, expiration int32, authObjectAuthSession tpm2.SessionContext) (tpm2.Timeout, *tpm2.TkAuth, error) { timeout, ticket, err := s.head().PolicySecret(authObject, cpHashA, policyRef, expiration, authObjectAuthSession) if err != nil { return nil, nil, err } if err := s.forEachExceptHead(func(session policySession) error { _, _, err := session.PolicySecret(authObject, cpHashA, policyRef, expiration, authObjectAuthSession) return err }); err != nil { return nil, nil, err } return timeout, ticket, nil } func (s *teePolicySession) PolicyTicket(timeout tpm2.Timeout, cpHashA tpm2.Digest, policyRef tpm2.Nonce, authName tpm2.Name, ticket *tpm2.TkAuth) error { return s.forEach(func(session policySession) error { return session.PolicyTicket(timeout, cpHashA, policyRef, authName, ticket) }) } func (s *teePolicySession) PolicyOR(pHashList tpm2.DigestList) error { return s.forEach(func(session policySession) error { return session.PolicyOR(pHashList) }) } func (s *teePolicySession) PolicyPCR(pcrDigest tpm2.Digest, pcrs tpm2.PCRSelectionList) error { return s.forEach(func(session policySession) error { return session.PolicyPCR(pcrDigest, pcrs) }) } func (s *teePolicySession) PolicyNV(auth, index tpm2.ResourceContext, operandB tpm2.Operand, offset uint16, operation tpm2.ArithmeticOp, authAuthSession tpm2.SessionContext) error { return s.forEach(func(session policySession) error { return session.PolicyNV(auth, index, operandB, offset, operation, authAuthSession) }) } func (s *teePolicySession) PolicyCounterTimer(operandB tpm2.Operand, offset uint16, operation tpm2.ArithmeticOp) error { return s.forEach(func(session policySession) error { return session.PolicyCounterTimer(operandB, offset, operation) }) } func (s *teePolicySession) PolicyCommandCode(code tpm2.CommandCode) error { return s.forEach(func(session policySession) error { return session.PolicyCommandCode(code) }) } func (s *teePolicySession) PolicyCpHash(cpHashA tpm2.Digest) error { return s.forEach(func(session policySession) error { return session.PolicyCpHash(cpHashA) }) } func (s *teePolicySession) PolicyNameHash(nameHash tpm2.Digest) error { return s.forEach(func(session policySession) error { return session.PolicyNameHash(nameHash) }) } func (s *teePolicySession) PolicyDuplicationSelect(objectName, newParentName tpm2.Name, includeObject bool) error { return s.forEach(func(session policySession) error { return session.PolicyDuplicationSelect(objectName, newParentName, includeObject) }) } func (s *teePolicySession) PolicyAuthorize(approvedPolicy tpm2.Digest, policyRef tpm2.Nonce, keySign tpm2.Name, verified *tpm2.TkVerified) error { return s.forEach(func(session policySession) error { return session.PolicyAuthorize(approvedPolicy, policyRef, keySign, verified) }) } func (s *teePolicySession) PolicyAuthValue() error { return s.forEach(func(session policySession) error { return session.PolicyAuthValue() }) } func (s *teePolicySession) PolicyPassword() error { return s.forEach(func(session policySession) error { return session.PolicyPassword() }) } func (s *teePolicySession) PolicyGetDigest() (tpm2.Digest, error) { return s.head().PolicyGetDigest() } func (s *teePolicySession) PolicyNvWritten(writtenSet bool) error { return s.forEach(func(session policySession) error { return session.PolicyNvWritten(writtenSet) }) } type recorderPolicySession struct { alg tpm2.HashAlgorithmId details *PolicyBranchDetails } func newRecorderPolicySession(alg tpm2.HashAlgorithmId, details *PolicyBranchDetails) *recorderPolicySession { return &recorderPolicySession{ alg: alg, details: details, } } func (*recorderPolicySession) Name() tpm2.Name { return nil } func (s *recorderPolicySession) HashAlg() tpm2.HashAlgorithmId { return s.alg } func (s *recorderPolicySession) PolicySigned(authKey tpm2.ResourceContext, includeNonceTPM bool, cpHashA tpm2.Digest, policyRef tpm2.Nonce, expiration int32, auth *tpm2.Signature) (tpm2.Timeout, *tpm2.TkAuth, error) { s.details.Signed = append(s.details.Signed, PolicyAuthorizationDetails{ AuthName: authKey.Name(), PolicyRef: policyRef, }) if len(cpHashA) > 0 { if err := s.PolicyCpHash(cpHashA); err != nil { return nil, nil, err } } return nil, nil, nil } func (s *recorderPolicySession) PolicySecret(authObject tpm2.ResourceContext, cpHashA tpm2.Digest, policyRef tpm2.Nonce, expiration int32, authObjectAuthSession tpm2.SessionContext) (tpm2.Timeout, *tpm2.TkAuth, error) { s.details.Secret = append(s.details.Secret, PolicyAuthorizationDetails{ AuthName: authObject.Name(), PolicyRef: policyRef, }) if len(cpHashA) > 0 { if err := s.PolicyCpHash(cpHashA); err != nil { return nil, nil, err } } return nil, nil, nil } func (s *recorderPolicySession) PolicyTicket(timeout tpm2.Timeout, cpHashA tpm2.Digest, policyRef tpm2.Nonce, authName tpm2.Name, ticket *tpm2.TkAuth) error { switch ticket.Tag { case tpm2.TagAuthSecret: s.details.Secret = append(s.details.Secret, PolicyAuthorizationDetails{ AuthName: authName, PolicyRef: policyRef, }) case tpm2.TagAuthSigned: s.details.Signed = append(s.details.Signed, PolicyAuthorizationDetails{ AuthName: authName, PolicyRef: policyRef, }) } return nil } func (*recorderPolicySession) PolicyOR(pHashList tpm2.DigestList) error { return nil } func (s *recorderPolicySession) PolicyPCR(pcrDigest tpm2.Digest, pcrs tpm2.PCRSelectionList) error { s.details.PCR = append(s.details.PCR, PolicyPCRDetails{ PCRDigest: pcrDigest, PCRs: pcrs, }) return nil } func (s *recorderPolicySession) PolicyNV(auth, index tpm2.ResourceContext, operandB tpm2.Operand, offset uint16, operation tpm2.ArithmeticOp, authAuthSession tpm2.SessionContext) error { s.details.NV = append(s.details.NV, PolicyNVDetails{ Auth: auth.Handle(), Index: index.Handle(), Name: index.Name(), OperandB: operandB, Offset: offset, Operation: operation, }) return nil } func (s *recorderPolicySession) PolicyCounterTimer(operandB tpm2.Operand, offset uint16, operation tpm2.ArithmeticOp) error { s.details.CounterTimer = append(s.details.CounterTimer, PolicyCounterTimerDetails{ OperandB: operandB, Offset: offset, Operation: operation, }) return nil } func (s *recorderPolicySession) PolicyCommandCode(code tpm2.CommandCode) error { s.details.policyCommandCode = append(s.details.policyCommandCode, code) return nil } func (s *recorderPolicySession) PolicyCpHash(cpHashA tpm2.Digest) error { s.details.policyCpHash = append(s.details.policyCpHash, cpHashA) return nil } func (s *recorderPolicySession) PolicyNameHash(nameHash tpm2.Digest) error { s.details.policyNameHash = append(s.details.policyNameHash, nameHash) return nil } func (s *recorderPolicySession) PolicyDuplicationSelect(objectName, newParentName tpm2.Name, includeObject bool) error { nameHash, err := ComputeNameHash(s.alg, objectName, newParentName) if err != nil { return err } if err := s.PolicyNameHash(nameHash); err != nil { return err } return s.PolicyCommandCode(tpm2.CommandDuplicate) } func (s *recorderPolicySession) PolicyAuthorize(approvedPolicy tpm2.Digest, policyRef tpm2.Nonce, keySign tpm2.Name, verified *tpm2.TkVerified) error { s.details.Authorize = append(s.details.Authorize, PolicyAuthorizationDetails{ AuthName: keySign, PolicyRef: policyRef, }) return nil } func (s *recorderPolicySession) PolicyAuthValue() error { s.details.AuthValueNeeded = true return nil } func (s *recorderPolicySession) PolicyPassword() error { s.details.AuthValueNeeded = true return nil } func (s *recorderPolicySession) PolicyGetDigest() (tpm2.Digest, error) { return nil, errors.New("not supported") } func (s *recorderPolicySession) PolicyNvWritten(writtenSet bool) error { s.details.policyNvWritten = append(s.details.policyNvWritten, writtenSet) return nil } type stringifierPolicySession struct { alg tpm2.HashAlgorithmId w io.Writer depth int } func newStringifierPolicySession(alg tpm2.HashAlgorithmId, w io.Writer, depth int) *stringifierPolicySession { return &stringifierPolicySession{ alg: alg, w: w, depth: depth, } } func (*stringifierPolicySession) Name() tpm2.Name { return nil } func (s *stringifierPolicySession) HashAlg() tpm2.HashAlgorithmId { return s.alg } func (s *stringifierPolicySession) PolicySigned(authKey tpm2.ResourceContext, includeNonceTPM bool, cpHashA tpm2.Digest, policyRef tpm2.Nonce, expiration int32, auth *tpm2.Signature) (tpm2.Timeout, *tpm2.TkAuth, error) { _, err := fmt.Fprintf(s.w, "\n%*s PolicySigned(authKey:%#x, policyRef:%#x)", s.depth*3, "", authKey.Name(), policyRef) return nil, nil, err } func (s *stringifierPolicySession) PolicySecret(authObject tpm2.ResourceContext, cpHashA tpm2.Digest, policyRef tpm2.Nonce, expiration int32, authObjectAuthSession tpm2.SessionContext) (tpm2.Timeout, *tpm2.TkAuth, error) { _, err := fmt.Fprintf(s.w, "\n%*s PolicySecret(authObject:%#x, policyRef:%#x)", s.depth*3, "", authObject.Name(), policyRef) return nil, nil, err } func (s *stringifierPolicySession) PolicyTicket(timeout tpm2.Timeout, cpHashA tpm2.Digest, policyRef tpm2.Nonce, authName tpm2.Name, ticket *tpm2.TkAuth) error { _, err := fmt.Fprintf(s.w, "\n%*s PolicyTicket(tag:%v, auth:%#x, policyRef:%#x)", s.depth*3, "", ticket.Tag, authName, policyRef) return err } func (s *stringifierPolicySession) PolicyOR(pHashList tpm2.DigestList) error { _, err := fmt.Fprintf(s.w, "\n%*s PolicyOR(", s.depth*3, "") if err != nil { return err } for _, digest := range pHashList { _, err := fmt.Fprintf(s.w, "\n%*s %#x", s.depth*3, "", digest) if err != nil { return err } } _, err = fmt.Fprintf(s.w, "\n%*s )", s.depth*3, "") return err } func (s *stringifierPolicySession) PolicyPCR(pcrDigest tpm2.Digest, pcrs tpm2.PCRSelectionList) error { _, err := fmt.Fprintf(s.w, "\n%*s PolicyPCR(pcrDigest:%#x, pcrs:%v)", s.depth*3, "", pcrDigest, pcrs) return err } func (s *stringifierPolicySession) PolicyNV(auth, index tpm2.ResourceContext, operandB tpm2.Operand, offset uint16, operation tpm2.ArithmeticOp, authAuthSession tpm2.SessionContext) error { _, err := fmt.Fprintf(s.w, "\n%*s PolicyNV(index:%#x, operandB:%#x, offset:%d, operation:%v)", s.depth*3, "", index.Name(), operandB, offset, operation) return err } func (s *stringifierPolicySession) PolicyCounterTimer(operandB tpm2.Operand, offset uint16, operation tpm2.ArithmeticOp) error { _, err := fmt.Fprintf(s.w, "\n%*s PolicyCounterTimer(operandB:%#x, offset:%d, operation:%v)", s.depth*3, "", operandB, offset, operation) return err } func (s *stringifierPolicySession) PolicyCommandCode(code tpm2.CommandCode) error { _, err := fmt.Fprintf(s.w, "\n%*s PolicyCommandCode(%v)", s.depth*3, "", code) return err } func (s *stringifierPolicySession) PolicyCpHash(cpHashA tpm2.Digest) error { _, err := fmt.Fprintf(s.w, "\n%*s PolicyCpHash(%#x)", s.depth*3, "", cpHashA) return err } func (s *stringifierPolicySession) PolicyNameHash(nameHash tpm2.Digest) error { _, err := fmt.Fprintf(s.w, "\n%*s PolicyNameHash(%#x)", s.depth*3, "", nameHash) return err } func (s *stringifierPolicySession) PolicyDuplicationSelect(objectName, newParentName tpm2.Name, includeObject bool) error { _, err := fmt.Fprintf(s.w, "\n%*s PolicyDuplicationSelect(objectName:%#x, newParentName:%#x, includeObject:%t)", s.depth*3, "", objectName, newParentName, includeObject) return err } func (s *stringifierPolicySession) PolicyAuthorize(approvedPolicy tpm2.Digest, policyRef tpm2.Nonce, keySign tpm2.Name, verified *tpm2.TkVerified) error { _, err := fmt.Fprintf(s.w, "\n%*s PolicyAuthorize(policyRef:%#x, keySign:%#x)", s.depth*3, "", policyRef, keySign) return err } func (s *stringifierPolicySession) PolicyAuthValue() error { _, err := fmt.Fprintf(s.w, "\n%*s PolicyAuthValue()", s.depth*3, "") return err } func (s *stringifierPolicySession) PolicyPassword() error { _, err := fmt.Fprintf(s.w, "\n%*s PolicyPassword()", s.depth*3, "") return err } func (s *stringifierPolicySession) PolicyGetDigest() (tpm2.Digest, error) { return nil, errors.New("not supported") } func (s *stringifierPolicySession) PolicyNvWritten(writtenSet bool) error { _, err := fmt.Fprintf(s.w, "\n%*s PolicyNvWritten(%t)", s.depth*3, "", writtenSet) return err } type mockSessionContext struct{} func (*mockSessionContext) Session() tpm2.SessionContext { return nil } func (*mockSessionContext) Save() (func() error, error) { return func() error { return nil }, nil } func (*mockSessionContext) Flush() {} ./github.com/canonical/go-tpm2/policyutil/tpm.go0000664000000000000000000001650100000000000016706 0ustar00// Copyright 2023 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package policyutil import ( "errors" "github.com/canonical/go-tpm2" ) // TPMHelper provides a way for [Policy.Execute] to communicate with a TPM. type TPMHelper interface { // StartAuthSession returns an authorization session with the specified type and // algorithm. It is required for any policy that includes TPM2_PolicySecret or // TPM2_PolicyNV assertions. StartAuthSession(sessionType tpm2.SessionType, alg tpm2.HashAlgorithmId) (SessionContext, PolicyExecuteSession, error) // LoadExternal loads the supplied external object into the TPM. It is required by // any policy that includes TPM2_PolicySigned or TPM2_PolicyAuthorize assertions. LoadExternal(inPrivate *tpm2.Sensitive, inPublic *tpm2.Public, hierarchy tpm2.Handle) (ResourceContext, error) // ReadPublic returns the public area of the resource at the specified handle. It // is required by any policy that includes TPM2_PolicySecret assertions on persistent or // transient objects. ReadPublic(handle tpm2.HandleContext) (*tpm2.Public, error) // VerifySignature verifies the supplied signature with the supplied key object. It // is required by any policy that includes TPM2_PolicyAuthorize assertions. VerifySignature(key tpm2.ResourceContext, digest tpm2.Digest, signature *tpm2.Signature) (*tpm2.TkVerified, error) // PCRRead returns the PCR values for the specified selection. It is required to // automatically resolve branches where branches include TPM2_PolicyPCR assertions. PCRRead(pcrs tpm2.PCRSelectionList) (tpm2.PCRValues, error) // ReadClock returns the current time info. It is required to automatically resolve // branches where branches include TPM2_PolicyCounterTimer assertions. ReadClock() (*tpm2.TimeInfo, error) // NVRead returns the contents of the specified NV index. It is required to automatically // resolve branches where branches include TPM2_PolicyNV assertions. This will only // be called if the index has an authorization policy with a branch that includes // TPM2_PolicyCommandCode for TPM2_NV_Read and no other assertions. NVRead(auth, index tpm2.ResourceContext, size, offset uint16, authAuthSession tpm2.SessionContext) (tpm2.MaxNVBuffer, error) // NVReadPublic returns the public area of the NV index at the specified handle. It // is required by any policy that includes TPM2_PolicyNV assertions or TPM2_PolicySecret // assertions on NV indices. NVReadPublic(handle tpm2.HandleContext) (*tpm2.NVPublic, error) // GetPermanentHandleAuthPolicy returns the auth policy digest for the specified // permanent handle, if there is one. If there isn't one, it returns a null hash. GetPermanentHandleAuthPolicy(handle tpm2.Handle) (tpm2.TaggedHash, error) } type tpmHelper struct { newPolicySession NewPolicyExecuteSessionFn tpm *tpm2.TPMContext sessions []tpm2.SessionContext } // TPMHelperOption is an option supplied to [NewTPMHelper]. type TPMHelperOption func(*tpmHelper) // WithTPMHelperNewPolicyExecuteSessionFn allows the function used to create a new // [PolicyExecuteSession] in StartAuthSession to be overridden. The default is // [NewPolicyExecuteSession]. func WithTPMHelperNewPolicyExecuteSessionFn(fn NewPolicyExecuteSessionFn) TPMHelperOption { return func(h *tpmHelper) { h.newPolicySession = fn } } // WithTPMHelperSessions allows extra sessions to be supplied to TPM commands. func WithTPMHelperSessions(sessions ...tpm2.SessionContext) TPMHelperOption { return func(h *tpmHelper) { h.sessions = sessions } } // NewTPMHelper returns an implementation of TPMHelper that uses the supplied TPM context. func NewTPMHelper(tpm *tpm2.TPMContext, options ...TPMHelperOption) TPMHelper { h := &tpmHelper{ tpm: tpm, } for _, opt := range options { opt(h) } if h.newPolicySession == nil { h.newPolicySession = NewPolicyExecuteSession } return h } func (h *tpmHelper) StartAuthSession(sessionType tpm2.SessionType, alg tpm2.HashAlgorithmId) (SessionContext, PolicyExecuteSession, error) { session, err := h.tpm.StartAuthSession(nil, nil, sessionType, nil, alg, h.sessions...) if err != nil { return nil, nil, err } switch sessionType { case tpm2.SessionTypeHMAC: return newTpmSessionContext(h.tpm, session), nil, nil case tpm2.SessionTypePolicy: policySession := h.newPolicySession(h.tpm, session, h.sessions...) return policySession.Context(), policySession, nil default: panic("not reached") } } func (h *tpmHelper) LoadExternal(inPrivate *tpm2.Sensitive, inPublic *tpm2.Public, hierarchy tpm2.Handle) (ResourceContext, error) { rc, err := h.tpm.LoadExternal(inPrivate, inPublic, hierarchy, h.sessions...) if err != nil { return nil, err } return newTpmResourceContextFlushable(h.tpm, rc, nil), nil } func (h *tpmHelper) ReadPublic(handle tpm2.HandleContext) (*tpm2.Public, error) { pub, _, _, err := h.tpm.ReadPublic(handle, h.sessions...) return pub, err } func (h *tpmHelper) VerifySignature(key tpm2.ResourceContext, digest tpm2.Digest, signature *tpm2.Signature) (*tpm2.TkVerified, error) { return h.tpm.VerifySignature(key, digest, signature, h.sessions...) } func (h *tpmHelper) PCRRead(pcrs tpm2.PCRSelectionList) (tpm2.PCRValues, error) { _, values, err := h.tpm.PCRRead(pcrs, h.sessions...) return values, err } func (h *tpmHelper) ReadClock() (*tpm2.TimeInfo, error) { return h.tpm.ReadClock(h.sessions...) } func (h *tpmHelper) NVRead(auth, index tpm2.ResourceContext, size, offset uint16, authAuthSession tpm2.SessionContext) (tpm2.MaxNVBuffer, error) { return h.tpm.NVReadRaw(auth, index, size, offset, authAuthSession, h.sessions...) } func (h *tpmHelper) NVReadPublic(handle tpm2.HandleContext) (*tpm2.NVPublic, error) { pub, _, err := h.tpm.NVReadPublic(handle, h.sessions...) return pub, err } func (h *tpmHelper) GetPermanentHandleAuthPolicy(handle tpm2.Handle) (tpm2.TaggedHash, error) { return h.tpm.GetCapabilityAuthPolicy(handle, h.sessions...) } type nullTpmHelper struct{} func (*nullTpmHelper) StartAuthSession(sessionType tpm2.SessionType, alg tpm2.HashAlgorithmId) (SessionContext, PolicyExecuteSession, error) { return nil, nil, errors.New("no TPMHelper") } func (*nullTpmHelper) LoadExternal(inPrivate *tpm2.Sensitive, inPublic *tpm2.Public, hierarchy tpm2.Handle) (ResourceContext, error) { return nil, errors.New("no TPMHelper") } func (*nullTpmHelper) ReadPublic(handle tpm2.HandleContext) (*tpm2.Public, error) { return nil, errors.New("no TPMHelper") } func (*nullTpmHelper) VerifySignature(key tpm2.ResourceContext, digest tpm2.Digest, signature *tpm2.Signature) (*tpm2.TkVerified, error) { return nil, errors.New("no TPMHelper") } func (*nullTpmHelper) PCRRead(pcrs tpm2.PCRSelectionList) (tpm2.PCRValues, error) { return nil, errors.New("no TPMHelper") } func (*nullTpmHelper) ReadClock() (*tpm2.TimeInfo, error) { return nil, errors.New("no TPMHelper") } func (*nullTpmHelper) NVRead(auth, index tpm2.ResourceContext, size, offset uint16, authAuthSession tpm2.SessionContext) (tpm2.MaxNVBuffer, error) { return nil, errors.New("no TPMHelper") } func (*nullTpmHelper) NVReadPublic(handle tpm2.HandleContext) (*tpm2.NVPublic, error) { return nil, errors.New("no TPMHelper") } func (*nullTpmHelper) GetPermanentHandleAuthPolicy(handle tpm2.Handle) (tpm2.TaggedHash, error) { return tpm2.MakeTaggedHash(tpm2.HashAlgorithmNull, nil), errors.New("no TPMHelper") } ./github.com/canonical/go-tpm2/policyutil/walker.go0000664000000000000000000001453100000000000017374 0ustar00// Copyright 2023 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package policyutil import ( "errors" "fmt" "github.com/canonical/go-tpm2" ) var errTreeWalkerSkipBranch = errors.New("") type treeWalkerCompleteFullPathRunner struct { walker *treeWalker depth int branchCtx treeWalkerBranchContext } func (treeWalkerCompleteFullPathRunner) name() string { return "complete full path" } func (r treeWalkerCompleteFullPathRunner) run(_ policyRunner) error { if r.walker.depth != r.depth { return nil } return r.branchCtx.completeFullPath() } type treeWalkerPolicyAuthorizeRunner struct { keySign *tpm2.Public policyRef tpm2.Nonce } func (r *treeWalkerPolicyAuthorizeRunner) name() string { return "TPM2_PolicyAuthorize assertion" } func (r *treeWalkerPolicyAuthorizeRunner) run(runner policyRunner) error { return runner.session().PolicyAuthorize(nil, r.policyRef, r.keySign.Name(), nil) } // treeWalkerBranchContext allows the caller to associate context with // a branch. type treeWalkerBranchContext interface { session() policySession // beginBranchNode is called when a new branch node is encountered. beginBranchNode() (treeWalkerBranchNodeContext, error) // completeFullPath is called when there are no more elements in // this path. This is only called on the last branch of a path. completeFullPath() error } // treeWalkerBranchNodeContext allows the caller to associate context // with a branch node. type treeWalkerBranchNodeContext interface { // beginBranch is called when entering a new branch. beginBranch(name string) (treeWalkerBranchContext, error) } // treeWalker walks every path of elements in a policy, or from a single branch node. type treeWalker struct { policyTickets nullTickets policyResources policyResources rootBranchNodeCtx treeWalkerBranchNodeContext currentPath policyBranchPath branchCtx treeWalkerBranchContext depth int remaining []policyElementRunner } func newTreeWalker(resources policyResources, rootBranchNodeCtx treeWalkerBranchNodeContext) *treeWalker { return &treeWalker{ policyResources: resources, rootBranchNodeCtx: rootBranchNodeCtx, } } func (w *treeWalker) walkBranch(branchNodeCtx treeWalkerBranchNodeContext, index int, branch *policyBranch, remaining []policyElementRunner) error { name := branch.name() branchCtx, err := branchNodeCtx.beginBranch(name) if err != nil { if err == errTreeWalkerSkipBranch { return nil } return fmt.Errorf("cannot begin branch: %w", err) } origBranchCtx := w.branchCtx origPath := w.currentPath defer func() { w.branchCtx = origBranchCtx w.currentPath = origPath w.depth-- }() w.branchCtx = branchCtx w.currentPath = w.currentPath.Concat(name) w.depth++ var elements []policyElementRunner for _, element := range branch.Policy { elements = append(elements, element.runner()) } remaining = append(remaining, &treeWalkerCompleteFullPathRunner{walker: w, depth: w.depth, branchCtx: branchCtx}) return w.runInternal(append(elements, remaining...)) } func (w *treeWalker) session() policySession { return w.branchCtx.session() } func (w *treeWalker) tickets() policyTickets { return &w.policyTickets } func (w *treeWalker) resources() policyResources { return w.policyResources } func (r *treeWalker) authResourceName() tpm2.Name { return nil } func (w *treeWalker) loadExternal(public *tpm2.Public) (ResourceContext, error) { // the handle is not relevant here resource := tpm2.NewResourceContext(0x80000000, public.Name()) return newResourceContext(resource, nil), nil } func (w *treeWalker) cpHash(cpHash *policyCpHashElement) error { return nil } func (w *treeWalker) nameHash(nameHash *policyNameHashElement) error { return nil } func (w *treeWalker) authorize(auth ResourceContext, askForPolicy bool, commandParams *authorizationCommandParams, prefer tpm2.SessionType) (SessionContext, error) { return new(mockSessionContext), nil } func (w *treeWalker) runBranch(branches policyBranches) (int, error) { if len(branches) == 0 { return 0, errors.New("branch node with no branches") } remaining := w.remaining w.remaining = nil branchNodeCtx, err := w.branchCtx.beginBranchNode() if err != nil { return 0, fmt.Errorf("cannot begin branch node: %w", err) } for i, branch := range branches { if err := w.walkBranch(branchNodeCtx, i, branch, remaining); err != nil { return 0, fmt.Errorf("cannot walk branch %d: %w", i, err) } } return 0, nil } func (w *treeWalker) runAuthorizedPolicy(keySign *tpm2.Public, policyRef tpm2.Nonce, policies []*authorizedPolicy) (tpm2.Digest, *tpm2.TkVerified, error) { remaining := w.remaining w.remaining = nil remaining = append([]policyElementRunner{&treeWalkerPolicyAuthorizeRunner{ keySign: keySign, policyRef: policyRef, }}, remaining...) branchNodeCtx, err := w.branchCtx.beginBranchNode() if err != nil { return nil, nil, fmt.Errorf("cannot begin authorized policy node: %w", err) } if len(policies) > 0 { for i, policy := range policies { if err := w.walkBranch(branchNodeCtx, i, &policy.policyBranch, remaining); err != nil { return nil, nil, fmt.Errorf("cannot walk policy: %w", err) } } } else { if err := w.walkBranch(branchNodeCtx, 0, &policyBranch{Name: policyBranchName(fmt.Sprintf("", keySign.Name(), policyRef))}, remaining); err != nil { return nil, nil, fmt.Errorf("cannot walk missing policy: %w", err) } } return nil, nil, nil } func (r *treeWalker) notifyPolicyPCRDigest() error { return nil } func (w *treeWalker) runInternal(elements []policyElementRunner) error { w.remaining = elements for len(w.remaining) > 0 { element := w.remaining[0] w.remaining = w.remaining[1:] if err := element.run(w); err != nil { return makePolicyError(err, w.currentPath, element.name()) } } return nil } func (w *treeWalker) run(elements policyElements) error { w.currentPath = "" w.depth = 0 rootBranchCtx, err := w.rootBranchNodeCtx.beginBranch("") if err != nil { return err } w.branchCtx = rootBranchCtx defer func() { w.branchCtx = nil }() var elementsCopy []policyElementRunner for _, element := range elements { elementsCopy = append(elementsCopy, element.runner()) } elementsCopy = append(elementsCopy, &treeWalkerCompleteFullPathRunner{walker: w, depth: w.depth, branchCtx: rootBranchCtx}) return w.runInternal(elementsCopy) } ./github.com/canonical/go-tpm2/ppi/0000775000000000000000000000000000000000000014147 5ustar00./github.com/canonical/go-tpm2/ppi/ppi.go0000664000000000000000000004022000000000000015264 0ustar00// Copyright 2023 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. /* Package ppi provides a way of interacting with the TCG PC Client Physical Presence Interface */ package ppi import ( "errors" "fmt" "strconv" "github.com/canonical/go-tpm2" ) var ( // ErrOperationUnsupported indicates that the requested physical presence // operation is unsupported. ErrOperationUnsupported = errors.New("the requested PPI operation is unsupported") // ErrOperationFailed indicates that the requested physical presence // operation failed. ErrOperationFailed = errors.New("the PPI operation failed") // ErrPermission indicates that the requested physical presence operation // cannot be performed because of insufficient permissions. ErrPermission = errors.New("insufficient permissions to perform PPI operation") ) // OperationError represents an error associated with a PPI operation. type OperationError uint32 func (e OperationError) Error() string { switch { case e == 0xfffffff0: return "user abort" case e == 0xfffffff1: return "BIOS failure" case e > 0 && e < 0x1000: return fmt.Sprintf("TPM error: %#x", e) case e == 0: return "success" default: return fmt.Sprintf("%#x", e) } } // OperationId corresponds to a physical presence operation. type OperationId uint32 const ( NoOperation OperationId = 0 // OperationEnableTPM corresponds to the Enable operation. OperationEnableTPM OperationId = 1 // OperationDisableTPM corresponds to the Enable operation. OperationDisableTPM OperationId = 2 // OperationClearTPM corresponds to the Clear operation. OperationClearTPM OperationId = 5 // OperationEnableAndClearTPM corresponds to the Enable + Clear operation for TPM2 devices, or // the Clear + Enable + Activate operation for TPM1.2 devices. OperationEnableAndClearTPM OperationId = 14 // OperationSetPPRequiredForClearTPM corresponds to the SetPPRequiredForClear_True operation // for TPM2 devices, or the SetNoPPIClear_False for TPM1.2 devices. OperationSetPPRequiredForClearTPM OperationId = 17 // OperationClearPPRequiredForClearTPM corresponds to the SetPPRequiredForClear_False // operation for TPM2 devices, or the SetNoPPIClear_True for TPM1.2 devices. OperationClearPPRequiredForClearTPM OperationId = 18 // OperationSetPCRBanks corresponds to the SetPCRBanks operation for TPM2 devices. OperationSetPCRBanks OperationId = 23 // OperationChangeEPS corresponds to the ChangeEPS operation for TPM2 devices. OperationChangeEPS OperationId = 24 // OperationClearPPRequiredForChangePCRs corresponds to the SetPPRequiredForChangePCRs_False // operation for TPM2 devices. OperationClearPPRequiredForChangePCRs OperationId = 25 // OperationSetPPRequiredForChangePCRs corresponds to the SetPPRequiredForChangePCRs_True // operation for TPM2 devices. OperationSetPPRequiredForChangePCRs OperationId = 26 // OperationClearPPRequiredForEnableTPM corresponds to the SetPPRequiredForTurnOn_False // operation for TPM2 devices. OperationClearPPRequiredForEnableTPM OperationId = 27 // OperationSetPPRequiredForEnableTPM corresponds to the SetPPRequiredForTurnOn_True // operation for TPM2 devices. OperationSetPPRequiredForEnableTPM OperationId = 28 // OperationClearPPRequiredForDisableTPM corresponds to the SetPPRequiredForTurnOff_False // operation for TPM2 devices. OperationClearPPRequiredForDisableTPM OperationId = 29 // OperationSetPPRequiredForDisableTPM corresponds to the SetPPRequiredForTurnOff_True // operation for TPM2 devices. OperationSetPPRequiredForDisableTPM OperationId = 30 // OperationClearPPRequiredForChangeEPS corresponds to the SetPPRequiredForChangeEPS_False // operation for TPM2 devices. OperationClearPPRequiredForChangeEPS OperationId = 31 // OperationSetPPRequiredForChangeEPS corresponds to the SetPPRequiredForChangeEPS_True // operation for TPM2 devices. OperationSetPPRequiredForChangeEPS OperationId = 32 // OperationLogAllDigests corresponds to the LogAllDigests operation for TPM2 devices. OperationLogAllDigests = 33 // OperationDisableEndorsementEnableStorageHierarchy corresponds to the // DisableEndorsementEnableStorageHierarchy operation for TPM2 devices. OperationDisableEndorsementEnableStorageHierarchy = 34 //OperationEnableBlockSIDFunc = 96 //OperationDisableBlockSIDFunc = 97 //OperationSetPPRequiredForEnableBlockSIDFuncTrue = 98 //OperationSetPPRequiredForEnableBlockSIDFuncFalse = 99 //OperationSetPPRequiredForDisableBlockSIDFuncTrue = 100 //OperationSetPPRequiredForDisableBlockSIDFuncFalse = 101 ) type ppControl struct { enable OperationId disable OperationId } var ppControlMap = map[OperationId]ppControl{ OperationEnableTPM: ppControl{ enable: OperationSetPPRequiredForEnableTPM, disable: OperationClearPPRequiredForEnableTPM}, OperationDisableTPM: ppControl{ enable: OperationSetPPRequiredForDisableTPM, disable: OperationClearPPRequiredForDisableTPM}, OperationClearTPM: ppControl{ enable: OperationSetPPRequiredForClearTPM, disable: OperationClearPPRequiredForClearTPM}, OperationSetPCRBanks: ppControl{ enable: OperationSetPPRequiredForChangePCRs, disable: OperationClearPPRequiredForChangePCRs}, OperationChangeEPS: ppControl{ enable: OperationSetPPRequiredForChangeEPS, disable: OperationClearPPRequiredForChangeEPS}} // ClearPPRequiredOperationId returns the operation ID used to disable the physical presence // requirement for this operation. If there isn't a corresponding operation for this, // NoOperation will be returned. func (op OperationId) ClearPPRequiredOperationId() OperationId { control, exists := ppControlMap[op] if !exists { return NoOperation } return control.disable } // SetPPRequiredOperationId returns the operation ID used to enable the physical presence // requirement for this operation. If there isn't a corresponding operation for this, // NoOperation will be returned. func (op OperationId) SetPPRequiredOperationId() OperationId { control, exists := ppControlMap[op] if !exists { return NoOperation } return control.enable } // OperationStatus indicates the status of a physical presence operation. type OperationStatus uint32 func (s OperationStatus) String() string { switch s { case OperationNotImplemented: return "Not implemented" case OperationFirmwareOnly: return "BIOS only" case OperationBlockedByFirmwareConfig: return "Blocked for OS by BIOS" case OperationPPRequired: return "User required" case OperationPPNotRequired: return "User not required" default: return "invalid operation status: " + strconv.Itoa(int(s)) } } const ( // OperationNotImplemented indicates that an operation is not implemented. OperationNotImplemented OperationStatus = 0 // OperationFirmwareOnly indicates that an operation is supported but it // cannot be requested from the OS. OperationFirmwareOnly OperationStatus = 1 // OperationBlockedByFirmwareConfig indicates that an operation is supported // but it cannot be requested from the OS because the current firmware settings // don't permit this. OperationBlockedByFirmwareConfig OperationStatus = 2 // OperationPPRequired indicates that an operation can be requested from the // OS but the operation requires approval from a physically present user. OperationPPRequired OperationStatus = 3 // OperationPPNotRequired indicates that an operation can be requested from // the OS without approval from a physically present user. OperationPPNotRequired OperationStatus = 4 ) // StateTransitionAction describes the action required to transition to the pre-OS // environment in order for the pending physical presence operation request to be executed. type StateTransitionAction uint32 func (a StateTransitionAction) String() string { switch a { case StateTransitionNoAction: return "None" case StateTransitionShutdownRequired: return "Shutdown" case StateTransitionRebootRequired: return "Reboot" case StateTransitionActionOSVendorSpecific: return "OS Vendor-specific" default: return "invalid state transition action: " + strconv.Itoa(int(a)) } } const ( // StateTransitionNoAction indicates that no action is required. StateTransitionNoAction StateTransitionAction = 0 // StateTransitionShutdownRequired indicates that the OS must shut down // the machine in order to execute a pending operation. StateTransitionShutdownRequired StateTransitionAction = 1 // StateTransitionRebootRequired indicates that the OS must perform a warm // reboot of the machine in order to execute a pending operation. StateTransitionRebootRequired StateTransitionAction = 2 // StateTransitionActionOSVendorSpecific indicates that an OS-specific // action can take place. StateTransitionActionOSVendorSpecific StateTransitionAction = 3 ) // Version indicates the version of the physical presence interface. type Version struct { Major, Minor uint } // ParseVersion parses the supplied physical presence interface version string. func ParseVersion(str string) (Version, error) { var version Version if _, err := fmt.Sscanf(str, "%d.%d", &version.Major, &version.Minor); err != nil { return Version{}, err } return version, nil } // Compare compares the supplied version with this version. If they are both // equal, then 0 is returned. If v < other, then -1 is returned. If v > other, // then 1 is returned. func (v Version) Compare(other Version) int { switch { case v == other: return 0 case v.Major < other.Major: return -1 case v.Major > other.Major: return 1 case v.Minor < other.Minor: return -1 case v.Minor > other.Minor: return 1 } panic("not reached") } // String implements [fmt.Stringer]. func (v Version) String() string { return fmt.Sprintf("%d.%d", v.Major, v.Minor) } var ( Version10 = Version{Major: 1, Minor: 0} Version11 = Version{Major: 1, Minor: 1} Version12 = Version{Major: 1, Minor: 2} Version13 = Version{Major: 1, Minor: 3} Version14 = Version{Major: 1, Minor: 4} ) // OperationResponse provides the response of the last operation executed by the pre-OS // environment. type OperationResponse struct { Operation OperationId Err error // Will be set if the operation failed. } // HashAlgorithms is a bit field of digest algorithms. type HashAlgorithms uint32 // MakeHashAlgorithms coverts the supplied list of digest algorithms into a bit field. func MakeHashAlgorithms(algs ...tpm2.HashAlgorithmId) HashAlgorithms { var bits HashAlgorithms for _, alg := range algs { switch alg { case tpm2.HashAlgorithmSHA1: bits |= HashAlgorithmSHA1 case tpm2.HashAlgorithmSHA256: bits |= HashAlgorithmSHA256 case tpm2.HashAlgorithmSHA384: bits |= HashAlgorithmSHA384 case tpm2.HashAlgorithmSHA512: bits |= HashAlgorithmSHA512 case tpm2.HashAlgorithmSHA3_256: bits |= HashAlgorithmSHA3_256 case tpm2.HashAlgorithmSHA3_384: bits |= HashAlgorithmSHA3_384 case tpm2.HashAlgorithmSHA3_512: bits |= HashAlgorithmSHA3_512 } } return bits } const ( HashAlgorithmSHA1 HashAlgorithms = 1 << iota HashAlgorithmSHA256 HashAlgorithmSHA384 HashAlgorithmSHA512 HashAlgorithmSM3_256 HashAlgorithmSHA3_256 HashAlgorithmSHA3_384 HashAlgorithmSHA3_512 ) // Type descibes the type of PPI implementation. type Type int const ( ACPI Type = iota + 1 // ACPI PPI implementation EFI // EFI PPI implementation ) // String implements [fmt.Stringer]. func (t Type) String() string { switch t { case ACPI: return "ACPI" case EFI: return "EFI" default: return fmt.Sprintf("invalid Type (%d)", t) } } // PPI provides a way to interact with the physical presence interface associated with a TPM. type PPI interface { Type() Type Version() Version // StateTransitionAction returns the action required to transition the device to the pre-OS // environment in order to complete the pending physical presence operation request. StateTransitionAction() (StateTransitionAction, error) // OperationStatus returns the status of the specified operation. OperationStatus(op OperationId) (OperationStatus, error) // EnableTPM requests that the TPM be enabled by the platform firmware by submitting // the OperationEnableTPM operation. // For TPM1.2 devices, the TPM is enabled by executing the TPM_PhysicalEnable command. // For TPM2 devices, the TPM is enabled by not disabling the storage and endorsement hierarchies // with TPM2_HierarchyControl after TPM2_Startup. // The caller needs to perform the action described by [PPI.StateTransitionAction] in // order to complete the request. EnableTPM() error // DisableTPM requests that the TPM be disabled by the platform firmware by submitting // the OperationDisableTPM operation. // For TPM1.2 devices, the TPM is disabled by executing the TPM_PhysicalDisable command. // For TPM2 devices, the TPM is disabled by disabling the storage and endorsement hierarchies // with TPM2_HierarchyControl after TPM2_Startup. // The caller needs to perform the action described by [PPI.StateTransitionAction] in // order to complete the request. DisableTPM() error // ClearTPM requests that the TPM is cleared by the platform firmware by submitting // the OperationClearTPM operation. // The caller needs to perform the action described by [PPI.StateTransitionAction] in // order to complete the request. ClearTPM() error // EnableAndClearTPM requests that the TPM is enabled and cleared by the platform firmware // by submitting the OperationEnableAndClearTPM operation. // For TPM1.2 devices, this also activates the device with the TPM_PhysicalSetDeactivated // command. // The caller needs to perform the action described by [PPI.StateTransitionAction] in // order to complete the request. EnableAndClearTPM() error // SetPCRBanks requests that the PCR banks associated with the specified algorithms are enabled // by the platform firmware, by submitting the OperationSetPCRBanks operation. This is only // implemented for TPM2 devices. // The caller needs to perform the action described by [PPI.StateTransitionAction] in // order to complete the request. SetPCRBanks(algs ...tpm2.HashAlgorithmId) error // ChangeEPS requests that the TPM's endorsement primary seed is changed by the platform firmware // by submitting the OperationChangeEPS operation. This is only implemented for TPM2 devices. // The caller needs to perform the action described by [PPI.StateTransitionAction] in // order to complete the request. ChangeEPS() error // LogAllDigests tells the platform firmware to add all supported digest algorithms to the TCG // log on the next reboot (and only the next reboot), by submitting the OperationLogAllDigests // operation. LogAllDigests() error // DisableEndorsementAndEnableStorageHierarchy requests that the TPM's endorsement hierarchy // is disabled and the storage hierarchy is enabled by platform firmware, by submitting the // OperationDisableEndorsementAndEnableStorageHierarchy operation. This is only implemented // for TPM2 devices. The endorsement hierarchy is disabled with TPM2_HierarchyControl after // TPM2_Startup. // The caller needs to perform the action described by [PPI.StateTransitionAction] in // order to complete the request. DisableEndorsementAndEnableStorageHierarchy() error // SetPPRequiredForOperation requests that approval from a physically present user should be // required for the specified operation, by submitting the operation associated with the // return value of OperationId.SetPPRequiredOperationId for the specified operation. // The caller needs to perform the action described by [PPI.StateTransitionAction] in // order to complete the request. SetPPRequiredForOperation(op OperationId) error // ClearPPRequiredForOperation requests that approval from a physically present user should not be // required for the specified operation, by submitting the operation associated with the // return value of OperationId.ClearPPRequiredOperationId for the specified operation. // The caller needs to perform the action described by [PPI.StateTransitionAction] in // order to complete the request. ClearPPRequiredForOperation(op OperationId) error // OperationResponse returns the response to the previously executed operation from the pre-OS // environment. OperationResponse() (*OperationResponse, error) } ./github.com/canonical/go-tpm2/resources.go0000664000000000000000000011316200000000000015724 0ustar00// Copyright 2019 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package tpm2 import ( "bytes" "crypto" _ "crypto/sha256" "errors" "fmt" "io" "reflect" "github.com/canonical/go-tpm2/mu" ) // HandleContext corresponds to an entity that resides on the TPM. Implementations of HandleContext // maintain some host-side state in order to be able to participate in sessions. They are // invalidated when used in a command that results in the entity being flushed or evicted from the // TPM. Once invalidated, they can no longer be used. type HandleContext interface { // Handle returns the handle of the corresponding entity on the TPM. If Dispose has been called // then this will return HandleUnassigned. Handle() Handle Name() Name // The name of the entity. This will be empty if there isn't one or Dispose has been called. SerializeToBytes() []byte // Return a byte slice containing the serialized form of this HandleContext SerializeToWriter(io.Writer) error // Write the serialized form of this HandleContext to the supplied io.Writer Dispose() // Called when the corresponding resource has been flushed or evicted from the TPM } // SessionContextParams corresponds to the parameters of a session. type SessionContextParams struct { HashAlg HashAlgorithmId // The session's digest algorithm IsBound bool // Whether the session is bound. BoundEntity Name // The bound entity Symmetric SymDef // The session's symmetric algorithm SessionKey []byte // The session key } // SessionContextState corresponds to the state of a session. type SessionContextState struct { NonceTPM Nonce // The most recent TPM nonce value IsAudit bool // Whether the session is currently an audit session IsExclusive bool // Whether the session is currently an exclusive audit session NeedsPassword bool // Whether a policy session includes the TPM2_PolicyPassword assertion NeedsAuthValue bool // Whether a policy session includes the TPM2_PolicyAuthValue assertion } // SessionContext is a HandleContext that corresponds to a session on the TPM. type SessionContext interface { HandleContext // Params returns a copy of the session parameters. This will return a default // value (with HashAlg == HashAlgorithmNull) if the context was created via // NewLimitedHandleContext or HandleContext.Dispose was called. Params() SessionContextParams // State provides access to read and modify the session state. This will return // nil if the context was created via NewLimitedHandleContext or // HandleContext.Dispose was called. State() *SessionContextState // Deprecated: Use Params HashAlg() HashAlgorithmId // Deprecated: Use State NonceTPM() Nonce // Deprecated: Use State IsAudit() bool // Deprecated: Use State IsExclusive() bool Attrs() SessionAttributes // The attributes associated with this session SetAttrs(attrs SessionAttributes) // Set the attributes that will be used for this SessionContext WithAttrs(attrs SessionAttributes) SessionContext // Return a duplicate of this SessionContext with the specified attributes // IncludeAttrs returns a duplicate of this SessionContext and its attributes with the specified attributes included. IncludeAttrs(attrs SessionAttributes) SessionContext // ExcludeAttrs returns a duplicate of this SessionContext and its attributes with the specified attributes excluded. ExcludeAttrs(attrs SessionAttributes) SessionContext } // ResourceContext is a HandleContext that corresponds to a non-session entity on the TPM. type ResourceContext interface { HandleContext // AuthValue returns the authorization value previously set by SetAuthValue. AuthValue() []byte // SetAuthValue sets the authorization value that will be used in authorization roles where // knowledge of the authorization value is required. Functions that create resources on the TPM // and return a ResourceContext will set this automatically, else it will need to be set manually. SetAuthValue([]byte) } // ObjectContext is a ResourceContext that corresponds to an object on the TPM. type ObjectContext interface { ResourceContext // Public is the public area associated with the object. This will return nil // if HandleContext.Dispose was called. Public() *Public } // NVIndexContext is a ResourceContext that corresponds to a NV index. type NVIndexContext interface { ResourceContext // Type returns the type of the index Type() NVType // SetAttr is called when an attribute is set so that the context // can update its name. SetAttr(a NVAttributes) } type sessionContextData struct { Params SessionContextParams State SessionContextState } type handleContextU struct { Object *Public NV *NVPublic Session *sessionContextData } func (d *handleContextU) Select(selector reflect.Value) interface{} { switch selector.Interface().(handleContextType) { case handleContextTypePermanent, handleContextTypeLimitedResource, handleContextTypeLimited: return mu.NilUnionValue case handleContextTypeNVIndex: return &d.NV case handleContextTypeSession: return &d.Session case handleContextTypeObject: return &d.Object default: return nil } } type handleContextType uint8 const ( handleContextTypePermanent handleContextType = 1 // corresponds to permanentContext handleContextTypeNVIndex handleContextType = 2 // corresponds to nvIndexContext handleContextTypeSession handleContextType = 3 // corresponds to sessionContext handleContextTypeObject handleContextType = 4 // corresponds to objectContext // handleContextTypeLimitedResource corresponds to resourceContext. This can represent a // NV index or object for which we have a name but no public area. handleContextTypeLimitedResource handleContextType = 5 // handleContextLimited corresponds to handleContext. This can represent any TPM resource // for which we only have a handle. The name will be set to the handle, which is ok for // permanent resources and sessions, but it means that NV indexes and objects are unsuitable // in any commands that use sessions. handleContextTypeLimited handleContextType = 6 // handleContextTypeDisposed exists to prevent serializing handles where HandleContext.Dispose // has been called. handleContextTypeDisposed handleContextType = 7 ) func handleContextTypeFromHandle(handle Handle) handleContextType { switch handle.Type() { case HandleTypePCR, HandleTypePermanent: return handleContextTypePermanent case HandleTypeNVIndex: return handleContextTypeNVIndex case HandleTypeHMACSession, HandleTypePolicySession: return handleContextTypeSession case HandleTypeTransient, HandleTypePersistent: return handleContextTypeObject default: panic("invalid handle type") } } type handleContext struct { HandleType handleContextType HandleHandle Handle HandleName Name Data *handleContextU disposeFns []func() `tpm2:"ignore"` } func newHandleContext(handle Handle) HandleContext { switch handle.Type() { case HandleTypePCR, HandleTypeNVIndex, HandleTypeHMACSession, HandleTypePolicySession, HandleTypePermanent, HandleTypeTransient, HandleTypePersistent: out := &handleContext{ HandleType: handleContextTypeLimited, HandleHandle: handle, HandleName: mu.MustMarshalToBytes(handle), } out.disposeFns = []func(){out.dispose} return out default: panic("invalid handle type") } } var _ HandleContext = (*handleContext)(nil) func (h *handleContext) Handle() Handle { return h.HandleHandle } func (h *handleContext) Name() Name { return h.HandleName } func (h *handleContext) SerializeToBytes() []byte { data := mu.MustMarshalToBytes(h) hash := crypto.SHA256.New() hash.Write(data) return mu.MustMarshalToBytes(HashAlgorithmSHA256, hash.Sum(nil), data) } func (h *handleContext) SerializeToWriter(w io.Writer) error { data := mu.MustMarshalToBytes(h) hash := crypto.SHA256.New() hash.Write(data) _, err := mu.MarshalToWriter(w, HashAlgorithmSHA256, hash.Sum(nil), data) return err } func (h *handleContext) dispose() { h.HandleType = handleContextTypeDisposed h.HandleHandle = HandleUnassigned h.HandleName = MakeHandleName(HandleUnassigned) h.Data = new(handleContextU) } func (h *handleContext) Dispose() { for _, fn := range h.disposeFns { fn() } } func (h *handleContext) checkValid() error { switch h.HandleType { case handleContextTypePermanent: switch h.HandleHandle.Type() { case HandleTypePCR, HandleTypePermanent: // ok default: return errors.New("unexpected handle type for permanent context") } expectedName := MakeHandleName(h.HandleHandle) if !bytes.Equal(h.HandleName, expectedName) { return errors.New("unexpected name for permanent context") } case handleContextTypeNVIndex: switch h.HandleHandle.Type() { case HandleTypeNVIndex: // ok default: return errors.New("unexpected handle type for NV index context") } if h.Data.NV.NameAlg.Available() { expectedName, err := h.Data.NV.ComputeName() if err != nil { return fmt.Errorf("cannot compute name of public area in NV index context: %w", err) } if !bytes.Equal(h.HandleName, expectedName) { return errors.New("unexpected name for NV index context") } } case handleContextTypeSession: switch h.HandleHandle.Type() { case HandleTypeHMACSession, HandleTypePolicySession: // ok default: return errors.New("unexpected handle type for session context") } expectedName := MakeHandleName(h.HandleHandle) if !bytes.Equal(h.HandleName, expectedName) { return errors.New("unexpected name for session context") } data := h.Data.Session if !data.Params.HashAlg.Available() { return errors.New("session context digest algorithm is not available") } if len(data.Params.SessionKey) > 0 && len(data.Params.SessionKey) != data.Params.HashAlg.Size() { return errors.New("inconsistent digest algorithm and session key length for session context") } switch h.HandleHandle.Type() { case HandleTypeHMACSession: if data.Params.IsBound && len(data.Params.SessionKey) == 0 { return errors.New("inconsistent bind parameters and session key length for HMAC session context") } if data.Params.IsBound && len(data.Params.BoundEntity) == 0 || !data.Params.IsBound && len(data.Params.BoundEntity) > 0 { return errors.New("inconsistent bind parameters for HMAC session context") } if data.State.NeedsPassword || data.State.NeedsAuthValue { return errors.New("invalid policy session auth type for HMAC session context") } case HandleTypePolicySession: if data.Params.IsBound || len(data.Params.BoundEntity) > 0 { return errors.New("invalid bind parameters for policy session context") } if data.State.NeedsPassword && data.State.NeedsAuthValue { return errors.New("inconsistent auth types for policy session context") } default: panic("not reached") } return nil case handleContextTypeObject: switch h.HandleHandle.Type() { case HandleTypeTransient, HandleTypePersistent: // ok default: return errors.New("unexpected handle type for object context") } if h.Data.Object.NameAlg.Available() { expectedName, err := h.Data.Object.ComputeName() if err != nil { return fmt.Errorf("cannot compute name of public area in object context: %w", err) } if !bytes.Equal(h.HandleName, expectedName) { return errors.New("unexpected name for object context") } } case handleContextTypeLimitedResource: switch h.HandleHandle.Type() { case HandleTypeNVIndex, HandleTypeTransient, HandleTypePersistent: // ok default: return errors.New("unexpected handle type for limited resource context") } case handleContextTypeLimited: switch h.HandleHandle.Type() { case HandleTypePCR, HandleTypeNVIndex, HandleTypeHMACSession, HandleTypePolicySession, HandleTypePermanent, HandleTypeTransient, HandleTypePersistent: // ok default: return errors.New("unexpected handle type for limited context") } expectedName := mu.MustMarshalToBytes(h.HandleHandle) if !bytes.Equal(h.HandleName, expectedName) { return errors.New("unexpected name for limited context") } default: panic("not reached") } return nil } type resourceContext struct { handleContext authValue []byte `tpm2:"ignore"` } func newResourceContext(handle Handle, name Name) ResourceContext { switch handle.Type() { case HandleTypePCR, HandleTypeNVIndex, HandleTypePermanent, HandleTypeTransient, HandleTypePersistent: out := &resourceContext{ handleContext: handleContext{ HandleType: handleContextTypeLimitedResource, HandleHandle: handle, HandleName: name, }, } out.disposeFns = []func(){out.handleContext.dispose, out.dispose} return out default: panic("invalid handle type") } } func (r *resourceContext) dispose() { r.authValue = nil } var _ ResourceContext = (*resourceContext)(nil) func (r *resourceContext) SetAuthValue(authValue []byte) { r.authValue = authValue } func (r *resourceContext) AuthValue() []byte { return bytes.TrimRight(r.authValue, "\x00") } type permanentContext struct { resourceContext } func newPermanentContext(handle Handle) *permanentContext { switch handle.Type() { case HandleTypePCR, HandleTypePermanent: return &permanentContext{ resourceContext: resourceContext{ handleContext: handleContext{ HandleType: handleContextTypePermanent, HandleHandle: handle, HandleName: MakeHandleName(handle), }, }, } default: panic("invalid handle type") } } var _ ResourceContext = (*permanentContext)(nil) func nullResource() ResourceContext { return newPermanentContext(HandleNull) } func unassignedResource() ResourceContext { return newPermanentContext(HandleUnassigned) } type objectContext struct { resourceContext } func newObjectContext(handle Handle, name Name, public *Public) *objectContext { switch handle.Type() { case HandleTypeTransient, HandleTypePersistent: if public == nil { panic("nil public area") } out := &objectContext{ resourceContext: resourceContext{ handleContext: handleContext{ HandleType: handleContextTypeObject, HandleHandle: handle, HandleName: name, Data: &handleContextU{Object: public}, }, }, } out.disposeFns = []func(){out.handleContext.dispose, out.dispose} return out default: panic("invalid handle type") } } func (t *TPMContext) newObjectContextFromTPM(context HandleContext, sessions ...SessionContext) (ResourceContext, error) { pub, name, _, err := t.ReadPublic(context, sessions...) if err != nil { return nil, err } if pub.NameAlg.Available() && !pub.compareName(name) { return nil, &InvalidResponseError{CommandReadPublic, errors.New("name and public area returned from TPM don't match")} } return newObjectContext(context.Handle(), name, pub), nil } var _ ObjectContext = (*objectContext)(nil) func (r *objectContext) Public() *Public { return r.Data.Object } type nvIndexContext struct { resourceContext } func newNVIndexContext(handle Handle, name Name, public *NVPublic) *nvIndexContext { switch handle.Type() { case HandleTypeNVIndex: if public == nil { panic("nil public area") } out := &nvIndexContext{ resourceContext: resourceContext{ handleContext: handleContext{ HandleType: handleContextTypeNVIndex, HandleHandle: handle, HandleName: name, Data: &handleContextU{NV: public}, }, }, } out.disposeFns = []func(){out.handleContext.dispose, out.dispose} return out default: panic("invalid handle type") } } func (t *TPMContext) newNVIndexContextFromTPM(context HandleContext, sessions ...SessionContext) (ResourceContext, error) { pub, name, err := t.NVReadPublic(context, sessions...) if err != nil { return nil, err } if pub.NameAlg.Available() && !pub.compareName(name) { return nil, &InvalidResponseError{CommandNVReadPublic, errors.New("name and public area returned from TPM don't match")} } if pub.Index != context.Handle() { return nil, &InvalidResponseError{CommandNVReadPublic, errors.New("unexpected index in public area")} } return newNVIndexContext(context.Handle(), name, pub), nil } var _ NVIndexContext = (*nvIndexContext)(nil) func (r *nvIndexContext) Type() NVType { if r.Data.NV == nil { // This context was disposed return 0 } return r.Data.NV.Attrs.Type() } func (r *nvIndexContext) SetAttr(a NVAttributes) { if r.Data.NV == nil { // This context was disposed return } r.Data.NV.Attrs |= a r.HandleName = r.Data.NV.Name() } type sessionContext struct { *handleContext attrs SessionAttributes `tpm2:"ignore"` } func newSessionContext(handle Handle, data *sessionContextData) *sessionContext { switch handle.Type() { case HandleTypeHMACSession, HandleTypePolicySession: if data == nil { panic("nil session data") } default: if handle != HandlePW { panic("invalid handle type") } } out := &sessionContext{ handleContext: &handleContext{ HandleType: handleContextTypeSession, HandleHandle: handle, HandleName: MakeHandleName(handle), Data: &handleContextU{Session: data}, }, } out.disposeFns = []func(){out.handleContext.dispose} return out } var _ SessionContext = (*sessionContext)(nil) func (r *sessionContext) Params() SessionContextParams { d := r.Data() if d == nil { return SessionContextParams{ HashAlg: HashAlgorithmNull, Symmetric: SymDef{Algorithm: SymAlgorithmNull}, } } return d.Params } func (r *sessionContext) State() *SessionContextState { d := r.Data() if d == nil { return nil } return &d.State } func (r *sessionContext) HashAlg() HashAlgorithmId { return r.Params().HashAlg } func (r *sessionContext) NonceTPM() Nonce { state := r.State() if state == nil { return nil } return state.NonceTPM } func (r *sessionContext) IsAudit() bool { state := r.State() if state == nil { return false } return state.IsAudit } func (r *sessionContext) IsExclusive() bool { state := r.State() if state == nil { return false } return state.IsExclusive } func (r *sessionContext) Attrs() SessionAttributes { attrs := r.attrs if attrs&AttrAuditExclusive > 0 { attrs |= AttrAudit } if attrs&AttrAuditReset > 0 { attrs |= AttrAudit } return attrs } func (r *sessionContext) SetAttrs(attrs SessionAttributes) { r.attrs = attrs } func (r *sessionContext) WithAttrs(attrs SessionAttributes) SessionContext { return &sessionContext{handleContext: r.handleContext, attrs: attrs} } func (r *sessionContext) IncludeAttrs(attrs SessionAttributes) SessionContext { return &sessionContext{handleContext: r.handleContext, attrs: r.attrs | attrs} } func (r *sessionContext) ExcludeAttrs(attrs SessionAttributes) SessionContext { return &sessionContext{handleContext: r.handleContext, attrs: r.attrs &^ attrs} } func (r *sessionContext) Data() *sessionContextData { return r.handleContext.Data.Session } func pwSession() SessionContext { return newSessionContext(HandlePW, &sessionContextData{ Params: SessionContextParams{ HashAlg: HashAlgorithmNull, Symmetric: SymDef{Algorithm: SymAlgorithmNull}, }, }).WithAttrs(AttrContinueSession) } func (t *TPMContext) newResourceContextFromTPM(handle HandleContext, sessions ...SessionContext) (rc ResourceContext, err error) { switch handle.Handle().Type() { case HandleTypeNVIndex: rc, err = t.newNVIndexContextFromTPM(handle, sessions...) case HandleTypeTransient, HandleTypePersistent: rc, err = t.newObjectContextFromTPM(handle, sessions...) default: return nil, errors.New("invalid handle type") } switch { case IsTPMWarning(err, WarningReferenceH0, AnyCommandCode): return nil, &ResourceUnavailableError{handle.Handle(), err} case IsTPMHandleError(err, ErrorHandle, AnyCommandCode, AnyHandleIndex): return nil, &ResourceUnavailableError{handle.Handle(), err} case err != nil: return nil, err } return rc, nil } // NewResourceContext creates and returns a new ResourceContext for the specified handle. It will // execute a command to read the public area from the TPM in order to initialize state that // is maintained on the host side. A *[ResourceUnavailableError] error will be returned if the // specified handle references a resource that doesn't exist. // // The public area and name returned from the TPM are checked for consistency as long as the // corresponding name algorithm is linked into the current binary. // // If any sessions are supplied, the public area is read from the TPM twice. The second time uses // the supplied sessions. // // This function will return an error if handle doesn't correspond to a NV index, transient object // or persistent object. // // If subsequent use of the returned ResourceContext requires knowledge of the authorization value // of the corresponding TPM resource, this should be provided by calling // [ResourceContext].SetAuthValue. // // If the specified handle is an object, the returned context can be type asserted to [ObjectContext]. // If the specified handle is a NV index, the returned context can be type asserted to [NVIndexContext]. func (t *TPMContext) NewResourceContext(handle Handle, sessions ...SessionContext) (ResourceContext, error) { rc, err := t.newResourceContextFromTPM(newHandleContext(handle)) if err != nil { return nil, err } if len(sessions) == 0 { return rc, nil } return t.newResourceContextFromTPM(rc, sessions...) } // CreateResourceContextFromTPM creates and returns a new ResourceContext for the specified handle. // It will execute a command to read the public area from the TPM in order to initialize state that // is maintained on the host side. A *[ResourceUnavailableError] error will be returned if the // specified handle references a resource that doesn't exist. // // The public area and name returned from the TPM are checked for consistency as long as the // corresponding name algorithm is linked into the current binary. // // If any sessions are supplied, the public area is read from the TPM twice. The second time uses // the supplied sessions. // // This function will return an error if handle doesn't correspond to a NV index, transient object // or persistent object. // // If subsequent use of the returned ResourceContext requires knowledge of the authorization value // of the corresponding TPM resource, this should be provided by calling // [ResourceContext].SetAuthValue. // // If the specified handle is an object, the returned context can be type asserted to [ObjectContext]. // If the specified handle is a NV index, the returned context can be type asserted to [NVIndexContext]. // // Deprecated: Use [TPMContext.NewResourceContext] instead. func (t *TPMContext) CreateResourceContextFromTPM(handle Handle, sessions ...SessionContext) (ResourceContext, error) { return t.NewResourceContext(handle, sessions...) } // NewHandleContext creates a new HandleContext for the specified handle. The returned // HandleContext cannot be type asserted to [ResourceContext] or [SessionContext] and can // only be used in commands that don't use sessions, such as [TPMContext.FlushContext], // [TPMContext.ReadPublic] or [TPMContext.NVReadPublic]. // // This function will panic if handle doesn't correspond to a session, transient or // persistent object, or NV index. func NewHandleContext(handle Handle) HandleContext { switch handle.Type() { case HandleTypeNVIndex, HandleTypeHMACSession, HandleTypePolicySession, HandleTypeTransient, HandleTypePersistent: return newHandleContext(handle) default: panic("invalid handle type") } } // NewLimitedHandleContext creates a new HandleContext for the specified handle. The // returned HandleContext cannot be type asserted to [ResourceContext] or [SessionContext] // and can only be used in commands that don't use sessions, such as [TPMContext.FlushContext], // [TPMContext.ReadPublic] or [TPMContext.NVReadPublic]. // // This function will panic if handle doesn't correspond to a session, transient or // persistent object, or NV index. // // Deprecated: use [NewHandleContext]. func NewLimitedHandleContext(handle Handle) HandleContext { return NewHandleContext(handle) } // CreatePartialHandleContext creates a new HandleContext for the specified handle. The // returned HandleContext cannot be type asserted to [ResourceContext] or [SessionContext] // and can only be used in commands that don't use sessions, such as [TPMContext.FlushContext], // [TPMContext.ReadPublic] or [TPMContext.NVReadPublic]. // // This function will panic if handle doesn't correspond to a session, transient or // persistent object, or NV index. // // Deprecated: Use [NewHandleContext]. func CreatePartialHandleContext(handle Handle) HandleContext { return NewLimitedHandleContext(handle) } // GetPermanentContext returns a ResourceContext for the specified permanent handle or PCR handle. // // This function will panic if handle does not correspond to a permanent or PCR handle. // // If subsequent use of the returned ResourceContext requires knowledge of the authorization value // of the corresponding TPM resource, this should be provided by calling // [ResourceContext].SetAuthValue. func (t *TPMContext) GetPermanentContext(handle Handle) ResourceContext { switch handle.Type() { case HandleTypePermanent, HandleTypePCR: if rc, exists := t.permanentResources[handle]; exists { return rc } rc := newPermanentContext(handle) t.permanentResources[handle] = rc return rc default: panic("invalid handle type") } } // OwnerHandleContext returns the ResouceContext corresponding to the owner hiearchy. func (t *TPMContext) OwnerHandleContext() ResourceContext { return t.GetPermanentContext(HandleOwner) } // NulHandleContext returns the ResourceContext corresponding to the null hiearchy. func (t *TPMContext) NullHandleContext() ResourceContext { return t.GetPermanentContext(HandleNull) } // LockoutHandleContext returns the ResourceContext corresponding to the lockout hiearchy. func (t *TPMContext) LockoutHandleContext() ResourceContext { return t.GetPermanentContext(HandleLockout) } // EndorsementHandleContext returns the ResourceContext corresponding to the endorsement hiearchy. func (t *TPMContext) EndorsementHandleContext() ResourceContext { return t.GetPermanentContext(HandleEndorsement) } // PlatformHandleContext returns the ResourceContext corresponding to the platform hiearchy. func (t *TPMContext) PlatformHandleContext() ResourceContext { return t.GetPermanentContext(HandlePlatform) } // PlatformNVHandleContext returns the ResourceContext corresponding to the platform hiearchy. func (t *TPMContext) PlatformNVHandleContext() ResourceContext { return t.GetPermanentContext(HandlePlatformNV) } // PCRHandleContext returns the ResourceContext corresponding to the PCR at the specified index. // It will panic if pcr is not a valid PCR index. func (t *TPMContext) PCRHandleContext(pcr int) ResourceContext { h := Handle(pcr) if h.Type() != HandleTypePCR { panic("invalid PCR index") } return t.GetPermanentContext(h) } // NewHandleContextFromReader returns a new HandleContext created from the serialized data read // from the supplied io.Reader. This should contain data that was previously created by // [HandleContext].SerializeToBytes or [HandleContext].SerializeToWriter. // // If the supplied data corresponds to a session then a [SessionContext] will be returned, else a // [ResourceContext] will be returned. // // If a ResourceContext is returned and subsequent use of it requires knowledge of the // authorization value of the corresponding TPM resource, this should be provided by calling // [ResourceContext].SetAuthValue. func NewHandleContextFromReader(r io.Reader) (HandleContext, error) { var integrityAlg HashAlgorithmId var integrity []byte var b []byte if _, err := mu.UnmarshalFromReader(r, &integrityAlg, &integrity, &b); err != nil { return nil, fmt.Errorf("cannot unpack context blob and checksum: %w", err) } if !integrityAlg.Available() { return nil, errors.New("invalid checksum algorithm") } h := integrityAlg.NewHash() h.Write(b) if !bytes.Equal(h.Sum(nil), integrity) { return nil, errors.New("invalid checksum") } var data *handleContext n, err := mu.UnmarshalFromBytes(b, &data) if err != nil { return nil, fmt.Errorf("cannot unmarshal context data: %w", err) } if n < len(b) { return nil, errors.New("context blob contains trailing bytes") } if err := data.checkValid(); err != nil { return nil, err } switch data.HandleType { case handleContextTypePermanent: return newPermanentContext(data.Handle()), nil case handleContextTypeNVIndex: return newNVIndexContext(data.Handle(), data.Name(), data.Data.NV), nil case handleContextTypeSession: data.Data.Session.State.IsExclusive = false return newSessionContext(data.Handle(), data.Data.Session), nil case handleContextTypeObject: return newObjectContext(data.Handle(), data.Name(), data.Data.Object), nil case handleContextTypeLimitedResource: return newResourceContext(data.Handle(), data.Name()), nil case handleContextTypeLimited: return newHandleContext(data.Handle()), nil default: // this should have been caught earlier panic("not reached") } } // CreateHandleContextFromReader returns a new HandleContext created from the serialized data read // from the supplied io.Reader. This should contain data that was previously created by // [HandleContext].SerializeToBytes or [HandleContext].SerializeToWriter. // // If the supplied data corresponds to a session then a [SessionContext] will be returned, else a // [ResourceContext] will be returned. // // If a ResourceContext is returned and subsequent use of it requires knowledge of the // authorization value of the corresponding TPM resource, this should be provided by calling // [ResourceContext].SetAuthValue. // // Deprecated: Use [NewHandleContextFromReader]. func CreateHandleContextFromReader(r io.Reader) (HandleContext, error) { return NewHandleContextFromReader(r) } // NewHandleContextFromBytes returns a new HandleContext created from the serialized data read // from the supplied byte slice. This should contain data that was previously created by // [HandleContext].SerializeToBytes or [HandleContext].SerializeToWriter. // // If the supplied data corresponds to a session then a [SessionContext] will be returned, else a // [ResourceContext] will be returned. // // If a ResourceContext is returned and subsequent use of it requires knowledge of the // authorization value of the corresponding TPM resource, this should be provided by calling // [ResourceContext].SetAuthValue. func NewHandleContextFromBytes(b []byte) (HandleContext, int, error) { buf := bytes.NewReader(b) rc, err := NewHandleContextFromReader(buf) if err != nil { return nil, 0, err } return rc, len(b) - buf.Len(), nil } // CreateHandleContextFromBytes returns a new HandleContext created from the serialized data read // from the supplied byte slice. This should contain data that was previously created by // [HandleContext].SerializeToBytes or [HandleContext].SerializeToWriter. // // If the supplied data corresponds to a session then a [SessionContext] will be returned, else a // [ResourceContext] will be returned. // // If a ResourceContext is returned and subsequent use of it requires knowledge of the // authorization value of the corresponding TPM resource, this should be provided by calling // [ResourceContext].SetAuthValue. // // Deprecated: Use [NewHandleContextFromBytes]. func CreateHandleContextFromBytes(b []byte) (HandleContext, int, error) { return NewHandleContextFromBytes(b) } // NewResourceContext creates a new ResourceContext with the specified handle and name. The // returned ResourceContext has limited functionality - eg, it cannot bs used in functions that // require knowledge of the public area associated with the resource (such as // [TPMContext.StartAuthSession]), and some NV functions that modify the attributes of an index // will not update its name. It cannot be type asserted to [ObjectContext] or [NVIndexContext]. // // If subsequent use of the returned ResourceContext requires knowledge of the authorization value // of the corresponding TPM resource, this should be provided by calling // [ResourceContext].SetAuthValue. // // This function will panic if handle doesn't correspond to a transient or persistent object, or an // NV index. func NewResourceContext(handle Handle, name Name) ResourceContext { switch handle.Type() { case HandleTypeNVIndex, HandleTypeTransient, HandleTypePersistent: return newResourceContext(handle, name) default: panic("invalid handle type") } } // NewLimitedResourceContext creates a new ResourceContext with the specified handle and name. The // returned ResourceContext has limited functionality - eg, it cannot bs used in functions that // require knowledge of the public area associated with the resource (such as // [TPMContext.StartAuthSession], and some NV functions that modify the attributes of an index // will not update its name. It cannot be type asserted to [ObjectContext] or [NVIndexContext]. // // If subsequent use of the returned ResourceContext requires knowledge of the authorization value // of the corresponding TPM resource, this should be provided by calling // [ResourceContext].SetAuthValue. // // This function will panic if handle doesn't correspond to a transient or persistent object, or an // NV index. // // Deprecated: use [NewResourceContext]. func NewLimitedResourceContext(handle Handle, name Name) ResourceContext { return NewResourceContext(handle, name) } // NewNVIndexResourceContextFromPub returns a new ResourceContext created from the provided // public area. If subsequent use of the returned ResourceContext requires knowledge of the // authorization value of the corresponding TPM resource, this should be provided by calling // [ResourceContext].SetAuthValue. The returned context can be type asserted to // [NVIndexContext]. // // This requires that the associated name algorithm is linked into the current binary. func NewNVIndexResourceContextFromPub(pub *NVPublic) (ResourceContext, error) { if pub.Index.Type() != HandleTypeNVIndex { return nil, errors.New("invalid handle type") } name, err := pub.ComputeName() if err != nil { return nil, fmt.Errorf("cannot compute name from public area: %v", err) } return newNVIndexContext(pub.Index, name, pub), nil } // NewNVIndexResourceContext returns a new ResourceContext created from the provided public area // and associated name. This is useful for creating a ResourceContext for an object that uses a // name algorithm that is not available. If subsequent use of the returned ResourceContext requires // knowledge of the authorization value of the corresponding TPM resource, this should be provided // by calling [ResourceContext].SetAuthValue. The returned context can be type asserted to // [NVIndexContext]. // // This does not check the consistency of the name and public area. // // It will panic if the Index field of the supplied public area has a handle type other than // [HandleTypeNVIndex]. func NewNVIndexResourceContext(pub *NVPublic, name Name) ResourceContext { return newNVIndexContext(pub.Index, name, pub) } // CreateNVIndexResourceContextFromPublic returns a new ResourceContext created from the // provided public area. If subsequent use of the returned ResourceContext requires knowledge // of the authorization value of the corresponding TPM resource, this should be provided by // calling [ResourceContext].SetAuthValue. The returned context can be type asserted to // [NVIndexContext]. // // This requires that the associated name algorithm is linked into the current binary. // // Deprecated: Use [NewNVIndexResourceContextFromPub]. func CreateNVIndexResourceContextFromPublic(pub *NVPublic) (ResourceContext, error) { return NewNVIndexResourceContextFromPub(pub) } // NewObjectResourceContextFromPub returns a new ResourceContext created from the provided // public area. If subsequent use of the returned ResourceContext requires knowledge of the // authorization value of the corresponding TPM resource, this should be provided by calling // [ResourceContext].SetAuthValue. The returned context can be type asserted to // [ObjectContext]. // // This requires that the associated name algorithm is linked into the current binary. func NewObjectResourceContextFromPub(handle Handle, pub *Public) (ResourceContext, error) { switch handle.Type() { case HandleTypeTransient, HandleTypePersistent: name, err := pub.ComputeName() if err != nil { return nil, fmt.Errorf("cannot compute name from public area: %v", err) } return newObjectContext(handle, name, pub), nil default: return nil, errors.New("invalid handle type") } } // NewObjectResourceContext returns a new ResourceContext created from the provided public area and // associated name. This is useful for creating a ResourceContext for an object that uses a name // algorithm that is not available. If subsequent use of the returned ResourceContext requires // knowledge of the authorization value of the corresponding TPM resource, this should be provided // by calling [ResourceContext].SetAuthValue. The returned context can be type asserted to // [ObjectContext]. // // This does not check the consistency of the name and public area. // // This will panic if the handle type is not [HandleTypeTransient] or [HandleTypePersistent]. func NewObjectResourceContext(handle Handle, pub *Public, name Name) ResourceContext { return newObjectContext(handle, name, pub) } // CreateObjectResourceContextFromPub returns a new ResourceContext created from the provided // public area. If subsequent use of the returned ResourceContext requires knowledge of the // authorization value of the corresponding TPM resource, this should be provided by calling // [ResourceContext].SetAuthValue. The returned context can be type asserted to // [ObjectContext]. // // This requires that the associated name algorithm is linked into the current binary. // // Deprecated: Use [NewObjectResourceContextFromPub]. func CreateObjectResourceContextFromPublic(handle Handle, pub *Public) (ResourceContext, error) { return NewObjectResourceContextFromPub(handle, pub) } ./github.com/canonical/go-tpm2/run-tests0000664000000000000000000000007400000000000015247 0ustar00#!/bin/sh -e go test -v -race -p 1 ./... -check.v -args $@ ./github.com/canonical/go-tpm2/strings.go0000664000000000000000000015474200000000000015414 0ustar00// Copyright 2019 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package tpm2 import ( "fmt" "strings" ) type stringerFormatter interface { fmt.Stringer fmt.Formatter } type removeFormatterImpl[T stringerFormatter] struct { stringer T } func (r removeFormatterImpl[S]) String() string { return r.stringer.String() } func removeFormatter[T stringerFormatter](val T) fmt.Stringer { return removeFormatterImpl[T]{stringer: val} } // String implements [fmt.Stringer]. func (a AlgorithmAttributes) String() string { if a == 0 { return "" } var ( flags []string reserved AlgorithmAttributes current AlgorithmAttributes ) for current = 1; current != 0; current <<= 1 { if a¤t == 0 { continue } switch current { case AttrAsymmetric: flags = append(flags, "asymmetric") case AttrSymmetric: flags = append(flags, "symmetric") case AttrHash: flags = append(flags, "hash") case AttrObject: flags = append(flags, "object") case AttrSigning: flags = append(flags, "signing") case AttrEncrypting: flags = append(flags, "encrypting") case AttrMethod: flags = append(flags, "method") default: reserved |= current } current <<= 1 if current == 0 { break } } if reserved != 0 { flags = append(flags, fmt.Sprintf("", reserved)) } return strings.Join(flags, " | ") } // Format implements [fmt.Formatter]. It prints the return of the [fmt.Stringer] // implementation only for the 's', 'v' and 'q' verbs. The 'x' and 'X' verbs will // print the hexadecimal representation of the underlying value rather than the // representation of the string. func (a AlgorithmAttributes) Format(s fmt.State, f rune) { switch f { case 's', 'v', 'q': fmt.Fprintf(s, formatString(s, f), removeFormatter(a)) default: fmt.Fprintf(s, formatString(s, f), uint32(a)) } } // String implements [fmt.Stringer]. func (a ObjectAttributes) String() string { if a == 0 { return "" } var ( flags []string reserved ObjectAttributes current ObjectAttributes ) for current = 1; current != 0; current <<= 1 { if a¤t == 0 { continue } switch current { case AttrFixedTPM: flags = append(flags, "fixedTPM") case AttrStClear: flags = append(flags, "stClear") case AttrFixedParent: flags = append(flags, "fixedParent") case AttrSensitiveDataOrigin: flags = append(flags, "sensitiveDataOrigin") case AttrUserWithAuth: flags = append(flags, "userWithAuth") case AttrAdminWithPolicy: flags = append(flags, "adminWithPolicy") case AttrNoDA: flags = append(flags, "noDA") case AttrEncryptedDuplication: flags = append(flags, "encryptedDuplication") case AttrRestricted: flags = append(flags, "restricted") case AttrDecrypt: flags = append(flags, "decrypt") case AttrSign: flags = append(flags, "sign") default: reserved |= current } } if reserved != 0 { flags = append(flags, fmt.Sprintf("", reserved)) } return strings.Join(flags, " | ") } // Format implements [fmt.Formatter]. It prints the return of the [fmt.Stringer] // implementation only for the 's', 'v' and 'q' verbs. The 'x' and 'X' verbs will // print the hexadecimal representation of the underlying value rather than the // representation of the string. func (a ObjectAttributes) Format(s fmt.State, f rune) { switch f { case 's', 'v', 'q': fmt.Fprintf(s, formatString(s, f), removeFormatter(a)) default: fmt.Fprintf(s, formatString(s, f), uint32(a)) } } // String implements [fmt.Stringer]. func (l Locality) String() string { if l == 0 { return "" } if l.IsExtended() { return fmt.Sprintf("%#02x", uint8(l)) } var ( flags []string current Locality ) for current = 1; current <= 1<<5; current <<= 1 { if l¤t == 0 { continue } switch l { case LocalityZero: flags = append(flags, "TPM_LOC_ZERO") case LocalityOne: flags = append(flags, "TPM_LOC_ONE") case LocalityTwo: flags = append(flags, "TPM_LOC_TWO") case LocalityThree: flags = append(flags, "TPM_LOC_THREE") case LocalityFour: flags = append(flags, "TPM_LOC_FOUR") } } return strings.Join(flags, " | ") } // Format implements [fmt.Formatter]. It prints the return of the [fmt.Stringer] // implementation only for the 's', 'v' and 'q' verbs. The 'x' and 'X' verbs will // print the hexadecimal representation of the underlying value rather than the // representation of the string. func (l Locality) Format(s fmt.State, f rune) { switch f { case 's', 'v', 'q': fmt.Fprintf(s, formatString(s, f), removeFormatter(l)) default: fmt.Fprintf(s, formatString(s, f), uint8(l)) } } // String implements [fmt.Stringer]. func (a PermanentAttributes) String() string { if a == 0 { return "" } var ( flags []string reserved PermanentAttributes current PermanentAttributes ) for current = 1; current != 0; current <<= 1 { if a¤t == 0 { continue } switch current { case AttrOwnerAuthSet: flags = append(flags, "ownerAuthSet") case AttrEndorsementAuthSet: flags = append(flags, "endorsementAuthSet") case AttrLockoutAuthSet: flags = append(flags, "lockoutAuthSet") case AttrDisableClear: flags = append(flags, "disableClear") case AttrInLockout: flags = append(flags, "inLockout") case AttrTPMGeneratedEPS: flags = append(flags, "tpmGeneratedEPS") default: reserved |= current } } if reserved != 0 { flags = append(flags, fmt.Sprintf("", reserved)) } return strings.Join(flags, " | ") } // Format implements [fmt.Formatter]. It prints the return of the [fmt.Stringer] // implementation only for the 's', 'v' and 'q' verbs. The 'x' and 'X' verbs will // print the hexadecimal representation of the underlying value rather than the // representation of the string. func (a PermanentAttributes) Format(s fmt.State, f rune) { switch f { case 's', 'v', 'q': fmt.Fprintf(s, formatString(s, f), removeFormatter(a)) default: fmt.Fprintf(s, formatString(s, f), uint32(a)) } } // String implements [fmt.Stringer]. func (a StartupClearAttributes) String() string { if a == 0 { return "" } var ( flags []string reserved StartupClearAttributes current StartupClearAttributes ) for current = 1; current != 0; current <<= 1 { if a¤t == 0 { continue } switch current { case AttrPhEnable: flags = append(flags, "phEnable") case AttrShEnable: flags = append(flags, "shEnable") case AttrEhEnable: flags = append(flags, "ehEnable") case AttrPhEnableNV: flags = append(flags, "phEnableNV") case AttrOrderly: flags = append(flags, "orderly") default: reserved |= current } } if reserved != 0 { flags = append(flags, fmt.Sprintf("", reserved)) } return strings.Join(flags, " | ") } // Format implements [fmt.Formatter]. It prints the return of the [fmt.Stringer] // implementation only for the 's', 'v' and 'q' verbs. The 'x' and 'X' verbs will // print the hexadecimal representation of the underlying value rather than the // representation of the string. func (a StartupClearAttributes) Format(s fmt.State, f rune) { switch f { case 's', 'v', 'q': fmt.Fprintf(s, formatString(s, f), removeFormatter(a)) default: fmt.Fprintf(s, formatString(s, f), uint32(a)) } } // String implements [fmt.Stringer]. func (a MemoryAttributes) String() string { if a == 0 { return "" } var ( flags []string reserved MemoryAttributes current MemoryAttributes ) for current = 1; current != 0; current <<= 1 { if a¤t == 0 { continue } switch current { case AttrSharedRAM: flags = append(flags, "sharedRAM") case AttrSharedNV: flags = append(flags, "sharedNV") case AttrObjectCopiedToRAM: flags = append(flags, "objectCopiedToRam") } } if reserved != 0 { flags = append(flags, fmt.Sprintf("", reserved)) } return strings.Join(flags, " | ") } // Format implements [fmt.Formatter]. It prints the return of the [fmt.Stringer] // implementation only for the 's', 'v' and 'q' verbs. The 'x' and 'X' verbs will // print the hexadecimal representation of the underlying value rather than the // representation of the string. func (a MemoryAttributes) Format(s fmt.State, f rune) { switch f { case 's', 'v', 'q': fmt.Fprintf(s, formatString(s, f), removeFormatter(a)) default: fmt.Fprintf(s, formatString(s, f), uint32(a)) } } // String implements [fmt.Stringer]. func (a CommandAttributes) String() string { var ( flags []string reserved CommandAttributes current CommandAttributes cHandles uint8 ) flags = append(flags, fmt.Sprintf("commandIndex:%#04x", a&0xffff)) for current = AttrNV; current != 0; current <<= 1 { if current&AttrCHandles != 0 { cHandles |= uint8(current >> attrCHandlesShift) if (current<<1)&AttrCHandles == 0 { flags = append(flags, fmt.Sprintf("cHandles:%d", cHandles)) } continue } if a¤t == 0 { continue } switch current { case AttrNV: flags = append(flags, "nv") case AttrExtensive: flags = append(flags, "extensive") case AttrFlushed: flags = append(flags, "flushed") case AttrRHandle: flags = append(flags, "rHandle") case AttrV: flags = append(flags, "v") default: reserved |= current } } if reserved != 0 { flags = append(flags, fmt.Sprintf("", reserved)) } return strings.Join(flags, " | ") } // Format implements [fmt.Formatter]. It prints the return of the [fmt.Stringer] // implementation only for the 's', 'v' and 'q' verbs. The 'x' and 'X' verbs will // print the hexadecimal representation of the underlying value rather than the // representation of the string. func (a CommandAttributes) Format(s fmt.State, f rune) { switch f { case 's', 'v', 'q': fmt.Fprintf(s, formatString(s, f), removeFormatter(a)) default: fmt.Fprintf(s, formatString(s, f), uint32(a)) } } func (a FIPS140_3_Indicator) String() string { switch a { case FIPS140_3_NonSecurityService: return "non security service" case FIPS140_3_ApprovedSecurityService: return "approved security service" case FIPS140_3_NonApprovedSecurityService: return "non-approved security service" default: return fmt.Sprintf("%#02x", a) } } // String implements [fmt.Stringer]. func (a ModeAttributes) String() string { if a == 0 { return "" } var ( flags []string reserved ModeAttributes current ModeAttributes fips140_3_Indicator ModeAttributes ) for current = 1; current != 0; current <<= 1 { if current&ModeFIPS140_3_Indicator != 0 { fips140_3_Indicator |= current if (current<<1)&ModeFIPS140_3_Indicator == 0 { flags = append(flags, fmt.Sprintf("FIPS_140_3_INDICATOR:%s", fips140_3_Indicator.FIPS140_3_Indicator())) } continue } if a¤t == 0 { continue } switch current { case ModeFIPS140_2: flags = append(flags, "FIPS_140_2") case ModeFIPS140_3: flags = append(flags, "FIPS_140_3") default: reserved |= current } } if reserved != 0 { flags = append(flags, fmt.Sprintf("", reserved)) } return strings.Join(flags, " | ") } // Format implements [fmt.Formatter]. It prints the return of the [fmt.Stringer] // implementation only for the 's', 'v' and 'q' verbs. The 'x' and 'X' verbs will // print the hexadecimal representation of the underlying value rather than the // representation of the string. func (a ModeAttributes) Format(s fmt.State, f rune) { switch f { case 's', 'v', 'q': fmt.Fprintf(s, formatString(s, f), removeFormatter(a)) default: fmt.Fprintf(s, formatString(s, f), uint32(a)) } } // String implements [fmt.Stringer]. func (t NVType) String() string { switch t { case NVTypeOrdinary: return "TPM_NT_ORDINARY" case NVTypeCounter: return "TPM_NT_COUNTER" case NVTypeBits: return "TPM_NT_BITS" case NVTypeExtend: return "TPM_NT_EXTEND" case NVTypePinFail: return "TPM_NT_PIN_FAIL" case NVTypePinPass: return "TPM_NT_PIN_PASS" default: return fmt.Sprintf("%#08x", t) } } // Format implements [fmt.Formatter]. It prints the return of the [fmt.Stringer] // implementation only for the 's', 'v' and 'q' verbs. The 'x' and 'X' verbs will // print the hexadecimal representation of the underlying value rather than the // representation of the string. func (t NVType) Format(s fmt.State, f rune) { switch f { case 's', 'v', 'q': fmt.Fprintf(s, formatString(s, f), removeFormatter(t)) default: fmt.Fprintf(s, formatString(s, f), uint32(t)) } } // String implements [fmt.Stringer]. func (a NVAttributes) String() string { var ( flags []string reserved NVAttributes current NVAttributes nvType NVType ) for current = 1; current != 0; current <<= 1 { if current&attrNVType != 0 { nvType |= NVType(current >> attrNVTypeShift) if (current<<1)&attrNVType == 0 { flags = append(flags, fmt.Sprintf("TPM_NT:%s", nvType)) } continue } if a¤t == 0 { continue } switch current { case AttrNVPPWrite: flags = append(flags, "TPMA_NV_PPWRITE") case AttrNVOwnerWrite: flags = append(flags, "TPMA_NV_OWNERWRITE") case AttrNVAuthWrite: flags = append(flags, "TPMA_NV_AUTHWRITE") case AttrNVPolicyWrite: flags = append(flags, "TPMA_NV_POLICYWRITE") case AttrNVPolicyDelete: flags = append(flags, "TPMA_NV_POLICYDELETE") case AttrNVWriteLocked: flags = append(flags, "TPMA_NV_WRITELOCKED") case AttrNVWriteAll: flags = append(flags, "TPMA_NV_WRITEALL") case AttrNVWriteDefine: flags = append(flags, "TPMA_NV_WRITEDEFINE") case AttrNVWriteStClear: flags = append(flags, "TPMA_NV_WRITE_STCLEAR") case AttrNVGlobalLock: flags = append(flags, "TPMA_NV_GLOBALLOCK") case AttrNVPPRead: flags = append(flags, "TPMA_NV_PPREAD") case AttrNVOwnerRead: flags = append(flags, "TPMA_NV_OWNERREAD") case AttrNVAuthRead: flags = append(flags, "TPMA_NV_AUTHREAD") case AttrNVPolicyRead: flags = append(flags, "TPMA_NV_POLICYREAD") case AttrNVNoDA: flags = append(flags, "TPMA_NV_NO_DA") case AttrNVOrderly: flags = append(flags, "TPMA_NV_ORDERLY") case AttrNVClearStClear: flags = append(flags, "TPMA_NV_CLEAR_STCLEAR") case AttrNVReadLocked: flags = append(flags, "TPMA_NV_READLOCKED") case AttrNVWritten: flags = append(flags, "TPMA_NV_WRITTEN") case AttrNVPlatformCreate: flags = append(flags, "TPMA_NV_PLATFORMCREATE") case AttrNVReadStClear: flags = append(flags, "TPMA_NV_READ_STCLEAR") default: reserved |= current } } if reserved != 0 { flags = append(flags, fmt.Sprintf("", reserved)) } return strings.Join(flags, " | ") } // Format implements [fmt.Formatter]. It prints the return of the [fmt.Stringer] // implementation only for the 's', 'v' and 'q' verbs. The 'x' and 'X' verbs will // print the hexadecimal representation of the underlying value rather than the // representation of the string. func (a NVAttributes) Format(s fmt.State, f rune) { switch f { case 's', 'v', 'q': fmt.Fprintf(s, formatString(s, f), removeFormatter(a)) default: fmt.Fprintf(s, formatString(s, f), uint32(a)) } } // String implements [fmt.Stringer]. func (m TPMManufacturer) String() string { switch m { case TPMManufacturerAMD: return "AMD" case TPMManufacturerATML: return "Atmel" case TPMManufacturerBRCM: return "Broadcom" case TPMManufacturerHPE: return "HPE" case TPMManufacturerIBM: return "IBM" case TPMManufacturerIFX: return "Infineon" case TPMManufacturerINTC: return "Intel" case TPMManufacturerLEN: return "Lenovo" case TPMManufacturerMSFT: return "Microsoft" case TPMManufacturerNSM: return "National Semiconductor" case TPMManufacturerNTZ: return "Nationz" case TPMManufacturerNTC: return "Nuvoton Technology" case TPMManufacturerQCOM: return "Qualcomm" case TPMManufacturerSMSC: return "SMSC" case TPMManufacturerSTM: return "ST Microelectronics" case TPMManufacturerSMSN: return "Samsung" case TPMManufacturerSNS: return "Sinosun" case TPMManufacturerTXN: return "Texas Instruments" case TPMManufacturerWEC: return "Winbond" case TPMManufacturerROCC: return "Fuzhou Rockchip" case TPMManufacturerGOOG: return "Google" default: return fmt.Sprintf("%#08x", uint32(m)) } } // Format implements [fmt.Formatter]. It prints the return of the [fmt.Stringer] // implementation only for the 's', 'v' and 'q' verbs. The 'x' and 'X' verbs will // print the hexadecimal representation of the underlying value rather than the // representation of the string. func (m TPMManufacturer) Format(s fmt.State, f rune) { switch f { case 's', 'v', 'q': fmt.Fprintf(s, formatString(s, f), removeFormatter(m)) default: fmt.Fprintf(s, formatString(s, f), uint32(m)) } } // String implements [fmt.Stringer]. func (c CommandCode) String() string { switch c { case CommandNVUndefineSpaceSpecial: return "TPM_CC_NV_UndefineSpaceSpecial" case CommandEvictControl: return "TPM_CC_EvictControl" case CommandHierarchyControl: return "TPM_CC_HierarchyControl" case CommandNVUndefineSpace: return "TPM_CC_NV_UndefineSpace" case CommandClear: return "TPM_CC_Clear" case CommandClearControl: return "TPM_CC_ClearControl" case CommandClockSet: return "TPM_CC_ClockSet" case CommandHierarchyChangeAuth: return "TPM_CC_HierarchyChangeAuth" case CommandNVDefineSpace: return "TPM_CC_NV_DefineSpace" case CommandPCRAllocate: return "TPM_CC_PCR_Allocate" case CommandSetPrimaryPolicy: return "TPM_CC_SetPrimaryPolicy" case CommandClockRateAdjust: return "TPM_CC_ClockRateAdjust" case CommandCreatePrimary: return "TPM_CC_CreatePrimary" case CommandNVGlobalWriteLock: return "TPM_CC_NV_GlobalWriteLock" case CommandGetCommandAuditDigest: return "TPM_CC_GetCommandAuditDigest" case CommandNVIncrement: return "TPM_CC_NV_Increment" case CommandNVSetBits: return "TPM_CC_NV_SetBits" case CommandNVExtend: return "TPM_CC_NV_Extend" case CommandNVWrite: return "TPM_CC_NV_Write" case CommandNVWriteLock: return "TPM_CC_NV_WriteLock" case CommandDictionaryAttackLockReset: return "TPM_CC_DictionaryAttackLockReset" case CommandDictionaryAttackParameters: return "TPM_CC_DictionaryAttackParameters" case CommandNVChangeAuth: return "TPM_CC_NV_ChangeAuth" case CommandPCREvent: return "TPM_CC_PCR_Event" case CommandPCRReset: return "TPM_CC_PCR_Reset" case CommandSequenceComplete: return "TPM_CC_SequenceComplete" case CommandSetCommandCodeAuditStatus: return "TPM_CC_SetCommandCodeAuditStatus" case CommandIncrementalSelfTest: return "TPM_CC_IncrementalSelfTest" case CommandSelfTest: return "TPM_CC_SelfTest" case CommandStartup: return "TPM_CC_Startup" case CommandShutdown: return "TPM_CC_Shutdown" case CommandStirRandom: return "TPM_CC_StirRandom" case CommandActivateCredential: return "TPM_CC_ActivateCredential" case CommandCertify: return "TPM_CC_Certify" case CommandPolicyNV: return "TPM_CC_PolicyNV" case CommandCertifyCreation: return "TPM_CC_CertifyCreation" case CommandDuplicate: return "TPM_CC_Duplicate" case CommandGetTime: return "TPM_CC_GetTime" case CommandGetSessionAuditDigest: return "TPM_CC_GetSessionAuditDigest" case CommandNVRead: return "TPM_CC_NV_Read" case CommandNVReadLock: return "TPM_CC_NV_ReadLock" case CommandObjectChangeAuth: return "TPM_CC_ObjectChangeAuth" case CommandPolicySecret: return "TPM_CC_PolicySecret" case CommandCreate: return "TPM_CC_Create" case CommandECDHZGen: return "TPM_CC_ECDH_ZGen" case CommandHMAC: return "TPM_CC_HMAC" case CommandImport: return "TPM_CC_Import" case CommandLoad: return "TPM_CC_Load" case CommandQuote: return "TPM_CC_Quote" case CommandRSADecrypt: return "TPM_CC_RSA_Decrypt" case CommandHMACStart: return "TPM_CC_HMAC_Start" case CommandSequenceUpdate: return "TPM_CC_SequenceUpdate" case CommandSign: return "TPM_CC_Sign" case CommandUnseal: return "TPM_CC_Unseal" case CommandPolicySigned: return "TPM_CC_PolicySigned" case CommandContextLoad: return "TPM_CC_ContextLoad" case CommandContextSave: return "TPM_CC_ContextSave" case CommandECDHKeyGen: return "TPM_CC_ECDH_KeyGen" case CommandFlushContext: return "TPM_CC_FlushContext" case CommandLoadExternal: return "TPM_CC_LoadExternal" case CommandMakeCredential: return "TPM_CC_MakeCredential" case CommandNVReadPublic: return "TPM_CC_NV_ReadPublic" case CommandPolicyAuthorize: return "TPM_CC_PolicyAuthorize" case CommandPolicyAuthValue: return "TPM_CC_PolicyAuthValue" case CommandPolicyCommandCode: return "TPM_CC_PolicyCommandCode" case CommandPolicyCounterTimer: return "TPM_CC_PolicyCounterTimer" case CommandPolicyCpHash: return "TPM_CC_PolicyCpHash" case CommandPolicyLocality: return "TPM_CC_PolicyLocality" case CommandPolicyNameHash: return "TPM_CC_PolicyNameHash" case CommandPolicyOR: return "TPM_CC_PolicyOR" case CommandPolicyTicket: return "TPM_CC_PolicyTicket" case CommandReadPublic: return "TPM_CC_ReadPublic" case CommandRSAEncrypt: return "TPM_CC_RSA_Encrypt" case CommandStartAuthSession: return "TPM_CC_StartAuthSession" case CommandVerifySignature: return "TPM_CC_VerifySignature" case CommandECCParameters: return "TPM_CC_ECC_Parameters" case CommandGetCapability: return "TPM_CC_GetCapability" case CommandGetRandom: return "TPM_CC_GetRandom" case CommandGetTestResult: return "TPM_CC_GetTestResult" case CommandHash: return "TPM_CC_Hash" case CommandPCRRead: return "TPM_CC_PCR_Read" case CommandPolicyPCR: return "TPM_CC_PolicyPCR" case CommandPolicyRestart: return "TPM_CC_PolicyRestart" case CommandReadClock: return "TPM_CC_ReadClock" case CommandPCRExtend: return "TPM_CC_PCR_Extend" case CommandNVCertify: return "TPM_CC_NV_Certify" case CommandEventSequenceComplete: return "TPM_CC_EventSequenceComplete" case CommandHashSequenceStart: return "TPM_CC_HashSequenceStart" case CommandPolicyDuplicationSelect: return "TPM_CC_PolicyDuplicationSelect" case CommandPolicyGetDigest: return "TPM_CC_PolicyGetDigest" case CommandTestParms: return "TPM_CC_TestParms" case CommandCommit: return "TPM_CC_Commit" case CommandPolicyPassword: return "TPM_CC_PolicyPassword" case CommandPolicyNvWritten: return "TPM_CC_PolicyNvWritten" case CommandPolicyTemplate: return "TPM_CC_PolicyTemplate" case CommandCreateLoaded: return "TPM_CC_CreateLoaded" case CommandPolicyAuthorizeNV: return "TPM_CC_PolicyAuthorizeNV" default: return fmt.Sprintf("%#08x", uint32(c)) } } // Format implements [fmt.Formatter]. It prints the return of the [fmt.Stringer] // implementation only for the 's', 'v' and 'q' verbs. The 'x' and 'X' verbs will // print the hexadecimal representation of the underlying value rather than the // representation of the string. func (c CommandCode) Format(s fmt.State, f rune) { switch f { case 's', 'v', 'q': fmt.Fprintf(s, formatString(s, f), removeFormatter(c)) default: fmt.Fprintf(s, formatString(s, f), uint32(c)) } } // String implements [fmt.Stringer]. func (rc ResponseCode) String() string { var str string switch rc.Base() { case ResponseSuccess: return "TPM_RC_SUCCESS" case ResponseBadTag: return "TPM_RC_BAD_TAG" // TCG defined TPM2 format-zero error codes start here case ResponseInitialize: return "TPM_RC_INITIALIZE" case ResponseFailure: return "TPM_RC_FAILURE" case ResponseSequence: return "TPM_RC_SEQUENCE" case ResponseDisabled: return "TPM_RC_DISABLED" case ResponseExclusive: return "TPM_RC_EXCLUSIVE" case ResponseAuthType: return "TPM_RC_AUTH_TYPE" case ResponseAuthMissing: return "TPM_RC_AUTH_MISSING" case ResponsePolicy: return "TPM_RC_POLICY" case ResponsePCR: return "TPM_RC_PCR" case ResponsePCRChanged: return "TPM_RC_PCR_CHANGED" case ResponseUpgrade: return "TPM_RC_UPGRADE" case ResponseTooManyContexts: return "TPM_RC_TOO_MANY_CONTEXTS" case ResponseAuthUnavailable: return "TPM_RC_AUTH_UNAVAILABLE" case ResponseReboot: return "TPM_RC_REBOOT" case ResponseUnbalanced: return "TPM_RC_UNBALANCED" case ResponseCommandSize: return "TPM_RC_COMMAND_SIZE" case ResponseCommandCode: return "TPM_RC_COMMAND_CODE" case ResponseAuthsize: return "TPM_RC_AUTHSIZE" case ResponseAuthContext: return "TPM_RC_AUTH_CONTEXT" case ResponseNVRange: return "TPM_RC_NV_RANGE" case ResponseNVSize: return "TPM_RC_NV_SIZE" case ResponseNVLocked: return "TPM_RC_NV_LOCKED" case ResponseNVAuthorization: return "TPM_RC_NV_AUTHORIZATION" case ResponseNVUninitialized: return "TPM_RC_NV_UNINITIALIZED" case ResponseNVSpace: return "TPM_RC_NV_SPACE" case ResponseNVDefined: return "TPM_RC_NV_DEFINED" case ResponseBadContext: return "TPM_RC_BAD_CONTEXT" case ResponseCpHash: return "TPM_RC_CPHASH" case ResponseParent: return "TPM_RC_PARENT" case ResponseNeedsTest: return "TPM_RC_NEEDS_TEST" case ResponseNoResult: return "TPM_RC_NO_RESULT" case ResponseSensitive: return "TPM_RC_SENSITIVE" // Format 1 error codes start here case ResponseAsymmetric: str = "TPM_RC_ASYMMETRIC" case ResponseAttributes: str = "TPM_RC_ATTRIBUTES" case ResponseHash: str = "TPM_RC_HASH" case ResponseValue: str = "TPM_RC_VALUE" case ResponseHierarchy: str = "TPM_RC_HIERARCHY" case ResponseKeySize: str = "TPM_RC_KEY_SIZE" case ResponseMGF: str = "TPM_RC_MGF" case ResponseMode: str = "TPM_RC_MODE" case ResponseType: str = "TPM_RC_TYPE" case ResponseHandle: str = "TPM_RC_HANDLE" case ResponseKDF: str = "TPM_RC_KDF" case ResponseRange: str = "TPM_RC_RANGE" case ResponseAuthFail: str = "TPM_RC_AUTH_FAIL" case ResponseNonce: str = "TPM_RC_NONCE" case ResponsePP: str = "TPM_RC_PP" case ResponseScheme: str = "TPM_RC_SCHEME" case ResponseSize: str = "TPM_RC_SIZE" case ResponseSymmetric: str = "TPM_RC_SYMMETRIC" case ResponseTag: str = "TPM_RC_TAG" case ResponseSelector: str = "TPM_RC_SELECTOR" case ResponseInsufficient: str = "TPM_RC_INSUFFICIENT" case ResponseSignature: str = "TPM_RC_SIGNATURE" case ResponseKey: str = "TPM_RC_KEY" case ResponsePolicyFail: str = "TPM_RC_POLICY_FAIL" case ResponseIntegrity: str = "TPM_RC_INTEGRITY" case ResponseTicket: str = "TPM_RC_TICKET" case ResponseReservedBits: str = "TPM_RC_RESERVED_BITS" case ResponseBadAuth: str = "TPM_RC_BAD_AUTH" case ResponseExpired: str = "TPM_RC_EXPIRED" case ResponsePolicyCC: str = "TPM_RC_POLICY_CC" case ResponseBinding: str = "TPM_RC_BINDING" case ResponseCurve: str = "TPM_RC_CURVE" case ResponseECCPoint: str = "TPM_RC_ECC_POINT" // TCG defined TPM2 format-zero warning codes start here case ResponseContextGap: return "TPM_RC_CONTEXT_GAP" case ResponseObjectMemory: return "TPM_RC_OBJECT_MEMORY" case ResponseSessionMemory: return "TPM_RC_SESSION_MEMORY" case ResponseMemory: return "TPM_RC_MEMORY" case ResponseSessionHandles: return "TPM_RC_SESSION_HANDLES" case ResponseObjectHandles: return "TPM_RC_OBJECT_HANDLES" case ResponseLocality: return "TPM_RC_LOCALITY" case ResponseYielded: return "TPM_RC_YIELDED" case ResponseCanceled: return "TPM_RC_CANCELED" case ResponseTesting: return "TPM_RC_TESTING" case ResponseReferenceH0: return "TPM_RC_REFERENCE_H0" case ResponseReferenceH1: return "TPM_RC_REFERENCE_H1" case ResponseReferenceH2: return "TPM_RC_REFERENCE_H2" case ResponseReferenceH3: return "TPM_RC_REFERENCE_H3" case ResponseReferenceH4: return "TPM_RC_REFERENCE_H4" case ResponseReferenceH5: return "TPM_RC_REFERENCE_H5" case ResponseReferenceH6: return "TPM_RC_REFERENCE_H6" case ResponseReferenceS0: return "TPM_RC_REFERENCE_S0" case ResponseReferenceS1: return "TPM_RC_REFERENCE_S1" case ResponseReferenceS2: return "TPM_RC_REFERENCE_S2" case ResponseReferenceS3: return "TPM_RC_REFERENCE_S3" case ResponseReferenceS4: return "TPM_RC_REFERENCE_S4" case ResponseReferenceS5: return "TPM_RC_REFERENCE_S5" case ResponseReferenceS6: return "TPM_RC_REFERENCE_S6" case ResponseNVRate: return "TPM_RC_NV_RATE" case ResponseLockout: return "TPM_RC_LOCKOUT" case ResponseRetry: return "TPM_RC_RETRY" case ResponseNVUnavailable: return "TPM_RC_NV_UNAVAILABLE" default: str = fmt.Sprintf("%#08x", uint32(rc)) if !rc.F() { return str } } // For format-one response codes, add the parameter, session or handle indicator. switch { case rc.P(): str += " + TPM_RC_P" case rc.N()&uint8(rcNSessionIndicator>>rcNShift) != 0: str += " + TPM_RC_S" case rc.N() != 0: str += " + TPM_RC_H" default: return str } // For format-one response codes, add the parameter, session or handle index. var n uint8 switch { case rc.N() == 0: // No associated parameter, session, or handle index. return str case rc.P(): // There is an associated parameter index - use the full 4 bits of N. n = rc.N() default: // There is an associated session or handle index, depending on the // MSB of N. Use the lower 3 bits of N. n = rc.N() &^ uint8(rcNSessionIndicator>>rcNShift) } switch { case n <= 0xf: return fmt.Sprintf("%s + TPM_RC_%X", str, n) default: return fmt.Sprintf("%s + %#02x", str, n) } } // Format implements [fmt.Formatter]. It prints the return of the [fmt.Stringer] // implementation only for the 's', 'v' and 'q' verbs. The 'x' and 'X' verbs will // print the hexadecimal representation of the underlying value rather than the // representation of the string. // // The '+' flag when used with the 's' or 'v' verb will include a description of // the response code if one exists. func (rc ResponseCode) Format(s fmt.State, f rune) { switch f { case 's', 'v', 'q': fmt.Fprintf(s, formatString(s, f), removeFormatter(rc)) if (f == 's' || f == 'q') && s.Flag('+') { desc, hasDesc := rcDescriptions[rc.Base()] if hasDesc { fmt.Fprintf(s, " (%s)", desc) } } default: fmt.Fprintf(s, formatString(s, f), uint32(rc)) } } type responseCoder interface { ResponseCode() ResponseCode } type responseCodeFormatterImpl[RC responseCoder] struct { rc RC } func (formatter responseCodeFormatterImpl[RC]) String() string { return formatter.rc.ResponseCode().String() } func (formatter responseCodeFormatterImpl[RC]) Format(s fmt.State, f rune) { formatter.rc.ResponseCode().Format(s, f) } func responseCodeFormatter[RC responseCoder](rc RC) responseCodeFormatterImpl[RC] { return responseCodeFormatterImpl[RC]{rc: rc} } // String implements [fmt.Stringer]. func (e ErrorCode) String() string { // An invalid error code may generate a panic, but this is caught // by the fmt package. return responseCodeFormatter(e).String() } // Format implements [fmt.Formatter]. It prints the return of the [fmt.Stringer] // implementation only for the 's', 'v' and 'q' verbs. The 'x' and 'X' verbs will // print the hexadecimal representation of the underlying value rather than the // representation of the string. func (e ErrorCode) Format(s fmt.State, f rune) { // An invalid error code may generate a panic, but this is caught // by the fmt package. responseCodeFormatter(e).Format(s, f) } // String implements [fmt.Stringer]. func (e WarningCode) String() string { // An invalid warning code may generate a panic, but this is caught // by the fmt package. return responseCodeFormatter(e).String() } // Format implements [fmt.Formatter]. It prints the return of the [fmt.Stringer] // implementation only for the 's', 'v' and 'q' verbs. The 'x' and 'X' verbs will // print the hexadecimal representation of the underlying value rather than the // representation of the string. func (e WarningCode) Format(s fmt.State, f rune) { // An invalid warning code may generate a panic, but this is caught // by the fmt package. responseCodeFormatter(e).Format(s, f) } // String implements [fmt.Stringer]. func (h Handle) String() string { switch h { case HandleOwner: return "TPM_RH_OWNER" case HandleNull: return "TPM_RH_NULL" case HandleUnassigned: return "TPM_RH_UNASSIGNED" case HandlePW: return "TPM_RS_PW" case HandleLockout: return "TPM_RH_LOCKOUT" case HandleEndorsement: return "TPM_RH_ENDORSEMENT" case HandlePlatform: return "TPM_RH_PLATFORM" case HandlePlatformNV: return "TPM_RH_PLATFORM_NV" case HandleFWOwner: return "TPM_RH_FW_OWNER" case HandleFWEndorsement: return "TPM_RH_FW_ENDORSEMENT" case HandleFWPlatform: return "TPM_RH_FW_PLATFORM" case HandleFWNull: return "TPM_RH_FW_NULL" case HandleSVNOwnerBase: return "TPM_RH_SVN_OWNER_BASE" case HandleSVNEndorsementBase: return "TPM_RH_SVN_ENDORSEMENT_BASE" case HandleSVNPlatformBase: return "TPM_RH_SVN_PLATFORM_BASE" case HandleSVNNullBase: return "TPM_RH_SVN_NULL_BASE" default: return fmt.Sprintf("%#08x", uint32(h)) } } // Format implements [fmt.Formatter]. It prints the return of the [fmt.Stringer] // implementation only for the 's', 'v' and 'q' verbs. The 'x' and 'X' verbs will // print the hexadecimal representation of the underlying value rather than the // representation of the string. func (h Handle) Format(s fmt.State, f rune) { switch f { case 's', 'v', 'q': fmt.Fprintf(s, formatString(s, f), removeFormatter(h)) default: fmt.Fprintf(s, formatString(s, f), uint32(h)) } } // String implements [fmt.Stringer]. func (t HandleType) String() string { switch t { case HandleTypePCR: return "TPM_HT_PCR" case HandleTypeNVIndex: return "TPM_HT_NVINDEX" case HandleTypeHMACSession: return "TPM_HT_HMAC_SESSION" case HandleTypePolicySession: return "TPM_HT_POLICY_SESSION" case HandleTypePermanent: return "TPM_HT_PERMANENT" case HandleTypeTransient: return "TPM_HT_TRANSIENT" case HandleTypePersistent: return "TPM_HT_PERSISTENT" default: return fmt.Sprintf("%#02x", uint8(t)) } } // Format implements [fmt.Formatter]. It prints the return of the [fmt.Stringer] // implementation only for the 's', 'v' and 'q' verbs. The 'x' and 'X' verbs will // print the hexadecimal representation of the underlying value rather than the // representation of the string. func (t HandleType) Format(s fmt.State, f rune) { switch f { case 's', 'v', 'q': fmt.Fprintf(s, formatString(s, f), removeFormatter(t)) default: fmt.Fprintf(s, formatString(s, f), uint8(t)) } } // String implements [fmt.Stringer]. func (a AlgorithmId) String() string { switch a { case AlgorithmRSA: return "TPM_ALG_RSA" case AlgorithmTDES: return "TPM_ALG_TDES" case AlgorithmSHA1: return "TPM_ALG_SHA1" case AlgorithmHMAC: return "TPM_ALG_HMAC" case AlgorithmAES: return "TPM_ALG_AES" case AlgorithmMGF1: return "TPM_ALG_MGF1" case AlgorithmKeyedHash: return "TPM_ALG_KEYEDHASH" case AlgorithmXOR: return "TPM_ALG_XOR" case AlgorithmSHA256: return "TPM_ALG_SHA256" case AlgorithmSHA384: return "TPM_ALG_SHA384" case AlgorithmSHA512: return "TPM_ALG_SHA512" case AlgorithmSHA256_192: return "TPM_ALG_SHA256_192" case AlgorithmNull: return "TPM_ALG_NULL" case AlgorithmSM3_256: return "TPM_ALG_SM3_256" case AlgorithmSM4: return "TPM_ALG_SM4" case AlgorithmRSASSA: return "TPM_ALG_RSASSA" case AlgorithmRSAES: return "TPM_ALG_RSAES" case AlgorithmRSAPSS: return "TPM_ALG_RSAPSS" case AlgorithmOAEP: return "TPM_ALG_OAEP" case AlgorithmECDSA: return "TPM_ALG_ECDSA" case AlgorithmECDH: return "TPM_ALG_ECDH" case AlgorithmECDAA: return "TPM_ALG_ECDAA" case AlgorithmSM2: return "TPM_ALG_SM2" case AlgorithmECSchnorr: return "TPM_ALG_ECSCHNORR" case AlgorithmECMQV: return "TPM_ALG_ECMQV" case AlgorithmKDF1_SP800_56A: return "TPM_ALG_KDF1_SP800_56A" case AlgorithmKDF2: return "TPM_ALG_KDF2" case AlgorithmKDF1_SP800_108: return "TPM_ALG_KDF1_SP800_108" case AlgorithmECC: return "TPM_ALG_ECC" case AlgorithmSymCipher: return "TPM_ALG_SYMCIPHER" case AlgorithmCamellia: return "TPM_ALG_CAMELLIA" case AlgorithmSHA3_256: return "TPM_ALG_SHA3_256" case AlgorithmSHA3_384: return "TPM_ALG_SHA3_384" case AlgorithmSHA3_512: return "TPM_ALG_SHA3_512" case AlgorithmSHAKE128: return "TPM_ALG_SHAKE128" case AlgorithmSHAKE256: return "TPM_ALG_SHAKE256" case AlgorithmSHAKE256_192: return "TPM_ALG_SHAKE256_192" case AlgorithmSHAKE256_256: return "TPM_ALG_SHAKE256_256" case AlgorithmSHAKE256_512: return "TPM_ALG_SHAKE256_512" case AlgorithmCMAC: return "TPM_ALG_CMAC" case AlgorithmCTR: return "TPM_ALG_CTR" case AlgorithmOFB: return "TPM_ALG_OFB" case AlgorithmCBC: return "TPM_ALG_CBC" case AlgorithmCFB: return "TPM_ALG_CFB" case AlgorithmECB: return "TPM_ALG_ECB" case AlgorithmCCM: return "TPM_ALG_CCM" case AlgorithmGCM: return "TPM_ALG_GCM" case AlgorithmKW: return "TPM_ALG_KW" case AlgorithmKWP: return "TPM_ALG_KWP" case AlgorithmEAX: return "TPM_ALG_EAX" case AlgorithmEDDSA: return "TPM_ALG_EDDSA" case AlgorithmEDDSA_PH: return "TPM_ALG_EDDSA_PH" case AlgorithmLMS: return "TPM_ALG_LMS" case AlgorithmXMSS: return "TPM_ALG_XMSS" case AlgorithmKeyedXOF: return "TPM_ALG_KEYEDXOF" case AlgorithmKMACXOF128: return "TPM_ALG_KMACXOF128" case AlgorithmKMACXOF256: return "TPM_ALG_KMACXOF256" case AlgorithmKMAC128: return "TPM_ALG_KMAC128" case AlgorithmKMAC256: return "TPM_ALG_KMAC256" default: return fmt.Sprintf("%#04x", uint16(a)) } } // Format implements [fmt.Formatter]. It prints the return of the [fmt.Stringer] // implementation only for the 's', 'v' and 'q' verbs. The 'x' and 'X' verbs will // print the hexadecimal representation of the underlying value rather than the // representation of the string. func (a AlgorithmId) Format(s fmt.State, f rune) { switch f { case 's', 'v', 'q': fmt.Fprintf(s, formatString(s, f), removeFormatter(a)) default: fmt.Fprintf(s, formatString(s, f), uint16(a)) } } // Format implements [fmt.Formatter]. It prints the return of the [fmt.Stringer] // implementation only for the 's', 'v' and 'q' verbs. The 'x' and 'X' verbs will // print the hexadecimal representation of the underlying value rather than the // representation of the string. func (a HashAlgorithmId) Format(s fmt.State, f rune) { AlgorithmId(a).Format(s, f) } // Format implements [fmt.Formatter]. It prints the return of the [fmt.Stringer] // implementation only for the 's', 'v' and 'q' verbs. The 'x' and 'X' verbs will // print the hexadecimal representation of the underlying value rather than the // representation of the string. func (a SymAlgorithmId) Format(s fmt.State, f rune) { AlgorithmId(a).Format(s, f) } // Format implements [fmt.Formatter]. It prints the return of the [fmt.Stringer] // implementation only for the 's', 'v' and 'q' verbs. The 'x' and 'X' verbs will // print the hexadecimal representation of the underlying value rather than the // representation of the string. func (a SymObjectAlgorithmId) Format(s fmt.State, f rune) { AlgorithmId(a).Format(s, f) } // Format implements [fmt.Formatter]. It prints the return of the [fmt.Stringer] // implementation only for the 's', 'v' and 'q' verbs. The 'x' and 'X' verbs will // print the hexadecimal representation of the underlying value rather than the // representation of the string. func (a SymModeId) Format(s fmt.State, f rune) { AlgorithmId(a).Format(s, f) } // Format implements [fmt.Formatter]. It prints the return of the [fmt.Stringer] // implementation only for the 's', 'v' and 'q' verbs. The 'x' and 'X' verbs will // print the hexadecimal representation of the underlying value rather than the // representation of the string. func (a KDFAlgorithmId) Format(s fmt.State, f rune) { AlgorithmId(a).Format(s, f) } // Format implements [fmt.Formatter]. It prints the return of the [fmt.Stringer] // implementation only for the 's', 'v' and 'q' verbs. The 'x' and 'X' verbs will // print the hexadecimal representation of the underlying value rather than the // representation of the string. func (a SigSchemeId) Format(s fmt.State, f rune) { AlgorithmId(a).Format(s, f) } // Format implements [fmt.Formatter]. It prints the return of the [fmt.Stringer] // implementation only for the 's', 'v' and 'q' verbs. The 'x' and 'X' verbs will // print the hexadecimal representation of the underlying value rather than the // representation of the string. func (a KeyedHashSchemeId) Format(s fmt.State, f rune) { AlgorithmId(a).Format(s, f) } // Format implements [fmt.Formatter]. It prints the return of the [fmt.Stringer] // implementation only for the 's', 'v' and 'q' verbs. The 'x' and 'X' verbs will // print the hexadecimal representation of the underlying value rather than the // representation of the string. func (a AsymSchemeId) Format(s fmt.State, f rune) { AlgorithmId(a).Format(s, f) } // Format implements [fmt.Formatter]. It prints the return of the [fmt.Stringer] // implementation only for the 's', 'v' and 'q' verbs. The 'x' and 'X' verbs will // print the hexadecimal representation of the underlying value rather than the // representation of the string. func (a RSASchemeId) Format(s fmt.State, f rune) { AlgorithmId(a).Format(s, f) } // Format implements [fmt.Formatter]. It prints the return of the [fmt.Stringer] // implementation only for the 's', 'v' and 'q' verbs. The 'x' and 'X' verbs will // print the hexadecimal representation of the underlying value rather than the // representation of the string. func (a ECCSchemeId) Format(s fmt.State, f rune) { AlgorithmId(a).Format(s, f) } // Format implements [fmt.Formatter]. It prints the return of the [fmt.Stringer] // implementation only for the 's', 'v' and 'q' verbs. The 'x' and 'X' verbs will // print the hexadecimal representation of the underlying value rather than the // representation of the string. func (a ObjectTypeId) Format(s fmt.State, f rune) { AlgorithmId(a).Format(s, f) } // String implements [fmt.Stringer]. func (c Capability) String() string { switch c { case CapabilityAlgs: return "TPM_CAP_ALGS" case CapabilityHandles: return "TPM_CAP_HANDLES" case CapabilityCommands: return "TPM_CAP_COMMANDS" case CapabilityPPCommands: return "TPM_CAP_PP_COMMANDS" case CapabilityAuditCommands: return "TPM_CAP_AUDIT_COMMANDS" case CapabilityPCRs: return "TPM_CAP_PCRS" case CapabilityTPMProperties: return "TPM_CAP_TPM_PROPERTIES" case CapabilityPCRProperties: return "TPM_CAP_PCR_PROPERTIES" case CapabilityECCCurves: return "TPM_CAP_ECC_CURVES" case CapabilityAuthPolicies: return "TPM_CAP_AUTH_POLICIES" default: return fmt.Sprintf("%#08x", uint32(c)) } } // Format implements [fmt.Formatter]. It prints the return of the [fmt.Stringer] // implementation only for the 's', 'v' and 'q' verbs. The 'x' and 'X' verbs will // print the hexadecimal representation of the underlying value rather than the // representation of the string. func (c Capability) Format(s fmt.State, f rune) { switch f { case 's', 'v', 'q': fmt.Fprintf(s, formatString(s, f), removeFormatter(c)) default: fmt.Fprintf(s, formatString(s, f), uint32(c)) } } // String implements [fmt.Stringer]. func (o ArithmeticOp) String() string { switch o { case OpEq: return "TPM_EO_EQ" case OpNeq: return "TPM_OP_NEQ" case OpSignedGT: return "TPM_EO_SIGNED_GT" case OpUnsignedGT: return "TPM_EO_UNSIGNED_GT" case OpSignedLT: return "TPM_EO_SIGNED_LT" case OpUnsignedLT: return "TPM_EO_UNSIGNED_LT" case OpSignedGE: return "TPM_EO_SIGNED_GE" case OpUnsignedGE: return "TPM_EO_UNSIGNED_GE" case OpSignedLE: return "TPM_EO_SIGNED_LE" case OpUnsignedLE: return "TPM_EO_UNSIGNED_LE" case OpBitset: return "TPM_EO_BITSET" case OpBitclear: return "TPM_EO_BITCLEAR" default: return fmt.Sprintf("%#08x", uint16(o)) } } // Format implements [fmt.Formatter]. It prints the return of the [fmt.Stringer] // implementation only for the 's', 'v' and 'q' verbs. The 'x' and 'X' verbs will // print the hexadecimal representation of the underlying value rather than the // representation of the string. func (o ArithmeticOp) Format(s fmt.State, f rune) { switch f { case 's', 'v', 'q': fmt.Fprintf(s, formatString(s, f), removeFormatter(o)) default: fmt.Fprintf(s, formatString(s, f), uint16(o)) } } // String implements [fmt.Stringer]. func (t StructTag) String() string { switch t { case TagRspCommand: return "TPM_ST_RSP_COMMAND" case TagNoSessions: return "TPM_ST_NO_SESSIONS" case TagSessions: return "TPM_ST_SESSIONS" case TagAttestNV: return "TPM_ST_ATTEST_NV" case TagAttestCommandAudit: return "TPM_ST_ATTEST_COMMAND_AUDIT" case TagAttestSessionAudit: return "TPM_ST_ATTEST_SESSION_AUDIT" case TagAttestCertify: return "TPM_ST_ATTEST_CERTIFY" case TagAttestQuote: return "TPM_ST_ATTEST_QUOTE" case TagAttestTime: return "TPM_ST_ATTEST_TIME" case TagAttestCreation: return "TPM_ST_ATTEST_CREATION" case TagCreation: return "TPM_ST_CREATION" case TagVerified: return "TPM_ST_VERIFIED" case TagAuthSecret: return "TPM_ST_AUTH_SECRET" case TagHashcheck: return "TPM_ST_HASHCHECK" case TagAuthSigned: return "TPM_ST_AUTH_SIGNED" default: return fmt.Sprintf("%#04x", t) } } // Format implements [fmt.Formatter]. It prints the return of the [fmt.Stringer] // implementation only for the 's', 'v' and 'q' verbs. The 'x' and 'X' verbs will // print the hexadecimal representation of the underlying value rather than the // representation of the string. func (t StructTag) Format(s fmt.State, f rune) { switch f { case 's', 'v', 'q': fmt.Fprintf(s, formatString(s, f), removeFormatter(t)) default: fmt.Fprintf(s, formatString(s, f), uint16(t)) } } // String implements [fmt.Stringer]. func (t StartupType) String() string { switch t { case StartupClear: return "TPM_SU_CLEAR" case StartupState: return "TPM_SU_STATE" default: return fmt.Sprintf("%#04x", t) } } // Format implements [fmt.Formatter]. It prints the return of the [fmt.Stringer] // implementation only for the 's', 'v' and 'q' verbs. The 'x' and 'X' verbs will // print the hexadecimal representation of the underlying value rather than the // representation of the string. func (t StartupType) Format(s fmt.State, f rune) { switch f { case 's', 'v', 'q': fmt.Fprintf(s, formatString(s, f), removeFormatter(t)) default: fmt.Fprintf(s, formatString(s, f), uint16(t)) } } // String implements [fmt.Stringer]. func (t SessionType) String() string { switch t { case SessionTypeHMAC: return "TPM_SE_HMAC" case SessionTypePolicy: return "TPM_SE_POLICY" case SessionTypeTrial: return "TPM_SE_TRIAL" default: return fmt.Sprintf("%#04x", t) } } // Format implements [fmt.Formatter]. It prints the return of the [fmt.Stringer] // implementation only for the 's', 'v' and 'q' verbs. The 'x' and 'X' verbs will // print the hexadecimal representation of the underlying value rather than the // representation of the string. func (t SessionType) Format(s fmt.State, f rune) { switch f { case 's', 'v', 'q': fmt.Fprintf(s, formatString(s, f), removeFormatter(t)) default: fmt.Fprintf(s, formatString(s, f), uint16(t)) } } var ( rcDescriptions = map[ResponseCode]string{ ResponseBadTag: "defined for compatibility with TPM 1.2", ResponseInitialize: "TPM not initialized by TPM2_Startup or already initialized", ResponseFailure: "commands not being accepted because of a TPM failure", ResponseSequence: "improper use of a sequence handle", ResponseDisabled: "the command is disabled", ResponseExclusive: "command failed because audit sequence required exclusivity", ResponseAuthType: "authorization handle is not correct for command", ResponseAuthMissing: "command requires an authorization session for handle and it is not present", ResponsePolicy: "policy failure in math operation or an invalid authPolicy value", ResponsePCR: "PCR check fail", ResponsePCRChanged: "PCR have changed since checked", ResponseTooManyContexts: "context ID counter is at maximum", ResponseAuthUnavailable: "authValue or authPolicy is not available for selected entity", ResponseReboot: "a _TPM_Init and Startup(CLEAR) is required before the TPM can resume operation", ResponseUnbalanced: "the protection algorithms (hash and symmetric) are not reasonably balanced. The digest size of the hash must be " + "larger than the key size of the symmetric algorithm", ResponseCommandSize: "command commandSize value is inconsistent with contents of the command buffer; either the size is not the same " + "as the octets loaded by the hardware interface layer or the value is not large enough to hold a command header", ResponseCommandCode: "command code not supported", ResponseAuthsize: "the value of authorizationSize is out of range or the number of octets in the Authorization Area is greater than " + "required", ResponseAuthContext: "use of an authorization session with a context command or another command that cannot have an authorization " + "session", ResponseNVRange: "NV offset+size is out of range", ResponseNVSize: "Requested allocation size is larger than allowed", ResponseNVLocked: "NV access locked", ResponseNVAuthorization: "NV access authorization fails in command actions (this failure does not affect lockout.action)", ResponseNVUninitialized: "an NV Index is used before being initialized or the state saved by TPM2_Shutdown(STATE) could not be " + "restored", ResponseNVSpace: "insufficient space for NV allocation", ResponseNVDefined: "NV Index or persistent object already defined", ResponseBadContext: "context in TPM2_ContextLoad() is not valid", ResponseCpHash: "cpHash value already set or not correct for use", ResponseParent: "handle for parent is not a valid parent", ResponseNeedsTest: "some function needs testing", ResponseNoResult: "returned when an internal function cannot process a request due to an unspecified problem. This code is usually " + "related to invalid parameters that are not properly filtered by the input unmarshaling code", ResponseSensitive: "the sensitive area did not unmarshal correctly after decryption", ResponseAsymmetric: "asymmetric algorithm not supported or not correct", ResponseAttributes: "inconsistent attributes", ResponseHash: "hash algorithm not supported or not appropriate", ResponseValue: "value is out of range or is not correct for the context", ResponseHierarchy: "hierarchy is not enabled or is not correct for the use", ResponseKeySize: "key size is not supported", ResponseMGF: "mask generation function not supported", ResponseMode: "mode of operation not supported", ResponseType: "the type of the value is not appropriate for the use", ResponseHandle: "the handle is not correct for the use", ResponseKDF: "unsupported key derivation function or function not appropriate for use", ResponseRange: "value was out of allowed range", ResponseAuthFail: "the authorization HMAC check failed and DA counter incremented", ResponseNonce: "invalid nonce size or nonce value mismatch", ResponsePP: "authorization requires assertion of PP", ResponseScheme: "unsupported or incompatible scheme", ResponseSize: "structure is the wrong size", ResponseSymmetric: "unsupported symmetric algorithm or key size, or not appropriate for instance", ResponseTag: "incorrect structure tag", ResponseSelector: "union selector is incorrect", ResponseInsufficient: "the TPM was unable to unmarshal a value because there were not enough octets in the input buffer", ResponseSignature: "the signature is not valid", ResponseKey: "key fields are not compatible with the selected use", ResponsePolicyFail: "a policy check failed", ResponseIntegrity: "integrity check failed", ResponseTicket: "invalid ticket", ResponseReservedBits: "reserved bits not set to zero as required", ResponseBadAuth: "authorization failure without DA implications", ResponseExpired: "the policy has expired", ResponsePolicyCC: "the commandCode in the policy is not the commandCode of the command or the command code in a policy command " + "references a command that is not implemented", ResponseBinding: "public and sensitive portions of an object are not cryptographically bound", ResponseCurve: "curve not supported", ResponseECCPoint: "point is not on the required curve", ResponseFWLimited: "the hierarchy is firmware-limited but the Firmware Secret is unavailable", ResponseSVNLimited: "the hierarchy is SVN-limited but the Firmware SVN Secret associated with the given SVN is unavailable", ResponseContextGap: "gap for context ID is too large", ResponseObjectMemory: "out of memory for object contexts", ResponseSessionMemory: "out of memory for session contexts", ResponseMemory: "out of shared object/session memory or need space for internal operations", ResponseSessionHandles: "out of session handles – a session must be flushed before a new session may be created", ResponseObjectHandles: "out of object handles – the handle space for objects is depleted and a reboot is required", ResponseLocality: "bad locality", ResponseYielded: "the TPM has suspended operation on the command; forward progress was made and the command may be retried", ResponseCanceled: "the command was canceled", ResponseTesting: "TPM is performing self-tests", ResponseReferenceH0: "the 1st handle in the handle area references a transient object or session that is not loaded", ResponseReferenceH1: "the 2nd handle in the handle area references a transient object or session that is not loaded", ResponseReferenceH2: "the 3rd handle in the handle area references a transient object or session that is not loaded", ResponseReferenceH3: "the 4th handle in the handle area references a transient object or session that is not loaded", ResponseReferenceH4: "the 5th handle in the handle area references a transient object or session that is not loaded", ResponseReferenceH5: "the 6th handle in the handle area references a transient object or session that is not loaded", ResponseReferenceH6: "the 7th handle in the handle area references a transient object or session that is not loaded", ResponseReferenceS0: "the 1st authorization session handle references a session that is not loaded", ResponseReferenceS1: "the 2nd authorization session handle references a session that is not loaded", ResponseReferenceS2: "the 3rd authorization session handle references a session that is not loaded", ResponseReferenceS3: "the 4th authorization session handle references a session that is not loaded", ResponseReferenceS4: "the 5th authorization session handle references a session that is not loaded", ResponseReferenceS5: "the 6th authorization session handle references a session that is not loaded", ResponseReferenceS6: "the 7th authorization session handle references a session that is not loaded", ResponseNVRate: "the TPM is rate-limiting accesses to prevent wearout of NV", ResponseLockout: "authorizations for objects subject to DA protection are not allowed at this time because the TPM is in DA " + "lockout mode", ResponseRetry: "the TPM was not able to start the command", ResponseNVUnavailable: "the command may require writing of NV and NV is not current accessible", } ) ./github.com/canonical/go-tpm2/strings_1_19.go0000664000000000000000000000153600000000000016135 0ustar00//go:build !go1.20 // +build !go1.20 // Copyright 2025 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package tpm2 import ( "fmt" "strconv" "unicode/utf8" ) func formatString(state fmt.State, verb rune) string { // 1 byte for "%", 5 bytes for flags, 7 bytes for max width, 1 period, 7 bytes for max precision, 1 byte for verb. // Go's fmt package caps width and precision to 1e6. var tmp [1 + 5 + 7 + 1 + 7 + 1]byte b := append(tmp[:0], '%') for _, c := range []byte{'+', '-', '#', ' ', '0'} { if !state.Flag(int(c)) { continue } b = append(b, c) } if w, ok := state.Width(); ok { b = strconv.AppendInt(b, int64(w), 10) } if p, ok := state.Precision(); ok { b = append(b, '.') b = strconv.AppendInt(b, int64(p), 10) } b = utf8.AppendRune(b, verb) return string(b) } ./github.com/canonical/go-tpm2/strings_1_20.go0000664000000000000000000000034300000000000016120 0ustar00//go:build go1.20 // +build go1.20 // Copyright 2025 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package tpm2 import "fmt" var formatString = fmt.FormatString ./github.com/canonical/go-tpm2/tpm.go0000664000000000000000000004343500000000000014517 0ustar00// Copyright 2019 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package tpm2 import ( "bytes" "errors" "fmt" "io" "time" "github.com/canonical/go-tpm2/mu" ) func makeInvalidArgError(name, msg string) error { return fmt.Errorf("invalid %s argument: %s", name, msg) } type execMultipleHelperAction interface { last() bool run(sessions ...SessionContext) error } func execMultipleHelper(action execMultipleHelperAction, sessions ...SessionContext) error { // Ensure all sessions have the AttrContinueSession attribute sessionsOrig := make([]SessionContext, len(sessions)) copy(sessionsOrig, sessions) hasPolicySession := false for i := range sessions { if sessions[i] == nil { continue } if sessions[i].Handle().Type() == HandleTypePolicySession { hasPolicySession = true } sessions[i] = sessions[i].IncludeAttrs(AttrContinueSession) } for !action.last() { if hasPolicySession { return errors.New("cannot use a policy session for authorization") } if err := action.run(sessions...); err != nil { return err } } // This is the last iteration. Run this command with the original session // contexts so that the sessions are evicted if they don't have the // AttrContinueSession attribute set. return action.run(sessionsOrig...) } func isSessionAllowed(commandCode CommandCode) bool { switch commandCode { case CommandStartup: return false case CommandContextLoad: return false case CommandContextSave: return false case CommandFlushContext: return false default: return true } } type execContextDispatcher interface { RunCommand(commandCode CommandCode, cHandles HandleList, cAuthArea []AuthCommand, cpBytes []byte, rHandle *Handle) (rpBytes []byte, rAuthArea []AuthResponse, err error) } type cmdContext struct { CommandCode CommandCode Handles []*CommandHandleContext Params []interface{} ExtraSessions []SessionContext } type rspContext struct { CommandCode CommandCode SessionParams *sessionParams ResponseAuthArea []AuthResponse RpBytes []byte Err error } type execContext struct { dispatcher execContextDispatcher lastExclusiveSession SessionContext pendingResponse *rspContext } func (e *execContext) processResponseAuth(r *rspContext) (err error) { if r != e.pendingResponse { return r.Err } defer func() { r.Err = err }() e.pendingResponse = nil if isSessionAllowed(r.CommandCode) && e.lastExclusiveSession != nil { e.lastExclusiveSession.State().IsExclusive = false e.lastExclusiveSession = nil } if err := r.SessionParams.ProcessResponseAuthArea(r.ResponseAuthArea, r.RpBytes); err != nil { return &InvalidResponseError{r.CommandCode, fmt.Errorf("cannot process response auth area: %w", err)} } for _, s := range r.SessionParams.Sessions { if s.Session.State() != nil && s.Session.State().IsExclusive { e.lastExclusiveSession = s.Session break } } return nil } func (e *execContext) CompleteResponse(r *rspContext, responseParams ...interface{}) error { if err := e.processResponseAuth(r); err != nil { return err } rpBuf := bytes.NewReader(r.RpBytes) if _, err := mu.UnmarshalFromReader(rpBuf, responseParams...); err != nil { return &InvalidResponseError{r.CommandCode, fmt.Errorf("cannot unmarshal response parameters: %w", err)} } if rpBuf.Len() > 0 { return &InvalidResponseError{r.CommandCode, fmt.Errorf("response parameter area contains %d trailing bytes", rpBuf.Len())} } return nil } func (e *execContext) RunCommand(c *cmdContext, responseHandle *Handle) (*rspContext, error) { var handles HandleList var handleNames []Name sessionParams := newSessionParams() for _, h := range c.Handles { handles = append(handles, h.handle.Handle()) handleNames = append(handleNames, h.handle.Name()) if h.session != nil { if err := sessionParams.AppendSessionForResource(h.session, h.handle.(ResourceContext)); err != nil { return nil, fmt.Errorf("cannot process HandleContext for command %s at index %d: %v", c.CommandCode, len(handles), err) } } } if err := sessionParams.AppendExtraSessions(c.ExtraSessions...); err != nil { return nil, fmt.Errorf("cannot process non-auth SessionContext parameters for command %s: %v", c.CommandCode, err) } if sessionParams.hasDecryptSession() && (len(c.Params) == 0 || !isParamEncryptable(c.Params[0])) { return nil, fmt.Errorf("command %s does not support command parameter encryption", c.CommandCode) } cpBytes, err := mu.MarshalToBytes(c.Params...) if err != nil { return nil, fmt.Errorf("cannot marshal parameters for command %s: %w", c.CommandCode, err) } cAuthArea, err := sessionParams.BuildCommandAuthArea(c.CommandCode, handleNames, cpBytes) if err != nil { return nil, fmt.Errorf("cannot build auth area for command %s: %w", c.CommandCode, err) } if e.pendingResponse != nil { e.processResponseAuth(e.pendingResponse) } rpBytes, rAuthArea, err := e.dispatcher.RunCommand(c.CommandCode, handles, cAuthArea, cpBytes, responseHandle) if err != nil { return nil, err } r := &rspContext{ CommandCode: c.CommandCode, SessionParams: sessionParams, ResponseAuthArea: rAuthArea, RpBytes: rpBytes} e.pendingResponse = r return r, nil } type tpmDeviceProperties struct { maxBufferSize uint16 minPcrSelectSize uint8 maxNVBufferSize uint16 } // TODO: Implement commands from the following sections of part 3 of the TPM library spec: // Section 14 - Asymmetric Primitives // Section 15 - Symmetric Primitives // Section 19 - Ephemeral EC Keys // Section 26 - Miscellaneous Management Functions // Section 27 - Field Upgrade // TPMContext is the main entry point by which commands are executed on a TPM device using this // package. It provides convenience functions for supported commands and communicates with the // underlying device via a [Transport] implementation, which is obtained from a [tpm2.TPMDevice] // implementation provided to [OpenTPMDevice]. // // Convenience functions are wrappers around [TPMContext.StartCommand], which may be used directly // for custom commands or commands that aren't supported directly by this package. // // Methods that execute commands on the TPM may return errors from the TPM where a command responds // with a [ResponseCode] other than [ResponseSuccess]. These errors are in the form of *[TPMError], // *[TPMWarning], *[TPMHandleError], *[TPMSessionError], *[TPMParameterError] and *[TPMVendorError] // types. // // Some commands make use of resources on the TPM, and use of these resources may require // authorization with one of 3 roles depending on the command: user, admin or duplication. The role // determines the required authorization type (passphrase, HMAC session, or policy session), which // is dependent on the type of the resource. // // Commands that make use of resources on the TPM accept command handle arguments. Convenience // methods generally use [ResourceContext] to represent these. // // Convenience methods that require authorization for a [ResourceContext] provide an associated // [SessionContext] argument to represent a session. Setting this to nil specifies passphrase // authorization. A HMAC or policy session can be used by supplying a [SessionContext] associated // with a session of the corresponding type. // // If the authorization value of a resource is required as part of the authorization (eg, for // passphrase authorization, a HMAC session that is not bound to the specified resource, or a // policy session that contains the TPM2_PolicyPassword or TPM2_PolicyAuthValue assertion), it is // obtained from the [ResourceContext] supplied to the method and should be set by calling // [ResourceContext].SetAuthValue before the method is called. // // Where a command requires authorization with the user role for a resource, the following // authorization types are permitted: // // - [HandleTypePCR]: passphrase or HMAC session if no auth policy is set, or a policy session if // an auth policy is set. // - [HandleTypeNVIndex]: passphrase, HMAC session or policy session depending on attributes. // - [HandleTypePermanent]: passphrase or HMAC session. A policy session can also be used if an // auth policy is set. // - [HandleTypeTransient] / [HandleTypePersistent]: policy session. Passphrase or HMAC session // can also be used if [AttrWithUserAuth] is set. // // Where a command requires authorization with the admin role for a resource, the following // authorization types are permitted: // // - [HandleTypeNVIndex]: policy session. // - [HandleTypeTransient] / [HandleTypePersistent]: policy session. Passphrase or HMAC session // can also be used if [AttrAdminWithPolicy] is not set. // // Where a command requires authorization with the duplication role for a resource, a policy // session is required. // // Where a policy session is used for a resource that requires authorization with the admin or // duplication role, the session must contain the TPM2_PolicyCommandCode assertion. // // Some convenience methods also accept a variable number of optional [SessionContext] arguments - // these are for sessions that don't provide authorization for a corresponding TPM resource. These // sessions may be used for the purposes of session based parameter encryption or command auditing. // // TPMContext is not safe to use concurrently from multiple goroutines, unless specified otherwise. type TPMContext struct { device TPMDevice transport Transport permanentResources map[Handle]*permanentContext properties *tpmDeviceProperties execContext execContext } // Close calls Close on the transmission interface. This can be called on any goroutine, even if // a command is in progress on another goroutine. func (t *TPMContext) Close() error { if err := t.transport.Close(); err != nil { return &TransportError{"close", err} } return nil } // RunCommandBytes is a low-level interface for executing a command. The caller is responsible for // supplying a properly serialized command packet, which can be created with // [MarshalCommandPacket]. // // If successful, this function will return the response packet. No checking is performed on this // response packet. An error will only be returned if the transmission interface returns an error. // // Most users will want to use one of the many convenience functions provided by TPMContext // instead, or [TPMContext.StartCommand] if one doesn't already exist. func (t *TPMContext) RunCommandBytes(packet CommandPacket) (ResponsePacket, error) { if _, err := t.transport.Write(packet); err != nil { return nil, &TransportError{"write", err} } resp, err := io.ReadAll(t.transport) if err != nil { return nil, &TransportError{"read", err} } return ResponsePacket(resp), nil } // RunCommand is a low-level interface for executing a command. The caller supplies the command // code, list of command handles, command auth area and marshalled command parameters. The caller // should also supply a pointer to a response handle if the command returns one. On success, the // response parameter bytes and response auth area are returned. This function does no checking of // the auth response. // // A *[TransportError] will be returned if the transmission interface returns an error. // // One of *[TPMWarning], *[TPMError], *[TPMParameterError], *[TPMHandleError] or // *[TPMSessionError] will be returned if the TPM returns a response code other than // [ResponseSuccess]. // // There's almost no need for most users to use this API directly. Most users will want to use one // of the many convenience functions provided by TPMContext instead, or [TPMContext.StartCommand] // if one doesn't already exist. func (t *TPMContext) RunCommand(commandCode CommandCode, cHandles HandleList, cAuthArea []AuthCommand, cpBytes []byte, rHandle *Handle) (rpBytes []byte, rAuthArea []AuthResponse, err error) { if err := WriteCommandPacket(wrapTransportWriteErrors(t.transport), commandCode, cHandles, cAuthArea, cpBytes); err != nil { var te *TransportError if errors.As(err, &te) { return nil, nil, te } return nil, nil, fmt.Errorf("cannot send command: %w", err) } rc, rpBytes, rAuthArea, err := ReadResponsePacket(wrapTransportReadErrors(t.transport), rHandle) if err != nil { var te *TransportError if errors.As(err, &te) { return nil, nil, te } return nil, nil, &InvalidResponseError{commandCode, fmt.Errorf("cannot unmarshal response packet: %w", err)} } if err := DecodeResponseCode(commandCode, rc); err != nil { if _, isInvalidRc := err.(InvalidResponseCodeError); isInvalidRc { return nil, nil, &InvalidResponseError{commandCode, err} } return nil, nil, err } return rpBytes, rAuthArea, nil } // StartCommand is the high-level function for beginning the process of executing a command. It // returns a CommandContext that can be used to assemble a command, properly serialize a command // packet and then submit the packet for execution via [TPMContext.RunCommand]. // // Most users will want to use one of the many convenience functions provided by TPMContext, // which are just wrappers around this. func (t *TPMContext) StartCommand(commandCode CommandCode) *CommandContext { return &CommandContext{ dispatcher: &t.execContext, cmd: cmdContext{CommandCode: commandCode}} } // SetMaxSubmissions sets the maximum number of times that [CommandContext] will attempt to submit // a command before failing with an error. The default value is 5. Setting this to 1 disables // resubmission. Note that 1 and 0 behave the same. // // Each submission is performed after an incremental delay. The first submission is delayed for // 20ms, with the delay time doubling for each subsequent submission. // // Deprecated: This doesn't do anything now. func (t *TPMContext) SetMaxSubmissions(max uint) { } // SetCommandTimeout sets the maximum time that the context will wait for a response before a // command times out. Set this to [InfiniteTimeout] to disable the timeout entirely, which is // the default value. // // Note that there isn't a way to reattempt to the fetch the result of a command that times out. // If a command times out, the connection will generally be unusable for future commands. // // Deprecated: This always returns [ErrTimeoutNotSupported]. Timing out after a command has been // submitted doesn't make sense for this API, as there is no mechanism to obtain a response from // a command that previously timed out. func (t *TPMContext) SetCommandTimeout(timeout time.Duration) error { return ErrTimeoutNotSupported } // Transport returns the underlying transport for this context. func (t *TPMContext) Transport() Transport { return t.transport } // Device returns the device that the transport for this context was created from. func (t *TPMContext) Device() TPMDevice { return t.device } // InitProperties executes one or more TPM2_GetCapability commands to initialize properties used // internally by TPMContext. This is normally done automatically by functions that require these // properties when they are used for the first time, but this function is provided so that the // command can be audited, and so the exclusivity of an audit session can be preserved. // // Any sessions supplied should have the [AttrContinueSession] attribute set. func (t *TPMContext) InitProperties(sessions ...SessionContext) error { var err error var properties tpmDeviceProperties properties.maxBufferSize, err = t.GetMaxBufferSize(sessions...) if err != nil { return fmt.Errorf("cannot obtain TPM_PT_BUFFER_MAX property: %w", err) } properties.maxNVBufferSize, err = t.GetNVMaxBufferSize(sessions...) if err != nil { return fmt.Errorf("cannot obtain TPM_PT_NV_BUFFER_MAX property: %w", err) } properties.minPcrSelectSize, err = t.GetMinPCRSelectSize(sessions...) if err != nil { return fmt.Errorf("cannot obtain TPM_PT_PCR_SELECT_MIN property: %w", err) } t.properties = &properties return nil } func (t *TPMContext) initPropertiesIfNeeded() error { if t.properties != nil { return nil } return t.InitProperties() } // TPMDevice corresponds a TPM device. type TPMDevice interface { // Open opens a communication channel with the TPM device. The returned // channel will only be used from the same goroutine that TPMContext is // used from. Implementations must handle command reads and writes that // are split across multiple calls. Implementations of Open should be // safe to call from multiple goroutines simultaneously. Open() (Transport, error) fmt.Stringer } // OpenTPMDevice opens the supplied TPM device and returns a new instance of TPMContext which // communicates with the device using the newly opened communication channel. func OpenTPMDevice(device TPMDevice) (*TPMContext, error) { if device == nil { return nil, errors.New("no device") } transport, err := device.Open() if err != nil { return nil, err } tpm := &TPMContext{ device: device, transport: transport, permanentResources: make(map[Handle]*permanentContext), } tpm.execContext.dispatcher = tpm return tpm, nil } type dummyTPMDevice struct { transport Transport } func (d *dummyTPMDevice) Open() (Transport, error) { transport := d.transport if transport == nil { return nil, errors.New("cannot open transport from dummy device") } d.transport = nil return transport, nil } func (d *dummyTPMDevice) String() string { return "" } // NewTPMContext creates a new instance of TPMContext, which communicates with the TPM using the // transmission interface provided via the transport parameter. The transmission interface must not be // nil - it is expected that the caller checks the error returned from the function that is/ used // to create it. // // Deprecated: Use [OpenTPMDevice] instead. func NewTPMContext(transport Transport) *TPMContext { if transport == nil { panic("nil transmission interface") } device := &dummyTPMDevice{transport: transport} tpm, err := OpenTPMDevice(device) if err != nil { panic(err) } return tpm } ./github.com/canonical/go-tpm2/transport.go0000664000000000000000000000610400000000000015743 0ustar00// Copyright 2020 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package tpm2 import ( "errors" "io" "time" ) // InfiniteTimeout can be used to configure an infinite timeout. const InfiniteTimeout = -1 * time.Millisecond var ( // ErrTimeoutNotSupported indicates that a [Transport] implementation does not support // configuring the command timeout. ErrTimeoutNotSupported = errors.New("configurable command timeouts are not supported") // ErrTransportBusy should be returned from calls to Write if a previously // submitted command has not finished or not all of its bytes have // been read back yet. ErrTransportBusy = errors.New("transport is busy") // ErrTransportClosed indicates that a transport is closed. ErrTransportClosed = errors.New("transport already closed") ) // TCTI represents a communication channel to a TPM implementation. // // Deprecated: use [Transport] instead. type TCTI = Transport // Transport represents a communication channel to a TPM implementation. // // Implementations of the [io.Reader] and [io.Writer] parts of this can expect that they // will be called from the same goroutine and that they won't be used from multiple // goroutines. // // Implementations should handle the [io.Closer] part being called from any goroutine, // even when a Read or Write is in progress on another goroutine. type Transport interface { // Read is used to receive a response to a previously transmitted command. // Implementations should support a response being read using multiple calls // to Read (partial reads). The transportutil.BufferResponses API can assist // for transports that don't support this. Implementations that support // partial reads should not return parts of more than one command in a single // call. // // Implementations should only use io.EOF to indicate that no more bytes will // ever be read from this transport. Callers should be able to identify the end // of a response based on the ResponseHeader itself and the number of bytes read. Read(p []byte) (int, error) // Write is used to transmit a serialized command to the TPM implementation. // Implementations should support a command being sent across multiple calls // to Write, and should be able to identify the end of a command based on the // CommandHeader itself. The transportutil.BufferCommands API can assist for // transports that don't support this. Write(p []byte) (int, error) // Close closes the transport. Close() error } type transportWriter struct { w io.Writer } func (w *transportWriter) Write(data []byte) (int, error) { n, err := w.w.Write(data) if err != nil { return n, &TransportError{"write", err} } return n, nil } func wrapTransportWriteErrors(w io.Writer) io.Writer { return &transportWriter{w: w} } type transportReader struct { r io.Reader } func (r *transportReader) Read(data []byte) (int, error) { n, err := r.r.Read(data) if err != nil { return n, &TransportError{"read", err} } return n, nil } func wrapTransportReadErrors(r io.Reader) io.Reader { return &transportReader{r: r} } ./github.com/canonical/go-tpm2/transportutil/0000775000000000000000000000000000000000000016311 5ustar00./github.com/canonical/go-tpm2/transportutil/buffer.go0000664000000000000000000001152000000000000020110 0ustar00package transportutil import ( "bytes" "errors" "fmt" "io" "github.com/canonical/go-tpm2" "github.com/canonical/go-tpm2/mu" ) type commandBuffer struct { w io.Writer maxCommandSize uint32 buf []byte } type CommandBuffer interface { io.Writer // Len is the number of bytes currently in the command buffer. Len() int } // BufferCommands buffers writes written to the returned CommandBuffer and // writes complete commnd packets to the supplied io.Writer in a single // write. The maxCommandSize argument defines the maximum size of a // command. If the commandSize field of a command header indicates the // command packet size will be larger than maxCommandSize, an error will // be returned. // // If the supplied io.Writer returns an error on submission of a command // packet, the entire packet is discarded. // // The returned CommandBuffer only supports TPM command packets. It will fail if // any other type of packet is sent through it (eg, packets that have been // encapsulated for a specific transport), because it depends on being able // to decode the command header. func BufferCommands(w io.Writer, maxCommandSize uint32) CommandBuffer { return &commandBuffer{w: w, maxCommandSize: maxCommandSize} } func (b *commandBuffer) Write(data []byte) (n int, err error) { n = len(data) // The size of the buffer passed to us. buf := append(b.buf, data...) // Append the supplied buffer to what we have from previous writes and and store the slice in a temporary variable // Try to decode a command header from all of the data we have already. var hdr tpm2.CommandHeader _, err = mu.UnmarshalFromBytes(buf, &hdr) switch { case errors.Is(err, io.ErrUnexpectedEOF): // We don't have enough bytes for a command header yet. Store the temporary // buffer that we have for the next write. b.buf = buf return n, nil case err != nil: // This is an unexpected error. return 0, fmt.Errorf("cannot decode command header: %w", err) case hdr.CommandSize > b.maxCommandSize: // The decoded command header has an invalid command size. return 0, fmt.Errorf("invalid command size (%d bytes)", hdr.CommandSize) } // We have a command header. Save the temporary buffer slice which contains // the current write appended to all previous writes. b.buf = buf if len(b.buf) < int(hdr.CommandSize) { // We don't have enough bytes for a complete command yet, so return // now and wait for more writes. return n, nil } // We have enough bytes. Clear the buffer unconditionally on return, // including any error paths where they are encountered. defer func() { b.buf = nil }() // Send the command to the originally supplied io.Writer in a // single call. cmd := b.buf[:int(hdr.CommandSize)] remaining := len(b.buf[int(hdr.CommandSize):]) if _, err := b.w.Write(cmd); err != nil { return n, err } if remaining > 0 { // The caller supplied too many bytes for the command. Discard // the excess bytes, adjust n accordingly and return an // appropriate error. return n - remaining, io.ErrShortWrite } // Command sending completed successfully. return n, nil } func (b *commandBuffer) Len() int { return len(b.buf) } type responseBuffer struct { r io.Reader maxResponseSize uint32 rsp *bytes.Reader } type ResponseBuffer interface { io.Reader // Len is the remaining number of bytes to read. Len() int } // BufferResponses reads complete response packets from the supplied reader // in a single read and makes them available to the returned ResponseBuffer for // partial reading. The maxResponseSize argument defines the size of the read on // the supplied reader. // // The supplied reader will be passed a buffer of size maxResponseSize. It must // return a complete response packet when ready - it must not block waiting to // fill the supplied buffer. func BufferResponses(r io.Reader, maxResponseSize uint32) ResponseBuffer { return &responseBuffer{r: r, maxResponseSize: maxResponseSize} } func (b *responseBuffer) readNextResponse() error { buf := make([]byte, b.maxResponseSize) n, err := b.r.Read(buf) if err != nil { return err } b.rsp = bytes.NewReader(buf[:n]) return nil } func (b *responseBuffer) Read(data []byte) (n int, err error) { if b.rsp == nil { if err := b.readNextResponse(); err != nil { return 0, err } } n, err = b.rsp.Read(data) if b.rsp.Len() == 0 { // We've read all of the bytes from this response. b.rsp = nil // Make the next call wait for another response. if err == io.EOF { // It's possible we could get a io.EOF from the bytes.Reader here, but // tpm2.Transport.Read should never return this unless it will never // return any more bytes (eg, after it's closed). In this case, clear // the error. err = nil } } return n, err } func (b *responseBuffer) Len() int { if b.rsp == nil { return 0 } return b.rsp.Len() } ./github.com/canonical/go-tpm2/transportutil/mux.go0000664000000000000000000004367200000000000017465 0ustar00package transportutil import ( "bytes" "errors" "fmt" "io" "sync" "github.com/canonical/go-tpm2" "gopkg.in/tomb.v2" ) // ErrNotLocked is returned from methods of LockableTransport if the transport // instance doesn't hold the lock on the underlying downstream transport. var ErrNotLocked = errors.New("cannot use transport without it being locked") // LockableTransport extends the [tpm2.Transport] interface with the [sync.Locker] // interface, and permits multiple transports operating in multiple goroutines // to interact with a single underlying downstream transport, which is only ever // accessed from a single, dedicated goroutine, and which can only be accessed by // the instance of LockableTransport which holds an exclusive lock. // // The [Close] method of this has the same effect as calling // [MultiplexedTransportManager.Close] and can be accessed on any goroutine and // on any instance of LockableTransport associated with the same [MultiplexedTransportManager]. // // LockableTransport is agnostic to the bytes that are transeferred trrough it - // they could be valid TPM commands / responses or something else such as TPM // commands / responses encapsulated in some other protocol. type LockableTransport interface { tpm2.Transport sync.Locker } type lockableTransportImpl struct { manager *multiplexedTransportManagerImpl // the manager of the downstream transport that this transport fowards requests to. } func (t *lockableTransportImpl) Read(data []byte) (int, error) { if !t.beginOp() { return 0, ErrNotLocked } defer t.endOp() // Send the size of the supplied buffer. We don't want to read any // more bytes than this. select { case t.manager.expectedBytes <- len(data): case <-t.manager.tmb.Dying(): return 0, io.EOF } // Wait for the result from the transport var n int var err error select { case rspResult := <-t.manager.rspResult: n = rspResult.n err = rspResult.err case <-t.manager.tmb.Dying(): // A close has been requested, so unblock and return straight away return 0, io.EOF } if n > len(data) { // n should be equal to or less than the length of the supplied buffer return 0, errors.New("internal error: unexpected number of bytes returned from transport routine") } // Read the response from the main transport routine tmpData := make([]byte, n) // Make a temporary buffer to hold the bytes we're about to read from the transport routine nPipe, errPipe := t.manager.r.Read(tmpData) // Read from the transport routine n = copy(data, tmpData[:nPipe]) // Copy the read number of bytes from the temporary buffer into the supplied buffer switch { case err != nil: // This is an error from the underlying transport. return n, err case errPipe == io.EOF: // This is an error from the pipe between us and the transport routine, // because it has been closed. return n, io.EOF case errPipe != nil: // This is an unexpected error from the pipe between us and the transport routine. // If the transport routine returned an unexpected error, it will likely appear // here because the pipe gets closed with the error. return n, fmt.Errorf("cannot read response bytes from transport routine: %w", errPipe) } return n, nil } func (t *lockableTransportImpl) Write(data []byte) (int, error) { if !t.beginOp() { return 0, ErrNotLocked } defer t.endOp() // Send the length of data we've got to the transport routine select { case t.manager.readyBytes <- len(data): case <-t.manager.tmb.Dying(): // A close has been requested, so unblock and return straight away return 0, ErrClosed } // Write the command to the main transport routine _, err := t.manager.w.Write(data) switch { case errors.Is(err, io.ErrClosedPipe): // This is an error from the pipe between us and the transport routine, // because it has been closed. return 0, ErrClosed case err != nil: // This is an unexpected error from the pipe between us and the transport routine. // If the transport routine returned an unexpected error, it will likely appear // here because the pipe gets closed with the error. return 0, fmt.Errorf("cannot write command bytes to transport routine: %w", err) } // Wait for the result from the transport select { case cmdResult := <-t.manager.cmdResult: return cmdResult.n, cmdResult.err case <-t.manager.tmb.Dying(): } return 0, ErrClosed } func (t *lockableTransportImpl) Close() error { // Close can be called on any routine, so it's proxied straight through. return t.manager.Close() } func (t *lockableTransportImpl) beginOp() bool { locking := &t.manager.locking locking.cond.L.Lock() defer locking.cond.L.Unlock() if locking.holder != t { // We aren't the lock holder return false } // There shouldn't already be an op in progress if locking.holderOpInProgress { panic("internal error: operation already in progress") } // Set the flag indicating that an operation is in progress. This // prevents Unlock working without a panic. locking.holderOpInProgress = true return true } func (t *lockableTransportImpl) endOp() { locking := &t.manager.locking locking.cond.L.Lock() defer locking.cond.L.Unlock() if locking.holder != t { panic("internal error: cannot end operation: we aren't the lock holder") } if !locking.holderOpInProgress { panic("internal error: cannot end operation: operation not in progress") } // Clear the flag indicating that an operation is in progress. This // permits Unlock to be called. locking.holderOpInProgress = false } // Lock implements [sync.Locker.Lock]. func (t *lockableTransportImpl) Lock() { locking := &t.manager.locking locking.cond.L.Lock() defer locking.cond.L.Unlock() // Wait until there is no holder. for locking.holder != nil { locking.cond.Wait() } // There is no lock holder and we have the mutex. // Make sure the last holder didn't release the lock without clearing the // flag that indicates an operation is in progress. if locking.holderOpInProgress { panic("internal error: previous lock released whilst operation in progress") } // We are the new lock holder on the downstream transport. locking.holder = t } // Unlock implements [sync.Locker.Unlock]. func (t *lockableTransportImpl) Unlock() { locking := &t.manager.locking locking.cond.L.Lock() defer locking.cond.L.Unlock() // Make sure we're the current lock holder if locking.holder != t { panic("cannot release the lock - it isn't held by this transport") } // Make sure there isn't an operation in progress (there shouldn't really be, // as the methods of this instance should generally be called from the same // goroutine, perhaps with the exception of Close). if locking.holderOpInProgress { panic("cannot release the lock whilst an operation is in progress") } // Clear the current lock holder and signal any waiters. locking.holder = nil locking.cond.Signal() } // transportLoop handles communication directly with the io.Reader and io.Writer // parts of the supplied downstream transport. type transportLoop struct { transport io.ReadWriter // The Read/Write part of the underlying transport tmb *tomb.Tomb // For managing all goroutines created by this API readyBytes <-chan int // To receive the amount of bytes written to the public io.Writer r *io.PipeReader // To receive command bytes written to the public io.Writer cmdResult transportResultSendChan // To return the result of the Write to the underlying transport to the public io.Writer expectedBytes <-chan int // To receieve the amount of bytes the public io.Reader is called with w *io.PipeWriter // To send response bytes which will be read by the public io.Reader rspResult transportResultSendChan // To return the result of the Read from the underlying transport to the public io.Reader } func newTransportLoop(transport io.ReadWriter, tmb *tomb.Tomb, readyBytes <-chan int, r *io.PipeReader, cmdResult transportResultSendChan, expectedBytes <-chan int, w *io.PipeWriter, rspResult transportResultSendChan) *transportLoop { return &transportLoop{ transport: transport, tmb: tmb, readyBytes: readyBytes, r: r, cmdResult: cmdResult, expectedBytes: expectedBytes, w: w, rspResult: rspResult, } } func (l *transportLoop) run() (err error) { defer func() { // If the transport loop returned a tomb.ErrDying error, then it is // likely because of a call to the public io.Closer interface which // put the tomb into a dying state. If it's not already dying, we'll // generate a panic by returning this error from this function. // Test for that now. Also make sure that nil errors are only returned // when the tomb is already in a dying state. We want to make sure that // when this function returns, the tomb is always put into a dying state // if it wasn't previously. if l.tmb.Alive() && (err == nil || err == tomb.ErrDying) { // This will put the tomb into a dying state. err = errors.New("internal error: transport loop terminated with unexpected error") } // We might exit for reasons other than a call via the public io.Closer // interface, so try to handle that by unblocking any calls into a public // interface by closing the pipes that connects the public API to this // routine. We close them with the error returned from the transport loop, // unless that error is tomb.ErrDying, and then we close them with nil // instead. closeErr := err if closeErr == tomb.ErrDying { closeErr = nil } // Unblock public io.Writer l.r.CloseWithError(closeErr) if closeErr != nil { // Only send a transportResult if we have a non-nil error. // We're going to close the channel anyway. select { case l.cmdResult <- transportResult{err: closeErr}: default: } } close(l.cmdResult) // Unblock public io.Reader if closeErr != nil { // Only send a transportResult if we have a non-nil error. // We're going to close the channel anyway. select { case l.rspResult <- transportResult{err: closeErr}: default: } } close(l.rspResult) l.w.CloseWithError(closeErr) }() for l.tmb.Alive() { select { case ready := <-l.readyBytes: // Someone has called Write via a public io.Writer with ready number of bytes. // Copy these bytes into a local buffer. buf := new(bytes.Buffer) _, err := io.CopyN(buf, l.r, int64(ready)) switch { case err == io.EOF: // The write end was closed by a public io.Closer, so treat this // as a normal termination. We expect the tomb to be in a dying // state at this point. return tomb.ErrDying case err != nil: // Unexpected error. return fmt.Errorf("cannot read command bytes from public io.Writer: %w", err) } // Write the received bytes to the underlying transport. This can be // interrupted by any public io.Closer. n, err := l.transport.Write(buf.Bytes()) switch { case !l.tmb.Alive(): err = ErrClosed case err != nil: err = fmt.Errorf("cannot write command bytes to transport: %w", err) default: } // Send the Write result to the public io.Writer select { case l.cmdResult <- transportResult{n: n, err: err}: case <-l.tmb.Dying(): return tomb.ErrDying } case expected := <-l.expectedBytes: // Someone has called Read via a public io.Reader with a buffer that // as the expected number of bytes. data := make([]byte, expected) // Read the expected number of bytes from the underlying transport. This // can be interrupted by any public io.Closer. n, err := l.transport.Read(data) switch { case !l.tmb.Alive(): err = io.EOF case err != nil: err = fmt.Errorf("cannot read response bytes from transport: %w", err) } // Send the Read result to the public io.Reader. select { case l.rspResult <- transportResult{n: n, err: err}: // This is a blocking write case <-l.tmb.Dying(): return tomb.ErrDying } // Copy the read bytes to the public io.Reader. _, err = io.CopyN(l.w, bytes.NewReader(data), int64(n)) switch { case errors.Is(err, io.ErrClosedPipe): // The read end was closed by the public io.Closer, so treat this // as a normal termination. We expect the tomb to be in a dying // state at this point. return tomb.ErrDying case err != nil: // Unexpected error. return fmt.Errorf("cannot copy response bytes to public io.Reader: %w", err) } case <-l.tmb.Dying(): } } return tomb.ErrDying } // MultiplexedTransportManager permits multiple [LockableTransport] implementations // to interact with a single underlying downstream transport, which runs in its own // dedicated goroutine. Each [LockableTransport] can operate from an arbitrary // goroutine (noting the restrictions for Read and Write in the documentation for // [tpm2.Transport], and access to the main downstream transport is serialized via // an exclusive locking mechanism. // // This is useful in scenarios where some access to a transport has to happen on a // goroutine seaprate from the public API (ie, NewRetrierTransport, which communicates // with the transport from within a retry loop that runs on its own goroutine), but // where you still want the public API to be able to communicate directly with the // underlying transport. In this case, there are 2 [LockableTransport] implementations // - one accessed directly from the public API, and one accessed from the retry loop, // with accesses to both being proxied to the same transport in the same goroutine, and // with access being serialized using a lock. type MultiplexedTransportManager interface { // NewTransport creates a new transport that proxies communications to the // main downstream transport inside a lock. This can be called on any // goroutine, although note that the returned transport should only be // used from the calling goroutine (note the restrictions in the documentation // for tpm2.Transport. NewTransport() LockableTransport // Close closes the main downstream transport and ends its goroutines. Calling // Close on any LockableTransport created by the implementation of this should // have the same effect. Close() error } type multiplexedTransportManagerLockData struct { // The fields in this struct are protected by the lock associated with the condition variable. cond *sync.Cond holder *lockableTransportImpl // The public transport currently permitted to access the underlying transport (the lock holder) holderOpInProgress bool // Whether the lock holder is in a read or write operation } type multiplexedTransportManagerImpl struct { tmb *tomb.Tomb // To manager goroutines created by this API // Locking data. Only one public transport can hold the lock at a time. locking multiplexedTransportManagerLockData // Communications used by the public transport with hold of the lock to // communicate with the main downstream transport on its own routine. readyBytes chan<- int // Tell the transport routine how many bytes are in the command Write w *io.PipeWriter // Command channnel cmdResult transportResultRecvChan // Receive the result of the Write to the main underlying transport expectedBytes chan<- int // Tell the transport routine how many bytes were passed to the response Read r *io.PipeReader // Response channel rspResult transportResultRecvChan // Receive the result of the Read from the main underlying transport // io.Closer helpers. transportCloserOnce sync.Once // ensures we only close the underlying transport once. transportCloser io.Closer // the closer implementation for the underlying transport. } // NewMultiplexedTransportManager returns a new MultiplexedTransportManager to permit the supplied // transport to be accessed from multiple goroutines, with an exclusive locking mechanism to // serialize access to the suplied transport. The supplied transport is only ever accessed directly // from its own dedicate goroutine, and is accessed indirectly via [LockableTransport] instances // that can be accessed from arbitrary goroutines, with the requests being forwarded to the supplied // transport using a mix of go channels and in-process pipes. // // When done with the returned manager, one must call its Close method to shut down any created // goroutines. This can either be done directly, or indirectly via one of its associated // [LockableTransport] instances. func NewMultiplexedTransportManager(transport tpm2.Transport) MultiplexedTransportManager { // Construct the command channel readyBytes := make(chan int) wr, ww := io.Pipe() // wr is read by the transport routine // ww is written to from the public io.Writer. cmdResult := make(transportResultChan) // Construct the response channel expectedBytes := make(chan int) rr, rw := io.Pipe() // rr is read by the public io.Reader // rw is written to from the transport routine rspResult := make(transportResultChan) tmb := new(tomb.Tomb) // Spin up the transport routine tmb.Go(func() error { loop := newTransportLoop(transport, tmb, readyBytes, wr, cmdResult, expectedBytes, rw, rspResult) return loop.run() }) var mu sync.Mutex return &multiplexedTransportManagerImpl{ tmb: tmb, locking: multiplexedTransportManagerLockData{ cond: sync.NewCond(&mu), }, readyBytes: readyBytes, w: ww, cmdResult: cmdResult, expectedBytes: expectedBytes, r: rr, rspResult: rspResult, transportCloser: transport, } } func (t *multiplexedTransportManagerImpl) NewTransport() LockableTransport { return &lockableTransportImpl{manager: t} } func (t *multiplexedTransportManagerImpl) Close() error { // Make all routines die when they reach an appropriate point t.tmb.Kill(nil) // Close pipes to unblock the transport routine t.w.Close() t.r.Close() // Close the underlying transport var closeErr error = ErrClosed t.transportCloserOnce.Do(func() { closeErr = t.transportCloser.Close() }) // Wait for all goroutines to terminate if err := t.tmb.Wait(); err != nil { return err } // We're done! return closeErr } ./github.com/canonical/go-tpm2/transportutil/retrier.go0000664000000000000000000004272500000000000020326 0ustar00package transportutil import ( "bytes" "encoding/binary" "errors" "fmt" "io" "math" "sync" "time" "github.com/canonical/go-tpm2" "github.com/canonical/go-tpm2/mu" "gopkg.in/tomb.v2" ) // RetryParams contains parameters for [NewRetrierTransport]. type RetryParams struct { // MaxRetries is the maximum number of times a command is retried. // A command is always dispatched once. Setting this to zero disables // retries. MaxRetries uint // InitialBackoff is the amount of time to wait before submitting the // first retry. InitialBackoff time.Duration // BackoffRate determines how much more time to wait before submitting // each subsequent retry. Eg, if InitialBackoff is 20ms and this field // is 2, the first retry will be attempted after a delay of 20ms, then // the next retry after 40ms, then 80ms etc. BackoffRate uint } // retrierLoop handles re-dispatching of commands that should be retried. It // is accessed from a dedicated retry goroutine. type retrierLoop struct { params RetryParams // supplied retrier parameters transport tpm2.Transport // supplied underlying transport, accessed only from retrier routine tomb *tomb.Tomb // tracker for goroutines (shared with retrierTransport) r *io.PipeReader // command channel from public io.Writer w *io.PipeWriter // response channel to public io.Reader rspResult transportResultSendChan // response channel results to public io.Reader } func newRetrierLoop(params *RetryParams, transport tpm2.Transport, tomb *tomb.Tomb, r *io.PipeReader, w *io.PipeWriter, rspResult transportResultSendChan) *retrierLoop { return &retrierLoop{ params: *params, transport: transport, tomb: tomb, r: r, w: w, rspResult: rspResult, } } func (l *retrierLoop) runCommand(commandCode tpm2.CommandCode, cmd []byte) ([]byte, error) { retryDelay := l.params.InitialBackoff // set the retry delay to the initial backoff time. for tries := l.params.MaxRetries + 1; l.tomb.Alive() && tries > 0; tries-- { // Loop for the maximum specified number of tries or until // the tomb enters a dying state. // Send the full command to the underlying transport. This can be unblocked by // closing the transport from the public io.Closer, in which case the tomb will // be in a dying state and we want to terminate cleanly. If this fails, we'll not // try again. if _, err := l.transport.Write(cmd); err != nil { if !l.tomb.Alive() { return nil, tomb.ErrDying } return nil, fmt.Errorf("cannot send command to transport: %w", err) } // Create a buffer to hold the entire response packet. rsp := new(bytes.Buffer) tr := io.TeeReader(l.transport, rsp) // Wait for the response header from the underlying transport. This can be // unblocked by closing the transport from the public io.Closer, in which // case the tomb will be in a dying state and we want to terminate cleanly. // If this fails, we'll not try again because without a decoded header, we // don't know how many more bytes are remaining and we need the response buffer // to be empty before we can send a new command. var hdr tpm2.ResponseHeader if _, err := mu.UnmarshalFromReader(tr, &hdr); err != nil { if !l.tomb.Alive() { return nil, tomb.ErrDying } return nil, fmt.Errorf("cannot unmarshal response header from transport: %w", err) } if int64(hdr.ResponseSize) < int64(binary.Size(hdr)) { return nil, errors.New("response header received from transport has invalid commandSize: size smaller than header") } // Does the response indicate that the command should be retried? Note that // in any case where the response code is not 0, the TPM response is just the // response header, so there are no more bytes for us to read. err := tpm2.DecodeResponseCode(commandCode, hdr.ResponseCode) if tries > 1 && (tpm2.IsTPMWarning(err, tpm2.WarningYielded, commandCode) || (tpm2.IsTPMWarning(err, tpm2.WarningTesting, commandCode) && commandCode != tpm2.CommandSelfTest) || tpm2.IsTPMWarning(err, tpm2.WarningRetry, commandCode)) { // Yes, we have retries left and should retry. Sleep for the current retry delay select { case <-time.NewTimer(retryDelay).C: // Scale the next retry delay by the specified backoff rate. retryDelay *= time.Duration(l.params.BackoffRate) case <-l.tomb.Dying(): } // Retry! continue } // There's no need to retry the command, or we have no more retry attempts left. Wait // for and read the rest of the response from the underlying transport. This can be // unblocked by closing the transport from the public io.Closer, in which case the tomb // will be in a dying state and we want to terminate cleanly. if _, err := io.CopyN(io.Discard, tr, int64(hdr.ResponseSize)-int64(binary.Size(hdr))); err != nil { if !l.tomb.Alive() { return nil, tomb.ErrDying } return nil, fmt.Errorf("cannot receive remainder of response from transport: %w", err) } // Return the whole response. return rsp.Bytes(), nil } return nil, tomb.ErrDying } func (l *retrierLoop) run() (err error) { defer func() { // If the retry loop returned a tomb.ErrDying error, then it is // likely because of a call to the public io.Closer interface which // put the tomb into a dying state. If it's not already dying, we'll // generate a panic by returning this error from this function. // Test for that now. Also make sure that nil errors are only returned // when the tomb is already in a dying state. We want to make sure that // when this function returns, the tomb is always put into a dying state // if it wasn't previously. if l.tomb.Alive() && (err == nil || err == tomb.ErrDying) { // This will put the tomb into a dying state. err = errors.New("internal error: retry loop terminated with unexpected error") } // We might exit for reasons other than a call via the public io.Closer // interface, so try to handle this case by unblocking any current calls // into the public io.Reader or io.Writer interface by closing the pipes // that connects the public API to this routine. We close them with the // error returned from the retry loop, unless that error is tomb.ErrDying, // and then we close them with nil instead. closeErr := err if err == tomb.ErrDying { closeErr = nil } // Unblock public io.Writer l.r.CloseWithError(closeErr) // Unblock public io.Reader if closeErr != nil { // Only send a transportResult if we have a non-nil error. // We're going to close the channel anyway. select { case l.rspResult <- transportResult{err: closeErr}: default: } } close(l.rspResult) l.w.CloseWithError(closeErr) }() for l.tomb.Alive() { cmd := new(bytes.Buffer) tr := io.TeeReader(l.r, cmd) // Wait for the next command header from the public io.Writer var hdr tpm2.CommandHeader _, err := mu.UnmarshalFromReader(tr, &hdr) switch { case errors.Is(err, io.ErrUnexpectedEOF) || err == io.EOF: // The write end was closed, most likely via a call into the public io.Closer, // in which case the tomb will be in a dying state. Treat this as a normal // termination, returning an appropriate error. We expect the public io.Writer // side to handle returning an appropriate error (ErrClosed) - we don't do that // here because we want the tomb to die with success. Note that mu.UnmarshalFrom* // functions never return io.EOF yet, but may do in the future. return tomb.ErrDying case err != nil: // Unexpected error return fmt.Errorf("cannot decode command header provided to public io.Writer interface: %w", err) } if int64(hdr.CommandSize) < int64(binary.Size(hdr)) { return errors.New("command header provided to public io.Writer has invalid commandSize: size smaller than header") } // Wait for and read the rest of the command supplied to the public io.Writer _, err = io.CopyN(io.Discard, tr, int64(hdr.CommandSize)-int64(binary.Size(hdr))) switch { case err == io.EOF: // The write end was closed, most likely via a call into the public io.Closer, // in which case the tomb will be in a dying state. Treat this as a normal // termination, returning an appropriate error. We expect the public io.Writer // side to handle returning an appropriate error (ErrClosed) - we don't do that // here because we want the tomb to die with success. return tomb.ErrDying case err != nil: // Unexpected error return fmt.Errorf("cannot obtain remainder of command packet provided to public io.Writer interface: %w", err) } // We have a full command packet - run it! rsp, err := l.runCommand(hdr.CommandCode, cmd.Bytes()) if err != nil { // Command dispatch failed in some way. We don't distinguish between send (from io.Writer) // and receive (to io.Reader) errors because writing to the underlying transport to send // a command packet happens inside of the retry loop and might happen several times. The // public io.Writer interface doesn't block on this, so errors as a result of this are // picked up by the public io.Reader interface when waiting for a response. return err } // Command was dispatched to the underlying transport successfully and we already have a full // response. Send information about the results of the read from the transport to the public // io.Reader to unblock it. Note that this will block until the next call into the public // io.Reader, or a call into the public io.Closer. select { case l.rspResult <- transportResult{n: len(rsp)}: case <-l.tomb.Dying(): // A close has been requested, so unblock and return straight away return tomb.ErrDying } // Copy the whole resonse to the public io.Reader, which uses the received transportResult // to create a temporary io.LimitedReader. This will block until there is a caller into the // public io.Reader to consume the bytes, or a call into the public io.Closer. _, err = io.Copy(l.w, bytes.NewReader(rsp)) switch { case err == io.ErrClosedPipe: // The read end was closed, most likely via a call into the public io.Closer, in which // case the tomb will be in a dying state. Treat this as a normal termination, returning // an approproate error. We expect the public io.Reader size to handle returning an // appropriate error (io.EOF) - we don't do that here because we want the tomb to die // with success. return tomb.ErrDying case err != nil: // Unexpected error return fmt.Errorf("cannot send response bytes to public io.Reader: %w", err) } } return tomb.ErrDying } // retrierTransport is an implementation to tpm2.Transport and is the public // facing part of this interface. type retrierTransport struct { tomb *tomb.Tomb // tracker for goroutines w *io.PipeWriter // command channel to retry routine. r *io.PipeReader // response channel from retry routine. rspResult transportResultRecvChan // response channel results received from retry routine. transportCloserOnce sync.Once // ensures we only close the underlying transport once. transportCloser io.Closer // the closer implementation for the underlying transport. current *io.LimitedReader // current response packet } // NewRetrierTransport returns a new transport that resubmits commands on certain // errors, which is necessary for transports that don't already do this. This // functionality isn't implemented in the public [tpm2.TPMContext] API because some // transports already support automatic command resubmission - the linux character // device being one of them. // // The returned transport expects to only see TPM command and response packets. It will // fail if any other type of packet is sent through it (eg, packets that have been // encapsulated for a specific transport). // // The supplied transport must implement partial read support for the [io.Reader] side, // as described in the documentation for [tpm2.Transport]. The [io.Writer] part will // only ever receive commands in a single write call due to the nature in which the // retry loop works. // // The [io.Reader] part of the returned transport supports partial reads. The [io.Writer] // part of the returned transport supports a command being split across multiple writes, // as described in the documentation for [tpm2.Transport]. // // The supplied params is used to customize the transport (see documentation for [RetryParams]. // // Note that the return values of the [io.Writer] implementation of the returned transport // don't reflect what was written to the supplied transport. The returned number of bytes // are those written to a pipe that connects the public API to the retry routine. The returned // error may reflect errors that occur as a result of processing the supplied bytes on the // retry routine. As commands are written to the supplied transport in a loop in the case // where a command has to be retried, any errors that occur when writing to the supplied // transport may be returned to the [io.Reader] implementation of the returned transport // instead. // // The returned transport should be closed eventually with its [Close] method. This not // only closes the supplied transport, but also shuts down the retry loop routine that // was communicating with it. func NewRetrierTransport(transport tpm2.Transport, params RetryParams) tpm2.Transport { if params.MaxRetries == math.MaxUint { params.MaxRetries -= 1 // Avoid an overflow in retrierLoop.runCommand/ } // Construct the command channel wr, ww := io.Pipe() // wr is read by the retry routine // ww is written to from the public io.Writer. // Construct the response channel rr, rw := io.Pipe() // rr is read by the public io.Reader // rw is written to from the retry routine // Construct a channel to send the result of the Read from the underlying // transport to the public io.Reader rspResult := make(transportResultChan) tmb := new(tomb.Tomb) // Run the retry routine tmb.Go(func() error { loop := newRetrierLoop(¶ms, transport, tmb, wr, rw, rspResult) return loop.run() }) return &retrierTransport{ tomb: tmb, w: ww, r: rr, rspResult: rspResult, transportCloser: transport, } } func (t *retrierTransport) Read(data []byte) (int, error) { if t.current == nil { // We have no more data to return. Wait for the next response packet, or an error. select { case rsp, ok := <-t.rspResult: // We have some sort of response switch { case !ok: // The channel is closed. return 0, io.EOF case rsp.err != nil: // We'll get an error if the retry loop exits with an error - just return // it unmodified. return 0, rsp.err default: // We have a response, so create a limited reader for it. t.current = &io.LimitedReader{R: t.r, N: int64(rsp.n)} } case <-t.tomb.Dying(): // A close has been requested, so just return io.EOF. return 0, io.EOF } } // We have a response to read. n, err := t.current.Read(data) if t.current.N == 0 { // We've read all of the bytes from this response. t.current = nil // Make the next call wait for another response. // It's possible that io.LimitedReader could return io.EOF with the call that empties // it, but tpm2.Transport should never return io.EOF unless it will never return any // more bytes. Clear the error in this case. if err == io.EOF { err = nil } } // We still have more bytes in this response. switch { case err == io.EOF: // The pipe was closed either from the read side via the io.Closer interface or // because the retry loop terminated and closed the write side - we generally // shouldn't hit this case though because the retry loop will return an error, // which will be passed to io.PipeWriter.CloseWithError. We'll pick that error // up in the following branch, unless it is io.EOF. return n, io.EOF case err != nil: // Unexpected error return n, fmt.Errorf("cannot obtain all requested response bytes from retry loop: %w", err) } return n, nil } func (t *retrierTransport) Write(data []byte) (int, error) { // n in this case isn't the number of bytes submitted to the underlying // transport - it's the number of bytes we've written into the pipe // that connects us to the retry loop. What is actually submitted to // the underlying transport isn't available to this function, and we // don't wait for it. In the case where a command is retried, the command // may be written to the underlying transport multiple times. n, err := t.w.Write(data) switch { case err == io.ErrClosedPipe: // Pipe closed via the public io.Closer interface. The retry loop side // will receive a io.EOF of io.ErrUnexpectedEOF and terminate cleanly. return n, ErrClosed case err != nil: // An error occurred on the retry loop side which caused it to terminate // and call io.PipeReader.CloseWithError on the command pipe. return n, fmt.Errorf("cannot send command data to retry loop: %w", err) } return n, nil } func (t *retrierTransport) Close() error { // Mark tomb as dying to unblock channel senders/receivers and so the // retry loop terminates. t.tomb.Kill(nil) // Close pipes to unblock I/O between us and the retry loop side. t.w.Close() // Unblocks reads in the retry loop. t.r.Close() // Unblocks writes in the retry loop. // Close the underlying transport. This may unblock parts of the // retry loop that are blocked on interactions with it. We only // do this once. If it's already closed, we respond with ErrClosed. var closeErr error = ErrClosed t.transportCloserOnce.Do(func() { closeErr = t.transportCloser.Close() }) // Wait for all goroutines to terminate if err := t.tomb.Wait(); err != nil { return err } // We're done! return closeErr } ./github.com/canonical/go-tpm2/transportutil/transportutil.go0000664000000000000000000000120100000000000021564 0ustar00/* Package transportutil provides helpers when implementing tpm2.Transport */ package transportutil import "github.com/canonical/go-tpm2" var ( // ErrBusy should be returned from calls to Write if a previously // submitted command has not finished or not all of its bytes have // been read back yet. ErrBusy = tpm2.ErrTransportBusy // ErrClosed indicates that a transport is closed. ErrClosed = tpm2.ErrTransportClosed ) type transportResult struct { n int err error } type ( transportResultChan = chan transportResult transportResultSendChan = chan<- transportResult transportResultRecvChan = <-chan transportResult ) ./github.com/canonical/go-tpm2/types.go0000664000000000000000000001223300000000000015053 0ustar00// Copyright 2019 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package tpm2 import ( "errors" "fmt" "io" "github.com/canonical/go-tpm2/mu" ) // TPMManufacturer corresponds to the TPM manufacturer and is returned // when querying the value [PropertyManufacturer]. type TPMManufacturer uint32 const ( TPMManufacturerAMD TPMManufacturer = 0x414D4400 // AMD TPMManufacturerATML TPMManufacturer = 0x41544D4C // Atmel TPMManufacturerBRCM TPMManufacturer = 0x4252434D // Broadcom TPMManufacturerHPE TPMManufacturer = 0x48504500 // HPE TPMManufacturerIBM TPMManufacturer = 0x49424d00 // IBM TPMManufacturerIFX TPMManufacturer = 0x49465800 // Infineon TPMManufacturerINTC TPMManufacturer = 0x494E5443 // Intel TPMManufacturerLEN TPMManufacturer = 0x4C454E00 // Lenovo TPMManufacturerMSFT TPMManufacturer = 0x4D534654 // Microsoft TPMManufacturerNSM TPMManufacturer = 0x4E534D20 // National Semiconductor TPMManufacturerNTZ TPMManufacturer = 0x4E545A00 // Nationz TPMManufacturerNTC TPMManufacturer = 0x4E544300 // Nuvoton Technology TPMManufacturerQCOM TPMManufacturer = 0x51434F4D // Qualcomm TPMManufacturerSMSC TPMManufacturer = 0x534D5343 // SMSC TPMManufacturerSTM TPMManufacturer = 0x53544D20 // ST Microelectronics TPMManufacturerSMSN TPMManufacturer = 0x534D534E // Samsung TPMManufacturerSNS TPMManufacturer = 0x534E5300 // Sinosun TPMManufacturerTXN TPMManufacturer = 0x54584E00 // Texas Instruments TPMManufacturerWEC TPMManufacturer = 0x57454300 // Winbond TPMManufacturerROCC TPMManufacturer = 0x524F4343 // Fuzhou Rockchip TPMManufacturerGOOG TPMManufacturer = 0x474F4F47 // Google ) // PCRValues contains a collection of PCR values, keyed by HashAlgorithmId and // PCR index. It can be marshalled to and from the TPM wire format. type PCRValues map[HashAlgorithmId]map[int]Digest // Marshal implements [mu.CustomMarshaller.Marshal]. func (v PCRValues) Marshal(w io.Writer) error { pcrs, digests, err := v.ToListAndSelection() if err != nil { return err } _, err = mu.MarshalToWriter(w, pcrs, digests) return err } // Unmarshal implements [mu.CustomMarshaller.Unmarshal]. func (v *PCRValues) Unmarshal(r io.Reader) error { v2 := make(PCRValues) *v = v2 var pcrs PCRSelectionList var digests DigestList if _, err := mu.UnmarshalFromReader(r, &pcrs, &digests); err != nil { return err } n, err := v2.AddValues(pcrs, digests) if err != nil { return err } if n != len(digests) { return errors.New("too many digests") } return nil } // SelectionList computes a list of PCR selections corresponding to this set of PCR // values. This will always return a valid selection or an error. func (v PCRValues) SelectionList() (PCRSelectionList, error) { var out PCRSelectionList for h := range v { s := PCRSelection{Hash: h} for p := range v[h] { s.Select = append(s.Select, p) } out = append(out, s) } return out.Sort() } // ToListAndSelection converts this set of PCR values to a list of PCR // selections and list of PCR values in a form that can be serialized, // although if you want to do that then you can pass PCRValues directly // to [mu.MarshalToBytes] or [mu.MarshalToWriter]. func (v PCRValues) ToListAndSelection() (pcrs PCRSelectionList, digests DigestList, err error) { pcrs, err = v.SelectionList() if err != nil { return nil, nil, err } for _, p := range pcrs { if !p.Hash.IsValid() { return nil, nil, errors.New("invalid digest algorithm") } for _, s := range p.Select { digest := v[p.Hash][s] if len(digest) != p.Hash.Size() { return nil, nil, errors.New("invalid digest size") } digests = append(digests, digest) } } return pcrs, digests, nil } // AddValues the PCR values from the supplied list of PCR selections and list // of values. func (v PCRValues) AddValues(pcrs PCRSelectionList, digests DigestList) (n int, err error) { for _, p := range pcrs { if !p.Hash.IsValid() { return 0, errors.New("invalid digest algorithm") } // Convert the selection to a bitmap and then back again // to ensure it is ordered correctly. bmp, err := p.Select.ToBitmap(0) if err != nil { return 0, fmt.Errorf("invalid selection: %w", err) } sel := bmp.ToPCRs() if _, ok := v[p.Hash]; !ok { v[p.Hash] = make(map[int]Digest) } for _, s := range sel { if len(digests) == 0 { return 0, errors.New("insufficient digests") } d := digests[0] digests = digests[1:] if len(d) != p.Hash.Size() { return 0, errors.New("invalid digest size") } v[p.Hash][s] = d n++ } } return n, nil } // SetValue sets the PCR value for the specified PCR and PCR bank. func (v PCRValues) SetValue(alg HashAlgorithmId, pcr int, digest Digest) error { if !alg.IsValid() { return errors.New("invalid algorithm") } sel := PCRSelect{pcr} if _, err := sel.ToBitmap(0); err != nil { return errors.New("invalid PCR") } if len(digest) != alg.Size() { return errors.New("invalid digest size") } if _, ok := v[alg]; !ok { v[alg] = make(map[int]Digest) } v[alg][pcr] = digest return nil } // PublicTemplate exists to allow a type to be marshalled to the // Template type. type PublicTemplate interface { ToTemplate() (Template, error) } ./github.com/canonical/go-tpm2/types_algs.go0000664000000000000000000005465700000000000016101 0ustar00// Copyright 2019 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package tpm2 import ( "reflect" "github.com/canonical/go-tpm2/mu" ) // This file contains types defined in section 11 (Algorithm Parameters // and Structures) in part 2 of the library spec. // 11.1) Symmetric // SymKeyBitsU is a union type that corresponds to the TPMU_SYM_KEY_BITS type and is used to // specify symmetric encryption key sizes. The selector type is [AlgorithmId]. Mapping of // selector values to fields is as follows: // - AlgorithmAES: Sym // - AlgorithmSM4: Sym // - AlgorithmCamellia: Sym // - AlgorithmXOR: XOR // - AlgorithmNull: none type SymKeyBitsU struct { Sym uint16 XOR HashAlgorithmId } // Select implements [mu.Union]. func (b *SymKeyBitsU) Select(selector reflect.Value) interface{} { switch selector.Convert(reflect.TypeOf(AlgorithmId(0))).Interface().(AlgorithmId) { case AlgorithmAES: fallthrough case AlgorithmSM4: fallthrough case AlgorithmCamellia: return &b.Sym case AlgorithmXOR: return &b.XOR case AlgorithmNull: return mu.NilUnionValue default: return nil } } // SymModeU is a union type that corresponds to the TPMU_SYM_MODE type. The selector // type is [AlgorithmId]. The mapping of selector values to fields is as follows: // - AlgorithmAES: Sym // - AlgorithmSM4: Sym // - AlgorithmCamellia: Sym // - AlgorithmXOR: none // - AlgorithmNull: none type SymModeU struct { Sym SymModeId } // Select implements [mu.Union]. func (m *SymModeU) Select(selector reflect.Value) interface{} { switch selector.Convert(reflect.TypeOf(AlgorithmId(0))).Interface().(AlgorithmId) { case AlgorithmAES: fallthrough case AlgorithmSM4: fallthrough case AlgorithmCamellia: return &m.Sym case AlgorithmXOR: fallthrough case AlgorithmNull: return mu.NilUnionValue default: return nil } } // SymDef corresponds to the TPMT_SYM_DEF type, and is used to select the algorithm // used for parameter encryption. type SymDef struct { Algorithm SymAlgorithmId // Symmetric algorithm KeyBits *SymKeyBitsU // Symmetric key size Mode *SymModeU // Symmetric mode } // SymDefObject corresponds to the TPMT_SYM_DEF_OBJECT type, and is used to define an // object's symmetric algorithm. type SymDefObject struct { Algorithm SymObjectAlgorithmId // Symmetric algorithm KeyBits *SymKeyBitsU // Symmetric key size Mode *SymModeU // Symmetric mode } // SymKey corresponds to the TPM2B_SYM_KEY type. type SymKey []byte // SymCipherParams corresponds to the TPMS_SYMCIPHER_PARMS type, and contains the // parameters for a symmetric object. type SymCipherParams struct { Sym SymDefObject } // Label corresponds to the TPM2B_LABEL type. type Label []byte // Derive corresponds to the TPMS_DERIVE type. type Derive struct { Label Label Context Label } // SensitiveCreate corresponds to the TPMS_SENSITIVE_CREATE type and is used to define // the values to be placed in the sensitive area of a created object. type SensitiveCreate struct { UserAuth Auth // Authorization value Data SensitiveData // Secret data } // SensitiveData corresponds to the TPM2B_SENSITIVE_DATA type. type SensitiveData []byte // SchemeHash corresponds to the TPMS_SCHEME_HASH type, and is used for schemes that only // require a hash algorithm to complete their definition. type SchemeHash struct { HashAlg HashAlgorithmId // Hash algorithm used to digest the message } // SchemeECDAA corresponds to the TPMS_SCHEME_ECDAA type. type SchemeECDAA struct { HashAlg HashAlgorithmId // Hash algorithm used to digest the message Count uint16 } // KeyedHashSchemeId corresponds to the TPMI_ALG_KEYEDHASH_SCHEME type type KeyedHashSchemeId AlgorithmId const ( KeyedHashSchemeHMAC KeyedHashSchemeId = KeyedHashSchemeId(AlgorithmHMAC) // TPM_ALG_HMAC KeyedHashSchemeXOR KeyedHashSchemeId = KeyedHashSchemeId(AlgorithmXOR) // TPM_ALG_XOR KeyedHashSchemeNull KeyedHashSchemeId = KeyedHashSchemeId(AlgorithmNull) // TPM_ALG_NULL ) // SchemeHMAC corresponds to the TPMS_SCHEME_HMAC type. type SchemeHMAC = SchemeHash // SchemeXOR corresponds to the TPMS_SCHEME_XOR type, and is used to define the XOR encryption // scheme. type SchemeXOR struct { HashAlg HashAlgorithmId // Hash algorithm used to digest the message KDF KDFAlgorithmId // Hash algorithm used for the KDF } // SchemeKeyedHashU is a union type that corresponds to the TPMU_SCHEME_KEYED_HASH type. // The selector type is [KeyedHashSchemeId]. The mapping of selector values to fields is // as follows: // - KeyedHashSchemeHMAC: HMAC // - KeyedHashSchemeXOR: XOR // - KeyedHashSchemeNull: none type SchemeKeyedHashU struct { HMAC *SchemeHMAC XOR *SchemeXOR } // Select implements [mu.Union]. func (d *SchemeKeyedHashU) Select(selector reflect.Value) interface{} { switch selector.Interface().(KeyedHashSchemeId) { case KeyedHashSchemeHMAC: return &d.HMAC case KeyedHashSchemeXOR: return &d.XOR case KeyedHashSchemeNull: return mu.NilUnionValue default: return nil } } // KeyedHashScheme corresponds to the TPMT_KEYEDHASH_SCHEME type. type KeyedHashScheme struct { Scheme KeyedHashSchemeId // Scheme selector Details *SchemeKeyedHashU // Scheme specific parameters } // 11.2 Assymetric // 11.2.1 Signing Schemes type SigSchemeRSASSA = SchemeHash type SigSchemeRSAPSS = SchemeHash type SigSchemeECDSA = SchemeHash type SigSchemeECDAA = SchemeECDAA type SigSchemeSM2 = SchemeHash type SigSchemeECSchnorr = SchemeHash type SigSchemeEDDSA = SchemeHash type SigSchemeEDDSA_PH = SchemeHash // SigSchemeU is a union type that corresponds to the TPMU_SIG_SCHEME type. The // selector type is [SigSchemeId]. The mapping of selector value to fields is as follows: // - SigSchemeAlgRSASSA: RSASSA // - SigSchemeAlgRSAPSS: RSAPSS // - SigSchemeAlgECDSA: ECDSA // - SigSchemeAlgECDAA: ECDAA // - SigSchemeAlgSM2: SM2 // - SigSchemeAlgECSchnorr: ECSchnorr // - SigSchemeAlgEDDSA: EDDSA // - SigSchemeAlgEDDSA_PH: EDDSA_PH // - SigSchemeAlgHMAC: HMAC // - SigSchemeAlgNull: none type SigSchemeU struct { RSASSA *SigSchemeRSASSA RSAPSS *SigSchemeRSAPSS ECDSA *SigSchemeECDSA ECDAA *SigSchemeECDAA SM2 *SigSchemeSM2 ECSchnorr *SigSchemeECSchnorr EDDSA *SigSchemeEDDSA EDDSA_PH *SigSchemeEDDSA_PH HMAC *SchemeHMAC } // Select implements [mu.Union]. func (s *SigSchemeU) Select(selector reflect.Value) interface{} { switch selector.Interface().(SigSchemeId) { case SigSchemeAlgRSASSA: return &s.RSASSA case SigSchemeAlgRSAPSS: return &s.RSAPSS case SigSchemeAlgECDSA: return &s.ECDSA case SigSchemeAlgECDAA: return &s.ECDAA case SigSchemeAlgSM2: return &s.SM2 case SigSchemeAlgECSchnorr: return &s.ECSchnorr case SigSchemeAlgEDDSA: return &s.EDDSA case SigSchemeAlgEDDSA_PH: return &s.EDDSA_PH case SigSchemeAlgHMAC: return &s.HMAC case SigSchemeAlgNull: return mu.NilUnionValue default: return nil } } // Any returns the signature scheme associated with scheme as a *SchemeHash. // It panics if the specified scheme is invalid ([SigSchemeId.IsValid] returns // false), or the appropriate field isn't set. // // Deprecated: Use [SigScheme.AnyDetails] instead. func (s SigSchemeU) Any(scheme SigSchemeId) *SchemeHash { switch scheme { case SigSchemeAlgRSASSA: return (*SchemeHash)(&(*s.RSASSA)) case SigSchemeAlgRSAPSS: return (*SchemeHash)(&(*s.RSAPSS)) case SigSchemeAlgECDSA: return (*SchemeHash)(&(*s.ECDSA)) case SigSchemeAlgECDAA: return &SchemeHash{HashAlg: s.ECDAA.HashAlg} case SigSchemeAlgSM2: return (*SchemeHash)(&(*s.SM2)) case SigSchemeAlgECSchnorr: return (*SchemeHash)(&(*s.ECSchnorr)) case SigSchemeAlgEDDSA: return (*SchemeHash)(&(*s.EDDSA)) case SigSchemeAlgEDDSA_PH: return (*SchemeHash)(&(*s.EDDSA_PH)) case SigSchemeAlgHMAC: return (*SchemeHash)(&(*s.HMAC)) default: panic("invalid scheme") } } // SigScheme corresponds to the TPMT_SIG_SCHEME type. type SigScheme struct { Scheme SigSchemeId // Scheme selector Details *SigSchemeU // Scheme specific parameters } // AnyDetails returns the details of the signature scheme. If the scheme is [SigSchemeAlgNull], // then nil is returned. If the scheme is not otherwise valid, it will panic. func (s *SigScheme) AnyDetails() *SchemeHash { switch { case s.Scheme == SigSchemeAlgNull: return nil case !s.Scheme.IsValid(): panic("invalid scheme") } data := mu.MustMarshalToBytes(s) var scheme SigSchemeId var details *SchemeHash if _, err := mu.UnmarshalFromBytes(data, &scheme, &details); err != nil { panic(err) } return details } // 11.2.2 Encryption Schemes type EncSchemeRSAES = Empty type EncSchemeOAEP = SchemeHash type KeySchemeECDH = SchemeHash type KeySchemeECMQV = SchemeHash // 11.2.3 Key Derivation Schemes type SchemeMGF1 = SchemeHash type SchemeKDF1_SP800_56A = SchemeHash type SchemeKDF2 = SchemeHash type SchemeKDF1_SP800_108 = SchemeHash // KDFSchemeU is a union type that corresponds to the TPMU_KDF_SCHEME // type. The selector type is [KDFAlgorithmId]. The mapping of selector // value to field is as follows: // - KDFAlgorithmMGF1: MGF1 // - KDFAlgorithmKDF1_SP800_56A: KDF1_SP800_56A // - KDFAlgorithmKDF2: KDF2 // - KDFAlgorithmKDF1_SP800_108: KDF1_SP800_108 // - KDFAlgorithmNull: none type KDFSchemeU struct { MGF1 *SchemeMGF1 KDF1_SP800_56A *SchemeKDF1_SP800_56A KDF2 *SchemeKDF2 KDF1_SP800_108 *SchemeKDF1_SP800_108 } // Select implements [mu.Union]. func (s *KDFSchemeU) Select(selector reflect.Value) interface{} { switch selector.Interface().(KDFAlgorithmId) { case KDFAlgorithmMGF1: return &s.MGF1 case KDFAlgorithmKDF1_SP800_56A: return &s.KDF1_SP800_56A case KDFAlgorithmKDF2: return &s.KDF2 case KDFAlgorithmKDF1_SP800_108: return &s.KDF1_SP800_108 case KDFAlgorithmNull: return mu.NilUnionValue default: return nil } } // KDFScheme corresponds to the TPMT_KDF_SCHEME type. type KDFScheme struct { Scheme KDFAlgorithmId // Scheme selector Details *KDFSchemeU // Scheme specific parameters. } // AsymSchemeId corresponds to the TPMI_ALG_ASYM_SCHEME type type AsymSchemeId AlgorithmId // IsValid determines if the scheme is a valid asymmetric scheme. func (s AsymSchemeId) IsValid() bool { switch s { case AsymSchemeRSASSA: case AsymSchemeRSAES: case AsymSchemeRSAPSS: case AsymSchemeOAEP: case AsymSchemeECDSA: case AsymSchemeECDH: case AsymSchemeECDAA: case AsymSchemeSM2: case AsymSchemeECSchnorr: case AsymSchemeECMQV: case AsymSchemeEDDSA: case AsymSchemeEDDSA_PH: default: return false } return true } // HasDigest determines if the asymmetric scheme is associated with // a digest algorithm. func (s AsymSchemeId) HasDigest() bool { switch s { case AsymSchemeRSASSA: case AsymSchemeRSAPSS: case AsymSchemeOAEP: case AsymSchemeECDSA: case AsymSchemeECDH: case AsymSchemeECDAA: case AsymSchemeSM2: case AsymSchemeECSchnorr: case AsymSchemeECMQV: case AsymSchemeEDDSA: case AsymSchemeEDDSA_PH: default: return false } return true } const ( AsymSchemeNull AsymSchemeId = AsymSchemeId(AlgorithmNull) // TPM_ALG_NULL AsymSchemeRSASSA AsymSchemeId = AsymSchemeId(AlgorithmRSASSA) // TPM_ALG_RSASSA AsymSchemeRSAES AsymSchemeId = AsymSchemeId(AlgorithmRSAES) // TPM_ALG_RSAES AsymSchemeRSAPSS AsymSchemeId = AsymSchemeId(AlgorithmRSAPSS) // TPM_ALG_RSAPSS AsymSchemeOAEP AsymSchemeId = AsymSchemeId(AlgorithmOAEP) // TPM_ALG_OAEP AsymSchemeECDSA AsymSchemeId = AsymSchemeId(AlgorithmECDSA) // TPM_ALG_ECDSA AsymSchemeECDH AsymSchemeId = AsymSchemeId(AlgorithmECDH) // TPM_ALG_ECDH AsymSchemeECDAA AsymSchemeId = AsymSchemeId(AlgorithmECDAA) // TPM_ALG_ECDAA AsymSchemeSM2 AsymSchemeId = AsymSchemeId(AlgorithmSM2) // TPM_ALG_SM2 AsymSchemeECSchnorr AsymSchemeId = AsymSchemeId(AlgorithmECSchnorr) // TPM_ALG_ECSCHNORR AsymSchemeECMQV AsymSchemeId = AsymSchemeId(AlgorithmECMQV) // TPM_ALG_ECMQV AsymSchemeEDDSA AsymSchemeId = AsymSchemeId(AlgorithmEDDSA) // TPM_ALG_EDDSA AsymSchemeEDDSA_PH AsymSchemeId = AsymSchemeId(AlgorithmEDDSA_PH) // TPM_ALG_EDDSA_PH AsymSchemeLMS AsymSchemeId = AsymSchemeId(AlgorithmLMS) // TPM_ALG_LMS AsymSchemeXMSS AsymSchemeId = AsymSchemeId(AlgorithmXMSS) // TPM_ALG_XMSS ) // AsymSchemeU is a union type that corresponds to the TPMU_ASYM_SCHEME type. The // selector type is [AsymSchemeId]. The mapping of selector values to fields is as follows: // - AsymSchemeRSASSA: RSASSA // - AsymSchemeRSAES: RSAES // - AsymSchemeRSAPSS: RSAPSS // - AsymSchemeOAEP: OAEP // - AsymSchemeECDSA: ECDSA // - AsymSchemeECDH: ECDH // - AsymSchemeECDAA: ECDAA // - AsymSchemeSM2: SM2 // - AsymSchemeECSchnorr: ECSchnorr // - AsymSchemeECMQV: ECMQV // - AsymSchemeEDDSA: EDDSA // - AsymSchemeEDDSA_PH: EDDSA_PH // - AsymSchemeNull: none type AsymSchemeU struct { RSASSA *SigSchemeRSASSA RSAES *EncSchemeRSAES RSAPSS *SigSchemeRSAPSS OAEP *EncSchemeOAEP ECDSA *SigSchemeECDSA ECDH *KeySchemeECDH ECDAA *SigSchemeECDAA SM2 *SigSchemeSM2 ECSchnorr *SigSchemeECSchnorr ECMQV *KeySchemeECMQV EDDSA *SigSchemeEDDSA EDDSA_PH *SigSchemeEDDSA_PH } // Select implements [mu.Union]. func (s *AsymSchemeU) Select(selector reflect.Value) interface{} { switch selector.Convert(reflect.TypeOf(AsymSchemeId(0))).Interface().(AsymSchemeId) { case AsymSchemeRSASSA: return &s.RSASSA case AsymSchemeRSAES: return &s.RSAES case AsymSchemeRSAPSS: return &s.RSAPSS case AsymSchemeOAEP: return &s.OAEP case AsymSchemeECDSA: return &s.ECDSA case AsymSchemeECDH: return &s.ECDH case AsymSchemeECDAA: return &s.ECDAA case AsymSchemeSM2: return &s.SM2 case AsymSchemeECSchnorr: return &s.ECSchnorr case AsymSchemeECMQV: return &s.ECMQV case AsymSchemeEDDSA: return &s.EDDSA case AsymSchemeEDDSA_PH: return &s.EDDSA_PH case AsymSchemeNull: return mu.NilUnionValue default: return nil } } // Any returns the asymmetric scheme associated with scheme as a *SchemeHash. // It panics if the specified scheme does not have an associated digest algorithm // ([AsymSchemeId.HasDigest] returns false), or if the appropriate field isn't set. // // Deprecated: Use [AsymScheme.AnyDetails], [RSAScheme.AnyDetails] or // [ECCScheme.AnyDetails] instead. func (s AsymSchemeU) Any(scheme AsymSchemeId) *SchemeHash { if !scheme.HasDigest() { panic("invalid asymmetric scheme") } switch scheme { case AsymSchemeRSASSA: return (*SchemeHash)(&(*s.RSASSA)) case AsymSchemeRSAPSS: return (*SchemeHash)(&(*s.RSAPSS)) case AsymSchemeOAEP: return (*SchemeHash)(&(*s.OAEP)) case AsymSchemeECDSA: return (*SchemeHash)(&(*s.ECDSA)) case AsymSchemeECDH: return (*SchemeHash)(&(*s.ECDH)) case AsymSchemeECDAA: return &SchemeHash{HashAlg: s.ECDAA.HashAlg} case AsymSchemeSM2: return (*SchemeHash)(&(*s.SM2)) case AsymSchemeECSchnorr: return (*SchemeHash)(&(*s.ECSchnorr)) case AsymSchemeECMQV: return (*SchemeHash)(&(*s.ECMQV)) case AsymSchemeEDDSA: return (*SchemeHash)(&(*s.EDDSA)) case AsymSchemeEDDSA_PH: return (*SchemeHash)(&(*s.EDDSA_PH)) default: panic("not reached") } } // AsymScheme corresponds to the TPMT_ASYM_SCHEME type. type AsymScheme struct { Scheme AsymSchemeId // Scheme selector Details *AsymSchemeU // Scheme specific parameters } // AnyDetails returns the details of the asymmetric scheme. If the scheme is [AsymSchemeNull], // or doesn't have a digest, then nil is returned. If the scheme is not otherwise valid, it // will panic. func (s *AsymScheme) AnyDetails() *SchemeHash { switch { case s.Scheme == AsymSchemeNull: return nil case !s.Scheme.HasDigest(): return nil case !s.Scheme.IsValid(): panic("invalid scheme") } data := mu.MustMarshalToBytes(s) var scheme AsymSchemeId var details *SchemeHash if _, err := mu.UnmarshalFromBytes(data, &scheme, &details); err != nil { panic(err) } return details } // 11.2.4 RSA // RSASchemeId corresponds to the TPMI_ALG_RSA_SCHEME type. type RSASchemeId AsymSchemeId const ( RSASchemeNull RSASchemeId = RSASchemeId(AlgorithmNull) // TPM_ALG_NULL RSASchemeRSASSA RSASchemeId = RSASchemeId(AlgorithmRSASSA) // TPM_ALG_RSASSA RSASchemeRSAES RSASchemeId = RSASchemeId(AlgorithmRSAES) // TPM_ALG_RSAES RSASchemeRSAPSS RSASchemeId = RSASchemeId(AlgorithmRSAPSS) // TPM_ALG_RSAPSS RSASchemeOAEP RSASchemeId = RSASchemeId(AlgorithmOAEP) // TPM_ALG_OAEP ) // RSAScheme corresponds to the TPMT_RSA_SCHEME type. type RSAScheme struct { Scheme RSASchemeId // Scheme selector Details *AsymSchemeU // Scheme specific parameters. } // AnyDetails returns the details of the RSA scheme. If the scheme is [RSASchemeNull], // or doesn't have a digest, then nil is returned. If the scheme is not otherwise valid, it // will panic. func (s *RSAScheme) AnyDetails() *SchemeHash { scheme := AsymScheme{ Scheme: AsymSchemeId(s.Scheme), Details: s.Details} return scheme.AnyDetails() } // PublicKeyRSA corresponds to the TPM2B_PUBLIC_KEY_RSA type. type PublicKeyRSA []byte // PrivateKeyRSA corresponds to the TPM2B_PRIVATE_KEY_RSA type. type PrivateKeyRSA []byte // 11.2.5 ECC // ECCParameter corresponds to the TPM2B_ECC_PARAMETER type. type ECCParameter []byte // ECCPoint corresponds to the TPMS_ECC_POINT type, and contains the coordinates // that define an ECC point. type ECCPoint struct { X ECCParameter // X coordinate Y ECCParameter // Y coordinate } // ECCSchemeId corresponds to the TPMI_ALG_ECC_SCHEME type. type ECCSchemeId AsymSchemeId const ( ECCSchemeNull ECCSchemeId = ECCSchemeId(AlgorithmNull) // TPM_ALG_NULL ECCSchemeECDSA ECCSchemeId = ECCSchemeId(AlgorithmECDSA) // TPM_ALG_ECDSA ECCSchemeECDH ECCSchemeId = ECCSchemeId(AlgorithmECDH) // TPM_ALG_ECDH ECCSchemeECDAA ECCSchemeId = ECCSchemeId(AlgorithmECDAA) // TPM_ALG_ECDAA ECCSchemeSM2 ECCSchemeId = ECCSchemeId(AlgorithmSM2) // TPM_ALG_SM2 ECCSchemeECSchnorr ECCSchemeId = ECCSchemeId(AlgorithmECSchnorr) // TPM_ALG_ECSCHNORR ECCSchemeECMQV ECCSchemeId = ECCSchemeId(AlgorithmECMQV) // TPM_ALG_ECMQV ) // ECCScheme corresponds to the TPMT_ECC_SCHEME type. type ECCScheme struct { Scheme ECCSchemeId // Scheme selector Details *AsymSchemeU // Scheme specific parameters. } // AnyDetails returns the details of the ECC scheme. If the scheme is [ECCSchemeNull] // then nil is returned. If the scheme is not otherwise valid, it will panic. func (s *ECCScheme) AnyDetails() *SchemeHash { scheme := AsymScheme{ Scheme: AsymSchemeId(s.Scheme), Details: s.Details} return scheme.AnyDetails() } // 11.3 Signatures // SignatureRSA corresponds to the TPMS_SIGNATURE_RSA type. type SignatureRSA struct { Hash HashAlgorithmId // Hash algorithm used to digest the message Sig PublicKeyRSA // Signature, which is the same size as the public key } // SignatureECC corresponds to the TPMS_SIGNATURE_ECC type. type SignatureECC struct { Hash HashAlgorithmId // Hash is the digest algorithm used in the signature process SignatureR ECCParameter SignatureS ECCParameter } type SignatureRSASSA = SignatureRSA type SignatureRSAPSS = SignatureRSA type SignatureECDSA = SignatureECC type SignatureECDAA = SignatureECC type SignatureSM2 = SignatureECC type SignatureECSchnorr = SignatureECC type SignatureEDDSA = SignatureECC type SignatureEDDSA_PH = SignatureECC // SignatureU is a union type that corresponds to TPMU_SIGNATURE. The selector // type is [SigSchemeId]. The mapping of selector values to fields is as follows: // - SigSchemeAlgRSASSA: RSASSA // - SigSchemeAlgRSAPSS: RSAPSS // - SigSchemeAlgECDSA: ECDSA // - SigSchemeAlgECDAA: ECDAA // - SigSchemeAlgSM2: SM2 // - SigSchemeAlgECSchnorr: ECSchnorr // - SigSchemeAlgEDDSA: EDDSA // - SigSchemeAlgEDDSA_PH: EDDSA_PH // - SigSchemeAlgHMAC: HMAC // - SigSchemeAlgNull: none type SignatureU struct { RSASSA *SignatureRSASSA RSAPSS *SignatureRSAPSS ECDSA *SignatureECDSA ECDAA *SignatureECDAA SM2 *SignatureSM2 ECSchnorr *SignatureECSchnorr EDDSA *SignatureEDDSA EDDSA_PH *SignatureEDDSA_PH HMAC *TaggedHash } // Select implements [mu.Union]. func (s *SignatureU) Select(selector reflect.Value) interface{} { switch selector.Interface().(SigSchemeId) { case SigSchemeAlgRSASSA: return &s.RSASSA case SigSchemeAlgRSAPSS: return &s.RSAPSS case SigSchemeAlgECDSA: return &s.ECDSA case SigSchemeAlgECDAA: return &s.ECDAA case SigSchemeAlgSM2: return &s.SM2 case SigSchemeAlgECSchnorr: return &s.ECSchnorr case SigSchemeAlgEDDSA: return &s.EDDSA case SigSchemeAlgEDDSA_PH: return &s.EDDSA_PH case SigSchemeAlgHMAC: return &s.HMAC case SigSchemeAlgNull: return mu.NilUnionValue default: return nil } } // Any returns the signature associated with scheme as a *SchemeHash. It // panics if scheme is [SigSchemeAlgNull] or the appropriate field isn't // set. // // Deprecated: Use [Signature.Digest] instead. func (s SignatureU) Any(scheme SigSchemeId) *SchemeHash { if !scheme.IsValid() { panic("invalid signature scheme") } switch scheme { case SigSchemeAlgRSASSA: return &SchemeHash{HashAlg: s.RSASSA.Hash} case SigSchemeAlgRSAPSS: return &SchemeHash{HashAlg: s.RSAPSS.Hash} case SigSchemeAlgECDSA: return &SchemeHash{HashAlg: s.ECDSA.Hash} case SigSchemeAlgECDAA: return &SchemeHash{HashAlg: s.ECDAA.Hash} case SigSchemeAlgSM2: return &SchemeHash{HashAlg: s.SM2.Hash} case SigSchemeAlgECSchnorr: return &SchemeHash{HashAlg: s.ECSchnorr.Hash} case SigSchemeAlgEDDSA: return &SchemeHash{HashAlg: s.EDDSA.Hash} case SigSchemeAlgEDDSA_PH: return &SchemeHash{HashAlg: s.EDDSA_PH.Hash} case SigSchemeAlgHMAC: return &SchemeHash{HashAlg: s.HMAC.HashAlg} default: panic("not reached") } } // Signature corresponds to the TPMT_SIGNATURE type which represents a // signature. type Signature struct { SigAlg SigSchemeId // Signature algorithm Signature *SignatureU // Actual signature } // HashAlg returns the digest algorithm used to create the signature. This will panic if // the signature algorithm is not valid ([SigSchemeId.IsValid] returns false) or if the signature // structure is otherwise invalid ([mu.IsValid] returns false). The signature structure will be // valid if it was constructed by the [github.com/canonical/go-tpm2/mu] package. func (s *Signature) HashAlg() HashAlgorithmId { if !s.SigAlg.IsValid() { panic("invalid scheme") } data := mu.MustMarshalToBytes(s) var alg SigSchemeId var hashAlg HashAlgorithmId if _, err := mu.UnmarshalFromBytes(data, &alg, &hashAlg); err != nil { panic(err) } return hashAlg } // 11.4) Key/Secret Exchange // EncryptedSecret corresponds to the TPM2B_ENCRYPTED_SECRET type. type EncryptedSecret []byte ./github.com/canonical/go-tpm2/types_attributes.go0000664000000000000000000002343100000000000017323 0ustar00// Copyright 2019 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package tpm2 // This file contains types defined in section 8 (Attributes) in // part 2 of the library spec. // AlgorithmAttributes corresponds to the TPMA_ALGORITHM type and // represents the attributes for an algorithm. type AlgorithmAttributes uint32 const ( AttrAsymmetric AlgorithmAttributes = 1 << 0 AttrSymmetric AlgorithmAttributes = 1 << 1 AttrHash AlgorithmAttributes = 1 << 2 AttrObject AlgorithmAttributes = 1 << 3 AttrSigning AlgorithmAttributes = 1 << 8 AttrEncrypting AlgorithmAttributes = 1 << 9 AttrMethod AlgorithmAttributes = 1 << 10 ) // ObjectAttributes corresponds to the TPMA_OBJECT type, and represents // the attributes for an object. type ObjectAttributes uint32 const ( AttrFixedTPM ObjectAttributes = 1 << 1 // fixedTPM AttrStClear ObjectAttributes = 1 << 2 // stClear AttrFixedParent ObjectAttributes = 1 << 4 // fixedParent AttrSensitiveDataOrigin ObjectAttributes = 1 << 5 // sensitiveDataOrigin AttrUserWithAuth ObjectAttributes = 1 << 6 // userWithAuth AttrAdminWithPolicy ObjectAttributes = 1 << 7 // adminWithPolicy AttrNoDA ObjectAttributes = 1 << 10 // noDA AttrEncryptedDuplication ObjectAttributes = 1 << 11 // encryptedDuplication AttrRestricted ObjectAttributes = 1 << 16 // restricted AttrDecrypt ObjectAttributes = 1 << 17 // decrypt AttrSign ObjectAttributes = 1 << 18 // sign ) // SessionAttributes corresponds to the TPMA_SESSION type, and represents // the attributes for a session. type SessionAttributes uint8 const ( // AttrContinueSession corresponds to continueSession and specifies that the session should not be flushed // from the TPM after it is used. If a session is used without this flag, it will be flushed from the TPM // after the command completes successfully. In this case, the HandleContext associated with the session // will be invalidated. AttrContinueSession SessionAttributes = 1 << iota // AttrAuditExclusive corresponds to auditExclusive and indicates that the command should only be executed // if the session is exclusive at the start of the command. A session becomes exclusive when it is used for // auditing for the first time, or if the AttrAuditReset attribute is provided. A session will remain // exclusive until the TPM executes any command where the exclusive session isn't used for auditing, if // that command allows for audit sessions to be provided. // // Setting this on SessionContext implies AttrAudit. AttrAuditExclusive // AttrAuditReset corresponds to auditReset and indicates that the audit digest of the session should be reset. // The session will subsequently become exclusive. A session will remain exclusive until the TPM executes any // command where the exclusive session isn't used for auditing, if that command allows for audit sessions to be // provided. // // Setting this on SessionContext implies AttrAudit. AttrAuditReset // AttrCommandEncrypt corresponds to decrypt and specifies that the session should be used for encryption of the // first command parameter before being sent from the host to the TPM. This can only be used for parameters that // have types corresponding to TPM2B prefixed TCG types, and requires a session that was configured with a valid // symmetric algorithm via the symmetric argument of TPMContext.StartAuthSession. AttrCommandEncrypt SessionAttributes = 1 << (iota + 2) // AttrResponseEncrypt corresponds to encrypt and specifies that the session should be used for encryption of the // first response parameter before being sent from the TPM to the host. This can only be used for parameters that // have types corresponding to TPM2B prefixed TCG types, and requires a session that was configured with a valid // symmetric algorithm via the symmetric argument of TPMContext.StartAuthSession. This package automatically // decrypts the received encrypted response parameter. AttrResponseEncrypt // AttrAudit corresponds to audit and indicates that the session should be used for auditing. If this is the first // time that the session is used for auditing, then this attribute will result in the session becoming exclusive. // A session will remain exclusive until the TPM executes any command where the exclusive session isn't used for // auditing, if that command allows for audit sessions to be provided. AttrAudit ) // Locality corresponds to the TPMA_LOCALITY type. The 5 LSBs are used // to represent localities 1 to 4. Localities from 32 to 255 are represented // by setting any of the 3 MSBs. type Locality uint8 const ( LocalityZero Locality = 1 << 0 // TPM_LOC_ZERO LocalityOne Locality = 1 << 1 // TPM_LOC_ONE LocalityTwo Locality = 1 << 2 // TPM_LOC_TWO LocalityThree Locality = 1 << 3 // TPM_LOC_THREE LocalityFour Locality = 1 << 4 // TPM_LOC_FOUR ) // IsValid returns whether this value represents one or more valid // localities. The zero value does not represent any valid localities. func (l Locality) IsValid() bool { return l > 0 } // IsExtended indicates whether this value represents an extended locality, // which is a locality greater than or equal to 32. Note that the Locality // type cannot represent localities between 5 and 31. func (l Locality) IsExtended() bool { return 0xe0&l > 0 } // IsMultiple indicates whether this value represents multiple localities. // This is only possible for localities 0 to 4. func (l Locality) IsMultiple() bool { if l.IsExtended() { return false } found := false for n := uint8(0); n < 5; n++ { if l&(1< 0 { if found { return true } found = true } } return false } // Values returns the localities represented by this value as a slice of // integers. func (l Locality) Values() []uint8 { if l.IsExtended() { return []uint8{uint8(l)} } var out []uint8 for n := uint8(0); n < 5; n++ { if l&(1< 0 { out = append(out, n) } } return out } // Value returns the locality represented by this value as an integer. It // will panic if it doesn't represent any valid locality ([IsValid] returns // false), or if it represents multiple localities ([IsMultiple] returns // true). func (l Locality) Value() uint8 { vals := l.Values() if len(vals) != 1 { panic("unset or multiple localities are represented") } return vals[0] } // PermanentAttributes corresponds to the TPMA_PERMANENT type and is returned // when querying the value of [PropertyPermanent]. type PermanentAttributes uint32 const ( AttrOwnerAuthSet PermanentAttributes = 1 << 0 // ownerAuthSet AttrEndorsementAuthSet PermanentAttributes = 1 << 1 // endorsementAuthSet AttrLockoutAuthSet PermanentAttributes = 1 << 2 // lockoutAuthSet AttrDisableClear PermanentAttributes = 1 << 8 // disableClear AttrInLockout PermanentAttributes = 1 << 9 // inLockout AttrTPMGeneratedEPS PermanentAttributes = 1 << 10 // tpmGeneratedEPS ) // StatupClearAttributes corresponds to the TPMA_STARTUP_CLEAR type and // is used to report details of properties that reset after a Startup(CLEAR). // It is returned when querying the value of [PropertyStartupClear]. type StartupClearAttributes uint32 const ( AttrPhEnable StartupClearAttributes = 1 << 0 // phEnable AttrShEnable StartupClearAttributes = 1 << 1 // shEnable AttrEhEnable StartupClearAttributes = 1 << 2 // ehEnable AttrPhEnableNV StartupClearAttributes = 1 << 3 // phEnableNV AttrOrderly StartupClearAttributes = 1 << 31 // orderly ) // MemoryAttributes corresponds to the TPMA_MEMORY type and is used to // report details about memory management. It is returned when querying // the value of [PropertyMemory]. type MemoryAttributes uint32 const ( AttrSharedRAM MemoryAttributes = 1 << 0 // sharedRAM AttrSharedNV MemoryAttributes = 1 << 1 // sharedNV AttrObjectCopiedToRAM MemoryAttributes = 1 << 2 // objectCopiedToRam ) // CommandAttributes corresponds to the TPMA_CC type and represents the // attributes of a command. It also encodes the command code to which these // attributes belong, and the number of command handles for the command. type CommandAttributes uint32 // CommandCode returns the command code that a set of attributes belongs to. func (a CommandAttributes) CommandCode() CommandCode { return CommandCode(a & (AttrV | 0xffff)) } // NumberOfCommandHandles returns the number of command handles for the // command that a set of attributes belong to. func (a CommandAttributes) NumberOfCommandHandles() int { return int((a & AttrCHandles) >> attrCHandlesShift) } const ( attrCHandlesShift = 25 AttrCommandIndex CommandAttributes = 0xffff // commandIndex AttrNV CommandAttributes = 1 << 22 // nv AttrExtensive CommandAttributes = 1 << 23 // extensive AttrFlushed CommandAttributes = 1 << 24 // flushed AttrCHandles CommandAttributes = 7 << attrCHandlesShift // cHandles AttrRHandle CommandAttributes = 1 << 28 // rHandle AttrV CommandAttributes = 1 << 29 // V ) // ModeAttributes correspnds to TPMA_MODES and is returned when querying // the value of PropertyModes. type ModeAttributes uint32 const ( ModeFIPS140_2 ModeAttributes = 1 << 0 // FIPS_140_2 ModeFIPS140_3 ModeAttributes = 1 << 1 // FIPS_140_3 ModeFIPS140_3_Indicator ModeAttributes = 3 << 2 // FIPS_140_3_INDICATOR ) type FIPS140_3_Indicator uint8 const ( FIPS140_3_NonSecurityService FIPS140_3_Indicator = 0x00 FIPS140_3_ApprovedSecurityService FIPS140_3_Indicator = 0x01 FIPS140_3_NonApprovedSecurityService FIPS140_3_Indicator = 0x10 ) func (a ModeAttributes) FIPS140_3_Indicator() FIPS140_3_Indicator { return FIPS140_3_Indicator((a & ModeFIPS140_3_Indicator) >> 2) } ./github.com/canonical/go-tpm2/types_constants.go0000664000000000000000000013123400000000000017152 0ustar00// Copyright 2019 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package tpm2 import ( "crypto/elliptic" "fmt" ) // This file contains types defined in section 6 (Contants) in // part 2 of the library spec. // TPMGenerated corresponds to the TPM_GENERATED type. type TPMGenerated uint32 const ( TPMGeneratedValue TPMGenerated = 0xff544347 // TPM_GENERATED_VALUE ) // AlgorithmId corresponds to the TPM_ALG_ID type. type AlgorithmId uint16 const ( AlgorithmError AlgorithmId = 0x0000 // TPM_ALG_ERROR AlgorithmRSA AlgorithmId = 0x0001 // TPM_ALG_RSA AlgorithmTDES AlgorithmId = 0x0003 // TPM_ALG_TDES AlgorithmSHA1 AlgorithmId = 0x0004 // TPM_ALG_SHA1 AlgorithmHMAC AlgorithmId = 0x0005 // TPM_ALG_HMAC AlgorithmAES AlgorithmId = 0x0006 // TPM_ALG_AES AlgorithmMGF1 AlgorithmId = 0x0007 // TPM_ALG_MGF1 AlgorithmKeyedHash AlgorithmId = 0x0008 // TPM_ALG_KEYEDHASH AlgorithmXOR AlgorithmId = 0x000a // TPM_ALG_XOR AlgorithmSHA256 AlgorithmId = 0x000b // TPM_ALG_SHA256 AlgorithmSHA384 AlgorithmId = 0x000c // TPM_ALG_SHA384 AlgorithmSHA512 AlgorithmId = 0x000d // TPM_ALG_SHA512 AlgorithmSHA256_192 AlgorithmId = 0x000e // TPM_ALG_SHA256_192 AlgorithmNull AlgorithmId = 0x0010 // TPM_ALG_NULL AlgorithmSM3_256 AlgorithmId = 0x0012 // TPM_ALG_SM3_256 AlgorithmSM4 AlgorithmId = 0x0013 // TPM_ALG_SM4 AlgorithmRSASSA AlgorithmId = 0x0014 // TPM_ALG_RSASSA AlgorithmRSAES AlgorithmId = 0x0015 // TPM_ALG_RSAES AlgorithmRSAPSS AlgorithmId = 0x0016 // TPM_ALG_RSAPSS AlgorithmOAEP AlgorithmId = 0x0017 // TPM_ALG_OAEP AlgorithmECDSA AlgorithmId = 0x0018 // TPM_ALG_ECDSA AlgorithmECDH AlgorithmId = 0x0019 // TPM_ALG_ECDH AlgorithmECDAA AlgorithmId = 0x001a // TPM_ALG_ECDAA AlgorithmSM2 AlgorithmId = 0x001b // TPM_ALG_SM2 AlgorithmECSchnorr AlgorithmId = 0x001c // TPM_ALG_ECSCHNORR AlgorithmECMQV AlgorithmId = 0x001d // TPM_ALG_ECMQV AlgorithmKDF1_SP800_56A AlgorithmId = 0x0020 // TPM_ALG_KDF1_SP800_56A AlgorithmKDF2 AlgorithmId = 0x0021 // TPM_ALG_KDF2 AlgorithmKDF1_SP800_108 AlgorithmId = 0x0022 // TPM_ALG_KDF1_SP800_108 AlgorithmECC AlgorithmId = 0x0023 // TPM_ALG_ECC AlgorithmSymCipher AlgorithmId = 0x0025 // TPM_ALG_SYMCIPHER AlgorithmCamellia AlgorithmId = 0x0026 // TPM_ALG_CAMELLIA AlgorithmSHA3_256 AlgorithmId = 0x0027 // TPM_ALG_SHA3_256 AlgorithmSHA3_384 AlgorithmId = 0x0028 // TPM_ALG_SHA3_384 AlgorithmSHA3_512 AlgorithmId = 0x0029 // TPM_ALG_SHA3_512 AlgorithmSHAKE128 AlgorithmId = 0x002a // TPM_ALG_SHAKE128 AlgorithmSHAKE256 AlgorithmId = 0x002b // TPM_ALG_SHAKE256 AlgorithmSHAKE256_192 AlgorithmId = 0x002c // TPM_ALG_SHAKE256_192 AlgorithmSHAKE256_256 AlgorithmId = 0x002d // TPM_ALG_SHAKE256_256 AlgorithmSHAKE256_512 AlgorithmId = 0x002e // TPM_ALG_SHAKE256_512 AlgorithmCMAC AlgorithmId = 0x003f // TPM_ALG_CMAC AlgorithmCTR AlgorithmId = 0x0040 // TPM_ALG_CTR AlgorithmOFB AlgorithmId = 0x0041 // TPM_ALG_OFB AlgorithmCBC AlgorithmId = 0x0042 // TPM_ALG_CBC AlgorithmCFB AlgorithmId = 0x0043 // TPM_ALG_CFB AlgorithmECB AlgorithmId = 0x0044 // TPM_ALG_ECB AlgorithmCCM AlgorithmId = 0x0050 // TPM_ALG_CCM AlgorithmGCM AlgorithmId = 0x0051 // TPM_ALG_GCM AlgorithmKW AlgorithmId = 0x0052 // TPM_ALG_KW AlgorithmKWP AlgorithmId = 0x0053 // TPM_ALG_KWP AlgorithmEAX AlgorithmId = 0x0054 // TPM_ALG_EAX AlgorithmEDDSA AlgorithmId = 0x0060 // TPM_ALG_EDDSA AlgorithmEDDSA_PH AlgorithmId = 0x0061 // TPM_ALG_EDDSA_PH AlgorithmLMS AlgorithmId = 0x0070 // TPM_ALG_LMS AlgorithmXMSS AlgorithmId = 0x0071 // TPM_ALG_XMSS AlgorithmKeyedXOF AlgorithmId = 0x0080 // TPM_ALG_KEYEDXOF AlgorithmKMACXOF128 AlgorithmId = 0x0081 // TPM_ALG_KMACXOF128 AlgorithmKMACXOF256 AlgorithmId = 0x0082 // TPM_ALG_KMACXOF256 AlgorithmKMAC128 AlgorithmId = 0x0090 // TPM_ALG_KMAC128 AlgorithmKMAC256 AlgorithmId = 0x0091 // TPM_ALG_KMAC256 AlgorithmFirst AlgorithmId = AlgorithmRSA ) // ECCCurve corresponds to the TPM_ECC_CURVE type. type ECCCurve uint16 // GoCurve returns the equivalent elliptic.Curve for this ECC curve. func (c ECCCurve) GoCurve() elliptic.Curve { return eccCurves[c] } const ( ECCCurveNIST_P192 ECCCurve = 0x0001 // TPM_ECC_NIST_P192 ECCCurveNIST_P224 ECCCurve = 0x0002 // TPM_ECC_NIST_P224 ECCCurveNIST_P256 ECCCurve = 0x0003 // TPM_ECC_NIST_P256 ECCCurveNIST_P384 ECCCurve = 0x0004 // TPM_ECC_NIST_P384 ECCCurveNIST_P521 ECCCurve = 0x0005 // TPM_ECC_NIST_P521 ECCCurveBN_P256 ECCCurve = 0x0010 // TPM_ECC_BN_P256 ECCCurveBN_P638 ECCCurve = 0x0011 // TPM_ECC_BN_P638 ECCCurveSM2_P256 ECCCurve = 0x0020 // TPM_ECC_SM2_P256 ECCCurveBP_P256_R1 ECCCurve = 0x0030 // TPM_ECC_BP_P256_R1 ECCCurveBP_P384_R1 ECCCurve = 0x0031 // TPM_ECC_BP_P384_R1 ECCCurveBP_P512_R1 ECCCurve = 0x0032 // TPM_ECC_BP_P512_R1 ECCCurve25519 ECCCurve = 0x0040 // TPM_ECC_CURVE_25519 ECCCurve448 ECCCurve = 0x0041 // TPM_ECC_CURVE_448 ECCCurveFirst ECCCurve = ECCCurveNIST_P192 ) // CommandCode corresponds to the TPM_CC type. type CommandCode uint32 const ( CommandFirst CommandCode = 0x0000011A CommandNVUndefineSpaceSpecial CommandCode = 0x0000011F // TPM_CC_NV_UndefineSpaceSpecial CommandEvictControl CommandCode = 0x00000120 // TPM_CC_EvictControl CommandHierarchyControl CommandCode = 0x00000121 // TPM_CC_HierarchyControl CommandNVUndefineSpace CommandCode = 0x00000122 // TPM_CC_NV_UndefineSpace CommandClear CommandCode = 0x00000126 // TPM_CC_Clear CommandClearControl CommandCode = 0x00000127 // TPM_CC_ClearControl CommandClockSet CommandCode = 0x00000128 // TPM_CC_ClockSet CommandHierarchyChangeAuth CommandCode = 0x00000129 // TPM_CC_HierarchyChangeAuth CommandNVDefineSpace CommandCode = 0x0000012A // TPM_CC_NV_DefineSpace CommandPCRAllocate CommandCode = 0x0000012B // TPM_CC_PCR_Allocate CommandSetPrimaryPolicy CommandCode = 0x0000012E // TPM_CC_SetPrimaryPolicy CommandClockRateAdjust CommandCode = 0x00000130 // TPM_CC_ClockRateAdjust CommandCreatePrimary CommandCode = 0x00000131 // TPM_CC_CreatePrimary CommandNVGlobalWriteLock CommandCode = 0x00000132 // TPM_CC_NV_GlobalWriteLock CommandGetCommandAuditDigest CommandCode = 0x00000133 // TPM_CC_GetCommandAuditDigest CommandNVIncrement CommandCode = 0x00000134 // TPM_CC_NV_Increment CommandNVSetBits CommandCode = 0x00000135 // TPM_CC_NV_SetBits CommandNVExtend CommandCode = 0x00000136 // TPM_CC_NV_Extend CommandNVWrite CommandCode = 0x00000137 // TPM_CC_NV_Write CommandNVWriteLock CommandCode = 0x00000138 // TPM_CC_NV_WriteLock CommandDictionaryAttackLockReset CommandCode = 0x00000139 // TPM_CC_DictionaryAttackLockReset CommandDictionaryAttackParameters CommandCode = 0x0000013A // TPM_CC_DictionaryAttackParameters CommandNVChangeAuth CommandCode = 0x0000013B // TPM_CC_NV_ChangeAuth CommandPCREvent CommandCode = 0x0000013C // TPM_CC_PCR_Event CommandPCRReset CommandCode = 0x0000013D // TPM_CC_PCR_Reset CommandSequenceComplete CommandCode = 0x0000013E // TPM_CC_SequenceComplete CommandSetCommandCodeAuditStatus CommandCode = 0x00000140 // TPM_CC_SetCommandCodeAuditStatus CommandIncrementalSelfTest CommandCode = 0x00000142 // TPM_CC_IncrementalSelfTest CommandSelfTest CommandCode = 0x00000143 // TPM_CC_SelfTest CommandStartup CommandCode = 0x00000144 // TPM_CC_Startup CommandShutdown CommandCode = 0x00000145 // TPM_CC_Shutdown CommandStirRandom CommandCode = 0x00000146 // TPM_CC_StirRandom CommandActivateCredential CommandCode = 0x00000147 // TPM_CC_ActivateCredential CommandCertify CommandCode = 0x00000148 // TPM_CC_Certify CommandPolicyNV CommandCode = 0x00000149 // TPM_CC_PolicyNV CommandCertifyCreation CommandCode = 0x0000014A // TPM_CC_CertifyCreation CommandDuplicate CommandCode = 0x0000014B // TPM_CC_Duplicate CommandGetTime CommandCode = 0x0000014C // TPM_CC_GetTime CommandGetSessionAuditDigest CommandCode = 0x0000014D // TPM_CC_GetSessionAuditDigest CommandNVRead CommandCode = 0x0000014E // TPM_CC_NV_Read CommandNVReadLock CommandCode = 0x0000014F // TPM_CC_NV_ReadLock CommandObjectChangeAuth CommandCode = 0x00000150 // TPM_CC_ObjectChangeAuth CommandPolicySecret CommandCode = 0x00000151 // TPM_CC_PolicySecret CommandCreate CommandCode = 0x00000153 // TPM_CC_Create CommandECDHZGen CommandCode = 0x00000154 // TPM_CC_ECDH_ZGen CommandHMAC CommandCode = 0x00000155 // TPM_CC_HMAC CommandImport CommandCode = 0x00000156 // TPM_CC_Import CommandLoad CommandCode = 0x00000157 // TPM_CC_Load CommandQuote CommandCode = 0x00000158 // TPM_CC_Quote CommandRSADecrypt CommandCode = 0x00000159 // TPM_CC_RSA_Decrypt CommandHMACStart CommandCode = 0x0000015B // TPM_CC_HMAC_Start CommandSequenceUpdate CommandCode = 0x0000015C // TPM_CC_SequenceUpdate CommandSign CommandCode = 0x0000015D // TPM_CC_Sign CommandUnseal CommandCode = 0x0000015E // TPM_CC_Unseal CommandPolicySigned CommandCode = 0x00000160 // TPM_CC_PolicySigned CommandContextLoad CommandCode = 0x00000161 // TPM_CC_ContextLoad CommandContextSave CommandCode = 0x00000162 // TPM_CC_ContextSave CommandECDHKeyGen CommandCode = 0x00000163 // TPM_CC_ECDH_KeyGen CommandFlushContext CommandCode = 0x00000165 // TPM_CC_FlushContext CommandLoadExternal CommandCode = 0x00000167 // TPM_CC_LoadExternal CommandMakeCredential CommandCode = 0x00000168 // TPM_CC_MakeCredential CommandNVReadPublic CommandCode = 0x00000169 // TPM_CC_NV_ReadPublic CommandPolicyAuthorize CommandCode = 0x0000016A // TPM_CC_PolicyAuthorize CommandPolicyAuthValue CommandCode = 0x0000016B // TPM_CC_PolicyAuthValue CommandPolicyCommandCode CommandCode = 0x0000016C // TPM_CC_PolicyCommandCode CommandPolicyCounterTimer CommandCode = 0x0000016D // TPM_CC_PolicyCounterTimer CommandPolicyCpHash CommandCode = 0x0000016E // TPM_CC_PolicyCpHash CommandPolicyLocality CommandCode = 0x0000016F // TPM_CC_PolicyLocality CommandPolicyNameHash CommandCode = 0x00000170 // TPM_CC_PolicyNameHash CommandPolicyOR CommandCode = 0x00000171 // TPM_CC_PolicyOR CommandPolicyTicket CommandCode = 0x00000172 // TPM_CC_PolicyTicket CommandReadPublic CommandCode = 0x00000173 // TPM_CC_ReadPublic CommandRSAEncrypt CommandCode = 0x00000174 // TPM_CC_RSA_Encrypt CommandStartAuthSession CommandCode = 0x00000176 // TPM_CC_StartAuthSession CommandVerifySignature CommandCode = 0x00000177 // TPM_CC_VerifySignature CommandECCParameters CommandCode = 0x00000178 // TPM_CC_ECC_Parameters CommandGetCapability CommandCode = 0x0000017A // TPM_CC_GetCapability CommandGetRandom CommandCode = 0x0000017B // TPM_CC_GetRandom CommandGetTestResult CommandCode = 0x0000017C // TPM_CC_GetTestResult CommandHash CommandCode = 0x0000017D // TPM_CC_Hash CommandPCRRead CommandCode = 0x0000017E // TPM_CC_PCR_Read CommandPolicyPCR CommandCode = 0x0000017F // TPM_CC_PolicyPCR CommandPolicyRestart CommandCode = 0x00000180 // TPM_CC_PolicyRestart CommandReadClock CommandCode = 0x00000181 // TPM_CC_ReadClock CommandPCRExtend CommandCode = 0x00000182 // TPM_CC_PCR_Extend CommandNVCertify CommandCode = 0x00000184 // TPM_CC_NV_Certify CommandEventSequenceComplete CommandCode = 0x00000185 // TPM_CC_EventSequenceComplete CommandHashSequenceStart CommandCode = 0x00000186 // TPM_CC_HashSequenceStart CommandPolicyDuplicationSelect CommandCode = 0x00000188 // TPM_CC_PolicyDuplicationSelect CommandPolicyGetDigest CommandCode = 0x00000189 // TPM_CC_PolicyGetDigest CommandTestParms CommandCode = 0x0000018A // TPM_CC_TestParms CommandCommit CommandCode = 0x0000018B // TPM_CC_Commit CommandPolicyPassword CommandCode = 0x0000018C // TPM_CC_PolicyPassword CommandPolicyNvWritten CommandCode = 0x0000018F // TPM_CC_PolicyNvWritten CommandPolicyTemplate CommandCode = 0x00000190 // TPM_CC_PolicyTemplate CommandCreateLoaded CommandCode = 0x00000191 // TPM_CC_CreateLoaded CommandPolicyAuthorizeNV CommandCode = 0x00000192 // TPM_CC_PolicyAuthorizeNV ) // ResponseCode corresponds to the TPM_RC type. type ResponseCode uint32 const ( // ResponseSuccess corresponds to TPM_RC_SUCCESS and indicates success. ResponseSuccess ResponseCode = 0x000 // ResponseBadTag corresponds to TPM_RC_BAD_TAG and is returned from // TPM1.2 devices which don't recognise the TPM2 command tags // (TPM_ST_NO_SESSIONS and TPM_ST_SESSIONS). ResponseBadTag ResponseCode = 0x01e // TPM_RC_BAD_TAG // rcVer1 corresponds to RC_VER1 and is the base of all TCG defined // format-zero TPM2 error codes. rcVer1 ResponseCode = 0x100 ResponseInitialize ResponseCode = rcVer1 + 0x000 // TPM_RC_INITIALIZE ResponseFailure ResponseCode = rcVer1 + 0x001 // TPM_RC_FAILURE ResponseSequence ResponseCode = rcVer1 + 0x003 // TPM_RC_SEQUENCE ResponseDisabled ResponseCode = rcVer1 + 0x020 // TPM_RC_DISABLED ResponseExclusive ResponseCode = rcVer1 + 0x021 // TPM_RC_EXCLUSIVE ResponseAuthType ResponseCode = rcVer1 + 0x024 // TPM_RC_AUTH_TYPE ResponseAuthMissing ResponseCode = rcVer1 + 0x025 // TPM_RC_AUTH_MISSING ResponsePolicy ResponseCode = rcVer1 + 0x026 // TPM_RC_POLICY ResponsePCR ResponseCode = rcVer1 + 0x027 // TPM_RC_PCR ResponsePCRChanged ResponseCode = rcVer1 + 0x028 // TPM_RC_PCR_CHANGED ResponseUpgrade ResponseCode = rcVer1 + 0x02d // TPM_RC_UPGRADE ResponseTooManyContexts ResponseCode = rcVer1 + 0x02e // TPM_RC_TOO_MANY_CONTEXTS ResponseAuthUnavailable ResponseCode = rcVer1 + 0x02f // TPM_RC_AUTH_UNAVAILABLE ResponseReboot ResponseCode = rcVer1 + 0x030 // TPM_RC_REBOOT ResponseUnbalanced ResponseCode = rcVer1 + 0x031 // TPM_RC_UNBALANCED ResponseCommandSize ResponseCode = rcVer1 + 0x042 // TPM_RC_COMMAND_SIZE ResponseCommandCode ResponseCode = rcVer1 + 0x043 // TPM_RC_COMMAND_CODE ResponseAuthsize ResponseCode = rcVer1 + 0x044 // TPM_RC_AUTHSIZE ResponseAuthContext ResponseCode = rcVer1 + 0x045 // TPM_RC_AUTH_CONTEXT ResponseNVRange ResponseCode = rcVer1 + 0x046 // TPM_RC_NV_RANGE ResponseNVSize ResponseCode = rcVer1 + 0x047 // TPM_RC_NV_SIZE ResponseNVLocked ResponseCode = rcVer1 + 0x048 // TPM_RC_NV_LOCKED ResponseNVAuthorization ResponseCode = rcVer1 + 0x049 // TPM_RC_NV_AUTHORIZATION ResponseNVUninitialized ResponseCode = rcVer1 + 0x04a // TPM_RC_NV_UNINITIALIZED ResponseNVSpace ResponseCode = rcVer1 + 0x04b // TPM_RC_NV_SPACE ResponseNVDefined ResponseCode = rcVer1 + 0x04c // TPM_RC_NV_DEFINED ResponseBadContext ResponseCode = rcVer1 + 0x050 // TPM_RC_BAD_CONTEXT ResponseCpHash ResponseCode = rcVer1 + 0x051 // TPM_RC_CPHASH ResponseParent ResponseCode = rcVer1 + 0x052 // TPM_RC_PARENT ResponseNeedsTest ResponseCode = rcVer1 + 0x053 // TPM_RC_NEEDS_TEST ResponseNoResult ResponseCode = rcVer1 + 0x054 // TPM_RC_NO_RESULT ResponseSensitive ResponseCode = rcVer1 + 0x055 // TPM_RC_SENSITIVE // rcMaxFM0 corresponds to RC_MAX_FM0 and is the maxmimum TCG defined format-zero // TPM2 error. rcMaxFM0 ResponseCode = rcVer1 + 0x07f // rcFmt1 corresponds to RC_FMT1 and is the base of all format-one errors. rcFmt1 ResponseCode = 0x080 ResponseAsymmetric ResponseCode = rcFmt1 + 0x001 // TPM_RC_ASYMMETRIC ResponseAttributes ResponseCode = rcFmt1 + 0x002 // TPM_RC_ATTRIBUTES ResponseHash ResponseCode = rcFmt1 + 0x003 // TPM_RC_HASH ResponseValue ResponseCode = rcFmt1 + 0x004 // TPM_RC_VALUE ResponseHierarchy ResponseCode = rcFmt1 + 0x005 // TPM_RC_HIERARCHY ResponseKeySize ResponseCode = rcFmt1 + 0x007 // TPM_RC_KEY_SIZE ResponseMGF ResponseCode = rcFmt1 + 0x008 // TPM_RC_MGF ResponseMode ResponseCode = rcFmt1 + 0x009 // TPM_RC_MODE ResponseType ResponseCode = rcFmt1 + 0x00a // TPM_RC_TYPE ResponseHandle ResponseCode = rcFmt1 + 0x00b // TPM_RC_HANDLE ResponseKDF ResponseCode = rcFmt1 + 0x00c // TPM_RC_KDF ResponseRange ResponseCode = rcFmt1 + 0x00d // TPM_RC_RANGE ResponseAuthFail ResponseCode = rcFmt1 + 0x00e // TPM_RC_AUTH_FAIL ResponseNonce ResponseCode = rcFmt1 + 0x00f // TPM_RC_NONCE ResponsePP ResponseCode = rcFmt1 + 0x010 // TPM_RC_PP ResponseScheme ResponseCode = rcFmt1 + 0x012 // TPM_RC_SCHEME ResponseSize ResponseCode = rcFmt1 + 0x015 // TPM_RC_SIZE ResponseSymmetric ResponseCode = rcFmt1 + 0x016 // TPM_RC_SYMMETRIC ResponseTag ResponseCode = rcFmt1 + 0x017 // TPM_RC_TAG ResponseSelector ResponseCode = rcFmt1 + 0x018 // TPM_RC_SELECTOR ResponseInsufficient ResponseCode = rcFmt1 + 0x01a // TPM_RC_INSUFFICIENT ResponseSignature ResponseCode = rcFmt1 + 0x01b // TPM_RC_SIGNATURE ResponseKey ResponseCode = rcFmt1 + 0x01c // TPM_RC_KEY ResponsePolicyFail ResponseCode = rcFmt1 + 0x01d // TPM_RC_POLICY_FAIL ResponseIntegrity ResponseCode = rcFmt1 + 0x01f // TPM_RC_INTEGRITY ResponseTicket ResponseCode = rcFmt1 + 0x020 // TPM_RC_TICKET ResponseReservedBits ResponseCode = rcFmt1 + 0x021 // TPM_RC_RESERVED_BITS ResponseBadAuth ResponseCode = rcFmt1 + 0x022 // TPM_RC_BAD_AUTH ResponseExpired ResponseCode = rcFmt1 + 0x023 // TPM_RC_EXPIRED ResponsePolicyCC ResponseCode = rcFmt1 + 0x024 // TPM_RC_POLICY_CC ResponseBinding ResponseCode = rcFmt1 + 0x025 // TPM_RC_BINDING ResponseCurve ResponseCode = rcFmt1 + 0x026 // TPM_RC_CURVE ResponseECCPoint ResponseCode = rcFmt1 + 0x027 // TPM_RC_ECC_POINT ResponseFWLimited ResponseCode = rcFmt1 + 0x028 // TPM_RC_FW_LIMITED ResponseSVNLimited ResponseCode = rcFmt1 + 0x029 // TPM_RC_SVN_LIMITED // rcWarn corresponds to RC_WARN and is the base of all TCG defined // format-zero TPM2 warning codes. rcWarn ResponseCode = 0x900 ResponseContextGap ResponseCode = rcWarn + 0x001 // TPM_RC_CONTEXT_GAP ResponseObjectMemory ResponseCode = rcWarn + 0x002 // TPM_RC_OBJECT_MEMORY ResponseSessionMemory ResponseCode = rcWarn + 0x003 // TPM_RC_SESSION_MEMORY ResponseMemory ResponseCode = rcWarn + 0x004 // TPM_RC_MEMORY ResponseSessionHandles ResponseCode = rcWarn + 0x005 // TPM_RC_SESSION_HANDLES ResponseObjectHandles ResponseCode = rcWarn + 0x006 // TPM_RC_OBJECT_HANDLES ResponseLocality ResponseCode = rcWarn + 0x007 // TPM_RC_LOCALITY ResponseYielded ResponseCode = rcWarn + 0x008 // TPM_RC_YIELDED ResponseCanceled ResponseCode = rcWarn + 0x009 // TPM_RC_CANCELED ResponseTesting ResponseCode = rcWarn + 0x00a // TPM_RC_TESTING ResponseReferenceH0 ResponseCode = rcWarn + 0x010 // TPM_RC_REFERENCE_H0 ResponseReferenceH1 ResponseCode = rcWarn + 0x011 // TPM_RC_REFERENCE_H1 ResponseReferenceH2 ResponseCode = rcWarn + 0x012 // TPM_RC_REFERENCE_H2 ResponseReferenceH3 ResponseCode = rcWarn + 0x013 // TPM_RC_REFERENCE_H3 ResponseReferenceH4 ResponseCode = rcWarn + 0x014 // TPM_RC_REFERENCE_H4 ResponseReferenceH5 ResponseCode = rcWarn + 0x015 // TPM_RC_REFERENCE_H5 ResponseReferenceH6 ResponseCode = rcWarn + 0x016 // TPM_RC_REFERENCE_H6 ResponseReferenceS0 ResponseCode = rcWarn + 0x018 // TPM_REFERENCE_S0 ResponseReferenceS1 ResponseCode = rcWarn + 0x019 // TPM_REFERENCE_S1 ResponseReferenceS2 ResponseCode = rcWarn + 0x01a // TPM_REFERENCE_S2 ResponseReferenceS3 ResponseCode = rcWarn + 0x01b // TPM_REFERENCE_S3 ResponseReferenceS4 ResponseCode = rcWarn + 0x01c // TPM_REFERENCE_S4 ResponseReferenceS5 ResponseCode = rcWarn + 0x01d // TPM_REFERENCE_S5 ResponseReferenceS6 ResponseCode = rcWarn + 0x01e // TPM_REFERENCE_S6 ResponseNVRate ResponseCode = rcWarn + 0x020 // TPM_RC_RATE ResponseLockout ResponseCode = rcWarn + 0x021 // TPM_RC_LOCKOUT ResponseRetry ResponseCode = rcWarn + 0x022 // TPM_RC_RETRY ResponseNVUnavailable ResponseCode = rcWarn + 0x023 // TPM_RC_NV_UNAVAILABLE // ResponseH corresponds to TPM_RC_H and is added to a handle related error. ResponseH ResponseCode = 0x000 // ResponseP corresponds to TPM_RC_P and is added to a parameter related error. ResponseP ResponseCode = 0x040 // RespondsS corresponds to TPM_RC_S and is added to a session related error. ResponseS ResponseCode = 0x800 // ResponseIndex1 corresponds to TPM_RC_1 and is added to a handle, parameter or // session related error. ResponseIndex1 ResponseCode = 0x100 // ResponseIndex2 corresponds to TPM_RC_2 and is added to a handle, parameter or // session related error. ResponseIndex2 ResponseCode = 0x200 // ResponseIndex3 corresponds to TPM_RC_3 and is added to a handle, parameter or // session related error. ResponseIndex3 ResponseCode = 0x300 // ResponseIndex4 corresponds to TPM_RC_4 and is added to a handle, parameter or // session related error. ResponseIndex4 ResponseCode = 0x400 // ResponseIndex5 corresponds to TPM_RC_5 and is added to a handle, parameter or // session related error. ResponseIndex5 ResponseCode = 0x500 // ResponseIndex6 corresponds to TPM_RC_6 and is added to a handle, parameter or // session related error. ResponseIndex6 ResponseCode = 0x600 // ResponseIndex7 corresponds to TPM_RC_7 and is added to a handle, parameter or // session related error. ResponseIndex7 ResponseCode = 0x700 // ResponseIndex8 corresponds to TPM_RC_8 and is added to a parameter related error. ResponseIndex8 ResponseCode = 0x800 // ResponseIndex9 corresponds to TPM_RC_9 and is added to a parameter related error. ResponseIndex9 ResponseCode = 0x900 // ResponseIndexA corresponds to TPM_RC_A and is added to a parameter related error. ResponseIndexA ResponseCode = 0xa00 // ResponseIndexB corresponds to TPM_RC_B and is added to a parameter related error. ResponseIndexB ResponseCode = 0xb00 // ResponseIndexC corresponds to TPM_RC_C and is added to a parameter related error. ResponseIndexC ResponseCode = 0xc00 // ResponseIndexD corresponds to TPM_RC_D and is added to a parameter related error. ResponseIndexD ResponseCode = 0xd00 // ResponseIndexE corresponds to TPM_RC_E and is added to a parameter related error. ResponseIndexE ResponseCode = 0xe00 // ResponseIndexF corresponds to TPM_RC_F and is added to a parameter related error. ResponseIndexF ResponseCode = 0xf00 // ResponseNMask corresponds to TPM_RC_N_MASK and indicates the associated handle, // parameter or session depending on the status of ResponseH, ResponseP or ResponseS. // Applying this mask will result in a value between ResponseIndex1 and ResponseIndexF. ResponseNMask ResponseCode = 0xf00 // rcE0 corresponds to the error code (bits 0-6) of format-zero response codes. rcE0 ResponseCode = 0x07f // rcE1 corresponds to the error code (bits 0-5) of format-one response codes. rcE1 ResponseCode = 0x03f // rcP corresponds to bit 6 of format-one response codes and is set for errors associated // with a parameter or clear for errors associated with a handle or session. rcP ResponseCode = 0x040 // rcF corresponds to bit 7 and is the format indicator. It is clear for format-zero // response codes and set for format-one response codes. rcF ResponseCode = 0x080 // rcV corresponds to bit 8 and is the version indicator of format-zero response codes. It // is set for TPM2 response codes or clear for TPM1.2 response codes. rcV ResponseCode = 0x100 // rcT corresponds to bit 10 and is the TCG/Vendor indicator of format-zero response codes. // It is set for vendor defined response codes or clear for TCG defined response codes. rcT ResponseCode = 0x400 // rcS corresponds to bit 11 and is the severity indicator of format-zero response codes. It // is set for warnings or clear for errors. rcS ResponseCode = 0x800 // rcN corresponds to bits 8 to 11 of format-one response codes and is the handle, parameter // or session indicator. rcN ResponseCode = 0xf00 // rcNSessionIndicator is the MSB of rcN for format-one response codes and indicates that // the N field corresponds to a session if rcP field is clear. rcNSessionIndicator = 0x800 // rcNShift is used to shift the bits defined by ResponseNMask. rcNShift ResponseCode = 8 rcReserved0 ResponseCode = 0xfffff200 // Reserved bits for format-zero response codes. rcReserved1 ResponseCode = 0xfffff000 // Reserved bits for format-one response codes. ) func responseCodeIndexUnchecked(index uint8) ResponseCode { return ResponseCode(index) << rcNShift } // ResponseCodeIndex returns the supplied one-indexed handle, parameter or session // index as a ResponseCode integer from ResponseIndex1 to ResponseIndexF that can be // added to a base response code. It will panic if index is greater than 0xf. An // index of zero is undefined. func ResponseCodeIndex(index uint8) ResponseCode { if index > 0xf { panic("invalid handle, parameter, or session index (> 0xf)") } return responseCodeIndexUnchecked(index) } // ResponseCodeIndexType indicates the type of index that a response code encodes. type ResponseCodeIndexType uint8 const ( ResponseCodeIndexTypeNone ResponseCodeIndexType = 0 // No index is encoded (eg, as with format-zero response codes) ResponseCodeIndexTypeHandle ResponseCodeIndexType = 1 // A one-indexed handle index is encoded ResponseCodeIndexTypeParameter ResponseCodeIndexType = 2 // A one-indexed parameter index is encoded ResponseCodeIndexTypeSession ResponseCodeIndexType = 3 // A one-indexed session index is encoded ) // ResponseCodeVersion indicates the major TPM version of a response code. type ResponseCodeVersion bool const ( ResponseCodeVersionTPM12 ResponseCodeVersion = false // TPM1.2 response ResponseCodeVersionTPM2 ResponseCodeVersion = true // TPM2 response ) // ResponseCodeSeverity indicates the severity of a response code. type ResponseCodeSeverity bool const ( ResponseCodeSeverityWarning ResponseCodeSeverity = false // A warning ResponseCodeSeverityError ResponseCodeSeverity = true // An error ) // ResponseCodeSpec indicates who a response code is defined by (the TCG // or TPM vendor). type ResponseCodeSpec bool const ( ResponseCodeSpecTCG ResponseCodeSpec = false // Defined by the TCG ResponseCodeSpecTPMVendor ResponseCodeSpec = true // Defined by the TPM vendor ) // Base returns the base response code without any handle, parameter or session index // encoded. func (rc ResponseCode) Base() ResponseCode { if rc.F() { // Format-one response codes are returned without their handle, parameter // or session index. return rc &^ (ResponseH | ResponseP | ResponseS | ResponseNMask) } // Format-zero response codes are returned untouched. return rc } // IsValid indicates if this is a valid response code. An invalid response // code has one or more reserved bits set. func (rc ResponseCode) IsValid() bool { if rc.F() { // Format-one response code. switch { case rc&rcReserved1 != 0: // A reserved bit is set. return false case rc.P() && rc.N() == 0: // Parameter 0. return false case rc.N() == (rcNSessionIndicator >> rcNShift): // Session 0. return false default: // Note that we permit handle 0 as being valid and interpret // this as being a format-one response code that is unrelated // to a parameter, handle, or session. return true } } // Format-zero response code. return rc&rcReserved0 == 0 } // IndexType indicates the type of index that is encoded in this response // code, if there is any. Call [ResponseCode.Index] to obtain the encoded index. func (rc ResponseCode) IndexType() ResponseCodeIndexType { switch { case !rc.F(): // Format-zero response code. return ResponseCodeIndexTypeNone case rc.P(): // Format-one response code with the P bit set. return ResponseCodeIndexTypeParameter case rc.N()&(rcNSessionIndicator>>rcNShift) != 0: // Format-one response code with the P bit clear and the MSB of N set. return ResponseCodeIndexTypeSession case rc.N() != 0: // Format-one response code with the P bit and the MSB of N clear, // with N otherwise non-zero. return ResponseCodeIndexTypeHandle default: // Format-one response code with the P bit and N bits all clear. return ResponseCodeIndexTypeNone } } // Version returns the TPM major version associated with this response code. func (rc ResponseCode) Version() ResponseCodeVersion { if rc.F() { // Format-one response codes are always TPM2. return ResponseCodeVersionTPM2 } // Format-zero response codes depend on the V bit. return ResponseCodeVersion(rc.V()) } // Severity returns the severity of this response code. func (rc ResponseCode) Severity() ResponseCodeSeverity { if rc.F() { // Format-one response codes are always errors. return ResponseCodeSeverityError } // Format-zero response codes depend on the S bit. return ResponseCodeSeverity(!rc.S()) } // Spec returns where this response code is defined (by the TCG or the TPM vendor). func (rc ResponseCode) Spec() ResponseCodeSpec { if rc.F() { // Format-one response codes are defined by the TCG. return ResponseCodeSpecTCG } // Format-zero response codes depend on the T bit. return ResponseCodeSpec(rc.T()) } // Index returns the one-indexed handle, parameter or session index associated with this response // code. Call [ResponseCode.IndexType] to obtain the type of index. This will return 0 if the // response code is not associated with a specific handle, parameter or session (ie, if // [ResponseCode.IndexType] returns ResponseCodeIndexTypeNone). func (rc ResponseCode) Index() uint8 { switch rc.IndexType() { case ResponseCodeIndexTypeHandle, ResponseCodeIndexTypeSession: // Handles and sessions only use the lower 3 bits of the N field. return rc.N() &^ uint8(rcNSessionIndicator>>rcNShift) case ResponseCodeIndexTypeParameter: // Parameters use all 4 bits of the N field. return rc.N() default: return 0 } } // SetHandleIndex sets the associated one-indexed handle index for this response code. This // will panic if the handle index is out of range or the response code is not a format-one // response code. A handle index of zero will mark this as a response code that is not associated // with a parameter, handle, or session. func (rc ResponseCode) SetHandleIndex(h uint8) ResponseCode { rc = rc.Base() if !rc.F() { panic(fmt.Errorf("%w (base response code is not a format-1 response code)", InvalidResponseCodeError(rc))) } index := responseCodeIndexUnchecked(h) rc = rc + ResponseH + index if index > ResponseIndex7 { panic(fmt.Errorf("%w (invalid handle index %d overflows bits 8-10)", InvalidResponseCodeError(rc), h)) } return rc } // SetParameterIndex sets the associated one-indexed parameter index for this response code. This // will panic if the parameter index is out of range or the response code is not a format-one // response code. func (rc ResponseCode) SetParameterIndex(p uint8) ResponseCode { rc = rc.Base() if !rc.F() { panic(fmt.Errorf("%w (base response code is not a format-1 response code)", InvalidResponseCodeError(rc))) } if p == 0 { panic("invalid parameter index 0") } index := responseCodeIndexUnchecked(p) rc = rc + ResponseP + index if index > ResponseIndexF { panic(fmt.Errorf("%w (invalid parameter index %d overflows bits 8-11)", InvalidResponseCodeError(rc), p)) } return rc } // SetSession sets the associated one-indexed session index for this response code. This // will panic if the session index is out of range or the response code is not a format-one // response code. func (rc ResponseCode) SetSessionIndex(s uint8) ResponseCode { rc = rc.Base() if !rc.F() { panic(fmt.Errorf("%w (base response code is not a format-1 response code)", InvalidResponseCodeError(rc))) } if s == 0 { panic("invalid session index 0") } index := responseCodeIndexUnchecked(s) rc = rc + ResponseS + index if index > ResponseIndex7 { panic(fmt.Errorf("%w (invalid session index %d overflows bits 8-10)", InvalidResponseCodeError(rc), s)) } return rc } // E is a low-level function that returns the E field of the response code, corresponding to // the error number. This is the lower 7-bits for format-zero response codes or the lower // 6-bits for format-one response codes. func (rc ResponseCode) E() uint8 { if rc.F() { return uint8(rc & rcE1) } return uint8(rc & rcE0) } // F is a low-level function that returns the F field of the response code, corresponding to // the format. If it is set, this is a format-one response code. If it is clear, this is a // format-zero response code. func (rc ResponseCode) F() bool { return rc&rcF != 0 } // V is a low-level function that returns the V field of the response code, corresponding to // the version and is only relevant for format-zero response codes. If this is set then it is // a TPM2 code returned when the response tag is TPM_ST_NO_SESSIONS. If it is clear then it // is a TPM1.2 code returned when the response tag is TPM_TAG_RSP_COMMAND. // // This will panic if the F field is set. func (rc ResponseCode) V() bool { if rc.F() { panic("not a format-0 response code") } return rc&rcV != 0 } // T is a low-level function that returns the T field of the response code, corresponding to the // TCG/Vendor indicator and is only relevant for format-zero response codes. If this is set then // the code is defined by the TPM vendor. If it is clear then the code is defined by the TCG. // // This will panic if the F field is set. func (rc ResponseCode) T() bool { if rc.F() { panic("not a format-0 response code") } return rc&rcT != 0 } // S is a low-level function that returns the S field of the response code, corresponding to the // severity and is only relevant for format-zero response codes. If this is set then the code // indicates a warning. If it is clear then the code indicates an error. // // This will panic if the F field is set. func (rc ResponseCode) S() bool { if rc.F() { panic("not a format-0 response code") } return rc&rcS != 0 } // P is a low-level function that returns the P field of the response code and is only relevant for // format-one response codes. If this is set then the code is associated with a command parameter. // If it is not set then the code is associated with a command handle or session. // // This will panic if the F field is not set. func (rc ResponseCode) P() bool { if !rc.F() { panic("not a format-1 response code") } return rc&rcP != 0 } // N is a low-level function that returns the N field of the response code and is only relevant for // format-one response codes. If the P field is set then this indicates the parameter number from // 0x1 to 0xf. If the P field is not set then the lower 3 bits indicate the handle or session number // (0x1 to 0x7 for handles and 0x9 to 0xf for sessions). // // This will panic if the F field is not set. func (rc ResponseCode) N() uint8 { if !rc.F() { panic("not a format-1 response code") } return uint8((rc & rcN) >> rcNShift) } // ArithmeticOp corresponds to the TPM_EO type. type ArithmeticOp uint16 const ( OpEq ArithmeticOp = 0x0000 // TPM_EO_EQ OpNeq ArithmeticOp = 0x0001 // TPM_EO_NEQ OpSignedGT ArithmeticOp = 0x0002 // TPM_EO_SIGNED_GT OpUnsignedGT ArithmeticOp = 0x0003 // TPM_EO_UNSIGNED_GT OpSignedLT ArithmeticOp = 0x0004 // TPM_EO_SIGNED_LT OpUnsignedLT ArithmeticOp = 0x0005 // TPM_EO_UNSIGNED_LT OpSignedGE ArithmeticOp = 0x0006 // TPM_EO_SIGNED_GE OpUnsignedGE ArithmeticOp = 0x0007 // TPM_EO_UNSIGNED_GE OpSignedLE ArithmeticOp = 0x0008 // TPM_EO_SIGNED_LE OpUnsignedLE ArithmeticOp = 0x0009 // TPM_EO_UNSIGNED_LE OpBitset ArithmeticOp = 0x000a // TPM_EO_BITSET OpBitclear ArithmeticOp = 0x000b // TPM_EO_BITCLEAR ) // StructTag corresponds to the TPM_ST type. type StructTag uint16 const ( TagRspCommand StructTag = 0x00c4 // TPM_ST_RSP_COMMAND TagNoSessions StructTag = 0x8001 // TPM_ST_NO_SESSIONS TagSessions StructTag = 0x8002 // TPM_ST_SESSIONS TagAttestNV StructTag = 0x8014 // TPM_ST_ATTEST_NV TagAttestCommandAudit StructTag = 0x8015 // TPM_ST_ATTEST_COMMAND_AUDIT TagAttestSessionAudit StructTag = 0x8016 // TPM_ST_ATTEST_SESSION_AUDIT TagAttestCertify StructTag = 0x8017 // TPM_ST_ATTEST_CERTIFY TagAttestQuote StructTag = 0x8018 // TPM_ST_ATTEST_QUOTE TagAttestTime StructTag = 0x8019 // TPM_ST_ATTEST_TIME TagAttestCreation StructTag = 0x801a // TPM_ST_ATTEST_CREATION TagCreation StructTag = 0x8021 // TPM_ST_CREATION TagVerified StructTag = 0x8022 // TPM_ST_VERIFIED TagAuthSecret StructTag = 0x8023 // TPM_ST_AUTH_SECRET TagHashcheck StructTag = 0x8024 // TPM_ST_HASHCHECK TagAuthSigned StructTag = 0x8025 // TPM_ST_AUTH_SIGNED ) // StartupType corresponds to the TPM_SU type. type StartupType uint16 const ( StartupClear StartupType = iota StartupState ) // SessionType corresponds to the TPM_SE type. type SessionType uint8 const ( SessionTypeHMAC SessionType = 0x00 // TPM_SE_HMAC SessionTypePolicy SessionType = 0x01 // TPM_SE_POLICY SessionTypeTrial SessionType = 0x03 // TPM_SE_TRIAL ) // Capability corresponds to the TPM_CAP type. type Capability uint32 const ( CapabilityAlgs Capability = 0 // TPM_CAP_ALGS CapabilityHandles Capability = 1 // TPM_CAP_HANDLES CapabilityCommands Capability = 2 // TPM_CAP_COMMANDS CapabilityPPCommands Capability = 3 // TPM_CAP_PP_COMMANDS CapabilityAuditCommands Capability = 4 // TPM_CAP_AUDIT_COMMANDS CapabilityPCRs Capability = 5 // TPM_CAP_PCRS CapabilityTPMProperties Capability = 6 // TPM_CAP_TPM_PROPERTIES CapabilityPCRProperties Capability = 7 // TPM_CAP_PCR_PROPERTIES CapabilityECCCurves Capability = 8 // TPM_CAP_ECC_CURVES CapabilityAuthPolicies Capability = 9 // TPM_CAP_AUTH_POLICIES ) // Property corresponds to the TPM_PT type. type Property uint32 const ( // These constants represent properties that only change when the firmware in the TPM changes. PropertyFamilyIndicator Property = 0x100 // TPM_PT_FAMILY_INDICATOR PropertyLevel Property = 0x101 // TPM_PT_LEVEL PropertyRevision Property = 0x102 // TPM_PT_REVISION PropertyDayOfYear Property = 0x103 // TPM_PT_DAY_OF_YEAR PropertyYear Property = 0x104 // TPM_PT_YEAR PropertyManufacturer Property = 0x105 // TPM_PT_MANUFACTURER PropertyVendorString1 Property = 0x106 // TPM_PT_VENDOR_STRING_1 PropertyVendorString2 Property = 0x107 // TPM_PT_VENDOR_STRING_2 PropertyVendorString3 Property = 0x108 // TPM_PT_VENDOR_STRING_3 PropertyVendorString4 Property = 0x109 // TPM_PT_VENDOR_STRING_4 PropertyVendorTPMType Property = 0x10a // TPM_PT_VENDOR_TPM_TYPE PropertyFirmwareVersion1 Property = 0x10b // TPM_PT_FIRMWARE_VERSION_1 PropertyFirmwareVersion2 Property = 0x10c // TPM_PT_FIRMWARE_VERSION_2 PropertyInputBuffer Property = 0x10d // TPM_PT_INPUT_BUFFER PropertyHRTransientMin Property = 0x10e // TPM_PT_HR_TRANSIENT_MIN PropertyHRPersistentMin Property = 0x10f // TPM_PT_HR_PERSISTENT_MIN PropertyHRLoadedMin Property = 0x110 // TPM_PT_HR_LOADED_MIN PropertyActiveSessionsMax Property = 0x111 // TPM_PT_ACTIVE_SESSIONS_MAX PropertyPCRCount Property = 0x112 // TPM_PT_PCR_COUNT PropertyPCRSelectMin Property = 0x113 // TPM_PT_PCR_SELECT_MIN PropertyContextGapMax Property = 0x114 // TPM_PT_CONTEXT_GAP_MAX PropertyNVCountersMax Property = 0x116 // TPM_PT_NV_COUNTERS_MAX PropertyNVIndexMax Property = 0x117 // TPM_PT_NV_INDEX_MAX PropertyMemory Property = 0x118 // TPM_PT_MEMORY PropertyClockUpdate Property = 0x119 // TPM_PT_CLOCK_UPDATE PropertyContextHash Property = 0x11a // TPM_PT_CONTEXT_HASH PropertyContextSym Property = 0x11b // TPM_PT_CONTEXT_SYM PropertyContextSymSize Property = 0x11c // TPM_PT_CONTEXT_SYM_SIZE PropertyOrderlyCount Property = 0x11d // TPM_PT_ORDERLY_COUNT PropertyMaxCommandSize Property = 0x11e // TPM_PT_MAX_COMMAND_SIZE PropertyMaxResponseSize Property = 0x11f // TPM_PT_MAX_RESPONSE_SIZE PropertyMaxDigest Property = 0x120 // TPM_PT_MAX_DIGEST PropertyMaxObjectContext Property = 0x121 // TPM_PT_MAX_OBJECT_CONTEXT PropertyMaxSessionContext Property = 0x122 // TPM_PT_MAX_SESSION_CONTEXT PropertyPSFamilyIndicator Property = 0x123 // TPM_PT_PS_FAMILY_INDICATOR PropertyPSLevel Property = 0x124 // TPM_PT_PS_LEVEL PropertyPSRevision Property = 0x125 // TPM_PT_PS_REVISION PropertyPSDayOfYear Property = 0x126 // TPM_PT_PS_DAY_OF_YEAR PropertyPSYear Property = 0x127 // TPM_PT_PS_YEAR PropertySplitMax Property = 0x128 // TPM_PT_SPLIT_MAX PropertyTotalCommands Property = 0x129 // TPM_PT_TOTAL_COMMANDS PropertyLibraryCommands Property = 0x12a // TPM_PT_LIBRARY_COMMANDS PropertyVendorCommands Property = 0x12b // TPM_PT_VENDOR_COMMANDS PropertyNVBufferMax Property = 0x12c // TPM_PT_NV_BUFFER_MAX PropertyModes Property = 0x12d // TPM_PT_MODES PropertyMaxCapBuffer Property = 0x12e // TPM_PT_MAX_CAP_BUFFER PropertyFirmwareSVN Property = 0x12f // TPM_PT_FIRMWARE_SVN PropertyFirmwareMaxSVN Property = 0x130 // TPM_PT_FIRMWARE_MAX_SVN PropertyFixed Property = PropertyFamilyIndicator ) const ( // These constants represent properties that change for reasons other than a firmware upgrade. Some of // them may not persist across power cycles. PropertyPermanent Property = 0x200 // TPM_PT_PERMANENT PropertyStartupClear Property = 0x201 // TPM_PT_STARTUP_CLEAR PropertyHRNVIndex Property = 0x202 // TPM_PT_HR_NV_INDEX PropertyHRLoaded Property = 0x203 // TPM_PT_HR_LOADED PropertyHRLoadedAvail Property = 0x204 // TPM_PT_HR_LOADED_AVAIL PropertyHRActive Property = 0x205 // TPM_PT_HR_ACTIVE PropertyHRActiveAvail Property = 0x206 // TPM_PT_HR_ACTIVE_AVAIL PropertyHRTransientAvail Property = 0x207 // TPM_PT_HR_TRANSIENT_AVAIL PropertyHRPersistent Property = 0x208 // TPM_PT_HR_PERSISTENT PropertyHRPersistentAvail Property = 0x209 // TPM_PT_HR_PERSISTENT_AVAIL PropertyNVCounters Property = 0x20a // TPM_PT_NV_COUNTERS PropertyNVCountersAvail Property = 0x20b // TPM_PT_NV_COUNTERS_AVAIL PropertyAlgorithmSet Property = 0x20c // TPM_PT_ALGORITHM_SET PropertyLoadedCurves Property = 0x20d // TPM_PT_LOADED_CURVES PropertyLockoutCounter Property = 0x20e // TPM_PT_LOCKOUT_COUNTER PropertyMaxAuthFail Property = 0x20f // TPM_PT_MAX_AUTH_FAIL PropertyLockoutInterval Property = 0x210 // TPM_PT_LOCKOUT_INTERVAL PropertyLockoutRecovery Property = 0x211 // TPM_PT_LOCKOUT_RECOVERY PropertyNVWriteRecovery Property = 0x212 // TPM_PT_NV_WRITE_RECOVERY PropertyAuditCounter0 Property = 0x213 // TPM_PT_AUDIT_COUNTER_0 PropertyAuditCounter1 Property = 0x214 // TPM_PT_AUDIT_COUNTER_1 PropertyVar Property = PropertyPermanent ) // PropertyPCR corresponds to the TPM_PT_PCR type. type PropertyPCR uint32 const ( PropertyPCRSave PropertyPCR = 0x00 // TPM_PT_PCR_SAVE PropertyPCRExtendL0 PropertyPCR = 0x01 // TPM_PT_PCR_EXTEND_L0 PropertyPCRResetL0 PropertyPCR = 0x02 // TPM_PT_PCR_RESET_L0 PropertyPCRExtendL1 PropertyPCR = 0x03 // TPM_PT_PCR_EXTEND_L1 PropertyPCRResetL1 PropertyPCR = 0x04 // TPM_PT_PCR_RESET_L1 PropertyPCRExtendL2 PropertyPCR = 0x05 // TPM_PT_PCR_EXTEND_L2 PropertyPCRResetL2 PropertyPCR = 0x06 // TPM_PT_PCR_RESET_L2 PropertyPCRExtendL3 PropertyPCR = 0x07 // TPM_PT_PCR_EXTEND_L3 PropertyPCRResetL3 PropertyPCR = 0x08 // TPM_PT_PCR_RESET_L3 PropertyPCRExtendL4 PropertyPCR = 0x09 // TPM_PT_PCR_EXTEND_L4 PropertyPCRResetL4 PropertyPCR = 0x0a // TPM_PT_PCR_RESET_L4 PropertyPCRNoIncrement PropertyPCR = 0x11 // TPM_PT_PCR_NO_INCREMENT PropertyPCRDRTMReset PropertyPCR = 0x12 // TPM_PT_PCR_DRTM_RESET PropertyPCRPolicy PropertyPCR = 0x13 // TPM_PT_PCR_POLICY PropertyPCRAuth PropertyPCR = 0x14 // TPM_PT_PCR_AUTH PropertyPCRFirst PropertyPCR = PropertyPCRSave ) ./github.com/canonical/go-tpm2/types_context.go0000664000000000000000000000130700000000000016617 0ustar00// Copyright 2019 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package tpm2 // This file contains types defined in section 14 (Context Data) // in part 2 of the library spec. // ContextData corresponds to the TPM2B_CONTEXT_DATA type. type ContextData []byte // Context corresponds to the TPMS_CONTEXT type which represents a saved // object or session context. type Context struct { Sequence uint64 // Sequence number of the context SavedHandle Handle // Handle indicating if this is a session or object Hierarchy Handle // Hierarchy of the context Blob ContextData // Encrypted context data and integrity HMAC } ./github.com/canonical/go-tpm2/types_creation.go0000664000000000000000000000164500000000000016744 0ustar00// Copyright 2019 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package tpm2 // This file contains types defined in section 15 (Creation Data) // in part 2 of the library spec. // CreationData corresponds to the TPMS_CREATION_DATA type, which provides // information about the creation environment of an object. type CreationData struct { PCRSelect PCRSelectionList // PCRs included in PCRDigest // Digest of the selected PCRs using the name algorithm of the object associated with this data. PCRDigest Digest Locality Locality // Locality at which the object was created ParentNameAlg AlgorithmId // Name algorithm of the parent ParentName Name // Name of the parent ParentQualifiedName Name // Qualified name of the parent OutsideInfo Data // External information provided by the caller } ./github.com/canonical/go-tpm2/types_handles.go0000664000000000000000000000453600000000000016560 0ustar00// Copyright 2019 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package tpm2 // This file contains types defined in section 7 (Handles) in // part 2 of the library spec. // Handle corresponds to the TPM_HANDLE type, and is a numeric // identifier that references a resource on the TPM. type Handle uint32 // Type returns the type of the handle. func (h Handle) Type() HandleType { return HandleType(h >> 24) } const ( HandleOwner Handle = 0x40000001 // TPM_RH_OWNER HandleNull Handle = 0x40000007 // TPM_RH_NULL HandleUnassigned Handle = 0x40000008 // TPM_RH_UNASSIGNED HandlePW Handle = 0x40000009 // TPM_RS_PW HandleLockout Handle = 0x4000000a // TPM_RH_LOCKOUT HandleEndorsement Handle = 0x4000000b // TPM_RH_ENDORSEMENT HandlePlatform Handle = 0x4000000c // TPM_RH_PLATFORM HandlePlatformNV Handle = 0x4000000d // TPM_RH_PLATFORM_NV HandleFWOwner Handle = 0x40000140 // TPM_RH_FW_OWNER HandleFWEndorsement Handle = 0x40000141 // TPM_RH_FW_ENDORSEMENT HandleFWPlatform Handle = 0x40000142 // TPM_RH_FW_PLATFORM HandleFWNull Handle = 0x40000143 // TPM_RH_FW_NULL HandleSVNOwnerBase Handle = 0x40010000 // TPM_RH_SVN_OWNER_BASE HandleSVNEndorsementBase Handle = 0x40020000 // TPM_RH_SVN_ENDORSEMENT_BASE HandleSVNPlatformBase Handle = 0x40030000 // TPM_RH_SVN_PLATFORM_BASE HandleSVNNullBase Handle = 0x40040000 // TPM_RH_SVN_NULL_BASE ) // HandleType corresponds to the TPM_HT type, and is used to // identify the type of a Handle. type HandleType uint8 // BaseHandle returns the first handle for the handle type. func (h HandleType) BaseHandle() Handle { return Handle(h) << 24 } const ( HandleTypePCR HandleType = 0x00 // TPM_HT_PCR HandleTypeNVIndex HandleType = 0x01 // TPM_HT_NV_INDEX HandleTypeHMACSession HandleType = 0x02 // TPM_HT_HMAC_SESSION HandleTypeLoadedSession HandleType = 0x02 // TPM_HT_LOADED_SESSION HandleTypePolicySession HandleType = 0x03 // TPM_HT_POLICY_SESSION HandleTypeSavedSession HandleType = 0x03 // TPM_HT_SAVED_SESSION HandleTypePermanent HandleType = 0x40 // TPM_HT_PERMANENT HandleTypeTransient HandleType = 0x80 // TPM_HT_TRANSIENT HandleTypePersistent HandleType = 0x81 // TPM_HT_PERSISTENT ) ./github.com/canonical/go-tpm2/types_interface.go0000664000000000000000000002553000000000000017077 0ustar00// Copyright 2019 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package tpm2 import ( "crypto" "crypto/cipher" _ "crypto/sha1" _ "crypto/sha256" _ "crypto/sha512" "fmt" "hash" ) // This file contains types defined in section 9 (Interface Types) in // part 2 of the library spec. Interface types are used by the TPM // implementation to check that a value is appropriate for the context // during unmarshalling. This package has limited support for some // algorithm interfaces by defining context specific algorithm types // based on the AlgorithmId type. Note that no interface types with // TPM_HANDLE as the underlying type are supported, as this package // doesn't use handles in most APIs. var _ crypto.SignerOpts = HashAlgorithmId(0) // HashAlgorithmId corresponds to the TPMI_ALG_HASH type type HashAlgorithmId AlgorithmId // GetHash returns the equivalent crypto.Hash value for this algorithm if one // exists, and 0 if one does not exist. func (a HashAlgorithmId) GetHash() crypto.Hash { switch a { case HashAlgorithmSHA1: return crypto.SHA1 case HashAlgorithmSHA256: return crypto.SHA256 case HashAlgorithmSHA384: return crypto.SHA384 case HashAlgorithmSHA512: return crypto.SHA512 case HashAlgorithmSHA3_256: return crypto.SHA3_256 case HashAlgorithmSHA3_384: return crypto.SHA3_384 case HashAlgorithmSHA3_512: return crypto.SHA3_512 default: return 0 } } // HashFunc implements [crypto.SignerOpts.HashFunc]. // // This will return 0 if the algorithm does not have a corresponding // crypto.Hash. func (a HashAlgorithmId) HashFunc() crypto.Hash { return a.GetHash() } // IsValid determines if the digest algorithm is valid. This // should be checked by code that deserializes an algorithm before // calling Size if it does not want to panic. // // Note that this does not guarantee that the [HashAlgorithmId.GetHash] // will return a valid corresponding [crypto.Hash]. func (a HashAlgorithmId) IsValid() bool { switch a { case HashAlgorithmSHA1: case HashAlgorithmSHA256: case HashAlgorithmSHA384: case HashAlgorithmSHA512: case HashAlgorithmSHA256_192: case HashAlgorithmSM3_256: case HashAlgorithmSHA3_256: case HashAlgorithmSHA3_384: case HashAlgorithmSHA3_512: case HashAlgorithmSHAKE256_192: case HashAlgorithmSHAKE256_256: case HashAlgorithmSHAKE256_512: default: return false } return true } // Available determines if the TPM digest algorithm has an equivalent go // [crypto.Hash] that is linked into the current binary. func (a HashAlgorithmId) Available() bool { return a.GetHash().Available() } // NewHash constructs a new hash.Hash implementation for this algorithm. // It will panic if [HashAlgorithmId.Available] returns false. func (a HashAlgorithmId) NewHash() hash.Hash { return a.GetHash().New() } // Size returns the size of the algorithm. It will panic if // [HashAlgorithmId.IsValid] returns false. func (a HashAlgorithmId) Size() int { switch a { case HashAlgorithmSHA1: return 20 case HashAlgorithmSHA256: return 32 case HashAlgorithmSHA384: return 48 case HashAlgorithmSHA512: return 64 case HashAlgorithmSHA256_192: return 24 case HashAlgorithmSM3_256: return 32 case HashAlgorithmSHA3_256: return 32 case HashAlgorithmSHA3_384: return 48 case HashAlgorithmSHA3_512: return 64 case HashAlgorithmSHAKE256_192: return 24 case HashAlgorithmSHAKE256_256: return 32 case HashAlgorithmSHAKE256_512: return 64 default: panic("unknown hash algorithm") } } const ( HashAlgorithmNull HashAlgorithmId = HashAlgorithmId(AlgorithmNull) // TPM_ALG_NULL HashAlgorithmSHA1 HashAlgorithmId = HashAlgorithmId(AlgorithmSHA1) // TPM_ALG_SHA1 HashAlgorithmSHA256 HashAlgorithmId = HashAlgorithmId(AlgorithmSHA256) // TPM_ALG_SHA256 HashAlgorithmSHA384 HashAlgorithmId = HashAlgorithmId(AlgorithmSHA384) // TPM_ALG_SHA384 HashAlgorithmSHA512 HashAlgorithmId = HashAlgorithmId(AlgorithmSHA512) // TPM_ALG_SHA512 HashAlgorithmSHA256_192 HashAlgorithmId = HashAlgorithmId(AlgorithmSHA256_192) // TPM_ALG_SHA256_192 HashAlgorithmSM3_256 HashAlgorithmId = HashAlgorithmId(AlgorithmSM3_256) // TPM_ALG_SM3_256 HashAlgorithmSHA3_256 HashAlgorithmId = HashAlgorithmId(AlgorithmSHA3_256) // TPM_ALG_SHA3_256 HashAlgorithmSHA3_384 HashAlgorithmId = HashAlgorithmId(AlgorithmSHA3_384) // TPM_ALG_SHA3_384 HashAlgorithmSHA3_512 HashAlgorithmId = HashAlgorithmId(AlgorithmSHA3_512) // TPM_ALG_SHA3_512 HashAlgorithmSHAKE256_192 HashAlgorithmId = HashAlgorithmId(AlgorithmSHAKE256_192) // TPM_ALG_SHAKE256_192 HashAlgorithmSHAKE256_256 HashAlgorithmId = HashAlgorithmId(AlgorithmSHAKE256_256) // TPM_ALG_SHAKE256_256 HashAlgorithmSHAKE256_512 HashAlgorithmId = HashAlgorithmId(AlgorithmSHAKE256_512) // TPM_ALG_SHAKE256_512 ) // SymAlgorithmId corresponds to the TPMI_ALG_SYM type type SymAlgorithmId AlgorithmId // IsValidBlockCipher determines if this algorithm is a valid block cipher. // This should be checked by code that deserializes an algorithm before // calling [SymAlgorithmId.BlockSize] if it does not want to panic. func (a SymAlgorithmId) IsValidBlockCipher() bool { switch a { case SymAlgorithmTDES: case SymAlgorithmAES: case SymAlgorithmSM4: case SymAlgorithmCamellia: default: return false } return true } // Available indicates whether the TPM symmetric cipher has a registered // go implementation. func (a SymAlgorithmId) Available() bool { _, ok := symmetricAlgs[a] return ok } // BlockSize indicates the block size of the symmetric cipher. This will // panic if [SymAlgorithmId.IsValidBlockCipher] returns false. func (a SymAlgorithmId) BlockSize() int { switch a { case SymAlgorithmTDES: return 8 case SymAlgorithmAES: return 16 case SymAlgorithmSM4: return 16 case SymAlgorithmCamellia: return 16 default: panic("invalid symmetric algorithm") } } // NewCipher constructs a new symmetric cipher with the supplied key, if // there is a go implementation registered. func (a SymAlgorithmId) NewCipher(key []byte) (cipher.Block, error) { if !a.IsValidBlockCipher() { return nil, fmt.Errorf("%v is not a valid block cipher", a) } fn, ok := symmetricAlgs[a] if !ok { return nil, fmt.Errorf("unavailable cipher %v", a) } return fn(key) } const ( SymAlgorithmTDES SymAlgorithmId = SymAlgorithmId(AlgorithmTDES) // TPM_ALG_TDES SymAlgorithmAES SymAlgorithmId = SymAlgorithmId(AlgorithmAES) // TPM_ALG_AES SymAlgorithmXOR SymAlgorithmId = SymAlgorithmId(AlgorithmXOR) // TPM_ALG_XOR SymAlgorithmNull SymAlgorithmId = SymAlgorithmId(AlgorithmNull) // TPM_ALG_NULL SymAlgorithmSM4 SymAlgorithmId = SymAlgorithmId(AlgorithmSM4) // TPM_ALG_SM4 SymAlgorithmCamellia SymAlgorithmId = SymAlgorithmId(AlgorithmCamellia) // TPM_ALG_CAMELLIA ) // SymObjectAlgorithmId corresponds to the TPMI_ALG_SYM_OBJECT type type SymObjectAlgorithmId AlgorithmId // IsValidBlockCipher determines if this algorithm is a valid block cipher. // This should be checked by code that deserializes an algorithm before // calling [SymObjectAlgorithmId.BlockSize] if it does not want to panic. func (a SymObjectAlgorithmId) IsValidBlockCipher() bool { return SymAlgorithmId(a).IsValidBlockCipher() } // Available indicates whether the TPM symmetric cipher has a registered // go implementation. func (a SymObjectAlgorithmId) Available() bool { return SymAlgorithmId(a).Available() } // BlockSize indicates the block size of the symmetric cipher. This will // panic if [SymObjectAlgorithmId.IsValidBlockCipher] returns false. func (a SymObjectAlgorithmId) BlockSize() int { return SymAlgorithmId(a).BlockSize() } // NewCipher constructs a new symmetric cipher with the supplied key, if // there is a go implementation registered. func (a SymObjectAlgorithmId) NewCipher(key []byte) (cipher.Block, error) { return SymAlgorithmId(a).NewCipher(key) } const ( SymObjectAlgorithmAES SymObjectAlgorithmId = SymObjectAlgorithmId(AlgorithmAES) // TPM_ALG_AES SymObjectAlgorithmNull SymObjectAlgorithmId = SymObjectAlgorithmId(AlgorithmNull) // TPM_ALG_NULL SymObjectAlgorithmSM4 SymObjectAlgorithmId = SymObjectAlgorithmId(AlgorithmSM4) // TPM_ALG_SM4 SymObjectAlgorithmCamellia SymObjectAlgorithmId = SymObjectAlgorithmId(AlgorithmCamellia) // TPM_ALG_CAMELLIA ) // SymModeId corresponds to the TPMI_ALG_SYM_MODE type type SymModeId AlgorithmId const ( SymModeNull SymModeId = SymModeId(AlgorithmNull) // TPM_ALG_NULL SymModeCTR SymModeId = SymModeId(AlgorithmCTR) // TPM_ALG_CTR SymModeOFB SymModeId = SymModeId(AlgorithmOFB) // TPM_ALG_OFB SymModeCBC SymModeId = SymModeId(AlgorithmCBC) // TPM_ALG_CBC SymModeCFB SymModeId = SymModeId(AlgorithmCFB) // TPM_ALG_CFB SymModeECB SymModeId = SymModeId(AlgorithmECB) // TPM_ALG_ECB ) // KDFAlgorithmId corresppnds to the TPMI_ALG_KDF type type KDFAlgorithmId AlgorithmId const ( KDFAlgorithmMGF1 KDFAlgorithmId = KDFAlgorithmId(AlgorithmMGF1) // TPM_ALG_MGF1 KDFAlgorithmNull KDFAlgorithmId = KDFAlgorithmId(AlgorithmNull) // TPM_ALG_NULL KDFAlgorithmKDF1_SP800_56A KDFAlgorithmId = KDFAlgorithmId(AlgorithmKDF1_SP800_56A) // TPM_ALG_KDF1_SP800_56A KDFAlgorithmKDF2 KDFAlgorithmId = KDFAlgorithmId(AlgorithmKDF2) // TPM_ALG_KDF2 KDFAlgorithmKDF1_SP800_108 KDFAlgorithmId = KDFAlgorithmId(AlgorithmKDF1_SP800_108) // TPM_ALG_KDF1_SP800_108 ) // SigSchemeId corresponds to the TPMI_ALG_SIG_SCHEME type type SigSchemeId AlgorithmId // IsValid determines if the scheme is a valid signature scheme. func (s SigSchemeId) IsValid() bool { switch s { case SigSchemeAlgHMAC: case SigSchemeAlgRSASSA: case SigSchemeAlgRSAPSS: case SigSchemeAlgECDSA: case SigSchemeAlgECDAA: case SigSchemeAlgSM2: case SigSchemeAlgECSchnorr: case SigSchemeAlgEDDSA: case SigSchemeAlgEDDSA_PH: default: return false } return true } const ( SigSchemeAlgHMAC SigSchemeId = SigSchemeId(AlgorithmHMAC) // TPM_ALG_HMAC SigSchemeAlgNull SigSchemeId = SigSchemeId(AlgorithmNull) // TPM_ALG_NULL SigSchemeAlgRSASSA SigSchemeId = SigSchemeId(AlgorithmRSASSA) // TPM_ALG_RSASSA SigSchemeAlgRSAPSS SigSchemeId = SigSchemeId(AlgorithmRSAPSS) // TPM_ALG_RSAPSS SigSchemeAlgECDSA SigSchemeId = SigSchemeId(AlgorithmECDSA) // TPM_ALG_ECDSA SigSchemeAlgECDAA SigSchemeId = SigSchemeId(AlgorithmECDAA) // TPM_ALG_ECDAA SigSchemeAlgSM2 SigSchemeId = SigSchemeId(AlgorithmSM2) // TPM_ALG_SM2 SigSchemeAlgECSchnorr SigSchemeId = SigSchemeId(AlgorithmECSchnorr) // TPM_ALG_ECSCHNORR SigSchemeAlgEDDSA SigSchemeId = SigSchemeId(AlgorithmEDDSA) // TPM_ALG_EDDSA SigSchemeAlgEDDSA_PH SigSchemeId = SigSchemeId(AlgorithmEDDSA_PH) // TPM_ALG_EDDSA SigSchemeAlgLMS SigSchemeId = SigSchemeId(AlgorithmLMS) // TPM_ALG_LMS SigSchemeAlgXMSS SigSchemeId = SigSchemeId(AlgorithmXMSS) // TPM_ALG_XMSS ) ./github.com/canonical/go-tpm2/types_nv.go0000664000000000000000000001070400000000000015557 0ustar00// Copyright 2019 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package tpm2 import ( "bytes" "fmt" "github.com/canonical/go-tpm2/mu" ) // This file contains types defined in section 13 (NV Storage Structures) // in part 2 of the library spec. // NVType corresponds to the TPM_NT type. type NVType uint32 // WithAttrs returns NVAttributes for this type with the specified attributes set. func (t NVType) WithAttrs(attrs NVAttributes) NVAttributes { return NVAttributes(t<<4) | attrs } const ( NVTypeOrdinary NVType = 0 // TPM_NT_ORDINARY NVTypeCounter NVType = 1 // TPM_NT_COUNTER NVTypeBits NVType = 2 // TPM_NT_BITS NVTypeExtend NVType = 4 // TPM_NT_EXTEND NVTypePinFail NVType = 8 // TPM_NT_PIN_FAIL NVTypePinPass NVType = 9 // TPM_NT_PIN_PASS ) // NVPinCounterParams corresponds to the TPMS_NV_PIN_COUNTER_PARAMETERS type. type NVPinCounterParams struct { Count uint32 Limit uint32 } // NVAttributes corresponds to the TPMA_NV type, and represents the // attributes of a NV index. When exchanged with the TPM, some bits // are reserved to encode the type of the NV index ([NVType]). type NVAttributes uint32 // Type returns the NVType encoded in a NVAttributes value. func (a NVAttributes) Type() NVType { return NVType((a & attrNVType) >> attrNVTypeShift) } // AttrsOnly returns the NVAttributes without the encoded [NVType]. func (a NVAttributes) AttrsOnly() NVAttributes { return a & ^attrNVType } const ( AttrNVPPWrite NVAttributes = 1 << 0 // TPMA_NV_PPWRITE AttrNVOwnerWrite NVAttributes = 1 << 1 // TPMA_NV_OWNERWRITE AttrNVAuthWrite NVAttributes = 1 << 2 // TPMA_NV_AUTHWRITE AttrNVPolicyWrite NVAttributes = 1 << 3 // TPMA_NV_POLICY_WRITE attrNVTypeShift = 4 attrNVType NVAttributes = 0xf << attrNVTypeShift AttrNVPolicyDelete NVAttributes = 1 << 10 // TPMA_NV_POLICY_DELETE AttrNVWriteLocked NVAttributes = 1 << 11 // TPMA_NV_WRITELOCKED AttrNVWriteAll NVAttributes = 1 << 12 // TPMA_NV_WRITEALL AttrNVWriteDefine NVAttributes = 1 << 13 // TPMA_NV_WRITEDEFINE AttrNVWriteStClear NVAttributes = 1 << 14 // TPMA_NV_WRITE_STCLEAR AttrNVGlobalLock NVAttributes = 1 << 15 // TPMA_NV_GLOBALLOCK AttrNVPPRead NVAttributes = 1 << 16 // TPMA_NV_PPREAD AttrNVOwnerRead NVAttributes = 1 << 17 // TPMA_NV_OWNERREAD AttrNVAuthRead NVAttributes = 1 << 18 // TPMA_NV_AUTHREAD AttrNVPolicyRead NVAttributes = 1 << 19 // TPMA_NV_POLICYREAD AttrNVNoDA NVAttributes = 1 << 25 // TPMA_NV_NO_DA AttrNVOrderly NVAttributes = 1 << 26 // TPMA_NV_ORDERLY AttrNVClearStClear NVAttributes = 1 << 27 // TPMA_NV_CLEAR_STCLEAR AttrNVReadLocked NVAttributes = 1 << 28 // TPMA_NV_READLOCKED AttrNVWritten NVAttributes = 1 << 29 // TPMA_NV_WRITTEN AttrNVPlatformCreate NVAttributes = 1 << 30 // TPMA_NV_PLATFORMCREATE AttrNVReadStClear NVAttributes = 1 << 31 // TPMA_NV_READ_STCLEAR ) // NVPublic corresponds to the TPMS_NV_PUBLIC type, which describes a NV index. type NVPublic struct { Index Handle // Handle of the NV index NameAlg HashAlgorithmId // NameAlg is the digest algorithm used to compute the name of the index Attrs NVAttributes // Attributes of this index AuthPolicy Digest // Authorization policy for this index Size uint16 // Size of this index } // Name computes the name of this NV index func (p *NVPublic) ComputeName() (Name, error) { if !p.NameAlg.Available() { return nil, fmt.Errorf("unsupported name algorithm or algorithm not linked into binary: %v", p.NameAlg) } h := p.NameAlg.NewHash() if _, err := mu.MarshalToWriter(h, p); err != nil { return nil, fmt.Errorf("cannot marshal public object: %v", err) } return mu.MustMarshalToBytes(p.NameAlg, mu.RawBytes(h.Sum(nil))), nil } func (p *NVPublic) compareName(name Name) bool { n, err := p.ComputeName() if err != nil { return false } return bytes.Equal(n, name) } // Name implements [github.com/canonical/go-tpm2/objectutil.Named] and // [github.com/canonical/go-tpm2/policyutil.Named]. // // This computes the name from the public area. If the name cannot be computed // then an invalid name is returned ([Name.Type] will return NameTypeInvalid). func (p *NVPublic) Name() Name { name, err := p.ComputeName() if err != nil { return Name{0, 0} } return name } // Deprecated: there is currently no use for this. func (p *NVPublic) Handle() Handle { return p.Index } ./github.com/canonical/go-tpm2/types_objects.go0000664000000000000000000003270300000000000016570 0ustar00// Copyright 2019 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package tpm2 import ( "bytes" "crypto" "crypto/ecdsa" "crypto/rsa" "fmt" "math/big" "reflect" "github.com/canonical/go-tpm2/mu" ) // This file contains types defined in section 12 (Key/Object Complex) // in part 2 of the library spec. // ObjectTypeId corresponds to the TPMI_ALG_PUBLIC type. type ObjectTypeId AlgorithmId // IsAsymmetric determines if the type corresponds to an asymmetric // object. func (t ObjectTypeId) IsAsymmetric() bool { return t == ObjectTypeRSA || t == ObjectTypeECC } const ( ObjectTypeRSA ObjectTypeId = ObjectTypeId(AlgorithmRSA) // TPM_ALG_RSA ObjectTypeKeyedHash ObjectTypeId = ObjectTypeId(AlgorithmKeyedHash) // TPM_ALG_KEYEDHASH ObjectTypeECC ObjectTypeId = ObjectTypeId(AlgorithmECC) // TPM_ALG_ECC ObjectTypeSymCipher ObjectTypeId = ObjectTypeId(AlgorithmSymCipher) // TPM_ALG_SYMCIPHER ) // PublicIDU is a union type that corresponds to the TPMU_PUBLIC_ID type. The selector type // is [ObjectTypeId]. The mapping of selector values to fields is as follows: // - ObjectTypeRSA: RSA // - ObjectTypeKeyedHash: KeyedHash // - ObjectTypeECC: ECC // - ObjectTypeSymCipher: Sym type PublicIDU struct { KeyedHash Digest Sym Digest RSA PublicKeyRSA ECC *ECCPoint } // Select implements [mu.Union]. func (p *PublicIDU) Select(selector reflect.Value) interface{} { switch selector.Interface().(ObjectTypeId) { case ObjectTypeRSA: return &p.RSA case ObjectTypeKeyedHash: return &p.KeyedHash case ObjectTypeECC: return &p.ECC case ObjectTypeSymCipher: return &p.Sym default: return nil } } // KeyedHashParams corresponds to the TPMS_KEYEDHASH_PARMS type, and defines the public // parameters for a keyedhash object. type KeyedHashParams struct { Scheme KeyedHashScheme // Signing method for a keyed hash signing object } // AsymParams corresponds to the TPMS_ASYM_PARMS type, and defines the common public // parameters for an asymmetric key. type AsymParams struct { Symmetric SymDefObject // Symmetric algorithm for a restricted decrypt key. // For a key with the AttrSign attribute: a signing scheme. // For a key with the AttrDecrypt attribute: a key exchange protocol. // For a key with both AttrSign and AttrDecrypt attributes: AlgorithmNull. Scheme AsymScheme } // RSAParams corresponds to the TPMS_RSA_PARMS type, and defines the public parameters // for an RSA key. type RSAParams struct { Symmetric SymDefObject // Symmetric algorithm for a restricted decrypt key. // For an unrestricted signing key: AlgorithmRSAPSS, AlgorithmRSASSA or AlgorithmNull. // For a restricted signing key: AlgorithmRSAPSS or AlgorithmRSASSA. // For an unrestricted decrypt key: AlgorithmRSAES, AlgorithmOAEP or AlgorithmNull. // For a restricted decrypt key: AlgorithmNull. Scheme RSAScheme KeyBits uint16 // Number of bits in the public modulus Exponent uint32 // Public exponent. When the value is zero, the exponent is 65537 } // ECCParams corresponds to the TPMS_ECC_PARMS type, and defines the public parameters for an // ECC key. type ECCParams struct { Symmetric SymDefObject // Symmetric algorithm for a restricted decrypt key. // For a key with the AttrSign attribute: a signing scheme. // For a key with the AttrDecrypt attribute: a key exchange protocol or AlgorithmNull. // For a storage key: AlgorithmNull. Scheme ECCScheme CurveID ECCCurve // ECC curve ID KDF KDFScheme // Unused - always KDFAlgorithmNull } // PublicParamsU is a union type that corresponds to the TPMU_PUBLIC_PARMS type. The selector // type is ]ObjectTypeId]. // The mapping of selector values to fields is as follows: // - ObjectTypeRSA: RSADetail // - ObjectTypeKeyedHash: KeyedHashDetail // - ObjectTypeECC: ECCDetail // - ObjectTypeSymCipher: SymDetail type PublicParamsU struct { KeyedHashDetail *KeyedHashParams SymDetail *SymCipherParams RSADetail *RSAParams ECCDetail *ECCParams } // Select implements [mu.Union]. func (p *PublicParamsU) Select(selector reflect.Value) interface{} { switch selector.Interface().(ObjectTypeId) { case ObjectTypeRSA: return &p.RSADetail case ObjectTypeKeyedHash: return &p.KeyedHashDetail case ObjectTypeECC: return &p.ECCDetail case ObjectTypeSymCipher: return &p.SymDetail default: return nil } } // AsymDetail returns the parameters associated with the specified object type // as *AsymParams. It panics if the type is not [ObjectTypeRSA] or [ObjectTypeECC], // or the appropriate field isn't set. // // Deprecated: Use [Public.AsymDetail] instead. func (p PublicParamsU) AsymDetail(t ObjectTypeId) *AsymParams { switch t { case ObjectTypeRSA: return &AsymParams{ Symmetric: p.RSADetail.Symmetric, Scheme: AsymScheme{ Scheme: AsymSchemeId(p.RSADetail.Scheme.Scheme), Details: p.RSADetail.Scheme.Details}} case ObjectTypeECC: return &AsymParams{ Symmetric: p.ECCDetail.Symmetric, Scheme: AsymScheme{ Scheme: AsymSchemeId(p.ECCDetail.Scheme.Scheme), Details: p.ECCDetail.Scheme.Details}} default: panic("invalid type") } } // PublicParams corresponds to the TPMT_PUBLIC_PARMS type. type PublicParams struct { Type ObjectTypeId // Type specifier Parameters *PublicParamsU // Algorithm details } // Public corresponds to the TPMT_PUBLIC type, and defines the public area for an object. type Public struct { Type ObjectTypeId // Type of this object NameAlg HashAlgorithmId // NameAlg is the algorithm used to compute the name of this object Attrs ObjectAttributes // Object attributes AuthPolicy Digest // Authorization policy for this object Params *PublicParamsU // Type specific parameters Unique *PublicIDU // Type specific unique identifier } // ComputeName computes the name of this object func (p *Public) ComputeName() (Name, error) { if !p.NameAlg.Available() { return nil, fmt.Errorf("unsupported name algorithm or algorithm not linked into binary: %v", p.NameAlg) } h := p.NameAlg.NewHash() if _, err := mu.MarshalToWriter(h, p); err != nil { return nil, fmt.Errorf("cannot marshal public object: %v", err) } return mu.MustMarshalToBytes(p.NameAlg, mu.RawBytes(h.Sum(nil))), nil } func (p *Public) compareName(name Name) bool { n, err := p.ComputeName() if err != nil { return false } return bytes.Equal(n, name) } // AsymDetail returns the asymmetric parameters associated with the object. It panics if it is // not an asymmetric key ([Public.IsAsymmetric] returns false) or if the public area is invalid // ([mu.IsValid] returns false). The public area will be valid if it was constructed by the // [github.com/canonical/go-tpm2/mu] package. func (p *Public) AsymDetail() *AsymParams { switch p.Type { case ObjectTypeRSA, ObjectTypeECC: data := mu.MustMarshalToBytes(p) var t ObjectTypeId var nameAlg HashAlgorithmId var attrs ObjectAttributes var policy Digest var params *AsymParams if _, err := mu.UnmarshalFromBytes(data, &t, &nameAlg, &attrs, &policy, ¶ms); err != nil { panic(err) } return params default: panic("invalid type") } } // Name implements [github.com/canonical/go-tpm2/objectutil.Named] and // [github.com/canonical/go-tpm2/policyutil.Named]. // // This computes the name from the public area. If the name cannot be computed // then an invalid name is returned ([Name.Type] will return NameTypeInvalid). func (p *Public) Name() Name { name, err := p.ComputeName() if err != nil { return Name{0, 0} } return name } func (p *Public) ToTemplate() (Template, error) { b, err := mu.MarshalToBytes(p) if err != nil { return nil, fmt.Errorf("cannot marshal object: %v", err) } return b, nil } func (p *Public) isParent() bool { if !p.NameAlg.IsValid() { return false } return p.Attrs&(AttrRestricted|AttrDecrypt) == AttrRestricted|AttrDecrypt } // IsAsymmetric indicates that this public area is associated with an asymmetric // key. func (p *Public) IsAsymmetric() bool { return p.Type.IsAsymmetric() } // IsStorageParent indicates that this public area is associated with an object that can be // a storage parent. func (p *Public) IsStorageParent() bool { if !p.isParent() { return false } switch p.Type { case ObjectTypeRSA, ObjectTypeECC, ObjectTypeSymCipher: return true default: return false } } // IsDerivationParent indicates that this public area is associated with an object that can be // a derivation parent. func (p *Public) IsDerivationParent() bool { if !p.isParent() { return false } if p.Type != ObjectTypeKeyedHash { return false } return true } // Public returns a corresponding public key for the TPM public area. // This will panic if the public area does not correspond to an asymmetric // key. func (p *Public) Public() crypto.PublicKey { switch p.Type { case ObjectTypeRSA: exp := int(p.Params.RSADetail.Exponent) if exp == 0 { exp = DefaultRSAExponent } return &rsa.PublicKey{ N: new(big.Int).SetBytes(p.Unique.RSA), E: exp} case ObjectTypeECC: return &ecdsa.PublicKey{ Curve: p.Params.ECCDetail.CurveID.GoCurve(), X: new(big.Int).SetBytes(p.Unique.ECC.X), Y: new(big.Int).SetBytes(p.Unique.ECC.Y)} default: panic("object is not a public key") } } // PublicDerived is similar to Public but can be used as a template to create a derived object // with [TPMContext.CreateLoaded]. type PublicDerived struct { Type ObjectTypeId // Type of this object NameAlg HashAlgorithmId // NameAlg is the algorithm used to compute the name of this object Attrs ObjectAttributes // Object attributes AuthPolicy Digest // Authorization policy for this object Params *PublicParamsU // Type specific parameters // Unique contains the derivation values. These take precedence over any values specified // in SensitiveCreate.Data when creating a derived object, Unique *Derive } // ComputeName computes the name of this object func (p *PublicDerived) ComputeName() (Name, error) { if !p.NameAlg.Available() { return nil, fmt.Errorf("unsupported name algorithm or algorithm not linked into binary: %v", p.NameAlg) } h := p.NameAlg.NewHash() if _, err := mu.MarshalToWriter(h, p); err != nil { return nil, fmt.Errorf("cannot marshal public object: %v", err) } return mu.MustMarshalToBytes(p.NameAlg, mu.RawBytes(h.Sum(nil))), nil } // Name implements [github.com/canonical/go-tpm2/objectutil.Named] and // [github.com/canonical/go-tpm2/policyutil.Named]. // // This computes the name from the public area. If the name cannot be computed // then an invalid name is returned ([Name.Type] will return NameTypeInvalid). func (p *PublicDerived) Name() Name { name, err := p.ComputeName() if err != nil { return Name{0, 0} } return name } func (p *PublicDerived) ToTemplate() (Template, error) { b, err := mu.MarshalToBytes(p) if err != nil { return nil, fmt.Errorf("cannot marshal object: %v", err) } return b, nil } // Template corresponds to the TPM2B_TEMPLATE type type Template []byte // 12.3) Private Area Structures // PrivateVendorSpecific corresponds to the TPM2B_PRIVATE_VENDOR_SPECIFIC type. type PrivateVendorSpecific []byte // SensitiveCompositeU is a union type that corresponds to the TPMU_SENSITIVE_COMPOSITE // type. The selector type is [ObjectTypeId]. The mapping of selector values to fields is // as follows: // - ObjectTypeRSA: RSA // - ObjectTypeECC: ECC // - ObjectTypeKeyedHash: Bits // - ObjectTypeSymCipher: Sym type SensitiveCompositeU struct { RSA PrivateKeyRSA ECC ECCParameter Bits SensitiveData Sym SymKey } // Select implements [mu.Union]. func (s *SensitiveCompositeU) Select(selector reflect.Value) interface{} { switch selector.Interface().(ObjectTypeId) { case ObjectTypeRSA: return &s.RSA case ObjectTypeECC: return &s.ECC case ObjectTypeKeyedHash: return &s.Bits case ObjectTypeSymCipher: return &s.Sym default: return nil } } // Any returns the value associated with the specified object type as // PrivateVendorSpecific. // // Deprecated: Use [Sensitive.AnySensitive] instead. func (s SensitiveCompositeU) Any(t ObjectTypeId) PrivateVendorSpecific { switch t { case ObjectTypeRSA: return PrivateVendorSpecific(s.RSA) case ObjectTypeECC: return PrivateVendorSpecific(s.ECC) case ObjectTypeKeyedHash: return PrivateVendorSpecific(s.Bits) case ObjectTypeSymCipher: return PrivateVendorSpecific(s.Sym) default: return nil } } // Sensitive corresponds to the TPMT_SENSITIVE type. type Sensitive struct { Type ObjectTypeId // Same as the corresponding Type in the Public object AuthValue Auth // Authorization value SeedValue Digest // For a parent object, the seed value for protecting descendant objects Sensitive *SensitiveCompositeU // Type specific private data } func (s *Sensitive) AnySensitive() PrivateVendorSpecific { sensitive := s.Sensitive if sensitive == nil { sensitive = new(SensitiveCompositeU) } switch s.Type { case ObjectTypeRSA: return PrivateVendorSpecific(sensitive.RSA) case ObjectTypeECC: return PrivateVendorSpecific(sensitive.ECC) case ObjectTypeKeyedHash: return PrivateVendorSpecific(sensitive.Bits) case ObjectTypeSymCipher: return PrivateVendorSpecific(sensitive.Sym) default: panic("invalid object type") } } // Private corresponds to the TPM2B_PRIVATE type. type Private []byte // 12.4) Identity Object // IDObject corresponds to the TPM2B_ID_OBJECT type. type IDObject []byte // IDObjectRaw corresponds to the TPM2B_ID_OBJECT type. // // Deprecated: use IDObject type IDObjectRaw = IDObject ./github.com/canonical/go-tpm2/types_structures.go0000664000000000000000000010214200000000000017355 0ustar00// Copyright 2019 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package tpm2 import ( "encoding/binary" "errors" "fmt" "io" "math" "math/big" "reflect" "sort" "github.com/canonical/go-tpm2/mu" ) // This file contains types defined in section 10 (Structures) in // part 2 of the library spec. type Empty struct{} // 10.3) Hash/Digest structures // TaggedHashU is a union type that corresponds to the TPMU_HA type. The // selector type is [HashAlgorithmId]. Mapping of selector values to fields is // as follows: // - HashAlgorithmSHA1: SHA1 // - HashAlgorithmSHA256: SHA256 // - HashAlgorithmSHA384: SHA384 // - HashAlgorithmSHA512: SHA512 // - HashAlgorithmSHA256_192: SHA256_192 // - HashAlgorithmSM3_256: SM_256 // - HashAlgorithmSHA3_256: SHA3_256 // - HashAlgorithmSHA3_384: SHA3_384 // - HashAlgorithmSHA3_512: SHA3_512 // - HashAlgorithmSHAKE256_192: SHAKE256_192 // - HashAlgorithmSHAKE256_256: SHAKE256_256 // - HashAlgorithmSHAKE256_512: SHAKE256_512 type TaggedHashU struct { SHA1 [20]byte SHA256 [32]byte SHA384 [48]byte SHA512 [64]byte SHA256_192 [24]byte SM3_256 [32]byte SHA3_256 [32]byte SHA3_384 [48]byte SHA3_512 [64]byte SHAKE256_192 [24]byte SHAKE256_256 [32]byte SHAKE256_512 [64]byte } // Select implements [mu.Union]. func (u *TaggedHashU) Select(selector reflect.Value) interface{} { switch selector.Interface().(HashAlgorithmId) { case HashAlgorithmNull: return mu.NilUnionValue case HashAlgorithmSHA1: return &u.SHA1 case HashAlgorithmSHA256: return &u.SHA256 case HashAlgorithmSHA384: return &u.SHA384 case HashAlgorithmSHA512: return &u.SHA512 case HashAlgorithmSHA256_192: return &u.SHA256_192 case HashAlgorithmSM3_256: return &u.SM3_256 case HashAlgorithmSHA3_256: return &u.SHA3_256 case HashAlgorithmSHA3_384: return &u.SHA3_384 case HashAlgorithmSHA3_512: return &u.SHA3_512 case HashAlgorithmSHAKE256_192: return &u.SHAKE256_192 case HashAlgorithmSHAKE256_256: return &u.SHAKE256_256 case HashAlgorithmSHAKE256_512: return &u.SHAKE256_512 default: return nil } } // TaggedHash corresponds to the TPMT_HA type. type TaggedHash struct { HashAlg HashAlgorithmId // Algorithm of the digest contained with Digest DigestData *TaggedHashU // Digest data } // NewTaggedHash creates a new tagged hash that represents the specified // digest. It will return an error if the algorithm is invalid or the // size of the digest doesn't match the algorithm. // // Deprecated: Use [MakeTaggedHash]. func NewTaggedHash(alg HashAlgorithmId, digest Digest) (*TaggedHash, error) { if !alg.IsValid() { return nil, errors.New("invalid algorithm") } if len(digest) != alg.Size() { return nil, errors.New("invalid digest size") } digestData := new(TaggedHashU) switch alg { case HashAlgorithmSHA1: copy(digestData.SHA1[:], digest) case HashAlgorithmSHA256: copy(digestData.SHA256[:], digest) case HashAlgorithmSHA384: copy(digestData.SHA384[:], digest) case HashAlgorithmSHA512: copy(digestData.SHA512[:], digest) case HashAlgorithmSHA256_192: copy(digestData.SHA256_192[:], digest) case HashAlgorithmSM3_256: copy(digestData.SM3_256[:], digest) case HashAlgorithmSHA3_256: copy(digestData.SHA3_256[:], digest) case HashAlgorithmSHA3_384: copy(digestData.SHA3_384[:], digest) case HashAlgorithmSHA3_512: copy(digestData.SHA3_512[:], digest) case HashAlgorithmSHAKE256_192: copy(digestData.SHAKE256_192[:], digest) case HashAlgorithmSHAKE256_256: copy(digestData.SHAKE256_256[:], digest) case HashAlgorithmSHAKE256_512: copy(digestData.SHAKE256_512[:], digest) } return &TaggedHash{ HashAlg: alg, DigestData: digestData}, nil } // MakeTaggedHash creates a new tagged hash that represents the specified // digest. It will panic if the algorithm is invalid. The supplied digest // should be the correct length - it will be padded if it's too short or // truncated if it's too long. func MakeTaggedHash(alg HashAlgorithmId, digest Digest) TaggedHash { digestData := new(TaggedHashU) switch alg { case HashAlgorithmSHA1: copy(digestData.SHA1[:], digest) case HashAlgorithmSHA256: copy(digestData.SHA256[:], digest) case HashAlgorithmSHA384: copy(digestData.SHA384[:], digest) case HashAlgorithmSHA512: copy(digestData.SHA512[:], digest) case HashAlgorithmSHA256_192: copy(digestData.SHA256_192[:], digest) case HashAlgorithmSM3_256: copy(digestData.SM3_256[:], digest) case HashAlgorithmSHA3_256: copy(digestData.SHA3_256[:], digest) case HashAlgorithmSHA3_384: copy(digestData.SHA3_384[:], digest) case HashAlgorithmSHA3_512: copy(digestData.SHA3_512[:], digest) case HashAlgorithmSHAKE256_192: copy(digestData.SHAKE256_192[:], digest) case HashAlgorithmSHAKE256_256: copy(digestData.SHAKE256_256[:], digest) case HashAlgorithmSHAKE256_512: copy(digestData.SHAKE256_512[:], digest) } return TaggedHash{ HashAlg: alg, DigestData: digestData} } // Digest returns the value of this tagged hash. It will panic // if the digest algorithm is invalid and not [HashAlgorithmNull]. // It will be valid if this tagged hash was created by unmarshalling // it, else check the value of the HashAlg field first. func (h *TaggedHash) Digest() Digest { if h.HashAlg == HashAlgorithmNull { return nil } out := make(Digest, h.HashAlg.Size()) switch h.HashAlg { case HashAlgorithmSHA1: copy(out, h.DigestData.SHA1[:]) case HashAlgorithmSHA256: copy(out, h.DigestData.SHA256[:]) case HashAlgorithmSHA384: copy(out, h.DigestData.SHA384[:]) case HashAlgorithmSHA512: copy(out, h.DigestData.SHA512[:]) case HashAlgorithmSHA256_192: copy(out, h.DigestData.SHA256_192[:]) case HashAlgorithmSM3_256: copy(out, h.DigestData.SM3_256[:]) case HashAlgorithmSHA3_256: copy(out, h.DigestData.SHA3_256[:]) case HashAlgorithmSHA3_384: copy(out, h.DigestData.SHA3_384[:]) case HashAlgorithmSHA3_512: copy(out, h.DigestData.SHA3_512[:]) case HashAlgorithmSHAKE256_192: copy(out, h.DigestData.SHAKE256_192[:]) case HashAlgorithmSHAKE256_256: copy(out, h.DigestData.SHAKE256_256[:]) case HashAlgorithmSHAKE256_512: copy(out, h.DigestData.SHAKE256_512[:]) } return out } // 10.4 Sized Buffers // Digest corresponds to the TPM2B_DIGEST type. The largest size of this supported // by the TPM can be determined by calling [TPMContext.GetMaxDigest]. type Digest []byte // Data corresponds to the TPM2B_DATA type. The largest size of this supported by // the TPM can be determined by calling [TPMContext.GetMaxData]. type Data []byte // Nonce corresponds to the TPM2B_NONCE type. type Nonce = Digest // Auth corresponds to the TPM2B_AUTH type. type Auth = Digest // Operand corresponds to the TPM2B_OPERAND type. type Operand = Digest const ( // EventMaxSize indicates the maximum size of arguments of the Event type. EventMaxSize = 1024 ) // Event corresponds to the TPM2B_EVENT type. The largest size of this is indicated // by EventMaxSize. type Event []byte // MaxBuffer corresponds to the TPM2B_MAX_BUFFER type. The largest size of this supported // by the TPM can be determined by calling [TPMContext.GetInputBuffer]. type MaxBuffer []byte // MaxNVBuffer corresponds to the TPM2B_MAX_NV_BUFFER type. The largest size of this // supported by the TPM can be determined by calling [TPMContext.GetNVBufferMax]. type MaxNVBuffer []byte // Timeout corresponds to the TPM2B_TIMEOUT type. The spec defines this // as having a maximum size of 8 bytes. It is always 8 bytes in the // reference implementation and so could be represented as a uint64, // but we have to preserve the original buffer because there is no // guarantees that it is always 8 bytes, and the actual TPM buffer // must be recreated accurately in order for ticket validation to // work correctly in [TPMContext.PolicyTicket]. type Timeout []byte // Value returns the value as a uint64. The spec defines the TPM2B_TIMEOUT // type as having a size of up to 8 bytes. If an implementation creates a // larger value then the result of this is undefined. func (t Timeout) Value() uint64 { return new(big.Int).SetBytes(t).Uint64() } // 10.5) Names // Name corresponds to the TPM2B_NAME type. type Name []byte // MakeHandleName creates a Name from the specified handle. This will panic if the // specified handle doesn't correspond to a PCR, session or permanent resource. func MakeHandleName(handle Handle) Name { switch handle.Type() { case HandleTypePCR, HandleTypeHMACSession, HandleTypePolicySession, HandleTypePermanent: return mu.MustMarshalToBytes(handle) default: panic("invalid handle type") } } // NameType describes the type of a name. type NameType int const ( // NameTypeInvalid means that a Name is invalid. NameTypeInvalid NameType = iota // NameTypeHandle means that a Name is a handle. NameTypeHandle // NameTypeDigest means that a Name is a digest. NameTypeDigest // NameTypeNone means that a Name is empty. NameTypeNone ) // Name implements [github.com/canonical/go-tpm2/objectutil.Named]. func (n Name) Name() Name { return n } // IsValid determines if this name is valid. func (n Name) IsValid() bool { return n.Type() != NameTypeInvalid } // Type determines the type of this name. func (n Name) Type() NameType { switch { case len(n) == 0: return NameTypeNone case len(n) == binary.Size(Handle(0)): return NameTypeHandle case len(n) < binary.Size(HashAlgorithmId(0)): return NameTypeInvalid } alg := HashAlgorithmId(binary.BigEndian.Uint16(n)) if !alg.IsValid() { return NameTypeInvalid } if len(n)-binary.Size(HashAlgorithmId(0)) != alg.Size() { return NameTypeInvalid } return NameTypeDigest } // Handle returns the handle of the resource that this name corresponds to. If // Type does not return [NameTypeHandle], it will panic. func (n Name) Handle() Handle { if n.Type() != NameTypeHandle { panic("name is not a handle") } return Handle(binary.BigEndian.Uint32(n)) } // Algorithm returns the digest algorithm of this name. If Type does not return // [NameTypeDigest], it will return [HashAlgorithmNull]. func (n Name) Algorithm() HashAlgorithmId { if n.Type() != NameTypeDigest { return HashAlgorithmNull } return HashAlgorithmId(binary.BigEndian.Uint16(n)) } // Digest returns the name as a digest without the algorithm identifier. If // Type does not return [NameTypeDigest], it will panic. func (n Name) Digest() Digest { if n.Type() != NameTypeDigest { panic("name is not a valid digest") } return Digest(n[binary.Size(HashAlgorithmId(0)):]) } // 10.6) PCR Structures // PCRSelectBitmap correspnds to the TPMS_PCR_SELECT type, and is a bitmap // that defines a selection of PCRs. Note that it is easier to work with the // [PCRSelect] type instead, which is a slice of PCR indexes. type PCRSelectBitmap struct { Bytes mu.Sized1Bytes } // ToPCRs converts this PCRSelectBitmap to a slice of PCR indexes. func (b *PCRSelectBitmap) ToPCRs() (out PCRSelect) { for i, octet := range b.Bytes { for bit := uint(0); bit < 8; bit++ { if octet&(1<= math.MaxUint8 { return nil, errors.New("invalid PCR index (> 2040)") } for octet >= len(out.Bytes) { out.Bytes = append(out.Bytes, byte(0)) } bit := uint(i % 8) out.Bytes[octet] |= 1 << bit } return out, nil } // Marshal implements [mu.CustomMarshaller.Marshal]. // // Note that this type cannot be marshalled directly and will result in a // panic if this is attempted. func (d PCRSelect) Marshal(w io.Writer) error { panic("PCRSelect cannot be marshalled directly. Use it as part of PCRSelection or convert it to PCRSelectBitmap") } // Unmarshal implements [mu.CustomMarshaller.Unmarshal]. func (d *PCRSelect) Unmarshal(r io.Reader) error { var b PCRSelectBitmap if _, err := mu.UnmarshalFromReader(r, &b); err != nil { return err } *d = b.ToPCRs() return nil } // PCRSelection corresponds to the TPMS_PCR_SELECTION type. type PCRSelection struct { Hash HashAlgorithmId // Hash is the digest algorithm associated with the selection Select PCRSelect // The selected PCRs // SizeOfSelect sets the minimum number of bytes in the serialized Select field // during marshalling, and is set to the actual number of bytes in the Select // field during unmarshalling. // // TPMs define a minimum size for a PCR selection, based on the number of PCRs // defined in its associated platform specification. Note that methods of // TPMContext that accept a PCRSelection will set this automatically. // // If set to zero during marshalling, a value of 3 will be assumed, which // aligns with PC client TPM devices. SizeOfSelect uint8 } func (s PCRSelection) String() string { return fmt.Sprintf("{hash:%v, select:%v}", s.Hash, s.Select) } // Marshal implements [mu.CustomMarshaller.Marshal]. func (s PCRSelection) Marshal(w io.Writer) error { bmp, err := s.Select.ToBitmap(s.SizeOfSelect) if err != nil { return err } _, err = mu.MarshalToWriter(w, s.Hash, bmp) return err } // Unmarshal implements [mu.CustomMarshaller.Unmarshal]. func (s *PCRSelection) Unmarshal(r io.Reader) error { var b PCRSelectBitmap if _, err := mu.UnmarshalFromReader(r, &s.Hash, &b); err != nil { return err } s.Select = b.ToPCRs() s.SizeOfSelect = uint8(len(b.Bytes)) return nil } // 10.7 Tickets // TkCreation corresponds to the TPMT_TK_CREATION type. It is created by TPMContext.Create // and TPMContext.CreatePrimary, and is used to cryptographically bind the CreationData to // the created object. type TkCreation struct { Tag StructTag // Ticket structure tag (TagCreation) Hierarchy Handle // The hierarchy of the object to which this ticket belongs. Digest Digest // HMAC computed using the proof value of Hierarchy } // TkVerified corresponds to the TPMT_TK_VERIFIED type. It is created by TPMContext.VerifySignature // and provides evidence that the TPM has verified that a digest was signed by a specific key. type TkVerified struct { Tag StructTag // Ticket structure tag (TagVerified) Hierarchy Handle // The hierarchy of the object to which this ticket belongs. Digest Digest // HMAC computed using the proof value of Hierarcht } // TkAuth corresponds to the TPMT_TK_AUTH type. It is created by TPMContext.PolicySigned // and TPMContext.PolicySecret when the authorization has an expiration time. type TkAuth struct { Tag StructTag // Ticket structure tag (TagAuthSecret or TagAuthSigned) Hierarchy Handle // The hierarchy of the object used to produce this ticket Digest Digest // HMAC computed using the proof value of Hierarchy } // TkHashcheck corresponds to the TPMT_TK_HASHCHECK type. type TkHashcheck struct { Tag StructTag // Ticket structure tag (TagHashcheck) Hierarchy Handle // The hierarchy of the object used to produce this ticket Digest Digest // HMAC computed using the proof value of Hierarchy } // AlgorithmProperty corresponds to the TPMS_ALG_PROPERTY type. It is used to report // the properties of an algorithm. type AlgorithmProperty struct { Alg AlgorithmId // Algorithm identifier Properties AlgorithmAttributes // Attributes of the algorithm } // TaggedProperty corresponds to the TPMS_TAGGED_PROPERTY type. It is used to report // the value of a property. type TaggedProperty struct { Property Property // Property identifier Value uint32 // Value of the property } // TaggedPCRSelect corresponds to the TPMS_TAGGED_PCR_SELECT type. It is used to // report the PCR indexes associated with a property. type TaggedPCRSelect struct { Tag PropertyPCR // Property identifier Select PCRSelect // PCRs associated with Tag } // TaggedPolicy corresponds to the TPMS_TAGGED_POLICY type. It is used to report // the authorization policy for a permanent resource. type TaggedPolicy struct { Handle Handle // Permanent handle PolicyHash TaggedHash // Policy algorithm and hash } // 10.9) Lists // CommandCodeList is a slice of CommandCode values, and corresponds to the TPML_CC type. type CommandCodeList []CommandCode // CommandAttributesList is a slice of CommandAttribute values, and corresponds to the TPML_CCA type. type CommandAttributesList []CommandAttributes // AlgorithmList is a slice of AlgorithmId values, and corresponds to the TPML_ALG type. type AlgorithmList []AlgorithmId // HandleList is a slice of Handle values, and corresponds to the TPML_HANDLE type. type HandleList []Handle // DigestList is a slice of Digest values, and corresponds to the TPML_DIGEST type. type DigestList []Digest // TaggedHashList is a slice of TaggedHash values, and corresponds to the TPML_DIGEST_VALUES type. type TaggedHashList []TaggedHash // TaggedHashListBuilder facilitates creating a [TaggedHashList]. It // allows a list to be constructed without having to check for errors // until the end. // // Deprecated: Use [TaggedHashList] and [MakeTaggedHash]. type TaggedHashListBuilder struct { hashes TaggedHashList err error } // NewTaggedHashListBuilder returns a new TaggedHashListBuilder. // // Deprecated: Use [TaggedHashList] and [MakeTaggedHash]. func NewTaggedHashListBuilder() *TaggedHashListBuilder { return new(TaggedHashListBuilder) } // Append appends the digest with the specified algorithm to the list. func (b *TaggedHashListBuilder) Append(alg HashAlgorithmId, digest Digest) *TaggedHashListBuilder { if b.err != nil { return b } h, err := NewTaggedHash(alg, digest) if err != nil { b.err = fmt.Errorf("encountered error on digest %d: %w", len(b.hashes), err) b.hashes = nil } else { b.hashes = append(b.hashes, *h) } return b } // Finish returns the final list, or an error if one occurred whilst the // list was being built. func (b *TaggedHashListBuilder) Finish() (TaggedHashList, error) { return b.hashes, b.err } // MustFinish is the same as [TaggedHashListBuilder.Finish] except if panics if an error // occurred. func (b *TaggedHashListBuilder) MustFinish() TaggedHashList { l, err := b.Finish() if err != nil { panic(err) } return l } // PCRSelectionList is a slice of PCRSelection values, and corresponds to the TPML_PCR_SELECTION type. type PCRSelectionList []PCRSelection func (l PCRSelectionList) String() string { out := "[" for _, s := range l { out += s.String() } return out + "]" } // WithMinSelectSize creates a copy of this list of selections with the minimum // size of each selection in bytes set to the specified value. If this isn't // used to change the default of zero, then 3 is assumed during marshalling // which aligns with PC client TPM devices. // // Methods of TPMContext that accept a PCRSelectionList call this function // already. func (l PCRSelectionList) WithMinSelectSize(sz uint8) (out PCRSelectionList) { for _, s := range l { out = append(out, PCRSelection{Hash: s.Hash, Select: s.Select, SizeOfSelect: sz}) } return out } // Sort will sort the list of PCR selections in order of ascending algorithm // ID. A new list of selections is returned. // // This will return an error if the selection list cannot be marshalled to // the TPM wire format. func (l PCRSelectionList) Sort() (out PCRSelectionList, err error) { if err := mu.CopyValue(&out, l); err != nil { return nil, fmt.Errorf("invalid selection list: %w", err) } for i, s := range l { out[i].SizeOfSelect = s.SizeOfSelect } sort.Slice(out, func(i, j int) bool { return out[i].Hash < out[j].Hash }) return out, nil } // MustSort will sort the list of PCR selections in order of ascending // algorithm ID. A new list of selections is returned. // // This will panic if the selection list cannot be marshalled to the TPM wire // format. Use mu.IsValid to check if it can actually be serialized correctly. func (l PCRSelectionList) MustSort() (out PCRSelectionList) { var err error out, err = l.Sort() if err != nil { panic(err) } return out } // Merge will merge the PCR selections specified by l and r together and // return a new set of PCR selections which contains a combination of both. // For each PCR found in r that isn't found in l, it will be added to the // last occurence of the corresponding PCR bank found in l if that exists, // or otherwise a selection for that PCR bank will be appended to the result. // // This will return an error if either selection list cannot be marshalled // to the TPM wire format. func (l PCRSelectionList) Merge(r PCRSelectionList) (out PCRSelectionList, err error) { // Create a copy of the destination list if err := mu.CopyValue(&out, l); err != nil { return nil, fmt.Errorf("invalid destination selection list: %w", err) } for i, s := range l { out[i].SizeOfSelect = s.SizeOfSelect } // Iterate over each source selection for _, sr := range r { rbmp, err := sr.Select.ToBitmap(math.MaxUint8) if err != nil { return nil, fmt.Errorf("invalid source selection with digest %v: %w", sr.Hash, err) } dsti := -1 var dstbmp *PCRSelectBitmap // Find a target selection in the destination list for i, sl := range out { if sl.Hash != sr.Hash { continue } lbmp, err := sl.Select.ToBitmap(math.MaxUint8) if err != nil { // This selection is proven to be valid already // because of the earlier copy. panic(err) } dsti = i dstbmp = lbmp // Avoid duplicated PCRs by clearing any in this source selection // that exist in any selection in the destination list. for j := 0; j < math.MaxUint8; j++ { rbmp.Bytes[j] &^= lbmp.Bytes[j] } } if dsti > -1 { // We already have a target selection. Set the PCRs from the // source selection for j := 0; j < math.MaxUint8; j++ { dstbmp.Bytes[j] |= rbmp.Bytes[j] } out[dsti].Select = dstbmp.ToPCRs() } else { // We don't have a target selection, so create one. var sr2 PCRSelection mu.MustCopyValue(&sr2, sr) // source proven to be valid earlier sr2.SizeOfSelect = sr.SizeOfSelect out = append(out, sr2) } } return out, nil } // MustMerge will merge the PCR selections specified by l and r together // and return a new set of PCR selections which contains a combination of // both. For each PCR found in r that isn't found in l, it will be added // to the first occurence of the corresponding PCR bank found in l if that // exists, or otherwise a selection for that PCR bank will be appended to // the result. // // This will panic if either selection list cannot be marshalled to the TPM // wire format. Use mu.IsValid to check if the values can actually be // serialized correctly. func (l PCRSelectionList) MustMerge(r PCRSelectionList) (out PCRSelectionList) { var err error out, err = l.Merge(r) if err != nil { panic(err) } return out } // Remove will remove the PCR selections in r from the PCR selections in l, // and return a new set of selections. // // This will return an error if either selection list cannot be marshalled // to the TPM wire format. func (l PCRSelectionList) Remove(r PCRSelectionList) (out PCRSelectionList, err error) { // Create a copy of the original selection list if err := mu.CopyValue(&out, l); err != nil { return nil, fmt.Errorf("invalid original selection list: %w", err) } for i, s := range l { out[i].SizeOfSelect = s.SizeOfSelect } // Iterate over each selection to remove for _, sr := range r { rbmp, err := sr.Select.ToBitmap(math.MaxUint8) if err != nil { return nil, fmt.Errorf("invalid selection to remove with digest %v: %w", sr.Hash, err) } // Iterate over the destination selection list for i, sl := range out { if sl.Hash != sr.Hash { continue } lbmp, err := sl.Select.ToBitmap(math.MaxUint8) if err != nil { // This selection is proven to be valid already // because of the earlier copy. panic(err) } // Remove necessary PCRs from the destination selection for j := 0; j < math.MaxUint8; j++ { lbmp.Bytes[j] &^= rbmp.Bytes[j] } out[i].Select = lbmp.ToPCRs() } } // Remove any selections from the destination list that are now empty. for i, so := range out { if len(so.Select) > 0 { continue } if i < len(out)-1 { copy(out[i:], out[i+1:]) } out = out[:len(out)-1] } return out, nil } // MustRemove will remove the PCR selections in r from the PCR selections // in l, and return a new set of selections. // // This will panic if either selection list cannot be marshalled to the TPM // wire format. Use mu.IsValid to check if the values can actually be // serialized correctly. func (l PCRSelectionList) MustRemove(r PCRSelectionList) (out PCRSelectionList) { var err error out, err = l.Remove(r) if err != nil { panic(err) } return out } // IsEmpty returns true if the list of PCR selections selects no PCRs. func (l PCRSelectionList) IsEmpty() bool { for _, s := range l { if len(s.Select) > 0 { return false } } return true } // AlgorithmPropertyList is a slice of AlgorithmProperty values, and corresponds to // the TPML_ALG_PROPERTY type. type AlgorithmPropertyList []AlgorithmProperty // TaggedTPMPropertyList is a slice of TaggedProperty values, and corresponds to the // TPML_TAGGED_TPM_PROPERTY type. type TaggedTPMPropertyList []TaggedProperty // TaggedPCRPropertyList is a slice of TaggedPCRSelect values, and corresponds to the // TPML_TAGGED_PCR_PROPERTY type. type TaggedPCRPropertyList []TaggedPCRSelect // ECCCurveList is a slice of ECCCurve values, and corresponds to the TPML_ECC_CURVE type. type ECCCurveList []ECCCurve // TaggedPolicyList is a slice of TaggedPolicy values, and corresponds to the // TPML_TAGGED_POLICY type. type TaggedPolicyList []TaggedPolicy // 10.10) Capabilities Structures // Capabilities is a union type that corresponds to the TPMU_CAPABILITIES type. The // selector type is Capability. Mapping of selector values to fields is as follows: // - CapabilityAlgs: Algorithms // - CapabilityHandles: Handles // - CapabilityCommands: Command // - CapabilityPPCommands: PPCommands // - CapabilityAuditCommands: AuditCommands // - CapabilityPCRs: AssignedPCR // - CapabilityTPMProperties: TPMProperties // - CapabilityPCRProperties: PCRProperties // - CapabilityECCCurves: ECCCurves // - CapabilityAuthPolicies: AuthPolicies type CapabilitiesU struct { Algorithms AlgorithmPropertyList Handles HandleList Command CommandAttributesList PPCommands CommandCodeList AuditCommands CommandCodeList AssignedPCR PCRSelectionList TPMProperties TaggedTPMPropertyList PCRProperties TaggedPCRPropertyList ECCCurves ECCCurveList AuthPolicies TaggedPolicyList } // Select implements [mu.Union]. func (c *CapabilitiesU) Select(selector reflect.Value) interface{} { switch selector.Interface().(Capability) { case CapabilityAlgs: return &c.Algorithms case CapabilityHandles: return &c.Handles case CapabilityCommands: return &c.Command case CapabilityPPCommands: return &c.PPCommands case CapabilityAuditCommands: return &c.AuditCommands case CapabilityPCRs: return &c.AssignedPCR case CapabilityTPMProperties: return &c.TPMProperties case CapabilityPCRProperties: return &c.PCRProperties case CapabilityECCCurves: return &c.ECCCurves case CapabilityAuthPolicies: return &c.AuthPolicies default: return nil } } // CapabilityData corresponds to the TPMS_CAPABILITY_DATA type, and is returned by // TPMContext.GetCapability. type CapabilityData struct { Capability Capability // Capability Data *CapabilitiesU // Capability data } // 10.11 Clock/Counter Structures // ClockInfo corresponds to the TPMS_CLOCK_INFO type. type ClockInfo struct { Clock uint64 // Time value in milliseconds that increments whilst the TPM is powered ResetCount uint32 // Number of TPM resets since the TPM was last cleared // RestartCount is the number of TPM restarts or resumes since the last TPM reset or the last time the TPM was cleared. RestartCount uint32 // Safe indicates the the value reported by Clock is guaranteed to be unique for the current owner. Safe bool } // TimeInfo corresponds to the TPMS_TIME_INFO type. type TimeInfo struct { Time uint64 // Time value in milliseconds since the last TPM startup ClockInfo ClockInfo // Clock information } // 10.12 Attestation Structures // TimeAttestInfo corresponds to the TPMS_TIME_ATTEST_INFO type, and is returned by // TPMContext.GetTime. type TimeAttestInfo struct { Time TimeInfo // Time information FirmwareVersion uint64 // TPM vendor specific value indicating the version of the firmware } // CertifyInfo corresponds to the TPMS_CERTIFY_INFO type, and is returned by TPMContext.Certify. type CertifyInfo struct { Name Name // Name of the certified object QualifiedName Name // Qualified name of the certified object } // QuoteInfo corresponds to the TPMS_QUOTE_INFO type, and is returned by TPMContext.Quote. type QuoteInfo struct { PCRSelect PCRSelectionList // PCRs included in PCRDigest PCRDigest Digest // Digest of the selected PCRs, using the hash algorithm of the signing key } // CommandAuditInfo corresponds to the TPMS_COMMAND_AUDIT_INFO type, and is returned by // TPMContext.GetCommandAuditDigest. type CommandAuditInfo struct { AuditCounter uint64 // Monotonic audit counter DigestAlg AlgorithmId // Hash algorithm used for the command audit AuditDigest Digest // Current value of the audit digest CommandDigest Digest // Digest of command codes being audited, using DigestAlg } // SessionAuditInfo corresponds to the TPMS_SESSION_AUDIT_INFO type, and is returned by // TPMContext.GetSessionAuditDigest. type SessionAuditInfo struct { // ExclusiveSession indicates the current exclusive status of the session. It is true if all of the commands recorded in // SessionDigest were executed without any intervening commands that did not use // the audit session. ExclusiveSession bool SessionDigest Digest // Current value of the session audit digest } // CreationInfo corresponds to the TPMS_CREATION_INFO type, and is returned by TPMContext.CertifyCreation. type CreationInfo struct { ObjectName Name // Name of the object CreationHash Digest } // NVCertifyInfo corresponds to the TPMS_NV_CERTIFY_INFO type, and is returned by TPMContext.NVCertify. type NVCertifyInfo struct { IndexName Name // Name of the NV index Offset uint16 // Offset parameter of TPMContext.NVCertify NVContents MaxNVBuffer // Contents of the NV index } // AttestU is a union type that corresponds to the TPMU_ATTEST type. The selector type is StructTag. // Mapping of selector values to fields is as follows: // - TagAttestNV: NV // - TagAttestCommandAudit: CommandAudit // - TagAttestSessionAudit: SessionAudit // - TagAttestCertify: Certify // - TagAttestQuote: Quote // - TagAttestTime: Time // - TagAttestCreation: Creation type AttestU struct { Certify *CertifyInfo Creation *CreationInfo Quote *QuoteInfo CommandAudit *CommandAuditInfo SessionAudit *SessionAuditInfo Time *TimeAttestInfo NV *NVCertifyInfo } // Select implements [mu.Union]. func (a *AttestU) Select(selector reflect.Value) interface{} { switch selector.Interface().(StructTag) { case TagAttestNV: return &a.NV case TagAttestCommandAudit: return &a.CommandAudit case TagAttestSessionAudit: return &a.SessionAudit case TagAttestCertify: return &a.Certify case TagAttestQuote: return &a.Quote case TagAttestTime: return &a.Time case TagAttestCreation: return &a.Creation default: return nil } } // Attest corresponds to the TPMS_ATTEST type, and is returned by the attestation commands. The // signature of the attestation is over this structure. type Attest struct { Magic TPMGenerated // Always TPMGeneratedValue Type StructTag // Type of the attestation structure QualifiedSigner Name // Qualified name of the signing key ExtraData Data // External information provided by the caller ClockInfo ClockInfo // Clock information FirmwareVersion uint64 // TPM vendor specific value indicating the version of the firmware Attested *AttestU `tpm2:"selector:Type"` // Type specific attestation data } // 10.13) Authorization Structures // AuthCommand corresppnds to the TPMS_AUTH_COMMAND type, and represents an authorization // for a command. type AuthCommand struct { SessionHandle Handle Nonce Nonce SessionAttributes SessionAttributes HMAC Auth } // AuthResponse corresponds to the TPMS_AUTH_RESPONSE type, and represents an authorization // response for a command. type AuthResponse struct { Nonce Nonce SessionAttributes SessionAttributes HMAC Auth } ./github.com/canonical/tcglog-parser/0000775000000000000000000000000000000000000014643 5ustar00./github.com/canonical/tcglog-parser/.gitignore0000664000000000000000000000011700000000000016632 0ustar00tcglog-dump/tcglog-dump tcglog-parser.test tcglog-check/tcglog-check vendor/*/ ./github.com/canonical/tcglog-parser/LICENSE0000664000000000000000000002150100000000000015647 0ustar00All files in this repository are licensed as follows. If you contribute to this repository, it is assumed that you license your contribution under the same license unless you state otherwise. All files Copyright (C) 2019 Canonical Ltd. unless otherwise specified in the file. This software is licensed under the LGPLv3, included below. As a special exception to the GNU Lesser General Public License version 3 ("LGPL3"), the copyright holders of this Library give you permission to convey to a third party a Combined Work that links statically or dynamically to this Library without providing any Minimal Corresponding Source or Minimal Application Code as set out in 4d or providing the installation information set out in section 4e, provided that you comply with the other provisions of LGPL3 and provided that you meet, for the Application the terms and conditions of the license(s) which apply to the Application. Except as stated in this special exception, the provisions of LGPL3 will continue to comply in full to this Library. If you modify this Library, you may apply this exception to your version of this Library, but you are not obliged to do so. If you do not wish to do so, delete this exception statement from your version. This exception does not (and cannot) modify any license terms which apply to the Application, with which you must still comply. GNU LESSER GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. This version of the GNU Lesser General Public License incorporates the terms and conditions of version 3 of the GNU General Public License, supplemented by the additional permissions listed below. 0. Additional Definitions. As used herein, "this License" refers to version 3 of the GNU Lesser General Public License, and the "GNU GPL" refers to version 3 of the GNU General Public License. "The Library" refers to a covered work governed by this License, other than an Application or a Combined Work as defined below. An "Application" is any work that makes use of an interface provided by the Library, but which is not otherwise based on the Library. Defining a subclass of a class defined by the Library is deemed a mode of using an interface provided by the Library. A "Combined Work" is a work produced by combining or linking an Application with the Library. The particular version of the Library with which the Combined Work was made is also called the "Linked Version". The "Minimal Corresponding Source" for a Combined Work means the Corresponding Source for the Combined Work, excluding any source code for portions of the Combined Work that, considered in isolation, are based on the Application, and not on the Linked Version. The "Corresponding Application Code" for a Combined Work means the object code and/or source code for the Application, including any data and utility programs needed for reproducing the Combined Work from the Application, but excluding the System Libraries of the Combined Work. 1. Exception to Section 3 of the GNU GPL. You may convey a covered work under sections 3 and 4 of this License without being bound by section 3 of the GNU GPL. 2. Conveying Modified Versions. If you modify a copy of the Library, and, in your modifications, a facility refers to a function or data to be supplied by an Application that uses the facility (other than as an argument passed when the facility is invoked), then you may convey a copy of the modified version: a) under this License, provided that you make a good faith effort to ensure that, in the event an Application does not supply the function or data, the facility still operates, and performs whatever part of its purpose remains meaningful, or b) under the GNU GPL, with none of the additional permissions of this License applicable to that copy. 3. Object Code Incorporating Material from Library Header Files. The object code form of an Application may incorporate material from a header file that is part of the Library. You may convey such object code under terms of your choice, provided that, if the incorporated material is not limited to numerical parameters, data structure layouts and accessors, or small macros, inline functions and templates (ten or fewer lines in length), you do both of the following: a) Give prominent notice with each copy of the object code that the Library is used in it and that the Library and its use are covered by this License. b) Accompany the object code with a copy of the GNU GPL and this license document. 4. Combined Works. You may convey a Combined Work under terms of your choice that, taken together, effectively do not restrict modification of the portions of the Library contained in the Combined Work and reverse engineering for debugging such modifications, if you also do each of the following: a) Give prominent notice with each copy of the Combined Work that the Library is used in it and that the Library and its use are covered by this License. b) Accompany the Combined Work with a copy of the GNU GPL and this license document. c) For a Combined Work that displays copyright notices during execution, include the copyright notice for the Library among these notices, as well as a reference directing the user to the copies of the GNU GPL and this license document. d) Do one of the following: 0) Convey the Minimal Corresponding Source under the terms of this License, and the Corresponding Application Code in a form suitable for, and under terms that permit, the user to recombine or relink the Application with a modified version of the Linked Version to produce a modified Combined Work, in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source. 1) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (a) uses at run time a copy of the Library already present on the user's computer system, and (b) will operate properly with a modified version of the Library that is interface-compatible with the Linked Version. e) Provide Installation Information, but only if you would otherwise be required to provide such information under section 6 of the GNU GPL, and only to the extent that such information is necessary to install and execute a modified version of the Combined Work produced by recombining or relinking the Application with a modified version of the Linked Version. (If you use option 4d0, the Installation Information must accompany the Minimal Corresponding Source and Corresponding Application Code. If you use option 4d1, you must provide the Installation Information in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.) 5. Combined Libraries. You may place library facilities that are a work based on the Library side by side in a single library together with other library facilities that are not Applications and are not covered by this License, and convey such a combined library under terms of your choice, if you do both of the following: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities, conveyed under the terms of this License. b) Give prominent notice with the combined library that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 6. Revised Versions of the GNU Lesser General Public License. The Free Software Foundation may publish revised and/or new versions of the GNU Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library as you received it specifies that a certain numbered version of the GNU Lesser General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that published version or of any later version published by the Free Software Foundation. If the Library as you received it does not specify a version number of the GNU Lesser General Public License, you may choose any version of the GNU Lesser General Public License ever published by the Free Software Foundation. If the Library as you received it specifies that a proxy can decide whether future versions of the GNU Lesser General Public License shall apply, that proxy's public statement of acceptance of any version is permanent authorization for you to choose that version for the Library. ./github.com/canonical/tcglog-parser/README.md0000664000000000000000000000164500000000000016130 0ustar00# TCG Log Parser This repository contains a go library for parsing TCG event logs. Also included is a simple command line tool that prints details of log entries to the console. ## Relevant specifications * [TCG PC Client Platform Firmware Profile Specification](https://trustedcomputinggroup.org/wp-content/uploads/TCG_PCClientSpecPlat_TPM_2p0_1p04_pub.pdf) * [TCG EFI Platform Specification For TPM Family 1.1 or 1.2](https://trustedcomputinggroup.org/wp-content/uploads/TCG_EFI_Platform_1_22_Final_-v15.pdf) * [TCG PC Client Specific Implementation Specification for Conventional BIOS](https://trustedcomputinggroup.org/wp-content/uploads/TCG_PCClientImplementation_1-21_1_00.pdf) * [Unified Extensible Firmware Interface (UEFI) Specification](https://uefi.org/sites/default/files/resources/UEFI_Spec_2_8_final.pdf) * [Platform Initialization (PI) Specification](https://uefi.org/sites/default/files/resources/PI_Spec_1_6.pdf) ./github.com/canonical/tcglog-parser/constants.go0000664000000000000000000001022600000000000017207 0ustar00// Copyright 2019 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package tcglog import ( "math" ) const ( EventTypePrebootCert EventType = 0x00000000 // EV_PREBOOT_CERT EventTypePostCode EventType = 0x00000001 // EV_POST_CODE // EventTypeUnused = 0x00000002 EventTypeNoAction EventType = 0x00000003 // EV_NO_ACTION EventTypeSeparator EventType = 0x00000004 // EV_SEPARATOR EventTypeAction EventType = 0x00000005 // EV_ACTION EventTypeEventTag EventType = 0x00000006 // EV_EVENT_TAG EventTypeSCRTMContents EventType = 0x00000007 // EV_S_CRTM_CONTENTS EventTypeSCRTMVersion EventType = 0x00000008 // EV_S_CRTM_VERSION EventTypeCPUMicrocode EventType = 0x00000009 // EV_CPU_MICROCODE EventTypePlatformConfigFlags EventType = 0x0000000a // EV_PLATFORM_CONFIG_FLAGS EventTypeTableOfDevices EventType = 0x0000000b // EV_TABLE_OF_DEVICES EventTypeCompactHash EventType = 0x0000000c // EV_COMPACT_HASH EventTypeIPL EventType = 0x0000000d // EV_IPL EventTypeIPLPartitionData EventType = 0x0000000e // EV_IPL_PARTITION_DATA EventTypeNonhostCode EventType = 0x0000000f // EV_NONHOST_CODE EventTypeNonhostConfig EventType = 0x00000010 // EV_NONHOST_CONFIG EventTypeNonhostInfo EventType = 0x00000011 // EV_NONHOST_INFO EventTypeOmitBootDeviceEvents EventType = 0x00000012 // EV_OMIT_BOOT_DEVICE_EVENTS EventTypePostCode2 EventType = 0x00000013 // EV_POST_CODE2 EventTypeEFIEventBase EventType = 0x80000000 // EV_EFI_EVENT_BASE EventTypeEFIVariableDriverConfig EventType = 0x80000001 // EV_EFI_VARIABLE_DRIVER_CONFIG EventTypeEFIVariableBoot EventType = 0x80000002 // EV_EFI_VARIABLE_BOOT EventTypeEFIBootServicesApplication EventType = 0x80000003 // EV_EFI_BOOT_SERVICES_APPLICATION EventTypeEFIBootServicesDriver EventType = 0x80000004 // EV_EFI_BOOT_SERVICES_DRIVER EventTypeEFIRuntimeServicesDriver EventType = 0x80000005 // EV_EFI_RUNTIME_SERVICES_DRIVER EventTypeEFIGPTEvent EventType = 0x80000006 // EV_EFI_GPT_EVENT EventTypeEFIAction EventType = 0x80000007 // EV_EFI_ACTION EventTypeEFIPlatformFirmwareBlob EventType = 0x80000008 // EV_EFI_PLATFORM_FIRMWARE_BLOB EventTypeEFIHandoffTables EventType = 0x80000009 // EV_EFI_HANDOFF_TABLES EventTypeEFIPlatformFirmwareBlob2 EventType = 0x8000000a // EV_EFI_PLATFORM_FIRMWARE_BLOB2 EventTypeEFIHandoffTables2 EventType = 0x8000000b // EV_EFI_HANDOFF_TABLES2 EventTypeEFIVariableBoot2 EventType = 0x8000000c // EV_EFI_VARIABLE_BOOT2 EventTypeEFIGPTEvent2 EventType = 0x8000000d // EV_EFI_GPT_EVENT2 EventTypeEFIHCRTMEvent EventType = 0x80000010 // EV_EFI_HCRTM_EVENT EventTypeEFIVariableAuthority EventType = 0x800000e0 // EV_EFI_VARIABLE_AUTHORITY EventTypeEFISPDMFirmwareBlob EventType = 0x800000e1 // EV_EFI_SPDM_FIRMWARE_BLOB EventTypeEFISPDMFirmwareConfig EventType = 0x800000e2 // EV_EFI_SPDM_FIRMWARE_CONFIG EventTypeEFISPDMDevicePolicy EventType = 0x800000e3 // EV_EFI_SPDM_DEVICE_POLICY EventTypeEFISPDMDeviceAuthority EventType = 0x800000e4 // EV_EFI_SPDM_DEVICE_AUTHORITY ) const ( SeparatorEventNormalValue uint32 = 0 SeparatorEventErrorValue uint32 = 1 SeparatorEventAltNormalValue uint32 = math.MaxUint32 ) var ( EFICallingEFIApplicationEvent = StringEventData("Calling EFI Application from Boot Option") EFIReturningFromEFIApplicationEvent = StringEventData("Returning from EFI Application from Boot Option") EFIExitBootServicesInvocationEvent = StringEventData("Exit Boot Services Invocation") EFIExitBootServicesFailedEvent = StringEventData("Exit Boot Services Returned with Failure") EFIExitBootServicesSucceededEvent = StringEventData("Exit Boot Services Returned with Success") FirmwareDebuggerEvent = StringEventData("UEFI Debug Mode") DMAProtectionDisabled = StringEventData("DMA Protection Disabled") ) var BootAttemptsOmitted = StringEventData("BOOT ATTEMPTS OMITTED") var HCRTM = StringEventData("HCRTM") ./github.com/canonical/tcglog-parser/event.go0000664000000000000000000001450000000000000016313 0ustar00// Copyright 2019-2021 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package tcglog import ( "bytes" "encoding/binary" "errors" "fmt" "io" "github.com/canonical/go-tpm2" "golang.org/x/xerrors" "github.com/canonical/tcglog-parser/internal/ioerr" ) type eventHeader struct { PCRIndex tpm2.Handle EventType EventType } type eventHeaderCryptoAgile struct { eventHeader Count uint32 } // Event corresponds to a single event in an event log. type Event struct { PCRIndex tpm2.Handle // PCR index to which this event was measured EventType EventType // The type of this event Digests DigestMap // The digests corresponding to this event for the supported algorithms Data EventData // The data recorded with this event } // Write serializes this event in non crypto-agile form to w. If the event // does not contain a SHA-1 digest of the correct size, or it contains // more than one digest, an error will be returned. func (e *Event) Write(w io.Writer) error { digest, ok := e.Digests[tpm2.HashAlgorithmSHA1] if !ok { return errors.New("missing SHA-1 digest") } if len(e.Digests) != 1 { return errors.New("invalid number of digests") } if len(digest) != tpm2.HashAlgorithmSHA1.Size() { return errors.New("invalid digest size") } data := new(bytes.Buffer) if err := e.Data.Write(data); err != nil { return xerrors.Errorf("cannot serialize event data: %w", err) } hdr := eventHeader{ PCRIndex: e.PCRIndex, EventType: e.EventType} if err := binary.Write(w, binary.LittleEndian, &hdr); err != nil { return err } if _, err := w.Write(digest); err != nil { return err } if err := binary.Write(w, binary.LittleEndian, uint32(data.Len())); err != nil { return err } _, err := w.Write(data.Bytes()) return err } // WriteCryptoAgile serializes this even in crypto-agile form to w. If the // event does not contain a digest of the correct size for each entry in // digestSizes, or it contains more digests, an error will be returned. func (e *Event) WriteCryptoAgile(w io.Writer, digestSizes []EFISpecIdEventAlgorithmSize) error { if len(e.Digests) != len(digestSizes) { return errors.New("invalid number of digests") } for _, d := range digestSizes { digest, ok := e.Digests[d.AlgorithmId] if !ok { return fmt.Errorf("missing %v digest", d.AlgorithmId) } if len(digest) != int(d.DigestSize) { return fmt.Errorf("invalid digest size for %v", d.AlgorithmId) } } data := new(bytes.Buffer) if err := e.Data.Write(data); err != nil { return xerrors.Errorf("cannot serialize event data: %w", err) } hdr := eventHeaderCryptoAgile{ eventHeader: eventHeader{ PCRIndex: e.PCRIndex, EventType: e.EventType}, Count: uint32(len(digestSizes))} if err := binary.Write(w, binary.LittleEndian, &hdr); err != nil { return err } for _, d := range digestSizes { if err := binary.Write(w, binary.LittleEndian, d.AlgorithmId); err != nil { return err } if _, err := w.Write(e.Digests[d.AlgorithmId]); err != nil { return err } } if err := binary.Write(w, binary.LittleEndian, uint32(data.Len())); err != nil { return err } _, err := w.Write(data.Bytes()) return err } func isPCRIndexInRange(index tpm2.Handle) bool { const maxPCRIndex tpm2.Handle = 0x00000031 return index <= maxPCRIndex } func ReadEvent(r io.Reader, options *LogOptions) (*Event, error) { var header eventHeader if err := binary.Read(r, binary.LittleEndian, &header); err != nil { return nil, err } if !isPCRIndexInRange(header.PCRIndex) { return nil, fmt.Errorf("log entry has an out-of-range PCR index (%d)", header.PCRIndex) } digest := make(tpm2.Digest, tpm2.HashAlgorithmSHA1.Size()) if _, err := io.ReadFull(r, digest); err != nil { return nil, ioerr.EOFIsUnexpected(err) } digests := make(DigestMap) digests[tpm2.HashAlgorithmSHA1] = digest var eventSize uint32 if err := binary.Read(r, binary.LittleEndian, &eventSize); err != nil { return nil, ioerr.EOFIsUnexpected(err) } event := make([]byte, eventSize) if _, err := io.ReadFull(r, event); err != nil { return nil, ioerr.EOFIsUnexpected(err) } return &Event{ PCRIndex: header.PCRIndex, EventType: header.EventType, Digests: digests, Data: decodeEventData(event, header.PCRIndex, header.EventType, digests, options), }, nil } func ReadEventCryptoAgile(r io.Reader, digestSizes []EFISpecIdEventAlgorithmSize, options *LogOptions) (*Event, error) { var header eventHeaderCryptoAgile if err := binary.Read(r, binary.LittleEndian, &header); err != nil { return nil, err } if !isPCRIndexInRange(header.PCRIndex) { return nil, fmt.Errorf("log entry has an out-of-range PCR index (%d)", header.PCRIndex) } digests := make(DigestMap) for i := uint32(0); i < header.Count; i++ { var algorithmId tpm2.HashAlgorithmId if err := binary.Read(r, binary.LittleEndian, &algorithmId); err != nil { return nil, ioerr.EOFIsUnexpected(err) } var digestSize uint16 var j int for j = 0; j < len(digestSizes); j++ { if digestSizes[j].AlgorithmId == algorithmId { digestSize = digestSizes[j].DigestSize break } } if j == len(digestSizes) { return nil, fmt.Errorf("event contains a digest for an unrecognized algorithm (%v)", algorithmId) } digest := make(tpm2.Digest, digestSize) if _, err := io.ReadFull(r, digest); err != nil { return nil, ioerr.EOFIsUnexpected("cannot read digest for algorithm %v: %w", algorithmId, err) } if _, exists := digests[algorithmId]; exists { return nil, fmt.Errorf("event contains more than one digest value for algorithm %v", algorithmId) } digests[algorithmId] = digest } for _, s := range digestSizes { if _, exists := digests[s.AlgorithmId]; !exists { return nil, fmt.Errorf("event is missing a digest value for algorithm %v", s.AlgorithmId) } } for alg, _ := range digests { if alg.IsValid() { continue } delete(digests, alg) } var eventSize uint32 if err := binary.Read(r, binary.LittleEndian, &eventSize); err != nil { return nil, ioerr.EOFIsUnexpected(err) } event := make([]byte, eventSize) if _, err := io.ReadFull(r, event); err != nil { return nil, ioerr.EOFIsUnexpected(err) } return &Event{ PCRIndex: header.PCRIndex, EventType: header.EventType, Digests: digests, Data: decodeEventData(event, header.PCRIndex, header.EventType, digests, options), }, nil } ./github.com/canonical/tcglog-parser/eventdata.go0000664000000000000000000000620700000000000017152 0ustar00// Copyright 2019 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package tcglog import ( "crypto" "fmt" "io" "unicode" "unicode/utf8" "github.com/canonical/go-tpm2" ) // EventData represents all event data types that appear in a log. Some implementations of this are exported so that event data // contents can be inspected programatically. // // If an error is encountered when decoding the data associated with an event, the event data will implement the error interface // which can be used for obtaining information about the decoding error. // // Some event data is informative (it provides information about the measurement), whilst others are not // normative because the measurement is a tagged hash of the event data. type EventData interface { fmt.Stringer // Bytes is the raw event data bytes as they appear in the event log. Bytes() []byte // Write will serialize this event data to the supplied io.Writer. Write(w io.Writer) error } type rawEventData []byte func (b rawEventData) Bytes() []byte { return []byte(b) } // invalidEventData corresponds to an event data blob that failed to decode correctly. type invalidEventData struct { rawEventData err error } func (e *invalidEventData) String() string { return fmt.Sprintf("Invalid event data: %v", e.err) } func (e *invalidEventData) Write(w io.Writer) error { _, err := w.Write(e.rawEventData) return err } func (e *invalidEventData) Error() string { return e.err.Error() } func (e *invalidEventData) Unwrap() error { return e.err } // OpaqueEventData is event data whose format is unknown or implementation defined. // It may or may not be informative. type OpaqueEventData []byte func (d OpaqueEventData) String() string { // This blob is opaque, but try to print something if it's filled // with printable characters. data := d var s []byte for len(data) > 0 { r, sz := utf8.DecodeRune(data) if r == 0 { break } if !unicode.IsPrint(r) { return "" } s = append(s, data[:sz]...) data = data[sz:] } return string(s) } func (d OpaqueEventData) Bytes() []byte { return []byte(d) } func (d OpaqueEventData) Write(w io.Writer) error { _, err := w.Write(d) return err } // ComputeEventDigest computes the digest associated with the supplied event data bytes, // for events where the digest is a tagged hash of the event data. func ComputeEventDigest(alg crypto.Hash, data []byte) []byte { h := alg.New() h.Write(data) return h.Sum(nil) } func decodeEventData(data []byte, pcrIndex tpm2.Handle, eventType EventType, digests DigestMap, options *LogOptions) EventData { if options.EnableGrub && (pcrIndex == 0x00000008 || pcrIndex == 0x00000009) { if out := decodeEventDataGRUB(data, pcrIndex, eventType); out != nil { return out } } if options.EnableSystemdEFIStub && pcrIndex == options.SystemdEFIStubPCR { if out := decodeEventDataSystemdEFIStub(data, eventType); out != nil { return out } } out, err := decodeEventDataTCG(data, eventType, digests) if err != nil { return &invalidEventData{rawEventData: data, err: err} } if out != nil { return out } return OpaqueEventData(data) } ./github.com/canonical/tcglog-parser/grubeventdata.go0000664000000000000000000000364000000000000020030 0ustar00// Copyright 2019 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package tcglog import ( "bytes" "fmt" "io" "strings" "github.com/canonical/go-tpm2" ) var ( kernelCmdlinePrefix = "kernel_cmdline: " grubCmdPrefix = "grub_cmd: " ) // GrubStringEventType indicates the type of data measured by GRUB in to a log by GRUB. type GrubStringEventType string const ( // GrubCmd indicates that the data measured by GRUB is associated with a GRUB command. GrubCmd GrubStringEventType = "grub_cmd" // KernelCmdline indicates that the data measured by GRUB is associated with a kernel commandline. KernelCmdline = "kernel_cmdline" ) // GrubStringEventData represents the data associated with an event measured by GRUB. type GrubStringEventData struct { Type GrubStringEventType Str string } func (e *GrubStringEventData) String() string { return fmt.Sprintf("%s{ %s }", string(e.Type), e.Str) } func (e *GrubStringEventData) Bytes() []byte { w := new(bytes.Buffer) if err := e.Write(w); err != nil { panic(err) } return w.Bytes() } func (e *GrubStringEventData) Write(w io.Writer) error { _, err := io.WriteString(w, fmt.Sprintf("%s: %s\x00", string(e.Type), e.Str)) return err } func decodeEventDataGRUB(data []byte, pcrIndex tpm2.Handle, eventType EventType) EventData { if eventType != EventTypeIPL { return nil } switch pcrIndex { case 0x00000008: str := string(data) switch { case strings.HasPrefix(str, kernelCmdlinePrefix): return &GrubStringEventData{Type: KernelCmdline, Str: strings.TrimSuffix(strings.TrimPrefix(str, kernelCmdlinePrefix), "\x00")} case strings.HasPrefix(str, grubCmdPrefix): return &GrubStringEventData{Type: GrubCmd, Str: strings.TrimSuffix(strings.TrimPrefix(str, grubCmdPrefix), "\x00")} default: return nil } case 0x00000009: return StringEventData(data) default: panic("unhandled PCR index") } } ./github.com/canonical/tcglog-parser/internal/0000775000000000000000000000000000000000000016457 5ustar00./github.com/canonical/tcglog-parser/internal/ioerr/0000775000000000000000000000000000000000000017577 5ustar00./github.com/canonical/tcglog-parser/internal/ioerr/ioerr.go0000664000000000000000000000473400000000000021256 0ustar00// Copyright 2021 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package ioerr import ( "io" "unicode" "unicode/utf8" "golang.org/x/xerrors" ) // Return the index of the first %w in format, or -1 if none. // TODO: handle "%[N]w". func parsePercentW(format string) int { // Loosely copied from golang.org/x/xerrors/fmt.go. n := 0 sz := 0 var isW bool for i := 0; i < len(format); i += sz { if format[i] != '%' { sz = 1 continue } // "%%" is not a format directive. if i+1 < len(format) && format[i+1] == '%' { sz = 2 continue } sz, isW = parsePrintfVerb(format[i:]) if isW { return n } n++ } return -1 } // Parse the printf verb starting with a % at s[0]. // Return how many bytes it occupies and whether the verb is 'w'. func parsePrintfVerb(s string) (int, bool) { // Assume only that the directive is a sequence of non-letters followed by a single letter. sz := 0 var r rune for i := 1; i < len(s); i += sz { r, sz = utf8.DecodeRuneInString(s[i:]) if unicode.IsLetter(r) { return i + sz, r == 'w' } } return len(s), false } // EOFIsUnexpected converts io.EOF errors into io.ErrUnexpected, which is // useful when using binary.Read to decode aprts of a structure that aren't // at the start and when a io.EOF error is not expected. // // It can be called in one of 2 ways - either with a single argument which // must be an error, or with a format string and an arbitrary number of // arguments. In this second mode, the function is a wrapper around // xerrors.Errorf. // // This only works on raw io.EOF errors - ie, it won't work on errors that // have been wrapped. func EOFIsUnexpected(args ...interface{}) error { switch { case len(args) > 1: format := args[0].(string) idx := parsePercentW(format) if idx >= 0 { if err, isErr := args[idx+1].(error); isErr && err == io.EOF { args[idx+1] = io.ErrUnexpectedEOF } } return xerrors.Errorf(format, args[1:]...) case len(args) == 1: switch err := args[0].(type) { case error: if err == io.EOF { err = io.ErrUnexpectedEOF } return err case nil: return nil default: panic("invalid type") } default: panic("no arguments") } } // PassRawEOF is a wrapper around xerrors.Errorf that will return a raw // io.EOF if this is the error. func PassRawEOF(format string, args ...interface{}) error { err := xerrors.Errorf(format, args...) if xerrors.Is(err, io.EOF) { return io.EOF } return err } ./github.com/canonical/tcglog-parser/log.go0000664000000000000000000000567400000000000015767 0ustar00// Copyright 2019 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package tcglog import ( "github.com/canonical/go-tpm2" ) type PlatformType int const ( PlatformTypeUnknown PlatformType = iota PlatformTypeBIOS PlatformTypeEFI ) // Spec corresponds to the TCG specification that an event log conforms to. type Spec struct { PlatformType PlatformType Major uint8 Minor uint8 Errata uint8 } // IsBIOS indicates that a log conforms to "TCG PC Client Specific Implementation Specification // for Conventional BIOS". // See https://www.trustedcomputinggroup.org/wp-content/uploads/TCG_PCClientImplementation_1-21_1_00.pdf func (s Spec) IsBIOS() bool { return s.PlatformType == PlatformTypeBIOS } // IsEFI_1_2 indicates that a log conforms to "TCG EFI Platform Specification For TPM Family 1.1 or // 1.2". // See https://trustedcomputinggroup.org/wp-content/uploads/TCG_EFI_Platform_1_22_Final_-v15.pdf func (s Spec) IsEFI_1_2() bool { return s.PlatformType == PlatformTypeEFI && s.Major == 1 && s.Minor == 2 } // IsEFI_2 indicates that a log conforms to "TCG PC Client Platform Firmware Profile Specification" // See https://trustedcomputinggroup.org/wp-content/uploads/TCG_PCClientSpecPlat_TPM_2p0_1p04_pub.pdf func (s Spec) IsEFI_2() bool { return s.PlatformType == PlatformTypeEFI && s.Major == 2 } // Log corresponds to a parsed event log. type Log struct { Spec Spec // The specification to which this log conforms Algorithms AlgorithmIdList // The digest algorithms that appear in the log Events []*Event // The list of events in the log } func newLog(event0 *Event) (*Log, []EFISpecIdEventAlgorithmSize) { var spec Spec var digestSizes []EFISpecIdEventAlgorithmSize switch d := event0.Data.(type) { case *SpecIdEvent00: spec = Spec{ PlatformType: PlatformTypeBIOS, Major: d.SpecVersionMajor, Minor: d.SpecVersionMinor, Errata: d.SpecErrata} case *SpecIdEvent02: spec = Spec{ PlatformType: PlatformTypeEFI, Major: d.SpecVersionMajor, Minor: d.SpecVersionMinor, Errata: d.SpecErrata} case *SpecIdEvent03: spec = Spec{ PlatformType: PlatformTypeEFI, Major: d.SpecVersionMajor, Minor: d.SpecVersionMinor, Errata: d.SpecErrata} digestSizes = d.DigestSizes } var algorithms AlgorithmIdList if spec.IsEFI_2() { for _, s := range digestSizes { if s.AlgorithmId.IsValid() { algorithms = append(algorithms, s.AlgorithmId) } } } else { algorithms = AlgorithmIdList{tpm2.HashAlgorithmSHA1} } return &Log{Spec: spec, Algorithms: algorithms, Events: []*Event{event0}}, digestSizes } // NewLogForTesting creates a new log instance from the supplied list of // events. func NewLogForTesting(events []*Event) *Log { if len(events) == 0 { return new(Log) } log, _ := newLog(events[0]) log.Events = append(log.Events, events[1:]...) return log } ./github.com/canonical/tcglog-parser/logreader.go0000664000000000000000000000264200000000000017142 0ustar00// Copyright 2019 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package tcglog import ( "io" "github.com/canonical/go-tpm2" ) // LogOptions allows the behaviour of Log to be controlled. type LogOptions struct { EnableGrub bool // Enable support for interpreting events recorded by GRUB EnableSystemdEFIStub bool // Enable support for interpreting events recorded by systemd's EFI linux loader stub SystemdEFIStubPCR tpm2.Handle // Specify the PCR that systemd's EFI linux loader stub measures to } // ReadLog reads an event log read from r using the supplied options. The log must // be in the format defined in one of the PC Client Platform Firmware Profile // specifications. If an error occurs during parsing, this may return an incomplete // list of events with the error. func ReadLog(r io.Reader, options *LogOptions) (*Log, error) { event, err := ReadEvent(r, options) switch { case err == io.EOF: return new(Log), nil case err != nil: return nil, err } log, digestSizes := newLog(event) for { var event *Event var err error if log.Spec.IsEFI_2() { event, err = ReadEventCryptoAgile(r, digestSizes, options) } else { event, err = ReadEvent(r, options) } switch { case err == io.EOF: return log, nil case err != nil: return log, err default: log.Events = append(log.Events, event) } } } ./github.com/canonical/tcglog-parser/logwriter.go0000664000000000000000000000231700000000000017213 0ustar00// Copyright 2021 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package tcglog import ( "io" "golang.org/x/xerrors" ) // Write writes the event log to w in a format that can be read again // by ReadLog. If the log is a crypto-agile log, each of the supplied // events must contain a digest for each algorithm. For a non // crypto-agile log, each of the events must contain a SHA-1 digest. func (l *Log) Write(w io.Writer) error { if len(l.Events) == 0 { return nil } var cryptoAgile bool var digestSizes []EFISpecIdEventAlgorithmSize switch d := l.Events[0].Data.(type) { case *SpecIdEvent00: _ = d case *SpecIdEvent02: _ = d case *SpecIdEvent03: cryptoAgile = true digestSizes = d.DigestSizes } if err := l.Events[0].Write(w); err != nil { return xerrors.Errorf("cannot write event 0: %w", err) } for i, event := range l.Events[1:] { if cryptoAgile { if err := event.WriteCryptoAgile(w, digestSizes); err != nil { return xerrors.Errorf("cannot write event %d: %w", i+1, err) } } else { if err := event.Write(w); err != nil { return xerrors.Errorf("cannot write event %d: %w", i+1, err) } } } return nil } ./github.com/canonical/tcglog-parser/sdefistub.go0000664000000000000000000000475400000000000017174 0ustar00// Copyright 2019 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package tcglog import ( "bytes" "crypto" "encoding/binary" "io" efi "github.com/canonical/go-efilib" ) // SystemdEFIStubCommandline represents a kernel commandline measured by the // systemd EFI stub linux loader. type SystemdEFIStubCommandline struct { Str string } func decodeEventDataSystemdEFIStub(data []byte, eventType EventType) *SystemdEFIStubCommandline { if eventType != EventTypeIPL { return nil } // data is a UCS2 string in little-endian form terminated with a single zero byte, // so we should have an odd number of bytes. if len(data)%2 != 1 { return nil } if data[len(data)-1] != 0x00 { return nil } // Omit the zero byte added by the EFI stub and then convert to native byte order. reader := bytes.NewReader(data[:len(data)-1]) ucs2Str := make([]uint16, len(data)/2) binary.Read(reader, binary.LittleEndian, &ucs2Str) return &SystemdEFIStubCommandline{Str: efi.ConvertUTF16ToUTF8(ucs2Str)} } func (e *SystemdEFIStubCommandline) String() string { return "kernel commandline: " + e.Str } func (e *SystemdEFIStubCommandline) Bytes() []byte { w := new(bytes.Buffer) if err := e.Write(w); err != nil { panic(err) } return w.Bytes() } func (e *SystemdEFIStubCommandline) Write(w io.Writer) error { if err := binary.Write(w, binary.LittleEndian, efi.ConvertUTF8ToUCS2(e.Str)); err != nil { return err } _, err := w.Write([]byte{0x00}) return err } // ComputeSystemdEFIStubCommandlineDigest computes the digest measured by the systemd EFI stub // linux loader for the specified kernel commandline. The commandline is supplied to the stub // via the LoadOptions as a UTF-16 or UCS-2 string and is measured as such before being converted // to ASCII and passed to the kernel. Note that it assumes that the calling bootloader includes // a UTF-16 NULL terminator at the end of LoadOptions and sets LoadOptionsSize to StrLen(LoadOptions)+1. func ComputeSystemdEFIStubCommandlineDigest(alg crypto.Hash, commandline string) []byte { h := alg.New() // Both GRUB's chainloader and systemd's EFI bootloader include a UTF-16 NULL terminator at // the end of LoadOptions and set LoadOptionsSize to StrLen(LoadOptions)+1. The EFI stub loader // measures LoadOptionsSize number of bytes, meaning that the 2 NULL bytes are measured. // Include those here. binary.Write(h, binary.LittleEndian, append(efi.ConvertUTF8ToUCS2(commandline), 0)) return h.Sum(nil) } ./github.com/canonical/tcglog-parser/tcgeventdata.go0000664000000000000000000004202000000000000017641 0ustar00// Copyright 2019 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package tcglog import ( "bytes" "crypto" "encoding/binary" "errors" "fmt" "io" "strings" efi "github.com/canonical/go-efilib" "github.com/canonical/go-tpm2" "golang.org/x/xerrors" "github.com/canonical/tcglog-parser/internal/ioerr" ) // separatorErrorDigests are the digests of uint32(1) for various algorithms, used // to identify EV_SEPARATOR events that signal an error, where the digest is the tagged // hash of uint32(1) but the event data contains information about the error. var separatorErrorDigests = map[tpm2.HashAlgorithmId]tpm2.Digest{ tpm2.HashAlgorithmSHA1: tpm2.Digest{0x3c, 0x58, 0x56, 0x4, 0xe8, 0x7f, 0x85, 0x59, 0x73, 0x73, 0x1f, 0xea, 0x83, 0xe2, 0x1f, 0xab, 0x93, 0x92, 0xd2, 0xfc}, tpm2.HashAlgorithmSHA256: tpm2.Digest{0x67, 0xab, 0xdd, 0x72, 0x10, 0x24, 0xf0, 0xff, 0x4e, 0xb, 0x3f, 0x4c, 0x2f, 0xc1, 0x3b, 0xc5, 0xba, 0xd4, 0x2d, 0xb, 0x78, 0x51, 0xd4, 0x56, 0xd8, 0x8d, 0x20, 0x3d, 0x15, 0xaa, 0xa4, 0x50}, tpm2.HashAlgorithmSHA384: tpm2.Digest{0x72, 0x10, 0xaf, 0x19, 0x14, 0x5e, 0xc2, 0xa8, 0xe2, 0x50, 0xa7, 0xfe, 0x8e, 0x9e, 0xee, 0xac, 0x13, 0x1, 0xe5, 0x24, 0xda, 0xab, 0x82, 0x36, 0x6c, 0x36, 0xbe, 0x61, 0x4d, 0xc3, 0x54, 0x2, 0xa2, 0x89, 0x10, 0x1e, 0x48, 0xca, 0xd6, 0x1c, 0x45, 0x33, 0x7f, 0x2f, 0x32, 0xc1, 0x4f, 0xdc}, tpm2.HashAlgorithmSHA512: tpm2.Digest{0xed, 0xf9, 0x2e, 0x3d, 0x4f, 0x80, 0xfc, 0x47, 0xd9, 0x48, 0xea, 0x2f, 0x17, 0xb9, 0xbf, 0xc7, 0x42, 0xd3, 0x4e, 0x2e, 0x78, 0x5a, 0x7a, 0x49, 0x27, 0xf3, 0xe2, 0x61, 0xe8, 0xbd, 0x9d, 0x40, 0xb, 0x64, 0x8b, 0xff, 0x21, 0x23, 0xb8, 0x39, 0x6d, 0x24, 0xfb, 0x28, 0xf5, 0x86, 0x99, 0x79, 0xe0, 0x8d, 0x58, 0xb4, 0xb5, 0xd1, 0x56, 0xe6, 0x40, 0x34, 0x4a, 0x2c, 0xa, 0x54, 0x67, 0x5d}, tpm2.HashAlgorithmSHA3_256: tpm2.Digest{0x29, 0x5c, 0xd1, 0x69, 0x8c, 0x6a, 0xc5, 0xbd, 0x80, 0x4a, 0x9, 0xe5, 0xf, 0x19, 0xf8, 0x54, 0x94, 0x75, 0xe5, 0x2d, 0xb1, 0xc6, 0xeb, 0xd4, 0x41, 0xed, 0xc, 0x7b, 0x25, 0x6e, 0x1d, 0xdf}, tpm2.HashAlgorithmSHA3_384: tpm2.Digest{0xe7, 0xb9, 0x1f, 0x51, 0xfb, 0x66, 0x1b, 0x6e, 0xc8, 0xea, 0x28, 0x55, 0xc8, 0x8b, 0x38, 0x80, 0x71, 0xca, 0xf1, 0xf6, 0xa3, 0xc, 0x95, 0x24, 0x50, 0x83, 0x8d, 0x61, 0xb3, 0x55, 0x61, 0x63, 0x8b, 0x93, 0xeb, 0xdc, 0x22, 0x1b, 0x86, 0xa6, 0x81, 0x33, 0xe, 0xef, 0xa1, 0x2e, 0x10, 0xcd}, tpm2.HashAlgorithmSHA3_512: tpm2.Digest{0xda, 0x5e, 0xa4, 0xad, 0x55, 0x26, 0xac, 0xe3, 0x3e, 0x3, 0x75, 0xf3, 0x68, 0xd4, 0x16, 0xd9, 0x5f, 0xbf, 0x6a, 0x68, 0x0, 0xb6, 0x60, 0x85, 0x26, 0xdc, 0x7e, 0x39, 0xce, 0x9a, 0x43, 0xf3, 0xb0, 0xa7, 0xbe, 0xd2, 0x20, 0x60, 0xdc, 0xd7, 0x1a, 0x13, 0xc, 0x95, 0x7b, 0xcd, 0x2, 0xe1, 0x95, 0x7e, 0x6d, 0x76, 0xee, 0x61, 0x79, 0xd7, 0x2, 0x36, 0x94, 0x1, 0x6a, 0x49, 0x25, 0x5b}, } // StringEventData corresponds to event data that is an non-NULL terminated ASCII string. // It may or may not be informative. type StringEventData string func (d StringEventData) String() string { return string(d) } func (d StringEventData) Write(w io.Writer) error { _, err := io.WriteString(w, string(d)) return err } func (d StringEventData) Bytes() []byte { return []byte(d) } // ComputeStringEventDigest computes the digest associated with the supplied string, for // events where the data is not informative. The function assumes that the string is // ASCII encoded and measured without a terminating NULL byte. func ComputeStringEventDigest(alg crypto.Hash, str string) []byte { h := alg.New() io.WriteString(h, str) return h.Sum(nil) } // NullTerminatedStringEventData corresponds to event data that is a NULL terminated // ASCII string. As with other strings, the go representation is not NULL terminated. // It's only use in this package is for EV_S_CRTM_CONTENTS, which is informative. type NullTerminatedStringEventData string func decodeNullTerminatedStringEventData(data []byte) (NullTerminatedStringEventData, error) { if !isPrintableASCII(data, true) { return "", errors.New("data does not contain printable ASCII that is NULL terminated") } return NullTerminatedStringEventData(data[:len(data)-1]), nil } func (d NullTerminatedStringEventData) String() string { return string(d) } func (d NullTerminatedStringEventData) Write(w io.Writer) error { if _, err := io.WriteString(w, string(d)); err != nil { return err } _, err := w.Write([]byte{0}) return err } func (d NullTerminatedStringEventData) Bytes() []byte { return append([]byte(d), 0x00) } // NullTerminatedUCS2StringEventData corresponds to event data that is a NULL // terminated UCS2 string. As with other strings, the go representation is not // NULL terminated and is represented in UTF8. It's only use in this package is // for EV_S_CRTM_VERSION, which is not informative (the event digest is the tagged // hash of this event data). type NullTerminatedUCS2StringEventData string func decodeNullTerminatedUCS2StringEventData(data []byte) (NullTerminatedUCS2StringEventData, error) { if !isPrintableUCS2(data, true) { return "", errors.New("data does not contain printable UCS2 that is NULL terminated") } r := bytes.NewReader(data) ucs2Str := make([]uint16, len(data)/2) if err := binary.Read(r, binary.LittleEndian, &ucs2Str); err != nil { return "", err } str := efi.ConvertUTF16ToUTF8(ucs2Str[:len(ucs2Str)-1]) return NullTerminatedUCS2StringEventData(str), nil } func (d NullTerminatedUCS2StringEventData) String() string { return string(d) } func (d NullTerminatedUCS2StringEventData) Write(w io.Writer) error { ucs2 := efi.ConvertUTF8ToUCS2(string(d)) if err := binary.Write(w, binary.LittleEndian, ucs2); err != nil { return err } _, err := w.Write([]byte{0x00, 0x00}) return err } func (d NullTerminatedUCS2StringEventData) Bytes() []byte { w := new(bytes.Buffer) d.Write(w) return w.Bytes() } // ComputeNullTerminatedUCS2StringEventDigest computes the digest for the supplied string, // for events where the event data is not informative and is represented by a NULL terminated // UCS2 string. The supplied string must be UTF8 without a NULL termination. func ComputeNullTerminatedUCS2StringEventDigest(alg crypto.Hash, str string) []byte { ucs2str := efi.ConvertUTF8ToUCS2(str) ucs2str = append(ucs2str, 0) h := alg.New() binary.Write(h, binary.LittleEndian, ucs2str) return h.Sum(nil) } // https://trustedcomputinggroup.org/wp-content/uploads/TCG_PCClientImplementation_1-21_1_00.pdf // // (section 11.3.4 "EV_NO_ACTION Event Types") // // https://trustedcomputinggroup.org/wp-content/uploads/TCG_PCClientSpecPlat_TPM_2p0_1p04_pub.pdf // // (section 9.4.5 "EV_NO_ACTION Event Types") func decodeEventDataNoAction(data []byte) (EventData, error) { r := bytes.NewReader(data) // Signature field var sig [16]byte if _, err := io.ReadFull(r, sig[:]); err != nil { return nil, ioerr.EOFIsUnexpected(err) } signature := strings.TrimRight(string(sig[:]), "\x00") switch signature { case "Spec ID Event00": out, err := decodeSpecIdEvent00(data, r) if err != nil { return nil, xerrors.Errorf("cannot decode Spec ID Event00 data: %w", err) } return out, nil case "Spec ID Event02": out, err := decodeSpecIdEvent02(data, r) if err != nil { return nil, xerrors.Errorf("cannot decode Spec ID Event02 data: %w", err) } return out, nil case "Spec ID Event03": out, err := decodeSpecIdEvent03(data, r) if err != nil { return nil, xerrors.Errorf("cannot decode Spec ID Event03 data: %w", err) } return out, nil case "SP800-155 Event": out, err := decodeBIMReferenceManifestEvent(data, r) if err != nil { return nil, xerrors.Errorf("cannot decode SP800-155 Event data: %w", err) } return out, nil case "SP800-155 Event2": out, err := decodeBIMReferenceManifestEvent2(data, r) if err != nil { return nil, xerrors.Errorf("cannot decode SP800-155 Event2 data: %w", err) } return out, nil case "SP800-155 Event3": out, err := decodeBIMReferenceManifestEvent3(data, r) if err != nil { return nil, xerrors.Errorf("cannot decode SP800-155 Event3 data: %w", err) } return out, nil case "StartupLocality": out, err := decodeStartupLocalityEvent(data, r) if err != nil { return nil, xerrors.Errorf("cannot decode StartupLocality data: %w", err) } return out, nil case "H-CRTM CompMeas": out, err := decodeHCRTMComponentEvent(data, r) if err != nil { return nil, xerrors.Errorf("cannot decocde H-CRTM CompMeas data: %w", err) } return out, nil default: return nil, nil } } // https://trustedcomputinggroup.org/wp-content/uploads/TCG_PCClientImplementation_1-21_1_00.pdf (section 11.3.3 "EV_ACTION event types") // https://trustedcomputinggroup.org/wp-content/uploads/PC-ClientSpecific_Platform_Profile_for_TPM_2p0_Systems_v51.pdf (section 9.4.3 "EV_ACTION Event Types") func decodeEventDataAction(data []byte) (StringEventData, error) { if !isPrintableASCII(data, false) { return "", errors.New("data does not contain printable ASCII that is not NULL terminated") } return StringEventData(data), nil } // SeparatorEventData is the event data associated with a EV_SEPARATOR event. type SeparatorEventData struct { Value uint32 // The separator value measured to the TPM ErrorInfo []byte // The error information recorded in the log when Value == SeparatorEventErrorValue } // https://trustedcomputinggroup.org/wp-content/uploads/TCG_PCClientImplementation_1-21_1_00.pdf // // (section 3.3.2.2 2 Error Conditions" , section 8.2.3 "Measuring Boot Events") // // https://trustedcomputinggroup.org/wp-content/uploads/PC-ClientSpecific_Platform_Profile_for_TPM_2p0_Systems_v51.pdf: // // (section 2.3.2 "Error Conditions", section 2.3.4 "PCR Usage", section 7.2 // "Procedure for Pre-OS to OS-Present Transition") func decodeEventDataSeparator(data []byte, digests DigestMap) (*SeparatorEventData, error) { for alg, digest := range digests { errorDigest, ok := separatorErrorDigests[alg] if !ok { continue } if bytes.Equal(digest, errorDigest) { // This separator event indicates an error. The digest is the tagged hash of the // error value (uint32(1)) and the event data is information about the error. return &SeparatorEventData{Value: SeparatorEventErrorValue, ErrorInfo: data}, nil } } // Not an error separator. The digest is the tagged hash of the event data, which contains one of // uint32(0) or uint32(0xffffffff). if len(data) != binary.Size(uint32(0)) { return nil, errors.New("data is the wrong size") } value := binary.LittleEndian.Uint32(data) switch value { case SeparatorEventNormalValue, SeparatorEventAltNormalValue: default: return nil, fmt.Errorf("invalid separator value: %d", value) } return &SeparatorEventData{Value: value}, nil } // IsError indicates that this event was associated with an error condition. // The value returned from Bytes() contains an implementation defined indication // of the actual error. func (e *SeparatorEventData) IsError() bool { return e.Value == SeparatorEventErrorValue } func (e *SeparatorEventData) String() string { if !e.IsError() { return "" } return fmt.Sprintf("ERROR: 0x%x", e.ErrorInfo) } func (e *SeparatorEventData) Bytes() []byte { w := new(bytes.Buffer) if err := e.Write(w); err != nil { panic(err) } return w.Bytes() } func (e *SeparatorEventData) Write(w io.Writer) error { switch e.Value { case SeparatorEventNormalValue, SeparatorEventAltNormalValue: return binary.Write(w, binary.LittleEndian, e.Value) case SeparatorEventErrorValue: _, err := w.Write(e.ErrorInfo) return err default: return errors.New("invalid value") } } // ComputeSeparatorEventDigest computes the digest associated with the separator event. The value // argument should be one of SeparatorEventNormalValue, SeparatorEventAltNormalValue or // SeparatorEventErrorValue. func ComputeSeparatorEventDigest(alg crypto.Hash, value uint32) []byte { h := alg.New() binary.Write(h, binary.LittleEndian, value) return h.Sum(nil) } func decodeEventDataCompactHash(data []byte) (StringEventData, error) { if !isPrintableASCII(data, false) { return "", errors.New("data does not contain printable ASCII that is not NULL terminated") } return StringEventData(data), nil } func decodeEventDataPostCode(data []byte) (EventData, error) { if isPrintableASCII(data, false) { return StringEventData(data), nil } return decodeEventDataEFIPlatformFirmwareBlob(data) } func decodeEventDataPostCode2(data []byte) (EventData, error) { if isPrintableASCII(data, false) { return StringEventData(data), nil } return decodeEventDataEFIPlatformFirmwareBlob2(data) } func decodeEventDataOmitBootDeviceEvents(data []byte) (StringEventData, error) { if !bytes.Equal(data, BootAttemptsOmitted.Bytes()) { return "", errors.New("data contains unexpected contents") } return StringEventData(data), nil } // TaggedEvent corresponds to TCG_PCClientTaggedEvent. It is not informative - ie, the // event digest should be the tagged hash of this field. type TaggedEvent struct { EventID uint32 Data []byte } func decodeEventDataTaggedEvent(data []byte) (*TaggedEvent, error) { r := bytes.NewReader(data) d := new(TaggedEvent) if err := binary.Read(r, binary.LittleEndian, &d.EventID); err != nil { return nil, fmt.Errorf("cannot decode taggedEventID: %w", err) } data, err := readLengthPrefixed[uint32, byte](r) if err != nil { return nil, fmt.Errorf("cannot read taggedEventData: %w", err) } d.Data = data return d, nil } func (e *TaggedEvent) String() string { return fmt.Sprintf("TCG_PCClientTaggedEvent{taggedEventID: %d, taggedEventData: %#x}", e.EventID, e.Data) } func (e *TaggedEvent) Bytes() []byte { w := new(bytes.Buffer) if err := e.Write(w); err != nil { panic(err) } return w.Bytes() } func (e *TaggedEvent) Write(w io.Writer) error { if err := binary.Write(w, binary.LittleEndian, e.EventID); err != nil { return fmt.Errorf("cannot write taggedEventID: %w", err) } if err := writeLengthPrefixed[uint32, byte](w, e.Data); err != nil { return fmt.Errorf("cannot write taggedEventData: %w", err) } return nil } // ComputeTaggedEventDigest computes the digest for the specified TaggedEvent. func ComputeTaggedEventDigest(alg crypto.Hash, ev *TaggedEvent) []byte { h := alg.New() ev.Write(h) return h.Sum(nil) } func decodeEventDataSCRTMContents(data []byte) (EventData, error) { // If measured by a H-CRTM event, this may be a NULL terminated string if isPrintableASCII(data, true) { return decodeNullTerminatedStringEventData(data) } // Try UEFI_PLATFORM_FIRMWARE_BLOB if len(data) == 16 { // The size of a UEFI_PLATFORM_FIRMWARE_BLOB return decodeEventDataEFIPlatformFirmwareBlob(data) } // Try UEFI_PLATFORM_FIRMWARE_BLOB2 return decodeEventDataEFIPlatformFirmwareBlob2(data) } func decodeEventDataSCRTMVersion(data []byte) (EventData, error) { if isPrintableUCS2(data, true) { return decodeNullTerminatedUCS2StringEventData(data) } if len(data) == 16 { guid, err := efi.ReadGUID(bytes.NewReader(data)) if err != nil { return nil, err } return GUIDEventData(guid), nil } return nil, errors.New("event data is not a NULL-terminated UCS2 string or a EFI_GUID") } // https://trustedcomputinggroup.org/wp-content/uploads/TCG_PCClientImplementation_1-21_1_00.pdf (section 11.3.1 "Event Types") // https://trustedcomputinggroup.org/wp-content/uploads/TCG_EFI_Platform_1_22_Final_-v15.pdf (section 7.2 "Event Types") // https://trustedcomputinggroup.org/wp-content/uploads/TCG_PCClientSpecPlat_TPM_2p0_1p04_pub.pdf (section 9.4.1 "Event Types") func decodeEventDataTCG(data []byte, eventType EventType, digests DigestMap) (out EventData, err error) { switch eventType { case EventTypeNoAction: return decodeEventDataNoAction(data) case EventTypeSeparator: return decodeEventDataSeparator(data, digests) case EventTypeAction, EventTypeEFIAction: return decodeEventDataAction(data) case EventTypePostCode: return decodeEventDataPostCode(data) case EventTypePostCode2: return decodeEventDataPostCode2(data) case EventTypeEFIPlatformFirmwareBlob: return decodeEventDataEFIPlatformFirmwareBlob(data) case EventTypeEFIPlatformFirmwareBlob2: return decodeEventDataEFIPlatformFirmwareBlob2(data) case EventTypeCompactHash: return decodeEventDataCompactHash(data) case EventTypeEFIVariableDriverConfig, EventTypeEFIVariableBoot, EventTypeEFIVariableAuthority, EventTypeEFIVariableBoot2: return decodeEventDataEFIVariable(data) case EventTypeEFIBootServicesApplication, EventTypeEFIBootServicesDriver, EventTypeEFIRuntimeServicesDriver: return decodeEventDataEFIImageLoad(data) case EventTypeEFIGPTEvent, EventTypeEFIGPTEvent2: return decodeEventDataEFIGPT(data) case EventTypeEFIHCRTMEvent: return decodeEventDataEFIHCRTMEvent(data) case EventTypeEFIHandoffTables: return decodeEventDataEFIHandoffTablePointers(data) case EventTypeEFIHandoffTables2: return decodeEventDataEFIHandoffTablePointers2(data) case EventTypeEventTag: return decodeEventDataTaggedEvent(data) case EventTypeSCRTMContents: return decodeEventDataSCRTMContents(data) case EventTypeSCRTMVersion: return decodeEventDataSCRTMVersion(data) case EventTypeOmitBootDeviceEvents: return decodeEventDataOmitBootDeviceEvents(data) default: } if err != nil { err = xerrors.Errorf("cannot decode %v event data: %w", eventType, err) } return } ./github.com/canonical/tcglog-parser/tcgeventdata_bios.go0000664000000000000000000000522700000000000020665 0ustar00// Copyright 2019-2021 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package tcglog import ( "bytes" "encoding/binary" "fmt" "io" "github.com/canonical/tcglog-parser/internal/ioerr" ) // SpecIdEvent00 corresponds to the TCG_PCClientSpecIdEventStruct type and is the // event data for a Specification ID Version EV_NO_ACTION event for BIOS platforms. type SpecIdEvent00 struct { PlatformClass uint32 SpecVersionMinor uint8 SpecVersionMajor uint8 SpecErrata uint8 VendorInfo []byte } // https://trustedcomputinggroup.org/wp-content/uploads/TCG_PCClientImplementation_1-21_1_00.pdf // // (section 11.3.4.1 "Specification Event") func decodeSpecIdEvent00(data []byte, r io.Reader) (out *SpecIdEvent00, err error) { d := new(SpecIdEvent00) if err := binary.Read(r, binary.LittleEndian, &d.PlatformClass); err != nil { return nil, ioerr.EOFIsUnexpected(err) } if err := binary.Read(r, binary.LittleEndian, &d.SpecVersionMinor); err != nil { return nil, ioerr.EOFIsUnexpected(err) } if err := binary.Read(r, binary.LittleEndian, &d.SpecVersionMajor); err != nil { return nil, ioerr.EOFIsUnexpected(err) } if err := binary.Read(r, binary.LittleEndian, &d.SpecErrata); err != nil { return nil, ioerr.EOFIsUnexpected(err) } var reserved uint8 if err := binary.Read(r, binary.LittleEndian, &reserved); err != nil { return nil, ioerr.EOFIsUnexpected(err) } vendorInfo, err := readLengthPrefixed[uint8, byte](r) if err != nil { return nil, ioerr.EOFIsUnexpected(err) } d.VendorInfo = vendorInfo return d, nil } func (e *SpecIdEvent00) String() string { return fmt.Sprintf("PCClientSpecIdEvent{ platformClass=%d, specVersionMinor=%d, specVersionMajor=%d, specErrata=%d }", e.PlatformClass, e.SpecVersionMinor, e.SpecVersionMajor, e.SpecErrata) } func (e *SpecIdEvent00) Bytes() []byte { w := new(bytes.Buffer) if err := e.Write(w); err != nil { panic(err) } return w.Bytes() } func (e *SpecIdEvent00) Write(w io.Writer) error { var signature [16]byte copy(signature[:], []byte("Spec ID Event00")) if _, err := w.Write(signature[:]); err != nil { return err } if err := binary.Write(w, binary.LittleEndian, e.PlatformClass); err != nil { return err } if err := binary.Write(w, binary.LittleEndian, e.SpecVersionMinor); err != nil { return err } if err := binary.Write(w, binary.LittleEndian, e.SpecVersionMajor); err != nil { return err } if err := binary.Write(w, binary.LittleEndian, e.SpecErrata); err != nil { return err } if err := binary.Write(w, binary.LittleEndian, uint8(0)); err != nil { return err } return writeLengthPrefixed[uint8](w, e.VendorInfo) } ./github.com/canonical/tcglog-parser/tcgeventdata_efi.go0000664000000000000000000011513700000000000020476 0ustar00// Copyright 2019 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package tcglog import ( "bytes" "crypto" "encoding/binary" "encoding/hex" "errors" "fmt" "io" "math" "strings" "unicode/utf8" efi "github.com/canonical/go-efilib" "github.com/canonical/go-tpm2" "golang.org/x/xerrors" "github.com/canonical/tcglog-parser/internal/ioerr" ) // GUIDEventData corresponds to event data that is a EFI_GUID. type GUIDEventData efi.GUID func (d GUIDEventData) Bytes() []byte { return d[:] } func (d GUIDEventData) String() string { return efi.GUID(d).String() } func (d GUIDEventData) Write(w io.Writer) error { _, err := w.Write(d[:]) return err } // ComputeGUIDEventDataDigest computes the digest for the specified EFI_GUID. func ComputeGUIDEventDataDigest(alg crypto.Hash, guid efi.GUID) []byte { h := alg.New() h.Write(guid[:]) return h.Sum(nil) } // SpecIdEvent02 corresponds to the TCG_EfiSpecIdEventStruct type and is the // event data for a Specification ID Version EV_NO_ACTION event on EFI platforms // for TPM family 1.2. type SpecIdEvent02 struct { PlatformClass uint32 SpecVersionMinor uint8 SpecVersionMajor uint8 SpecErrata uint8 UintnSize uint8 VendorInfo []byte } // https://trustedcomputinggroup.org/wp-content/uploads/TCG_EFI_Platform_1_22_Final_-v15.pdf // // (section 7.4 "EV_NO_ACTION Event Types") func decodeSpecIdEvent02(data []byte, r io.Reader) (out *SpecIdEvent02, err error) { d := new(SpecIdEvent02) if err := binary.Read(r, binary.LittleEndian, &d.PlatformClass); err != nil { return nil, ioerr.EOFIsUnexpected(err) } if err := binary.Read(r, binary.LittleEndian, &d.SpecVersionMinor); err != nil { return nil, ioerr.EOFIsUnexpected(err) } if err := binary.Read(r, binary.LittleEndian, &d.SpecVersionMajor); err != nil { return nil, ioerr.EOFIsUnexpected(err) } if err := binary.Read(r, binary.LittleEndian, &d.SpecErrata); err != nil { return nil, ioerr.EOFIsUnexpected(err) } if err := binary.Read(r, binary.LittleEndian, &d.UintnSize); err != nil { return nil, ioerr.EOFIsUnexpected(err) } vendorInfo, err := readLengthPrefixed[uint8, byte](r) if err != nil { return nil, ioerr.EOFIsUnexpected(err) } d.VendorInfo = vendorInfo return d, nil } func (e *SpecIdEvent02) String() string { return fmt.Sprintf("EfiSpecIdEvent{ platformClass=%d, specVersionMinor=%d, specVersionMajor=%d, specErrata=%d, uintnSize=%d }", e.PlatformClass, e.SpecVersionMinor, e.SpecVersionMajor, e.SpecErrata, e.UintnSize) } func (e *SpecIdEvent02) Bytes() []byte { w := new(bytes.Buffer) if err := e.Write(w); err != nil { panic(err) } return w.Bytes() } func (e *SpecIdEvent02) Write(w io.Writer) error { var signature [16]byte copy(signature[:], []byte("Spec ID Event02")) if _, err := w.Write(signature[:]); err != nil { return err } if err := binary.Write(w, binary.LittleEndian, e.PlatformClass); err != nil { return err } if err := binary.Write(w, binary.LittleEndian, e.SpecVersionMinor); err != nil { return err } if err := binary.Write(w, binary.LittleEndian, e.SpecVersionMajor); err != nil { return err } if err := binary.Write(w, binary.LittleEndian, e.SpecErrata); err != nil { return err } if err := binary.Write(w, binary.LittleEndian, e.UintnSize); err != nil { return err } return writeLengthPrefixed[uint8](w, e.VendorInfo) } // EFISpecIdEventAlgorithmSize represents a digest algorithm and its length and corresponds to the // TCG_EfiSpecIdEventAlgorithmSize type. type EFISpecIdEventAlgorithmSize struct { AlgorithmId tpm2.HashAlgorithmId DigestSize uint16 } // SpecIdEvent03 corresponds to the TCG_EfiSpecIdEvent type and is the // event data for a Specification ID Version EV_NO_ACTION event on EFI platforms // for TPM family 2.0. type SpecIdEvent03 struct { PlatformClass uint32 SpecVersionMinor uint8 SpecVersionMajor uint8 SpecErrata uint8 UintnSize uint8 DigestSizes []EFISpecIdEventAlgorithmSize // The digest algorithms contained within this log VendorInfo []byte } // https://trustedcomputinggroup.org/wp-content/uploads/TCG_PCClientSpecPlat_TPM_2p0_1p04_pub.pdf // // (secion 9.4.5.1 "Specification ID Version Event") func decodeSpecIdEvent03(data []byte, r io.Reader) (out *SpecIdEvent03, err error) { d := new(SpecIdEvent03) if err := binary.Read(r, binary.LittleEndian, &d.PlatformClass); err != nil { return nil, ioerr.EOFIsUnexpected(err) } if err := binary.Read(r, binary.LittleEndian, &d.SpecVersionMinor); err != nil { return nil, ioerr.EOFIsUnexpected(err) } if err := binary.Read(r, binary.LittleEndian, &d.SpecVersionMajor); err != nil { return nil, ioerr.EOFIsUnexpected(err) } if err := binary.Read(r, binary.LittleEndian, &d.SpecErrata); err != nil { return nil, ioerr.EOFIsUnexpected(err) } if err := binary.Read(r, binary.LittleEndian, &d.UintnSize); err != nil { return nil, ioerr.EOFIsUnexpected(err) } digestSizes, err := readLengthPrefixed[uint32, EFISpecIdEventAlgorithmSize](r) if err != nil { return nil, ioerr.EOFIsUnexpected(err) } d.DigestSizes = digestSizes vendorInfo, err := readLengthPrefixed[uint8, byte](r) if err != nil { return nil, ioerr.EOFIsUnexpected(err) } d.VendorInfo = vendorInfo return d, nil } func (e *SpecIdEvent03) String() string { var builder bytes.Buffer fmt.Fprintf(&builder, "EfiSpecIdEvent{ platformClass=%d, specVersionMinor=%d, specVersionMajor=%d, specErrata=%d, uintnSize=%d, digestSizes=[", e.PlatformClass, e.SpecVersionMinor, e.SpecVersionMajor, e.SpecErrata, e.UintnSize) for i, algSize := range e.DigestSizes { if i > 0 { builder.WriteString(", ") } fmt.Fprintf(&builder, "{ algorithmId=0x%04x, digestSize=%d }", uint16(algSize.AlgorithmId), algSize.DigestSize) } builder.WriteString("] }") return builder.String() } func (e *SpecIdEvent03) Bytes() []byte { w := new(bytes.Buffer) if err := e.Write(w); err != nil { panic(err) } return w.Bytes() } func (e *SpecIdEvent03) Write(w io.Writer) error { var signature [16]byte copy(signature[:], []byte("Spec ID Event03")) if _, err := w.Write(signature[:]); err != nil { return err } if err := binary.Write(w, binary.LittleEndian, e.PlatformClass); err != nil { return err } if err := binary.Write(w, binary.LittleEndian, e.SpecVersionMinor); err != nil { return err } if err := binary.Write(w, binary.LittleEndian, e.SpecVersionMajor); err != nil { return err } if err := binary.Write(w, binary.LittleEndian, e.SpecErrata); err != nil { return err } if err := binary.Write(w, binary.LittleEndian, e.UintnSize); err != nil { return err } if err := writeLengthPrefixed[uint32](w, e.DigestSizes); err != nil { return err } return writeLengthPrefixed[uint8](w, e.VendorInfo) } // StartupLocalityEventData is the event data for a StartupLocality EV_NO_ACTION event. type StartupLocalityEventData struct { StartupLocality uint8 } // https://trustedcomputinggroup.org/wp-content/uploads/TCG_PCClientSpecPlat_TPM_2p0_1p04_pub.pdf // // (section 9.4.5.3 "Startup Locality Event") func decodeStartupLocalityEvent(data []byte, r io.Reader) (*StartupLocalityEventData, error) { var locality uint8 if err := binary.Read(r, binary.LittleEndian, &locality); err != nil { return nil, ioerr.EOFIsUnexpected(err) } return &StartupLocalityEventData{StartupLocality: locality}, nil } func (e *StartupLocalityEventData) String() string { return fmt.Sprintf("EfiStartupLocalityEvent{ StartupLocality: %d }", e.StartupLocality) } func (e *StartupLocalityEventData) Bytes() []byte { w := new(bytes.Buffer) if err := e.Write(w); err != nil { panic(err) } return w.Bytes() } func (e *StartupLocalityEventData) Write(w io.Writer) error { var signature [16]byte copy(signature[:], []byte("StartupLocality")) if _, err := w.Write(signature[:]); err != nil { return err } return binary.Write(w, binary.LittleEndian, e.StartupLocality) } type HCRTMMeasurementFormatType uint8 const ( HCRTMMeasurementFormatDigest HCRTMMeasurementFormatType = 0 HCRTMMeasurementFormatRawData HCRTMMeasurementFormatType = 0x80 ) // HCRTMComponentEventData corresponds to TCG_HCRTMComponentEvent type HCRTMComponentEventData struct { ComponentDescription string MeasurementFormatType HCRTMMeasurementFormatType ComponentMeasurement []byte // This will be a TPMT_HA structure if MeasurementFormatType == HCRTMMeasurementFormatDigest } func decodeHCRTMComponentEvent(data []byte, r io.Reader) (*HCRTMComponentEventData, error) { d := new(HCRTMComponentEventData) data, err := readLengthPrefixed[uint8, byte](r) if err != nil { return nil, ioerr.EOFIsUnexpected(err) } // Make sure we have valid printable ASCII if !isPrintableASCII(data, false) { return nil, fmt.Errorf("ComponentDescription does not contain printable ASCII that is not NULL terminated") } d.ComponentDescription = string(data) if err := binary.Read(r, binary.LittleEndian, &d.MeasurementFormatType); err != nil { return nil, ioerr.EOFIsUnexpected(err) } data, err = readLengthPrefixed[uint16, byte](r) if err != nil { return nil, ioerr.EOFIsUnexpected(err) } d.ComponentMeasurement = data return d, nil } func (d *HCRTMComponentEventData) String() string { return fmt.Sprintf("TCG_HCRTMComponentEvent{ComponentDescription: %s, MeasurementFormatType: %x}", d.ComponentDescription, d.MeasurementFormatType) } func (e *HCRTMComponentEventData) Bytes() []byte { w := new(bytes.Buffer) if err := e.Write(w); err != nil { panic(err) } return w.Bytes() } func (d *HCRTMComponentEventData) Write(w io.Writer) error { var signature [16]byte copy(signature[:], []byte("H-CRTM CompMeas")) if _, err := w.Write(signature[:]); err != nil { return err } if err := writeLengthPrefixed[uint8, byte](w, []byte(d.ComponentDescription)); err != nil { return err } if _, err := w.Write([]byte{byte(d.MeasurementFormatType)}); err != nil { return err } return writeLengthPrefixed[uint16, byte](w, d.ComponentMeasurement) } func decodeEventDataEFIHCRTMEvent(data []byte) (StringEventData, error) { // The spec says this should just be the string "HCRTM" if !bytes.Equal(data, HCRTM.Bytes()) { return "", errors.New("data contains unexpected contents") } return StringEventData(data), nil } // SP800_155_PlatformIdEventData corresponds to the event data for a SP800-155 Event // EV_NO_ACTION event type SP800_155_PlatformIdEventData struct { VendorId uint32 ReferenceManifestGuid efi.GUID } // https://trustedcomputinggroup.org/wp-content/uploads/TCG_PCClientSpecPlat_TPM_2p0_1p04_pub.pdf // // (section 9.4.5.2 "BIOS Integrity Measurement Reference Manifest Event") // // https://trustedcomputinggroup.org/wp-content/uploads/TCG_EFI_Platform_1_22_Final_-v15.pdf // // (section 7.4 "EV_NO_ACTION Event Types") func decodeBIMReferenceManifestEvent(data []byte, r io.Reader) (*SP800_155_PlatformIdEventData, error) { var d struct { VendorId uint32 Guid efi.GUID } if err := binary.Read(r, binary.LittleEndian, &d); err != nil { return nil, ioerr.EOFIsUnexpected(err) } return &SP800_155_PlatformIdEventData{VendorId: d.VendorId, ReferenceManifestGuid: d.Guid}, nil } func (e *SP800_155_PlatformIdEventData) String() string { return fmt.Sprintf("Sp800_155_PlatformId_Event{ VendorId: %d, ReferenceManifestGuid: %s }", e.VendorId, e.ReferenceManifestGuid) } func (e *SP800_155_PlatformIdEventData) Bytes() []byte { w := new(bytes.Buffer) if err := e.Write(w); err != nil { panic(err) } return w.Bytes() } func (e *SP800_155_PlatformIdEventData) Write(w io.Writer) error { var signature [16]byte copy(signature[:], []byte("SP800-155 Event")) if _, err := w.Write(signature[:]); err != nil { return err } if err := binary.Write(w, binary.LittleEndian, e.VendorId); err != nil { return err } _, err := w.Write(e.ReferenceManifestGuid[:]) return err } // SP800_155_PlatformIdEventData2 corresponds to the event data for a SP800-155 Event2 // EV_NO_ACTION event type SP800_155_PlatformIdEventData2 struct { PlatformManufacturerId uint32 ReferenceManifestGuid efi.GUID PlatformManufacturer string PlatformModel string PlatformVersion string FirmwareManufacturer string FirmwareManufacturerId uint32 FirmwareVersion string } func decodeBIMReferenceManifestEvent2(data []byte, r io.Reader) (*SP800_155_PlatformIdEventData2, error) { d := new(SP800_155_PlatformIdEventData2) if err := binary.Read(r, binary.LittleEndian, &d.PlatformManufacturerId); err != nil { return nil, ioerr.EOFIsUnexpected(err) } guid, err := efi.ReadGUID(r) if err != nil { return nil, ioerr.EOFIsUnexpected(err) } d.ReferenceManifestGuid = guid data, err = readLengthPrefixed[uint8, byte](r) if err != nil { return nil, ioerr.EOFIsUnexpected(err) } str, err := decodeNullTerminatedStringEventData(data) if err != nil { return nil, fmt.Errorf("cannot decode PlatformManufacturer: %w", err) } d.PlatformManufacturer = string(str) data, err = readLengthPrefixed[uint8, byte](r) if err != nil { return nil, ioerr.EOFIsUnexpected(err) } str, err = decodeNullTerminatedStringEventData(data) if err != nil { return nil, fmt.Errorf("cannot decode PlatformModel: %w", err) } d.PlatformModel = string(str) data, err = readLengthPrefixed[uint8, byte](r) if err != nil { return nil, ioerr.EOFIsUnexpected(err) } str, err = decodeNullTerminatedStringEventData(data) if err != nil { return nil, fmt.Errorf("cannot decode PlatformVersion: %w", err) } d.PlatformVersion = string(data) data, err = readLengthPrefixed[uint8, byte](r) if err != nil { return nil, ioerr.EOFIsUnexpected(err) } str, err = decodeNullTerminatedStringEventData(data) if err != nil { return nil, fmt.Errorf("cannot decode FirmwareManufacturer: %w", err) } d.FirmwareManufacturer = string(str) if err := binary.Read(r, binary.LittleEndian, &d.FirmwareManufacturerId); err != nil { return nil, ioerr.EOFIsUnexpected(err) } data, err = readLengthPrefixed[uint8, byte](r) if err != nil { return nil, ioerr.EOFIsUnexpected(err) } str, err = decodeNullTerminatedStringEventData(data) if err != nil { return nil, fmt.Errorf("cannot decode FirmwareVersion: %w", err) } d.FirmwareVersion = string(str) return d, nil } func (d *SP800_155_PlatformIdEventData2) String() string { w := new(bytes.Buffer) fmt.Fprintf(w, "SP800_155_PlatformId_Event2{") fmt.Fprintf(w, "\tPlatformManufacturerId: %d\n", d.PlatformManufacturerId) fmt.Fprintf(w, "\tReferenceManifestGUID: %v\n", d.ReferenceManifestGuid) fmt.Fprintf(w, "\tPlatformManufacturer: %s\n", d.PlatformManufacturer) fmt.Fprintf(w, "\tPlatformModel: %s\n", d.PlatformModel) fmt.Fprintf(w, "\tPlatformVersion: %s\n", d.PlatformVersion) fmt.Fprintf(w, "\tFirmwareManufacturer: %s\n", d.FirmwareManufacturer) fmt.Fprintf(w, "\tFirmwareManufacturerId: %d\n", d.FirmwareManufacturerId) fmt.Fprintf(w, "\tFirmwareVersion: %s\n", d.FirmwareVersion) fmt.Fprintf(w, "}") return w.String() } func (e *SP800_155_PlatformIdEventData2) Bytes() []byte { w := new(bytes.Buffer) if err := e.Write(w); err != nil { panic(err) } return w.Bytes() } func (d *SP800_155_PlatformIdEventData2) Write(w io.Writer) error { var signature [16]byte copy(signature[:], []byte("SP800-155 Event2")) if _, err := w.Write(signature[:]); err != nil { return err } if err := binary.Write(w, binary.LittleEndian, d.PlatformManufacturerId); err != nil { return err } if _, err := w.Write(d.ReferenceManifestGuid[:]); err != nil { return err } if err := writeLengthPrefixed[uint8](w, NullTerminatedStringEventData(d.PlatformManufacturer).Bytes()); err != nil { return err } if err := writeLengthPrefixed[uint8](w, NullTerminatedStringEventData(d.PlatformModel).Bytes()); err != nil { return err } if err := writeLengthPrefixed[uint8](w, NullTerminatedStringEventData(d.PlatformVersion).Bytes()); err != nil { return err } if err := writeLengthPrefixed[uint8](w, NullTerminatedStringEventData(d.FirmwareManufacturer).Bytes()); err != nil { return err } if err := binary.Write(w, binary.LittleEndian, d.FirmwareManufacturerId); err != nil { return err } return writeLengthPrefixed[uint8](w, NullTerminatedStringEventData(d.FirmwareVersion).Bytes()) } type LocatorType uint32 const ( LocatorTypeRaw LocatorType = 0 LocatorTypeURI LocatorType = 1 LocatorTypeDevicePath LocatorType = 2 LocatorTypeVariable LocatorType = 3 ) // SP800_155_PlatformIdEventData3 corresponds to the event data for a SP800-155 Event3 // EV_NO_ACTION event type SP800_155_PlatformIdEventData3 struct { PlatformManufacturerId uint32 ReferenceManifestGuid efi.GUID PlatformManufacturer string PlatformModel string PlatformVersion string FirmwareManufacturer string FirmwareManufacturerId uint32 FirmwareVersion string RIMLocatorType LocatorType RIMLocator []byte PlatformCertLocatorType LocatorType PlatformCertLocator []byte } func decodeBIMReferenceManifestEvent3(data []byte, r io.Reader) (*SP800_155_PlatformIdEventData3, error) { d := new(SP800_155_PlatformIdEventData3) if err := binary.Read(r, binary.LittleEndian, &d.PlatformManufacturerId); err != nil { return nil, ioerr.EOFIsUnexpected(err) } guid, err := efi.ReadGUID(r) if err != nil { return nil, ioerr.EOFIsUnexpected(err) } d.ReferenceManifestGuid = guid data, err = readLengthPrefixed[uint8, byte](r) if err != nil { return nil, ioerr.EOFIsUnexpected(err) } str, err := decodeNullTerminatedStringEventData(data) if err != nil { return nil, fmt.Errorf("cannot decode PlatformManufacturer: %w", err) } d.PlatformManufacturer = string(str) data, err = readLengthPrefixed[uint8, byte](r) if err != nil { return nil, ioerr.EOFIsUnexpected(err) } str, err = decodeNullTerminatedStringEventData(data) if err != nil { return nil, fmt.Errorf("cannot decode PlatformModel: %w", err) } d.PlatformModel = string(str) data, err = readLengthPrefixed[uint8, byte](r) if err != nil { return nil, ioerr.EOFIsUnexpected(err) } str, err = decodeNullTerminatedStringEventData(data) if err != nil { return nil, fmt.Errorf("cannot decode PlatformVersion: %w", err) } d.PlatformVersion = string(data) data, err = readLengthPrefixed[uint8, byte](r) if err != nil { return nil, ioerr.EOFIsUnexpected(err) } str, err = decodeNullTerminatedStringEventData(data) if err != nil { return nil, fmt.Errorf("cannot decode FirmwareManufacturer: %w", err) } d.FirmwareManufacturer = string(str) if err := binary.Read(r, binary.LittleEndian, &d.FirmwareManufacturerId); err != nil { return nil, ioerr.EOFIsUnexpected(err) } data, err = readLengthPrefixed[uint8, byte](r) if err != nil { return nil, ioerr.EOFIsUnexpected(err) } str, err = decodeNullTerminatedStringEventData(data) if err != nil { return nil, fmt.Errorf("cannot decode FirmwareVersion: %w", err) } d.FirmwareVersion = string(str) if err := binary.Read(r, binary.LittleEndian, &d.RIMLocatorType); err != nil { return nil, ioerr.EOFIsUnexpected(err) } data, err = readLengthPrefixed[uint32, byte](r) if err != nil { return nil, ioerr.EOFIsUnexpected(err) } d.RIMLocator = data if err := binary.Read(r, binary.LittleEndian, &d.PlatformCertLocatorType); err != nil { return nil, ioerr.EOFIsUnexpected(err) } data, err = readLengthPrefixed[uint32, byte](r) if err != nil { return nil, ioerr.EOFIsUnexpected(err) } d.PlatformCertLocator = data return d, nil } func (d *SP800_155_PlatformIdEventData3) String() string { w := new(bytes.Buffer) fmt.Fprintf(w, "SP800_155_PlatformId_Event3{") fmt.Fprintf(w, "\tPlatformManufacturerId: %d\n", d.PlatformManufacturerId) fmt.Fprintf(w, "\tReferenceManifestGUID: %v\n", d.ReferenceManifestGuid) fmt.Fprintf(w, "\tPlatformManufacturer: %s\n", d.PlatformManufacturer) fmt.Fprintf(w, "\tPlatformModel: %s\n", d.PlatformModel) fmt.Fprintf(w, "\tPlatformVersion: %s\n", d.PlatformVersion) fmt.Fprintf(w, "\tFirmwareManufacturer: %s\n", d.FirmwareManufacturer) fmt.Fprintf(w, "\tFirmwareManufacturerId: %d\n", d.FirmwareManufacturerId) fmt.Fprintf(w, "\tFirmwareVersion: %s\n", d.FirmwareVersion) printLocator := func(name string, t LocatorType, data []byte) { switch t { case LocatorTypeRaw: fmt.Fprintf(w, "\t%s:\n", name) case LocatorTypeURI: fmt.Fprintf(w, "\t%s:uri:%s\n", name, string(bytes.TrimSuffix(data, []byte{0x00}))) case LocatorTypeDevicePath: path, err := efi.ReadDevicePath(bytes.NewReader(data)) if err != nil { fmt.Fprintf(w, "\t%s:devicepath:%v\n", name, err) } else { fmt.Fprintf(w, "\t%s:devicepath:%s\n", name, path) } case LocatorTypeVariable: r := bytes.NewReader(data) guid, err := efi.ReadGUID(r) if err != nil { fmt.Fprintf(w, "\t%s:variable:%v\n", name, err) } name, err := io.ReadAll(r) if err != nil { fmt.Fprintf(w, "\t%s:variable:%v\n", name, err) } name = bytes.TrimSuffix(name, []byte{0x00}) fmt.Fprintf(w, "\t%s:variable:%v-%s\n", name, guid, string(name)) } } printLocator("RIMLocator", d.RIMLocatorType, d.RIMLocator) printLocator("PlatformCertLocator", d.PlatformCertLocatorType, d.PlatformCertLocator) fmt.Fprintf(w, "}") return w.String() } func (e *SP800_155_PlatformIdEventData3) Bytes() []byte { w := new(bytes.Buffer) if err := e.Write(w); err != nil { panic(err) } return w.Bytes() } func (d *SP800_155_PlatformIdEventData3) Write(w io.Writer) error { var signature [16]byte copy(signature[:], []byte("SP800-155 Event3")) if _, err := w.Write(signature[:]); err != nil { return err } if err := binary.Write(w, binary.LittleEndian, d.PlatformManufacturerId); err != nil { return err } if _, err := w.Write(d.ReferenceManifestGuid[:]); err != nil { return err } if err := writeLengthPrefixed[uint8](w, NullTerminatedStringEventData(d.PlatformManufacturer).Bytes()); err != nil { return err } if err := writeLengthPrefixed[uint8](w, NullTerminatedStringEventData(d.PlatformModel).Bytes()); err != nil { return err } if err := writeLengthPrefixed[uint8](w, NullTerminatedStringEventData(d.PlatformVersion).Bytes()); err != nil { return err } if err := writeLengthPrefixed[uint8](w, NullTerminatedStringEventData(d.FirmwareManufacturer).Bytes()); err != nil { return err } if err := binary.Write(w, binary.LittleEndian, d.FirmwareManufacturerId); err != nil { return err } if err := writeLengthPrefixed[uint8](w, NullTerminatedStringEventData(d.FirmwareVersion).Bytes()); err != nil { return err } if err := binary.Write(w, binary.LittleEndian, d.RIMLocatorType); err != nil { return err } if err := writeLengthPrefixed[uint32](w, d.RIMLocator); err != nil { return err } if err := binary.Write(w, binary.LittleEndian, d.PlatformCertLocatorType); err != nil { return err } return writeLengthPrefixed[uint32](w, d.PlatformCertLocator) } // EFIVariableData corresponds to the EFI_VARIABLE_DATA type and is the event data associated with the measurement of an // EFI variable. This is not informative. type EFIVariableData struct { VariableName efi.GUID UnicodeName string VariableData []byte } // https://trustedcomputinggroup.org/wp-content/uploads/TCG_EFI_Platform_1_22_Final_-v15.pdf (section 7.8 "Measuring EFI Variables") // https://trustedcomputinggroup.org/wp-content/uploads/TCG_PCClientSpecPlat_TPM_2p0_1p04_pub.pdf (section 9.2.6 "Measuring UEFI Variables") func decodeEventDataEFIVariable(data []byte) (*EFIVariableData, error) { r := bytes.NewReader(data) d := new(EFIVariableData) variableName, err := efi.ReadGUID(r) if err != nil { return nil, ioerr.EOFIsUnexpected(err) } d.VariableName = variableName var unicodeNameLength uint64 if err := binary.Read(r, binary.LittleEndian, &unicodeNameLength); err != nil { return nil, ioerr.EOFIsUnexpected(err) } var variableDataLength uint64 if err := binary.Read(r, binary.LittleEndian, &variableDataLength); err != nil { return nil, ioerr.EOFIsUnexpected(err) } ucs2Name := make([]uint16, unicodeNameLength) if err := binary.Read(r, binary.LittleEndian, &ucs2Name); err != nil { return nil, ioerr.EOFIsUnexpected(err) } d.UnicodeName = efi.ConvertUTF16ToUTF8(ucs2Name) d.VariableData = make([]byte, variableDataLength) if _, err := io.ReadFull(r, d.VariableData); err != nil { return nil, ioerr.EOFIsUnexpected(err) } return d, nil } func (e *EFIVariableData) String() string { return fmt.Sprintf("UEFI_VARIABLE_DATA{ VariableName: %s, UnicodeName: \"%s\", VariableData:\n\t%s}", e.VariableName, e.UnicodeName, strings.Replace(hex.Dump(e.VariableData), "\n", "\n\t", -1)) } func (e *EFIVariableData) Bytes() []byte { w := new(bytes.Buffer) if err := e.Write(w); err != nil { panic(err) } return w.Bytes() } func (e *EFIVariableData) Write(w io.Writer) error { if _, err := w.Write(e.VariableName[:]); err != nil { return err } if err := binary.Write(w, binary.LittleEndian, uint64(utf8.RuneCount([]byte(e.UnicodeName)))); err != nil { return err } if err := binary.Write(w, binary.LittleEndian, uint64(len(e.VariableData))); err != nil { return err } if err := binary.Write(w, binary.LittleEndian, efi.ConvertUTF8ToUCS2(e.UnicodeName)); err != nil { return err } _, err := w.Write(e.VariableData) return err } // ComputeEFIVariableDataDigest computes the EFI_VARIABLE_DATA digest associated with the supplied // parameters func ComputeEFIVariableDataDigest(alg crypto.Hash, name string, guid efi.GUID, data []byte) []byte { h := alg.New() varData := EFIVariableData{VariableName: guid, UnicodeName: name, VariableData: data} varData.Write(h) return h.Sum(nil) } type rawEFIImageLoadEventHdr struct { LocationInMemory efi.PhysicalAddress LengthInMemory uint64 LinkTimeAddress uint64 LengthOfDevicePath uint64 } // EFIImageLoadEvent corresponds to UEFI_IMAGE_LOAD_EVENT and is informative. type EFIImageLoadEvent struct { LocationInMemory efi.PhysicalAddress LengthInMemory uint64 LinkTimeAddress uint64 DevicePath efi.DevicePath } // https://trustedcomputinggroup.org/wp-content/uploads/TCG_EFI_Platform_1_22_Final_-v15.pdf (section 4 "Measuring PE/COFF Image Files") // https://trustedcomputinggroup.org/wp-content/uploads/TCG_PCClientSpecPlat_TPM_2p0_1p04_pub.pdf (section 9.2.3 "UEFI_IMAGE_LOAD_EVENT Structure") func decodeEventDataEFIImageLoad(data []byte) (*EFIImageLoadEvent, error) { r := bytes.NewReader(data) var e rawEFIImageLoadEventHdr if err := binary.Read(r, binary.LittleEndian, &e); err != nil { return nil, ioerr.EOFIsUnexpected(err) } lr := io.LimitReader(r, int64(e.LengthOfDevicePath)) path, err := efi.ReadDevicePath(lr) if err != nil { return nil, ioerr.EOFIsUnexpected(err) } return &EFIImageLoadEvent{ LocationInMemory: e.LocationInMemory, LengthInMemory: e.LengthInMemory, LinkTimeAddress: e.LinkTimeAddress, DevicePath: path}, nil } func (e *EFIImageLoadEvent) String() string { return fmt.Sprintf("UEFI_IMAGE_LOAD_EVENT{ ImageLocationInMemory: 0x%016x, ImageLengthInMemory: %d, "+ "ImageLinkTimeAddress: 0x%016x, DevicePath: %s }", e.LocationInMemory, e.LengthInMemory, e.LinkTimeAddress, e.DevicePath) } func (e *EFIImageLoadEvent) Bytes() []byte { w := new(bytes.Buffer) if err := e.Write(w); err != nil { panic(err) } return w.Bytes() } func (e *EFIImageLoadEvent) Write(w io.Writer) error { dpw := new(bytes.Buffer) if err := e.DevicePath.Write(dpw); err != nil { return xerrors.Errorf("cannot write device path: %w", err) } ev := rawEFIImageLoadEventHdr{ LocationInMemory: e.LocationInMemory, LengthInMemory: e.LengthInMemory, LinkTimeAddress: e.LinkTimeAddress, LengthOfDevicePath: uint64(dpw.Len())} if err := binary.Write(w, binary.LittleEndian, &ev); err != nil { return err } _, err := dpw.WriteTo(w) return err } // EFIGPTData corresponds to UEFI_GPT_DATA and is the event data for EV_EFI_GPT_EVENT and // EV_EFI_GPT_EVENT2 events. When used for EV_EFI_GPT_EVENT2 events, the platform firmware // zeroes out the DiskGUID field in the header and the UniquePartitionGUID field in each // partition entry. type EFIGPTData struct { Hdr efi.PartitionTableHeader Partitions []*efi.PartitionEntry } func decodeEventDataEFIGPT(data []byte) (*EFIGPTData, error) { r := bytes.NewReader(data) d := new(EFIGPTData) // UEFI_GPT_DATA.UEFIPartitionHeader hdr, err := efi.ReadPartitionTableHeader(r, false) if err != nil { return nil, ioerr.EOFIsUnexpected(err) } d.Hdr = *hdr // UEFI_GPT_DATA.NumberOfPartitions var numberOfParts uint64 if err := binary.Read(r, binary.LittleEndian, &numberOfParts); err != nil { return nil, ioerr.EOFIsUnexpected(err) } if numberOfParts > math.MaxUint32 { return nil, errors.New("invalid EFI_GPT_DATA.NumberOfPartitons") } // UEFI_GPT_DATA.Partitions partitions, err := efi.ReadPartitionEntries(r, uint32(numberOfParts), hdr.SizeOfPartitionEntry) if err != nil { return nil, ioerr.EOFIsUnexpected(err) } d.Partitions = partitions return d, nil } func (e *EFIGPTData) String() string { var builder bytes.Buffer fmt.Fprintf(&builder, "UEFI_GPT_DATA{\n\tHdr: %s,\n\tPartitions: [", &e.Hdr) for _, part := range e.Partitions { fmt.Fprintf(&builder, "\n\t\t%s", part) } fmt.Fprintf(&builder, "\n\t]\n}") return builder.String() } func (e *EFIGPTData) Bytes() []byte { w := new(bytes.Buffer) if err := e.Write(w); err != nil { panic(err) } return w.Bytes() } func (e *EFIGPTData) Write(w io.Writer) error { if err := e.Hdr.Write(w); err != nil { return err } if err := binary.Write(w, binary.LittleEndian, uint64(len(e.Partitions))); err != nil { return err } for _, entry := range e.Partitions { w2 := new(bytes.Buffer) if err := entry.Write(w2); err != nil { return err } if w2.Len() > int(e.Hdr.SizeOfPartitionEntry) { return errors.New("SizeOfPartitionEntry too small") } b := make([]byte, e.Hdr.SizeOfPartitionEntry) copy(b, w2.Bytes()) if _, err := w.Write(b); err != nil { return err } } return nil } // ComputeEFIGPTDataDigest computes a UEFI_GPT_DATA digest from the supplied data. func ComputeEFIGPTDataDigest(alg crypto.Hash, data *EFIGPTData) ([]byte, error) { h := alg.New() if err := data.Write(h); err != nil { return nil, err } return h.Sum(nil), nil } // ComputeEFIGPT2DataDigest computes a UEFI_GPT_DATA digest from the supplied data, // for the new EV_EFI_GPT_EVENT2 event type, which zeroes out personally identifiable // information (the disk GUID and each individual partition unique partition GUID). func ComputeEFIGPT2DataDigest(alg crypto.Hash, data *EFIGPTData) ([]byte, error) { buf := new(bytes.Buffer) if err := data.Write(buf); err != nil { return nil, err } data2, err := decodeEventDataEFIGPT(buf.Bytes()) if err != nil { return nil, err } data2.Hdr.DiskGUID = efi.GUID{} for _, entry := range data2.Partitions { entry.UniquePartitionGUID = efi.GUID{} } h := alg.New() if err := data2.Write(h); err != nil { return nil, err } return h.Sum(nil), nil } // EFIConfigurationTable corresponds to UEFI_CONFIGURATION_TABLE type EFIConfigurationTable struct { VendorGuid efi.GUID VendorTable uintptr } func (t EFIConfigurationTable) String() string { return fmt.Sprintf("UEFI_CONFIGURATION_TABLE{VendorGuid: %v, VendorTable: %#x}", t.VendorGuid, t.VendorTable) } func (t *EFIConfigurationTable) Write(w io.Writer) error { if _, err := w.Write(t.VendorGuid[:]); err != nil { return err } switch ptrSize() { case 4: return binary.Write(w, binary.LittleEndian, uint32(t.VendorTable)) case 8: return binary.Write(w, binary.LittleEndian, uint64(t.VendorTable)) default: panic("not reached") } } // EFIHandoffTablePointers corresponds to UEFI_HANDOFF_TABLE_POINTERS and is the event data for EV_EFI_HANDOFF_TABLES events. // This is informative. type EFIHandoffTablePointers struct { TableEntries []EFIConfigurationTable } func decodeEventDataEFIHandoffTablePointers(data []byte) (out *EFIHandoffTablePointers, err error) { r := bytes.NewReader(data) out = new(EFIHandoffTablePointers) var nTables uint64 if err := binary.Read(r, binary.LittleEndian, &nTables); err != nil { return nil, ioerr.EOFIsUnexpected(err) } out.TableEntries = make([]EFIConfigurationTable, 0, nTables) for i := uint64(0); i < nTables; i++ { vendorGuid, err := efi.ReadGUID(r) if err != nil { return nil, ioerr.EOFIsUnexpected(err) } var vendorTable uintptr switch ptrSize() { case 4: var x uint32 if err := binary.Read(r, binary.LittleEndian, &x); err != nil { return nil, ioerr.EOFIsUnexpected(err) } vendorTable = uintptr(x) case 8: var x uint64 if err := binary.Read(r, binary.LittleEndian, &x); err != nil { return nil, ioerr.EOFIsUnexpected(err) } vendorTable = uintptr(x) default: panic("not reached") } out.TableEntries = append(out.TableEntries, EFIConfigurationTable{ VendorGuid: vendorGuid, VendorTable: vendorTable, }) } return out, nil } func (e *EFIHandoffTablePointers) String() string { var builder bytes.Buffer fmt.Fprintf(&builder, "UEFI_HANDOFF_TABLE_POINTERS{\n\tTableEntries: [") for _, entry := range e.TableEntries { fmt.Fprintf(&builder, "\n\t\t%s", entry) } fmt.Fprintf(&builder, "\n\t]\n}") return builder.String() } func (e *EFIHandoffTablePointers) Bytes() []byte { w := new(bytes.Buffer) if err := e.Write(w); err != nil { panic(err) } return w.Bytes() } func (e *EFIHandoffTablePointers) Write(w io.Writer) error { if err := binary.Write(w, binary.LittleEndian, uint64(len(e.TableEntries))); err != nil { return err } for _, table := range e.TableEntries { if err := table.Write(w); err != nil { return err } } return nil } // EFIHandoffTablePointers2 corresponds to UEFI_HANDOFF_TABLE_POINTERS2 and is the event data for EV_EFI_HANDOFF_TABLES2 events. // This is informative. type EFIHandoffTablePointers2 struct { TableDescription string TableEntries []EFIConfigurationTable } func decodeEventDataEFIHandoffTablePointers2(data []byte) (out *EFIHandoffTablePointers2, err error) { r := bytes.NewReader(data) out = new(EFIHandoffTablePointers2) desc, err := readLengthPrefixed[uint8, byte](r) if err != nil { return nil, ioerr.EOFIsUnexpected(err) } // Make sure we have valid printable ASCII if !isPrintableASCII(desc, false) { return nil, fmt.Errorf("TableDescription does not contain printable ASCII that is not NULL terminated") } out.TableDescription = string(desc) var nTables uint64 if err := binary.Read(r, binary.LittleEndian, &nTables); err != nil { return nil, ioerr.EOFIsUnexpected(err) } out.TableEntries = make([]EFIConfigurationTable, 0, nTables) for i := uint64(0); i < nTables; i++ { vendorGuid, err := efi.ReadGUID(r) if err != nil { return nil, ioerr.EOFIsUnexpected(err) } var vendorTable uintptr switch ptrSize() { case 4: var x uint32 if err := binary.Read(r, binary.LittleEndian, &x); err != nil { return nil, ioerr.EOFIsUnexpected(err) } vendorTable = uintptr(x) case 8: var x uint64 if err := binary.Read(r, binary.LittleEndian, &x); err != nil { return nil, ioerr.EOFIsUnexpected(err) } vendorTable = uintptr(x) default: panic("not reached") } out.TableEntries = append(out.TableEntries, EFIConfigurationTable{ VendorGuid: vendorGuid, VendorTable: vendorTable, }) } return out, nil } func (e *EFIHandoffTablePointers2) String() string { var builder bytes.Buffer fmt.Fprintf(&builder, "UEFI_HANDOFF_TABLE_POINTERS2{\n\tTableDescription: %q,\n\tTableEntries: [", e.TableDescription) for _, entry := range e.TableEntries { fmt.Fprintf(&builder, "\n\t\t%s", entry) } fmt.Fprintf(&builder, "\n\t]\n}") return builder.String() } func (e *EFIHandoffTablePointers2) Bytes() []byte { w := new(bytes.Buffer) if err := e.Write(w); err != nil { panic(err) } return w.Bytes() } func (e *EFIHandoffTablePointers2) Write(w io.Writer) error { if err := writeLengthPrefixed[uint8](w, []byte(e.TableDescription)); err != nil { return err } if err := binary.Write(w, binary.LittleEndian, uint64(len(e.TableEntries))); err != nil { return err } for _, table := range e.TableEntries { if err := table.Write(w); err != nil { return err } } return nil } // EFIPlatformFirmwareBlob corresponds to UEFI_PLATFORM_FIRMWARE_BLOB and is the event data for EV_EFI_PLATFORM_FIRMWARE_BLOB // and some EV_POST_CODE events. This is informative. type EFIPlatformFirmwareBlob struct { BlobBase efi.PhysicalAddress BlobLength uint64 } func decodeEventDataEFIPlatformFirmwareBlob(data []byte) (*EFIPlatformFirmwareBlob, error) { r := bytes.NewReader(data) d := new(EFIPlatformFirmwareBlob) if err := binary.Read(r, binary.LittleEndian, &d.BlobBase); err != nil { return nil, ioerr.EOFIsUnexpected(err) } if err := binary.Read(r, binary.LittleEndian, &d.BlobLength); err != nil { return nil, ioerr.EOFIsUnexpected(err) } return d, nil } func (b *EFIPlatformFirmwareBlob) String() string { return fmt.Sprintf("UEFI_PLATFORM_FIRMWARE_BLOB{BlobBase: %#x, BlobLength:%d}", b.BlobBase, b.BlobLength) } func (e *EFIPlatformFirmwareBlob) Bytes() []byte { w := new(bytes.Buffer) if err := e.Write(w); err != nil { panic(err) } return w.Bytes() } func (b *EFIPlatformFirmwareBlob) Write(w io.Writer) error { if err := binary.Write(w, binary.LittleEndian, b.BlobBase); err != nil { return err } if err := binary.Write(w, binary.LittleEndian, b.BlobLength); err != nil { return err } return nil } // EFIPlatformFirmwareBlob2 corresponds to UEFI_PLATFORM_FIRMWARE_BLOB2 and is the event data for // EV_EFI_PLATFORM_FIRMWARE_BLOB2 and some EV_POST_CODE2 events. This is informative. type EFIPlatformFirmwareBlob2 struct { BlobDescription string BlobBase efi.PhysicalAddress BlobLength uint64 } func decodeEventDataEFIPlatformFirmwareBlob2(data []byte) (*EFIPlatformFirmwareBlob2, error) { r := bytes.NewReader(data) d := new(EFIPlatformFirmwareBlob2) desc, err := readLengthPrefixed[uint8, byte](r) if err != nil { return nil, ioerr.EOFIsUnexpected(err) } // Make sure we have valid printable ASCII if !isPrintableASCII(desc, false) { return nil, fmt.Errorf("BlobDescription does not contain printable ASCII that is not NULL terminated") } d.BlobDescription = string(desc) if err := binary.Read(r, binary.LittleEndian, &d.BlobBase); err != nil { return nil, ioerr.EOFIsUnexpected(err) } if err := binary.Read(r, binary.LittleEndian, &d.BlobLength); err != nil { return nil, ioerr.EOFIsUnexpected(err) } return d, nil } func (b *EFIPlatformFirmwareBlob2) String() string { return fmt.Sprintf("UEFI_PLATFORM_FIRMWARE_BLOB2{BlobDescription:%q, BlobBase: %#x, BlobLength:%d}", b.BlobDescription, b.BlobBase, b.BlobLength) } func (e *EFIPlatformFirmwareBlob2) Bytes() []byte { w := new(bytes.Buffer) if err := e.Write(w); err != nil { panic(err) } return w.Bytes() } func (b *EFIPlatformFirmwareBlob2) Write(w io.Writer) error { if err := writeLengthPrefixed[uint8](w, []byte(b.BlobDescription)); err != nil { return err } if err := binary.Write(w, binary.LittleEndian, b.BlobBase); err != nil { return err } if err := binary.Write(w, binary.LittleEndian, b.BlobLength); err != nil { return err } return nil } ./github.com/canonical/tcglog-parser/types.go0000664000000000000000000000601000000000000016333 0ustar00// Copyright 2019 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package tcglog import ( "fmt" "github.com/canonical/go-tpm2" ) // EventType corresponds to the type of an event in an event log. type EventType uint32 // DigestMap is a map of algorithms to digests. type DigestMap map[tpm2.HashAlgorithmId]tpm2.Digest func (e EventType) String() string { switch e { case EventTypePrebootCert: return "EV_PREBOOT_CERT" case EventTypePostCode: return "EV_POST_CODE" case EventTypeNoAction: return "EV_NO_ACTION" case EventTypeSeparator: return "EV_SEPARATOR" case EventTypeAction: return "EV_ACTION" case EventTypeEventTag: return "EV_EVENT_TAG" case EventTypeSCRTMContents: return "EV_S_CRTM_CONTENTS" case EventTypeSCRTMVersion: return "EV_S_CRTM_VERSION" case EventTypeCPUMicrocode: return "EV_CPU_MICROCODE" case EventTypePlatformConfigFlags: return "EV_PLATFORM_CONFIG_FLAGS" case EventTypeTableOfDevices: return "EV_TABLE_OF_DEVICES" case EventTypeCompactHash: return "EV_COMPACT_HASH" case EventTypeIPL: return "EV_IPL" case EventTypeIPLPartitionData: return "EV_IPL_PARTITION_DATA" case EventTypeNonhostCode: return "EV_NONHOST_CODE" case EventTypeNonhostConfig: return "EV_NONHOST_CONFIG" case EventTypeNonhostInfo: return "EV_NONHOST_INFO" case EventTypeOmitBootDeviceEvents: return "EV_OMIT_BOOT_DEVICE_EVENTS" case EventTypeEFIVariableDriverConfig: return "EV_EFI_VARIABLE_DRIVER_CONFIG" case EventTypeEFIVariableBoot: return "EV_EFI_VARIABLE_BOOT" case EventTypeEFIBootServicesApplication: return "EV_EFI_BOOT_SERVICES_APPLICATION" case EventTypeEFIBootServicesDriver: return "EV_EFI_BOOT_SERVICES_DRIVER" case EventTypeEFIRuntimeServicesDriver: return "EV_EFI_RUNTIME_SERVICES_DRIVER" case EventTypeEFIGPTEvent: return "EF_EFI_GPT_EVENT" case EventTypeEFIAction: return "EV_EFI_ACTION" case EventTypeEFIPlatformFirmwareBlob: return "EV_EFI_PLATFORM_FIRMWARE_BLOB" case EventTypeEFIHandoffTables: return "EV_EFI_HANDOFF_TABLES" case EventTypeEFIPlatformFirmwareBlob2: return "EV_EFI_PLATFORM_FIRMWARE_BLOB2" case EventTypeEFIHandoffTables2: return "EV_EFI_HANDOFF_TABLES2" case EventTypeEFIVariableBoot2: return "EV_EFI_VARIABLE_BOOT2" case EventTypeEFIHCRTMEvent: return "EV_EFI_HCRTM_EVENT" case EventTypeEFIVariableAuthority: return "EV_EFI_VARIABLE_AUTHORITY" case EventTypeEFISPDMFirmwareBlob: return "EV_EFI_SPDM_FIRMWARE_BLOB" case EventTypeEFISPDMFirmwareConfig: return "EV_EFI_SPDM_FIRMWARE_CONFIG" default: return fmt.Sprintf("%08x", uint32(e)) } } func (e EventType) Format(s fmt.State, f rune) { switch f { case 's', 'v': fmt.Fprintf(s, "%s", e.String()) default: fmt.Fprintf(s, makeDefaultFormatter(s, f), uint32(e)) } } // AlgorithmListId is a slice of tpm2.HashAlgorithmId values, type AlgorithmIdList []tpm2.HashAlgorithmId func (l AlgorithmIdList) Contains(a tpm2.HashAlgorithmId) bool { for _, alg := range l { if alg == a { return true } } return false } ./github.com/canonical/tcglog-parser/utils.go0000664000000000000000000000635600000000000016344 0ustar00// Copyright 2019 Canonical Ltd. // Licensed under the LGPLv3 with static-linking exception. // See LICENCE file for details. package tcglog import ( "bytes" "encoding/binary" "errors" "fmt" "io" "unicode" "unicode/utf16" "unicode/utf8" "unsafe" "golang.org/x/exp/constraints" ) func makeDefaultFormatter(s fmt.State, f rune) string { var builder bytes.Buffer builder.WriteString("%%") for _, flag := range [...]int{'+', '-', '#', ' ', '0'} { if s.Flag(flag) { fmt.Fprintf(&builder, "%c", flag) } } if width, ok := s.Width(); ok { fmt.Fprintf(&builder, "%d", width) } if prec, ok := s.Precision(); ok { fmt.Fprintf(&builder, ".%d", prec) } fmt.Fprintf(&builder, "%c", f) return builder.String() } func ptrSize() int { sz := unsafe.Sizeof(uintptr(0)) switch sz { case 4, 8: return int(sz) default: panic("unexpected pointer size") } } func isPrintableASCII(data []byte, nullTerminated bool) bool { if nullTerminated && len(data) == 0 { return false } for len(data) > 0 { // Pop the next bytee c := data[0] data = data[1:] // If we're expecting a NULL terminated string, make sure the // final character is actually NULL if nullTerminated && len(data) == 0 && c == 0x00 { // Should terminate the loop and we return true continue } // Try to decode the single byte. This will return RuneError // if the supplied byte isn't ASCII. r, _ := utf8.DecodeRune([]byte{c}) if r == utf8.RuneError { return false } // Check printable if !unicode.IsPrint(r) { return false } } return true } func isPrintableUCS2(data []byte, nullTerminated bool) bool { if len(data)%2 != 0 { return false } if nullTerminated && len(data) == 0 { return false } r := bytes.NewReader(data) ucs2Data := make([]uint16, len(data)/2) if err := binary.Read(r, binary.LittleEndian, &ucs2Data); err != nil { return false } for len(ucs2Data) > 0 { // Pop the next character c := ucs2Data[0] ucs2Data = ucs2Data[1:] // If we're expecting a NULL terminated string, make sure the // final character is actually NULL if nullTerminated && len(ucs2Data) == 0 && c == 0 { // Should terminate the loop and we return true continue } // Try to decode the single character. If this is the start of a surrogate // pair, it will return a single rune equal to unicode.ReplacementChar rs := utf16.Decode([]uint16{c}) if len(rs) != 1 { // Should have returned at least one rune return false } r := rs[0] if r == unicode.ReplacementChar { // Not valid UCS2, but probably UTF-16 return false } // Check printable if !unicode.IsPrint(r) { return false } } return true } func readLengthPrefixed[T constraints.Unsigned, V any](r io.Reader) ([]V, error) { var n T if err := binary.Read(r, binary.LittleEndian, &n); err != nil { return nil, err } data := make([]V, n) if err := binary.Read(r, binary.LittleEndian, &data); err != nil { return nil, err } return data, nil } func writeLengthPrefixed[T constraints.Unsigned, V any](w io.Writer, data []V) error { n := uint64(len(data)) if n != uint64(T(n)) { return errors.New("size overflow") } if err := binary.Write(w, binary.LittleEndian, T(n)); err != nil { return err } return binary.Write(w, binary.LittleEndian, data) } ./github.com/godbus/0000775000000000000000000000000000000000000011426 5ustar00./github.com/godbus/dbus/0000775000000000000000000000000000000000000012363 5ustar00./github.com/godbus/dbus/.travis.yml0000664000000000000000000000076700000000000014506 0ustar00dist: precise language: go go_import_path: github.com/godbus/dbus sudo: true go: - 1.6.3 - 1.7.3 - tip env: global: matrix: - TARGET=amd64 - TARGET=arm64 - TARGET=arm - TARGET=386 - TARGET=ppc64le matrix: fast_finish: true allow_failures: - go: tip exclude: - go: tip env: TARGET=arm - go: tip env: TARGET=arm64 - go: tip env: TARGET=386 - go: tip env: TARGET=ppc64le addons: apt: packages: - dbus - dbus-x11 before_install: ./github.com/godbus/dbus/CONTRIBUTING.md0000664000000000000000000000271400000000000014620 0ustar00# How to Contribute ## Getting Started - Fork the repository on GitHub - Read the [README](README.markdown) for build and test instructions - Play with the project, submit bugs, submit patches! ## Contribution Flow This is a rough outline of what a contributor's workflow looks like: - Create a topic branch from where you want to base your work (usually master). - Make commits of logical units. - Make sure your commit messages are in the proper format (see below). - Push your changes to a topic branch in your fork of the repository. - Make sure the tests pass, and add any new tests as appropriate. - Submit a pull request to the original repository. Thanks for your contributions! ### Format of the Commit Message We follow a rough convention for commit messages that is designed to answer two questions: what changed and why. The subject line should feature the what and the body of the commit should describe the why. ``` scripts: add the test-cluster command this uses tmux to setup a test cluster that you can easily kill and start for debugging. Fixes #38 ``` The format can be described more formally as follows: ``` :