# Hollow Knight in the page (browser-linux.mjs --pins): where each library with a
# function-tier unit (`elfunits=`) loads, so the units built for these bases apply
# whatever else moves. The system libraries sit in gex_abi's placement window
# (0x7000000-0xb000000), which neither the guest arena nor the runtime's own heap
# hands out; pinned in the arena (hp28, hp29) they collided with whatever the
# arena had given away first, the shim's heap included. UnityPlayer keeps the
# base it has always loaded at. Spans are each object's PT_LOAD extent.
# BASE        SPAN      PATH
0x11752000 0x2674000 /game/UnityPlayer.so
0x7000000 0x1f4000 /lib/x86_64-linux-gnu/libc.so.6
0x7210000 0xf0000 /lib/x86_64-linux-gnu/libm.so.6
0x7310000 0x2b000 /lib/x86_64-linux-gnu/libxcb.so.1
0x7350000 0x116000 /lib/x86_64-linux-gnu/libsystemd.so.0
0x7480000 0x148000 /lib/x86_64-linux-gnu/libX11.so.6
0x75e0000 0x14000 /lib/x86_64-linux-gnu/libXi.so.6
0x7610000 0xd000 /lib/x86_64-linux-gnu/libXrandr.so.2
0x7630000 0x45000 /lib/x86_64-linux-gnu/libudev.so.1
0x7690000 0x7000 /lib/x86_64-linux-gnu/libpulse-simple.so.0
0x76b0000 0x55000 /lib/x86_64-linux-gnu/libpulse.so.0
0x7720000 0x8b000 /gex/gl/libGL.so.1
0x77c0000 0x88000 /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-17.0.so
0x7860000 0x57000 /lib/x86_64-linux-gnu/libdbus-1.so.3
0x78d0000 0x121000 /lib/x86_64-linux-gnu/libasound.so.2
0x7a10000 0x63a000 /lib/x86_64-linux-gnu/libcrypto.so.3
