unset shellHook
nix_saved_PATH="$PATH"
AR=ar
export AR
AS=as
export AS
BASH=/nix/store/f7jzmxq9bpbxsg69cszx56mw14n115n5-bash-4.4-p23/bin/bash
CC=gcc
export CC
CONFIG_SHELL=/nix/store/f7jzmxq9bpbxsg69cszx56mw14n115n5-bash-4.4-p23/bin/bash
export CONFIG_SHELL
CXX=g++
export CXX
DIRSTACK=()
GROUPS=()
HOSTTYPE=x86_64
HOST_PATH=/nix/store/w21pgi6691202iafl0cnr7hk6wvvdz3n-coreutils-8.32/bin:/nix/store/70qfzyc5hmvssj7d0dqkqhn827xwgmy3-findutils-4.7.0/bin:/nix/store/49gllxpk2f3dcyx4q8cgj0w39p10s209-diffutils-3.7/bin:/nix/store/n0516fv7vwjbl41nl4q58w9si80ab93i-gnused-4.8/bin:/nix/store/3mx947xcmsyk79izqc8ifv31qafp80pc-gnugrep-3.6/bin:/nix/store/xj242al7hq36baipvj2qdfwf7dljq31f-gawk-5.1.0/bin:/nix/store/39qygzkhcb9i684w3fhr2kkz5gmcyycd-gnutar-1.32/bin:/nix/store/bnpadh78k2qf3hshwapl5s51dj87yykp-gzip-1.10/bin:/nix/store/k514dbajcp0wb32rnglvc940gldj549h-bzip2-1.0.6.0.1-bin/bin:/nix/store/a2q8136fwwkvigxq3icyd70zllvw45lc-gnumake-4.3/bin:/nix/store/f7jzmxq9bpbxsg69cszx56mw14n115n5-bash-4.4-p23/bin:/nix/store/kh9l9zpjxsdnx6zi91pk3yich8ivwii4-patch-2.7.6/bin:/nix/store/bap20qjfwfzl49zz11prqdyfdmq7w8ca-xz-5.2.5-bin/bin
export HOST_PATH
IFS=$' \t\n'
IN_NIX_SHELL=impure
export IN_NIX_SHELL
LD=ld
export LD
MACHTYPE=x86_64-unknown-linux-gnu
NIX_BINTOOLS=/nix/store/jlyaypckqlapwqpck7jscs6qcdwg9bk3-binutils-wrapper-2.35.1
export NIX_BINTOOLS
NIX_BINTOOLS_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu=1
export NIX_BINTOOLS_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu
NIX_BUILD_CORES=8
export NIX_BUILD_CORES
NIX_CC=/nix/store/ca37d3qrydh0wpw40kswsx30j8dyzxh2-gcc-wrapper-10.2.0
export NIX_CC
NIX_CC_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu=1
export NIX_CC_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu
NIX_CFLAGS_COMPILE=' -frandom-seed=y5cpm1iv6q -isystem /nix/store/gkqv9ia81dmmjqcn46ih5yirbzjy7s9p-SDL2-2.0.14-dev/include -isystem /nix/store/5sphs39wg8gyy5pcrcml5pyj1wrn9jil-libGL-1.3.2-dev/include -isystem /nix/store/skwk7hmzwpjvhgjf1y633l01p114xc6n-libglvnd-1.3.2-dev/include -isystem /nix/store/3y6j0k82fdp3ifnq655yv1ad1ih7r70j-libX11-1.7.0-dev/include -isystem /nix/store/vjimy2jlifszmmms664373jdw0yiz4ln-xorgproto-2020.1/include -isystem /nix/store/6xg7mhwh2k7i27r44lx679diwd7ahq6d-libxcb-1.14-dev/include -isystem /nix/store/qx325fjgyhy5cql0fkbkzzbi9dpd2cb8-SDL2_ttf-2.0.15/include -isystem /nix/store/gkqv9ia81dmmjqcn46ih5yirbzjy7s9p-SDL2-2.0.14-dev/include -isystem /nix/store/5sphs39wg8gyy5pcrcml5pyj1wrn9jil-libGL-1.3.2-dev/include -isystem /nix/store/skwk7hmzwpjvhgjf1y633l01p114xc6n-libglvnd-1.3.2-dev/include -isystem /nix/store/3y6j0k82fdp3ifnq655yv1ad1ih7r70j-libX11-1.7.0-dev/include -isystem /nix/store/vjimy2jlifszmmms664373jdw0yiz4ln-xorgproto-2020.1/include -isystem /nix/store/6xg7mhwh2k7i27r44lx679diwd7ahq6d-libxcb-1.14-dev/include -isystem /nix/store/qx325fjgyhy5cql0fkbkzzbi9dpd2cb8-SDL2_ttf-2.0.15/include'
export NIX_CFLAGS_COMPILE
NIX_ENFORCE_NO_NATIVE=1
export NIX_ENFORCE_NO_NATIVE
NIX_HARDENING_ENABLE='fortify stackprotector pic strictoverflow format relro bindnow'
export NIX_HARDENING_ENABLE
NIX_INDENT_MAKE=1
export NIX_INDENT_MAKE
NIX_LDFLAGS='-rpath /home/np/code/rust/sdl-tests/outputs/out/lib64 -rpath /home/np/code/rust/sdl-tests/outputs/out/lib  -L/nix/store/dqrvwdcqz93xcvazd19hi6w06n4l9bq1-rust-1.53.0-nightly-2021-03-30-74874a690/lib -L/nix/store/q47zvd16rpppdz4ami7wrx8318fwjpfk-libGL-1.3.2/lib -L/nix/store/sv2xsv21136linyi477ijd00gmihlwbp-libglvnd-1.3.2/lib -L/nix/store/jmpwz53zajcld1xb8zslh8g8p19d8wzl-libxcb-1.14/lib -L/nix/store/80p7f1sw4szy7w1mhqxd268n6i1gmybs-libX11-1.7.0/lib -L/nix/store/k58g6biziz8vpk6zw5n9bym2c6wxjrpd-SDL2-2.0.14/lib -L/nix/store/qx325fjgyhy5cql0fkbkzzbi9dpd2cb8-SDL2_ttf-2.0.15/lib -L/nix/store/dqrvwdcqz93xcvazd19hi6w06n4l9bq1-rust-1.53.0-nightly-2021-03-30-74874a690/lib -L/nix/store/q47zvd16rpppdz4ami7wrx8318fwjpfk-libGL-1.3.2/lib -L/nix/store/sv2xsv21136linyi477ijd00gmihlwbp-libglvnd-1.3.2/lib -L/nix/store/jmpwz53zajcld1xb8zslh8g8p19d8wzl-libxcb-1.14/lib -L/nix/store/80p7f1sw4szy7w1mhqxd268n6i1gmybs-libX11-1.7.0/lib -L/nix/store/k58g6biziz8vpk6zw5n9bym2c6wxjrpd-SDL2-2.0.14/lib -L/nix/store/qx325fjgyhy5cql0fkbkzzbi9dpd2cb8-SDL2_ttf-2.0.15/lib'
export NIX_LDFLAGS
NIX_LIB64_IN_SELF_RPATH=1
NIX_NO_SELF_RPATH=1
NIX_STORE=/nix/store
export NIX_STORE
NM=nm
export NM
OBJCOPY=objcopy
export OBJCOPY
OBJDUMP=objdump
export OBJDUMP
OPTERR=1
OPTIND=1
OSTYPE=linux-gnu
PATH=/nix/store/dqrvwdcqz93xcvazd19hi6w06n4l9bq1-rust-1.53.0-nightly-2021-03-30-74874a690/bin:/nix/store/hpkjc41idlbwk82cnx0sw8mmkjjb5lvi-rust-analyzer-unstable-2021-03-01/bin:/nix/store/2h05zs2wbxv3zisz342k6acfm6awcnwl-cargo-1.49.0/bin:/nix/store/gkqv9ia81dmmjqcn46ih5yirbzjy7s9p-SDL2-2.0.14-dev/bin:/nix/store/zrh1cskgv6kc8bh7hzfii14h2nck33qv-patchelf-0.12/bin:/nix/store/ca37d3qrydh0wpw40kswsx30j8dyzxh2-gcc-wrapper-10.2.0/bin:/nix/store/sr0ci8f8pgby77fj4mpcl9bcgxji3676-gcc-10.2.0/bin:/nix/store/mbxi7rhg9pj2mfnzr7dk9cd46xdhnrf9-glibc-2.32-37-bin/bin:/nix/store/w21pgi6691202iafl0cnr7hk6wvvdz3n-coreutils-8.32/bin:/nix/store/jlyaypckqlapwqpck7jscs6qcdwg9bk3-binutils-wrapper-2.35.1/bin:/nix/store/cp1sa3xxvl71cypiinw2c62i5s33chlr-binutils-2.35.1/bin:/nix/store/mbxi7rhg9pj2mfnzr7dk9cd46xdhnrf9-glibc-2.32-37-bin/bin:/nix/store/w21pgi6691202iafl0cnr7hk6wvvdz3n-coreutils-8.32/bin:/nix/store/w21pgi6691202iafl0cnr7hk6wvvdz3n-coreutils-8.32/bin:/nix/store/70qfzyc5hmvssj7d0dqkqhn827xwgmy3-findutils-4.7.0/bin:/nix/store/49gllxpk2f3dcyx4q8cgj0w39p10s209-diffutils-3.7/bin:/nix/store/n0516fv7vwjbl41nl4q58w9si80ab93i-gnused-4.8/bin:/nix/store/3mx947xcmsyk79izqc8ifv31qafp80pc-gnugrep-3.6/bin:/nix/store/xj242al7hq36baipvj2qdfwf7dljq31f-gawk-5.1.0/bin:/nix/store/39qygzkhcb9i684w3fhr2kkz5gmcyycd-gnutar-1.32/bin:/nix/store/bnpadh78k2qf3hshwapl5s51dj87yykp-gzip-1.10/bin:/nix/store/k514dbajcp0wb32rnglvc940gldj549h-bzip2-1.0.6.0.1-bin/bin:/nix/store/a2q8136fwwkvigxq3icyd70zllvw45lc-gnumake-4.3/bin:/nix/store/f7jzmxq9bpbxsg69cszx56mw14n115n5-bash-4.4-p23/bin:/nix/store/kh9l9zpjxsdnx6zi91pk3yich8ivwii4-patch-2.7.6/bin:/nix/store/bap20qjfwfzl49zz11prqdyfdmq7w8ca-xz-5.2.5-bin/bin
export PATH
PIPESTATUS=([0]="0")
PS4='+ '
RANLIB=ranlib
export RANLIB
READELF=readelf
export READELF
RUST_BACKTRACE=1
export RUST_BACKTRACE
RUST_LOG=info
export RUST_LOG
RUST_SRC_PATH=/nix/store/wfv522w143y3yxx8ap3fkpjk9cnh1w3a-rust-lib-src
export RUST_SRC_PATH
SDL2_PATH='/nix/store/gkqv9ia81dmmjqcn46ih5yirbzjy7s9p-SDL2-2.0.14-dev/include/SDL2 /nix/store/qx325fjgyhy5cql0fkbkzzbi9dpd2cb8-SDL2_ttf-2.0.15/include/SDL2 /nix/store/gkqv9ia81dmmjqcn46ih5yirbzjy7s9p-SDL2-2.0.14-dev/include/SDL2 /nix/store/qx325fjgyhy5cql0fkbkzzbi9dpd2cb8-SDL2_ttf-2.0.15/include/SDL2 /nix/store/gkqv9ia81dmmjqcn46ih5yirbzjy7s9p-SDL2-2.0.14-dev/include/SDL2 /nix/store/qx325fjgyhy5cql0fkbkzzbi9dpd2cb8-SDL2_ttf-2.0.15/include/SDL2'
export SDL2_PATH
SHELL=/nix/store/f7jzmxq9bpbxsg69cszx56mw14n115n5-bash-4.4-p23/bin/bash
export SHELL
SIZE=size
export SIZE
SOURCE_DATE_EPOCH=315532800
export SOURCE_DATE_EPOCH
STRINGS=strings
export STRINGS
STRIP=strip
export STRIP
XDG_DATA_DIRS=/nix/store/dqrvwdcqz93xcvazd19hi6w06n4l9bq1-rust-1.53.0-nightly-2021-03-30-74874a690/share:/nix/store/2h05zs2wbxv3zisz342k6acfm6awcnwl-cargo-1.49.0/share:/nix/store/gkqv9ia81dmmjqcn46ih5yirbzjy7s9p-SDL2-2.0.14-dev/share:/nix/store/vjimy2jlifszmmms664373jdw0yiz4ln-xorgproto-2020.1/share:/nix/store/80p7f1sw4szy7w1mhqxd268n6i1gmybs-libX11-1.7.0/share:/nix/store/zrh1cskgv6kc8bh7hzfii14h2nck33qv-patchelf-0.12/share
export XDG_DATA_DIRS
_=export
buildInputs=
export buildInputs
builder=/nix/store/f7jzmxq9bpbxsg69cszx56mw14n115n5-bash-4.4-p23/bin/bash
export builder
commonStripFlags=--enable-deterministic-archives
configureFlags=
export configureFlags
defaultBuildInputs=
defaultNativeBuildInputs='/nix/store/zrh1cskgv6kc8bh7hzfii14h2nck33qv-patchelf-0.12 /nix/store/mjjy30kxz775bhhi6j9phw81qh6dsbrf-move-docs.sh /nix/store/kxw6q8v6isaqjm702d71n2421cxamq68-make-symlinks-relative.sh /nix/store/cl3qd985p1yxyfkj96v0hqxiy3w69xq5-compress-man-pages.sh /nix/store/h54dzwd7rdh2jlcv91424csl6d0ccgjy-strip.sh /nix/store/bnj8d7mvbkg3vdb07yz74yhl3g107qq5-patch-shebangs.sh /nix/store/cickvswrvann041nqxb0rxilc46svw1n-prune-libtool-files.sh /nix/store/8zxndz5ag0p6s526c2xyllhk1nrn4c3i-audit-tmpdir.sh /nix/store/c8n9kcdddp9np665xz6ri61b383nxvz8-move-systemd-user-units.sh /nix/store/1i5y55x4b4m9qkx5dqbmr1r6bvrqbanw-multiple-outputs.sh /nix/store/kd4xwxjpjxi71jkm6ka0np72if9rm3y0-move-sbin.sh /nix/store/fyaryjvghbkpfnsyw97hb3lyb37s1pd6-move-lib64.sh /nix/store/ngg1cv31c8c7bcm2n8ww4g06nq7s4zhm-set-source-date-epoch-to-latest.sh /nix/store/pr6nzbscdpg94yvr151lrif2kg0csx7b-reproducible-builds.sh /nix/store/ca37d3qrydh0wpw40kswsx30j8dyzxh2-gcc-wrapper-10.2.0'
depsBuildBuild=
export depsBuildBuild
depsBuildBuildPropagated=
export depsBuildBuildPropagated
depsBuildTarget=
export depsBuildTarget
depsBuildTargetPropagated=
export depsBuildTargetPropagated
depsHostHost=
export depsHostHost
depsHostHostPropagated=
export depsHostHostPropagated
depsTargetTarget=
export depsTargetTarget
depsTargetTargetPropagated=
export depsTargetTargetPropagated
doCheck=
export doCheck
doInstallCheck=
export doInstallCheck
dontAddDisableDepTrack=1
export dontAddDisableDepTrack
envBuildBuildHooks=([0]="addSDL2Path")
envBuildHostHooks=([0]="addSDL2Path")
envBuildTargetHooks=([0]="addSDL2Path")
envHostHostHooks=([0]="ccWrapper_addCVars" [1]="bintoolsWrapper_addLDVars")
envHostTargetHooks=([0]="ccWrapper_addCVars" [1]="bintoolsWrapper_addLDVars")
fixupOutputHooks=([0]="if [ -z \"\${dontPatchELF-}\" ]; then patchELF \"\$prefix\"; fi" [1]="_makeSymlinksRelative" [2]="if [ -z \"\${dontGzipMan-}\" ]; then compressManPages \"\$prefix\"; fi" [3]="_doStrip" [4]="patchShebangsAuto" [5]="_pruneLibtoolFiles" [6]="if [[ -z \"\${noAuditTmpdir-}\" && -e \"\$prefix\" ]]; then auditTmpdir \"\$prefix\"; fi" [7]="_moveSystemdUserUnits" [8]="_moveSbin" [9]="_moveLib64")
initialPath='/nix/store/w21pgi6691202iafl0cnr7hk6wvvdz3n-coreutils-8.32 /nix/store/70qfzyc5hmvssj7d0dqkqhn827xwgmy3-findutils-4.7.0 /nix/store/49gllxpk2f3dcyx4q8cgj0w39p10s209-diffutils-3.7 /nix/store/n0516fv7vwjbl41nl4q58w9si80ab93i-gnused-4.8 /nix/store/3mx947xcmsyk79izqc8ifv31qafp80pc-gnugrep-3.6 /nix/store/xj242al7hq36baipvj2qdfwf7dljq31f-gawk-5.1.0 /nix/store/39qygzkhcb9i684w3fhr2kkz5gmcyycd-gnutar-1.32 /nix/store/bnpadh78k2qf3hshwapl5s51dj87yykp-gzip-1.10 /nix/store/k514dbajcp0wb32rnglvc940gldj549h-bzip2-1.0.6.0.1-bin /nix/store/a2q8136fwwkvigxq3icyd70zllvw45lc-gnumake-4.3 /nix/store/f7jzmxq9bpbxsg69cszx56mw14n115n5-bash-4.4-p23 /nix/store/kh9l9zpjxsdnx6zi91pk3yich8ivwii4-patch-2.7.6 /nix/store/bap20qjfwfzl49zz11prqdyfdmq7w8ca-xz-5.2.5-bin'
name=nix-shell
export name
nativeBuildInputs='/nix/store/dqrvwdcqz93xcvazd19hi6w06n4l9bq1-rust-1.53.0-nightly-2021-03-30-74874a690 /nix/store/znf8wv5xxzrbq7jq0bxmjxsimgnbxnn8-rust-src-1.53.0-nightly-2021-03-30-74874a690 /nix/store/hpkjc41idlbwk82cnx0sw8mmkjjb5lvi-rust-analyzer-unstable-2021-03-01 /nix/store/2h05zs2wbxv3zisz342k6acfm6awcnwl-cargo-1.49.0 /nix/store/gkqv9ia81dmmjqcn46ih5yirbzjy7s9p-SDL2-2.0.14-dev /nix/store/qx325fjgyhy5cql0fkbkzzbi9dpd2cb8-SDL2_ttf-2.0.15'
export nativeBuildInputs
nobuildPhase=$'echo\necho "This derivation is not meant to be built, aborting";\necho\nexit 1\n'
export nobuildPhase
out=/home/np/code/rust/sdl-tests/outputs/out
export out
outputBin=out
outputDev=out
outputDevdoc=REMOVE
outputDevman=out
outputDoc=out
outputInclude=out
outputInfo=out
outputLib=out
outputMan=out
outputs=out
export outputs
patches=
export patches
phases=nobuildPhase
export phases
pkg=/nix/store/ca37d3qrydh0wpw40kswsx30j8dyzxh2-gcc-wrapper-10.2.0
pkgsBuildHost=([0]="/nix/store/dqrvwdcqz93xcvazd19hi6w06n4l9bq1-rust-1.53.0-nightly-2021-03-30-74874a690" [1]="/nix/store/znf8wv5xxzrbq7jq0bxmjxsimgnbxnn8-rust-src-1.53.0-nightly-2021-03-30-74874a690" [2]="/nix/store/hpkjc41idlbwk82cnx0sw8mmkjjb5lvi-rust-analyzer-unstable-2021-03-01" [3]="/nix/store/2h05zs2wbxv3zisz342k6acfm6awcnwl-cargo-1.49.0" [4]="/nix/store/gkqv9ia81dmmjqcn46ih5yirbzjy7s9p-SDL2-2.0.14-dev" [5]="/nix/store/5sphs39wg8gyy5pcrcml5pyj1wrn9jil-libGL-1.3.2-dev" [6]="/nix/store/q47zvd16rpppdz4ami7wrx8318fwjpfk-libGL-1.3.2" [7]="/nix/store/sv2xsv21136linyi477ijd00gmihlwbp-libglvnd-1.3.2" [8]="/nix/store/skwk7hmzwpjvhgjf1y633l01p114xc6n-libglvnd-1.3.2-dev" [9]="/nix/store/3y6j0k82fdp3ifnq655yv1ad1ih7r70j-libX11-1.7.0-dev" [10]="/nix/store/vjimy2jlifszmmms664373jdw0yiz4ln-xorgproto-2020.1" [11]="/nix/store/6xg7mhwh2k7i27r44lx679diwd7ahq6d-libxcb-1.14-dev" [12]="/nix/store/jmpwz53zajcld1xb8zslh8g8p19d8wzl-libxcb-1.14" [13]="/nix/store/80p7f1sw4szy7w1mhqxd268n6i1gmybs-libX11-1.7.0" [14]="/nix/store/k58g6biziz8vpk6zw5n9bym2c6wxjrpd-SDL2-2.0.14" [15]="/nix/store/qx325fjgyhy5cql0fkbkzzbi9dpd2cb8-SDL2_ttf-2.0.15" [16]="/nix/store/zrh1cskgv6kc8bh7hzfii14h2nck33qv-patchelf-0.12" [17]="/nix/store/mjjy30kxz775bhhi6j9phw81qh6dsbrf-move-docs.sh" [18]="/nix/store/kxw6q8v6isaqjm702d71n2421cxamq68-make-symlinks-relative.sh" [19]="/nix/store/cl3qd985p1yxyfkj96v0hqxiy3w69xq5-compress-man-pages.sh" [20]="/nix/store/h54dzwd7rdh2jlcv91424csl6d0ccgjy-strip.sh" [21]="/nix/store/bnj8d7mvbkg3vdb07yz74yhl3g107qq5-patch-shebangs.sh" [22]="/nix/store/cickvswrvann041nqxb0rxilc46svw1n-prune-libtool-files.sh" [23]="/nix/store/8zxndz5ag0p6s526c2xyllhk1nrn4c3i-audit-tmpdir.sh" [24]="/nix/store/c8n9kcdddp9np665xz6ri61b383nxvz8-move-systemd-user-units.sh" [25]="/nix/store/1i5y55x4b4m9qkx5dqbmr1r6bvrqbanw-multiple-outputs.sh" [26]="/nix/store/kd4xwxjpjxi71jkm6ka0np72if9rm3y0-move-sbin.sh" [27]="/nix/store/fyaryjvghbkpfnsyw97hb3lyb37s1pd6-move-lib64.sh" [28]="/nix/store/ngg1cv31c8c7bcm2n8ww4g06nq7s4zhm-set-source-date-epoch-to-latest.sh" [29]="/nix/store/pr6nzbscdpg94yvr151lrif2kg0csx7b-reproducible-builds.sh" [30]="/nix/store/ca37d3qrydh0wpw40kswsx30j8dyzxh2-gcc-wrapper-10.2.0" [31]="/nix/store/jlyaypckqlapwqpck7jscs6qcdwg9bk3-binutils-wrapper-2.35.1")
postFixupHooks=([0]="_multioutPropagateDev")
postUnpackHooks=([0]="_updateSourceDateEpochFromSourceRoot")
preConfigureHooks=([0]="_multioutConfig")
preFixupHooks=([0]="_moveToShare" [1]="_multioutDocs" [2]="_multioutDevs")
prefix=/home/np/code/rust/sdl-tests/outputs/out
propagatedBuildDepFiles=([0]="propagated-build-build-deps" [1]="propagated-native-build-inputs" [2]="propagated-build-target-deps")
propagatedBuildInputs=
export propagatedBuildInputs
propagatedHostDepFiles=([0]="propagated-host-host-deps" [1]="propagated-build-inputs")
propagatedNativeBuildInputs=
export propagatedNativeBuildInputs
propagatedTargetDepFiles=([0]="propagated-target-target-deps")
shell=/nix/store/f7jzmxq9bpbxsg69cszx56mw14n115n5-bash-4.4-p23/bin/bash
export shell
shellHook=
export shellHook
stdenv=/nix/store/6vjmwq0nxsqm4skc8mrwif0zgy2gmn6r-stdenv-linux
export stdenv
strictDeps=
export strictDeps
system=x86_64-linux
export system
unpackCmdHooks=([0]="_defaultUnpack")
PATH="$PATH:$nix_saved_PATH"
_activatePkgs () 
{ 
    local -i hostOffset targetOffset;
    local pkg;
    for hostOffset in "${allPlatOffsets[@]}";
    do
        local pkgsVar="${pkgAccumVarVars[$hostOffset + 1]}";
        for targetOffset in "${allPlatOffsets[@]}";
        do
            (( "$hostOffset" <= "$targetOffset" )) || continue;
            local pkgsRef="${pkgsVar}[$targetOffset - $hostOffset]";
            local pkgsSlice="${!pkgsRef}[@]";
            for pkg in ${!pkgsSlice+"${!pkgsSlice}"};
            do
                activatePackage "$pkg" "$hostOffset" "$targetOffset";
            done;
        done;
    done
}
_addRpathPrefix () 
{ 
    if [ "${NIX_NO_SELF_RPATH:-0}" != 1 ]; then
        export NIX_LDFLAGS="-rpath $1/lib ${NIX_LDFLAGS-}";
        if [ -n "${NIX_LIB64_IN_SELF_RPATH:-}" ]; then
            export NIX_LDFLAGS="-rpath $1/lib64 ${NIX_LDFLAGS-}";
        fi;
        if [ -n "${NIX_LIB32_IN_SELF_RPATH:-}" ]; then
            export NIX_LDFLAGS="-rpath $1/lib32 ${NIX_LDFLAGS-}";
        fi;
    fi
}
_addToEnv () 
{ 
    local -i depHostOffset depTargetOffset;
    local pkg;
    for depHostOffset in "${allPlatOffsets[@]}";
    do
        local hookVar="${pkgHookVarVars[$depHostOffset + 1]}";
        local pkgsVar="${pkgAccumVarVars[$depHostOffset + 1]}";
        for depTargetOffset in "${allPlatOffsets[@]}";
        do
            (( "$depHostOffset" <= "$depTargetOffset" )) || continue;
            local hookRef="${hookVar}[$depTargetOffset - $depHostOffset]";
            if [[ -z "${strictDeps-}" ]]; then
                local visitedPkgs="";
                for pkg in ${pkgsBuildBuild+"${pkgsBuildBuild[@]}"} ${pkgsBuildHost+"${pkgsBuildHost[@]}"} ${pkgsBuildTarget+"${pkgsBuildTarget[@]}"} ${pkgsHostHost+"${pkgsHostHost[@]}"} ${pkgsHostTarget+"${pkgsHostTarget[@]}"} ${pkgsTargetTarget+"${pkgsTargetTarget[@]}"};
                do
                    if [[ "$visitedPkgs" = *"$pkg"* ]]; then
                        continue;
                    fi;
                    runHook "${!hookRef}" "$pkg";
                    visitedPkgs+=" $pkg";
                done;
            else
                local pkgsRef="${pkgsVar}[$depTargetOffset - $depHostOffset]";
                local pkgsSlice="${!pkgsRef}[@]";
                for pkg in ${!pkgsSlice+"${!pkgsSlice}"};
                do
                    runHook "${!hookRef}" "$pkg";
                done;
            fi;
        done;
    done
}
_allFlags () 
{ 
    for varName in $(awk 'BEGIN { for (v in ENVIRON) if (v ~ /^[a-z][a-zA-Z0-9_]*$/) print v }');
    do
        if (( "${NIX_DEBUG:-0}" >= 1 )); then
            printf "@%s@ -> %q\n" "${varName}" "${!varName}";
        fi;
        args+=("--subst-var" "$varName");
    done
}
_assignFirst () 
{ 
    local varName="$1";
    local REMOVE=REMOVE;
    shift;
    while (( $# )); do
        if [ -n "${!1-}" ]; then
            eval "${varName}"="$1";
            return;
        fi;
        shift;
    done;
    echo "Error: _assignFirst found no valid variant!";
    return 1
}
_callImplicitHook () 
{ 
    local def="$1";
    local hookName="$2";
    if declare -F "$hookName" > /dev/null; then
        "$hookName";
    else
        if type -p "$hookName" > /dev/null; then
            source "$hookName";
        else
            if [ -n "${!hookName:-}" ]; then
                eval "${!hookName}";
            else
                return "$def";
            fi;
        fi;
    fi
}
_defaultUnpack () 
{ 
    local fn="$1";
    if [ -d "$fn" ]; then
        cp -pr --reflink=auto -- "$fn" "$(stripHash "$fn")";
    else
        case "$fn" in 
            *.tar.xz | *.tar.lzma | *.txz)
                xz -d < "$fn" | tar xf -
            ;;
            *.tar | *.tar.* | *.tgz | *.tbz2 | *.tbz)
                tar xf "$fn"
            ;;
            *)
                return 1
            ;;
        esac;
    fi
}
_doStrip () 
{ 
    local -ra flags=(dontStripHost dontStripTarget);
    local -ra stripCmds=(STRIP TARGET_STRIP);
    if [[ "${STRIP-}" == "${TARGET_STRIP-}" ]]; then
        dontStripTarget+=1;
    fi;
    local i;
    for i in ${!stripCmds[@]};
    do
        local -n flag="${flags[$i]}";
        local -n stripCmd="${stripCmds[$i]}";
        if [[ -n "${dontStrip-}" || -n "${flag-}" ]] || ! type -f "${stripCmd-}" 2> /dev/null; then
            continue;
        fi;
        stripDebugList=${stripDebugList:-lib lib32 lib64 libexec bin sbin};
        if [ -n "$stripDebugList" ]; then
            stripDirs "$stripCmd" "$stripDebugList" "${stripDebugFlags:--S}";
        fi;
        stripAllList=${stripAllList:-};
        if [ -n "$stripAllList" ]; then
            stripDirs "$stripCmd" "$stripAllList" "${stripAllFlags:--s}";
        fi;
    done
}
_eval () 
{ 
    if declare -F "$1" > /dev/null 2>&1; then
        "$@";
    else
        eval "$1";
    fi
}
_makeSymlinksRelative () 
{ 
    local symlinkTarget;
    if [ -n "${dontRewriteSymlinks-}" ]; then
        return 0;
    fi;
    while IFS= read -r -d '' f; do
        symlinkTarget=$(readlink "$f");
        if [[ "$symlinkTarget"/ != "$prefix"/* ]]; then
            continue;
        fi;
        if [ ! -e "$symlinkTarget" ]; then
            echo "the symlink $f is broken, it points to $symlinkTarget (which is missing)";
        fi;
        echo "rewriting symlink $f to be relative to $prefix";
        ln -snrf "$symlinkTarget" "$f";
    done < <(find $prefix -type l -print0)
}
_moveLib64 () 
{ 
    if [ "${dontMoveLib64-}" = 1 ]; then
        return;
    fi;
    if [ ! -e "$prefix/lib64" -o -L "$prefix/lib64" ]; then
        return;
    fi;
    echo "moving $prefix/lib64/* to $prefix/lib";
    mkdir -p $prefix/lib;
    shopt -s dotglob;
    for i in $prefix/lib64/*;
    do
        mv --no-clobber "$i" $prefix/lib;
    done;
    shopt -u dotglob;
    rmdir $prefix/lib64;
    ln -s lib $prefix/lib64
}
_moveSbin () 
{ 
    if [ "${dontMoveSbin-}" = 1 ]; then
        return;
    fi;
    if [ ! -e "$prefix/sbin" -o -L "$prefix/sbin" ]; then
        return;
    fi;
    echo "moving $prefix/sbin/* to $prefix/bin";
    mkdir -p $prefix/bin;
    shopt -s dotglob;
    for i in $prefix/sbin/*;
    do
        mv "$i" $prefix/bin;
    done;
    shopt -u dotglob;
    rmdir $prefix/sbin;
    ln -s bin $prefix/sbin
}
_moveSystemdUserUnits () 
{ 
    if [ "${dontMoveSystemdUserUnits:-0}" = 1 ]; then
        return;
    fi;
    if [ ! -e "${prefix:?}/lib/systemd/user" ]; then
        return;
    fi;
    local source="$prefix/lib/systemd/user";
    local target="$prefix/share/systemd/user";
    echo "moving $source/* to $target";
    mkdir -p "$target";
    ( shopt -s dotglob;
    for i in "$source"/*;
    do
        mv "$i" "$target";
    done );
    rmdir "$source";
    ln -s "$target" "$source"
}
_moveToShare () 
{ 
    forceShare=${forceShare:=man doc info};
    if [ -z "$forceShare" -o -z "$out" ]; then
        return;
    fi;
    for d in $forceShare;
    do
        if [ -d "$out/$d" ]; then
            if [ -d "$out/share/$d" ]; then
                echo "both $d/ and share/$d/ exist!";
            else
                echo "moving $out/$d to $out/share/$d";
                mkdir -p $out/share;
                mv $out/$d $out/share/;
            fi;
        fi;
    done
}
_multioutConfig () 
{ 
    if [ "$outputs" = "out" ] || [ -z "${setOutputFlags-1}" ]; then
        return;
    fi;
    if [ -z "$shareDocName" ]; then
        local confScript="$configureScript";
        if [ -z "$confScript" ] && [ -x ./configure ]; then
            confScript=./configure;
        fi;
        if [ -f "$confScript" ]; then
            local shareDocName="$(sed -n "s/^PACKAGE_TARNAME='\(.*\)'$/\1/p" < "$confScript")";
        fi;
        if [ -z "$shareDocName" ] || echo "$shareDocName" | grep -q '[^a-zA-Z0-9_-]'; then
            shareDocName="$(echo "$name" | sed 's/-[^a-zA-Z].*//')";
        fi;
    fi;
    configureFlags="        --bindir=${!outputBin}/bin --sbindir=${!outputBin}/sbin         --includedir=${!outputInclude}/include --oldincludedir=${!outputInclude}/include         --mandir=${!outputMan}/share/man --infodir=${!outputInfo}/share/info         --docdir=${!outputDoc}/share/doc/${shareDocName}         --libdir=${!outputLib}/lib --libexecdir=${!outputLib}/libexec         --localedir=${!outputLib}/share/locale         $configureFlags";
    installFlags="        pkgconfigdir=${!outputDev}/lib/pkgconfig         m4datadir=${!outputDev}/share/aclocal aclocaldir=${!outputDev}/share/aclocal         $installFlags"
}
_multioutDevs () 
{ 
    if [ "$outputs" = "out" ] || [ -z "${moveToDev-1}" ]; then
        return;
    fi;
    moveToOutput include "${!outputInclude}";
    moveToOutput lib/pkgconfig "${!outputDev}";
    moveToOutput share/pkgconfig "${!outputDev}";
    moveToOutput lib/cmake "${!outputDev}";
    moveToOutput share/aclocal "${!outputDev}";
    for f in "${!outputDev}"/{lib,share}/pkgconfig/*.pc;
    do
        echo "Patching '$f' includedir to output ${!outputInclude}";
        sed -i "/^includedir=/s,=\${prefix},=${!outputInclude}," "$f";
    done
}
_multioutDocs () 
{ 
    local REMOVE=REMOVE;
    moveToOutput share/info "${!outputInfo}";
    moveToOutput share/doc "${!outputDoc}";
    moveToOutput share/gtk-doc "${!outputDevdoc}";
    moveToOutput share/devhelp/books "${!outputDevdoc}";
    moveToOutput share/man "${!outputMan}";
    moveToOutput share/man/man3 "${!outputDevman}"
}
_multioutPropagateDev () 
{ 
    if [ "$outputs" = "out" ]; then
        return;
    fi;
    local outputFirst;
    for outputFirst in $outputs;
    do
        break;
    done;
    local propagaterOutput="$outputDev";
    if [ -z "$propagaterOutput" ]; then
        propagaterOutput="$outputFirst";
    fi;
    if [ -z "${propagatedBuildOutputs+1}" ]; then
        local po_dirty="$outputBin $outputInclude $outputLib";
        set +o pipefail;
        propagatedBuildOutputs=`echo "$po_dirty"             | tr -s ' ' '\n' | grep -v -F "$propagaterOutput"             | sort -u | tr '\n' ' ' `;
        set -o pipefail;
    fi;
    if [ -z "$propagatedBuildOutputs" ]; then
        return;
    fi;
    mkdir -p "${!propagaterOutput}"/nix-support;
    for output in $propagatedBuildOutputs;
    do
        echo -n " ${!output}" >> "${!propagaterOutput}"/nix-support/propagated-build-inputs;
    done
}
_overrideFirst () 
{ 
    if [ -z "${!1-}" ]; then
        _assignFirst "$@";
    fi
}
_pruneLibtoolFiles () 
{ 
    if [ "${dontPruneLibtoolFiles-}" ] || [ ! -e "$prefix" ]; then
        return;
    fi;
    find "$prefix" -type f -name '*.la' -exec grep -q '^# Generated by .*libtool' {} \; -exec grep -q "^old_library=''" {} \; -exec sed -i {} -e "/^dependency_libs='[^']/ c dependency_libs='' #pruned" \;
}
_updateSourceDateEpochFromSourceRoot () 
{ 
    if [ -n "$sourceRoot" ]; then
        updateSourceDateEpoch "$sourceRoot";
    fi
}
activatePackage () 
{ 
    local pkg="$1";
    local -ri hostOffset="$2";
    local -ri targetOffset="$3";
    (( "$hostOffset" <= "$targetOffset" )) || exit -1;
    if [ -f "$pkg" ]; then
        source "$pkg";
    fi;
    if [[ -z "${strictDeps-}" || "$hostOffset" -le -1 ]]; then
        addToSearchPath _PATH "$pkg/bin";
    fi;
    if [[ "$hostOffset" -le -1 ]]; then
        addToSearchPath _XDG_DATA_DIRS "$pkg/share";
    fi;
    if [[ "$hostOffset" -eq 0 && -d "$pkg/bin" ]]; then
        addToSearchPath _HOST_PATH "$pkg/bin";
    fi;
    if [[ -f "$pkg/nix-support/setup-hook" ]]; then
        source "$pkg/nix-support/setup-hook";
    fi
}
addEnvHooks () 
{ 
    local depHostOffset="$1";
    shift;
    local pkgHookVarsSlice="${pkgHookVarVars[$depHostOffset + 1]}[@]";
    local pkgHookVar;
    for pkgHookVar in "${!pkgHookVarsSlice}";
    do
        eval "${pkgHookVar}s"'+=("$@")';
    done
}
addSDL2Path () 
{ 
    if [ -e "$1/include/SDL2" ]; then
        export SDL2_PATH="${SDL2_PATH-}${SDL2_PATH:+ }$1/include/SDL2";
    fi
}
addToSearchPath () 
{ 
    addToSearchPathWithCustomDelimiter ":" "$@"
}
addToSearchPathWithCustomDelimiter () 
{ 
    local delimiter="$1";
    local varName="$2";
    local dir="$3";
    if [ -d "$dir" ]; then
        export "${varName}=${!varName:+${!varName}${delimiter}}${dir}";
    fi
}
auditTmpdir () 
{ 
    local dir="$1";
    [ -e "$dir" ] || return 0;
    header "checking for references to $TMPDIR/ in $dir...";
    local i;
    while IFS= read -r -d '' i; do
        if [[ "$i" =~ .build-id ]]; then
            continue;
        fi;
        if isELF "$i"; then
            if { 
                printf :;
                patchelf --print-rpath "$i"
            } | grep -q -F ":$TMPDIR/"; then
                echo "RPATH of binary $i contains a forbidden reference to $TMPDIR/";
                exit 1;
            fi;
        fi;
        if isScript "$i"; then
            if [ -e "$(dirname "$i")/.$(basename "$i")-wrapped" ]; then
                if grep -q -F "$TMPDIR/" "$i"; then
                    echo "wrapper script $i contains a forbidden reference to $TMPDIR/";
                    exit 1;
                fi;
            fi;
        fi;
    done < <(find "$dir" -type f -print0);
    stopNest
}
bintoolsWrapper_addLDVars () 
{ 
    local role_post;
    getHostRoleEnvHook;
    if [[ -d "$1/lib64" && ! -L "$1/lib64" ]]; then
        export NIX_LDFLAGS${role_post}+=" -L$1/lib64";
    fi;
    if [[ -d "$1/lib" ]]; then
        local -a glob=($1/lib/lib*);
        if [ "${#glob[*]}" -gt 0 ]; then
            export NIX_LDFLAGS${role_post}+=" -L$1/lib";
        fi;
    fi
}
buildPhase () 
{ 
    runHook preBuild;
    : ${makeFlags=};
    if [[ -z "$makeFlags" && -z "${makefile:-}" && ! ( -e Makefile || -e makefile || -e GNUmakefile ) ]]; then
        echo "no Makefile, doing nothing";
    else
        foundMakefile=1;
        local flagsArray=(${enableParallelBuilding:+-j${NIX_BUILD_CORES} -l${NIX_BUILD_CORES}} SHELL=$SHELL $makeFlags ${makeFlagsArray+"${makeFlagsArray[@]}"} $buildFlags ${buildFlagsArray+"${buildFlagsArray[@]}"});
        echoCmd 'build flags' "${flagsArray[@]}";
        make ${makefile:+-f $makefile} "${flagsArray[@]}";
        unset flagsArray;
    fi;
    runHook postBuild
}
ccWrapper_addCVars () 
{ 
    local role_post;
    getHostRoleEnvHook;
    if [ -d "$1/include" ]; then
        export NIX_CFLAGS_COMPILE${role_post}+=" -isystem $1/include";
    fi;
    if [ -d "$1/Library/Frameworks" ]; then
        export NIX_CFLAGS_COMPILE${role_post}+=" -iframework $1/Library/Frameworks";
    fi
}
checkPhase () 
{ 
    runHook preCheck;
    if [[ -z "${foundMakefile:-}" ]]; then
        echo "no Makefile or custom checkPhase, doing nothing";
        runHook postCheck;
        return;
    fi;
    if [[ -z "${checkTarget:-}" ]]; then
        if make -n ${makefile:+-f $makefile} check > /dev/null 2>&1; then
            checkTarget=check;
        else
            if make -n ${makefile:+-f $makefile} test > /dev/null 2>&1; then
                checkTarget=test;
            fi;
        fi;
    fi;
    if [[ -z "${checkTarget:-}" ]]; then
        echo "no check/test target in ${makefile:-Makefile}, doing nothing";
    else
        local flagsArray=(${enableParallelChecking:+-j${NIX_BUILD_CORES} -l${NIX_BUILD_CORES}} SHELL=$SHELL $makeFlags ${makeFlagsArray+"${makeFlagsArray[@]}"} ${checkFlags:-VERBOSE=y} ${checkFlagsArray+"${checkFlagsArray[@]}"} ${checkTarget});
        echoCmd 'check flags' "${flagsArray[@]}";
        make ${makefile:+-f $makefile} "${flagsArray[@]}";
        unset flagsArray;
    fi;
    runHook postCheck
}
closeNest () 
{ 
    true
}
compressManPages () 
{ 
    local dir="$1";
    if [ -L "$dir"/share ] || [ -L "$dir"/share/man ] || [ ! -d "$dir/share/man" ]; then
        return;
    fi;
    echo "gzipping man pages under $dir/share/man/";
    find "$dir"/share/man/ -type f -a '!' -regex '.*\.\(bz2\|gz\)$' -print0 | while IFS= read -r -d '' f; do
        if gzip -c -n "$f" > "$f".gz; then
            rm "$f";
        else
            rm "$f".gz;
        fi;
    done;
    find "$dir"/share/man/ -type l -a '!' -regex '.*\.\(bz2\|gz\)$' -print0 | sort -z | while IFS= read -r -d '' f; do
        local target;
        target="$(readlink -f "$f")";
        if [ -f "$target".gz ]; then
            ln -sf "$target".gz "$f".gz && rm "$f";
        fi;
    done
}
configurePhase () 
{ 
    runHook preConfigure;
    : ${configureScript=};
    : ${configureFlags=};
    if [[ -z "$configureScript" && -x ./configure ]]; then
        configureScript=./configure;
    fi;
    if [ -z "${dontFixLibtool:-}" ]; then
        local i;
        find . -iname "ltmain.sh" -print0 | while IFS='' read -r -d '' i; do
            echo "fixing libtool script $i";
            fixLibtool "$i";
        done;
    fi;
    if [[ -z "${dontAddPrefix:-}" && -n "$prefix" ]]; then
        configureFlags="${prefixKey:---prefix=}$prefix $configureFlags";
    fi;
    if [ -z "${dontAddDisableDepTrack:-}" ]; then
        if [ -f "$configureScript" ] && grep -q dependency-tracking "$configureScript"; then
            configureFlags="--disable-dependency-tracking $configureFlags";
        fi;
    fi;
    if [ -z "${dontDisableStatic:-}" ]; then
        if [ -f "$configureScript" ] && grep -q enable-static "$configureScript"; then
            configureFlags="--disable-static $configureFlags";
        fi;
    fi;
    if [ -n "$configureScript" ]; then
        local flagsArray=($configureFlags ${configureFlagsArray+"${configureFlagsArray[@]}"});
        echoCmd 'configure flags' "${flagsArray[@]}";
        $configureScript "${flagsArray[@]}";
        unset flagsArray;
    else
        echo "no configure script, doing nothing";
    fi;
    runHook postConfigure
}
consumeEntire () 
{ 
    if IFS='' read -r -N 0 $1; then
        echo "consumeEntire(): ERROR: Input null bytes, won't process" 1>&2;
        return 1;
    fi
}
distPhase () 
{ 
    runHook preDist;
    local flagsArray=($distFlags ${distFlagsArray+"${distFlagsArray[@]}"} ${distTarget:-dist});
    echo 'dist flags: %q' "${flagsArray[@]}";
    make ${makefile:+-f $makefile} "${flagsArray[@]}";
    if [ "${dontCopyDist:-0}" != 1 ]; then
        mkdir -p "$out/tarballs";
        cp -pvd ${tarballs:-*.tar.gz} "$out/tarballs";
    fi;
    runHook postDist
}
dumpVars () 
{ 
    if [ "${noDumpEnvVars:-0}" != 1 ]; then
        export 2> /dev/null >| "$NIX_BUILD_TOP/env-vars" || true;
    fi
}
echoCmd () 
{ 
    printf "%s:" "$1";
    shift;
    printf ' %q' "$@";
    echo
}
exitHandler () 
{ 
    exitCode="$?";
    set +e;
    if [ -n "${showBuildStats:-}" ]; then
        times > "$NIX_BUILD_TOP/.times";
        local -a times=($(cat "$NIX_BUILD_TOP/.times"));
        echo "build time elapsed: " "${times[@]}";
    fi;
    if (( "$exitCode" != 0 )); then
        runHook failureHook;
        if [ -n "${succeedOnFailure:-}" ]; then
            echo "build failed with exit code $exitCode (ignored)";
            mkdir -p "$out/nix-support";
            printf "%s" "$exitCode" > "$out/nix-support/failed";
            exit 0;
        fi;
    else
        runHook exitHook;
    fi;
    exit "$exitCode"
}
findInputs () 
{ 
    local -r pkg="$1";
    local -ri hostOffset="$2";
    local -ri targetOffset="$3";
    (( "$hostOffset" <= "$targetOffset" )) || exit -1;
    local varVar="${pkgAccumVarVars[$hostOffset + 1]}";
    local varRef="$varVar[\$targetOffset - \$hostOffset]";
    local var="${!varRef}";
    unset -v varVar varRef;
    local varSlice="$var[*]";
    case "${!varSlice-}" in 
        *" $pkg "*)
            return 0
        ;;
    esac;
    unset -v varSlice;
    eval "$var"'+=("$pkg")';
    if ! [ -e "$pkg" ]; then
        echo "build input $pkg does not exist" 1>&2;
        exit 1;
    fi;
    local -i mapOffsetResult;
    function mapOffset () 
    { 
        local -ri inputOffset="$1";
        if (( "$inputOffset" <= 0 )); then
            local -ri outputOffset="$inputOffset + $hostOffset";
        else
            local -ri outputOffset="$inputOffset - 1 + $targetOffset";
        fi;
        mapOffsetResult="$outputOffset"
    };
    local -i relHostOffset;
    for relHostOffset in "${allPlatOffsets[@]}";
    do
        local files="${propagatedDepFilesVars[$relHostOffset + 1]}";
        mapOffset relHostOffset;
        local -i hostOffsetNext="$mapOffsetResult";
        [[ "${allPlatOffsets[*]}" = *"$hostOffsetNext"* ]] || continue;
        local -i relTargetOffset;
        for relTargetOffset in "${allPlatOffsets[@]}";
        do
            (( "$relHostOffset" <= "$relTargetOffset" )) || continue;
            local fileRef="${files}[$relTargetOffset - $relHostOffset]";
            local file="${!fileRef}";
            unset -v fileRef;
            mapOffset relTargetOffset;
            local -i targetOffsetNext="$mapOffsetResult";
            [[ "${allPlatOffsets[*]}" = *"$targetOffsetNext"* ]] || continue;
            [[ -f "$pkg/nix-support/$file" ]] || continue;
            local pkgNext;
            read -r -d '' pkgNext < "$pkg/nix-support/$file" || true;
            for pkgNext in $pkgNext;
            do
                findInputs "$pkgNext" "$hostOffsetNext" "$targetOffsetNext";
            done;
        done;
    done
}
fixLibtool () 
{ 
    sed -i -e 's^eval sys_lib_.*search_path=.*^^' "$1"
}
fixupPhase () 
{ 
    local output;
    for output in $outputs;
    do
        if [ -e "${!output}" ]; then
            chmod -R u+w "${!output}";
        fi;
    done;
    runHook preFixup;
    local output;
    for output in $outputs;
    do
        prefix="${!output}" runHook fixupOutput;
    done;
    declare -ra flatVars=(depsBuildBuildPropagated propagatedNativeBuildInputs depsBuildTargetPropagated depsHostHostPropagated propagatedBuildInputs depsTargetTargetPropagated);
    declare -ra flatFiles=("${propagatedBuildDepFiles[@]}" "${propagatedHostDepFiles[@]}" "${propagatedTargetDepFiles[@]}");
    local propagatedInputsIndex;
    for propagatedInputsIndex in "${!flatVars[@]}";
    do
        local propagatedInputsSlice="${flatVars[$propagatedInputsIndex]}[@]";
        local propagatedInputsFile="${flatFiles[$propagatedInputsIndex]}";
        [[ -n "${!propagatedInputsSlice}" ]] || continue;
        mkdir -p "${!outputDev}/nix-support";
        printWords ${!propagatedInputsSlice} > "${!outputDev}/nix-support/$propagatedInputsFile";
    done;
    if [ -n "${setupHook:-}" ]; then
        mkdir -p "${!outputDev}/nix-support";
        substituteAll "$setupHook" "${!outputDev}/nix-support/setup-hook";
    fi;
    if [ -n "${setupHooks:-}" ]; then
        mkdir -p "${!outputDev}/nix-support";
        local hook;
        for hook in $setupHooks;
        do
            local content;
            consumeEntire content < "$hook";
            substituteAllStream content "file '$hook'" >> "${!outputDev}/nix-support/setup-hook";
            unset -v content;
        done;
        unset -v hook;
    fi;
    if [ -n "${propagatedUserEnvPkgs:-}" ]; then
        mkdir -p "${!outputBin}/nix-support";
        printWords $propagatedUserEnvPkgs > "${!outputBin}/nix-support/propagated-user-env-packages";
    fi;
    runHook postFixup
}
genericBuild () 
{ 
    if [ -f "${buildCommandPath:-}" ]; then
        source "$buildCommandPath";
        return;
    fi;
    if [ -n "${buildCommand:-}" ]; then
        eval "$buildCommand";
        return;
    fi;
    if [ -z "${phases:-}" ]; then
        phases="${prePhases:-} unpackPhase patchPhase ${preConfigurePhases:-}             configurePhase ${preBuildPhases:-} buildPhase checkPhase             ${preInstallPhases:-} installPhase ${preFixupPhases:-} fixupPhase installCheckPhase             ${preDistPhases:-} distPhase ${postPhases:-}";
    fi;
    for curPhase in $phases;
    do
        if [[ "$curPhase" = unpackPhase && -n "${dontUnpack:-}" ]]; then
            continue;
        fi;
        if [[ "$curPhase" = patchPhase && -n "${dontPatch:-}" ]]; then
            continue;
        fi;
        if [[ "$curPhase" = configurePhase && -n "${dontConfigure:-}" ]]; then
            continue;
        fi;
        if [[ "$curPhase" = buildPhase && -n "${dontBuild:-}" ]]; then
            continue;
        fi;
        if [[ "$curPhase" = checkPhase && -z "${doCheck:-}" ]]; then
            continue;
        fi;
        if [[ "$curPhase" = installPhase && -n "${dontInstall:-}" ]]; then
            continue;
        fi;
        if [[ "$curPhase" = fixupPhase && -n "${dontFixup:-}" ]]; then
            continue;
        fi;
        if [[ "$curPhase" = installCheckPhase && -z "${doInstallCheck:-}" ]]; then
            continue;
        fi;
        if [[ "$curPhase" = distPhase && -z "${doDist:-}" ]]; then
            continue;
        fi;
        if [[ -n $NIX_LOG_FD ]]; then
            echo "@nix { \"action\": \"setPhase\", \"phase\": \"$curPhase\" }" 1>&$NIX_LOG_FD;
        fi;
        showPhaseHeader "$curPhase";
        dumpVars;
        eval "${!curPhase:-$curPhase}";
        if [ "$curPhase" = unpackPhase ]; then
            cd "${sourceRoot:-.}";
        fi;
    done
}
getHostRole () 
{ 
    getRole "$hostOffset"
}
getHostRoleEnvHook () 
{ 
    getRole "$depHostOffset"
}
getRole () 
{ 
    case $1 in 
        -1)
            role_post='_FOR_BUILD'
        ;;
        0)
            role_post=''
        ;;
        1)
            role_post='_FOR_TARGET'
        ;;
        *)
            echo "binutils-wrapper-2.35.1: used as improper sort of dependency" > 2;
            return 1
        ;;
    esac
}
getTargetRole () 
{ 
    getRole "$targetOffset"
}
getTargetRoleEnvHook () 
{ 
    getRole "$depTargetOffset"
}
getTargetRoleWrapper () 
{ 
    case $targetOffset in 
        -1)
            export NIX_BINTOOLS_WRAPPER_TARGET_BUILD_x86_64_unknown_linux_gnu=1
        ;;
        0)
            export NIX_BINTOOLS_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu=1
        ;;
        1)
            export NIX_BINTOOLS_WRAPPER_TARGET_TARGET_x86_64_unknown_linux_gnu=1
        ;;
        *)
            echo "binutils-wrapper-2.35.1: used as improper sort of dependency" > 2;
            return 1
        ;;
    esac
}
header () 
{ 
    echo "$1"
}
installCheckPhase () 
{ 
    runHook preInstallCheck;
    if [[ -z "${foundMakefile:-}" ]]; then
        echo "no Makefile or custom installCheckPhase, doing nothing";
    else
        if [[ -z "${installCheckTarget:-}" ]] && ! make -n ${makefile:+-f $makefile} ${installCheckTarget:-installcheck} > /dev/null 2>&1; then
            echo "no installcheck target in ${makefile:-Makefile}, doing nothing";
        else
            local flagsArray=(${enableParallelChecking:+-j${NIX_BUILD_CORES} -l${NIX_BUILD_CORES}} SHELL=$SHELL $makeFlags ${makeFlagsArray+"${makeFlagsArray[@]}"} $installCheckFlags ${installCheckFlagsArray+"${installCheckFlagsArray[@]}"} ${installCheckTarget:-installcheck});
            echoCmd 'installcheck flags' "${flagsArray[@]}";
            make ${makefile:+-f $makefile} "${flagsArray[@]}";
            unset flagsArray;
        fi;
    fi;
    runHook postInstallCheck
}
installPhase () 
{ 
    runHook preInstall;
    if [ -n "$prefix" ]; then
        mkdir -p "$prefix";
    fi;
    local flagsArray=(SHELL=$SHELL $makeFlags ${makeFlagsArray+"${makeFlagsArray[@]}"} $installFlags ${installFlagsArray+"${installFlagsArray[@]}"} ${installTargets:-install});
    echoCmd 'install flags' "${flagsArray[@]}";
    make ${makefile:+-f $makefile} "${flagsArray[@]}";
    unset flagsArray;
    runHook postInstall
}
isELF () 
{ 
    local fn="$1";
    local fd;
    local magic;
    exec {fd}< "$fn";
    read -r -n 4 -u "$fd" magic;
    exec {fd}>&-;
    if [ "$magic" = 'ELF' ]; then
        return 0;
    else
        return 1;
    fi
}
isScript () 
{ 
    local fn="$1";
    local fd;
    local magic;
    exec {fd}< "$fn";
    read -r -n 2 -u "$fd" magic;
    exec {fd}>&-;
    if [[ "$magic" =~ \#! ]]; then
        return 0;
    else
        return 1;
    fi
}
mapOffset () 
{ 
    local -ri inputOffset="$1";
    if (( "$inputOffset" <= 0 )); then
        local -ri outputOffset="$inputOffset + $hostOffset";
    else
        local -ri outputOffset="$inputOffset - 1 + $targetOffset";
    fi;
    mapOffsetResult="$outputOffset"
}
moveToOutput () 
{ 
    local patt="$1";
    local dstOut="$2";
    local output;
    for output in $outputs;
    do
        if [ "${!output}" = "$dstOut" ]; then
            continue;
        fi;
        local srcPath;
        for srcPath in "${!output}"/$patt;
        do
            if [ ! -e "$srcPath" ] && [ ! -L "$srcPath" ]; then
                continue;
            fi;
            if [ "$dstOut" = REMOVE ]; then
                echo "Removing $srcPath";
                rm -r "$srcPath";
            else
                local dstPath="$dstOut${srcPath#${!output}}";
                echo "Moving $srcPath to $dstPath";
                if [ -d "$dstPath" ] && [ -d "$srcPath" ]; then
                    rmdir "$srcPath" --ignore-fail-on-non-empty;
                    if [ -d "$srcPath" ]; then
                        mv -t "$dstPath" "$srcPath"/*;
                        rmdir "$srcPath";
                    fi;
                else
                    mkdir -p "$(readlink -m "$dstPath/..")";
                    mv "$srcPath" "$dstPath";
                fi;
            fi;
            local srcParent="$(readlink -m "$srcPath/..")";
            if rmdir "$srcParent"; then
                echo "Removing empty $srcParent/ and (possibly) its parents";
                rmdir -p --ignore-fail-on-non-empty "$(readlink -m "$srcParent/..")" 2> /dev/null || true;
            fi;
        done;
    done
}
patchELF () 
{ 
    local dir="$1";
    [ -e "$dir" ] || return 0;
    header "shrinking RPATHs of ELF executables and libraries in $dir";
    local i;
    while IFS= read -r -d '' i; do
        if [[ "$i" =~ .build-id ]]; then
            continue;
        fi;
        if ! isELF "$i"; then
            continue;
        fi;
        echo "shrinking $i";
        patchelf --shrink-rpath "$i" || true;
    done < <(find "$dir" -type f -print0);
    stopNest
}
patchPhase () 
{ 
    runHook prePatch;
    for i in ${patches:-};
    do
        header "applying patch $i" 3;
        local uncompress=cat;
        case "$i" in 
            *.gz)
                uncompress="gzip -d"
            ;;
            *.bz2)
                uncompress="bzip2 -d"
            ;;
            *.xz)
                uncompress="xz -d"
            ;;
            *.lzma)
                uncompress="lzma -d"
            ;;
        esac;
        $uncompress < "$i" 2>&1 | patch ${patchFlags:--p1};
    done;
    runHook postPatch
}
patchShebangs () 
{ 
    local pathName;
    if [[ "$1" == "--host" ]]; then
        pathName=HOST_PATH;
        shift;
    else
        if [[ "$1" == "--build" ]]; then
            pathName=PATH;
            shift;
        fi;
    fi;
    echo "patching script interpreter paths in $@";
    local f;
    local oldPath;
    local newPath;
    local arg0;
    local args;
    local oldInterpreterLine;
    local newInterpreterLine;
    if [[ $# -eq 0 ]]; then
        echo "No arguments supplied to patchShebangs" 1>&2;
        return 0;
    fi;
    local f;
    while IFS= read -r -d '' f; do
        isScript "$f" || continue;
        read -r oldInterpreterLine < "$f";
        read -r oldPath arg0 args <<< "${oldInterpreterLine:2}";
        if [[ -z "$pathName" ]]; then
            if [[ -n $strictDeps && $f == "$NIX_STORE"* ]]; then
                pathName=HOST_PATH;
            else
                pathName=PATH;
            fi;
        fi;
        if [[ "$oldPath" == *"/bin/env" ]]; then
            if [[ $arg0 == "-"* || $arg0 == *"="* ]]; then
                echo "$f: unsupported interpreter directive \"$oldInterpreterLine\" (set dontPatchShebangs=1 and handle shebang patching yourself)" 1>&2;
                exit 1;
            fi;
            newPath="$(PATH="${!pathName}" command -v "$arg0" || true)";
        else
            if [[ -z $oldPath ]]; then
                oldPath="/bin/sh";
            fi;
            newPath="$(PATH="${!pathName}" command -v "$(basename "$oldPath")" || true)";
            args="$arg0 $args";
        fi;
        newInterpreterLine="$newPath $args";
        newInterpreterLine=${newInterpreterLine%${newInterpreterLine##*[![:space:]]}};
        if [[ -n "$oldPath" && "${oldPath:0:${#NIX_STORE}}" != "$NIX_STORE" ]]; then
            if [[ -n "$newPath" && "$newPath" != "$oldPath" ]]; then
                echo "$f: interpreter directive changed from \"$oldInterpreterLine\" to \"$newInterpreterLine\"";
                escapedInterpreterLine=${newInterpreterLine//\\/\\\\};
                timestamp=$(stat --printf "%y" "$f");
                sed -i -e "1 s|.*|#\!$escapedInterpreterLine|" "$f";
                touch --date "$timestamp" "$f";
            fi;
        fi;
    done < <(find "$@" -type f -perm -0100 -print0);
    stopNest
}
patchShebangsAuto () 
{ 
    if [[ -z "${dontPatchShebangs-}" && -e "$prefix" ]]; then
        if [[ "$output" != out && "$output" = "$outputDev" ]]; then
            patchShebangs --build "$prefix";
        else
            patchShebangs --host "$prefix";
        fi;
    fi
}
printLines () 
{ 
    (( "$#" > 0 )) || return 0;
    printf '%s\n' "$@"
}
printWords () 
{ 
    (( "$#" > 0 )) || return 0;
    printf '%s ' "$@"
}
runHook () 
{ 
    local hookName="$1";
    shift;
    local hooksSlice="${hookName%Hook}Hooks[@]";
    local hook;
    for hook in "_callImplicitHook 0 $hookName" ${!hooksSlice+"${!hooksSlice}"};
    do
        _eval "$hook" "$@";
    done;
    return 0
}
runOneHook () 
{ 
    local hookName="$1";
    shift;
    local hooksSlice="${hookName%Hook}Hooks[@]";
    local hook ret=1;
    for hook in "_callImplicitHook 1 $hookName" ${!hooksSlice+"${!hooksSlice}"};
    do
        if _eval "$hook" "$@"; then
            ret=0;
            break;
        fi;
    done;
    return "$ret"
}
showPhaseHeader () 
{ 
    local phase="$1";
    case "$phase" in 
        unpackPhase)
            header "unpacking sources"
        ;;
        patchPhase)
            header "patching sources"
        ;;
        configurePhase)
            header "configuring"
        ;;
        buildPhase)
            header "building"
        ;;
        checkPhase)
            header "running tests"
        ;;
        installPhase)
            header "installing"
        ;;
        fixupPhase)
            header "post-installation fixup"
        ;;
        installCheckPhase)
            header "running install tests"
        ;;
        *)
            header "$phase"
        ;;
    esac
}
stopNest () 
{ 
    true
}
stripDirs () 
{ 
    local cmd="$1";
    local dirs="$2";
    local stripFlags="$3";
    local dirsNew=;
    local d;
    for d in ${dirs};
    do
        if [ -d "$prefix/$d" ]; then
            dirsNew="${dirsNew} $prefix/$d ";
        fi;
    done;
    dirs=${dirsNew};
    if [ -n "${dirs}" ]; then
        header "stripping (with command $cmd and flags $stripFlags) in$dirs";
        find $dirs -type f -exec $cmd $commonStripFlags $stripFlags '{}' \; 2> /dev/null;
        stopNest;
    fi
}
stripHash () 
{ 
    local strippedName casematchOpt=0;
    strippedName="$(basename -- "$1")";
    shopt -q nocasematch && casematchOpt=1;
    shopt -u nocasematch;
    if [[ "$strippedName" =~ ^[a-z0-9]{32}- ]]; then
        echo "${strippedName:33}";
    else
        echo "$strippedName";
    fi;
    if (( casematchOpt )); then
        shopt -s nocasematch;
    fi
}
substitute () 
{ 
    local input="$1";
    local output="$2";
    shift 2;
    if [ ! -f "$input" ]; then
        echo "substitute(): ERROR: file '$input' does not exist" 1>&2;
        return 1;
    fi;
    local content;
    consumeEntire content < "$input";
    if [ -e "$output" ]; then
        chmod +w "$output";
    fi;
    substituteStream content "file '$input'" "$@" > "$output"
}
substituteAll () 
{ 
    local input="$1";
    local output="$2";
    local -a args=();
    _allFlags;
    substitute "$input" "$output" "${args[@]}"
}
substituteAllInPlace () 
{ 
    local fileName="$1";
    shift;
    substituteAll "$fileName" "$fileName" "$@"
}
substituteAllStream () 
{ 
    local -a args=();
    _allFlags;
    substituteStream "$1" "$2" "${args[@]}"
}
substituteInPlace () 
{ 
    local fileName="$1";
    shift;
    substitute "$fileName" "$fileName" "$@"
}
substituteStream () 
{ 
    local var=$1;
    local description=$2;
    shift 2;
    while (( "$#" )); do
        case "$1" in 
            --replace)
                pattern="$2";
                replacement="$3";
                shift 3;
                local savedvar;
                savedvar="${!var}";
                eval "$var"'=${'"$var"'//"$pattern"/"$replacement"}';
                if [ "$pattern" != "$replacement" ]; then
                    if [ "${!var}" == "$savedvar" ]; then
                        echo "substituteStream(): WARNING: pattern '$pattern' doesn't match anything in $description" 1>&2;
                    fi;
                fi
            ;;
            --subst-var)
                local varName="$2";
                shift 2;
                if ! [[ "$varName" =~ ^[a-zA-Z_][a-zA-Z0-9_]*$ ]]; then
                    echo "substituteStream(): ERROR: substitution variables must be valid Bash names, \"$varName\" isn't." 1>&2;
                    return 1;
                fi;
                if [ -z ${!varName+x} ]; then
                    echo "substituteStream(): ERROR: variable \$$varName is unset" 1>&2;
                    return 1;
                fi;
                pattern="@$varName@";
                replacement="${!varName}";
                eval "$var"'=${'"$var"'//"$pattern"/"$replacement"}'
            ;;
            --subst-var-by)
                pattern="@$2@";
                replacement="$3";
                eval "$var"'=${'"$var"'//"$pattern"/"$replacement"}';
                shift 3
            ;;
            *)
                echo "substituteStream(): ERROR: Invalid command line argument: $1" 1>&2;
                return 1
            ;;
        esac;
    done;
    printf "%s" "${!var}"
}
unpackFile () 
{ 
    curSrc="$1";
    header "unpacking source archive $curSrc" 3;
    if ! runOneHook unpackCmd "$curSrc"; then
        echo "do not know how to unpack source archive $curSrc";
        exit 1;
    fi
}
unpackPhase () 
{ 
    runHook preUnpack;
    if [ -z "${srcs:-}" ]; then
        if [ -z "${src:-}" ]; then
            echo 'variable $src or $srcs should point to the source';
            exit 1;
        fi;
        srcs="$src";
    fi;
    local dirsBefore="";
    for i in *;
    do
        if [ -d "$i" ]; then
            dirsBefore="$dirsBefore $i ";
        fi;
    done;
    for i in $srcs;
    do
        unpackFile "$i";
    done;
    : ${sourceRoot=};
    if [ -n "${setSourceRoot:-}" ]; then
        runOneHook setSourceRoot;
    else
        if [ -z "$sourceRoot" ]; then
            for i in *;
            do
                if [ -d "$i" ]; then
                    case $dirsBefore in 
                        *\ $i\ *)

                        ;;
                        *)
                            if [ -n "$sourceRoot" ]; then
                                echo "unpacker produced multiple directories";
                                exit 1;
                            fi;
                            sourceRoot="$i"
                        ;;
                    esac;
                fi;
            done;
        fi;
    fi;
    if [ -z "$sourceRoot" ]; then
        echo "unpacker appears to have produced no directories";
        exit 1;
    fi;
    echo "source root is $sourceRoot";
    if [ "${dontMakeSourcesWritable:-0}" != 1 ]; then
        chmod -R u+w -- "$sourceRoot";
    fi;
    runHook postUnpack
}
updateSourceDateEpoch () 
{ 
    local path="$1";
    local -a res=($(find "$path" -type f -not -newer "$NIX_BUILD_TOP/.." -printf '%T@ %p\0'                     | sort -n --zero-terminated | tail -n1 --zero-terminated | head -c -1));
    local time="${res[0]//\.[0-9]*/}";
    local newestFile="${res[1]}";
    if [ "${time:-0}" -gt "$SOURCE_DATE_EPOCH" ]; then
        echo "setting SOURCE_DATE_EPOCH to timestamp $time of file $newestFile";
        export SOURCE_DATE_EPOCH="$time";
        local now="$(date +%s)";
        if [ "$time" -gt $((now - 60)) ]; then
            echo "warning: file $newestFile may be generated; SOURCE_DATE_EPOCH may be non-deterministic";
        fi;
    fi
}

export NIX_BUILD_TOP="$(mktemp -d -t nix-shell.XXXXXX)"
export TMP="$NIX_BUILD_TOP"
export TMPDIR="$NIX_BUILD_TOP"
export TEMP="$NIX_BUILD_TOP"
export TEMPDIR="$NIX_BUILD_TOP"
eval "$shellHook"