Compare commits

..

65 Commits

Author SHA1 Message Date
Markus F.X.J. Oberhumer c4113b6bd6 all: prepare for release 2025-07-20 14:41:25 +02:00
Markus F.X.J. Oberhumer 4988868e61 CI updates 2025-07-20 13:58:38 +02:00
Markus F.X.J. Oberhumer 5a513ab16f CI updates 2025-07-20 12:21:56 +02:00
Markus F.X.J. Oberhumer f1a9d1bec9 CI updates 2025-07-20 00:38:43 +02:00
Markus F.X.J. Oberhumer 70a3acfded CI updates 2025-07-18 20:17:11 +02:00
Markus F.X.J. Oberhumer 3ec6a3cce0 CI updates 2025-07-18 12:42:37 +02:00
Markus F.X.J. Oberhumer dd0a8856cc CI updates 2025-07-18 11:44:36 +02:00
Markus F.X.J. Oberhumer c51a1130b8 CI updates 2025-07-17 20:47:19 +02:00
Markus F.X.J. Oberhumer 9851fba246 CI updates 2025-07-17 15:46:12 +02:00
Markus F.X.J. Oberhumer 8054543671 CI updates 2025-07-15 10:55:39 +02:00
Markus F.X.J. Oberhumer 17d0e897ba CI updates 2025-07-15 09:56:46 +02:00
Markus F.X.J. Oberhumer a7940fd19b CI updates 2025-07-07 18:01:00 +02:00
John Reiser 1fbd34035e shell trap on ERR to help locate failing commands
modified:   misc/testsuite/mimic_ctest.sh
2025-07-06 19:21:26 -07:00
John Reiser 945d9157fa PowerPC64 editing error affecting -fPIE
https://github.com/upx/upx/issues/918
	modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   stub/src/powerpc64-linux.elf-fold.S
          plus generated powerpc64*-linux.elf-fold.h
2025-07-05 18:10:46 -07:00
Markus F.X.J. Oberhumer 915bfbd82e CI updates 2025-07-05 22:23:13 +02:00
Markus F.X.J. Oberhumer ef01a73e8f CI updates 2025-06-26 11:54:26 +02:00
Markus F.X.J. Oberhumer 7e4e6a3cb1 CI updates 2025-06-26 11:30:46 +02:00
Markus F.X.J. Oberhumer ca97430db2 CI updates 2025-06-06 12:25:13 +02:00
Markus F.X.J. Oberhumer 7530643d1d CI updates 2025-06-01 14:55:43 +02:00
Markus F.X.J. Oberhumer 073cdb0d58 CI updates 2025-06-01 14:11:05 +02:00
Markus F.X.J. Oberhumer 9a93b5d1c1 CI updates 2025-05-31 15:44:22 +02:00
Markus F.X.J. Oberhumer 44ce469b84 CI updates 2025-05-31 13:54:04 +02:00
Markus F.X.J. Oberhumer 4d8d330f21 CI updates 2025-05-30 18:31:56 +02:00
Markus F.X.J. Oberhumer 793e1622ea CI updates 2025-05-29 12:04:43 +02:00
Markus F.X.J. Oberhumer 92a33fa0cc CI updates 2025-05-25 10:12:35 +02:00
John Reiser e8c49a2c35 Prevent SIGSEGV on de-compress of modified PE file
https://github.com/upx/upx/issues/863
	modified:   pefile.cpp
2025-05-13 10:51:59 -07:00
Markus F.X.J. Oberhumer d2e9db7112 CI updates 2025-05-10 13:55:49 +02:00
John Reiser b728b0e021 buildLinuxLoader needs more space
for shlib + lzma + Android
https://github.com/upx/upx/issues/913
	modified:   p_lx_elf.cpp
2025-05-07 13:52:58 -07:00
John Reiser a1ef410509 ELF DT_DYNSYM: fix checking of symbol table
Particularly JNI_OnLoad
https://github.com/upx/upx/issues/914
	modified:   p_lx_elf.cpp
2025-05-07 17:02:56 -07:00
Markus F.X.J. Oberhumer 24b4ec42e7 CI updates 2025-05-07 19:11:57 +02:00
Markus F.X.J. Oberhumer 52dde5789e all: post-release version bump 2025-05-06 14:01:35 +02:00
Markus F.X.J. Oberhumer 730c6ce6c5 all: prepare for release 2025-05-06 12:19:16 +02:00
Markus F.X.J. Oberhumer 5ed1d5b2b3 src/stub: fix ET_DYN with non-zero PT_LOAD[0].p_vaddr 2025-05-01 20:42:39 +02:00
Markus F.X.J. Oberhumer 23c70ec447 src/stub: fix ET_DYN with non-zero PT_LOAD[0].p_vaddr 2025-05-01 20:37:36 +02:00
Markus F.X.J. Oberhumer e29e73a4e4 src/help.cpp: mention --fileinfo 2025-05-01 20:33:34 +02:00
Markus F.X.J. Oberhumer 27289a7589 src/stub: flush datacache before msync 2025-04-29 17:53:33 +02:00
Markus F.X.J. Oberhumer e509bb87e9 src/stub: flush datacache before msync 2025-04-29 17:44:47 +02:00
Markus F.X.J. Oberhumer 5cec09966e submodules: update for new versions 2025-04-22 15:44:29 +02:00
Markus F.X.J. Oberhumer b5789fb321 src: minor cleanups 2025-04-21 14:04:27 +02:00
Markus F.X.J. Oberhumer a1b0fd987f CI updates 2025-04-20 15:46:19 +02:00
Markus F.X.J. Oberhumer a468b92e3a PowerPC Psync flush datacache before msync 2025-04-20 15:06:58 +02:00
John Reiser ddf0b50c6d PowerPC Psync flush datacache before msync
https://github.com/upx/upx/issues/907
	modified:   stub/src/powerpc-linux.elf-fold.S
	modified:   stub/src/powerpc64-linux.elf-fold.S
2025-04-20 14:55:06 +02:00
Markus F.X.J. Oberhumer 3af2b21869 CI updates 2025-04-11 09:41:08 +02:00
Markus F.X.J. Oberhumer c4bfebeceb CI updates 2025-04-10 20:04:34 +02:00
Markus F.X.J. Oberhumer d23484b9db CI updates 2025-04-09 11:32:13 +02:00
John Reiser 071579b5b6 Cleanup after broken tools
zig/powerpc64le/musl newly undefined openat64; adjacent literal strings
in C source were not concatenated; comment introduced by double slash
did not ignore backslash in rest of line
	modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   stub/src/mipsel.r3000-linux.elf-fold.S
	modified:   stub/src/powerpc-linux.elf-entry.S
	modified:   stub/src/powerpc-linux.elf-fold.S
	modified:   stub/src/powerpc64-linux.elf-entry.S
	modified:   stub/src/powerpc64-linux.elf-fold.S
	modified:   stub/src/upxfd_linux.c
2025-03-21 13:25:02 -07:00
John Reiser ff9d577e46 O_DIRECTORY is architecture-dependent
https://github.com/upx/upx/issues/902
	modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   stub/src/arm64-linux.elf-entry.S
	modified:   stub/src/arm64-linux.elf-fold.S
	modified:   stub/src/powerpc64-linux.elf-fold.S
	modified:   stub/src/upxfd_android.c
	modified:   stub/src/upxfd_linux.c
           plus generated .h .map .dump
2025-03-21 10:54:27 -07:00
John Reiser a25c20ee0b M_LZMA with hi parameter bytes confused --ultra-brute
https://github.com/upx/upx/issues/900
	modified:   packhead.cpp
	modified:   p_lx_elf.cpp
2025-03-20 09:48:00 -07:00
John Reiser ff75a462a4 Fighting over .e_shentsize
modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   p_lx_elf.cpp
2025-03-18 13:48:19 -07:00
John Reiser e0b6ff1924 More checking in unpack()
https://github.com/upx/upx/issues/898
	modified:   p_lx_elf.cpp
2025-03-18 08:40:08 -07:00
John Reiser 1c5fae74e0 Fix recovery of readlink() when /proc/self/exe is missing
https://github.com/upx/upx/issues/897
	modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   stub/src/arm.v4a-linux.elf-fold.S
           plus generated .h
2025-03-16 12:37:57 -07:00
John Reiser 6f650ca16f mips memfd_create() and syscall error handling
https://github.com/upx/upx/issues/895
	modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   stub/src/mipsel.r3000-linux.elf-entry.S
	modified:   stub/src/mipsel.r3000-linux.elf-fold.S
           plus generated .h .dump .map
2025-03-13 08:07:26 -07:00
Markus F.X.J. Oberhumer c2da21ba4e CI updates 2025-03-05 12:13:21 +01:00
John Reiser 903ca50391 Workaround valgrind-3.24.0 botch of 'notrack' on i386
https://github.com/upx/upx/issues/890
	modified:   stub/src/i386-linux.elf-fold.S
	modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
           plus generated .h .map
2025-03-02 14:30:50 -08:00
John Reiser 70f1ab8cb7 Nice message for ancient Linux lacking memfd_create
... or O_TMPFILE for recovery using /dev/shm
https://github.com/upx/upx/issues/889
	modified:   stub/src/upxfd_linux.c
	modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
           plus generated  .h  .map  .dump
2025-03-02 11:46:17 -08:00
John Reiser 6998449715 Remove inline syscalls from MIPS stubs
They were a maintenance headache, especially for error handling.
	modified:   stub/src/i386-linux.elf-entry.S
	modified:   stub/src/i386-linux.elf-main2.c
	modified:   stub/src/include/linux.h
	modified:   stub/src/mips.r3000-expand.S
	modified:   stub/src/mipsel.r3000-linux.elf-entry.S
	modified:   stub/src/mipsel.r3000-linux.elf-fold.S
	modified:   stub/src/upxfd_android.c
2025-03-02 11:32:49 -08:00
John Reiser fb0f6c6a00 Escape hatch needs 'notrack' to enter
modified:   stub/src/amd64-linux.elf-fold.S
	modified:   stub/src/i386-linux.elf-fold.S
2025-03-02 11:22:05 -08:00
John Reiser dbde75028c Avoid corrupted P_hdr
https://issues.oss-fuzz.com/u/1/issues/398127991
	modified:   p_lx_elf.cpp
2025-03-02 11:12:08 -08:00
John Reiser 90d86ea59e Prevent leak even if corrupted input
https://issues.oss-fuzz.com/u/1/issues/42531955
	modified:   pefile.cpp
2025-02-27 17:10:52 -08:00
John Reiser 64891286ba Unpack: better checking of bounds for DT_HASH
https://issues.oss-fuzz.com/u/1/issues/398075916
	modified:   p_lx_elf.cpp
2025-02-22 07:55:14 -08:00
John Reiser e52a3ceb48 Unpack: Entire ElfXX_Ehdr must be present in de-compressed Ehdr+Phdrs
https://issues.oss-fuzz.com/u/1/issues/397728078
(previous commit: https://issues.oss-fuzz.com/u/1/issues/397500915)
	modified:   p_lx_elf.cpp
2025-02-22 07:55:14 -08:00
John Reiser 8cce9cf641 Detect bad b_info.method
https://issues.oss-fuzz.com/u/1/issues?q=upx
	modified:   p_lx_elf.cpp
	modified:   p_unix.cpp
	modified:   packhead.cpp
	modified:   packhead.h
2025-02-22 07:55:14 -08:00
Markus F.X.J. Oberhumer 896dff9619 src/check: some toolchains are buggy 2025-02-22 06:43:28 +01:00
Markus F.X.J. Oberhumer 84a0347df1 testsuite: update checksums caused by version bump 2025-02-21 00:12:41 +01:00
Markus F.X.J. Oberhumer fc5e44f391 all: post-release version bump 2025-02-20 23:56:24 +01:00
107 changed files with 31065 additions and 30259 deletions
+162 -37
View File
@@ -13,14 +13,15 @@ env:
CMAKE_VERBOSE_MAKEFILE: 'ON' CMAKE_VERBOSE_MAKEFILE: 'ON'
CTEST_OUTPUT_ON_FAILURE: 'ON' CTEST_OUTPUT_ON_FAILURE: 'ON'
DEBIAN_FRONTEND: noninteractive DEBIAN_FRONTEND: noninteractive
NO_COLOR: 1
UPX_CMAKE_BUILD_FLAGS: --verbose UPX_CMAKE_BUILD_FLAGS: --verbose
UPX_CMAKE_CONFIG_FLAGS: -Wdev --warn-uninitialized UPX_CMAKE_CONFIG_FLAGS: -Wdev --warn-uninitialized
UPX_CONFIG_HAVE_WORKING_BUILD_RPATH: 'ON' UPX_CONFIG_HAVE_WORKING_BUILD_RPATH: 'ON'
UPX_DEBUG_TEST_FLOAT_DIVISION_BY_ZERO: 1 UPX_DEBUG_TEST_FLOAT_DIVISION_BY_ZERO: 1
UPX_DEBUG_TEST_LIBC_QSORT: 1 UPX_DEBUG_TEST_LIBC_QSORT: 1
ZSTD_CLEVEL: 9 ZSTD_CLEVEL: 17
# 2025-02-18 # 2025-05-21
ZIG_DIST_VERSION: 0.14.0-dev.3258+d2e70ef84 ZIG_DIST_VERSION: 0.14.1
jobs: jobs:
job-rebuild-and-verify-stubs: job-rebuild-and-verify-stubs:
@@ -30,9 +31,9 @@ jobs:
#container: debian:12-slim # also works; provides glibc-2.36 #container: debian:12-slim # also works; provides glibc-2.36
#container: debian:testing-slim # also works; currently provides glibc-2.38 #container: debian:testing-slim # also works; currently provides glibc-2.38
steps: steps:
- run: uname -a; pwd; id; umask
- name: Install packages - name: Install packages
run: | run: |
uname -a; pwd; id; umask
dpkg --add-architecture i386 dpkg --add-architecture i386
apt-get update && apt-get upgrade -y apt-get update && apt-get upgrade -y
# install system packages # install system packages
@@ -60,7 +61,7 @@ jobs:
run: | run: |
export PATH="$(readlink -en ../deps/bin-upx-20221212):$PATH" export PATH="$(readlink -en ../deps/bin-upx-20221212):$PATH"
make -C src/stub maintainer-clean extra-clean make -C src/stub maintainer-clean extra-clean
git status || true git status || true # make sure the stub files got deleted
make -C src/stub extra-all all make -C src/stub extra-all all
if ! git diff --quiet; then git diff; exit 1; fi if ! git diff --quiet; then git diff; exit 1; fi
- run: bash ./misc/scripts/check_whitespace_git.sh - run: bash ./misc/scripts/check_whitespace_git.sh
@@ -73,6 +74,65 @@ jobs:
run: | run: |
make -C doc clean all make -C doc clean all
if ! git diff --quiet; then git diff || true; fi # ignore diff error if ! git diff --quiet; then git diff || true; fi # ignore diff error
- name: Clean up
shell: bash
run: |
git ls-files -z --others --ignored --exclude-standard ./src/stub | xargs -0r rm -v --
find ./src/stub/src -type d -name tmp -print0 | xargs -0r rmdir -v --
- run: git status --ignored || true
job-linux-cmake-0: # uses cmake + make
if: true
needs: [ job-rebuild-and-verify-stubs ]
strategy:
fail-fast: false
matrix:
include:
- { os: ubuntu-22.04 }
- { os: ubuntu-24.04 }
- { os: ubuntu-22.04-arm }
- { os: ubuntu-24.04-arm }
name: ${{ format('{0}', matrix.os) }}-0
runs-on: ${{ matrix.os }}
steps:
- run: uname -a; pwd; id; umask
- run: sudo apt-get update
- run: sudo apt-get install -y gdb parallel
- uses: actions/checkout@v4
with: { submodules: true }
- run: make build/extra/gcc/all
- run: make build/extra/clang/all
# run: make build/extra/gcc-pie/all
# run: make build/extra/clang-pie/all
- run: ls -l build/*/*/*/upx* || true
- run: file build/*/*/*/upx* || true
- name: Make artifact
shell: bash
run: |
N=$(echo "upx-${GITHUB_REF_NAME}-${GITHUB_SHA:0:7}-${{ matrix.os }}-0" | sed 's/[^0-9a-zA-Z_.-]/-/g')
mkdir -p "tmp/artifact/$N"
(cd build && shopt -s nullglob && cp -ai --parents */upx{,.exe} */*/*/upx{,.exe} "../tmp/artifact/$N")
if command -v hardlink >/dev/null; then (cd "tmp/artifact/$N" && hardlink .) fi
(cd tmp/artifact && tar --sort=name --zstd -cf "$N.tar.zst" "$N" && rm -rf "./$N" && ls -la && zstd -tq "$N.tar.zst")
echo "artifact_name=$N" >> $GITHUB_ENV
- name: ${{ format('Upload artifact {0}', env.artifact_name) }}
uses: actions/upload-artifact@v4
with: { name: '${{ env.artifact_name }}', path: tmp/artifact }
- name: Mimic ctest tests SIGSEGV
shell: bash
run: |
jobs="gcc/debug gcc/release clang/debug clang/release"
#jobs="$jobs gcc-pie/debug gcc-pie/release clang-pie/debug clang-pie/release"
for ((i = 0; i < 5; i++)); do
echo "===== parallel jobs: $jobs"
parallel -kv --lb 'cd build/extra/{} && bash ../../../../misc/testsuite/mimic_ctest_sigsegv.sh' ::: $jobs
done
- name: Run ctest tests
run: |
jobs="gcc/debug gcc/release clang/debug clang/release"
#jobs="$jobs gcc-pie/debug gcc-pie/release clang-pie/debug clang-pie/release"
echo "===== parallel jobs: $jobs"
CTEST_JOBS=2 parallel -kv --lb 'make build/extra/{}+test' ::: $jobs
job-linux-cmake: # uses cmake + make job-linux-cmake: # uses cmake + make
if: true if: true
@@ -81,12 +141,12 @@ jobs:
fail-fast: false fail-fast: false
matrix: matrix:
include: include:
- { os: ubuntu-20.04, use_extra: true }
- { os: ubuntu-22.04, use_extra: true, use_wine: true } - { os: ubuntu-22.04, use_extra: true, use_wine: true }
- { os: ubuntu-24.04, use_extra: true, use_wine: true } - { os: ubuntu-24.04, use_extra: true, use_wine: true }
name: ${{ format('{0}', matrix.os) }} name: ${{ format('{0}', matrix.os) }}
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
steps: steps:
- run: uname -a; pwd; id; umask
- name: Install extra 32-bit and MinGW packages - name: Install extra 32-bit and MinGW packages
if: ${{ matrix.use_extra }} if: ${{ matrix.use_extra }}
run: | run: |
@@ -126,6 +186,8 @@ jobs:
if: ${{ matrix.use_extra }} if: ${{ matrix.use_extra }}
- run: make build/extra/cross-windows-mingw64/all - run: make build/extra/cross-windows-mingw64/all
if: ${{ matrix.use_extra }} if: ${{ matrix.use_extra }}
- run: ls -l build/*/*/*/upx* || true
- run: file build/*/*/*/upx* || true
- name: Make artifact - name: Make artifact
run: | run: |
N=$(echo "upx-${GITHUB_REF_NAME}-${GITHUB_SHA:0:7}-${{ matrix.os }}" | sed 's/[^0-9a-zA-Z_.-]/-/g') N=$(echo "upx-${GITHUB_REF_NAME}-${GITHUB_SHA:0:7}-${{ matrix.os }}" | sed 's/[^0-9a-zA-Z_.-]/-/g')
@@ -151,6 +213,12 @@ jobs:
run: | run: |
(cd build/extra/gcc/release && DESTDIR="$PWD/Install with cmake" cmake --install .) (cd build/extra/gcc/release && DESTDIR="$PWD/Install with cmake" cmake --install .)
(cd build/extra/gcc/release && DESTDIR="$PWD/Install with make" make install) (cd build/extra/gcc/release && DESTDIR="$PWD/Install with make" make install)
- name: Mimic ctest tests SIGSEGV
run: |
jobs="gcc/debug gcc/release clang/debug clang/release"
test "${{ matrix.use_extra }}" = "true" && jobs="$jobs gcc-m32/debug gcc-m32/release"
echo "===== parallel jobs: $jobs"
parallel -kv --lb 'cd build/extra/{} && bash ../../../../misc/testsuite/mimic_ctest_sigsegv.sh' ::: $jobs
- name: Run ctest tests - name: Run ctest tests
run: | run: |
jobs="gcc/debug gcc/release clang/debug clang/release" jobs="gcc/debug gcc/release clang/debug clang/release"
@@ -159,12 +227,6 @@ jobs:
command -v wine >/dev/null && jobs="$jobs cross-windows-mingw64/debug cross-windows-mingw64/release" command -v wine >/dev/null && jobs="$jobs cross-windows-mingw64/debug cross-windows-mingw64/release"
echo "===== parallel jobs: $jobs" echo "===== parallel jobs: $jobs"
CTEST_JOBS=2 parallel -kv --lb 'make build/extra/{}+test' ::: $jobs CTEST_JOBS=2 parallel -kv --lb 'make build/extra/{}+test' ::: $jobs
- name: Mimic ctest tests
run: |
jobs="gcc/debug gcc/release clang/debug clang/release"
test "${{ matrix.use_extra }}" = "true" && jobs="$jobs gcc-m32/debug gcc-m32/release"
echo "===== parallel jobs: $jobs"
parallel -kv --lb 'cd build/extra/{} && bash ../../../../misc/testsuite/mimic_ctest.sh' ::: $jobs
- name: Mimic ctest tests with Valgrind - name: Mimic ctest tests with Valgrind
if: true # note: valgrind is SLOW if: true # note: valgrind is SLOW
run: | run: |
@@ -213,10 +275,12 @@ jobs:
# NOTE: macos does not have "env -C"; only with brew coreutils # NOTE: macos does not have "env -C"; only with brew coreutils
- { os: macos-13, gcc: gcc-12, gxx: g++-12, testsuite: true } - { os: macos-13, gcc: gcc-12, gxx: g++-12, testsuite: true }
- { os: macos-14, gcc: gcc-13, gxx: g++-13, testsuite: true } - { os: macos-14, gcc: gcc-13, gxx: g++-13, testsuite: true }
- { os: macos-15, gcc: gcc-14, gxx: g++-14, testsuite: true } # { os: macos-15, gcc: gcc-14, gxx: g++-14, testsuite: true }
- { os: macos-15, testsuite: true }
name: ${{ format('{0} {1}{2}', matrix.os, matrix.xcode_version && 'xcode-' || '', matrix.xcode_version) }} name: ${{ format('{0} {1}{2}', matrix.os, matrix.xcode_version && 'xcode-' || '', matrix.xcode_version) }}
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
steps: steps:
- run: uname -a; pwd; id; umask
- uses: maxim-lobanov/setup-xcode@v1 - uses: maxim-lobanov/setup-xcode@v1
if: ${{ matrix.xcode_version }} if: ${{ matrix.xcode_version }}
with: { xcode-version: '${{ matrix.xcode_version }}' } with: { xcode-version: '${{ matrix.xcode_version }}' }
@@ -226,7 +290,7 @@ jobs:
test -z "$HOMEBREW_PREFIX" && HOMEBREW_PREFIX="$(brew --prefix)" test -z "$HOMEBREW_PREFIX" && HOMEBREW_PREFIX="$(brew --prefix)"
echo "HOMEBREW_PREFIX=$HOMEBREW_PREFIX" >> $GITHUB_ENV echo "HOMEBREW_PREFIX=$HOMEBREW_PREFIX" >> $GITHUB_ENV
# testsuite needs working "readlink -en" and "sha256sum -b" # testsuite needs working "readlink -en" and "sha256sum -b"
packages="ninja parallel util-linux" packages="parallel util-linux"
test -e "$HOMEBREW_PREFIX/opt/coreutils/libexec/gnubin/readlink" || packages="$packages coreutils" test -e "$HOMEBREW_PREFIX/opt/coreutils/libexec/gnubin/readlink" || packages="$packages coreutils"
if test -n "$packages"; then if test -n "$packages"; then
echo "===== brew leaves:"; brew leaves; echo "===== brew list:"; brew list --versions echo "===== brew leaves:"; brew leaves; echo "===== brew list:"; brew list --versions
@@ -237,7 +301,7 @@ jobs:
echo "UPX_DEBUG_FORCE_PACK_MACOS=1" >> $GITHUB_ENV echo "UPX_DEBUG_FORCE_PACK_MACOS=1" >> $GITHUB_ENV
case "${{ matrix.os }}" in case "${{ matrix.os }}" in
# TODO FIXME: UPX on macos-13+ is broken => disable run-packed for now # TODO FIXME: UPX on macos-13+ is broken => disable run-packed for now
macos-13 | macos-14 | macos-15) echo "UPX_CONFIG_DISABLE_RUN_PACKED_TEST=ON" >> $GITHUB_ENV ;; macos-1[345]) echo "UPX_CONFIG_DISABLE_RUN_PACKED_TEST=ON" >> $GITHUB_ENV ;;
esac esac
- uses: actions/checkout@v4 - uses: actions/checkout@v4
with: { submodules: true } with: { submodules: true }
@@ -262,7 +326,10 @@ jobs:
run: | run: |
make UPX_XTARGET=xtarget/cross-darwin-arm64 xtarget/all \ make UPX_XTARGET=xtarget/cross-darwin-arm64 xtarget/all \
CC="clang -target arm64-apple-darwin" CXX="clang++ -target arm64-apple-darwin" CC="clang -target arm64-apple-darwin" CXX="clang++ -target arm64-apple-darwin"
- run: ls -l build/*/*/*/upx* || true
- run: file build/*/*/*/upx* || true
- name: Make artifact - name: Make artifact
shell: bash
run: | run: |
X="${{ matrix.xcode_version }}"; test -n "$X" && X="-xcode-$X" X="${{ matrix.xcode_version }}"; test -n "$X" && X="-xcode-$X"
N=$(echo "upx-${GITHUB_REF_NAME}-${GITHUB_SHA:0:7}-${{ matrix.os }}$X" | sed 's/[^0-9a-zA-Z_.-]/-/g') N=$(echo "upx-${GITHUB_REF_NAME}-${GITHUB_SHA:0:7}-${{ matrix.os }}$X" | sed 's/[^0-9a-zA-Z_.-]/-/g')
@@ -325,8 +392,15 @@ jobs:
fail-fast: false fail-fast: false
matrix: matrix:
include: include:
- { name: windows-2019-amd64, os: windows-2019, vsversion: 2019, vsarch: amd64 } # { name: windows-2019-amd64, os: windows-2019, vsversion: 2019, vsarch: amd64 }
- { name: windows-2022-amd64, os: windows-2022, vsversion: 2022, vsarch: amd64 } - { name: windows-2022-amd64, os: windows-2022, vsversion: 2022, vsarch: amd64 }
- { name: windows-2022-arm64, os: windows-2022, vsversion: 2022, vsarch: amd64_arm64 }
# { name: windows-2022-arm64ec, os: windows-2022, vsversion: 2022, vsarch: amd64_arm64, use_amd64ec: true }
- { name: windows-2022-i386, os: windows-2022, vsversion: 2022, vsarch: amd64_x86 }
- { name: windows-2025-amd64, os: windows-2025, vsversion: 2022, vsarch: amd64 }
- { name: windows-2025-arm64, os: windows-2025, vsversion: 2022, vsarch: amd64_arm64 }
- { name: windows-2025-arm64ec, os: windows-2025, vsversion: 2022, vsarch: amd64_arm64, use_amd64ec: true }
- { name: windows-2025-i386, os: windows-2025, vsversion: 2022, vsarch: amd64_x86 }
name: ${{ format('{0}', matrix.name) }} name: ${{ format('{0}', matrix.name) }}
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
steps: steps:
@@ -337,12 +411,26 @@ jobs:
run: git clone --depth=1 https://github.com/upx/upx-testsuite ../deps/upx-testsuite run: git clone --depth=1 https://github.com/upx/upx-testsuite ../deps/upx-testsuite
- uses: ilammy/msvc-dev-cmd@v1 - uses: ilammy/msvc-dev-cmd@v1
with: { vsversion: '${{ matrix.vsversion }}', arch: '${{ matrix.vsarch }}' } with: { vsversion: '${{ matrix.vsversion }}', arch: '${{ matrix.vsarch }}' }
- name: Set platform
shell: bash
run: |
if [[ "${{ matrix.vsarch }}" == amd64 ]]; then true;
echo "UPX_CMAKE_CONFIG_FLAGS_PLATFORM=-A x64" >> $GITHUB_ENV
elif [[ "${{ matrix.use_amd64ec }}" == "true" ]]; then true;
echo "UPX_CMAKE_CONFIG_FLAGS_PLATFORM=-A ARM64EC" >> $GITHUB_ENV
echo "UPX_CONFIG_DISABLE_SELF_PACK_TEST=ON" >> $GITHUB_ENV
elif [[ "${{ matrix.vsarch }}" == amd64_arm64 ]]; then true;
echo "UPX_CMAKE_CONFIG_FLAGS_PLATFORM=-A ARM64" >> $GITHUB_ENV
echo "UPX_CONFIG_DISABLE_SELF_PACK_TEST=ON" >> $GITHUB_ENV
elif [[ "${{ matrix.vsarch }}" == amd64_x86 ]]; then true;
echo "UPX_CMAKE_CONFIG_FLAGS_PLATFORM=-A Win32" >> $GITHUB_ENV
fi
- run: make build/debug - run: make build/debug
- run: make build/release - run: make build/release
- name: Make artifact - name: Make artifact
shell: bash shell: bash
run: | run: |
N=$(echo "upx-${GITHUB_REF_NAME}-${GITHUB_SHA:0:7}-${{ matrix.os }}" | sed 's/[^0-9a-zA-Z_.-]/-/g') N=$(echo "upx-${GITHUB_REF_NAME}-${GITHUB_SHA:0:7}-${{ matrix.name }}" | sed 's/[^0-9a-zA-Z_.-]/-/g')
mkdir -p "tmp/artifact/$N" mkdir -p "tmp/artifact/$N"
DESTDIR="$PWD/tmp/artifact/$N/InstallWithCMake/InstallWithDestdir/debug" cmake --install build/debug --config Debug DESTDIR="$PWD/tmp/artifact/$N/InstallWithCMake/InstallWithDestdir/debug" cmake --install build/debug --config Debug
DESTDIR="$PWD/tmp/artifact/$N/InstallWithCMake/InstallWithDestdir/release" cmake --install build/release --config Release DESTDIR="$PWD/tmp/artifact/$N/InstallWithCMake/InstallWithDestdir/release" cmake --install build/release --config Release
@@ -363,12 +451,18 @@ jobs:
run: | run: |
ctest --test-dir build/debug --parallel 8 -C Debug ctest --test-dir build/debug --parallel 8 -C Debug
ctest --test-dir build/release --parallel 8 -C Release ctest --test-dir build/release --parallel 8 -C Release
- name: Mimic ctest tests
if: ${{ matrix.vsarch != 'amd64_arm64' }}
shell: bash
run: |
env -C build/debug/Debug upx_exe=./upx.exe bash "$PWD"/misc/testsuite/mimic_ctest.sh
env -C build/release/Release upx_exe=./upx.exe bash "$PWD"/misc/testsuite/mimic_ctest.sh
- name: Run test suite build/release - name: Run test suite build/release
if: ${{ matrix.vsarch != 'amd64_arm64' }} if: ${{ matrix.vsarch != 'amd64_arm64' }}
shell: bash shell: bash
run: | run: |
export upx_testsuite_SRCDIR="$(readlink -en ../deps/upx-testsuite)" export upx_testsuite_SRCDIR="$(readlink -en ../deps/upx-testsuite)"
env -C build/release/Release bash "$PWD"/misc/testsuite/upx_testsuite_1.sh env -C build/release/Release upx_exe=./upx.exe bash "$PWD"/misc/testsuite/upx_testsuite_1.sh
job-windows-toolchains: # build "by hand" using cmd.exe job-windows-toolchains: # build "by hand" using cmd.exe
if: github.repository_owner == 'upx' if: github.repository_owner == 'upx'
@@ -377,13 +471,13 @@ jobs:
fail-fast: false fail-fast: false
matrix: matrix:
include: include:
- { name: amd64-win64-vs2019, os: windows-2019, vsversion: 2019, vsarch: amd64 } # { name: amd64-win64-vs2019, os: windows-2019, vsversion: 2019, vsarch: amd64 }
- { name: amd64-win64-vs2022, os: windows-2022, vsversion: 2022, vsarch: amd64 } - { name: amd64-win64-vs2022, os: windows-2022, vsversion: 2022, vsarch: amd64 }
- { name: arm64-win64-vs2019, os: windows-2019, vsversion: 2019, vsarch: amd64_arm64 } # { name: arm64-win64-vs2019, os: windows-2019, vsversion: 2019, vsarch: amd64_arm64 }
- { name: arm64-win64-vs2022, os: windows-2022, vsversion: 2022, vsarch: amd64_arm64 } - { name: arm64-win64-vs2022, os: windows-2022, vsversion: 2022, vsarch: amd64_arm64 }
- { name: arm64ec-win64-vs2022, os: windows-2022, vsversion: 2022, vsarch: amd64_arm64, cl_machine_flags: -arm64EC, link_machine_flags: '/machine:arm64ec' } - { name: arm64ec-win64-vs2022, os: windows-2022, vsversion: 2022, vsarch: amd64_arm64, cl_machine_flags: -arm64EC, link_machine_flags: '/machine:arm64ec' }
# { name: arm64x-win64-vs2022, os: windows-2022, vsversion: 2022, vsarch: amd64_arm64, cl_machine_flags: -arm64EC, link_machine_flags: '/machine:arm64x' } # { name: arm64x-win64-vs2022, os: windows-2022, vsversion: 2022, vsarch: amd64_arm64, cl_machine_flags: -arm64EC, link_machine_flags: '/machine:arm64x' }
- { name: i386-win32-vs2019, os: windows-2019, vsversion: 2019, vsarch: amd64_x86 } # { name: i386-win32-vs2019, os: windows-2019, vsversion: 2019, vsarch: amd64_x86 }
- { name: i386-win32-vs2022, os: windows-2022, vsversion: 2022, vsarch: amd64_x86 } - { name: i386-win32-vs2022, os: windows-2022, vsversion: 2022, vsarch: amd64_x86 }
name: ${{ format('windows {0}', matrix.name) }} name: ${{ format('windows {0}', matrix.name) }}
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
@@ -468,6 +562,11 @@ jobs:
.\upx.exe -l upx_packed.exe .\upx.exe -l upx_packed.exe
.\upx.exe -t upx_packed.exe .\upx.exe -t upx_packed.exe
.\upx_packed.exe --version .\upx_packed.exe --version
- name: Mimic ctest tests
if: ${{ matrix.vsarch != 'amd64_arm64' }}
shell: bash
run: |
env -C build/$C/$B/upx upx_exe=./upx.exe bash "$PWD"/misc/testsuite/mimic_ctest.sh
- name: Run test suite - name: Run test suite
if: ${{ matrix.vsarch != 'amd64_arm64' }} if: ${{ matrix.vsarch != 'amd64_arm64' }}
shell: bash shell: bash
@@ -484,27 +583,39 @@ jobs:
include: include:
# only build a few selected targets => more targets are tested in the Weekly CI # only build a few selected targets => more targets are tested in the Weekly CI
- { zig_target: aarch64-linux-musl, qemu: qemu-aarch64 } - { zig_target: aarch64-linux-musl, qemu: qemu-aarch64 }
- { zig_target: aarch64-linux-musl, qemu: qemu-aarch64, zig_pic: -fPIE }
- { zig_target: aarch64-macos.11.0-none } - { zig_target: aarch64-macos.11.0-none }
- { zig_target: aarch64-windows-gnu } - { zig_target: aarch64-windows-gnu }
- { zig_target: arm-linux-musleabihf, qemu: qemu-arm } - { zig_target: arm-linux-musleabihf, qemu: qemu-arm }
- { zig_target: armeb-linux-musleabihf, qemu: qemu-armeb } - { zig_target: armeb-linux-musleabihf, qemu: qemu-armeb }
- { zig_target: i386-linux-gnu.2.3.4, zig_flags: -march=i586 } - { zig_target: i386-linux-gnu.2.3.4, zig_flags: -march=i586 }
- { zig_target: i386-linux-gnu.2.17, zig_flags: -march=i586 }
- { zig_target: i386-linux-musl, zig_flags: -march=i586, qemu: qemu-i386 } - { zig_target: i386-linux-musl, zig_flags: -march=i586, qemu: qemu-i386 }
- { zig_target: i386-windows-gnu } - { zig_target: i386-windows-gnu }
- { zig_target: mips-linux-musleabi, zig_flags: -msoft-float, qemu: qemu-mips } - { zig_target: mips-linux-musleabi, zig_flags: -msoft-float, qemu: qemu-mips }
- { zig_target: mips-linux-musleabihf, qemu: qemu-mips } - { zig_target: mips-linux-musleabihf, qemu: qemu-mips }
- { zig_target: mipsel-linux-musleabi, zig_flags: -msoft-float, qemu: qemu-mipsel } - { zig_target: mipsel-linux-musleabi, zig_flags: -msoft-float, qemu: qemu-mipsel }
- { zig_target: mipsel-linux-musleabihf, qemu: qemu-mipsel } - { zig_target: mipsel-linux-musleabihf, qemu: qemu-mipsel }
# { zig_target: mips-linux-musleabi-mips32r2, zig_flags: -march=mips32r2, qemu: qemu-mips }
# { zig_target: mips-linux-musleabi-mips32r3, zig_flags: -march=mips32r3, qemu: qemu-mips }
# { zig_target: mips-linux-musleabi-mips32r5, zig_flags: -march=mips32r5, qemu: qemu-mips }
# { zig_target: mips-linux-musleabi-mips32r6, zig_flags: -march=mips32r6, qemu: qemu-mips }
- { zig_target: powerpc-linux-musleabihf, qemu: qemu-ppc } - { zig_target: powerpc-linux-musleabihf, qemu: qemu-ppc }
- { zig_target: powerpc64-linux-musl, qemu: qemu-ppc64 } - { zig_target: powerpc64-linux-musl, qemu: qemu-ppc64 }
- { zig_target: powerpc64-linux-musl, qemu: qemu-ppc64, zig_pic: -fPIE }
- { zig_target: powerpc64le-linux-musl, qemu: qemu-ppc64le } - { zig_target: powerpc64le-linux-musl, qemu: qemu-ppc64le }
- { zig_target: powerpc64le-linux-musl, qemu: qemu-ppc64le, zig_pic: -fPIE }
- { zig_target: x86_64-linux-gnu.2.3.4, qemu: qemu-x86_64 } # can use QEMU because of gcompat - { zig_target: x86_64-linux-gnu.2.3.4, qemu: qemu-x86_64 } # can use QEMU because of gcompat
- { zig_target: x86_64-linux-gnu.2.17, qemu: qemu-x86_64 } # can use QEMU because of gcompat
- { zig_target: x86_64-linux-musl, qemu: qemu-x86_64 } - { zig_target: x86_64-linux-musl, qemu: qemu-x86_64 }
- { zig_target: x86_64-macos.11.0-none } - { zig_target: x86_64-macos.11.0-none }
- { zig_target: x86_64-windows-gnu } - { zig_target: x86_64-windows-gnu }
name: ${{ format('zigcc {0} {1}', matrix.zig_target, matrix.zig_pic) }} name: ${{ format('zigcc {0} {1}', matrix.zig_target, matrix.zig_pic) }}
runs-on: ubuntu-latest runs-on: ubuntu-latest
container: 'alpine:3.21' #container: 'alpine:3.22'
#container: ${{ contains(matrix.qemu, 'qemu-ppc64') && 'alpine:3.19' || 'alpine:3.22' }}
#container: ${{ (matrix.qemu == 'qemu-ppc64') && 'alpine:edge' || 'alpine:3.22' }}
container: ${{ (matrix.qemu == 'qemu-aarch64' && matrix.zig_pic == '-fPIE') && 'alpine:3.18' || 'alpine:3.22' }}
env: env:
UPX_CONFIG_HAVE_WORKING_BUILD_RPATH: '' UPX_CONFIG_HAVE_WORKING_BUILD_RPATH: ''
# for zig-cc wrapper scripts (see below): # for zig-cc wrapper scripts (see below):
@@ -513,11 +624,12 @@ jobs:
ZIG_PIC: ${{ matrix.zig_pic }} ZIG_PIC: ${{ matrix.zig_pic }}
ZIG_TARGET: ${{ matrix.zig_target }} ZIG_TARGET: ${{ matrix.zig_target }}
steps: steps:
- run: uname -a; pwd; id; umask
- name: Install Alpine Linux container packages - name: Install Alpine Linux container packages
if: ${{ job.container }} if: ${{ job.container }}
shell: sh shell: sh
run: | run: |
apk update && apk upgrade && apk add bash cmake curl file git make parallel tar util-linux xz zstd apk update && apk upgrade && apk add bash cmake curl file gdb git make parallel patch strace tar util-linux xz zstd
# set PATH like in Ubuntu # set PATH like in Ubuntu
echo "PATH=$HOME/.local/bin:$PATH" >> $GITHUB_ENV echo "PATH=$HOME/.local/bin:$PATH" >> $GITHUB_ENV
git config --global --add safe.directory '*' # needed when running in a container git config --global --add safe.directory '*' # needed when running in a container
@@ -529,10 +641,10 @@ jobs:
run: | run: |
rev=$(git rev-parse --short=7 HEAD) rev=$(git rev-parse --short=7 HEAD)
echo "UPX_GITREV_SHORT=$rev" >> $GITHUB_ENV echo "UPX_GITREV_SHORT=$rev" >> $GITHUB_ENV
if [[ "${{ matrix.zig_target }}" == i386-linux-gnu.2.3.4 ]]; then if [[ "${{ matrix.zig_target }}" == i386-linux-gnu.2.3.* ]]; then true;
echo "UPX_CONFIG_DISABLE_SHARED_LIBS=ON" >> $GITHUB_ENV # zig problem when linking in Debug mode echo "UPX_CONFIG_DISABLE_SHARED_LIBS=ON" >> $GITHUB_ENV # zig problem when linking in Debug mode
fi fi
if [[ "${{ matrix.zig_target }}" == x86_64-linux-gnu.2.3.4 ]]; then if [[ "${{ matrix.zig_target }}" == x86_64-linux-gnu.2* ]]; then true;
echo "NEED_GCOMPAT=1" >> $GITHUB_ENV echo "NEED_GCOMPAT=1" >> $GITHUB_ENV
# TODO FIXME: problem with self-packed upx and musl+gcompat: "Not a valid dynamic program" # TODO FIXME: problem with self-packed upx and musl+gcompat: "Not a valid dynamic program"
echo "UPX_CONFIG_DISABLE_RUN_PACKED_TEST=ON" >> $GITHUB_ENV echo "UPX_CONFIG_DISABLE_RUN_PACKED_TEST=ON" >> $GITHUB_ENV
@@ -541,13 +653,19 @@ jobs:
mkdir -p -v ~/.local/bin mkdir -p -v ~/.local/bin
cd ~/.local/bin cd ~/.local/bin
ZIG_DIST_NAME=zig-linux-x86_64-${ZIG_DIST_VERSION} ZIG_DIST_NAME=zig-linux-x86_64-${ZIG_DIST_VERSION}
curl -sS -L -O https://ziglang.org/builds/${ZIG_DIST_NAME}.tar.xz ZIG_DIST_NAME=zig-x86_64-linux-${ZIG_DIST_VERSION}
#curl -sS -L -O https://ziglang.org/builds/${ZIG_DIST_NAME}.tar.xz
curl -sS -L -O https://ziglang.org/download/0.14.1/${ZIG_DIST_NAME}.tar.xz
ls -l ${ZIG_DIST_NAME}.tar.xz ls -l ${ZIG_DIST_NAME}.tar.xz
file ${ZIG_DIST_NAME}.tar.xz || true
tar -xoJf ${ZIG_DIST_NAME}.tar.xz tar -xoJf ${ZIG_DIST_NAME}.tar.xz
rm ${ZIG_DIST_NAME}.tar.xz rm ${ZIG_DIST_NAME}.tar.xz
ln -s -v ${ZIG_DIST_NAME}/zig zig ln -s -v ${ZIG_DIST_NAME}/zig zig
#echo "PATH=$PATH" && which zig #echo "PATH=$PATH" && which zig
echo -n 'zig version: '; zig version echo -n 'zig version: '; zig version
# patch zig
ls -la "$HOME" "$GITHUB_WORKSPACE" || true
#(cd ${ZIG_DIST_NAME} && patch --verbose -p1 -i "$GITHUB_WORKSPACE"/misc/patches/zig/0001-x.patch)
# create wrapper scripts (needed for CMake) # create wrapper scripts (needed for CMake)
log= log=
log='set -x\n' log='set -x\n'
@@ -558,32 +676,39 @@ jobs:
chmod +x zig-ar zig-cc zig-cxx zig-ranlib chmod +x zig-ar zig-cc zig-cxx zig-ranlib
ls -la; head zig-ar zig-cc zig-cxx zig-ranlib ls -la; head zig-ar zig-cc zig-cxx zig-ranlib
# update ZIG_TARGET # update ZIG_TARGET
[[ $ZIG_TARGET == mips-linux-musleabi-* ]] && ZIG_TARGET=mips-linux-musleabi
[[ $ZIG_TARGET == mips-linux-musleabihf-* ]] && ZIG_TARGET=mips-linux-musleabihf
[[ $ZIG_TARGET == mipsel-linux-musleabi-* ]] && ZIG_TARGET=mipsel-linux-musleabi
[[ $ZIG_TARGET == mipsel-linux-musleabihf-* ]] && ZIG_TARGET=mipsel-linux-musleabihf
ZIG_TARGET=${ZIG_TARGET/i386-/x86-} # i386 => x86 ZIG_TARGET=${ZIG_TARGET/i386-/x86-} # i386 => x86
echo "ZIG_TARGET=$ZIG_TARGET" >> $GITHUB_ENV echo "ZIG_TARGET=$ZIG_TARGET" >> $GITHUB_ENV
# update ZIG_FLAGS
# -fPIE is for compilation only => also use the correct linker flag "-pie" # -fPIE is for compilation only => also use the correct linker flag "-pie"
# INFO: it seems the zig driver does handle this automatically(??), so not really needed # INFO: it seems the zig driver does handle this automatically(??), so not really needed
if test "X$ZIG_PIC" = "X-fPIE"; then true; if test "X$ZIG_PIC" = "X-fPIE"; then true;
ZIG_FLAGS="$ZIG_FLAGS --start-no-unused-arguments -pie --end-no-unused-arguments" ZIG_FLAGS="$ZIG_FLAGS --start-no-unused-arguments -pie --end-no-unused-arguments"
echo "UPX_CONFIG_DISABLE_SHARED_LIBS=ON" >> $GITHUB_ENV # conflicts with ZIG_PIC/ZIG_FLAGS echo "UPX_CONFIG_DISABLE_SHARED_LIBS=ON" >> $GITHUB_ENV # conflicts with ZIG_PIC/ZIG_FLAGS
fi fi
# zig bug TODO later: need -Wno-unused-command-line-argument if [[ $ZIG_TARGET == *-linux-gnu.2.3.* ]]; then true;
case "$ZIG_TARGET" in # glibc-2.3.3: undefined symbols in Debug build: __snprintf_chk __vsnprintf_chk
powerpc*) ZIG_FLAGS="$ZIG_FLAGS -Wno-unused-command-line-argument" ;; # glibc-2.3.4: ld.lld: error: undefined symbol: openat64
esac ZIG_FLAGS="$ZIG_FLAGS -fno-sanitize=all"
echo "UPX_CONFIG_DISABLE_SANITIZE=ON" >> $GITHUB_ENV
fi
echo "ZIG_FLAGS=$ZIG_FLAGS" >> $GITHUB_ENV echo "ZIG_FLAGS=$ZIG_FLAGS" >> $GITHUB_ENV
# run: set -x; zig version; zig-cc --version; zig-cxx --version - run: set -x; zig version; zig-cc --version || true; zig-cxx --version || true
- run: zig-cc -E -x c -dM /dev/null # list predefined macros for C - run: zig-cc -E -x c -dM /dev/null # list predefined macros for C
- run: zig-cxx -E -x c++ -dM /dev/null # list predefined macros for C++ - run: zig-cxx -E -x c++ -dM /dev/null # list predefined macros for C++
- name: ${{ format('Build Release with zig-cc -target {0} {1}', env.ZIG_TARGET, env.ZIG_PIC) }} - name: ${{ format('Build Release with zig-cc -target {0} {1}', env.ZIG_TARGET, env.ZIG_PIC) }}
run: | run: |
make UPX_XTARGET=zig/${ZIG_TARGET}${ZIG_PIC} xtarget/release \ make UPX_XTARGET=zig/${ZIG_TARGET}${ZIG_PIC} xtarget/release \
CC="zig-cc" CXX="zig-cxx" CMAKE_AR="$HOME/.local/bin/zig-ar" CMAKE_RANLIB="$HOME/.local/bin/zig-ranlib" CC="zig-cc" CXX="zig-cxx" CMAKE_AR="$HOME/.local/bin/zig-ar" CMAKE_RANLIB="$HOME/.local/bin/zig-ranlib"
file build/zig/${ZIG_TARGET}${ZIG_PIC}/release/upx*
- name: ${{ format('Build Debug with zig-cc -target {0} {1}', env.ZIG_TARGET, env.ZIG_PIC) }} - name: ${{ format('Build Debug with zig-cc -target {0} {1}', env.ZIG_TARGET, env.ZIG_PIC) }}
run: | run: |
make UPX_XTARGET=zig/${ZIG_TARGET}${ZIG_PIC} xtarget/debug \ make UPX_XTARGET=zig/${ZIG_TARGET}${ZIG_PIC} xtarget/debug \
CC="zig-cc" CXX="zig-cxx" CMAKE_AR="$HOME/.local/bin/zig-ar" CMAKE_RANLIB="$HOME/.local/bin/zig-ranlib" CC="zig-cc" CXX="zig-cxx" CMAKE_AR="$HOME/.local/bin/zig-ar" CMAKE_RANLIB="$HOME/.local/bin/zig-ranlib"
file build/zig/${ZIG_TARGET}${ZIG_PIC}/debug/upx* - run: ls -l build/*/*/*/upx* || true
- run: file build/*/*/*/upx* || true
- name: ${{ format('Make artifact from upx-{0}-{1}', github.ref_name, env.UPX_GITREV_SHORT) }} - name: ${{ format('Make artifact from upx-{0}-{1}', github.ref_name, env.UPX_GITREV_SHORT) }}
shell: bash shell: bash
run: | run: |
@@ -609,14 +734,14 @@ jobs:
(cd build/zig/${ZIG_TARGET}${ZIG_PIC}/release && DESTDIR="$PWD/Install with cmake" cmake --install .) (cd build/zig/${ZIG_TARGET}${ZIG_PIC}/release && DESTDIR="$PWD/Install with cmake" cmake --install .)
(cd build/zig/${ZIG_TARGET}${ZIG_PIC}/release && DESTDIR="$PWD/Install with make" make install) (cd build/zig/${ZIG_TARGET}${ZIG_PIC}/release && DESTDIR="$PWD/Install with make" make install)
- name: Run ctest tests - name: Run ctest tests
if: ${{ matrix.zig_target == 'i386-linux-musl' || matrix.zig_target == 'x86_64-linux-musl' || matrix.zig_target == 'x86_64-linux-gnu.2.3.4' }} if: ${{ matrix.zig_target == 'i386-linux-musl' || matrix.zig_target == 'x86_64-linux-musl' || contains(matrix.zig_target, 'x86_64-linux-gnu.2') }}
run: | run: |
test -n "$NEED_GCOMPAT" && apk add gcompat test -n "$NEED_GCOMPAT" && apk add gcompat
jobs="${ZIG_TARGET}${ZIG_PIC}/debug ${ZIG_TARGET}${ZIG_PIC}/release" jobs="${ZIG_TARGET}${ZIG_PIC}/debug ${ZIG_TARGET}${ZIG_PIC}/release"
echo "===== parallel jobs: $jobs" echo "===== parallel jobs: $jobs"
parallel -kv --lb 'make build/zig/{}+test' ::: $jobs parallel -kv --lb 'make build/zig/{}+test' ::: $jobs
- name: Mimic ctest tests - name: Mimic ctest tests
if: ${{ matrix.zig_target == 'i386-linux-musl' || matrix.zig_target == 'x86_64-linux-musl' || matrix.zig_target == 'x86_64-linux-gnu.2.3.4' }} if: ${{ matrix.zig_target == 'i386-linux-musl' || matrix.zig_target == 'x86_64-linux-musl' || contains(matrix.zig_target, 'x86_64-linux-gnu.2') }}
run: | run: |
test -n "$NEED_GCOMPAT" && apk add gcompat test -n "$NEED_GCOMPAT" && apk add gcompat
jobs="${ZIG_TARGET}${ZIG_PIC}/debug ${ZIG_TARGET}${ZIG_PIC}/release" jobs="${ZIG_TARGET}${ZIG_PIC}/debug ${ZIG_TARGET}${ZIG_PIC}/release"
@@ -633,7 +758,7 @@ jobs:
echo "===== parallel jobs: $jobs" echo "===== parallel jobs: $jobs"
parallel -kv --lb 'cd build/zig/{} && bash ../../../../misc/testsuite/mimic_ctest.sh' ::: $jobs parallel -kv --lb 'cd build/zig/{} && bash ../../../../misc/testsuite/mimic_ctest.sh' ::: $jobs
- name: Mimic ctest tests with Valgrind - name: Mimic ctest tests with Valgrind
if: ${{ matrix.zig_target == 'x86_64-linux-musl' || matrix.zig_target == 'x86_64-linux-gnu.2.3.4' }} if: ${{ matrix.zig_target == 'x86_64-linux-musl' || contains(matrix.zig_target, 'x86_64-linux-gnu.2') }}
run: | run: |
export UPX_CONFIG_DISABLE_EXHAUSTIVE_TESTS=ON # valgrind is SLOW export UPX_CONFIG_DISABLE_EXHAUSTIVE_TESTS=ON # valgrind is SLOW
apk add coreutils valgrind apk add coreutils valgrind
@@ -644,7 +769,7 @@ jobs:
echo "===== parallel jobs: $jobs" echo "===== parallel jobs: $jobs"
parallel -kv --lb 'cd build/zig/{} && bash ../../../../misc/testsuite/mimic_ctest.sh' ::: $jobs parallel -kv --lb 'cd build/zig/{} && bash ../../../../misc/testsuite/mimic_ctest.sh' ::: $jobs
- name: Run file system tests - name: Run file system tests
if: ${{ matrix.zig_target == 'i386-linux-musl' || matrix.zig_target == 'x86_64-linux-musl' || matrix.zig_target == 'x86_64-linux-gnu.2.3.4' }} if: ${{ matrix.zig_target == 'i386-linux-musl' || matrix.zig_target == 'x86_64-linux-musl' || contains(matrix.zig_target, 'x86_64-linux-gnu.2') }}
run: | run: |
apk add coreutils sudo apk add coreutils sudo
test -n "$NEED_GCOMPAT" && apk add gcompat test -n "$NEED_GCOMPAT" && apk add gcompat
+2
View File
@@ -1,6 +1,8 @@
/.cache* /.cache*
/.idea/
/.hg* /.hg*
/.vscode* /.vscode*
/.zed/
/CMakeCache* /CMakeCache*
/CMakeFiles* /CMakeFiles*
/CTest* /CTest*
+4 -1
View File
@@ -30,6 +30,7 @@ endif()
# support functions and some utility # support functions and some utility
include("${CMAKE_CURRENT_SOURCE_DIR}/misc/cmake/functions.cmake") include("${CMAKE_CURRENT_SOURCE_DIR}/misc/cmake/functions.cmake")
upx_print_var(CMAKE_VERSION UPX_CONFIG_CMAKE_MINIMUM_REQUIRED_VERSION CMAKE_GENERATOR) upx_print_var(CMAKE_VERSION UPX_CONFIG_CMAKE_MINIMUM_REQUIRED_VERSION CMAKE_GENERATOR)
upx_print_var(CMAKE_GENERATOR_TOOLSET CMAKE_GENERATOR_PLATFORM)
#*********************************************************************** #***********************************************************************
# options # options
@@ -62,13 +63,15 @@ option(UPX_CONFIG_DISABLE_EXHAUSTIVE_TESTS "Do not run exhaustive tests"
# init # init
#*********************************************************************** #***********************************************************************
set(UPX_VERSION_STRING "5.0.0") # this should match src/version.h set(UPX_VERSION_STRING "5.0.2") # this should match src/version.h
upx_cmake_include_hook(2_init) upx_cmake_include_hook(2_init)
# Disallow in-source build. Note that you will still have to manually # Disallow in-source build. Note that you will still have to manually
# clean up a few files if you accidentally try an in-source build. # clean up a few files if you accidentally try an in-source build.
if(IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/.git")
upx_disallow_in_source_build() upx_disallow_in_source_build()
endif()
# global settings # global settings
if(${CMAKE_VERSION} VERSION_GREATER "3.14.99" AND NOT DEFINED CMAKE_MSVC_RUNTIME_LIBRARY) if(${CMAKE_VERSION} VERSION_GREATER "3.14.99" AND NOT DEFINED CMAKE_MSVC_RUNTIME_LIBRARY)
+6
View File
@@ -2,6 +2,12 @@
User visible changes for UPX User visible changes for UPX
================================================================== ==================================================================
Changes in 5.0.2 (20 Jul 2025):
* bug fixes - see https://github.com/upx/upx/milestone/20
Changes in 5.0.1 (06 May 2025):
* bug fixes - see https://github.com/upx/upx/milestone/19
Changes in 5.0.0 (20 Feb 2025): Changes in 5.0.0 (20 Feb 2025):
* ELF: use of memfd_create supports Enforcing mode of SELinux * ELF: use of memfd_create supports Enforcing mode of SELinux
* ELF: two-step de-compression enables future per-PT_LOAD work * ELF: two-step de-compression enables future per-PT_LOAD work
Generated
+1 -1
View File
@@ -55,7 +55,7 @@
.\" ======================================================================== .\" ========================================================================
.\" .\"
.IX Title "UPX 1" .IX Title "UPX 1"
.TH UPX 1 2025-02-20 "upx 5.0.0" " " .TH UPX 1 2025-07-20 "upx 5.0.2" " "
.\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents. .\" way too many mistakes in technical documents.
.if n .ad l .if n .ad l
+1 -1
View File
@@ -56,7 +56,7 @@ function(upx_print_info)
upx_print_var(UPX_CONFIG_SANITIZE_FLAGS_DEBUG UPX_CONFIG_SANITIZE_FLAGS_RELEASE) upx_print_var(UPX_CONFIG_SANITIZE_FLAGS_DEBUG UPX_CONFIG_SANITIZE_FLAGS_RELEASE)
# shortcuts # shortcuts
upx_print_var(APPLE CLANG CYGWIN GNU_FRONTEND GNUC MINGW MSVC MSVC_FRONTEND MSVC_IDE MSVC_SIMULATE MSVC_TOOLSET_VERSION MSVC_VERSION MSYS UNIX WIN32 WIN64) upx_print_var(AIX APPLE CLANG CYGWIN GNU_FRONTEND GNUC MINGW MSVC MSVC_FRONTEND MSVC_IDE MSVC_SIMULATE MSVC_TOOLSET_VERSION MSVC_VERSION MSYS UNIX WIN32 WIN64)
endfunction() endfunction()
# vim:set ft=cmake ts=4 sw=4 tw=0 et: # vim:set ft=cmake ts=4 sw=4 tw=0 et:
+8 -1
View File
@@ -114,8 +114,14 @@ endif()
if(NOT UPX_CONFIG_DISABLE_EXHAUSTIVE_TESTS) if(NOT UPX_CONFIG_DISABLE_EXHAUSTIVE_TESTS)
foreach(method IN ITEMS nrv2b nrv2d nrv2e lzma) foreach(method IN ITEMS nrv2b nrv2d nrv2e lzma)
foreach(level IN ITEMS 1 2 3 4 5 6 7) foreach(level IN ITEMS 1 2 3 4 5 6 7)
foreach(small IN ITEMS normal small)
set(s "${method}-${level}") set(s "${method}-${level}")
upx_add_test(upx-self-pack-${s} upx --${method} -${level} --all-filters --debug-use-random-filter "${upx_self_exe}" ${fo} -o upx-packed-${s}${exe}) set(ss "")
if(small MATCHES "small")
set(s "${method}-${level}-${small}")
set(ss "--small")
endif()
upx_add_test(upx-self-pack-${s} upx --${method} -${level} ${ss} --all-filters --debug-use-random-filter "${upx_self_exe}" ${fo} -o upx-packed-${s}${exe})
upx_add_test(upx-list-${s} upx -l upx-packed-${s}${exe}) upx_add_test(upx-list-${s} upx -l upx-packed-${s}${exe})
upx_add_test(upx-fileinfo-${s} upx --fileinfo upx-packed-${s}${exe}) upx_add_test(upx-fileinfo-${s} upx --fileinfo upx-packed-${s}${exe})
upx_add_test(upx-test-${s} upx -t upx-packed-${s}${exe}) upx_add_test(upx-test-${s} upx -t upx-packed-${s}${exe})
@@ -137,6 +143,7 @@ if(NOT UPX_CONFIG_DISABLE_EXHAUSTIVE_TESTS)
endif() endif()
endforeach() endforeach()
endforeach() endforeach()
endforeach()
endif() # UPX_CONFIG_DISABLE_EXHAUSTIVE_TESTS endif() # UPX_CONFIG_DISABLE_EXHAUSTIVE_TESTS
# clean up # clean up
+23 -1
View File
@@ -65,6 +65,13 @@ build/extra/clang-lto-auto/release: PHONY; $(call run_config_and_build,$@,Releas
build/extra/clang-lto-auto/%: export CC = clang -flto=auto build/extra/clang-lto-auto/%: export CC = clang -flto=auto
build/extra/clang-lto-auto/%: export CXX = clang++ -flto=auto build/extra/clang-lto-auto/%: export CXX = clang++ -flto=auto
# force building with clang/clang++ -pie
build/extra/clang-pie/debug: PHONY; $(call run_config_and_build,$@,Debug)
build/extra/clang-pie/release: PHONY; $(call run_config_and_build,$@,Release)
build/extra/clang-pie/%: export CC = clang -pie -fPIE -Wno-unused-command-line-argument
build/extra/clang-pie/%: export CXX = clang++ -pie -fPIE -Wno-unused-command-line-argument
build/extra/clang-pie/%: export UPX_CONFIG_DISABLE_SHARED_LIBS = ON
# force building with clang/clang++ -static # force building with clang/clang++ -static
build/extra/clang-static/debug: PHONY; $(call run_config_and_build,$@,Debug) build/extra/clang-static/debug: PHONY; $(call run_config_and_build,$@,Debug)
build/extra/clang-static/release: PHONY; $(call run_config_and_build,$@,Release) build/extra/clang-static/release: PHONY; $(call run_config_and_build,$@,Release)
@@ -102,6 +109,14 @@ build/extra/clang-std-cxx23/%: export CXX = clang++ -std=gnu++2b
build/extra/clang-std-cxx23/%: export UPX_CONFIG_DISABLE_C_STANDARD = ON build/extra/clang-std-cxx23/%: export UPX_CONFIG_DISABLE_C_STANDARD = ON
build/extra/clang-std-cxx23/%: export UPX_CONFIG_DISABLE_CXX_STANDARD = ON build/extra/clang-std-cxx23/%: export UPX_CONFIG_DISABLE_CXX_STANDARD = ON
# force building with clang/clang++ C++26 (and C23)
build/extra/clang-std-cxx26/debug: PHONY; $(call run_config_and_build,$@,Debug)
build/extra/clang-std-cxx26/release: PHONY; $(call run_config_and_build,$@,Release)
build/extra/clang-std-cxx26/%: export CC = clang -std=gnu2x -Wno-constant-logical-operand
build/extra/clang-std-cxx26/%: export CXX = clang++ -std=gnu++2c
build/extra/clang-std-cxx26/%: export UPX_CONFIG_DISABLE_C_STANDARD = ON
build/extra/clang-std-cxx26/%: export UPX_CONFIG_DISABLE_CXX_STANDARD = ON
# force building with gcc/g++ # force building with gcc/g++
build/extra/gcc/debug: PHONY; $(call run_config_and_build,$@,Debug) build/extra/gcc/debug: PHONY; $(call run_config_and_build,$@,Debug)
build/extra/gcc/release: PHONY; $(call run_config_and_build,$@,Release) build/extra/gcc/release: PHONY; $(call run_config_and_build,$@,Release)
@@ -132,6 +147,13 @@ build/extra/gcc-lto-auto/release: PHONY; $(call run_config_and_build,$@,Release)
build/extra/gcc-lto-auto/%: export CC = gcc -flto=auto build/extra/gcc-lto-auto/%: export CC = gcc -flto=auto
build/extra/gcc-lto-auto/%: export CXX = g++ -flto=auto build/extra/gcc-lto-auto/%: export CXX = g++ -flto=auto
# force building with gcc/g++ -pie
build/extra/gcc-pie/debug: PHONY; $(call run_config_and_build,$@,Debug)
build/extra/gcc-pie/release: PHONY; $(call run_config_and_build,$@,Release)
build/extra/gcc-pie/%: export CC = gcc -pie -fPIE
build/extra/gcc-pie/%: export CXX = g++ -pie -fPIE
build/extra/gcc-pie/%: export UPX_CONFIG_DISABLE_SHARED_LIBS = ON
# force building with gcc/g++ -static # force building with gcc/g++ -static
build/extra/gcc-static/debug: PHONY; $(call run_config_and_build,$@,Debug) build/extra/gcc-static/debug: PHONY; $(call run_config_and_build,$@,Debug)
build/extra/gcc-static/release: PHONY; $(call run_config_and_build,$@,Release) build/extra/gcc-static/release: PHONY; $(call run_config_and_build,$@,Release)
@@ -169,7 +191,7 @@ build/extra/gcc-std-cxx23/%: export CXX = g++ -std=gnu++2b
build/extra/gcc-std-cxx23/%: export UPX_CONFIG_DISABLE_C_STANDARD = ON build/extra/gcc-std-cxx23/%: export UPX_CONFIG_DISABLE_C_STANDARD = ON
build/extra/gcc-std-cxx23/%: export UPX_CONFIG_DISABLE_CXX_STANDARD = ON build/extra/gcc-std-cxx23/%: export UPX_CONFIG_DISABLE_CXX_STANDARD = ON
# force building with gcc/g++ C++26 (EXPERIMENTAL; need gcc-14) # force building with gcc/g++ C++26 (and C23)
build/extra/gcc-std-cxx26/debug: PHONY; $(call run_config_and_build,$@,Debug) build/extra/gcc-std-cxx26/debug: PHONY; $(call run_config_and_build,$@,Debug)
build/extra/gcc-std-cxx26/release: PHONY; $(call run_config_and_build,$@,Release) build/extra/gcc-std-cxx26/release: PHONY; $(call run_config_and_build,$@,Release)
build/extra/gcc-std-cxx26/%: export CC = gcc -std=gnu23 build/extra/gcc-std-cxx26/%: export CC = gcc -std=gnu23
+29
View File
@@ -0,0 +1,29 @@
From 741b9d2f24b5796fc499a411f632820ab4f889e5 Mon Sep 17 00:00:00 2001
From: "Markus F.X.J. Oberhumer" <markus@oberhumer.com>
Date: Wed, 9 Apr 2025 20:00:24 +0200
Subject: [PATCH] x
---
lib/libcxx/include/__config | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/lib/libcxx/include/__config b/lib/libcxx/include/__config
index fec323f..a16d145 100644
--- a/lib/libcxx/include/__config
+++ b/lib/libcxx/include/__config
@@ -637,9 +637,11 @@ typedef __char32_t char32_t;
# define _DECLARE_C99_LDBL_MATH 1
# endif
+# if defined(_LIBCPP_HAS_NO_LIBRARY_ALIGNED_ALLOCATION)
+# define _LIBCPP_HAS_LIBRARY_ALIGNED_ALLOCATION 0
// If we are getting operator new from the MSVC CRT, then allocation overloads
// for align_val_t were added in 19.12, aka VS 2017 version 15.3.
-# if defined(_LIBCPP_MSVCRT) && defined(_MSC_VER) && _MSC_VER < 1912
+# elif defined(_LIBCPP_MSVCRT) && defined(_MSC_VER) && _MSC_VER < 1912
# define _LIBCPP_HAS_LIBRARY_ALIGNED_ALLOCATION 0
# elif defined(_LIBCPP_ABI_VCRUNTIME) && !defined(__cpp_aligned_new)
// We're deferring to Microsoft's STL to provide aligned new et al. We don't
--
2.49.0
+2 -2
View File
@@ -16,7 +16,7 @@ RUN dpkg --add-architecture i386 \
# the full UPX binary inside the container via CMake: # the full UPX binary inside the container via CMake:
7zip bat bfs btop bubblewrap busybox bzip2 bzip3 cabextract ccache chrpath cmake cpio \ 7zip bat bfs btop bubblewrap busybox bzip2 bzip3 cabextract ccache chrpath cmake cpio \
dash diffstat direnv elfutils execstack eza fd-find file fish fzf \ dash diffstat direnv elfutils execstack eza fd-find file fish fzf \
g++ gawk gdb gojq ht htop hyperfine jq ksh \ g++ gawk gdb gh gojq ht htop hyperfine jq ksh \
lftp libzstd-dev lsb-release lsd lz4 lzip lzop minify mksh moreutils musl neovim ninja-build \ lftp libzstd-dev lsb-release lsd lz4 lzip lzop minify mksh moreutils musl neovim ninja-build \
p7zip parallel patch patchelf patchutils pax-utils proot \ p7zip parallel patch patchelf patchutils pax-utils proot \
python3 python3-pyasn1 python3-pycryptodome python3-pycurl python3-tomli python3-tomli-w \ python3 python3-pyasn1 python3-pycryptodome python3-pycurl python3-tomli python3-tomli-w \
@@ -62,7 +62,7 @@ RUN cd /root \
# install official UPX release binaries into /usr/local/bin; not required but convenient for testing # install official UPX release binaries into /usr/local/bin; not required but convenient for testing
RUN cd /root \ RUN cd /root \
&& curl -sS -L -O https://github.com/upx/upx/releases/download/v3.91/upx-3.91-amd64_linux.tar.bz2 \ && curl -sS -L -O https://github.com/upx/upx/releases/download/v3.91/upx-3.91-amd64_linux.tar.bz2 \
&& xzversions="3.92 3.93 3.94 3.95 3.96 4.0.0 4.0.1 4.0.2 4.1.0 4.2.0 4.2.1 4.2.2 4.2.3 4.2.4" \ && xzversions="3.92 3.93 3.94 3.95 3.96 4.0.0 4.0.1 4.0.2 4.1.0 4.2.0 4.2.1 4.2.2 4.2.3 4.2.4 5.0.0 5.0.1" \
&& for v in $xzversions; do curl -sS -L -O https://github.com/upx/upx/releases/download/v${v}/upx-${v}-amd64_linux.tar.xz; done \ && for v in $xzversions; do curl -sS -L -O https://github.com/upx/upx/releases/download/v${v}/upx-${v}-amd64_linux.tar.xz; done \
&& for f in ./upx-*.tar.*; do tar -xoaf $f; done \ && for f in ./upx-*.tar.*; do tar -xoaf $f; done \
&& for v in 3.91 $xzversions; do d=upx-${v}-amd64_linux; ./$d/upx -qq -d $d/upx -o /usr/local/bin/upx-${v}; done \ && for v in 3.91 $xzversions; do d=upx-${v}-amd64_linux; ./$d/upx -qq -d $d/upx -o /usr/local/bin/upx-${v}; done \
+118 -114
View File
@@ -2,19 +2,19 @@ Packages:
+++-=============================-=================================-============-================================================================================ +++-=============================-=================================-============-================================================================================
Desired=Unknown/Install/Remove/Purge/Hold Desired=Unknown/Install/Remove/Purge/Hold
ii 7zip 23.01+dfsg-11 amd64 7-Zip file archiver with a high compression ratio ii 7zip 23.01+dfsg-11 amd64 7-Zip file archiver with a high compression ratio
ii apt 2.7.14build2 amd64 commandline package manager ii apt 2.8.3 amd64 commandline package manager
ii aria2 1.37.0+debian-1build3 amd64 High speed download utility ii aria2 1.37.0+debian-1build3 amd64 High speed download utility
ii base-files 13ubuntu10.1 amd64 Debian base system miscellaneous files ii base-files 13ubuntu10.2 amd64 Debian base system miscellaneous files
ii base-passwd 3.6.3build1 amd64 Debian base system master password and group files ii base-passwd 3.6.3build1 amd64 Debian base system master password and group files
ii bash 5.2.21-2ubuntu4 amd64 GNU Bourne Again SHell ii bash 5.2.21-2ubuntu4 amd64 GNU Bourne Again SHell
ii bash-completion 1:2.11-8 all programmable completion for the bash shell ii bash-completion 1:2.11-8 all programmable completion for the bash shell
ii bat 0.24.0-1build1 amd64 cat(1) clone with syntax highlighting and git integration ii bat 0.24.0-1build1 amd64 cat(1) clone with syntax highlighting and git integration
ii bfs 3.1.2-1build1 amd64 Breadth-first version of find(1) ii bfs 3.1.2-1build1 amd64 Breadth-first version of find(1)
ii binutils 2.42-4ubuntu2.3 amd64 GNU assembler, linker and binary utilities ii binutils 2.42-4ubuntu2.5 amd64 GNU assembler, linker and binary utilities
ii binutils-common:amd64 2.42-4ubuntu2.3 amd64 Common files for the GNU assembler, linker and binary utilities ii binutils-common:amd64 2.42-4ubuntu2.5 amd64 Common files for the GNU assembler, linker and binary utilities
ii binutils-x86-64-linux-gnu 2.42-4ubuntu2.3 amd64 GNU binary utilities, for x86-64-linux-gnu target ii binutils-x86-64-linux-gnu 2.42-4ubuntu2.5 amd64 GNU binary utilities, for x86-64-linux-gnu target
ii bsdextrautils 2.39.3-9ubuntu6.1 amd64 extra utilities from 4.4BSD-Lite ii bsdextrautils 2.39.3-9ubuntu6.2 amd64 extra utilities from 4.4BSD-Lite
ii bsdutils 1:2.39.3-9ubuntu6.1 amd64 basic utilities from 4.4BSD-Lite ii bsdutils 1:2.39.3-9ubuntu6.2 amd64 basic utilities from 4.4BSD-Lite
ii btop 1.3.0-1 amd64 Modern and colorful command line resource monitor that shows usage and stats ii btop 1.3.0-1 amd64 Modern and colorful command line resource monitor that shows usage and stats
ii bubblewrap 0.9.0-1ubuntu0.1 amd64 utility for unprivileged chroot and namespace manipulation ii bubblewrap 0.9.0-1ubuntu0.1 amd64 utility for unprivileged chroot and namespace manipulation
ii busybox 1:1.36.1-6ubuntu3.1 amd64 Tiny utilities for small and embedded systems ii busybox 1:1.36.1-6ubuntu3.1 amd64 Tiny utilities for small and embedded systems
@@ -41,7 +41,7 @@ ii diffutils 1:3.10-1build1 amd64
ii direnv 2.32.1-2ubuntu0.24.04.2 amd64 Utility to set directory specific environment variables ii direnv 2.32.1-2ubuntu0.24.04.2 amd64 Utility to set directory specific environment variables
ii dpkg 1.22.6ubuntu6.1 amd64 Debian package management system ii dpkg 1.22.6ubuntu6.1 amd64 Debian package management system
ii e2fsprogs 1.47.0-2.4~exp1ubuntu4.1 amd64 ext2/ext3/ext4 file system utilities ii e2fsprogs 1.47.0-2.4~exp1ubuntu4.1 amd64 ext2/ext3/ext4 file system utilities
ii elfutils 0.190-1.1build4 amd64 collection of utilities to handle ELF objects ii elfutils 0.190-1.1ubuntu0.1 amd64 collection of utilities to handle ELF objects
ii execstack 0.0.20131005-1.1ubuntu1 amd64 ELF GNU_STACK program header editing utility ii execstack 0.0.20131005-1.1ubuntu1 amd64 ELF GNU_STACK program header editing utility
ii eza 0.18.2-1 amd64 Modern replacement for ls ii eza 0.18.2-1 amd64 Modern replacement for ls
ii fd-find 9.0.0-1 amd64 Simple, fast and user-friendly alternative to find ii fd-find 9.0.0-1 amd64 Simple, fast and user-friendly alternative to find
@@ -67,10 +67,11 @@ ii gcc-14-base:i386 14.2.0-4ubuntu2~24.04 i386
ii gcc-multilib 4:13.2.0-7ubuntu1 amd64 GNU C compiler (multilib files) ii gcc-multilib 4:13.2.0-7ubuntu1 amd64 GNU C compiler (multilib files)
ii gcc-x86-64-linux-gnu 4:13.2.0-7ubuntu1 amd64 GNU C compiler for the amd64 architecture ii gcc-x86-64-linux-gnu 4:13.2.0-7ubuntu1 amd64 GNU C compiler for the amd64 architecture
ii gdb 15.0.50.20240403-0ubuntu1 amd64 GNU Debugger ii gdb 15.0.50.20240403-0ubuntu1 amd64 GNU Debugger
ii gh 2.45.0-1ubuntu0.2 amd64 GitHub CLI, GitHubs official command line tool
ii git 1:2.43.0-1ubuntu7.2 amd64 fast, scalable, distributed revision control system ii git 1:2.43.0-1ubuntu7.2 amd64 fast, scalable, distributed revision control system
ii git-man 1:2.43.0-1ubuntu7.2 all fast, scalable, distributed revision control system (manual pages) ii git-man 1:2.43.0-1ubuntu7.2 all fast, scalable, distributed revision control system (manual pages)
ii gojq 0.12.13-1ubuntu0.24.04.2 amd64 pure Go implementation of jq (program) ii gojq 0.12.13-1ubuntu0.24.04.2 amd64 pure Go implementation of jq (program)
ii gpgv 2.4.4-2ubuntu17 amd64 GNU privacy guard - signature verification tool ii gpgv 2.4.4-2ubuntu17.2 amd64 GNU privacy guard - signature verification tool
ii grep 3.11-4build1 amd64 GNU grep, egrep and fgrep ii grep 3.11-4build1 amd64 GNU grep, egrep and fgrep
ii groff-base 1.23.0-3build2 amd64 GNU troff text-formatting system (base system components) ii groff-base 1.23.0-3build2 amd64 GNU troff text-formatting system (base system components)
ii gzip 1.12-1ubuntu3 amd64 GNU compression utilities ii gzip 1.12-1ubuntu3 amd64 GNU compression utilities
@@ -95,52 +96,52 @@ ii lib32stdc++-13-dev 13.3.0-6ubuntu2~24.04 amd64
ii lib32stdc++6 14.2.0-4ubuntu2~24.04 amd64 GNU Standard C++ Library v3 (32 bit Version) ii lib32stdc++6 14.2.0-4ubuntu2~24.04 amd64 GNU Standard C++ Library v3 (32 bit Version)
ii lib32ubsan1 14.2.0-4ubuntu2~24.04 amd64 UBSan -- undefined behaviour sanitizer (32bit) ii lib32ubsan1 14.2.0-4ubuntu2~24.04 amd64 UBSan -- undefined behaviour sanitizer (32bit)
ii libacl1:amd64 2.3.2-1build1.1 amd64 access control list - shared library ii libacl1:amd64 2.3.2-1build1.1 amd64 access control list - shared library
ii libapt-pkg6.0t64:amd64 2.7.14build2 amd64 package management runtime library ii libapt-pkg6.0t64:amd64 2.8.3 amd64 package management runtime library
ii libarchive13t64:amd64 3.7.2-2ubuntu0.3 amd64 Multi-format archive and compression library (shared library) ii libarchive13t64:amd64 3.7.2-2ubuntu0.4 amd64 Multi-format archive and compression library (shared library)
ii libaria2-0:amd64 1.37.0+debian-1build3 amd64 C++ library interface to aria2 ii libaria2-0:amd64 1.37.0+debian-1build3 amd64 C++ library interface to aria2
ii libasan8:amd64 14.2.0-4ubuntu2~24.04 amd64 AddressSanitizer -- a fast memory error detector ii libasan8:amd64 14.2.0-4ubuntu2~24.04 amd64 AddressSanitizer -- a fast memory error detector
ii libasm1t64:amd64 0.190-1.1build4 amd64 library with a programmable assembler interface ii libasm1t64:amd64 0.190-1.1ubuntu0.1 amd64 library with a programmable assembler interface
ii libassuan0:amd64 2.5.6-1build1 amd64 IPC library for the GnuPG components ii libassuan0:amd64 2.5.6-1build1 amd64 IPC library for the GnuPG components
ii libatomic1:amd64 14.2.0-4ubuntu2~24.04 amd64 support library providing __atomic built-in functions ii libatomic1:amd64 14.2.0-4ubuntu2~24.04 amd64 support library providing __atomic built-in functions
ii libattr1:amd64 1:2.5.2-1build1 amd64 extended attribute handling - shared library ii libattr1:amd64 1:2.5.2-1build1.1 amd64 extended attribute handling - shared library
ii libaudit-common 1:3.1.2-2.1build1.1 all Dynamic library for security auditing - common files ii libaudit-common 1:3.1.2-2.1build1.1 all Dynamic library for security auditing - common files
ii libaudit1:amd64 1:3.1.2-2.1build1.1 amd64 Dynamic library for security auditing ii libaudit1:amd64 1:3.1.2-2.1build1.1 amd64 Dynamic library for security auditing
ii libbabeltrace1:amd64 1.5.11-3build3 amd64 Babeltrace conversion libraries ii libbabeltrace1:amd64 1.5.11-3build3 amd64 Babeltrace conversion libraries
ii libbinutils:amd64 2.42-4ubuntu2.3 amd64 GNU binary utilities (private shared library) ii libbinutils:amd64 2.42-4ubuntu2.5 amd64 GNU binary utilities (private shared library)
ii libblkid1:amd64 2.39.3-9ubuntu6.1 amd64 block device ID library ii libblkid1:amd64 2.39.3-9ubuntu6.2 amd64 block device ID library
ii libbrotli1:amd64 1.1.0-2build2 amd64 library implementing brotli encoder and decoder (shared libraries) ii libbrotli1:amd64 1.1.0-2build2 amd64 library implementing brotli encoder and decoder (shared libraries)
ii libbsd0:amd64 0.12.1-1build1 amd64 utility functions from BSD systems - shared library ii libbsd0:amd64 0.12.1-1build1.1 amd64 utility functions from BSD systems - shared library
ii libbz2-1.0:amd64 1.0.8-5.1build0.1 amd64 high-quality block-sorting file compressor library - runtime ii libbz2-1.0:amd64 1.0.8-5.1build0.1 amd64 high-quality block-sorting file compressor library - runtime
ii libbzip3-0:amd64 1.4.0-1 amd64 better, faster and stronger spiritual successor to bzip2 - runtime ii libbzip3-0:amd64 1.4.0-1 amd64 better, faster and stronger spiritual successor to bzip2 - runtime
ii libc-bin 2.39-0ubuntu8.3 amd64 GNU C Library: Binaries ii libc-bin 2.39-0ubuntu8.4 amd64 GNU C Library: Binaries
ii libc-dev-bin 2.39-0ubuntu8.3 amd64 GNU C Library: Development binaries ii libc-dev-bin 2.39-0ubuntu8.4 amd64 GNU C Library: Development binaries
ii libc6-dbg:amd64 2.39-0ubuntu8.3 amd64 GNU C Library: detached debugging symbols ii libc6-dbg:amd64 2.39-0ubuntu8.4 amd64 GNU C Library: detached debugging symbols
ii libc6-dev-i386 2.39-0ubuntu8.3 amd64 GNU C Library: 32-bit development libraries for AMD64 ii libc6-dev-i386 2.39-0ubuntu8.4 amd64 GNU C Library: 32-bit development libraries for AMD64
ii libc6-dev-x32 2.39-0ubuntu8.3 amd64 GNU C Library: X32 ABI Development Libraries for AMD64 ii libc6-dev-x32 2.39-0ubuntu8.4 amd64 GNU C Library: X32 ABI Development Libraries for AMD64
ii libc6-dev:amd64 2.39-0ubuntu8.3 amd64 GNU C Library: Development Libraries and Header Files ii libc6-dev:amd64 2.39-0ubuntu8.4 amd64 GNU C Library: Development Libraries and Header Files
ii libc6-i386 2.39-0ubuntu8.3 amd64 GNU C Library: 32-bit shared libraries for AMD64 ii libc6-i386 2.39-0ubuntu8.4 amd64 GNU C Library: 32-bit shared libraries for AMD64
ii libc6-x32 2.39-0ubuntu8.3 amd64 GNU C Library: X32 ABI Shared libraries for AMD64 ii libc6-x32 2.39-0ubuntu8.4 amd64 GNU C Library: X32 ABI Shared libraries for AMD64
ii libc6:amd64 2.39-0ubuntu8.3 amd64 GNU C Library: Shared libraries ii libc6:amd64 2.39-0ubuntu8.4 amd64 GNU C Library: Shared libraries
ii libc6:i386 2.39-0ubuntu8.3 i386 GNU C Library: Shared libraries ii libc6:i386 2.39-0ubuntu8.4 i386 GNU C Library: Shared libraries
ii libcap-ng0:amd64 0.8.4-2build2 amd64 alternate POSIX capabilities library ii libcap-ng0:amd64 0.8.4-2build2 amd64 alternate POSIX capabilities library
ii libcap2:amd64 1:2.66-5ubuntu2 amd64 POSIX 1003.1e capabilities (library) ii libcap2:amd64 1:2.66-5ubuntu2.2 amd64 POSIX 1003.1e capabilities (library)
ii libcares2:amd64 1.27.0-1.0ubuntu1 amd64 asynchronous name resolver ii libcares2:amd64 1.27.0-1.0ubuntu1 amd64 asynchronous name resolver
ii libcc1-0:amd64 14.2.0-4ubuntu2~24.04 amd64 GCC cc1 plugin for GDB ii libcc1-0:amd64 14.2.0-4ubuntu2~24.04 amd64 GCC cc1 plugin for GDB
ii libcom-err2:amd64 1.47.0-2.4~exp1ubuntu4.1 amd64 common error description library ii libcom-err2:amd64 1.47.0-2.4~exp1ubuntu4.1 amd64 common error description library
ii libcrypt-dev:amd64 1:4.4.36-4build1 amd64 libcrypt development files ii libcrypt-dev:amd64 1:4.4.36-4build1 amd64 libcrypt development files
ii libcrypt1:amd64 1:4.4.36-4build1 amd64 libcrypt shared library ii libcrypt1:amd64 1:4.4.36-4build1 amd64 libcrypt shared library
ii libctf-nobfd0:amd64 2.42-4ubuntu2.3 amd64 Compact C Type Format library (runtime, no BFD dependency) ii libctf-nobfd0:amd64 2.42-4ubuntu2.5 amd64 Compact C Type Format library (runtime, no BFD dependency)
ii libctf0:amd64 2.42-4ubuntu2.3 amd64 Compact C Type Format library (runtime, BFD dependency) ii libctf0:amd64 2.42-4ubuntu2.5 amd64 Compact C Type Format library (runtime, BFD dependency)
ii libcurl3t64-gnutls:amd64 8.5.0-2ubuntu10.6 amd64 easy-to-use client-side URL transfer library (GnuTLS flavour) ii libcurl3t64-gnutls:amd64 8.5.0-2ubuntu10.6 amd64 easy-to-use client-side URL transfer library (GnuTLS flavour)
ii libcurl4t64:amd64 8.5.0-2ubuntu10.6 amd64 easy-to-use client-side URL transfer library (OpenSSL flavour) ii libcurl4t64:amd64 8.5.0-2ubuntu10.6 amd64 easy-to-use client-side URL transfer library (OpenSSL flavour)
ii libdb5.3t64:amd64 5.3.28+dfsg2-7 amd64 Berkeley v5.3 Database Libraries [runtime] ii libdb5.3t64:amd64 5.3.28+dfsg2-7 amd64 Berkeley v5.3 Database Libraries [runtime]
ii libdebconfclient0:amd64 0.271ubuntu3 amd64 Debian Configuration Management System (C-implementation library) ii libdebconfclient0:amd64 0.271ubuntu3 amd64 Debian Configuration Management System (C-implementation library)
ii libdebuginfod-common 0.190-1.1build4 all configuration to enable the Debian debug info server ii libdebuginfod-common 0.190-1.1ubuntu0.1 all configuration to enable the Debian debug info server
ii libdebuginfod1t64:amd64 0.190-1.1build4 amd64 library to interact with debuginfod (development files) ii libdebuginfod1t64:amd64 0.190-1.1ubuntu0.1 amd64 library to interact with debuginfod (development files)
ii libdw1t64:amd64 0.190-1.1build4 amd64 library that provides access to the DWARF debug information ii libdw1t64:amd64 0.190-1.1ubuntu0.1 amd64 library that provides access to the DWARF debug information
ii libelf1t64:amd64 0.190-1.1build4 amd64 library to read and write ELF files ii libelf1t64:amd64 0.190-1.1ubuntu0.1 amd64 library to read and write ELF files
ii liberror-perl 0.17029-2 all Perl module for error/exception handling in an OO-ish way ii liberror-perl 0.17029-2 all Perl module for error/exception handling in an OO-ish way
ii libexpat1:amd64 2.6.1-2ubuntu0.2 amd64 XML parsing C library - runtime library ii libexpat1:amd64 2.6.1-2ubuntu0.3 amd64 XML parsing C library - runtime library
ii libext2fs2t64:amd64 1.47.0-2.4~exp1ubuntu4.1 amd64 ext2/ext3/ext4 file system libraries ii libext2fs2t64:amd64 1.47.0-2.4~exp1ubuntu4.1 amd64 ext2/ext3/ext4 file system libraries
ii libffi8:amd64 3.4.6-1build1 amd64 Foreign Function Interface library runtime ii libffi8:amd64 3.4.6-1build1 amd64 Foreign Function Interface library runtime
ii libgcc-13-dev:amd64 13.3.0-6ubuntu2~24.04 amd64 GCC support library (development files) ii libgcc-13-dev:amd64 13.3.0-6ubuntu2~24.04 amd64 GCC support library (development files)
@@ -150,52 +151,52 @@ ii libgcrypt20:amd64 1.10.3-2build1 amd64
ii libgdbm-compat4t64:amd64 1.23-5.1build1 amd64 GNU dbm database routines (legacy support runtime version) ii libgdbm-compat4t64:amd64 1.23-5.1build1 amd64 GNU dbm database routines (legacy support runtime version)
ii libgdbm6t64:amd64 1.23-5.1build1 amd64 GNU dbm database routines (runtime version) ii libgdbm6t64:amd64 1.23-5.1build1 amd64 GNU dbm database routines (runtime version)
ii libgit2-1.7:amd64 1.7.2+ds-1ubuntu3 amd64 low-level Git library ii libgit2-1.7:amd64 1.7.2+ds-1ubuntu3 amd64 low-level Git library
ii libglib2.0-0t64:amd64 2.80.0-6ubuntu3.2 amd64 GLib library of C routines ii libglib2.0-0t64:amd64 2.80.0-6ubuntu3.4 amd64 GLib library of C routines
ii libgmp10:amd64 2:6.3.0+dfsg-2ubuntu6 amd64 Multiprecision arithmetic library ii libgmp10:amd64 2:6.3.0+dfsg-2ubuntu6.1 amd64 Multiprecision arithmetic library
ii libgnutls30t64:amd64 3.8.3-1.1ubuntu3.2 amd64 GNU TLS library - main runtime library ii libgnutls30t64:amd64 3.8.3-1.1ubuntu3.3 amd64 GNU TLS library - main runtime library
ii libgomp1:amd64 14.2.0-4ubuntu2~24.04 amd64 GCC OpenMP (GOMP) support library ii libgomp1:amd64 14.2.0-4ubuntu2~24.04 amd64 GCC OpenMP (GOMP) support library
ii libgpg-error0:amd64 1.47-3build2 amd64 GnuPG development runtime library ii libgpg-error0:amd64 1.47-3build2.1 amd64 GnuPG development runtime library
ii libgprofng0:amd64 2.42-4ubuntu2.3 amd64 GNU Next Generation profiler (runtime library) ii libgprofng0:amd64 2.42-4ubuntu2.5 amd64 GNU Next Generation profiler (runtime library)
ii libgssapi-krb5-2:amd64 1.20.1-6ubuntu2.2 amd64 MIT Kerberos runtime libraries - krb5 GSS-API Mechanism ii libgssapi-krb5-2:amd64 1.20.1-6ubuntu2.6 amd64 MIT Kerberos runtime libraries - krb5 GSS-API Mechanism
ii libhiredis1.1.0:amd64 1.2.0-6ubuntu3 amd64 minimalistic C client library for Redis ii libhiredis1.1.0:amd64 1.2.0-6ubuntu3 amd64 minimalistic C client library for Redis
ii libhogweed6t64:amd64 3.9.1-2.2build1.1 amd64 low level cryptographic library (public-key cryptos) ii libhogweed6t64:amd64 3.9.1-2.2build1.1 amd64 low level cryptographic library (public-key cryptos)
ii libhttp-parser2.9:amd64 2.9.4-6build1 amd64 parser for HTTP messages written in C ii libhttp-parser2.9:amd64 2.9.4-6build1 amd64 parser for HTTP messages written in C
ii libhwasan0:amd64 14.2.0-4ubuntu2~24.04 amd64 AddressSanitizer -- a fast memory error detector ii libhwasan0:amd64 14.2.0-4ubuntu2~24.04 amd64 AddressSanitizer -- a fast memory error detector
ii libicu74:amd64 74.2-1ubuntu3.1 amd64 International Components for Unicode ii libicu74:amd64 74.2-1ubuntu3.1 amd64 International Components for Unicode
ii libidn2-0:amd64 2.3.7-2build1 amd64 Internationalized domain names (IDNA2008/TR46) library ii libidn2-0:amd64 2.3.7-2build1.1 amd64 Internationalized domain names (IDNA2008/TR46) library
ii libio-pty-perl 1:1.20-1build2 amd64 Perl module for pseudo tty IO ii libio-pty-perl 1:1.20-1build2 amd64 Perl module for pseudo tty IO
ii libipc-run-perl 20231003.0-1 all Perl module for running processes ii libipc-run-perl 20231003.0-1 all Perl module for running processes
ii libipt2 2.0.6-1build1 amd64 Intel Processor Trace Decoder Library ii libipt2 2.0.6-1build1 amd64 Intel Processor Trace Decoder Library
ii libisl23:amd64 0.26-3build1 amd64 manipulating sets and relations of integer points bounded by linear constraints ii libisl23:amd64 0.26-3build1.1 amd64 manipulating sets and relations of integer points bounded by linear constraints
ii libitm1:amd64 14.2.0-4ubuntu2~24.04 amd64 GNU Transactional Memory Library ii libitm1:amd64 14.2.0-4ubuntu2~24.04 amd64 GNU Transactional Memory Library
ii libjansson4:amd64 2.14-2build2 amd64 C library for encoding, decoding and manipulating JSON data ii libjansson4:amd64 2.14-2build2 amd64 C library for encoding, decoding and manipulating JSON data
ii libjq1:amd64 1.7.1-3build1 amd64 lightweight and flexible command-line JSON processor - shared library ii libjq1:amd64 1.7.1-3build1 amd64 lightweight and flexible command-line JSON processor - shared library
ii libjsoncpp25:amd64 1.9.5-6build1 amd64 library for reading and writing JSON for C++ ii libjsoncpp25:amd64 1.9.5-6build1 amd64 library for reading and writing JSON for C++
ii libk5crypto3:amd64 1.20.1-6ubuntu2.2 amd64 MIT Kerberos runtime libraries - Crypto Library ii libk5crypto3:amd64 1.20.1-6ubuntu2.6 amd64 MIT Kerberos runtime libraries - Crypto Library
ii libkeyutils1:amd64 1.6.3-3build1 amd64 Linux Key Management Utilities (library) ii libkeyutils1:amd64 1.6.3-3build1 amd64 Linux Key Management Utilities (library)
ii libkrb5-3:amd64 1.20.1-6ubuntu2.2 amd64 MIT Kerberos runtime libraries ii libkrb5-3:amd64 1.20.1-6ubuntu2.6 amd64 MIT Kerberos runtime libraries
ii libkrb5support0:amd64 1.20.1-6ubuntu2.2 amd64 MIT Kerberos runtime libraries - Support library ii libkrb5support0:amd64 1.20.1-6ubuntu2.6 amd64 MIT Kerberos runtime libraries - Support library
ii libldap2:amd64 2.6.7+dfsg-1~exp1ubuntu8.1 amd64 OpenLDAP libraries ii libldap2:amd64 2.6.7+dfsg-1~exp1ubuntu8.2 amd64 OpenLDAP libraries
ii liblsan0:amd64 14.2.0-4ubuntu2~24.04 amd64 LeakSanitizer -- a memory leak detector (runtime) ii liblsan0:amd64 14.2.0-4ubuntu2~24.04 amd64 LeakSanitizer -- a memory leak detector (runtime)
ii libluajit-5.1-2:amd64 2.1.0+git20231223.c525bcb+dfsg-1 amd64 Just in time compiler for Lua - library version ii libluajit-5.1-2:amd64 2.1.0+git20231223.c525bcb+dfsg-1 amd64 Just in time compiler for Lua - library version
ii libluajit-5.1-common 2.1.0+git20231223.c525bcb+dfsg-1 all Just in time compiler for Lua - common files ii libluajit-5.1-common 2.1.0+git20231223.c525bcb+dfsg-1 all Just in time compiler for Lua - common files
ii liblz4-1:amd64 1.9.4-1build1.1 amd64 Fast LZ compression algorithm library - runtime ii liblz4-1:amd64 1.9.4-1build1.1 amd64 Fast LZ compression algorithm library - runtime
ii liblzma5:amd64 5.6.1+really5.4.5-1build0.1 amd64 XZ-format compression library ii liblzma5:amd64 5.6.1+really5.4.5-1ubuntu0.2 amd64 XZ-format compression library
ii liblzo2-2:amd64 2.10-2build4 amd64 data compression library ii liblzo2-2:amd64 2.10-2build4 amd64 data compression library
ii libmagic-mgc 1:5.45-3build1 amd64 File type determination library using "magic" numbers (compiled magic file) ii libmagic-mgc 1:5.45-3build1 amd64 File type determination library using "magic" numbers (compiled magic file)
ii libmagic1t64:amd64 1:5.45-3build1 amd64 Recognize the type of data in a file using "magic" numbers - library ii libmagic1t64:amd64 1:5.45-3build1 amd64 Recognize the type of data in a file using "magic" numbers - library
ii libmd0:amd64 1.1.0-2build1 amd64 message digest functions from BSD systems - shared library ii libmd0:amd64 1.1.0-2build1.1 amd64 message digest functions from BSD systems - shared library
ii libmount1:amd64 2.39.3-9ubuntu6.1 amd64 device mounting library ii libmount1:amd64 2.39.3-9ubuntu6.2 amd64 device mounting library
ii libmpc3:amd64 1.3.1-1build1 amd64 multiple precision complex floating-point library ii libmpc3:amd64 1.3.1-1build1.1 amd64 multiple precision complex floating-point library
ii libmpfr6:amd64 4.2.1-1build1 amd64 multiple precision floating-point computation ii libmpfr6:amd64 4.2.1-1build1.1 amd64 multiple precision floating-point computation
ii libmsgpackc2:amd64 4.0.0-3build1 amd64 binary-based efficient object serialization library ii libmsgpackc2:amd64 4.0.0-3build1 amd64 binary-based efficient object serialization library
ii libmspack0t64:amd64 0.11-1.1build1 amd64 library for Microsoft compression formats (shared library) ii libmspack0t64:amd64 0.11-1.1build1 amd64 library for Microsoft compression formats (shared library)
ii libncurses6:amd64 6.4+20240113-1ubuntu2 amd64 shared libraries for terminal handling ii libncurses6:amd64 6.4+20240113-1ubuntu2 amd64 shared libraries for terminal handling
ii libncursesw6:amd64 6.4+20240113-1ubuntu2 amd64 shared libraries for terminal handling (wide character support) ii libncursesw6:amd64 6.4+20240113-1ubuntu2 amd64 shared libraries for terminal handling (wide character support)
ii libnettle8t64:amd64 3.9.1-2.2build1.1 amd64 low level cryptographic library (symmetric and one-way cryptos) ii libnettle8t64:amd64 3.9.1-2.2build1.1 amd64 low level cryptographic library (symmetric and one-way cryptos)
ii libnghttp2-14:amd64 1.59.0-1ubuntu0.1 amd64 library implementing HTTP/2 protocol (shared library) ii libnghttp2-14:amd64 1.59.0-1ubuntu0.2 amd64 library implementing HTTP/2 protocol (shared library)
ii libnl-3-200:amd64 3.7.0-0.3build1 amd64 library for dealing with netlink sockets ii libnl-3-200:amd64 3.7.0-0.3build1.1 amd64 library for dealing with netlink sockets
ii libnl-genl-3-200:amd64 3.7.0-0.3build1 amd64 library for dealing with netlink sockets - generic netlink ii libnl-genl-3-200:amd64 3.7.0-0.3build1.1 amd64 library for dealing with netlink sockets - generic netlink
ii libnpth0t64:amd64 1.6-3.1build1 amd64 replacement for GNU Pth using system threads ii libnpth0t64:amd64 1.6-3.1build1 amd64 replacement for GNU Pth using system threads
ii libonig5:amd64 6.9.9-1build1 amd64 regular expressions library ii libonig5:amd64 6.9.9-1build1 amd64 regular expressions library
ii libp11-kit0:amd64 0.25.3-4ubuntu2.1 amd64 library for loading and coordinating access to PKCS#11 modules - runtime ii libp11-kit0:amd64 0.25.3-4ubuntu2.1 amd64 library for loading and coordinating access to PKCS#11 modules - runtime
@@ -203,18 +204,18 @@ ii libpam-modules-bin 1.5.3-5ubuntu5.1 amd64
ii libpam-modules:amd64 1.5.3-5ubuntu5.1 amd64 Pluggable Authentication Modules for PAM ii libpam-modules:amd64 1.5.3-5ubuntu5.1 amd64 Pluggable Authentication Modules for PAM
ii libpam-runtime 1.5.3-5ubuntu5.1 all Runtime support for the PAM library ii libpam-runtime 1.5.3-5ubuntu5.1 all Runtime support for the PAM library
ii libpam0g:amd64 1.5.3-5ubuntu5.1 amd64 Pluggable Authentication Modules library ii libpam0g:amd64 1.5.3-5ubuntu5.1 amd64 Pluggable Authentication Modules library
ii libpcre2-32-0:amd64 10.42-4ubuntu2 amd64 New Perl Compatible Regular Expression Library - 32 bit runtime files ii libpcre2-32-0:amd64 10.42-4ubuntu2.1 amd64 New Perl Compatible Regular Expression Library - 32 bit runtime files
ii libpcre2-8-0:amd64 10.42-4ubuntu2 amd64 New Perl Compatible Regular Expression Library- 8 bit runtime files ii libpcre2-8-0:amd64 10.42-4ubuntu2.1 amd64 New Perl Compatible Regular Expression Library- 8 bit runtime files
ii libperl5.38t64:amd64 5.38.2-3.2build2 amd64 shared Perl library ii libperl5.38t64:amd64 5.38.2-3.2ubuntu0.1 amd64 shared Perl library
ii libpipeline1:amd64 1.5.7-2 amd64 Unix process pipeline manipulation library ii libpipeline1:amd64 1.5.7-2 amd64 Unix process pipeline manipulation library
ii libpopt0:amd64 1.19+dfsg-1build1 amd64 lib for parsing cmdline parameters ii libpopt0:amd64 1.19+dfsg-1build1 amd64 lib for parsing cmdline parameters
ii libproc2-0:amd64 2:4.0.4-4ubuntu3.2 amd64 library for accessing process information from /proc ii libproc2-0:amd64 2:4.0.4-4ubuntu3.2 amd64 library for accessing process information from /proc
ii libpsl5t64:amd64 0.21.2-1.1build1 amd64 Library for Public Suffix List (shared libraries) ii libpsl5t64:amd64 0.21.2-1.1build1 amd64 Library for Public Suffix List (shared libraries)
ii libpython2.7-minimal:amd64 2.7.18-8+deb11u1 amd64 Minimal subset of the Python language (version 2.7) ii libpython2.7-minimal:amd64 2.7.18-8+deb11u1 amd64 Minimal subset of the Python language (version 2.7)
ii libpython3-stdlib:amd64 3.12.3-0ubuntu2 amd64 interactive high-level object-oriented language (default python3 version) ii libpython3-stdlib:amd64 3.12.3-0ubuntu2 amd64 interactive high-level object-oriented language (default python3 version)
ii libpython3.12-minimal:amd64 3.12.3-1ubuntu0.3 amd64 Minimal subset of the Python language (version 3.12) ii libpython3.12-minimal:amd64 3.12.3-1ubuntu0.5 amd64 Minimal subset of the Python language (version 3.12)
ii libpython3.12-stdlib:amd64 3.12.3-1ubuntu0.3 amd64 Interactive high-level object-oriented language (standard library, version 3.12) ii libpython3.12-stdlib:amd64 3.12.3-1ubuntu0.5 amd64 Interactive high-level object-oriented language (standard library, version 3.12)
ii libpython3.12t64:amd64 3.12.3-1ubuntu0.3 amd64 Shared Python runtime library (version 3.12) ii libpython3.12t64:amd64 3.12.3-1ubuntu0.5 amd64 Shared Python runtime library (version 3.12)
ii libquadmath0:amd64 14.2.0-4ubuntu2~24.04 amd64 GCC Quad-Precision Math Library ii libquadmath0:amd64 14.2.0-4ubuntu2~24.04 amd64 GCC Quad-Precision Math Library
ii libreadline8t64:amd64 8.2-4build1 amd64 GNU readline and history libraries, run-time libraries ii libreadline8t64:amd64 8.2-4build1 amd64 GNU readline and history libraries, run-time libraries
ii librhash0:amd64 1.4.3-3build1 amd64 shared library for hash functions computing ii librhash0:amd64 1.4.3-3build1 amd64 shared library for hash functions computing
@@ -222,27 +223,27 @@ ii librtmp1:amd64 2.4+20151223.gitfa8646d.1-2build7 amd64
ii libsasl2-2:amd64 2.1.28+dfsg1-5ubuntu3.1 amd64 Cyrus SASL - authentication abstraction library ii libsasl2-2:amd64 2.1.28+dfsg1-5ubuntu3.1 amd64 Cyrus SASL - authentication abstraction library
ii libsasl2-modules-db:amd64 2.1.28+dfsg1-5ubuntu3.1 amd64 Cyrus SASL - pluggable authentication modules (DB) ii libsasl2-modules-db:amd64 2.1.28+dfsg1-5ubuntu3.1 amd64 Cyrus SASL - pluggable authentication modules (DB)
ii libseccomp2:amd64 2.5.5-1ubuntu3.1 amd64 high level interface to Linux seccomp filter ii libseccomp2:amd64 2.5.5-1ubuntu3.1 amd64 high level interface to Linux seccomp filter
ii libselinux1:amd64 3.5-2ubuntu2 amd64 SELinux runtime shared libraries ii libselinux1:amd64 3.5-2ubuntu2.1 amd64 SELinux runtime shared libraries
ii libsemanage-common 3.5-1build5 all Common files for SELinux policy management libraries ii libsemanage-common 3.5-1build5 all Common files for SELinux policy management libraries
ii libsemanage2:amd64 3.5-1build5 amd64 SELinux policy management library ii libsemanage2:amd64 3.5-1build5 amd64 SELinux policy management library
ii libsensors-config 1:3.6.0-9build1 all lm-sensors configuration files ii libsensors-config 1:3.6.0-9build1 all lm-sensors configuration files
ii libsensors5:amd64 1:3.6.0-9build1 amd64 library to read temperature/voltage/fan sensors ii libsensors5:amd64 1:3.6.0-9build1 amd64 library to read temperature/voltage/fan sensors
ii libsepol2:amd64 3.5-2build1 amd64 SELinux library for manipulating binary security policies ii libsepol2:amd64 3.5-2build1 amd64 SELinux library for manipulating binary security policies
ii libsframe1:amd64 2.42-4ubuntu2.3 amd64 Library to handle the SFrame format (runtime library) ii libsframe1:amd64 2.42-4ubuntu2.5 amd64 Library to handle the SFrame format (runtime library)
ii libsigsegv2:amd64 2.14-1ubuntu2 amd64 Library for handling page faults in a portable way ii libsigsegv2:amd64 2.14-1ubuntu2 amd64 Library for handling page faults in a portable way
ii libsmartcols1:amd64 2.39.3-9ubuntu6.1 amd64 smart column output alignment library ii libsmartcols1:amd64 2.39.3-9ubuntu6.2 amd64 smart column output alignment library
ii libsource-highlight-common 3.1.9-4.3build1 all architecture-independent files for source highlighting library ii libsource-highlight-common 3.1.9-4.3build1 all architecture-independent files for source highlighting library
ii libsource-highlight4t64:amd64 3.1.9-4.3build1 amd64 source highlighting library ii libsource-highlight4t64:amd64 3.1.9-4.3build1 amd64 source highlighting library
ii libsqlite3-0:amd64 3.45.1-1ubuntu2 amd64 SQLite 3 shared library ii libsqlite3-0:amd64 3.45.1-1ubuntu2.3 amd64 SQLite 3 shared library
ii libss2:amd64 1.47.0-2.4~exp1ubuntu4.1 amd64 command-line interface parsing library ii libss2:amd64 1.47.0-2.4~exp1ubuntu4.1 amd64 command-line interface parsing library
ii libssh-4:amd64 0.10.6-2build2 amd64 tiny C SSH library (OpenSSL flavor) ii libssh-4:amd64 0.10.6-2build2 amd64 tiny C SSH library (OpenSSL flavor)
ii libssh2-1t64:amd64 1.11.0-4.1build2 amd64 SSH2 client-side library ii libssh2-1t64:amd64 1.11.0-4.1build2 amd64 SSH2 client-side library
ii libssl3t64:amd64 3.0.13-0ubuntu3.4 amd64 Secure Sockets Layer toolkit - shared libraries ii libssl3t64:amd64 3.0.13-0ubuntu3.5 amd64 Secure Sockets Layer toolkit - shared libraries
ii libstdc++-13-dev:amd64 13.3.0-6ubuntu2~24.04 amd64 GNU Standard C++ Library v3 (development files) ii libstdc++-13-dev:amd64 13.3.0-6ubuntu2~24.04 amd64 GNU Standard C++ Library v3 (development files)
ii libstdc++6:amd64 14.2.0-4ubuntu2~24.04 amd64 GNU Standard C++ Library v3 ii libstdc++6:amd64 14.2.0-4ubuntu2~24.04 amd64 GNU Standard C++ Library v3
ii libsystemd0:amd64 255.4-1ubuntu8.4 amd64 systemd utility library ii libsystemd0:amd64 255.4-1ubuntu8.6 amd64 systemd utility library
ii libtalloc2:amd64 2.4.2-1build2 amd64 hierarchical pool based memory allocator ii libtalloc2:amd64 2.4.2-1build2 amd64 hierarchical pool based memory allocator
ii libtasn1-6:amd64 4.19.0-3build1 amd64 Manage ASN.1 structures (runtime) ii libtasn1-6:amd64 4.19.0-3ubuntu0.24.04.1 amd64 Manage ASN.1 structures (runtime)
ii libtermkey1:amd64 0.22-1 amd64 library for processing keyboard input ii libtermkey1:amd64 0.22-1 amd64 library for processing keyboard input
ii libtime-duration-perl 1.21-2 all module for rounded or exact English expression of durations ii libtime-duration-perl 1.21-2 all module for rounded or exact English expression of durations
ii libtimedate-perl 2.3300-2 all collection of modules to manipulate date/time information ii libtimedate-perl 2.3300-2 all collection of modules to manipulate date/time information
@@ -251,13 +252,13 @@ ii libtree-sitter0:amd64 0.20.8-2 amd64
ii libtsan2:amd64 14.2.0-4ubuntu2~24.04 amd64 ThreadSanitizer -- a Valgrind-based detector of data races (runtime) ii libtsan2:amd64 14.2.0-4ubuntu2~24.04 amd64 ThreadSanitizer -- a Valgrind-based detector of data races (runtime)
ii libubsan1:amd64 14.2.0-4ubuntu2~24.04 amd64 UBSan -- undefined behaviour sanitizer (runtime) ii libubsan1:amd64 14.2.0-4ubuntu2~24.04 amd64 UBSan -- undefined behaviour sanitizer (runtime)
ii libuchardet0:amd64 0.0.8-1build1 amd64 universal charset detection library - shared library ii libuchardet0:amd64 0.0.8-1build1 amd64 universal charset detection library - shared library
ii libudev1:amd64 255.4-1ubuntu8.4 amd64 libudev shared library ii libudev1:amd64 255.4-1ubuntu8.6 amd64 libudev shared library
ii libunibilium4:amd64 2.1.0-3 amd64 simple, self-contained terminfo library ii libunibilium4:amd64 2.1.0-3 amd64 simple, self-contained terminfo library
ii libunistring5:amd64 1.1-2build1 amd64 Unicode string library for C ii libunistring5:amd64 1.1-2build1.1 amd64 Unicode string library for C
ii libunwind8:amd64 1.6.2-3build1 amd64 library to determine the call-chain of a program - runtime ii libunwind8:amd64 1.6.2-3build1.1 amd64 library to determine the call-chain of a program - runtime
ii liburing2:amd64 2.5-1build1 amd64 Linux kernel io_uring access library - shared library ii liburing2:amd64 2.5-1build1 amd64 Linux kernel io_uring access library - shared library
ii libutempter0:amd64 1.2.1-3build1 amd64 privileged helper for utmp/wtmp updates (runtime) ii libutempter0:amd64 1.2.1-3build1 amd64 privileged helper for utmp/wtmp updates (runtime)
ii libuuid1:amd64 2.39.3-9ubuntu6.1 amd64 Universally Unique ID library ii libuuid1:amd64 2.39.3-9ubuntu6.2 amd64 Universally Unique ID library
ii libuv1t64:amd64 1.48.0-1.1build1 amd64 asynchronous event notification library - runtime library ii libuv1t64:amd64 1.48.0-1.1build1 amd64 asynchronous event notification library - runtime library
ii libvterm0:amd64 0.3.3-2build1 amd64 abstract terminal library ii libvterm0:amd64 0.3.3-2build1 amd64 abstract terminal library
ii libwrap0:amd64 7.6.q-33 amd64 Wietse Venema's TCP wrappers library ii libwrap0:amd64 7.6.q-33 amd64 Wietse Venema's TCP wrappers library
@@ -276,12 +277,12 @@ ii libx32ubsan1 14.2.0-4ubuntu2~24.04 amd64
ii libxau6:amd64 1:1.0.9-1build6 amd64 X11 authorisation library ii libxau6:amd64 1:1.0.9-1build6 amd64 X11 authorisation library
ii libxcb1:amd64 1.15-1ubuntu2 amd64 X C Binding ii libxcb1:amd64 1.15-1ubuntu2 amd64 X C Binding
ii libxdmcp6:amd64 1:1.1.3-0ubuntu6 amd64 X11 Display Manager Control Protocol library ii libxdmcp6:amd64 1:1.1.3-0ubuntu6 amd64 X11 Display Manager Control Protocol library
ii libxml2:amd64 2.9.14+dfsg-1.3ubuntu3 amd64 GNOME XML library ii libxml2:amd64 2.9.14+dfsg-1.3ubuntu3.3 amd64 GNOME XML library
ii libxxhash0:amd64 0.8.2-2build1 amd64 shared library for xxhash ii libxxhash0:amd64 0.8.2-2build1 amd64 shared library for xxhash
ii libyaml-0-2:amd64 0.2.5-1build1 amd64 Fast YAML 1.1 parser and emitter library ii libyaml-0-2:amd64 0.2.5-1build1 amd64 Fast YAML 1.1 parser and emitter library
ii libzstd-dev:amd64 1.5.5+dfsg2-2build1.1 amd64 fast lossless compression algorithm -- development files ii libzstd-dev:amd64 1.5.5+dfsg2-2build1.1 amd64 fast lossless compression algorithm -- development files
ii libzstd1:amd64 1.5.5+dfsg2-2build1.1 amd64 fast lossless compression algorithm ii libzstd1:amd64 1.5.5+dfsg2-2build1.1 amd64 fast lossless compression algorithm
ii linux-libc-dev:amd64 6.8.0-51.52 amd64 Linux Kernel Headers for development ii linux-libc-dev:amd64 6.8.0-60.63 amd64 Linux Kernel Headers for development
ii login 1:4.13+dfsg1-4ubuntu3.2 amd64 system login tools ii login 1:4.13+dfsg1-4ubuntu3.2 amd64 system login tools
ii logsave 1.47.0-2.4~exp1ubuntu4.1 amd64 save the output of a command in a log file ii logsave 1.47.0-2.4~exp1ubuntu4.1 amd64 save the output of a command in a log file
ii lsb-release 12.0-2 all Linux Standard Base version reporting utility (minimal implementation) ii lsb-release 12.0-2 all Linux Standard Base version reporting utility (minimal implementation)
@@ -297,7 +298,7 @@ ii media-types 10.1.0 all
ii minify 2.20.17-1 amd64 CLI implementation of the Go minify library package ii minify 2.20.17-1 amd64 CLI implementation of the Go minify library package
ii mksh 59c-37 amd64 MirBSD Korn Shell ii mksh 59c-37 amd64 MirBSD Korn Shell
ii moreutils 0.69-1 amd64 additional Unix utilities ii moreutils 0.69-1 amd64 additional Unix utilities
ii mount 2.39.3-9ubuntu6.1 amd64 tools for mounting and manipulating filesystems ii mount 2.39.3-9ubuntu6.2 amd64 tools for mounting and manipulating filesystems
ii musl:amd64 1.2.4-2 amd64 standard C library ii musl:amd64 1.2.4-2 amd64 standard C library
ii ncurses-base 6.4+20240113-1ubuntu2 all basic terminal type definitions ii ncurses-base 6.4+20240113-1ubuntu2 all basic terminal type definitions
ii ncurses-bin 6.4+20240113-1ubuntu2 amd64 terminal-related programs and man pages ii ncurses-bin 6.4+20240113-1ubuntu2 amd64 terminal-related programs and man pages
@@ -306,7 +307,7 @@ ii neovim 0.9.5-6ubuntu2 amd64
ii neovim-runtime 0.9.5-6ubuntu2 all heavily refactored vim fork (runtime files) ii neovim-runtime 0.9.5-6ubuntu2 all heavily refactored vim fork (runtime files)
ii netbase 6.4 all Basic TCP/IP networking system ii netbase 6.4 all Basic TCP/IP networking system
ii ninja-build 1.11.1-2 amd64 small build system closest in spirit to Make ii ninja-build 1.11.1-2 amd64 small build system closest in spirit to Make
ii openssl 3.0.13-0ubuntu3.4 amd64 Secure Sockets Layer toolkit - cryptographic utility ii openssl 3.0.13-0ubuntu3.5 amd64 Secure Sockets Layer toolkit - cryptographic utility
ii p7zip 16.02+transitional.1 all transitional package ii p7zip 16.02+transitional.1 all transitional package
ii parallel 20231122+ds-1 all build and execute command lines from standard input in parallel ii parallel 20231122+ds-1 all build and execute command lines from standard input in parallel
ii passwd 1:4.13+dfsg1-4ubuntu3.2 amd64 change and administer password and group data ii passwd 1:4.13+dfsg1-4ubuntu3.2 amd64 change and administer password and group data
@@ -314,9 +315,9 @@ ii patch 2.7.6-7build3 amd64
ii patchelf 0.18.0-1.1build1 amd64 modify properties of ELF executables ii patchelf 0.18.0-1.1build1 amd64 modify properties of ELF executables
ii patchutils 0.4.2-1build3 amd64 Utilities to work with patches ii patchutils 0.4.2-1build3 amd64 Utilities to work with patches
ii pax-utils 1.3.7-1 amd64 Security-focused ELF files checking tool ii pax-utils 1.3.7-1 amd64 Security-focused ELF files checking tool
ii perl 5.38.2-3.2build2 amd64 Larry Wall's Practical Extraction and Report Language ii perl 5.38.2-3.2ubuntu0.1 amd64 Larry Wall's Practical Extraction and Report Language
ii perl-base 5.38.2-3.2build2 amd64 minimal Perl system ii perl-base 5.38.2-3.2ubuntu0.1 amd64 minimal Perl system
ii perl-modules-5.38 5.38.2-3.2build2 all Core Perl modules ii perl-modules-5.38 5.38.2-3.2ubuntu0.1 all Core Perl modules
ii procps 2:4.0.4-4ubuntu3.2 amd64 /proc file system utilities ii procps 2:4.0.4-4ubuntu3.2 amd64 /proc file system utilities
ii proot 5.1.0-1.3 amd64 emulate chroot, bind mount and binfmt_misc for non-root users ii proot 5.1.0-1.3 amd64 emulate chroot, bind mount and binfmt_misc for non-root users
ii python2.7-minimal 2.7.18-8+deb11u1 amd64 Minimal subset of the Python language (version 2.7) ii python2.7-minimal 2.7.18-8+deb11u1 amd64 Minimal subset of the Python language (version 2.7)
@@ -333,8 +334,8 @@ ii python3-tomli-w 1.0.0-2 all
ii python3-xmltodict 0.13.0-1 all Makes working with XML feel like you are working with JSON (Python 3) ii python3-xmltodict 0.13.0-1 all Makes working with XML feel like you are working with JSON (Python 3)
ii python3-yaml 6.0.1-2build2 amd64 YAML parser and emitter for Python3 ii python3-yaml 6.0.1-2build2 amd64 YAML parser and emitter for Python3
ii python3-zstd 1.5.5.1-1build1 amd64 python bindings to Yann Collet ZSTD compression library ii python3-zstd 1.5.5.1-1build1 amd64 python bindings to Yann Collet ZSTD compression library
ii python3.12 3.12.3-1ubuntu0.3 amd64 Interactive high-level object-oriented language (version 3.12) ii python3.12 3.12.3-1ubuntu0.5 amd64 Interactive high-level object-oriented language (version 3.12)
ii python3.12-minimal 3.12.3-1ubuntu0.3 amd64 Minimal subset of the Python language (version 3.12) ii python3.12-minimal 3.12.3-1ubuntu0.5 amd64 Minimal subset of the Python language (version 3.12)
ii re2c 3.1-1build1 amd64 lexer generator for C, C++, Go and Rust ii re2c 3.1-1build1 amd64 lexer generator for C, C++, Go and Rust
ii readline-common 8.2-4build1 all GNU readline and history libraries, common files ii readline-common 8.2-4build1 all GNU readline and history libraries, common files
ii ripgrep 14.1.0-1 amd64 Recursively searches directories for a regex pattern ii ripgrep 14.1.0-1 amd64 Recursively searches directories for a regex pattern
@@ -349,18 +350,19 @@ ii sysstat 12.6.1-2 amd64
ii sysvinit-utils 3.08-6ubuntu3 amd64 System-V-like utilities ii sysvinit-utils 3.08-6ubuntu3 amd64 System-V-like utilities
ii tar 1.35+dfsg-3build1 amd64 GNU version of the tar archiving utility ii tar 1.35+dfsg-3build1 amd64 GNU version of the tar archiving utility
ii time 1.9-0.2build1 amd64 GNU time program for measuring CPU resource usage ii time 1.9-0.2build1 amd64 GNU time program for measuring CPU resource usage
ii tzdata 2024a-3ubuntu1.1 all time zone and daylight-saving time data ii tzdata 2025b-0ubuntu0.24.04.1 all time zone and daylight-saving time data
ii ubuntu-keyring 2023.11.28.1 all GnuPG keys of the Ubuntu archive ii ubuntu-keyring 2023.11.28.1 all GnuPG keys of the Ubuntu archive
ii ucf 3.0043+nmu1 all Update Configuration File(s): preserve user changes to config files ii ucf 3.0043+nmu1 all Update Configuration File(s): preserve user changes to config files
ii universal-ctags 5.9.20210829.0-1 amd64 build tag file indexes of source code definitions ii universal-ctags 5.9.20210829.0-1 amd64 build tag file indexes of source code definitions
ii unminimize 0.2.1 amd64 Un-minimize your minimial images or setup
ii unzip 6.0-28ubuntu4.1 amd64 De-archiver for .zip files ii unzip 6.0-28ubuntu4.1 amd64 De-archiver for .zip files
ii util-linux 2.39.3-9ubuntu6.1 amd64 miscellaneous system utilities ii util-linux 2.39.3-9ubuntu6.2 amd64 miscellaneous system utilities
ii valgrind 1:3.22.0-0ubuntu3 amd64 instrumentation framework for building dynamic analysis tools ii valgrind 1:3.22.0-0ubuntu3 amd64 instrumentation framework for building dynamic analysis tools
ii wget 1.21.4-1ubuntu4.1 amd64 retrieves files from the web ii wget 1.21.4-1ubuntu4.1 amd64 retrieves files from the web
ii xz-utils 5.6.1+really5.4.5-1build0.1 amd64 XZ-format compression utilities ii xz-utils 5.6.1+really5.4.5-1ubuntu0.2 amd64 XZ-format compression utilities
ii yash 2.55-2 amd64 yet another shell ii yash 2.55-2 amd64 yet another shell
ii yq 3.1.0-3 all Command-line YAML processor - jq wrapper for YAML documents ii yq 3.1.0-3 all Command-line YAML processor - jq wrapper for YAML documents
ii zip 3.0-13ubuntu0.1 amd64 Archiver for .zip files ii zip 3.0-13ubuntu0.2 amd64 Archiver for .zip files
ii zlib1g-dev:amd64 1:1.3.dfsg-3.1ubuntu2.1 amd64 compression library - development ii zlib1g-dev:amd64 1:1.3.dfsg-3.1ubuntu2.1 amd64 compression library - development
ii zlib1g:amd64 1:1.3.dfsg-3.1ubuntu2.1 amd64 compression library - runtime ii zlib1g:amd64 1:1.3.dfsg-3.1ubuntu2.1 amd64 compression library - runtime
ii zlib1g:i386 1:1.3.dfsg-3.1ubuntu2.1 i386 compression library - runtime ii zlib1g:i386 1:1.3.dfsg-3.1ubuntu2.1 i386 compression library - runtime
@@ -373,9 +375,10 @@ ii zstd 1.5.5+dfsg2-2build1.1 amd64
||/ Name Version Architecture Description ||/ Name Version Architecture Description
Packages sorted by Installed-Size: Packages sorted by Installed-Size:
971174 ===== TOTAL (367 packages) 1015747 ===== TOTAL (369 packages)
76943 valgrind amd64 76943 valgrind amd64
61333 gcc-13-x86-64-linux-gnu amd64 61333 gcc-13-x86-64-linux-gnu amd64
44381 gh amd64
36493 cmake amd64 36493 cmake amd64
35919 libicu74 amd64 35919 libicu74 amd64
33545 g++-13-x86-64-linux-gnu amd64 33545 g++-13-x86-64-linux-gnu amd64
@@ -393,15 +396,15 @@ Packages sorted by Installed-Size:
12321 fish-common all 12321 fish-common all
12297 libc6 i386 12297 libc6 i386
12004 libc6-x32 amd64 12004 libc6-x32 amd64
11993 libc6-i386 amd64 11989 libc6-i386 amd64
11549 binutils-x86-64-linux-gnu amd64 11549 binutils-x86-64-linux-gnu amd64
11176 libc6-dbg amd64 11182 libc6-dbg amd64
10984 cmake-data all 10984 cmake-data all
10791 libasan8 amd64 10791 libasan8 amd64
9704 libx32asan8 amd64 9704 libx32asan8 amd64
9539 lib32asan8 amd64 9539 lib32asan8 amd64
9017 libpython3.12-stdlib amd64 9017 libpython3.12-stdlib amd64
8905 libpython3.12t64 amd64 8917 libpython3.12t64 amd64
8902 libtsan2 amd64 8902 libtsan2 amd64
8335 libmagic-mgc amd64 8335 libmagic-mgc amd64
8296 lib32gcc-13-dev amd64 8296 lib32gcc-13-dev amd64
@@ -409,7 +412,7 @@ Packages sorted by Installed-Size:
7924 python3.12-minimal amd64 7924 python3.12-minimal amd64
7913 perl-base amd64 7913 perl-base amd64
7531 libx32gcc-13-dev amd64 7531 libx32gcc-13-dev amd64
7332 linux-libc-dev amd64 7437 linux-libc-dev amd64
7226 lib32stdc++-13-dev amd64 7226 lib32stdc++-13-dev amd64
7059 libx32stdc++-13-dev amd64 7059 libx32stdc++-13-dev amd64
7024 direnv amd64 7024 direnv amd64
@@ -421,12 +424,12 @@ Packages sorted by Installed-Size:
6158 7zip amd64 6158 7zip amd64
5219 bat amd64 5219 bat amd64
5210 ripgrep amd64 5210 ripgrep amd64
5178 libpython3.12-minimal amd64 5179 libpython3.12-minimal amd64
4897 libhwasan0 amd64 4897 libhwasan0 amd64
4341 ncurses-term all 4341 ncurses-term all
4244 minify amd64 4244 minify amd64
4193 libglib2.0-0t64 amd64 4193 libglib2.0-0t64 amd64
4103 apt amd64 4108 apt amd64
4074 gojq amd64 4074 gojq amd64
3956 python3-pycryptodome amd64 3956 python3-pycryptodome amd64
3833 libgprofng0 amd64 3833 libgprofng0 amd64
@@ -441,13 +444,13 @@ Packages sorted by Installed-Size:
3403 libaria2-0 amd64 3403 libaria2-0 amd64
3382 fd-find amd64 3382 fd-find amd64
3364 libubsan1 amd64 3364 libubsan1 amd64
3244 libapt-pkg6.0t64 amd64 3249 libapt-pkg6.0t64 amd64
3181 libx32ubsan1 amd64 3181 libx32ubsan1 amd64
3111 ksh93u+m amd64 3111 ksh93u+m amd64
3110 libstdc++6 amd64 3110 libstdc++6 amd64
3104 lib32ubsan1 amd64 3104 lib32ubsan1 amd64
2995 parallel all 2995 parallel all
2957 elfutils amd64 2958 elfutils amd64
2928 man-db amd64 2928 man-db amd64
2894 lib32stdc++6 amd64 2894 lib32stdc++6 amd64
2810 libx32stdc++6 amd64 2810 libx32stdc++6 amd64
@@ -455,12 +458,12 @@ Packages sorted by Installed-Size:
2431 zsh amd64 2431 zsh amd64
2419 passwd amd64 2419 passwd amd64
2352 libgnutls30t64 amd64 2352 libgnutls30t64 amd64
2346 libbinutils amd64 2350 libbinutils amd64
2191 ht amd64 2191 ht amd64
2183 libc-bin amd64 2183 libc-bin amd64
2163 git-man all 2163 git-man all
2103 strace amd64 2103 strace amd64
2078 libxml2 amd64 2079 libxml2 amd64
2032 libisl23 amd64 2032 libisl23 amd64
2009 universal-ctags amd64 2009 universal-ctags amd64
1980 aria2 amd64 1980 aria2 amd64
@@ -472,7 +475,7 @@ Packages sorted by Installed-Size:
1761 libdb5.3t64 amd64 1761 libdb5.3t64 amd64
1757 libunistring5 amd64 1757 libunistring5 amd64
1736 gawk amd64 1736 gawk amd64
1730 libsqlite3-0 amd64 1731 libsqlite3-0 amd64
1712 libp11-kit0 amd64 1712 libp11-kit0 amd64
1634 mksh amd64 1634 mksh amd64
1610 socat amd64 1610 socat amd64
@@ -483,7 +486,7 @@ Packages sorted by Installed-Size:
1452 sysstat amd64 1452 sysstat amd64
1448 yash amd64 1448 yash amd64
1396 libgcrypt20 amd64 1396 libgcrypt20 amd64
1381 tzdata all 1387 tzdata all
1362 libx11-6 amd64 1362 libx11-6 amd64
1342 libx11-data all 1342 libx11-data all
1322 zlib1g-dev amd64 1322 zlib1g-dev amd64
@@ -495,7 +498,7 @@ Packages sorted by Installed-Size:
1142 eza amd64 1142 eza amd64
1136 zoxide amd64 1136 zoxide amd64
1025 libsystemd0 amd64 1025 libsystemd0 amd64
1014 libkrb5-3 amd64 1015 libkrb5-3 amd64
996 screen amd64 996 screen amd64
925 libcurl4t64 amd64 925 libcurl4t64 amd64
916 wget amd64 916 wget amd64
@@ -507,7 +510,7 @@ Packages sorted by Installed-Size:
812 lua-luv amd64 812 lua-luv amd64
785 musl amd64 785 musl amd64
781 rsync amd64 781 rsync amd64
765 libdw1t64 amd64 766 libdw1t64 amd64
761 libzstd1 amd64 761 libzstd1 amd64
751 libsepol2 amd64 751 libsepol2 amd64
745 libsource-highlight4t64 amd64 745 libsource-highlight4t64 amd64
@@ -521,15 +524,15 @@ Packages sorted by Installed-Size:
624 python3-pyelftools all 624 python3-pyelftools all
614 lib32quadmath0 amd64 614 lib32quadmath0 amd64
602 libluajit-5.1-2 amd64 602 libluajit-5.1-2 amd64
560 binutils-common amd64 564 binutils-common amd64
556 libtinfo6 amd64 556 libtinfo6 amd64
554 libpcre2-32-0 amd64 554 libpcre2-32-0 amd64
553 gcc-13 amd64 553 gcc-13 amd64
552 findutils amd64 552 findutils amd64
543 libgmp10 amd64 543 libgmp10 amd64
540 libldap2 amd64
538 libext2fs2t64 amd64 538 libext2fs2t64 amd64
536 zip amd64 536 zip amd64
536 libldap2 amd64
521 curl amd64 521 curl amd64
512 python3-yaml amd64 512 python3-yaml amd64
508 libbabeltrace1 amd64 508 libbabeltrace1 amd64
@@ -537,17 +540,17 @@ Packages sorted by Installed-Size:
493 debconf all 493 debconf all
467 libreadline8t64 amd64 467 libreadline8t64 amd64
452 diffutils amd64 452 diffutils amd64
426 libgssapi-krb5-2 amd64
426 base-files amd64 426 base-files amd64
425 libgssapi-krb5-2 amd64
424 libnettle8t64 amd64 424 libnettle8t64 amd64
424 htop amd64 424 htop amd64
422 libncursesw6 amd64 422 libncursesw6 amd64
415 libssh2-1t64 amd64 415 libssh2-1t64 amd64
404 make amd64 404 make amd64
389 python3-pyasn1 all 389 python3-pyasn1 all
388 libexpat1 amd64
386 ca-certificates all 386 ca-certificates all
384 ncurses-base all 384 ncurses-base all
384 libexpat1 amd64
379 liblzma5 amd64 379 liblzma5 amd64
375 unzip amd64 375 unzip amd64
373 libgomp1 amd64 373 libgomp1 amd64
@@ -568,7 +571,7 @@ Packages sorted by Installed-Size:
314 libudev1 amd64 314 libudev1 amd64
311 libx32quadmath0 amd64 311 libx32quadmath0 amd64
309 less amd64 309 less amd64
306 libctf-nobfd0 amd64 307 libctf-nobfd0 amd64
305 libsource-highlight-common all 305 libsource-highlight-common all
300 libquadmath0 amd64 300 libquadmath0 amd64
289 libblkid1 amd64 289 libblkid1 amd64
@@ -581,7 +584,7 @@ Packages sorted by Installed-Size:
270 pax-utils amd64 270 pax-utils amd64
270 libpam-modules-bin amd64 270 libpam-modules-bin amd64
264 libuv1t64 amd64 264 libuv1t64 amd64
257 libk5crypto3 amd64 258 libk5crypto3 amd64
255 libipc-run-perl all 255 libipc-run-perl all
254 base-passwd amd64 254 base-passwd amd64
245 rpcsvc-proto amd64 245 rpcsvc-proto amd64
@@ -605,6 +608,7 @@ Packages sorted by Installed-Size:
209 libpam0g amd64 209 libpam0g amd64
207 libuchardet0 amd64 207 libuchardet0 amd64
206 proot amd64 206 proot amd64
204 libelf1t64 amd64
202 python3-pycurl amd64 202 python3-pycurl amd64
200 libselinux1 amd64 200 libselinux1 amd64
200 libnghttp2-14 amd64 200 libnghttp2-14 amd64
@@ -612,7 +616,6 @@ Packages sorted by Installed-Size:
198 libtree-sitter0 amd64 198 libtree-sitter0 amd64
197 libgcc-s1 amd64 197 libgcc-s1 amd64
196 libxcb1 amd64 196 libxcb1 amd64
196 libelf1t64 amd64
188 libx32gcc-s1 amd64 188 libx32gcc-s1 amd64
187 libunwind8 amd64 187 libunwind8 amd64
187 dash amd64 187 dash amd64
@@ -622,7 +625,7 @@ Packages sorted by Installed-Size:
171 libsmartcols1 amd64 171 libsmartcols1 amd64
163 zlib1g amd64 163 zlib1g amd64
163 lzip amd64 163 lzip amd64
159 binutils amd64 160 binutils amd64
158 zlib1g i386 158 zlib1g i386
157 lzop amd64 157 lzop amd64
157 liblzo2-2 amd64 157 liblzo2-2 amd64
@@ -636,15 +639,15 @@ Packages sorted by Installed-Size:
143 libseccomp2 amd64 143 libseccomp2 amd64
137 librtmp1 amd64 137 librtmp1 amd64
136 libhiredis1.1.0 amd64 136 libhiredis1.1.0 amd64
132 libkrb5support0 amd64 133 libkrb5support0 amd64
131 libipt2 amd64 131 libipt2 amd64
130 init-system-helpers all 130 init-system-helpers all
130 bubblewrap amd64 130 bubblewrap amd64
127 libsframe1 amd64
127 libbsd0 amd64 127 libbsd0 amd64
126 time amd64 126 time amd64
126 libsframe1 amd64
123 libtimedate-perl all 123 libtimedate-perl all
121 libtasn1-6 amd64 122 libtasn1-6 amd64
120 libpopt0 amd64 120 libpopt0 amd64
115 libitm1 amd64 115 libitm1 amd64
113 gcc-13-base amd64 113 gcc-13-base amd64
@@ -662,7 +665,7 @@ Packages sorted by Installed-Size:
100 libassuan0 amd64 100 libassuan0 amd64
99 libpsl5t64 amd64 99 libpsl5t64 amd64
98 libmspack0t64 amd64 98 libmspack0t64 amd64
97 libcap2 amd64 98 libcap2 amd64
96 liburing2 amd64 96 liburing2 amd64
95 libunibilium4 amd64 95 libunibilium4 amd64
95 libjansson4 amd64 95 libjansson4 amd64
@@ -681,14 +684,14 @@ Packages sorted by Installed-Size:
77 readline-common all 77 readline-common all
77 python3-toml all 77 python3-toml all
75 libsasl2-modules-db amd64 75 libsasl2-modules-db amd64
74 libasm1t64 amd64 75 libasm1t64 amd64
74 libacl1 amd64 74 libacl1 amd64
72 libffi8 amd64 72 libffi8 amd64
72 diffstat amd64 72 diffstat amd64
70 libdebuginfod1t64 amd64
69 yq all 69 yq all
69 libss2 amd64 69 libss2 amd64
69 liberror-perl all 69 liberror-perl all
69 libdebuginfod1t64 amd64
67 libpipeline1 amd64 67 libpipeline1 amd64
66 libhttp-parser2.9 amd64 66 libhttp-parser2.9 amd64
66 bzip3 amd64 66 bzip3 amd64
@@ -703,7 +706,7 @@ Packages sorted by Installed-Size:
53 libnl-genl-3-200 amd64 53 libnl-genl-3-200 amd64
51 logsave amd64 51 logsave amd64
51 libutempter0 amd64 51 libutempter0 amd64
50 libdebuginfod-common all 51 libdebuginfod-common all
49 libatomic1 amd64 49 libatomic1 amd64
48 libmsgpackc2 amd64 48 libmsgpackc2 amd64
47 python3-xmltodict all 47 python3-xmltodict all
@@ -733,6 +736,7 @@ Packages sorted by Installed-Size:
20 cpp-x86-64-linux-gnu amd64 20 cpp-x86-64-linux-gnu amd64
17 lsb-release all 17 lsb-release all
17 libaudit-common all 17 libaudit-common all
16 unminimize amd64
13 g++ amd64 13 g++ amd64
11 g++-x86-64-linux-gnu amd64 11 g++-x86-64-linux-gnu amd64
11 cpp-13 amd64 11 cpp-13 amd64
+4 -5
View File
@@ -25,13 +25,12 @@ LC_ALL=C sort -z | xargs -0r perl -n -e '
if (m,[\x00\x01\x02\x7f\xfe\xff],) { print "ERROR: binary file detected $ARGV: $_"; exit(1); } if (m,[\x00\x01\x02\x7f\xfe\xff],) { print "ERROR: binary file detected $ARGV: $_"; exit(1); }
if (m,[\r\x1a],) { print "ERROR: DOS EOL detected $ARGV: $_"; exit(1); } if (m,[\r\x1a],) { print "ERROR: DOS EOL detected $ARGV: $_"; exit(1); }
if (m,([ \t]+)$,) { if (m,([ \t]+)$,) {
# allow exactly two trailing spaces for GitHub flavoured Markdown in .md files if ($ARGV =~ m,\.patch$,) { }
if ($1 ne " " || $ARGV !~ m,\.md$,) { else { print "ERROR: trailing whitespace detected $ARGV: $_"; exit(1); }
print "ERROR: trailing whitespace detected $ARGV: $_"; exit(1);
}
} }
if (m,\t,) { if (m,\t,) {
if ($ARGV =~ m,(^|/)(gnu|m)?make(file|vars),i) { } if ($ARGV =~ m,\.patch$,) { }
elsif ($ARGV =~ m,(^|/)(gnu|m)?make(file|vars),i) { }
elsif ($ARGV =~ m,\.mk$,) { } elsif ($ARGV =~ m,\.mk$,) { }
elsif ($ARGV =~ m,/tmp/.*\.(disasm|dump)$,) { } elsif ($ARGV =~ m,/tmp/.*\.(disasm|dump)$,) { }
elsif ($ARGV =~ m,/src/stub/src/arch/.*/lzma\w+\.S$,) { } elsif ($ARGV =~ m,/src/stub/src/arch/.*/lzma\w+\.S$,) { }
+4 -5
View File
@@ -19,13 +19,12 @@ git ls-files --full-name -z | perl -0 -n -e '
if (m,[\x00\x01\x02\x7f\xfe\xff],) { print "ERROR: binary file detected $ARGV: $_"; exit(1); } if (m,[\x00\x01\x02\x7f\xfe\xff],) { print "ERROR: binary file detected $ARGV: $_"; exit(1); }
if (m,[\r\x1a],) { print "ERROR: DOS EOL detected $ARGV: $_"; exit(1); } if (m,[\r\x1a],) { print "ERROR: DOS EOL detected $ARGV: $_"; exit(1); }
if (m,([ \t]+)$,) { if (m,([ \t]+)$,) {
# allow exactly two trailing spaces for GitHub flavoured Markdown in .md files if ($ARGV =~ m,\.patch$,) { }
if ($1 ne " " || $ARGV !~ m,\.md$,) { else { print "ERROR: trailing whitespace detected $ARGV: $_"; exit(1); }
print "ERROR: trailing whitespace detected $ARGV: $_"; exit(1);
}
} }
if (m,\t,) { if (m,\t,) {
if ($ARGV =~ m,(^|/)(gnu|m)?make(file|vars),i) { } if ($ARGV =~ m,\.patch$,) { }
elsif ($ARGV =~ m,(^|/)(gnu|m)?make(file|vars),i) { }
elsif ($ARGV =~ m,\.mk$,) { } elsif ($ARGV =~ m,\.mk$,) { }
elsif ($ARGV =~ m,/tmp/.*\.(disasm|dump)$,) { } elsif ($ARGV =~ m,/tmp/.*\.(disasm|dump)$,) { }
elsif ($ARGV =~ m,/src/stub/src/arch/.*/lzma\w+\.S$,) { } elsif ($ARGV =~ m,/src/stub/src/arch/.*/lzma\w+\.S$,) { }
+14 -1
View File
@@ -16,6 +16,12 @@ argv0=$0; argv0abs=$(readlink -fn "$argv0"); argv0dir=$(dirname "$argv0abs")
# $upx_exe_runner (e.g. "qemu-x86_64 -cpu Nehalem" or "valgrind") # $upx_exe_runner (e.g. "qemu-x86_64 -cpu Nehalem" or "valgrind")
# #
# Debugging aid for locating failing commands. Depends on 'bash' shell.
# (BASH_LINENO is relative to current FUNCTION only; non-function ==> 0)
# Notice single-quoting of entire first argument.
trap 'echo ERROR: pwd=\"$PWD\" file=\"$BASH_SOURCE\" line=${BASH_LINENO[0]} cmd=\"$BASH_COMMAND\"' ERR
# Example: "false a b c" ==> ERROR: pwd="path/misc/testsuite" file="./mimic_ctest.sh" line=0 cmd="false a b c"
#*********************************************************************** #***********************************************************************
# init & checks # init & checks
#*********************************************************************** #***********************************************************************
@@ -148,9 +154,15 @@ if [[ $UPX_CONFIG_DISABLE_EXHAUSTIVE_TESTS != ON ]]; then
set +x set +x
for method in nrv2b nrv2d nrv2e lzma; do for method in nrv2b nrv2d nrv2e lzma; do
for level in 1 2 3 4 5 6 7; do for level in 1 2 3 4 5 6 7; do
for small in normal small; do
s="${method}-${level}" s="${method}-${level}"
ss=
if [[ $small == "small" ]]; then
s="${method}-${level}-${small}"
ss="--small"
fi
echo "========== $s ==========" echo "========== $s =========="
"${run_upx[@]}" -qq --${method} -${level} --all-filters --debug-use-random-filter "${upx_self_exe}" ${fo} -o upx-packed-${s}${exe} "${run_upx[@]}" -qq --${method} -${level} ${ss} --all-filters --debug-use-random-filter "${upx_self_exe}" ${fo} -o upx-packed-${s}${exe}
"${run_upx[@]}" -qq -l upx-packed-${s}${exe} "${run_upx[@]}" -qq -l upx-packed-${s}${exe}
"${run_upx[@]}" -qq --fileinfo upx-packed-${s}${exe} "${run_upx[@]}" -qq --fileinfo upx-packed-${s}${exe}
"${run_upx[@]}" -qq -t upx-packed-${s}${exe} "${run_upx[@]}" -qq -t upx-packed-${s}${exe}
@@ -161,6 +173,7 @@ if [[ $UPX_CONFIG_DISABLE_EXHAUSTIVE_TESTS != ON ]]; then
fi fi
done done
done done
done
fi fi
echo "run_upx='${run_upx[*]}'" echo "run_upx='${run_upx[*]}'"
+46
View File
@@ -0,0 +1,46 @@
#! /usr/bin/env bash
## vim:set ts=4 sw=4 et:
set -e; set -o pipefail
argv0=$0; argv0abs=$(readlink -fn "$argv0"); argv0dir=$(dirname "$argv0abs")
#
# Copyright (C) Markus Franz Xaver Johannes Oberhumer
#
# mimic running "ctest", i.e. the "test" section of CMakeLists.txt
# - does not redirect stdout
# - allows freely setting $upx_exe_runner, while CMake is restricted to configure-time settings
#
# requires:
# $upx_exe (required, but with convenience fallback "./upx")
# optional settings:
# $upx_exe_runner (e.g. "qemu-x86_64 -cpu Nehalem" or "valgrind")
#
cat >catch-sigsegv.gdb <<'EOF'
catch signal SIGSEGV
commands
x/i $pc
info reg
x/32i $pc-0x20
quit 77
end
EOF
catcher=$(readlink -fn catch-sigsegv.gdb)
function emu_gdb() {
gdb -q -x "$catcher" <<EOF --args "$@"
run
EOF
}
if [[ -n $upx_exe_runner ]]; then
true
elif [[ -n $CMAKE_CROSSCOMPILING_EMULATOR ]]; then
true
else
upx_exe_runner=emu_gdb
true
fi
source "$argv0dir/mimic_ctest.sh"
+147 -147
View File
@@ -46,164 +46,164 @@ b8c35fa2956da17ca505956e9f5017bb5f3a746322647e24ccb8ff28059cafa4 *powerpc-linux.
a0950546dc17fca9437219431d8ddb0249ce5b08e899e0c799a87ac982adee70 *powerpc64le-linux.elf/upx-3.95 a0950546dc17fca9437219431d8ddb0249ce5b08e899e0c799a87ac982adee70 *powerpc64le-linux.elf/upx-3.95
" "
expected_sha256sums__t110_compress_ucl_nrv2b_3_no_filter="\ expected_sha256sums__t110_compress_ucl_nrv2b_3_no_filter="\
f0c85faf008ad8e51e71f9c29122fe23cce8e584fdea2c7a56b1b49bf9bfe8bc *amd64-linux.elf/upx-3.91 919f31ec6a70a81159f4fc1d3cd4e9d66800a242df2fac9e339a36e1bf648091 *amd64-linux.elf/upx-3.91
82c13304a9799c5afb1963bc666f888e0c05923cb088d8d2bcc62c4aa734ad8f *amd64-linux.elf/upx-3.95 548e950c9f082eb0eb42b18411bbc257365cfc9c937ab20f501ebf0db5850d25 *amd64-linux.elf/upx-3.95
f3a107343e8bf9d079cf669c34139bc2c99695b87881e440e5441c0403548d1f *amd64-win64.pe/upx-3.95.exe 822718cc0f6ac5e57bb23eeb65be6f3f7e73df8b062853abddcc924ec8207596 *amd64-win64.pe/upx-3.95.exe
862dc98313017cda5c7f5bc859cd7c46c203ad8da95fbf3784dbc0229672af43 *arm-linux.elf/upx-3.95 4d8b2a8f29b38e097287e550d11810d7ecd4c5f07744545b3a315de908987bf6 *arm-linux.elf/upx-3.95
e6636ae5cf7f54cbe65f3768f0858d5045b0b67e087b85ddcab029d76ca46e7d *arm-wince.pe/upx-3.91.exe 1440d6b44968954baf56fbc2a0739a51873455876114d4445ae4b67cb5e7893b *arm-wince.pe/upx-3.91.exe
3f3223911d8044d2e32eb3b185bbe5a148f8719fd19cdba7fc3f5e389019e994 *arm64-linux.elf/upx-3.95 04c08626d4b03a4e969018eed7093c24de191b5d27db2a25221b134827806929 *arm64-linux.elf/upx-3.95
c91d57c236864a6237566ac9ee32e2b1aa89bcecf688a548d6b9e80339c7fcbc *armeb-linux.elf/upx-3.91 6c8b276a0b611402d336b43cf8514b9a8d98be4f55a8301e784b7b88031b2b85 *armeb-linux.elf/upx-3.91
5ffe5dadc9c0b18f427c6a13de0065946d4437ff43ef260c48702d5ba3a0d7e6 *armeb-linux.elf/upx-3.95 dcd0c0060d44886966ae4e97b79a2c172f02d56228ea76dbc5c880ad59ef4ee5 *armeb-linux.elf/upx-3.95
a5ba2584080983aada1956c12692189742f4e0bf878b60e19a9ec1bc4228f301 *i386-dos32.djgpp2.coff/upx-3.91.exe a7ee051c5f9dcf233e2ee248274121b99fb8f098eff95469bc0638a7423723f0 *i386-dos32.djgpp2.coff/upx-3.91.exe
1cd743f67f24c2588b99cfca15299bc4237fc1667f1d0615f8be995fac1696a3 *i386-dos32.djgpp2.coff/upx-3.95.exe 85cf31be166cb59587a99419cdd0fc5a79825d7508ab2c9a4bc0d700d603354d *i386-dos32.djgpp2.coff/upx-3.95.exe
6af6e47762c51b8789c11619bd95fef07cacb1b8f875ee8139e903fa1cc764d7 *i386-linux.elf/upx-3.91 fc7656d9a877967be7e339bfc98a0c63ea7b5abc30b96fa9e5931c75ecbe9827 *i386-linux.elf/upx-3.91
01442d33443d9b7328464597bbaf7d410b0b6f04d10d3edf6d9c1b3bad3b563b *i386-linux.elf/upx-3.95 d454a7639e96b986ad422b02045ecfefa3b9405901eaa32d92a2c489292b9600 *i386-linux.elf/upx-3.95
a12101d24d8a248163584774c742fa2e054f5c377665b25726f824d2dfdb2878 *i386-win32.pe/upx-3.91.exe 934dd17076c0298d35a738533ea668e1fcbf8fc85c6671fcdd3a12e7722502ce *i386-win32.pe/upx-3.91.exe
53f31cfa7f07d723620764df42abc47fbae679901760ca1b53a4c79a88ada2a0 *i386-win32.pe/upx-3.95.exe 519a9f6b3de56f5f080151074b9d5d81e31c1961cd6e395f73d2d522b7f7f8e0 *i386-win32.pe/upx-3.95.exe
65f8e36edecb0635eae313c66a81e1529a4f6b1693f72416dfbc285824846f88 *m68k-atari.tos/upx-3.91.ttp a7bd9f616231d883f6700b09e3c9a0af2880c6b5e5b0ce1cd8f06de43c48856c *m68k-atari.tos/upx-3.91.ttp
6a5d54b5a4805f96cc59a65a137002c1d25531d1429699139b09943ee9caf18f *mips-linux.elf/upx-3.95 7a0479691e51ea4a8a0246a1f0ffa9694ee2f0e0cf3aa43dc0f1324c4d427ba3 *mips-linux.elf/upx-3.95
421ac9190bd99715acd2f4a97becca55039c8f78c350ea6043f8a3b06978f0d8 *mipsel-linux.elf/upx-3.91 f60bab42fe3914109ab1b9f5d00a5be753cd0a2c1a79a3998d58800efedbfff7 *mipsel-linux.elf/upx-3.91
b17bc6b7673c33075bc3906e1bf7d7f109af7fba7bac3255b1c6fd13df89346d *mipsel-linux.elf/upx-3.95 b6d8cc9e2023a3fc415166afc378ccf2eb505487df84c8d959ec74b3fb4f8256 *mipsel-linux.elf/upx-3.95
dd82483277f03e4ed6042a4ac863f76500f9a0ba074c8225590c798d2153e278 *powerpc-linux.elf/upx-3.91 acd3dc5ed3e4c4eeaa42e7cca71a79d687dd844ce5f384666ed6e78327b5a8e3 *powerpc-linux.elf/upx-3.91
d65b9f3241982b4c4a0050cf3f3421f70d0019092560291e1e45cd88f146ee81 *powerpc-linux.elf/upx-3.95 03600584c97fa466ef58239452baf9ec6ff2f06b79d97d45c8490953080de6e3 *powerpc-linux.elf/upx-3.95
0a155990ebcc5af095b907a9a69cf072e5d0f531ec70358d8deee785009cc543 *powerpc64le-linux.elf/upx-3.95 e615fc0e61d2bdd09f34275ec6c3de46fe5ce54da61cf5f5c94c40c6072bc1d6 *powerpc64le-linux.elf/upx-3.95
" "
expected_sha256sums__t120_compress_ucl_nrv2d_3_no_filter="\ expected_sha256sums__t120_compress_ucl_nrv2d_3_no_filter="\
58c0b1d2ba1d1affb532efe1e55646629c53644dc55bf5dff585bbce1db5eb1a *amd64-linux.elf/upx-3.91 c5bafac11df5a38c1b72fd070373a0e1d5a066527129937c5bc9a280e21ad656 *amd64-linux.elf/upx-3.91
3f5942d5a43fa2473146bcad10ffd28d7e3aa13981adb3e73827cffbb3d7e1f6 *amd64-linux.elf/upx-3.95 6cc1e01ac0b6140464a06f5aefb51c0388fdfe28f264a38061b50b3508203c07 *amd64-linux.elf/upx-3.95
e3e0c4a4c17c494d2228def4cfedf9def9f66d53eefe9208178565178882c442 *amd64-win64.pe/upx-3.95.exe 5ab022e2c3ecb09931e2181fb5f7699f35e2b453b54c823e42653c84b0df5f2c *amd64-win64.pe/upx-3.95.exe
82d1a89589d7beb1e16d13e9abb1636ddc21a182da9dec302303f05fa253f87b *arm-linux.elf/upx-3.95 e21b2305df2c1896eeae61010c3b65d8a50d476ea4a9bab6ec2fa4f9a0bed5a6 *arm-linux.elf/upx-3.95
fed423b4a93090db5e94739f5662c183f10605bca3ebec0dc497936bf1357e00 *arm-wince.pe/upx-3.91.exe 53121baf42c85991900aa3947f3d817fe6e894bc6f325ab1d576de6fba5fbcbf *arm-wince.pe/upx-3.91.exe
d7d2e6dd5e314d1ca6987f24d28dfa4a7a733486744f7ead068428683924bf5e *arm64-linux.elf/upx-3.95 7431abc46f0960311364ecd690965dd1fc74b2de4baca8e0af8f966735b6372e *arm64-linux.elf/upx-3.95
be64f68e93443dea8b44d2a793c160efc4bc8a143018dbe227603dc832a8e93f *armeb-linux.elf/upx-3.91 8b67fc95dc555c2de4e3d0c85e4ab977f4c3fba24d68a2f9c402c51e08ad5f3b *armeb-linux.elf/upx-3.91
5b3f6ecc52562f4b0bda58283cee0824015869199803112163ed0f9a2296da87 *armeb-linux.elf/upx-3.95 c3b3e5b0a379022b26bae96432c3f5f946990f45b0b26afe056afe1170bf33c7 *armeb-linux.elf/upx-3.95
65bfc96aadb43c6828e9e42e1992176b61d339ff17a4e70e5f0af7a898e81a9e *i386-dos32.djgpp2.coff/upx-3.91.exe 51e4faea51e12c7442b27bb50150f532ac51d8102f77a669cbce82f2675a2ef2 *i386-dos32.djgpp2.coff/upx-3.91.exe
78cf195faccd6b5b9ff1790cbb2008bfafc49a8e3eb3fa6c11b74d8c3128b315 *i386-dos32.djgpp2.coff/upx-3.95.exe 1196f578ab0b862bae8ac6b5166b770f072cf0ac521a2a23a6347c19ea82a0da *i386-dos32.djgpp2.coff/upx-3.95.exe
6dfc802b397c976078e81ea298031af215961f1ee6254a4100a1402b1f097648 *i386-linux.elf/upx-3.91 3015651261f28fb43ed43a8c1fa257bcfcdc788e6fd3f436f3de23733736c724 *i386-linux.elf/upx-3.91
14c1d4ef28374188b9e03714258507fd5f1fdc3e602d7a32343815a23456c941 *i386-linux.elf/upx-3.95 8cca96ea354af889f5e9d3074b2c7005f982463a3f22e1cca2bc01aed9232de1 *i386-linux.elf/upx-3.95
24c0712c8b1ad505762429c4f31ef68bbc030d29f6bde18a9cb9722a78e7ba2b *i386-win32.pe/upx-3.91.exe 3edf364443a3cd56efd04e95cc7d7c1846bf76addedd7263cfe8330771f19509 *i386-win32.pe/upx-3.91.exe
a4338529d1dfa339cb2ac25fbc0c56028d288e7393b2fda57e5d6588f388313a *i386-win32.pe/upx-3.95.exe 48141fd66443f85ea867d7fa0bb3a50debb10f15bdb26c71888026e17c88d3a8 *i386-win32.pe/upx-3.95.exe
4f1d68f6e66df8fecad727d0177cfad9a2b9a66fb298600a4fb4a5273b531a60 *m68k-atari.tos/upx-3.91.ttp 07e1c09a953a9c87afa33d1236f46244280161bf3802273a523d380318886177 *m68k-atari.tos/upx-3.91.ttp
595912450d678df1832d3f6e33f0f1d3787ff2fb9fb2ebf9712378d563c06835 *mips-linux.elf/upx-3.95 39b3a5c780d9354714d5e2ed69068511422f8faf9ab660706adc8ad5ecdf3598 *mips-linux.elf/upx-3.95
42c3485bdb4455bac91ac7279b061a26d203c46b8bb8284d00d93da9c50acf08 *mipsel-linux.elf/upx-3.91 123ce137e4cd555470fcf9fe67df75179b6f337fee66d075ddc06f9848817a37 *mipsel-linux.elf/upx-3.91
bd20dd1f41bf72d61fbd59be2cfa008e7a0a052272a5731e0d880c47cf6bfd5a *mipsel-linux.elf/upx-3.95 b78d8cd3a3402fed266c737cc34a32cc21b2b67b573e9e9071d4faf9fca89b89 *mipsel-linux.elf/upx-3.95
a3be663023c7cc534edb14477fb639da47d32ef88c25055ed94f22419bc34159 *powerpc-linux.elf/upx-3.91 ea9cae1d1701db3a0c53e9a651766db5bdc30032f48913a4a9e99f193a800acc *powerpc-linux.elf/upx-3.91
cc883bf36c11a4ceae5371c66e0f4b28dafa9ea4076df5eae533bcdc611c3be5 *powerpc-linux.elf/upx-3.95 aea86bf87870a1e48a454ac1ea9a80d90d8abe5113d418a71d8a9c4a74bb2d0a *powerpc-linux.elf/upx-3.95
ce5bf80740e5c13883f44fecc42f8f4eb61fe768b10eda796e7ab1fc66d76dbe *powerpc64le-linux.elf/upx-3.95 5fbc114a7fec5ed8e098d8e918cdf7b446a8c9dc5496336fe077fe084dbea8ce *powerpc64le-linux.elf/upx-3.95
" "
expected_sha256sums__t130_compress_ucl_nrv2e_3_no_filter="\ expected_sha256sums__t130_compress_ucl_nrv2e_3_no_filter="\
2207030b7262baa62b107c876399753ae080021eebd65bc26f2811ab9c584109 *amd64-linux.elf/upx-3.91 509bc9676a0f5f5ce6df118da8e792151db816fcce5490eadc87fc525aad5a35 *amd64-linux.elf/upx-3.91
813c26d1c905ff526c60bde16c6f3fc00b05ec391c1265c8f08e73b10d97e229 *amd64-linux.elf/upx-3.95 e8d6bf8204c6bf5d170ca8d4c9cb48b3b7a48b04d665dd6e111980081fcba3b3 *amd64-linux.elf/upx-3.95
0136fbd3b9706eedff270c2a59bbce60bc56f939ce8fe64cc03ae2524c80cdc0 *amd64-win64.pe/upx-3.95.exe 7bd7cd37093200fa94d21dd7fdfef4d7fb9c3049fbf5f408f1f242cb8d9c6a55 *amd64-win64.pe/upx-3.95.exe
7f34ca5efb80c4a54c5b7e1d2225ed0a594394b85d2d22741687511d4056779b *arm-linux.elf/upx-3.95 4424d813ae55bec589779461c4d4b25361a58ea91659f4a12a7a2d08158cea64 *arm-linux.elf/upx-3.95
a52b38546e1273920936aef97d6880f768cf951aaacb1cefdb7349db581ea792 *arm-wince.pe/upx-3.91.exe ad0a7a18e87657d28260b7c527d284863becd3c5f92259c570125465f88d4042 *arm-wince.pe/upx-3.91.exe
9d52fb78b10e30b213926bb0e3749f7fb86303267d57616729e34aa180125ab8 *arm64-linux.elf/upx-3.95 0bbeb73af475bc852313074a14360ae863364175d7fbd4c2f3450790bc3a58ee *arm64-linux.elf/upx-3.95
87fd843f80b2e8ce8321db6ec0b54742457d332f913ede8ed8507bdbb377dda0 *armeb-linux.elf/upx-3.91 7da4a04118f50824821c00f4f9abf6056128ac33de6ac45a145fb5d4810850d9 *armeb-linux.elf/upx-3.91
d3cf89367b1af3f444e3f47b527b59e77a8bd01849f78a1b40e0831edd789b74 *armeb-linux.elf/upx-3.95 b4191959889ecb2b9bd2dd046318b414ab5a8268517572017466fbc9c986925e *armeb-linux.elf/upx-3.95
10f60ea47cdce4b63c44d55709978cbe77e2cb507b3498320df98e9464dc1475 *i386-dos32.djgpp2.coff/upx-3.91.exe 6fcdc8e34ce8b3501db2260c8a921c6e963954fdeffedfefca353a27bcc02d56 *i386-dos32.djgpp2.coff/upx-3.91.exe
c80cec60ad9ed268b3a150299881d25035fa45638885df5a82287596d0708ef1 *i386-dos32.djgpp2.coff/upx-3.95.exe 6f4f901c1838252f9b3104060475a6f13a2ebec830096ff28d870148580e4287 *i386-dos32.djgpp2.coff/upx-3.95.exe
8f96a1d430eefa75f76207dc7cddf3f3b06cc3b6611a2cab4131e6694d54bf03 *i386-linux.elf/upx-3.91 8127f8380300508e8062e9391e321abd0429a6a31fec41e769cc7fe80af27e27 *i386-linux.elf/upx-3.91
76fb0e1394b7ac7c9e08522f5e7d4a7996515eceb6b804c8114ee819ffcee206 *i386-linux.elf/upx-3.95 b0a7e6b822f038b7940a54ea160b045d2241e3dfa15a5081a23fbc4d42fb6773 *i386-linux.elf/upx-3.95
03a74c66ce822c948abc20f1b41b7508a2d5a60975912f89569997795f92f957 *i386-win32.pe/upx-3.91.exe c78db15a8113b806e56812fd842fb467d2a9c9557fcdc0467dae3f4c33316630 *i386-win32.pe/upx-3.91.exe
c84de2b06d4a82a788c0c63ff1acd92a01344601b156c0cc878ccc24a07bc7d0 *i386-win32.pe/upx-3.95.exe 89314e8621c4a00e1a65e045686245d3c1e2ba0a858f1dcc8f3cc2d0eedccfb5 *i386-win32.pe/upx-3.95.exe
15dea9aa84e82d1be8d847eb7b774abd0080fb938896d37a06d9fbf07ee137d2 *m68k-atari.tos/upx-3.91.ttp 710ad88b63cc7e0fa0b413ebdbcebf41140678f551b5dd883ed6220507be3601 *m68k-atari.tos/upx-3.91.ttp
3c2e472ce7aea4d8bf8fcd27488764fef52fee7fa48807f3879c44dfabf3c131 *mips-linux.elf/upx-3.95 c7e3478872650b7f4f8ccb4a0649944e62f44f5a9249cb9425210333e1f2fdf4 *mips-linux.elf/upx-3.95
db72872a3e605bec878dbb7e841b950c8f8b9279b088fdb4b8142accbf85d78b *mipsel-linux.elf/upx-3.91 cd9b3d3780a79cb416b261d622e8e86f2369fa8bb9bc49b529c50cac2980d528 *mipsel-linux.elf/upx-3.91
407b5b6465d5af0ef43fbaf0e041115bba224a30f84f061249bfea4a7ed21b2e *mipsel-linux.elf/upx-3.95 5baf7db9e4335c0227106262efc9d18ad23b88c6d6bb636656aea67bb063b6ec *mipsel-linux.elf/upx-3.95
8d751e64f87be51d847dcc4bf0bf54f92213bed18b16919659c94dea5e5e77f8 *powerpc-linux.elf/upx-3.91 aba8bd826ee52d533f9e1c4270d4f4194fe8d8747ea10a1d3ce59b6443f1a9f2 *powerpc-linux.elf/upx-3.91
d56e4ca8274f11a26fb33518e155ca6aad6c88953bdbced23c4378c43ed7e531 *powerpc-linux.elf/upx-3.95 6f737ccbf8c830476bed9c4dd33dd7757ea25bf2f8fb03b44d03e9b77ada0f1b *powerpc-linux.elf/upx-3.95
c20cde25c44f9c4f1aa68b4307615be23a241d31acffcf612d9f5066e9703b43 *powerpc64le-linux.elf/upx-3.95 62eeb7b59d1eafa59cbb5ffa6572fd47560a8a8bf85274e711f29d2fe390c773 *powerpc64le-linux.elf/upx-3.95
" "
expected_sha256sums__t140_compress_lzma_2_no_filter="\ expected_sha256sums__t140_compress_lzma_2_no_filter="\
50532540dbd85b45c7a5968311144dcc28087453ed053d9b025e59a79d1085a9 *amd64-linux.elf/upx-3.91 ed2849169a873bb4070e9d878126f7bc19fb326d1dc6e169901ff3a3026661c3 *amd64-linux.elf/upx-3.91
b750a28c3a4e15a5cde30b4bc98880dc2d9119cb1a0f8507a47ecebecc0b638c *amd64-linux.elf/upx-3.95 2b7f9baf27490274fe9301e8a962ac2bae03da0afec67c17df8f8f0e27157891 *amd64-linux.elf/upx-3.95
1f8bb9320a0083fcd6a9debefc1ef7bd0a1fdc83a60d5f920f91c7b6fc6940b9 *amd64-win64.pe/upx-3.95.exe a55ec5a7f2911f6da8b9336daf4f1051e753cfb7a4458c7f7baa6b63340c6daf *amd64-win64.pe/upx-3.95.exe
aaa86b905cf1e0b75446a4d02212fe6dd7c07d473aabf59711fc2f9cc7f4c447 *arm-linux.elf/upx-3.95 8765db7ae04a03af743ad8afc586b943b84b65aca9f1ec240232daa2161ba703 *arm-linux.elf/upx-3.95
518d80035753e184eff1a0b26c76f79df7725a28dfe6738355263a9b4eed9788 *arm-wince.pe/upx-3.91.exe 7a6c603eecf214e5d6742f1fce922223c97c8bd2527678a968640dd6c1bc0d71 *arm-wince.pe/upx-3.91.exe
148227eed271db8ef9367349211d91520c6e10fdd1cc31382fe3b83ca6dad30d *arm64-linux.elf/upx-3.95 810aa1e8f15d9617a0fac4bc4e5c5c5219fc44125d41ced661c744d6c5bb9857 *arm64-linux.elf/upx-3.95
487a46b214fd36db0cd814a98fe608ec6baad5fa3111c5fcf5b5902c554b9149 *armeb-linux.elf/upx-3.91 1dbb05c09fb972c3a5f87ace0c802af48f8b20f7f977f5a14b91dad59800d6a6 *armeb-linux.elf/upx-3.91
94a2289a1c17bf647681d52ac050677149bbcee8a6eb944051b7734d94e5c7d0 *armeb-linux.elf/upx-3.95 a1fba814639540616175e0c058267e96f839d85a187b01af764af14ae1b6019c *armeb-linux.elf/upx-3.95
d6dcbfb921ce4fb936f3c90929bab1c4922b557068a45a7f5e2d1e4af7462b6d *i386-dos32.djgpp2.coff/upx-3.91.exe 7a8eaa5139b95cc56591200fce62d3c9af163671467952cab6fcf487318107bb *i386-dos32.djgpp2.coff/upx-3.91.exe
efd3af572e9517128e49d0b013358abc0174966a8e596648af08bc3a3c822a05 *i386-dos32.djgpp2.coff/upx-3.95.exe 9b5fc0f54a5f811bda190c36fb2fa5c5b03c6c3de0c62693e4191230b5a419b8 *i386-dos32.djgpp2.coff/upx-3.95.exe
b98b1d2c9bea47155d26d078e152bd73a675cf91051db1419e872ba3b23d8b82 *i386-linux.elf/upx-3.91 68b4ce63cb0bd7dd5b287e1f9fa5d9bc234ac36359ce3ebff863984c503a698e *i386-linux.elf/upx-3.91
5182b9e69dd6440eacaae7213ebbe2a4bb7d4a0a2bbd650bb2b0cad0dbe8704f *i386-linux.elf/upx-3.95 aa75cf22f0b59cc796de678198432a3dc2d40ab871e4989dd97ff1a6c148f294 *i386-linux.elf/upx-3.95
770117cff05d8cf50a1ef7be873aae7d11649f2757d02b17dc8817104fa70f0d *i386-win32.pe/upx-3.91.exe 0e0780f5fccc52f6c78414f7279263b26e31de7c6ca1ec65a240e37cf0a4f5c9 *i386-win32.pe/upx-3.91.exe
460c437f090f68a8bc2c5f2557b8aa784b3a5cd7f8ef87fa6992305e1070125c *i386-win32.pe/upx-3.95.exe 3ddd6265d69e374f5f0f8c9f602e0e59c895da2f3fef611ef89f0ee4ae2c592b *i386-win32.pe/upx-3.95.exe
eaf53678fb35365dd6a20983b0379251b8aa28350a238b1636141ddc555a4520 *m68k-atari.tos/upx-3.91.ttp e268c98fdacfd04268d76644f2bb4746ae04b57801407aaa1867798840eeeea0 *m68k-atari.tos/upx-3.91.ttp
77dcc76fda69c13a8f58cbaf34376e734457909810ec351b291b63774752e1de *mips-linux.elf/upx-3.95 499e1d1486810cfa5b6662e30189183979e25f45d35654d8cd60fd793d0c07d8 *mips-linux.elf/upx-3.95
ad82bf571be17ecdd19520959e9e770205163693561cc6b3a6c206ca7ce8694d *mipsel-linux.elf/upx-3.91 4a30189ad7312eafb2d47e1b526ec22eaf614a895f8dce96f3e1c7385438f44c *mipsel-linux.elf/upx-3.91
7f3f5b2522761550f01d1c88b5f68d0f4a391c3470418b86a10f6ca5872f4357 *mipsel-linux.elf/upx-3.95 339d38602413d97d9bba113f39884815af10ebcdccf37e3f5e8d0879f262a048 *mipsel-linux.elf/upx-3.95
63a339a06d497120002ad45d549eef5db2f07e7419f1c68a8ede9f36c7ec4b96 *powerpc-linux.elf/upx-3.91 6d4f9d4383ebc9d8411d06a7c219dcf3e8513ea8c989f2d31ab382602f873ba5 *powerpc-linux.elf/upx-3.91
5ba0f8485b832d8da4d7210f01c09850fdad9a9d1f99d3726147494fed90b130 *powerpc-linux.elf/upx-3.95 5dd727d8d5a35cc0ab86d629285d8ff450f52b538118679edaa886ce9c1fed7d *powerpc-linux.elf/upx-3.95
0c89a155ff7acbaf5ca9618a7d632650ceb99c089d3dd8e56280b28d44302361 *powerpc64le-linux.elf/upx-3.95 7b9aeffda399143db878f24a9faecdc21fb8ec906fed80bc6636d82771090f2f *powerpc64le-linux.elf/upx-3.95
" "
expected_sha256sums__t150_compress_ucl_2_all_filters="\ expected_sha256sums__t150_compress_ucl_2_all_filters="\
af5fcd8a9b1c3869b082b2fe72c962a4dc651f1f2d8979eedbea4b2a82e6b955 *amd64-linux.elf/upx-3.91 fc30606d37c697f5c79742bf6e7d2afa8503e69fc87e52274d00b5210d03157a *amd64-linux.elf/upx-3.91
4e0eb2be5592d19ee7ac0acfb68dec8d4393b996d4e3c112c34ffac0ba59b7b8 *amd64-linux.elf/upx-3.95 c6d66f6d4f92812801c021a854fbd94745a7b63e0477678b8eb1dc26c5b0a9a4 *amd64-linux.elf/upx-3.95
0bc7af47ffb8a45b6877289c6bf8693d118a122190501438f7d77f318f8f7490 *amd64-win64.pe/upx-3.95.exe cbb5c90bd9195bd9e3acd931312a70deeccfab5540f398ceda8826f8d6b332bf *amd64-win64.pe/upx-3.95.exe
6b16659fa1fb13af0709273f41e18d3304996bb7c71ee679f589c7701b7480de *arm-linux.elf/upx-3.95 bb88759de778b1099b51a012f915e646ebfddcbd2fb26b3a1e760fc81a41d2b9 *arm-linux.elf/upx-3.95
2510e493e524dcb86b5cffc16cdeb116fe41e2a6ef765f066a88dad30b09e039 *arm-wince.pe/upx-3.91.exe 76a5f0518fc797bd3f132ce6eb61ca187b5d463f191417883a73d4584716c23a *arm-wince.pe/upx-3.91.exe
a19d8c1b68864540a0e6394fbd77f55293de372903821f9e11ad4782c5bc313c *arm64-linux.elf/upx-3.95 7b9290c2ab01632d8baa28b24498fbcd734caf8e3846864bb62a8282de3ffd9a *arm64-linux.elf/upx-3.95
bd7c2bf7bcfd4d70fdfaba51a2dfb9820f586e61a6414fb6c888f9c5b1a64ed6 *armeb-linux.elf/upx-3.91 0bafd7837327b590b3be06676ee73c52405e5e4a36a6d06f8b6773e93c499420 *armeb-linux.elf/upx-3.91
1080b69f81b9fe7de4abee22e7ba88efbc6ea1a3e8d59f4e48268072a4cfc7f7 *armeb-linux.elf/upx-3.95 aea39071ff8ce0b2a59f30e50603ef2ec39789693a3dd9baa4e6be1e49b4e068 *armeb-linux.elf/upx-3.95
8998ed7c785b2f242ebff1aa88225702c281eeb31bf02f6edd61851c22271fd0 *i386-dos32.djgpp2.coff/upx-3.91.exe aa05c3a2953f0f2d70842cba45786b707a79ffef22fd084f51e304762cc67765 *i386-dos32.djgpp2.coff/upx-3.91.exe
c955d35d9f829ba442db2bd26b2eb9d65c06ac15ffbbf96d77577365f489c2c9 *i386-dos32.djgpp2.coff/upx-3.95.exe c677241e9a8753ba1332ac3875ab6398fb2d792d2627edd9e58f2535b3131abe *i386-dos32.djgpp2.coff/upx-3.95.exe
cffe561026b58c3a16a78392ca835b212a6f82b7d995a6f0d607aea8b90e35a9 *i386-linux.elf/upx-3.91 7bcd42f58dcc8ddb6cb1a4e33d56b584fe6d49b002b01a0859571d1324dd593a *i386-linux.elf/upx-3.91
9fe71ad10328ddf551ed58ed377fe4b131a8deb2de9c0b3e56c1d5936075d540 *i386-linux.elf/upx-3.95 b6fe6220c0b3f4df131da3aaae566810f2aa1f13b63d23de3ead9174d08d82e1 *i386-linux.elf/upx-3.95
f4754aa1ab522cd208c93e9caf49ac0d4c357a2636fea1d94a24de3f54252c4a *i386-win32.pe/upx-3.91.exe 8ec02f816f4727b519e8775edc1afb1df32991319a6c6f050ece416011925379 *i386-win32.pe/upx-3.91.exe
54ebf5551a267e36c6afbebcde77e0f2ac1b52f66834545da082c4146f2ec03e *i386-win32.pe/upx-3.95.exe d5aeeedada49c0c2870ea450ed66b2cea31369bccfccf9407378ae0fb0736deb *i386-win32.pe/upx-3.95.exe
a085aa278eab7c2b82d9d7b931a889bb8cdff2af993b2a446dfc652603c9b8b1 *m68k-atari.tos/upx-3.91.ttp e414ad0aba43790d0498b26c23055fb051129b6cbe3e070a1406c91ac5b8032b *m68k-atari.tos/upx-3.91.ttp
9ab8d07b0e5aa4269d18bd0783f74c8cad6d681839774f091ea65b35231aa0be *mips-linux.elf/upx-3.95 c5107a84d32de820c81401259a7dd23435ea625588d56c6c75ad6fa14b0dbf8b *mips-linux.elf/upx-3.95
ab46fcc2f009fab7b5186c33e3d288df999e3ac96f3863fa82c314d4f8fa3d43 *mipsel-linux.elf/upx-3.91 78473f7d7ddf56812b8dee087ca62517ecdbd10fa14972ba6670338fc19061d1 *mipsel-linux.elf/upx-3.91
b23c4c341228a30a7f8a6e027279a2f016510e8011b2da4b460657bc633303fb *mipsel-linux.elf/upx-3.95 fd9ea397a29b41a2143f9e02217e181d0075d7ad7d87bdbadc7fc94bfb1b0d76 *mipsel-linux.elf/upx-3.95
ac26cabae4f900d5dbe06ec2128c66ff3d3934967d4e8f7fa8003d977827b554 *powerpc-linux.elf/upx-3.91 c47d1299f6ecf86e62528fc54979117b2b2ddbb6c80f553689402399fc7eab28 *powerpc-linux.elf/upx-3.91
f109345301a767465e966c59f9b97fcbc57dd123f0cfd6b3a1508d063afcb71a *powerpc-linux.elf/upx-3.95 77c3b4ba6909a4e20180bc13775e280086d67240519c323c2005f3fcee6e0b78 *powerpc-linux.elf/upx-3.95
14925049ea4d38ba1a7b1fa88397ea47c32b3e75aa73311acd5ce984dc9edff9 *powerpc64le-linux.elf/upx-3.95 030a1ac080381a5ec7ad1e167f8809709620e555db792f43146c8c34e2cb37ec *powerpc64le-linux.elf/upx-3.95
" "
expected_sha256sums__t160_compress_all_methods_1_no_filter="\ expected_sha256sums__t160_compress_all_methods_1_no_filter="\
0b4129ac4d2660a61f65f89f5e4dfd337e757504ce7cdc865dfc40236a32fb98 *amd64-linux.elf/upx-3.91 115046275f6bccbaa34b7aefbedeba8741aba4e4876340a3d7363bae86ee4209 *amd64-linux.elf/upx-3.91
56dbdb335ebaa58fb9a5b2cb1a0ca7ca9b0e6f02d4d06bc6cefc0433c166b5b2 *amd64-linux.elf/upx-3.95 a8394890b5d731258316b520da2a5e4b43902742d237536fb7fbc578c6197fbb *amd64-linux.elf/upx-3.95
1b508481525d63d90d7b9125a7ce5f3f2adfedaa6b771f2a8f4f4502cd425dfb *amd64-win64.pe/upx-3.95.exe 5a0ecb45658904bcd0b823b77dba039c9814e2eff4ed429784c36b7074b9858c *amd64-win64.pe/upx-3.95.exe
0768ad7425df8a1397cacd6e611beaefec03e6b2be97109dfce5ee71773b3b9d *arm-linux.elf/upx-3.95 0976be6c56de1ac2314d8a4962ae3d9d7be962847600db5e2bab529ab32cebd6 *arm-linux.elf/upx-3.95
24d9a9331ed1bf1f29286e58a3cf7f3c3d2cfc1e8763393088e8d967a0c404eb *arm-wince.pe/upx-3.91.exe fdbe0395ac401285edb9c2f9bfbb0fbd3c0eaad5052a88d8369b1a66b35a8a3e *arm-wince.pe/upx-3.91.exe
43f8f19d6928d072f6a8889c1045b39664d731b1164427c8f200d9aee00b8f15 *arm64-linux.elf/upx-3.95 1c8d536870d0244bb12cb8fdd6cd35ad7e9a53bbc4aa8e2e12af72447caaf467 *arm64-linux.elf/upx-3.95
7520c0b23566e2acec6989d4d657dd004773e8da2b2f4c6440f41c5af3be0b23 *armeb-linux.elf/upx-3.91 912b6ca141a028974bc46aeb571314db371647201974283992752933f39200b1 *armeb-linux.elf/upx-3.91
3adb141d33987869834da0fa971b1c5fde50cca227e2981856dba4be8e439909 *armeb-linux.elf/upx-3.95 0b5757e474bcf3136edf10e403f95e706b214a5cf7d8577fbf7778175b1bef61 *armeb-linux.elf/upx-3.95
73759310b8554f0011db0e5d443717e112a70f67376fa180bf1d08575f410998 *i386-dos32.djgpp2.coff/upx-3.91.exe 0a0099246096d20ff6035a4df6566954b9d8aff9ed8fdbd35aa5ee4995b02bfe *i386-dos32.djgpp2.coff/upx-3.91.exe
10a3d68b8a5364b4244f5273165530bc3b68f853a9096dd83d1f8536e7d679e0 *i386-dos32.djgpp2.coff/upx-3.95.exe 5df7aa9f0896df87eb8798119ad16a9b89c87a7568a67339e33b5baa99ec361f *i386-dos32.djgpp2.coff/upx-3.95.exe
69d47a715530e3d4e45a51be5c3c64ed59c1237d2b4c59d8cb8d11dcdd85266a *i386-linux.elf/upx-3.91 53e5aae9bc70f58e3dc2aef5a94f66df2517d547670e72ee2b3189b7da809f41 *i386-linux.elf/upx-3.91
f90e868783a5f216a59d230e4685d88abdc7d920de78139a841726bfc8a2395b *i386-linux.elf/upx-3.95 adaa1e2f46f7a235ab838b15aa7e820057e5ed7011d9d07c67dc770a88e3dd62 *i386-linux.elf/upx-3.95
6354a77c83a760b0621242982ace576a58941c687c8d0e2154d91263d45a7fd9 *i386-win32.pe/upx-3.91.exe f3d33c5c9809943a902133490bcf0cfbe39a5ef1635a0c29b3bdc4f35dfffa50 *i386-win32.pe/upx-3.91.exe
43d261ecf3dccf8bb1c3591b38dc20acedd846b1f5bba0a9fa290d29e6f5bd8f *i386-win32.pe/upx-3.95.exe 474e68a2390cf0376f59402eaef4c902daa49428b628e025b1c8506428a37937 *i386-win32.pe/upx-3.95.exe
586ad3f4d1a421cbfc86a38bc0b1f3d48dc5bf76ecd8281b001ff1e42cd5ed6c *m68k-atari.tos/upx-3.91.ttp 1561dd69f67e8705804dba41ebd876bce6a4ce8ed8b0bc0d0e7628697e7fee68 *m68k-atari.tos/upx-3.91.ttp
d88760fbaac2c4628c1cb6c8b3828c3ec717ac02e87c7c452d39fb2de9e32412 *mips-linux.elf/upx-3.95 74f7f69b4a8b2b7c428fa55e3970ee767c1947f19ed1b0644870ecb6b3cb713d *mips-linux.elf/upx-3.95
a3599c2acd0a449693468612a5ca897e48612cff448489df42f2d78775c36606 *mipsel-linux.elf/upx-3.91 12a42365234c001a52586b74a9597dc7d65184ddf1ee1d40734823a3443cd92a *mipsel-linux.elf/upx-3.91
bbe0cad71e7c0f93884f972ed1f0b464184a6f7bed57fc8c5120db758166e742 *mipsel-linux.elf/upx-3.95 68f674d081d87e86e54f0051eee9e2bc85b566051992774ab28ff3173cbcb75a *mipsel-linux.elf/upx-3.95
1247a34c56ae1eea834207a409f955a39362184ed730d0bdf797e20440fbad2a *powerpc-linux.elf/upx-3.91 f569d8f49d7110bb8b262a48055b39d889e9977c40c5f1b21e74f8cbf93b27ae *powerpc-linux.elf/upx-3.91
318e5c3db467a6d14d157828931932e4ae822b255970b8a6a8f4038e6c14ad03 *powerpc-linux.elf/upx-3.95 d8227a8a88c083760889acaf259e7da59eab75a23e341289bc8e3c60563ae344 *powerpc-linux.elf/upx-3.95
424837c52bce0853f0f97dc69273de4e2f0c3cf09fd992b08b1bfd79fbe04281 *powerpc64le-linux.elf/upx-3.95 8260862f104a23c2a3fa574e10d882204ed40a17702040edbbbc8d25f961163f *powerpc64le-linux.elf/upx-3.95
" "
expected_sha256sums__t170_compress_all_methods_no_lzma_5_no_filter="\ expected_sha256sums__t170_compress_all_methods_no_lzma_5_no_filter="\
301f1ac99e989824b4171305c4bf21f848da49169a0ea35f9d954b6782946e3f *amd64-linux.elf/upx-3.91 09cee61e2a4e94455d75a76711078719c3ca7fab77f047c4c85c9424e651956d *amd64-linux.elf/upx-3.91
bbd292d29f547d15d7ce1e5c16470282e91017a4bd317b24e71c9fc078e625e8 *amd64-linux.elf/upx-3.95 0196cbaa36e5224b26729f1bb13990327878ffb0d2cd5784f8fbe715f12dcc1c *amd64-linux.elf/upx-3.95
dea208e13322f5545cd0f16ff06969dc9ded456191bc827803f5a871ec6e239f *amd64-win64.pe/upx-3.95.exe e07e9babdeb12fddeebbfa1b0293163cc5e63017d6f0933d02587c8da1e90a82 *amd64-win64.pe/upx-3.95.exe
93762a9cbeed31a7eee4762f410baee0c92ffaabc36c9dc92a7eb21e6f4fc526 *arm-linux.elf/upx-3.95 4b93e4dd9baea301479fa989d935b7b6b43b2b54464c5def0db1a00b6a15d719 *arm-linux.elf/upx-3.95
56349a327b7172010484f58e3ed13a9c5819241e1326d20843516458d85ec6c2 *arm-wince.pe/upx-3.91.exe 8d1706ab02013b536c3a4cec20d40a96591ffa45fdcb464ccd3f038567006d79 *arm-wince.pe/upx-3.91.exe
9c12ee31c2dbffb30ca41e799ea22f37a82be3b3af0cb3d93fb8159d57ad40b5 *arm64-linux.elf/upx-3.95 be753ff9bc789d80f32cec35cc0f9c67b102d297f607b328779ba8d80da13593 *arm64-linux.elf/upx-3.95
6f4f80cb1bc8aedf2aade7b48e404c1edfd9e361818dc52d495b66951684107a *armeb-linux.elf/upx-3.91 4c6d40107b5bce15a40aef514b57ac6dd644162998915aee412feca21582118a *armeb-linux.elf/upx-3.91
b1d33445d3732860c6c20c9dc7b643886c8fd180a19abccdf489c7af297d1575 *armeb-linux.elf/upx-3.95 9d70d663c00378aa1c1c43d55327a895be33ea081bac13ce8a7ea6895b539679 *armeb-linux.elf/upx-3.95
abdb6b7df1c5bcb30cf7534de2527df0e9edc961828a68e77c336a29a01810b8 *i386-dos32.djgpp2.coff/upx-3.91.exe dda2c348c43741a1bd65049a8e7b51be1ebf873d215370ec002185c85390c168 *i386-dos32.djgpp2.coff/upx-3.91.exe
3bda7b44bf9ca7a5a3272a2fb0202cba96017a34b1829cc371c9b7cbd7f43f2f *i386-dos32.djgpp2.coff/upx-3.95.exe 560392427ded22f2f3fea59ef10e55d65cf841001e67b1e4558ef13514baa602 *i386-dos32.djgpp2.coff/upx-3.95.exe
503edbca35752de11340e0364374432a08da5ab4b2719aadea9482f7018f3e68 *i386-linux.elf/upx-3.91 f3f8feceebe8536633554b204df68c2e94e1d1a313fe7a576b7f5d404c916083 *i386-linux.elf/upx-3.91
99c951666eeecab20e08a88b198943ca694d755570135ef218396968edec76e4 *i386-linux.elf/upx-3.95 e7f98419e346670f72d66ac25f3d6ad53201e768819980eecae24d801366be27 *i386-linux.elf/upx-3.95
c5960e4e4fb392a6b439a95d5b41a86be95e3f7898923268bf76534be4bfd6f2 *i386-win32.pe/upx-3.91.exe 3510bc5627237752bedd275e73c42bc02cd46145ff916e7bccbdec663f763ee4 *i386-win32.pe/upx-3.91.exe
d391d97db4a4593e8c3871968b3731817a8cac52953649619d0d63deb27fea74 *i386-win32.pe/upx-3.95.exe ad47c7522167f6f7e47d495e1fa119431386ca5ea9bc16b6a4b9cb38cf9cd29f *i386-win32.pe/upx-3.95.exe
6eec8f9d2eb1a0547f8f8c1c346227468422387dc8899782878a682d4d4e03a2 *m68k-atari.tos/upx-3.91.ttp 1c999e5c6cded8c99a7f6b4595879893ae63d2af1388dc61dd8b4e3106676480 *m68k-atari.tos/upx-3.91.ttp
a18383777c6c3ee7436447e7babb131e29608d235de47ea2583d1233b9b7103e *mips-linux.elf/upx-3.95 55a098c2cdce1917b76ce0845f434fc23b0bd30b34e884b19401c51c8c7f4756 *mips-linux.elf/upx-3.95
f4bf1e6fc9ebbdb798a6cd4875419bd9e7bfcf12d9439d926581ff60430dbd84 *mipsel-linux.elf/upx-3.91 4b6487d412f43acb8e41951a2135e56025139a9ad3e57102749df4d4bef934fa *mipsel-linux.elf/upx-3.91
7df55c1c945968d986ac6321f2503379a4a6b061f2ac59ab2dd68e2cb509839e *mipsel-linux.elf/upx-3.95 1dcd626fc4566c608e987fd6999b695793c5cae7f78872e3d1a9a23942fea188 *mipsel-linux.elf/upx-3.95
40b7830288602fb85b8068b7daebdb6c33fb64b79543ad87a412189dfdfc3583 *powerpc-linux.elf/upx-3.91 2047a4a880322bf41e8afbb4787f6103364de4a299b543808251a4144c4d990b *powerpc-linux.elf/upx-3.91
f012035e5268519485025fbc8a1286c4a380f2c80d979df182190bc32d7258e2 *powerpc-linux.elf/upx-3.95 63679bd238f30bfb14853246eb257536471fea10f942b2adfdd43cbef21dea30 *powerpc-linux.elf/upx-3.95
439cd93ccaa2b916bfb6d6c1c91cd09451121f9a8d8cad3386d628940b966870 *powerpc64le-linux.elf/upx-3.95 bee0b9b5fa783550d3e7e5ba6e48d92776578dd82d6ac644e14191e0879d185b *powerpc64le-linux.elf/upx-3.95
" "
########## end .sha256sums.recreate ########## end .sha256sums.recreate
+2 -1
View File
@@ -119,11 +119,12 @@ cd testsuite_1 || exit 1
#*********************************************************************** #***********************************************************************
run_upx() { run_upx() {
local flags="--disable-random-id --fake-stub-version=5.01 --fake-stub-year=2025"
local ec=0 local ec=0
if [[ $UPX_TESTSUITE_VERBOSE == 1 ]]; then if [[ $UPX_TESTSUITE_VERBOSE == 1 ]]; then
echo "LOG: '${run_upx[*]}' $*" echo "LOG: '${run_upx[*]}' $*"
fi fi
"${run_upx[@]}" "$@" || ec=$? "${run_upx[@]}" $flags "$@" || ec=$?
if [[ $ec != 0 ]]; then if [[ $ec != 0 ]]; then
echo "FATAL: '${run_upx[*]}' $*" echo "FATAL: '${run_upx[*]}' $*"
echo " (exit code was $ec)" echo " (exit code was $ec)"
+12 -11
View File
@@ -32,8 +32,9 @@
// NE - Native Endianness (aka Host Endianness aka CPU Endianness) // NE - Native Endianness (aka Host Endianness aka CPU Endianness)
// TE - Target Endianness (not used here, see various packers) // TE - Target Endianness (not used here, see various packers)
static_assert(std::is_same_v<upx_uint32_t, unsigned>);
static_assert(std::is_same_v<byte, unsigned char>); static_assert(std::is_same_v<byte, unsigned char>);
static_assert(std::is_same_v<upx_int32_t, int>);
static_assert(std::is_same_v<upx_uint32_t, unsigned>);
#if defined(upx_is_constant_evaluated) #if defined(upx_is_constant_evaluated)
#define bele_constexpr constexpr #define bele_constexpr constexpr
@@ -411,7 +412,7 @@ inline bele_constexpr void set_le14_5(XE32 *p, unsigned v) noexcept {
// get signed values // get signed values
**************************************************************************/ **************************************************************************/
forceinline constexpr int sign_extend(unsigned v, unsigned bits) noexcept { forceinline constexpr int sign_extend32(unsigned v, unsigned bits) noexcept {
#if (ACC_ARCH_M68K) // no barrel shifter #if (ACC_ARCH_M68K) // no barrel shifter
const unsigned sign_bit = 1u << (bits - 1); const unsigned sign_bit = 1u << (bits - 1);
return ACC_ICAST(int, (v & (sign_bit - 1)) - (v & sign_bit)); return ACC_ICAST(int, (v & (sign_bit - 1)) - (v & sign_bit));
@@ -420,7 +421,7 @@ forceinline constexpr int sign_extend(unsigned v, unsigned bits) noexcept {
#endif #endif
} }
forceinline constexpr upx_int64_t sign_extend(upx_uint64_t v, unsigned bits) noexcept { forceinline constexpr upx_int64_t sign_extend64(upx_uint64_t v, unsigned bits) noexcept {
#if (ACC_ARCH_M68K) // no barrel shifter #if (ACC_ARCH_M68K) // no barrel shifter
const upx_uint64_t sign_bit = upx_uint64_t(1) << (bits - 1); const upx_uint64_t sign_bit = upx_uint64_t(1) << (bits - 1);
return ACC_ICAST(upx_int64_t, (v & (sign_bit - 1)) - (v & sign_bit)); return ACC_ICAST(upx_int64_t, (v & (sign_bit - 1)) - (v & sign_bit));
@@ -432,49 +433,49 @@ forceinline constexpr upx_int64_t sign_extend(upx_uint64_t v, unsigned bits) noe
REQUIRE_XE16 REQUIRE_XE16
inline bele_constexpr int get_be16_signed(const XE16 *p) noexcept { inline bele_constexpr int get_be16_signed(const XE16 *p) noexcept {
unsigned v = get_be16(p); unsigned v = get_be16(p);
return sign_extend(v, 16); return sign_extend32(v, 16);
} }
REQUIRE_XE24 REQUIRE_XE24
inline bele_constexpr int get_be24_signed(const XE24 *p) noexcept { inline bele_constexpr int get_be24_signed(const XE24 *p) noexcept {
unsigned v = get_be24(p); unsigned v = get_be24(p);
return sign_extend(v, 24); return sign_extend32(v, 24);
} }
REQUIRE_XE32 REQUIRE_XE32
inline bele_constexpr int get_be32_signed(const XE32 *p) noexcept { inline bele_constexpr int get_be32_signed(const XE32 *p) noexcept {
unsigned v = get_be32(p); unsigned v = get_be32(p);
return sign_extend(v, 32); return sign_extend32(v, 32);
} }
REQUIRE_XE64 REQUIRE_XE64
inline bele_constexpr upx_int64_t get_be64_signed(const XE64 *p) noexcept { inline bele_constexpr upx_int64_t get_be64_signed(const XE64 *p) noexcept {
upx_uint64_t v = get_be64(p); upx_uint64_t v = get_be64(p);
return sign_extend(v, 64); return sign_extend64(v, 64);
} }
REQUIRE_XE16 REQUIRE_XE16
inline bele_constexpr int get_le16_signed(const XE16 *p) noexcept { inline bele_constexpr int get_le16_signed(const XE16 *p) noexcept {
unsigned v = get_le16(p); unsigned v = get_le16(p);
return sign_extend(v, 16); return sign_extend32(v, 16);
} }
REQUIRE_XE24 REQUIRE_XE24
inline bele_constexpr int get_le24_signed(const XE24 *p) noexcept { inline bele_constexpr int get_le24_signed(const XE24 *p) noexcept {
unsigned v = get_le24(p); unsigned v = get_le24(p);
return sign_extend(v, 24); return sign_extend32(v, 24);
} }
REQUIRE_XE32 REQUIRE_XE32
inline bele_constexpr int get_le32_signed(const XE32 *p) noexcept { inline bele_constexpr int get_le32_signed(const XE32 *p) noexcept {
unsigned v = get_le32(p); unsigned v = get_le32(p);
return sign_extend(v, 32); return sign_extend32(v, 32);
} }
REQUIRE_XE64 REQUIRE_XE64
inline bele_constexpr upx_int64_t get_le64_signed(const XE64 *p) noexcept { inline bele_constexpr upx_int64_t get_le64_signed(const XE64 *p) noexcept {
upx_uint64_t v = get_le64(p); upx_uint64_t v = get_le64(p);
return sign_extend(v, 64); return sign_extend64(v, 64);
} }
/************************************************************************* /*************************************************************************
+41 -47
View File
@@ -158,8 +158,8 @@ static_assert(8 * sizeof(int) == __INT_WIDTH__, "");
#if defined(__LONG_WIDTH__) #if defined(__LONG_WIDTH__)
static_assert(8 * sizeof(long) == __LONG_WIDTH__, ""); static_assert(8 * sizeof(long) == __LONG_WIDTH__, "");
#endif #endif
#if defined(__LONG_LONG_WIDTH__) #if defined(__LLONG_WIDTH__)
static_assert(8 * sizeof(long long) == __LONG_LONG_WIDTH__, ""); static_assert(8 * sizeof(long long) == __LLONG_WIDTH__, "");
#endif #endif
#if defined(__INTMAX_WIDTH__) #if defined(__INTMAX_WIDTH__)
static_assert(8 * sizeof(intmax_t) == __INTMAX_WIDTH__, ""); static_assert(8 * sizeof(intmax_t) == __INTMAX_WIDTH__, "");
@@ -255,19 +255,6 @@ static_assert(std::is_unsigned<expected_ptraddr_t>::value, "");
ASSERT_SAME_TYPE(upx_ptraddr_t, expected_ptraddr_t); ASSERT_SAME_TYPE(upx_ptraddr_t, expected_ptraddr_t);
#endif #endif
#if defined(__INTPTR_TYPE__) && defined(__UINTPTR_TYPE__)
#if defined(__m68k__) && defined(__atarist__) && defined(__GNUC__)
// BUG: compiler/mintlib mismatch: int vs long
#elif (defined(__arm__) || defined(__mips__)) && defined(__linux__) && defined(__clang__) && \
(__SIZEOF_LONG__ == 4)
// BUG: compiler/libc mismatch: int vs long
// TODO later: check zig and clang for possible misconfiguration under 32-bit arm & mips
#else
ASSERT_SAME_TYPE(intptr_t, expected_intptr_t);
ASSERT_SAME_TYPE(uintptr_t, expected_uintptr_t);
#endif // BUG
#endif
// UPX types // UPX types
ASSERT_SAME_TYPE(signed char, upx_int8_t); ASSERT_SAME_TYPE(signed char, upx_int8_t);
ASSERT_SAME_TYPE(unsigned char, upx_uint8_t); ASSERT_SAME_TYPE(unsigned char, upx_uint8_t);
@@ -296,18 +283,18 @@ static_assert(bswap32(bswap32(0xf4f3f2f1)) == no_bswap32(0xf4f3f2f1));
static_assert(bswap64(bswap64(0xf8f7f6f5f4f3f2f1ull)) == no_bswap64(0xf8f7f6f5f4f3f2f1ull)); static_assert(bswap64(bswap64(0xf8f7f6f5f4f3f2f1ull)) == no_bswap64(0xf8f7f6f5f4f3f2f1ull));
#endif #endif
static_assert(sign_extend(0u + 0, 8) == 0); static_assert(sign_extend32(0u + 0, 8) == 0);
static_assert(sign_extend(0u + 1, 8) == 1); static_assert(sign_extend32(0u + 1, 8) == 1);
static_assert(sign_extend(0u + 127, 8) == 127); static_assert(sign_extend32(0u + 127, 8) == 127);
static_assert(sign_extend(0u + 128, 8) == -128); static_assert(sign_extend32(0u + 128, 8) == -128);
static_assert(sign_extend(0u - 1, 8) == -1); static_assert(sign_extend32(0u - 1, 8) == -1);
static_assert(sign_extend(0u + 256, 8) == 0); static_assert(sign_extend32(0u + 256, 8) == 0);
static_assert(sign_extend(0u + 257, 8) == 1); static_assert(sign_extend32(0u + 257, 8) == 1);
static_assert(sign_extend(0u + 383, 8) == 127); static_assert(sign_extend32(0u + 383, 8) == 127);
static_assert(sign_extend(0u + 384, 8) == -128); static_assert(sign_extend32(0u + 384, 8) == -128);
static_assert(sign_extend(0u + 511, 8) == -1); static_assert(sign_extend32(0u + 511, 8) == -1);
static_assert(sign_extend(upx_uint64_t(0) + 0, 1) == 0); static_assert(sign_extend64(upx_uint64_t(0) + 0, 1) == 0);
static_assert(sign_extend(upx_uint64_t(0) + 1, 1) == -1); static_assert(sign_extend64(upx_uint64_t(0) + 1, 1) == -1);
static_assert(CHAR_BIT == 8); static_assert(CHAR_BIT == 8);
#if 0 // does not work with MSVC #if 0 // does not work with MSVC
@@ -727,6 +714,7 @@ template <class A, class B>
static forceinline bool testNoAliasing(A *a, B *b) noexcept { static forceinline bool testNoAliasing(A *a, B *b) noexcept {
return TestNoAliasingStruct<A, B>::test(a, b); return TestNoAliasingStruct<A, B>::test(a, b);
} }
template <class T> template <class T>
struct TestIntegerWrap { // check working -fno-strict-overflow struct TestIntegerWrap { // check working -fno-strict-overflow
static inline bool inc_gt(const T x) noexcept { return x + 1 > x; } static inline bool inc_gt(const T x) noexcept { return x + 1 > x; }
@@ -1144,6 +1132,7 @@ void upx_compiler_sanity_check(void) noexcept {
assert_noexcept(bele->get32(d) == 0xfffefdfc); assert_noexcept(bele->get32(d) == 0xfffefdfc);
assert_noexcept(get_be32_signed(d) == -66052); assert_noexcept(get_be32_signed(d) == -66052);
assert_noexcept(get_be64(d) == 0xfffefdfcfbfaf9f8ULL); assert_noexcept(get_be64(d) == 0xfffefdfcfbfaf9f8ULL);
assert_noexcept(bele->get64(d) == 0xfffefdfcfbfaf9f8ULL);
assert_noexcept(get_be64_signed(d) == -283686952306184LL); assert_noexcept(get_be64_signed(d) == -283686952306184LL);
bele = &N_BELE_RTP::le_policy; bele = &N_BELE_RTP::le_policy;
assert_noexcept(get_le16(d) == 0xfeff); assert_noexcept(get_le16(d) == 0xfeff);
@@ -1156,6 +1145,7 @@ void upx_compiler_sanity_check(void) noexcept {
assert_noexcept(bele->get32(d) == 0xfcfdfeff); assert_noexcept(bele->get32(d) == 0xfcfdfeff);
assert_noexcept(get_le32_signed(d) == -50462977); assert_noexcept(get_le32_signed(d) == -50462977);
assert_noexcept(get_le64(d) == 0xf8f9fafbfcfdfeffULL); assert_noexcept(get_le64(d) == 0xf8f9fafbfcfdfeffULL);
assert_noexcept(bele->get64(d) == 0xf8f9fafbfcfdfeffULL);
assert_noexcept(get_le64_signed(d) == -506097522914230529LL); assert_noexcept(get_le64_signed(d) == -506097522914230529LL);
static_assert(get_be24(d) == 0xfffefd); static_assert(get_be24(d) == 0xfffefd);
static_assert(get_le24(d) == 0xfdfeff); static_assert(get_le24(d) == 0xfdfeff);
@@ -1222,29 +1212,33 @@ void upx_compiler_sanity_check(void) noexcept {
for (int i = 0; i < 256; i++) { for (int i = 0; i < 256; i++) {
{ {
const unsigned u = i; const unsigned u = i;
assert_noexcept(sign_extend(u, 1) == ((i & 1) ? -1 : 0)); assert_noexcept(sign_extend32(u, 1) == ((i & 1) ? -1 : 0));
assert_noexcept(sign_extend(u, 2) == ((i & 2) ? -2 + (i & 1) : (i & 1))); assert_noexcept(sign_extend32(u, 2) == ((i & 2) ? -2 + (i & 1) : (i & 1)));
assert_noexcept(sign_extend(u, 3) == ((i & 4) ? -4 + (i & 3) : (i & 3))); assert_noexcept(sign_extend32(u, 3) == ((i & 4) ? -4 + (i & 3) : (i & 3)));
assert_noexcept(sign_extend(u, 4) == ((i & 8) ? -8 + (i & 7) : (i & 7))); assert_noexcept(sign_extend32(u, 4) == ((i & 8) ? -8 + (i & 7) : (i & 7)));
assert_noexcept(sign_extend(u, 5) == ((i & 16) ? -16 + (i & 15) : (i & 15))); assert_noexcept(sign_extend32(u, 5) == ((i & 16) ? -16 + (i & 15) : (i & 15)));
assert_noexcept(sign_extend(u, 6) == ((i & 32) ? -32 + (i & 31) : (i & 31))); assert_noexcept(sign_extend32(u, 6) == ((i & 32) ? -32 + (i & 31) : (i & 31)));
assert_noexcept(sign_extend(u, 7) == ((i & 64) ? -64 + (i & 63) : (i & 63))); assert_noexcept(sign_extend32(u, 7) == ((i & 64) ? -64 + (i & 63) : (i & 63)));
assert_noexcept(sign_extend(u, 8) == ((i & 128) ? -128 + (i & 127) : (i & 127))); assert_noexcept(sign_extend32(u, 8) == ((i & 128) ? -128 + (i & 127) : (i & 127)));
assert_noexcept(sign_extend(u, 32) == i); assert_noexcept(sign_extend32(u, 9) == i);
assert_noexcept(sign_extend(0u - u, 32) == -i); assert_noexcept(sign_extend32(u, 32) == i);
assert_noexcept(sign_extend32(0u - u, 32) == -i);
} }
{ {
const upx_uint64_t u = i; const upx_uint64_t u = i;
assert_noexcept(sign_extend(u, 1) == ((i & 1) ? -1 : 0)); assert_noexcept(sign_extend64(u, 1) == ((i & 1) ? -1 : 0));
assert_noexcept(sign_extend(u, 2) == ((i & 2) ? -2 + (i & 1) : (i & 1))); assert_noexcept(sign_extend64(u, 2) == ((i & 2) ? -2 + (i & 1) : (i & 1)));
assert_noexcept(sign_extend(u, 3) == ((i & 4) ? -4 + (i & 3) : (i & 3))); assert_noexcept(sign_extend64(u, 3) == ((i & 4) ? -4 + (i & 3) : (i & 3)));
assert_noexcept(sign_extend(u, 4) == ((i & 8) ? -8 + (i & 7) : (i & 7))); assert_noexcept(sign_extend64(u, 4) == ((i & 8) ? -8 + (i & 7) : (i & 7)));
assert_noexcept(sign_extend(u, 5) == ((i & 16) ? -16 + (i & 15) : (i & 15))); assert_noexcept(sign_extend64(u, 5) == ((i & 16) ? -16 + (i & 15) : (i & 15)));
assert_noexcept(sign_extend(u, 6) == ((i & 32) ? -32 + (i & 31) : (i & 31))); assert_noexcept(sign_extend64(u, 6) == ((i & 32) ? -32 + (i & 31) : (i & 31)));
assert_noexcept(sign_extend(u, 7) == ((i & 64) ? -64 + (i & 63) : (i & 63))); assert_noexcept(sign_extend64(u, 7) == ((i & 64) ? -64 + (i & 63) : (i & 63)));
assert_noexcept(sign_extend(u, 8) == ((i & 128) ? -128 + (i & 127) : (i & 127))); assert_noexcept(sign_extend64(u, 8) == ((i & 128) ? -128 + (i & 127) : (i & 127)));
assert_noexcept(sign_extend(u, 64) == i); assert_noexcept(sign_extend64(u, 9) == i);
assert_noexcept(sign_extend(upx_uint64_t(0) - u, 64) == -i); assert_noexcept(sign_extend64(u, 32) == i);
assert_noexcept(sign_extend64(upx_uint64_t(0) - u, 32) == -i);
assert_noexcept(sign_extend64(u, 64) == i);
assert_noexcept(sign_extend64(upx_uint64_t(0) - u, 64) == -i);
} }
} }
} }
+4 -2
View File
@@ -558,7 +558,8 @@ TEST_CASE("upx::ObjectDeleter 1") {
LE32 *a = nullptr; // array LE32 *a = nullptr; // array
LE64 *m = nullptr; // malloc LE64 *m = nullptr; // malloc
{ {
auto o_deleter = upx::ObjectDeleter(&o, 1); // auto o_deleter = upx::ObjectDeleter(&o, 1);
upx::ObjectDeleter<LE16> o_deleter = upx::ObjectDeleter(&o, 1);
o = new LE16; o = new LE16;
assert(o != nullptr); assert(o != nullptr);
auto a_deleter = upx::ArrayDeleter(&a, 1); auto a_deleter = upx::ArrayDeleter(&a, 1);
@@ -594,7 +595,8 @@ TEST_CASE("upx::ObjectDeleter 2") {
BE32 *a[N]; // multiple arrays BE32 *a[N]; // multiple arrays
BE64 *m[N]; // multiple mallocs BE64 *m[N]; // multiple mallocs
{ {
auto o_deleter = upx::ObjectDeleter(o, 0); // auto o_deleter = upx::ObjectDeleter(o, 0);
upx::ObjectDeleter<BE16> o_deleter = upx::ObjectDeleter(o, 0);
auto a_deleter = upx::ArrayDeleter(a, 0); auto a_deleter = upx::ArrayDeleter(a, 0);
auto m_deleter = upx::MallocDeleter(m, 0); auto m_deleter = upx::MallocDeleter(m, 0);
for (size_t i = 0; i < N; i++) { for (size_t i = 0; i < N; i++) {
+4
View File
@@ -71,6 +71,10 @@ static_assert((-1) >> 31 == -1); // arithmetic right shift
static_assert(CHAR_MAX == 255); // -funsigned-char static_assert(CHAR_MAX == 255); // -funsigned-char
static_assert((char) (-1) == 255); // -funsigned-char static_assert((char) (-1) == 255); // -funsigned-char
// disable some more strict warnings
#if defined(__clang__) && __has_warning("-Wunnecessary-virtual-specifier")
#pragma clang diagnostic ignored "-Wunnecessary-virtual-specifier"
#endif
// enable some more strict warnings for Git developer builds // enable some more strict warnings for Git developer builds
#if defined(UPX_CONFIG_DISABLE_WSTRICT) && (UPX_CONFIG_DISABLE_WSTRICT + 0 == 0) #if defined(UPX_CONFIG_DISABLE_WSTRICT) && (UPX_CONFIG_DISABLE_WSTRICT + 0 == 0)
#if defined(UPX_CONFIG_DISABLE_WERROR) && (UPX_CONFIG_DISABLE_WERROR + 0 == 0) #if defined(UPX_CONFIG_DISABLE_WERROR) && (UPX_CONFIG_DISABLE_WERROR + 0 == 0)
+4 -2
View File
@@ -129,7 +129,8 @@ void FileBase::closex() may_throw {
upx_off_t FileBase::seek(upx_off_t off, int whence) { upx_off_t FileBase::seek(upx_off_t off, int whence) {
if (!isOpen()) if (!isOpen())
throwIOException("bad seek 1"); throwIOException("bad seek 1");
mem_size_assert(1, off >= 0 ? off : -off); // sanity check if (!mem_size_valid_bytes(off >= 0 ? off : -off)) // sanity check
throwIOException("bad seek");
if (whence == SEEK_SET) { if (whence == SEEK_SET) {
if (off < 0) if (off < 0)
throwIOException("bad seek 2"); throwIOException("bad seek 2");
@@ -318,7 +319,8 @@ void OutputFile::rewrite(SPAN_P(const void) buf, int len) {
} }
upx_off_t OutputFile::seek(upx_off_t off, int whence) { upx_off_t OutputFile::seek(upx_off_t off, int whence) {
mem_size_assert(1, off >= 0 ? off : -off); // sanity check if (!mem_size_valid_bytes(off >= 0 ? off : -off)) // sanity check
throwIOException("bad seek");
assert(!opt->to_stdout); assert(!opt->to_stdout);
switch (whence) { switch (whence) {
case SEEK_SET: case SEEK_SET:
+4 -1
View File
@@ -220,9 +220,12 @@ void show_help(int verbose) {
"%s" "%s"
" -d decompress -l list compressed file\n" " -d decompress -l list compressed file\n"
" -t test compressed file -V display version number\n" " -t test compressed file -V display version number\n"
"%s"
" -h give %s help -L display software license\n%s", " -h give %s help -L display software license\n%s",
verbose == 0 ? "" : " --best compress best (can be slow for big files)\n", verbose == 0 ? "" : " --best compress best (can be slow for big files)\n",
verbose == 0 ? "more" : "this", verbose == 0 ? "" : "\n"); verbose == 0 ? "" : " --fileinfo show parameters of already-compressed file\n",
verbose == 0 ? "more" : "this",
verbose == 0 ? "" : "\n");
fg = con_fg(f, FG_YELLOW); fg = con_fg(f, FG_YELLOW);
con_fprintf(f, "Options:\n"); con_fprintf(f, "Options:\n");
+1 -1
View File
@@ -840,8 +840,8 @@ int main_get_options(int argc, char **argv) {
{"force", 0, N, 'f'}, // force overwrite of output files {"force", 0, N, 'f'}, // force overwrite of output files
{"force-compress", 0, N, 'f'}, // and compression of suspicious files {"force-compress", 0, N, 'f'}, // and compression of suspicious files
{"force-overwrite", 0x90, N, 529}, // force overwrite of output files {"force-overwrite", 0x90, N, 529}, // force overwrite of output files
{"link", 0x90, N, 530}, // preserve hard link
{"info", 0, N, 'i'}, // info mode {"info", 0, N, 'i'}, // info mode
{"link", 0x90, N, 530}, // preserve hard link
{"no-env", 0x10, N, 519}, // no environment var {"no-env", 0x10, N, 519}, // no environment var
{"no-link", 0x90, N, 531}, // do not preserve hard link [default] {"no-link", 0x90, N, 531}, // do not preserve hard link [default]
{"no-mode", 0x10, N, 526}, // do not preserve mode (permissions) {"no-mode", 0x10, N, 526}, // do not preserve mode (permissions)
+2 -1
View File
@@ -28,7 +28,8 @@
#include "conf.h" #include "conf.h"
static Options global_options; static Options global_options;
Options *opt = &global_options; // also see class PackMaster for per-file local options // also see class PackMaster for per-file local options
Options *opt = &global_options;
#if WITH_THREADS #if WITH_THREADS
std::mutex opt_lock_mutex; // for locking "opt" std::mutex opt_lock_mutex; // for locking "opt"
+2 -1
View File
@@ -30,7 +30,8 @@
struct Options; struct Options;
#define options_t Options // old name #define options_t Options // old name
extern Options *opt; // global options, see class PackMaster for per-file local options // global options, see class PackMaster for per-file local options
extern Options *opt;
#if WITH_THREADS #if WITH_THREADS
extern std::mutex opt_lock_mutex; // for locking "opt" extern std::mutex opt_lock_mutex; // for locking "opt"
+86 -39
View File
@@ -1532,9 +1532,9 @@ PackLinuxElf32::buildLinuxLoader(
// EXP_TAIL FIXME: unfilter // EXP_TAIL FIXME: unfilter
// SO_TAIL // SO_TAIL
// SO_MAIN C-language supervision based on PT_LOADs // SO_MAIN C-language supervision based on PT_LOADs
char sec[120]; memset(sec, 0, sizeof(sec)); // debug convenience char sec[200]; memset(sec, 0, sizeof(sec)); // debug convenience
int len = 0; int len = 0;
unsigned m_decompr = methods_used | (1u << ph_forced_method(ph.method)); unsigned m_decompr = methods_used | (1u << (0xFF & ph_forced_method(ph.method)));
len += snprintf(sec, sizeof(sec), "%s", "SO_HEAD,ptr_NEXT,EXP_HEAD"); len += snprintf(sec, sizeof(sec), "%s", "SO_HEAD,ptr_NEXT,EXP_HEAD");
// Start of dasiy-chain fall-through. // Start of dasiy-chain fall-through.
@@ -1554,10 +1554,13 @@ PackLinuxElf32::buildLinuxLoader(
len += snprintf(&sec[len], sizeof(sec) - len, ",%s", "EXP_TAIL"); len += snprintf(&sec[len], sizeof(sec) - len, ",%s", "EXP_TAIL");
// End of daisy-chain fall-through. // End of daisy-chain fall-through.
// MIPS directly calls memfd_create
if (this->e_machine != Elf32_Ehdr::EM_MIPS) {
len += snprintf(&sec[len], sizeof(sec) - len, ",%s", len += snprintf(&sec[len], sizeof(sec) - len, ",%s",
(sec_arm_attr || is_asl) (sec_arm_attr || is_asl)
? "HUMF_A,UMF_ANDROID" ? "HUMF_A,UMF_ANDROID"
: "HUMF_L,UMF_LINUX"); : "HUMF_L,UMF_LINUX");
}
if (hasLoaderSection("STRCON")) { if (hasLoaderSection("STRCON")) {
len += snprintf(&sec[len], sizeof(sec) - len, ",%s", "STRCON"); len += snprintf(&sec[len], sizeof(sec) - len, ",%s", "STRCON");
} }
@@ -1581,9 +1584,9 @@ PackLinuxElf32::buildLinuxLoader(
|| this->e_machine==Elf32_Ehdr::EM_MIPS || this->e_machine==Elf32_Ehdr::EM_MIPS
) { // main program with ELF2 de-compressor (folded portion) ) { // main program with ELF2 de-compressor (folded portion)
initLoader(fold, szfold); initLoader(fold, szfold);
char sec[120]; memset(sec, 0, sizeof(sec)); // debug convenience char sec[200]; memset(sec, 0, sizeof(sec)); // debug convenience
int len = 0; int len = 0;
unsigned m_decompr = methods_used | (1u << ph_forced_method(ph.method)); unsigned m_decompr = methods_used | (1u << (0xFF & ph_forced_method(ph.method)));
len += snprintf(sec, sizeof(sec), "%s", ".text,EXP_HEAD"); len += snprintf(sec, sizeof(sec), "%s", ".text,EXP_HEAD");
if (((1u<<M_NRV2B_LE32)|(1u<<M_NRV2B_8)|(1u<<M_NRV2B_LE16)) & m_decompr) { if (((1u<<M_NRV2B_LE32)|(1u<<M_NRV2B_8)|(1u<<M_NRV2B_LE16)) & m_decompr) {
len += snprintf(&sec[len], sizeof(sec) - len, ",%s", "NRV2B"); len += snprintf(&sec[len], sizeof(sec) - len, ",%s", "NRV2B");
@@ -1689,7 +1692,7 @@ PackLinuxElf32::buildLinuxLoader(
defineSymbols(ft); defineSymbols(ft);
} }
else { // main program with ELF1 de-compressor else { // main program with ELF1 de-compressor
addStubEntrySections(ft, methods_used | (1u << ph_forced_method(ph.method)) ); addStubEntrySections(ft, methods_used | (1u << (0xFF & ph_forced_method(ph.method))) );
if (!xct_off) { // main program if (!xct_off) { // main program
defineSymbols(ft); defineSymbols(ft);
} }
@@ -1726,9 +1729,9 @@ PackLinuxElf64::buildLinuxLoader(
// EXP_TAIL FIXME: unfilter // EXP_TAIL FIXME: unfilter
// SO_TAIL // SO_TAIL
// SO_MAIN C-language supervision based on PT_LOADs // SO_MAIN C-language supervision based on PT_LOADs
char sec[120]; memset(sec, 0, sizeof(sec)); // debug convenience char sec[200]; memset(sec, 0, sizeof(sec)); // debug convenience
int len = 0; int len = 0;
unsigned m_decompr = methods_used | (1u << ph_forced_method(ph.method)); unsigned m_decompr = methods_used | (1u << (0xFF & ph_forced_method(ph.method)));
len += snprintf(sec, sizeof(sec), "%s", "SO_HEAD,ptr_NEXT,EXP_HEAD"); len += snprintf(sec, sizeof(sec), "%s", "SO_HEAD,ptr_NEXT,EXP_HEAD");
// Start of dasiy-chain fall-through. // Start of dasiy-chain fall-through.
@@ -1771,9 +1774,9 @@ PackLinuxElf64::buildLinuxLoader(
|| this->e_machine==Elf64_Ehdr::EM_PPC64 || this->e_machine==Elf64_Ehdr::EM_PPC64
) { // main program with ELF2 de-compressor (folded portion) ) { // main program with ELF2 de-compressor (folded portion)
initLoader(fold, szfold); initLoader(fold, szfold);
char sec[120]; memset(sec, 0, sizeof(sec)); // debug convenience char sec[200]; memset(sec, 0, sizeof(sec)); // debug convenience
int len = 0; int len = 0;
unsigned m_decompr = methods_used | (1u << ph_forced_method(ph.method)); unsigned m_decompr = methods_used | (1u << (0xFF & ph_forced_method(ph.method)));
len += snprintf(sec, sizeof(sec), "%s", ".text,EXP_HEAD"); len += snprintf(sec, sizeof(sec), "%s", ".text,EXP_HEAD");
if (((1u<<M_NRV2B_LE32)|(1u<<M_NRV2B_8)|(1u<<M_NRV2B_LE16)) & m_decompr) { if (((1u<<M_NRV2B_LE32)|(1u<<M_NRV2B_8)|(1u<<M_NRV2B_LE16)) & m_decompr) {
len += snprintf(&sec[len], sizeof(sec) - len, ",%s", "NRV2B"); len += snprintf(&sec[len], sizeof(sec) - len, ",%s", "NRV2B");
@@ -1878,7 +1881,7 @@ PackLinuxElf64::buildLinuxLoader(
} }
} }
else { // main program with ELF1 de-compressor else { // main program with ELF1 de-compressor
addStubEntrySections(ft, methods_used | (1u << ph_forced_method(ph.method)) ); addStubEntrySections(ft, methods_used | (1u << (0xFF & ph_forced_method(ph.method))) );
if (!xct_off) { // main program if (!xct_off) { // main program
defineSymbols(ft); defineSymbols(ft);
} }
@@ -2312,6 +2315,8 @@ unsigned PackLinuxElf32::elf_find_table_size(unsigned dt_type, unsigned sh_type)
x_rva = elf_unsigned_dynamic(dt_type); x_rva = elf_unsigned_dynamic(dt_type);
} }
Elf32_Phdr const *const x_phdr = elf_find_Phdr_for_va(x_rva, phdri, e_phnum); Elf32_Phdr const *const x_phdr = elf_find_Phdr_for_va(x_rva, phdri, e_phnum);
if (!x_phdr)
return ~0u; // corrupted Phdrs?
unsigned const d_off = x_rva - get_te32(&x_phdr->p_vaddr); unsigned const d_off = x_rva - get_te32(&x_phdr->p_vaddr);
unsigned const y_ndx = find_dt_ndx(d_off + get_te32(&x_phdr->p_offset)); unsigned const y_ndx = find_dt_ndx(d_off + get_te32(&x_phdr->p_offset));
if (~0u != y_ndx) { if (~0u != y_ndx) {
@@ -2373,10 +2378,11 @@ PackLinuxElf32::invert_pt_dynamic(Elf32_Dyn const *dynp, u32_t headway)
throwCantPack("bad DT_STRSZ %#x", strtab_max); throwCantPack("bad DT_STRSZ %#x", strtab_max);
} }
// Find end of DT_SYMTAB { // Find end of DT_SYMTAB
unsigned const tmp2 = elf_find_table_size(Elf32_Dyn::DT_SYMTAB, unsigned const tmp2 = elf_find_table_size(Elf32_Dyn::DT_SYMTAB,
Elf32_Shdr::SHT_DYNSYM); Elf32_Shdr::SHT_DYNSYM);
symnum_max = (~0u == tmp2) ? 0 : tmp1 / sizeof(Elf32_Sym); symnum_max = (~0u == tmp2) ? 0 : tmp2 / sizeof(Elf32_Sym);
}
unsigned v_sym = dt_table[Elf32_Dyn::DT_SYMTAB]; unsigned v_sym = dt_table[Elf32_Dyn::DT_SYMTAB];
if (v_sym) { if (v_sym) {
@@ -2394,6 +2400,12 @@ PackLinuxElf32::invert_pt_dynamic(Elf32_Dyn const *dynp, u32_t headway)
// Find end of DT_HASH // Find end of DT_HASH
hashend = (unsigned const *)(void const *)(elf_find_table_size( hashend = (unsigned const *)(void const *)(elf_find_table_size(
Elf32_Dyn::DT_HASH, Elf32_Shdr::SHT_HASH) + (char const *)hashtab); Elf32_Dyn::DT_HASH, Elf32_Shdr::SHT_HASH) + (char const *)hashtab);
if (!hashtab || (char const *)hashend <= (char const *)&hashtab[2]
|| file_image.getSizeInBytes()
< (unsigned)((char const *)&hashtab[2] - (char *)&file_image[0]) )
{
throwCantPack("bad DT_HASH %#x", v_hsh);
}
unsigned const nbucket = get_te32(&hashtab[0]); unsigned const nbucket = get_te32(&hashtab[0]);
unsigned const *const buckets = &hashtab[2]; unsigned const *const buckets = &hashtab[2];
@@ -3786,8 +3798,8 @@ PackLinuxElf32::generateElfHdr(
assert(get_te16(&h2->ehdr.e_phentsize) == sizeof(Elf32_Phdr)); assert(get_te16(&h2->ehdr.e_phentsize) == sizeof(Elf32_Phdr));
h2->ehdr.e_shoff = 0; h2->ehdr.e_shoff = 0;
set_te16(&h2->ehdr.e_shentsize, sizeof(Elf32_Shdr)); // libbfd-2.41-38.fc40
if (o_elf_shnum) { if (o_elf_shnum) {
set_te16(&h2->ehdr.e_shentsize, sizeof(Elf32_Shdr));
h2->ehdr.e_shnum = o_elf_shnum; h2->ehdr.e_shnum = o_elf_shnum;
h2->ehdr.e_shstrndx = o_elf_shnum - 1; h2->ehdr.e_shstrndx = o_elf_shnum - 1;
} }
@@ -3795,7 +3807,9 @@ PackLinuxElf32::generateElfHdr(
// https://bugzilla.redhat.com/show_bug.cgi?id=2131609 // https://bugzilla.redhat.com/show_bug.cgi?id=2131609
// 0==.e_shnum is a special case for libbfd // 0==.e_shnum is a special case for libbfd
// that requires 0==.e_shentsize in order to force "no Shdrs" // that requires 0==.e_shentsize in order to force "no Shdrs"
h2->ehdr.e_shentsize = 0; // But qemu 8.2.9 with libbfd-2.41-38.fc40 says EXEC format error
// and uses 0==.e_shoff instead.
// h2->ehdr.e_shentsize = 0;
h2->ehdr.e_shnum = 0; h2->ehdr.e_shnum = 0;
h2->ehdr.e_shstrndx = 0; h2->ehdr.e_shstrndx = 0;
} }
@@ -3995,7 +4009,7 @@ PackOpenBSDElf32x86::generateElfHdr(
h3->ehdr.e_shoff = 0; h3->ehdr.e_shoff = 0;
assert(get_te16(&h3->ehdr.e_ehsize) == sizeof(Elf32_Ehdr)); assert(get_te16(&h3->ehdr.e_ehsize) == sizeof(Elf32_Ehdr));
assert(get_te16(&h3->ehdr.e_phentsize) == sizeof(Elf32_Phdr)); assert(get_te16(&h3->ehdr.e_phentsize) == sizeof(Elf32_Phdr));
h3->ehdr.e_shentsize = 0; set_te16(&h3->ehdr.e_shentsize, sizeof(Elf32_Shdr)); // libbfd-2.41-38.fc40
h3->ehdr.e_shnum = 0; h3->ehdr.e_shnum = 0;
h3->ehdr.e_shstrndx = 0; h3->ehdr.e_shstrndx = 0;
@@ -4091,8 +4105,8 @@ PackLinuxElf64::generateElfHdr(
assert(get_te16(&h2->ehdr.e_phentsize) == sizeof(Elf64_Phdr)); assert(get_te16(&h2->ehdr.e_phentsize) == sizeof(Elf64_Phdr));
h2->ehdr.e_shoff = 0; h2->ehdr.e_shoff = 0;
set_te16(&h2->ehdr.e_shentsize, sizeof(Elf64_Shdr)); // libbfd-2.41-38.fc40
if (o_elf_shnum) { if (o_elf_shnum) {
set_te16(&h2->ehdr.e_shentsize, sizeof(Elf64_Shdr));
h2->ehdr.e_shnum = o_elf_shnum; h2->ehdr.e_shnum = o_elf_shnum;
h2->ehdr.e_shstrndx = o_elf_shnum - 1; h2->ehdr.e_shstrndx = o_elf_shnum - 1;
} }
@@ -4100,7 +4114,9 @@ PackLinuxElf64::generateElfHdr(
// https://bugzilla.redhat.com/show_bug.cgi?id=2131609 // https://bugzilla.redhat.com/show_bug.cgi?id=2131609
// 0==.e_shnum is a special case for libbfd // 0==.e_shnum is a special case for libbfd
// that requires 0==.e_shentsize in order to force "no Shdrs" // that requires 0==.e_shentsize in order to force "no Shdrs"
h2->ehdr.e_shentsize = 0; // But qemu 8.2.9 with libbfd-2.41-38.fc40 says EXEC format error
// and uses 0==.e_shoff instead.
// h2->ehdr.e_shentsize = 0;
h2->ehdr.e_shnum = 0; h2->ehdr.e_shnum = 0;
h2->ehdr.e_shstrndx = 0; h2->ehdr.e_shstrndx = 0;
} }
@@ -4300,7 +4316,7 @@ void PackLinuxElf32::pack1(OutputFile * /*fo*/, Filter &ft)
fi->readx(ibuf, filesz); fi->readx(ibuf, filesz);
ft = orig_ft; ft = orig_ft;
ph = orig_ph; ph = orig_ph;
ph.method = ph_force_method(methods[k]); ph.set_method(ph_force_method(methods[k]), offset);
ph.u_len = filesz; ph.u_len = filesz;
compressWithFilters(&ft, OVERHEAD, NULL_cconf, 10, true); compressWithFilters(&ft, OVERHEAD, NULL_cconf, 10, true);
sz_this += ph.c_len; sz_this += ph.c_len;
@@ -4313,7 +4329,7 @@ void PackLinuxElf32::pack1(OutputFile * /*fo*/, Filter &ft)
fi->readx(ibuf, sz_tail); fi->readx(ibuf, sz_tail);
ft = orig_ft; ft = orig_ft;
ph = orig_ph; ph = orig_ph;
ph.method = ph_force_method(methods[k]); ph.set_method(ph_force_method(methods[k]));
ph.u_len = sz_tail; ph.u_len = sz_tail;
compressWithFilters(&ft, OVERHEAD, NULL_cconf, 10, true); compressWithFilters(&ft, OVERHEAD, NULL_cconf, 10, true);
sz_this += ph.c_len; sz_this += ph.c_len;
@@ -4326,7 +4342,7 @@ void PackLinuxElf32::pack1(OutputFile * /*fo*/, Filter &ft)
} }
ft = orig_ft; ft = orig_ft;
ph = orig_ph; ph = orig_ph;
ph.method = ph_force_method(method_best); ph.set_method(ph_force_method(method_best));
} }
Elf32_Phdr *phdr = phdri; Elf32_Phdr *phdr = phdri;
@@ -5152,7 +5168,7 @@ void PackLinuxElf64::pack1(OutputFile * /*fo*/, Filter &ft)
fi->readx(ibuf, filesz); fi->readx(ibuf, filesz);
ft = orig_ft; ft = orig_ft;
ph = orig_ph; ph = orig_ph;
ph.method = ph_force_method(methods[k]); ph.set_method(ph_force_method(methods[k]));
ph.u_len = filesz; ph.u_len = filesz;
compressWithFilters(&ft, OVERHEAD, NULL_cconf, 10, true); compressWithFilters(&ft, OVERHEAD, NULL_cconf, 10, true);
sz_this += ph.c_len; sz_this += ph.c_len;
@@ -5165,7 +5181,7 @@ void PackLinuxElf64::pack1(OutputFile * /*fo*/, Filter &ft)
fi->readx(ibuf, sz_tail); fi->readx(ibuf, sz_tail);
ft = orig_ft; ft = orig_ft;
ph = orig_ph; ph = orig_ph;
ph.method = ph_force_method(methods[k]); ph.set_method(ph_force_method(methods[k]));
ph.u_len = sz_tail; ph.u_len = sz_tail;
compressWithFilters(&ft, OVERHEAD, NULL_cconf, 10, true); compressWithFilters(&ft, OVERHEAD, NULL_cconf, 10, true);
sz_this += ph.c_len; sz_this += ph.c_len;
@@ -5178,7 +5194,7 @@ void PackLinuxElf64::pack1(OutputFile * /*fo*/, Filter &ft)
} }
ft = orig_ft; ft = orig_ft;
ph = orig_ph; ph = orig_ph;
ph.method = ph_force_method(method_best); ph.set_method(ph_force_method(method_best));
} }
Elf64_Phdr *phdr = phdri; Elf64_Phdr *phdr = phdri;
@@ -7303,8 +7319,11 @@ void PackLinuxElf32::un_DT_INIT(
|| Elf32_Dyn::DT_PREINIT_ARRAY == tag) { || Elf32_Dyn::DT_PREINIT_ARRAY == tag) {
// 'val' is the RVA of the first slot, which is the slot that // 'val' is the RVA of the first slot, which is the slot that
// the compressor changed to be the entry to the run-time stub. // the compressor changed to be the entry to the run-time stub.
Elf32_Rel *rp = (Elf32_Rel *)elf_find_dynamic(Elf32_Dyn::DT_NULL); Elf32_Dyn *dyn_null = elf_find_dynptr(Elf32_Dyn::DT_NULL);
((Elf32_Dyn *)elf_find_dynptr(Elf32_Dyn::DT_NULL))->d_val = 0; if (!dyn_null)
throwCantUnpack("bad PT_DYNAMIC .end");
Elf32_Rel *rp = (Elf32_Rel *)elf_find_dynamic(dyn_null->d_val);
dyn_null->d_val = 0;
if (rp) { if (rp) {
// Compressor saved the original *rp in dynsym[0] // Compressor saved the original *rp in dynsym[0]
Elf32_Rel *rp_unc = (Elf32_Rel *)&dynsym[0]; // pointer Elf32_Rel *rp_unc = (Elf32_Rel *)&dynsym[0]; // pointer
@@ -7403,6 +7422,8 @@ void PackLinuxElf32::un_DT_INIT(
Elf32_Ehdr const *const o_ehdr = (Elf32_Ehdr const *)(void *)lowmem; Elf32_Ehdr const *const o_ehdr = (Elf32_Ehdr const *)(void *)lowmem;
unsigned const o_phnum = o_ehdr->e_phnum; unsigned const o_phnum = o_ehdr->e_phnum;
if (((1<<16) - sizeof(Elf32_Ehdr)) / sizeof(Elf32_Phdr) < o_phnum)
throwCantUnpack("bad Ehdr.e_phnum %#x", o_phnum);
phdr = phdro; phdr = phdro;
for (unsigned j = 0; j < o_phnum; ++j, ++phdr) if (is_LOAD(phdr)) { for (unsigned j = 0; j < o_phnum; ++j, ++phdr) if (is_LOAD(phdr)) {
upx_uint32_t vaddr = get_te32(&phdr->p_vaddr); upx_uint32_t vaddr = get_te32(&phdr->p_vaddr);
@@ -7410,6 +7431,8 @@ void PackLinuxElf32::un_DT_INIT(
upx_uint32_t d = plt_va - vaddr - asl_delta; upx_uint32_t d = plt_va - vaddr - asl_delta;
if (d < filesz) { if (d < filesz) {
upx_uint32_t offset = get_te32(&phdr->p_offset); upx_uint32_t offset = get_te32(&phdr->p_offset);
if ((upx_uint32_t)file_size <= offset)
throwCantUnpack("bad phdr[%d].p_offset %#zx", j, (size_t)offset);
if (fo) { if (fo) {
fo->seek(d + offset, SEEK_SET); fo->seek(d + offset, SEEK_SET);
fo->rewrite(jump_slots, n_plt * sizeof(upx_uint32_t)); fo->rewrite(jump_slots, n_plt * sizeof(upx_uint32_t));
@@ -7479,12 +7502,15 @@ void PackLinuxElf64::un_DT_INIT(
} }
// Apparently the hard case is common for some Android IDEs. // Apparently the hard case is common for some Android IDEs.
// No DT_INIT; only DT_INIT_ARRAY. // No DT_INIT; only DT_INIT_ARRAY.
else if (Elf32_Dyn::DT_INIT_ARRAY == tag else if (Elf64_Dyn::DT_INIT_ARRAY == tag
|| Elf64_Dyn::DT_PREINIT_ARRAY == tag) { || Elf64_Dyn::DT_PREINIT_ARRAY == tag) {
// 'val' is the RVA of the first slot, which is the slot that // 'val' is the RVA of the first slot, which is the slot that
// the compressor changed to be the entry to the run-time stub. // the compressor changed to be the entry to the run-time stub.
Elf64_Rela *rp = (Elf64_Rela *)elf_find_dynamic(Elf64_Dyn::DT_NULL); Elf64_Dyn *dyn_null = elf_find_dynptr(Elf64_Dyn::DT_NULL);
((Elf64_Dyn *)elf_find_dynptr(Elf64_Dyn::DT_NULL))->d_val = 0; if (!dyn_null)
throwCantUnpack("bad PT_DYNAMIC .end");
Elf64_Rela *rp = (Elf64_Rela *)elf_find_dynamic(dyn_null->d_val);
dyn_null->d_val = 0;
if (rp) { if (rp) {
// Compressor saved the original *rp in dynsym[0] // Compressor saved the original *rp in dynsym[0]
Elf64_Rela *rp_unc = (Elf64_Rela *)&dynsym[0]; // pointer Elf64_Rela *rp_unc = (Elf64_Rela *)&dynsym[0]; // pointer
@@ -7547,6 +7573,8 @@ void PackLinuxElf64::un_DT_INIT(
Elf64_Ehdr const *const o_ehdr = (Elf64_Ehdr const *)(void *)lowmem; Elf64_Ehdr const *const o_ehdr = (Elf64_Ehdr const *)(void *)lowmem;
unsigned const o_phnum = o_ehdr->e_phnum; unsigned const o_phnum = o_ehdr->e_phnum;
if (((1<<16) - sizeof(Elf64_Ehdr)) / sizeof(Elf64_Phdr) < o_phnum)
throwCantUnpack("bad Ehdr.e_phnum %#x", o_phnum);
phdr = phdro; phdr = phdro;
for (unsigned j = 0; j < o_phnum; ++j, ++phdr) if (is_LOAD(phdr)) { for (unsigned j = 0; j < o_phnum; ++j, ++phdr) if (is_LOAD(phdr)) {
upx_uint64_t vaddr = get_te64(&phdr->p_vaddr); upx_uint64_t vaddr = get_te64(&phdr->p_vaddr);
@@ -7554,6 +7582,8 @@ void PackLinuxElf64::un_DT_INIT(
upx_uint64_t d = plt_va - vaddr - asl_delta; upx_uint64_t d = plt_va - vaddr - asl_delta;
if (d < filesz) { if (d < filesz) {
upx_uint64_t offset = get_te64(&phdr->p_offset); upx_uint64_t offset = get_te64(&phdr->p_offset);
if ((upx_uint64_t)file_size <= offset)
throwCantUnpack("bad phdr[%d].p_offset %#zx", j, (size_t)offset);
if (fo) { if (fo) {
fo->seek(d + offset, SEEK_SET); fo->seek(d + offset, SEEK_SET);
fo->rewrite(jump_slots, n_plt * sizeof(upx_uint64_t)); fo->rewrite(jump_slots, n_plt * sizeof(upx_uint64_t));
@@ -7620,7 +7650,7 @@ void PackLinuxElf64::unpack(OutputFile *fo)
fi->readx(&bhdr, szb_info); fi->readx(&bhdr, szb_info);
ph.u_len = get_te32(&bhdr.sz_unc); ph.u_len = get_te32(&bhdr.sz_unc);
ph.c_len = get_te32(&bhdr.sz_cpr); ph.c_len = get_te32(&bhdr.sz_cpr);
ph.method = bhdr.b_method; ph.set_method(bhdr.b_method, overlay_offset + sizeof(p_info));
if (ph.c_len > file_size_u || ph.c_len == 0 || ph.u_len == 0 if (ph.c_len > file_size_u || ph.c_len == 0 || ph.u_len == 0
|| ph.u_len > orig_file_size) || ph.u_len > orig_file_size)
throwCantUnpack("b_info corrupted"); throwCantUnpack("b_info corrupted");
@@ -7665,15 +7695,17 @@ void PackLinuxElf64::unpack(OutputFile *fo)
unsigned b_method = ibuf[0]; unsigned b_method = ibuf[0];
unsigned b_extra = ibuf[3]; unsigned b_extra = ibuf[3];
if (M_ZSTD >= b_method && 0 == b_extra) { if (M_ZSTD >= b_method && 0 == b_extra) {
fi->seek( -(upx_off_t)(ph.c_len + szb_info), SEEK_CUR); unsigned where = fi->seek( -(upx_off_t)(ph.c_len + szb_info), SEEK_CUR);
szb_info = 12; szb_info = 12;
fi->readx(&bhdr, szb_info); fi->readx(&bhdr, szb_info);
ph.filter_cto = bhdr.b_cto8; ph.filter_cto = bhdr.b_cto8;
ph.method = bhdr.b_method; ph.set_method(bhdr.b_method, where);
prev_method = bhdr.b_method; // FIXME if multiple de-compressors prev_method = bhdr.b_method; // FIXME if multiple de-compressors
fi->readx(ibuf, ph.c_len); fi->readx(ibuf, ph.c_len);
} }
} }
if (ph.u_len < sizeof(*ehdr))
throwCantUnpack("ElfXX_Ehdr corrupted");
decompress(ibuf, (upx_byte *)ehdr, false); decompress(ibuf, (upx_byte *)ehdr, false);
if (ehdr->e_type !=ehdri.e_type if (ehdr->e_type !=ehdri.e_type
|| ehdr->e_machine!=ehdri.e_machine || ehdr->e_machine!=ehdri.e_machine
@@ -7867,7 +7899,7 @@ void PackLinuxElf64::unpack(OutputFile *fo)
// check for end-of-file // check for end-of-file
fi->readx(&bhdr, szb_info); fi->readx(&bhdr, szb_info);
ph.method = bhdr.b_method; ph.set_method(bhdr.b_method, ~0u);
unsigned const sz_unc = ph.u_len = get_te32(&bhdr.sz_unc); unsigned const sz_unc = ph.u_len = get_te32(&bhdr.sz_unc);
if (sz_unc == 0) { // uncompressed size 0 -> EOF if (sz_unc == 0) { // uncompressed size 0 -> EOF
@@ -8372,6 +8404,8 @@ unsigned PackLinuxElf64::elf_find_table_size(unsigned dt_type, unsigned sh_type)
x_rva = elf_unsigned_dynamic(dt_type); x_rva = elf_unsigned_dynamic(dt_type);
} }
Elf64_Phdr const *const x_phdr = elf_find_Phdr_for_va(x_rva, phdri, e_phnum); Elf64_Phdr const *const x_phdr = elf_find_Phdr_for_va(x_rva, phdri, e_phnum);
if (!x_phdr)
return ~0u; // corrupted Phdrs?
unsigned const d_off = x_rva - get_te64(&x_phdr->p_vaddr); unsigned const d_off = x_rva - get_te64(&x_phdr->p_vaddr);
unsigned const y_ndx = find_dt_ndx(d_off + get_te64(&x_phdr->p_offset)); unsigned const y_ndx = find_dt_ndx(d_off + get_te64(&x_phdr->p_offset));
if (~0u != y_ndx) { if (~0u != y_ndx) {
@@ -8437,10 +8471,11 @@ PackLinuxElf64::invert_pt_dynamic(Elf64_Dyn const *dynp, upx_uint64_t headway)
throwCantPack("bad DT_STRSZ %#x", strtab_max); throwCantPack("bad DT_STRSZ %#x", strtab_max);
} }
// Find end of DT_SYMTAB { // Find end of DT_SYMTAB
unsigned const tmp2 = elf_find_table_size(Elf64_Dyn::DT_SYMTAB, unsigned const tmp2 = elf_find_table_size(Elf64_Dyn::DT_SYMTAB,
Elf64_Shdr::SHT_DYNSYM); Elf64_Shdr::SHT_DYNSYM);
symnum_max = (~0u == tmp2) ? 0 : tmp1 / sizeof(Elf64_Sym); symnum_max = (~0u == tmp2) ? 0 : tmp2 / sizeof(Elf64_Sym);
}
unsigned v_sym = dt_table[Elf64_Dyn::DT_SYMTAB]; unsigned v_sym = dt_table[Elf64_Dyn::DT_SYMTAB];
if (v_sym) { if (v_sym) {
@@ -8459,6 +8494,12 @@ PackLinuxElf64::invert_pt_dynamic(Elf64_Dyn const *dynp, upx_uint64_t headway)
// Find end of DT_HASH // Find end of DT_HASH
hashend = (unsigned const *)(void const *)(elf_find_table_size( hashend = (unsigned const *)(void const *)(elf_find_table_size(
Elf64_Dyn::DT_HASH, Elf64_Shdr::SHT_HASH) + (char const *)hashtab); Elf64_Dyn::DT_HASH, Elf64_Shdr::SHT_HASH) + (char const *)hashtab);
if (!hashtab || (char const *)hashend <= (char const *)&hashtab[2]
|| file_image.getSizeInBytes()
< (unsigned)((char const *)&hashtab[2] - (char *)&file_image[0]) )
{
throwCantPack("bad DT_HASH %#x", v_hsh);
}
unsigned const nbucket = get_te32(&hashtab[0]); unsigned const nbucket = get_te32(&hashtab[0]);
unsigned const *const buckets = &hashtab[2]; unsigned const *const buckets = &hashtab[2];
@@ -8665,9 +8706,9 @@ Elf32_Sym const *PackLinuxElf32::elf_lookup(char const *name) const
if (1& (w>>hbit1) & (w>>hbit2)) { if (1& (w>>hbit1) & (w>>hbit2)) {
unsigned const hhead = get_te32(&buckets[h % n_bucket]); unsigned const hhead = get_te32(&buckets[h % n_bucket]);
if (n_bucket <= (hhead - symbias)) { if (symnum_max <= hhead || (hhead && hhead < symbias)) {
throwCantPack("bad DT_GNU_HASH n_bucket{%#x} <= buckets[%d]{%#x} - symbias{%#x}\n", throwCantPack("bad DT_GNU_HASH symnum_max{%#x} <= buckets[%d]{%#x} < symbias{%#x}\n",
n_bucket, h % n_bucket, hhead, symbias); symnum_max, h % n_bucket, hhead, symbias);
} }
if (hhead) { if (hhead) {
Elf32_Sym const *dsp = &dynsym[hhead]; Elf32_Sym const *dsp = &dynsym[hhead];
@@ -8766,6 +8807,10 @@ Elf64_Sym const *PackLinuxElf64::elf_lookup(char const *name) const
upx_uint64_t const w = get_te64(&bitmask[(n_bitmask -1) & (h>>6)]); upx_uint64_t const w = get_te64(&bitmask[(n_bitmask -1) & (h>>6)]);
if (1& (w>>hbit1) & (w>>hbit2)) { if (1& (w>>hbit1) & (w>>hbit2)) {
unsigned hhead = get_te32(&buckets[h % n_bucket]); unsigned hhead = get_te32(&buckets[h % n_bucket]);
if (symnum_max <= hhead || (hhead && hhead < symbias)) {
throwCantPack("bad DT_GNU_HASH symnum_max{%#x} <= buckets[%d]{%#x} < symbias{%#x}\n",
symnum_max, h % n_bucket, hhead, symbias);
}
if (hhead) { if (hhead) {
Elf64_Sym const *dsp = &dynsym[hhead]; Elf64_Sym const *dsp = &dynsym[hhead];
unsigned const *hp = &hasharr[hhead - symbias]; unsigned const *hp = &hasharr[hhead - symbias];
@@ -8851,7 +8896,7 @@ void PackLinuxElf32::unpack(OutputFile *fo)
fi->readx(&bhdr, szb_info); fi->readx(&bhdr, szb_info);
ph.u_len = get_te32(&bhdr.sz_unc); ph.u_len = get_te32(&bhdr.sz_unc);
ph.c_len = get_te32(&bhdr.sz_cpr); ph.c_len = get_te32(&bhdr.sz_cpr);
ph.method = bhdr.b_method; ph.set_method(bhdr.b_method, overlay_offset + sizeof(p_info));
if (ph.c_len > (unsigned)file_size || ph.c_len == 0 || ph.u_len == 0 if (ph.c_len > (unsigned)file_size || ph.c_len == 0 || ph.u_len == 0
|| ph.u_len > orig_file_size) || ph.u_len > orig_file_size)
throwCantUnpack("b_info corrupted"); throwCantUnpack("b_info corrupted");
@@ -8885,6 +8930,8 @@ void PackLinuxElf32::unpack(OutputFile *fo)
if (ibuf.getSize() < ph.c_len) if (ibuf.getSize() < ph.c_len)
throwCompressedDataViolation(); throwCompressedDataViolation();
fi->readx(ibuf, ph.c_len); fi->readx(ibuf, ph.c_len);
if (ph.u_len < sizeof(*ehdr))
throwCantUnpack("ElfXX_Ehdr corrupted");
decompress(ibuf, (upx_byte *)ehdr, false); decompress(ibuf, (upx_byte *)ehdr, false);
if (ehdr->e_type !=ehdri.e_type if (ehdr->e_type !=ehdri.e_type
|| ehdr->e_machine!=ehdri.e_machine || ehdr->e_machine!=ehdri.e_machine
@@ -9076,7 +9123,7 @@ void PackLinuxElf32::unpack(OutputFile *fo)
// check for end-of-file // check for end-of-file
fi->readx(&bhdr, szb_info); fi->readx(&bhdr, szb_info);
ph.method = bhdr.b_method; ph.set_method(bhdr.b_method, ~0u);
unsigned const sz_unc = ph.u_len = get_te32(&bhdr.sz_unc); unsigned const sz_unc = ph.u_len = get_te32(&bhdr.sz_unc);
if (sz_unc == 0) { // uncompressed size 0 -> EOF if (sz_unc == 0) { // uncompressed size 0 -> EOF
+2 -2
View File
@@ -485,7 +485,6 @@ unsigned PackUnix::unpackExtent(unsigned wanted, OutputFile *fo,
fi->readx(&hdr, szb_info); fi->readx(&hdr, szb_info);
int const sz_unc = ph.u_len = get_te32(&hdr.sz_unc); int const sz_unc = ph.u_len = get_te32(&hdr.sz_unc);
int const sz_cpr = ph.c_len = get_te32(&hdr.sz_cpr); int const sz_cpr = ph.c_len = get_te32(&hdr.sz_cpr);
ph.method = hdr.b_method;
ph.filter_cto = hdr.b_cto8; ph.filter_cto = hdr.b_cto8;
if (sz_unc == 0 || M_LZMA < hdr.b_method) { if (sz_unc == 0 || M_LZMA < hdr.b_method) {
@@ -508,6 +507,7 @@ unsigned PackUnix::unpackExtent(unsigned wanted, OutputFile *fo,
c_adler = upx_adler32(ibuf + j, sz_cpr, c_adler); c_adler = upx_adler32(ibuf + j, sz_cpr, c_adler);
if (sz_cpr < sz_unc) { // block was compressed if (sz_cpr < sz_unc) { // block was compressed
ph.set_method(hdr.b_method);
decompress(ibuf+j, ibuf+inlen, false); decompress(ibuf+j, ibuf+inlen, false);
if (12==szb_info) { // modern per-block filter if (12==szb_info) { // modern per-block filter
if (hdr.b_ftid) { if (hdr.b_ftid) {
@@ -658,7 +658,7 @@ void PackUnix::unpack(OutputFile *fo)
fi->readx(&bhdr, szb_info); fi->readx(&bhdr, szb_info);
ph.u_len = sz_unc = get_te32(&bhdr.sz_unc); ph.u_len = sz_unc = get_te32(&bhdr.sz_unc);
ph.c_len = sz_cpr = get_te32(&bhdr.sz_cpr); ph.c_len = sz_cpr = get_te32(&bhdr.sz_cpr);
ph.method = bhdr.b_method; ph.set_method(bhdr.b_method);
if (sz_unc == 0) // uncompressed size 0 -> EOF if (sz_unc == 0) // uncompressed size 0 -> EOF
{ {
+10
View File
@@ -45,6 +45,16 @@ void PackHeader::reset() noexcept {
compress_result.reset(); compress_result.reset();
} }
int PackHeader::set_method(int m, unsigned offset) {
unsigned mc = ~(0x80u << 24) & m; // see ph_forced_method
unsigned lo = 0xFF & m;
// See packer_c.cpp for "hi bytes" in M_LZMA_003 and M_LZMA_407.
// "hi bytes" are not allowed unless M_LZMA.
if ((lo < M_NRV2B_LE32 || M_LZMA < lo || (M_LZMA != lo && mc != lo)) && ~0u != offset)
throwCantPack("bad method %#x at %#x", (unsigned) m, offset);
return method = m;
}
/************************************************************************* /*************************************************************************
// extremely simple checksum for the header itself (since version 10) // extremely simple checksum for the header itself (since version 10)
**************************************************************************/ **************************************************************************/
+1
View File
@@ -63,6 +63,7 @@ struct PackHeader final {
int n_mru; // specific name for filter ctojr int n_mru; // specific name for filter ctojr
}; };
int header_checksum; int header_checksum;
int set_method(int m, unsigned offset = 0); // check, then assign
// support fields for verifying decompression // support fields for verifying decompression
unsigned saved_u_adler; unsigned saved_u_adler;
+30 -18
View File
@@ -580,14 +580,15 @@ void PeFile32::processRelocs() // pass1
// deliberately corrupt. Sometimes it is even tuned to cause us trouble! // deliberately corrupt. Sometimes it is even tuned to cause us trouble!
// Use an extra check to avoid AccessViolation (SIGSEGV) when appending // Use an extra check to avoid AccessViolation (SIGSEGV) when appending
// the relocs into one array. // the relocs into one array.
if ((4 * relocnum + 8192) < if ((sizeof(LE32) * relocnum + 8192) <
(sorelocs + 4 * (2 + xcounts[IMAGE_REL_BASED_LOW] + xcounts[IMAGE_REL_BASED_HIGH]))) (sorelocs +
sizeof(LE32) * (2 + xcounts[IMAGE_REL_BASED_LOW] + xcounts[IMAGE_REL_BASED_HIGH])))
throwCantUnpack("Invalid relocs"); throwCantUnpack("Invalid relocs");
// append relocs type "LOW" then "HIGH" // append relocs type "LOW" then "HIGH"
for (unsigned ic = IMAGE_REL_BASED_LOW; ic >= IMAGE_REL_BASED_HIGH; ic--) { for (unsigned ic = IMAGE_REL_BASED_LOW; ic >= IMAGE_REL_BASED_HIGH; ic--) {
memcpy(orelocs + sorelocs, fix[ic], 4 * xcounts[ic]); memcpy(orelocs + sorelocs, fix[ic], sizeof(LE32) * xcounts[ic]);
sorelocs += 4 * xcounts[ic]; sorelocs += sizeof(LE32) * xcounts[ic];
set_le32(orelocs + sorelocs, 0); set_le32(orelocs + sorelocs, 0);
if (xcounts[ic]) { if (xcounts[ic]) {
sorelocs += 4; sorelocs += 4;
@@ -1224,7 +1225,15 @@ void PeFile::Export::convert(unsigned eoffs, unsigned esize) {
size += len; size += len;
iv.add_interval(edir.name, len); iv.add_interval(edir.name, len);
len = 4 * edir.functions; // This test is weak because it does not consider other necessary storage.
// But it does detect outrageous individual members.
// Note: sizeof(LE32) <= sizeof(char *)
if (UPX_RSIZE_MAX_MEM / sizeof(char *) <= edir.functions ||
UPX_RSIZE_MAX_MEM / sizeof(char *) <= edir.names) {
throwCantPack("export directory too big: functions=%#x names=%#x",
(unsigned) edir.functions, (unsigned) edir.names);
}
len = sizeof(LE32) * edir.functions;
functionptrs = New(char, len + 1); functionptrs = New(char, len + 1);
memcpy(functionptrs, base + edir.addrtable, len); memcpy(functionptrs, base + edir.addrtable, len);
size += len; size += len;
@@ -1233,14 +1242,14 @@ void PeFile::Export::convert(unsigned eoffs, unsigned esize) {
unsigned ic; unsigned ic;
names = New(char *, edir.names + edir.functions + 1); names = New(char *, edir.names + edir.functions + 1);
for (ic = 0; ic < edir.names; ic++) { for (ic = 0; ic < edir.names; ic++) {
char *n = base + get_le32(base + edir.nameptrtable + ic * 4); char *n = base + get_le32(base + edir.nameptrtable + ic * sizeof(LE32));
len = strlen(n) + 1; len = strlen(n) + 1;
names[ic] = strdup(n); names[ic] = strdup(n);
size += len; size += len;
iv.add_interval(get_le32(base + edir.nameptrtable + ic * 4), len); iv.add_interval(get_le32(base + edir.nameptrtable + ic * sizeof(LE32)), len);
} }
iv.add_interval(edir.nameptrtable, 4 * edir.names); iv.add_interval(edir.nameptrtable, sizeof(LE32) * edir.names);
size += 4 * edir.names; size += sizeof(LE32) * edir.names;
LE32 *fp = (LE32 *) functionptrs; LE32 *fp = (LE32 *) functionptrs;
// export forwarders // export forwarders
@@ -1270,8 +1279,8 @@ void PeFile::Export::convert(unsigned eoffs, unsigned esize) {
void PeFile::Export::build(char *newbase, unsigned newoffs) { void PeFile::Export::build(char *newbase, unsigned newoffs) {
char *const functionp = newbase + sizeof(edir); char *const functionp = newbase + sizeof(edir);
char *const namep = functionp + 4 * edir.functions; char *const namep = functionp + sizeof(LE32) * edir.functions;
char *const ordinalp = namep + 4 * edir.names; char *const ordinalp = namep + sizeof(LE32) * edir.names;
char *const enamep = ordinalp + 2 * edir.names; char *const enamep = ordinalp + 2 * edir.names;
char *exports = enamep + strlen(ename) + 1; char *exports = enamep + strlen(ename) + 1;
@@ -1286,15 +1295,15 @@ void PeFile::Export::build(char *newbase, unsigned newoffs) {
unsigned ic; unsigned ic;
for (ic = 0; ic < edir.names; ic++) { for (ic = 0; ic < edir.names; ic++) {
strcpy(exports, names[ic]); strcpy(exports, names[ic]);
set_le32(namep + 4 * ic, newoffs + ptr_diff_bytes(exports, newbase)); set_le32(namep + sizeof(LE32) * ic, newoffs + ptr_diff_bytes(exports, newbase));
exports += strlen(exports) + 1; exports += strlen(exports) + 1;
} }
memcpy(functionp, functionptrs, 4 * edir.functions); memcpy(functionp, functionptrs, sizeof(LE32) * edir.functions);
for (ic = 0; ic < edir.functions; ic++) for (ic = 0; ic < edir.functions; ic++)
if (names[edir.names + ic]) { if (names[edir.names + ic]) {
strcpy(exports, names[edir.names + ic]); strcpy(exports, names[edir.names + ic]);
set_le32(functionp + 4 * ic, newoffs + ptr_diff_bytes(exports, newbase)); set_le32(functionp + sizeof(LE32) * ic, newoffs + ptr_diff_bytes(exports, newbase));
exports += strlen(exports) + 1; exports += strlen(exports) + 1;
} }
@@ -1477,12 +1486,13 @@ void PeFile::processTls2(Reloc *const rel, const Interval *const iv, unsigned ne
unsigned ic; unsigned ic;
// NEW: if TLS callbacks are used, relocate the VA of the callback chain, too - Stefan Widmann // NEW: if TLS callbacks are used, relocate the VA of the callback chain, too - Stefan Widmann
for (ic = 0; ic < (use_tls_callbacks ? 4 * cb_size : 3 * cb_size); ic += cb_size) for (ic = 0; ic < (use_tls_callbacks ? sizeof(LE32) * cb_size : (sizeof(LE32) - 1) * cb_size);
ic += cb_size)
rel->add_reloc(newaddr + ic, reloc_type); rel->add_reloc(newaddr + ic, reloc_type);
SPAN_S_VAR(tls, const tlsp, mb_otls); SPAN_S_VAR(tls, const tlsp, mb_otls);
// now the relocation entries in the tls data area // now the relocation entries in the tls data area
for (ic = 0; ic < iv->ivnum; ic += 4) { for (ic = 0; ic < iv->ivnum; ic += sizeof(LE32)) {
SPAN_S_VAR(byte, const pp, SPAN_S_VAR(byte, const pp,
otls + (iv->ivarr[ic].start - (tlsp->datastart - imagebase) + sizeof(tls))); otls + (iv->ivarr[ic].start - (tlsp->datastart - imagebase) + sizeof(tls)));
LEXX *const p = (LEXX *) raw_bytes(pp, sizeof(LEXX)); LEXX *const p = (LEXX *) raw_bytes(pp, sizeof(LEXX));
@@ -1718,6 +1728,8 @@ PeFile::Resource::upx_rnode *PeFile::Resource::convert(const void *rnode, upx_rn
branch->nc = ic; branch->nc = ic;
branch->children = New(upx_rnode *, ic); branch->children = New(upx_rnode *, ic);
branch->data = *node; branch->data = *node;
if (!root) // first one
root = branch; // prevent leak if xcheck throws (hacked unpack or test)
for (const res_dir_entry *rde = node->entries + ic - 1; --ic >= 0; rde--) { for (const res_dir_entry *rde = node->entries + ic - 1; --ic >= 0; rde--) {
upx_rnode *child = convert(start + (rde->child & 0x7fffffff), branch, level + 1); upx_rnode *child = convert(start + (rde->child & 0x7fffffff), branch, level + 1);
@@ -2758,12 +2770,12 @@ void PeFile::rebuildRelocs(SPAN_S(byte) & extra_info, unsigned bits, unsigned fl
SPAN_S_VAR(byte, const wrkmem, mb_wrkmem); SPAN_S_VAR(byte, const wrkmem, mb_wrkmem);
for (unsigned ic = 0; ic < relocnum; ic++) { for (unsigned ic = 0; ic < relocnum; ic++) {
OPTR_VAR(byte, const p, obuf + get_le32(wrkmem + 4 * ic)); OPTR_VAR(byte, const p, obuf + get_le32(wrkmem + sizeof(LE32) * ic));
if (bits == 32) if (bits == 32)
set_le32(p, get_le32(p) + imagebase + rvamin); set_le32(p, get_le32(p) + imagebase + rvamin);
else else
set_le64(p, get_le64(p) + imagebase + rvamin); set_le64(p, get_le64(p) + imagebase + rvamin);
rel.add_reloc(rvamin + get_le32(wrkmem + 4 * ic), rel.add_reloc(rvamin + get_le32(wrkmem + sizeof(LE32) * ic),
bits == 32 ? IMAGE_REL_BASED_HIGHLOW : IMAGE_REL_BASED_DIR64); bits == 32 ? IMAGE_REL_BASED_HIGHLOW : IMAGE_REL_BASED_DIR64);
} }
rel.finish(oxrelocs, soxrelocs); rel.finish(oxrelocs, soxrelocs);
+1288 -1265
View File
File diff suppressed because it is too large Load Diff
+399 -373
View File
@@ -1,5 +1,5 @@
/* amd64-linux.elf-so_entry.h /* amd64-linux.elf-so_entry.h
created from amd64-linux.elf-so_entry.bin, 6372 (0x18e4) bytes created from amd64-linux.elf-so_entry.bin, 6790 (0x1a86) bytes
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
@@ -32,14 +32,14 @@
/* clang-format off */ /* clang-format off */
#define STUB_AMD64_LINUX_ELF_SO_ENTRY_SIZE 6372 #define STUB_AMD64_LINUX_ELF_SO_ENTRY_SIZE 6790
#define STUB_AMD64_LINUX_ELF_SO_ENTRY_ADLER32 0xf9607bd7 #define STUB_AMD64_LINUX_ELF_SO_ENTRY_ADLER32 0x184ce0bd
#define STUB_AMD64_LINUX_ELF_SO_ENTRY_CRC32 0x7ca0bbfb #define STUB_AMD64_LINUX_ELF_SO_ENTRY_CRC32 0x9737eb34
unsigned char stub_amd64_linux_elf_so_entry[6372] = { unsigned char stub_amd64_linux_elf_so_entry[6790] = {
/* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0010 */ 1, 0, 62, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0010 */ 1, 0, 62, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0,120, 4, 0, 0, 0, 0, 0, 0, /* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0,224, 4, 0, 0, 0, 0, 0, 0,
/* 0x0030 */ 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 64, 0, 16, 0, 13, 0, /* 0x0030 */ 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 64, 0, 16, 0, 13, 0,
/* 0x0040 */ 233, 0, 0, 0, 0,233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0040 */ 233, 0, 0, 0, 0,233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0050 */ 72,137, 92, 36,224, 72,137,108, 36,232, 76,137,100, 36,240, 76, /* 0x0050 */ 72,137, 92, 36,224, 72,137,108, 36,232, 76,137,100, 36,240, 76,
@@ -65,375 +65,401 @@ unsigned char stub_amd64_linux_elf_so_entry[6372] = {
/* 0x0190 */ 100, 36,240, 76,137,108, 36,248, 72,131,236, 40, 73,137,252, 65, /* 0x0190 */ 100, 36,240, 76,137,108, 36,248, 72,131,236, 40, 73,137,252, 65,
/* 0x01a0 */ 137,245, 72,141, 45, 0, 0, 0, 0,190, 16, 0, 0, 0, 72,137, /* 0x01a0 */ 137,245, 72,141, 45, 0, 0, 0, 0,190, 16, 0, 0, 0, 72,137,
/* 0x01b0 */ 239,232, 0, 0, 0, 0,137,195,131,248,234,117, 15,190, 0, 0, /* 0x01b0 */ 239,232, 0, 0, 0, 0,137,195,131,248,234,117, 15,190, 0, 0,
/* 0x01c0 */ 0, 0, 72,137,239,232, 0, 0, 0, 0,137,195,133,219,121, 31, /* 0x01c0 */ 0, 0, 72,137,239,232, 0, 0, 0, 0,137,195,133,219,121, 68,
/* 0x01d0 */ 72,141, 61, 0, 0, 0, 0,186,192, 1, 0, 0,190, 2, 0, 65, /* 0x01d0 */ 72,141, 61, 0, 0, 0, 0,186,192, 1, 0, 0,190, 2, 0, 65,
/* 0x01e0 */ 0,232, 0, 0, 0, 0,137,195, 72, 99,208,133,192,120, 77, 68, /* 0x01e0 */ 0,232, 0, 0, 0, 0,137,195,133,192,121, 40, 72, 99,208,131,
/* 0x01f0 */ 137,238,137,223,232, 0, 0, 0, 0, 72, 99,208,133,192,120, 60, /* 0x01f0 */ 248,235,117,109, 72,141, 53, 0, 0, 0, 0,186, 61, 0, 0, 0,
/* 0x0200 */ 73,131,252, 1, 25,201,131,225,240,131,193, 17, 68,137,238, 65, /* 0x0200 */ 191, 2, 0, 0, 0,232, 0, 0, 0, 0,191,127, 0, 0, 0,232,
/* 0x0210 */ 185, 0, 0, 0, 0, 65,137,216,186, 3, 0, 0, 0, 76,137,231, /* 0x0210 */ 0, 0, 0, 0, 68,137,238,137,223,232, 0, 0, 0, 0, 72, 99,
/* 0x0220 */ 232, 0, 0, 0, 0, 73,137,196,232, 0, 0, 0, 0, 76,137,226, /* 0x0220 */ 208,133,192,120, 60, 73,131,252, 1, 25,201,131,225,240,131,193,
/* 0x0230 */ 73, 57,196,115, 7,141, 67, 1, 74,141, 20, 32, 72,137,208, 72, /* 0x0230 */ 17, 68,137,238, 65,185, 0, 0, 0, 0, 65,137,216,186, 3, 0,
/* 0x0240 */ 139, 92, 36, 8, 72,139,108, 36, 16, 76,139,100, 36, 24, 76,139, /* 0x0240 */ 0, 0, 76,137,231,232, 0, 0, 0, 0, 73,137,196,232, 0, 0,
/* 0x0250 */ 108, 36, 32, 72,131,196, 40,195,144, 82, 86, 87, 83, 85, 72,137, /* 0x0250 */ 0, 0, 76,137,226, 73, 57,196,115, 7,141, 67, 1, 74,141, 20,
/* 0x0260 */ 229, 72,141, 29, 0, 0, 0, 0, 72,141, 5,217,255,255,255, 80, /* 0x0260 */ 32, 72,137,208, 72,139, 92, 36, 8, 72,139,108, 36, 16, 76,139,
/* 0x0270 */ 139, 3, 80, 72, 41,196, 72,131,228,240, 41,210, 72,141, 53, 74, /* 0x0270 */ 100, 36, 24, 76,139,108, 36, 32, 72,131,196, 40,195, 0, 0, 0,
/* 0x0280 */ 1, 0, 0, 41,255,104, 1, 1, 0, 0,232, 43, 1, 0, 0,133, /* 0x0280 */ 144, 82, 86, 87, 83, 85, 72,137,229, 72,141, 29, 0, 0, 0, 0,
/* 0x0290 */ 192,120, 52, 80,186, 0, 2, 0, 0, 72,141,116, 36, 8, 95, 87, /* 0x0290 */ 72,141, 5,217,255,255,255, 80,139, 3, 80, 72, 41,196, 72,131,
/* 0x02a0 */ 106, 0,232, 19, 1, 0, 0, 76,141, 4, 48, 95,106, 3,232, 7, /* 0x02a0 */ 228,240, 41,210, 72,141, 53, 74, 1, 0, 0, 41,255,104, 1, 1,
/* 0x02b0 */ 1, 0, 0, 72,137,230, 72,173, 72,145, 72,173, 72,131,249, 6, /* 0x02b0 */ 0, 0,232, 43, 1, 0, 0,133,192,120, 52, 80,186, 0, 2, 0,
/* 0x02c0 */ 116, 10, 76, 57,198,124,239,184, 0, 16, 0, 0, 72,247,216, 80, /* 0x02c0 */ 0, 72,141,116, 36, 8, 95, 87,106, 0,232, 19, 1, 0, 0, 76,
/* 0x02d0 */ 72,141, 21, 27, 0, 0, 0, 72,141,124, 36, 8, 85,139, 75, 4, /* 0x02d0 */ 141, 4, 48, 95,106, 3,232, 7, 1, 0, 0, 72,137,230, 72,173,
/* 0x02e0 */ 72,141,115, 12, 72, 1,241, 81, 49,219, 49,201,106,255, 93,252, /* 0x02e0 */ 72,145, 72,173, 72,131,249, 6,116, 10, 76, 57,198,124,239,184,
/* 0x02f0 */ 235, 20,243, 15, 30,250, 1,219,116, 2,243,195,139, 30, 72,131, /* 0x02f0 */ 0, 16, 0, 0, 72,247,216, 80, 72,141, 21, 27, 0, 0, 0, 72,
/* 0x0300 */ 238,252, 17,219,195,164,255,210,114,251,141, 65, 1,255,210, 17, /* 0x0300 */ 141,124, 36, 8, 85,139, 75, 4, 72,141,115, 12, 72, 1,241, 81,
/* 0x0310 */ 192,255,210,115,248,131,232, 3,114, 12,193,224, 8,172,131,240, /* 0x0310 */ 49,219, 49,201,106,255, 93,252,235, 20,243, 15, 30,250, 1,219,
/* 0x0320 */ 255,116, 47, 72, 99,232,141, 65, 1,255,210, 17,201,255,210, 17, /* 0x0320 */ 116, 2,243,195,139, 30, 72,131,238,252, 17,219,195,164,255,210,
/* 0x0330 */ 201,117, 13,137,193,131,192, 2,255,210, 17,201,255,210,115,248, /* 0x0330 */ 114,251,141, 65, 1,255,210, 17,192,255,210,115,248,131,232, 3,
/* 0x0340 */ 129,253, 0,243,255,255, 17,193, 86, 72,141, 52, 47,243,164, 94, /* 0x0340 */ 114, 12,193,224, 8,172,131,240,255,116, 47, 72, 99,232,141, 65,
/* 0x0350 */ 235,180, 89, 72, 57,206,116, 1,244, 93,104,117,112, 88, 0, 84, /* 0x0350 */ 1,255,210, 17,201,255,210, 17,201,117, 13,137,193,131,192, 2,
/* 0x0360 */ 95,106, 16, 94,184, 63, 1, 0, 0, 15, 5,133,192,121, 9,133, /* 0x0360 */ 255,210, 17,201,255,210,115,248,129,253, 0,243,255,255, 17,193,
/* 0x0370 */ 246,116, 4, 49,246,235,237,244, 89,143, 4, 36, 80, 95, 84, 94, /* 0x0370 */ 86, 72,141, 52, 47,243,164, 94,235,180, 89, 72, 57,206,116, 1,
/* 0x0380 */ 80, 72,139, 85,240,106, 1,232, 46, 0, 0, 0, 65, 88, 72,141, /* 0x0380 */ 244, 93,104,117,112, 88, 0, 84, 95,106, 16, 94,184, 63, 1, 0,
/* 0x0390 */ 101,240, 94, 86, 69, 41,201,106, 2, 65, 90,106, 5, 90, 41,255, /* 0x0390 */ 0, 15, 5,133,192,121, 9,133,246,116, 4, 49,246,235,237,244,
/* 0x03a0 */ 106, 9,232, 19, 0, 0, 0, 80, 65, 80, 95,106, 3,232, 8, 0, /* 0x03a0 */ 89,143, 4, 36, 80, 95, 84, 94, 80, 72,139, 85,240,106, 1,232,
/* 0x03b0 */ 0, 0, 88, 80, 72,131,192, 16,255,224, 72,139, 68, 36, 8, 15, /* 0x03b0 */ 46, 0, 0, 0, 65, 88, 72,141,101,240, 94, 86, 69, 41,201,106,
/* 0x03c0 */ 5, 72, 61, 0,240,255,255,114, 1,204,194, 8, 0, 47,112,114, /* 0x03c0 */ 2, 65, 90,106, 5, 90, 41,255,106, 9,232, 19, 0, 0, 0, 80,
/* 0x03d0 */ 111, 99, 47,115,101,108,102, 47, 97,117,120,118, 0, 0, 0, 0, /* 0x03d0 */ 65, 80, 95,106, 3,232, 8, 0, 0, 0, 88, 80, 72,131,192, 16,
/* 0x03e0 */ 117,112,120, 0, 47,100,101,118, 47,115,104,109, 0,109,101,109, /* 0x03e0 */ 255,224, 72,139, 68, 36, 8, 15, 5, 72, 61, 0,240,255,255,114,
/* 0x03f0 */ 102,100, 95, 99,114,101, 97,116,101, 0,117,112,120, 0, 47,100, /* 0x03f0 */ 1,204,194, 8, 0, 47,112,114,111, 99, 47,115,101,108,102, 47,
/* 0x0400 */ 101,118, 47,115,104,109, 0, 0, 46,115,121,109,116, 97, 98, 0, /* 0x0400 */ 97,117,120,118, 0, 0, 0, 0,117,112,120, 0, 47,100,101,118,
/* 0x0410 */ 46,115,116,114,116, 97, 98, 0, 46,115,104,115,116,114,116, 97, /* 0x0410 */ 47,115,104,109, 0,109,101,109,102,100, 95, 99,114,101, 97,116,
/* 0x0420 */ 98, 0, 46,114,101,108, 97, 72, 85, 77, 70, 95, 65, 0, 46,114, /* 0x0420 */ 101, 0,117,112,120, 0, 47,100,101,118, 47,115,104,109, 0, 85,
/* 0x0430 */ 101,108, 97, 72, 85, 77, 70, 95, 76, 0, 46,114,101,108, 97, 85, /* 0x0430 */ 80, 88, 45, 53, 46, 48, 32,119, 97,110,116,115, 32,109,101,109,
/* 0x0440 */ 77, 70, 95, 65, 78, 68, 82, 79, 73, 68, 0, 46,114,101,108, 97, /* 0x0440 */ 102,100, 95, 99,114,101, 97,116,101, 40, 41, 44, 32,111,114, 32,
/* 0x0450 */ 85, 77, 70, 95, 76, 73, 78, 85, 88, 0, 46,114,101,108, 97, 69, /* 0x0450 */ 110,101,101,100,115, 32, 47,100,101,118, 47,115,104,109, 40, 44,
/* 0x0460 */ 76, 70, 77, 65, 73, 78, 88, 0, 69, 76, 70, 77, 65, 73, 78, 90, /* 0x0460 */ 79, 95, 84, 77, 80, 70, 73, 76, 69, 44, 41, 10, 0, 0, 46,115,
/* 0x0470 */ 0, 83, 84, 82, 67, 79, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0470 */ 121,109,116, 97, 98, 0, 46,115,116,114,116, 97, 98, 0, 46,115,
/* 0x0480 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0480 */ 104,115,116,114,116, 97, 98, 0, 46,114,101,108, 97, 72, 85, 77,
/* 0x0490 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0490 */ 70, 95, 65, 0, 46,114,101,108, 97, 72, 85, 77, 70, 95, 76, 0,
/* 0x04a0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x04a0 */ 46,114,101,108, 97, 85, 77, 70, 95, 65, 78, 68, 82, 79, 73, 68,
/* 0x04b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 1, 0, 0, 0, /* 0x04b0 */ 0, 46,114,101,108, 97, 85, 77, 70, 95, 76, 73, 78, 85, 88, 0,
/* 0x04c0 */ 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x04c0 */ 46,114,101,108, 97, 69, 76, 70, 77, 65, 73, 78, 88, 0, 69, 76,
/* 0x04d0 */ 64, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, /* 0x04d0 */ 70, 77, 65, 73, 78, 90, 0, 83, 84, 82, 67, 79, 78, 0, 0, 0,
/* 0x04e0 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x04e0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x04f0 */ 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 4, 0, 0, 0, /* 0x04f0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0500 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0500 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0510 */ 160, 10, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, /* 0x0510 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0520 */ 14, 0, 0, 0, 1, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, /* 0x0520 */ 32, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0,
/* 0x0530 */ 24, 0, 0, 0, 0, 0, 0, 0, 44, 0, 0, 0, 1, 0, 0, 0, /* 0x0530 */ 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0,
/* 0x0540 */ 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0540 */ 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0550 */ 69, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, /* 0x0550 */ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0560 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x0560 */ 27, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0570 */ 0, 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 4, 0, 0, 0, /* 0x0570 */ 0, 0, 0, 0, 0, 0, 0, 0, 32, 11, 0, 0, 0, 0, 0, 0,
/* 0x0580 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0580 */ 24, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 1, 0, 0, 0,
/* 0x0590 */ 184, 10, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, /* 0x0590 */ 8, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0,
/* 0x05a0 */ 14, 0, 0, 0, 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, /* 0x05a0 */ 44, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0,
/* 0x05b0 */ 24, 0, 0, 0, 0, 0, 0, 0, 56, 0, 0, 0, 1, 0, 0, 0, /* 0x05b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 69, 0, 0, 0, 0, 0, 0, 0,
/* 0x05c0 */ 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x05c0 */ 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x05d0 */ 80, 0, 0, 0, 0, 0, 0, 0, 51, 1, 0, 0, 0, 0, 0, 0, /* 0x05d0 */ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x05e0 */ 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, /* 0x05e0 */ 39, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x05f0 */ 0, 0, 0, 0, 0, 0, 0, 0, 51, 0, 0, 0, 4, 0, 0, 0, /* 0x05f0 */ 0, 0, 0, 0, 0, 0, 0, 0, 56, 11, 0, 0, 0, 0, 0, 0,
/* 0x0600 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0600 */ 24, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 3, 0, 0, 0,
/* 0x0610 */ 208, 10, 0, 0, 0, 0, 0, 0, 32, 1, 0, 0, 0, 0, 0, 0, /* 0x0610 */ 8, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0,
/* 0x0620 */ 14, 0, 0, 0, 5, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, /* 0x0620 */ 56, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0,
/* 0x0630 */ 24, 0, 0, 0, 0, 0, 0, 0, 73, 0, 0, 0, 1, 0, 0, 0, /* 0x0630 */ 0, 0, 0, 0, 0, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0,
/* 0x0640 */ 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0640 */ 51, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0650 */ 132, 1, 0, 0, 0, 0, 0, 0,212, 0, 0, 0, 0, 0, 0, 0, /* 0x0650 */ 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0660 */ 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, /* 0x0660 */ 51, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0670 */ 0, 0, 0, 0, 0, 0, 0, 0, 68, 0, 0, 0, 4, 0, 0, 0, /* 0x0670 */ 0, 0, 0, 0, 0, 0, 0, 0, 80, 11, 0, 0, 0, 0, 0, 0,
/* 0x0680 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0680 */ 32, 1, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 5, 0, 0, 0,
/* 0x0690 */ 240, 11, 0, 0, 0, 0, 0, 0,192, 0, 0, 0, 0, 0, 0, 0, /* 0x0690 */ 8, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0,
/* 0x06a0 */ 14, 0, 0, 0, 7, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, /* 0x06a0 */ 73, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0,
/* 0x06b0 */ 24, 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 1, 0, 0, 0, /* 0x06b0 */ 0, 0, 0, 0, 0, 0, 0, 0,132, 1, 0, 0, 0, 0, 0, 0,
/* 0x06c0 */ 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x06c0 */ 249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x06d0 */ 88, 2, 0, 0, 0, 0, 0, 0,136, 1, 0, 0, 0, 0, 0, 0, /* 0x06d0 */ 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x06e0 */ 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, /* 0x06e0 */ 68, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x06f0 */ 0, 0, 0, 0, 0, 0, 0, 0, 83, 0, 0, 0, 4, 0, 0, 0, /* 0x06f0 */ 0, 0, 0, 0, 0, 0, 0, 0,112, 12, 0, 0, 0, 0, 0, 0,
/* 0x0700 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0700 */ 8, 1, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 7, 0, 0, 0,
/* 0x0710 */ 176, 12, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, /* 0x0710 */ 8, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0,
/* 0x0720 */ 14, 0, 0, 0, 9, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, /* 0x0720 */ 88, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0,
/* 0x0730 */ 24, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 1, 0, 0, 0, /* 0x0730 */ 0, 0, 0, 0, 0, 0, 0, 0,128, 2, 0, 0, 0, 0, 0, 0,
/* 0x0740 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0740 */ 136, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0750 */ 224, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0750 */ 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0760 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x0760 */ 83, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0770 */ 0, 0, 0, 0, 0, 0, 0, 0,106, 0, 0, 0, 1, 0, 0, 0, /* 0x0770 */ 0, 0, 0, 0, 0, 0, 0, 0,120, 13, 0, 0, 0, 0, 0, 0,
/* 0x0780 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0780 */ 24, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 9, 0, 0, 0,
/* 0x0790 */ 224, 3, 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, /* 0x0790 */ 8, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0,
/* 0x07a0 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x07a0 */ 97, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x07b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 3, 0, 0, 0, /* 0x07b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 0, 0, 0, 0, 0, 0,
/* 0x07c0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x07c0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x07d0 */ 7, 4, 0, 0, 0, 0, 0, 0,113, 0, 0, 0, 0, 0, 0, 0, /* 0x07d0 */ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x07e0 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x07e0 */ 106, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x07f0 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, /* 0x07f0 */ 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 0, 0, 0, 0, 0, 0,
/* 0x0800 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0800 */ 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0810 */ 120, 8, 0, 0, 0, 0, 0, 0,176, 1, 0, 0, 0, 0, 0, 0, /* 0x0810 */ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0820 */ 15, 0, 0, 0, 9, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, /* 0x0820 */ 17, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0830 */ 24, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 3, 0, 0, 0, /* 0x0830 */ 0, 0, 0, 0, 0, 0, 0, 0,109, 4, 0, 0, 0, 0, 0, 0,
/* 0x0840 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0840 */ 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0850 */ 40, 10, 0, 0, 0, 0, 0, 0,115, 0, 0, 0, 0, 0, 0, 0, /* 0x0850 */ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0860 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x0860 */ 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0870 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0870 */ 0, 0, 0, 0, 0, 0, 0, 0,224, 8, 0, 0, 0, 0, 0, 0,
/* 0x0880 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0880 */ 200, 1, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 9, 0, 0, 0,
/* 0x0890 */ 0, 0, 0, 0, 3, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0890 */ 8, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0,
/* 0x08a0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 12, 0, /* 0x08a0 */ 9, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x08b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x08b0 */ 0, 0, 0, 0, 0, 0, 0, 0,168, 10, 0, 0, 0, 0, 0, 0,
/* 0x08c0 */ 1, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x08c0 */ 120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x08d0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 0, /* 0x08d0 */ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x08e0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x08e0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x08f0 */ 0, 0, 0, 0, 3, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x08f0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 11, 0,
/* 0x0900 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 5, 0, /* 0x0900 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0910 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0910 */ 0, 0, 0, 0, 3, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0920 */ 0, 0, 0, 0, 3, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0920 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 9, 0,
/* 0x0930 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 9, 0, /* 0x0930 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0940 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0940 */ 0, 0, 0, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0950 */ 8, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0950 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 3, 0,
/* 0x0960 */ 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 16, 0, 0, 0, /* 0x0960 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0970 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0970 */ 0, 0, 0, 0, 3, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0980 */ 32, 0, 0, 0, 18, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0980 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 7, 0,
/* 0x0990 */ 51, 1, 0, 0, 0, 0, 0, 0, 56, 0, 0, 0, 16, 0, 0, 0, /* 0x0990 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x09a0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x09a0 */ 0, 0, 0, 0, 3, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x09b0 */ 61, 0, 0, 0, 18, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x09b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 16, 0, 0, 0,
/* 0x09c0 */ 212, 0, 0, 0, 0, 0, 0, 0, 83, 0, 0, 0, 16, 0, 0, 0, /* 0x09c0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x09d0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x09d0 */ 22, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x09e0 */ 89, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x09e0 */ 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 18, 0, 5, 0,
/* 0x09f0 */ 0, 0, 0, 0, 0, 0, 0, 0,102, 0, 0, 0, 16, 0, 0, 0, /* 0x09f0 */ 0, 0, 0, 0, 0, 0, 0, 0, 51, 1, 0, 0, 0, 0, 0, 0,
/* 0x0a00 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0a00 */ 56, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0a10 */ 110, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0a10 */ 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 0, 0, 18, 0, 7, 0,
/* 0x0a20 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 95,115,116, 97,114,116, 0, /* 0x0a20 */ 0, 0, 0, 0, 0, 0, 0, 0,249, 0, 0, 0, 0, 0, 0, 0,
/* 0x0a30 */ 103,101,116, 95,112, 97,103,101, 95,109, 97,115,107, 0,102,116, /* 0x0a30 */ 83, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0a40 */ 114,117,110, 99, 97,116,101, 0,117,112,120, 95,109,109, 97,112, /* 0x0a40 */ 0, 0, 0, 0, 0, 0, 0, 0, 89, 0, 0, 0, 16, 0, 0, 0,
/* 0x0a50 */ 95, 97,110,100, 95,102,100, 95, 97,110,100,114,111,105,100, 0, /* 0x0a50 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0a60 */ 109,109, 97,112, 0,117,112,120, 95,109,109, 97,112, 95, 97,110, /* 0x0a60 */ 102, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0a70 */ 100, 95,102,100, 95,108,105,110,117,120, 0,119,114,105,116,101, /* 0x0a70 */ 0, 0, 0, 0, 0, 0, 0, 0,110, 0, 0, 0, 16, 0, 0, 0,
/* 0x0a80 */ 0,109,101,109,102,100, 95, 99,114,101, 97,116,101, 0,109,121, /* 0x0a80 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0a90 */ 95, 98,107,112,116, 0,111,112,101,110, 0, 0, 0, 0, 0, 0, /* 0x0a90 */ 115, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0aa0 */ 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 11, 0, 0, 0, /* 0x0aa0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 95,115,116, 97,114,116, 0,
/* 0x0ab0 */ 252,255,255,255,255,255,255,255, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x0ab0 */ 103,101,116, 95,112, 97,103,101, 95,109, 97,115,107, 0,102,116,
/* 0x0ac0 */ 2, 0, 0, 0, 13, 0, 0, 0,252,255,255,255,255,255,255,255, /* 0x0ac0 */ 114,117,110, 99, 97,116,101, 0,117,112,120, 95,109,109, 97,112,
/* 0x0ad0 */ 33, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, /* 0x0ad0 */ 95, 97,110,100, 95,102,100, 95, 97,110,100,114,111,105,100, 0,
/* 0x0ae0 */ 252,255,255,255,255,255,255,255, 46, 0, 0, 0, 0, 0, 0, 0, /* 0x0ae0 */ 109,109, 97,112, 0,117,112,120, 95,109,109, 97,112, 95, 97,110,
/* 0x0af0 */ 4, 0, 0, 0, 15, 0, 0, 0,252,255,255,255,255,255,255,255, /* 0x0af0 */ 100, 95,102,100, 95,108,105,110,117,120, 0,119,114,105,116,101,
/* 0x0b00 */ 67, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 15, 0, 0, 0, /* 0x0b00 */ 0,109,101,109,102,100, 95, 99,114,101, 97,116,101, 0,109,121,
/* 0x0b10 */ 252,255,255,255,255,255,255,255, 82, 0, 0, 0, 0, 0, 0, 0, /* 0x0b10 */ 95, 98,107,112,116, 0,101,120,105,116, 0,111,112,101,110, 0,
/* 0x0b20 */ 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0b20 */ 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 11, 0, 0, 0,
/* 0x0b30 */ 97, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 17, 0, 0, 0, /* 0x0b30 */ 252,255,255,255,255,255,255,255, 1, 0, 0, 0, 0, 0, 0, 0,
/* 0x0b40 */ 252,255,255,255,255,255,255,255,111, 0, 0, 0, 0, 0, 0, 0, /* 0x0b40 */ 2, 0, 0, 0, 13, 0, 0, 0,252,255,255,255,255,255,255,255,
/* 0x0b50 */ 2, 0, 0, 0, 2, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, /* 0x0b50 */ 33, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0,
/* 0x0b60 */ 121, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 16, 0, 0, 0, /* 0x0b60 */ 252,255,255,255,255,255,255,255, 46, 0, 0, 0, 0, 0, 0, 0,
/* 0x0b70 */ 252,255,255,255,255,255,255,255,131, 0, 0, 0, 0, 0, 0, 0, /* 0x0b70 */ 4, 0, 0, 0, 15, 0, 0, 0,252,255,255,255,255,255,255,255,
/* 0x0b80 */ 4, 0, 0, 0, 9, 0, 0, 0,252,255,255,255,255,255,255,255, /* 0x0b80 */ 67, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 15, 0, 0, 0,
/* 0x0b90 */ 168, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 10, 0, 0, 0, /* 0x0b90 */ 252,255,255,255,255,255,255,255, 82, 0, 0, 0, 0, 0, 0, 0,
/* 0x0ba0 */ 252,255,255,255,255,255,255,255,185, 0, 0, 0, 0, 0, 0, 0, /* 0x0ba0 */ 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0bb0 */ 4, 0, 0, 0, 9, 0, 0, 0,252,255,255,255,255,255,255,255, /* 0x0bb0 */ 97, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 18, 0, 0, 0,
/* 0x0bc0 */ 208, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 14, 0, 0, 0, /* 0x0bc0 */ 252,255,255,255,255,255,255,255,111, 0, 0, 0, 0, 0, 0, 0,
/* 0x0bd0 */ 252,255,255,255,255,255,255,255,248, 0, 0, 0, 0, 0, 0, 0, /* 0x0bd0 */ 2, 0, 0, 0, 2, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
/* 0x0be0 */ 4, 0, 0, 0, 12, 0, 0, 0,252,255,255,255,255,255,255,255, /* 0x0be0 */ 121, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 16, 0, 0, 0,
/* 0x0bf0 */ 33, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, /* 0x0bf0 */ 252,255,255,255,255,255,255,255,131, 0, 0, 0, 0, 0, 0, 0,
/* 0x0c00 */ 22, 0, 0, 0, 0, 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, /* 0x0c00 */ 4, 0, 0, 0, 9, 0, 0, 0,252,255,255,255,255,255,255,255,
/* 0x0c10 */ 4, 0, 0, 0, 15, 0, 0, 0,252,255,255,255,255,255,255,255, /* 0x0c10 */ 168, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 10, 0, 0, 0,
/* 0x0c20 */ 66, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 15, 0, 0, 0, /* 0x0c20 */ 252,255,255,255,255,255,255,255,185, 0, 0, 0, 0, 0, 0, 0,
/* 0x0c30 */ 252,255,255,255,255,255,255,255, 79, 0, 0, 0, 0, 0, 0, 0, /* 0x0c30 */ 4, 0, 0, 0, 9, 0, 0, 0,252,255,255,255,255,255,255,255,
/* 0x0c40 */ 2, 0, 0, 0, 2, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, /* 0x0c40 */ 208, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 14, 0, 0, 0,
/* 0x0c50 */ 94, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 17, 0, 0, 0, /* 0x0c50 */ 252,255,255,255,255,255,255,255,248, 0, 0, 0, 0, 0, 0, 0,
/* 0x0c60 */ 252,255,255,255,255,255,255,255,113, 0, 0, 0, 0, 0, 0, 0, /* 0x0c60 */ 4, 0, 0, 0, 12, 0, 0, 0,252,255,255,255,255,255,255,255,
/* 0x0c70 */ 4, 0, 0, 0, 10, 0, 0, 0,252,255,255,255,255,255,255,255, /* 0x0c70 */ 33, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0,
/* 0x0c80 */ 157, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 0, 0, 0, /* 0x0c80 */ 22, 0, 0, 0, 0, 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0,
/* 0x0c90 */ 252,255,255,255,255,255,255,255,165, 0, 0, 0, 0, 0, 0, 0, /* 0x0c90 */ 4, 0, 0, 0, 15, 0, 0, 0,252,255,255,255,255,255,255,255,
/* 0x0ca0 */ 4, 0, 0, 0, 9, 0, 0, 0,252,255,255,255,255,255,255,255, /* 0x0ca0 */ 66, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 15, 0, 0, 0,
/* 0x0cb0 */ 12, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, /* 0x0cb0 */ 252,255,255,255,255,255,255,255, 79, 0, 0, 0, 0, 0, 0, 0,
/* 0x0cc0 */ 252,255,255,255,255,255,255,255,102,105,108,101, 32,102,111,114, /* 0x0cc0 */ 2, 0, 0, 0, 2, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0,
/* 0x0cd0 */ 109, 97,116, 32,101,108,102, 54, 52, 45,120, 56, 54, 45, 54, 52, /* 0x0cd0 */ 94, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 18, 0, 0, 0,
/* 0x0ce0 */ 10, 10, 83,101, 99,116,105,111,110,115, 58, 10, 73,100,120, 32, /* 0x0ce0 */ 252,255,255,255,255,255,255,255,115, 0, 0, 0, 0, 0, 0, 0,
/* 0x0cf0 */ 78, 97,109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83,105, /* 0x0cf0 */ 2, 0, 0, 0, 2, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0,
/* 0x0d00 */ 122,101, 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32, 32, 32, 32, /* 0x0d00 */ 130, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 14, 0, 0, 0,
/* 0x0d10 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 76, 77, 65, 32, 32, 32, /* 0x0d10 */ 252,255,255,255,255,255,255,255,140, 0, 0, 0, 0, 0, 0, 0,
/* 0x0d20 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70,105,108,101, /* 0x0d20 */ 4, 0, 0, 0, 17, 0, 0, 0,252,255,255,255,255,255,255,255,
/* 0x0d30 */ 32,111,102,102, 32, 32, 65,108,103,110, 32, 32, 70,108, 97,103, /* 0x0d30 */ 150, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 10, 0, 0, 0,
/* 0x0d40 */ 115, 10, 32, 32, 48, 32, 72, 85, 77, 70, 95, 65, 32, 32, 32, 32, /* 0x0d40 */ 252,255,255,255,255,255,255,255,194, 0, 0, 0, 0, 0, 0, 0,
/* 0x0d50 */ 32, 32, 32, 32, 48, 53, 32, 32, 48, 32, 32, 48, 32, 32, 48, 52, /* 0x0d50 */ 4, 0, 0, 0, 12, 0, 0, 0,252,255,255,255,255,255,255,255,
/* 0x0d60 */ 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, /* 0x0d60 */ 202, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 9, 0, 0, 0,
/* 0x0d70 */ 83, 10, 32, 32, 49, 32, 72, 85, 77, 70, 95, 76, 32, 32, 32, 32, /* 0x0d70 */ 252,255,255,255,255,255,255,255, 12, 0, 0, 0, 0, 0, 0, 0,
/* 0x0d80 */ 32, 32, 32, 32, 48, 53, 32, 32, 48, 32, 32, 48, 32, 32, 48, 52, /* 0x0d80 */ 2, 0, 0, 0, 1, 0, 0, 0,252,255,255,255,255,255,255,255,
/* 0x0d90 */ 53, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, /* 0x0d90 */ 102,105,108,101, 32,102,111,114,109, 97,116, 32,101,108,102, 54,
/* 0x0da0 */ 83, 10, 32, 32, 50, 32, 85, 77, 70, 95, 65, 78, 68, 82, 79, 73, /* 0x0da0 */ 52, 45,120, 56, 54, 45, 54, 52, 10, 10, 83,101, 99,116,105,111,
/* 0x0db0 */ 68, 32, 32, 32, 48, 49, 51, 51, 32, 32, 48, 32, 32, 48, 32, 32, /* 0x0db0 */ 110,115, 58, 10, 73,100,120, 32, 78, 97,109,101, 32, 32, 32, 32,
/* 0x0dc0 */ 48, 53, 48, 32, 32, 50, 42, 42, 52, 32, 32, 67, 79, 78, 84, 69, /* 0x0dc0 */ 32, 32, 32, 32, 32, 32, 83,105,122,101, 32, 32, 32, 32, 32, 32,
/* 0x0dd0 */ 78, 84, 83, 10, 32, 32, 51, 32, 85, 77, 70, 95, 76, 73, 78, 85, /* 0x0dd0 */ 86, 77, 65, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x0de0 */ 88, 32, 32, 32, 32, 32, 48,100, 52, 32, 32, 48, 32, 32, 48, 32, /* 0x0de0 */ 32, 32, 76, 77, 65, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x0df0 */ 32, 48, 49, 56, 52, 32, 32, 50, 42, 42, 50, 32, 32, 67, 79, 78, /* 0x0df0 */ 32, 32, 32, 32, 70,105,108,101, 32,111,102,102, 32, 32, 65,108,
/* 0x0e00 */ 84, 69, 78, 84, 83, 10, 32, 32, 52, 32, 69, 76, 70, 77, 65, 73, /* 0x0e00 */ 103,110, 32, 32, 70,108, 97,103,115, 10, 32, 32, 48, 32, 72, 85,
/* 0x0e10 */ 78, 88, 32, 32, 32, 32, 32, 32, 48, 49, 56, 56, 32, 32, 48, 32, /* 0x0e10 */ 77, 70, 95, 65, 32, 32, 32, 32, 32, 32, 32, 32, 48, 53, 32, 32,
/* 0x0e20 */ 32, 48, 32, 32, 48, 50, 53, 56, 32, 32, 50, 42, 42, 50, 32, 32, /* 0x0e20 */ 48, 32, 32, 48, 32, 32, 48, 52, 48, 32, 32, 50, 42, 42, 48, 32,
/* 0x0e30 */ 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 53, 32, 69, 76, 70, /* 0x0e30 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 49, 32, 72, 85,
/* 0x0e40 */ 77, 65, 73, 78, 90, 32, 32, 32, 32, 32, 32, 48, 32, 32, 48, 32, /* 0x0e40 */ 77, 70, 95, 76, 32, 32, 32, 32, 32, 32, 32, 32, 48, 53, 32, 32,
/* 0x0e50 */ 32, 48, 32, 32, 48, 51,101, 48, 32, 32, 50, 42, 42, 48, 32, 32, /* 0x0e50 */ 48, 32, 32, 48, 32, 32, 48, 52, 53, 32, 32, 50, 42, 42, 48, 32,
/* 0x0e60 */ 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 54, 32, 83, 84, 82, /* 0x0e60 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 50, 32, 85, 77,
/* 0x0e70 */ 67, 79, 78, 32, 32, 32, 32, 32, 32, 32, 32, 48, 50, 55, 32, 32, /* 0x0e70 */ 70, 95, 65, 78, 68, 82, 79, 73, 68, 32, 32, 32, 48, 49, 51, 51,
/* 0x0e80 */ 48, 32, 32, 48, 32, 32, 48, 51,101, 48, 32, 32, 50, 42, 42, 48, /* 0x0e80 */ 32, 32, 48, 32, 32, 48, 32, 32, 48, 53, 48, 32, 32, 50, 42, 42,
/* 0x0e90 */ 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 83, 89, 77, 66, 79, /* 0x0e90 */ 52, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 51, 32,
/* 0x0ea0 */ 76, 32, 84, 65, 66, 76, 69, 58, 10, 48, 48, 48, 48, 48, 48, 48, /* 0x0ea0 */ 85, 77, 70, 95, 76, 73, 78, 85, 88, 32, 32, 32, 32, 32, 48,102,
/* 0x0eb0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, /* 0x0eb0 */ 57, 32, 32, 48, 32, 32, 48, 32, 32, 48, 49, 56, 52, 32, 32, 50,
/* 0x0ec0 */ 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 32, 48, 32, 69, 76, 70, /* 0x0ec0 */ 42, 42, 50, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32,
/* 0x0ed0 */ 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x0ed0 */ 52, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 32, 32, 32, 32, 32,
/* 0x0ee0 */ 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 83, /* 0x0ee0 */ 48, 49, 56, 56, 32, 32, 48, 32, 32, 48, 32, 32, 48, 50, 56, 48,
/* 0x0ef0 */ 84, 82, 67, 79, 78, 32, 48, 32, 83, 84, 82, 67, 79, 78, 10, 48, /* 0x0ef0 */ 32, 32, 50, 42, 42, 50, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83,
/* 0x0f00 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x0f00 */ 10, 32, 32, 53, 32, 69, 76, 70, 77, 65, 73, 78, 90, 32, 32, 32,
/* 0x0f10 */ 108, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, /* 0x0f10 */ 32, 32, 32, 48, 32, 32, 48, 32, 32, 48, 32, 32, 48, 52, 48, 56,
/* 0x0f20 */ 32, 48, 32, 95,115,116, 97,114,116, 10, 48, 48, 48, 48, 48, 48, /* 0x0f20 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83,
/* 0x0f30 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, /* 0x0f30 */ 10, 32, 32, 54, 32, 83, 84, 82, 67, 79, 78, 32, 32, 32, 32, 32,
/* 0x0f40 */ 100, 32, 32, 72, 85, 77, 70, 95, 65, 32, 48, 32, 72, 85, 77, 70, /* 0x0f40 */ 32, 32, 32, 48, 54, 53, 32, 32, 48, 32, 32, 48, 32, 32, 48, 52,
/* 0x0f50 */ 95, 65, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x0f50 */ 48, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78,
/* 0x0f60 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 72, 85, 77, 70, /* 0x0f60 */ 84, 83, 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, 66, 76, 69, 58,
/* 0x0f70 */ 95, 76, 32, 48, 32, 72, 85, 77, 70, 95, 76, 10, 48, 48, 48, 48, /* 0x0f70 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x0f80 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, /* 0x0f80 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73,
/* 0x0f90 */ 32, 32,100, 32, 32, 85, 77, 70, 95, 65, 78, 68, 82, 79, 73, 68, /* 0x0f90 */ 78, 90, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, 48,
/* 0x0fa0 */ 32, 48, 32, 85, 77, 70, 95, 65, 78, 68, 82, 79, 73, 68, 10, 48, /* 0x0fa0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108,
/* 0x0fb0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x0fb0 */ 32, 32, 32, 32,100, 32, 32, 83, 84, 82, 67, 79, 78, 32, 48, 32,
/* 0x0fc0 */ 108, 32, 32, 32, 32,100, 32, 32, 85, 77, 70, 95, 76, 73, 78, 85, /* 0x0fc0 */ 83, 84, 82, 67, 79, 78, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x0fd0 */ 88, 32, 48, 32, 85, 77, 70, 95, 76, 73, 78, 85, 88, 10, 48, 48, /* 0x0fd0 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, 32, 32, 32,
/* 0x0fe0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, /* 0x0fe0 */ 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 32, 95,115,116, 97,114,
/* 0x0ff0 */ 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, /* 0x0ff0 */ 116, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1000 */ 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, /* 0x1000 */ 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 72, 85, 77, 70, 95,
/* 0x1010 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, /* 0x1010 */ 65, 32, 48, 32, 72, 85, 77, 70, 95, 65, 10, 48, 48, 48, 48, 48,
/* 0x1020 */ 32, 32, 32, 32, 42, 85, 78, 68, 42, 32, 48, 32,103,101,116, 95, /* 0x1020 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32,
/* 0x1030 */ 112, 97,103,101, 95,109, 97,115,107, 10, 48, 48, 48, 48, 48, 48, /* 0x1030 */ 32,100, 32, 32, 72, 85, 77, 70, 95, 76, 32, 48, 32, 72, 85, 77,
/* 0x1040 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, /* 0x1040 */ 70, 95, 76, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1050 */ 32, 32, 32, 42, 85, 78, 68, 42, 32, 48, 32,102,116,114,117,110, /* 0x1050 */ 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 85, 77, 70,
/* 0x1060 */ 99, 97,116,101, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1060 */ 95, 65, 78, 68, 82, 79, 73, 68, 32, 48, 32, 85, 77, 70, 95, 65,
/* 0x1070 */ 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 70, 32, 85, 77, /* 0x1070 */ 78, 68, 82, 79, 73, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1080 */ 70, 95, 65, 78, 68, 82, 79, 73, 68, 32, 48, 49, 51, 51, 32,117, /* 0x1080 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,
/* 0x1090 */ 112,120, 95,109,109, 97,112, 95, 97,110,100, 95,102,100, 95, 97, /* 0x1090 */ 85, 77, 70, 95, 76, 73, 78, 85, 88, 32, 48, 32, 85, 77, 70, 95,
/* 0x10a0 */ 110,100,114,111,105,100, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x10a0 */ 76, 73, 78, 85, 88, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x10b0 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x10b0 */ 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69,
/* 0x10c0 */ 42, 85, 78, 68, 42, 32, 48, 32,109,109, 97,112, 10, 48, 48, 48, /* 0x10c0 */ 76, 70, 77, 65, 73, 78, 88, 32, 48, 32, 69, 76, 70, 77, 65, 73,
/* 0x10d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, /* 0x10d0 */ 78, 88, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x10e0 */ 32, 32, 32, 32, 70, 32, 85, 77, 70, 95, 76, 73, 78, 85, 88, 32, /* 0x10e0 */ 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68,
/* 0x10f0 */ 48,100, 52, 32,117,112,120, 95,109,109, 97,112, 95, 97,110,100, /* 0x10f0 */ 42, 32, 48, 32,103,101,116, 95,112, 97,103,101, 95,109, 97,115,
/* 0x1100 */ 95,102,100, 95,108,105,110,117,120, 10, 48, 48, 48, 48, 48, 48, /* 0x1100 */ 107, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1110 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, /* 0x1110 */ 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42,
/* 0x1120 */ 32, 32, 32, 42, 85, 78, 68, 42, 32, 48, 32,119,114,105,116,101, /* 0x1120 */ 32, 48, 32,102,116,114,117,110, 99, 97,116,101, 10, 48, 48, 48,
/* 0x1130 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1130 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32,
/* 0x1140 */ 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 32, /* 0x1140 */ 32, 32, 32, 32, 70, 32, 85, 77, 70, 95, 65, 78, 68, 82, 79, 73,
/* 0x1150 */ 48, 32,109,101,109,102,100, 95, 99,114,101, 97,116,101, 10, 48, /* 0x1150 */ 68, 32, 48, 49, 51, 51, 32,117,112,120, 95,109,109, 97,112, 95,
/* 0x1160 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x1160 */ 97,110,100, 95,102,100, 95, 97,110,100,114,111,105,100, 10, 48,
/* 0x1170 */ 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 32, 48, 32, /* 0x1170 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x1180 */ 109,121, 95, 98,107,112,116, 10, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1180 */ 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 32, 48, 32,
/* 0x1190 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x1190 */ 109,109, 97,112, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x11a0 */ 32, 42, 85, 78, 68, 42, 32, 48, 32,111,112,101,110, 10, 10, 82, /* 0x11a0 */ 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 70, 32, 85, 77,
/* 0x11b0 */ 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, /* 0x11b0 */ 70, 95, 76, 73, 78, 85, 88, 32, 48,102, 57, 32,117,112,120, 95,
/* 0x11c0 */ 83, 32, 70, 79, 82, 32, 91, 72, 85, 77, 70, 95, 65, 93, 58, 10, /* 0x11c0 */ 109,109, 97,112, 95, 97,110,100, 95,102,100, 95,108,105,110,117,
/* 0x11d0 */ 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x11d0 */ 120, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x11e0 */ 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x11e0 */ 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42,
/* 0x11f0 */ 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, /* 0x11f0 */ 32, 48, 32,119,114,105,116,101, 10, 48, 48, 48, 48, 48, 48, 48,
/* 0x1200 */ 48, 48, 48, 48, 48, 48, 48, 48, 49, 32, 82, 95, 88, 56, 54, 95, /* 0x1200 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32,
/* 0x1210 */ 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32,117,112,120, 95, /* 0x1210 */ 32, 32, 42, 85, 78, 68, 42, 32, 48, 32,109,101,109,102,100, 95,
/* 0x1220 */ 109,109, 97,112, 95, 97,110,100, 95,102,100, 95, 97,110,100,114, /* 0x1220 */ 99,114,101, 97,116,101, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1230 */ 111,105,100, 43, 48,120,102,102,102,102,102,102,102,102,102,102, /* 0x1230 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x1240 */ 102,102,102,102,102, 99, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, /* 0x1240 */ 42, 85, 78, 68, 42, 32, 48, 32,109,121, 95, 98,107,112,116, 10,
/* 0x1250 */ 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, /* 0x1250 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1260 */ 72, 85, 77, 70, 95, 76, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, /* 0x1260 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 32, 48,
/* 0x1270 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, /* 0x1270 */ 32,101,120,105,116, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1280 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, /* 0x1280 */ 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42,
/* 0x1290 */ 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1290 */ 85, 78, 68, 42, 32, 48, 32,111,112,101,110, 10, 10, 82, 69, 76,
/* 0x12a0 */ 48, 49, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 67, 51, 50, /* 0x12a0 */ 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32,
/* 0x12b0 */ 32, 32, 32, 32, 32,117,112,120, 95,109,109, 97,112, 95, 97,110, /* 0x12b0 */ 70, 79, 82, 32, 91, 72, 85, 77, 70, 95, 65, 93, 58, 10, 79, 70,
/* 0x12c0 */ 100, 95,102,100, 95,108,105,110,117,120, 43, 48,120,102,102,102, /* 0x12c0 */ 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84,
/* 0x12d0 */ 102,102,102,102,102,102,102,102,102,102,102,102, 99, 10, 10, 82, /* 0x12d0 */ 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x12e0 */ 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, /* 0x12e0 */ 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x12f0 */ 83, 32, 70, 79, 82, 32, 91, 85, 77, 70, 95, 65, 78, 68, 82, 79, /* 0x12f0 */ 48, 48, 48, 48, 48, 48, 49, 32, 82, 95, 88, 56, 54, 95, 54, 52,
/* 0x1300 */ 73, 68, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, /* 0x1300 */ 95, 80, 67, 51, 50, 32, 32, 32, 32, 32,117,112,120, 95,109,109,
/* 0x1310 */ 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, /* 0x1310 */ 97,112, 95, 97,110,100, 95,102,100, 95, 97,110,100,114,111,105,
/* 0x1320 */ 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, /* 0x1320 */ 100, 43, 48,120,102,102,102,102,102,102,102,102,102,102,102,102,
/* 0x1330 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 50, 49, 32, 82, /* 0x1330 */ 102,102,102, 99, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78,
/* 0x1340 */ 95, 88, 56, 54, 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, /* 0x1340 */ 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 72, 85,
/* 0x1350 */ 32, 83, 84, 82, 67, 79, 78, 43, 48,120,102,102,102,102,102,102, /* 0x1350 */ 77, 70, 95, 76, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32,
/* 0x1360 */ 102,102,102,102,102,102,102,102,102, 99, 10, 48, 48, 48, 48, 48, /* 0x1360 */ 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32,
/* 0x1370 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 50,101, 32, 82, 95, 88, 56, /* 0x1370 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10,
/* 0x1380 */ 54, 95, 54, 52, 95, 80, 76, 84, 51, 50, 32, 32, 32, 32,109,101, /* 0x1380 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49,
/* 0x1390 */ 109,102,100, 95, 99,114,101, 97,116,101, 43, 48,120,102,102,102, /* 0x1390 */ 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 67, 51, 50, 32, 32,
/* 0x13a0 */ 102,102,102,102,102,102,102,102,102,102,102,102, 99, 10, 48, 48, /* 0x13a0 */ 32, 32, 32,117,112,120, 95,109,109, 97,112, 95, 97,110,100, 95,
/* 0x13b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 52, 51, 32, 82, /* 0x13b0 */ 102,100, 95,108,105,110,117,120, 43, 48,120,102,102,102,102,102,
/* 0x13c0 */ 95, 88, 56, 54, 95, 54, 52, 95, 80, 76, 84, 51, 50, 32, 32, 32, /* 0x13c0 */ 102,102,102,102,102,102,102,102,102,102, 99, 10, 10, 82, 69, 76,
/* 0x13d0 */ 32,109,101,109,102,100, 95, 99,114,101, 97,116,101, 43, 48,120, /* 0x13d0 */ 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32,
/* 0x13e0 */ 102,102,102,102,102,102,102,102,102,102,102,102,102,102,102, 99, /* 0x13e0 */ 70, 79, 82, 32, 91, 85, 77, 70, 95, 65, 78, 68, 82, 79, 73, 68,
/* 0x13f0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 53, /* 0x13f0 */ 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32,
/* 0x1400 */ 50, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 67, 51, 50, 32, /* 0x1400 */ 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x1410 */ 32, 32, 32, 32, 83, 84, 82, 67, 79, 78, 10, 48, 48, 48, 48, 48, /* 0x1410 */ 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48,
/* 0x1420 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 54, 49, 32, 82, 95, 88, 56, /* 0x1420 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 50, 49, 32, 82, 95, 88,
/* 0x1430 */ 54, 95, 54, 52, 95, 80, 76, 84, 51, 50, 32, 32, 32, 32,111,112, /* 0x1430 */ 56, 54, 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 83,
/* 0x1440 */ 101,110, 43, 48,120,102,102,102,102,102,102,102,102,102,102,102, /* 0x1440 */ 84, 82, 67, 79, 78, 43, 48,120,102,102,102,102,102,102,102,102,
/* 0x1450 */ 102,102,102,102, 99, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1450 */ 102,102,102,102,102,102,102, 99, 10, 48, 48, 48, 48, 48, 48, 48,
/* 0x1460 */ 48, 48, 48, 48, 54,102, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, /* 0x1460 */ 48, 48, 48, 48, 48, 48, 48, 50,101, 32, 82, 95, 88, 56, 54, 95,
/* 0x1470 */ 80, 67, 51, 50, 32, 32, 32, 32, 32, 83, 84, 82, 67, 79, 78, 43, /* 0x1470 */ 54, 52, 95, 80, 76, 84, 51, 50, 32, 32, 32, 32,109,101,109,102,
/* 0x1480 */ 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1480 */ 100, 95, 99,114,101, 97,116,101, 43, 48,120,102,102,102,102,102,
/* 0x1490 */ 48, 57, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1490 */ 102,102,102,102,102,102,102,102,102,102, 99, 10, 48, 48, 48, 48,
/* 0x14a0 */ 48, 55, 57, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 76, 84, /* 0x14a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 52, 51, 32, 82, 95, 88,
/* 0x14b0 */ 51, 50, 32, 32, 32, 32,109,121, 95, 98,107,112,116, 43, 48,120, /* 0x14b0 */ 56, 54, 95, 54, 52, 95, 80, 76, 84, 51, 50, 32, 32, 32, 32,109,
/* 0x14c0 */ 102,102,102,102,102,102,102,102,102,102,102,102,102,102,102, 99, /* 0x14c0 */ 101,109,102,100, 95, 99,114,101, 97,116,101, 43, 48,120,102,102,
/* 0x14d0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 56, /* 0x14d0 */ 102,102,102,102,102,102,102,102,102,102,102,102,102, 99, 10, 48,
/* 0x14e0 */ 51, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 76, 84, 51, 50, /* 0x14e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 53, 50, 32,
/* 0x14f0 */ 32, 32, 32, 32,103,101,116, 95,112, 97,103,101, 95,109, 97,115, /* 0x14f0 */ 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, 32,
/* 0x1500 */ 107, 43, 48,120,102,102,102,102,102,102,102,102,102,102,102,102, /* 0x1500 */ 32, 32, 83, 84, 82, 67, 79, 78, 10, 48, 48, 48, 48, 48, 48, 48,
/* 0x1510 */ 102,102,102, 99, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1510 */ 48, 48, 48, 48, 48, 48, 48, 54, 49, 32, 82, 95, 88, 56, 54, 95,
/* 0x1520 */ 48, 48, 48, 97, 56, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, /* 0x1520 */ 54, 52, 95, 80, 76, 84, 51, 50, 32, 32, 32, 32,111,112,101,110,
/* 0x1530 */ 76, 84, 51, 50, 32, 32, 32, 32,102,116,114,117,110, 99, 97,116, /* 0x1530 */ 43, 48,120,102,102,102,102,102,102,102,102,102,102,102,102,102,
/* 0x1540 */ 101, 43, 48,120,102,102,102,102,102,102,102,102,102,102,102,102, /* 0x1540 */ 102,102, 99, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1550 */ 102,102,102, 99, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1550 */ 48, 48, 54,102, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 67,
/* 0x1560 */ 48, 48, 48, 98, 57, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, /* 0x1560 */ 51, 50, 32, 32, 32, 32, 32, 83, 84, 82, 67, 79, 78, 43, 48,120,
/* 0x1570 */ 76, 84, 51, 50, 32, 32, 32, 32,103,101,116, 95,112, 97,103,101, /* 0x1570 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 57,
/* 0x1580 */ 95,109, 97,115,107, 43, 48,120,102,102,102,102,102,102,102,102, /* 0x1580 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 55,
/* 0x1590 */ 102,102,102,102,102,102,102, 99, 10, 48, 48, 48, 48, 48, 48, 48, /* 0x1590 */ 57, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 76, 84, 51, 50,
/* 0x15a0 */ 48, 48, 48, 48, 48, 48, 48,100, 48, 32, 82, 95, 88, 56, 54, 95, /* 0x15a0 */ 32, 32, 32, 32,109,121, 95, 98,107,112,116, 43, 48,120,102,102,
/* 0x15b0 */ 54, 52, 95, 80, 76, 84, 51, 50, 32, 32, 32, 32,119,114,105,116, /* 0x15b0 */ 102,102,102,102,102,102,102,102,102,102,102,102,102, 99, 10, 48,
/* 0x15c0 */ 101, 43, 48,120,102,102,102,102,102,102,102,102,102,102,102,102, /* 0x15c0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 56, 51, 32,
/* 0x15d0 */ 102,102,102, 99, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x15d0 */ 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 76, 84, 51, 50, 32, 32,
/* 0x15e0 */ 48, 48, 48,102, 56, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, /* 0x15e0 */ 32, 32,103,101,116, 95,112, 97,103,101, 95,109, 97,115,107, 43,
/* 0x15f0 */ 76, 84, 51, 50, 32, 32, 32, 32,109,109, 97,112, 43, 48,120,102, /* 0x15f0 */ 48,120,102,102,102,102,102,102,102,102,102,102,102,102,102,102,
/* 0x1600 */ 102,102,102,102,102,102,102,102,102,102,102,102,102,102, 99, 10, /* 0x1600 */ 102, 99, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1610 */ 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, /* 0x1610 */ 48, 97, 56, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 76, 84,
/* 0x1620 */ 82, 68, 83, 32, 70, 79, 82, 32, 91, 85, 77, 70, 95, 76, 73, 78, /* 0x1620 */ 51, 50, 32, 32, 32, 32,102,116,114,117,110, 99, 97,116,101, 43,
/* 0x1630 */ 85, 88, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, /* 0x1630 */ 48,120,102,102,102,102,102,102,102,102,102,102,102,102,102,102,
/* 0x1640 */ 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, /* 0x1640 */ 102, 99, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1650 */ 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, /* 0x1650 */ 48, 98, 57, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 76, 84,
/* 0x1660 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 50, 49, 32, 82, /* 0x1660 */ 51, 50, 32, 32, 32, 32,103,101,116, 95,112, 97,103,101, 95,109,
/* 0x1670 */ 95, 88, 56, 54, 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, /* 0x1670 */ 97,115,107, 43, 48,120,102,102,102,102,102,102,102,102,102,102,
/* 0x1680 */ 32, 83, 84, 82, 67, 79, 78, 43, 48,120, 48, 48, 48, 48, 48, 48, /* 0x1680 */ 102,102,102,102,102, 99, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1690 */ 48, 48, 48, 48, 48, 48, 48, 48, 49, 54, 10, 48, 48, 48, 48, 48, /* 0x1690 */ 48, 48, 48, 48, 48,100, 48, 32, 82, 95, 88, 56, 54, 95, 54, 52,
/* 0x16a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 50,101, 32, 82, 95, 88, 56, /* 0x16a0 */ 95, 80, 76, 84, 51, 50, 32, 32, 32, 32,119,114,105,116,101, 43,
/* 0x16b0 */ 54, 95, 54, 52, 95, 80, 76, 84, 51, 50, 32, 32, 32, 32,109,101, /* 0x16b0 */ 48,120,102,102,102,102,102,102,102,102,102,102,102,102,102,102,
/* 0x16c0 */ 109,102,100, 95, 99,114,101, 97,116,101, 43, 48,120,102,102,102, /* 0x16c0 */ 102, 99, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x16d0 */ 102,102,102,102,102,102,102,102,102,102,102,102, 99, 10, 48, 48, /* 0x16d0 */ 48,102, 56, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 76, 84,
/* 0x16e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 52, 50, 32, 82, /* 0x16e0 */ 51, 50, 32, 32, 32, 32,109,109, 97,112, 43, 48,120,102,102,102,
/* 0x16f0 */ 95, 88, 56, 54, 95, 54, 52, 95, 80, 76, 84, 51, 50, 32, 32, 32, /* 0x16f0 */ 102,102,102,102,102,102,102,102,102,102,102,102, 99, 10, 10, 82,
/* 0x1700 */ 32,109,101,109,102,100, 95, 99,114,101, 97,116,101, 43, 48,120, /* 0x1700 */ 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68,
/* 0x1710 */ 102,102,102,102,102,102,102,102,102,102,102,102,102,102,102, 99, /* 0x1710 */ 83, 32, 70, 79, 82, 32, 91, 85, 77, 70, 95, 76, 73, 78, 85, 88,
/* 0x1720 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 52, /* 0x1720 */ 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32,
/* 0x1730 */ 102, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 67, 51, 50, 32, /* 0x1730 */ 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x1740 */ 32, 32, 32, 32, 83, 84, 82, 67, 79, 78, 43, 48,120, 48, 48, 48, /* 0x1740 */ 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48,
/* 0x1750 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 97, 10, 48, 48, /* 0x1750 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 50, 49, 32, 82, 95, 88,
/* 0x1760 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 53,101, 32, 82, /* 0x1760 */ 56, 54, 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 83,
/* 0x1770 */ 95, 88, 56, 54, 95, 54, 52, 95, 80, 76, 84, 51, 50, 32, 32, 32, /* 0x1770 */ 84, 82, 67, 79, 78, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1780 */ 32,111,112,101,110, 43, 48,120,102,102,102,102,102,102,102,102, /* 0x1780 */ 48, 48, 48, 48, 48, 48, 49, 54, 10, 48, 48, 48, 48, 48, 48, 48,
/* 0x1790 */ 102,102,102,102,102,102,102, 99, 10, 48, 48, 48, 48, 48, 48, 48, /* 0x1790 */ 48, 48, 48, 48, 48, 48, 48, 50,101, 32, 82, 95, 88, 56, 54, 95,
/* 0x17a0 */ 48, 48, 48, 48, 48, 48, 48, 55, 49, 32, 82, 95, 88, 56, 54, 95, /* 0x17a0 */ 54, 52, 95, 80, 76, 84, 51, 50, 32, 32, 32, 32,109,101,109,102,
/* 0x17b0 */ 54, 52, 95, 80, 76, 84, 51, 50, 32, 32, 32, 32,102,116,114,117, /* 0x17b0 */ 100, 95, 99,114,101, 97,116,101, 43, 48,120,102,102,102,102,102,
/* 0x17c0 */ 110, 99, 97,116,101, 43, 48,120,102,102,102,102,102,102,102,102, /* 0x17c0 */ 102,102,102,102,102,102,102,102,102,102, 99, 10, 48, 48, 48, 48,
/* 0x17d0 */ 102,102,102,102,102,102,102, 99, 10, 48, 48, 48, 48, 48, 48, 48, /* 0x17d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 52, 50, 32, 82, 95, 88,
/* 0x17e0 */ 48, 48, 48, 48, 48, 48, 48, 57,100, 32, 82, 95, 88, 56, 54, 95, /* 0x17e0 */ 56, 54, 95, 54, 52, 95, 80, 76, 84, 51, 50, 32, 32, 32, 32,109,
/* 0x17f0 */ 54, 52, 95, 80, 76, 84, 51, 50, 32, 32, 32, 32,109,109, 97,112, /* 0x17f0 */ 101,109,102,100, 95, 99,114,101, 97,116,101, 43, 48,120,102,102,
/* 0x1800 */ 43, 48,120,102,102,102,102,102,102,102,102,102,102,102,102,102, /* 0x1800 */ 102,102,102,102,102,102,102,102,102,102,102,102,102, 99, 10, 48,
/* 0x1810 */ 102,102, 99, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1810 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 52,102, 32,
/* 0x1820 */ 48, 48, 97, 53, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 76, /* 0x1820 */ 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, 32,
/* 0x1830 */ 84, 51, 50, 32, 32, 32, 32,103,101,116, 95,112, 97,103,101, 95, /* 0x1830 */ 32, 32, 83, 84, 82, 67, 79, 78, 43, 48,120, 48, 48, 48, 48, 48,
/* 0x1840 */ 109, 97,115,107, 43, 48,120,102,102,102,102,102,102,102,102,102, /* 0x1840 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 97, 10, 48, 48, 48, 48,
/* 0x1850 */ 102,102,102,102,102,102, 99, 10, 10, 82, 69, 76, 79, 67, 65, 84, /* 0x1850 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 53,101, 32, 82, 95, 88,
/* 0x1860 */ 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, /* 0x1860 */ 56, 54, 95, 54, 52, 95, 80, 76, 84, 51, 50, 32, 32, 32, 32,111,
/* 0x1870 */ 91, 69, 76, 70, 77, 65, 73, 78, 88, 93, 58, 10, 79, 70, 70, 83, /* 0x1870 */ 112,101,110, 43, 48,120,102,102,102,102,102,102,102,102,102,102,
/* 0x1880 */ 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, /* 0x1880 */ 102,102,102,102,102, 99, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1890 */ 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, /* 0x1890 */ 48, 48, 48, 48, 48, 55, 51, 32, 82, 95, 88, 56, 54, 95, 54, 52,
/* 0x18a0 */ 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x18a0 */ 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 83, 84, 82, 67, 79, 78,
/* 0x18b0 */ 48, 48, 48, 48, 99, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, /* 0x18b0 */ 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x18c0 */ 67, 51, 50, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, /* 0x18c0 */ 48, 50, 51, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x18d0 */ 43, 48,120,102,102,102,102,102,102,102,102,102,102,102,102,102, /* 0x18d0 */ 48, 48, 56, 50, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 76,
/* 0x18e0 */ 102,102, 99, 10 /* 0x18e0 */ 84, 51, 50, 32, 32, 32, 32,119,114,105,116,101, 43, 48,120,102,
/* 0x18f0 */ 102,102,102,102,102,102,102,102,102,102,102,102,102,102, 99, 10,
/* 0x1900 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 56, 99,
/* 0x1910 */ 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 76, 84, 51, 50, 32,
/* 0x1920 */ 32, 32, 32,101,120,105,116, 43, 48,120,102,102,102,102,102,102,
/* 0x1930 */ 102,102,102,102,102,102,102,102,102, 99, 10, 48, 48, 48, 48, 48,
/* 0x1940 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 57, 54, 32, 82, 95, 88, 56,
/* 0x1950 */ 54, 95, 54, 52, 95, 80, 76, 84, 51, 50, 32, 32, 32, 32,102,116,
/* 0x1960 */ 114,117,110, 99, 97,116,101, 43, 48,120,102,102,102,102,102,102,
/* 0x1970 */ 102,102,102,102,102,102,102,102,102, 99, 10, 48, 48, 48, 48, 48,
/* 0x1980 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 99, 50, 32, 82, 95, 88, 56,
/* 0x1990 */ 54, 95, 54, 52, 95, 80, 76, 84, 51, 50, 32, 32, 32, 32,109,109,
/* 0x19a0 */ 97,112, 43, 48,120,102,102,102,102,102,102,102,102,102,102,102,
/* 0x19b0 */ 102,102,102,102, 99, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x19c0 */ 48, 48, 48, 48, 99, 97, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95,
/* 0x19d0 */ 80, 76, 84, 51, 50, 32, 32, 32, 32,103,101,116, 95,112, 97,103,
/* 0x19e0 */ 101, 95,109, 97,115,107, 43, 48,120,102,102,102,102,102,102,102,
/* 0x19f0 */ 102,102,102,102,102,102,102,102, 99, 10, 10, 82, 69, 76, 79, 67,
/* 0x1a00 */ 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79,
/* 0x1a10 */ 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 88, 93, 58, 10, 79, 70,
/* 0x1a20 */ 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84,
/* 0x1a30 */ 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x1a40 */ 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1a50 */ 48, 48, 48, 48, 48, 48, 99, 32, 82, 95, 88, 56, 54, 95, 54, 52,
/* 0x1a60 */ 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73,
/* 0x1a70 */ 78, 90, 43, 48,120,102,102,102,102,102,102,102,102,102,102,102,
/* 0x1a80 */ 102,102,102,102, 99, 10
}; };
+1347 -1324
View File
File diff suppressed because it is too large Load Diff
+785 -765
View File
File diff suppressed because it is too large Load Diff
+2255 -2234
View File
File diff suppressed because it is too large Load Diff
+726 -708
View File
File diff suppressed because it is too large Load Diff
+2142 -2123
View File
File diff suppressed because it is too large Load Diff
+717 -699
View File
File diff suppressed because it is too large Load Diff
+2297 -2277
View File
File diff suppressed because it is too large Load Diff
+695 -678
View File
File diff suppressed because it is too large Load Diff
+2175 -2155
View File
File diff suppressed because it is too large Load Diff
+3 -3
View File
@@ -33,8 +33,8 @@
/* clang-format off */ /* clang-format off */
#define STUB_ARM64_LINUX_ELF_ENTRY_SIZE 1656 #define STUB_ARM64_LINUX_ELF_ENTRY_SIZE 1656
#define STUB_ARM64_LINUX_ELF_ENTRY_ADLER32 0x7eeabbed #define STUB_ARM64_LINUX_ELF_ENTRY_ADLER32 0xebefbc2c
#define STUB_ARM64_LINUX_ELF_ENTRY_CRC32 0x7ffb080c #define STUB_ARM64_LINUX_ELF_ENTRY_CRC32 0x6e19662b
unsigned char stub_arm64_linux_elf_entry[1656] = { unsigned char stub_arm64_linux_elf_entry[1656] = {
/* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -47,7 +47,7 @@ unsigned char stub_arm64_linux_elf_entry[1656] = {
/* 0x0070 */ 34, 0,160,210,250, 3, 2,203,250, 3, 0,249, 0, 0, 0,148, /* 0x0070 */ 34, 0,160,210,250, 3, 2,203,250, 3, 0,249, 0, 0, 0,148,
/* 0x0080 */ 244, 3, 30,170, 1, 2,128, 82, 0, 0, 0, 16,232, 34,128, 82, /* 0x0080 */ 244, 3, 30,170, 1, 2,128, 82, 0, 0, 0, 16,232, 34,128, 82,
/* 0x0090 */ 1, 0, 0,212, 0, 2,248, 54, 97, 0, 0, 52,225, 3, 31, 42, /* 0x0090 */ 1, 0, 0,212, 0, 2,248, 54, 97, 0, 0, 52,225, 3, 31, 42,
/* 0x00a0 */ 250,255,255, 23, 6, 0, 0,148,192, 1, 0, 0, 2, 0, 65, 0, /* 0x00a0 */ 250,255,255, 23, 6, 0, 0,148,192, 1, 0, 0, 2, 64, 64, 0,
/* 0x00b0 */ 47,100,101,118, 47,115,104,109, 0, 0, 0, 0,195, 71, 64,184, /* 0x00b0 */ 47,100,101,118, 47,115,104,109, 0, 0, 0, 0,195, 71, 64,184,
/* 0x00c0 */ 194, 71, 64,184,225, 3, 30,170, 96, 12,128, 18, 8, 7,128, 82, /* 0x00c0 */ 194, 71, 64,184,225, 3, 30,170, 96, 12,128, 18, 8, 7,128, 82,
/* 0x00d0 */ 1, 0, 0,212,251, 3, 0, 42,128, 6, 64,185,253, 3, 0,145, /* 0x00d0 */ 1, 0, 0,212,251, 3, 0, 42,128, 6, 64,185,253, 3, 0,145,
+1106 -1100
View File
File diff suppressed because it is too large Load Diff
+1244 -1236
View File
File diff suppressed because it is too large Load Diff
+750 -731
View File
File diff suppressed because it is too large Load Diff
+2261 -2239
View File
File diff suppressed because it is too large Load Diff
+286 -279
View File
@@ -1,5 +1,5 @@
/* i386-linux.elf-entry.h /* i386-linux.elf-entry.h
created from i386-linux.elf-entry.bin, 5683 (0x1633) bytes created from i386-linux.elf-entry.bin, 5797 (0x16a5) bytes
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
@@ -32,14 +32,14 @@
/* clang-format off */ /* clang-format off */
#define STUB_I386_LINUX_ELF_ENTRY_SIZE 5683 #define STUB_I386_LINUX_ELF_ENTRY_SIZE 5797
#define STUB_I386_LINUX_ELF_ENTRY_ADLER32 0x58b72665 #define STUB_I386_LINUX_ELF_ENTRY_ADLER32 0x4b714499
#define STUB_I386_LINUX_ELF_ENTRY_CRC32 0x73fec3f8 #define STUB_I386_LINUX_ELF_ENTRY_CRC32 0x1fdf2a57
unsigned char stub_i386_linux_elf_entry[5683] = { unsigned char stub_i386_linux_elf_entry[5797] = {
/* 0x0000 */ 127, 69, 76, 70, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0000 */ 127, 69, 76, 70, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0010 */ 1, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0010 */ 1, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0020 */ 36, 8, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, 0, /* 0x0020 */ 148, 8, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, 0,
/* 0x0030 */ 16, 0, 13, 0,233,252,255,255,255,233,252,255,255,255, 0, 0, /* 0x0030 */ 16, 0, 13, 0,233,252,255,255,255,233,252,255,255,255, 0, 0,
/* 0x0040 */ 85,137,229, 87, 86, 83,129,236, 68, 16, 0, 0,186, 0, 0, 0, /* 0x0040 */ 85,137,229, 87, 86, 83,129,236, 68, 16, 0, 0,186, 0, 0, 0,
/* 0x0050 */ 0,232, 4, 0, 0, 0,117,112,120, 0, 95,185, 16, 0, 0, 0, /* 0x0050 */ 0,232, 4, 0, 0, 0,117,112,120, 0, 95,185, 16, 0, 0, 0,
@@ -117,280 +117,287 @@ unsigned char stub_i386_linux_elf_entry[5683] = {
/* 0x04d0 */ 76, 36, 20, 73,131,249,255,116, 30,138, 22,131,202, 32, 15,190, /* 0x04d0 */ 76, 36, 20, 73,131,249,255,116, 30,138, 22,131,202, 32, 15,190,
/* 0x04e0 */ 210,138, 3,131,200, 32, 15,190,192, 67, 70, 41,194,137,208,117, /* 0x04e0 */ 210,138, 3,131,200, 32, 15,190,192, 67, 70, 41,194,137,208,117,
/* 0x04f0 */ 11, 73,131,249,255,117,226,184, 0, 0, 0, 0, 91, 94,195, 0, /* 0x04f0 */ 11, 73,131,249,255,117,226,184, 0, 0, 0, 0, 91, 94,195, 0,
/* 0x0500 */ 85,137,229, 87, 86, 83,131,236, 20,139,125, 12,232, 4, 0, 0, /* 0x0500 */ 85,137,229, 87, 86, 83,131,236, 24,139,125, 12,232, 4, 0, 0,
/* 0x0510 */ 0,117,112,120, 0, 90,185, 16, 0, 0, 0,184,100, 1, 0, 0, /* 0x0510 */ 0,117,112,120, 0, 90,185, 16, 0, 0, 0,184,100, 1, 0, 0,
/* 0x0520 */ 137,211,205,128,137,198,131,248,234,117, 16,185, 0, 0, 0, 0, /* 0x0520 */ 137,211,205,128,137,198,131,248,234,117, 16,185, 0, 0, 0, 0,
/* 0x0530 */ 184,100, 1, 0, 0,137,211,205,128,137,198,133,246,121, 40,232, /* 0x0530 */ 184,100, 1, 0, 0,137,211,205,128,137,198,133,246, 15,137,148,
/* 0x0540 */ 9, 0, 0, 0, 47,100,101,118, 47,115,104,109, 0, 94,185, 2, /* 0x0540 */ 0, 0, 0,232, 9, 0, 0, 0, 47,100,101,118, 47,115,104,109,
/* 0x0550 */ 0, 65, 0,186,192, 1, 0, 0,137,243,106, 5, 88,205,128,137, /* 0x0550 */ 0, 94,185, 2, 0, 65, 0,186,192, 1, 0, 0,137,243,106, 5,
/* 0x0560 */ 198,137,194,133,192,120, 62,137,243,137,249,106, 93, 88,205,128, /* 0x0560 */ 88,205,128,137,198,133,192,121,110,137,194,131,248,235, 15,133,
/* 0x0570 */ 137,194,133,192,120, 47,106, 0, 86,131,125, 8, 1, 25,192,131, /* 0x0570 */ 161, 0, 0, 0,184, 2, 0, 0, 0,232, 62, 0, 0, 0, 85, 80,
/* 0x0580 */ 224,240,131,192, 17, 80,106, 3, 87,255,117, 8,232,252,255,255, /* 0x0580 */ 88, 45, 53, 46, 48, 32,119, 97,110,116,115, 32,109,101,109,102,
/* 0x0590 */ 255,137,195,232,252,255,255,255,131,196, 24,137,218, 57,195,115, /* 0x0590 */ 100, 95, 99,114,101, 97,116,101, 40, 41, 44, 32,111,114, 32,110,
/* 0x05a0 */ 4,141, 84, 30, 1,137,208,141,101,244, 91, 94, 95,201,195, 0, /* 0x05a0 */ 101,101,100,115, 32, 47,100,101,118, 47,115,104,109, 40, 44, 79,
/* 0x05b0 */ 243, 15, 30,251,232,252,255,255,255,243, 15, 30,251, 1,219,116, /* 0x05b0 */ 95, 84, 77, 80, 70, 73, 76, 69, 44, 41, 10, 0, 89,186, 61, 0,
/* 0x05c0 */ 2,243,195,139, 30,131,238,252, 17,219,195, 94,131,236, 28,141, /* 0x05c0 */ 0, 0,137,195,106, 4, 88,205,128,184,127, 0, 0, 0,137,195,
/* 0x05d0 */ 124, 36, 32,232,198, 1, 0, 0,232,193, 1, 0, 0,139, 7,139, /* 0x05d0 */ 106, 1, 88,205,128,235,254,137,243,137,249,106, 93, 88,205,128,
/* 0x05e0 */ 79, 4,131,199, 8,131,248, 6,116, 9,185, 0, 16, 0, 0,133, /* 0x05e0 */ 137,194,133,192,120, 47,106, 0, 86,131,125, 8, 1, 25,192,131,
/* 0x05f0 */ 192,117,234,247,217,137,229,137, 77, 24,141,186,243,255,255,255, /* 0x05f0 */ 224,240,131,192, 17, 80,106, 3, 87,255,117, 8,232,252,255,255,
/* 0x0600 */ 139, 15, 41,207,137,125, 8,173, 1,199,137,125, 0, 41,193,137, /* 0x0600 */ 255,137,195,232,252,255,255,255,131,196, 24,137,218, 57,195,115,
/* 0x0610 */ 77, 4,139, 30,141,187, 45, 1, 0, 0,137,125, 16, 41,252,131, /* 0x0610 */ 4,141, 84, 30, 1,137,208,141,101,244, 91, 94, 95,201,195, 0,
/* 0x0620 */ 228,248, 87,141,124, 28, 4,137,233, 41,249,176,165,243,170, 95, /* 0x0620 */ 243, 15, 30,251,232,252,255,255,255,243, 15, 30,251, 1,219,116,
/* 0x0630 */ 141, 67, 20, 1,224,131,224,248, 80,137,193, 41,225,137, 76, 36, /* 0x0630 */ 2,243,195,139, 30,131,238,252, 17,219,195, 94,131,236, 28,141,
/* 0x0640 */ 4,139, 77, 24,137, 12, 36,185, 34, 0, 0, 0,137, 76, 36, 8, /* 0x0640 */ 124, 36, 32,232,196, 1, 0, 0,232,191, 1, 0, 0,139, 7,139,
/* 0x0650 */ 49,201, 82, 80,137, 8, 87, 81,232,252,255,255,255,131,196, 12, /* 0x0650 */ 79, 4,131,199, 8,131,248, 6,116, 9,185, 0, 16, 0, 0,133,
/* 0x0660 */ 169, 0, 8, 0, 0,116, 1,244, 90,137,193,193,232, 12,193,224, /* 0x0660 */ 192,117,234,247,217,137,229,137, 77, 24,141,186,243,255,255,255,
/* 0x0670 */ 12,137, 69, 12, 41,193,131,233, 1,137, 77, 20,141,124, 36, 12, /* 0x0670 */ 139, 15, 41,207,137,125, 8,173, 1,199,137,125, 0, 41,193,137,
/* 0x0680 */ 85,139, 78, 4,141,118, 12, 1,241, 81, 49,219, 49,201,131,205, /* 0x0680 */ 77, 4,139, 30,141,187, 45, 1, 0, 0,137,125, 16, 41,252,131,
/* 0x0690 */ 255,252,168,164,255,210,114,251,141, 65, 1,255,210, 17,192,255, /* 0x0690 */ 228,248, 87,141,124, 28, 4,137,233, 41,249,176,165,243,170, 95,
/* 0x06a0 */ 210,115,248,131,232, 3,114, 11,193,224, 8,172,131,240,255,116, /* 0x06a0 */ 141, 67, 20, 1,224,131,224,248, 80,137,193, 41,225,137, 76, 36,
/* 0x06b0 */ 45,137,197,141, 65, 1,255,210, 17,201,255,210, 17,201,117, 13, /* 0x06b0 */ 4,139, 77, 24,137, 12, 36,185, 34, 0, 0, 0,137, 76, 36, 8,
/* 0x06c0 */ 137,193,131,192, 2,255,210, 17,201,255,210,115,248,129,253, 0, /* 0x06c0 */ 49,201, 82, 80,137, 8, 87, 81,232,252,255,255,255,131,196, 12,
/* 0x06d0 */ 243,255,255, 17,193, 86,141, 52, 47,243,164, 94,235,182, 89, 57, /* 0x06d0 */ 169, 0, 8, 0, 0,116, 1,244, 90,137,193,193,232, 12,193,224,
/* 0x06e0 */ 206,116, 1,244, 93,139,125, 20,139, 85, 16,137,225,137,251,176, /* 0x06e0 */ 12,137, 69, 12, 41,193, 73,137, 77, 20,141,124, 36, 12, 85,139,
/* 0x06f0 */ 4,232, 40, 0, 0, 0,137,236,106, 0, 87,106, 18,106, 5,255, /* 0x06f0 */ 78, 4,141,118, 12, 1,241, 81, 49,219, 49,201,131,205,255,252,
/* 0x0700 */ 117, 16,255,117, 12,232,252,255,255,255,131,196, 24,137,251,176, /* 0x0700 */ 168,164,255,210,114,251,141, 65, 1,255,210, 17,192,255,210,115,
/* 0x0710 */ 6,232, 8, 0, 0, 0,139, 69, 12,131,192, 12,255,224, 15,182, /* 0x0710 */ 248,131,232, 3,114, 11,193,224, 8,172,131,240,255,116, 45,137,
/* 0x0720 */ 192, 80,205,128, 89, 61, 0,240,255,255,114, 1,244,195, 83,141, /* 0x0720 */ 197,141, 65, 1,255,210, 17,201,255,210, 17,201,117, 13,137,193,
/* 0x0730 */ 92, 36, 8,176, 90,232,228,255,255,255, 91,195, 41,192,195,135, /* 0x0730 */ 131,192, 2,255,210, 17,201,255,210,115,248,129,253, 0,243,255,
/* 0x0740 */ 92, 36, 4,139, 76, 36, 8,106,106, 88,205,128,139, 92, 36, 4, /* 0x0740 */ 255, 17,193, 86,141, 52, 47,243,164, 94,235,182, 89, 57,206,116,
/* 0x0750 */ 195, 85,137,229, 83,139, 93, 8,106,122, 88,205,128, 91, 93,195, /* 0x0750 */ 1,244, 93,139,125, 20,139, 85, 16,137,225,137,251,176, 4,232,
/* 0x0760 */ 85,137,229, 83,139, 93, 8,139, 77, 12,255, 53, 39, 0, 0, 0, /* 0x0760 */ 40, 0, 0, 0,137,236,106, 0, 87,106, 18,106, 5,255,117, 16,
/* 0x0770 */ 88,205,128, 91, 93,195, 85,137,229, 87,139, 77, 16,139, 69, 12, /* 0x0770 */ 255,117, 12,232,252,255,255,255,131,196, 24,137,251,176, 6,232,
/* 0x0780 */ 139,125, 8,243,170, 95, 93,195, 85,137,229, 87, 86,139, 77, 16, /* 0x0780 */ 8, 0, 0, 0,139, 69, 12,131,192, 12,255,224, 15,182,192, 80,
/* 0x0790 */ 139,117, 12,139,125, 8,243,164,137,248, 94, 95, 93,195,139, 7, /* 0x0790 */ 205,128, 89, 61, 0,240,255,255,114, 1,244,195, 83,141, 92, 36,
/* 0x07a0 */ 131,199, 4,133,192,117,247,195,204,195,184, 0,240,255,255,195, /* 0x07a0 */ 8,176, 90,232,228,255,255,255, 91,195, 41,192,195,135, 92, 36,
/* 0x07b0 */ 90,232, 23, 0, 0, 0, 0, 0, 0, 0, 0, 46,115,121,109,116, /* 0x07b0 */ 4,139, 76, 36, 8,106,106, 88,205,128,139, 92, 36, 4,195, 85,
/* 0x07c0 */ 97, 98, 0, 46,115,116,114,116, 97, 98, 0, 46,115,104,115,116, /* 0x07c0 */ 137,229, 83,139, 93, 8,106,122, 88,205,128, 91, 93,195, 85,137,
/* 0x07d0 */ 114,116, 97, 98, 0, 46,114,101,108, 72, 85, 77, 70, 95, 65, 0, /* 0x07d0 */ 229, 83,139, 93, 8,139, 77, 12,255, 53, 39, 0, 0, 0, 88,205,
/* 0x07e0 */ 46,114,101,108, 72, 85, 77, 70, 95, 76, 0, 46,114,101,108, 85, /* 0x07e0 */ 128, 91, 93,195, 85,137,229, 87,139, 77, 16,139, 69, 12,139,125,
/* 0x07f0 */ 77, 70, 95, 65, 78, 68, 82, 79, 73, 68, 0, 46,114,101,108, 85, /* 0x07f0 */ 8,243,170, 95, 93,195, 85,137,229, 87, 86,139, 77, 16,139,117,
/* 0x0800 */ 77, 70, 95, 76, 73, 78, 85, 88, 0, 46,114,101,108, 69, 76, 70, /* 0x0800 */ 12,139,125, 8,243,164,137,248, 94, 95, 93,195,139, 7,131,199,
/* 0x0810 */ 77, 65, 73, 78, 88, 0, 46,114,101,108, 69, 76, 70, 77, 65, 73, /* 0x0810 */ 4,133,192,117,247,195,204,195,184, 0,240,255,255,195, 0, 0,
/* 0x0820 */ 78, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0820 */ 90,232, 23, 0, 0, 0, 0, 0, 0, 0, 0, 46,115,121,109,116,
/* 0x0830 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0830 */ 97, 98, 0, 46,115,116,114,116, 97, 98, 0, 46,115,104,115,116,
/* 0x0840 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, /* 0x0840 */ 114,116, 97, 98, 0, 46,114,101,108, 72, 85, 77, 70, 95, 65, 0,
/* 0x0850 */ 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, /* 0x0850 */ 46,114,101,108, 72, 85, 77, 70, 95, 76, 0, 46,114,101,108, 85,
/* 0x0860 */ 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, /* 0x0860 */ 77, 70, 95, 65, 78, 68, 82, 79, 73, 68, 0, 46,114,101,108, 85,
/* 0x0870 */ 0, 0, 0, 0, 27, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, /* 0x0870 */ 77, 70, 95, 76, 73, 78, 85, 88, 0, 46,114,101,108, 69, 76, 70,
/* 0x0880 */ 0, 0, 0, 0,140, 12, 0, 0, 8, 0, 0, 0, 14, 0, 0, 0, /* 0x0880 */ 77, 65, 73, 78, 88, 0, 46,114,101,108, 69, 76, 70, 77, 65, 73,
/* 0x0890 */ 1, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, 42, 0, 0, 0, /* 0x0890 */ 78, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x08a0 */ 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 57, 0, 0, 0, /* 0x08a0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x08b0 */ 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, /* 0x08b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0,
/* 0x08c0 */ 0, 0, 0, 0, 38, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, /* 0x08c0 */ 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0,
/* 0x08d0 */ 0, 0, 0, 0,148, 12, 0, 0, 8, 0, 0, 0, 14, 0, 0, 0, /* 0x08d0 */ 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
/* 0x08e0 */ 3, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, 53, 0, 0, 0, /* 0x08e0 */ 0, 0, 0, 0, 27, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
/* 0x08f0 */ 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, /* 0x08f0 */ 0, 0, 0, 0,252, 12, 0, 0, 8, 0, 0, 0, 14, 0, 0, 0,
/* 0x0900 */ 191, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, /* 0x0900 */ 1, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, 42, 0, 0, 0,
/* 0x0910 */ 0, 0, 0, 0, 49, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, /* 0x0910 */ 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 57, 0, 0, 0,
/* 0x0920 */ 0, 0, 0, 0,156, 12, 0, 0, 80, 0, 0, 0, 14, 0, 0, 0, /* 0x0920 */ 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
/* 0x0930 */ 5, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, 69, 0, 0, 0, /* 0x0930 */ 0, 0, 0, 0, 38, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
/* 0x0940 */ 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, /* 0x0940 */ 0, 0, 0, 0, 4, 13, 0, 0, 8, 0, 0, 0, 14, 0, 0, 0,
/* 0x0950 */ 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, /* 0x0950 */ 3, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, 53, 0, 0, 0,
/* 0x0960 */ 0, 0, 0, 0, 65, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, /* 0x0960 */ 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0,
/* 0x0970 */ 0, 0, 0, 0,236, 12, 0, 0, 16, 0, 0, 0, 14, 0, 0, 0, /* 0x0970 */ 191, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0,
/* 0x0980 */ 7, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, 83, 0, 0, 0, /* 0x0980 */ 0, 0, 0, 0, 49, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
/* 0x0990 */ 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0,176, 5, 0, 0, /* 0x0990 */ 0, 0, 0, 0, 12, 13, 0, 0, 80, 0, 0, 0, 14, 0, 0, 0,
/* 0x09a0 */ 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, /* 0x09a0 */ 5, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, 69, 0, 0, 0,
/* 0x09b0 */ 0, 0, 0, 0, 79, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, /* 0x09b0 */ 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0,
/* 0x09c0 */ 0, 0, 0, 0,252, 12, 0, 0, 24, 0, 0, 0, 14, 0, 0, 0, /* 0x09c0 */ 31, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0,
/* 0x09d0 */ 9, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, 96, 0, 0, 0, /* 0x09d0 */ 0, 0, 0, 0, 65, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
/* 0x09e0 */ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176, 7, 0, 0, /* 0x09e0 */ 0, 0, 0, 0, 92, 13, 0, 0, 16, 0, 0, 0, 14, 0, 0, 0,
/* 0x09f0 */ 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, /* 0x09f0 */ 7, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, 83, 0, 0, 0,
/* 0x0a00 */ 0, 0, 0, 0, 92, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, /* 0x0a00 */ 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 32, 6, 0, 0,
/* 0x0a10 */ 0, 0, 0, 0, 20, 13, 0, 0, 16, 0, 0, 0, 14, 0, 0, 0, /* 0x0a10 */ 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0,
/* 0x0a20 */ 11, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, 17, 0, 0, 0, /* 0x0a20 */ 0, 0, 0, 0, 79, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
/* 0x0a30 */ 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,186, 7, 0, 0, /* 0x0a30 */ 0, 0, 0, 0,108, 13, 0, 0, 24, 0, 0, 0, 14, 0, 0, 0,
/* 0x0a40 */ 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, /* 0x0a40 */ 9, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, 96, 0, 0, 0,
/* 0x0a50 */ 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, /* 0x0a50 */ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 8, 0, 0,
/* 0x0a60 */ 0, 0, 0, 0,164, 10, 0, 0, 80, 1, 0, 0, 15, 0, 0, 0, /* 0x0a60 */ 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
/* 0x0a70 */ 7, 0, 0, 0, 4, 0, 0, 0, 16, 0, 0, 0, 9, 0, 0, 0, /* 0x0a70 */ 0, 0, 0, 0, 92, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
/* 0x0a80 */ 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,244, 11, 0, 0, /* 0x0a80 */ 0, 0, 0, 0,132, 13, 0, 0, 16, 0, 0, 0, 14, 0, 0, 0,
/* 0x0a90 */ 152, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, /* 0x0a90 */ 11, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, 17, 0, 0, 0,
/* 0x0aa0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0aa0 */ 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 8, 0, 0,
/* 0x0ab0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0ab0 */ 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
/* 0x0ac0 */ 3, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0ac0 */ 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
/* 0x0ad0 */ 3, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0ad0 */ 0, 0, 0, 0, 20, 11, 0, 0, 80, 1, 0, 0, 15, 0, 0, 0,
/* 0x0ae0 */ 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0ae0 */ 7, 0, 0, 0, 4, 0, 0, 0, 16, 0, 0, 0, 9, 0, 0, 0,
/* 0x0af0 */ 3, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0af0 */ 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 12, 0, 0,
/* 0x0b00 */ 3, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0b00 */ 152, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
/* 0x0b10 */ 3, 0, 7, 0, 1, 0, 0, 0,250, 1, 0, 0, 0, 0, 0, 0, /* 0x0b10 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0b20 */ 16, 0, 9, 0, 15, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, /* 0x0b20 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0b30 */ 16, 0, 9, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0b30 */ 3, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0b40 */ 16, 0, 0, 0, 39, 0, 0, 0,216, 1, 0, 0, 0, 0, 0, 0, /* 0x0b40 */ 3, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0b50 */ 16, 0, 9, 0, 47, 0, 0, 0, 0, 0, 0, 0, 53, 2, 0, 0, /* 0x0b50 */ 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0b60 */ 18, 0, 5, 0, 71, 0, 0, 0,126, 1, 0, 0, 0, 0, 0, 0, /* 0x0b60 */ 3, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0b70 */ 16, 0, 9, 0, 76, 0, 0, 0, 0, 0, 0, 0,175, 0, 0, 0, /* 0x0b70 */ 3, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0b80 */ 18, 0, 7, 0, 98, 0, 0, 0,161, 1, 0, 0, 0, 0, 0, 0, /* 0x0b80 */ 3, 0, 7, 0, 1, 0, 0, 0,248, 1, 0, 0, 0, 0, 0, 0,
/* 0x0b90 */ 16, 0, 9, 0,104, 0, 0, 0,140, 1, 0, 0, 0, 0, 0, 0, /* 0x0b90 */ 16, 0, 9, 0, 15, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0,
/* 0x0ba0 */ 16, 0, 9, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0ba0 */ 16, 0, 9, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0bb0 */ 16, 0, 9, 0,126, 0, 0, 0,198, 1, 0, 0, 0, 0, 0, 0, /* 0x0bb0 */ 16, 0, 0, 0, 39, 0, 0, 0,214, 1, 0, 0, 0, 0, 0, 0,
/* 0x0bc0 */ 16, 0, 9, 0,133, 0, 0, 0,248, 1, 0, 0, 0, 0, 0, 0, /* 0x0bc0 */ 16, 0, 9, 0, 47, 0, 0, 0, 0, 0, 0, 0, 53, 2, 0, 0,
/* 0x0bd0 */ 16, 0, 9, 0,141, 0, 0, 0,143, 1, 0, 0, 0, 0, 0, 0, /* 0x0bd0 */ 18, 0, 5, 0, 71, 0, 0, 0,124, 1, 0, 0, 0, 0, 0, 0,
/* 0x0be0 */ 16, 0, 9, 0,146, 0, 0, 0,176, 1, 0, 0, 0, 0, 0, 0, /* 0x0be0 */ 16, 0, 9, 0, 76, 0, 0, 0, 0, 0, 0, 0, 31, 1, 0, 0,
/* 0x0bf0 */ 16, 0, 9, 0, 0,103,101,116, 95,112, 97,103,101, 95,109, 97, /* 0x0bf0 */ 18, 0, 7, 0, 98, 0, 0, 0,159, 1, 0, 0, 0, 0, 0, 0,
/* 0x0c00 */ 115,107, 0,117,112,120, 95,109,109, 97,112, 95, 97,110,100, 95, /* 0x0c00 */ 16, 0, 9, 0,104, 0, 0, 0,138, 1, 0, 0, 0, 0, 0, 0,
/* 0x0c10 */ 102,100, 0, 79, 95, 66, 73, 78, 70, 79, 0,109,101,109,112, 99, /* 0x0c10 */ 16, 0, 9, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0c20 */ 112,121, 0,117,112,120, 95,109,109, 97,112, 95, 97,110,100, 95, /* 0x0c20 */ 16, 0, 9, 0,126, 0, 0, 0,196, 1, 0, 0, 0, 0, 0, 0,
/* 0x0c30 */ 102,100, 95, 97,110,100,114,111,105,100, 0,109,109, 97,112, 0, /* 0x0c30 */ 16, 0, 9, 0,133, 0, 0, 0,246, 1, 0, 0, 0, 0, 0, 0,
/* 0x0c40 */ 117,112,120, 95,109,109, 97,112, 95, 97,110,100, 95,102,100, 95, /* 0x0c40 */ 16, 0, 9, 0,141, 0, 0, 0,141, 1, 0, 0, 0, 0, 0, 0,
/* 0x0c50 */ 108,105,110,117,120, 0,117,110, 97,109,101, 0,103,101,116, 95, /* 0x0c50 */ 16, 0, 9, 0,146, 0, 0, 0,174, 1, 0, 0, 0, 0, 0, 0,
/* 0x0c60 */ 117,112,120,102,110, 95,112, 97,116,104, 0, 95,115,116, 97,114, /* 0x0c60 */ 16, 0, 9, 0, 0,103,101,116, 95,112, 97,103,101, 95,109, 97,
/* 0x0c70 */ 116, 0,109,101,109,115,101,116, 0,109,121, 95, 98,107,112,116, /* 0x0c70 */ 115,107, 0,117,112,120, 95,109,109, 97,112, 95, 97,110,100, 95,
/* 0x0c80 */ 0,115,116, 97,116, 0,109,107,100,105,114, 0, 1, 0, 0, 0, /* 0x0c80 */ 102,100, 0, 79, 95, 66, 73, 78, 70, 79, 0,109,101,109,112, 99,
/* 0x0c90 */ 2, 11, 0, 0, 1, 0, 0, 0, 2, 13, 0, 0,124, 0, 0, 0, /* 0x0c90 */ 112,121, 0,117,112,120, 95,109,109, 97,112, 95, 97,110,100, 95,
/* 0x0ca0 */ 2, 18, 0, 0,241, 0, 0, 0, 2, 15, 0, 0,111, 1, 0, 0, /* 0x0ca0 */ 102,100, 95, 97,110,100,114,111,105,100, 0,109,109, 97,112, 0,
/* 0x0cb0 */ 2, 7, 0, 0,224, 1, 0, 0, 2, 7, 0, 0, 18, 2, 0, 0, /* 0x0cb0 */ 117,112,120, 95,109,109, 97,112, 95, 97,110,100, 95,102,100, 95,
/* 0x0cc0 */ 2, 12, 0, 0, 73, 2, 0, 0, 2, 17, 0, 0,152, 2, 0, 0, /* 0x0cc0 */ 108,105,110,117,120, 0,117,110, 97,109,101, 0,103,101,116, 95,
/* 0x0cd0 */ 2, 18, 0, 0, 94, 3, 0, 0, 2, 18, 0, 0,146, 3, 0, 0, /* 0x0cd0 */ 117,112,120,102,110, 95,112, 97,116,104, 0, 95,115,116, 97,114,
/* 0x0ce0 */ 2, 10, 0, 0,238, 3, 0, 0, 2, 10, 0, 0,141, 0, 0, 0, /* 0x0ce0 */ 116, 0,109,101,109,115,101,116, 0,109,121, 95, 98,107,112,116,
/* 0x0cf0 */ 2, 12, 0, 0,148, 0, 0, 0, 2, 7, 0, 0, 5, 0, 0, 0, /* 0x0cf0 */ 0,115,116, 97,116, 0,109,107,100,105,114, 0, 1, 0, 0, 0,
/* 0x0d00 */ 2, 2, 0, 0,169, 0, 0, 0, 2, 8, 0, 0, 86, 1, 0, 0, /* 0x0d00 */ 2, 11, 0, 0, 1, 0, 0, 0, 2, 13, 0, 0,124, 0, 0, 0,
/* 0x0d10 */ 2, 12, 0, 0, 2, 0, 0, 0, 2, 1, 0, 0, 6, 0, 0, 0, /* 0x0d10 */ 2, 18, 0, 0,241, 0, 0, 0, 2, 15, 0, 0,111, 1, 0, 0,
/* 0x0d20 */ 1, 9, 0, 0,102,105,108,101, 32,102,111,114,109, 97,116, 32, /* 0x0d20 */ 2, 7, 0, 0,224, 1, 0, 0, 2, 7, 0, 0, 18, 2, 0, 0,
/* 0x0d30 */ 101,108,102, 51, 50, 45,105, 51, 56, 54, 10, 10, 83,101, 99,116, /* 0x0d30 */ 2, 12, 0, 0, 73, 2, 0, 0, 2, 17, 0, 0,152, 2, 0, 0,
/* 0x0d40 */ 105,111,110,115, 58, 10, 73,100,120, 32, 78, 97,109,101, 32, 32, /* 0x0d40 */ 2, 18, 0, 0, 94, 3, 0, 0, 2, 18, 0, 0,146, 3, 0, 0,
/* 0x0d50 */ 32, 32, 32, 32, 32, 32, 32, 32, 83,105,122,101, 32, 32, 32, 32, /* 0x0d50 */ 2, 10, 0, 0,238, 3, 0, 0, 2, 10, 0, 0,253, 0, 0, 0,
/* 0x0d60 */ 32, 32, 86, 77, 65, 32, 32, 32, 32, 32, 32, 32, 76, 77, 65, 32, /* 0x0d60 */ 2, 12, 0, 0, 4, 1, 0, 0, 2, 7, 0, 0, 5, 0, 0, 0,
/* 0x0d70 */ 32, 32, 32, 32, 32, 32, 70,105,108,101, 32,111,102,102, 32, 32, /* 0x0d70 */ 2, 2, 0, 0,169, 0, 0, 0, 2, 8, 0, 0, 84, 1, 0, 0,
/* 0x0d80 */ 65,108,103,110, 32, 32, 70,108, 97,103,115, 10, 32, 32, 48, 32, /* 0x0d80 */ 2, 12, 0, 0, 2, 0, 0, 0, 2, 1, 0, 0, 6, 0, 0, 0,
/* 0x0d90 */ 72, 85, 77, 70, 95, 65, 32, 32, 32, 32, 32, 32, 32, 32, 48, 53, /* 0x0d90 */ 1, 9, 0, 0,102,105,108,101, 32,102,111,114,109, 97,116, 32,
/* 0x0da0 */ 32, 32, 48, 32, 32, 48, 32, 32, 48, 51, 52, 32, 32, 50, 42, 42, /* 0x0da0 */ 101,108,102, 51, 50, 45,105, 51, 56, 54, 10, 10, 83,101, 99,116,
/* 0x0db0 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 49, 32, /* 0x0db0 */ 105,111,110,115, 58, 10, 73,100,120, 32, 78, 97,109,101, 32, 32,
/* 0x0dc0 */ 72, 85, 77, 70, 95, 76, 32, 32, 32, 32, 32, 32, 32, 32, 48, 53, /* 0x0dc0 */ 32, 32, 32, 32, 32, 32, 32, 32, 83,105,122,101, 32, 32, 32, 32,
/* 0x0dd0 */ 32, 32, 48, 32, 32, 48, 32, 32, 48, 51, 57, 32, 32, 50, 42, 42, /* 0x0dd0 */ 32, 32, 86, 77, 65, 32, 32, 32, 32, 32, 32, 32, 76, 77, 65, 32,
/* 0x0de0 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 50, 32, /* 0x0de0 */ 32, 32, 32, 32, 32, 32, 70,105,108,101, 32,111,102,102, 32, 32,
/* 0x0df0 */ 85, 77, 70, 95, 65, 78, 68, 82, 79, 73, 68, 32, 32, 32, 48, 52, /* 0x0df0 */ 65,108,103,110, 32, 32, 70,108, 97,103,115, 10, 32, 32, 48, 32,
/* 0x0e00 */ 98,102, 32, 32, 48, 32, 32, 48, 32, 32, 48, 52, 48, 32, 32, 50, /* 0x0e00 */ 72, 85, 77, 70, 95, 65, 32, 32, 32, 32, 32, 32, 32, 32, 48, 53,
/* 0x0e10 */ 42, 42, 50, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, /* 0x0e10 */ 32, 32, 48, 32, 32, 48, 32, 32, 48, 51, 52, 32, 32, 50, 42, 42,
/* 0x0e20 */ 51, 32, 85, 77, 70, 95, 76, 73, 78, 85, 88, 32, 32, 32, 32, 32, /* 0x0e20 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 49, 32,
/* 0x0e30 */ 48, 97,102, 32, 32, 48, 32, 32, 48, 32, 32, 48, 53, 48, 48, 32, /* 0x0e30 */ 72, 85, 77, 70, 95, 76, 32, 32, 32, 32, 32, 32, 32, 32, 48, 53,
/* 0x0e40 */ 32, 50, 42, 42, 50, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, /* 0x0e40 */ 32, 32, 48, 32, 32, 48, 32, 32, 48, 51, 57, 32, 32, 50, 42, 42,
/* 0x0e50 */ 32, 32, 52, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 32, 32, 32, /* 0x0e50 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 50, 32,
/* 0x0e60 */ 32, 32, 48, 50, 48, 48, 32, 32, 48, 32, 32, 48, 32, 32, 48, 53, /* 0x0e60 */ 85, 77, 70, 95, 65, 78, 68, 82, 79, 73, 68, 32, 32, 32, 48, 52,
/* 0x0e70 */ 98, 48, 32, 32, 50, 42, 42, 50, 32, 32, 67, 79, 78, 84, 69, 78, /* 0x0e70 */ 98,102, 32, 32, 48, 32, 32, 48, 32, 32, 48, 52, 48, 32, 32, 50,
/* 0x0e80 */ 84, 83, 10, 32, 32, 53, 32, 69, 76, 70, 77, 65, 73, 78, 90, 32, /* 0x0e80 */ 42, 42, 50, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32,
/* 0x0e90 */ 32, 32, 32, 32, 32, 48, 97, 32, 32, 48, 32, 32, 48, 32, 32, 48, /* 0x0e90 */ 51, 32, 85, 77, 70, 95, 76, 73, 78, 85, 88, 32, 32, 32, 32, 32,
/* 0x0ea0 */ 55, 98, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, /* 0x0ea0 */ 48, 49, 49,102, 32, 32, 48, 32, 32, 48, 32, 32, 48, 53, 48, 48,
/* 0x0eb0 */ 78, 84, 83, 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, 66, 76, 69, /* 0x0eb0 */ 32, 32, 50, 42, 42, 50, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83,
/* 0x0ec0 */ 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, /* 0x0ec0 */ 10, 32, 32, 52, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 32, 32,
/* 0x0ed0 */ 100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 32, 69, 76, /* 0x0ed0 */ 32, 32, 32, 48, 50, 48, 48, 32, 32, 48, 32, 32, 48, 32, 32, 48,
/* 0x0ee0 */ 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x0ee0 */ 54, 50, 48, 32, 32, 50, 42, 42, 50, 32, 32, 67, 79, 78, 84, 69,
/* 0x0ef0 */ 108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, /* 0x0ef0 */ 78, 84, 83, 10, 32, 32, 53, 32, 69, 76, 70, 77, 65, 73, 78, 90,
/* 0x0f00 */ 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, /* 0x0f00 */ 32, 32, 32, 32, 32, 32, 48, 97, 32, 32, 48, 32, 32, 48, 32, 32,
/* 0x0f10 */ 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 72, 85, 77, /* 0x0f10 */ 48, 56, 50, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84,
/* 0x0f20 */ 70, 95, 65, 32, 48, 32, 72, 85, 77, 70, 95, 65, 10, 48, 48, 48, /* 0x0f20 */ 69, 78, 84, 83, 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, 66, 76,
/* 0x0f30 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 72, 85, /* 0x0f30 */ 69, 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32,
/* 0x0f40 */ 77, 70, 95, 76, 32, 48, 32, 72, 85, 77, 70, 95, 76, 10, 48, 48, /* 0x0f40 */ 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 32, 69,
/* 0x0f50 */ 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 85, /* 0x0f50 */ 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x0f60 */ 77, 70, 95, 65, 78, 68, 82, 79, 73, 68, 32, 48, 32, 85, 77, 70, /* 0x0f60 */ 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78,
/* 0x0f70 */ 95, 65, 78, 68, 82, 79, 73, 68, 10, 48, 48, 48, 48, 48, 48, 48, /* 0x0f70 */ 90, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, 48,
/* 0x0f80 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 85, 77, 70, 95, 76, 73, /* 0x0f80 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 72, 85,
/* 0x0f90 */ 78, 85, 88, 32, 48, 32, 85, 77, 70, 95, 76, 73, 78, 85, 88, 10, /* 0x0f90 */ 77, 70, 95, 65, 32, 48, 32, 72, 85, 77, 70, 95, 65, 10, 48, 48,
/* 0x0fa0 */ 48, 48, 48, 48, 48, 49,102, 97, 32,103, 32, 32, 32, 32, 32, 32, /* 0x0fa0 */ 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 72,
/* 0x0fb0 */ 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 32,103,101,116, 95, /* 0x0fb0 */ 85, 77, 70, 95, 76, 32, 48, 32, 72, 85, 77, 70, 95, 76, 10, 48,
/* 0x0fc0 */ 112, 97,103,101, 95,109, 97,115,107, 10, 48, 48, 48, 48, 48, 50, /* 0x0fc0 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,
/* 0x0fd0 */ 48, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, /* 0x0fd0 */ 85, 77, 70, 95, 65, 78, 68, 82, 79, 73, 68, 32, 48, 32, 85, 77,
/* 0x0fe0 */ 73, 78, 88, 32, 48, 32,117,112,120, 95,109,109, 97,112, 95, 97, /* 0x0fe0 */ 70, 95, 65, 78, 68, 82, 79, 73, 68, 10, 48, 48, 48, 48, 48, 48,
/* 0x0ff0 */ 110,100, 95,102,100, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, /* 0x0ff0 */ 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 85, 77, 70, 95, 76,
/* 0x1000 */ 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 32, 48, 32, 79, /* 0x1000 */ 73, 78, 85, 88, 32, 48, 32, 85, 77, 70, 95, 76, 73, 78, 85, 88,
/* 0x1010 */ 95, 66, 73, 78, 70, 79, 10, 48, 48, 48, 48, 48, 49,100, 56, 32, /* 0x1010 */ 10, 48, 48, 48, 48, 48, 49,102, 56, 32,103, 32, 32, 32, 32, 32,
/* 0x1020 */ 103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, /* 0x1020 */ 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 32,103,101,116,
/* 0x1030 */ 32, 48, 32,109,101,109,112, 99,112,121, 10, 48, 48, 48, 48, 48, /* 0x1030 */ 95,112, 97,103,101, 95,109, 97,115,107, 10, 48, 48, 48, 48, 48,
/* 0x1040 */ 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 70, 32, 85, 77, 70, 95, /* 0x1040 */ 50, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77,
/* 0x1050 */ 65, 78, 68, 82, 79, 73, 68, 32, 48, 50, 51, 53, 32,117,112,120, /* 0x1050 */ 65, 73, 78, 88, 32, 48, 32,117,112,120, 95,109,109, 97,112, 95,
/* 0x1060 */ 95,109,109, 97,112, 95, 97,110,100, 95,102,100, 95, 97,110,100, /* 0x1060 */ 97,110,100, 95,102,100, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x1070 */ 114,111,105,100, 10, 48, 48, 48, 48, 48, 49, 55,101, 32,103, 32, /* 0x1070 */ 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 32, 48, 32,
/* 0x1080 */ 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, /* 0x1080 */ 79, 95, 66, 73, 78, 70, 79, 10, 48, 48, 48, 48, 48, 49,100, 54,
/* 0x1090 */ 32,109,109, 97,112, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, /* 0x1090 */ 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78,
/* 0x10a0 */ 32, 32, 32, 32, 32, 70, 32, 85, 77, 70, 95, 76, 73, 78, 85, 88, /* 0x10a0 */ 88, 32, 48, 32,109,101,109,112, 99,112,121, 10, 48, 48, 48, 48,
/* 0x10b0 */ 32, 48, 97,102, 32,117,112,120, 95,109,109, 97,112, 95, 97,110, /* 0x10b0 */ 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 70, 32, 85, 77, 70,
/* 0x10c0 */ 100, 95,102,100, 95,108,105,110,117,120, 10, 48, 48, 48, 48, 48, /* 0x10c0 */ 95, 65, 78, 68, 82, 79, 73, 68, 32, 48, 50, 51, 53, 32,117,112,
/* 0x10d0 */ 49, 97, 49, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, /* 0x10d0 */ 120, 95,109,109, 97,112, 95, 97,110,100, 95,102,100, 95, 97,110,
/* 0x10e0 */ 65, 73, 78, 88, 32, 48, 32,117,110, 97,109,101, 10, 48, 48, 48, /* 0x10e0 */ 100,114,111,105,100, 10, 48, 48, 48, 48, 48, 49, 55, 99, 32,103,
/* 0x10f0 */ 48, 48, 49, 56, 99, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76, /* 0x10f0 */ 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32,
/* 0x1100 */ 70, 77, 65, 73, 78, 88, 32, 48, 32,103,101,116, 95,117,112,120, /* 0x1100 */ 48, 32,109,109, 97,112, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x1110 */ 102,110, 95,112, 97,116,104, 10, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1110 */ 103, 32, 32, 32, 32, 32, 70, 32, 85, 77, 70, 95, 76, 73, 78, 85,
/* 0x1120 */ 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, /* 0x1120 */ 88, 32, 48, 49, 49,102, 32,117,112,120, 95,109,109, 97,112, 95,
/* 0x1130 */ 88, 32, 48, 32, 95,115,116, 97,114,116, 10, 48, 48, 48, 48, 48, /* 0x1130 */ 97,110,100, 95,102,100, 95,108,105,110,117,120, 10, 48, 48, 48,
/* 0x1140 */ 49, 99, 54, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, /* 0x1140 */ 48, 48, 49, 57,102, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76,
/* 0x1150 */ 65, 73, 78, 88, 32, 48, 32,109,101,109,115,101,116, 10, 48, 48, /* 0x1150 */ 70, 77, 65, 73, 78, 88, 32, 48, 32,117,110, 97,109,101, 10, 48,
/* 0x1160 */ 48, 48, 48, 49,102, 56, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, /* 0x1160 */ 48, 48, 48, 48, 49, 56, 97, 32,103, 32, 32, 32, 32, 32, 32, 32,
/* 0x1170 */ 76, 70, 77, 65, 73, 78, 88, 32, 48, 32,109,121, 95, 98,107,112, /* 0x1170 */ 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 32,103,101,116, 95,117,
/* 0x1180 */ 116, 10, 48, 48, 48, 48, 48, 49, 56,102, 32,103, 32, 32, 32, 32, /* 0x1180 */ 112,120,102,110, 95,112, 97,116,104, 10, 48, 48, 48, 48, 48, 48,
/* 0x1190 */ 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 32,115,116, /* 0x1190 */ 48, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65,
/* 0x11a0 */ 97,116, 10, 48, 48, 48, 48, 48, 49, 98, 48, 32,103, 32, 32, 32, /* 0x11a0 */ 73, 78, 88, 32, 48, 32, 95,115,116, 97,114,116, 10, 48, 48, 48,
/* 0x11b0 */ 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 32,109, /* 0x11b0 */ 48, 48, 49, 99, 52, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76,
/* 0x11c0 */ 107,100,105,114, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, /* 0x11c0 */ 70, 77, 65, 73, 78, 88, 32, 48, 32,109,101,109,115,101,116, 10,
/* 0x11d0 */ 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 72, 85, /* 0x11d0 */ 48, 48, 48, 48, 48, 49,102, 54, 32,103, 32, 32, 32, 32, 32, 32,
/* 0x11e0 */ 77, 70, 95, 65, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, /* 0x11e0 */ 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 32,109,121, 95, 98,
/* 0x11f0 */ 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x11f0 */ 107,112,116, 10, 48, 48, 48, 48, 48, 49, 56,100, 32,103, 32, 32,
/* 0x1200 */ 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 49, /* 0x1200 */ 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 32,
/* 0x1210 */ 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, /* 0x1210 */ 115,116, 97,116, 10, 48, 48, 48, 48, 48, 49, 97,101, 32,103, 32,
/* 0x1220 */ 32, 32, 32,117,112,120, 95,109,109, 97,112, 95, 97,110,100, 95, /* 0x1220 */ 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48,
/* 0x1230 */ 102,100, 95, 97,110,100,114,111,105,100, 10, 10, 82, 69, 76, 79, /* 0x1230 */ 32,109,107,100,105,114, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73,
/* 0x1240 */ 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, /* 0x1240 */ 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91,
/* 0x1250 */ 79, 82, 32, 91, 72, 85, 77, 70, 95, 76, 93, 58, 10, 79, 70, 70, /* 0x1250 */ 72, 85, 77, 70, 95, 65, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32,
/* 0x1260 */ 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, /* 0x1260 */ 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x1270 */ 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, /* 0x1270 */ 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48,
/* 0x1280 */ 48, 48, 48, 48, 48, 49, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, /* 0x1280 */ 48, 49, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32,
/* 0x1290 */ 50, 32, 32, 32, 32, 32, 32, 32, 32,117,112,120, 95,109,109, 97, /* 0x1290 */ 32, 32, 32, 32, 32,117,112,120, 95,109,109, 97,112, 95, 97,110,
/* 0x12a0 */ 112, 95, 97,110,100, 95,102,100, 95,108,105,110,117,120, 10, 10, /* 0x12a0 */ 100, 95,102,100, 95, 97,110,100,114,111,105,100, 10, 10, 82, 69,
/* 0x12b0 */ 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, /* 0x12b0 */ 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83,
/* 0x12c0 */ 68, 83, 32, 70, 79, 82, 32, 91, 85, 77, 70, 95, 65, 78, 68, 82, /* 0x12c0 */ 32, 70, 79, 82, 32, 91, 72, 85, 77, 70, 95, 76, 93, 58, 10, 79,
/* 0x12d0 */ 79, 73, 68, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, /* 0x12d0 */ 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32,
/* 0x12e0 */ 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x12e0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10,
/* 0x12f0 */ 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 55, 99, 32, /* 0x12f0 */ 48, 48, 48, 48, 48, 48, 48, 49, 32, 82, 95, 51, 56, 54, 95, 80,
/* 0x1300 */ 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 32, /* 0x1300 */ 67, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32,117,112,120, 95,109,
/* 0x1310 */ 32, 32,109,121, 95, 98,107,112,116, 10, 48, 48, 48, 48, 48, 48, /* 0x1310 */ 109, 97,112, 95, 97,110,100, 95,102,100, 95,108,105,110,117,120,
/* 0x1320 */ 102, 49, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, /* 0x1320 */ 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67,
/* 0x1330 */ 32, 32, 32, 32, 32,103,101,116, 95,117,112,120,102,110, 95,112, /* 0x1330 */ 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 85, 77, 70, 95, 65, 78,
/* 0x1340 */ 97,116,104, 10, 48, 48, 48, 48, 48, 49, 54,102, 32, 82, 95, 51, /* 0x1340 */ 68, 82, 79, 73, 68, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32,
/* 0x1350 */ 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32,103, /* 0x1350 */ 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x1360 */ 101,116, 95,112, 97,103,101, 95,109, 97,115,107, 10, 48, 48, 48, /* 0x1360 */ 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 55,
/* 0x1370 */ 48, 48, 49,101, 48, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, /* 0x1370 */ 99, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, 32,
/* 0x1380 */ 32, 32, 32, 32, 32, 32, 32, 32,103,101,116, 95,112, 97,103,101, /* 0x1380 */ 32, 32, 32, 32,109,121, 95, 98,107,112,116, 10, 48, 48, 48, 48,
/* 0x1390 */ 95,109, 97,115,107, 10, 48, 48, 48, 48, 48, 50, 49, 50, 32, 82, /* 0x1390 */ 48, 48,102, 49, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32,
/* 0x13a0 */ 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 32, 32, /* 0x13a0 */ 32, 32, 32, 32, 32, 32, 32,103,101,116, 95,117,112,120,102,110,
/* 0x13b0 */ 32,109,109, 97,112, 10, 48, 48, 48, 48, 48, 50, 52, 57, 32, 82, /* 0x13b0 */ 95,112, 97,116,104, 10, 48, 48, 48, 48, 48, 49, 54,102, 32, 82,
/* 0x13c0 */ 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 32, 32, /* 0x13c0 */ 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 32, 32,
/* 0x13d0 */ 32,109,101,109,115,101,116, 10, 48, 48, 48, 48, 48, 50, 57, 56, /* 0x13d0 */ 32,103,101,116, 95,112, 97,103,101, 95,109, 97,115,107, 10, 48,
/* 0x13e0 */ 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, /* 0x13e0 */ 48, 48, 48, 48, 49,101, 48, 32, 82, 95, 51, 56, 54, 95, 80, 67,
/* 0x13f0 */ 32, 32, 32,109,121, 95, 98,107,112,116, 10, 48, 48, 48, 48, 48, /* 0x13f0 */ 51, 50, 32, 32, 32, 32, 32, 32, 32, 32,103,101,116, 95,112, 97,
/* 0x1400 */ 51, 53,101, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, /* 0x1400 */ 103,101, 95,109, 97,115,107, 10, 48, 48, 48, 48, 48, 50, 49, 50,
/* 0x1410 */ 32, 32, 32, 32, 32, 32,109,121, 95, 98,107,112,116, 10, 48, 48, /* 0x1410 */ 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32,
/* 0x1420 */ 48, 48, 48, 51, 57, 50, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, /* 0x1420 */ 32, 32, 32,109,109, 97,112, 10, 48, 48, 48, 48, 48, 50, 52, 57,
/* 0x1430 */ 50, 32, 32, 32, 32, 32, 32, 32, 32,109,101,109,112, 99,112,121, /* 0x1430 */ 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32,
/* 0x1440 */ 10, 48, 48, 48, 48, 48, 51,101,101, 32, 82, 95, 51, 56, 54, 95, /* 0x1440 */ 32, 32, 32,109,101,109,115,101,116, 10, 48, 48, 48, 48, 48, 50,
/* 0x1450 */ 80, 67, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32,109,101,109,112, /* 0x1450 */ 57, 56, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32,
/* 0x1460 */ 99,112,121, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, /* 0x1460 */ 32, 32, 32, 32, 32,109,121, 95, 98,107,112,116, 10, 48, 48, 48,
/* 0x1470 */ 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 85, 77, 70, /* 0x1470 */ 48, 48, 51, 53,101, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50,
/* 0x1480 */ 95, 76, 73, 78, 85, 88, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, /* 0x1480 */ 32, 32, 32, 32, 32, 32, 32, 32,109,121, 95, 98,107,112,116, 10,
/* 0x1490 */ 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x1490 */ 48, 48, 48, 48, 48, 51, 57, 50, 32, 82, 95, 51, 56, 54, 95, 80,
/* 0x14a0 */ 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, /* 0x14a0 */ 67, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32,109,101,109,112, 99,
/* 0x14b0 */ 56,100, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, /* 0x14b0 */ 112,121, 10, 48, 48, 48, 48, 48, 51,101,101, 32, 82, 95, 51, 56,
/* 0x14c0 */ 32, 32, 32, 32, 32,109,109, 97,112, 10, 48, 48, 48, 48, 48, 48, /* 0x14c0 */ 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32,109,101,
/* 0x14d0 */ 57, 52, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, /* 0x14d0 */ 109,112, 99,112,121, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79,
/* 0x14e0 */ 32, 32, 32, 32, 32,103,101,116, 95,112, 97,103,101, 95,109, 97, /* 0x14e0 */ 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 85,
/* 0x14f0 */ 115,107, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, /* 0x14f0 */ 77, 70, 95, 76, 73, 78, 85, 88, 93, 58, 10, 79, 70, 70, 83, 69,
/* 0x1500 */ 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, /* 0x1500 */ 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x1510 */ 65, 73, 78, 88, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, /* 0x1510 */ 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48,
/* 0x1520 */ 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x1520 */ 48, 48,102,100, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32,
/* 0x1530 */ 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 53, /* 0x1530 */ 32, 32, 32, 32, 32, 32, 32,109,109, 97,112, 10, 48, 48, 48, 48,
/* 0x1540 */ 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, /* 0x1540 */ 48, 49, 48, 52, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32,
/* 0x1550 */ 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, /* 0x1550 */ 32, 32, 32, 32, 32, 32, 32,103,101,116, 95,112, 97,103,101, 95,
/* 0x1560 */ 48, 48, 97, 57, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, /* 0x1560 */ 109, 97,115,107, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78,
/* 0x1570 */ 32, 32, 32, 32, 32, 32, 32,117,112,120, 95,109,109, 97,112, 95, /* 0x1570 */ 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76,
/* 0x1580 */ 97,110,100, 95,102,100, 10, 48, 48, 48, 48, 48, 49, 53, 54, 32, /* 0x1580 */ 70, 77, 65, 73, 78, 88, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32,
/* 0x1590 */ 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 32, /* 0x1590 */ 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x15a0 */ 32, 32,109,109, 97,112, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, /* 0x15a0 */ 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48,
/* 0x15b0 */ 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, /* 0x15b0 */ 48, 53, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32,
/* 0x15c0 */ 69, 76, 70, 77, 65, 73, 78, 90, 93, 58, 10, 79, 70, 70, 83, 69, /* 0x15c0 */ 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, 48,
/* 0x15d0 */ 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x15d0 */ 48, 48, 48, 48, 97, 57, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51,
/* 0x15e0 */ 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, /* 0x15e0 */ 50, 32, 32, 32, 32, 32, 32, 32, 32,117,112,120, 95,109,109, 97,
/* 0x15f0 */ 48, 48, 48, 50, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, /* 0x15f0 */ 112, 95, 97,110,100, 95,102,100, 10, 48, 48, 48, 48, 48, 49, 53,
/* 0x1600 */ 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, /* 0x1600 */ 52, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, 32,
/* 0x1610 */ 48, 48, 48, 48, 48, 48, 48, 54, 32, 82, 95, 51, 56, 54, 95, 51, /* 0x1610 */ 32, 32, 32, 32,109,109, 97,112, 10, 10, 82, 69, 76, 79, 67, 65,
/* 0x1620 */ 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 79, 95, 66, 73, 78, /* 0x1620 */ 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82,
/* 0x1630 */ 70, 79, 10 /* 0x1630 */ 32, 91, 69, 76, 70, 77, 65, 73, 78, 90, 93, 58, 10, 79, 70, 70,
/* 0x1640 */ 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32,
/* 0x1650 */ 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48,
/* 0x1660 */ 48, 48, 48, 48, 48, 50, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51,
/* 0x1670 */ 50, 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78,
/* 0x1680 */ 88, 10, 48, 48, 48, 48, 48, 48, 48, 54, 32, 82, 95, 51, 56, 54,
/* 0x1690 */ 95, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 79, 95, 66,
/* 0x16a0 */ 73, 78, 70, 79, 10
}; };
+1136 -1125
View File
File diff suppressed because it is too large Load Diff
+272 -265
View File
@@ -1,5 +1,5 @@
/* i386-linux.elf-so_entry.h /* i386-linux.elf-so_entry.h
created from i386-linux.elf-so_entry.bin, 5461 (0x1555) bytes created from i386-linux.elf-so_entry.bin, 5575 (0x15c7) bytes
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
@@ -32,14 +32,14 @@
/* clang-format off */ /* clang-format off */
#define STUB_I386_LINUX_ELF_SO_ENTRY_SIZE 5461 #define STUB_I386_LINUX_ELF_SO_ENTRY_SIZE 5575
#define STUB_I386_LINUX_ELF_SO_ENTRY_ADLER32 0x8c26e90f #define STUB_I386_LINUX_ELF_SO_ENTRY_ADLER32 0xcd9b0983
#define STUB_I386_LINUX_ELF_SO_ENTRY_CRC32 0x4d59693c #define STUB_I386_LINUX_ELF_SO_ENTRY_CRC32 0x2f7643c5
unsigned char stub_i386_linux_elf_so_entry[5461] = { unsigned char stub_i386_linux_elf_so_entry[5575] = {
/* 0x0000 */ 127, 69, 76, 70, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0000 */ 127, 69, 76, 70, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0010 */ 1, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0010 */ 1, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0020 */ 80, 8, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, 0, /* 0x0020 */ 192, 8, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, 0,
/* 0x0030 */ 16, 0, 13, 0,233,252,255,255,255,233,252,255,255,255, 0, 0, /* 0x0030 */ 16, 0, 13, 0,233,252,255,255,255,233,252,255,255,255, 0, 0,
/* 0x0040 */ 85,137,229, 87, 86, 83,129,236, 68, 16, 0, 0,186, 0, 0, 0, /* 0x0040 */ 85,137,229, 87, 86, 83,129,236, 68, 16, 0, 0,186, 0, 0, 0,
/* 0x0050 */ 0,232, 4, 0, 0, 0,117,112,120, 0, 95,185, 16, 0, 0, 0, /* 0x0050 */ 0,232, 4, 0, 0, 0,117,112,120, 0, 95,185, 16, 0, 0, 0,
@@ -117,266 +117,273 @@ unsigned char stub_i386_linux_elf_so_entry[5461] = {
/* 0x04d0 */ 76, 36, 20, 73,131,249,255,116, 30,138, 22,131,202, 32, 15,190, /* 0x04d0 */ 76, 36, 20, 73,131,249,255,116, 30,138, 22,131,202, 32, 15,190,
/* 0x04e0 */ 210,138, 3,131,200, 32, 15,190,192, 67, 70, 41,194,137,208,117, /* 0x04e0 */ 210,138, 3,131,200, 32, 15,190,192, 67, 70, 41,194,137,208,117,
/* 0x04f0 */ 11, 73,131,249,255,117,226,184, 0, 0, 0, 0, 91, 94,195, 0, /* 0x04f0 */ 11, 73,131,249,255,117,226,184, 0, 0, 0, 0, 91, 94,195, 0,
/* 0x0500 */ 85,137,229, 87, 86, 83,131,236, 20,139,125, 12,232, 4, 0, 0, /* 0x0500 */ 85,137,229, 87, 86, 83,131,236, 24,139,125, 12,232, 4, 0, 0,
/* 0x0510 */ 0,117,112,120, 0, 90,185, 16, 0, 0, 0,184,100, 1, 0, 0, /* 0x0510 */ 0,117,112,120, 0, 90,185, 16, 0, 0, 0,184,100, 1, 0, 0,
/* 0x0520 */ 137,211,205,128,137,198,131,248,234,117, 16,185, 0, 0, 0, 0, /* 0x0520 */ 137,211,205,128,137,198,131,248,234,117, 16,185, 0, 0, 0, 0,
/* 0x0530 */ 184,100, 1, 0, 0,137,211,205,128,137,198,133,246,121, 40,232, /* 0x0530 */ 184,100, 1, 0, 0,137,211,205,128,137,198,133,246, 15,137,148,
/* 0x0540 */ 9, 0, 0, 0, 47,100,101,118, 47,115,104,109, 0, 94,185, 2, /* 0x0540 */ 0, 0, 0,232, 9, 0, 0, 0, 47,100,101,118, 47,115,104,109,
/* 0x0550 */ 0, 65, 0,186,192, 1, 0, 0,137,243,106, 5, 88,205,128,137, /* 0x0550 */ 0, 94,185, 2, 0, 65, 0,186,192, 1, 0, 0,137,243,106, 5,
/* 0x0560 */ 198,137,194,133,192,120, 62,137,243,137,249,106, 93, 88,205,128, /* 0x0560 */ 88,205,128,137,198,133,192,121,110,137,194,131,248,235, 15,133,
/* 0x0570 */ 137,194,133,192,120, 47,106, 0, 86,131,125, 8, 1, 25,192,131, /* 0x0570 */ 161, 0, 0, 0,184, 2, 0, 0, 0,232, 62, 0, 0, 0, 85, 80,
/* 0x0580 */ 224,240,131,192, 17, 80,106, 3, 87,255,117, 8,232,252,255,255, /* 0x0580 */ 88, 45, 53, 46, 48, 32,119, 97,110,116,115, 32,109,101,109,102,
/* 0x0590 */ 255,137,195,232,252,255,255,255,131,196, 24,137,218, 57,195,115, /* 0x0590 */ 100, 95, 99,114,101, 97,116,101, 40, 41, 44, 32,111,114, 32,110,
/* 0x05a0 */ 4,141, 84, 30, 1,137,208,141,101,244, 91, 94, 95,201,195, 0, /* 0x05a0 */ 101,101,100,115, 32, 47,100,101,118, 47,115,104,109, 40, 44, 79,
/* 0x05b0 */ 96,232,128, 0, 0, 0,243, 15, 30,251, 1,219,116, 2,243,195, /* 0x05b0 */ 95, 84, 77, 80, 70, 73, 76, 69, 44, 41, 10, 0, 89,186, 61, 0,
/* 0x05c0 */ 139, 30,131,238,252, 17,219,195, 94,102,131,126, 8, 2,116, 1, /* 0x05c0 */ 0, 0,137,195,106, 4, 88,205,128,184,127, 0, 0, 0,137,195,
/* 0x05d0 */ 244,139, 14,141,137, 24, 1, 0, 0, 81,106, 90, 87,141, 66,234, /* 0x05d0 */ 106, 1, 88,205,128,235,254,137,243,137,249,106, 93, 88,205,128,
/* 0x05e0 */ 80, 82, 86,137,229,129,236, 24, 1, 0, 0,131,228,248,106, 0, /* 0x05e0 */ 137,194,133,192,120, 47,106, 0, 86,131,125, 8, 1, 25,192,131,
/* 0x05f0 */ 137,231, 87, 81,106, 0,232,245, 0, 0, 0,131,196, 12,169, 0, /* 0x05f0 */ 224,240,131,192, 17, 80,106, 3, 87,255,117, 8,232,252,255,255,
/* 0x0600 */ 8, 0, 0,116, 1,244,137,194,193,232, 12,193,224, 12, 41,194, /* 0x0600 */ 255,137,195,232,252,255,255,255,131,196, 24,137,218, 57,195,115,
/* 0x0610 */ 74,139,117, 0,139, 62, 1,199,137,120, 8,137,230,185, 24, 1, /* 0x0610 */ 4,141, 84, 30, 1,137,208,141,101,244, 91, 94, 95,201,195, 0,
/* 0x0620 */ 0, 0,243,164,137,236,137, 68, 36, 16, 94, 82,255, 54, 84,139, /* 0x0620 */ 96,232,128, 0, 0, 0,243, 15, 30,251, 1,219,116, 2,243,195,
/* 0x0630 */ 78, 4,141,118, 12,137,199, 1,241, 81,139, 84, 36, 16, 49,219, /* 0x0630 */ 139, 30,131,238,252, 17,219,195, 94,102,131,126, 8, 2,116, 1,
/* 0x0640 */ 49,201,131,205,255,252,168,164,255,210,114,251,141, 65, 1,255, /* 0x0640 */ 244,139, 14,141,137, 24, 1, 0, 0, 81,106, 90, 87,141, 66,234,
/* 0x0650 */ 210, 17,192,255,210,115,248,131,232, 3,114, 11,193,224, 8,172, /* 0x0650 */ 80, 82, 86,137,229,129,236, 24, 1, 0, 0,131,228,248,106, 0,
/* 0x0660 */ 131,240,255,116, 45,137,197,141, 65, 1,255,210, 17,201,255,210, /* 0x0660 */ 137,231, 87, 81,106, 0,232,245, 0, 0, 0,131,196, 12,169, 0,
/* 0x0670 */ 17,201,117, 13,137,193,131,192, 2,255,210, 17,201,255,210,115, /* 0x0670 */ 8, 0, 0,116, 1,244,137,194,193,232, 12,193,224, 12, 41,194,
/* 0x0680 */ 248,129,253, 0,243,255,255, 17,193, 86,141, 52, 47,243,164, 94, /* 0x0680 */ 74,139,117, 0,139, 62, 1,199,137,120, 8,137,230,185, 24, 1,
/* 0x0690 */ 235,182, 89, 57,206,116, 1,244, 89,139,124, 36, 20,139, 68, 36, /* 0x0690 */ 0, 0,243,164,137,236,137, 68, 36, 16, 94, 82,255, 54, 84,139,
/* 0x06a0 */ 16,137, 7, 88,137, 71, 8,139, 84, 36, 20,137,249, 91, 88,106, /* 0x06a0 */ 78, 4,141,118, 12,137,199, 1,241, 81,139, 84, 36, 16, 49,219,
/* 0x06b0 */ 0, 83,106, 4, 88,205,128,106, 18,106, 5, 82, 87,137,227,106, /* 0x06b0 */ 49,201,131,205,255,252,168,164,255,210,114,251,141, 65, 1,255,
/* 0x06c0 */ 90, 88,205,128,139, 92, 36, 16,131,196, 24,106, 6, 88,205,128, /* 0x06c0 */ 210, 17,192,255,210,115,248,131,232, 3,114, 11,193,224, 8,172,
/* 0x06d0 */ 131,199, 12,255,231,141, 92, 36, 4,106, 90, 88,205,128, 61, 0, /* 0x06d0 */ 131,240,255,116, 45,137,197,141, 65, 1,255,210, 17,201,255,210,
/* 0x06e0 */ 240,255,255,114, 1,244,194, 24, 0,184, 0,240,255,255,195, 0, /* 0x06e0 */ 17,201,117, 13,137,193,131,192, 2,255,210, 17,201,255,210,115,
/* 0x06f0 */ 49,192,195,135, 92, 36, 4,139, 76, 36, 8,176,106,232, 98, 0, /* 0x06f0 */ 248,129,253, 0,243,255,255, 17,193, 86,141, 52, 47,243,164, 94,
/* 0x0700 */ 0, 0,139, 92, 36, 4,195, 85,137,229, 83,139, 93, 8,176,122, /* 0x0700 */ 235,182, 89, 57,206,116, 1,244, 89,139,124, 36, 20,139, 68, 36,
/* 0x0710 */ 232, 79, 0, 0, 0, 91, 93,195, 85,137,229, 83,139, 93, 8,139, /* 0x0710 */ 16,137, 7, 88,137, 71, 8,139, 84, 36, 20,137,249, 91, 88,106,
/* 0x0720 */ 77, 12,176, 39,232, 59, 0, 0, 0, 91, 93,195, 85,137,229, 87, /* 0x0720 */ 0, 83,106, 4, 88,205,128,106, 18,106, 5, 82, 87,137,227,106,
/* 0x0730 */ 139, 77, 16,139, 69, 12,139,125, 8,243,170, 95, 93,195, 85,137, /* 0x0730 */ 90, 88,205,128,139, 92, 36, 16,131,196, 24,106, 6, 88,205,128,
/* 0x0740 */ 229, 87, 86,139, 77, 16,139,117, 12,139,125, 8,243,164,137,248, /* 0x0740 */ 131,199, 12,255,231,141, 92, 36, 4,106, 90, 88,205,128, 61, 0,
/* 0x0750 */ 94, 95, 93,195,204,195, 83,141, 92, 36, 8,176, 90,232, 2, 0, /* 0x0750 */ 240,255,255,114, 1,244,194, 24, 0,184, 0,240,255,255,195, 0,
/* 0x0760 */ 0, 0, 91,195, 15,182,192, 80,205,128, 90, 61, 0,240,255,255, /* 0x0760 */ 49,192,195,135, 92, 36, 4,139, 76, 36, 8,176,106,232, 98, 0,
/* 0x0770 */ 115, 1,195,244,129,236, 0, 2, 0, 0, 49,210,232, 16, 0, 0, /* 0x0770 */ 0, 0,139, 92, 36, 4,195, 85,137,229, 83,139, 93, 8,176,122,
/* 0x0780 */ 0, 47,112,114,111, 99, 47,115,101,108,102, 47, 97,117,120,118, /* 0x0780 */ 232, 79, 0, 0, 0, 91, 93,195, 85,137,229, 83,139, 93, 8,139,
/* 0x0790 */ 0, 89,106,156, 91,184, 39, 1, 0, 0,205,128,133,192,124, 40, /* 0x0790 */ 77, 12,176, 39,232, 59, 0, 0, 0, 91, 93,195, 85,137,229, 87,
/* 0x07a0 */ 137,197,186, 0, 2, 0, 0,137,225,137,195,106, 3, 88,205,128, /* 0x07a0 */ 139, 77, 16,139, 69, 12,139,125, 8,243,170, 95, 93,195, 85,137,
/* 0x07b0 */ 133,192,124, 20,137,193,137,230,173,133,192,116, 11,131,248, 6, /* 0x07b0 */ 229, 87, 86,139, 77, 16,139,117, 12,139,125, 8,243,164,137,248,
/* 0x07c0 */ 173,116, 10,131,233, 8,117,240,184, 0, 16, 0, 0,247,216,129, /* 0x07c0 */ 94, 95, 93,195,204,195, 83,141, 92, 36, 8,176, 90,232, 2, 0,
/* 0x07d0 */ 196, 0, 2, 0, 0, 80,137,235,106, 6, 88,205,128, 95, 90,232, /* 0x07d0 */ 0, 0, 91,195, 15,182,192, 80,205,128, 90, 61, 0,240,255,255,
/* 0x07e0 */ 20, 0, 0, 0, 0, 46,115,121,109,116, 97, 98, 0, 46,115,116, /* 0x07e0 */ 115, 1,195,244,129,236, 0, 2, 0, 0, 49,210,232, 16, 0, 0,
/* 0x07f0 */ 114,116, 97, 98, 0, 46,115,104,115,116,114,116, 97, 98, 0, 46, /* 0x07f0 */ 0, 47,112,114,111, 99, 47,115,101,108,102, 47, 97,117,120,118,
/* 0x0800 */ 114,101,108, 72, 85, 77, 70, 95, 65, 0, 46,114,101,108, 72, 85, /* 0x0800 */ 0, 89,106,156, 91,184, 39, 1, 0, 0,205,128,133,192,124, 40,
/* 0x0810 */ 77, 70, 95, 76, 0, 46,114,101,108, 85, 77, 70, 95, 65, 78, 68, /* 0x0810 */ 137,197,186, 0, 2, 0, 0,137,225,137,195,106, 3, 88,205,128,
/* 0x0820 */ 82, 79, 73, 68, 0, 46,114,101,108, 85, 77, 70, 95, 76, 73, 78, /* 0x0820 */ 133,192,124, 20,137,193,137,230,173,133,192,116, 11,131,248, 6,
/* 0x0830 */ 85, 88, 0, 46,114,101,108, 69, 76, 70, 77, 65, 73, 78, 88, 0, /* 0x0830 */ 173,116, 10,131,233, 8,117,240,184, 0, 16, 0, 0,247,216,129,
/* 0x0840 */ 46,114,101,108, 69, 76, 70, 77, 65, 73, 78, 90, 0, 0, 0, 0, /* 0x0840 */ 196, 0, 2, 0, 0, 80,137,235,106, 6, 88,205,128, 95, 90,232,
/* 0x0850 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0850 */ 20, 0, 0, 0, 0, 46,115,121,109,116, 97, 98, 0, 46,115,116,
/* 0x0860 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0860 */ 114,116, 97, 98, 0, 46,115,104,115,116,114,116, 97, 98, 0, 46,
/* 0x0870 */ 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, /* 0x0870 */ 114,101,108, 72, 85, 77, 70, 95, 65, 0, 46,114,101,108, 72, 85,
/* 0x0880 */ 6, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 5, 0, 0, 0, /* 0x0880 */ 77, 70, 95, 76, 0, 46,114,101,108, 85, 77, 70, 95, 65, 78, 68,
/* 0x0890 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x0890 */ 82, 79, 73, 68, 0, 46,114,101,108, 85, 77, 70, 95, 76, 73, 78,
/* 0x08a0 */ 27, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x08a0 */ 85, 88, 0, 46,114,101,108, 69, 76, 70, 77, 65, 73, 78, 88, 0,
/* 0x08b0 */ 128, 12, 0, 0, 8, 0, 0, 0, 14, 0, 0, 0, 1, 0, 0, 0, /* 0x08b0 */ 46,114,101,108, 69, 76, 70, 77, 65, 73, 78, 90, 0, 0, 0, 0,
/* 0x08c0 */ 4, 0, 0, 0, 8, 0, 0, 0, 42, 0, 0, 0, 1, 0, 0, 0, /* 0x08c0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x08d0 */ 6, 0, 0, 0, 0, 0, 0, 0, 57, 0, 0, 0, 5, 0, 0, 0, /* 0x08d0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x08e0 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x08e0 */ 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,
/* 0x08f0 */ 38, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x08f0 */ 6, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 5, 0, 0, 0,
/* 0x0900 */ 136, 12, 0, 0, 8, 0, 0, 0, 14, 0, 0, 0, 3, 0, 0, 0, /* 0x0900 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
/* 0x0910 */ 4, 0, 0, 0, 8, 0, 0, 0, 53, 0, 0, 0, 1, 0, 0, 0, /* 0x0910 */ 27, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0920 */ 6, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0,191, 4, 0, 0, /* 0x0920 */ 240, 12, 0, 0, 8, 0, 0, 0, 14, 0, 0, 0, 1, 0, 0, 0,
/* 0x0930 */ 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, /* 0x0930 */ 4, 0, 0, 0, 8, 0, 0, 0, 42, 0, 0, 0, 1, 0, 0, 0,
/* 0x0940 */ 49, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0940 */ 6, 0, 0, 0, 0, 0, 0, 0, 57, 0, 0, 0, 5, 0, 0, 0,
/* 0x0950 */ 144, 12, 0, 0, 80, 0, 0, 0, 14, 0, 0, 0, 5, 0, 0, 0, /* 0x0950 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
/* 0x0960 */ 4, 0, 0, 0, 8, 0, 0, 0, 69, 0, 0, 0, 1, 0, 0, 0, /* 0x0960 */ 38, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0970 */ 6, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0,175, 0, 0, 0, /* 0x0970 */ 248, 12, 0, 0, 8, 0, 0, 0, 14, 0, 0, 0, 3, 0, 0, 0,
/* 0x0980 */ 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, /* 0x0980 */ 4, 0, 0, 0, 8, 0, 0, 0, 53, 0, 0, 0, 1, 0, 0, 0,
/* 0x0990 */ 65, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0990 */ 6, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0,191, 4, 0, 0,
/* 0x09a0 */ 224, 12, 0, 0, 16, 0, 0, 0, 14, 0, 0, 0, 7, 0, 0, 0, /* 0x09a0 */ 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
/* 0x09b0 */ 4, 0, 0, 0, 8, 0, 0, 0, 83, 0, 0, 0, 1, 0, 0, 0, /* 0x09b0 */ 49, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x09c0 */ 6, 0, 0, 0, 0, 0, 0, 0,176, 5, 0, 0, 64, 1, 0, 0, /* 0x09c0 */ 0, 13, 0, 0, 80, 0, 0, 0, 14, 0, 0, 0, 5, 0, 0, 0,
/* 0x09d0 */ 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, /* 0x09d0 */ 4, 0, 0, 0, 8, 0, 0, 0, 69, 0, 0, 0, 1, 0, 0, 0,
/* 0x09e0 */ 79, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x09e0 */ 6, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 31, 1, 0, 0,
/* 0x09f0 */ 240, 12, 0, 0, 8, 0, 0, 0, 14, 0, 0, 0, 9, 0, 0, 0, /* 0x09f0 */ 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
/* 0x0a00 */ 4, 0, 0, 0, 8, 0, 0, 0, 96, 0, 0, 0, 1, 0, 0, 0, /* 0x0a00 */ 65, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0a10 */ 0, 0, 0, 0, 0, 0, 0, 0,240, 6, 0, 0,244, 0, 0, 0, /* 0x0a10 */ 80, 13, 0, 0, 16, 0, 0, 0, 14, 0, 0, 0, 7, 0, 0, 0,
/* 0x0a20 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x0a20 */ 4, 0, 0, 0, 8, 0, 0, 0, 83, 0, 0, 0, 1, 0, 0, 0,
/* 0x0a30 */ 92, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0a30 */ 6, 0, 0, 0, 0, 0, 0, 0, 32, 6, 0, 0, 64, 1, 0, 0,
/* 0x0a40 */ 248, 12, 0, 0, 8, 0, 0, 0, 14, 0, 0, 0, 11, 0, 0, 0, /* 0x0a40 */ 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
/* 0x0a50 */ 4, 0, 0, 0, 8, 0, 0, 0, 17, 0, 0, 0, 3, 0, 0, 0, /* 0x0a50 */ 79, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0a60 */ 0, 0, 0, 0, 0, 0, 0, 0,228, 7, 0, 0,105, 0, 0, 0, /* 0x0a60 */ 96, 13, 0, 0, 8, 0, 0, 0, 14, 0, 0, 0, 9, 0, 0, 0,
/* 0x0a70 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x0a70 */ 4, 0, 0, 0, 8, 0, 0, 0, 96, 0, 0, 0, 1, 0, 0, 0,
/* 0x0a80 */ 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0a80 */ 0, 0, 0, 0, 0, 0, 0, 0, 96, 7, 0, 0,244, 0, 0, 0,
/* 0x0a90 */ 208, 10, 0, 0, 48, 1, 0, 0, 15, 0, 0, 0, 8, 0, 0, 0, /* 0x0a90 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
/* 0x0aa0 */ 4, 0, 0, 0, 16, 0, 0, 0, 9, 0, 0, 0, 3, 0, 0, 0, /* 0x0aa0 */ 92, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0ab0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0,128, 0, 0, 0, /* 0x0ab0 */ 104, 13, 0, 0, 8, 0, 0, 0, 14, 0, 0, 0, 11, 0, 0, 0,
/* 0x0ac0 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x0ac0 */ 4, 0, 0, 0, 8, 0, 0, 0, 17, 0, 0, 0, 3, 0, 0, 0,
/* 0x0ad0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0ad0 */ 0, 0, 0, 0, 0, 0, 0, 0, 84, 8, 0, 0,105, 0, 0, 0,
/* 0x0ae0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 9, 0, /* 0x0ae0 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
/* 0x0af0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 11, 0, /* 0x0af0 */ 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0b00 */ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, /* 0x0b00 */ 64, 11, 0, 0, 48, 1, 0, 0, 15, 0, 0, 0, 8, 0, 0, 0,
/* 0x0b10 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 0, /* 0x0b10 */ 4, 0, 0, 0, 16, 0, 0, 0, 9, 0, 0, 0, 3, 0, 0, 0,
/* 0x0b20 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 3, 0, /* 0x0b20 */ 0, 0, 0, 0, 0, 0, 0, 0,112, 12, 0, 0,128, 0, 0, 0,
/* 0x0b30 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 5, 0, /* 0x0b30 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
/* 0x0b40 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 7, 0, /* 0x0b40 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0b50 */ 8, 0, 0, 0, 57, 1, 0, 0, 0, 0, 0, 0, 16, 0, 9, 0, /* 0x0b50 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 9, 0,
/* 0x0b60 */ 22, 0, 0, 0, 78, 0, 0, 0, 0, 0, 0, 0, 16, 0, 11, 0, /* 0x0b60 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 11, 0,
/* 0x0b70 */ 30, 0, 0, 0, 0, 0, 0, 0, 53, 2, 0, 0, 18, 0, 5, 0, /* 0x0b70 */ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0,
/* 0x0b80 */ 54, 0, 0, 0,102, 0, 0, 0, 0, 0, 0, 0, 16, 0, 11, 0, /* 0x0b80 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 0,
/* 0x0b90 */ 59, 0, 0, 0, 0, 0, 0, 0,175, 0, 0, 0, 18, 0, 7, 0, /* 0x0b90 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 3, 0,
/* 0x0ba0 */ 81, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 16, 0, 11, 0, /* 0x0ba0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 5, 0,
/* 0x0bb0 */ 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 11, 0, /* 0x0bb0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 7, 0,
/* 0x0bc0 */ 102, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 16, 0, 11, 0, /* 0x0bc0 */ 8, 0, 0, 0, 57, 1, 0, 0, 0, 0, 0, 0, 16, 0, 9, 0,
/* 0x0bd0 */ 109, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 16, 0, 11, 0, /* 0x0bd0 */ 22, 0, 0, 0, 78, 0, 0, 0, 0, 0, 0, 0, 16, 0, 11, 0,
/* 0x0be0 */ 117, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 16, 0, 11, 0, /* 0x0be0 */ 30, 0, 0, 0, 0, 0, 0, 0, 53, 2, 0, 0, 18, 0, 5, 0,
/* 0x0bf0 */ 122, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 16, 0, 11, 0, /* 0x0bf0 */ 54, 0, 0, 0,102, 0, 0, 0, 0, 0, 0, 0, 16, 0, 11, 0,
/* 0x0c00 */ 0, 95,115,116, 97,114,116, 0,103,101,116, 95,112, 97,103,101, /* 0x0c00 */ 59, 0, 0, 0, 0, 0, 0, 0, 31, 1, 0, 0, 18, 0, 7, 0,
/* 0x0c10 */ 95,109, 97,115,107, 0,109,101,109,112, 99,112,121, 0,117,112, /* 0x0c10 */ 81, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 16, 0, 11, 0,
/* 0x0c20 */ 120, 95,109,109, 97,112, 95, 97,110,100, 95,102,100, 95, 97,110, /* 0x0c20 */ 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 11, 0,
/* 0x0c30 */ 100,114,111,105,100, 0,109,109, 97,112, 0,117,112,120, 95,109, /* 0x0c30 */ 102, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 16, 0, 11, 0,
/* 0x0c40 */ 109, 97,112, 95, 97,110,100, 95,102,100, 95,108,105,110,117,120, /* 0x0c40 */ 109, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 16, 0, 11, 0,
/* 0x0c50 */ 0,117,110, 97,109,101, 0,103,101,116, 95,117,112,120,102,110, /* 0x0c50 */ 117, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 16, 0, 11, 0,
/* 0x0c60 */ 95,112, 97,116,104, 0,109,101,109,115,101,116, 0,109,121, 95, /* 0x0c60 */ 122, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 16, 0, 11, 0,
/* 0x0c70 */ 98,107,112,116, 0,115,116, 97,116, 0,109,107,100,105,114, 0, /* 0x0c70 */ 0, 95,115,116, 97,114,116, 0,103,101,116, 95,112, 97,103,101,
/* 0x0c80 */ 1, 0, 0, 0, 2, 10, 0, 0, 1, 0, 0, 0, 2, 12, 0, 0, /* 0x0c80 */ 95,109, 97,115,107, 0,109,101,109,112, 99,112,121, 0,117,112,
/* 0x0c90 */ 124, 0, 0, 0, 2, 16, 0, 0,241, 0, 0, 0, 2, 14, 0, 0, /* 0x0c90 */ 120, 95,109,109, 97,112, 95, 97,110,100, 95,102,100, 95, 97,110,
/* 0x0ca0 */ 111, 1, 0, 0, 2, 8, 0, 0,224, 1, 0, 0, 2, 8, 0, 0, /* 0x0ca0 */ 100,114,111,105,100, 0,109,109, 97,112, 0,117,112,120, 95,109,
/* 0x0cb0 */ 18, 2, 0, 0, 2, 11, 0, 0, 73, 2, 0, 0, 2, 15, 0, 0, /* 0x0cb0 */ 109, 97,112, 95, 97,110,100, 95,102,100, 95,108,105,110,117,120,
/* 0x0cc0 */ 152, 2, 0, 0, 2, 16, 0, 0, 94, 3, 0, 0, 2, 16, 0, 0, /* 0x0cc0 */ 0,117,110, 97,109,101, 0,103,101,116, 95,117,112,120,102,110,
/* 0x0cd0 */ 146, 3, 0, 0, 2, 9, 0, 0,238, 3, 0, 0, 2, 9, 0, 0, /* 0x0cd0 */ 95,112, 97,116,104, 0,109,101,109,115,101,116, 0,109,121, 95,
/* 0x0ce0 */ 141, 0, 0, 0, 2, 11, 0, 0,148, 0, 0, 0, 2, 8, 0, 0, /* 0x0ce0 */ 98,107,112,116, 0,115,116, 97,116, 0,109,107,100,105,114, 0,
/* 0x0cf0 */ 2, 0, 0, 0, 2, 2, 0, 0,240, 0, 0, 0, 2, 1, 0, 0, /* 0x0cf0 */ 1, 0, 0, 0, 2, 10, 0, 0, 1, 0, 0, 0, 2, 12, 0, 0,
/* 0x0d00 */ 102,105,108,101, 32,102,111,114,109, 97,116, 32,101,108,102, 51, /* 0x0d00 */ 124, 0, 0, 0, 2, 16, 0, 0,241, 0, 0, 0, 2, 14, 0, 0,
/* 0x0d10 */ 50, 45,105, 51, 56, 54, 10, 10, 83,101, 99,116,105,111,110,115, /* 0x0d10 */ 111, 1, 0, 0, 2, 8, 0, 0,224, 1, 0, 0, 2, 8, 0, 0,
/* 0x0d20 */ 58, 10, 73,100,120, 32, 78, 97,109,101, 32, 32, 32, 32, 32, 32, /* 0x0d20 */ 18, 2, 0, 0, 2, 11, 0, 0, 73, 2, 0, 0, 2, 15, 0, 0,
/* 0x0d30 */ 32, 32, 32, 32, 83,105,122,101, 32, 32, 32, 32, 32, 32, 86, 77, /* 0x0d30 */ 152, 2, 0, 0, 2, 16, 0, 0, 94, 3, 0, 0, 2, 16, 0, 0,
/* 0x0d40 */ 65, 32, 32, 32, 32, 32, 32, 32, 76, 77, 65, 32, 32, 32, 32, 32, /* 0x0d40 */ 146, 3, 0, 0, 2, 9, 0, 0,238, 3, 0, 0, 2, 9, 0, 0,
/* 0x0d50 */ 32, 32, 70,105,108,101, 32,111,102,102, 32, 32, 65,108,103,110, /* 0x0d50 */ 253, 0, 0, 0, 2, 11, 0, 0, 4, 1, 0, 0, 2, 8, 0, 0,
/* 0x0d60 */ 32, 32, 70,108, 97,103,115, 10, 32, 32, 48, 32, 72, 85, 77, 70, /* 0x0d60 */ 2, 0, 0, 0, 2, 2, 0, 0,240, 0, 0, 0, 2, 1, 0, 0,
/* 0x0d70 */ 95, 65, 32, 32, 32, 32, 32, 32, 32, 32, 48, 53, 32, 32, 48, 32, /* 0x0d70 */ 102,105,108,101, 32,102,111,114,109, 97,116, 32,101,108,102, 51,
/* 0x0d80 */ 32, 48, 32, 32, 48, 51, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, /* 0x0d80 */ 50, 45,105, 51, 56, 54, 10, 10, 83,101, 99,116,105,111,110,115,
/* 0x0d90 */ 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 49, 32, 72, 85, 77, 70, /* 0x0d90 */ 58, 10, 73,100,120, 32, 78, 97,109,101, 32, 32, 32, 32, 32, 32,
/* 0x0da0 */ 95, 76, 32, 32, 32, 32, 32, 32, 32, 32, 48, 53, 32, 32, 48, 32, /* 0x0da0 */ 32, 32, 32, 32, 83,105,122,101, 32, 32, 32, 32, 32, 32, 86, 77,
/* 0x0db0 */ 32, 48, 32, 32, 48, 51, 57, 32, 32, 50, 42, 42, 48, 32, 32, 67, /* 0x0db0 */ 65, 32, 32, 32, 32, 32, 32, 32, 76, 77, 65, 32, 32, 32, 32, 32,
/* 0x0dc0 */ 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 50, 32, 85, 77, 70, 95, /* 0x0dc0 */ 32, 32, 70,105,108,101, 32,111,102,102, 32, 32, 65,108,103,110,
/* 0x0dd0 */ 65, 78, 68, 82, 79, 73, 68, 32, 32, 32, 48, 52, 98,102, 32, 32, /* 0x0dd0 */ 32, 32, 70,108, 97,103,115, 10, 32, 32, 48, 32, 72, 85, 77, 70,
/* 0x0de0 */ 48, 32, 32, 48, 32, 32, 48, 52, 48, 32, 32, 50, 42, 42, 50, 32, /* 0x0de0 */ 95, 65, 32, 32, 32, 32, 32, 32, 32, 32, 48, 53, 32, 32, 48, 32,
/* 0x0df0 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 51, 32, 85, 77, /* 0x0df0 */ 32, 48, 32, 32, 48, 51, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67,
/* 0x0e00 */ 70, 95, 76, 73, 78, 85, 88, 32, 32, 32, 32, 32, 48, 97,102, 32, /* 0x0e00 */ 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 49, 32, 72, 85, 77, 70,
/* 0x0e10 */ 32, 48, 32, 32, 48, 32, 32, 48, 53, 48, 48, 32, 32, 50, 42, 42, /* 0x0e10 */ 95, 76, 32, 32, 32, 32, 32, 32, 32, 32, 48, 53, 32, 32, 48, 32,
/* 0x0e20 */ 50, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 52, 32, /* 0x0e20 */ 32, 48, 32, 32, 48, 51, 57, 32, 32, 50, 42, 42, 48, 32, 32, 67,
/* 0x0e30 */ 69, 76, 70, 77, 65, 73, 78, 88, 32, 32, 32, 32, 32, 32, 48, 49, /* 0x0e30 */ 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 50, 32, 85, 77, 70, 95,
/* 0x0e40 */ 52, 48, 32, 32, 48, 32, 32, 48, 32, 32, 48, 53, 98, 48, 32, 32, /* 0x0e40 */ 65, 78, 68, 82, 79, 73, 68, 32, 32, 32, 48, 52, 98,102, 32, 32,
/* 0x0e50 */ 50, 42, 42, 50, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, /* 0x0e50 */ 48, 32, 32, 48, 32, 32, 48, 52, 48, 32, 32, 50, 42, 42, 50, 32,
/* 0x0e60 */ 32, 53, 32, 69, 76, 70, 77, 65, 73, 78, 90, 32, 32, 32, 32, 32, /* 0x0e60 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 51, 32, 85, 77,
/* 0x0e70 */ 32, 48,102, 52, 32, 32, 48, 32, 32, 48, 32, 32, 48, 54,102, 48, /* 0x0e70 */ 70, 95, 76, 73, 78, 85, 88, 32, 32, 32, 32, 32, 48, 49, 49,102,
/* 0x0e80 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, /* 0x0e80 */ 32, 32, 48, 32, 32, 48, 32, 32, 48, 53, 48, 48, 32, 32, 50, 42,
/* 0x0e90 */ 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, 66, 76, 69, 58, 10, 48, /* 0x0e90 */ 42, 50, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 52,
/* 0x0ea0 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, /* 0x0ea0 */ 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 32, 32, 32, 32, 32, 48,
/* 0x0eb0 */ 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 32, 69, 76, 70, 77, 65, /* 0x0eb0 */ 49, 52, 48, 32, 32, 48, 32, 32, 48, 32, 32, 48, 54, 50, 48, 32,
/* 0x0ec0 */ 73, 78, 88, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, /* 0x0ec0 */ 32, 50, 42, 42, 50, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10,
/* 0x0ed0 */ 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 32, 48, 32, /* 0x0ed0 */ 32, 32, 53, 32, 69, 76, 70, 77, 65, 73, 78, 90, 32, 32, 32, 32,
/* 0x0ee0 */ 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 48, 48, /* 0x0ee0 */ 32, 32, 48,102, 52, 32, 32, 48, 32, 32, 48, 32, 32, 48, 55, 54,
/* 0x0ef0 */ 48, 32,108, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, /* 0x0ef0 */ 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84,
/* 0x0f00 */ 78, 88, 32, 48, 32, 95,115,116, 97,114,116, 10, 48, 48, 48, 48, /* 0x0f00 */ 83, 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, 66, 76, 69, 58, 10,
/* 0x0f10 */ 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 72, 85, 77, /* 0x0f10 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32,
/* 0x0f20 */ 70, 95, 65, 32, 48, 32, 72, 85, 77, 70, 95, 65, 10, 48, 48, 48, /* 0x0f20 */ 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 32, 69, 76, 70, 77,
/* 0x0f30 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 72, 85, /* 0x0f30 */ 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32,
/* 0x0f40 */ 77, 70, 95, 76, 32, 48, 32, 72, 85, 77, 70, 95, 76, 10, 48, 48, /* 0x0f40 */ 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 32, 48,
/* 0x0f50 */ 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 85, /* 0x0f50 */ 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 48,
/* 0x0f60 */ 77, 70, 95, 65, 78, 68, 82, 79, 73, 68, 32, 48, 32, 85, 77, 70, /* 0x0f60 */ 48, 48, 32,108, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65,
/* 0x0f70 */ 95, 65, 78, 68, 82, 79, 73, 68, 10, 48, 48, 48, 48, 48, 48, 48, /* 0x0f70 */ 73, 78, 88, 32, 48, 32, 95,115,116, 97,114,116, 10, 48, 48, 48,
/* 0x0f80 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 85, 77, 70, 95, 76, 73, /* 0x0f80 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 72, 85,
/* 0x0f90 */ 78, 85, 88, 32, 48, 32, 85, 77, 70, 95, 76, 73, 78, 85, 88, 10, /* 0x0f90 */ 77, 70, 95, 65, 32, 48, 32, 72, 85, 77, 70, 95, 65, 10, 48, 48,
/* 0x0fa0 */ 48, 48, 48, 48, 48, 49, 51, 57, 32,103, 32, 32, 32, 32, 32, 32, /* 0x0fa0 */ 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 72,
/* 0x0fb0 */ 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 32,103,101,116, 95, /* 0x0fb0 */ 85, 77, 70, 95, 76, 32, 48, 32, 72, 85, 77, 70, 95, 76, 10, 48,
/* 0x0fc0 */ 112, 97,103,101, 95,109, 97,115,107, 10, 48, 48, 48, 48, 48, 48, /* 0x0fc0 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,
/* 0x0fd0 */ 52,101, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, /* 0x0fd0 */ 85, 77, 70, 95, 65, 78, 68, 82, 79, 73, 68, 32, 48, 32, 85, 77,
/* 0x0fe0 */ 73, 78, 90, 32, 48, 32,109,101,109,112, 99,112,121, 10, 48, 48, /* 0x0fe0 */ 70, 95, 65, 78, 68, 82, 79, 73, 68, 10, 48, 48, 48, 48, 48, 48,
/* 0x0ff0 */ 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 70, 32, 85, /* 0x0ff0 */ 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 85, 77, 70, 95, 76,
/* 0x1000 */ 77, 70, 95, 65, 78, 68, 82, 79, 73, 68, 32, 48, 50, 51, 53, 32, /* 0x1000 */ 73, 78, 85, 88, 32, 48, 32, 85, 77, 70, 95, 76, 73, 78, 85, 88,
/* 0x1010 */ 117,112,120, 95,109,109, 97,112, 95, 97,110,100, 95,102,100, 95, /* 0x1010 */ 10, 48, 48, 48, 48, 48, 49, 51, 57, 32,103, 32, 32, 32, 32, 32,
/* 0x1020 */ 97,110,100,114,111,105,100, 10, 48, 48, 48, 48, 48, 48, 54, 54, /* 0x1020 */ 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 32,103,101,116,
/* 0x1030 */ 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, /* 0x1030 */ 95,112, 97,103,101, 95,109, 97,115,107, 10, 48, 48, 48, 48, 48,
/* 0x1040 */ 90, 32, 48, 32,109,109, 97,112, 10, 48, 48, 48, 48, 48, 48, 48, /* 0x1040 */ 48, 52,101, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77,
/* 0x1050 */ 48, 32,103, 32, 32, 32, 32, 32, 70, 32, 85, 77, 70, 95, 76, 73, /* 0x1050 */ 65, 73, 78, 90, 32, 48, 32,109,101,109,112, 99,112,121, 10, 48,
/* 0x1060 */ 78, 85, 88, 32, 48, 97,102, 32,117,112,120, 95,109,109, 97,112, /* 0x1060 */ 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 70, 32,
/* 0x1070 */ 95, 97,110,100, 95,102,100, 95,108,105,110,117,120, 10, 48, 48, /* 0x1070 */ 85, 77, 70, 95, 65, 78, 68, 82, 79, 73, 68, 32, 48, 50, 51, 53,
/* 0x1080 */ 48, 48, 48, 48, 49, 55, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, /* 0x1080 */ 32,117,112,120, 95,109,109, 97,112, 95, 97,110,100, 95,102,100,
/* 0x1090 */ 76, 70, 77, 65, 73, 78, 90, 32, 48, 32,117,110, 97,109,101, 10, /* 0x1090 */ 95, 97,110,100,114,111,105,100, 10, 48, 48, 48, 48, 48, 48, 54,
/* 0x10a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, /* 0x10a0 */ 54, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73,
/* 0x10b0 */ 32, 69, 76, 70, 77, 65, 73, 78, 90, 32, 48, 32,103,101,116, 95, /* 0x10b0 */ 78, 90, 32, 48, 32,109,109, 97,112, 10, 48, 48, 48, 48, 48, 48,
/* 0x10c0 */ 117,112,120,102,110, 95,112, 97,116,104, 10, 48, 48, 48, 48, 48, /* 0x10c0 */ 48, 48, 32,103, 32, 32, 32, 32, 32, 70, 32, 85, 77, 70, 95, 76,
/* 0x10d0 */ 48, 51, 99, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, /* 0x10d0 */ 73, 78, 85, 88, 32, 48, 49, 49,102, 32,117,112,120, 95,109,109,
/* 0x10e0 */ 65, 73, 78, 90, 32, 48, 32,109,101,109,115,101,116, 10, 48, 48, /* 0x10e0 */ 97,112, 95, 97,110,100, 95,102,100, 95,108,105,110,117,120, 10,
/* 0x10f0 */ 48, 48, 48, 48, 54, 52, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, /* 0x10f0 */ 48, 48, 48, 48, 48, 48, 49, 55, 32,103, 32, 32, 32, 32, 32, 32,
/* 0x1100 */ 76, 70, 77, 65, 73, 78, 90, 32, 48, 32,109,121, 95, 98,107,112, /* 0x1100 */ 32, 69, 76, 70, 77, 65, 73, 78, 90, 32, 48, 32,117,110, 97,109,
/* 0x1110 */ 116, 10, 48, 48, 48, 48, 48, 48, 48, 51, 32,103, 32, 32, 32, 32, /* 0x1110 */ 101, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32,
/* 0x1120 */ 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 32, 48, 32,115,116, /* 0x1120 */ 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 32, 48, 32,103,101,
/* 0x1130 */ 97,116, 10, 48, 48, 48, 48, 48, 48, 50, 56, 32,103, 32, 32, 32, /* 0x1130 */ 116, 95,117,112,120,102,110, 95,112, 97,116,104, 10, 48, 48, 48,
/* 0x1140 */ 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 32, 48, 32,109, /* 0x1140 */ 48, 48, 48, 51, 99, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76,
/* 0x1150 */ 107,100,105,114, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, /* 0x1150 */ 70, 77, 65, 73, 78, 90, 32, 48, 32,109,101,109,115,101,116, 10,
/* 0x1160 */ 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 72, 85, /* 0x1160 */ 48, 48, 48, 48, 48, 48, 54, 52, 32,103, 32, 32, 32, 32, 32, 32,
/* 0x1170 */ 77, 70, 95, 65, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, /* 0x1170 */ 32, 69, 76, 70, 77, 65, 73, 78, 90, 32, 48, 32,109,121, 95, 98,
/* 0x1180 */ 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x1180 */ 107,112,116, 10, 48, 48, 48, 48, 48, 48, 48, 51, 32,103, 32, 32,
/* 0x1190 */ 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 49, /* 0x1190 */ 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 32, 48, 32,
/* 0x11a0 */ 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, /* 0x11a0 */ 115,116, 97,116, 10, 48, 48, 48, 48, 48, 48, 50, 56, 32,103, 32,
/* 0x11b0 */ 32, 32, 32,117,112,120, 95,109,109, 97,112, 95, 97,110,100, 95, /* 0x11b0 */ 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 32, 48,
/* 0x11c0 */ 102,100, 95, 97,110,100,114,111,105,100, 10, 10, 82, 69, 76, 79, /* 0x11c0 */ 32,109,107,100,105,114, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73,
/* 0x11d0 */ 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, /* 0x11d0 */ 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91,
/* 0x11e0 */ 79, 82, 32, 91, 72, 85, 77, 70, 95, 76, 93, 58, 10, 79, 70, 70, /* 0x11e0 */ 72, 85, 77, 70, 95, 65, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32,
/* 0x11f0 */ 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, /* 0x11f0 */ 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x1200 */ 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, /* 0x1200 */ 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48,
/* 0x1210 */ 48, 48, 48, 48, 48, 49, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, /* 0x1210 */ 48, 49, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32,
/* 0x1220 */ 50, 32, 32, 32, 32, 32, 32, 32, 32,117,112,120, 95,109,109, 97, /* 0x1220 */ 32, 32, 32, 32, 32,117,112,120, 95,109,109, 97,112, 95, 97,110,
/* 0x1230 */ 112, 95, 97,110,100, 95,102,100, 95,108,105,110,117,120, 10, 10, /* 0x1230 */ 100, 95,102,100, 95, 97,110,100,114,111,105,100, 10, 10, 82, 69,
/* 0x1240 */ 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, /* 0x1240 */ 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83,
/* 0x1250 */ 68, 83, 32, 70, 79, 82, 32, 91, 85, 77, 70, 95, 65, 78, 68, 82, /* 0x1250 */ 32, 70, 79, 82, 32, 91, 72, 85, 77, 70, 95, 76, 93, 58, 10, 79,
/* 0x1260 */ 79, 73, 68, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, /* 0x1260 */ 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32,
/* 0x1270 */ 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x1270 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10,
/* 0x1280 */ 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 55, 99, 32, /* 0x1280 */ 48, 48, 48, 48, 48, 48, 48, 49, 32, 82, 95, 51, 56, 54, 95, 80,
/* 0x1290 */ 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 32, /* 0x1290 */ 67, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32,117,112,120, 95,109,
/* 0x12a0 */ 32, 32,109,121, 95, 98,107,112,116, 10, 48, 48, 48, 48, 48, 48, /* 0x12a0 */ 109, 97,112, 95, 97,110,100, 95,102,100, 95,108,105,110,117,120,
/* 0x12b0 */ 102, 49, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, /* 0x12b0 */ 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67,
/* 0x12c0 */ 32, 32, 32, 32, 32,103,101,116, 95,117,112,120,102,110, 95,112, /* 0x12c0 */ 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 85, 77, 70, 95, 65, 78,
/* 0x12d0 */ 97,116,104, 10, 48, 48, 48, 48, 48, 49, 54,102, 32, 82, 95, 51, /* 0x12d0 */ 68, 82, 79, 73, 68, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32,
/* 0x12e0 */ 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32,103, /* 0x12e0 */ 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x12f0 */ 101,116, 95,112, 97,103,101, 95,109, 97,115,107, 10, 48, 48, 48, /* 0x12f0 */ 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 55,
/* 0x1300 */ 48, 48, 49,101, 48, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, /* 0x1300 */ 99, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, 32,
/* 0x1310 */ 32, 32, 32, 32, 32, 32, 32, 32,103,101,116, 95,112, 97,103,101, /* 0x1310 */ 32, 32, 32, 32,109,121, 95, 98,107,112,116, 10, 48, 48, 48, 48,
/* 0x1320 */ 95,109, 97,115,107, 10, 48, 48, 48, 48, 48, 50, 49, 50, 32, 82, /* 0x1320 */ 48, 48,102, 49, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32,
/* 0x1330 */ 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 32, 32, /* 0x1330 */ 32, 32, 32, 32, 32, 32, 32,103,101,116, 95,117,112,120,102,110,
/* 0x1340 */ 32,109,109, 97,112, 10, 48, 48, 48, 48, 48, 50, 52, 57, 32, 82, /* 0x1340 */ 95,112, 97,116,104, 10, 48, 48, 48, 48, 48, 49, 54,102, 32, 82,
/* 0x1350 */ 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 32, 32, /* 0x1350 */ 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 32, 32,
/* 0x1360 */ 32,109,101,109,115,101,116, 10, 48, 48, 48, 48, 48, 50, 57, 56, /* 0x1360 */ 32,103,101,116, 95,112, 97,103,101, 95,109, 97,115,107, 10, 48,
/* 0x1370 */ 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, /* 0x1370 */ 48, 48, 48, 48, 49,101, 48, 32, 82, 95, 51, 56, 54, 95, 80, 67,
/* 0x1380 */ 32, 32, 32,109,121, 95, 98,107,112,116, 10, 48, 48, 48, 48, 48, /* 0x1380 */ 51, 50, 32, 32, 32, 32, 32, 32, 32, 32,103,101,116, 95,112, 97,
/* 0x1390 */ 51, 53,101, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, /* 0x1390 */ 103,101, 95,109, 97,115,107, 10, 48, 48, 48, 48, 48, 50, 49, 50,
/* 0x13a0 */ 32, 32, 32, 32, 32, 32,109,121, 95, 98,107,112,116, 10, 48, 48, /* 0x13a0 */ 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32,
/* 0x13b0 */ 48, 48, 48, 51, 57, 50, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, /* 0x13b0 */ 32, 32, 32,109,109, 97,112, 10, 48, 48, 48, 48, 48, 50, 52, 57,
/* 0x13c0 */ 50, 32, 32, 32, 32, 32, 32, 32, 32,109,101,109,112, 99,112,121, /* 0x13c0 */ 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32,
/* 0x13d0 */ 10, 48, 48, 48, 48, 48, 51,101,101, 32, 82, 95, 51, 56, 54, 95, /* 0x13d0 */ 32, 32, 32,109,101,109,115,101,116, 10, 48, 48, 48, 48, 48, 50,
/* 0x13e0 */ 80, 67, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32,109,101,109,112, /* 0x13e0 */ 57, 56, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32,
/* 0x13f0 */ 99,112,121, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, /* 0x13f0 */ 32, 32, 32, 32, 32,109,121, 95, 98,107,112,116, 10, 48, 48, 48,
/* 0x1400 */ 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 85, 77, 70, /* 0x1400 */ 48, 48, 51, 53,101, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50,
/* 0x1410 */ 95, 76, 73, 78, 85, 88, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, /* 0x1410 */ 32, 32, 32, 32, 32, 32, 32, 32,109,121, 95, 98,107,112,116, 10,
/* 0x1420 */ 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x1420 */ 48, 48, 48, 48, 48, 51, 57, 50, 32, 82, 95, 51, 56, 54, 95, 80,
/* 0x1430 */ 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, /* 0x1430 */ 67, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32,109,101,109,112, 99,
/* 0x1440 */ 56,100, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, /* 0x1440 */ 112,121, 10, 48, 48, 48, 48, 48, 51,101,101, 32, 82, 95, 51, 56,
/* 0x1450 */ 32, 32, 32, 32, 32,109,109, 97,112, 10, 48, 48, 48, 48, 48, 48, /* 0x1450 */ 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32,109,101,
/* 0x1460 */ 57, 52, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, /* 0x1460 */ 109,112, 99,112,121, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79,
/* 0x1470 */ 32, 32, 32, 32, 32,103,101,116, 95,112, 97,103,101, 95,109, 97, /* 0x1470 */ 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 85,
/* 0x1480 */ 115,107, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, /* 0x1480 */ 77, 70, 95, 76, 73, 78, 85, 88, 93, 58, 10, 79, 70, 70, 83, 69,
/* 0x1490 */ 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, /* 0x1490 */ 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x14a0 */ 65, 73, 78, 88, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, /* 0x14a0 */ 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48,
/* 0x14b0 */ 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x14b0 */ 48, 48,102,100, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32,
/* 0x14c0 */ 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 50, /* 0x14c0 */ 32, 32, 32, 32, 32, 32, 32,109,109, 97,112, 10, 48, 48, 48, 48,
/* 0x14d0 */ 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, /* 0x14d0 */ 48, 49, 48, 52, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32,
/* 0x14e0 */ 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 10, 82, 69, 76, /* 0x14e0 */ 32, 32, 32, 32, 32, 32, 32,103,101,116, 95,112, 97,103,101, 95,
/* 0x14f0 */ 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, /* 0x14f0 */ 109, 97,115,107, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78,
/* 0x1500 */ 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 90, 93, 58, 10, /* 0x1500 */ 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76,
/* 0x1510 */ 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, /* 0x1510 */ 70, 77, 65, 73, 78, 88, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32,
/* 0x1520 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, /* 0x1520 */ 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x1530 */ 10, 48, 48, 48, 48, 48, 48,102, 48, 32, 82, 95, 51, 56, 54, 95, /* 0x1530 */ 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48,
/* 0x1540 */ 80, 67, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, /* 0x1540 */ 48, 50, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32,
/* 0x1550 */ 65, 73, 78, 88, 10 /* 0x1550 */ 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 10, 82,
/* 0x1560 */ 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68,
/* 0x1570 */ 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 90, 93,
/* 0x1580 */ 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32,
/* 0x1590 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76,
/* 0x15a0 */ 85, 69, 10, 48, 48, 48, 48, 48, 48,102, 48, 32, 82, 95, 51, 56,
/* 0x15b0 */ 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 69, 76,
/* 0x15c0 */ 70, 77, 65, 73, 78, 88, 10
}; };
+1091 -1084
View File
File diff suppressed because it is too large Load Diff
+92 -102
View File
@@ -1,5 +1,5 @@
/* mips.r3000-linux.elf-entry.h /* mips.r3000-linux.elf-entry.h
created from mips.r3000-linux.elf-entry.bin, 2056 (0x808) bytes created from mips.r3000-linux.elf-entry.bin, 1897 (0x769) bytes
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
@@ -32,15 +32,15 @@
/* clang-format off */ /* clang-format off */
#define STUB_MIPS_R3000_LINUX_ELF_ENTRY_SIZE 2056 #define STUB_MIPS_R3000_LINUX_ELF_ENTRY_SIZE 1897
#define STUB_MIPS_R3000_LINUX_ELF_ENTRY_ADLER32 0xfd6d93a2 #define STUB_MIPS_R3000_LINUX_ELF_ENTRY_ADLER32 0x3a347ddd
#define STUB_MIPS_R3000_LINUX_ELF_ENTRY_CRC32 0x743aa3e3 #define STUB_MIPS_R3000_LINUX_ELF_ENTRY_CRC32 0xddfc99bb
unsigned char stub_mips_r3000_linux_elf_entry[2056] = { unsigned char stub_mips_r3000_linux_elf_entry[1897] = {
/* 0x0000 */ 127, 69, 76, 70, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0000 */ 127, 69, 76, 70, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0010 */ 0, 1, 0, 8, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0010 */ 0, 1, 0, 8, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0020 */ 0, 0, 3, 84, 0, 0, 0, 1, 0, 52, 0, 0, 0, 0, 0, 40, /* 0x0020 */ 0, 0, 3, 60, 0, 0, 0, 1, 0, 52, 0, 0, 0, 0, 0, 40,
/* 0x0030 */ 0, 8, 0, 5, 4, 17, 0, 77, 39,254, 0, 0, 39,189,255,252, /* 0x0030 */ 0, 8, 0, 5, 4, 17, 0, 71, 39,254, 0, 0, 39,189,255,252,
/* 0x0040 */ 175,191, 0, 0, 0,164, 40, 32,172,230, 0, 0, 60, 13,128, 0, /* 0x0040 */ 175,191, 0, 0, 0,164, 40, 32,172,230, 0, 0, 60, 13,128, 0,
/* 0x0050 */ 1,160, 72, 33, 36, 11, 0, 1, 4, 17, 0, 66, 36, 15, 0, 1, /* 0x0050 */ 1,160, 72, 33, 36, 11, 0, 1, 4, 17, 0, 66, 36, 15, 0, 1,
/* 0x0060 */ 17,192, 0, 5,144,142, 0, 0, 36,132, 0, 1, 36,198, 0, 1, /* 0x0060 */ 17,192, 0, 5,144,142, 0, 0, 36,132, 0, 1, 36,198, 0, 1,
@@ -63,11 +63,11 @@ unsigned char stub_mips_r3000_linux_elf_entry[2056] = {
/* 0x0170 */ 0, 9, 72, 64,140,227, 0, 0, 0,133,192, 35,143,191, 0, 0, /* 0x0170 */ 0, 9, 72, 64,140,227, 0, 0, 0,133,192, 35,143,191, 0, 0,
/* 0x0180 */ 175,184, 0, 0, 0, 96, 32, 33, 0,195, 40, 35,172,229, 0, 0, /* 0x0180 */ 175,184, 0, 0, 0, 96, 32, 33, 0,195, 40, 35,172,229, 0, 0,
/* 0x0190 */ 36, 6, 0, 3, 36, 2, 16, 51, 0, 0, 0, 12,143,162, 0, 0, /* 0x0190 */ 36, 6, 0, 3, 36, 2, 16, 51, 0, 0, 0, 12,143,162, 0, 0,
/* 0x01a0 */ 3,224, 0, 8, 39,189, 0, 4, 36, 4, 0, 2, 36, 2, 15,164, /* 0x01a0 */ 3,224, 0, 8, 39,189, 0, 4, 39,189,255,224,175,188, 0, 16,
/* 0x01b0 */ 0, 0, 0, 12, 36, 4, 0,127, 36, 2, 15,161, 0, 0, 0, 12, /* 0x01b0 */ 143,209,255,244, 39,213,255,244, 2,177,168, 34, 36, 5, 0, 16,
/* 0x01c0 */ 39,189,255,224,175,188, 0, 16,143,209,255,244, 39,213,255,244, /* 0x01c0 */ 4, 17, 0, 2, 3,224, 32, 33,117,112,120, 0, 36, 2, 17, 2,
/* 0x01d0 */ 2,177,168, 34, 4, 17, 0, 2, 3,224, 32, 33,117,112,120, 0, /* 0x01d0 */ 0, 0, 0, 12, 16,224, 0, 6, 0, 64,184, 33, 16,160, 0, 3,
/* 0x01e0 */ 0, 0, 40, 33, 36, 2, 17, 2, 0, 0, 0, 12, 0, 64,184, 33, /* 0x01e0 */ 36, 69,255,234, 16,160,255,246, 0, 0, 0, 0, 0, 0, 0, 13,
/* 0x01f0 */ 142,147, 0, 0, 3,160,240, 33,175,179, 0, 28, 36, 1,255,248, /* 0x01f0 */ 142,147, 0, 0, 3,160,240, 33,175,179, 0, 28, 36, 1,255,248,
/* 0x0200 */ 3,179,232, 35, 3,161,232, 36,142,144,255,252, 36, 1,255,252, /* 0x0200 */ 3,179,232, 35, 3,161,232, 36,142,144,255,252, 36, 1,255,252,
/* 0x0210 */ 2, 1,128, 36,130,136, 0, 8,175,211, 0, 24, 39,199, 0, 24, /* 0x0210 */ 2, 1,128, 36,130,136, 0, 8,175,211, 0, 24, 39,199, 0, 24,
@@ -75,95 +75,85 @@ unsigned char stub_mips_r3000_linux_elf_entry[2056] = {
/* 0x0230 */ 175,188, 0, 0,147,161, 0, 0,143,163, 0, 36, 16, 32, 0, 3, /* 0x0230 */ 175,188, 0, 0,147,161, 0, 0,143,163, 0, 36, 16, 32, 0, 3,
/* 0x0240 */ 143,161, 0, 28,175,163, 0, 24,175,161, 0, 16, 2, 96, 48, 33, /* 0x0240 */ 143,161, 0, 28,175,163, 0, 24,175,161, 0, 16, 2, 96, 48, 33,
/* 0x0250 */ 3,160, 40, 33, 2,224, 32, 33, 36, 2, 15,164, 0, 0, 0, 12, /* 0x0250 */ 3,160, 40, 33, 2,224, 32, 33, 36, 2, 15,164, 0, 0, 0, 12,
/* 0x0260 */ 3,192,232, 33, 39,189,255,232,175,160, 0, 20,175,183, 0, 16, /* 0x0260 */ 20,224,255,226, 3,192,232, 33, 39,189,255,232,175,160, 0, 20,
/* 0x0270 */ 36, 7, 0, 1, 36, 6, 0, 5,142,133, 0, 0, 0, 0, 32, 33, /* 0x0270 */ 175,183, 0, 16, 36, 7, 0, 1, 36, 6, 0, 5,142,133, 0, 0,
/* 0x0280 */ 36, 2, 15,250, 0, 0, 0, 12, 39,189, 0, 24,175,162, 0, 24, /* 0x0280 */ 0, 0, 32, 33, 36, 2, 15,250, 0, 0, 0, 12, 20,224,255,215,
/* 0x0290 */ 36, 95, 0, 8, 2,224, 32, 33, 36, 2, 15,166, 0, 0, 0, 12, /* 0x0290 */ 39,189, 0, 24,175,162, 0, 24, 36, 95, 0, 8, 2,224, 32, 33,
/* 0x02a0 */ 3,224, 0, 8, 2,176,128, 33, 36, 2, 17, 2, 0, 0, 0, 12, /* 0x02a0 */ 36, 2, 15,166, 0, 0, 0, 12, 3,224, 0, 8, 2,176,128, 33,
/* 0x02b0 */ 3,224, 0, 8, 0, 0, 0, 0, 36, 2, 15,253, 0, 0, 0, 12, /* 0x02b0 */ 140,131, 0, 0, 36,132, 0, 4, 20, 96,255,253, 0,128,176, 33,
/* 0x02c0 */ 3,224, 0, 8, 0, 0, 0, 0,140,131, 0, 0, 36,132, 0, 4, /* 0x02c0 */ 3,224, 0, 8, 36, 8, 0, 6, 4, 17,255,249, 39,164, 0, 4,
/* 0x02d0 */ 20, 96,255,253, 0,128,176, 33, 3,224, 0, 8, 36, 8, 0, 6, /* 0x02d0 */ 4, 17,255,247, 2,192, 32, 33,140,131, 0, 0, 36,132, 0, 8,
/* 0x02e0 */ 4, 17,255,249, 39,164, 0, 4, 4, 17,255,247, 2,192, 32, 33, /* 0x02e0 */ 16,104, 0, 3,140,130,255,252, 20, 96,255,251, 36, 2, 16, 0,
/* 0x02f0 */ 140,131, 0, 0, 36,132, 0, 8, 16,104, 0, 3,140,130,255,252, /* 0x02f0 */ 0, 0, 0, 0, 0, 2,224, 34, 4, 17,255,171, 39,244, 0, 4,
/* 0x0300 */ 20, 96,255,251, 36, 2, 16, 0, 0, 0, 0, 0, 0, 2,224, 34, /* 0x0300 */ 0, 0, 0, 0, 0, 46,115,121,109,116, 97, 98, 0, 46,115,116,
/* 0x0310 */ 4, 17,255,171, 39,244, 0, 4, 0, 0, 0, 0, 0, 46,115,121, /* 0x0310 */ 114,116, 97, 98, 0, 46,115,104,115,116,114,116, 97, 98, 0, 46,
/* 0x0320 */ 109,116, 97, 98, 0, 46,115,116,114,116, 97, 98, 0, 46,115,104, /* 0x0320 */ 114,101,108, 69, 76, 70, 77, 65, 73, 78, 88, 0, 46,114,101,108,
/* 0x0330 */ 115,116,114,116, 97, 98, 0, 46,114,101,108, 69, 76, 70, 77, 65, /* 0x0330 */ 69, 76, 70, 77, 65, 73, 78, 90, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0340 */ 73, 78, 88, 0, 46,114,101,108, 69, 76, 70, 77, 65, 73, 78, 90, /* 0x0340 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0350 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0350 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0360 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0360 */ 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 6,
/* 0x0370 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, /* 0x0370 */ 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 1,116, 0, 0, 0, 0,
/* 0x0380 */ 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 52, /* 0x0380 */ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 27,
/* 0x0390 */ 0, 0, 1,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, /* 0x0390 */ 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,240,
/* 0x03a0 */ 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 9, 0, 0, 0, 0, /* 0x03a0 */ 0, 0, 0, 8, 0, 0, 0, 6, 0, 0, 0, 1, 0, 0, 0, 4,
/* 0x03b0 */ 0, 0, 0, 0, 0, 0, 5, 64, 0, 0, 0, 8, 0, 0, 0, 6, /* 0x03b0 */ 0, 0, 0, 8, 0, 0, 0, 44, 0, 0, 0, 1, 0, 0, 0, 6,
/* 0x03c0 */ 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, 44, /* 0x03c0 */ 0, 0, 0, 0, 0, 0, 1,168, 0, 0, 1, 92, 0, 0, 0, 0,
/* 0x03d0 */ 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 1,168, /* 0x03d0 */ 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 40,
/* 0x03e0 */ 0, 0, 1,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, /* 0x03e0 */ 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,248,
/* 0x03f0 */ 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 9, 0, 0, 0, 0, /* 0x03f0 */ 0, 0, 0, 16, 0, 0, 0, 6, 0, 0, 0, 3, 0, 0, 0, 4,
/* 0x0400 */ 0, 0, 0, 0, 0, 0, 5, 72, 0, 0, 0, 16, 0, 0, 0, 6, /* 0x0400 */ 0, 0, 0, 8, 0, 0, 0, 17, 0, 0, 0, 3, 0, 0, 0, 0,
/* 0x0410 */ 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, 17, /* 0x0410 */ 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, 0, 53, 0, 0, 0, 0,
/* 0x0420 */ 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 28, /* 0x0420 */ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1,
/* 0x0430 */ 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, /* 0x0430 */ 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4,124,
/* 0x0440 */ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, /* 0x0440 */ 0, 0, 0, 80, 0, 0, 0, 7, 0, 0, 0, 3, 0, 0, 0, 4,
/* 0x0450 */ 0, 0, 0, 0, 0, 0, 4,148, 0, 0, 0,112, 0, 0, 0, 7, /* 0x0450 */ 0, 0, 0, 16, 0, 0, 0, 9, 0, 0, 0, 3, 0, 0, 0, 0,
/* 0x0460 */ 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 16, 0, 0, 0, 9, /* 0x0460 */ 0, 0, 0, 0, 0, 0, 4,204, 0, 0, 0, 34, 0, 0, 0, 0,
/* 0x0470 */ 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, /* 0x0470 */ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0480 */ 0, 0, 0, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, /* 0x0480 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
/* 0x0490 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0490 */ 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 1, 0, 0, 0, 10,
/* 0x04a0 */ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x04a0 */ 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 3, 0, 0, 0, 19,
/* 0x04b0 */ 3, 0, 0, 1, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x04b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 1, 0, 0, 0, 26,
/* 0x04c0 */ 3, 0, 0, 3, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x04c0 */ 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 69, 76, 70,
/* 0x04d0 */ 17, 0, 0, 1, 0, 0, 0, 26, 0, 0, 1, 0, 0, 0, 0, 0, /* 0x04d0 */ 77, 65, 73, 78, 88, 0, 69, 76, 70, 77, 65, 73, 78, 90, 0, 95,
/* 0x04e0 */ 17, 0, 0, 3, 0, 0, 0, 39, 0, 0, 1, 16, 0, 0, 0, 0, /* 0x04e0 */ 115,116, 97,114,116, 0, 79, 95, 66, 73, 78, 70, 79, 0, 0, 0,
/* 0x04f0 */ 17, 0, 0, 3, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x04f0 */ 0, 0, 0, 0, 0, 0, 2, 10, 0, 0, 0,128, 0, 0, 1, 10,
/* 0x0500 */ 16, 0, 0, 0, 0, 69, 76, 70, 77, 65, 73, 78, 88, 0, 69, 76, /* 0x0500 */ 0, 0, 1, 88, 0, 0, 4, 2,102,105,108,101, 32,102,111,114,
/* 0x0510 */ 70, 77, 65, 73, 78, 90, 0, 95,115,116, 97,114,116, 0,109,101, /* 0x0510 */ 109, 97,116, 32,101,108,102, 51, 50, 45, 98,105,103,109,105,112,
/* 0x0520 */ 109,102,100, 95, 99,114,101, 97,116,101, 0,102,116,114,117,110, /* 0x0520 */ 115, 10, 10, 83,101, 99,116,105,111,110,115, 58, 10, 73,100,120,
/* 0x0530 */ 99, 97,116,101, 0, 79, 95, 66, 73, 78, 70, 79, 0, 0, 0, 0, /* 0x0530 */ 32, 78, 97,109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83,
/* 0x0540 */ 0, 0, 0, 0, 0, 0, 2, 10, 0, 0, 0,128, 0, 0, 1, 10, /* 0x0540 */ 105,122,101, 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32, 32, 32,
/* 0x0550 */ 0, 0, 1,112, 0, 0, 6, 2,102,105,108,101, 32,102,111,114, /* 0x0550 */ 32, 32, 32, 76, 77, 65, 32, 32, 32, 32, 32, 32, 32, 70,105,108,
/* 0x0560 */ 109, 97,116, 32,101,108,102, 51, 50, 45, 98,105,103,109,105,112, /* 0x0560 */ 101, 32,111,102,102, 32, 32, 65,108,103,110, 32, 32, 70,108, 97,
/* 0x0570 */ 115, 10, 10, 83,101, 99,116,105,111,110,115, 58, 10, 73,100,120, /* 0x0570 */ 103,115, 10, 32, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32,
/* 0x0580 */ 32, 78, 97,109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83, /* 0x0580 */ 32, 32, 32, 32, 32, 48, 49, 55, 52, 32, 32, 48, 32, 32, 48, 32,
/* 0x0590 */ 105,122,101, 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32, 32, 32, /* 0x0590 */ 32, 48, 51, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84,
/* 0x05a0 */ 32, 32, 32, 76, 77, 65, 32, 32, 32, 32, 32, 32, 32, 70,105,108, /* 0x05a0 */ 69, 78, 84, 83, 10, 32, 32, 49, 32, 69, 76, 70, 77, 65, 73, 78,
/* 0x05b0 */ 101, 32,111,102,102, 32, 32, 65,108,103,110, 32, 32, 70,108, 97, /* 0x05b0 */ 90, 32, 32, 32, 32, 32, 32, 48, 49, 53, 99, 32, 32, 48, 32, 32,
/* 0x05c0 */ 103,115, 10, 32, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, /* 0x05c0 */ 48, 32, 32, 48, 49, 97, 56, 32, 32, 50, 42, 42, 50, 32, 32, 67,
/* 0x05d0 */ 32, 32, 32, 32, 32, 48, 49, 55, 52, 32, 32, 48, 32, 32, 48, 32, /* 0x05d0 */ 79, 78, 84, 69, 78, 84, 83, 10, 83, 89, 77, 66, 79, 76, 32, 84,
/* 0x05e0 */ 32, 48, 51, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, /* 0x05e0 */ 65, 66, 76, 69, 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108,
/* 0x05f0 */ 69, 78, 84, 83, 10, 32, 32, 49, 32, 69, 76, 70, 77, 65, 73, 78, /* 0x05f0 */ 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32,
/* 0x0600 */ 90, 32, 32, 32, 32, 32, 32, 48, 49, 55, 52, 32, 32, 48, 32, 32, /* 0x0600 */ 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, 48,
/* 0x0610 */ 48, 32, 32, 48, 49, 97, 56, 32, 32, 50, 42, 42, 50, 32, 32, 67, /* 0x0610 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77,
/* 0x0620 */ 79, 78, 84, 69, 78, 84, 83, 10, 83, 89, 77, 66, 79, 76, 32, 84, /* 0x0620 */ 65, 73, 78, 90, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10,
/* 0x0630 */ 65, 66, 76, 69, 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, /* 0x0630 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 79,
/* 0x0640 */ 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, /* 0x0640 */ 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 32, 95,115,116, 97,
/* 0x0650 */ 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, /* 0x0650 */ 114,116, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32,
/* 0x0660 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, /* 0x0660 */ 32, 32, 32, 32, 42, 85, 78, 68, 42, 32, 48, 32, 79, 95, 66, 73,
/* 0x0670 */ 65, 73, 78, 90, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, /* 0x0670 */ 78, 70, 79, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32,
/* 0x0680 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 79, /* 0x0680 */ 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70,
/* 0x0690 */ 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 32, 95,115,116, 97, /* 0x0690 */ 77, 65, 73, 78, 88, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32,
/* 0x06a0 */ 114,116, 10, 48, 48, 48, 48, 48, 49, 48, 48, 32,103, 32, 32, 32, /* 0x06a0 */ 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x06b0 */ 32, 32, 79, 32, 69, 76, 70, 77, 65, 73, 78, 90, 32, 48, 32,109, /* 0x06b0 */ 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48,
/* 0x06c0 */ 101,109,102,100, 95, 99,114,101, 97,116,101, 10, 48, 48, 48, 48, /* 0x06c0 */ 48, 32, 82, 95, 77, 73, 80, 83, 95, 80, 67, 49, 54, 32, 32, 32,
/* 0x06d0 */ 48, 49, 49, 48, 32,103, 32, 32, 32, 32, 32, 79, 32, 69, 76, 70, /* 0x06d0 */ 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 10, 82, 69,
/* 0x06e0 */ 77, 65, 73, 78, 90, 32, 48, 32,102,116,114,117,110, 99, 97,116, /* 0x06e0 */ 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83,
/* 0x06f0 */ 101, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, /* 0x06f0 */ 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 90, 93, 58,
/* 0x0700 */ 32, 32, 32, 42, 85, 78, 68, 42, 32, 48, 32, 79, 95, 66, 73, 78, /* 0x0700 */ 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32,
/* 0x0710 */ 70, 79, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, /* 0x0710 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85,
/* 0x0720 */ 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, /* 0x0720 */ 69, 10, 48, 48, 48, 48, 48, 48, 56, 48, 32, 82, 95, 77, 73, 80,
/* 0x0730 */ 65, 73, 78, 88, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, /* 0x0730 */ 83, 95, 80, 67, 49, 54, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70,
/* 0x0740 */ 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x0740 */ 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 49, 53, 56, 32, 82,
/* 0x0750 */ 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x0750 */ 95, 77, 73, 80, 83, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x0760 */ 32, 82, 95, 77, 73, 80, 83, 95, 80, 67, 49, 54, 32, 32, 32, 32, /* 0x0760 */ 32, 79, 95, 66, 73, 78, 70, 79, 10
/* 0x0770 */ 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 10, 82, 69, 76,
/* 0x0780 */ 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32,
/* 0x0790 */ 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 90, 93, 58, 10,
/* 0x07a0 */ 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32,
/* 0x07b0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69,
/* 0x07c0 */ 10, 48, 48, 48, 48, 48, 48, 56, 48, 32, 82, 95, 77, 73, 80, 83,
/* 0x07d0 */ 95, 80, 67, 49, 54, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77,
/* 0x07e0 */ 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 49, 55, 48, 32, 82, 95,
/* 0x07f0 */ 77, 73, 80, 83, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x0800 */ 79, 95, 66, 73, 78, 70, 79, 10
}; };
+1183 -1170
View File
File diff suppressed because it is too large Load Diff
+93 -103
View File
@@ -1,5 +1,5 @@
/* mipsel.r3000-linux.elf-entry.h /* mipsel.r3000-linux.elf-entry.h
created from mipsel.r3000-linux.elf-entry.bin, 2019 (0x7e3) bytes created from mipsel.r3000-linux.elf-entry.bin, 1860 (0x744) bytes
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
@@ -32,15 +32,15 @@
/* clang-format off */ /* clang-format off */
#define STUB_MIPSEL_R3000_LINUX_ELF_ENTRY_SIZE 2019 #define STUB_MIPSEL_R3000_LINUX_ELF_ENTRY_SIZE 1860
#define STUB_MIPSEL_R3000_LINUX_ELF_ENTRY_ADLER32 0xfb988e20 #define STUB_MIPSEL_R3000_LINUX_ELF_ENTRY_ADLER32 0x26f5775c
#define STUB_MIPSEL_R3000_LINUX_ELF_ENTRY_CRC32 0xe437900d #define STUB_MIPSEL_R3000_LINUX_ELF_ENTRY_CRC32 0x15b536db
unsigned char stub_mipsel_r3000_linux_elf_entry[2019] = { unsigned char stub_mipsel_r3000_linux_elf_entry[1860] = {
/* 0x0000 */ 127, 69, 76, 70, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0000 */ 127, 69, 76, 70, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0010 */ 1, 0, 8, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0010 */ 1, 0, 8, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0020 */ 44, 3, 0, 0, 1, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, 0, /* 0x0020 */ 20, 3, 0, 0, 1, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, 0,
/* 0x0030 */ 8, 0, 5, 0, 77, 0, 17, 4, 0, 0,254, 39,252,255,189, 39, /* 0x0030 */ 8, 0, 5, 0, 71, 0, 17, 4, 0, 0,254, 39,252,255,189, 39,
/* 0x0040 */ 0, 0,191,175, 32, 40,164, 0, 0, 0,230,172, 0,128, 13, 60, /* 0x0040 */ 0, 0,191,175, 32, 40,164, 0, 0, 0,230,172, 0,128, 13, 60,
/* 0x0050 */ 33, 72,160, 1, 1, 0, 11, 36, 56, 0, 17, 4, 1, 0, 15, 36, /* 0x0050 */ 33, 72,160, 1, 1, 0, 11, 36, 56, 0, 17, 4, 1, 0, 15, 36,
/* 0x0060 */ 5, 0,192, 17, 0, 0,142,144, 1, 0,132, 36, 1, 0,198, 36, /* 0x0060 */ 5, 0,192, 17, 0, 0,142,144, 1, 0,132, 36, 1, 0,198, 36,
@@ -61,107 +61,97 @@ unsigned char stub_mipsel_r3000_linux_elf_entry[2019] = {
/* 0x0150 */ 35,192,133, 0, 0, 0,191,143, 0, 0,184,175, 33, 32, 96, 0, /* 0x0150 */ 35,192,133, 0, 0, 0,191,143, 0, 0,184,175, 33, 32, 96, 0,
/* 0x0160 */ 35, 40,195, 0, 0, 0,229,172, 3, 0, 6, 36, 51, 16, 2, 36, /* 0x0160 */ 35, 40,195, 0, 0, 0,229,172, 3, 0, 6, 36, 51, 16, 2, 36,
/* 0x0170 */ 12, 0, 0, 0, 0, 0,162,143, 8, 0,224, 3, 4, 0,189, 39, /* 0x0170 */ 12, 0, 0, 0, 0, 0,162,143, 8, 0,224, 3, 4, 0,189, 39,
/* 0x0180 */ 2, 0, 4, 36,164, 15, 2, 36, 12, 0, 0, 0,127, 0, 4, 36, /* 0x0180 */ 224,255,189, 39, 16, 0,188,175,244,255,209,143,244,255,213, 39,
/* 0x0190 */ 161, 15, 2, 36, 12, 0, 0, 0,224,255,189, 39, 16, 0,188,175, /* 0x0190 */ 34,168,177, 2, 16, 0, 5, 36, 2, 0, 17, 4, 33, 32,224, 3,
/* 0x01a0 */ 244,255,209,143,244,255,213, 39, 34,168,177, 2, 2, 0, 17, 4, /* 0x01a0 */ 117,112,120, 0, 2, 17, 2, 36, 12, 0, 0, 0, 6, 0,224, 16,
/* 0x01b0 */ 33, 32,224, 3,117,112,120, 0, 33, 40, 0, 0, 2, 17, 2, 36, /* 0x01b0 */ 33,184, 64, 0, 3, 0,160, 16,234,255, 69, 36,246,255,160, 16,
/* 0x01c0 */ 12, 0, 0, 0, 33,184, 64, 0, 0, 0,147,142, 33,240,160, 3, /* 0x01c0 */ 0, 0, 0, 0, 13, 0, 0, 0, 0, 0,147,142, 33,240,160, 3,
/* 0x01d0 */ 28, 0,179,175,248,255, 1, 36, 35,232,179, 3, 36,232,161, 3, /* 0x01d0 */ 28, 0,179,175,248,255, 1, 36, 35,232,179, 3, 36,232,161, 3,
/* 0x01e0 */ 252,255,144,142,252,255, 1, 36, 36,128, 1, 2, 8, 0,136,130, /* 0x01e0 */ 252,255,144,142,252,255, 1, 36, 36,128, 1, 2, 8, 0,136,130,
/* 0x01f0 */ 24, 0,211,175, 24, 0,199, 39, 33, 48,160, 3, 4, 0,133,142, /* 0x01f0 */ 24, 0,211,175, 24, 0,199, 39, 33, 48,160, 3, 4, 0,133,142,
/* 0x0200 */ 1, 0, 17, 4, 12, 0,132, 38, 0, 0,188,175, 0, 0,161,147, /* 0x0200 */ 1, 0, 17, 4, 12, 0,132, 38, 0, 0,188,175, 0, 0,161,147,
/* 0x0210 */ 36, 0,163,143, 3, 0, 32, 16, 28, 0,161,143, 24, 0,163,175, /* 0x0210 */ 36, 0,163,143, 3, 0, 32, 16, 28, 0,161,143, 24, 0,163,175,
/* 0x0220 */ 16, 0,161,175, 33, 48, 96, 2, 33, 40,160, 3, 33, 32,224, 2, /* 0x0220 */ 16, 0,161,175, 33, 48, 96, 2, 33, 40,160, 3, 33, 32,224, 2,
/* 0x0230 */ 164, 15, 2, 36, 12, 0, 0, 0, 33,232,192, 3,232,255,189, 39, /* 0x0230 */ 164, 15, 2, 36, 12, 0, 0, 0,226,255,224, 20, 33,232,192, 3,
/* 0x0240 */ 20, 0,160,175, 16, 0,183,175, 1, 0, 7, 36, 5, 0, 6, 36, /* 0x0240 */ 232,255,189, 39, 20, 0,160,175, 16, 0,183,175, 1, 0, 7, 36,
/* 0x0250 */ 0, 0,133,142, 33, 32, 0, 0,250, 15, 2, 36, 12, 0, 0, 0, /* 0x0250 */ 5, 0, 6, 36, 0, 0,133,142, 33, 32, 0, 0,250, 15, 2, 36,
/* 0x0260 */ 24, 0,189, 39, 24, 0,162,175, 8, 0, 95, 36, 33, 32,224, 2, /* 0x0260 */ 12, 0, 0, 0,215,255,224, 20, 24, 0,189, 39, 24, 0,162,175,
/* 0x0270 */ 166, 15, 2, 36, 12, 0, 0, 0, 8, 0,224, 3, 33,128,176, 2, /* 0x0270 */ 8, 0, 95, 36, 33, 32,224, 2,166, 15, 2, 36, 12, 0, 0, 0,
/* 0x0280 */ 2, 17, 2, 36, 12, 0, 0, 0, 8, 0,224, 3, 0, 0, 0, 0, /* 0x0280 */ 8, 0,224, 3, 33,128,176, 2, 0, 0,131,140, 4, 0,132, 36,
/* 0x0290 */ 253, 15, 2, 36, 12, 0, 0, 0, 8, 0,224, 3, 0, 0, 0, 0, /* 0x0290 */ 253,255, 96, 20, 33,176,128, 0, 8, 0,224, 3, 6, 0, 8, 36,
/* 0x02a0 */ 0, 0,131,140, 4, 0,132, 36,253,255, 96, 20, 33,176,128, 0, /* 0x02a0 */ 249,255, 17, 4, 4, 0,164, 39,247,255, 17, 4, 33, 32,192, 2,
/* 0x02b0 */ 8, 0,224, 3, 6, 0, 8, 36,249,255, 17, 4, 4, 0,164, 39, /* 0x02b0 */ 0, 0,131,140, 8, 0,132, 36, 3, 0,104, 16,252,255,130,140,
/* 0x02c0 */ 247,255, 17, 4, 33, 32,192, 2, 0, 0,131,140, 8, 0,132, 36, /* 0x02c0 */ 251,255, 96, 20, 0, 16, 2, 36, 0, 0, 0, 0, 34,224, 2, 0,
/* 0x02d0 */ 3, 0,104, 16,252,255,130,140,251,255, 96, 20, 0, 16, 2, 36, /* 0x02d0 */ 171,255, 17, 4, 4, 0,244, 39, 0, 0, 0, 0, 0, 46,115,121,
/* 0x02e0 */ 0, 0, 0, 0, 34,224, 2, 0,171,255, 17, 4, 4, 0,244, 39, /* 0x02e0 */ 109,116, 97, 98, 0, 46,115,116,114,116, 97, 98, 0, 46,115,104,
/* 0x02f0 */ 0, 0, 0, 0, 0, 46,115,121,109,116, 97, 98, 0, 46,115,116, /* 0x02f0 */ 115,116,114,116, 97, 98, 0, 46,114,101,108, 69, 76, 70, 77, 65,
/* 0x0300 */ 114,116, 97, 98, 0, 46,115,104,115,116,114,116, 97, 98, 0, 46, /* 0x0300 */ 73, 78, 88, 0, 46,114,101,108, 69, 76, 70, 77, 65, 73, 78, 90,
/* 0x0310 */ 114,101,108, 69, 76, 70, 77, 65, 73, 78, 88, 0, 46,114,101,108, /* 0x0310 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0320 */ 69, 76, 70, 77, 65, 73, 78, 90, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0320 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0330 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0330 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0,
/* 0x0340 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0340 */ 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0,
/* 0x0350 */ 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, /* 0x0350 */ 76, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
/* 0x0360 */ 0, 0, 0, 0, 52, 0, 0, 0, 76, 1, 0, 0, 0, 0, 0, 0, /* 0x0360 */ 0, 0, 0, 0, 27, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
/* 0x0370 */ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, /* 0x0370 */ 0, 0, 0, 0,200, 4, 0, 0, 8, 0, 0, 0, 6, 0, 0, 0,
/* 0x0380 */ 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 5, 0, 0, /* 0x0380 */ 1, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, 44, 0, 0, 0,
/* 0x0390 */ 8, 0, 0, 0, 6, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, /* 0x0390 */ 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0,128, 1, 0, 0,
/* 0x03a0 */ 8, 0, 0, 0, 44, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, /* 0x03a0 */ 92, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0,
/* 0x03b0 */ 0, 0, 0, 0,128, 1, 0, 0,116, 1, 0, 0, 0, 0, 0, 0, /* 0x03b0 */ 0, 0, 0, 0, 40, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
/* 0x03c0 */ 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, /* 0x03c0 */ 0, 0, 0, 0,208, 4, 0, 0, 16, 0, 0, 0, 6, 0, 0, 0,
/* 0x03d0 */ 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 5, 0, 0, /* 0x03d0 */ 3, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, 17, 0, 0, 0,
/* 0x03e0 */ 16, 0, 0, 0, 6, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, /* 0x03e0 */ 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 2, 0, 0,
/* 0x03f0 */ 8, 0, 0, 0, 17, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, /* 0x03f0 */ 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
/* 0x0400 */ 0, 0, 0, 0,244, 2, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, /* 0x0400 */ 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
/* 0x0410 */ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, /* 0x0410 */ 0, 0, 0, 0, 84, 4, 0, 0, 80, 0, 0, 0, 7, 0, 0, 0,
/* 0x0420 */ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,108, 4, 0, 0, /* 0x0420 */ 3, 0, 0, 0, 4, 0, 0, 0, 16, 0, 0, 0, 9, 0, 0, 0,
/* 0x0430 */ 112, 0, 0, 0, 7, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, /* 0x0430 */ 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,164, 4, 0, 0,
/* 0x0440 */ 16, 0, 0, 0, 9, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, /* 0x0440 */ 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
/* 0x0450 */ 0, 0, 0, 0,220, 4, 0, 0, 57, 0, 0, 0, 0, 0, 0, 0, /* 0x0450 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0460 */ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0460 */ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0470 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, /* 0x0470 */ 3, 0, 1, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0480 */ 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 0, 10, 0, 0, 0, /* 0x0480 */ 3, 0, 3, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0490 */ 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 3, 0, 19, 0, 0, 0, /* 0x0490 */ 17, 0, 1, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x04a0 */ 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 1, 0, 26, 0, 0, 0, /* 0x04a0 */ 16, 0, 0, 0, 0, 69, 76, 70, 77, 65, 73, 78, 88, 0, 69, 76,
/* 0x04b0 */ 0, 1, 0, 0, 0, 0, 0, 0, 17, 0, 3, 0, 39, 0, 0, 0, /* 0x04b0 */ 70, 77, 65, 73, 78, 90, 0, 95,115,116, 97,114,116, 0, 79, 95,
/* 0x04c0 */ 16, 1, 0, 0, 0, 0, 0, 0, 17, 0, 3, 0, 49, 0, 0, 0, /* 0x04c0 */ 66, 73, 78, 70, 79, 0, 0, 0, 0, 0, 0, 0, 10, 2, 0, 0,
/* 0x04d0 */ 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 69, 76, 70, /* 0x04d0 */ 128, 0, 0, 0, 10, 1, 0, 0, 88, 1, 0, 0, 2, 4, 0, 0,
/* 0x04e0 */ 77, 65, 73, 78, 88, 0, 69, 76, 70, 77, 65, 73, 78, 90, 0, 95, /* 0x04e0 */ 102,105,108,101, 32,102,111,114,109, 97,116, 32,101,108,102, 51,
/* 0x04f0 */ 115,116, 97,114,116, 0,109,101,109,102,100, 95, 99,114,101, 97, /* 0x04f0 */ 50, 45,108,105,116,116,108,101,109,105,112,115, 10, 10, 83,101,
/* 0x0500 */ 116,101, 0,102,116,114,117,110, 99, 97,116,101, 0, 79, 95, 66, /* 0x0500 */ 99,116,105,111,110,115, 58, 10, 73,100,120, 32, 78, 97,109,101,
/* 0x0510 */ 73, 78, 70, 79, 0, 0, 0, 0, 0, 0, 0, 0, 10, 2, 0, 0, /* 0x0510 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83,105,122,101, 32, 32,
/* 0x0520 */ 128, 0, 0, 0, 10, 1, 0, 0,112, 1, 0, 0, 2, 6, 0, 0, /* 0x0520 */ 32, 32, 32, 32, 86, 77, 65, 32, 32, 32, 32, 32, 32, 32, 76, 77,
/* 0x0530 */ 102,105,108,101, 32,102,111,114,109, 97,116, 32,101,108,102, 51, /* 0x0530 */ 65, 32, 32, 32, 32, 32, 32, 32, 70,105,108,101, 32,111,102,102,
/* 0x0540 */ 50, 45,108,105,116,116,108,101,109,105,112,115, 10, 10, 83,101, /* 0x0540 */ 32, 32, 65,108,103,110, 32, 32, 70,108, 97,103,115, 10, 32, 32,
/* 0x0550 */ 99,116,105,111,110,115, 58, 10, 73,100,120, 32, 78, 97,109,101, /* 0x0550 */ 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 32, 32, 32, 32, 32,
/* 0x0560 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83,105,122,101, 32, 32, /* 0x0560 */ 48, 49, 52, 99, 32, 32, 48, 32, 32, 48, 32, 32, 48, 51, 52, 32,
/* 0x0570 */ 32, 32, 32, 32, 86, 77, 65, 32, 32, 32, 32, 32, 32, 32, 76, 77, /* 0x0570 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10,
/* 0x0580 */ 65, 32, 32, 32, 32, 32, 32, 32, 70,105,108,101, 32,111,102,102, /* 0x0580 */ 32, 32, 49, 32, 69, 76, 70, 77, 65, 73, 78, 90, 32, 32, 32, 32,
/* 0x0590 */ 32, 32, 65,108,103,110, 32, 32, 70,108, 97,103,115, 10, 32, 32, /* 0x0590 */ 32, 32, 48, 49, 53, 99, 32, 32, 48, 32, 32, 48, 32, 32, 48, 49,
/* 0x05a0 */ 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 32, 32, 32, 32, 32, /* 0x05a0 */ 56, 48, 32, 32, 50, 42, 42, 50, 32, 32, 67, 79, 78, 84, 69, 78,
/* 0x05b0 */ 48, 49, 52, 99, 32, 32, 48, 32, 32, 48, 32, 32, 48, 51, 52, 32, /* 0x05b0 */ 84, 83, 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, 66, 76, 69, 58,
/* 0x05c0 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, /* 0x05c0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100,
/* 0x05d0 */ 32, 32, 49, 32, 69, 76, 70, 77, 65, 73, 78, 90, 32, 32, 32, 32, /* 0x05d0 */ 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 32, 69, 76, 70,
/* 0x05e0 */ 32, 32, 48, 49, 55, 52, 32, 32, 48, 32, 32, 48, 32, 32, 48, 49, /* 0x05e0 */ 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108,
/* 0x05f0 */ 56, 48, 32, 32, 50, 42, 42, 50, 32, 32, 67, 79, 78, 84, 69, 78, /* 0x05f0 */ 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 32,
/* 0x0600 */ 84, 83, 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, 66, 76, 69, 58, /* 0x0600 */ 48, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48,
/* 0x0610 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, /* 0x0610 */ 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 79, 32, 69, 76, 70, 77,
/* 0x0620 */ 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 32, 69, 76, 70, /* 0x0620 */ 65, 73, 78, 88, 32, 48, 32, 95,115,116, 97,114,116, 10, 48, 48,
/* 0x0630 */ 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, /* 0x0630 */ 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42,
/* 0x0640 */ 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 32, /* 0x0640 */ 85, 78, 68, 42, 32, 48, 32, 79, 95, 66, 73, 78, 70, 79, 10, 10,
/* 0x0650 */ 48, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, /* 0x0650 */ 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82,
/* 0x0660 */ 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 79, 32, 69, 76, 70, 77, /* 0x0660 */ 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 88,
/* 0x0670 */ 65, 73, 78, 88, 32, 48, 32, 95,115,116, 97,114,116, 10, 48, 48, /* 0x0670 */ 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69,
/* 0x0680 */ 48, 48, 48, 49, 48, 48, 32,103, 32, 32, 32, 32, 32, 79, 32, 69, /* 0x0680 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65,
/* 0x0690 */ 76, 70, 77, 65, 73, 78, 90, 32, 48, 32,109,101,109,102,100, 95, /* 0x0690 */ 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 82, 95, 77,
/* 0x06a0 */ 99,114,101, 97,116,101, 10, 48, 48, 48, 48, 48, 49, 49, 48, 32, /* 0x06a0 */ 73, 80, 83, 95, 80, 67, 49, 54, 32, 32, 32, 32, 32, 32, 32, 69,
/* 0x06b0 */ 103, 32, 32, 32, 32, 32, 79, 32, 69, 76, 70, 77, 65, 73, 78, 90, /* 0x06b0 */ 76, 70, 77, 65, 73, 78, 90, 10, 10, 82, 69, 76, 79, 67, 65, 84,
/* 0x06c0 */ 32, 48, 32,102,116,114,117,110, 99, 97,116,101, 10, 48, 48, 48, /* 0x06c0 */ 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32,
/* 0x06d0 */ 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, /* 0x06d0 */ 91, 69, 76, 70, 77, 65, 73, 78, 90, 93, 58, 10, 79, 70, 70, 83,
/* 0x06e0 */ 78, 68, 42, 32, 48, 32, 79, 95, 66, 73, 78, 70, 79, 10, 10, 82, /* 0x06e0 */ 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32,
/* 0x06f0 */ 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, /* 0x06f0 */ 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48,
/* 0x0700 */ 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 88, 93, /* 0x0700 */ 48, 48, 48, 56, 48, 32, 82, 95, 77, 73, 80, 83, 95, 80, 67, 49,
/* 0x0710 */ 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, /* 0x0710 */ 54, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88,
/* 0x0720 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, /* 0x0720 */ 10, 48, 48, 48, 48, 48, 49, 53, 56, 32, 82, 95, 77, 73, 80, 83,
/* 0x0730 */ 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 82, 95, 77, 73, /* 0x0730 */ 95, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 79, 95, 66, 73,
/* 0x0740 */ 80, 83, 95, 80, 67, 49, 54, 32, 32, 32, 32, 32, 32, 32, 69, 76, /* 0x0740 */ 78, 70, 79, 10
/* 0x0750 */ 70, 77, 65, 73, 78, 90, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73,
/* 0x0760 */ 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91,
/* 0x0770 */ 69, 76, 70, 77, 65, 73, 78, 90, 93, 58, 10, 79, 70, 70, 83, 69,
/* 0x0780 */ 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x0790 */ 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48,
/* 0x07a0 */ 48, 48, 56, 48, 32, 82, 95, 77, 73, 80, 83, 95, 80, 67, 49, 54,
/* 0x07b0 */ 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10,
/* 0x07c0 */ 48, 48, 48, 48, 48, 49, 55, 48, 32, 82, 95, 77, 73, 80, 83, 95,
/* 0x07d0 */ 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 79, 95, 66, 73, 78,
/* 0x07e0 */ 70, 79, 10
}; };
+1175 -1162
View File
File diff suppressed because it is too large Load Diff
+1258 -1238
View File
File diff suppressed because it is too large Load Diff
+1295 -1282
View File
File diff suppressed because it is too large Load Diff
+1304 -1292
View File
File diff suppressed because it is too large Load Diff
+6 -1
View File
@@ -201,11 +201,16 @@ p_memsz= 5*NBPW
mov %ebx,%edi # fd mov %ebx,%edi # fd
call close call close
.macro NOTRACK
.byte 0x3e
.endm
no_pse_map: no_pse_map:
pop %arg1 # ADRU: unfolded upx_main2 etc. pop %arg1 # ADRU: unfolded upx_main2 etc.
pop %arg2 # LENU pop %arg2 # LENU
push $__NR_munmap; pop %rax push $__NR_munmap; pop %rax
/*notrack*/ jmp *(%r14) # goto: syscall; pop %rdx; ret NOTRACK; jmp *(%r14) # goto: syscall; pop %rdx; ret
get_page_mask: .globl get_page_mask get_page_mask: .globl get_page_mask
mov PAGE_MASK(%rip),%rax mov PAGE_MASK(%rip),%rax
+6 -10
View File
@@ -502,18 +502,14 @@ do_xmap(
ElfW(Addr) reloc = 0; ElfW(Addr) reloc = 0;
if (xi) { // compressed main program: if (xi) { // compressed main program:
// C_BASE space reservation, C_TEXT compressed data and stub // C_BASE space reservation, C_TEXT compressed data and stub
ElfW(Addr) ehdr0 = *p_reloc; // the 'hi' copy! ElfW(Addr) ehdr0 = *p_reloc;
ElfW(Phdr) *phdr0 = (ElfW(Phdr) *)(1+ (ElfW(Ehdr) *)ehdr0); // cheats .e_phoff ElfW(Phdr) *phdr0 = (ElfW(Phdr) *)(1+ (ElfW(Ehdr) *)ehdr0); // cheats .e_phoff
// Clear the 'lo' space reservation for use by PT_LOADs v_brk = ehdr0 + phdr0->p_vaddr + phdr0->p_memsz;
ehdr0 -= phdr0[1].p_vaddr; // the 'lo' copy if (ET_DYN == ehdr->e_type) {
if (ET_EXEC == ehdr->e_type) { reloc = ehdr0 - phdr0[1].p_vaddr;
ehdr0 = phdr0[0].p_vaddr;
} }
else { // paranoia: prevent "hangover" from VMA for C_BASE
reloc = ehdr0; munmap((void *)(reloc + phdr0->p_vaddr), phdr0->p_memsz);
}
v_brk = phdr0->p_memsz + ehdr0;
munmap((void *)ehdr0, phdr0->p_memsz);
} }
else { // PT_INTERP else { // PT_INTERP
DPRINTF("INTERP\\n", 0); DPRINTF("INTERP\\n", 0);
+7
View File
@@ -237,6 +237,13 @@ mfd .req old_sp
call f_expand call f_expand
add sp,sp,#2*NBPW @ P_02, P_01 remove 5th param add sp,sp,#2*NBPW @ P_02, P_01 remove 5th param
// faster than clearcache + msync; also avoids msync() bug
ldr arg3,[sp,#F_LENU]
ldr arg2,[sp,#F_ADRU]
mov arg1,mfd
do_sys __NR_write
mov r5,#0 mov r5,#0
mov r4,mfd mov r4,mfd
mov r3,#MAP_PRIVATE|MAP_FIXED mov r3,#MAP_PRIVATE|MAP_FIXED
+8 -1
View File
@@ -107,6 +107,13 @@ Psync: .globl Psync
bic r12,arg1,r12 // lo frag bic r12,arg1,r12 // lo frag
sub arg1,arg1,r12 // page align lo end sub arg1,arg1,r12 // page align lo end
add arg2,arg2,r12 add arg2,arg2,r12
stmdb sp!,{r0,r1,r2} // lo, len, ??
add r1,r1,r0 // hi
mov r2,#0 // might be CSSELR_DCACHE from linux/arch/arm/include/asm/cachetype.h
do_sys2 __ARM_NR_cacheflush
ldmia sp!,{r0,r1,r2}
do_sys __NR_msync; ret do_sys __NR_msync; ret
mmap_privanon: .globl mmap_privanon mmap_privanon: .globl mmap_privanon
@@ -199,7 +206,7 @@ r_pse .req r8
sub arg3,arg3,#1 @ room for null terminator sub arg3,arg3,#1 @ room for null terminator
do_sys7t __NR_readlink // ENOENT is OK do_sys7t __NR_readlink // ENOENT is OK
cmn r0,#1<<12 cmn r0,#1<<12
movcs r1,arg1 @ FIXME? "/proc/self/exe" adrcs r1,proc_self_exe
movcs r0,#14 @ strlen("/proc/self/exe") movcs r0,#14 @ strlen("/proc/self/exe")
link_ok: link_ok:
add r2,r1,r0 @ end add r2,r1,r0 @ end
+10
View File
@@ -30,6 +30,9 @@
#define ARM_OLDABI 1 #define ARM_OLDABI 1
#include "arch/arm/v4a/macros.S" #include "arch/arm/v4a/macros.S"
#include "MAX_ELF_HDR.S" #include "MAX_ELF_HDR.S"
__NR_SYSCALL_BASE = 0
__ARM_NR_BASE= 0xf0000 + __NR_SYSCALL_BASE
__ARM_NR_cacheflush = 2 + __ARM_NR_BASE
NBPW= 4 NBPW= 4
sz_Elf32_Ehdr = 13*4 sz_Elf32_Ehdr = 13*4
@@ -139,6 +142,13 @@ Psync: .globl Psync
bic r12,arg1,r12 bic r12,arg1,r12
sub arg1,arg1,r12 sub arg1,arg1,r12
add arg2,arg2,r12 add arg2,arg2,r12
stmdb sp!,{r0,r1,r2} // lo, len, ??
add r1,r1,r0 // hi
mov r2,#0 // might be CSSELR_DCACHE from linux/arch/arm/include/asm/cachetype.h
do_sys2 __ARM_NR_cacheflush
ldmia sp!,{r0,r1,r2}
b msync b msync
L05: L05:
+1 -1
View File
@@ -188,7 +188,7 @@ L00:
mov w1,wzr; b 0b // try again without MFD_EXEC mov w1,wzr; b 0b // try again without MFD_EXEC
no_memfd: // so try /dev/shm no_memfd: // so try /dev/shm
O_RDWR= 2 O_RDWR= 2
O_DIRECTORY= 0200000 // 0x010000 O_DIRECTORY= 040000 // 0x04000
O_TMPFILE= 020000000 // 0x400000 O_TMPFILE= 020000000 // 0x400000
call 0f; .int 0700, O_RDWR|O_DIRECTORY|O_TMPFILE; .asciz "/dev/shm" call 0f; .int 0700, O_RDWR|O_DIRECTORY|O_TMPFILE; .asciz "/dev/shm"
.balign 4; 0: .balign 4; 0:
+39 -1
View File
@@ -128,6 +128,44 @@ Psync: .globl Psync
bic x8,x0,x8 bic x8,x0,x8
sub x0,x0,x8 sub x0,x0,x8
add x1,x1,x8 add x1,x1,x8
// Sync contents of data cache into RAM.
// Linux should do this implicitly, but apparently not.
CTR_IDC_SHIFT= 28
CTR_DIC_SHIFT= 29
mov x3,x0 // lo
add x4,x0,x1 // hi
sync_cache_range: // (void *lo= x3, void *const hi= x4)
mrs x6,ctr_el0
tbnz w6,#CTR_IDC_SHIFT,dc_not_dirty
ubfx x5,x6,#16,#4 // -2+ log2(dline_size)
mov x8,#-4; lsl x8,x8,x5 // sz_dline mask
and x5,x8,x3 // round down to dc line
// cmp x5,x4; b.hs dc_done
dc_loop:
dc cvau,x5 // sync dline
sub x5,x5,x8 // next dline
cmp x5,x4; b.lo dc_loop
//dc_done:
dc_not_dirty:
dsb ish // why here if dc not dirty?
tbnz w6,#CTR_DIC_SHIFT,ic_not_dirty
and x6,x6,#0xf // -2+ log2(iline_size)
mov x8,#-4; lsl x8,x8,x6 // sz_iline mask
and x3,x8,x3 // round down to ic line
// cmp x3,x4; b.hs ic_done
ic_loop:
ic ivau,x3 // sync iline
sub x3,x3,x8 // next iline
cmp x3,x4; b.lo ic_loop
//ic_done:
dsb ish
ic_not_dirty:
isb
// fall into msync
msync: .globl msync msync: .globl msync
do_sys __NR_msync; ret do_sys __NR_msync; ret
@@ -509,7 +547,7 @@ brk: do_sys __NR_brk; ret
munmap: do_sys __NR_munmap; ret munmap: do_sys __NR_munmap; ret
O_RDWR= 2 O_RDWR= 2
O_DIRECTORY= 0200000 // 0x010000 O_DIRECTORY= 040000 // 0x04000
O_TMPFILE= 020000000 // 0x400000 O_TMPFILE= 020000000 // 0x400000
ufdc_bits: .int O_RDWR|O_DIRECTORY|O_TMPFILE ufdc_bits: .int O_RDWR|O_DIRECTORY|O_TMPFILE
+36 -5
View File
@@ -91,6 +91,42 @@ Psync: .globl Psync
bic x8,x0,x8 bic x8,x0,x8
sub x0,x0,x8 sub x0,x0,x8
add x1,x1,x8 add x1,x1,x8
// Sync contents of data cache into RAM.
// Linux should do this implicitly, but apparently not.
CTR_IDC_SHIFT= 28
CTR_DIC_SHIFT= 29
mov x3,x0 // lo
add x4,x0,x1 // hi
sync_cache_range: // (void *lo= x3, void *const hi= x4)
mrs x6,ctr_el0
tbnz w6,#CTR_IDC_SHIFT,dc_not_dirty
ubfx x5,x6,#16,#4 // -2+ log2(dline_size)
mov x8,#-4; lsl x8,x8,x5 // sz_dline mask
and x5,x8,x3 // round down to dc line
// cmp x5,x4; b.hs dc_done
dc_loop:
dc cvau,x5 // sync dline
sub x5,x5,x8 // next dline
cmp x5,x4; b.lo dc_loop
//dc_done:
dc_not_dirty:
dsb ish // why here if dc not dirty?
tbnz w6,#CTR_DIC_SHIFT,ic_not_dirty
and x6,x6,#0xf // -2+ log2(iline_size)
mov x8,#-4; lsl x8,x8,x6 // sz_iline mask
and x3,x8,x3 // round down to ic line
// cmp x3,x4; b.hs ic_done
ic_loop:
ic ivau,x3 // sync iline
sub x3,x3,x8 // next iline
cmp x3,x4; b.lo ic_loop
//ic_done:
dsb ish
ic_not_dirty:
isb
// fall into msync
do_sys __NR_msync; ret do_sys __NR_msync; ret
fold: // enter here (x0= &so_info; x1= &{argc,argv,envp,lr} fold: // enter here (x0= &so_info; x1= &{argc,argv,envp,lr}
@@ -206,11 +242,6 @@ brk:
readlink: readlink:
do_sys __NR_readlink; ret do_sys __NR_readlink; ret
.globl __sync_cache_range
__sync_cache_range: // (void *lo, void *hi)
#include "arm64-sync-cache-range.S"
ret
get_sys_munmap: .globl get_sys_munmap // r0= system call instruction get_sys_munmap: .globl get_sys_munmap // r0= system call instruction
#if defined(ARMEL_DARWIN) /*{*/ #if defined(ARMEL_DARWIN) /*{*/
ldr w0,4*1 + munmap ldr w0,4*1 + munmap
+1 -1
View File
@@ -201,7 +201,7 @@ AT_PAGESZ= 6 // /usr/include/elf.h
pop %edx // MATCH_33 restore &getbit pop %edx // MATCH_33 restore &getbit
mov %eax,%ecx mov %eax,%ecx
shr $12,%eax; shl $12,%eax; mov %eax,F_ADRU(old_sp) shr $12,%eax; shl $12,%eax; mov %eax,F_ADRU(old_sp)
sub %eax,%ecx; sub $1,%ecx; mov %ecx,F_MFD (old_sp) sub %eax,%ecx; dec %ecx; mov %ecx,F_MFD (old_sp)
#undef r_unc #undef r_unc
#undef u_len #undef u_len
+5 -1
View File
@@ -285,8 +285,12 @@ L60:
push eax push eax
push eax // 32 bytes of zeroes now on stack, ready for 'popa' push eax // 32 bytes of zeroes now on stack, ready for 'popa'
.macro NOTRACK
.byte 0x3e
.endm
mov al, __NR_munmap // eax was 0 from L60 mov al, __NR_munmap // eax was 0 from L60
/*notrack*/ jmp [edi] // unmap ourselves via escape hatch, then goto entry // valgrind-3.24.0 has bug with NOTRACK on i386
/*NOTRACK;*/ jmp [edi] // unmap ourselves via escape hatch, then goto entry
section SYSCALLS section SYSCALLS
// Sometimes linux enforces page-aligned address // Sometimes linux enforces page-aligned address
+11 -25
View File
@@ -33,19 +33,6 @@
#define DEBUG 0 #define DEBUG 0
#endif //} #endif //}
#ifdef __mips__ //{
// We want to supersede in *.elf-fold.S, not use include/linux.h
#define NO_WANT_CLOSE 1
#define NO_WANT_EXIT 1
#define NO_WANT_MMAP 1
#define NO_WANT_MPROTECT 1
#define NO_WANT_MSYNC 1
#define NO_WANT_OPEN 1
#define NO_WANT_READ 1
#define NO_WANT_WRITE 1
extern int open(char const *pathname, int flags, unsigned mode);
extern int read(int fd, void *buf, unsigned count);
#endif //}
#include "include/linux.h" #include "include/linux.h"
#define MFD_EXEC 0x0010 #define MFD_EXEC 0x0010
@@ -616,18 +603,14 @@ do_xmap(
ElfW(Addr) reloc = 0; ElfW(Addr) reloc = 0;
if (xi) { // compressed main program: if (xi) { // compressed main program:
// C_BASE space reservation, C_TEXT compressed data and stub // C_BASE space reservation, C_TEXT compressed data and stub
ElfW(Addr) ehdr0 = *p_reloc; // the 'hi' copy! ElfW(Addr) ehdr0 = *p_reloc;
ElfW(Phdr) *phdr0 = (ElfW(Phdr) *)(1+ (ElfW(Ehdr) *)ehdr0); // cheats .e_phoff ElfW(Phdr) *phdr0 = (ElfW(Phdr) *)(1+ (ElfW(Ehdr) *)ehdr0); // cheats .e_phoff
// Clear the 'lo' space reservation for use by PT_LOADs v_brk = ehdr0 + phdr0->p_vaddr + phdr0->p_memsz;
ehdr0 -= phdr0[1].p_vaddr; // the 'lo' copy if (ET_DYN == ehdr->e_type) {
if (ET_EXEC == ehdr->e_type) { reloc = ehdr0 - phdr0[1].p_vaddr;
ehdr0 = phdr0[0].p_vaddr;
} }
else { // paranoia: prevent "hangover" from VMA for C_BASE
reloc = ehdr0; munmap((void *)(reloc + phdr0->p_vaddr), phdr0->p_memsz);
}
v_brk = phdr0->p_memsz + ehdr0;
munmap((void *)ehdr0, phdr0->p_memsz);
} }
else { // PT_INTERP else { // PT_INTERP
DPRINTF("INTERP ehdr=%%p av=%%p\\n", ehdr, av); DPRINTF("INTERP ehdr=%%p av=%%p\\n", ehdr, av);
@@ -675,8 +658,8 @@ do_xmap(
DPRINTF(" mlen=%%p\\n", mlen); DPRINTF(" mlen=%%p\\n", mlen);
#endif #endif
DPRINTF("mmap addr=%%p mlen=%%p offset=%%p frag=%%p prot=%%x\\n", DPRINTF("mmap addr=%%p mlen=%%p phdr=%%p offset=%%p frag=%%p prot=%%x\\n",
addr, mlen, phdr->p_offset - frag, frag, prot); addr, mlen, phdr, phdr->p_offset - frag, frag, prot);
int mfd = 0; int mfd = 0;
if (xi && phdr->p_flags & PF_X) { // SELinux if (xi && phdr->p_flags & PF_X) { // SELinux
// Cannot set PROT_EXEC except via mmap() into a region (Linux "vma") // Cannot set PROT_EXEC except via mmap() into a region (Linux "vma")
@@ -757,6 +740,9 @@ ERR_LAB
} }
int open(char const *, int, int);
ssize_t read(int, void *, size_t);
/************************************************************************* /*************************************************************************
// upx_main - called by our entry code // upx_main - called by our entry code
// //
-207
View File
@@ -380,215 +380,8 @@ static inline _syscall2(int,link,const char *,src, const char *,dst)
#undef Z1 #undef Z1
#elif defined(__mips__) /*}{*/ #elif defined(__mips__) /*}{*/
#undef MAP_ANONYMOUS #undef MAP_ANONYMOUS
#define MAP_ANONYMOUS 0x800 #define MAP_ANONYMOUS 0x800
/* Cannot write an inline assembler constraint for a specific register.
http://gcc.gnu.org/ml/gcc-help/2007-02/msg00068.html
Workaround:
const register int num asm("v0") = 4;
const register char *const str asm("a0") = string;
asm volatile("syscall" : : "r"(num), "r"(str));
*/
#ifndef NO_WANT_MMAP /*{*/
static void *mmap(
void *addr, size_t len,
int prot, int flags,
int fd, off_t offset
)
{
#define __NR_mmap (90+ 4000)
register void * const a0 asm("a0") = addr;
register size_t const a1 asm("a1") = len;
register int const a2 asm("a2") = prot;
register int a3 asm("a3") = flags;
register int const t0 asm("t0") = fd;
register off_t const t1 asm("t1") = offset;
register int v0 asm("v0") = __NR_mmap;
__asm__ __volatile__(
/*"break\n"*/ /* debug only */
"addiu $29,$29,-0x20\n"
"\tsw $8,0x10($29)\n"
"\tsw $9,0x14($29)\n"
"\tsyscall\n"
".set noreorder\n"
"\tb sysret_incl\n"
"\t addiu $29,$29, 0x20\n"
".set reorder\n"
"sysgo_incl:"
/*"break\n"*/ /* debug only */
"\tsyscall\n"
"sysret_incl: .set noat\n"
"\tsltiu $1,$7,1\n" /* 1: no error; 0: error; $7 == a3 */
"\taddiu $1,$1,-1\n" /* 0: no error; -1: error */
"\tor $2,$2,$1\n" /* $2 == v0; good result, else -1 for error */
/*".set at\n"*/
: "+r"(v0), "+r"(a3) /* "+r" ==> both read and write */
: "r"(a0), "r"(a1), "r"(a2), "r"(t0), "r"(t1)
);
return (void *)v0;
}
#endif /* NO_WANT_MMAP }*/
#ifndef NO_WANT_READ /*{*/
static ssize_t read(int fd, void *buf, size_t len)
{
#define __NR_read (3+ 4000)
register int const a0 asm("a0") = fd;
register void * const a1 asm("a1") = buf;
register size_t const a2 asm("a2") = len;
register size_t v0 asm("v0") = __NR_read;
__asm__ __volatile__(
"bal sysgo_incl"
: "+r"(v0)
: "r"(a0), "r"(a1), "r"(a2)
: "a3", "ra"
);
return v0;
}
#endif /* NO_WANT_READ }*/
#if 0 //{ UNUSED
static void *brk(void *addr)
{
#define __NR_brk (45+ 4000)
register void *const a0 asm("a0") = addr;
register void * v0 asm("v0") = (void *)__NR_brk;
__asm__ __volatile__(
"bal sysgo_incl"
: "+r"(v0)
: "r"(a0)
: "a3", "ra"
);
return v0;
}
#endif //}
#ifndef NO_WANT_CLOSE /*{*/
static int close(int fd)
{
#define __NR_close (6+ 4000)
register int const a0 asm("a0") = fd;
register int v0 asm("v0") = __NR_close;
__asm__ __volatile__(
"bal sysgo_incl"
: "+r"(v0)
: "r"(a0)
: "a3", "ra"
);
return v0;
}
#endif /* NO_WANT_CLOSE }*/
#ifndef NO_WANT_EXIT /*{*/
static void exit(int code) __attribute__ ((__noreturn__));
static void exit(int code)
{
#define __NR_exit (1+ 4000)
register int const a0 asm("a0") = code;
register int v0 asm("v0") = __NR_exit;
__asm__ __volatile__(
"bal sysgo_incl"
:
: "r"(v0), "r"(a0)
: "a3", "ra"
);
for (;;) {}
}
#endif /* NO_WANT_EXIT }*/
#if 0 //{ unused?
static int munmap(void *addr, size_t len)
{
#define __NR_munmap (91+ 4000)
register void *const a0 asm("a0") = addr;
register size_t const a1 asm("a1") = len;
register size_t v0 asm("v0") = __NR_munmap;
__asm__ __volatile__(
"bal sysgo_incl"
: "+r"(v0)
: "r"(a0), "r"(a1)
: "a3", "ra"
);
return v0;
}
#endif //}
#ifndef NO_WANT_MPROTECT /*{*/
static int mprotect(void const *addr, size_t len, int prot)
{
#define __NR_mprotect (125+ 4000)
register void const *const a0 asm("a0") = addr;
register size_t const a1 asm("a1") = len;
register int const a2 asm("a2") = prot;
register size_t v0 asm("v0") = __NR_mprotect;
__asm__ __volatile__(
"bal sysgo_incl"
: "+r"(v0)
: "r"(a0), "r"(a1), "r"(a2)
: "a3", "ra"
);
return v0;
}
#endif /*} NO_WANT_MPROTECT */
#ifndef NO_WANT_MSYNC /*{*/
static int msync(void const *addr, size_t len, int prot)
{
#define __NR_msync (144+ 4000)
register void const *const a0 asm("a0") = addr;
register size_t const a1 asm("a1") = len;
register int const a2 asm("a2") = prot;
register size_t v0 asm("v0") = __NR_msync;
__asm__ __volatile__(
"bal sysgo_incl"
: "+r"(v0)
: "r"(a0), "r"(a1), "r"(a2)
: "a3", "ra"
);
return v0;
}
#endif /*} NO_WANT_MSYNC */
#ifndef NO_WANT_OPEN /*{*/
static ssize_t open(char const *path, int kind, int mode)
{
#define __NR_open (5+ 4000)
register char const *const a0 asm("a0") = path;
register int const a1 asm("a1") = kind;
register int const a2 asm("a2") = mode;
register size_t v0 asm("v0") = __NR_open;
__asm__ __volatile__(
"bal sysgo_incl"
: "+r"(v0)
: "r"(a0), "r"(a1), "r"(a2)
: "a3", "ra"
);
return v0;
}
#endif /* NO_WANT_OPEN }*/
#if DEBUG /*{*/
#ifndef NO_WANT_WRITE /*{*/
static ssize_t write(int fd, void const *buf, size_t len)
{
#define __NR_write (4+ 4000)
register int const a0 asm("a0") = fd;
register void const * const a1 asm("a1") = buf;
register size_t const a2 asm("a2") = len;
register size_t v0 asm("v0") = __NR_write;
__asm__ __volatile__(
"bal sysgo_incl"
: "+r"(v0)
: "r"(a0), "r"(a1), "r"(a2)
: "a3", "ra"
);
return v0;
}
#endif /*}*/
#endif /*}*/
#else /*}{ generic */ #else /*}{ generic */
void *brk(void *); void *brk(void *);
-1
View File
@@ -42,7 +42,6 @@ SZ_DLINE= 128 # size of data cache line in Apple G5
#include "arch/mips/r3000/macros.ash" #include "arch/mips/r3000/macros.ash"
#include "arch/mips/r3000/bits.ash" #include "arch/mips/r3000/bits.ash"
#define NO_WANT_MMAP 1
/* These from /usr/include/asm/unistd.h */ /* These from /usr/include/asm/unistd.h */
__NR_cacheflush = 147+ __NR_Linux __NR_cacheflush = 147+ __NR_Linux
+24 -24
View File
@@ -116,6 +116,8 @@ __NR_close = 6+ __NR_Linux
__NR_exit = 1+ __NR_Linux __NR_exit = 1+ __NR_Linux
__NR_ftruncate= 93+ __NR_Linux __NR_ftruncate= 93+ __NR_Linux
__NR_memfd_create= 354+ __NR_Linux __NR_memfd_create= 354+ __NR_Linux
MFD_EXEC= 0x10
EINVAL= 22
__NR_mmap = 90+ __NR_Linux __NR_mmap = 90+ __NR_Linux
__NR_mprotect = 125+ __NR_Linux __NR_mprotect = 125+ __NR_Linux
__NR_msync = 144+ __NR_LINUX __NR_msync = 144+ __NR_LINUX
@@ -180,7 +182,7 @@ eof_n2b:
subu a1,lxdst,v1 // actual length generated subu a1,lxdst,v1 // actual length generated
sw a1,(lxdstlen) sw a1,(lxdstlen)
li a2,ICACHE|DCACHE li a2,ICACHE|DCACHE
li v0,__NR_cacheflush; syscall li v0,__NR_cacheflush; syscall // ignore failure
lw v0,0(sp) lw v0,0(sp)
jr ra jr ra
@@ -192,13 +194,6 @@ eof_n2b:
// // section UMF_LINUX or UMF_ANDROID goes here // // section UMF_LINUX or UMF_ANDROID goes here
section ELFMAINZ; .set noreorder section ELFMAINZ; .set noreorder
L72:
li a0,2 # fd stderr
li v0,__NR_write; syscall
die:
li a0,127
li v0,__NR_exit; syscall
unfold: # IN: $r_fexp,$r_auxv,$r_PMASK,$r_FOLD unfold: # IN: $r_fexp,$r_auxv,$r_PMASK,$r_FOLD
addiu sp,sp,-sp_frame addiu sp,sp,-sp_frame
sw $r_PMASK,F_PMASK(sp) sw $r_PMASK,F_PMASK(sp)
@@ -206,10 +201,23 @@ unfold: # IN: $r_fexp,$r_auxv,$r_PMASK,$r_FOLD
la $r_elfa,sz_pack2 - f_exp($r_fexp) la $r_elfa,sz_pack2 - f_exp($r_fexp)
sub $r_elfa,$r_elfa,$r_LENX # $r_elfa= &Elf32_Ehdr of this stub sub $r_elfa,$r_elfa,$r_LENX # $r_elfa= &Elf32_Ehdr of this stub
bal 0f; move a0,ra; .asciz "upx"; .balign 4 li a1,MFD_EXEC // modern
2:
bal 0f
move a0,ra
.asciz "upx"; .balign 4
0: 0:
move a1,zero li v0,__NR_memfd_create; syscall // attempt recovery
li v0,__NR_memfd_create; syscall; move $r_mfd,v0 beqz a3,9f // success
move $r_mfd,v0 // return value
beqz a1,8f // failure if (, 0) already tried
addiu a1,v0,-EINVAL // MFD_EXEC appeared Linux 6.3 2023-04-23
beqz a1,2b // try old (, 0) if failure was EINVAL
nop
8:
HALT:
break // both (, MFD_EXEC) and (, 0) failed
9:
# alloca() for de-compressed stub # alloca() for de-compressed stub
lw $r_szuf,sz_unc($r_FOLD) # sz_unc of fold lw $r_szuf,sz_unc($r_FOLD) # sz_unc of fold
@@ -243,7 +251,7 @@ unfold: # IN: $r_fexp,$r_auxv,$r_PMASK,$r_FOLD
move a2,$r_szuf # .sz_unc move a2,$r_szuf # .sz_unc
move a1,sp move a1,sp
move a0,$r_mfd move a0,$r_mfd
li v0,__NR_write; syscall li v0,__NR_write; syscall; bnez a3,HALT // faliure
move sp,fp move sp,fp
# Map de-compressed stub # Map de-compressed stub
@@ -254,25 +262,17 @@ unfold: # IN: $r_fexp,$r_auxv,$r_PMASK,$r_FOLD
li a2,PROT_READ|PROT_EXEC # FIXME: PROT_WRITE is DEBUG only li a2,PROT_READ|PROT_EXEC # FIXME: PROT_WRITE is DEBUG only
lw a1,sz_unc($r_FOLD) lw a1,sz_unc($r_FOLD)
move a0,zero move a0,zero
li v0,__NR_mmap; syscall; addiu sp,6*NBPW li v0,__NR_mmap; syscall; bnez a3,HALT // failure
addiu sp,6*NBPW
sw v0,F_ADRU(sp) sw v0,F_ADRU(sp)
addiu ra,v0,2*NBPW addiu ra,v0,2*NBPW
move a0,$r_mfd; li v0,__NR_close; syscall move a0,$r_mfd
li v0,__NR_close; syscall // ignore failure
jr ra jr ra
addu $r_ADRX,$r_elfa,$r_ADRX # compressed data addu $r_ADRX,$r_elfa,$r_ADRX # compressed data
memfd_create: .globl memfd_create
li v0,__NR_memfd_create; syscall
j ra
nop
ftruncate: .globl ftruncate
li v0,__NR_ftruncate; syscall
j ra
nop
zfind: # result in $r_auxv zfind: # result in $r_auxv
lw v1,(a0); addiu a0,a0,NBPW lw v1,(a0); addiu a0,a0,NBPW
bnez v1,zfind bnez v1,zfind
+15 -8
View File
@@ -31,11 +31,11 @@ NBPW= 4
#include "arch/mips/r3000/macros.ash" #include "arch/mips/r3000/macros.ash"
#include "arch/mips/r3000/bits.ash" #include "arch/mips/r3000/bits.ash"
#define NO_WANT_MMAP 1 /*
#define NO_WANT_CLOSE 1 eglibc-2.11.1/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h
#define NO_WANT_EXIT 1 #define __SYSCALL_CLOBBERS "$1", "$3", "$10", "$11", "$12", "$13", \
#define NO_WANT_MPROTECT 1 "$14", "$15", "$24", "$25", "hi", "lo", "memory"
#define NO_WANT_WRITE 1 */
.set mips1 .set mips1
.set noreorder .set noreorder
@@ -334,6 +334,14 @@ Psync: .globl Psync
and TMP,a0,v0 and TMP,a0,v0
sub a0,TMP sub a0,TMP
add a1,TMP add a1,TMP
__NR_cacheflush = 147+ __NR_Linux
/* asm/cachectl.h */
ICACHE= 1<<0
DCACHE= 1<<1
li a2,DCACHE
li v0,__NR_cacheflush; syscall // ignore failure
li v0,__NR_msync; syscall li v0,__NR_msync; syscall
jr ra jr ra
addiu sp,2*NBPW addiu sp,2*NBPW
@@ -405,12 +413,11 @@ mmap: .globl mmap
addiu sp,sp,sp_frame addiu sp,sp,sp_frame
sysgo: // src/mipsel.r3000-linux.elf-fold.S sysgo: // src/mipsel.r3000-linux.elf-fold.S
sysgo2:
syscall syscall
sysret: sysret:
bgez a3,sysOK beqz a3,sysOK // Linux MIPS convention
nop nop
move v0,a3 // -errno: < 0, and > 0xfffff000 sub v0,zero,v0 // -errno: < 0, and > 0xfffff000
sysOK: sysOK:
jr ra jr ra
nop nop
+1
View File
@@ -86,6 +86,7 @@ no_unf:
POP2 a0,a1 // MATCH_81 dst, len POP2 a0,a1 // MATCH_81 dst, len
add a1,a1,a0 // lo, hi add a1,a1,a0 // lo, hi
addi a1,a1,-1 // highest covered addr
CACHELINE=32 CACHELINE=32
ori a0,a0,-1+ CACHELINE // highest addr on cache line ori a0,a0,-1+ CACHELINE // highest addr on cache line
+1
View File
@@ -71,6 +71,7 @@ __NR_mprotect = 125
__NR_munmap = 91 __NR_munmap = 91
__NR_open = 5 __NR_open = 5
__NR_write = 4 __NR_write = 4
__NR_openat = 286
EINVAL= 22 EINVAL= 22
+140 -9
View File
@@ -97,11 +97,31 @@ Pprotect: .globl Pprotect
add a1,a1,r0 add a1,a1,r0
b mprotect b mprotect
Psync: .globl Psync Psync: .globl Psync // (addr, len, flags)
mflr r0; bl 0f; 0: mflr r6; mtlr r0; lwz r0,page_mask - 0b(r6) mflr r0; bl 0f; 0: mflr r6; mtlr r0; lwz r0,page_mask - 0b(r6)
andc r0,a0,r0 // offset within page andc r0,a0,r0 // offset within page
sub a0,a0,r0 sub a0,a0,r0
add a1,a1,r0 add a1,a1,r0
// System calls write() and msync(,,MS_SYNC) should implicitly flush dcache
// over the covered region before doing the write().
// But strange errors were observed, so flush explicitly.
CACHELINE=32
sweep= a3 // temp addr
dlast= a4 // final addr
add dlast,a0,a1 // addr + len
addi dlast,dlast,-1 // highest covered addr
ori sweep,a0,-1+ CACHELINE // highest addr on initial cache line
fl_loop:
dcbst 0,sweep // initiate store (modified) cacheline to memory
cmpl cr0,sweep,dlast // did we cover the highest-addressed byte?
icbi 0,sweep // discard instructions from cacheline
addi sweep,sweep,CACHELINE // highest addr on next line
blt cr0,fl_loop // not done yet
sync // wait for all memory operations to finish
isync // discard prefetched instructions (if any)
b msync b msync
Pmap: .globl Pmap Pmap: .globl Pmap
@@ -290,6 +310,7 @@ SYS_munmap= 91
SYS_ftruncate= 93 SYS_ftruncate= 93
SYS_mprotect= 125 SYS_mprotect= 125
SYS_msync= 144 SYS_msync= 144
SYS_openat= 286
SYS_memfd_create= 360 SYS_memfd_create= 360
exit: .globl exit exit: .globl exit
@@ -308,6 +329,8 @@ read: .globl read
li r0,SYS_read; 5: b 5f li r0,SYS_read; 5: b 5f
open: .globl open open: .globl open
li r0,SYS_open; 5: b 5f li r0,SYS_open; 5: b 5f
openat: .globl openat
li r0,SYS_openat; 5: b 5f
mprotect: .globl mprotect mprotect: .globl mprotect
li 0,SYS_mprotect; 5: b 5f li 0,SYS_mprotect; 5: b 5f
msync: .globl msync msync: .globl msync
@@ -317,33 +340,141 @@ munmap: .globl munmap
mmap: .globl mmap mmap: .globl mmap
li r0,SYS_mmap li r0,SYS_mmap
sysgo: sysgo:
#ifndef TRACE //{
#define TRACE 0
#endif //}
#if TRACE //{
FD_STDERR= 2
Tr1= 0*NBPW
Tr0= 1*NBPW
Tr3= 2*NBPW // a0
Tr4= 3*NBPW // a1
Tr5= 4*NBPW // a2
Tr6= 5*NBPW // a3
Tr7= 6*NBPW // a4
Tr8= 7*NBPW // a5
Tlr= 8*NBPW
Tctr= 9*NBPW
Tbuf= 10*NBPW
T_FRAME= 10*NBPW + 96
stwu sp,-T_FRAME(sp)
stw r0,Tr0(sp) // SYS_n
stw r3,Tr3(sp) // a0
stw r4,Tr4(sp) // a1
stw r5,Tr5(sp) // a2
stw r6,Tr6(sp) // a3
stw r7,Tr7(sp) // a4
stw r8,Tr8(sp) // a5
mflr r0; stw r0,Tlr(sp)
mfctr r0; stw r0,Tctr(sp)
outp= r3
p_word= r4
Tw= r5
Thex= r6
nib= r7
call get_Thex
la outp,-1+Tbuf(sp) // output ptr (for update)
la p_word,-NBPW+Tr1(sp)
Lword:
lwzu Tw,NBPW(p_word) // next word
call Tword
la r0,NBPW+Tr8(sp)
cmpw r0,p_word; bgt Lword
li r0,' '; call Tflush
lwz r0,Tlr(sp); mtlr r0
lwz r0,Tctr(sp); mtctr r0
lwz r0,Tr0(sp)
lwz a0,Tr3(sp)
lwz a1,Tr4(sp)
lwz a2,Tr5(sp)
lwz a3,Tr6(sp)
lwz a4,Tr7(sp)
lwz a5,Tr8(sp)
#endif //}
sc sc
bns+ no_fail // 'bns': branch if No Summary[Overflow] bns+ no_fail // 'bns': branch if No Summary[Overflow]
li a0,-1 // failure; IGNORE errno neg a0,a0 // failure: return -errno (always >[unsigned] PAGE_MASK)
no_fail: no_fail:
#if TRACE //{
stw r0,Tr0(sp) // SYS_n
stw r3,Tr3(sp) // a0
stw r4,Tr4(sp) // a1
stw r5,Tr5(sp) // a2
stw r6,Tr6(sp) // a3
stw r7,Tr7(sp) // a4
stw r8,Tr8(sp) // a5
mflr r0; stw r0,Tlr(sp)
mfctr r0; stw r0,Tctr(sp)
mr Tw,a0 // value from sc
call get_Thex
la outp,-1+Tbuf(sp) // output ptr (for update)
la p_word,NBPW+Tr8(sp); call Tword // one word only
li r0,'\n'; call Tflush
lwz r0, Tlr(sp); mtlr r0
lwz r0,Tctr(sp); mtctr r0
lwz r0,Tr0(sp)
lwz a0,Tr3(sp)
lwz a1,Tr4(sp)
lwz a2,Tr5(sp)
lwz a3,Tr6(sp)
lwz a4,Tr7(sp)
lwz a5,Tr8(sp)
addi sp,sp,T_FRAME
#endif //}
ret ret
#if TRACE //{
Tword:
li r0,8; mtctr r0 // 8 nibbles per word
li r0,' '; stbu r0,1(outp) // leading punctuation for word
Tnib:
rotlwi Tw,Tw,4; andi. nib,Tw,0xF; add nib,nib,Thex
lbz r0,0(nib)
stbu r0,1(outp)
bdnz Tnib
ret
Tflush:
stbu r0,1(outp) // terminating punctuation
la outp,1(outp) // update adjust
la a1,Tbuf(sp) // in Tflush
subf a2,a1,outp
li a0,FD_STDERR; li r0,SYS_write; sc // write(FD_STDERR, ptr, size)
ret
get_Thex:
mflr r0
call 0f; .asciI "0123456789abcdef"; 0:
mflr Thex
mtlr r0; ret
#endif //}
__NR_memfd_create= 360 __NR_memfd_create= 360
MFD_EXEC= 0x10 MFD_EXEC= 0x10
EINVAL= 22 EINVAL= 22
memfd_create: .globl memfd_create memfd_create: .globl memfd_create
mflr a3 mflr r0; stwu r0,-2*NBPW(sp)
li a1,MFD_EXEC // modern clue li a1,MFD_EXEC // modern clue
mfd_try: mfd_try:
call 0f; .asciz "upx"; 0: call 0f; .asciz "upx"; 0:
mflr a0 mflr a0
SYS_memfd_create= __NR_memfd_create SYS_memfd_create= __NR_memfd_create
li r0,SYS_memfd_create; sc; bns+ 0f // success li r0,SYS_memfd_create; call sysgo
cmpi cr7,a1,0; bne cr7,1f // not 2nd time cmpi cr7,a0,0; bge cr7,0f // success
cmpi cr6,a1,0; bne cr6,1f // not 2nd time
8: 8:
teq r0,r0 // 2nd error, or unexpected 1st error teq r3,r3 // 2nd error, or unexpected 1st error
1: 1:
cmpi cr7,a0,EINVAL; bne cr7,8b // unexpected 1st error cmpi cr7,a0,-EINVAL; bne cr7,8b // unexpected 1st error
li a1,0; b mfd_try // 2nd attempt li a1,0; b mfd_try // 2nd attempt
0: 0:
mtlr a3 lwz r0,0(sp); la sp,2*NBPW(sp)
ret mtlr r0; ret
memcpy: .globl memcpy // (dst, src, n) memcpy: .globl memcpy // (dst, src, n)
cmpwi a2,0; beq- 9f cmpwi a2,0; beq- 9f
+1
View File
@@ -86,6 +86,7 @@ no_unf:
POP2 a0,a1 // MATCH_81 dst, len POP2 a0,a1 // MATCH_81 dst, len
add a1,a1,a0 // lo, hi add a1,a1,a0 // lo, hi
addi a1,a1,-1 // highest covered addr
CACHELINE=32 CACHELINE=32
ori a0,a0,-1+ CACHELINE // highest addr on cache line ori a0,a0,-1+ CACHELINE // highest addr on cache line
+1
View File
@@ -70,6 +70,7 @@ __NR_munmap = 91
__NR_close = 6 __NR_close = 6
__NR_open = 5 __NR_open = 5
__NR_write = 4 __NR_write = 4
__NR_openat = 286
EINVAL= 22 EINVAL= 22
+30 -5
View File
@@ -128,11 +128,32 @@ Pprotect: .globl Pprotect
add a1,a1,r0 add a1,a1,r0
b mprotect b mprotect
Psync: .globl Psync Psync: .globl Psync // (addr, len, flags)
mflr r0; bl 0f; 0: mflr r6; mtlr r0; ld r0,page_mask - 0b(r6) mflr r0; bl 0f; 0: mflr r6; mtlr r0; ld r0,page_mask - 0b(r6)
andc r0,a0,r0 // offset within page andc r0,a0,r0 // offset within page
sub a0,a0,r0 sub a0,a0,r0
add a1,a1,r0 add a1,a1,r0
// System calls write() and msync(,,MS_SYNC) should implicitly flush dcache
// over the covered region before doing the write().
// But strange errors were observed, so flush explicitly.
// Same code as for powerpc32, but with larger CACHELINE.
CACHELINE=128
sweep= a3 // temp addr
dlast= a4 // final addr
add dlast,a0,a1 // addr + len
addi dlast,dlast,-1 // highest covered addr
ori sweep,a0,-1+ CACHELINE // highest addr on initial cache line
fl_loop:
dcbst 0,sweep // initiate store (modified) cacheline to memory
cmpl cr0,sweep,dlast // did we cover the highest-addressed byte?
icbi 0,sweep // discard instructions from cacheline
addi sweep,sweep,CACHELINE // highest addr on next line
blt cr0,fl_loop // not done yet
sync // wait for all memory operations to finish
isync // discard prefetched instructions (if any)
b msync b msync
Pmap: .globl Pmap Pmap: .globl Pmap
@@ -357,6 +378,7 @@ SYS_munmap= 91
SYS_ftruncate= 93 SYS_ftruncate= 93
SYS_mprotect= 125 SYS_mprotect= 125
SYS_msync= 144 SYS_msync= 144
SYS_openat= 286
SYS_memfd_create= 360 SYS_memfd_create= 360
mmap: .globl mmap mmap: .globl mmap
@@ -365,7 +387,7 @@ mmap: .globl mmap
sysgo: sysgo:
sc sc
bns+ no_fail // 'bns': branch if No Summary[Overflow] bns+ no_fail // 'bns': branch if No Summary[Overflow]
li a0,-1 // failure; IGNORE errno neg a0,a0 // failure: return -errno (always >[unsigned] PAGE_MASK)
no_fail: no_fail:
ret ret
@@ -389,6 +411,9 @@ read: .globl read
li r0,SYS_read; 5: b 5f li r0,SYS_read; 5: b 5f
open: .globl open open: .globl open
li r0,SYS_open; 5: b 5f li r0,SYS_open; 5: b 5f
openat64: .globl openat64 // alias of openat because this is 64-bit already
openat: .globl openat
li r0,SYS_openat; 5: b 5f
close: .globl close close: .globl close
li r0,SYS_close; 5: b sysgo li r0,SYS_close; 5: b sysgo
@@ -399,13 +424,13 @@ upxfd_create: .globl upxfd_create // (char *tag, unsigned flags)
li a2,0; b 0b // try again without MFD_EXEC li a2,0; b 0b // try again without MFD_EXEC
no_memfd: // so try /dev/shm no_memfd: // so try /dev/shm
O_RDWR= 2 O_RDWR= 2
O_DIRECTORY= 0200000 // 0x010000 O_DIRECTORY= 040000 // 0x4000
O_TMPFILE= 020000000 // 0x400000 O_TMPFILE= 020000000 // 0x400000
mflr r6; bl 0f; .asciz "/dev/shm"; .balign 4; mflr r6; bl 0f; .asciz "/dev/shm"; .balign 4;
0: mflr a1; mtlr r6 0: mflr a1; mtlr r6
li a2,0700 li a2,0700
lis a3,(O_DIRECTORY|O_TMPFILE)>>16 lis a3,O_TMPFILE>>16
ori a3,a3,O_RDWR ori a3,a3,O_RDWR | O_DIRECTORY
li r0,SYS_open; sc; bns+ ok_memfd; teq r0,r0 li r0,SYS_open; sc; bns+ ok_memfd; teq r0,r0
ok_memfd: ok_memfd:
ret ret
+24 -14
View File
@@ -127,18 +127,7 @@ struct stat { // __NR_stat = 106 + NR_SYSCALL_BASE
#define S_IRWXU 00700 #define S_IRWXU 00700
#define AT_FDCWD -100 #define AT_FDCWD -100
#define restrict /**/ #define restrict /**/
//
#ifdef __mips__ //{
// We want to supersede in *.elf-fold.S, not use include/linux.h
#define NO_WANT_CLOSE 1
#define NO_WANT_EXIT 1
#define NO_WANT_MMAP 1
#define NO_WANT_MPROTECT 1
#define NO_WANT_MSYNC 1
#define NO_WANT_OPEN 1
#define NO_WANT_READ 1
#define NO_WANT_WRITE 1
#endif //}
#include "include/linux.h" // syscalls; i386 inlines via "int 0x80" #include "include/linux.h" // syscalls; i386 inlines via "int 0x80"
extern int open(char const *, int, int); extern int open(char const *, int, int);
@@ -157,8 +146,29 @@ extern int fstatat(int dirfd, const char *restrict pathname,
#define MFD_EXEC 0x10 #define MFD_EXEC 0x10
//#define O_RDWR 2 //#define O_RDWR 2
#define O_DIRECTORY 0200000 /* 0x010000 */
#define O_TMPFILE 020000000 /* 0x400000 */ #if defined(__aarch64__) //{
// linux/arch/arm64/include/uapi/asm/fcntl.h:
#define O_DIRECTORY 040000 /* must be a directory */
#elif defined(__arm__) //}{
// linux/arch/arm/include/uapi/asm/fcntl.h:
#define O_DIRECTORY 040000 /* must be a directory */
#elif defined(__powerpc__) || defined(__powerpc64__) //}{
// linux/arch/powerpc/include/uapi/asm/fcntl.h:
#define O_DIRECTORY 040000 /* must be a directory */
#else //}{ i386, amd64, mips
// linux/include/uapi/asm-generic/fcntl.h:
#define O_DIRECTORY 00200000 /* must be a directory */
#endif //}
// linux/include/uapi/asm-generic/fcntl.h:
#define __O_TMPFILE 020000000
#define O_TMPFILE (__O_TMPFILE | O_DIRECTORY)
#define PATH_MAX 4096 /* linux/include/uapi/linux/limits.h */ #define PATH_MAX 4096 /* linux/include/uapi/linux/limits.h */
+37 -16
View File
@@ -79,28 +79,42 @@ extern void my_bkpt(void const *, ...);
#error addr_string #error addr_string
#endif //} #endif //}
#ifdef __mips__ //{
#define NO_WANT_CLOSE 1
#define NO_WANT_EXIT 1
#define NO_WANT_MMAP 1
#define NO_WANT_MPROTECT 1
#define NO_WANT_MSYNC 1
#define NO_WANT_OPEN 1
#define NO_WANT_READ 1
#define NO_WANT_WRITE 1
extern int open(char const *pathname, int flags, unsigned mode);
#endif //}
#include "include/linux.h" // syscall decls; i386 inlines via "int 0x80" #include "include/linux.h" // syscall decls; i386 inlines via "int 0x80"
#define MFD_EXEC 0x10 #define MFD_EXEC 0x10
//#define O_RDWR 2 //#define O_RDWR 2
#define O_DIRECTORY 0200000 /* 0x010000 asm-generic/fcntl.h */
#define O_TMPFILE 020000000 /* 0x400000 asm-generic/fcntl.h */ #if defined(__aarch64__) //{
// linux/arch/arm64/include/uapi/asm/fcntl.h:
#define O_DIRECTORY 040000 /* must be a directory */
#elif defined(__arm__) //}{
// linux/arch/arm/include/uapi/asm/fcntl.h:
#define O_DIRECTORY 040000 /* must be a directory */
#elif defined(__powerpc__) || defined(__powerpc64__) //}{
// linux/arch/powerpc/include/uapi/asm/fcntl.h:
#define O_DIRECTORY 040000 /* must be a directory */
#else //}{ i386, amd64, mips
// linux/include/uapi/asm-generic/fcntl.h:
#define O_DIRECTORY 00200000 /* must be a directory */
#endif //}
// linux/include/uapi/asm-generic/fcntl.h:
#define __O_TMPFILE 020000000
#define O_TMPFILE (__O_TMPFILE | O_DIRECTORY)
#define EISDIR 21 /* directory mismatch */
#define EINVAL 22 /* asm-generic/errno-base.h */ #define EINVAL 22 /* asm-generic/errno-base.h */
extern int memfd_create(char const *, unsigned); extern int memfd_create(char const *, unsigned);
extern int ftruncate(int, size_t); extern int ftruncate(int, size_t);
extern int open(char const *, int, int);
extern unsigned long get_page_mask(void); extern unsigned long get_page_mask(void);
extern ssize_t write(int, void const *, size_t);
void exit(int) __attribute__((__noreturn__,__nothrow__));
// Implementation for Linux-native, where memfd_create // Implementation for Linux-native, where memfd_create
// (or /dev/shm) works. Saves space in contrast to // (or /dev/shm) works. Saves space in contrast to
@@ -121,10 +135,17 @@ unsigned long upx_mmap_and_fd_linux( // returns (mapped_addr | (1+ fd))
if (-EINVAL == fd) { // 2024-10-15 MFD_EXEC unknown to ubuntu-20.04 if (-EINVAL == fd) { // 2024-10-15 MFD_EXEC unknown to ubuntu-20.04
fd = memfd_create(name, 0); // try again fd = memfd_create(name, 0); // try again
} }
if (fd < 0) { // last chance for Linux if (fd < 0) { // such as ENOSYS for memfd_create on Linux < 3.17 (2014-10-05)
// last chance for Linux; using /tmp often hits 'noexec' etc.
fd = open(addr_string("/dev/shm"), O_RDWR | O_DIRECTORY | O_TMPFILE, 0700); fd = open(addr_string("/dev/shm"), O_RDWR | O_DIRECTORY | O_TMPFILE, 0700);
if (fd < 0) { if (fd < 0) {
return (unsigned long)(long)fd; if (-EISDIR == fd) { // no memfd_create often lacks O_TMPFILE, too
write(2, addr_string(
"UPX-5.0 wants memfd_create(), or needs /dev/shm(,O_TMPFILE,)\\n"), 61);
exit(127);
}
// Error from open() is unknown. Cause later SIGSEGV.
return (unsigned long)(long)fd; // -errno; high bits are all 1
} }
// Beware: /dev/shm might limit write() to 8KiB at a time. // Beware: /dev/shm might limit write() to 8KiB at a time.
} }
@@ -136,7 +157,7 @@ unsigned long upx_mmap_and_fd_linux( // returns (mapped_addr | (1+ fd))
(ptr ? MAP_FIXED : 0)|MAP_SHARED, fd, 0); (ptr ? MAP_FIXED : 0)|MAP_SHARED, fd, 0);
unsigned long const page_mask = get_page_mask(); unsigned long const page_mask = get_page_mask();
if (page_mask <= (unsigned long)ptr) { if (page_mask <= (unsigned long)ptr) {
return (unsigned long)ptr; // errno return (unsigned long)ptr; // -errno
} }
return (unsigned long)ptr + (1+ (unsigned)fd); return (unsigned long)ptr + (1+ (unsigned)fd);
} }
+13 -12
View File
@@ -8,16 +8,17 @@ Linker script and memory map
0x0000000000000040 . = SIZEOF_HEADERS 0x0000000000000040 . = SIZEOF_HEADERS
.text 0x0000000000000000 0x9bb .text 0x0000000000000000 0x9cd
.text 0x0000000000000000 0x164 tmp/amd64-linux.elf-fold.o .text 0x0000000000000000 0x165 tmp/amd64-linux.elf-fold.o
0x000000000000015c get_page_mask 0x000000000000015d get_page_mask
.text 0x0000000000000164 0x0 tmp/amd64-expand.o *fill* 0x0000000000000165 0x3 00
.text 0x0000000000000164 0x857 tmp/amd64-linux.elf-main2.o .text 0x0000000000000168 0x0 tmp/amd64-expand.o
0x0000000000000886 upx_main2 .text 0x0000000000000168 0x865 tmp/amd64-linux.elf-main2.o
0x00000000000002c2 underlay 0x0000000000000898 upx_main2
0x00000000000002c6 underlay
UMF_LINUX 0x0000000000000000 0xd4 UMF_LINUX 0x0000000000000000 0xf9
UMF_LINUX 0x0000000000000000 0xd4 tmp/amd64-linux.elf-upxfd_linux.o UMF_LINUX 0x0000000000000000 0xf9 tmp/amd64-linux.elf-upxfd_linux.o
0x0000000000000000 upx_mmap_and_fd_linux 0x0000000000000000 upx_mmap_and_fd_linux
.data 0x0000000000000000 0x0 .data 0x0000000000000000 0x0
@@ -88,6 +89,6 @@ EXP_TAIL 0x0000000000000000 0x14
EXP_TAIL 0x0000000000000000 0x14 tmp/amd64-expand.o EXP_TAIL 0x0000000000000000 0x14 tmp/amd64-expand.o
0x0000000000000014 upx_mmap_and_fd 0x0000000000000014 upx_mmap_and_fd
STRCON 0x0000000000000000 0x15 STRCON 0x0000000000000000 0x53
STRCON 0x0000000000000000 0xd tmp/amd64-linux.elf-upxfd_linux.o STRCON 0x0000000000000000 0x4b tmp/amd64-linux.elf-upxfd_linux.o
STRCON 0x000000000000000d 0x8 tmp/amd64-linux.elf-main2.o STRCON 0x000000000000004b 0x8 tmp/amd64-linux.elf-main2.o
+12 -8
View File
@@ -5,10 +5,10 @@ Idx Name Size VMA LMA File off Algn
0 HUMF_A 05 0 0 040 2**0 CONTENTS 0 HUMF_A 05 0 0 040 2**0 CONTENTS
1 HUMF_L 05 0 0 045 2**0 CONTENTS 1 HUMF_L 05 0 0 045 2**0 CONTENTS
2 UMF_ANDROID 0133 0 0 050 2**4 CONTENTS 2 UMF_ANDROID 0133 0 0 050 2**4 CONTENTS
3 UMF_LINUX 0d4 0 0 0184 2**2 CONTENTS 3 UMF_LINUX 0f9 0 0 0184 2**2 CONTENTS
4 ELFMAINX 0188 0 0 0258 2**2 CONTENTS 4 ELFMAINX 0188 0 0 0280 2**2 CONTENTS
5 ELFMAINZ 0 0 0 03e0 2**0 CONTENTS 5 ELFMAINZ 0 0 0 0408 2**0 CONTENTS
6 STRCON 027 0 0 03e0 2**0 CONTENTS 6 STRCON 065 0 0 0408 2**0 CONTENTS
SYMBOL TABLE: SYMBOL TABLE:
0000000000000000 l d ELFMAINZ 0 ELFMAINZ 0000000000000000 l d ELFMAINZ 0 ELFMAINZ
0000000000000000 l d STRCON 0 STRCON 0000000000000000 l d STRCON 0 STRCON
@@ -22,10 +22,11 @@ SYMBOL TABLE:
0000000000000000 *UND* 0 ftruncate 0000000000000000 *UND* 0 ftruncate
0000000000000000 g F UMF_ANDROID 0133 upx_mmap_and_fd_android 0000000000000000 g F UMF_ANDROID 0133 upx_mmap_and_fd_android
0000000000000000 *UND* 0 mmap 0000000000000000 *UND* 0 mmap
0000000000000000 g F UMF_LINUX 0d4 upx_mmap_and_fd_linux 0000000000000000 g F UMF_LINUX 0f9 upx_mmap_and_fd_linux
0000000000000000 *UND* 0 write 0000000000000000 *UND* 0 write
0000000000000000 *UND* 0 memfd_create 0000000000000000 *UND* 0 memfd_create
0000000000000000 *UND* 0 my_bkpt 0000000000000000 *UND* 0 my_bkpt
0000000000000000 *UND* 0 exit
0000000000000000 *UND* 0 open 0000000000000000 *UND* 0 open
RELOCATION RECORDS FOR [HUMF_A]: RELOCATION RECORDS FOR [HUMF_A]:
@@ -58,9 +59,12 @@ OFFSET TYPE VALUE
0000000000000042 R_X86_64_PLT32 memfd_create+0xfffffffffffffffc 0000000000000042 R_X86_64_PLT32 memfd_create+0xfffffffffffffffc
000000000000004f R_X86_64_PC32 STRCON+0x000000000000001a 000000000000004f R_X86_64_PC32 STRCON+0x000000000000001a
000000000000005e R_X86_64_PLT32 open+0xfffffffffffffffc 000000000000005e R_X86_64_PLT32 open+0xfffffffffffffffc
0000000000000071 R_X86_64_PLT32 ftruncate+0xfffffffffffffffc 0000000000000073 R_X86_64_PC32 STRCON+0x0000000000000023
000000000000009d R_X86_64_PLT32 mmap+0xfffffffffffffffc 0000000000000082 R_X86_64_PLT32 write+0xfffffffffffffffc
00000000000000a5 R_X86_64_PLT32 get_page_mask+0xfffffffffffffffc 000000000000008c R_X86_64_PLT32 exit+0xfffffffffffffffc
0000000000000096 R_X86_64_PLT32 ftruncate+0xfffffffffffffffc
00000000000000c2 R_X86_64_PLT32 mmap+0xfffffffffffffffc
00000000000000ca R_X86_64_PLT32 get_page_mask+0xfffffffffffffffc
RELOCATION RECORDS FOR [ELFMAINX]: RELOCATION RECORDS FOR [ELFMAINX]:
OFFSET TYPE VALUE OFFSET TYPE VALUE
+23 -20
View File
@@ -4,22 +4,22 @@ Sections:
Idx Name Size VMA LMA File off Algn Flags Idx Name Size VMA LMA File off Algn Flags
0 HUMF_A 05 0 0 040 2**0 CONTENTS 0 HUMF_A 05 0 0 040 2**0 CONTENTS
1 HUMF_L 05 0 0 045 2**0 CONTENTS 1 HUMF_L 05 0 0 045 2**0 CONTENTS
2 UMF_LINUX 0d4 0 0 04c 2**2 CONTENTS 2 UMF_LINUX 0f9 0 0 04c 2**2 CONTENTS
3 SO_MAIN 0813 0 0 0120 2**4 CONTENTS 3 SO_MAIN 0813 0 0 0150 2**4 CONTENTS
4 SO_HEAD 044 0 0 0933 2**0 CONTENTS 4 SO_HEAD 044 0 0 0963 2**0 CONTENTS
5 ptr_NEXT 0 0 0 0977 2**0 CONTENTS 5 ptr_NEXT 0 0 0 09a7 2**0 CONTENTS
6 SO_TAIL 0c9 0 0 0977 2**0 CONTENTS 6 SO_TAIL 0c9 0 0 09a7 2**0 CONTENTS
7 EXP_HEAD 0e9 0 0 0a40 2**0 CONTENTS 7 EXP_HEAD 0e9 0 0 0a70 2**0 CONTENTS
8 NRV2E 0e8 0 0 0b29 2**0 CONTENTS 8 NRV2E 0e8 0 0 0b59 2**0 CONTENTS
9 NRV2D 0db 0 0 0c11 2**0 CONTENTS 9 NRV2D 0db 0 0 0c41 2**0 CONTENTS
10 NRV2B 0c4 0 0 0cec 2**0 CONTENTS 10 NRV2B 0c4 0 0 0d1c 2**0 CONTENTS
11 LZMA_DAISY 0a 0 0 0db0 2**0 CONTENTS 11 LZMA_DAISY 0a 0 0 0de0 2**0 CONTENTS
12 LZMA_ELF00 065 0 0 0dba 2**0 CONTENTS 12 LZMA_ELF00 065 0 0 0dea 2**0 CONTENTS
13 LZMA_DEC10 09f7 0 0 0e1f 2**0 CONTENTS 13 LZMA_DEC10 09f7 0 0 0e4f 2**0 CONTENTS
14 LZMA_DEC20 09f7 0 0 01816 2**0 CONTENTS 14 LZMA_DEC20 09f7 0 0 01846 2**0 CONTENTS
15 LZMA_DEC30 019 0 0 0220d 2**0 CONTENTS 15 LZMA_DEC30 019 0 0 0223d 2**0 CONTENTS
16 EXP_TAIL 014 0 0 02228 2**2 CONTENTS 16 EXP_TAIL 014 0 0 02258 2**2 CONTENTS
17 STRCON 0d 0 0 0223c 2**0 CONTENTS 17 STRCON 04b 0 0 0226c 2**0 CONTENTS
SYMBOL TABLE: SYMBOL TABLE:
0000000000000000 l d SO_HEAD 0 SO_HEAD 0000000000000000 l d SO_HEAD 0 SO_HEAD
0000000000000000 l d EXP_HEAD 0 EXP_HEAD 0000000000000000 l d EXP_HEAD 0 EXP_HEAD
@@ -51,7 +51,7 @@ SYMBOL TABLE:
00000000000000ab g SO_TAIL 0 ftruncate 00000000000000ab g SO_TAIL 0 ftruncate
0000000000000000 *UND* 0 upx_mmap_and_fd_android 0000000000000000 *UND* 0 upx_mmap_and_fd_android
0000000000000069 g SO_TAIL 0 mmap 0000000000000069 g SO_TAIL 0 mmap
0000000000000000 g F UMF_LINUX 0d4 upx_mmap_and_fd_linux 0000000000000000 g F UMF_LINUX 0f9 upx_mmap_and_fd_linux
0000000000000000 g F SO_TAIL 0 eof 0000000000000000 g F SO_TAIL 0 eof
00000000000004c3 g F SO_MAIN 0b9 prep_SELinux 00000000000004c3 g F SO_MAIN 0b9 prep_SELinux
00000000000000c1 g SO_TAIL 0 write 00000000000000c1 g SO_TAIL 0 write
@@ -87,9 +87,12 @@ OFFSET TYPE VALUE
0000000000000042 R_X86_64_PLT32 memfd_create+0xfffffffffffffffc 0000000000000042 R_X86_64_PLT32 memfd_create+0xfffffffffffffffc
000000000000004f R_X86_64_PC32 STRCON 000000000000004f R_X86_64_PC32 STRCON
000000000000005e R_X86_64_PLT32 open+0xfffffffffffffffc 000000000000005e R_X86_64_PLT32 open+0xfffffffffffffffc
0000000000000071 R_X86_64_PLT32 ftruncate+0xfffffffffffffffc 0000000000000073 R_X86_64_PC32 STRCON+0x0000000000000009
000000000000009d R_X86_64_PLT32 mmap+0xfffffffffffffffc 0000000000000082 R_X86_64_PLT32 write+0xfffffffffffffffc
00000000000000a5 R_X86_64_PLT32 get_page_mask+0xfffffffffffffffc 000000000000008c R_X86_64_PLT32 exit+0xfffffffffffffffc
0000000000000096 R_X86_64_PLT32 ftruncate+0xfffffffffffffffc
00000000000000c2 R_X86_64_PLT32 mmap+0xfffffffffffffffc
00000000000000ca R_X86_64_PLT32 get_page_mask+0xfffffffffffffffc
RELOCATION RECORDS FOR [SO_MAIN]: RELOCATION RECORDS FOR [SO_MAIN]:
OFFSET TYPE VALUE OFFSET TYPE VALUE
+91 -87
View File
@@ -5,50 +5,50 @@ Idx Name Size VMA LMA File off Algn Flags
0 ELFMAINY 0 0 0 034 2**0 CONTENTS 0 ELFMAINY 0 0 0 034 2**0 CONTENTS
1 HUMF_A 04 0 0 034 2**0 CONTENTS 1 HUMF_A 04 0 0 034 2**0 CONTENTS
2 HUMF_L 04 0 0 038 2**0 CONTENTS 2 HUMF_L 04 0 0 038 2**0 CONTENTS
3 UMF_ANDROID 0540 0 0 03c 2**2 CONTENTS 3 UMF_ANDROID 0544 0 0 03c 2**2 CONTENTS
4 UMF_LINUX 0dc 0 0 057c 2**2 CONTENTS 4 UMF_LINUX 0144 0 0 0580 2**2 CONTENTS
5 ELFMAINX 0248 0 0 0658 2**2 CONTENTS 5 ELFMAINX 0264 0 0 06c4 2**2 CONTENTS
6 ELFMAINZ 0218 0248 0248 08a0 2**0 CONTENTS 6 ELFMAINZ 0218 0264 0264 0928 2**0 CONTENTS
SYMBOL TABLE: SYMBOL TABLE:
00000000 l d UMF_ANDROID 0 UMF_ANDROID 00000000 l d UMF_ANDROID 0 UMF_ANDROID
00000000 l d UMF_LINUX 0 UMF_LINUX 00000000 l d UMF_LINUX 0 UMF_LINUX
00000000 l d ELFMAINX 0 ELFMAINX 00000000 l d ELFMAINX 0 ELFMAINX
00000248 l d ELFMAINZ 0 ELFMAINZ 00000264 l d ELFMAINZ 0 ELFMAINZ
00000000 l d ELFMAINY 0 ELFMAINY 00000000 l d ELFMAINY 0 ELFMAINY
00000000 l d HUMF_A 0 HUMF_A 00000000 l d HUMF_A 0 HUMF_A
00000000 l d HUMF_L 0 HUMF_L 00000000 l d HUMF_L 0 HUMF_L
0000023c g ELFMAINX 0 get_page_mask 00000258 g ELFMAINX 0 get_page_mask
00000000 *UND* 0 MFLG 00000000 *UND* 0 MFLG
00000334 g ELFMAINZ 0 getpid 00000350 g ELFMAINZ 0 getpid
00000248 g ELFMAINX 0 upx_mmap_and_fd 00000264 g ELFMAINX 0 upx_mmap_and_fd
00000250 g ELFMAINZ 0 memcpy 0000026c g ELFMAINZ 0 memcpy
00000000 *UND* 0 O_BINFO 00000000 *UND* 0 O_BINFO
000003e8 g ELFMAINZ 0 Psync 00000404 g ELFMAINZ 0 Psync
00000294 g ELFMAINZ 0 mempcpy 000002b0 g ELFMAINZ 0 mempcpy
00000320 g ELFMAINZ 0 ftruncate 0000033c g ELFMAINZ 0 ftruncate
00000348 g ELFMAINZ 0 lseek 00000364 g ELFMAINZ 0 lseek
000002c4 g F UMF_ANDROID 027c upx_mmap_and_fd_android 000002c4 g F UMF_ANDROID 0280 upx_mmap_and_fd_android
00000418 g ELFMAINZ 0 mmap 00000434 g ELFMAINZ 0 mmap
00000000 g F UMF_LINUX 0dc upx_mmap_and_fd_linux 00000000 g F UMF_LINUX 0144 upx_mmap_and_fd_linux
000003ac g ELFMAINZ 0 uname 000003c8 g ELFMAINZ 0 uname
00000000 g ELFMAINY 0 end_decompress 00000000 g ELFMAINY 0 end_decompress
000003d4 g ELFMAINZ 0 write 000003f0 g ELFMAINZ 0 write
000002f8 g ELFMAINZ 0 fdatasync 00000314 g ELFMAINZ 0 fdatasync
00000248 g ELFMAINZ 0 get_upxfn_path 00000264 g ELFMAINZ 0 get_upxfn_path
000002b0 g ELFMAINZ 0 memfd_create 000002cc g ELFMAINZ 0 memfd_create
00000004 g ELFMAINX 0 _start 00000004 g ELFMAINX 0 _start
00000384 g ELFMAINZ 0 read 000003a0 g ELFMAINZ 0 read
000003c0 g ELFMAINZ 0 unlink 000003dc g ELFMAINZ 0 unlink
00000274 g ELFMAINZ 0 memset 00000290 g ELFMAINZ 0 memset
00000178 g F ELFMAINX 0c4 ucl_nrv2b_decompress_8 00000194 g F ELFMAINX 0c4 ucl_nrv2b_decompress_8
00000410 g ELFMAINZ 0 my_bkpt 0000042c g ELFMAINZ 0 my_bkpt
0000030c g ELFMAINZ 0 fsync 00000328 g ELFMAINZ 0 fsync
00000398 g ELFMAINZ 0 stat 000003b4 g ELFMAINZ 0 stat
00000460 g ELFMAINZ 0 cpr0 0000047c g ELFMAINZ 0 cpr0
000002e4 g ELFMAINZ 0 exit 00000300 g ELFMAINZ 0 exit
00000370 g ELFMAINZ 0 open 0000038c g ELFMAINZ 0 open
0000035c g ELFMAINZ 0 mkdir 00000378 g ELFMAINZ 0 mkdir
000002d0 g ELFMAINZ 0 close 000002ec g ELFMAINZ 0 close
RELOCATION RECORDS FOR [HUMF_A]: RELOCATION RECORDS FOR [HUMF_A]:
OFFSET TYPE VALUE OFFSET TYPE VALUE
@@ -107,47 +107,47 @@ OFFSET TYPE VALUE
00000308 R_ARM_PC24 memfd_create 00000308 R_ARM_PC24 memfd_create
00000314 R_ARM_PC24 UMF_ANDROID 00000314 R_ARM_PC24 UMF_ANDROID
00000318 R_ARM_PC24 UMF_ANDROID 00000318 R_ARM_PC24 UMF_ANDROID
00000338 R_ARM_PC24 open 0000033c R_ARM_PC24 open
00000340 R_ARM_PC24 UMF_ANDROID
00000344 R_ARM_PC24 UMF_ANDROID 00000344 R_ARM_PC24 UMF_ANDROID
0000035c R_ARM_PC24 my_bkpt 00000348 R_ARM_PC24 UMF_ANDROID
00000368 R_ARM_PC24 uname 00000360 R_ARM_PC24 my_bkpt
0000036c R_ARM_PC24 UMF_ANDROID 0000036c R_ARM_PC24 uname
00000380 R_ARM_PC24 UMF_ANDROID 00000370 R_ARM_PC24 UMF_ANDROID
00000388 R_ARM_PC24 UMF_ANDROID 00000384 R_ARM_PC24 UMF_ANDROID
0000038c R_ARM_PC24 UMF_ANDROID 0000038c R_ARM_PC24 UMF_ANDROID
000003a0 R_ARM_PC24 UMF_ANDROID 00000390 R_ARM_PC24 UMF_ANDROID
000003a8 R_ARM_PC24 UMF_ANDROID 000003a4 R_ARM_PC24 UMF_ANDROID
000003b8 R_ARM_PC24 UMF_ANDROID 000003ac R_ARM_PC24 UMF_ANDROID
000003c0 R_ARM_PC24 UMF_ANDROID 000003bc R_ARM_PC24 UMF_ANDROID
000003c4 R_ARM_PC24 get_upxfn_path 000003c4 R_ARM_PC24 UMF_ANDROID
000003e4 R_ARM_PC24 UMF_ANDROID 000003c8 R_ARM_PC24 get_upxfn_path
000003ec R_ARM_PC24 UMF_ANDROID 000003e8 R_ARM_PC24 UMF_ANDROID
000003f8 R_ARM_PC24 UMF_ANDROID 000003f0 R_ARM_PC24 UMF_ANDROID
00000408 R_ARM_PC24 UMF_ANDROID 000003fc R_ARM_PC24 UMF_ANDROID
00000410 R_ARM_PC24 UMF_ANDROID 0000040c R_ARM_PC24 UMF_ANDROID
00000420 R_ARM_PC24 open 00000414 R_ARM_PC24 UMF_ANDROID
0000042c R_ARM_PC24 UMF_ANDROID 00000424 R_ARM_PC24 open
00000434 R_ARM_PC24 unlink 00000430 R_ARM_PC24 UMF_ANDROID
0000043c R_ARM_PC24 UMF_ANDROID 00000438 R_ARM_PC24 unlink
00000448 R_ARM_PC24 UMF_ANDROID 00000440 R_ARM_PC24 UMF_ANDROID
0000044c R_ARM_PC24 get_page_mask 0000044c R_ARM_PC24 UMF_ANDROID
00000464 R_ARM_PC24 UMF_ANDROID 00000450 R_ARM_PC24 get_page_mask
0000046c R_ARM_PC24 UMF_ANDROID 00000468 R_ARM_PC24 UMF_ANDROID
00000478 R_ARM_PC24 ftruncate 00000470 R_ARM_PC24 UMF_ANDROID
00000480 R_ARM_PC24 UMF_ANDROID 0000047c R_ARM_PC24 ftruncate
00000484 R_ARM_PC24 UMF_ANDROID 00000484 R_ARM_PC24 UMF_ANDROID
00000494 R_ARM_PC24 lseek 00000488 R_ARM_PC24 UMF_ANDROID
000004b8 R_ARM_PC24 write 00000498 R_ARM_PC24 lseek
000004c8 R_ARM_PC24 lseek 000004bc R_ARM_PC24 write
000004d4 R_ARM_PC24 UMF_ANDROID 000004cc R_ARM_PC24 lseek
000004d8 R_ARM_PC24 get_page_mask 000004d8 R_ARM_PC24 UMF_ANDROID
000004e4 R_ARM_PC24 UMF_ANDROID 000004dc R_ARM_PC24 get_page_mask
000004f4 R_ARM_PC24 write 000004e8 R_ARM_PC24 UMF_ANDROID
000004f8 R_ARM_PC24 UMF_ANDROID 000004f8 R_ARM_PC24 write
00000518 R_ARM_PC24 mmap 000004fc R_ARM_PC24 UMF_ANDROID
00000528 R_ARM_PC24 UMF_ANDROID 0000051c R_ARM_PC24 mmap
00000530 R_ARM_PC24 UMF_ANDROID 0000052c R_ARM_PC24 UMF_ANDROID
00000534 R_ARM_PC24 UMF_ANDROID
RELOCATION RECORDS FOR [UMF_LINUX]: RELOCATION RECORDS FOR [UMF_LINUX]:
OFFSET TYPE VALUE OFFSET TYPE VALUE
@@ -157,12 +157,16 @@ OFFSET TYPE VALUE
0000003c R_ARM_PC24 memfd_create 0000003c R_ARM_PC24 memfd_create
00000048 R_ARM_PC24 UMF_LINUX 00000048 R_ARM_PC24 UMF_LINUX
0000004c R_ARM_PC24 UMF_LINUX 0000004c R_ARM_PC24 UMF_LINUX
0000006c R_ARM_PC24 open 00000070 R_ARM_PC24 open
00000078 R_ARM_PC24 UMF_LINUX 00000078 R_ARM_PC24 UMF_LINUX
00000084 R_ARM_PC24 ftruncate 00000084 R_ARM_PC24 UMF_LINUX
00000090 R_ARM_PC24 UMF_LINUX 00000088 R_ARM_PC24 UMF_LINUX
000000b8 R_ARM_PC24 mmap 000000d8 R_ARM_PC24 write
000000c0 R_ARM_PC24 get_page_mask 000000e0 R_ARM_PC24 exit
000000ec R_ARM_PC24 ftruncate
000000f8 R_ARM_PC24 UMF_LINUX
00000120 R_ARM_PC24 mmap
00000128 R_ARM_PC24 get_page_mask
RELOCATION RECORDS FOR [ELFMAINX]: RELOCATION RECORDS FOR [ELFMAINX]:
OFFSET TYPE VALUE OFFSET TYPE VALUE
@@ -177,22 +181,22 @@ OFFSET TYPE VALUE
000000a8 R_ARM_PC24 ELFMAINX 000000a8 R_ARM_PC24 ELFMAINX
000000d8 R_ARM_PC24 ELFMAINX 000000d8 R_ARM_PC24 ELFMAINX
00000114 R_ARM_PC24 ELFMAINX 00000114 R_ARM_PC24 ELFMAINX
00000170 R_ARM_PC24 ELFMAINX 0000018c R_ARM_PC24 ELFMAINX
00000188 R_ARM_PC24 ELFMAINX 000001a4 R_ARM_PC24 ELFMAINX
000001c0 R_ARM_PC24 ELFMAINX
000001c8 R_ARM_PC24 ELFMAINX
000001cc R_ARM_PC24 ELFMAINX
000001dc R_ARM_PC24 ELFMAINX 000001dc R_ARM_PC24 ELFMAINX
000001e0 R_ARM_PC24 ELFMAINX
000001e4 R_ARM_PC24 ELFMAINX 000001e4 R_ARM_PC24 ELFMAINX
000001f0 R_ARM_PC24 ELFMAINX 000001e8 R_ARM_PC24 ELFMAINX
000001f8 R_ARM_PC24 ELFMAINX
000001fc R_ARM_PC24 ELFMAINX
00000200 R_ARM_PC24 ELFMAINX 00000200 R_ARM_PC24 ELFMAINX
00000204 R_ARM_PC24 ELFMAINX
0000020c R_ARM_PC24 ELFMAINX 0000020c R_ARM_PC24 ELFMAINX
00000214 R_ARM_PC24 ELFMAINX 0000021c R_ARM_PC24 ELFMAINX
00000218 R_ARM_PC24 ELFMAINX 00000220 R_ARM_PC24 ELFMAINX
00000228 R_ARM_PC24 ELFMAINX
00000230 R_ARM_PC24 ELFMAINX
00000234 R_ARM_PC24 ELFMAINX 00000234 R_ARM_PC24 ELFMAINX
00000238 R_ARM_PC24 ELFMAINX 00000250 R_ARM_PC24 ELFMAINX
00000254 R_ARM_PC24 ELFMAINX
RELOCATION RECORDS FOR [ELFMAINZ]: RELOCATION RECORDS FOR [ELFMAINZ]:
OFFSET TYPE VALUE OFFSET TYPE VALUE
+16 -16
View File
@@ -7,24 +7,24 @@ Name Origin Length Attributes
Linker script and memory map Linker script and memory map
.text 0x0000000000000000 0xc80 .text 0x0000000000000000 0xcb8
.text 0x0000000000000000 0x36c tmp/arm.v4a-linux.elf-fold.o .text 0x0000000000000000 0x398 tmp/arm.v4a-linux.elf-fold.o
0x0000000000000004 get_page_mask 0x0000000000000004 get_page_mask
0x000000000000030c memcpy 0x0000000000000338 memcpy
0x0000000000000048 Psync 0x0000000000000048 Psync
0x0000000000000350 mempcpy 0x000000000000037c mempcpy
0x0000000000000084 mmap 0x00000000000000b0 mmap
0x000000000000006c mmap_privanon 0x0000000000000098 mmap_privanon
0x000000000000000c get_upxfn_path 0x000000000000000c get_upxfn_path
0x0000000000000330 memset 0x000000000000035c memset
0x00000000fffffff4 page_mask 0x00000000fffffff4 page_mask
0x0000000000000024 Pprotect 0x0000000000000024 Pprotect
0x0000000000000024 mprotect 0x0000000000000024 mprotect
.text 0x000000000000036c 0x0 tmp/arm.v4a-linux.elf-help_umf.o .text 0x0000000000000398 0x0 tmp/arm.v4a-linux.elf-help_umf.o
.text 0x000000000000036c 0x0 tmp/arm.v4a-expand.o .text 0x0000000000000398 0x0 tmp/arm.v4a-expand.o
.text 0x000000000000036c 0x914 tmp/arm.v4a-linux.elf-main2.o .text 0x0000000000000398 0x920 tmp/arm.v4a-linux.elf-main2.o
0x0000000000000c1c underlay 0x0000000000000c54 underlay
0x0000000000000aec upx_main 0x0000000000000b24 upx_main
SYSCALLS 0x0000000000000000 0x214 SYSCALLS 0x0000000000000000 0x214
SYSCALLS 0x0000000000000000 0x214 tmp/arm.v4a-linux.elf-fold.o SYSCALLS 0x0000000000000000 0x214 tmp/arm.v4a-linux.elf-fold.o
@@ -59,12 +59,12 @@ HUMF_A 0x0000000000000000 0x4
HUMF_L 0x0000000000000000 0x4 HUMF_L 0x0000000000000000 0x4
HUMF_L 0x0000000000000000 0x4 tmp/arm.v4a-linux.elf-help_umf.o HUMF_L 0x0000000000000000 0x4 tmp/arm.v4a-linux.elf-help_umf.o
UMF_ANDROID 0x0000000000000000 0x540 UMF_ANDROID 0x0000000000000000 0x544
UMF_ANDROID 0x0000000000000000 0x540 tmp/arm.v4a-linux.elf-upxfd_android.o UMF_ANDROID 0x0000000000000000 0x544 tmp/arm.v4a-linux.elf-upxfd_android.o
0x00000000000002c4 upx_mmap_and_fd_android 0x00000000000002c4 upx_mmap_and_fd_android
UMF_LINUX 0x0000000000000000 0xdc UMF_LINUX 0x0000000000000000 0x144
UMF_LINUX 0x0000000000000000 0xdc tmp/arm.v4a-linux.elf-upxfd_linux.o UMF_LINUX 0x0000000000000000 0x144 tmp/arm.v4a-linux.elf-upxfd_linux.o
0x0000000000000000 upx_mmap_and_fd_linux 0x0000000000000000 upx_mmap_and_fd_linux
EXP_HEAD 0x0000000000000000 0xdc EXP_HEAD 0x0000000000000000 0xdc
+26 -22
View File
@@ -7,8 +7,8 @@ Idx Name Size VMA LMA File off Algn Flags
2 HUMF_A 04 0 0 024c 2**0 CONTENTS 2 HUMF_A 04 0 0 024c 2**0 CONTENTS
3 HUMF_L 04 0 0 0250 2**0 CONTENTS 3 HUMF_L 04 0 0 0250 2**0 CONTENTS
4 UMF_ANDROID 054c 0 0 0254 2**2 CONTENTS 4 UMF_ANDROID 054c 0 0 0254 2**2 CONTENTS
5 UMF_LINUX 0dc 0 0 07a0 2**2 CONTENTS 5 UMF_LINUX 0140 0 0 07a0 2**2 CONTENTS
6 ELFMAINX 0248 0 0 087c 2**2 CONTENTS 6 ELFMAINX 0264 0 0 08e0 2**2 CONTENTS
SYMBOL TABLE: SYMBOL TABLE:
00000000 l d ELFMAINZ 0 ELFMAINZ 00000000 l d ELFMAINZ 0 ELFMAINZ
00000000 l d UMF_ANDROID 0 UMF_ANDROID 00000000 l d UMF_ANDROID 0 UMF_ANDROID
@@ -17,10 +17,10 @@ SYMBOL TABLE:
00000000 l d ELFMAINY 0 ELFMAINY 00000000 l d ELFMAINY 0 ELFMAINY
00000000 l d HUMF_A 0 HUMF_A 00000000 l d HUMF_A 0 HUMF_A
00000000 l d HUMF_L 0 HUMF_L 00000000 l d HUMF_L 0 HUMF_L
0000023c g ELFMAINX 0 get_page_mask 00000258 g ELFMAINX 0 get_page_mask
00000000 *UND* 0 MFLG 00000000 *UND* 0 MFLG
000000ec g ELFMAINZ 0 getpid 000000ec g ELFMAINZ 0 getpid
00000248 g ELFMAINX 0 upx_mmap_and_fd 00000264 g ELFMAINX 0 upx_mmap_and_fd
00000008 g ELFMAINZ 0 memcpy 00000008 g ELFMAINZ 0 memcpy
00000000 *UND* 0 O_BINFO 00000000 *UND* 0 O_BINFO
000001a0 g ELFMAINZ 0 Psync 000001a0 g ELFMAINZ 0 Psync
@@ -29,7 +29,7 @@ SYMBOL TABLE:
00000100 g ELFMAINZ 0 lseek 00000100 g ELFMAINZ 0 lseek
000002cc g F UMF_ANDROID 0280 upx_mmap_and_fd_android 000002cc g F UMF_ANDROID 0280 upx_mmap_and_fd_android
000001d0 g ELFMAINZ 0 mmap 000001d0 g ELFMAINZ 0 mmap
00000000 g F UMF_LINUX 0dc upx_mmap_and_fd_linux 00000000 g F UMF_LINUX 0140 upx_mmap_and_fd_linux
00000164 g ELFMAINZ 0 uname 00000164 g ELFMAINZ 0 uname
00000000 g ELFMAINY 0 end_decompress 00000000 g ELFMAINY 0 end_decompress
0000018c g ELFMAINZ 0 write 0000018c g ELFMAINZ 0 write
@@ -40,7 +40,7 @@ SYMBOL TABLE:
0000013c g ELFMAINZ 0 read 0000013c g ELFMAINZ 0 read
00000178 g ELFMAINZ 0 unlink 00000178 g ELFMAINZ 0 unlink
0000002c g ELFMAINZ 0 memset 0000002c g ELFMAINZ 0 memset
00000178 g F ELFMAINX 0c4 ucl_nrv2b_decompress_8 00000194 g F ELFMAINX 0c4 ucl_nrv2b_decompress_8
000001c8 g ELFMAINZ 0 my_bkpt 000001c8 g ELFMAINZ 0 my_bkpt
000000c4 g ELFMAINZ 0 fsync 000000c4 g ELFMAINZ 0 fsync
00000150 g ELFMAINZ 0 stat 00000150 g ELFMAINZ 0 stat
@@ -170,11 +170,15 @@ OFFSET TYPE VALUE
00000048 R_ARM_PC24 UMF_LINUX 00000048 R_ARM_PC24 UMF_LINUX
0000004c R_ARM_PC24 UMF_LINUX 0000004c R_ARM_PC24 UMF_LINUX
00000068 R_ARM_PC24 open 00000068 R_ARM_PC24 open
00000074 R_ARM_PC24 UMF_LINUX 00000070 R_ARM_PC24 UMF_LINUX
00000080 R_ARM_PC24 ftruncate 0000007c R_ARM_PC24 UMF_LINUX
0000008c R_ARM_PC24 UMF_LINUX 00000080 R_ARM_PC24 UMF_LINUX
000000b4 R_ARM_PC24 mmap 000000d0 R_ARM_PC24 write
000000bc R_ARM_PC24 get_page_mask 000000d8 R_ARM_PC24 exit
000000e4 R_ARM_PC24 ftruncate
000000f0 R_ARM_PC24 UMF_LINUX
00000118 R_ARM_PC24 mmap
00000120 R_ARM_PC24 get_page_mask
RELOCATION RECORDS FOR [ELFMAINX]: RELOCATION RECORDS FOR [ELFMAINX]:
OFFSET TYPE VALUE OFFSET TYPE VALUE
@@ -189,19 +193,19 @@ OFFSET TYPE VALUE
000000a8 R_ARM_PC24 ELFMAINX 000000a8 R_ARM_PC24 ELFMAINX
000000d8 R_ARM_PC24 ELFMAINX 000000d8 R_ARM_PC24 ELFMAINX
00000114 R_ARM_PC24 ELFMAINX 00000114 R_ARM_PC24 ELFMAINX
00000170 R_ARM_PC24 ELFMAINX 0000018c R_ARM_PC24 ELFMAINX
00000188 R_ARM_PC24 ELFMAINX 000001a4 R_ARM_PC24 ELFMAINX
000001c0 R_ARM_PC24 ELFMAINX
000001c8 R_ARM_PC24 ELFMAINX
000001cc R_ARM_PC24 ELFMAINX
000001dc R_ARM_PC24 ELFMAINX 000001dc R_ARM_PC24 ELFMAINX
000001e0 R_ARM_PC24 ELFMAINX
000001e4 R_ARM_PC24 ELFMAINX 000001e4 R_ARM_PC24 ELFMAINX
000001f0 R_ARM_PC24 ELFMAINX 000001e8 R_ARM_PC24 ELFMAINX
000001f8 R_ARM_PC24 ELFMAINX
000001fc R_ARM_PC24 ELFMAINX
00000200 R_ARM_PC24 ELFMAINX 00000200 R_ARM_PC24 ELFMAINX
00000204 R_ARM_PC24 ELFMAINX
0000020c R_ARM_PC24 ELFMAINX 0000020c R_ARM_PC24 ELFMAINX
00000214 R_ARM_PC24 ELFMAINX 0000021c R_ARM_PC24 ELFMAINX
00000218 R_ARM_PC24 ELFMAINX 00000220 R_ARM_PC24 ELFMAINX
00000228 R_ARM_PC24 ELFMAINX
00000230 R_ARM_PC24 ELFMAINX
00000234 R_ARM_PC24 ELFMAINX 00000234 R_ARM_PC24 ELFMAINX
00000238 R_ARM_PC24 ELFMAINX 00000250 R_ARM_PC24 ELFMAINX
00000254 R_ARM_PC24 ELFMAINX
+14 -14
View File
@@ -7,24 +7,24 @@ Name Origin Length Attributes
Linker script and memory map Linker script and memory map
.text 0x0000000000000000 0xc80 .text 0x0000000000000000 0xcb8
.text 0x0000000000000000 0x36c tmp/arm.v5a-linux.elf-fold.o .text 0x0000000000000000 0x398 tmp/arm.v5a-linux.elf-fold.o
0x0000000000000004 get_page_mask 0x0000000000000004 get_page_mask
0x000000000000030c memcpy 0x0000000000000338 memcpy
0x0000000000000048 Psync 0x0000000000000048 Psync
0x0000000000000350 mempcpy 0x000000000000037c mempcpy
0x0000000000000084 mmap 0x00000000000000b0 mmap
0x000000000000006c mmap_privanon 0x0000000000000098 mmap_privanon
0x000000000000000c get_upxfn_path 0x000000000000000c get_upxfn_path
0x0000000000000330 memset 0x000000000000035c memset
0x00000000fffffff4 page_mask 0x00000000fffffff4 page_mask
0x0000000000000024 Pprotect 0x0000000000000024 Pprotect
0x0000000000000024 mprotect 0x0000000000000024 mprotect
.text 0x000000000000036c 0x0 tmp/arm.v5a-linux.elf-help_umf.o .text 0x0000000000000398 0x0 tmp/arm.v5a-linux.elf-help_umf.o
.text 0x000000000000036c 0x0 tmp/arm.v5a-expand.o .text 0x0000000000000398 0x0 tmp/arm.v5a-expand.o
.text 0x000000000000036c 0x914 tmp/arm.v5a-linux.elf-main2.o .text 0x0000000000000398 0x920 tmp/arm.v5a-linux.elf-main2.o
0x0000000000000c1c underlay 0x0000000000000c54 underlay
0x0000000000000aec upx_main 0x0000000000000b24 upx_main
SYSCALLS 0x0000000000000000 0x214 SYSCALLS 0x0000000000000000 0x214
SYSCALLS 0x0000000000000000 0x214 tmp/arm.v5a-linux.elf-fold.o SYSCALLS 0x0000000000000000 0x214 tmp/arm.v5a-linux.elf-fold.o
@@ -63,8 +63,8 @@ UMF_ANDROID 0x0000000000000000 0x54c
UMF_ANDROID 0x0000000000000000 0x54c tmp/arm.v5a-linux.elf-upxfd_android.o UMF_ANDROID 0x0000000000000000 0x54c tmp/arm.v5a-linux.elf-upxfd_android.o
0x00000000000002cc upx_mmap_and_fd_android 0x00000000000002cc upx_mmap_and_fd_android
UMF_LINUX 0x0000000000000000 0xdc UMF_LINUX 0x0000000000000000 0x140
UMF_LINUX 0x0000000000000000 0xdc tmp/arm.v5a-linux.elf-upxfd_linux.o UMF_LINUX 0x0000000000000000 0x140 tmp/arm.v5a-linux.elf-upxfd_linux.o
0x0000000000000000 upx_mmap_and_fd_linux 0x0000000000000000 upx_mmap_and_fd_linux
EXP_HEAD 0x0000000000000000 0xdc EXP_HEAD 0x0000000000000000 0xdc
+10 -10
View File
@@ -12,19 +12,19 @@ LOAD tmp/arm64-expand.o
LOAD tmp/arm64-linux.elf-main2.o LOAD tmp/arm64-linux.elf-main2.o
OUTPUT(tmp/arm64-linux.elf-fold.bin elf64-littleaarch64) OUTPUT(tmp/arm64-linux.elf-fold.bin elf64-littleaarch64)
.text 0x0000000000000000 0xb2c .text 0x0000000000000000 0xb84
.text 0x0000000000000000 0x264 tmp/arm64-linux.elf-fold.o .text 0x0000000000000000 0x2c4 tmp/arm64-linux.elf-fold.o
0x0000000000000008 get_page_mask 0x0000000000000008 get_page_mask
0x0000000000000018 mmap_privanon 0x0000000000000018 mmap_privanon
0x0000000000000028 Psync 0x0000000000000028 Psync
0x0000000000000038 msync 0x0000000000000098 msync
0x0000000000000044 mmap 0x00000000000000a4 mmap
0x0000000000000060 Pprotect 0x00000000000000c0 Pprotect
0x0000000000000060 mprotect 0x00000000000000c0 mprotect
.text 0x0000000000000264 0x0 tmp/arm64-expand.o .text 0x00000000000002c4 0x0 tmp/arm64-expand.o
.text 0x0000000000000264 0x8c8 tmp/arm64-linux.elf-main2.o .text 0x00000000000002c4 0x8c0 tmp/arm64-linux.elf-main2.o
0x0000000000000988 underlay 0x00000000000009e0 underlay
0x00000000000009f4 upx_main2 0x0000000000000a4c upx_main2
.data 0x0000000000000000 0x0 .data 0x0000000000000000 0x0
.data 0x0000000000000000 0x0 tmp/arm64-linux.elf-fold.o .data 0x0000000000000000 0x0 tmp/arm64-linux.elf-fold.o
+66 -62
View File
@@ -6,9 +6,9 @@ Idx Name Size VMA LMA File off Algn Flags
1 ELFMAINZ 0218 0 0 034 2**0 CONTENTS 1 ELFMAINZ 0218 0 0 034 2**0 CONTENTS
2 HUMF_A 04 0 0 024c 2**0 CONTENTS 2 HUMF_A 04 0 0 024c 2**0 CONTENTS
3 HUMF_L 04 0 0 0250 2**0 CONTENTS 3 HUMF_L 04 0 0 0250 2**0 CONTENTS
4 UMF_ANDROID 0540 0 0 0254 2**2 CONTENTS 4 UMF_ANDROID 0544 0 0 0254 2**2 CONTENTS
5 UMF_LINUX 0dc 0 0 0794 2**2 CONTENTS 5 UMF_LINUX 0144 0 0 0798 2**2 CONTENTS
6 ELFMAINX 0248 0 0 0870 2**2 CONTENTS 6 ELFMAINX 0264 0 0 08dc 2**2 CONTENTS
SYMBOL TABLE: SYMBOL TABLE:
00000000 l d ELFMAINZ 0 ELFMAINZ 00000000 l d ELFMAINZ 0 ELFMAINZ
00000000 l d UMF_ANDROID 0 UMF_ANDROID 00000000 l d UMF_ANDROID 0 UMF_ANDROID
@@ -17,19 +17,19 @@ SYMBOL TABLE:
00000000 l d ELFMAINY 0 ELFMAINY 00000000 l d ELFMAINY 0 ELFMAINY
00000000 l d HUMF_A 0 HUMF_A 00000000 l d HUMF_A 0 HUMF_A
00000000 l d HUMF_L 0 HUMF_L 00000000 l d HUMF_L 0 HUMF_L
0000023c g ELFMAINX 0 get_page_mask 00000258 g ELFMAINX 0 get_page_mask
00000000 *UND* 0 MFLG 00000000 *UND* 0 MFLG
000000ec g ELFMAINZ 0 getpid 000000ec g ELFMAINZ 0 getpid
00000248 g ELFMAINX 0 upx_mmap_and_fd 00000264 g ELFMAINX 0 upx_mmap_and_fd
00000008 g ELFMAINZ 0 memcpy 00000008 g ELFMAINZ 0 memcpy
00000000 *UND* 0 O_BINFO 00000000 *UND* 0 O_BINFO
000001a0 g ELFMAINZ 0 Psync 000001a0 g ELFMAINZ 0 Psync
0000004c g ELFMAINZ 0 mempcpy 0000004c g ELFMAINZ 0 mempcpy
000000d8 g ELFMAINZ 0 ftruncate 000000d8 g ELFMAINZ 0 ftruncate
00000100 g ELFMAINZ 0 lseek 00000100 g ELFMAINZ 0 lseek
000002c4 g F UMF_ANDROID 027c upx_mmap_and_fd_android 000002c4 g F UMF_ANDROID 0280 upx_mmap_and_fd_android
000001d0 g ELFMAINZ 0 mmap 000001d0 g ELFMAINZ 0 mmap
00000000 g F UMF_LINUX 0dc upx_mmap_and_fd_linux 00000000 g F UMF_LINUX 0144 upx_mmap_and_fd_linux
00000164 g ELFMAINZ 0 uname 00000164 g ELFMAINZ 0 uname
00000000 g ELFMAINY 0 end_decompress 00000000 g ELFMAINY 0 end_decompress
0000018c g ELFMAINZ 0 write 0000018c g ELFMAINZ 0 write
@@ -40,7 +40,7 @@ SYMBOL TABLE:
0000013c g ELFMAINZ 0 read 0000013c g ELFMAINZ 0 read
00000178 g ELFMAINZ 0 unlink 00000178 g ELFMAINZ 0 unlink
0000002c g ELFMAINZ 0 memset 0000002c g ELFMAINZ 0 memset
00000178 g F ELFMAINX 0c4 ucl_nrv2b_decompress_8 00000194 g F ELFMAINX 0c4 ucl_nrv2b_decompress_8
000001c8 g ELFMAINZ 0 my_bkpt 000001c8 g ELFMAINZ 0 my_bkpt
000000c4 g ELFMAINZ 0 fsync 000000c4 g ELFMAINZ 0 fsync
00000150 g ELFMAINZ 0 stat 00000150 g ELFMAINZ 0 stat
@@ -117,47 +117,47 @@ OFFSET TYPE VALUE
00000308 R_ARM_PC24 memfd_create 00000308 R_ARM_PC24 memfd_create
00000314 R_ARM_PC24 UMF_ANDROID 00000314 R_ARM_PC24 UMF_ANDROID
00000318 R_ARM_PC24 UMF_ANDROID 00000318 R_ARM_PC24 UMF_ANDROID
00000338 R_ARM_PC24 open 0000033c R_ARM_PC24 open
00000340 R_ARM_PC24 UMF_ANDROID
00000344 R_ARM_PC24 UMF_ANDROID 00000344 R_ARM_PC24 UMF_ANDROID
0000035c R_ARM_PC24 my_bkpt 00000348 R_ARM_PC24 UMF_ANDROID
00000368 R_ARM_PC24 uname 00000360 R_ARM_PC24 my_bkpt
0000036c R_ARM_PC24 UMF_ANDROID 0000036c R_ARM_PC24 uname
00000380 R_ARM_PC24 UMF_ANDROID 00000370 R_ARM_PC24 UMF_ANDROID
00000388 R_ARM_PC24 UMF_ANDROID 00000384 R_ARM_PC24 UMF_ANDROID
0000038c R_ARM_PC24 UMF_ANDROID 0000038c R_ARM_PC24 UMF_ANDROID
000003a0 R_ARM_PC24 UMF_ANDROID 00000390 R_ARM_PC24 UMF_ANDROID
000003a8 R_ARM_PC24 UMF_ANDROID 000003a4 R_ARM_PC24 UMF_ANDROID
000003b8 R_ARM_PC24 UMF_ANDROID 000003ac R_ARM_PC24 UMF_ANDROID
000003c0 R_ARM_PC24 UMF_ANDROID 000003bc R_ARM_PC24 UMF_ANDROID
000003c4 R_ARM_PC24 get_upxfn_path 000003c4 R_ARM_PC24 UMF_ANDROID
000003e4 R_ARM_PC24 UMF_ANDROID 000003c8 R_ARM_PC24 get_upxfn_path
000003ec R_ARM_PC24 UMF_ANDROID 000003e8 R_ARM_PC24 UMF_ANDROID
000003f8 R_ARM_PC24 UMF_ANDROID 000003f0 R_ARM_PC24 UMF_ANDROID
00000408 R_ARM_PC24 UMF_ANDROID 000003fc R_ARM_PC24 UMF_ANDROID
00000410 R_ARM_PC24 UMF_ANDROID 0000040c R_ARM_PC24 UMF_ANDROID
00000420 R_ARM_PC24 open 00000414 R_ARM_PC24 UMF_ANDROID
0000042c R_ARM_PC24 UMF_ANDROID 00000424 R_ARM_PC24 open
00000434 R_ARM_PC24 unlink 00000430 R_ARM_PC24 UMF_ANDROID
0000043c R_ARM_PC24 UMF_ANDROID 00000438 R_ARM_PC24 unlink
00000448 R_ARM_PC24 UMF_ANDROID 00000440 R_ARM_PC24 UMF_ANDROID
0000044c R_ARM_PC24 get_page_mask 0000044c R_ARM_PC24 UMF_ANDROID
00000464 R_ARM_PC24 UMF_ANDROID 00000450 R_ARM_PC24 get_page_mask
0000046c R_ARM_PC24 UMF_ANDROID 00000468 R_ARM_PC24 UMF_ANDROID
00000478 R_ARM_PC24 ftruncate 00000470 R_ARM_PC24 UMF_ANDROID
00000480 R_ARM_PC24 UMF_ANDROID 0000047c R_ARM_PC24 ftruncate
00000484 R_ARM_PC24 UMF_ANDROID 00000484 R_ARM_PC24 UMF_ANDROID
00000494 R_ARM_PC24 lseek 00000488 R_ARM_PC24 UMF_ANDROID
000004b8 R_ARM_PC24 write 00000498 R_ARM_PC24 lseek
000004c8 R_ARM_PC24 lseek 000004bc R_ARM_PC24 write
000004d4 R_ARM_PC24 UMF_ANDROID 000004cc R_ARM_PC24 lseek
000004d8 R_ARM_PC24 get_page_mask 000004d8 R_ARM_PC24 UMF_ANDROID
000004e4 R_ARM_PC24 UMF_ANDROID 000004dc R_ARM_PC24 get_page_mask
000004f4 R_ARM_PC24 write 000004e8 R_ARM_PC24 UMF_ANDROID
000004f8 R_ARM_PC24 UMF_ANDROID 000004f8 R_ARM_PC24 write
00000518 R_ARM_PC24 mmap 000004fc R_ARM_PC24 UMF_ANDROID
00000528 R_ARM_PC24 UMF_ANDROID 0000051c R_ARM_PC24 mmap
00000530 R_ARM_PC24 UMF_ANDROID 0000052c R_ARM_PC24 UMF_ANDROID
00000534 R_ARM_PC24 UMF_ANDROID
RELOCATION RECORDS FOR [UMF_LINUX]: RELOCATION RECORDS FOR [UMF_LINUX]:
OFFSET TYPE VALUE OFFSET TYPE VALUE
@@ -167,12 +167,16 @@ OFFSET TYPE VALUE
0000003c R_ARM_PC24 memfd_create 0000003c R_ARM_PC24 memfd_create
00000048 R_ARM_PC24 UMF_LINUX 00000048 R_ARM_PC24 UMF_LINUX
0000004c R_ARM_PC24 UMF_LINUX 0000004c R_ARM_PC24 UMF_LINUX
0000006c R_ARM_PC24 open 00000070 R_ARM_PC24 open
00000078 R_ARM_PC24 UMF_LINUX 00000078 R_ARM_PC24 UMF_LINUX
00000084 R_ARM_PC24 ftruncate 00000084 R_ARM_PC24 UMF_LINUX
00000090 R_ARM_PC24 UMF_LINUX 00000088 R_ARM_PC24 UMF_LINUX
000000b8 R_ARM_PC24 mmap 000000d8 R_ARM_PC24 write
000000c0 R_ARM_PC24 get_page_mask 000000e0 R_ARM_PC24 exit
000000ec R_ARM_PC24 ftruncate
000000f8 R_ARM_PC24 UMF_LINUX
00000120 R_ARM_PC24 mmap
00000128 R_ARM_PC24 get_page_mask
RELOCATION RECORDS FOR [ELFMAINX]: RELOCATION RECORDS FOR [ELFMAINX]:
OFFSET TYPE VALUE OFFSET TYPE VALUE
@@ -187,19 +191,19 @@ OFFSET TYPE VALUE
000000a8 R_ARM_PC24 ELFMAINX 000000a8 R_ARM_PC24 ELFMAINX
000000d8 R_ARM_PC24 ELFMAINX 000000d8 R_ARM_PC24 ELFMAINX
00000114 R_ARM_PC24 ELFMAINX 00000114 R_ARM_PC24 ELFMAINX
00000170 R_ARM_PC24 ELFMAINX 0000018c R_ARM_PC24 ELFMAINX
00000188 R_ARM_PC24 ELFMAINX 000001a4 R_ARM_PC24 ELFMAINX
000001c0 R_ARM_PC24 ELFMAINX
000001c8 R_ARM_PC24 ELFMAINX
000001cc R_ARM_PC24 ELFMAINX
000001dc R_ARM_PC24 ELFMAINX 000001dc R_ARM_PC24 ELFMAINX
000001e0 R_ARM_PC24 ELFMAINX
000001e4 R_ARM_PC24 ELFMAINX 000001e4 R_ARM_PC24 ELFMAINX
000001f0 R_ARM_PC24 ELFMAINX 000001e8 R_ARM_PC24 ELFMAINX
000001f8 R_ARM_PC24 ELFMAINX
000001fc R_ARM_PC24 ELFMAINX
00000200 R_ARM_PC24 ELFMAINX 00000200 R_ARM_PC24 ELFMAINX
00000204 R_ARM_PC24 ELFMAINX
0000020c R_ARM_PC24 ELFMAINX 0000020c R_ARM_PC24 ELFMAINX
00000214 R_ARM_PC24 ELFMAINX 0000021c R_ARM_PC24 ELFMAINX
00000218 R_ARM_PC24 ELFMAINX 00000220 R_ARM_PC24 ELFMAINX
00000228 R_ARM_PC24 ELFMAINX
00000230 R_ARM_PC24 ELFMAINX
00000234 R_ARM_PC24 ELFMAINX 00000234 R_ARM_PC24 ELFMAINX
00000238 R_ARM_PC24 ELFMAINX 00000250 R_ARM_PC24 ELFMAINX
00000254 R_ARM_PC24 ELFMAINX
+16 -16
View File
@@ -7,24 +7,24 @@ Name Origin Length Attributes
Linker script and memory map Linker script and memory map
.text 0x0000000000000000 0xc94 .text 0x0000000000000000 0xccc
.text 0x0000000000000000 0x36c tmp/armeb.v4a-linux.elf-fold.o .text 0x0000000000000000 0x398 tmp/armeb.v4a-linux.elf-fold.o
0x0000000000000004 get_page_mask 0x0000000000000004 get_page_mask
0x000000000000030c memcpy 0x0000000000000338 memcpy
0x0000000000000048 Psync 0x0000000000000048 Psync
0x0000000000000350 mempcpy 0x000000000000037c mempcpy
0x0000000000000084 mmap 0x00000000000000b0 mmap
0x000000000000006c mmap_privanon 0x0000000000000098 mmap_privanon
0x000000000000000c get_upxfn_path 0x000000000000000c get_upxfn_path
0x0000000000000330 memset 0x000000000000035c memset
0x00000000fffffff4 page_mask 0x00000000fffffff4 page_mask
0x0000000000000024 Pprotect 0x0000000000000024 Pprotect
0x0000000000000024 mprotect 0x0000000000000024 mprotect
.text 0x000000000000036c 0x0 tmp/armeb.v4a-linux.elf-help_umf.o .text 0x0000000000000398 0x0 tmp/armeb.v4a-linux.elf-help_umf.o
.text 0x000000000000036c 0x0 tmp/armeb.v4a-expand.o .text 0x0000000000000398 0x0 tmp/armeb.v4a-expand.o
.text 0x000000000000036c 0x928 tmp/armeb.v4a-linux.elf-main2.o .text 0x0000000000000398 0x934 tmp/armeb.v4a-linux.elf-main2.o
0x0000000000000c30 underlay 0x0000000000000c68 underlay
0x0000000000000afc upx_main 0x0000000000000b34 upx_main
SYSCALLS 0x0000000000000000 0x214 SYSCALLS 0x0000000000000000 0x214
SYSCALLS 0x0000000000000000 0x214 tmp/armeb.v4a-linux.elf-fold.o SYSCALLS 0x0000000000000000 0x214 tmp/armeb.v4a-linux.elf-fold.o
@@ -59,12 +59,12 @@ HUMF_A 0x0000000000000000 0x4
HUMF_L 0x0000000000000000 0x4 HUMF_L 0x0000000000000000 0x4
HUMF_L 0x0000000000000000 0x4 tmp/armeb.v4a-linux.elf-help_umf.o HUMF_L 0x0000000000000000 0x4 tmp/armeb.v4a-linux.elf-help_umf.o
UMF_ANDROID 0x0000000000000000 0x540 UMF_ANDROID 0x0000000000000000 0x544
UMF_ANDROID 0x0000000000000000 0x540 tmp/armeb.v4a-linux.elf-upxfd_android.o UMF_ANDROID 0x0000000000000000 0x544 tmp/armeb.v4a-linux.elf-upxfd_android.o
0x00000000000002c4 upx_mmap_and_fd_android 0x00000000000002c4 upx_mmap_and_fd_android
UMF_LINUX 0x0000000000000000 0xdc UMF_LINUX 0x0000000000000000 0x144
UMF_LINUX 0x0000000000000000 0xdc tmp/armeb.v4a-linux.elf-upxfd_linux.o UMF_LINUX 0x0000000000000000 0x144 tmp/armeb.v4a-linux.elf-upxfd_linux.o
0x0000000000000000 upx_mmap_and_fd_linux 0x0000000000000000 upx_mmap_and_fd_linux
EXP_HEAD 0x0000000000000000 0xdc EXP_HEAD 0x0000000000000000 0xdc
+16 -16
View File
@@ -5,9 +5,9 @@ Idx Name Size VMA LMA File off Algn Flags
0 HUMF_A 05 0 0 034 2**0 CONTENTS 0 HUMF_A 05 0 0 034 2**0 CONTENTS
1 HUMF_L 05 0 0 039 2**0 CONTENTS 1 HUMF_L 05 0 0 039 2**0 CONTENTS
2 UMF_ANDROID 04bf 0 0 040 2**2 CONTENTS 2 UMF_ANDROID 04bf 0 0 040 2**2 CONTENTS
3 UMF_LINUX 0af 0 0 0500 2**2 CONTENTS 3 UMF_LINUX 011f 0 0 0500 2**2 CONTENTS
4 ELFMAINX 0200 0 0 05b0 2**2 CONTENTS 4 ELFMAINX 0200 0 0 0620 2**2 CONTENTS
5 ELFMAINZ 0a 0 0 07b0 2**0 CONTENTS 5 ELFMAINZ 0a 0 0 0820 2**0 CONTENTS
SYMBOL TABLE: SYMBOL TABLE:
00000000 l d ELFMAINX 0 ELFMAINX 00000000 l d ELFMAINX 0 ELFMAINX
00000000 l d ELFMAINZ 0 ELFMAINZ 00000000 l d ELFMAINZ 0 ELFMAINZ
@@ -15,20 +15,20 @@ SYMBOL TABLE:
00000000 l d HUMF_L 0 HUMF_L 00000000 l d HUMF_L 0 HUMF_L
00000000 l d UMF_ANDROID 0 UMF_ANDROID 00000000 l d UMF_ANDROID 0 UMF_ANDROID
00000000 l d UMF_LINUX 0 UMF_LINUX 00000000 l d UMF_LINUX 0 UMF_LINUX
000001fa g ELFMAINX 0 get_page_mask 000001f8 g ELFMAINX 0 get_page_mask
00000200 g ELFMAINX 0 upx_mmap_and_fd 00000200 g ELFMAINX 0 upx_mmap_and_fd
00000000 *UND* 0 O_BINFO 00000000 *UND* 0 O_BINFO
000001d8 g ELFMAINX 0 mempcpy 000001d6 g ELFMAINX 0 mempcpy
00000000 g F UMF_ANDROID 0235 upx_mmap_and_fd_android 00000000 g F UMF_ANDROID 0235 upx_mmap_and_fd_android
0000017e g ELFMAINX 0 mmap 0000017c g ELFMAINX 0 mmap
00000000 g F UMF_LINUX 0af upx_mmap_and_fd_linux 00000000 g F UMF_LINUX 011f upx_mmap_and_fd_linux
000001a1 g ELFMAINX 0 uname 0000019f g ELFMAINX 0 uname
0000018c g ELFMAINX 0 get_upxfn_path 0000018a g ELFMAINX 0 get_upxfn_path
00000000 g ELFMAINX 0 _start 00000000 g ELFMAINX 0 _start
000001c6 g ELFMAINX 0 memset 000001c4 g ELFMAINX 0 memset
000001f8 g ELFMAINX 0 my_bkpt 000001f6 g ELFMAINX 0 my_bkpt
0000018f g ELFMAINX 0 stat 0000018d g ELFMAINX 0 stat
000001b0 g ELFMAINX 0 mkdir 000001ae g ELFMAINX 0 mkdir
RELOCATION RECORDS FOR [HUMF_A]: RELOCATION RECORDS FOR [HUMF_A]:
OFFSET TYPE VALUE OFFSET TYPE VALUE
@@ -53,14 +53,14 @@ OFFSET TYPE VALUE
RELOCATION RECORDS FOR [UMF_LINUX]: RELOCATION RECORDS FOR [UMF_LINUX]:
OFFSET TYPE VALUE OFFSET TYPE VALUE
0000008d R_386_PC32 mmap 000000fd R_386_PC32 mmap
00000094 R_386_PC32 get_page_mask 00000104 R_386_PC32 get_page_mask
RELOCATION RECORDS FOR [ELFMAINX]: RELOCATION RECORDS FOR [ELFMAINX]:
OFFSET TYPE VALUE OFFSET TYPE VALUE
00000005 R_386_PC32 ELFMAINZ 00000005 R_386_PC32 ELFMAINZ
000000a9 R_386_PC32 upx_mmap_and_fd 000000a9 R_386_PC32 upx_mmap_and_fd
00000156 R_386_PC32 mmap 00000154 R_386_PC32 mmap
RELOCATION RECORDS FOR [ELFMAINZ]: RELOCATION RECORDS FOR [ELFMAINZ]:
OFFSET TYPE VALUE OFFSET TYPE VALUE
+5 -5
View File
@@ -7,15 +7,15 @@ Name Origin Length Attributes
Linker script and memory map Linker script and memory map
.text 0x0000000000000000 0x9b2 .text 0x0000000000000000 0x9fb
.text 0x0000000000000000 0x190 tmp/i386-linux.elf-fold.o .text 0x0000000000000000 0x190 tmp/i386-linux.elf-fold.o
0x0000000000000008 get_page_mask 0x0000000000000008 get_page_mask
0x0000000000000015 get_upxfn_path 0x0000000000000015 get_upxfn_path
.text 0x0000000000000190 0x0 tmp/i386-linux.elf-help_umf.o .text 0x0000000000000190 0x0 tmp/i386-linux.elf-help_umf.o
.text 0x0000000000000190 0x0 tmp/i386-expand.o .text 0x0000000000000190 0x0 tmp/i386-expand.o
.text 0x0000000000000190 0x822 tmp/i386-linux.elf-main2.o .text 0x0000000000000190 0x86b tmp/i386-linux.elf-main2.o
0x00000000000002e8 underlay 0x00000000000002e8 underlay
0x000000000000085e upx_main 0x00000000000008a7 upx_main
HUMF_A 0x0000000000000000 0x5 HUMF_A 0x0000000000000000 0x5
HUMF_A 0x0000000000000000 0x5 tmp/i386-linux.elf-help_umf.o HUMF_A 0x0000000000000000 0x5 tmp/i386-linux.elf-help_umf.o
@@ -27,8 +27,8 @@ UMF_ANDROID 0x0000000000000000 0x4bf
UMF_ANDROID 0x0000000000000000 0x4bf tmp/i386-linux.elf-upxfd_android.o UMF_ANDROID 0x0000000000000000 0x4bf tmp/i386-linux.elf-upxfd_android.o
0x0000000000000000 upx_mmap_and_fd_android 0x0000000000000000 upx_mmap_and_fd_android
UMF_LINUX 0x0000000000000000 0xaf UMF_LINUX 0x0000000000000000 0x11f
UMF_LINUX 0x0000000000000000 0xaf tmp/i386-linux.elf-upxfd_linux.o UMF_LINUX 0x0000000000000000 0x11f tmp/i386-linux.elf-upxfd_linux.o
0x0000000000000000 upx_mmap_and_fd_linux 0x0000000000000000 upx_mmap_and_fd_linux
.data 0x0000000000000000 0x0 .data 0x0000000000000000 0x0
+2 -4
View File
@@ -3,13 +3,11 @@ file format elf32-bigmips
Sections: Sections:
Idx Name Size VMA LMA File off Algn Flags Idx Name Size VMA LMA File off Algn Flags
0 ELFMAINX 0174 0 0 034 2**0 CONTENTS 0 ELFMAINX 0174 0 0 034 2**0 CONTENTS
1 ELFMAINZ 0174 0 0 01a8 2**2 CONTENTS 1 ELFMAINZ 015c 0 0 01a8 2**2 CONTENTS
SYMBOL TABLE: SYMBOL TABLE:
00000000 l d ELFMAINX 0 ELFMAINX 00000000 l d ELFMAINX 0 ELFMAINX
00000000 l d ELFMAINZ 0 ELFMAINZ 00000000 l d ELFMAINZ 0 ELFMAINZ
00000000 g O ELFMAINX 0 _start 00000000 g O ELFMAINX 0 _start
00000100 g O ELFMAINZ 0 memfd_create
00000110 g O ELFMAINZ 0 ftruncate
00000000 *UND* 0 O_BINFO 00000000 *UND* 0 O_BINFO
RELOCATION RECORDS FOR [ELFMAINX]: RELOCATION RECORDS FOR [ELFMAINX]:
@@ -19,4 +17,4 @@ OFFSET TYPE VALUE
RELOCATION RECORDS FOR [ELFMAINZ]: RELOCATION RECORDS FOR [ELFMAINZ]:
OFFSET TYPE VALUE OFFSET TYPE VALUE
00000080 R_MIPS_PC16 ELFMAINX 00000080 R_MIPS_PC16 ELFMAINX
00000170 R_MIPS_32 O_BINFO 00000158 R_MIPS_32 O_BINFO
+31 -31
View File
@@ -7,42 +7,42 @@ Name Origin Length Attributes
Linker script and memory map Linker script and memory map
.text 0x0000000000000000 0xd74 .text 0x0000000000000000 0xd7c
.text 0x0000000000000000 0xd74 tmp/mips.r3000-linux.elf-fold.o .text 0x0000000000000000 0xd7c tmp/mips.r3000-linux.elf-fold.o
0x00000000000000d0 get_page_mask 0x00000000000000d0 get_page_mask
0x00000000000000f0 get_upxfn_path 0x00000000000000f0 get_upxfn_path
0x0000000000000d08 underlay 0x0000000000000d10 underlay
0x0000000000000b78 upx_main 0x0000000000000b80 upx_main
0x0000000000000010 get4unal 0x0000000000000010 get4unal
0x0000000000000128 close 0x0000000000000128 close
SYSCALLS 0x0000000000000000 0x1b4 SYSCALLS 0x0000000000000000 0x1c0
SYSCALLS 0x0000000000000000 0x1b4 tmp/mips.r3000-linux.elf-fold.o SYSCALLS 0x0000000000000000 0x1c0 tmp/mips.r3000-linux.elf-fold.o
0x0000000000000174 munmap 0x0000000000000180 munmap
0x0000000000000144 getpid 0x0000000000000150 getpid
0x0000000000000094 memcpy 0x00000000000000a0 memcpy
0x0000000000000194 readlink 0x00000000000001a0 readlink
0x0000000000000034 Psync 0x0000000000000034 Psync
0x00000000000000bc mempcpy 0x00000000000000c8 mempcpy
0x000000000000013c ftruncate 0x0000000000000148 ftruncate
0x000000000000014c lseek 0x0000000000000158 lseek
0x00000000000000f0 mmap 0x00000000000000fc mmap
0x00000000000000e4 mmap_privanon 0x00000000000000f0 mmap_privanon
0x000000000000019c uname 0x00000000000001a8 uname
0x00000000000001ac write 0x00000000000001b8 write
0x0000000000000154 memfd_create 0x0000000000000160 memfd_create
0x000000000000018c read 0x0000000000000198 read
0x00000000000001a4 unlink 0x00000000000001b0 unlink
0x0000000000000074 memset 0x0000000000000080 memset
0x000000000000016c msync 0x0000000000000178 msync
0x0000000000000068 my_bkpt 0x0000000000000074 my_bkpt
0x0000000000000000 Pprotect 0x0000000000000000 Pprotect
0x000000000000017c stat 0x0000000000000188 stat
0x000000000000012c exit 0x0000000000000138 exit
0x0000000000000134 brk 0x0000000000000140 brk
0x0000000000000184 open 0x0000000000000190 open
0x0000000000000164 mprotect 0x0000000000000170 mprotect
0x000000000000015c mkdir 0x0000000000000168 mkdir
HUMF_A 0x0000000000000000 0x8 HUMF_A 0x0000000000000000 0x8
HUMF_A 0x0000000000000000 0x8 tmp/mips.r3000-linux.elf-fold.o HUMF_A 0x0000000000000000 0x8 tmp/mips.r3000-linux.elf-fold.o
@@ -50,8 +50,8 @@ HUMF_A 0x0000000000000000 0x8
HUMF_L 0x0000000000000000 0x8 HUMF_L 0x0000000000000000 0x8
HUMF_L 0x0000000000000000 0x8 tmp/mips.r3000-linux.elf-fold.o HUMF_L 0x0000000000000000 0x8 tmp/mips.r3000-linux.elf-fold.o
UMF_LINUX 0x0000000000000000 0x108 UMF_LINUX 0x0000000000000000 0x174
UMF_LINUX 0x0000000000000000 0x108 tmp/mips.r3000-linux.elf-fold.o UMF_LINUX 0x0000000000000000 0x174 tmp/mips.r3000-linux.elf-fold.o
0x0000000000000000 upx_mmap_and_fd_linux 0x0000000000000000 upx_mmap_and_fd_linux
EXP_HEAD 0x0000000000000000 0xfc EXP_HEAD 0x0000000000000000 0xfc
+2 -4
View File
@@ -3,13 +3,11 @@ file format elf32-littlemips
Sections: Sections:
Idx Name Size VMA LMA File off Algn Flags Idx Name Size VMA LMA File off Algn Flags
0 ELFMAINX 014c 0 0 034 2**0 CONTENTS 0 ELFMAINX 014c 0 0 034 2**0 CONTENTS
1 ELFMAINZ 0174 0 0 0180 2**2 CONTENTS 1 ELFMAINZ 015c 0 0 0180 2**2 CONTENTS
SYMBOL TABLE: SYMBOL TABLE:
00000000 l d ELFMAINX 0 ELFMAINX 00000000 l d ELFMAINX 0 ELFMAINX
00000000 l d ELFMAINZ 0 ELFMAINZ 00000000 l d ELFMAINZ 0 ELFMAINZ
00000000 g O ELFMAINX 0 _start 00000000 g O ELFMAINX 0 _start
00000100 g O ELFMAINZ 0 memfd_create
00000110 g O ELFMAINZ 0 ftruncate
00000000 *UND* 0 O_BINFO 00000000 *UND* 0 O_BINFO
RELOCATION RECORDS FOR [ELFMAINX]: RELOCATION RECORDS FOR [ELFMAINX]:
@@ -19,4 +17,4 @@ OFFSET TYPE VALUE
RELOCATION RECORDS FOR [ELFMAINZ]: RELOCATION RECORDS FOR [ELFMAINZ]:
OFFSET TYPE VALUE OFFSET TYPE VALUE
00000080 R_MIPS_PC16 ELFMAINX 00000080 R_MIPS_PC16 ELFMAINX
00000170 R_MIPS_32 O_BINFO 00000158 R_MIPS_32 O_BINFO
+31 -31
View File
@@ -7,42 +7,42 @@ Name Origin Length Attributes
Linker script and memory map Linker script and memory map
.text 0x0000000000000000 0xd64 .text 0x0000000000000000 0xd6c
.text 0x0000000000000000 0xd64 tmp/mipsel.r3000-linux.elf-fold.o .text 0x0000000000000000 0xd6c tmp/mipsel.r3000-linux.elf-fold.o
0x00000000000000d0 get_page_mask 0x00000000000000d0 get_page_mask
0x00000000000000f0 get_upxfn_path 0x00000000000000f0 get_upxfn_path
0x0000000000000cf8 underlay 0x0000000000000d00 underlay
0x0000000000000b68 upx_main 0x0000000000000b70 upx_main
0x0000000000000010 get4unal 0x0000000000000010 get4unal
0x0000000000000128 close 0x0000000000000128 close
SYSCALLS 0x0000000000000000 0x1b4 SYSCALLS 0x0000000000000000 0x1c0
SYSCALLS 0x0000000000000000 0x1b4 tmp/mipsel.r3000-linux.elf-fold.o SYSCALLS 0x0000000000000000 0x1c0 tmp/mipsel.r3000-linux.elf-fold.o
0x0000000000000174 munmap 0x0000000000000180 munmap
0x0000000000000144 getpid 0x0000000000000150 getpid
0x0000000000000094 memcpy 0x00000000000000a0 memcpy
0x0000000000000194 readlink 0x00000000000001a0 readlink
0x0000000000000034 Psync 0x0000000000000034 Psync
0x00000000000000bc mempcpy 0x00000000000000c8 mempcpy
0x000000000000013c ftruncate 0x0000000000000148 ftruncate
0x000000000000014c lseek 0x0000000000000158 lseek
0x00000000000000f0 mmap 0x00000000000000fc mmap
0x00000000000000e4 mmap_privanon 0x00000000000000f0 mmap_privanon
0x000000000000019c uname 0x00000000000001a8 uname
0x00000000000001ac write 0x00000000000001b8 write
0x0000000000000154 memfd_create 0x0000000000000160 memfd_create
0x000000000000018c read 0x0000000000000198 read
0x00000000000001a4 unlink 0x00000000000001b0 unlink
0x0000000000000074 memset 0x0000000000000080 memset
0x000000000000016c msync 0x0000000000000178 msync
0x0000000000000068 my_bkpt 0x0000000000000074 my_bkpt
0x0000000000000000 Pprotect 0x0000000000000000 Pprotect
0x000000000000017c stat 0x0000000000000188 stat
0x000000000000012c exit 0x0000000000000138 exit
0x0000000000000134 brk 0x0000000000000140 brk
0x0000000000000184 open 0x0000000000000190 open
0x0000000000000164 mprotect 0x0000000000000170 mprotect
0x000000000000015c mkdir 0x0000000000000168 mkdir
HUMF_A 0x0000000000000000 0x8 HUMF_A 0x0000000000000000 0x8
HUMF_A 0x0000000000000000 0x8 tmp/mipsel.r3000-linux.elf-fold.o HUMF_A 0x0000000000000000 0x8 tmp/mipsel.r3000-linux.elf-fold.o
@@ -50,8 +50,8 @@ HUMF_A 0x0000000000000000 0x8
HUMF_L 0x0000000000000000 0x8 HUMF_L 0x0000000000000000 0x8
HUMF_L 0x0000000000000000 0x8 tmp/mipsel.r3000-linux.elf-fold.o HUMF_L 0x0000000000000000 0x8 tmp/mipsel.r3000-linux.elf-fold.o
UMF_LINUX 0x0000000000000000 0x108 UMF_LINUX 0x0000000000000000 0x174
UMF_LINUX 0x0000000000000000 0x108 tmp/mipsel.r3000-linux.elf-fold.o UMF_LINUX 0x0000000000000000 0x174 tmp/mipsel.r3000-linux.elf-fold.o
0x0000000000000000 upx_mmap_and_fd_linux 0x0000000000000000 upx_mmap_and_fd_linux
EXP_HEAD 0x0000000000000000 0xfc EXP_HEAD 0x0000000000000000 0xfc
+24 -23
View File
@@ -7,18 +7,18 @@ Name Origin Length Attributes
Linker script and memory map Linker script and memory map
.text 0x0000000000000000 0x1320 .text 0x0000000000000000 0x134c
.text 0x0000000000000000 0x2b8 tmp/powerpc-linux.elf-fold.o .text 0x0000000000000000 0x2e0 tmp/powerpc-linux.elf-fold.o
0x000000000000006c Pmap 0x0000000000000094 Pmap
0x000000000000000c get_page_mask 0x000000000000000c get_page_mask
0x0000000000000048 Psync 0x0000000000000048 Psync
0x0000000000000024 Pprotect 0x0000000000000024 Pprotect
0x0000000000000090 Punmap 0x00000000000000b8 Punmap
.text 0x00000000000002b8 0x0 tmp/powerpc-linux.elf-help_umf.o .text 0x00000000000002e0 0x0 tmp/powerpc-linux.elf-help_umf.o
.text 0x00000000000002b8 0x0 tmp/powerpc-expand.o .text 0x00000000000002e0 0x0 tmp/powerpc-expand.o
.text 0x00000000000002b8 0x1068 tmp/powerpc-linux.elf-main2.o .text 0x00000000000002e0 0x106c tmp/powerpc-linux.elf-main2.o
0x00000000000007d0 underlay 0x00000000000007f8 underlay
0x000000000000110c upx_main 0x0000000000001138 upx_main
HUMF_A 0x0000000000000000 0x4 HUMF_A 0x0000000000000000 0x4
HUMF_A 0x0000000000000000 0x4 tmp/powerpc-linux.elf-help_umf.o HUMF_A 0x0000000000000000 0x4 tmp/powerpc-linux.elf-help_umf.o
@@ -26,8 +26,8 @@ HUMF_A 0x0000000000000000 0x4
HUMF_L 0x0000000000000000 0x4 HUMF_L 0x0000000000000000 0x4
HUMF_L 0x0000000000000000 0x4 tmp/powerpc-linux.elf-help_umf.o HUMF_L 0x0000000000000000 0x4 tmp/powerpc-linux.elf-help_umf.o
UMF_LINUX 0x0000000000000000 0x118 UMF_LINUX 0x0000000000000000 0x178
UMF_LINUX 0x0000000000000000 0x118 tmp/powerpc-linux.elf-upxfd_linux.o UMF_LINUX 0x0000000000000000 0x178 tmp/powerpc-linux.elf-upxfd_linux.o
0x0000000000000000 upx_mmap_and_fd_linux 0x0000000000000000 upx_mmap_and_fd_linux
.data 0x0000000000000000 0x0 .data 0x0000000000000000 0x0
@@ -50,27 +50,28 @@ LOAD tmp/powerpc-expand.o
LOAD tmp/powerpc-linux.elf-main2.o LOAD tmp/powerpc-linux.elf-main2.o
OUTPUT(tmp/powerpc-linux.elf-fold.bin elf32-powerpc) OUTPUT(tmp/powerpc-linux.elf-fold.bin elf32-powerpc)
SYSCALLS 0x0000000000000000 0xf8 SYSCALLS 0x0000000000000000 0x110
SYSCALLS 0x0000000000000000 0xf8 tmp/powerpc-linux.elf-fold.o SYSCALLS 0x0000000000000000 0x110 tmp/powerpc-linux.elf-fold.o
0x0000000000000050 munmap 0x0000000000000058 munmap
0x00000000000000b0 memcpy 0x00000000000000c8 memcpy
0x0000000000000010 readlink 0x0000000000000010 readlink
0x0000000000000018 ftruncate 0x0000000000000018 ftruncate
0x0000000000000058 mmap 0x0000000000000060 mmap
0x0000000000000028 write 0x0000000000000028 write
0x000000000000006c memfd_create 0x0000000000000074 memfd_create
0x0000000000000030 read 0x0000000000000030 read
0x00000000000000d4 memset 0x00000000000000ec memset
0x0000000000000048 msync 0x0000000000000050 msync
0x00000000000000f0 my_bkpt 0x0000000000000108 my_bkpt
0x0000000000000000 exit 0x0000000000000000 exit
0x0000000000000008 brk 0x0000000000000008 brk
0x0000000000000040 openat
0x0000000000000038 open 0x0000000000000038 open
0x0000000000000040 mprotect 0x0000000000000048 mprotect
0x0000000000000020 close 0x0000000000000020 close
EXP_HEAD 0x0000000000000000 0xa8 EXP_HEAD 0x0000000000000000 0xac
EXP_HEAD 0x0000000000000000 0xa8 tmp/powerpc-expand.o EXP_HEAD 0x0000000000000000 0xac tmp/powerpc-expand.o
0x0000000000000000 f_expand 0x0000000000000000 f_expand
EXP_TAIL 0x0000000000000000 0x8c EXP_TAIL 0x0000000000000000 0x8c
+17 -15
View File
@@ -11,15 +11,15 @@ TARGET(elf64-powerpc)
LOAD tmp/powerpc64-linux.elf-fold.o LOAD tmp/powerpc64-linux.elf-fold.o
OUTPUT(tmp/powerpc64-linux.elf-fold.bin elf64-powerpc) OUTPUT(tmp/powerpc64-linux.elf-fold.bin elf64-powerpc)
.text 0x0000000000000000 0xeb0 .text 0x0000000000000000 0xed0
.text 0x0000000000000000 0xeb0 tmp/powerpc64-linux.elf-fold.o .text 0x0000000000000000 0xed0 tmp/powerpc64-linux.elf-fold.o
0x0000000000000014 get_page_mask 0x0000000000000014 get_page_mask
0x000000000000002c Pprotect 0x000000000000002c Pprotect
0x0000000000000050 Psync 0x0000000000000050 Psync
0x0000000000000074 Pmap 0x000000000000009c Pmap
0x0000000000000098 Punmap 0x00000000000000c0 Punmap
0x0000000000000c8c underlay 0x0000000000000cac underlay
0x0000000000000d18 upx_main2 0x0000000000000d38 upx_main2
.data 0x0000000000000000 0x0 .data 0x0000000000000000 0x0
.data 0x0000000000000000 0x0 tmp/powerpc64-linux.elf-fold.o .data 0x0000000000000000 0x0 tmp/powerpc64-linux.elf-fold.o
@@ -27,8 +27,8 @@ OUTPUT(tmp/powerpc64-linux.elf-fold.bin elf64-powerpc)
.bss 0x0000000000000000 0x0 .bss 0x0000000000000000 0x0
.bss 0x0000000000000000 0x0 tmp/powerpc64-linux.elf-fold.o .bss 0x0000000000000000 0x0 tmp/powerpc64-linux.elf-fold.o
SYSCALLS 0x0000000000000000 0x140 SYSCALLS 0x0000000000000000 0x148
SYSCALLS 0x0000000000000000 0x140 tmp/powerpc64-linux.elf-fold.o SYSCALLS 0x0000000000000000 0x148 tmp/powerpc64-linux.elf-fold.o
0x0000000000000008 mmap 0x0000000000000008 mmap
0x0000000000000020 munmap 0x0000000000000020 munmap
0x0000000000000028 mprotect 0x0000000000000028 mprotect
@@ -40,11 +40,13 @@ SYSCALLS 0x0000000000000000 0x140
0x0000000000000058 write 0x0000000000000058 write
0x0000000000000060 read 0x0000000000000060 read
0x0000000000000068 open 0x0000000000000068 open
0x0000000000000070 close 0x0000000000000070 openat64
0x0000000000000078 upxfd_create 0x0000000000000070 openat
0x00000000000000d0 memfd_create 0x0000000000000078 close
0x0000000000000114 memcpy 0x0000000000000080 upxfd_create
0x0000000000000138 my_bkpt 0x00000000000000d8 memfd_create
0x000000000000011c memcpy
0x0000000000000140 my_bkpt
.comment 0x0000000000000000 0x33 .comment 0x0000000000000000 0x33
.comment 0x0000000000000000 0x33 tmp/powerpc64-linux.elf-fold.o .comment 0x0000000000000000 0x33 tmp/powerpc64-linux.elf-fold.o
@@ -54,8 +56,8 @@ SYSCALLS 0x0000000000000000 0x140
.note.GNU-stack .note.GNU-stack
0x0000000000000000 0x0 tmp/powerpc64-linux.elf-fold.o 0x0000000000000000 0x0 tmp/powerpc64-linux.elf-fold.o
EXP_HEAD 0x0000000000000000 0xa8 EXP_HEAD 0x0000000000000000 0xac
EXP_HEAD 0x0000000000000000 0xa8 tmp/powerpc64-linux.elf-fold.o EXP_HEAD 0x0000000000000000 0xac tmp/powerpc64-linux.elf-fold.o
0x0000000000000000 f_expand 0x0000000000000000 f_expand
EXP_TAIL 0x0000000000000000 0x8c EXP_TAIL 0x0000000000000000 0x8c
+17 -15
View File
@@ -11,15 +11,15 @@ TARGET(elf64-powerpcle)
LOAD tmp/powerpc64le-linux.elf-fold.o LOAD tmp/powerpc64le-linux.elf-fold.o
OUTPUT(tmp/powerpc64le-linux.elf-fold.bin elf64-powerpcle) OUTPUT(tmp/powerpc64le-linux.elf-fold.bin elf64-powerpcle)
.text 0x0000000000000000 0xedc .text 0x0000000000000000 0xefc
.text 0x0000000000000000 0xedc tmp/powerpc64le-linux.elf-fold.o .text 0x0000000000000000 0xefc tmp/powerpc64le-linux.elf-fold.o
0x0000000000000014 get_page_mask 0x0000000000000014 get_page_mask
0x000000000000002c Pprotect 0x000000000000002c Pprotect
0x0000000000000050 Psync 0x0000000000000050 Psync
0x0000000000000074 Pmap 0x000000000000009c Pmap
0x0000000000000098 Punmap 0x00000000000000c0 Punmap
0x0000000000000cb8 underlay 0x0000000000000cd8 underlay
0x0000000000000d44 upx_main2 0x0000000000000d64 upx_main2
.data 0x0000000000000000 0x0 .data 0x0000000000000000 0x0
.data 0x0000000000000000 0x0 tmp/powerpc64le-linux.elf-fold.o .data 0x0000000000000000 0x0 tmp/powerpc64le-linux.elf-fold.o
@@ -27,8 +27,8 @@ OUTPUT(tmp/powerpc64le-linux.elf-fold.bin elf64-powerpcle)
.bss 0x0000000000000000 0x0 .bss 0x0000000000000000 0x0
.bss 0x0000000000000000 0x0 tmp/powerpc64le-linux.elf-fold.o .bss 0x0000000000000000 0x0 tmp/powerpc64le-linux.elf-fold.o
SYSCALLS 0x0000000000000000 0x140 SYSCALLS 0x0000000000000000 0x148
SYSCALLS 0x0000000000000000 0x140 tmp/powerpc64le-linux.elf-fold.o SYSCALLS 0x0000000000000000 0x148 tmp/powerpc64le-linux.elf-fold.o
0x0000000000000008 mmap 0x0000000000000008 mmap
0x0000000000000020 munmap 0x0000000000000020 munmap
0x0000000000000028 mprotect 0x0000000000000028 mprotect
@@ -40,11 +40,13 @@ SYSCALLS 0x0000000000000000 0x140
0x0000000000000058 write 0x0000000000000058 write
0x0000000000000060 read 0x0000000000000060 read
0x0000000000000068 open 0x0000000000000068 open
0x0000000000000070 close 0x0000000000000070 openat64
0x0000000000000078 upxfd_create 0x0000000000000070 openat
0x00000000000000d0 memfd_create 0x0000000000000078 close
0x0000000000000114 memcpy 0x0000000000000080 upxfd_create
0x0000000000000138 my_bkpt 0x00000000000000d8 memfd_create
0x000000000000011c memcpy
0x0000000000000140 my_bkpt
.comment 0x0000000000000000 0x33 .comment 0x0000000000000000 0x33
.comment 0x0000000000000000 0x33 tmp/powerpc64le-linux.elf-fold.o .comment 0x0000000000000000 0x33 tmp/powerpc64le-linux.elf-fold.o
@@ -54,8 +56,8 @@ SYSCALLS 0x0000000000000000 0x140
.note.GNU-stack .note.GNU-stack
0x0000000000000000 0x0 tmp/powerpc64le-linux.elf-fold.o 0x0000000000000000 0x0 tmp/powerpc64le-linux.elf-fold.o
EXP_HEAD 0x0000000000000000 0xa8 EXP_HEAD 0x0000000000000000 0xac
EXP_HEAD 0x0000000000000000 0xa8 tmp/powerpc64le-linux.elf-fold.o EXP_HEAD 0x0000000000000000 0xac tmp/powerpc64le-linux.elf-fold.o
0x0000000000000000 f_expand 0x0000000000000000 f_expand
EXP_TAIL 0x0000000000000000 0x8c EXP_TAIL 0x0000000000000000 0x8c

Some files were not shown because too many files have changed in this diff Show More