Compare commits
65 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 3757579ffc | |||
| 2962dc351b | |||
| c04c685469 | |||
| 72c9769953 | |||
| 42759b94bd | |||
| aa9e69f03e | |||
| 0f3939df15 | |||
| 62265a1bc9 | |||
| 76b2cec8ee | |||
| 3d82f0cfe1 | |||
| e5546bc8b0 | |||
| 6fc0a00ac8 | |||
| 3e5ba5c064 | |||
| 4c32a8e3d4 | |||
| 2ea316d754 | |||
| 548227a55b | |||
| a831a20910 | |||
| 811f66de84 | |||
| 84d806328b | |||
| 285d4c4c65 | |||
| 8506f5b17c | |||
| a87fd56b3e | |||
| f0cb30e2b9 | |||
| 038743c694 | |||
| 0e6cef99a0 | |||
| 92c925fe95 | |||
| 4562d5459d | |||
| 8393ded1b3 | |||
| b0dc483165 | |||
| 3c0ca81311 | |||
| 157a63a023 | |||
| 80e22a7e38 | |||
| ddf2da3d76 | |||
| 0e6478a60f | |||
| aed2c085b8 | |||
| a7592b2ca2 | |||
| 265c100845 | |||
| 84e8288f61 | |||
| c69b4561fb | |||
| 6db0af8d04 | |||
| 842d2cbb0d | |||
| 9fb64ded10 | |||
| 9d26713b1a | |||
| eb3c55b5cb | |||
| 896596f672 | |||
| e4de14612f | |||
| 1d2b276425 | |||
| 35c6a200ad | |||
| 90a7faa15e | |||
| 91f5fe1c0e | |||
| d48a7d303d | |||
| bb816f0c74 | |||
| 93abe97ea5 | |||
| 97cf29ffbb | |||
| ed35613d64 | |||
| f5ec8363b4 | |||
| 87956de092 | |||
| 0f9315383c | |||
| 3538d796a7 | |||
| 24f3824524 | |||
| 70b20d7d89 | |||
| 7b21a0620b | |||
| 3949af6d3c | |||
| d1f62e3ab4 | |||
| 6e644fa480 |
+6
-1
@@ -7,9 +7,11 @@ Checks: >
|
|||||||
bugprone-*,
|
bugprone-*,
|
||||||
-bugprone-assignment-in-if-condition,
|
-bugprone-assignment-in-if-condition,
|
||||||
-bugprone-branch-clone,
|
-bugprone-branch-clone,
|
||||||
|
-bugprone-casting-through-void,
|
||||||
-bugprone-easily-swappable-parameters,
|
-bugprone-easily-swappable-parameters,
|
||||||
-bugprone-empty-catch,
|
-bugprone-empty-catch,
|
||||||
-bugprone-implicit-widening-of-multiplication-result,
|
-bugprone-implicit-widening-of-multiplication-result,
|
||||||
|
-bugprone-inc-dec-in-conditions,
|
||||||
-bugprone-macro-parentheses,
|
-bugprone-macro-parentheses,
|
||||||
-bugprone-narrowing-conversions,
|
-bugprone-narrowing-conversions,
|
||||||
-bugprone-reserved-identifier,
|
-bugprone-reserved-identifier,
|
||||||
@@ -21,10 +23,13 @@ Checks: >
|
|||||||
clang-analyzer-*,
|
clang-analyzer-*,
|
||||||
-clang-analyzer-optin.performance.Padding,
|
-clang-analyzer-optin.performance.Padding,
|
||||||
-clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling,
|
-clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling,
|
||||||
|
-clang-analyzer-security.insecureAPI.rand,
|
||||||
-clang-analyzer-security.insecureAPI.strcpy,
|
-clang-analyzer-security.insecureAPI.strcpy,
|
||||||
clang-diagnostics-*',
|
clang-diagnostic-*,
|
||||||
performance-*,
|
performance-*,
|
||||||
-performance-avoid-endl,
|
-performance-avoid-endl,
|
||||||
|
-performance-enum-size,
|
||||||
|
-performance-no-int-to-ptr,
|
||||||
-performance-unnecessary-value-param,
|
-performance-unnecessary-value-param,
|
||||||
FormatStyle: file
|
FormatStyle: file
|
||||||
HeaderFilterRegex: '.*'
|
HeaderFilterRegex: '.*'
|
||||||
|
|||||||
@@ -17,7 +17,8 @@ If:
|
|||||||
CompileFlags:
|
CompileFlags:
|
||||||
Add:
|
Add:
|
||||||
- -std=gnu++17
|
- -std=gnu++17
|
||||||
# -std=gnu++20 # requires clang >= 10.0
|
# -std=gnu++20 # requires clangd >= 11.0
|
||||||
|
# -std=gnu++23 # requires clangd >= 18.0
|
||||||
---
|
---
|
||||||
# common flags for all C/C++ files
|
# common flags for all C/C++ files
|
||||||
If:
|
If:
|
||||||
|
|||||||
@@ -3,6 +3,10 @@
|
|||||||
#
|
#
|
||||||
# HINT: check settings with
|
# HINT: check settings with
|
||||||
# git ls-files | git check-attr --stdin --all
|
# git ls-files | git check-attr --stdin --all
|
||||||
|
# git ls-files --eol
|
||||||
|
|
||||||
|
# disable all line ending conversions
|
||||||
|
* -text
|
||||||
|
|
||||||
#
|
#
|
||||||
# tell diff tools that these files are generated automatically
|
# tell diff tools that these files are generated automatically
|
||||||
|
|||||||
+243
-246
@@ -4,7 +4,7 @@
|
|||||||
# unfortunately this sometimes breaks builds in mysterious ways...
|
# unfortunately this sometimes breaks builds in mysterious ways...
|
||||||
# see https://github.com/actions/runner-images.git
|
# see https://github.com/actions/runner-images.git
|
||||||
|
|
||||||
name: 'CI'
|
name: CI
|
||||||
|
|
||||||
on: [push, workflow_dispatch]
|
on: [push, workflow_dispatch]
|
||||||
|
|
||||||
@@ -16,38 +16,44 @@ env:
|
|||||||
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_DEBUG_TEST_FLOAT_DIVISION_BY_ZERO: 1
|
UPX_DEBUG_TEST_FLOAT_DIVISION_BY_ZERO: 1
|
||||||
# 2024-03-23
|
UPX_DEBUG_TEST_LIBC_QSORT: 1
|
||||||
ZIG_DIST_VERSION: 0.12.0-dev.3429+13a9d94a8
|
# 2024-04-20
|
||||||
|
ZIG_DIST_VERSION: 0.12.0
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
job-rebuild-and-verify-stubs:
|
job-rebuild-and-verify-stubs:
|
||||||
name: 'Rebuild stubs'
|
name: Rebuild stubs
|
||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-latest
|
||||||
|
container: ubuntu:24.04 # glibc-2.39
|
||||||
|
#container: debian:12-slim # also works; glibc-2.36
|
||||||
|
#container: debian:testing-slim # also works
|
||||||
steps:
|
steps:
|
||||||
- name: 'Install extra packages'
|
- name: Install packages
|
||||||
run: |
|
run: |
|
||||||
uname -a; pwd; id; umask
|
uname -a; pwd; id; umask
|
||||||
mkdir ../deps; cd ../deps; mkdir packages
|
dpkg --add-architecture i386
|
||||||
if ! test -e /usr/bin/python2; then
|
apt-get update && apt-get upgrade -y
|
||||||
####sudo apt-get update && sudo apt-get install -y --no-install-recommends python2-minimal
|
# install system packages
|
||||||
|
apt-get install -y --no-install-recommends bash ca-certificates curl git libmpc3 make perl-base xz-utils libc6:i386 zlib1g:i386
|
||||||
# install python2-minimal packages from Debian-11
|
# install python2-minimal packages from Debian-11
|
||||||
wget -q 'https://ftp.debian.org/debian/pool/main/p/python2.7/libpython2.7-minimal_2.7.18-8+deb11u1_amd64.deb'
|
mkdir ../deps; cd ../deps; mkdir packages
|
||||||
wget -q 'https://ftp.debian.org/debian/pool/main/p/python2.7/python2.7-minimal_2.7.18-8+deb11u1_amd64.deb'
|
curl -sS -L -O https://ftp.debian.org/debian/pool/main/p/python2.7/libpython2.7-minimal_2.7.18-8+deb11u1_amd64.deb
|
||||||
sudo dpkg -i ./*python2*.deb && rm ./*python2*.deb && sudo ldconfig
|
curl -sS -L -O https://ftp.debian.org/debian/pool/main/p/python2.7/python2.7-minimal_2.7.18-8+deb11u1_amd64.deb
|
||||||
sudo ln -s -v python2.7 /usr/bin/python2
|
dpkg -i ./*python2*.deb && rm ./*python2*.deb && ldconfig
|
||||||
fi
|
ln -s -v python2.7 /usr/bin/python2
|
||||||
# manually unpack and install compat libs from Ubuntu-16.04
|
# manually unpack and install compat libs from Ubuntu-16.04
|
||||||
wget -q 'https://archive.kernel.org/ubuntu-archive/ubuntu/pool/main/m/mpfr4/libmpfr4_3.1.6-1_amd64.deb'
|
curl -sS -L -O https://archive.kernel.org/ubuntu-archive/ubuntu/pool/main/m/mpfr4/libmpfr4_3.1.6-1_amd64.deb
|
||||||
for f in ./*.deb; do dpkg -x $f ./packages; done
|
for f in ./*.deb; do dpkg -x $f ./packages; done
|
||||||
sudo mv -v -n ./packages/usr/lib/x86_64-linux-gnu/lib* /usr/lib/x86_64-linux-gnu/
|
mv -v -n ./packages/usr/lib/x86_64-linux-gnu/lib* /usr/lib/x86_64-linux-gnu/
|
||||||
rm -rf ./*.deb ./packages
|
rm -rf ./*.deb ./packages && ldconfig
|
||||||
sudo ldconfig
|
|
||||||
# install upx-stubtools
|
# install upx-stubtools
|
||||||
wget -q -O - https://github.com/upx/upx-stubtools/releases/download/v20221212/bin-upx-20221212.tar.xz | tar -xJ
|
curl -sS -L https://github.com/upx/upx-stubtools/releases/download/v20221212/bin-upx-20221212.tar.xz | tar -xJ
|
||||||
- name: 'Check out code'
|
- name: Check out code
|
||||||
uses: actions/checkout@v4
|
run: |
|
||||||
with: { submodules: true }
|
git config --global --add safe.directory '*' # needed when running in a container
|
||||||
- name: 'Rebuild and verify stubs'
|
git clone --branch "$GITHUB_REF_NAME" --depth 1 "$GITHUB_SERVER_URL/$GITHUB_REPOSITORY" .
|
||||||
|
git submodule update --init -- vendor/lzma-sdk
|
||||||
|
- name: Rebuild and verify stubs
|
||||||
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
|
||||||
@@ -55,10 +61,15 @@ jobs:
|
|||||||
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
|
||||||
- name: 'Check source code formatting'
|
- name: Check source code formatting
|
||||||
run: |
|
run: |
|
||||||
UPX_CLANG_FORMAT="$PWD/../deps/bin-upx-20221212/clang-format-15.0.6" make -C src clang-format
|
export UPX_CLANG_FORMAT="$PWD/../deps/bin-upx-20221212/clang-format-15.0.6"
|
||||||
|
make -C src clang-format
|
||||||
if ! git diff --quiet; then git diff; exit 1; fi
|
if ! git diff --quiet; then git diff; exit 1; fi
|
||||||
|
- name: Rebuild docs
|
||||||
|
run: |
|
||||||
|
make -C doc clean all
|
||||||
|
if ! git diff --quiet; then git diff || true; fi # ignore diff error
|
||||||
|
|
||||||
job-linux-cmake: # uses cmake + make
|
job-linux-cmake: # uses cmake + make
|
||||||
if: true
|
if: true
|
||||||
@@ -69,122 +80,111 @@ jobs:
|
|||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
include:
|
include:
|
||||||
- { os: ubuntu-22.04, use_m32: true }
|
- { os: ubuntu-22.04, use_extra: true, use_wine: true }
|
||||||
- { os: ubuntu-20.04, use_m32: true } # use_m32 also works here, but save some CI time
|
- { os: ubuntu-20.04, use_extra: true }
|
||||||
env:
|
|
||||||
UPX_CONFIG_EXPECT_THREADS: 'ON'
|
|
||||||
steps:
|
steps:
|
||||||
- name: 'Install extra 32-bit and Windows packages'
|
- name: Install extra 32-bit and MinGW packages
|
||||||
if: ${{ matrix.use_m32 }}
|
if: ${{ matrix.use_extra }}
|
||||||
run: |
|
run: |
|
||||||
sudo dpkg --add-architecture i386
|
sudo dpkg --add-architecture i386
|
||||||
sudo apt-get update
|
sudo apt-get update && sudo apt-get upgrade -y
|
||||||
sudo apt-get install -y g++-multilib g++-mingw-w64-i686 g++-mingw-w64-x86-64
|
sudo apt-get install -y g++-multilib g++-mingw-w64-i686 g++-mingw-w64-x86-64
|
||||||
# make sure that we use posix-threads (pthread/winpthreads) and NOT win32-threads
|
# make sure that we use posix-threads (pthread/winpthreads) and NOT win32-threads
|
||||||
for f in i686-w64-mingw32-g++ i686-w64-mingw32-gcc x86_64-w64-mingw32-g++ x86_64-w64-mingw32-gcc; do
|
for f in i686-w64-mingw32-g++ i686-w64-mingw32-gcc x86_64-w64-mingw32-g++ x86_64-w64-mingw32-gcc; do
|
||||||
if test -f /usr/bin/$f-posix; then sudo update-alternatives --set $f /usr/bin/$f-posix; fi
|
if test -f /usr/bin/$f-posix; then sudo update-alternatives --set $f /usr/bin/$f-posix; fi
|
||||||
|
ls -l /usr/bin/${f}*
|
||||||
done
|
done
|
||||||
sudo apt-get install libc6-dbg:i386 valgrind
|
ls -l /etc/alternatives/*mingw* || true
|
||||||
- name: 'Check out code'
|
sudo apt-get install -y libc6-dbg:i386 valgrind
|
||||||
uses: actions/checkout@v4
|
- name: Install Wine
|
||||||
|
if: ${{ matrix.use_extra && matrix.use_wine }}
|
||||||
|
run: |
|
||||||
|
sudo apt-get install -y wine wine32:i386 wine64
|
||||||
|
ls -l /usr/bin/wine*
|
||||||
|
mkdir -p -v ~/.wine && wineboot --init
|
||||||
|
- uses: actions/checkout@v4
|
||||||
with: { submodules: true }
|
with: { submodules: true }
|
||||||
- name: 'Check out test suite'
|
- name: Check out test suite
|
||||||
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
|
||||||
- name: 'Build extra/gcc/debug'
|
- run: make build/extra/gcc/all
|
||||||
run: 'make build/extra/gcc/debug'
|
- run: make build/extra/clang/all
|
||||||
- name: 'Build extra/gcc/release'
|
- run: make build/extra/gcc-m32/all
|
||||||
run: 'make build/extra/gcc/release'
|
if: ${{ matrix.use_extra }}
|
||||||
- name: 'Build extra/clang/debug'
|
- run: make build/extra/gcc-mx32/all
|
||||||
run: 'make build/extra/clang/debug'
|
if: ${{ matrix.use_extra }}
|
||||||
- name: 'Build extra/clang/release'
|
- run: make build/extra/cross-windows-mingw32/all
|
||||||
run: 'make build/extra/clang/release'
|
if: ${{ matrix.use_extra }}
|
||||||
- name: 'Build extra/gcc-m32/debug'
|
- run: make build/extra/cross-windows-mingw64/all
|
||||||
if: ${{ matrix.use_m32 }}
|
if: ${{ matrix.use_extra }}
|
||||||
run: 'make build/extra/gcc-m32/debug'
|
- name: Make artifact
|
||||||
- name: 'Build extra/gcc-m32/release'
|
|
||||||
if: ${{ matrix.use_m32 && (success() || failure()) }} # run this step even if the previous step failed
|
|
||||||
run: 'make build/extra/gcc-m32/release'
|
|
||||||
- name: 'Build extra/cross-windows-mingw32/release'
|
|
||||||
if: ${{ matrix.use_m32 && (success() || failure()) }} # run this step even if the previous step failed
|
|
||||||
run: 'make build/extra/cross-windows-mingw32/release'
|
|
||||||
- name: 'Build extra/cross-windows-mingw64/release'
|
|
||||||
if: ${{ matrix.use_m32 && (success() || failure()) }} # run this step even if the previous step failed
|
|
||||||
run: 'make build/extra/cross-windows-mingw64/release'
|
|
||||||
- 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')
|
||||||
mkdir -p "tmp/artifact/$N"
|
mkdir -p "tmp/artifact/$N"
|
||||||
(cd build && shopt -s nullglob && cp -ai --parents */upx{,.exe} */*/*/upx{,.exe} "../tmp/artifact/$N")
|
(cd build && shopt -s nullglob && cp -ai --parents */upx{,.exe} */*/*/upx{,.exe} "../tmp/artifact/$N")
|
||||||
(cd tmp/artifact && tar --sort=name -czf "$N.tar.gz" "$N" && rm -rf "./$N")
|
(cd tmp/artifact && tar --sort=name -czf "$N.tar.gz" "$N" && rm -rf "./$N")
|
||||||
# GitHub Actions magic: set "artifact_name" environment value for use in next step
|
|
||||||
echo "artifact_name=$N" >> $GITHUB_ENV
|
echo "artifact_name=$N" >> $GITHUB_ENV
|
||||||
- name: ${{ format('Upload artifact {0}', env.artifact_name) }}
|
- name: ${{ format('Upload artifact {0}', env.artifact_name) }}
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with: { name: '${{ env.artifact_name }}', path: tmp/artifact }
|
||||||
name: ${{ env.artifact_name }}
|
- name: Run install tests
|
||||||
path: tmp/artifact
|
|
||||||
- name: 'Run install tests'
|
|
||||||
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: 'Run ctest tests'
|
- name: Run ctest tests
|
||||||
run: |
|
run: |
|
||||||
make -C build/extra/gcc/debug test
|
jobs="gcc/debug gcc/release clang/debug clang/release"
|
||||||
make -C build/extra/gcc/release test
|
test "${{ matrix.use_extra }}" = "true" && jobs="$jobs gcc-m32/debug gcc-m32/release"
|
||||||
make -C build/extra/clang/debug test
|
command -v wine >/dev/null && jobs="$jobs cross-windows-mingw32/debug cross-windows-mingw32/release"
|
||||||
make -C build/extra/clang/release test
|
command -v wine >/dev/null && jobs="$jobs cross-windows-mingw64/debug cross-windows-mingw64/release"
|
||||||
- name: 'Run ctest tests 32-bit'
|
echo "===== parallel jobs: $jobs"
|
||||||
if: ${{ matrix.use_m32 }}
|
CTEST_JOBS=2 parallel -kv --lb 'make build/extra/{}+test' ::: $jobs
|
||||||
|
- name: Mimic ctest tests
|
||||||
run: |
|
run: |
|
||||||
make -C build/extra/gcc-m32/debug test
|
jobs="gcc/debug gcc/release clang/debug clang/release"
|
||||||
make -C build/extra/gcc-m32/release test
|
test "${{ matrix.use_extra }}" = "true" && jobs="$jobs gcc-m32/debug gcc-m32/release"
|
||||||
- name: 'Mimic ctest tests'
|
echo "===== parallel jobs: $jobs"
|
||||||
run: |
|
parallel -kv --lb 'cd build/extra/{} && bash ../../../../misc/testsuite/mimic_ctest.sh' ::: $jobs
|
||||||
env -C build/extra/gcc/debug bash "$PWD"/misc/testsuite/mimic_ctest.sh
|
- name: Mimic ctest tests with Valgrind
|
||||||
env -C build/extra/gcc/release bash "$PWD"/misc/testsuite/mimic_ctest.sh
|
if: true # note: valgrind is SLOW
|
||||||
env -C build/extra/clang/debug bash "$PWD"/misc/testsuite/mimic_ctest.sh
|
|
||||||
env -C build/extra/clang/release bash "$PWD"/misc/testsuite/mimic_ctest.sh
|
|
||||||
- name: 'Mimic ctest tests 32-bit'
|
|
||||||
if: ${{ matrix.use_m32 }}
|
|
||||||
run: |
|
|
||||||
env -C build/extra/gcc-m32/debug bash "$PWD"/misc/testsuite/mimic_ctest.sh
|
|
||||||
env -C build/extra/gcc-m32/release bash "$PWD"/misc/testsuite/mimic_ctest.sh
|
|
||||||
- name: 'Mimic ctest tests with Valgrind'
|
|
||||||
run: |
|
run: |
|
||||||
if command -v valgrind >/dev/null; then
|
if command -v valgrind >/dev/null; then
|
||||||
|
export UPX_CONFIG_DISABLE_EXHAUSTIVE_TESTS=ON # valgrind is SLOW
|
||||||
export upx_exe_runner="valgrind --leak-check=no --error-exitcode=1 --quiet --gen-suppressions=all"
|
export upx_exe_runner="valgrind --leak-check=no --error-exitcode=1 --quiet --gen-suppressions=all"
|
||||||
env -C build/extra/gcc/debug bash "$PWD"/misc/testsuite/mimic_ctest.sh
|
|
||||||
env -C build/extra/gcc/release bash "$PWD"/misc/testsuite/mimic_ctest.sh
|
|
||||||
# clang/debug does not work before valgrind-3.20, see https://bugs.kde.org/show_bug.cgi?id=452758
|
# clang/debug does not work before valgrind-3.20, see https://bugs.kde.org/show_bug.cgi?id=452758
|
||||||
##env -C build/extra/clang/debug bash "$PWD"/misc/testsuite/mimic_ctest.sh
|
jobs="gcc/debug gcc/release clang/release"
|
||||||
env -C build/extra/clang/release bash "$PWD"/misc/testsuite/mimic_ctest.sh
|
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
|
||||||
fi
|
fi
|
||||||
- name: 'Mimic ctest tests 32-bit with Valgrind'
|
- name: Run file system test suite
|
||||||
if: ${{ matrix.use_m32 }}
|
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/test_symlinks.sh' ::: $jobs
|
||||||
|
- name: Run file system test suite with Valgrind
|
||||||
|
if: false # note: valgrind is SLOW
|
||||||
run: |
|
run: |
|
||||||
if command -v valgrind >/dev/null; then
|
if command -v valgrind >/dev/null; then
|
||||||
export upx_exe_runner="valgrind --leak-check=no --error-exitcode=1 --quiet --gen-suppressions=all"
|
export upx_exe_runner="valgrind --leak-check=no --error-exitcode=1 --quiet --gen-suppressions=all"
|
||||||
env -C build/extra/gcc-m32/debug bash "$PWD"/misc/testsuite/mimic_ctest.sh
|
# clang/debug does not work before valgrind-3.20, see https://bugs.kde.org/show_bug.cgi?id=452758
|
||||||
env -C build/extra/gcc-m32/release bash "$PWD"/misc/testsuite/mimic_ctest.sh
|
jobs="gcc/debug gcc/release 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/test_symlinks.sh' ::: $jobs
|
||||||
fi
|
fi
|
||||||
- name: 'Run file system test suite'
|
- name: Run test suite
|
||||||
run: |
|
|
||||||
env -C build/extra/gcc/release bash "$PWD"/misc/testsuite/test_symlinks.sh
|
|
||||||
- name: 'Run file system test suite with Valgrind'
|
|
||||||
run: |
|
|
||||||
if command -v valgrind >/dev/null; then
|
|
||||||
export upx_exe_runner="valgrind --leak-check=no --error-exitcode=1 --quiet --gen-suppressions=all"
|
|
||||||
env -C build/extra/gcc/release bash "$PWD"/misc/testsuite/test_symlinks.sh
|
|
||||||
fi
|
|
||||||
- name: 'Run test suite build/extra/gcc/release'
|
|
||||||
run: |
|
run: |
|
||||||
export upx_testsuite_SRCDIR="$(readlink -en ../deps/upx-testsuite)"
|
export upx_testsuite_SRCDIR="$(readlink -en ../deps/upx-testsuite)"
|
||||||
env -C build/extra/gcc/release bash "$PWD"/misc/testsuite/upx_testsuite_1.sh
|
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/upx_testsuite_1.sh' ::: $jobs
|
||||||
|
|
||||||
job-macos-cmake: # uses cmake + make
|
job-macos-cmake: # uses cmake + make
|
||||||
if: true
|
if: true
|
||||||
needs: [ job-rebuild-and-verify-stubs ]
|
needs: [ job-rebuild-and-verify-stubs ]
|
||||||
name: ${{ format('{0} {1}', matrix.os, 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 }}
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
@@ -192,99 +192,96 @@ jobs:
|
|||||||
include:
|
include:
|
||||||
# NOTE: macos does not have "env -C"; only with brew coreutils
|
# NOTE: macos does not have "env -C"; only with brew coreutils
|
||||||
# NOTE: macos-11 does not have "readlink -f"; only on macos >= 12 or with brew coreutils
|
# NOTE: macos-11 does not have "readlink -f"; only on macos >= 12 or with brew coreutils
|
||||||
- { os: macos-11, gcc: gcc-10, gxx: 'g++-10', testsuite: true }
|
- { os: macos-11, gcc: gcc-10, gxx: g++-10, testsuite: true }
|
||||||
- { os: macos-12, gcc: gcc-11, gxx: 'g++-11', testsuite: true }
|
- { os: macos-12, gcc: gcc-11, gxx: g++-11, testsuite: true }
|
||||||
- { os: macos-13, gcc: gcc-12, gxx: 'g++-12', testsuite: true, xcode_version: 14.3.1 }
|
- { os: macos-13, testsuite: true } # use default Xcode-15; NOTE: gcc-12 on macos-13 does not work with Xcode-15
|
||||||
- { os: macos-13, testsuite: true } # use default Xcode-15
|
- { os: macos-13, gcc: gcc-12, gxx: g++-12, testsuite: true, xcode_version: 14.3.1 }
|
||||||
# { os: macos-14, gcc: gcc-13, gxx: 'g++-13', testsuite: true } # gcc-13: INTERNAL ERROR in ld64
|
# { os: macos-14, gcc: gcc-13, gxx: g++-13, testsuite: true } # gcc-13: INTERNAL ERROR in ld64
|
||||||
# { os: macos-14, gcc: gcc-13, gxx: 'g++-13', testsuite: true, xcode_version: 14.3.1 } # gcc-13: MISSING HEADER FILES
|
# { os: macos-14, gcc: gcc-13, gxx: g++-13, testsuite: true, xcode_version: 14.3.1 } # gcc-13: MISSING HEADER FILES
|
||||||
- { os: macos-14, gcc: gcc-12, gxx: 'g++-12', testsuite: true } # => use gcc-12 for now
|
- { os: macos-14, gcc: gcc-12, gxx: g++-12, testsuite: true } # => use gcc-12 for now
|
||||||
env:
|
|
||||||
UPX_CONFIG_EXPECT_THREADS: 'ON'
|
|
||||||
steps:
|
steps:
|
||||||
- uses: maxim-lobanov/setup-xcode@v1
|
- uses: maxim-lobanov/setup-xcode@v1
|
||||||
if: matrix.xcode_version # NOTE: gcc-12 on macos-13 does not work with Xcode-15
|
if: ${{ matrix.xcode_version }}
|
||||||
with:
|
with: { xcode-version: '${{ matrix.xcode_version }}' }
|
||||||
xcode-version: ${{ matrix.xcode_version }}
|
- name: Install brew packages
|
||||||
- name: 'Install brew packages'
|
|
||||||
if: ${{ matrix.testsuite }}
|
if: ${{ matrix.testsuite }}
|
||||||
run: |
|
run: |
|
||||||
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"
|
||||||
if ! test -e "$HOMEBREW_PREFIX/opt/coreutils/libexec/gnubin/readlink"; then
|
packages="ninja parallel"
|
||||||
|
test -e "$HOMEBREW_PREFIX/opt/coreutils/libexec/gnubin/readlink" || packages="$packages coreutils"
|
||||||
|
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
|
||||||
# only run "brew update" if needed
|
# only run "brew update" if needed
|
||||||
if ! brew install coreutils; then brew update && brew install coreutils; fi
|
if ! brew install $packages; then brew update && brew install $packages; fi
|
||||||
fi
|
fi
|
||||||
|
mkdir -p ~/.parallel && : > ~/.parallel/$(echo 6305-4721 | tr 0-7 leticlwi)
|
||||||
|
echo "UPX_DEBUG_FORCE_PACK_MACOS=1" >> $GITHUB_ENV
|
||||||
case "${{ matrix.os }}" in
|
case "${{ matrix.os }}" in
|
||||||
macos-11 | macos-12) echo "UPX_DEBUG_FORCE_PACK_MACOS=1" >> $GITHUB_ENV ;;
|
# TODO FIXME: UPX on macos-13+ is broken => disable run-packed for now
|
||||||
# FIXME: UPX on macos-13+ is broken => disable self-test for now
|
macos-13 | macos-14) echo "UPX_CONFIG_DISABLE_RUN_PACKED_TEST=ON" >> $GITHUB_ENV ;;
|
||||||
macos-13 | macos-14) echo "UPX_CONFIG_DISABLE_SELF_PACK_TEST=ON" >> $GITHUB_ENV ;;
|
|
||||||
esac
|
esac
|
||||||
- name: 'Check out code'
|
- uses: actions/checkout@v4
|
||||||
uses: actions/checkout@v4
|
|
||||||
with: { submodules: true }
|
with: { submodules: true }
|
||||||
- name: 'Check out test suite'
|
- name: Check out test suite
|
||||||
if: ${{ matrix.testsuite }}
|
if: ${{ matrix.testsuite }}
|
||||||
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
|
||||||
- name: 'Build extra/clang/debug'
|
- run: make build/extra/clang/all
|
||||||
run: 'make build/extra/clang/debug'
|
- name: Build extra/gcc/all
|
||||||
- name: 'Build extra/clang/release'
|
if: ${{ matrix.gcc }}
|
||||||
run: 'make build/extra/clang/release'
|
run: make build/extra/gcc/all CC="${{ matrix.gcc }} -static-libgcc" CXX="${{ matrix.gxx }} -static-libgcc -static-libstdc++"
|
||||||
- name: 'Build extra/gcc/debug'
|
- name: Build xtarget/cross-darwin-arm64/all
|
||||||
if: ${{ matrix.gcc != '' }}
|
|
||||||
run: 'make build/extra/gcc/debug CC="${{ matrix.gcc }} -static-libgcc" CXX="${{ matrix.gxx }} -static-libgcc -static-libstdc++"'
|
|
||||||
- name: 'Build extra/gcc/release'
|
|
||||||
if: ${{ matrix.gcc != '' }}
|
|
||||||
run: 'make build/extra/gcc/release CC="${{ matrix.gcc }} -static-libgcc" CXX="${{ matrix.gxx }} -static-libgcc -static-libstdc++"'
|
|
||||||
- name: 'Build xtarget/cross-darwin-arm64/debug'
|
|
||||||
run: |
|
run: |
|
||||||
make UPX_XTARGET=xtarget/cross-darwin-arm64 xtarget/debug \
|
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"
|
||||||
- name: 'Build xtarget/cross-darwin-arm64/release'
|
- name: Make artifact
|
||||||
run: |
|
|
||||||
make UPX_XTARGET=xtarget/cross-darwin-arm64 xtarget/release \
|
|
||||||
CC="clang -target arm64-apple-darwin" CXX="clang++ -target arm64-apple-darwin"
|
|
||||||
- name: 'Make artifact'
|
|
||||||
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')
|
||||||
mkdir -p "tmp/artifact/$N"
|
mkdir -p "tmp/artifact/$N"
|
||||||
(cd build && rsync -R -a */*/*/upx "../tmp/artifact/$N/")
|
(cd build && rsync -R -a */*/*/upx "../tmp/artifact/$N/")
|
||||||
(cd tmp/artifact && gtar --sort=name -czf "$N.tar.gz" "$N" && rm -rf "./$N")
|
(cd tmp/artifact && gtar --sort=name -czf "$N.tar.gz" "$N" && rm -rf "./$N")
|
||||||
# GitHub Actions magic: set "artifact_name" environment value for use in next step
|
|
||||||
echo "artifact_name=$N" >> $GITHUB_ENV
|
echo "artifact_name=$N" >> $GITHUB_ENV
|
||||||
- name: ${{ format('Upload artifact {0}', env.artifact_name) }}
|
- name: ${{ format('Upload artifact {0}', env.artifact_name) }}
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with: { name: '${{ env.artifact_name }}', path: tmp/artifact }
|
||||||
name: ${{ env.artifact_name }}
|
- name: Run install tests
|
||||||
path: tmp/artifact
|
|
||||||
- name: 'Run install tests'
|
|
||||||
run: |
|
run: |
|
||||||
(cd build/extra/clang/release && DESTDIR="$PWD/Install with cmake" cmake --install .)
|
(cd build/extra/clang/release && DESTDIR="$PWD/Install with cmake" cmake --install .)
|
||||||
(cd build/extra/clang/release && DESTDIR="$PWD/Install with make" make install)
|
(cd build/extra/clang/release && DESTDIR="$PWD/Install with make" make install)
|
||||||
- name: 'Run ctest tests'
|
- name: Run ctest tests
|
||||||
run: |
|
run: |
|
||||||
make -C build/extra/clang/debug test
|
for f in ./build/extra/*/*/upx; do file $f; done
|
||||||
make -C build/extra/clang/release test
|
jobs="clang/debug clang/release"
|
||||||
for f in ./build/extra/*/*/upx; do echo "===== $f"; $f --sysinfo -v; done
|
test -n "${{ matrix.gcc }}" && jobs="$jobs gcc/debug gcc/release"
|
||||||
- name: 'Mimic ctest tests'
|
echo "===== parallel jobs: $jobs"
|
||||||
|
CTEST_JOBS=2 parallel -kv --lb 'make build/extra/{}+test' ::: $jobs
|
||||||
|
- name: Mimic ctest tests
|
||||||
run: |
|
run: |
|
||||||
export PATH="$HOMEBREW_PREFIX/opt/coreutils/libexec/gnubin:$PATH"
|
export PATH="$HOMEBREW_PREFIX/opt/coreutils/libexec/gnubin:$PATH"
|
||||||
env -C build/extra/clang/debug bash "$PWD"/misc/testsuite/mimic_ctest.sh
|
jobs="clang/debug clang/release"
|
||||||
env -C build/extra/clang/release bash "$PWD"/misc/testsuite/mimic_ctest.sh
|
test -n "${{ matrix.gcc }}" && jobs="$jobs gcc/debug gcc/release"
|
||||||
- name: 'Run file system test suite'
|
echo "===== parallel jobs: $jobs"
|
||||||
|
parallel -kv --lb 'cd build/extra/{} && bash ../../../../misc/testsuite/mimic_ctest.sh' ::: $jobs
|
||||||
|
- name: Run file system test suite
|
||||||
if: ${{ matrix.testsuite }} # for coreutils readlink
|
if: ${{ matrix.testsuite }} # for coreutils readlink
|
||||||
run: |
|
run: |
|
||||||
export PATH="$HOMEBREW_PREFIX/opt/coreutils/libexec/gnubin:$PATH"
|
export PATH="$HOMEBREW_PREFIX/opt/coreutils/libexec/gnubin:$PATH"
|
||||||
env -C build/extra/clang/release bash "$PWD"/misc/testsuite/test_symlinks.sh
|
export upx_test_file="$PWD"/build/extra/clang/release/upx
|
||||||
- name: 'Run test suite build/extra/clang/release'
|
jobs="clang/debug clang/release"
|
||||||
|
test -n "${{ matrix.gcc }}" && jobs="$jobs gcc/debug gcc/release"
|
||||||
|
echo "===== parallel jobs: $jobs"
|
||||||
|
parallel -kv --lb 'cd build/extra/{} && bash ../../../../misc/testsuite/test_symlinks.sh' ::: $jobs
|
||||||
|
- name: Run test suite
|
||||||
if: ${{ matrix.testsuite }}
|
if: ${{ matrix.testsuite }}
|
||||||
run: |
|
run: |
|
||||||
export PATH="$HOMEBREW_PREFIX/opt/coreutils/libexec/gnubin:$PATH"
|
export PATH="$HOMEBREW_PREFIX/opt/coreutils/libexec/gnubin:$PATH"
|
||||||
export upx_testsuite_SRCDIR="$(readlink -en ../deps/upx-testsuite)"
|
export upx_testsuite_SRCDIR="$(readlink -en ../deps/upx-testsuite)"
|
||||||
env -C build/extra/clang/release bash "$PWD"/misc/testsuite/upx_testsuite_1.sh
|
jobs="clang/debug clang/release"
|
||||||
|
test -n "${{ matrix.gcc }}" && jobs="$jobs gcc/debug gcc/release"
|
||||||
|
echo "===== parallel jobs: $jobs"
|
||||||
|
parallel -kv --lb 'cd build/extra/{} && bash ../../../../misc/testsuite/upx_testsuite_1.sh' ::: $jobs
|
||||||
|
|
||||||
job-windows-cmake: # uses cmake + msbuild
|
job-windows-cmake: # uses cmake + msbuild
|
||||||
if: true
|
if: true
|
||||||
@@ -295,46 +292,35 @@ jobs:
|
|||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
include:
|
include:
|
||||||
- { name: windows-2019-amd64, os: windows-2019, vsversion: 2019, arch: amd64 }
|
- { name: windows-2019-amd64, os: windows-2019, vsversion: 2019, vsarch: amd64 }
|
||||||
- { name: windows-2022-amd64, os: windows-2022, vsversion: 2022, arch: amd64 }
|
- { name: windows-2022-amd64, os: windows-2022, vsversion: 2022, vsarch: amd64 }
|
||||||
env:
|
|
||||||
UPX_CONFIG_EXPECT_THREADS: 'ON'
|
|
||||||
steps:
|
steps:
|
||||||
- run: git config --global core.autocrlf false
|
- run: git config --global core.autocrlf false
|
||||||
- name: 'Check out code'
|
- uses: actions/checkout@v4
|
||||||
uses: actions/checkout@v4
|
|
||||||
with: { submodules: true }
|
with: { submodules: true }
|
||||||
- name: 'Check out test suite'
|
- name: Check out test suite
|
||||||
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
|
||||||
- name: 'Set up Developer Command Prompt'
|
- uses: ilammy/msvc-dev-cmd@v1
|
||||||
uses: ilammy/msvc-dev-cmd@v1
|
with: { vsversion: '${{ matrix.vsversion }}', arch: '${{ matrix.vsarch }}' }
|
||||||
with:
|
- run: make build/debug
|
||||||
vsversion: ${{ matrix.vsversion }}
|
- run: make build/release
|
||||||
arch: ${{ matrix.arch }}
|
- name: Make artifact
|
||||||
- name: 'Build debug'
|
|
||||||
run: 'make build/debug'
|
|
||||||
- name: 'Build release'
|
|
||||||
run: 'make build/release'
|
|
||||||
- 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.os }}" | sed 's/[^0-9a-zA-Z_.-]/-/g')
|
||||||
mkdir -p "tmp/artifact/$N"
|
mkdir -p "tmp/artifact/$N"
|
||||||
(cd build && cp -ai --parents */*/upx.exe "../tmp/artifact/$N")
|
(cd build && cp -ai --parents */*/upx.exe "../tmp/artifact/$N")
|
||||||
# GitHub Actions magic: set "artifact_name" environment value for use in next step
|
|
||||||
echo "artifact_name=$N" >> $GITHUB_ENV
|
echo "artifact_name=$N" >> $GITHUB_ENV
|
||||||
- name: ${{ format('Upload artifact {0}', env.artifact_name) }}
|
- name: ${{ format('Upload artifact {0}', env.artifact_name) }}
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with: { name: '${{ env.artifact_name }}', path: tmp/artifact }
|
||||||
name: ${{ env.artifact_name }}
|
- name: Run ctest tests
|
||||||
path: tmp/artifact
|
if: ${{ matrix.vsarch != 'amd64_arm64' }}
|
||||||
- name: 'Run ctest tests'
|
|
||||||
if: ${{ matrix.arch != 'amd64_arm64' }}
|
|
||||||
run: |
|
run: |
|
||||||
ctest --test-dir build/debug -C Debug
|
ctest --test-dir build/debug --parallel 8 -C Debug
|
||||||
ctest --test-dir build/release -C Release
|
ctest --test-dir build/release --parallel 8 -C Release
|
||||||
- name: 'Run test suite build/release'
|
- name: Run test suite build/release
|
||||||
if: ${{ matrix.arch != '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)"
|
||||||
@@ -352,32 +338,28 @@ jobs:
|
|||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
include:
|
include:
|
||||||
- { name: amd64-win64-vs2019, os: windows-2019, vsversion: 2019, arch: amd64 }
|
- { name: amd64-win64-vs2019, os: windows-2019, vsversion: 2019, vsarch: amd64 }
|
||||||
- { name: amd64-win64-vs2022, os: windows-2022, vsversion: 2022, arch: amd64 }
|
- { name: amd64-win64-vs2022, os: windows-2022, vsversion: 2022, vsarch: amd64 }
|
||||||
- { name: arm64-win64-vs2019, os: windows-2019, vsversion: 2019, arch: amd64_arm64 }
|
- { name: arm64-win64-vs2019, os: windows-2019, vsversion: 2019, vsarch: amd64_arm64 }
|
||||||
- { name: arm64-win64-vs2022, os: windows-2022, vsversion: 2022, arch: amd64_arm64 }
|
- { name: arm64-win64-vs2022, os: windows-2022, vsversion: 2022, vsarch: amd64_arm64 }
|
||||||
- { name: arm64ec-win64-vs2022, os: windows-2022, vsversion: 2022, arch: 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, arch: 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, arch: amd64_x86 }
|
- { name: i386-win32-vs2019, os: windows-2019, vsversion: 2019, vsarch: amd64_x86 }
|
||||||
- { name: i386-win32-vs2022, os: windows-2022, vsversion: 2022, arch: amd64_x86 }
|
- { name: i386-win32-vs2022, os: windows-2022, vsversion: 2022, vsarch: amd64_x86 }
|
||||||
steps:
|
steps:
|
||||||
- run: git config --global core.autocrlf false
|
- run: git config --global core.autocrlf false
|
||||||
- name: 'Check out code'
|
- uses: actions/checkout@v4
|
||||||
uses: actions/checkout@v4
|
|
||||||
with: { submodules: true }
|
with: { submodules: true }
|
||||||
- name: 'Prepare sources and Check out test suite'
|
- name: Prepare sources and Check out test suite
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
git clone --depth=1 https://github.com/upx/upx-testsuite ../deps/upx-testsuite
|
git clone --depth=1 https://github.com/upx/upx-testsuite ../deps/upx-testsuite
|
||||||
mkdir -p -v build/$C/$B/{bzip2,ucl,upx,zlib,zstd}
|
mkdir -p -v build/$C/$B/{bzip2,ucl,upx,zlib,zstd}
|
||||||
repository_name="${GITHUB_REPOSITORY##*/}" # basename
|
repository_name="${GITHUB_REPOSITORY##*/}" # basename
|
||||||
echo "H=d:\\a\\$repository_name\\$repository_name" >> $GITHUB_ENV
|
echo "H=d:\\a\\$repository_name\\$repository_name" >> $GITHUB_ENV
|
||||||
- name: 'Set up Developer Command Prompt'
|
- uses: ilammy/msvc-dev-cmd@v1
|
||||||
uses: ilammy/msvc-dev-cmd@v1
|
with: { vsversion: '${{ matrix.vsversion }}', arch: '${{ matrix.vsarch }}' }
|
||||||
with:
|
- name: Build by hand
|
||||||
vsversion: ${{ matrix.vsversion }}
|
|
||||||
arch: ${{ matrix.arch }}
|
|
||||||
- name: 'Build by hand'
|
|
||||||
shell: cmd
|
shell: cmd
|
||||||
run: |
|
run: |
|
||||||
@REM ===== set vars =====
|
@REM ===== set vars =====
|
||||||
@@ -416,21 +398,18 @@ jobs:
|
|||||||
@rem set UPX_LIBS=%BDIR%\bzip2\bzip2.lib %BDIR%\ucl\ucl.lib %BDIR%\zlib\zlib.lib %BDIR%\zstd\zstd.lib
|
@rem set UPX_LIBS=%BDIR%\bzip2\bzip2.lib %BDIR%\ucl\ucl.lib %BDIR%\zlib\zlib.lib %BDIR%\zstd\zstd.lib
|
||||||
set sources=%s%\*.cpp %s%\check\*.cpp %s%\compress\*.cpp %s%\console\*.cpp %s%\filter\*.cpp %s%\util\*.cpp
|
set sources=%s%\*.cpp %s%\check\*.cpp %s%\compress\*.cpp %s%\console\*.cpp %s%\filter\*.cpp %s%\util\*.cpp
|
||||||
%RUN_CL% -J -O2 -W4 -WX -std:c++17 -Zc:__cplusplus -EHsc -DUPX_VERSION_GITREV="""%GITREV%""" %DEFS% %UPX_DEFS% -I%H%\vendor -Feupx.exe %sources% %UPX_LIBS% /link ${{ matrix.link_machine_flags }} setargv.obj
|
%RUN_CL% -J -O2 -W4 -WX -std:c++17 -Zc:__cplusplus -EHsc -DUPX_VERSION_GITREV="""%GITREV%""" %DEFS% %UPX_DEFS% -I%H%\vendor -Feupx.exe %sources% %UPX_LIBS% /link ${{ matrix.link_machine_flags }} setargv.obj
|
||||||
- name: 'Make artifact'
|
- name: Make artifact
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
N=$(echo "upx-${GITHUB_REF_NAME}-${GITHUB_SHA:0:7}-windows-${{ matrix.name }}" | sed 's/[^0-9a-zA-Z_.-]/-/g')
|
N=$(echo "upx-${GITHUB_REF_NAME}-${GITHUB_SHA:0:7}-windows-${{ matrix.name }}" | sed 's/[^0-9a-zA-Z_.-]/-/g')
|
||||||
mkdir -p "tmp/artifact/$N/$B"
|
mkdir -p "tmp/artifact/$N/$B"
|
||||||
cp -ai build/$C/$B/upx/upx*.exe "tmp/artifact/$N/$B"
|
cp -ai build/$C/$B/upx/upx*.exe "tmp/artifact/$N/$B"
|
||||||
# GitHub Actions magic: set "artifact_name" environment value for use in next step
|
|
||||||
echo "artifact_name=$N" >> $GITHUB_ENV
|
echo "artifact_name=$N" >> $GITHUB_ENV
|
||||||
- name: ${{ format('Upload artifact {0}', env.artifact_name) }}
|
- name: ${{ format('Upload artifact {0}', env.artifact_name) }}
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with: { name: '${{ env.artifact_name }}', path: tmp/artifact }
|
||||||
name: ${{ env.artifact_name }}
|
- name: Run basic tests
|
||||||
path: tmp/artifact
|
if: ${{ matrix.vsarch != 'amd64_arm64' }}
|
||||||
- name: 'Run basic tests'
|
|
||||||
if: ${{ matrix.arch != 'amd64_arm64' }}
|
|
||||||
run: |
|
run: |
|
||||||
$ErrorActionPreference = 'stop'
|
$ErrorActionPreference = 'stop'
|
||||||
$ErrorView = 'NormalView'
|
$ErrorView = 'NormalView'
|
||||||
@@ -443,8 +422,8 @@ 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: 'Run test suite'
|
- name: Run test suite
|
||||||
if: ${{ matrix.arch != '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)"
|
||||||
@@ -455,7 +434,7 @@ jobs:
|
|||||||
needs: [ job-rebuild-and-verify-stubs ]
|
needs: [ job-rebuild-and-verify-stubs ]
|
||||||
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.19'
|
container: alpine:3.19
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
@@ -470,15 +449,18 @@ jobs:
|
|||||||
- { 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: arm-linux-musleabihf, qemu: qemu-arm, zig_pic: -fPIE }
|
# { zig_target: arm-linux-musleabihf, qemu: qemu-arm, zig_pic: -fPIE }
|
||||||
- { zig_target: i386-linux-musl, qemu: qemu-i386 -cpu Conroe }
|
- { zig_target: i386-linux-gnu.2.3.4, zig_flags: -march=i586 }
|
||||||
# { zig_target: i386-linux-musl, qemu: qemu-i386 -cpu Conroe, zig_pic: -fPIE }
|
- { 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_pic: -fPIE }
|
||||||
- { zig_target: i386-windows-gnu }
|
- { zig_target: i386-windows-gnu }
|
||||||
# mips and mipsel: bad hard-float code generation(??); or QEMU bug; or UPX bug; see https://github.com/upx/upx/issues/788
|
# mips and mipsel: bad hard-float code generation(??); or QEMU bug; or UPX bug; see https://github.com/upx/upx/issues/788
|
||||||
- { zig_target: mips-linux-musl, zig_flags: -msoft-float, qemu: qemu-mips }
|
- { zig_target: mips-linux-musl, zig_flags: -msoft-float, qemu: qemu-mips }
|
||||||
- { zig_target: mipsel-linux-musl, zig_flags: -msoft-float, qemu: qemu-mipsel }
|
- { zig_target: mipsel-linux-musl, zig_flags: -msoft-float, qemu: qemu-mipsel }
|
||||||
- { zig_target: powerpc-linux-musl, qemu: qemu-ppc }
|
- { zig_target: powerpc-linux-musl, qemu: qemu-ppc }
|
||||||
- { zig_target: powerpc64-linux-musl, qemu: qemu-ppc64 }
|
# powerpc64: obscure problem with C++ exceptions in UPX doctest checks; use -fPIC to work-around
|
||||||
|
- { zig_target: powerpc64-linux-musl, zig_flags: -fPIC, qemu: qemu-ppc64 }
|
||||||
- { zig_target: powerpc64le-linux-musl, qemu: qemu-ppc64le }
|
- { zig_target: powerpc64le-linux-musl, qemu: qemu-ppc64le }
|
||||||
|
- { zig_target: x86_64-linux-gnu.2.3.4, 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-linux-musl, qemu: qemu-x86_64, zig_pic: -fPIE }
|
# { zig_target: x86_64-linux-musl, qemu: qemu-x86_64, zig_pic: -fPIE }
|
||||||
# { zig_target: x86_64-macos-none }
|
# { zig_target: x86_64-macos-none }
|
||||||
@@ -487,7 +469,6 @@ jobs:
|
|||||||
# { zig_target: x86_64-macos.13.0-none }
|
# { zig_target: x86_64-macos.13.0-none }
|
||||||
- { zig_target: x86_64-windows-gnu }
|
- { zig_target: x86_64-windows-gnu }
|
||||||
env:
|
env:
|
||||||
##UPX_CONFIG_EXPECT_THREADS: 'ON'
|
|
||||||
# zig is currently missing winpthreads; see https://github.com/ziglang/zig/issues/10989
|
# zig is currently missing winpthreads; see https://github.com/ziglang/zig/issues/10989
|
||||||
UPX_CONFIG_EXPECT_THREADS: ${{ contains(matrix.zig_target, '-windows-') && 'OFF' || 'ON' }}
|
UPX_CONFIG_EXPECT_THREADS: ${{ contains(matrix.zig_target, '-windows-') && 'OFF' || 'ON' }}
|
||||||
# for zig-cc wrapper scripts (see below):
|
# for zig-cc wrapper scripts (see below):
|
||||||
@@ -496,24 +477,27 @@ jobs:
|
|||||||
ZIG_PIC: ${{ matrix.zig_pic }}
|
ZIG_PIC: ${{ matrix.zig_pic }}
|
||||||
ZIG_TARGET: ${{ matrix.zig_target }}
|
ZIG_TARGET: ${{ matrix.zig_target }}
|
||||||
steps:
|
steps:
|
||||||
- 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 file git make tar xz
|
apk update && apk upgrade && apk add bash cmake curl file git make parallel tar xz
|
||||||
|
mkdir -p ~/.parallel && : > ~/.parallel/$(echo 6305-4721 | tr 0-7 leticlwi)
|
||||||
# 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
|
||||||
# this seems to be needed when running in a container (beause of UID mismatch??)
|
git config --global --add safe.directory '*' # needed when running in a container
|
||||||
git config --global --add safe.directory '*'
|
- uses: actions/checkout@v4
|
||||||
- name: 'Check out code'
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with: { submodules: true }
|
with: { submodules: true }
|
||||||
- name: ${{ format('Install Zig {0}', env.ZIG_DIST_VERSION) }}
|
- name: ${{ format('Install Zig {0}', env.ZIG_DIST_VERSION) }}
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
# GitHub Actions magic: set "UPX_GITREV_SHORT" environment value for use in steps below
|
|
||||||
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 }}" == x86_64-linux-gnu.2.3.4 ]]; then
|
||||||
|
echo "NEED_GCOMPAT=1" >> $GITHUB_ENV
|
||||||
|
# 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
|
||||||
|
fi
|
||||||
# update ZIG_TARGET (i386 => x86)
|
# update ZIG_TARGET (i386 => x86)
|
||||||
ZIG_TARGET=${ZIG_TARGET/i386-/x86-}
|
ZIG_TARGET=${ZIG_TARGET/i386-/x86-}
|
||||||
echo "ZIG_TARGET=$ZIG_TARGET" >> $GITHUB_ENV
|
echo "ZIG_TARGET=$ZIG_TARGET" >> $GITHUB_ENV
|
||||||
@@ -521,7 +505,7 @@ 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}
|
||||||
wget -q https://ziglang.org/builds/${ZIG_DIST_NAME}.tar.xz
|
curl -sS -L -O https://ziglang.org/builds/${ZIG_DIST_NAME}.tar.xz
|
||||||
ls -l ${ZIG_DIST_NAME}.tar.xz
|
ls -l ${ZIG_DIST_NAME}.tar.xz
|
||||||
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
|
||||||
@@ -552,42 +536,55 @@ jobs:
|
|||||||
mkdir -p "tmp/artifact/$N"
|
mkdir -p "tmp/artifact/$N"
|
||||||
(cd build && shopt -s nullglob && cp -ai --parents */upx{,.exe} */*/*/upx{,.exe} "../tmp/artifact/$N")
|
(cd build && shopt -s nullglob && cp -ai --parents */upx{,.exe} */*/*/upx{,.exe} "../tmp/artifact/$N")
|
||||||
(cd tmp/artifact && tar --sort=name -czf "$N.tar.gz" "$N" && rm -rf "./$N")
|
(cd tmp/artifact && tar --sort=name -czf "$N.tar.gz" "$N" && rm -rf "./$N")
|
||||||
# GitHub Actions magic: set "artifact_name" environment value for use in next step
|
|
||||||
echo "artifact_name=$N" >> $GITHUB_ENV
|
echo "artifact_name=$N" >> $GITHUB_ENV
|
||||||
- name: ${{ format('Upload artifact {0}', env.artifact_name) }}
|
- name: ${{ format('Upload artifact {0}', env.artifact_name) }}
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with: { name: '${{ env.artifact_name }}', path: tmp/artifact }
|
||||||
name: ${{ env.artifact_name }}
|
- name: Run install tests
|
||||||
path: tmp/artifact
|
|
||||||
- name: 'Run install tests'
|
|
||||||
if: ${{ contains(matrix.zig_target, '-linux') }}
|
if: ${{ contains(matrix.zig_target, '-linux') }}
|
||||||
run: |
|
run: |
|
||||||
(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' }}
|
if: ${{ matrix.zig_target == 'i386-linux-musl' || matrix.zig_target == 'x86_64-linux-musl' || matrix.zig_target == 'x86_64-linux-gnu.2.3.4' }}
|
||||||
run: |
|
run: |
|
||||||
make -C build/zig/${ZIG_TARGET}${ZIG_PIC}/debug test
|
test -n "$NEED_GCOMPAT" && apk add gcompat
|
||||||
make -C build/zig/${ZIG_TARGET}${ZIG_PIC}/release test
|
jobs="${ZIG_TARGET}${ZIG_PIC}/debug ${ZIG_TARGET}${ZIG_PIC}/release"
|
||||||
- name: 'Mimic ctest tests'
|
echo "===== parallel jobs: $jobs"
|
||||||
if: ${{ matrix.zig_target == 'i386-linux-musl' || matrix.zig_target == 'x86_64-linux-musl' }}
|
parallel -kv --lb 'make build/zig/{}+test' ::: $jobs
|
||||||
|
- 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' }}
|
||||||
run: |
|
run: |
|
||||||
apk add coreutils
|
test -n "$NEED_GCOMPAT" && apk add gcompat
|
||||||
env -C build/zig/${ZIG_TARGET}${ZIG_PIC}/debug bash "$PWD"/misc/testsuite/mimic_ctest.sh
|
jobs="${ZIG_TARGET}${ZIG_PIC}/debug ${ZIG_TARGET}${ZIG_PIC}/release"
|
||||||
env -C build/zig/${ZIG_TARGET}${ZIG_PIC}/release bash "$PWD"/misc/testsuite/mimic_ctest.sh
|
echo "===== parallel jobs: $jobs"
|
||||||
|
parallel -kv --lb 'cd build/zig/{} && bash ../../../../misc/testsuite/mimic_ctest.sh' ::: $jobs
|
||||||
- name: ${{ format('Mimic ctest tests with QEMU {0}', matrix.qemu) }}
|
- name: ${{ format('Mimic ctest tests with QEMU {0}', matrix.qemu) }}
|
||||||
if: ${{ matrix.qemu }}
|
if: ${{ matrix.qemu }}
|
||||||
run: |
|
run: |
|
||||||
qemu="${{ matrix.qemu }}"
|
qemu="${{ matrix.qemu }}"
|
||||||
apk add coreutils "${qemu%% *}"
|
apk add coreutils "${qemu%% *}"
|
||||||
|
test -n "$NEED_GCOMPAT" && apk add gcompat
|
||||||
export upx_exe_runner="$qemu"
|
export upx_exe_runner="$qemu"
|
||||||
env -C build/zig/${ZIG_TARGET}${ZIG_PIC}/debug bash "$PWD"/misc/testsuite/mimic_ctest.sh
|
jobs="${ZIG_TARGET}${ZIG_PIC}/debug ${ZIG_TARGET}${ZIG_PIC}/release"
|
||||||
env -C build/zig/${ZIG_TARGET}${ZIG_PIC}/release bash "$PWD"/misc/testsuite/mimic_ctest.sh
|
echo "===== parallel jobs: $jobs"
|
||||||
- name: 'Mimic ctest tests with Valgrind'
|
parallel -kv --lb 'cd build/zig/{} && bash ../../../../misc/testsuite/mimic_ctest.sh' ::: $jobs
|
||||||
if: ${{ matrix.zig_target == 'x86_64-linux-musl' }}
|
- name: Mimic ctest tests with Valgrind
|
||||||
|
if: ${{ matrix.zig_target == 'x86_64-linux-musl' || matrix.zig_target == 'x86_64-linux-gnu.2.3.4' }}
|
||||||
run: |
|
run: |
|
||||||
|
export UPX_CONFIG_DISABLE_EXHAUSTIVE_TESTS=ON # valgrind is SLOW
|
||||||
apk add coreutils valgrind
|
apk add coreutils valgrind
|
||||||
|
test -n "$NEED_GCOMPAT" && apk add gcompat
|
||||||
export upx_exe_runner="valgrind --leak-check=no --error-exitcode=1 --quiet --gen-suppressions=all"
|
export upx_exe_runner="valgrind --leak-check=no --error-exitcode=1 --quiet --gen-suppressions=all"
|
||||||
upx_exe_runner="$upx_exe_runner --suppressions=$PWD/misc/valgrind/musl.supp"
|
upx_exe_runner="$upx_exe_runner --suppressions=$PWD/misc/valgrind/musl.supp"
|
||||||
env -C build/zig/${ZIG_TARGET}${ZIG_PIC}/debug bash "$PWD"/misc/testsuite/mimic_ctest.sh
|
jobs="${ZIG_TARGET}${ZIG_PIC}/debug ${ZIG_TARGET}${ZIG_PIC}/release"
|
||||||
env -C build/zig/${ZIG_TARGET}${ZIG_PIC}/release bash "$PWD"/misc/testsuite/mimic_ctest.sh
|
echo "===== parallel jobs: $jobs"
|
||||||
|
parallel -kv --lb 'cd build/zig/{} && bash ../../../../misc/testsuite/mimic_ctest.sh' ::: $jobs
|
||||||
|
- name: Run file system test suite
|
||||||
|
if: ${{ matrix.zig_target == 'i386-linux-musl' || matrix.zig_target == 'x86_64-linux-musl' || matrix.zig_target == 'x86_64-linux-gnu.2.3.4' }}
|
||||||
|
run: |
|
||||||
|
apk add coreutils sudo
|
||||||
|
test -n "$NEED_GCOMPAT" && apk add gcompat
|
||||||
|
jobs="${ZIG_TARGET}${ZIG_PIC}/debug ${ZIG_TARGET}${ZIG_PIC}/release"
|
||||||
|
echo "===== parallel jobs: $jobs"
|
||||||
|
parallel -kv --lb 'cd build/zig/{} && chmod a+w . && sudo -u nobody bash ../../../../misc/testsuite/test_symlinks.sh' ::: $jobs
|
||||||
|
|||||||
@@ -0,0 +1,39 @@
|
|||||||
|
# Copyright (C) Markus Franz Xaver Johannes Oberhumer
|
||||||
|
|
||||||
|
# see https://docs.github.com/en/actions/managing-issues-and-pull-requests/closing-inactive-issues
|
||||||
|
# see https://github.com/actions/stale
|
||||||
|
|
||||||
|
# Automatically closing issues is far from perfect, but then we only
|
||||||
|
# have limited resources and this approach favors issues that people
|
||||||
|
# actually care about.
|
||||||
|
#
|
||||||
|
# also see:
|
||||||
|
# "Should I Stale or Should I Close? An Analysis of a Bot that Closes
|
||||||
|
# Abandoned Issues and Pull Request".
|
||||||
|
# https://igorwiese.com/images/papers/Paper_BotSE_19.pdf
|
||||||
|
|
||||||
|
name: GitHub - Close stale issues
|
||||||
|
on:
|
||||||
|
schedule: [cron: "50 0 * * 1"] # run weekly Monday 00:50 UTC
|
||||||
|
workflow_dispatch:
|
||||||
|
jobs:
|
||||||
|
job-close-stale-issues:
|
||||||
|
if: github.repository_owner == 'upx' && github.repository == 'upx/upx'
|
||||||
|
name: Close stale issues
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
issues: write
|
||||||
|
pull-requests: write
|
||||||
|
steps:
|
||||||
|
- uses: actions/stale@v9
|
||||||
|
with:
|
||||||
|
operations-per-run: 300
|
||||||
|
exempt-all-milestones: true
|
||||||
|
exempt-issue-labels: 'blocker,bug,enhancement,help wanted,regression'
|
||||||
|
days-before-stale: 90
|
||||||
|
days-before-close: 30
|
||||||
|
stale-issue-message: 'This issue is stale because it has been open for 90 days with no activity. Please remove the stale label or add a comment or this issue will be closed in 30 days.'
|
||||||
|
stale-pr-message: 'This PR is stale because it has been open for 90 days with no activity. Please remove the stale label or add a comment or this PR will be closed in 30 days.'
|
||||||
|
close-issue-message: 'This issue was closed because it has been stalled for 30 days with no activity. Please feel free to reopen.'
|
||||||
|
close-pr-message: 'This PR was closed because it has been stalled for 30 days with no activity. Please feel free to reopen.'
|
||||||
|
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
+43
-57
@@ -25,7 +25,7 @@ else()
|
|||||||
cmake_minimum_required(VERSION "3.8" FATAL_ERROR) # CMake >= 3.8 is needed for CXX_STANDARD 17
|
cmake_minimum_required(VERSION "3.8" FATAL_ERROR) # CMake >= 3.8 is needed for CXX_STANDARD 17
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# support functions
|
# support functions and some utility
|
||||||
include("${CMAKE_CURRENT_SOURCE_DIR}/misc/cmake/functions.cmake")
|
include("${CMAKE_CURRENT_SOURCE_DIR}/misc/cmake/functions.cmake")
|
||||||
|
|
||||||
#***********************************************************************
|
#***********************************************************************
|
||||||
@@ -35,30 +35,31 @@ include("${CMAKE_CURRENT_SOURCE_DIR}/misc/cmake/functions.cmake")
|
|||||||
upx_cmake_include_hook(1_options)
|
upx_cmake_include_hook(1_options)
|
||||||
|
|
||||||
# compilation config options
|
# compilation config options
|
||||||
if(NOT IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/.git" OR NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/misc/cmake/use_strict_defaults.cmake")
|
if(NOT USE_STRICT_DEFAULTS)
|
||||||
# permissive config defaults when building from source code tarball
|
# permissive config defaults when building from source code tarball
|
||||||
option(UPX_CONFIG_DISABLE_GITREV "Do not compile with default Git version info." ON)
|
option(UPX_CONFIG_DISABLE_GITREV "Do not compile with Git version info." ON)
|
||||||
option(UPX_CONFIG_DISABLE_SANITIZE "Do not compile with default sanitize options." ON)
|
option(UPX_CONFIG_DISABLE_SANITIZE "Do not compile with sanitize options." ON)
|
||||||
|
option(UPX_CONFIG_DISABLE_WERROR "Do not compile with -Werror option." ON)
|
||||||
option(UPX_CONFIG_DISABLE_WSTRICT "Do not compile with strict compiler warnings." ON)
|
option(UPX_CONFIG_DISABLE_WSTRICT "Do not compile with strict compiler warnings." ON)
|
||||||
option(UPX_CONFIG_DISABLE_WERROR "Do not compile with default -Werror option." ON)
|
|
||||||
else()
|
else()
|
||||||
# strict config defaults for Git developer builds
|
# strict config defaults for Git developer builds
|
||||||
message(STATUS "===== UPX info: strict config defaults enabled")
|
message(STATUS "===== UPX info: strict config defaults enabled")
|
||||||
option(UPX_CONFIG_DISABLE_GITREV "Do not compile with default Git version info." OFF)
|
option(UPX_CONFIG_DISABLE_GITREV "Do not compile with Git version info." OFF)
|
||||||
option(UPX_CONFIG_DISABLE_SANITIZE "Do not compile with default sanitize options." OFF)
|
option(UPX_CONFIG_DISABLE_SANITIZE "Do not compile with sanitize options." OFF)
|
||||||
|
option(UPX_CONFIG_DISABLE_WERROR "Do not compile with -Werror option." OFF)
|
||||||
option(UPX_CONFIG_DISABLE_WSTRICT "Do not compile with strict compiler warnings." OFF)
|
option(UPX_CONFIG_DISABLE_WSTRICT "Do not compile with strict compiler warnings." OFF)
|
||||||
option(UPX_CONFIG_DISABLE_WERROR "Do not compile with default -Werror option." OFF)
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# test config options (see below)
|
# test config options (see below)
|
||||||
# IMPORTANT NOTE: self-pack test can only work if the host executable format is supported by UPX!
|
# IMPORTANT NOTE: self-pack test can only work if the host executable format is supported by UPX!
|
||||||
option(UPX_CONFIG_DISABLE_SELF_PACK_TEST "Do not test packing UPX with itself" OFF)
|
option(UPX_CONFIG_DISABLE_SELF_PACK_TEST "Do not test packing UPX with itself" OFF)
|
||||||
|
option(UPX_CONFIG_DISABLE_EXHAUSTIVE_TESTS "Do not run exhaustive tests" OFF)
|
||||||
|
|
||||||
#***********************************************************************
|
#***********************************************************************
|
||||||
# init
|
# init
|
||||||
#***********************************************************************
|
#***********************************************************************
|
||||||
|
|
||||||
set(UPX_VERSION_STRING "4.2.3") # this should match src/version.h
|
set(UPX_VERSION_STRING "4.2.4") # this should match src/version.h
|
||||||
|
|
||||||
upx_cmake_include_hook(2_init)
|
upx_cmake_include_hook(2_init)
|
||||||
|
|
||||||
@@ -78,13 +79,15 @@ upx_cache_bool_vars(ON
|
|||||||
CMAKE_C_STANDARD_REQUIRED CMAKE_CXX_STANDARD_REQUIRED
|
CMAKE_C_STANDARD_REQUIRED CMAKE_CXX_STANDARD_REQUIRED
|
||||||
CMAKE_EXPORT_COMPILE_COMMANDS CMAKE_REQUIRED_QUIET
|
CMAKE_EXPORT_COMPILE_COMMANDS CMAKE_REQUIRED_QUIET
|
||||||
)
|
)
|
||||||
# internal UPX settings that default to OFF
|
# internal UPX settings
|
||||||
upx_cache_bool_vars(OFF
|
upx_cache_bool_vars(OFF
|
||||||
UPX_CONFIG_CMAKE_DISABLE_TEST UPX_CONFIG_CMAKE_DISABLE_INSTALL
|
UPX_CONFIG_CMAKE_DISABLE_TEST UPX_CONFIG_CMAKE_DISABLE_INSTALL
|
||||||
UPX_CONFIG_CMAKE_DISABLE_PRINT_INFO UPX_CONFIG_CMAKE_DISABLE_PLATFORM_CHECK
|
UPX_CONFIG_CMAKE_DISABLE_PRINT_INFO UPX_CONFIG_CMAKE_DISABLE_PLATFORM_CHECK
|
||||||
UPX_CONFIG_DISABLE_C_STANDARD UPX_CONFIG_DISABLE_CXX_STANDARD
|
UPX_CONFIG_DISABLE_C_STANDARD UPX_CONFIG_DISABLE_CXX_STANDARD
|
||||||
UPX_CONFIG_EXPECT_THREADS UPX_CONFIG_REQUIRE_THREADS
|
UPX_CONFIG_DISABLE_RUN_UNPACKED_TEST UPX_CONFIG_DISABLE_RUN_PACKED_TEST
|
||||||
|
UPX_CONFIG_REQUIRE_THREADS
|
||||||
)
|
)
|
||||||
|
upx_cache_bool_vars(ON UPX_CONFIG_EXPECT_THREADS)
|
||||||
upx_print_env_var(CC CXX)
|
upx_print_env_var(CC CXX)
|
||||||
|
|
||||||
# determine Git revision
|
# determine Git revision
|
||||||
@@ -134,9 +137,11 @@ upx_set_default_build_type(Release) # default is CMAKE_BUILD_TYPE=Release
|
|||||||
project(upx VERSION "${UPX_VERSION_STRING}" LANGUAGES C CXX)
|
project(upx VERSION "${UPX_VERSION_STRING}" LANGUAGES C CXX)
|
||||||
upx_apply_build_type()
|
upx_apply_build_type()
|
||||||
|
|
||||||
# set MSVC_FRONTEND and MINGW
|
# set MSVC_FRONTEND, GNU_FRONTEND and MINGW
|
||||||
if(NOT DEFINED MSVC_FRONTEND AND (MSVC OR CMAKE_C_COMPILER_FRONTEND_VARIANT MATCHES "^MSVC"))
|
if(NOT DEFINED MSVC_FRONTEND AND (MSVC OR CMAKE_C_COMPILER_FRONTEND_VARIANT MATCHES "^MSVC"))
|
||||||
set(MSVC_FRONTEND 1)
|
set(MSVC_FRONTEND 1)
|
||||||
|
elseif (NOT DEFINED GNU_FRONTEND AND (CMAKE_C_COMPILER_FRONTEND_VARIANT MATCHES "^GNU" OR CMAKE_C_COMPILER_ID MATCHES "(Clang|GNU)"))
|
||||||
|
set(GNU_FRONTEND 1)
|
||||||
endif()
|
endif()
|
||||||
if(NOT DEFINED MINGW AND CMAKE_C_PLATFORM_ID MATCHES "^MinGW")
|
if(NOT DEFINED MINGW AND CMAKE_C_PLATFORM_ID MATCHES "^MinGW")
|
||||||
set(MINGW 1)
|
set(MINGW 1)
|
||||||
@@ -232,8 +237,9 @@ if(NOT CMAKE_C_COMPILER_ID MATCHES "^MSVC")
|
|||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# examine MinGW/Cygwin compiler configuration
|
# examine compiler configuration
|
||||||
if(IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/.git")
|
if(NOT UPX_CONFIG_CMAKE_DISABLE_PRINT_INFO)
|
||||||
|
upx_print_common_symbols()
|
||||||
upx_print_mingw_symbols()
|
upx_print_mingw_symbols()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@@ -253,7 +259,7 @@ if(NOT UPX_CONFIG_DISABLE_THREADS)
|
|||||||
endif()
|
endif()
|
||||||
# make sure that threads are indeed fully supported in C++
|
# make sure that threads are indeed fully supported in C++
|
||||||
if(Threads_FOUND)
|
if(Threads_FOUND)
|
||||||
foreach(f std_lock_guard.cpp)
|
foreach(f std_lock_guard.cpp types_abi.cpp)
|
||||||
set(CMAKE_TRY_COMPILE_TARGET_TYPE "EXECUTABLE")
|
set(CMAKE_TRY_COMPILE_TARGET_TYPE "EXECUTABLE")
|
||||||
if(NOT UPX_CONFIG_DISABLE_CXX_STANDARD)
|
if(NOT UPX_CONFIG_DISABLE_CXX_STANDARD)
|
||||||
try_compile(result "${CMAKE_CURRENT_BINARY_DIR}"
|
try_compile(result "${CMAKE_CURRENT_BINARY_DIR}"
|
||||||
@@ -266,7 +272,7 @@ if(Threads_FOUND)
|
|||||||
endif()
|
endif()
|
||||||
if(NOT result)
|
if(NOT result)
|
||||||
# failed; under MinGW be sure to use the posix-threads and NOT the win32-threads version
|
# failed; under MinGW be sure to use the posix-threads and NOT the win32-threads version
|
||||||
#message(STATUS "Threads FAILED: ${output}") # debug output from try_compile
|
#message(STATUS "Threads FAILED ${f}: ${output}") # debug output from try_compile
|
||||||
set(Threads_FOUND OFF)
|
set(Threads_FOUND OFF)
|
||||||
break()
|
break()
|
||||||
endif()
|
endif()
|
||||||
@@ -330,7 +336,7 @@ upx_sanitize_target(${t})
|
|||||||
target_compile_definitions(${t} PRIVATE BZ_NO_STDIO=1)
|
target_compile_definitions(${t} PRIVATE BZ_NO_STDIO=1)
|
||||||
if(MSVC_FRONTEND)
|
if(MSVC_FRONTEND)
|
||||||
target_compile_options(${t} PRIVATE ${warn_WN} -wd4127 -wd4244 -wd4267 ${warn_WX})
|
target_compile_options(${t} PRIVATE ${warn_WN} -wd4127 -wd4244 -wd4267 ${warn_WX})
|
||||||
else()
|
elseif(GNU_FRONTEND)
|
||||||
target_compile_options(${t} PRIVATE ${warn_Wall} ${warn_Werror})
|
target_compile_options(${t} PRIVATE ${warn_Wall} ${warn_Werror})
|
||||||
endif()
|
endif()
|
||||||
upx_add_target_extra_compile_options(${t} UPX_CONFIG_EXTRA_COMPILE_OPTIONS_BZIP2)
|
upx_add_target_extra_compile_options(${t} UPX_CONFIG_EXTRA_COMPILE_OPTIONS_BZIP2)
|
||||||
@@ -342,7 +348,7 @@ upx_compile_target_debug_with_O2(${t})
|
|||||||
upx_sanitize_target(${t})
|
upx_sanitize_target(${t})
|
||||||
if(MSVC_FRONTEND)
|
if(MSVC_FRONTEND)
|
||||||
target_compile_options(${t} PRIVATE ${warn_WN} ${warn_WX})
|
target_compile_options(${t} PRIVATE ${warn_WN} ${warn_WX})
|
||||||
else()
|
elseif(GNU_FRONTEND)
|
||||||
target_compile_options(${t} PRIVATE ${warn_Wall} ${warn_Werror})
|
target_compile_options(${t} PRIVATE ${warn_Wall} ${warn_Werror})
|
||||||
endif()
|
endif()
|
||||||
upx_add_target_extra_compile_options(${t} UPX_CONFIG_EXTRA_COMPILE_OPTIONS_UCL)
|
upx_add_target_extra_compile_options(${t} UPX_CONFIG_EXTRA_COMPILE_OPTIONS_UCL)
|
||||||
@@ -356,7 +362,7 @@ if(HAVE_UNISTD_H)
|
|||||||
endif()
|
endif()
|
||||||
if(MSVC_FRONTEND)
|
if(MSVC_FRONTEND)
|
||||||
target_compile_options(${t} PRIVATE -W3 ${warn_WX})
|
target_compile_options(${t} PRIVATE -W3 ${warn_WX})
|
||||||
else()
|
elseif(GNU_FRONTEND)
|
||||||
target_compile_options(${t} PRIVATE ${warn_Wall} -Wno-cast-align -Wno-cast-qual ${warn_Werror})
|
target_compile_options(${t} PRIVATE ${warn_Wall} -Wno-cast-align -Wno-cast-qual ${warn_Werror})
|
||||||
endif()
|
endif()
|
||||||
upx_add_target_extra_compile_options(${t} UPX_CONFIG_EXTRA_COMPILE_OPTIONS_ZLIB)
|
upx_add_target_extra_compile_options(${t} UPX_CONFIG_EXTRA_COMPILE_OPTIONS_ZLIB)
|
||||||
@@ -368,7 +374,7 @@ upx_sanitize_target(${t})
|
|||||||
target_compile_definitions(${t} PRIVATE DYNAMIC_BMI2=0 ZSTD_DISABLE_ASM=1)
|
target_compile_definitions(${t} PRIVATE DYNAMIC_BMI2=0 ZSTD_DISABLE_ASM=1)
|
||||||
if(MSVC_FRONTEND)
|
if(MSVC_FRONTEND)
|
||||||
target_compile_options(${t} PRIVATE ${warn_WN} ${warn_WX})
|
target_compile_options(${t} PRIVATE ${warn_WN} ${warn_WX})
|
||||||
else()
|
elseif(GNU_FRONTEND)
|
||||||
target_compile_options(${t} PRIVATE ${warn_Wall} ${warn_Werror})
|
target_compile_options(${t} PRIVATE ${warn_Wall} ${warn_Werror})
|
||||||
endif()
|
endif()
|
||||||
upx_add_target_extra_compile_options(${t} UPX_CONFIG_EXTRA_COMPILE_OPTIONS_ZSTD)
|
upx_add_target_extra_compile_options(${t} UPX_CONFIG_EXTRA_COMPILE_OPTIONS_ZSTD)
|
||||||
@@ -411,7 +417,7 @@ upx_compile_source_debug_with_O2(src/filter/filter_impl.cpp)
|
|||||||
upx_sanitize_target(${t})
|
upx_sanitize_target(${t})
|
||||||
if(MSVC_FRONTEND)
|
if(MSVC_FRONTEND)
|
||||||
target_compile_options(${t} PRIVATE -EHsc ${warn_WN} ${warn_WX})
|
target_compile_options(${t} PRIVATE -EHsc ${warn_WN} ${warn_WX})
|
||||||
else()
|
elseif(GNU_FRONTEND)
|
||||||
target_compile_options(${t} PRIVATE ${warn_Wall} ${warn_Werror})
|
target_compile_options(${t} PRIVATE ${warn_Wall} ${warn_Werror})
|
||||||
endif()
|
endif()
|
||||||
upx_add_target_extra_compile_options(${t} UPX_CONFIG_EXTRA_COMPILE_OPTIONS_UPX)
|
upx_add_target_extra_compile_options(${t} UPX_CONFIG_EXTRA_COMPILE_OPTIONS_UPX)
|
||||||
@@ -429,30 +435,20 @@ if(NOT UPX_CONFIG_CMAKE_DISABLE_TEST)
|
|||||||
|
|
||||||
include(CTest)
|
include(CTest)
|
||||||
if(NOT CMAKE_CROSSCOMPILING OR CMAKE_CROSSCOMPILING_EMULATOR)
|
if(NOT CMAKE_CROSSCOMPILING OR CMAKE_CROSSCOMPILING_EMULATOR)
|
||||||
add_test(NAME upx-version COMMAND upx --version)
|
upx_add_test(upx-version upx --version)
|
||||||
add_test(NAME upx-help COMMAND upx --help)
|
upx_add_test(upx-version-short upx --version-short)
|
||||||
add_test(NAME upx-sysinfo COMMAND upx --sysinfo -v)
|
upx_add_test(upx-license upx --license)
|
||||||
|
upx_add_test(upx-help-1 upx --help)
|
||||||
|
upx_add_test(upx-help-2 upx --help-short)
|
||||||
|
upx_add_test(upx-help-3 upx --help-verbose)
|
||||||
|
upx_add_test(upx-sysinfo-1 upx --sysinfo)
|
||||||
|
upx_add_test(upx-sysinfo-2 upx --sysinfo -v)
|
||||||
|
upx_add_test(upx-sysinfo-3 upx --sysinfo -vv)
|
||||||
if(NOT UPX_CONFIG_DISABLE_SELF_PACK_TEST)
|
if(NOT UPX_CONFIG_DISABLE_SELF_PACK_TEST)
|
||||||
# IMPORTANT NOTE: these tests can only work if the host executable format is supported by UPX!
|
# IMPORTANT NOTE: these tests can only work if the host executable format
|
||||||
set(emu "")
|
# is supported by UPX!
|
||||||
if(DEFINED CMAKE_CROSSCOMPILING_EMULATOR)
|
include("${CMAKE_CURRENT_SOURCE_DIR}/misc/cmake/self_pack_test.cmake")
|
||||||
set(emu "${CMAKE_CROSSCOMPILING_EMULATOR}")
|
|
||||||
endif()
|
endif()
|
||||||
set(exe "${CMAKE_EXECUTABLE_SUFFIX}")
|
|
||||||
set(upx_self_exe "$<TARGET_FILE:upx>")
|
|
||||||
set(fo "--force-overwrite")
|
|
||||||
upx_add_serial_test(upx-self-pack upx -3 "${upx_self_exe}" ${fo} -o upx-packed${exe})
|
|
||||||
upx_add_serial_test(upx-self-pack-n2b upx -3 --nrv2b "${upx_self_exe}" ${fo} -o upx-packed-n2b${exe})
|
|
||||||
upx_add_serial_test(upx-self-pack-n2d upx -3 --nrv2d "${upx_self_exe}" ${fo} -o upx-packed-n2d${exe})
|
|
||||||
upx_add_serial_test(upx-self-pack-n2e upx -3 --nrv2e "${upx_self_exe}" ${fo} -o upx-packed-n2e${exe})
|
|
||||||
upx_add_serial_test(upx-self-pack-lzma upx -1 --lzma "${upx_self_exe}" ${fo} -o upx-packed-lzma${exe})
|
|
||||||
upx_add_serial_test(upx-list upx -l upx-packed${exe} upx-packed-n2b${exe} upx-packed-n2d${exe} upx-packed-n2e${exe} upx-packed-lzma${exe})
|
|
||||||
upx_add_serial_test(upx-fileinfo upx --fileinfo upx-packed${exe} upx-packed-n2b${exe} upx-packed-n2d${exe} upx-packed-n2e${exe} upx-packed-lzma${exe})
|
|
||||||
upx_add_serial_test(upx-test upx -t upx-packed${exe} upx-packed-n2b${exe} upx-packed-n2d${exe} upx-packed-n2e${exe} upx-packed-lzma${exe})
|
|
||||||
upx_add_serial_test(upx-unpack upx -d upx-packed${exe} ${fo} -o upx-unpacked${exe})
|
|
||||||
upx_add_serial_test(upx-run-unpacked ${emu} ./upx-unpacked${exe} --version-short)
|
|
||||||
upx_add_serial_test(upx-run-packed ${emu} ./upx-packed${exe} --version-short)
|
|
||||||
endif() # UPX_CONFIG_DISABLE_SELF_PACK_TEST
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
endif() # UPX_CONFIG_CMAKE_DISABLE_TEST
|
endif() # UPX_CONFIG_CMAKE_DISABLE_TEST
|
||||||
@@ -497,25 +493,15 @@ upx_cmake_include_hook(8_summary)
|
|||||||
|
|
||||||
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)
|
||||||
if(NOT UPX_CONFIG_CMAKE_DISABLE_PRINT_INFO)
|
if(NOT UPX_CONFIG_CMAKE_DISABLE_PRINT_INFO)
|
||||||
if(NOT ",${CMAKE_BINARY_DIR}," STREQUAL ",${CMAKE_CURRENT_BINARY_DIR}," OR NOT ",${CMAKE_SOURCE_DIR}," STREQUAL ",${CMAKE_CURRENT_SOURCE_DIR},")
|
include("${CMAKE_CURRENT_SOURCE_DIR}/misc/cmake/print_info.cmake")
|
||||||
upx_print_var(CMAKE_BINARY_DIR CMAKE_SOURCE_DIR CMAKE_CURRENT_BINARY_DIR CMAKE_CURRENT_SOURCE_DIR)
|
|
||||||
endif()
|
endif()
|
||||||
upx_print_var(CMAKE_HOST_SYSTEM_NAME CMAKE_HOST_SYSTEM_VERSION CMAKE_HOST_SYSTEM_PROCESSOR CMAKE_APPLE_SILICON_PROCESSOR)
|
upx_print_var(CMAKE_INSTALL_PREFIX CMAKE_CONFIGURATION_TYPES CMAKE_TRY_COMPILE_CONFIGURATION CMAKE_BUILD_TYPE)
|
||||||
upx_print_var(CMAKE_SYSTEM_NAME CMAKE_SYSTEM_VERSION CMAKE_SYSTEM_PROCESSOR CMAKE_CROSSCOMPILING CMAKE_CROSSCOMPILING_EMULATOR)
|
|
||||||
upx_print_var(CMAKE_OSX_DEPLOYMENT_TARGET CMAKE_OSX_SYSROOT)
|
|
||||||
upx_print_var(CMAKE_C_COMPILER CMAKE_CXX_COMPILER CMAKE_AR CMAKE_RANLIB)
|
|
||||||
upx_print_var(CMAKE_C_COMPILER_ID CMAKE_C_COMPILER_VERSION CMAKE_C_COMPILER_FRONTEND_VARIANT CMAKE_C_COMPILER_ARCHITECTURE_ID CMAKE_C_PLATFORM_ID CMAKE_C_COMPILER_ABI)
|
|
||||||
upx_print_var(CMAKE_CXX_COMPILER_ID CMAKE_CXX_COMPILER_VERSION CMAKE_CXX_COMPILER_FRONTEND_VARIANT CMAKE_CXX_COMPILER_ARCHITECTURE_ID CMAKE_CXX_PLATFORM_ID CMAKE_CXX_COMPILER_ABI)
|
|
||||||
upx_print_var(CMAKE_INTERPROCEDURAL_OPTIMIZATION CMAKE_POSITION_INDEPENDENT_CODE CMAKE_TRY_COMPILE_CONFIGURATION)
|
|
||||||
upx_print_var(APPLE CYGWIN GNUC MINGW MSVC MSVC_FRONTEND MSVC_IDE UNIX WIN32 WIN64)
|
|
||||||
endif() # UPX_CONFIG_CMAKE_DISABLE_PRINT_INFO
|
|
||||||
upx_print_var(CMAKE_INSTALL_PREFIX CMAKE_CONFIGURATION_TYPES CMAKE_BUILD_TYPE)
|
|
||||||
if(Threads_FOUND)
|
if(Threads_FOUND)
|
||||||
message(STATUS "WITH_THREADS = 1")
|
message(STATUS "WITH_THREADS = 1")
|
||||||
elseif(UPX_CONFIG_REQUIRE_THREADS)
|
elseif(UPX_CONFIG_REQUIRE_THREADS)
|
||||||
message(FATAL_ERROR "ERROR: WITH_THREADS required")
|
message(FATAL_ERROR "ERROR: WITH_THREADS required")
|
||||||
elseif(UPX_CONFIG_EXPECT_THREADS AND NOT UPX_CONFIG_DISABLE_THREADS)
|
elseif(UPX_CONFIG_EXPECT_THREADS AND NOT UPX_CONFIG_DISABLE_THREADS)
|
||||||
message(FATAL_ERROR "ERROR: WITH_THREADS expected")
|
message(FATAL_ERROR "ERROR: WITH_THREADS expected; set UPX_CONFIG_EXPECT_THREADS=OFF")
|
||||||
endif()
|
endif()
|
||||||
if(CMAKE_BUILD_TYPE AND NOT CMAKE_BUILD_TYPE MATCHES "^(Debug|None|Release)$")
|
if(CMAKE_BUILD_TYPE AND NOT CMAKE_BUILD_TYPE MATCHES "^(Debug|None|Release)$")
|
||||||
message(WARNING "WARNING: unsupported CMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}; please use \"Debug\" or \"Release\"")
|
message(WARNING "WARNING: unsupported CMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}; please use \"Debug\" or \"Release\"")
|
||||||
@@ -526,7 +512,7 @@ if(NOT UPX_CONFIG_CMAKE_DISABLE_PLATFORM_CHECK)
|
|||||||
upx_platform_check_mismatch(CMAKE_C_PLATFORM_ID CMAKE_CXX_PLATFORM_ID)
|
upx_platform_check_mismatch(CMAKE_C_PLATFORM_ID CMAKE_CXX_PLATFORM_ID)
|
||||||
upx_platform_check_mismatch(CMAKE_C_COMPILER_ABI CMAKE_CXX_COMPILER_ABI)
|
upx_platform_check_mismatch(CMAKE_C_COMPILER_ABI CMAKE_CXX_COMPILER_ABI)
|
||||||
upx_platform_check_mismatch(CMAKE_C_COMPILER_FRONTEND_VARIANT CMAKE_CXX_COMPILER_FRONTEND_VARIANT)
|
upx_platform_check_mismatch(CMAKE_C_COMPILER_FRONTEND_VARIANT CMAKE_CXX_COMPILER_FRONTEND_VARIANT)
|
||||||
endif() # UPX_CONFIG_CMAKE_DISABLE_PLATFORM_CHECK
|
endif()
|
||||||
|
|
||||||
upx_cmake_include_hook(9_finish)
|
upx_cmake_include_hook(9_finish)
|
||||||
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/.upx_cmake_config_done.txt" "")
|
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/.upx_cmake_config_done.txt" "")
|
||||||
|
|||||||
@@ -51,22 +51,38 @@ release: build/release PHONY
|
|||||||
all build/all: build/debug build/release PHONY
|
all build/all: build/debug build/release PHONY
|
||||||
build/%/all: $$(dir $$@)debug $$(dir $$@)release PHONY ;
|
build/%/all: $$(dir $$@)debug $$(dir $$@)release PHONY ;
|
||||||
|
|
||||||
|
#***********************************************************************
|
||||||
|
# test
|
||||||
|
#***********************************************************************
|
||||||
|
|
||||||
|
CTEST = ctest
|
||||||
|
CTEST_JOBS ?= 8
|
||||||
|
CTEST_FLAGS = --output-on-failure --parallel $(CTEST_JOBS)
|
||||||
|
|
||||||
|
build/debug+test: $$(dir $$@)debug PHONY; cd "$(dir $@)debug" && $(CTEST) $(CTEST_FLAGS) -C Debug
|
||||||
|
build/%/debug+test: $$(dir $$@)debug PHONY; cd "$(dir $@)debug" && $(CTEST) $(CTEST_FLAGS) -C Debug
|
||||||
|
build/release+test: $$(dir $$@)release PHONY; cd "$(dir $@)release" && $(CTEST) $(CTEST_FLAGS) -C Release
|
||||||
|
build/%/release+test: $$(dir $$@)release PHONY; cd "$(dir $@)release" && $(CTEST) $(CTEST_FLAGS) -C Release
|
||||||
|
build/%/all+test: $$(dir $$@)debug+test $$(dir $$@)release+test PHONY ;
|
||||||
|
|
||||||
|
# shortcuts
|
||||||
|
debug+test: build/debug+test PHONY
|
||||||
|
release+test: build/release+test PHONY
|
||||||
|
all+test build/all+test: build/debug+test build/release+test PHONY
|
||||||
|
|
||||||
|
test: $$(patsubst %+test,%,$$(.DEFAULT_GOAL))+test PHONY
|
||||||
|
|
||||||
#
|
#
|
||||||
# END of Makefile
|
# END of Makefile
|
||||||
#
|
#
|
||||||
|
|
||||||
# extra pre-defined build configurations and some utility; optional
|
# extra pre-defined build configurations and some utility; optional
|
||||||
ifneq ($(MAKEFILE_LIST),)
|
|
||||||
include $(dir $(lastword $(MAKEFILE_LIST)))/misc/make/Makefile-extra.mk
|
|
||||||
else
|
|
||||||
include ./misc/make/Makefile-extra.mk
|
include ./misc/make/Makefile-extra.mk
|
||||||
endif
|
|
||||||
|
|
||||||
# developer convenience
|
# developer convenience
|
||||||
test:: build/all+test PHONY
|
|
||||||
ifneq ($(wildcard /usr/bin/env),) # need Unix utils like bash, perl, sed, xargs, etc.
|
ifneq ($(wildcard /usr/bin/env),) # need Unix utils like bash, perl, sed, xargs, etc.
|
||||||
ifneq ($(wildcard ./misc/scripts/.),)
|
ifneq ($(wildcard ./misc/scripts/.),)
|
||||||
check-whitespace clang-format run-testsuite run-testsuite-debug run-testsuite-release: src/Makefile PHONY
|
check-whitespace clang-format run-testsuite run-testsuite-all run-testsuite-debug run-testsuite-release: src/Makefile PHONY
|
||||||
$(MAKE) -C src $@
|
$(MAKE) -C src $@
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|||||||
@@ -2,6 +2,9 @@
|
|||||||
User visible changes for UPX
|
User visible changes for UPX
|
||||||
==================================================================
|
==================================================================
|
||||||
|
|
||||||
|
Changes in 4.2.4 (09 May 2024):
|
||||||
|
* bug fixes - see https://github.com/upx/upx/milestone/17
|
||||||
|
|
||||||
Changes in 4.2.3 (27 Mar 2024):
|
Changes in 4.2.3 (27 Mar 2024):
|
||||||
* bug fixes - see https://github.com/upx/upx/milestone/16
|
* bug fixes - see https://github.com/upx/upx/milestone/16
|
||||||
|
|
||||||
|
|||||||
+4
-1
@@ -3,7 +3,7 @@
|
|||||||
# Copyright (C) Markus Franz Xaver Johannes Oberhumer
|
# Copyright (C) Markus Franz Xaver Johannes Oberhumer
|
||||||
#
|
#
|
||||||
|
|
||||||
BUILT_SOURCES = upx.1 upx-doc.html upx-doc.txt
|
BUILT_SOURCES := upx.1 upx-doc.html upx-doc.txt
|
||||||
|
|
||||||
top_srcdir ?= ..
|
top_srcdir ?= ..
|
||||||
|
|
||||||
@@ -25,6 +25,7 @@ DETAB2 := sed -e 's/$(tab)/ /g'
|
|||||||
#***********************************************************************
|
#***********************************************************************
|
||||||
|
|
||||||
.DEFAULT_GOAL = all
|
.DEFAULT_GOAL = all
|
||||||
|
|
||||||
.PHONY: PHONY
|
.PHONY: PHONY
|
||||||
.SECONDEXPANSION:
|
.SECONDEXPANSION:
|
||||||
.SUFFIXES:
|
.SUFFIXES:
|
||||||
@@ -43,6 +44,8 @@ mostlyclean clean distclean maintainer-clean: PHONY
|
|||||||
%.1 : %.pod
|
%.1 : %.pod
|
||||||
pod2man --center=" " --release="$(PACKAGE) $(VERSION)" --date="$(VERSION_DATE)" $< | $(RTRIM) > $@
|
pod2man --center=" " --release="$(PACKAGE) $(VERSION)" --date="$(VERSION_DATE)" $< | $(RTRIM) > $@
|
||||||
test -s $@
|
test -s $@
|
||||||
|
# # strip version number from "Pod::Man" comment
|
||||||
|
sed -i -e 's/^\(\.\\" Automatically generated by Pod::Man\).*/\1/' $@
|
||||||
|
|
||||||
%-doc.html : %.pod
|
%-doc.html : %.pod
|
||||||
pod2html --noindex $< | $(RTRIM) | $(DETAB2) > $@
|
pod2html --noindex $< | $(RTRIM) | $(DETAB2) > $@
|
||||||
|
|||||||
@@ -37,6 +37,8 @@ Charles W. Sandmann <sandmann@clio.rice.edu>
|
|||||||
for the idea with the stubless decompressor in djgpp2/coff
|
for the idea with the stubless decompressor in djgpp2/coff
|
||||||
Ice
|
Ice
|
||||||
for debugging the PE headersize problem down
|
for debugging the PE headersize problem down
|
||||||
|
Jens Medoch <jssg@users.sourceforge.net>
|
||||||
|
for the ps1/exe format
|
||||||
Joergen Ibsen <jibz@hotmail.com> and d'b
|
Joergen Ibsen <jibz@hotmail.com> and d'b
|
||||||
for the relocation & address optimization ideas
|
for the relocation & address optimization ideas
|
||||||
John S. Fine <johnfine@erols.com>
|
John S. Fine <johnfine@erols.com>
|
||||||
|
|||||||
Generated
+1
-5
@@ -779,9 +779,7 @@ http://www.oberhumer.com
|
|||||||
|
|
||||||
Laszlo Molnar <ezerotven+github@gmail.com>
|
Laszlo Molnar <ezerotven+github@gmail.com>
|
||||||
|
|
||||||
John F. Reiser <jreiser@BitWagon.com>
|
John F. Reiser <jreiser@BitWagon.com></code></pre>
|
||||||
|
|
||||||
Jens Medoch <jssg@users.sourceforge.net></code></pre>
|
|
||||||
|
|
||||||
<h1 id="COPYRIGHT">COPYRIGHT</h1>
|
<h1 id="COPYRIGHT">COPYRIGHT</h1>
|
||||||
|
|
||||||
@@ -791,8 +789,6 @@ Jens Medoch <jssg@users.sourceforge.net></code></pre>
|
|||||||
|
|
||||||
<p>Copyright (C) 2000-2024 John F. Reiser</p>
|
<p>Copyright (C) 2000-2024 John F. Reiser</p>
|
||||||
|
|
||||||
<p>Copyright (C) 2002-2024 Jens Medoch</p>
|
|
||||||
|
|
||||||
<p><b>UPX</b> is distributed with full source code under the terms of the GNU General Public License v2+; either under the pure GPLv2+ (see the file COPYING), or (at your option) under the GPLv+2 with special exceptions and restrictions granting the free usage for all binaries including commercial programs (see the file LICENSE).</p>
|
<p><b>UPX</b> is distributed with full source code under the terms of the GNU General Public License v2+; either under the pure GPLv2+ (see the file COPYING), or (at your option) under the GPLv+2 with special exceptions and restrictions granting the free usage for all binaries including commercial programs (see the file LICENSE).</p>
|
||||||
|
|
||||||
<p>This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</p>
|
<p>This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</p>
|
||||||
|
|||||||
Generated
-4
@@ -815,8 +815,6 @@ AUTHORS
|
|||||||
|
|
||||||
John F. Reiser <jreiser@BitWagon.com>
|
John F. Reiser <jreiser@BitWagon.com>
|
||||||
|
|
||||||
Jens Medoch <jssg@users.sourceforge.net>
|
|
||||||
|
|
||||||
COPYRIGHT
|
COPYRIGHT
|
||||||
Copyright (C) 1996-2024 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2024 Markus Franz Xaver Johannes Oberhumer
|
||||||
|
|
||||||
@@ -824,8 +822,6 @@ COPYRIGHT
|
|||||||
|
|
||||||
Copyright (C) 2000-2024 John F. Reiser
|
Copyright (C) 2000-2024 John F. Reiser
|
||||||
|
|
||||||
Copyright (C) 2002-2024 Jens Medoch
|
|
||||||
|
|
||||||
UPX is distributed with full source code under the terms of the GNU
|
UPX is distributed with full source code under the terms of the GNU
|
||||||
General Public License v2+; either under the pure GPLv2+ (see the file
|
General Public License v2+; either under the pure GPLv2+ (see the file
|
||||||
COPYING), or (at your option) under the GPLv+2 with special exceptions
|
COPYING), or (at your option) under the GPLv+2 with special exceptions
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.42)
|
.\" -*- mode: troff; coding: utf-8 -*-
|
||||||
|
.\" Automatically generated by Pod::Man
|
||||||
.\"
|
.\"
|
||||||
.\" Standard preamble:
|
.\" Standard preamble:
|
||||||
.\" ========================================================================
|
.\" ========================================================================
|
||||||
@@ -15,29 +16,12 @@
|
|||||||
.ft R
|
.ft R
|
||||||
.fi
|
.fi
|
||||||
..
|
..
|
||||||
.\" Set up some character translations and predefined strings. \*(-- will
|
.\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>.
|
||||||
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
|
|
||||||
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
|
|
||||||
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
|
|
||||||
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
|
|
||||||
.\" nothing in troff, for use with C<>.
|
|
||||||
.tr \(*W-
|
|
||||||
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
|
|
||||||
.ie n \{\
|
.ie n \{\
|
||||||
. ds -- \(*W-
|
|
||||||
. ds PI pi
|
|
||||||
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
|
|
||||||
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
|
|
||||||
. ds L" ""
|
|
||||||
. ds R" ""
|
|
||||||
. ds C` ""
|
. ds C` ""
|
||||||
. ds C' ""
|
. ds C' ""
|
||||||
'br\}
|
'br\}
|
||||||
.el\{\
|
.el\{\
|
||||||
. ds -- \|\(em\|
|
|
||||||
. ds PI \(*p
|
|
||||||
. ds L" ``
|
|
||||||
. ds R" ''
|
|
||||||
. ds C`
|
. ds C`
|
||||||
. ds C'
|
. ds C'
|
||||||
'br\}
|
'br\}
|
||||||
@@ -68,82 +52,20 @@
|
|||||||
. \}
|
. \}
|
||||||
.\}
|
.\}
|
||||||
.rr rF
|
.rr rF
|
||||||
.\"
|
|
||||||
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
|
|
||||||
.\" Fear. Run. Save yourself. No user-serviceable parts.
|
|
||||||
. \" fudge factors for nroff and troff
|
|
||||||
.if n \{\
|
|
||||||
. ds #H 0
|
|
||||||
. ds #V .8m
|
|
||||||
. ds #F .3m
|
|
||||||
. ds #[ \f1
|
|
||||||
. ds #] \fP
|
|
||||||
.\}
|
|
||||||
.if t \{\
|
|
||||||
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
|
|
||||||
. ds #V .6m
|
|
||||||
. ds #F 0
|
|
||||||
. ds #[ \&
|
|
||||||
. ds #] \&
|
|
||||||
.\}
|
|
||||||
. \" simple accents for nroff and troff
|
|
||||||
.if n \{\
|
|
||||||
. ds ' \&
|
|
||||||
. ds ` \&
|
|
||||||
. ds ^ \&
|
|
||||||
. ds , \&
|
|
||||||
. ds ~ ~
|
|
||||||
. ds /
|
|
||||||
.\}
|
|
||||||
.if t \{\
|
|
||||||
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
|
|
||||||
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
|
|
||||||
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
|
|
||||||
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
|
|
||||||
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
|
|
||||||
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
|
|
||||||
.\}
|
|
||||||
. \" troff and (daisy-wheel) nroff accents
|
|
||||||
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
|
|
||||||
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
|
|
||||||
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
|
|
||||||
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
|
|
||||||
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
|
|
||||||
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
|
|
||||||
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
|
|
||||||
.ds ae a\h'-(\w'a'u*4/10)'e
|
|
||||||
.ds Ae A\h'-(\w'A'u*4/10)'E
|
|
||||||
. \" corrections for vroff
|
|
||||||
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
|
|
||||||
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
|
|
||||||
. \" for low resolution devices (crt and lpr)
|
|
||||||
.if \n(.H>23 .if \n(.V>19 \
|
|
||||||
\{\
|
|
||||||
. ds : e
|
|
||||||
. ds 8 ss
|
|
||||||
. ds o a
|
|
||||||
. ds d- d\h'-1'\(ga
|
|
||||||
. ds D- D\h'-1'\(hy
|
|
||||||
. ds th \o'bp'
|
|
||||||
. ds Th \o'LP'
|
|
||||||
. ds ae ae
|
|
||||||
. ds Ae AE
|
|
||||||
.\}
|
|
||||||
.rm #[ #] #H #V #F C
|
|
||||||
.\" ========================================================================
|
.\" ========================================================================
|
||||||
.\"
|
.\"
|
||||||
.IX Title "UPX 1"
|
.IX Title "UPX 1"
|
||||||
.TH UPX 1 "2024-03-27" "upx 4.2.3" " "
|
.TH UPX 1 2024-05-09 "upx 4.2.4" " "
|
||||||
.\" 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
|
||||||
.nh
|
.nh
|
||||||
.SH "NAME"
|
.SH NAME
|
||||||
upx \- compress or expand executable files
|
upx \- compress or expand executable files
|
||||||
.SH "SYNOPSIS"
|
.SH SYNOPSIS
|
||||||
.IX Header "SYNOPSIS"
|
.IX Header "SYNOPSIS"
|
||||||
\&\fBupx\fR [\ \fIcommand\fR\ ] [\ \fIoptions\fR\ ] \fIfilename\fR...
|
\&\fBupx\fR [\ \fIcommand\fR\ ] [\ \fIoptions\fR\ ] \fIfilename\fR...
|
||||||
.SH "ABSTRACT"
|
.SH ABSTRACT
|
||||||
.IX Header "ABSTRACT"
|
.IX Header "ABSTRACT"
|
||||||
.Vb 3
|
.Vb 3
|
||||||
\& The Ultimate Packer for eXecutables
|
\& The Ultimate Packer for eXecutables
|
||||||
@@ -151,27 +73,27 @@ upx \- compress or expand executable files
|
|||||||
\& https://upx.github.io
|
\& https://upx.github.io
|
||||||
.Ve
|
.Ve
|
||||||
.PP
|
.PP
|
||||||
\&\fB\s-1UPX\s0\fR is a portable, extendable, high-performance executable packer for
|
\&\fBUPX\fR is a portable, extendable, high-performance executable packer for
|
||||||
several different executable formats. It achieves an excellent compression
|
several different executable formats. It achieves an excellent compression
|
||||||
ratio and offers \fI*very*\fR fast decompression. Your executables suffer
|
ratio and offers \fI*very*\fR fast decompression. Your executables suffer
|
||||||
no memory overhead or other drawbacks for most of the formats supported,
|
no memory overhead or other drawbacks for most of the formats supported,
|
||||||
because of in-place decompression.
|
because of in-place decompression.
|
||||||
.SH "DISCLAIMER"
|
.SH DISCLAIMER
|
||||||
.IX Header "DISCLAIMER"
|
.IX Header "DISCLAIMER"
|
||||||
\&\fB\s-1UPX\s0\fR comes with \s-1ABSOLUTELY NO WARRANTY\s0; for details see the file \s-1COPYING.\s0
|
\&\fBUPX\fR comes with ABSOLUTELY NO WARRANTY; for details see the file COPYING.
|
||||||
.PP
|
.PP
|
||||||
Please report all problems or suggestions to the authors. Thanks.
|
Please report all problems or suggestions to the authors. Thanks.
|
||||||
.SH "SECURITY CONTEXT"
|
.SH "SECURITY CONTEXT"
|
||||||
.IX Header "SECURITY CONTEXT"
|
.IX Header "SECURITY CONTEXT"
|
||||||
\&\s-1IMPORTANT NOTE:\s0 \fB\s-1UPX\s0\fR inherits the security context of any files it handles.
|
IMPORTANT NOTE: \fBUPX\fR inherits the security context of any files it handles.
|
||||||
.PP
|
.PP
|
||||||
This means that packing, unpacking, or even testing or listing a file requires
|
This means that packing, unpacking, or even testing or listing a file requires
|
||||||
the same security considerations as actually executing the file.
|
the same security considerations as actually executing the file.
|
||||||
.PP
|
.PP
|
||||||
Use \fB\s-1UPX\s0\fR on trusted files only!
|
Use \fBUPX\fR on trusted files only!
|
||||||
.SH "DESCRIPTION"
|
.SH DESCRIPTION
|
||||||
.IX Header "DESCRIPTION"
|
.IX Header "DESCRIPTION"
|
||||||
\&\fB\s-1UPX\s0\fR is a versatile executable packer with the following features:
|
\&\fBUPX\fR is a versatile executable packer with the following features:
|
||||||
.PP
|
.PP
|
||||||
.Vb 3
|
.Vb 3
|
||||||
\& \- secure: as UPX is documented Open Source since many years any relevant
|
\& \- secure: as UPX is documented Open Source since many years any relevant
|
||||||
@@ -204,32 +126,32 @@ Use \fB\s-1UPX\s0\fR on trusted files only!
|
|||||||
\& for commercial programs
|
\& for commercial programs
|
||||||
.Ve
|
.Ve
|
||||||
.PP
|
.PP
|
||||||
You probably understand now why we call \fB\s-1UPX\s0\fR the "\fIultimate\fR"
|
You probably understand now why we call \fBUPX\fR the "\fIultimate\fR"
|
||||||
executable packer.
|
executable packer.
|
||||||
.SH "COMMANDS"
|
.SH COMMANDS
|
||||||
.IX Header "COMMANDS"
|
.IX Header "COMMANDS"
|
||||||
.SS "Compress"
|
.SS Compress
|
||||||
.IX Subsection "Compress"
|
.IX Subsection "Compress"
|
||||||
This is the default operation, eg. \fBupx yourfile.exe\fR will compress the file
|
This is the default operation, eg. \fBupx yourfile.exe\fR will compress the file
|
||||||
specified on the command line.
|
specified on the command line.
|
||||||
.SS "Decompress"
|
.SS Decompress
|
||||||
.IX Subsection "Decompress"
|
.IX Subsection "Decompress"
|
||||||
All \fB\s-1UPX\s0\fR supported file formats can be unpacked using the \fB\-d\fR switch, eg.
|
All \fBUPX\fR supported file formats can be unpacked using the \fB\-d\fR switch, eg.
|
||||||
\&\fBupx \-d yourfile.exe\fR will uncompress the file you've just compressed.
|
\&\fBupx \-d yourfile.exe\fR will uncompress the file you've just compressed.
|
||||||
.SS "Test"
|
.SS Test
|
||||||
.IX Subsection "Test"
|
.IX Subsection "Test"
|
||||||
The \fB\-t\fR command tests the integrity of the compressed and uncompressed
|
The \fB\-t\fR command tests the integrity of the compressed and uncompressed
|
||||||
data, eg. \fBupx \-t yourfile.exe\fR check whether your file can be safely
|
data, eg. \fBupx \-t yourfile.exe\fR check whether your file can be safely
|
||||||
decompressed. Note, that this command doesn't check the whole file, only
|
decompressed. Note, that this command doesn't check the whole file, only
|
||||||
the part that will be uncompressed during program execution. This means
|
the part that will be uncompressed during program execution. This means
|
||||||
that you should not use this command instead of a virus checker.
|
that you should not use this command instead of a virus checker.
|
||||||
.SS "List"
|
.SS List
|
||||||
.IX Subsection "List"
|
.IX Subsection "List"
|
||||||
The \fB\-l\fR command prints out some information about the compressed files
|
The \fB\-l\fR command prints out some information about the compressed files
|
||||||
specified on the command line as parameters, eg \fBupx \-l yourfile.exe\fR
|
specified on the command line as parameters, eg \fBupx \-l yourfile.exe\fR
|
||||||
shows the compressed / uncompressed size and the compression ratio of
|
shows the compressed / uncompressed size and the compression ratio of
|
||||||
\&\fIyourfile.exe\fR.
|
\&\fIyourfile.exe\fR.
|
||||||
.SH "OPTIONS"
|
.SH OPTIONS
|
||||||
.IX Header "OPTIONS"
|
.IX Header "OPTIONS"
|
||||||
\&\fB\-q\fR: be quiet, suppress warnings
|
\&\fB\-q\fR: be quiet, suppress warnings
|
||||||
.PP
|
.PP
|
||||||
@@ -239,10 +161,10 @@ shows the compressed / uncompressed size and the compression ratio of
|
|||||||
.PP
|
.PP
|
||||||
\&\fB\-\-help\fR: prints the help
|
\&\fB\-\-help\fR: prints the help
|
||||||
.PP
|
.PP
|
||||||
\&\fB\-\-version\fR: print the version of \fB\s-1UPX\s0\fR
|
\&\fB\-\-version\fR: print the version of \fBUPX\fR
|
||||||
.PP
|
.PP
|
||||||
\&\fB\-\-exact\fR: when compressing, require to be able to get a byte-identical file
|
\&\fB\-\-exact\fR: when compressing, require to be able to get a byte-identical file
|
||||||
after decompression with option \fB\-d\fR. [\s-1NOTE:\s0 this is work in progress and is
|
after decompression with option \fB\-d\fR. [NOTE: this is work in progress and is
|
||||||
not supported for all formats yet. If you do care, as a workaround you can
|
not supported for all formats yet. If you do care, as a workaround you can
|
||||||
compress and then decompress your program a first time \- any further
|
compress and then decompress your program a first time \- any further
|
||||||
compress-decompress steps should then yield byte-identical results
|
compress-decompress steps should then yield byte-identical results
|
||||||
@@ -255,16 +177,16 @@ as compared to the first decompressed version.]
|
|||||||
[ ...more docs need to be written... \- type `\fBupx \-\-help\fR' for now ]
|
[ ...more docs need to be written... \- type `\fBupx \-\-help\fR' for now ]
|
||||||
.SH "COMPRESSION LEVELS & TUNING"
|
.SH "COMPRESSION LEVELS & TUNING"
|
||||||
.IX Header "COMPRESSION LEVELS & TUNING"
|
.IX Header "COMPRESSION LEVELS & TUNING"
|
||||||
\&\fB\s-1UPX\s0\fR offers ten different compression levels from \fB\-1\fR to \fB\-9\fR,
|
\&\fBUPX\fR offers ten different compression levels from \fB\-1\fR to \fB\-9\fR,
|
||||||
and \fB\-\-best\fR. The default compression level is \fB\-8\fR for files
|
and \fB\-\-best\fR. The default compression level is \fB\-8\fR for files
|
||||||
smaller than 512 KiB, and \fB\-7\fR otherwise.
|
smaller than 512 KiB, and \fB\-7\fR otherwise.
|
||||||
.IP "\(bu" 4
|
.IP \(bu 4
|
||||||
Compression levels 1, 2 and 3 are pretty fast.
|
Compression levels 1, 2 and 3 are pretty fast.
|
||||||
.IP "\(bu" 4
|
.IP \(bu 4
|
||||||
Compression levels 4, 5 and 6 achieve a good time/ratio performance.
|
Compression levels 4, 5 and 6 achieve a good time/ratio performance.
|
||||||
.IP "\(bu" 4
|
.IP \(bu 4
|
||||||
Compression levels 7, 8 and 9 favor compression ratio over speed.
|
Compression levels 7, 8 and 9 favor compression ratio over speed.
|
||||||
.IP "\(bu" 4
|
.IP \(bu 4
|
||||||
Compression level \fB\-\-best\fR may take a long time.
|
Compression level \fB\-\-best\fR may take a long time.
|
||||||
.PP
|
.PP
|
||||||
Note that compression level \fB\-\-best\fR can be somewhat slow for large
|
Note that compression level \fB\-\-best\fR can be somewhat slow for large
|
||||||
@@ -272,28 +194,28 @@ files, but you definitely should use it when releasing a final version
|
|||||||
of your program.
|
of your program.
|
||||||
.PP
|
.PP
|
||||||
Quick info for achieving the best compression ratio:
|
Quick info for achieving the best compression ratio:
|
||||||
.IP "\(bu" 4
|
.IP \(bu 4
|
||||||
Try \fBupx \-\-brute \-\-no\-lzma myfile.exe\fR or even
|
Try \fBupx \-\-brute \-\-no\-lzma myfile.exe\fR or even
|
||||||
\&\fBupx \-\-ultra\-brute \-\-no\-lzma myfile.exe\fR.
|
\&\fBupx \-\-ultra\-brute \-\-no\-lzma myfile.exe\fR.
|
||||||
.IP "\(bu" 4
|
.IP \(bu 4
|
||||||
The option \fB\-\-lzma\fR enables \s-1LZMA\s0 compression, which compresses better but
|
The option \fB\-\-lzma\fR enables LZMA compression, which compresses better but
|
||||||
is *significantly slower* at decompression. You probably do not want
|
is *significantly slower* at decompression. You probably do not want
|
||||||
to use it for large files.
|
to use it for large files.
|
||||||
.Sp
|
.Sp
|
||||||
(Note that \fB\-\-lzma\fR is automatically enabled by \fB\-\-all\-methods\fR and
|
(Note that \fB\-\-lzma\fR is automatically enabled by \fB\-\-all\-methods\fR and
|
||||||
\&\fB\-\-brute\fR, use \fB\-\-no\-lzma\fR to override.)
|
\&\fB\-\-brute\fR, use \fB\-\-no\-lzma\fR to override.)
|
||||||
.IP "\(bu" 4
|
.IP \(bu 4
|
||||||
Try if \fB\-\-overlay=strip\fR works.
|
Try if \fB\-\-overlay=strip\fR works.
|
||||||
.IP "\(bu" 4
|
.IP \(bu 4
|
||||||
For win32/pe programs there's \fB\-\-strip\-relocs=0\fR. See notes below.
|
For win32/pe programs there's \fB\-\-strip\-relocs=0\fR. See notes below.
|
||||||
.SH "OVERLAY HANDLING OPTIONS"
|
.SH "OVERLAY HANDLING OPTIONS"
|
||||||
.IX Header "OVERLAY HANDLING OPTIONS"
|
.IX Header "OVERLAY HANDLING OPTIONS"
|
||||||
Info: An \*(L"overlay\*(R" means auxiliary data attached after the logical end of
|
Info: An "overlay" means auxiliary data attached after the logical end of
|
||||||
an executable, and it often contains application specific data
|
an executable, and it often contains application specific data
|
||||||
(this is a common practice to avoid an extra data file, though
|
(this is a common practice to avoid an extra data file, though
|
||||||
it would be better to use resource sections).
|
it would be better to use resource sections).
|
||||||
.PP
|
.PP
|
||||||
\&\fB\s-1UPX\s0\fR handles overlays like many other executable packers do: it simply
|
\&\fBUPX\fR handles overlays like many other executable packers do: it simply
|
||||||
copies the overlay after the compressed image. This works with some
|
copies the overlay after the compressed image. This works with some
|
||||||
files, but doesn't work with others, depending on how an application
|
files, but doesn't work with others, depending on how an application
|
||||||
actually accesses this overlaid data.
|
actually accesses this overlaid data.
|
||||||
@@ -309,8 +231,8 @@ actually accesses this overlaid data.
|
|||||||
.Ve
|
.Ve
|
||||||
.SH "ENVIRONMENT VARIABLE"
|
.SH "ENVIRONMENT VARIABLE"
|
||||||
.IX Header "ENVIRONMENT VARIABLE"
|
.IX Header "ENVIRONMENT VARIABLE"
|
||||||
The environment variable \fB\s-1UPX\s0\fR can hold a set of default
|
The environment variable \fBUPX\fR can hold a set of default
|
||||||
options for \fB\s-1UPX\s0\fR. These options are interpreted first and
|
options for \fBUPX\fR. These options are interpreted first and
|
||||||
can be overwritten by explicit command line parameters.
|
can be overwritten by explicit command line parameters.
|
||||||
For example:
|
For example:
|
||||||
.PP
|
.PP
|
||||||
@@ -321,18 +243,18 @@ For example:
|
|||||||
.Ve
|
.Ve
|
||||||
.PP
|
.PP
|
||||||
Under DOS/Windows you must use '#' instead of '=' when setting the
|
Under DOS/Windows you must use '#' instead of '=' when setting the
|
||||||
environment variable because of a \s-1COMMAND.COM\s0 limitation.
|
environment variable because of a COMMAND.COM limitation.
|
||||||
.PP
|
.PP
|
||||||
Not all of the options are valid in the environment variable \-
|
Not all of the options are valid in the environment variable \-
|
||||||
\&\fB\s-1UPX\s0\fR will tell you.
|
\&\fBUPX\fR will tell you.
|
||||||
.PP
|
.PP
|
||||||
You can explicitly use the \fB\-\-no\-env\fR option to ignore the
|
You can explicitly use the \fB\-\-no\-env\fR option to ignore the
|
||||||
environment variable.
|
environment variable.
|
||||||
.SH "NOTES FOR THE SUPPORTED EXECUTABLE FORMATS"
|
.SH "NOTES FOR THE SUPPORTED EXECUTABLE FORMATS"
|
||||||
.IX Header "NOTES FOR THE SUPPORTED EXECUTABLE FORMATS"
|
.IX Header "NOTES FOR THE SUPPORTED EXECUTABLE FORMATS"
|
||||||
.SS "\s-1NOTES FOR ATARI/TOS\s0"
|
.SS "NOTES FOR ATARI/TOS"
|
||||||
.IX Subsection "NOTES FOR ATARI/TOS"
|
.IX Subsection "NOTES FOR ATARI/TOS"
|
||||||
This is the executable format used by the Atari \s-1ST/TT,\s0 a Motorola 68000
|
This is the executable format used by the Atari ST/TT, a Motorola 68000
|
||||||
based personal computer which was popular in the late '80s. Support
|
based personal computer which was popular in the late '80s. Support
|
||||||
of this format is only because of nostalgic feelings of one of
|
of this format is only because of nostalgic feelings of one of
|
||||||
the authors and serves no practical purpose :\-).
|
the authors and serves no practical purpose :\-).
|
||||||
@@ -349,12 +271,12 @@ Extra options available for this executable format:
|
|||||||
\& the compression ratio in some cases, but usually
|
\& the compression ratio in some cases, but usually
|
||||||
\& the default method gives the best results anyway.
|
\& the default method gives the best results anyway.
|
||||||
.Ve
|
.Ve
|
||||||
.SS "\s-1NOTES FOR BVMLINUZ/I386\s0"
|
.SS "NOTES FOR BVMLINUZ/I386"
|
||||||
.IX Subsection "NOTES FOR BVMLINUZ/I386"
|
.IX Subsection "NOTES FOR BVMLINUZ/I386"
|
||||||
Same as vmlinuz/i386.
|
Same as vmlinuz/i386.
|
||||||
.SS "\s-1NOTES FOR DOS/COM\s0"
|
.SS "NOTES FOR DOS/COM"
|
||||||
.IX Subsection "NOTES FOR DOS/COM"
|
.IX Subsection "NOTES FOR DOS/COM"
|
||||||
Obviously \fB\s-1UPX\s0\fR won't work with executables that want to read data from
|
Obviously \fBUPX\fR won't work with executables that want to read data from
|
||||||
themselves (like some commandline utilities that ship with Win95/98/ME).
|
themselves (like some commandline utilities that ship with Win95/98/ME).
|
||||||
.PP
|
.PP
|
||||||
Compressed programs only work on a 286+.
|
Compressed programs only work on a 286+.
|
||||||
@@ -378,11 +300,11 @@ Extra options available for this executable format:
|
|||||||
\& the compression ratio in some cases, but usually
|
\& the compression ratio in some cases, but usually
|
||||||
\& the default filter gives the best results anyway.
|
\& the default filter gives the best results anyway.
|
||||||
.Ve
|
.Ve
|
||||||
.SS "\s-1NOTES FOR DOS/EXE\s0"
|
.SS "NOTES FOR DOS/EXE"
|
||||||
.IX Subsection "NOTES FOR DOS/EXE"
|
.IX Subsection "NOTES FOR DOS/EXE"
|
||||||
dos/exe stands for all \*(L"normal\*(R" 16\-bit \s-1DOS\s0 executables.
|
dos/exe stands for all "normal" 16\-bit DOS executables.
|
||||||
.PP
|
.PP
|
||||||
Obviously \fB\s-1UPX\s0\fR won't work with executables that want to read data from
|
Obviously \fBUPX\fR won't work with executables that want to read data from
|
||||||
themselves (like some command line utilities that ship with Win95/98/ME).
|
themselves (like some command line utilities that ship with Win95/98/ME).
|
||||||
.PP
|
.PP
|
||||||
Compressed programs only work on a 286+.
|
Compressed programs only work on a 286+.
|
||||||
@@ -399,7 +321,7 @@ Extra options available for this executable format:
|
|||||||
\& the compression ratio in some cases, but usually
|
\& the compression ratio in some cases, but usually
|
||||||
\& the default method gives the best results anyway.
|
\& the default method gives the best results anyway.
|
||||||
.Ve
|
.Ve
|
||||||
.SS "\s-1NOTES FOR DOS/SYS\s0"
|
.SS "NOTES FOR DOS/SYS"
|
||||||
.IX Subsection "NOTES FOR DOS/SYS"
|
.IX Subsection "NOTES FOR DOS/SYS"
|
||||||
Compressed programs only work on a 286+.
|
Compressed programs only work on a 286+.
|
||||||
.PP
|
.PP
|
||||||
@@ -422,20 +344,20 @@ Extra options available for this executable format:
|
|||||||
\& the compression ratio in some cases, but usually
|
\& the compression ratio in some cases, but usually
|
||||||
\& the default filter gives the best results anyway.
|
\& the default filter gives the best results anyway.
|
||||||
.Ve
|
.Ve
|
||||||
.SS "\s-1NOTES FOR DJGPP2/COFF\s0"
|
.SS "NOTES FOR DJGPP2/COFF"
|
||||||
.IX Subsection "NOTES FOR DJGPP2/COFF"
|
.IX Subsection "NOTES FOR DJGPP2/COFF"
|
||||||
First of all, it is recommended to use \fB\s-1UPX\s0\fR *instead* of \fBstrip\fR. strip has
|
First of all, it is recommended to use \fBUPX\fR *instead* of \fBstrip\fR. strip has
|
||||||
the very bad habit of replacing your stub with its own (outdated) version.
|
the very bad habit of replacing your stub with its own (outdated) version.
|
||||||
Additionally \fB\s-1UPX\s0\fR corrects a bug/feature in strip v2.8.x: it
|
Additionally \fBUPX\fR corrects a bug/feature in strip v2.8.x: it
|
||||||
will fix the 4 KiB alignment of the stub.
|
will fix the 4 KiB alignment of the stub.
|
||||||
.PP
|
.PP
|
||||||
\&\fB\s-1UPX\s0\fR includes the full functionality of stubify. This means it will
|
\&\fBUPX\fR includes the full functionality of stubify. This means it will
|
||||||
automatically stubify your \s-1COFF\s0 files. Use the option \fB\-\-coff\fR to
|
automatically stubify your COFF files. Use the option \fB\-\-coff\fR to
|
||||||
disable this functionality (see below).
|
disable this functionality (see below).
|
||||||
.PP
|
.PP
|
||||||
\&\fB\s-1UPX\s0\fR automatically handles Allegro packfiles.
|
\&\fBUPX\fR automatically handles Allegro packfiles.
|
||||||
.PP
|
.PP
|
||||||
The \s-1DLM\s0 format (a rather exotic shared library extension) is not supported.
|
The DLM format (a rather exotic shared library extension) is not supported.
|
||||||
.PP
|
.PP
|
||||||
Packed programs will be byte-identical to the original after uncompression.
|
Packed programs will be byte-identical to the original after uncompression.
|
||||||
All debug information and trailing garbage will be stripped, though.
|
All debug information and trailing garbage will be stripped, though.
|
||||||
@@ -456,7 +378,7 @@ Extra options available for this executable format:
|
|||||||
\& the compression ratio in some cases, but usually
|
\& the compression ratio in some cases, but usually
|
||||||
\& the default filter gives the best results anyway.
|
\& the default filter gives the best results anyway.
|
||||||
.Ve
|
.Ve
|
||||||
.SS "\s-1NOTES FOR LINUX\s0 [general]"
|
.SS "NOTES FOR LINUX [general]"
|
||||||
.IX Subsection "NOTES FOR LINUX [general]"
|
.IX Subsection "NOTES FOR LINUX [general]"
|
||||||
Introduction
|
Introduction
|
||||||
.PP
|
.PP
|
||||||
@@ -593,15 +515,15 @@ General notes:
|
|||||||
\& been modified after compression.
|
\& been modified after compression.
|
||||||
\& Running \`strace \-o strace.log compressed_file\*(Aq will tell you more.
|
\& Running \`strace \-o strace.log compressed_file\*(Aq will tell you more.
|
||||||
.Ve
|
.Ve
|
||||||
.SS "\s-1NOTES FOR LINUX/ELF386\s0"
|
.SS "NOTES FOR LINUX/ELF386"
|
||||||
.IX Subsection "NOTES FOR LINUX/ELF386"
|
.IX Subsection "NOTES FOR LINUX/ELF386"
|
||||||
Please read the general Linux description first.
|
Please read the general Linux description first.
|
||||||
.PP
|
.PP
|
||||||
The linux/elf386 format decompresses directly into \s-1RAM,\s0
|
The linux/elf386 format decompresses directly into RAM,
|
||||||
uses only one exec, does not use space in /tmp,
|
uses only one exec, does not use space in /tmp,
|
||||||
and does not use /proc.
|
and does not use /proc.
|
||||||
.PP
|
.PP
|
||||||
Linux/elf386 is automatically selected for Linux \s-1ELF\s0 executables.
|
Linux/elf386 is automatically selected for Linux ELF executables.
|
||||||
.PP
|
.PP
|
||||||
Packed programs will be byte-identical to the original after uncompression.
|
Packed programs will be byte-identical to the original after uncompression.
|
||||||
.PP
|
.PP
|
||||||
@@ -641,12 +563,12 @@ Extra options available for this executable format:
|
|||||||
.Vb 1
|
.Vb 1
|
||||||
\& (none)
|
\& (none)
|
||||||
.Ve
|
.Ve
|
||||||
.SS "\s-1NOTES FOR LINUX/SH386\s0"
|
.SS "NOTES FOR LINUX/SH386"
|
||||||
.IX Subsection "NOTES FOR LINUX/SH386"
|
.IX Subsection "NOTES FOR LINUX/SH386"
|
||||||
Please read the general Linux description first.
|
Please read the general Linux description first.
|
||||||
.PP
|
.PP
|
||||||
Shell scripts where the underling shell accepts a ``\-c'' argument
|
Shell scripts where the underling shell accepts a ``\-c'' argument
|
||||||
can use the Linux/sh386 format. \fB\s-1UPX\s0\fR decompresses the shell script
|
can use the Linux/sh386 format. \fBUPX\fR decompresses the shell script
|
||||||
into low memory, then maps the shell and passes the entire text of the
|
into low memory, then maps the shell and passes the entire text of the
|
||||||
script as an argument with a leading ``\-c''.
|
script as an argument with a leading ``\-c''.
|
||||||
It does not use space in /tmp, and does not use /proc.
|
It does not use space in /tmp, and does not use /proc.
|
||||||
@@ -691,7 +613,7 @@ Extra options available for this executable format:
|
|||||||
.Vb 1
|
.Vb 1
|
||||||
\& (none)
|
\& (none)
|
||||||
.Ve
|
.Ve
|
||||||
.SS "\s-1NOTES FOR LINUX/386\s0"
|
.SS "NOTES FOR LINUX/386"
|
||||||
.IX Subsection "NOTES FOR LINUX/386"
|
.IX Subsection "NOTES FOR LINUX/386"
|
||||||
Please read the general Linux description first.
|
Please read the general Linux description first.
|
||||||
.PP
|
.PP
|
||||||
@@ -764,10 +686,10 @@ Extra options available for this executable format:
|
|||||||
\& format, i.e. do not try the linux/elf386 and
|
\& format, i.e. do not try the linux/elf386 and
|
||||||
\& linux/sh386 formats.
|
\& linux/sh386 formats.
|
||||||
.Ve
|
.Ve
|
||||||
.SS "\s-1NOTES FOR PS1/EXE\s0"
|
.SS "NOTES FOR PS1/EXE"
|
||||||
.IX Subsection "NOTES FOR PS1/EXE"
|
.IX Subsection "NOTES FOR PS1/EXE"
|
||||||
This is the executable format used by the Sony PlayStation (PSone),
|
This is the executable format used by the Sony PlayStation (PSone),
|
||||||
a \s-1MIPS R3000\s0 based gaming console which is popular since the late '90s.
|
a MIPS R3000 based gaming console which is popular since the late '90s.
|
||||||
Support of this format is very similar to the Atari one, because of
|
Support of this format is very similar to the Atari one, because of
|
||||||
nostalgic feelings of one of the authors.
|
nostalgic feelings of one of the authors.
|
||||||
.PP
|
.PP
|
||||||
@@ -816,12 +738,12 @@ Extra options available for this executable format:
|
|||||||
\& but the compressed executable will not boot from a CD.
|
\& but the compressed executable will not boot from a CD.
|
||||||
\& Use it for console transfer only !
|
\& Use it for console transfer only !
|
||||||
.Ve
|
.Ve
|
||||||
.SS "\s-1NOTES FOR RTM32/PE\s0 and \s-1ARM/PE\s0"
|
.SS "NOTES FOR RTM32/PE and ARM/PE"
|
||||||
.IX Subsection "NOTES FOR RTM32/PE and ARM/PE"
|
.IX Subsection "NOTES FOR RTM32/PE and ARM/PE"
|
||||||
Same as win32/pe.
|
Same as win32/pe.
|
||||||
.SS "\s-1NOTES FOR TMT/ADAM\s0"
|
.SS "NOTES FOR TMT/ADAM"
|
||||||
.IX Subsection "NOTES FOR TMT/ADAM"
|
.IX Subsection "NOTES FOR TMT/ADAM"
|
||||||
This format is used by the \s-1TMT\s0 Pascal compiler \- see http://www.tmt.com/ .
|
This format is used by the TMT Pascal compiler \- see http://www.tmt.com/ .
|
||||||
.PP
|
.PP
|
||||||
Extra options available for this executable format:
|
Extra options available for this executable format:
|
||||||
.PP
|
.PP
|
||||||
@@ -836,11 +758,11 @@ Extra options available for this executable format:
|
|||||||
\& the compression ratio in some cases, but usually
|
\& the compression ratio in some cases, but usually
|
||||||
\& the default filter gives the best results anyway.
|
\& the default filter gives the best results anyway.
|
||||||
.Ve
|
.Ve
|
||||||
.SS "\s-1NOTES FOR VMLINUZ/386\s0"
|
.SS "NOTES FOR VMLINUZ/386"
|
||||||
.IX Subsection "NOTES FOR VMLINUZ/386"
|
.IX Subsection "NOTES FOR VMLINUZ/386"
|
||||||
The vmlinuz/386 and bvmlinuz/386 formats take a gzip-compressed
|
The vmlinuz/386 and bvmlinuz/386 formats take a gzip-compressed
|
||||||
bootable Linux kernel image (\*(L"vmlinuz\*(R", \*(L"zImage\*(R", \*(L"bzImage\*(R"),
|
bootable Linux kernel image ("vmlinuz", "zImage", "bzImage"),
|
||||||
gzip-decompress it and re-compress it with the \fB\s-1UPX\s0\fR compression method.
|
gzip-decompress it and re-compress it with the \fBUPX\fR compression method.
|
||||||
.PP
|
.PP
|
||||||
vmlinuz/386 is completely unrelated to the other Linux executable
|
vmlinuz/386 is completely unrelated to the other Linux executable
|
||||||
formats, and it does not share any of their drawbacks.
|
formats, and it does not share any of their drawbacks.
|
||||||
@@ -889,14 +811,14 @@ Extra options available for this executable format:
|
|||||||
\& the compression ratio in some cases, but usually
|
\& the compression ratio in some cases, but usually
|
||||||
\& the default filter gives the best results anyway.
|
\& the default filter gives the best results anyway.
|
||||||
.Ve
|
.Ve
|
||||||
.SS "\s-1NOTES FOR WATCOM/LE\s0"
|
.SS "NOTES FOR WATCOM/LE"
|
||||||
.IX Subsection "NOTES FOR WATCOM/LE"
|
.IX Subsection "NOTES FOR WATCOM/LE"
|
||||||
\&\fB\s-1UPX\s0\fR has been successfully tested with the following extenders:
|
\&\fBUPX\fR has been successfully tested with the following extenders:
|
||||||
\s-1DOS4G, DOS4GW, PMODE/W,\s0 DOS32a, CauseWay.
|
DOS4G, DOS4GW, PMODE/W, DOS32a, CauseWay.
|
||||||
The \s-1WDOS/X\s0 extender is partly supported (for details
|
The WDOS/X extender is partly supported (for details
|
||||||
see the file bugs \s-1BUGS\s0).
|
see the file bugs BUGS).
|
||||||
.PP
|
.PP
|
||||||
DLLs and the \s-1LX\s0 format are not supported.
|
DLLs and the LX format are not supported.
|
||||||
.PP
|
.PP
|
||||||
Extra options available for this executable format:
|
Extra options available for this executable format:
|
||||||
.PP
|
.PP
|
||||||
@@ -904,12 +826,12 @@ Extra options available for this executable format:
|
|||||||
\& \-\-le Produce an unbound LE output instead of
|
\& \-\-le Produce an unbound LE output instead of
|
||||||
\& keeping the current stub.
|
\& keeping the current stub.
|
||||||
.Ve
|
.Ve
|
||||||
.SS "\s-1NOTES FOR WIN32/PE\s0"
|
.SS "NOTES FOR WIN32/PE"
|
||||||
.IX Subsection "NOTES FOR WIN32/PE"
|
.IX Subsection "NOTES FOR WIN32/PE"
|
||||||
The \s-1PE\s0 support in \fB\s-1UPX\s0\fR is quite stable now, but probably there are
|
The PE support in \fBUPX\fR is quite stable now, but probably there are
|
||||||
still some incompatibilities with some files.
|
still some incompatibilities with some files.
|
||||||
.PP
|
.PP
|
||||||
Because of the way \fB\s-1UPX\s0\fR (and other packers for this format) works, you
|
Because of the way \fBUPX\fR (and other packers for this format) works, you
|
||||||
can see increased memory usage of your compressed files because the whole
|
can see increased memory usage of your compressed files because the whole
|
||||||
program is loaded into memory at startup.
|
program is loaded into memory at startup.
|
||||||
If you start several instances of huge compressed programs you're
|
If you start several instances of huge compressed programs you're
|
||||||
@@ -922,17 +844,17 @@ smaller, but it's still there.
|
|||||||
If you're running executables from network, then compressed programs
|
If you're running executables from network, then compressed programs
|
||||||
will load faster, and require less bandwidth during execution.
|
will load faster, and require less bandwidth during execution.
|
||||||
.PP
|
.PP
|
||||||
DLLs are supported. But \s-1UPX\s0 compressed DLLs can not share common data and
|
DLLs are supported. But UPX compressed DLLs can not share common data and
|
||||||
code when they got used by multiple applications. So compressing msvcrt.dll
|
code when they got used by multiple applications. So compressing msvcrt.dll
|
||||||
is a waste of memory, but compressing the dll plugins of a particular
|
is a waste of memory, but compressing the dll plugins of a particular
|
||||||
application may be a better idea.
|
application may be a better idea.
|
||||||
.PP
|
.PP
|
||||||
Screensavers are supported, with the restriction that the filename
|
Screensavers are supported, with the restriction that the filename
|
||||||
must end with \*(L".scr\*(R" (as screensavers are handled slightly different
|
must end with ".scr" (as screensavers are handled slightly different
|
||||||
than normal exe files).
|
than normal exe files).
|
||||||
.PP
|
.PP
|
||||||
\&\s-1UPX\s0 compressed \s-1PE\s0 files have some minor memory overhead (usually in the
|
UPX compressed PE files have some minor memory overhead (usually in the
|
||||||
10 \- 30 KiB range) which can be seen by specifying the \*(L"\-i\*(R" command
|
10 \- 30 KiB range) which can be seen by specifying the "\-i" command
|
||||||
line switch during compression.
|
line switch during compression.
|
||||||
.PP
|
.PP
|
||||||
Extra options available for this executable format:
|
Extra options available for this executable format:
|
||||||
@@ -996,16 +918,16 @@ Extra options available for this executable format:
|
|||||||
\& the compression ratio in some cases, but usually
|
\& the compression ratio in some cases, but usually
|
||||||
\& the default filter gives the best results anyway.
|
\& the default filter gives the best results anyway.
|
||||||
.Ve
|
.Ve
|
||||||
.SH "DIAGNOSTICS"
|
.SH DIAGNOSTICS
|
||||||
.IX Header "DIAGNOSTICS"
|
.IX Header "DIAGNOSTICS"
|
||||||
Exit status is normally 0; if an error occurs, exit status
|
Exit status is normally 0; if an error occurs, exit status
|
||||||
is 1. If a warning occurs, exit status is 2.
|
is 1. If a warning occurs, exit status is 2.
|
||||||
.PP
|
.PP
|
||||||
\&\fB\s-1UPX\s0\fR's diagnostics are intended to be self-explanatory.
|
\&\fBUPX\fR's diagnostics are intended to be self-explanatory.
|
||||||
.SH "BUGS"
|
.SH BUGS
|
||||||
.IX Header "BUGS"
|
.IX Header "BUGS"
|
||||||
Please report all bugs immediately to the authors.
|
Please report all bugs immediately to the authors.
|
||||||
.SH "AUTHORS"
|
.SH AUTHORS
|
||||||
.IX Header "AUTHORS"
|
.IX Header "AUTHORS"
|
||||||
.Vb 2
|
.Vb 2
|
||||||
\& Markus F.X.J. Oberhumer <markus@oberhumer.com>
|
\& Markus F.X.J. Oberhumer <markus@oberhumer.com>
|
||||||
@@ -1014,10 +936,8 @@ Please report all bugs immediately to the authors.
|
|||||||
\& Laszlo Molnar <ezerotven+github@gmail.com>
|
\& Laszlo Molnar <ezerotven+github@gmail.com>
|
||||||
\&
|
\&
|
||||||
\& John F. Reiser <jreiser@BitWagon.com>
|
\& John F. Reiser <jreiser@BitWagon.com>
|
||||||
\&
|
|
||||||
\& Jens Medoch <jssg@users.sourceforge.net>
|
|
||||||
.Ve
|
.Ve
|
||||||
.SH "COPYRIGHT"
|
.SH COPYRIGHT
|
||||||
.IX Header "COPYRIGHT"
|
.IX Header "COPYRIGHT"
|
||||||
Copyright (C) 1996\-2024 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996\-2024 Markus Franz Xaver Johannes Oberhumer
|
||||||
.PP
|
.PP
|
||||||
@@ -1025,18 +945,16 @@ Copyright (C) 1996\-2024 Laszlo Molnar
|
|||||||
.PP
|
.PP
|
||||||
Copyright (C) 2000\-2024 John F. Reiser
|
Copyright (C) 2000\-2024 John F. Reiser
|
||||||
.PP
|
.PP
|
||||||
Copyright (C) 2002\-2024 Jens Medoch
|
\&\fBUPX\fR is distributed with full source code under the terms of the
|
||||||
.PP
|
GNU General Public License v2+; either under the pure GPLv2+ (see
|
||||||
\&\fB\s-1UPX\s0\fR is distributed with full source code under the terms of the
|
the file COPYING), or (at your option) under the GPLv+2 with special
|
||||||
\&\s-1GNU\s0 General Public License v2+; either under the pure GPLv2+ (see
|
|
||||||
the file \s-1COPYING\s0), or (at your option) under the GPLv+2 with special
|
|
||||||
exceptions and restrictions granting the free usage for all binaries
|
exceptions and restrictions granting the free usage for all binaries
|
||||||
including commercial programs (see the file \s-1LICENSE\s0).
|
including commercial programs (see the file LICENSE).
|
||||||
.PP
|
.PP
|
||||||
This program is distributed in the hope that it will be useful,
|
This program is distributed in the hope that it will be useful,
|
||||||
but \s-1WITHOUT ANY WARRANTY\s0; without even the implied warranty of
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
\&\s-1MERCHANTABILITY\s0 or \s-1FITNESS FOR A PARTICULAR PURPOSE.\s0
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
.PP
|
.PP
|
||||||
You should have received a copy of the \s-1UPX\s0 License Agreements along
|
You should have received a copy of the UPX License Agreements along
|
||||||
with this program; see the files \s-1COPYING\s0 and \s-1LICENSE.\s0 If not,
|
with this program; see the files COPYING and LICENSE. If not,
|
||||||
visit the \s-1UPX\s0 home page.
|
visit the UPX home page.
|
||||||
|
|||||||
@@ -926,8 +926,6 @@ Please report all bugs immediately to the authors.
|
|||||||
|
|
||||||
John F. Reiser <jreiser@BitWagon.com>
|
John F. Reiser <jreiser@BitWagon.com>
|
||||||
|
|
||||||
Jens Medoch <jssg@users.sourceforge.net>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
=head1 COPYRIGHT
|
=head1 COPYRIGHT
|
||||||
@@ -938,8 +936,6 @@ Copyright (C) 1996-2024 Laszlo Molnar
|
|||||||
|
|
||||||
Copyright (C) 2000-2024 John F. Reiser
|
Copyright (C) 2000-2024 John F. Reiser
|
||||||
|
|
||||||
Copyright (C) 2002-2024 Jens Medoch
|
|
||||||
|
|
||||||
B<UPX> is distributed with full source code under the terms of the
|
B<UPX> is distributed with full source code under the terms of the
|
||||||
GNU General Public License v2+; either under the pure GPLv2+ (see
|
GNU General Public License v2+; either under the pure GPLv2+ (see
|
||||||
the file COPYING), or (at your option) under the GPLv+2 with special
|
the file COPYING), or (at your option) under the GPLv+2 with special
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
# vim:set ft=yaml ts=2 sw=2 et:
|
||||||
|
# Copyright (C) Markus Franz Xaver Johannes Oberhumer
|
||||||
# for clang-tidy from https://clang.llvm.org/extra/clang-tidy/
|
# for clang-tidy from https://clang.llvm.org/extra/clang-tidy/
|
||||||
---
|
---
|
||||||
Checks: >
|
Checks: >
|
||||||
@@ -14,7 +16,7 @@ Checks: >
|
|||||||
-clang-analyzer-core.UndefinedBinaryOperatorResult,
|
-clang-analyzer-core.UndefinedBinaryOperatorResult,
|
||||||
-clang-analyzer-core.uninitialized.Assign,
|
-clang-analyzer-core.uninitialized.Assign,
|
||||||
-clang-analyzer-security.insecureAPI.strcpy,
|
-clang-analyzer-security.insecureAPI.strcpy,
|
||||||
clang-diagnostics-*',
|
clang-diagnostic-*,
|
||||||
performance-*,
|
performance-*,
|
||||||
FormatStyle: file
|
FormatStyle: file
|
||||||
HeaderFilterRegex: '.*'
|
HeaderFilterRegex: '.*'
|
||||||
|
|||||||
@@ -1,18 +1,22 @@
|
|||||||
|
# vim:set ft=yaml ts=2 sw=2 et:
|
||||||
|
# Copyright (C) Markus Franz Xaver Johannes Oberhumer
|
||||||
# for clang-tidy from https://clang.llvm.org/extra/clang-tidy/
|
# for clang-tidy from https://clang.llvm.org/extra/clang-tidy/
|
||||||
---
|
---
|
||||||
Checks: >
|
Checks: >
|
||||||
-*,
|
-*,
|
||||||
bugprone-*,
|
bugprone-*,
|
||||||
-bugprone-assignment-in-if-condition,
|
-bugprone-assignment-in-if-condition,
|
||||||
|
-bugprone-casting-through-void,
|
||||||
-bugprone-easily-swappable-parameters,
|
-bugprone-easily-swappable-parameters,
|
||||||
-bugprone-implicit-widening-of-multiplication-result,
|
-bugprone-implicit-widening-of-multiplication-result,
|
||||||
|
-bugprone-inc-dec-in-conditions,
|
||||||
-bugprone-macro-parentheses,
|
-bugprone-macro-parentheses,
|
||||||
-bugprone-reserved-identifier,
|
-bugprone-reserved-identifier,
|
||||||
-bugprone-sizeof-expression,
|
-bugprone-sizeof-expression,
|
||||||
-bugprone-suspicious-include,
|
-bugprone-suspicious-include,
|
||||||
clang-analyzer-*,
|
clang-analyzer-*,
|
||||||
-clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling,
|
-clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling,
|
||||||
clang-diagnostics-*',
|
clang-diagnostic-*,
|
||||||
performance-*,
|
performance-*,
|
||||||
FormatStyle: file
|
FormatStyle: file
|
||||||
HeaderFilterRegex: '.*'
|
HeaderFilterRegex: '.*'
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
# vim:set ft=yaml ts=2 sw=2 et:
|
||||||
|
# Copyright (C) Markus Franz Xaver Johannes Oberhumer
|
||||||
# for clang-tidy from https://clang.llvm.org/extra/clang-tidy/
|
# for clang-tidy from https://clang.llvm.org/extra/clang-tidy/
|
||||||
---
|
---
|
||||||
Checks: >
|
Checks: >
|
||||||
@@ -6,6 +8,7 @@ Checks: >
|
|||||||
-bugprone-assignment-in-if-condition,
|
-bugprone-assignment-in-if-condition,
|
||||||
-bugprone-easily-swappable-parameters,
|
-bugprone-easily-swappable-parameters,
|
||||||
-bugprone-implicit-widening-of-multiplication-result,
|
-bugprone-implicit-widening-of-multiplication-result,
|
||||||
|
-bugprone-inc-dec-in-conditions,
|
||||||
-bugprone-macro-parentheses,
|
-bugprone-macro-parentheses,
|
||||||
-bugprone-narrowing-conversions,
|
-bugprone-narrowing-conversions,
|
||||||
-bugprone-reserved-identifier,
|
-bugprone-reserved-identifier,
|
||||||
@@ -13,7 +16,7 @@ Checks: >
|
|||||||
clang-analyzer-*,
|
clang-analyzer-*,
|
||||||
-clang-analyzer-optin.performance.Padding,
|
-clang-analyzer-optin.performance.Padding,
|
||||||
-clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling,
|
-clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling,
|
||||||
clang-diagnostics-*',
|
clang-diagnostic-*,
|
||||||
performance-*,
|
performance-*,
|
||||||
FormatStyle: file
|
FormatStyle: file
|
||||||
HeaderFilterRegex: '.*'
|
HeaderFilterRegex: '.*'
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
# vim:set ft=yaml ts=2 sw=2 et:
|
||||||
|
# Copyright (C) Markus Franz Xaver Johannes Oberhumer
|
||||||
# for clang-tidy from https://clang.llvm.org/extra/clang-tidy/
|
# for clang-tidy from https://clang.llvm.org/extra/clang-tidy/
|
||||||
---
|
---
|
||||||
Checks: >
|
Checks: >
|
||||||
@@ -5,6 +7,7 @@ Checks: >
|
|||||||
bugprone-*,
|
bugprone-*,
|
||||||
-bugprone-assignment-in-if-condition,
|
-bugprone-assignment-in-if-condition,
|
||||||
-bugprone-branch-clone,
|
-bugprone-branch-clone,
|
||||||
|
-bugprone-casting-through-void,
|
||||||
-bugprone-easily-swappable-parameters,
|
-bugprone-easily-swappable-parameters,
|
||||||
-bugprone-implicit-widening-of-multiplication-result,
|
-bugprone-implicit-widening-of-multiplication-result,
|
||||||
-bugprone-macro-parentheses,
|
-bugprone-macro-parentheses,
|
||||||
@@ -16,7 +19,7 @@ Checks: >
|
|||||||
-clang-analyzer-core.UndefinedBinaryOperatorResult,
|
-clang-analyzer-core.UndefinedBinaryOperatorResult,
|
||||||
-clang-analyzer-deadcode.DeadStores,
|
-clang-analyzer-deadcode.DeadStores,
|
||||||
-clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling,
|
-clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling,
|
||||||
clang-diagnostics-*',
|
clang-diagnostic-*,
|
||||||
performance-*,
|
performance-*,
|
||||||
-performance-no-int-to-ptr,
|
-performance-no-int-to-ptr,
|
||||||
FormatStyle: file
|
FormatStyle: file
|
||||||
|
|||||||
+76
-10
@@ -3,6 +3,15 @@
|
|||||||
# Copyright (C) Markus Franz Xaver Johannes Oberhumer
|
# Copyright (C) Markus Franz Xaver Johannes Oberhumer
|
||||||
#
|
#
|
||||||
|
|
||||||
|
# set USE_STRICT_DEFAULTS
|
||||||
|
if(NOT DEFINED USE_STRICT_DEFAULTS AND IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/.git")
|
||||||
|
include("${CMAKE_CURRENT_SOURCE_DIR}/misc/cmake/use_strict_defaults.cmake" OPTIONAL)
|
||||||
|
endif()
|
||||||
|
if(NOT DEFINED USE_STRICT_DEFAULTS)
|
||||||
|
# use permissive config defaults when building from source code tarball
|
||||||
|
set(USE_STRICT_DEFAULTS FALSE CACHE INTERNAL "" FORCE)
|
||||||
|
endif()
|
||||||
|
|
||||||
#***********************************************************************
|
#***********************************************************************
|
||||||
# macros
|
# macros
|
||||||
#***********************************************************************
|
#***********************************************************************
|
||||||
@@ -56,10 +65,38 @@ macro(upx_apply_build_type)
|
|||||||
endif()
|
endif()
|
||||||
endmacro()
|
endmacro()
|
||||||
|
|
||||||
|
# ternary conditional operator
|
||||||
|
macro(upx_ternary result_var_name condition true_value false_value)
|
||||||
|
if(${condition})
|
||||||
|
set(${result_var_name} "${true_value}")
|
||||||
|
else()
|
||||||
|
set(${result_var_name} "${false_value}")
|
||||||
|
endif()
|
||||||
|
endmacro()
|
||||||
|
|
||||||
#***********************************************************************
|
#***********************************************************************
|
||||||
# util
|
# util
|
||||||
#***********************************************************************
|
#***********************************************************************
|
||||||
|
|
||||||
|
# convert to CMake bool
|
||||||
|
function(upx_make_bool_var result_var_name var_name default_value)
|
||||||
|
set(result "${default_value}")
|
||||||
|
# only query $var_name if it is defined and not empty
|
||||||
|
if(NOT ",${var_name}," STREQUAL ",,")
|
||||||
|
if(DEFINED ${var_name})
|
||||||
|
if(NOT ",${${var_name}}," STREQUAL ",,")
|
||||||
|
set(result "${${var_name}}")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
if(${result})
|
||||||
|
set(result ON)
|
||||||
|
else()
|
||||||
|
set(result OFF)
|
||||||
|
endif()
|
||||||
|
set(${result_var_name} "${result}" PARENT_SCOPE) # return value
|
||||||
|
endfunction()
|
||||||
|
|
||||||
function(upx_print_var) # ARGV
|
function(upx_print_var) # ARGV
|
||||||
foreach(var_name ${ARGV})
|
foreach(var_name ${ARGV})
|
||||||
if(DEFINED ${var_name})
|
if(DEFINED ${var_name})
|
||||||
@@ -76,20 +113,29 @@ function(upx_print_env_var) # ARGV
|
|||||||
foreach(var_name ${ARGV})
|
foreach(var_name ${ARGV})
|
||||||
if(DEFINED ENV{${var_name}})
|
if(DEFINED ENV{${var_name}})
|
||||||
if(NOT ",$ENV{${var_name}}," STREQUAL ",,")
|
if(NOT ",$ENV{${var_name}}," STREQUAL ",,")
|
||||||
message(STATUS "ENV{${var_name}} = $ENV{${var_name}}")
|
message(STATUS "ENV{${var_name}} = '$ENV{${var_name}}'")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
endforeach()
|
endforeach()
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
function(upx_print_have_symbol) # ARGV; needs include(CheckSymbolExists)
|
function(upx_print_have_symbol) # ARGV; needs include(CheckSymbolExists)
|
||||||
|
set(rq "${CMAKE_REQUIRED_QUIET}")
|
||||||
|
set(CMAKE_REQUIRED_QUIET ON)
|
||||||
foreach(symbol ${ARGV})
|
foreach(symbol ${ARGV})
|
||||||
set(cache_var_name "HAVE_symbol_${symbol}")
|
set(cache_var_name "HAVE_symbol_${symbol}")
|
||||||
check_symbol_exists(${symbol} "limits.h;stddef.h;stdint.h" ${cache_var_name})
|
check_symbol_exists("${symbol}" "limits.h;stddef.h;stdint.h" "${cache_var_name}")
|
||||||
if(${cache_var_name})
|
if(${cache_var_name})
|
||||||
message(STATUS "HAVE ${symbol}")
|
message(STATUS "HAVE_symbol ${symbol}")
|
||||||
endif()
|
endif()
|
||||||
endforeach()
|
endforeach()
|
||||||
|
set(CMAKE_REQUIRED_QUIET "${rq}")
|
||||||
|
endfunction()
|
||||||
|
|
||||||
|
# examine compiler configuration
|
||||||
|
function(upx_print_common_symbols)
|
||||||
|
upx_print_have_symbol(__FAST_MATH__)
|
||||||
|
upx_print_have_symbol(__PIC__ __pic__ __PIE__ __pie__)
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
# examine MinGW/Cygwin compiler configuration
|
# examine MinGW/Cygwin compiler configuration
|
||||||
@@ -97,7 +143,7 @@ function(upx_print_mingw_symbols)
|
|||||||
if(WIN32 OR MINGW OR CYGWIN)
|
if(WIN32 OR MINGW OR CYGWIN)
|
||||||
if(CMAKE_C_COMPILER_ID MATCHES "(Clang|GNU)")
|
if(CMAKE_C_COMPILER_ID MATCHES "(Clang|GNU)")
|
||||||
# runtime library: msvcrt vs ucrt vs cygwin
|
# runtime library: msvcrt vs ucrt vs cygwin
|
||||||
upx_print_have_symbol(__CRTDLL__ __CYGWIN__ __CYGWIN32__ __CYGWIN64__ __MINGW32__ __MINGW64__ __MINGW64_VERSION_MAJOR __MSVCRT__ __MSVCRT_VERSION__ _UCRT _WIN32 _WIN64)
|
upx_print_have_symbol(__CRTDLL__ __CYGWIN__ __CYGWIN32__ __CYGWIN64__ __MINGW32__ __MINGW64__ __MINGW64_VERSION_MAJOR __MSVCRT__ __MSVCRT_VERSION__ _UCRT _WIN32 _WIN32_WINNT _WIN64)
|
||||||
# exception handing: SJLJ (setjmp/longjmp) vs DWARF vs SEH
|
# exception handing: SJLJ (setjmp/longjmp) vs DWARF vs SEH
|
||||||
upx_print_have_symbol(__GCC_HAVE_DWARF2_CFI_ASM __SEH__ __USING_SJLJ_EXCEPTIONS__)
|
upx_print_have_symbol(__GCC_HAVE_DWARF2_CFI_ASM __SEH__ __USING_SJLJ_EXCEPTIONS__)
|
||||||
# threads: win32 vs posix/pthread/winpthreads vs mcfgthread
|
# threads: win32 vs posix/pthread/winpthreads vs mcfgthread
|
||||||
@@ -110,7 +156,11 @@ endfunction()
|
|||||||
function(upx_add_glob_files) # ARGV
|
function(upx_add_glob_files) # ARGV
|
||||||
set(var_name ${ARGV0})
|
set(var_name ${ARGV0})
|
||||||
list(REMOVE_AT ARGV 0)
|
list(REMOVE_AT ARGV 0)
|
||||||
|
if(${CMAKE_VERSION} VERSION_LESS "3.3")
|
||||||
file(GLOB files ${ARGV})
|
file(GLOB files ${ARGV})
|
||||||
|
else()
|
||||||
|
file(GLOB files LIST_DIRECTORIES false ${ARGV})
|
||||||
|
endif()
|
||||||
set(result "")
|
set(result "")
|
||||||
if(DEFINED ${var_name})
|
if(DEFINED ${var_name})
|
||||||
set(result "${${var_name}}")
|
set(result "${${var_name}}")
|
||||||
@@ -151,7 +201,7 @@ function(upx_cache_bool_vars) # ARGV
|
|||||||
elseif(DEFINED ${var_name}) # defined via "cmake -DXXX=YYY"
|
elseif(DEFINED ${var_name}) # defined via "cmake -DXXX=YYY"
|
||||||
set(value "${${var_name}}")
|
set(value "${${var_name}}")
|
||||||
elseif(DEFINED ENV{${var_name}}) # check environment
|
elseif(DEFINED ENV{${var_name}}) # check environment
|
||||||
if("$ENV{${var_name}}" MATCHES "^(0|1|OFF|ON|FALSE|TRUE)$")
|
if("$ENV{${var_name}}" MATCHES "^(0|1|OFF|ON|FALSE|TRUE|off|on|false|true)$")
|
||||||
set(value "$ENV{${var_name}}")
|
set(value "$ENV{${var_name}}")
|
||||||
set(UPX_CACHE_ORIGIN_FROM_ENV_${var_name} TRUE CACHE INTERNAL "" FORCE) # for status message below
|
set(UPX_CACHE_ORIGIN_FROM_ENV_${var_name} TRUE CACHE INTERNAL "" FORCE) # for status message below
|
||||||
endif()
|
endif()
|
||||||
@@ -189,7 +239,7 @@ endfunction()
|
|||||||
|
|
||||||
function(upx_internal_add_definitions_with_prefix) # ARGV; needs include(CheckCCompilerFlag)
|
function(upx_internal_add_definitions_with_prefix) # ARGV; needs include(CheckCCompilerFlag)
|
||||||
set(flag_prefix "${ARGV0}")
|
set(flag_prefix "${ARGV0}")
|
||||||
if(flag_prefix MATCHES "^empty$") # need "empty" to work around bug in old CMake versions
|
if("${flag_prefix}" MATCHES "^empty$") # need "empty" to work around bug in old CMake versions
|
||||||
set(flag_prefix "")
|
set(flag_prefix "")
|
||||||
endif()
|
endif()
|
||||||
list(REMOVE_AT ARGV 0)
|
list(REMOVE_AT ARGV 0)
|
||||||
@@ -270,7 +320,7 @@ function(upx_compile_source_debug_with_O2) # ARGV
|
|||||||
# MSVC uses some Debug compilation options like -RTC1 that are incompatible with -O2
|
# MSVC uses some Debug compilation options like -RTC1 that are incompatible with -O2
|
||||||
else()
|
else()
|
||||||
get_source_file_property(prop "${source}" COMPILE_FLAGS)
|
get_source_file_property(prop "${source}" COMPILE_FLAGS)
|
||||||
if(prop MATCHES "^(NOTFOUND)?$")
|
if("${prop}" MATCHES "^(NOTFOUND)?$")
|
||||||
set_source_files_properties("${source}" PROPERTIES COMPILE_FLAGS "${flags}")
|
set_source_files_properties("${source}" PROPERTIES COMPILE_FLAGS "${flags}")
|
||||||
else()
|
else()
|
||||||
set_source_files_properties("${source}" PROPERTIES COMPILE_FLAGS "${prop} ${flags}")
|
set_source_files_properties("${source}" PROPERTIES COMPILE_FLAGS "${prop} ${flags}")
|
||||||
@@ -286,11 +336,17 @@ function(upx_sanitize_target) # ARGV
|
|||||||
# no-op
|
# no-op
|
||||||
elseif(MSVC_FRONTEND)
|
elseif(MSVC_FRONTEND)
|
||||||
# MSVC uses -GS (similar to -fstack-protector) by default
|
# MSVC uses -GS (similar to -fstack-protector) by default
|
||||||
|
elseif(NOT GNU_FRONTEND)
|
||||||
|
# unknown compiler
|
||||||
elseif(MINGW OR CYGWIN)
|
elseif(MINGW OR CYGWIN)
|
||||||
# avoid link errors with current MinGW-w64 versions
|
# avoid link errors with current MinGW-w64 versions
|
||||||
# see https://www.mingw-w64.org/contribute/#sanitizers-asan-tsan-usan
|
# see https://www.mingw-w64.org/contribute/#sanitizers-asan-tsan-usan
|
||||||
|
elseif(CMAKE_C_COMPILER_ID MATCHES "^Clang$" AND CMAKE_C_COMPILER_VERSION VERSION_LESS "9.0")
|
||||||
|
# unreliable/broken sanitize implementation before clang-9 (Sep 2019)
|
||||||
|
message(WARNING "WARNING: ignoring SANITIZE for target '${t}'")
|
||||||
elseif(CMAKE_C_COMPILER_ID MATCHES "^GNU" AND CMAKE_C_COMPILER_VERSION VERSION_LESS "8.0")
|
elseif(CMAKE_C_COMPILER_ID MATCHES "^GNU" AND CMAKE_C_COMPILER_VERSION VERSION_LESS "8.0")
|
||||||
# unsupported compiler; unreliable/broken sanitize implementation
|
# unsupported compiler; unreliable/broken sanitize implementation before gcc-8 (May 2018)
|
||||||
|
message(WARNING "WARNING: ignoring SANITIZE for target '${t}'")
|
||||||
else()
|
else()
|
||||||
# default sanitizer for Debug builds
|
# default sanitizer for Debug builds
|
||||||
target_compile_options(${t} PRIVATE $<$<CONFIG:Debug>:-fsanitize=undefined -fsanitize-undefined-trap-on-error -fstack-protector-all>)
|
target_compile_options(${t} PRIVATE $<$<CONFIG:Debug>:-fsanitize=undefined -fsanitize-undefined-trap-on-error -fstack-protector-all>)
|
||||||
@@ -306,11 +362,21 @@ endfunction()
|
|||||||
# test
|
# test
|
||||||
#***********************************************************************
|
#***********************************************************************
|
||||||
|
|
||||||
function(upx_add_serial_test) # ARGV
|
function(upx_add_test) # ARGV
|
||||||
set(name "${ARGV0}")
|
set(name "${ARGV0}")
|
||||||
list(REMOVE_AT ARGV 0)
|
list(REMOVE_AT ARGV 0)
|
||||||
add_test(NAME "${name}" COMMAND ${ARGV})
|
add_test(NAME "${name}" COMMAND ${ARGV})
|
||||||
set_tests_properties("${name}" PROPERTIES RUN_SERIAL TRUE) # run these tests sequentially
|
endfunction()
|
||||||
|
|
||||||
|
function(upx_test_depends) # ARGV
|
||||||
|
set(name "${ARGV0}")
|
||||||
|
list(REMOVE_AT ARGV 0)
|
||||||
|
get_property(prop TEST "${name}" PROPERTY DEPENDS)
|
||||||
|
if("${prop}" MATCHES "^(NOTFOUND)?$")
|
||||||
|
set_tests_properties("${name}" PROPERTIES DEPENDS "${ARGV}")
|
||||||
|
else()
|
||||||
|
set_tests_properties("${name}" PROPERTIES DEPENDS "${prop};${ARGV}")
|
||||||
|
endif()
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
# vim:set ft=cmake ts=4 sw=4 tw=0 et:
|
# vim:set ft=cmake ts=4 sw=4 tw=0 et:
|
||||||
|
|||||||
@@ -0,0 +1,48 @@
|
|||||||
|
#
|
||||||
|
# UPX "CMake" build file; see https://cmake.org/
|
||||||
|
# Copyright (C) Markus Franz Xaver Johannes Oberhumer
|
||||||
|
#
|
||||||
|
|
||||||
|
#***********************************************************************
|
||||||
|
# summary section
|
||||||
|
# print some info about the build configuration
|
||||||
|
#***********************************************************************
|
||||||
|
|
||||||
|
# generator
|
||||||
|
upx_print_var(CMAKE_GENERATOR_TOOLSET CMAKE_GENERATOR_PLATFORM)
|
||||||
|
|
||||||
|
# directories
|
||||||
|
if(NOT ",${CMAKE_BINARY_DIR}," STREQUAL ",${CMAKE_CURRENT_BINARY_DIR}," OR NOT ",${CMAKE_SOURCE_DIR}," STREQUAL ",${CMAKE_CURRENT_SOURCE_DIR},")
|
||||||
|
upx_print_var(CMAKE_BINARY_DIR CMAKE_SOURCE_DIR CMAKE_CURRENT_BINARY_DIR CMAKE_CURRENT_SOURCE_DIR)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# system
|
||||||
|
upx_print_var(CMAKE_HOST_SYSTEM_NAME CMAKE_HOST_SYSTEM_VERSION CMAKE_HOST_SYSTEM_PROCESSOR)
|
||||||
|
upx_print_var(CMAKE_SYSTEM_NAME CMAKE_SYSTEM_VERSION CMAKE_SYSTEM_PROCESSOR)
|
||||||
|
upx_print_var(CMAKE_ANDROID_NDK CMAKE_ANDROID_NDK_VERSION CMAKE_ANDROID_STANDALONE_TOOLCHAIN)
|
||||||
|
upx_print_var(CMAKE_APPLE_SILICON_PROCESSOR CMAKE_OSX_DEPLOYMENT_TARGET CMAKE_OSX_SYSROOT)
|
||||||
|
upx_print_Var(CMAKE_CROSSCOMPILING CMAKE_CROSSCOMPILING_EMULATOR)
|
||||||
|
|
||||||
|
# binutils
|
||||||
|
upx_print_var(CMAKE_AR CMAKE_RANLIB)
|
||||||
|
|
||||||
|
# compilers
|
||||||
|
foreach(lang IN ITEMS ASM C CXX)
|
||||||
|
upx_print_var(CMAKE_${lang}_COMPILER_LAUNCHER)
|
||||||
|
upx_print_var(CMAKE_${lang}_COMPILER)
|
||||||
|
upx_print_var(CMAKE_${lang}_COMPILER_ID)
|
||||||
|
upx_print_var(CMAKE_${lang}_COMPILER_VERSION)
|
||||||
|
upx_print_var(CMAKE_${lang}_COMPILER_FRONTEND_VARIANT )
|
||||||
|
upx_print_var(CMAKE_${lang}_COMPILER_ARCHITECTURE_ID)
|
||||||
|
upx_print_var(CMAKE_${lang}_PLATFORM_ID)
|
||||||
|
upx_print_var(CMAKE_${lang}_COMPILER_ABI)
|
||||||
|
upx_print_var(CMAKE_${lang}_COMPILER_TARGET)
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
# misc
|
||||||
|
upx_print_var(CMAKE_INTERPROCEDURAL_OPTIMIZATION CMAKE_POSITION_INDEPENDENT_CODE)
|
||||||
|
|
||||||
|
# shortcuts
|
||||||
|
upx_print_var(APPLE CLANG CYGWIN GNU_FRONTEND GNUC MINGW MSVC MSVC_FRONTEND MSVC_IDE MSVC_TOOLSET_VERSION MSVC_VERSION MSYS UNIX WIN32 WIN64)
|
||||||
|
|
||||||
|
# vim:set ft=cmake ts=4 sw=4 tw=0 et:
|
||||||
@@ -0,0 +1,148 @@
|
|||||||
|
#
|
||||||
|
# UPX "CMake" build file; see https://cmake.org/
|
||||||
|
# Copyright (C) Markus Franz Xaver Johannes Oberhumer
|
||||||
|
#
|
||||||
|
|
||||||
|
#***********************************************************************
|
||||||
|
# test section: self-pack tests
|
||||||
|
#
|
||||||
|
# IMPORTANT NOTE: these tests can only work if the host executable format
|
||||||
|
# is supported by UPX!
|
||||||
|
#***********************************************************************
|
||||||
|
|
||||||
|
set(emu "")
|
||||||
|
if(DEFINED CMAKE_CROSSCOMPILING_EMULATOR)
|
||||||
|
set(emu "${CMAKE_CROSSCOMPILING_EMULATOR}")
|
||||||
|
endif()
|
||||||
|
set(exe "${CMAKE_EXECUTABLE_SUFFIX}")
|
||||||
|
set(upx_self_exe "$<TARGET_FILE:upx>")
|
||||||
|
set(fo "--force-overwrite")
|
||||||
|
|
||||||
|
#
|
||||||
|
# basic tests
|
||||||
|
#
|
||||||
|
|
||||||
|
upx_add_test(upx-self-pack upx -3 "${upx_self_exe}" ${fo} -o upx-packed${exe})
|
||||||
|
upx_add_test(upx-self-pack-fa upx -3 --all-filters "${upx_self_exe}" ${fo} -o upx-packed-fa${exe})
|
||||||
|
upx_add_test(upx-self-pack-fn upx -3 --no-filter "${upx_self_exe}" ${fo} -o upx-packed-fn${exe})
|
||||||
|
upx_add_test(upx-self-pack-fr upx -3 --all-filters --debug-use-random-filter "${upx_self_exe}" ${fo} -o upx-packed-fr${exe})
|
||||||
|
upx_add_test(upx-self-pack-nrv2b upx -3 --nrv2b "${upx_self_exe}" ${fo} -o upx-packed-nrv2b${exe})
|
||||||
|
upx_add_test(upx-self-pack-nrv2d upx -3 --nrv2d "${upx_self_exe}" ${fo} -o upx-packed-nrv2d${exe})
|
||||||
|
upx_add_test(upx-self-pack-nrv2e upx -3 --nrv2e "${upx_self_exe}" ${fo} -o upx-packed-nrv2e${exe})
|
||||||
|
upx_add_test(upx-self-pack-lzma upx -1 --lzma "${upx_self_exe}" ${fo} -o upx-packed-lzma${exe})
|
||||||
|
|
||||||
|
upx_add_test(upx-list upx -l upx-packed${exe} upx-packed-fa${exe} upx-packed-fn${exe} upx-packed-fr${exe} upx-packed-nrv2b${exe} upx-packed-nrv2d${exe} upx-packed-nrv2e${exe} upx-packed-lzma${exe})
|
||||||
|
upx_add_test(upx-fileinfo upx --fileinfo upx-packed${exe} upx-packed-fa${exe} upx-packed-fn${exe} upx-packed-fr${exe} upx-packed-nrv2b${exe} upx-packed-nrv2d${exe} upx-packed-nrv2e${exe} upx-packed-lzma${exe})
|
||||||
|
upx_add_test(upx-test upx -t upx-packed${exe} upx-packed-fa${exe} upx-packed-fn${exe} upx-packed-fr${exe} upx-packed-nrv2b${exe} upx-packed-nrv2d${exe} upx-packed-nrv2e${exe} upx-packed-lzma${exe})
|
||||||
|
|
||||||
|
upx_add_test(upx-unpack upx -d upx-packed${exe} ${fo} -o upx-unpacked${exe})
|
||||||
|
upx_add_test(upx-unpack-fa upx -d upx-packed-fa${exe} ${fo} -o upx-unpacked-fa${exe})
|
||||||
|
upx_add_test(upx-unpack-fn upx -d upx-packed-fn${exe} ${fo} -o upx-unpacked-fn${exe})
|
||||||
|
upx_add_test(upx-unpack-fr upx -d upx-packed-fr${exe} ${fo} -o upx-unpacked-fr${exe})
|
||||||
|
upx_add_test(upx-unpack-nrv2b upx -d upx-packed-nrv2b${exe} ${fo} -o upx-unpacked-nrv2b${exe})
|
||||||
|
upx_add_test(upx-unpack-nrv2d upx -d upx-packed-nrv2d${exe} ${fo} -o upx-unpacked-nrv2d${exe})
|
||||||
|
upx_add_test(upx-unpack-nrv2e upx -d upx-packed-nrv2e${exe} ${fo} -o upx-unpacked-nrv2e${exe})
|
||||||
|
upx_add_test(upx-unpack-lzma upx -d upx-packed-lzma${exe} ${fo} -o upx-unpacked-lzma${exe})
|
||||||
|
|
||||||
|
# all unpacked files must be identical
|
||||||
|
upx_add_test(upx-compare-fa "${CMAKE_COMMAND}" -E compare_files upx-unpacked${exe} upx-unpacked-fa${exe})
|
||||||
|
upx_add_test(upx-compare-fn "${CMAKE_COMMAND}" -E compare_files upx-unpacked${exe} upx-unpacked-fn${exe})
|
||||||
|
upx_add_test(upx-compare-fr "${CMAKE_COMMAND}" -E compare_files upx-unpacked${exe} upx-unpacked-fr${exe})
|
||||||
|
upx_add_test(upx-compare-nrv2b "${CMAKE_COMMAND}" -E compare_files upx-unpacked${exe} upx-unpacked-nrv2b${exe})
|
||||||
|
upx_add_test(upx-compare-nrv2d "${CMAKE_COMMAND}" -E compare_files upx-unpacked${exe} upx-unpacked-nrv2d${exe})
|
||||||
|
upx_add_test(upx-compare-nrv2e "${CMAKE_COMMAND}" -E compare_files upx-unpacked${exe} upx-unpacked-nrv2e${exe})
|
||||||
|
upx_add_test(upx-compare-lzma "${CMAKE_COMMAND}" -E compare_files upx-unpacked${exe} upx-unpacked-lzma${exe})
|
||||||
|
|
||||||
|
# test dependencies
|
||||||
|
upx_test_depends(upx-list "upx-self-pack;upx-self-pack-fa;upx-self-pack-fn;upx-self-pack-fr;upx-self-pack-nrv2b;upx-self-pack-nrv2d;upx-self-pack-nrv2e;upx-self-pack-lzma")
|
||||||
|
upx_test_depends(upx-fileinfo "upx-self-pack;upx-self-pack-fa;upx-self-pack-fn;upx-self-pack-fr;upx-self-pack-nrv2b;upx-self-pack-nrv2d;upx-self-pack-nrv2e;upx-self-pack-lzma")
|
||||||
|
upx_test_depends(upx-test "upx-self-pack;upx-self-pack-fa;upx-self-pack-fn;upx-self-pack-fr;upx-self-pack-nrv2b;upx-self-pack-nrv2d;upx-self-pack-nrv2e;upx-self-pack-lzma")
|
||||||
|
upx_test_depends(upx-unpack upx-self-pack)
|
||||||
|
upx_test_depends(upx-unpack-fa upx-self-pack-fa)
|
||||||
|
upx_test_depends(upx-unpack-fn upx-self-pack-fn)
|
||||||
|
upx_test_depends(upx-unpack-fr upx-self-pack-fr)
|
||||||
|
upx_test_depends(upx-unpack-nrv2b upx-self-pack-nrv2b)
|
||||||
|
upx_test_depends(upx-unpack-nrv2d upx-self-pack-nrv2d)
|
||||||
|
upx_test_depends(upx-unpack-nrv2e upx-self-pack-nrv2e)
|
||||||
|
upx_test_depends(upx-unpack-lzma upx-self-pack-lzma)
|
||||||
|
upx_test_depends(upx-compare-fa "upx-unpack;upx-unpack-fa")
|
||||||
|
upx_test_depends(upx-compare-fn "upx-unpack;upx-unpack-fn")
|
||||||
|
upx_test_depends(upx-compare-fr "upx-unpack;upx-unpack-fr")
|
||||||
|
upx_test_depends(upx-compare-nrv2b "upx-unpack;upx-unpack-nrv2b")
|
||||||
|
upx_test_depends(upx-compare-nrv2d "upx-unpack;upx-unpack-nrv2d")
|
||||||
|
upx_test_depends(upx-compare-nrv2e "upx-unpack;upx-unpack-nrv2e")
|
||||||
|
upx_test_depends(upx-compare-lzma "upx-unpack;upx-unpack-lzma")
|
||||||
|
# tests with higher COST values will run first
|
||||||
|
set_tests_properties(upx-self-pack PROPERTIES COST 90)
|
||||||
|
set_tests_properties(upx-self-pack-fa PROPERTIES COST 20)
|
||||||
|
set_tests_properties(upx-self-pack-fn PROPERTIES COST 20)
|
||||||
|
set_tests_properties(upx-self-pack-fr PROPERTIES COST 20)
|
||||||
|
set_tests_properties(upx-self-pack-nrv2b PROPERTIES COST 20)
|
||||||
|
set_tests_properties(upx-self-pack-nrv2d PROPERTIES COST 20)
|
||||||
|
set_tests_properties(upx-self-pack-nrv2e PROPERTIES COST 20)
|
||||||
|
set_tests_properties(upx-self-pack-lzma PROPERTIES COST 30)
|
||||||
|
set_tests_properties(upx-unpack PROPERTIES COST 10)
|
||||||
|
|
||||||
|
if(NOT UPX_CONFIG_DISABLE_RUN_UNPACKED_TEST)
|
||||||
|
upx_add_test(upx-run-unpacked ${emu} ./upx-unpacked${exe} --version-short)
|
||||||
|
upx_test_depends(upx-run-unpacked upx-unpack)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(NOT UPX_CONFIG_DISABLE_RUN_PACKED_TEST)
|
||||||
|
upx_add_test(upx-run-packed ${emu} ./upx-packed${exe} --version-short)
|
||||||
|
upx_add_test(upx-run-packed-fa ${emu} ./upx-packed-fa${exe} --version-short)
|
||||||
|
upx_add_test(upx-run-packed-fn ${emu} ./upx-packed-fn${exe} --version-short)
|
||||||
|
upx_add_test(upx-run-packed-fr ${emu} ./upx-packed-fr${exe} --version-short)
|
||||||
|
upx_add_test(upx-run-packed-nrv2b ${emu} ./upx-packed-nrv2b${exe} --version-short)
|
||||||
|
upx_add_test(upx-run-packed-nrv2d ${emu} ./upx-packed-nrv2d${exe} --version-short)
|
||||||
|
upx_add_test(upx-run-packed-nrv2e ${emu} ./upx-packed-nrv2e${exe} --version-short)
|
||||||
|
upx_add_test(upx-run-packed-lzma ${emu} ./upx-packed-lzma${exe} --version-short)
|
||||||
|
upx_test_depends(upx-run-packed upx-self-pack)
|
||||||
|
upx_test_depends(upx-run-packed-fa upx-self-pack-fa)
|
||||||
|
upx_test_depends(upx-run-packed-fn upx-self-pack-fn)
|
||||||
|
upx_test_depends(upx-run-packed-fr upx-self-pack-fr)
|
||||||
|
upx_test_depends(upx-run-packed-nrv2b upx-self-pack-nrv2b)
|
||||||
|
upx_test_depends(upx-run-packed-nrv2d upx-self-pack-nrv2d)
|
||||||
|
upx_test_depends(upx-run-packed-nrv2e upx-self-pack-nrv2e)
|
||||||
|
upx_test_depends(upx-run-packed-lzma upx-self-pack-lzma)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
#
|
||||||
|
# exhaustive tests
|
||||||
|
#
|
||||||
|
|
||||||
|
if(NOT UPX_CONFIG_DISABLE_EXHAUSTIVE_TESTS)
|
||||||
|
foreach(method IN ITEMS nrv2b nrv2d nrv2e lzma)
|
||||||
|
foreach(level IN ITEMS 1 2 3 4 5 6 7)
|
||||||
|
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})
|
||||||
|
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-test-${s} upx -t upx-packed-${s}${exe})
|
||||||
|
upx_add_test(upx-unpack-${s} upx -d upx-packed-${s}${exe} ${fo} -o upx-unpacked-${s}${exe})
|
||||||
|
upx_add_test(upx-compare-${s} "${CMAKE_COMMAND}" -E compare_files upx-unpacked${exe} upx-unpacked-${s}${exe})
|
||||||
|
upx_test_depends(upx-list-${s} upx-self-pack-${s})
|
||||||
|
upx_test_depends(upx-fileinfo-${s} upx-self-pack-${s})
|
||||||
|
upx_test_depends(upx-test-${s} upx-self-pack-${s})
|
||||||
|
upx_test_depends(upx-unpack-${s} upx-self-pack-${s})
|
||||||
|
upx_test_depends(upx-compare-${s} "upx-unpack;upx-unpack-${s}")
|
||||||
|
if(method MATCHES "lzma")
|
||||||
|
set_tests_properties(upx-self-pack-${s} PROPERTIES COST "3${level}")
|
||||||
|
else()
|
||||||
|
set_tests_properties(upx-self-pack-${s} PROPERTIES COST "2${level}")
|
||||||
|
endif()
|
||||||
|
if(NOT UPX_CONFIG_DISABLE_RUN_PACKED_TEST)
|
||||||
|
upx_add_test(upx-run-packed-${s} ${emu} ./upx-packed-${s}${exe} --version-short)
|
||||||
|
upx_test_depends(upx-run-packed-${s} upx-self-pack-${s})
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
endforeach()
|
||||||
|
endif () # UPX_CONFIG_DISABLE_EXHAUSTIVE_TESTS
|
||||||
|
|
||||||
|
# clean up
|
||||||
|
set(emu "")
|
||||||
|
set(exe "")
|
||||||
|
set(upx_self_exe "")
|
||||||
|
set(fo "")
|
||||||
|
|
||||||
|
# vim:set ft=cmake ts=4 sw=4 tw=0 et:
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
// Copyright (C) Markus Franz Xaver Johannes Oberhumer
|
||||||
|
|
||||||
|
#include <stddef.h>
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
|
// check ABI - require proper alignment of fundamental types for use in atomics
|
||||||
|
static_assert(alignof(char) == sizeof(char), "");
|
||||||
|
static_assert(alignof(signed char) == sizeof(signed char), "");
|
||||||
|
static_assert(alignof(unsigned char) == sizeof(unsigned char), "");
|
||||||
|
static_assert(alignof(short) == sizeof(short), "");
|
||||||
|
static_assert(alignof(unsigned short) == sizeof(unsigned short), "");
|
||||||
|
static_assert(alignof(int) == sizeof(int), "");
|
||||||
|
static_assert(alignof(unsigned int) == sizeof(unsigned int), "");
|
||||||
|
static_assert(alignof(long) == sizeof(long), "");
|
||||||
|
static_assert(alignof(unsigned long) == sizeof(unsigned long), "");
|
||||||
|
static_assert(alignof(ptrdiff_t) == sizeof(ptrdiff_t), "");
|
||||||
|
static_assert(alignof(size_t) == sizeof(size_t), "");
|
||||||
|
static_assert(alignof(intptr_t) == sizeof(intptr_t), "");
|
||||||
|
static_assert(alignof(uintptr_t) == sizeof(uintptr_t), "");
|
||||||
|
static_assert(alignof(void *) == sizeof(void *), "");
|
||||||
|
|
||||||
|
int main() { return 0; }
|
||||||
+62
-66
@@ -6,32 +6,30 @@
|
|||||||
ifeq ($(UPX_MAKEFILE_EXTRA_MK_INCLUDED),)
|
ifeq ($(UPX_MAKEFILE_EXTRA_MK_INCLUDED),)
|
||||||
override UPX_MAKEFILE_EXTRA_MK_INCLUDED := 1
|
override UPX_MAKEFILE_EXTRA_MK_INCLUDED := 1
|
||||||
|
|
||||||
|
#***********************************************************************
|
||||||
|
# support functions
|
||||||
|
#***********************************************************************
|
||||||
|
|
||||||
override check_defined = $(foreach 1,$1,$(if $(filter undefined,$(origin $1)),$(error ERROR: variable '$1' is not defined),))
|
override check_defined = $(foreach 1,$1,$(if $(filter undefined,$(origin $1)),$(error ERROR: variable '$1' is not defined),))
|
||||||
override check_undefined = $(foreach 1,$1,$(if $(filter undefined,$(origin $1)),,$(error ERROR: variable '$1' is already defined)))
|
override check_undefined = $(foreach 1,$1,$(if $(filter undefined,$(origin $1)),,$(error ERROR: variable '$1' is already defined)))
|
||||||
$(call check_defined,run_config run_build)
|
|
||||||
$(call check_undefined,run_config_and_build)
|
|
||||||
|
|
||||||
#***********************************************************************
|
# return "1" or empty-string
|
||||||
# build and test
|
override eq = $(if $(subst x$1,,x$2)$(subst x$2,,x$1),,1)
|
||||||
#***********************************************************************
|
override ne = $(if $(subst x$1,,x$2)$(subst x$2,,x$1),1,)
|
||||||
|
|
||||||
CTEST = ctest
|
override tolower = $(subst A,a,$(subst B,b,$(subst C,c,$(subst D,d,$(subst E,e,$(subst F,f,$(subst G,g,$(subst H,h,$(subst I,i,$(subst J,j,$(subst K,k,$(subst L,l,$(subst M,m,$(subst N,n,$(subst O,o,$(subst P,p,$(subst Q,q,$(subst R,r,$(subst S,s,$(subst T,t,$(subst U,u,$(subst V,v,$(subst W,w,$(subst X,x,$(subst Y,y,$(subst Z,z,$1))))))))))))))))))))))))))
|
||||||
|
override toupper = $(subst a,A,$(subst b,B,$(subst c,C,$(subst d,D,$(subst e,E,$(subst f,F,$(subst g,G,$(subst h,H,$(subst i,I,$(subst j,J,$(subst k,K,$(subst l,L,$(subst m,M,$(subst n,N,$(subst o,O,$(subst p,P,$(subst q,Q,$(subst r,R,$(subst s,S,$(subst t,T,$(subst u,U,$(subst v,V,$(subst w,W,$(subst x,X,$(subst y,Y,$(subst z,Z,$1))))))))))))))))))))))))))
|
||||||
|
|
||||||
build/debug+test: $$(dir $$@)debug PHONY; cd "$(dir $@)debug" && $(CTEST)
|
# canonicalize case of CMAKE_BUILD_TYPE to "Debug" and "Release"
|
||||||
build/%/debug+test: $$(dir $$@)debug PHONY; cd "$(dir $@)debug" && $(CTEST)
|
override cm_build_type = $(if $(call eq,$1,),$(error EMPTY-build-type),$(if $(call eq,$(call tolower,$1),debug),Debug,$(if $(call eq,$(call tolower,$1),release),Release,$(if $(call eq,$(call tolower,$1),none),None,$1))))
|
||||||
build/release+test: $$(dir $$@)release PHONY; cd "$(dir $@)release" && $(CTEST)
|
|
||||||
build/%/release+test: $$(dir $$@)release PHONY; cd "$(dir $@)release" && $(CTEST)
|
|
||||||
build/%/all+test: $$(dir $$@)debug+test $$(dir $$@)release+test PHONY ;
|
|
||||||
|
|
||||||
# shortcuts
|
|
||||||
debug+test: build/debug+test PHONY
|
|
||||||
release+test: build/release+test PHONY
|
|
||||||
all+test build/all+test: build/debug+test build/release+test PHONY
|
|
||||||
|
|
||||||
#***********************************************************************
|
#***********************************************************************
|
||||||
# extra builds: some pre-defined build configurations
|
# extra builds: some pre-defined build configurations
|
||||||
#***********************************************************************
|
#***********************************************************************
|
||||||
|
|
||||||
|
$(call check_defined,run_config run_build)
|
||||||
|
$(call check_undefined,run_config_and_build)
|
||||||
|
|
||||||
define run_config_and_build
|
define run_config_and_build
|
||||||
$(call run_config,$1,$2)
|
$(call run_config,$1,$2)
|
||||||
$(call run_build,$1,$2)
|
$(call run_build,$1,$2)
|
||||||
@@ -185,7 +183,7 @@ build/extra/cross-windows-mingw64/%: export CC = x86_64-w64-mingw32-gcc -static
|
|||||||
build/extra/cross-windows-mingw64/%: export CXX = x86_64-w64-mingw32-g++ -static -D_WIN32_WINNT=0x0501
|
build/extra/cross-windows-mingw64/%: export CXX = x86_64-w64-mingw32-g++ -static -D_WIN32_WINNT=0x0501
|
||||||
build/extra/cross-windows-mingw64/%: CMAKE_SYSTEM_NAME ?= Windows
|
build/extra/cross-windows-mingw64/%: CMAKE_SYSTEM_NAME ?= Windows
|
||||||
build/extra/cross-windows-mingw64/%: CMAKE_SYSTEM_PROCESSOR ?= AMD64
|
build/extra/cross-windows-mingw64/%: CMAKE_SYSTEM_PROCESSOR ?= AMD64
|
||||||
build/extra/cross-windows-mingw64/%: CMAKE_CROSSCOMPILING_EMULATOR ?= wine64
|
build/extra/cross-windows-mingw64/%: CMAKE_CROSSCOMPILING_EMULATOR ?= wine
|
||||||
|
|
||||||
# cross compiler: macOS arm64 (aarch64)
|
# cross compiler: macOS arm64 (aarch64)
|
||||||
build/extra/cross-darwin-arm64/debug: PHONY; $(call run_config_and_build,$@,Debug)
|
build/extra/cross-darwin-arm64/debug: PHONY; $(call run_config_and_build,$@,Debug)
|
||||||
@@ -215,19 +213,20 @@ build/analyze/clang-analyzer/%: override CMAKE := $(SCAN_BUILD) $(CMAKE)
|
|||||||
build/analyze/clang-analyzer/%: export CCC_CC ?= clang
|
build/analyze/clang-analyzer/%: export CCC_CC ?= clang
|
||||||
build/analyze/clang-analyzer/%: export CCC_CXX ?= clang++
|
build/analyze/clang-analyzer/%: export CCC_CXX ?= clang++
|
||||||
|
|
||||||
# run clang-tidy: uses file compile_commands.json from an existing clang build
|
# run clang-tidy: uses file compile_commands.json from an existing clang build;
|
||||||
# does not create any actual files, so purely PHONY
|
# does not create any actual files, so purely PHONY
|
||||||
|
CLANG_TIDY_BUILD_BASE = build/extra/clang
|
||||||
RUN_CLANG_TIDY = time python3 ./misc/analyze/clang-tidy/run-clang-tidy.py -p $<
|
RUN_CLANG_TIDY = time python3 ./misc/analyze/clang-tidy/run-clang-tidy.py -p $<
|
||||||
RUN_CLANG_TIDY_WERROR = $(RUN_CLANG_TIDY) '-warnings-as-errors=*'
|
RUN_CLANG_TIDY_WERROR = $(RUN_CLANG_TIDY) '-warnings-as-errors=*'
|
||||||
build/analyze/clang-tidy-upx/debug build/analyze/clang-tidy-upx/release: build/extra/clang/$$(notdir $$@) PHONY
|
build/analyze/clang-tidy-upx/debug build/analyze/clang-tidy-upx/release: $$(CLANG_TIDY_BUILD_BASE)/$$(notdir $$@) PHONY
|
||||||
$(RUN_CLANG_TIDY_WERROR) -config-file ./.clang-tidy '/src/.*\.cpp'
|
$(RUN_CLANG_TIDY_WERROR) -config-file ./.clang-tidy '/src/.*\.cpp'
|
||||||
build/analyze/clang-tidy-bzip2/debug build/analyze/clang-tidy-bzip2/release: build/extra/clang/$$(notdir $$@) PHONY
|
build/analyze/clang-tidy-bzip2/debug build/analyze/clang-tidy-bzip2/release: $$(CLANG_TIDY_BUILD_BASE)/$$(notdir $$@) PHONY
|
||||||
$(RUN_CLANG_TIDY) -config-file ./misc/analyze/clang-tidy/clang-tidy-bzip2.yml /vendor/bzip2/
|
$(RUN_CLANG_TIDY) -config-file ./misc/analyze/clang-tidy/clang-tidy-bzip2.yml /vendor/bzip2/
|
||||||
build/analyze/clang-tidy-ucl/debug build/analyze/clang-tidy-ucl/release: build/extra/clang/$$(notdir $$@) PHONY
|
build/analyze/clang-tidy-ucl/debug build/analyze/clang-tidy-ucl/release: $$(CLANG_TIDY_BUILD_BASE)/$$(notdir $$@) PHONY
|
||||||
$(RUN_CLANG_TIDY_WERROR) -config-file ./misc/analyze/clang-tidy/clang-tidy-ucl.yml /vendor/ucl/
|
$(RUN_CLANG_TIDY_WERROR) -config-file ./misc/analyze/clang-tidy/clang-tidy-ucl.yml /vendor/ucl/
|
||||||
build/analyze/clang-tidy-zlib/debug build/analyze/clang-tidy-zlib/release: build/extra/clang/$$(notdir $$@) PHONY
|
build/analyze/clang-tidy-zlib/debug build/analyze/clang-tidy-zlib/release: $$(CLANG_TIDY_BUILD_BASE)/$$(notdir $$@) PHONY
|
||||||
$(RUN_CLANG_TIDY_WERROR) -config-file ./misc/analyze/clang-tidy/clang-tidy-zlib.yml /vendor/zlib/
|
$(RUN_CLANG_TIDY) -config-file ./misc/analyze/clang-tidy/clang-tidy-zlib.yml /vendor/zlib/
|
||||||
build/analyze/clang-tidy-zstd/debug build/analyze/clang-tidy-zstd/release: build/extra/clang/$$(notdir $$@) PHONY
|
build/analyze/clang-tidy-zstd/debug build/analyze/clang-tidy-zstd/release: $$(CLANG_TIDY_BUILD_BASE)/$$(notdir $$@) PHONY
|
||||||
$(RUN_CLANG_TIDY) -config-file ./misc/analyze/clang-tidy/clang-tidy-zstd.yml /vendor/zstd/
|
$(RUN_CLANG_TIDY) -config-file ./misc/analyze/clang-tidy/clang-tidy-zstd.yml /vendor/zstd/
|
||||||
build/analyze/clang-tidy/debug build/analyze/clang-tidy/release: build/analyze/clang-tidy-upx/$$(notdir $$@)
|
build/analyze/clang-tidy/debug build/analyze/clang-tidy/release: build/analyze/clang-tidy-upx/$$(notdir $$@)
|
||||||
build/analyze/clang-tidy/debug build/analyze/clang-tidy/release: build/analyze/clang-tidy-bzip2/$$(notdir $$@)
|
build/analyze/clang-tidy/debug build/analyze/clang-tidy/release: build/analyze/clang-tidy-bzip2/$$(notdir $$@)
|
||||||
@@ -236,8 +235,8 @@ build/analyze/clang-tidy/debug build/analyze/clang-tidy/release: build/analyze/c
|
|||||||
build/analyze/clang-tidy/debug build/analyze/clang-tidy/release: build/analyze/clang-tidy-zstd/$$(notdir $$@)
|
build/analyze/clang-tidy/debug build/analyze/clang-tidy/release: build/analyze/clang-tidy-zstd/$$(notdir $$@)
|
||||||
|
|
||||||
# OLD names [deprecated]
|
# OLD names [deprecated]
|
||||||
build/extra/scan-build/debug: build/analyze/clang-analyzer/debug
|
build/extra/scan-build/debug: build/analyze/clang-analyzer/debug PHONY
|
||||||
build/extra/scan-build/release: build/analyze/clang-analyzer/release
|
build/extra/scan-build/release: build/analyze/clang-analyzer/release PHONY
|
||||||
|
|
||||||
#***********************************************************************
|
#***********************************************************************
|
||||||
# advanced: generic eXtra target
|
# advanced: generic eXtra target
|
||||||
@@ -277,49 +276,46 @@ endif
|
|||||||
# it easy to set other variables like CMAKE_AR or CMAKE_RANLIB
|
# it easy to set other variables like CMAKE_AR or CMAKE_RANLIB
|
||||||
#***********************************************************************
|
#***********************************************************************
|
||||||
|
|
||||||
ifneq ($(origin UPX_CMAKE_CONFIG_FLAGS),command line) # GNU make bug work-around
|
|
||||||
# GNU make bug, see https://savannah.gnu.org/bugs/index.php?64822
|
|
||||||
# and commit https://git.savannah.gnu.org/cgit/make.git/commit/?id=07187db947ba25e6c59b55f10660a04f8e9c5229
|
|
||||||
|
|
||||||
$(call check_undefined,__add_cmake_config)
|
$(call check_undefined,__add_cmake_config)
|
||||||
|
# promote an environment or Make variable to a CMake cache entry:
|
||||||
__add_cmake_config = $(and $($1),-D$1="$($1)")
|
__add_cmake_config = $(and $($1),-D$1="$($1)")
|
||||||
# pass common CMake settings from environment/make to cmake
|
|
||||||
build/%: UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,CMAKE_VERBOSE_MAKEFILE)
|
|
||||||
# pass common CMake toolchain settings from environment/make to cmake
|
|
||||||
build/%: UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,CMAKE_ADDR2LINE)
|
|
||||||
build/%: UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,CMAKE_AR)
|
|
||||||
build/%: UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,CMAKE_DLLTOOL)
|
|
||||||
build/%: UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,CMAKE_LINKER)
|
|
||||||
build/%: UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,CMAKE_NM)
|
|
||||||
build/%: UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,CMAKE_OBJCOPY)
|
|
||||||
build/%: UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,CMAKE_OBJDUMP)
|
|
||||||
build/%: UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,CMAKE_RANLIB)
|
|
||||||
build/%: UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,CMAKE_READELF)
|
|
||||||
build/%: UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,CMAKE_STRIP)
|
|
||||||
build/%: UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,CMAKE_TAPI)
|
|
||||||
# pass common CMake LTO toolchain settings from environment/make to cmake (for use with "-flto")
|
|
||||||
build/%: UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,CMAKE_C_COMPILER_AR)
|
|
||||||
build/%: UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,CMAKE_C_COMPILER_RANLIB)
|
|
||||||
build/%: UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,CMAKE_CXX_COMPILER_AR)
|
|
||||||
build/%: UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,CMAKE_CXX_COMPILER_RANLIB)
|
|
||||||
# pass common CMake cross compilation settings from environment/make to cmake
|
|
||||||
build/%: UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,CMAKE_SYSTEM_NAME)
|
|
||||||
build/%: UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,CMAKE_SYSTEM_PROCESSOR)
|
|
||||||
build/%: UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,CMAKE_CROSSCOMPILING_EMULATOR)
|
|
||||||
# pass UPX config options from environment/make to cmake; see CMakeLists.txt
|
|
||||||
build/%: UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,UPX_CONFIG_DISABLE_GITREV)
|
|
||||||
build/%: UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,UPX_CONFIG_DISABLE_SANITIZE)
|
|
||||||
build/%: UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,UPX_CONFIG_DISABLE_WSTRICT)
|
|
||||||
build/%: UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,UPX_CONFIG_DISABLE_WERROR)
|
|
||||||
build/%: UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,UPX_CONFIG_DISABLE_SELF_PACK_TEST)
|
|
||||||
# pass UPX extra compile options from environment/make to cmake; see CMakeLists.txt
|
|
||||||
build/%: UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,UPX_CONFIG_EXTRA_COMPILE_OPTIONS_BZIP2)
|
|
||||||
build/%: UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,UPX_CONFIG_EXTRA_COMPILE_OPTIONS_UCL)
|
|
||||||
build/%: UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,UPX_CONFIG_EXTRA_COMPILE_OPTIONS_UPX)
|
|
||||||
build/%: UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,UPX_CONFIG_EXTRA_COMPILE_OPTIONS_ZLIB)
|
|
||||||
build/%: UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,UPX_CONFIG_EXTRA_COMPILE_OPTIONS_ZSTD)
|
|
||||||
|
|
||||||
endif # GNU make bug work-around
|
# pass common CMake settings
|
||||||
|
UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,CMAKE_VERBOSE_MAKEFILE)
|
||||||
|
# pass common CMake toolchain settings
|
||||||
|
UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,CMAKE_ADDR2LINE)
|
||||||
|
UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,CMAKE_AR)
|
||||||
|
UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,CMAKE_DLLTOOL)
|
||||||
|
UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,CMAKE_LINKER)
|
||||||
|
UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,CMAKE_NM)
|
||||||
|
UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,CMAKE_OBJCOPY)
|
||||||
|
UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,CMAKE_OBJDUMP)
|
||||||
|
UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,CMAKE_RANLIB)
|
||||||
|
UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,CMAKE_READELF)
|
||||||
|
UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,CMAKE_STRIP)
|
||||||
|
UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,CMAKE_TAPI)
|
||||||
|
# pass common CMake LTO toolchain settings
|
||||||
|
UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,CMAKE_C_COMPILER_AR)
|
||||||
|
UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,CMAKE_C_COMPILER_RANLIB)
|
||||||
|
UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,CMAKE_CXX_COMPILER_AR)
|
||||||
|
UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,CMAKE_CXX_COMPILER_RANLIB)
|
||||||
|
# pass common CMake cross compilation settings
|
||||||
|
UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,CMAKE_SYSTEM_NAME)
|
||||||
|
UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,CMAKE_SYSTEM_PROCESSOR)
|
||||||
|
UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,CMAKE_CROSSCOMPILING_EMULATOR)
|
||||||
|
# pass UPX config options; see CMakeLists.txt
|
||||||
|
UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,UPX_CONFIG_DISABLE_GITREV)
|
||||||
|
UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,UPX_CONFIG_DISABLE_SANITIZE)
|
||||||
|
UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,UPX_CONFIG_DISABLE_WERROR)
|
||||||
|
UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,UPX_CONFIG_DISABLE_WSTRICT)
|
||||||
|
UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,UPX_CONFIG_DISABLE_SELF_PACK_TEST)
|
||||||
|
UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,UPX_CONFIG_DISABLE_EXHAUSTIVE_TESTS)
|
||||||
|
# pass UPX extra compile options; see CMakeLists.txt
|
||||||
|
UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,UPX_CONFIG_EXTRA_COMPILE_OPTIONS_BZIP2)
|
||||||
|
UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,UPX_CONFIG_EXTRA_COMPILE_OPTIONS_UCL)
|
||||||
|
UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,UPX_CONFIG_EXTRA_COMPILE_OPTIONS_UPX)
|
||||||
|
UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,UPX_CONFIG_EXTRA_COMPILE_OPTIONS_ZLIB)
|
||||||
|
UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,UPX_CONFIG_EXTRA_COMPILE_OPTIONS_ZSTD)
|
||||||
|
|
||||||
#***********************************************************************
|
#***********************************************************************
|
||||||
# check git submodules
|
# check git submodules
|
||||||
|
|||||||
@@ -5,8 +5,9 @@ argv0=$0; argv0abs="$(readlink -fn "$argv0")"; argv0dir="$(dirname "$argv0abs")"
|
|||||||
|
|
||||||
# create the image from Dockerfile
|
# create the image from Dockerfile
|
||||||
# using a rootless Podman container
|
# using a rootless Podman container
|
||||||
|
# Copyright (C) Markus Franz Xaver Johannes Oberhumer
|
||||||
|
|
||||||
image=upx-stubtools-20221212-v7
|
image=upx-stubtools-20240405-v1
|
||||||
[[ $1 == --print-image ]] && echo "$image" && exit 0
|
[[ $1 == --print-image ]] && echo "$image" && exit 0
|
||||||
|
|
||||||
podman build -t "$image" -f "$argv0dir/Dockerfile" "$argv0dir"
|
podman build -t "$image" -f "$argv0dir/Dockerfile" "$argv0dir"
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ argv0=$0; argv0abs="$(readlink -fn "$argv0")"; argv0dir="$(dirname "$argv0abs")"
|
|||||||
|
|
||||||
# list all system packages that are installed in the image
|
# list all system packages that are installed in the image
|
||||||
# using a rootless Podman container
|
# using a rootless Podman container
|
||||||
|
# Copyright (C) Markus Franz Xaver Johannes Oberhumer
|
||||||
|
|
||||||
image="$("$argv0dir/10-create-image.sh" --print-image)"
|
image="$("$argv0dir/10-create-image.sh" --print-image)"
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ argv0=$0; argv0abs="$(readlink -fn "$argv0")"; argv0dir="$(dirname "$argv0abs")"
|
|||||||
|
|
||||||
# run an interactive shell in the image
|
# run an interactive shell in the image
|
||||||
# using a rootless Podman container
|
# using a rootless Podman container
|
||||||
|
# Copyright (C) Markus Franz Xaver Johannes Oberhumer
|
||||||
|
|
||||||
image="$("$argv0dir/10-create-image.sh" --print-image)"
|
image="$("$argv0dir/10-create-image.sh" --print-image)"
|
||||||
|
|
||||||
@@ -24,6 +25,7 @@ if [[ 1 == 1 ]]; then
|
|||||||
flags+=( -v "${argv0dir}/../../..:/home/upx/src/upx" )
|
flags+=( -v "${argv0dir}/../../..:/home/upx/src/upx" )
|
||||||
flags+=( -w /home/upx/src/upx ) # set working directory
|
flags+=( -w /home/upx/src/upx ) # set working directory
|
||||||
flags+=( --tmpfs /home/upx/.cache:rw,exec ) # mount a writeable tmpfs
|
flags+=( --tmpfs /home/upx/.cache:rw,exec ) # mount a writeable tmpfs
|
||||||
|
flags+=( --tmpfs /home/upx/.config:rw,exec ) # mount a writeable tmpfs
|
||||||
flags+=( --tmpfs /home/upx/.local:rw,exec ) # mount a writeable tmpfs
|
flags+=( --tmpfs /home/upx/.local:rw,exec ) # mount a writeable tmpfs
|
||||||
else
|
else
|
||||||
# run as user root 0:0
|
# run as user root 0:0
|
||||||
|
|||||||
+42
@@ -0,0 +1,42 @@
|
|||||||
|
#! /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")"
|
||||||
|
|
||||||
|
# rebuild stubs from source code
|
||||||
|
# (also see 20-image-run-shell.sh for more container usage examples)
|
||||||
|
# using a rootless Podman container
|
||||||
|
# Copyright (C) Markus Franz Xaver Johannes Oberhumer
|
||||||
|
|
||||||
|
image="$("$argv0dir/10-create-image.sh" --print-image)"
|
||||||
|
|
||||||
|
flags=( --read-only --rm --pull=never )
|
||||||
|
flags+=( --cap-drop=all ) # drop all capabilities
|
||||||
|
flags+=( --network=none ) # no network needed
|
||||||
|
if [[ 1 == 1 ]]; then
|
||||||
|
# run as user upx 2000:2000
|
||||||
|
flags+=( --user 2000 )
|
||||||
|
# map container users 0..999 to subuid-users 1..1000, and map container user 2000 to current host user
|
||||||
|
flags+=( --uidmap=0:1:1000 --uidmap=2000:0:1 )
|
||||||
|
# map container groups 0..999 to subgid-groups 1..1000, and map container group 2000 to current host group
|
||||||
|
flags+=( --gidmap=0:1:1000 --gidmap=2000:0:1 )
|
||||||
|
# NOTE: we mount the upx top-level directory read-write under /home/upx/src/upx
|
||||||
|
# INFO: SELinux users *may* have to add ":z" to the volume mount flags; check the docs!
|
||||||
|
flags+=( -v "${argv0dir}/../../..:/home/upx/src/upx" )
|
||||||
|
fi
|
||||||
|
|
||||||
|
podman run "${flags[@]}" "$image" bash -c $'
|
||||||
|
set -ex; set -o pipefail
|
||||||
|
cd /home/upx/src/upx
|
||||||
|
# check whitespace
|
||||||
|
[[ -d .git ]] && bash ./misc/scripts/check_whitespace_git.sh
|
||||||
|
# rebuild docs
|
||||||
|
make -C doc clean all
|
||||||
|
# rebuild stubs
|
||||||
|
cd /home/upx/src/upx/src/stub
|
||||||
|
make maintainer-clean extra-clean
|
||||||
|
git status . || true # make sure the stub files got deleted
|
||||||
|
make extra-all all
|
||||||
|
echo "===== Rebuilt stubs. All done. ====="
|
||||||
|
exit 0
|
||||||
|
'
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
FROM docker.io/library/ubuntu:22.04
|
# Copyright (C) Markus Franz Xaver Johannes Oberhumer
|
||||||
ENV UPX_CONTAINER_IMAGE_NAME=upx-stubtools-20221212-v6
|
FROM docker.io/library/ubuntu:24.04
|
||||||
|
ENV UPX_CONTAINER_IMAGE_NAME=upx-stubtools-20240405-v1
|
||||||
ARG DEBIAN_FRONTEND=noninteractive
|
ARG DEBIAN_FRONTEND=noninteractive
|
||||||
ENV LANG=C.UTF-8
|
ENV LANG=C.UTF-8
|
||||||
|
|
||||||
@@ -7,21 +8,35 @@ ENV LANG=C.UTF-8
|
|||||||
RUN dpkg --add-architecture i386 \
|
RUN dpkg --add-architecture i386 \
|
||||||
&& apt-get update && apt-get upgrade -y \
|
&& apt-get update && apt-get upgrade -y \
|
||||||
&& apt-get install -y --no-install-recommends \
|
&& apt-get install -y --no-install-recommends \
|
||||||
aria2 bash bash-completion ca-certificates dash git less libmpc3 libncurses5 \
|
aria2 bash bash-completion ca-certificates curl git less libmpc3 \
|
||||||
make ncurses-term perl-base python2-minimal time wget xz-utils \
|
make ncurses-term perl-base tar time wget xz-utils \
|
||||||
libc6:i386 zlib1g:i386 \
|
libc6:i386 zlib1g:i386 \
|
||||||
# the following packages are not required for rebuilding the stubs, but
|
# the following packages are not required for rebuilding the stubs, but
|
||||||
# they do make the image *much* more convenient and also allow building
|
# they do make the image *much* more convenient and also allow building
|
||||||
# the full UPX binary inside the container via CMake:
|
# the full UPX binary inside the container via CMake:
|
||||||
7zip bfs busybox bzip2 cabextract ccache chrpath cmake cpio curl elfutils fd-find file fzf \
|
7zip bfs bubblewrap busybox bzip2 bzip3 cabextract ccache chrpath cmake cpio dash diffstat \
|
||||||
g++ gawk gdb gojq ht htop hyperfine jq libzstd-dev lsb-release lz4 lzip lzop \
|
elfutils execstack fd-find file fish fzf g++ gawk gdb gojq ht htop hyperfine jq ksh \
|
||||||
mksh moreutils ninja-build p7zip parallel patch patchelf patchutils pax-utils paxctl \
|
libzstd-dev lsb-release lz4 lzip lzop minify mksh moreutils musl neovim ninja-build \
|
||||||
python3 python3-pyasn1 python3-pycryptodome python3-zstd \
|
p7zip parallel patch patchelf patchutils pax-utils proot \
|
||||||
re2c ripgrep rsync screen universal-ctags unzip vim yash zip zlib1g-dev zsh zstd \
|
python3 python3-pyasn1 python3-pycryptodome python3-pycurl python3-toml python3-yaml python3-zstd \
|
||||||
|
re2c ripgrep rsync screen strace universal-ctags unzip valgrind yash yq \
|
||||||
|
zip zlib1g-dev zoxide zsh zstd \
|
||||||
# extra packages for compiling with "gcc -m32" and "gcc -mx32":
|
# extra packages for compiling with "gcc -m32" and "gcc -mx32":
|
||||||
g++-multilib gcc-multilib \
|
g++-multilib gcc-multilib \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
|
# install python2-minimal packages from Debian-11; REQUIRED
|
||||||
|
RUN cd /root \
|
||||||
|
&& aria2c --checksum=sha-256=85833c92314011b89bbead6f9a5a7a360b5ee4f9b95e001225afead4ebf9f7d3 \
|
||||||
|
'https://ftp.debian.org/debian/pool/main/p/python2.7/libpython2.7-minimal_2.7.18-8+deb11u1_amd64.deb' \
|
||||||
|
&& aria2c --checksum=sha-256=44f0cdc1a343303d31c55fcb3a6402cfe326adf749ec30e375e6e0c0c5f7c1f7 \
|
||||||
|
'https://ftp.debian.org/debian/pool/main/p/python2.7/python2.7-minimal_2.7.18-8+deb11u1_amd64.deb' \
|
||||||
|
&& dpkg -i ./*.deb \
|
||||||
|
&& rm ./*.deb \
|
||||||
|
&& if ! test -f /usr/bin/python2; then ln -s -v python2.7 /usr/bin/python2; fi \
|
||||||
|
&& ldconfig \
|
||||||
|
&& true
|
||||||
|
|
||||||
# manually unpack and install compat libs from Ubuntu-16.04; REQUIRED
|
# manually unpack and install compat libs from Ubuntu-16.04; REQUIRED
|
||||||
RUN cd /root \
|
RUN cd /root \
|
||||||
&& aria2c --checksum=sha-256=de22baf3dd851a10e16fbf66a243e70149ca46e06b2939fdc79429196cefc090 \
|
&& aria2c --checksum=sha-256=de22baf3dd851a10e16fbf66a243e70149ca46e06b2939fdc79429196cefc090 \
|
||||||
@@ -45,22 +60,39 @@ 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 \
|
||||||
&& wget -q https://github.com/upx/upx/releases/download/v3.91/upx-3.91-amd64_linux.tar.bz2 \
|
&& wget -q https://github.com/upx/upx/releases/download/v3.91/upx-3.91-amd64_linux.tar.bz2 \
|
||||||
&& xzlist="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" \
|
&& 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" \
|
||||||
&& for v in $xzlist; do wget -q https://github.com/upx/upx/releases/download/v${v}/upx-${v}-amd64_linux.tar.xz; done \
|
&& for v in $xzversions; do wget -q 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 $xzlist; 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 \
|
||||||
&& rm -r ./upx-*.tar.* ./upx-*linux \
|
&& rm -r ./upx-*.tar.* ./upx-*linux \
|
||||||
&& true
|
&& true
|
||||||
|
|
||||||
# create default user upx:upx 2000:2000
|
# create default container user upx:upx 2000:2000
|
||||||
RUN useradd upx -U --uid 2000 --shell /bin/bash -m \
|
RUN useradd upx -U --uid 2000 --shell /bin/bash -m \
|
||||||
&& cd /home/upx && chmod 00700 . \
|
&& cd /home/upx && chmod 00700 . \
|
||||||
# prepare ~/.cache and ~/.local for possible tmpfs mounts
|
# prepare ~/.cache, ~/.config and ~/.local for possible tmpfs mounts
|
||||||
&& mkdir -p .cache/tmp .local/bin src/upx \
|
&& mkdir -p .cache/tmp .local/bin src/upx \
|
||||||
&& for d in ccache fontconfig go-build mesa_shader_cache tmp wine zig; do mkdir -p .cache/$d; done \
|
&& for d in ccache fontconfig go-build mesa_shader_cache parallel tmp wine zig; do mkdir -p .cache/$d; done \
|
||||||
|
&& for d in fish git helix kak nvim; do mkdir -p .config/$d; done \
|
||||||
&& for d in bin include lib share state; do mkdir -p .local/$d; done \
|
&& for d in bin include lib share state; do mkdir -p .local/$d; done \
|
||||||
&& ln -s .cache/wine .wine && ln -s .cache/tmp tmp \
|
&& ln -s .cache/wine .wine && ln -s .cache/tmp tmp \
|
||||||
|
# symlink upx-stubtools
|
||||||
&& ln -s /usr/local/bin/bin-upx-20221212 .local/bin/bin-upx \
|
&& ln -s /usr/local/bin/bin-upx-20221212 .local/bin/bin-upx \
|
||||||
|
# some convenience settings according to upx developer preferences
|
||||||
|
&& echo "alias md=mkdir" >> .bashrc \
|
||||||
|
&& echo "alias rd=rmdir" >> .bashrc \
|
||||||
|
&& echo 'mdd() { mkdir "$1" && cd "$1"; }' >> .bashrc \
|
||||||
|
&& echo 'm() { make "$@"; }' >> .bashrc \
|
||||||
|
&& echo 'tn() { time nice "$@"; }' >> .bashrc \
|
||||||
|
&& echo 'tnm() { time nice make "$@"; }' >> .bashrc \
|
||||||
|
&& echo 'tnmm() { time nice make -j "$@"; }' >> .bashrc \
|
||||||
|
&& echo 'source /usr/share/bash-completion/completions/make' >> .bashrc \
|
||||||
|
&& echo 'complete -F _make m tnm tnmm' >> .bashrc \
|
||||||
|
&& echo 'eval "$(zoxide init bash)"' >> .bashrc \
|
||||||
|
&& echo "alias zz=zi\nalias y=z\nalias yy=zi" >> .bashrc \
|
||||||
|
&& echo "alias cd..='cd ..'" >> .bashrc \
|
||||||
|
&& echo "alias ..='cd ..'" >> .bashrc \
|
||||||
|
&& echo "alias .='cd ..'" >> .bashrc \
|
||||||
&& chown -R upx:upx . \
|
&& chown -R upx:upx . \
|
||||||
&& true
|
&& true
|
||||||
USER upx
|
USER upx
|
||||||
|
|||||||
Generated
+692
-632
File diff suppressed because it is too large
Load Diff
Executable
+17
@@ -0,0 +1,17 @@
|
|||||||
|
#! /usr/bin/env python3
|
||||||
|
## vim:set ts=4 sw=4 et: -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
# simulate "readlink -en FILE"
|
||||||
|
# - result may differ from actual readlink(1) for edge cases
|
||||||
|
# - works with Python2 and Python3
|
||||||
|
#
|
||||||
|
# Copyright (C) Markus Franz Xaver Johannes Oberhumer
|
||||||
|
|
||||||
|
import os, sys
|
||||||
|
if len(sys.argv) != 2:
|
||||||
|
sys.exit(1)
|
||||||
|
real_path = os.path.realpath(sys.argv[1])
|
||||||
|
if not os.path.exists(real_path):
|
||||||
|
sys.exit(1)
|
||||||
|
sys.stdout.write(real_path)
|
||||||
|
sys.stdout.flush()
|
||||||
Executable
+15
@@ -0,0 +1,15 @@
|
|||||||
|
#! /usr/bin/env python3
|
||||||
|
## vim:set ts=4 sw=4 et: -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
# simulate "readlink -fn FILE" for systems that lack it (e.g. macOS-11)
|
||||||
|
# - result may differ from actual readlink(1) for edge cases
|
||||||
|
# - works with Python2 and Python3
|
||||||
|
#
|
||||||
|
# Copyright (C) Markus Franz Xaver Johannes Oberhumer
|
||||||
|
|
||||||
|
import os, sys
|
||||||
|
if len(sys.argv) != 2:
|
||||||
|
sys.exit(1)
|
||||||
|
real_path = os.path.realpath(sys.argv[1])
|
||||||
|
sys.stdout.write(real_path)
|
||||||
|
sys.stdout.flush()
|
||||||
@@ -8,31 +8,32 @@ set -e; set -o pipefail
|
|||||||
|
|
||||||
cmake_config_flags=()
|
cmake_config_flags=()
|
||||||
|
|
||||||
|
# promote an environment variable to a CMake cache entry:
|
||||||
__add_cmake_config() {
|
__add_cmake_config() {
|
||||||
[[ -z "${!1}" ]] || cmake_config_flags+=( -D$1="${!1}" )
|
[[ -z "${!1}" ]] || cmake_config_flags+=( -D$1="${!1}" )
|
||||||
}
|
}
|
||||||
|
|
||||||
# pass common CMake settings from environment to cmake
|
# pass common CMake settings
|
||||||
for v in CMAKE_VERBOSE_MAKEFILE; do
|
for v in CMAKE_VERBOSE_MAKEFILE; do
|
||||||
__add_cmake_config $v
|
__add_cmake_config $v
|
||||||
done
|
done
|
||||||
# pass common CMake toolchain settings from environment to cmake
|
# pass common CMake toolchain settings
|
||||||
for v in CMAKE_ADDR2LINE CMAKE_AR CMAKE_DLLTOOL CMAKE_LINKER CMAKE_NM CMAKE_OBJCOPY CMAKE_OBJDUMP CMAKE_RANLIB CMAKE_READELF CMAKE_STRIP CMAKE_TAPI; do
|
for v in CMAKE_ADDR2LINE CMAKE_AR CMAKE_DLLTOOL CMAKE_LINKER CMAKE_NM CMAKE_OBJCOPY CMAKE_OBJDUMP CMAKE_RANLIB CMAKE_READELF CMAKE_STRIP CMAKE_TAPI; do
|
||||||
__add_cmake_config $v
|
__add_cmake_config $v
|
||||||
done
|
done
|
||||||
# pass common CMake LTO toolchain settings from environment to cmake (for use with "-flto")
|
# pass common CMake LTO toolchain settings
|
||||||
for v in CMAKE_C_COMPILER_AR CMAKE_C_COMPILER_RANLIB CMAKE_CXX_COMPILER_AR CMAKE_CXX_COMPILER_RANLIB; do
|
for v in CMAKE_C_COMPILER_AR CMAKE_C_COMPILER_RANLIB CMAKE_CXX_COMPILER_AR CMAKE_CXX_COMPILER_RANLIB; do
|
||||||
__add_cmake_config $v
|
__add_cmake_config $v
|
||||||
done
|
done
|
||||||
# pass common CMake cross compilation settings from environment to cmake
|
# pass common CMake cross compilation settings
|
||||||
for v in CMAKE_SYSTEM_NAME CMAKE_SYSTEM_PROCESSOR CMAKE_CROSSCOMPILING_EMULATOR; do
|
for v in CMAKE_SYSTEM_NAME CMAKE_SYSTEM_PROCESSOR CMAKE_CROSSCOMPILING_EMULATOR; do
|
||||||
__add_cmake_config $v
|
__add_cmake_config $v
|
||||||
done
|
done
|
||||||
# pass UPX config options from environment to cmake; see CMakeLists.txt
|
# pass UPX config options; see CMakeLists.txt
|
||||||
for v in UPX_CONFIG_DISABLE_GITREV UPX_CONFIG_DISABLE_SANITIZE UPX_CONFIG_DISABLE_WSTRICT UPX_CONFIG_DISABLE_WERROR UPX_CONFIG_DISABLE_SELF_PACK_TEST; do
|
for v in UPX_CONFIG_DISABLE_GITREV UPX_CONFIG_DISABLE_SANITIZE UPX_CONFIG_DISABLE_WERROR UPX_CONFIG_DISABLE_WSTRICT UPX_CONFIG_DISABLE_SELF_PACK_TEST UPX_CONFIG_DISABLE_EXHAUSTIVE_TESTS; do
|
||||||
__add_cmake_config $v
|
__add_cmake_config $v
|
||||||
done
|
done
|
||||||
# pass UPX extra compile options from environment to cmake; see CMakeLists.txt
|
# pass UPX extra compile options; see CMakeLists.txt
|
||||||
for v in UPX_CONFIG_EXTRA_COMPILE_OPTIONS_BZIP2 UPX_CONFIG_EXTRA_COMPILE_OPTIONS_UCL UPX_CONFIG_EXTRA_COMPILE_OPTIONS_UPX UPX_CONFIG_EXTRA_COMPILE_OPTIONS_ZLIB UPX_CONFIG_EXTRA_COMPILE_OPTIONS_ZSTD; do
|
for v in UPX_CONFIG_EXTRA_COMPILE_OPTIONS_BZIP2 UPX_CONFIG_EXTRA_COMPILE_OPTIONS_UCL UPX_CONFIG_EXTRA_COMPILE_OPTIONS_UPX UPX_CONFIG_EXTRA_COMPILE_OPTIONS_ZLIB UPX_CONFIG_EXTRA_COMPILE_OPTIONS_ZSTD; do
|
||||||
__add_cmake_config $v
|
__add_cmake_config $v
|
||||||
done
|
done
|
||||||
|
|||||||
+117
-31
@@ -7,6 +7,7 @@ argv0=$0; argv0abs=$(readlink -fn "$argv0"); argv0dir=$(dirname "$argv0abs")
|
|||||||
# Copyright (C) Markus Franz Xaver Johannes Oberhumer
|
# Copyright (C) Markus Franz Xaver Johannes Oberhumer
|
||||||
#
|
#
|
||||||
# mimic running "ctest", i.e. the "test" section of CMakeLists.txt; does not redirect stdout
|
# 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:
|
# requires:
|
||||||
# $upx_exe (required, but with convenience fallback "./upx")
|
# $upx_exe (required, but with convenience fallback "./upx")
|
||||||
@@ -24,57 +25,142 @@ if [[ -z $upx_exe ]]; then echo "UPX-ERROR: please set \$upx_exe"; exit 1; fi
|
|||||||
if [[ ! -f $upx_exe ]]; then echo "UPX-ERROR: file '$upx_exe' does not exist"; exit 1; fi
|
if [[ ! -f $upx_exe ]]; then echo "UPX-ERROR: file '$upx_exe' does not exist"; exit 1; fi
|
||||||
upx_exe=$(readlink -fn "$upx_exe") # make absolute
|
upx_exe=$(readlink -fn "$upx_exe") # make absolute
|
||||||
[[ -f $upx_exe ]] || exit 1
|
[[ -f $upx_exe ]] || exit 1
|
||||||
upx_run=()
|
|
||||||
|
# set emu and run_upx
|
||||||
|
emu=()
|
||||||
if [[ -n $upx_exe_runner ]]; then
|
if [[ -n $upx_exe_runner ]]; then
|
||||||
# usage examples:
|
# usage examples:
|
||||||
# export upx_exe_runner="qemu-x86_64 -cpu Nehalem"
|
# export upx_exe_runner="qemu-x86_64 -cpu Nehalem"
|
||||||
# export upx_exe_runner="valgrind --leak-check=no --error-exitcode=1 --quiet"
|
# export upx_exe_runner="valgrind --leak-check=no --error-exitcode=1 --quiet"
|
||||||
# export upx_exe_runner="wine"
|
# export upx_exe_runner="wine"
|
||||||
IFS=' ' read -r -a upx_run <<< "$upx_exe_runner" # split at spaces into array
|
IFS=' ' read -r -a emu <<< "$upx_exe_runner" # split at spaces into array
|
||||||
elif [[ -n $CMAKE_CROSSCOMPILING_EMULATOR ]]; then
|
elif [[ -n $CMAKE_CROSSCOMPILING_EMULATOR ]]; then
|
||||||
IFS=';' read -r -a upx_run <<< "$CMAKE_CROSSCOMPILING_EMULATOR" # split at semicolons into array
|
IFS=';' read -r -a emu <<< "$CMAKE_CROSSCOMPILING_EMULATOR" # split at semicolons into array
|
||||||
fi
|
fi
|
||||||
upx_runner=( "${upx_run[@]}" )
|
run_upx=( "${emu[@]}" "$upx_exe" )
|
||||||
upx_run+=( "$upx_exe" )
|
echo "run_upx='${run_upx[*]}'"
|
||||||
echo "upx_run='${upx_run[*]}'"
|
|
||||||
|
|
||||||
# upx_run sanity check
|
# run_upx sanity check
|
||||||
if ! "${upx_run[@]}" --version-short >/dev/null; then echo "UPX-ERROR: FATAL: upx --version-short FAILED"; exit 1; fi
|
if ! "${run_upx[@]}" --version-short >/dev/null; then echo "UPX-ERROR: FATAL: upx --version-short FAILED"; exit 1; fi
|
||||||
if ! "${upx_run[@]}" -L >/dev/null 2>&1; then echo "UPX-ERROR: FATAL: upx -L FAILED"; exit 1; fi
|
if ! "${run_upx[@]}" -L >/dev/null 2>&1; then echo "UPX-ERROR: FATAL: upx -L FAILED"; exit 1; fi
|
||||||
if ! "${upx_run[@]}" --help >/dev/null; then echo "UPX-ERROR: FATAL: upx --help FAILED"; exit 1; fi
|
if ! "${run_upx[@]}" --help >/dev/null; then echo "UPX-ERROR: FATAL: upx --help FAILED"; exit 1; fi
|
||||||
|
|
||||||
#***********************************************************************
|
#***********************************************************************
|
||||||
# see CMakeLists.txt
|
# see CMakeLists.txt
|
||||||
|
#
|
||||||
|
# IDEA: create a Makefile and use "make -j" so that these tests can
|
||||||
|
# run in parallel much like "ctest --parallel 8"
|
||||||
#***********************************************************************
|
#***********************************************************************
|
||||||
|
|
||||||
export UPX="--no-color --no-progress"
|
# similar to cmake function upx_cache_bool_vars()
|
||||||
|
set_cmake_bool_vars() {
|
||||||
"${upx_run[@]}" --version
|
local default_value="$1"; shift
|
||||||
"${upx_run[@]}" --help
|
local var_name
|
||||||
"${upx_run[@]}" --sysinfo -v
|
for var_name do
|
||||||
|
case "${!var_name}" in
|
||||||
case "$UPX_CONFIG_DISABLE_SELF_PACK_TEST" in
|
0 | FALSE | OFF | false | off) eval "export $var_name=OFF" ;;
|
||||||
"" | "0" | "FALSE" | "OFF") ;;
|
1 | TRUE | ON | true | on) eval "export $var_name=ON" ;;
|
||||||
*) echo "Self-pack test disabled. All done."; exit 0 ;;
|
*) eval "export $var_name=$default_value" ;;
|
||||||
esac
|
esac
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
set -x
|
||||||
|
set_cmake_bool_vars OFF UPX_CONFIG_DISABLE_SELF_PACK_TEST
|
||||||
|
set_cmake_bool_vars OFF UPX_CONFIG_DISABLE_RUN_UNPACKED_TEST
|
||||||
|
set_cmake_bool_vars OFF UPX_CONFIG_DISABLE_RUN_PACKED_TEST
|
||||||
|
if [[ "${emu[0]}" == *valgrind* ]]; then # valgrind is SLOW
|
||||||
|
set_cmake_bool_vars ON UPX_CONFIG_DISABLE_EXHAUSTIVE_TESTS
|
||||||
|
else
|
||||||
|
set_cmake_bool_vars OFF UPX_CONFIG_DISABLE_EXHAUSTIVE_TESTS
|
||||||
|
fi
|
||||||
|
|
||||||
|
export UPX="--prefer-ucl --no-color --no-progress"
|
||||||
|
export UPX_DEBUG_DISABLE_GITREV_WARNING=1
|
||||||
|
export UPX_DEBUG_DOCTEST_DISABLE=1 # already checked above
|
||||||
|
|
||||||
|
"${run_upx[@]}" --version
|
||||||
|
"${run_upx[@]}" --version-short
|
||||||
|
"${run_upx[@]}" --license
|
||||||
|
"${run_upx[@]}" --help
|
||||||
|
"${run_upx[@]}" --help-short
|
||||||
|
"${run_upx[@]}" --help-verbose
|
||||||
|
"${run_upx[@]}" --sysinfo
|
||||||
|
"${run_upx[@]}" --sysinfo -v
|
||||||
|
"${run_upx[@]}" --sysinfo -vv
|
||||||
|
|
||||||
|
if [[ $UPX_CONFIG_DISABLE_SELF_PACK_TEST == ON ]]; then
|
||||||
|
echo "Self-pack test disabled. All done."; exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
exe=".out"
|
exe=".out"
|
||||||
upx_self_exe=$upx_exe
|
upx_self_exe=$upx_exe
|
||||||
fo="--force-overwrite"
|
fo="--force-overwrite"
|
||||||
|
|
||||||
"${upx_run[@]}" -3 "${upx_self_exe}" ${fo} -o upx-packed${exe}
|
"${run_upx[@]}" -3 "${upx_self_exe}" ${fo} -o upx-packed${exe}
|
||||||
"${upx_run[@]}" -3 --nrv2b "${upx_self_exe}" ${fo} -o upx-packed-n2b${exe}
|
"${run_upx[@]}" -3 --all-filters "${upx_self_exe}" ${fo} -o upx-packed-fa${exe}
|
||||||
"${upx_run[@]}" -3 --nrv2d "${upx_self_exe}" ${fo} -o upx-packed-n2d${exe}
|
"${run_upx[@]}" -3 --no-filter "${upx_self_exe}" ${fo} -o upx-packed-fn${exe}
|
||||||
"${upx_run[@]}" -3 --nrv2e "${upx_self_exe}" ${fo} -o upx-packed-n2e${exe}
|
"${run_upx[@]}" -3 --all-filters --debug-use-random-filter "${upx_self_exe}" ${fo} -o upx-packed-fr${exe}
|
||||||
"${upx_run[@]}" -1 --lzma "${upx_self_exe}" ${fo} -o upx-packed-lzma${exe}
|
"${run_upx[@]}" -3 --nrv2b "${upx_self_exe}" ${fo} -o upx-packed-nrv2b${exe}
|
||||||
|
"${run_upx[@]}" -3 --nrv2d "${upx_self_exe}" ${fo} -o upx-packed-nrv2d${exe}
|
||||||
|
"${run_upx[@]}" -3 --nrv2e "${upx_self_exe}" ${fo} -o upx-packed-nrv2e${exe}
|
||||||
|
"${run_upx[@]}" -1 --lzma "${upx_self_exe}" ${fo} -o upx-packed-lzma${exe}
|
||||||
|
|
||||||
"${upx_run[@]}" -l upx-packed${exe} upx-packed-n2b${exe} upx-packed-n2d${exe} upx-packed-n2e${exe} upx-packed-lzma${exe}
|
"${run_upx[@]}" -l upx-packed${exe} upx-packed-fa${exe} upx-packed-fn${exe} upx-packed-fr${exe} upx-packed-nrv2b${exe} upx-packed-nrv2d${exe} upx-packed-nrv2e${exe} upx-packed-lzma${exe}
|
||||||
"${upx_run[@]}" --fileinfo upx-packed${exe} upx-packed-n2b${exe} upx-packed-n2d${exe} upx-packed-n2e${exe} upx-packed-lzma${exe}
|
"${run_upx[@]}" --fileinfo upx-packed${exe} upx-packed-fa${exe} upx-packed-fn${exe} upx-packed-fr${exe} upx-packed-nrv2b${exe} upx-packed-nrv2d${exe} upx-packed-nrv2e${exe} upx-packed-lzma${exe}
|
||||||
"${upx_run[@]}" -t upx-packed${exe} upx-packed-n2b${exe} upx-packed-n2d${exe} upx-packed-n2e${exe} upx-packed-lzma${exe}
|
"${run_upx[@]}" -t upx-packed${exe} upx-packed-fa${exe} upx-packed-fn${exe} upx-packed-fr${exe} upx-packed-nrv2b${exe} upx-packed-nrv2d${exe} upx-packed-nrv2e${exe} upx-packed-lzma${exe}
|
||||||
"${upx_run[@]}" -d upx-packed${exe} ${fo} -o upx-unpacked${exe}
|
|
||||||
|
|
||||||
set -x
|
"${run_upx[@]}" -d upx-packed${exe} ${fo} -o upx-unpacked${exe}
|
||||||
"${upx_runner[@]}" ./upx-unpacked${exe} --version-short
|
"${run_upx[@]}" -d upx-packed-fa${exe} ${fo} -o upx-unpacked-fa${exe}
|
||||||
"${upx_runner[@]}" ./upx-packed${exe} --version-short
|
"${run_upx[@]}" -d upx-packed-fn${exe} ${fo} -o upx-unpacked-fn${exe}
|
||||||
|
"${run_upx[@]}" -d upx-packed-fr${exe} ${fo} -o upx-unpacked-fr${exe}
|
||||||
|
"${run_upx[@]}" -d upx-packed-nrv2b${exe} ${fo} -o upx-unpacked-nrv2b${exe}
|
||||||
|
"${run_upx[@]}" -d upx-packed-nrv2d${exe} ${fo} -o upx-unpacked-nrv2d${exe}
|
||||||
|
"${run_upx[@]}" -d upx-packed-nrv2e${exe} ${fo} -o upx-unpacked-nrv2e${exe}
|
||||||
|
"${run_upx[@]}" -d upx-packed-lzma${exe} ${fo} -o upx-unpacked-lzma${exe}
|
||||||
|
|
||||||
|
# all unpacked files must be identical
|
||||||
|
cmp -s upx-unpacked${exe} upx-unpacked-fa${exe}
|
||||||
|
cmp -s upx-unpacked${exe} upx-unpacked-fn${exe}
|
||||||
|
cmp -s upx-unpacked${exe} upx-unpacked-fr${exe}
|
||||||
|
cmp -s upx-unpacked${exe} upx-unpacked-nrv2b${exe}
|
||||||
|
cmp -s upx-unpacked${exe} upx-unpacked-nrv2d${exe}
|
||||||
|
cmp -s upx-unpacked${exe} upx-unpacked-nrv2e${exe}
|
||||||
|
cmp -s upx-unpacked${exe} upx-unpacked-lzma${exe}
|
||||||
|
|
||||||
|
if [[ $UPX_CONFIG_DISABLE_RUN_UNPACKED_TEST != ON ]]; then
|
||||||
|
"${emu[@]}" ./upx-unpacked${exe} --version-short
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $UPX_CONFIG_DISABLE_RUN_PACKED_TEST != ON ]]; then
|
||||||
|
"${emu[@]}" ./upx-packed${exe} --version-short
|
||||||
|
"${emu[@]}" ./upx-packed-fa${exe} --version-short
|
||||||
|
"${emu[@]}" ./upx-packed-fn${exe} --version-short
|
||||||
|
"${emu[@]}" ./upx-packed-fr${exe} --version-short
|
||||||
|
"${emu[@]}" ./upx-packed-nrv2b${exe} --version-short
|
||||||
|
"${emu[@]}" ./upx-packed-nrv2d${exe} --version-short
|
||||||
|
"${emu[@]}" ./upx-packed-nrv2e${exe} --version-short
|
||||||
|
"${emu[@]}" ./upx-packed-lzma${exe} --version-short
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $UPX_CONFIG_DISABLE_EXHAUSTIVE_TESTS != ON ]]; then
|
||||||
|
set +x
|
||||||
|
for method in nrv2b nrv2d nrv2e lzma; do
|
||||||
|
for level in 1 2 3 4 5 6 7; do
|
||||||
|
s="${method}-${level}"
|
||||||
|
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 -l upx-packed-${s}${exe}
|
||||||
|
"${run_upx[@]}" -qq --fileinfo upx-packed-${s}${exe}
|
||||||
|
"${run_upx[@]}" -qq -t upx-packed-${s}${exe}
|
||||||
|
"${run_upx[@]}" -qq -d upx-packed-${s}${exe} ${fo} -o upx-unpacked-${s}${exe}
|
||||||
|
cmp -s upx-unpacked${exe} upx-unpacked-${s}${exe}
|
||||||
|
if [[ $UPX_CONFIG_DISABLE_RUN_PACKED_TEST != ON ]]; then
|
||||||
|
"${emu[@]}" ./upx-packed-${s}${exe} --version-short
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "run_upx='${run_upx[*]}'"
|
||||||
echo "All done."
|
echo "All done."
|
||||||
|
|||||||
+170
-146
@@ -10,10 +10,11 @@ argv0=$0; argv0abs=$(readlink -fn "$argv0"); argv0dir=$(dirname "$argv0abs")
|
|||||||
# $upx_exe (required, but with convenience fallback "./upx")
|
# $upx_exe (required, but with convenience fallback "./upx")
|
||||||
# optional settings:
|
# optional settings:
|
||||||
# $upx_exe_runner (e.g. "qemu-x86_64 -cpu Nehalem" or "valgrind")
|
# $upx_exe_runner (e.g. "qemu-x86_64 -cpu Nehalem" or "valgrind")
|
||||||
|
# $upx_test_file
|
||||||
#
|
#
|
||||||
|
|
||||||
# IMPORTANT NOTE: do NOT run as user root!!
|
# IMPORTANT NOTE: this script only works on Unix
|
||||||
# IMPORTANT NOTE: this script only works on Unix!!
|
# IMPORTANT NOTE: do NOT run as user root!
|
||||||
umask 0022
|
umask 0022
|
||||||
|
|
||||||
# disable on macOS for now, see https://github.com/upx/upx/issues/612
|
# disable on macOS for now, see https://github.com/upx/upx/issues/612
|
||||||
@@ -40,26 +41,28 @@ if [[ -z $upx_exe ]]; then echo "UPX-ERROR: please set \$upx_exe"; exit 1; fi
|
|||||||
if [[ ! -f $upx_exe ]]; then echo "UPX-ERROR: file '$upx_exe' does not exist"; exit 1; fi
|
if [[ ! -f $upx_exe ]]; then echo "UPX-ERROR: file '$upx_exe' does not exist"; exit 1; fi
|
||||||
upx_exe=$(readlink -fn "$upx_exe") # make absolute
|
upx_exe=$(readlink -fn "$upx_exe") # make absolute
|
||||||
[[ -f $upx_exe ]] || exit 1
|
[[ -f $upx_exe ]] || exit 1
|
||||||
upx_run=()
|
|
||||||
|
# set emu and run_upx
|
||||||
|
emu=()
|
||||||
if [[ -n $upx_exe_runner ]]; then
|
if [[ -n $upx_exe_runner ]]; then
|
||||||
# usage examples:
|
# usage examples:
|
||||||
# export upx_exe_runner="qemu-x86_64 -cpu Nehalem"
|
# export upx_exe_runner="qemu-x86_64 -cpu Nehalem"
|
||||||
# export upx_exe_runner="valgrind --leak-check=no --error-exitcode=1 --quiet"
|
# export upx_exe_runner="valgrind --leak-check=no --error-exitcode=1 --quiet"
|
||||||
# export upx_exe_runner="wine"
|
# export upx_exe_runner="wine"
|
||||||
IFS=' ' read -r -a upx_run <<< "$upx_exe_runner" # split at spaces into array
|
IFS=' ' read -r -a emu <<< "$upx_exe_runner" # split at spaces into array
|
||||||
elif [[ -n $CMAKE_CROSSCOMPILING_EMULATOR ]]; then
|
elif [[ -n $CMAKE_CROSSCOMPILING_EMULATOR ]]; then
|
||||||
IFS=';' read -r -a upx_run <<< "$CMAKE_CROSSCOMPILING_EMULATOR" # split at semicolons into array
|
IFS=';' read -r -a emu <<< "$CMAKE_CROSSCOMPILING_EMULATOR" # split at semicolons into array
|
||||||
fi
|
fi
|
||||||
upx_run+=( "$upx_exe" )
|
run_upx=( "${emu[@]}" "$upx_exe" )
|
||||||
echo "upx_run='${upx_run[*]}'"
|
echo "run_upx='${run_upx[*]}'"
|
||||||
|
|
||||||
# upx_run sanity check
|
# run_upx sanity check
|
||||||
if ! "${upx_run[@]}" --version-short >/dev/null; then echo "UPX-ERROR: FATAL: upx --version-short FAILED"; exit 1; fi
|
if ! "${run_upx[@]}" --version-short >/dev/null; then echo "UPX-ERROR: FATAL: upx --version-short FAILED"; exit 1; fi
|
||||||
if ! "${upx_run[@]}" -L >/dev/null 2>&1; then echo "UPX-ERROR: FATAL: upx -L FAILED"; exit 1; fi
|
if ! "${run_upx[@]}" -L >/dev/null 2>&1; then echo "UPX-ERROR: FATAL: upx -L FAILED"; exit 1; fi
|
||||||
if ! "${upx_run[@]}" --help >/dev/null; then echo "UPX-ERROR: FATAL: upx --help FAILED"; exit 1; fi
|
if ! "${run_upx[@]}" --help >/dev/null; then echo "UPX-ERROR: FATAL: upx --help FAILED"; exit 1; fi
|
||||||
|
|
||||||
#***********************************************************************
|
#***********************************************************************
|
||||||
# util
|
# util functions
|
||||||
#***********************************************************************
|
#***********************************************************************
|
||||||
|
|
||||||
exit_code=0
|
exit_code=0
|
||||||
@@ -160,18 +163,7 @@ create_files() {
|
|||||||
chmod -R a-w z_dir_4
|
chmod -R a-w z_dir_4
|
||||||
}
|
}
|
||||||
|
|
||||||
#***********************************************************************
|
print_header() {
|
||||||
#
|
|
||||||
#***********************************************************************
|
|
||||||
|
|
||||||
#set -x # debug
|
|
||||||
|
|
||||||
export UPX="--prefer-ucl --no-color --no-progress"
|
|
||||||
export UPX_DEBUG_DISABLE_GITREV_WARNING=1
|
|
||||||
export UPX_DEBUG_DOCTEST_VERBOSE=0
|
|
||||||
export NO_COLOR=1
|
|
||||||
|
|
||||||
testsuite_header() {
|
|
||||||
local x='==========='; x="$x$x$x$x$x$x$x"
|
local x='==========='; x="$x$x$x$x$x$x$x"
|
||||||
echo -e "\n${x}\n${1}\n${x}\n"
|
echo -e "\n${x}\n${1}\n${x}\n"
|
||||||
}
|
}
|
||||||
@@ -186,206 +178,238 @@ leave_dir() {
|
|||||||
cd ..
|
cd ..
|
||||||
}
|
}
|
||||||
|
|
||||||
# create a tmpdir in current directory
|
#***********************************************************************
|
||||||
|
# setup
|
||||||
|
#***********************************************************************
|
||||||
|
|
||||||
|
#set -x # debug
|
||||||
|
|
||||||
|
export UPX="--prefer-ucl --no-color --no-progress"
|
||||||
|
export UPX_DEBUG_DISABLE_GITREV_WARNING=1
|
||||||
|
export UPX_DEBUG_DOCTEST_DISABLE=1 # already checked above
|
||||||
|
|
||||||
|
# get $test_file
|
||||||
|
if [[ -f $upx_test_file ]]; then
|
||||||
|
test_file="$(readlink -fn "$upx_test_file")"
|
||||||
|
else
|
||||||
|
for test_file in /usr/bin/gmake /usr/bin/make /usr/bin/env /bin/ls; do
|
||||||
|
if [[ -f $test_file ]]; then
|
||||||
|
test_file="$(readlink -fn "$test_file")"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
ls -l "$test_file"
|
||||||
|
file "$test_file" || true
|
||||||
|
|
||||||
|
# create and enter a tmpdir in the current directory
|
||||||
tmpdir="$(mktemp -d tmp-upx-test-XXXXXX)"
|
tmpdir="$(mktemp -d tmp-upx-test-XXXXXX)"
|
||||||
cd "./$tmpdir" || exit 1
|
cd "./$tmpdir" || exit 1
|
||||||
|
|
||||||
if [[ -f /bin/ls ]]; then
|
#***********************************************************************
|
||||||
test_file="$(readlink -fn /bin/ls)"
|
# default
|
||||||
else
|
#***********************************************************************
|
||||||
test_file="$(readlink -fn /usr/bin/env)"
|
|
||||||
fi
|
|
||||||
|
|
||||||
testsuite_header "default"
|
print_header "default"
|
||||||
flags="-qq -1 --no-filter"
|
flags="-qq -2 --no-filter"
|
||||||
mkdir default
|
mkdir default
|
||||||
cd default
|
cd default
|
||||||
create_files
|
create_files
|
||||||
enter_dir z_dir_1
|
enter_dir z_dir_1
|
||||||
"${upx_run[@]}" $flags z_symlink_file && failed 10
|
"${run_upx[@]}" $flags z_symlink_file && failed 10
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_file_new || failed 11
|
"${run_upx[@]}" $flags "$test_file" -o z_file_new || failed 11
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_dir && failed 12
|
"${run_upx[@]}" $flags "$test_file" -o z_dir && failed 12
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_file && failed 13
|
"${run_upx[@]}" $flags "$test_file" -o z_file && failed 13
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_file_link_1 && failed 14
|
"${run_upx[@]}" $flags "$test_file" -o z_file_link_1 && failed 14
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_symlink_file && failed 15
|
"${run_upx[@]}" $flags "$test_file" -o z_symlink_file && failed 15
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_symlink_file_link && failed 16
|
"${run_upx[@]}" $flags "$test_file" -o z_symlink_file_link && failed 16
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_symlink_dir && failed 17
|
"${run_upx[@]}" $flags "$test_file" -o z_symlink_dir && failed 17
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_symlink_dangling && failed 18
|
"${run_upx[@]}" $flags "$test_file" -o z_symlink_dangling && failed 18
|
||||||
assert_symlink_to_file z_symlink_file z_symlink_file_link
|
assert_symlink_to_file z_symlink_file z_symlink_file_link
|
||||||
assert_symlink_to_dir z_symlink_dir
|
assert_symlink_to_dir z_symlink_dir
|
||||||
assert_symlink_dangling z_symlink_dangling
|
assert_symlink_dangling z_symlink_dangling
|
||||||
leave_dir
|
leave_dir
|
||||||
enter_dir z_dir_2
|
enter_dir z_dir_2
|
||||||
"${upx_run[@]}" $flags z_symlink_file && failed 10
|
"${run_upx[@]}" $flags z_symlink_file && failed 10
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_file_new || failed 11
|
"${run_upx[@]}" $flags "$test_file" -o z_file_new || failed 11
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_dir && failed 12
|
"${run_upx[@]}" $flags "$test_file" -o z_dir && failed 12
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_file && failed 13
|
"${run_upx[@]}" $flags "$test_file" -o z_file && failed 13
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_file_link_1 && failed 14
|
"${run_upx[@]}" $flags "$test_file" -o z_file_link_1 && failed 14
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_symlink_file && failed 15
|
"${run_upx[@]}" $flags "$test_file" -o z_symlink_file && failed 15
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_symlink_file_link && failed 16
|
"${run_upx[@]}" $flags "$test_file" -o z_symlink_file_link && failed 16
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_symlink_dir && failed 17
|
"${run_upx[@]}" $flags "$test_file" -o z_symlink_dir && failed 17
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_symlink_dangling && failed 18
|
"${run_upx[@]}" $flags "$test_file" -o z_symlink_dangling && failed 18
|
||||||
assert_symlink_to_file z_symlink_file z_symlink_file_link
|
assert_symlink_to_file z_symlink_file z_symlink_file_link
|
||||||
assert_symlink_to_dir z_symlink_dir
|
assert_symlink_to_dir z_symlink_dir
|
||||||
assert_symlink_dangling z_symlink_dangling
|
assert_symlink_dangling z_symlink_dangling
|
||||||
leave_dir
|
leave_dir
|
||||||
enter_dir z_dir_3
|
enter_dir z_dir_3
|
||||||
"${upx_run[@]}" $flags z_symlink_file && failed 10
|
"${run_upx[@]}" $flags z_symlink_file && failed 10
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_file_new && failed 11
|
"${run_upx[@]}" $flags "$test_file" -o z_file_new && failed 11
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_dir && failed 12
|
"${run_upx[@]}" $flags "$test_file" -o z_dir && failed 12
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_file && failed 13
|
"${run_upx[@]}" $flags "$test_file" -o z_file && failed 13
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_file_link_1 && failed 14
|
"${run_upx[@]}" $flags "$test_file" -o z_file_link_1 && failed 14
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_symlink_file && failed 15
|
"${run_upx[@]}" $flags "$test_file" -o z_symlink_file && failed 15
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_symlink_file_link && failed 16
|
"${run_upx[@]}" $flags "$test_file" -o z_symlink_file_link && failed 16
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_symlink_dir && failed 17
|
"${run_upx[@]}" $flags "$test_file" -o z_symlink_dir && failed 17
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_symlink_dangling && failed 18
|
"${run_upx[@]}" $flags "$test_file" -o z_symlink_dangling && failed 18
|
||||||
assert_symlink_to_file z_symlink_file z_symlink_file_link
|
assert_symlink_to_file z_symlink_file z_symlink_file_link
|
||||||
assert_symlink_to_dir z_symlink_dir
|
assert_symlink_to_dir z_symlink_dir
|
||||||
assert_symlink_dangling z_symlink_dangling
|
assert_symlink_dangling z_symlink_dangling
|
||||||
leave_dir
|
leave_dir
|
||||||
enter_dir z_dir_4
|
enter_dir z_dir_4
|
||||||
"${upx_run[@]}" $flags z_symlink_file && failed 10
|
"${run_upx[@]}" $flags z_symlink_file && failed 10
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_file_new && failed 11
|
"${run_upx[@]}" $flags "$test_file" -o z_file_new && failed 11
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_dir && failed 12
|
"${run_upx[@]}" $flags "$test_file" -o z_dir && failed 12
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_file && failed 13
|
"${run_upx[@]}" $flags "$test_file" -o z_file && failed 13
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_file_link_1 && failed 14
|
"${run_upx[@]}" $flags "$test_file" -o z_file_link_1 && failed 14
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_symlink_file && failed 15
|
"${run_upx[@]}" $flags "$test_file" -o z_symlink_file && failed 15
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_symlink_file_link && failed 16
|
"${run_upx[@]}" $flags "$test_file" -o z_symlink_file_link && failed 16
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_symlink_dir && failed 17
|
"${run_upx[@]}" $flags "$test_file" -o z_symlink_dir && failed 17
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_symlink_dangling && failed 18
|
"${run_upx[@]}" $flags "$test_file" -o z_symlink_dangling && failed 18
|
||||||
assert_symlink_to_file z_symlink_file z_symlink_file_link
|
assert_symlink_to_file z_symlink_file z_symlink_file_link
|
||||||
assert_symlink_to_dir z_symlink_dir
|
assert_symlink_to_dir z_symlink_dir
|
||||||
assert_symlink_dangling z_symlink_dangling
|
assert_symlink_dangling z_symlink_dangling
|
||||||
leave_dir
|
leave_dir
|
||||||
cd ..
|
cd ..
|
||||||
|
|
||||||
testsuite_header "force-overwrite"
|
#***********************************************************************
|
||||||
flags="-qq -1 --no-filter --force-overwrite"
|
# force-overwrite
|
||||||
|
#***********************************************************************
|
||||||
|
|
||||||
|
print_header "force-overwrite"
|
||||||
|
flags="-qq -2 --no-filter --force-overwrite"
|
||||||
mkdir force-overwrite
|
mkdir force-overwrite
|
||||||
cd force-overwrite
|
cd force-overwrite
|
||||||
create_files
|
create_files
|
||||||
enter_dir z_dir_1
|
enter_dir z_dir_1
|
||||||
"${upx_run[@]}" $flags z_symlink_file && failed 10
|
"${run_upx[@]}" $flags z_symlink_file && failed 10
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_file_new || failed 11
|
"${run_upx[@]}" $flags "$test_file" -o z_file_new || failed 11
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_dir && failed 12
|
"${run_upx[@]}" $flags "$test_file" -o z_dir && failed 12
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_file || failed 13
|
"${run_upx[@]}" $flags "$test_file" -o z_file || failed 13
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_file_link_1 || failed 14
|
"${run_upx[@]}" $flags "$test_file" -o z_file_link_1 || failed 14
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_symlink_file || failed 15
|
"${run_upx[@]}" $flags "$test_file" -o z_symlink_file || failed 15
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_symlink_file_link || failed 16
|
"${run_upx[@]}" $flags "$test_file" -o z_symlink_file_link || failed 16
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_symlink_dir || failed 17
|
"${run_upx[@]}" $flags "$test_file" -o z_symlink_dir || failed 17
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_symlink_dangling || failed 18
|
"${run_upx[@]}" $flags "$test_file" -o z_symlink_dangling || failed 18
|
||||||
assert_file z_symlink_file z_symlink_file_link
|
assert_file z_symlink_file z_symlink_file_link
|
||||||
assert_file z_symlink_dir
|
assert_file z_symlink_dir
|
||||||
assert_file z_symlink_dangling
|
assert_file z_symlink_dangling
|
||||||
leave_dir
|
leave_dir
|
||||||
enter_dir z_dir_2
|
enter_dir z_dir_2
|
||||||
"${upx_run[@]}" $flags z_symlink_file && failed 10
|
"${run_upx[@]}" $flags z_symlink_file && failed 10
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_file_new || failed 11
|
"${run_upx[@]}" $flags "$test_file" -o z_file_new || failed 11
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_dir && failed 12
|
"${run_upx[@]}" $flags "$test_file" -o z_dir && failed 12
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_file || failed 13
|
"${run_upx[@]}" $flags "$test_file" -o z_file || failed 13
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_file_link_1 || failed 14
|
"${run_upx[@]}" $flags "$test_file" -o z_file_link_1 || failed 14
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_symlink_file || failed 15
|
"${run_upx[@]}" $flags "$test_file" -o z_symlink_file || failed 15
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_symlink_file_link || failed 16
|
"${run_upx[@]}" $flags "$test_file" -o z_symlink_file_link || failed 16
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_symlink_dir || failed 17
|
"${run_upx[@]}" $flags "$test_file" -o z_symlink_dir || failed 17
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_symlink_dangling || failed 18
|
"${run_upx[@]}" $flags "$test_file" -o z_symlink_dangling || failed 18
|
||||||
assert_file z_symlink_file z_symlink_file_link
|
assert_file z_symlink_file z_symlink_file_link
|
||||||
assert_file z_symlink_dir
|
assert_file z_symlink_dir
|
||||||
assert_file z_symlink_dangling
|
assert_file z_symlink_dangling
|
||||||
leave_dir
|
leave_dir
|
||||||
enter_dir z_dir_3
|
enter_dir z_dir_3
|
||||||
"${upx_run[@]}" $flags z_symlink_file && failed 10
|
"${run_upx[@]}" $flags z_symlink_file && failed 10
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_file_new && failed 11
|
"${run_upx[@]}" $flags "$test_file" -o z_file_new && failed 11
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_dir && failed 12
|
"${run_upx[@]}" $flags "$test_file" -o z_dir && failed 12
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_file || failed 13
|
"${run_upx[@]}" $flags "$test_file" -o z_file || failed 13
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_file_link_1 || failed 14
|
"${run_upx[@]}" $flags "$test_file" -o z_file_link_1 || failed 14
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_symlink_file || failed 15
|
"${run_upx[@]}" $flags "$test_file" -o z_symlink_file || failed 15
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_symlink_file_link || failed 16
|
"${run_upx[@]}" $flags "$test_file" -o z_symlink_file_link || failed 16
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_symlink_dir && failed 17
|
"${run_upx[@]}" $flags "$test_file" -o z_symlink_dir && failed 17
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_symlink_dangling && failed 18
|
"${run_upx[@]}" $flags "$test_file" -o z_symlink_dangling && failed 18
|
||||||
assert_symlink_to_file z_symlink_file z_symlink_file_link
|
assert_symlink_to_file z_symlink_file z_symlink_file_link
|
||||||
assert_symlink_to_dir z_symlink_dir
|
assert_symlink_to_dir z_symlink_dir
|
||||||
assert_symlink_dangling z_symlink_dangling
|
assert_symlink_dangling z_symlink_dangling
|
||||||
leave_dir
|
leave_dir
|
||||||
enter_dir z_dir_4
|
enter_dir z_dir_4
|
||||||
"${upx_run[@]}" $flags z_symlink_file && failed 10
|
"${run_upx[@]}" $flags z_symlink_file && failed 10
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_file_new && failed 11
|
"${run_upx[@]}" $flags "$test_file" -o z_file_new && failed 11
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_dir && failed 12
|
"${run_upx[@]}" $flags "$test_file" -o z_dir && failed 12
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_file || failed 13
|
"${run_upx[@]}" $flags "$test_file" -o z_file || failed 13
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_file_link_1 || failed 14
|
"${run_upx[@]}" $flags "$test_file" -o z_file_link_1 || failed 14
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_symlink_file || failed 15
|
"${run_upx[@]}" $flags "$test_file" -o z_symlink_file || failed 15
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_symlink_file_link || failed 16
|
"${run_upx[@]}" $flags "$test_file" -o z_symlink_file_link || failed 16
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_symlink_dir && failed 17
|
"${run_upx[@]}" $flags "$test_file" -o z_symlink_dir && failed 17
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_symlink_dangling && failed 18
|
"${run_upx[@]}" $flags "$test_file" -o z_symlink_dangling && failed 18
|
||||||
assert_symlink_to_file z_symlink_file z_symlink_file_link
|
assert_symlink_to_file z_symlink_file z_symlink_file_link
|
||||||
assert_symlink_to_dir z_symlink_dir
|
assert_symlink_to_dir z_symlink_dir
|
||||||
assert_symlink_dangling z_symlink_dangling
|
assert_symlink_dangling z_symlink_dangling
|
||||||
leave_dir
|
leave_dir
|
||||||
cd ..
|
cd ..
|
||||||
|
|
||||||
if [[ 1 == 1 ]]; then
|
#***********************************************************************
|
||||||
testsuite_header "link"
|
# link
|
||||||
flags="-qq -1 --no-filter --link"
|
#***********************************************************************
|
||||||
|
|
||||||
|
print_header "link"
|
||||||
|
flags="-qq -2 --no-filter --link"
|
||||||
mkdir link
|
mkdir link
|
||||||
cd link
|
cd link
|
||||||
create_files
|
create_files
|
||||||
enter_dir z_dir_1
|
enter_dir z_dir_1
|
||||||
"${upx_run[@]}" $flags z_symlink_file && failed 10
|
"${run_upx[@]}" $flags z_symlink_file && failed 10
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_file_new || failed 11
|
"${run_upx[@]}" $flags "$test_file" -o z_file_new || failed 11
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_dir && failed 12
|
"${run_upx[@]}" $flags "$test_file" -o z_dir && failed 12
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_file || failed 13
|
"${run_upx[@]}" $flags "$test_file" -o z_file || failed 13
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_file_link_1 || failed 14
|
"${run_upx[@]}" $flags "$test_file" -o z_file_link_1 || failed 14
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_symlink_file || failed 15
|
"${run_upx[@]}" $flags "$test_file" -o z_symlink_file || failed 15
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_symlink_file_link || failed 16
|
"${run_upx[@]}" $flags "$test_file" -o z_symlink_file_link || failed 16
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_symlink_dir || failed 17
|
"${run_upx[@]}" $flags "$test_file" -o z_symlink_dir || failed 17
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_symlink_dangling || failed 18
|
"${run_upx[@]}" $flags "$test_file" -o z_symlink_dangling || failed 18
|
||||||
assert_file z_symlink_file z_symlink_file_link
|
assert_file z_symlink_file z_symlink_file_link
|
||||||
assert_file z_symlink_dir
|
assert_file z_symlink_dir
|
||||||
assert_file z_symlink_dangling
|
assert_file z_symlink_dangling
|
||||||
leave_dir
|
leave_dir
|
||||||
enter_dir z_dir_2
|
enter_dir z_dir_2
|
||||||
"${upx_run[@]}" $flags z_symlink_file && failed 10
|
"${run_upx[@]}" $flags z_symlink_file && failed 10
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_file_new || failed 11
|
"${run_upx[@]}" $flags "$test_file" -o z_file_new || failed 11
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_dir && failed 12
|
"${run_upx[@]}" $flags "$test_file" -o z_dir && failed 12
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_file && failed 13
|
"${run_upx[@]}" $flags "$test_file" -o z_file && failed 13
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_file_link_1 && failed 14
|
"${run_upx[@]}" $flags "$test_file" -o z_file_link_1 && failed 14
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_symlink_file || failed 15
|
"${run_upx[@]}" $flags "$test_file" -o z_symlink_file || failed 15
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_symlink_file_link || failed 16
|
"${run_upx[@]}" $flags "$test_file" -o z_symlink_file_link || failed 16
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_symlink_dir || failed 17
|
"${run_upx[@]}" $flags "$test_file" -o z_symlink_dir || failed 17
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_symlink_dangling || failed 18
|
"${run_upx[@]}" $flags "$test_file" -o z_symlink_dangling || failed 18
|
||||||
assert_file z_symlink_file z_symlink_file_link
|
assert_file z_symlink_file z_symlink_file_link
|
||||||
assert_file z_symlink_dir
|
assert_file z_symlink_dir
|
||||||
assert_file z_symlink_dangling
|
assert_file z_symlink_dangling
|
||||||
leave_dir
|
leave_dir
|
||||||
enter_dir z_dir_3
|
enter_dir z_dir_3
|
||||||
"${upx_run[@]}" $flags z_symlink_file && failed 10
|
"${run_upx[@]}" $flags z_symlink_file && failed 10
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_file_new && failed 11
|
"${run_upx[@]}" $flags "$test_file" -o z_file_new && failed 11
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_dir && failed 12
|
"${run_upx[@]}" $flags "$test_file" -o z_dir && failed 12
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_file || failed 13
|
"${run_upx[@]}" $flags "$test_file" -o z_file || failed 13
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_file_link_1 || failed 14
|
"${run_upx[@]}" $flags "$test_file" -o z_file_link_1 || failed 14
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_symlink_file || failed 15
|
"${run_upx[@]}" $flags "$test_file" -o z_symlink_file || failed 15
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_symlink_file_link || failed 16
|
"${run_upx[@]}" $flags "$test_file" -o z_symlink_file_link || failed 16
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_symlink_dir && failed 17
|
"${run_upx[@]}" $flags "$test_file" -o z_symlink_dir && failed 17
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_symlink_dangling && failed 18
|
"${run_upx[@]}" $flags "$test_file" -o z_symlink_dangling && failed 18
|
||||||
assert_symlink_to_file z_symlink_file z_symlink_file_link
|
assert_symlink_to_file z_symlink_file z_symlink_file_link
|
||||||
assert_symlink_to_dir z_symlink_dir
|
assert_symlink_to_dir z_symlink_dir
|
||||||
assert_symlink_dangling z_symlink_dangling
|
assert_symlink_dangling z_symlink_dangling
|
||||||
leave_dir
|
leave_dir
|
||||||
enter_dir z_dir_4
|
enter_dir z_dir_4
|
||||||
"${upx_run[@]}" $flags z_symlink_file && failed 10
|
"${run_upx[@]}" $flags z_symlink_file && failed 10
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_file_new && failed 11
|
"${run_upx[@]}" $flags "$test_file" -o z_file_new && failed 11
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_dir && failed 12
|
"${run_upx[@]}" $flags "$test_file" -o z_dir && failed 12
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_file && failed 13
|
"${run_upx[@]}" $flags "$test_file" -o z_file && failed 13
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_file_link_1 && failed 14
|
"${run_upx[@]}" $flags "$test_file" -o z_file_link_1 && failed 14
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_symlink_file || failed 15
|
"${run_upx[@]}" $flags "$test_file" -o z_symlink_file || failed 15
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_symlink_file_link || failed 16
|
"${run_upx[@]}" $flags "$test_file" -o z_symlink_file_link || failed 16
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_symlink_dir && failed 17
|
"${run_upx[@]}" $flags "$test_file" -o z_symlink_dir && failed 17
|
||||||
"${upx_run[@]}" $flags "$test_file" -o z_symlink_dangling && failed 18
|
"${run_upx[@]}" $flags "$test_file" -o z_symlink_dangling && failed 18
|
||||||
assert_symlink_to_file z_symlink_file z_symlink_file_link
|
assert_symlink_to_file z_symlink_file z_symlink_file_link
|
||||||
assert_symlink_to_dir z_symlink_dir
|
assert_symlink_to_dir z_symlink_dir
|
||||||
assert_symlink_dangling z_symlink_dangling
|
assert_symlink_dangling z_symlink_dangling
|
||||||
leave_dir
|
leave_dir
|
||||||
cd ..
|
cd ..
|
||||||
fi
|
|
||||||
|
#***********************************************************************
|
||||||
|
# done
|
||||||
|
#***********************************************************************
|
||||||
|
|
||||||
# clean up
|
# clean up
|
||||||
cd ..
|
cd ..
|
||||||
|
|||||||
+147
-147
@@ -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="\
|
||||||
afd8b4ec4379b013887e2dbb9cb07ed8e19942c6c5b72bd42fa20d2d43e35d52 *amd64-linux.elf/upx-3.91
|
ef49d1c9617dbb3dc1bb36ab70df8a263cd816cc5e91ad28cc62f91ccc77afa7 *amd64-linux.elf/upx-3.91
|
||||||
320f5819d96f575ea4abad04c5a1bac53274a5d4704ff530ee778acfa261376c *amd64-linux.elf/upx-3.95
|
253b1542cdcd5d554eb442e263eb44e400f00e63cfd4d0d727eacec5fcdbbd00 *amd64-linux.elf/upx-3.95
|
||||||
a8804bce00be8e2f9d3874c8fc884e69c19efc2f0fd07272e7d0749efd36f381 *amd64-win64.pe/upx-3.95.exe
|
d96c42d14684e7248de5712310364eafa28b337695bc0d8c37f91d593b869250 *amd64-win64.pe/upx-3.95.exe
|
||||||
80ff4e72220302cdccbdce753981d9a36596941ffcd9231317c5cb53f988ac72 *arm-linux.elf/upx-3.95
|
c1d3b9ec3157f068097f5deffddce4fc4d3d95602daa539992e0accff6af0de8 *arm-linux.elf/upx-3.95
|
||||||
4e3db49fb086c4293b8a5809c166546d3a33f731b6ef5565cc0566d491f91cf2 *arm-wince.pe/upx-3.91.exe
|
9ca862c0c92d7e4068145024486bb85a6031bf06f9a37c6af543234e08e8ab36 *arm-wince.pe/upx-3.91.exe
|
||||||
71a27b41a763fab594ed953f3bf543489554b509bce488e7c5533e312c953e30 *arm64-linux.elf/upx-3.95
|
9173b4e4b1ac0b92e63dc51168dbd41d38208520b0f4c17b91d22e584ad55ae4 *arm64-linux.elf/upx-3.95
|
||||||
8a84b2161d83358c824de200ed480e9cb9cb7557138d710808ec44a19165c898 *armeb-linux.elf/upx-3.91
|
8c6c5f1678fb74d2f65a1e6c28e3089a4b99b49939fabac3ca1f71183bc73ffa *armeb-linux.elf/upx-3.91
|
||||||
09b92d07b30b16321301aa2faf46576da2587c1334e7a842742fed36aadef5fa *armeb-linux.elf/upx-3.95
|
13caa682f323a0438a651f53768af9b7fb1208980d46d94c6fb984ecf4422599 *armeb-linux.elf/upx-3.95
|
||||||
a418a4df498f55e86a7f2788c6e0fe0324d60a9032d4841569c7e4e2694410df *i386-dos32.djgpp2.coff/upx-3.91.exe
|
55f30818e45da393628aa80c3518f3cf099666ae3af5014bded2196ea28ddaea *i386-dos32.djgpp2.coff/upx-3.91.exe
|
||||||
0aecdd97242054dcd390317e97a539a2e35f53a28a71d0148b703141d21345b0 *i386-dos32.djgpp2.coff/upx-3.95.exe
|
6b80b2be79ec38af3071fcaf8f0d0ec524e4523e7e52e2f10111862ab93ec793 *i386-dos32.djgpp2.coff/upx-3.95.exe
|
||||||
09a748c65d2a26975a5c829dd3d9f36e96607b1d9728d64068731815d8b82c36 *i386-linux.elf/upx-3.91
|
9bb71da401ae398ca42cde73afffe0c0db29fff24f22196c4116636ab6385170 *i386-linux.elf/upx-3.91
|
||||||
5189d860ddc1edc7e9b524aa09bd9677548d83efb788627cdbac27941f509262 *i386-linux.elf/upx-3.95
|
c2375a808f989c0f8290fcd9760db0033413323d8597deb796f182f8ac38afa2 *i386-linux.elf/upx-3.95
|
||||||
0b51fd861dd2b574bfed6ab3998b01333ae173fd76b7fd0d30187e75b09ab316 *i386-win32.pe/upx-3.91.exe
|
892695e1abdc0fbbd110ee30c317fde56947f4a8b3dfe413507ee7665f109986 *i386-win32.pe/upx-3.91.exe
|
||||||
05568f9b47da0c8949080f66437f7a8d08c3c11f3ee5fb9e5d20a1324f2ab829 *i386-win32.pe/upx-3.95.exe
|
f76ec227836388da3174007e2c5e27fb6cb397a83297872e78befb298a65796d *i386-win32.pe/upx-3.95.exe
|
||||||
f6fb2f10a4f2b2d327c9868bb06241c3143771b0371ca564b8dfaeb180026298 *m68k-atari.tos/upx-3.91.ttp
|
8f7c5b3d67c78c117c02bec8b30ec5fca7baa79a35d250a4d981cb7137f8635d *m68k-atari.tos/upx-3.91.ttp
|
||||||
196fb37ba72d7b0e081386a8110cf193678934ae1a0f16cd9d071b18c034a3f2 *mips-linux.elf/upx-3.95
|
745ac3afd263f3a653165bd229e35c817a58c9b894a8d6fbd4e5aaf6c38c1264 *mips-linux.elf/upx-3.95
|
||||||
e528a2c33b2ab882c6e18fab4662d612ffc71c0261c367fa9c0282b23ad53b3c *mipsel-linux.elf/upx-3.91
|
a11da76425bc3bb308de3c19e6df22f56bf12c95afcf96ee8c2d4aaeda07ac8a *mipsel-linux.elf/upx-3.91
|
||||||
4b44c1b60f8eea0f40bcd2cdbc1e7217afee6d1cb054856e2791339aa7c31a78 *mipsel-linux.elf/upx-3.95
|
76c458e8e9b94eceb60d8c51f602a5dec44b2617886ea0b5b7b8802c61d962e9 *mipsel-linux.elf/upx-3.95
|
||||||
ae73bba4db8413a7a287b2a61dc9829ee3a66f9d93940ad7f08aa93b09770f4f *powerpc-linux.elf/upx-3.91
|
cec277d9e6e0cbf551f697c1d52e5d29b48533efbe4269df0aafbc12731a93ed *powerpc-linux.elf/upx-3.91
|
||||||
c7a8bba27dbd09c8f73ae2cd11d893187b15b298dd7d857cbd2c676670ff0a80 *powerpc-linux.elf/upx-3.95
|
92c6cec7bf40d1aa5a62a55fce95bb99d94c5b477edbea127ee0468471ddbdb3 *powerpc-linux.elf/upx-3.95
|
||||||
6075bc28ac64f865d0e93cb16629c02331fb4abbea8da931288a60a6350cf635 *powerpc64le-linux.elf/upx-3.95
|
df2f12597c901196e8f10782e72fb4c294955f03a66cc4e8bf3c24414929f717 *powerpc64le-linux.elf/upx-3.95
|
||||||
"
|
"
|
||||||
expected_sha256sums__t120_compress_ucl_nrv2d_3_no_filter="\
|
expected_sha256sums__t120_compress_ucl_nrv2d_3_no_filter="\
|
||||||
f23ea1c7cea84e5edf136b2b3a0a8740e9d6bf3552ef1f460aa4508c2f27df6d *amd64-linux.elf/upx-3.91
|
f7e51450a373cb49f88e3e17c268f4198429f7ad06bed57dda28161b5383196a *amd64-linux.elf/upx-3.91
|
||||||
e725f00542f605851cfe03aee2042fbccf04e0a01bbf5a4aaecd04ad59c80077 *amd64-linux.elf/upx-3.95
|
15c57828824d18604519fd43349f0340ccebfddf246ab355f8f30253123132ea *amd64-linux.elf/upx-3.95
|
||||||
57af8f45cef9e5c9f63387a15b8cf1b96426ab8dc73c303bd4caaa95b093bf92 *amd64-win64.pe/upx-3.95.exe
|
728b2feceda3cfdd849aef4402d5d4e61aa6fa6d56266e7730b148dc66f4a7b0 *amd64-win64.pe/upx-3.95.exe
|
||||||
a01ad023431e05287be77f160ea1a491489416e34de0d5ce194665e99f12e483 *arm-linux.elf/upx-3.95
|
188a3581ed2bac5fdfd50e08267e2e9cf4cf3ddbfc9f5ae15643298bda4bf11c *arm-linux.elf/upx-3.95
|
||||||
a711a73bfd20ccc012507c3f07ed98ee025f55e441156efb5fdbaa1815640c63 *arm-wince.pe/upx-3.91.exe
|
0711f0b8531de9659f099f43f2a883d628bee8de67f927e7137c19c6d23a30bd *arm-wince.pe/upx-3.91.exe
|
||||||
4a341330a44845a10521d5acaa91eda3b7602367b1c77f6a5cf0731b528e478f *arm64-linux.elf/upx-3.95
|
ae6fa69b1242bdfe808d64b7bbefddfe9c1c96302627ee8c65fa2851102fc502 *arm64-linux.elf/upx-3.95
|
||||||
d4a8653134f16f91b8fcdb0ed0d71ae3a31199af2ec42bf5dbe97e3344eceb74 *armeb-linux.elf/upx-3.91
|
7586b4029355eff2edf25141835ee2405ab9f936956e56420315c3d3fecc8bda *armeb-linux.elf/upx-3.91
|
||||||
a7da82c93f93a842a2876a54bba85cbb380eb7c79fc123ff30f31d99be3eca5c *armeb-linux.elf/upx-3.95
|
e37875b1a91ef3c88bdba113649a061b72239dbfe77b77077c51254037a982b6 *armeb-linux.elf/upx-3.95
|
||||||
f1caf28b7500b14ca1405b31b8e18a226bf682c619982ea2712b5631cc61d0d8 *i386-dos32.djgpp2.coff/upx-3.91.exe
|
536e5a6bb18378f3eea81be12f218f4da60ea81eddf480434aaf418610e4e52d *i386-dos32.djgpp2.coff/upx-3.91.exe
|
||||||
2c5ab68a6a23d460fab8def92a4cd32a54f084811584c1472c07dbe9429a503a *i386-dos32.djgpp2.coff/upx-3.95.exe
|
386f3037b26b8b2ce49a527028d738956e7ef649b29a0ef15e32acef4a3b291a *i386-dos32.djgpp2.coff/upx-3.95.exe
|
||||||
8f227074f8bc7682fd8e71bf96c60cb42fba7d3038acb8e500c6b075df50b732 *i386-linux.elf/upx-3.91
|
5761d8e12b01163c2bf378bef813df9a621da08c4508773db992a1cce067c70c *i386-linux.elf/upx-3.91
|
||||||
3df0f160a7d58a1f1368450c9db2d6911818e00b11ab819edbc56afeb84e3fb8 *i386-linux.elf/upx-3.95
|
8afc2b549e2f78987641045697afaac0378b48e84c3e946334c9e4f1a7e693fa *i386-linux.elf/upx-3.95
|
||||||
31aaff6332ea65bb4c386de0bb75553cae77becd9a587dcbb51e38719c8a3b7a *i386-win32.pe/upx-3.91.exe
|
1cc6663f3d9e847f9fec39a52c8efe38b39a66074c0ad77a880a84dde7c68d3f *i386-win32.pe/upx-3.91.exe
|
||||||
221a2c5c07d6c0a0127b3ce27d924fc36ee4b5af52fc4f47bc172e60ef0b244a *i386-win32.pe/upx-3.95.exe
|
edf158ec6064e9b11b677a73239a70e414fa8c4f3b8950f74e81514ccb28ef4f *i386-win32.pe/upx-3.95.exe
|
||||||
9b280a1d2b82185339a4aea0c9338d9ae6c34d1a68da84a4a173d9010d092feb *m68k-atari.tos/upx-3.91.ttp
|
faa36b6601743dcc5eaedb57187a893006652b6c68acecff179ce2cd123e6209 *m68k-atari.tos/upx-3.91.ttp
|
||||||
410335b935535fab6852d4b9677a24d016a9fb47d1b71d5a7967e99d1300ac15 *mips-linux.elf/upx-3.95
|
6c76928b5914b5c2e072bf2f90a2c95049cc41aec6b98b1f0b3c4f84df069f02 *mips-linux.elf/upx-3.95
|
||||||
52746060c4c7971a4e786ba618896eebe9592f1b443c0d217d4e2cdb8b34fa8d *mipsel-linux.elf/upx-3.91
|
029c2a47f1f613c538d2f39674167489a9d1bbbb6649a06d51d2b5ea983b4924 *mipsel-linux.elf/upx-3.91
|
||||||
7367c89786c15b2d8305f41980b84addfddff69f2dae0f0572a88ffee6abe884 *mipsel-linux.elf/upx-3.95
|
4d837edcaf344505ad1a3721ec8e5db35ddaa273a747201e460b946c0a89d6ea *mipsel-linux.elf/upx-3.95
|
||||||
4504c03dcc84be9f5ffc2279c4638c47a435a70c4748f1e25a738af33dc20720 *powerpc-linux.elf/upx-3.91
|
0e24a9e58939f7aacd3482db24e04bdac406a658dbb8d5e65d71d76d455e5aa5 *powerpc-linux.elf/upx-3.91
|
||||||
ef410a9cbd01c7c046f888417cb451aad8ebe4288aeb98319f689a030517d181 *powerpc-linux.elf/upx-3.95
|
04bd4885f37c77a34b39e76cca2fd363f794ed1611093d7fffe1ee19920ce1dd *powerpc-linux.elf/upx-3.95
|
||||||
da073cf9edf9d6efd0495d3f09101972541cdccd9df3c5a07df97e47ce1f77c3 *powerpc64le-linux.elf/upx-3.95
|
3b6be5bff0e435a8dbd8529562912c58dafdcb9694d75564238f3d086048abd2 *powerpc64le-linux.elf/upx-3.95
|
||||||
"
|
"
|
||||||
expected_sha256sums__t130_compress_ucl_nrv2e_3_no_filter="\
|
expected_sha256sums__t130_compress_ucl_nrv2e_3_no_filter="\
|
||||||
1777841250f6b34fe7b75e2931b5154918abea5e7c47047f523ab15ed59e0658 *amd64-linux.elf/upx-3.91
|
715de64e0911c959d0ea208db13bf23a5e635e97e73feb9e04ac9d32117e6a3f *amd64-linux.elf/upx-3.91
|
||||||
9fefd378d92d1e370c450dd8d3f826248594ca7234aa6fccc83d20aa37694cdd *amd64-linux.elf/upx-3.95
|
da805c93ffea03da2f0c0dbb1b313cf0d88ef2c0cb0ad77b0be792210106cd6c *amd64-linux.elf/upx-3.95
|
||||||
b5a9eee9a774712899148a339cb8326e51a120355cb0dbb5a59f07ef4a149562 *amd64-win64.pe/upx-3.95.exe
|
213e6d3c80b4d741e8c78da915d32c1a2b74072d31e86ec46a10ac2535cf8f6f *amd64-win64.pe/upx-3.95.exe
|
||||||
e56b71096f08c30448f560ccd60e5bffcb1f14d5b84948005d9d707600e50311 *arm-linux.elf/upx-3.95
|
3a66e868147347208935c042517b9f0e2e30d2dbb5c004ec8df6a9ab1e42ecd5 *arm-linux.elf/upx-3.95
|
||||||
9e1c47059e892f73a4fa118a6b435d455613e4ff4b4ab3fb432dd45adcc06809 *arm-wince.pe/upx-3.91.exe
|
8d295980b1e6a8240bf75b86a9b8e4561424cbabeab01246f51e553d84b40839 *arm-wince.pe/upx-3.91.exe
|
||||||
615437bd5f987fae39502999fc1fd6a8857cdbffa4001cba1b485a8ddd0dbd14 *arm64-linux.elf/upx-3.95
|
194947a439c1348570e45343e404c409be3f10feb70fdd87d9bca0addc772c44 *arm64-linux.elf/upx-3.95
|
||||||
37dec03e64c74da1e194fb129231c5e87fb3398f4a4f1d269de9bc2487068a6a *armeb-linux.elf/upx-3.91
|
a01384f43803428e0bfc5f8152304eb8618ef862e4e996a4a4fa4dd9c4576833 *armeb-linux.elf/upx-3.91
|
||||||
e45e09fca25c28cbd458c636ac1d060bc08bab37a6571880b6f32a6e26ecaff8 *armeb-linux.elf/upx-3.95
|
f2fdba359d52bb82fbab093176a3fbf37b9cb13e8d297523ed57051c3bd401e3 *armeb-linux.elf/upx-3.95
|
||||||
b941187968c86db8a01f106098996f2c0cd227da66003856c19e8b24438f446a *i386-dos32.djgpp2.coff/upx-3.91.exe
|
582030394a570f92be2d31b3862ab7fb0a6f08982c793a4d41c1471d2cabb939 *i386-dos32.djgpp2.coff/upx-3.91.exe
|
||||||
8194a6a0de66019d8aa7f49504ec7303f155a2dbcf29489300428fb1bb5d1b4a *i386-dos32.djgpp2.coff/upx-3.95.exe
|
f60dc2f332f58b7fa08f551f8c33d645d71d9ee79e2a719130d10ea4091373ef *i386-dos32.djgpp2.coff/upx-3.95.exe
|
||||||
4380ef64efadd605bc0908ac2d56ee7597e665850d2291f40f5acd978f4ecbf8 *i386-linux.elf/upx-3.91
|
13887e5466a7d0fc2652aedcef44e33e6ee9b8d6f0ac21dbc4ec90fcc0613bfa *i386-linux.elf/upx-3.91
|
||||||
f9bacd9bf3a1f84455f0c647f615827606fba5608996cbae65c07a06b7b9ef42 *i386-linux.elf/upx-3.95
|
636759f884399ff05e8493a759f60ea52cd4640eb5e9760f12fc25fbf730b1ed *i386-linux.elf/upx-3.95
|
||||||
71b7880ee783da6182fa1dcc5cc8662eb15b82c2e96ea827f2dca3c83d4040c2 *i386-win32.pe/upx-3.91.exe
|
c4a5d27ce7d8f0f326e49489223eda188a9be61971a88758a559efb9f854611a *i386-win32.pe/upx-3.91.exe
|
||||||
629624e02dfa11c295e22989a09d5938c415ab2d32b7b4fdb009d3cc50c63933 *i386-win32.pe/upx-3.95.exe
|
4ca9a3dd0e0ec38cc1aa3720d9c666f86df4fbe9dcb87ef0dad56d0a47dc327a *i386-win32.pe/upx-3.95.exe
|
||||||
5215eb51b80d7d0f428da49c3249eb2b5e937f8b3487f2e59eb31e7f1b9155ee *m68k-atari.tos/upx-3.91.ttp
|
f34a020e6325d213052d9f09c775c4d292c34c51380b1ab1b22c6663645167f0 *m68k-atari.tos/upx-3.91.ttp
|
||||||
e393bb54cb21d93d1b4ade1048204e4a9ed1bb0ca0517e54f42fddf8dc09a89d *mips-linux.elf/upx-3.95
|
3006af1262a29173c46340f1ee4526fba41145f7476841d5bf6b499aa6dea0fd *mips-linux.elf/upx-3.95
|
||||||
7fd4a440ffa128a455b6e4a7864f75953a16fb593b5dc1b890c1ed111e80b021 *mipsel-linux.elf/upx-3.91
|
6af81d3c7cb6f1388925fe2d78ea96313d91d5e17249268739de4d56857f27bd *mipsel-linux.elf/upx-3.91
|
||||||
24357e6c79022919f181286d6ae5a8316078f30c01bbbb83169cd2794c7204ec *mipsel-linux.elf/upx-3.95
|
9d3849cd0037ef550703c574e0ccb3032b0d27217ec02c90a0ad8592d2a229f1 *mipsel-linux.elf/upx-3.95
|
||||||
e37070c89617e9d155507662ee98d9f97a7c506317fdbe22797769a5738e75c5 *powerpc-linux.elf/upx-3.91
|
704b6eb2033cf3eab30cbc53c35fc85bf0cb17f904528792de33967a1406091d *powerpc-linux.elf/upx-3.91
|
||||||
e2af43ea9cdc9f2e75de4c9a03ace0fabac9dcbfb54ea1b57031f2c860318663 *powerpc-linux.elf/upx-3.95
|
b89b2f3b250ddd156cb857717c86a0c0325a26dd084717c64f3022277ad02be4 *powerpc-linux.elf/upx-3.95
|
||||||
d7cf1e60f962094ce5b28e3e920ed4ba0b8b84daee896043f915ab036ed774c7 *powerpc64le-linux.elf/upx-3.95
|
d52f201ab041fa64a4ee4234bd0e443e883e402bb93ced9e22554bd3ef3cc9ab *powerpc64le-linux.elf/upx-3.95
|
||||||
"
|
"
|
||||||
expected_sha256sums__t140_compress_lzma_2_no_filter="\
|
expected_sha256sums__t140_compress_lzma_2_no_filter="\
|
||||||
0744ab571ee5d8ca76d0be11d474611771e417a99598b051f1d8a3a791a91533 *amd64-linux.elf/upx-3.91
|
af8536d70ecb8c0680c1c9dc45ef60dcb13fab99f0e4644d9f86216a9cf003e2 *amd64-linux.elf/upx-3.91
|
||||||
90660071ddb63165bf77f9175d3f9862d8626c085d932af2c2d66459a73cf409 *amd64-linux.elf/upx-3.95
|
004a705f4981a19f35767b33bdb70b942717a701ad8635bd56ba33e347c6ed69 *amd64-linux.elf/upx-3.95
|
||||||
9781094badb6013e8fd29caad2d7f369e79f60d5a5f66b547c2260e98b1c7d92 *amd64-win64.pe/upx-3.95.exe
|
cf07c202497ab38417ec3ccb65cbb0eb9b87f6c6df40d7dc4b44616282c8e0f8 *amd64-win64.pe/upx-3.95.exe
|
||||||
9224db1973129ab654bfa9154689e2f1e99c7e5118dad9f143fa7b3e49abcb82 *arm-linux.elf/upx-3.95
|
da153c1747e0e242cc8b90c04362f67caa0aa638562bc12fcc7fe08ebb1b4fcb *arm-linux.elf/upx-3.95
|
||||||
961d61207958be48cccb37e5c0a111d85ff3e5d8fb6d5e0ca92e8681320a6f4b *arm-wince.pe/upx-3.91.exe
|
9755110ebc951c9767e376155d9c6fee9789b009ce82ae47276664f5c832557e *arm-wince.pe/upx-3.91.exe
|
||||||
f044f8755d43dfd753327b6a5d1e69c8b73095fc12b3208be720ca2286a258c0 *arm64-linux.elf/upx-3.95
|
bb9e92b577ace19da295032c294063d724655cf5b97d014053c3fb05ce478884 *arm64-linux.elf/upx-3.95
|
||||||
85e460829c5bc3bad8a7a7c82b2dfcd64594980b443972de1e52d15f644225cb *armeb-linux.elf/upx-3.91
|
a3c639403fd7b2f035315773c1aa3f68cc0532cf5cd075defd34fa44c4bbbb7a *armeb-linux.elf/upx-3.91
|
||||||
4829edc4b97d2011e789272a4b8ad254d7df573a476bae5a71832e9aecbf0e7b *armeb-linux.elf/upx-3.95
|
3f9604a69a945d86b93f2182ee82f754881331c7ef566d0cd4dc36d7acfa1aa0 *armeb-linux.elf/upx-3.95
|
||||||
902a9f177818e680042911e77d17de3f4bd3846fac210581ccaa7643dd1426f2 *i386-dos32.djgpp2.coff/upx-3.91.exe
|
e6518528d60861e37cb8429376628a7f3d1d5fc90f0933facd70b4e9e0b50709 *i386-dos32.djgpp2.coff/upx-3.91.exe
|
||||||
665d3c278bb9a8e0cb28cffdf6a17c3c920052a2bf7d05b74413186b043ede28 *i386-dos32.djgpp2.coff/upx-3.95.exe
|
53280a22c34ee1733007ccf858e1f5416c0f7043a4361799087e19a4b2a7eaf4 *i386-dos32.djgpp2.coff/upx-3.95.exe
|
||||||
5ffc9d683e2e2050a7f4d6e03332de3754bb48efaf800e3dcd96678fcff6d15a *i386-linux.elf/upx-3.91
|
a51ce8993b3577fc2ee45b52174aaadc66c2f90ff53a0148ed096a65d99d24a2 *i386-linux.elf/upx-3.91
|
||||||
fbc487cf2343a2b277e5a1d469ea34b6b70ce609b2966ce6a372e004ae70a125 *i386-linux.elf/upx-3.95
|
d018260f04d1efc2b46c8b7ff5b132358e58cb062c158b08a7179fbb561b0e48 *i386-linux.elf/upx-3.95
|
||||||
9c35de99b53620cb09617061e7d01c31ff7a60f4bda7c4560b294ef18300c7f6 *i386-win32.pe/upx-3.91.exe
|
121e4acc3fbad4954cb2d2b957d229b042beaf4b68749c4f85ebfc60fcc80d43 *i386-win32.pe/upx-3.91.exe
|
||||||
9430239c9d12e7d796fe2fa2de10bef21985841a0adf2357a4ca6b08cf08f989 *i386-win32.pe/upx-3.95.exe
|
d604523130da29af35705d9008098ae8b4bb9e7d4743357674470252dd68b8d3 *i386-win32.pe/upx-3.95.exe
|
||||||
e3d224960f13424eb4083a547eefd907e3384cfd2ebe6e8d6a8bd56181f5339b *m68k-atari.tos/upx-3.91.ttp
|
4d26f0be2b6b6c4802515a7f0dfd97998c6d23e696ae6c0393c9ac0893885a9b *m68k-atari.tos/upx-3.91.ttp
|
||||||
fa9c411562d1d580944274e744d5d63c2268b334ef754fef89a666938c8601ee *mips-linux.elf/upx-3.95
|
4d3b0c7b4dabb5a7a193a0a2899f086f5dfc555106188131389678ecc137378a *mips-linux.elf/upx-3.95
|
||||||
dd71cec3b4c14c462f58f26077193c8ec2a302aa37b4ae59a6c92ce2d493cccc *mipsel-linux.elf/upx-3.91
|
be2e9fb66c087f37b58f203b406b618526296dd8c9c53e73bb622740f1e377ba *mipsel-linux.elf/upx-3.91
|
||||||
29c04c30ee8b3c2b4353d92b3e9ad5327af3d9f4439f2a93a08801bb456b7a2a *mipsel-linux.elf/upx-3.95
|
9da821fac44f787875727cf001ca33ed87e02c5fe477f0ebb965c5e0eb62c26c *mipsel-linux.elf/upx-3.95
|
||||||
2c109762689cf8691dcc6ad952f27863dd0fc79bfa74883702dc3a4601784aa5 *powerpc-linux.elf/upx-3.91
|
98d7c0214663ae47f59244a90aabbb72a798a4ad0c74ce79d448013f5cad6893 *powerpc-linux.elf/upx-3.91
|
||||||
2ad4441667860519efbd0cd60744ceadcce73e3019acd80e593917ce76b3cbf1 *powerpc-linux.elf/upx-3.95
|
c58266817c4e38982c66e4b75e0002c6e7a51710864f930987b8670ee121ee0b *powerpc-linux.elf/upx-3.95
|
||||||
970fe74533bd7b7c3bd7ddb300f982cde77227f2b1a69155a8dfb30366574d76 *powerpc64le-linux.elf/upx-3.95
|
7fecab59271c9d4596bd79978e112a5fea72e33bd7c53c1985d187009d807724 *powerpc64le-linux.elf/upx-3.95
|
||||||
"
|
"
|
||||||
expected_sha256sums__t150_compress_ucl_2_all_filters="\
|
expected_sha256sums__t150_compress_ucl_2_all_filters="\
|
||||||
62e5a3fe8a9e2f7934194904ebfebd445e194b17fe3171c07d22017b3aa09419 *amd64-linux.elf/upx-3.91
|
977380191b474f5a7fa78e8015a279bfaa77626bc56d83185fec8761531b3029 *amd64-linux.elf/upx-3.91
|
||||||
351c778baa6826faf9661c7c5b8e8c0dd49a8aa5899f0107b2f5f7a4e3a69f3e *amd64-linux.elf/upx-3.95
|
4f94c9bee7a2f7deed245dc767c215654a41373be978123c3f1ef9074454c59d *amd64-linux.elf/upx-3.95
|
||||||
3b943c943fe91b948e159c5687db6ff1b22acae0552d1cbf50a181750873f8d4 *amd64-win64.pe/upx-3.95.exe
|
00aa338efc865f720a901afb1c19064cf137abb71d361be9b19192b0ff8a9479 *amd64-win64.pe/upx-3.95.exe
|
||||||
cda2ba38e20f75623cea46cd75f604cd5466edd63cb9eafca64ea0fe765c69eb *arm-linux.elf/upx-3.95
|
c1908a58fcc23a9a964f2cd5f76f805a7cc9ca39480d129c6bdb8db30033840b *arm-linux.elf/upx-3.95
|
||||||
dea0d13ec7b3f1208988d25c30e3bcd60bc013186a88cc82c998e86f320cad99 *arm-wince.pe/upx-3.91.exe
|
78ffa99aa69e2f66f864dce88e787e3b1c0c056009e0f863986d65aabd186107 *arm-wince.pe/upx-3.91.exe
|
||||||
b748ca51f52811112aeea21aba9d0e59b67512d98b1e01f71c22bf4fe755304d *arm64-linux.elf/upx-3.95
|
245c6bb22ae2b39671503244329f1e4498277b06d600447ad81c7d41ebc872d6 *arm64-linux.elf/upx-3.95
|
||||||
57686ad3f48c7d950f866f534232693ecc3489f322bb8f1eaf78fbcbbc3bba4d *armeb-linux.elf/upx-3.91
|
9e359728cdb9bf6ea21a864b2c9da56809eda27d6b88828b85ab815311bf77b6 *armeb-linux.elf/upx-3.91
|
||||||
c50c2f015491e40a8b687ae91827cf502e46e47dff21382b19c8e626388e5fe3 *armeb-linux.elf/upx-3.95
|
86edb5959b5cabad270d7c77e750bc710424b92cfb2ebaeedf3ba403382f4e93 *armeb-linux.elf/upx-3.95
|
||||||
d597d829ef4beca9759c51b135f3cfd1e17c17c1d7cda04e9cb453e76742c9dc *i386-dos32.djgpp2.coff/upx-3.91.exe
|
b65db2766ffdd45657a07edd57426c55acce2a73a1e3559ab43903ae77574131 *i386-dos32.djgpp2.coff/upx-3.91.exe
|
||||||
ac0cc4beea08af6a39ec037d0b2a4e77d0951776e0f9ac945e8b0033b227cc30 *i386-dos32.djgpp2.coff/upx-3.95.exe
|
e827d64700b14e8c19de2882e66d0df0fca4cda0255ae41a66810e4c86583a93 *i386-dos32.djgpp2.coff/upx-3.95.exe
|
||||||
9204e3fabb4cca148a0d545f9ae3d7facd199edc570d4ce9b9794c4c7d8f46e3 *i386-linux.elf/upx-3.91
|
c95a7ad9a5015abb1b8a163afe46b4f1529c70ca4ef9353cfb6e5c7eef60245c *i386-linux.elf/upx-3.91
|
||||||
7953f12209c9838707898a73a79962764c01d7106c9c743e7437d996042811b5 *i386-linux.elf/upx-3.95
|
21ef65f5c756f216c0f9db9475a7514e10b8e003c30bc22416ec8156cba65252 *i386-linux.elf/upx-3.95
|
||||||
2e6dbebbae2997ae689c616221f7eecf72117d148783025363b99580df79fdad *i386-win32.pe/upx-3.91.exe
|
6db34f6cdc626c4857fc7b188910562909e571eed3be2116448e244ca82eaa64 *i386-win32.pe/upx-3.91.exe
|
||||||
8d549e43950072ce5d271ecad25331e29a9886c4f034f150260af20f8a57feb9 *i386-win32.pe/upx-3.95.exe
|
68a08dd3995681af594c66df4b94559e5900f0a09fcf822e3fc2522c3133ad69 *i386-win32.pe/upx-3.95.exe
|
||||||
d4eabc9adebd7edd40483f34ceb4081157c7542cdcea0f6b4b4dec640084fc6f *m68k-atari.tos/upx-3.91.ttp
|
1546ce426b3cfe38bdea18fafadee409253d5d2b452aae5476e073b29e17bb58 *m68k-atari.tos/upx-3.91.ttp
|
||||||
d03d5702382fd391c61736a3dda350737590c05de07837aa3ac0eb23ff9e6d7a *mips-linux.elf/upx-3.95
|
6ecc64d1fb9fb2a675980ce939b0b8142e802e7218b8ea45f2bb82205ed9242e *mips-linux.elf/upx-3.95
|
||||||
431e8d80da56f51339a914c5bc4cf00242a7a8afbc4a77837888c42fb4888c3b *mipsel-linux.elf/upx-3.91
|
eb3c90f8f775e70cb2cc187b7e55d66a3bb28fa760e14a17353acd1130fd122a *mipsel-linux.elf/upx-3.91
|
||||||
8a9722f82e89c2d83437503765b9e0798854b960839d3fa57e6ccd2f581ed352 *mipsel-linux.elf/upx-3.95
|
b47964dbe65e9975d6bddfbfdd321a5e6c96b6eba79b30d0f94ec4323b796991 *mipsel-linux.elf/upx-3.95
|
||||||
2bcf9a0b0245e807a4728f84ca134ab30371a91a2d247ed63ea80fbf4f6a44be *powerpc-linux.elf/upx-3.91
|
c32a2deaa707eafaed36a4ab8fb26bb8d8c63a9743b19ad207e305553d14c7fe *powerpc-linux.elf/upx-3.91
|
||||||
37b3f5e0a7973ca5143dea5fc7d116d759f662780ee0b809357554b21fd4bbb0 *powerpc-linux.elf/upx-3.95
|
c4dbfbd0f5021d50f1addc68273f20b49204bf26ae8c8896a0aacc7d2c5a2d47 *powerpc-linux.elf/upx-3.95
|
||||||
04c9a8dfb2bc25327894045cc5b5f8325fb7fe90d77473ad08c5491c58b28988 *powerpc64le-linux.elf/upx-3.95
|
bb96ea8a29500893b729dad4afe90b09186641c32c42a70a3d2380a771f896d9 *powerpc64le-linux.elf/upx-3.95
|
||||||
"
|
"
|
||||||
expected_sha256sums__t160_compress_all_methods_1_no_filter="\
|
expected_sha256sums__t160_compress_all_methods_1_no_filter="\
|
||||||
0c2dedc98ac535a39c4166db713ed6feb02680869d23cc734c40e4d4ee36c6b4 *amd64-linux.elf/upx-3.91
|
de00c3bcb56d78c3fd1d1e633b3f64b884b3611abc305b9e79f4f14385178418 *amd64-linux.elf/upx-3.91
|
||||||
dc87386b6afd2a36ab6ca67139399f9de6b3d29edb1741b523236e596c625043 *amd64-linux.elf/upx-3.95
|
eb5aea4d780711dd59e3f86d34a49f16d3669acc6569292bf9ea445d406c5c80 *amd64-linux.elf/upx-3.95
|
||||||
b75527ed6cfd8fa9b48a68e021545833790bc2817c2155cc5eeb97cb9d43cd5c *amd64-win64.pe/upx-3.95.exe
|
2fae12ccc55eeac6c05ff2c6b27539c66816080647283ac2e1b22576242b6bb5 *amd64-win64.pe/upx-3.95.exe
|
||||||
56416fe7d9100ebb3dddee598ce0844d1abfc6f006178b5fa05fc6d1d15e9a8c *arm-linux.elf/upx-3.95
|
14120b8348172a08cd7651184941820ed1c69b7a8d859e375390eee529f5c94e *arm-linux.elf/upx-3.95
|
||||||
3ea0a4cafa457a1bf86ddf659a57c5737c4fa79b4a0d161df1c55c7ff0fa5ad5 *arm-wince.pe/upx-3.91.exe
|
a6690508c1acdaa07ce97feec0f330182c24206d8e9133949d2a42fccc1cbf27 *arm-wince.pe/upx-3.91.exe
|
||||||
0fe74c52794dc63e8e92590413eea6aceb73a9cb9f34bed3eae9a8fc34aa5ef2 *arm64-linux.elf/upx-3.95
|
4f30adcd3d047fad15344bf6cf3cf4f91cfbacbb121af889df8634fa4c888247 *arm64-linux.elf/upx-3.95
|
||||||
5eb71685d564fdc4e99d939e5b2d58d8a8341288bcde5eac06f465c68a61a40a *armeb-linux.elf/upx-3.91
|
f85f0a70b024a050999d476420b9db88206e340b2ffff3781c491b538ae03e37 *armeb-linux.elf/upx-3.91
|
||||||
08516cb6655f58965c4dea7c9227aac78e3bcffd8113062dd72118e074b3380e *armeb-linux.elf/upx-3.95
|
e1b2dc75427212dc268c6921aa2059adf5709b21f230432a4725b16e1c64b238 *armeb-linux.elf/upx-3.95
|
||||||
2a98332d1e82db93f7025dcf792d0e8924caf38fa9b4c22963841ab5e86d22ce *i386-dos32.djgpp2.coff/upx-3.91.exe
|
fcf64cfce9e9762e03740d2bf9e2e86d873ade1b6f4a68eb07625f516426810d *i386-dos32.djgpp2.coff/upx-3.91.exe
|
||||||
6939a695082de59e8993886c8213aaff1ca2ed1d7687404dd242796e27275a42 *i386-dos32.djgpp2.coff/upx-3.95.exe
|
9188a6f911b79fb8629880836b2f5787eb4d938872ba4f1a64c93e70cde9f428 *i386-dos32.djgpp2.coff/upx-3.95.exe
|
||||||
0a866faf423e2c134f26ec705916b7ded0cdcb4c11fcb4e3b1ff75291d0b9d71 *i386-linux.elf/upx-3.91
|
8369ff8112aeb55a1684ce0ec16e13e6bc524b734557b49b292f9aae60edccb6 *i386-linux.elf/upx-3.91
|
||||||
523d569a0682728fa84312db03930d290b7f6ef71eb2222fd81ebeb4bcc16ffa *i386-linux.elf/upx-3.95
|
c4e16cc1a64db618d9038ea9ba6032b7fe5aac05c0d7731b91373094a6a0f6e4 *i386-linux.elf/upx-3.95
|
||||||
e1f8df77bb4591b1a68f7c110ed36ad778fef240ed52f9d3e511318a2d091e66 *i386-win32.pe/upx-3.91.exe
|
b21cf7756542b3bab5f4a59d4036cd3176e297dceb744dec96ac365be6568dcd *i386-win32.pe/upx-3.91.exe
|
||||||
265f4c7045bae686897dd9981575a5ebeb99ab28233d66e9a8164789359f00d8 *i386-win32.pe/upx-3.95.exe
|
b1bc0d360918d51ca7b7f32f5083845e4566c7fa7a425d0451f4b10f227d1eac *i386-win32.pe/upx-3.95.exe
|
||||||
55732af6251cc6aa7bbb9c52415424a8cc4074288004a6064d9311a2ee01fddb *m68k-atari.tos/upx-3.91.ttp
|
c40af5d1ba0531abb92587cbcbe604d4f562b685d6e7bbb40ec4d879fddf1267 *m68k-atari.tos/upx-3.91.ttp
|
||||||
138f3f2798f0cac9235011f14910ef6b079b908746d570a2ec631bb62d0f5917 *mips-linux.elf/upx-3.95
|
0865d2f1d65e2693d801b3c28d64910a009707be65598772df655c640469a4e5 *mips-linux.elf/upx-3.95
|
||||||
4f740937696b2d86a4bd89ec61d52338db4c739c71a8dde5cc6ff67f675304c6 *mipsel-linux.elf/upx-3.91
|
4cf108686c2419c6d82eecb2473a6d0ca0a0b47096cc01ea2b55113f84762cc7 *mipsel-linux.elf/upx-3.91
|
||||||
18b3320462c479420723407cc3aea2b07911a4c725b0c334e1d9585a51c86bf0 *mipsel-linux.elf/upx-3.95
|
0a90a99e0ebb1e9c86e0bdf6a3eec6ca116e65b235ba1ee9029694b84cadc438 *mipsel-linux.elf/upx-3.95
|
||||||
c8f8974ebc401286910894d6751b0a13cd908d09b51e186e49e0c309ace3d282 *powerpc-linux.elf/upx-3.91
|
4d8f85d254b1fd87bebe2fd732afd6214c98b869cda17ff0c4c566358446038a *powerpc-linux.elf/upx-3.91
|
||||||
ad08eb6c4339cd8ec63c12dd8551ef10851dcce66be27d0f9fbb251003ef0f4b *powerpc-linux.elf/upx-3.95
|
bbc6179756637db10b636d7383226cb1d685866e8e9191069107725365b42f38 *powerpc-linux.elf/upx-3.95
|
||||||
fb0fa7d60c542653e7d3448f2aa69e7c2ed5aaebf3845d5aa5f10c5bff2ee279 *powerpc64le-linux.elf/upx-3.95
|
52d7db1d6d6611d4a064c036b57044fd93d4c5762452be07188ee2ff6b1e42bc *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="\
|
||||||
3a5098207aa95f40fd8a62a6a79f416837f69bf0a1ac729264fbee72d1fae0f6 *amd64-linux.elf/upx-3.91
|
ee887f19ee6a5d5f0a0ce7116a41570e106c10bc0bb25acf7eb3ee254c1ed560 *amd64-linux.elf/upx-3.91
|
||||||
4748b6f0bb08e1417dc62cff1c049eb2ee993717be4f9f5359fc7454e736def2 *amd64-linux.elf/upx-3.95
|
9bd019e6442b219825f19082a20e4e73c49b24a4dee39e9e2cf0fc907ecdb46f *amd64-linux.elf/upx-3.95
|
||||||
9fc18a2ec177ff3b48b5d299828e3275be1585db6c205ec5652e3d13f4d91eda *amd64-win64.pe/upx-3.95.exe
|
382fe4b3e4f575322b746d7d45e4553ba3cf47cb4351b9900508fb52a00118ad *amd64-win64.pe/upx-3.95.exe
|
||||||
d90b9a2f71107025885e289633ef9e7942f494a7f8aa0e0597e79664b09ad034 *arm-linux.elf/upx-3.95
|
ae71103c2e105099ab345a648abf109b9aec3039137c90af30710dd4a4b51736 *arm-linux.elf/upx-3.95
|
||||||
f03a3f07787765e499ad5a60f7c576598f433ba9a1f4d7158b0923f510929142 *arm-wince.pe/upx-3.91.exe
|
9150f49be3fcb03a5f23b209e5db443c9b96fa4d8e20d3730195f9eafff5d8e8 *arm-wince.pe/upx-3.91.exe
|
||||||
d01b573be7bb79257c3e0637f38a7fe8940e9302c7391fbc4a75664219a5522c *arm64-linux.elf/upx-3.95
|
100d9cee849b7996cbde2dc82df766e5104ae030055ae9b286c53b60e9e51405 *arm64-linux.elf/upx-3.95
|
||||||
085600cfffbe1d9e0c1bc25a3e48bbf3130b023b49ccbca001db27b4881e6246 *armeb-linux.elf/upx-3.91
|
43ded21db5b7b8355bc371e39cd3b1be05e91635e3cb6d64f9a8aea16127e157 *armeb-linux.elf/upx-3.91
|
||||||
a7923c6b78b9d3d58ee4f1bc42861476a57bb9935af47d2a15e048efb642f5d4 *armeb-linux.elf/upx-3.95
|
b0ac3a36871630af80bb9b6ba94604b3ebc1fe05fdb6d095a7c461916fb3d231 *armeb-linux.elf/upx-3.95
|
||||||
0970d5a8ee6c819e11b2bd889c7ee908403af2adf3542f7670ed92eb51090485 *i386-dos32.djgpp2.coff/upx-3.91.exe
|
36b6a947567386e325f1d3ff84a55ecbd37687e3264cfb0a57aa5e3be5ff85f9 *i386-dos32.djgpp2.coff/upx-3.91.exe
|
||||||
e2d6b3c8de85bdc7b0262f64c1a16c9d41695a92e6f374cc9f12e87ca78fd956 *i386-dos32.djgpp2.coff/upx-3.95.exe
|
ad02fcac751563d49cb0711d818231c1030bad9ef2b12fd54e60e2bc6510e9d6 *i386-dos32.djgpp2.coff/upx-3.95.exe
|
||||||
9e28e20b115e4a671b3f4006934b94fd59fcd48dc36311a479dda6bc1ccebe07 *i386-linux.elf/upx-3.91
|
d1b4e2c81a0baf4ad273dd96722783e9219e69049a78d536757f39761a7cfe8b *i386-linux.elf/upx-3.91
|
||||||
910401db763c9a0bcb8e4d1b9cf1ee476c034b94b54a9350bcd303a5487085ef *i386-linux.elf/upx-3.95
|
6e509d556ccd2af102d43924bd4eb1e9bed9d557e44387769032df4ede525f0d *i386-linux.elf/upx-3.95
|
||||||
0a413298c461facb93048106cfd261d72192443e6d2d313f2b48dbdf6537b22a *i386-win32.pe/upx-3.91.exe
|
2138186fb26cc7983ec4a4ead290573f2e8226fea4a0b9b6d668d86fb21d1573 *i386-win32.pe/upx-3.91.exe
|
||||||
684a0e0309d062e3fb7a1fabbdb7b2be45d3bde6a9a030f8a45fcc369a066efa *i386-win32.pe/upx-3.95.exe
|
5f286eaf28bab252a0f4f069b7b88910b9ce62327c4d15837b91ce65e4f9030e *i386-win32.pe/upx-3.95.exe
|
||||||
3ea4fe59d58b92fe0b0e41662c15c40130d72ed30425871d572a8c06c3c27bbf *m68k-atari.tos/upx-3.91.ttp
|
0ab25c2cd8cf53a31323464080991344479998f45fd9b215caba003f96e9e11c *m68k-atari.tos/upx-3.91.ttp
|
||||||
e098036f912764f9dcef7377d17fe15b4f21439303306f9c84838d35fe655530 *mips-linux.elf/upx-3.95
|
ba14b6b4e846d29bd4211fbcdb2a641f55f8a5700806af64c52182736b757f46 *mips-linux.elf/upx-3.95
|
||||||
df4106be954d5233644a3d761a9f899132f052741d16e1d793ae481aafd51caa *mipsel-linux.elf/upx-3.91
|
40c23e16bfe68ec0a59f9651ac747db1e81f07deabc4c22a732e40e03e2b1100 *mipsel-linux.elf/upx-3.91
|
||||||
4c87f94f926aedbe17bf2d7ef72873506bbae75b8abf51a6775eb4b2e0ac0d96 *mipsel-linux.elf/upx-3.95
|
7d353d8381c3401c3c9765fa6091c634791ae9b7338ca5b769f63c38f8f418e7 *mipsel-linux.elf/upx-3.95
|
||||||
4c6b2ca8ed7bbe6b9705f02a26781e6d93ab2a1011c119283130a738df5e47eb *powerpc-linux.elf/upx-3.91
|
b43bd16efb19081fe0945948231486cdd1b1157d193ab7cbbd470594f46c57ca *powerpc-linux.elf/upx-3.91
|
||||||
ccecc0acef4c430a8871704f93280a17bff518267499f05ba89a5290ba654a89 *powerpc-linux.elf/upx-3.95
|
7a8a24fa57d17f99b11133a0822a5e499681d09695525b80f8c61d90d06c4ac8 *powerpc-linux.elf/upx-3.95
|
||||||
86123a78b0ff91321acbc837874034c099443f77ff62848e338bb61c0888e1c6 *powerpc64le-linux.elf/upx-3.95
|
0339ffc1d99f5b5ad12e8492b6a9dc707f705a120494a6bc453fb8617808d10a *powerpc64le-linux.elf/upx-3.95
|
||||||
"
|
"
|
||||||
########## end .sha256sums.recreate
|
########## end .sha256sums.recreate
|
||||||
|
|||||||
@@ -29,23 +29,25 @@ if [[ -z $upx_exe ]]; then echo "UPX-ERROR: please set \$upx_exe"; exit 1; fi
|
|||||||
if [[ ! -f $upx_exe ]]; then echo "UPX-ERROR: file '$upx_exe' does not exist"; exit 1; fi
|
if [[ ! -f $upx_exe ]]; then echo "UPX-ERROR: file '$upx_exe' does not exist"; exit 1; fi
|
||||||
upx_exe=$(readlink -fn "$upx_exe") # make absolute
|
upx_exe=$(readlink -fn "$upx_exe") # make absolute
|
||||||
[[ -f $upx_exe ]] || exit 1
|
[[ -f $upx_exe ]] || exit 1
|
||||||
upx_run=()
|
|
||||||
|
# set emu and run_upx
|
||||||
|
emu=()
|
||||||
if [[ -n $upx_exe_runner ]]; then
|
if [[ -n $upx_exe_runner ]]; then
|
||||||
# usage examples:
|
# usage examples:
|
||||||
# export upx_exe_runner="qemu-x86_64 -cpu Nehalem"
|
# export upx_exe_runner="qemu-x86_64 -cpu Nehalem"
|
||||||
# export upx_exe_runner="valgrind --leak-check=no --error-exitcode=1 --quiet"
|
# export upx_exe_runner="valgrind --leak-check=no --error-exitcode=1 --quiet"
|
||||||
# export upx_exe_runner="wine"
|
# export upx_exe_runner="wine"
|
||||||
IFS=' ' read -r -a upx_run <<< "$upx_exe_runner" # split at spaces into array
|
IFS=' ' read -r -a emu <<< "$upx_exe_runner" # split at spaces into array
|
||||||
elif [[ -n $CMAKE_CROSSCOMPILING_EMULATOR ]]; then
|
elif [[ -n $CMAKE_CROSSCOMPILING_EMULATOR ]]; then
|
||||||
IFS=';' read -r -a upx_run <<< "$CMAKE_CROSSCOMPILING_EMULATOR" # split at semicolons into array
|
IFS=';' read -r -a emu <<< "$CMAKE_CROSSCOMPILING_EMULATOR" # split at semicolons into array
|
||||||
fi
|
fi
|
||||||
upx_run+=( "$upx_exe" )
|
run_upx=( "${emu[@]}" "$upx_exe" )
|
||||||
echo "upx_run='${upx_run[*]}'"
|
echo "run_upx='${run_upx[*]}'"
|
||||||
|
|
||||||
# upx_run sanity check, part1
|
# run_upx sanity check
|
||||||
if ! "${upx_run[@]}" --version-short >/dev/null; then echo "UPX-ERROR: FATAL: upx --version-short FAILED"; exit 1; fi
|
if ! "${run_upx[@]}" --version-short >/dev/null; then echo "UPX-ERROR: FATAL: upx --version-short FAILED"; exit 1; fi
|
||||||
if ! "${upx_run[@]}" -L >/dev/null 2>&1; then echo "UPX-ERROR: FATAL: upx -L FAILED"; exit 1; fi
|
if ! "${run_upx[@]}" -L >/dev/null 2>&1; then echo "UPX-ERROR: FATAL: upx -L FAILED"; exit 1; fi
|
||||||
if ! "${upx_run[@]}" --help >/dev/null; then echo "UPX-ERROR: FATAL: upx --help FAILED"; exit 1; fi
|
if ! "${run_upx[@]}" --help >/dev/null; then echo "UPX-ERROR: FATAL: upx --help FAILED"; exit 1; fi
|
||||||
|
|
||||||
# upx_testsuite_SRCDIR
|
# upx_testsuite_SRCDIR
|
||||||
if [[ -z $upx_testsuite_SRCDIR ]]; then
|
if [[ -z $upx_testsuite_SRCDIR ]]; then
|
||||||
@@ -74,19 +76,30 @@ fi
|
|||||||
mkdir -p "$upx_testsuite_BUILDDIR" || exit 1
|
mkdir -p "$upx_testsuite_BUILDDIR" || exit 1
|
||||||
upx_testsuite_BUILDDIR=$(readlink -fn "$upx_testsuite_BUILDDIR") # make absolute
|
upx_testsuite_BUILDDIR=$(readlink -fn "$upx_testsuite_BUILDDIR") # make absolute
|
||||||
[[ -d $upx_testsuite_BUILDDIR ]] || exit 1
|
[[ -d $upx_testsuite_BUILDDIR ]] || exit 1
|
||||||
|
|
||||||
cd / && cd "$upx_testsuite_BUILDDIR" || exit 1
|
cd / && cd "$upx_testsuite_BUILDDIR" || exit 1
|
||||||
: > ./.mfxnobackup
|
: > ./.mfxnobackup
|
||||||
|
|
||||||
# upx_run sanity check, part2
|
# run_upx sanity check after "cd"
|
||||||
if ! "${upx_run[@]}" --version-short >/dev/null; then
|
if ! "${run_upx[@]}" --version-short >/dev/null; then
|
||||||
echo "UPX-ERROR: FATAL: upx --version-short FAILED"
|
echo "UPX-ERROR: FATAL: upx --version-short FAILED"
|
||||||
echo "please make sure that \$upx_exe contains ABSOLUTE file paths and can be run from any directory"
|
echo "please make sure that \$upx_exe contains ABSOLUTE file paths and can be run from any directory"
|
||||||
echo "INFO: upx_run='${upx_run[*]}'"
|
echo "INFO: run_upx='${run_upx[*]}'"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
if ! "${upx_run[@]}" -L >/dev/null 2>&1; then echo "UPX-ERROR: FATAL: upx -L FAILED"; exit 1; fi
|
|
||||||
if ! "${upx_run[@]}" --help >/dev/null; then echo "UPX-ERROR: FATAL: upx --help FAILED"; exit 1; fi
|
#***********************************************************************
|
||||||
|
# setup
|
||||||
|
#***********************************************************************
|
||||||
|
|
||||||
|
#set -x # debug
|
||||||
|
|
||||||
|
exit_code=0
|
||||||
|
num_errors=0
|
||||||
|
all_errors=
|
||||||
|
|
||||||
|
export UPX="--prefer-ucl --no-color --no-progress"
|
||||||
|
export UPX_DEBUG_DISABLE_GITREV_WARNING=1
|
||||||
|
export UPX_DEBUG_DOCTEST_DISABLE=1 # already checked above
|
||||||
|
|
||||||
case $UPX_TESTSUITE_LEVEL in
|
case $UPX_TESTSUITE_LEVEL in
|
||||||
[0-8]) ;;
|
[0-8]) ;;
|
||||||
@@ -97,19 +110,6 @@ if [[ $UPX_TESTSUITE_LEVEL == 0 ]]; then
|
|||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#***********************************************************************
|
|
||||||
# setup
|
|
||||||
#***********************************************************************
|
|
||||||
|
|
||||||
#set -x # debug
|
|
||||||
exit_code=0
|
|
||||||
num_errors=0
|
|
||||||
all_errors=
|
|
||||||
|
|
||||||
export UPX="--prefer-ucl --no-color --no-progress"
|
|
||||||
export UPX_DEBUG_DISABLE_GITREV_WARNING=1
|
|
||||||
export UPX_DEBUG_DOCTEST_VERBOSE=0
|
|
||||||
|
|
||||||
rm -rf ./testsuite_1
|
rm -rf ./testsuite_1
|
||||||
mkdir testsuite_1 || exit 1
|
mkdir testsuite_1 || exit 1
|
||||||
cd testsuite_1 || exit 1
|
cd testsuite_1 || exit 1
|
||||||
@@ -121,11 +121,11 @@ cd testsuite_1 || exit 1
|
|||||||
run_upx() {
|
run_upx() {
|
||||||
local ec=0
|
local ec=0
|
||||||
if [[ $UPX_TESTSUITE_VERBOSE == 1 ]]; then
|
if [[ $UPX_TESTSUITE_VERBOSE == 1 ]]; then
|
||||||
echo "LOG: '${upx_run[*]}' $*"
|
echo "LOG: '${run_upx[*]}' $*"
|
||||||
fi
|
fi
|
||||||
"${upx_run[@]}" "$@" || ec=$?
|
"${run_upx[@]}" "$@" || ec=$?
|
||||||
if [[ $ec != 0 ]]; then
|
if [[ $ec != 0 ]]; then
|
||||||
echo "FATAL: '${upx_run[*]}' $*"
|
echo "FATAL: '${run_upx[*]}' $*"
|
||||||
echo " (exit code was $ec)"
|
echo " (exit code was $ec)"
|
||||||
exit 42
|
exit 42
|
||||||
fi
|
fi
|
||||||
@@ -319,7 +319,7 @@ ls -l "$upx_exe"
|
|||||||
if command -v file >/dev/null; then
|
if command -v file >/dev/null; then
|
||||||
file "$upx_exe" || true
|
file "$upx_exe" || true
|
||||||
fi
|
fi
|
||||||
echo "upx_run='${upx_run[*]}'"
|
echo "run_upx='${run_upx[*]}'"
|
||||||
echo "upx_testsuite_SRCDIR='$upx_testsuite_SRCDIR'"
|
echo "upx_testsuite_SRCDIR='$upx_testsuite_SRCDIR'"
|
||||||
echo "upx_testsuite_BUILDDIR='$upx_testsuite_BUILDDIR'"
|
echo "upx_testsuite_BUILDDIR='$upx_testsuite_BUILDDIR'"
|
||||||
echo ".sha256sums.{expected,current} counts:"
|
echo ".sha256sums.{expected,current} counts:"
|
||||||
|
|||||||
+5
-8
@@ -3,8 +3,8 @@
|
|||||||
# Copyright (C) Markus Franz Xaver Johannes Oberhumer
|
# Copyright (C) Markus Franz Xaver Johannes Oberhumer
|
||||||
#
|
#
|
||||||
|
|
||||||
# NOTE: this Makefile is deprecated - please directly use
|
# NOTE: this Makefile is intended for developers - please use
|
||||||
# the top-level CMake build instead.
|
# the top-level Makefile instead
|
||||||
|
|
||||||
ifndef srcdir
|
ifndef srcdir
|
||||||
srcdir := $(patsubst %/,%,$(dir $(lastword $(MAKEFILE_LIST))))
|
srcdir := $(patsubst %/,%,$(dir $(lastword $(MAKEFILE_LIST))))
|
||||||
@@ -14,7 +14,7 @@ ifndef top_srcdir
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
#***********************************************************************
|
#***********************************************************************
|
||||||
# redirect to top-level CMake build
|
# redirect to top-level Makefile
|
||||||
#***********************************************************************
|
#***********************************************************************
|
||||||
|
|
||||||
# NOTE that the top-level Makefile .DEFAULT_GOAL is build/release
|
# NOTE that the top-level Makefile .DEFAULT_GOAL is build/release
|
||||||
@@ -31,11 +31,7 @@ build/debug+test build/release+test build/all+test: PHONY; $(MAKE) -C $(top_srcd
|
|||||||
debug release all: PHONY; $(MAKE) -C $(top_srcdir) $@
|
debug release all: PHONY; $(MAKE) -C $(top_srcdir) $@
|
||||||
debug+test release+test all+test: PHONY; $(MAKE) -C $(top_srcdir) $@
|
debug+test release+test all+test: PHONY; $(MAKE) -C $(top_srcdir) $@
|
||||||
|
|
||||||
test:: build/all+test PHONY
|
test: $$(patsubst %+test,%,$$(.DEFAULT_GOAL))+test PHONY
|
||||||
|
|
||||||
# OLD target names [deprecated]
|
|
||||||
$(top_srcdir)/build/debug: build/debug PHONY
|
|
||||||
$(top_srcdir)/build/release: build/release PHONY
|
|
||||||
|
|
||||||
#***********************************************************************
|
#***********************************************************************
|
||||||
# make run-testsuite
|
# make run-testsuite
|
||||||
@@ -60,6 +56,7 @@ endif
|
|||||||
ifneq ($(wildcard $(upx_testsuite_SRCDIR)/files/packed/.),)
|
ifneq ($(wildcard $(upx_testsuite_SRCDIR)/files/packed/.),)
|
||||||
ifneq ($(wildcard $(top_srcdir)/misc/testsuite/upx_testsuite_1.sh),)
|
ifneq ($(wildcard $(top_srcdir)/misc/testsuite/upx_testsuite_1.sh),)
|
||||||
run-testsuite: run-testsuite-release PHONY
|
run-testsuite: run-testsuite-release PHONY
|
||||||
|
run-testsuite-all: run-testsuite-debug run-testsuite-release PHONY
|
||||||
run-testsuite-%: export upx_testsuite_SRCDIR := $(upx_testsuite_SRCDIR)
|
run-testsuite-%: export upx_testsuite_SRCDIR := $(upx_testsuite_SRCDIR)
|
||||||
run-testsuite-debug: export upx_testsuite_BUILDDIR := ./tmp-upx-testsuite-debug
|
run-testsuite-debug: export upx_testsuite_BUILDDIR := ./tmp-upx-testsuite-debug
|
||||||
run-testsuite-debug: export upx_exe := $(top_srcdir)/build/debug/upx
|
run-testsuite-debug: export upx_exe := $(top_srcdir)/build/debug/upx
|
||||||
|
|||||||
+28
-24
@@ -69,6 +69,8 @@ struct LE16;
|
|||||||
struct LE32;
|
struct LE32;
|
||||||
struct LE64;
|
struct LE64;
|
||||||
|
|
||||||
|
namespace bele_detail {
|
||||||
|
|
||||||
// Note:
|
// Note:
|
||||||
// void is explicitly allowed (but there is no automatic pointer conversion because of template!)
|
// void is explicitly allowed (but there is no automatic pointer conversion because of template!)
|
||||||
// char is explicitly allowed
|
// char is explicitly allowed
|
||||||
@@ -94,10 +96,12 @@ using enable_if_xe32 = std::enable_if_t<is_xe32_type<T>, T>;
|
|||||||
template <class T>
|
template <class T>
|
||||||
using enable_if_xe64 = std::enable_if_t<is_xe64_type<T>, T>;
|
using enable_if_xe64 = std::enable_if_t<is_xe64_type<T>, T>;
|
||||||
|
|
||||||
#define REQUIRE_XE16 template <class XE16, class = enable_if_xe16<XE16> >
|
} // namespace bele_detail
|
||||||
#define REQUIRE_XE24 template <class XE24, class = enable_if_xe24<XE24> >
|
|
||||||
#define REQUIRE_XE32 template <class XE32, class = enable_if_xe32<XE32> >
|
#define REQUIRE_XE16 template <class XE16, class = bele_detail::enable_if_xe16<XE16> >
|
||||||
#define REQUIRE_XE64 template <class XE64, class = enable_if_xe64<XE64> >
|
#define REQUIRE_XE24 template <class XE24, class = bele_detail::enable_if_xe24<XE24> >
|
||||||
|
#define REQUIRE_XE32 template <class XE32, class = bele_detail::enable_if_xe32<XE32> >
|
||||||
|
#define REQUIRE_XE64 template <class XE64, class = bele_detail::enable_if_xe64<XE64> >
|
||||||
|
|
||||||
#endif // permissive version
|
#endif // permissive version
|
||||||
|
|
||||||
@@ -785,6 +789,26 @@ inline unsigned UPX_MIN(const LE32 &a, unsigned b) { return UPX_MIN(unsigned(a),
|
|||||||
// misc support
|
// misc support
|
||||||
**************************************************************************/
|
**************************************************************************/
|
||||||
|
|
||||||
|
// for use with qsort()
|
||||||
|
extern "C" {
|
||||||
|
int __acc_cdecl_qsort be16_compare(const void *, const void *);
|
||||||
|
int __acc_cdecl_qsort be24_compare(const void *, const void *);
|
||||||
|
int __acc_cdecl_qsort be32_compare(const void *, const void *);
|
||||||
|
int __acc_cdecl_qsort be64_compare(const void *, const void *);
|
||||||
|
int __acc_cdecl_qsort le16_compare(const void *, const void *);
|
||||||
|
int __acc_cdecl_qsort le24_compare(const void *, const void *);
|
||||||
|
int __acc_cdecl_qsort le32_compare(const void *, const void *);
|
||||||
|
int __acc_cdecl_qsort le64_compare(const void *, const void *);
|
||||||
|
int __acc_cdecl_qsort be16_compare_signed(const void *, const void *);
|
||||||
|
int __acc_cdecl_qsort be24_compare_signed(const void *, const void *);
|
||||||
|
int __acc_cdecl_qsort be32_compare_signed(const void *, const void *);
|
||||||
|
int __acc_cdecl_qsort be64_compare_signed(const void *, const void *);
|
||||||
|
int __acc_cdecl_qsort le16_compare_signed(const void *, const void *);
|
||||||
|
int __acc_cdecl_qsort le24_compare_signed(const void *, const void *);
|
||||||
|
int __acc_cdecl_qsort le32_compare_signed(const void *, const void *);
|
||||||
|
int __acc_cdecl_qsort le64_compare_signed(const void *, const void *);
|
||||||
|
} // extern "C"
|
||||||
|
|
||||||
// <type_traits> upx_is_integral; see conf.h
|
// <type_traits> upx_is_integral; see conf.h
|
||||||
#define TT_UPX_IS_INTEGRAL(T) \
|
#define TT_UPX_IS_INTEGRAL(T) \
|
||||||
template <> \
|
template <> \
|
||||||
@@ -826,26 +850,6 @@ typedef LE64 NE64;
|
|||||||
#define ne64_compare_signed le64_compare_signed
|
#define ne64_compare_signed le64_compare_signed
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// for use with qsort()
|
|
||||||
extern "C" {
|
|
||||||
int __acc_cdecl_qsort be16_compare(const void *, const void *);
|
|
||||||
int __acc_cdecl_qsort be24_compare(const void *, const void *);
|
|
||||||
int __acc_cdecl_qsort be32_compare(const void *, const void *);
|
|
||||||
int __acc_cdecl_qsort be64_compare(const void *, const void *);
|
|
||||||
int __acc_cdecl_qsort le16_compare(const void *, const void *);
|
|
||||||
int __acc_cdecl_qsort le24_compare(const void *, const void *);
|
|
||||||
int __acc_cdecl_qsort le32_compare(const void *, const void *);
|
|
||||||
int __acc_cdecl_qsort le64_compare(const void *, const void *);
|
|
||||||
int __acc_cdecl_qsort be16_compare_signed(const void *, const void *);
|
|
||||||
int __acc_cdecl_qsort be24_compare_signed(const void *, const void *);
|
|
||||||
int __acc_cdecl_qsort be32_compare_signed(const void *, const void *);
|
|
||||||
int __acc_cdecl_qsort be64_compare_signed(const void *, const void *);
|
|
||||||
int __acc_cdecl_qsort le16_compare_signed(const void *, const void *);
|
|
||||||
int __acc_cdecl_qsort le24_compare_signed(const void *, const void *);
|
|
||||||
int __acc_cdecl_qsort le32_compare_signed(const void *, const void *);
|
|
||||||
int __acc_cdecl_qsort le64_compare_signed(const void *, const void *);
|
|
||||||
} // extern "C"
|
|
||||||
|
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
// Provide namespaces and classes to abstract endianness policies.
|
// Provide namespaces and classes to abstract endianness policies.
|
||||||
//
|
//
|
||||||
|
|||||||
+4
-4
@@ -92,9 +92,9 @@ private:
|
|||||||
#define C const noexcept override
|
#define C const noexcept override
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
struct BEPolicy
|
struct BEPolicy final
|
||||||
#if defined(BELE_RTP)
|
#if defined(BELE_RTP)
|
||||||
final : public AbstractPolicy
|
: public AbstractPolicy
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
explicit inline BEPolicy() noexcept {}
|
explicit inline BEPolicy() noexcept {}
|
||||||
@@ -151,9 +151,9 @@ private:
|
|||||||
UPX_CXX_DISABLE_NEW_DELETE(BEPolicy)
|
UPX_CXX_DISABLE_NEW_DELETE(BEPolicy)
|
||||||
};
|
};
|
||||||
|
|
||||||
struct LEPolicy
|
struct LEPolicy final
|
||||||
#if defined(BELE_RTP)
|
#if defined(BELE_RTP)
|
||||||
final : public AbstractPolicy
|
: public AbstractPolicy
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
explicit inline LEPolicy() noexcept {}
|
explicit inline LEPolicy() noexcept {}
|
||||||
|
|||||||
+91
-33
@@ -24,6 +24,9 @@
|
|||||||
<markus@oberhumer.com>
|
<markus@oberhumer.com>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
// doctest checks, and various tests to catch toolchain/qemu/sanitizer/valgrind/wine/etc
|
||||||
|
// problems; grown historically
|
||||||
|
|
||||||
#include "../util/system_headers.h"
|
#include "../util/system_headers.h"
|
||||||
#include <cmath> // std::isinf std::isnan
|
#include <cmath> // std::isinf std::isnan
|
||||||
#include "../conf.h"
|
#include "../conf.h"
|
||||||
@@ -53,7 +56,7 @@ int upx_doctest_check(int argc, char **argv) {
|
|||||||
// default for debug builds: do show the [doctest] summary
|
// default for debug builds: do show the [doctest] summary
|
||||||
minimal = false;
|
minimal = false;
|
||||||
#endif
|
#endif
|
||||||
const char *e = getenv("UPX_DEBUG_DOCTEST_VERBOSE");
|
const char *e = upx_getenv("UPX_DEBUG_DOCTEST_VERBOSE");
|
||||||
if (e && e[0]) {
|
if (e && e[0]) {
|
||||||
if (strcmp(e, "0") == 0) {
|
if (strcmp(e, "0") == 0) {
|
||||||
minimal = true;
|
minimal = true;
|
||||||
@@ -75,7 +78,7 @@ int upx_doctest_check(int argc, char **argv) {
|
|||||||
context.setOption("dt-duration", true);
|
context.setOption("dt-duration", true);
|
||||||
if (success)
|
if (success)
|
||||||
context.setOption("dt-success", true);
|
context.setOption("dt-success", true);
|
||||||
// this requires that main_get_options() understands "--dt-XXX" options
|
// this requires that main_get_options() understands/ignores doctest "--dt-XXX" options
|
||||||
if (argc > 0 && argv != nullptr)
|
if (argc > 0 && argv != nullptr)
|
||||||
context.applyCommandLine(argc, argv);
|
context.applyCommandLine(argc, argv);
|
||||||
int r = context.run();
|
int r = context.run();
|
||||||
@@ -326,6 +329,13 @@ struct TestIntegerWrap {
|
|||||||
// basic exception handling checks to early catch toolchain/qemu/wine/etc problems
|
// basic exception handling checks to early catch toolchain/qemu/wine/etc problems
|
||||||
//
|
//
|
||||||
|
|
||||||
|
struct TestDestructor {
|
||||||
|
explicit TestDestructor(int *pp, int vv) noexcept : p(pp), v(vv) {}
|
||||||
|
virtual noinline ~TestDestructor() noexcept { *p = (*p << 2) + v; }
|
||||||
|
int *p;
|
||||||
|
int v;
|
||||||
|
};
|
||||||
|
|
||||||
static noinline void throwSomeValue(int x) may_throw {
|
static noinline void throwSomeValue(int x) may_throw {
|
||||||
if (x < 0)
|
if (x < 0)
|
||||||
throw int(x);
|
throw int(x);
|
||||||
@@ -333,12 +343,19 @@ static noinline void throwSomeValue(int x) may_throw {
|
|||||||
throw size_t(x);
|
throw size_t(x);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static noinline void check_exceptions_2(void (*func)(int), int *x) may_throw {
|
||||||
|
TestDestructor d(x, *x);
|
||||||
|
func(*x);
|
||||||
|
}
|
||||||
|
|
||||||
static noinline void check_basic_cxx_exception_handling(void (*func)(int)) noexcept {
|
static noinline void check_basic_cxx_exception_handling(void (*func)(int)) noexcept {
|
||||||
bool cxx_exception_handling_works = false;
|
bool cxx_exception_handling_works = false;
|
||||||
|
int x = 1;
|
||||||
try {
|
try {
|
||||||
func(42);
|
TestDestructor d(&x, 3);
|
||||||
|
check_exceptions_2(func, &x);
|
||||||
} catch (const size_t &e) {
|
} catch (const size_t &e) {
|
||||||
if (e == 42)
|
if (e == 1 && x == 23)
|
||||||
cxx_exception_handling_works = true;
|
cxx_exception_handling_works = true;
|
||||||
} catch (...) {
|
} catch (...) {
|
||||||
}
|
}
|
||||||
@@ -376,21 +393,21 @@ struct TestFloat {
|
|||||||
static noinline Float add_div_x(Int a, Int b) { return Float(a + b) / Float(X); }
|
static noinline Float add_div_x(Int a, Int b) { return Float(a + b) / Float(X); }
|
||||||
static noinline Float sub_div_x(Int a, Int b) { return Float(a - b) / Float(X); }
|
static noinline Float sub_div_x(Int a, Int b) { return Float(a - b) / Float(X); }
|
||||||
static noinline void check() noexcept {
|
static noinline void check() noexcept {
|
||||||
|
assert_noexcept(div(2 * X, Float(X)) == Float(2));
|
||||||
assert_noexcept(add_div(X, X, Float(X)) == Float(2));
|
assert_noexcept(add_div(X, X, Float(X)) == Float(2));
|
||||||
assert_noexcept(add_div_x(X, X) == Float(2));
|
assert_noexcept(add_div_x(X, X) == Float(2));
|
||||||
assert_noexcept(sub_div(3 * X, X, Float(X)) == Float(2));
|
assert_noexcept(sub_div(3 * X, X, Float(X)) == Float(2));
|
||||||
assert_noexcept(sub_div_x(3 * X, X) == Float(2));
|
assert_noexcept(sub_div_x(3 * X, X) == Float(2));
|
||||||
// extra debugging; floating point edge cases cause portability problems in practice
|
// extra debugging; floating point edge cases cause portability problems in practice
|
||||||
if (is_envvar_true("UPX_DEBUG_TEST_FLOAT_DIVISION_BY_ZERO")) {
|
static const char envvar[] = "UPX_DEBUG_TEST_FLOAT_DIVISION_BY_ZERO";
|
||||||
#if defined(__clang__) && defined(__FAST_MATH__) && defined(__INTEL_LLVM_COMPILER)
|
if (is_envvar_true(envvar)) {
|
||||||
|
#if defined(__FAST_MATH__)
|
||||||
// warning: comparison with NaN always evaluates to false in fast floating point modes
|
// warning: comparison with NaN always evaluates to false in fast floating point modes
|
||||||
fprintf(stderr, "upx: WARNING: ignoring UPX_DEBUG_TEST_FLOAT_DIVISION_BY_ZERO\n");
|
fprintf(stderr, "upx: WARNING: ignoring %s: __FAST_MATH__\n", envvar);
|
||||||
#elif defined(__clang__) && (__clang_major__ < 9) && defined(__SANITIZE_UNDEFINED_BEHAVIOR__)
|
|
||||||
// @COMPILER_BUG @CLANG_BUG
|
|
||||||
fprintf(stderr, "upx: WARNING: ignoring UPX_DEBUG_TEST_FLOAT_DIVISION_BY_ZERO\n");
|
|
||||||
#else
|
#else
|
||||||
assert_noexcept(std::isnan(div(0, Float(0))));
|
assert_noexcept(std::isnan(div(0, Float(0))));
|
||||||
assert_noexcept(std::isinf(div(1, Float(0))));
|
assert_noexcept(std::isinf(div(1, Float(0))));
|
||||||
|
assert_noexcept(std::isinf(div(Int(-1), Float(0))));
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -422,6 +439,8 @@ static noinline void check_basic_floating_point(void) noexcept {
|
|||||||
#include "../util/miniacc.h"
|
#include "../util/miniacc.h"
|
||||||
|
|
||||||
void upx_compiler_sanity_check(void) noexcept {
|
void upx_compiler_sanity_check(void) noexcept {
|
||||||
|
check_basic_floating_point();
|
||||||
|
|
||||||
if (is_envvar_true("UPX_DEBUG_DOCTEST_DISABLE", "UPX_DEBUG_DISABLE_DOCTEST")) {
|
if (is_envvar_true("UPX_DEBUG_DOCTEST_DISABLE", "UPX_DEBUG_DISABLE_DOCTEST")) {
|
||||||
// If UPX_DEBUG_DOCTEST_DISABLE is set then we don't want to throw any
|
// If UPX_DEBUG_DOCTEST_DISABLE is set then we don't want to throw any
|
||||||
// exceptions in order to improve debugging experience.
|
// exceptions in order to improve debugging experience.
|
||||||
@@ -430,7 +449,18 @@ void upx_compiler_sanity_check(void) noexcept {
|
|||||||
check_basic_cxx_exception_handling(throwSomeValue);
|
check_basic_cxx_exception_handling(throwSomeValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
check_basic_floating_point();
|
// check_basic_decltype()
|
||||||
|
{
|
||||||
|
auto a = +0;
|
||||||
|
constexpr auto b = -0;
|
||||||
|
const auto &c = -1;
|
||||||
|
COMPILE_TIME_ASSERT((std::is_same<int, decltype(a)>::value))
|
||||||
|
COMPILE_TIME_ASSERT((std::is_same<const int, decltype(b)>::value))
|
||||||
|
COMPILE_TIME_ASSERT((std::is_same<const int &, decltype(c)>::value))
|
||||||
|
UNUSED(a);
|
||||||
|
UNUSED(b);
|
||||||
|
UNUSED(c);
|
||||||
|
}
|
||||||
|
|
||||||
#define ACC_WANT_ACC_CHK_CH 1
|
#define ACC_WANT_ACC_CHK_CH 1
|
||||||
#undef ACCCHK_ASSERT
|
#undef ACCCHK_ASSERT
|
||||||
@@ -474,13 +504,25 @@ void upx_compiler_sanity_check(void) noexcept {
|
|||||||
COMPILE_TIME_ASSERT_ALIGNED1(upx_charptr_unit_type)
|
COMPILE_TIME_ASSERT_ALIGNED1(upx_charptr_unit_type)
|
||||||
COMPILE_TIME_ASSERT(sizeof(*((charptr) nullptr)) == 1)
|
COMPILE_TIME_ASSERT(sizeof(*((charptr) nullptr)) == 1)
|
||||||
|
|
||||||
COMPILE_TIME_ASSERT(sizeof(UPX_VERSION_STRING4) == 4 + 1)
|
// check UPX_VERSION_xxx
|
||||||
assert_noexcept(strlen(UPX_VERSION_STRING4) == 4);
|
{
|
||||||
COMPILE_TIME_ASSERT(sizeof(UPX_VERSION_YEAR) == 4 + 1)
|
using upx::compile_time::mem_eq;
|
||||||
assert_noexcept(strlen(UPX_VERSION_YEAR) == 4);
|
using upx::compile_time::string_len;
|
||||||
assert_noexcept(memcmp(UPX_VERSION_DATE_ISO, UPX_VERSION_YEAR, 4) == 0);
|
static_assert(string_len(UPX_VERSION_STRING4) == 4);
|
||||||
assert_noexcept(
|
static_assert(string_len(UPX_VERSION_YEAR) == 4);
|
||||||
memcmp(&UPX_VERSION_DATE[sizeof(UPX_VERSION_DATE) - 1 - 4], UPX_VERSION_YEAR, 4) == 0);
|
static_assert(string_len(UPX_VERSION_DATE_ISO) == 10);
|
||||||
|
static_assert(string_len(UPX_VERSION_DATE) == 12 || string_len(UPX_VERSION_DATE) == 13);
|
||||||
|
static_assert(mem_eq(UPX_VERSION_STRING4, UPX_VERSION_STRING, 3));
|
||||||
|
static_assert(mem_eq(UPX_VERSION_YEAR, UPX_VERSION_DATE_ISO, 4));
|
||||||
|
static_assert(mem_eq(UPX_VERSION_YEAR, &UPX_VERSION_DATE[sizeof(UPX_VERSION_DATE) - 5], 4));
|
||||||
|
char buf[16];
|
||||||
|
constexpr long long v = UPX_VERSION_HEX;
|
||||||
|
upx_safe_snprintf(buf, sizeof(buf), "%lld.%lld.%lld", (v >> 16), (v >> 8) & 255, v & 255);
|
||||||
|
assert_noexcept(strcmp(buf, UPX_VERSION_STRING) == 0);
|
||||||
|
upx_safe_snprintf(buf, sizeof(buf), "%lld.%lld%lld", (v >> 16), (v >> 8) & 255, v & 255);
|
||||||
|
assert_noexcept(strcmp(buf, UPX_VERSION_STRING4) == 0);
|
||||||
|
}
|
||||||
|
|
||||||
if (gitrev[0]) {
|
if (gitrev[0]) {
|
||||||
size_t revlen = strlen(gitrev);
|
size_t revlen = strlen(gitrev);
|
||||||
if (strncmp(gitrev, "ERROR", 5) == 0) {
|
if (strncmp(gitrev, "ERROR", 5) == 0) {
|
||||||
@@ -646,7 +688,7 @@ void upx_compiler_sanity_check(void) noexcept {
|
|||||||
**************************************************************************/
|
**************************************************************************/
|
||||||
|
|
||||||
TEST_CASE("assert_noexcept") {
|
TEST_CASE("assert_noexcept") {
|
||||||
// just to make sure that our own assert() macros don't generate any warnings
|
// just to make sure that our own assert() macros do not trigger any compiler warnings
|
||||||
byte dummy = 0;
|
byte dummy = 0;
|
||||||
byte *ptr1 = &dummy;
|
byte *ptr1 = &dummy;
|
||||||
const byte *const ptr2 = &dummy;
|
const byte *const ptr2 = &dummy;
|
||||||
@@ -668,10 +710,13 @@ TEST_CASE("acc_vget") {
|
|||||||
CHECK_EQ(acc_vget_long(1, -1), 1);
|
CHECK_EQ(acc_vget_long(1, -1), 1);
|
||||||
CHECK_EQ(acc_vget_acc_int64l_t(2, 1), 2);
|
CHECK_EQ(acc_vget_acc_int64l_t(2, 1), 2);
|
||||||
CHECK_EQ(acc_vget_acc_hvoid_p(nullptr, 0), nullptr);
|
CHECK_EQ(acc_vget_acc_hvoid_p(nullptr, 0), nullptr);
|
||||||
|
if (acc_vget_int(1, 0) > 0)
|
||||||
|
return;
|
||||||
|
assert_noexcept(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_CASE("ptr_invalidate_and_poison") {
|
TEST_CASE("ptr_invalidate_and_poison") {
|
||||||
int *ip = nullptr;
|
int *ip = nullptr; // initialized
|
||||||
ptr_invalidate_and_poison(ip);
|
ptr_invalidate_and_poison(ip);
|
||||||
assert(ip != nullptr);
|
assert(ip != nullptr);
|
||||||
(void) ip;
|
(void) ip;
|
||||||
@@ -681,6 +726,11 @@ TEST_CASE("ptr_invalidate_and_poison") {
|
|||||||
(void) dp;
|
(void) dp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST_CASE("upx_getenv") {
|
||||||
|
CHECK_EQ(upx_getenv(nullptr), nullptr);
|
||||||
|
CHECK_EQ(upx_getenv(""), nullptr);
|
||||||
|
}
|
||||||
|
|
||||||
TEST_CASE("working -fno-strict-aliasing") {
|
TEST_CASE("working -fno-strict-aliasing") {
|
||||||
bool ok;
|
bool ok;
|
||||||
long v = 0;
|
long v = 0;
|
||||||
@@ -751,11 +801,13 @@ TEST_CASE("libc snprintf") {
|
|||||||
CHECK_EQ(strcmp(buf, "0X1A 0x1b 0x1c "), 0);
|
CHECK_EQ(strcmp(buf, "0X1A 0x1b 0x1c "), 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
|
||||||
TEST_CASE("libc qsort") {
|
TEST_CASE("libc qsort") {
|
||||||
// runtime check that libc qsort() never compares identical objects
|
// runtime check that libc qsort() never compares identical objects
|
||||||
// UPDATE: while only poor implementations of qsort() would actually do
|
// UPDATE: while only poor implementations of qsort() would actually do this
|
||||||
// this, it is probably allowed by the standard; so skip this test case
|
// it is probably allowed by the standard, so skip this test by default
|
||||||
|
if (!is_envvar_true("UPX_DEBUG_TEST_LIBC_QSORT"))
|
||||||
|
return;
|
||||||
|
|
||||||
struct Elem {
|
struct Elem {
|
||||||
upx_uint16_t id;
|
upx_uint16_t id;
|
||||||
upx_uint16_t value;
|
upx_uint16_t value;
|
||||||
@@ -765,35 +817,41 @@ TEST_CASE("libc qsort") {
|
|||||||
assert_noexcept(a->id != b->id); // check not IDENTICAL
|
assert_noexcept(a->id != b->id); // check not IDENTICAL
|
||||||
return a->value < b->value ? -1 : (a->value == b->value ? 0 : 1);
|
return a->value < b->value ? -1 : (a->value == b->value ? 0 : 1);
|
||||||
}
|
}
|
||||||
static bool check_sort(upx_sort_func_t sort, Elem *e, size_t n) {
|
static noinline bool check_sort(upx_sort_func_t sort, Elem *e, size_t n, bool is_stable) {
|
||||||
upx_uint32_t x = 5381 + n + ((upx_uintptr_t) e & 0xff);
|
upx_uint32_t x = 5381 + (upx_rand() & 255);
|
||||||
for (size_t i = 0; i < n; i++) {
|
for (size_t i = 0; i < n; i++) {
|
||||||
e[i].id = (upx_uint16_t) i;
|
e[i].id = (upx_uint16_t) i;
|
||||||
x = x * 33 + 1 + (i & 255);
|
x = x * 33 + 1 + (i & 255);
|
||||||
e[i].value = (upx_uint16_t) x;
|
e[i].value = (upx_uint16_t) ((x >> 4) & 15);
|
||||||
}
|
}
|
||||||
sort(e, n, sizeof(Elem), Elem::compare);
|
sort(e, n, sizeof(Elem), Elem::compare);
|
||||||
for (size_t i = 1; i < n; i++)
|
// verify
|
||||||
|
for (size_t i = 1; i < n; i++) {
|
||||||
if very_unlikely (e[i - 1].value > e[i].value)
|
if very_unlikely (e[i - 1].value > e[i].value)
|
||||||
return false;
|
return false;
|
||||||
|
if (is_stable)
|
||||||
|
if very_unlikely (e[i - 1].value == e[i].value && e[i - 1].id >= e[i].id)
|
||||||
|
return false;
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
constexpr size_t N = 4096;
|
constexpr size_t N = 4096;
|
||||||
Elem e[N];
|
Elem e[N];
|
||||||
for (size_t n = 0; n <= N; n = 2 * n + 1) {
|
for (size_t n = 0; n <= N; n = 2 * n + 1) {
|
||||||
// CHECK(Elem::check_sort(qsort, e, n)); // libc qsort()
|
// system sort functions
|
||||||
CHECK(Elem::check_sort(upx_gnomesort, e, n));
|
CHECK(Elem::check_sort(::qsort, e, n, false)); // libc qsort()
|
||||||
CHECK(Elem::check_sort(upx_shellsort_memswap, e, n));
|
|
||||||
CHECK(Elem::check_sort(upx_shellsort_memcpy, e, n));
|
|
||||||
#if UPX_CONFIG_USE_STABLE_SORT
|
#if UPX_CONFIG_USE_STABLE_SORT
|
||||||
upx_sort_func_t wrap_stable_sort = [](void *aa, size_t nn, size_t, upx_compare_func_t cc) {
|
upx_sort_func_t wrap_stable_sort = [](void *aa, size_t nn, size_t, upx_compare_func_t cc) {
|
||||||
upx_std_stable_sort<sizeof(Elem)>(aa, nn, cc);
|
upx_std_stable_sort<sizeof(Elem)>(aa, nn, cc);
|
||||||
};
|
};
|
||||||
CHECK(Elem::check_sort(wrap_stable_sort, e, n));
|
CHECK(Elem::check_sort(wrap_stable_sort, e, n, true)); // std::stable_sort()
|
||||||
#endif
|
#endif
|
||||||
|
// simple UPX sort functions
|
||||||
|
CHECK(Elem::check_sort(upx_gnomesort, e, n, true));
|
||||||
|
CHECK(Elem::check_sort(upx_shellsort_memswap, e, n, false));
|
||||||
|
CHECK(Elem::check_sort(upx_shellsort_memcpy, e, n, false));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
/* vim:set ts=4 sw=4 et: */
|
/* vim:set ts=4 sw=4 et: */
|
||||||
|
|||||||
+90
-25
@@ -27,24 +27,8 @@
|
|||||||
// lots of tests (and probably quite a number of redundant tests)
|
// lots of tests (and probably quite a number of redundant tests)
|
||||||
// modern compilers will optimize away much of this code
|
// modern compilers will optimize away much of this code
|
||||||
|
|
||||||
#if 0 // TODO later
|
|
||||||
// libc++ hardenining
|
|
||||||
#if defined(__clang__) && defined(__clang_major__) && (__clang_major__ + 0 >= 18)
|
|
||||||
#if DEBUG
|
|
||||||
#define _LIBCPP_HARDENING_MODE _LIBCPP_HARDENING_MODE_DEBUG
|
|
||||||
#else
|
|
||||||
#define _LIBCPP_HARDENING_MODE _LIBCPP_HARDENING_MODE_EXTENSIVE
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
#if defined(__clang__) && defined(__clang_major__) && (__clang_major__ + 0 < 18)
|
|
||||||
#if DEBUG
|
|
||||||
#define _LIBCPP_ENABLE_ASSERTIONS 1
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
#endif // TODO later
|
|
||||||
|
|
||||||
#include "../util/system_headers.h"
|
#include "../util/system_headers.h"
|
||||||
#include <vector>
|
#include <vector> // std::vector
|
||||||
#include "../conf.h"
|
#include "../conf.h"
|
||||||
|
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
@@ -121,11 +105,17 @@ ACC_COMPILE_TIME_ASSERT_HEADER(!compile_time::string_gt("abc", "abz"))
|
|||||||
ACC_COMPILE_TIME_ASSERT_HEADER(!compile_time::string_ge("abc", "abz"))
|
ACC_COMPILE_TIME_ASSERT_HEADER(!compile_time::string_ge("abc", "abz"))
|
||||||
ACC_COMPILE_TIME_ASSERT_HEADER(compile_time::string_le("abc", "abz"))
|
ACC_COMPILE_TIME_ASSERT_HEADER(compile_time::string_le("abc", "abz"))
|
||||||
|
|
||||||
|
ACC_COMPILE_TIME_ASSERT_HEADER(compile_time::mem_eq((const char *) nullptr, nullptr, 0))
|
||||||
|
ACC_COMPILE_TIME_ASSERT_HEADER(compile_time::mem_eq((const byte *) nullptr, nullptr, 0))
|
||||||
|
ACC_COMPILE_TIME_ASSERT_HEADER(compile_time::mem_eq("", "", 0))
|
||||||
|
ACC_COMPILE_TIME_ASSERT_HEADER(compile_time::mem_eq("abc", "abc", 3))
|
||||||
|
ACC_COMPILE_TIME_ASSERT_HEADER(!compile_time::mem_eq("abc", "abz", 3))
|
||||||
|
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
//
|
//
|
||||||
**************************************************************************/
|
**************************************************************************/
|
||||||
|
|
||||||
TEST_CASE("libc++") {
|
TEST_CASE("std::vector") {
|
||||||
constexpr size_t N = 16;
|
constexpr size_t N = 16;
|
||||||
std::vector<int> v(N);
|
std::vector<int> v(N);
|
||||||
CHECK(v.end() - v.begin() == N);
|
CHECK(v.end() - v.begin() == N);
|
||||||
@@ -260,28 +250,93 @@ struct Z2_X2 : public X2 {
|
|||||||
// util
|
// util
|
||||||
**************************************************************************/
|
**************************************************************************/
|
||||||
|
|
||||||
|
#if WITH_THREADS
|
||||||
|
TEST_CASE("upx::ptr_std_atomic_cast") {
|
||||||
|
// pointer-size
|
||||||
|
CHECK_EQ(upx::ptr_std_atomic_cast((void **) nullptr), nullptr);
|
||||||
|
CHECK_EQ(upx::ptr_std_atomic_cast((uintptr_t *) nullptr), nullptr);
|
||||||
|
CHECK_EQ(upx::ptr_std_atomic_cast((upx_uintptr_t *) nullptr), nullptr);
|
||||||
|
#if 1
|
||||||
|
// more fundamental types
|
||||||
|
CHECK_EQ(upx::ptr_std_atomic_cast((char *) nullptr), nullptr);
|
||||||
|
CHECK_EQ(upx::ptr_std_atomic_cast((short *) nullptr), nullptr);
|
||||||
|
CHECK_EQ(upx::ptr_std_atomic_cast((int *) nullptr), nullptr);
|
||||||
|
CHECK_EQ(upx::ptr_std_atomic_cast((long *) nullptr), nullptr);
|
||||||
|
CHECK_EQ(upx::ptr_std_atomic_cast((ptrdiff_t *) nullptr), nullptr);
|
||||||
|
CHECK_EQ(upx::ptr_std_atomic_cast((size_t *) nullptr), nullptr);
|
||||||
|
CHECK_EQ(upx::ptr_std_atomic_cast((upx_int8_t *) nullptr), nullptr);
|
||||||
|
CHECK_EQ(upx::ptr_std_atomic_cast((upx_int16_t *) nullptr), nullptr);
|
||||||
|
CHECK_EQ(upx::ptr_std_atomic_cast((upx_int32_t *) nullptr), nullptr);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
TEST_CASE("upx::atomic_exchange") {
|
||||||
|
{
|
||||||
|
upx_uintptr_t x = (upx_uintptr_t) 0 - 1;
|
||||||
|
upx_uintptr_t y = upx::atomic_exchange(&x, (upx_uintptr_t) 2);
|
||||||
|
CHECK_EQ(x, 2);
|
||||||
|
CHECK_EQ(y, (upx_uintptr_t) 0 - 1);
|
||||||
|
UNUSED(y);
|
||||||
|
}
|
||||||
|
{
|
||||||
|
const int buf[2] = {101, 202};
|
||||||
|
const int *ptr_array[2] = {&buf[0], &buf[1]};
|
||||||
|
assert_noexcept(*ptr_array[0] == 101 && *ptr_array[1] == 202);
|
||||||
|
const int *p = upx::atomic_exchange(&ptr_array[0], ptr_array[1]);
|
||||||
|
CHECK_EQ(p, buf + 0);
|
||||||
|
assert_noexcept(*ptr_array[0] == 202 && *ptr_array[1] == 202);
|
||||||
|
p = upx::atomic_exchange(&ptr_array[1], p);
|
||||||
|
CHECK_EQ(p, buf + 1);
|
||||||
|
assert_noexcept(*ptr_array[0] == 202 && *ptr_array[1] == 101);
|
||||||
|
UNUSED(p);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
TEST_CASE("upx::ObjectDeleter 1") {
|
TEST_CASE("upx::ObjectDeleter 1") {
|
||||||
LE16 *o = nullptr; // object
|
LE16 *o = nullptr; // object
|
||||||
LE32 *a = nullptr; // array
|
LE32 *a = nullptr; // array
|
||||||
|
LE64 *m = nullptr; // malloc
|
||||||
{
|
{
|
||||||
const upx::ObjectDeleter<LE16 **> o_deleter{&o, 1};
|
auto o_deleter = upx::ObjectDeleter(&o, 1);
|
||||||
o = new LE16;
|
o = new LE16;
|
||||||
assert(o != nullptr);
|
assert(o != nullptr);
|
||||||
const upx::ArrayDeleter<LE32 **> a_deleter{&a, 1};
|
auto a_deleter = upx::ArrayDeleter(&a, 1);
|
||||||
a = New(LE32, 1);
|
a = New(LE32, 1);
|
||||||
assert(a != nullptr);
|
assert(a != nullptr);
|
||||||
|
auto m_deleter = upx::MallocDeleter(&m, 1);
|
||||||
|
m = (LE64 *) ::malloc(sizeof(LE64));
|
||||||
|
assert(m != nullptr);
|
||||||
}
|
}
|
||||||
assert(o == nullptr);
|
assert(o == nullptr);
|
||||||
assert(a == nullptr);
|
assert(a == nullptr);
|
||||||
|
assert(m == nullptr);
|
||||||
|
// test "const" versions
|
||||||
|
{
|
||||||
|
const auto o_deleter = upx::ObjectDeleter(&o, 1);
|
||||||
|
o = new LE16;
|
||||||
|
assert(o != nullptr);
|
||||||
|
const auto a_deleter = upx::ArrayDeleter(&a, 1);
|
||||||
|
a = New(LE32, 1);
|
||||||
|
assert(a != nullptr);
|
||||||
|
const auto m_deleter = upx::MallocDeleter(&m, 1);
|
||||||
|
m = (LE64 *) ::malloc(sizeof(LE64));
|
||||||
|
assert(m != nullptr);
|
||||||
|
}
|
||||||
|
assert(o == nullptr);
|
||||||
|
assert(a == nullptr);
|
||||||
|
assert(m == nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_CASE("upx::ObjectDeleter 2") {
|
TEST_CASE("upx::ObjectDeleter 2") {
|
||||||
constexpr size_t N = 2;
|
constexpr size_t N = 2;
|
||||||
BE16 *o[N]; // multiple objects
|
BE16 *o[N]; // multiple objects
|
||||||
BE32 *a[N]; // multiple arrays
|
BE32 *a[N]; // multiple arrays
|
||||||
|
BE64 *m[N]; // multiple mallocs
|
||||||
{
|
{
|
||||||
upx::ObjectDeleter<BE16 **> o_deleter{o, 0};
|
auto o_deleter = upx::ObjectDeleter(o, 0);
|
||||||
upx::ArrayDeleter<BE32 **> a_deleter{a, 0};
|
auto a_deleter = upx::ArrayDeleter(a, 0);
|
||||||
|
auto m_deleter = upx::MallocDeleter(m, 0);
|
||||||
for (size_t i = 0; i < N; i++) {
|
for (size_t i = 0; i < N; i++) {
|
||||||
o[i] = new BE16;
|
o[i] = new BE16;
|
||||||
assert(o[i] != nullptr);
|
assert(o[i] != nullptr);
|
||||||
@@ -289,16 +344,20 @@ TEST_CASE("upx::ObjectDeleter 2") {
|
|||||||
a[i] = New(BE32, 1 + i);
|
a[i] = New(BE32, 1 + i);
|
||||||
assert(a[i] != nullptr);
|
assert(a[i] != nullptr);
|
||||||
a_deleter.count += 1;
|
a_deleter.count += 1;
|
||||||
|
m[i] = (BE64 *) ::malloc(sizeof(BE64));
|
||||||
|
assert(m[i] != nullptr);
|
||||||
|
m_deleter.count += 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (size_t i = 0; i < N; i++) {
|
for (size_t i = 0; i < N; i++) {
|
||||||
assert(o[i] == nullptr);
|
assert(o[i] == nullptr);
|
||||||
assert(a[i] == nullptr);
|
assert(a[i] == nullptr);
|
||||||
|
assert(m[i] == nullptr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_CASE("upx::ptr_static_cast") {
|
TEST_CASE("upx::ptr_static_cast") {
|
||||||
// check that we don't trigger any -Wcast-align warnings
|
// check that we do not trigger any -Wcast-align warnings
|
||||||
using upx::ptr_static_cast;
|
using upx::ptr_static_cast;
|
||||||
void *vp = nullptr;
|
void *vp = nullptr;
|
||||||
byte *bp = nullptr;
|
byte *bp = nullptr;
|
||||||
@@ -361,7 +420,7 @@ TEST_CASE("upx::noncopyable") {
|
|||||||
namespace {
|
namespace {
|
||||||
template <class T>
|
template <class T>
|
||||||
struct TestTriBool {
|
struct TestTriBool {
|
||||||
static void test(bool expect_true) {
|
static noinline void test(bool expect_true) {
|
||||||
static_assert(std::is_class<T>::value);
|
static_assert(std::is_class<T>::value);
|
||||||
static_assert(std::is_nothrow_default_constructible<T>::value);
|
static_assert(std::is_nothrow_default_constructible<T>::value);
|
||||||
static_assert(std::is_nothrow_destructible<T>::value);
|
static_assert(std::is_nothrow_destructible<T>::value);
|
||||||
@@ -369,8 +428,12 @@ struct TestTriBool {
|
|||||||
static_assert(std::is_trivially_copyable<T>::value);
|
static_assert(std::is_trivially_copyable<T>::value);
|
||||||
static_assert(sizeof(typename T::value_type) == sizeof(typename T::underlying_type));
|
static_assert(sizeof(typename T::value_type) == sizeof(typename T::underlying_type));
|
||||||
static_assert(alignof(typename T::value_type) == alignof(typename T::underlying_type));
|
static_assert(alignof(typename T::value_type) == alignof(typename T::underlying_type));
|
||||||
#if (ACC_ARCH_M68K && ACC_OS_TOS && ACC_CC_GNUC) && defined(__MINT__)
|
#if defined(__m68k__) && defined(__atarist__) && defined(__GNUC__)
|
||||||
// broken compiler or broken ABI
|
// broken compiler or broken ABI
|
||||||
|
#elif defined(__i386__) && defined(__GNUC__) && (__GNUC__ == 7) && !defined(__clang__)
|
||||||
|
static_assert(sizeof(T) == sizeof(typename T::underlying_type));
|
||||||
|
// i386: "long long" enum align bug/ABI problem on older compilers
|
||||||
|
static_assert(alignof(T) <= alignof(typename T::underlying_type));
|
||||||
#else
|
#else
|
||||||
static_assert(sizeof(T) == sizeof(typename T::underlying_type));
|
static_assert(sizeof(T) == sizeof(typename T::underlying_type));
|
||||||
static_assert(alignof(T) == alignof(typename T::underlying_type));
|
static_assert(alignof(T) == alignof(typename T::underlying_type));
|
||||||
@@ -445,9 +508,11 @@ struct TestTriBool {
|
|||||||
assert(a);
|
assert(a);
|
||||||
assert(bool(a));
|
assert(bool(a));
|
||||||
assert((a ? true : false));
|
assert((a ? true : false));
|
||||||
|
assert((!a ? false : true));
|
||||||
} else {
|
} else {
|
||||||
assert(!a);
|
assert(!a);
|
||||||
assert(!bool(a));
|
assert(!bool(a));
|
||||||
|
assert((a ? false : true));
|
||||||
assert((!a ? true : false));
|
assert((!a ? true : false));
|
||||||
}
|
}
|
||||||
assert(!a.isStrictFalse());
|
assert(!a.isStrictFalse());
|
||||||
|
|||||||
@@ -49,13 +49,13 @@
|
|||||||
#pragma GCC diagnostic ignored "-Wshadow"
|
#pragma GCC diagnostic ignored "-Wshadow"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !defined(UPX_DOCTEST_CONFIG_MULTITHREADING) && !(WITH_THREADS)
|
#if !(WITH_THREADS) && !defined(UPX_DOCTEST_CONFIG_MULTITHREADING)
|
||||||
#ifndef DOCTEST_CONFIG_NO_MULTITHREADING
|
#ifndef DOCTEST_CONFIG_NO_MULTITHREADING
|
||||||
#define DOCTEST_CONFIG_NO_MULTITHREADING
|
#define DOCTEST_CONFIG_NO_MULTITHREADING
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(__clang__) && defined(__FAST_MATH__) && defined(__INTEL_LLVM_COMPILER)
|
#if defined(__FAST_MATH__) && defined(__clang__) && (__clang_major__ + 0 >= 6)
|
||||||
// warning: comparison with NaN always evaluates to false in fast floating point modes
|
// warning: comparison with NaN always evaluates to false in fast floating point modes
|
||||||
#pragma clang diagnostic ignored "-Wtautological-constant-compare"
|
#pragma clang diagnostic ignored "-Wtautological-constant-compare"
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -37,9 +37,6 @@
|
|||||||
#if (ACC_CC_MSC)
|
#if (ACC_CC_MSC)
|
||||||
#pragma warning(disable : 4456) // -Wno-shadow
|
#pragma warning(disable : 4456) // -Wno-shadow
|
||||||
#endif
|
#endif
|
||||||
#if (ACC_CC_MSC && (_MSC_VER < 1900))
|
|
||||||
#pragma warning(disable : 4127) // warning C4127: conditional expression is constant
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void lzma_compress_config_t::reset() noexcept {
|
void lzma_compress_config_t::reset() noexcept {
|
||||||
pos_bits.reset();
|
pos_bits.reset();
|
||||||
@@ -206,15 +203,12 @@ error:
|
|||||||
// compress - cruft because of pseudo-COM layer
|
// compress - cruft because of pseudo-COM layer
|
||||||
**************************************************************************/
|
**************************************************************************/
|
||||||
|
|
||||||
// ensure proper nullptr usage
|
#if (ACC_CC_CLANG >= 0x080000)
|
||||||
// TODO later: examine why we need this in the first place
|
#pragma clang diagnostic push
|
||||||
#undef NULL
|
#pragma clang diagnostic ignored "-Wzero-as-null-pointer-constant"
|
||||||
// NOLINTBEGIN(clang-analyzer-optin.cplusplus.*)
|
#elif (ACC_CC_GNUC >= 0x040700)
|
||||||
#define NULL nullptr
|
#pragma GCC diagnostic push
|
||||||
// NOLINTEND(clang-analyzer-optin.cplusplus.*)
|
#pragma GCC diagnostic ignored "-Wzero-as-null-pointer-constant"
|
||||||
#if defined(__GNUC__)
|
|
||||||
#undef __null
|
|
||||||
#define __null nullptr
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#undef MSDOS
|
#undef MSDOS
|
||||||
@@ -316,6 +310,12 @@ STDMETHODIMP ProgressInfo::SetRatioInfo(const UInt64 *inSize, const UInt64 *outS
|
|||||||
#include <lzma-sdk/C/7zip/Compress/RangeCoder/RangeCoderBit.cpp>
|
#include <lzma-sdk/C/7zip/Compress/RangeCoder/RangeCoderBit.cpp>
|
||||||
#undef RC_NORMALIZE
|
#undef RC_NORMALIZE
|
||||||
|
|
||||||
|
#if (ACC_CC_CLANG >= 0x080000)
|
||||||
|
#pragma clang diagnostic pop
|
||||||
|
#elif (ACC_CC_GNUC >= 0x040700)
|
||||||
|
#pragma GCC diagnostic pop
|
||||||
|
#endif
|
||||||
|
|
||||||
int upx_lzma_compress(const upx_bytep src, unsigned src_len, upx_bytep dst, unsigned *dst_len,
|
int upx_lzma_compress(const upx_bytep src, unsigned src_len, upx_bytep dst, unsigned *dst_len,
|
||||||
upx_callback_t *cb, int method, int level,
|
upx_callback_t *cb, int method, int level,
|
||||||
const upx_compress_config_t *cconf_parm, upx_compress_result_t *cresult) {
|
const upx_compress_config_t *cconf_parm, upx_compress_result_t *cresult) {
|
||||||
@@ -340,7 +340,8 @@ int upx_lzma_compress(const upx_bytep src, unsigned src_len, upx_bytep dst, unsi
|
|||||||
progress.cb = cb; // progress.Init()
|
progress.cb = cb; // progress.Init()
|
||||||
|
|
||||||
NCompress::NLZMA::CEncoder enc;
|
NCompress::NLZMA::CEncoder enc;
|
||||||
const PROPID propIDs[8] = {
|
constexpr unsigned NPROPS = 8;
|
||||||
|
static const PROPID propIDs[NPROPS] = {
|
||||||
NCoderPropID::kPosStateBits, // 0 pb _posStateBits(2)
|
NCoderPropID::kPosStateBits, // 0 pb _posStateBits(2)
|
||||||
NCoderPropID::kLitPosBits, // 1 lp _numLiteralPosStateBits(0)
|
NCoderPropID::kLitPosBits, // 1 lp _numLiteralPosStateBits(0)
|
||||||
NCoderPropID::kLitContextBits, // 2 lc _numLiteralContextBits(3)
|
NCoderPropID::kLitContextBits, // 2 lc _numLiteralContextBits(3)
|
||||||
@@ -350,8 +351,7 @@ int upx_lzma_compress(const upx_bytep src, unsigned src_len, upx_bytep dst, unsi
|
|||||||
NCoderPropID::kMatchFinderCycles, // 6 mfc _matchFinderCycles, _cutValue
|
NCoderPropID::kMatchFinderCycles, // 6 mfc _matchFinderCycles, _cutValue
|
||||||
NCoderPropID::kMatchFinder // 7 mf
|
NCoderPropID::kMatchFinder // 7 mf
|
||||||
};
|
};
|
||||||
PROPVARIANT pr[8];
|
PROPVARIANT pr[NPROPS];
|
||||||
const unsigned nprops = 8;
|
|
||||||
if (!prepare_result(res, src_len, method, level, lcconf))
|
if (!prepare_result(res, src_len, method, level, lcconf))
|
||||||
goto error;
|
goto error;
|
||||||
pr[0].vt = pr[1].vt = pr[2].vt = pr[3].vt = pr[4].vt = pr[5].vt = pr[6].vt = VT_UI4;
|
pr[0].vt = pr[1].vt = pr[2].vt = pr[3].vt = pr[4].vt = pr[5].vt = pr[6].vt = VT_UI4;
|
||||||
@@ -368,7 +368,7 @@ int upx_lzma_compress(const upx_bytep src, unsigned src_len, upx_bytep dst, unsi
|
|||||||
pr[7].bstrVal = ACC_PCAST(BSTR, ACC_UNCONST_CAST(wchar_t *, matchfinder));
|
pr[7].bstrVal = ACC_PCAST(BSTR, ACC_UNCONST_CAST(wchar_t *, matchfinder));
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if (enc.SetCoderProperties(propIDs, pr, nprops) != S_OK)
|
if (enc.SetCoderProperties(propIDs, pr, NPROPS) != S_OK)
|
||||||
goto error;
|
goto error;
|
||||||
// encode properties in LZMA-style (5 bytes)
|
// encode properties in LZMA-style (5 bytes)
|
||||||
if (enc.WriteCoderProperties(&os) != S_OK)
|
if (enc.WriteCoderProperties(&os) != S_OK)
|
||||||
|
|||||||
+15
-20
@@ -162,7 +162,7 @@ ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(upx_charptr_unit_type) == 1)
|
|||||||
typedef upx_int64_t upx_off_t;
|
typedef upx_int64_t upx_off_t;
|
||||||
#undef off_t
|
#undef off_t
|
||||||
#if 0
|
#if 0
|
||||||
// TODO cleanup: at some future point we can do this:
|
// TODO later cleanup: at some future point we can do this:
|
||||||
#define off_t DO_NOT_USE_off_t
|
#define off_t DO_NOT_USE_off_t
|
||||||
#else
|
#else
|
||||||
#define off_t upx_off_t
|
#define off_t upx_off_t
|
||||||
@@ -180,7 +180,7 @@ typedef upx_int64_t upx_off_t;
|
|||||||
#if defined(__clang__) || defined(__GNUC__)
|
#if defined(__clang__) || defined(__GNUC__)
|
||||||
#define noreturn noinline __attribute__((__noreturn__))
|
#define noreturn noinline __attribute__((__noreturn__))
|
||||||
#elif (ACC_CC_MSC)
|
#elif (ACC_CC_MSC)
|
||||||
// do not use, generates annoying "warning C4702: unreachable code"
|
// do not use, triggers annoying "warning C4702: unreachable code"
|
||||||
////#define noreturn noinline __declspec(noreturn)
|
////#define noreturn noinline __declspec(noreturn)
|
||||||
#define noreturn noinline
|
#define noreturn noinline
|
||||||
#else
|
#else
|
||||||
@@ -193,7 +193,7 @@ typedef upx_int64_t upx_off_t;
|
|||||||
#define very_unlikely __acc_very_unlikely
|
#define very_unlikely __acc_very_unlikely
|
||||||
|
|
||||||
// cosmetic: explicitly annotate some functions which may throw exceptions
|
// cosmetic: explicitly annotate some functions which may throw exceptions
|
||||||
// note: noexcept(false) is the default for all C++ functions anyway
|
// note that noexcept(false) is the default for all C++ functions anyway
|
||||||
#define may_throw noexcept(false)
|
#define may_throw noexcept(false)
|
||||||
|
|
||||||
#define COMPILE_TIME_ASSERT(e) ACC_COMPILE_TIME_ASSERT(e)
|
#define COMPILE_TIME_ASSERT(e) ACC_COMPILE_TIME_ASSERT(e)
|
||||||
@@ -230,12 +230,6 @@ typedef upx_int64_t upx_off_t;
|
|||||||
#undef sopen
|
#undef sopen
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(HAVE_DUP) && (HAVE_DUP + 0 == 0)
|
|
||||||
// TODO later: add upx_fd_dup() util
|
|
||||||
#undef dup
|
|
||||||
#define dup(x) (-1)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef STDIN_FILENO
|
#ifndef STDIN_FILENO
|
||||||
#define STDIN_FILENO (fileno(stdin))
|
#define STDIN_FILENO (fileno(stdin))
|
||||||
#endif
|
#endif
|
||||||
@@ -338,7 +332,7 @@ typedef upx_int64_t upx_off_t;
|
|||||||
// TODO later: check __MINGW_PRINTF_FORMAT
|
// TODO later: check __MINGW_PRINTF_FORMAT
|
||||||
#if defined(_WIN32) && defined(__MINGW32__) && defined(__GNUC__) && !defined(__clang__)
|
#if defined(_WIN32) && defined(__MINGW32__) && defined(__GNUC__) && !defined(__clang__)
|
||||||
#define attribute_format(a, b) __attribute__((__format__(__gnu_printf__, a, b)))
|
#define attribute_format(a, b) __attribute__((__format__(__gnu_printf__, a, b)))
|
||||||
#elif (ACC_CC_CLANG || ACC_CC_GNUC)
|
#elif defined(__clang__) || defined(__GNUC__)
|
||||||
#define attribute_format(a, b) __attribute__((__format__(__printf__, a, b)))
|
#define attribute_format(a, b) __attribute__((__format__(__printf__, a, b)))
|
||||||
#else
|
#else
|
||||||
#define attribute_format(a, b) /*empty*/
|
#define attribute_format(a, b) /*empty*/
|
||||||
@@ -442,6 +436,7 @@ inline void mem_clear(T *object) noexcept {
|
|||||||
static_assert(size >= 1 && size <= UPX_RSIZE_MAX_MEM);
|
static_assert(size >= 1 && size <= UPX_RSIZE_MAX_MEM);
|
||||||
memset((void *) object, 0, size);
|
memset((void *) object, 0, size);
|
||||||
}
|
}
|
||||||
|
// disable some overloads
|
||||||
#if defined(__clang__) || __GNUC__ != 7
|
#if defined(__clang__) || __GNUC__ != 7
|
||||||
template <class T>
|
template <class T>
|
||||||
inline void mem_clear(T (&array)[]) noexcept DELETED_FUNCTION;
|
inline void mem_clear(T (&array)[]) noexcept DELETED_FUNCTION;
|
||||||
@@ -463,7 +458,7 @@ noreturn void throwAssertFailed(const char *expr, const char *file, int line, co
|
|||||||
#if defined(__clang__) || defined(__GNUC__)
|
#if defined(__clang__) || defined(__GNUC__)
|
||||||
#undef assert
|
#undef assert
|
||||||
#if DEBUG || 0
|
#if DEBUG || 0
|
||||||
// generate a warning if assert() is used inside a "noexcept" context
|
// trigger a warning if assert() is used inside a "noexcept" context
|
||||||
#define assert(e) \
|
#define assert(e) \
|
||||||
((void) (__acc_cte(e) || (assertFailed(#e, __FILE__, __LINE__, __func__), throw 1, 0)))
|
((void) (__acc_cte(e) || (assertFailed(#e, __FILE__, __LINE__, __func__), throw 1, 0)))
|
||||||
#else
|
#else
|
||||||
@@ -594,7 +589,7 @@ using upx::tribool;
|
|||||||
// #define M_CL1B_8 12
|
// #define M_CL1B_8 12
|
||||||
// #define M_CL1B_LE16 13
|
// #define M_CL1B_LE16 13
|
||||||
#define M_LZMA 14
|
#define M_LZMA 14
|
||||||
#define M_DEFLATE 15 // zlib
|
#define M_DEFLATE 15 // NOT YET USED
|
||||||
#define M_ZSTD 16 // NOT YET USED
|
#define M_ZSTD 16 // NOT YET USED
|
||||||
#define M_BZIP2 17 // NOT YET USED
|
#define M_BZIP2 17 // NOT YET USED
|
||||||
// compression methods internal usage
|
// compression methods internal usage
|
||||||
@@ -712,7 +707,7 @@ struct upx_compress_config_t final {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
#define NULL_cconf ((upx_compress_config_t *) nullptr)
|
#define NULL_cconf ((const upx_compress_config_t *) nullptr)
|
||||||
|
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
// compression - result_t
|
// compression - result_t
|
||||||
@@ -786,19 +781,19 @@ struct upx_compress_result_t final {
|
|||||||
|
|
||||||
// classes
|
// classes
|
||||||
class ElfLinker;
|
class ElfLinker;
|
||||||
typedef ElfLinker Linker;
|
typedef ElfLinker Linker; // shortcut
|
||||||
class Throwable;
|
class Throwable;
|
||||||
|
|
||||||
|
// check/dt_check.cpp
|
||||||
|
noinline void upx_compiler_sanity_check() noexcept;
|
||||||
|
noinline int upx_doctest_check(int argc, char **argv);
|
||||||
|
int upx_doctest_check();
|
||||||
|
|
||||||
// util/membuffer.h
|
// util/membuffer.h
|
||||||
class MemBuffer;
|
class MemBuffer;
|
||||||
void *membuffer_get_void_ptr(MemBuffer &mb) noexcept;
|
void *membuffer_get_void_ptr(MemBuffer &mb) noexcept;
|
||||||
unsigned membuffer_get_size(MemBuffer &mb) noexcept;
|
unsigned membuffer_get_size(MemBuffer &mb) noexcept;
|
||||||
|
|
||||||
// util/dt_check.cpp
|
|
||||||
noinline void upx_compiler_sanity_check() noexcept;
|
|
||||||
noinline int upx_doctest_check(int argc, char **argv);
|
|
||||||
int upx_doctest_check();
|
|
||||||
|
|
||||||
// main.cpp
|
// main.cpp
|
||||||
extern const char *progname;
|
extern const char *progname;
|
||||||
bool main_set_exit_code(int ec);
|
bool main_set_exit_code(int ec);
|
||||||
@@ -827,7 +822,7 @@ int do_files(int i, int argc, char *argv[]) may_throw;
|
|||||||
// help.cpp
|
// help.cpp
|
||||||
extern const char gitrev[];
|
extern const char gitrev[];
|
||||||
void show_header();
|
void show_header();
|
||||||
void show_help(int verbose = 0);
|
void show_help(int verbose);
|
||||||
void show_license();
|
void show_license();
|
||||||
void show_sysinfo(const char *options_var);
|
void show_sysinfo(const char *options_var);
|
||||||
void show_usage();
|
void show_usage();
|
||||||
|
|||||||
+2
-2
@@ -195,7 +195,7 @@ void throwAssertFailed(const char *expr, const char *file, int line, const char
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *prettyName(const char *n) noexcept {
|
const char *prettyExceptionName(const char *n) noexcept {
|
||||||
if (n == nullptr)
|
if (n == nullptr)
|
||||||
return "(null)";
|
return "(null)";
|
||||||
while (*n) {
|
while (*n) {
|
||||||
@@ -203,7 +203,7 @@ const char *prettyName(const char *n) noexcept {
|
|||||||
n++;
|
n++;
|
||||||
else if (*n == ' ')
|
else if (*n == ' ')
|
||||||
n++;
|
n++;
|
||||||
else if (strncmp(n, "class ", 6) == 0) // Visual C++ (msvc)
|
else if (strncmp(n, "class ", 6) == 0) // Visual C++ (MSVC)
|
||||||
n += 6;
|
n += 6;
|
||||||
else
|
else
|
||||||
break;
|
break;
|
||||||
|
|||||||
+1
-1
@@ -178,7 +178,7 @@ public:
|
|||||||
// util
|
// util
|
||||||
**************************************************************************/
|
**************************************************************************/
|
||||||
|
|
||||||
const char *prettyName(const char *n) noexcept;
|
const char *prettyExceptionName(const char *n) noexcept;
|
||||||
|
|
||||||
noreturn void throwCantPack(const char *msg) may_throw;
|
noreturn void throwCantPack(const char *msg) may_throw;
|
||||||
noreturn void throwCantPackExact() may_throw;
|
noreturn void throwCantPackExact() may_throw;
|
||||||
|
|||||||
+18
-1
@@ -40,6 +40,7 @@
|
|||||||
#else
|
#else
|
||||||
UNUSED(name);
|
UNUSED(name);
|
||||||
UNUSED(mode);
|
UNUSED(mode);
|
||||||
|
// no error
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -88,7 +89,7 @@ bool FileBase::do_sopen() {
|
|||||||
else {
|
else {
|
||||||
#if (ACC_OS_DOS32) && defined(__DJGPP__)
|
#if (ACC_OS_DOS32) && defined(__DJGPP__)
|
||||||
_fd = ::open(_name, _flags | _shflags, _mode);
|
_fd = ::open(_name, _flags | _shflags, _mode);
|
||||||
#elif defined(__MINT__)
|
#elif (ACC_ARCH_M68K && ACC_OS_TOS && ACC_CC_GNUC) && defined(__MINT__)
|
||||||
_fd = ::open(_name, _flags | (_shflags & O_SHMODE), _mode);
|
_fd = ::open(_name, _flags | (_shflags & O_SHMODE), _mode);
|
||||||
#elif defined(SH_DENYRW)
|
#elif defined(SH_DENYRW)
|
||||||
_fd = ::sopen(_name, _flags, _shflags, _mode);
|
_fd = ::sopen(_name, _flags, _shflags, _mode);
|
||||||
@@ -98,6 +99,7 @@ bool FileBase::do_sopen() {
|
|||||||
}
|
}
|
||||||
if (_fd < 0)
|
if (_fd < 0)
|
||||||
return false;
|
return false;
|
||||||
|
st.st_size = 0;
|
||||||
if (::fstat(_fd, &st) != 0)
|
if (::fstat(_fd, &st) != 0)
|
||||||
throwIOException(_name, errno);
|
throwIOException(_name, errno);
|
||||||
_length = st.st_size;
|
_length = st.st_size;
|
||||||
@@ -212,6 +214,20 @@ upx_off_t InputFile::seek(upx_off_t off, int whence) {
|
|||||||
|
|
||||||
upx_off_t InputFile::st_size_orig() const { return _length_orig; }
|
upx_off_t InputFile::st_size_orig() const { return _length_orig; }
|
||||||
|
|
||||||
|
int InputFile::dupFd() may_throw {
|
||||||
|
if (!isOpen())
|
||||||
|
throwIOException("bad dup");
|
||||||
|
#if defined(HAVE_DUP) && (HAVE_DUP + 0 == 0)
|
||||||
|
errno = ENOSYS;
|
||||||
|
int r = -1;
|
||||||
|
#else
|
||||||
|
int r = ::dup(getFd());
|
||||||
|
#endif
|
||||||
|
if (r < 0)
|
||||||
|
throwIOException("dup", errno);
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
// OutputFile
|
// OutputFile
|
||||||
**************************************************************************/
|
**************************************************************************/
|
||||||
@@ -333,6 +349,7 @@ void OutputFile::set_extent(upx_off_t offset, upx_off_t length) {
|
|||||||
super::set_extent(offset, length);
|
super::set_extent(offset, length);
|
||||||
bytes_written = 0;
|
bytes_written = 0;
|
||||||
if (0 == offset && 0xffffffffLL == length) { // TODO: check all callers of this method
|
if (0 == offset && 0xffffffffLL == length) { // TODO: check all callers of this method
|
||||||
|
st.st_size = 0;
|
||||||
if (::fstat(_fd, &st) != 0)
|
if (::fstat(_fd, &st) != 0)
|
||||||
throwIOException(_name, errno);
|
throwIOException(_name, errno);
|
||||||
_length = st.st_size - offset;
|
_length = st.st_size - offset;
|
||||||
|
|||||||
@@ -88,6 +88,8 @@ public:
|
|||||||
virtual upx_off_t seek(upx_off_t off, int whence) override;
|
virtual upx_off_t seek(upx_off_t off, int whence) override;
|
||||||
upx_off_t st_size_orig() const;
|
upx_off_t st_size_orig() const;
|
||||||
|
|
||||||
|
noinline int dupFd() may_throw;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
upx_off_t _length_orig = 0;
|
upx_off_t _length_orig = 0;
|
||||||
};
|
};
|
||||||
|
|||||||
+67
-20
@@ -25,10 +25,16 @@
|
|||||||
<markus@oberhumer.com> <ezerotven+github@gmail.com>
|
<markus@oberhumer.com> <ezerotven+github@gmail.com>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#if defined(_WIN32_WINNT)
|
||||||
|
static constexpr long long initial_win32_winnt = _WIN32_WINNT + 0LL;
|
||||||
|
#else
|
||||||
|
static constexpr long long initial_win32_winnt = 0;
|
||||||
|
#endif
|
||||||
#define WANT_WINDOWS_LEAN_H 1 // _WIN32_WINNT
|
#define WANT_WINDOWS_LEAN_H 1 // _WIN32_WINNT
|
||||||
#include "conf.h"
|
#include "conf.h"
|
||||||
#include "compress/compress.h" // upx_ucl_version_string()
|
#include "compress/compress.h" // upx_ucl_version_string()
|
||||||
// for list_all_packers():
|
// for list_all_packers():
|
||||||
|
#include "filter.h" // Filter::isValidFilter
|
||||||
#include "packer.h"
|
#include "packer.h"
|
||||||
#include "packmast.h" // PackMaster::visitAllPackers
|
#include "packmast.h" // PackMaster::visitAllPackers
|
||||||
|
|
||||||
@@ -95,49 +101,84 @@ void show_usage(void) {
|
|||||||
**************************************************************************/
|
**************************************************************************/
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
struct PackerNames {
|
struct PackerNames final {
|
||||||
PackerNames() noexcept = default;
|
explicit PackerNames() noexcept = default;
|
||||||
~PackerNames() noexcept = default;
|
~PackerNames() noexcept = default;
|
||||||
|
|
||||||
|
static constexpr unsigned MAX_NAMES = 64; // arbitrary limit, increase as needed
|
||||||
struct Entry {
|
struct Entry {
|
||||||
const char *fname;
|
const char *fname;
|
||||||
const char *sname;
|
const char *sname;
|
||||||
|
unsigned methods_count;
|
||||||
|
unsigned filters_count;
|
||||||
|
unsigned methods[PackerBase::MAX_METHODS];
|
||||||
|
unsigned filters[PackerBase::MAX_FILTERS];
|
||||||
};
|
};
|
||||||
static constexpr size_t MAX_NAMES = 64;
|
|
||||||
Entry names[MAX_NAMES];
|
Entry names[MAX_NAMES];
|
||||||
size_t names_count = 0;
|
unsigned names_count = 0;
|
||||||
const Options *o = nullptr;
|
const Options *o = nullptr;
|
||||||
|
|
||||||
void add(const PackerBase *pb) {
|
void add(const PackerBase *pb) {
|
||||||
assert_noexcept(names_count < MAX_NAMES);
|
assert_noexcept(names_count < MAX_NAMES);
|
||||||
names[names_count].fname = pb->getFullName(o);
|
Entry &e = names[names_count++];
|
||||||
names[names_count].sname = pb->getName();
|
e.fname = pb->getFullName(o);
|
||||||
names_count++;
|
e.sname = pb->getName();
|
||||||
|
e.methods_count = e.filters_count = 0;
|
||||||
|
for (const int *m = pb->getCompressionMethods(M_ALL, 10); *m != M_END; m++) {
|
||||||
|
if (*m >= 0) {
|
||||||
|
assert_noexcept(Packer::isValidCompressionMethod(*m));
|
||||||
|
assert_noexcept(e.methods_count < PackerBase::MAX_METHODS);
|
||||||
|
e.methods[e.methods_count++] = *m;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (const int *f = pb->getFilters(); f != nullptr && *f != FT_END; f++) {
|
||||||
|
if (*f >= 0) {
|
||||||
|
assert_noexcept(Filter::isValidFilter(*f));
|
||||||
|
assert_noexcept(e.filters_count < PackerBase::MAX_FILTERS);
|
||||||
|
e.filters[e.filters_count++] = *f;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
upx_gnomesort(e.methods, e.methods_count, sizeof(e.methods[0]), ne32_compare);
|
||||||
|
upx_gnomesort(e.filters, e.filters_count, sizeof(e.filters[0]), ne32_compare);
|
||||||
}
|
}
|
||||||
static tribool visit(PackerBase *pb, void *user) {
|
static tribool visit(PackerBase *pb, void *user) {
|
||||||
|
NO_fprintf(stderr, "visit %s\n", pb->getFullName(nullptr));
|
||||||
PackerNames *self = (PackerNames *) user;
|
PackerNames *self = (PackerNames *) user;
|
||||||
self->add(pb);
|
self->add(pb);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
static int __acc_cdecl_qsort cmp_fname(const void *a, const void *b) {
|
static int __acc_cdecl_qsort compare_fname(const void *a, const void *b) {
|
||||||
return strcmp(((const Entry *) a)->fname, ((const Entry *) b)->fname);
|
return strcmp(((const Entry *) a)->fname, ((const Entry *) b)->fname);
|
||||||
}
|
}
|
||||||
static int __acc_cdecl_qsort cmp_sname(const void *a, const void *b) {
|
static int __acc_cdecl_qsort compare_sname(const void *a, const void *b) {
|
||||||
return strcmp(((const Entry *) a)->sname, ((const Entry *) b)->sname);
|
return strcmp(((const Entry *) a)->sname, ((const Entry *) b)->sname);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
static void list_all_packers(FILE *f, int verbose) {
|
static noinline void list_all_packers(FILE *f, int verbose) {
|
||||||
Options o;
|
Options o;
|
||||||
o.reset();
|
o.reset();
|
||||||
PackerNames pn;
|
PackerNames pn;
|
||||||
pn.o = &o;
|
pn.o = &o;
|
||||||
(void) PackMaster::visitAllPackers(PackerNames::visit, nullptr, &o, &pn);
|
(void) PackMaster::visitAllPackers(PackerNames::visit, nullptr, &o, &pn);
|
||||||
upx_qsort(pn.names, pn.names_count, sizeof(PackerNames::Entry), PackerNames::cmp_fname);
|
upx_gnomesort(pn.names, pn.names_count, sizeof(PackerNames::Entry), PackerNames::compare_fname);
|
||||||
size_t pos = 0;
|
size_t pos = 0;
|
||||||
for (size_t i = 0; i < pn.names_count; ++i) {
|
for (size_t i = 0; i < pn.names_count; i++) {
|
||||||
const char *fn = pn.names[i].fname;
|
const PackerNames::Entry &e = pn.names[i];
|
||||||
const char *sn = pn.names[i].sname;
|
const char *const fn = e.fname;
|
||||||
if (verbose > 0) {
|
const char *const sn = e.sname;
|
||||||
|
if (verbose >= 3) {
|
||||||
|
con_fprintf(f, " %-36s %s\n", fn, sn);
|
||||||
|
con_fprintf(f, " methods:");
|
||||||
|
for (size_t j = 0; j < e.methods_count; j++)
|
||||||
|
con_fprintf(f, " %#x", e.methods[j]);
|
||||||
|
con_fprintf(f, "\n");
|
||||||
|
con_fprintf(f, " filters:");
|
||||||
|
for (size_t j = 0; j < e.filters_count; j++)
|
||||||
|
con_fprintf(f, " %#x", e.filters[j]);
|
||||||
|
con_fprintf(f, "\n");
|
||||||
|
} else if (verbose >= 2) {
|
||||||
con_fprintf(f, " %-36s %s\n", fn, sn);
|
con_fprintf(f, " %-36s %s\n", fn, sn);
|
||||||
} else {
|
} else {
|
||||||
size_t fl = strlen(fn);
|
size_t fl = strlen(fn);
|
||||||
@@ -153,7 +194,7 @@ static void list_all_packers(FILE *f, int verbose) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (verbose <= 0 && pn.names_count)
|
if (verbose < 2 && pn.names_count)
|
||||||
con_fprintf(f, "\n");
|
con_fprintf(f, "\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -425,11 +466,12 @@ void show_version(bool one_line) {
|
|||||||
fprintf(f, "Copyright (C) 1996-2024 Markus Franz Xaver Johannes Oberhumer\n");
|
fprintf(f, "Copyright (C) 1996-2024 Markus Franz Xaver Johannes Oberhumer\n");
|
||||||
fprintf(f, "Copyright (C) 1996-2024 Laszlo Molnar\n");
|
fprintf(f, "Copyright (C) 1996-2024 Laszlo Molnar\n");
|
||||||
fprintf(f, "Copyright (C) 2000-2024 John F. Reiser\n");
|
fprintf(f, "Copyright (C) 2000-2024 John F. Reiser\n");
|
||||||
fprintf(f, "Copyright (C) 2002-2024 Jens Medoch\n");
|
|
||||||
#if (WITH_ZLIB)
|
#if (WITH_ZLIB)
|
||||||
|
// see vendor/zlib/LICENSE
|
||||||
fprintf(f, "Copyright (C) 1995" "-2024 Jean-loup Gailly and Mark Adler\n");
|
fprintf(f, "Copyright (C) 1995" "-2024 Jean-loup Gailly and Mark Adler\n");
|
||||||
#endif
|
#endif
|
||||||
#if (WITH_LZMA)
|
#if (WITH_LZMA)
|
||||||
|
// see vendor/lzma-sdk/lzma.txt
|
||||||
fprintf(f, "Copyright (C) 1999" "-2006 Igor Pavlov\n");
|
fprintf(f, "Copyright (C) 1999" "-2006 Igor Pavlov\n");
|
||||||
#endif
|
#endif
|
||||||
#if (WITH_ZSTD)
|
#if (WITH_ZSTD)
|
||||||
@@ -437,13 +479,15 @@ void show_version(bool one_line) {
|
|||||||
fprintf(f, "Copyright (C) 2015" "-2024 Meta Platforms, Inc. and affiliates\n");
|
fprintf(f, "Copyright (C) 2015" "-2024 Meta Platforms, Inc. and affiliates\n");
|
||||||
#endif
|
#endif
|
||||||
#if (WITH_BZIP2)
|
#if (WITH_BZIP2)
|
||||||
fprintf(f, "Copyright (C) 1996" "-2010 Julian Seward\n"); // see <bzlib.h>
|
// see vendor/bzip2/bzlib.h
|
||||||
|
fprintf(f, "Copyright (C) 1996" "-2010 Julian Seward\n");
|
||||||
#endif
|
#endif
|
||||||
#if !defined(DOCTEST_CONFIG_DISABLE)
|
#if !defined(DOCTEST_CONFIG_DISABLE)
|
||||||
|
// see vendor/doctest/LICENSE.txt
|
||||||
fprintf(f, "Copyright (C) 2016" "-2023 Viktor Kirilov\n");
|
fprintf(f, "Copyright (C) 2016" "-2023 Viktor Kirilov\n");
|
||||||
#endif
|
#endif
|
||||||
fprintf(f, "UPX comes with ABSOLUTELY NO WARRANTY; for details type '%s -L'.\n", progname);
|
|
||||||
// clang-format on
|
// clang-format on
|
||||||
|
fprintf(f, "UPX comes with ABSOLUTELY NO WARRANTY; for details type '%s -L'.\n", progname);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
@@ -525,6 +569,8 @@ void show_sysinfo(const char *options_var) {
|
|||||||
#endif
|
#endif
|
||||||
#if defined(_WIN32_WINNT)
|
#if defined(_WIN32_WINNT)
|
||||||
cf_print("_WIN32_WINNT", "0x%04llx", _WIN32_WINNT + 0);
|
cf_print("_WIN32_WINNT", "0x%04llx", _WIN32_WINNT + 0);
|
||||||
|
if (initial_win32_winnt != 0 && initial_win32_winnt != _WIN32_WINNT + 0)
|
||||||
|
cf_print("INITIAL_WIN32_WINNT", "0x%04llx", initial_win32_winnt);
|
||||||
#endif
|
#endif
|
||||||
#if defined(__MSVCRT_VERSION__)
|
#if defined(__MSVCRT_VERSION__)
|
||||||
cf_print("__MSVCRT_VERSION__", "0x%04llx", __MSVCRT_VERSION__ + 0);
|
cf_print("__MSVCRT_VERSION__", "0x%04llx", __MSVCRT_VERSION__ + 0);
|
||||||
@@ -556,6 +602,7 @@ void show_sysinfo(const char *options_var) {
|
|||||||
#endif
|
#endif
|
||||||
UNUSED(cf_count);
|
UNUSED(cf_count);
|
||||||
UNUSED(cf_print);
|
UNUSED(cf_print);
|
||||||
|
UNUSED(initial_win32_winnt);
|
||||||
}
|
}
|
||||||
|
|
||||||
// run-time
|
// run-time
|
||||||
@@ -578,7 +625,7 @@ void show_sysinfo(const char *options_var) {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (options_var && options_var[0]) {
|
if (options_var && options_var[0]) {
|
||||||
const char *e = getenv(options_var);
|
const char *e = upx_getenv(options_var);
|
||||||
con_fprintf(f, "\n");
|
con_fprintf(f, "\n");
|
||||||
if (e && e[0])
|
if (e && e[0])
|
||||||
con_fprintf(f, "Contents of environment variable %s: '%s'\n\n", options_var, e);
|
con_fprintf(f, "Contents of environment variable %s: '%s'\n\n", options_var, e);
|
||||||
|
|||||||
+1
-2
@@ -190,8 +190,7 @@ protected:
|
|||||||
unsigned le_offset = 0;
|
unsigned le_offset = 0;
|
||||||
unsigned exe_offset = 0;
|
unsigned exe_offset = 0;
|
||||||
|
|
||||||
le_header_t ih;
|
le_header_t ih = {}, oh = {};
|
||||||
le_header_t oh;
|
|
||||||
|
|
||||||
le_object_table_entry_t *iobject_table = nullptr;
|
le_object_table_entry_t *iobject_table = nullptr;
|
||||||
le_object_table_entry_t *oobject_table = nullptr;
|
le_object_table_entry_t *oobject_table = nullptr;
|
||||||
|
|||||||
+77
-85
@@ -30,7 +30,7 @@
|
|||||||
|
|
||||||
static unsigned hex(uchar c) { return (c & 0xf) + (c > '9' ? 9 : 0); }
|
static unsigned hex(uchar c) { return (c & 0xf) + (c > '9' ? 9 : 0); }
|
||||||
|
|
||||||
static bool update_capacity(unsigned size, unsigned *capacity) {
|
static bool grow_capacity(unsigned size, unsigned *capacity) {
|
||||||
if (size < *capacity)
|
if (size < *capacity)
|
||||||
return false;
|
return false;
|
||||||
if (*capacity == 0)
|
if (*capacity == 0)
|
||||||
@@ -40,16 +40,22 @@ static bool update_capacity(unsigned size, unsigned *capacity) {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void internal_error(const char *format, ...) attribute_format(1, 2);
|
template <class T>
|
||||||
static void internal_error(const char *format, ...) {
|
static T **realloc_array(T **array, size_t capacity) may_throw {
|
||||||
static char buf[1024];
|
assert_noexcept(capacity > 0);
|
||||||
va_list ap;
|
// NOLINTNEXTLINE(bugprone-multi-level-implicit-pointer-conversion)
|
||||||
|
void *p = realloc(array, mem_size(sizeof(T *), capacity));
|
||||||
|
assert_noexcept(p != nullptr);
|
||||||
|
return static_cast<T **>(p);
|
||||||
|
}
|
||||||
|
|
||||||
va_start(ap, format);
|
template <class T>
|
||||||
upx_safe_vsnprintf(buf, sizeof(buf), format, ap);
|
static void free_array(T **array, size_t count) noexcept {
|
||||||
va_end(ap);
|
for (size_t i = 0; i < count; i++) {
|
||||||
|
T *item = upx::atomic_exchange(&array[i], (T *) nullptr);
|
||||||
throwInternalError(buf);
|
delete item;
|
||||||
|
}
|
||||||
|
::free(array); // NOLINT(bugprone-multi-level-implicit-pointer-conversion)
|
||||||
}
|
}
|
||||||
|
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
@@ -59,19 +65,19 @@ static void internal_error(const char *format, ...) {
|
|||||||
ElfLinker::Section::Section(const char *n, const void *i, unsigned s, unsigned a)
|
ElfLinker::Section::Section(const char *n, const void *i, unsigned s, unsigned a)
|
||||||
: name(nullptr), output(nullptr), size(s), offset(0), p2align(a), next(nullptr) {
|
: name(nullptr), output(nullptr), size(s), offset(0), p2align(a), next(nullptr) {
|
||||||
name = strdup(n);
|
name = strdup(n);
|
||||||
assert(name != nullptr);
|
assert_noexcept(name != nullptr);
|
||||||
input = malloc(s + 1);
|
input = ::malloc(s + 1);
|
||||||
assert(input != nullptr);
|
assert_noexcept(input != nullptr);
|
||||||
if (s != 0) {
|
if (s != 0) {
|
||||||
assert(i != nullptr);
|
assert_noexcept(i != nullptr);
|
||||||
memcpy(input, i, s);
|
memcpy(input, i, s);
|
||||||
}
|
}
|
||||||
((char *) input)[s] = 0;
|
((char *) input)[s] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
ElfLinker::Section::~Section() noexcept {
|
ElfLinker::Section::~Section() noexcept {
|
||||||
free(name);
|
::free(name);
|
||||||
free(input);
|
::free(input);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
@@ -81,11 +87,11 @@ ElfLinker::Section::~Section() noexcept {
|
|||||||
ElfLinker::Symbol::Symbol(const char *n, Section *s, upx_uint64_t o)
|
ElfLinker::Symbol::Symbol(const char *n, Section *s, upx_uint64_t o)
|
||||||
: name(nullptr), section(s), offset(o) {
|
: name(nullptr), section(s), offset(o) {
|
||||||
name = strdup(n);
|
name = strdup(n);
|
||||||
assert(name != nullptr);
|
assert_noexcept(name != nullptr);
|
||||||
assert(section != nullptr);
|
assert_noexcept(section != nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
ElfLinker::Symbol::~Symbol() noexcept { free(name); }
|
ElfLinker::Symbol::~Symbol() noexcept { ::free(name); }
|
||||||
|
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
// Relocation
|
// Relocation
|
||||||
@@ -94,7 +100,7 @@ ElfLinker::Symbol::~Symbol() noexcept { free(name); }
|
|||||||
ElfLinker::Relocation::Relocation(const Section *s, unsigned o, const char *t, const Symbol *v,
|
ElfLinker::Relocation::Relocation(const Section *s, unsigned o, const char *t, const Symbol *v,
|
||||||
upx_uint64_t a)
|
upx_uint64_t a)
|
||||||
: section(s), offset(o), type(t), value(v), add(a) {
|
: section(s), offset(o), type(t), value(v), add(a) {
|
||||||
assert(section != nullptr);
|
assert_noexcept(section != nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
@@ -106,17 +112,9 @@ ElfLinker::ElfLinker(const N_BELE_RTP::AbstractPolicy *b) noexcept : bele(b) {}
|
|||||||
ElfLinker::~ElfLinker() noexcept {
|
ElfLinker::~ElfLinker() noexcept {
|
||||||
delete[] input;
|
delete[] input;
|
||||||
delete[] output;
|
delete[] output;
|
||||||
|
free_array(sections, nsections);
|
||||||
unsigned ic;
|
free_array(symbols, nsymbols);
|
||||||
for (ic = 0; ic < nsections; ic++)
|
free_array(relocations, nrelocations);
|
||||||
delete sections[ic];
|
|
||||||
free(sections);
|
|
||||||
for (ic = 0; ic < nsymbols; ic++)
|
|
||||||
delete symbols[ic];
|
|
||||||
free(symbols);
|
|
||||||
for (ic = 0; ic < nrelocations; ic++)
|
|
||||||
delete relocations[ic];
|
|
||||||
free(relocations);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ElfLinker::init(const void *pdata_v, int plen, unsigned pxtra) {
|
void ElfLinker::init(const void *pdata_v, int plen, unsigned pxtra) {
|
||||||
@@ -156,7 +154,7 @@ void ElfLinker::init(const void *pdata_v, int plen, unsigned pxtra) {
|
|||||||
input[inputlen] = 0; // NUL terminate
|
input[inputlen] = 0; // NUL terminate
|
||||||
|
|
||||||
output_capacity = (inputlen ? (inputlen + pxtra) : 0x4000);
|
output_capacity = (inputlen ? (inputlen + pxtra) : 0x4000);
|
||||||
assert(output_capacity <= (1 << 16)); // LE16 l_info.l_size
|
assert(output_capacity < (1 << 16)); // LE16 l_info.l_size
|
||||||
output = New(byte, output_capacity);
|
output = New(byte, output_capacity);
|
||||||
outputlen = 0;
|
outputlen = 0;
|
||||||
NO_printf("\nElfLinker::init %d @%p\n", output_capacity, output);
|
NO_printf("\nElfLinker::init %d @%p\n", output_capacity, output);
|
||||||
@@ -186,8 +184,9 @@ void ElfLinker::init(const void *pdata_v, int plen, unsigned pxtra) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ElfLinker::preprocessSections(char *start, char const *end) {
|
void ElfLinker::preprocessSections(char *start, char const *end) {
|
||||||
|
assert_noexcept(nsections == 0);
|
||||||
char *nextl;
|
char *nextl;
|
||||||
for (nsections = 0; start < end; start = 1 + nextl) {
|
for (; start < end; start = 1 + nextl) {
|
||||||
nextl = strchr(start, '\n');
|
nextl = strchr(start, '\n');
|
||||||
assert(nextl != nullptr);
|
assert(nextl != nullptr);
|
||||||
*nextl = '\0'; // a record is a line
|
*nextl = '\0'; // a record is a line
|
||||||
@@ -207,8 +206,9 @@ void ElfLinker::preprocessSections(char *start, char const *end) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ElfLinker::preprocessSymbols(char *start, char const *end) {
|
void ElfLinker::preprocessSymbols(char *start, char const *end) {
|
||||||
|
assert_noexcept(nsymbols == 0);
|
||||||
char *nextl;
|
char *nextl;
|
||||||
for (nsymbols = 0; start < end; start = 1 + nextl) {
|
for (; start < end; start = 1 + nextl) {
|
||||||
nextl = strchr(start, '\n');
|
nextl = strchr(start, '\n');
|
||||||
assert(nextl != nullptr);
|
assert(nextl != nullptr);
|
||||||
*nextl = '\0'; // a record is a line
|
*nextl = '\0'; // a record is a line
|
||||||
@@ -243,9 +243,10 @@ void ElfLinker::preprocessSymbols(char *start, char const *end) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ElfLinker::preprocessRelocations(char *start, char const *end) {
|
void ElfLinker::preprocessRelocations(char *start, char const *end) {
|
||||||
|
assert_noexcept(nrelocations == 0);
|
||||||
Section *section = nullptr;
|
Section *section = nullptr;
|
||||||
char *nextl;
|
char *nextl;
|
||||||
for (nrelocations = 0; start < end; start = 1 + nextl) {
|
for (; start < end; start = 1 + nextl) {
|
||||||
nextl = strchr(start, '\n');
|
nextl = strchr(start, '\n');
|
||||||
assert(nextl != nullptr);
|
assert(nextl != nullptr);
|
||||||
*nextl = '\0'; // a record is a line
|
*nextl = '\0'; // a record is a line
|
||||||
@@ -302,7 +303,7 @@ ElfLinker::Section *ElfLinker::findSection(const char *name, bool fatal) const {
|
|||||||
if (strcmp(sections[ic]->name, name) == 0)
|
if (strcmp(sections[ic]->name, name) == 0)
|
||||||
return sections[ic];
|
return sections[ic];
|
||||||
if (fatal)
|
if (fatal)
|
||||||
internal_error("unknown section %s\n", name);
|
throwInternalError("unknown section %s\n", name);
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -311,7 +312,7 @@ ElfLinker::Symbol *ElfLinker::findSymbol(const char *name, bool fatal) const {
|
|||||||
if (strcmp(symbols[ic]->name, name) == 0)
|
if (strcmp(symbols[ic]->name, name) == 0)
|
||||||
return symbols[ic];
|
return symbols[ic];
|
||||||
if (fatal)
|
if (fatal)
|
||||||
internal_error("unknown symbol %s\n", name);
|
throwInternalError("unknown symbol %s\n", name);
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -320,14 +321,11 @@ ElfLinker::Section *ElfLinker::addSection(const char *sname, const void *sdata,
|
|||||||
NO_printf("addSection: %s len=%d align=%d\n", sname, slen, p2align);
|
NO_printf("addSection: %s len=%d align=%d\n", sname, slen, p2align);
|
||||||
if (!sdata && (!strcmp("ABS*", sname) || !strcmp("UND*", sname)))
|
if (!sdata && (!strcmp("ABS*", sname) || !strcmp("UND*", sname)))
|
||||||
return nullptr;
|
return nullptr;
|
||||||
if (update_capacity(nsections, &nsections_capacity))
|
assert(sname && sname[0]);
|
||||||
sections =
|
|
||||||
static_cast<Section **>(realloc(sections, nsections_capacity * sizeof(Section *)));
|
|
||||||
assert(sections);
|
|
||||||
assert(sname);
|
|
||||||
assert(sname[0]);
|
|
||||||
assert(sname[strlen(sname) - 1] != ':');
|
assert(sname[strlen(sname) - 1] != ':');
|
||||||
assert(findSection(sname, false) == nullptr);
|
assert(findSection(sname, false) == nullptr);
|
||||||
|
if (grow_capacity(nsections, &nsections_capacity))
|
||||||
|
sections = realloc_array(sections, nsections_capacity);
|
||||||
Section *sec = new Section(sname, sdata, slen, p2align);
|
Section *sec = new Section(sname, sdata, slen, p2align);
|
||||||
sec->sort_id = nsections;
|
sec->sort_id = nsections;
|
||||||
sections[nsections++] = sec;
|
sections[nsections++] = sec;
|
||||||
@@ -337,13 +335,11 @@ ElfLinker::Section *ElfLinker::addSection(const char *sname, const void *sdata,
|
|||||||
ElfLinker::Symbol *ElfLinker::addSymbol(const char *name, const char *section,
|
ElfLinker::Symbol *ElfLinker::addSymbol(const char *name, const char *section,
|
||||||
upx_uint64_t offset) {
|
upx_uint64_t offset) {
|
||||||
NO_printf("addSymbol: %s %s 0x%llx\n", name, section, offset);
|
NO_printf("addSymbol: %s %s 0x%llx\n", name, section, offset);
|
||||||
if (update_capacity(nsymbols, &nsymbols_capacity))
|
assert(name && name[0]);
|
||||||
symbols = static_cast<Symbol **>(realloc(symbols, nsymbols_capacity * sizeof(Symbol *)));
|
|
||||||
assert(symbols != nullptr);
|
|
||||||
assert(name);
|
|
||||||
assert(name[0]);
|
|
||||||
assert(name[strlen(name) - 1] != ':');
|
assert(name[strlen(name) - 1] != ':');
|
||||||
assert(findSymbol(name, false) == nullptr);
|
assert(findSymbol(name, false) == nullptr);
|
||||||
|
if (grow_capacity(nsymbols, &nsymbols_capacity))
|
||||||
|
symbols = realloc_array(symbols, nsymbols_capacity);
|
||||||
Symbol *sym = new Symbol(name, findSection(section), offset);
|
Symbol *sym = new Symbol(name, findSection(section), offset);
|
||||||
symbols[nsymbols++] = sym;
|
symbols[nsymbols++] = sym;
|
||||||
return sym;
|
return sym;
|
||||||
@@ -351,18 +347,15 @@ ElfLinker::Symbol *ElfLinker::addSymbol(const char *name, const char *section,
|
|||||||
|
|
||||||
ElfLinker::Relocation *ElfLinker::addRelocation(const char *section, unsigned off, const char *type,
|
ElfLinker::Relocation *ElfLinker::addRelocation(const char *section, unsigned off, const char *type,
|
||||||
const char *symbol, upx_uint64_t add) {
|
const char *symbol, upx_uint64_t add) {
|
||||||
if (update_capacity(nrelocations, &nrelocations_capacity))
|
if (grow_capacity(nrelocations, &nrelocations_capacity))
|
||||||
relocations = static_cast<Relocation **>(
|
relocations = realloc_array(relocations, nrelocations_capacity);
|
||||||
realloc(relocations, (nrelocations_capacity) * sizeof(Relocation *)));
|
|
||||||
assert(relocations != nullptr);
|
|
||||||
Relocation *rel = new Relocation(findSection(section), off, type, findSymbol(symbol), add);
|
Relocation *rel = new Relocation(findSection(section), off, type, findSymbol(symbol), add);
|
||||||
relocations[nrelocations++] = rel;
|
relocations[nrelocations++] = rel;
|
||||||
return rel;
|
return rel;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
void ElfLinker::setLoaderAlignOffset(int phase)
|
void ElfLinker::setLoaderAlignOffset(int phase) {
|
||||||
{
|
|
||||||
// assert(phase & 0);
|
// assert(phase & 0);
|
||||||
NO_printf("\nFIXME: ElfLinker::setLoaderAlignOffset %d\n", phase);
|
NO_printf("\nFIXME: ElfLinker::setLoaderAlignOffset %d\n", phase);
|
||||||
}
|
}
|
||||||
@@ -425,7 +418,7 @@ int ElfLinker::addLoader(const char *sname) {
|
|||||||
}
|
}
|
||||||
sect += strlen(sect) + 1;
|
sect += strlen(sect) + 1;
|
||||||
}
|
}
|
||||||
free(begin);
|
::free(begin);
|
||||||
return outputlen;
|
return outputlen;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -474,10 +467,10 @@ void ElfLinker::relocate() {
|
|||||||
value = rel->value->offset;
|
value = rel->value->offset;
|
||||||
} else if (strcmp(rel->value->section->name, "*UND*") == 0 &&
|
} else if (strcmp(rel->value->section->name, "*UND*") == 0 &&
|
||||||
rel->value->offset == 0xdeaddead)
|
rel->value->offset == 0xdeaddead)
|
||||||
internal_error("undefined symbol '%s' referenced\n", rel->value->name);
|
throwInternalError("undefined symbol '%s' referenced\n", rel->value->name);
|
||||||
else if (rel->value->section->output == nullptr)
|
else if (rel->value->section->output == nullptr)
|
||||||
internal_error("can not apply reloc '%s:%x' without section '%s'\n", rel->section->name,
|
throwInternalError("can not apply reloc '%s:%x' without section '%s'\n",
|
||||||
rel->offset, rel->value->section->name);
|
rel->section->name, rel->offset, rel->value->section->name);
|
||||||
else {
|
else {
|
||||||
value = rel->value->section->offset + rel->value->offset + rel->add;
|
value = rel->value->section->offset + rel->value->offset + rel->add;
|
||||||
}
|
}
|
||||||
@@ -495,7 +488,7 @@ void ElfLinker::relocate() {
|
|||||||
void ElfLinker::defineSymbol(const char *name, upx_uint64_t value) {
|
void ElfLinker::defineSymbol(const char *name, upx_uint64_t value) {
|
||||||
Symbol *symbol = findSymbol(name);
|
Symbol *symbol = findSymbol(name);
|
||||||
if (strcmp(symbol->section->name, "*ABS*") == 0)
|
if (strcmp(symbol->section->name, "*ABS*") == 0)
|
||||||
internal_error("defineSymbol: symbol '%s' is *ABS*\n", name);
|
throwInternalError("defineSymbol: symbol '%s' is *ABS*\n", name);
|
||||||
else if (strcmp(symbol->section->name, "*UND*") == 0) // for undefined symbols
|
else if (strcmp(symbol->section->name, "*UND*") == 0) // for undefined symbols
|
||||||
symbol->offset = value;
|
symbol->offset = value;
|
||||||
else if (strcmp(symbol->section->name, name) == 0) // for sections
|
else if (strcmp(symbol->section->name, name) == 0) // for sections
|
||||||
@@ -506,7 +499,7 @@ void ElfLinker::defineSymbol(const char *name, upx_uint64_t value) {
|
|||||||
value += section->size;
|
value += section->size;
|
||||||
}
|
}
|
||||||
} else
|
} else
|
||||||
internal_error("defineSymbol: symbol '%s' already defined\n", name);
|
throwInternalError("defineSymbol: symbol '%s' already defined\n", name);
|
||||||
}
|
}
|
||||||
|
|
||||||
// debugging support
|
// debugging support
|
||||||
@@ -553,7 +546,7 @@ void ElfLinker::alignWithByte(unsigned len, byte b) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ElfLinker::relocate1(const Relocation *rel, byte *, upx_uint64_t, const char *) {
|
void ElfLinker::relocate1(const Relocation *rel, byte *, upx_uint64_t, const char *) {
|
||||||
internal_error("unknown relocation type '%s\n'", rel->type);
|
throwInternalError("unknown relocation type '%s\n'", rel->type);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
@@ -563,14 +556,13 @@ void ElfLinker::relocate1(const Relocation *rel, byte *, upx_uint64_t, const cha
|
|||||||
**************************************************************************/
|
**************************************************************************/
|
||||||
|
|
||||||
#if 0 // FIXME
|
#if 0 // FIXME
|
||||||
static void check8(const Relocation *rel, const byte *location, int v, int d)
|
static void check8(const Relocation *rel, const byte *location, int v, int d) {
|
||||||
{
|
|
||||||
if (v < -128 || v > 127)
|
if (v < -128 || v > 127)
|
||||||
internal_error("value out of range (%d) in reloc %s:%x\n",
|
throwInternalError("value out of range (%d) in reloc %s:%x\n", v, rel->section->name,
|
||||||
v, rel->section->name, rel->offset);
|
rel->offset);
|
||||||
if (d < -128 || d > 127)
|
if (d < -128 || d > 127)
|
||||||
internal_error("displacement target out of range (%d) in reloc %s:%x\n",
|
throwInternalError("displacement target out of range (%d) in reloc %s:%x\n", v,
|
||||||
v, rel->section->name, rel->offset);
|
rel->section->name, rel->offset);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -592,10 +584,10 @@ void ElfLinkerAMD64::relocate1(const Relocation *rel, byte *location, upx_uint64
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (strcmp(type, "8") == 0) {
|
if (strcmp(type, "8") == 0) {
|
||||||
int displ = (signed char) *location + (int) value;
|
int displ = (upx_int8_t) *location + (int) value;
|
||||||
if (range_check && (displ < -128 || displ > 127))
|
if (range_check && (displ < -128 || displ > 127))
|
||||||
internal_error("target out of range (%d) in reloc %s:%x\n", displ, rel->section->name,
|
throwInternalError("target out of range (%d) in reloc %s:%x\n", displ,
|
||||||
rel->offset);
|
rel->section->name, rel->offset);
|
||||||
*location += value;
|
*location += value;
|
||||||
} else if (strcmp(type, "16") == 0)
|
} else if (strcmp(type, "16") == 0)
|
||||||
set_le16(location, get_le16(location) + value);
|
set_le16(location, get_le16(location) + value);
|
||||||
@@ -800,12 +792,12 @@ void ElfLinkerPpc32::relocate1(const Relocation *rel, byte *location, upx_uint64
|
|||||||
// Note that original (*location).displ is ignored.
|
// Note that original (*location).displ is ignored.
|
||||||
if (strcmp(type, "24") == 0) {
|
if (strcmp(type, "24") == 0) {
|
||||||
if (3 & value)
|
if (3 & value)
|
||||||
internal_error("unaligned word displacement");
|
throwInternalError("unaligned word displacement");
|
||||||
// FIXME: displacement overflow?
|
// FIXME: displacement overflow?
|
||||||
set_be32(location, (0xfc000003 & get_be32(location)) + (0x03fffffc & value));
|
set_be32(location, (0xfc000003 & get_be32(location)) + (0x03fffffc & value));
|
||||||
} else if (strcmp(type, "14") == 0) {
|
} else if (strcmp(type, "14") == 0) {
|
||||||
if (3 & value)
|
if (3 & value)
|
||||||
internal_error("unaligned word displacement");
|
throwInternalError("unaligned word displacement");
|
||||||
// FIXME: displacement overflow?
|
// FIXME: displacement overflow?
|
||||||
set_be32(location, (0xffff0003 & get_be32(location)) + (0x0000fffc & value));
|
set_be32(location, (0xffff0003 & get_be32(location)) + (0x0000fffc & value));
|
||||||
} else
|
} else
|
||||||
@@ -837,19 +829,19 @@ void ElfLinkerPpc64le::relocate1(const Relocation *rel, byte *location, upx_uint
|
|||||||
|
|
||||||
if (strncmp(type, "14", 2) == 0) { // for "14" and "14S"
|
if (strncmp(type, "14", 2) == 0) { // for "14" and "14S"
|
||||||
if (3 & value)
|
if (3 & value)
|
||||||
internal_error("unaligned word displacement");
|
throwInternalError("unaligned word displacement");
|
||||||
// FIXME: displacement overflow?
|
// FIXME: displacement overflow?
|
||||||
set_le32(location, (0xffff0003 & get_le32(location)) + (0x0000fffc & value));
|
set_le32(location, (0xffff0003 & get_le32(location)) + (0x0000fffc & value));
|
||||||
} else if (strncmp(type, "24", 2) == 0) { // for "24" and "24S"
|
} else if (strncmp(type, "24", 2) == 0) { // for "24" and "24S"
|
||||||
if (3 & value)
|
if (3 & value)
|
||||||
internal_error("unaligned word displacement");
|
throwInternalError("unaligned word displacement");
|
||||||
// FIXME: displacement overflow?
|
// FIXME: displacement overflow?
|
||||||
set_le32(location, (0xfc000003 & get_le32(location)) + (0x03fffffc & value));
|
set_le32(location, (0xfc000003 & get_le32(location)) + (0x03fffffc & value));
|
||||||
} else if (strcmp(type, "8") == 0) {
|
} else if (strcmp(type, "8") == 0) {
|
||||||
int displ = (signed char) *location + (int) value;
|
int displ = (upx_int8_t) *location + (int) value;
|
||||||
if (range_check && (displ < -128 || displ > 127))
|
if (range_check && (displ < -128 || displ > 127))
|
||||||
internal_error("target out of range (%d) in reloc %s:%x\n", displ, rel->section->name,
|
throwInternalError("target out of range (%d) in reloc %s:%x\n", displ,
|
||||||
rel->offset);
|
rel->section->name, rel->offset);
|
||||||
*location += value;
|
*location += value;
|
||||||
} else if (strcmp(type, "16") == 0)
|
} else if (strcmp(type, "16") == 0)
|
||||||
set_le16(location, get_le16(location) + value);
|
set_le16(location, get_le16(location) + value);
|
||||||
@@ -887,19 +879,19 @@ void ElfLinkerPpc64::relocate1(const Relocation *rel, byte *location, upx_uint64
|
|||||||
|
|
||||||
if (strncmp(type, "14", 2) == 0) { // for "14" and "14S"
|
if (strncmp(type, "14", 2) == 0) { // for "14" and "14S"
|
||||||
if (3 & value)
|
if (3 & value)
|
||||||
internal_error("unaligned word displacement");
|
throwInternalError("unaligned word displacement");
|
||||||
// FIXME: displacement overflow?
|
// FIXME: displacement overflow?
|
||||||
set_be32(location, (0xffff0003 & get_be32(location)) + (0x0000fffc & value));
|
set_be32(location, (0xffff0003 & get_be32(location)) + (0x0000fffc & value));
|
||||||
} else if (strncmp(type, "24", 2) == 0) { // for "24" and "24S"
|
} else if (strncmp(type, "24", 2) == 0) { // for "24" and "24S"
|
||||||
if (3 & value)
|
if (3 & value)
|
||||||
internal_error("unaligned word displacement");
|
throwInternalError("unaligned word displacement");
|
||||||
// FIXME: displacement overflow?
|
// FIXME: displacement overflow?
|
||||||
set_be32(location, (0xfc000003 & get_be32(location)) + (0x03fffffc & value));
|
set_be32(location, (0xfc000003 & get_be32(location)) + (0x03fffffc & value));
|
||||||
} else if (strcmp(type, "8") == 0) {
|
} else if (strcmp(type, "8") == 0) {
|
||||||
int displ = (signed char) *location + (int) value;
|
int displ = (upx_int8_t) *location + (int) value;
|
||||||
if (range_check && (displ < -128 || displ > 127))
|
if (range_check && (displ < -128 || displ > 127))
|
||||||
internal_error("target out of range (%d) in reloc %s:%x\n", displ, rel->section->name,
|
throwInternalError("target out of range (%d) in reloc %s:%x\n", displ,
|
||||||
rel->offset);
|
rel->section->name, rel->offset);
|
||||||
*location += value;
|
*location += value;
|
||||||
} else if (strcmp(type, "16") == 0)
|
} else if (strcmp(type, "16") == 0)
|
||||||
set_be16(location, get_be16(location) + value);
|
set_be16(location, get_be16(location) + value);
|
||||||
@@ -925,10 +917,10 @@ void ElfLinkerX86::relocate1(const Relocation *rel, byte *location, upx_uint64_t
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (strcmp(type, "8") == 0) {
|
if (strcmp(type, "8") == 0) {
|
||||||
int displ = (signed char) *location + (int) value;
|
int displ = (upx_int8_t) *location + (int) value;
|
||||||
if (range_check && (displ < -128 || displ > 127))
|
if (range_check && (displ < -128 || displ > 127))
|
||||||
internal_error("target out of range (%d,%d,%llu) in reloc %s:%x\n", displ, *location,
|
throwInternalError("target out of range (%d,%d,%llu) in reloc %s:%x\n", displ,
|
||||||
value, rel->section->name, rel->offset);
|
*location, value, rel->section->name, rel->offset);
|
||||||
*location += value;
|
*location += value;
|
||||||
} else if (strcmp(type, "16") == 0)
|
} else if (strcmp(type, "16") == 0)
|
||||||
set_le16(location, get_le16(location) + value);
|
set_le16(location, get_le16(location) + value);
|
||||||
|
|||||||
+1
-1
@@ -68,7 +68,6 @@ protected:
|
|||||||
void preprocessSymbols(char *start, char const *end);
|
void preprocessSymbols(char *start, char const *end);
|
||||||
void preprocessRelocations(char *start, char const *end);
|
void preprocessRelocations(char *start, char const *end);
|
||||||
Section *findSection(const char *name, bool fatal = true) const;
|
Section *findSection(const char *name, bool fatal = true) const;
|
||||||
Symbol *findSymbol(const char *name, bool fatal = true) const;
|
|
||||||
|
|
||||||
Symbol *addSymbol(const char *name, const char *section, upx_uint64_t offset);
|
Symbol *addSymbol(const char *name, const char *section, upx_uint64_t offset);
|
||||||
Relocation *addRelocation(const char *section, unsigned off, const char *type,
|
Relocation *addRelocation(const char *section, unsigned off, const char *type,
|
||||||
@@ -92,6 +91,7 @@ public:
|
|||||||
int getSectionSize(const char *sname) const;
|
int getSectionSize(const char *sname) const;
|
||||||
byte *getLoader(int *llen = nullptr) const;
|
byte *getLoader(int *llen = nullptr) const;
|
||||||
void defineSymbol(const char *name, upx_uint64_t value);
|
void defineSymbol(const char *name, upx_uint64_t value);
|
||||||
|
Symbol *findSymbol(const char *name, bool fatal = true) const;
|
||||||
upx_uint64_t getSymbolOffset(const char *) const;
|
upx_uint64_t getSymbolOffset(const char *) const;
|
||||||
|
|
||||||
void dumpSymbol(const Symbol *, unsigned flags, FILE *fp) const;
|
void dumpSymbol(const Symbol *, unsigned flags, FILE *fp) const;
|
||||||
|
|||||||
+24
-18
@@ -37,6 +37,9 @@
|
|||||||
**************************************************************************/
|
**************************************************************************/
|
||||||
|
|
||||||
#ifndef OPTIONS_VAR
|
#ifndef OPTIONS_VAR
|
||||||
|
// historical note: "UPX_OPTIONS" would be a better name, but back in the old
|
||||||
|
// days environment variables used to be short; and we cannot change that now
|
||||||
|
// because of backward compatibility issues
|
||||||
#define OPTIONS_VAR "UPX"
|
#define OPTIONS_VAR "UPX"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -215,7 +218,7 @@ static void check_and_update_options(int i, int argc) {
|
|||||||
**************************************************************************/
|
**************************************************************************/
|
||||||
|
|
||||||
static void e_help(void) {
|
static void e_help(void) {
|
||||||
show_help();
|
show_help(0);
|
||||||
e_exit(EXIT_USAGE);
|
e_exit(EXIT_USAGE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -383,6 +386,8 @@ static int do_option(int optc, const char *arg) {
|
|||||||
set_cmd(CMD_HELP);
|
set_cmd(CMD_HELP);
|
||||||
break;
|
break;
|
||||||
case 'h' + 256:
|
case 'h' + 256:
|
||||||
|
case 996:
|
||||||
|
case 997:
|
||||||
#if 1
|
#if 1
|
||||||
if (!acc_isatty(STDOUT_FILENO)) {
|
if (!acc_isatty(STDOUT_FILENO)) {
|
||||||
/* according to GNU standards */
|
/* according to GNU standards */
|
||||||
@@ -390,7 +395,7 @@ static int do_option(int optc, const char *arg) {
|
|||||||
opt->console = CON_FILE;
|
opt->console = CON_FILE;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
show_help(1);
|
show_help(optc == 996 ? 1 : (optc == 997 ? 3 : 2));
|
||||||
e_exit(EXIT_OK);
|
e_exit(EXIT_OK);
|
||||||
break;
|
break;
|
||||||
case 'i':
|
case 'i':
|
||||||
@@ -789,7 +794,7 @@ static int do_option(int optc, const char *arg) {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
#if !defined(DOCTEST_CONFIG_DISABLE)
|
#if !defined(DOCTEST_CONFIG_DISABLE)
|
||||||
case 999: // doctest --dt-XXX option
|
case 999: // [doctest] --dt-XXX option; ignored here, see upx_doctest_check()
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -813,7 +818,7 @@ int main_get_options(int argc, char **argv) {
|
|||||||
// commands
|
// commands
|
||||||
{"best", 0x10, N, 900}, // compress best
|
{"best", 0x10, N, 900}, // compress best
|
||||||
{"brute", 0x10, N, 901}, // compress best, brute force
|
{"brute", 0x10, N, 901}, // compress best, brute force
|
||||||
{"ultra-brute", 0x10, N, 902}, // compress best, brute force
|
{"ultra-brute", 0x10, N, 902}, // compress best, ultra-brute force
|
||||||
{"decompress", 0, N, 'd'}, // decompress
|
{"decompress", 0, N, 'd'}, // decompress
|
||||||
{"fast", 0x10, N, '1'}, // compress faster
|
{"fast", 0x10, N, '1'}, // compress faster
|
||||||
{"fileinfo", 0x10, N, 909}, // display info about file
|
{"fileinfo", 0x10, N, 909}, // display info about file
|
||||||
@@ -923,7 +928,7 @@ int main_get_options(int argc, char **argv) {
|
|||||||
// atari/tos
|
// atari/tos
|
||||||
{"split-segments", 0x90, N, 650},
|
{"split-segments", 0x90, N, 650},
|
||||||
// darwin/macho
|
// darwin/macho
|
||||||
{"force-macos", 0x90, N, 690}, // undocumented temporary until we fix macOS 13+
|
{"force-macos", 0x90, N, 690}, // undocumented temporary option until we do fix macOS 13+
|
||||||
// djgpp2/coff
|
// djgpp2/coff
|
||||||
{"coff", 0x90, N, 610}, // produce COFF output
|
{"coff", 0x90, N, 610}, // produce COFF output
|
||||||
// dos/exe
|
// dos/exe
|
||||||
@@ -963,7 +968,7 @@ int main_get_options(int argc, char **argv) {
|
|||||||
{"strip-relocs", 0x12, N, 634},
|
{"strip-relocs", 0x12, N, 634},
|
||||||
{"keep-resource", 0x31, N, 635},
|
{"keep-resource", 0x31, N, 635},
|
||||||
|
|
||||||
#if !defined(DOCTEST_CONFIG_DISABLE)
|
#if !defined(DOCTEST_CONFIG_DISABLE) // accept and ignore some doctest --dt-XXX options
|
||||||
// [doctest] Query flags - the program quits after them. Available:
|
// [doctest] Query flags - the program quits after them. Available:
|
||||||
{"dt-c", 0x10, N, 999},
|
{"dt-c", 0x10, N, 999},
|
||||||
{"dt-count", 0x10, N, 999},
|
{"dt-count", 0x10, N, 999},
|
||||||
@@ -1020,7 +1025,7 @@ void main_get_envoptions() {
|
|||||||
// commands
|
// commands
|
||||||
{"best", 0x10, N, 900}, // compress best
|
{"best", 0x10, N, 900}, // compress best
|
||||||
{"brute", 0x10, N, 901}, // compress best, brute force
|
{"brute", 0x10, N, 901}, // compress best, brute force
|
||||||
{"ultra-brute", 0x10, N, 902}, // compress best, brute force
|
{"ultra-brute", 0x10, N, 902}, // compress best, ultra-brute force
|
||||||
{"fast", 0x10, N, '1'}, // compress faster
|
{"fast", 0x10, N, '1'}, // compress faster
|
||||||
|
|
||||||
// options
|
// options
|
||||||
@@ -1086,7 +1091,7 @@ void main_get_envoptions() {
|
|||||||
static const char sep[] = " \t";
|
static const char sep[] = " \t";
|
||||||
char shortopts[256];
|
char shortopts[256];
|
||||||
|
|
||||||
var = getenv(OPTIONS_VAR);
|
var = upx_getenv(OPTIONS_VAR);
|
||||||
if (var == nullptr || !var[0])
|
if (var == nullptr || !var[0])
|
||||||
return;
|
return;
|
||||||
env = strdup(var);
|
env = strdup(var);
|
||||||
@@ -1111,7 +1116,7 @@ void main_get_envoptions() {
|
|||||||
if (targc > 1)
|
if (targc > 1)
|
||||||
targv = (const char **) upx_calloc(targc + 1, sizeof(char *));
|
targv = (const char **) upx_calloc(targc + 1, sizeof(char *));
|
||||||
if (targv == nullptr) {
|
if (targv == nullptr) {
|
||||||
free(env);
|
::free(env);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1150,8 +1155,8 @@ void main_get_envoptions() {
|
|||||||
e_envopt(targv[mfx_optind]);
|
e_envopt(targv[mfx_optind]);
|
||||||
|
|
||||||
/* clean up */
|
/* clean up */
|
||||||
free(targv);
|
::free(targv); // NOLINT(bugprone-multi-level-implicit-pointer-conversion)
|
||||||
free(env);
|
::free(env);
|
||||||
#endif /* defined(OPTIONS_VAR) */
|
#endif /* defined(OPTIONS_VAR) */
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1169,9 +1174,14 @@ static void first_options(int argc, char **argv) {
|
|||||||
if (strcmp(argv[i], "--version-short") == 0)
|
if (strcmp(argv[i], "--version-short") == 0)
|
||||||
do_option(998, argv[i]);
|
do_option(998, argv[i]);
|
||||||
}
|
}
|
||||||
for (i = 1; i < n; i++)
|
for (i = 1; i < n; i++) {
|
||||||
if (strcmp(argv[i], "--help") == 0)
|
if (strcmp(argv[i], "--help") == 0)
|
||||||
do_option('h' + 256, argv[i]);
|
do_option('h' + 256, argv[i]);
|
||||||
|
if (strcmp(argv[i], "--help-short") == 0) // undocumented and subject to change
|
||||||
|
do_option(996, argv[i]);
|
||||||
|
if (strcmp(argv[i], "--help-verbose") == 0) // undocumented and subject to change
|
||||||
|
do_option(997, argv[i]);
|
||||||
|
}
|
||||||
for (i = 1; i < n; i++)
|
for (i = 1; i < n; i++)
|
||||||
if (strcmp(argv[i], "--no-env") == 0)
|
if (strcmp(argv[i], "--no-env") == 0)
|
||||||
do_option(519, argv[i]);
|
do_option(519, argv[i]);
|
||||||
@@ -1269,7 +1279,7 @@ int upx_main(int argc, char *argv[]) may_throw {
|
|||||||
e_exit(EXIT_OK);
|
e_exit(EXIT_OK);
|
||||||
break;
|
break;
|
||||||
case CMD_HELP:
|
case CMD_HELP:
|
||||||
show_help(1);
|
show_help(2);
|
||||||
e_exit(EXIT_OK);
|
e_exit(EXIT_OK);
|
||||||
break;
|
break;
|
||||||
case CMD_LICENSE:
|
case CMD_LICENSE:
|
||||||
@@ -1354,11 +1364,7 @@ int __acc_cdecl_main main(int argc, char *argv[]) /*noexcept*/ {
|
|||||||
_set_abort_behavior(_WRITE_ABORT_MSG, _WRITE_ABORT_MSG | _CALL_REPORTFAULT);
|
_set_abort_behavior(_WRITE_ABORT_MSG, _WRITE_ABORT_MSG | _CALL_REPORTFAULT);
|
||||||
#endif
|
#endif
|
||||||
acc_wildargv(&argc, &argv);
|
acc_wildargv(&argc, &argv);
|
||||||
#if defined(__wasi__)
|
upx_rand_init();
|
||||||
srand((int) time(nullptr));
|
|
||||||
#else
|
|
||||||
srand((int) clock());
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// info: main() is implicitly "noexcept", so we need a try block
|
// info: main() is implicitly "noexcept", so we need a try block
|
||||||
#if 0
|
#if 0
|
||||||
|
|||||||
+3
-3
@@ -102,7 +102,7 @@ void printErr(const char *iname, const Throwable &e) noexcept {
|
|||||||
char buf[1024];
|
char buf[1024];
|
||||||
size_t l;
|
size_t l;
|
||||||
|
|
||||||
upx_safe_snprintf(buf, sizeof(buf), "%s", prettyName(typeid(e).name()));
|
upx_safe_snprintf(buf, sizeof(buf), "%s", prettyExceptionName(typeid(e).name()));
|
||||||
l = strlen(buf);
|
l = strlen(buf);
|
||||||
if (l < sizeof(buf) && e.getMsg())
|
if (l < sizeof(buf) && e.getMsg())
|
||||||
upx_safe_snprintf(buf + l, sizeof(buf) - l, ": %s", e.getMsg());
|
upx_safe_snprintf(buf + l, sizeof(buf) - l, ": %s", e.getMsg());
|
||||||
@@ -143,8 +143,8 @@ void printWarn(const char *iname, const char *format, ...) noexcept {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void printUnhandledException(const char *iname, const std::exception *e) noexcept {
|
void printUnhandledException(const char *iname, const std::exception *e) noexcept {
|
||||||
if (e)
|
if (e != nullptr)
|
||||||
printErr(iname, "unhandled exception: %s\n", prettyName(e->what()));
|
printErr(iname, "unhandled exception: %s\n", prettyExceptionName(e->what()));
|
||||||
else
|
else
|
||||||
printErr(iname, "internal error: unhandled exception!\n");
|
printErr(iname, "internal error: unhandled exception!\n");
|
||||||
if (opt->cmd != CMD_COMPRESS) {
|
if (opt->cmd != CMD_COMPRESS) {
|
||||||
|
|||||||
+3
-3
@@ -28,10 +28,10 @@
|
|||||||
#include "conf.h"
|
#include "conf.h"
|
||||||
|
|
||||||
static Options global_options;
|
static Options global_options;
|
||||||
Options *opt = &global_options; // also see class PackMaster
|
Options *opt = &global_options; // also see class PackMaster for per-file local options
|
||||||
|
|
||||||
#if WITH_THREADS
|
#if WITH_THREADS
|
||||||
std::mutex opt_lock_mutex;
|
std::mutex opt_lock_mutex; // for locking "opt"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
@@ -66,7 +66,7 @@ void Options::reset() noexcept {
|
|||||||
#endif
|
#endif
|
||||||
// support NO_COLOR, see https://no-color.org/
|
// support NO_COLOR, see https://no-color.org/
|
||||||
// "... when present and not an empty string (regardless of its value)"
|
// "... when present and not an empty string (regardless of its value)"
|
||||||
const char *e = getenv("NO_COLOR");
|
const char *e = upx_getenv("NO_COLOR");
|
||||||
if (e && e[0])
|
if (e && e[0])
|
||||||
o->console = CON_FILE;
|
o->console = CON_FILE;
|
||||||
|
|
||||||
|
|||||||
+6
-2
@@ -28,11 +28,12 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
struct Options;
|
struct Options;
|
||||||
extern Options *opt; // global options, see class PackMaster for per-file local 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
|
||||||
|
|
||||||
#if WITH_THREADS
|
#if WITH_THREADS
|
||||||
extern std::mutex opt_lock_mutex;
|
extern std::mutex opt_lock_mutex; // for locking "opt"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
@@ -177,6 +178,9 @@ struct Options final {
|
|||||||
int strip_relocs;
|
int strip_relocs;
|
||||||
const char *keep_resource;
|
const char *keep_resource;
|
||||||
} win32_pe;
|
} win32_pe;
|
||||||
|
|
||||||
|
private: // UPX conventions
|
||||||
|
UPX_CXX_DISABLE_NEW_DELETE(Options)
|
||||||
};
|
};
|
||||||
|
|
||||||
/* vim:set ts=4 sw=4 et: */
|
/* vim:set ts=4 sw=4 et: */
|
||||||
|
|||||||
+1
-1
@@ -86,7 +86,7 @@ protected:
|
|||||||
LE32 firstreloc;
|
LE32 firstreloc;
|
||||||
};
|
};
|
||||||
|
|
||||||
exe_header_t ih, oh;
|
exe_header_t ih = {}, oh = {};
|
||||||
|
|
||||||
unsigned ih_exesize = 0;
|
unsigned ih_exesize = 0;
|
||||||
unsigned ih_imagesize = 0;
|
unsigned ih_imagesize = 0;
|
||||||
|
|||||||
+35
-21
@@ -320,7 +320,7 @@ PackLinuxElf32::PackLinuxElf32help1(InputFile *f)
|
|||||||
sz_elf_hdrs = sz_phdrs + sizeof(Elf32_Ehdr);
|
sz_elf_hdrs = sz_phdrs + sizeof(Elf32_Ehdr);
|
||||||
|
|
||||||
if (f && Elf32_Ehdr::ET_DYN!=e_type) {
|
if (f && Elf32_Ehdr::ET_DYN!=e_type) {
|
||||||
unsigned const len = sz_phdrs + e_phoff;
|
unsigned const len = file_size; // (sz_phdrs + e_phoff) except --preserve-build-id
|
||||||
alloc_file_image(file_image, len);
|
alloc_file_image(file_image, len);
|
||||||
f->seek(0, SEEK_SET);
|
f->seek(0, SEEK_SET);
|
||||||
f->readx(file_image, len);
|
f->readx(file_image, len);
|
||||||
@@ -437,7 +437,7 @@ off_t PackLinuxElf::pack3(OutputFile *fo, Filter &ft) // return length of output
|
|||||||
// FIXME: debugging aid: entry to decompressor
|
// FIXME: debugging aid: entry to decompressor
|
||||||
if (lowmem.getSize()) {
|
if (lowmem.getSize()) {
|
||||||
Elf32_Ehdr *const ehdr = (Elf32_Ehdr *)&lowmem[0];
|
Elf32_Ehdr *const ehdr = (Elf32_Ehdr *)&lowmem[0];
|
||||||
set_te32(&ehdr->e_entry, sz_pack2); // hint for decomperssor
|
set_te32(&ehdr->e_entry, sz_pack2); // hint for decompressor
|
||||||
}
|
}
|
||||||
// end debugging aid
|
// end debugging aid
|
||||||
|
|
||||||
@@ -1031,7 +1031,7 @@ PackLinuxElf64::PackLinuxElf64help1(InputFile *f)
|
|||||||
sz_elf_hdrs = sz_phdrs + sizeof(Elf64_Ehdr);
|
sz_elf_hdrs = sz_phdrs + sizeof(Elf64_Ehdr);
|
||||||
|
|
||||||
if (f && Elf64_Ehdr::ET_DYN!=e_type) {
|
if (f && Elf64_Ehdr::ET_DYN!=e_type) {
|
||||||
unsigned const len = sz_phdrs + e_phoff;
|
unsigned const len = file_size; // (sz_phdrs + e_phoff) except --preserve-build-id
|
||||||
alloc_file_image(file_image, len);
|
alloc_file_image(file_image, len);
|
||||||
f->seek(0, SEEK_SET);
|
f->seek(0, SEEK_SET);
|
||||||
f->readx(file_image, len);
|
f->readx(file_image, len);
|
||||||
@@ -1989,6 +1989,7 @@ void
|
|||||||
PackLinuxElf32::sort_DT32_offsets(Elf32_Dyn const *const dynp0)
|
PackLinuxElf32::sort_DT32_offsets(Elf32_Dyn const *const dynp0)
|
||||||
{
|
{
|
||||||
mb_dt_offsets.alloc(sizeof(unsigned) * sizeof(dt_keys)/sizeof(dt_keys[0]));
|
mb_dt_offsets.alloc(sizeof(unsigned) * sizeof(dt_keys)/sizeof(dt_keys[0]));
|
||||||
|
mb_dt_offsets.clear();
|
||||||
dt_offsets = (unsigned *)mb_dt_offsets.getVoidPtr();
|
dt_offsets = (unsigned *)mb_dt_offsets.getVoidPtr();
|
||||||
unsigned n_off = 0, k;
|
unsigned n_off = 0, k;
|
||||||
for (unsigned j=0; ((k = dt_keys[j]), k); ++j) {
|
for (unsigned j=0; ((k = dt_keys[j]), k); ++j) {
|
||||||
@@ -2196,7 +2197,7 @@ PackLinuxElf32::invert_pt_dynamic(Elf32_Dyn const *dynp, u32_t headway)
|
|||||||
// (037 & (hash_32 >> gnu_shift))
|
// (037 & (hash_32 >> gnu_shift))
|
||||||
// but compilers can be stupid.
|
// but compilers can be stupid.
|
||||||
if (31 < gnu_shift) {
|
if (31 < gnu_shift) {
|
||||||
throwCantPack("bad gnu_shift %d", gnu_shift);
|
throwCantPack("bad gnu_shift %#x", gnu_shift);
|
||||||
}
|
}
|
||||||
// unsigned const *const gashend = &hasharr[n_bucket];
|
// unsigned const *const gashend = &hasharr[n_bucket];
|
||||||
// minimum, except:
|
// minimum, except:
|
||||||
@@ -3984,8 +3985,8 @@ void PackLinuxElf32::pack1(OutputFile * /*fo*/, Filter &ft)
|
|||||||
phdr = phdri;
|
phdr = phdri;
|
||||||
for (unsigned j=0; j < e_phnum; ++phdr, ++j) {
|
for (unsigned j=0; j < e_phnum; ++phdr, ++j) {
|
||||||
unsigned const type = get_te32(&phdr->p_type);
|
unsigned const type = get_te32(&phdr->p_type);
|
||||||
if (PT_NOTE32 == type) {
|
|
||||||
unsigned const len = get_te32(&phdr->p_filesz);
|
unsigned const len = get_te32(&phdr->p_filesz);
|
||||||
|
if (PT_NOTE32 == type && len && note_body.getSize()) {
|
||||||
fi->seek(get_te32(&phdr->p_offset), SEEK_SET);
|
fi->seek(get_te32(&phdr->p_offset), SEEK_SET);
|
||||||
fi->readx(¬e_body[note_size], len);
|
fi->readx(¬e_body[note_size], len);
|
||||||
note_size += up4(len);
|
note_size += up4(len);
|
||||||
@@ -4031,10 +4032,9 @@ void PackLinuxElf32::pack1(OutputFile * /*fo*/, Filter &ft)
|
|||||||
if (opt->o_unix.preserve_build_id) {
|
if (opt->o_unix.preserve_build_id) {
|
||||||
// set this so we can use elf_find_section_name
|
// set this so we can use elf_find_section_name
|
||||||
e_shnum = get_te16(&ehdri.e_shnum);
|
e_shnum = get_te16(&ehdri.e_shnum);
|
||||||
MemBuffer mb_shdri;
|
|
||||||
if (!shdri) {
|
if (!shdri) {
|
||||||
mb_shdri.alloc(e_shnum * sizeof(Elf32_Shdr));
|
mb_shdr.alloc(e_shnum * sizeof(Elf32_Shdr));
|
||||||
shdri = (Elf32_Shdr *)mb_shdri.getVoidPtr();
|
shdri = (Elf32_Shdr *)mb_shdr.getVoidPtr();
|
||||||
e_shoff = get_te32(&ehdri.e_shoff);
|
e_shoff = get_te32(&ehdri.e_shoff);
|
||||||
fi->seek(e_shoff, SEEK_SET);
|
fi->seek(e_shoff, SEEK_SET);
|
||||||
fi->readx(shdri, e_shnum * sizeof(Elf32_Shdr));
|
fi->readx(shdri, e_shnum * sizeof(Elf32_Shdr));
|
||||||
@@ -4921,10 +4921,9 @@ void PackLinuxElf64::pack1(OutputFile * /*fo*/, Filter &ft)
|
|||||||
if (opt->o_unix.preserve_build_id) {
|
if (opt->o_unix.preserve_build_id) {
|
||||||
// set this so we can use elf_find_section_name
|
// set this so we can use elf_find_section_name
|
||||||
e_shnum = get_te16(&ehdri.e_shnum);
|
e_shnum = get_te16(&ehdri.e_shnum);
|
||||||
MemBuffer mb_shdri;
|
|
||||||
if (!shdri) {
|
if (!shdri) {
|
||||||
mb_shdri.alloc(e_shnum * sizeof(Elf64_Shdr));
|
mb_shdr.alloc(e_shnum * sizeof(Elf64_Shdr));
|
||||||
shdri = (Elf64_Shdr *)mb_shdri.getVoidPtr();
|
shdri = (Elf64_Shdr *)mb_shdr.getVoidPtr();
|
||||||
e_shoff = get_te64(&ehdri.e_shoff);
|
e_shoff = get_te64(&ehdri.e_shoff);
|
||||||
fi->seek(e_shoff, SEEK_SET);
|
fi->seek(e_shoff, SEEK_SET);
|
||||||
fi->readx(shdri, e_shnum * sizeof(Elf64_Shdr));
|
fi->readx(shdri, e_shnum * sizeof(Elf64_Shdr));
|
||||||
@@ -5127,7 +5126,7 @@ int PackLinuxElf32::pack2(OutputFile *fo, Filter &ft)
|
|||||||
fo->seek(x.offset, SEEK_SET);
|
fo->seek(x.offset, SEEK_SET);
|
||||||
fo->write(&file_image[x.offset], x.size);
|
fo->write(&file_image[x.offset], x.size);
|
||||||
total_out += x.size;
|
total_out += x.size;
|
||||||
// Kepp the input side in sync
|
// Keep the input side in sync
|
||||||
total_in += x.size;
|
total_in += x.size;
|
||||||
fi->seek(x.size + x.offset, SEEK_SET);
|
fi->seek(x.size + x.offset, SEEK_SET);
|
||||||
}
|
}
|
||||||
@@ -5385,7 +5384,7 @@ int PackLinuxElf64::pack2(OutputFile *fo, Filter &ft)
|
|||||||
fo->seek(x.offset, SEEK_SET);
|
fo->seek(x.offset, SEEK_SET);
|
||||||
fo->write(&file_image[x.offset], x.size);
|
fo->write(&file_image[x.offset], x.size);
|
||||||
total_out += x.size;
|
total_out += x.size;
|
||||||
// Kepp the input side in sync
|
// Keep the input side in sync
|
||||||
total_in += x.size;
|
total_in += x.size;
|
||||||
fi->seek(x.size + x.offset, SEEK_SET);
|
fi->seek(x.size + x.offset, SEEK_SET);
|
||||||
}
|
}
|
||||||
@@ -6484,13 +6483,17 @@ void PackLinuxElf64::un_shlib_1(
|
|||||||
struct {
|
struct {
|
||||||
struct l_info l;
|
struct l_info l;
|
||||||
struct p_info p;
|
struct p_info p;
|
||||||
|
struct b_info b;
|
||||||
} hdr;
|
} hdr;
|
||||||
fi->readx(&hdr, sizeof(hdr));
|
fi->readx(&hdr, sizeof(hdr));
|
||||||
if (hdr.l.l_magic != UPX_MAGIC_LE32
|
if (hdr.l.l_magic != UPX_MAGIC_LE32
|
||||||
|| hdr.l.l_lsize != (unsigned)lsize
|
|| get_te16(&hdr.l.l_lsize) != (unsigned)lsize
|
||||||
|| hdr.p.p_filesize != ph.u_file_size) {
|
|| get_te32(&hdr.p.p_filesize) != ph.u_file_size
|
||||||
throwCantUnpack("corrupt l_info/p_info");
|
|| get_te32(&hdr.b.sz_unc) < sz_elf_hdrs // peek: 1st b_info covers Elf headers
|
||||||
|
) {
|
||||||
|
throwCantUnpack("corrupt l_info/p_info/b_info");
|
||||||
}
|
}
|
||||||
|
fi->seek(-(off_t)sizeof(struct b_info), SEEK_CUR); // hdr.b_info was a peek
|
||||||
|
|
||||||
// The default layout for a shared library created by binutils-2.29
|
// The default layout for a shared library created by binutils-2.29
|
||||||
// (Fedora 28; 2018) has two PT_LOAD: permissions r-x and rw-.
|
// (Fedora 28; 2018) has two PT_LOAD: permissions r-x and rw-.
|
||||||
@@ -6680,13 +6683,17 @@ void PackLinuxElf32::un_shlib_1(
|
|||||||
struct {
|
struct {
|
||||||
struct l_info l;
|
struct l_info l;
|
||||||
struct p_info p;
|
struct p_info p;
|
||||||
|
struct b_info b;
|
||||||
} hdr;
|
} hdr;
|
||||||
fi->readx(&hdr, sizeof(hdr));
|
fi->readx(&hdr, sizeof(hdr));
|
||||||
if (hdr.l.l_magic != UPX_MAGIC_LE32
|
if (hdr.l.l_magic != UPX_MAGIC_LE32
|
||||||
|| hdr.l.l_lsize != (unsigned)lsize
|
|| get_te16(&hdr.l.l_lsize) != (unsigned)lsize
|
||||||
|| hdr.p.p_filesize != ph.u_file_size) {
|
|| get_te32(&hdr.p.p_filesize) != ph.u_file_size
|
||||||
throwCantUnpack("corrupt l_info/p_info");
|
|| get_te32(&hdr.b.sz_unc) < sz_elf_hdrs // peek: 1st b_info covers Elf headers
|
||||||
|
) {
|
||||||
|
throwCantUnpack("corrupt l_info/p_info/b_info");
|
||||||
}
|
}
|
||||||
|
fi->seek(-(off_t)sizeof(struct b_info), SEEK_CUR); // hdr.b_info was a peek
|
||||||
|
|
||||||
// The default layout for a shared library created by binutils-2.29
|
// The default layout for a shared library created by binutils-2.29
|
||||||
// (Fedora 28; 2018) has two PT_LOAD: permissions r-x and rw-.
|
// (Fedora 28; 2018) has two PT_LOAD: permissions r-x and rw-.
|
||||||
@@ -7903,6 +7910,7 @@ void
|
|||||||
PackLinuxElf64::sort_DT64_offsets(Elf64_Dyn const *const dynp0)
|
PackLinuxElf64::sort_DT64_offsets(Elf64_Dyn const *const dynp0)
|
||||||
{
|
{
|
||||||
mb_dt_offsets.alloc(sizeof(unsigned) * sizeof(dt_keys)/sizeof(dt_keys[0]));
|
mb_dt_offsets.alloc(sizeof(unsigned) * sizeof(dt_keys)/sizeof(dt_keys[0]));
|
||||||
|
mb_dt_offsets.clear();
|
||||||
dt_offsets = (unsigned *)mb_dt_offsets.getVoidPtr();
|
dt_offsets = (unsigned *)mb_dt_offsets.getVoidPtr();
|
||||||
unsigned n_off = 0, k;
|
unsigned n_off = 0, k;
|
||||||
for (unsigned j=0; ((k = dt_keys[j]), k); ++j) {
|
for (unsigned j=0; ((k = dt_keys[j]), k); ++j) {
|
||||||
@@ -8115,7 +8123,7 @@ PackLinuxElf64::invert_pt_dynamic(Elf64_Dyn const *dynp, upx_uint64_t headway)
|
|||||||
// (077 & (hash_32 >> gnu_shift))
|
// (077 & (hash_32 >> gnu_shift))
|
||||||
// but compilers can be stupid.
|
// but compilers can be stupid.
|
||||||
if (31 < gnu_shift) {
|
if (31 < gnu_shift) {
|
||||||
throwCantPack("bad gnu_shift %d", gnu_shift);
|
throwCantPack("bad gnu_shift %#x", gnu_shift);
|
||||||
}
|
}
|
||||||
// unsigned const *const gashend = &hasharr[n_bucket];
|
// unsigned const *const gashend = &hasharr[n_bucket];
|
||||||
// minimum, except:
|
// minimum, except:
|
||||||
@@ -8232,6 +8240,9 @@ Elf32_Sym const *PackLinuxElf32::elf_lookup(char const *name) const
|
|||||||
unsigned const *const bitmask = &gashtab[4];
|
unsigned const *const bitmask = &gashtab[4];
|
||||||
unsigned const *const buckets = &bitmask[n_bitmask];
|
unsigned const *const buckets = &bitmask[n_bitmask];
|
||||||
unsigned const *const hasharr = &buckets[n_bucket];
|
unsigned const *const hasharr = &buckets[n_bucket];
|
||||||
|
if (31 < gnu_shift) {
|
||||||
|
throwCantPack("bad gnu_shift %#x", gnu_shift);
|
||||||
|
}
|
||||||
if ((file_size + file_image) <= (void const *)hasharr) {
|
if ((file_size + file_image) <= (void const *)hasharr) {
|
||||||
char msg[80]; snprintf(msg, sizeof(msg),
|
char msg[80]; snprintf(msg, sizeof(msg),
|
||||||
"bad n_bucket %#x\n", n_bucket);
|
"bad n_bucket %#x\n", n_bucket);
|
||||||
@@ -8313,6 +8324,9 @@ Elf64_Sym const *PackLinuxElf64::elf_lookup(char const *name) const
|
|||||||
unsigned const *const buckets = (unsigned const *)&bitmask[n_bitmask];
|
unsigned const *const buckets = (unsigned const *)&bitmask[n_bitmask];
|
||||||
unsigned const *const hasharr = &buckets[n_bucket];
|
unsigned const *const hasharr = &buckets[n_bucket];
|
||||||
|
|
||||||
|
if (31 < gnu_shift) {
|
||||||
|
throwCantPack("bad gnu_shift %#x", gnu_shift);
|
||||||
|
}
|
||||||
if ((file_size + file_image) <= (void const *)hasharr) {
|
if ((file_size + file_image) <= (void const *)hasharr) {
|
||||||
char msg[80]; snprintf(msg, sizeof(msg),
|
char msg[80]; snprintf(msg, sizeof(msg),
|
||||||
"bad n_bucket %#x\n", n_bucket);
|
"bad n_bucket %#x\n", n_bucket);
|
||||||
@@ -8604,7 +8618,7 @@ void PackLinuxElf32::unpack(OutputFile *fo)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
int boff = find_le32(peek_arr, sizeof(peek_arr), size);
|
int boff = find_le32(peek_arr, sizeof(peek_arr), size);
|
||||||
if (boff < 0) {
|
if (boff < 0 || sizeof(peek_arr) < (sizeof(*bp) + boff)) {
|
||||||
throwCantUnpack("b_info corrupted");
|
throwCantUnpack("b_info corrupted");
|
||||||
}
|
}
|
||||||
bp = (b_info *)(void *)&peek_arr[boff];
|
bp = (b_info *)(void *)&peek_arr[boff];
|
||||||
|
|||||||
+10
-1
@@ -382,9 +382,18 @@ PackLinuxI386::buildLinuxLoader(
|
|||||||
if (bele->isBE()) // big endian - bswap32
|
if (bele->isBE()) // big endian - bswap32
|
||||||
properties = bswap32(properties);
|
properties = bswap32(properties);
|
||||||
linker->defineSymbol("lzma_properties", properties);
|
linker->defineSymbol("lzma_properties", properties);
|
||||||
|
|
||||||
|
// These lengths assume only one block (typ. 524288 bytes: 0.5 MiB).
|
||||||
|
// i386 handles more than one block, and computes the lengths
|
||||||
|
// dynamically from struct b_info. Why do others need these?
|
||||||
|
if (linker->findSymbol("lzma_c_len", false)) {
|
||||||
// -2 for properties
|
// -2 for properties
|
||||||
linker->defineSymbol("lzma_c_len", ph.c_len - 2);
|
linker->defineSymbol("lzma_c_len", ph.c_len - 2);
|
||||||
linker->defineSymbol("lzma_u_len", ph.u_len);
|
}
|
||||||
|
if (linker->findSymbol("lzma_u_len", false)) {
|
||||||
|
linker->defineSymbol("lzma_u_len", ph.c_len);
|
||||||
|
}
|
||||||
|
|
||||||
unsigned const stack = getDecompressorWrkmemSize();
|
unsigned const stack = getDecompressorWrkmemSize();
|
||||||
linker->defineSymbol("lzma_stack_adjust", 0u - stack);
|
linker->defineSymbol("lzma_stack_adjust", 0u - stack);
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-2
@@ -117,7 +117,7 @@ static const Lc_seg_info lc_seg_info[2] = {
|
|||||||
// > 0 : actual size
|
// > 0 : actual size
|
||||||
// < 0 : neg. of minimum size; total must be (0 mod 4) or (0 mod 8)
|
// < 0 : neg. of minimum size; total must be (0 mod 4) or (0 mod 8)
|
||||||
//
|
//
|
||||||
static const signed char lc_cmd_size[] = {
|
static const upx_int8_t lc_cmd_size[] = {
|
||||||
// 2021-12: gcc 11.2.1 does not support 'sizeof' in designated initializer.
|
// 2021-12: gcc 11.2.1 does not support 'sizeof' in designated initializer.
|
||||||
// 2021-12: gcc 11.2.1 does not support [enum] as designator.
|
// 2021-12: gcc 11.2.1 does not support [enum] as designator.
|
||||||
// 2021-12: "clang++-10 -std=c++14":
|
// 2021-12: "clang++-10 -std=c++14":
|
||||||
@@ -1645,7 +1645,8 @@ tribool PackMachBase<T>::canUnpack()
|
|||||||
|
|
||||||
unsigned const ncmds = mhdri.ncmds;
|
unsigned const ncmds = mhdri.ncmds;
|
||||||
int headway = (int)mhdri.sizeofcmds;
|
int headway = (int)mhdri.sizeofcmds;
|
||||||
if (!ncmds || MAX_N_CMDS < ncmds || file_size < headway) {
|
if (!ncmds || MAX_N_CMDS < ncmds || file_size < headway
|
||||||
|
|| headway < 4*4 ) {
|
||||||
char msg[80]; snprintf(msg, sizeof(msg),
|
char msg[80]; snprintf(msg, sizeof(msg),
|
||||||
"bad Mach_header ncmds=%d sizeofcmds=0x%x", ncmds, headway);
|
"bad Mach_header ncmds=%d sizeofcmds=0x%x", ncmds, headway);
|
||||||
throwCantUnpack(msg);
|
throwCantUnpack(msg);
|
||||||
|
|||||||
+1
-3
@@ -75,9 +75,7 @@ static const CLANG_FORMAT_DUMMY_STATEMENT
|
|||||||
**************************************************************************/
|
**************************************************************************/
|
||||||
|
|
||||||
PackPs1::PackPs1(InputFile *f)
|
PackPs1::PackPs1(InputFile *f)
|
||||||
: super(f), isCon(!opt->ps1_exe.boot_only), is32Bit(!opt->ps1_exe.do_8bit), buildPart2(0),
|
: super(f), isCon(!opt->ps1_exe.boot_only), is32Bit(!opt->ps1_exe.do_8bit) {
|
||||||
foundBss(0), sa_cnt(0), overlap(0), sz_lunc(0), sz_lcpr(0), pad_code(0), bss_start(0),
|
|
||||||
bss_end(0) {
|
|
||||||
bele = &N_BELE_RTP::le_policy;
|
bele = &N_BELE_RTP::le_policy;
|
||||||
|
|
||||||
COMPILE_TIME_ASSERT(sizeof(ps1_exe_t) == 136)
|
COMPILE_TIME_ASSERT(sizeof(ps1_exe_t) == 136)
|
||||||
|
|||||||
+12
-12
@@ -108,20 +108,20 @@ protected:
|
|||||||
LE16 hi2, op3, lo2, op4;
|
LE16 hi2, op3, lo2, op4;
|
||||||
};
|
};
|
||||||
|
|
||||||
ps1_exe_t ih, oh;
|
ps1_exe_t ih = {}, oh = {};
|
||||||
ps1_exe_hb_t bh;
|
ps1_exe_hb_t bh = {};
|
||||||
|
|
||||||
bool isCon;
|
bool isCon = false;
|
||||||
bool is32Bit;
|
bool is32Bit = false;
|
||||||
bool buildPart2;
|
bool buildPart2 = false;
|
||||||
bool foundBss;
|
bool foundBss = false;
|
||||||
unsigned ram_size;
|
unsigned ram_size = 0;
|
||||||
unsigned sa_cnt, overlap;
|
unsigned sa_cnt = 0, overlap = 0;
|
||||||
unsigned sz_lunc, sz_lcpr;
|
unsigned sz_lunc = 0, sz_lcpr = 0;
|
||||||
unsigned pad_code;
|
unsigned pad_code = 0;
|
||||||
unsigned bss_start, bss_end;
|
unsigned bss_start = 0, bss_end = 0;
|
||||||
// filesize-PS_HDR_SIZE
|
// filesize-PS_HDR_SIZE
|
||||||
unsigned fdata_size;
|
unsigned fdata_size = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
/* vim:set ts=4 sw=4 et: */
|
/* vim:set ts=4 sw=4 et: */
|
||||||
|
|||||||
+1
-1
@@ -70,7 +70,7 @@ protected:
|
|||||||
byte ___[12]; // esp,numfixups,flags
|
byte ___[12]; // esp,numfixups,flags
|
||||||
LE32 relocsize;
|
LE32 relocsize;
|
||||||
};
|
};
|
||||||
tmt_header_t ih, oh;
|
tmt_header_t ih = {}, oh = {};
|
||||||
};
|
};
|
||||||
|
|
||||||
/* vim:set ts=4 sw=4 et: */
|
/* vim:set ts=4 sw=4 et: */
|
||||||
|
|||||||
+1
-1
@@ -71,7 +71,7 @@ protected:
|
|||||||
BE16 fh_reloc;
|
BE16 fh_reloc;
|
||||||
};
|
};
|
||||||
|
|
||||||
tos_header_t ih, oh;
|
tos_header_t ih = {}, oh = {};
|
||||||
|
|
||||||
// symbols for buildLoader()
|
// symbols for buildLoader()
|
||||||
struct LinkerSymbols {
|
struct LinkerSymbols {
|
||||||
|
|||||||
+5
-3
@@ -481,7 +481,7 @@ unsigned PackUnix::unpackExtent(unsigned wanted, OutputFile *fo,
|
|||||||
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.filter_cto = hdr.b_cto8;
|
ph.filter_cto = hdr.b_cto8;
|
||||||
|
|
||||||
if (sz_unc == 0) { // must never happen while 0!=wanted
|
if (sz_unc == 0 || M_LZMA < hdr.b_method) {
|
||||||
throwCantUnpack("corrupt b_info");
|
throwCantUnpack("corrupt b_info");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -491,8 +491,10 @@ unsigned PackUnix::unpackExtent(unsigned wanted, OutputFile *fo,
|
|||||||
throwCantUnpack("corrupt b_info");
|
throwCantUnpack("corrupt b_info");
|
||||||
|
|
||||||
// place the input for overlapping de-compression
|
// place the input for overlapping de-compression
|
||||||
// FIXME: inlen cheats OVERHEAD; assumes small wanted peek length
|
int j = inlen + sz_unc + OVERHEAD - sz_cpr;
|
||||||
int j = inlen + blocksize + OVERHEAD - sz_cpr;
|
if (ibuf.getSize() < (unsigned)(j + sz_cpr)) {
|
||||||
|
throwCantUnpack("corrupt b_info");
|
||||||
|
}
|
||||||
fi->readx(ibuf+j, sz_cpr);
|
fi->readx(ibuf+j, sz_cpr);
|
||||||
total_in += sz_cpr;
|
total_in += sz_cpr;
|
||||||
// update checksum of compressed data
|
// update checksum of compressed data
|
||||||
|
|||||||
+6
-2
@@ -267,7 +267,7 @@ int PackVmlinuzI386::decompressKernel()
|
|||||||
fd_pos = -1;
|
fd_pos = -1;
|
||||||
// open
|
// open
|
||||||
fi->seek(gzoff, SEEK_SET);
|
fi->seek(gzoff, SEEK_SET);
|
||||||
fd = dup(fi->getFd());
|
fd = fi->dupFd();
|
||||||
if (fd < 0)
|
if (fd < 0)
|
||||||
break;
|
break;
|
||||||
gzFile zf = gzdopen(fd, "rb");
|
gzFile zf = gzdopen(fd, "rb");
|
||||||
@@ -599,8 +599,12 @@ void PackBvmlinuzI386::pack(OutputFile *fo)
|
|||||||
properties = bswap32(properties);
|
properties = bswap32(properties);
|
||||||
linker->defineSymbol("lzma_properties", properties);
|
linker->defineSymbol("lzma_properties", properties);
|
||||||
// -2 for properties
|
// -2 for properties
|
||||||
|
if (linker->findSymbol("lzma_c_len", false)) {
|
||||||
linker->defineSymbol("lzma_c_len", ph.c_len - 2);
|
linker->defineSymbol("lzma_c_len", ph.c_len - 2);
|
||||||
|
}
|
||||||
|
if (linker->findSymbol("lzma_u_len", false)) {
|
||||||
linker->defineSymbol("lzma_u_len", ph.u_len);
|
linker->defineSymbol("lzma_u_len", ph.u_len);
|
||||||
|
}
|
||||||
unsigned const stack = getDecompressorWrkmemSize();
|
unsigned const stack = getDecompressorWrkmemSize();
|
||||||
linker->defineSymbol("lzma_stack_adjust", 0u - stack);
|
linker->defineSymbol("lzma_stack_adjust", 0u - stack);
|
||||||
}
|
}
|
||||||
@@ -849,7 +853,7 @@ int PackVmlinuzARMEL::decompressKernel()
|
|||||||
fd_pos = -1;
|
fd_pos = -1;
|
||||||
// open
|
// open
|
||||||
fi->seek(gzoff, SEEK_SET);
|
fi->seek(gzoff, SEEK_SET);
|
||||||
fd = dup(fi->getFd());
|
fd = fi->dupFd();
|
||||||
if (fd < 0)
|
if (fd < 0)
|
||||||
break;
|
break;
|
||||||
gzFile zf = gzdopen(fd, "rb");
|
gzFile zf = gzdopen(fd, "rb");
|
||||||
|
|||||||
@@ -203,9 +203,13 @@ void PackW64PeAmd64::defineSymbols(unsigned ncsection, unsigned upxsection, unsi
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (M_IS_LZMA(ph.method)) {
|
if (M_IS_LZMA(ph.method)) {
|
||||||
|
if (linker->findSymbol("lzma_c_len", false)) {
|
||||||
linker->defineSymbol("lzma_c_len", ph.c_len - 2);
|
linker->defineSymbol("lzma_c_len", ph.c_len - 2);
|
||||||
|
}
|
||||||
|
if (linker->findSymbol("lzma_u_len", false)) {
|
||||||
linker->defineSymbol("lzma_u_len", ph.u_len);
|
linker->defineSymbol("lzma_u_len", ph.u_len);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
linker->defineSymbol("filter_buffer_start", ih.codebase - rvamin);
|
linker->defineSymbol("filter_buffer_start", ih.codebase - rvamin);
|
||||||
|
|
||||||
// in case of overlapping decompression, this hack is needed,
|
// in case of overlapping decompression, this hack is needed,
|
||||||
|
|||||||
@@ -743,6 +743,7 @@ tribool PackWcle::canUnpack() {
|
|||||||
return readPackHeader(len) ? 1 : -1;
|
return readPackHeader(len) ? 1 : -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*static*/
|
||||||
void PackWcle::virt2rela(const le_object_table_entry_t *entr, unsigned *objn, unsigned *addr) {
|
void PackWcle::virt2rela(const le_object_table_entry_t *entr, unsigned *objn, unsigned *addr) {
|
||||||
for (; *objn > 1; objn[0]--) {
|
for (; *objn > 1; objn[0]--) {
|
||||||
if (entr[*objn - 1].my_base_address > *addr)
|
if (entr[*objn - 1].my_base_address > *addr)
|
||||||
|
|||||||
+13
-36
@@ -57,9 +57,9 @@ void Packer::assertPacker() const {
|
|||||||
assert(getVersion() >= 11);
|
assert(getVersion() >= 11);
|
||||||
assert(getVersion() <= 14);
|
assert(getVersion() <= 14);
|
||||||
assert(strlen(getName()) <= 15);
|
assert(strlen(getName()) <= 15);
|
||||||
// info: 36 is the limit for show_all_packers() in help.cpp, but 32 should be enough
|
// info: 36 is the limit for show_all_packers() in help.cpp, but 32 should be enough for now
|
||||||
assert(strlen(getFullName(opt)) <= 32);
|
|
||||||
assert(strlen(getFullName(nullptr)) <= 32);
|
assert(strlen(getFullName(nullptr)) <= 32);
|
||||||
|
assert(strlen(getFullName(opt)) <= 32);
|
||||||
if (bele == nullptr)
|
if (bele == nullptr)
|
||||||
fprintf(stderr, "%s\n", getName());
|
fprintf(stderr, "%s\n", getName());
|
||||||
assert(bele != nullptr);
|
assert(bele != nullptr);
|
||||||
@@ -469,33 +469,10 @@ unsigned Packer::getRandomId() const {
|
|||||||
if (opt->debug.disable_random_id)
|
if (opt->debug.disable_random_id)
|
||||||
return 0x01020304;
|
return 0x01020304;
|
||||||
unsigned id = 0;
|
unsigned id = 0;
|
||||||
#if 0 && defined(__unix__)
|
|
||||||
// Don't consume precious bytes from /dev/urandom.
|
|
||||||
int fd = open("/dev/urandom", O_RDONLY | O_BINARY);
|
|
||||||
if (fd < 0)
|
|
||||||
fd = open("/dev/random", O_RDONLY | O_BINARY);
|
|
||||||
if (fd >= 0) {
|
|
||||||
if (read(fd, &id, 4) != 4)
|
|
||||||
id = 0;
|
|
||||||
close(fd);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
while (id == 0) {
|
while (id == 0) {
|
||||||
#if (!(HAVE_GETTIMEOFDAY) || ((ACC_OS_DOS32) && defined(__DJGPP__))) && !defined(__wasi__)
|
|
||||||
id ^= (unsigned) time(nullptr);
|
|
||||||
id ^= ((unsigned) clock()) << 12;
|
|
||||||
#else
|
|
||||||
struct timeval tv;
|
|
||||||
gettimeofday(&tv, nullptr);
|
|
||||||
id ^= (unsigned) tv.tv_sec;
|
|
||||||
id ^= ((unsigned) tv.tv_usec) << 12; // shift into high-bits
|
|
||||||
#endif
|
|
||||||
#if HAVE_GETPID
|
|
||||||
id ^= (unsigned) getpid();
|
|
||||||
#endif
|
|
||||||
id ^= (unsigned) fi->st.st_ino;
|
id ^= (unsigned) fi->st.st_ino;
|
||||||
id ^= (unsigned) fi->st.st_atime;
|
id ^= (unsigned) fi->st.st_atime;
|
||||||
id ^= (unsigned) rand();
|
id ^= (unsigned) upx_rand();
|
||||||
}
|
}
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
@@ -947,10 +924,10 @@ int Packer::prepareMethods(int *methods, int ph_method, const int *all_methods)
|
|||||||
}
|
}
|
||||||
// debug
|
// debug
|
||||||
if (opt->debug.use_random_method && nmethods >= 2) {
|
if (opt->debug.use_random_method && nmethods >= 2) {
|
||||||
int method = methods[rand() % nmethods];
|
int method = methods[upx_rand() % nmethods];
|
||||||
|
NO_printf("\nuse_random_method = %#x (%d)\n", method, nmethods);
|
||||||
methods[0] = method;
|
methods[0] = method;
|
||||||
nmethods = 1;
|
nmethods = 1;
|
||||||
NO_printf("\nuse_random_method = %d\n", method);
|
|
||||||
}
|
}
|
||||||
return nmethods;
|
return nmethods;
|
||||||
}
|
}
|
||||||
@@ -1015,12 +992,12 @@ done:
|
|||||||
filters[nfilters++] = 0;
|
filters[nfilters++] = 0;
|
||||||
// debug
|
// debug
|
||||||
if (opt->debug.use_random_filter && nfilters >= 3 && filters[nfilters - 1] == 0) {
|
if (opt->debug.use_random_filter && nfilters >= 3 && filters[nfilters - 1] == 0) {
|
||||||
int filter_id = filters[rand() % (nfilters - 1)];
|
int filter_id = filters[upx_rand() % (nfilters - 1)];
|
||||||
if (filter_id > 0) {
|
if (filter_id > 0) {
|
||||||
|
NO_printf("\nuse_random_filter = %#x (%d)\n", filter_id, nfilters - 1);
|
||||||
filters[0] = filter_id;
|
filters[0] = filter_id;
|
||||||
filters[1] = 0;
|
filters[1] = 0;
|
||||||
nfilters = 2;
|
nfilters = 2;
|
||||||
NO_printf("\nuse_random_filter = %d\n", filter_id);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return nfilters;
|
return nfilters;
|
||||||
@@ -1054,14 +1031,14 @@ void Packer::compressWithFilters(byte *i_ptr,
|
|||||||
assert(orig_ft.id == 0);
|
assert(orig_ft.id == 0);
|
||||||
|
|
||||||
// prepare methods and filters
|
// prepare methods and filters
|
||||||
int methods[256];
|
int methods[MAX_METHODS];
|
||||||
int nmethods = prepareMethods(methods, ph.method, getCompressionMethods(M_ALL, ph.level));
|
int nmethods = prepareMethods(methods, ph.method, getCompressionMethods(M_ALL, ph.level));
|
||||||
assert(nmethods > 0);
|
assert_noexcept(nmethods > 0);
|
||||||
assert(nmethods < 256);
|
assert_noexcept(nmethods < (int) MAX_METHODS);
|
||||||
int filters[256];
|
int filters[MAX_FILTERS];
|
||||||
int nfilters = prepareFilters(filters, filter_strategy, getFilters());
|
int nfilters = prepareFilters(filters, filter_strategy, getFilters());
|
||||||
assert(nfilters > 0);
|
assert_noexcept(nfilters > 0);
|
||||||
assert(nfilters < 256);
|
assert_noexcept(nfilters < (int) MAX_FILTERS);
|
||||||
#if 0
|
#if 0
|
||||||
printf("compressWithFilters: m(%d):", nmethods);
|
printf("compressWithFilters: m(%d):", nmethods);
|
||||||
for (int i = 0; i < nmethods; i++)
|
for (int i = 0; i < nmethods; i++)
|
||||||
|
|||||||
@@ -76,6 +76,10 @@ public:
|
|||||||
virtual void doList() = 0;
|
virtual void doList() = 0;
|
||||||
virtual void doFileInfo() = 0;
|
virtual void doFileInfo() = 0;
|
||||||
|
|
||||||
|
// arbitrary limits, increase as needed
|
||||||
|
static constexpr unsigned MAX_METHODS = 8; // for getCompressionMethods()
|
||||||
|
static constexpr unsigned MAX_FILTERS = 16; // for getFilters()
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
InputFile *const fi; // reference
|
InputFile *const fi; // reference
|
||||||
union { // unnamed union
|
union { // unnamed union
|
||||||
|
|||||||
+6
-4
@@ -33,10 +33,8 @@
|
|||||||
// compression method util
|
// compression method util
|
||||||
**************************************************************************/
|
**************************************************************************/
|
||||||
|
|
||||||
/*static*/ bool Packer::isValidCompressionMethod(int method) {
|
/*static*/ bool Packer::isValidCompressionMethod(int m) {
|
||||||
if (M_IS_LZMA(method))
|
return M_IS_LZMA(m) || M_IS_NRV2B(m) || M_IS_NRV2D(m) || M_IS_NRV2E(m);
|
||||||
return true;
|
|
||||||
return method >= M_NRV2B_LE32 && method <= M_LZMA;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const int *Packer::getDefaultCompressionMethods_8(int method, int level, int small) const {
|
const int *Packer::getDefaultCompressionMethods_8(int method, int level, int small) const {
|
||||||
@@ -264,8 +262,12 @@ void Packer::defineDecompressorSymbols() {
|
|||||||
|
|
||||||
linker->defineSymbol("lzma_properties", properties);
|
linker->defineSymbol("lzma_properties", properties);
|
||||||
// len - 2 because of properties
|
// len - 2 because of properties
|
||||||
|
if (linker->findSymbol("lzma_c_len", false)) {
|
||||||
linker->defineSymbol("lzma_c_len", ph.c_len - 2);
|
linker->defineSymbol("lzma_c_len", ph.c_len - 2);
|
||||||
|
}
|
||||||
|
if (linker->findSymbol("lzma_u_len", false)) {
|
||||||
linker->defineSymbol("lzma_u_len", ph.u_len);
|
linker->defineSymbol("lzma_u_len", ph.u_len);
|
||||||
|
}
|
||||||
unsigned stack = getDecompressorWrkmemSize();
|
unsigned stack = getDecompressorWrkmemSize();
|
||||||
linker->defineSymbol("lzma_stack_adjust", 0u - stack);
|
linker->defineSymbol("lzma_stack_adjust", 0u - stack);
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -99,7 +99,7 @@ int PackHeader::getPackHeaderSize() const {
|
|||||||
**************************************************************************/
|
**************************************************************************/
|
||||||
|
|
||||||
void PackHeader::putPackHeader(SPAN_S(byte) p) const {
|
void PackHeader::putPackHeader(SPAN_S(byte) p) const {
|
||||||
// NOTE: It is the caller's responsbility to ensure the buffer p has
|
// NOTE: It is the caller's responsibility to ensure the buffer p has
|
||||||
// sufficient space for the header.
|
// sufficient space for the header.
|
||||||
assert(get_le32(p) == UPX_MAGIC_LE32);
|
assert(get_le32(p) == UPX_MAGIC_LE32);
|
||||||
if (get_le32(p + 4) != UPX_MAGIC2_LE32) {
|
if (get_le32(p + 4) != UPX_MAGIC2_LE32) {
|
||||||
|
|||||||
+7
-3
@@ -49,8 +49,8 @@ struct PackHeader final {
|
|||||||
// enum { magic = UPX_MAGIC_LE32 };
|
// enum { magic = UPX_MAGIC_LE32 };
|
||||||
int version;
|
int version;
|
||||||
int format; // executable format UPX_F_xxx
|
int format; // executable format UPX_F_xxx
|
||||||
int method; // compresison method M_xxx
|
int method; // compression method M_xxx
|
||||||
int level; // compresison level 1..10
|
int level; // compression level 1..10
|
||||||
unsigned u_len;
|
unsigned u_len;
|
||||||
unsigned c_len;
|
unsigned c_len;
|
||||||
unsigned u_adler;
|
unsigned u_adler;
|
||||||
@@ -84,10 +84,14 @@ struct PackHeader final {
|
|||||||
|
|
||||||
// info fields set by Packer::compressWithFilters()
|
// info fields set by Packer::compressWithFilters()
|
||||||
unsigned overlap_overhead;
|
unsigned overlap_overhead;
|
||||||
|
|
||||||
|
private: // UPX conventions
|
||||||
|
UPX_CXX_DISABLE_ADDRESS(PackHeader)
|
||||||
|
UPX_CXX_DISABLE_NEW_DELETE(PackHeader)
|
||||||
};
|
};
|
||||||
|
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
// ph default util functions
|
// PackHeader ph util functions
|
||||||
**************************************************************************/
|
**************************************************************************/
|
||||||
|
|
||||||
bool ph_is_forced_method(int method) noexcept; // predicate
|
bool ph_is_forced_method(int method) noexcept; // predicate
|
||||||
|
|||||||
@@ -59,6 +59,11 @@ private:
|
|||||||
// setup local options for each file
|
// setup local options for each file
|
||||||
Options local_options;
|
Options local_options;
|
||||||
Options *saved_opt = nullptr;
|
Options *saved_opt = nullptr;
|
||||||
|
|
||||||
|
private: // UPX conventions
|
||||||
|
UPX_CXX_DISABLE_ADDRESS(PackMaster)
|
||||||
|
UPX_CXX_DISABLE_COPY_MOVE(PackMaster)
|
||||||
|
UPX_CXX_DISABLE_NEW_DELETE(PackMaster)
|
||||||
};
|
};
|
||||||
|
|
||||||
/* vim:set ts=4 sw=4 et: */
|
/* vim:set ts=4 sw=4 et: */
|
||||||
|
|||||||
+10
-8
@@ -215,7 +215,7 @@ int PeFile::readFileHeader() {
|
|||||||
|
|
||||||
PeFile::Interval::Interval(SPAN_P(byte) b) : base(b) {}
|
PeFile::Interval::Interval(SPAN_P(byte) b) : base(b) {}
|
||||||
|
|
||||||
PeFile::Interval::~Interval() noexcept { free(ivarr); }
|
PeFile::Interval::~Interval() noexcept { ::free(ivarr); }
|
||||||
|
|
||||||
int __acc_cdecl_qsort PeFile::Interval::compare(const void *p1, const void *p2) {
|
int __acc_cdecl_qsort PeFile::Interval::compare(const void *p1, const void *p2) {
|
||||||
const interval *i1 = (const interval *) p1;
|
const interval *i1 = (const interval *) p1;
|
||||||
@@ -512,10 +512,10 @@ void PeFile32::processRelocs() // pass1
|
|||||||
infoWarning("skipping unsupported relocation type %d (%d)", ic, counts[ic]);
|
infoWarning("skipping unsupported relocation type %d (%d)", ic, counts[ic]);
|
||||||
|
|
||||||
LE32 *fix[4];
|
LE32 *fix[4];
|
||||||
upx::ArrayDeleter<LE32 **> fixdel{fix, 0}; // don't leak memory
|
auto fix_deleter = upx::ArrayDeleter(fix, 0); // don't leak memory
|
||||||
for (unsigned ic = 0; ic <= IMAGE_REL_BASED_HIGHLOW; ic++) {
|
for (unsigned ic = 0; ic <= IMAGE_REL_BASED_HIGHLOW; ic++) {
|
||||||
fix[ic] = New(LE32, counts[ic]);
|
fix[ic] = New(LE32, counts[ic]);
|
||||||
fixdel.count += 1;
|
fix_deleter.count += 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned xcounts[4];
|
unsigned xcounts[4];
|
||||||
@@ -614,10 +614,10 @@ void PeFile64::processRelocs() // pass1
|
|||||||
infoWarning("skipping unsupported relocation type %d (%d)", ic, counts[ic]);
|
infoWarning("skipping unsupported relocation type %d (%d)", ic, counts[ic]);
|
||||||
|
|
||||||
LE32 *fix[16];
|
LE32 *fix[16];
|
||||||
upx::ArrayDeleter<LE32 **> fixdel{fix, 0}; // don't leak memory
|
auto fix_deleter = upx::ArrayDeleter(fix, 0); // don't leak memory
|
||||||
for (unsigned ic = 0; ic < 16; ic++) {
|
for (unsigned ic = 0; ic < 16; ic++) {
|
||||||
fix[ic] = New(LE32, counts[ic]);
|
fix[ic] = New(LE32, counts[ic]);
|
||||||
fixdel.count += 1;
|
fix_deleter.count += 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned xcounts[16];
|
unsigned xcounts[16];
|
||||||
@@ -859,6 +859,7 @@ public:
|
|||||||
outputlen = 0;
|
outputlen = 0;
|
||||||
|
|
||||||
// sort the sections by name before adding them all
|
// sort the sections by name before adding them all
|
||||||
|
// NOLINTNEXTLINE(bugprone-multi-level-implicit-pointer-conversion)
|
||||||
upx_qsort(sections, nsections, sizeof(Section *), ImportLinker::compare);
|
upx_qsort(sections, nsections, sizeof(Section *), ImportLinker::compare);
|
||||||
|
|
||||||
for (unsigned ic = 0; ic < nsections; ic++)
|
for (unsigned ic = 0; ic < nsections; ic++)
|
||||||
@@ -1041,6 +1042,7 @@ unsigned PeFile::processImports0(ord_mask_t ord_mask) // pass 1
|
|||||||
mb_oimport.clear();
|
mb_oimport.clear();
|
||||||
oimport = mb_oimport;
|
oimport = mb_oimport;
|
||||||
|
|
||||||
|
// NOLINTNEXTLINE(bugprone-multi-level-implicit-pointer-conversion)
|
||||||
upx_qsort(idlls, dllnum, sizeof(*idlls), UDll::compare);
|
upx_qsort(idlls, dllnum, sizeof(*idlls), UDll::compare);
|
||||||
|
|
||||||
info("Processing imports: %d DLLs", dllnum);
|
info("Processing imports: %d DLLs", dllnum);
|
||||||
@@ -1175,14 +1177,14 @@ PeFile::Export::Export(char *_base) : base(_base), iv((byte *) _base) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
PeFile::Export::~Export() noexcept {
|
PeFile::Export::~Export() noexcept {
|
||||||
free(ename);
|
::free(ename);
|
||||||
delete[] functionptrs;
|
delete[] functionptrs;
|
||||||
delete[] ordinals;
|
delete[] ordinals;
|
||||||
if (names) {
|
if (names) {
|
||||||
const unsigned limit = edir.names + edir.functions;
|
const unsigned limit = edir.names + edir.functions;
|
||||||
for (unsigned ic = 0; ic < limit; ic++)
|
for (unsigned ic = 0; ic < limit; ic++)
|
||||||
if (names[ic])
|
if (names[ic])
|
||||||
free(names[ic]); // allocated by strdup()
|
::free(names[ic]); // allocated by strdup()
|
||||||
delete[] names;
|
delete[] names;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1924,7 +1926,7 @@ void PeFile::processResources(Resource *res) {
|
|||||||
SPAN_S_VAR(byte, ores, oresources + res->dirsize());
|
SPAN_S_VAR(byte, ores, oresources + res->dirsize());
|
||||||
|
|
||||||
char *keep_icons = nullptr; // icon ids in the first icon group
|
char *keep_icons = nullptr; // icon ids in the first icon group
|
||||||
upx::ArrayDeleter<char **> keep_icons_deleter{&keep_icons, 1}; // don't leak memory
|
const auto keep_icons_deleter = upx::ArrayDeleter(&keep_icons, 1); // don't leak memory
|
||||||
unsigned iconsin1stdir = 0;
|
unsigned iconsin1stdir = 0;
|
||||||
if (opt->win32_pe.compress_icons == 2)
|
if (opt->win32_pe.compress_icons == 2)
|
||||||
while (res->next()) // there is no rewind() in Resource
|
while (res->next()) // there is no rewind() in Resource
|
||||||
|
|||||||
+2
-2
@@ -579,7 +579,7 @@ protected:
|
|||||||
ddirs_t ddirs[16];
|
ddirs_t ddirs[16];
|
||||||
};
|
};
|
||||||
|
|
||||||
pe_header_t ih, oh;
|
pe_header_t ih = {}, oh = {};
|
||||||
};
|
};
|
||||||
|
|
||||||
class PeFile64 : public PeFile {
|
class PeFile64 : public PeFile {
|
||||||
@@ -640,7 +640,7 @@ protected:
|
|||||||
ddirs_t ddirs[16];
|
ddirs_t ddirs[16];
|
||||||
};
|
};
|
||||||
|
|
||||||
pe_header_t ih, oh;
|
pe_header_t ih = {}, oh = {};
|
||||||
};
|
};
|
||||||
|
|
||||||
/* vim:set ts=4 sw=4 et: */
|
/* vim:set ts=4 sw=4 et: */
|
||||||
|
|||||||
+1
-1
@@ -3,7 +3,7 @@
|
|||||||
# Copyright (C) Markus Franz Xaver Johannes Oberhumer
|
# Copyright (C) Markus Franz Xaver Johannes Oberhumer
|
||||||
#
|
#
|
||||||
|
|
||||||
# NOTE: see misc/podman/rebuild-stubs/20-image-run-shell.sh
|
# NOTE: see misc/podman/rebuild-stubs/30-rebuild-stubs.sh
|
||||||
# how to rebuild the UPX stubs from source code
|
# how to rebuild the UPX stubs from source code
|
||||||
|
|
||||||
MAKEFLAGS += -rR
|
MAKEFLAGS += -rR
|
||||||
|
|||||||
Generated
+333
-334
@@ -1,5 +1,5 @@
|
|||||||
/* arm.v4a-linux.elf-fold.h
|
/* arm.v4a-linux.elf-fold.h
|
||||||
created from arm.v4a-linux.elf-fold.bin, 6724 (0x1a44) bytes
|
created from arm.v4a-linux.elf-fold.bin, 6708 (0x1a34) 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_ARM_V4A_LINUX_ELF_FOLD_SIZE 6724
|
#define STUB_ARM_V4A_LINUX_ELF_FOLD_SIZE 6708
|
||||||
#define STUB_ARM_V4A_LINUX_ELF_FOLD_ADLER32 0xeecde528
|
#define STUB_ARM_V4A_LINUX_ELF_FOLD_ADLER32 0xf257dabf
|
||||||
#define STUB_ARM_V4A_LINUX_ELF_FOLD_CRC32 0xccec9b98
|
#define STUB_ARM_V4A_LINUX_ELF_FOLD_CRC32 0x950a6a49
|
||||||
|
|
||||||
unsigned char stub_arm_v4a_linux_elf_fold[6724] = {
|
unsigned char stub_arm_v4a_linux_elf_fold[6708] = {
|
||||||
/* 0x0000 */ 127, 69, 76, 70, 1, 1, 1, 97, 0, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0000 */ 127, 69, 76, 70, 1, 1, 1, 97, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0010 */ 1, 0, 40, 0, 1, 0, 0, 0, 64,128, 0, 0, 0, 0, 0, 0,
|
/* 0x0010 */ 1, 0, 40, 0, 1, 0, 0, 0, 64,128, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0020 */ 92, 11, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, 0,
|
/* 0x0020 */ 76, 11, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, 0,
|
||||||
/* 0x0030 */ 7, 0, 4, 0, 34, 0, 0, 0, 4, 32,160,225, 5, 48,160,225,
|
/* 0x0030 */ 7, 0, 4, 0, 34, 0, 0, 0, 4, 32,160,225, 5, 48,160,225,
|
||||||
/* 0x0040 */ 240, 31,189,232, 13, 16,160,225, 1,218, 77,226, 13, 0,160,225,
|
/* 0x0040 */ 240, 31,189,232, 13, 16,160,225, 1,218, 77,226, 13, 0,160,225,
|
||||||
/* 0x0050 */ 252, 31, 45,233, 4, 48,145,228, 0, 0, 83,227, 4, 48,128,228,
|
/* 0x0050 */ 252, 31, 45,233, 4, 48,145,228, 0, 0, 83,227, 4, 48,128,228,
|
||||||
@@ -127,335 +127,334 @@ unsigned char stub_arm_v4a_linux_elf_fold[6724] = {
|
|||||||
/* 0x0570 */ 239, 0, 0,235, 4, 48,157,229, 6, 0,148,232, 3, 32,130,224,
|
/* 0x0570 */ 239, 0, 0,235, 4, 48,157,229, 6, 0,148,232, 3, 32,130,224,
|
||||||
/* 0x0580 */ 1, 16, 99,224, 6, 0,132,232, 0, 48,148,229, 0, 0, 83,227,
|
/* 0x0580 */ 1, 16, 99,224, 6, 0,132,232, 0, 48,148,229, 0, 0, 83,227,
|
||||||
/* 0x0590 */ 14, 1, 0, 26, 20,208,141,226,240,128,189,232, 85, 80, 88, 33,
|
/* 0x0590 */ 14, 1, 0, 26, 20,208,141,226,240,128,189,232, 85, 80, 88, 33,
|
||||||
/* 0x05a0 */ 240, 79, 45,233, 1,160,160,225, 28, 16,145,229, 44,208, 77,226,
|
/* 0x05a0 */ 240, 79, 45,233, 1,128,160,225, 28, 16,145,229, 44,208, 77,226,
|
||||||
/* 0x05b0 */ 0, 0, 82,227, 12, 32,141,229, 16, 0,141,229, 8, 48,141,229,
|
/* 0x05b0 */ 0, 0, 82,227, 12, 32,141,229, 16, 0,141,229, 8, 48,141,229,
|
||||||
/* 0x05c0 */ 1, 80,138,224,113, 1, 0, 10, 80, 32,157,229, 0, 0,146,229,
|
/* 0x05c0 */ 1, 80,136,224,109, 1, 0, 10, 80, 32,157,229, 0, 0,146,229,
|
||||||
/* 0x05d0 */ 176, 49,208,225, 52, 16,128,226, 2, 0, 83,227, 40, 48,145, 21,
|
/* 0x05d0 */ 176, 49,208,225, 2, 0, 83,227, 92, 48,144, 21, 0, 48,160, 3,
|
||||||
/* 0x05e0 */ 8, 0,145, 5, 0, 48,160, 3, 0, 0, 99, 16, 20, 16,145,229,
|
/* 0x05e0 */ 20, 48,141, 5, 0, 0, 99, 16,147, 1, 0, 26,148, 1, 0,234,
|
||||||
/* 0x05f0 */ 20, 48,141, 5, 20, 0,141, 21,254,255,255,235,152, 1, 0,234,
|
/* 0x05f0 */ 176, 49,216,225,188, 34,216,225, 3, 0, 83,227, 12, 16,157,229,
|
||||||
/* 0x0600 */ 176, 49,218,225,188, 34,218,225, 3, 0, 83,227, 12, 16,157,229,
|
/* 0x0600 */ 16,224,160, 19, 0,224,160, 3, 1,192, 66,226, 5, 0,160,225,
|
||||||
/* 0x0610 */ 16,224,160, 19, 0,224,160, 3, 1,192, 66,226, 5, 0,160,225,
|
/* 0x0610 */ 0, 64,224,227,133, 1, 0,234, 0, 48,144,229, 1, 0, 83,227,
|
||||||
/* 0x0620 */ 0, 64,224,227,137, 1, 0,234, 0, 48,144,229, 1, 0, 83,227,
|
/* 0x0620 */ 131, 1, 0, 26, 20, 48,144,229, 0, 0, 83,227,131, 1, 0, 10,
|
||||||
/* 0x0630 */ 135, 1, 0, 26, 20, 48,144,229, 0, 0, 83,227,135, 1, 0, 10,
|
/* 0x0630 */ 8, 32,144,229, 2, 48,131,224, 3, 0, 81,225, 3, 16,160, 49,
|
||||||
/* 0x0640 */ 8, 32,144,229, 2, 48,131,224, 3, 0, 81,225, 3, 16,160, 49,
|
/* 0x0640 */ 2, 0, 84,225, 2, 64,160, 33, 32, 0,128,226, 1,192, 76,226,
|
||||||
/* 0x0650 */ 2, 0, 84,225, 2, 64,160, 33, 32, 0,128,226, 1,192, 76,226,
|
/* 0x0650 */ 0, 0, 92,227,119, 1, 0,170,255, 78,196,227, 15, 64,196,227,
|
||||||
/* 0x0660 */ 0, 0, 92,227,123, 1, 0,170,255, 78,196,227, 15, 64,196,227,
|
/* 0x0660 */ 1, 16,100,224,255, 30,129,226, 15, 16,129,226,255, 30,193,227,
|
||||||
/* 0x0670 */ 1, 16,100,224,255, 30,129,226, 15, 16,129,226,255, 30,193,227,
|
/* 0x0670 */ 15, 16,193,227, 14, 48,160,225, 4, 0,160,225, 0, 32,160,227,
|
||||||
/* 0x0680 */ 15, 16,193,227, 14, 48,160,225, 4, 0,160,225, 0, 32,160,227,
|
/* 0x0680 */ 254,255,255,235, 0, 0,100,224, 20, 0,141,229, 0,192,160,227,
|
||||||
/* 0x0690 */ 254,255,255,235, 0, 0,100,224, 20, 0,141,229, 0,192,160,227,
|
/* 0x0690 */ 32, 80,133,226, 24,192,141,229, 62, 2, 0,234, 12, 0,157,229,
|
||||||
/* 0x06a0 */ 32, 80,133,226, 24,192,141,229, 66, 2, 0,234, 12, 0,157,229,
|
/* 0x06a0 */ 0, 0, 80,227,165, 1, 0, 10, 32, 48, 21,229, 6, 0, 83,227,
|
||||||
/* 0x06b0 */ 0, 0, 80,227,169, 1, 0, 10, 32, 48, 21,229, 6, 0, 83,227,
|
/* 0x06b0 */ 165, 1, 0, 26, 24, 32, 21,229, 20, 48,157,229, 8, 0,157,229,
|
||||||
/* 0x06c0 */ 169, 1, 0, 26, 24, 32, 21,229, 20, 48,157,229, 8, 0,157,229,
|
/* 0x06c0 */ 2, 32,131,224, 3, 16,160,227,211, 0, 0,235, 58, 2, 0,234,
|
||||||
/* 0x06d0 */ 2, 32,131,224, 3, 16,160,227,211, 0, 0,235, 62, 2, 0,234,
|
/* 0x06d0 */ 32, 48, 21,229, 1, 0, 83,227, 58, 2, 0, 26, 12, 48, 21,229,
|
||||||
/* 0x06e0 */ 32, 48, 21,229, 1, 0, 83,227, 62, 2, 0, 26, 12, 48, 21,229,
|
/* 0x06e0 */ 0, 0, 83,227, 58, 2, 0, 10, 12,192,157,229, 0, 0, 92,227,
|
||||||
/* 0x06f0 */ 0, 0, 83,227, 62, 2, 0, 10, 12,192,157,229, 0, 0, 92,227,
|
/* 0x06f0 */ 193, 1, 0, 10, 28, 48, 21,229, 0, 0, 83,227,193, 1, 0, 26,
|
||||||
/* 0x0700 */ 197, 1, 0, 10, 28, 48, 21,229, 0, 0, 83,227,197, 1, 0, 26,
|
/* 0x0700 */ 28, 48,152,229, 24, 32, 21,229, 20, 0,157,229, 3, 32,130,224,
|
||||||
/* 0x0710 */ 28, 48,154,229, 24, 32, 21,229, 20, 0,157,229, 3, 32,130,224,
|
/* 0x0710 */ 2, 32,128,224, 3, 16,160,227, 8, 0,157,229,211, 0, 0,235,
|
||||||
/* 0x0720 */ 2, 32,128,224, 3, 16,160,227, 8, 0,157,229,211, 0, 0,235,
|
/* 0x0720 */ 8, 0,157,229, 5, 16,160,227,188, 34,216,225,211, 0, 0,235,
|
||||||
/* 0x0730 */ 8, 0,157,229, 5, 16,160,227,188, 34,218,225,211, 0, 0,235,
|
/* 0x0730 */ 8, 0,157,229, 4, 16,160,227,186, 34,216,225,211, 0, 0,235,
|
||||||
/* 0x0740 */ 8, 0,157,229, 4, 16,160,227,186, 34,218,225,211, 0, 0,235,
|
/* 0x0740 */ 8, 16, 21,229,148, 34,159,229, 7, 48, 1,226, 3, 49,160,225,
|
||||||
/* 0x0750 */ 8, 16, 21,229,148, 34,159,229, 7, 48, 1,226, 3, 49,160,225,
|
/* 0x0750 */ 50, 67,160,225, 24, 48, 21,229, 20, 32,157,229, 12,192,157,229,
|
||||||
/* 0x0760 */ 50, 67,160,225, 24, 48, 21,229, 20, 32,157,229, 12,192,157,229,
|
/* 0x0760 */ 3,176,130,224, 11, 42,160,225, 16, 48, 21,229, 12, 0, 21,229,
|
||||||
/* 0x0770 */ 3,176,130,224, 11, 42,160,225, 16, 48, 21,229, 12, 0, 21,229,
|
/* 0x0770 */ 34, 42,160,225, 0, 0, 92,227, 36, 48,141,229, 40,176,141,229,
|
||||||
/* 0x0780 */ 34, 42,160,225, 0, 0, 92,227, 36, 48,141,229, 40,176,141,229,
|
/* 0x0780 */ 2,160,131,224, 7,144, 4,226, 32, 0,141,229, 11, 96, 98,224,
|
||||||
/* 0x0790 */ 2,128,131,224, 7,144, 4,226, 32, 0,141,229, 11, 96, 98,224,
|
/* 0x0790 */ 231, 1, 0, 10, 1, 0, 17,227, 3, 32,160, 3, 7, 32,160, 19,
|
||||||
/* 0x07a0 */ 235, 1, 0, 10, 1, 0, 17,227, 3, 32,160, 3, 7, 32,160, 19,
|
/* 0x07a0 */ 6, 0,160,225, 10, 16,160,225, 16, 48,160,227,254,255,255,235,
|
||||||
/* 0x07b0 */ 6, 0,160,225, 8, 16,160,225, 16, 48,160,227,254,255,255,235,
|
/* 0x07b0 */ 0, 0, 86,225, 42, 2, 0, 26, 84, 32,157,229, 4, 48, 20,226,
|
||||||
/* 0x07c0 */ 0, 0, 86,225, 46, 2, 0, 26, 84, 32,157,229, 4, 48, 20,226,
|
/* 0x07c0 */ 2, 48,160, 17, 12, 0,157,229, 36, 16,141,226, 16, 32,157,229,
|
||||||
/* 0x07d0 */ 2, 48,160, 17, 12, 0,157,229, 36, 16,141,226, 16, 32,157,229,
|
/* 0x07d0 */ 7, 1, 0,235,243, 1, 0,234, 28,192, 21,229, 12,192, 98,224,
|
||||||
/* 0x07e0 */ 7, 1, 0,235,247, 1, 0,234, 28,192, 21,229, 12,192, 98,224,
|
/* 0x07e0 */ 4,192,141,229, 16,192,157,229, 6, 0,160,225, 10, 16,160,225,
|
||||||
/* 0x07f0 */ 4,192,141,229, 16,192,157,229, 6, 0,160,225, 8, 16,160,225,
|
/* 0x07f0 */ 9, 32,160,225, 18, 48,160,227, 0,192,141,229,254,255,255,235,
|
||||||
/* 0x0800 */ 9, 32,160,225, 18, 48,160,227, 0,192,141,229,254,255,255,235,
|
/* 0x0800 */ 0, 0, 86,225, 42, 2, 0, 26, 0, 48,106,226, 3,122,160,225,
|
||||||
/* 0x0810 */ 0, 0, 86,225, 46, 2, 0, 26, 0, 48,104,226, 3,122,160,225,
|
/* 0x0810 */ 2, 0, 25,227, 39,122,160,225, 0, 2, 0, 10, 0, 0, 87,227,
|
||||||
/* 0x0820 */ 2, 0, 25,227, 39,122,160,225, 4, 2, 0, 10, 0, 0, 87,227,
|
/* 0x0820 */ 0, 2, 0, 10, 10, 16,134,224, 7, 32,160,225, 0, 48,160,227,
|
||||||
/* 0x0830 */ 4, 2, 0, 10, 8, 16,134,224, 7, 32,160,225, 0, 48,160,227,
|
/* 0x0830 */ 1, 32, 82,226, 1, 48,193,228,252, 1, 0, 26, 12, 0,157,229,
|
||||||
/* 0x0840 */ 1, 32, 82,226, 1, 48,193,228, 0, 2, 0, 26, 12, 0,157,229,
|
/* 0x0840 */ 0, 0, 80,227, 44, 2, 0, 10,254,255,255,235, 32, 48, 21,229,
|
||||||
/* 0x0850 */ 0, 0, 80,227, 48, 2, 0, 10,254,255,255,235, 32, 48, 21,229,
|
/* 0x0850 */ 1, 0, 83,227, 28, 0,141,229, 36, 2, 0, 26, 8, 48, 21,229,
|
||||||
/* 0x0860 */ 1, 0, 83,227, 28, 0,141,229, 40, 2, 0, 26, 8, 48, 21,229,
|
/* 0x0860 */ 1, 0, 19,227, 36, 2, 0, 10, 16, 48, 21,229, 12, 32, 21,229,
|
||||||
/* 0x0870 */ 1, 0, 19,227, 40, 2, 0, 10, 16, 48, 21,229, 12, 32, 21,229,
|
/* 0x0870 */ 3, 0, 82,225, 24, 48, 21,229, 75, 2, 0, 26, 3, 48,130,224,
|
||||||
/* 0x0880 */ 3, 0, 82,225, 24, 48, 21,229, 79, 2, 0, 26, 3, 48,130,224,
|
/* 0x0880 */ 20, 32,157,229, 3, 48,131,226, 3, 48,130,224, 3, 0,195,227,
|
||||||
/* 0x0890 */ 20, 32,157,229, 3, 48,131,226, 3, 48,130,224, 3, 0,195,227,
|
/* 0x0890 */ 0, 48, 96,226, 3, 58,160,225, 35, 58,160,225, 11, 0, 83,227,
|
||||||
/* 0x08a0 */ 0, 48, 96,226, 3, 58,160,225, 35, 58,160,225, 11, 0, 83,227,
|
/* 0x08a0 */ 75, 2, 0,154, 28, 48,157,229, 0, 48,128,229, 48, 49,159,229,
|
||||||
/* 0x08b0 */ 79, 2, 0,154, 28, 48,157,229, 0, 48,128,229, 48, 49,159,229,
|
/* 0x08b0 */ 4, 48,128,229, 44, 49,159,229, 12, 16,128,226, 8, 48,128,229,
|
||||||
/* 0x08c0 */ 4, 48,128,229, 44, 49,159,229, 12, 16,128,226, 8, 48,128,229,
|
/* 0x08c0 */ 0, 64,160,225,254,255,255,235,100, 2, 0,234, 6, 0,160,225,
|
||||||
/* 0x08d0 */ 0, 64,160,225,254,255,255,235,104, 2, 0,234, 6, 0,160,225,
|
/* 0x08d0 */ 10, 16,160,225, 9, 32,160,225,254,255,255,235, 0, 0, 80,227,
|
||||||
/* 0x08e0 */ 8, 16,160,225, 9, 32,160,225,254,255,255,235, 0, 0, 80,227,
|
/* 0x08e0 */ 44, 2, 0, 10,127, 0,160,227,254,255,255,235, 32,192,157,229,
|
||||||
/* 0x08f0 */ 48, 2, 0, 10,127, 0,160,227,254,255,255,235, 32,192,157,229,
|
/* 0x08f0 */ 7, 48,138,224, 12, 16,139,224, 3, 64,134,224, 1, 0, 84,225,
|
||||||
/* 0x0900 */ 7, 48,136,224, 12, 16,139,224, 3, 64,134,224, 1, 0, 84,225,
|
/* 0x0900 */ 58, 2, 0, 42, 1, 16,100,224, 9, 32,160,225, 4, 0,160,225,
|
||||||
/* 0x0910 */ 62, 2, 0, 42, 1, 16,100,224, 9, 32,160,225, 4, 0,160,225,
|
/* 0x0910 */ 16, 48,160,227,254,255,255,235, 0, 0, 84,225, 58, 2, 0, 10,
|
||||||
/* 0x0920 */ 16, 48,160,227,254,255,255,235, 0, 0, 84,225, 62, 2, 0, 10,
|
/* 0x0920 */ 57, 2, 0,234, 24, 0,157,229, 1, 0,128,226, 24, 0,141,229,
|
||||||
/* 0x0930 */ 61, 2, 0,234, 24, 0,157,229, 1, 0,128,226, 24, 0,141,229,
|
/* 0x0930 */ 32, 80,133,226,188, 50,216,225, 24, 32,157,229, 3, 0, 82,225,
|
||||||
/* 0x0940 */ 32, 80,133,226,188, 50,218,225, 24, 32,157,229, 3, 0, 82,225,
|
/* 0x0940 */ 152, 1, 0,186, 80, 48,157,229, 0, 0, 83,227, 20,192,157, 21,
|
||||||
/* 0x0950 */ 156, 1, 0,186, 80, 48,157,229, 0, 0, 83,227, 20,192,157, 21,
|
/* 0x0950 */ 0,192,131, 21, 20, 32,157,229, 24, 0,152,229, 0, 0,130,224,
|
||||||
/* 0x0960 */ 0,192,131, 21, 20, 32,157,229, 24, 0,154,229, 0, 0,130,224,
|
/* 0x0960 */ 44,208,141,226,240,143,189,232, 0,224,160,227, 0,192,224,227,
|
||||||
/* 0x0970 */ 44,208,141,226,240,143,189,232, 0,224,160,227, 0,192,224,227,
|
/* 0x0970 */ 14, 0,160,225, 1, 26,160,227, 7, 32,160,227, 34, 48,160,227,
|
||||||
/* 0x0980 */ 14, 0,160,225, 1, 26,160,227, 7, 32,160,227, 34, 48,160,227,
|
/* 0x0980 */ 0, 80,141,232,254,255,255,235, 0, 0, 80,227, 36, 2, 0, 10,
|
||||||
/* 0x0990 */ 0, 80,141,232,254,255,255,235, 0, 0, 80,227, 40, 2, 0, 10,
|
/* 0x0990 */ 3, 48,128,226, 3, 64,195,227, 68, 48,159,229, 28, 0,157,229,
|
||||||
/* 0x09a0 */ 3, 48,128,226, 3, 64,195,227, 68, 48,159,229, 28, 0,157,229,
|
/* 0x09a0 */ 4, 48,132,229, 60, 48,159,229, 0, 0,132,229, 12, 16,132,226,
|
||||||
/* 0x09b0 */ 4, 48,132,229, 60, 48,159,229, 0, 0,132,229, 12, 16,132,226,
|
/* 0x09b0 */ 4, 0,160,225, 8, 48,132,229,254,255,255,235, 4, 0,160,225,
|
||||||
/* 0x09c0 */ 4, 0,160,225, 8, 48,132,229,254,255,255,235, 4, 0,160,225,
|
/* 0x09c0 */ 12, 16,160,227, 5, 32,160,227,254,255,255,235, 4, 32,160,225,
|
||||||
/* 0x09d0 */ 12, 16,160,227, 5, 32,160,227,254,255,255,235, 4, 32,160,225,
|
/* 0x09d0 */ 8, 0,157,229, 0, 16,160,227,211, 0, 0,235, 36, 2, 0,234,
|
||||||
/* 0x09e0 */ 8, 0,157,229, 0, 16,160,227,211, 0, 0,235, 40, 2, 0,234,
|
/* 0x09e0 */ 64, 98, 81,115, 3, 0,189,232, 14,240,160,225,240, 71, 45,233,
|
||||||
/* 0x09f0 */ 64, 98, 81,115, 3, 0,189,232, 14,240,160,225,240, 71, 45,233,
|
/* 0x09f0 */ 12,208, 77,226, 52, 96,141,226, 0,144,160,225, 1,112,160,225,
|
||||||
/* 0x0a00 */ 12,208, 77,226, 52, 96,141,226, 0,144,160,225, 1,112,160,225,
|
/* 0x0a00 */ 3,128,160,225, 6, 0,160,225, 44, 16,141,226, 0, 48,160,227,
|
||||||
/* 0x0a10 */ 3,128,160,225, 6, 0,160,225, 44, 16,141,226, 0, 48,160,227,
|
/* 0x0a10 */ 48,160,157,229, 2, 80,160,225, 52, 64,157,229, 7, 1, 0,235,
|
||||||
/* 0x0a20 */ 48,160,157,229, 2, 80,160,225, 52, 64,157,229, 7, 1, 0,235,
|
/* 0x0a20 */ 60, 48,157,229, 12,224,141,226, 56,192,157,229, 4, 48, 46,229,
|
||||||
/* 0x0a30 */ 60, 48,157,229, 12,224,141,226, 56,192,157,229, 4, 48, 46,229,
|
/* 0x0a30 */ 12,192,100,224, 6, 32,160,225, 10, 16,160,225, 9, 48,160,225,
|
||||||
/* 0x0a40 */ 12,192,100,224, 6, 32,160,225, 10, 16,160,225, 9, 48,160,225,
|
/* 0x0a40 */ 5, 0,160,225, 56,192,141,229, 0,224,141,229, 52,112,141,229,
|
||||||
/* 0x0a50 */ 5, 0,160,225, 56,192,141,229, 0,224,141,229, 52,112,141,229,
|
/* 0x0a50 */ 4,128,141,229, 89, 1, 0,235, 0, 64,160,225, 9, 16,160,227,
|
||||||
/* 0x0a60 */ 4,128,141,229, 89, 1, 0,235, 0, 64,160,225, 9, 16,160,227,
|
/* 0x0a60 */ 9, 0,160,225, 4, 32,160,225,211, 0, 0,235,188, 2,218,225,
|
||||||
/* 0x0a70 */ 9, 0,160,225, 4, 32,160,225,211, 0, 0,235,188, 2,218,225,
|
/* 0x0a70 */ 52, 32,138,226, 0, 16,160,227,180, 2, 0,234, 0, 48,146,229,
|
||||||
/* 0x0a80 */ 52, 32,138,226, 0, 16,160,227,184, 2, 0,234, 0, 48,146,229,
|
/* 0x0a80 */ 3, 0, 83,227,178, 2, 0, 26, 8, 48,146,229, 8, 0,157,229,
|
||||||
/* 0x0a90 */ 3, 0, 83,227,182, 2, 0, 26, 8, 48,146,229, 8, 0,157,229,
|
/* 0x0a90 */ 0, 16,160,227, 0, 0,131,224, 1, 32,160,225,254,255,255,235,
|
||||||
/* 0x0aa0 */ 0, 16,160,227, 0, 0,131,224, 1, 32,160,225,254,255,255,235,
|
/* 0x0aa0 */ 0, 80, 80,226,160, 2, 0,186, 10, 16,160,225, 2, 44,160,227,
|
||||||
/* 0x0ab0 */ 0, 80, 80,226,164, 2, 0,186, 10, 16,160,225, 2, 44,160,227,
|
/* 0x0ab0 */ 254,255,255,235, 2, 12, 80,227,162, 2, 0, 10,127, 0,160,227,
|
||||||
/* 0x0ac0 */ 254,255,255,235, 2, 12, 80,227,166, 2, 0, 10,127, 0,160,227,
|
/* 0x0ac0 */ 254,255,255,235, 0,224,160,227, 14, 32,160,225, 8,192,141,226,
|
||||||
/* 0x0ad0 */ 254,255,255,235, 0,224,160,227, 14, 32,160,225, 8,192,141,226,
|
/* 0x0ad0 */ 10, 16,160,225, 9, 48,160,225, 5, 0,160,225, 0, 80,141,232,
|
||||||
/* 0x0ae0 */ 10, 16,160,225, 9, 48,160,225, 5, 0,160,225, 0, 80,141,232,
|
/* 0x0ae0 */ 89, 1, 0,235, 7, 16,160,227, 0, 64,160,225, 8, 32,157,229,
|
||||||
/* 0x0af0 */ 89, 1, 0,235, 7, 16,160,227, 0, 64,160,225, 8, 32,157,229,
|
/* 0x0af0 */ 9, 0,160,225,211, 0, 0,235, 5, 0,160,225,254,255,255,235,
|
||||||
/* 0x0b00 */ 9, 0,160,225,211, 0, 0,235, 5, 0,160,225,254,255,255,235,
|
/* 0x0b00 */ 182, 2, 0,234, 32, 32,130,226, 1, 16,129,226, 0, 0, 81,225,
|
||||||
/* 0x0b10 */ 186, 2, 0,234, 32, 32,130,226, 1, 16,129,226, 0, 0, 81,225,
|
/* 0x0b10 */ 144, 2, 0,186, 4, 0,160,225, 12,208,141,226,240,135,189,232,
|
||||||
/* 0x0b20 */ 148, 2, 0,186, 4, 0,160,225, 12,208,141,226,240,135,189,232,
|
/* 0x0b20 */ 0, 46,115,121,109,116, 97, 98, 0, 46,115,116,114,116, 97, 98,
|
||||||
/* 0x0b30 */ 0, 46,115,121,109,116, 97, 98, 0, 46,115,116,114,116, 97, 98,
|
/* 0x0b30 */ 0, 46,115,104,115,116,114,116, 97, 98, 0, 46,114,101,108, 46,
|
||||||
/* 0x0b40 */ 0, 46,115,104,115,116,114,116, 97, 98, 0, 46,114,101,108, 46,
|
/* 0x0b40 */ 116,101,120,116, 0, 46, 98,115,115, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0b50 */ 116,101,120,116, 0, 46, 98,115,115, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0b50 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0b60 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0b60 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0b70 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0b70 */ 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0,
|
||||||
/* 0x0b80 */ 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0,
|
/* 0x0b80 */ 64,128, 0, 0, 52, 0, 0, 0,236, 10, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0b90 */ 64,128, 0, 0, 52, 0, 0, 0,252, 10, 0, 0, 0, 0, 0, 0,
|
/* 0x0b90 */ 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0,
|
||||||
/* 0x0ba0 */ 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0,
|
/* 0x0ba0 */ 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,196, 22, 0, 0,
|
||||||
/* 0x0bb0 */ 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,212, 22, 0, 0,
|
/* 0x0bb0 */ 112, 3, 0, 0, 5, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0,
|
||||||
/* 0x0bc0 */ 112, 3, 0, 0, 5, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0,
|
/* 0x0bc0 */ 8, 0, 0, 0, 37, 0, 0, 0, 8, 0, 0, 0, 3, 0, 0, 0,
|
||||||
/* 0x0bd0 */ 8, 0, 0, 0, 37, 0, 0, 0, 8, 0, 0, 0, 3, 0, 0, 0,
|
/* 0x0bd0 */ 0, 0, 0, 0, 32, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0be0 */ 0, 0, 0, 0, 48, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0be0 */ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0,
|
||||||
/* 0x0bf0 */ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0,
|
/* 0x0bf0 */ 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 11, 0, 0,
|
||||||
/* 0x0c00 */ 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 11, 0, 0,
|
/* 0x0c00 */ 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
|
||||||
/* 0x0c10 */ 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
|
/* 0x0c10 */ 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0c20 */ 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0c20 */ 0, 0, 0, 0,100, 12, 0, 0,208, 6, 0, 0, 6, 0, 0, 0,
|
||||||
/* 0x0c30 */ 0, 0, 0, 0,116, 12, 0, 0,208, 6, 0, 0, 6, 0, 0, 0,
|
/* 0x0c30 */ 88, 0, 0, 0, 4, 0, 0, 0, 16, 0, 0, 0, 9, 0, 0, 0,
|
||||||
/* 0x0c40 */ 88, 0, 0, 0, 4, 0, 0, 0, 16, 0, 0, 0, 9, 0, 0, 0,
|
/* 0x0c40 */ 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 19, 0, 0,
|
||||||
/* 0x0c50 */ 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 19, 0, 0,
|
/* 0x0c50 */ 141, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
|
||||||
/* 0x0c60 */ 141, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
|
/* 0x0c60 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0c70 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0c70 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0c80 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0c80 */ 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0c90 */ 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0c90 */ 3, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0ca0 */ 3, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0ca0 */ 4, 0,241,255, 30, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0cb0 */ 4, 0,241,255, 30, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0cb0 */ 0, 0,241,255, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0cc0 */ 0, 0,241,255, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0cc0 */ 2, 0, 1, 0, 38, 0, 0, 0, 0, 0,144, 0, 0, 0, 0, 0,
|
||||||
/* 0x0cd0 */ 2, 0, 1, 0, 38, 0, 0, 0, 0, 0,144, 0, 0, 0, 0, 0,
|
/* 0x0cd0 */ 0, 0,241,255, 56, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0ce0 */ 0, 0,241,255, 56, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0ce0 */ 0, 0,241,255, 70, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0cf0 */ 0, 0,241,255, 70, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0cf0 */ 0, 0,241,255, 77, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0d00 */ 0, 0,241,255, 77, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0d00 */ 0, 0,241,255, 85, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0d10 */ 0, 0,241,255, 85, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0d10 */ 0, 0,241,255, 99, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0d20 */ 0, 0,241,255, 99, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0d20 */ 0, 0,241,255,107, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0d30 */ 0, 0,241,255,107, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0d30 */ 0, 0,241,255,115, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0d40 */ 0, 0,241,255,115, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0d40 */ 0, 0,241,255,125, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0d50 */ 0, 0,241,255,125, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0d50 */ 0, 0,241,255,135, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0d60 */ 0, 0,241,255,135, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0d60 */ 0, 0,241,255,145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0d70 */ 0, 0,241,255,145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0d70 */ 0, 0,241,255,152, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0d80 */ 0, 0,241,255,152, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0d80 */ 0, 0,241,255,159, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0d90 */ 0, 0,241,255,159, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0d90 */ 0, 0,241,255,168, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0da0 */ 0, 0,241,255,168, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0da0 */ 0, 0,241,255,182, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0db0 */ 0, 0,241,255,182, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0db0 */ 0, 0,241,255,194, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0dc0 */ 0, 0,241,255,194, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0dc0 */ 0, 0,241,255,204, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0dd0 */ 0, 0,241,255,204, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0dd0 */ 0, 0,241,255,214, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0de0 */ 0, 0,241,255,214, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0de0 */ 0, 0,241,255,223, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0df0 */ 0, 0,241,255,223, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0df0 */ 0, 0,241,255,234, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0e00 */ 0, 0,241,255,234, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0,
|
/* 0x0e00 */ 0, 0,241,255,244, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0e10 */ 0, 0,241,255,244, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0,
|
/* 0x0e10 */ 0, 0,241,255,252, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0e20 */ 0, 0,241,255,252, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0,
|
/* 0x0e20 */ 0, 0,241,255, 5, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0e30 */ 0, 0,241,255, 5, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0,
|
/* 0x0e30 */ 0, 0,241,255, 20, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0e40 */ 0, 0,241,255, 20, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0,
|
/* 0x0e40 */ 0, 0,241,255, 35, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0e50 */ 0, 0,241,255, 35, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0e50 */ 0, 0, 1, 0, 45, 1, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0e60 */ 0, 0, 1, 0, 45, 1, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0e60 */ 0, 0,241,255, 51, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0e70 */ 0, 0,241,255, 51, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0e70 */ 0, 0, 1, 0, 62, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0e80 */ 0, 0, 1, 0, 62, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0e80 */ 0, 0,241,255, 69, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0e90 */ 0, 0,241,255, 69, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0e90 */ 0, 0,241,255, 76, 1, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0ea0 */ 0, 0,241,255, 76, 1, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0ea0 */ 0, 0,241,255, 86, 1, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0eb0 */ 0, 0,241,255, 86, 1, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0eb0 */ 0, 0,241,255, 91, 1, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0ec0 */ 0, 0,241,255, 91, 1, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0ec0 */ 0, 0,241,255, 98, 1, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0ed0 */ 0, 0,241,255, 98, 1, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0ed0 */ 0, 0,241,255,105, 1, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0ee0 */ 0, 0,241,255,105, 1, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0ee0 */ 0, 0,241,255,113, 1, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0ef0 */ 0, 0,241,255,113, 1, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0ef0 */ 0, 0,241,255,122, 1, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0f00 */ 0, 0,241,255,122, 1, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0f00 */ 0, 0,241,255,130, 1, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0f10 */ 0, 0,241,255,130, 1, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0f10 */ 0, 0,241,255,135, 1, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0f20 */ 0, 0,241,255,135, 1, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0f20 */ 0, 0,241,255,140, 1, 0, 0,132, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0f30 */ 0, 0,241,255,140, 1, 0, 0,132, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0f30 */ 0, 0, 1, 0,148, 1, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0f40 */ 0, 0, 1, 0,148, 1, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0f40 */ 0, 0,241,255,156, 1, 0, 0,212, 1, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0f50 */ 0, 0,241,255,156, 1, 0, 0,212, 1, 0, 0, 0, 0, 0, 0,
|
/* 0x0f50 */ 0, 0, 1, 0,167, 1, 0, 0,120, 1, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0f60 */ 0, 0, 1, 0,167, 1, 0, 0,120, 1, 0, 0, 0, 0, 0, 0,
|
/* 0x0f60 */ 0, 0, 1, 0,178, 1, 0, 0,160, 1, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0f70 */ 0, 0, 1, 0,178, 1, 0, 0,160, 1, 0, 0, 0, 0, 0, 0,
|
/* 0x0f70 */ 0, 0, 1, 0,184, 1, 0, 0,196, 1, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0f80 */ 0, 0, 1, 0,184, 1, 0, 0,196, 1, 0, 0, 0, 0, 0, 0,
|
/* 0x0f80 */ 0, 0, 1, 0,198, 1, 0, 0,210, 1, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0f90 */ 0, 0, 1, 0,198, 1, 0, 0,210, 1, 0, 0, 0, 0, 0, 0,
|
/* 0x0f90 */ 0, 0, 1, 0,214, 1, 0, 0,236, 1, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0fa0 */ 0, 0, 1, 0,214, 1, 0, 0,236, 1, 0, 0, 0, 0, 0, 0,
|
/* 0x0fa0 */ 0, 0, 1, 0,222, 1, 0, 0, 20, 2, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0fb0 */ 0, 0, 1, 0,222, 1, 0, 0, 20, 2, 0, 0, 0, 0, 0, 0,
|
/* 0x0fb0 */ 0, 0, 1, 0,230, 1, 0, 0, 1, 0,144, 0, 0, 0, 0, 0,
|
||||||
/* 0x0fc0 */ 0, 0, 1, 0,230, 1, 0, 0, 1, 0,144, 0, 0, 0, 0, 0,
|
/* 0x0fc0 */ 0, 0,241,255,240, 1, 0, 0, 3, 0,144, 0, 0, 0, 0, 0,
|
||||||
/* 0x0fd0 */ 0, 0,241,255,240, 1, 0, 0, 3, 0,144, 0, 0, 0, 0, 0,
|
/* 0x0fd0 */ 0, 0,241,255,250, 1, 0, 0, 4, 0,144, 0, 0, 0, 0, 0,
|
||||||
/* 0x0fe0 */ 0, 0,241,255,250, 1, 0, 0, 4, 0,144, 0, 0, 0, 0, 0,
|
/* 0x0fe0 */ 0, 0,241,255, 5, 2, 0, 0, 5, 0,144, 0, 0, 0, 0, 0,
|
||||||
/* 0x0ff0 */ 0, 0,241,255, 5, 2, 0, 0, 5, 0,144, 0, 0, 0, 0, 0,
|
/* 0x0ff0 */ 0, 0,241,255, 15, 2, 0, 0, 6, 0,144, 0, 0, 0, 0, 0,
|
||||||
/* 0x1000 */ 0, 0,241,255, 15, 2, 0, 0, 6, 0,144, 0, 0, 0, 0, 0,
|
/* 0x1000 */ 0, 0,241,255, 26, 2, 0, 0, 10, 0,144, 0, 0, 0, 0, 0,
|
||||||
/* 0x1010 */ 0, 0,241,255, 26, 2, 0, 0, 10, 0,144, 0, 0, 0, 0, 0,
|
/* 0x1010 */ 0, 0,241,255, 38, 2, 0, 0, 20, 0,144, 0, 0, 0, 0, 0,
|
||||||
/* 0x1020 */ 0, 0,241,255, 38, 2, 0, 0, 20, 0,144, 0, 0, 0, 0, 0,
|
/* 0x1020 */ 0, 0,241,255, 50, 2, 0, 0, 45, 0,144, 0, 0, 0, 0, 0,
|
||||||
/* 0x1030 */ 0, 0,241,255, 50, 2, 0, 0, 45, 0,144, 0, 0, 0, 0, 0,
|
/* 0x1030 */ 0, 0,241,255, 59, 2, 0, 0, 85, 0,144, 0, 0, 0, 0, 0,
|
||||||
/* 0x1040 */ 0, 0,241,255, 59, 2, 0, 0, 85, 0,144, 0, 0, 0, 0, 0,
|
/* 0x1040 */ 0, 0,241,255, 73, 2, 0, 0,192, 0,144, 0, 0, 0, 0, 0,
|
||||||
/* 0x1050 */ 0, 0,241,255, 73, 2, 0, 0,192, 0,144, 0, 0, 0, 0, 0,
|
/* 0x1050 */ 0, 0,241,255, 84, 2, 0, 0,125, 0,144, 0, 0, 0, 0, 0,
|
||||||
/* 0x1060 */ 0, 0,241,255, 84, 2, 0, 0,125, 0,144, 0, 0, 0, 0, 0,
|
/* 0x1060 */ 0, 0,241,255, 98, 2, 0, 0, 91, 0,144, 0, 0, 0, 0, 0,
|
||||||
/* 0x1070 */ 0, 0,241,255, 98, 2, 0, 0, 91, 0,144, 0, 0, 0, 0, 0,
|
/* 0x1070 */ 0, 0,241,255,110, 2, 0, 0, 0, 0,159, 0, 0, 0, 0, 0,
|
||||||
/* 0x1080 */ 0, 0,241,255,110, 2, 0, 0, 0, 0,159, 0, 0, 0, 0, 0,
|
/* 0x1080 */ 0, 0,241,255,124, 2, 0, 0, 2, 0,159, 0, 0, 0, 0, 0,
|
||||||
/* 0x1090 */ 0, 0,241,255,124, 2, 0, 0, 2, 0,159, 0, 0, 0, 0, 0,
|
/* 0x1090 */ 0, 0,241,255,144, 2, 0, 0, 32, 2, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x10a0 */ 0, 0,241,255,144, 2, 0, 0, 32, 2, 0, 0, 0, 0, 0, 0,
|
/* 0x10a0 */ 1, 0, 1, 0, 35, 0, 0, 0, 36, 2, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x10b0 */ 1, 0, 1, 0, 35, 0, 0, 0, 36, 2, 0, 0, 0, 0, 0, 0,
|
/* 0x10b0 */ 2, 0, 1, 0,147, 2, 0, 0,180, 2, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x10c0 */ 2, 0, 1, 0,147, 2, 0, 0,180, 2, 0, 0, 0, 0, 0, 0,
|
/* 0x10c0 */ 0, 0, 1, 0,155, 2, 0, 0,156, 2, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x10d0 */ 0, 0, 1, 0,155, 2, 0, 0,156, 2, 0, 0, 0, 0, 0, 0,
|
/* 0x10d0 */ 0, 0, 1, 0,144, 2, 0, 0,180, 2, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x10e0 */ 0, 0, 1, 0,144, 2, 0, 0,180, 2, 0, 0, 0, 0, 0, 0,
|
/* 0x10e0 */ 1, 0, 1, 0, 35, 0, 0, 0,184, 2, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x10f0 */ 1, 0, 1, 0, 35, 0, 0, 0,184, 2, 0, 0, 0, 0, 0, 0,
|
/* 0x10f0 */ 2, 0, 1, 0,163, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x1100 */ 2, 0, 1, 0,163, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x1100 */ 4, 0,241,255, 35, 0, 0, 0, 72, 3, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x1110 */ 4, 0,241,255, 35, 0, 0, 0, 72, 3, 0, 0, 0, 0, 0, 0,
|
/* 0x1110 */ 2, 0, 1, 0,144, 2, 0, 0, 80, 3, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x1120 */ 2, 0, 1, 0,144, 2, 0, 0, 80, 3, 0, 0, 0, 0, 0, 0,
|
/* 0x1120 */ 1, 0, 1, 0,188, 2, 0, 0, 84, 3, 0, 0,112, 0, 0, 0,
|
||||||
/* 0x1130 */ 1, 0, 1, 0,188, 2, 0, 0, 84, 3, 0, 0,112, 0, 0, 0,
|
/* 0x1130 */ 2, 0, 1, 0, 35, 0, 0, 0, 84, 3, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x1140 */ 2, 0, 1, 0, 35, 0, 0, 0, 84, 3, 0, 0, 0, 0, 0, 0,
|
/* 0x1140 */ 2, 0, 1, 0,196, 2, 0, 0,196, 3, 0, 0, 96, 0, 0, 0,
|
||||||
/* 0x1150 */ 2, 0, 1, 0,196, 2, 0, 0,196, 3, 0, 0, 96, 0, 0, 0,
|
/* 0x1150 */ 2, 0, 1, 0,202, 2, 0, 0, 36, 4, 0, 0, 72, 1, 0, 0,
|
||||||
/* 0x1160 */ 2, 0, 1, 0,202, 2, 0, 0, 36, 4, 0, 0, 72, 1, 0, 0,
|
/* 0x1160 */ 2, 0, 1, 0,144, 2, 0, 0,104, 5, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x1170 */ 2, 0, 1, 0,144, 2, 0, 0,104, 5, 0, 0, 0, 0, 0, 0,
|
/* 0x1170 */ 1, 0, 1, 0,215, 2, 0, 0,108, 5, 0, 0, 76, 4, 0, 0,
|
||||||
/* 0x1180 */ 1, 0, 1, 0,215, 2, 0, 0,108, 5, 0, 0, 92, 4, 0, 0,
|
/* 0x1180 */ 2, 0, 1, 0, 35, 0, 0, 0,108, 5, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x1190 */ 2, 0, 1, 0, 35, 0, 0, 0,108, 5, 0, 0, 0, 0, 0, 0,
|
/* 0x1190 */ 2, 0, 1, 0,144, 2, 0, 0,172, 9, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x11a0 */ 2, 0, 1, 0,144, 2, 0, 0,188, 9, 0, 0, 0, 0, 0, 0,
|
/* 0x11a0 */ 1, 0, 1, 0, 35, 0, 0, 0,184, 9, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x11b0 */ 1, 0, 1, 0, 35, 0, 0, 0,200, 9, 0, 0, 0, 0, 0, 0,
|
/* 0x11b0 */ 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x11c0 */ 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x11c0 */ 4, 0,241,255,144, 2, 0, 0, 64,128, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x11d0 */ 4, 0,241,255,144, 2, 0, 0, 64,128, 0, 0, 0, 0, 0, 0,
|
/* 0x11d0 */ 0, 0, 1, 0,144, 2, 0, 0,136,131, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x11e0 */ 0, 0, 1, 0,144, 2, 0, 0,136,131, 0, 0, 0, 0, 0, 0,
|
/* 0x11e0 */ 0, 0, 1, 0,223, 2, 0, 0, 72, 3, 0, 0, 12, 0, 0, 0,
|
||||||
/* 0x11f0 */ 0, 0, 1, 0,223, 2, 0, 0, 72, 3, 0, 0, 12, 0, 0, 0,
|
/* 0x11f0 */ 18, 0, 1, 0,237, 2, 0, 0,108, 2, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x1200 */ 18, 0, 1, 0,237, 2, 0, 0,108, 2, 0, 0, 0, 0, 0, 0,
|
/* 0x1200 */ 16, 0, 1, 0,244, 2, 0, 0,204, 2, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x1210 */ 16, 0, 1, 0,244, 2, 0, 0,204, 2, 0, 0, 0, 0, 0, 0,
|
/* 0x1210 */ 16, 0, 1, 0, 3, 3, 0, 0, 84, 2, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x1220 */ 16, 0, 1, 0, 3, 3, 0, 0, 84, 2, 0, 0, 0, 0, 0, 0,
|
/* 0x1220 */ 16, 0, 1, 0, 10, 3, 0, 0,100, 2, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x1230 */ 16, 0, 1, 0, 10, 3, 0, 0,100, 2, 0, 0, 0, 0, 0, 0,
|
/* 0x1230 */ 16, 0, 1, 0, 19, 3, 0, 0,236, 2, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x1240 */ 16, 0, 1, 0, 19, 3, 0, 0,236, 2, 0, 0, 0, 0, 0, 0,
|
/* 0x1240 */ 16, 0, 1, 0, 29, 3, 0, 0,140, 2, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x1250 */ 16, 0, 1, 0, 29, 3, 0, 0,140, 2, 0, 0, 0, 0, 0, 0,
|
/* 0x1250 */ 16, 0, 1, 0, 34, 3, 0, 0,192, 2, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x1260 */ 16, 0, 1, 0, 34, 3, 0, 0,192, 2, 0, 0, 0, 0, 0, 0,
|
/* 0x1260 */ 16, 0, 1, 0, 48, 3, 0, 0,212, 2, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x1270 */ 16, 0, 1, 0, 48, 3, 0, 0,212, 2, 0, 0, 0, 0, 0, 0,
|
/* 0x1270 */ 16, 0, 1, 0, 62, 3, 0, 0, 52, 2, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x1280 */ 16, 0, 1, 0, 62, 3, 0, 0, 52, 2, 0, 0, 0, 0, 0, 0,
|
/* 0x1280 */ 16, 0, 1, 0, 68, 3, 0, 0, 44, 2, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x1290 */ 16, 0, 1, 0, 68, 3, 0, 0, 44, 2, 0, 0, 0, 0, 0, 0,
|
/* 0x1290 */ 16, 0, 1, 0, 73, 3, 0, 0, 76, 2, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x12a0 */ 16, 0, 1, 0, 73, 3, 0, 0, 76, 2, 0, 0, 0, 0, 0, 0,
|
/* 0x12a0 */ 16, 0, 1, 0, 80, 3, 0, 0, 32, 2, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x12b0 */ 16, 0, 1, 0, 80, 3, 0, 0, 32, 2, 0, 0, 0, 0, 0, 0,
|
/* 0x12b0 */ 16, 0, 1, 0, 88, 3, 0, 0,116, 2, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x12c0 */ 16, 0, 1, 0, 88, 3, 0, 0,116, 2, 0, 0, 0, 0, 0, 0,
|
/* 0x12c0 */ 16, 0, 1, 0, 97, 3, 0, 0, 40, 2, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x12d0 */ 16, 0, 1, 0, 97, 3, 0, 0, 40, 2, 0, 0, 0, 0, 0, 0,
|
/* 0x12d0 */ 16, 0, 1, 0,102, 3, 0, 0,184, 9, 0, 0, 52, 1, 0, 0,
|
||||||
/* 0x12e0 */ 16, 0, 1, 0,102, 3, 0, 0,200, 9, 0, 0, 52, 1, 0, 0,
|
/* 0x12e0 */ 18, 0, 1, 0,111, 3, 0, 0, 92, 2, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x12f0 */ 18, 0, 1, 0,111, 3, 0, 0, 92, 2, 0, 0, 0, 0, 0, 0,
|
/* 0x12f0 */ 16, 0, 1, 0,115, 3, 0, 0, 60, 2, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x1300 */ 16, 0, 1, 0,115, 3, 0, 0, 60, 2, 0, 0, 0, 0, 0, 0,
|
/* 0x1300 */ 16, 0, 1, 0,120, 3, 0, 0,236, 2, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x1310 */ 16, 0, 1, 0,120, 3, 0, 0,236, 2, 0, 0, 0, 0, 0, 0,
|
/* 0x1310 */ 16, 0, 1, 0,126, 3, 0, 0,116, 2, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x1320 */ 16, 0, 1, 0,126, 3, 0, 0,116, 2, 0, 0, 0, 0, 0, 0,
|
/* 0x1320 */ 16, 0, 1, 0,135, 3, 0, 0, 68, 2, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x1330 */ 16, 0, 1, 0,135, 3, 0, 0, 68, 2, 0, 0, 0, 0, 0, 0,
|
/* 0x1330 */ 16, 0, 1, 0, 0,115,114, 99, 47, 97,114,109, 46,118, 52, 97,
|
||||||
/* 0x1340 */ 16, 0, 1, 0, 0,115,114, 99, 47, 97,114,109, 46,118, 52, 97,
|
/* 0x1340 */ 45,108,105,110,117,120, 46,101,108,102, 45,102,111,108,100, 46,
|
||||||
/* 0x1350 */ 45,108,105,110,117,120, 46,101,108,102, 45,102,111,108,100, 46,
|
/* 0x1350 */ 83, 0, 78, 66, 80, 87, 0, 36, 97, 0, 95, 95, 78, 82, 95, 83,
|
||||||
/* 0x1360 */ 83, 0, 78, 66, 80, 87, 0, 36, 97, 0, 95, 95, 78, 82, 95, 83,
|
/* 0x1360 */ 89, 83, 67, 65, 76, 76, 95, 66, 65, 83, 69, 0,115,122, 95, 69,
|
||||||
/* 0x1370 */ 89, 83, 67, 65, 76, 76, 95, 66, 65, 83, 69, 0,115,122, 95, 69,
|
/* 0x1370 */ 108,102, 51, 50, 95, 69,104,100,114, 0,101, 95,116,121,112,101,
|
||||||
/* 0x1380 */ 108,102, 51, 50, 95, 69,104,100,114, 0,101, 95,116,121,112,101,
|
/* 0x1380 */ 0, 69, 84, 95, 69, 88, 69, 67, 0,115,122, 95, 69,108,102, 51,
|
||||||
/* 0x1390 */ 0, 69, 84, 95, 69, 88, 69, 67, 0,115,122, 95, 69,108,102, 51,
|
/* 0x1390 */ 50, 95, 80,104,100,114, 0,112, 95,118, 97,100,100,114, 0,112,
|
||||||
/* 0x13a0 */ 50, 95, 80,104,100,114, 0,112, 95,118, 97,100,100,114, 0,112,
|
/* 0x13a0 */ 95,109,101,109,115,122, 0,115,122, 95,108, 95,105,110,102,111,
|
||||||
/* 0x13b0 */ 95,109,101,109,115,122, 0,115,122, 95,108, 95,105,110,102,111,
|
/* 0x13b0 */ 0,115,122, 95,112, 95,105,110,102,111, 0,115,122, 95, 98, 95,
|
||||||
/* 0x13c0 */ 0,115,122, 95,112, 95,105,110,102,111, 0,115,122, 95, 98, 95,
|
/* 0x13c0 */ 105,110,102,111, 0,115,122, 95,117,110, 99, 0,115,122, 95, 99,
|
||||||
/* 0x13d0 */ 105,110,102,111, 0,115,122, 95,117,110, 99, 0,115,122, 95, 99,
|
/* 0x13d0 */ 112,114, 0, 98, 95,109,101,116,104,111,100, 0, 77, 65, 80, 95,
|
||||||
/* 0x13e0 */ 112,114, 0, 98, 95,109,101,116,104,111,100, 0, 77, 65, 80, 95,
|
/* 0x13e0 */ 65, 78, 79, 78, 89, 77, 79, 85, 83, 0, 77, 65, 80, 95, 80, 82,
|
||||||
/* 0x13f0 */ 65, 78, 79, 78, 89, 77, 79, 85, 83, 0, 77, 65, 80, 95, 80, 82,
|
/* 0x13f0 */ 73, 86, 65, 84, 69, 0, 77, 65, 80, 95, 70, 73, 88, 69, 68, 0,
|
||||||
/* 0x1400 */ 73, 86, 65, 84, 69, 0, 77, 65, 80, 95, 70, 73, 88, 69, 68, 0,
|
/* 0x1400 */ 80, 82, 79, 84, 95, 82, 69, 65, 68, 0, 79, 95, 82, 68, 79, 78,
|
||||||
/* 0x1410 */ 80, 82, 79, 84, 95, 82, 69, 65, 68, 0, 79, 95, 82, 68, 79, 78,
|
/* 0x1410 */ 76, 89, 0, 80, 65, 71, 69, 95, 83, 72, 73, 70, 84, 0, 80, 65,
|
||||||
/* 0x1420 */ 76, 89, 0, 80, 65, 71, 69, 95, 83, 72, 73, 70, 84, 0, 80, 65,
|
/* 0x1420 */ 71, 69, 95, 83, 73, 90, 69, 0, 80, 65, 84, 72, 77, 65, 88, 0,
|
||||||
/* 0x1430 */ 71, 69, 95, 83, 73, 90, 69, 0, 80, 65, 84, 72, 77, 65, 88, 0,
|
/* 0x1430 */ 80, 65, 84, 72, 95, 77, 65, 88, 0, 77, 65, 88, 95, 69, 76, 70,
|
||||||
/* 0x1440 */ 80, 65, 84, 72, 95, 77, 65, 88, 0, 77, 65, 88, 95, 69, 76, 70,
|
/* 0x1440 */ 95, 72, 68, 82, 95, 51, 50, 0, 77, 65, 88, 95, 69, 76, 70, 95,
|
||||||
/* 0x1450 */ 95, 72, 68, 82, 95, 51, 50, 0, 77, 65, 88, 95, 69, 76, 70, 95,
|
/* 0x1450 */ 72, 68, 82, 95, 54, 52, 0,109,102,108,103, 95,100, 97,116, 97,
|
||||||
/* 0x1460 */ 72, 68, 82, 95, 54, 52, 0,109,102,108,103, 95,100, 97,116, 97,
|
/* 0x1460 */ 0, 83, 80, 95,102,100, 0,102,111,108,100, 95, 98,101,103,105,
|
||||||
/* 0x1470 */ 0, 83, 80, 95,102,100, 0,102,111,108,100, 95, 98,101,103,105,
|
/* 0x1470 */ 110, 0, 70, 95, 76, 69, 78, 88, 0, 70, 95, 65, 68, 82, 88, 0,
|
||||||
/* 0x1480 */ 110, 0, 70, 95, 76, 69, 78, 88, 0, 70, 95, 65, 68, 82, 88, 0,
|
/* 0x1480 */ 70, 95,101,108,102, 97,100,100,114, 0, 70, 95,102,100, 0, 70,
|
||||||
/* 0x1490 */ 70, 95,101,108,102, 97,100,100,114, 0, 70, 95,102,100, 0, 70,
|
/* 0x1490 */ 95, 65, 68, 82, 85, 0, 70, 95, 76, 69, 78, 85, 0, 70, 95,102,
|
||||||
/* 0x14a0 */ 95, 65, 68, 82, 85, 0, 70, 95, 76, 69, 78, 85, 0, 70, 95,102,
|
/* 0x14a0 */ 95,101,120,112, 0, 70, 95,101, 95, 97,117,120,118, 0, 70, 95,
|
||||||
/* 0x14b0 */ 95,101,120,112, 0, 70, 95,101, 95, 97,117,120,118, 0, 70, 95,
|
/* 0x14b0 */ 101,110,116,114,121, 0, 70, 95,114, 48, 0, 70, 95,114, 49, 0,
|
||||||
/* 0x14c0 */ 101,110,116,114,121, 0, 70, 95,114, 48, 0, 70, 95,114, 49, 0,
|
/* 0x14c0 */ 108,105,110,107, 95,111,107, 0, 70, 95,100,101,108,116, 97, 0,
|
||||||
/* 0x14d0 */ 108,105,110,107, 95,111,107, 0, 70, 95,100,101,108,116, 97, 0,
|
/* 0x14d0 */ 102, 95,117,110,102,105,108,116,101,114, 0,110,111, 95,109, 97,
|
||||||
/* 0x14e0 */ 102, 95,117,110,102,105,108,116,101,114, 0,110,111, 95,109, 97,
|
/* 0x14e0 */ 112, 95,112,115,101, 0,115,119,101,101,112, 0,112,114,111, 99,
|
||||||
/* 0x14f0 */ 112, 95,112,115,101, 0,115,119,101,101,112, 0,112,114,111, 99,
|
/* 0x14f0 */ 95,115,101,108,102, 95,101,120,101, 0,112,114,111, 99, 95,115,
|
||||||
/* 0x1500 */ 95,115,101,108,102, 95,101,120,101, 0,112,114,111, 99, 95,115,
|
/* 0x1500 */ 101,108,102, 95, 97,108,105,103,110, 0,116,111,112, 95,117,110,
|
||||||
/* 0x1510 */ 101,108,102, 95, 97,108,105,103,110, 0,116,111,112, 95,117,110,
|
/* 0x1510 */ 102, 0,116,115,116, 95,117,110,102, 0, 95, 95, 78, 82, 95,101,
|
||||||
/* 0x1520 */ 102, 0,116,115,116, 95,117,110,102, 0, 95, 95, 78, 82, 95,101,
|
/* 0x1520 */ 120,105,116, 0, 95, 95, 78, 82, 95,114,101, 97,100, 0, 95, 95,
|
||||||
/* 0x1530 */ 120,105,116, 0, 95, 95, 78, 82, 95,114,101, 97,100, 0, 95, 95,
|
/* 0x1530 */ 78, 82, 95,119,114,105,116,101, 0, 95, 95, 78, 82, 95,111,112,
|
||||||
/* 0x1540 */ 78, 82, 95,119,114,105,116,101, 0, 95, 95, 78, 82, 95,111,112,
|
/* 0x1540 */ 101,110, 0, 95, 95, 78, 82, 95, 99,108,111,115,101, 0, 95, 95,
|
||||||
/* 0x1550 */ 101,110, 0, 95, 95, 78, 82, 95, 99,108,111,115,101, 0, 95, 95,
|
/* 0x1550 */ 78, 82, 95,117,110,108,105,110,107, 0, 95, 95, 78, 82, 95,103,
|
||||||
/* 0x1560 */ 78, 82, 95,117,110,108,105,110,107, 0, 95, 95, 78, 82, 95,103,
|
/* 0x1560 */ 101,116,112,105,100, 0, 95, 95, 78, 82, 95, 98,114,107, 0, 95,
|
||||||
/* 0x1570 */ 101,116,112,105,100, 0, 95, 95, 78, 82, 95, 98,114,107, 0, 95,
|
/* 0x1570 */ 95, 78, 82, 95,114,101, 97,100,108,105,110,107, 0, 95, 95, 78,
|
||||||
/* 0x1580 */ 95, 78, 82, 95,114,101, 97,100,108,105,110,107, 0, 95, 95, 78,
|
/* 0x1580 */ 82, 95,109,109, 97,112, 50, 0, 95, 95, 78, 82, 95,109,112,114,
|
||||||
/* 0x1590 */ 82, 95,109,109, 97,112, 50, 0, 95, 95, 78, 82, 95,109,112,114,
|
/* 0x1590 */ 111,116,101, 99,116, 0, 95, 95, 78, 82, 95,109,117,110,109, 97,
|
||||||
/* 0x15a0 */ 111,116,101, 99,116, 0, 95, 95, 78, 82, 95,109,117,110,109, 97,
|
/* 0x15a0 */ 112, 0, 95, 95, 65, 82, 77, 95, 78, 82, 95, 66, 65, 83, 69, 0,
|
||||||
/* 0x15b0 */ 112, 0, 95, 95, 65, 82, 77, 95, 78, 82, 95, 66, 65, 83, 69, 0,
|
/* 0x15b0 */ 95, 95, 65, 82, 77, 95, 78, 82, 95, 99, 97, 99,104,101,102,108,
|
||||||
/* 0x15c0 */ 95, 95, 65, 82, 77, 95, 78, 82, 95, 99, 97, 99,104,101,102,108,
|
/* 0x15c0 */ 117,115,104, 0, 36,100, 0,109, 95,111,102,102, 52,107, 0,109,
|
||||||
/* 0x15d0 */ 117,115,104, 0, 36,100, 0,109, 95,111,102,102, 52,107, 0,109,
|
/* 0x15d0 */ 109, 97,112, 95,100,111, 0, 97,114,109, 46,118, 52, 97, 45,108,
|
||||||
/* 0x15e0 */ 109, 97,112, 95,100,111, 0, 97,114,109, 46,118, 52, 97, 45,108,
|
/* 0x15e0 */ 105,110,117,120, 46,101,108,102, 45,109, 97,105,110, 46, 99, 0,
|
||||||
/* 0x15f0 */ 105,110,117,120, 46,101,108,102, 45,109, 97,105,110, 46, 99, 0,
|
/* 0x15f0 */ 97,117,120,118, 95,117,112, 0,120,114,101, 97,100, 0,117,110,
|
||||||
/* 0x1600 */ 97,117,120,118, 95,117,112, 0,120,114,101, 97,100, 0,117,110,
|
/* 0x1600 */ 112, 97, 99,107, 69,120,116,101,110,116, 0,100,111, 95,120,109,
|
||||||
/* 0x1610 */ 112, 97, 99,107, 69,120,116,101,110,116, 0,100,111, 95,120,109,
|
/* 0x1610 */ 97,112, 0,103,101,116, 95,112, 97,103,101, 95,109, 97,115,107,
|
||||||
/* 0x1620 */ 97,112, 0,103,101,116, 95,112, 97,103,101, 95,109, 97,115,107,
|
/* 0x1620 */ 0,109,117,110,109, 97,112, 0,103,101,116, 95,115,121,115, 95,
|
||||||
/* 0x1630 */ 0,109,117,110,109, 97,112, 0,103,101,116, 95,115,121,115, 95,
|
/* 0x1630 */ 109,117,110,109, 97,112, 0,103,101,116,112,105,100, 0,114,101,
|
||||||
/* 0x1640 */ 109,117,110,109, 97,112, 0,103,101,116,112,105,100, 0,114,101,
|
/* 0x1640 */ 97,100,108,105,110,107, 0, 95, 95,117,100,105,118,115,105, 51,
|
||||||
/* 0x1650 */ 97,100,108,105,110,107, 0, 95, 95,117,100,105,118,115,105, 51,
|
/* 0x1650 */ 0,109,109, 97,112, 0, 95, 95, 99,108,101, 97,114, 95, 99, 97,
|
||||||
/* 0x1660 */ 0,109,109, 97,112, 0, 95, 95, 99,108,101, 97,114, 95, 99, 97,
|
/* 0x1660 */ 99,104,101, 0,109,109, 97,112, 95,112,114,105,118, 97,110,111,
|
||||||
/* 0x1670 */ 99,104,101, 0,109,109, 97,112, 95,112,114,105,118, 97,110,111,
|
/* 0x1670 */ 110, 0,119,114,105,116,101, 0,114,101, 97,100, 0,117,110,108,
|
||||||
/* 0x1680 */ 110, 0,119,114,105,116,101, 0,114,101, 97,100, 0,117,110,108,
|
/* 0x1680 */ 105,110,107, 0,109,121, 95, 98,107,112,116, 0, 80,112,114,111,
|
||||||
/* 0x1690 */ 105,110,107, 0,109,121, 95, 98,107,112,116, 0, 80,112,114,111,
|
/* 0x1690 */ 116,101, 99,116, 0,101,120,105,116, 0,117,112,120, 95,109, 97,
|
||||||
/* 0x16a0 */ 116,101, 99,116, 0,101,120,105,116, 0,117,112,120, 95,109, 97,
|
/* 0x16a0 */ 105,110, 0, 98,114,107, 0,111,112,101,110, 0,100,105,118, 49,
|
||||||
/* 0x16b0 */ 105,110, 0, 98,114,107, 0,111,112,101,110, 0,100,105,118, 49,
|
/* 0x16b0 */ 48, 0,109,112,114,111,116,101, 99,116, 0, 99,108,111,115,101,
|
||||||
/* 0x16c0 */ 48, 0,109,112,114,111,116,101, 99,116, 0, 99,108,111,115,101,
|
/* 0x16c0 */ 0, 0, 0, 0, 44, 0, 0, 0, 1, 1, 0, 0, 68, 0, 0, 0,
|
||||||
/* 0x16d0 */ 0, 0, 0, 0, 44, 0, 0, 0, 1, 1, 0, 0, 68, 0, 0, 0,
|
/* 0x16d0 */ 1, 1, 0, 0, 88, 0, 0, 0, 1, 1, 0, 0,116, 0, 0, 0,
|
||||||
/* 0x16e0 */ 1, 1, 0, 0, 88, 0, 0, 0, 1, 1, 0, 0,116, 0, 0, 0,
|
/* 0x16e0 */ 1, 92, 0, 0,160, 0, 0, 0, 1, 1, 0, 0,248, 0, 0, 0,
|
||||||
/* 0x16f0 */ 1, 92, 0, 0,160, 0, 0, 0, 1, 1, 0, 0,248, 0, 0, 0,
|
/* 0x16f0 */ 1, 1, 0, 0, 36, 1, 0, 0, 1,103, 0, 0, 60, 1, 0, 0,
|
||||||
/* 0x1700 */ 1, 1, 0, 0, 36, 1, 0, 0, 1,103, 0, 0, 60, 1, 0, 0,
|
/* 0x1700 */ 1,104, 0, 0, 68, 1, 0, 0, 1, 89, 0, 0, 80, 1, 0, 0,
|
||||||
/* 0x1710 */ 1,104, 0, 0, 68, 1, 0, 0, 1, 89, 0, 0, 80, 1, 0, 0,
|
/* 0x1710 */ 1, 1, 0, 0,108, 1, 0, 0, 1, 94, 0, 0,116, 1, 0, 0,
|
||||||
/* 0x1720 */ 1, 1, 0, 0,108, 1, 0, 0, 1, 94, 0, 0,116, 1, 0, 0,
|
/* 0x1720 */ 1,108, 0, 0,176, 1, 0, 0, 1, 1, 0, 0,252, 1, 0, 0,
|
||||||
/* 0x1730 */ 1,108, 0, 0,176, 1, 0, 0, 1, 1, 0, 0,252, 1, 0, 0,
|
/* 0x1730 */ 1, 1, 0, 0, 24, 2, 0, 0, 1, 1, 0, 0,232, 2, 0, 0,
|
||||||
/* 0x1740 */ 1, 1, 0, 0, 24, 2, 0, 0, 1, 1, 0, 0,232, 2, 0, 0,
|
/* 0x1740 */ 1, 1, 0, 0,128, 3, 0, 0, 1, 1, 0, 0,136, 3, 0, 0,
|
||||||
/* 0x1750 */ 1, 1, 0, 0,128, 3, 0, 0, 1, 1, 0, 0,136, 3, 0, 0,
|
/* 0x1750 */ 1, 1, 0, 0,148, 3, 0, 0, 1, 1, 0, 0,180, 3, 0, 0,
|
||||||
/* 0x1760 */ 1, 1, 0, 0,148, 3, 0, 0, 1, 1, 0, 0,180, 3, 0, 0,
|
/* 0x1760 */ 1,102, 0, 0,192, 3, 0, 0, 1, 1, 0, 0,224, 3, 0, 0,
|
||||||
/* 0x1770 */ 1,102, 0, 0,192, 3, 0, 0, 1, 1, 0, 0,224, 3, 0, 0,
|
/* 0x1770 */ 1, 1, 0, 0,232, 3, 0, 0, 1,102, 0, 0, 4, 4, 0, 0,
|
||||||
/* 0x1780 */ 1, 1, 0, 0,232, 3, 0, 0, 1,102, 0, 0, 4, 4, 0, 0,
|
/* 0x1780 */ 1, 1, 0, 0, 60, 4, 0, 0, 1, 1, 0, 0, 76, 4, 0, 0,
|
||||||
/* 0x1790 */ 1, 1, 0, 0, 60, 4, 0, 0, 1, 1, 0, 0, 76, 4, 0, 0,
|
/* 0x1790 */ 1, 1, 0, 0, 92, 4, 0, 0, 1, 1, 0, 0,104, 4, 0, 0,
|
||||||
/* 0x17a0 */ 1, 1, 0, 0, 92, 4, 0, 0, 1, 1, 0, 0,104, 4, 0, 0,
|
/* 0x17a0 */ 1, 1, 0, 0,116, 4, 0, 0, 1, 1, 0, 0,120, 4, 0, 0,
|
||||||
/* 0x17b0 */ 1, 1, 0, 0,116, 4, 0, 0, 1, 1, 0, 0,120, 4, 0, 0,
|
/* 0x17b0 */ 1, 1, 0, 0,128, 4, 0, 0, 1, 1, 0, 0,136, 4, 0, 0,
|
||||||
/* 0x17c0 */ 1, 1, 0, 0,128, 4, 0, 0, 1, 1, 0, 0,136, 4, 0, 0,
|
/* 0x17c0 */ 1,102, 0, 0,144, 4, 0, 0, 1, 1, 0, 0,156, 4, 0, 0,
|
||||||
/* 0x17d0 */ 1,102, 0, 0,144, 4, 0, 0, 1, 1, 0, 0,156, 4, 0, 0,
|
/* 0x17d0 */ 1, 1, 0, 0,164, 4, 0, 0, 1, 1, 0, 0,204, 4, 0, 0,
|
||||||
/* 0x17e0 */ 1, 1, 0, 0,164, 4, 0, 0, 1, 1, 0, 0,204, 4, 0, 0,
|
/* 0x17e0 */ 1, 1, 0, 0,220, 4, 0, 0, 1, 1, 0, 0,236, 4, 0, 0,
|
||||||
/* 0x17f0 */ 1, 1, 0, 0,220, 4, 0, 0, 1, 1, 0, 0,236, 4, 0, 0,
|
/* 0x17f0 */ 1, 1, 0, 0,244, 4, 0, 0, 1, 1, 0, 0, 0, 5, 0, 0,
|
||||||
/* 0x1800 */ 1, 1, 0, 0,244, 4, 0, 0, 1, 1, 0, 0, 0, 5, 0, 0,
|
/* 0x1800 */ 1, 1, 0, 0, 44, 5, 0, 0, 1, 1, 0, 0, 60, 5, 0, 0,
|
||||||
/* 0x1810 */ 1, 1, 0, 0, 44, 5, 0, 0, 1, 1, 0, 0, 60, 5, 0, 0,
|
/* 0x1810 */ 1, 1, 0, 0, 92, 5, 0, 0, 1, 1, 0, 0,144, 5, 0, 0,
|
||||||
/* 0x1820 */ 1, 1, 0, 0, 92, 5, 0, 0, 1, 1, 0, 0,144, 5, 0, 0,
|
/* 0x1820 */ 1, 1, 0, 0,180, 5, 0, 0, 1, 1, 0, 0,184, 5, 0, 0,
|
||||||
/* 0x1830 */ 1, 1, 0, 0,196, 5, 0, 0, 1, 89, 0, 0,200, 5, 0, 0,
|
/* 0x1830 */ 1, 1, 0, 0,224, 5, 0, 0, 1, 1, 0, 0,236, 5, 0, 0,
|
||||||
/* 0x1840 */ 1, 1, 0, 0,240, 5, 0, 0, 1, 1, 0, 0,252, 5, 0, 0,
|
/* 0x1840 */ 1, 1, 0, 0,248, 5, 0, 0, 1, 1, 0, 0, 32, 6, 0, 0,
|
||||||
/* 0x1850 */ 1, 1, 0, 0, 8, 6, 0, 0, 1, 1, 0, 0, 48, 6, 0, 0,
|
/* 0x1850 */ 1, 1, 0, 0, 76, 6, 0, 0, 1, 96, 0, 0,100, 6, 0, 0,
|
||||||
/* 0x1860 */ 1, 1, 0, 0, 92, 6, 0, 0, 1, 96, 0, 0,116, 6, 0, 0,
|
/* 0x1860 */ 1, 1, 0, 0,112, 6, 0, 0, 1, 1, 0, 0,124, 6, 0, 0,
|
||||||
/* 0x1870 */ 1, 1, 0, 0,128, 6, 0, 0, 1, 1, 0, 0,140, 6, 0, 0,
|
/* 0x1870 */ 1, 1, 0, 0,148, 6, 0, 0, 1, 1, 0, 0,152, 6, 0, 0,
|
||||||
/* 0x1880 */ 1, 1, 0, 0,164, 6, 0, 0, 1, 1, 0, 0,168, 6, 0, 0,
|
/* 0x1880 */ 1, 1, 0, 0,164, 6, 0, 0, 1, 1, 0, 0,176, 6, 0, 0,
|
||||||
/* 0x1890 */ 1, 1, 0, 0,180, 6, 0, 0, 1, 1, 0, 0,192, 6, 0, 0,
|
/* 0x1890 */ 1, 1, 0, 0,188, 6, 0, 0, 1, 1, 0, 0,200, 6, 0, 0,
|
||||||
/* 0x18a0 */ 1, 1, 0, 0,204, 6, 0, 0, 1, 1, 0, 0,216, 6, 0, 0,
|
/* 0x18a0 */ 1, 1, 0, 0,232, 6, 0, 0, 1, 1, 0, 0,248, 6, 0, 0,
|
||||||
/* 0x18b0 */ 1, 1, 0, 0,248, 6, 0, 0, 1, 1, 0, 0, 8, 7, 0, 0,
|
/* 0x18b0 */ 1, 1, 0, 0, 8, 7, 0, 0, 1, 1, 0, 0, 92, 7, 0, 0,
|
||||||
/* 0x18c0 */ 1, 1, 0, 0, 24, 7, 0, 0, 1, 1, 0, 0,108, 7, 0, 0,
|
/* 0x18c0 */ 1, 1, 0, 0,120, 7, 0, 0, 1, 96, 0, 0,128, 7, 0, 0,
|
||||||
/* 0x18d0 */ 1, 1, 0, 0,136, 7, 0, 0, 1, 96, 0, 0,144, 7, 0, 0,
|
/* 0x18d0 */ 1, 1, 0, 0,156, 7, 0, 0, 1, 1, 0, 0,160, 7, 0, 0,
|
||||||
/* 0x18e0 */ 1, 1, 0, 0,172, 7, 0, 0, 1, 1, 0, 0,176, 7, 0, 0,
|
/* 0x18e0 */ 1, 1, 0, 0,200, 7, 0, 0, 1, 94, 0, 0,208, 7, 0, 0,
|
||||||
/* 0x18f0 */ 1, 1, 0, 0,216, 7, 0, 0, 1, 94, 0, 0,224, 7, 0, 0,
|
/* 0x18f0 */ 1, 1, 0, 0,228, 7, 0, 0, 1, 1, 0, 0,236, 7, 0, 0,
|
||||||
/* 0x1900 */ 1, 1, 0, 0,244, 7, 0, 0, 1, 1, 0, 0,252, 7, 0, 0,
|
/* 0x1900 */ 1, 1, 0, 0, 4, 8, 0, 0, 1, 1, 0, 0, 16, 8, 0, 0,
|
||||||
/* 0x1910 */ 1, 1, 0, 0, 20, 8, 0, 0, 1, 1, 0, 0, 32, 8, 0, 0,
|
/* 0x1910 */ 1, 1, 0, 0, 20, 8, 0, 0, 1, 90, 0, 0, 36, 8, 0, 0,
|
||||||
/* 0x1920 */ 1, 1, 0, 0, 36, 8, 0, 0, 1, 90, 0, 0, 52, 8, 0, 0,
|
/* 0x1920 */ 1, 1, 0, 0, 48, 8, 0, 0, 1, 1, 0, 0, 68, 8, 0, 0,
|
||||||
/* 0x1930 */ 1, 1, 0, 0, 64, 8, 0, 0, 1, 1, 0, 0, 84, 8, 0, 0,
|
/* 0x1930 */ 1, 1, 0, 0,108, 8, 0, 0, 1, 1, 0, 0,144, 8, 0, 0,
|
||||||
/* 0x1940 */ 1, 1, 0, 0,124, 8, 0, 0, 1, 1, 0, 0,160, 8, 0, 0,
|
/* 0x1940 */ 1, 95, 0, 0,148, 8, 0, 0, 1, 1, 0, 0,164, 8, 0, 0,
|
||||||
/* 0x1950 */ 1, 95, 0, 0,164, 8, 0, 0, 1, 1, 0, 0,180, 8, 0, 0,
|
/* 0x1950 */ 1,101, 0, 0,172, 8, 0, 0, 1, 1, 0, 0,180, 8, 0, 0,
|
||||||
/* 0x1960 */ 1,101, 0, 0,188, 8, 0, 0, 1, 1, 0, 0,196, 8, 0, 0,
|
/* 0x1960 */ 1,102, 0, 0,204, 8, 0, 0, 1, 1, 0, 0,224, 8, 0, 0,
|
||||||
/* 0x1970 */ 1,102, 0, 0,220, 8, 0, 0, 1, 1, 0, 0,240, 8, 0, 0,
|
/* 0x1970 */ 1, 96, 0, 0,232, 8, 0, 0, 1, 1, 0, 0,236, 8, 0, 0,
|
||||||
/* 0x1980 */ 1, 96, 0, 0,248, 8, 0, 0, 1, 1, 0, 0,252, 8, 0, 0,
|
/* 0x1980 */ 1, 1, 0, 0, 12, 9, 0, 0, 1, 1, 0, 0, 80, 9, 0, 0,
|
||||||
/* 0x1990 */ 1, 1, 0, 0, 28, 9, 0, 0, 1, 1, 0, 0, 96, 9, 0, 0,
|
/* 0x1990 */ 1, 94, 0, 0, 88, 9, 0, 0, 1, 1, 0, 0,132, 9, 0, 0,
|
||||||
/* 0x19a0 */ 1, 94, 0, 0,104, 9, 0, 0, 1, 1, 0, 0,148, 9, 0, 0,
|
/* 0x19a0 */ 1, 95, 0, 0,148, 9, 0, 0, 1,101, 0, 0,164, 9, 0, 0,
|
||||||
/* 0x19b0 */ 1, 95, 0, 0,164, 9, 0, 0, 1,101, 0, 0,180, 9, 0, 0,
|
/* 0x19b0 */ 1, 1, 0, 0,168, 9, 0, 0, 1, 1, 0, 0,232, 9, 0, 0,
|
||||||
/* 0x19c0 */ 1, 1, 0, 0,184, 9, 0, 0, 1, 1, 0, 0,248, 9, 0, 0,
|
/* 0x19c0 */ 1, 1, 0, 0, 32, 10, 0, 0, 1, 1, 0, 0, 52, 10, 0, 0,
|
||||||
/* 0x19d0 */ 1, 1, 0, 0, 48, 10, 0, 0, 1, 1, 0, 0, 68, 10, 0, 0,
|
/* 0x19d0 */ 1, 1, 0, 0, 68, 10, 0, 0, 1, 1, 0, 0, 80, 10, 0, 0,
|
||||||
/* 0x19e0 */ 1, 1, 0, 0, 84, 10, 0, 0, 1, 1, 0, 0, 96, 10, 0, 0,
|
/* 0x19e0 */ 1, 1, 0, 0,104, 10, 0, 0, 1,105, 0, 0,112, 10, 0, 0,
|
||||||
/* 0x19f0 */ 1, 1, 0, 0,120, 10, 0, 0, 1,105, 0, 0,128, 10, 0, 0,
|
/* 0x19f0 */ 1, 1, 0, 0,124, 10, 0, 0, 1, 98, 0, 0,132, 10, 0, 0,
|
||||||
/* 0x1a00 */ 1, 1, 0, 0,140, 10, 0, 0, 1, 98, 0, 0,148, 10, 0, 0,
|
/* 0x1a00 */ 1, 1, 0, 0,140, 10, 0, 0, 1,102, 0, 0,172, 10, 0, 0,
|
||||||
/* 0x1a10 */ 1, 1, 0, 0,156, 10, 0, 0, 1,102, 0, 0,188, 10, 0, 0,
|
/* 0x1a10 */ 1, 1, 0, 0,192, 10, 0, 0, 1, 1, 0, 0,200, 10, 0, 0,
|
||||||
/* 0x1a20 */ 1, 1, 0, 0,208, 10, 0, 0, 1, 1, 0, 0,216, 10, 0, 0,
|
/* 0x1a20 */ 1,108, 0, 0,204, 10, 0, 0, 1, 1, 0, 0,220, 10, 0, 0,
|
||||||
/* 0x1a30 */ 1,108, 0, 0,220, 10, 0, 0, 1, 1, 0, 0,236, 10, 0, 0,
|
/* 0x1a30 */ 1, 1, 0, 0
|
||||||
/* 0x1a40 */ 1, 1, 0, 0
|
|
||||||
};
|
};
|
||||||
|
|||||||
Generated
+96
-97
@@ -1,5 +1,5 @@
|
|||||||
/* arm.v5a-linux.elf-fold.h
|
/* arm.v5a-linux.elf-fold.h
|
||||||
created from arm.v5a-linux.elf-fold.bin, 3112 (0xc28) bytes
|
created from arm.v5a-linux.elf-fold.bin, 3096 (0xc18) bytes
|
||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
@@ -32,17 +32,17 @@
|
|||||||
|
|
||||||
/* clang-format off */
|
/* clang-format off */
|
||||||
|
|
||||||
#define STUB_ARM_V5A_LINUX_ELF_FOLD_SIZE 3112
|
#define STUB_ARM_V5A_LINUX_ELF_FOLD_SIZE 3096
|
||||||
#define STUB_ARM_V5A_LINUX_ELF_FOLD_ADLER32 0x00e10a4f
|
#define STUB_ARM_V5A_LINUX_ELF_FOLD_ADLER32 0x39bc0359
|
||||||
#define STUB_ARM_V5A_LINUX_ELF_FOLD_CRC32 0x40179cdb
|
#define STUB_ARM_V5A_LINUX_ELF_FOLD_CRC32 0x6a1b970d
|
||||||
|
|
||||||
unsigned char stub_arm_v5a_linux_elf_fold[3112] = {
|
unsigned char stub_arm_v5a_linux_elf_fold[3096] = {
|
||||||
/* 0x0000 */ 127, 69, 76, 70, 1, 1, 1, 97, 0, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0000 */ 127, 69, 76, 70, 1, 1, 1, 97, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0010 */ 2, 0, 40, 0, 1, 0, 0, 0,128,128, 0, 0, 52, 0, 0, 0,
|
/* 0x0010 */ 2, 0, 40, 0, 1, 0, 0, 0,128,128, 0, 0, 52, 0, 0, 0,
|
||||||
/* 0x0020 */ 0, 0, 0, 0, 2, 0, 0, 0, 52, 0, 32, 0, 2, 0, 0, 0,
|
/* 0x0020 */ 0, 0, 0, 0, 2, 0, 0, 0, 52, 0, 32, 0, 2, 0, 0, 0,
|
||||||
/* 0x0030 */ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0,
|
/* 0x0030 */ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0,
|
||||||
/* 0x0040 */ 0,128, 0, 0, 40, 12, 0, 0, 40, 12, 0, 0, 5, 0, 0, 0,
|
/* 0x0040 */ 0,128, 0, 0, 24, 12, 0, 0, 24, 12, 0, 0, 5, 0, 0, 0,
|
||||||
/* 0x0050 */ 0,128, 0, 0, 1, 0, 0, 0, 40, 12, 0, 0, 0, 0, 0, 0,
|
/* 0x0050 */ 0,128, 0, 0, 1, 0, 0, 0, 24, 12, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0060 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0060 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0070 */ 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0070 */ 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0080 */ 34, 0, 0, 0, 4, 32,160,225, 5, 48,160,225,240, 31,189,232,
|
/* 0x0080 */ 34, 0, 0, 0, 4, 32,160,225, 5, 48,160,225,240, 31,189,232,
|
||||||
@@ -63,7 +63,7 @@ unsigned char stub_arm_v5a_linux_elf_fold[3112] = {
|
|||||||
/* 0x0170 */ 13, 0, 81,225, 4, 32, 32,229,251,255,255, 26, 0,208,160,225,
|
/* 0x0170 */ 13, 0, 81,225, 4, 32, 32,229,251,255,255, 26, 0,208,160,225,
|
||||||
/* 0x0180 */ 16, 12,189,232, 10,220, 77,226, 4,144,154,229, 13,128,160,225,
|
/* 0x0180 */ 16, 12,189,232, 10,220, 77,226, 4,144,154,229, 13,128,160,225,
|
||||||
/* 0x0190 */ 0,112,154,229,184, 96,143,226, 12,144,137,226,248, 15, 45,233,
|
/* 0x0190 */ 0,112,154,229,184, 96,143,226, 12,144,137,226,248, 15, 45,233,
|
||||||
/* 0x01a0 */ 15, 0,189,232, 82, 2, 0,235, 20,208,141,226, 10,220,141,226,
|
/* 0x01a0 */ 15, 0,189,232, 78, 2, 0,235, 20,208,141,226, 10,220,141,226,
|
||||||
/* 0x01b0 */ 16, 0,141,229,104, 16,155,229, 11, 0,160,225, 91, 0, 0,235,
|
/* 0x01b0 */ 16, 0,141,229,104, 16,155,229, 11, 0,160,225, 91, 0, 0,235,
|
||||||
/* 0x01c0 */ 11, 0,160,225, 99, 0, 0,235, 4, 64,157,228, 0, 0, 84,227,
|
/* 0x01c0 */ 11, 0,160,225, 99, 0, 0,235, 4, 64,157,228, 0, 0, 84,227,
|
||||||
/* 0x01d0 */ 8, 0, 0,186, 0, 80,160,227, 48, 0, 45,233, 2, 48,160,227,
|
/* 0x01d0 */ 8, 0, 0,186, 0, 80,160,227, 48, 0, 45,233, 2, 48,160,227,
|
||||||
@@ -142,94 +142,93 @@ unsigned char stub_arm_v5a_linux_elf_fold[3112] = {
|
|||||||
/* 0x0660 */ 5, 0,160,225, 4, 16,148,229,162,255,255,235, 4, 48,157,229,
|
/* 0x0660 */ 5, 0,160,225, 4, 16,148,229,162,255,255,235, 4, 48,157,229,
|
||||||
/* 0x0670 */ 6, 0,148,232, 3, 32,130,224, 1, 16, 99,224, 6, 0,132,232,
|
/* 0x0670 */ 6, 0,148,232, 3, 32,130,224, 1, 16, 99,224, 6, 0,132,232,
|
||||||
/* 0x0680 */ 0, 48,148,229, 0, 0, 83,227,185,255,255, 26, 20,208,141,226,
|
/* 0x0680 */ 0, 48,148,229, 0, 0, 83,227,185,255,255, 26, 20,208,141,226,
|
||||||
/* 0x0690 */ 240,128,189,232, 85, 80, 88, 33,240, 79, 45,233, 1,160,160,225,
|
/* 0x0690 */ 240,128,189,232, 85, 80, 88, 33,240, 79, 45,233, 1,128,160,225,
|
||||||
/* 0x06a0 */ 28, 16,145,229, 44,208, 77,226, 0, 0, 82,227, 12, 32,141,229,
|
/* 0x06a0 */ 28, 16,145,229, 44,208, 77,226, 0, 0, 82,227, 12, 32,141,229,
|
||||||
/* 0x06b0 */ 16, 0,141,229, 8, 48,141,229, 1, 80,138,224, 13, 0, 0, 10,
|
/* 0x06b0 */ 16, 0,141,229, 8, 48,141,229, 1, 80,136,224, 9, 0, 0, 10,
|
||||||
/* 0x06c0 */ 80, 32,157,229, 0, 0,146,229,176, 49,208,225, 52, 16,128,226,
|
/* 0x06c0 */ 80, 32,157,229, 0, 0,146,229,176, 49,208,225, 2, 0, 83,227,
|
||||||
/* 0x06d0 */ 2, 0, 83,227, 40, 48,145, 21, 8, 0,145, 5, 0, 48,160, 3,
|
/* 0x06d0 */ 92, 48,144, 21, 0, 48,160, 3, 20, 48,141, 5, 0, 0, 99, 16,
|
||||||
/* 0x06e0 */ 0, 0, 99, 16, 20, 16,145,229, 20, 48,141, 5, 20, 0,141, 21,
|
/* 0x06e0 */ 38, 0, 0, 26, 38, 0, 0,234,176, 49,216,225,188, 34,216,225,
|
||||||
/* 0x06f0 */ 24,255,255,235, 38, 0, 0,234,176, 49,218,225,188, 34,218,225,
|
/* 0x06f0 */ 3, 0, 83,227, 12, 16,157,229, 16,224,160, 19, 0,224,160, 3,
|
||||||
/* 0x0700 */ 3, 0, 83,227, 12, 16,157,229, 16,224,160, 19, 0,224,160, 3,
|
/* 0x0700 */ 1,192, 66,226, 5, 0,160,225, 0, 64,224,227, 13, 0, 0,234,
|
||||||
/* 0x0710 */ 1,192, 66,226, 5, 0,160,225, 0, 64,224,227, 13, 0, 0,234,
|
/* 0x0710 */ 0, 48,144,229, 1, 0, 83,227, 8, 0, 0, 26, 20, 48,144,229,
|
||||||
/* 0x0720 */ 0, 48,144,229, 1, 0, 83,227, 8, 0, 0, 26, 20, 48,144,229,
|
/* 0x0720 */ 0, 0, 83,227, 5, 0, 0, 10, 8, 32,144,229, 2, 48,131,224,
|
||||||
/* 0x0730 */ 0, 0, 83,227, 5, 0, 0, 10, 8, 32,144,229, 2, 48,131,224,
|
/* 0x0730 */ 3, 0, 81,225, 3, 16,160, 49, 2, 0, 84,225, 2, 64,160, 33,
|
||||||
/* 0x0740 */ 3, 0, 81,225, 3, 16,160, 49, 2, 0, 84,225, 2, 64,160, 33,
|
/* 0x0740 */ 32, 0,128,226, 1,192, 76,226, 0, 0, 92,227,239,255,255,170,
|
||||||
/* 0x0750 */ 32, 0,128,226, 1,192, 76,226, 0, 0, 92,227,239,255,255,170,
|
/* 0x0750 */ 255, 78,196,227, 15, 64,196,227, 1, 16,100,224,255, 30,129,226,
|
||||||
/* 0x0760 */ 255, 78,196,227, 15, 64,196,227, 1, 16,100,224,255, 30,129,226,
|
/* 0x0760 */ 15, 16,129,226,255, 30,193,227, 15, 16,193,227, 14, 48,160,225,
|
||||||
/* 0x0770 */ 15, 16,129,226,255, 30,193,227, 15, 16,193,227, 14, 48,160,225,
|
/* 0x0770 */ 4, 0,160,225, 0, 32,160,227, 34,255,255,235, 0, 0,100,224,
|
||||||
/* 0x0780 */ 4, 0,160,225, 0, 32,160,227, 30,255,255,235, 0, 0,100,224,
|
/* 0x0780 */ 20, 0,141,229, 0,192,160,227, 32, 80,133,226, 24,192,141,229,
|
||||||
/* 0x0790 */ 20, 0,141,229, 0,192,160,227, 32, 80,133,226, 24,192,141,229,
|
/* 0x0790 */ 165, 0, 0,234, 12, 0,157,229, 0, 0, 80,227, 9, 0, 0, 10,
|
||||||
/* 0x07a0 */ 165, 0, 0,234, 12, 0,157,229, 0, 0, 80,227, 9, 0, 0, 10,
|
/* 0x07a0 */ 32, 48, 21,229, 6, 0, 83,227, 6, 0, 0, 26, 24, 32, 21,229,
|
||||||
/* 0x07b0 */ 32, 48, 21,229, 6, 0, 83,227, 6, 0, 0, 26, 24, 32, 21,229,
|
/* 0x07b0 */ 20, 48,157,229, 8, 0,157,229, 2, 32,131,224, 3, 16,160,227,
|
||||||
/* 0x07c0 */ 20, 48,157,229, 8, 0,157,229, 2, 32,131,224, 3, 16,160,227,
|
/* 0x07c0 */ 48,255,255,235,148, 0, 0,234, 32, 48, 21,229, 1, 0, 83,227,
|
||||||
/* 0x07d0 */ 44,255,255,235,148, 0, 0,234, 32, 48, 21,229, 1, 0, 83,227,
|
/* 0x07d0 */ 145, 0, 0, 26, 12, 48, 21,229, 0, 0, 83,227,142, 0, 0, 10,
|
||||||
/* 0x07e0 */ 145, 0, 0, 26, 12, 48, 21,229, 0, 0, 83,227,142, 0, 0, 10,
|
/* 0x07e0 */ 12,192,157,229, 0, 0, 92,227, 18, 0, 0, 10, 28, 48, 21,229,
|
||||||
/* 0x07f0 */ 12,192,157,229, 0, 0, 92,227, 18, 0, 0, 10, 28, 48, 21,229,
|
/* 0x07f0 */ 0, 0, 83,227, 15, 0, 0, 26, 28, 48,152,229, 24, 32, 21,229,
|
||||||
/* 0x0800 */ 0, 0, 83,227, 15, 0, 0, 26, 28, 48,154,229, 24, 32, 21,229,
|
/* 0x0800 */ 20, 0,157,229, 3, 32,130,224, 2, 32,128,224, 3, 16,160,227,
|
||||||
/* 0x0810 */ 20, 0,157,229, 3, 32,130,224, 2, 32,128,224, 3, 16,160,227,
|
/* 0x0810 */ 8, 0,157,229, 27,255,255,235, 8, 0,157,229, 5, 16,160,227,
|
||||||
/* 0x0820 */ 8, 0,157,229, 23,255,255,235, 8, 0,157,229, 5, 16,160,227,
|
/* 0x0820 */ 188, 34,216,225, 23,255,255,235, 8, 0,157,229, 4, 16,160,227,
|
||||||
/* 0x0830 */ 188, 34,218,225, 19,255,255,235, 8, 0,157,229, 4, 16,160,227,
|
/* 0x0830 */ 186, 34,216,225, 19,255,255,235, 8, 16, 21,229,148, 34,159,229,
|
||||||
/* 0x0840 */ 186, 34,218,225, 15,255,255,235, 8, 16, 21,229,148, 34,159,229,
|
/* 0x0840 */ 7, 48, 1,226, 3, 49,160,225, 50, 67,160,225, 20,192,157,229,
|
||||||
/* 0x0850 */ 7, 48, 1,226, 3, 49,160,225, 50, 67,160,225, 20,192,157,229,
|
/* 0x0850 */ 24, 48, 21,229, 16, 32, 21,229, 3,176,140,224, 11, 58,160,225,
|
||||||
/* 0x0860 */ 24, 48, 21,229, 16, 32, 21,229, 3,176,140,224, 11, 58,160,225,
|
/* 0x0860 */ 35, 58,160,225, 12, 0,157,229, 36, 32,141,229, 3,160,130,224,
|
||||||
/* 0x0870 */ 35, 58,160,225, 12, 0,157,229, 36, 32,141,229, 3,128,130,224,
|
/* 0x0870 */ 12, 32, 21,229, 0, 0, 80,227, 40,176,141,229, 7,144, 4,226,
|
||||||
/* 0x0880 */ 12, 32, 21,229, 0, 0, 80,227, 40,176,141,229, 7,144, 4,226,
|
/* 0x0880 */ 32, 32,141,229, 11, 96, 99,224, 16, 0, 0, 10, 1, 0, 17,227,
|
||||||
/* 0x0890 */ 32, 32,141,229, 11, 96, 99,224, 16, 0, 0, 10, 1, 0, 17,227,
|
/* 0x0890 */ 3, 32,160, 3, 7, 32,160, 19, 6, 0,160,225, 10, 16,160,225,
|
||||||
/* 0x08a0 */ 3, 32,160, 3, 7, 32,160, 19, 6, 0,160,225, 8, 16,160,225,
|
/* 0x08a0 */ 16, 48,160,227,215,254,255,235, 0, 0, 86,225, 74, 0, 0, 26,
|
||||||
/* 0x08b0 */ 16, 48,160,227,211,254,255,235, 0, 0, 86,225, 74, 0, 0, 26,
|
/* 0x08b0 */ 84,192,157,229, 4, 48, 20,226, 12, 48,160, 17, 12, 0,157,229,
|
||||||
/* 0x08c0 */ 84,192,157,229, 4, 48, 20,226, 12, 48,160, 17, 12, 0,157,229,
|
/* 0x08c0 */ 36, 16,141,226, 16, 32,157,229, 34,255,255,235, 11, 0, 0,234,
|
||||||
/* 0x08d0 */ 36, 16,141,226, 16, 32,157,229, 30,255,255,235, 11, 0, 0,234,
|
/* 0x08d0 */ 28,192, 21,229, 6, 0,160,225, 12,192, 99,224, 4,192,141,229,
|
||||||
/* 0x08e0 */ 28,192, 21,229, 6, 0,160,225, 12,192, 99,224, 4,192,141,229,
|
/* 0x08e0 */ 16,192,157,229, 10, 16,160,225, 9, 32,160,225, 18, 48,160,227,
|
||||||
/* 0x08f0 */ 16,192,157,229, 8, 16,160,225, 9, 32,160,225, 18, 48,160,227,
|
/* 0x08f0 */ 0,192,141,229,165,254,255,235, 0, 0, 86,225, 54, 0, 0, 26,
|
||||||
/* 0x0900 */ 0,192,141,229,161,254,255,235, 0, 0, 86,225, 54, 0, 0, 26,
|
/* 0x0900 */ 0, 48,106,226, 3,122,160,225, 2, 0, 25,227, 39,122,160,225,
|
||||||
/* 0x0910 */ 0, 48,104,226, 3,122,160,225, 2, 0, 25,227, 39,122,160,225,
|
/* 0x0910 */ 7, 0, 0, 10, 0, 0, 87,227, 5, 0, 0, 10, 10, 16,134,224,
|
||||||
/* 0x0920 */ 7, 0, 0, 10, 0, 0, 87,227, 5, 0, 0, 10, 8, 16,134,224,
|
/* 0x0920 */ 7, 32,160,225, 0, 48,160,227, 1, 32, 82,226, 1, 48,193,228,
|
||||||
/* 0x0930 */ 7, 32,160,225, 0, 48,160,227, 1, 32, 82,226, 1, 48,193,228,
|
/* 0x0930 */ 251,255,255, 26, 12, 0,157,229, 0, 0, 80,227, 40, 0, 0, 10,
|
||||||
/* 0x0940 */ 251,255,255, 26, 12, 0,157,229, 0, 0, 80,227, 40, 0, 0, 10,
|
/* 0x0940 */ 174,254,255,235, 32, 48, 21,229, 28, 0,141,229, 1, 0, 83,227,
|
||||||
/* 0x0950 */ 170,254,255,235, 32, 48, 21,229, 28, 0,141,229, 1, 0, 83,227,
|
/* 0x0950 */ 27, 0, 0, 26, 8, 48, 21,229, 1, 0, 19,227, 24, 0, 0, 10,
|
||||||
/* 0x0960 */ 27, 0, 0, 26, 8, 48, 21,229, 1, 0, 19,227, 24, 0, 0, 10,
|
/* 0x0960 */ 12, 32, 21,229, 16, 48, 21,229, 24, 16, 21,229, 3, 0, 82,225,
|
||||||
/* 0x0970 */ 12, 32, 21,229, 16, 48, 21,229, 24, 16, 21,229, 3, 0, 82,225,
|
/* 0x0970 */ 58, 0, 0, 26, 1, 48,130,224, 20, 32,157,229, 3, 48,131,226,
|
||||||
/* 0x0980 */ 58, 0, 0, 26, 1, 48,130,224, 20, 32,157,229, 3, 48,131,226,
|
/* 0x0980 */ 3, 48,130,224, 3, 0,195,227, 0, 48, 96,226, 3, 58,160,225,
|
||||||
/* 0x0990 */ 3, 48,130,224, 3, 0,195,227, 0, 48, 96,226, 3, 58,160,225,
|
/* 0x0990 */ 35, 58,160,225, 11, 0, 83,227, 48, 0, 0,154, 28, 48,157,229,
|
||||||
/* 0x09a0 */ 35, 58,160,225, 11, 0, 83,227, 48, 0, 0,154, 28, 48,157,229,
|
/* 0x09a0 */ 12, 16,128,226, 0, 48,128,229, 44, 49,159,229, 0, 64,160,225,
|
||||||
/* 0x09b0 */ 12, 16,128,226, 0, 48,128,229, 44, 49,159,229, 0, 64,160,225,
|
/* 0x09b0 */ 4, 48,128,229, 36, 49,159,229, 8, 48,128,229,134,254,255,235,
|
||||||
/* 0x09c0 */ 4, 48,128,229, 36, 49,159,229, 8, 48,128,229,130,254,255,235,
|
/* 0x09c0 */ 63, 0, 0,234, 6, 0,160,225, 10, 16,160,225, 9, 32,160,225,
|
||||||
/* 0x09d0 */ 63, 0, 0,234, 6, 0,160,225, 8, 16,160,225, 9, 32,160,225,
|
/* 0x09d0 */ 101,254,255,235, 0, 0, 80,227, 1, 0, 0, 10,127, 0,160,227,
|
||||||
/* 0x09e0 */ 97,254,255,235, 0, 0, 80,227, 1, 0, 0, 10,127, 0,160,227,
|
/* 0x09e0 */ 48,254,255,235, 32,192,157,229, 7, 48,138,224, 12, 16,139,224,
|
||||||
/* 0x09f0 */ 44,254,255,235, 32,192,157,229, 7, 48,136,224, 12, 16,139,224,
|
/* 0x09f0 */ 3, 64,134,224, 1, 0, 84,225, 7, 0, 0, 42, 1, 16,100,224,
|
||||||
/* 0x0a00 */ 3, 64,134,224, 1, 0, 84,225, 7, 0, 0, 42, 1, 16,100,224,
|
/* 0x0a00 */ 9, 32,160,225, 4, 0,160,225, 16, 48,160,227,125,254,255,235,
|
||||||
/* 0x0a10 */ 9, 32,160,225, 4, 0,160,225, 16, 48,160,227,121,254,255,235,
|
/* 0x0a10 */ 0, 0, 84,225, 0, 0, 0, 10,254,255,255,234, 24, 0,157,229,
|
||||||
/* 0x0a20 */ 0, 0, 84,225, 0, 0, 0, 10,254,255,255,234, 24, 0,157,229,
|
/* 0x0a20 */ 32, 80,133,226, 1, 0,128,226, 24, 0,141,229,188, 50,216,225,
|
||||||
/* 0x0a30 */ 32, 80,133,226, 1, 0,128,226, 24, 0,141,229,188, 50,218,225,
|
/* 0x0a30 */ 24, 32,157,229, 3, 0, 82,225, 85,255,255,186, 80, 48,157,229,
|
||||||
/* 0x0a40 */ 24, 32,157,229, 3, 0, 82,225, 85,255,255,186, 80, 48,157,229,
|
/* 0x0a40 */ 20, 32,157,229, 0, 0, 83,227, 20,192,157, 21, 0,192,131, 21,
|
||||||
/* 0x0a50 */ 20, 32,157,229, 0, 0, 83,227, 20,192,157, 21, 0,192,131, 21,
|
/* 0x0a50 */ 24, 0,152,229, 0, 0,130,224, 44,208,141,226,240,143,189,232,
|
||||||
/* 0x0a60 */ 24, 0,154,229, 0, 0,130,224, 44,208,141,226,240,143,189,232,
|
/* 0x0a60 */ 0,224,160,227, 0,192,224,227, 14, 0,160,225, 1, 26,160,227,
|
||||||
/* 0x0a70 */ 0,224,160,227, 0,192,224,227, 14, 0,160,225, 1, 26,160,227,
|
/* 0x0a70 */ 7, 32,160,227, 34, 48,160,227, 0, 80,141,232, 67,254,255,235,
|
||||||
/* 0x0a80 */ 7, 32,160,227, 34, 48,160,227, 0, 80,141,232, 63,254,255,235,
|
/* 0x0a80 */ 0, 0, 80,227,206,255,255, 10, 3, 48,128,226, 3, 64,195,227,
|
||||||
/* 0x0a90 */ 0, 0, 80,227,206,255,255, 10, 3, 48,128,226, 3, 64,195,227,
|
/* 0x0a90 */ 68, 48,159,229, 28, 0,157,229, 4, 48,132,229, 60, 48,159,229,
|
||||||
/* 0x0aa0 */ 68, 48,159,229, 28, 0,157,229, 4, 48,132,229, 60, 48,159,229,
|
/* 0x0aa0 */ 0, 0,132,229, 12, 16,132,226, 4, 0,160,225, 8, 48,132,229,
|
||||||
/* 0x0ab0 */ 0, 0,132,229, 12, 16,132,226, 4, 0,160,225, 8, 48,132,229,
|
/* 0x0ab0 */ 73,254,255,235, 4, 0,160,225, 12, 16,160,227, 5, 32,160,227,
|
||||||
/* 0x0ac0 */ 69,254,255,235, 4, 0,160,225, 12, 16,160,227, 5, 32,160,227,
|
/* 0x0ac0 */ 41,254,255,235, 4, 32,160,225, 8, 0,157,229, 0, 16,160,227,
|
||||||
/* 0x0ad0 */ 37,254,255,235, 4, 32,160,225, 8, 0,157,229, 0, 16,160,227,
|
/* 0x0ad0 */ 108,254,255,235,186,255,255,234, 64, 98, 81,115, 3, 0,189,232,
|
||||||
/* 0x0ae0 */ 104,254,255,235,186,255,255,234, 64, 98, 81,115, 3, 0,189,232,
|
/* 0x0ae0 */ 14,240,160,225,240, 71, 45,233, 12,208, 77,226, 52, 96,141,226,
|
||||||
/* 0x0af0 */ 14,240,160,225,240, 71, 45,233, 12,208, 77,226, 52, 96,141,226,
|
/* 0x0af0 */ 0,144,160,225, 1,112,160,225, 3,128,160,225, 6, 0,160,225,
|
||||||
/* 0x0b00 */ 0,144,160,225, 1,112,160,225, 3,128,160,225, 6, 0,160,225,
|
/* 0x0b00 */ 44, 16,141,226, 0, 48,160,227, 48,160,157,229, 2, 80,160,225,
|
||||||
/* 0x0b10 */ 44, 16,141,226, 0, 48,160,227, 48,160,157,229, 2, 80,160,225,
|
/* 0x0b10 */ 52, 64,157,229,143,254,255,235, 60, 48,157,229, 56,192,157,229,
|
||||||
/* 0x0b20 */ 52, 64,157,229,139,254,255,235, 60, 48,157,229, 56,192,157,229,
|
/* 0x0b20 */ 12,224,141,226, 4, 48, 46,229, 12,192,100,224, 6, 32,160,225,
|
||||||
/* 0x0b30 */ 12,224,141,226, 4, 48, 46,229, 12,192,100,224, 6, 32,160,225,
|
/* 0x0b30 */ 10, 16,160,225, 9, 48,160,225, 5, 0,160,225, 56,192,141,229,
|
||||||
/* 0x0b40 */ 10, 16,160,225, 9, 48,160,225, 5, 0,160,225, 56,192,141,229,
|
/* 0x0b40 */ 0,224,141,229, 52,112,141,229, 4,128,141,229,209,254,255,235,
|
||||||
/* 0x0b50 */ 0,224,141,229, 52,112,141,229, 4,128,141,229,205,254,255,235,
|
/* 0x0b50 */ 0, 64,160,225, 9, 16,160,227, 9, 0,160,225, 4, 32,160,225,
|
||||||
/* 0x0b60 */ 0, 64,160,225, 9, 16,160,227, 9, 0,160,225, 4, 32,160,225,
|
/* 0x0b60 */ 72,254,255,235,188, 2,218,225, 52, 32,138,226, 0, 16,160,227,
|
||||||
/* 0x0b70 */ 68,254,255,235,188, 2,218,225, 52, 32,138,226, 0, 16,160,227,
|
/* 0x0b70 */ 35, 0, 0,234, 0, 48,146,229, 3, 0, 83,227, 30, 0, 0, 26,
|
||||||
/* 0x0b80 */ 35, 0, 0,234, 0, 48,146,229, 3, 0, 83,227, 30, 0, 0, 26,
|
/* 0x0b80 */ 8, 48,146,229, 8, 0,157,229, 0, 16,160,227, 0, 0,131,224,
|
||||||
/* 0x0b90 */ 8, 48,146,229, 8, 0,157,229, 0, 16,160,227, 0, 0,131,224,
|
/* 0x0b90 */ 1, 32,160,225,209,253,255,235, 0, 80, 80,226, 4, 0, 0,186,
|
||||||
/* 0x0ba0 */ 1, 32,160,225,205,253,255,235, 0, 80, 80,226, 4, 0, 0,186,
|
/* 0x0ba0 */ 10, 16,160,225, 2, 44,160,227,194,253,255,235, 2, 12, 80,227,
|
||||||
/* 0x0bb0 */ 10, 16,160,225, 2, 44,160,227,190,253,255,235, 2, 12, 80,227,
|
/* 0x0bb0 */ 1, 0, 0, 10,127, 0,160,227,186,253,255,235, 0,224,160,227,
|
||||||
/* 0x0bc0 */ 1, 0, 0, 10,127, 0,160,227,182,253,255,235, 0,224,160,227,
|
/* 0x0bc0 */ 14, 32,160,225, 8,192,141,226, 10, 16,160,225, 9, 48,160,225,
|
||||||
/* 0x0bd0 */ 14, 32,160,225, 8,192,141,226, 10, 16,160,225, 9, 48,160,225,
|
/* 0x0bd0 */ 5, 0,160,225, 0, 80,141,232,174,254,255,235, 7, 16,160,227,
|
||||||
/* 0x0be0 */ 5, 0,160,225, 0, 80,141,232,170,254,255,235, 7, 16,160,227,
|
/* 0x0be0 */ 0, 64,160,225, 8, 32,157,229, 9, 0,160,225, 37,254,255,235,
|
||||||
/* 0x0bf0 */ 0, 64,160,225, 8, 32,157,229, 9, 0,160,225, 33,254,255,235,
|
/* 0x0bf0 */ 5, 0,160,225,190,253,255,235, 3, 0, 0,234, 32, 32,130,226,
|
||||||
/* 0x0c00 */ 5, 0,160,225,186,253,255,235, 3, 0, 0,234, 32, 32,130,226,
|
/* 0x0c00 */ 1, 16,129,226, 0, 0, 81,225,217,255,255,186, 4, 0,160,225,
|
||||||
/* 0x0c10 */ 1, 16,129,226, 0, 0, 81,225,217,255,255,186, 4, 0,160,225,
|
/* 0x0c10 */ 12,208,141,226,240,135,189,232
|
||||||
/* 0x0c20 */ 12,208,141,226,240,135,189,232
|
|
||||||
};
|
};
|
||||||
|
|||||||
Generated
+4
-4
@@ -33,8 +33,8 @@
|
|||||||
/* clang-format off */
|
/* clang-format off */
|
||||||
|
|
||||||
#define STUB_ARM64_DARWIN_MACHO_ENTRY_SIZE 7365
|
#define STUB_ARM64_DARWIN_MACHO_ENTRY_SIZE 7365
|
||||||
#define STUB_ARM64_DARWIN_MACHO_ENTRY_ADLER32 0x31b06f6b
|
#define STUB_ARM64_DARWIN_MACHO_ENTRY_ADLER32 0x1bf86f1b
|
||||||
#define STUB_ARM64_DARWIN_MACHO_ENTRY_CRC32 0x0f5ec97d
|
#define STUB_ARM64_DARWIN_MACHO_ENTRY_CRC32 0xb61e8421
|
||||||
|
|
||||||
unsigned char stub_arm64_darwin_macho_entry[7365] = {
|
unsigned char stub_arm64_darwin_macho_entry[7365] = {
|
||||||
/* 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,
|
||||||
@@ -82,11 +82,11 @@ unsigned char stub_arm64_darwin_macho_entry[7365] = {
|
|||||||
/* 0x02a0 */ 243,255,255,151, 33, 0, 1, 58,241,255,255,151, 33, 0, 1, 58,
|
/* 0x02a0 */ 243,255,255,151, 33, 0, 1, 58,241,255,255,151, 33, 0, 1, 58,
|
||||||
/* 0x02b0 */ 239,255,255,151, 67,255,255, 84, 35, 12, 0,113, 1, 0,128, 82,
|
/* 0x02b0 */ 239,255,255,151, 67,255,255, 84, 35, 12, 0,113, 1, 0,128, 82,
|
||||||
/* 0x02c0 */ 35, 1, 0, 84, 5, 20, 64, 56,165, 32, 3, 42,229, 3, 37, 42,
|
/* 0x02c0 */ 35, 1, 0, 84, 5, 20, 64, 56,165, 32, 3, 42,229, 3, 37, 42,
|
||||||
/* 0x02d0 */ 101,248,255, 52,163, 0, 1, 83,165,124, 1, 83, 99, 0, 3, 43,
|
/* 0x02d0 */ 101,248,255, 52,163, 0, 1, 83,165,124, 1, 19, 99, 0, 3, 43,
|
||||||
/* 0x02e0 */ 2, 0, 0, 20,226,255,255,151, 33, 0, 1, 58,224,255,255,151,
|
/* 0x02e0 */ 2, 0, 0, 20,226,255,255,151, 33, 0, 1, 58,224,255,255,151,
|
||||||
/* 0x02f0 */ 33, 0, 1, 58,225, 0, 0, 84, 33, 0,128, 82,220,255,255,151,
|
/* 0x02f0 */ 33, 0, 1, 58,225, 0, 0, 84, 33, 0,128, 82,220,255,255,151,
|
||||||
/* 0x0300 */ 33, 0, 1, 58,218,255,255,151,163,255,255, 84, 33, 8, 0, 17,
|
/* 0x0300 */ 33, 0, 1, 58,218,255,255,151,163,255,255, 84, 33, 8, 0, 17,
|
||||||
/* 0x0310 */ 33, 4, 0, 17,191, 0, 20, 49, 33, 52,129, 26, 67, 0, 64, 57,
|
/* 0x0310 */ 33, 4, 0, 17,191, 0, 20, 49, 33, 36,129, 26, 67, 0, 64, 57,
|
||||||
/* 0x0320 */ 67,200,101, 56, 67, 20, 0, 56, 33, 4, 0,113,161,255,255, 84,
|
/* 0x0320 */ 67,200,101, 56, 67, 20, 0, 56, 33, 4, 0,113,161,255,255, 84,
|
||||||
/* 0x0330 */ 215,255,255, 23, 1, 64, 33,139,225, 11,190,169,227,123, 1,169,
|
/* 0x0330 */ 215,255,255, 23, 1, 64, 33,139,225, 11,190,169,227,123, 1,169,
|
||||||
/* 0x0340 */ 5, 0,128, 18, 4, 0,176, 82, 52, 0, 0, 20,228,123, 65,169,
|
/* 0x0340 */ 5, 0,128, 18, 4, 0,176, 82, 52, 0, 0, 20,228,123, 65,169,
|
||||||
|
|||||||
Generated
+4
-4
@@ -33,8 +33,8 @@
|
|||||||
/* clang-format off */
|
/* clang-format off */
|
||||||
|
|
||||||
#define STUB_ARM64_LINUX_ELF_ENTRY_SIZE 7437
|
#define STUB_ARM64_LINUX_ELF_ENTRY_SIZE 7437
|
||||||
#define STUB_ARM64_LINUX_ELF_ENTRY_ADLER32 0x1aee75c5
|
#define STUB_ARM64_LINUX_ELF_ENTRY_ADLER32 0xf1277575
|
||||||
#define STUB_ARM64_LINUX_ELF_ENTRY_CRC32 0x63fb282c
|
#define STUB_ARM64_LINUX_ELF_ENTRY_CRC32 0x3732046d
|
||||||
|
|
||||||
unsigned char stub_arm64_linux_elf_entry[7437] = {
|
unsigned char stub_arm64_linux_elf_entry[7437] = {
|
||||||
/* 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,
|
||||||
@@ -83,11 +83,11 @@ unsigned char stub_arm64_linux_elf_entry[7437] = {
|
|||||||
/* 0x02b0 */ 241,255,255,151, 33, 0, 1, 58,239,255,255,151, 67,255,255, 84,
|
/* 0x02b0 */ 241,255,255,151, 33, 0, 1, 58,239,255,255,151, 67,255,255, 84,
|
||||||
/* 0x02c0 */ 35, 12, 0,113, 1, 0,128, 82, 35, 1, 0, 84, 5, 20, 64, 56,
|
/* 0x02c0 */ 35, 12, 0,113, 1, 0,128, 82, 35, 1, 0, 84, 5, 20, 64, 56,
|
||||||
/* 0x02d0 */ 165, 32, 3, 42,229, 3, 37, 42,101,248,255, 52,163, 0, 1, 83,
|
/* 0x02d0 */ 165, 32, 3, 42,229, 3, 37, 42,101,248,255, 52,163, 0, 1, 83,
|
||||||
/* 0x02e0 */ 165,124, 1, 83, 99, 0, 3, 43, 2, 0, 0, 20,226,255,255,151,
|
/* 0x02e0 */ 165,124, 1, 19, 99, 0, 3, 43, 2, 0, 0, 20,226,255,255,151,
|
||||||
/* 0x02f0 */ 33, 0, 1, 58,224,255,255,151, 33, 0, 1, 58,225, 0, 0, 84,
|
/* 0x02f0 */ 33, 0, 1, 58,224,255,255,151, 33, 0, 1, 58,225, 0, 0, 84,
|
||||||
/* 0x0300 */ 33, 0,128, 82,220,255,255,151, 33, 0, 1, 58,218,255,255,151,
|
/* 0x0300 */ 33, 0,128, 82,220,255,255,151, 33, 0, 1, 58,218,255,255,151,
|
||||||
/* 0x0310 */ 163,255,255, 84, 33, 8, 0, 17, 33, 4, 0, 17,191, 0, 20, 49,
|
/* 0x0310 */ 163,255,255, 84, 33, 8, 0, 17, 33, 4, 0, 17,191, 0, 20, 49,
|
||||||
/* 0x0320 */ 33, 52,129, 26, 67, 0, 64, 57, 67,200,101, 56, 67, 20, 0, 56,
|
/* 0x0320 */ 33, 36,129, 26, 67, 0, 64, 57, 67,200,101, 56, 67, 20, 0, 56,
|
||||||
/* 0x0330 */ 33, 4, 0,113,161,255,255, 84,215,255,255, 23, 1, 64, 33,139,
|
/* 0x0330 */ 33, 4, 0,113,161,255,255, 84,215,255,255, 23, 1, 64, 33,139,
|
||||||
/* 0x0340 */ 225, 11,190,169,227,123, 1,169, 5, 0,128, 18, 4, 0,176, 82,
|
/* 0x0340 */ 225, 11,190,169,227,123, 1,169, 5, 0,128, 18, 4, 0,176, 82,
|
||||||
/* 0x0350 */ 52, 0, 0, 20,228,123, 65,169,225, 15,194,168, 0, 0, 1,203,
|
/* 0x0350 */ 52, 0, 0, 20,228,123, 65,169,225, 15,194,168, 0, 0, 1,203,
|
||||||
|
|||||||
Generated
+4
-4
@@ -33,8 +33,8 @@
|
|||||||
/* clang-format off */
|
/* clang-format off */
|
||||||
|
|
||||||
#define STUB_ARM64_LINUX_ELF_SO_FOLD_SIZE 16470
|
#define STUB_ARM64_LINUX_ELF_SO_FOLD_SIZE 16470
|
||||||
#define STUB_ARM64_LINUX_ELF_SO_FOLD_ADLER32 0x5ca85f12
|
#define STUB_ARM64_LINUX_ELF_SO_FOLD_ADLER32 0x7b285ec2
|
||||||
#define STUB_ARM64_LINUX_ELF_SO_FOLD_CRC32 0xc23c6836
|
#define STUB_ARM64_LINUX_ELF_SO_FOLD_CRC32 0x0dde2064
|
||||||
|
|
||||||
unsigned char stub_arm64_linux_elf_so_fold[16470] = {
|
unsigned char stub_arm64_linux_elf_so_fold[16470] = {
|
||||||
/* 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,
|
||||||
@@ -252,11 +252,11 @@ unsigned char stub_arm64_linux_elf_so_fold[16470] = {
|
|||||||
/* 0x0d40 */ 243,255,255,151, 33, 0, 1, 58,241,255,255,151, 33, 0, 1, 58,
|
/* 0x0d40 */ 243,255,255,151, 33, 0, 1, 58,241,255,255,151, 33, 0, 1, 58,
|
||||||
/* 0x0d50 */ 239,255,255,151, 67,255,255, 84, 35, 12, 0,113, 1, 0,128, 82,
|
/* 0x0d50 */ 239,255,255,151, 67,255,255, 84, 35, 12, 0,113, 1, 0,128, 82,
|
||||||
/* 0x0d60 */ 35, 1, 0, 84, 5, 20, 64, 56,165, 32, 3, 42,229, 3, 37, 42,
|
/* 0x0d60 */ 35, 1, 0, 84, 5, 20, 64, 56,165, 32, 3, 42,229, 3, 37, 42,
|
||||||
/* 0x0d70 */ 101,248,255, 52,163, 0, 1, 83,165,124, 1, 83, 99, 0, 3, 43,
|
/* 0x0d70 */ 101,248,255, 52,163, 0, 1, 83,165,124, 1, 19, 99, 0, 3, 43,
|
||||||
/* 0x0d80 */ 2, 0, 0, 20,226,255,255,151, 33, 0, 1, 58,224,255,255,151,
|
/* 0x0d80 */ 2, 0, 0, 20,226,255,255,151, 33, 0, 1, 58,224,255,255,151,
|
||||||
/* 0x0d90 */ 33, 0, 1, 58,225, 0, 0, 84, 33, 0,128, 82,220,255,255,151,
|
/* 0x0d90 */ 33, 0, 1, 58,225, 0, 0, 84, 33, 0,128, 82,220,255,255,151,
|
||||||
/* 0x0da0 */ 33, 0, 1, 58,218,255,255,151,163,255,255, 84, 33, 8, 0, 17,
|
/* 0x0da0 */ 33, 0, 1, 58,218,255,255,151,163,255,255, 84, 33, 8, 0, 17,
|
||||||
/* 0x0db0 */ 33, 4, 0, 17,191, 0, 20, 49, 33, 52,129, 26, 67, 0, 64, 57,
|
/* 0x0db0 */ 33, 4, 0, 17,191, 0, 20, 49, 33, 36,129, 26, 67, 0, 64, 57,
|
||||||
/* 0x0dc0 */ 67,200,101, 56, 67, 20, 0, 56, 33, 4, 0,113,161,255,255, 84,
|
/* 0x0dc0 */ 67,200,101, 56, 67, 20, 0, 56, 33, 4, 0,113,161,255,255, 84,
|
||||||
/* 0x0dd0 */ 215,255,255, 23, 1, 64, 33,139,225, 11,190,169,227,123, 1,169,
|
/* 0x0dd0 */ 215,255,255, 23, 1, 64, 33,139,225, 11,190,169,227,123, 1,169,
|
||||||
/* 0x0de0 */ 5, 0,128, 18, 4, 0,176, 82, 52, 0, 0, 20,228,123, 65,169,
|
/* 0x0de0 */ 5, 0,128, 18, 4, 0,176, 82, 52, 0, 0, 20,228,123, 65,169,
|
||||||
|
|||||||
Generated
+4
-4
@@ -33,8 +33,8 @@
|
|||||||
/* clang-format off */
|
/* clang-format off */
|
||||||
|
|
||||||
#define STUB_ARM64_LINUX_SHLIB_INIT_SIZE 7923
|
#define STUB_ARM64_LINUX_SHLIB_INIT_SIZE 7923
|
||||||
#define STUB_ARM64_LINUX_SHLIB_INIT_ADLER32 0x74b92ff3
|
#define STUB_ARM64_LINUX_SHLIB_INIT_ADLER32 0xb3122fa3
|
||||||
#define STUB_ARM64_LINUX_SHLIB_INIT_CRC32 0xfaebe7b3
|
#define STUB_ARM64_LINUX_SHLIB_INIT_CRC32 0xb5f30aee
|
||||||
|
|
||||||
unsigned char stub_arm64_linux_shlib_init[7923] = {
|
unsigned char stub_arm64_linux_shlib_init[7923] = {
|
||||||
/* 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,
|
||||||
@@ -83,11 +83,11 @@ unsigned char stub_arm64_linux_shlib_init[7923] = {
|
|||||||
/* 0x02b0 */ 241,255,255,151, 33, 0, 1, 58,239,255,255,151, 67,255,255, 84,
|
/* 0x02b0 */ 241,255,255,151, 33, 0, 1, 58,239,255,255,151, 67,255,255, 84,
|
||||||
/* 0x02c0 */ 35, 12, 0,113, 1, 0,128, 82, 35, 1, 0, 84, 5, 20, 64, 56,
|
/* 0x02c0 */ 35, 12, 0,113, 1, 0,128, 82, 35, 1, 0, 84, 5, 20, 64, 56,
|
||||||
/* 0x02d0 */ 165, 32, 3, 42,229, 3, 37, 42,101,248,255, 52,163, 0, 1, 83,
|
/* 0x02d0 */ 165, 32, 3, 42,229, 3, 37, 42,101,248,255, 52,163, 0, 1, 83,
|
||||||
/* 0x02e0 */ 165,124, 1, 83, 99, 0, 3, 43, 2, 0, 0, 20,226,255,255,151,
|
/* 0x02e0 */ 165,124, 1, 19, 99, 0, 3, 43, 2, 0, 0, 20,226,255,255,151,
|
||||||
/* 0x02f0 */ 33, 0, 1, 58,224,255,255,151, 33, 0, 1, 58,225, 0, 0, 84,
|
/* 0x02f0 */ 33, 0, 1, 58,224,255,255,151, 33, 0, 1, 58,225, 0, 0, 84,
|
||||||
/* 0x0300 */ 33, 0,128, 82,220,255,255,151, 33, 0, 1, 58,218,255,255,151,
|
/* 0x0300 */ 33, 0,128, 82,220,255,255,151, 33, 0, 1, 58,218,255,255,151,
|
||||||
/* 0x0310 */ 163,255,255, 84, 33, 8, 0, 17, 33, 4, 0, 17,191, 0, 20, 49,
|
/* 0x0310 */ 163,255,255, 84, 33, 8, 0, 17, 33, 4, 0, 17,191, 0, 20, 49,
|
||||||
/* 0x0320 */ 33, 52,129, 26, 67, 0, 64, 57, 67,200,101, 56, 67, 20, 0, 56,
|
/* 0x0320 */ 33, 36,129, 26, 67, 0, 64, 57, 67,200,101, 56, 67, 20, 0, 56,
|
||||||
/* 0x0330 */ 33, 4, 0,113,161,255,255, 84,215,255,255, 23, 1, 64, 33,139,
|
/* 0x0330 */ 33, 4, 0,113,161,255,255, 84,215,255,255, 23, 1, 64, 33,139,
|
||||||
/* 0x0340 */ 225, 11,190,169,227,123, 1,169, 5, 0,128, 18, 4, 0,176, 82,
|
/* 0x0340 */ 225, 11,190,169,227,123, 1,169, 5, 0,128, 18, 4, 0,176, 82,
|
||||||
/* 0x0350 */ 52, 0, 0, 20,228,123, 65,169,225, 15,194,168, 0, 0, 1,203,
|
/* 0x0350 */ 52, 0, 0, 20,228,123, 65,169,225, 15,194,168, 0, 0, 1,203,
|
||||||
|
|||||||
Generated
+4
-4
@@ -33,8 +33,8 @@
|
|||||||
/* clang-format off */
|
/* clang-format off */
|
||||||
|
|
||||||
#define STUB_ARM64_WIN64_PE_SIZE 6445
|
#define STUB_ARM64_WIN64_PE_SIZE 6445
|
||||||
#define STUB_ARM64_WIN64_PE_ADLER32 0x2ad96830
|
#define STUB_ARM64_WIN64_PE_ADLER32 0x20b067e0
|
||||||
#define STUB_ARM64_WIN64_PE_CRC32 0x37da39bd
|
#define STUB_ARM64_WIN64_PE_CRC32 0x6272f953
|
||||||
|
|
||||||
unsigned char stub_arm64_win64_pe[6445] = {
|
unsigned char stub_arm64_win64_pe[6445] = {
|
||||||
/* 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,
|
||||||
@@ -78,11 +78,11 @@ unsigned char stub_arm64_win64_pe[6445] = {
|
|||||||
/* 0x0260 */ 243,255,255,151, 33, 0, 1, 58,241,255,255,151, 33, 0, 1, 58,
|
/* 0x0260 */ 243,255,255,151, 33, 0, 1, 58,241,255,255,151, 33, 0, 1, 58,
|
||||||
/* 0x0270 */ 239,255,255,151, 67,255,255, 84, 35, 12, 0,113, 1, 0,128, 82,
|
/* 0x0270 */ 239,255,255,151, 67,255,255, 84, 35, 12, 0,113, 1, 0,128, 82,
|
||||||
/* 0x0280 */ 35, 1, 0, 84, 5, 20, 64, 56,165, 32, 3, 42,229, 3, 37, 42,
|
/* 0x0280 */ 35, 1, 0, 84, 5, 20, 64, 56,165, 32, 3, 42,229, 3, 37, 42,
|
||||||
/* 0x0290 */ 101,248,255, 52,163, 0, 1, 83,165,124, 1, 83, 99, 0, 3, 43,
|
/* 0x0290 */ 101,248,255, 52,163, 0, 1, 83,165,124, 1, 19, 99, 0, 3, 43,
|
||||||
/* 0x02a0 */ 2, 0, 0, 20,226,255,255,151, 33, 0, 1, 58,224,255,255,151,
|
/* 0x02a0 */ 2, 0, 0, 20,226,255,255,151, 33, 0, 1, 58,224,255,255,151,
|
||||||
/* 0x02b0 */ 33, 0, 1, 58,225, 0, 0, 84, 33, 0,128, 82,220,255,255,151,
|
/* 0x02b0 */ 33, 0, 1, 58,225, 0, 0, 84, 33, 0,128, 82,220,255,255,151,
|
||||||
/* 0x02c0 */ 33, 0, 1, 58,218,255,255,151,163,255,255, 84, 33, 8, 0, 17,
|
/* 0x02c0 */ 33, 0, 1, 58,218,255,255,151,163,255,255, 84, 33, 8, 0, 17,
|
||||||
/* 0x02d0 */ 33, 4, 0, 17,191, 0, 20, 49, 33, 52,129, 26, 67, 0, 64, 57,
|
/* 0x02d0 */ 33, 4, 0, 17,191, 0, 20, 49, 33, 36,129, 26, 67, 0, 64, 57,
|
||||||
/* 0x02e0 */ 67,200,101, 56, 67, 20, 0, 56, 33, 4, 0,113,161,255,255, 84,
|
/* 0x02e0 */ 67,200,101, 56, 67, 20, 0, 56, 33, 4, 0,113,161,255,255, 84,
|
||||||
/* 0x02f0 */ 215,255,255, 23,254, 15, 31,248,226, 15,191,169, 7, 64, 33,139,
|
/* 0x02f0 */ 215,255,255, 23,254, 15, 31,248,226, 15,191,169, 7, 64, 33,139,
|
||||||
/* 0x0300 */ 5, 0,128, 18, 4, 0,176, 82, 45, 0, 0, 20,227, 19,193,168,
|
/* 0x0300 */ 5, 0,128, 18, 4, 0,176, 82, 45, 0, 0, 20,227, 19,193,168,
|
||||||
|
|||||||
Generated
+96
-97
@@ -1,5 +1,5 @@
|
|||||||
/* armeb.v4a-linux.elf-fold.h
|
/* armeb.v4a-linux.elf-fold.h
|
||||||
created from armeb.v4a-linux.elf-fold.bin, 2940 (0xb7c) bytes
|
created from armeb.v4a-linux.elf-fold.bin, 2924 (0xb6c) bytes
|
||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
@@ -32,17 +32,17 @@
|
|||||||
|
|
||||||
/* clang-format off */
|
/* clang-format off */
|
||||||
|
|
||||||
#define STUB_ARMEB_V4A_LINUX_ELF_FOLD_SIZE 2940
|
#define STUB_ARMEB_V4A_LINUX_ELF_FOLD_SIZE 2924
|
||||||
#define STUB_ARMEB_V4A_LINUX_ELF_FOLD_ADLER32 0x7228b95c
|
#define STUB_ARMEB_V4A_LINUX_ELF_FOLD_ADLER32 0x821ab256
|
||||||
#define STUB_ARMEB_V4A_LINUX_ELF_FOLD_CRC32 0xcb53dba5
|
#define STUB_ARMEB_V4A_LINUX_ELF_FOLD_CRC32 0xc15673ab
|
||||||
|
|
||||||
unsigned char stub_armeb_v4a_linux_elf_fold[2940] = {
|
unsigned char stub_armeb_v4a_linux_elf_fold[2924] = {
|
||||||
/* 0x0000 */ 127, 69, 76, 70, 1, 2, 1, 97, 0, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0000 */ 127, 69, 76, 70, 1, 2, 1, 97, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0010 */ 0, 2, 0, 40, 0, 0, 0, 1, 0, 0,128,128, 0, 0, 0, 52,
|
/* 0x0010 */ 0, 2, 0, 40, 0, 0, 0, 1, 0, 0,128,128, 0, 0, 0, 52,
|
||||||
/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 2, 0, 52, 0, 32, 0, 2, 0, 0,
|
/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 2, 0, 52, 0, 32, 0, 2, 0, 0,
|
||||||
/* 0x0030 */ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,128, 0,
|
/* 0x0030 */ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,128, 0,
|
||||||
/* 0x0040 */ 0, 0,128, 0, 0, 0, 11,124, 0, 0, 11,124, 0, 0, 0, 5,
|
/* 0x0040 */ 0, 0,128, 0, 0, 0, 11,108, 0, 0, 11,108, 0, 0, 0, 5,
|
||||||
/* 0x0050 */ 0, 0,128, 0, 0, 0, 0, 1, 0, 0, 11,124, 0, 0, 0, 0,
|
/* 0x0050 */ 0, 0,128, 0, 0, 0, 0, 1, 0, 0, 11,108, 0, 0, 0, 0,
|
||||||
/* 0x0060 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0060 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0070 */ 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0070 */ 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0080 */ 0, 0, 0, 34,225,160, 32, 4,225,160, 48, 5,232,189, 31,240,
|
/* 0x0080 */ 0, 0, 0, 34,225,160, 32, 4,225,160, 48, 5,232,189, 31,240,
|
||||||
@@ -63,7 +63,7 @@ unsigned char stub_armeb_v4a_linux_elf_fold[2940] = {
|
|||||||
/* 0x0170 */ 225, 81, 0, 13,229, 32, 32, 4, 26,255,255,251,225,160,208, 0,
|
/* 0x0170 */ 225, 81, 0, 13,229, 32, 32, 4, 26,255,255,251,225,160,208, 0,
|
||||||
/* 0x0180 */ 232,189, 12, 16,226, 77,220, 10,229,154,144, 4,225,160,128, 13,
|
/* 0x0180 */ 232,189, 12, 16,226, 77,220, 10,229,154,144, 4,225,160,128, 13,
|
||||||
/* 0x0190 */ 229,154,112, 0,226,143, 96,184,226,137,144, 12,233, 45, 15,248,
|
/* 0x0190 */ 229,154,112, 0,226,143, 96,184,226,137,144, 12,233, 45, 15,248,
|
||||||
/* 0x01a0 */ 232,189, 0, 15,235, 0, 2, 39,226,141,208, 20,226,141,220, 10,
|
/* 0x01a0 */ 232,189, 0, 15,235, 0, 2, 35,226,141,208, 20,226,141,220, 10,
|
||||||
/* 0x01b0 */ 229,141, 0, 16,229,155, 16,104,225,160, 0, 11,235, 0, 0, 70,
|
/* 0x01b0 */ 229,141, 0, 16,229,155, 16,104,225,160, 0, 11,235, 0, 0, 70,
|
||||||
/* 0x01c0 */ 225,160, 0, 11,235, 0, 0, 72,228,157, 64, 4,227, 84, 0, 0,
|
/* 0x01c0 */ 225,160, 0, 11,235, 0, 0, 72,228,157, 64, 4,227, 84, 0, 0,
|
||||||
/* 0x01d0 */ 186, 0, 0, 8,227,160, 80, 0,233, 45, 0, 48,227,160, 48, 2,
|
/* 0x01d0 */ 186, 0, 0, 8,227,160, 80, 0,233, 45, 0, 48,227,160, 48, 2,
|
||||||
@@ -132,93 +132,92 @@ unsigned char stub_armeb_v4a_linux_elf_fold[2940] = {
|
|||||||
/* 0x05c0 */ 229,157, 48, 4,232,148, 0, 6,224,130, 32, 3,224, 99, 16, 1,
|
/* 0x05c0 */ 229,157, 48, 4,232,148, 0, 6,224,130, 32, 3,224, 99, 16, 1,
|
||||||
/* 0x05d0 */ 232,132, 0, 6,229,148, 48, 0,227, 83, 0, 0, 26,255,255,183,
|
/* 0x05d0 */ 232,132, 0, 6,229,148, 48, 0,227, 83, 0, 0, 26,255,255,183,
|
||||||
/* 0x05e0 */ 226,141,208, 20,232,189,128,240, 33, 88, 80, 85,233, 45, 79,240,
|
/* 0x05e0 */ 226,141,208, 20,232,189,128,240, 33, 88, 80, 85,233, 45, 79,240,
|
||||||
/* 0x05f0 */ 225,160,160, 1,229,145, 16, 28,226, 77,208, 44,227, 82, 0, 0,
|
/* 0x05f0 */ 225,160,128, 1,229,145, 16, 28,226, 77,208, 44,227, 82, 0, 0,
|
||||||
/* 0x0600 */ 229,141, 32, 12,229,141, 0, 16,229,141, 48, 8,224,138, 80, 1,
|
/* 0x0600 */ 229,141, 32, 12,229,141, 0, 16,229,141, 48, 8,224,136, 80, 1,
|
||||||
/* 0x0610 */ 10, 0, 0, 13,229,157, 32, 80,229,146, 0, 0,225,208, 49,176,
|
/* 0x0610 */ 10, 0, 0, 9,229,157, 32, 80,229,146, 0, 0,225,208, 49,176,
|
||||||
/* 0x0620 */ 226,128, 16, 52,227, 83, 0, 2, 21,145, 48, 40, 5,145, 0, 8,
|
/* 0x0620 */ 227, 83, 0, 2, 21,144, 48, 92, 3,160, 48, 0, 5,141, 48, 20,
|
||||||
/* 0x0630 */ 3,160, 48, 0, 16, 99, 0, 0,229,145, 16, 20, 5,141, 48, 20,
|
/* 0x0630 */ 16, 99, 0, 0, 26, 0, 0, 38,234, 0, 0, 38,225,216, 49,176,
|
||||||
/* 0x0640 */ 21,141, 0, 20,235,255,255, 40,234, 0, 0, 38,225,218, 49,176,
|
/* 0x0640 */ 225,216, 34,188,227, 83, 0, 3,229,157, 16, 12, 19,160,224, 16,
|
||||||
/* 0x0650 */ 225,218, 34,188,227, 83, 0, 3,229,157, 16, 12, 19,160,224, 16,
|
/* 0x0650 */ 3,160,224, 0,226, 66,192, 1,225,160, 0, 5,227,224, 64, 0,
|
||||||
/* 0x0660 */ 3,160,224, 0,226, 66,192, 1,225,160, 0, 5,227,224, 64, 0,
|
/* 0x0660 */ 234, 0, 0, 13,229,144, 48, 0,227, 83, 0, 1, 26, 0, 0, 8,
|
||||||
/* 0x0670 */ 234, 0, 0, 13,229,144, 48, 0,227, 83, 0, 1, 26, 0, 0, 8,
|
/* 0x0670 */ 229,144, 48, 20,227, 83, 0, 0, 10, 0, 0, 5,229,144, 32, 8,
|
||||||
/* 0x0680 */ 229,144, 48, 20,227, 83, 0, 0, 10, 0, 0, 5,229,144, 32, 8,
|
/* 0x0680 */ 224,131, 48, 2,225, 81, 0, 3, 49,160, 16, 3,225, 84, 0, 2,
|
||||||
/* 0x0690 */ 224,131, 48, 2,225, 81, 0, 3, 49,160, 16, 3,225, 84, 0, 2,
|
/* 0x0690 */ 33,160, 64, 2,226,128, 0, 32,226, 76,192, 1,227, 92, 0, 0,
|
||||||
/* 0x06a0 */ 33,160, 64, 2,226,128, 0, 32,226, 76,192, 1,227, 92, 0, 0,
|
/* 0x06a0 */ 170,255,255,239,227,196, 78,255,227,196, 64, 15,224,100, 16, 1,
|
||||||
/* 0x06b0 */ 170,255,255,239,227,196, 78,255,227,196, 64, 15,224,100, 16, 1,
|
/* 0x06b0 */ 226,129, 30,255,226,129, 16, 15,227,193, 30,255,227,193, 16, 15,
|
||||||
/* 0x06c0 */ 226,129, 30,255,226,129, 16, 15,227,193, 30,255,227,193, 16, 15,
|
/* 0x06c0 */ 225,160, 48, 14,225,160, 0, 4,227,160, 32, 0,235,255,255, 32,
|
||||||
/* 0x06d0 */ 225,160, 48, 14,225,160, 0, 4,227,160, 32, 0,235,255,255, 28,
|
/* 0x06d0 */ 224,100, 0, 0,229,141, 0, 20,227,160,192, 0,226,133, 80, 32,
|
||||||
/* 0x06e0 */ 224,100, 0, 0,229,141, 0, 20,227,160,192, 0,226,133, 80, 32,
|
/* 0x06e0 */ 229,141,192, 24,234, 0, 0,165,229,157, 0, 12,227, 80, 0, 0,
|
||||||
/* 0x06f0 */ 229,141,192, 24,234, 0, 0,165,229,157, 0, 12,227, 80, 0, 0,
|
/* 0x06f0 */ 10, 0, 0, 9,229, 21, 48, 32,227, 83, 0, 6, 26, 0, 0, 6,
|
||||||
/* 0x0700 */ 10, 0, 0, 9,229, 21, 48, 32,227, 83, 0, 6, 26, 0, 0, 6,
|
/* 0x0700 */ 229, 21, 32, 24,229,157, 48, 20,229,157, 0, 8,224,131, 32, 2,
|
||||||
/* 0x0710 */ 229, 21, 32, 24,229,157, 48, 20,229,157, 0, 8,224,131, 32, 2,
|
/* 0x0710 */ 227,160, 16, 3,235,255,255, 46,234, 0, 0,148,229, 21, 48, 32,
|
||||||
/* 0x0720 */ 227,160, 16, 3,235,255,255, 42,234, 0, 0,148,229, 21, 48, 32,
|
/* 0x0720 */ 227, 83, 0, 1, 26, 0, 0,145,229, 21, 48, 12,227, 83, 0, 0,
|
||||||
/* 0x0730 */ 227, 83, 0, 1, 26, 0, 0,145,229, 21, 48, 12,227, 83, 0, 0,
|
/* 0x0730 */ 10, 0, 0,142,229,157,192, 12,227, 92, 0, 0, 10, 0, 0, 18,
|
||||||
/* 0x0740 */ 10, 0, 0,142,229,157,192, 12,227, 92, 0, 0, 10, 0, 0, 18,
|
/* 0x0740 */ 229, 21, 48, 28,227, 83, 0, 0, 26, 0, 0, 15,229,152, 48, 28,
|
||||||
/* 0x0750 */ 229, 21, 48, 28,227, 83, 0, 0, 26, 0, 0, 15,229,154, 48, 28,
|
/* 0x0750 */ 229, 21, 32, 24,229,157, 0, 20,224,130, 32, 3,224,128, 32, 2,
|
||||||
/* 0x0760 */ 229, 21, 32, 24,229,157, 0, 20,224,130, 32, 3,224,128, 32, 2,
|
/* 0x0760 */ 227,160, 16, 3,229,157, 0, 8,235,255,255, 25,229,157, 0, 8,
|
||||||
/* 0x0770 */ 227,160, 16, 3,229,157, 0, 8,235,255,255, 21,229,157, 0, 8,
|
/* 0x0770 */ 227,160, 16, 5,225,216, 34,188,235,255,255, 21,229,157, 0, 8,
|
||||||
/* 0x0780 */ 227,160, 16, 5,225,218, 34,188,235,255,255, 17,229,157, 0, 8,
|
/* 0x0780 */ 227,160, 16, 4,225,216, 34,186,235,255,255, 17,229, 21, 16, 8,
|
||||||
/* 0x0790 */ 227,160, 16, 4,225,218, 34,186,235,255,255, 13,229, 21, 16, 8,
|
/* 0x0790 */ 229,159, 34,148,226, 1, 48, 7,225,160, 49, 3,225,160, 67, 50,
|
||||||
/* 0x07a0 */ 229,159, 34,148,226, 1, 48, 7,225,160, 49, 3,225,160, 67, 50,
|
/* 0x07a0 */ 229, 21, 48, 24,229,157, 32, 20,229,157,192, 12,224,130,176, 3,
|
||||||
/* 0x07b0 */ 229, 21, 48, 24,229,157, 32, 20,229,157,192, 12,224,130,176, 3,
|
/* 0x07b0 */ 225,160, 42, 11,229, 21, 48, 16,229, 21, 0, 12,225,160, 42, 34,
|
||||||
/* 0x07c0 */ 225,160, 42, 11,229, 21, 48, 16,229, 21, 0, 12,225,160, 42, 34,
|
/* 0x07c0 */ 227, 92, 0, 0,229,141, 48, 36,229,141,176, 40,224,131,160, 2,
|
||||||
/* 0x07d0 */ 227, 92, 0, 0,229,141, 48, 36,229,141,176, 40,224,131,128, 2,
|
/* 0x07d0 */ 226, 4,144, 7,229,141, 0, 32,224, 98, 96, 11, 10, 0, 0, 16,
|
||||||
/* 0x07e0 */ 226, 4,144, 7,229,141, 0, 32,224, 98, 96, 11, 10, 0, 0, 16,
|
/* 0x07e0 */ 227, 17, 0, 1, 3,160, 32, 3, 19,160, 32, 7,225,160, 0, 6,
|
||||||
/* 0x07f0 */ 227, 17, 0, 1, 3,160, 32, 3, 19,160, 32, 7,225,160, 0, 6,
|
/* 0x07f0 */ 225,160, 16, 10,227,160, 48, 16,235,255,254,213,225, 86, 0, 0,
|
||||||
/* 0x0800 */ 225,160, 16, 8,227,160, 48, 16,235,255,254,209,225, 86, 0, 0,
|
/* 0x0800 */ 26, 0, 0, 74,229,157, 32, 84,226, 20, 48, 4, 17,160, 48, 2,
|
||||||
/* 0x0810 */ 26, 0, 0, 74,229,157, 32, 84,226, 20, 48, 4, 17,160, 48, 2,
|
/* 0x0810 */ 229,157, 0, 12,226,141, 16, 36,229,157, 32, 16,235,255,255, 32,
|
||||||
/* 0x0820 */ 229,157, 0, 12,226,141, 16, 36,229,157, 32, 16,235,255,255, 28,
|
/* 0x0820 */ 234, 0, 0, 11,229, 21,192, 28,224, 98,192, 12,229,141,192, 4,
|
||||||
/* 0x0830 */ 234, 0, 0, 11,229, 21,192, 28,224, 98,192, 12,229,141,192, 4,
|
/* 0x0830 */ 229,157,192, 16,225,160, 0, 6,225,160, 16, 10,225,160, 32, 9,
|
||||||
/* 0x0840 */ 229,157,192, 16,225,160, 0, 6,225,160, 16, 8,225,160, 32, 9,
|
/* 0x0840 */ 227,160, 48, 18,229,141,192, 0,235,255,254,175,225, 86, 0, 0,
|
||||||
/* 0x0850 */ 227,160, 48, 18,229,141,192, 0,235,255,254,171,225, 86, 0, 0,
|
/* 0x0850 */ 26, 0, 0, 54,226,106, 48, 0,225,160,122, 3,227, 25, 0, 2,
|
||||||
/* 0x0860 */ 26, 0, 0, 54,226,104, 48, 0,225,160,122, 3,227, 25, 0, 2,
|
/* 0x0860 */ 225,160,122, 39, 10, 0, 0, 7,227, 87, 0, 0, 10, 0, 0, 5,
|
||||||
/* 0x0870 */ 225,160,122, 39, 10, 0, 0, 7,227, 87, 0, 0, 10, 0, 0, 5,
|
/* 0x0870 */ 224,134, 16, 10,225,160, 32, 7,227,160, 48, 0,226, 82, 32, 1,
|
||||||
/* 0x0880 */ 224,134, 16, 8,225,160, 32, 7,227,160, 48, 0,226, 82, 32, 1,
|
/* 0x0880 */ 228,193, 48, 1, 26,255,255,251,229,157, 0, 12,227, 80, 0, 0,
|
||||||
/* 0x0890 */ 228,193, 48, 1, 26,255,255,251,229,157, 0, 12,227, 80, 0, 0,
|
/* 0x0890 */ 10, 0, 0, 40,235,255,254,172,229, 21, 48, 32,227, 83, 0, 1,
|
||||||
/* 0x08a0 */ 10, 0, 0, 40,235,255,254,168,229, 21, 48, 32,227, 83, 0, 1,
|
/* 0x08a0 */ 229,141, 0, 28, 26, 0, 0, 27,229, 21, 48, 8,227, 19, 0, 1,
|
||||||
/* 0x08b0 */ 229,141, 0, 28, 26, 0, 0, 27,229, 21, 48, 8,227, 19, 0, 1,
|
/* 0x08b0 */ 10, 0, 0, 24,229, 21, 48, 16,229, 21, 32, 12,225, 82, 0, 3,
|
||||||
/* 0x08c0 */ 10, 0, 0, 24,229, 21, 48, 16,229, 21, 32, 12,225, 82, 0, 3,
|
/* 0x08c0 */ 229, 21, 48, 24, 26, 0, 0, 58,224,130, 48, 3,229,157, 32, 20,
|
||||||
/* 0x08d0 */ 229, 21, 48, 24, 26, 0, 0, 58,224,130, 48, 3,229,157, 32, 20,
|
/* 0x08d0 */ 226,131, 48, 3,224,130, 48, 3,227,195, 0, 3,226, 96, 48, 0,
|
||||||
/* 0x08e0 */ 226,131, 48, 3,224,130, 48, 3,227,195, 0, 3,226, 96, 48, 0,
|
/* 0x08e0 */ 225,160, 58, 3,225,160, 58, 35,227, 83, 0, 11,154, 0, 0, 48,
|
||||||
/* 0x08f0 */ 225,160, 58, 3,225,160, 58, 35,227, 83, 0, 11,154, 0, 0, 48,
|
/* 0x08f0 */ 229,157, 48, 28,229,128, 48, 0,229,159, 49, 48,229,128, 48, 4,
|
||||||
/* 0x0900 */ 229,157, 48, 28,229,128, 48, 0,229,159, 49, 48,229,128, 48, 4,
|
/* 0x0900 */ 229,159, 49, 44,226,128, 16, 12,229,128, 48, 8,225,160, 64, 0,
|
||||||
/* 0x0910 */ 229,159, 49, 44,226,128, 16, 12,229,128, 48, 8,225,160, 64, 0,
|
/* 0x0910 */ 235,255,254,138,234, 0, 0, 63,225,160, 0, 6,225,160, 16, 10,
|
||||||
/* 0x0920 */ 235,255,254,134,234, 0, 0, 63,225,160, 0, 6,225,160, 16, 8,
|
/* 0x0920 */ 225,160, 32, 9,235,255,254,114,227, 80, 0, 0, 10, 0, 0, 1,
|
||||||
/* 0x0930 */ 225,160, 32, 9,235,255,254,110,227, 80, 0, 0, 10, 0, 0, 1,
|
/* 0x0930 */ 227,160, 0,127,235,255,254, 91,229,157,192, 32,224,138, 48, 7,
|
||||||
/* 0x0940 */ 227,160, 0,127,235,255,254, 87,229,157,192, 32,224,136, 48, 7,
|
/* 0x0940 */ 224,139, 16, 12,224,134, 64, 3,225, 84, 0, 1, 42, 0, 0, 7,
|
||||||
/* 0x0950 */ 224,139, 16, 12,224,134, 64, 3,225, 84, 0, 1, 42, 0, 0, 7,
|
/* 0x0950 */ 224,100, 16, 1,225,160, 32, 9,225,160, 0, 4,227,160, 48, 16,
|
||||||
/* 0x0960 */ 224,100, 16, 1,225,160, 32, 9,225,160, 0, 4,227,160, 48, 16,
|
/* 0x0960 */ 235,255,254,123,225, 84, 0, 0, 10, 0, 0, 0,234,255,255,254,
|
||||||
/* 0x0970 */ 235,255,254,119,225, 84, 0, 0, 10, 0, 0, 0,234,255,255,254,
|
/* 0x0970 */ 229,157, 0, 24,226,128, 0, 1,229,141, 0, 24,226,133, 80, 32,
|
||||||
/* 0x0980 */ 229,157, 0, 24,226,128, 0, 1,229,141, 0, 24,226,133, 80, 32,
|
/* 0x0980 */ 225,216, 50,188,229,157, 32, 24,225, 82, 0, 3,186,255,255, 85,
|
||||||
/* 0x0990 */ 225,218, 50,188,229,157, 32, 24,225, 82, 0, 3,186,255,255, 85,
|
/* 0x0990 */ 229,157, 48, 80,227, 83, 0, 0, 21,157,192, 20, 21,131,192, 0,
|
||||||
/* 0x09a0 */ 229,157, 48, 80,227, 83, 0, 0, 21,157,192, 20, 21,131,192, 0,
|
/* 0x09a0 */ 229,157, 32, 20,229,152, 0, 24,224,130, 0, 0,226,141,208, 44,
|
||||||
/* 0x09b0 */ 229,157, 32, 20,229,154, 0, 24,224,130, 0, 0,226,141,208, 44,
|
/* 0x09b0 */ 232,189,143,240,227,160,224, 0,227,224,192, 0,225,160, 0, 14,
|
||||||
/* 0x09c0 */ 232,189,143,240,227,160,224, 0,227,224,192, 0,225,160, 0, 14,
|
/* 0x09c0 */ 227,160, 26, 1,227,160, 32, 7,227,160, 48, 34,232,141, 80, 0,
|
||||||
/* 0x09d0 */ 227,160, 26, 1,227,160, 32, 7,227,160, 48, 34,232,141, 80, 0,
|
/* 0x09d0 */ 235,255,254, 77,227, 80, 0, 0, 10,255,255,206,226,128, 48, 3,
|
||||||
/* 0x09e0 */ 235,255,254, 73,227, 80, 0, 0, 10,255,255,206,226,128, 48, 3,
|
/* 0x09e0 */ 227,195, 64, 3,229,159, 48, 68,229,157, 0, 28,229,132, 48, 4,
|
||||||
/* 0x09f0 */ 227,195, 64, 3,229,159, 48, 68,229,157, 0, 28,229,132, 48, 4,
|
/* 0x09f0 */ 229,159, 48, 60,229,132, 0, 0,226,132, 16, 12,225,160, 0, 4,
|
||||||
/* 0x0a00 */ 229,159, 48, 60,229,132, 0, 0,226,132, 16, 12,225,160, 0, 4,
|
/* 0x0a00 */ 229,132, 48, 8,235,255,254, 77,225,160, 0, 4,227,160, 16, 12,
|
||||||
/* 0x0a10 */ 229,132, 48, 8,235,255,254, 73,225,160, 0, 4,227,160, 16, 12,
|
/* 0x0a10 */ 227,160, 32, 5,235,255,254, 54,225,160, 32, 4,229,157, 0, 8,
|
||||||
/* 0x0a20 */ 227,160, 32, 5,235,255,254, 50,225,160, 32, 4,229,157, 0, 8,
|
/* 0x0a20 */ 227,160, 16, 0,235,255,254,106,234,255,255,186,115, 81, 98, 64,
|
||||||
/* 0x0a30 */ 227,160, 16, 0,235,255,254,102,234,255,255,186,115, 81, 98, 64,
|
/* 0x0a30 */ 232,189, 0, 3,225,160,240, 14,233, 45, 71,240,226, 77,208, 12,
|
||||||
/* 0x0a40 */ 232,189, 0, 3,225,160,240, 14,233, 45, 71,240,226, 77,208, 12,
|
/* 0x0a40 */ 226,141, 96, 52,225,160,144, 0,225,160,112, 1,225,160,128, 3,
|
||||||
/* 0x0a50 */ 226,141, 96, 52,225,160,144, 0,225,160,112, 1,225,160,128, 3,
|
/* 0x0a50 */ 225,160, 0, 6,226,141, 16, 44,227,160, 48, 0,229,157,160, 48,
|
||||||
/* 0x0a60 */ 225,160, 0, 6,226,141, 16, 44,227,160, 48, 0,229,157,160, 48,
|
/* 0x0a60 */ 225,160, 80, 2,229,157, 64, 52,235,255,254,141,229,157, 48, 60,
|
||||||
/* 0x0a70 */ 225,160, 80, 2,229,157, 64, 52,235,255,254,137,229,157, 48, 60,
|
/* 0x0a70 */ 226,141,224, 12,229,157,192, 56,229, 46, 48, 4,224,100,192, 12,
|
||||||
/* 0x0a80 */ 226,141,224, 12,229,157,192, 56,229, 46, 48, 4,224,100,192, 12,
|
/* 0x0a80 */ 225,160, 32, 6,225,160, 16, 10,225,160, 48, 9,225,160, 0, 5,
|
||||||
/* 0x0a90 */ 225,160, 32, 6,225,160, 16, 10,225,160, 48, 9,225,160, 0, 5,
|
/* 0x0a90 */ 229,141,192, 56,229,141,224, 0,229,141,112, 52,229,141,128, 4,
|
||||||
/* 0x0aa0 */ 229,141,192, 56,229,141,224, 0,229,141,112, 52,229,141,128, 4,
|
/* 0x0aa0 */ 235,255,254,209,225,160, 64, 0,227,160, 16, 9,225,160, 0, 9,
|
||||||
/* 0x0ab0 */ 235,255,254,205,225,160, 64, 0,227,160, 16, 9,225,160, 0, 9,
|
/* 0x0ab0 */ 225,160, 32, 4,235,255,254, 70,225,218, 2,188,226,138, 32, 52,
|
||||||
/* 0x0ac0 */ 225,160, 32, 4,235,255,254, 66,225,218, 2,188,226,138, 32, 52,
|
/* 0x0ac0 */ 227,160, 16, 0,234, 0, 0, 35,229,146, 48, 0,227, 83, 0, 3,
|
||||||
/* 0x0ad0 */ 227,160, 16, 0,234, 0, 0, 35,229,146, 48, 0,227, 83, 0, 3,
|
/* 0x0ad0 */ 26, 0, 0, 30,229,146, 48, 8,229,157, 0, 8,227,160, 16, 0,
|
||||||
/* 0x0ae0 */ 26, 0, 0, 30,229,146, 48, 8,229,157, 0, 8,227,160, 16, 0,
|
/* 0x0ae0 */ 224,131, 0, 0,225,160, 32, 1,235,255,253,243,226, 80, 80, 0,
|
||||||
/* 0x0af0 */ 224,131, 0, 0,225,160, 32, 1,235,255,253,239,226, 80, 80, 0,
|
/* 0x0af0 */ 186, 0, 0, 4,225,160, 16, 10,227,160, 44, 2,235,255,253,234,
|
||||||
/* 0x0b00 */ 186, 0, 0, 4,225,160, 16, 10,227,160, 44, 2,235,255,253,230,
|
/* 0x0b00 */ 227, 80, 12, 2, 10, 0, 0, 1,227,160, 0,127,235,255,253,229,
|
||||||
/* 0x0b10 */ 227, 80, 12, 2, 10, 0, 0, 1,227,160, 0,127,235,255,253,225,
|
/* 0x0b10 */ 227,160,224, 0,225,160, 32, 14,226,141,192, 8,225,160, 16, 10,
|
||||||
/* 0x0b20 */ 227,160,224, 0,225,160, 32, 14,226,141,192, 8,225,160, 16, 10,
|
/* 0x0b20 */ 225,160, 48, 9,225,160, 0, 5,232,141, 80, 0,235,255,254,174,
|
||||||
/* 0x0b30 */ 225,160, 48, 9,225,160, 0, 5,232,141, 80, 0,235,255,254,170,
|
/* 0x0b30 */ 227,160, 16, 7,225,160, 64, 0,229,157, 32, 8,225,160, 0, 9,
|
||||||
/* 0x0b40 */ 227,160, 16, 7,225,160, 64, 0,229,157, 32, 8,225,160, 0, 9,
|
/* 0x0b40 */ 235,255,254, 35,225,160, 0, 5,235,255,253,221,234, 0, 0, 3,
|
||||||
/* 0x0b50 */ 235,255,254, 31,225,160, 0, 5,235,255,253,217,234, 0, 0, 3,
|
/* 0x0b50 */ 226,130, 32, 32,226,129, 16, 1,225, 81, 0, 0,186,255,255,217,
|
||||||
/* 0x0b60 */ 226,130, 32, 32,226,129, 16, 1,225, 81, 0, 0,186,255,255,217,
|
/* 0x0b60 */ 225,160, 0, 4,226,141,208, 12,232,189,135,240
|
||||||
/* 0x0b70 */ 225,160, 0, 4,226,141,208, 12,232,189,135,240
|
|
||||||
};
|
};
|
||||||
|
|||||||
Generated
+1853
-1862
File diff suppressed because it is too large
Load Diff
Generated
+78
-79
@@ -1,5 +1,5 @@
|
|||||||
/* i386-linux.elf-fold.h
|
/* i386-linux.elf-fold.h
|
||||||
created from i386-linux.elf-fold.bin, 2072 (0x818) bytes
|
created from i386-linux.elf-fold.bin, 2062 (0x80e) bytes
|
||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
@@ -32,17 +32,17 @@
|
|||||||
|
|
||||||
/* clang-format off */
|
/* clang-format off */
|
||||||
|
|
||||||
#define STUB_I386_LINUX_ELF_FOLD_SIZE 2072
|
#define STUB_I386_LINUX_ELF_FOLD_SIZE 2062
|
||||||
#define STUB_I386_LINUX_ELF_FOLD_ADLER32 0xde277fa3
|
#define STUB_I386_LINUX_ELF_FOLD_ADLER32 0xc62579f8
|
||||||
#define STUB_I386_LINUX_ELF_FOLD_CRC32 0xce57936c
|
#define STUB_I386_LINUX_ELF_FOLD_CRC32 0x37c0a1a9
|
||||||
|
|
||||||
unsigned char stub_i386_linux_elf_fold[2072] = {
|
unsigned char stub_i386_linux_elf_fold[2062] = {
|
||||||
/* 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 */ 2, 0, 3, 0, 1, 0, 0, 0,128, 16,192, 0, 52, 0, 0, 0,
|
/* 0x0010 */ 2, 0, 3, 0, 1, 0, 0, 0,128, 16,192, 0, 52, 0, 0, 0,
|
||||||
/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 32, 0, 2, 0, 0, 0,
|
/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 32, 0, 2, 0, 0, 0,
|
||||||
/* 0x0030 */ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 16,192, 0,
|
/* 0x0030 */ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 16,192, 0,
|
||||||
/* 0x0040 */ 0, 16,192, 0, 24, 8, 0, 0, 24, 8, 0, 0, 5, 0, 0, 0,
|
/* 0x0040 */ 0, 16,192, 0, 14, 8, 0, 0, 16, 8, 0, 0, 5, 0, 0, 0,
|
||||||
/* 0x0050 */ 0, 16, 0, 0, 1, 0, 0, 0, 24, 8, 0, 0, 0, 0, 0, 0,
|
/* 0x0050 */ 0, 16, 0, 0, 1, 0, 0, 0, 14, 8, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0060 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0060 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0070 */ 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0070 */ 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0080 */ 87, 81, 80,137,230,129,236, 0, 16, 0, 0,137,231,106, 8, 89,
|
/* 0x0080 */ 87, 81, 80,137,230,129,236, 0, 16, 0, 0,137,231,106, 8, 89,
|
||||||
@@ -57,7 +57,7 @@ unsigned char stub_i386_linux_elf_fold[2072] = {
|
|||||||
/* 0x0110 */ 49,248,131,224, 4, 41,199, 90, 1,250,175,173,193,233, 2, 73,
|
/* 0x0110 */ 49,248,131,224, 4, 41,199, 90, 1,250,175,173,193,233, 2, 73,
|
||||||
/* 0x0120 */ 243,165,252,141, 79, 4, 49,192, 41,225,137,231,193,233, 2,243,
|
/* 0x0120 */ 243,165,252,141, 79, 4, 49,192, 41,225,137,231,193,233, 2,243,
|
||||||
/* 0x0130 */ 171,137,252,137,215, 88, 93, 88, 94, 89,129,236, 0, 10, 0, 0,
|
/* 0x0130 */ 171,137,252,137,215, 88, 93, 88, 94, 89,129,236, 0, 10, 0, 0,
|
||||||
/* 0x0140 */ 137,226, 81,139, 24,139, 72, 4,131,193, 12, 96, 71,232,188, 5,
|
/* 0x0140 */ 137,226, 81,139, 24,139, 72, 4,131,193, 12, 96, 71,232,178, 5,
|
||||||
/* 0x0150 */ 0, 0, 79,137,198,139,108, 36, 32,139, 77,104,137,235,102,131,
|
/* 0x0150 */ 0, 0, 79,137,198,139,108, 36, 32,139, 77,104,137,235,102,131,
|
||||||
/* 0x0160 */ 125, 16, 2,117, 5,106, 45, 88,205,128,106, 91, 88,205,128,137,
|
/* 0x0160 */ 125, 16, 2,117, 5,106, 45, 88,205,128,106, 91, 88,205,128,137,
|
||||||
/* 0x0170 */ 250,137,231,185,137, 2, 0, 0, 49,192,243,171,137,252, 88, 89,
|
/* 0x0170 */ 250,137,231,185,137, 2, 0, 0, 49,192,243,171,137,252, 88, 89,
|
||||||
@@ -96,75 +96,74 @@ unsigned char stub_i386_linux_elf_fold[2072] = {
|
|||||||
/* 0x0380 */ 228,137, 85,224,139, 69, 8,139, 85, 12,139, 77, 16,137, 69,220,
|
/* 0x0380 */ 228,137, 85,224,139, 69, 8,139, 85, 12,139, 77, 16,137, 69,220,
|
||||||
/* 0x0390 */ 139,117, 20,137, 85,216,137, 77,212,137,117,208,232,206,255,255,
|
/* 0x0390 */ 139,117, 20,137, 85,216,137, 77,212,137,117,208,232,206,255,255,
|
||||||
/* 0x03a0 */ 255,139, 85,224,137,198,247,208, 3, 82, 28,137, 69,204,131,125,
|
/* 0x03a0 */ 255,139, 85,224,137,198,247,208, 3, 82, 28,137, 69,204,131,125,
|
||||||
/* 0x03b0 */ 220, 0,137, 85,200,116, 51,139, 77,212,139, 1,102,131,120, 16,
|
/* 0x03b0 */ 220, 0,137, 85,200,116, 41,139, 77,212,139, 1,102,131,120, 16,
|
||||||
/* 0x03c0 */ 2,141, 80, 52,117, 12,139, 90, 8,199, 69,196, 0, 0, 0, 0,
|
/* 0x03c0 */ 2,141, 80, 52,117, 12,139, 66, 8,199, 69,196, 0, 0, 0, 0,
|
||||||
/* 0x03d0 */ 235, 8,137,195, 43, 90, 40,137, 93,196,139, 74, 20,141, 4, 25,
|
/* 0x03d0 */ 235, 6, 43, 66, 40,137, 69,196, 3, 66, 20,137, 69,240,235,127,
|
||||||
/* 0x03e0 */ 137, 69,240,106, 91, 88,205,128,235,127,139, 69,224,139, 85,224,
|
/* 0x03e0 */ 139, 69,224,139, 85,224,102,131,120, 16, 3, 15,183, 82, 44,139,
|
||||||
/* 0x03f0 */ 102,131,120, 16, 3, 15,183, 82, 44,139, 93,200, 15,149,192, 15,
|
/* 0x03f0 */ 93,200, 15,149,192, 15,182,248,137, 85,192,232,111,255,255,255,
|
||||||
/* 0x0400 */ 182,248,137, 85,192,232,101,255,255,255,139, 77,192,193,231, 4,
|
/* 0x0400 */ 139, 77,192,193,231, 4,137,240, 49,246, 73,199, 69,188,255,255,
|
||||||
/* 0x0410 */ 137,240, 49,246, 73,199, 69,188,255,255,255,255,120, 33,139, 77,
|
/* 0x0410 */ 255,255,120, 33,139, 77,192,131, 59, 1,117, 20,139, 83, 8, 59,
|
||||||
/* 0x0420 */ 192,131, 59, 1,117, 20,139, 83, 8, 59, 85,188,115, 3,137, 85,
|
/* 0x0420 */ 85,188,115, 3,137, 85,188, 3, 83, 20, 57,214,115, 2,137,214,
|
||||||
/* 0x0430 */ 188, 3, 83, 20, 57,214,115, 2,137,214,131,195, 32,226,226,139,
|
/* 0x0430 */ 131,195, 32,226,226,139, 93,188,106, 0,106,255,131,207, 34, 33,
|
||||||
/* 0x0440 */ 93,188,106, 0,106,255,131,207, 34, 33,195, 87, 41,222,106, 0,
|
/* 0x0440 */ 195, 87, 41,222,106, 0, 41,198, 78, 33,198, 86, 83,232,150,253,
|
||||||
/* 0x0450 */ 41,198, 78, 33,198, 86, 83,232,140,253,255,255,131,196, 24, 1,
|
/* 0x0450 */ 255,255,131,196, 24, 1,198, 41,216,137,117,240,137, 69,196,139,
|
||||||
/* 0x0460 */ 198, 41,216,137,117,240,137, 69,196,139,117,224,199, 69,184, 0,
|
/* 0x0460 */ 117,224,199, 69,184, 0, 0, 0, 0,102,131,126, 44, 0, 15,132,
|
||||||
/* 0x0470 */ 0, 0, 0,102,131,126, 44, 0, 15,132,110, 2, 0, 0,131,125,
|
/* 0x0470 */ 110, 2, 0, 0,131,125,220, 0,116, 32,139, 69,200,131, 56, 6,
|
||||||
/* 0x0480 */ 220, 0,116, 32,139, 69,200,131, 56, 6,117, 24,139, 77,196,186,
|
/* 0x0480 */ 117, 24,139, 77,196,186, 3, 0, 0, 0, 3, 72, 8,139, 69,216,
|
||||||
/* 0x0490 */ 3, 0, 0, 0, 3, 72, 8,139, 69,216,232,130,254,255,255,233,
|
/* 0x0490 */ 232,140,254,255,255,233, 49, 2, 0, 0,139, 85,200,131, 58, 1,
|
||||||
/* 0x04a0 */ 49, 2, 0, 0,139, 85,200,131, 58, 1, 15,133, 37, 2, 0, 0,
|
/* 0x04a0 */ 15,133, 37, 2, 0, 0,131,122, 20, 0, 15,132, 27, 2, 0, 0,
|
||||||
/* 0x04b0 */ 131,122, 20, 0, 15,132, 27, 2, 0, 0,131,125,220, 0,116, 65,
|
/* 0x04b0 */ 131,125,220, 0,116, 65,131,122, 4, 0,117, 59,139,117,224,139,
|
||||||
/* 0x04c0 */ 131,122, 4, 0,117, 59,139,117,224,139, 77,196, 3, 74, 8,186,
|
/* 0x04c0 */ 77,196, 3, 74, 8,186, 3, 0, 0, 0, 3, 78, 28,139, 69,216,
|
||||||
/* 0x04d0 */ 3, 0, 0, 0, 3, 78, 28,139, 69,216,232, 66,254,255,255, 15,
|
/* 0x04d0 */ 232, 76,254,255,255, 15,183, 78, 44,139, 69,216,186, 5, 0, 0,
|
||||||
/* 0x04e0 */ 183, 78, 44,139, 69,216,186, 5, 0, 0, 0,232, 49,254,255,255,
|
/* 0x04e0 */ 0,232, 59,254,255,255, 15,183, 78, 42,139, 69,216,186, 4, 0,
|
||||||
/* 0x04f0 */ 15,183, 78, 42,139, 69,216,186, 4, 0, 0, 0,232, 32,254,255,
|
/* 0x04f0 */ 0, 0,232, 42,254,255,255,139, 69,200,187, 64, 98, 81,115,139,
|
||||||
/* 0x0500 */ 255,139, 69,200,187, 64, 98, 81,115,139, 72, 24,131,225, 7,193,
|
/* 0x0500 */ 72, 24,131,225, 7,193,225, 2,211,235,139, 77,200,137,218,131,
|
||||||
/* 0x0510 */ 225, 2,211,235,139, 77,200,137,218,131,226, 7,139,113, 20,137,
|
/* 0x0510 */ 226, 7,139,113, 20,137, 85,180,139, 80, 16,139, 69,196, 3, 65,
|
||||||
/* 0x0520 */ 85,180,139, 80, 16,139, 69,196, 3, 65, 8,137, 85,232,139, 77,
|
/* 0x0520 */ 8,137, 85,232,139, 77,204, 1,198, 33,193,137,117,176,137,198,
|
||||||
/* 0x0530 */ 204, 1,198, 33,193,137,117,176,137,198, 41,206,131,125,220, 0,
|
/* 0x0530 */ 41,206,131,125,220, 0,137, 69,236,141, 60, 10,116, 58,106, 0,
|
||||||
/* 0x0540 */ 137, 69,236,141, 60, 10,116, 58,106, 0,106,255,106, 50,141, 71,
|
/* 0x0540 */ 106,255,106, 50,141, 71, 3,106, 3, 80, 86,232,152,252,255,255,
|
||||||
/* 0x0550 */ 3,106, 3, 80, 86,232,142,252,255,255,131,196, 24, 57,198, 15,
|
/* 0x0550 */ 131,196, 24, 57,198, 15,133, 36, 1, 0, 0,128,227, 4,139, 69,
|
||||||
/* 0x0560 */ 133, 36, 1, 0, 0,128,227, 4,139, 69,208,117, 2, 49,192, 80,
|
/* 0x0560 */ 208,117, 2, 49,192, 80,139, 69,220,255,117,228,141, 85,232,232,
|
||||||
/* 0x0570 */ 139, 69,220,255,117,228,141, 85,232,232,195,252,255,255, 88, 90,
|
/* 0x0570 */ 205,252,255,255, 88, 90,235, 35,139, 85,200,139, 66, 4, 41,200,
|
||||||
/* 0x0580 */ 235, 35,139, 85,200,139, 66, 4, 41,200, 80,255,117,228,106, 18,
|
/* 0x0580 */ 80,255,117,228,106, 18,255,117,180, 87, 86,232, 88,252,255,255,
|
||||||
/* 0x0590 */ 255,117,180, 87, 86,232, 78,252,255,255,131,196, 24, 57,198, 15,
|
/* 0x0590 */ 131,196, 24, 57,198, 15,133,228, 0, 0, 0,137,249,139, 69,204,
|
||||||
/* 0x05a0 */ 133,228, 0, 0, 0,137,249,139, 69,204,247,217, 33,193,246, 69,
|
/* 0x05a0 */ 247,217, 33,193,246, 69,180, 2,137, 77,168,116, 13,133,201,141,
|
||||||
/* 0x05b0 */ 180, 2,137, 77,168,116, 13,133,201,141, 4, 62,116, 6,198, 0,
|
/* 0x05b0 */ 4, 62,116, 6,198, 0, 0, 64,226,250,131,125,220, 0, 15,132,
|
||||||
/* 0x05c0 */ 0, 64,226,250,131,125,220, 0, 15,132,197, 0, 0, 0,139, 85,
|
/* 0x05c0 */ 197, 0, 0, 0,139, 85,200,199, 69,172, 0, 0, 0, 0,131, 58,
|
||||||
/* 0x05d0 */ 200,199, 69,172, 0, 0, 0, 0,131, 58, 1, 15,133,151, 0, 0,
|
/* 0x05d0 */ 1, 15,133,151, 0, 0, 0,246, 66, 24, 1, 15,132,141, 0, 0,
|
||||||
/* 0x05e0 */ 0,246, 66, 24, 1, 15,132,141, 0, 0, 0,137,209,139, 82, 20,
|
/* 0x05e0 */ 0,137,209,139, 82, 20,137,200,139, 73, 8,141, 28, 10, 3, 93,
|
||||||
/* 0x05f0 */ 137,200,139, 73, 8,141, 28, 10, 3, 93,196, 59, 80, 16,117, 14,
|
/* 0x05f0 */ 196, 59, 80, 16,117, 14,137,216,247,216, 37,255, 15, 0, 0,131,
|
||||||
/* 0x0600 */ 137,216,247,216, 37,255, 15, 0, 0,131,248, 3,119, 53,139, 85,
|
/* 0x0600 */ 248, 3,119, 53,139, 85,200,107, 69,196, 52,131,122, 4, 0,141,
|
||||||
/* 0x0610 */ 200,107, 69,196, 52,131,122, 4, 0,141, 92, 1, 12,116, 36,106,
|
/* 0x0610 */ 92, 1, 12,116, 36,106, 0,106,255,106, 34,106, 3,104, 0, 16,
|
||||||
/* 0x0620 */ 0,106,255,106, 34,106, 3,104, 0, 16, 0, 0,106, 0,199, 69,
|
/* 0x0620 */ 0, 0,106, 0,199, 69,172, 1, 0, 0, 0,232,184,251,255,255,
|
||||||
/* 0x0630 */ 172, 1, 0, 0, 0,232,174,251,255,255,131,196, 24,133,192,137,
|
/* 0x0630 */ 131,196, 24,133,192,137,195,116, 53,139, 3, 61,205,128, 97,195,
|
||||||
/* 0x0640 */ 195,116, 53,139, 3, 61,205,128, 97,195,116, 6,199, 3,205,128,
|
/* 0x0640 */ 116, 6,199, 3,205,128, 97,195,131,125,172, 0,116, 13,106, 5,
|
||||||
/* 0x0650 */ 97,195,131,125,172, 0,116, 13,106, 5,106, 4, 83,232, 94,251,
|
/* 0x0650 */ 106, 4, 83,232,104,251,255,255,131,196, 12,133,219,116, 15,139,
|
||||||
/* 0x0660 */ 255,255,131,196, 12,133,219,116, 15,139, 69,216,137,217, 49,210,
|
/* 0x0660 */ 69,216,137,217, 49,210,131,224,254,232,179,252,255,255,255,117,
|
||||||
/* 0x0670 */ 131,224,254,232,169,252,255,255,255,117,180, 87, 86,232, 62,251,
|
/* 0x0670 */ 180, 87, 86,232, 72,251,255,255,131,196, 12,133,192,116, 10,106,
|
||||||
/* 0x0680 */ 255,255,131,196, 12,133,192,116, 10,106,127, 91,106, 1, 88,205,
|
/* 0x0680 */ 127, 91,106, 1, 88,205,128,235,254,139, 77,168,141, 4, 15,141,
|
||||||
/* 0x0690 */ 128,235,254,139, 77,168,141, 4, 15,141, 28, 6, 59, 93,176,115,
|
/* 0x0690 */ 28, 6, 59, 93,176,115, 30,106, 0,106,255,106, 50,255,117,180,
|
||||||
/* 0x06a0 */ 30,106, 0,106,255,106, 50,255,117,180, 41, 93,176,255,117,176,
|
/* 0x06a0 */ 41, 93,176,255,117,176, 83,232, 60,251,255,255,131,196, 24, 57,
|
||||||
/* 0x06b0 */ 83,232, 50,251,255,255,131,196, 24, 57,195,116, 24,235,254,131,
|
/* 0x06b0 */ 195,116, 24,235,254,131,125,220, 0,116, 16,141, 79, 3, 35, 77,
|
||||||
/* 0x06c0 */ 125,220, 0,116, 16,141, 79, 3, 35, 77,204,131,249, 3,119, 5,
|
/* 0x06c0 */ 204,131,249, 3,119, 5,106, 91, 88,205,128,139,117,224,255, 69,
|
||||||
/* 0x06d0 */ 106, 91, 88,205,128,139,117,224,255, 69,184, 15,183, 70, 44,131,
|
/* 0x06d0 */ 184, 15,183, 70, 44,131, 69,200, 32, 57, 69,184, 15,140,146,253,
|
||||||
/* 0x06e0 */ 69,200, 32, 57, 69,184, 15,140,146,253,255,255,131,125,212, 0,
|
/* 0x06e0 */ 255,255,131,125,212, 0,116, 8,139, 85,196,139, 69,212,137, 16,
|
||||||
/* 0x06f0 */ 116, 8,139, 85,196,139, 69,212,137, 16,139, 77,224,139, 73, 24,
|
/* 0x06f0 */ 139, 77,224,139, 73, 24, 1, 77,196,139, 69,196,141,101,244, 91,
|
||||||
/* 0x0700 */ 1, 77,196,139, 69,196,141,101,244, 91, 94, 95,201,195, 85,137,
|
/* 0x0700 */ 94, 95,201,195, 85,137,229, 87, 86, 83,131,236, 32,199, 69,232,
|
||||||
/* 0x0710 */ 229, 87, 86, 83,131,236, 32,199, 69,232, 0, 0, 0, 0,139, 69,
|
/* 0x0710 */ 0, 0, 0, 0,139, 69, 8,139,117, 16,137, 69,236,128, 62,235,
|
||||||
/* 0x0720 */ 8,139,117, 16,137, 69,236,128, 62,235,117, 6,141, 86, 2,137,
|
/* 0x0720 */ 117, 6,141, 86, 2,137, 85,232,106, 0,139,125, 28,141, 85, 24,
|
||||||
/* 0x0730 */ 85,232,106, 0,139,125, 28,141, 85, 24,139, 93, 32,141, 69, 32,
|
/* 0x0730 */ 139, 93, 32,141, 69, 32, 86,232, 5,251,255,255,139, 69, 12, 41,
|
||||||
/* 0x0740 */ 86,232,251,250,255,255,139, 69, 12, 41, 93, 36,137,250,141, 93,
|
/* 0x0740 */ 93, 36,137,250,141, 93,240,255,117,232,137, 69, 32,139, 69, 40,
|
||||||
/* 0x0750 */ 240,255,117,232,137, 69, 32,139, 69, 40, 83,255,117,236,137, 69,
|
/* 0x0750 */ 83,255,117,236,137, 69,240,141, 69, 32,141, 79, 52, 80,137,240,
|
||||||
/* 0x0760 */ 240,141, 69, 32,141, 79, 52, 80,137,240,137, 77,228,232, 3,252,
|
/* 0x0760 */ 137, 77,228,232, 13,252,255,255,137,193,137, 69,224,139, 69,236,
|
||||||
/* 0x0770 */ 255,255,137,193,137, 69,224,139, 69,236,186, 9, 0, 0, 0,232,
|
/* 0x0770 */ 186, 9, 0, 0, 0,232,167,251,255,255,102,139, 79, 44,131,196,
|
||||||
/* 0x0780 */ 157,251,255,255,102,139, 79, 44,131,196, 24, 49,210,102,133,201,
|
/* 0x0780 */ 24, 49,210,102,133,201,116,123,139, 69,228,131, 56, 3,117,103,
|
||||||
/* 0x0790 */ 116,123,139, 69,228,131, 56, 3,117,103,139, 93,240, 49,201, 3,
|
/* 0x0790 */ 139, 93,240, 49,201, 3, 88, 8,137,202,106, 5, 88,205,128,133,
|
||||||
/* 0x07a0 */ 88, 8,137,202,106, 5, 88,205,128,133,192,137,198,120, 21,186,
|
/* 0x07a0 */ 192,137,198,120, 21,186, 0, 2, 0, 0,137,195,137,249,106, 3,
|
||||||
/* 0x07b0 */ 0, 2, 0, 0,137,195,137,249,106, 3, 88,205,128, 61, 0, 2,
|
/* 0x07b0 */ 88,205,128, 61, 0, 2, 0, 0,116, 10,106,127, 91,106, 1, 88,
|
||||||
/* 0x07c0 */ 0, 0,116, 10,106,127, 91,106, 1, 88,205,128,235,254,141, 69,
|
/* 0x07c0 */ 205,128,235,254,141, 69,240,137,250,106, 0,137,243, 80,137,240,
|
||||||
/* 0x07d0 */ 240,137,250,106, 0,137,243, 80,137,240,255,117,236,106, 0,232,
|
/* 0x07d0 */ 255,117,236,106, 0,232,155,251,255,255,139, 77,240,137, 69,224,
|
||||||
/* 0x07e0 */ 145,251,255,255,139, 77,240,137, 69,224,139, 69,236,186, 7, 0,
|
/* 0x07e0 */ 139, 69,236,186, 7, 0, 0, 0,232, 52,251,255,255,131,196, 16,
|
||||||
/* 0x07f0 */ 0, 0,232, 42,251,255,255,131,196, 16,106, 6, 88,205,128,235,
|
/* 0x07f0 */ 106, 6, 88,205,128,235, 12, 66, 15,183,193,131, 69,228, 32, 57,
|
||||||
/* 0x0800 */ 12, 66, 15,183,193,131, 69,228, 32, 57,194,124,133,139, 69,224,
|
/* 0x0800 */ 194,124,133,139, 69,224,141,101,244, 91, 94, 95,201,195
|
||||||
/* 0x0810 */ 141,101,244, 91, 94, 95,201,195
|
|
||||||
};
|
};
|
||||||
|
|||||||
Generated
+1853
-1862
File diff suppressed because it is too large
Load Diff
Generated
+51
-47
@@ -1,5 +1,5 @@
|
|||||||
/* i386-linux.elf.execve-fold.h
|
/* i386-linux.elf.execve-fold.h
|
||||||
created from i386-linux.elf.execve-fold.bin, 1027 (0x403) bytes
|
created from i386-linux.elf.execve-fold.bin, 1095 (0x447) bytes
|
||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
@@ -32,29 +32,29 @@
|
|||||||
|
|
||||||
/* clang-format off */
|
/* clang-format off */
|
||||||
|
|
||||||
#define STUB_I386_LINUX_ELF_EXECVE_FOLD_SIZE 1027
|
#define STUB_I386_LINUX_ELF_EXECVE_FOLD_SIZE 1095
|
||||||
#define STUB_I386_LINUX_ELF_EXECVE_FOLD_ADLER32 0xadf29d6b
|
#define STUB_I386_LINUX_ELF_EXECVE_FOLD_ADLER32 0xd19cb5b7
|
||||||
#define STUB_I386_LINUX_ELF_EXECVE_FOLD_CRC32 0xe444d00d
|
#define STUB_I386_LINUX_ELF_EXECVE_FOLD_CRC32 0xc7a67867
|
||||||
|
|
||||||
unsigned char stub_i386_linux_elf_execve_fold[1027] = {
|
unsigned char stub_i386_linux_elf_execve_fold[1095] = {
|
||||||
/* 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 */ 2, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0,
|
/* 0x0010 */ 2, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0,
|
||||||
/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 32, 0, 2, 0, 0, 0,
|
/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 32, 0, 2, 0, 0, 0,
|
||||||
/* 0x0030 */ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 16, 64, 0,
|
/* 0x0030 */ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 16, 64, 0,
|
||||||
/* 0x0040 */ 0, 16, 64, 0, 3, 4, 0, 0, 4, 4, 0, 0, 5, 0, 0, 0,
|
/* 0x0040 */ 0, 16, 64, 0, 71, 4, 0, 0, 72, 4, 0, 0, 5, 0, 0, 0,
|
||||||
/* 0x0050 */ 0, 16, 0, 0, 1, 0, 0, 0, 3, 4, 0, 0, 0, 0, 0, 0,
|
/* 0x0050 */ 0, 16, 0, 0, 1, 0, 0, 0, 71, 4, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0060 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0060 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0070 */ 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0070 */ 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0080 */ 88,137,225,141, 84,132, 4,139,123, 24,141,179,128, 0, 0, 0,
|
/* 0x0080 */ 88,137,225,141, 84,132, 4,139,123, 24,141,179,128, 0, 0, 0,
|
||||||
/* 0x0090 */ 41,247,141, 93, 2, 96,232, 37, 1, 0, 0,244, 83,141, 92, 36,
|
/* 0x0090 */ 41,247,141, 93, 2, 96,232, 39, 1, 0, 0,244, 83,141, 92, 36,
|
||||||
/* 0x00a0 */ 8,106, 90, 88,205,128, 91,195, 83,137,195,139, 76, 36, 8,136,
|
/* 0x00a0 */ 8,106, 90, 88,205,128, 91,195, 83,137,195,139, 76, 36, 8,136,
|
||||||
/* 0x00b0 */ 208,131,224, 31, 60, 25,118, 3,131,232, 43,131,192, 65, 75,136,
|
/* 0x00b0 */ 208,131,224, 31, 60, 25,118, 3,131,232, 43,131,192, 65, 75,136,
|
||||||
/* 0x00c0 */ 3,137,208,193,232, 5,137,194,226,229, 91,195, 85,137,229, 87,
|
/* 0x00c0 */ 3,137,208,193,232, 5,137,194,226,229, 91,195, 85,137,229, 87,
|
||||||
/* 0x00d0 */ 86, 49,255, 83,137,249,131,236, 96,137,250,139, 93, 8,106, 5,
|
/* 0x00d0 */ 86, 49,255, 83,137,249,131,236, 96,137,250,139, 93, 8,106, 5,
|
||||||
/* 0x00e0 */ 88,205,128,133,192,137,198, 15,136,199, 0, 0, 0,199, 69,212,
|
/* 0x00e0 */ 88,205,128,133,192,137,198, 15,136,199, 0, 0, 0,199, 69,212,
|
||||||
/* 0x00f0 */ 47,112,114,111,199, 69,216, 99, 47, 0, 0,106, 20, 88,205,128,
|
/* 0x00f0 */ 47,112,114,111,199, 69,216, 99, 47, 0, 0,106, 20, 88,205,128,
|
||||||
/* 0x0100 */ 141, 85,218,141, 93,212,232,213, 2, 0, 0,141, 80, 4,199, 0,
|
/* 0x0100 */ 141, 85,218,141, 93,212,232, 25, 3, 0, 0,141, 80, 4,199, 0,
|
||||||
/* 0x0110 */ 47,102,100, 47,137,240,232,197, 2, 0, 0,186, 1, 0, 0, 0,
|
/* 0x0110 */ 47,102,100, 47,137,240,232, 9, 3, 0, 0,186, 1, 0, 0, 0,
|
||||||
/* 0x0120 */ 106, 33, 88,106, 5, 89,205,128, 61, 85, 80, 88, 50,117,126,139,
|
/* 0x0120 */ 106, 33, 88,106, 5, 89,205,128, 61, 85, 80, 88, 50,117,126,139,
|
||||||
/* 0x0130 */ 93, 8,106, 10, 88,205,128,185, 2, 0, 0, 0,137,243,106, 55,
|
/* 0x0130 */ 93, 8,106, 10, 88,205,128,185, 2, 0, 0, 0,137,243,106, 55,
|
||||||
/* 0x0140 */ 88,205,128,141, 93,212,139, 77, 12,139, 85, 16,106, 11, 88,205,
|
/* 0x0140 */ 88,205,128,141, 93,212,139, 77, 12,139, 85, 16,106, 11, 88,205,
|
||||||
@@ -65,41 +65,45 @@ unsigned char stub_i386_linux_elf_execve_fold[1027] = {
|
|||||||
/* 0x0190 */ 137,250,106, 4, 88,205,128, 57,199,116, 10,106,127, 91,106, 1,
|
/* 0x0190 */ 137,250,106, 4, 88,205,128, 57,199,116, 10,106,127, 91,106, 1,
|
||||||
/* 0x01a0 */ 88,205,128,235,254,139, 93,148,106, 6, 88,205,128,137,243,106,
|
/* 0x01a0 */ 88,205,128,235,254,139, 93,148,106, 6, 88,205,128,137,243,106,
|
||||||
/* 0x01b0 */ 6, 88,205,128,141,101,244,137,240, 91, 94, 95,201,194, 12, 0,
|
/* 0x01b0 */ 6, 88,205,128,141,101,244,137,240, 91, 94, 95,201,194, 12, 0,
|
||||||
/* 0x01c0 */ 85,137,229, 87, 86, 83,131,236,124,141,125,228,139, 69, 16,139,
|
/* 0x01c0 */ 204,195, 85,137,229, 87, 86, 83,131,236,124,141,125,228,139, 69,
|
||||||
/* 0x01d0 */ 117, 12,137, 69,156,165,165,165,131,109, 8, 12,129,125,228, 85,
|
/* 0x01d0 */ 16,139,117, 12,137, 69,156,165,165,165,131,109, 8, 12,129,125,
|
||||||
/* 0x01e0 */ 80, 88, 51,137,117, 12, 15,133,112, 1, 0, 0,199, 69,196, 47,
|
/* 0x01e0 */ 228, 85, 80, 88, 51,137,117, 12,116, 4,106, 11,235,107,199, 69,
|
||||||
/* 0x01f0 */ 116,109,112,199, 69,200, 47,117,112,120,141, 77,215,106, 20, 88,
|
/* 0x01f0 */ 196, 47,116,109,112,199, 69,200, 47,117,112,120,141, 77,215,106,
|
||||||
/* 0x0200 */ 205,128,137,194,106, 4,137,200,141,125,211,232,152,254,255,255,
|
/* 0x0200 */ 20, 88,205,128,137,194,106, 4,137,200,141,125,211,232,150,254,
|
||||||
/* 0x0210 */ 139, 85,228,198, 69,215, 0, 49,201, 49,208,141, 93,172,137, 69,
|
/* 0x0210 */ 255,255,139, 85,228,198, 69,215, 0, 49,201, 49,208,141, 93,172,
|
||||||
/* 0x0220 */ 132,106, 78, 88,205,128,139, 85,172,137,248, 49, 85,132,139, 85,
|
/* 0x0220 */ 137, 69,132,106, 78, 88,205,128,139, 85,172,137,248, 49, 85,132,
|
||||||
/* 0x0230 */ 176,199, 4, 36, 7, 0, 0, 0,141, 93,196,193,226, 12, 51, 85,
|
/* 0x0230 */ 139, 85,176,199, 4, 36, 7, 0, 0, 0,141, 93,196,193,226, 12,
|
||||||
/* 0x0240 */ 132,232, 98,254,255,255, 88,106, 10, 88,205,128,131,248,254,116,
|
/* 0x0240 */ 51, 85,132,232, 96,254,255,255, 89,106, 10, 88,205,128,131,248,
|
||||||
/* 0x0250 */ 8,133,192, 15,133, 3, 1, 0, 0,185,194, 0, 0, 0,186,192,
|
/* 0x0250 */ 254,116, 17,133,192,116, 13,106, 12,232, 98,255,255,255, 90,233,
|
||||||
/* 0x0260 */ 1, 0, 0,141, 93,196,106, 5, 88,205,128,139, 85,232,137, 69,
|
/* 0x0260 */ 43, 1, 0, 0,185,194, 0, 0, 0,186,192, 1, 0, 0,141, 93,
|
||||||
/* 0x0270 */ 148,137,195,137,209,106, 93, 88,205,128,133,192, 15,133,210, 0,
|
/* 0x0270 */ 196,106, 5, 88,205,128,139, 85,232,137, 69,148,137,195,137,209,
|
||||||
/* 0x0280 */ 0, 0,106, 0,255,117,148,106, 1,106, 3, 82,106, 0,232, 9,
|
/* 0x0280 */ 106, 93, 88,205,128,133,192,116, 7,106, 14,233,137, 1, 0, 0,
|
||||||
/* 0x0290 */ 254,255,255,131,196, 24, 61, 0,240,255,255,137, 69,136, 15,135,
|
/* 0x0290 */ 106, 0,255,117,148,106, 1,141,130, 0, 16, 0, 0,106, 3, 80,
|
||||||
/* 0x02a0 */ 176, 0, 0, 0,139, 69,232,106, 0,106,255, 5,255, 15, 0, 0,
|
/* 0x02a0 */ 106, 0,232,245,253,255,255,131,196, 24, 61, 0,240,255,255,137,
|
||||||
/* 0x02b0 */ 106, 50, 37, 0,240,255,255,106, 3, 3, 69,136,104, 0, 16, 0,
|
/* 0x02b0 */ 69,136,118, 7,106, 15,233, 94, 1, 0, 0,139, 69,232,106, 0,
|
||||||
/* 0x02c0 */ 0, 80,232,213,253,255,255,131,196, 24,141,125,180,139,117, 12,
|
/* 0x02c0 */ 106,255, 5,255, 15, 0, 0,106, 50, 37, 0,240,255,255,106, 3,
|
||||||
/* 0x02d0 */ 165,165,165,139, 77,180,131,109, 8, 12,133,201,137,117, 12,139,
|
/* 0x02d0 */ 3, 69,136,104, 0, 16, 0, 0, 80,232,190,253,255,255,131,196,
|
||||||
/* 0x02e0 */ 85,184,117, 16,129,250, 85, 80, 88, 33,117,104,131,125,232, 0,
|
/* 0x02e0 */ 24,141,125,180,139,117, 12,165,165,165,139, 77,180,131,109, 8,
|
||||||
/* 0x02f0 */ 116,116,235, 96, 57,202,119, 92, 59, 85,236,119, 87, 57,202,115,
|
/* 0x02f0 */ 12,133,201,137,117, 12,139, 85,184,117, 32,129,250, 85, 80, 88,
|
||||||
/* 0x0300 */ 37,141, 69,168,255,117,188, 80,255,117,136, 82,255,117, 12,137,
|
/* 0x0300 */ 33,116, 7,106, 17,233, 15, 1, 0, 0,131,125,232, 0, 15,132,
|
||||||
/* 0x0310 */ 77,168,255, 85,156,131,196, 20,133,192,117, 56,139, 69,180, 57,
|
/* 0x0310 */ 133, 0, 0, 0,106, 18,233,254, 0, 0, 0, 57,202,119, 5, 59,
|
||||||
/* 0x0320 */ 69,168,117, 48,235, 8,139,125,136,139,117, 12,243,164,139, 85,
|
/* 0x0320 */ 85,236,118, 7,106, 19,233,238, 0, 0, 0, 57,202,115, 42,141,
|
||||||
/* 0x0330 */ 180,139, 93,136,137,209,106, 91, 88,205,128,139, 69,184, 41, 69,
|
/* 0x0330 */ 69,168,255,117,188, 80,255,117,136, 82,255,117, 12,137, 77,168,
|
||||||
/* 0x0340 */ 8, 1, 85,136, 41, 85,232, 1, 69, 12,131,125, 8, 0, 15,137,
|
/* 0x0340 */ 255, 85,156,131,196, 20,133,192,117, 8,139, 69,180, 57, 69,168,
|
||||||
/* 0x0350 */ 118,255,255,255,141, 93,196,106, 10, 88,205,128,106,127, 91,106,
|
/* 0x0350 */ 116, 15,106, 20,233,192, 0, 0, 0,139,125,136,139,117, 12,243,
|
||||||
/* 0x0360 */ 1, 88,205,128,235,254,139, 93,148,106, 6, 88,205,128,133,192,
|
/* 0x0360 */ 164,139, 85,180,139, 93,136,137,209,106, 91, 88,205,128,139, 69,
|
||||||
/* 0x0370 */ 117,226,255,117, 28,255,117, 32,141,117,196, 86,232, 75,253,255,
|
/* 0x0370 */ 184, 41, 69, 8, 1, 85,136, 41, 85,232, 1, 69, 12,131,125, 8,
|
||||||
/* 0x0380 */ 255,133,192,120,207,106, 2, 88,205,128,133,192,117, 51,106, 2,
|
/* 0x0380 */ 0, 15,137, 90,255,255,255,141, 93,196,106, 10, 88,205,128,106,
|
||||||
/* 0x0390 */ 88,205,128,133,192,137,193,117, 31,199, 69,160, 85, 80, 88, 52,
|
/* 0x0390 */ 127, 91,106, 1, 88,205,128,235,254,139, 93,148,106, 6, 88,205,
|
||||||
/* 0x03a0 */ 184,162, 0, 0, 0,141, 93,160,199, 69,164, 0, 0, 0, 0,205,
|
/* 0x03a0 */ 128,133,192,116, 4,106, 22,235,112,255,117, 28,255,117, 32,141,
|
||||||
/* 0x03b0 */ 128,137,243,106, 10, 88,205,128, 49,219,106, 1, 88,205,128,235,
|
/* 0x03b0 */ 117,196, 86,232, 20,253,255,255,133,192,121, 4,106, 23,235, 89,
|
||||||
/* 0x03c0 */ 254, 49,201,131,203,255,137,202,106, 7, 88,205,128,141, 93,196,
|
/* 0x03c0 */ 106, 2, 88,205,128,133,192,117, 52,106, 2, 88,205,128,133,192,
|
||||||
/* 0x03d0 */ 139, 77, 32,139, 85, 28,106, 11, 88,205,128,233,116,255,255,255,
|
/* 0x03d0 */ 137,193,117, 32,199, 69,160, 85, 80, 88, 52,184,162, 0, 0, 0,
|
||||||
/* 0x03e0 */ 87,137,215,106, 10,252, 89,232, 5, 0, 0, 0,136, 39,151, 95,
|
/* 0x03e0 */ 141, 93,160,199, 69,164, 0, 0, 0, 0,205,128,141, 93,196,106,
|
||||||
/* 0x03f0 */ 195,153,247,241, 82,133,192,116, 5,232,243,255,255,255, 88, 4,
|
/* 0x03f0 */ 10, 88,205,128, 49,219,106, 1, 88,205,128,235,254, 49,201,131,
|
||||||
/* 0x0400 */ 48,170,195
|
/* 0x0400 */ 203,255,137,202,106, 7, 88,205,128,141, 93,196,139, 77, 32,139,
|
||||||
|
/* 0x0410 */ 85, 28,106, 11, 88,205,128,106, 24,232,162,253,255,255, 88,233,
|
||||||
|
/* 0x0420 */ 99,255,255,255, 87,137,215,106, 10,252, 89,232, 5, 0, 0, 0,
|
||||||
|
/* 0x0430 */ 136, 39,151, 95,195,153,247,241, 82,133,192,116, 5,232,243,255,
|
||||||
|
/* 0x0440 */ 255,255, 88, 4, 48,170,195
|
||||||
};
|
};
|
||||||
|
|||||||
Generated
+105
-106
@@ -1,5 +1,5 @@
|
|||||||
/* mips.r3000-linux.elf-fold.h
|
/* mips.r3000-linux.elf-fold.h
|
||||||
created from mips.r3000-linux.elf-fold.bin, 3008 (0xbc0) bytes
|
created from mips.r3000-linux.elf-fold.bin, 2980 (0xba4) bytes
|
||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
@@ -32,17 +32,17 @@
|
|||||||
|
|
||||||
/* clang-format off */
|
/* clang-format off */
|
||||||
|
|
||||||
#define STUB_MIPS_R3000_LINUX_ELF_FOLD_SIZE 3008
|
#define STUB_MIPS_R3000_LINUX_ELF_FOLD_SIZE 2980
|
||||||
#define STUB_MIPS_R3000_LINUX_ELF_FOLD_ADLER32 0xac0e8efe
|
#define STUB_MIPS_R3000_LINUX_ELF_FOLD_ADLER32 0x2a5486a6
|
||||||
#define STUB_MIPS_R3000_LINUX_ELF_FOLD_CRC32 0x1aaa775a
|
#define STUB_MIPS_R3000_LINUX_ELF_FOLD_CRC32 0x857a024e
|
||||||
|
|
||||||
unsigned char stub_mips_r3000_linux_elf_fold[3008] = {
|
unsigned char stub_mips_r3000_linux_elf_fold[2980] = {
|
||||||
/* 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, 2, 0, 8, 0, 0, 0, 1, 0, 16, 0,128, 0, 0, 0, 52,
|
/* 0x0010 */ 0, 2, 0, 8, 0, 0, 0, 1, 0, 16, 0,128, 0, 0, 0, 52,
|
||||||
/* 0x0020 */ 0, 0, 0, 0, 0, 0, 48, 1, 0, 52, 0, 32, 0, 2, 0, 0,
|
/* 0x0020 */ 0, 0, 0, 0, 0, 0, 48, 1, 0, 52, 0, 32, 0, 2, 0, 0,
|
||||||
/* 0x0030 */ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 16, 0, 0,
|
/* 0x0030 */ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 16, 0, 0,
|
||||||
/* 0x0040 */ 0, 16, 0, 0, 0, 0, 11,192, 0, 0, 11,192, 0, 0, 0, 5,
|
/* 0x0040 */ 0, 16, 0, 0, 0, 0, 11,164, 0, 0, 11,176, 0, 0, 0, 5,
|
||||||
/* 0x0050 */ 0, 0, 16, 0, 0, 0, 0, 1, 0, 0, 11,192, 0, 0, 0, 0,
|
/* 0x0050 */ 0, 0, 16, 0, 0, 0, 0, 1, 0, 0, 11,164, 0, 0, 0, 0,
|
||||||
/* 0x0060 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0060 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0070 */ 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0070 */ 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0080 */ 36, 2, 0, 0, 3,224, 0, 8, 0, 2, 18, 64, 0, 0, 0, 0,
|
/* 0x0080 */ 36, 2, 0, 0, 3,224, 0, 8, 0, 2, 18, 64, 0, 0, 0, 0,
|
||||||
@@ -60,7 +60,7 @@ unsigned char stub_mips_r3000_linux_elf_fold[3008] = {
|
|||||||
/* 0x0140 */ 4,224, 0, 2, 0,162, 8, 33,160, 32, 0, 0, 39,189,254, 0,
|
/* 0x0140 */ 4,224, 0, 2, 0,162, 8, 33,160, 32, 0, 0, 39,189,254, 0,
|
||||||
/* 0x0150 */ 3,128, 88, 33, 2,160, 80, 33, 0, 0, 72, 33, 3,192, 64, 33,
|
/* 0x0150 */ 3,128, 88, 33, 2,160, 80, 33, 0, 0, 72, 33, 3,192, 64, 33,
|
||||||
/* 0x0160 */ 2,192, 56, 33, 3,160, 48, 33, 2, 32, 40, 33, 4, 16, 0, 1,
|
/* 0x0160 */ 2,192, 56, 33, 3,160, 48, 33, 2, 32, 40, 33, 4, 16, 0, 1,
|
||||||
/* 0x0170 */ 36, 2, 1,116, 3,226, 16, 35, 36, 66, 10, 40, 0, 64,248, 9,
|
/* 0x0170 */ 36, 2, 1,116, 3,226, 16, 35, 36, 66, 10, 12, 0, 64,248, 9,
|
||||||
/* 0x0180 */ 2, 0, 32, 33, 39,189, 2, 0, 0, 64,240, 33,142,165, 0,104,
|
/* 0x0180 */ 2, 0, 32, 33, 39,189, 2, 0, 0, 64,240, 33,142,165, 0,104,
|
||||||
/* 0x0190 */ 2,160, 32, 33, 36, 2, 15,205, 0, 0, 0, 12, 36, 2, 15,251,
|
/* 0x0190 */ 2,160, 32, 33, 36, 2, 15,205, 0, 0, 0, 12, 36, 2, 15,251,
|
||||||
/* 0x01a0 */ 0, 0, 0, 12,143,168, 0, 20, 0, 0, 72, 33, 5, 0, 0, 11,
|
/* 0x01a0 */ 0, 0, 0, 12,143,168, 0, 20, 0, 0, 72, 33, 5, 0, 0, 11,
|
||||||
@@ -127,102 +127,101 @@ unsigned char stub_mips_r3000_linux_elf_fold[3008] = {
|
|||||||
/* 0x0570 */ 175,179, 0, 52,175,178, 0, 48,175,176, 0, 40,140,162, 0, 28,
|
/* 0x0570 */ 175,179, 0, 52,175,178, 0, 48,175,176, 0, 40,140,162, 0, 28,
|
||||||
/* 0x0580 */ 0,160,160, 33, 0,162,136, 33, 0, 10, 16, 39,175,166, 0, 24,
|
/* 0x0580 */ 0,160,160, 33, 0,162,136, 33, 0, 10, 16, 39,175,166, 0, 24,
|
||||||
/* 0x0590 */ 175,164, 0, 20,175,167, 0, 28,175,168, 0, 32,175,169, 0, 36,
|
/* 0x0590 */ 175,164, 0, 20,175,167, 0, 28,175,168, 0, 32,175,169, 0, 36,
|
||||||
/* 0x05a0 */ 16,192, 0, 19,175,162, 0, 16,141, 6, 0, 0, 36, 2, 0, 2,
|
/* 0x05a0 */ 16,192, 0, 12,175,162, 0, 16,141, 6, 0, 0, 36, 2, 0, 2,
|
||||||
/* 0x05b0 */ 148,195, 0, 16, 0, 0, 0, 0, 20, 98, 0, 4, 36,197, 0, 52,
|
/* 0x05b0 */ 148,195, 0, 16, 0, 0, 0, 0, 20, 98, 0, 3, 0, 0, 0, 0,
|
||||||
/* 0x05c0 */ 140,164, 0, 8, 16, 0, 0, 5, 0, 0,240, 33,140,162, 0, 40,
|
/* 0x05c0 */ 16, 0, 0, 46, 0, 0,240, 33,140,194, 0, 92, 16, 0, 0, 43,
|
||||||
/* 0x05d0 */ 0, 0, 0, 0, 0,194,240, 35, 3,192, 32, 33,140,165, 0, 20,
|
/* 0x05d0 */ 0,194,240, 35,148,162, 0, 16,148,163, 0, 44, 56, 66, 0, 3,
|
||||||
/* 0x05e0 */ 4, 17,255, 30, 36, 2, 15,251, 16, 0, 0,218,175,160, 0, 12,
|
/* 0x05e0 */ 0, 2, 16, 43, 0, 2, 57, 0, 36, 99,255,255, 2, 32, 48, 33,
|
||||||
/* 0x05f0 */ 148,162, 0, 16,148,163, 0, 44, 56, 66, 0, 3, 0, 2, 16, 43,
|
/* 0x05f0 */ 36, 8,255,255, 0, 0, 40, 33, 16, 0, 0, 19, 36, 9, 0, 1,
|
||||||
/* 0x0600 */ 0, 2, 57, 0, 36, 99,255,255, 2, 32, 48, 33, 36, 8,255,255,
|
/* 0x0600 */ 140,194, 0, 0, 0, 0, 0, 0, 20, 73, 0, 14, 36, 99,255,255,
|
||||||
/* 0x0610 */ 0, 0, 40, 33, 16, 0, 0, 19, 36, 9, 0, 1,140,194, 0, 0,
|
/* 0x0610 */ 140,196, 0, 8, 0, 0, 0, 0, 0,136, 16, 43, 16, 64, 0, 2,
|
||||||
/* 0x0620 */ 0, 0, 0, 0, 20, 73, 0, 14, 36, 99,255,255,140,196, 0, 8,
|
/* 0x0620 */ 0, 0, 0, 0, 0,128, 64, 33,140,194, 0, 20, 0, 0, 0, 0,
|
||||||
/* 0x0630 */ 0, 0, 0, 0, 0,136, 16, 43, 16, 64, 0, 2, 0, 0, 0, 0,
|
/* 0x0630 */ 0,130, 32, 33, 0,164, 16, 43, 16, 64, 0, 2, 0, 0, 0, 0,
|
||||||
/* 0x0640 */ 0,128, 64, 33,140,194, 0, 20, 0, 0, 0, 0, 0,130, 32, 33,
|
/* 0x0640 */ 0,128, 40, 33, 36,198, 0, 32, 4, 97,255,237, 1, 72,128, 36,
|
||||||
/* 0x0650 */ 0,164, 16, 43, 16, 64, 0, 2, 0, 0, 0, 0, 0,128, 40, 33,
|
/* 0x0650 */ 0,176, 40, 35, 0,170, 40, 35, 36,165,255,255, 1, 69, 40, 36,
|
||||||
/* 0x0660 */ 36,198, 0, 32, 4, 97,255,237, 1, 72,128, 36, 0,176, 40, 35,
|
/* 0x0660 */ 52,231, 8, 2, 2, 0, 32, 33, 0, 0, 48, 33, 36, 8,255,255,
|
||||||
/* 0x0670 */ 0,170, 40, 35, 36,165,255,255, 1, 69, 40, 36, 52,231, 8, 2,
|
/* 0x0670 */ 4, 17,254,243, 0, 0, 72, 33, 0, 80,240, 35, 16, 0, 0,174,
|
||||||
/* 0x0680 */ 2, 0, 32, 33, 0, 0, 48, 33, 36, 8,255,255, 4, 17,254,236,
|
/* 0x0680 */ 175,160, 0, 12,143,163, 0, 24, 0, 0, 0, 0, 16, 96, 0, 12,
|
||||||
/* 0x0690 */ 0, 0, 72, 33, 0, 80,240, 35, 16, 0, 0,174,175,160, 0, 12,
|
/* 0x0690 */ 36, 2, 0, 6,142, 35, 0, 0, 0, 0, 0, 0, 20, 98, 0, 10,
|
||||||
/* 0x06a0 */ 143,163, 0, 24, 0, 0, 0, 0, 16, 96, 0, 12, 36, 2, 0, 6,
|
/* 0x06a0 */ 36, 2, 0, 1,142, 38, 0, 8,143,164, 0, 28, 3,198, 48, 33,
|
||||||
/* 0x06b0 */ 142, 35, 0, 0, 0, 0, 0, 0, 20, 98, 0, 10, 36, 2, 0, 1,
|
/* 0x06b0 */ 4, 17,255,126, 36, 5, 0, 3, 16, 0, 0,155, 0, 0, 0, 0,
|
||||||
/* 0x06c0 */ 142, 38, 0, 8,143,164, 0, 28, 3,198, 48, 33, 4, 17,255,119,
|
/* 0x06c0 */ 142, 35, 0, 0, 36, 2, 0, 1, 20, 98, 0,151, 0, 0, 0, 0,
|
||||||
/* 0x06d0 */ 36, 5, 0, 3, 16, 0, 0,155, 0, 0, 0, 0,142, 35, 0, 0,
|
/* 0x06d0 */ 142, 34, 0, 20, 0, 0, 0, 0, 16, 64, 0,147, 0, 0, 0, 0,
|
||||||
/* 0x06e0 */ 36, 2, 0, 1, 20, 98, 0,151, 0, 0, 0, 0,142, 34, 0, 20,
|
/* 0x06e0 */ 143,164, 0, 24, 0, 0, 0, 0, 16,128, 0, 19, 0, 0, 0, 0,
|
||||||
/* 0x06f0 */ 0, 0, 0, 0, 16, 64, 0,147, 0, 0, 0, 0,143,164, 0, 24,
|
/* 0x06f0 */ 142, 34, 0, 4, 0, 0, 0, 0, 20, 64, 0, 15, 36, 5, 0, 3,
|
||||||
/* 0x0700 */ 0, 0, 0, 0, 16,128, 0, 19, 0, 0, 0, 0,142, 34, 0, 4,
|
/* 0x0700 */ 142,130, 0, 28,142, 38, 0, 8,143,164, 0, 28, 0,194, 48, 33,
|
||||||
/* 0x0710 */ 0, 0, 0, 0, 20, 64, 0, 15, 36, 5, 0, 3,142,130, 0, 28,
|
/* 0x0710 */ 4, 17,255,102, 3,198, 48, 33,143,164, 0, 28,150,134, 0, 44,
|
||||||
/* 0x0720 */ 142, 38, 0, 8,143,164, 0, 28, 0,194, 48, 33, 4, 17,255, 95,
|
/* 0x0720 */ 4, 17,255, 98, 36, 5, 0, 5,143,164, 0, 28,150,134, 0, 42,
|
||||||
/* 0x0730 */ 3,198, 48, 33,143,164, 0, 28,150,134, 0, 44, 4, 17,255, 91,
|
/* 0x0730 */ 4, 17,255, 94, 36, 5, 0, 4,142, 34, 0, 8,142, 35, 0, 24,
|
||||||
/* 0x0740 */ 36, 5, 0, 5,143,164, 0, 28,150,134, 0, 42, 4, 17,255, 87,
|
/* 0x0740 */ 3,194,184, 33, 60, 2,115, 81, 0, 3, 24,128, 52, 66, 98, 64,
|
||||||
/* 0x0750 */ 36, 5, 0, 4,142, 34, 0, 8,142, 35, 0, 24, 3,194,184, 33,
|
/* 0x0750 */ 0, 98,128, 6,143,163, 0, 16,142, 36, 0, 16, 2,227, 16, 36,
|
||||||
/* 0x0760 */ 60, 2,115, 81, 0, 3, 24,128, 52, 66, 98, 64, 0, 98,128, 6,
|
/* 0x0760 */ 175,164, 0, 0, 0,130,152, 33,143,163, 0, 24,142, 36, 0, 20,
|
||||||
/* 0x0770 */ 143,163, 0, 16,142, 36, 0, 16, 2,227, 16, 36,175,164, 0, 0,
|
/* 0x0770 */ 175,183, 0, 4, 50, 22, 0, 7,175,164, 0, 8, 16, 96, 0, 22,
|
||||||
/* 0x0780 */ 0,130,152, 33,143,163, 0, 24,142, 36, 0, 20,175,183, 0, 4,
|
/* 0x0780 */ 2,226,144, 35, 2, 64, 32, 33, 2, 96, 40, 33, 36, 6, 0, 3,
|
||||||
/* 0x0790 */ 50, 22, 0, 7,175,164, 0, 8, 16, 96, 0, 22, 2,226,144, 35,
|
/* 0x0790 */ 36, 7, 8, 18, 36, 8,255,255, 4, 17,254,169, 0, 0, 72, 33,
|
||||||
/* 0x07a0 */ 2, 64, 32, 33, 2, 96, 40, 33, 36, 6, 0, 3, 36, 7, 8, 18,
|
/* 0x07a0 */ 22, 66, 0, 75, 50, 2, 0, 4, 16, 64, 0, 4, 0, 0, 0, 0,
|
||||||
/* 0x07b0 */ 36, 8,255,255, 4, 17,254,162, 0, 0, 72, 33, 22, 66, 0, 75,
|
/* 0x07b0 */ 143,167, 0, 36, 16, 0, 0, 2, 0, 0, 0, 0, 0, 0, 56, 33,
|
||||||
/* 0x07c0 */ 50, 2, 0, 4, 16, 64, 0, 4, 0, 0, 0, 0,143,167, 0, 36,
|
/* 0x07c0 */ 143,164, 0, 24,143,166, 0, 20, 4, 17,254,209, 3,160, 40, 33,
|
||||||
/* 0x07d0 */ 16, 0, 0, 2, 0, 0, 0, 0, 0, 0, 56, 33,143,164, 0, 24,
|
/* 0x07d0 */ 16, 0, 0, 11, 0, 0, 0, 0,142, 41, 0, 4,143,168, 0, 20,
|
||||||
/* 0x07e0 */ 143,166, 0, 20, 4, 17,254,202, 3,160, 40, 33, 16, 0, 0, 11,
|
/* 0x07e0 */ 2, 64, 32, 33, 1, 34, 72, 35, 2, 96, 40, 33, 2,192, 48, 33,
|
||||||
/* 0x07f0 */ 0, 0, 0, 0,142, 41, 0, 4,143,168, 0, 20, 2, 64, 32, 33,
|
/* 0x07f0 */ 4, 17,254,147, 36, 7, 0, 18, 22, 66, 0, 54, 36, 4, 0,127,
|
||||||
/* 0x0800 */ 1, 34, 72, 35, 2, 96, 40, 33, 2,192, 48, 33, 4, 17,254,140,
|
/* 0x0800 */ 143,164, 0, 16, 0, 19, 16, 35, 50,195, 0, 2, 16, 96, 0, 8,
|
||||||
/* 0x0810 */ 36, 7, 0, 18, 22, 66, 0, 54, 36, 4, 0,127,143,164, 0, 16,
|
/* 0x0810 */ 0, 68,168, 36, 18,160, 0, 6, 2, 83, 24, 33, 2,160, 16, 33,
|
||||||
/* 0x0820 */ 0, 19, 16, 35, 50,195, 0, 2, 16, 96, 0, 8, 0, 68,168, 36,
|
/* 0x0820 */ 36, 66,255,255,160, 96, 0, 0, 20, 64,255,253, 36, 99, 0, 1,
|
||||||
/* 0x0830 */ 18,160, 0, 6, 2, 83, 24, 33, 2,160, 16, 33, 36, 66,255,255,
|
/* 0x0830 */ 143,162, 0, 24, 0, 0, 0, 0, 16, 64, 0, 42, 36, 2, 0, 1,
|
||||||
/* 0x0840 */ 160, 96, 0, 0, 20, 64,255,253, 36, 99, 0, 1,143,162, 0, 24,
|
/* 0x0840 */ 142, 35, 0, 0, 0, 0, 0, 0, 20, 98, 0, 28, 2, 64, 32, 33,
|
||||||
/* 0x0850 */ 0, 0, 0, 0, 16, 64, 0, 42, 36, 2, 0, 1,142, 35, 0, 0,
|
/* 0x0850 */ 142, 34, 0, 24, 0, 0, 0, 0, 48, 66, 0, 1, 16, 64, 0, 24,
|
||||||
/* 0x0860 */ 0, 0, 0, 0, 20, 98, 0, 28, 2, 64, 32, 33,142, 34, 0, 24,
|
/* 0x0860 */ 2, 96, 40, 33,142, 36, 0, 20,142, 34, 0, 16,142, 35, 0, 8,
|
||||||
/* 0x0870 */ 0, 0, 0, 0, 48, 66, 0, 1, 16, 64, 0, 24, 2, 96, 40, 33,
|
/* 0x0870 */ 20,130, 0, 61, 0,131, 16, 33, 0, 94, 24, 33,143,164, 0, 16,
|
||||||
/* 0x0880 */ 142, 36, 0, 20,142, 34, 0, 16,142, 35, 0, 8, 20,130, 0, 61,
|
/* 0x0880 */ 0, 3, 16, 35, 0,130, 16, 36, 44, 66, 0, 12, 20, 64, 0, 54,
|
||||||
/* 0x0890 */ 0,131, 16, 33, 0, 94, 24, 33,143,164, 0, 16, 0, 3, 16, 35,
|
/* 0x0890 */ 36, 2,255,252, 36, 99, 0, 3, 0, 98,128, 36, 36, 2, 0, 12,
|
||||||
/* 0x08a0 */ 0,130, 16, 36, 44, 66, 0, 12, 20, 64, 0, 54, 36, 2,255,252,
|
/* 0x08a0 */ 174, 2, 0, 0, 60, 2, 3,192, 52, 66, 0, 8,174, 2, 0, 4,
|
||||||
/* 0x08b0 */ 36, 99, 0, 3, 0, 98,128, 36, 36, 2, 0, 12,174, 2, 0, 0,
|
/* 0x08b0 */ 16, 0, 0, 66,174, 0, 0, 8, 2, 64, 32, 33, 2, 96, 40, 33,
|
||||||
/* 0x08c0 */ 60, 2, 3,192, 52, 66, 0, 8,174, 2, 0, 4, 16, 0, 0, 66,
|
/* 0x08c0 */ 4, 17,254,107, 2,192, 48, 33, 16, 64, 0, 6, 0, 0, 0, 0,
|
||||||
/* 0x08d0 */ 174, 0, 0, 8, 2, 64, 32, 33, 2, 96, 40, 33, 4, 17,254,100,
|
/* 0x08d0 */ 36, 4, 0,127, 4, 17,254, 97, 36, 2, 15,161, 16, 0,255,255,
|
||||||
/* 0x08e0 */ 2,192, 48, 33, 16, 64, 0, 6, 0, 0, 0, 0, 36, 4, 0,127,
|
/* 0x08e0 */ 0, 0, 0, 0,143,163, 0, 8, 2,117, 16, 33, 2,227, 40, 33,
|
||||||
/* 0x08f0 */ 4, 17,254, 90, 36, 2, 15,161, 16, 0,255,255, 0, 0, 0, 0,
|
/* 0x08f0 */ 2, 66,128, 33, 2, 5, 16, 43, 16, 64, 0, 11, 0,176, 40, 35,
|
||||||
/* 0x0900 */ 143,163, 0, 8, 2,117, 16, 33, 2,227, 40, 33, 2, 66,128, 33,
|
/* 0x0900 */ 2,192, 48, 33, 2, 0, 32, 33, 36, 7, 8, 18, 36, 8,255,255,
|
||||||
/* 0x0910 */ 2, 5, 16, 43, 16, 64, 0, 11, 0,176, 40, 35, 2,192, 48, 33,
|
/* 0x0910 */ 4, 17,254, 75, 0, 0, 72, 33, 18, 2, 0, 3, 0, 0, 0, 0,
|
||||||
/* 0x0920 */ 2, 0, 32, 33, 36, 7, 8, 18, 36, 8,255,255, 4, 17,254, 68,
|
/* 0x0920 */ 16, 0,255,255, 0, 0, 0, 0,143,164, 0, 12, 38, 49, 0, 32,
|
||||||
/* 0x0930 */ 0, 0, 72, 33, 18, 2, 0, 3, 0, 0, 0, 0, 16, 0,255,255,
|
/* 0x0930 */ 36,132, 0, 1,175,164, 0, 12,150,130, 0, 44,143,163, 0, 12,
|
||||||
/* 0x0940 */ 0, 0, 0, 0,143,164, 0, 12, 38, 49, 0, 32, 36,132, 0, 1,
|
/* 0x0940 */ 0, 0, 0, 0, 0, 98, 16, 42, 20, 64,255, 78, 0, 0, 0, 0,
|
||||||
/* 0x0950 */ 175,164, 0, 12,150,130, 0, 44,143,163, 0, 12, 0, 0, 0, 0,
|
/* 0x0950 */ 143,164, 0, 32, 0, 0, 0, 0, 16,128, 0, 30, 0, 0, 0, 0,
|
||||||
/* 0x0960 */ 0, 98, 16, 42, 20, 64,255, 78, 0, 0, 0, 0,143,164, 0, 32,
|
/* 0x0960 */ 16, 0, 0, 28,172,158, 0, 0, 0, 0, 32, 33, 60, 5, 0, 1,
|
||||||
/* 0x0970 */ 0, 0, 0, 0, 16,128, 0, 30, 0, 0, 0, 0, 16, 0, 0, 28,
|
/* 0x0970 */ 36, 6, 0, 3, 36, 7, 8, 2, 36, 8,255,255, 4, 17,254, 48,
|
||||||
/* 0x0980 */ 172,158, 0, 0, 0, 0, 32, 33, 60, 5, 0, 1, 36, 6, 0, 3,
|
/* 0x0980 */ 0, 0, 72, 33, 16, 64,255,204, 36, 67, 0, 3, 36, 2,255,252,
|
||||||
/* 0x0990 */ 36, 7, 8, 2, 36, 8,255,255, 4, 17,254, 41, 0, 0, 72, 33,
|
/* 0x0990 */ 0, 98,128, 36, 36, 2, 0, 12,174, 2, 0, 0, 60, 2, 3,192,
|
||||||
/* 0x09a0 */ 16, 64,255,204, 36, 67, 0, 3, 36, 2,255,252, 0, 98,128, 36,
|
/* 0x09a0 */ 52, 66, 0, 8,174, 2, 0, 4,174, 0, 0, 8, 2, 0, 32, 33,
|
||||||
/* 0x09b0 */ 36, 2, 0, 12,174, 2, 0, 0, 60, 2, 3,192, 52, 66, 0, 8,
|
/* 0x09b0 */ 36, 5, 0, 12, 4, 17,254, 46, 36, 6, 0, 5,143,164, 0, 28,
|
||||||
/* 0x09c0 */ 174, 2, 0, 4,174, 0, 0, 8, 2, 0, 32, 33, 36, 5, 0, 12,
|
/* 0x09c0 */ 2, 0, 48, 33, 4, 17,254,185, 0, 0, 40, 33, 16, 0,255,187,
|
||||||
/* 0x09d0 */ 4, 17,254, 39, 36, 6, 0, 5,143,164, 0, 28, 2, 0, 48, 33,
|
/* 0x09d0 */ 2, 64, 32, 33,142,130, 0, 24,143,191, 0, 76, 3,194, 16, 33,
|
||||||
/* 0x09e0 */ 4, 17,254,178, 0, 0, 40, 33, 16, 0,255,187, 2, 64, 32, 33,
|
/* 0x09e0 */ 143,183, 0, 68,143,190, 0, 72,143,182, 0, 64,143,181, 0, 60,
|
||||||
/* 0x09f0 */ 142,130, 0, 24,143,191, 0, 76, 3,194, 16, 33,143,183, 0, 68,
|
/* 0x09f0 */ 143,180, 0, 56,143,179, 0, 52,143,178, 0, 48,143,177, 0, 44,
|
||||||
/* 0x0a00 */ 143,190, 0, 72,143,182, 0, 64,143,181, 0, 60,143,180, 0, 56,
|
/* 0x0a00 */ 143,176, 0, 40, 3,224, 0, 8, 39,189, 0, 80, 39,189,255,192,
|
||||||
/* 0x0a10 */ 143,179, 0, 52,143,178, 0, 48,143,177, 0, 44,143,176, 0, 40,
|
/* 0x0a10 */ 175,191, 0, 56,175,181, 0, 52,175,180, 0, 48,175,179, 0, 44,
|
||||||
/* 0x0a20 */ 3,224, 0, 8, 39,189, 0, 80, 39,189,255,192,175,191, 0, 56,
|
/* 0x0a20 */ 175,178, 0, 40,175,177, 0, 36,175,176, 0, 32,140,130, 0, 4,
|
||||||
/* 0x0a30 */ 175,181, 0, 52,175,180, 0, 48,175,179, 0, 44,175,178, 0, 40,
|
/* 0x0a30 */ 1, 0,144, 33,140,136, 0, 0, 0,128, 24, 33, 0,192,152, 33,
|
||||||
/* 0x0a40 */ 175,177, 0, 36,175,176, 0, 32,140,130, 0, 4, 1, 0,144, 33,
|
/* 0x0a40 */ 1, 96,168, 33, 0,224,160, 33, 1, 32,136, 33, 36, 66, 0, 12,
|
||||||
/* 0x0a50 */ 140,136, 0, 0, 0,128, 24, 33, 0,192,152, 33, 1, 96,168, 33,
|
/* 0x0a50 */ 175,165, 0, 12, 39,164, 0, 20, 39,165, 0, 4, 2, 64, 48, 33,
|
||||||
/* 0x0a60 */ 0,224,160, 33, 1, 32,136, 33, 36, 66, 0, 12,175,165, 0, 12,
|
/* 0x0a60 */ 0, 0, 56, 33, 1, 64,128, 33,175,163, 0, 16,175,163, 0, 24,
|
||||||
/* 0x0a70 */ 39,164, 0, 20, 39,165, 0, 4, 2, 64, 48, 33, 0, 0, 56, 33,
|
/* 0x0a70 */ 175,168, 0, 4,175,162, 0, 20, 4, 17,254, 37,175,179, 0, 8,
|
||||||
/* 0x0a80 */ 1, 64,128, 33,175,163, 0, 16,175,163, 0, 24,175,168, 0, 4,
|
/* 0x0a80 */ 2, 32, 72, 33, 2, 64, 32, 33, 2, 96, 40, 33, 39,166, 0, 12,
|
||||||
/* 0x0a90 */ 175,162, 0, 20, 4, 17,254, 30,175,179, 0, 8, 2, 32, 72, 33,
|
/* 0x0a90 */ 2,128, 56, 33, 3,160, 64, 33, 2,160, 80, 33, 4, 17,254,172,
|
||||||
/* 0x0aa0 */ 2, 64, 32, 33, 2, 96, 40, 33, 39,166, 0, 12, 2,128, 56, 33,
|
/* 0x0aa0 */ 175,176, 0, 0, 0, 64, 48, 33, 2,128, 32, 33, 36, 5, 0, 9,
|
||||||
/* 0x0ab0 */ 3,160, 64, 33, 2,160, 80, 33, 4, 17,254,165,175,176, 0, 0,
|
/* 0x0ab0 */ 4, 17,254,126, 0, 64,136, 33,150,102, 0, 44, 38,100, 0, 52,
|
||||||
/* 0x0ac0 */ 0, 64, 48, 33, 2,128, 32, 33, 36, 5, 0, 9, 4, 17,254,119,
|
/* 0x0ac0 */ 16, 0, 0, 43, 0, 0, 40, 33,140,131, 0, 0, 36, 2, 0, 3,
|
||||||
/* 0x0ad0 */ 0, 64,136, 33,150,102, 0, 44, 38,100, 0, 52, 16, 0, 0, 43,
|
/* 0x0ad0 */ 20, 98, 0, 39, 36,132, 0, 32, 36,132,255,224,140,130, 0, 8,
|
||||||
/* 0x0ae0 */ 0, 0, 40, 33,140,131, 0, 0, 36, 2, 0, 3, 20, 98, 0, 39,
|
/* 0x0ae0 */ 143,164, 0, 0, 0, 0, 40, 33, 0, 68, 32, 33, 0, 0, 48, 33,
|
||||||
/* 0x0af0 */ 36,132, 0, 32, 36,132,255,224,140,130, 0, 8,143,164, 0, 0,
|
/* 0x0af0 */ 4, 17,253,218, 36, 2, 15,165, 4, 64, 0, 9, 0, 64,128, 33,
|
||||||
/* 0x0b00 */ 0, 0, 40, 33, 0, 68, 32, 33, 0, 0, 48, 33, 4, 17,253,211,
|
/* 0x0b00 */ 0, 64, 32, 33, 2, 96, 40, 33, 36, 6, 2, 0, 4, 17,253,211,
|
||||||
/* 0x0b10 */ 36, 2, 15,165, 4, 64, 0, 9, 0, 64,128, 33, 0, 64, 32, 33,
|
/* 0x0b10 */ 36, 2, 15,163, 36, 3, 2, 0, 16, 67, 0, 6, 2,160, 80, 33,
|
||||||
/* 0x0b20 */ 2, 96, 40, 33, 36, 6, 2, 0, 4, 17,253,204, 36, 2, 15,163,
|
/* 0x0b20 */ 36, 4, 0,127, 4, 17,253,205, 36, 2, 15,161, 16, 0,255,255,
|
||||||
/* 0x0b30 */ 36, 3, 2, 0, 16, 67, 0, 6, 2,160, 80, 33, 36, 4, 0,127,
|
/* 0x0b30 */ 0, 0, 0, 0, 2,128, 56, 33, 3,160, 64, 33, 0, 0, 72, 33,
|
||||||
/* 0x0b40 */ 4, 17,253,198, 36, 2, 15,161, 16, 0,255,255, 0, 0, 0, 0,
|
/* 0x0b40 */ 4, 17,254,131, 0, 0, 48, 33,143,166, 0, 0, 2,128, 32, 33,
|
||||||
/* 0x0b50 */ 2,128, 56, 33, 3,160, 64, 33, 0, 0, 72, 33, 4, 17,254,124,
|
/* 0x0b50 */ 36, 5, 0, 7, 4, 17,254, 85, 0, 64,136, 33, 2, 0, 32, 33,
|
||||||
/* 0x0b60 */ 0, 0, 48, 33,143,166, 0, 0, 2,128, 32, 33, 36, 5, 0, 7,
|
/* 0x0b60 */ 4, 17,253,190, 36, 2, 15,166, 16, 0, 0, 5, 2, 32, 16, 33,
|
||||||
/* 0x0b70 */ 4, 17,254, 78, 0, 64,136, 33, 2, 0, 32, 33, 4, 17,253,183,
|
/* 0x0b70 */ 0,166, 16, 42, 20, 64,255,212, 36,165, 0, 1, 2, 32, 16, 33,
|
||||||
/* 0x0b80 */ 36, 2, 15,166, 16, 0, 0, 5, 2, 32, 16, 33, 0,166, 16, 42,
|
/* 0x0b80 */ 143,191, 0, 56,143,181, 0, 52,143,180, 0, 48,143,179, 0, 44,
|
||||||
/* 0x0b90 */ 20, 64,255,212, 36,165, 0, 1, 2, 32, 16, 33,143,191, 0, 56,
|
/* 0x0b90 */ 143,178, 0, 40,143,177, 0, 36,143,176, 0, 32, 3,224, 0, 8,
|
||||||
/* 0x0ba0 */ 143,181, 0, 52,143,180, 0, 48,143,179, 0, 44,143,178, 0, 40,
|
/* 0x0ba0 */ 39,189, 0, 64
|
||||||
/* 0x0bb0 */ 143,177, 0, 36,143,176, 0, 32, 3,224, 0, 8, 39,189, 0, 64
|
|
||||||
};
|
};
|
||||||
|
|||||||
Generated
+105
-106
@@ -1,5 +1,5 @@
|
|||||||
/* mipsel.r3000-linux.elf-fold.h
|
/* mipsel.r3000-linux.elf-fold.h
|
||||||
created from mipsel.r3000-linux.elf-fold.bin, 3008 (0xbc0) bytes
|
created from mipsel.r3000-linux.elf-fold.bin, 2980 (0xba4) bytes
|
||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
@@ -32,17 +32,17 @@
|
|||||||
|
|
||||||
/* clang-format off */
|
/* clang-format off */
|
||||||
|
|
||||||
#define STUB_MIPSEL_R3000_LINUX_ELF_FOLD_SIZE 3008
|
#define STUB_MIPSEL_R3000_LINUX_ELF_FOLD_SIZE 2980
|
||||||
#define STUB_MIPSEL_R3000_LINUX_ELF_FOLD_ADLER32 0x01738efd
|
#define STUB_MIPSEL_R3000_LINUX_ELF_FOLD_ADLER32 0x832286a5
|
||||||
#define STUB_MIPSEL_R3000_LINUX_ELF_FOLD_CRC32 0x93ef93d8
|
#define STUB_MIPSEL_R3000_LINUX_ELF_FOLD_CRC32 0xf5ed87a0
|
||||||
|
|
||||||
unsigned char stub_mipsel_r3000_linux_elf_fold[3008] = {
|
unsigned char stub_mipsel_r3000_linux_elf_fold[2980] = {
|
||||||
/* 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 */ 2, 0, 8, 0, 1, 0, 0, 0,128, 0, 16, 0, 52, 0, 0, 0,
|
/* 0x0010 */ 2, 0, 8, 0, 1, 0, 0, 0,128, 0, 16, 0, 52, 0, 0, 0,
|
||||||
/* 0x0020 */ 0, 0, 0, 0, 1, 48, 0, 0, 52, 0, 32, 0, 2, 0, 0, 0,
|
/* 0x0020 */ 0, 0, 0, 0, 1, 48, 0, 0, 52, 0, 32, 0, 2, 0, 0, 0,
|
||||||
/* 0x0030 */ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0,
|
/* 0x0030 */ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0,
|
||||||
/* 0x0040 */ 0, 0, 16, 0,192, 11, 0, 0,192, 11, 0, 0, 5, 0, 0, 0,
|
/* 0x0040 */ 0, 0, 16, 0,164, 11, 0, 0,176, 11, 0, 0, 5, 0, 0, 0,
|
||||||
/* 0x0050 */ 0, 16, 0, 0, 1, 0, 0, 0,192, 11, 0, 0, 0, 0, 0, 0,
|
/* 0x0050 */ 0, 16, 0, 0, 1, 0, 0, 0,164, 11, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0060 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0060 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0070 */ 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0070 */ 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0080 */ 0, 0, 2, 36, 8, 0,224, 3, 64, 18, 2, 0, 0, 0, 0, 0,
|
/* 0x0080 */ 0, 0, 2, 36, 8, 0,224, 3, 64, 18, 2, 0, 0, 0, 0, 0,
|
||||||
@@ -60,7 +60,7 @@ unsigned char stub_mipsel_r3000_linux_elf_fold[3008] = {
|
|||||||
/* 0x0140 */ 2, 0,224, 4, 33, 8,162, 0, 0, 0, 32,160, 0,254,189, 39,
|
/* 0x0140 */ 2, 0,224, 4, 33, 8,162, 0, 0, 0, 32,160, 0,254,189, 39,
|
||||||
/* 0x0150 */ 33, 88,128, 3, 33, 80,160, 2, 33, 72, 0, 0, 33, 64,192, 3,
|
/* 0x0150 */ 33, 88,128, 3, 33, 80,160, 2, 33, 72, 0, 0, 33, 64,192, 3,
|
||||||
/* 0x0160 */ 33, 56,192, 2, 33, 48,160, 3, 33, 40, 32, 2, 1, 0, 16, 4,
|
/* 0x0160 */ 33, 56,192, 2, 33, 48,160, 3, 33, 40, 32, 2, 1, 0, 16, 4,
|
||||||
/* 0x0170 */ 116, 1, 2, 36, 35, 16,226, 3, 40, 10, 66, 36, 9,248, 64, 0,
|
/* 0x0170 */ 116, 1, 2, 36, 35, 16,226, 3, 12, 10, 66, 36, 9,248, 64, 0,
|
||||||
/* 0x0180 */ 33, 32, 0, 2, 0, 2,189, 39, 33,240, 64, 0,104, 0,165,142,
|
/* 0x0180 */ 33, 32, 0, 2, 0, 2,189, 39, 33,240, 64, 0,104, 0,165,142,
|
||||||
/* 0x0190 */ 33, 32,160, 2,205, 15, 2, 36, 12, 0, 0, 0,251, 15, 2, 36,
|
/* 0x0190 */ 33, 32,160, 2,205, 15, 2, 36, 12, 0, 0, 0,251, 15, 2, 36,
|
||||||
/* 0x01a0 */ 12, 0, 0, 0, 20, 0,168,143, 33, 72, 0, 0, 11, 0, 0, 5,
|
/* 0x01a0 */ 12, 0, 0, 0, 20, 0,168,143, 33, 72, 0, 0, 11, 0, 0, 5,
|
||||||
@@ -127,102 +127,101 @@ unsigned char stub_mipsel_r3000_linux_elf_fold[3008] = {
|
|||||||
/* 0x0570 */ 52, 0,179,175, 48, 0,178,175, 40, 0,176,175, 28, 0,162,140,
|
/* 0x0570 */ 52, 0,179,175, 48, 0,178,175, 40, 0,176,175, 28, 0,162,140,
|
||||||
/* 0x0580 */ 33,160,160, 0, 33,136,162, 0, 39, 16, 10, 0, 24, 0,166,175,
|
/* 0x0580 */ 33,160,160, 0, 33,136,162, 0, 39, 16, 10, 0, 24, 0,166,175,
|
||||||
/* 0x0590 */ 20, 0,164,175, 28, 0,167,175, 32, 0,168,175, 36, 0,169,175,
|
/* 0x0590 */ 20, 0,164,175, 28, 0,167,175, 32, 0,168,175, 36, 0,169,175,
|
||||||
/* 0x05a0 */ 19, 0,192, 16, 16, 0,162,175, 0, 0, 6,141, 2, 0, 2, 36,
|
/* 0x05a0 */ 12, 0,192, 16, 16, 0,162,175, 0, 0, 6,141, 2, 0, 2, 36,
|
||||||
/* 0x05b0 */ 16, 0,195,148, 0, 0, 0, 0, 4, 0, 98, 20, 52, 0,197, 36,
|
/* 0x05b0 */ 16, 0,195,148, 0, 0, 0, 0, 3, 0, 98, 20, 0, 0, 0, 0,
|
||||||
/* 0x05c0 */ 8, 0,164,140, 5, 0, 0, 16, 33,240, 0, 0, 40, 0,162,140,
|
/* 0x05c0 */ 46, 0, 0, 16, 33,240, 0, 0, 92, 0,194,140, 43, 0, 0, 16,
|
||||||
/* 0x05d0 */ 0, 0, 0, 0, 35,240,194, 0, 33, 32,192, 3, 20, 0,165,140,
|
/* 0x05d0 */ 35,240,194, 0, 16, 0,162,148, 44, 0,163,148, 3, 0, 66, 56,
|
||||||
/* 0x05e0 */ 30,255, 17, 4,251, 15, 2, 36,218, 0, 0, 16, 12, 0,160,175,
|
/* 0x05e0 */ 43, 16, 2, 0, 0, 57, 2, 0,255,255, 99, 36, 33, 48, 32, 2,
|
||||||
/* 0x05f0 */ 16, 0,162,148, 44, 0,163,148, 3, 0, 66, 56, 43, 16, 2, 0,
|
/* 0x05f0 */ 255,255, 8, 36, 33, 40, 0, 0, 19, 0, 0, 16, 1, 0, 9, 36,
|
||||||
/* 0x0600 */ 0, 57, 2, 0,255,255, 99, 36, 33, 48, 32, 2,255,255, 8, 36,
|
/* 0x0600 */ 0, 0,194,140, 0, 0, 0, 0, 14, 0, 73, 20,255,255, 99, 36,
|
||||||
/* 0x0610 */ 33, 40, 0, 0, 19, 0, 0, 16, 1, 0, 9, 36, 0, 0,194,140,
|
/* 0x0610 */ 8, 0,196,140, 0, 0, 0, 0, 43, 16,136, 0, 2, 0, 64, 16,
|
||||||
/* 0x0620 */ 0, 0, 0, 0, 14, 0, 73, 20,255,255, 99, 36, 8, 0,196,140,
|
/* 0x0620 */ 0, 0, 0, 0, 33, 64,128, 0, 20, 0,194,140, 0, 0, 0, 0,
|
||||||
/* 0x0630 */ 0, 0, 0, 0, 43, 16,136, 0, 2, 0, 64, 16, 0, 0, 0, 0,
|
/* 0x0630 */ 33, 32,130, 0, 43, 16,164, 0, 2, 0, 64, 16, 0, 0, 0, 0,
|
||||||
/* 0x0640 */ 33, 64,128, 0, 20, 0,194,140, 0, 0, 0, 0, 33, 32,130, 0,
|
/* 0x0640 */ 33, 40,128, 0, 32, 0,198, 36,237,255, 97, 4, 36,128, 72, 1,
|
||||||
/* 0x0650 */ 43, 16,164, 0, 2, 0, 64, 16, 0, 0, 0, 0, 33, 40,128, 0,
|
/* 0x0650 */ 35, 40,176, 0, 35, 40,170, 0,255,255,165, 36, 36, 40, 69, 1,
|
||||||
/* 0x0660 */ 32, 0,198, 36,237,255, 97, 4, 36,128, 72, 1, 35, 40,176, 0,
|
/* 0x0660 */ 2, 8,231, 52, 33, 32, 0, 2, 33, 48, 0, 0,255,255, 8, 36,
|
||||||
/* 0x0670 */ 35, 40,170, 0,255,255,165, 36, 36, 40, 69, 1, 2, 8,231, 52,
|
/* 0x0670 */ 243,254, 17, 4, 33, 72, 0, 0, 35,240, 80, 0,174, 0, 0, 16,
|
||||||
/* 0x0680 */ 33, 32, 0, 2, 33, 48, 0, 0,255,255, 8, 36,236,254, 17, 4,
|
/* 0x0680 */ 12, 0,160,175, 24, 0,163,143, 0, 0, 0, 0, 12, 0, 96, 16,
|
||||||
/* 0x0690 */ 33, 72, 0, 0, 35,240, 80, 0,174, 0, 0, 16, 12, 0,160,175,
|
/* 0x0690 */ 6, 0, 2, 36, 0, 0, 35,142, 0, 0, 0, 0, 10, 0, 98, 20,
|
||||||
/* 0x06a0 */ 24, 0,163,143, 0, 0, 0, 0, 12, 0, 96, 16, 6, 0, 2, 36,
|
/* 0x06a0 */ 1, 0, 2, 36, 8, 0, 38,142, 28, 0,164,143, 33, 48,198, 3,
|
||||||
/* 0x06b0 */ 0, 0, 35,142, 0, 0, 0, 0, 10, 0, 98, 20, 1, 0, 2, 36,
|
/* 0x06b0 */ 126,255, 17, 4, 3, 0, 5, 36,155, 0, 0, 16, 0, 0, 0, 0,
|
||||||
/* 0x06c0 */ 8, 0, 38,142, 28, 0,164,143, 33, 48,198, 3,119,255, 17, 4,
|
/* 0x06c0 */ 0, 0, 35,142, 1, 0, 2, 36,151, 0, 98, 20, 0, 0, 0, 0,
|
||||||
/* 0x06d0 */ 3, 0, 5, 36,155, 0, 0, 16, 0, 0, 0, 0, 0, 0, 35,142,
|
/* 0x06d0 */ 20, 0, 34,142, 0, 0, 0, 0,147, 0, 64, 16, 0, 0, 0, 0,
|
||||||
/* 0x06e0 */ 1, 0, 2, 36,151, 0, 98, 20, 0, 0, 0, 0, 20, 0, 34,142,
|
/* 0x06e0 */ 24, 0,164,143, 0, 0, 0, 0, 19, 0,128, 16, 0, 0, 0, 0,
|
||||||
/* 0x06f0 */ 0, 0, 0, 0,147, 0, 64, 16, 0, 0, 0, 0, 24, 0,164,143,
|
/* 0x06f0 */ 4, 0, 34,142, 0, 0, 0, 0, 15, 0, 64, 20, 3, 0, 5, 36,
|
||||||
/* 0x0700 */ 0, 0, 0, 0, 19, 0,128, 16, 0, 0, 0, 0, 4, 0, 34,142,
|
/* 0x0700 */ 28, 0,130,142, 8, 0, 38,142, 28, 0,164,143, 33, 48,194, 0,
|
||||||
/* 0x0710 */ 0, 0, 0, 0, 15, 0, 64, 20, 3, 0, 5, 36, 28, 0,130,142,
|
/* 0x0710 */ 102,255, 17, 4, 33, 48,198, 3, 28, 0,164,143, 44, 0,134,150,
|
||||||
/* 0x0720 */ 8, 0, 38,142, 28, 0,164,143, 33, 48,194, 0, 95,255, 17, 4,
|
/* 0x0720 */ 98,255, 17, 4, 5, 0, 5, 36, 28, 0,164,143, 42, 0,134,150,
|
||||||
/* 0x0730 */ 33, 48,198, 3, 28, 0,164,143, 44, 0,134,150, 91,255, 17, 4,
|
/* 0x0730 */ 94,255, 17, 4, 4, 0, 5, 36, 8, 0, 34,142, 24, 0, 35,142,
|
||||||
/* 0x0740 */ 5, 0, 5, 36, 28, 0,164,143, 42, 0,134,150, 87,255, 17, 4,
|
/* 0x0740 */ 33,184,194, 3, 81,115, 2, 60,128, 24, 3, 0, 64, 98, 66, 52,
|
||||||
/* 0x0750 */ 4, 0, 5, 36, 8, 0, 34,142, 24, 0, 35,142, 33,184,194, 3,
|
/* 0x0750 */ 6,128, 98, 0, 16, 0,163,143, 16, 0, 36,142, 36, 16,227, 2,
|
||||||
/* 0x0760 */ 81,115, 2, 60,128, 24, 3, 0, 64, 98, 66, 52, 6,128, 98, 0,
|
/* 0x0760 */ 0, 0,164,175, 33,152,130, 0, 24, 0,163,143, 20, 0, 36,142,
|
||||||
/* 0x0770 */ 16, 0,163,143, 16, 0, 36,142, 36, 16,227, 2, 0, 0,164,175,
|
/* 0x0770 */ 4, 0,183,175, 7, 0, 22, 50, 8, 0,164,175, 22, 0, 96, 16,
|
||||||
/* 0x0780 */ 33,152,130, 0, 24, 0,163,143, 20, 0, 36,142, 4, 0,183,175,
|
/* 0x0780 */ 35,144,226, 2, 33, 32, 64, 2, 33, 40, 96, 2, 3, 0, 6, 36,
|
||||||
/* 0x0790 */ 7, 0, 22, 50, 8, 0,164,175, 22, 0, 96, 16, 35,144,226, 2,
|
/* 0x0790 */ 18, 8, 7, 36,255,255, 8, 36,169,254, 17, 4, 33, 72, 0, 0,
|
||||||
/* 0x07a0 */ 33, 32, 64, 2, 33, 40, 96, 2, 3, 0, 6, 36, 18, 8, 7, 36,
|
/* 0x07a0 */ 75, 0, 66, 22, 4, 0, 2, 50, 4, 0, 64, 16, 0, 0, 0, 0,
|
||||||
/* 0x07b0 */ 255,255, 8, 36,162,254, 17, 4, 33, 72, 0, 0, 75, 0, 66, 22,
|
/* 0x07b0 */ 36, 0,167,143, 2, 0, 0, 16, 0, 0, 0, 0, 33, 56, 0, 0,
|
||||||
/* 0x07c0 */ 4, 0, 2, 50, 4, 0, 64, 16, 0, 0, 0, 0, 36, 0,167,143,
|
/* 0x07c0 */ 24, 0,164,143, 20, 0,166,143,209,254, 17, 4, 33, 40,160, 3,
|
||||||
/* 0x07d0 */ 2, 0, 0, 16, 0, 0, 0, 0, 33, 56, 0, 0, 24, 0,164,143,
|
/* 0x07d0 */ 11, 0, 0, 16, 0, 0, 0, 0, 4, 0, 41,142, 20, 0,168,143,
|
||||||
/* 0x07e0 */ 20, 0,166,143,202,254, 17, 4, 33, 40,160, 3, 11, 0, 0, 16,
|
/* 0x07e0 */ 33, 32, 64, 2, 35, 72, 34, 1, 33, 40, 96, 2, 33, 48,192, 2,
|
||||||
/* 0x07f0 */ 0, 0, 0, 0, 4, 0, 41,142, 20, 0,168,143, 33, 32, 64, 2,
|
/* 0x07f0 */ 147,254, 17, 4, 18, 0, 7, 36, 54, 0, 66, 22,127, 0, 4, 36,
|
||||||
/* 0x0800 */ 35, 72, 34, 1, 33, 40, 96, 2, 33, 48,192, 2,140,254, 17, 4,
|
/* 0x0800 */ 16, 0,164,143, 35, 16, 19, 0, 2, 0,195, 50, 8, 0, 96, 16,
|
||||||
/* 0x0810 */ 18, 0, 7, 36, 54, 0, 66, 22,127, 0, 4, 36, 16, 0,164,143,
|
/* 0x0810 */ 36,168, 68, 0, 6, 0,160, 18, 33, 24, 83, 2, 33, 16,160, 2,
|
||||||
/* 0x0820 */ 35, 16, 19, 0, 2, 0,195, 50, 8, 0, 96, 16, 36,168, 68, 0,
|
/* 0x0820 */ 255,255, 66, 36, 0, 0, 96,160,253,255, 64, 20, 1, 0, 99, 36,
|
||||||
/* 0x0830 */ 6, 0,160, 18, 33, 24, 83, 2, 33, 16,160, 2,255,255, 66, 36,
|
/* 0x0830 */ 24, 0,162,143, 0, 0, 0, 0, 42, 0, 64, 16, 1, 0, 2, 36,
|
||||||
/* 0x0840 */ 0, 0, 96,160,253,255, 64, 20, 1, 0, 99, 36, 24, 0,162,143,
|
/* 0x0840 */ 0, 0, 35,142, 0, 0, 0, 0, 28, 0, 98, 20, 33, 32, 64, 2,
|
||||||
/* 0x0850 */ 0, 0, 0, 0, 42, 0, 64, 16, 1, 0, 2, 36, 0, 0, 35,142,
|
/* 0x0850 */ 24, 0, 34,142, 0, 0, 0, 0, 1, 0, 66, 48, 24, 0, 64, 16,
|
||||||
/* 0x0860 */ 0, 0, 0, 0, 28, 0, 98, 20, 33, 32, 64, 2, 24, 0, 34,142,
|
/* 0x0860 */ 33, 40, 96, 2, 20, 0, 36,142, 16, 0, 34,142, 8, 0, 35,142,
|
||||||
/* 0x0870 */ 0, 0, 0, 0, 1, 0, 66, 48, 24, 0, 64, 16, 33, 40, 96, 2,
|
/* 0x0870 */ 61, 0,130, 20, 33, 16,131, 0, 33, 24, 94, 0, 16, 0,164,143,
|
||||||
/* 0x0880 */ 20, 0, 36,142, 16, 0, 34,142, 8, 0, 35,142, 61, 0,130, 20,
|
/* 0x0880 */ 35, 16, 3, 0, 36, 16,130, 0, 12, 0, 66, 44, 54, 0, 64, 20,
|
||||||
/* 0x0890 */ 33, 16,131, 0, 33, 24, 94, 0, 16, 0,164,143, 35, 16, 3, 0,
|
/* 0x0890 */ 252,255, 2, 36, 3, 0, 99, 36, 36,128, 98, 0, 12, 0, 2, 36,
|
||||||
/* 0x08a0 */ 36, 16,130, 0, 12, 0, 66, 44, 54, 0, 64, 20,252,255, 2, 36,
|
/* 0x08a0 */ 0, 0, 2,174,192, 3, 2, 60, 8, 0, 66, 52, 4, 0, 2,174,
|
||||||
/* 0x08b0 */ 3, 0, 99, 36, 36,128, 98, 0, 12, 0, 2, 36, 0, 0, 2,174,
|
/* 0x08b0 */ 66, 0, 0, 16, 8, 0, 0,174, 33, 32, 64, 2, 33, 40, 96, 2,
|
||||||
/* 0x08c0 */ 192, 3, 2, 60, 8, 0, 66, 52, 4, 0, 2,174, 66, 0, 0, 16,
|
/* 0x08c0 */ 107,254, 17, 4, 33, 48,192, 2, 6, 0, 64, 16, 0, 0, 0, 0,
|
||||||
/* 0x08d0 */ 8, 0, 0,174, 33, 32, 64, 2, 33, 40, 96, 2,100,254, 17, 4,
|
/* 0x08d0 */ 127, 0, 4, 36, 97,254, 17, 4,161, 15, 2, 36,255,255, 0, 16,
|
||||||
/* 0x08e0 */ 33, 48,192, 2, 6, 0, 64, 16, 0, 0, 0, 0,127, 0, 4, 36,
|
/* 0x08e0 */ 0, 0, 0, 0, 8, 0,163,143, 33, 16,117, 2, 33, 40,227, 2,
|
||||||
/* 0x08f0 */ 90,254, 17, 4,161, 15, 2, 36,255,255, 0, 16, 0, 0, 0, 0,
|
/* 0x08f0 */ 33,128, 66, 2, 43, 16, 5, 2, 11, 0, 64, 16, 35, 40,176, 0,
|
||||||
/* 0x0900 */ 8, 0,163,143, 33, 16,117, 2, 33, 40,227, 2, 33,128, 66, 2,
|
/* 0x0900 */ 33, 48,192, 2, 33, 32, 0, 2, 18, 8, 7, 36,255,255, 8, 36,
|
||||||
/* 0x0910 */ 43, 16, 5, 2, 11, 0, 64, 16, 35, 40,176, 0, 33, 48,192, 2,
|
/* 0x0910 */ 75,254, 17, 4, 33, 72, 0, 0, 3, 0, 2, 18, 0, 0, 0, 0,
|
||||||
/* 0x0920 */ 33, 32, 0, 2, 18, 8, 7, 36,255,255, 8, 36, 68,254, 17, 4,
|
/* 0x0920 */ 255,255, 0, 16, 0, 0, 0, 0, 12, 0,164,143, 32, 0, 49, 38,
|
||||||
/* 0x0930 */ 33, 72, 0, 0, 3, 0, 2, 18, 0, 0, 0, 0,255,255, 0, 16,
|
/* 0x0930 */ 1, 0,132, 36, 12, 0,164,175, 44, 0,130,150, 12, 0,163,143,
|
||||||
/* 0x0940 */ 0, 0, 0, 0, 12, 0,164,143, 32, 0, 49, 38, 1, 0,132, 36,
|
/* 0x0940 */ 0, 0, 0, 0, 42, 16, 98, 0, 78,255, 64, 20, 0, 0, 0, 0,
|
||||||
/* 0x0950 */ 12, 0,164,175, 44, 0,130,150, 12, 0,163,143, 0, 0, 0, 0,
|
/* 0x0950 */ 32, 0,164,143, 0, 0, 0, 0, 30, 0,128, 16, 0, 0, 0, 0,
|
||||||
/* 0x0960 */ 42, 16, 98, 0, 78,255, 64, 20, 0, 0, 0, 0, 32, 0,164,143,
|
/* 0x0960 */ 28, 0, 0, 16, 0, 0,158,172, 33, 32, 0, 0, 1, 0, 5, 60,
|
||||||
/* 0x0970 */ 0, 0, 0, 0, 30, 0,128, 16, 0, 0, 0, 0, 28, 0, 0, 16,
|
/* 0x0970 */ 3, 0, 6, 36, 2, 8, 7, 36,255,255, 8, 36, 48,254, 17, 4,
|
||||||
/* 0x0980 */ 0, 0,158,172, 33, 32, 0, 0, 1, 0, 5, 60, 3, 0, 6, 36,
|
/* 0x0980 */ 33, 72, 0, 0,204,255, 64, 16, 3, 0, 67, 36,252,255, 2, 36,
|
||||||
/* 0x0990 */ 2, 8, 7, 36,255,255, 8, 36, 41,254, 17, 4, 33, 72, 0, 0,
|
/* 0x0990 */ 36,128, 98, 0, 12, 0, 2, 36, 0, 0, 2,174,192, 3, 2, 60,
|
||||||
/* 0x09a0 */ 204,255, 64, 16, 3, 0, 67, 36,252,255, 2, 36, 36,128, 98, 0,
|
/* 0x09a0 */ 8, 0, 66, 52, 4, 0, 2,174, 8, 0, 0,174, 33, 32, 0, 2,
|
||||||
/* 0x09b0 */ 12, 0, 2, 36, 0, 0, 2,174,192, 3, 2, 60, 8, 0, 66, 52,
|
/* 0x09b0 */ 12, 0, 5, 36, 46,254, 17, 4, 5, 0, 6, 36, 28, 0,164,143,
|
||||||
/* 0x09c0 */ 4, 0, 2,174, 8, 0, 0,174, 33, 32, 0, 2, 12, 0, 5, 36,
|
/* 0x09c0 */ 33, 48, 0, 2,185,254, 17, 4, 33, 40, 0, 0,187,255, 0, 16,
|
||||||
/* 0x09d0 */ 39,254, 17, 4, 5, 0, 6, 36, 28, 0,164,143, 33, 48, 0, 2,
|
/* 0x09d0 */ 33, 32, 64, 2, 24, 0,130,142, 76, 0,191,143, 33, 16,194, 3,
|
||||||
/* 0x09e0 */ 178,254, 17, 4, 33, 40, 0, 0,187,255, 0, 16, 33, 32, 64, 2,
|
/* 0x09e0 */ 68, 0,183,143, 72, 0,190,143, 64, 0,182,143, 60, 0,181,143,
|
||||||
/* 0x09f0 */ 24, 0,130,142, 76, 0,191,143, 33, 16,194, 3, 68, 0,183,143,
|
/* 0x09f0 */ 56, 0,180,143, 52, 0,179,143, 48, 0,178,143, 44, 0,177,143,
|
||||||
/* 0x0a00 */ 72, 0,190,143, 64, 0,182,143, 60, 0,181,143, 56, 0,180,143,
|
/* 0x0a00 */ 40, 0,176,143, 8, 0,224, 3, 80, 0,189, 39,192,255,189, 39,
|
||||||
/* 0x0a10 */ 52, 0,179,143, 48, 0,178,143, 44, 0,177,143, 40, 0,176,143,
|
/* 0x0a10 */ 56, 0,191,175, 52, 0,181,175, 48, 0,180,175, 44, 0,179,175,
|
||||||
/* 0x0a20 */ 8, 0,224, 3, 80, 0,189, 39,192,255,189, 39, 56, 0,191,175,
|
/* 0x0a20 */ 40, 0,178,175, 36, 0,177,175, 32, 0,176,175, 4, 0,130,140,
|
||||||
/* 0x0a30 */ 52, 0,181,175, 48, 0,180,175, 44, 0,179,175, 40, 0,178,175,
|
/* 0x0a30 */ 33,144, 0, 1, 0, 0,136,140, 33, 24,128, 0, 33,152,192, 0,
|
||||||
/* 0x0a40 */ 36, 0,177,175, 32, 0,176,175, 4, 0,130,140, 33,144, 0, 1,
|
/* 0x0a40 */ 33,168, 96, 1, 33,160,224, 0, 33,136, 32, 1, 12, 0, 66, 36,
|
||||||
/* 0x0a50 */ 0, 0,136,140, 33, 24,128, 0, 33,152,192, 0, 33,168, 96, 1,
|
/* 0x0a50 */ 12, 0,165,175, 20, 0,164, 39, 4, 0,165, 39, 33, 48, 64, 2,
|
||||||
/* 0x0a60 */ 33,160,224, 0, 33,136, 32, 1, 12, 0, 66, 36, 12, 0,165,175,
|
/* 0x0a60 */ 33, 56, 0, 0, 33,128, 64, 1, 16, 0,163,175, 24, 0,163,175,
|
||||||
/* 0x0a70 */ 20, 0,164, 39, 4, 0,165, 39, 33, 48, 64, 2, 33, 56, 0, 0,
|
/* 0x0a70 */ 4, 0,168,175, 20, 0,162,175, 37,254, 17, 4, 8, 0,179,175,
|
||||||
/* 0x0a80 */ 33,128, 64, 1, 16, 0,163,175, 24, 0,163,175, 4, 0,168,175,
|
/* 0x0a80 */ 33, 72, 32, 2, 33, 32, 64, 2, 33, 40, 96, 2, 12, 0,166, 39,
|
||||||
/* 0x0a90 */ 20, 0,162,175, 30,254, 17, 4, 8, 0,179,175, 33, 72, 32, 2,
|
/* 0x0a90 */ 33, 56,128, 2, 33, 64,160, 3, 33, 80,160, 2,172,254, 17, 4,
|
||||||
/* 0x0aa0 */ 33, 32, 64, 2, 33, 40, 96, 2, 12, 0,166, 39, 33, 56,128, 2,
|
/* 0x0aa0 */ 0, 0,176,175, 33, 48, 64, 0, 33, 32,128, 2, 9, 0, 5, 36,
|
||||||
/* 0x0ab0 */ 33, 64,160, 3, 33, 80,160, 2,165,254, 17, 4, 0, 0,176,175,
|
/* 0x0ab0 */ 126,254, 17, 4, 33,136, 64, 0, 44, 0,102,150, 52, 0,100, 38,
|
||||||
/* 0x0ac0 */ 33, 48, 64, 0, 33, 32,128, 2, 9, 0, 5, 36,119,254, 17, 4,
|
/* 0x0ac0 */ 43, 0, 0, 16, 33, 40, 0, 0, 0, 0,131,140, 3, 0, 2, 36,
|
||||||
/* 0x0ad0 */ 33,136, 64, 0, 44, 0,102,150, 52, 0,100, 38, 43, 0, 0, 16,
|
/* 0x0ad0 */ 39, 0, 98, 20, 32, 0,132, 36,224,255,132, 36, 8, 0,130,140,
|
||||||
/* 0x0ae0 */ 33, 40, 0, 0, 0, 0,131,140, 3, 0, 2, 36, 39, 0, 98, 20,
|
/* 0x0ae0 */ 0, 0,164,143, 33, 40, 0, 0, 33, 32, 68, 0, 33, 48, 0, 0,
|
||||||
/* 0x0af0 */ 32, 0,132, 36,224,255,132, 36, 8, 0,130,140, 0, 0,164,143,
|
/* 0x0af0 */ 218,253, 17, 4,165, 15, 2, 36, 9, 0, 64, 4, 33,128, 64, 0,
|
||||||
/* 0x0b00 */ 33, 40, 0, 0, 33, 32, 68, 0, 33, 48, 0, 0,211,253, 17, 4,
|
/* 0x0b00 */ 33, 32, 64, 0, 33, 40, 96, 2, 0, 2, 6, 36,211,253, 17, 4,
|
||||||
/* 0x0b10 */ 165, 15, 2, 36, 9, 0, 64, 4, 33,128, 64, 0, 33, 32, 64, 0,
|
/* 0x0b10 */ 163, 15, 2, 36, 0, 2, 3, 36, 6, 0, 67, 16, 33, 80,160, 2,
|
||||||
/* 0x0b20 */ 33, 40, 96, 2, 0, 2, 6, 36,204,253, 17, 4,163, 15, 2, 36,
|
/* 0x0b20 */ 127, 0, 4, 36,205,253, 17, 4,161, 15, 2, 36,255,255, 0, 16,
|
||||||
/* 0x0b30 */ 0, 2, 3, 36, 6, 0, 67, 16, 33, 80,160, 2,127, 0, 4, 36,
|
/* 0x0b30 */ 0, 0, 0, 0, 33, 56,128, 2, 33, 64,160, 3, 33, 72, 0, 0,
|
||||||
/* 0x0b40 */ 198,253, 17, 4,161, 15, 2, 36,255,255, 0, 16, 0, 0, 0, 0,
|
/* 0x0b40 */ 131,254, 17, 4, 33, 48, 0, 0, 0, 0,166,143, 33, 32,128, 2,
|
||||||
/* 0x0b50 */ 33, 56,128, 2, 33, 64,160, 3, 33, 72, 0, 0,124,254, 17, 4,
|
/* 0x0b50 */ 7, 0, 5, 36, 85,254, 17, 4, 33,136, 64, 0, 33, 32, 0, 2,
|
||||||
/* 0x0b60 */ 33, 48, 0, 0, 0, 0,166,143, 33, 32,128, 2, 7, 0, 5, 36,
|
/* 0x0b60 */ 190,253, 17, 4,166, 15, 2, 36, 5, 0, 0, 16, 33, 16, 32, 2,
|
||||||
/* 0x0b70 */ 78,254, 17, 4, 33,136, 64, 0, 33, 32, 0, 2,183,253, 17, 4,
|
/* 0x0b70 */ 42, 16,166, 0,212,255, 64, 20, 1, 0,165, 36, 33, 16, 32, 2,
|
||||||
/* 0x0b80 */ 166, 15, 2, 36, 5, 0, 0, 16, 33, 16, 32, 2, 42, 16,166, 0,
|
/* 0x0b80 */ 56, 0,191,143, 52, 0,181,143, 48, 0,180,143, 44, 0,179,143,
|
||||||
/* 0x0b90 */ 212,255, 64, 20, 1, 0,165, 36, 33, 16, 32, 2, 56, 0,191,143,
|
/* 0x0b90 */ 40, 0,178,143, 36, 0,177,143, 32, 0,176,143, 8, 0,224, 3,
|
||||||
/* 0x0ba0 */ 52, 0,181,143, 48, 0,180,143, 44, 0,179,143, 40, 0,178,143,
|
/* 0x0ba0 */ 64, 0,189, 39
|
||||||
/* 0x0bb0 */ 36, 0,177,143, 32, 0,176,143, 8, 0,224, 3, 64, 0,189, 39
|
|
||||||
};
|
};
|
||||||
|
|||||||
Generated
+530
-529
File diff suppressed because it is too large
Load Diff
Generated
+514
-513
File diff suppressed because it is too large
Load Diff
Generated
+408
-408
@@ -33,402 +33,402 @@
|
|||||||
/* clang-format off */
|
/* clang-format off */
|
||||||
|
|
||||||
#define STUB_POWERPC_LINUX_ELF_ENTRY_SIZE 8467
|
#define STUB_POWERPC_LINUX_ELF_ENTRY_SIZE 8467
|
||||||
#define STUB_POWERPC_LINUX_ELF_ENTRY_ADLER32 0xd5b7c5b3
|
#define STUB_POWERPC_LINUX_ELF_ENTRY_ADLER32 0x7e88c34a
|
||||||
#define STUB_POWERPC_LINUX_ELF_ENTRY_CRC32 0x5bf11174
|
#define STUB_POWERPC_LINUX_ELF_ENTRY_CRC32 0xe31e2eee
|
||||||
|
|
||||||
unsigned char stub_powerpc_linux_elf_entry[8467] = {
|
unsigned char stub_powerpc_linux_elf_entry[8467] = {
|
||||||
/* 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, 20, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0010 */ 0, 1, 0, 20, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0020 */ 0, 0, 25,176, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40,
|
/* 0x0020 */ 0, 0, 25,176, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40,
|
||||||
/* 0x0030 */ 0, 0, 0, 0, 72, 0, 0,221,124, 0, 41,236,125,168, 2,166,
|
/* 0x0030 */ 0, 0, 0, 0, 72, 0, 0,209,124, 0, 41,236,125,168, 2,166,
|
||||||
/* 0x0040 */ 40, 7, 0, 8, 64,130, 1, 60,144,166, 0, 0,124,132, 26, 20,
|
/* 0x0040 */ 40, 7, 0, 8, 64,130, 1, 64,144,166, 0, 0,124,132, 26, 20,
|
||||||
/* 0x0050 */ 60, 0,128, 0, 61, 32,128, 0, 56, 99,255,255, 56,165,255,255,
|
/* 0x0050 */ 60, 0,128, 0, 61, 32,128, 0, 56, 99,255,255, 56,165,255,255,
|
||||||
/* 0x0060 */ 57, 64,255,255, 72, 0, 1, 12, 57, 32, 0, 1,125, 41, 28, 44,
|
/* 0x0060 */ 57, 64,255,255, 72, 0, 1, 16, 57, 32, 0, 1,125, 41, 28, 44,
|
||||||
/* 0x0070 */ 56, 99, 0, 4,124, 9, 0, 64,125, 41, 72, 20, 97, 41, 0, 1,
|
/* 0x0070 */ 56, 99, 0, 4, 97, 43, 0, 1,124, 11, 0, 64,125, 41, 72, 20,
|
||||||
/* 0x0080 */ 78,128, 0, 32,141, 3, 0, 1,157, 5, 0, 1,124, 9, 0, 64,
|
/* 0x0080 */ 97, 41, 0, 1, 78,128, 0, 32,141, 3, 0, 1,157, 5, 0, 1,
|
||||||
/* 0x0090 */ 125, 41, 74, 20, 65,162,255,213, 65,129,255,236, 56,224, 0, 1,
|
/* 0x0090 */ 124, 9, 0, 64,125, 41, 74, 20, 65,162,255,209, 65,129,255,236,
|
||||||
/* 0x00a0 */ 72, 0, 0, 20, 56,231,255,255,125, 41, 72, 21, 65,162,255,189,
|
/* 0x00a0 */ 56,224, 0, 1, 72, 0, 0, 20, 56,231,255,255,125, 41, 72, 21,
|
||||||
/* 0x00b0 */ 124,231, 57, 20,125, 41, 72, 21, 65,162,255,177,124,231, 57, 20,
|
/* 0x00b0 */ 65,162,255,185,124,231, 57, 20,125, 41, 72, 21, 65,162,255,173,
|
||||||
/* 0x00c0 */ 124, 9, 0, 64,125, 41, 74, 20, 65,162,255,161, 65,160,255,216,
|
/* 0x00c0 */ 124,231, 57, 20,124, 9, 0, 64,125, 41, 74, 20, 65,162,255,157,
|
||||||
/* 0x00d0 */ 57, 0, 0, 0, 52,231,255,253, 84,231, 64, 46, 65,128, 0, 32,
|
/* 0x00d0 */ 65,160,255,216, 57, 0, 0, 0, 52,231,255,253, 84,231, 64, 46,
|
||||||
/* 0x00e0 */ 141, 99, 0, 1,124,234, 88,249,125, 74, 14,112, 65,130, 0, 0,
|
/* 0x00e0 */ 65,128, 0, 32,141, 99, 0, 1,124,234, 88,249,125, 74, 14,112,
|
||||||
/* 0x00f0 */ 113,107, 0, 1, 65,162, 0, 80, 72, 0, 0, 20,124, 9, 0, 64,
|
/* 0x00f0 */ 65,130, 0, 0,113,107, 0, 1, 65,162, 0, 80, 72, 0, 0, 20,
|
||||||
/* 0x0100 */ 125, 41, 74, 20, 65,162,255,101, 65,161, 0, 60, 57, 0, 0, 1,
|
/* 0x0100 */ 124, 9, 0, 64,125, 41, 74, 20, 65,162,255, 97, 65,161, 0, 60,
|
||||||
/* 0x0110 */ 124, 9, 0, 64,125, 41, 74, 20, 65,162,255, 81, 65,161, 0, 40,
|
/* 0x0110 */ 57, 0, 0, 1,124, 9, 0, 64,125, 41, 74, 20, 65,162,255, 77,
|
||||||
/* 0x0120 */ 125, 41, 72, 21, 65,162,255, 69,125, 8, 65, 20,124, 9, 0, 64,
|
/* 0x0120 */ 65,161, 0, 40,125, 41, 72, 21, 65,162,255, 65,125, 8, 65, 20,
|
||||||
/* 0x0130 */ 125, 41, 74, 20, 65,162,255, 53, 65,160,255,232, 57, 8, 0, 2,
|
/* 0x0130 */ 124, 9, 0, 64,125, 41, 74, 20, 65,162,255, 49, 65,160,255,232,
|
||||||
/* 0x0140 */ 72, 0, 0, 16,125, 41, 72, 21, 65,162,255, 33,125, 8, 65, 20,
|
/* 0x0140 */ 57, 8, 0, 2, 72, 0, 0, 16,125, 41, 72, 21, 65,162,255, 29,
|
||||||
/* 0x0150 */ 32,234,250,255, 57, 8, 0, 2,125, 8, 1,148,124,234, 42, 20,
|
/* 0x0150 */ 125, 8, 65, 20, 32,234,250,255, 57, 8, 0, 2,125, 8, 1,148,
|
||||||
/* 0x0160 */ 125, 9, 3,166,141, 7, 0, 1,157, 5, 0, 1, 66, 0,255,248,
|
/* 0x0160 */ 124,234, 42, 20,125, 9, 3,166,141, 7, 0, 1,157, 5, 0, 1,
|
||||||
/* 0x0170 */ 56,224, 1, 0,124, 7, 41,236,124, 7, 26, 44, 75,255,255, 16,
|
/* 0x0170 */ 66, 0,255,248, 56,224, 1, 0,124, 7, 41,236,124, 7, 26, 44,
|
||||||
/* 0x0180 */ 124, 0, 41,236,125,168, 2,166, 40, 7, 0, 5, 64,130, 1, 32,
|
/* 0x0180 */ 75,255,255, 16,124, 0, 41,236,125,168, 2,166, 40, 7, 0, 5,
|
||||||
/* 0x0190 */ 144,166, 0, 0,124,132, 26, 20, 60, 0,128, 0, 61, 32,128, 0,
|
/* 0x0190 */ 64,130, 1, 36,144,166, 0, 0,124,132, 26, 20, 60, 0,128, 0,
|
||||||
/* 0x01a0 */ 56, 99,255,255, 56,165,255,255, 57, 64,255,255, 72, 0, 0,240,
|
/* 0x01a0 */ 61, 32,128, 0, 56, 99,255,255, 56,165,255,255, 57, 64,255,255,
|
||||||
/* 0x01b0 */ 57, 32, 0, 1,125, 41, 28, 44, 56, 99, 0, 4,124, 9, 0, 64,
|
/* 0x01b0 */ 72, 0, 0,244, 57, 32, 0, 1,125, 41, 28, 44, 56, 99, 0, 4,
|
||||||
/* 0x01c0 */ 125, 41, 72, 20, 97, 41, 0, 1, 78,128, 0, 32,141, 3, 0, 1,
|
/* 0x01c0 */ 97, 43, 0, 1,124, 11, 0, 64,125, 41, 72, 20, 97, 41, 0, 1,
|
||||||
/* 0x01d0 */ 157, 5, 0, 1,124, 9, 0, 64,125, 41, 74, 20, 65,162,255,213,
|
/* 0x01d0 */ 78,128, 0, 32,141, 3, 0, 1,157, 5, 0, 1,124, 9, 0, 64,
|
||||||
/* 0x01e0 */ 65,129,255,236, 56,224, 0, 1, 72, 0, 0, 20, 56,231,255,255,
|
/* 0x01e0 */ 125, 41, 74, 20, 65,162,255,209, 65,129,255,236, 56,224, 0, 1,
|
||||||
/* 0x01f0 */ 125, 41, 72, 21, 65,162,255,189,124,231, 57, 21,125, 41, 72, 21,
|
/* 0x01f0 */ 72, 0, 0, 20, 56,231,255,255,125, 41, 72, 21, 65,162,255,185,
|
||||||
/* 0x0200 */ 65,162,255,177,124,231, 57, 21,124, 9, 0, 64,125, 41, 74, 20,
|
/* 0x0200 */ 124,231, 57, 21,125, 41, 72, 21, 65,162,255,173,124,231, 57, 21,
|
||||||
/* 0x0210 */ 65,162,255,161, 65,160,255,216, 57, 0, 0, 0, 52,231,255,253,
|
/* 0x0210 */ 124, 9, 0, 64,125, 41, 74, 20, 65,162,255,157, 65,160,255,216,
|
||||||
/* 0x0220 */ 84,231, 64, 46, 65,128, 0, 24,141, 99, 0, 1,124,234, 88,249,
|
/* 0x0220 */ 57, 0, 0, 0, 52,231,255,253, 84,231, 64, 46, 65,128, 0, 24,
|
||||||
/* 0x0230 */ 125, 74, 14,112, 65,130, 0, 0, 72, 0, 0, 12,125, 41, 72, 21,
|
/* 0x0230 */ 141, 99, 0, 1,124,234, 88,249,125, 74, 14,112, 65,130, 0, 0,
|
||||||
/* 0x0240 */ 65,162,255,113,125, 8, 65, 21,125, 41, 72, 21, 65,162,255,101,
|
/* 0x0240 */ 72, 0, 0, 12,125, 41, 72, 21, 65,162,255,109,125, 8, 65, 21,
|
||||||
/* 0x0250 */ 125, 8, 65, 21, 64,130, 0, 40, 57, 0, 0, 1,125, 41, 72, 21,
|
/* 0x0250 */ 125, 41, 72, 21, 65,162,255, 97,125, 8, 65, 21, 64,130, 0, 40,
|
||||||
/* 0x0260 */ 65,162,255, 81,125, 8, 65, 21,124, 9, 0, 64,125, 41, 74, 20,
|
/* 0x0260 */ 57, 0, 0, 1,125, 41, 72, 21, 65,162,255, 77,125, 8, 65, 21,
|
||||||
/* 0x0270 */ 65,162,255, 65, 65,160,255,232, 57, 8, 0, 2, 32,234,250,255,
|
/* 0x0270 */ 124, 9, 0, 64,125, 41, 74, 20, 65,162,255, 61, 65,160,255,232,
|
||||||
/* 0x0280 */ 57, 8, 0, 1,125, 8, 1,148,124,234, 42, 20,125, 9, 3,166,
|
/* 0x0280 */ 57, 8, 0, 2, 32,234,250,255, 57, 8, 0, 1,125, 8, 1,148,
|
||||||
/* 0x0290 */ 141, 7, 0, 1,157, 5, 0, 1, 66, 0,255,248, 56,224, 1, 0,
|
/* 0x0290 */ 124,234, 42, 20,125, 9, 3,166,141, 7, 0, 1,157, 5, 0, 1,
|
||||||
/* 0x02a0 */ 124, 7, 41,236,124, 7, 26, 44, 75,255,255, 44,124, 0, 41,236,
|
/* 0x02a0 */ 66, 0,255,248, 56,224, 1, 0,124, 7, 41,236,124, 7, 26, 44,
|
||||||
/* 0x02b0 */ 125,168, 2,166, 40, 7, 0, 2, 64,130, 0,228,144,166, 0, 0,
|
/* 0x02b0 */ 75,255,255, 44,124, 0, 41,236,125,168, 2,166, 40, 7, 0, 2,
|
||||||
/* 0x02c0 */ 124,132, 26, 20, 60, 0,128, 0, 61, 32,128, 0, 56, 99,255,255,
|
/* 0x02c0 */ 64,130, 0,232,144,166, 0, 0,124,132, 26, 20, 60, 0,128, 0,
|
||||||
/* 0x02d0 */ 56,165,255,255, 57, 64,255,255, 72, 0, 0,180,124, 9, 0, 64,
|
/* 0x02d0 */ 61, 32,128, 0, 56, 99,255,255, 56,165,255,255, 57, 64,255,255,
|
||||||
/* 0x02e0 */ 125, 41, 72, 20, 76,162, 0, 32, 57, 32, 0, 1,125, 41, 28, 44,
|
/* 0x02e0 */ 72, 0, 0,184,124, 9, 0, 64,125, 41, 72, 20, 76,162, 0, 32,
|
||||||
/* 0x02f0 */ 56, 99, 0, 4,124, 9, 0, 64,125, 41, 73, 20, 78,128, 0, 32,
|
/* 0x02f0 */ 57, 32, 0, 1,125, 41, 28, 44, 56, 99, 0, 4, 97, 43, 0, 1,
|
||||||
/* 0x0300 */ 141, 3, 0, 1,157, 5, 0, 1, 75,255,255,213, 65,129,255,244,
|
/* 0x0300 */ 124, 11, 0, 64,125, 41, 73, 20, 78,128, 0, 32,141, 3, 0, 1,
|
||||||
/* 0x0310 */ 56,224, 0, 1, 75,255,255,201,124,231, 57, 21, 75,255,255,193,
|
/* 0x0310 */ 157, 5, 0, 1, 75,255,255,209, 65,129,255,244, 56,224, 0, 1,
|
||||||
/* 0x0320 */ 65,160,255,244, 52,231,255,253, 57, 0, 0, 0, 65,128, 0, 20,
|
/* 0x0320 */ 75,255,255,197,124,231, 57, 21, 75,255,255,189, 65,160,255,244,
|
||||||
/* 0x0330 */ 141, 99, 0, 1, 84,231, 64, 46,124,234, 88,249, 65,130, 0, 0,
|
/* 0x0330 */ 52,231,255,253, 57, 0, 0, 0, 65,128, 0, 20,141, 99, 0, 1,
|
||||||
/* 0x0340 */ 75,255,255,157,125, 8, 65, 21, 75,255,255,149,125, 8, 65, 21,
|
/* 0x0340 */ 84,231, 64, 46,124,234, 88,249, 65,130, 0, 0, 75,255,255,153,
|
||||||
/* 0x0350 */ 56,224, 0, 1, 64,130, 0, 28, 56,224, 0, 3, 57, 0, 0, 1,
|
/* 0x0350 */ 125, 8, 65, 21, 75,255,255,145,125, 8, 65, 21, 56,224, 0, 1,
|
||||||
/* 0x0360 */ 75,255,255,125,125, 8, 65, 21, 75,255,255,117, 65,160,255,244,
|
/* 0x0360 */ 64,130, 0, 28, 56,224, 0, 3, 57, 0, 0, 1, 75,255,255,121,
|
||||||
/* 0x0370 */ 33,106,242,255,125, 8, 57, 20,124,234, 42, 20,125, 9, 3,166,
|
/* 0x0370 */ 125, 8, 65, 21, 75,255,255,113, 65,160,255,244, 33,106,242,255,
|
||||||
/* 0x0380 */ 141, 7, 0, 1,157, 5, 0, 1, 66, 0,255,248, 56,224, 1, 0,
|
/* 0x0380 */ 125, 8, 57, 20,124,234, 42, 20,125, 9, 3,166,141, 7, 0, 1,
|
||||||
/* 0x0390 */ 124, 7, 41,236,124, 7, 26, 44, 75,255,255,112, 40, 7, 0, 14,
|
/* 0x0390 */ 157, 5, 0, 1, 66, 0,255,248, 56,224, 1, 0,124, 7, 41,236,
|
||||||
/* 0x03a0 */ 64,130, 0, 36,148, 33,255,232,124, 8, 2,166,124,201, 51,120,
|
/* 0x03a0 */ 124, 7, 26, 44, 75,255,255,112, 40, 7, 0, 14, 64,130, 0, 36,
|
||||||
/* 0x03b0 */ 129, 6, 0, 0,124,167, 43,120, 56,164,255,254, 56,131, 0, 2,
|
/* 0x03b0 */ 148, 33,255,232,124, 8, 2,166,124,201, 51,120,129, 6, 0, 0,
|
||||||
/* 0x03c0 */ 144, 1, 0, 8,136, 3, 0, 0, 84, 11,232,254, 84, 12, 7,126,
|
/* 0x03c0 */ 124,167, 43,120, 56,164,255,254, 56,131, 0, 2,144, 1, 0, 8,
|
||||||
/* 0x03d0 */ 56, 96,250, 0,124, 99, 88, 48, 56, 99,241,124,124, 38, 11,120,
|
/* 0x03d0 */ 136, 3, 0, 0, 84, 11,232,254, 84, 12, 7,126, 56, 96,250, 0,
|
||||||
/* 0x03e0 */ 124, 33, 26, 20, 84, 33, 0, 52, 56, 0, 0, 0,124,195, 51,120,
|
/* 0x03e0 */ 124, 99, 88, 48, 56, 99,241,124,124, 38, 11,120,124, 33, 26, 20,
|
||||||
/* 0x03f0 */ 144, 9, 0, 0,148, 3,255,252,124, 1, 24, 64, 65,128,255,248,
|
/* 0x03f0 */ 84, 33, 0, 52, 56, 0, 0, 0,124,195, 51,120,144, 9, 0, 0,
|
||||||
/* 0x0400 */ 144,193, 0, 0,136, 4,255,255,144,225, 0, 8, 56,193, 0, 16,
|
/* 0x0400 */ 148, 3,255,252,124, 1, 24, 64, 65,128,255,248,144,193, 0, 0,
|
||||||
/* 0x0410 */ 145, 33, 0, 12, 56, 97, 0, 20, 84, 11,225, 62, 84, 0, 7, 62,
|
/* 0x0410 */ 136, 4,255,255,144,225, 0, 8, 56,193, 0, 16,145, 33, 0, 12,
|
||||||
/* 0x0420 */ 153,131, 0, 2,153, 99, 0, 1,152, 3, 0, 0,124, 8, 2,166,
|
/* 0x0420 */ 56, 97, 0, 20, 84, 11,225, 62, 84, 0, 7, 62,153,131, 0, 2,
|
||||||
/* 0x0430 */ 148, 33,255,160,189,193, 0, 24, 59, 32, 0, 0,125, 40, 3,166,
|
/* 0x0430 */ 153, 99, 0, 1,152, 3, 0, 0,124, 8, 2,166,148, 33,255,160,
|
||||||
/* 0x0440 */ 124,206, 51,120,124,147, 35,120,144, 1, 0,100,124,245, 59,120,
|
/* 0x0440 */ 189,193, 0, 24, 59, 32, 0, 0,125, 40, 3,166,124,206, 51,120,
|
||||||
/* 0x0450 */ 125, 20, 67,120,137, 67, 0, 2, 59, 3, 0, 4, 59,224, 0, 0,
|
/* 0x0450 */ 124,147, 35,120,144, 1, 0,100,124,245, 59,120,125, 20, 67,120,
|
||||||
/* 0x0460 */ 137, 99, 0, 1, 58,224, 0, 0, 59, 64, 0, 1,138, 67, 0, 0,
|
/* 0x0460 */ 137, 67, 0, 2, 59, 3, 0, 4, 59,224, 0, 0,137, 99, 0, 1,
|
||||||
/* 0x0470 */ 58, 32, 0, 1, 58, 0, 0, 1,147, 38, 0, 0, 57,224, 0, 1,
|
/* 0x0470 */ 58,224, 0, 0, 59, 64, 0, 1,138, 67, 0, 0, 58, 32, 0, 1,
|
||||||
/* 0x0480 */ 147, 41, 0, 0, 57, 32, 3, 0,136, 3, 0, 1,124, 18, 2, 20,
|
/* 0x0480 */ 58, 0, 0, 1,147, 38, 0, 0, 57,224, 0, 1,147, 41, 0, 0,
|
||||||
/* 0x0490 */ 125, 41, 0, 48, 56, 9, 7, 54, 57, 32, 0, 1,127,153, 0, 64,
|
/* 0x0490 */ 57, 32, 3, 0,136, 3, 0, 1,124, 18, 2, 20,125, 41, 0, 48,
|
||||||
/* 0x04a0 */ 125, 43, 88, 48,125, 41, 80, 48, 57,107,255,255, 57, 41,255,255,
|
/* 0x04a0 */ 56, 9, 7, 54, 57, 32, 0, 1,127,153, 0, 64,125, 43, 88, 48,
|
||||||
/* 0x04b0 */ 145, 97, 0, 12,145, 33, 0, 8, 57, 32, 0, 0, 64,156, 0, 28,
|
/* 0x04b0 */ 125, 41, 80, 48, 57,107,255,255, 57, 41,255,255,145, 97, 0, 12,
|
||||||
/* 0x04c0 */ 124, 9, 3,166, 57, 96, 4, 0, 85, 32, 8, 60, 57, 41, 0, 1,
|
/* 0x04c0 */ 145, 33, 0, 8, 57, 32, 0, 0, 64,156, 0, 28,124, 9, 3,166,
|
||||||
/* 0x04d0 */ 125,120, 3, 46, 66, 0,255,244,127,147, 42, 20,126,108,155,120,
|
/* 0x04d0 */ 57, 96, 4, 0, 85, 32, 8, 60, 57, 41, 0, 1,125,120, 3, 46,
|
||||||
/* 0x04e0 */ 56,160, 0, 0, 57, 0,255,255, 57, 96, 0, 0,127,140,224, 0,
|
/* 0x04e0 */ 66, 0,255,244,127,147, 42, 20,126,108,155,120, 56,160, 0, 0,
|
||||||
/* 0x04f0 */ 57,107, 0, 1, 47, 11, 0, 4, 84,169, 64, 46, 65,158, 8,156,
|
/* 0x04f0 */ 57, 0,255,255, 57, 96, 0, 0,127,140,224, 0, 57,107, 0, 1,
|
||||||
/* 0x0500 */ 136, 12, 0, 0, 57,140, 0, 1,125, 37, 3,120, 64,153,255,224,
|
/* 0x0500 */ 47, 11, 0, 4, 84,169, 64, 46, 65,158, 8,156,136, 12, 0, 0,
|
||||||
/* 0x0510 */ 127,153,160, 64, 64,156, 8,100, 62,192, 0,255, 98,214,255,255,
|
/* 0x0510 */ 57,140, 0, 1,125, 37, 3,120, 64,153,255,224,127,153,160, 64,
|
||||||
/* 0x0520 */ 127,136,176, 64,128, 1, 0, 8,127, 35, 0, 56, 86,224, 32, 54,
|
/* 0x0520 */ 64,156, 8,100, 62,192, 0,255, 98,214,255,255,127,136,176, 64,
|
||||||
/* 0x0530 */ 124, 0, 26, 20, 84, 6, 8, 60, 65,157, 0, 32,127,140,224, 0,
|
/* 0x0530 */ 128, 1, 0, 8,127, 35, 0, 56, 86,224, 32, 54,124, 0, 26, 20,
|
||||||
/* 0x0540 */ 65,158, 8, 88,137, 44, 0, 0, 84,160, 64, 46, 85, 8, 64, 46,
|
/* 0x0540 */ 84, 6, 8, 60, 65,157, 0, 32,127,140,224, 0, 65,158, 8, 88,
|
||||||
/* 0x0550 */ 57,140, 0, 1,124, 5, 75,120,124,230,194, 46, 85, 0,170,254,
|
/* 0x0550 */ 137, 44, 0, 0, 84,160, 64, 46, 85, 8, 64, 46, 57,140, 0, 1,
|
||||||
/* 0x0560 */ 125, 64, 57,214,127,133, 80, 64, 64,156, 1,172,128, 1, 0, 12,
|
/* 0x0560 */ 124, 5, 75,120,124,230,194, 46, 85, 0,170,254,125, 64, 57,214,
|
||||||
/* 0x0570 */ 47,151, 0, 6,125, 72, 83,120, 56, 96, 0, 1,127, 41, 0, 56,
|
/* 0x0570 */ 127,133, 80, 64, 64,156, 1,172,128, 1, 0, 12, 47,151, 0, 6,
|
||||||
/* 0x0580 */ 32, 18, 0, 8,127,224, 6, 48,125, 41,144, 48,125, 41, 2, 20,
|
/* 0x0580 */ 125, 72, 83,120, 56, 96, 0, 1,127, 41, 0, 56, 32, 18, 0, 8,
|
||||||
/* 0x0590 */ 32, 7, 8, 0, 29, 41, 6, 0,124, 0, 46,112,124, 7, 2, 20,
|
/* 0x0590 */ 127,224, 6, 48,125, 41,144, 48,125, 41, 2, 20, 32, 7, 8, 0,
|
||||||
/* 0x05a0 */ 124, 6,195, 46,125, 56, 74, 20, 56,201, 14,108, 64,157, 0,180,
|
/* 0x05a0 */ 29, 41, 6, 0,124, 0, 46,112,124, 7, 2, 20,124, 6,195, 46,
|
||||||
/* 0x05b0 */ 124, 26,200, 80, 63, 96, 0,255,127,245, 0,174, 99,123,255,255,
|
/* 0x05b0 */ 125, 56, 74, 20, 56,201, 14,108, 64,157, 0,180,124, 26,200, 80,
|
||||||
/* 0x05c0 */ 127,136,216, 64, 87,255, 8, 60, 87,253, 5,238, 84,100, 8, 60,
|
/* 0x05c0 */ 63, 96, 0,255,127,245, 0,174, 99,123,255,255,127,136,216, 64,
|
||||||
/* 0x05d0 */ 87,160, 8, 60,127, 12,224, 0,124, 6, 2, 20, 84,169, 64, 46,
|
/* 0x05d0 */ 87,255, 8, 60, 87,253, 5,238, 84,100, 8, 60, 87,160, 8, 60,
|
||||||
/* 0x05e0 */ 124,224, 34, 20, 65,157, 0, 24, 65,154, 7,176,136, 12, 0, 0,
|
/* 0x05e0 */ 127, 12,224, 0,124, 6, 2, 20, 84,169, 64, 46,124,224, 34, 20,
|
||||||
/* 0x05f0 */ 85, 8, 64, 46, 57,140, 0, 1,125, 37, 3,120,161,103, 2, 0,
|
/* 0x05f0 */ 65,157, 0, 24, 65,154, 7,176,136, 12, 0, 0, 85, 8, 64, 46,
|
||||||
/* 0x0600 */ 85, 0,170,254, 47, 29, 0, 0,124,131, 35,120,125, 64, 89,214,
|
/* 0x0600 */ 57,140, 0, 1,125, 37, 3,120,161,103, 2, 0, 85, 0,170,254,
|
||||||
/* 0x0610 */ 32, 11, 8, 0, 85,105,217,126,124, 0, 46,112,124, 11, 2, 20,
|
/* 0x0610 */ 47, 29, 0, 0,124,131, 35,120,125, 64, 89,214, 32, 11, 8, 0,
|
||||||
/* 0x0620 */ 125,105, 88, 80,127,133, 80, 64,125, 10, 64, 80, 64,156, 0, 20,
|
/* 0x0620 */ 85,105,217,126,124, 0, 46,112,124, 11, 2, 20,125,105, 88, 80,
|
||||||
/* 0x0630 */ 176, 7, 2, 0,125, 72, 83,120, 65,186, 0, 24, 72, 0, 0, 28,
|
/* 0x0630 */ 127,133, 80, 64,125, 10, 64, 80, 64,156, 0, 20,176, 7, 2, 0,
|
||||||
/* 0x0640 */ 177,103, 2, 0,124,170, 40, 80, 56,100, 0, 1, 65,154, 0, 12,
|
/* 0x0640 */ 125, 72, 83,120, 65,186, 0, 24, 72, 0, 0, 28,177,103, 2, 0,
|
||||||
/* 0x0650 */ 47,131, 0,255, 64,157,255,108, 47,131, 0,255, 65,157, 0,132,
|
/* 0x0650 */ 124,170, 40, 80, 56,100, 0, 1, 65,154, 0, 12, 47,131, 0,255,
|
||||||
/* 0x0660 */ 63,224, 0,255, 99,255,255,255,127,136,248, 64, 84,103, 8, 60,
|
/* 0x0660 */ 64,157,255,108, 47,131, 0,255, 65,157, 0,132, 63,224, 0,255,
|
||||||
/* 0x0670 */ 127, 12,224, 0, 84,169, 64, 46,124,227, 59,120, 65,157, 0, 24,
|
/* 0x0670 */ 99,255,255,255,127,136,248, 64, 84,103, 8, 60,127, 12,224, 0,
|
||||||
/* 0x0680 */ 65,154, 7, 24,136, 12, 0, 0, 85, 8, 64, 46, 57,140, 0, 1,
|
/* 0x0680 */ 84,169, 64, 46,124,227, 59,120, 65,157, 0, 24, 65,154, 7, 24,
|
||||||
/* 0x0690 */ 125, 37, 3,120,125,102, 58, 46, 85, 0,170,254,125, 64, 89,214,
|
/* 0x0690 */ 136, 12, 0, 0, 85, 8, 64, 46, 57,140, 0, 1,125, 37, 3,120,
|
||||||
/* 0x06a0 */ 32, 11, 8, 0, 85,105,217,126,124, 0, 46,112,124, 11, 2, 20,
|
/* 0x06a0 */ 125,102, 58, 46, 85, 0,170,254,125, 64, 89,214, 32, 11, 8, 0,
|
||||||
/* 0x06b0 */ 125,105, 88, 80,127,133, 80, 64,125, 10, 64, 80, 64,156, 0, 16,
|
/* 0x06b0 */ 85,105,217,126,124, 0, 46,112,124, 11, 2, 20,125,105, 88, 80,
|
||||||
/* 0x06c0 */ 125, 72, 83,120,124, 6, 59, 46, 72, 0, 0, 16,124,170, 40, 80,
|
/* 0x06c0 */ 127,133, 80, 64,125, 10, 64, 80, 64,156, 0, 16,125, 72, 83,120,
|
||||||
/* 0x06d0 */ 125,102, 59, 46, 56,103, 0, 1, 47,131, 0,255, 64,157,255,140,
|
/* 0x06d0 */ 124, 6, 59, 46, 72, 0, 0, 16,124,170, 40, 80,125,102, 59, 46,
|
||||||
/* 0x06e0 */ 47,151, 0, 3, 84,127, 6, 62,127,249,169,174, 59, 57, 0, 1,
|
/* 0x06e0 */ 56,103, 0, 1, 47,131, 0,255, 64,157,255,140, 47,151, 0, 3,
|
||||||
/* 0x06f0 */ 65,157, 0, 12, 58,224, 0, 0, 72, 0, 6,120, 47,151, 0, 9,
|
/* 0x06f0 */ 84,127, 6, 62,127,249,169,174, 59, 57, 0, 1, 65,157, 0, 12,
|
||||||
/* 0x0700 */ 65,157, 0, 12, 58,247,255,253, 72, 0, 6,104, 58,247,255,250,
|
/* 0x0700 */ 58,224, 0, 0, 72, 0, 6,120, 47,151, 0, 9, 65,157, 0, 12,
|
||||||
/* 0x0710 */ 72, 0, 6, 96,125, 10, 64, 80, 84,224,217,126,127,136,176, 64,
|
/* 0x0710 */ 58,247,255,253, 72, 0, 6,104, 58,247,255,250, 72, 0, 6, 96,
|
||||||
/* 0x0720 */ 124, 0, 56, 80, 86,233, 8, 60,124, 6,195, 46,124,170, 40, 80,
|
/* 0x0720 */ 125, 10, 64, 80, 84,224,217,126,127,136,176, 64,124, 0, 56, 80,
|
||||||
/* 0x0730 */ 124,248, 74, 20, 65,157, 0, 32,127,140,224, 0, 65,158, 6, 92,
|
/* 0x0730 */ 86,233, 8, 60,124, 6,195, 46,124,170, 40, 80,124,248, 74, 20,
|
||||||
/* 0x0740 */ 137, 44, 0, 0, 84,160, 64, 46, 85, 8, 64, 46, 57,140, 0, 1,
|
/* 0x0740 */ 65,157, 0, 32,127,140,224, 0, 65,158, 6, 92,137, 44, 0, 0,
|
||||||
/* 0x0750 */ 124, 5, 75,120,161,103, 1,128, 85, 0,170,254,125, 64, 89,214,
|
/* 0x0750 */ 84,160, 64, 46, 85, 8, 64, 46, 57,140, 0, 1,124, 5, 75,120,
|
||||||
/* 0x0760 */ 127,133, 80, 64, 64,156, 0, 64, 47,151, 0, 6, 32, 11, 8, 0,
|
/* 0x0760 */ 161,103, 1,128, 85, 0,170,254,125, 64, 89,214,127,133, 80, 64,
|
||||||
/* 0x0770 */ 124, 0, 46,112,126, 15,131,120,124, 11, 2, 20,126, 48,139,120,
|
/* 0x0770 */ 64,156, 0, 64, 47,151, 0, 6, 32, 11, 8, 0,124, 0, 46,112,
|
||||||
/* 0x0780 */ 176, 7, 1,128,125, 72, 83,120, 56, 0, 0, 0,127, 81,211,120,
|
/* 0x0780 */ 126, 15,131,120,124, 11, 2, 20,126, 48,139,120,176, 7, 1,128,
|
||||||
/* 0x0790 */ 64,157, 0, 8, 56, 0, 0, 3,124, 23, 3,120, 56,216, 6,100,
|
/* 0x0790 */ 125, 72, 83,120, 56, 0, 0, 0,127, 81,211,120, 64,157, 0, 8,
|
||||||
/* 0x07a0 */ 72, 0, 2, 24,125, 10, 64, 80, 85, 96,217,126,127,136,176, 64,
|
/* 0x07a0 */ 56, 0, 0, 3,124, 23, 3,120, 56,216, 6,100, 72, 0, 2, 24,
|
||||||
/* 0x07b0 */ 124, 0, 88, 80,124,170, 40, 80,176, 7, 1,128, 65,157, 0, 32,
|
/* 0x07b0 */ 125, 10, 64, 80, 85, 96,217,126,127,136,176, 64,124, 0, 88, 80,
|
||||||
/* 0x07c0 */ 127,140,224, 0, 65,158, 5,212,137, 44, 0, 0, 84,160, 64, 46,
|
/* 0x07c0 */ 124,170, 40, 80,176, 7, 1,128, 65,157, 0, 32,127,140,224, 0,
|
||||||
/* 0x07d0 */ 85, 8, 64, 46, 57,140, 0, 1,124, 5, 75,120,161,103, 1,152,
|
/* 0x07d0 */ 65,158, 5,212,137, 44, 0, 0, 84,160, 64, 46, 85, 8, 64, 46,
|
||||||
/* 0x07e0 */ 85, 0,170,254,125, 64, 89,214,127,133, 80, 64, 64,156, 0,188,
|
/* 0x07e0 */ 57,140, 0, 1,124, 5, 75,120,161,103, 1,152, 85, 0,170,254,
|
||||||
/* 0x07f0 */ 127,138,176, 64, 32, 11, 8, 0,124, 0, 46,112, 86,233, 40, 52,
|
/* 0x07f0 */ 125, 64, 89,214,127,133, 80, 64, 64,156, 0,188,127,138,176, 64,
|
||||||
/* 0x0800 */ 124, 11, 2, 20,125, 56, 74, 20, 84,107, 8, 60,176, 7, 1,152,
|
/* 0x0800 */ 32, 11, 8, 0,124, 0, 46,112, 86,233, 40, 52,124, 11, 2, 20,
|
||||||
/* 0x0810 */ 125, 72, 83,120,124,233, 90, 20, 65,157, 0, 32,127,140,224, 0,
|
/* 0x0810 */ 125, 56, 74, 20, 84,107, 8, 60,176, 7, 1,152,125, 72, 83,120,
|
||||||
/* 0x0820 */ 65,158, 5,120,137, 44, 0, 0, 84,160, 64, 46, 85, 72, 64, 46,
|
/* 0x0820 */ 124,233, 90, 20, 65,157, 0, 32,127,140,224, 0, 65,158, 5,120,
|
||||||
/* 0x0830 */ 57,140, 0, 1,124, 5, 75,120,161,103, 1,224, 85, 0,170,254,
|
/* 0x0830 */ 137, 44, 0, 0, 84,160, 64, 46, 85, 72, 64, 46, 57,140, 0, 1,
|
||||||
/* 0x0840 */ 125, 64, 89,214,127,133, 80, 64, 64,156, 0, 72, 47,153, 0, 0,
|
/* 0x0840 */ 124, 5, 75,120,161,103, 1,224, 85, 0,170,254,125, 64, 89,214,
|
||||||
/* 0x0850 */ 32, 11, 8, 0,124, 0, 46,112,125, 72, 83,120,124, 11, 2, 20,
|
/* 0x0850 */ 127,133, 80, 64, 64,156, 0, 72, 47,153, 0, 0, 32, 11, 8, 0,
|
||||||
/* 0x0860 */ 176, 7, 1,224, 65,158, 5, 52, 47,151, 0, 6, 57, 32, 0, 9,
|
/* 0x0860 */ 124, 0, 46,112,125, 72, 83,120,124, 11, 2, 20,176, 7, 1,224,
|
||||||
/* 0x0870 */ 64,157, 0, 8, 57, 32, 0, 11,124, 26,200, 80,125, 55, 75,120,
|
/* 0x0870 */ 65,158, 5, 52, 47,151, 0, 6, 57, 32, 0, 9, 64,157, 0, 8,
|
||||||
/* 0x0880 */ 127,245, 0,174,127,249,169,174, 59, 57, 0, 1, 72, 0, 4,228,
|
/* 0x0880 */ 57, 32, 0, 11,124, 26,200, 80,125, 55, 75,120,127,245, 0,174,
|
||||||
/* 0x0890 */ 85, 96,217,126,124,170, 40, 80,124, 0, 88, 80,125, 10, 64, 80,
|
/* 0x0890 */ 127,249,169,174, 59, 57, 0, 1, 72, 0, 4,228, 85, 96,217,126,
|
||||||
/* 0x08a0 */ 176, 7, 1,224, 72, 0, 0,252,125, 10, 64, 80, 85, 96,217,126,
|
/* 0x08a0 */ 124,170, 40, 80,124, 0, 88, 80,125, 10, 64, 80,176, 7, 1,224,
|
||||||
/* 0x08b0 */ 127,136,176, 64,124, 0, 88, 80,124,170, 40, 80,176, 7, 1,152,
|
/* 0x08b0 */ 72, 0, 0,252,125, 10, 64, 80, 85, 96,217,126,127,136,176, 64,
|
||||||
/* 0x08c0 */ 65,157, 0, 32,127,140,224, 0, 65,158, 4,208,137, 44, 0, 0,
|
/* 0x08c0 */ 124, 0, 88, 80,124,170, 40, 80,176, 7, 1,152, 65,157, 0, 32,
|
||||||
/* 0x08d0 */ 84,160, 64, 46, 85, 8, 64, 46, 57,140, 0, 1,124, 5, 75,120,
|
/* 0x08d0 */ 127,140,224, 0, 65,158, 4,208,137, 44, 0, 0, 84,160, 64, 46,
|
||||||
/* 0x08e0 */ 161,103, 1,176, 85, 0,170,254,125, 64, 89,214,127,133, 80, 64,
|
/* 0x08e0 */ 85, 8, 64, 46, 57,140, 0, 1,124, 5, 75,120,161,103, 1,176,
|
||||||
/* 0x08f0 */ 64,156, 0, 32, 32, 11, 8, 0,125, 72, 83,120,124, 0, 46,112,
|
/* 0x08f0 */ 85, 0,170,254,125, 64, 89,214,127,133, 80, 64, 64,156, 0, 32,
|
||||||
/* 0x0900 */ 126, 41,139,120,124, 11, 2, 20,176, 7, 1,176, 72, 0, 0,140,
|
/* 0x0900 */ 32, 11, 8, 0,125, 72, 83,120,124, 0, 46,112,126, 41,139,120,
|
||||||
/* 0x0910 */ 125, 10, 64, 80, 85, 96,217,126,127,136,176, 64,124, 0, 88, 80,
|
/* 0x0910 */ 124, 11, 2, 20,176, 7, 1,176, 72, 0, 0,140,125, 10, 64, 80,
|
||||||
/* 0x0920 */ 124,170, 40, 80,176, 7, 1,176, 65,157, 0, 32,127,140,224, 0,
|
/* 0x0920 */ 85, 96,217,126,127,136,176, 64,124, 0, 88, 80,124,170, 40, 80,
|
||||||
/* 0x0930 */ 65,158, 4,104,137, 44, 0, 0, 84,160, 64, 46, 85, 8, 64, 46,
|
/* 0x0930 */ 176, 7, 1,176, 65,157, 0, 32,127,140,224, 0, 65,158, 4,104,
|
||||||
/* 0x0940 */ 57,140, 0, 1,124, 5, 75,120,161,103, 1,200, 85, 0,170,254,
|
/* 0x0940 */ 137, 44, 0, 0, 84,160, 64, 46, 85, 8, 64, 46, 57,140, 0, 1,
|
||||||
/* 0x0950 */ 125, 64, 89,214,127,133, 80, 64, 64,156, 0, 32, 32, 11, 8, 0,
|
/* 0x0950 */ 124, 5, 75,120,161,103, 1,200, 85, 0,170,254,125, 64, 89,214,
|
||||||
/* 0x0960 */ 125, 72, 83,120,124, 0, 46,112,126, 9,131,120,124, 11, 2, 20,
|
/* 0x0960 */ 127,133, 80, 64, 64,156, 0, 32, 32, 11, 8, 0,125, 72, 83,120,
|
||||||
/* 0x0970 */ 176, 7, 1,200, 72, 0, 0, 32, 85, 96,217,126,125,233,123,120,
|
/* 0x0970 */ 124, 0, 46,112,126, 9,131,120,124, 11, 2, 20,176, 7, 1,200,
|
||||||
/* 0x0980 */ 124, 0, 88, 80,124,170, 40, 80,176, 7, 1,200,125, 10, 64, 80,
|
/* 0x0980 */ 72, 0, 0, 32, 85, 96,217,126,125,233,123,120,124, 0, 88, 80,
|
||||||
/* 0x0990 */ 126, 15,131,120,126, 48,139,120,127, 81,211,120,125, 58, 75,120,
|
/* 0x0990 */ 124,170, 40, 80,176, 7, 1,200,125, 10, 64, 80,126, 15,131,120,
|
||||||
/* 0x09a0 */ 47,151, 0, 6, 56, 0, 0, 8, 64,157, 0, 8, 56, 0, 0, 11,
|
/* 0x09a0 */ 126, 48,139,120,127, 81,211,120,125, 58, 75,120, 47,151, 0, 6,
|
||||||
/* 0x09b0 */ 124, 23, 3,120, 56,216, 10,104,127,136,176, 64, 65,157, 0, 32,
|
/* 0x09b0 */ 56, 0, 0, 8, 64,157, 0, 8, 56, 0, 0, 11,124, 23, 3,120,
|
||||||
/* 0x09c0 */ 127,140,224, 0, 65,158, 3,212,137, 44, 0, 0, 84,160, 64, 46,
|
/* 0x09c0 */ 56,216, 10,104,127,136,176, 64, 65,157, 0, 32,127,140,224, 0,
|
||||||
/* 0x09d0 */ 85, 8, 64, 46, 57,140, 0, 1,124, 5, 75,120,161,102, 0, 0,
|
/* 0x09d0 */ 65,158, 3,212,137, 44, 0, 0, 84,160, 64, 46, 85, 8, 64, 46,
|
||||||
/* 0x09e0 */ 85, 0,170,254,125, 64, 89,214,127,133, 80, 64, 64,156, 0, 48,
|
/* 0x09e0 */ 57,140, 0, 1,124, 5, 75,120,161,102, 0, 0, 85, 0,170,254,
|
||||||
/* 0x09f0 */ 84,105, 32, 54, 32, 11, 8, 0,125, 38, 74, 20,124, 0, 46,112,
|
/* 0x09f0 */ 125, 64, 89,214,127,133, 80, 64, 64,156, 0, 48, 84,105, 32, 54,
|
||||||
/* 0x0a00 */ 124, 11, 2, 20,125, 72, 83,120, 56,137, 0, 4, 59, 96, 0, 0,
|
/* 0x0a00 */ 32, 11, 8, 0,125, 38, 74, 20,124, 0, 46,112,124, 11, 2, 20,
|
||||||
/* 0x0a10 */ 176, 6, 0, 0, 56, 96, 0, 3, 72, 0, 0,156,125, 10, 64, 80,
|
/* 0x0a10 */ 125, 72, 83,120, 56,137, 0, 4, 59, 96, 0, 0,176, 6, 0, 0,
|
||||||
/* 0x0a20 */ 85, 96,217,126,127,136,176, 64,124, 0, 88, 80,124,170, 40, 80,
|
/* 0x0a20 */ 56, 96, 0, 3, 72, 0, 0,156,125, 10, 64, 80, 85, 96,217,126,
|
||||||
/* 0x0a30 */ 176, 6, 0, 0, 65,157, 0, 32,127,140,224, 0, 65,158, 3, 92,
|
/* 0x0a30 */ 127,136,176, 64,124, 0, 88, 80,124,170, 40, 80,176, 6, 0, 0,
|
||||||
/* 0x0a40 */ 137, 44, 0, 0, 84,160, 64, 46, 85, 8, 64, 46, 57,140, 0, 1,
|
/* 0x0a40 */ 65,157, 0, 32,127,140,224, 0, 65,158, 3, 92,137, 44, 0, 0,
|
||||||
/* 0x0a50 */ 124, 5, 75,120,161,102, 0, 2, 85, 0,170,254,125, 64, 89,214,
|
/* 0x0a50 */ 84,160, 64, 46, 85, 8, 64, 46, 57,140, 0, 1,124, 5, 75,120,
|
||||||
/* 0x0a60 */ 127,133, 80, 64, 64,156, 0, 48, 84,105, 32, 54, 32, 11, 8, 0,
|
/* 0x0a60 */ 161,102, 0, 2, 85, 0,170,254,125, 64, 89,214,127,133, 80, 64,
|
||||||
/* 0x0a70 */ 125, 38, 74, 20,124, 0, 46,112,124, 11, 2, 20,125, 72, 83,120,
|
/* 0x0a70 */ 64,156, 0, 48, 84,105, 32, 54, 32, 11, 8, 0,125, 38, 74, 20,
|
||||||
/* 0x0a80 */ 56,137, 1, 4, 59, 96, 0, 8,176, 6, 0, 2, 56, 96, 0, 3,
|
/* 0x0a80 */ 124, 0, 46,112,124, 11, 2, 20,125, 72, 83,120, 56,137, 1, 4,
|
||||||
/* 0x0a90 */ 72, 0, 0, 36, 85, 96,217,126,124,170, 40, 80,124, 0, 88, 80,
|
/* 0x0a90 */ 59, 96, 0, 8,176, 6, 0, 2, 56, 96, 0, 3, 72, 0, 0, 36,
|
||||||
/* 0x0aa0 */ 125, 10, 64, 80,176, 6, 0, 2, 56,134, 2, 4, 59, 96, 0, 16,
|
/* 0x0aa0 */ 85, 96,217,126,124,170, 40, 80,124, 0, 88, 80,125, 10, 64, 80,
|
||||||
/* 0x0ab0 */ 56, 96, 0, 8, 63,224, 0,255,124,105, 3,166, 59,160, 0, 1,
|
/* 0x0ab0 */ 176, 6, 0, 2, 56,134, 2, 4, 59, 96, 0, 16, 56, 96, 0, 8,
|
||||||
/* 0x0ac0 */ 99,255,255,255,127,136,248, 64, 87,167, 8, 60,127, 12,224, 0,
|
/* 0x0ac0 */ 63,224, 0,255,124,105, 3,166, 59,160, 0, 1, 99,255,255,255,
|
||||||
/* 0x0ad0 */ 84,169, 64, 46,124,253, 59,120, 65,157, 0, 24, 65,154, 2,188,
|
/* 0x0ad0 */ 127,136,248, 64, 87,167, 8, 60,127, 12,224, 0, 84,169, 64, 46,
|
||||||
/* 0x0ae0 */ 136, 12, 0, 0, 85, 8, 64, 46, 57,140, 0, 1,125, 37, 3,120,
|
/* 0x0ae0 */ 124,253, 59,120, 65,157, 0, 24, 65,154, 2,188,136, 12, 0, 0,
|
||||||
/* 0x0af0 */ 125,100, 58, 46, 85, 0,170,254,125, 64, 89,214, 32, 11, 8, 0,
|
/* 0x0af0 */ 85, 8, 64, 46, 57,140, 0, 1,125, 37, 3,120,125,100, 58, 46,
|
||||||
/* 0x0b00 */ 85,105,217,126,124, 0, 46,112,124, 11, 2, 20,125,105, 88, 80,
|
/* 0x0b00 */ 85, 0,170,254,125, 64, 89,214, 32, 11, 8, 0, 85,105,217,126,
|
||||||
/* 0x0b10 */ 127,133, 80, 64,125, 10, 64, 80, 64,156, 0, 16,125, 72, 83,120,
|
/* 0x0b10 */ 124, 0, 46,112,124, 11, 2, 20,125,105, 88, 80,127,133, 80, 64,
|
||||||
/* 0x0b20 */ 124, 4, 59, 46, 72, 0, 0, 16,124,170, 40, 80, 59,167, 0, 1,
|
/* 0x0b20 */ 125, 10, 64, 80, 64,156, 0, 16,125, 72, 83,120,124, 4, 59, 46,
|
||||||
/* 0x0b30 */ 125,100, 59, 46, 66, 0,255,144, 47,151, 0, 3, 56, 0, 0, 1,
|
/* 0x0b30 */ 72, 0, 0, 16,124,170, 40, 80, 59,167, 0, 1,125,100, 59, 46,
|
||||||
/* 0x0b40 */ 124, 0, 24, 48,127,160,232, 80,127,189,218, 20, 65,157, 1,232,
|
/* 0x0b40 */ 66, 0,255,144, 47,151, 0, 3, 56, 0, 0, 1,124, 0, 24, 48,
|
||||||
/* 0x0b50 */ 47,157, 0, 3, 58,247, 0, 7,127,169,235,120, 64,157, 0, 8,
|
/* 0x0b50 */ 127,160,232, 80,127,189,218, 20, 65,157, 1,232, 47,157, 0, 3,
|
||||||
/* 0x0b60 */ 57, 32, 0, 3, 85, 41, 56, 48, 63,224, 0,255,125, 56, 74, 20,
|
/* 0x0b60 */ 58,247, 0, 7,127,169,235,120, 64,157, 0, 8, 57, 32, 0, 3,
|
||||||
/* 0x0b70 */ 99,255,255,255, 56,201, 3, 96, 57, 32, 0, 6,125, 41, 3,166,
|
/* 0x0b70 */ 85, 41, 56, 48, 63,224, 0,255,125, 56, 74, 20, 99,255,255,255,
|
||||||
/* 0x0b80 */ 56,128, 0, 1,127,136,248, 64, 84,135, 8, 60,127, 12,224, 0,
|
/* 0x0b80 */ 56,201, 3, 96, 57, 32, 0, 6,125, 41, 3,166, 56,128, 0, 1,
|
||||||
/* 0x0b90 */ 84,169, 64, 46,124,228, 59,120, 65,157, 0, 24, 65,154, 1,252,
|
/* 0x0b90 */ 127,136,248, 64, 84,135, 8, 60,127, 12,224, 0, 84,169, 64, 46,
|
||||||
/* 0x0ba0 */ 136, 12, 0, 0, 85, 8, 64, 46, 57,140, 0, 1,125, 37, 3,120,
|
/* 0x0ba0 */ 124,228, 59,120, 65,157, 0, 24, 65,154, 1,252,136, 12, 0, 0,
|
||||||
/* 0x0bb0 */ 125,102, 58, 46, 85, 0,170,254,125, 64, 89,214, 32, 11, 8, 0,
|
/* 0x0bb0 */ 85, 8, 64, 46, 57,140, 0, 1,125, 37, 3,120,125,102, 58, 46,
|
||||||
/* 0x0bc0 */ 85,105,217,126,124, 0, 46,112,124, 11, 2, 20,125,105, 88, 80,
|
/* 0x0bc0 */ 85, 0,170,254,125, 64, 89,214, 32, 11, 8, 0, 85,105,217,126,
|
||||||
/* 0x0bd0 */ 127,133, 80, 64,125, 10, 64, 80, 64,156, 0, 16,125, 72, 83,120,
|
/* 0x0bd0 */ 124, 0, 46,112,124, 11, 2, 20,125,105, 88, 80,127,133, 80, 64,
|
||||||
/* 0x0be0 */ 124, 6, 59, 46, 72, 0, 0, 16,124,170, 40, 80, 56,135, 0, 1,
|
/* 0x0be0 */ 125, 10, 64, 80, 64,156, 0, 16,125, 72, 83,120,124, 6, 59, 46,
|
||||||
/* 0x0bf0 */ 125,102, 59, 46, 66, 0,255,144, 56,132,255,192, 47,132, 0, 3,
|
/* 0x0bf0 */ 72, 0, 0, 16,124,170, 40, 80, 56,135, 0, 1,125,102, 59, 46,
|
||||||
/* 0x0c00 */ 124,154, 35,120, 64,157, 1, 40, 47,132, 0, 13,124,137, 14,112,
|
/* 0x0c00 */ 66, 0,255,144, 56,132,255,192, 47,132, 0, 3,124,154, 35,120,
|
||||||
/* 0x0c10 */ 84,128, 7,254, 57,105,255,255, 96, 26, 0, 2,125,105, 3,166,
|
/* 0x0c10 */ 64,157, 1, 40, 47,132, 0, 13,124,137, 14,112, 84,128, 7,254,
|
||||||
/* 0x0c20 */ 65,157, 0, 32,127, 90, 88, 48, 84,128, 8, 60, 87, 73, 8, 60,
|
/* 0x0c20 */ 57,105,255,255, 96, 26, 0, 2,125,105, 3,166, 65,157, 0, 32,
|
||||||
/* 0x0c30 */ 125, 56, 74, 20,125, 32, 72, 80, 56,201, 5, 94, 72, 0, 0,100,
|
/* 0x0c30 */ 127, 90, 88, 48, 84,128, 8, 60, 87, 73, 8, 60,125, 56, 74, 20,
|
||||||
/* 0x0c40 */ 57, 41,255,251, 61, 96, 0,255,125, 41, 3,166, 97,107,255,255,
|
/* 0x0c40 */ 125, 32, 72, 80, 56,201, 5, 94, 72, 0, 0,100, 57, 41,255,251,
|
||||||
/* 0x0c50 */ 127,136, 88, 64,127, 12,224, 0, 84,169, 64, 46, 87, 90, 8, 60,
|
/* 0x0c50 */ 61, 96, 0,255,125, 41, 3,166, 97,107,255,255,127,136, 88, 64,
|
||||||
/* 0x0c60 */ 65,157, 0, 24, 65,154, 1, 52,136, 12, 0, 0, 85, 8, 64, 46,
|
/* 0x0c60 */ 127, 12,224, 0, 84,169, 64, 46, 87, 90, 8, 60, 65,157, 0, 24,
|
||||||
/* 0x0c70 */ 57,140, 0, 1,125, 37, 3,120, 85, 8,248,126,127,133, 64, 64,
|
/* 0x0c70 */ 65,154, 1, 52,136, 12, 0, 0, 85, 8, 64, 46, 57,140, 0, 1,
|
||||||
/* 0x0c80 */ 65,156, 0, 12,124,168, 40, 80, 99, 90, 0, 1, 66, 0,255,196,
|
/* 0x0c80 */ 125, 37, 3,120, 85, 8,248,126,127,133, 64, 64, 65,156, 0, 12,
|
||||||
/* 0x0c90 */ 56, 0, 0, 4, 87, 90, 32, 54,124, 9, 3,166, 56,216, 6, 68,
|
/* 0x0c90 */ 124,168, 40, 80, 99, 90, 0, 1, 66, 0,255,196, 56, 0, 0, 4,
|
||||||
/* 0x0ca0 */ 60, 96, 0,255, 56,128, 0, 1, 96, 99,255,255, 59,224, 0, 1,
|
/* 0x0ca0 */ 87, 90, 32, 54,124, 9, 3,166, 56,216, 6, 68, 60, 96, 0,255,
|
||||||
/* 0x0cb0 */ 127,136, 24, 64, 87,231, 8, 60,127, 12,224, 0, 84,169, 64, 46,
|
/* 0x0cb0 */ 56,128, 0, 1, 96, 99,255,255, 59,224, 0, 1,127,136, 24, 64,
|
||||||
/* 0x0cc0 */ 124,255, 59,120, 65,157, 0, 24, 65,154, 0,208,136, 12, 0, 0,
|
/* 0x0cc0 */ 87,231, 8, 60,127, 12,224, 0, 84,169, 64, 46,124,255, 59,120,
|
||||||
/* 0x0cd0 */ 85, 8, 64, 46, 57,140, 0, 1,125, 37, 3,120,125,102, 58, 46,
|
/* 0x0cd0 */ 65,157, 0, 24, 65,154, 0,208,136, 12, 0, 0, 85, 8, 64, 46,
|
||||||
/* 0x0ce0 */ 85, 0,170,254,125, 64, 89,214, 32, 11, 8, 0, 85,105,217,126,
|
/* 0x0ce0 */ 57,140, 0, 1,125, 37, 3,120,125,102, 58, 46, 85, 0,170,254,
|
||||||
/* 0x0cf0 */ 124, 0, 46,112,124, 11, 2, 20,125,105, 88, 80,127,133, 80, 64,
|
/* 0x0cf0 */ 125, 64, 89,214, 32, 11, 8, 0, 85,105,217,126,124, 0, 46,112,
|
||||||
/* 0x0d00 */ 125, 10, 64, 80, 64,156, 0, 16,125, 72, 83,120,124, 6, 59, 46,
|
/* 0x0d00 */ 124, 11, 2, 20,125,105, 88, 80,127,133, 80, 64,125, 10, 64, 80,
|
||||||
/* 0x0d10 */ 72, 0, 0, 20,124,170, 40, 80, 59,231, 0, 1,125,102, 59, 46,
|
/* 0x0d10 */ 64,156, 0, 16,125, 72, 83,120,124, 6, 59, 46, 72, 0, 0, 20,
|
||||||
/* 0x0d20 */ 127, 90, 35,120, 84,132, 8, 60, 66, 0,255,136, 55, 90, 0, 1,
|
/* 0x0d20 */ 124,170, 40, 80, 59,231, 0, 1,125,102, 59, 46,127, 90, 35,120,
|
||||||
/* 0x0d30 */ 65,130, 0, 72,127,154,200, 64, 59,189, 0, 2, 65,157, 0, 92,
|
/* 0x0d30 */ 84,132, 8, 60, 66, 0,255,136, 55, 90, 0, 1, 65,130, 0, 72,
|
||||||
/* 0x0d40 */ 124, 26,200, 80, 59,189,255,255,127,245, 0,174, 49,125,255,255,
|
/* 0x0d40 */ 127,154,200, 64, 59,189, 0, 2, 65,157, 0, 92,124, 26,200, 80,
|
||||||
/* 0x0d50 */ 125, 43,233, 16,127,249,169,174, 59, 57, 0, 1,124, 20,200, 16,
|
/* 0x0d50 */ 59,189,255,255,127,245, 0,174, 49,125,255,255,125, 43,233, 16,
|
||||||
/* 0x0d60 */ 124, 0, 1, 16,124, 0, 0,208,125, 43, 0, 57, 64,130,255,212,
|
/* 0x0d60 */ 127,249,169,174, 59, 57, 0, 1,124, 20,200, 16,124, 0, 1, 16,
|
||||||
/* 0x0d70 */ 127,153,160, 64, 65,156,247,172, 60, 0, 0,255, 96, 0,255,255,
|
/* 0x0d70 */ 124, 0, 0,208,125, 43, 0, 57, 64,130,255,212,127,153,160, 64,
|
||||||
/* 0x0d80 */ 127,136, 0, 64, 65,157, 0, 32,127,140,224, 0, 56, 96, 0, 1,
|
/* 0x0d80 */ 65,156,247,172, 60, 0, 0,255, 96, 0,255,255,127,136, 0, 64,
|
||||||
/* 0x0d90 */ 65,158, 0, 40, 72, 0, 0, 12, 56, 96, 0, 1, 72, 0, 0, 28,
|
/* 0x0d90 */ 65,157, 0, 32,127,140,224, 0, 56, 96, 0, 1, 65,158, 0, 40,
|
||||||
/* 0x0da0 */ 57,140, 0, 1,125, 40, 2,166,124, 19, 96, 80, 56, 96, 0, 0,
|
/* 0x0da0 */ 72, 0, 0, 12, 56, 96, 0, 1, 72, 0, 0, 28, 57,140, 0, 1,
|
||||||
/* 0x0db0 */ 144, 14, 0, 0,147, 41, 0, 0,128, 1, 0,100,185,193, 0, 24,
|
/* 0x0db0 */ 125, 40, 2,166,124, 19, 96, 80, 56, 96, 0, 0,144, 14, 0, 0,
|
||||||
/* 0x0dc0 */ 56, 33, 0, 96,124, 8, 3,166,124, 8, 2,166,148, 33,255,160,
|
/* 0x0dc0 */ 147, 41, 0, 0,128, 1, 0,100,185,193, 0, 24, 56, 33, 0, 96,
|
||||||
/* 0x0dd0 */ 189,193, 0, 24, 59, 32, 0, 0,125, 40, 3,166,124,206, 51,120,
|
/* 0x0dd0 */ 124, 8, 3,166,124, 8, 2,166,148, 33,255,160,189,193, 0, 24,
|
||||||
/* 0x0de0 */ 124,147, 35,120,144, 1, 0,100,124,245, 59,120,125, 20, 67,120,
|
/* 0x0de0 */ 59, 32, 0, 0,125, 40, 3,166,124,206, 51,120,124,147, 35,120,
|
||||||
/* 0x0df0 */ 137, 67, 0, 2, 59, 3, 0, 4, 59,224, 0, 0,137, 99, 0, 1,
|
/* 0x0df0 */ 144, 1, 0,100,124,245, 59,120,125, 20, 67,120,137, 67, 0, 2,
|
||||||
/* 0x0e00 */ 58,224, 0, 0, 59, 64, 0, 1,138, 67, 0, 0, 58, 32, 0, 1,
|
/* 0x0e00 */ 59, 3, 0, 4, 59,224, 0, 0,137, 99, 0, 1, 58,224, 0, 0,
|
||||||
/* 0x0e10 */ 58, 0, 0, 1,147, 38, 0, 0, 57,224, 0, 1,147, 41, 0, 0,
|
/* 0x0e10 */ 59, 64, 0, 1,138, 67, 0, 0, 58, 32, 0, 1, 58, 0, 0, 1,
|
||||||
/* 0x0e20 */ 57, 32, 3, 0,136, 3, 0, 1,124, 18, 2, 20,125, 41, 0, 48,
|
/* 0x0e20 */ 147, 38, 0, 0, 57,224, 0, 1,147, 41, 0, 0, 57, 32, 3, 0,
|
||||||
/* 0x0e30 */ 56, 9, 7, 54, 57, 32, 0, 1,127,153, 0, 64,125, 43, 88, 48,
|
/* 0x0e30 */ 136, 3, 0, 1,124, 18, 2, 20,125, 41, 0, 48, 56, 9, 7, 54,
|
||||||
/* 0x0e40 */ 125, 41, 80, 48, 57,107,255,255, 57, 41,255,255,145, 97, 0, 12,
|
/* 0x0e40 */ 57, 32, 0, 1,127,153, 0, 64,125, 43, 88, 48,125, 41, 80, 48,
|
||||||
/* 0x0e50 */ 145, 33, 0, 8, 57, 32, 0, 0, 64,156, 0, 28,124, 9, 3,166,
|
/* 0x0e50 */ 57,107,255,255, 57, 41,255,255,145, 97, 0, 12,145, 33, 0, 8,
|
||||||
/* 0x0e60 */ 57, 96, 4, 0, 85, 32, 8, 60, 57, 41, 0, 1,125,120, 3, 46,
|
/* 0x0e60 */ 57, 32, 0, 0, 64,156, 0, 28,124, 9, 3,166, 57, 96, 4, 0,
|
||||||
/* 0x0e70 */ 66, 0,255,244,127,147, 42, 20,126,108,155,120, 56,160, 0, 0,
|
/* 0x0e70 */ 85, 32, 8, 60, 57, 41, 0, 1,125,120, 3, 46, 66, 0,255,244,
|
||||||
/* 0x0e80 */ 57, 0,255,255, 57, 96, 0, 0,127,140,224, 0, 57,107, 0, 1,
|
/* 0x0e80 */ 127,147, 42, 20,126,108,155,120, 56,160, 0, 0, 57, 0,255,255,
|
||||||
/* 0x0e90 */ 47, 11, 0, 4, 84,169, 64, 46, 65,158, 8,156,136, 12, 0, 0,
|
/* 0x0e90 */ 57, 96, 0, 0,127,140,224, 0, 57,107, 0, 1, 47, 11, 0, 4,
|
||||||
/* 0x0ea0 */ 57,140, 0, 1,125, 37, 3,120, 64,153,255,224,127,153,160, 64,
|
/* 0x0ea0 */ 84,169, 64, 46, 65,158, 8,156,136, 12, 0, 0, 57,140, 0, 1,
|
||||||
/* 0x0eb0 */ 64,156, 8,100, 62,192, 0,255, 98,214,255,255,127,136,176, 64,
|
/* 0x0eb0 */ 125, 37, 3,120, 64,153,255,224,127,153,160, 64, 64,156, 8,100,
|
||||||
/* 0x0ec0 */ 128, 1, 0, 8,127, 35, 0, 56, 86,224, 32, 54,124, 0, 26, 20,
|
/* 0x0ec0 */ 62,192, 0,255, 98,214,255,255,127,136,176, 64,128, 1, 0, 8,
|
||||||
/* 0x0ed0 */ 84, 6, 8, 60, 65,157, 0, 32,127,140,224, 0, 65,158, 8, 88,
|
/* 0x0ed0 */ 127, 35, 0, 56, 86,224, 32, 54,124, 0, 26, 20, 84, 6, 8, 60,
|
||||||
/* 0x0ee0 */ 137, 44, 0, 0, 84,160, 64, 46, 85, 8, 64, 46, 57,140, 0, 1,
|
/* 0x0ee0 */ 65,157, 0, 32,127,140,224, 0, 65,158, 8, 88,137, 44, 0, 0,
|
||||||
/* 0x0ef0 */ 124, 5, 75,120,124,230,194, 46, 85, 0,170,254,125, 64, 57,214,
|
/* 0x0ef0 */ 84,160, 64, 46, 85, 8, 64, 46, 57,140, 0, 1,124, 5, 75,120,
|
||||||
/* 0x0f00 */ 127,133, 80, 64, 64,156, 1,172,128, 1, 0, 12, 47,151, 0, 6,
|
/* 0x0f00 */ 124,230,194, 46, 85, 0,170,254,125, 64, 57,214,127,133, 80, 64,
|
||||||
/* 0x0f10 */ 125, 72, 83,120, 56, 96, 0, 1,127, 41, 0, 56, 32, 18, 0, 8,
|
/* 0x0f10 */ 64,156, 1,172,128, 1, 0, 12, 47,151, 0, 6,125, 72, 83,120,
|
||||||
/* 0x0f20 */ 127,224, 6, 48,125, 41,144, 48,125, 41, 2, 20, 32, 7, 8, 0,
|
/* 0x0f20 */ 56, 96, 0, 1,127, 41, 0, 56, 32, 18, 0, 8,127,224, 6, 48,
|
||||||
/* 0x0f30 */ 29, 41, 6, 0,124, 0, 46,112,124, 7, 2, 20,124, 6,195, 46,
|
/* 0x0f30 */ 125, 41,144, 48,125, 41, 2, 20, 32, 7, 8, 0, 29, 41, 6, 0,
|
||||||
/* 0x0f40 */ 125, 56, 74, 20, 56,201, 14,108, 64,157, 0,180,124, 26,200, 80,
|
/* 0x0f40 */ 124, 0, 46,112,124, 7, 2, 20,124, 6,195, 46,125, 56, 74, 20,
|
||||||
/* 0x0f50 */ 63, 96, 0,255,127,245, 0,174, 99,123,255,255,127,136,216, 64,
|
/* 0x0f50 */ 56,201, 14,108, 64,157, 0,180,124, 26,200, 80, 63, 96, 0,255,
|
||||||
/* 0x0f60 */ 87,255, 8, 60, 87,253, 5,238, 84,100, 8, 60, 87,160, 8, 60,
|
/* 0x0f60 */ 127,245, 0,174, 99,123,255,255,127,136,216, 64, 87,255, 8, 60,
|
||||||
/* 0x0f70 */ 127, 12,224, 0,124, 6, 2, 20, 84,169, 64, 46,124,224, 34, 20,
|
/* 0x0f70 */ 87,253, 5,238, 84,100, 8, 60, 87,160, 8, 60,127, 12,224, 0,
|
||||||
/* 0x0f80 */ 65,157, 0, 24, 65,154, 7,176,136, 12, 0, 0, 85, 8, 64, 46,
|
/* 0x0f80 */ 124, 6, 2, 20, 84,169, 64, 46,124,224, 34, 20, 65,157, 0, 24,
|
||||||
/* 0x0f90 */ 57,140, 0, 1,125, 37, 3,120,161,103, 2, 0, 85, 0,170,254,
|
/* 0x0f90 */ 65,154, 7,176,136, 12, 0, 0, 85, 8, 64, 46, 57,140, 0, 1,
|
||||||
/* 0x0fa0 */ 47, 29, 0, 0,124,131, 35,120,125, 64, 89,214, 32, 11, 8, 0,
|
/* 0x0fa0 */ 125, 37, 3,120,161,103, 2, 0, 85, 0,170,254, 47, 29, 0, 0,
|
||||||
/* 0x0fb0 */ 85,105,217,126,124, 0, 46,112,124, 11, 2, 20,125,105, 88, 80,
|
/* 0x0fb0 */ 124,131, 35,120,125, 64, 89,214, 32, 11, 8, 0, 85,105,217,126,
|
||||||
/* 0x0fc0 */ 127,133, 80, 64,125, 10, 64, 80, 64,156, 0, 20,176, 7, 2, 0,
|
/* 0x0fc0 */ 124, 0, 46,112,124, 11, 2, 20,125,105, 88, 80,127,133, 80, 64,
|
||||||
/* 0x0fd0 */ 125, 72, 83,120, 65,186, 0, 24, 72, 0, 0, 28,177,103, 2, 0,
|
/* 0x0fd0 */ 125, 10, 64, 80, 64,156, 0, 20,176, 7, 2, 0,125, 72, 83,120,
|
||||||
/* 0x0fe0 */ 124,170, 40, 80, 56,100, 0, 1, 65,154, 0, 12, 47,131, 0,255,
|
/* 0x0fe0 */ 65,186, 0, 24, 72, 0, 0, 28,177,103, 2, 0,124,170, 40, 80,
|
||||||
/* 0x0ff0 */ 64,157,255,108, 47,131, 0,255, 65,157, 0,132, 63,224, 0,255,
|
/* 0x0ff0 */ 56,100, 0, 1, 65,154, 0, 12, 47,131, 0,255, 64,157,255,108,
|
||||||
/* 0x1000 */ 99,255,255,255,127,136,248, 64, 84,103, 8, 60,127, 12,224, 0,
|
/* 0x1000 */ 47,131, 0,255, 65,157, 0,132, 63,224, 0,255, 99,255,255,255,
|
||||||
/* 0x1010 */ 84,169, 64, 46,124,227, 59,120, 65,157, 0, 24, 65,154, 7, 24,
|
/* 0x1010 */ 127,136,248, 64, 84,103, 8, 60,127, 12,224, 0, 84,169, 64, 46,
|
||||||
/* 0x1020 */ 136, 12, 0, 0, 85, 8, 64, 46, 57,140, 0, 1,125, 37, 3,120,
|
/* 0x1020 */ 124,227, 59,120, 65,157, 0, 24, 65,154, 7, 24,136, 12, 0, 0,
|
||||||
/* 0x1030 */ 125,102, 58, 46, 85, 0,170,254,125, 64, 89,214, 32, 11, 8, 0,
|
/* 0x1030 */ 85, 8, 64, 46, 57,140, 0, 1,125, 37, 3,120,125,102, 58, 46,
|
||||||
/* 0x1040 */ 85,105,217,126,124, 0, 46,112,124, 11, 2, 20,125,105, 88, 80,
|
/* 0x1040 */ 85, 0,170,254,125, 64, 89,214, 32, 11, 8, 0, 85,105,217,126,
|
||||||
/* 0x1050 */ 127,133, 80, 64,125, 10, 64, 80, 64,156, 0, 16,125, 72, 83,120,
|
/* 0x1050 */ 124, 0, 46,112,124, 11, 2, 20,125,105, 88, 80,127,133, 80, 64,
|
||||||
/* 0x1060 */ 124, 6, 59, 46, 72, 0, 0, 16,124,170, 40, 80,125,102, 59, 46,
|
/* 0x1060 */ 125, 10, 64, 80, 64,156, 0, 16,125, 72, 83,120,124, 6, 59, 46,
|
||||||
/* 0x1070 */ 56,103, 0, 1, 47,131, 0,255, 64,157,255,140, 47,151, 0, 3,
|
/* 0x1070 */ 72, 0, 0, 16,124,170, 40, 80,125,102, 59, 46, 56,103, 0, 1,
|
||||||
/* 0x1080 */ 84,127, 6, 62,127,249,169,174, 59, 57, 0, 1, 65,157, 0, 12,
|
/* 0x1080 */ 47,131, 0,255, 64,157,255,140, 47,151, 0, 3, 84,127, 6, 62,
|
||||||
/* 0x1090 */ 58,224, 0, 0, 72, 0, 6,120, 47,151, 0, 9, 65,157, 0, 12,
|
/* 0x1090 */ 127,249,169,174, 59, 57, 0, 1, 65,157, 0, 12, 58,224, 0, 0,
|
||||||
/* 0x10a0 */ 58,247,255,253, 72, 0, 6,104, 58,247,255,250, 72, 0, 6, 96,
|
/* 0x10a0 */ 72, 0, 6,120, 47,151, 0, 9, 65,157, 0, 12, 58,247,255,253,
|
||||||
/* 0x10b0 */ 125, 10, 64, 80, 84,224,217,126,127,136,176, 64,124, 0, 56, 80,
|
/* 0x10b0 */ 72, 0, 6,104, 58,247,255,250, 72, 0, 6, 96,125, 10, 64, 80,
|
||||||
/* 0x10c0 */ 86,233, 8, 60,124, 6,195, 46,124,170, 40, 80,124,248, 74, 20,
|
/* 0x10c0 */ 84,224,217,126,127,136,176, 64,124, 0, 56, 80, 86,233, 8, 60,
|
||||||
/* 0x10d0 */ 65,157, 0, 32,127,140,224, 0, 65,158, 6, 92,137, 44, 0, 0,
|
/* 0x10d0 */ 124, 6,195, 46,124,170, 40, 80,124,248, 74, 20, 65,157, 0, 32,
|
||||||
/* 0x10e0 */ 84,160, 64, 46, 85, 8, 64, 46, 57,140, 0, 1,124, 5, 75,120,
|
/* 0x10e0 */ 127,140,224, 0, 65,158, 6, 92,137, 44, 0, 0, 84,160, 64, 46,
|
||||||
/* 0x10f0 */ 161,103, 1,128, 85, 0,170,254,125, 64, 89,214,127,133, 80, 64,
|
/* 0x10f0 */ 85, 8, 64, 46, 57,140, 0, 1,124, 5, 75,120,161,103, 1,128,
|
||||||
/* 0x1100 */ 64,156, 0, 64, 47,151, 0, 6, 32, 11, 8, 0,124, 0, 46,112,
|
/* 0x1100 */ 85, 0,170,254,125, 64, 89,214,127,133, 80, 64, 64,156, 0, 64,
|
||||||
/* 0x1110 */ 126, 15,131,120,124, 11, 2, 20,126, 48,139,120,176, 7, 1,128,
|
/* 0x1110 */ 47,151, 0, 6, 32, 11, 8, 0,124, 0, 46,112,126, 15,131,120,
|
||||||
/* 0x1120 */ 125, 72, 83,120, 56, 0, 0, 0,127, 81,211,120, 64,157, 0, 8,
|
/* 0x1120 */ 124, 11, 2, 20,126, 48,139,120,176, 7, 1,128,125, 72, 83,120,
|
||||||
/* 0x1130 */ 56, 0, 0, 3,124, 23, 3,120, 56,216, 6,100, 72, 0, 2, 24,
|
/* 0x1130 */ 56, 0, 0, 0,127, 81,211,120, 64,157, 0, 8, 56, 0, 0, 3,
|
||||||
/* 0x1140 */ 125, 10, 64, 80, 85, 96,217,126,127,136,176, 64,124, 0, 88, 80,
|
/* 0x1140 */ 124, 23, 3,120, 56,216, 6,100, 72, 0, 2, 24,125, 10, 64, 80,
|
||||||
/* 0x1150 */ 124,170, 40, 80,176, 7, 1,128, 65,157, 0, 32,127,140,224, 0,
|
/* 0x1150 */ 85, 96,217,126,127,136,176, 64,124, 0, 88, 80,124,170, 40, 80,
|
||||||
/* 0x1160 */ 65,158, 5,212,137, 44, 0, 0, 84,160, 64, 46, 85, 8, 64, 46,
|
/* 0x1160 */ 176, 7, 1,128, 65,157, 0, 32,127,140,224, 0, 65,158, 5,212,
|
||||||
/* 0x1170 */ 57,140, 0, 1,124, 5, 75,120,161,103, 1,152, 85, 0,170,254,
|
/* 0x1170 */ 137, 44, 0, 0, 84,160, 64, 46, 85, 8, 64, 46, 57,140, 0, 1,
|
||||||
/* 0x1180 */ 125, 64, 89,214,127,133, 80, 64, 64,156, 0,188,127,138,176, 64,
|
/* 0x1180 */ 124, 5, 75,120,161,103, 1,152, 85, 0,170,254,125, 64, 89,214,
|
||||||
/* 0x1190 */ 32, 11, 8, 0,124, 0, 46,112, 86,233, 40, 52,124, 11, 2, 20,
|
/* 0x1190 */ 127,133, 80, 64, 64,156, 0,188,127,138,176, 64, 32, 11, 8, 0,
|
||||||
/* 0x11a0 */ 125, 56, 74, 20, 84,107, 8, 60,176, 7, 1,152,125, 72, 83,120,
|
/* 0x11a0 */ 124, 0, 46,112, 86,233, 40, 52,124, 11, 2, 20,125, 56, 74, 20,
|
||||||
/* 0x11b0 */ 124,233, 90, 20, 65,157, 0, 32,127,140,224, 0, 65,158, 5,120,
|
/* 0x11b0 */ 84,107, 8, 60,176, 7, 1,152,125, 72, 83,120,124,233, 90, 20,
|
||||||
/* 0x11c0 */ 137, 44, 0, 0, 84,160, 64, 46, 85, 72, 64, 46, 57,140, 0, 1,
|
/* 0x11c0 */ 65,157, 0, 32,127,140,224, 0, 65,158, 5,120,137, 44, 0, 0,
|
||||||
/* 0x11d0 */ 124, 5, 75,120,161,103, 1,224, 85, 0,170,254,125, 64, 89,214,
|
/* 0x11d0 */ 84,160, 64, 46, 85, 72, 64, 46, 57,140, 0, 1,124, 5, 75,120,
|
||||||
/* 0x11e0 */ 127,133, 80, 64, 64,156, 0, 72, 47,153, 0, 0, 32, 11, 8, 0,
|
/* 0x11e0 */ 161,103, 1,224, 85, 0,170,254,125, 64, 89,214,127,133, 80, 64,
|
||||||
/* 0x11f0 */ 124, 0, 46,112,125, 72, 83,120,124, 11, 2, 20,176, 7, 1,224,
|
/* 0x11f0 */ 64,156, 0, 72, 47,153, 0, 0, 32, 11, 8, 0,124, 0, 46,112,
|
||||||
/* 0x1200 */ 65,158, 5, 52, 47,151, 0, 6, 57, 32, 0, 9, 64,157, 0, 8,
|
/* 0x1200 */ 125, 72, 83,120,124, 11, 2, 20,176, 7, 1,224, 65,158, 5, 52,
|
||||||
/* 0x1210 */ 57, 32, 0, 11,124, 26,200, 80,125, 55, 75,120,127,245, 0,174,
|
/* 0x1210 */ 47,151, 0, 6, 57, 32, 0, 9, 64,157, 0, 8, 57, 32, 0, 11,
|
||||||
/* 0x1220 */ 127,249,169,174, 59, 57, 0, 1, 72, 0, 4,228, 85, 96,217,126,
|
/* 0x1220 */ 124, 26,200, 80,125, 55, 75,120,127,245, 0,174,127,249,169,174,
|
||||||
/* 0x1230 */ 124,170, 40, 80,124, 0, 88, 80,125, 10, 64, 80,176, 7, 1,224,
|
/* 0x1230 */ 59, 57, 0, 1, 72, 0, 4,228, 85, 96,217,126,124,170, 40, 80,
|
||||||
/* 0x1240 */ 72, 0, 0,252,125, 10, 64, 80, 85, 96,217,126,127,136,176, 64,
|
/* 0x1240 */ 124, 0, 88, 80,125, 10, 64, 80,176, 7, 1,224, 72, 0, 0,252,
|
||||||
/* 0x1250 */ 124, 0, 88, 80,124,170, 40, 80,176, 7, 1,152, 65,157, 0, 32,
|
/* 0x1250 */ 125, 10, 64, 80, 85, 96,217,126,127,136,176, 64,124, 0, 88, 80,
|
||||||
/* 0x1260 */ 127,140,224, 0, 65,158, 4,208,137, 44, 0, 0, 84,160, 64, 46,
|
/* 0x1260 */ 124,170, 40, 80,176, 7, 1,152, 65,157, 0, 32,127,140,224, 0,
|
||||||
/* 0x1270 */ 85, 8, 64, 46, 57,140, 0, 1,124, 5, 75,120,161,103, 1,176,
|
/* 0x1270 */ 65,158, 4,208,137, 44, 0, 0, 84,160, 64, 46, 85, 8, 64, 46,
|
||||||
/* 0x1280 */ 85, 0,170,254,125, 64, 89,214,127,133, 80, 64, 64,156, 0, 32,
|
/* 0x1280 */ 57,140, 0, 1,124, 5, 75,120,161,103, 1,176, 85, 0,170,254,
|
||||||
/* 0x1290 */ 32, 11, 8, 0,125, 72, 83,120,124, 0, 46,112,126, 41,139,120,
|
/* 0x1290 */ 125, 64, 89,214,127,133, 80, 64, 64,156, 0, 32, 32, 11, 8, 0,
|
||||||
/* 0x12a0 */ 124, 11, 2, 20,176, 7, 1,176, 72, 0, 0,140,125, 10, 64, 80,
|
/* 0x12a0 */ 125, 72, 83,120,124, 0, 46,112,126, 41,139,120,124, 11, 2, 20,
|
||||||
/* 0x12b0 */ 85, 96,217,126,127,136,176, 64,124, 0, 88, 80,124,170, 40, 80,
|
/* 0x12b0 */ 176, 7, 1,176, 72, 0, 0,140,125, 10, 64, 80, 85, 96,217,126,
|
||||||
/* 0x12c0 */ 176, 7, 1,176, 65,157, 0, 32,127,140,224, 0, 65,158, 4,104,
|
/* 0x12c0 */ 127,136,176, 64,124, 0, 88, 80,124,170, 40, 80,176, 7, 1,176,
|
||||||
/* 0x12d0 */ 137, 44, 0, 0, 84,160, 64, 46, 85, 8, 64, 46, 57,140, 0, 1,
|
/* 0x12d0 */ 65,157, 0, 32,127,140,224, 0, 65,158, 4,104,137, 44, 0, 0,
|
||||||
/* 0x12e0 */ 124, 5, 75,120,161,103, 1,200, 85, 0,170,254,125, 64, 89,214,
|
/* 0x12e0 */ 84,160, 64, 46, 85, 8, 64, 46, 57,140, 0, 1,124, 5, 75,120,
|
||||||
/* 0x12f0 */ 127,133, 80, 64, 64,156, 0, 32, 32, 11, 8, 0,125, 72, 83,120,
|
/* 0x12f0 */ 161,103, 1,200, 85, 0,170,254,125, 64, 89,214,127,133, 80, 64,
|
||||||
/* 0x1300 */ 124, 0, 46,112,126, 9,131,120,124, 11, 2, 20,176, 7, 1,200,
|
/* 0x1300 */ 64,156, 0, 32, 32, 11, 8, 0,125, 72, 83,120,124, 0, 46,112,
|
||||||
/* 0x1310 */ 72, 0, 0, 32, 85, 96,217,126,125,233,123,120,124, 0, 88, 80,
|
/* 0x1310 */ 126, 9,131,120,124, 11, 2, 20,176, 7, 1,200, 72, 0, 0, 32,
|
||||||
/* 0x1320 */ 124,170, 40, 80,176, 7, 1,200,125, 10, 64, 80,126, 15,131,120,
|
/* 0x1320 */ 85, 96,217,126,125,233,123,120,124, 0, 88, 80,124,170, 40, 80,
|
||||||
/* 0x1330 */ 126, 48,139,120,127, 81,211,120,125, 58, 75,120, 47,151, 0, 6,
|
/* 0x1330 */ 176, 7, 1,200,125, 10, 64, 80,126, 15,131,120,126, 48,139,120,
|
||||||
/* 0x1340 */ 56, 0, 0, 8, 64,157, 0, 8, 56, 0, 0, 11,124, 23, 3,120,
|
/* 0x1340 */ 127, 81,211,120,125, 58, 75,120, 47,151, 0, 6, 56, 0, 0, 8,
|
||||||
/* 0x1350 */ 56,216, 10,104,127,136,176, 64, 65,157, 0, 32,127,140,224, 0,
|
/* 0x1350 */ 64,157, 0, 8, 56, 0, 0, 11,124, 23, 3,120, 56,216, 10,104,
|
||||||
/* 0x1360 */ 65,158, 3,212,137, 44, 0, 0, 84,160, 64, 46, 85, 8, 64, 46,
|
/* 0x1360 */ 127,136,176, 64, 65,157, 0, 32,127,140,224, 0, 65,158, 3,212,
|
||||||
/* 0x1370 */ 57,140, 0, 1,124, 5, 75,120,161,102, 0, 0, 85, 0,170,254,
|
/* 0x1370 */ 137, 44, 0, 0, 84,160, 64, 46, 85, 8, 64, 46, 57,140, 0, 1,
|
||||||
/* 0x1380 */ 125, 64, 89,214,127,133, 80, 64, 64,156, 0, 48, 84,105, 32, 54,
|
/* 0x1380 */ 124, 5, 75,120,161,102, 0, 0, 85, 0,170,254,125, 64, 89,214,
|
||||||
/* 0x1390 */ 32, 11, 8, 0,125, 38, 74, 20,124, 0, 46,112,124, 11, 2, 20,
|
/* 0x1390 */ 127,133, 80, 64, 64,156, 0, 48, 84,105, 32, 54, 32, 11, 8, 0,
|
||||||
/* 0x13a0 */ 125, 72, 83,120, 56,137, 0, 4, 59, 96, 0, 0,176, 6, 0, 0,
|
/* 0x13a0 */ 125, 38, 74, 20,124, 0, 46,112,124, 11, 2, 20,125, 72, 83,120,
|
||||||
/* 0x13b0 */ 56, 96, 0, 3, 72, 0, 0,156,125, 10, 64, 80, 85, 96,217,126,
|
/* 0x13b0 */ 56,137, 0, 4, 59, 96, 0, 0,176, 6, 0, 0, 56, 96, 0, 3,
|
||||||
/* 0x13c0 */ 127,136,176, 64,124, 0, 88, 80,124,170, 40, 80,176, 6, 0, 0,
|
/* 0x13c0 */ 72, 0, 0,156,125, 10, 64, 80, 85, 96,217,126,127,136,176, 64,
|
||||||
/* 0x13d0 */ 65,157, 0, 32,127,140,224, 0, 65,158, 3, 92,137, 44, 0, 0,
|
/* 0x13d0 */ 124, 0, 88, 80,124,170, 40, 80,176, 6, 0, 0, 65,157, 0, 32,
|
||||||
/* 0x13e0 */ 84,160, 64, 46, 85, 8, 64, 46, 57,140, 0, 1,124, 5, 75,120,
|
/* 0x13e0 */ 127,140,224, 0, 65,158, 3, 92,137, 44, 0, 0, 84,160, 64, 46,
|
||||||
/* 0x13f0 */ 161,102, 0, 2, 85, 0,170,254,125, 64, 89,214,127,133, 80, 64,
|
/* 0x13f0 */ 85, 8, 64, 46, 57,140, 0, 1,124, 5, 75,120,161,102, 0, 2,
|
||||||
/* 0x1400 */ 64,156, 0, 48, 84,105, 32, 54, 32, 11, 8, 0,125, 38, 74, 20,
|
/* 0x1400 */ 85, 0,170,254,125, 64, 89,214,127,133, 80, 64, 64,156, 0, 48,
|
||||||
/* 0x1410 */ 124, 0, 46,112,124, 11, 2, 20,125, 72, 83,120, 56,137, 1, 4,
|
/* 0x1410 */ 84,105, 32, 54, 32, 11, 8, 0,125, 38, 74, 20,124, 0, 46,112,
|
||||||
/* 0x1420 */ 59, 96, 0, 8,176, 6, 0, 2, 56, 96, 0, 3, 72, 0, 0, 36,
|
/* 0x1420 */ 124, 11, 2, 20,125, 72, 83,120, 56,137, 1, 4, 59, 96, 0, 8,
|
||||||
/* 0x1430 */ 85, 96,217,126,124,170, 40, 80,124, 0, 88, 80,125, 10, 64, 80,
|
/* 0x1430 */ 176, 6, 0, 2, 56, 96, 0, 3, 72, 0, 0, 36, 85, 96,217,126,
|
||||||
/* 0x1440 */ 176, 6, 0, 2, 56,134, 2, 4, 59, 96, 0, 16, 56, 96, 0, 8,
|
/* 0x1440 */ 124,170, 40, 80,124, 0, 88, 80,125, 10, 64, 80,176, 6, 0, 2,
|
||||||
/* 0x1450 */ 63,224, 0,255,124,105, 3,166, 59,160, 0, 1, 99,255,255,255,
|
/* 0x1450 */ 56,134, 2, 4, 59, 96, 0, 16, 56, 96, 0, 8, 63,224, 0,255,
|
||||||
/* 0x1460 */ 127,136,248, 64, 87,167, 8, 60,127, 12,224, 0, 84,169, 64, 46,
|
/* 0x1460 */ 124,105, 3,166, 59,160, 0, 1, 99,255,255,255,127,136,248, 64,
|
||||||
/* 0x1470 */ 124,253, 59,120, 65,157, 0, 24, 65,154, 2,188,136, 12, 0, 0,
|
/* 0x1470 */ 87,167, 8, 60,127, 12,224, 0, 84,169, 64, 46,124,253, 59,120,
|
||||||
/* 0x1480 */ 85, 8, 64, 46, 57,140, 0, 1,125, 37, 3,120,125,100, 58, 46,
|
/* 0x1480 */ 65,157, 0, 24, 65,154, 2,188,136, 12, 0, 0, 85, 8, 64, 46,
|
||||||
/* 0x1490 */ 85, 0,170,254,125, 64, 89,214, 32, 11, 8, 0, 85,105,217,126,
|
/* 0x1490 */ 57,140, 0, 1,125, 37, 3,120,125,100, 58, 46, 85, 0,170,254,
|
||||||
/* 0x14a0 */ 124, 0, 46,112,124, 11, 2, 20,125,105, 88, 80,127,133, 80, 64,
|
/* 0x14a0 */ 125, 64, 89,214, 32, 11, 8, 0, 85,105,217,126,124, 0, 46,112,
|
||||||
/* 0x14b0 */ 125, 10, 64, 80, 64,156, 0, 16,125, 72, 83,120,124, 4, 59, 46,
|
/* 0x14b0 */ 124, 11, 2, 20,125,105, 88, 80,127,133, 80, 64,125, 10, 64, 80,
|
||||||
/* 0x14c0 */ 72, 0, 0, 16,124,170, 40, 80, 59,167, 0, 1,125,100, 59, 46,
|
/* 0x14c0 */ 64,156, 0, 16,125, 72, 83,120,124, 4, 59, 46, 72, 0, 0, 16,
|
||||||
/* 0x14d0 */ 66, 0,255,144, 47,151, 0, 3, 56, 0, 0, 1,124, 0, 24, 48,
|
/* 0x14d0 */ 124,170, 40, 80, 59,167, 0, 1,125,100, 59, 46, 66, 0,255,144,
|
||||||
/* 0x14e0 */ 127,160,232, 80,127,189,218, 20, 65,157, 1,232, 47,157, 0, 3,
|
/* 0x14e0 */ 47,151, 0, 3, 56, 0, 0, 1,124, 0, 24, 48,127,160,232, 80,
|
||||||
/* 0x14f0 */ 58,247, 0, 7,127,169,235,120, 64,157, 0, 8, 57, 32, 0, 3,
|
/* 0x14f0 */ 127,189,218, 20, 65,157, 1,232, 47,157, 0, 3, 58,247, 0, 7,
|
||||||
/* 0x1500 */ 85, 41, 56, 48, 63,224, 0,255,125, 56, 74, 20, 99,255,255,255,
|
/* 0x1500 */ 127,169,235,120, 64,157, 0, 8, 57, 32, 0, 3, 85, 41, 56, 48,
|
||||||
/* 0x1510 */ 56,201, 3, 96, 57, 32, 0, 6,125, 41, 3,166, 56,128, 0, 1,
|
/* 0x1510 */ 63,224, 0,255,125, 56, 74, 20, 99,255,255,255, 56,201, 3, 96,
|
||||||
/* 0x1520 */ 127,136,248, 64, 84,135, 8, 60,127, 12,224, 0, 84,169, 64, 46,
|
/* 0x1520 */ 57, 32, 0, 6,125, 41, 3,166, 56,128, 0, 1,127,136,248, 64,
|
||||||
/* 0x1530 */ 124,228, 59,120, 65,157, 0, 24, 65,154, 1,252,136, 12, 0, 0,
|
/* 0x1530 */ 84,135, 8, 60,127, 12,224, 0, 84,169, 64, 46,124,228, 59,120,
|
||||||
/* 0x1540 */ 85, 8, 64, 46, 57,140, 0, 1,125, 37, 3,120,125,102, 58, 46,
|
/* 0x1540 */ 65,157, 0, 24, 65,154, 1,252,136, 12, 0, 0, 85, 8, 64, 46,
|
||||||
/* 0x1550 */ 85, 0,170,254,125, 64, 89,214, 32, 11, 8, 0, 85,105,217,126,
|
/* 0x1550 */ 57,140, 0, 1,125, 37, 3,120,125,102, 58, 46, 85, 0,170,254,
|
||||||
/* 0x1560 */ 124, 0, 46,112,124, 11, 2, 20,125,105, 88, 80,127,133, 80, 64,
|
/* 0x1560 */ 125, 64, 89,214, 32, 11, 8, 0, 85,105,217,126,124, 0, 46,112,
|
||||||
/* 0x1570 */ 125, 10, 64, 80, 64,156, 0, 16,125, 72, 83,120,124, 6, 59, 46,
|
/* 0x1570 */ 124, 11, 2, 20,125,105, 88, 80,127,133, 80, 64,125, 10, 64, 80,
|
||||||
/* 0x1580 */ 72, 0, 0, 16,124,170, 40, 80, 56,135, 0, 1,125,102, 59, 46,
|
/* 0x1580 */ 64,156, 0, 16,125, 72, 83,120,124, 6, 59, 46, 72, 0, 0, 16,
|
||||||
/* 0x1590 */ 66, 0,255,144, 56,132,255,192, 47,132, 0, 3,124,154, 35,120,
|
/* 0x1590 */ 124,170, 40, 80, 56,135, 0, 1,125,102, 59, 46, 66, 0,255,144,
|
||||||
/* 0x15a0 */ 64,157, 1, 40, 47,132, 0, 13,124,137, 14,112, 84,128, 7,254,
|
/* 0x15a0 */ 56,132,255,192, 47,132, 0, 3,124,154, 35,120, 64,157, 1, 40,
|
||||||
/* 0x15b0 */ 57,105,255,255, 96, 26, 0, 2,125,105, 3,166, 65,157, 0, 32,
|
/* 0x15b0 */ 47,132, 0, 13,124,137, 14,112, 84,128, 7,254, 57,105,255,255,
|
||||||
/* 0x15c0 */ 127, 90, 88, 48, 84,128, 8, 60, 87, 73, 8, 60,125, 56, 74, 20,
|
/* 0x15c0 */ 96, 26, 0, 2,125,105, 3,166, 65,157, 0, 32,127, 90, 88, 48,
|
||||||
/* 0x15d0 */ 125, 32, 72, 80, 56,201, 5, 94, 72, 0, 0,100, 57, 41,255,251,
|
/* 0x15d0 */ 84,128, 8, 60, 87, 73, 8, 60,125, 56, 74, 20,125, 32, 72, 80,
|
||||||
/* 0x15e0 */ 61, 96, 0,255,125, 41, 3,166, 97,107,255,255,127,136, 88, 64,
|
/* 0x15e0 */ 56,201, 5, 94, 72, 0, 0,100, 57, 41,255,251, 61, 96, 0,255,
|
||||||
/* 0x15f0 */ 127, 12,224, 0, 84,169, 64, 46, 87, 90, 8, 60, 65,157, 0, 24,
|
/* 0x15f0 */ 125, 41, 3,166, 97,107,255,255,127,136, 88, 64,127, 12,224, 0,
|
||||||
/* 0x1600 */ 65,154, 1, 52,136, 12, 0, 0, 85, 8, 64, 46, 57,140, 0, 1,
|
/* 0x1600 */ 84,169, 64, 46, 87, 90, 8, 60, 65,157, 0, 24, 65,154, 1, 52,
|
||||||
/* 0x1610 */ 125, 37, 3,120, 85, 8,248,126,127,133, 64, 64, 65,156, 0, 12,
|
/* 0x1610 */ 136, 12, 0, 0, 85, 8, 64, 46, 57,140, 0, 1,125, 37, 3,120,
|
||||||
/* 0x1620 */ 124,168, 40, 80, 99, 90, 0, 1, 66, 0,255,196, 56, 0, 0, 4,
|
/* 0x1620 */ 85, 8,248,126,127,133, 64, 64, 65,156, 0, 12,124,168, 40, 80,
|
||||||
/* 0x1630 */ 87, 90, 32, 54,124, 9, 3,166, 56,216, 6, 68, 60, 96, 0,255,
|
/* 0x1630 */ 99, 90, 0, 1, 66, 0,255,196, 56, 0, 0, 4, 87, 90, 32, 54,
|
||||||
/* 0x1640 */ 56,128, 0, 1, 96, 99,255,255, 59,224, 0, 1,127,136, 24, 64,
|
/* 0x1640 */ 124, 9, 3,166, 56,216, 6, 68, 60, 96, 0,255, 56,128, 0, 1,
|
||||||
/* 0x1650 */ 87,231, 8, 60,127, 12,224, 0, 84,169, 64, 46,124,255, 59,120,
|
/* 0x1650 */ 96, 99,255,255, 59,224, 0, 1,127,136, 24, 64, 87,231, 8, 60,
|
||||||
/* 0x1660 */ 65,157, 0, 24, 65,154, 0,208,136, 12, 0, 0, 85, 8, 64, 46,
|
/* 0x1660 */ 127, 12,224, 0, 84,169, 64, 46,124,255, 59,120, 65,157, 0, 24,
|
||||||
/* 0x1670 */ 57,140, 0, 1,125, 37, 3,120,125,102, 58, 46, 85, 0,170,254,
|
/* 0x1670 */ 65,154, 0,208,136, 12, 0, 0, 85, 8, 64, 46, 57,140, 0, 1,
|
||||||
/* 0x1680 */ 125, 64, 89,214, 32, 11, 8, 0, 85,105,217,126,124, 0, 46,112,
|
/* 0x1680 */ 125, 37, 3,120,125,102, 58, 46, 85, 0,170,254,125, 64, 89,214,
|
||||||
/* 0x1690 */ 124, 11, 2, 20,125,105, 88, 80,127,133, 80, 64,125, 10, 64, 80,
|
/* 0x1690 */ 32, 11, 8, 0, 85,105,217,126,124, 0, 46,112,124, 11, 2, 20,
|
||||||
/* 0x16a0 */ 64,156, 0, 16,125, 72, 83,120,124, 6, 59, 46, 72, 0, 0, 20,
|
/* 0x16a0 */ 125,105, 88, 80,127,133, 80, 64,125, 10, 64, 80, 64,156, 0, 16,
|
||||||
/* 0x16b0 */ 124,170, 40, 80, 59,231, 0, 1,125,102, 59, 46,127, 90, 35,120,
|
/* 0x16b0 */ 125, 72, 83,120,124, 6, 59, 46, 72, 0, 0, 20,124,170, 40, 80,
|
||||||
/* 0x16c0 */ 84,132, 8, 60, 66, 0,255,136, 55, 90, 0, 1, 65,130, 0, 72,
|
/* 0x16c0 */ 59,231, 0, 1,125,102, 59, 46,127, 90, 35,120, 84,132, 8, 60,
|
||||||
/* 0x16d0 */ 127,154,200, 64, 59,189, 0, 2, 65,157, 0, 92,124, 26,200, 80,
|
/* 0x16d0 */ 66, 0,255,136, 55, 90, 0, 1, 65,130, 0, 72,127,154,200, 64,
|
||||||
/* 0x16e0 */ 59,189,255,255,127,245, 0,174, 49,125,255,255,125, 43,233, 16,
|
/* 0x16e0 */ 59,189, 0, 2, 65,157, 0, 92,124, 26,200, 80, 59,189,255,255,
|
||||||
/* 0x16f0 */ 127,249,169,174, 59, 57, 0, 1,124, 20,200, 16,124, 0, 1, 16,
|
/* 0x16f0 */ 127,245, 0,174, 49,125,255,255,125, 43,233, 16,127,249,169,174,
|
||||||
/* 0x1700 */ 124, 0, 0,208,125, 43, 0, 57, 64,130,255,212,127,153,160, 64,
|
/* 0x1700 */ 59, 57, 0, 1,124, 20,200, 16,124, 0, 1, 16,124, 0, 0,208,
|
||||||
/* 0x1710 */ 65,156,247,172, 60, 0, 0,255, 96, 0,255,255,127,136, 0, 64,
|
/* 0x1710 */ 125, 43, 0, 57, 64,130,255,212,127,153,160, 64, 65,156,247,172,
|
||||||
/* 0x1720 */ 65,157, 0, 32,127,140,224, 0, 56, 96, 0, 1, 65,158, 0, 40,
|
/* 0x1720 */ 60, 0, 0,255, 96, 0,255,255,127,136, 0, 64, 65,157, 0, 32,
|
||||||
/* 0x1730 */ 72, 0, 0, 12, 56, 96, 0, 1, 72, 0, 0, 28, 57,140, 0, 1,
|
/* 0x1730 */ 127,140,224, 0, 56, 96, 0, 1, 65,158, 0, 40, 72, 0, 0, 12,
|
||||||
/* 0x1740 */ 125, 40, 2,166,124, 19, 96, 80, 56, 96, 0, 0,144, 14, 0, 0,
|
/* 0x1740 */ 56, 96, 0, 1, 72, 0, 0, 28, 57,140, 0, 1,125, 40, 2,166,
|
||||||
/* 0x1750 */ 147, 41, 0, 0,128, 1, 0,100,185,193, 0, 24, 56, 33, 0, 96,
|
/* 0x1750 */ 124, 19, 96, 80, 56, 96, 0, 0,144, 14, 0, 0,147, 41, 0, 0,
|
||||||
/* 0x1760 */ 124, 8, 3,166,128,161, 0, 12,128,225, 0, 8,128,165, 0, 0,
|
/* 0x1760 */ 128, 1, 0,100,185,193, 0, 24, 56, 33, 0, 96,124, 8, 3,166,
|
||||||
/* 0x1770 */ 128, 33, 0, 0,124,165, 58, 20,128, 1, 0, 8, 56,165,255,255,
|
/* 0x1770 */ 128,161, 0, 12,128,225, 0, 8,128,165, 0, 0,128, 33, 0, 0,
|
||||||
/* 0x1780 */ 128, 33, 0, 0,124, 8, 3,166,128,230, 0, 0,125,168, 3,166,
|
/* 0x1780 */ 124,165, 58, 20,128, 1, 0, 8, 56,165,255,255,128, 33, 0, 0,
|
||||||
/* 0x1790 */ 124,100, 24, 80,124,135, 40, 80, 56, 99, 0, 1, 56,132, 0, 1,
|
/* 0x1790 */ 124, 8, 3,166,128,230, 0, 0,125,168, 3,166,124,100, 24, 80,
|
||||||
/* 0x17a0 */ 144,134, 0, 0, 96,231, 0, 31,124, 0, 56,108,124, 7, 40, 64,
|
/* 0x17a0 */ 124,135, 40, 80, 56, 99, 0, 1, 56,132, 0, 1,144,134, 0, 0,
|
||||||
/* 0x17b0 */ 124, 0, 63,172, 56,231, 0, 32, 65,128,255,240,124, 0, 4,172,
|
/* 0x17b0 */ 96,231, 0, 31,124, 0, 56,108,124, 7, 40, 64,124, 0, 63,172,
|
||||||
/* 0x17c0 */ 76, 0, 1, 44, 78,128, 0, 32, 72, 0, 0, 1,109,109, 97,112,
|
/* 0x17c0 */ 56,231, 0, 32, 65,128,255,240,124, 0, 4,172, 76, 0, 1, 44,
|
||||||
/* 0x17d0 */ 32,102, 97,105,108,101,100, 46, 10, 0, 56,160, 0, 14,124,136,
|
/* 0x17d0 */ 78,128, 0, 32, 72, 0, 0, 1,109,109, 97,112, 32,102, 97,105,
|
||||||
/* 0x17e0 */ 2,166, 56, 96, 0, 2, 56, 0, 0, 4, 68, 0, 0, 2, 56, 96,
|
/* 0x17e0 */ 108,101,100, 46, 10, 0, 56,160, 0, 14,124,136, 2,166, 56, 96,
|
||||||
/* 0x17f0 */ 0,127, 56, 0, 0, 1, 68, 0, 0, 2,126,200, 2,166,128, 31,
|
/* 0x17f0 */ 0, 2, 56, 0, 0, 4, 68, 0, 0, 2, 56, 96, 0,127, 56, 0,
|
||||||
/* 0x1800 */ 255,248, 59, 63,255,248, 56,224,255,255,130,182, 0, 4, 56,192,
|
/* 0x1800 */ 0, 1, 68, 0, 0, 2,126,200, 2,166,128, 31,255,248, 59, 63,
|
||||||
/* 0x1810 */ 0, 34,127, 32,200, 80, 56, 96, 0, 0,126,164,171,120,124,156,
|
/* 0x1810 */ 255,248, 56,224,255,255,130,182, 0, 4, 56,192, 0, 34,127, 32,
|
||||||
/* 0x1820 */ 35,120, 72, 0, 0,101,124,125, 27,120,130,118, 0, 0,127,233,
|
/* 0x1820 */ 200, 80, 56, 96, 0, 0,126,164,171,120,124,156, 35,120, 72, 0,
|
||||||
/* 0x1830 */ 3,166,136,246, 0, 12,146,161, 0,140, 56,193, 0,140,127,165,
|
/* 0x1830 */ 0, 89,124,125, 27,120,130,118, 0, 0,127,233, 3,166,136,246,
|
||||||
/* 0x1840 */ 235,120,128,150, 0, 8, 56,118, 0, 16, 78,128, 4, 33,128, 29,
|
/* 0x1840 */ 0, 12,146,161, 0,140, 56,193, 0,140,127,165,235,120,128,150,
|
||||||
/* 0x1850 */ 0, 0, 87,195,186,126, 80, 96, 4, 62,144, 29, 0, 0, 56,160,
|
/* 0x1850 */ 0, 8, 56,118, 0, 16, 78,128, 4, 33,147,221, 0, 0, 56,160,
|
||||||
/* 0x1860 */ 0, 5,127,132,227,120,127,163,235,120, 56, 0, 0,125, 68, 0,
|
/* 0x1860 */ 0, 5,127,132,227,120,127,163,235,120, 56, 0, 0,125, 68, 0,
|
||||||
/* 0x1870 */ 0, 2, 56, 29, 0, 16,130,255,255,248,124, 9, 3,166,127, 25,
|
/* 0x1870 */ 0, 2, 56, 29, 0, 32,130,255,255,248,124, 9, 3,166,127, 25,
|
||||||
/* 0x1880 */ 154, 20, 78,128, 4, 32, 57, 0, 0, 0, 56,160, 0, 3, 56, 0,
|
/* 0x1880 */ 154, 20, 78,128, 4, 32, 57, 0, 0, 0, 56,160, 0, 3, 56, 0,
|
||||||
/* 0x1890 */ 0, 90, 68, 0, 0, 2, 64,131, 0, 8,124,128, 0, 8, 78,128,
|
/* 0x1890 */ 0, 90, 68, 0, 0, 2, 64,131, 0, 8,124,128, 0, 8, 78,128,
|
||||||
/* 0x18a0 */ 0, 32,128, 3, 0, 0, 56, 99, 0, 4, 47,128, 0, 0, 64,158,
|
/* 0x18a0 */ 0, 32,128, 3, 0, 0, 56, 99, 0, 4, 47,128, 0, 0, 64,158,
|
||||||
@@ -436,7 +436,7 @@ unsigned char stub_powerpc_linux_elf_entry[8467] = {
|
|||||||
/* 0x18c0 */ 2,166, 56, 97, 0,144, 75,255,255,221, 75,255,255,217,124,122,
|
/* 0x18c0 */ 2,166, 56, 97, 0,144, 75,255,255,221, 75,255,255,217,124,122,
|
||||||
/* 0x18d0 */ 27,120,128, 3, 0, 0,128,131, 0, 4, 56, 99, 0, 8, 47,128,
|
/* 0x18d0 */ 27,120,128, 3, 0, 0,128,131, 0, 4, 56, 99, 0, 8, 47,128,
|
||||||
/* 0x18e0 */ 0, 6, 65,158, 0, 16, 44, 0, 0, 0, 64,130,255,232, 56,128,
|
/* 0x18e0 */ 0, 6, 65,158, 0, 16, 44, 0, 0, 0, 64,130,255,232, 56,128,
|
||||||
/* 0x18f0 */ 16, 0,127,196, 0,208, 75,255,255, 5, 0, 0, 0, 0,102,105,
|
/* 0x18f0 */ 16, 0,127,196, 0,208, 75,255,255, 17, 0, 0, 0, 0,102,105,
|
||||||
/* 0x1900 */ 108,101, 32,102,111,114,109, 97,116, 32,101,108,102, 51, 50, 45,
|
/* 0x1900 */ 108,101, 32,102,111,114,109, 97,116, 32,101,108,102, 51, 50, 45,
|
||||||
/* 0x1910 */ 112,111,119,101,114,112, 99, 10, 10, 83,101, 99,116,105,111,110,
|
/* 0x1910 */ 112,111,119,101,114,112, 99, 10, 10, 83,101, 99,116,105,111,110,
|
||||||
/* 0x1920 */ 115, 58, 10, 73,100,120, 32, 78, 97,109,101, 32, 32, 32, 32, 32,
|
/* 0x1920 */ 115, 58, 10, 73,100,120, 32, 78, 97,109,101, 32, 32, 32, 32, 32,
|
||||||
@@ -450,40 +450,40 @@ unsigned char stub_powerpc_linux_elf_entry[8467] = {
|
|||||||
/* 0x19a0 */ 95, 72, 69, 65, 68, 32, 32, 32, 32, 32, 32, 48, 32, 32, 48, 32,
|
/* 0x19a0 */ 95, 72, 69, 65, 68, 32, 32, 32, 32, 32, 32, 48, 32, 32, 48, 32,
|
||||||
/* 0x19b0 */ 32, 48, 32, 32, 48, 51, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67,
|
/* 0x19b0 */ 32, 48, 32, 32, 48, 51, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67,
|
||||||
/* 0x19c0 */ 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 50, 32, 78, 82, 86, 50,
|
/* 0x19c0 */ 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 50, 32, 78, 82, 86, 50,
|
||||||
/* 0x19d0 */ 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 49, 52, 56, 32, 32,
|
/* 0x19d0 */ 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 49, 52, 99, 32, 32,
|
||||||
/* 0x19e0 */ 48, 32, 32, 48, 32, 32, 48, 51, 56, 32, 32, 50, 42, 42, 48, 32,
|
/* 0x19e0 */ 48, 32, 32, 48, 32, 32, 48, 51, 56, 32, 32, 50, 42, 42, 48, 32,
|
||||||
/* 0x19f0 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 51, 32, 78, 82,
|
/* 0x19f0 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 51, 32, 78, 82,
|
||||||
/* 0x1a00 */ 86, 50, 68, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 49, 50, 99,
|
/* 0x1a00 */ 86, 50, 68, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 49, 51, 48,
|
||||||
/* 0x1a10 */ 32, 32, 48, 32, 32, 48, 32, 32, 48, 49, 56, 48, 32, 32, 50, 42,
|
/* 0x1a10 */ 32, 32, 48, 32, 32, 48, 32, 32, 48, 49, 56, 52, 32, 32, 50, 42,
|
||||||
/* 0x1a20 */ 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 52,
|
/* 0x1a20 */ 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 52,
|
||||||
/* 0x1a30 */ 32, 78, 82, 86, 50, 66, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48,
|
/* 0x1a30 */ 32, 78, 82, 86, 50, 66, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48,
|
||||||
/* 0x1a40 */ 102, 48, 32, 32, 48, 32, 32, 48, 32, 32, 48, 50, 97, 99, 32, 32,
|
/* 0x1a40 */ 102, 52, 32, 32, 48, 32, 32, 48, 32, 32, 48, 50, 98, 52, 32, 32,
|
||||||
/* 0x1a50 */ 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32,
|
/* 0x1a50 */ 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32,
|
||||||
/* 0x1a60 */ 32, 53, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 32, 32, 32,
|
/* 0x1a60 */ 32, 53, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 32, 32, 32,
|
||||||
/* 0x1a70 */ 32, 48, 57, 48, 32, 32, 48, 32, 32, 48, 32, 32, 48, 51, 57, 99,
|
/* 0x1a70 */ 32, 48, 57, 48, 32, 32, 48, 32, 32, 48, 32, 32, 48, 51, 97, 56,
|
||||||
/* 0x1a80 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83,
|
/* 0x1a80 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83,
|
||||||
/* 0x1a90 */ 10, 32, 32, 54, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 32,
|
/* 0x1a90 */ 10, 32, 32, 54, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 32,
|
||||||
/* 0x1aa0 */ 32, 32, 32, 48, 57, 57, 99, 32, 32, 48, 32, 32, 48, 32, 32, 48,
|
/* 0x1aa0 */ 32, 32, 32, 48, 57, 57, 99, 32, 32, 48, 32, 32, 48, 32, 32, 48,
|
||||||
/* 0x1ab0 */ 52, 50, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69,
|
/* 0x1ab0 */ 52, 51, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69,
|
||||||
/* 0x1ac0 */ 78, 84, 83, 10, 32, 32, 55, 32, 76, 90, 77, 65, 95, 68, 69, 67,
|
/* 0x1ac0 */ 78, 84, 83, 10, 32, 32, 55, 32, 76, 90, 77, 65, 95, 68, 69, 67,
|
||||||
/* 0x1ad0 */ 50, 48, 32, 32, 32, 32, 48, 57, 57, 99, 32, 32, 48, 32, 32, 48,
|
/* 0x1ad0 */ 50, 48, 32, 32, 32, 32, 48, 57, 57, 99, 32, 32, 48, 32, 32, 48,
|
||||||
/* 0x1ae0 */ 32, 32, 48,100, 99, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79,
|
/* 0x1ae0 */ 32, 32, 48,100,100, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79,
|
||||||
/* 0x1af0 */ 78, 84, 69, 78, 84, 83, 10, 32, 32, 56, 32, 76, 90, 77, 65, 95,
|
/* 0x1af0 */ 78, 84, 69, 78, 84, 83, 10, 32, 32, 56, 32, 76, 90, 77, 65, 95,
|
||||||
/* 0x1b00 */ 68, 69, 67, 51, 48, 32, 32, 32, 32, 48, 50, 52, 32, 32, 48, 32,
|
/* 0x1b00 */ 68, 69, 67, 51, 48, 32, 32, 32, 32, 48, 50, 52, 32, 32, 48, 32,
|
||||||
/* 0x1b10 */ 32, 48, 32, 32, 48, 49, 55, 54, 52, 32, 32, 50, 42, 42, 48, 32,
|
/* 0x1b10 */ 32, 48, 32, 32, 48, 49, 55, 55, 48, 32, 32, 50, 42, 42, 48, 32,
|
||||||
/* 0x1b20 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 57, 32, 78, 82,
|
/* 0x1b20 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 57, 32, 78, 82,
|
||||||
/* 0x1b30 */ 86, 95, 84, 65, 73, 76, 32, 32, 32, 32, 32, 32, 48, 49, 99, 32,
|
/* 0x1b30 */ 86, 95, 84, 65, 73, 76, 32, 32, 32, 32, 32, 32, 48, 49, 99, 32,
|
||||||
/* 0x1b40 */ 32, 48, 32, 32, 48, 32, 32, 48, 49, 55, 56, 56, 32, 32, 50, 42,
|
/* 0x1b40 */ 32, 48, 32, 32, 48, 32, 32, 48, 49, 55, 57, 52, 32, 32, 50, 42,
|
||||||
/* 0x1b50 */ 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 49, 48,
|
/* 0x1b50 */ 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 49, 48,
|
||||||
/* 0x1b60 */ 32, 67, 70, 76, 85, 83, 72, 32, 32, 32, 32, 32, 32, 32, 32, 48,
|
/* 0x1b60 */ 32, 67, 70, 76, 85, 83, 72, 32, 32, 32, 32, 32, 32, 32, 32, 48,
|
||||||
/* 0x1b70 */ 50, 52, 32, 32, 48, 32, 32, 48, 32, 32, 48, 49, 55, 97, 52, 32,
|
/* 0x1b70 */ 50, 52, 32, 32, 48, 32, 32, 48, 32, 32, 48, 49, 55, 98, 48, 32,
|
||||||
/* 0x1b80 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10,
|
/* 0x1b80 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10,
|
||||||
/* 0x1b90 */ 32, 49, 49, 32, 69, 76, 70, 77, 65, 73, 78, 89, 32, 32, 32, 32,
|
/* 0x1b90 */ 32, 49, 49, 32, 69, 76, 70, 77, 65, 73, 78, 89, 32, 32, 32, 32,
|
||||||
/* 0x1ba0 */ 32, 32, 48, 49, 50, 32, 32, 48, 32, 32, 48, 32, 32, 48, 49, 55,
|
/* 0x1ba0 */ 32, 32, 48, 49, 50, 32, 32, 48, 32, 32, 48, 32, 32, 48, 49, 55,
|
||||||
/* 0x1bb0 */ 99, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78,
|
/* 0x1bb0 */ 100, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78,
|
||||||
/* 0x1bc0 */ 84, 83, 10, 32, 49, 50, 32, 69, 76, 70, 77, 65, 73, 78, 90, 32,
|
/* 0x1bc0 */ 84, 83, 10, 32, 49, 50, 32, 69, 76, 70, 77, 65, 73, 78, 90, 32,
|
||||||
/* 0x1bd0 */ 32, 32, 32, 32, 32, 48, 49, 50, 52, 32, 32, 48, 32, 32, 48, 32,
|
/* 0x1bd0 */ 32, 32, 32, 32, 32, 48, 49, 49, 56, 32, 32, 48, 32, 32, 48, 32,
|
||||||
/* 0x1be0 */ 32, 48, 49, 55,100, 97, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79,
|
/* 0x1be0 */ 32, 48, 49, 55,101, 54, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79,
|
||||||
/* 0x1bf0 */ 78, 84, 69, 78, 84, 83, 10, 83, 89, 77, 66, 79, 76, 32, 84, 65,
|
/* 0x1bf0 */ 78, 84, 69, 78, 84, 83, 10, 83, 89, 77, 66, 79, 76, 32, 84, 65,
|
||||||
/* 0x1c00 */ 66, 76, 69, 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32,
|
/* 0x1c00 */ 66, 76, 69, 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32,
|
||||||
/* 0x1c10 */ 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48,
|
/* 0x1c10 */ 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48,
|
||||||
@@ -526,24 +526,24 @@ unsigned char stub_powerpc_linux_elf_entry[8467] = {
|
|||||||
/* 0x1e60 */ 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48,
|
/* 0x1e60 */ 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48,
|
||||||
/* 0x1e70 */ 48, 32, 82, 95, 80, 80, 67, 95, 82, 69, 76, 50, 52, 32, 32, 32,
|
/* 0x1e70 */ 48, 32, 82, 95, 80, 80, 67, 95, 82, 69, 76, 50, 52, 32, 32, 32,
|
||||||
/* 0x1e80 */ 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 43, 48,120, 48,
|
/* 0x1e80 */ 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 43, 48,120, 48,
|
||||||
/* 0x1e90 */ 48, 48, 48, 48, 48,100, 99, 10, 10, 82, 69, 76, 79, 67, 65, 84,
|
/* 0x1e90 */ 48, 48, 48, 48, 48,100, 48, 10, 10, 82, 69, 76, 79, 67, 65, 84,
|
||||||
/* 0x1ea0 */ 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32,
|
/* 0x1ea0 */ 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32,
|
||||||
/* 0x1eb0 */ 91, 78, 82, 86, 50, 69, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32,
|
/* 0x1eb0 */ 91, 78, 82, 86, 50, 69, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32,
|
||||||
/* 0x1ec0 */ 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
|
/* 0x1ec0 */ 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
|
||||||
/* 0x1ed0 */ 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48,
|
/* 0x1ed0 */ 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48,
|
||||||
/* 0x1ee0 */ 98, 52, 32, 82, 95, 80, 80, 67, 95, 82, 69, 76, 49, 52, 32, 32,
|
/* 0x1ee0 */ 98, 56, 32, 82, 95, 80, 80, 67, 95, 82, 69, 76, 49, 52, 32, 32,
|
||||||
/* 0x1ef0 */ 32, 32, 32, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 10, 82,
|
/* 0x1ef0 */ 32, 32, 32, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 10, 82,
|
||||||
/* 0x1f00 */ 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68,
|
/* 0x1f00 */ 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68,
|
||||||
/* 0x1f10 */ 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 68, 93, 58, 10, 79,
|
/* 0x1f10 */ 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 68, 93, 58, 10, 79,
|
||||||
/* 0x1f20 */ 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32,
|
/* 0x1f20 */ 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32,
|
||||||
/* 0x1f30 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10,
|
/* 0x1f30 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10,
|
||||||
/* 0x1f40 */ 48, 48, 48, 48, 48, 48, 98, 52, 32, 82, 95, 80, 80, 67, 95, 82,
|
/* 0x1f40 */ 48, 48, 48, 48, 48, 48, 98, 56, 32, 82, 95, 80, 80, 67, 95, 82,
|
||||||
/* 0x1f50 */ 69, 76, 49, 52, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 95, 84,
|
/* 0x1f50 */ 69, 76, 49, 52, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 95, 84,
|
||||||
/* 0x1f60 */ 65, 73, 76, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32,
|
/* 0x1f60 */ 65, 73, 76, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32,
|
||||||
/* 0x1f70 */ 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86,
|
/* 0x1f70 */ 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86,
|
||||||
/* 0x1f80 */ 50, 66, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89,
|
/* 0x1f80 */ 50, 66, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89,
|
||||||
/* 0x1f90 */ 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
|
/* 0x1f90 */ 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
|
||||||
/* 0x1fa0 */ 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 57, 48, 32, 82,
|
/* 0x1fa0 */ 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 57, 52, 32, 82,
|
||||||
/* 0x1fb0 */ 95, 80, 80, 67, 95, 82, 69, 76, 49, 52, 32, 32, 32, 32, 32, 32,
|
/* 0x1fb0 */ 95, 80, 80, 67, 95, 82, 69, 76, 49, 52, 32, 32, 32, 32, 32, 32,
|
||||||
/* 0x1fc0 */ 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 10, 82, 69, 76, 79, 67,
|
/* 0x1fc0 */ 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 10, 82, 69, 76, 79, 67,
|
||||||
/* 0x1fd0 */ 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79,
|
/* 0x1fd0 */ 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79,
|
||||||
@@ -564,7 +564,7 @@ unsigned char stub_powerpc_linux_elf_entry[8467] = {
|
|||||||
/* 0x20c0 */ 79, 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 90, 93, 58, 10, 79,
|
/* 0x20c0 */ 79, 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 90, 93, 58, 10, 79,
|
||||||
/* 0x20d0 */ 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32,
|
/* 0x20d0 */ 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32,
|
||||||
/* 0x20e0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10,
|
/* 0x20e0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10,
|
||||||
/* 0x20f0 */ 48, 48, 48, 48, 48, 49, 50, 48, 32, 82, 95, 80, 80, 67, 95, 65,
|
/* 0x20f0 */ 48, 48, 48, 48, 48, 49, 49, 52, 32, 82, 95, 80, 80, 67, 95, 65,
|
||||||
/* 0x2100 */ 68, 68, 82, 51, 50, 32, 32, 32, 32, 32, 32, 79, 95, 66, 73, 78,
|
/* 0x2100 */ 68, 68, 82, 51, 50, 32, 32, 32, 32, 32, 32, 79, 95, 66, 73, 78,
|
||||||
/* 0x2110 */ 70, 79, 10
|
/* 0x2110 */ 70, 79, 10
|
||||||
};
|
};
|
||||||
|
|||||||
Generated
+278
-278
@@ -1,5 +1,5 @@
|
|||||||
/* powerpc-linux.elf-fold.h
|
/* powerpc-linux.elf-fold.h
|
||||||
created from powerpc-linux.elf-fold.bin, 4460 (0x116c) bytes
|
created from powerpc-linux.elf-fold.bin, 4464 (0x1170) bytes
|
||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
@@ -32,288 +32,288 @@
|
|||||||
|
|
||||||
/* clang-format off */
|
/* clang-format off */
|
||||||
|
|
||||||
#define STUB_POWERPC_LINUX_ELF_FOLD_SIZE 4460
|
#define STUB_POWERPC_LINUX_ELF_FOLD_SIZE 4464
|
||||||
#define STUB_POWERPC_LINUX_ELF_FOLD_ADLER32 0x746888bd
|
#define STUB_POWERPC_LINUX_ELF_FOLD_ADLER32 0x82b88b67
|
||||||
#define STUB_POWERPC_LINUX_ELF_FOLD_CRC32 0x75a30434
|
#define STUB_POWERPC_LINUX_ELF_FOLD_CRC32 0x8c75b666
|
||||||
|
|
||||||
unsigned char stub_powerpc_linux_elf_fold[4460] = {
|
unsigned char stub_powerpc_linux_elf_fold[4464] = {
|
||||||
/* 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, 2, 0, 20, 0, 0, 0, 1, 0, 16, 0,128, 0, 0, 0, 52,
|
/* 0x0010 */ 0, 2, 0, 20, 0, 0, 0, 1, 0, 16, 0,128, 0, 0, 0, 52,
|
||||||
/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 32, 0, 2, 0, 0,
|
/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 32, 0, 2, 0, 0,
|
||||||
/* 0x0030 */ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 16, 0, 0,
|
/* 0x0030 */ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 16, 0, 0,
|
||||||
/* 0x0040 */ 0, 16, 0, 0, 0, 0, 17,108, 0, 0, 17,108, 0, 0, 0, 5,
|
/* 0x0040 */ 0, 16, 0, 0, 0, 0, 17,112, 0, 0, 17,112, 0, 0, 0, 5,
|
||||||
/* 0x0050 */ 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 17,108, 0, 0, 0, 0,
|
/* 0x0050 */ 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 17,112, 0, 0, 0, 0,
|
||||||
/* 0x0060 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0060 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0070 */ 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
/* 0x0070 */ 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
/* 0x0080 */ 56, 96,255,248, 84, 99, 72, 44, 78,128, 0, 32, 96, 0, 0, 0,
|
/* 0x0080 */ 255,255,240, 0,125,104, 2,166, 72, 0, 0, 5,124,104, 2,166,
|
||||||
/* 0x0090 */ 72, 0, 0,125, 40, 6, 0,208, 76,130, 0, 32, 84,132,240,191,
|
/* 0x0090 */ 125,104, 3,166,128, 99,255,244, 78,128, 0, 32, 96, 0, 0, 0,
|
||||||
/* 0x00a0 */ 77,130, 0, 32, 60, 0, 0, 16,124, 4, 0, 64, 65,128, 0, 8,
|
/* 0x00a0 */ 72, 0, 0,125, 40, 6, 0,208, 76,130, 0, 32, 84,132,240,191,
|
||||||
/* 0x00b0 */ 124, 4, 3,120, 56,165, 1, 32,124,103, 27,120, 56, 99,255,252,
|
/* 0x00b0 */ 77,130, 0, 32, 60, 0, 0, 16,124, 4, 0, 64, 65,128, 0, 8,
|
||||||
/* 0x00c0 */ 124,137, 3,166, 72, 0, 0, 28, 85, 96, 2,186,124, 3, 0, 80,
|
/* 0x00c0 */ 124, 4, 3,120, 56,165, 1, 32,124,103, 27,120, 56, 99,255,252,
|
||||||
/* 0x00d0 */ 124, 0, 58, 20, 80, 11, 1,186,145, 99, 0, 0, 78, 64, 0, 32,
|
/* 0x00d0 */ 124,137, 3,166, 72, 0, 0, 28, 85, 96, 2,186,124, 3, 0, 80,
|
||||||
/* 0x00e0 */ 133, 99, 0, 4, 85, 96, 85,190,124, 0, 40, 64, 65,162,255,220,
|
/* 0x00e0 */ 124, 0, 58, 20, 80, 11, 1,186,145, 99, 0, 0, 78, 64, 0, 32,
|
||||||
/* 0x00f0 */ 66, 0,255,240, 78,128, 0, 32, 32, 32, 32, 61, 47,112,114,111,
|
/* 0x00f0 */ 133, 99, 0, 4, 85, 96, 85,190,124, 0, 40, 64, 65,162,255,220,
|
||||||
/* 0x0100 */ 99, 47,115,101,108,102, 47,101,120,101, 0, 0,126,200, 2,166,
|
/* 0x0100 */ 66, 0,255,240, 78,128, 0, 32, 32, 32, 32, 61, 47,112,114,111,
|
||||||
/* 0x0110 */ 56,129,255,252, 56, 33,239,252, 56, 97,255,252, 59, 90,255,252,
|
/* 0x0110 */ 99, 47,115,101,108,102, 47,101,120,101, 0, 0,126,200, 2,166,
|
||||||
/* 0x0120 */ 132, 4, 0, 4,127,132,208, 64,148, 3, 0, 4, 65,156,255,244,
|
/* 0x0120 */ 56,129,255,252, 56, 33,239,252, 56, 97,255,252, 59, 90,255,252,
|
||||||
/* 0x0130 */ 59, 67, 0, 8,148, 3, 0, 4,128, 4, 0, 4, 43,128, 0, 0,
|
/* 0x0130 */ 132, 4, 0, 4,127,132,208, 64,148, 3, 0, 4, 65,156,255,244,
|
||||||
/* 0x0140 */ 144, 3, 0, 4,132, 4, 0, 8,148, 3, 0, 8, 64,158,255,236,
|
/* 0x0140 */ 59, 67, 0, 8,148, 3, 0, 4,128, 4, 0, 4, 43,128, 0, 0,
|
||||||
/* 0x0150 */ 58,163, 0, 4,126,154,168, 80,128, 22, 0,100, 58,100, 0, 4,
|
/* 0x0150 */ 144, 3, 0, 4,132, 4, 0, 8,148, 3, 0, 8, 64,158,255,236,
|
||||||
/* 0x0160 */ 148, 3, 0, 4, 58, 67, 0, 4, 56,128, 0, 0, 56,118, 0,104,
|
/* 0x0160 */ 58,163, 0, 4,126,154,168, 80,128, 22, 0,100, 58,100, 0, 4,
|
||||||
/* 0x0170 */ 72, 0, 1,121,124,123, 27,120, 56,160, 15,255,126, 68,147,120,
|
/* 0x0170 */ 148, 3, 0, 4, 58, 67, 0, 4, 56,128, 0, 0, 56,118, 0,104,
|
||||||
/* 0x0180 */ 56,118, 0,104, 72, 0, 1, 77, 56,178,255,252, 44, 3, 0, 0,
|
/* 0x0180 */ 72, 0, 1,125,124,123, 27,120, 56,160, 15,255,126, 68,147,120,
|
||||||
/* 0x0190 */ 65,129, 0, 12, 56,182, 0,100, 56, 96, 0, 16, 56, 99, 0, 4,
|
/* 0x0190 */ 56,118, 0,104, 72, 0, 1, 81, 56,178,255,252, 44, 3, 0, 0,
|
||||||
/* 0x01a0 */ 124,133, 26, 20,124,105, 3,166,126, 99,155,120, 56,160, 0, 0,
|
/* 0x01a0 */ 65,129, 0, 12, 56,182, 0,100, 56, 96, 0, 16, 56, 99, 0, 4,
|
||||||
/* 0x01b0 */ 156,163,255,255,140, 4,255,255,156, 3,255,255, 66, 0,255,248,
|
/* 0x01b0 */ 124,133, 26, 20,124,105, 3,166,126, 99,155,120, 56,160, 0, 0,
|
||||||
/* 0x01c0 */ 144,122,255,248, 84, 99, 0, 58,124, 32, 34,120,124, 0, 26,120,
|
/* 0x01c0 */ 156,163,255,255,140, 4,255,255,156, 3,255,255, 66, 0,255,248,
|
||||||
/* 0x01d0 */ 84, 0, 7,126,124, 96, 24, 80,126,164,171,120,127, 84, 24, 80,
|
/* 0x01d0 */ 144,122,255,248, 84, 99, 0, 58,124, 32, 34,120,124, 0, 26,120,
|
||||||
/* 0x01e0 */ 132, 4,255,252,127,132, 8, 64,148, 3,255,252, 65,157,255,244,
|
/* 0x01e0 */ 84, 0, 7,126,124, 96, 24, 80,126,164,171,120,127, 84, 24, 80,
|
||||||
/* 0x01f0 */ 124, 97, 27,120,148, 33,247,240,127, 3,195,120,126,228,187,120,
|
/* 0x01f0 */ 132, 4,255,252,127,132, 8, 64,148, 3,255,252, 65,157,255,244,
|
||||||
/* 0x0200 */ 56,161, 0, 16,127, 70,211,120,127,231,251,120,126,200,179,120,
|
/* 0x0200 */ 124, 97, 27,120,148, 33,247,240,127, 3,195,120,126,228,187,120,
|
||||||
/* 0x0210 */ 127, 41,203,120, 72, 0, 13, 89, 56, 33, 8, 16,124,127, 27,120,
|
/* 0x0210 */ 56,161, 0, 16,127, 70,211,120,127,231,251,120,126,200,179,120,
|
||||||
/* 0x0220 */ 128,153, 0,104,127, 35,203,120, 72, 0, 0,161,127, 35,203,120,
|
/* 0x0220 */ 127, 41,203,120, 72, 0, 13, 77, 56, 33, 8, 16,124,127, 27,120,
|
||||||
/* 0x0230 */ 72, 0, 0,209, 57, 0, 0, 0,127,103,219,120, 44, 7, 0, 0,
|
/* 0x0230 */ 128,153, 0,104,127, 35,203,120, 72, 0, 0,165,128,153, 0,104,
|
||||||
/* 0x0240 */ 65,128, 0, 32, 56,192, 0, 2, 56,160, 0, 1,124,158, 0,208,
|
/* 0x0240 */ 127, 35,203,120, 72, 0, 0,209, 57, 0, 0, 0,127,103,219,120,
|
||||||
/* 0x0250 */ 56, 96, 0, 0, 72, 0, 0, 89,127, 99,219,120, 72, 0, 0,149,
|
/* 0x0250 */ 44, 7, 0, 0, 65,128, 0, 32, 56,192, 0, 2, 56,160, 0, 1,
|
||||||
/* 0x0260 */ 127, 67,211,120,128, 3, 0, 0,128,131, 0, 4, 56, 99, 0, 8,
|
/* 0x0260 */ 124,158, 0,208, 56, 96, 0, 0, 72, 0, 0, 89,127, 99,219,120,
|
||||||
/* 0x0270 */ 43,128, 0, 0, 64,158,255,240,124,137, 3,166,127,163,235,120,
|
/* 0x0270 */ 72, 0, 0,149,127, 67,211,120,128, 3, 0, 0,128,131, 0, 4,
|
||||||
/* 0x0280 */ 127,132,227,120, 56, 0, 0, 91,127,232, 3,166,184,161, 0, 32,
|
/* 0x0280 */ 56, 99, 0, 8, 43,128, 0, 0, 64,158,255,240,124,137, 3,166,
|
||||||
/* 0x0290 */ 56, 33, 0,144, 78,128, 4, 32, 56, 0, 15,255,124, 96, 0, 56,
|
/* 0x0290 */ 127,163,235,120,127,132,227,120, 56, 0, 0, 91,127,232, 3,166,
|
||||||
/* 0x02a0 */ 124, 96, 24, 80,124,132, 2, 20, 72, 0, 0, 80, 56, 0, 0, 90,
|
/* 0x02a0 */ 184,161, 0, 32, 56, 33, 0,144, 78,128, 4, 32, 56, 0, 15,255,
|
||||||
/* 0x02b0 */ 68, 0, 0, 2, 64,163, 0, 8, 56, 96,255,255, 78,128, 0, 32,
|
/* 0x02b0 */ 124, 96, 0, 56,124, 96, 24, 80,124,132, 2, 20, 72, 0, 0, 80,
|
||||||
/* 0x02c0 */ 56, 0, 0, 1, 72, 0, 0, 8, 56, 0, 0, 45, 72, 0, 0, 8,
|
/* 0x02c0 */ 56, 0, 0, 90, 68, 0, 0, 2, 64,163, 0, 8, 56, 96,255,255,
|
||||||
/* 0x02d0 */ 56, 0, 0, 85, 72, 0, 0, 8, 56, 0, 0, 4, 72, 0, 0, 8,
|
/* 0x02d0 */ 78,128, 0, 32, 56, 0, 0, 1, 72, 0, 0, 8, 56, 0, 0, 45,
|
||||||
/* 0x02e0 */ 56, 0, 0, 3, 72, 0, 0, 8, 56, 0, 0, 5, 72, 0, 0, 8,
|
/* 0x02e0 */ 72, 0, 0, 8, 56, 0, 0, 85, 72, 0, 0, 8, 56, 0, 0, 4,
|
||||||
/* 0x02f0 */ 56, 0, 0, 6, 72, 0, 0, 8, 56, 0, 0,125, 72, 0, 0, 8,
|
/* 0x02f0 */ 72, 0, 0, 8, 56, 0, 0, 3, 72, 0, 0, 8, 56, 0, 0, 5,
|
||||||
/* 0x0300 */ 56, 0, 0, 91, 75,255,255,172,124,128, 0, 8, 78,128, 0, 32,
|
/* 0x0300 */ 72, 0, 0, 8, 56, 0, 0, 6, 72, 0, 0, 8, 56, 0, 0,125,
|
||||||
/* 0x0310 */ 148, 33,255,208,124, 8, 2,166,147,225, 0, 44,144, 1, 0, 52,
|
/* 0x0310 */ 72, 0, 0, 8, 56, 0, 0, 91, 75,255,255,172,124,128, 0, 8,
|
||||||
/* 0x0320 */ 124, 63, 11,120,144,127, 0, 8,144,159, 0, 12,144,191, 0, 16,
|
/* 0x0320 */ 78,128, 0, 32,148, 33,255,208,124, 8, 2,166,147,225, 0, 44,
|
||||||
/* 0x0330 */ 129, 63, 0, 8,128, 9, 0, 4,144, 31, 0, 20,128, 31, 0, 12,
|
/* 0x0330 */ 144, 1, 0, 52,124, 63, 11,120,144,127, 0, 8,144,159, 0, 12,
|
||||||
/* 0x0340 */ 144, 31, 0, 24,129, 63, 0, 8,129, 41, 0, 0,128, 31, 0, 16,
|
/* 0x0340 */ 144,191, 0, 16,129, 63, 0, 8,128, 9, 0, 4,144, 31, 0, 20,
|
||||||
/* 0x0350 */ 127,137, 0, 64, 64,156, 0, 12, 56, 96, 0,127, 75,255,255,101,
|
/* 0x0350 */ 128, 31, 0, 12,144, 31, 0, 24,129, 63, 0, 8,129, 41, 0, 0,
|
||||||
/* 0x0360 */ 128, 31, 0, 16,144, 31, 0, 28,129, 63, 0, 28, 56, 9,255,255,
|
/* 0x0360 */ 128, 31, 0, 16,127,137, 0, 64, 64,156, 0, 12, 56, 96, 0,127,
|
||||||
/* 0x0370 */ 124, 9, 3,120,145, 63, 0, 28, 56, 0,255,255,127,137, 0, 0,
|
/* 0x0370 */ 75,255,255,101,128, 31, 0, 16,144, 31, 0, 28,129, 63, 0, 28,
|
||||||
/* 0x0380 */ 65,158, 0, 48,129,127, 0, 24,129, 63, 0, 20,136, 9, 0, 0,
|
/* 0x0380 */ 56, 9,255,255,124, 9, 3,120,145, 63, 0, 28, 56, 0,255,255,
|
||||||
/* 0x0390 */ 152, 11, 0, 0,129, 63, 0, 20, 56, 9, 0, 1,144, 31, 0, 20,
|
/* 0x0390 */ 127,137, 0, 0, 65,158, 0, 48,129,127, 0, 24,129, 63, 0, 20,
|
||||||
/* 0x03a0 */ 129, 63, 0, 24, 56, 9, 0, 1,144, 31, 0, 24, 75,255,255,188,
|
/* 0x03a0 */ 136, 9, 0, 0,152, 11, 0, 0,129, 63, 0, 20, 56, 9, 0, 1,
|
||||||
/* 0x03b0 */ 129,127, 0, 8,129, 63, 0, 8,129, 41, 0, 4,128, 31, 0, 16,
|
/* 0x03b0 */ 144, 31, 0, 20,129, 63, 0, 24, 56, 9, 0, 1,144, 31, 0, 24,
|
||||||
/* 0x03c0 */ 124, 9, 2, 20,144, 11, 0, 4,129,127, 0, 8,129, 63, 0, 8,
|
/* 0x03c0 */ 75,255,255,188,129,127, 0, 8,129, 63, 0, 8,129, 41, 0, 4,
|
||||||
/* 0x03d0 */ 129, 41, 0, 0,128, 31, 0, 16,124, 0, 72, 80,144, 11, 0, 0,
|
/* 0x03d0 */ 128, 31, 0, 16,124, 9, 2, 20,144, 11, 0, 4,129,127, 0, 8,
|
||||||
/* 0x03e0 */ 129, 97, 0, 0,128, 11, 0, 4,124, 8, 3,166,131,235,255,252,
|
/* 0x03e0 */ 129, 63, 0, 8,129, 41, 0, 0,128, 31, 0, 16,124, 0, 72, 80,
|
||||||
/* 0x03f0 */ 125, 97, 91,120, 78,128, 0, 32,148, 33,255,176,124, 8, 2,166,
|
/* 0x03f0 */ 144, 11, 0, 0,129, 97, 0, 0,128, 11, 0, 4,124, 8, 3,166,
|
||||||
/* 0x0400 */ 147,225, 0, 76,144, 1, 0, 84,124, 63, 11,120,144,127, 0, 8,
|
/* 0x0400 */ 131,235,255,252,125, 97, 91,120, 78,128, 0, 32,148, 33,255,176,
|
||||||
/* 0x0410 */ 144,159, 0, 12,144,191, 0, 16,144,223, 0, 20,129, 63, 0, 12,
|
/* 0x0410 */ 124, 8, 2,166,147,225, 0, 76,144, 1, 0, 84,124, 63, 11,120,
|
||||||
/* 0x0420 */ 128, 9, 0, 0, 47,128, 0, 0, 65,158, 1,228, 56, 31, 0, 32,
|
/* 0x0420 */ 144,127, 0, 8,144,159, 0, 12,144,191, 0, 16,144,223, 0, 20,
|
||||||
/* 0x0430 */ 128,127, 0, 8,124, 4, 3,120, 56,160, 0, 12, 75,255,254,213,
|
/* 0x0430 */ 129, 63, 0, 12,128, 9, 0, 0, 47,128, 0, 0, 65,158, 1,228,
|
||||||
/* 0x0440 */ 128, 31, 0, 32, 47,128, 0, 0, 64,158, 0, 48,128, 31, 0, 36,
|
/* 0x0440 */ 56, 31, 0, 32,128,127, 0, 8,124, 4, 3,120, 56,160, 0, 12,
|
||||||
/* 0x0450 */ 61, 32, 33, 88, 97, 41, 80, 85,127,128, 72, 0, 65,158, 0, 8,
|
/* 0x0450 */ 75,255,254,213,128, 31, 0, 32, 47,128, 0, 0, 64,158, 0, 48,
|
||||||
/* 0x0460 */ 72, 0, 0, 36,129, 63, 0, 8,128, 9, 0, 0, 47,128, 0, 0,
|
/* 0x0460 */ 128, 31, 0, 36, 61, 32, 33, 88, 97, 41, 80, 85,127,128, 72, 0,
|
||||||
/* 0x0470 */ 65,158, 1,156, 72, 0, 0, 16,128, 31, 0, 36, 47,128, 0, 0,
|
/* 0x0470 */ 65,158, 0, 8, 72, 0, 0, 36,129, 63, 0, 8,128, 9, 0, 0,
|
||||||
/* 0x0480 */ 64,158, 0, 12, 56, 96, 0,127, 75,255,254, 57,128, 31, 0, 36,
|
/* 0x0480 */ 47,128, 0, 0, 65,158, 1,156, 72, 0, 0, 16,128, 31, 0, 36,
|
||||||
/* 0x0490 */ 129, 63, 0, 32,127,128, 72, 64, 65,157,255,236,129, 63, 0, 12,
|
/* 0x0490 */ 47,128, 0, 0, 64,158, 0, 12, 56, 96, 0,127, 75,255,254, 57,
|
||||||
/* 0x04a0 */ 129,127, 0, 32,128, 9, 0, 0,127,139, 0, 64, 65,157,255,216,
|
/* 0x04a0 */ 128, 31, 0, 36,129, 63, 0, 32,127,128, 72, 64, 65,157,255,236,
|
||||||
/* 0x04b0 */ 128, 31, 0, 36,129, 63, 0, 32,127,128, 72, 64, 64,156, 1, 8,
|
/* 0x04b0 */ 129, 63, 0, 12,129,127, 0, 32,128, 9, 0, 0,127,139, 0, 64,
|
||||||
/* 0x04c0 */ 128, 31, 0, 32,144, 31, 0, 48,129, 63, 0, 8,129,127, 0, 12,
|
/* 0x04c0 */ 65,157,255,216,128, 31, 0, 36,129, 63, 0, 32,127,128, 72, 64,
|
||||||
/* 0x04d0 */ 57, 95, 0, 48,136, 31, 0, 40, 84, 0, 6, 62,129, 31, 0, 16,
|
/* 0x04d0 */ 64,156, 1, 8,128, 31, 0, 32,144, 31, 0, 48,129, 63, 0, 8,
|
||||||
/* 0x04e0 */ 125, 9, 3,166,128,105, 0, 4,128,159, 0, 36,128,171, 0, 4,
|
/* 0x04e0 */ 129,127, 0, 12, 57, 95, 0, 48,136, 31, 0, 40, 84, 0, 6, 62,
|
||||||
/* 0x04f0 */ 125, 70, 83,120,124, 7, 3,120, 78,128, 4, 33,124, 96, 27,120,
|
/* 0x04f0 */ 129, 31, 0, 16,125, 9, 3,166,128,105, 0, 4,128,159, 0, 36,
|
||||||
/* 0x0500 */ 144, 31, 0, 52,128, 31, 0, 52, 47,128, 0, 0, 64,158,255,120,
|
/* 0x0500 */ 128,171, 0, 4,125, 70, 83,120,124, 7, 3,120, 78,128, 4, 33,
|
||||||
/* 0x0510 */ 128, 31, 0, 32,129, 63, 0, 48,127,128, 72, 0, 64,158,255,104,
|
/* 0x0510 */ 124, 96, 27,120,144, 31, 0, 52,128, 31, 0, 52, 47,128, 0, 0,
|
||||||
/* 0x0520 */ 136, 31, 0, 41, 84, 0, 6, 62, 47,128, 0, 0, 65,158, 0,100,
|
/* 0x0520 */ 64,158,255,120,128, 31, 0, 32,129, 63, 0, 48,127,128, 72, 0,
|
||||||
/* 0x0530 */ 128, 31, 0, 20, 47,128, 0, 0, 65,158, 0, 88,128, 31, 0, 48,
|
/* 0x0530 */ 64,158,255,104,136, 31, 0, 41, 84, 0, 6, 62, 47,128, 0, 0,
|
||||||
/* 0x0540 */ 43,128, 2, 0, 65,157, 0, 28,129, 63, 0, 12,129, 41, 0, 0,
|
/* 0x0540 */ 65,158, 0,100,128, 31, 0, 20, 47,128, 0, 0, 65,158, 0, 88,
|
||||||
/* 0x0550 */ 128, 31, 0, 32,127,137, 0, 0, 65,158, 0, 8, 72, 0, 0, 52,
|
/* 0x0550 */ 128, 31, 0, 48, 43,128, 2, 0, 65,157, 0, 28,129, 63, 0, 12,
|
||||||
/* 0x0560 */ 129, 63, 0, 12,136, 31, 0, 42, 84, 11, 6, 62,136, 31, 0, 41,
|
/* 0x0560 */ 129, 41, 0, 0,128, 31, 0, 32,127,137, 0, 0, 65,158, 0, 8,
|
||||||
/* 0x0570 */ 84, 0, 6, 62,129, 31, 0, 20,125, 9, 3,166,128,105, 0, 4,
|
/* 0x0570 */ 72, 0, 0, 52,129, 63, 0, 12,136, 31, 0, 42, 84, 11, 6, 62,
|
||||||
/* 0x0580 */ 128,159, 0, 48,125,101, 91,120,124, 6, 3,120, 78,128, 4, 33,
|
/* 0x0580 */ 136, 31, 0, 41, 84, 0, 6, 62,129, 31, 0, 20,125, 9, 3,166,
|
||||||
/* 0x0590 */ 129,127, 0, 8,129, 63, 0, 8,129, 41, 0, 4,128, 31, 0, 36,
|
/* 0x0590 */ 128,105, 0, 4,128,159, 0, 48,125,101, 91,120,124, 6, 3,120,
|
||||||
/* 0x05a0 */ 124, 9, 2, 20,144, 11, 0, 4,129,127, 0, 8,129, 63, 0, 8,
|
/* 0x05a0 */ 78,128, 4, 33,129,127, 0, 8,129, 63, 0, 8,129, 41, 0, 4,
|
||||||
/* 0x05b0 */ 129, 41, 0, 0,128, 31, 0, 36,124, 0, 72, 80,144, 11, 0, 0,
|
/* 0x05b0 */ 128, 31, 0, 36,124, 9, 2, 20,144, 11, 0, 4,129,127, 0, 8,
|
||||||
/* 0x05c0 */ 72, 0, 0, 24,129, 63, 0, 12,128,127, 0, 8,128,137, 0, 4,
|
/* 0x05c0 */ 129, 63, 0, 8,129, 41, 0, 0,128, 31, 0, 36,124, 0, 72, 80,
|
||||||
/* 0x05d0 */ 128,191, 0, 36, 75,255,253, 61,129,127, 0, 12,129, 63, 0, 12,
|
/* 0x05d0 */ 144, 11, 0, 0, 72, 0, 0, 24,129, 63, 0, 12,128,127, 0, 8,
|
||||||
/* 0x05e0 */ 129, 41, 0, 4,128, 31, 0, 32,124, 9, 2, 20,144, 11, 0, 4,
|
/* 0x05e0 */ 128,137, 0, 4,128,191, 0, 36, 75,255,253, 61,129,127, 0, 12,
|
||||||
/* 0x05f0 */ 129,127, 0, 12,129, 63, 0, 12,129, 41, 0, 0,128, 31, 0, 32,
|
/* 0x05f0 */ 129, 63, 0, 12,129, 41, 0, 4,128, 31, 0, 32,124, 9, 2, 20,
|
||||||
/* 0x0600 */ 124, 0, 72, 80,144, 11, 0, 0, 75,255,254, 20,129, 97, 0, 0,
|
/* 0x0600 */ 144, 11, 0, 4,129,127, 0, 12,129, 63, 0, 12,129, 41, 0, 0,
|
||||||
/* 0x0610 */ 128, 11, 0, 4,124, 8, 3,166,131,235,255,252,125, 97, 91,120,
|
/* 0x0610 */ 128, 31, 0, 32,124, 0, 72, 80,144, 11, 0, 0, 75,255,254, 20,
|
||||||
/* 0x0620 */ 78,128, 0, 32,148, 33,255,208,124, 8, 2,166,147,225, 0, 44,
|
/* 0x0620 */ 129, 97, 0, 0,128, 11, 0, 4,124, 8, 3,166,131,235,255,252,
|
||||||
/* 0x0630 */ 144, 1, 0, 52,124, 63, 11,120,144,127, 0, 8,144,159, 0, 12,
|
/* 0x0630 */ 125, 97, 91,120, 78,128, 0, 32,148, 33,255,208,124, 8, 2,166,
|
||||||
/* 0x0640 */ 144,191, 0, 16, 56, 0, 0, 0,144, 31, 0, 20, 56, 0, 0, 0,
|
/* 0x0640 */ 147,225, 0, 44,144, 1, 0, 52,124, 63, 11,120,144,127, 0, 8,
|
||||||
/* 0x0650 */ 144, 31, 0, 24,129, 63, 0, 8,128, 9, 0, 0, 47,128, 0, 1,
|
/* 0x0650 */ 144,159, 0, 12,144,191, 0, 16, 56, 0, 0, 0,144, 31, 0, 20,
|
||||||
/* 0x0660 */ 64,158, 1, 40,129, 63, 0, 8,128, 9, 0, 24, 84, 0, 7,254,
|
/* 0x0660 */ 56, 0, 0, 0,144, 31, 0, 24,129, 63, 0, 8,128, 9, 0, 0,
|
||||||
/* 0x0670 */ 47,128, 0, 0, 65,158, 1, 20,129, 63, 0, 8,129,127, 0, 8,
|
/* 0x0670 */ 47,128, 0, 1, 64,158, 1, 40,129, 63, 0, 8,128, 9, 0, 24,
|
||||||
/* 0x0680 */ 129, 41, 0, 20,128, 11, 0, 8,125, 41, 2, 20,128, 31, 0, 12,
|
/* 0x0680 */ 84, 0, 7,254, 47,128, 0, 0, 65,158, 1, 20,129, 63, 0, 8,
|
||||||
/* 0x0690 */ 124, 9, 2, 20,144, 31, 0, 24,129, 63, 0, 8,129,127, 0, 8,
|
/* 0x0690 */ 129,127, 0, 8,129, 41, 0, 20,128, 11, 0, 8,125, 41, 2, 20,
|
||||||
/* 0x06a0 */ 129, 41, 0, 20,128, 11, 0, 16,127,137, 0, 0, 64,158, 0, 28,
|
/* 0x06a0 */ 128, 31, 0, 12,124, 9, 2, 20,144, 31, 0, 24,129, 63, 0, 8,
|
||||||
/* 0x06b0 */ 128, 31, 0, 24,125, 32, 0,208,128, 31, 0, 16,125, 32, 0, 56,
|
/* 0x06b0 */ 129,127, 0, 8,129, 41, 0, 20,128, 11, 0, 16,127,137, 0, 0,
|
||||||
/* 0x06c0 */ 43,128, 0, 7, 65,157, 0,104,129,127, 0, 8,128, 31, 0, 12,
|
/* 0x06c0 */ 64,158, 0, 28,128, 31, 0, 24,125, 32, 0,208,128, 31, 0, 16,
|
||||||
/* 0x06d0 */ 29, 32, 0, 52,128, 11, 0, 8,125, 41, 2, 20, 56, 9, 0, 8,
|
/* 0x06d0 */ 125, 32, 0, 56, 43,128, 0, 7, 65,157, 0,104,129,127, 0, 8,
|
||||||
/* 0x06e0 */ 144, 31, 0, 24,129, 63, 0, 8,128, 9, 0, 4, 47,128, 0, 0,
|
/* 0x06e0 */ 128, 31, 0, 12, 29, 32, 0, 52,128, 11, 0, 8,125, 41, 2, 20,
|
||||||
/* 0x06f0 */ 65,158, 0, 60, 56, 0, 0, 1,144, 31, 0, 20, 56, 96, 0, 0,
|
/* 0x06f0 */ 56, 9, 0, 8,144, 31, 0, 24,129, 63, 0, 8,128, 9, 0, 4,
|
||||||
/* 0x0700 */ 56,128, 16, 0, 56,160, 0, 3, 56,192, 0, 34, 56,224,255,255,
|
/* 0x0700 */ 47,128, 0, 0, 65,158, 0, 60, 56, 0, 0, 1,144, 31, 0, 20,
|
||||||
/* 0x0710 */ 57, 0, 0, 0, 75,255,251,153,144,127, 0, 24,128, 31, 0, 24,
|
/* 0x0710 */ 56, 96, 0, 0, 56,128, 16, 0, 56,160, 0, 3, 56,192, 0, 34,
|
||||||
/* 0x0720 */ 47,128, 0, 0, 64,158, 0, 8, 72, 0, 0, 88,129, 63, 0, 24,
|
/* 0x0720 */ 56,224,255,255, 57, 0, 0, 0, 75,255,251,153,144,127, 0, 24,
|
||||||
/* 0x0730 */ 56, 9, 0, 3, 84, 0, 0, 58,144, 31, 0, 24,129, 63, 0, 24,
|
/* 0x0730 */ 128, 31, 0, 24, 47,128, 0, 0, 64,158, 0, 8, 72, 0, 0, 88,
|
||||||
/* 0x0740 */ 60, 0, 68, 0, 96, 0, 0, 2,144, 9, 0, 0,129, 63, 0, 24,
|
/* 0x0740 */ 129, 63, 0, 24, 56, 9, 0, 3, 84, 0, 0, 58,144, 31, 0, 24,
|
||||||
/* 0x0750 */ 57, 41, 0, 4, 60, 0, 78,128, 96, 0, 0, 32,144, 9, 0, 0,
|
/* 0x0750 */ 129, 63, 0, 24, 60, 0, 68, 0, 96, 0, 0, 2,144, 9, 0, 0,
|
||||||
/* 0x0760 */ 128, 31, 0, 20, 47,128, 0, 0, 65,158, 0, 32,128,127, 0, 24,
|
/* 0x0760 */ 129, 63, 0, 24, 57, 41, 0, 4, 60, 0, 78,128, 96, 0, 0, 32,
|
||||||
/* 0x0770 */ 56,128, 0, 8, 56,160, 0, 5, 75,255,251, 33, 72, 0, 0, 12,
|
/* 0x0770 */ 144, 9, 0, 0,128, 31, 0, 20, 47,128, 0, 0, 65,158, 0, 32,
|
||||||
/* 0x0780 */ 56, 0, 0, 0,144, 31, 0, 24,128, 31, 0, 24,124, 3, 3,120,
|
/* 0x0780 */ 128,127, 0, 24, 56,128, 0, 8, 56,160, 0, 5, 75,255,251, 33,
|
||||||
/* 0x0790 */ 129, 97, 0, 0,128, 11, 0, 4,124, 8, 3,166,131,235,255,252,
|
/* 0x0790 */ 72, 0, 0, 12, 56, 0, 0, 0,144, 31, 0, 24,128, 31, 0, 24,
|
||||||
/* 0x07a0 */ 125, 97, 91,120, 78,128, 0, 32,148, 33,255,224,147,225, 0, 28,
|
/* 0x07a0 */ 124, 3, 3,120,129, 97, 0, 0,128, 11, 0, 4,124, 8, 3,166,
|
||||||
/* 0x07b0 */ 124, 63, 11,120,144,127, 0, 8,144,159, 0, 12,128, 31, 0, 12,
|
/* 0x07b0 */ 131,235,255,252,125, 97, 91,120, 78,128, 0, 32,148, 33,255,224,
|
||||||
/* 0x07c0 */ 47,128, 0, 0, 65,158, 0, 52,129, 63, 0, 8,125, 43, 75,120,
|
/* 0x07c0 */ 147,225, 0, 28,124, 63, 11,120,144,127, 0, 8,144,159, 0, 12,
|
||||||
/* 0x07d0 */ 56, 0, 0, 0,152, 11, 0, 0, 57, 41, 0, 1,145, 63, 0, 8,
|
/* 0x07d0 */ 128, 31, 0, 12, 47,128, 0, 0, 65,158, 0, 52,129, 63, 0, 8,
|
||||||
/* 0x07e0 */ 129, 63, 0, 12, 56, 9,255,255,144, 31, 0, 12, 47,128, 0, 0,
|
/* 0x07e0 */ 125, 43, 75,120, 56, 0, 0, 0,152, 11, 0, 0, 57, 41, 0, 1,
|
||||||
/* 0x07f0 */ 65,158, 0, 8, 75,255,255,212,129, 97, 0, 0,131,235,255,252,
|
/* 0x07f0 */ 145, 63, 0, 8,129, 63, 0, 12, 56, 9,255,255,144, 31, 0, 12,
|
||||||
/* 0x0800 */ 125, 97, 91,120, 78,128, 0, 32,148, 33,255,208,124, 8, 2,166,
|
/* 0x0800 */ 47,128, 0, 0, 65,158, 0, 8, 75,255,255,212,129, 97, 0, 0,
|
||||||
/* 0x0810 */ 147,225, 0, 44,144, 1, 0, 52,124, 63, 11,120,144,127, 0, 8,
|
/* 0x0810 */ 131,235,255,252,125, 97, 91,120, 78,128, 0, 32,148, 33,255,208,
|
||||||
/* 0x0820 */ 144,159, 0, 12,144,191, 0, 16,128, 31, 0, 8, 47,128, 0, 0,
|
/* 0x0820 */ 124, 8, 2,166,147,225, 0, 44,144, 1, 0, 52,124, 63, 11,120,
|
||||||
/* 0x0830 */ 65,158, 0,204,128, 31, 0, 8, 84, 0, 7,254, 47,128, 0, 0,
|
/* 0x0830 */ 144,127, 0, 8,144,159, 0, 12,144,191, 0, 16,128, 31, 0, 8,
|
||||||
/* 0x0840 */ 64,158, 0,188, 56, 0, 0, 0,144, 31, 0, 20, 56, 0, 0, 0,
|
/* 0x0840 */ 47,128, 0, 0, 65,158, 0,204,128, 31, 0, 8, 84, 0, 7,254,
|
||||||
/* 0x0850 */ 144, 31, 0, 24,129, 63, 0, 8,129, 41, 0, 0,128, 31, 0, 12,
|
/* 0x0850 */ 47,128, 0, 0, 64,158, 0,188, 56, 0, 0, 0,144, 31, 0, 20,
|
||||||
/* 0x0860 */ 127,137, 0, 0, 64,158, 0, 32,129, 63, 0, 8,128, 31, 0, 16,
|
/* 0x0860 */ 56, 0, 0, 0,144, 31, 0, 24,129, 63, 0, 8,129, 41, 0, 0,
|
||||||
/* 0x0870 */ 144, 9, 0, 4,129, 63, 0, 24, 56, 9, 0, 1,144, 31, 0, 24,
|
/* 0x0870 */ 128, 31, 0, 12,127,137, 0, 0, 64,158, 0, 32,129, 63, 0, 8,
|
||||||
/* 0x0880 */ 72, 0, 0, 28,129, 63, 0, 8,128, 9, 0, 0, 47,128, 0, 1,
|
/* 0x0880 */ 128, 31, 0, 16,144, 9, 0, 4,129, 63, 0, 24, 56, 9, 0, 1,
|
||||||
/* 0x0890 */ 64,158, 0, 12,128, 31, 0, 8,144, 31, 0, 20,129, 63, 0, 8,
|
/* 0x0890 */ 144, 31, 0, 24, 72, 0, 0, 28,129, 63, 0, 8,128, 9, 0, 0,
|
||||||
/* 0x08a0 */ 128, 9, 0, 0, 47,128, 0, 0, 64,158, 0, 68,128, 31, 0, 24,
|
/* 0x08a0 */ 47,128, 0, 1, 64,158, 0, 12,128, 31, 0, 8,144, 31, 0, 20,
|
||||||
/* 0x08b0 */ 47,128, 0, 0, 65,158, 0, 8, 72, 0, 0, 68,128, 31, 0, 20,
|
/* 0x08b0 */ 129, 63, 0, 8,128, 9, 0, 0, 47,128, 0, 0, 64,158, 0, 68,
|
||||||
/* 0x08c0 */ 47,128, 0, 0, 65,158, 0, 32,129, 63, 0, 20,128, 31, 0, 12,
|
/* 0x08c0 */ 128, 31, 0, 24, 47,128, 0, 0, 65,158, 0, 8, 72, 0, 0, 68,
|
||||||
/* 0x08d0 */ 144, 9, 0, 0,129, 63, 0, 20,128, 31, 0, 16,144, 9, 0, 4,
|
/* 0x08d0 */ 128, 31, 0, 20, 47,128, 0, 0, 65,158, 0, 32,129, 63, 0, 20,
|
||||||
/* 0x08e0 */ 72, 0, 0, 28, 56, 96, 0,127, 75,255,249,217,129, 63, 0, 8,
|
/* 0x08e0 */ 128, 31, 0, 12,144, 9, 0, 0,129, 63, 0, 20,128, 31, 0, 16,
|
||||||
/* 0x08f0 */ 56, 9, 0, 8,144, 31, 0, 8, 75,255,255, 92,129, 97, 0, 0,
|
/* 0x08f0 */ 144, 9, 0, 4, 72, 0, 0, 28, 56, 96, 0,127, 75,255,249,217,
|
||||||
/* 0x0900 */ 128, 11, 0, 4,124, 8, 3,166,131,235,255,252,125, 97, 91,120,
|
/* 0x0900 */ 129, 63, 0, 8, 56, 9, 0, 8,144, 31, 0, 8, 75,255,255, 92,
|
||||||
/* 0x0910 */ 78,128, 0, 32,148, 33,255,208,124, 8, 2,166,147,225, 0, 44,
|
/* 0x0910 */ 129, 97, 0, 0,128, 11, 0, 4,124, 8, 3,166,131,235,255,252,
|
||||||
/* 0x0920 */ 144, 1, 0, 52,124, 63, 11,120,144,127, 0, 8,144,159, 0, 12,
|
/* 0x0920 */ 125, 97, 91,120, 78,128, 0, 32,148, 33,255,208,124, 8, 2,166,
|
||||||
/* 0x0930 */ 144,191, 0, 16,144,223, 0, 20, 75,255,247, 73,124, 96, 27,120,
|
/* 0x0930 */ 147,225, 0, 44,144, 1, 0, 52,124, 63, 11,120,144,127, 0, 8,
|
||||||
/* 0x0940 */ 144, 31, 0, 24, 56, 0,255,255,144, 31, 0, 28, 56, 0, 0, 0,
|
/* 0x0940 */ 144,159, 0, 12,144,191, 0, 16,144,223, 0, 20, 75,255,247, 57,
|
||||||
/* 0x0950 */ 144, 31, 0, 32, 56, 0, 0, 0,144, 31, 0, 36,129, 63, 0, 16,
|
/* 0x0950 */ 124, 96, 27,120,144, 31, 0, 24, 56, 0,255,255,144, 31, 0, 28,
|
||||||
/* 0x0960 */ 56, 9,255,255,144, 31, 0, 16, 47,128, 0, 0, 65,156, 0,124,
|
/* 0x0960 */ 56, 0, 0, 0,144, 31, 0, 32, 56, 0, 0, 0,144, 31, 0, 36,
|
||||||
/* 0x0970 */ 129, 63, 0, 12,128, 9, 0, 0, 47,128, 0, 1, 64,158, 0, 92,
|
/* 0x0970 */ 129, 63, 0, 16, 56, 9,255,255,144, 31, 0, 16, 47,128, 0, 0,
|
||||||
/* 0x0980 */ 129, 63, 0, 12,129, 41, 0, 8,128, 31, 0, 28,127,137, 0, 64,
|
/* 0x0980 */ 65,156, 0,124,129, 63, 0, 12,128, 9, 0, 0, 47,128, 0, 1,
|
||||||
/* 0x0990 */ 64,156, 0, 16,129, 63, 0, 12,128, 9, 0, 8,144, 31, 0, 28,
|
/* 0x0990 */ 64,158, 0, 92,129, 63, 0, 12,129, 41, 0, 8,128, 31, 0, 28,
|
||||||
/* 0x09a0 */ 129, 63, 0, 12,129,127, 0, 12,129, 41, 0, 20,128, 11, 0, 8,
|
/* 0x09a0 */ 127,137, 0, 64, 64,156, 0, 16,129, 63, 0, 12,128, 9, 0, 8,
|
||||||
/* 0x09b0 */ 125, 41, 2, 20,128, 31, 0, 32,127,137, 0, 64, 64,157, 0, 28,
|
/* 0x09b0 */ 144, 31, 0, 28,129, 63, 0, 12,129,127, 0, 12,129, 41, 0, 20,
|
||||||
/* 0x09c0 */ 129, 63, 0, 12,129,127, 0, 12,129, 41, 0, 20,128, 11, 0, 8,
|
/* 0x09c0 */ 128, 11, 0, 8,125, 41, 2, 20,128, 31, 0, 32,127,137, 0, 64,
|
||||||
/* 0x09d0 */ 124, 9, 2, 20,144, 31, 0, 32,129, 63, 0, 12, 56, 9, 0, 32,
|
/* 0x09d0 */ 64,157, 0, 28,129, 63, 0, 12,129,127, 0, 12,129, 41, 0, 20,
|
||||||
/* 0x09e0 */ 144, 31, 0, 12, 75,255,255,120,129, 63, 0, 28,128, 31, 0, 24,
|
/* 0x09e0 */ 128, 11, 0, 8,124, 9, 2, 20,144, 31, 0, 32,129, 63, 0, 12,
|
||||||
/* 0x09f0 */ 125, 32, 0, 56,144, 31, 0, 28,129, 63, 0, 32,128, 31, 0, 28,
|
/* 0x09f0 */ 56, 9, 0, 32,144, 31, 0, 12, 75,255,255,120,129, 63, 0, 28,
|
||||||
/* 0x0a00 */ 125, 32, 72, 80,128, 31, 0, 24,125, 32, 72, 80, 57, 41,255,255,
|
/* 0x0a00 */ 128, 31, 0, 24,125, 32, 0, 56,144, 31, 0, 28,129, 63, 0, 32,
|
||||||
/* 0x0a10 */ 128, 31, 0, 24,125, 32, 0, 56,144, 31, 0, 32,128, 31, 0, 8,
|
/* 0x0a10 */ 128, 31, 0, 28,125, 32, 72, 80,128, 31, 0, 24,125, 32, 72, 80,
|
||||||
/* 0x0a20 */ 96, 0, 0, 34,128,127, 0, 28,128,159, 0, 32, 56,160, 0, 0,
|
/* 0x0a20 */ 57, 41,255,255,128, 31, 0, 24,125, 32, 0, 56,144, 31, 0, 32,
|
||||||
/* 0x0a30 */ 124, 6, 3,120, 56,224,255,255, 57, 0, 0, 0, 75,255,248,113,
|
/* 0x0a30 */ 128, 31, 0, 8, 96, 0, 0, 34,128,127, 0, 28,128,159, 0, 32,
|
||||||
/* 0x0a40 */ 144,127, 0, 36,129,127, 0, 20,129, 63, 0, 32,128, 31, 0, 36,
|
/* 0x0a40 */ 56,160, 0, 0,124, 6, 3,120, 56,224,255,255, 57, 0, 0, 0,
|
||||||
/* 0x0a50 */ 124, 9, 2, 20,144, 11, 0, 0,129, 63, 0, 36,128, 31, 0, 28,
|
/* 0x0a50 */ 75,255,248,113,144,127, 0, 36,129,127, 0, 20,129, 63, 0, 32,
|
||||||
/* 0x0a60 */ 124, 0, 72, 80,124, 3, 3,120,129, 97, 0, 0,128, 11, 0, 4,
|
/* 0x0a60 */ 128, 31, 0, 36,124, 9, 2, 20,144, 11, 0, 0,129, 63, 0, 36,
|
||||||
/* 0x0a70 */ 124, 8, 3,166,131,235,255,252,125, 97, 91,120, 78,128, 0, 32,
|
/* 0x0a70 */ 128, 31, 0, 28,124, 0, 72, 80,124, 3, 3,120,129, 97, 0, 0,
|
||||||
/* 0x0a80 */ 148, 33,255,144,124, 8, 2,166,147,225, 0,108,144, 1, 0,116,
|
/* 0x0a80 */ 128, 11, 0, 4,124, 8, 3,166,131,235,255,252,125, 97, 91,120,
|
||||||
/* 0x0a90 */ 124, 63, 11,120,144,127, 0, 8,144,159, 0, 12,144,191, 0, 16,
|
/* 0x0a90 */ 78,128, 0, 32,148, 33,255,144,124, 8, 2,166,147,225, 0,108,
|
||||||
/* 0x0aa0 */ 144,223, 0, 20,144,255, 0, 24,145, 31, 0, 28, 75,255,245,213,
|
/* 0x0aa0 */ 144, 1, 0,116,124, 63, 11,120,144,127, 0, 8,144,159, 0, 12,
|
||||||
/* 0x0ab0 */ 124, 96, 27,120,124, 0, 0,248,144, 31, 0, 32,129, 63, 0, 12,
|
/* 0x0ab0 */ 144,191, 0, 16,144,223, 0, 20,144,255, 0, 24,145, 31, 0, 28,
|
||||||
/* 0x0ac0 */ 129, 41, 0, 28,128, 31, 0, 12,124, 9, 2, 20,144, 31, 0, 36,
|
/* 0x0ac0 */ 75,255,245,197,124, 96, 27,120,124, 0, 0,248,144, 31, 0, 32,
|
||||||
/* 0x0ad0 */ 128, 31, 0, 16, 47,128, 0, 0, 65,158, 0,144,129, 63, 0, 24,
|
/* 0x0ad0 */ 129, 63, 0, 12,129, 41, 0, 28,128, 31, 0, 12,124, 9, 2, 20,
|
||||||
/* 0x0ae0 */ 128, 9, 0, 0,144, 31, 0, 48,129, 63, 0, 48, 56, 9, 0, 52,
|
/* 0x0ae0 */ 144, 31, 0, 36,128, 31, 0, 16, 47,128, 0, 0, 65,158, 0,128,
|
||||||
/* 0x0af0 */ 144, 31, 0, 52,129, 63, 0, 48,160, 9, 0, 16, 84, 0, 4, 62,
|
/* 0x0af0 */ 129, 63, 0, 24,128, 9, 0, 0,144, 31, 0, 48,129, 63, 0, 48,
|
||||||
/* 0x0b00 */ 47,128, 0, 2, 64,158, 0, 28,129, 63, 0, 52,128, 9, 0, 8,
|
/* 0x0b00 */ 56, 9, 0, 52,144, 31, 0, 52,129, 63, 0, 48,160, 9, 0, 16,
|
||||||
/* 0x0b10 */ 144, 31, 0, 48, 56, 0, 0, 0,144, 31, 0, 44, 72, 0, 0, 36,
|
/* 0x0b10 */ 84, 0, 4, 62, 47,128, 0, 2, 64,158, 0, 28,129, 63, 0, 52,
|
||||||
/* 0x0b20 */ 129, 63, 0, 52, 57, 41, 0, 32,129,127, 0, 48,128, 9, 0, 8,
|
/* 0x0b20 */ 128, 9, 0, 8,144, 31, 0, 48, 56, 0, 0, 0,144, 31, 0, 44,
|
||||||
/* 0x0b30 */ 124, 0, 88, 80,144, 31, 0, 48,128, 31, 0, 48,144, 31, 0, 44,
|
/* 0x0b30 */ 72, 0, 0, 36,129, 63, 0, 52, 57, 41, 0, 32,129,127, 0, 48,
|
||||||
/* 0x0b40 */ 129, 63, 0, 52,129, 41, 0, 20,128, 31, 0, 48,124, 9, 2, 20,
|
/* 0x0b40 */ 128, 9, 0, 8,124, 0, 88, 80,144, 31, 0, 48,128, 31, 0, 48,
|
||||||
/* 0x0b50 */ 144, 31, 0, 40,129, 63, 0, 52,128,127, 0, 48,128,137, 0, 20,
|
/* 0x0b50 */ 144, 31, 0, 44,129, 63, 0, 52,129, 41, 0, 20,128, 31, 0, 48,
|
||||||
/* 0x0b60 */ 75,255,247,161, 72, 0, 0, 84,129, 63, 0, 12,160, 9, 0, 16,
|
/* 0x0b60 */ 124, 9, 2, 20,144, 31, 0, 40, 72, 0, 0, 84,129, 63, 0, 12,
|
||||||
/* 0x0b70 */ 84, 0, 4, 62, 47,128, 0, 3, 65,158, 0, 16, 56, 0, 0, 16,
|
/* 0x0b70 */ 160, 9, 0, 16, 84, 0, 4, 62, 47,128, 0, 3, 65,158, 0, 16,
|
||||||
/* 0x0b80 */ 144, 31, 0, 84, 72, 0, 0, 12, 56, 0, 0, 0,144, 31, 0, 84,
|
/* 0x0b80 */ 56, 0, 0, 16,144, 31, 0, 84, 72, 0, 0, 12, 56, 0, 0, 0,
|
||||||
/* 0x0b90 */ 129, 63, 0, 12,160, 9, 0, 44, 84, 0, 4, 62, 57, 63, 0, 40,
|
/* 0x0b90 */ 144, 31, 0, 84,129, 63, 0, 12,160, 9, 0, 44, 84, 0, 4, 62,
|
||||||
/* 0x0ba0 */ 128,127, 0, 84,128,159, 0, 36,124, 5, 3,120,125, 38, 75,120,
|
/* 0x0ba0 */ 57, 63, 0, 40,128,127, 0, 84,128,159, 0, 36,124, 5, 3,120,
|
||||||
/* 0x0bb0 */ 75,255,253,101,144,127, 0, 44, 56, 0, 0, 0,144, 31, 0, 52,
|
/* 0x0bb0 */ 125, 38, 75,120, 75,255,253,117,144,127, 0, 44, 56, 0, 0, 0,
|
||||||
/* 0x0bc0 */ 129, 63, 0, 12,160, 9, 0, 44, 84, 9, 4, 62,128, 31, 0, 52,
|
/* 0x0bc0 */ 144, 31, 0, 52,129, 63, 0, 12,160, 9, 0, 44, 84, 9, 4, 62,
|
||||||
/* 0x0bd0 */ 127,137, 0, 0, 64,157, 3, 84,128, 31, 0, 16, 47,128, 0, 0,
|
/* 0x0bd0 */ 128, 31, 0, 52,127,137, 0, 0, 64,157, 3, 84,128, 31, 0, 16,
|
||||||
/* 0x0be0 */ 65,158, 0, 56,129, 63, 0, 36,128, 9, 0, 0, 47,128, 0, 6,
|
/* 0x0be0 */ 47,128, 0, 0, 65,158, 0, 56,129, 63, 0, 36,128, 9, 0, 0,
|
||||||
/* 0x0bf0 */ 64,158, 0, 40,129, 63, 0, 36,129, 41, 0, 8,128, 31, 0, 44,
|
/* 0x0bf0 */ 47,128, 0, 6, 64,158, 0, 40,129, 63, 0, 36,129, 41, 0, 8,
|
||||||
/* 0x0c00 */ 124, 9, 2, 20,128,127, 0, 20, 56,128, 0, 3,124, 5, 3,120,
|
/* 0x0c00 */ 128, 31, 0, 44,124, 9, 2, 20,128,127, 0, 20, 56,128, 0, 3,
|
||||||
/* 0x0c10 */ 75,255,251,249, 72, 0, 2,248,129, 63, 0, 36,128, 9, 0, 0,
|
/* 0x0c10 */ 124, 5, 3,120, 75,255,252, 9, 72, 0, 2,248,129, 63, 0, 36,
|
||||||
/* 0x0c20 */ 47,128, 0, 1, 64,158, 2,232,129, 63, 0, 36,128, 9, 0, 20,
|
/* 0x0c20 */ 128, 9, 0, 0, 47,128, 0, 1, 64,158, 2,232,129, 63, 0, 36,
|
||||||
/* 0x0c30 */ 47,128, 0, 0, 65,158, 2,216,128, 31, 0, 16, 47,128, 0, 0,
|
/* 0x0c30 */ 128, 9, 0, 20, 47,128, 0, 0, 65,158, 2,216,128, 31, 0, 16,
|
||||||
/* 0x0c40 */ 65,158, 0,120,129, 63, 0, 36,128, 9, 0, 4, 47,128, 0, 0,
|
/* 0x0c40 */ 47,128, 0, 0, 65,158, 0,120,129, 63, 0, 36,128, 9, 0, 4,
|
||||||
/* 0x0c50 */ 64,158, 0,104,129, 63, 0, 36,129, 41, 0, 8,128, 31, 0, 44,
|
/* 0x0c50 */ 47,128, 0, 0, 64,158, 0,104,129, 63, 0, 36,129, 41, 0, 8,
|
||||||
/* 0x0c60 */ 125,105, 2, 20,129, 63, 0, 12,128, 9, 0, 28,124, 11, 2, 20,
|
/* 0x0c60 */ 128, 31, 0, 44,125,105, 2, 20,129, 63, 0, 12,128, 9, 0, 28,
|
||||||
/* 0x0c70 */ 128,127, 0, 20, 56,128, 0, 3,124, 5, 3,120, 75,255,251,141,
|
/* 0x0c70 */ 124, 11, 2, 20,128,127, 0, 20, 56,128, 0, 3,124, 5, 3,120,
|
||||||
/* 0x0c80 */ 129, 63, 0, 12,160, 9, 0, 44, 84, 0, 4, 62,128,127, 0, 20,
|
/* 0x0c80 */ 75,255,251,157,129, 63, 0, 12,160, 9, 0, 44, 84, 0, 4, 62,
|
||||||
/* 0x0c90 */ 56,128, 0, 5,124, 5, 3,120, 75,255,251,113,129, 63, 0, 12,
|
/* 0x0c90 */ 128,127, 0, 20, 56,128, 0, 5,124, 5, 3,120, 75,255,251,129,
|
||||||
/* 0x0ca0 */ 160, 9, 0, 42, 84, 0, 4, 62,128,127, 0, 20, 56,128, 0, 4,
|
/* 0x0ca0 */ 129, 63, 0, 12,160, 9, 0, 42, 84, 0, 4, 62,128,127, 0, 20,
|
||||||
/* 0x0cb0 */ 124, 5, 3,120, 75,255,251, 85,129, 63, 0, 36,128, 9, 0, 24,
|
/* 0x0cb0 */ 56,128, 0, 4,124, 5, 3,120, 75,255,251,101,129, 63, 0, 36,
|
||||||
/* 0x0cc0 */ 84, 0, 7,126, 84, 9, 16, 58, 60, 0,115, 81, 96, 0, 98, 64,
|
/* 0x0cc0 */ 128, 9, 0, 24, 84, 0, 7,126, 84, 9, 16, 58, 60, 0,115, 81,
|
||||||
/* 0x0cd0 */ 124, 0, 76, 48, 84, 0, 7,126,144, 31, 0, 48,129, 63, 0, 36,
|
/* 0x0cd0 */ 96, 0, 98, 64,124, 0, 76, 48, 84, 0, 7,126,144, 31, 0, 48,
|
||||||
/* 0x0ce0 */ 128, 9, 0, 16,144, 31, 0, 56,144, 31, 0, 64,129, 63, 0, 36,
|
/* 0x0ce0 */ 129, 63, 0, 36,128, 9, 0, 16,144, 31, 0, 56,144, 31, 0, 64,
|
||||||
/* 0x0cf0 */ 129, 41, 0, 8,128, 31, 0, 44,124, 9, 2, 20,144, 31, 0, 60,
|
/* 0x0cf0 */ 129, 63, 0, 36,129, 41, 0, 8,128, 31, 0, 44,124, 9, 2, 20,
|
||||||
/* 0x0d00 */ 144, 31, 0, 68,129, 63, 0, 36,129, 41, 0, 20,128, 31, 0, 68,
|
/* 0x0d00 */ 144, 31, 0, 60,144, 31, 0, 68,129, 63, 0, 36,129, 41, 0, 20,
|
||||||
/* 0x0d10 */ 124, 9, 2, 20,144, 31, 0, 72,129, 63, 0, 68,128, 31, 0, 32,
|
/* 0x0d10 */ 128, 31, 0, 68,124, 9, 2, 20,144, 31, 0, 72,129, 63, 0, 68,
|
||||||
/* 0x0d20 */ 125, 32, 0, 56,144, 31, 0, 76,129, 63, 0, 64,128, 31, 0, 76,
|
/* 0x0d20 */ 128, 31, 0, 32,125, 32, 0, 56,144, 31, 0, 76,129, 63, 0, 64,
|
||||||
/* 0x0d30 */ 124, 9, 2, 20,144, 31, 0, 64,129, 63, 0, 68,128, 31, 0, 76,
|
/* 0x0d30 */ 128, 31, 0, 76,124, 9, 2, 20,144, 31, 0, 64,129, 63, 0, 68,
|
||||||
/* 0x0d40 */ 124, 0, 72, 80,144, 31, 0, 68,128, 31, 0, 16, 47,128, 0, 0,
|
/* 0x0d40 */ 128, 31, 0, 76,124, 0, 72, 80,144, 31, 0, 68,128, 31, 0, 16,
|
||||||
/* 0x0d50 */ 65,158, 0,120,128,127, 0, 68,128,159, 0, 64, 56,160, 0, 3,
|
/* 0x0d50 */ 47,128, 0, 0, 65,158, 0,120,128,127, 0, 68,128,159, 0, 64,
|
||||||
/* 0x0d60 */ 56,192, 0, 50, 56,224,255,255, 57, 0, 0, 0, 75,255,245, 65,
|
/* 0x0d60 */ 56,160, 0, 3, 56,192, 0, 50, 56,224,255,255, 57, 0, 0, 0,
|
||||||
/* 0x0d70 */ 124, 96, 27,120,129, 63, 0, 68,127,128, 72, 0, 65,158, 0, 8,
|
/* 0x0d70 */ 75,255,245, 81,124, 96, 27,120,129, 63, 0, 68,127,128, 72, 0,
|
||||||
/* 0x0d80 */ 72, 0, 1, 32, 56, 31, 0, 56,144, 31, 0, 88,128, 31, 0, 48,
|
/* 0x0d80 */ 65,158, 0, 8, 72, 0, 1, 32, 56, 31, 0, 56,144, 31, 0, 88,
|
||||||
/* 0x0d90 */ 84, 0, 7,122, 47,128, 0, 0, 65,158, 0, 16,128, 31, 0, 28,
|
/* 0x0d90 */ 128, 31, 0, 48, 84, 0, 7,122, 47,128, 0, 0, 65,158, 0, 16,
|
||||||
/* 0x0da0 */ 144, 31, 0, 92, 72, 0, 0, 12, 56, 0, 0, 0,144, 31, 0, 92,
|
/* 0x0da0 */ 128, 31, 0, 28,144, 31, 0, 92, 72, 0, 0, 12, 56, 0, 0, 0,
|
||||||
/* 0x0db0 */ 128,127, 0, 16,128,159, 0, 88,128,191, 0, 8,128,223, 0, 92,
|
/* 0x0db0 */ 144, 31, 0, 92,128,127, 0, 16,128,159, 0, 88,128,191, 0, 8,
|
||||||
/* 0x0dc0 */ 75,255,246, 57, 72, 0, 0, 68,129, 63, 0, 36,129, 41, 0, 4,
|
/* 0x0dc0 */ 128,223, 0, 92, 75,255,246, 73, 72, 0, 0, 68,129, 63, 0, 36,
|
||||||
/* 0x0dd0 */ 128, 31, 0, 76,124, 0, 72, 80,128,127, 0, 68,128,159, 0, 64,
|
/* 0x0dd0 */ 129, 41, 0, 4,128, 31, 0, 76,124, 0, 72, 80,128,127, 0, 68,
|
||||||
/* 0x0de0 */ 128,191, 0, 48, 56,192, 0, 18,128,255, 0, 8,124, 8, 3,120,
|
/* 0x0de0 */ 128,159, 0, 64,128,191, 0, 48, 56,192, 0, 18,128,255, 0, 8,
|
||||||
/* 0x0df0 */ 75,255,244,189,124,105, 27,120,128, 31, 0, 68,127,137, 0, 0,
|
/* 0x0df0 */ 124, 8, 3,120, 75,255,244,205,124,105, 27,120,128, 31, 0, 68,
|
||||||
/* 0x0e00 */ 65,158, 0, 8, 72, 0, 0,156,128, 31, 0, 64,125, 32, 0,208,
|
/* 0x0e00 */ 127,137, 0, 0, 65,158, 0, 8, 72, 0, 0,156,128, 31, 0, 64,
|
||||||
/* 0x0e10 */ 128, 31, 0, 32,125, 32, 0, 56,144, 31, 0, 76,128, 31, 0, 48,
|
/* 0x0e10 */ 125, 32, 0,208,128, 31, 0, 32,125, 32, 0, 56,144, 31, 0, 76,
|
||||||
/* 0x0e20 */ 84, 0, 7,188, 47,128, 0, 0, 65,158, 0, 28,128, 31, 0, 68,
|
/* 0x0e20 */ 128, 31, 0, 48, 84, 0, 7,188, 47,128, 0, 0, 65,158, 0, 28,
|
||||||
/* 0x0e30 */ 129, 63, 0, 64,124, 0, 74, 20,124, 3, 3,120,128,159, 0, 76,
|
/* 0x0e30 */ 128, 31, 0, 68,129, 63, 0, 64,124, 0, 74, 20,124, 3, 3,120,
|
||||||
/* 0x0e40 */ 75,255,249,105,128, 31, 0, 16, 47,128, 0, 0, 65,158, 0, 92,
|
/* 0x0e40 */ 128,159, 0, 76, 75,255,249,121,128, 31, 0, 16, 47,128, 0, 0,
|
||||||
/* 0x0e50 */ 128,127, 0, 36,128,159, 0, 44,128,191, 0, 32, 75,255,247,201,
|
/* 0x0e50 */ 65,158, 0, 92,128,127, 0, 36,128,159, 0, 44,128,191, 0, 32,
|
||||||
/* 0x0e60 */ 124, 96, 27,120,144, 31, 0, 80,128, 31, 0, 80, 47,128, 0, 0,
|
/* 0x0e60 */ 75,255,247,217,124, 96, 27,120,144, 31, 0, 80,128, 31, 0, 80,
|
||||||
/* 0x0e70 */ 65,158, 0, 20,128,127, 0, 20, 56,128, 0, 0,128,191, 0, 80,
|
/* 0x0e70 */ 47,128, 0, 0, 65,158, 0, 20,128,127, 0, 20, 56,128, 0, 0,
|
||||||
/* 0x0e80 */ 75,255,249,137,128,127, 0, 68,128,159, 0, 64,128,191, 0, 48,
|
/* 0x0e80 */ 128,191, 0, 80, 75,255,249,153,128,127, 0, 68,128,159, 0, 64,
|
||||||
/* 0x0e90 */ 75,255,244, 9,124, 96, 27,120, 47,128, 0, 0, 65,158, 0, 12,
|
/* 0x0e90 */ 128,191, 0, 48, 75,255,244, 25,124, 96, 27,120, 47,128, 0, 0,
|
||||||
/* 0x0ea0 */ 56, 96, 0,127, 75,255,244, 29,129, 63, 0, 64,128, 31, 0, 76,
|
/* 0x0ea0 */ 65,158, 0, 12, 56, 96, 0,127, 75,255,244, 45,129, 63, 0, 64,
|
||||||
/* 0x0eb0 */ 125, 41, 2, 20,128, 31, 0, 68,124, 0, 74, 20,144, 31, 0, 68,
|
/* 0x0eb0 */ 128, 31, 0, 76,125, 41, 2, 20,128, 31, 0, 68,124, 0, 74, 20,
|
||||||
/* 0x0ec0 */ 129, 63, 0, 68,128, 31, 0, 72,127,137, 0, 64, 64,156, 0, 64,
|
/* 0x0ec0 */ 144, 31, 0, 68,129, 63, 0, 68,128, 31, 0, 72,127,137, 0, 64,
|
||||||
/* 0x0ed0 */ 129, 63, 0, 72,128, 31, 0, 68,124, 0, 72, 80,128,127, 0, 68,
|
/* 0x0ed0 */ 64,156, 0, 64,129, 63, 0, 72,128, 31, 0, 68,124, 0, 72, 80,
|
||||||
/* 0x0ee0 */ 124, 4, 3,120,128,191, 0, 48, 56,192, 0, 50, 56,224,255,255,
|
/* 0x0ee0 */ 128,127, 0, 68,124, 4, 3,120,128,191, 0, 48, 56,192, 0, 50,
|
||||||
/* 0x0ef0 */ 57, 0, 0, 0, 75,255,243,185,124,105, 27,120,128, 31, 0, 68,
|
/* 0x0ef0 */ 56,224,255,255, 57, 0, 0, 0, 75,255,243,201,124,105, 27,120,
|
||||||
/* 0x0f00 */ 127,137, 0, 0, 65,158, 0, 8, 72, 0, 0, 0,129, 63, 0, 36,
|
/* 0x0f00 */ 128, 31, 0, 68,127,137, 0, 0, 65,158, 0, 8, 72, 0, 0, 0,
|
||||||
/* 0x0f10 */ 56, 9, 0, 32,144, 31, 0, 36,129, 63, 0, 52, 56, 9, 0, 1,
|
/* 0x0f10 */ 129, 63, 0, 36, 56, 9, 0, 32,144, 31, 0, 36,129, 63, 0, 52,
|
||||||
/* 0x0f20 */ 144, 31, 0, 52, 75,255,252,156,128, 31, 0, 24, 47,128, 0, 0,
|
/* 0x0f20 */ 56, 9, 0, 1,144, 31, 0, 52, 75,255,252,156,128, 31, 0, 24,
|
||||||
/* 0x0f30 */ 65,158, 0, 16,129, 63, 0, 24,128, 31, 0, 44,144, 9, 0, 0,
|
/* 0x0f30 */ 47,128, 0, 0, 65,158, 0, 16,129, 63, 0, 24,128, 31, 0, 44,
|
||||||
/* 0x0f40 */ 129, 63, 0, 12,129, 41, 0, 24,128, 31, 0, 44,124, 9, 2, 20,
|
/* 0x0f40 */ 144, 9, 0, 0,129, 63, 0, 12,129, 41, 0, 24,128, 31, 0, 44,
|
||||||
/* 0x0f50 */ 124, 3, 3,120,129, 97, 0, 0,128, 11, 0, 4,124, 8, 3,166,
|
/* 0x0f50 */ 124, 9, 2, 20,124, 3, 3,120,129, 97, 0, 0,128, 11, 0, 4,
|
||||||
/* 0x0f60 */ 131,235,255,252,125, 97, 91,120, 78,128, 0, 32,148, 33,255,160,
|
/* 0x0f60 */ 124, 8, 3,166,131,235,255,252,125, 97, 91,120, 78,128, 0, 32,
|
||||||
/* 0x0f70 */ 124, 8, 2,166,147,225, 0, 92,144, 1, 0,100,124, 63, 11,120,
|
/* 0x0f70 */ 148, 33,255,160,124, 8, 2,166,147,225, 0, 92,144, 1, 0,100,
|
||||||
/* 0x0f80 */ 144,127, 0, 8,144,159, 0, 12,144,191, 0, 16,144,223, 0, 20,
|
/* 0x0f80 */ 124, 63, 11,120,144,127, 0, 8,144,159, 0, 12,144,191, 0, 16,
|
||||||
/* 0x0f90 */ 144,255, 0, 24,145, 31, 0, 28,145, 63, 0, 32,129, 63, 0, 8,
|
/* 0x0f90 */ 144,223, 0, 20,144,255, 0, 24,145, 31, 0, 28,145, 63, 0, 32,
|
||||||
/* 0x0fa0 */ 129, 41, 0, 4, 56, 9, 0, 12,144, 31, 0, 36,128, 31, 0, 16,
|
/* 0x0fa0 */ 129, 63, 0, 8,129, 41, 0, 4, 56, 9, 0, 12,144, 31, 0, 36,
|
||||||
/* 0x0fb0 */ 144, 31, 0, 44,129, 63, 0, 8,128, 9, 0, 0,144, 31, 0, 40,
|
/* 0x0fb0 */ 128, 31, 0, 16,144, 31, 0, 44,129, 63, 0, 8,128, 9, 0, 0,
|
||||||
/* 0x0fc0 */ 128, 31, 0, 8,144, 31, 0, 52,128, 31, 0, 12,144, 31, 0, 48,
|
/* 0x0fc0 */ 144, 31, 0, 40,128, 31, 0, 8,144, 31, 0, 52,128, 31, 0, 12,
|
||||||
/* 0x0fd0 */ 56, 31, 0, 48, 57, 63, 0, 40,124, 3, 3,120,125, 36, 75,120,
|
/* 0x0fd0 */ 144, 31, 0, 48, 56, 31, 0, 48, 57, 63, 0, 40,124, 3, 3,120,
|
||||||
/* 0x0fe0 */ 128,191, 0, 24, 56,192, 0, 0, 75,255,244, 17,129, 63, 0, 52,
|
/* 0x0fe0 */ 125, 36, 75,120,128,191, 0, 24, 56,192, 0, 0, 75,255,244, 33,
|
||||||
/* 0x0ff0 */ 128, 31, 0, 36,124, 0, 72, 80,144, 31, 0, 52,128, 31, 0, 12,
|
/* 0x0ff0 */ 129, 63, 0, 52,128, 31, 0, 36,124, 0, 72, 80,144, 31, 0, 52,
|
||||||
/* 0x1000 */ 144, 31, 0, 48,128, 31, 0, 32,144, 31, 0, 56,129, 63, 0, 16,
|
/* 0x1000 */ 128, 31, 0, 12,144, 31, 0, 48,128, 31, 0, 32,144, 31, 0, 56,
|
||||||
/* 0x1010 */ 56, 9, 0, 52,144, 31, 0, 60, 56, 31, 0, 48, 57, 63, 0, 56,
|
/* 0x1010 */ 129, 63, 0, 16, 56, 9, 0, 52,144, 31, 0, 60, 56, 31, 0, 48,
|
||||||
/* 0x1020 */ 128,127, 0, 24,128,159, 0, 16,124, 5, 3,120,128,223, 0, 20,
|
/* 0x1020 */ 57, 63, 0, 56,128,127, 0, 24,128,159, 0, 16,124, 5, 3,120,
|
||||||
/* 0x1030 */ 125, 39, 75,120,129, 31, 0, 28, 75,255,250, 73,124, 96, 27,120,
|
/* 0x1030 */ 128,223, 0, 20,125, 39, 75,120,129, 31, 0, 28, 75,255,250, 89,
|
||||||
/* 0x1040 */ 144, 31, 0, 64,128,127, 0, 20, 56,128, 0, 9,128,191, 0, 64,
|
/* 0x1040 */ 124, 96, 27,120,144, 31, 0, 64,128,127, 0, 20, 56,128, 0, 9,
|
||||||
/* 0x1050 */ 75,255,247,185, 56, 0, 0, 0,144, 31, 0, 68,129, 63, 0, 16,
|
/* 0x1050 */ 128,191, 0, 64, 75,255,247,201, 56, 0, 0, 0,144, 31, 0, 68,
|
||||||
/* 0x1060 */ 56, 9, 0, 52,144, 31, 0, 60,129, 63, 0, 16,160, 9, 0, 44,
|
/* 0x1060 */ 129, 63, 0, 16, 56, 9, 0, 52,144, 31, 0, 60,129, 63, 0, 16,
|
||||||
/* 0x1070 */ 84, 9, 4, 62,128, 31, 0, 68,127,137, 0, 0, 64,157, 0,208,
|
/* 0x1070 */ 160, 9, 0, 44, 84, 9, 4, 62,128, 31, 0, 68,127,137, 0, 0,
|
||||||
/* 0x1080 */ 129, 63, 0, 60,128, 9, 0, 0, 47,128, 0, 3, 64,158, 0,164,
|
/* 0x1080 */ 64,157, 0,208,129, 63, 0, 60,128, 9, 0, 0, 47,128, 0, 3,
|
||||||
/* 0x1090 */ 129, 63, 0, 60,129, 41, 0, 8,128, 31, 0, 56,124, 9, 2, 20,
|
/* 0x1090 */ 64,158, 0,164,129, 63, 0, 60,129, 41, 0, 8,128, 31, 0, 56,
|
||||||
/* 0x10a0 */ 124, 3, 3,120, 56,128, 0, 0, 56,160, 0, 0, 75,255,242, 61,
|
/* 0x10a0 */ 124, 9, 2, 20,124, 3, 3,120, 56,128, 0, 0, 56,160, 0, 0,
|
||||||
/* 0x10b0 */ 124, 96, 27,120,144, 31, 0, 72,128, 31, 0, 72, 47,128, 0, 0,
|
/* 0x10b0 */ 75,255,242, 77,124, 96, 27,120,144, 31, 0, 72,128, 31, 0, 72,
|
||||||
/* 0x10c0 */ 64,156, 0, 8, 72, 0, 0, 32,128,127, 0, 72,128,159, 0, 16,
|
/* 0x10c0 */ 47,128, 0, 0, 64,156, 0, 8, 72, 0, 0, 32,128,127, 0, 72,
|
||||||
/* 0x10d0 */ 56,160, 2, 0, 75,255,242, 13,124, 96, 27,120, 47,128, 2, 0,
|
/* 0x10d0 */ 128,159, 0, 16, 56,160, 2, 0, 75,255,242, 29,124, 96, 27,120,
|
||||||
/* 0x10e0 */ 65,158, 0, 12, 56, 96, 0,127, 75,255,241,217, 56, 31, 0, 56,
|
/* 0x10e0 */ 47,128, 2, 0, 65,158, 0, 12, 56, 96, 0,127, 75,255,241,233,
|
||||||
/* 0x10f0 */ 128,127, 0, 72,128,159, 0, 16, 56,160, 0, 0,128,223, 0, 20,
|
/* 0x10f0 */ 56, 31, 0, 56,128,127, 0, 72,128,159, 0, 16, 56,160, 0, 0,
|
||||||
/* 0x1100 */ 124, 7, 3,120, 57, 0, 0, 0, 75,255,249,121,124, 96, 27,120,
|
/* 0x1100 */ 128,223, 0, 20,124, 7, 3,120, 57, 0, 0, 0, 75,255,249,137,
|
||||||
/* 0x1110 */ 144, 31, 0, 64,128,127, 0, 20, 56,128, 0, 7,128,191, 0, 56,
|
/* 0x1110 */ 124, 96, 27,120,144, 31, 0, 64,128,127, 0, 20, 56,128, 0, 7,
|
||||||
/* 0x1120 */ 75,255,246,233,128,127, 0, 72, 75,255,241,201, 72, 0, 0, 32,
|
/* 0x1120 */ 128,191, 0, 56, 75,255,246,249,128,127, 0, 72, 75,255,241,217,
|
||||||
/* 0x1130 */ 129, 63, 0, 60, 56, 9, 0, 32,144, 31, 0, 60,129, 63, 0, 68,
|
/* 0x1130 */ 72, 0, 0, 32,129, 63, 0, 60, 56, 9, 0, 32,144, 31, 0, 60,
|
||||||
/* 0x1140 */ 56, 9, 0, 1,144, 31, 0, 68, 75,255,255, 32,128, 31, 0, 64,
|
/* 0x1140 */ 129, 63, 0, 68, 56, 9, 0, 1,144, 31, 0, 68, 75,255,255, 32,
|
||||||
/* 0x1150 */ 124, 3, 3,120,129, 97, 0, 0,128, 11, 0, 4,124, 8, 3,166,
|
/* 0x1150 */ 128, 31, 0, 64,124, 3, 3,120,129, 97, 0, 0,128, 11, 0, 4,
|
||||||
/* 0x1160 */ 131,235,255,252,125, 97, 91,120, 78,128, 0, 32
|
/* 0x1160 */ 124, 8, 3,166,131,235,255,252,125, 97, 91,120, 78,128, 0, 32
|
||||||
};
|
};
|
||||||
|
|||||||
Generated
+521
-520
File diff suppressed because it is too large
Load Diff
Generated
+617
-618
File diff suppressed because it is too large
Load Diff
Generated
+577
-577
File diff suppressed because it is too large
Load Diff
Generated
+634
-634
File diff suppressed because it is too large
Load Diff
Generated
+615
-616
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user