diff options
| author | Tom Rini <[email protected]> | 2025-12-06 08:13:37 -0600 |
|---|---|---|
| committer | Tom Rini <[email protected]> | 2025-12-06 08:13:37 -0600 |
| commit | a1feb08d02215babc6133f5c3d19869a1a5fb2d2 (patch) | |
| tree | e2a13d9af097452f0ef2142efa50e385a87e99d5 | |
| parent | c98b6a6dcd1fc7bcba081fc2353954e33de5053c (diff) | |
| parent | e5996e3ed350598c79cd7afaf6d4f0618598e390 (diff) | |
Merge tag 'efi-2026-01-rc4' of https://source.denx.de/u-boot/custodians/u-boot-efi
Pull request efi-2026-01-rc4
CI: https://source.denx.de/u-boot/custodians/u-boot-efi/-/pipelines/28652
Documentation:
* Correct and add missing pytest hook script environment variable names
* board: verdin-am62p: Fix boot log output
* Add a page for downloading the U-Boot logo with and without text
UEFI:
* Fix a memory leak when retrieving device paths from boot vars
| -rw-r--r-- | doc/board/toradex/verdin-am62p.rst | 135 | ||||
| -rw-r--r-- | doc/develop/pytest/usage.rst | 16 | ||||
| -rw-r--r-- | doc/learn/index.rst | 1 | ||||
| -rw-r--r-- | doc/learn/logo.rst | 20 | ||||
| -rw-r--r-- | lib/efi_loader/efi_capsule.c | 34 | ||||
| -rw-r--r-- | tools/logos/u-boot_logo_with_text.svg | 280 |
6 files changed, 383 insertions, 103 deletions
diff --git a/doc/board/toradex/verdin-am62p.rst b/doc/board/toradex/verdin-am62p.rst index 2f3262b8d1e..cc60505a40c 100644 --- a/doc/board/toradex/verdin-am62p.rst +++ b/doc/board/toradex/verdin-am62p.rst @@ -125,72 +125,69 @@ one may also use the update U-Boot wrappers: Boot ---- -Output: - -.. code-block:: console - -U-Boot SPL 2025.04-00006-g51dc98d36470 (May 12 2025 - 15:46:57 +0100) -SYSFW ABI: 4.0 (firmware rev 0x000b '11.0.7--v11.00.07 (Fancy Rat)') -Changed A53 CPU frequency to 1250000000Hz (U grade) in DT -SPL initial stack usage: 17080 bytes -Trying to boot from MMC1 -Authentication passed -Authentication passed -Authentication passed -Loading Environment from nowhere... OK -init_env from device 9 not supported! -Authentication passed -Authentication passed -Starting ATF on ARM64 core... - -NOTICE: BL31: v2.12.0(release):v2.12.0-1106-g4301798db096 -NOTICE: BL31: Built : 10:57:58, May 9 2025 -I/TC: -I/TC: OP-TEE version: 4.6.0-18-g76d920d354df (gcc version 12.3.1 20230626 (Arm GNU Toolchain 12.3.Rel1 (Build arm-12.35))) #4 Tue May 6 19:48:13 UTC 2025 aarch64 -I/TC: WARNING: This OP-TEE configuration might be insecure! -I/TC: WARNING: Please check https://optee.readthedocs.io/en/latest/architecture/porting_guidelines.html -I/TC: Primary CPU initializing -I/TC: GIC redistributor base address not provided -I/TC: Assuming default GIC group status and modifier -I/TC: SYSFW ABI: 4.0 (firmware rev 0x000b '11.0.7--v11.00.07 (Fancy Rat)') -I/TC: Activated SA2UL device -I/TC: Enabled firewalls for SA2UL TRNG device -I/TC: SA2UL TRNG initialized -I/TC: SA2UL Drivers initialized -I/TC: HUK Initialized -I/TC: Primary CPU switching to normal world boot - -U-Boot SPL 2025.04-00006-g51dc98d36470 (May 12 2025 - 15:47:54 +0100) -SYSFW ABI: 4.0 (firmware rev 0x000b '11.0.7--v11.00.07 (Fancy Rat)') -SPL initial stack usage: 1760 bytes -HW CFG: 0x00 -Trying to boot from MMC1 -Authentication passed -Authentication passed - - -U-Boot 2025.04-00006-g51dc98d36470 (May 12 2025 - 15:47:54 +0100) - -SoC: AM62PX SR1.0 HS-FS -DRAM: 2 GiB -Core: 147 devices, 31 uclasses, devicetree: separate -MMC: mmc@fa10000: 0, mmc@fa00000: 1 -Loading Environment from MMC... Reading from MMC(0)... OK -In: serial@2800000 -Out: serial@2800000 -Err: serial@2800000 -Model: Toradex 0099 Verdin AM62P Quad 2GB WB IT V1.0A -Serial#: 15664919 -Carrier: Toradex Dahlia V1.1D, Serial# 11287149 -am65_cpsw_nuss ethernet@8000000: K3 CPSW: nuss_ver: 0x6BA01903 cpsw_ver: 0x6BA81903 ale_ver: 0x00290105 Ports:2 -Setting variant to wifi -Net: -Warning: ethernet@8000000port@1 MAC addresses don't match: -Address in ROM is 58:a1:5f:b8:93:f9 -Address in environment is 00:14:2d:ef:07:17 -eth0: ethernet@8000000port@1 [PRIME]Could not get PHY for mdio@f00: addr 7 -am65_cpsw_nuss_port ethernet@8000000port@2: phy_connect() failed - -Hit any key to stop autoboot: 0 -Verdin AM62P # - +Output:: + + U-Boot SPL 2025.04-00006-g51dc98d36470 (May 12 2025 - 15:46:57 +0100) + SYSFW ABI: 4.0 (firmware rev 0x000b '11.0.7--v11.00.07 (Fancy Rat)') + Changed A53 CPU frequency to 1250000000Hz (U grade) in DT + SPL initial stack usage: 17080 bytes + Trying to boot from MMC1 + Authentication passed + Authentication passed + Authentication passed + Loading Environment from nowhere... OK + init_env from device 9 not supported! + Authentication passed + Authentication passed + Starting ATF on ARM64 core... + + NOTICE: BL31: v2.12.0(release):v2.12.0-1106-g4301798db096 + NOTICE: BL31: Built : 10:57:58, May 9 2025 + I/TC: + I/TC: OP-TEE version: 4.6.0-18-g76d920d354df (gcc version 12.3.1 20230626 (Arm GNU Toolchain 12.3.Rel1 (Build arm-12.35))) #4 Tue May 6 19:48:13 UTC 2025 aarch64 + I/TC: WARNING: This OP-TEE configuration might be insecure! + I/TC: WARNING: Please check https://optee.readthedocs.io/en/latest/architecture/porting_guidelines.html + I/TC: Primary CPU initializing + I/TC: GIC redistributor base address not provided + I/TC: Assuming default GIC group status and modifier + I/TC: SYSFW ABI: 4.0 (firmware rev 0x000b '11.0.7--v11.00.07 (Fancy Rat)') + I/TC: Activated SA2UL device + I/TC: Enabled firewalls for SA2UL TRNG device + I/TC: SA2UL TRNG initialized + I/TC: SA2UL Drivers initialized + I/TC: HUK Initialized + I/TC: Primary CPU switching to normal world boot + + U-Boot SPL 2025.04-00006-g51dc98d36470 (May 12 2025 - 15:47:54 +0100) + SYSFW ABI: 4.0 (firmware rev 0x000b '11.0.7--v11.00.07 (Fancy Rat)') + SPL initial stack usage: 1760 bytes + HW CFG: 0x00 + Trying to boot from MMC1 + Authentication passed + Authentication passed + + + U-Boot 2025.04-00006-g51dc98d36470 (May 12 2025 - 15:47:54 +0100) + + SoC: AM62PX SR1.0 HS-FS + DRAM: 2 GiB + Core: 147 devices, 31 uclasses, devicetree: separate + MMC: mmc@fa10000: 0, mmc@fa00000: 1 + Loading Environment from MMC... Reading from MMC(0)... OK + In: serial@2800000 + Out: serial@2800000 + Err: serial@2800000 + Model: Toradex 0099 Verdin AM62P Quad 2GB WB IT V1.0A + Serial#: 15664919 + Carrier: Toradex Dahlia V1.1D, Serial# 11287149 + am65_cpsw_nuss ethernet@8000000: K3 CPSW: nuss_ver: 0x6BA01903 cpsw_ver: 0x6BA81903 ale_ver: 0x00290105 Ports:2 + Setting variant to wifi + Net: + Warning: ethernet@8000000port@1 MAC addresses don't match: + Address in ROM is 58:a1:5f:b8:93:f9 + Address in environment is 00:14:2d:ef:07:17 + eth0: ethernet@8000000port@1 [PRIME]Could not get PHY for mdio@f00: addr 7 + am65_cpsw_nuss_port ethernet@8000000port@2: phy_connect() failed + + Hit any key to stop autoboot: 0 + Verdin AM62P # diff --git a/doc/develop/pytest/usage.rst b/doc/develop/pytest/usage.rst index 7335a39b963..df3821da20d 100644 --- a/doc/develop/pytest/usage.rst +++ b/doc/develop/pytest/usage.rst @@ -315,14 +315,16 @@ Environment variables The following environment variables are set when running hook scripts: -- ``UBOOT_BOARD_TYPE`` the board type being tested. -- ``UBOOT_BOARD_IDENTITY`` the board identity being tested, or ``na`` if none +- ``U_BOOT_BOARD_TYPE`` the board type being tested. +- ``U_BOOT_BOARD_TYPE_EXTRA`` the 2nd board type being tested, if applicable. +- ``U_BOOT_BOARD_IDENTITY`` the board identity being tested, or ``na`` if none was specified. -- ``UBOOT_SOURCE_DIR`` the U-Boot source directory. -- ``UBOOT_TEST_PY_DIR`` the full path to ``test/py/`` in the source directory. -- ``UBOOT_BUILD_DIR`` the U-Boot build directory. -- ``UBOOT_RESULT_DIR`` the test result directory. -- ``UBOOT_PERSISTENT_DATA_DIR`` the test persistent data directory. +- ``U_BOOT_SOURCE_DIR`` the U-Boot source directory. +- ``U_BOOT_TEST_PY_DIR`` the full path to ``test/py/`` in the source directory. +- ``U_BOOT_BUILD_DIR`` the U-Boot build directory. +- ``U_BOOT_BUILD_DIR_EXTRA`` the 2nd U-Boot build directory, if applicable. +- ``U_BOOT_RESULT_DIR`` the test result directory. +- ``U_BOOT_PERSISTENT_DATA_DIR`` the test persistent data directory. u-boot-test-console ''''''''''''''''''' diff --git a/doc/learn/index.rst b/doc/learn/index.rst index 8075c01d1df..5b139e3c9fd 100644 --- a/doc/learn/index.rst +++ b/doc/learn/index.rst @@ -6,4 +6,5 @@ Learn about U-Boot .. toctree:: :maxdepth: 1 + logo talks diff --git a/doc/learn/logo.rst b/doc/learn/logo.rst new file mode 100644 index 00000000000..66d403e4cff --- /dev/null +++ b/doc/learn/logo.rst @@ -0,0 +1,20 @@ +.. SPDX-License-Identifier: GPL-2.0-or-later + +U-Boot logo +=========== + +The project uses the logos below. + +Logo with text +-------------- + +.. image:: ../../tools/logos/u-boot_logo_with_text.svg + :width: 10em + :alt: U-Boot logo with text + +Logo without text +----------------- + +.. image:: ../../tools/logos/u-boot_logo.svg + :width: 10em + :alt: U-Boot logo without text diff --git a/lib/efi_loader/efi_capsule.c b/lib/efi_loader/efi_capsule.c index 31b47a20186..eafc647f558 100644 --- a/lib/efi_loader/efi_capsule.c +++ b/lib/efi_loader/efi_capsule.c @@ -857,18 +857,9 @@ static efi_status_t get_dp_device(u16 *boot_var, struct efi_device_path *file_dp; efi_status_t ret; - size = 0; - ret = efi_get_variable_int(boot_var, &efi_global_variable_guid, - NULL, &size, NULL, NULL); - if (ret == EFI_BUFFER_TOO_SMALL) { - buf = malloc(size); - if (!buf) - return EFI_OUT_OF_RESOURCES; - ret = efi_get_variable_int(boot_var, &efi_global_variable_guid, - NULL, &size, buf, NULL); - } - if (ret != EFI_SUCCESS) - return ret; + buf = efi_get_var(boot_var, &efi_global_variable_guid, &size); + if (!buf) + return EFI_NOT_FOUND; efi_deserialize_load_option(&lo, buf, &size); @@ -960,22 +951,11 @@ static efi_status_t find_boot_device(void) skip: /* find active boot device in BootOrder */ - size = 0; - ret = efi_get_variable_int(u"BootOrder", &efi_global_variable_guid, - NULL, &size, NULL, NULL); - if (ret == EFI_BUFFER_TOO_SMALL) { - boot_order = malloc(size); - if (!boot_order) { - ret = EFI_OUT_OF_RESOURCES; - goto out; - } - - ret = efi_get_variable_int(u"BootOrder", - &efi_global_variable_guid, - NULL, &size, boot_order, NULL); - } - if (ret != EFI_SUCCESS) + boot_order = efi_get_var(u"BootOrder", &efi_global_variable_guid, &size); + if (!boot_order) { + ret = EFI_NOT_FOUND; goto out; + } /* check in higher order */ num = size / sizeof(u16); diff --git a/tools/logos/u-boot_logo_with_text.svg b/tools/logos/u-boot_logo_with_text.svg new file mode 100644 index 00000000000..1527e79a3a9 --- /dev/null +++ b/tools/logos/u-boot_logo_with_text.svg @@ -0,0 +1,280 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- SPDX-License-Identifier: CC-BY-SA-4.0 --> + +<!-- Copyright (c) 2018, Heinrich Schuchardt <[email protected]> --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="186" + height="244" + viewBox="0 0 186 244" + id="svg2" + version="1.1" + inkscape:version="0.92.4 (5da689c313, 2019-01-14)" + sodipodi:docname="u-boot_logo.svg" + inkscape:export-filename="tools/logos/u-boot_logo.png" + inkscape:export-xdpi="41.290001" + inkscape:export-ydpi="41.290001"> + <title + id="title30">U-Boot Logo</title> + <metadata + id="metadata31"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title>U-Boot Logo</dc:title> + <cc:license + rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" /> + <dc:creator> + <cc:Agent> + <dc:title>Heinrich Schuchardt <[email protected]></dc:title> + </cc:Agent> + </dc:creator> + <dc:date>May 21st, 2018</dc:date> + </cc:Work> + <cc:License + rdf:about="http://creativecommons.org/licenses/by-sa/4.0/"> + <cc:permits + rdf:resource="http://creativecommons.org/ns#Reproduction" /> + <cc:permits + rdf:resource="http://creativecommons.org/ns#Distribution" /> + <cc:requires + rdf:resource="http://creativecommons.org/ns#Notice" /> + <cc:requires + rdf:resource="http://creativecommons.org/ns#Attribution" /> + <cc:permits + rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /> + <cc:requires + rdf:resource="http://creativecommons.org/ns#ShareAlike" /> + </cc:License> + </rdf:RDF> + </metadata> + <defs + id="defs29" /> + <sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1920" + inkscape:window-height="1051" + id="namedview27" + showgrid="false" + inkscape:zoom="2.1213203" + inkscape:cx="40" + inkscape:cy="66.333333" + inkscape:window-x="0" + inkscape:window-y="0" + inkscape:window-maximized="1" + inkscape:current-layer="flowRoot840" /> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,58)"> + <circle + style="fill:#004466;fill-opacity:1;stroke:none;stroke-width:0" + id="path835" + cx="93" + cy="35" + r="93" /> + <path + inkscape:connector-curvature="0" + style="fill:#ffcc88;fill-opacity:1;stroke:none;stroke-width:0" + d="M 116,18 A 20,20 0 0 1 96,-2 20,20 0 0 1 116,-22 v 11 a 9,9 0 0 0 -9,9 9,9 0 0 0 9,9 z" + id="path4136-6-6-1-6-3-5" /> + <path + inkscape:connector-curvature="0" + style="fill:#ffcc88;fill-opacity:1;stroke:none;stroke-width:0" + d="m 116,8 a 10,10 0 0 1 -10,-10 10,10 0 0 1 10,-10 v 1 a 9,9 0 0 0 -9,9 9,9 0 0 0 9,9 z" + id="path4136-6-6-1-6-3-5-1-9" /> + <ellipse + style="fill:#dd9955;fill-opacity:1;stroke:none;stroke-width:0" + id="path4136-6-6-1-6-3-5-1-2" + cx="116" + cy="-16.5" + rx="4" + ry="5.5" /> + <circle + style="fill:#dd9955;fill-opacity:1;stroke:none;stroke-width:0" + id="path4352" + cx="86" + cy="8" + r="10" /> + <circle + style="fill:#dd9955;fill-opacity:1;stroke:none;stroke-width:0" + id="path4352-1" + cx="126" + cy="8" + r="10" /> + <rect + style="fill:#dd9955;fill-opacity:1;stroke:none;stroke-width:0" + id="rect4399" + width="39" + height="20" + x="86.5" + y="-2" /> + <rect + style="fill:#dd9955;fill-opacity:1;stroke:none;stroke-width:0" + id="rect4660" + width="60" + height="9.5" + x="76" + y="8.5" /> + <circle + style="fill:#dd9955;fill-opacity:1;stroke:none;stroke-width:0" + id="path4549-5" + cx="36" + cy="23" + r="15" /> + <circle + style="fill:#dd9955;fill-opacity:1;stroke:none;stroke-width:0" + id="path4549-5-5" + cx="36" + cy="63" + r="15" /> + <ellipse + style="fill:#ffcc88;fill-opacity:1;stroke:#000000;stroke-width:0" + id="path4136-6-6" + cx="15" + cy="33" + rx="4" + ry="10" /> + <ellipse + style="fill:#ffcc88;fill-opacity:1;stroke:#000000;stroke-width:0" + id="path4136-6-6-1" + cx="15" + cy="53" + rx="4" + ry="10" /> + <rect + style="fill:#dd9955;fill-opacity:1;stroke:#000000;stroke-width:0" + id="rect4213" + width="65" + height="4" + x="11" + y="41" /> + <ellipse + style="fill:#ffcc88;fill-opacity:1;stroke:#000000;stroke-width:0" + id="path4136" + cx="100.5" + cy="42.5" + rx="74.5" + ry="34.5" /> + <ellipse + style="fill:#dd9955;fill-opacity:1;stroke:none;stroke-width:0" + id="path4416" + cx="70" + cy="37.5" + rx="15" + ry="12.5" /> + <ellipse + style="fill:#ffcc88;fill-opacity:1;stroke:none;stroke-width:0" + id="path4416-9" + cx="70" + cy="37.5" + rx="14" + ry="11.5" /> + <ellipse + style="fill:#dd9955;fill-opacity:1;stroke:none;stroke-width:0" + id="path4416-0" + cx="70" + cy="37.5" + rx="11" + ry="8.5" /> + <ellipse + style="fill:#dd9955;fill-opacity:1;stroke:none;stroke-width:0" + id="path4416-94" + cx="110" + cy="37.5" + rx="15" + ry="12.5" /> + <ellipse + style="fill:#ffcc88;fill-opacity:1;stroke:none;stroke-width:0" + id="path4416-9-1" + cx="110" + cy="37.5" + rx="14" + ry="11.5" /> + <ellipse + style="fill:#dd9955;fill-opacity:1;stroke:none;stroke-width:0" + id="path4416-0-1" + cx="110" + cy="37.5" + rx="11" + ry="8.5" /> + <ellipse + style="fill:#dd9955;fill-opacity:1;stroke:none;stroke-width:0" + id="path4416-94-2" + cx="150" + cy="37.5" + rx="15" + ry="12.5" /> + <ellipse + style="fill:#ffcc88;fill-opacity:1;stroke:none;stroke-width:0" + id="path4416-9-1-2" + cx="150" + cy="37.5" + rx="14" + ry="11.5" /> + <ellipse + style="fill:#dd9955;fill-opacity:1;stroke:none;stroke-width:0" + id="path4416-0-1-9" + cx="150" + cy="37.5" + rx="11" + ry="8.5" /> + <g + aria-label="U-Boot" + transform="matrix(1.4316296,0,0,1.4316493,154.42725,-33.934324)" + style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#004466;fill-opacity:1;stroke:none" + id="flowRoot840"> + <g + id="g3123"> + <path + style="stroke-width:0.99455768" + id="path1717" + d="m -107.86816,123.89647 h 3.9218 v 17.71485 q 0,4.6875 1.68078,6.75781 1.68077,2.05078 5.44802,2.05078 3.747933,0 5.428707,-2.05078 1.680773,-2.07031 1.680773,-6.75781 v -17.71485 h 3.921806 v 18.20313 q 0,5.70312 -2.80129,8.61328 -2.78197,2.91016 -8.229996,2.91016 -5.46734,0 -8.26863,-2.91016 -2.78197,-2.91016 -2.78197,-8.61328 z" + inkscape:connector-curvature="0" /> + <path + id="path1719" + style="fill:#dd9955;fill-opacity:1;stroke-width:0.99455768" + d="m -80.415526,140.49804 h 10.413069 v 3.20312 h -10.413069 z" + inkscape:connector-curvature="0" /> + <path + style="stroke-width:0.99455768" + id="path1721" + d="m -60.28488,139.13085 v 10.68359 h 6.259433 q 3.149036,0 4.655936,-1.30859 1.526221,-1.32813 1.526221,-4.04297 0,-2.73437 -1.526221,-4.02344 -1.5069,-1.30859 -4.655936,-1.30859 z m 0,-11.99219 v 8.78906 h 5.776453 q 2.859247,0 4.250232,-1.07421 1.410304,-1.09375 1.410304,-3.32032 0,-2.20703 -1.410304,-3.30078 -1.390985,-1.09375 -4.250232,-1.09375 z m -3.902486,-3.24219 h 9.968727 q 4.462744,0 6.877649,1.875 2.414905,1.875 2.414905,5.33204 0,2.67578 -1.236432,4.25781 -1.236431,1.58203 -3.632016,1.97265 2.878566,0.625 4.462744,2.61719 1.603496,1.97266 1.603496,4.94141 0,3.90625 -2.627416,6.03515 -2.627417,2.12891 -7.476545,2.12891 h -10.355112 z" + inkscape:connector-curvature="0" /> + <path + style="stroke-width:0.99455768" + id="path1723" + d="m -28.813841,133.70116 q -2.859247,0 -4.520701,2.26563 -1.661455,2.24609 -1.661455,6.17187 0,3.92578 1.642136,6.19141 1.661454,2.24609 4.54002,2.24609 2.839928,0 4.501383,-2.26562 1.661454,-2.26563 1.661454,-6.17188 0,-3.88672 -1.661454,-6.15234 -1.661455,-2.28516 -4.501383,-2.28516 z m 0,-3.04687 q 4.636617,0 7.283354,3.04687 2.646735,3.04688 2.646735,8.4375 0,5.3711 -2.646735,8.4375 -2.646737,3.04688 -7.283354,3.04688 -4.655936,0 -7.302672,-3.04688 -2.627416,-3.0664 -2.627416,-8.4375 0,-5.39062 2.627416,-8.4375 2.646736,-3.04687 7.302672,-3.04687 z" + inkscape:connector-curvature="0" /> + <path + style="stroke-width:0.99455768" + id="path1725" + d="m -4.6068351,133.70116 q -2.8592473,0 -4.5207018,2.26563 -1.6614541,2.24609 -1.6614541,6.17187 0,3.92578 1.6421348,6.19141 1.6614545,2.24609 4.5400211,2.24609 2.839928,0 4.50138246,-2.26562 1.66145444,-2.26563 1.66145444,-6.17188 0,-3.88672 -1.66145444,-6.15234 -1.66145446,-2.28516 -4.50138246,-2.28516 z m 0,-3.04687 q 4.63661713,0 7.2833528,3.04687 2.6467357,3.04688 2.6467357,8.4375 0,5.3711 -2.6467357,8.4375 -2.64673567,3.04688 -7.2833528,3.04688 -4.6559365,0 -7.3026719,-3.04688 -2.627417,-3.0664 -2.627417,-8.4375 0,-5.39062 2.627417,-8.4375 2.6467354,-3.04687 7.3026719,-3.04687 z" + inkscape:connector-curvature="0" /> + <path + style="stroke-width:0.99455768" + id="path1727" + d="m 14.731723,124.97069 v 6.21094 h 7.321991 v 2.79297 h -7.321991 v 11.875 q 0,2.67578 0.714811,3.4375 0.734132,0.76172 2.955843,0.76172 h 3.651337 v 3.00781 h -3.651337 q -4.114997,0 -5.679855,-1.54297 -1.564858,-1.5625 -1.564858,-5.66406 v -11.875 H 8.5495661 v -2.79297 h 2.6080979 v -6.21094 z" + inkscape:connector-curvature="0" /> + </g> + </g> + </g> +</svg> |
