diff --git a/annobin.spec b/annobin.spec index 9c3c642..f2f5ad0 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,8 +1,8 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.40 -Release: 1%{?dist} +Version: 13.05 +Release: 2%{?dist} License: GPL-3.0-or-later AND LGPL-2.0-or-later AND (GPL-2.0-or-later WITH GCC-exception-2.0) AND (LGPL-2.0-or-later WITH GCC-exception-2.0) AND GFDL-1.3-or-later URL: https://sourceware.org/annobin/ # Maintainer: nickc@redhat.com @@ -324,6 +324,10 @@ touch configure */configure Makefile.in */Makefile.in # Similarly we do not want to rebuild the documentation. touch doc/annobin.info +# Generate a source tarball for installation later with all the patches +# applied. This must be the last step in the prep section. +tar -C ../ -cJf ../latest-annobin.tar.xz %{name}-%{version} + #--------------------------------------------------------------------------------- %build @@ -342,8 +346,8 @@ CONFIG_ARGS="$CONFIG_ARGS --with-debuginfod" CONFIG_ARGS="$CONFIG_ARGS --without-debuginfod" %endif -%if %{with clangplugin} -CONFIG_ARGS="$CONFIG_ARGS --with-clang" +%if %{without clangplugin} +CONFIG_ARGS="$CONFIG_ARGS --without-clang-plugin" %endif %if %{without gccplugin} @@ -352,8 +356,8 @@ CONFIG_ARGS="$CONFIG_ARGS --without-gcc-plugin" CONFIG_ARGS="$CONFIG_ARGS --with-gcc-plugin-dir=%{ANNOBIN_GCC_PLUGIN_DIR}" %endif -%if %{with llvmplugin} -CONFIG_ARGS="$CONFIG_ARGS --with-llvm" +%if %{without llvmplugin} +CONFIG_ARGS="$CONFIG_ARGS --without-llvm-plugin" %endif %if %{without tests} @@ -363,34 +367,28 @@ CONFIG_ARGS="$CONFIG_ARGS --without-tests" %if %{without annocheck} CONFIG_ARGS="$CONFIG_ARGS --without-annocheck" %else -# Fedora supports AArch64's -mbranch-protection=bti, RHEL does not. -%if 0%{?fedora} != 0 export CFLAGS="$CFLAGS -DAARCH64_BRANCH_PROTECTION_SUPPORTED=1" %endif -%endif %set_build_flags export CFLAGS="$CFLAGS $RPM_OPT_FLAGS %build_cflags" export LDFLAGS="$LDFLAGS %build_ldflags" -# Set target-specific security options to be used when building the -# Clang and LLVM plugins. FIXME: There should be a better way to do -# this. +# Set target-specific options to be used when building the Clang and LLVM plugins. +# FIXME: There should be a better way to do this. %ifarch %{ix86} x86_64 export CLANG_TARGET_OPTIONS="-fcf-protection" %endif - %ifarch aarch64 -%if 0%{?fedora} != 0 export CLANG_TARGET_OPTIONS="-mbranch-protection=standard" %endif +%ifnarch riscv64 +export CLANG_TARGET_OPTIONS="$CLANG_TARGET_OPTIONS -flto" %endif -%ifarch ppc ppc64 ppc64le -# FIXME: This is a workaround for a problem with the Clang C++ headers. It should not be needed. -export CLANG_TARGET_OPTIONS="-mabi=ibmlongdouble" -%endif +# Override the default fortification level used by the Clang and LLVM plugins. +export PLUGIN_FORTIFY_OPTION="-D_FORTIFY_SOURCE=3" CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS" CXXFLAGS="$CFLAGS" %configure ${CONFIG_ARGS} || cat config.log @@ -424,12 +422,14 @@ rm %{_tmppath}/tmp_annobin.so %if %{with clangplugin} cp clang-plugin/annobin-for-clang.so %{_tmppath}/tmp_annobin.so -make -C clang-plugin all CXXFLAGS="$OPTS $BUILD_FLAGS" +# To enable verbose more in the plugin append the following: ANNOBIN="verbose" +make -C clang-plugin clean all CLANG_TARGET_OPTIONS="$CLANG_TARGET_OPTIONS $BUILD_FLAGS" PLUGIN_INSTALL_DIR=%{clang_plugin_dir} %endif %if %{with llvmplugin} cp llvm-plugin/annobin-for-llvm.so %{_tmppath}/tmp_annobin.so -make -C llvm-plugin all CXXFLAGS="$OPTS $BUILD_FLAGS" +# To enable verbose more in the plugin append the following: ANNOBIN_VERBOSE="true" +make -C llvm-plugin clean all CLANG_TARGET_OPTIONS="$CLANG_TARGET_OPTIONS $BUILD_FLAGS" PLUGIN_INSTALL_DIR=%{llvm_plugin_dir} %endif # endif for %%if {with_plugin_rebuild} @@ -457,7 +457,7 @@ cat `gcc --print-file-name=rpmver` > %{buildroot}/%{ANNOBIN_GCC_PLUGIN_DIR}/%{av # Also install a copy of the sources into the build tree. mkdir -p %{buildroot}%{annobin_source_dir} -cp %{_sourcedir}/%{annobin_sources} %{buildroot}%{annobin_source_dir}/latest-annobin.tar.xz +cp ../latest-annobin.tar.xz %{buildroot}%{annobin_source_dir}/latest-annobin.tar.xz %endif rm -f %{buildroot}%{_infodir}/dir @@ -488,6 +488,7 @@ make check %files docs %license COPYING3 LICENSE +%dir %{_datadir}/doc/annobin-plugin %exclude %{_datadir}/doc/annobin-plugin/COPYING3 %exclude %{_datadir}/doc/annobin-plugin/LICENSE %doc %{_datadir}/doc/annobin-plugin/annotation.proposal.txt @@ -517,6 +518,7 @@ make check %{ANNOBIN_GCC_PLUGIN_DIR}/annobin.so.0 %{ANNOBIN_GCC_PLUGIN_DIR}/annobin.so.0.0.0 %{ANNOBIN_GCC_PLUGIN_DIR}/%{aver} +%dir %{annobin_source_dir} %{annobin_source_dir}/latest-annobin.tar.xz %endif @@ -534,13 +536,248 @@ make check #--------------------------------------------------------------------------------- %changelog -* Tue Feb 13 2024 Nick Clifron - 12.30-1 +* Fri Jan 16 2026 Fedora Release Engineering - 13.05-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild + +* Thu Jan 15 2026 Nick Clifton - 13.05-1 +- Annocheck: Add .fc44 to list of known rpm file extensions. + +* Sat Dec 20 2025 Jakub Jelinek - 13.04-3 +- NVR bump to allow rebuild for new GCC in a side-tag. + +* Sat Dec 20 2025 Jakub Jelinek - 13.04-2 +- NVR bump to allow rebuild for new GCC in a side-tag. + +* Thu Dec 18 2025 Nick Clifton - 13.04-1 +- Annocheck: Fix compile time warnings from GCC-15 re: strchr returning a const char *. + +* Wed Nov 05 2025 Nick Clifton - 13.03-1 +- Annocheck: Skip production test for gcc libraries. (RHEL-123175) + +* Fri Oct 31 2025 Nick Clifton - 13.02-1 +- Annocheck: Update heuristic to detect gcc libraries. (RHEL-124869) + +* Thu Oct 23 2025 Nick Clifton - 13.01-1 +- Annocheck: Change FAIL for binaries built by a cross compiler to a MAYBE. (RHEL-123175) + +* Wed Aug 06 2025 Nick Clifton - 12.99-1 +- Annocheck: Improve detection of glibc static maths libraries. (RHEL-107470) + +* Wed Jul 23 2025 Fedora Release Engineering - 12.98-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Fri Jul 04 2025 Tulio Magno Quites Machado Filho - 12.98-1 +- Improve configure and meson files for consistent builds. + +* Thu Jun 19 2025 Nick Clifton - 12.97-1 +- Annocheck: Delete the temporary debug info directory after the tests have finished. + +* Wed Jun 04 2025 Nick Clifton - 12.96-1 +- Annocheck: Fix bugs in debug rpm location code. Add more glibc exceptions. (RHEL-95216) + +* Thu May 15 2025 Nick Clifton - 12.95-1 +- Annocheck: Improve performance with multiple debug info files and multiple files to scan. (#2366180) + +* Tue May 13 2025 Nick Clifton - 12.94-1 +- Annocheck: Update heuristic for detecting gcc files to cope with gcc 15. (#2365824) + +* Mon Mar 17 2025 Nick Clifton - 12.93-1 +- Annocheck: Fix test for GO revision. (RHEL-56031) + +* Fri Feb 14 2025 Nick Clifton - 12.92-1 +- Annocheck: Do not rely upon libelf's ability to detect links to separate debuginfo files. (RHEL-79264) + +* Thu Feb 13 2025 Nick Clifton - 12.91-1 +- Annocheck: Fix resource leak. (RHEL-79253) + +* Wed Feb 12 2025 Nick Clifton - 12.90-1 +- Annocheck: Fix double free. Add special handling for COMBOOT modules. + +* Tue Feb 11 2025 Nick Clifton - 12.89-1 +- Annocheck: Improve diagnostics when a separate debug info file cannot be found. + +* Mon Feb 03 2025 Nick Clifton - 12.88-1 +- Annocheck: Look for -fstack-clash-protection in DW_AT_producer string. (RHEL-77328) + +* Tue Jan 28 2025 Nick Clifton - 12.87-1 +- Annocheck: Fix locating string notes (again). Add exception for glibc benchmark tests. (RHEL-76456) + +* Mon Jan 27 2025 Nick Clifton - 12.86-1 +- Annocheck: Add crtoffloadtableS.o to list of known gcc binaries. (RHEL-760404) + +* Mon Jan 27 2025 Nick Clifton - 12.85-1 +- Annocheck: Fix the --debug-dir option. + +* Thu Jan 23 2025 Nick Clifton - 12.84-1 +- Annocheck: Fix corrupt warning message when unable to locate separate debug info files. + +* Wed Jan 22 2025 Nick Clifton - 12.83-1 +- Annocheck: Remove spurious debugging messages. + +* Wed Jan 22 2025 Nick Clifton - 12.82-1 +- Annocheck: Always look for annobin notes in separate debug info files. (RHEL-75778) + +* Thu Jan 16 2025 Nick Clifton - 12.81-1 +- Annocheck: Support multiple --debug-rpm and --debug-file options. (RHEL-73349) + +* Sat Jan 11 2025 Jakub Jelinek - 12.80-2 +- NVR bump to allow rebuild for new GCC in a side-tag. + +* Fri Dec 13 2024 Nick Clifton - 12.80-1 +- Annocheck: Add support for sys-root'ed glibc packages. (RHEL-71296) + +* Tue Dec 10 2024 Nick Clifton - 12.79-1 +- GCC Plugin: Tidy up use of gcc's diagnoatic headers. (#32429) +- Testsuite: Use configured compiler when running tests. + +* Mon Dec 09 2024 Nick Clifton - 12.78-1 +- GCC Plugin: Fix building with gcc 15. (#32429) + +* Fri Nov 15 2024 Nick Clifton - 12.77-1 +- Annocheck: Fix overly long debug messages. + +* Fri Nov 15 2024 Nick Clifton - 12.76-1 +- Annocheck: Rename rwx-seg test to load-segments. Add more checks. Add check for gaps as a future fail. +- Annocheck: Add --no-allow-excpetions to disable exceptions for known special binaries. +- Annocheck: Add --enable-future to enable future fail components in normal tests. +- Annocheck: Fix bug preventing the inclusion of the rpm name in reports. + +* Tue Nov 12 2024 Nick Clifton - 12.75-1 +- Annocheck: Add more exceptions for gcc binaries. (RHEL-33365) +- Annocheck: Add --skip-passes option. + +* Wed Nov 06 2024 Nick Clifton - 12.74-1 +- Annocheck: Add exceptions for gcc binaries. (RHEL-33365) + +* Tue Nov 05 2024 Nick Clifton - 12.73-1 +- Annocheck: Skip property note test for i386 binaries created by LLVM. (#2323797) + +* Fri Nov 01 2024 Nick Clifton - 12.72-1 +- Annocheck: Skip FORTIFY and GLIBC_ASSERTIONS tests for LLVM produced binaries with unparseable DW_AT_producer attributes in their DWARF debug info. (RHEL-65411) + +* Mon Oct 14 2024 Nick Clifton - 12.71-1 +- GCC Plugin: Change type of the .annobin.notes section from SHT_STRTAB to SHT_PROGBITS. + +* Tue Aug 13 2024 Nick Clifton - 12.70-1 +- Clang & LLVM Plugins: Include install directory in binary. (RHEL-54069) + +* Mon Aug 12 2024 Nick Clifton - 12.69-1 +- BuiltBy: Fix seg-fault when comparing language version strings. (RHEL-53497) + +* Wed Aug 07 2024 Nick Clifton - 12.67-1 +- Annocheck: Stop spurious assembler warnings. (RHEL-53213) +- Annocheck: Stop warnings about known gaps. (RHEL-53218) + +* Fri Aug 02 2024 Nick Clifton - 12.66-1 +- Annocheck: Fix stack realign test. (#2302427) + +* Mon Jul 29 2024 Nick Clifton - 12.65-1 +- Annocheck: Fix recording arguments for later re-use. (RHEL-50802) + +* Fri Jul 26 2024 Nick Clifton - 12.64-1 +- GCC Plugin: Fix building AArch64 components with gcc earlier than 11.3. + +* Mon Jul 22 2024 Nick Clifton - 12.63-1 +- Annocheck: Add improvements to the builtby utility. + +* Wed Jul 17 2024 Fedora Release Engineering - 12.62-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Mon Jul 08 2024 Nick Clifton - 12.62-1 +- Annocheck: Add support for ADA binaries. +- Annocheck: Add support for binaries built from more than two high level source languages. +- Annocheck: Add support for object files containing no executable code. +- Annocheck: Do not FAIL LLVM compiled binaries that have not been built with sanitize-cfi and/or sanitize-safe-stack. + +* Wed Jun 26 2024 Nick Clifton - 12.60-1 +- Annocheck: Add support for Fortran binaries. + +* Tue Jun 11 2024 Nick Clifton - 12.59-1 +- Annocheck: Add heuristic for detecting parts of the CGO runtime library. + +* Mon Jun 10 2024 Nick Clifton - 12.58-1 +- Annocheck: Add improvements for handling Clang runtime binaries. + +* Tue Jun 04 2024 Nick Clifton - 12.57-1 +- Annocheck: Add tweaks for mixed Rust/C binaries. (#2284605) +- Annocheck: Add more glibc source file names. + +* Mon May 20 2024 Nick Clifton - 12.55-1 +- Annocheck: Skip GAPS test for GO binaries. (RHEL-36308) + +* Mon May 20 2024 Nick Clifton - 12.54-2 +- Spec File: Add annobin plugin document directory to the files section. (#2279779) + +* Tue May 14 2024 Nick Clifton - 12.54-1 +- Annocheck: Remove some false positives for Rust binaries. (#2280239) + +* Thu May 09 2024 Nick Clifton - 12.53-2 +- Spec File: Add the annobin source directory to the files section. (#2279779) + +* Thu May 09 2024 Nick Clifton - 12.53-1 +- Annocheck: Defer passing the branch protection test until all notes have been checked. +- GCC Plugin: Add extra code for detecting the branch protection setting. (RHEL-35958) + +* Thu Apr 25 2024 Nick Clifton - 12.52-1 +- Annocheck: Add OpenSSL Engine test. (PTG-319) + +* Tue Apr 23 2024 Nick Clifton - 12.51-1 +- Annocheck: Test for gaps even when only one note is present. + +* Mon Apr 22 2024 Nick Clifton - 12.50-1 +- Annocheck: Skip AArch64 branch protection test for GO binaries. + +* Thu Apr 18 2024 Nick Clifton - 12.49-1 +- GCC Plugin: Disable active check for -Wimplicit-int for non-C sources. (#2275884) +- Annocheck: Ignore stack checks for AMD GPU binaries. +- Annocheck: Do not produce FAIL result for i686 binaries in the RHEL-10 profile. +- Annocheck: Test for __stack_chk_guard being writeable. + +* Tue Apr 02 2024 Nick Clifton - 12.48-1 +- Annocheck: Update heuristics for detecting glibc code in executables. (RHEL-30579) + +* Wed Mar 27 2024 Nick Clifton - 12.47-1 +- Clang & LLVM Plugins: Allow environment to override fortification level. (RHEL-30579) +- Spec File: Override fortification level and set it to 3. + +* Mon Mar 25 2024 Tulio Magno Quites Machado Filho - 12.46-1 +- Annocheck: Improve detection of -mbranch-protection option. +- Clang Plugin: Add global-file-syms option. +- LLVM Plugin: Add global-file-syms option. +- Plugins: Add support for ANNOBIN environment variable. + +* Thu Mar 21 2024 Nick Clifton - 12.45-1 +- GCC Plugin: Fix bug extracing the value of target specific command line options. + +* Wed Mar 06 2024 Nick Clifton - 12.44-1 +- Configure: Remove check for FrontendPluginRegistry.h header as it is stored in a non-standard location on Debian systems. +- Debuginfod test: Allow for the libdwfl library silently contacting the debuginfod server. + +* Tue Mar 05 2024 Nick Clifton - 12.43-1 +- LLVM Plugin: Use llvm-config to get the correct paths and options for building executables. +- Clang Plugin: Likewise. +- Enable silent rules for most building. +- Annocheck: Correctly extract DWARF attributes from DT_REL files. + +* Fri Mar 01 2024 Nick Clifton - 12.42-1 +- Annocheck: Improve heuristics for locating debug info files. (#2267097) +- Configure: Harmonize configure options. + +* Tue Feb 27 2024 Nick Clifton - 12.41-1 +- Clang Plugin: Fix building with Clang 18. (#31414) +- GCC Plugin: Add support for MIPS specific target functions. +- GCC Plugin: Use .dc.a for address expressions in 64-bit ELF format notes. + +* Tue Feb 20 2024 Tulio Magno Quites Machado Filho - 12.40-2 +- Spec File: Remove a workaround for ppc64le. + +* Tue Feb 13 2024 Nick Clifton - 12.40-1 - Annocheck: Improve heuristic for skipping LTO and FORTIFY tests. (#2264000) -* Fri Feb 09 2024 Nick Clifron - 12.39-1 +* Fri Feb 09 2024 Nick Clifton - 12.39-1 - Annocheck: Also skip property note test for i686 binaries. (#2258571) -* Tue Jan 23 2024 Nick Clifron - 12.38-1 +* Tue Jan 23 2024 Nick Clifton - 12.38-1 - Annocheck: Also skip the entry point test for i686 binaries. (#2258571) * Mon Jan 22 2024 Fedora Release Engineering - 12.37-3 @@ -549,67 +786,67 @@ make check * Fri Jan 19 2024 Fedora Release Engineering - 12.37-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild -* Wed Jan 17 2024 Nick Clifron - 12.37-1 -- GCC Plugin: DO not use section groups with string format notes. +* Wed Jan 17 2024 Nick Clifton - 12.37-1 +- GCC Plugin: Do not use section groups with string format notes. -* Tue Jan 16 2024 Nick Clifron - 12.36-2 +* Tue Jan 16 2024 Nick Clifton - 12.36-2 - Spec File: NVR bump in order to allow building in side tag. -* Tue Jan 16 2024 Nick Clifron - 12.36-1 +* Tue Jan 16 2024 Nick Clifton - 12.36-1 - Annocheck: Disable cf-protection test for i686 architecture. (#2258571) -* Mon Jan 15 2024 Nick Clifron - 12.35-4 +* Mon Jan 15 2024 Nick Clifton - 12.35-4 - Spec File: NVR bump in order to allow building in side tag. -* Mon Jan 15 2024 Nick Clifron - 12.35-3 +* Mon Jan 15 2024 Nick Clifton - 12.35-3 - Spec File: Disable hard gcc check in order to allow builds with new version of gcc. * Thu Jan 11 2024 Songsong Zhang - 12.35-2 - Spec File: Do not install annocheck.1.gz when annocheck is disabled. -* Thu Jan 04 2024 Nick Clifron - 12.35-1 +* Thu Jan 04 2024 Nick Clifton - 12.35-1 - Annocheck: Improve detection of FIPS compliant GO binaries. -* Fri Dec 15 2023 Nick Clifron - 12.34-1 +* Fri Dec 15 2023 Nick Clifton - 12.34-1 - GCC Plugin: Fix recording of the -Wimplicit-int and -Wimplicit-function-declaration warnings. Add active checks for when they are deliberately disabled. -* Mon Dec 11 2023 Nick Clifron - 12.33-1 +* Mon Dec 11 2023 Nick Clifton - 12.33-1 - Tests: Fix implicit-values test so that it will compile with gcc 14+. -* Fri Nov 24 2023 Nick Clifron - 12.32-1 +* Fri Nov 24 2023 Nick Clifton - 12.32-1 - GCC Plugin: Add support for -fhardended. -* Wed Nov 15 2023 Nick Clifron - 12.31-1 +* Wed Nov 15 2023 Nick Clifton - 12.31-1 - Update glibc detection heuristics for PPC64. (RHEL-16453) -* Wed Nov 01 2023 Nick Clifron - 12.30-1 +* Wed Nov 01 2023 Nick Clifton - 12.30-1 - Fix another atexit test failure. (#2247481) -* Mon Oct 30 2023 Nick Clifron - 12.29-1 +* Mon Oct 30 2023 Nick Clifton - 12.29-1 - Fix atexit test failure. - Notes: Add support for string format notes. -* Fri Oct 06 2023 Nick Clifron - 12.28-1 +* Fri Oct 06 2023 Nick Clifton - 12.28-1 - GCC Plugin: Record settings of -Wstrict-flex-arrays and -fstrict-flex-arrays - Annobin: Add future test of these options. -* Tue Sep 26 2023 Nick Clifron - 12.27-1 +* Tue Sep 26 2023 Nick Clifton - 12.27-1 - GCC Plugin: Record settings of -Wimplicit-int and -Wimplicit-function-declaration. - Annobin: Add test for these warnings. -* Wed Sep 06 2023 Nick Clifron - 12.26-1 +* Wed Sep 06 2023 Nick Clifton - 12.26-1 - LLVM Plugin: Fix building with LLVM version 17. -* Wed Aug 30 2023 Nick Clifron - 12.25-1 +* Wed Aug 30 2023 Nick Clifton - 12.25-1 - GCC Plugin: Enable string note format by default. -* Fri Aug 04 2023 Nick Clifron - 12.24-1 +* Fri Aug 04 2023 Nick Clifton - 12.24-1 - Annocheck: Change GO FIPS test to look for CGO_ENABLED markers. -* Mon Jul 31 2023 Nick Clifron - 12.23-1 +* Mon Jul 31 2023 Nick Clifton - 12.23-1 - Annocheck: Add test for FIPS compliant GO binaries. -* Wed Jul 26 2023 Nick Clifron - 12.22-1 +* Wed Jul 26 2023 Nick Clifton - 12.22-1 - Annocheck: Fix double free. (#2226749) * Wed Jul 19 2023 Fedora Release Engineering - 12.21-2 @@ -1011,7 +1248,7 @@ make check * Fri Dec 17 2021 Nick Clifton - 10.39-1 - Annocheck: Add /usr/lib/ld-linux-aarch64.so.1 to the list of known glibc binaries. (#2033255) - Doc: Note that ENDBR is only needed as the landing pad for indirect branches/calls. (#28705) -- Spec File: Store full gcc version release string in plugin info file. (#2030671) +- Spec File: Store full gcc version release string in plugin info file. (#2030671) * Tue Dec 14 2021 Nick Clifton - 10.38-1 - Annocheck: Add special case for x86_64 RHEL-7 gaps. (#2031133) diff --git a/sources b/sources index 780f6dd..ae2a779 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.40.tar.xz) = f6219711771d2b84fb5b7afbcbd34a4e1901119ba2dcedb8817ec6b039813dec9b7f1194bd4f71ba802a1c32502f8fd9b995cef20e4724bbcd42516927a7aa0c +SHA512 (annobin-13.05.tar.xz) = 07bc023018e3f456fae470b271915bde2e1ff367ee8bb58adb74255023ae59e8c45ced8e4bd2130bf8a496966d986bca9866e054019f6ca4660d78c129b6532f