* [staging/edk2-redfish-client PATCH v2 0/2] RedfishClientPkg @ 2021-07-20 3:53 Abner Chang 2021-07-20 3:53 ` [staging/edk2-redfish-client PATCH v2 1/2] RedfishClientPkg: Initial commit Abner Chang 2021-07-20 3:53 ` [staging/edk2-redfish-client PATCH v2 2/2] edk2: Update Maintainers.txt Abner Chang 0 siblings, 2 replies; 7+ messages in thread From: Abner Chang @ 2021-07-20 3:53 UTC (permalink / raw) To: devel; +Cc: Nickle Wang, Liming Gao, Andrew Fish, Leif Lindholm, Michael D Kinney In V2: Correct EFI_PLATFORM_CONFIG_TO_REDFISH_PROTOCOL to EDKII_REDFISH_PLATFORM_CONFIG_PROTOCOL in readme and diagrams. In V1: This is the first commit of RedfishClientPkg. Readme and diagrams are created to delineate EDK2 Redfish Client implementation. Signed-off-by: Abner Chang <abner.chang@hpe.com> Cc: Nickle Wang <nickle.wang@hpe.com> Cc: Liming Gao <gaoliming@byosoft.com.cn> Cc: Andrew Fish <afish@apple.com> Cc: Leif Lindholm <leif@nuviainc.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Abner Chang (2): RedfishClientPkg: Initial commit edk2: Update Maintainers.txt RedfishClientPkg/Readme.md | 185 +++ Maintainers.txt | 5 + .../Media/RedfishClientDriverStack.svg | 1068 +++++++++++++++++ 3 files changed, 1258 insertions(+) create mode 100644 RedfishClientPkg/Readme.md create mode 100644 RedfishClientPkg/Documents/Media/RedfishClientDriverStack.svg -- 2.17.1 ^ permalink raw reply [flat|nested] 7+ messages in thread
* [staging/edk2-redfish-client PATCH v2 1/2] RedfishClientPkg: Initial commit 2021-07-20 3:53 [staging/edk2-redfish-client PATCH v2 0/2] RedfishClientPkg Abner Chang @ 2021-07-20 3:53 ` Abner Chang 2021-07-20 6:21 ` Nickle Wang 2021-07-20 3:53 ` [staging/edk2-redfish-client PATCH v2 2/2] edk2: Update Maintainers.txt Abner Chang 1 sibling, 1 reply; 7+ messages in thread From: Abner Chang @ 2021-07-20 3:53 UTC (permalink / raw) To: devel; +Cc: Nickle Wang, Liming Gao, Andrew Fish, Leif Lindholm, Michael D Kinney Initial commit of architecture diagrams and Readme.md Signed-off-by: Abner Chang <abner.chang@hpe.com> Cc: Nickle Wang <nickle.wang@hpe.com> Cc: Liming Gao <gaoliming@byosoft.com.cn> Cc: Andrew Fish <afish@apple.com> Cc: Leif Lindholm <leif@nuviainc.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> --- 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/RedfishClientDriverStack.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://github.com/tianocore/edk2/blob/master/RedfishPkg/Readme.md), +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 solution +requests the instance of **EFI REST EX Protocol** through EFI Redfish Discover +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 options to +the corresponding Redfish properties that are already defined in the standard +Redfish schemas published by +[*DMTF Redfish working group*](https://www.dmtf.org/standards/redfish). +The advantage of this design is to strengthen the interoperability among the +servers produced by different OEMs when configuring the platform through Redfish +service. Using the properties defined in Redfish standard schema for configuring +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 divergence 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. Associate +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, however, +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="[0]">EDK2 Redfish Client Implementation Diagrams</a> +![UEFI Redfish Client Implementation](https://github.com/changab/edk2-staging/blob/edk2-redfish-client/RedfishClientPkg/Documents/Media/RedfishClientDriverStack.svg?raw=true) + +## EFI EDK2 Redfish Client Framework +The functionality of each block in the diagrams are described in belwo sections, + +### EDK2 Redfish Foundation ***[[1]](#[0])*** +EDK2 Redfish Redfish Foundation provides the facilities of communicating with +Redfish service. Such as the discovery of Redfish service, the credential to +access Redfish service, *EFI REST EX Protocol* instance which is the transport +layer to Redfish service, and so on. Please refer to +[*EDK2 Redfish Foundation*](https://github.com/tianocore/edk2/blob/master/RedfishPkg/Readme.md). + +### Redfish Profile Simulator ***[[2]](#[0])*** +Redfish Profile Simulator is an +[*open source project*](https://github.com/DMTF/Redfish-Profile-Simulator) on +DMTF GitHub, which simulates the HTTP request methods (POST, PATCH, PUT, GET) 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 on the +platform, or for the quick Redfish firmware feature development. We clone this +project under RedfishClientPkg and maintain it by edk2 because this project 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 requirement +on Redfish service, such as ETAG and HTTP POST support. <br> +Another open source project of Redfish simulator is +[*Redfish Interface Emulator*](https://github.com/DMTF/Redfish-Interface-Emulator), +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 structure +instead of using JSON library to manipulate Redfish properties. The script +[*Redfish Schema C Struct Generator*](https://github.com/DMTF/Redfish-Schema-C-Struct-Generator) +is still a private project on DMTF GitHub. Below is the reference of script +auto-generated +[*Redfish JSON C Struct Converter Lib*](https://github.com/changab/Redfish-JSON-C-Struct-Converter-Lib) +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 sets +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 platform +configurations to Redfish service. Both EDK2 Redfish Non-Collection and +Collection Feature drivers are script auto-generated base on Redfish schema +naming. The EDK2 Redfish Non-Collection feature driver manages the resource 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 resource) +. + +### EDKII Redfish Platform Config Protocol ***[[6]](#[0])*** +EDKII Redfish Platform Config Protocol is an abstract driver that abstracts the +platform configuration format and storage from EDK2 Redfish Feature driver. +This protocol provides the interfaces to get and set platform configuration with +the format and configuration storage agnostic to the Redfish feature driver. +The platform can provide its own EDKII Redfish Platform Config driver instance +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 instance +can provide its own implementation to get or set the platform configurations. + +### 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 HII +options declared in this form intend to interact with the REST architectural +style. On edk2 open source, the REST architectural style refers to the Redfish +service. Besides **EFI_HII_REST_STYLE_FORMSET_GUID** is defined in the form +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 option +with the particular Redfish property. The Hii options interact with EDK2 Redfish +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 schema 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-redfish configure +language +- The path is relative to root of Redfish resource type, not related to Redfish service +- root. + +#### Examples, +```C +Properties: + +#string STR_BOOT_SOURCE_OVERRIDE_ENABLED_PROMPT #language x_uefi_redfish_ComputerSystem.v1_0_0 "/Boot/BootSourceOverrideEnabled" +#string STR_BOOT_SOURCE_OVERRIDE_MODE_PROMPT #language x_uefi_redfish_ComputerSystem.v1_0_0 "/Boot/BootSourceOverrideMode" +#string STR_BOOT_SOURCE_OVERRIDE_TARGET_PROMPT #language x_uefi_redfish_ComputerSystem.v1_0_0 "/Boot/BootSourceOverrideTarget" +``` +```C +Properties in array object [NUM]: + +#string STR_BOOT_ORDER_1_PROMPT #language x_uefi_redfish_ComputerSystem.v1_11_0 "/Boot/BootOrder/[1]/Boot0001" +#string STR_BOOT_ORDER_2_PROMPT #language x_uefi_redfish_ComputerSystem.v1_11_0 "/Boot/BootOrder/[2]/Boot0002" +#string STR_BOOT_ORDER_3_PROMPT #language x_uefi_redfish_ComputerSystem.v1_11_0 "/Boot/BootOrder/[3]/Boot0003" +``` +```C +Properties in collection object {NUM}: + +#string STR_MEMORY_1_BASE_MODULE_TYPE_PROMPT #language x_uefi_redfish_Memory.v1_7_1 "/Memory/{1}/BaseModuleType" +#string STR_MEMORY_2_BASE_MODULE_TYPE_PROMPT #language x_uefi_redfish_Memory.v1_7_1 "/Memory/{2}/BaseModuleType" +#string STR_MEMORY_3_BASE_MODULE_TYPE_PROMPT #language x_uefi_redfish_Memory.v1_7_1 "/Memory/{3}/BaseModuleType" +``` + +### EDK2 Build Tool ***[[10]](#[0])*** +EDK2 Build is responsible to pull the necessary EDK2 Redfish JSON Schema to C +Structure Convertors and EDK2 Redfish Feature drivers into edk2 build process +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="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by Microsoft Visio, SVG Export RedfishClientDriverStack.svg Page-2 --> +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ev="http://www.w3.org/2001/xml-events" + xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="12.1281in" height="9.93872in" + viewBox="0 0 873.222 715.588" xml:space="preserve" color-interpolation-filters="sRGB" class="st69"> + <v:documentProperties v:langID="1033" v:viewMarkup="false"> + <v:userDefs> + <v:ud v:nameU="msvNoAutoConnect" v:val="VT0(1):26"/> + </v:userDefs> + </v:documentProperties> + + <style type="text/css"> + <![CDATA[ + .st1 {fill:#ffffff;stroke:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75} + .st2 {fill:#ebf1df;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5} + .st3 {fill:#ff1a1a;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5} + .st4 {fill:#ffffff;font-family:Calibri;font-size:1.00001em;font-weight:bold} + .st5 {font-size:1em} + .st6 {fill:none;stroke:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75} + .st7 {fill:#000000;font-family:Calibri;font-size:1.00001em;font-weight:bold} + .st8 {fill:#dbeef3;stroke:#d8d8d8;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5} + .st9 {fill:#ffffff;font-family:Calibri;font-size:1.08334em;font-weight:bold} + .st10 {visibility:visible} + .st11 {fill:none;filter:url(#filter_3.3333334922791);stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:0.4} + .st12 {fill:none;stroke:#bfbfbf;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75} + .st13 {fill:#000000;font-family:Arial;font-size:1.99999em;font-style:italic;font-weight:bold} + .st14 {marker-end:url(#mrkr2-45);stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.9} + .st15 {fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1;stroke-width:0.42986425339367} + .st16 {fill:#000000;stroke:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75} + .st17 {fill:#ffffff;font-family:Arial;font-size:1.33333em;font-weight:bold} + .st18 {fill:#ffffff;stroke:#595959;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5} + .st19 {fill:#7f7f7f;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5} + .st20 {fill:#ffffff;font-family:Calibri;font-size:1.08334em} + .st21 {fill:#000000;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75} + .st22 {fill:#000000;font-family:Calibri;font-size:0.833336em;font-weight:bold} + .st23 {marker-start:url(#mrkr10-112);stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.25} + .st24 {fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1;stroke-width:0.40983606557377} + .st25 {fill:#ffffff;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75} + .st26 {fill:#000000;fill-opacity:0.4;filter:url(#filter_3.3333334922791);stroke:#000000;stroke-dasharray:10.5,7.5;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:0.4} + .st27 {fill:#0070c0;fill-opacity:0.72;stroke:#003f6c;stroke-dasharray:10.5,7.5;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5} + .st28 {fill:#0070c0;stroke:#003f6c;stroke-dasharray:10.5,7.5;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5} + .st29 {fill:#000000;font-family:Calibri;font-size:1.00001em;font-style:italic;font-weight:bold} + .st30 {fill:#ffffff;stroke:#000000;stroke-dasharray:1.68,1.2;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24} + .st31 {fill:#000000;font-family:Calibri;font-size:0.833336em} + .st32 {fill:#ffffff;stroke:#000000;stroke-dasharray:3.5,2.5;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.5} + .st33 {stroke:#7f7f7f;stroke-linecap:round;stroke-linejoin:round;stroke-width:4.5} + .st34 {fill:#000000;fill-opacity:0.38;filter:url(#filter_3.3333334922791);stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:0.38} + .st35 {fill:#000000;fill-opacity:0.38;stroke:#000000;stroke-opacity:0.38;stroke-width:0.22935779816514} + .st36 {fill:#f2f2f2;stroke:#7f7f7f;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75} + .st37 {fill:#7f7f7f;fill-opacity:1;stroke:#7f7f7f;stroke-opacity:1;stroke-width:0.22935779816514} + .st38 {fill:#d8d8d8;stroke:#7f7f7f;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75} + .st39 {fill:#ffffff;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24} + .st40 {fill:#000000;fill-opacity:0.4;filter:url(#filter_3.3333334922791);stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:0.4} + .st41 {fill:#0070c0;stroke:#003f6c;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5} + .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} + .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} + .st44 {marker-end:url(#mrkr4-212);marker-start:url(#mrkr4-210);stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.25} + .st45 {fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1;stroke-width:0.47169811320755} + .st46 {fill:#ffffff;stroke:#7f7f7f;stroke-linecap:round;stroke-linejoin:round;stroke-width:1} + .st47 {fill:#000000;font-family:Calibri;font-size:1.16666em;font-style:italic;font-weight:bold} + .st48 {font-family:Arial;font-size:0.571431em;font-style:normal;font-weight:normal} + .st49 {font-family:Arial;font-size:0.571431em;font-style:normal} + .st50 {fill:#ea700d;font-family:Arial;font-size:0.571431em;font-style:normal} + .st51 {fill:#ffffff;stroke:#7f7f7f;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24} + .st52 {fill:#d8d8d8;font-family:Calibri;font-size:0.833336em;font-style:italic;font-weight:bold} + .st53 {font-size:1.20001em;font-style:normal;font-weight:normal} + .st54 {font-size:1em;font-style:normal;font-weight:normal} + .st55 {fill:#f59d56;font-size:1em;font-style:normal;font-weight:normal} + .st56 {marker-end:url(#mrkr2-350);stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:2} + .st57 {fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1;stroke-width:0.44247787610619} + .st58 {marker-end:url(#mrkr2-383);marker-start:url(#mrkr2-381);stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75} + .st59 {fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1;stroke-width:0.22935779816514} + .st60 {fill:#000000;font-family:Calibri;font-size:0.75em;font-style:italic;font-weight:bold} + .st61 {fill:#000000;font-family:Calibri;font-size:0.75em;font-weight:bold} + .st62 {fill:#0070c0;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5} + .st63 {fill:#595959;stroke:none;stroke-linecap:butt;stroke-width:0.75} + .st64 {marker-start:url(#mrkr4-405);stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.25} + .st65 {fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1;stroke-width:0.3315649867374} + .st66 {marker-end:url(#mrkr4-411);stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.25} + .st67 {marker-end:url(#mrkr10-430);marker-start:url(#mrkr10-112);stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.25} + .st68 {stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.25} + .st69 {fill:none;fill-rule:evenodd;font-size:12px;overflow:visible;stroke-linecap:square;stroke-miterlimit:3} + ]]> + </style> + + <defs id="Markers"> + <g id="lend2"> + <path d="M 1 1 L 0 0 L 1 -1 L 1 1 " style="stroke:none"/> + </g> + <marker id="mrkr2-45" class="st15" v:arrowType="2" v:arrowSize="2" v:setback="2.13684" refX="-2.1368421052632" + orient="auto" markerUnits="strokeWidth" overflow="visible"> + <use xlink:href="#lend2" transform="scale(-2.3263157894737,-2.3263157894737) "/> + </marker> + <g id="lend10"> + <path + d="M 0 0.75 C -0.414214 0.75 -0.75 0.414214 -0.75 0 -0.75 -0.414214 -0.414214 -0.75 0 -0.75 0.414214 -0.75 0.75 -0.414214 0.75 0 0.75 0.414214 0.414214 0.75 0 0.75 Z " + style="stroke:none"/> + </g> + <marker id="mrkr10-112" class="st24" v:arrowType="10" v:arrowSize="1" v:setback="1.542" refX="1.542" orient="auto" + markerUnits="strokeWidth" overflow="visible"> + <use xlink:href="#lend10" transform="scale(2.44) "/> + </marker> + <g id="lend42"> + <path + d="M 0 0.75 C -0.414214 0.75 -0.75 0.414214 -0.75 0 -0.75 -0.414214 -0.414214 -0.75 0 -0.75 0.414214 -0.75 0.75 -0.414214 0.75 0 0.75 0.414214 0.414214 0.75 0 0.75 Z " + style="stroke:none"/> + </g> + <marker id="mrkr42-163" class="st35" v:arrowType="42" v:arrowSize="2" v:setback="3.27" refX="3.27" orient="auto" + markerUnits="strokeWidth" overflow="visible"> + <use xlink:href="#lend42" transform="scale(4.36) "/> + </marker> + <marker id="mrkr42-167" class="st37" v:arrowType="42" v:arrowSize="2" v:setback="3.27" refX="3.27" orient="auto" + markerUnits="strokeWidth" overflow="visible"> + <use xlink:href="#lend42" transform="scale(4.36) "/> + </marker> + <g id="lend4"> + <path d="M 2 1 L 0 0 L 2 -1 L 2 1 " style="stroke:none"/> + </g> + <marker id="mrkr4-210" class="st45" v:arrowType="4" v:arrowSize="2" v:setback="4.08" refX="4.08" orient="auto" + markerUnits="strokeWidth" overflow="visible"> + <use xlink:href="#lend4" transform="scale(2.12) "/> + </marker> + <marker id="mrkr4-212" class="st45" v:arrowType="4" v:arrowSize="2" v:setback="4.08" refX="-4.08" orient="auto" + markerUnits="strokeWidth" overflow="visible"> + <use xlink:href="#lend4" transform="scale(-2.12,-2.12) "/> + </marker> + <marker id="mrkr2-350" class="st57" v:arrowType="2" v:arrowSize="2" v:setback="2.08" refX="-2.08" orient="auto" + markerUnits="strokeWidth" overflow="visible"> + <use xlink:href="#lend2" transform="scale(-2.26,-2.26) "/> + </marker> + <marker id="mrkr2-381" class="st59" v:arrowType="2" v:arrowSize="2" v:setback="3.88" refX="3.88" orient="auto" + markerUnits="strokeWidth" overflow="visible"> + <use xlink:href="#lend2" transform="scale(4.36) "/> + </marker> + <marker id="mrkr2-383" class="st59" v:arrowType="2" v:arrowSize="2" v:setback="3.88" refX="-3.88" orient="auto" + markerUnits="strokeWidth" overflow="visible"> + <use xlink:href="#lend2" transform="scale(-4.36,-4.36) "/> + </marker> + <marker id="mrkr4-405" class="st65" v:arrowType="4" v:arrowSize="2" v:setback="5.744" refX="5.744" orient="auto" + markerUnits="strokeWidth" overflow="visible"> + <use xlink:href="#lend4" transform="scale(3.016) "/> + </marker> + <marker id="mrkr4-411" class="st65" v:arrowType="4" v:arrowSize="2" v:setback="6.032" refX="-6.032" orient="auto" + markerUnits="strokeWidth" overflow="visible"> + <use xlink:href="#lend4" transform="scale(-3.016,-3.016) "/> + </marker> + <marker id="mrkr10-430" class="st24" v:arrowType="10" v:arrowSize="1" v:setback="1.542" refX="-1.542" orient="auto" + markerUnits="strokeWidth" overflow="visible"> + <use xlink:href="#lend10" transform="scale(-2.44,-2.44) "/> + </marker> + </defs> + <defs id="Filters"> + <filter id="filter_3.3333334922791"> + <feGaussianBlur stdDeviation="3.3333334922791"/> + </filter> + </defs> + <g v:mID="8" v:index="1" v:groupContext="backgroundPage"> + <v:userDefs> + <v:ud v:nameU="msvVisioCreated" v:prompt="" v:val="VT0(0):26"/> + </v:userDefs> + <title>VBackground-1</title> + <v:pageProperties width="12.1281" height="9.93872" v:drawingScale="1" v:pageScale="1" v:drawingUnits="19" + v:shadowOffsetX="9" v:shadowOffsetY="-9"/> + <g id="shape1-1" v:mID="1" v:groupContext="shape"> + <title>Solid</title> + <v:userDefs> + <v:ud v:nameU="Background" v:val="VT0(0):26"/> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + <v:ud v:nameU="msvShapeCategories" v:prompt="" v:val="VT4(DoNotContain)"/> + <v:ud v:nameU="msvVisioCreated" v:prompt="" v:val="VT0(0):26"/> + </v:userDefs> + <rect x="0" y="0" width="873.222" height="715.588" class="st1"/> + </g> + </g> + <g v:mID="4" v:index="3" v:groupContext="foregroundPage"> + <title>Page-2</title> + <v:pageProperties v:drawingScale="1" v:pageScale="1" v:drawingUnits="19" v:shadowOffsetX="9" v:shadowOffsetY="-9"/> + <v:layer v:name="Connector" v:index="0"/> + <g id="shape52-3" v:mID="52" v:groupContext="shape" transform="translate(336.222,-197.713)"> + <title>Rectangle.52</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <rect x="0" y="598.588" width="495" height="117" class="st2"/> + </g> + <g id="group5-5" transform="translate(772.722,-60.4625)" v:mID="5" v:groupContext="group"> + <v:userDefs> + <v:ud v:nameU="visVersion" v:prompt="" v:val="VT0(15):26"/> + </v:userDefs> + <title>Can</title> + <desc>Redfish Service</desc> + <g id="shape6-6" v:mID="6" v:groupContext="shape"> + <title>Sheet.6</title> + <v:userDefs> + <v:ud v:nameU="ControlHalfHeight" v:prompt="" v:val="VT0(0.125):1"/> + <v:ud v:nameU="FillForegnd" v:prompt="" v:val="VT0(1):26"/> + <v:ud v:nameU="ControlHalfHeight" v:prompt="" v:val="VT0(0.15625):1"/> + <v:ud v:nameU="FillForegnd" v:prompt="" v:val="VT5(#ff1a1a)"/> + </v:userDefs> + <path d="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="st3"/> + </g> + <g id="shape5-8" v:mID="5" v:groupContext="groupContent"> + <v:textBlock v:margins="rect(4,4,4,4)" v:verticalAlign="2"/> + <v:textRect cx="26.4375" cy="684.088" width="52.88" height="63"/> + <ellipse cx="26.4375" cy="663.838" rx="26.4375" ry="11.25" class="st3"/> + <text x="7.83" y="693.59" class="st4" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>Redfish <tspan + x="8.6" dy="1.2em" class="st5">Service</tspan></text> </g> + </g> + <g id="shape8-12" v:mID="8" v:groupContext="shape" transform="translate(746.847,-24.4625)"> + <title>Sheet.8</title> + <desc>Redfish Profile Simulator On Network</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="54" cy="702.088" width="108" height="27"/> + <rect x="0" y="688.588" width="108" height="27" class="st6"/> + <text x="17.62" y="693.09" class="st7" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>Redfish Profile <tspan + x="21.08" dy="1em" class="st5">Simulator On </tspan><tspan x="32.24" dy="1em" class="st5">Network</tspan></text> </g> + <g id="shape10-17" v:mID="10" v:groupContext="shape" transform="translate(408.222,-82.9625)"> + <title>Sheet.10</title> + <desc>EFI REST EX</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="130.5" cy="697.588" width="261" height="36"/> + <rect x="0" y="679.588" width="261" height="36" class="st8"/> + <text x="99.8" y="700.84" class="st9" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>EFI REST EX </text> </g> + <g id="shape12-20" v:mID="12" v:groupContext="shape" transform="translate(57.2224,-197.713)"> + <title>Rectangle</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <rect x="0" y="598.588" width="234" height="117" class="st2"/> + </g> + <g id="shape13-22" v:mID="13" v:groupContext="shape" transform="translate(30.2224,-24.4625)"> + <title>Rounded Rectangle.76</title> + <v:userDefs> + <v:ud v:nameU="CTypeTopLeftSnip" v:prompt="" v:val="VT0(0):5"/> + <v:ud v:nameU="CTypeTopRightSnip" v:prompt="" v:val="VT0(0):5"/> + <v:ud v:nameU="CTypeBotLeftSnip" v:prompt="" v:val="VT0(0):5"/> + <v:ud v:nameU="CTypeBotRightSnip" v:prompt="" v:val="VT0(0):5"/> + <v:ud v:nameU="CornerLockHoriz" v:prompt="" v:val="VT0(1):5"/> + <v:ud v:nameU="CornerLockVert" v:prompt="" v:val="VT0(1):5"/> + <v:ud v:nameU="CornerLockDiag" v:prompt="" v:val="VT0(0):5"/> + <v:ud v:nameU="TopLeftOffset" v:prompt="" v:val="VT0(0.15):1"/> + <v:ud v:nameU="TopRightOffset" v:prompt="" v:val="VT0(0.15):1"/> + <v:ud v:nameU="BotLeftOffset" v:prompt="" v:val="VT0(0.15):1"/> + <v:ud v:nameU="BotRightOffset" v:prompt="" v:val="VT0(0.15):1"/> + <v:ud v:nameU="visVersion" v:prompt="" v:val="VT0(15):26"/> + <v:ud v:nameU="TopLeftOffset" v:prompt="" v:val="VT0(0.125):1"/> + <v:ud v:nameU="TopRightOffset" v:prompt="" v:val="VT0(0.125):1"/> + <v:ud v:nameU="BotLeftOffset" v:prompt="" v:val="VT0(0.125):1"/> + <v:ud v:nameU="BotRightOffset" v:prompt="" v:val="VT0(0.125):1"/> + </v:userDefs> + <g id="shadow13-23" v:groupContext="shadow" v:shadowOffsetX="7.2E-008" v:shadowOffsetY="0" v:shadowType="1" + v:shadowScale="1.02" transform="matrix(1.02,0,0,1.02,-6.84,-13.2318)" class="st10"> + <path d="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 675 607.59 + L9 607.59 A8.99985 8.99985 -180 0 0 0 616.59 L0 706.59 A8.99985 8.99985 -180 0 0 9 715.59 Z" + class="st11"/> + </g> + <path d="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 675 607.59 + L9 607.59 A8.99985 8.99985 -180 0 0 0 616.59 L0 706.59 A8.99985 8.99985 -180 0 0 9 715.59 Z" class="st12"/> + </g> + <g id="shape16-27" v:mID="16" v:groupContext="shape" transform="translate(75.2224,-82.9625)"> + <title>Sheet.16</title> + <desc>EFI REST JSON to C Structure</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="130.5" cy="697.588" width="261" height="36"/> + <rect x="0" y="679.588" width="261" height="36" class="st8"/> + <text x="53.89" y="700.84" class="st9" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>EFI REST JSON to C Structure</text> </g> + <g id="shape17-30" v:mID="17" v:groupContext="shape" transform="translate(408.222,-37.9625)"> + <title>Sheet.17</title> + <desc>EFI Network Stack</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="130.5" cy="697.588" width="261" height="36"/> + <rect x="0" y="679.588" width="261" height="36" class="st8"/> + <text x="81.72" y="700.84" class="st9" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>EFI Network Stack</text> </g> + <g id="shape18-33" v:mID="18" v:groupContext="shape" transform="translate(75.2224,-37.9625)"> + <title>Sheet.18</title> + <desc>EFI Redfish Discover Protocl</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="130.5" cy="697.588" width="261" height="36"/> + <rect x="0" y="679.588" width="261" height="36" class="st8"/> + <text x="55.56" y="700.84" class="st9" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>EFI Redfish Discover Protocl</text> </g> + <g id="shape19-36" v:mID="19" v:groupContext="shape" transform="translate(291.222,-51.4625)"> + <title>Sheet.19</title> + <desc>EDKII Redfish Foundation</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="92" cy="693.088" width="184.01" height="45"/> + <rect x="0" y="670.588" width="184" height="45" class="st6"/> + <text x="12.66" y="685.89" class="st13" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>EDKII Redfish <tspan + x="26.69" dy="1.2em" class="st5">Foundation</tspan></text> </g> + <g id="shape20-40" v:mID="20" v:groupContext="shape" v:layerMember="0" + transform="translate(904.308,1335.5) rotate(-19.179) scale(1,-1)"> + <title>Curve connect 1</title> + <v:userDefs> + <v:ud v:nameU="Scale" v:val="VT0(1):26"/> + <v:ud v:nameU="AntiScale" v:val="VT0(1):26"/> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="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" + class="st14"/> + </g> + <g id="shape21-46" v:mID="21" v:groupContext="shape" transform="translate(18.9724,-139.213)"> + <title>Sheet.21</title> + <desc>EDKII Redfish Client</desc> + <v:textBlock v:margins="rect(4,4,4,4)" v:verticalText="true"/> + <v:textRect cx="12.375" cy="463.588" width="24.75" height="504" transform="rotate(-180)"/> + <rect x="0" y="211.588" width="24.75" height="504" class="st16"/> + <text x="-10.85" y="-540.93" writing-mode="tb-rl" transform="rotate(180)" class="st17" v:langID="1033"><v:paragraph + v:horizAlign="1"/><v:tabList/>EDKII Redfish Client</text> </g> + <g id="shape24-49" v:mID="24" v:groupContext="shape" transform="translate(111.222,-253.963)"> + <title>Sheet.24</title> + <rect x="0" y="670.588" width="153" height="45" class="st18"/> + </g> + <g id="shape25-51" v:mID="25" v:groupContext="shape" transform="translate(84.2224,-240.463)"> + <title>Sheet.25</title> + <rect x="0" y="670.588" width="153" height="45" class="st18"/> + </g> + <g id="shape26-53" v:mID="26" v:groupContext="shape" transform="translate(75.2224,-226.963)"> + <title>Sheet.26</title> + <desc>Script-generated Redfish JSON schema to C Structure convertor</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="76.5" cy="693.088" width="153" height="45"/> + <rect x="0" y="670.588" width="153" height="45" class="st19"/> + <text x="11.2" y="683.34" class="st20" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>Script-generated Redfish <tspan + x="29.22" dy="1em" class="st5">JSON schema to C </tspan><tspan x="24.45" dy="1em" class="st5">Structure convertor</tspan></text> </g> + <g id="shape28-58" v:mID="28" v:groupContext="shape" transform="translate(241.722,-267.463)"> + <title>Sheet.28</title> + <ellipse cx="1.6875" cy="713.9" rx="1.6875" ry="1.6875" class="st21"/> + </g> + <g id="shape29-60" v:mID="29" v:groupContext="shape" transform="translate(245.66,-272.525)"> + <title>Sheet.29</title> + <ellipse cx="1.6875" cy="713.9" rx="1.6875" ry="1.6875" class="st21"/> + </g> + <g id="shape30-62" v:mID="30" v:groupContext="shape" transform="translate(250.16,-277.588)"> + <title>Sheet.30</title> + <ellipse cx="1.6875" cy="713.9" rx="1.6875" ry="1.6875" class="st21"/> + </g> + <g id="shape31-64" v:mID="31" v:groupContext="shape" transform="translate(178.722,-204.463)"> + <title>Sheet.31</title> + <desc>ComputerSystem</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="54" cy="702.088" width="108" height="27"/> + <rect x="0" y="688.588" width="108" height="27" class="st6"/> + <text x="18.16" y="704.59" class="st22" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>ComputerSystem</text> </g> + <g id="shape32-67" v:mID="32" v:groupContext="shape" transform="translate(201.222,-220.213)"> + <title>Sheet.32</title> + <desc>BootOption</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="54" cy="702.088" width="108" height="27"/> + <rect x="0" y="688.588" width="108" height="27" class="st6"/> + <text x="29.69" y="704.59" class="st22" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>BootOption</text> </g> + <g id="shape33-70" v:mID="33" v:groupContext="shape" transform="translate(210.222,-233.713)"> + <title>Sheet.33</title> + <desc>Memory</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="54" cy="702.088" width="108" height="27"/> + <rect x="0" y="688.588" width="108" height="27" class="st6"/> + <text x="36.21" y="704.59" class="st22" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>Memory</text> </g> + <g id="shape34-73" v:mID="34" v:groupContext="shape" transform="translate(385.722,-247.213)"> + <title>Sheet.34</title> + <rect x="0" y="670.588" width="153" height="45" class="st18"/> + </g> + <g id="shape35-75" v:mID="35" v:groupContext="shape" transform="translate(358.722,-233.713)"> + <title>Sheet.35</title> + <rect x="0" y="670.588" width="153" height="45" class="st18"/> + </g> + <g id="shape36-77" v:mID="36" v:groupContext="shape" transform="translate(349.722,-220.213)"> + <title>Sheet.36</title> + <desc>Script-generated EDK2 Redfish Feature Driver</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="76.5" cy="693.088" width="153" height="45"/> + <rect x="0" y="670.588" width="153" height="45" class="st19"/> + <text x="16.96" y="689.84" class="st20" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>Script-generated EDK2 <tspan + x="17.33" dy="1em" class="st5">Redfish Feature Driver</tspan></text> </g> + <g id="shape40-81" v:mID="40" v:groupContext="shape" transform="translate(453.222,-197.713)"> + <title>Sheet.40</title> + <desc>ComputerSystem</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="54" cy="702.088" width="108" height="27"/> + <rect x="0" y="688.588" width="108" height="27" class="st6"/> + <text x="18.16" y="704.59" class="st22" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>ComputerSystem</text> </g> + <g id="shape41-84" v:mID="41" v:groupContext="shape" transform="translate(475.722,-213.463)"> + <title>Sheet.41</title> + <desc>BootOption</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="54" cy="702.088" width="108" height="27"/> + <rect x="0" y="688.588" width="108" height="27" class="st6"/> + <text x="29.69" y="704.59" class="st22" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>BootOption</text> </g> + <g id="shape42-87" v:mID="42" v:groupContext="shape" transform="translate(493.722,-226.963)"> + <title>Sheet.42</title> + <desc>Memory</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="54" cy="702.088" width="108" height="27"/> + <rect x="0" y="688.588" width="108" height="27" class="st6"/> + <text x="36.21" y="704.59" class="st22" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>Memory</text> </g> + <g id="shape43-90" v:mID="43" v:groupContext="shape" transform="translate(608.472,-249.463)"> + <title>Sheet.43</title> + <rect x="0" y="670.588" width="153" height="45" class="st18"/> + </g> + <g id="shape46-92" v:mID="46" v:groupContext="shape" transform="translate(738.972,-262.963)"> + <title>Sheet.46</title> + <ellipse cx="1.6875" cy="713.9" rx="1.6875" ry="1.6875" class="st21"/> + </g> + <g id="shape47-94" v:mID="47" v:groupContext="shape" transform="translate(742.91,-268.025)"> + <title>Sheet.47</title> + <ellipse cx="1.6875" cy="713.9" rx="1.6875" ry="1.6875" class="st21"/> + </g> + <g id="shape48-96" v:mID="48" v:groupContext="shape" transform="translate(747.41,-273.088)"> + <title>Sheet.48</title> + <ellipse cx="1.6875" cy="713.9" rx="1.6875" ry="1.6875" class="st21"/> + </g> + <g id="shape49-98" v:mID="49" v:groupContext="shape" transform="translate(660.222,-199.963)"> + <title>Sheet.49</title> + <desc>ComputerSystemCollection</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="61.875" cy="702.088" width="123.75" height="27"/> + <rect x="0" y="688.588" width="123.75" height="27" class="st6"/> + <text x="5.3" y="704.59" class="st22" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>ComputerSystemCollection</text> </g> + <g id="shape50-101" v:mID="50" v:groupContext="shape" transform="translate(720.972,-215.713)"> + <title>Sheet.50</title> + <desc>BootOptionCollection</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="54" cy="702.088" width="108" height="27"/> + <rect x="0" y="688.588" width="108" height="27" class="st6"/> + <text x="8.96" y="704.59" class="st22" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>BootOptionCollection</text> </g> + <g id="shape51-104" v:mID="51" v:groupContext="shape" transform="translate(732.222,-229.213)"> + <title>Sheet.51</title> + <desc>MemoryCollection</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="54" cy="702.088" width="108" height="27"/> + <rect x="0" y="688.588" width="108" height="27" class="st6"/> + <text x="15.48" y="704.59" class="st22" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>MemoryCollection</text> </g> + <g id="shape56-107" v:mID="56" v:groupContext="shape" v:layerMember="0" + transform="translate(515.651,-269.34) rotate(-1.84761)"> + <title>Curve connect 2.56</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="M1.08 713.99 L1.29 713.7 A41.432 41.432 0 0 1 69.79 715.59" class="st23"/> + </g> + <g id="shape57-113" v:mID="57" v:groupContext="shape" transform="translate(581.472,-235.963)"> + <title>Sheet.57</title> + <rect x="0" y="670.588" width="153" height="45" class="st18"/> + </g> + <g id="shape59-115" v:mID="59" v:groupContext="shape" v:layerMember="0" transform="translate(291.222,-242.713)"> + <title>1-D double</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="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 + L31.5 693.99 L13.5 693.99 Z" class="st25"/> + </g> + <g id="shape64-117" v:mID="64" v:groupContext="shape" transform="translate(619.722,-467.713)"> + <title>Sheet.64</title> + <desc>EDKII REDFISH_PLATFORM_CONFIG_PROTOCOL</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="99" cy="693.088" width="198" height="45"/> + <g id="shadow64-118" v:groupContext="shadow" v:shadowOffsetX="7.2E-008" v:shadowOffsetY="0" v:shadowType="1" + v:shadowScale="1.02" transform="matrix(1.02,0,0,1.02,-1.98,-13.8618)" class="st10"> + <path d="M0 715.59 L198 715.59 L198 670.59 L0 670.59 L0 715.59 Z" class="st26"/> + </g> + <path d="M0 715.59 L198 715.59 L198 670.59 L0 670.59 L0 715.59 Z" class="st27"/> + <text x="85.18" y="683.34" class="st20" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>EDKII <tspan + x="5.65" dy="1em" class="st5">REDFISH</tspan>_PLATFORM_CONFIG_PRO<tspan x="81.03" dy="1em" class="st5">TOCOL</tspan></text> </g> + <g id="shape65-125" v:mID="65" v:groupContext="shape" transform="translate(511.722,-445.213)"> + <title>Sheet.65</title> + <desc>EDKII REDFISH_PLATFORM_CONFIG_PROTOCOL</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="99" cy="693.088" width="198" height="45"/> + <g id="shadow65-126" v:groupContext="shadow" v:shadowOffsetX="7.2E-008" v:shadowOffsetY="0" v:shadowType="1" + v:shadowScale="1.02" transform="matrix(1.02,0,0,1.02,-1.98,-13.8618)" class="st10"> + <path d="M0 715.59 L198 715.59 L198 670.59 L0 670.59 L0 715.59 Z" class="st26"/> + </g> + <path d="M0 715.59 L198 715.59 L198 670.59 L0 670.59 L0 715.59 Z" class="st28"/> + <text x="85.18" y="683.34" class="st20" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>EDKII <tspan + x="5.65" dy="1em" class="st5">REDFISH</tspan>_PLATFORM_CONFIG_PRO<tspan x="81.03" dy="1em" class="st5">TOCOL</tspan></text> </g> + <g id="shape67-133" v:mID="67" v:groupContext="shape" transform="translate(536.472,-593.713)"> + <title>Sheet.67</title> + <desc>Other Platform-specific Implementations</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="121.5" cy="702.088" width="243" height="27"/> + <rect x="0" y="688.588" width="243" height="27" class="st6"/> + <text x="20.02" y="705.09" class="st29" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>Other Platform-specific Implementations</text> </g> + <g id="group71-136" transform="translate(567.972,-530.713)" v:mID="71" v:groupContext="group"> + <v:userDefs> + <v:ud v:nameU="visVersion" v:prompt="" v:val="VT0(15):26"/> + </v:userDefs> + <title>Can.71</title> + <desc>EFI Variable/ FW Storage</desc> + <g id="shape72-137" v:mID="72" v:groupContext="shape"> + <title>Sheet.72</title> + <v:userDefs> + <v:ud v:nameU="ControlHalfHeight" v:prompt="" v:val="VT0(0.125):1"/> + <v:ud v:nameU="FillForegnd" v:prompt="" v:val="VT0(1):26"/> + <v:ud v:nameU="ControlHalfHeight" v:prompt="" v:val="VT0(0.0875):1"/> + </v:userDefs> + <path d="M0 709.29 A29.25 6.3 -180 1 0 58.5 709.29 L58.5 658.89 L0 658.89 L0 709.29 Z" class="st30"/> + </g> + <g id="shape71-139" v:mID="71" v:groupContext="groupContent"> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="29.25" cy="684.088" width="58.5" height="63"/> + <ellipse cx="29.25" cy="658.888" rx="29.25" ry="6.3" class="st30"/> + <text x="23.25" y="675.09" class="st31" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>EFI <tspan + x="10.54" dy="1.2em" class="st5">Variable</tspan>/ <tspan x="5.79" dy="1.2em" class="st5">FW Storage</tspan></text> </g> + </g> + <g id="group73-144" transform="translate(687.222,-530.713)" v:mID="73" v:groupContext="group"> + <v:userDefs> + <v:ud v:nameU="visVersion" v:prompt="" v:val="VT0(15):26"/> + </v:userDefs> + <title>Can.73</title> + <desc>Other Storage</desc> + <g id="shape74-145" v:mID="74" v:groupContext="shape"> + <title>Sheet.74</title> + <v:userDefs> + <v:ud v:nameU="ControlHalfHeight" v:prompt="" v:val="VT0(0.125):1"/> + <v:ud v:nameU="FillForegnd" v:prompt="" v:val="VT0(1):26"/> + <v:ud v:nameU="ControlHalfHeight" v:prompt="" v:val="VT0(0.0875):1"/> + </v:userDefs> + <path d="M0 709.29 A29.25 6.3 -180 1 0 58.5 709.29 L58.5 658.89 L0 658.89 L0 709.29 Z" class="st30"/> + </g> + <g id="shape73-147" v:mID="73" v:groupContext="groupContent"> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="29.25" cy="684.088" width="58.5" height="63"/> + <ellipse cx="29.25" cy="658.888" rx="29.25" ry="6.3" class="st30"/> + <text x="17.41" y="681.09" class="st31" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>Other <tspan + x="13.66" dy="1.2em" class="st5">Storage</tspan></text> </g> + </g> + <g id="shape76-151" v:mID="76" v:groupContext="shape" v:layerMember="0" transform="translate(1306.06,184.875) rotate(90)"> + <title>1-D double.76</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="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 + 702.09 L33.75 704.79 L6.75 704.79 Z" class="st32"/> + </g> + <g id="shape77-153" v:mID="77" v:groupContext="shape" v:layerMember="0" transform="translate(1425.31,184.875) rotate(90)"> + <title>1-D double.77</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="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 + 702.09 L11.25 704.79 L6.75 704.79 Z" class="st32"/> + </g> + <g id="shape78-155" v:mID="78" v:groupContext="shape" transform="translate(21.2224,-139.213)"> + <title>Sheet.78</title> + <path d="M0 715.59 L810 715.59" class="st33"/> + </g> + <g id="group80-158" transform="translate(-173.49,382.875) rotate(-90)" v:mID="80" v:groupContext="group"> + <v:userDefs> + <v:ud v:nameU="ControlDistFromCorner" v:prompt="" v:val="VT0(0.35355339059327):1"/> + <v:ud v:nameU="AngToControl" v:prompt="" v:val="VT0(0.78539816339745):32"/> + <v:ud v:nameU="XFoldLength" v:prompt="" v:val="VT0(0.25):1"/> + <v:ud v:nameU="YFoldLength" v:prompt="" v:val="VT0(0.25):1"/> + <v:ud v:nameU="visVersion" v:prompt="" v:val="VT0(15):26"/> + <v:ud v:nameU="ControlDistFromCorner" v:prompt="" v:val="VT0(0.57622152858081):1"/> + <v:ud v:nameU="AngToControl" v:prompt="" v:val="VT0(0.70862627212768):32"/> + <v:ud v:nameU="XFoldLength" v:prompt="" v:val="VT0(0.44270833333333):1"/> + <v:ud v:nameU="YFoldLength" v:prompt="" v:val="VT0(0.3794642857143):1"/> + </v:userDefs> + <title>Folded Corner</title> + <g id="shape80-159" v:mID="80" v:groupContext="groupContent"> + <g id="shadow80-160" v:groupContext="shadow" v:shadowOffsetX="7.2E-008" v:shadowOffsetY="0" v:shadowType="1" + v:shadowScale="1.02" transform="matrix(1.02,0,0,1.02,-3.105,-9.45175)" class="st10"> + <path d="M0 715.59 L278.62 715.59 L310.5 688.27 L310.5 229.59 L0 229.59 L0 715.59 Z" class="st34"/> + </g> + <path d="M0 715.59 L278.62 715.59 L310.5 688.27 L310.5 229.59 L0 229.59 L0 715.59 Z" class="st36"/> + </g> + <g id="shape81-168" v:mID="81" v:groupContext="shape" transform="translate(278.625,0)"> + <title>Sheet.81</title> + <v:userDefs> + <v:ud v:nameU="ControlX" v:prompt="" v:val="VT0(1):1"/> + <v:ud v:nameU="ControlY" v:prompt="" v:val="VT0(0.25):1"/> + <v:ud v:nameU="XFoldLength" v:prompt="" v:val="VT0(0.25):1"/> + <v:ud v:nameU="YFoldLength" v:prompt="" v:val="VT0(0.25):1"/> + <v:ud v:nameU="FillForegnd" v:prompt="" v:val="VT0(1):26"/> + <v:ud v:nameU="ControlX" v:prompt="" v:val="VT0(3.9375):1"/> + <v:ud v:nameU="ControlY" v:prompt="" v:val="VT0(0.4375):1"/> + <v:ud v:nameU="XFoldLength" v:prompt="" v:val="VT0(0.44270833333333):1"/> + <v:ud v:nameU="YFoldLength" v:prompt="" v:val="VT0(0.3794642857143):1"/> + <v:ud v:nameU="FillForegnd" v:prompt="" v:val="VT5(#f2f2f2)"/> + </v:userDefs> + <g id="shadow81-169" v:groupContext="shadow" v:shadowOffsetX="7.2E-008" v:shadowOffsetY="0" v:shadowType="1" + v:shadowScale="1.02" transform="matrix(1.02,0,0,1.02,-0.6375,-14.3117)" class="st10"> + <path d="M0 715.59 L31.88 688.27 L4.87 684.09 L0 715.59 Z" class="st34"/> + </g> + <path d="M0 715.59 L31.88 688.27 L4.87 684.09 L0 715.59 Z" class="st38"/> + </g> + </g> + <g id="group82-175" transform="translate(432.972,-530.713)" v:mID="82" v:groupContext="group"> + <v:userDefs> + <v:ud v:nameU="visVersion" v:prompt="" v:val="VT0(15):26"/> + </v:userDefs> + <title>Can.69</title> + <desc>EDK2 HII Database</desc> + <g id="shape83-176" v:mID="83" v:groupContext="shape"> + <title>Sheet.83</title> + <v:userDefs> + <v:ud v:nameU="ControlHalfHeight" v:prompt="" v:val="VT0(0.125):1"/> + <v:ud v:nameU="FillForegnd" v:prompt="" v:val="VT0(1):26"/> + <v:ud v:nameU="ControlHalfHeight" v:prompt="" v:val="VT0(0.0875):1"/> + </v:userDefs> + <path d="M0 709.29 A29.25 6.3 -180 1 0 58.5 709.29 L58.5 658.89 L0 658.89 L0 709.29 Z" class="st39"/> + </g> + <g id="shape82-178" v:mID="82" v:groupContext="groupContent"> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="29.25" cy="684.088" width="58.5" height="63"/> + <ellipse cx="29.25" cy="658.888" rx="29.25" ry="6.3" class="st39"/> + <text x="11.84" y="681.09" class="st31" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>EDK2 HII <tspan + x="10.24" dy="1.2em" class="st5">Database</tspan></text> </g> + </g> + <g id="shape84-182" v:mID="84" v:groupContext="shape" transform="translate(390.222,-429.463)"> + <title>Sheet.84</title> + <desc>EDKII REDFISH_PLATFORM_CONFIG_PROTOCOL</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="72" cy="693.088" width="144" height="45"/> + <g id="shadow84-183" v:groupContext="shadow" v:shadowOffsetX="7.2E-008" v:shadowOffsetY="0" v:shadowType="1" + v:shadowScale="1.02" transform="matrix(1.02,0,0,1.02,-1.44,-13.8618)" class="st10"> + <rect x="0" y="670.588" width="144" height="45" class="st40"/> + </g> + <rect x="0" y="670.588" width="144" height="45" class="st41"/> + <text x="58.18" y="683.34" class="st20" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>EDKII <tspan + x="6" dy="1em" class="st5">REDFISH</tspan>_PLATFORM_CO<tspan x="26.68" dy="1em" class="st5">NFIG</tspan>_PROTOCOL</text> </g> + <g id="shape85-190" v:mID="85" v:groupContext="shape" v:layerMember="0" transform="translate(1171.06,184.875) rotate(90)"> + <title>1-D double.75</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="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 + 702.09 L49.5 704.79 L6.75 704.79 Z" class="st39"/> + </g> + <g id="shape86-192" v:mID="86" v:groupContext="shape" v:layerMember="0" transform="translate(1164.31,286.125) rotate(90)"> + <title>1-D double.68</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <g id="shadow86-193" v:groupContext="shadow" v:shadowOffsetX="7.2E-008" v:shadowOffsetY="0" v:shadowType="1" + v:shadowScale="1.02" transform="matrix(1.02,0,0,1.02,-1.1475,-14.0418)" class="st10"> + <path d="M13.5 693.99 L13.5 688.59 L0 702.09 L13.5 715.59 L13.5 710.19 L101.25 710.19 L101.25 715.59 L114.75 702.09 + L101.25 688.59 L101.25 693.99 L13.5 693.99 Z" class="st40"/> + </g> + <path d="M13.5 693.99 L13.5 688.59 L0 702.09 L13.5 715.59 L13.5 710.19 L101.25 710.19 L101.25 715.59 L114.75 702.09 L101.25 + 688.59 L101.25 693.99 L13.5 693.99 Z" class="st39"/> + </g> + <g id="shape87-197" v:mID="87" v:groupContext="shape" transform="translate(27.9724,-616.213)"> + <title>Sheet.87</title> + <desc>EDK2 Open Source Implementation</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="121.5" cy="702.088" width="243" height="27"/> + <rect x="0" y="688.588" width="243" height="27" class="st6"/> + <text x="34.39" y="705.09" class="st29" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>EDK2 Open Source Implementation</text> </g> + <g id="shape88-200" v:mID="88" v:groupContext="shape" v:layerMember="0" transform="translate(1312.81,270.375) rotate(90)"> + <title>1-D double.88</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="M13.5 693.99 L13.5 688.59 L0 702.09 L13.5 715.59 L13.5 710.19 L117 710.19 L117 715.59 L130.5 702.09 L117 688.59 + L117 693.99 L13.5 693.99 Z" class="st42"/> + </g> + <g id="shape89-202" v:mID="89" v:groupContext="shape" v:layerMember="0" transform="translate(1434.31,247.875) rotate(90)"> + <title>1-D double.89</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="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 + 688.59 L139.5 693.99 L13.5 693.99 Z" class="st43"/> + </g> + <g id="shape90-204" v:mID="90" v:groupContext="shape" v:layerMember="0" + transform="translate(838.629,252.112) rotate(68.1986)"> + <title>Curve connect 1.61</title> + <v:userDefs> + <v:ud v:nameU="Scale" v:val="VT0(1):26"/> + <v:ud v:nameU="AntiScale" v:val="VT0(1):26"/> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="M7.53 720.84 L7.83 721.04 A30.61 30.61 -180 0 0 42.41 715.59 A30.61 30.61 0 0 1 76.99 710.13 L77.29 710.34" + class="st44"/> + </g> + <g id="shape91-213" v:mID="91" v:groupContext="shape" v:layerMember="0" + transform="translate(-37.5816,162.844) rotate(-60.2551) scale(-1,1)"> + <title>Curve connect 1.62</title> + <v:userDefs> + <v:ud v:nameU="Scale" v:val="VT0(1):26"/> + <v:ud v:nameU="AntiScale" v:val="VT0(1):26"/> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="M7.67 720.62 L7.98 720.82 A34.3918 34.3918 -180 0 0 45.35 715.59 A34.3918 34.3918 0 0 1 82.72 710.35 L83.03 + 710.55" class="st44"/> + </g> + <g id="shape94-220" v:mID="94" v:groupContext="shape" v:layerMember="0" + transform="translate(488.651,-255.84) rotate(-1.84761)"> + <title>Curve connect 2.54</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="M1.08 713.99 L1.29 713.7 A41.432 41.432 0 0 1 69.79 715.59" class="st23"/> + </g> + <g id="shape96-225" v:mID="96" v:groupContext="shape" transform="translate(572.472,-222.463)"> + <title>Sheet.96</title> + <desc>Script-generated EDK2 Redfish Collection Driver</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="76.5" cy="693.088" width="153" height="45"/> + <rect x="0" y="670.588" width="153" height="45" class="st19"/> + <text x="16.96" y="689.84" class="st20" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>Script-generated EDK2 <tspan + x="11.39" dy="1em" class="st5">Redfish Collection Driver</tspan></text> </g> + <g id="shape98-229" v:mID="98" v:groupContext="shape" transform="translate(67.3474,-420.463)"> + <title>Rounded Rectangle.98</title> + <desc>EDK2 HII UNI file #string STR_OPTION_A #language x-uefi-redfi...</desc> + <v:userDefs> + <v:ud v:nameU="CTypeTopLeftSnip" v:prompt="" v:val="VT0(0):5"/> + <v:ud v:nameU="CTypeTopRightSnip" v:prompt="" v:val="VT0(0):5"/> + <v:ud v:nameU="CTypeBotLeftSnip" v:prompt="" v:val="VT0(0):5"/> + <v:ud v:nameU="CTypeBotRightSnip" v:prompt="" v:val="VT0(0):5"/> + <v:ud v:nameU="CornerLockHoriz" v:prompt="" v:val="VT0(1):5"/> + <v:ud v:nameU="CornerLockVert" v:prompt="" v:val="VT0(1):5"/> + <v:ud v:nameU="CornerLockDiag" v:prompt="" v:val="VT0(0):5"/> + <v:ud v:nameU="TopLeftOffset" v:prompt="" v:val="VT0(0.15):1"/> + <v:ud v:nameU="TopRightOffset" v:prompt="" v:val="VT0(0.15):1"/> + <v:ud v:nameU="BotLeftOffset" v:prompt="" v:val="VT0(0.15):1"/> + <v:ud v:nameU="BotRightOffset" v:prompt="" v:val="VT0(0.15):1"/> + <v:ud v:nameU="visVersion" v:prompt="" v:val="VT0(15):26"/> + <v:ud v:nameU="TopLeftOffset" v:prompt="" v:val="VT0(0.10739436619718):1"/> + <v:ud v:nameU="TopRightOffset" v:prompt="" v:val="VT0(0.10739436619718):1"/> + <v:ud v:nameU="BotLeftOffset" v:prompt="" v:val="VT0(0.10739436619718):1"/> + <v:ud v:nameU="BotRightOffset" v:prompt="" v:val="VT0(0.10739436619718):1"/> + </v:userDefs> + <v:textBlock v:margins="rect(4,4,4,4)" v:verticalAlign="0"/> + <v:textRect cx="137.25" cy="672.838" width="274.5" height="85.5"/> + <path d="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 + 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 + Z" class="st46"/> + <text x="4" y="646.69" class="st47" v:langID="1033"><v:paragraph v:spBefore="6" v:bulletSize="0.166667"/><v:tabList/>EDK2 HII UNI file<v:lf/><tspan + x="4" dy="1.425em" class="st48">#</tspan><tspan class="st48">string </tspan><tspan class="st49">STR</tspan><tspan + class="st49">_</tspan><tspan class="st49">OPTION</tspan><tspan class="st49">_</tspan><tspan class="st49">A</tspan><tspan + class="st48"> </tspan><tspan class="st48">#</tspan><tspan class="st48">language </tspan><tspan + class="st49">x</tspan><tspan class="st49">-</tspan><tspan class="st49">uefi</tspan><tspan class="st49">-</tspan><tspan + class="st49">redfish</tspan><tspan class="st49">-</tspan><tspan class="st49">SCHEMA</tspan><tspan + class="st49">.</tspan><tspan class="st49">VERSION</tspan><tspan class="st48"> </tspan><tspan class="st49"> </tspan><tspan + x="4" dy="1.2em" class="st50">“</tspan><tspan class="st50">/</tspan><tspan class="st50">SCHEMA</tspan><tspan + class="st50">/</tspan><tspan class="st50">PropertyA</tspan><tspan class="st49">” </tspan><tspan + class="st48"> <v:newlineChar/><v:paragraph v:bulletSize="0.166667"/></tspan><tspan x="4" dy="1.2em" + class="st48">#</tspan><tspan class="st48">string</tspan><tspan class="st49"> </tspan><tspan class="st49">STR</tspan><tspan + class="st49">_</tspan><tspan class="st49">OPTION</tspan><tspan class="st49">_</tspan><tspan class="st49">B</tspan><tspan + class="st48"> </tspan><tspan class="st48">#</tspan><tspan class="st48">language</tspan><tspan class="st49"> </tspan><tspan + class="st49">x</tspan><tspan class="st49">-</tspan><tspan class="st49">uefi</tspan><tspan class="st49">-</tspan><tspan + class="st49">redfish</tspan><tspan class="st49">-</tspan><tspan class="st49">SCHEMA</tspan><tspan + class="st49">.</tspan><tspan class="st49">VERSION</tspan><tspan class="st48"> </tspan><tspan class="st50"> </tspan><tspan + x="4" dy="1.2em" class="st50">“</tspan><tspan class="st50">/</tspan><tspan class="st50">SCHEMA</tspan><tspan + class="st50">/</tspan><tspan class="st50">PropertyB</tspan><tspan class="st50">”<v:newlineChar/></tspan><tspan + x="4" dy="1.2em" class="st48">#</tspan><tspan class="st48">string </tspan><tspan class="st49">STR</tspan><tspan + class="st49">_</tspan><tspan class="st49">OPTION</tspan><tspan class="st49">_</tspan><tspan class="st48">C </tspan><tspan + class="st48">#</tspan><tspan class="st48">language</tspan><tspan class="st49"> </tspan><tspan class="st49">x</tspan><tspan + class="st49">-</tspan><tspan class="st49">uefi</tspan><tspan class="st49">-</tspan><tspan class="st49">redfish</tspan><tspan + class="st49">-</tspan><tspan class="st49">SCHEMA</tspan><tspan class="st49">.</tspan><tspan class="st49">VERSION</tspan><tspan + class="st48"> </tspan><tspan class="st50"> </tspan><tspan x="4" dy="1.312em" class="st50">“</tspan><tspan + class="st50">/</tspan><tspan class="st50">SCHEMA</tspan><tspan class="st50">/</tspan><tspan class="st50">PropertyC</tspan><tspan + class="st50">”</tspan><v:newlineChar/></text> </g> + <g id="shape100-316" v:mID="100" v:groupContext="shape" transform="translate(171.972,-550.963)"> + <title>Rounded Rectangle.100</title> + <desc>EDK2 HII VFR Form Option A Enabled Option B Disabled Option C...</desc> + <v:userDefs> + <v:ud v:nameU="CTypeTopLeftSnip" v:prompt="" v:val="VT0(0):5"/> + <v:ud v:nameU="CTypeTopRightSnip" v:prompt="" v:val="VT0(0):5"/> + <v:ud v:nameU="CTypeBotLeftSnip" v:prompt="" v:val="VT0(0):5"/> + <v:ud v:nameU="CTypeBotRightSnip" v:prompt="" v:val="VT0(0):5"/> + <v:ud v:nameU="CornerLockHoriz" v:prompt="" v:val="VT0(1):5"/> + <v:ud v:nameU="CornerLockVert" v:prompt="" v:val="VT0(1):5"/> + <v:ud v:nameU="CornerLockDiag" v:prompt="" v:val="VT0(0):5"/> + <v:ud v:nameU="TopLeftOffset" v:prompt="" v:val="VT0(0.15):1"/> + <v:ud v:nameU="TopRightOffset" v:prompt="" v:val="VT0(0.15):1"/> + <v:ud v:nameU="BotLeftOffset" v:prompt="" v:val="VT0(0.15):1"/> + <v:ud v:nameU="BotRightOffset" v:prompt="" v:val="VT0(0.15):1"/> + <v:ud v:nameU="visVersion" v:prompt="" v:val="VT0(15):26"/> + <v:ud v:nameU="TopLeftOffset" v:prompt="" v:val="VT0(0.0625):1"/> + <v:ud v:nameU="TopRightOffset" v:prompt="" v:val="VT0(0.0625):1"/> + <v:ud v:nameU="BotLeftOffset" v:prompt="" v:val="VT0(0.0625):1"/> + <v:ud v:nameU="BotRightOffset" v:prompt="" v:val="VT0(0.0625):1"/> + </v:userDefs> + <v:textBlock v:margins="rect(4,4,4,4)" v:verticalAlign="0"/> + <v:textRect cx="76.5" cy="688.025" width="153" height="55.125"/> + <path d="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 + L4.5 660.46 A4.49993 4.49993 -180 0 0 0 664.96 L0 711.09 A4.49993 4.49993 -180 0 0 4.5 715.59 Z" + class="st51"/> + <text x="37.65" y="671.66" class="st52" v:langID="1033"><v:paragraph v:spLine="-0.8" v:horizAlign="1"/><v:tabList/>EDK2 HII VFR Form<v:lf/><v:lf/><tspan + x="24.37" dy="1.6em" class="st53">Option A Enabled<v:newlineChar/></tspan><tspan x="24.6" dy="0.8em" + class="st53">Option B Disabled<v:newlineChar/></tspan><tspan x="24.4" dy="0.8em" class="st53">Option C </tspan><tspan + class="st53">0</tspan><tspan class="st53">x</tspan><tspan class="st53">16</tspan></text> </g> + <g id="shape101-325" v:mID="101" v:groupContext="shape" transform="translate(147.222,-539.713)"> + <title>Rounded Rectangle.101</title> + <desc>EDK2 HII VFR Form Option A Enabled Option B Disabled Option C...</desc> + <v:userDefs> + <v:ud v:nameU="CTypeTopLeftSnip" v:prompt="" v:val="VT0(0):5"/> + <v:ud v:nameU="CTypeTopRightSnip" v:prompt="" v:val="VT0(0):5"/> + <v:ud v:nameU="CTypeBotLeftSnip" v:prompt="" v:val="VT0(0):5"/> + <v:ud v:nameU="CTypeBotRightSnip" v:prompt="" v:val="VT0(0):5"/> + <v:ud v:nameU="CornerLockHoriz" v:prompt="" v:val="VT0(1):5"/> + <v:ud v:nameU="CornerLockVert" v:prompt="" v:val="VT0(1):5"/> + <v:ud v:nameU="CornerLockDiag" v:prompt="" v:val="VT0(0):5"/> + <v:ud v:nameU="TopLeftOffset" v:prompt="" v:val="VT0(0.15):1"/> + <v:ud v:nameU="TopRightOffset" v:prompt="" v:val="VT0(0.15):1"/> + <v:ud v:nameU="BotLeftOffset" v:prompt="" v:val="VT0(0.15):1"/> + <v:ud v:nameU="BotRightOffset" v:prompt="" v:val="VT0(0.15):1"/> + <v:ud v:nameU="visVersion" v:prompt="" v:val="VT0(15):26"/> + <v:ud v:nameU="TopLeftOffset" v:prompt="" v:val="VT0(0.0625):1"/> + <v:ud v:nameU="TopRightOffset" v:prompt="" v:val="VT0(0.0625):1"/> + <v:ud v:nameU="BotLeftOffset" v:prompt="" v:val="VT0(0.0625):1"/> + <v:ud v:nameU="BotRightOffset" v:prompt="" v:val="VT0(0.0625):1"/> + </v:userDefs> + <v:textBlock v:margins="rect(4,4,4,4)" v:verticalAlign="0"/> + <v:textRect cx="76.5" cy="688.025" width="153" height="55.125"/> + <path d="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 + L4.5 660.46 A4.49993 4.49993 -180 0 0 0 664.96 L0 711.09 A4.49993 4.49993 -180 0 0 4.5 715.59 Z" + class="st51"/> + <text x="37.65" y="671.66" class="st52" v:langID="1033"><v:paragraph v:spLine="-0.8" v:horizAlign="1"/><v:tabList/>EDK2 HII VFR Form<v:lf/><v:lf/><tspan + x="24.37" dy="1.6em" class="st53">Option A Enabled<v:newlineChar/></tspan><tspan x="24.6" dy="0.8em" + class="st53">Option B Disabled<v:newlineChar/></tspan><tspan x="24.4" dy="0.8em" class="st53">Option C </tspan><tspan + class="st53">0</tspan><tspan class="st53">x</tspan><tspan class="st53">16</tspan></text> </g> + <g id="shape102-334" v:mID="102" v:groupContext="shape" transform="translate(129.222,-526.213)"> + <title>Rounded Rectangle</title> + <desc>EDK2 HII VFR Form Option A Enabled Option B Disabled Option C...</desc> + <v:userDefs> + <v:ud v:nameU="CTypeTopLeftSnip" v:prompt="" v:val="VT0(0):5"/> + <v:ud v:nameU="CTypeTopRightSnip" v:prompt="" v:val="VT0(0):5"/> + <v:ud v:nameU="CTypeBotLeftSnip" v:prompt="" v:val="VT0(0):5"/> + <v:ud v:nameU="CTypeBotRightSnip" v:prompt="" v:val="VT0(0):5"/> + <v:ud v:nameU="CornerLockHoriz" v:prompt="" v:val="VT0(1):5"/> + <v:ud v:nameU="CornerLockVert" v:prompt="" v:val="VT0(1):5"/> + <v:ud v:nameU="CornerLockDiag" v:prompt="" v:val="VT0(0):5"/> + <v:ud v:nameU="TopLeftOffset" v:prompt="" v:val="VT0(0.15):1"/> + <v:ud v:nameU="TopRightOffset" v:prompt="" v:val="VT0(0.15):1"/> + <v:ud v:nameU="BotLeftOffset" v:prompt="" v:val="VT0(0.15):1"/> + <v:ud v:nameU="BotRightOffset" v:prompt="" v:val="VT0(0.15):1"/> + <v:ud v:nameU="visVersion" v:prompt="" v:val="VT0(15):26"/> + <v:ud v:nameU="TopLeftOffset" v:prompt="" v:val="VT0(0.0625):1"/> + <v:ud v:nameU="TopRightOffset" v:prompt="" v:val="VT0(0.0625):1"/> + <v:ud v:nameU="BotLeftOffset" v:prompt="" v:val="VT0(0.0625):1"/> + <v:ud v:nameU="BotRightOffset" v:prompt="" v:val="VT0(0.0625):1"/> + </v:userDefs> + <v:textBlock v:margins="rect(4,4,4,4)" v:verticalAlign="0"/> + <v:textRect cx="76.5" cy="688.025" width="153" height="55.125"/> + <path d="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 + L4.5 660.46 A4.49993 4.49993 -180 0 0 0 664.96 L0 711.09 A4.49993 4.49993 -180 0 0 4.5 715.59 Z" + class="st51"/> + <text x="29.88" y="671.66" class="st29" v:langID="1033"><v:paragraph v:spLine="-0.8" v:horizAlign="1"/><v:tabList/>EDK2 HII VFR Form<v:lf/><v:lf/><tspan + x="24.37" dy="1.6em" class="st54">Option A </tspan><tspan class="st55">Enabled<v:newlineChar/></tspan><tspan + x="24.6" dy="0.8em" class="st54">Option B </tspan><tspan class="st55">Disabled<v:newlineChar/></tspan><tspan + x="24.4" dy="0.8em" class="st54">Option C </tspan><tspan class="st55">0</tspan><tspan + class="st55">x</tspan><tspan class="st55">16</tspan></text> </g> + <g id="shape110-345" v:mID="110" v:groupContext="shape" v:layerMember="0" + transform="translate(503.938,-444.613) rotate(13.0919)"> + <title>Curve connect 1.110</title> + <v:userDefs> + <v:ud v:nameU="Scale" v:val="VT0(1):26"/> + <v:ud v:nameU="AntiScale" v:val="VT0(1):26"/> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="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="st56"/> + </g> + <g id="shape122-351" v:mID="122" v:groupContext="shape" transform="translate(41.4724,-96.4625)"> + <title>Sheet.122</title> + <desc>[1]</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="12.375" cy="702.088" width="24.75" height="27"/> + <rect x="0" y="688.588" width="24.75" height="27" class="st6"/> + <text x="5.44" y="705.09" class="st7" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>[1]</text> </g> + <g id="shape123-354" v:mID="123" v:groupContext="shape" transform="translate(746.847,-100.963)"> + <title>Sheet.123</title> + <desc>[2]</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="12.375" cy="702.088" width="24.75" height="27"/> + <rect x="0" y="688.588" width="24.75" height="27" class="st6"/> + <text x="5.44" y="705.09" class="st7" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>[2]</text> </g> + <g id="shape124-357" v:mID="124" v:groupContext="shape" transform="translate(68.4724,-278.713)"> + <title>Sheet.124</title> + <desc>[3]</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="12.375" cy="702.088" width="24.75" height="27"/> + <rect x="0" y="688.588" width="24.75" height="27" class="st6"/> + <text x="5.44" y="705.09" class="st7" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>[3]</text> </g> + <g id="shape125-360" v:mID="125" v:groupContext="shape" transform="translate(338.472,-269.713)"> + <title>Sheet.125</title> + <desc>[4]</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="12.375" cy="702.088" width="24.75" height="27"/> + <rect x="0" y="688.588" width="24.75" height="27" class="st6"/> + <text x="5.44" y="705.09" class="st7" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>[4]</text> </g> + <g id="shape126-363" v:mID="126" v:groupContext="shape" transform="translate(761.472,-269.713)"> + <title>Sheet.126</title> + <desc>[5]</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="12.375" cy="702.088" width="24.75" height="27"/> + <rect x="0" y="688.588" width="24.75" height="27" class="st6"/> + <text x="5.44" y="705.09" class="st7" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>[5]</text> </g> + <g id="shape127-366" v:mID="127" v:groupContext="shape" transform="translate(390.222,-476.713)"> + <title>Sheet.127</title> + <desc>[6]</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="12.375" cy="702.088" width="24.75" height="27"/> + <rect x="0" y="688.588" width="24.75" height="27" class="st6"/> + <text x="5.44" y="705.09" class="st7" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>[6]</text> </g> + <g id="shape128-369" v:mID="128" v:groupContext="shape" transform="translate(123.597,-579.088)"> + <title>Sheet.128</title> + <desc>[8]</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="12.375" cy="702.088" width="24.75" height="27"/> + <rect x="0" y="688.588" width="24.75" height="27" class="st6"/> + <text x="5.44" y="705.09" class="st7" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>[8]</text> </g> + <g id="shape129-372" v:mID="129" v:groupContext="shape" transform="translate(62.8474,-501.463)"> + <title>Sheet.129</title> + <desc>[9]</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="12.375" cy="702.088" width="24.75" height="27"/> + <rect x="0" y="688.588" width="24.75" height="27" class="st6"/> + <text x="5.44" y="705.09" class="st7" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>[9]</text> </g> + <g id="shape132-375" v:mID="132" v:groupContext="shape" v:layerMember="0" + transform="translate(583.722,1233.46) rotate(180)"> + <title>Curve connect 2.132</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="M2.78 714.72 L3.12 714.61 A681.188 681.188 0 0 1 406.38 714.61 L406.72 714.72" class="st58"/> + </g> + <g id="shape133-384" v:mID="133" v:groupContext="shape" transform="translate(238.347,-157.213)"> + <title>Sheet.133</title> + <desc>Script-generated EDK2 Redfish client driver/library based on ...</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="130.5" cy="702.088" width="261" height="27"/> + <rect x="0" y="688.588" width="261" height="27" class="st1"/> + <text x="11.21" y="699.84" class="st60" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>Script-generated EDK2 Redfish client driver/library based on the <tspan + x="45.23" dy="1em" class="st5">standard Redfish schemas </tspan>published by DMTF</text> </g> + <g id="shape134-388" v:mID="134" v:groupContext="shape" transform="translate(21.2224,-679.775)"> + <title>Rectangle.134</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <rect x="0" y="703.213" width="24.75" height="12.375" class="st2"/> + </g> + <g id="shape135-390" v:mID="135" v:groupContext="shape" transform="translate(41.4724,-670.213)"> + <title>Sheet.135</title> + <desc>Script-generated code</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="54" cy="702.088" width="108" height="27"/> + <rect x="0" y="688.588" width="108" height="27" class="st6"/> + <text x="12.79" y="704.34" class="st61" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>Script-generated code</text> </g> + <g id="shape137-393" v:mID="137" v:groupContext="shape" transform="translate(21.2224,-661.213)"> + <title>Rectangle.137</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <rect x="0" y="703.213" width="24.75" height="12.375" class="st62"/> + </g> + <g id="shape138-395" v:mID="138" v:groupContext="shape" transform="translate(43.7224,-652.213)"> + <title>Sheet.138</title> + <desc>UEFI/EDK2 open source</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="54" cy="702.088" width="108" height="27"/> + <rect x="0" y="688.588" width="108" height="27" class="st6"/> + <text x="9.97" y="704.34" class="st61" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>UEFI/EDK2 open source</text> </g> + <g id="shape140-398" v:mID="140" v:groupContext="shape" transform="translate(281.66,-341.784)"> + <title>Configure</title> + <v:userDefs> + <v:ud v:nameU="msvShapeCategories" v:prompt="" v:val="VT4(Icon)"/> + <v:ud v:nameU="visVersion" v:prompt="" v:val="VT0(15):26"/> + </v:userDefs> + <path d="M41.27 698.83 C40.4 698.46 37.61 697.28 37.61 697.28 L37.79 694.96 L37.94 693.01 L37.69 689.29 L39.53 688.23 + 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 + 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 + 31.41 676.7 31.79 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 + L24.28 677.95 C23.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 + 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.93 L13.12 681.37 + 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 + 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 + 693.25 7.7 694.01 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 + 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 + 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 + 15.1 711.12 16.61 711.77 C17.05 710.74 18.36 707.71 18.36 707.71 L20.65 708.03 C21.73 708.19 22.89 708.21 + 24.1 708.1 L26.18 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 + 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 + L35.81 701 L37.85 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 + 695.32 C40.58 695.32 40.57 695.4 40.56 695.47 C40.95 695.64 44.96 697.33 44.96 697.33 L41.23 706.17 C41.23 + 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 + 707.11 C33.97 707.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 + 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 711 20.25 710.82 + 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 + 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 + C8.72 704.23 8.51 703.94 8.37 703.75 C7.96 703.9 3.49 705.65 3.49 705.65 L0 696.71 C0 696.71 4.8 694.83 + 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 693.02 C4.82 693.02 + 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 + C8.51 682.18 8.56 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 + 679.11 C11.29 678.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 + 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 + 675.16 C24.87 674.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 + 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 681.88 36.94 681.95 + 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 + 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 + 697.76 C29.16 695.67 29.58 691.87 27.5 689.26 C25.42 686.65 21.62 686.23 19.01 688.31 C16.41 690.4 15.98 + 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 + 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 701.58 17.34 700.41 + 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.12 C19.1 684.64 + 21.41 683.97 23.76 684.23 Z" class="st63"/> + </g> + <g id="shape145-400" v:mID="145" v:groupContext="shape" v:layerMember="0" + transform="translate(323.911,1069.28) scale(1,-1)"> + <title>Side to top/bottom.145</title> + <v:userDefs> + <v:ud v:nameU="TextPos" v:val="VT0(0):5"/> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="M7.18 715.59 L7.54 715.59 L96.69 715.59 L96.69 668.4" class="st64"/> + </g> + <g id="shape146-406" v:mID="146" v:groupContext="shape" v:layerMember="0" transform="translate(204.597,-382.144)"> + <title>Bottom to top fixed 2</title> + <v:userDefs> + <v:ud v:nameU="TextPos" v:val="VT0(1):26"/> + <v:ud v:nameU="Offset" v:val="VT0(0.25):0"/> + <v:ud v:nameU="Scale" v:val="VT0(1):26"/> + <v:ud v:nameU="AntiScale" v:val="VT0(1):26"/> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="M0 677.27 L0 697.59 L99.14 697.59 L99.14 708.05" class="st66"/> + </g> + <g id="shape150-412" v:mID="150" v:groupContext="shape" v:layerMember="0" transform="translate(281.66,1070.51) rotate(180)"> + <title>Side to top/bottom</title> + <v:userDefs> + <v:ud v:nameU="TextPos" v:val="VT0(0):5"/> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="M7.18 715.59 L7.54 715.59 L107.44 715.59 L107.44 669.64" class="st64"/> + </g> + <g id="shape152-417" v:mID="152" v:groupContext="shape" transform="translate(173.097,-359.713)"> + <title>Sheet.152</title> + <desc>[10]</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="22.5" cy="702.088" width="45" height="27"/> + <rect x="0" y="688.588" width="45" height="27" class="st6"/> + <text x="12.52" y="705.09" class="st7" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>[10]</text> </g> + <g id="shape153-420" v:mID="153" v:groupContext="shape" transform="translate(186.597,-359.713)"> + <title>Sheet.153</title> + <desc>EDK2 Build Tool</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="54" cy="702.088" width="108" height="27"/> + <rect x="0" y="688.588" width="108" height="27" class="st6"/> + <text x="21.18" y="704.59" class="st22" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>EDK2 Build Tool</text> </g> + <g id="shape95-423" v:mID="95" v:groupContext="shape" v:layerMember="0" + transform="translate(479.651,-242.34) rotate(-1.84761)"> + <title>Curve connect 2</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="M1.08 713.99 L1.29 713.7 A41.432 41.432 0 0 1 68.5 713.7 L68.7 713.99" class="st67"/> + </g> + <g id="shape154-431" v:mID="154" v:groupContext="shape" transform="translate(546.597,-607.213)"> + <title>Sheet.154</title> + <desc>[7]</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="12.375" cy="702.088" width="24.75" height="27"/> + <rect x="0" y="688.588" width="24.75" height="27" class="st6"/> + <text x="5.44" y="705.09" class="st7" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>[7]</text> </g> + <g id="shape155-434" v:mID="155" v:groupContext="shape" v:layerMember="0" + transform="translate(919.083,249.319) rotate(-86.8202) scale(1,-1)"> + <title>Curve connect 1.155</title> + <v:userDefs> + <v:ud v:nameU="Scale" v:val="VT0(1):26"/> + <v:ud v:nameU="AntiScale" v:val="VT0(1):26"/> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="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="st68"/> + </g> + </g> +</svg> -- 2.17.1 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [staging/edk2-redfish-client PATCH v2 1/2] RedfishClientPkg: Initial commit 2021-07-20 3:53 ` [staging/edk2-redfish-client PATCH v2 1/2] RedfishClientPkg: Initial commit Abner Chang @ 2021-07-20 6:21 ` Nickle Wang 0 siblings, 0 replies; 7+ messages in thread From: Nickle Wang @ 2021-07-20 6:21 UTC (permalink / raw) To: Chang, Abner (HPS SW/FW Technologist), devel@edk2.groups.io Cc: Liming Gao, Andrew Fish, Leif Lindholm, Michael D Kinney Reviewed-by: Nickle Wang <nickle.wang@hpe.com> Thanks, Nickle -----Original Message----- From: Chang, Abner (HPS SW/FW Technologist) <abner.chang@hpe.com> Sent: Tuesday, July 20, 2021 11:54 AM To: devel@edk2.groups.io Cc: Wang, Nickle (HPS SW) <nickle.wang@hpe.com>; Liming Gao <gaoliming@byosoft.com.cn>; Andrew Fish <afish@apple.com>; Leif Lindholm <leif@nuviainc.com>; Michael D Kinney <michael.d.kinney@intel.com> Subject: [staging/edk2-redfish-client PATCH v2 1/2] RedfishClientPkg: Initial commit Initial commit of architecture diagrams and Readme.md Signed-off-by: Abner Chang <abner.chang@hpe.com> Cc: Nickle Wang <nickle.wang@hpe.com> Cc: Liming Gao <gaoliming@byosoft.com.cn> Cc: Andrew Fish <afish@apple.com> Cc: Leif Lindholm <leif@nuviainc.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> --- 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/RedfishClientDriverStack.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://github.com/tianocore/edk2/blob/master/RedfishPkg/Readme.md), +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 solution +requests the instance of **EFI REST EX Protocol** through EFI Redfish Discover +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 options to +the corresponding Redfish properties that are already defined in the standard +Redfish schemas published by +[*DMTF Redfish working group*](https://www.dmtf.org/standards/redfish). +The advantage of this design is to strengthen the interoperability among the +servers produced by different OEMs when configuring the platform through Redfish +service. Using the properties defined in Redfish standard schema for configuring +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 divergence 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. Associate +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, however, +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="[0]">EDK2 Redfish Client Implementation Diagrams</a> +![UEFI Redfish Client Implementation](https://github.com/changab/edk2-staging/blob/edk2-redfish-client/RedfishClientPkg/Documents/Media/RedfishClientDriverStack.svg?raw=true) + +## EFI EDK2 Redfish Client Framework +The functionality of each block in the diagrams are described in belwo sections, + +### EDK2 Redfish Foundation ***[[1]](#[0])*** +EDK2 Redfish Redfish Foundation provides the facilities of communicating with +Redfish service. Such as the discovery of Redfish service, the credential to +access Redfish service, *EFI REST EX Protocol* instance which is the transport +layer to Redfish service, and so on. Please refer to +[*EDK2 Redfish Foundation*](https://github.com/tianocore/edk2/blob/master/RedfishPkg/Readme.md). + +### Redfish Profile Simulator ***[[2]](#[0])*** +Redfish Profile Simulator is an +[*open source project*](https://github.com/DMTF/Redfish-Profile-Simulator) on +DMTF GitHub, which simulates the HTTP request methods (POST, PATCH, PUT, GET) 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 on the +platform, or for the quick Redfish firmware feature development. We clone this +project under RedfishClientPkg and maintain it by edk2 because this project 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 requirement +on Redfish service, such as ETAG and HTTP POST support. <br> +Another open source project of Redfish simulator is +[*Redfish Interface Emulator*](https://github.com/DMTF/Redfish-Interface-Emulator), +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 structure +instead of using JSON library to manipulate Redfish properties. The script +[*Redfish Schema C Struct Generator*](https://github.com/DMTF/Redfish-Schema-C-Struct-Generator) +is still a private project on DMTF GitHub. Below is the reference of script +auto-generated +[*Redfish JSON C Struct Converter Lib*](https://github.com/changab/Redfish-JSON-C-Struct-Converter-Lib) +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 sets +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 platform +configurations to Redfish service. Both EDK2 Redfish Non-Collection and +Collection Feature drivers are script auto-generated base on Redfish schema +naming. The EDK2 Redfish Non-Collection feature driver manages the resource 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 resource) +. + +### EDKII Redfish Platform Config Protocol ***[[6]](#[0])*** +EDKII Redfish Platform Config Protocol is an abstract driver that abstracts the +platform configuration format and storage from EDK2 Redfish Feature driver. +This protocol provides the interfaces to get and set platform configuration with +the format and configuration storage agnostic to the Redfish feature driver. +The platform can provide its own EDKII Redfish Platform Config driver instance +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 instance +can provide its own implementation to get or set the platform configurations. + +### 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 HII +options declared in this form intend to interact with the REST architectural +style. On edk2 open source, the REST architectural style refers to the Redfish +service. Besides **EFI_HII_REST_STYLE_FORMSET_GUID** is defined in the form +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 option +with the particular Redfish property. The Hii options interact with EDK2 Redfish +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 schema 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-redfish configure +language +- The path is relative to root of Redfish resource type, not related to Redfish service +- root. + +#### Examples, +```C +Properties: + +#string STR_BOOT_SOURCE_OVERRIDE_ENABLED_PROMPT #language x_uefi_redfish_ComputerSystem.v1_0_0 "/Boot/BootSourceOverrideEnabled" +#string STR_BOOT_SOURCE_OVERRIDE_MODE_PROMPT #language x_uefi_redfish_ComputerSystem.v1_0_0 "/Boot/BootSourceOverrideMode" +#string STR_BOOT_SOURCE_OVERRIDE_TARGET_PROMPT #language x_uefi_redfish_ComputerSystem.v1_0_0 "/Boot/BootSourceOverrideTarget" +``` +```C +Properties in array object [NUM]: + +#string STR_BOOT_ORDER_1_PROMPT #language x_uefi_redfish_ComputerSystem.v1_11_0 "/Boot/BootOrder/[1]/Boot0001" +#string STR_BOOT_ORDER_2_PROMPT #language x_uefi_redfish_ComputerSystem.v1_11_0 "/Boot/BootOrder/[2]/Boot0002" +#string STR_BOOT_ORDER_3_PROMPT #language x_uefi_redfish_ComputerSystem.v1_11_0 "/Boot/BootOrder/[3]/Boot0003" +``` +```C +Properties in collection object {NUM}: + +#string STR_MEMORY_1_BASE_MODULE_TYPE_PROMPT #language x_uefi_redfish_Memory.v1_7_1 "/Memory/{1}/BaseModuleType" +#string STR_MEMORY_2_BASE_MODULE_TYPE_PROMPT #language x_uefi_redfish_Memory.v1_7_1 "/Memory/{2}/BaseModuleType" +#string STR_MEMORY_3_BASE_MODULE_TYPE_PROMPT #language x_uefi_redfish_Memory.v1_7_1 "/Memory/{3}/BaseModuleType" +``` + +### EDK2 Build Tool ***[[10]](#[0])*** +EDK2 Build is responsible to pull the necessary EDK2 Redfish JSON Schema to C +Structure Convertors and EDK2 Redfish Feature drivers into edk2 build process +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="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by Microsoft Visio, SVG Export RedfishClientDriverStack.svg Page-2 --> +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ev="http://www.w3.org/2001/xml-events" + xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="12.1281in" height="9.93872in" + viewBox="0 0 873.222 715.588" xml:space="preserve" color-interpolation-filters="sRGB" class="st69"> + <v:documentProperties v:langID="1033" v:viewMarkup="false"> + <v:userDefs> + <v:ud v:nameU="msvNoAutoConnect" v:val="VT0(1):26"/> + </v:userDefs> + </v:documentProperties> + + <style type="text/css"> + <![CDATA[ + .st1 {fill:#ffffff;stroke:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75} + .st2 {fill:#ebf1df;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5} + .st3 {fill:#ff1a1a;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5} + .st4 {fill:#ffffff;font-family:Calibri;font-size:1.00001em;font-weight:bold} + .st5 {font-size:1em} + .st6 {fill:none;stroke:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75} + .st7 {fill:#000000;font-family:Calibri;font-size:1.00001em;font-weight:bold} + .st8 {fill:#dbeef3;stroke:#d8d8d8;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5} + .st9 {fill:#ffffff;font-family:Calibri;font-size:1.08334em;font-weight:bold} + .st10 {visibility:visible} + .st11 {fill:none;filter:url(#filter_3.3333334922791);stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:0.4} + .st12 {fill:none;stroke:#bfbfbf;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75} + .st13 {fill:#000000;font-family:Arial;font-size:1.99999em;font-style:italic;font-weight:bold} + .st14 {marker-end:url(#mrkr2-45);stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.9} + .st15 {fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1;stroke-width:0.42986425339367} + .st16 {fill:#000000;stroke:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75} + .st17 {fill:#ffffff;font-family:Arial;font-size:1.33333em;font-weight:bold} + .st18 {fill:#ffffff;stroke:#595959;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5} + .st19 {fill:#7f7f7f;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5} + .st20 {fill:#ffffff;font-family:Calibri;font-size:1.08334em} + .st21 {fill:#000000;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75} + .st22 {fill:#000000;font-family:Calibri;font-size:0.833336em;font-weight:bold} + .st23 {marker-start:url(#mrkr10-112);stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.25} + .st24 {fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1;stroke-width:0.40983606557377} + .st25 {fill:#ffffff;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75} + .st26 {fill:#000000;fill-opacity:0.4;filter:url(#filter_3.3333334922791);stroke:#000000;stroke-dasharray:10.5,7.5;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:0.4} + .st27 {fill:#0070c0;fill-opacity:0.72;stroke:#003f6c;stroke-dasharray:10.5,7.5;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5} + .st28 {fill:#0070c0;stroke:#003f6c;stroke-dasharray:10.5,7.5;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5} + .st29 {fill:#000000;font-family:Calibri;font-size:1.00001em;font-style:italic;font-weight:bold} + .st30 {fill:#ffffff;stroke:#000000;stroke-dasharray:1.68,1.2;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24} + .st31 {fill:#000000;font-family:Calibri;font-size:0.833336em} + .st32 {fill:#ffffff;stroke:#000000;stroke-dasharray:3.5,2.5;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.5} + .st33 {stroke:#7f7f7f;stroke-linecap:round;stroke-linejoin:round;stroke-width:4.5} + .st34 {fill:#000000;fill-opacity:0.38;filter:url(#filter_3.3333334922791);stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:0.38} + .st35 {fill:#000000;fill-opacity:0.38;stroke:#000000;stroke-opacity:0.38;stroke-width:0.22935779816514} + .st36 {fill:#f2f2f2;stroke:#7f7f7f;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75} + .st37 {fill:#7f7f7f;fill-opacity:1;stroke:#7f7f7f;stroke-opacity:1;stroke-width:0.22935779816514} + .st38 {fill:#d8d8d8;stroke:#7f7f7f;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75} + .st39 {fill:#ffffff;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24} + .st40 {fill:#000000;fill-opacity:0.4;filter:url(#filter_3.3333334922791);stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:0.4} + .st41 {fill:#0070c0;stroke:#003f6c;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5} + .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} + .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} + .st44 {marker-end:url(#mrkr4-212);marker-start:url(#mrkr4-210);stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.25} + .st45 {fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1;stroke-width:0.47169811320755} + .st46 {fill:#ffffff;stroke:#7f7f7f;stroke-linecap:round;stroke-linejoin:round;stroke-width:1} + .st47 {fill:#000000;font-family:Calibri;font-size:1.16666em;font-style:italic;font-weight:bold} + .st48 {font-family:Arial;font-size:0.571431em;font-style:normal;font-weight:normal} + .st49 {font-family:Arial;font-size:0.571431em;font-style:normal} + .st50 {fill:#ea700d;font-family:Arial;font-size:0.571431em;font-style:normal} + .st51 {fill:#ffffff;stroke:#7f7f7f;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24} + .st52 {fill:#d8d8d8;font-family:Calibri;font-size:0.833336em;font-style:italic;font-weight:bold} + .st53 {font-size:1.20001em;font-style:normal;font-weight:normal} + .st54 {font-size:1em;font-style:normal;font-weight:normal} + .st55 {fill:#f59d56;font-size:1em;font-style:normal;font-weight:normal} + .st56 {marker-end:url(#mrkr2-350);stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:2} + .st57 {fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1;stroke-width:0.44247787610619} + .st58 {marker-end:url(#mrkr2-383);marker-start:url(#mrkr2-381);stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75} + .st59 {fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1;stroke-width:0.22935779816514} + .st60 {fill:#000000;font-family:Calibri;font-size:0.75em;font-style:italic;font-weight:bold} + .st61 {fill:#000000;font-family:Calibri;font-size:0.75em;font-weight:bold} + .st62 {fill:#0070c0;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5} + .st63 {fill:#595959;stroke:none;stroke-linecap:butt;stroke-width:0.75} + .st64 {marker-start:url(#mrkr4-405);stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.25} + .st65 {fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1;stroke-width:0.3315649867374} + .st66 {marker-end:url(#mrkr4-411);stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.25} + .st67 {marker-end:url(#mrkr10-430);marker-start:url(#mrkr10-112);stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.25} + .st68 {stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.25} + .st69 {fill:none;fill-rule:evenodd;font-size:12px;overflow:visible;stroke-linecap:square;stroke-miterlimit:3} + ]]> + </style> + + <defs id="Markers"> + <g id="lend2"> + <path d="M 1 1 L 0 0 L 1 -1 L 1 1 " style="stroke:none"/> + </g> + <marker id="mrkr2-45" class="st15" v:arrowType="2" v:arrowSize="2" v:setback="2.13684" refX="-2.1368421052632" + orient="auto" markerUnits="strokeWidth" overflow="visible"> + <use xlink:href="#lend2" transform="scale(-2.3263157894737,-2.3263157894737) "/> + </marker> + <g id="lend10"> + <path + d="M 0 0.75 C -0.414214 0.75 -0.75 0.414214 -0.75 0 -0.75 -0.414214 -0.414214 -0.75 0 -0.75 0.414214 -0.75 0.75 -0.414214 0.75 0 0.75 0.414214 0.414214 0.75 0 0.75 Z " + style="stroke:none"/> + </g> + <marker id="mrkr10-112" class="st24" v:arrowType="10" v:arrowSize="1" v:setback="1.542" refX="1.542" orient="auto" + markerUnits="strokeWidth" overflow="visible"> + <use xlink:href="#lend10" transform="scale(2.44) "/> + </marker> + <g id="lend42"> + <path + d="M 0 0.75 C -0.414214 0.75 -0.75 0.414214 -0.75 0 -0.75 -0.414214 -0.414214 -0.75 0 -0.75 0.414214 -0.75 0.75 -0.414214 0.75 0 0.75 0.414214 0.414214 0.75 0 0.75 Z " + style="stroke:none"/> + </g> + <marker id="mrkr42-163" class="st35" v:arrowType="42" v:arrowSize="2" v:setback="3.27" refX="3.27" orient="auto" + markerUnits="strokeWidth" overflow="visible"> + <use xlink:href="#lend42" transform="scale(4.36) "/> + </marker> + <marker id="mrkr42-167" class="st37" v:arrowType="42" v:arrowSize="2" v:setback="3.27" refX="3.27" orient="auto" + markerUnits="strokeWidth" overflow="visible"> + <use xlink:href="#lend42" transform="scale(4.36) "/> + </marker> + <g id="lend4"> + <path d="M 2 1 L 0 0 L 2 -1 L 2 1 " style="stroke:none"/> + </g> + <marker id="mrkr4-210" class="st45" v:arrowType="4" v:arrowSize="2" v:setback="4.08" refX="4.08" orient="auto" + markerUnits="strokeWidth" overflow="visible"> + <use xlink:href="#lend4" transform="scale(2.12) "/> + </marker> + <marker id="mrkr4-212" class="st45" v:arrowType="4" v:arrowSize="2" v:setback="4.08" refX="-4.08" orient="auto" + markerUnits="strokeWidth" overflow="visible"> + <use xlink:href="#lend4" transform="scale(-2.12,-2.12) "/> + </marker> + <marker id="mrkr2-350" class="st57" v:arrowType="2" v:arrowSize="2" v:setback="2.08" refX="-2.08" orient="auto" + markerUnits="strokeWidth" overflow="visible"> + <use xlink:href="#lend2" transform="scale(-2.26,-2.26) "/> + </marker> + <marker id="mrkr2-381" class="st59" v:arrowType="2" v:arrowSize="2" v:setback="3.88" refX="3.88" orient="auto" + markerUnits="strokeWidth" overflow="visible"> + <use xlink:href="#lend2" transform="scale(4.36) "/> + </marker> + <marker id="mrkr2-383" class="st59" v:arrowType="2" v:arrowSize="2" v:setback="3.88" refX="-3.88" orient="auto" + markerUnits="strokeWidth" overflow="visible"> + <use xlink:href="#lend2" transform="scale(-4.36,-4.36) "/> + </marker> + <marker id="mrkr4-405" class="st65" v:arrowType="4" v:arrowSize="2" v:setback="5.744" refX="5.744" orient="auto" + markerUnits="strokeWidth" overflow="visible"> + <use xlink:href="#lend4" transform="scale(3.016) "/> + </marker> + <marker id="mrkr4-411" class="st65" v:arrowType="4" v:arrowSize="2" v:setback="6.032" refX="-6.032" orient="auto" + markerUnits="strokeWidth" overflow="visible"> + <use xlink:href="#lend4" transform="scale(-3.016,-3.016) "/> + </marker> + <marker id="mrkr10-430" class="st24" v:arrowType="10" v:arrowSize="1" v:setback="1.542" refX="-1.542" orient="auto" + markerUnits="strokeWidth" overflow="visible"> + <use xlink:href="#lend10" transform="scale(-2.44,-2.44) "/> + </marker> + </defs> + <defs id="Filters"> + <filter id="filter_3.3333334922791"> + <feGaussianBlur stdDeviation="3.3333334922791"/> + </filter> + </defs> + <g v:mID="8" v:index="1" v:groupContext="backgroundPage"> + <v:userDefs> + <v:ud v:nameU="msvVisioCreated" v:prompt="" v:val="VT0(0):26"/> + </v:userDefs> + <title>VBackground-1</title> + <v:pageProperties width="12.1281" height="9.93872" v:drawingScale="1" v:pageScale="1" v:drawingUnits="19" + v:shadowOffsetX="9" v:shadowOffsetY="-9"/> + <g id="shape1-1" v:mID="1" v:groupContext="shape"> + <title>Solid</title> + <v:userDefs> + <v:ud v:nameU="Background" v:val="VT0(0):26"/> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + <v:ud v:nameU="msvShapeCategories" v:prompt="" v:val="VT4(DoNotContain)"/> + <v:ud v:nameU="msvVisioCreated" v:prompt="" v:val="VT0(0):26"/> + </v:userDefs> + <rect x="0" y="0" width="873.222" height="715.588" class="st1"/> + </g> + </g> + <g v:mID="4" v:index="3" v:groupContext="foregroundPage"> + <title>Page-2</title> + <v:pageProperties v:drawingScale="1" v:pageScale="1" v:drawingUnits="19" v:shadowOffsetX="9" v:shadowOffsetY="-9"/> + <v:layer v:name="Connector" v:index="0"/> + <g id="shape52-3" v:mID="52" v:groupContext="shape" transform="translate(336.222,-197.713)"> + <title>Rectangle.52</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <rect x="0" y="598.588" width="495" height="117" class="st2"/> + </g> + <g id="group5-5" transform="translate(772.722,-60.4625)" v:mID="5" v:groupContext="group"> + <v:userDefs> + <v:ud v:nameU="visVersion" v:prompt="" v:val="VT0(15):26"/> + </v:userDefs> + <title>Can</title> + <desc>Redfish Service</desc> + <g id="shape6-6" v:mID="6" v:groupContext="shape"> + <title>Sheet.6</title> + <v:userDefs> + <v:ud v:nameU="ControlHalfHeight" v:prompt="" v:val="VT0(0.125):1"/> + <v:ud v:nameU="FillForegnd" v:prompt="" v:val="VT0(1):26"/> + <v:ud v:nameU="ControlHalfHeight" v:prompt="" v:val="VT0(0.15625):1"/> + <v:ud v:nameU="FillForegnd" v:prompt="" v:val="VT5(#ff1a1a)"/> + </v:userDefs> + <path d="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="st3"/> + </g> + <g id="shape5-8" v:mID="5" v:groupContext="groupContent"> + <v:textBlock v:margins="rect(4,4,4,4)" v:verticalAlign="2"/> + <v:textRect cx="26.4375" cy="684.088" width="52.88" height="63"/> + <ellipse cx="26.4375" cy="663.838" rx="26.4375" ry="11.25" class="st3"/> + <text x="7.83" y="693.59" class="st4" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>Redfish <tspan + x="8.6" dy="1.2em" class="st5">Service</tspan></text> </g> + </g> + <g id="shape8-12" v:mID="8" v:groupContext="shape" transform="translate(746.847,-24.4625)"> + <title>Sheet.8</title> + <desc>Redfish Profile Simulator On Network</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="54" cy="702.088" width="108" height="27"/> + <rect x="0" y="688.588" width="108" height="27" class="st6"/> + <text x="17.62" y="693.09" class="st7" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>Redfish Profile <tspan + x="21.08" dy="1em" class="st5">Simulator On </tspan><tspan x="32.24" dy="1em" class="st5">Network</tspan></text> </g> + <g id="shape10-17" v:mID="10" v:groupContext="shape" transform="translate(408.222,-82.9625)"> + <title>Sheet.10</title> + <desc>EFI REST EX</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="130.5" cy="697.588" width="261" height="36"/> + <rect x="0" y="679.588" width="261" height="36" class="st8"/> + <text x="99.8" y="700.84" class="st9" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>EFI REST EX </text> </g> + <g id="shape12-20" v:mID="12" v:groupContext="shape" transform="translate(57.2224,-197.713)"> + <title>Rectangle</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <rect x="0" y="598.588" width="234" height="117" class="st2"/> + </g> + <g id="shape13-22" v:mID="13" v:groupContext="shape" transform="translate(30.2224,-24.4625)"> + <title>Rounded Rectangle.76</title> + <v:userDefs> + <v:ud v:nameU="CTypeTopLeftSnip" v:prompt="" v:val="VT0(0):5"/> + <v:ud v:nameU="CTypeTopRightSnip" v:prompt="" v:val="VT0(0):5"/> + <v:ud v:nameU="CTypeBotLeftSnip" v:prompt="" v:val="VT0(0):5"/> + <v:ud v:nameU="CTypeBotRightSnip" v:prompt="" v:val="VT0(0):5"/> + <v:ud v:nameU="CornerLockHoriz" v:prompt="" v:val="VT0(1):5"/> + <v:ud v:nameU="CornerLockVert" v:prompt="" v:val="VT0(1):5"/> + <v:ud v:nameU="CornerLockDiag" v:prompt="" v:val="VT0(0):5"/> + <v:ud v:nameU="TopLeftOffset" v:prompt="" v:val="VT0(0.15):1"/> + <v:ud v:nameU="TopRightOffset" v:prompt="" v:val="VT0(0.15):1"/> + <v:ud v:nameU="BotLeftOffset" v:prompt="" v:val="VT0(0.15):1"/> + <v:ud v:nameU="BotRightOffset" v:prompt="" v:val="VT0(0.15):1"/> + <v:ud v:nameU="visVersion" v:prompt="" v:val="VT0(15):26"/> + <v:ud v:nameU="TopLeftOffset" v:prompt="" v:val="VT0(0.125):1"/> + <v:ud v:nameU="TopRightOffset" v:prompt="" v:val="VT0(0.125):1"/> + <v:ud v:nameU="BotLeftOffset" v:prompt="" v:val="VT0(0.125):1"/> + <v:ud v:nameU="BotRightOffset" v:prompt="" v:val="VT0(0.125):1"/> + </v:userDefs> + <g id="shadow13-23" v:groupContext="shadow" v:shadowOffsetX="7.2E-008" v:shadowOffsetY="0" v:shadowType="1" + v:shadowScale="1.02" transform="matrix(1.02,0,0,1.02,-6.84,-13.2318)" class="st10"> + <path d="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 675 607.59 + L9 607.59 A8.99985 8.99985 -180 0 0 0 616.59 L0 706.59 A8.99985 8.99985 -180 0 0 9 715.59 Z" + class="st11"/> + </g> + <path d="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 675 607.59 + L9 607.59 A8.99985 8.99985 -180 0 0 0 616.59 L0 706.59 A8.99985 8.99985 -180 0 0 9 715.59 Z" class="st12"/> + </g> + <g id="shape16-27" v:mID="16" v:groupContext="shape" transform="translate(75.2224,-82.9625)"> + <title>Sheet.16</title> + <desc>EFI REST JSON to C Structure</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="130.5" cy="697.588" width="261" height="36"/> + <rect x="0" y="679.588" width="261" height="36" class="st8"/> + <text x="53.89" y="700.84" class="st9" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>EFI REST JSON to C Structure</text> </g> + <g id="shape17-30" v:mID="17" v:groupContext="shape" transform="translate(408.222,-37.9625)"> + <title>Sheet.17</title> + <desc>EFI Network Stack</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="130.5" cy="697.588" width="261" height="36"/> + <rect x="0" y="679.588" width="261" height="36" class="st8"/> + <text x="81.72" y="700.84" class="st9" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>EFI Network Stack</text> </g> + <g id="shape18-33" v:mID="18" v:groupContext="shape" transform="translate(75.2224,-37.9625)"> + <title>Sheet.18</title> + <desc>EFI Redfish Discover Protocl</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="130.5" cy="697.588" width="261" height="36"/> + <rect x="0" y="679.588" width="261" height="36" class="st8"/> + <text x="55.56" y="700.84" class="st9" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>EFI Redfish Discover Protocl</text> </g> + <g id="shape19-36" v:mID="19" v:groupContext="shape" transform="translate(291.222,-51.4625)"> + <title>Sheet.19</title> + <desc>EDKII Redfish Foundation</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="92" cy="693.088" width="184.01" height="45"/> + <rect x="0" y="670.588" width="184" height="45" class="st6"/> + <text x="12.66" y="685.89" class="st13" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>EDKII Redfish <tspan + x="26.69" dy="1.2em" class="st5">Foundation</tspan></text> </g> + <g id="shape20-40" v:mID="20" v:groupContext="shape" v:layerMember="0" + transform="translate(904.308,1335.5) rotate(-19.179) scale(1,-1)"> + <title>Curve connect 1</title> + <v:userDefs> + <v:ud v:nameU="Scale" v:val="VT0(1):26"/> + <v:ud v:nameU="AntiScale" v:val="VT0(1):26"/> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="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" + class="st14"/> + </g> + <g id="shape21-46" v:mID="21" v:groupContext="shape" transform="translate(18.9724,-139.213)"> + <title>Sheet.21</title> + <desc>EDKII Redfish Client</desc> + <v:textBlock v:margins="rect(4,4,4,4)" v:verticalText="true"/> + <v:textRect cx="12.375" cy="463.588" width="24.75" height="504" transform="rotate(-180)"/> + <rect x="0" y="211.588" width="24.75" height="504" class="st16"/> + <text x="-10.85" y="-540.93" writing-mode="tb-rl" transform="rotate(180)" class="st17" v:langID="1033"><v:paragraph + v:horizAlign="1"/><v:tabList/>EDKII Redfish Client</text> </g> + <g id="shape24-49" v:mID="24" v:groupContext="shape" transform="translate(111.222,-253.963)"> + <title>Sheet.24</title> + <rect x="0" y="670.588" width="153" height="45" class="st18"/> + </g> + <g id="shape25-51" v:mID="25" v:groupContext="shape" transform="translate(84.2224,-240.463)"> + <title>Sheet.25</title> + <rect x="0" y="670.588" width="153" height="45" class="st18"/> + </g> + <g id="shape26-53" v:mID="26" v:groupContext="shape" transform="translate(75.2224,-226.963)"> + <title>Sheet.26</title> + <desc>Script-generated Redfish JSON schema to C Structure convertor</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="76.5" cy="693.088" width="153" height="45"/> + <rect x="0" y="670.588" width="153" height="45" class="st19"/> + <text x="11.2" y="683.34" class="st20" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>Script-generated Redfish <tspan + x="29.22" dy="1em" class="st5">JSON schema to C </tspan><tspan x="24.45" dy="1em" class="st5">Structure convertor</tspan></text> </g> + <g id="shape28-58" v:mID="28" v:groupContext="shape" transform="translate(241.722,-267.463)"> + <title>Sheet.28</title> + <ellipse cx="1.6875" cy="713.9" rx="1.6875" ry="1.6875" class="st21"/> + </g> + <g id="shape29-60" v:mID="29" v:groupContext="shape" transform="translate(245.66,-272.525)"> + <title>Sheet.29</title> + <ellipse cx="1.6875" cy="713.9" rx="1.6875" ry="1.6875" class="st21"/> + </g> + <g id="shape30-62" v:mID="30" v:groupContext="shape" transform="translate(250.16,-277.588)"> + <title>Sheet.30</title> + <ellipse cx="1.6875" cy="713.9" rx="1.6875" ry="1.6875" class="st21"/> + </g> + <g id="shape31-64" v:mID="31" v:groupContext="shape" transform="translate(178.722,-204.463)"> + <title>Sheet.31</title> + <desc>ComputerSystem</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="54" cy="702.088" width="108" height="27"/> + <rect x="0" y="688.588" width="108" height="27" class="st6"/> + <text x="18.16" y="704.59" class="st22" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>ComputerSystem</text> </g> + <g id="shape32-67" v:mID="32" v:groupContext="shape" transform="translate(201.222,-220.213)"> + <title>Sheet.32</title> + <desc>BootOption</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="54" cy="702.088" width="108" height="27"/> + <rect x="0" y="688.588" width="108" height="27" class="st6"/> + <text x="29.69" y="704.59" class="st22" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>BootOption</text> </g> + <g id="shape33-70" v:mID="33" v:groupContext="shape" transform="translate(210.222,-233.713)"> + <title>Sheet.33</title> + <desc>Memory</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="54" cy="702.088" width="108" height="27"/> + <rect x="0" y="688.588" width="108" height="27" class="st6"/> + <text x="36.21" y="704.59" class="st22" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>Memory</text> </g> + <g id="shape34-73" v:mID="34" v:groupContext="shape" transform="translate(385.722,-247.213)"> + <title>Sheet.34</title> + <rect x="0" y="670.588" width="153" height="45" class="st18"/> + </g> + <g id="shape35-75" v:mID="35" v:groupContext="shape" transform="translate(358.722,-233.713)"> + <title>Sheet.35</title> + <rect x="0" y="670.588" width="153" height="45" class="st18"/> + </g> + <g id="shape36-77" v:mID="36" v:groupContext="shape" transform="translate(349.722,-220.213)"> + <title>Sheet.36</title> + <desc>Script-generated EDK2 Redfish Feature Driver</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="76.5" cy="693.088" width="153" height="45"/> + <rect x="0" y="670.588" width="153" height="45" class="st19"/> + <text x="16.96" y="689.84" class="st20" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>Script-generated EDK2 <tspan + x="17.33" dy="1em" class="st5">Redfish Feature Driver</tspan></text> </g> + <g id="shape40-81" v:mID="40" v:groupContext="shape" transform="translate(453.222,-197.713)"> + <title>Sheet.40</title> + <desc>ComputerSystem</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="54" cy="702.088" width="108" height="27"/> + <rect x="0" y="688.588" width="108" height="27" class="st6"/> + <text x="18.16" y="704.59" class="st22" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>ComputerSystem</text> </g> + <g id="shape41-84" v:mID="41" v:groupContext="shape" transform="translate(475.722,-213.463)"> + <title>Sheet.41</title> + <desc>BootOption</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="54" cy="702.088" width="108" height="27"/> + <rect x="0" y="688.588" width="108" height="27" class="st6"/> + <text x="29.69" y="704.59" class="st22" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>BootOption</text> </g> + <g id="shape42-87" v:mID="42" v:groupContext="shape" transform="translate(493.722,-226.963)"> + <title>Sheet.42</title> + <desc>Memory</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="54" cy="702.088" width="108" height="27"/> + <rect x="0" y="688.588" width="108" height="27" class="st6"/> + <text x="36.21" y="704.59" class="st22" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>Memory</text> </g> + <g id="shape43-90" v:mID="43" v:groupContext="shape" transform="translate(608.472,-249.463)"> + <title>Sheet.43</title> + <rect x="0" y="670.588" width="153" height="45" class="st18"/> + </g> + <g id="shape46-92" v:mID="46" v:groupContext="shape" transform="translate(738.972,-262.963)"> + <title>Sheet.46</title> + <ellipse cx="1.6875" cy="713.9" rx="1.6875" ry="1.6875" class="st21"/> + </g> + <g id="shape47-94" v:mID="47" v:groupContext="shape" transform="translate(742.91,-268.025)"> + <title>Sheet.47</title> + <ellipse cx="1.6875" cy="713.9" rx="1.6875" ry="1.6875" class="st21"/> + </g> + <g id="shape48-96" v:mID="48" v:groupContext="shape" transform="translate(747.41,-273.088)"> + <title>Sheet.48</title> + <ellipse cx="1.6875" cy="713.9" rx="1.6875" ry="1.6875" class="st21"/> + </g> + <g id="shape49-98" v:mID="49" v:groupContext="shape" transform="translate(660.222,-199.963)"> + <title>Sheet.49</title> + <desc>ComputerSystemCollection</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="61.875" cy="702.088" width="123.75" height="27"/> + <rect x="0" y="688.588" width="123.75" height="27" class="st6"/> + <text x="5.3" y="704.59" class="st22" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>ComputerSystemCollection</text> </g> + <g id="shape50-101" v:mID="50" v:groupContext="shape" transform="translate(720.972,-215.713)"> + <title>Sheet.50</title> + <desc>BootOptionCollection</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="54" cy="702.088" width="108" height="27"/> + <rect x="0" y="688.588" width="108" height="27" class="st6"/> + <text x="8.96" y="704.59" class="st22" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>BootOptionCollection</text> </g> + <g id="shape51-104" v:mID="51" v:groupContext="shape" transform="translate(732.222,-229.213)"> + <title>Sheet.51</title> + <desc>MemoryCollection</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="54" cy="702.088" width="108" height="27"/> + <rect x="0" y="688.588" width="108" height="27" class="st6"/> + <text x="15.48" y="704.59" class="st22" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>MemoryCollection</text> </g> + <g id="shape56-107" v:mID="56" v:groupContext="shape" v:layerMember="0" + transform="translate(515.651,-269.34) rotate(-1.84761)"> + <title>Curve connect 2.56</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="M1.08 713.99 L1.29 713.7 A41.432 41.432 0 0 1 69.79 715.59" class="st23"/> + </g> + <g id="shape57-113" v:mID="57" v:groupContext="shape" transform="translate(581.472,-235.963)"> + <title>Sheet.57</title> + <rect x="0" y="670.588" width="153" height="45" class="st18"/> + </g> + <g id="shape59-115" v:mID="59" v:groupContext="shape" v:layerMember="0" transform="translate(291.222,-242.713)"> + <title>1-D double</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="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 + L31.5 693.99 L13.5 693.99 Z" class="st25"/> + </g> + <g id="shape64-117" v:mID="64" v:groupContext="shape" transform="translate(619.722,-467.713)"> + <title>Sheet.64</title> + <desc>EDKII REDFISH_PLATFORM_CONFIG_PROTOCOL</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="99" cy="693.088" width="198" height="45"/> + <g id="shadow64-118" v:groupContext="shadow" v:shadowOffsetX="7.2E-008" v:shadowOffsetY="0" v:shadowType="1" + v:shadowScale="1.02" transform="matrix(1.02,0,0,1.02,-1.98,-13.8618)" class="st10"> + <path d="M0 715.59 L198 715.59 L198 670.59 L0 670.59 L0 715.59 Z" class="st26"/> + </g> + <path d="M0 715.59 L198 715.59 L198 670.59 L0 670.59 L0 715.59 Z" class="st27"/> + <text x="85.18" y="683.34" class="st20" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>EDKII <tspan + x="5.65" dy="1em" class="st5">REDFISH</tspan>_PLATFORM_CONFIG_PRO<tspan x="81.03" dy="1em" class="st5">TOCOL</tspan></text> </g> + <g id="shape65-125" v:mID="65" v:groupContext="shape" transform="translate(511.722,-445.213)"> + <title>Sheet.65</title> + <desc>EDKII REDFISH_PLATFORM_CONFIG_PROTOCOL</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="99" cy="693.088" width="198" height="45"/> + <g id="shadow65-126" v:groupContext="shadow" v:shadowOffsetX="7.2E-008" v:shadowOffsetY="0" v:shadowType="1" + v:shadowScale="1.02" transform="matrix(1.02,0,0,1.02,-1.98,-13.8618)" class="st10"> + <path d="M0 715.59 L198 715.59 L198 670.59 L0 670.59 L0 715.59 Z" class="st26"/> + </g> + <path d="M0 715.59 L198 715.59 L198 670.59 L0 670.59 L0 715.59 Z" class="st28"/> + <text x="85.18" y="683.34" class="st20" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>EDKII <tspan + x="5.65" dy="1em" class="st5">REDFISH</tspan>_PLATFORM_CONFIG_PRO<tspan x="81.03" dy="1em" class="st5">TOCOL</tspan></text> </g> + <g id="shape67-133" v:mID="67" v:groupContext="shape" transform="translate(536.472,-593.713)"> + <title>Sheet.67</title> + <desc>Other Platform-specific Implementations</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="121.5" cy="702.088" width="243" height="27"/> + <rect x="0" y="688.588" width="243" height="27" class="st6"/> + <text x="20.02" y="705.09" class="st29" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>Other Platform-specific Implementations</text> </g> + <g id="group71-136" transform="translate(567.972,-530.713)" v:mID="71" v:groupContext="group"> + <v:userDefs> + <v:ud v:nameU="visVersion" v:prompt="" v:val="VT0(15):26"/> + </v:userDefs> + <title>Can.71</title> + <desc>EFI Variable/ FW Storage</desc> + <g id="shape72-137" v:mID="72" v:groupContext="shape"> + <title>Sheet.72</title> + <v:userDefs> + <v:ud v:nameU="ControlHalfHeight" v:prompt="" v:val="VT0(0.125):1"/> + <v:ud v:nameU="FillForegnd" v:prompt="" v:val="VT0(1):26"/> + <v:ud v:nameU="ControlHalfHeight" v:prompt="" v:val="VT0(0.0875):1"/> + </v:userDefs> + <path d="M0 709.29 A29.25 6.3 -180 1 0 58.5 709.29 L58.5 658.89 L0 658.89 L0 709.29 Z" class="st30"/> + </g> + <g id="shape71-139" v:mID="71" v:groupContext="groupContent"> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="29.25" cy="684.088" width="58.5" height="63"/> + <ellipse cx="29.25" cy="658.888" rx="29.25" ry="6.3" class="st30"/> + <text x="23.25" y="675.09" class="st31" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>EFI <tspan + x="10.54" dy="1.2em" class="st5">Variable</tspan>/ <tspan x="5.79" dy="1.2em" class="st5">FW Storage</tspan></text> </g> + </g> + <g id="group73-144" transform="translate(687.222,-530.713)" v:mID="73" v:groupContext="group"> + <v:userDefs> + <v:ud v:nameU="visVersion" v:prompt="" v:val="VT0(15):26"/> + </v:userDefs> + <title>Can.73</title> + <desc>Other Storage</desc> + <g id="shape74-145" v:mID="74" v:groupContext="shape"> + <title>Sheet.74</title> + <v:userDefs> + <v:ud v:nameU="ControlHalfHeight" v:prompt="" v:val="VT0(0.125):1"/> + <v:ud v:nameU="FillForegnd" v:prompt="" v:val="VT0(1):26"/> + <v:ud v:nameU="ControlHalfHeight" v:prompt="" v:val="VT0(0.0875):1"/> + </v:userDefs> + <path d="M0 709.29 A29.25 6.3 -180 1 0 58.5 709.29 L58.5 658.89 L0 658.89 L0 709.29 Z" class="st30"/> + </g> + <g id="shape73-147" v:mID="73" v:groupContext="groupContent"> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="29.25" cy="684.088" width="58.5" height="63"/> + <ellipse cx="29.25" cy="658.888" rx="29.25" ry="6.3" class="st30"/> + <text x="17.41" y="681.09" class="st31" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>Other <tspan + x="13.66" dy="1.2em" class="st5">Storage</tspan></text> </g> + </g> + <g id="shape76-151" v:mID="76" v:groupContext="shape" v:layerMember="0" transform="translate(1306.06,184.875) rotate(90)"> + <title>1-D double.76</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="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 + 702.09 L33.75 704.79 L6.75 704.79 Z" class="st32"/> + </g> + <g id="shape77-153" v:mID="77" v:groupContext="shape" v:layerMember="0" transform="translate(1425.31,184.875) rotate(90)"> + <title>1-D double.77</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="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 + 702.09 L11.25 704.79 L6.75 704.79 Z" class="st32"/> + </g> + <g id="shape78-155" v:mID="78" v:groupContext="shape" transform="translate(21.2224,-139.213)"> + <title>Sheet.78</title> + <path d="M0 715.59 L810 715.59" class="st33"/> + </g> + <g id="group80-158" transform="translate(-173.49,382.875) rotate(-90)" v:mID="80" v:groupContext="group"> + <v:userDefs> + <v:ud v:nameU="ControlDistFromCorner" v:prompt="" v:val="VT0(0.35355339059327):1"/> + <v:ud v:nameU="AngToControl" v:prompt="" v:val="VT0(0.78539816339745):32"/> + <v:ud v:nameU="XFoldLength" v:prompt="" v:val="VT0(0.25):1"/> + <v:ud v:nameU="YFoldLength" v:prompt="" v:val="VT0(0.25):1"/> + <v:ud v:nameU="visVersion" v:prompt="" v:val="VT0(15):26"/> + <v:ud v:nameU="ControlDistFromCorner" v:prompt="" v:val="VT0(0.57622152858081):1"/> + <v:ud v:nameU="AngToControl" v:prompt="" v:val="VT0(0.70862627212768):32"/> + <v:ud v:nameU="XFoldLength" v:prompt="" v:val="VT0(0.44270833333333):1"/> + <v:ud v:nameU="YFoldLength" v:prompt="" v:val="VT0(0.3794642857143):1"/> + </v:userDefs> + <title>Folded Corner</title> + <g id="shape80-159" v:mID="80" v:groupContext="groupContent"> + <g id="shadow80-160" v:groupContext="shadow" v:shadowOffsetX="7.2E-008" v:shadowOffsetY="0" v:shadowType="1" + v:shadowScale="1.02" transform="matrix(1.02,0,0,1.02,-3.105,-9.45175)" class="st10"> + <path d="M0 715.59 L278.62 715.59 L310.5 688.27 L310.5 229.59 L0 229.59 L0 715.59 Z" class="st34"/> + </g> + <path d="M0 715.59 L278.62 715.59 L310.5 688.27 L310.5 229.59 L0 229.59 L0 715.59 Z" class="st36"/> + </g> + <g id="shape81-168" v:mID="81" v:groupContext="shape" transform="translate(278.625,0)"> + <title>Sheet.81</title> + <v:userDefs> + <v:ud v:nameU="ControlX" v:prompt="" v:val="VT0(1):1"/> + <v:ud v:nameU="ControlY" v:prompt="" v:val="VT0(0.25):1"/> + <v:ud v:nameU="XFoldLength" v:prompt="" v:val="VT0(0.25):1"/> + <v:ud v:nameU="YFoldLength" v:prompt="" v:val="VT0(0.25):1"/> + <v:ud v:nameU="FillForegnd" v:prompt="" v:val="VT0(1):26"/> + <v:ud v:nameU="ControlX" v:prompt="" v:val="VT0(3.9375):1"/> + <v:ud v:nameU="ControlY" v:prompt="" v:val="VT0(0.4375):1"/> + <v:ud v:nameU="XFoldLength" v:prompt="" v:val="VT0(0.44270833333333):1"/> + <v:ud v:nameU="YFoldLength" v:prompt="" v:val="VT0(0.3794642857143):1"/> + <v:ud v:nameU="FillForegnd" v:prompt="" v:val="VT5(#f2f2f2)"/> + </v:userDefs> + <g id="shadow81-169" v:groupContext="shadow" v:shadowOffsetX="7.2E-008" v:shadowOffsetY="0" v:shadowType="1" + v:shadowScale="1.02" transform="matrix(1.02,0,0,1.02,-0.6375,-14.3117)" class="st10"> + <path d="M0 715.59 L31.88 688.27 L4.87 684.09 L0 715.59 Z" class="st34"/> + </g> + <path d="M0 715.59 L31.88 688.27 L4.87 684.09 L0 715.59 Z" class="st38"/> + </g> + </g> + <g id="group82-175" transform="translate(432.972,-530.713)" v:mID="82" v:groupContext="group"> + <v:userDefs> + <v:ud v:nameU="visVersion" v:prompt="" v:val="VT0(15):26"/> + </v:userDefs> + <title>Can.69</title> + <desc>EDK2 HII Database</desc> + <g id="shape83-176" v:mID="83" v:groupContext="shape"> + <title>Sheet.83</title> + <v:userDefs> + <v:ud v:nameU="ControlHalfHeight" v:prompt="" v:val="VT0(0.125):1"/> + <v:ud v:nameU="FillForegnd" v:prompt="" v:val="VT0(1):26"/> + <v:ud v:nameU="ControlHalfHeight" v:prompt="" v:val="VT0(0.0875):1"/> + </v:userDefs> + <path d="M0 709.29 A29.25 6.3 -180 1 0 58.5 709.29 L58.5 658.89 L0 658.89 L0 709.29 Z" class="st39"/> + </g> + <g id="shape82-178" v:mID="82" v:groupContext="groupContent"> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="29.25" cy="684.088" width="58.5" height="63"/> + <ellipse cx="29.25" cy="658.888" rx="29.25" ry="6.3" class="st39"/> + <text x="11.84" y="681.09" class="st31" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>EDK2 HII <tspan + x="10.24" dy="1.2em" class="st5">Database</tspan></text> </g> + </g> + <g id="shape84-182" v:mID="84" v:groupContext="shape" transform="translate(390.222,-429.463)"> + <title>Sheet.84</title> + <desc>EDKII REDFISH_PLATFORM_CONFIG_PROTOCOL</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="72" cy="693.088" width="144" height="45"/> + <g id="shadow84-183" v:groupContext="shadow" v:shadowOffsetX="7.2E-008" v:shadowOffsetY="0" v:shadowType="1" + v:shadowScale="1.02" transform="matrix(1.02,0,0,1.02,-1.44,-13.8618)" class="st10"> + <rect x="0" y="670.588" width="144" height="45" class="st40"/> + </g> + <rect x="0" y="670.588" width="144" height="45" class="st41"/> + <text x="58.18" y="683.34" class="st20" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>EDKII <tspan + x="6" dy="1em" class="st5">REDFISH</tspan>_PLATFORM_CO<tspan x="26.68" dy="1em" class="st5">NFIG</tspan>_PROTOCOL</text> </g> + <g id="shape85-190" v:mID="85" v:groupContext="shape" v:layerMember="0" transform="translate(1171.06,184.875) rotate(90)"> + <title>1-D double.75</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="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 + 702.09 L49.5 704.79 L6.75 704.79 Z" class="st39"/> + </g> + <g id="shape86-192" v:mID="86" v:groupContext="shape" v:layerMember="0" transform="translate(1164.31,286.125) rotate(90)"> + <title>1-D double.68</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <g id="shadow86-193" v:groupContext="shadow" v:shadowOffsetX="7.2E-008" v:shadowOffsetY="0" v:shadowType="1" + v:shadowScale="1.02" transform="matrix(1.02,0,0,1.02,-1.1475,-14.0418)" class="st10"> + <path d="M13.5 693.99 L13.5 688.59 L0 702.09 L13.5 715.59 L13.5 710.19 L101.25 710.19 L101.25 715.59 L114.75 702.09 + L101.25 688.59 L101.25 693.99 L13.5 693.99 Z" class="st40"/> + </g> + <path d="M13.5 693.99 L13.5 688.59 L0 702.09 L13.5 715.59 L13.5 710.19 L101.25 710.19 L101.25 715.59 L114.75 702.09 L101.25 + 688.59 L101.25 693.99 L13.5 693.99 Z" class="st39"/> + </g> + <g id="shape87-197" v:mID="87" v:groupContext="shape" transform="translate(27.9724,-616.213)"> + <title>Sheet.87</title> + <desc>EDK2 Open Source Implementation</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="121.5" cy="702.088" width="243" height="27"/> + <rect x="0" y="688.588" width="243" height="27" class="st6"/> + <text x="34.39" y="705.09" class="st29" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>EDK2 Open Source Implementation</text> </g> + <g id="shape88-200" v:mID="88" v:groupContext="shape" v:layerMember="0" transform="translate(1312.81,270.375) rotate(90)"> + <title>1-D double.88</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="M13.5 693.99 L13.5 688.59 L0 702.09 L13.5 715.59 L13.5 710.19 L117 710.19 L117 715.59 L130.5 702.09 L117 688.59 + L117 693.99 L13.5 693.99 Z" class="st42"/> + </g> + <g id="shape89-202" v:mID="89" v:groupContext="shape" v:layerMember="0" transform="translate(1434.31,247.875) rotate(90)"> + <title>1-D double.89</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="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 + 688.59 L139.5 693.99 L13.5 693.99 Z" class="st43"/> + </g> + <g id="shape90-204" v:mID="90" v:groupContext="shape" v:layerMember="0" + transform="translate(838.629,252.112) rotate(68.1986)"> + <title>Curve connect 1.61</title> + <v:userDefs> + <v:ud v:nameU="Scale" v:val="VT0(1):26"/> + <v:ud v:nameU="AntiScale" v:val="VT0(1):26"/> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="M7.53 720.84 L7.83 721.04 A30.61 30.61 -180 0 0 42.41 715.59 A30.61 30.61 0 0 1 76.99 710.13 L77.29 710.34" + class="st44"/> + </g> + <g id="shape91-213" v:mID="91" v:groupContext="shape" v:layerMember="0" + transform="translate(-37.5816,162.844) rotate(-60.2551) scale(-1,1)"> + <title>Curve connect 1.62</title> + <v:userDefs> + <v:ud v:nameU="Scale" v:val="VT0(1):26"/> + <v:ud v:nameU="AntiScale" v:val="VT0(1):26"/> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="M7.67 720.62 L7.98 720.82 A34.3918 34.3918 -180 0 0 45.35 715.59 A34.3918 34.3918 0 0 1 82.72 710.35 L83.03 + 710.55" class="st44"/> + </g> + <g id="shape94-220" v:mID="94" v:groupContext="shape" v:layerMember="0" + transform="translate(488.651,-255.84) rotate(-1.84761)"> + <title>Curve connect 2.54</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="M1.08 713.99 L1.29 713.7 A41.432 41.432 0 0 1 69.79 715.59" class="st23"/> + </g> + <g id="shape96-225" v:mID="96" v:groupContext="shape" transform="translate(572.472,-222.463)"> + <title>Sheet.96</title> + <desc>Script-generated EDK2 Redfish Collection Driver</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="76.5" cy="693.088" width="153" height="45"/> + <rect x="0" y="670.588" width="153" height="45" class="st19"/> + <text x="16.96" y="689.84" class="st20" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>Script-generated EDK2 <tspan + x="11.39" dy="1em" class="st5">Redfish Collection Driver</tspan></text> </g> + <g id="shape98-229" v:mID="98" v:groupContext="shape" transform="translate(67.3474,-420.463)"> + <title>Rounded Rectangle.98</title> + <desc>EDK2 HII UNI file #string STR_OPTION_A #language x-uefi-redfi...</desc> + <v:userDefs> + <v:ud v:nameU="CTypeTopLeftSnip" v:prompt="" v:val="VT0(0):5"/> + <v:ud v:nameU="CTypeTopRightSnip" v:prompt="" v:val="VT0(0):5"/> + <v:ud v:nameU="CTypeBotLeftSnip" v:prompt="" v:val="VT0(0):5"/> + <v:ud v:nameU="CTypeBotRightSnip" v:prompt="" v:val="VT0(0):5"/> + <v:ud v:nameU="CornerLockHoriz" v:prompt="" v:val="VT0(1):5"/> + <v:ud v:nameU="CornerLockVert" v:prompt="" v:val="VT0(1):5"/> + <v:ud v:nameU="CornerLockDiag" v:prompt="" v:val="VT0(0):5"/> + <v:ud v:nameU="TopLeftOffset" v:prompt="" v:val="VT0(0.15):1"/> + <v:ud v:nameU="TopRightOffset" v:prompt="" v:val="VT0(0.15):1"/> + <v:ud v:nameU="BotLeftOffset" v:prompt="" v:val="VT0(0.15):1"/> + <v:ud v:nameU="BotRightOffset" v:prompt="" v:val="VT0(0.15):1"/> + <v:ud v:nameU="visVersion" v:prompt="" v:val="VT0(15):26"/> + <v:ud v:nameU="TopLeftOffset" v:prompt="" v:val="VT0(0.10739436619718):1"/> + <v:ud v:nameU="TopRightOffset" v:prompt="" v:val="VT0(0.10739436619718):1"/> + <v:ud v:nameU="BotLeftOffset" v:prompt="" v:val="VT0(0.10739436619718):1"/> + <v:ud v:nameU="BotRightOffset" v:prompt="" v:val="VT0(0.10739436619718):1"/> + </v:userDefs> + <v:textBlock v:margins="rect(4,4,4,4)" v:verticalAlign="0"/> + <v:textRect cx="137.25" cy="672.838" width="274.5" height="85.5"/> + <path d="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 + 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 + Z" class="st46"/> + <text x="4" y="646.69" class="st47" v:langID="1033"><v:paragraph v:spBefore="6" v:bulletSize="0.166667"/><v:tabList/>EDK2 HII UNI file<v:lf/><tspan + x="4" dy="1.425em" class="st48">#</tspan><tspan class="st48">string </tspan><tspan class="st49">STR</tspan><tspan + class="st49">_</tspan><tspan class="st49">OPTION</tspan><tspan class="st49">_</tspan><tspan class="st49">A</tspan><tspan + class="st48"> </tspan><tspan class="st48">#</tspan><tspan class="st48">language </tspan><tspan + class="st49">x</tspan><tspan class="st49">-</tspan><tspan class="st49">uefi</tspan><tspan class="st49">-</tspan><tspan + class="st49">redfish</tspan><tspan class="st49">-</tspan><tspan class="st49">SCHEMA</tspan><tspan + class="st49">.</tspan><tspan class="st49">VERSION</tspan><tspan class="st48"> </tspan><tspan class="st49"> </tspan><tspan + x="4" dy="1.2em" class="st50">“</tspan><tspan class="st50">/</tspan><tspan class="st50">SCHEMA</tspan><tspan + class="st50">/</tspan><tspan class="st50">PropertyA</tspan><tspan class="st49">” </tspan><tspan + class="st48"> <v:newlineChar/><v:paragraph v:bulletSize="0.166667"/></tspan><tspan x="4" dy="1.2em" + class="st48">#</tspan><tspan class="st48">string</tspan><tspan class="st49"> </tspan><tspan class="st49">STR</tspan><tspan + class="st49">_</tspan><tspan class="st49">OPTION</tspan><tspan class="st49">_</tspan><tspan class="st49">B</tspan><tspan + class="st48"> </tspan><tspan class="st48">#</tspan><tspan class="st48">language</tspan><tspan class="st49"> </tspan><tspan + class="st49">x</tspan><tspan class="st49">-</tspan><tspan class="st49">uefi</tspan><tspan class="st49">-</tspan><tspan + class="st49">redfish</tspan><tspan class="st49">-</tspan><tspan class="st49">SCHEMA</tspan><tspan + class="st49">.</tspan><tspan class="st49">VERSION</tspan><tspan class="st48"> </tspan><tspan class="st50"> </tspan><tspan + x="4" dy="1.2em" class="st50">“</tspan><tspan class="st50">/</tspan><tspan class="st50">SCHEMA</tspan><tspan + class="st50">/</tspan><tspan class="st50">PropertyB</tspan><tspan class="st50">”<v:newlineChar/></tspan><tspan + x="4" dy="1.2em" class="st48">#</tspan><tspan class="st48">string </tspan><tspan class="st49">STR</tspan><tspan + class="st49">_</tspan><tspan class="st49">OPTION</tspan><tspan class="st49">_</tspan><tspan class="st48">C </tspan><tspan + class="st48">#</tspan><tspan class="st48">language</tspan><tspan class="st49"> </tspan><tspan class="st49">x</tspan><tspan + class="st49">-</tspan><tspan class="st49">uefi</tspan><tspan class="st49">-</tspan><tspan class="st49">redfish</tspan><tspan + class="st49">-</tspan><tspan class="st49">SCHEMA</tspan><tspan class="st49">.</tspan><tspan class="st49">VERSION</tspan><tspan + class="st48"> </tspan><tspan class="st50"> </tspan><tspan x="4" dy="1.312em" class="st50">“</tspan><tspan + class="st50">/</tspan><tspan class="st50">SCHEMA</tspan><tspan class="st50">/</tspan><tspan class="st50">PropertyC</tspan><tspan + class="st50">”</tspan><v:newlineChar/></text> </g> + <g id="shape100-316" v:mID="100" v:groupContext="shape" transform="translate(171.972,-550.963)"> + <title>Rounded Rectangle.100</title> + <desc>EDK2 HII VFR Form Option A Enabled Option B Disabled Option C...</desc> + <v:userDefs> + <v:ud v:nameU="CTypeTopLeftSnip" v:prompt="" v:val="VT0(0):5"/> + <v:ud v:nameU="CTypeTopRightSnip" v:prompt="" v:val="VT0(0):5"/> + <v:ud v:nameU="CTypeBotLeftSnip" v:prompt="" v:val="VT0(0):5"/> + <v:ud v:nameU="CTypeBotRightSnip" v:prompt="" v:val="VT0(0):5"/> + <v:ud v:nameU="CornerLockHoriz" v:prompt="" v:val="VT0(1):5"/> + <v:ud v:nameU="CornerLockVert" v:prompt="" v:val="VT0(1):5"/> + <v:ud v:nameU="CornerLockDiag" v:prompt="" v:val="VT0(0):5"/> + <v:ud v:nameU="TopLeftOffset" v:prompt="" v:val="VT0(0.15):1"/> + <v:ud v:nameU="TopRightOffset" v:prompt="" v:val="VT0(0.15):1"/> + <v:ud v:nameU="BotLeftOffset" v:prompt="" v:val="VT0(0.15):1"/> + <v:ud v:nameU="BotRightOffset" v:prompt="" v:val="VT0(0.15):1"/> + <v:ud v:nameU="visVersion" v:prompt="" v:val="VT0(15):26"/> + <v:ud v:nameU="TopLeftOffset" v:prompt="" v:val="VT0(0.0625):1"/> + <v:ud v:nameU="TopRightOffset" v:prompt="" v:val="VT0(0.0625):1"/> + <v:ud v:nameU="BotLeftOffset" v:prompt="" v:val="VT0(0.0625):1"/> + <v:ud v:nameU="BotRightOffset" v:prompt="" v:val="VT0(0.0625):1"/> + </v:userDefs> + <v:textBlock v:margins="rect(4,4,4,4)" v:verticalAlign="0"/> + <v:textRect cx="76.5" cy="688.025" width="153" height="55.125"/> + <path d="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 + L4.5 660.46 A4.49993 4.49993 -180 0 0 0 664.96 L0 711.09 A4.49993 4.49993 -180 0 0 4.5 715.59 Z" + class="st51"/> + <text x="37.65" y="671.66" class="st52" v:langID="1033"><v:paragraph v:spLine="-0.8" v:horizAlign="1"/><v:tabList/>EDK2 HII VFR Form<v:lf/><v:lf/><tspan + x="24.37" dy="1.6em" class="st53">Option A Enabled<v:newlineChar/></tspan><tspan x="24.6" dy="0.8em" + class="st53">Option B Disabled<v:newlineChar/></tspan><tspan x="24.4" dy="0.8em" class="st53">Option C </tspan><tspan + class="st53">0</tspan><tspan class="st53">x</tspan><tspan class="st53">16</tspan></text> </g> + <g id="shape101-325" v:mID="101" v:groupContext="shape" transform="translate(147.222,-539.713)"> + <title>Rounded Rectangle.101</title> + <desc>EDK2 HII VFR Form Option A Enabled Option B Disabled Option C...</desc> + <v:userDefs> + <v:ud v:nameU="CTypeTopLeftSnip" v:prompt="" v:val="VT0(0):5"/> + <v:ud v:nameU="CTypeTopRightSnip" v:prompt="" v:val="VT0(0):5"/> + <v:ud v:nameU="CTypeBotLeftSnip" v:prompt="" v:val="VT0(0):5"/> + <v:ud v:nameU="CTypeBotRightSnip" v:prompt="" v:val="VT0(0):5"/> + <v:ud v:nameU="CornerLockHoriz" v:prompt="" v:val="VT0(1):5"/> + <v:ud v:nameU="CornerLockVert" v:prompt="" v:val="VT0(1):5"/> + <v:ud v:nameU="CornerLockDiag" v:prompt="" v:val="VT0(0):5"/> + <v:ud v:nameU="TopLeftOffset" v:prompt="" v:val="VT0(0.15):1"/> + <v:ud v:nameU="TopRightOffset" v:prompt="" v:val="VT0(0.15):1"/> + <v:ud v:nameU="BotLeftOffset" v:prompt="" v:val="VT0(0.15):1"/> + <v:ud v:nameU="BotRightOffset" v:prompt="" v:val="VT0(0.15):1"/> + <v:ud v:nameU="visVersion" v:prompt="" v:val="VT0(15):26"/> + <v:ud v:nameU="TopLeftOffset" v:prompt="" v:val="VT0(0.0625):1"/> + <v:ud v:nameU="TopRightOffset" v:prompt="" v:val="VT0(0.0625):1"/> + <v:ud v:nameU="BotLeftOffset" v:prompt="" v:val="VT0(0.0625):1"/> + <v:ud v:nameU="BotRightOffset" v:prompt="" v:val="VT0(0.0625):1"/> + </v:userDefs> + <v:textBlock v:margins="rect(4,4,4,4)" v:verticalAlign="0"/> + <v:textRect cx="76.5" cy="688.025" width="153" height="55.125"/> + <path d="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 + L4.5 660.46 A4.49993 4.49993 -180 0 0 0 664.96 L0 711.09 A4.49993 4.49993 -180 0 0 4.5 715.59 Z" + class="st51"/> + <text x="37.65" y="671.66" class="st52" v:langID="1033"><v:paragraph v:spLine="-0.8" v:horizAlign="1"/><v:tabList/>EDK2 HII VFR Form<v:lf/><v:lf/><tspan + x="24.37" dy="1.6em" class="st53">Option A Enabled<v:newlineChar/></tspan><tspan x="24.6" dy="0.8em" + class="st53">Option B Disabled<v:newlineChar/></tspan><tspan x="24.4" dy="0.8em" class="st53">Option C </tspan><tspan + class="st53">0</tspan><tspan class="st53">x</tspan><tspan class="st53">16</tspan></text> </g> + <g id="shape102-334" v:mID="102" v:groupContext="shape" transform="translate(129.222,-526.213)"> + <title>Rounded Rectangle</title> + <desc>EDK2 HII VFR Form Option A Enabled Option B Disabled Option C...</desc> + <v:userDefs> + <v:ud v:nameU="CTypeTopLeftSnip" v:prompt="" v:val="VT0(0):5"/> + <v:ud v:nameU="CTypeTopRightSnip" v:prompt="" v:val="VT0(0):5"/> + <v:ud v:nameU="CTypeBotLeftSnip" v:prompt="" v:val="VT0(0):5"/> + <v:ud v:nameU="CTypeBotRightSnip" v:prompt="" v:val="VT0(0):5"/> + <v:ud v:nameU="CornerLockHoriz" v:prompt="" v:val="VT0(1):5"/> + <v:ud v:nameU="CornerLockVert" v:prompt="" v:val="VT0(1):5"/> + <v:ud v:nameU="CornerLockDiag" v:prompt="" v:val="VT0(0):5"/> + <v:ud v:nameU="TopLeftOffset" v:prompt="" v:val="VT0(0.15):1"/> + <v:ud v:nameU="TopRightOffset" v:prompt="" v:val="VT0(0.15):1"/> + <v:ud v:nameU="BotLeftOffset" v:prompt="" v:val="VT0(0.15):1"/> + <v:ud v:nameU="BotRightOffset" v:prompt="" v:val="VT0(0.15):1"/> + <v:ud v:nameU="visVersion" v:prompt="" v:val="VT0(15):26"/> + <v:ud v:nameU="TopLeftOffset" v:prompt="" v:val="VT0(0.0625):1"/> + <v:ud v:nameU="TopRightOffset" v:prompt="" v:val="VT0(0.0625):1"/> + <v:ud v:nameU="BotLeftOffset" v:prompt="" v:val="VT0(0.0625):1"/> + <v:ud v:nameU="BotRightOffset" v:prompt="" v:val="VT0(0.0625):1"/> + </v:userDefs> + <v:textBlock v:margins="rect(4,4,4,4)" v:verticalAlign="0"/> + <v:textRect cx="76.5" cy="688.025" width="153" height="55.125"/> + <path d="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 + L4.5 660.46 A4.49993 4.49993 -180 0 0 0 664.96 L0 711.09 A4.49993 4.49993 -180 0 0 4.5 715.59 Z" + class="st51"/> + <text x="29.88" y="671.66" class="st29" v:langID="1033"><v:paragraph v:spLine="-0.8" v:horizAlign="1"/><v:tabList/>EDK2 HII VFR Form<v:lf/><v:lf/><tspan + x="24.37" dy="1.6em" class="st54">Option A </tspan><tspan class="st55">Enabled<v:newlineChar/></tspan><tspan + x="24.6" dy="0.8em" class="st54">Option B </tspan><tspan class="st55">Disabled<v:newlineChar/></tspan><tspan + x="24.4" dy="0.8em" class="st54">Option C </tspan><tspan class="st55">0</tspan><tspan + class="st55">x</tspan><tspan class="st55">16</tspan></text> </g> + <g id="shape110-345" v:mID="110" v:groupContext="shape" v:layerMember="0" + transform="translate(503.938,-444.613) rotate(13.0919)"> + <title>Curve connect 1.110</title> + <v:userDefs> + <v:ud v:nameU="Scale" v:val="VT0(1):26"/> + <v:ud v:nameU="AntiScale" v:val="VT0(1):26"/> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="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="st56"/> + </g> + <g id="shape122-351" v:mID="122" v:groupContext="shape" transform="translate(41.4724,-96.4625)"> + <title>Sheet.122</title> + <desc>[1]</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="12.375" cy="702.088" width="24.75" height="27"/> + <rect x="0" y="688.588" width="24.75" height="27" class="st6"/> + <text x="5.44" y="705.09" class="st7" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>[1]</text> </g> + <g id="shape123-354" v:mID="123" v:groupContext="shape" transform="translate(746.847,-100.963)"> + <title>Sheet.123</title> + <desc>[2]</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="12.375" cy="702.088" width="24.75" height="27"/> + <rect x="0" y="688.588" width="24.75" height="27" class="st6"/> + <text x="5.44" y="705.09" class="st7" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>[2]</text> </g> + <g id="shape124-357" v:mID="124" v:groupContext="shape" transform="translate(68.4724,-278.713)"> + <title>Sheet.124</title> + <desc>[3]</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="12.375" cy="702.088" width="24.75" height="27"/> + <rect x="0" y="688.588" width="24.75" height="27" class="st6"/> + <text x="5.44" y="705.09" class="st7" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>[3]</text> </g> + <g id="shape125-360" v:mID="125" v:groupContext="shape" transform="translate(338.472,-269.713)"> + <title>Sheet.125</title> + <desc>[4]</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="12.375" cy="702.088" width="24.75" height="27"/> + <rect x="0" y="688.588" width="24.75" height="27" class="st6"/> + <text x="5.44" y="705.09" class="st7" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>[4]</text> </g> + <g id="shape126-363" v:mID="126" v:groupContext="shape" transform="translate(761.472,-269.713)"> + <title>Sheet.126</title> + <desc>[5]</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="12.375" cy="702.088" width="24.75" height="27"/> + <rect x="0" y="688.588" width="24.75" height="27" class="st6"/> + <text x="5.44" y="705.09" class="st7" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>[5]</text> </g> + <g id="shape127-366" v:mID="127" v:groupContext="shape" transform="translate(390.222,-476.713)"> + <title>Sheet.127</title> + <desc>[6]</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="12.375" cy="702.088" width="24.75" height="27"/> + <rect x="0" y="688.588" width="24.75" height="27" class="st6"/> + <text x="5.44" y="705.09" class="st7" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>[6]</text> </g> + <g id="shape128-369" v:mID="128" v:groupContext="shape" transform="translate(123.597,-579.088)"> + <title>Sheet.128</title> + <desc>[8]</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="12.375" cy="702.088" width="24.75" height="27"/> + <rect x="0" y="688.588" width="24.75" height="27" class="st6"/> + <text x="5.44" y="705.09" class="st7" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>[8]</text> </g> + <g id="shape129-372" v:mID="129" v:groupContext="shape" transform="translate(62.8474,-501.463)"> + <title>Sheet.129</title> + <desc>[9]</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="12.375" cy="702.088" width="24.75" height="27"/> + <rect x="0" y="688.588" width="24.75" height="27" class="st6"/> + <text x="5.44" y="705.09" class="st7" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>[9]</text> </g> + <g id="shape132-375" v:mID="132" v:groupContext="shape" v:layerMember="0" + transform="translate(583.722,1233.46) rotate(180)"> + <title>Curve connect 2.132</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="M2.78 714.72 L3.12 714.61 A681.188 681.188 0 0 1 406.38 714.61 L406.72 714.72" class="st58"/> + </g> + <g id="shape133-384" v:mID="133" v:groupContext="shape" transform="translate(238.347,-157.213)"> + <title>Sheet.133</title> + <desc>Script-generated EDK2 Redfish client driver/library based on ...</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="130.5" cy="702.088" width="261" height="27"/> + <rect x="0" y="688.588" width="261" height="27" class="st1"/> + <text x="11.21" y="699.84" class="st60" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>Script-generated EDK2 Redfish client driver/library based on the <tspan + x="45.23" dy="1em" class="st5">standard Redfish schemas </tspan>published by DMTF</text> </g> + <g id="shape134-388" v:mID="134" v:groupContext="shape" transform="translate(21.2224,-679.775)"> + <title>Rectangle.134</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <rect x="0" y="703.213" width="24.75" height="12.375" class="st2"/> + </g> + <g id="shape135-390" v:mID="135" v:groupContext="shape" transform="translate(41.4724,-670.213)"> + <title>Sheet.135</title> + <desc>Script-generated code</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="54" cy="702.088" width="108" height="27"/> + <rect x="0" y="688.588" width="108" height="27" class="st6"/> + <text x="12.79" y="704.34" class="st61" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>Script-generated code</text> </g> + <g id="shape137-393" v:mID="137" v:groupContext="shape" transform="translate(21.2224,-661.213)"> + <title>Rectangle.137</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <rect x="0" y="703.213" width="24.75" height="12.375" class="st62"/> + </g> + <g id="shape138-395" v:mID="138" v:groupContext="shape" transform="translate(43.7224,-652.213)"> + <title>Sheet.138</title> + <desc>UEFI/EDK2 open source</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="54" cy="702.088" width="108" height="27"/> + <rect x="0" y="688.588" width="108" height="27" class="st6"/> + <text x="9.97" y="704.34" class="st61" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>UEFI/EDK2 open source</text> </g> + <g id="shape140-398" v:mID="140" v:groupContext="shape" transform="translate(281.66,-341.784)"> + <title>Configure</title> + <v:userDefs> + <v:ud v:nameU="msvShapeCategories" v:prompt="" v:val="VT4(Icon)"/> + <v:ud v:nameU="visVersion" v:prompt="" v:val="VT0(15):26"/> + </v:userDefs> + <path d="M41.27 698.83 C40.4 698.46 37.61 697.28 37.61 697.28 L37.79 694.96 L37.94 693.01 L37.69 689.29 L39.53 688.23 + 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 + 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 + 31.41 676.7 31.79 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 + L24.28 677.95 C23.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 + 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.93 L13.12 681.37 + 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 + 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 + 693.25 7.7 694.01 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 + 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 + 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 + 15.1 711.12 16.61 711.77 C17.05 710.74 18.36 707.71 18.36 707.71 L20.65 708.03 C21.73 708.19 22.89 708.21 + 24.1 708.1 L26.18 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 + 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 + L35.81 701 L37.85 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 + 695.32 C40.58 695.32 40.57 695.4 40.56 695.47 C40.95 695.64 44.96 697.33 44.96 697.33 L41.23 706.17 C41.23 + 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 + 707.11 C33.97 707.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 + 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 711 20.25 710.82 + 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 + 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 + C8.72 704.23 8.51 703.94 8.37 703.75 C7.96 703.9 3.49 705.65 3.49 705.65 L0 696.71 C0 696.71 4.8 694.83 + 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 693.02 C4.82 693.02 + 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 + C8.51 682.18 8.56 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 + 679.11 C11.29 678.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 + 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 + 675.16 C24.87 674.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 + 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 681.88 36.94 681.95 + 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 + 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 + 697.76 C29.16 695.67 29.58 691.87 27.5 689.26 C25.42 686.65 21.62 686.23 19.01 688.31 C16.41 690.4 15.98 + 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 + 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 701.58 17.34 700.41 + 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.12 C19.1 684.64 + 21.41 683.97 23.76 684.23 Z" class="st63"/> + </g> + <g id="shape145-400" v:mID="145" v:groupContext="shape" v:layerMember="0" + transform="translate(323.911,1069.28) scale(1,-1)"> + <title>Side to top/bottom.145</title> + <v:userDefs> + <v:ud v:nameU="TextPos" v:val="VT0(0):5"/> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="M7.18 715.59 L7.54 715.59 L96.69 715.59 L96.69 668.4" class="st64"/> + </g> + <g id="shape146-406" v:mID="146" v:groupContext="shape" v:layerMember="0" transform="translate(204.597,-382.144)"> + <title>Bottom to top fixed 2</title> + <v:userDefs> + <v:ud v:nameU="TextPos" v:val="VT0(1):26"/> + <v:ud v:nameU="Offset" v:val="VT0(0.25):0"/> + <v:ud v:nameU="Scale" v:val="VT0(1):26"/> + <v:ud v:nameU="AntiScale" v:val="VT0(1):26"/> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="M0 677.27 L0 697.59 L99.14 697.59 L99.14 708.05" class="st66"/> + </g> + <g id="shape150-412" v:mID="150" v:groupContext="shape" v:layerMember="0" transform="translate(281.66,1070.51) rotate(180)"> + <title>Side to top/bottom</title> + <v:userDefs> + <v:ud v:nameU="TextPos" v:val="VT0(0):5"/> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="M7.18 715.59 L7.54 715.59 L107.44 715.59 L107.44 669.64" class="st64"/> + </g> + <g id="shape152-417" v:mID="152" v:groupContext="shape" transform="translate(173.097,-359.713)"> + <title>Sheet.152</title> + <desc>[10]</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="22.5" cy="702.088" width="45" height="27"/> + <rect x="0" y="688.588" width="45" height="27" class="st6"/> + <text x="12.52" y="705.09" class="st7" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>[10]</text> </g> + <g id="shape153-420" v:mID="153" v:groupContext="shape" transform="translate(186.597,-359.713)"> + <title>Sheet.153</title> + <desc>EDK2 Build Tool</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="54" cy="702.088" width="108" height="27"/> + <rect x="0" y="688.588" width="108" height="27" class="st6"/> + <text x="21.18" y="704.59" class="st22" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>EDK2 Build Tool</text> </g> + <g id="shape95-423" v:mID="95" v:groupContext="shape" v:layerMember="0" + transform="translate(479.651,-242.34) rotate(-1.84761)"> + <title>Curve connect 2</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="M1.08 713.99 L1.29 713.7 A41.432 41.432 0 0 1 68.5 713.7 L68.7 713.99" class="st67"/> + </g> + <g id="shape154-431" v:mID="154" v:groupContext="shape" transform="translate(546.597,-607.213)"> + <title>Sheet.154</title> + <desc>[7]</desc> + <v:textBlock v:margins="rect(4,4,4,4)"/> + <v:textRect cx="12.375" cy="702.088" width="24.75" height="27"/> + <rect x="0" y="688.588" width="24.75" height="27" class="st6"/> + <text x="5.44" y="705.09" class="st7" v:langID="1033"><v:paragraph v:spLine="-1" v:horizAlign="1"/><v:tabList/>[7]</text> </g> + <g id="shape155-434" v:mID="155" v:groupContext="shape" v:layerMember="0" + transform="translate(919.083,249.319) rotate(-86.8202) scale(1,-1)"> + <title>Curve connect 1.155</title> + <v:userDefs> + <v:ud v:nameU="Scale" v:val="VT0(1):26"/> + <v:ud v:nameU="AntiScale" v:val="VT0(1):26"/> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="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="st68"/> + </g> + </g> +</svg> -- 2.17.1 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* [staging/edk2-redfish-client PATCH v2 2/2] edk2: Update Maintainers.txt 2021-07-20 3:53 [staging/edk2-redfish-client PATCH v2 0/2] RedfishClientPkg Abner Chang 2021-07-20 3:53 ` [staging/edk2-redfish-client PATCH v2 1/2] RedfishClientPkg: Initial commit Abner Chang @ 2021-07-20 3:53 ` Abner Chang 2021-08-03 11:16 ` [edk2-devel] " Leif Lindholm 2021-08-08 13:02 ` Nickle Wang 1 sibling, 2 replies; 7+ messages in thread From: Abner Chang @ 2021-07-20 3:53 UTC (permalink / raw) To: devel; +Cc: Nickle Wang, Liming Gao, Andrew Fish, Leif Lindholm, Michael D Kinney Add maintainer and reviewer to RedfishClinetPkg. Signed-off-by: Abner Chang <abner.chang@hpe.com> Cc: Nickle Wang <nickle.wang@hpe.com> Cc: Liming Gao <gaoliming@byosoft.com.cn> Cc: Andrew Fish <afish@apple.com> Cc: Leif Lindholm <leif@nuviainc.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> --- Maintainers.txt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Maintainers.txt b/Maintainers.txt index e9dda5c5ca..55068c9140 100644 --- a/Maintainers.txt +++ b/Maintainers.txt @@ -519,6 +519,11 @@ F: RedfishPkg/ M: Abner Chang <abner.chang@hpe.com> R: Nickle Wang <nickle.wang@hpe.com> +RedfishClientPkg: Redfish Client related modules +F: RedfishClientPkg/ +M: Abner Chang <abner.chang@hpe.com> +R: Nickle Wang <nickle.wang@hpe.com> + SecurityPkg F: SecurityPkg/ W: https://github.com/tianocore/tianocore.github.io/wiki/SecurityPkg -- 2.17.1 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [edk2-devel] [staging/edk2-redfish-client PATCH v2 2/2] edk2: Update Maintainers.txt 2021-07-20 3:53 ` [staging/edk2-redfish-client PATCH v2 2/2] edk2: Update Maintainers.txt Abner Chang @ 2021-08-03 11:16 ` Leif Lindholm 2021-08-03 14:03 ` Abner Chang 2021-08-08 13:02 ` Nickle Wang 1 sibling, 1 reply; 7+ messages in thread From: Leif Lindholm @ 2021-08-03 11:16 UTC (permalink / raw) To: devel, abner.chang; +Cc: Nickle Wang, Liming Gao, Andrew Fish, Michael D Kinney On Tue, Jul 20, 2021 at 11:53:58 +0800, Abner Chang wrote: > Add maintainer and reviewer to RedfishClinetPkg. > > Signed-off-by: Abner Chang <abner.chang@hpe.com> > Cc: Nickle Wang <nickle.wang@hpe.com> > Cc: Liming Gao <gaoliming@byosoft.com.cn> > Cc: Andrew Fish <afish@apple.com> > Cc: Leif Lindholm <leif@nuviainc.com> > Cc: Michael D Kinney <michael.d.kinney@intel.com> > --- > Maintainers.txt | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/Maintainers.txt b/Maintainers.txt > index e9dda5c5ca..55068c9140 100644 > --- a/Maintainers.txt > +++ b/Maintainers.txt > @@ -519,6 +519,11 @@ F: RedfishPkg/ > M: Abner Chang <abner.chang@hpe.com> > R: Nickle Wang <nickle.wang@hpe.com> > > +RedfishClientPkg: Redfish Client related modules My interpretation of the normal use of this field is that we can add a comment if the entry applies only to a subset of a package. This adds an entry for a whole new package, and as such should only state the name of the package. With everything from the : until the end of line dropped: Reviewed-by: Leif Lindholm <leif@nuviainc.com> / Leif > +F: RedfishClientPkg/ > +M: Abner Chang <abner.chang@hpe.com> > +R: Nickle Wang <nickle.wang@hpe.com> > + > SecurityPkg > F: SecurityPkg/ > W: https://github.com/tianocore/tianocore.github.io/wiki/SecurityPkg > -- > 2.17.1 > > > > > > ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [edk2-devel] [staging/edk2-redfish-client PATCH v2 2/2] edk2: Update Maintainers.txt 2021-08-03 11:16 ` [edk2-devel] " Leif Lindholm @ 2021-08-03 14:03 ` Abner Chang 0 siblings, 0 replies; 7+ messages in thread From: Abner Chang @ 2021-08-03 14:03 UTC (permalink / raw) To: Leif Lindholm, devel@edk2.groups.io Cc: Wang, Nickle (HPS SW), Liming Gao, Andrew Fish, Michael D Kinney Thanks Leif, I remove the description from the package name. Abner > -----Original Message----- > From: Leif Lindholm [mailto:leif@nuviainc.com] > Sent: Tuesday, August 3, 2021 7:16 PM > To: devel@edk2.groups.io; Chang, Abner (HPS SW/FW Technologist) > <abner.chang@hpe.com> > Cc: Wang, Nickle (HPS SW) <nickle.wang@hpe.com>; Liming Gao > <gaoliming@byosoft.com.cn>; Andrew Fish <afish@apple.com>; Michael D > Kinney <michael.d.kinney@intel.com> > Subject: Re: [edk2-devel] [staging/edk2-redfish-client PATCH v2 2/2] edk2: > Update Maintainers.txt > > On Tue, Jul 20, 2021 at 11:53:58 +0800, Abner Chang wrote: > > Add maintainer and reviewer to RedfishClinetPkg. > > > > Signed-off-by: Abner Chang <abner.chang@hpe.com> > > Cc: Nickle Wang <nickle.wang@hpe.com> > > Cc: Liming Gao <gaoliming@byosoft.com.cn> > > Cc: Andrew Fish <afish@apple.com> > > Cc: Leif Lindholm <leif@nuviainc.com> > > Cc: Michael D Kinney <michael.d.kinney@intel.com> > > --- > > Maintainers.txt | 5 +++++ > > 1 file changed, 5 insertions(+) > > > > diff --git a/Maintainers.txt b/Maintainers.txt > > index e9dda5c5ca..55068c9140 100644 > > --- a/Maintainers.txt > > +++ b/Maintainers.txt > > @@ -519,6 +519,11 @@ F: RedfishPkg/ > > M: Abner Chang <abner.chang@hpe.com> > > R: Nickle Wang <nickle.wang@hpe.com> > > > > +RedfishClientPkg: Redfish Client related modules > > My interpretation of the normal use of this field is that we can add a > comment if the entry applies only to a subset of a package. > This adds an entry for a whole new package, and as such should only > state the name of the package. > > With everything from the : until the end of line dropped: > Reviewed-by: Leif Lindholm <leif@nuviainc.com> > > / > Leif > > > +F: RedfishClientPkg/ > > +M: Abner Chang <abner.chang@hpe.com> > > +R: Nickle Wang <nickle.wang@hpe.com> > > + > > SecurityPkg > > F: SecurityPkg/ > > W: https://github.com/tianocore/tianocore.github.io/wiki/SecurityPkg > > -- > > 2.17.1 > > > > > > > > > > > > ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [staging/edk2-redfish-client PATCH v2 2/2] edk2: Update Maintainers.txt 2021-07-20 3:53 ` [staging/edk2-redfish-client PATCH v2 2/2] edk2: Update Maintainers.txt Abner Chang 2021-08-03 11:16 ` [edk2-devel] " Leif Lindholm @ 2021-08-08 13:02 ` Nickle Wang 1 sibling, 0 replies; 7+ messages in thread From: Nickle Wang @ 2021-08-08 13:02 UTC (permalink / raw) To: Chang, Abner (HPS SW/FW Technologist), devel@edk2.groups.io Cc: Liming Gao, Andrew Fish, Leif Lindholm, Michael D Kinney Reviewed-by: Nickle Wang <nickle.wang@hpe.com> Nickle -----Original Message----- From: Chang, Abner (HPS SW/FW Technologist) <abner.chang@hpe.com> Sent: Tuesday, July 20, 2021 11:54 AM To: devel@edk2.groups.io Cc: Wang, Nickle (HPS SW) <nickle.wang@hpe.com>; Liming Gao <gaoliming@byosoft.com.cn>; Andrew Fish <afish@apple.com>; Leif Lindholm <leif@nuviainc.com>; Michael D Kinney <michael.d.kinney@intel.com> Subject: [staging/edk2-redfish-client PATCH v2 2/2] edk2: Update Maintainers.txt Add maintainer and reviewer to RedfishClinetPkg. Signed-off-by: Abner Chang <abner.chang@hpe.com> Cc: Nickle Wang <nickle.wang@hpe.com> Cc: Liming Gao <gaoliming@byosoft.com.cn> Cc: Andrew Fish <afish@apple.com> Cc: Leif Lindholm <leif@nuviainc.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> --- Maintainers.txt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Maintainers.txt b/Maintainers.txt index e9dda5c5ca..55068c9140 100644 --- a/Maintainers.txt +++ b/Maintainers.txt @@ -519,6 +519,11 @@ F: RedfishPkg/ M: Abner Chang <abner.chang@hpe.com> R: Nickle Wang <nickle.wang@hpe.com> +RedfishClientPkg: Redfish Client related modules +F: RedfishClientPkg/ +M: Abner Chang <abner.chang@hpe.com> +R: Nickle Wang <nickle.wang@hpe.com> + SecurityPkg F: SecurityPkg/ W: https://github.com/tianocore/tianocore.github.io/wiki/SecurityPkg -- 2.17.1 ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2021-08-08 13:02 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2021-07-20 3:53 [staging/edk2-redfish-client PATCH v2 0/2] RedfishClientPkg Abner Chang 2021-07-20 3:53 ` [staging/edk2-redfish-client PATCH v2 1/2] RedfishClientPkg: Initial commit Abner Chang 2021-07-20 6:21 ` Nickle Wang 2021-07-20 3:53 ` [staging/edk2-redfish-client PATCH v2 2/2] edk2: Update Maintainers.txt Abner Chang 2021-08-03 11:16 ` [edk2-devel] " Leif Lindholm 2021-08-03 14:03 ` Abner Chang 2021-08-08 13:02 ` Nickle Wang
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox