Date: Tue, 7 Feb 2023 17:35:18 GMT From: Palle Girgensohn <girgen@FreeBSD.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org Subject: git: 7d09faf2fbc5 - main - sysutils/fluent-bit: update to 2.0.9 Message-ID: <202302071735.317HZIhO004887@gitrepo.freebsd.org>
next in thread | raw e-mail | index | archive | help
The branch main has been updated by girgen: URL: https://cgit.FreeBSD.org/ports/commit/?id=7d09faf2fbc558c3157f71159f31be312009ada3 commit 7d09faf2fbc558c3157f71159f31be312009ada3 Author: Palle Girgensohn <girgen@FreeBSD.org> AuthorDate: 2023-02-07 17:25:38 +0000 Commit: Palle Girgensohn <girgen@FreeBSD.org> CommitDate: 2023-02-07 17:34:58 +0000 sysutils/fluent-bit: update to 2.0.9 Use FreeBSD implementation from WAMR, commit 2953614cb, that is a dependency for fluent-bit. [1] [1] https://github.com/bytecodealliance/wasm-micro-runtime/issues/1661 Leave luajit off until I find a way for the port not to install its own luajit rather than using the FreeBSD port for it. Release notes: https://fluentbit.io/announcements/ --- sysutils/fluent-bit/Makefile | 4 +- sysutils/fluent-bit/distinfo | 6 +- .../files/patch-lib__luajit__src__Makefile | 4 +- .../files/patch-lib__wasm_micro_runtime_WAMR | 366 +++++++++++++++++++++ sysutils/fluent-bit/pkg-plist | 17 +- 5 files changed, 388 insertions(+), 9 deletions(-) diff --git a/sysutils/fluent-bit/Makefile b/sysutils/fluent-bit/Makefile index 745c71b4631d..9ede90a03bdb 100644 --- a/sysutils/fluent-bit/Makefile +++ b/sysutils/fluent-bit/Makefile @@ -1,6 +1,6 @@ PORTNAME= fluent-bit DISTVERSIONPREFIX= v -DISTVERSION= 1.9.9 +DISTVERSION= 2.0.9 CATEGORIES= sysutils MAINTAINER= girgen@FreeBSD.org @@ -22,7 +22,7 @@ OPTIONS_DEFAULT= SSL LIB_DEPENDS= libyaml.so:textproc/libyaml LDFLAGS+= -lexecinfo -L${LOCALBASE}/lib -CMAKE_ARGS= -DFLB_DEBUG=Off -DFLB_TRACE=Off +CMAKE_ARGS= -DFLB_DEBUG=Off -DFLB_TRACE=Off -DFLB_LUAJIT=Off CFLAGS+= -I${LOCALBASE}/include SSL_USES= ssl diff --git a/sysutils/fluent-bit/distinfo b/sysutils/fluent-bit/distinfo index d691b9a49cf9..9c33dab6b03a 100644 --- a/sysutils/fluent-bit/distinfo +++ b/sysutils/fluent-bit/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1664792786 -SHA256 (fluent-fluent-bit-v1.9.9_GH0.tar.gz) = d58dc649f6b4e2433711666ae68c8f443c0542801eb6241b21d245fb421daced -SIZE (fluent-fluent-bit-v1.9.9_GH0.tar.gz) = 20501970 +TIMESTAMP = 1675688824 +SHA256 (fluent-fluent-bit-v2.0.9_GH0.tar.gz) = 393ad4a6ced48c327607653d610ef273843085a17b6e5c8013877abdf31e6945 +SIZE (fluent-fluent-bit-v2.0.9_GH0.tar.gz) = 22404154 diff --git a/sysutils/fluent-bit/files/patch-lib__luajit__src__Makefile b/sysutils/fluent-bit/files/patch-lib__luajit__src__Makefile index f22ee9bdf593..b03f251ccc8f 100644 --- a/sysutils/fluent-bit/files/patch-lib__luajit__src__Makefile +++ b/sysutils/fluent-bit/files/patch-lib__luajit__src__Makefile @@ -1,5 +1,5 @@ ---- lib/luajit-2.1.0-1e66d0f/src/Makefile.orig 2021-08-10 08:16:04.406803000 +0200 -+++ lib/luajit-2.1.0-1e66d0f/src/Makefile 2021-08-10 08:16:22.458940000 +0200 +--- lib/luajit-3065c9/src/Makefile.orig 2022-10-27 09:22:06.694200000 +0200 ++++ lib/luajit-3065c9/src/Makefile 2022-10-27 09:22:37.928286000 +0200 @@ -24,10 +24,10 @@ # removing the '#' in front of them. Make sure you force a full recompile # with "make clean", followed by "make" if you change any options. diff --git a/sysutils/fluent-bit/files/patch-lib__wasm_micro_runtime_WAMR b/sysutils/fluent-bit/files/patch-lib__wasm_micro_runtime_WAMR new file mode 100644 index 000000000000..7e4528d1e571 --- /dev/null +++ b/sysutils/fluent-bit/files/patch-lib__wasm_micro_runtime_WAMR @@ -0,0 +1,366 @@ +--- lib/wasm-micro-runtime-WAMR-1.1.1/core/shared/platform/freebsd/platform_internal.h.orig 2023-02-06 17:50:39.755820000 +0100 ++++ lib/wasm-micro-runtime-WAMR-1.1.1/core/shared/platform/freebsd/platform_internal.h 2023-02-06 17:50:39.756565000 +0100 +@@ -0,0 +1,108 @@ ++/* ++ * Copyright (C) 2019 Intel Corporation. All rights reserved. ++ * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++ */ ++ ++#ifndef _PLATFORM_INTERNAL_H ++#define _PLATFORM_INTERNAL_H ++ ++#include <inttypes.h> ++#include <stdbool.h> ++#include <assert.h> ++#include <time.h> ++#include <string.h> ++#include <stdio.h> ++#include <stdlib.h> ++#include <math.h> ++#include <stdarg.h> ++#include <ctype.h> ++#include <pthread.h> ++#include <signal.h> ++#include <semaphore.h> ++#include <limits.h> ++#include <dirent.h> ++#include <fcntl.h> ++#include <unistd.h> ++#include <poll.h> ++#include <sched.h> ++#include <errno.h> ++#include <netinet/in.h> ++#include <sys/types.h> ++#include <sys/socket.h> ++#include <sys/stat.h> ++#include <sys/mman.h> ++#include <sys/time.h> ++#include <sys/uio.h> ++#include <sys/ioctl.h> ++#include <sys/socket.h> ++#include <sys/resource.h> ++ ++#ifdef __cplusplus ++extern "C" { ++#endif ++ ++#ifndef BH_PLATFORM_FREEBSD ++#define BH_PLATFORM_FREEBSD ++#endif ++ ++#define BH_HAS_DLFCN 1 ++ ++/* Stack size of applet threads's native part. */ ++#define BH_APPLET_PRESERVED_STACK_SIZE (32 * 1024) ++ ++/* Default thread priority */ ++#define BH_THREAD_DEFAULT_PRIORITY 0 ++ ++typedef pthread_t korp_tid; ++typedef pthread_mutex_t korp_mutex; ++typedef pthread_cond_t korp_cond; ++typedef pthread_t korp_thread; ++typedef sem_t korp_sem; ++ ++#define OS_THREAD_MUTEX_INITIALIZER PTHREAD_MUTEX_INITIALIZER ++ ++#define os_thread_local_attribute __thread ++ ++#define bh_socket_t int ++ ++#if WASM_DISABLE_HW_BOUND_CHECK == 0 ++#if defined(BUILD_TARGET_X86_64) || defined(BUILD_TARGET_AMD_64) \ ++ || defined(BUILD_TARGET_AARCH64) || defined(BUILD_TARGET_RISCV64_LP64D) \ ++ || defined(BUILD_TARGET_RISCV64_LP64) ++ ++#include <setjmp.h> ++ ++#define OS_ENABLE_HW_BOUND_CHECK ++ ++typedef jmp_buf korp_jmpbuf; ++ ++#define os_setjmp setjmp ++#define os_longjmp longjmp ++#define os_alloca alloca ++ ++#define os_getpagesize getpagesize ++ ++typedef void (*os_signal_handler)(void *sig_addr); ++ ++int ++os_thread_signal_init(os_signal_handler handler); ++ ++void ++os_thread_signal_destroy(); ++ ++bool ++os_thread_signal_inited(); ++ ++void ++os_signal_unmask(); ++ ++void ++os_sigreturn(); ++#endif /* end of BUILD_TARGET_X86_64/AMD_64/AARCH64/RISCV64 */ ++#endif /* end of WASM_DISABLE_HW_BOUND_CHECK */ ++ ++#ifdef __cplusplus ++} ++#endif ++ ++#endif /* end of _PLATFORM_INTERNAL_H */ +--- lib/wasm-micro-runtime-WAMR-1.1.1/core/shared/platform/freebsd/shared_platform.cmake.orig 2023-02-06 17:50:39.756698000 +0100 ++++ lib/wasm-micro-runtime-WAMR-1.1.1/core/shared/platform/freebsd/shared_platform.cmake 2023-02-06 17:50:39.756932000 +0100 +@@ -0,0 +1,18 @@ ++# Copyright (C) 2019 Intel Corporation. All rights reserved. ++# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++ ++set (PLATFORM_SHARED_DIR ${CMAKE_CURRENT_LIST_DIR}) ++ ++add_definitions(-DBH_PLATFORM_FREEBSD) ++ ++include_directories(${PLATFORM_SHARED_DIR}) ++include_directories(${PLATFORM_SHARED_DIR}/../include) ++ ++include (${CMAKE_CURRENT_LIST_DIR}/../common/posix/platform_api_posix.cmake) ++ ++file (GLOB_RECURSE source_all ${PLATFORM_SHARED_DIR}/*.c) ++ ++set (PLATFORM_SHARED_SOURCE ${source_all} ${PLATFORM_COMMON_POSIX_SOURCE}) ++ ++file (GLOB header ${PLATFORM_SHARED_DIR}/../include/*.h) ++LIST (APPEND RUNTIME_LIB_HEADER_LIST ${header}) +--- lib/wasm-micro-runtime-WAMR-1.1.1/core/shared/platform/freebsd/platform_init.c.orig 2023-02-06 17:50:39.755166000 +0100 ++++ lib/wasm-micro-runtime-WAMR-1.1.1/core/shared/platform/freebsd/platform_init.c 2023-02-06 17:50:39.755673000 +0100 +@@ -0,0 +1,43 @@ ++/* ++ * Copyright (C) 2019 Intel Corporation. All rights reserved. ++ * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++ */ ++ ++#include "platform_api_vmcore.h" ++ ++int ++bh_platform_init() ++{ ++ return 0; ++} ++ ++void ++bh_platform_destroy() ++{} ++ ++int ++os_printf(const char *format, ...) ++{ ++ int ret = 0; ++ va_list ap; ++ ++ va_start(ap, format); ++#ifndef BH_VPRINTF ++ ret += vprintf(format, ap); ++#else ++ ret += BH_VPRINTF(format, ap); ++#endif ++ va_end(ap); ++ ++ return ret; ++} ++ ++int ++os_vprintf(const char *format, va_list ap) ++{ ++#ifndef BH_VPRINTF ++ return vprintf(format, ap); ++#else ++ return BH_VPRINTF(format, ap); ++#endif ++} +--- lib/wasm-micro-runtime-WAMR-1.1.1/product-mini/platforms/freebsd/main.c.orig 2023-02-06 17:50:39.759486000 +0100 ++++ lib/wasm-micro-runtime-WAMR-1.1.1/product-mini/platforms/freebsd/main.c 2023-02-06 17:50:39.759658000 +0100 +@@ -0,0 +1,6 @@ ++/* ++ * Copyright (C) 2019 Intel Corporation. All rights reserved. ++ * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++ */ ++ ++#include "../posix/main.c" +--- lib/wasm-micro-runtime-WAMR-1.1.1/product-mini/platforms/freebsd/CMakeLists.txt.orig 2023-02-06 17:50:39.757869000 +0100 ++++ lib/wasm-micro-runtime-WAMR-1.1.1/product-mini/platforms/freebsd/CMakeLists.txt 2023-02-06 17:50:39.758741000 +0100 +@@ -0,0 +1,132 @@ ++# Copyright (C) 2019 Intel Corporation. All rights reserved. ++# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++ ++cmake_minimum_required (VERSION 2.9) ++ ++project (iwasm) ++ ++set (WAMR_BUILD_PLATFORM "freebsd") ++ ++# Reset default linker flags ++set (CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "") ++set (CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS "") ++ ++# Set WAMR_BUILD_TARGET, currently values supported: ++# "X86_64", "AMD_64", "X86_32", "AARCH64[sub]", "ARM[sub]", "THUMB[sub]", ++# "MIPS", "XTENSA", "RISCV64[sub]", "RISCV32[sub]" ++if (NOT DEFINED WAMR_BUILD_TARGET) ++ if (CMAKE_SYSTEM_PROCESSOR MATCHES "^(arm64|aarch64)") ++ set (WAMR_BUILD_TARGET "AARCH64") ++ elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL "riscv64") ++ set (WAMR_BUILD_TARGET "RISCV64") ++ elseif (CMAKE_SIZEOF_VOID_P EQUAL 8) ++ # Build as X86_64 by default in 64-bit platform ++ set (WAMR_BUILD_TARGET "X86_64") ++ elseif (CMAKE_SIZEOF_VOID_P EQUAL 4) ++ # Build as X86_32 by default in 32-bit platform ++ set (WAMR_BUILD_TARGET "X86_32") ++ else () ++ message(SEND_ERROR "Unsupported build target platform!") ++ endif () ++endif () ++ ++if (NOT CMAKE_BUILD_TYPE) ++ set(CMAKE_BUILD_TYPE Release) ++endif () ++ ++set(CMAKE_CXX_STANDARD 14) ++ ++if (NOT DEFINED WAMR_BUILD_INTERP) ++ # Enable Interpreter by default ++ set (WAMR_BUILD_INTERP 1) ++endif () ++ ++if (NOT DEFINED WAMR_BUILD_AOT) ++ # Enable AOT by default. ++ set (WAMR_BUILD_AOT 1) ++endif () ++ ++if (NOT DEFINED WAMR_BUILD_JIT) ++ # Disable JIT by default. ++ set (WAMR_BUILD_JIT 0) ++endif () ++ ++if (NOT DEFINED WAMR_BUILD_FAST_JIT) ++ # Disable Fast JIT by default ++ set (WAMR_BUILD_FAST_JIT 0) ++endif () ++ ++if (NOT DEFINED WAMR_BUILD_LIBC_BUILTIN) ++ # Enable libc builtin support by default ++ set (WAMR_BUILD_LIBC_BUILTIN 1) ++endif () ++ ++if (NOT DEFINED WAMR_BUILD_LIBC_WASI) ++ # Enable libc wasi support by default ++ set (WAMR_BUILD_LIBC_WASI 1) ++endif () ++ ++if (NOT DEFINED WAMR_BUILD_FAST_INTERP) ++ # Enable fast interpreter ++ set (WAMR_BUILD_FAST_INTERP 1) ++endif () ++ ++if (NOT DEFINED WAMR_BUILD_MULTI_MODULE) ++ # Disable multiple module by default ++ set (WAMR_BUILD_MULTI_MODULE 0) ++endif () ++ ++if (NOT DEFINED WAMR_BUILD_LIB_PTHREAD) ++ # Disable pthread library by default ++ set (WAMR_BUILD_LIB_PTHREAD 0) ++endif () ++ ++if (NOT DEFINED WAMR_BUILD_MINI_LOADER) ++ # Disable wasm mini loader by default ++ set (WAMR_BUILD_MINI_LOADER 0) ++endif () ++ ++if (NOT DEFINED WAMR_BUILD_SIMD) ++ # Enable SIMD by default ++ set (WAMR_BUILD_SIMD 1) ++endif () ++ ++if (NOT DEFINED WAMR_BUILD_DEBUG_INTERP) ++ # Disable Debug feature by default ++ set (WAMR_BUILD_DEBUG_INTERP 0) ++endif () ++ ++if (WAMR_BUILD_DEBUG_INTERP EQUAL 1) ++ set (WAMR_BUILD_FAST_INTERP 0) ++ set (WAMR_BUILD_MINI_LOADER 0) ++ set (WAMR_BUILD_SIMD 0) ++endif () ++ ++set (WAMR_DISABLE_HW_BOUND_CHECK 1) ++ ++set (CMAKE_SHARED_LINKER_FLAGS "-Wl") ++set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}") ++ ++set (CMAKE_MACOSX_RPATH True) ++ ++set (WAMR_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../..) ++ ++include (${WAMR_ROOT_DIR}/build-scripts/runtime_lib.cmake) ++add_library(vmlib ${WAMR_RUNTIME_LIB_SOURCE}) ++ ++include (${SHARED_DIR}/utils/uncommon/shared_uncommon.cmake) ++ ++add_executable (iwasm main.c ${UNCOMMON_SHARED_SOURCE}) ++ ++install (TARGETS iwasm DESTINATION bin) ++ ++target_link_libraries (iwasm vmlib ${LLVM_AVAILABLE_LIBS} ${UV_A_LIBS} -lm -ldl -lpthread) ++ ++add_library (libiwasm SHARED ${WAMR_RUNTIME_LIB_SOURCE}) ++ ++install (TARGETS libiwasm DESTINATION lib) ++ ++set_target_properties (libiwasm PROPERTIES OUTPUT_NAME iwasm) ++ ++target_link_libraries (libiwasm ${LLVM_AVAILABLE_LIBS} ${UV_A_LIBS} -lm -ldl -lpthread) ++ +--- lib/wasm-micro-runtime-WAMR-1.1.1/product-mini/platforms/freebsd/build_llvm.sh.orig 2023-02-06 17:50:39.759198000 +0100 ++++ lib/wasm-micro-runtime-WAMR-1.1.1/product-mini/platforms/freebsd/build_llvm.sh 2023-02-06 17:50:39.759370000 +0100 +@@ -0,0 +1,6 @@ ++#!/bin/sh ++ ++# Copyright (C) 2020 Intel Corporation. All rights reserved. ++# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++ ++/usr/bin/env python3 ../../../build-scripts/build_llvm.py "$@" +--- lib/wasm-micro-runtime-WAMR-1.1.1/product-mini/platforms/freebsd/build_jit.sh.orig 2023-02-06 17:50:39.758868000 +0100 ++++ lib/wasm-micro-runtime-WAMR-1.1.1/product-mini/platforms/freebsd/build_jit.sh 2023-02-06 17:50:39.759076000 +0100 +@@ -0,0 +1,11 @@ ++#!/bin/sh ++ ++# Copyright (C) 2019 Intel Corporation. All rights reserved. ++# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception ++ ++rm -fr build && mkdir build ++cd build ++cmake .. -DWAMR_BUILD_JIT=1 ++nproc=$(sysctl -n hw.ncpu) ++make -j ${nproc} ++cd .. +--- lib/wasm-micro-runtime-WAMR-1.1.1/doc/build_wamr.md.orig 2023-02-01 18:09:22.000000000 +0100 ++++ lib/wasm-micro-runtime-WAMR-1.1.1/doc/build_wamr.md 2023-02-06 17:50:39.757713000 +0100 +@@ -610,3 +610,18 @@ + libvmlib.a ) and an executable binary (*iwasm*) and copy *iwasm* to + *build_out*. All original generated files are still under + *product-mini/platforms/linux/build*. ++ ++FreeBSD ++------------------------- ++First, install the dependent packages: ++```shell ++sudo pkg install gcc cmake wget ++``` ++ ++Then you can run the following commands to build iwasm with default configurations: ++```shell ++cd product-mini/platforms/freebsd ++mkdir build && cd build ++cmake .. ++make ++``` diff --git a/sysutils/fluent-bit/pkg-plist b/sysutils/fluent-bit/pkg-plist index d99f310b84b4..d49a0da4d813 100644 --- a/sysutils/fluent-bit/pkg-plist +++ b/sysutils/fluent-bit/pkg-plist @@ -11,15 +11,21 @@ include/fluent-bit/flb_base64.h include/fluent-bit/flb_bits.h include/fluent-bit/flb_bucket_queue.h include/fluent-bit/flb_callback.h +include/fluent-bit/flb_chunk_trace.h include/fluent-bit/flb_compat.h include/fluent-bit/flb_config.h include/fluent-bit/flb_config_format.h include/fluent-bit/flb_config_map.h +include/fluent-bit/flb_connection.h include/fluent-bit/flb_coro.h +include/fluent-bit/flb_crypto.h +include/fluent-bit/flb_crypto_constants.h include/fluent-bit/flb_csv.h include/fluent-bit/flb_custom.h include/fluent-bit/flb_custom_plugin.h include/fluent-bit/flb_dlfcn_win32.h +include/fluent-bit/flb_downstream.h +include/fluent-bit/flb_downstream_conn.h include/fluent-bit/flb_dump.h include/fluent-bit/flb_endian.h include/fluent-bit/flb_engine.h @@ -35,16 +41,20 @@ include/fluent-bit/flb_filter_plugin.h include/fluent-bit/flb_fstore.h include/fluent-bit/flb_gzip.h include/fluent-bit/flb_hash.h +include/fluent-bit/flb_hash_table.h include/fluent-bit/flb_help.h +include/fluent-bit/flb_hmac.h include/fluent-bit/flb_http_client.h include/fluent-bit/flb_http_client_debug.h include/fluent-bit/flb_http_server.h include/fluent-bit/flb_info.h include/fluent-bit/flb_input.h include/fluent-bit/flb_input_chunk.h +include/fluent-bit/flb_input_log.h include/fluent-bit/flb_input_metric.h include/fluent-bit/flb_input_plugin.h include/fluent-bit/flb_input_thread.h +include/fluent-bit/flb_input_trace.h include/fluent-bit/flb_intermediate_metric.h include/fluent-bit/flb_io.h include/fluent-bit/flb_jsmn.h @@ -79,12 +89,13 @@ include/fluent-bit/flb_ra_key.h include/fluent-bit/flb_random.h include/fluent-bit/flb_record_accessor.h include/fluent-bit/flb_regex.h +include/fluent-bit/flb_ring_buffer.h include/fluent-bit/flb_router.h include/fluent-bit/flb_routes_mask.h include/fluent-bit/flb_s3_local_buffer.h include/fluent-bit/flb_scheduler.h include/fluent-bit/flb_sds.h -include/fluent-bit/flb_sha512.h +include/fluent-bit/flb_sds_list.h include/fluent-bit/flb_signv4.h include/fluent-bit/flb_slist.h include/fluent-bit/flb_snappy.h @@ -94,6 +105,7 @@ include/fluent-bit/flb_sqldb.h include/fluent-bit/flb_stacktrace.h include/fluent-bit/flb_storage.h include/fluent-bit/flb_str.h +include/fluent-bit/flb_stream.h include/fluent-bit/flb_strptime.h include/fluent-bit/flb_task.h include/fluent-bit/flb_task_map.h @@ -101,7 +113,6 @@ include/fluent-bit/flb_thread_pool.h include/fluent-bit/flb_thread_storage.h include/fluent-bit/flb_time.h include/fluent-bit/flb_time_utils.h -include/fluent-bit/flb_tls.h include/fluent-bit/flb_typecast.h include/fluent-bit/flb_unescape.h include/fluent-bit/flb_upstream.h @@ -115,6 +126,8 @@ include/fluent-bit/flb_utils.h include/fluent-bit/flb_version.h include/fluent-bit/flb_worker.h include/fluent-bit/tls/flb_tls.h +include/fluent-bit/tls/flb_tls_info.h +include/fluent-bit/wasm/flb_wasm.h include/libco.h include/monkey/mk_core.h include/monkey/mk_core/mk_dep_unistd.h
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202302071735.317HZIhO004887>