From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (NAM10-DM6-obe.outbound.protection.outlook.com [40.107.93.64]) by mx.groups.io with SMTP id smtpd.web11.88221.1682926838709013220 for ; Mon, 01 May 2023 00:40:39 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@nvidia.com header.s=selector2 header.b=q/2WnsH4; spf=permerror, err=parse error for token &{10 18 %{i}._ip.%{h}._ehlo.%{d}._spf.vali.email}: invalid domain name (domain: nvidia.com, ip: 40.107.93.64, mailfrom: nicklew@nvidia.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=iHZnejNKeYvcvxqBuhuXAjLBOHqhkRE/ZBBtlovcToV/ta+bEvZTR4ZKLJX9BkPLyxtfiOqws561ZsR2UcLetUoVcgUyK/X14QQ84icxv3WarNFU53cl7UxrhISkOgEgfRWz2lXYypryfcYKB0FfR7xx6lA5L1li8GZjLP1afNySJqboy5ttn4g2JwbXjIkVQCu4Uo10EiTbzBrZ2fDtl8BkJF41vZJJw+2HluIqx/5Fx/BcJg25SylWbFeooUOum3R9y7QjYDBLSYODdiJzvCZbx8Y4kkZ4a/mBYZeOlDnTR9B1eBP6KxnEvM49Bvb1YJoeuoybyQTRr3lDz0STyw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=0CAeYD0wylryXwgKX5X7CfadlhyVc4VsuxHjrRo1MX4=; b=XFH8N8SbyYUEr2bZAq5eqsHHOjyu/YkDL4Lh4qVl4kxq2aYz6LQtgyyEKiOCdLstU3DW0xbwfhtLzarrWIswzAJk2sSQIJd+kYnzvo+Pdud+lOj4U/K3Dskj/fbHnJ9+ubxTU3N3W0I5R4T5B/22oSFXlQbcmvCf5IyMpFgHa9DjVsGuM9pYMFPVA9OF29F9ekIZiTAMirFEtzhEKh29zrIKzkgJfU594mpEuMzpHleT6xG6ZZmXQaSFLVTgiR6FR+ZxSJZy82v0ahl07F/bo+4PbFTU04qLMASToS9XXbjzFJ5mDIqpbRiylPHyeBla84l0SdkdwjrZZIDvnNZC6Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=0CAeYD0wylryXwgKX5X7CfadlhyVc4VsuxHjrRo1MX4=; b=q/2WnsH40GYHQpCKYmM2vwCNDgEbMxgnpCraxTh/AW5DnV/G+8aXmNYnLUnXL9E1eEBqjonx8SkxxtBBMBD7cWloI7yt1PS3O7nmyt7Cn54XQYlhQHt4ovXfCM6jI+Nv8daAxgjj+hWbP6Qf8RyQZ2HdNjekT5vIJ8GpHHSINAPSkcB7NI08wyTWCy6FspT+Oi2XAsWxku8Src44UPGqU/RlN1GyYOuo25vplhR0b/8tBP3nv7J5FeEQ+uLI5Wg4yDNi932M2N5Mgu9tWQK83/PG3Wh/20dBYJjislMldPFesyTcN5wC7cfMZ1FZ641SMcGJTl8J8kvU//NFkpjMjA== Received: from MW4PR12MB7031.namprd12.prod.outlook.com (2603:10b6:303:1ef::6) by MN0PR12MB5930.namprd12.prod.outlook.com (2603:10b6:208:37d::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6340.28; Mon, 1 May 2023 07:40:32 +0000 Received: from MW4PR12MB7031.namprd12.prod.outlook.com ([fe80::d9df:b45b:2cc1:f017]) by MW4PR12MB7031.namprd12.prod.outlook.com ([fe80::d9df:b45b:2cc1:f017%5]) with mapi id 15.20.6340.028; Mon, 1 May 2023 07:40:31 +0000 From: "Nickle Wang" To: "abner.chang@amd.com" , "devel@edk2.groups.io" CC: Igor Kulchytskyy Subject: Re: [edk2-redfish-client][PATCH] RedfishClientPkg: Initial commit Thread-Topic: [edk2-redfish-client][PATCH] RedfishClientPkg: Initial commit Thread-Index: AQHZe2w0QY8MgDmrKEiOVJ9Di7JjJ69FCXbA Date: Mon, 1 May 2023 07:40:31 +0000 Message-ID: References: <20230430140036.327-1-abner.chang@amd.com> In-Reply-To: <20230430140036.327-1-abner.chang@amd.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MW4PR12MB7031:EE_|MN0PR12MB5930:EE_ x-ms-office365-filtering-correlation-id: d0b31b31-e776-492b-2659-08db4a17579b x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: i2XwMoaS1Wl2CO+eUjwS8YapBH91ZS4NXN6Mxpmi2FCKCG1T855w28JrnJMawjCviSuXuAuf+BsJZCYTYbWpYYgrVmNHJ55ilsJ+neEHA/lQQzf9sovWvSnH/tcEM6jRE1SV/+TmOVVt7qSVyyWpHtNB32ihQF3XIaGME1zLGF4x/i5DHKLew7M7SZY0U4KwQW0sCGyEpYhBApTAKaYejLSs1PRpPyPqfCYZcNwbTKBJEHFx0kfR3I3uIGzpZeJDBDpUzS34+GCj3boLGpZEC4U1KzY1zlu4MFHesbyAVI2U+Cec2ML4SEIV7Bwebdw+xzlZWBAfe932mlgD1q9MbzDzlsuNP1qM6Ht+duGxgZPmpudy1R5FmKxf8HSQ2T0nfOALwO0GtGg5Fgz1XL+7Mg5EPXm071YnlXHa/Z82dftHzrfrrxjlWET07A5B+dfKVPpvjeOl0fzozeNTM0+qK+k3sz6WBm+c69ujMKfTtRMqaH3DecxiO8hZjIvqZJfxoskZgTaug/EoOUvr6G1J7yKV2jLRONr7yva9L588/A0SxuI3HY83+tjGaafongLWaYXIm82odDzBE8BLAs2KBgaKjjpNO0mgm5MB5sIUfQRT5w75Adb3TXqDqWxo5VZoZ9ciUlVbXqZlIMk75FkH1w== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MW4PR12MB7031.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(4636009)(396003)(366004)(136003)(39860400002)(346002)(376002)(451199021)(19627405001)(66899021)(66556008)(4326008)(110136005)(316002)(66446008)(64756008)(91956017)(76116006)(66946007)(66476007)(186003)(9686003)(6506007)(53546011)(38100700002)(86362001)(122000001)(83380400001)(66574015)(8936002)(8676002)(5660300002)(55016003)(45080400002)(478600001)(71200400001)(7696005)(33656002)(40140700001)(166002)(38070700005)(30864003)(2906002)(52536014)(41300700001)(579004)(559001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?Windows-1252?Q?sVLe7WTuCeRih60v5gm0JVEAu3GQJwVw92fOQlG3W10rwgvLYqUScmod?= =?Windows-1252?Q?XRItcZo+unkJruKuIFtI1E6HCVRN0nOVWfml7VFhbS+tfjaPp/KrmfJL?= =?Windows-1252?Q?pIGYvTUm+QvUOe0z0LDrnZ/8OTtc1PL7I1o6wBjOOA3epuzn2jha4FoG?= =?Windows-1252?Q?Ly545Ctn9sxHfzvu/vx4JJA7acWYWpQsGDEoDE1LGnEtr3jsCUrDUsx/?= =?Windows-1252?Q?T120Fcb0/PQqJScwXeRfUh6tazu4EpQ1Rt3eLSJ4IHGE7+mjb6y9usgr?= =?Windows-1252?Q?FdHdGdWka2OBln21mofT4tXeN3TN1kRVsy1q2MGcm00cPgkee/yDwUx8?= =?Windows-1252?Q?aSpu1FHZXZe2TVlJO4f9YEYUp3sRrsQup7wMGbRMFNSRmKBTG6f0y/c9?= =?Windows-1252?Q?eO2liUF5Gg6OIc1+LWW3wZ5ysJ+20ISEho4PSBv4oz1WEKVL6CTwmCzx?= =?Windows-1252?Q?3QmbDBE3KTPeG3yFhYveQBcwimjDKlEn10V2HlASup5bd3Ii8owLmEGU?= =?Windows-1252?Q?lvbx7rWBAM7sR/qNjIABMaL5H02ggn+5gtjqKTJeLCk/SRuVI4sK0ehA?= =?Windows-1252?Q?1aDOcztbGZHI2DS3dU+d8jJ9/YfSgq+2KylOn6pLbQOA/8D6h6sXk1cH?= =?Windows-1252?Q?4d6hXnDyfO5a3U8LCyfyUFltmuN2szKIodKB23VFqX/q8FDrDjmXJCeN?= =?Windows-1252?Q?W42yVc7TMo98MPkUl9KpHSzfxmwB1WbAQsNemy1qTTyzlTbwDMexaw0y?= =?Windows-1252?Q?byVlxzrYq3pB4JjNBd4Ir7NvO9lcXa13De8gKDEAP2kHDcMF/MzG+6di?= =?Windows-1252?Q?BxVusyscLCetNon5CJhFPMSwX5vqQMUwEcYn9QZCbK2u0utFj0ZWtc7B?= =?Windows-1252?Q?0RbAdRogHUWAFWLFJHNS2eNL4aSnenC5xpXrAxzyfnCQF/19YQ8B2Mmd?= =?Windows-1252?Q?8VLVVT6WfsiHsfnmv518XvdJ4swJpGju5BKqUn1GyTpadtQvtrppZ5Kg?= =?Windows-1252?Q?cH+Vpy9JE9hD1CigFFhmQ9JWQJfOnaHNG4bOhGrmZnQqKMfTNOTYiWg5?= =?Windows-1252?Q?AaOw4GhJl3PKbm9Jj6KCEg1fuGT7GDDJysIMc+vipQ/m6exzdZ/bsrai?= =?Windows-1252?Q?r/aSP5nOQUiibaZ/10Z0syowHLjDkn39yOOKoK4rNTu9pphwhVlMh/tb?= =?Windows-1252?Q?vlcoFFK6+N3tDRGcAZDEeNJ3nQT836+7jMw4emz7wd8mFDwLJAjw980O?= =?Windows-1252?Q?blSqk/NefvCYjEaKRWI2wcW8T6Zghbmf8db+aQcykrlknKm9KsItIe0u?= =?Windows-1252?Q?4NtYiMvCnCX2NY30msnog9y5I/hxenGeBmrdLeKYBLdXa9RD6WGYcJoz?= =?Windows-1252?Q?kK7v2V4KZ6kbHL/y22Xum/wDknpSkgQUMjrWZTBKJvIMB+gA7oZIhrIW?= =?Windows-1252?Q?dgOo15fGzv22xtNrTU8hXtUXhXBackNDBbTNXAY/3Yg+rnA20LYkOEr8?= =?Windows-1252?Q?FAlHm105yBsWjm1XhCjD8dkyoClRNAYiM5uyk6pe7n/dZzKZsZWWJ9HC?= =?Windows-1252?Q?fcrf8lV3GtIqSfy37wcV1lsjGboVkxN9Yo+oSIfbi40mU/5ahznlQ/mJ?= =?Windows-1252?Q?VbdJAaijMKNonXaVwzfW0/k1hK5ZrepPkzwM/oS8zMm9LHp629vt4uLF?= =?Windows-1252?Q?mN6gljX4YkNbUVGQsCslnhwvcljLw6UYyW+/7MFFdzX+XNrTBytidzcr?= =?Windows-1252?Q?+Fn3blImOBLty0knpc0=3D?= MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MW4PR12MB7031.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: d0b31b31-e776-492b-2659-08db4a17579b X-MS-Exchange-CrossTenant-originalarrivaltime: 01 May 2023 07:40:31.7003 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: mjUcSFYeZPKQIBtUTVcVQh8LEdDBlLtBBggXYCTIKcGJ8SU7xC3Fv+pvfHcje0oAMkd/DFeO8/lrL6FZG9Moww== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB5930 Content-Language: en-US Content-Type: multipart/alternative; boundary="_000_MW4PR12MB7031BAEDDB2118FB6BACC545D96E9MW4PR12MB7031namp_" --_000_MW4PR12MB7031BAEDDB2118FB6BACC545D96E9MW4PR12MB7031namp_ Content-Type: text/plain; charset="Windows-1252" Content-Transfer-Encoding: quoted-printable Reviewed-by: Nickle Wang Thanks, Nickle ________________________________ From: abner.chang@amd.com Sent: Sunday, April 30, 2023 10:00 PM To: devel@edk2.groups.io Cc: Nickle Wang ; Igor Kulchytskyy Subject: [edk2-redfish-client][PATCH] RedfishClientPkg: Initial commit External email: Use caution opening links or attachments From: Abner Chang Initial commit of architecture diagrams and Readme.md Signed-off-by: Abner Chang Cc: Nickle Wang Cc: Igor Kulchytskyy --- RedfishClientPkg/Readme.md | 185 +++ .../Media/RedfishClientDriverStack.svg | 1068 +++++++++++++++++ 2 files changed, 1253 insertions(+) create mode 100644 RedfishClientPkg/Readme.md create mode 100644 RedfishClientPkg/Documents/Media/RedfishClientDriverSta= ck.svg diff --git a/RedfishClientPkg/Readme.md b/RedfishClientPkg/Readme.md new file mode 100644 index 0000000000..9e56fb9039 --- /dev/null +++ b/RedfishClientPkg/Readme.md @@ -0,0 +1,185 @@ +# UEFI Redfish Client EDK2 Implementation + +## Introduction +UEFI Redfish Client EDK2 solution is implemented base on +[*EDK2 Redfish Foundation*](https://nam11.safelinks.protection.outlook.com= /?url=3Dhttps%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2%2Fblob%2Fmaster%2FRedfi= shPkg%2FReadme.md&data=3D05%7C01%7Cnicklew%40nvidia.com%7C8de0ff8f50c246da7= 29108db49835539%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C63818460064632= 5072%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik= 1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=3D3fTcnyZX2vZ5ORBAVtENT8yxyhaXZQ= soYBT9hD8NGss%3D&reserved=3D0), +the implementation utilizes the EFI protocols provided by EDK2 Redfish +Foundation to communicate with the Redfish service for creating, consuming= , and +updating the Redfish properties which are managed by firmware. This soluti= on +requests the instance of **EFI REST EX Protocol** through EFI Redfish Disc= over +Protocol and interacts with Redfish service using **EFI REST EX Protocol**= later +on. The essential part of this implementation is to map the EDK2 HII optio= ns to +the corresponding Redfish properties that are already defined in the stand= ard +Redfish schemas published by +[*DMTF Redfish working group*](https://nam11.safelinks.protection.outlook.= com/?url=3Dhttps%3A%2F%2Fwww.dmtf.org%2Fstandards%2Fredfish&data=3D05%7C01%= 7Cnicklew%40nvidia.com%7C8de0ff8f50c246da729108db49835539%7C43083d15727340c= 1b7db39efd9ccc17a%7C0%7C0%7C638184600646325072%7CUnknown%7CTWFpbGZsb3d8eyJW= IjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C= %7C&sdata=3DnrrH%2BA9VXIDC3YC%2B85jlBNdH2uHvz48d8TY37AfSaNs%3D&reserved=3D0= ). +The advantage of this design is to strengthen the interoperability among t= he +servers produced by different OEMs when configuring the platform through R= edfish +service. Using the properties defined in Redfish standard schema for confi= guring +platform reduces the overhead of Redfish client tools to have different +implementations in order to compliant with OEM servers. The solution also +reduces OEM-defined proprietary BIOS Attributes that lead to the divergenc= e of +platform configuration namings in Redfish BIOS Attribute Registry, however= , +those different namings refer to the same platform functionality. + +## The Scope of UEFI Redfish Client EDK2 Implementation +- Platform Configurable settings + +This is the first stage of UEFI Redfish Client EDK2 Implementation. Associ= ate +Redfish property with HII option. + +- Provisioning of Firmware Managed Platform Redfish Resource + +The current design of UEFI Redfish Client EDK2 Implementation can already +support the provisioning of firmware-owned platform Redfish resource, howe= ver, +this requires addtional support on edk2 HII. Therefore, provisioning of +firmware managed platform Redfish resource would be the second stage. + +Below are the block diagrams of UEFI Redfish Client EDK2 Implementation. + +## EDK2 Redfish Client Implementation Diagrams +![UEFI Redfish Client Implementation](https://nam11.safelinks.protection.o= utlook.com/?url=3Dhttps%3A%2F%2Fgithub.com%2Fchangab%2Fedk2-staging%2Fblob%= 2Fedk2-redfish-client%2FRedfishClientPkg%2FDocuments%2FMedia%2FRedfishClien= tDriverStack.svg%3Fraw%3Dtrue&data=3D05%7C01%7Cnicklew%40nvidia.com%7C8de0f= f8f50c246da729108db49835539%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C63= 8184600646325072%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMz= IiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=3Du%2FET1d%2BA1lJoKk= 92ytJ%2FI1ZE7S6D1ioA%2Fbxubvz8ISE%3D&reserved=3D0) + +## EFI EDK2 Redfish Client Framework +The functionality of each block in the diagrams are described in belwo sec= tions, + +### EDK2 Redfish Foundation ***[[1]](#[0])*** +EDK2 Redfish Redfish Foundation provides the facilities of communicating w= ith +Redfish service. Such as the discovery of Redfish service, the credential = to +access Redfish service, *EFI REST EX Protocol* instance which is the trans= port +layer to Redfish service, and so on. Please refer to +[*EDK2 Redfish Foundation*](https://nam11.safelinks.protection.outlook.com= /?url=3Dhttps%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2%2Fblob%2Fmaster%2FRedfi= shPkg%2FReadme.md&data=3D05%7C01%7Cnicklew%40nvidia.com%7C8de0ff8f50c246da7= 29108db49835539%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C63818460064632= 5072%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik= 1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=3D3fTcnyZX2vZ5ORBAVtENT8yxyhaXZQ= soYBT9hD8NGss%3D&reserved=3D0). + +### Redfish Profile Simulator ***[[2]](#[0])*** +Redfish Profile Simulator is an +[*open source project*](https://nam11.safelinks.protection.outlook.com/?ur= l=3Dhttps%3A%2F%2Fgithub.com%2FDMTF%2FRedfish-Profile-Simulator&data=3D05%7= C01%7Cnicklew%40nvidia.com%7C8de0ff8f50c246da729108db49835539%7C43083d15727= 340c1b7db39efd9ccc17a%7C0%7C0%7C638184600646325072%7CUnknown%7CTWFpbGZsb3d8= eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7= C%7C%7C&sdata=3D6yLfs7aHMnn4ERF9ih8NTOXrupmDT4hxgwSXiB2kf3g%3D&reserved=3D0= ) on +DMTF GitHub, which simulates the HTTP request methods (POST, PATCH, PUT, G= ET) on +Redfish resource maintained by Redfish Profile Simulator. EDK2 open source= uses +this simulator for the use case when Redfish service has not been set up o= n the +platform, or for the quick Redfish firmware feature development. We clone = this +project under RedfishClientPkg and maintain it by edk2 because this projec= t has +currently been using and updating rarely. That is easier for edk2 to add +features to the simulator or modify the simulator to align with edk2 requi= rement +on Redfish service, such as ETAG and HTTP POST support.
+Another open source project of Redfish simulator is +[*Redfish Interface Emulator*](https://nam11.safelinks.protection.outlook.= com/?url=3Dhttps%3A%2F%2Fgithub.com%2FDMTF%2FRedfish-Interface-Emulator&dat= a=3D05%7C01%7Cnicklew%40nvidia.com%7C8de0ff8f50c246da729108db49835539%7C430= 83d15727340c1b7db39efd9ccc17a%7C0%7C0%7C638184600646325072%7CUnknown%7CTWFp= bGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%= 7C3000%7C%7C%7C&sdata=3DYFko4l8kiy5gZR9iaRFhrATZ2PXq1g8NwDFMzuliXFA%3D&rese= rved=3D0), +however, we don't pay much attention to this project because we have been +dedicating to Redfish Profile Simulator since we started the UEFI Redfish = EDK2 +project. + +### EDK2 Redfish JSON Schema to C Structure Convertor ***[[3]](#[0])*** +This is the script auto-generated EDK2 drivers and libraries that provide = the +Redfish schema naming based JSON to C structure and vise versa converters.= C +structure is another representation of Redfish properties other than JSON = and +CSDL(XML). The higher layer Redfish client application can deal with C str= ucture +instead of using JSON library to manipulate Redfish properties. The script +[*Redfish Schema C Struct Generator*](https://nam11.safelinks.protection.o= utlook.com/?url=3Dhttps%3A%2F%2Fgithub.com%2FDMTF%2FRedfish-Schema-C-Struct= -Generator&data=3D05%7C01%7Cnicklew%40nvidia.com%7C8de0ff8f50c246da729108db= 49835539%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C638184600646325072%7C= Unknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiL= CJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=3DTfikAxceF8pMoAM6W4n0hi7hJgG1185n8IZpQ= kNqkgw%3D&reserved=3D0) +is still a private project on DMTF GitHub. Below is the reference of scrip= t +auto-generated +[*Redfish JSON C Struct Converter Lib*](https://nam11.safelinks.protection= .outlook.com/?url=3Dhttps%3A%2F%2Fgithub.com%2Fchangab%2FRedfish-JSON-C-Str= uct-Converter-Lib&data=3D05%7C01%7Cnicklew%40nvidia.com%7C8de0ff8f50c246da7= 29108db49835539%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C63818460064632= 5072%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik= 1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=3De3%2BgKfK5Nr3MPfsmDm2wmtHJnDzm= b%2B0liABLnfmsao4%3D&reserved=3D0) +libraries. The converters generated by the script are followed +**EFI REST JSON Structure Protocol** defined in UEFI spec 2.8, section 29.= 7.3. + +### EDK2 Redfish Non-Collection ***[[4]](#[0])*** and Collection ***[[5]](= #[0]) +*** Feature Drivers EDK2 Redfish feature driver is an intermediary driver = that +sits between **JSON Schema to C Structure converters** and **EFI Platform +Configuration to Redfish Protocol**. The Redfish feature driver gets and s= ets +the platform configuration and incorporates it with Redfish JSON schema C +structure to manipulate Redfish JSON resources. Then applies the settings = from +Redfish service to platform configurations, or vise versa to update platfo= rm +configurations to Redfish service. Both EDK2 Redfish Non-Collection and +Collection Feature drivers are script auto-generated base on Redfish schem= a +naming. The EDK2 Redfish Non-Collection feature driver manages the resourc= e of +specific Resdifsh resource type, while the EDK2 Redfish Collection feature +driver manages the members which have the same resource type in collection +resource (e.g the ComputerSystem resource and ComputerSystemCollection res= ource) +. + +### EDKII Redfish Platform Config Protocol ***[[6]](#[0])*** +EDKII Redfish Platform Config Protocol is an abstract driver that abstract= s the +platform configuration format and storage from EDK2 Redfish Feature driver= . +This protocol provides the interfaces to get and set platform configuratio= n with +the format and configuration storage agnostic to the Redfish feature drive= r. +The platform can provide its own EDKII Redfish Platform Config driver inst= ance +to access platform-specific configuration format and storage. On EDK2 open +source, EDKII Redfish Platform Config Protocol accesses the platform +configuration in EDK2 HII defined format. + +Below is the prototype of **EDKII_REDFISH_PLATFORM_CONFIG_PROTOCOL**, + +```C +struct _EDKII_REDFISH_PLATFORM_CONFIG_PROTOCOL { + EDKII_REDFISH_PLATFORM_CONFIG_GET_VALUE GetValue; + EDKII_REDFISH_PLATFORM_CONFIG_SET_VALUE SetValue; + EDKII_REDFISH_PLATFORM_CONFIG_GET_CONFIG_LANG GetConfigureLang; + EDKII_REDFISH_PLATFORM_CONFIG_GET_SUPPORTED_SCHEMA GetSupportedSchema; +}; +``` + +### Other instances of EDKII Redfish Platform Config Protocol ***[[7]](#[0= ])*** +For those Non-EDK2 HII-based platform configuration formats, the driver in= stance +can provide its own implementation to get or set the platform configuratio= ns. + +### EDK2 HII VFR Form ***[[8]](#[0])*** +According to **UEFI spec 2.9 section 35.6 Form Browser Protocol**, +**EFI_HII_REST_STYLE_FORMSET_GUID** is used on HII form to indicate that H= II +options declared in this form intend to interact with the REST architectur= al +style. On edk2 open source, the REST architectural style refers to the Red= fish +service. Besides **EFI_HII_REST_STYLE_FORMSET_GUID** is defined in the for= m +scope, **EFI_IFR_FLAG_REST_STYLE** can be assigned to the HII options that +indicate those options intend to interact with the REST service. + +### EDK2 HII UNI file ***[[9]](#[0])*** +x-uefi-redfish Configure Language is used in UNI file to associate HII opt= ion +with the particular Redfish property. The Hii options interact with EDK2 R= edfish +Feature driver if the string of HII option is assigned with x-uefi-redfish +Language as in below, + +```C +x-uefi-redfish-$(NAMESPACE) +where $(NAMESPACE) is the combination of Redfish ResourceTypeName and sche= ma version. +``` +For example, if the HII option is mapped to the property in Processor.v1_0= _0. +The x-uefi-redfish configure language is declared as below, +```C +x-uefi-redfish-Processor.v1_0_0 +``` +#### x-uefi-redfish Configure Language format: +- The string declared with x-uefi-redfish configure language is a path to = the property +in Redfish resource +- The root of path is the Redfish resource type indicated in x-uefi-redfis= h configure +language +- The path is relative to root of Redfish resource type, not related to Re= dfish service +- root. + +#### Examples, +```C +Properties: + +#string STR_BOOT_SOURCE_OVERRIDE_ENABLED_PROMPT #language x_uefi_redfish_C= omputerSystem.v1_0_0 "/Boot/BootSourceOverrideEnabled" +#string STR_BOOT_SOURCE_OVERRIDE_MODE_PROMPT #language x_uefi_redfish_C= omputerSystem.v1_0_0 "/Boot/BootSourceOverrideMode" +#string STR_BOOT_SOURCE_OVERRIDE_TARGET_PROMPT #language x_uefi_redfish_C= omputerSystem.v1_0_0 "/Boot/BootSourceOverrideTarget" +``` +```C +Properties in array object [NUM]: + +#string STR_BOOT_ORDER_1_PROMPT #language x_uefi_redfish_ComputerSystem.v= 1_11_0 "/Boot/BootOrder/[1]/Boot0001" +#string STR_BOOT_ORDER_2_PROMPT #language x_uefi_redfish_ComputerSystem.v= 1_11_0 "/Boot/BootOrder/[2]/Boot0002" +#string STR_BOOT_ORDER_3_PROMPT #language x_uefi_redfish_ComputerSystem.v= 1_11_0 "/Boot/BootOrder/[3]/Boot0003" +``` +```C +Properties in collection object {NUM}: + +#string STR_MEMORY_1_BASE_MODULE_TYPE_PROMPT #language x_uefi_redfish_Mem= ory.v1_7_1 "/Memory/{1}/BaseModuleType" +#string STR_MEMORY_2_BASE_MODULE_TYPE_PROMPT #language x_uefi_redfish_Mem= ory.v1_7_1 "/Memory/{2}/BaseModuleType" +#string STR_MEMORY_3_BASE_MODULE_TYPE_PROMPT #language x_uefi_redfish_Mem= ory.v1_7_1 "/Memory/{3}/BaseModuleType" +``` + +### EDK2 Build Tool ***[[10]](#[0])*** +EDK2 Build is responsible to pull the necessary EDK2 Redfish JSON Schema t= o C +Structure Convertors and EDK2 Redfish Feature drivers into edk2 build proc= ess +according to the x-uefi-Redfish config language used in the HII VFR forms. + +## The Contributors +Chang, Abner \ +Wang, Nickle \ +Chen, Aaron diff --git a/RedfishClientPkg/Documents/Media/RedfishClientDriverStack.svg = b/RedfishClientPkg/Documents/Media/RedfishClientDriverStack.svg new file mode 100644 index 0000000000..881d9647e5 --- /dev/null +++ b/RedfishClientPkg/Documents/Media/RedfishClientDriverStack.svg @@ -0,0 +1,1068 @@ + +"> + +" xml= ns:xlink=3D"https://nam11.safelinks.protection.outlook.com/?url=3Dhttp%3A%2= F%2Fwww.w3.org%2F1999%2Fxlink&data=3D05%7C01%7Cnicklew%40nvidia.com%7C8de0f= f8f50c246da729108db49835539%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C63= 8184600646325072%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMz= IiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=3D7%2B1II2QyoM92czGz= Aru54LcXz1LSM12aPZKMUruBOGg%3D&reserved=3D0" = xmlns:ev=3D"https://nam11.safelinks.protection.outlook.com/?url=3Dhttp%3A%2= F%2Fwww.w3.org%2F2001%2Fxml-events&data=3D05%7C01%7Cnicklew%40nvidia.com%7C= 8de0ff8f50c246da729108db49835539%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C0= %7C638184600646325072%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV= 2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=3DHLYxX4tMagb1i= PyJB%2FigWpCa1qJ2DKJndZqQc4CLJbI%3D&reserved=3D0" + xmlns:v=3D"https://nam11.safelinks.protection.outlook.com/?= url=3Dhttp%3A%2F%2Fschemas.microsoft.com%2Fvisio%2F2003%2FSVGExtensions%2F&= data=3D05%7C01%7Cnicklew%40nvidia.com%7C8de0ff8f50c246da729108db49835539%7C= 43083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C638184600646325072%7CUnknown%7CT= WFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%= 3D%7C3000%7C%7C%7C&sdata=3DUZG6RiMuhDj%2Fz1uFxcx5gAyRVl7JRkYjfeYJrPMi4DA%3D= &reserved=3D0" widt= h=3D"12.1281in" height=3D"9.93872in" + viewBox=3D"0 0 873.222 715.588" xml:space=3D"preserve" colo= r-interpolation-filters=3D"sRGB" class=3D"st69"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + VBackground-1 + + + Solid + + + + + + + + + + + Page-2 + + + + Rectangle.52 + + + + + + + + + + Can + Redfish Service + + Sheet.6 + + + + + + + + + + + + + Redfish Service + + + Sheet.8 + Redfish Profile Simulator On Network + + + + Re= dfish Profile Simulator On = Network + + Sheet.10 + EFI REST EX + + + + EFI= REST EX + + Rectangle + + + + + + + Rounded Rectangle.76 + + + + + + + + + + + + + + + + + + + + + + + + + Sheet.16 + EFI REST JSON to C Structure + + + + EF= I REST JSON to C Structure + + Sheet.17 + EFI Network Stack + + + + EF= I Network Stack + + Sheet.18 + EFI Redfish Discover Protocl + + + + EF= I Redfish Discover Protocl + + Sheet.19 + EDKII Redfish Foundation + + + + EDKII Redfish Foundation + + Curve connect 1 + + + + + + + + + Sheet.21 + EDKII Redfish Client + + + + EDKII Redfish Client + + Sheet.24 + + + + Sheet.25 + + + + Sheet.26 + Script-generated Redfish JSON schema to C Str= ucture convertor + + + + Sc= ript-generated Redfish JSON schema to C Structure convertor + + Sheet.28 + + + + Sheet.29 + + + + Sheet.30 + + + + Sheet.31 + ComputerSystem + + + + C= omputerSystem + + Sheet.32 + BootOption + + + + B= ootOption + + Sheet.33 + Memory + + + + M= emory + + Sheet.34 + + + + Sheet.35 + + + + Sheet.36 + Script-generated EDK2 Redfish Feature Driver<= /desc> + + + + S= cript-generated EDK2 Redfish Feature Driver + + Sheet.40 + ComputerSystem + + + + C= omputerSystem + + Sheet.41 + BootOption + + + + B= ootOption + + Sheet.42 + Memory + + + + M= emory + + Sheet.43 + + + + Sheet.46 + + + + Sheet.47 + + + + Sheet.48 + + + + Sheet.49 + ComputerSystemCollection + + + + Com= puterSystemCollection + + Sheet.50 + BootOptionCollection + + + + Bo= otOptionCollection + + Sheet.51 + MemoryCollection + + + + M= emoryCollection + + Curve connect 2.56 + + + + + + + Sheet.57 + + + + 1-D double + + + + + + + Sheet.64 + EDKII REDFISH_PLATFORM_CONFIG_PROTOCOL + + + + + + + E= DKII REDFISH_PLATFORM_CONFIG_PROTOCOL + + Sheet.65 + EDKII REDFISH_PLATFORM_CONFIG_PROTOCOL + + + + + + + E= DKII REDFISH_PLATFORM_CONFIG_PROTOCOL + + Sheet.67 + Other Platform-specific Implementations + + + + O= ther Platform-specific Implementations + + + + + Can.71 + EFI Variable/ FW Storage + + Sheet.72 + + + + + + + + + + + + EFI Variable/ FW Storage + + + + + + Can.73 + Other Storage + + Sheet.74 + + + + + + + + + + + + Other Storage + + + 1-D double.76 + + + + + + + 1-D double.77 + + + + + + + Sheet.78 + + + + + + + + + + + + + + + Folded Corner + + + + + + + + Sheet.81 + + + + + + + + + + + + + + + + + + + + + + + Can.69 + EDK2 HII Database + + Sheet.83 + + + + + + + + + + + + EDK2 HII = Database + + + Sheet.84 + EDKII REDFISH_PLATFORM_CONFIG_PROTOCOL + + + + + + + E= DKII REDFISH_PLATFORM_CONFIG_PROTOCOL + + 1-D double.75 + + + + + + + 1-D double.68 + + + + + + + + + + Sheet.87 + EDK2 Open Source Implementation + + + + E= DK2 Open Source Implementation + + 1-D double.88 + + + + + + + 1-D double.89 + + + + + + + Curve connect 1.61 + + + + + + + + + Curve connect 1.62 + + + + + + + + + Curve connect 2.54 + + + + + + + Sheet.96 + Script-generated EDK2 Redfish Collection Driv= er + + + + S= cript-generated EDK2 Redfish Collection Driver + + Rounded Rectangle.98 + EDK2 HII UNI file #string STR_OPTION_A #langu= age x-uefi-redfi... + + + + + + + + + + + + + + + + + + + + + + EDK2 HII UNI file#string STR_OPTION_A #language x-uefi-redfish-SCHEMA.VERSION =93/S= CHEMA/PropertyA=94 #string STR_OPTION_B #language x-uefi-redfish-SCHEMA.VERSION =93/S= CHEMA/PropertyB=94#string STR_OPTION_C #language x-uefi-redfish-SCHEMA.VERSION = =93/SCHEMA/PropertyC=94<= v:newlineChar/> + + Rounded Rectangle.100 + EDK2 HII VFR Form Option A Enabled Option B D= isabled Option C... + + + + + + + + + + + + + + + + + + + + + + EDK2 HII VFR FormOption A EnabledOption B = DisabledOption C 0x16 = + + Rounded Rectangle.101 + EDK2 HII VFR Form Option A Enabled Option B D= isabled Option C... + + + + + + + + + + + + + + + + + + + + + + EDK2 HII VFR FormOption A EnabledOption B = DisabledOption C 0x16 = + + Rounded Rectangle + EDK2 HII VFR Form Option A Enabled Option B D= isabled Option C... + + + + + + + + + + + + + + + + + + + + + + EDK2 HII VFR FormOption A EnabledOption B DisabledOption C 0x16 + + Curve connect 1.110 + + + + + + + + + Sheet.122 + [1] + + + + [1]= + + Sheet.123 + [2] + + + + [2]= + + Sheet.124 + [3] + + + + [3]= + + Sheet.125 + [4] + + + + [4]= + + Sheet.126 + [5] + + + + [5]= + + Sheet.127 + [6] + + + + [6]= + + Sheet.128 + [8] + + + + [8]= + + Sheet.129 + [9] + + + + [9]= + + Curve connect 2.132 + + + + + + + Sheet.133 + Script-generated EDK2 Redfish client driver/l= ibrary based on ... + + + + S= cript-generated EDK2 Redfish client driver/library based on the standard Redfish schemas published by DMTF = + + Rectangle.134 + + + + + + + Sheet.135 + Script-generated code + + + + S= cript-generated code + + Rectangle.137 + + + + + + + Sheet.138 + UEFI/EDK2 open source + + + + UE= FI/EDK2 open source + + Configure + + + + + + + + Side to top/bottom.145 + + + + + + + + Bottom to top fixed 2 + + + + + + + + + + + Side to top/bottom + + + + + + + + Sheet.152 + [10] + + + + [1= 0] + + Sheet.153 + EDK2 Build Tool + + + + E= DK2 Build Tool + + Curve connect 2 + + + + + + + Sheet.154 + [7] + + + + [7]= + + Curve connect 1.155 + + + + + + + + + -- 2.37.1.windows.1 --_000_MW4PR12MB7031BAEDDB2118FB6BACC545D96E9MW4PR12MB7031namp_ Content-Type: text/html; charset="Windows-1252" Content-Transfer-Encoding: quoted-printable
Reviewed-by: Nickle Wang <nicklew@nvidia.com>

Thanks,
Nickle

From: abner.chang@amd.com &= lt;abner.chang@amd.com>
Sent: Sunday, April 30, 2023 10:00 PM
To: devel@edk2.groups.io <devel@edk2.groups.io>
Cc: Nickle Wang <nicklew@nvidia.com>; Igor Kulchytskyy <igo= rk@ami.com>
Subject: [edk2-redfish-client][PATCH] RedfishClientPkg: Initial comm= it
 
External email: Use caution opening links or attac= hments


From: Abner Chang <abner.chang@amd.com>

Initial commit of architecture diagrams and Readme.md

Signed-off-by: Abner Chang <abner.chang@amd.com>
Cc: Nickle Wang <nicklew@nvidia.com>
Cc: Igor Kulchytskyy <igork@ami.com>
---
 RedfishClientPkg/Readme.md       &= nbsp;            |&n= bsp; 185 +++
 .../Media/RedfishClientDriverStack.svg     &= nbsp;  | 1068 +++++++++++++++++
 2 files changed, 1253 insertions(+)
 create mode 100644 RedfishClientPkg/Readme.md
 create mode 100644 RedfishClientPkg/Documents/Media/RedfishClientDriv= erStack.svg

diff --git a/RedfishClientPkg/Readme.md b/RedfishClientPkg/Readme.md
new file mode 100644
index 0000000000..9e56fb9039
--- /dev/null
+++ b/RedfishClientPkg/Readme.md
@@ -0,0 +1,185 @@
+# UEFI Redfish Client EDK2 Implementation
+
+## Introduction
+UEFI Redfish Client EDK2 solution is implemented base on
+[*EDK2 Redfish Foundation*](https://nam11.safelinks.protection.outlook= .com/?url=3Dhttps%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2%2Fblob%2Fmaster%2FR= edfishPkg%2FReadme.md&data=3D05%7C01%7Cnicklew%40nvidia.com%7C8de0ff8f5= 0c246da729108db49835539%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C638184= 600646325072%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLC= JBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=3D3fTcnyZX2vZ5ORBAVt= ENT8yxyhaXZQsoYBT9hD8NGss%3D&reserved=3D0),
+the implementation utilizes the EFI protocols provided by EDK2 Redfish
+Foundation to communicate with the Redfish service for creating, consuming= , and
+updating the Redfish properties which are managed by firmware. This soluti= on
+requests the instance of **EFI REST EX Protocol** through EFI Redfish Disc= over
+Protocol and interacts with Redfish service using **EFI REST EX Protocol**= later
+on. The essential part of this implementation is to map the EDK2 HII optio= ns to
+the corresponding Redfish properties that are already defined in the stand= ard
+Redfish schemas published by
+[*DMTF Redfish working group*](https://nam11.safelinks.protection.outlook.com/?url=3Dhttps%3A%2F%2= Fwww.dmtf.org%2Fstandards%2Fredfish&data=3D05%7C01%7Cnicklew%40nvidia.c= om%7C8de0ff8f50c246da729108db49835539%7C43083d15727340c1b7db39efd9ccc17a%7C= 0%7C0%7C638184600646325072%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQ= IjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=3DnrrH= %2BA9VXIDC3YC%2B85jlBNdH2uHvz48d8TY37AfSaNs%3D&reserved=3D0).
+The advantage of this design is to strengthen the interoperability among t= he
+servers produced by different OEMs when configuring the platform through R= edfish
+service. Using the properties defined in Redfish standard schema for confi= guring
+platform reduces the overhead of Redfish client tools to have different +implementations in order to compliant with OEM servers. The solution also<= br> +reduces OEM-defined proprietary BIOS Attributes that lead to the divergenc= e of
+platform configuration namings in Redfish BIOS Attribute Registry, however= ,
+those different namings refer to the same platform functionality.
+
+## The Scope of UEFI Redfish Client EDK2 Implementation
+-  Platform Configurable settings
+
+This is the first stage of UEFI Redfish Client EDK2 Implementation. Associ= ate
+Redfish property with HII option.
+
+- Provisioning of Firmware Managed Platform Redfish Resource
+
+The current design of UEFI Redfish Client EDK2 Implementation can already<= br> +support the provisioning of firmware-owned platform Redfish resource, howe= ver,
+this requires addtional support on edk2 HII. Therefore, provisioning of +firmware managed platform Redfish resource would be the second stage.
+
+Below are the block diagrams of UEFI Redfish Client EDK2 Implementation. +
+## <a name=3D"[0]">EDK2 Redfish Client Implementation Diag= rams</a>
+![UEFI Redfish Client Implementation](https://nam11.safelinks.protection.o= utlook.com/?url=3Dhttps%3A%2F%2Fgithub.com%2Fchangab%2Fedk2-staging%2Fblob%= 2Fedk2-redfish-client%2FRedfishClientPkg%2FDocuments%2FMedia%2FRedfishClien= tDriverStack.svg%3Fraw%3Dtrue&data=3D05%7C01%7Cnicklew%40nvidia.com%7C8= de0ff8f50c246da729108db49835539%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C0%= 7C638184600646325072%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2= luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=3Du%2FET1d%2= BA1lJoKk92ytJ%2FI1ZE7S6D1ioA%2Fbxubvz8ISE%3D&reserved=3D0)
+
+## EFI EDK2 Redfish Client Framework
+The functionality of each block in the diagrams are described in belwo sec= tions,
+
+### EDK2 Redfish Foundation ***[[1]](#[0])***
+EDK2 Redfish Redfish Foundation provides the facilities of communicating w= ith
+Redfish service. Such as the discovery of Redfish service, the credential = to
+access Redfish service, *EFI REST EX Protocol* instance which is the trans= port
+layer to Redfish service, and so on. Please refer to
+[*EDK2 Redfish Foundation*](https://nam11.safelinks.protection.outlook= .com/?url=3Dhttps%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2%2Fblob%2Fmaster%2FR= edfishPkg%2FReadme.md&data=3D05%7C01%7Cnicklew%40nvidia.com%7C8de0ff8f5= 0c246da729108db49835539%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C638184= 600646325072%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLC= JBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=3D3fTcnyZX2vZ5ORBAVt= ENT8yxyhaXZQsoYBT9hD8NGss%3D&reserved=3D0).
+
+### Redfish Profile Simulator ***[[2]](#[0])***
+Redfish Profile Simulator is an
+[*open source project*](https://nam11.safelinks.protection.outlook.com/?url=3Dhttps%3A%= 2F%2Fgithub.com%2FDMTF%2FRedfish-Profile-Simulator&data=3D05%7C01%7Cnic= klew%40nvidia.com%7C8de0ff8f50c246da729108db49835539%7C43083d15727340c1b7db= 39efd9ccc17a%7C0%7C0%7C638184600646325072%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiM= C4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&a= mp;sdata=3D6yLfs7aHMnn4ERF9ih8NTOXrupmDT4hxgwSXiB2kf3g%3D&reserved=3D0<= /a>) on
+DMTF GitHub, which simulates the HTTP request methods (POST, PATCH, PUT, G= ET) on
+Redfish resource maintained by Redfish Profile Simulator. EDK2 open source= uses
+this simulator for the use case when Redfish service has not been set up o= n the
+platform, or for the quick Redfish firmware feature development. We clone = this
+project under RedfishClientPkg and maintain it by edk2 because this projec= t has
+currently been using and updating rarely. That is easier for edk2 to add +features to the simulator or modify the simulator to align with edk2 requi= rement
+on Redfish service, such as ETAG and HTTP POST support. <br>
+Another open source project of Redfish simulator is
+[*Redfish Interface Emulator*](
https://nam11.safelinks.protection.outlook.com/?url=3Dh= ttps%3A%2F%2Fgithub.com%2FDMTF%2FRedfish-Interface-Emulator&data=3D05%7= C01%7Cnicklew%40nvidia.com%7C8de0ff8f50c246da729108db49835539%7C43083d15727= 340c1b7db39efd9ccc17a%7C0%7C0%7C638184600646325072%7CUnknown%7CTWFpbGZsb3d8= eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7= C%7C%7C&sdata=3DYFko4l8kiy5gZR9iaRFhrATZ2PXq1g8NwDFMzuliXFA%3D&rese= rved=3D0),
+however, we don't pay much attention to this project because we have been<= br> +dedicating to Redfish Profile Simulator since we started the UEFI Redfish = EDK2
+project.
+
+### EDK2 Redfish JSON Schema to C Structure Convertor ***[[3]](#[0])*** +This is the script auto-generated EDK2 drivers and libraries that provide = the
+Redfish schema naming based JSON to C structure and vise versa converters.= C
+structure is another representation of Redfish properties other than JSON = and
+CSDL(XML). The higher layer Redfish client application can deal with C str= ucture
+instead of using JSON library to manipulate Redfish properties. The script=
+[*Redfish Schema C Struct Generator*](https://nam11.safelinks.protection.outloo= k.com/?url=3Dhttps%3A%2F%2Fgithub.com%2FDMTF%2FRedfish-Schema-C-Struct-Gene= rator&data=3D05%7C01%7Cnicklew%40nvidia.com%7C8de0ff8f50c246da729108db4= 9835539%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C638184600646325072%7CU= nknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLC= JXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=3DTfikAxceF8pMoAM6W4n0hi7hJgG1185n8I= ZpQkNqkgw%3D&reserved=3D0)
+is still a private project on DMTF GitHub. Below is the reference of scrip= t
+auto-generated
+[*Redfish JSON C Struct Converter Lib*](https://nam11.safelinks.protection= .outlook.com/?url=3Dhttps%3A%2F%2Fgithub.com%2Fchangab%2FRedfish-JSON-C-Str= uct-Converter-Lib&data=3D05%7C01%7Cnicklew%40nvidia.com%7C8de0ff8f50c24= 6da729108db49835539%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C6381846006= 46325072%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTi= I6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=3De3%2BgKfK5Nr3MPfsmDm2w= mtHJnDzmb%2B0liABLnfmsao4%3D&reserved=3D0)
+libraries. The converters generated by the script are followed
+**EFI REST JSON Structure Protocol** defined in UEFI spec 2.8, section 29.= 7.3.
+
+### EDK2 Redfish Non-Collection ***[[4]](#[0])*** and Collection ***[[5]](= #[0])
+*** Feature Drivers EDK2 Redfish feature driver is an intermediary driver = that
+sits between **JSON Schema to C Structure converters** and **EFI Platform<= br> +Configuration to Redfish Protocol**. The Redfish feature driver gets and s= ets
+the platform configuration and incorporates it with Redfish JSON schema C<= br> +structure to manipulate Redfish JSON resources. Then applies the settings = from
+Redfish service to platform configurations, or vise versa to update platfo= rm
+configurations to Redfish service. Both EDK2 Redfish Non-Collection and +Collection Feature drivers are script auto-generated base on Redfish schem= a
+naming. The EDK2 Redfish Non-Collection feature driver manages the resourc= e of
+specific Resdifsh resource type, while the EDK2 Redfish Collection feature=
+driver manages the members which have the same resource type in collection=
+resource (e.g the ComputerSystem resource and ComputerSystemCollection res= ource)
+.
+
+### EDKII Redfish Platform Config Protocol ***[[6]](#[0])***
+EDKII Redfish Platform Config Protocol is an abstract driver that abstract= s the
+platform configuration format and storage from EDK2 Redfish Feature driver= .
+This protocol provides the interfaces to get and set platform configuratio= n with
+the format and configuration storage agnostic to the Redfish feature drive= r.
+The platform can provide its own EDKII Redfish Platform Config driver inst= ance
+to access platform-specific configuration format and storage. On EDK2 open=
+source, EDKII Redfish Platform Config Protocol accesses the platform
+configuration in EDK2 HII defined format.
+
+Below is the prototype of **EDKII_REDFISH_PLATFORM_CONFIG_PROTOCOL**,
+
+```C
+struct _EDKII_REDFISH_PLATFORM_CONFIG_PROTOCOL {
+  EDKII_REDFISH_PLATFORM_CONFIG_GET_VALUE    &nbs= p;        GetValue;
+  EDKII_REDFISH_PLATFORM_CONFIG_SET_VALUE    &nbs= p;        SetValue;
+  EDKII_REDFISH_PLATFORM_CONFIG_GET_CONFIG_LANG   &nbs= p;   GetConfigureLang;
+  EDKII_REDFISH_PLATFORM_CONFIG_GET_SUPPORTED_SCHEMA  GetSupport= edSchema;
+};
+```
+
+### Other instances of EDKII Redfish Platform Config Protocol ***[[7]](#[0= ])***
+For those Non-EDK2 HII-based platform configuration formats, the driver in= stance
+can provide its own implementation to get or set the platform configuratio= ns.
+
+### EDK2 HII VFR Form ***[[8]](#[0])***
+According to **UEFI spec 2.9 section 35.6 Form Browser Protocol**,
+**EFI_HII_REST_STYLE_FORMSET_GUID** is used on HII form to indicate that H= II
+options declared in this form intend to interact with the REST architectur= al
+style. On edk2 open source, the REST architectural style refers to the Red= fish
+service. Besides **EFI_HII_REST_STYLE_FORMSET_GUID** is defined in the for= m
+scope, **EFI_IFR_FLAG_REST_STYLE** can be assigned to the HII options that=
+indicate those options intend to interact with the REST service.
+
+### EDK2 HII UNI file ***[[9]](#[0])***
+x-uefi-redfish Configure Language is used in UNI file to associate HII opt= ion
+with the particular Redfish property. The Hii options interact with EDK2 R= edfish
+Feature driver if the string of HII option is assigned with x-uefi-redfish=
+Language as in below,
+
+```C
+x-uefi-redfish-$(NAMESPACE)
+where $(NAMESPACE) is the combination of Redfish ResourceTypeName and sche= ma version.
+```
+For example, if the HII option is mapped to the property in Processor.v1_0= _0.
+The x-uefi-redfish configure language is declared as below,
+```C
+x-uefi-redfish-Processor.v1_0_0
+```
+#### x-uefi-redfish Configure Language format:
+- The string declared with x-uefi-redfish configure language is a path to = the property
+in Redfish resource
+- The root of path is the Redfish resource type indicated in x-uefi-redfis= h configure
+language
+- The path is relative to root of Redfish resource type, not related to Re= dfish service
+- root.
+
+#### Examples,
+```C
+Properties:
+
+#string STR_BOOT_SOURCE_OVERRIDE_ENABLED_PROMPT #language x_uefi_redfish_C= omputerSystem.v1_0_0  "/Boot/BootSourceOverrideEnabled"
+#string STR_BOOT_SOURCE_OVERRIDE_MODE_PROMPT    #language x= _uefi_redfish_ComputerSystem.v1_0_0  "/Boot/BootSourceOverrideMod= e"
+#string STR_BOOT_SOURCE_OVERRIDE_TARGET_PROMPT  #language x_uefi_redf= ish_ComputerSystem.v1_0_0  "/Boot/BootSourceOverrideTarget"<= br> +```
+```C
+Properties in array object [NUM]:
+
+#string STR_BOOT_ORDER_1_PROMPT  #language x_uefi_redfish_ComputerSys= tem.v1_11_0  "/Boot/BootOrder/[1]/Boot0001"
+#string STR_BOOT_ORDER_2_PROMPT  #language x_uefi_redfish_ComputerSys= tem.v1_11_0  "/Boot/BootOrder/[2]/Boot0002"
+#string STR_BOOT_ORDER_3_PROMPT  #language x_uefi_redfish_ComputerSys= tem.v1_11_0  "/Boot/BootOrder/[3]/Boot0003"
+```
+```C
+Properties in collection object {NUM}:
+
+#string STR_MEMORY_1_BASE_MODULE_TYPE_PROMPT  #language x_uefi_redfis= h_Memory.v1_7_1  "/Memory/{1}/BaseModuleType"
+#string STR_MEMORY_2_BASE_MODULE_TYPE_PROMPT  #language x_uefi_redfis= h_Memory.v1_7_1  "/Memory/{2}/BaseModuleType"
+#string STR_MEMORY_3_BASE_MODULE_TYPE_PROMPT  #language x_uefi_redfis= h_Memory.v1_7_1  "/Memory/{3}/BaseModuleType"
+```
+
+### EDK2 Build Tool ***[[10]](#[0])***
+EDK2 Build is responsible to pull the necessary EDK2 Redfish JSON Schema t= o C
+Structure Convertors and EDK2 Redfish Feature drivers into edk2 build proc= ess
+according to the x-uefi-Redfish config language used in the HII VFR forms.=
+
+## The Contributors
+Chang, Abner <abner.chang@hpe.com>\
+Wang, Nickle <nickle.wang@hpe.com>\
+Chen, Aaron <aaron.chen@hpe.com>
diff --git a/RedfishClientPkg/Documents/Media/RedfishClientDriverStack.svg = b/RedfishClientPkg/Documents/Media/RedfishClientDriverStack.svg
new file mode 100644
index 0000000000..881d9647e5
--- /dev/null
+++ b/RedfishClientPkg/Documents/Media/RedfishClientDriverStack.svg
@@ -0,0 +1,1068 @@
+<?xml version=3D"1.0" encoding=3D"UTF-8" standalone= =3D"no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "https://nam11.safelin= ks.protection.outlook.com/?url=3Dhttp%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2= F1.1%2FDTD%2Fsvg11.dtd&data=3D05%7C01%7Cnicklew%40nvidia.com%7C8de0ff8f= 50c246da729108db49835539%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C63818= 4600646325072%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiL= CJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=3DVaHqu9MZo6jnHCD8K= dgyCTAl3IhJKSwryDaQbAEBl3E%3D&reserved=3D0">
+<!-- Generated by Microsoft Visio, SVG Export RedfishClientDriverStack.= svg Page-2 -->
+<svg xmlns=3D"https://nam11= .safelinks.protection.outlook.com/?url=3Dhttp%3A%2F%2Fwww.w3.org%2F2000%2Fs= vg&data=3D05%7C01%7Cnicklew%40nvidia.com%7C8de0ff8f50c246da729108db4983= 5539%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C638184600646325072%7CUnkn= own%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXV= CI6Mn0%3D%7C3000%7C%7C%7C&sdata=3DrAXihiKfe1ESon5ua0Fi3D4tE59kgZI37BOKX= lPleIk%3D&reserved=3D0" xmlns:xlink=3D"https://nam11= .safelinks.protection.outlook.com/?url=3Dhttp%3A%2F%2Fwww.w3.org%2F1999%2Fx= link&data=3D05%7C01%7Cnicklew%40nvidia.com%7C8de0ff8f50c246da729108db49= 835539%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C638184600646325072%7CUn= known%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJ= XVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=3D7%2B1II2QyoM92czGzAru54LcXz1LSM12aP= ZKMUruBOGg%3D&reserved=3D0" xmlns:ev=3D"https://nam= 11.safelinks.protection.outlook.com/?url=3Dhttp%3A%2F%2Fwww.w3.org%2F2001%2= Fxml-events&data=3D05%7C01%7Cnicklew%40nvidia.com%7C8de0ff8f50c246da729= 108db49835539%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C6381846006463250= 72%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1h= aWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=3DHLYxX4tMagb1iPyJB%2FigWpCa1q= J2DKJndZqQc4CLJbI%3D&reserved=3D0"
+            &n= bsp;  xmlns:v=3D"https://nam11.safelinks.protection.outlook.com/?url=3Dht= tp%3A%2F%2Fschemas.microsoft.com%2Fvisio%2F2003%2FSVGExtensions%2F&data= =3D05%7C01%7Cnicklew%40nvidia.com%7C8de0ff8f50c246da729108db49835539%7C4308= 3d15727340c1b7db39efd9ccc17a%7C0%7C0%7C638184600646325072%7CUnknown%7CTWFpb= GZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7= C3000%7C%7C%7C&sdata=3DUZG6RiMuhDj%2Fz1uFxcx5gAyRVl7JRkYjfeYJrPMi4DA%3D= &reserved=3D0" width=3D"12.1281in" height=3D"9.93872in"
+            &n= bsp;  viewBox=3D"0 0 873.222 715.588" xml:space=3D"pres= erve" color-interpolation-filters=3D"sRGB" class=3D"st6= 9">
+       <v:documentProperties v:langID=3D&= quot;1033" v:viewMarkup=3D"false">
+            &n= bsp;  <v:userDefs>
+            &n= bsp;          <v:ud v:nameU= =3D"msvNoAutoConnect" v:val=3D"VT0(1):26"/>
+            &n= bsp;  </v:userDefs>
+       </v:documentProperties>
+
+       <style type=3D"text/css"= >
+       <![CDATA[
+            &n= bsp;  .st1 {fill:#ffffff;stroke:none;stroke-linecap:round;stroke-linej= oin:round;stroke-width:0.75}
+            &n= bsp;  .st2 {fill:#ebf1df;stroke:#000000;stroke-linecap:round;stroke-li= nejoin:round;stroke-width:1.5}
+            &n= bsp;  .st3 {fill:#ff1a1a;stroke:#000000;stroke-linecap:round;stroke-li= nejoin:round;stroke-width:1.5}
+            &n= bsp;  .st4 {fill:#ffffff;font-family:Calibri;font-size:1.00001em;font-= weight:bold}
+            &n= bsp;  .st5 {font-size:1em}
+            &n= bsp;  .st6 {fill:none;stroke:none;stroke-linecap:round;stroke-linejoin= :round;stroke-width:0.75}
+            &n= bsp;  .st7 {fill:#000000;font-family:Calibri;font-size:1.00001em;font-= weight:bold}
+            &n= bsp;  .st8 {fill:#dbeef3;stroke:#d8d8d8;stroke-linecap:round;stroke-li= nejoin:round;stroke-width:1.5}
+            &n= bsp;  .st9 {fill:#ffffff;font-family:Calibri;font-size:1.08334em;font-= weight:bold}
+            &n= bsp;  .st10 {visibility:visible}
+            &n= bsp;  .st11 {fill:none;filter:url(#filter_3.3333334922791);stroke:#000= 000;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:0.4}
+            &n= bsp;  .st12 {fill:none;stroke:#bfbfbf;stroke-linecap:round;stroke-line= join:round;stroke-width:0.75}
+            &n= bsp;  .st13 {fill:#000000;font-family:Arial;font-size:1.99999em;font-s= tyle:italic;font-weight:bold}
+            &n= bsp;  .st14 {marker-end:url(#mrkr2-45);stroke:#000000;stroke-linecap:r= ound;stroke-linejoin:round;stroke-width:1.9}
+            &n= bsp;  .st15 {fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity= :1;stroke-width:0.42986425339367}
+            &n= bsp;  .st16 {fill:#000000;stroke:none;stroke-linecap:round;stroke-line= join:round;stroke-width:0.75}
+            &n= bsp;  .st17 {fill:#ffffff;font-family:Arial;font-size:1.33333em;font-w= eight:bold}
+            &n= bsp;  .st18 {fill:#ffffff;stroke:#595959;stroke-linecap:round;stroke-l= inejoin:round;stroke-width:1.5}
+            &n= bsp;  .st19 {fill:#7f7f7f;stroke:#000000;stroke-linecap:round;stroke-l= inejoin:round;stroke-width:1.5}
+            &n= bsp;  .st20 {fill:#ffffff;font-family:Calibri;font-size:1.08334em}
+            &n= bsp;  .st21 {fill:#000000;stroke:#000000;stroke-linecap:round;stroke-l= inejoin:round;stroke-width:0.75}
+            &n= bsp;  .st22 {fill:#000000;font-family:Calibri;font-size:0.833336em;fon= t-weight:bold}
+            &n= bsp;  .st23 {marker-start:url(#mrkr10-112);stroke:#000000;stroke-linec= ap:round;stroke-linejoin:round;stroke-width:1.25}
+            &n= bsp;  .st24 {fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity= :1;stroke-width:0.40983606557377}
+            &n= bsp;  .st25 {fill:#ffffff;stroke:#000000;stroke-linecap:round;stroke-l= inejoin:round;stroke-width:0.75}
+            &n= bsp;  .st26 {fill:#000000;fill-opacity:0.4;filter:url(#filter_3.333333= 4922791);stroke:#000000;stroke-dasharray:10.5,7.5;stroke-linecap:round;stro= ke-linejoin:round;stroke-opacity:0.4}
+            &n= bsp;  .st27 {fill:#0070c0;fill-opacity:0.72;stroke:#003f6c;stroke-dash= array:10.5,7.5;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}=
+            &n= bsp;  .st28 {fill:#0070c0;stroke:#003f6c;stroke-dasharray:10.5,7.5;str= oke-linecap:round;stroke-linejoin:round;stroke-width:1.5}
+            &n= bsp;  .st29 {fill:#000000;font-family:Calibri;font-size:1.00001em;font= -style:italic;font-weight:bold}
+            &n= bsp;  .st30 {fill:#ffffff;stroke:#000000;stroke-dasharray:1.68,1.2;str= oke-linecap:round;stroke-linejoin:round;stroke-width:0.24}
+            &n= bsp;  .st31 {fill:#000000;font-family:Calibri;font-size:0.833336em} +            &n= bsp;  .st32 {fill:#ffffff;stroke:#000000;stroke-dasharray:3.5,2.5;stro= ke-linecap:round;stroke-linejoin:round;stroke-width:0.5}
+            &n= bsp;  .st33 {stroke:#7f7f7f;stroke-linecap:round;stroke-linejoin:round= ;stroke-width:4.5}
+            &n= bsp;  .st34 {fill:#000000;fill-opacity:0.38;filter:url(#filter_3.33333= 34922791);stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-= opacity:0.38}
+            &n= bsp;  .st35 {fill:#000000;fill-opacity:0.38;stroke:#000000;stroke-opac= ity:0.38;stroke-width:0.22935779816514}
+            &n= bsp;  .st36 {fill:#f2f2f2;stroke:#7f7f7f;stroke-linecap:round;stroke-l= inejoin:round;stroke-width:0.75}
+            &n= bsp;  .st37 {fill:#7f7f7f;fill-opacity:1;stroke:#7f7f7f;stroke-opacity= :1;stroke-width:0.22935779816514}
+            &n= bsp;  .st38 {fill:#d8d8d8;stroke:#7f7f7f;stroke-linecap:round;stroke-l= inejoin:round;stroke-width:0.75}
+            &n= bsp;  .st39 {fill:#ffffff;stroke:#000000;stroke-linecap:round;stroke-l= inejoin:round;stroke-width:0.24}
+            &n= bsp;  .st40 {fill:#000000;fill-opacity:0.4;filter:url(#filter_3.333333= 4922791);stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-o= pacity:0.4}
+            &n= bsp;  .st41 {fill:#0070c0;stroke:#003f6c;stroke-linecap:round;stroke-l= inejoin:round;stroke-width:1.5}
+            &n= bsp;  .st42 {fill:#ffffff;stroke:#000000;stroke-dasharray:9.5,2.5,3.5,= 2.5;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.5}
+            &n= bsp;  .st43 {fill:#ffffff;stroke:#000000;stroke-dasharray:3.5,2.5,3.5,= 2.5,0,2.5;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.5}
+            &n= bsp;  .st44 {marker-end:url(#mrkr4-212);marker-start:url(#mrkr4-210);s= troke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.25}=
+            &n= bsp;  .st45 {fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity= :1;stroke-width:0.47169811320755}
+            &n= bsp;  .st46 {fill:#ffffff;stroke:#7f7f7f;stroke-linecap:round;stroke-l= inejoin:round;stroke-width:1}
+            &n= bsp;  .st47 {fill:#000000;font-family:Calibri;font-size:1.16666em;font= -style:italic;font-weight:bold}
+            &n= bsp;  .st48 {font-family:Arial;font-size:0.571431em;font-style:normal;= font-weight:normal}
+            &n= bsp;  .st49 {font-family:Arial;font-size:0.571431em;font-style:normal}=
+            &n= bsp;  .st50 {fill:#ea700d;font-family:Arial;font-size:0.571431em;font-= style:normal}
+            &n= bsp;  .st51 {fill:#ffffff;stroke:#7f7f7f;stroke-linecap:round;stroke-l= inejoin:round;stroke-width:0.24}
+            &n= bsp;  .st52 {fill:#d8d8d8;font-family:Calibri;font-size:0.833336em;fon= t-style:italic;font-weight:bold}
+            &n= bsp;  .st53 {font-size:1.20001em;font-style:normal;font-weight:normal}=
+            &n= bsp;  .st54 {font-size:1em;font-style:normal;font-weight:normal}
+            &n= bsp;  .st55 {fill:#f59d56;font-size:1em;font-style:normal;font-weight:= normal}
+            &n= bsp;  .st56 {marker-end:url(#mrkr2-350);stroke:#000000;stroke-linecap:= round;stroke-linejoin:round;stroke-width:2}
+            &n= bsp;  .st57 {fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity= :1;stroke-width:0.44247787610619}
+            &n= bsp;  .st58 {marker-end:url(#mrkr2-383);marker-start:url(#mrkr2-381);s= troke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75}=
+            &n= bsp;  .st59 {fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity= :1;stroke-width:0.22935779816514}
+            &n= bsp;  .st60 {fill:#000000;font-family:Calibri;font-size:0.75em;font-st= yle:italic;font-weight:bold}
+            &n= bsp;  .st61 {fill:#000000;font-family:Calibri;font-size:0.75em;font-we= ight:bold}
+            &n= bsp;  .st62 {fill:#0070c0;stroke:#000000;stroke-linecap:round;stroke-l= inejoin:round;stroke-width:1.5}
+            &n= bsp;  .st63 {fill:#595959;stroke:none;stroke-linecap:butt;stroke-width= :0.75}
+            &n= bsp;  .st64 {marker-start:url(#mrkr4-405);stroke:#000000;stroke-lineca= p:round;stroke-linejoin:round;stroke-width:1.25}
+            &n= bsp;  .st65 {fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity= :1;stroke-width:0.3315649867374}
+            &n= bsp;  .st66 {marker-end:url(#mrkr4-411);stroke:#000000;stroke-linecap:= round;stroke-linejoin:round;stroke-width:1.25}
+            &n= bsp;  .st67 {marker-end:url(#mrkr10-430);marker-start:url(#mrkr10-112)= ;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.2= 5}
+            &n= bsp;  .st68 {stroke:#000000;stroke-linecap:round;stroke-linejoin:round= ;stroke-width:1.25}
+            &n= bsp;  .st69 {fill:none;fill-rule:evenodd;font-size:12px;overflow:visib= le;stroke-linecap:square;stroke-miterlimit:3}
+       ]]>
+       </style>
+
+       <defs id=3D"Markers">=
+            &n= bsp;  <g id=3D"lend2">
+            &n= bsp;          <path d=3D&qu= ot;M 1 1 L 0 0 L 1 -1 L 1 1 " style=3D"stroke:none"/>
+            &n= bsp;  </g>
+            &n= bsp;  <marker id=3D"mrkr2-45" class=3D"st15" v:= arrowType=3D"2" v:arrowSize=3D"2" v:setback=3D"2.1= 3684" refX=3D"-2.1368421052632"
+            &n= bsp;            = ;      orient=3D"auto" markerUnits=3D&qu= ot;strokeWidth" overflow=3D"visible">
+            &n= bsp;          <use xlink:hr= ef=3D"#lend2" transform=3D"scale(-2.3263157894737,-2.3263157= 894737) "/>
+            &n= bsp;  </marker>
+            &n= bsp;  <g id=3D"lend10">
+            &n= bsp;          <path
+            &n= bsp;            = ;            &n= bsp; d=3D"M 0 0.75 C -0.414214 0.75 -0.75 0.414214 -0.75 0 -0.75 -0.41= 4214 -0.414214 -0.75 0 -0.75 0.414214 -0.75 0.75 -0.414214 0.75 0 0.75 0.41= 4214 0.414214 0.75 0 0.75 Z "
+            &n= bsp;            = ;            &n= bsp; style=3D"stroke:none"/>
+            &n= bsp;  </g>
+            &n= bsp;  <marker id=3D"mrkr10-112" class=3D"st24" = v:arrowType=3D"10" v:arrowSize=3D"1" v:setback=3D"= 1.542" refX=3D"1.542" orient=3D"auto"
+            &n= bsp;            = ;      markerUnits=3D"strokeWidth" overf= low=3D"visible">
+            &n= bsp;          <use xlink:hr= ef=3D"#lend10" transform=3D"scale(2.44) "/>
+            &n= bsp;  </marker>
+            &n= bsp;  <g id=3D"lend42">
+            &n= bsp;          <path
+            &n= bsp;            = ;            &n= bsp; d=3D"M 0 0.75 C -0.414214 0.75 -0.75 0.414214 -0.75 0 -0.75 -0.41= 4214 -0.414214 -0.75 0 -0.75 0.414214 -0.75 0.75 -0.414214 0.75 0 0.75 0.41= 4214 0.414214 0.75 0 0.75 Z "
+            &n= bsp;            = ;            &n= bsp; style=3D"stroke:none"/>
+            &n= bsp;  </g>
+            &n= bsp;  <marker id=3D"mrkr42-163" class=3D"st35" = v:arrowType=3D"42" v:arrowSize=3D"2" v:setback=3D"= 3.27" refX=3D"3.27" orient=3D"auto"
+            &n= bsp;            = ;      markerUnits=3D"strokeWidth" overf= low=3D"visible">
+            &n= bsp;          <use xlink:hr= ef=3D"#lend42" transform=3D"scale(4.36) "/>
+            &n= bsp;  </marker>
+            &n= bsp;  <marker id=3D"mrkr42-167" class=3D"st37" = v:arrowType=3D"42" v:arrowSize=3D"2" v:setback=3D"= 3.27" refX=3D"3.27" orient=3D"auto"
+            &n= bsp;            = ;      markerUnits=3D"strokeWidth" overf= low=3D"visible">
+            &n= bsp;          <use xlink:hr= ef=3D"#lend42" transform=3D"scale(4.36) "/>
+            &n= bsp;  </marker>
+            &n= bsp;  <g id=3D"lend4">
+            &n= bsp;          <path d=3D&qu= ot;M 2 1 L 0 0 L 2 -1 L 2 1 " style=3D"stroke:none"/>
+            &n= bsp;  </g>
+            &n= bsp;  <marker id=3D"mrkr4-210" class=3D"st45" v= :arrowType=3D"4" v:arrowSize=3D"2" v:setback=3D"4.= 08" refX=3D"4.08" orient=3D"auto"
+            &n= bsp;            = ;      markerUnits=3D"strokeWidth" overf= low=3D"visible">
+            &n= bsp;          <use xlink:hr= ef=3D"#lend4" transform=3D"scale(2.12) "/>
+            &n= bsp;  </marker>
+            &n= bsp;  <marker id=3D"mrkr4-212" class=3D"st45" v= :arrowType=3D"4" v:arrowSize=3D"2" v:setback=3D"4.= 08" refX=3D"-4.08" orient=3D"auto"
+            &n= bsp;            = ;      markerUnits=3D"strokeWidth" overf= low=3D"visible">
+            &n= bsp;          <use xlink:hr= ef=3D"#lend4" transform=3D"scale(-2.12,-2.12) "/> +            &n= bsp;  </marker>
+            &n= bsp;  <marker id=3D"mrkr2-350" class=3D"st57" v= :arrowType=3D"2" v:arrowSize=3D"2" v:setback=3D"2.= 08" refX=3D"-2.08" orient=3D"auto"
+            &n= bsp;            = ;      markerUnits=3D"strokeWidth" overf= low=3D"visible">
+            &n= bsp;          <use xlink:hr= ef=3D"#lend2" transform=3D"scale(-2.26,-2.26) "/> +            &n= bsp;  </marker>
+            &n= bsp;  <marker id=3D"mrkr2-381" class=3D"st59" v= :arrowType=3D"2" v:arrowSize=3D"2" v:setback=3D"3.= 88" refX=3D"3.88" orient=3D"auto"
+            &n= bsp;            = ;      markerUnits=3D"strokeWidth" overf= low=3D"visible">
+            &n= bsp;          <use xlink:hr= ef=3D"#lend2" transform=3D"scale(4.36) "/>
+            &n= bsp;  </marker>
+            &n= bsp;  <marker id=3D"mrkr2-383" class=3D"st59" v= :arrowType=3D"2" v:arrowSize=3D"2" v:setback=3D"3.= 88" refX=3D"-3.88" orient=3D"auto"
+            &n= bsp;            = ;      markerUnits=3D"strokeWidth" overf= low=3D"visible">
+            &n= bsp;          <use xlink:hr= ef=3D"#lend2" transform=3D"scale(-4.36,-4.36) "/> +            &n= bsp;  </marker>
+            &n= bsp;  <marker id=3D"mrkr4-405" class=3D"st65" v= :arrowType=3D"4" v:arrowSize=3D"2" v:setback=3D"5.= 744" refX=3D"5.744" orient=3D"auto"
+            &n= bsp;            = ;      markerUnits=3D"strokeWidth" overf= low=3D"visible">
+            &n= bsp;          <use xlink:hr= ef=3D"#lend4" transform=3D"scale(3.016) "/>
+            &n= bsp;  </marker>
+            &n= bsp;  <marker id=3D"mrkr4-411" class=3D"st65" v= :arrowType=3D"4" v:arrowSize=3D"2" v:setback=3D"6.= 032" refX=3D"-6.032" orient=3D"auto"
+            &n= bsp;            = ;      markerUnits=3D"strokeWidth" overf= low=3D"visible">
+            &n= bsp;          <use xlink:hr= ef=3D"#lend4" transform=3D"scale(-3.016,-3.016) "/><= br> +            &n= bsp;  </marker>
+            &n= bsp;  <marker id=3D"mrkr10-430" class=3D"st24" = v:arrowType=3D"10" v:arrowSize=3D"1" v:setback=3D"= 1.542" refX=3D"-1.542" orient=3D"auto"
+            &n= bsp;            = ;      markerUnits=3D"strokeWidth" overf= low=3D"visible">
+            &n= bsp;          <use xlink:hr= ef=3D"#lend10" transform=3D"scale(-2.44,-2.44) "/> +            &n= bsp;  </marker>
+       </defs>
+       <defs id=3D"Filters">=
+            &n= bsp;  <filter id=3D"filter_3.3333334922791">
+            &n= bsp;          <feGaussianBl= ur stdDeviation=3D"3.3333334922791"/>
+            &n= bsp;  </filter>
+       </defs>
+       <g v:mID=3D"8" v:index= =3D"1" v:groupContext=3D"backgroundPage">
+            &n= bsp;  <v:userDefs>
+            &n= bsp;          <v:ud v:nameU= =3D"msvVisioCreated" v:prompt=3D"" v:val=3D"VT0(0)= :26"/>
+            &n= bsp;  </v:userDefs>
+            &n= bsp;  <title>VBackground-1</title>
+            &n= bsp;  <v:pageProperties width=3D"12.1281" height=3D"= 9.93872" v:drawingScale=3D"1" v:pageScale=3D"1" v:= drawingUnits=3D"19"
+            &n= bsp;            = ;      v:shadowOffsetX=3D"9" v:shadowOff= setY=3D"-9"/>
+            &n= bsp;  <g id=3D"shape1-1" v:mID=3D"1" v:groupCon= text=3D"shape">
+            &n= bsp;          <title>Sol= id</title>
+            &n= bsp;          <v:userDefs&g= t;
+            &n= bsp;            = ;      <v:ud v:nameU=3D"Background" v= :val=3D"VT0(0):26"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"visVersion" v= :val=3D"VT0(15):26"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"msvShapeCategories= " v:prompt=3D"" v:val=3D"VT4(DoNotContain)"/> +            &n= bsp;            = ;      <v:ud v:nameU=3D"msvVisioCreated&qu= ot; v:prompt=3D"" v:val=3D"VT0(0):26"/>
+            &n= bsp;          </v:userDefs&= gt;
+            &n= bsp;          <rect x=3D&qu= ot;0" y=3D"0" width=3D"873.222" height=3D"715= .588" class=3D"st1"/>
+            &n= bsp;  </g>
+       </g>
+       <g v:mID=3D"4" v:index= =3D"3" v:groupContext=3D"foregroundPage">
+            &n= bsp;  <title>Page-2</title>
+            &n= bsp;  <v:pageProperties v:drawingScale=3D"1" v:pageScale= =3D"1" v:drawingUnits=3D"19" v:shadowOffsetX=3D"9&= quot; v:shadowOffsetY=3D"-9"/>
+            &n= bsp;  <v:layer v:name=3D"Connector" v:index=3D"0&quo= t;/>
+            &n= bsp;  <g id=3D"shape52-3" v:mID=3D"52" v:groupC= ontext=3D"shape" transform=3D"translate(336.222,-197.713)&qu= ot;>
+            &n= bsp;          <title>Rec= tangle.52</title>
+            &n= bsp;          <v:userDefs&g= t;
+            &n= bsp;            = ;      <v:ud v:nameU=3D"visVersion" v= :val=3D"VT0(15):26"/>
+            &n= bsp;          </v:userDefs&= gt;
+            &n= bsp;          <rect x=3D&qu= ot;0" y=3D"598.588" width=3D"495" height=3D"1= 17" class=3D"st2"/>
+            &n= bsp;  </g>
+            &n= bsp;  <g id=3D"group5-5" transform=3D"translate(772.= 722,-60.4625)" v:mID=3D"5" v:groupContext=3D"group"= ;>
+            &n= bsp;          <v:userDefs&g= t;
+            &n= bsp;            = ;      <v:ud v:nameU=3D"visVersion" v= :prompt=3D"" v:val=3D"VT0(15):26"/>
+            &n= bsp;          </v:userDefs&= gt;
+            &n= bsp;          <title>Can= </title>
+            &n= bsp;          <desc>Redf= ish Service</desc>
+            &n= bsp;          <g id=3D"= ;shape6-6" v:mID=3D"6" v:groupContext=3D"shape">= ;
+            &n= bsp;            = ;      <title>Sheet.6</title>
+            &n= bsp;            = ;      <v:userDefs>
+            &n= bsp;            = ;            &n= bsp; <v:ud v:nameU=3D"ControlHalfHeight" v:prompt=3D"&quo= t; v:val=3D"VT0(0.125):1"/>
+            &n= bsp;            = ;            &n= bsp; <v:ud v:nameU=3D"FillForegnd" v:prompt=3D"" v:v= al=3D"VT0(1):26"/>
+            &n= bsp;            = ;            &n= bsp; <v:ud v:nameU=3D"ControlHalfHeight" v:prompt=3D"&quo= t; v:val=3D"VT0(0.15625):1"/>
+            &n= bsp;            = ;            &n= bsp; <v:ud v:nameU=3D"FillForegnd" v:prompt=3D"" v:v= al=3D"VT5(#ff1a1a)"/>
+            &n= bsp;            = ;      </v:userDefs>
+            &n= bsp;            = ;      <path d=3D"M0 704.34 A26.4375 11.25= -180 1 0 52.88 704.34 L52.88 663.84 L0 663.84 L0 704.34 Z" class=3D&q= uot;st3"/>
+            &n= bsp;          </g>
+            &n= bsp;          <g id=3D"= ;shape5-8" v:mID=3D"5" v:groupContext=3D"groupContent&q= uot;>
+            &n= bsp;            = ;      <v:textBlock v:margins=3D"rect(4,4,= 4,4)" v:verticalAlign=3D"2"/>
+            &n= bsp;            = ;      <v:textRect cx=3D"26.4375" cy= =3D"684.088" width=3D"52.88" height=3D"63"/&g= t;
+            &n= bsp;            = ;      <ellipse cx=3D"26.4375" cy=3D&= quot;663.838" rx=3D"26.4375" ry=3D"11.25" class=3D= "st3"/>
+            &n= bsp;            = ;      <text x=3D"7.83" y=3D"693= .59" class=3D"st4" v:langID=3D"1033"><v:para= graph v:horizAlign=3D"1"/><v:tabList/>Redfish <tspan<= br> +            &n= bsp;            = ;            &n= bsp;            = ;     x=3D"8.6" dy=3D"1.2em" class= =3D"st5">Service</tspan></text>   &= nbsp;           &nbs= p;   </g>
+            &n= bsp;  </g>
+            &n= bsp;  <g id=3D"shape8-12" v:mID=3D"8" v:groupCo= ntext=3D"shape" transform=3D"translate(746.847,-24.4625)&quo= t;>
+            &n= bsp;          <title>She= et.8</title>
+            &n= bsp;          <desc>Redf= ish Profile Simulator On Network</desc>
+            &n= bsp;          <v:textBlock = v:margins=3D"rect(4,4,4,4)"/>
+            &n= bsp;          <v:textRect c= x=3D"54" cy=3D"702.088" width=3D"108" height= =3D"27"/>
+            &n= bsp;          <rect x=3D&qu= ot;0" y=3D"688.588" width=3D"108" height=3D"2= 7" class=3D"st6"/>
+            &n= bsp;          <text x=3D&qu= ot;17.62" y=3D"693.09" class=3D"st7" v:langID=3D&q= uot;1033"><v:paragraph v:spLine=3D"-1" v:horizAlign=3D= "1"/><v:tabList/>Redfish Profile <tspan
+            &n= bsp;            = ;            &n= bsp;         x=3D"21.08" = dy=3D"1em" class=3D"st5">Simulator On </tspan>= <tspan x=3D"32.24" dy=3D"1em" class=3D"st5"= ;>Network</tspan></text>      =           </g>
+            &n= bsp;  <g id=3D"shape10-17" v:mID=3D"10" v:group= Context=3D"shape" transform=3D"translate(408.222,-82.9625)&q= uot;>
+            &n= bsp;          <title>She= et.10</title>
+            &n= bsp;          <desc>EFI = REST EX</desc>
+            &n= bsp;          <v:textBlock = v:margins=3D"rect(4,4,4,4)"/>
+            &n= bsp;          <v:textRect c= x=3D"130.5" cy=3D"697.588" width=3D"261" heig= ht=3D"36"/>
+            &n= bsp;          <rect x=3D&qu= ot;0" y=3D"679.588" width=3D"261" height=3D"3= 6" class=3D"st8"/>
+            &n= bsp;          <text x=3D&qu= ot;99.8" y=3D"700.84" class=3D"st9" v:langID=3D&qu= ot;1033"><v:paragraph v:spLine=3D"-1" v:horizAlign=3D&= quot;1"/><v:tabList/>EFI REST EX  </text> &nb= sp;           </g><= br> +            &n= bsp;  <g id=3D"shape12-20" v:mID=3D"12" v:group= Context=3D"shape" transform=3D"translate(57.2224,-197.713)&q= uot;>
+            &n= bsp;          <title>Rec= tangle</title>
+            &n= bsp;          <v:userDefs&g= t;
+            &n= bsp;            = ;      <v:ud v:nameU=3D"visVersion" v= :val=3D"VT0(15):26"/>
+            &n= bsp;          </v:userDefs&= gt;
+            &n= bsp;          <rect x=3D&qu= ot;0" y=3D"598.588" width=3D"234" height=3D"1= 17" class=3D"st2"/>
+            &n= bsp;  </g>
+            &n= bsp;  <g id=3D"shape13-22" v:mID=3D"13" v:group= Context=3D"shape" transform=3D"translate(30.2224,-24.4625)&q= uot;>
+            &n= bsp;          <title>Rou= nded Rectangle.76</title>
+            &n= bsp;          <v:userDefs&g= t;
+            &n= bsp;            = ;      <v:ud v:nameU=3D"CTypeTopLeftSnip&q= uot; v:prompt=3D"" v:val=3D"VT0(0):5"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"CTypeTopRightSnip&= quot; v:prompt=3D"" v:val=3D"VT0(0):5"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"CTypeBotLeftSnip&q= uot; v:prompt=3D"" v:val=3D"VT0(0):5"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"CTypeBotRightSnip&= quot; v:prompt=3D"" v:val=3D"VT0(0):5"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"CornerLockHoriz&qu= ot; v:prompt=3D"" v:val=3D"VT0(1):5"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"CornerLockVert&quo= t; v:prompt=3D"" v:val=3D"VT0(1):5"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"CornerLockDiag&quo= t; v:prompt=3D"" v:val=3D"VT0(0):5"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"TopLeftOffset"= ; v:prompt=3D"" v:val=3D"VT0(0.15):1"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"TopRightOffset&quo= t; v:prompt=3D"" v:val=3D"VT0(0.15):1"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"BotLeftOffset"= ; v:prompt=3D"" v:val=3D"VT0(0.15):1"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"BotRightOffset&quo= t; v:prompt=3D"" v:val=3D"VT0(0.15):1"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"visVersion" v= :prompt=3D"" v:val=3D"VT0(15):26"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"TopLeftOffset"= ; v:prompt=3D"" v:val=3D"VT0(0.125):1"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"TopRightOffset&quo= t; v:prompt=3D"" v:val=3D"VT0(0.125):1"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"BotLeftOffset"= ; v:prompt=3D"" v:val=3D"VT0(0.125):1"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"BotRightOffset&quo= t; v:prompt=3D"" v:val=3D"VT0(0.125):1"/>
+            &n= bsp;          </v:userDefs&= gt;
+            &n= bsp;          <g id=3D"= ;shadow13-23" v:groupContext=3D"shadow" v:shadowOffsetX=3D&q= uot;7.2E-008" v:shadowOffsetY=3D"0" v:shadowType=3D"1&q= uot;
+            &n= bsp;            = ;            &n= bsp; v:shadowScale=3D"1.02" transform=3D"matrix(1.02,0,0,1.0= 2,-6.84,-13.2318)" class=3D"st10">
+            &n= bsp;            = ;      <path d=3D"M9 715.59 L675 715.59 A8= .99985 8.99985 -180 0 0 684 706.59 L684 616.59 A8.99985 8.99985 -180 0 0 67= 5 607.59
+            &n= bsp;            = ;            &n= bsp;            = ;      L9 607.59 A8.99985 8.99985 -180 0 0 0 616.5= 9 L0 706.59 A8.99985 8.99985 -180 0 0 9 715.59 Z"
+            &n= bsp;            = ;            &n= bsp;         class=3D"st11&quo= t;/>
+            &n= bsp;          </g>
+            &n= bsp;          <path d=3D&qu= ot;M9 715.59 L675 715.59 A8.99985 8.99985 -180 0 0 684 706.59 L684 616.59 A= 8.99985 8.99985 -180 0 0 675 607.59
+            &n= bsp;            = ;            &n= bsp;          L9 607.59 A8.999= 85 8.99985 -180 0 0 0 616.59 L0 706.59 A8.99985 8.99985 -180 0 0 9 715.59 Z= " class=3D"st12"/>
+            &n= bsp;  </g>
+            &n= bsp;  <g id=3D"shape16-27" v:mID=3D"16" v:group= Context=3D"shape" transform=3D"translate(75.2224,-82.9625)&q= uot;>
+            &n= bsp;          <title>She= et.16</title>
+            &n= bsp;          <desc>EFI = REST JSON to C Structure</desc>
+            &n= bsp;          <v:textBlock = v:margins=3D"rect(4,4,4,4)"/>
+            &n= bsp;          <v:textRect c= x=3D"130.5" cy=3D"697.588" width=3D"261" heig= ht=3D"36"/>
+            &n= bsp;          <rect x=3D&qu= ot;0" y=3D"679.588" width=3D"261" height=3D"3= 6" class=3D"st8"/>
+            &n= bsp;          <text x=3D&qu= ot;53.89" y=3D"700.84" class=3D"st9" v:langID=3D&q= uot;1033"><v:paragraph v:spLine=3D"-1" v:horizAlign=3D= "1"/><v:tabList/>EFI REST JSON to C Structure</text&g= t;             = </g>
+            &n= bsp;  <g id=3D"shape17-30" v:mID=3D"17" v:group= Context=3D"shape" transform=3D"translate(408.222,-37.9625)&q= uot;>
+            &n= bsp;          <title>She= et.17</title>
+            &n= bsp;          <desc>EFI = Network Stack</desc>
+            &n= bsp;          <v:textBlock = v:margins=3D"rect(4,4,4,4)"/>
+            &n= bsp;          <v:textRect c= x=3D"130.5" cy=3D"697.588" width=3D"261" heig= ht=3D"36"/>
+            &n= bsp;          <rect x=3D&qu= ot;0" y=3D"679.588" width=3D"261" height=3D"3= 6" class=3D"st8"/>
+            &n= bsp;          <text x=3D&qu= ot;81.72" y=3D"700.84" class=3D"st9" v:langID=3D&q= uot;1033"><v:paragraph v:spLine=3D"-1" v:horizAlign=3D= "1"/><v:tabList/>EFI Network Stack</text> &nb= sp;            =   </g>
+            &n= bsp;  <g id=3D"shape18-33" v:mID=3D"18" v:group= Context=3D"shape" transform=3D"translate(75.2224,-37.9625)&q= uot;>
+            &n= bsp;          <title>She= et.18</title>
+            &n= bsp;          <desc>EFI = Redfish Discover Protocl</desc>
+            &n= bsp;          <v:textBlock = v:margins=3D"rect(4,4,4,4)"/>
+            &n= bsp;          <v:textRect c= x=3D"130.5" cy=3D"697.588" width=3D"261" heig= ht=3D"36"/>
+            &n= bsp;          <rect x=3D&qu= ot;0" y=3D"679.588" width=3D"261" height=3D"3= 6" class=3D"st8"/>
+            &n= bsp;          <text x=3D&qu= ot;55.56" y=3D"700.84" class=3D"st9" v:langID=3D&q= uot;1033"><v:paragraph v:spLine=3D"-1" v:horizAlign=3D= "1"/><v:tabList/>EFI Redfish Discover Protocl</text&g= t;             = </g>
+            &n= bsp;  <g id=3D"shape19-36" v:mID=3D"19" v:group= Context=3D"shape" transform=3D"translate(291.222,-51.4625)&q= uot;>
+            &n= bsp;          <title>She= et.19</title>
+            &n= bsp;          <desc>EDKI= I Redfish Foundation</desc>
+            &n= bsp;          <v:textBlock = v:margins=3D"rect(4,4,4,4)"/>
+            &n= bsp;          <v:textRect c= x=3D"92" cy=3D"693.088" width=3D"184.01" heig= ht=3D"45"/>
+            &n= bsp;          <rect x=3D&qu= ot;0" y=3D"670.588" width=3D"184" height=3D"4= 5" class=3D"st6"/>
+            &n= bsp;          <text x=3D&qu= ot;12.66" y=3D"685.89" class=3D"st13" v:langID=3D&= quot;1033"><v:paragraph v:horizAlign=3D"1"/><v:t= abList/>EDKII Redfish <tspan
+            &n= bsp;            = ;            &n= bsp;         x=3D"26.69" = dy=3D"1.2em" class=3D"st5">Foundation</tspan>&= lt;/text>          &nb= sp;   </g>
+            &n= bsp;  <g id=3D"shape20-40" v:mID=3D"20" v:group= Context=3D"shape" v:layerMember=3D"0"
+            &n= bsp;            = ;      transform=3D"translate(904.308,1335.5)= rotate(-19.179) scale(1,-1)">
+            &n= bsp;          <title>Cur= ve connect 1</title>
+            &n= bsp;          <v:userDefs&g= t;
+            &n= bsp;            = ;      <v:ud v:nameU=3D"Scale" v:val= =3D"VT0(1):26"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"AntiScale" v:= val=3D"VT0(1):26"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"visVersion" v= :val=3D"VT0(15):26"/>
+            &n= bsp;          </v:userDefs&= gt;
+            &n= bsp;          <path d=3D&qu= ot;M0 715.59 A42.4531 42.4531 0 0 1 54.79 715.59 A42.4531 42.4531 -180 0 0 = 106.06 718.26 L106.35 718.04"
+            &n= bsp;            = ;            &n= bsp; class=3D"st14"/>
+            &n= bsp;  </g>
+            &n= bsp;  <g id=3D"shape21-46" v:mID=3D"21" v:group= Context=3D"shape" transform=3D"translate(18.9724,-139.213)&q= uot;>
+            &n= bsp;          <title>She= et.21</title>
+            &n= bsp;          <desc>EDKI= I Redfish Client</desc>
+            &n= bsp;          <v:textBlock = v:margins=3D"rect(4,4,4,4)" v:verticalText=3D"true"/>= ;
+            &n= bsp;          <v:textRect c= x=3D"12.375" cy=3D"463.588" width=3D"24.75" h= eight=3D"504" transform=3D"rotate(-180)"/>
+            &n= bsp;          <rect x=3D&qu= ot;0" y=3D"211.588" width=3D"24.75" height=3D"= ;504" class=3D"st16"/>
+            &n= bsp;          <text x=3D&qu= ot;-10.85" y=3D"-540.93" writing-mode=3D"tb-rl" tr= ansform=3D"rotate(180)" class=3D"st17" v:langID=3D"= ;1033"><v:paragraph
+            &n= bsp;            = ;            &n= bsp;         v:horizAlign=3D"1= "/><v:tabList/>EDKII Redfish Client</text>  &= nbsp;            <= ;/g>
+            &n= bsp;  <g id=3D"shape24-49" v:mID=3D"24" v:group= Context=3D"shape" transform=3D"translate(111.222,-253.963)&q= uot;>
+            &n= bsp;          <title>She= et.24</title>
+            &n= bsp;          <rect x=3D&qu= ot;0" y=3D"670.588" width=3D"153" height=3D"4= 5" class=3D"st18"/>
+            &n= bsp;  </g>
+            &n= bsp;  <g id=3D"shape25-51" v:mID=3D"25" v:group= Context=3D"shape" transform=3D"translate(84.2224,-240.463)&q= uot;>
+            &n= bsp;          <title>She= et.25</title>
+            &n= bsp;          <rect x=3D&qu= ot;0" y=3D"670.588" width=3D"153" height=3D"4= 5" class=3D"st18"/>
+            &n= bsp;  </g>
+            &n= bsp;  <g id=3D"shape26-53" v:mID=3D"26" v:group= Context=3D"shape" transform=3D"translate(75.2224,-226.963)&q= uot;>
+            &n= bsp;          <title>She= et.26</title>
+            &n= bsp;          <desc>Scri= pt-generated Redfish JSON schema to C Structure convertor</desc>
+            &n= bsp;          <v:textBlock = v:margins=3D"rect(4,4,4,4)"/>
+            &n= bsp;          <v:textRect c= x=3D"76.5" cy=3D"693.088" width=3D"153" heigh= t=3D"45"/>
+            &n= bsp;          <rect x=3D&qu= ot;0" y=3D"670.588" width=3D"153" height=3D"4= 5" class=3D"st19"/>
+            &n= bsp;          <text x=3D&qu= ot;11.2" y=3D"683.34" class=3D"st20" v:langID=3D&q= uot;1033"><v:paragraph v:spLine=3D"-1" v:horizAlign=3D= "1"/><v:tabList/>Script-generated Redfish <tspan
+            &n= bsp;            = ;            &n= bsp;         x=3D"29.22" = dy=3D"1em" class=3D"st5">JSON schema to C </tspan= ><tspan x=3D"24.45" dy=3D"1em" class=3D"st5&= quot;>Structure convertor</tspan></text>   &n= bsp;            <= /g>
+            &n= bsp;  <g id=3D"shape28-58" v:mID=3D"28" v:group= Context=3D"shape" transform=3D"translate(241.722,-267.463)&q= uot;>
+            &n= bsp;          <title>She= et.28</title>
+            &n= bsp;          <ellipse cx= =3D"1.6875" cy=3D"713.9" rx=3D"1.6875" ry=3D&= quot;1.6875" class=3D"st21"/>
+            &n= bsp;  </g>
+            &n= bsp;  <g id=3D"shape29-60" v:mID=3D"29" v:group= Context=3D"shape" transform=3D"translate(245.66,-272.525)&qu= ot;>
+            &n= bsp;          <title>She= et.29</title>
+            &n= bsp;          <ellipse cx= =3D"1.6875" cy=3D"713.9" rx=3D"1.6875" ry=3D&= quot;1.6875" class=3D"st21"/>
+            &n= bsp;  </g>
+            &n= bsp;  <g id=3D"shape30-62" v:mID=3D"30" v:group= Context=3D"shape" transform=3D"translate(250.16,-277.588)&qu= ot;>
+            &n= bsp;          <title>She= et.30</title>
+            &n= bsp;          <ellipse cx= =3D"1.6875" cy=3D"713.9" rx=3D"1.6875" ry=3D&= quot;1.6875" class=3D"st21"/>
+            &n= bsp;  </g>
+            &n= bsp;  <g id=3D"shape31-64" v:mID=3D"31" v:group= Context=3D"shape" transform=3D"translate(178.722,-204.463)&q= uot;>
+            &n= bsp;          <title>She= et.31</title>
+            &n= bsp;          <desc>Comp= uterSystem</desc>
+            &n= bsp;          <v:textBlock = v:margins=3D"rect(4,4,4,4)"/>
+            &n= bsp;          <v:textRect c= x=3D"54" cy=3D"702.088" width=3D"108" height= =3D"27"/>
+            &n= bsp;          <rect x=3D&qu= ot;0" y=3D"688.588" width=3D"108" height=3D"2= 7" class=3D"st6"/>
+            &n= bsp;          <text x=3D&qu= ot;18.16" y=3D"704.59" class=3D"st22" v:langID=3D&= quot;1033"><v:paragraph v:spLine=3D"-1" v:horizAlign= =3D"1"/><v:tabList/>ComputerSystem</text> &nb= sp;        </g>
+            &n= bsp;  <g id=3D"shape32-67" v:mID=3D"32" v:group= Context=3D"shape" transform=3D"translate(201.222,-220.213)&q= uot;>
+            &n= bsp;          <title>She= et.32</title>
+            &n= bsp;          <desc>Boot= Option</desc>
+            &n= bsp;          <v:textBlock = v:margins=3D"rect(4,4,4,4)"/>
+            &n= bsp;          <v:textRect c= x=3D"54" cy=3D"702.088" width=3D"108" height= =3D"27"/>
+            &n= bsp;          <rect x=3D&qu= ot;0" y=3D"688.588" width=3D"108" height=3D"2= 7" class=3D"st6"/>
+            &n= bsp;          <text x=3D&qu= ot;29.69" y=3D"704.59" class=3D"st22" v:langID=3D&= quot;1033"><v:paragraph v:spLine=3D"-1" v:horizAlign= =3D"1"/><v:tabList/>BootOption</text>  &= nbsp;           </g>= ;
+            &n= bsp;  <g id=3D"shape33-70" v:mID=3D"33" v:group= Context=3D"shape" transform=3D"translate(210.222,-233.713)&q= uot;>
+            &n= bsp;          <title>She= et.33</title>
+            &n= bsp;          <desc>Memo= ry</desc>
+            &n= bsp;          <v:textBlock = v:margins=3D"rect(4,4,4,4)"/>
+            &n= bsp;          <v:textRect c= x=3D"54" cy=3D"702.088" width=3D"108" height= =3D"27"/>
+            &n= bsp;          <rect x=3D&qu= ot;0" y=3D"688.588" width=3D"108" height=3D"2= 7" class=3D"st6"/>
+            &n= bsp;          <text x=3D&qu= ot;36.21" y=3D"704.59" class=3D"st22" v:langID=3D&= quot;1033"><v:paragraph v:spLine=3D"-1" v:horizAlign= =3D"1"/><v:tabList/>Memory</text>   = ;       </g>
+            &n= bsp;  <g id=3D"shape34-73" v:mID=3D"34" v:group= Context=3D"shape" transform=3D"translate(385.722,-247.213)&q= uot;>
+            &n= bsp;          <title>She= et.34</title>
+            &n= bsp;          <rect x=3D&qu= ot;0" y=3D"670.588" width=3D"153" height=3D"4= 5" class=3D"st18"/>
+            &n= bsp;  </g>
+            &n= bsp;  <g id=3D"shape35-75" v:mID=3D"35" v:group= Context=3D"shape" transform=3D"translate(358.722,-233.713)&q= uot;>
+            &n= bsp;          <title>She= et.35</title>
+            &n= bsp;          <rect x=3D&qu= ot;0" y=3D"670.588" width=3D"153" height=3D"4= 5" class=3D"st18"/>
+            &n= bsp;  </g>
+            &n= bsp;  <g id=3D"shape36-77" v:mID=3D"36" v:group= Context=3D"shape" transform=3D"translate(349.722,-220.213)&q= uot;>
+            &n= bsp;          <title>She= et.36</title>
+            &n= bsp;          <desc>Scri= pt-generated EDK2 Redfish Feature Driver</desc>
+            &n= bsp;          <v:textBlock = v:margins=3D"rect(4,4,4,4)"/>
+            &n= bsp;          <v:textRect c= x=3D"76.5" cy=3D"693.088" width=3D"153" heigh= t=3D"45"/>
+            &n= bsp;          <rect x=3D&qu= ot;0" y=3D"670.588" width=3D"153" height=3D"4= 5" class=3D"st19"/>
+            &n= bsp;          <text x=3D&qu= ot;16.96" y=3D"689.84" class=3D"st20" v:langID=3D&= quot;1033"><v:paragraph v:spLine=3D"-1" v:horizAlign= =3D"1"/><v:tabList/>Script-generated EDK2 <tspan
+            &n= bsp;            = ;            &n= bsp;         x=3D"17.33" = dy=3D"1em" class=3D"st5">Redfish Feature Driver</= tspan></text>         = ;   </g>
+            &n= bsp;  <g id=3D"shape40-81" v:mID=3D"40" v:group= Context=3D"shape" transform=3D"translate(453.222,-197.713)&q= uot;>
+            &n= bsp;          <title>She= et.40</title>
+            &n= bsp;          <desc>Comp= uterSystem</desc>
+            &n= bsp;          <v:textBlock = v:margins=3D"rect(4,4,4,4)"/>
+            &n= bsp;          <v:textRect c= x=3D"54" cy=3D"702.088" width=3D"108" height= =3D"27"/>
+            &n= bsp;          <rect x=3D&qu= ot;0" y=3D"688.588" width=3D"108" height=3D"2= 7" class=3D"st6"/>
+            &n= bsp;          <text x=3D&qu= ot;18.16" y=3D"704.59" class=3D"st22" v:langID=3D&= quot;1033"><v:paragraph v:spLine=3D"-1" v:horizAlign= =3D"1"/><v:tabList/>ComputerSystem</text> &nb= sp;        </g>
+            &n= bsp;  <g id=3D"shape41-84" v:mID=3D"41" v:group= Context=3D"shape" transform=3D"translate(475.722,-213.463)&q= uot;>
+            &n= bsp;          <title>She= et.41</title>
+            &n= bsp;          <desc>Boot= Option</desc>
+            &n= bsp;          <v:textBlock = v:margins=3D"rect(4,4,4,4)"/>
+            &n= bsp;          <v:textRect c= x=3D"54" cy=3D"702.088" width=3D"108" height= =3D"27"/>
+            &n= bsp;          <rect x=3D&qu= ot;0" y=3D"688.588" width=3D"108" height=3D"2= 7" class=3D"st6"/>
+            &n= bsp;          <text x=3D&qu= ot;29.69" y=3D"704.59" class=3D"st22" v:langID=3D&= quot;1033"><v:paragraph v:spLine=3D"-1" v:horizAlign= =3D"1"/><v:tabList/>BootOption</text>  &= nbsp;           </g>= ;
+            &n= bsp;  <g id=3D"shape42-87" v:mID=3D"42" v:group= Context=3D"shape" transform=3D"translate(493.722,-226.963)&q= uot;>
+            &n= bsp;          <title>She= et.42</title>
+            &n= bsp;          <desc>Memo= ry</desc>
+            &n= bsp;          <v:textBlock = v:margins=3D"rect(4,4,4,4)"/>
+            &n= bsp;          <v:textRect c= x=3D"54" cy=3D"702.088" width=3D"108" height= =3D"27"/>
+            &n= bsp;          <rect x=3D&qu= ot;0" y=3D"688.588" width=3D"108" height=3D"2= 7" class=3D"st6"/>
+            &n= bsp;          <text x=3D&qu= ot;36.21" y=3D"704.59" class=3D"st22" v:langID=3D&= quot;1033"><v:paragraph v:spLine=3D"-1" v:horizAlign= =3D"1"/><v:tabList/>Memory</text>   = ;       </g>
+            &n= bsp;  <g id=3D"shape43-90" v:mID=3D"43" v:group= Context=3D"shape" transform=3D"translate(608.472,-249.463)&q= uot;>
+            &n= bsp;          <title>She= et.43</title>
+            &n= bsp;          <rect x=3D&qu= ot;0" y=3D"670.588" width=3D"153" height=3D"4= 5" class=3D"st18"/>
+            &n= bsp;  </g>
+            &n= bsp;  <g id=3D"shape46-92" v:mID=3D"46" v:group= Context=3D"shape" transform=3D"translate(738.972,-262.963)&q= uot;>
+            &n= bsp;          <title>She= et.46</title>
+            &n= bsp;          <ellipse cx= =3D"1.6875" cy=3D"713.9" rx=3D"1.6875" ry=3D&= quot;1.6875" class=3D"st21"/>
+            &n= bsp;  </g>
+            &n= bsp;  <g id=3D"shape47-94" v:mID=3D"47" v:group= Context=3D"shape" transform=3D"translate(742.91,-268.025)&qu= ot;>
+            &n= bsp;          <title>She= et.47</title>
+            &n= bsp;          <ellipse cx= =3D"1.6875" cy=3D"713.9" rx=3D"1.6875" ry=3D&= quot;1.6875" class=3D"st21"/>
+            &n= bsp;  </g>
+            &n= bsp;  <g id=3D"shape48-96" v:mID=3D"48" v:group= Context=3D"shape" transform=3D"translate(747.41,-273.088)&qu= ot;>
+            &n= bsp;          <title>She= et.48</title>
+            &n= bsp;          <ellipse cx= =3D"1.6875" cy=3D"713.9" rx=3D"1.6875" ry=3D&= quot;1.6875" class=3D"st21"/>
+            &n= bsp;  </g>
+            &n= bsp;  <g id=3D"shape49-98" v:mID=3D"49" v:group= Context=3D"shape" transform=3D"translate(660.222,-199.963)&q= uot;>
+            &n= bsp;          <title>She= et.49</title>
+            &n= bsp;          <desc>Comp= uterSystemCollection</desc>
+            &n= bsp;          <v:textBlock = v:margins=3D"rect(4,4,4,4)"/>
+            &n= bsp;          <v:textRect c= x=3D"61.875" cy=3D"702.088" width=3D"123.75" = height=3D"27"/>
+            &n= bsp;          <rect x=3D&qu= ot;0" y=3D"688.588" width=3D"123.75" height=3D&quo= t;27" class=3D"st6"/>
+            &n= bsp;          <text x=3D&qu= ot;5.3" y=3D"704.59" class=3D"st22" v:langID=3D&qu= ot;1033"><v:paragraph v:spLine=3D"-1" v:horizAlign=3D&= quot;1"/><v:tabList/>ComputerSystemCollection</text>&nb= sp;         </g>
+            &n= bsp;  <g id=3D"shape50-101" v:mID=3D"50" v:grou= pContext=3D"shape" transform=3D"translate(720.972,-215.713)&= quot;>
+            &n= bsp;          <title>She= et.50</title>
+            &n= bsp;          <desc>Boot= OptionCollection</desc>
+            &n= bsp;          <v:textBlock = v:margins=3D"rect(4,4,4,4)"/>
+            &n= bsp;          <v:textRect c= x=3D"54" cy=3D"702.088" width=3D"108" height= =3D"27"/>
+            &n= bsp;          <rect x=3D&qu= ot;0" y=3D"688.588" width=3D"108" height=3D"2= 7" class=3D"st6"/>
+            &n= bsp;          <text x=3D&qu= ot;8.96" y=3D"704.59" class=3D"st22" v:langID=3D&q= uot;1033"><v:paragraph v:spLine=3D"-1" v:horizAlign=3D= "1"/><v:tabList/>BootOptionCollection</text> =             </g&g= t;
+            &n= bsp;  <g id=3D"shape51-104" v:mID=3D"51" v:grou= pContext=3D"shape" transform=3D"translate(732.222,-229.213)&= quot;>
+            &n= bsp;          <title>She= et.51</title>
+            &n= bsp;          <desc>Memo= ryCollection</desc>
+            &n= bsp;          <v:textBlock = v:margins=3D"rect(4,4,4,4)"/>
+            &n= bsp;          <v:textRect c= x=3D"54" cy=3D"702.088" width=3D"108" height= =3D"27"/>
+            &n= bsp;          <rect x=3D&qu= ot;0" y=3D"688.588" width=3D"108" height=3D"2= 7" class=3D"st6"/>
+            &n= bsp;          <text x=3D&qu= ot;15.48" y=3D"704.59" class=3D"st22" v:langID=3D&= quot;1033"><v:paragraph v:spLine=3D"-1" v:horizAlign= =3D"1"/><v:tabList/>MemoryCollection</text> &= nbsp;           &nbs= p;  </g>
+            &n= bsp;  <g id=3D"shape56-107" v:mID=3D"56" v:grou= pContext=3D"shape" v:layerMember=3D"0"
+            &n= bsp;            = ;      transform=3D"translate(515.651,-269.34= ) rotate(-1.84761)">
+            &n= bsp;          <title>Cur= ve connect 2.56</title>
+            &n= bsp;          <v:userDefs&g= t;
+            &n= bsp;            = ;      <v:ud v:nameU=3D"visVersion" v= :val=3D"VT0(15):26"/>
+            &n= bsp;          </v:userDefs&= gt;
+            &n= bsp;          <path d=3D&qu= ot;M1.08 713.99 L1.29 713.7 A41.432 41.432 0 0 1 69.79 715.59" class= =3D"st23"/>
+            &n= bsp;  </g>
+            &n= bsp;  <g id=3D"shape57-113" v:mID=3D"57" v:grou= pContext=3D"shape" transform=3D"translate(581.472,-235.963)&= quot;>
+            &n= bsp;          <title>She= et.57</title>
+            &n= bsp;          <rect x=3D&qu= ot;0" y=3D"670.588" width=3D"153" height=3D"4= 5" class=3D"st18"/>
+            &n= bsp;  </g>
+            &n= bsp;  <g id=3D"shape59-115" v:mID=3D"59" v:grou= pContext=3D"shape" v:layerMember=3D"0" transform=3D&quo= t;translate(291.222,-242.713)">
+            &n= bsp;          <title>1-D= double</title>
+            &n= bsp;          <v:userDefs&g= t;
+            &n= bsp;            = ;      <v:ud v:nameU=3D"visVersion" v= :val=3D"VT0(15):26"/>
+            &n= bsp;          </v:userDefs&= gt;
+            &n= bsp;          <path d=3D&qu= ot;M13.5 693.99 L13.5 688.59 L0 702.09 L13.5 715.59 L13.5 710.19 L31.5 710.= 19 L31.5 715.59 L45 702.09 L31.5 688.59
+            &n= bsp;            = ;            &n= bsp;          L31.5 693.99 L13= .5 693.99 Z" class=3D"st25"/>
+            &n= bsp;  </g>
+            &n= bsp;  <g id=3D"shape64-117" v:mID=3D"64" v:grou= pContext=3D"shape" transform=3D"translate(619.722,-467.713)&= quot;>
+            &n= bsp;          <title>She= et.64</title>
+            &n= bsp;          <desc>EDKI= I REDFISH_PLATFORM_CONFIG_PROTOCOL</desc>
+            &n= bsp;          <v:textBlock = v:margins=3D"rect(4,4,4,4)"/>
+            &n= bsp;          <v:textRect c= x=3D"99" cy=3D"693.088" width=3D"198" height= =3D"45"/>
+            &n= bsp;          <g id=3D"= ;shadow64-118" v:groupContext=3D"shadow" v:shadowOffsetX=3D&= quot;7.2E-008" v:shadowOffsetY=3D"0" v:shadowType=3D"1&= quot;
+            &n= bsp;            = ;            &n= bsp; v:shadowScale=3D"1.02" transform=3D"matrix(1.02,0,0,1.0= 2,-1.98,-13.8618)" class=3D"st10">
+            &n= bsp;            = ;      <path d=3D"M0 715.59 L198 715.59 L1= 98 670.59 L0 670.59 L0 715.59 Z" class=3D"st26"/>
+            &n= bsp;          </g>
+            &n= bsp;          <path d=3D&qu= ot;M0 715.59 L198 715.59 L198 670.59 L0 670.59 L0 715.59 Z" class=3D&q= uot;st27"/>
+            &n= bsp;          <text x=3D&qu= ot;85.18" y=3D"683.34" class=3D"st20" v:langID=3D&= quot;1033"><v:paragraph v:spLine=3D"-1" v:horizAlign= =3D"1"/><v:tabList/>EDKII <tspan
+            &n= bsp;            = ;            &n= bsp;         x=3D"5.65" d= y=3D"1em" class=3D"st5">REDFISH</tspan>_PLATFO= RM_CONFIG_PRO<tspan x=3D"81.03" dy=3D"1em" class=3D&= quot;st5">TOCOL</tspan></text>    &= nbsp;        </g>
+            &n= bsp;  <g id=3D"shape65-125" v:mID=3D"65" v:grou= pContext=3D"shape" transform=3D"translate(511.722,-445.213)&= quot;>
+            &n= bsp;          <title>She= et.65</title>
+            &n= bsp;          <desc>EDKI= I REDFISH_PLATFORM_CONFIG_PROTOCOL</desc>
+            &n= bsp;          <v:textBlock = v:margins=3D"rect(4,4,4,4)"/>
+            &n= bsp;          <v:textRect c= x=3D"99" cy=3D"693.088" width=3D"198" height= =3D"45"/>
+            &n= bsp;          <g id=3D"= ;shadow65-126" v:groupContext=3D"shadow" v:shadowOffsetX=3D&= quot;7.2E-008" v:shadowOffsetY=3D"0" v:shadowType=3D"1&= quot;
+            &n= bsp;            = ;            &n= bsp; v:shadowScale=3D"1.02" transform=3D"matrix(1.02,0,0,1.0= 2,-1.98,-13.8618)" class=3D"st10">
+            &n= bsp;            = ;      <path d=3D"M0 715.59 L198 715.59 L1= 98 670.59 L0 670.59 L0 715.59 Z" class=3D"st26"/>
+            &n= bsp;          </g>
+            &n= bsp;          <path d=3D&qu= ot;M0 715.59 L198 715.59 L198 670.59 L0 670.59 L0 715.59 Z" class=3D&q= uot;st28"/>
+            &n= bsp;          <text x=3D&qu= ot;85.18" y=3D"683.34" class=3D"st20" v:langID=3D&= quot;1033"><v:paragraph v:spLine=3D"-1" v:horizAlign= =3D"1"/><v:tabList/>EDKII <tspan
+            &n= bsp;            = ;            &n= bsp;         x=3D"5.65" d= y=3D"1em" class=3D"st5">REDFISH</tspan>_PLATFO= RM_CONFIG_PRO<tspan x=3D"81.03" dy=3D"1em" class=3D&= quot;st5">TOCOL</tspan></text>    &= nbsp;        </g>
+            &n= bsp;  <g id=3D"shape67-133" v:mID=3D"67" v:grou= pContext=3D"shape" transform=3D"translate(536.472,-593.713)&= quot;>
+            &n= bsp;          <title>She= et.67</title>
+            &n= bsp;          <desc>Othe= r Platform-specific Implementations</desc>
+            &n= bsp;          <v:textBlock = v:margins=3D"rect(4,4,4,4)"/>
+            &n= bsp;          <v:textRect c= x=3D"121.5" cy=3D"702.088" width=3D"243" heig= ht=3D"27"/>
+            &n= bsp;          <rect x=3D&qu= ot;0" y=3D"688.588" width=3D"243" height=3D"2= 7" class=3D"st6"/>
+            &n= bsp;          <text x=3D&qu= ot;20.02" y=3D"705.09" class=3D"st29" v:langID=3D&= quot;1033"><v:paragraph v:spLine=3D"-1" v:horizAlign= =3D"1"/><v:tabList/>Other Platform-specific Implementati= ons</text>         </g>=
+            &n= bsp;  <g id=3D"group71-136" transform=3D"translate(5= 67.972,-530.713)" v:mID=3D"71" v:groupContext=3D"group&= quot;>
+            &n= bsp;          <v:userDefs&g= t;
+            &n= bsp;            = ;      <v:ud v:nameU=3D"visVersion" v= :prompt=3D"" v:val=3D"VT0(15):26"/>
+            &n= bsp;          </v:userDefs&= gt;
+            &n= bsp;          <title>Can= .71</title>
+            &n= bsp;          <desc>EFI = Variable/ FW Storage</desc>
+            &n= bsp;          <g id=3D"= ;shape72-137" v:mID=3D"72" v:groupContext=3D"shape"= ;>
+            &n= bsp;            = ;      <title>Sheet.72</title>
+            &n= bsp;            = ;      <v:userDefs>
+            &n= bsp;            = ;            &n= bsp; <v:ud v:nameU=3D"ControlHalfHeight" v:prompt=3D"&quo= t; v:val=3D"VT0(0.125):1"/>
+            &n= bsp;            = ;            &n= bsp; <v:ud v:nameU=3D"FillForegnd" v:prompt=3D"" v:v= al=3D"VT0(1):26"/>
+            &n= bsp;            = ;            &n= bsp; <v:ud v:nameU=3D"ControlHalfHeight" v:prompt=3D"&quo= t; v:val=3D"VT0(0.0875):1"/>
+            &n= bsp;            = ;      </v:userDefs>
+            &n= bsp;            = ;      <path d=3D"M0 709.29 A29.25 6.3 -18= 0 1 0 58.5 709.29 L58.5 658.89 L0 658.89 L0 709.29 Z" class=3D"st= 30"/>
+            &n= bsp;          </g>
+            &n= bsp;          <g id=3D"= ;shape71-139" v:mID=3D"71" v:groupContext=3D"groupConte= nt">
+            &n= bsp;            = ;      <v:textBlock v:margins=3D"rect(4,4,= 4,4)"/>
+            &n= bsp;            = ;      <v:textRect cx=3D"29.25" cy=3D= "684.088" width=3D"58.5" height=3D"63"/> +            &n= bsp;            = ;      <ellipse cx=3D"29.25" cy=3D&qu= ot;658.888" rx=3D"29.25" ry=3D"6.3" class=3D"= st30"/>
+            &n= bsp;            = ;      <text x=3D"23.25" y=3D"67= 5.09" class=3D"st31" v:langID=3D"1033"><v:pa= ragraph v:horizAlign=3D"1"/><v:tabList/>EFI <tspan +            &n= bsp;            = ;            &n= bsp;            = ;     x=3D"10.54" dy=3D"1.2em" clas= s=3D"st5">Variable</tspan>/ <tspan x=3D"5.79&quo= t; dy=3D"1.2em" class=3D"st5">FW Storage</tspan&g= t;</text>          =            </g>
+            &n= bsp;  </g>
+            &n= bsp;  <g id=3D"group73-144" transform=3D"translate(6= 87.222,-530.713)" v:mID=3D"73" v:groupContext=3D"group&= quot;>
+            &n= bsp;          <v:userDefs&g= t;
+            &n= bsp;            = ;      <v:ud v:nameU=3D"visVersion" v= :prompt=3D"" v:val=3D"VT0(15):26"/>
+            &n= bsp;          </v:userDefs&= gt;
+            &n= bsp;          <title>Can= .73</title>
+            &n= bsp;          <desc>Othe= r Storage</desc>
+            &n= bsp;          <g id=3D"= ;shape74-145" v:mID=3D"74" v:groupContext=3D"shape"= ;>
+            &n= bsp;            = ;      <title>Sheet.74</title>
+            &n= bsp;            = ;      <v:userDefs>
+            &n= bsp;            = ;            &n= bsp; <v:ud v:nameU=3D"ControlHalfHeight" v:prompt=3D"&quo= t; v:val=3D"VT0(0.125):1"/>
+            &n= bsp;            = ;            &n= bsp; <v:ud v:nameU=3D"FillForegnd" v:prompt=3D"" v:v= al=3D"VT0(1):26"/>
+            &n= bsp;            = ;            &n= bsp; <v:ud v:nameU=3D"ControlHalfHeight" v:prompt=3D"&quo= t; v:val=3D"VT0(0.0875):1"/>
+            &n= bsp;            = ;      </v:userDefs>
+            &n= bsp;            = ;      <path d=3D"M0 709.29 A29.25 6.3 -18= 0 1 0 58.5 709.29 L58.5 658.89 L0 658.89 L0 709.29 Z" class=3D"st= 30"/>
+            &n= bsp;          </g>
+            &n= bsp;          <g id=3D"= ;shape73-147" v:mID=3D"73" v:groupContext=3D"groupConte= nt">
+            &n= bsp;            = ;      <v:textBlock v:margins=3D"rect(4,4,= 4,4)"/>
+            &n= bsp;            = ;      <v:textRect cx=3D"29.25" cy=3D= "684.088" width=3D"58.5" height=3D"63"/> +            &n= bsp;            = ;      <ellipse cx=3D"29.25" cy=3D&qu= ot;658.888" rx=3D"29.25" ry=3D"6.3" class=3D"= st30"/>
+            &n= bsp;            = ;      <text x=3D"17.41" y=3D"68= 1.09" class=3D"st31" v:langID=3D"1033"><v:pa= ragraph v:horizAlign=3D"1"/><v:tabList/>Other <tspan<= br> +            &n= bsp;            = ;            &n= bsp;            = ;     x=3D"13.66" dy=3D"1.2em" clas= s=3D"st5">Storage</tspan></text>   =             &nb= sp; </g>
+            &n= bsp;  </g>
+            &n= bsp;  <g id=3D"shape76-151" v:mID=3D"76" v:grou= pContext=3D"shape" v:layerMember=3D"0" transform=3D&quo= t;translate(1306.06,184.875) rotate(90)">
+            &n= bsp;          <title>1-D= double.76</title>
+            &n= bsp;          <v:userDefs&g= t;
+            &n= bsp;            = ;      <v:ud v:nameU=3D"visVersion" v= :val=3D"VT0(15):26"/>
+            &n= bsp;          </v:userDefs&= gt;
+            &n= bsp;          <path d=3D&qu= ot;M6.75 704.79 L6.75 702.09 L0 708.84 L6.75 715.59 L6.75 712.89 L33.75 712= .89 L33.75 715.59 L40.5 708.84 L33.75
+            &n= bsp;            = ;            &n= bsp;          702.09 L33.75 70= 4.79 L6.75 704.79 Z" class=3D"st32"/>
+            &n= bsp;  </g>
+            &n= bsp;  <g id=3D"shape77-153" v:mID=3D"77" v:grou= pContext=3D"shape" v:layerMember=3D"0" transform=3D&quo= t;translate(1425.31,184.875) rotate(90)">
+            &n= bsp;          <title>1-D= double.77</title>
+            &n= bsp;          <v:userDefs&g= t;
+            &n= bsp;            = ;      <v:ud v:nameU=3D"visVersion" v= :val=3D"VT0(15):26"/>
+            &n= bsp;          </v:userDefs&= gt;
+            &n= bsp;          <path d=3D&qu= ot;M6.75 704.79 L6.75 702.09 L0 708.84 L6.75 715.59 L6.75 712.89 L11.25 712= .89 L11.25 715.59 L18 708.84 L11.25
+            &n= bsp;            = ;            &n= bsp;          702.09 L11.25 70= 4.79 L6.75 704.79 Z" class=3D"st32"/>
+            &n= bsp;  </g>
+            &n= bsp;  <g id=3D"shape78-155" v:mID=3D"78" v:grou= pContext=3D"shape" transform=3D"translate(21.2224,-139.213)&= quot;>
+            &n= bsp;          <title>She= et.78</title>
+            &n= bsp;          <path d=3D&qu= ot;M0 715.59 L810 715.59" class=3D"st33"/>
+            &n= bsp;  </g>
+            &n= bsp;  <g id=3D"group80-158" transform=3D"translate(-= 173.49,382.875) rotate(-90)" v:mID=3D"80" v:groupContext=3D&= quot;group">
+            &n= bsp;          <v:userDefs&g= t;
+            &n= bsp;            = ;      <v:ud v:nameU=3D"ControlDistFromCor= ner" v:prompt=3D"" v:val=3D"VT0(0.35355339059327):1&quo= t;/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"AngToControl"= v:prompt=3D"" v:val=3D"VT0(0.78539816339745):32"/><= br> +            &n= bsp;            = ;      <v:ud v:nameU=3D"XFoldLength" = v:prompt=3D"" v:val=3D"VT0(0.25):1"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"YFoldLength" = v:prompt=3D"" v:val=3D"VT0(0.25):1"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"visVersion" v= :prompt=3D"" v:val=3D"VT0(15):26"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"ControlDistFromCor= ner" v:prompt=3D"" v:val=3D"VT0(0.57622152858081):1&quo= t;/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"AngToControl"= v:prompt=3D"" v:val=3D"VT0(0.70862627212768):32"/><= br> +            &n= bsp;            = ;      <v:ud v:nameU=3D"XFoldLength" = v:prompt=3D"" v:val=3D"VT0(0.44270833333333):1"/> +            &n= bsp;            = ;      <v:ud v:nameU=3D"YFoldLength" = v:prompt=3D"" v:val=3D"VT0(0.3794642857143):1"/>
+            &n= bsp;          </v:userDefs&= gt;
+            &n= bsp;          <title>Fol= ded Corner</title>
+            &n= bsp;          <g id=3D"= ;shape80-159" v:mID=3D"80" v:groupContext=3D"groupConte= nt">
+            &n= bsp;            = ;      <g id=3D"shadow80-160" v:group= Context=3D"shadow" v:shadowOffsetX=3D"7.2E-008" v:shado= wOffsetY=3D"0" v:shadowType=3D"1"
+            &n= bsp;            = ;            &n= bsp;         v:shadowScale=3D"= 1.02" transform=3D"matrix(1.02,0,0,1.02,-3.105,-9.45175)" cl= ass=3D"st10">
+            &n= bsp;            = ;            &n= bsp; <path d=3D"M0 715.59 L278.62 715.59 L310.5 688.27 L310.5 229.5= 9 L0 229.59 L0 715.59 Z" class=3D"st34"/>
+            &n= bsp;            = ;      </g>
+            &n= bsp;            = ;      <path d=3D"M0 715.59 L278.62 715.59= L310.5 688.27 L310.5 229.59 L0 229.59 L0 715.59 Z" class=3D"st36= "/>
+            &n= bsp;          </g>
+            &n= bsp;          <g id=3D"= ;shape81-168" v:mID=3D"81" v:groupContext=3D"shape"= ; transform=3D"translate(278.625,0)">
+            &n= bsp;            = ;      <title>Sheet.81</title>
+            &n= bsp;            = ;      <v:userDefs>
+            &n= bsp;            = ;            &n= bsp; <v:ud v:nameU=3D"ControlX" v:prompt=3D"" v:val= =3D"VT0(1):1"/>
+            &n= bsp;            = ;            &n= bsp; <v:ud v:nameU=3D"ControlY" v:prompt=3D"" v:val= =3D"VT0(0.25):1"/>
+            &n= bsp;            = ;            &n= bsp; <v:ud v:nameU=3D"XFoldLength" v:prompt=3D"" v:v= al=3D"VT0(0.25):1"/>
+            &n= bsp;            = ;            &n= bsp; <v:ud v:nameU=3D"YFoldLength" v:prompt=3D"" v:v= al=3D"VT0(0.25):1"/>
+            &n= bsp;            = ;            &n= bsp; <v:ud v:nameU=3D"FillForegnd" v:prompt=3D"" v:v= al=3D"VT0(1):26"/>
+            &n= bsp;            = ;            &n= bsp; <v:ud v:nameU=3D"ControlX" v:prompt=3D"" v:val= =3D"VT0(3.9375):1"/>
+            &n= bsp;            = ;            &n= bsp; <v:ud v:nameU=3D"ControlY" v:prompt=3D"" v:val= =3D"VT0(0.4375):1"/>
+            &n= bsp;            = ;            &n= bsp; <v:ud v:nameU=3D"XFoldLength" v:prompt=3D"" v:v= al=3D"VT0(0.44270833333333):1"/>
+            &n= bsp;            = ;            &n= bsp; <v:ud v:nameU=3D"YFoldLength" v:prompt=3D"" v:v= al=3D"VT0(0.3794642857143):1"/>
+            &n= bsp;            = ;            &n= bsp; <v:ud v:nameU=3D"FillForegnd" v:prompt=3D"" v:v= al=3D"VT5(#f2f2f2)"/>
+            &n= bsp;            = ;      </v:userDefs>
+            &n= bsp;            = ;      <g id=3D"shadow81-169" v:group= Context=3D"shadow" v:shadowOffsetX=3D"7.2E-008" v:shado= wOffsetY=3D"0" v:shadowType=3D"1"
+            &n= bsp;            = ;            &n= bsp;         v:shadowScale=3D"= 1.02" transform=3D"matrix(1.02,0,0,1.02,-0.6375,-14.3117)" c= lass=3D"st10">
+            &n= bsp;            = ;            &n= bsp; <path d=3D"M0 715.59 L31.88 688.27 L4.87 684.09 L0 715.59 Z&qu= ot; class=3D"st34"/>
+            &n= bsp;            = ;      </g>
+            &n= bsp;            = ;      <path d=3D"M0 715.59 L31.88 688.27 = L4.87 684.09 L0 715.59 Z" class=3D"st38"/>
+            &n= bsp;          </g>
+            &n= bsp;  </g>
+            &n= bsp;  <g id=3D"group82-175" transform=3D"translate(4= 32.972,-530.713)" v:mID=3D"82" v:groupContext=3D"group&= quot;>
+            &n= bsp;          <v:userDefs&g= t;
+            &n= bsp;            = ;      <v:ud v:nameU=3D"visVersion" v= :prompt=3D"" v:val=3D"VT0(15):26"/>
+            &n= bsp;          </v:userDefs&= gt;
+            &n= bsp;          <title>Can= .69</title>
+            &n= bsp;          <desc>EDK2= HII Database</desc>
+            &n= bsp;          <g id=3D"= ;shape83-176" v:mID=3D"83" v:groupContext=3D"shape"= ;>
+            &n= bsp;            = ;      <title>Sheet.83</title>
+            &n= bsp;            = ;      <v:userDefs>
+            &n= bsp;            = ;            &n= bsp; <v:ud v:nameU=3D"ControlHalfHeight" v:prompt=3D"&quo= t; v:val=3D"VT0(0.125):1"/>
+            &n= bsp;            = ;            &n= bsp; <v:ud v:nameU=3D"FillForegnd" v:prompt=3D"" v:v= al=3D"VT0(1):26"/>
+            &n= bsp;            = ;            &n= bsp; <v:ud v:nameU=3D"ControlHalfHeight" v:prompt=3D"&quo= t; v:val=3D"VT0(0.0875):1"/>
+            &n= bsp;            = ;      </v:userDefs>
+            &n= bsp;            = ;      <path d=3D"M0 709.29 A29.25 6.3 -18= 0 1 0 58.5 709.29 L58.5 658.89 L0 658.89 L0 709.29 Z" class=3D"st= 39"/>
+            &n= bsp;          </g>
+            &n= bsp;          <g id=3D"= ;shape82-178" v:mID=3D"82" v:groupContext=3D"groupConte= nt">
+            &n= bsp;            = ;      <v:textBlock v:margins=3D"rect(4,4,= 4,4)"/>
+            &n= bsp;            = ;      <v:textRect cx=3D"29.25" cy=3D= "684.088" width=3D"58.5" height=3D"63"/> +            &n= bsp;            = ;      <ellipse cx=3D"29.25" cy=3D&qu= ot;658.888" rx=3D"29.25" ry=3D"6.3" class=3D"= st39"/>
+            &n= bsp;            = ;      <text x=3D"11.84" y=3D"68= 1.09" class=3D"st31" v:langID=3D"1033"><v:pa= ragraph v:horizAlign=3D"1"/><v:tabList/>EDK2 HII <tsp= an
+            &n= bsp;            = ;            &n= bsp;            = ;     x=3D"10.24" dy=3D"1.2em" clas= s=3D"st5">Database</tspan></text>   = ;            &n= bsp;        </g>
+            &n= bsp;  </g>
+            &n= bsp;  <g id=3D"shape84-182" v:mID=3D"84" v:grou= pContext=3D"shape" transform=3D"translate(390.222,-429.463)&= quot;>
+            &n= bsp;          <title>She= et.84</title>
+            &n= bsp;          <desc>EDKI= I REDFISH_PLATFORM_CONFIG_PROTOCOL</desc>
+            &n= bsp;          <v:textBlock = v:margins=3D"rect(4,4,4,4)"/>
+            &n= bsp;          <v:textRect c= x=3D"72" cy=3D"693.088" width=3D"144" height= =3D"45"/>
+            &n= bsp;          <g id=3D"= ;shadow84-183" v:groupContext=3D"shadow" v:shadowOffsetX=3D&= quot;7.2E-008" v:shadowOffsetY=3D"0" v:shadowType=3D"1&= quot;
+            &n= bsp;            = ;            &n= bsp; v:shadowScale=3D"1.02" transform=3D"matrix(1.02,0,0,1.0= 2,-1.44,-13.8618)" class=3D"st10">
+            &n= bsp;            = ;      <rect x=3D"0" y=3D"670.58= 8" width=3D"144" height=3D"45" class=3D"st40&= quot;/>
+            &n= bsp;          </g>
+            &n= bsp;          <rect x=3D&qu= ot;0" y=3D"670.588" width=3D"144" height=3D"4= 5" class=3D"st41"/>
+            &n= bsp;          <text x=3D&qu= ot;58.18" y=3D"683.34" class=3D"st20" v:langID=3D&= quot;1033"><v:paragraph v:spLine=3D"-1" v:horizAlign= =3D"1"/><v:tabList/>EDKII <tspan
+            &n= bsp;            = ;            &n= bsp;         x=3D"6" dy= =3D"1em" class=3D"st5">REDFISH</tspan>_PLATFOR= M_CO<tspan x=3D"26.68" dy=3D"1em" class=3D"st5&= quot;>NFIG</tspan>_PROTOCOL</text>    &n= bsp;           </g>=
+            &n= bsp;  <g id=3D"shape85-190" v:mID=3D"85" v:grou= pContext=3D"shape" v:layerMember=3D"0" transform=3D&quo= t;translate(1171.06,184.875) rotate(90)">
+            &n= bsp;          <title>1-D= double.75</title>
+            &n= bsp;          <v:userDefs&g= t;
+            &n= bsp;            = ;      <v:ud v:nameU=3D"visVersion" v= :val=3D"VT0(15):26"/>
+            &n= bsp;          </v:userDefs&= gt;
+            &n= bsp;          <path d=3D&qu= ot;M6.75 704.79 L6.75 702.09 L0 708.84 L6.75 715.59 L6.75 712.89 L49.5 712.= 89 L49.5 715.59 L56.25 708.84 L49.5
+            &n= bsp;            = ;            &n= bsp;          702.09 L49.5 704= .79 L6.75 704.79 Z" class=3D"st39"/>
+            &n= bsp;  </g>
+            &n= bsp;  <g id=3D"shape86-192" v:mID=3D"86" v:grou= pContext=3D"shape" v:layerMember=3D"0" transform=3D&quo= t;translate(1164.31,286.125) rotate(90)">
+            &n= bsp;          <title>1-D= double.68</title>
+            &n= bsp;          <v:userDefs&g= t;
+            &n= bsp;            = ;      <v:ud v:nameU=3D"visVersion" v= :val=3D"VT0(15):26"/>
+            &n= bsp;          </v:userDefs&= gt;
+            &n= bsp;          <g id=3D"= ;shadow86-193" v:groupContext=3D"shadow" v:shadowOffsetX=3D&= quot;7.2E-008" v:shadowOffsetY=3D"0" v:shadowType=3D"1&= quot;
+            &n= bsp;            = ;            &n= bsp; v:shadowScale=3D"1.02" transform=3D"matrix(1.02,0,0,1.0= 2,-1.1475,-14.0418)" class=3D"st10">
+            &n= bsp;            = ;      <path d=3D"M13.5 693.99 L13.5 688.5= 9 L0 702.09 L13.5 715.59 L13.5 710.19 L101.25 710.19 L101.25 715.59 L114.75= 702.09
+            &n= bsp;            = ;            &n= bsp;            = ;      L101.25 688.59 L101.25 693.99 L13.5 693.99 = Z" class=3D"st40"/>
+            &n= bsp;          </g>
+            &n= bsp;          <path d=3D&qu= ot;M13.5 693.99 L13.5 688.59 L0 702.09 L13.5 715.59 L13.5 710.19 L101.25 71= 0.19 L101.25 715.59 L114.75 702.09 L101.25
+            &n= bsp;            = ;            &n= bsp;          688.59 L101.25 6= 93.99 L13.5 693.99 Z" class=3D"st39"/>
+            &n= bsp;  </g>
+            &n= bsp;  <g id=3D"shape87-197" v:mID=3D"87" v:grou= pContext=3D"shape" transform=3D"translate(27.9724,-616.213)&= quot;>
+            &n= bsp;          <title>She= et.87</title>
+            &n= bsp;          <desc>EDK2= Open Source Implementation</desc>
+            &n= bsp;          <v:textBlock = v:margins=3D"rect(4,4,4,4)"/>
+            &n= bsp;          <v:textRect c= x=3D"121.5" cy=3D"702.088" width=3D"243" heig= ht=3D"27"/>
+            &n= bsp;          <rect x=3D&qu= ot;0" y=3D"688.588" width=3D"243" height=3D"2= 7" class=3D"st6"/>
+            &n= bsp;          <text x=3D&qu= ot;34.39" y=3D"705.09" class=3D"st29" v:langID=3D&= quot;1033"><v:paragraph v:spLine=3D"-1" v:horizAlign= =3D"1"/><v:tabList/>EDK2 Open Source Implementation</= text>         </g>
+            &n= bsp;  <g id=3D"shape88-200" v:mID=3D"88" v:grou= pContext=3D"shape" v:layerMember=3D"0" transform=3D&quo= t;translate(1312.81,270.375) rotate(90)">
+            &n= bsp;          <title>1-D= double.88</title>
+            &n= bsp;          <v:userDefs&g= t;
+            &n= bsp;            = ;      <v:ud v:nameU=3D"visVersion" v= :val=3D"VT0(15):26"/>
+            &n= bsp;          </v:userDefs&= gt;
+            &n= bsp;          <path d=3D&qu= ot;M13.5 693.99 L13.5 688.59 L0 702.09 L13.5 715.59 L13.5 710.19 L117 710.1= 9 L117 715.59 L130.5 702.09 L117 688.59
+            &n= bsp;            = ;            &n= bsp;          L117 693.99 L13.= 5 693.99 Z" class=3D"st42"/>
+            &n= bsp;  </g>
+            &n= bsp;  <g id=3D"shape89-202" v:mID=3D"89" v:grou= pContext=3D"shape" v:layerMember=3D"0" transform=3D&quo= t;translate(1434.31,247.875) rotate(90)">
+            &n= bsp;          <title>1-D= double.89</title>
+            &n= bsp;          <v:userDefs&g= t;
+            &n= bsp;            = ;      <v:ud v:nameU=3D"visVersion" v= :val=3D"VT0(15):26"/>
+            &n= bsp;          </v:userDefs&= gt;
+            &n= bsp;          <path d=3D&qu= ot;M13.5 693.99 L13.5 688.59 L0 702.09 L13.5 715.59 L13.5 710.19 L139.5 710= .19 L139.5 715.59 L153 702.09 L139.5
+            &n= bsp;            = ;            &n= bsp;          688.59 L139.5 69= 3.99 L13.5 693.99 Z" class=3D"st43"/>
+            &n= bsp;  </g>
+            &n= bsp;  <g id=3D"shape90-204" v:mID=3D"90" v:grou= pContext=3D"shape" v:layerMember=3D"0"
+            &n= bsp;            = ;      transform=3D"translate(838.629,252.112= ) rotate(68.1986)">
+            &n= bsp;          <title>Cur= ve connect 1.61</title>
+            &n= bsp;          <v:userDefs&g= t;
+            &n= bsp;            = ;      <v:ud v:nameU=3D"Scale" v:val= =3D"VT0(1):26"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"AntiScale" v:= val=3D"VT0(1):26"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"visVersion" v= :val=3D"VT0(15):26"/>
+            &n= bsp;          </v:userDefs&= gt;
+            &n= bsp;          <path d=3D&qu= ot;M7.53 720.84 L7.83 721.04 A30.61 30.61 -180 0 0 42.41 715.59 A30.61 30.6= 1 0 0 1 76.99 710.13 L77.29 710.34"
+            &n= bsp;            = ;            &n= bsp; class=3D"st44"/>
+            &n= bsp;  </g>
+            &n= bsp;  <g id=3D"shape91-213" v:mID=3D"91" v:grou= pContext=3D"shape" v:layerMember=3D"0"
+            &n= bsp;            = ;      transform=3D"translate(-37.5816,162.84= 4) rotate(-60.2551) scale(-1,1)">
+            &n= bsp;          <title>Cur= ve connect 1.62</title>
+            &n= bsp;          <v:userDefs&g= t;
+            &n= bsp;            = ;      <v:ud v:nameU=3D"Scale" v:val= =3D"VT0(1):26"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"AntiScale" v:= val=3D"VT0(1):26"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"visVersion" v= :val=3D"VT0(15):26"/>
+            &n= bsp;          </v:userDefs&= gt;
+            &n= bsp;          <path d=3D&qu= ot;M7.67 720.62 L7.98 720.82 A34.3918 34.3918 -180 0 0 45.35 715.59 A34.391= 8 34.3918 0 0 1 82.72 710.35 L83.03
+            &n= bsp;            = ;            &n= bsp;          710.55" cla= ss=3D"st44"/>
+            &n= bsp;  </g>
+            &n= bsp;  <g id=3D"shape94-220" v:mID=3D"94" v:grou= pContext=3D"shape" v:layerMember=3D"0"
+            &n= bsp;            = ;      transform=3D"translate(488.651,-255.84= ) rotate(-1.84761)">
+            &n= bsp;          <title>Cur= ve connect 2.54</title>
+            &n= bsp;          <v:userDefs&g= t;
+            &n= bsp;            = ;      <v:ud v:nameU=3D"visVersion" v= :val=3D"VT0(15):26"/>
+            &n= bsp;          </v:userDefs&= gt;
+            &n= bsp;          <path d=3D&qu= ot;M1.08 713.99 L1.29 713.7 A41.432 41.432 0 0 1 69.79 715.59" class= =3D"st23"/>
+            &n= bsp;  </g>
+            &n= bsp;  <g id=3D"shape96-225" v:mID=3D"96" v:grou= pContext=3D"shape" transform=3D"translate(572.472,-222.463)&= quot;>
+            &n= bsp;          <title>She= et.96</title>
+            &n= bsp;          <desc>Scri= pt-generated EDK2 Redfish Collection Driver</desc>
+            &n= bsp;          <v:textBlock = v:margins=3D"rect(4,4,4,4)"/>
+            &n= bsp;          <v:textRect c= x=3D"76.5" cy=3D"693.088" width=3D"153" heigh= t=3D"45"/>
+            &n= bsp;          <rect x=3D&qu= ot;0" y=3D"670.588" width=3D"153" height=3D"4= 5" class=3D"st19"/>
+            &n= bsp;          <text x=3D&qu= ot;16.96" y=3D"689.84" class=3D"st20" v:langID=3D&= quot;1033"><v:paragraph v:spLine=3D"-1" v:horizAlign= =3D"1"/><v:tabList/>Script-generated EDK2 <tspan
+            &n= bsp;            = ;            &n= bsp;         x=3D"11.39" = dy=3D"1em" class=3D"st5">Redfish Collection Driver&l= t;/tspan></text>         &= lt;/g>
+            &n= bsp;  <g id=3D"shape98-229" v:mID=3D"98" v:grou= pContext=3D"shape" transform=3D"translate(67.3474,-420.463)&= quot;>
+            &n= bsp;          <title>Rou= nded Rectangle.98</title>
+            &n= bsp;          <desc>EDK2= HII UNI file #string STR_OPTION_A #language x-uefi-redfi...</desc> +            &n= bsp;          <v:userDefs&g= t;
+            &n= bsp;            = ;      <v:ud v:nameU=3D"CTypeTopLeftSnip&q= uot; v:prompt=3D"" v:val=3D"VT0(0):5"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"CTypeTopRightSnip&= quot; v:prompt=3D"" v:val=3D"VT0(0):5"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"CTypeBotLeftSnip&q= uot; v:prompt=3D"" v:val=3D"VT0(0):5"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"CTypeBotRightSnip&= quot; v:prompt=3D"" v:val=3D"VT0(0):5"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"CornerLockHoriz&qu= ot; v:prompt=3D"" v:val=3D"VT0(1):5"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"CornerLockVert&quo= t; v:prompt=3D"" v:val=3D"VT0(1):5"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"CornerLockDiag&quo= t; v:prompt=3D"" v:val=3D"VT0(0):5"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"TopLeftOffset"= ; v:prompt=3D"" v:val=3D"VT0(0.15):1"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"TopRightOffset&quo= t; v:prompt=3D"" v:val=3D"VT0(0.15):1"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"BotLeftOffset"= ; v:prompt=3D"" v:val=3D"VT0(0.15):1"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"BotRightOffset&quo= t; v:prompt=3D"" v:val=3D"VT0(0.15):1"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"visVersion" v= :prompt=3D"" v:val=3D"VT0(15):26"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"TopLeftOffset"= ; v:prompt=3D"" v:val=3D"VT0(0.10739436619718):1"/><= br> +            &n= bsp;            = ;      <v:ud v:nameU=3D"TopRightOffset&quo= t; v:prompt=3D"" v:val=3D"VT0(0.10739436619718):1"/>=
+            &n= bsp;            = ;      <v:ud v:nameU=3D"BotLeftOffset"= ; v:prompt=3D"" v:val=3D"VT0(0.10739436619718):1"/><= br> +            &n= bsp;            = ;      <v:ud v:nameU=3D"BotRightOffset&quo= t; v:prompt=3D"" v:val=3D"VT0(0.10739436619718):1"/>=
+            &n= bsp;          </v:userDefs&= gt;
+            &n= bsp;          <v:textBlock = v:margins=3D"rect(4,4,4,4)" v:verticalAlign=3D"0"/><= br> +            &n= bsp;          <v:textRect c= x=3D"137.25" cy=3D"672.838" width=3D"274.5" h= eight=3D"85.5"/>
+            &n= bsp;          <path d=3D&qu= ot;M7.73 715.59 L266.77 715.59 A7.73227 7.73227 -180 0 0 274.5 707.86 L274.= 5 637.82 A7.73227 7.73227 -180 0 0 266.77
+            &n= bsp;            = ;            &n= bsp;          630.09 L7.73 630= .09 A7.73227 7.73227 -180 0 0 -0 637.82 L0 707.86 A7.73227 7.73227 -180 0 0= 7.73 715.59
+            &n= bsp;            = ;            &n= bsp;          Z" class=3D= "st46"/>
+            &n= bsp;          <text x=3D&qu= ot;4" y=3D"646.69" class=3D"st47" v:langID=3D"= ;1033"><v:paragraph v:spBefore=3D"6" v:bulletSize=3D&q= uot;0.166667"/><v:tabList/>EDK2 HII UNI file<v:lf/><= tspan
+            &n= bsp;            = ;            &n= bsp;         x=3D"4" dy= =3D"1.425em" class=3D"st48">#</tspan><tspan= class=3D"st48">string </tspan><tspan class=3D"s= t49">STR</tspan><tspan
+            &n= bsp;            = ;            &n= bsp;         class=3D"st49&quo= t;>_</tspan><tspan class=3D"st49">OPTION</tspan= ><tspan class=3D"st49">_</tspan><tspan class=3D= "st49">A</tspan><tspan
+            &n= bsp;            = ;            &n= bsp;         class=3D"st48&quo= t;>  </tspan><tspan class=3D"st48">#</tspa= n><tspan class=3D"st48">language </tspan><tspan=
+            &n= bsp;            = ;            &n= bsp;         class=3D"st49&quo= t;>x</tspan><tspan class=3D"st49">-</tspan>&= lt;tspan class=3D"st49">uefi</tspan><tspan class=3D&q= uot;st49">-</tspan><tspan
+            &n= bsp;            = ;            &n= bsp;         class=3D"st49&quo= t;>redfish</tspan><tspan class=3D"st49">-</tspa= n><tspan class=3D"st49">SCHEMA</tspan><tspan +            &n= bsp;            = ;            &n= bsp;         class=3D"st49&quo= t;>.</tspan><tspan class=3D"st49">VERSION</tspa= n><tspan class=3D"st48">  </tspan><tspan c= lass=3D"st49"> </tspan><tspan
+            &n= bsp;            = ;            &n= bsp;         x=3D"4" dy= =3D"1.2em" class=3D"st50">=93</tspan><tspan= class=3D"st50">/</tspan><tspan class=3D"st50&qu= ot;>SCHEMA</tspan><tspan
+            &n= bsp;            = ;            &n= bsp;         class=3D"st50&quo= t;>/</tspan><tspan class=3D"st50">PropertyA</ts= pan><tspan class=3D"st49">=94 </tspan><tspan +            &n= bsp;            = ;            &n= bsp;         class=3D"st48&quo= t;> <v:newlineChar/><v:paragraph v:bulletSize=3D"0.166667&= quot;/></tspan><tspan x=3D"4" dy=3D"1.2em"<= br> +            &n= bsp;            = ;            &n= bsp;         class=3D"st48&quo= t;>#</tspan><tspan class=3D"st48">string</tspan= ><tspan class=3D"st49"> </tspan><tspan class=3D= "st49">STR</tspan><tspan
+            &n= bsp;            = ;            &n= bsp;         class=3D"st49&quo= t;>_</tspan><tspan class=3D"st49">OPTION</tspan= ><tspan class=3D"st49">_</tspan><tspan class=3D= "st49">B</tspan><tspan
+            &n= bsp;            = ;            &n= bsp;         class=3D"st48&quo= t;>  </tspan><tspan class=3D"st48">#</tspa= n><tspan class=3D"st48">language</tspan><tspan = class=3D"st49"> </tspan><tspan
+            &n= bsp;            = ;            &n= bsp;         class=3D"st49&quo= t;>x</tspan><tspan class=3D"st49">-</tspan>&= lt;tspan class=3D"st49">uefi</tspan><tspan class=3D&q= uot;st49">-</tspan><tspan
+            &n= bsp;            = ;            &n= bsp;         class=3D"st49&quo= t;>redfish</tspan><tspan class=3D"st49">-</tspa= n><tspan class=3D"st49">SCHEMA</tspan><tspan +            &n= bsp;            = ;            &n= bsp;         class=3D"st49&quo= t;>.</tspan><tspan class=3D"st49">VERSION</tspa= n><tspan class=3D"st48">  </tspan><tspan c= lass=3D"st50"> </tspan><tspan
+            &n= bsp;            = ;            &n= bsp;         x=3D"4" dy= =3D"1.2em" class=3D"st50">=93</tspan><tspan= class=3D"st50">/</tspan><tspan class=3D"st50&qu= ot;>SCHEMA</tspan><tspan
+            &n= bsp;            = ;            &n= bsp;         class=3D"st50&quo= t;>/</tspan><tspan class=3D"st50">PropertyB</ts= pan><tspan class=3D"st50">=94<v:newlineChar/></= tspan><tspan
+            &n= bsp;            = ;            &n= bsp;         x=3D"4" dy= =3D"1.2em" class=3D"st48">#</tspan><tspan c= lass=3D"st48">string </tspan><tspan class=3D"st4= 9">STR</tspan><tspan
+            &n= bsp;            = ;            &n= bsp;         class=3D"st49&quo= t;>_</tspan><tspan class=3D"st49">OPTION</tspan= ><tspan class=3D"st49">_</tspan><tspan class=3D= "st48">C  </tspan><tspan
+            &n= bsp;            = ;            &n= bsp;         class=3D"st48&quo= t;>#</tspan><tspan class=3D"st48">language</tsp= an><tspan class=3D"st49"> </tspan><tspan class= =3D"st49">x</tspan><tspan
+            &n= bsp;            = ;            &n= bsp;         class=3D"st49&quo= t;>-</tspan><tspan class=3D"st49">uefi</tspan&g= t;<tspan class=3D"st49">-</tspan><tspan class=3D&q= uot;st49">redfish</tspan><tspan
+            &n= bsp;            = ;            &n= bsp;         class=3D"st49&quo= t;>-</tspan><tspan class=3D"st49">SCHEMA</tspan= ><tspan class=3D"st49">.</tspan><tspan class=3D= "st49">VERSION</tspan><tspan
+            &n= bsp;            = ;            &n= bsp;         class=3D"st48&quo= t;>  </tspan><tspan class=3D"st50"> </tspa= n><tspan x=3D"4" dy=3D"1.312em" class=3D"st5= 0">=93</tspan><tspan
+            &n= bsp;            = ;            &n= bsp;         class=3D"st50&quo= t;>/</tspan><tspan class=3D"st50">SCHEMA</tspan= ><tspan class=3D"st50">/</tspan><tspan class=3D= "st50">PropertyC</tspan><tspan
+            &n= bsp;            = ;            &n= bsp;         class=3D"st50&quo= t;>=94</tspan><v:newlineChar/></text>   = ;        </g>
+            &n= bsp;  <g id=3D"shape100-316" v:mID=3D"100" v:gr= oupContext=3D"shape" transform=3D"translate(171.972,-550.963= )">
+            &n= bsp;          <title>Rou= nded Rectangle.100</title>
+            &n= bsp;          <desc>EDK2= HII VFR Form Option A Enabled Option B Disabled Option C...</desc> +            &n= bsp;          <v:userDefs&g= t;
+            &n= bsp;            = ;      <v:ud v:nameU=3D"CTypeTopLeftSnip&q= uot; v:prompt=3D"" v:val=3D"VT0(0):5"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"CTypeTopRightSnip&= quot; v:prompt=3D"" v:val=3D"VT0(0):5"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"CTypeBotLeftSnip&q= uot; v:prompt=3D"" v:val=3D"VT0(0):5"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"CTypeBotRightSnip&= quot; v:prompt=3D"" v:val=3D"VT0(0):5"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"CornerLockHoriz&qu= ot; v:prompt=3D"" v:val=3D"VT0(1):5"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"CornerLockVert&quo= t; v:prompt=3D"" v:val=3D"VT0(1):5"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"CornerLockDiag&quo= t; v:prompt=3D"" v:val=3D"VT0(0):5"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"TopLeftOffset"= ; v:prompt=3D"" v:val=3D"VT0(0.15):1"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"TopRightOffset&quo= t; v:prompt=3D"" v:val=3D"VT0(0.15):1"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"BotLeftOffset"= ; v:prompt=3D"" v:val=3D"VT0(0.15):1"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"BotRightOffset&quo= t; v:prompt=3D"" v:val=3D"VT0(0.15):1"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"visVersion" v= :prompt=3D"" v:val=3D"VT0(15):26"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"TopLeftOffset"= ; v:prompt=3D"" v:val=3D"VT0(0.0625):1"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"TopRightOffset&quo= t; v:prompt=3D"" v:val=3D"VT0(0.0625):1"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"BotLeftOffset"= ; v:prompt=3D"" v:val=3D"VT0(0.0625):1"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"BotRightOffset&quo= t; v:prompt=3D"" v:val=3D"VT0(0.0625):1"/>
+            &n= bsp;          </v:userDefs&= gt;
+            &n= bsp;          <v:textBlock = v:margins=3D"rect(4,4,4,4)" v:verticalAlign=3D"0"/><= br> +            &n= bsp;          <v:textRect c= x=3D"76.5" cy=3D"688.025" width=3D"153" heigh= t=3D"55.125"/>
+            &n= bsp;          <path d=3D&qu= ot;M4.5 715.59 L148.5 715.59 A4.49993 4.49993 -180 0 0 153 711.09 L153 664.= 96 A4.49993 4.49993 -180 0 0 148.5 660.46
+            &n= bsp;            = ;            &n= bsp;          L4.5 660.46 A4.4= 9993 4.49993 -180 0 0 0 664.96 L0 711.09 A4.49993 4.49993 -180 0 0 4.5 715.= 59 Z"
+            &n= bsp;            = ;            &n= bsp; class=3D"st51"/>
+            &n= bsp;          <text x=3D&qu= ot;37.65" y=3D"671.66" class=3D"st52" v:langID=3D&= quot;1033"><v:paragraph v:spLine=3D"-0.8" v:horizAlign= =3D"1"/><v:tabList/>EDK2 HII VFR Form<v:lf/><v:= lf/><tspan
+            &n= bsp;            = ;            &n= bsp;         x=3D"24.37" = dy=3D"1.6em" class=3D"st53">Option A  &nbs= p;     Enabled<v:newlineChar/></tspan><t= span x=3D"24.6" dy=3D"0.8em"
+            &n= bsp;            = ;            &n= bsp;         class=3D"st53&quo= t;>Option B       Disabled<v:newlineCha= r/></tspan><tspan x=3D"24.4" dy=3D"0.8em" c= lass=3D"st53">Option C      &nbs= p;       </tspan><tspan
+            &n= bsp;            = ;            &n= bsp;         class=3D"st53&quo= t;>0</tspan><tspan class=3D"st53">x</tspan>&= lt;tspan class=3D"st53">16</tspan></text> &nb= sp;            =   </g>
+            &n= bsp;  <g id=3D"shape101-325" v:mID=3D"101" v:gr= oupContext=3D"shape" transform=3D"translate(147.222,-539.713= )">
+            &n= bsp;          <title>Rou= nded Rectangle.101</title>
+            &n= bsp;          <desc>EDK2= HII VFR Form Option A Enabled Option B Disabled Option C...</desc> +            &n= bsp;          <v:userDefs&g= t;
+            &n= bsp;            = ;      <v:ud v:nameU=3D"CTypeTopLeftSnip&q= uot; v:prompt=3D"" v:val=3D"VT0(0):5"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"CTypeTopRightSnip&= quot; v:prompt=3D"" v:val=3D"VT0(0):5"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"CTypeBotLeftSnip&q= uot; v:prompt=3D"" v:val=3D"VT0(0):5"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"CTypeBotRightSnip&= quot; v:prompt=3D"" v:val=3D"VT0(0):5"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"CornerLockHoriz&qu= ot; v:prompt=3D"" v:val=3D"VT0(1):5"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"CornerLockVert&quo= t; v:prompt=3D"" v:val=3D"VT0(1):5"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"CornerLockDiag&quo= t; v:prompt=3D"" v:val=3D"VT0(0):5"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"TopLeftOffset"= ; v:prompt=3D"" v:val=3D"VT0(0.15):1"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"TopRightOffset&quo= t; v:prompt=3D"" v:val=3D"VT0(0.15):1"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"BotLeftOffset"= ; v:prompt=3D"" v:val=3D"VT0(0.15):1"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"BotRightOffset&quo= t; v:prompt=3D"" v:val=3D"VT0(0.15):1"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"visVersion" v= :prompt=3D"" v:val=3D"VT0(15):26"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"TopLeftOffset"= ; v:prompt=3D"" v:val=3D"VT0(0.0625):1"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"TopRightOffset&quo= t; v:prompt=3D"" v:val=3D"VT0(0.0625):1"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"BotLeftOffset"= ; v:prompt=3D"" v:val=3D"VT0(0.0625):1"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"BotRightOffset&quo= t; v:prompt=3D"" v:val=3D"VT0(0.0625):1"/>
+            &n= bsp;          </v:userDefs&= gt;
+            &n= bsp;          <v:textBlock = v:margins=3D"rect(4,4,4,4)" v:verticalAlign=3D"0"/><= br> +            &n= bsp;          <v:textRect c= x=3D"76.5" cy=3D"688.025" width=3D"153" heigh= t=3D"55.125"/>
+            &n= bsp;          <path d=3D&qu= ot;M4.5 715.59 L148.5 715.59 A4.49993 4.49993 -180 0 0 153 711.09 L153 664.= 96 A4.49993 4.49993 -180 0 0 148.5 660.46
+            &n= bsp;            = ;            &n= bsp;          L4.5 660.46 A4.4= 9993 4.49993 -180 0 0 0 664.96 L0 711.09 A4.49993 4.49993 -180 0 0 4.5 715.= 59 Z"
+            &n= bsp;            = ;            &n= bsp; class=3D"st51"/>
+            &n= bsp;          <text x=3D&qu= ot;37.65" y=3D"671.66" class=3D"st52" v:langID=3D&= quot;1033"><v:paragraph v:spLine=3D"-0.8" v:horizAlign= =3D"1"/><v:tabList/>EDK2 HII VFR Form<v:lf/><v:= lf/><tspan
+            &n= bsp;            = ;            &n= bsp;         x=3D"24.37" = dy=3D"1.6em" class=3D"st53">Option A  &nbs= p;     Enabled<v:newlineChar/></tspan><t= span x=3D"24.6" dy=3D"0.8em"
+            &n= bsp;            = ;            &n= bsp;         class=3D"st53&quo= t;>Option B       Disabled<v:newlineCha= r/></tspan><tspan x=3D"24.4" dy=3D"0.8em" c= lass=3D"st53">Option C      &nbs= p;       </tspan><tspan
+            &n= bsp;            = ;            &n= bsp;         class=3D"st53&quo= t;>0</tspan><tspan class=3D"st53">x</tspan>&= lt;tspan class=3D"st53">16</tspan></text> &nb= sp;            =   </g>
+            &n= bsp;  <g id=3D"shape102-334" v:mID=3D"102" v:gr= oupContext=3D"shape" transform=3D"translate(129.222,-526.213= )">
+            &n= bsp;          <title>Rou= nded Rectangle</title>
+            &n= bsp;          <desc>EDK2= HII VFR Form Option A Enabled Option B Disabled Option C...</desc> +            &n= bsp;          <v:userDefs&g= t;
+            &n= bsp;            = ;      <v:ud v:nameU=3D"CTypeTopLeftSnip&q= uot; v:prompt=3D"" v:val=3D"VT0(0):5"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"CTypeTopRightSnip&= quot; v:prompt=3D"" v:val=3D"VT0(0):5"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"CTypeBotLeftSnip&q= uot; v:prompt=3D"" v:val=3D"VT0(0):5"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"CTypeBotRightSnip&= quot; v:prompt=3D"" v:val=3D"VT0(0):5"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"CornerLockHoriz&qu= ot; v:prompt=3D"" v:val=3D"VT0(1):5"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"CornerLockVert&quo= t; v:prompt=3D"" v:val=3D"VT0(1):5"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"CornerLockDiag&quo= t; v:prompt=3D"" v:val=3D"VT0(0):5"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"TopLeftOffset"= ; v:prompt=3D"" v:val=3D"VT0(0.15):1"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"TopRightOffset&quo= t; v:prompt=3D"" v:val=3D"VT0(0.15):1"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"BotLeftOffset"= ; v:prompt=3D"" v:val=3D"VT0(0.15):1"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"BotRightOffset&quo= t; v:prompt=3D"" v:val=3D"VT0(0.15):1"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"visVersion" v= :prompt=3D"" v:val=3D"VT0(15):26"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"TopLeftOffset"= ; v:prompt=3D"" v:val=3D"VT0(0.0625):1"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"TopRightOffset&quo= t; v:prompt=3D"" v:val=3D"VT0(0.0625):1"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"BotLeftOffset"= ; v:prompt=3D"" v:val=3D"VT0(0.0625):1"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"BotRightOffset&quo= t; v:prompt=3D"" v:val=3D"VT0(0.0625):1"/>
+            &n= bsp;          </v:userDefs&= gt;
+            &n= bsp;          <v:textBlock = v:margins=3D"rect(4,4,4,4)" v:verticalAlign=3D"0"/><= br> +            &n= bsp;          <v:textRect c= x=3D"76.5" cy=3D"688.025" width=3D"153" heigh= t=3D"55.125"/>
+            &n= bsp;          <path d=3D&qu= ot;M4.5 715.59 L148.5 715.59 A4.49993 4.49993 -180 0 0 153 711.09 L153 664.= 96 A4.49993 4.49993 -180 0 0 148.5 660.46
+            &n= bsp;            = ;            &n= bsp;          L4.5 660.46 A4.4= 9993 4.49993 -180 0 0 0 664.96 L0 711.09 A4.49993 4.49993 -180 0 0 4.5 715.= 59 Z"
+            &n= bsp;            = ;            &n= bsp; class=3D"st51"/>
+            &n= bsp;          <text x=3D&qu= ot;29.88" y=3D"671.66" class=3D"st29" v:langID=3D&= quot;1033"><v:paragraph v:spLine=3D"-0.8" v:horizAlign= =3D"1"/><v:tabList/>EDK2 HII VFR Form<v:lf/><v:= lf/><tspan
+            &n= bsp;            = ;            &n= bsp;         x=3D"24.37" = dy=3D"1.6em" class=3D"st54">Option A  &nbs= p;     </tspan><tspan class=3D"st55"= >Enabled<v:newlineChar/></tspan><tspan
+            &n= bsp;            = ;            &n= bsp;         x=3D"24.6" d= y=3D"0.8em" class=3D"st54">Option B   = ;    </tspan><tspan class=3D"st55">Dis= abled<v:newlineChar/></tspan><tspan
+            &n= bsp;            = ;            &n= bsp;         x=3D"24.4" d= y=3D"0.8em" class=3D"st54">Option C   = ;           </tspan>= ;<tspan class=3D"st55">0</tspan><tspan
+            &n= bsp;            = ;            &n= bsp;         class=3D"st55&quo= t;>x</tspan><tspan class=3D"st55">16</tspan>= </text>          &n= bsp;  </g>
+            &n= bsp;  <g id=3D"shape110-345" v:mID=3D"110" v:gr= oupContext=3D"shape" v:layerMember=3D"0"
+            &n= bsp;            = ;      transform=3D"translate(503.938,-444.61= 3) rotate(13.0919)">
+            &n= bsp;          <title>Cur= ve connect 1.110</title>
+            &n= bsp;          <v:userDefs&g= t;
+            &n= bsp;            = ;      <v:ud v:nameU=3D"Scale" v:val= =3D"VT0(1):26"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"AntiScale" v:= val=3D"VT0(1):26"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"visVersion" v= :val=3D"VT0(15):26"/>
+            &n= bsp;          </v:userDefs&= gt;
+            &n= bsp;          <path d=3D&qu= ot;M0 715.59 A11.592 11.592 0 0 1 22.97 715.59 A13.4718 13.4718 -180 0 0 48= .31 719.9 L48.42 719.56" class=3D"st56"/>
+            &n= bsp;  </g>
+            &n= bsp;  <g id=3D"shape122-351" v:mID=3D"122" v:gr= oupContext=3D"shape" transform=3D"translate(41.4724,-96.4625= )">
+            &n= bsp;          <title>She= et.122</title>
+            &n= bsp;          <desc>[1]&= lt;/desc>
+            &n= bsp;          <v:textBlock = v:margins=3D"rect(4,4,4,4)"/>
+            &n= bsp;          <v:textRect c= x=3D"12.375" cy=3D"702.088" width=3D"24.75" h= eight=3D"27"/>
+            &n= bsp;          <rect x=3D&qu= ot;0" y=3D"688.588" width=3D"24.75" height=3D"= ;27" class=3D"st6"/>
+            &n= bsp;          <text x=3D&qu= ot;5.44" y=3D"705.09" class=3D"st7" v:langID=3D&qu= ot;1033"><v:paragraph v:spLine=3D"-1" v:horizAlign=3D&= quot;1"/><v:tabList/>[1]</text>    =            </g>
+            &n= bsp;  <g id=3D"shape123-354" v:mID=3D"123" v:gr= oupContext=3D"shape" transform=3D"translate(746.847,-100.963= )">
+            &n= bsp;          <title>She= et.123</title>
+            &n= bsp;          <desc>[2]&= lt;/desc>
+            &n= bsp;          <v:textBlock = v:margins=3D"rect(4,4,4,4)"/>
+            &n= bsp;          <v:textRect c= x=3D"12.375" cy=3D"702.088" width=3D"24.75" h= eight=3D"27"/>
+            &n= bsp;          <rect x=3D&qu= ot;0" y=3D"688.588" width=3D"24.75" height=3D"= ;27" class=3D"st6"/>
+            &n= bsp;          <text x=3D&qu= ot;5.44" y=3D"705.09" class=3D"st7" v:langID=3D&qu= ot;1033"><v:paragraph v:spLine=3D"-1" v:horizAlign=3D&= quot;1"/><v:tabList/>[2]</text>    =            </g>
+            &n= bsp;  <g id=3D"shape124-357" v:mID=3D"124" v:gr= oupContext=3D"shape" transform=3D"translate(68.4724,-278.713= )">
+            &n= bsp;          <title>She= et.124</title>
+            &n= bsp;          <desc>[3]&= lt;/desc>
+            &n= bsp;          <v:textBlock = v:margins=3D"rect(4,4,4,4)"/>
+            &n= bsp;          <v:textRect c= x=3D"12.375" cy=3D"702.088" width=3D"24.75" h= eight=3D"27"/>
+            &n= bsp;          <rect x=3D&qu= ot;0" y=3D"688.588" width=3D"24.75" height=3D"= ;27" class=3D"st6"/>
+            &n= bsp;          <text x=3D&qu= ot;5.44" y=3D"705.09" class=3D"st7" v:langID=3D&qu= ot;1033"><v:paragraph v:spLine=3D"-1" v:horizAlign=3D&= quot;1"/><v:tabList/>[3]</text>    =            </g>
+            &n= bsp;  <g id=3D"shape125-360" v:mID=3D"125" v:gr= oupContext=3D"shape" transform=3D"translate(338.472,-269.713= )">
+            &n= bsp;          <title>She= et.125</title>
+            &n= bsp;          <desc>[4]&= lt;/desc>
+            &n= bsp;          <v:textBlock = v:margins=3D"rect(4,4,4,4)"/>
+            &n= bsp;          <v:textRect c= x=3D"12.375" cy=3D"702.088" width=3D"24.75" h= eight=3D"27"/>
+            &n= bsp;          <rect x=3D&qu= ot;0" y=3D"688.588" width=3D"24.75" height=3D"= ;27" class=3D"st6"/>
+            &n= bsp;          <text x=3D&qu= ot;5.44" y=3D"705.09" class=3D"st7" v:langID=3D&qu= ot;1033"><v:paragraph v:spLine=3D"-1" v:horizAlign=3D&= quot;1"/><v:tabList/>[4]</text>    =            </g>
+            &n= bsp;  <g id=3D"shape126-363" v:mID=3D"126" v:gr= oupContext=3D"shape" transform=3D"translate(761.472,-269.713= )">
+            &n= bsp;          <title>She= et.126</title>
+            &n= bsp;          <desc>[5]&= lt;/desc>
+            &n= bsp;          <v:textBlock = v:margins=3D"rect(4,4,4,4)"/>
+            &n= bsp;          <v:textRect c= x=3D"12.375" cy=3D"702.088" width=3D"24.75" h= eight=3D"27"/>
+            &n= bsp;          <rect x=3D&qu= ot;0" y=3D"688.588" width=3D"24.75" height=3D"= ;27" class=3D"st6"/>
+            &n= bsp;          <text x=3D&qu= ot;5.44" y=3D"705.09" class=3D"st7" v:langID=3D&qu= ot;1033"><v:paragraph v:spLine=3D"-1" v:horizAlign=3D&= quot;1"/><v:tabList/>[5]</text>    =            </g>
+            &n= bsp;  <g id=3D"shape127-366" v:mID=3D"127" v:gr= oupContext=3D"shape" transform=3D"translate(390.222,-476.713= )">
+            &n= bsp;          <title>She= et.127</title>
+            &n= bsp;          <desc>[6]&= lt;/desc>
+            &n= bsp;          <v:textBlock = v:margins=3D"rect(4,4,4,4)"/>
+            &n= bsp;          <v:textRect c= x=3D"12.375" cy=3D"702.088" width=3D"24.75" h= eight=3D"27"/>
+            &n= bsp;          <rect x=3D&qu= ot;0" y=3D"688.588" width=3D"24.75" height=3D"= ;27" class=3D"st6"/>
+            &n= bsp;          <text x=3D&qu= ot;5.44" y=3D"705.09" class=3D"st7" v:langID=3D&qu= ot;1033"><v:paragraph v:spLine=3D"-1" v:horizAlign=3D&= quot;1"/><v:tabList/>[6]</text>    =            </g>
+            &n= bsp;  <g id=3D"shape128-369" v:mID=3D"128" v:gr= oupContext=3D"shape" transform=3D"translate(123.597,-579.088= )">
+            &n= bsp;          <title>She= et.128</title>
+            &n= bsp;          <desc>[8]&= lt;/desc>
+            &n= bsp;          <v:textBlock = v:margins=3D"rect(4,4,4,4)"/>
+            &n= bsp;          <v:textRect c= x=3D"12.375" cy=3D"702.088" width=3D"24.75" h= eight=3D"27"/>
+            &n= bsp;          <rect x=3D&qu= ot;0" y=3D"688.588" width=3D"24.75" height=3D"= ;27" class=3D"st6"/>
+            &n= bsp;          <text x=3D&qu= ot;5.44" y=3D"705.09" class=3D"st7" v:langID=3D&qu= ot;1033"><v:paragraph v:spLine=3D"-1" v:horizAlign=3D&= quot;1"/><v:tabList/>[8]</text>    =            </g>
+            &n= bsp;  <g id=3D"shape129-372" v:mID=3D"129" v:gr= oupContext=3D"shape" transform=3D"translate(62.8474,-501.463= )">
+            &n= bsp;          <title>She= et.129</title>
+            &n= bsp;          <desc>[9]&= lt;/desc>
+            &n= bsp;          <v:textBlock = v:margins=3D"rect(4,4,4,4)"/>
+            &n= bsp;          <v:textRect c= x=3D"12.375" cy=3D"702.088" width=3D"24.75" h= eight=3D"27"/>
+            &n= bsp;          <rect x=3D&qu= ot;0" y=3D"688.588" width=3D"24.75" height=3D"= ;27" class=3D"st6"/>
+            &n= bsp;          <text x=3D&qu= ot;5.44" y=3D"705.09" class=3D"st7" v:langID=3D&qu= ot;1033"><v:paragraph v:spLine=3D"-1" v:horizAlign=3D&= quot;1"/><v:tabList/>[9]</text>    =            </g>
+            &n= bsp;  <g id=3D"shape132-375" v:mID=3D"132" v:gr= oupContext=3D"shape" v:layerMember=3D"0"
+            &n= bsp;            = ;      transform=3D"translate(583.722,1233.46= ) rotate(180)">
+            &n= bsp;          <title>Cur= ve connect 2.132</title>
+            &n= bsp;          <v:userDefs&g= t;
+            &n= bsp;            = ;      <v:ud v:nameU=3D"visVersion" v= :val=3D"VT0(15):26"/>
+            &n= bsp;          </v:userDefs&= gt;
+            &n= bsp;          <path d=3D&qu= ot;M2.78 714.72 L3.12 714.61 A681.188 681.188 0 0 1 406.38 714.61 L406.72 7= 14.72" class=3D"st58"/>
+            &n= bsp;  </g>
+            &n= bsp;  <g id=3D"shape133-384" v:mID=3D"133" v:gr= oupContext=3D"shape" transform=3D"translate(238.347,-157.213= )">
+            &n= bsp;          <title>She= et.133</title>
+            &n= bsp;          <desc>Scri= pt-generated EDK2 Redfish client driver/library based on ...</desc> +            &n= bsp;          <v:textBlock = v:margins=3D"rect(4,4,4,4)"/>
+            &n= bsp;          <v:textRect c= x=3D"130.5" cy=3D"702.088" width=3D"261" heig= ht=3D"27"/>
+            &n= bsp;          <rect x=3D&qu= ot;0" y=3D"688.588" width=3D"261" height=3D"2= 7" class=3D"st1"/>
+            &n= bsp;          <text x=3D&qu= ot;11.21" y=3D"699.84" class=3D"st60" v:langID=3D&= quot;1033"><v:paragraph v:spLine=3D"-1" v:horizAlign= =3D"1"/><v:tabList/>Script-generated EDK2 Redfish client= driver/library based on the <tspan
+            &n= bsp;            = ;            &n= bsp;         x=3D"45.23" = dy=3D"1em" class=3D"st5">standard Redfish schemas &l= t;/tspan>published by DMTF</text>     &nb= sp;          </g>
+            &n= bsp;  <g id=3D"shape134-388" v:mID=3D"134" v:gr= oupContext=3D"shape" transform=3D"translate(21.2224,-679.775= )">
+            &n= bsp;          <title>Rec= tangle.134</title>
+            &n= bsp;          <v:userDefs&g= t;
+            &n= bsp;            = ;      <v:ud v:nameU=3D"visVersion" v= :val=3D"VT0(15):26"/>
+            &n= bsp;          </v:userDefs&= gt;
+            &n= bsp;          <rect x=3D&qu= ot;0" y=3D"703.213" width=3D"24.75" height=3D"= ;12.375" class=3D"st2"/>
+            &n= bsp;  </g>
+            &n= bsp;  <g id=3D"shape135-390" v:mID=3D"135" v:gr= oupContext=3D"shape" transform=3D"translate(41.4724,-670.213= )">
+            &n= bsp;          <title>She= et.135</title>
+            &n= bsp;          <desc>Scri= pt-generated code</desc>
+            &n= bsp;          <v:textBlock = v:margins=3D"rect(4,4,4,4)"/>
+            &n= bsp;          <v:textRect c= x=3D"54" cy=3D"702.088" width=3D"108" height= =3D"27"/>
+            &n= bsp;          <rect x=3D&qu= ot;0" y=3D"688.588" width=3D"108" height=3D"2= 7" class=3D"st6"/>
+            &n= bsp;          <text x=3D&qu= ot;12.79" y=3D"704.34" class=3D"st61" v:langID=3D&= quot;1033"><v:paragraph v:spLine=3D"-1" v:horizAlign= =3D"1"/><v:tabList/>Script-generated code</text>&n= bsp;          </g>
+            &n= bsp;  <g id=3D"shape137-393" v:mID=3D"137" v:gr= oupContext=3D"shape" transform=3D"translate(21.2224,-661.213= )">
+            &n= bsp;          <title>Rec= tangle.137</title>
+            &n= bsp;          <v:userDefs&g= t;
+            &n= bsp;            = ;      <v:ud v:nameU=3D"visVersion" v= :val=3D"VT0(15):26"/>
+            &n= bsp;          </v:userDefs&= gt;
+            &n= bsp;          <rect x=3D&qu= ot;0" y=3D"703.213" width=3D"24.75" height=3D"= ;12.375" class=3D"st62"/>
+            &n= bsp;  </g>
+            &n= bsp;  <g id=3D"shape138-395" v:mID=3D"138" v:gr= oupContext=3D"shape" transform=3D"translate(43.7224,-652.213= )">
+            &n= bsp;          <title>She= et.138</title>
+            &n= bsp;          <desc>UEFI= /EDK2 open source</desc>
+            &n= bsp;          <v:textBlock = v:margins=3D"rect(4,4,4,4)"/>
+            &n= bsp;          <v:textRect c= x=3D"54" cy=3D"702.088" width=3D"108" height= =3D"27"/>
+            &n= bsp;          <rect x=3D&qu= ot;0" y=3D"688.588" width=3D"108" height=3D"2= 7" class=3D"st6"/>
+            &n= bsp;          <text x=3D&qu= ot;9.97" y=3D"704.34" class=3D"st61" v:langID=3D&q= uot;1033"><v:paragraph v:spLine=3D"-1" v:horizAlign=3D= "1"/><v:tabList/>UEFI/EDK2 open source</text> = ;           </g> +            &n= bsp;  <g id=3D"shape140-398" v:mID=3D"140" v:gr= oupContext=3D"shape" transform=3D"translate(281.66,-341.784)= ">
+            &n= bsp;          <title>Con= figure</title>
+            &n= bsp;          <v:userDefs&g= t;
+            &n= bsp;            = ;      <v:ud v:nameU=3D"msvShapeCategories= " v:prompt=3D"" v:val=3D"VT4(Icon)"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"visVersion" v= :prompt=3D"" v:val=3D"VT0(15):26"/>
+            &n= bsp;          </v:userDefs&= gt;
+            &n= bsp;          <path d=3D&qu= ot;M41.27 698.83 C40.4 698.46 37.61 697.28 37.61 697.28 L37.79 694.96 L37.9= 4 693.01 L37.69 689.29 L39.53 688.23
+            &n= bsp;            = ;            &n= bsp;          C39.53 688.23 40= .46 687.84 41.33 687.49 C40.71 685.96 40.45 685.33 39.82 683.81 C38.94 684.= 17 36.06 685.35
+            &n= bsp;            = ;            &n= bsp;          36.06 685.35 L34= .63 683.57 C33.94 682.7 33.09 681.89 32.02 681.06 L30.33 679.75 L31.01 677.= 68 C31.01 677.68
+            &n= bsp;            = ;            &n= bsp;          31.41 676.7 31.7= 9 675.77 C30.27 675.14 29.64 674.88 28.12 674.26 C27.72 675.23 26.52 678.17= 26.52 678.17
+            &n= bsp;            = ;            &n= bsp;          L24.28 677.95 C2= 3.14 677.83 21.96 677.86 20.77 678.02 L18.64 678.3 L17.65 676.35 C17.65 676= .35 17.21 675.31
+            &n= bsp;            = ;            &n= bsp;          16.78 674.31 C15= .27 674.95 14.64 675.21 13.13 675.85 C13.58 676.92 14.85 679.93 14.85 679.9= 3 L13.12 681.37
+            &n= bsp;            = ;            &n= bsp;          C12.3 682.05 11.= 54 682.85 10.79 683.83 L9.49 685.52 L7.41 684.86 C7.41 684.86 6.28 684.4 5.= 17 683.96 C4.56
+            &n= bsp;            = ;            &n= bsp;          685.49 4.31 686.= 12 3.69 687.65 C4.82 688.1 7.84 689.31 7.84 689.31 C7.84 689.31 7.65 692.73= 7.63 693 C7.65
+            &n= bsp;            = ;            &n= bsp;          693.25 7.7 694.0= 1 7.7 694.03 C7.7 694.03 7.87 695.84 7.87 695.84 L6.79 696.82 C6.46 697.15 = 6.34 697.24 3.64
+            &n= bsp;            = ;            &n= bsp;          698.3 C4.24 699.= 84 4.49 700.47 5.08 702.01 C6.21 701.57 9.36 700.34 9.36 700.34 L10.99 702.= 57 C11.49 703.19
+            &n= bsp;            = ;            &n= bsp;          12.18 703.89 13.= 04 704.61 L14.63 705.96 L13.93 707.96 C13.93 707.96 13.45 709.08 12.97 710.= 2 C14.47 710.85
+            &n= bsp;            = ;            &n= bsp;          15.1 711.12 16.6= 1 711.77 C17.05 710.74 18.36 707.71 18.36 707.71 L20.65 708.03 C21.73 708.1= 9 22.89 708.21
+            &n= bsp;            = ;            &n= bsp;          24.1 708.1 L26.1= 8 707.92 L27.11 709.84 C27.11 709.84 27.53 710.9 27.94 711.93 C29.47 711.32= 30.1 711.07
+            &n= bsp;            = ;            &n= bsp;          31.63 710.45 C31= .25 709.51 30.04 706.48 30.04 706.48 L32.32 704.83 C32.97 704.31 33.71 703.= 56 34.48 702.62
+            &n= bsp;            = ;            &n= bsp;          L35.81 701 L37.8= 5 701.7 C37.85 701.7 38.82 702.1 39.73 702.49 C40.37 700.97 40.64 700.34 41= .27 698.83 ZM40.58
+            &n= bsp;            = ;            &n= bsp;          695.32 C40.58 69= 5.32 40.57 695.4 40.56 695.47 C40.95 695.64 44.96 697.33 44.96 697.33 L41.2= 3 706.17 C41.23
+            &n= bsp;            = ;            &n= bsp;          706.17 37.13 704= .45 36.75 704.28 C36.7 704.34 36.65 704.41 36.65 704.41 C35.76 705.49 34.89= 706.37 33.97
+            &n= bsp;            = ;            &n= bsp;          707.11 C33.97 70= 7.11 33.67 707.33 33.46 707.47 C33.62 707.88 35.28 712.02 35.28 712.02 L26.= 38 715.59 C26.38
+            &n= bsp;            = ;            &n= bsp;          715.59 24.65 711= .28 24.5 710.89 C24.42 710.9 24.34 710.9 24.34 710.9 C22.91 711.03 21.54 71= 1 20.25 710.82
+            &n= bsp;            = ;            &n= bsp;          C20.25 710.82 20= .17 710.8 20.09 710.79 C19.93 711.19 18.08 715.47 18.08 715.47 L9.27 711.66= C9.27 711.66
+            &n= bsp;            = ;            &n= bsp;          11.18 707.25 11.= 34 706.86 C11.29 706.81 11.22 706.76 11.22 706.76 C10.23 705.92 9.41 705.09= 8.72 704.23
+            &n= bsp;            = ;            &n= bsp;          C8.72 704.23 8.5= 1 703.94 8.37 703.75 C7.96 703.9 3.49 705.65 3.49 705.65 L0 696.71 C0 696.7= 1 4.8 694.83
+            &n= bsp;            = ;            &n= bsp;          4.8 694.83 C4.8 = 694.83 4.88 694.8 4.95 694.78 C4.92 694.54 4.89 694.21 4.89 694.21 L4.82 69= 3.02 C4.82 693.02
+            &n= bsp;            = ;            &n= bsp;          4.9 691.52 4.92 = 691.17 C4.54 691.02 0.04 689.21 0.04 689.21 L3.6 680.3 C3.6 680.3 8.06 682.= 09 8.46 682.25
+            &n= bsp;            = ;            &n= bsp;          C8.51 682.18 8.5= 6 682.12 8.56 682.12 C9.43 680.98 10.34 680.02 11.33 679.2 C11.33 679.2 11.= 39 679.15 11.45
+            &n= bsp;            = ;            &n= bsp;          679.11 C11.29 67= 8.72 9.45 674.35 9.45 674.35 L18.29 670.62 C18.29 670.62 20.07 674.85 20.24= 675.25 C20.31
+            &n= bsp;            = ;            &n= bsp;          675.24 20.39 675= .23 20.39 675.23 C21.8 675.04 23.2 675.01 24.56 675.15 C24.56 675.15 24.63 = 675.16 24.71
+            &n= bsp;            = ;            &n= bsp;          675.16 C24.87 67= 4.78 26.59 670.59 26.59 670.59 L35.46 674.23 C35.46 674.23 33.77 678.34 33.= 61 678.74 C33.67
+            &n= bsp;            = ;            &n= bsp;          678.78 33.74 678= .83 33.74 678.83 C34.99 679.8 35.99 680.77 36.82 681.8 C36.82 681.8 36.88 6= 81.88 36.94 681.95
+            &n= bsp;            = ;            &n= bsp;          C37.33 681.79 41= .35 680.14 41.35 680.14 L45 689.02 C45 689.02 40.99 690.67 40.6 690.83 C40.= 61 690.9 40.62
+            &n= bsp;            = ;            &n= bsp;          690.98 40.62 690= .98 C40.71 691.76 40.75 692.41 40.75 693.01 C40.75 693.7 40.7 694.43 40.58 = 695.32 ZM26.56
+            &n= bsp;            = ;            &n= bsp;          697.76 C29.16 69= 5.67 29.58 691.87 27.5 689.26 C25.42 686.65 21.62 686.23 19.01 688.31 C16.4= 1 690.4 15.98
+            &n= bsp;            = ;            &n= bsp;          694.2 18.07 696.= 81 C20.15 699.42 23.95 699.84 26.56 697.76 ZM23.76 684.23 C26.11 684.49 28.= 22 685.65 29.7
+            &n= bsp;            = ;            &n= bsp;          687.5 C32.75 691= .32 32.12 696.9 28.31 699.95 C26.47 701.43 24.16 702.1 21.8 701.84 C19.45 7= 01.58 17.34 700.41
+            &n= bsp;            = ;            &n= bsp;          15.87 698.56 C14= .57 696.94 13.93 694.98 13.93 693.04 C13.93 690.44 15.07 687.86 17.25 686.1= 2 C19.1 684.64
+            &n= bsp;            = ;            &n= bsp;          21.41 683.97 23.= 76 684.23 Z" class=3D"st63"/>
+            &n= bsp;  </g>
+            &n= bsp;  <g id=3D"shape145-400" v:mID=3D"145" v:gr= oupContext=3D"shape" v:layerMember=3D"0"
+            &n= bsp;            = ;      transform=3D"translate(323.911,1069.28= ) scale(1,-1)">
+            &n= bsp;          <title>Sid= e to top/bottom.145</title>
+            &n= bsp;          <v:userDefs&g= t;
+            &n= bsp;            = ;      <v:ud v:nameU=3D"TextPos" v:va= l=3D"VT0(0):5"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"visVersion" v= :val=3D"VT0(15):26"/>
+            &n= bsp;          </v:userDefs&= gt;
+            &n= bsp;          <path d=3D&qu= ot;M7.18 715.59 L7.54 715.59 L96.69 715.59 L96.69 668.4" class=3D"= ;st64"/>
+            &n= bsp;  </g>
+            &n= bsp;  <g id=3D"shape146-406" v:mID=3D"146" v:gr= oupContext=3D"shape" v:layerMember=3D"0" transform=3D&q= uot;translate(204.597,-382.144)">
+            &n= bsp;          <title>Bot= tom to top fixed 2</title>
+            &n= bsp;          <v:userDefs&g= t;
+            &n= bsp;            = ;      <v:ud v:nameU=3D"TextPos" v:va= l=3D"VT0(1):26"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"Offset" v:val= =3D"VT0(0.25):0"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"Scale" v:val= =3D"VT0(1):26"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"AntiScale" v:= val=3D"VT0(1):26"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"visVersion" v= :val=3D"VT0(15):26"/>
+            &n= bsp;          </v:userDefs&= gt;
+            &n= bsp;          <path d=3D&qu= ot;M0 677.27 L0 697.59 L99.14 697.59 L99.14 708.05" class=3D"st66= "/>
+            &n= bsp;  </g>
+            &n= bsp;  <g id=3D"shape150-412" v:mID=3D"150" v:gr= oupContext=3D"shape" v:layerMember=3D"0" transform=3D&q= uot;translate(281.66,1070.51) rotate(180)">
+            &n= bsp;          <title>Sid= e to top/bottom</title>
+            &n= bsp;          <v:userDefs&g= t;
+            &n= bsp;            = ;      <v:ud v:nameU=3D"TextPos" v:va= l=3D"VT0(0):5"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"visVersion" v= :val=3D"VT0(15):26"/>
+            &n= bsp;          </v:userDefs&= gt;
+            &n= bsp;          <path d=3D&qu= ot;M7.18 715.59 L7.54 715.59 L107.44 715.59 L107.44 669.64" class=3D&q= uot;st64"/>
+            &n= bsp;  </g>
+            &n= bsp;  <g id=3D"shape152-417" v:mID=3D"152" v:gr= oupContext=3D"shape" transform=3D"translate(173.097,-359.713= )">
+            &n= bsp;          <title>She= et.152</title>
+            &n= bsp;          <desc>[10]= </desc>
+            &n= bsp;          <v:textBlock = v:margins=3D"rect(4,4,4,4)"/>
+            &n= bsp;          <v:textRect c= x=3D"22.5" cy=3D"702.088" width=3D"45" height= =3D"27"/>
+            &n= bsp;          <rect x=3D&qu= ot;0" y=3D"688.588" width=3D"45" height=3D"27= " class=3D"st6"/>
+            &n= bsp;          <text x=3D&qu= ot;12.52" y=3D"705.09" class=3D"st7" v:langID=3D&q= uot;1033"><v:paragraph v:spLine=3D"-1" v:horizAlign=3D= "1"/><v:tabList/>[10]</text>   &nbs= p;         </g>
+            &n= bsp;  <g id=3D"shape153-420" v:mID=3D"153" v:gr= oupContext=3D"shape" transform=3D"translate(186.597,-359.713= )">
+            &n= bsp;          <title>She= et.153</title>
+            &n= bsp;          <desc>EDK2= Build Tool</desc>
+            &n= bsp;          <v:textBlock = v:margins=3D"rect(4,4,4,4)"/>
+            &n= bsp;          <v:textRect c= x=3D"54" cy=3D"702.088" width=3D"108" height= =3D"27"/>
+            &n= bsp;          <rect x=3D&qu= ot;0" y=3D"688.588" width=3D"108" height=3D"2= 7" class=3D"st6"/>
+            &n= bsp;          <text x=3D&qu= ot;21.18" y=3D"704.59" class=3D"st22" v:langID=3D&= quot;1033"><v:paragraph v:spLine=3D"-1" v:horizAlign= =3D"1"/><v:tabList/>EDK2 Build Tool</text> &n= bsp;       </g>
+            &n= bsp;  <g id=3D"shape95-423" v:mID=3D"95" v:grou= pContext=3D"shape" v:layerMember=3D"0"
+            &n= bsp;            = ;      transform=3D"translate(479.651,-242.34= ) rotate(-1.84761)">
+            &n= bsp;          <title>Cur= ve connect 2</title>
+            &n= bsp;          <v:userDefs&g= t;
+            &n= bsp;            = ;      <v:ud v:nameU=3D"visVersion" v= :val=3D"VT0(15):26"/>
+            &n= bsp;          </v:userDefs&= gt;
+            &n= bsp;          <path d=3D&qu= ot;M1.08 713.99 L1.29 713.7 A41.432 41.432 0 0 1 68.5 713.7 L68.7 713.99&qu= ot; class=3D"st67"/>
+            &n= bsp;  </g>
+            &n= bsp;  <g id=3D"shape154-431" v:mID=3D"154" v:gr= oupContext=3D"shape" transform=3D"translate(546.597,-607.213= )">
+            &n= bsp;          <title>She= et.154</title>
+            &n= bsp;          <desc>[7]&= lt;/desc>
+            &n= bsp;          <v:textBlock = v:margins=3D"rect(4,4,4,4)"/>
+            &n= bsp;          <v:textRect c= x=3D"12.375" cy=3D"702.088" width=3D"24.75" h= eight=3D"27"/>
+            &n= bsp;          <rect x=3D&qu= ot;0" y=3D"688.588" width=3D"24.75" height=3D"= ;27" class=3D"st6"/>
+            &n= bsp;          <text x=3D&qu= ot;5.44" y=3D"705.09" class=3D"st7" v:langID=3D&qu= ot;1033"><v:paragraph v:spLine=3D"-1" v:horizAlign=3D&= quot;1"/><v:tabList/>[7]</text>    =            </g>
+            &n= bsp;  <g id=3D"shape155-434" v:mID=3D"155" v:gr= oupContext=3D"shape" v:layerMember=3D"0"
+            &n= bsp;            = ;      transform=3D"translate(919.083,249.319= ) rotate(-86.8202) scale(1,-1)">
+            &n= bsp;          <title>Cur= ve connect 1.155</title>
+            &n= bsp;          <v:userDefs&g= t;
+            &n= bsp;            = ;      <v:ud v:nameU=3D"Scale" v:val= =3D"VT0(1):26"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"AntiScale" v:= val=3D"VT0(1):26"/>
+            &n= bsp;            = ;      <v:ud v:nameU=3D"visVersion" v= :val=3D"VT0(15):26"/>
+            &n= bsp;          </v:userDefs&= gt;
+            &n= bsp;          <path d=3D&qu= ot;M0 715.59 A6.2366 6.2366 0 0 1 11.73 715.59 A4.54475 4.54475 -180 0 0 20= .28 715.59" class=3D"st68"/>
+            &n= bsp;  </g>
+       </g>
+</svg>
--
2.37.1.windows.1

--_000_MW4PR12MB7031BAEDDB2118FB6BACC545D96E9MW4PR12MB7031namp_--