Migrate libbpf-sys to monorepo.

Requires aosp/3345627.

Bug: http://b/339424309
Test: treehugger
Change-Id: Idfc0ddb739965a075c84589e677d4da22b3d0dac
diff --git a/crates/libbpf-sys/.cargo-checksum.json b/crates/libbpf-sys/.cargo-checksum.json
new file mode 100644
index 0000000..5facb69
--- /dev/null
+++ b/crates/libbpf-sys/.cargo-checksum.json
@@ -0,0 +1 @@
+{"files":{"Cargo.toml":"1690914a464f4781d56f780b5ac10c0cad10e1128ca7b21d4b3403ea44f05e83","LICENSE":"6b0ef6f169ed5f5d9670e9b5f07c6cfb2daf8cd5ea2238cd6799efefeb61e7b8","README.md":"5ddf41d8ae6fc6be9953d300c740e0aaea7c514f17ae7eb80a35a509f4745cd3","bindings.h":"bca30d8026b9f50fd4205c066b40b62d5c5b3a49b47d8b837964326ef1aa89c3","build.rs":"5e4536067094116a6a513cd29a92eca6f0a876864d20b35eb284ca54fb8dd153","elfutils/AUTHORS":"a12e829266d6f307c952720e80df170834f28f369e30753fae6568b7887ef90f","elfutils/AUTHORS.sh":"9569728d747af9e619a43a6b69f919e7bde5af898a94f35a72b4e453a2058a7d","elfutils/CONTRIBUTING":"078e83b511750399586948b388e6942822d253d746bc2137677c2ead5b07bd58","elfutils/COPYING":"8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903","elfutils/COPYING-GPLV2":"8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643","elfutils/COPYING-LGPLV3":"da7eabb7bafdf7d3ae5e9f223aa5bdc1eece45ac569dc21b3b037520b4464768","elfutils/ChangeLog":"8c3f5a622fecd0ca7339bf92b20de7c74adeaadd8a02248d29305ba3de9e27ca","elfutils/GPG-KEY":"62113efd3f506cd1fb6cf81eaa8c4ea0672a378dcd38380a1fa72bad4f0fd90d","elfutils/Makefile.am":"b7a8678fec3f2ca67a345aac7aca795703db92afbe8ace8ee3cf45575ee6599f","elfutils/NEWS":"8f6203267c32f12149150a3b15b2466db0d5894a47ff609ae04f82dd65d95214","elfutils/NOTES":"7e598f5704024f103640bdeb829e6a0b38a0efecd476ce0efec4c0a2023fbd30","elfutils/README":"d57dfae8db810c2930b6dc4da991a89091bb041bf9437fdcb9e3953696a8062b","elfutils/THANKS":"e79826c0d46dc7f71f68c7eabcae99a4b2af432948ae0ab46d09cf90e4b8ea23","elfutils/TODO":"c0abec0a8c08b93b7a486e7f231635b3495c19d1e7dbd6849b3b343edbe26f58","elfutils/backends/ChangeLog":"60a934cefd85582e4ebe501cccb67b0aeef1052c0920c1f2ba295c5ae982d9be","elfutils/backends/Makefile.am":"76e7f39e54f30234af90c678f153826988a8b34236513ae6d27f0989debecd69","elfutils/backends/aarch64_cfi.c":"db3a8126f5f11e3ee9cc5a29cdf561dce0da0684453df0f6f6f49e2be247c440","elfutils/backends/aarch64_corenote.c":"b636a08184bb11493095a32653a268462918cb7a7a9a3b058e7e9afdac7bb42c","elfutils/backends/aarch64_init.c":"ef77353fe443d9b68052e3df66eca63cd7dc80523f3f1189143ad1ae0f6d407c","elfutils/backends/aarch64_initreg.c":"769aa2d537eddd7a9932cadebd9a047de4d3dfb504dab5195adb7230d368c53d","elfutils/backends/aarch64_regs.c":"309af657b850555f59b2daadccac02052769db3a47cd22146cd71c39ddf04600","elfutils/backends/aarch64_reloc.def":"8130628cace3699b9b3d8bdd380892c10de190f37a5ea8a20008eb5c9cbc7d97","elfutils/backends/aarch64_retval.c":"bc9754950aec83513463f8bdc7ef2cd805438a814788a8ac35d0193999445684","elfutils/backends/aarch64_symbol.c":"5edc2e5e536ac20f9a4089900aafe887c0ecd9e34c970fa86572dc1302f040d3","elfutils/backends/aarch64_unwind.c":"94869bb11120a015a382dd786d6ae3a63873f0d90d51eb481464fe98d9c7bfae","elfutils/backends/alpha_auxv.c":"c74318763db6a1628b4acacc202401c013057c39a7e54e5ff9a1b3bb3a47a8de","elfutils/backends/alpha_corenote.c":"2708ceeb108fa085fbcaa7679ff078c568303ae3ff3211b632e6845e976fb5c9","elfutils/backends/alpha_init.c":"87581cb7b97fb070fa0984b22e8070f60160ac199e4f27daf7cfd3f3829ba6e8","elfutils/backends/alpha_regs.c":"1f1ad353d41ba282e8f76cd994bf7835afb2192119666c24365793c1d7c10c3c","elfutils/backends/alpha_reloc.def":"9cc7c67f630be0c242678f10bb2839d1a5ab022ba0d347a41fe3f0036ea560fc","elfutils/backends/alpha_retval.c":"f93f2bb244e43053017ca9199b80495a0d71eb49a62af9ccdb82ab3d321309ca","elfutils/backends/alpha_symbol.c":"7b2158ee3233a1b2a54560c7b1857abe86a7545632534e45feca5b00ca2bf2f0","elfutils/backends/arc_init.c":"09eb60256ade0fd52b2b471363fbe30baaee8fd27ff0ea30c5da2a6765c51e5f","elfutils/backends/arc_reloc.def":"618aa5e8f5783e3bcb44a2bbb720352f4afecc6a9535cf0950d3233549fd259c","elfutils/backends/arc_symbol.c":"c4ab0d7e902b8685a34488b478f5e90aa6eeb51964e25acf842bf6ab0344f16c","elfutils/backends/arm_attrs.c":"614b0619b7bd7f97efb41b7eac0ae17af53814340d7f4c3739c9e5d1445abb9e","elfutils/backends/arm_auxv.c":"0945402d87c484836284af934ff1d9c3b5d557d086dc7d2d52e45b8088346b61","elfutils/backends/arm_cfi.c":"0481827b8468b36db66e6de7e0ab304c991c99400c7a58dd7045d012390c69fd","elfutils/backends/arm_corenote.c":"6b6ca16ef51cee49c36717050576586f689c3425eed483015d71a59b1daef30f","elfutils/backends/arm_init.c":"98ce090d96f1063a58264d444354e1b0464fd45c3830fb9eb9240e4a12416ece","elfutils/backends/arm_initreg.c":"e08a4d5564d7f5450659417e7ac7dde501048e0a7bf82057f088901f932b409b","elfutils/backends/arm_machineflagname.c":"621ebd04fba7f4bb6f49cbc8700a66a8c75e5ef5d981653b55dc6332405077da","elfutils/backends/arm_regs.c":"951dd44a56cbed7a93eaba8c29c4755edbbb3d6cd5229825cd8d88ad29153edf","elfutils/backends/arm_reloc.def":"fa502f354090e561b67d049335d126f9aef2c3d04cd997fc0ba13f988eaa9a79","elfutils/backends/arm_retval.c":"053e2ebe3760dfa5879d5f557d73cdc4827e454bb1e46c5368c113b2e9f91258","elfutils/backends/arm_symbol.c":"4cb71eb74106148ddfc362484a435501ea96667591479a8b854b58c9d03f4fb0","elfutils/backends/bpf_init.c":"8d8ef3e929016360618397355327ead4a8acecc67473303236791f3a2bfbf1a8","elfutils/backends/bpf_regs.c":"49cf0804acb28ae8a62eca60e4711107f9121a45ef0b6a33a8f30fe466ef780b","elfutils/backends/bpf_reloc.def":"8d57de8822c1a471ba740b10281f6c339b0a40ad20821e44841f6622fcb7d566","elfutils/backends/bpf_symbol.c":"0e94d5f023e6ca1b03d3f0dc15e59b24b2e34a8b79e1cfa25b0a26b908c5c890","elfutils/backends/common-reloc.c":"540f6c84d4d5863b04367532fbf50199e3d1346053a6f36a61bec5d9b3a9d4c4","elfutils/backends/csky_attrs.c":"8b0c53677f8d919e13d5d4f508bfaba5bfa45bbffaa42d259aae48734c98bcb6","elfutils/backends/csky_cfi.c":"b4994ba0c9f441ce36c659eca85f2fecc2060e1ce814718f659f2099c2061bce","elfutils/backends/csky_corenote.c":"a7cf87fbaf6b992adecee6fd2b70b32d6e610b1d14cd2174b7f02dca37d3b6a7","elfutils/backends/csky_init.c":"9d1756cf5de282ca34b03f2cc9d867b4bba32db10b8ad7478704331140a201a2","elfutils/backends/csky_initreg.c":"225c4f47e7a0c4f15902dccb5ca43eaccd5c5edf476ef87ad54233586dc531a6","elfutils/backends/csky_regs.c":"e0bbc4ae3650bcced3e9b147a4319fb5c345cb2b537a26f9cd3e8201ded432e5","elfutils/backends/csky_reloc.def":"78d619e544ddeacaefc73dea566bc99fde4c9661bb878f24243960180cb1a65c","elfutils/backends/csky_symbol.c":"185c64a00203dfa16ea31485e926ca418242ad3085b01fd5069bb8707f0f4a90","elfutils/backends/i386_auxv.c":"a740a3e3b2bdfcfb0ac2acc3a0aecddb47433545b3d18eb7f5974ef5c311a3a5","elfutils/backends/i386_cfi.c":"1328e6528750d5659012850630c00e2a2fac46933ffedbd9d95f2a2b0b5b2f8f","elfutils/backends/i386_corenote.c":"d8331f61961ee09f05b874b7cc4ab2b6f504b1346617fbefbaec94342986ae2e","elfutils/backends/i386_init.c":"2ce590270a4446003845ae39612e4e8fffb3638e38866d52bf594f9d281607ed","elfutils/backends/i386_initreg.c":"cb3f2a860e19afe9f85fb0b3f7cb61d8ed9777894e5620b7b0e705420bf968d2","elfutils/backends/i386_regs.c":"8cf17cf04a932861344402ff55e7981521f8190548188cf80b86398c4ee9231d","elfutils/backends/i386_reloc.def":"383552d7a05a1219574aeef2b3f637723a0edbc9430c07be764beecdb78925d2","elfutils/backends/i386_retval.c":"af7c8b715e23c11cf8a546fbd78e692fd5c07f306beaf5c2f2708734e9e0d2e9","elfutils/backends/i386_symbol.c":"d1ac7b04f53459446024d34ebcb587dac844b1e66402ecaf1990ca428fda2b02","elfutils/backends/i386_unwind.c":"48334be995e804cc42ac1ddc9d72a958dd31d1e1c92122210b8bab1af29bff4e","elfutils/backends/ia64_init.c":"93e0c2e14bc3f2036ffb43ab41853603bc48d25e0c569e86c2bb946156c1cd77","elfutils/backends/ia64_regs.c":"43c4b22f422ec4c49e633755a0de8cd0f8c7f224ce4f3eb72ec9c887c1f0899d","elfutils/backends/ia64_reloc.def":"c856dec9849dbb394b051d423f66e5b03876bf4e907601248b14fe6592e94757","elfutils/backends/ia64_retval.c":"798e262ac3fc2ed84bc924379b55a37d6d2be49d894863258545e71a8c7e8478","elfutils/backends/ia64_symbol.c":"ed17b4f587584efd5cb6e7099a98e8da487d5639d0c8f772d8cb0218ae7a8bec","elfutils/backends/libebl_CPU.h":"a1a13764a88fdf5fd87d2318db604a97f48d3ded982530d9320c7f9874e3228f","elfutils/backends/linux-core-note.c":"3ee8b6cd8339873ed6bebf87f569ff9bc1862ab6a8dd2d3345b00a8d570b38eb","elfutils/backends/loongarch_init.c":"f33cd371a355972cd38e8e88b1249bf5577d942fdd55d0e4a2122a41517d1b8d","elfutils/backends/loongarch_reloc.def":"799745261b3834ee61759692d1040f528b32f520e284cb52300daecec835b105","elfutils/backends/loongarch_symbol.c":"ebaf3f82302e9c9552d7984be962ef0a50d4620fb245b8ab9f129ff73a38f728","elfutils/backends/m68k_cfi.c":"76dbf6aa896feb9b55b96520afb98a0d3b3be8fcef1629ae2a76d26c1d81c530","elfutils/backends/m68k_corenote.c":"edbd7d76cd93b15f575b190b96d90054c13948bc9f12307278d83d20145bade1","elfutils/backends/m68k_init.c":"403905b285f9746464a88542933a200d72f605b388732fcb47b4e34885d5ae9f","elfutils/backends/m68k_initreg.c":"ad8becd0d2727427cf463ae8d681e0b25a4c13b4c6a9a8643b3821b92156abb0","elfutils/backends/m68k_regs.c":"73274f7e939ee8f1c7d292d015bd62bc7e58c4b0cd5ca22b1568b9cd89a93dd2","elfutils/backends/m68k_reloc.def":"8fd9cbd91a6bd64999a61be562121181098e4d6ff5352ebdec72ca081865f14b","elfutils/backends/m68k_retval.c":"1563d9a396ff6c1c74fa1ea05c2015ef578f79c07c780c5541a6482d93c35e37","elfutils/backends/m68k_symbol.c":"00db436389a1bb8e947c54ecbc7ae2e65cc5fb4c30eae5368d34f6d034569679","elfutils/backends/ppc64_corenote.c":"21375c7015e3020d673cf9240f76a78ed3cee905bb4e180e0e4b67bf764e03b9","elfutils/backends/ppc64_init.c":"c7d623e8ed486cba48a2b5edda8097f0ee1f55b1eb9978eee45124b830345b2c","elfutils/backends/ppc64_reloc.def":"f0dfcdbb29bb8300433f297210e4da51dddb7dcbc1419c2c1adb8b533d6b0fd0","elfutils/backends/ppc64_resolve_sym.c":"22c5db43e3f2773c470c26aab95daa834c3d3e055c77e15901db809db3ee862a","elfutils/backends/ppc64_retval.c":"d12dd497de9d279516a9e76ffa3c667473ef28ec1fbe258fed8ef7d6ddad6776","elfutils/backends/ppc64_symbol.c":"e00ea38214d4ad54afe530c92d3bfb3a2aecf7b3cc8af804d28b10a42f0895d0","elfutils/backends/ppc64_unwind.c":"5658e9693ba2614f52d48eeae5adcc5b2c3046671b2addc1206b75a51b9ffb36","elfutils/backends/ppc_attrs.c":"e6b22d2ee0f5bcdb40dfd86ff9dd06d7d84d94cba18f4b1ee7831ad7ee7bc5bd","elfutils/backends/ppc_auxv.c":"3773f62c3d7d14fcaa566b85b82f2ba5cdcfc770339608d7755a997849cc0e63","elfutils/backends/ppc_cfi.c":"99a8731608c7050ca79fbd0798b5f772b2b3f69d399e274f2304eb738e7be179","elfutils/backends/ppc_corenote.c":"d797421710aeefd82eddc55ba46c1a74b8c991329748663990c053fcfa052c4a","elfutils/backends/ppc_init.c":"3e41e6370c490f19397b68d5db67f48dc94b6dacf24fd5b2884ed94a44fbcb3d","elfutils/backends/ppc_initreg.c":"52f8bc861df311b1c0f8084ac18f33e3c97869289ab48fc93d59a37f88663b2b","elfutils/backends/ppc_regs.c":"ff7fe6ca33fd04b10ff75cea0347b983c6ff426a73cbb7a7cea988513d4a3671","elfutils/backends/ppc_reloc.def":"43fd49e47d954a23ae9f27262cde8e55f89afdca2c0993c0427a918055301cda","elfutils/backends/ppc_retval.c":"c7333514469cb9df145014a45196ee8481204274c023c1aa3eb0e2633f4b0776","elfutils/backends/ppc_symbol.c":"4359c639729f7930a6d4496e79ef4bac2a0115d98d075d849fdfe768f48fe805","elfutils/backends/riscv64_corenote.c":"e6ea61f12dec92d13885f1266aaa8d458b3c3e4d5dabf9e48439457d3cb32a36","elfutils/backends/riscv_cfi.c":"ace9d16b839a74817551a65df0b5c0080c878275b7638545206e8999d73340c0","elfutils/backends/riscv_corenote.c":"61e0ab1cea4a631c35e1fa413137513590868ca6b845638ef6bfdea51c0d42bb","elfutils/backends/riscv_init.c":"fde849e8d127ffd7d47cb9a2d7254907e11da9369006372fc1f8742fff2d7112","elfutils/backends/riscv_initreg.c":"6b20b677ed26902f3772e1a6f0c0177ccdea6d2d0d98e0407d1bfb352b284ffa","elfutils/backends/riscv_regs.c":"1c43462f67fed2c2d621ba6b227b4fc3359bfd3d86f24b9d589dd5b29e63125b","elfutils/backends/riscv_reloc.def":"3942c581813c882d73e61090516a6aa44cf93493570a1570271413f4d6a5646c","elfutils/backends/riscv_retval.c":"4409c387d11f9aacc5486cad7d68c3487de0bebc2c432afc6e7cc645b8e155d4","elfutils/backends/riscv_symbol.c":"4c09aa8671bc923c137a88327e2104c9fed8c5800ee4d83e9aaba54e6b867597","elfutils/backends/s390_cfi.c":"2cc42dde4c02517206daeaf2fe82c7bda77d0f26733cf2c8ee29b456ccacaf2d","elfutils/backends/s390_corenote.c":"d7e866d61b22c62e6541df4caf04ba11c75b791ac68bba93c9907c233fc3fcd1","elfutils/backends/s390_init.c":"2ab1175a411cf963ade129609b0286e85ae28e9120f77fb13001cbf5fd854a7b","elfutils/backends/s390_initreg.c":"696256593b508477f0019e09d455dfd4961e15fb158e0e4490cc14dd8e5325e6","elfutils/backends/s390_regs.c":"8745e68eeea0e6eda67819ab4e00c94a149aa7379abfd0eb34f9508fe7cc46dd","elfutils/backends/s390_reloc.def":"05ea1531857af8ae8b35f6021ff2bf7a593a832333a8c31aeba4cfd882768419","elfutils/backends/s390_retval.c":"87badae1fe59d52221876011b44b6b2503c810d7755d1aead29ae8b7993ef5b4","elfutils/backends/s390_symbol.c":"1c39883c4d113cd9a4cf545f9b46c83cae0222b71e437b8b9fe944b5f28fd532","elfutils/backends/s390_unwind.c":"59f122d596370f327c91406c0d5d6b0835b7a9160885cbc6a5f912605da29c2c","elfutils/backends/s390x_corenote.c":"4ed6d92dc84957fefa8660a6de431fb6363e04c22e13de80dcb5bd2c18d27088","elfutils/backends/sh_corenote.c":"b53e29992dcdfc0d7b502814bd76e02b4bf8c0eb3a40709ca8bbc8cbf63e6526","elfutils/backends/sh_init.c":"b70c33e1f2ada3c6609a3ab704156320935a5e97204692a5315dacbd067e7e0a","elfutils/backends/sh_regs.c":"90955f715bb5b751a1bf294f1a76d5099f5db57babe358726b7f2422c59e4e3b","elfutils/backends/sh_reloc.def":"14d5a972faa321aa27b622a35fcd2e06dd7a18cf3ec4d367873a8ec0562c2a3d","elfutils/backends/sh_retval.c":"a88636b0766bd267f9d8a310d774743a8cbdb3a0b3453fbbb86efe0ae1eba0ca","elfutils/backends/sh_symbol.c":"d67a9e91893357d33e5233cacd2358d34f819a40465d4f4a74821c2793d08154","elfutils/backends/sparc64_corenote.c":"c2f0b8286e6f989e94caa3e26c94e41d654997bbb5bf6d96f3ce4fa63353ff46","elfutils/backends/sparc_attrs.c":"74eb405bcb7b983fa446ac12935089f55c5119111b00de647346714296cc0bf0","elfutils/backends/sparc_auxv.c":"2bdac1e5c0fc9731514a5cb52b0e3d79b1f0d63dc9cb4573fe7a8f61efd9cc5f","elfutils/backends/sparc_cfi.c":"0e1c13b59a144e35566d0a71607292e94f67641de5ea38e1848a16722b4dcb08","elfutils/backends/sparc_corenote.c":"8d52503d342b3fa5747631b559fc95dcfc3bf3f474356e60e43b06163ce11762","elfutils/backends/sparc_init.c":"00420f3c101d99ffd92df2826d7bc147ab1563acffff5124d7b0fad695966e32","elfutils/backends/sparc_initreg.c":"048d4e66bf8b637d4595c21338c64853fc03982c06471da2fa96e15ab2ba5e7e","elfutils/backends/sparc_regs.c":"d3f0143ed2be1490d70964413f43a6917a08376c8cc8cb343e7ff985fea08b46","elfutils/backends/sparc_reloc.def":"6f011adf0604c48ba2bf5b60f7277bca2c5fa74ae9f9eb02d1625f38c9718cde","elfutils/backends/sparc_retval.c":"3c3a183efce00b466d2f8cfee3cb77cb8668cc9a691bdc1511de537cc9755395","elfutils/backends/sparc_symbol.c":"e244966543854372b11e882224b1c30d2a8236947b09caec7a355031818fb27d","elfutils/backends/x32_corenote.c":"761b128c198a57c19ecd1405cbde49529ee813453771fd01ad28add15b1854c4","elfutils/backends/x86_64_cfi.c":"aa643db986f543e8ed8cb623aa1d7ebe0e20f62a80f25b7efdff8ae0e481bcc6","elfutils/backends/x86_64_corenote.c":"b1ae4e628cbbc6da704eeedc1489dcdf99e1c89490d5142bcc8b09a927981fd0","elfutils/backends/x86_64_init.c":"498b97b8b090da0b9e7806c685776015bcc6d52e3e84bcc21bf2d19f1bb643b7","elfutils/backends/x86_64_initreg.c":"eb1536d203c7535bbed603407d5e98f8ca1311c70e862c4e0820eb28d2ca0979","elfutils/backends/x86_64_regs.c":"bb61c48938505ef1752c65d45ebff187ae9ea75d923753b04c23035fbce9e48b","elfutils/backends/x86_64_reloc.def":"460d460156afe864883618f7592c885cacbc77f742433eea02c2e07cf349f84b","elfutils/backends/x86_64_retval.c":"280270122070930721ced45243334abc85601f1536510063f1d9d7f062acf982","elfutils/backends/x86_64_symbol.c":"b29cf1bf9569e9603409e551c98658de2c7797c9120dd280f5acd2ec888ad6e0","elfutils/backends/x86_64_unwind.c":"4a0d4d6cadc1ab599fbe8ba9f7a8b65db3a450ec4e4b8d90f373359cb829c130","elfutils/backends/x86_corenote.c":"d5136b982a680b799c553060b75c790a7095a380c73c59175614296883043631","elfutils/config/10-default-yama-scope.conf":"2411b554d569a269581e12f946b5746e6eab4d0be621df030865cd7528ddca95","elfutils/config/ChangeLog":"a2e41b9d0592263a838eb31652c874ecdffd8f00165c5380c2f9be06106ee306","elfutils/config/Makefile.am":"2d3352522995ea0683106c821a361a2cb1f3de8f50b758e83544d35b1689bc6b","elfutils/config/debuginfod.service":"1ae110a5a8fe071d0aeb77bbcaeaf37292685c52073f63919a85b2433499735f","elfutils/config/debuginfod.sysconfig":"f46b15c0cc4f7e4c410cff746dc89eaac247f6cf31979b0eae11ae8161475d2d","elfutils/config/elfutils.spec.in":"aaca54aebaf1fc009383ea8b8c07e7b867b8dd27290e9d043f0334748a023f79","elfutils/config/eu.am":"b7e2dbc897dabbb902b2e853870a7cce3b4818b0735f00c5a012ea4b86ac9b03","elfutils/config/known-dwarf.awk":"3d1105b508ca7488d47f0f4a621177c9c939c9e7117259a2483bc0224e243763","elfutils/config/libdebuginfod.pc.in":"ca622e8c309f911c530ad2f9d5123bc0e964632cd6e5657ce1ba55b19f944661","elfutils/config/libdw.pc.in":"b4af0df33972d3089dffcfef1bbd58b895ac0672cf3f24d595d963c60e431c02","elfutils/config/libelf.pc.in":"fbbf9400eea7855beb4a032f39967d1f2f96da3245d36718490698d314dc8332","elfutils/config/profile.csh.in":"b8d41d034385ff0a4a0c501a6b30a933d5783768757ce72d696ea7500be7ee73","elfutils/config/profile.sh.in":"13ad092f8d6a21a0113437041fde72df2dd6d8d532170ad87d08e8666be7b27e","elfutils/config/upload-release.sh":"ae6ef439c04aba3674c1192557f20391560395f648e81916a9494e1b7b196261","elfutils/config/version.h.in":"a071edb90983d515c7a805a60832b2318702c31548e2cdd8454beb65c27d93fe","elfutils/configure.ac":"a754210e5cb56aa59c03be0699d9d43f8fce7a89dc6e24f6d368c92a6ca2e7db","elfutils/debuginfod/ChangeLog":"d62f02cfb31ec31bada4e74293c477c183f04d19be368ecef00b63cecf1bc5bd","elfutils/debuginfod/Makefile.am":"c15e37f6e8892049700282991c3e8d41d2db98839ca5492322a4e2d403dcf71e","elfutils/debuginfod/debuginfod-client.c":"a46c8072586951f936e3e2062c9f9d795edab7c009a98d54847db5d830540044","elfutils/debuginfod/debuginfod-find.c":"d210cd49ee267845d93428c0fd20afeed89baf02f4c6c83a5ca91fdafe361808","elfutils/debuginfod/debuginfod.cxx":"e9f47de1c529f06b8013aa48d0c054848bb70d8fd0fe70ca4767e77bbb800a4f","elfutils/debuginfod/debuginfod.h.in":"7ac5ff6599d5d95fe9278fe817c03b745386f2f724dae3498d326e5166af0007","elfutils/debuginfod/libdebuginfod.map":"301f46baf86a0b556ed542d22d92f5ce8d20f86bd031d62823f285bc2d6e35d8","elfutils/doc/COPYING-GFDL":"62b0aef0fcad4d041e9de52278b2dcbbf999fe0650fa162f37a25cfd969cf4dd","elfutils/doc/ChangeLog":"13c47c28447c0f1e358e0d1ad1511d2e8dea29cbde733405093978e632d960d1","elfutils/doc/Makefile.am":"3ed8ce0e9886a536fbff7e629c77b9622f0e04fadc6060b887ff52c3db9765e1","elfutils/doc/README":"8a5da8414079a30eae2341c159f5ac9bb4b2774fdbee5b04d088105b5db0ecf9","elfutils/doc/debuginfod-client-config.7":"611fccfea0e589e46ee8bcf279d797dfbc993734f7e5723b0a9f3814022e8524","elfutils/doc/debuginfod-find.1":"e247076c4af00f73f004e642687583c931afb8a699564594a31e7ea72209afca","elfutils/doc/debuginfod.8":"473c927503fbaee7961e50fd477acc3832696820bcbc74d3a422db9ee1e07bad","elfutils/doc/debuginfod.service.8":"33a7bc77d73fddf71ab3b4aba03fc2ee4351e160a6857bb8c10b1f868c133a6f","elfutils/doc/debuginfod_add_http_header.3":"7cba3ead70fb84ff2e1895923744bef71209035c96aa92144735c8657827f7c9","elfutils/doc/debuginfod_begin.3":"7cba3ead70fb84ff2e1895923744bef71209035c96aa92144735c8657827f7c9","elfutils/doc/debuginfod_end.3":"7cba3ead70fb84ff2e1895923744bef71209035c96aa92144735c8657827f7c9","elfutils/doc/debuginfod_find_debuginfo.3":"04de981f7557f6c6b5241fb907270b92e77be9fe31a79c6154a7a225555f141b","elfutils/doc/debuginfod_find_executable.3":"7cba3ead70fb84ff2e1895923744bef71209035c96aa92144735c8657827f7c9","elfutils/doc/debuginfod_find_section.3":"7cba3ead70fb84ff2e1895923744bef71209035c96aa92144735c8657827f7c9","elfutils/doc/debuginfod_find_source.3":"7cba3ead70fb84ff2e1895923744bef71209035c96aa92144735c8657827f7c9","elfutils/doc/debuginfod_get_headers.3":"d21a6438733712ebad7d53d76f10b267d780262182e5d8b722e99409928b6a0e","elfutils/doc/debuginfod_get_url.3":"7cba3ead70fb84ff2e1895923744bef71209035c96aa92144735c8657827f7c9","elfutils/doc/debuginfod_get_user_data.3":"7cba3ead70fb84ff2e1895923744bef71209035c96aa92144735c8657827f7c9","elfutils/doc/debuginfod_set_progressfn.3":"7cba3ead70fb84ff2e1895923744bef71209035c96aa92144735c8657827f7c9","elfutils/doc/debuginfod_set_user_data.3":"7cba3ead70fb84ff2e1895923744bef71209035c96aa92144735c8657827f7c9","elfutils/doc/elf_begin.3":"fa41af290bb1a8f16b4d88e8cfc08f7ec7b13d70e7b34ec358304daa4b3a0cc4","elfutils/doc/elf_clone.3":"6262bef4dbeef6b2bff04d4ac857c58f2a230a44bf184e9bf685d2a38c8409c9","elfutils/doc/elf_getdata.3":"21d9fef582318c0d10721aa9a4194f5684323b5fc8fdecf84355b7d310c84326","elfutils/doc/elf_update.3":"c96dfc270c9dfa35a676aa1f38c15bcd4a556851fed9a4ddc074d62f856d3a4a","elfutils/doc/elfclassify.1":"1f5ea96871ba7ddcb75315b6ab30e55f7a54b374c776f83716596014f146085f","elfutils/doc/elfutils.sgml":"72826887e122ef0592e855b20f2549f3f1c24b5618339385364149bf4a38e136","elfutils/doc/man3/COPYING-GFDL":"62b0aef0fcad4d041e9de52278b2dcbbf999fe0650fa162f37a25cfd969cf4dd","elfutils/doc/man3/ChangeLog":"13c47c28447c0f1e358e0d1ad1511d2e8dea29cbde733405093978e632d960d1","elfutils/doc/man3/Makefile.am":"3ed8ce0e9886a536fbff7e629c77b9622f0e04fadc6060b887ff52c3db9765e1","elfutils/doc/man3/README":"8a5da8414079a30eae2341c159f5ac9bb4b2774fdbee5b04d088105b5db0ecf9","elfutils/doc/man3/debuginfod-client-config.7":"611fccfea0e589e46ee8bcf279d797dfbc993734f7e5723b0a9f3814022e8524","elfutils/doc/man3/debuginfod-find.1":"e247076c4af00f73f004e642687583c931afb8a699564594a31e7ea72209afca","elfutils/doc/man3/debuginfod.8":"473c927503fbaee7961e50fd477acc3832696820bcbc74d3a422db9ee1e07bad","elfutils/doc/man3/debuginfod.service.8":"33a7bc77d73fddf71ab3b4aba03fc2ee4351e160a6857bb8c10b1f868c133a6f","elfutils/doc/man3/debuginfod_add_http_header.3":"7cba3ead70fb84ff2e1895923744bef71209035c96aa92144735c8657827f7c9","elfutils/doc/man3/debuginfod_begin.3":"7cba3ead70fb84ff2e1895923744bef71209035c96aa92144735c8657827f7c9","elfutils/doc/man3/debuginfod_end.3":"7cba3ead70fb84ff2e1895923744bef71209035c96aa92144735c8657827f7c9","elfutils/doc/man3/debuginfod_find_debuginfo.3":"04de981f7557f6c6b5241fb907270b92e77be9fe31a79c6154a7a225555f141b","elfutils/doc/man3/debuginfod_find_executable.3":"7cba3ead70fb84ff2e1895923744bef71209035c96aa92144735c8657827f7c9","elfutils/doc/man3/debuginfod_find_section.3":"7cba3ead70fb84ff2e1895923744bef71209035c96aa92144735c8657827f7c9","elfutils/doc/man3/debuginfod_find_source.3":"7cba3ead70fb84ff2e1895923744bef71209035c96aa92144735c8657827f7c9","elfutils/doc/man3/debuginfod_get_headers.3":"d21a6438733712ebad7d53d76f10b267d780262182e5d8b722e99409928b6a0e","elfutils/doc/man3/debuginfod_get_url.3":"7cba3ead70fb84ff2e1895923744bef71209035c96aa92144735c8657827f7c9","elfutils/doc/man3/debuginfod_get_user_data.3":"7cba3ead70fb84ff2e1895923744bef71209035c96aa92144735c8657827f7c9","elfutils/doc/man3/debuginfod_set_progressfn.3":"7cba3ead70fb84ff2e1895923744bef71209035c96aa92144735c8657827f7c9","elfutils/doc/man3/debuginfod_set_user_data.3":"7cba3ead70fb84ff2e1895923744bef71209035c96aa92144735c8657827f7c9","elfutils/doc/man3/elf_begin.3":"fa41af290bb1a8f16b4d88e8cfc08f7ec7b13d70e7b34ec358304daa4b3a0cc4","elfutils/doc/man3/elf_clone.3":"6262bef4dbeef6b2bff04d4ac857c58f2a230a44bf184e9bf685d2a38c8409c9","elfutils/doc/man3/elf_getdata.3":"21d9fef582318c0d10721aa9a4194f5684323b5fc8fdecf84355b7d310c84326","elfutils/doc/man3/elf_update.3":"c96dfc270c9dfa35a676aa1f38c15bcd4a556851fed9a4ddc074d62f856d3a4a","elfutils/doc/man3/elfclassify.1":"1f5ea96871ba7ddcb75315b6ab30e55f7a54b374c776f83716596014f146085f","elfutils/doc/man3/elfutils.sgml":"72826887e122ef0592e855b20f2549f3f1c24b5618339385364149bf4a38e136","elfutils/doc/man3/readelf.1":"10fc9c8233727805421d1fdc2e2540b8b41bef7fa7b0398b4441c8b96d81139f","elfutils/doc/man7/COPYING-GFDL":"62b0aef0fcad4d041e9de52278b2dcbbf999fe0650fa162f37a25cfd969cf4dd","elfutils/doc/man7/ChangeLog":"13c47c28447c0f1e358e0d1ad1511d2e8dea29cbde733405093978e632d960d1","elfutils/doc/man7/Makefile.am":"3ed8ce0e9886a536fbff7e629c77b9622f0e04fadc6060b887ff52c3db9765e1","elfutils/doc/man7/README":"8a5da8414079a30eae2341c159f5ac9bb4b2774fdbee5b04d088105b5db0ecf9","elfutils/doc/man7/debuginfod-client-config.7":"611fccfea0e589e46ee8bcf279d797dfbc993734f7e5723b0a9f3814022e8524","elfutils/doc/man7/debuginfod-find.1":"e247076c4af00f73f004e642687583c931afb8a699564594a31e7ea72209afca","elfutils/doc/man7/debuginfod.8":"473c927503fbaee7961e50fd477acc3832696820bcbc74d3a422db9ee1e07bad","elfutils/doc/man7/debuginfod.service.8":"33a7bc77d73fddf71ab3b4aba03fc2ee4351e160a6857bb8c10b1f868c133a6f","elfutils/doc/man7/debuginfod_add_http_header.3":"7cba3ead70fb84ff2e1895923744bef71209035c96aa92144735c8657827f7c9","elfutils/doc/man7/debuginfod_begin.3":"7cba3ead70fb84ff2e1895923744bef71209035c96aa92144735c8657827f7c9","elfutils/doc/man7/debuginfod_end.3":"7cba3ead70fb84ff2e1895923744bef71209035c96aa92144735c8657827f7c9","elfutils/doc/man7/debuginfod_find_debuginfo.3":"04de981f7557f6c6b5241fb907270b92e77be9fe31a79c6154a7a225555f141b","elfutils/doc/man7/debuginfod_find_executable.3":"7cba3ead70fb84ff2e1895923744bef71209035c96aa92144735c8657827f7c9","elfutils/doc/man7/debuginfod_find_section.3":"7cba3ead70fb84ff2e1895923744bef71209035c96aa92144735c8657827f7c9","elfutils/doc/man7/debuginfod_find_source.3":"7cba3ead70fb84ff2e1895923744bef71209035c96aa92144735c8657827f7c9","elfutils/doc/man7/debuginfod_get_headers.3":"d21a6438733712ebad7d53d76f10b267d780262182e5d8b722e99409928b6a0e","elfutils/doc/man7/debuginfod_get_url.3":"7cba3ead70fb84ff2e1895923744bef71209035c96aa92144735c8657827f7c9","elfutils/doc/man7/debuginfod_get_user_data.3":"7cba3ead70fb84ff2e1895923744bef71209035c96aa92144735c8657827f7c9","elfutils/doc/man7/debuginfod_set_progressfn.3":"7cba3ead70fb84ff2e1895923744bef71209035c96aa92144735c8657827f7c9","elfutils/doc/man7/debuginfod_set_user_data.3":"7cba3ead70fb84ff2e1895923744bef71209035c96aa92144735c8657827f7c9","elfutils/doc/man7/elf_begin.3":"fa41af290bb1a8f16b4d88e8cfc08f7ec7b13d70e7b34ec358304daa4b3a0cc4","elfutils/doc/man7/elf_clone.3":"6262bef4dbeef6b2bff04d4ac857c58f2a230a44bf184e9bf685d2a38c8409c9","elfutils/doc/man7/elf_getdata.3":"21d9fef582318c0d10721aa9a4194f5684323b5fc8fdecf84355b7d310c84326","elfutils/doc/man7/elf_update.3":"c96dfc270c9dfa35a676aa1f38c15bcd4a556851fed9a4ddc074d62f856d3a4a","elfutils/doc/man7/elfclassify.1":"1f5ea96871ba7ddcb75315b6ab30e55f7a54b374c776f83716596014f146085f","elfutils/doc/man7/elfutils.sgml":"72826887e122ef0592e855b20f2549f3f1c24b5618339385364149bf4a38e136","elfutils/doc/man7/readelf.1":"10fc9c8233727805421d1fdc2e2540b8b41bef7fa7b0398b4441c8b96d81139f","elfutils/doc/readelf.1":"10fc9c8233727805421d1fdc2e2540b8b41bef7fa7b0398b4441c8b96d81139f","elfutils/lib/ChangeLog":"b68fe19d5683dee02eabe7acd451e93dc74adfd4def1ddb9d830020ed7230190","elfutils/lib/Makefile.am":"d847479c81c4a6243cfa8adcb0f6ab0bcb43e20bfc0fd96a615f93b46cd61f21","elfutils/lib/atomics.h":"ee9ea53733b014b2865140d0ca2d1380e0a59a81b8d1174e1e7df6c01530d3e1","elfutils/lib/bpf.h":"e65816d02d403df9b630a5d44b532bdfff5446602e967dc888b0e9fb4889e002","elfutils/lib/color.c":"28f82c44046bbf9f166e47893c640ea002b80c6591ccd059dc28b2ebb9c53c73","elfutils/lib/color.h":"5c36a5a6df151ba81220f996d6138d5f064f735a7054fd28bbb748b2eddb2801","elfutils/lib/crc32.c":"8c067afd9fbbb2e1c9dbad1a6fc29404b96d14e8f5ab6196c2aa9108fd6af13d","elfutils/lib/crc32_file.c":"943d42ace0593023309db5ffeb0e4125378acf6146609d98c78df89471b4557f","elfutils/lib/dynamicsizehash.c":"883b86f2a6eb3cb4ad23eb9b228307da29c1d333d9cbb7831bab7c4dc1d50ee6","elfutils/lib/dynamicsizehash.h":"0bbbe7415ce6a3550cd0a408a732a9a4dcabed6cb3aff248a8edaff0b47058f5","elfutils/lib/dynamicsizehash_concurrent.c":"06380524a7dd15becf1790e0cc38570913be7426857e8683b9f85070ea8dd910","elfutils/lib/dynamicsizehash_concurrent.h":"b2ca40ead3d74855844f45c4a769484a2887b9dd8b6cb3031afd081df4f7f16a","elfutils/lib/error.c":"9f9f3032920d0af703ac26d14b8b0b6df7a53abbdcecc6b24a8e16abbd22ffc0","elfutils/lib/eu-config.h":"73dc1c615f3e15c5208db4eb060bf7fb0a60cbb3137bc618918b3e3b53d76225","elfutils/lib/fixedsizehash.h":"bfbe132f3c5bcb3c2366f5ed02752c3248937648ae6616c53ca68e1d7ed00af3","elfutils/lib/libeu.h":"2ba15e0acad00da27383677ed5cb2bac02bd6d214e4b4a5cd9cec864089a20d7","elfutils/lib/list.h":"e368e1419a8db94fc0411a78fd8958f8c3acce34ecfb3144dd3fcc654f9c40d8","elfutils/lib/next_prime.c":"177b88c1b451087f2f75d2fcf5d57e6a640f6c86f7015d44bd2ec2554c1d40be","elfutils/lib/printversion.c":"e1a4129644852e2a746dfce314d7ff893b90780dbe664783b4651003ff1aeea0","elfutils/lib/printversion.h":"e774640cb4fbe7de7442edb4154d2e377c438f125641bcaabb4f83e84d183a73","elfutils/lib/stdatomic-fbsd.h":"2613c7eef76955eafea05d20f9514efbb7a4f01a569440421a6aa1ca9c1ccf47","elfutils/lib/system.h":"3b784c0244e675e75a6e60bf7aaeefca0352706d83e2ade01ddbf41dfdfc7410","elfutils/lib/xasprintf.c":"45c1ef48575c0677590dcd23882ce1e735f971b4a837232314855eb065bdece3","elfutils/lib/xmalloc.c":"391cea372a64c32f7d0d0d1baa899d3a5a68f374b7936253acf21e396383b8a5","elfutils/lib/xstrdup.c":"1d90cc70bffda576d62d406d9a7e2e80277e44dd02fad23e4b489d62df3e668a","elfutils/lib/xstrndup.c":"f9f814697a31eb72c58b41ebc735c8e2cad9e161ea13c815c1c15bc17f3dea24","elfutils/libasm/ChangeLog":"3cd022c0867c14816370b45795ee7c24f0afcac16c046af7de498330390fb1a8","elfutils/libasm/Makefile.am":"5f34862f4818fbaa180c7f865ebd178f5cda245d84883508f09a1e888df33d1b","elfutils/libasm/asm_abort.c":"596c67a967caa2a78194233b88cb92dfaa7af5809fab4e10feb0a64264cfdd21","elfutils/libasm/asm_addint16.c":"22fccc58fbbe74087b95cefde67467d4ddfe9785296362a91e1b31ce5a297da7","elfutils/libasm/asm_addint32.c":"4c17e634728657eaa6ead5914feb5896a093360b74563ffb8e9c84d5a1724140","elfutils/libasm/asm_addint64.c":"abc608212baa838a062ce13b5cf9b9440e48fea1737e1eb4ad6a7c6fea65966f","elfutils/libasm/asm_addint8.c":"488ed6465372ff2ea85079ae89c65261c0785c375085f9d4101bf4dd0f8b81bb","elfutils/libasm/asm_addsleb128.c":"7faa35075dc2aa93ed3b64dfdbe61818310cd99ddfaba120c49be5e175cecf19","elfutils/libasm/asm_addstrz.c":"922e9b198c24906c42e0fee936bf52e59fc03f08500d04b06b672190c2339e75","elfutils/libasm/asm_adduint16.c":"1f5444f55e9a9f6c45396b6384367c6aee58a8f25057931008c251c44fcddefb","elfutils/libasm/asm_adduint32.c":"1f61600ce4f1e01e3cf8577f360bd40ae1d5dec50940ed968318360f3b6cc1da","elfutils/libasm/asm_adduint64.c":"36214c137feca62ae28cfb97adff7e5aeb97bcf8bedb82419bab79e7ad83d15f","elfutils/libasm/asm_adduint8.c":"190b53b0e30bd36c981847c94820ddfa3f1ce88de0d04ed39a2a37b29a9a9cdd","elfutils/libasm/asm_adduleb128.c":"c2de2cc100f388541211a0452d5a1099ae5fbe7f2257575774cdd99a7adf5233","elfutils/libasm/asm_align.c":"eb59e3eaa0b6460762771a4bb4fcece6f6e734af36eda52fd8d5ad6f0e34d196","elfutils/libasm/asm_begin.c":"14d7e3b020c775695bbc957d8b72f3b52b4b8f3164cd22d0ff81ba1399743889","elfutils/libasm/asm_end.c":"5e903ed6216ecf9e3240bafe27bd83523fe3de68a8d5a8da0ae77c3e5104fbee","elfutils/libasm/asm_error.c":"86ac3b26c2cff8ee434d539f93ea1b97ee1b33f9bf35440c8691c42dd4c2f08f","elfutils/libasm/asm_fill.c":"c306be74e47f87ba2fb3946c94f5c40e25721811412bfe01b4b0165963841b67","elfutils/libasm/asm_getelf.c":"e9ade3867aa71840fc3e3f01b0d14ca5928cb8787f10ac881e50fbcc2d8fcf35","elfutils/libasm/asm_newabssym.c":"91197c439d05183142a4f49c635408542e563ad3666da008013932bee96aab28","elfutils/libasm/asm_newcomsym.c":"387d4cabff82d4aa720d9c19aecebfe5436a576a311f64cf6daab2fd599a2842","elfutils/libasm/asm_newscn.c":"2f461a82c78148ab2dfaf86a4e0ff9acb05997d7620dfc7b32cd87527ae7aafb","elfutils/libasm/asm_newscn_ingrp.c":"2264979e4d40e43fc33cb2de56f3f912c04ac5b6f0b14fb5ac693c40508de623","elfutils/libasm/asm_newscngrp.c":"9d69e8c4946a2ad1944f4184d75a3254a5f0d76e43f73ca1ea388c21ec8072e9","elfutils/libasm/asm_newsubscn.c":"7a941a0b1117d46b6b4a07f7bd918d3f05c5663ccf4e205598ce27e32c865fbd","elfutils/libasm/asm_newsym.c":"a05ff6faf3b9b8e5be88dcc3ebcbc6ffdf7d9942904d6febf211d866b79918de","elfutils/libasm/asm_scngrp_newsignature.c":"edc62938e87b0f8c0300069e59b57a1ff3c6491e67951657364a4481ccc20d34","elfutils/libasm/disasm_begin.c":"b0b71a75ba41d7fc1b96398cc11609cd521341b7d4467f110406e9fc0051f338","elfutils/libasm/disasm_cb.c":"8a745cee0bb66cf5e220627f8e01cb4b3ee9060647a4a1dc61f5a49bae3fa990","elfutils/libasm/disasm_end.c":"32f4b900fa531c3be01e35c53086f64e66775bb0d449c0f1326944335de848ab","elfutils/libasm/disasm_str.c":"66fac8f7930ac7671ecfc11bf057e64384abb1545c13105bbd2e2df0dcc9107e","elfutils/libasm/libasm.h":"b94db464373bc7b872383934e06238d41f3a5ecf8cfd007e12d0766fea7e1a49","elfutils/libasm/libasm.map":"054a80612f6b082bf0333c1215f79deacfaf733a67ae02c197f6c75310af4e34","elfutils/libasm/libasmP.h":"eb3ee202e36f12c5aeb548e9ab89d616f90c49b90f83f0d222813a86fe6977fa","elfutils/libasm/symbolhash.c":"d7f232a17824bf9a06b5696dc2ca512a349df4bc802f36c36dc9069a66c29ffc","elfutils/libasm/symbolhash.h":"fde576e59275efdced18950be84fbb12fbb566248bde91acf5501546f2088cf2","elfutils/libcpu/ChangeLog":"25da7f78242630538d959b0e1bc47d63863594c6e6f9ab916253cdf59f41a71c","elfutils/libcpu/Makefile.am":"dbe20442b42a342249168861caf9df9fa30094445035f3b5bda38934d72e0a46","elfutils/libcpu/bpf_disasm.c":"9c8ffa116d2b8c6d82ddc88a1fd29bd5eda839013ca2d8f80130ae0424a35fa1","elfutils/libcpu/defs/i386":"3f6e45d010c2d80c5942fe87bb23e790adcd259af16839c69a018d5dd653dc47","elfutils/libcpu/defs/i386.doc":"d049f9b3270c9d7035b2d7cb8c64b2ee35177513a1103fb07096081b3c2d07f6","elfutils/libcpu/i386_data.h":"2d273606e2aa2c71abad727bca41e55b369475e0694e249e55da92b7ad6c2420","elfutils/libcpu/i386_disasm.c":"3199d7b6e911ca57a474843a815be3c4f7e70b54070932b2f3fe8f7ae38a7396","elfutils/libcpu/i386_gendis.c":"ce0a9dd2f4c5437f4c9b40c9d45f47252d3265a3dda773ab6724da1c75506787","elfutils/libcpu/i386_lex.l":"d778ee59deca53bf3c0ee7315edfdb71fa485aaa19e4ba38295f87a73cb8df1d","elfutils/libcpu/i386_mne.h":"87a1146bae31bd2e7ca8d136468b375b1a98bc1d409fc008fb4ea164fa3b6230","elfutils/libcpu/i386_parse.y":"10507f2b27498ccb53c7848bd02c1fad6648ce41584d3909e235a9036ad13641","elfutils/libcpu/memory-access.h":"e29969adde90e20cf356e73dd773618e688815d60c4046e84e472c72504dbe50","elfutils/libcpu/riscv_disasm.c":"6732b1981da6d12dd3258700999f29dc3b51cdf0a1f4b8ca0f35fc9445231522","elfutils/libcpu/x86_64_disasm.c":"a21f14bcf5638b561f4be39c00407309197b82df987b6c12b5641f1c364e34dc","elfutils/libdw/ChangeLog":"aaaa16dd2a99651da828358fee573a2cb32cb5ebebf814e3e838f5907f0b0a9f","elfutils/libdw/Makefile.am":"2a3aba8026b178420cc7ff9338b958891b0e3fcfbef2703b3a6e782e7dee9e22","elfutils/libdw/cfi.c":"9ed96d786821d6f1dbc75087f10120590e274d9d09abc6d9d1ac647d3d93019e","elfutils/libdw/cfi.h":"f40b3c85096731d32eb6233df73ae0b9c9b8ead98cf256d1284322d7667ffdda","elfutils/libdw/cie.c":"45392cb08cb15c2a7e70a159412a0dc6e5b12fc14629e2081dbc83d200b4a586","elfutils/libdw/dwarf.h":"9be2e5a97b3fcbc60dedb71967667b9a21d562dbfdaa7f9f74f4b3d9cbb5df86","elfutils/libdw/dwarf_abbrev_hash.c":"9fca12f09834b0613062fb89c23d9273e45e1cc30a763e1354e3128c94e6f13c","elfutils/libdw/dwarf_abbrev_hash.h":"c3059792f5d1da2d70bade95de3276cb0171c9770f5883ddbc87dbf8a3fe1666","elfutils/libdw/dwarf_abbrevhaschildren.c":"58a244a9dfd1f8a6daea59d98a13fe78d2fa52d4b0897800296eb84a75027b26","elfutils/libdw/dwarf_addrdie.c":"e99f33557ca992ac2ce9746c18ac5e159471e0ff12d066f7f5b1e0a4273ed8d7","elfutils/libdw/dwarf_aggregate_size.c":"242272f1a2523ff822fde91db4bcb5f3e72279d26ec614d4d91e806ff8bc638b","elfutils/libdw/dwarf_arrayorder.c":"7b4b965d4ee991c81e7ff7c639edf1c96e8fe10ae810122b8bb55ef2551b0a28","elfutils/libdw/dwarf_attr.c":"2a2bc9c24d90ac8854c53073ce3d4b9b05d77925eab741eae81a3eca9b67254a","elfutils/libdw/dwarf_attr_integrate.c":"e273256397fa039cdbdaebd8ebd5a75fbb5149d721bb8130807a99022a619fe1","elfutils/libdw/dwarf_begin.c":"9b13cd3d6b4ad45fb7ef43c03d816c6654eed458af83be9fce4f61e62400cfee","elfutils/libdw/dwarf_begin_elf.c":"9971ae9631382b785a414f67049f2e9378545450c7cddccc30f80f9d140457c5","elfutils/libdw/dwarf_bitoffset.c":"c0a2c62f6b41c86df01dabf44e982d9df70c7f3648db28b1ccd01dc09e9e9563","elfutils/libdw/dwarf_bitsize.c":"39013e0cb88a8fc512863b719aabb588fafe6e968547fb424856f8f0b803c969","elfutils/libdw/dwarf_bytesize.c":"c8f4b625d0ccf70f7cb34a835b2bcbcb58a092f5b3a66909571e5e7a7e9840e2","elfutils/libdw/dwarf_cfi_addrframe.c":"b3fb06841ffea11dd459ecd261c452ae79a68eca6dfd0fa5ad68e01f0d20cbc7","elfutils/libdw/dwarf_cfi_end.c":"9d854581f53052d8646859bbadeab44289aaa2387d7f229d83f8be0a890bc857","elfutils/libdw/dwarf_child.c":"119febb3916372d3965037d9688765d7e8949316d9f1803c450321ab6a1a13db","elfutils/libdw/dwarf_cu_die.c":"18a7febc309807ff393b9bd6a3dd4f522fe606be8327945ff9ffef55c7f1893a","elfutils/libdw/dwarf_cu_getdwarf.c":"13c3e34101ccdbfd0b050ebfcbfd20e6a73d21057de612026c124eec5f55bb1f","elfutils/libdw/dwarf_cu_info.c":"26bba5a72b15fa0fe5c322e6ba03751baa1f71a5056cd0671da267fad280205b","elfutils/libdw/dwarf_cuoffset.c":"959581b61720345b97fa2f2dc7b0893263caa08d1f5e9a8126ed2e577705bac4","elfutils/libdw/dwarf_decl_column.c":"505ba1b260d14b81cec6cfc1307811257c60eed4c5b2d8e2aa1b92f7a9d8f85d","elfutils/libdw/dwarf_decl_file.c":"ff82340a9e07ee707255f9f9c90f24968d700b4a0474b3fd6734c40059a9cb4c","elfutils/libdw/dwarf_decl_line.c":"58f106588fe1bf2622dc42ec8b9ba18227fba1f6e84c978e94aad610009376a8","elfutils/libdw/dwarf_default_lower_bound.c":"7a540a340de7836341f8b45ef74a7e09a4afe3c2fbe41a146ecd67e1b5dc2cb4","elfutils/libdw/dwarf_die_addr_die.c":"e58c51be1d7ac4d265da94839b37e75103cdec6d03cbcd3305834f9b3930ae01","elfutils/libdw/dwarf_diecu.c":"01081ae69c6cd53f4584ec271f3f6caaee7e7c9a58a315634f10a8ddd3f000b8","elfutils/libdw/dwarf_diename.c":"7d45005cc36b046ebf1309f77f9e451bd9ae4ad9716511e5eb684c5e82961584","elfutils/libdw/dwarf_dieoffset.c":"c9ce231b8a3a1f7acd13b7fb2163895b4aa689cbc1aec94b3d89ca085699ac8a","elfutils/libdw/dwarf_end.c":"04e531ae9b9e8680feea8fd40ba7eb6d8464189b33508ca91fa2e5ac1d0fdb2c","elfutils/libdw/dwarf_entry_breakpoints.c":"20c9a32956afe42eb3a6ac2e4e6f079309c14f30126844c99bfb40a544ad4bd4","elfutils/libdw/dwarf_entrypc.c":"cfb2dbbd23c9e187a8a430985e9f6db66ea057c3b19cfac359aaf494a1212ee8","elfutils/libdw/dwarf_error.c":"6867ad23ce86ac9e6fc7f663621824cb9a0c2fdb18eaa3744a7a6be40d7023bf","elfutils/libdw/dwarf_filesrc.c":"c6aeb0bbe8cb38cac6f48ce865d80fecf3a392ed94900879db721d63d7d06b19","elfutils/libdw/dwarf_formaddr.c":"867a319f9627600d4d432bf669332752eff6ccf037571505471dd331e0d57d88","elfutils/libdw/dwarf_formblock.c":"daa33d2bea120cd58c89a0b8453b23793ef822e137b60b185fbf930b33b999e5","elfutils/libdw/dwarf_formflag.c":"76bfde58283b66a7ae3bb4bb668bb4c0053aebdd4b0fde658b5a9cef60e675a0","elfutils/libdw/dwarf_formref.c":"de399a8c3dae31d82d45b465db7ba3e16e1ed4ec58035859c0d2b26b86a34d53","elfutils/libdw/dwarf_formref_die.c":"9763fad5d8d97562e93439ed05faa70aefd353a4c46d640ad1bf25672da5841c","elfutils/libdw/dwarf_formsdata.c":"a3ac144a7cae171ce20d6a1b0de9679769df6807e620891453b7beb03c36079d","elfutils/libdw/dwarf_formstring.c":"57acfa8ca59e02fb1d17998d9e1ed33dbeb9629647def7d0e4ebab7a1cbe7ebe","elfutils/libdw/dwarf_formudata.c":"013d83b780e3611b729076dce2d6c4c52dce4f35f150546113a537d0596be45c","elfutils/libdw/dwarf_frame_cfa.c":"25887b87c249e9e2de5a4202117ff7c92de87a099417d465db85bb042e098c31","elfutils/libdw/dwarf_frame_info.c":"98351b23a1fb165132eef9205a74e468424384b6359fe8a44f02bc9a546c4d6c","elfutils/libdw/dwarf_frame_register.c":"58722e73a350411096842091dfff5c5b1f7e82458a8d981be7c5f44442cf9e08","elfutils/libdw/dwarf_func_inline.c":"edca7e832cf913806bb5e637f6c660298d39065cf2cc196f31abcaff18f6b7eb","elfutils/libdw/dwarf_get_units.c":"d000f5e6514bb659da06dbbd66153d5b943baa16368200ee2fd88cb3d4669c72","elfutils/libdw/dwarf_getabbrev.c":"6cb0cbfd83550710d07ef5156d8f95b0de410f6197185abb870e8e22a8efbd73","elfutils/libdw/dwarf_getabbrevattr.c":"1cf968c1a901cf6a7743338e37e0778aa7edd0ebf7ada51b9478012bc352e6e1","elfutils/libdw/dwarf_getabbrevcode.c":"164a2b55fd994a0e1f6b470552ccb2830ee73f3b814d6282498e47f35410497f","elfutils/libdw/dwarf_getabbrevtag.c":"1f68a843ab147799cb595dbf9c174293bf837e93618867c09f5e3ddf1cb229aa","elfutils/libdw/dwarf_getalt.c":"b3813453f60dc54876e1cd3d6eae8c555fa3efe0913be0f331d27122aae97951","elfutils/libdw/dwarf_getarange_addr.c":"a69bc86be714953461c5f44465f458fbf85bf6cbae2b7e2060544902873012a6","elfutils/libdw/dwarf_getarangeinfo.c":"c8206c2164dffeab806381f19d499c44d62db3e59f015b9e6acbac05635858c0","elfutils/libdw/dwarf_getaranges.c":"424a53062e86e16dd289f56b049b7deab92480e74a9479ba9d6ebe15c8702379","elfutils/libdw/dwarf_getattrcnt.c":"6be63923a644a42bed9bc7d56163a975231ee33c32aee42dbd7e27f104a5c32a","elfutils/libdw/dwarf_getattrs.c":"9a5cb65b284a4c2f6c600d168e88b448ec2bb03db9128b8864e974bf1188f0a3","elfutils/libdw/dwarf_getcfi.c":"a05f17c5bd5c748929e73ae95321a57bcad34520087d04aa59675d301c46086b","elfutils/libdw/dwarf_getcfi_elf.c":"f8b9f20553785806f8598cbc633bb3d7a0c8fbf3c597c9e83ccc8befab60f340","elfutils/libdw/dwarf_getelf.c":"0fac2224ccb87052389d534eec7947dc7caca0b2ad1cb3ddfc9eb00f6c459de6","elfutils/libdw/dwarf_getfuncs.c":"17871cf97c3a429e4365d05a8bedd366e0c3535f5a1e34b257441780c69cbfad","elfutils/libdw/dwarf_getlocation.c":"759aa7e6ed756825b15ff932d6abf6b72cb3da74d0d689c1fa852cda48758cbe","elfutils/libdw/dwarf_getlocation_attr.c":"3213cb523503b78c9980895cc2a70181ea2155c8bf9d8a2551b2557593f2ed06","elfutils/libdw/dwarf_getlocation_die.c":"3a320126df7a76f048ea9e80fb1aa18da685c7e0de9a085750c24adad799fab2","elfutils/libdw/dwarf_getlocation_implicit_pointer.c":"840efdb4d3304b882fd1b5b695749075dd68abed2d6659c6c659dc9e0313f072","elfutils/libdw/dwarf_getmacros.c":"11b6449082007746fccd9e9870260be53de80ad8ceb4a896432fbce98b0b9d53","elfutils/libdw/dwarf_getpubnames.c":"75391a74966e9d07e582c0abafe68c4cb73cfa574839a071e0857cf0ff07b7ae","elfutils/libdw/dwarf_getscopes.c":"4f7f0f8a0a69a498dfdb1f1cc899175811482ae7d64a726b67f6ab00357ed933","elfutils/libdw/dwarf_getscopes_die.c":"6f9e9c3b2695e0249da14f29d8d73dfad552f2e0b42d6ef9cc4cc7f2b5d6901a","elfutils/libdw/dwarf_getscopevar.c":"88cdbba3c0d1b9d21418534ecc07c34d3084c7e4d889069259b1ca3ab101562a","elfutils/libdw/dwarf_getsrc_die.c":"ad895b48247a7acf20aa2a7faa5f46cfc099ee395273a12d30669fe537cb7c32","elfutils/libdw/dwarf_getsrc_file.c":"004d3f1dac2eb414cb0d9573c9e524e40ff6f66fbadd05917b8a500351dac52b","elfutils/libdw/dwarf_getsrcdirs.c":"8e50fddb3c42e983457e7fd50fc5cc018b15c6f54743fccb05fb264e0881bc18","elfutils/libdw/dwarf_getsrcfiles.c":"0d85817c6f27bc39218b49a8edfdd0e966cc6dc04ee3c10d40006d2deb830d58","elfutils/libdw/dwarf_getsrclines.c":"1437418340f7cead562946f804ffb68efd13dd18ece1b0373454ef345bf12d10","elfutils/libdw/dwarf_getstring.c":"05e8c6d143bf46ecde428fab80f50f5a737c6b61c056e1604825a5d42223ab92","elfutils/libdw/dwarf_hasattr.c":"caf7c0541e73a897b56623c0d63deb5385eb1fababb16fa3329c701c887b4e87","elfutils/libdw/dwarf_hasattr_integrate.c":"5911f52253497fd53f960df0014f4d15f99273bddd9072c9ab7ac950ff84280c","elfutils/libdw/dwarf_haschildren.c":"a4519fa61d06c073de985497dcc1e391c5b4cbb1faee6ee7b3162fefb4933d1a","elfutils/libdw/dwarf_hasform.c":"ec0414633ea2f0d35ccf7b172925486842689b7ecc8e0a547b48d1359016b146","elfutils/libdw/dwarf_haspc.c":"7820429c2a6935e6985606302e2542da99567a1d67dd4c055b745738052eadc1","elfutils/libdw/dwarf_highpc.c":"3b5694bf91ed692eb85c6e7a0cc62743d19d3dc1ee8e3f9d0d4272d2c67caf0a","elfutils/libdw/dwarf_line_file.c":"b0c1499086e0ebb95ad5d7e1bb8524ab31cd38089cd9bb156f9bf6eae7888629","elfutils/libdw/dwarf_lineaddr.c":"9014c237ed9ca4fae02ff945acca62e5310ccf3aeecdb60639e0b9fff8f02847","elfutils/libdw/dwarf_linebeginstatement.c":"6b2cea73a3de28dc2c964fc1fc8cd7e354d45983c58b29b86765490e520349ca","elfutils/libdw/dwarf_lineblock.c":"5b0894d106992aa0f280150981743c8889ba2efa8007424c600abacb38d898e3","elfutils/libdw/dwarf_linecol.c":"91b4f4dbf708b675676689b45e4f6790476daf975014f1d67de0f020bf3d8331","elfutils/libdw/dwarf_linecontext.c":"a5a745d54ffb4a76428a33afdada68597ec0c4a08b752216f0e95642b25d3b16","elfutils/libdw/dwarf_linediscriminator.c":"9173217d00077b4243ea76bf63c88bff3d71934e73bbcddc99623ef59b1383b1","elfutils/libdw/dwarf_lineendsequence.c":"6ec83467738b880793eb0713543ab27ce8dfa757a6d1189006571cb6d8abf6d0","elfutils/libdw/dwarf_lineepiloguebegin.c":"e0c1ddc88a3f7cfa1581db5f30bb904ea4f72a46097633286e4e9ed54575e728","elfutils/libdw/dwarf_linefunctionname.c":"dd98380f2b54efa14c5e8598132a1833434ffcd5dcff9b5820849cd276a14dc3","elfutils/libdw/dwarf_lineisa.c":"e3207086f2458582ba89539f0bed7a66e6e98ef3b30f0934125d03df17a76401","elfutils/libdw/dwarf_lineno.c":"5b6365f6b00d67ef24b98d47032e91969143cbf7c24676905f3e6ee2b72c26f1","elfutils/libdw/dwarf_lineop_index.c":"794cbd9692da951a7936ebdb9366c94a810acd03b396362bf73497ee8d47a6ee","elfutils/libdw/dwarf_lineprologueend.c":"287d6703d61d2bff0d452dc8bb53cbfda05694aa0b13a0a1cc1bb6bb9efa1c97","elfutils/libdw/dwarf_linesrc.c":"e5f09fb55b5ba451cee037a05e862217c2a49b7a2730a43699f4d0dd04929700","elfutils/libdw/dwarf_lowpc.c":"181b5c23d340b3210aa6e2972d889f7f07f3ec3a3fb1550c9aaba5ee67ff5e5f","elfutils/libdw/dwarf_macro_getparamcnt.c":"a45a8bb62878e0ffebeba15d282fc5ac35ced475c4e529a205dea17f20e5508b","elfutils/libdw/dwarf_macro_getsrcfiles.c":"07078536222b4b9945f3e2fee76284632f47c19e23611ede09e2034186efb7b1","elfutils/libdw/dwarf_macro_opcode.c":"ed588ef529b2b9818bcd9f55c2287019499182865e81862e45e8894edc9ed62f","elfutils/libdw/dwarf_macro_param.c":"77b1e53377e616b1251b948b1e6ce524f7555ef74f73782692641c72c2bd702a","elfutils/libdw/dwarf_macro_param1.c":"c00b19764805ee2206ccf39579a67dddefd73fcd4018d1d2d998c6c10d91c318","elfutils/libdw/dwarf_macro_param2.c":"0a31bbfa1e0bc49cc5a47e349e13139e0ee7224035b4ee1bcd643933d7fe71b4","elfutils/libdw/dwarf_next_cfi.c":"053172ec8442578a93b0e0e7bf1abec1bdb817969dba9b4c49dc6afce007b94a","elfutils/libdw/dwarf_next_lines.c":"116e53bb63b26bd3f62e97dbfbd27992a8e45e928099d4d1723a009249c24ab5","elfutils/libdw/dwarf_nextcu.c":"3391b675e5816a544ba058a1e712f7748cfb5c1d4bdbd96f40c133d057a63a9c","elfutils/libdw/dwarf_offabbrev.c":"c5d28ba1bd67ef52beb7c3657722f7b9e4d1b0930610466c63836bda5a827ba7","elfutils/libdw/dwarf_offdie.c":"369c3718fa6aeda3e5bd91e55a4f46e3fa748b51ae3d217b8afab9491bf5da9f","elfutils/libdw/dwarf_onearange.c":"0f4ce500df64845f0de4762b281bdd24ab3c7a89ddcc207d02bceb188ce39611","elfutils/libdw/dwarf_onesrcline.c":"29619fad5322ce7d86cc179b76e247568def09217bb326fbaa7c725efe6ef893","elfutils/libdw/dwarf_peel_type.c":"ede601b81ae76b478e1906b637fea32bb6ae87ef44bab0b57e66873f3f08ca4f","elfutils/libdw/dwarf_ranges.c":"75095b6b7782f6c56a6805bed10c65f320ea263e5f437212e55bd17c5b4ed329","elfutils/libdw/dwarf_setalt.c":"19be90d35842110b89d7fa056b5d8c6870b348f05fadd7787c4b2b0b2b33fede","elfutils/libdw/dwarf_siblingof.c":"9310fc62faa682fec9dc4f20f5ea49e3e274d91dc451d56d4f1faf2a8863bc41","elfutils/libdw/dwarf_sig8_hash.c":"24e7c9705efaa1be6413420a30039e468cd48cde31834ac2bcfaaf09274cc34c","elfutils/libdw/dwarf_sig8_hash.h":"88634a5efd6940e9b58a38aebc0749bf9eae99e2b0614b07e016172d80ace8f0","elfutils/libdw/dwarf_srclang.c":"c89f9adbb85e51d4fb03e8450e0f2cf7d477ed5461e6105d35a7d0f8b641f0e2","elfutils/libdw/dwarf_tag.c":"c88e60fec2fdc98b727cf26332deb8b4ec66557844436d51d3c733b82631e8d0","elfutils/libdw/dwarf_whatattr.c":"900555c2a5e3dc9f58cb507b4f3eb4d0233e3977299bef350e66f53b74260c2b","elfutils/libdw/dwarf_whatform.c":"a401a5d2d1b3248738aa53f772b5f76234d13e89368758edc4c3c71204565b12","elfutils/libdw/encoded-value.h":"1dc74f5f814d0e972aa3915e76a30b04b5fe392585de7fe56e562046d9b643e2","elfutils/libdw/fde.c":"0090f71a887360f394443a1da2801e6b2825791413f63803cd20a9347e7e4859","elfutils/libdw/frame-cache.c":"e2fe8ab3a73ec72bca20bdf75b8f9f04b1def3efeeec440632f6dc74e3b7ff9e","elfutils/libdw/libdw.h":"f6864cd4b2bfd7b0752eddd999e6f881ac824903e798a477f53c5fcd4593289f","elfutils/libdw/libdw.map":"1f672111174788a75ee209103002cc8e88f3a24393b681c72d9f908e89172de1","elfutils/libdw/libdwP.h":"81f5018a005e4c6a601cdb45d48be3cf307881ae8a72378e9501f6e7377e5246","elfutils/libdw/libdw_alloc.c":"aa0ec94160398a2c510936de2e4b3f52ec94d801fc2da8fec1a2bbe49b8b468b","elfutils/libdw/libdw_find_split_unit.c":"5a741143a1c76a75f74862bb36f02bfbb54a9c2a4fdc1c0824236f77b63cb9a5","elfutils/libdw/libdw_findcu.c":"2356777a3cc415f770c202e45a49b0a4b9b261b84c2b5400a7a3ba0a55f14773","elfutils/libdw/libdw_form.c":"3dcb408dfccb418dd10defe73bbb226144f2a012cc187d4e8f58ed5bc3b6273a","elfutils/libdw/libdw_visit_scopes.c":"20e92a08d4894c760dc86013cdc077e79c9a7afd691582186fa32807d000e730","elfutils/libdw/memory-access.h":"5d5854ae0db4308d3c45e376587bdd2510eff07b23c6724fa70b3787ffe3bb9e","elfutils/libdwelf/ChangeLog":"7547e9d7cb0eec82d1e653f3d160861eef2fbda1f3d5b2bb0aa4f1460be95c9b","elfutils/libdwelf/Makefile.am":"29eef91719440eb18c7f8d0b2014d0da3c32bdfc4a31e7a88a4806147510d876","elfutils/libdwelf/dwelf_dwarf_gnu_debugaltlink.c":"1d9f42a52650c34efdf124f65d028ccfe0dccae25e2540cadb2f3384eba9c2bb","elfutils/libdwelf/dwelf_elf_begin.c":"7d1fdd04bedd27b40d2221d1a5111c139dfd4ee2c17d1b91dc469e0938160d8f","elfutils/libdwelf/dwelf_elf_e_machine_string.c":"ecd27ba281ce6beb80b574fad7e1a424cb8d699ba78f1a0218f22ffbb36926e1","elfutils/libdwelf/dwelf_elf_gnu_build_id.c":"49f8d5972034a1710b00a1de5fefa5c12e79dfb3d8d8a3d8ffea4207f712d64a","elfutils/libdwelf/dwelf_elf_gnu_debuglink.c":"3bbe6fcbcc9bd8b175dee921cd7fd1082a4f9e650f51a7af87027a8b33a16055","elfutils/libdwelf/dwelf_scn_gnu_compressed_size.c":"862c24bc57cbe4e710ad2c9cedaf71ed3079402292d97c3763bf5afb6dbf3d59","elfutils/libdwelf/dwelf_strtab.c":"369a6c7ae58b8c8698554ece4d0df72d9fbd2236f0ff06643d2fcbc6eb7d2b63","elfutils/libdwelf/libdwelf.h":"3128e0c08481e45f6e6eeae79e6ac4df4a29bd94d1c96a90bc87270932d6e541","elfutils/libdwelf/libdwelfP.h":"5564e467220ff9a05ed6ae1ad0679dff0bc00c738470cbb06f2d62570b16b60e","elfutils/libdwfl/ChangeLog":"1af4f8e065a6ae723c9286d2e40bff8ab42dbc2e0f637164cb9af87a6ee53790","elfutils/libdwfl/Makefile.am":"93b2de33222d268cc13c5eea6af25f883bf461e9a7b4911e8d76ad48280a333a","elfutils/libdwfl/argp-std.c":"1309550cac92e1bad278d216dd0e7cd3386545b30dc40b451f4625dd47c8626b","elfutils/libdwfl/bzip2.c":"0e3ffaf5481e02ffb629ae5bda525598ce474bdeffe67370793892f67169d64c","elfutils/libdwfl/core-file.c":"5fdd3300c54bc5491e807f60288bb281162edf03632e507b0ecc75b00a33d8bb","elfutils/libdwfl/cu.c":"cc9d966edd2bd78db5fcbbac0129cb4eccbbc9b501a62d940c089cd2761f772c","elfutils/libdwfl/debuginfod-client.c":"f2e8b5e2dc2968d9aabf6180144e26e19480c4ee375008e38024692fb98e5d1b","elfutils/libdwfl/derelocate.c":"daddcd2ad3db042da56436149cc1662418749e5da95a336254cf206f10c7ec36","elfutils/libdwfl/dwfl_addrdie.c":"d766a7446a5b6721421487e453adbfabb919a59d642a84c678b657a11b3f5415","elfutils/libdwfl/dwfl_addrdwarf.c":"ae1e91fb347600664760c2b63814811c399619c66d1e6051662d81f4117e699d","elfutils/libdwfl/dwfl_addrmodule.c":"c96b839382140f1898c1245dc51580a89c883bb462fa6518e7713c9a0778ccc6","elfutils/libdwfl/dwfl_begin.c":"5f74d8ca633b53b06f5a6151ed9d7996a3d1a7f2a0fe6a962d3f26d58a4fec25","elfutils/libdwfl/dwfl_build_id_find_debuginfo.c":"ad05e154b45b241c0c471bc4fdee144c48ba399eba5ca93b1a1c2b8fa3434165","elfutils/libdwfl/dwfl_build_id_find_elf.c":"8a7f68cac96c96cff1499e6fdbbbf92b37198800640e1db0e1644965db56c0f4","elfutils/libdwfl/dwfl_cumodule.c":"bfd83ae8091163a0663e7c92d4a41135412897cfaa6a0d235693745c32876e7d","elfutils/libdwfl/dwfl_dwarf_line.c":"50a327c8f6af508e4ff4b6b34d68e16a952c61070b4337c5be24a7352ee4e57f","elfutils/libdwfl/dwfl_end.c":"80ae072fa2d1d54629da24b814e2c7aee689a79c4fcb4b7a15d31d33aebcc703","elfutils/libdwfl/dwfl_error.c":"d9fe24edddc543c2c2f1897fe7a06a2aab14e24380105427784f53f00d2b5044","elfutils/libdwfl/dwfl_frame.c":"b85688ad61545e00fffce86f2344ae3c5c10d56c25d3a7eca387f9c4ba5a0a31","elfutils/libdwfl/dwfl_frame_pc.c":"5434aad7921e397e31bc526fdb9f6e6143bd70fe72b22dedd40883fb0cb231b6","elfutils/libdwfl/dwfl_frame_regs.c":"8aca1fcb1f022531cb263df4d44c60f7766a6584ebb67d88900bfcd076de8f2c","elfutils/libdwfl/dwfl_getdwarf.c":"9b01f855d77ef8eb472df7916636abeb9653980f5a93a7e0a9b7df4052b61509","elfutils/libdwfl/dwfl_getmodules.c":"6e6f78c201b495a5ea958c2d72fde1a3d6b3bd407dacd298e6b49a13344c1f68","elfutils/libdwfl/dwfl_getsrc.c":"779035321a84ba9fc86026c34b0aef14debdd681c24ff274ea69b5dbaf6cf114","elfutils/libdwfl/dwfl_getsrclines.c":"3e7c0a8a64af347085f35f6e971ccfc8b6178ea6cee6a5cb1d858a87b746a821","elfutils/libdwfl/dwfl_line_comp_dir.c":"bee7823544b8ef0e1bdc03a1c0a1462fafb7cc5bf959aab1e6e019187ee3b8eb","elfutils/libdwfl/dwfl_linecu.c":"7c113a6360ddb1f62bac702f0e5573a71547ec6d3f21a5ff8d71e1462c054ae3","elfutils/libdwfl/dwfl_lineinfo.c":"95fc6c47e8a5031436a8d5e3e3da817d867349b869c03451b98471a8767fb514","elfutils/libdwfl/dwfl_linemodule.c":"b4d1c6c968bc1f292a4b45800d0d739aacd48cb14ab930a39cfcec31fed8e3d9","elfutils/libdwfl/dwfl_module.c":"c040cdefb0ef1ed4e08efd6bd47a1a0ba5cb6ded1fc48dc2931b404ae3dcd093","elfutils/libdwfl/dwfl_module_addrdie.c":"f81f85c6406c790b1dbde9e1936c4e27f9d4b809cf3a1595ff7366023a8d67f5","elfutils/libdwfl/dwfl_module_addrname.c":"0ee82c8314ba43d072a3439caff1a71923df33ff64672f7d7d935c6cf7f7000d","elfutils/libdwfl/dwfl_module_addrsym.c":"3a0d3bb6c48d4a4471c45d872005d55756ea7018cf042be2ca6367c290a7201a","elfutils/libdwfl/dwfl_module_build_id.c":"a9d5ab2a1fcad80140a18e722be39705e1b1ea80b3fc9b9784bc4cf547ea824c","elfutils/libdwfl/dwfl_module_dwarf_cfi.c":"2538a245875b5b17b67fb3be147ae91ff9cc4fb3a1b7dfd9edba4409ac777b12","elfutils/libdwfl/dwfl_module_eh_cfi.c":"51d41dbc04a584ea44f24cb9f15b48d1da7e020ce257da96e0bebd0de0395c90","elfutils/libdwfl/dwfl_module_getdwarf.c":"df74d38bfbe05fa3d2fcc02428a0e145af5801a30e04a7943d3e2fea2360e678","elfutils/libdwfl/dwfl_module_getelf.c":"ccb7abbf1a39bef8a16452cd0467f9bca105b10000bb62433dba2c6c16f37244","elfutils/libdwfl/dwfl_module_getsrc.c":"d1d36fc7580f94c70bd92d66e56d9bbb41d9b9b32b108aae048f2fe39265cbe9","elfutils/libdwfl/dwfl_module_getsrc_file.c":"5c03dcda6e43437dc0467f2a349f3db2d0c7c6076e1400db95e2b9ae609ed4eb","elfutils/libdwfl/dwfl_module_getsym.c":"a5bb0726d546560b4bcb7ccda09d9487bb6b25f3de3a1678c93673cc1f37cc11","elfutils/libdwfl/dwfl_module_info.c":"93955e338a5a544f3032c5c079a3330181a86d66b82608c9f8dfe308d2884d63","elfutils/libdwfl/dwfl_module_nextcu.c":"9d9eea4f968cd149398ec3d63669155058114f7e56101454b31bae693aa94680","elfutils/libdwfl/dwfl_module_register_names.c":"24718ad3edddb978ddb232ac7b8b5b9a7f4fe0f21812cd84a57d8d7c6be0fb20","elfutils/libdwfl/dwfl_module_report_build_id.c":"d897117d7fe86fbe98f52388d6e68a74db504b2f7c96031d60c75e7ab975a1e2","elfutils/libdwfl/dwfl_module_return_value_location.c":"d2e7a301e58d39387a4563b952aa02bd003f92f7949247b0a890ad284a61906c","elfutils/libdwfl/dwfl_nextcu.c":"915152910b5df32239caafbb8ebe0ff25047264002523b8520f6d90bbb865d90","elfutils/libdwfl/dwfl_onesrcline.c":"dd0c19da35df9d709484b0fd13e4eced02d81a67328a1085cd2a0a66bc2bd1d5","elfutils/libdwfl/dwfl_report_elf.c":"9db1733f97fabaa37fee8a55ab7fe7671e52f11f6bf17208d58e8cc84283d7ef","elfutils/libdwfl/dwfl_segment_report_module.c":"46c76ce2cec0f95b8ef0ee1e3767ba3fa44560424cefc6a80090b785e76c2e5b","elfutils/libdwfl/dwfl_validate_address.c":"f4de9fe82cb233b0db64648286a930cf42d8d3b7a90e36243b1eeef475f0b34e","elfutils/libdwfl/dwfl_version.c":"d568e2e174c0bf4843790bcba1f4c65bcf7e2c7827ede5907448af9c1f35b3d6","elfutils/libdwfl/elf-from-memory.c":"eabda2b0e8e245818227ec5c7d4db2ef5ca1fb9d92d0a8b1c8ab2f6574f3082e","elfutils/libdwfl/find-debuginfo.c":"01b4e5b76a1ba3fe9054fe347e411d41b5a5908d2e27fe5cf4728c45ff7b84ed","elfutils/libdwfl/frame_unwind.c":"0808bd5a5b326e6cf13c932bd857f3b7df8f609e15f1f1b29ec23f51e13182b2","elfutils/libdwfl/gzip.c":"0156f64e4fb1d0c95ab04aae342e34f4bbd1dae30135b4999ccdeccdfa2063d7","elfutils/libdwfl/image-header.c":"c0c27191d582678065a2398008e03e7ec6a35653bca1a1e472dd866a94e2a2e7","elfutils/libdwfl/libdwfl.h":"b16bf2b86934c6c683a398e1603a2354093a56c97b1fadb9ddf9d0ed974650c7","elfutils/libdwfl/libdwflP.h":"b6becc10115e42cda822d32912ba133bf93d2d775e2063d5e7ff66092307f943","elfutils/libdwfl/libdwfl_crc32.c":"a998a3944d8ef96990180f15860669ab99597046a63f76c6fe9d61c29b7dc767","elfutils/libdwfl/libdwfl_crc32_file.c":"5448525f484e66c652517a4f59c4cce5155b2e78b2321057a52b946519aefc9c","elfutils/libdwfl/lines.c":"e58e7f37c3160067f1c6aa905b46784d17ed355132dd1c31657ca8937e337ebd","elfutils/libdwfl/link_map.c":"1c2158e03feab7b26a3563e61814ac8cad9716f4d9de6cdf7e5004adf15adfdb","elfutils/libdwfl/linux-core-attach.c":"6c2e26ca2467ea4b670e4c8b32ef5f4fb37f4375975bf48b1bea6bf358ef165c","elfutils/libdwfl/linux-kernel-modules.c":"59ca2fb0e4b59d8b21e5f7128accf333a7ee5f4d20e250983fb2ec0f93e5df25","elfutils/libdwfl/linux-pid-attach.c":"06b3f6156b7353692d3f5d2cc99e64e04bc0857775cbce5764b06d8010e7bd20","elfutils/libdwfl/linux-proc-maps.c":"6916e63b0fff1117f584e02a1c233184fab90903b2994082083ab9be152b223c","elfutils/libdwfl/lzma.c":"597e808890bb5323f0c590c3a5ba2da757a340dec94bab902a2bbb72f0574017","elfutils/libdwfl/offline.c":"9f7916e08f355b83886d70df2daa06338f5c07394e0e63ac632cbf4af87cd070","elfutils/libdwfl/open.c":"c72ef10fef03b6c34ce966ef8798d3faac3c09a6355bdfa08b8ffc19b1bdd581","elfutils/libdwfl/relocate.c":"52a5bb20fff4ce9fd06aaac00ef126beeebbaa1982a39e0c32c82900ad493eef","elfutils/libdwfl/segment.c":"51411d6cc77b865f87fb817df94fdc01234b645d65e4985ed49683dd3879e089","elfutils/libdwfl/zstd.c":"789b573e397e0b23004084f5841b1364f1e2dd4ee99307782a707c56d5cb0260","elfutils/libebl/ChangeLog":"ef102a337dcff0f95127a9d261fa9951e06d3dda7df84091e212b4d3f84b8bdc","elfutils/libebl/Makefile.am":"d51442f3aa95256ff9c518bc99492800824de204fc81457b23833b4e987192d1","elfutils/libebl/ebl-hooks.h":"6bb69e3f4a1ccca9651dbe6bb2819d27f03d130c52f4df566ce181894d0bf92a","elfutils/libebl/ebl_check_special_section.c":"a5448145a624631b35e7850312e9ecbabce9dbe3f6f0f25334b9081899d344d8","elfutils/libebl/ebl_check_special_symbol.c":"9e6d2691009d70b2084cda158b08458703d4b9df0082b30a03fb019bf3952e48","elfutils/libebl/ebl_data_marker_symbol.c":"d11f2dee0be547319f7dd2f62bbef98b6e0c10a347f2b0eb7f71b1777f523007","elfutils/libebl/eblabicfi.c":"4e5d4341ee877e5dc478fedde653940df6b6505bacd83281b88630ac018c12c1","elfutils/libebl/eblauxvinfo.c":"8940be7c01ad01be962260bc281ac07c620223a1862edebc196de84b5c609ec4","elfutils/libebl/eblbackendname.c":"b472bd487630d8bba7b7251b79e9a9f10c68f8c4e6f7bed08d75e1d6e5285534","elfutils/libebl/eblbsspltp.c":"1a497427ecb4397d54aedd5642454e32b50e06e74e26478124866db2a370bdba","elfutils/libebl/eblcheckobjattr.c":"449403146b92c102fe96f30ef0368a4989404a14d096951842d148d92d63e9ba","elfutils/libebl/eblcheckreloctargettype.c":"d11cbcdd77dfd3f5dd28df12d5949366c4e0c73b3eb9daf3c891be84a8cd3177","elfutils/libebl/eblclosebackend.c":"06e3d08cdac757baa22d2455b8eaae7ce930fb543c110eda38259b19028e40c2","elfutils/libebl/eblcopyrelocp.c":"2cdfe1ea589bd58405c913d7f6c553451897063fc5b147c0a4be5556918e9fef","elfutils/libebl/eblcorenote.c":"70fd1a819a23669b8284cb0b1b329eefc19ac4698a6faa2649c0a9d21afe1fd8","elfutils/libebl/eblcorenotetypename.c":"bdedbc0da2e2074daadad486bb972e33bc8f31fa1c68c7ba7ad334511b5bdfd4","elfutils/libebl/ebldebugscnp.c":"45bfcdbf8cc8cfa3ea5e8b56798e014be2947cfb83cfc5a4af240b227803087a","elfutils/libebl/ebldwarftoregno.c":"faad26ad99d7dded935a7f511015b3bd434c8d9f9d43270f396e6b15276ea4fe","elfutils/libebl/ebldynamictagcheck.c":"7de681b372f290129ad6f21bd2aab6175141675545701ce813d09db3ded3697e","elfutils/libebl/ebldynamictagname.c":"f596f7431278fa9941d3d710ce33780e7b01a8cd02d8b7417361d16162e6c3cd","elfutils/libebl/eblelfclass.c":"c5a4a0f240eb911c76bb6b4cadeb3c2d0a1a1d58fcff44068bc878f757b24c81","elfutils/libebl/eblelfdata.c":"291bab38bcc71ceb121a1a0a3c433739e7e49f6506b1baf50a0c4d5e655cb6c3","elfutils/libebl/eblelfmachine.c":"2ea10437dac057a92c626a1ff1cc7e82328ef9e6ad3408894f0fdba09ef06d16","elfutils/libebl/eblgotpcreloccheck.c":"b53b5a05cfaded71fe9ccea96f96f899edd7d9e42de52e926aff05dafd20af0c","elfutils/libebl/eblinitreg.c":"634214eae80bb606e640c1807dca0e57164ad41b8d19e094f7379c433e5dd4b0","elfutils/libebl/eblmachineflagcheck.c":"baf17d3948aef5797a4810750f395a63fd2d08525479a786e0d8049a59247dd9","elfutils/libebl/eblmachineflagname.c":"afa1f4020dc3372a81fce76380cbc2b18bb02a5324f4fe35018c4f30b320b630","elfutils/libebl/eblmachinesectionflagcheck.c":"0ad005e95fd5480a09d6dde5b7d9c30dd2fd54360e02b5f8ee7211d265099515","elfutils/libebl/eblnonerelocp.c":"e2a0bbf2d6f166ad3b710f1351ce8441b9149053b5ce5ab8a3211c88c99fc317","elfutils/libebl/eblnormalizepc.c":"b2d767369b45b44acf18f3f6dc4db82f8cfbd5292c7b42066439e28c5effc073","elfutils/libebl/eblobjnote.c":"62a874f6ff5dbc454d1f7bc2057bda0d10fc5d8e677b5eb1ca24af8a93587e80","elfutils/libebl/eblobjnotetypename.c":"c64b3114600406601a771f845b54f16698055f20c408515ccbdb719d82eeba46","elfutils/libebl/eblopenbackend.c":"9a093f36ed6744b14f74c4e32c86e15a2c5c24af53dfd4d645dfa0fe28bcb7ee","elfutils/libebl/eblosabiname.c":"e24d087e5e63e3c9ecc815bab9d34930d08e8a28f8ef4d3bcfdd32a3a302cc48","elfutils/libebl/eblreginfo.c":"349cf386146e0300504ac1c8294f74cb6384a72c66482e0d51f9b14ce1ad195b","elfutils/libebl/eblrelativerelocp.c":"897e0758cc7760ad1121ff9f02bd280608dc065ea0bf8513ed02fd4f97ee6732","elfutils/libebl/eblrelocsimpletype.c":"937141d7fb67880aa8761e7ad1e104729112a1f9374b593aeea1377f4caf9c1f","elfutils/libebl/eblreloctypecheck.c":"38990ce71c4781f5d9dde310119b6ec4e89848528ff0c9ebc4b313216482fb80","elfutils/libebl/eblreloctypename.c":"e5709c461333a4cc39e716abb9ea0df26d191d7085586ed09e0076cb4738ac9c","elfutils/libebl/eblrelocvaliduse.c":"078e53780ef2850338dd286c790d2cb2b3ee4fde6c050c979494f36a349b4147","elfutils/libebl/eblresolvesym.c":"0ec1b47071bebb5aac351addaefc2bdc4e5e0f1b0352513ab2c12a511ba9a37f","elfutils/libebl/eblretval.c":"907d1a2a66acb1807f9074abf24bc519bc930e00c1fa5607714e66636b98c5e3","elfutils/libebl/eblsectionname.c":"aafc8b53583bac73d569f106e36142a6ee58ad0053ce97450e238ba51d97b410","elfutils/libebl/eblsectionstripp.c":"e83f6dbba6067caf25476f96815f00cf254308981a73fa18cca31f9fce9d6fff","elfutils/libebl/eblsectiontypename.c":"658a55b42b47add086518c300affee922f1201739a52e79cd5bd0b40923a2fab","elfutils/libebl/eblsegmenttypename.c":"5022c5ebcff78eac7f4ea8d84c6e1e4fb867280e2477ce2b87a0413e2801f485","elfutils/libebl/eblstother.c":"83eb7c4f40f5b30e532fe1bce5354c34df1de8b7ac51724cf3e28ad0d54cf3b6","elfutils/libebl/eblsymbolbindingname.c":"e379aa795aa6753849e5953e8177987f42ee2594db6e09c979544bda64288426","elfutils/libebl/eblsymboltypename.c":"6b9e5fc0ec1802c979b631b45fa6225ad5df89fd17a12ebd1596dfd8f717771d","elfutils/libebl/eblsysvhashentrysize.c":"5d788955cacbf30fb3d9c9eb34f9e49d40bc66c5e904893fbd32c2509c9578c3","elfutils/libebl/eblunwind.c":"a86c22addf2a0bf6f26bb648fb5e1e021c32adad92306ec2fb513a5ddfb3c1e2","elfutils/libebl/libebl.h":"64346f61fe7ce25e5c5c52769e995d811e8f19eafbabe3ae27545b12d5906293","elfutils/libebl/libeblP.h":"baacf82918195e9691c407631e06c3854fec64eac70170ce6933f276db2bd73c","elfutils/libelf/ChangeLog":"d7b25a3e41e8146c9a354859895bd27bfad1a0db84cff1a95514f8cbb2752bad","elfutils/libelf/Makefile.am":"f36d22c2073b101747be2352d96c448b44a283c77e33cf7a6f746a5e24c992b1","elfutils/libelf/abstract.h":"d4c75181517152c2cd596243a3d5854451287dc0d3e6d21972e0dd54068b3d2a","elfutils/libelf/chdr_xlate.h":"bd50dcb629f11b1efb151dfcf35489b04e43b113da9fbd14b571cf9702719e02","elfutils/libelf/common.h":"96a2b5c40c65aa807ce2473659ba1cf2952d1e0e5817d94d868a0dc40db1830a","elfutils/libelf/dl-hash.h":"9dd7ad0f1baec9916a98fa0bde53ff86451c1f447d48d65bd9901f14face7eb1","elfutils/libelf/elf-knowledge.h":"65bbae885e70c5cfae95a20ae48370f873206951a9678660dab8e72a438ca80b","elfutils/libelf/elf.h":"bb9cf32641d3408dcc1416b5f75e4719d4a58bbbb76606a5ebcb0d273a7921f8","elfutils/libelf/elf32_checksum.c":"142f324f76d35cbc5965ec2635ff9f1bddea9398eb7da2476f586407da61961f","elfutils/libelf/elf32_fsize.c":"4e2af5fd5a24032ff103d3270d054f6a880f49b39d02e2c767b3e8ee1612251e","elfutils/libelf/elf32_getchdr.c":"a121f626b288e5e4a27bb2d86b6a379cd854096e2e1eff11fc35567312407d84","elfutils/libelf/elf32_getehdr.c":"0f2506006f671b4f0372498564a2a2c8d051f7f1605dea20eaf58f6fae49e4b8","elfutils/libelf/elf32_getphdr.c":"d49cb9797ffdaf13570ce0fc4ce343e94631f7bec099595307ab22c6fefa10a4","elfutils/libelf/elf32_getshdr.c":"6608f87e4ad79a2f5ab0cef78bd2dd7ebbf1e70a86d70074797f6b77eef2e8a7","elfutils/libelf/elf32_newehdr.c":"a4afcf45535d8ae304ce0d3f2b55b37c647d2fef4ee6f01db5da3ec73d0e4d19","elfutils/libelf/elf32_newphdr.c":"59e8f242c7876ef0b7182cdf3556e3d20938bec1a9fdc75ef1462f6aa0df0f10","elfutils/libelf/elf32_offscn.c":"7baaba452d40b70dd85af950c465ccb196330bb92ecf58dfad6f8b964fcdce32","elfutils/libelf/elf32_updatefile.c":"396302a2d25990023214a600c094723dfc7871acfd9f5a0ba92491b901e526b3","elfutils/libelf/elf32_updatenull.c":"c1cb0013b3180e774ca5241dbdc4ae25f5c906068fdddd09170f7d1b53b3d6ce","elfutils/libelf/elf32_xlatetof.c":"e2e541b975f1214552db5192baa71ce23d958d293586733ce8489c5baa3ebf47","elfutils/libelf/elf32_xlatetom.c":"7fbf9c489a3a332d245f72ff1c4275a94f553de8f87aed618a9d69541556ef17","elfutils/libelf/elf64_checksum.c":"f7fa8f6b8c6d2d42ca48b42ebf7585d59110d28ac6f7582b642c655f05a9d2d0","elfutils/libelf/elf64_fsize.c":"711ae62c00926f2b5582777bf649857ed96d0d3acee131227a934d6cf767288e","elfutils/libelf/elf64_getchdr.c":"44641d2f043c996f690abe46b9748eb369cca75df0e1cb07442fc454a234bfa1","elfutils/libelf/elf64_getehdr.c":"30819d9be4cc424570daaf6a0e79b9f17b16eaeaaa91963e56c1a64851909159","elfutils/libelf/elf64_getphdr.c":"689e88a64a9226bb395db1cc307260b2755a097c8ded32416ded16f21cf2ffcc","elfutils/libelf/elf64_getshdr.c":"bdd0a04b010616b6cabcdfb0bd1bf12563d9b28a9a2163aec7baed8d8da765b6","elfutils/libelf/elf64_newehdr.c":"9b1cca1504edecb2c2c7356331ff46607e33e166166fe8f7fea9c1b10e92e957","elfutils/libelf/elf64_newphdr.c":"ba92bff0d44d6a3962dd2deeaed766986537c0067af5122c784afa274b43eb6e","elfutils/libelf/elf64_offscn.c":"51528083154e4c9f39db9fda5181be7b135e2253f9c80135a6d8502ab3f719f5","elfutils/libelf/elf64_updatefile.c":"a13db95dea6141936b4eeb3ed5e1dcdda68eeadc2e661ef7e414d5bf9284a46e","elfutils/libelf/elf64_updatenull.c":"b0c3c6005e6189695096760cf303a4088624414eb81bc64314f031709eea6833","elfutils/libelf/elf64_xlatetof.c":"e4594931074bd1deb5ef539464f1136a14bf58d4d943ad521267aeac574fd3aa","elfutils/libelf/elf64_xlatetom.c":"7a833f33e737c6602c84354ab8b3b7e47a7f7aa66326cd7e2c7e87eb162b0f21","elfutils/libelf/elf_begin.c":"799639340918d6ce464933cb8d961aaf2443fcc2c1f8e0d0bc195d44a1b5153b","elfutils/libelf/elf_clone.c":"4b3977e1a8048dd19a3522e9491587c4e761dc72d06de92c5403fcd73b3f5b99","elfutils/libelf/elf_cntl.c":"0d7c30ba8359ac268db16625545dc526add1a100fbc17e607a7d2c7a7aaf35f5","elfutils/libelf/elf_compress.c":"e099ef44ae195d76b9f1b485941640d836159c9c27968f6f242d7699cc6f3e18","elfutils/libelf/elf_compress_gnu.c":"8674c9fb345738c36c09355797f16e04157224bd6fc52e53756d0197702c6089","elfutils/libelf/elf_end.c":"ab024e1a3bd4d67002b79c9d5c44bb842d8bf93c11f85719f97333b934d2fba6","elfutils/libelf/elf_error.c":"99fa1a6fb6f04629398fe4801be376645b12871740d6488fb720f671e59ea970","elfutils/libelf/elf_fill.c":"860e6b08588eadf483b661d5c1b77c42a93187bc92fd73f539546ae506fc6395","elfutils/libelf/elf_flagdata.c":"037bff6e904856d640d6088e4dd33d9638021a1b5cbf1c91c5d90813ab7eacc9","elfutils/libelf/elf_flagehdr.c":"eb6d5646576c8a97064fe6b59bc2a37e4430e68072e27074353bca9aea28f1c9","elfutils/libelf/elf_flagelf.c":"c9741ee9decf60f349fd59aa8a9c73cfcebae5f3c9111afbcd62a7bc3c2602b1","elfutils/libelf/elf_flagphdr.c":"59a3df220f97e88a5c2a547ba3a34faea7b84a72c2ea489120ffc905d373d53f","elfutils/libelf/elf_flagscn.c":"ab3c8b386e16c8d8b9ef957f2d1499afdd00a535c98843076578d63fb2044b21","elfutils/libelf/elf_flagshdr.c":"660b846563c23e445e0b926780da7dd863b044c3cf4674c8de62e6abca068231","elfutils/libelf/elf_getarhdr.c":"f6a2c98602267cc337becb8715ee12782aef984a857e34af53a4a497cf207b38","elfutils/libelf/elf_getaroff.c":"ad77899cb3848850f5b8a58a744827ccaee0e6881ac49cb66476d7cd9368646f","elfutils/libelf/elf_getarsym.c":"ab941ee2b2a3f5576e766d9c494104e03549cf10ab929c3ca5c307981d92493a","elfutils/libelf/elf_getbase.c":"b730a6075e7c512df2f87958104af0db4ff676e62d434cdbae8406f0d30ae1da","elfutils/libelf/elf_getdata.c":"c2c9849827471e1de555f7b80766fe39a6c0001b7b1a0ce99aac4a1730ecea4a","elfutils/libelf/elf_getdata_rawchunk.c":"f2b82c84fa151fddb1683816033638e03eb279942e49125c1c79f2e68430f1d3","elfutils/libelf/elf_getident.c":"9d0d848ee0f4622d182679127dfe3d6e97f16b9e3ff433194a2516f754792856","elfutils/libelf/elf_getphdrnum.c":"c06c3c3b99e571add57f2b11ec6bbda4b9afad5f82dcebc91c377a2920c29614","elfutils/libelf/elf_getscn.c":"89455e9aead91da9c491ef28fc9824ba865badf67b68db7e991e6c5bda188718","elfutils/libelf/elf_getshdrnum.c":"a78d34faae6fa4330d89d8706f330a296095c5584bc3cd3f7e3cafc73a4afc12","elfutils/libelf/elf_getshdrstrndx.c":"48adf92961925411b0abd4b16719e48cccc2176cb69179e3dddc2b4fa4e30dfe","elfutils/libelf/elf_gnu_hash.c":"4ab2f5a3b5d66b4f54d951ad80ae7adcb0ed58bd566644a7bb55bdf65109c5ed","elfutils/libelf/elf_hash.c":"f3d6f44906578d71eaf5af78c9fe07ee31986d4fd3d9739c0defed95de9dbdc7","elfutils/libelf/elf_kind.c":"7c07f7261c160cfb6baf5a442c452c230a5cb8dbe660cf3300b0ae0772908d19","elfutils/libelf/elf_memory.c":"03ea433295732b64acf8c116d75d4b0d3e50a2e6163009e245de1c05b25cf3c6","elfutils/libelf/elf_ndxscn.c":"a36975824404804ba1b8dc453733315661660ab4f1dd4156da051d6c2328d335","elfutils/libelf/elf_newdata.c":"e67cdceb9aa0a19b1cf6589561682f2ca2ef292e601cb1cab3d62a3c71b19b4c","elfutils/libelf/elf_newscn.c":"9217e0bda73f3ca5ec3c20b3f92860d4ac94148e408ab76791b0ce3c70a86de1","elfutils/libelf/elf_next.c":"3685f19aae1935ac0115d3d4f14e6d2e963eef171c7fce2d4797f8f25e2f3656","elfutils/libelf/elf_nextscn.c":"32c63a788f5abffa6544725d63acb4cb827cc4dae0df1ef4c812ad74083e712a","elfutils/libelf/elf_rand.c":"ddac43f2889e3c1f577f5075c95223ac0f2047b55978cbdeca026c3fbb8fed14","elfutils/libelf/elf_rawdata.c":"444233585fad02d6f7e92707cee935b1acef44123b065f5650035a64b070a697","elfutils/libelf/elf_rawfile.c":"940646875ca42d58cf06b26294c2a8f7fa446b03728b198213c24efeebb38b36","elfutils/libelf/elf_readall.c":"173f70247f91be98af3bf79d53096f0840550a637a7cd613779e3bb7aa994088","elfutils/libelf/elf_scnshndx.c":"2961cf9c5860113dd7e93e062db79da7453b1d829b74a8b07f39124954234320","elfutils/libelf/elf_strptr.c":"46d09d06f8d677e137eff5a0f76799b622c4d1cd4cace0941907103f47f9c70e","elfutils/libelf/elf_update.c":"5f8b941642b28b3a0463bd6a791e1ddbe6cdacb8b39abe43128f37f3648c6a3d","elfutils/libelf/elf_version.c":"d9fe4790d6894301a9f2ae1d79dfdb473e5a930f65a33e0f3e89828dbc6f31d3","elfutils/libelf/exttypes.h":"5ed72cf436dccc11f1ae71fa4421d45c88d11348f5bad29b7c2144d73c34d8a8","elfutils/libelf/gelf.h":"0991a992f75396056c7d7f698fa7e87be24349ae85a195060d46e6a61881d97b","elfutils/libelf/gelf_checksum.c":"7b9c07f01359e2ce8f037e357fe871784e6635305409a04c26f5ed74c313f82b","elfutils/libelf/gelf_fsize.c":"4f6c3363d17fde9e5fd6e821f925468555825631368d3a801ed497cbe9b3521b","elfutils/libelf/gelf_getauxv.c":"2cbe7abb87d3e4dd2586a65fa4c592fd587f3b78d50748e6770b42cbdd490ef4","elfutils/libelf/gelf_getchdr.c":"5e109998f1937f651da07423b4260ba6dbb0e0c4f230f05ceb73e06702630b9e","elfutils/libelf/gelf_getclass.c":"3d61ccf07fc5976f354e622800cc4a7705ea141659c87ac47594c2bb0b2e9904","elfutils/libelf/gelf_getdyn.c":"445f845f2506feb34561c4dc982b870c1b0f4ebaa2ca6c986ada8565e39636a3","elfutils/libelf/gelf_getehdr.c":"7aa089773d24ca3efcc5fe496ff8e81a15353116fb6dc0fe22d0089d653faf7d","elfutils/libelf/gelf_getlib.c":"e08d10b3797bf321a7df2a040f3082cedac677047453262e05a7be9aa7f6f01d","elfutils/libelf/gelf_getmove.c":"b95b88c27fc01a9cd8e428cb9c143754cebfb23cdb8cc165186be57089e8737e","elfutils/libelf/gelf_getnote.c":"9be3defea91eec8defbdde2a1a20aa53a2fe161afb29e37846db2e7b75a807b4","elfutils/libelf/gelf_getphdr.c":"f16c1bd05bdc5e3e9d6fc42ef9f2bde8d541bb0d7ea0e385041b375debea2c35","elfutils/libelf/gelf_getrel.c":"b682824f2aa0353d74190a74bdbc9e6cc5bc2e32ae6d918e712b29cd4428f7d5","elfutils/libelf/gelf_getrela.c":"a293e5b82c921535f1f802513f03ad7745506213771f747d6cccb9407d65e5f0","elfutils/libelf/gelf_getshdr.c":"84674151e9d68764ed2ea294ca488506f6a21eef522dd0cac8ea66bd91547fb8","elfutils/libelf/gelf_getsym.c":"7f4bef942946fbdbf9c9b7b4c7b08d19c05af711e71187006cd59a0939d3a704","elfutils/libelf/gelf_getsyminfo.c":"e1fa7ff03175c02b2ae9eb54820b1ccf69ff0ead5b5aac9e3b31e4fc8ac85fd3","elfutils/libelf/gelf_getsymshndx.c":"8d36270d3b665ad829c9110c33f925c1c053df21195468d90102c99bcb0ecb75","elfutils/libelf/gelf_getverdaux.c":"a3d814ade37a45150c20ad7f720db53a6afeb8fd0d6d4f153de550a4667016f6","elfutils/libelf/gelf_getverdef.c":"3f3225113dc56d8a679e2c11fa54958356f723adfac23547053ee2440944b790","elfutils/libelf/gelf_getvernaux.c":"7104ab49cc68a38e95b13b01631442ae8b1f9cbf43eeed325b230d251675f5bb","elfutils/libelf/gelf_getverneed.c":"2c8c53f4c96bd1c7ed35f4759cbe7d8cc1431f34baec5aaf87c1e3cd50fadfc5","elfutils/libelf/gelf_getversym.c":"feaa47a63ed04a57707aeb1848bcfa3f781f816454ec10c2cef530387979335d","elfutils/libelf/gelf_newehdr.c":"0945ba5617156e667c6368e8a3307421d735d9cf881bc67c4b25a46c9fb652fd","elfutils/libelf/gelf_newphdr.c":"808382e4c43296981aa3a8a93e24ff1d9876f7b4afde1b4b677f7339490d563f","elfutils/libelf/gelf_offscn.c":"bd05d0bb0b6cc096e7952e7ebf5c8997fe2f81cc017f53dadcbfd11010b98709","elfutils/libelf/gelf_update_auxv.c":"0c67043b5fac60ef3094d8c8af41ea0cbf703cf8ff2dbf7e767437e955375e69","elfutils/libelf/gelf_update_dyn.c":"80a53e16999677efb0cde8f5cb4d531180e131be27c722bc3e519e7e367f3f8b","elfutils/libelf/gelf_update_ehdr.c":"b88f2de607e2299e106067a30229224b131a5361120e0056c0855df425feebf7","elfutils/libelf/gelf_update_lib.c":"8e874be4cab275201f1bf5e2a181ef991c29ba22249836c92b796bf6875b34be","elfutils/libelf/gelf_update_move.c":"19196c174a47763eca86dcc071d4d031375fb6cd941424b0a0e9b43e14388de0","elfutils/libelf/gelf_update_phdr.c":"8eb30d9771bc2f52f78051822d099d0c3feb4fa12db515a359aaf7c102220483","elfutils/libelf/gelf_update_rel.c":"0c602cc975d0f73e3a80edd88cb5a1d8a2da060cc172f618faaaafe3ef7ce9d2","elfutils/libelf/gelf_update_rela.c":"20a79c848535a4262686465844454608b55e98d2ea95d3b3cde855fee011a6f8","elfutils/libelf/gelf_update_shdr.c":"7cd2f314d647cf67a2bf3033191072de37787400e9c72e783b8f71c71ecf9bc4","elfutils/libelf/gelf_update_sym.c":"ab0c473a712d5ae8c119004919764d8949af746868ea6475113c5a4a136e09cb","elfutils/libelf/gelf_update_syminfo.c":"9ad0c4902399efde8f83d603cd71e46f53015785994511a99701b05c42a15101","elfutils/libelf/gelf_update_symshndx.c":"e417c6e9ef54fd70cb27c80a72f273eab83243f917ee45044844d12d26194432","elfutils/libelf/gelf_update_verdaux.c":"ff535b6b429901ae3a1bbe3319ef51c6002d0a70e456b013fbe2b4335ee0f71a","elfutils/libelf/gelf_update_verdef.c":"6e7aca18889b5694a51fcee81610cba5942b0f71c732a768376337749f1cdadd","elfutils/libelf/gelf_update_vernaux.c":"5d65959244079a62530199c97153325f764ee4fa1aac47a013519de7bb331dee","elfutils/libelf/gelf_update_verneed.c":"fc29d2a715217e4f540cbadf558233d2fb32d03de81c1400adfc7838da1d7bf7","elfutils/libelf/gelf_update_versym.c":"c3171ffb639ff778534c545aa4fb3343e16191629402cd9f679bb4ad0cc1d2ea","elfutils/libelf/gelf_xlate.c":"d7d34a438751893678d54500608dae2385f78c154d067bbf5a5f2de8cf418ecc","elfutils/libelf/gelf_xlate.h":"8a75d1e78e40dc83fc243b922d132a038c13510f68508d6e5daaba57a88b7a89","elfutils/libelf/gelf_xlatetof.c":"1406cbdc7528254ad03a412499dab2a9783deee087e35c576b2d4a300db49870","elfutils/libelf/gelf_xlatetom.c":"37a511789bd9fce9f3b633b167b95445c713ee1bb677cde6bd36fac6f8671d6e","elfutils/libelf/gnuhash_xlate.h":"b7fd4f56b402b6dac5513ad0fac2e318f9c742ee61c1e8c98d99dae517fa9364","elfutils/libelf/libelf.h":"3b20df1d58f9a445785503415aea1188d33159327c2edab3d370dbd37bc4845e","elfutils/libelf/libelf.map":"8ab69270d38388e4e468837829eea6e8f7041c5297a021283c68973d4dce6a20","elfutils/libelf/libelfP.h":"dbd20c51acbe89f9622ef141ee769903f2e4f36d5e062f18b8716645e7d549e5","elfutils/libelf/libelf_crc32.c":"3c53cdaf127f0b47f124eaa4f8a95493cdb88e06a896d4cad894b7e887efdb32","elfutils/libelf/libelf_next_prime.c":"d0ce007c2da5f02987656e22ba9f7107a0c6795618311f5b7492d365e0f7301d","elfutils/libelf/nlist.c":"f0cfb07fe10ce8ac2dcf1772e0cd2fdd199df8c9ef0145af1546558c03921d25","elfutils/libelf/nlist.h":"98a8ddd1004034aeff4cc6d18e5df23f55d2869d879735c3b571594a44ba1212","elfutils/libelf/note_xlate.h":"1de84eb7d48f521fb6e83fe6b023c28d09017ccb03268b54b0c209682d77198d","elfutils/libelf/version_xlate.h":"9235e10fdd24557042ba15017f55136c6a3608bea865212e2e41e4226823022d","elfutils/m4/ChangeLog":"f0932c61bedcff0d7bda7288b385d802617da9abadc53611c4a447475093ac5c","elfutils/m4/ax_check_compile_flag.m4":"629dc6835eb1e2bd586fd842a4db66541bc442bcc2b13d6f24907631c5a688b0","elfutils/m4/ax_cxx_compile_stdcxx.m4":"be43ad785f2ef13bc929e45684faf5bbc5c2f4bf778155a27c216e5dbb03e5b3","elfutils/m4/biarch.m4":"f225f0a49bd2a2d2532e0e6135ba7904c004502bd91845724a9610bff27340de","elfutils/m4/zip.m4":"cb76c11d3dba1f40385004ef213d3c259bd28824891879234412216b50750d6d","elfutils/po/ChangeLog":"34c9dd56947ab1fbc1a464d4275ed1f664114c74f94192b0f0866eb73cb6fb57","elfutils/po/LINGUAS":"103dcf3d80e5b20df80ce978793b800a3f2fc8491f4363444912a84e49c6138d","elfutils/po/Makevars":"c923b27509579ed049e744b4ea557c1c990e6a593f38c148206163d338fd5136","elfutils/po/POTFILES.in":"48d9fea2f4e1848be3531d187c0cfffdc4489d6874131821f8d1115a5ea55b64","elfutils/po/de.po":"aa6bf726dc626b8f266c444b5e7fad7f51d49652a5b6608f7ff2784225512bd9","elfutils/po/es.po":"6a7049f1e901c77defa32f69c1a8af45402467e84ca8f7cac2011808e45d9d4e","elfutils/po/ja.po":"2ee5f0dfe14881317f49713650124c727f7157c055708a03e6e76f012f85b30b","elfutils/po/pl.po":"aff7a178ac1e27543516afc1983c79ce7769a2c2b39181c6671d1f78fbac127d","elfutils/po/uk.po":"59349fabd18bd7e553079c3000e3413fa56b0a1bcac59924644223f84ac45307","elfutils/src/ChangeLog":"17fe8ea8d701723e5f4549d9b4c7cbc9fcf6d598033f1788732ea241c5a958c2","elfutils/src/Makefile.am":"4b4083fc8d0762b55da0256eeea5d2d21a3825c9322415202812fd7e189dc915","elfutils/src/addr2line.c":"d81d94304a8e32c54f695cee6c6ed08c61e8ed1fc386299948d6a21da65b746d","elfutils/src/ar.c":"8789f7525256c0c739c5e10f37cb239c3ac16ab9b975dde5d1c0ebc70c1fa6c9","elfutils/src/arlib-argp.c":"0fc6c1b807aec4d6d561c0a1474230c9f0f377a11a2990b1c3d0f2ea74007a08","elfutils/src/arlib.c":"6bdde51202e664222fda657f0eecda6911c005104676e50fb9a80176d53548d1","elfutils/src/arlib.h":"f1f0942879ab204407c5e4f102754161c70928affb9b1ee46bd94a9e9beb00c9","elfutils/src/arlib2.c":"d40addf86a75b0f38eacd68034aed349b85fdb0df5b5a6f20b7e06fb164190b4","elfutils/src/debugpred.h":"c80efb27b6b1871d3bb24042f741c2061ebf4ba34d3737c0b4b4ef1d63c96a14","elfutils/src/elfclassify.c":"f094b8682ab829e42357e281520999835c06bac3c58b1e510246d440725644bc","elfutils/src/elfcmp.c":"1b3101cdac591c29fe1842508e656c4c5a8cb53ce336e8ce0df8e24eb90658c3","elfutils/src/elfcompress.c":"8b93fc4ffbdfbcf5df3ef71b11a550a9e1bd81d0a6c5d7220b3f3de35f580842","elfutils/src/elflint.c":"06992de959d898bdc4174a173f06da9db0f692bb83954fb51897b672aae282cb","elfutils/src/findtextrel.c":"340278d5e4fcebe8097310b6e6bcad9a282255c211d6a2358fe51ed94c313509","elfutils/src/make-debug-archive.in":"92747cc5fc6a28351a422d90e40cc7a7c7de694869822c48ef164b8fb31e5c16","elfutils/src/nm.c":"f7d059ca50de1143ca981f2a5ee46bf92d45655c5351241f12d1365fd6daa734","elfutils/src/objdump.c":"76e6c91dd493225e1d2548433cd2d4a9b8ec466bf75eb34b313418d4beae305b","elfutils/src/ranlib.c":"bc285c5fc7ce64c1839e53509c5d513ae040e32d782e3eeff448866cedfcecbc","elfutils/src/readelf.c":"7189bf2f0b8bc51295bceac9d3f7bcc5b1a2cc06784a23e5ffff3a34afeef854","elfutils/src/size.c":"ad45957001438a4d2706ddabc73be47b30e403bbad563a94d9a8f1c380cd4f91","elfutils/src/stack.c":"4e755f7130884cba9f2e36488411a4125442a96c802be0c52576006f6dd3ba47","elfutils/src/strings.c":"ef79ba73a7373c1d16c92735c004724d12fd433882ba031a2eb3cf440dfeb90a","elfutils/src/strip.c":"648c62725bdeae5a41fc57b15ecd426433d9c62e09cf93dcd6d27347cd5b534a","elfutils/src/unstrip.c":"24fd6021e2060401f1ead6aaf463f0d4fc18c27ab16bd93009799f8d861ffd01","elfutils/tests/ChangeLog":"0fb4cc3105cb604d3481ad239b22b92279a27ebd1a0000ad75b9a345fd304eed","elfutils/tests/Makefile.am":"12c041e98b375f136ae5bd3b18af12b1060e733321d4204207ac012d8b47f61c","elfutils/tests/addrcfi.c":"552a2e3e517313f3e61d7c189df355b84decd15a0eeaaef39a3942679d67ead4","elfutils/tests/addrscopes.c":"7db11df0dd504977aef58bf3862a7c32eacd9aa15ec56b94b66dc4590cfd34e5","elfutils/tests/addsections.c":"a3a69fb9c8938d345121d7dae8518f2230e2239e78098ebddb41d22a8991cc79","elfutils/tests/aggregate_size.c":"4998c988366a87af562326e5eea80a080518c1f8c4471d648daef2479f786c09","elfutils/tests/all-dwarf-ranges.c":"aa6c8225d52bad5e08fbd2977467d9bbb64372b4610ef196c660970882c583e6","elfutils/tests/alldts.c":"2d4c9f814e0f4a9e69765b10aacdf1418ee04b4cd1661f9d77d7c9026d0ece97","elfutils/tests/allfcts.c":"1b889ef15f69418536c25d6a314f539315adfe21f9b0deb1108f6e9fbe4cc81f","elfutils/tests/allregs.c":"f848dac0fc5755bf77edbb98460a8b0d29ad07d7eb17e595bb4ed04d5c516fa9","elfutils/tests/arextract.c":"e27dc017809b2e83539699f27688afb7f7d5f1fbde3942fc3f32ba15783b94b8","elfutils/tests/arls.c":"644f6ae456c05682e3742d07ca84e63d8ee7b0c904a1b6cfe25fd27ed168a576","elfutils/tests/arsymtest.c":"b6d039a62137d2aa715c5fbd4e0461699b2aa36f1f3e25484590060e80e9bf47","elfutils/tests/asm-tst1.c":"375dc4884e5b0408e8651b9f8d3a509c5c05e01a4b817cf79d5bdaaba9c0adfd","elfutils/tests/asm-tst2.c":"11cd0c621d02b539118fe485e8efc57694be93048341910734d89b85e179c7d0","elfutils/tests/asm-tst3.c":"2a61875d8cb091194068143f1eb7f6b9fe4b0b4a30c64ed8a38255305425541e","elfutils/tests/asm-tst4.c":"43318488d0a26a655e11429563f3d8393ba03fbf948d08af0c8c752ef42e9a48","elfutils/tests/asm-tst5.c":"b8fe481a701c7abd9df3965173043e6dd2675f0d5d002754f0489b818b29838b","elfutils/tests/asm-tst6.c":"c1d3c9669d3f1b40928367ae65c59aa2d5d04f7c41ddffa573741fd4156d7054","elfutils/tests/asm-tst7.c":"2913329da9fde870de76e4230c4cb24a938edddf41a2885f3a16e3a5ad61903c","elfutils/tests/asm-tst8.c":"4e20969d4377991b02f56b3e3f7ff6fc6168aa5f08b9595859afa383ba1315eb","elfutils/tests/asm-tst9.c":"d357a077f498c4bd73ef450f44f07a82d1cc863f78ede34a0fc114a2ae77384d","elfutils/tests/attr-integrate-skel.c":"2e33f99a51a00c5d85bdc9f4e9eaf4b4410da78d27a6e72d36f8a457dcf1ac47","elfutils/tests/backtrace-child.c":"347f55547c33a87562c3e1d5d68b15aa6b0abd3fac912a851bd89ba4be126329","elfutils/tests/backtrace-data.c":"54e2e99ccb5559a8570a72732a1feffa1e9ac20e85b08f529c2ecf8e20f7f6bf","elfutils/tests/backtrace-dwarf.c":"9848e017c3792f84934ecdbc94c9029df3e599dab451723e298e8f0784cc70fc","elfutils/tests/backtrace-subr.sh":"76ecfcc3d3f4e189ec2846251a009b0ab4a9d10fccf90cc7a15f46955b55f192","elfutils/tests/backtrace.c":"34e1a723dd894f3fd968cb9b9f52c1ac772f8d683251313a39d531ec6b6fd6ce","elfutils/tests/buildid.c":"d26d2e257f7ea63988b6f34b9556d32545ecf6157d1004c1d5cafcaf1965e54f","elfutils/tests/cleanup-13.c":"3435fa97875d45bac9069a56ecd4537b407ac2118536416f8da06b9f9c28944d","elfutils/tests/coverage.sh":"9f0d8fc764f1558189745fa3a6f8f54664fa6652be7740a67cf938e4042828eb","elfutils/tests/debug-ranges-no-lowpc.s":"049763cd7327cef044118b60ec71f891118b2ac20d099a07f3a03d3b9c39331e","elfutils/tests/debugaltlink.c":"53932d6de80b2bbd5c34d6af6e6f6069bdedef1955a6aca4b1626c929a656095","elfutils/tests/debuginfod-debs/hithere-dbgsym_1.0-1_amd64.ddeb":"60fd9e620f4aee86a38505b638983f74e35f145efc21a07cc8ee27c06469aaa4","elfutils/tests/debuginfod-debs/hithere_1.0-1.debian.tar.xz":"9afa907e360e626639ccb86b86e799429bea27149034aec5d5c7e500971d651e","elfutils/tests/debuginfod-debs/hithere_1.0-1.dsc":"19df135b2a60da56453ece066eebaccb0839ebbc66fa26f03b5425b79af76942","elfutils/tests/debuginfod-debs/hithere_1.0-1_amd64.deb":"449de8ee343e209b11bf9b33cfa7e4a4a7ecd074292150029bc2e5ba2002f00b","elfutils/tests/debuginfod-debs/hithere_1.0.orig.tar.gz":"63062b582a712f169f37a5f52a41aa3ca9a405aafb8aa837bc906fa413b62cdb","elfutils/tests/debuginfod-rpms/fedora30/hello2-1.0-2.src.rpm":"c7d586534c6f54209d598cf663044cad39d5abdf764a1c28635bed861c4a8816","elfutils/tests/debuginfod-rpms/fedora30/hello2-1.0-2.x86_64.rpm":"5b03b4374fb7cf5ecce370b241ca8ed9c5284c9a3af3bd592bfc0020c7cefa44","elfutils/tests/debuginfod-rpms/fedora30/hello2-debuginfo-1.0-2.x86_64.rpm":"383ae6ce7fcfd3806c9d82d78a140ee0369a84f389b30bbfab5afa4a5ac00ce2","elfutils/tests/debuginfod-rpms/fedora30/hello2-debugsource-1.0-2.x86_64.rpm":"1653a13492b853ba113abc9c7dee57bef13e2242acf4f8936b649b9f5ab340d4","elfutils/tests/debuginfod-rpms/fedora30/hello2-two-1.0-2.x86_64.rpm":"72cb822cce5e7fd1ab4ff8547c0f89d1cf11ac47e39407235ca0d87f2cced971","elfutils/tests/debuginfod-rpms/fedora30/hello2-two-debuginfo-1.0-2.x86_64.rpm":"bce4dba91db5c743da02cea1b4f0f4a8b492be3241e086fb9c9f55af3c0adce7","elfutils/tests/debuginfod-rpms/fedora31/hello3-1.0-2.src.rpm":"50c17e0304283ebe79beacd6513bf4051f81eaaf0f3baaefea1c155394550e8c","elfutils/tests/debuginfod-rpms/fedora31/hello3-1.0-2.x86_64.rpm":"1d17b59b50f57f99bc958bbe087df59c76fd8ad86dd98766c1b45f211e8e6377","elfutils/tests/debuginfod-rpms/fedora31/hello3-debuginfo-1.0-2.x86_64.rpm":"bc1784ce023afb3b1b6778091386ffcb736ac7f5bacbb50a4706c3f96f6f1926","elfutils/tests/debuginfod-rpms/fedora31/hello3-debugsource-1.0-2.x86_64.rpm":"d4e704a272304f8b06875b35a430022b08dbbb756d982a2164afdaba05257acf","elfutils/tests/debuginfod-rpms/fedora31/hello3-two-1.0-2.x86_64.rpm":"efff74f0725f64d41a31b3f00d1ea7d65a5a28bcb9327c6b49373dae7e7c0fe6","elfutils/tests/debuginfod-rpms/fedora31/hello3-two-debuginfo-1.0-2.x86_64.rpm":"f93a9986d97c8e84799fe9afb386591464e54124d0bfa6ea42fb1d1a25629a2a","elfutils/tests/debuginfod-rpms/hello2.specfile":"cb52a074b35b5871eafcd920a942dd6c474149438de6a8aa63d730ccbc65932a","elfutils/tests/debuginfod-rpms/hello3.specfile":"448095e5758501851f995a09141baa8c96d578f83a2b9fe31ce4e3acae1b592c","elfutils/tests/debuginfod-rpms/rhel6/hello2-1.0-2.i686.rpm":"0ecbdc35f8ac0566ded81b6c805c03c654b08e862a434a262273afd59f305aae","elfutils/tests/debuginfod-rpms/rhel6/hello2-1.0-2.src.rpm":"c9280295a8e554723979c263d866bb2938ffabfebbdc3ea93db648a1633af063","elfutils/tests/debuginfod-rpms/rhel6/hello2-debuginfo-1.0-2.i686.rpm":"4a7cc08ecda3b3f54869a0d58899853843acbf8d42a51d37c5f251d44cae5cd8","elfutils/tests/debuginfod-rpms/rhel6/hello2-two-1.0-2.i686.rpm":"4238082f0cf97fdcc455a78b1bfcea790f41ca58d6448601eaa7a12933aaeca0","elfutils/tests/debuginfod-rpms/rhel7/hello2-1.0-2.src.rpm":"dc1974d0ca37475182143ae5f3d6967748690ad0b50faf43f07936ba0d579cf6","elfutils/tests/debuginfod-rpms/rhel7/hello2-1.0-2.x86_64.rpm":"ebfc98f4bd66dcac192db375f7de4784e706fbc0e0d4fdd8bf07a0d6434d17a1","elfutils/tests/debuginfod-rpms/rhel7/hello2-debuginfo-1.0-2.x86_64.rpm":"e062398cb5c9c9d622d476a5b020c3f92d84d2850500e8f049ad72cdf4b1202c","elfutils/tests/debuginfod-rpms/rhel7/hello2-two-1.0-2.x86_64.rpm":"729248ce14333a4c9d81a32cc434288fa96f44a92abf48fb7958687f3c7cc88d","elfutils/tests/debuginfod-subr.sh":"6217e15ab13fdf4199ed49405b19404e52ef857595ce34d57aca7e45727e2cbf","elfutils/tests/debuginfod-tars/hello-1-1-x86_64.pkg.tar.xz":"a140aaf2f5452179a4355b37af4a95f39f3038bc61dbbe35b456cd4dd5aeb565","elfutils/tests/debuginfod-tars/hello-debug-1-1-x86_64.pkg.tar.bz2":"c5e830f52f45df4c314c01acb6f6a0dccdfabb0cbf6ad3465133a330b4d8c1b2","elfutils/tests/debuginfod-tars/pacman-sources/PKGBUILD":"f1b05f73bd7b05b7237e65a30564fa84df609ac5e2767ceb1cfd7a8863a7d706","elfutils/tests/debuginfod-tars/pacman-sources/README.md":"a92a53a556b3b95b31bc9cef24933c7987626f79a6baaa9cb67e45ae85e8cf35","elfutils/tests/debuginfod-tars/pacman-sources/hello.c":"f85badd2007451bbda4791e7fe820b41be0a424172a567573511688bff975235","elfutils/tests/debuginfod_build_id_find.c":"3170ea8184bc37bf0aa438a5a30a2b82e99c6d8a5a6e9d019d26257cbb7bcaad","elfutils/tests/debuglink.c":"1771b6f630b1bf54bfaf8f26b6334509f2dfd895606ea390908453cb63e879dd","elfutils/tests/deleted-lib.c":"f6c5aa424a80b52b0df5b81b29e17c2b12d629ad3ca0d3846fbd1ccce4ff98c1","elfutils/tests/deleted.c":"aaa78a7b4255ab4e8af87f642e964962d46be9c02a399c8d5e967d372d093866","elfutils/tests/dwarf-die-addr-die.c":"cc99cb723ff2fb1b908e8910e03b8f3ef5a18abc1d43b31719563a815def9329","elfutils/tests/dwarf-getmacros.c":"8f56faa1c6657567ce470bd7e1776b4d097e19db38c8229e344d97183974221d","elfutils/tests/dwarf-getstring.c":"bcd9c870e90ae0b3a0d23a12b48a1d55c468c2bb63ac9678bdf20403f365f384","elfutils/tests/dwarf-ranges.c":"da2ffc7a426992ccb8e705f3488b0c1181e804c688c5f5cbabbf941ab6a4046f","elfutils/tests/dwarf_default_lower_bound.c":"02a0f6822f28bcfafab248f488f86e1beae7f23ca88ac988de8bb61840a07a8d","elfutils/tests/dwarfcfi.c":"71c38866a94dad880607e7395fa8c2c1b525acec5ef525d6aeea43ea75427147","elfutils/tests/dwelf_elf_e_machine_string.c":"c0a0b1449b9171b833f8a8e3b4aa8c32bea9a2b35f382b24ad9f6c27bf3cc0e3","elfutils/tests/dwelfgnucompressed.c":"1a1bcfaa1a3a5bd66efdcff87ebab39f757eb2950f652bc302c45f5f4fc81a3b","elfutils/tests/dwfl-addr-sect.c":"b558d6d1dcafca9bd2aac050502f6cd5915b96790ce91ecdb7955e46f98b5bd3","elfutils/tests/dwfl-bug-addr-overflow.c":"f8f9ab7e5896132d589208b41595051045942c841a67e4d895bc35129b1207f7","elfutils/tests/dwfl-bug-fd-leak.c":"64a0c253fe043e585f659eecaa102c1c1ace52b230b79732e655b3ee64c8a7d9","elfutils/tests/dwfl-bug-getmodules.c":"eb50f08315322fe482bd05491628371bc64d476dd1b1be7573cb905de14e8e18","elfutils/tests/dwfl-bug-report.c":"ab389df9fe65f0e2cb26118e23bf61aadce9c32a2dc3e9b3e97c4316566b5dd5","elfutils/tests/dwfl-proc-attach.c":"9aad192e75982df155475bfaa3400d8c117af05121d323a29336fd7395307555","elfutils/tests/dwfl-report-elf-align.c":"79d3047144d37c1655e2d1bd6c979647ae47e39a86967e36b491b140c0e407e7","elfutils/tests/dwfl-report-offline-memory.c":"a9d4bc28b060466850738753d7f677ae7a201c6a91e0d1b3625421640d233081","elfutils/tests/dwfl-report-segment-contiguous.c":"7aa7d1960bc59ea667b84b073d33dfa0747c993b081bd44ad67f71b63d59c59e","elfutils/tests/dwfllines.c":"57f744c71aac99135edb6821e106515a2d883cb44c21e9ae103af36bcc96b476","elfutils/tests/dwflmodtest.c":"eb9eab40e9dd0e0548d629ff0d30d402fd4af307f9883b2d2bd916cb9f409528","elfutils/tests/dwflsyms.c":"b31f3a9c702525926f7577e7ee40c1a39c9e3ad343dc009c59f5b9f2dce90f26","elfutils/tests/early-offscn.c":"0de83336c37d996212846c54029bd1fb9f290eb434336de66d6d993f7556ec58","elfutils/tests/ecp.c":"016e372d881e322b8ce344a80e77e56468528da3931827fb97883596026fed3b","elfutils/tests/elfcopy.c":"d016cb55fd23f1177925d2049785c01750f040a449ca73f7e960892136fdce64","elfutils/tests/elfgetchdr.c":"a88af81e7d1514c9635d4204610e8a4f8622f38435ad5677be5ccda6c9fd91ac","elfutils/tests/elfgetzdata.c":"47b16435a12fcee0bc3758025e5a00732cc65a8ebecb93aae99d54f3def4f8e5","elfutils/tests/elfputzdata.c":"27680ea1b8fe79b0a96150791e30fcc0fb2f529f1f4204af90edbbdef2187765","elfutils/tests/elfrdwrnop.c":"e9a346dd4c3005cf4e6518d23f5d967637bd04eb65c61954acba06476a9d31f4","elfutils/tests/elfshphehdr.c":"0a720fedd599272cf92918206b37adb4cea478ed7017557f3345f9367e99b517","elfutils/tests/elfstrmerge.c":"17b0c953bb63cc132cb1ab5a692b1075ada5243fc79ceab4851e3d6927e2adb1","elfutils/tests/elfstrtab.c":"5293b8e3411990a8a6e429494253851e9453b19bfc8fb33bd7f0e226df864869","elfutils/tests/emptyfile.c":"8a8350ea6a489a87df3b612f7478283e237d3127d1aeb6787e21be155868bc15","elfutils/tests/fillfile.c":"e2c96788c79c215025f7ccc748c9e78a5046323f407297f44845e0d4a012a78e","elfutils/tests/find-prologues.c":"ba77ccd85890fb323158cac705604d7bbc814710b122ee59c557f955898307e0","elfutils/tests/funcretval.c":"573136b3ff085bb176ca9ef5718a9e1b1c56903b2dacb42f33f44dac9c269abc","elfutils/tests/funcretval_test++11.cxx":"315131415e41583bab4be265a813e2134e59b903eaed895438eec4b6247015dc","elfutils/tests/funcretval_test.c":"eba54184ebe1b27818a2614c8c94f363bb92e4e0fc9780feb6bbe7109311632d","elfutils/tests/funcscopes.c":"1c059364756e8e4e6943f408c815a57ae324559a0bc48533733204292e2fd4a8","elfutils/tests/get-aranges.c":"4d440bb99cd5d5ffd6a99d9aab6dfdaaf1e6df48e1fff7565cb0ec2e61470eff","elfutils/tests/get-files.c":"d5478e6999eaba4587f2aac78a856ee7cf0c729e75119941631afb29cdcf06a8","elfutils/tests/get-lines.c":"0ede9ef1d9de37991d09215abc1a35161cd5a6f1ae2c89cfcf93bd4227d82841","elfutils/tests/get-pubnames.c":"02c7723e03bdbab2231757d8e6b1c0aaa5e38a2dbc84139305073c36f30c65dd","elfutils/tests/get-units-invalid.c":"55ab9e8b1da40ca9ccf75c5ba7c5fd6f5bb7f2c4bf7c32db51f4b3a7a5e04324","elfutils/tests/get-units-split.c":"fb60d5fde5c517f6845d709726ecd2739e32e539cb5a0351cc23e681a1d54ac0","elfutils/tests/getphdrnum.c":"c51b91da250e9f392b5bafd4239512f11d5e8237990c8d78aec5d017a66f14c9","elfutils/tests/getsrc_die.c":"0fd8a3bebe33285408c6202e689cc2e0a9715cd1109958847403c4d8a7a283ec","elfutils/tests/hash.c":"306fe69919bdd39bfbd79e0b09ec9e5a336b9ae4781760c80b97abb707e04f34","elfutils/tests/leb128.c":"ceffc2a80c8f15f675f7736b20311d29a070fb7d5451433b730c61ef3e27ecc8","elfutils/tests/lfs-symbols":"cbdaeb7564ee1de1f08d3675c94d22a3cb19d3676f17558f986f19917ce80913","elfutils/tests/line2addr.c":"222d1a43dbe69bcc4c2099a47869209d2e282a8d988ee495e32543d00357f850","elfutils/tests/low_high_pc.c":"925960ad0e6454fc4c18bdd5768a5c0d26d2deb7faaf3239631cf88b72aa6ef4","elfutils/tests/msg_tst.c":"4cfd7c7f54cfe3172af7b5f84ba3f8d95983759c4a8ddb93428e07cb069b9ac9","elfutils/tests/newdata.c":"83854aece6e5edd27d6d10ebd718a7779b5b8c2d38f107e9a0a914b8dfd018fb","elfutils/tests/newfile.c":"84146ab72cf19fee1357e840e2475f5f041a681ad7de4600977cc719d0695e10","elfutils/tests/newscn.c":"229384a8259e32e21bca743f427498623a670d2156788621b2b2ee454b0af2da","elfutils/tests/next-files.c":"47d86a02b4486a97ab316f668b60b8778b367e98b6f9215b130d02dcc0d264c8","elfutils/tests/next-lines.c":"c0b7e5aba6fbb5de3aa367e1f626cf70b97fa8ca698f350436d691f4a803339c","elfutils/tests/next_cfi.c":"27d56ed9d947fbf02e3bd48beef31c8b1496c5116ac0c7d82e6773a0c3c906c0","elfutils/tests/nvidia_extended_linemap_libdw.c":"69301fb78458984453e256bd4dbc01afd4b0580a2b615dcf15eeace8f6e201f7","elfutils/tests/peel_type.c":"d2651f71678ffe8f507c69b51bc82dd946049e0c535a433a16472173d988bdd8","elfutils/tests/rdwrmmap.c":"84d7a91d10385a14fae4308d862822f04d70a9a51be37c6e7c0aa4b47dedba9e","elfutils/tests/read_unaligned.c":"8a736eef311f1e113b0febe10a68e1018e0958b2d68c00662b906fc787528b4a","elfutils/tests/rerequest_tag.c":"e31bad67efc0284eddc5e65b75c44db397736933774b40553998f32905fd4726","elfutils/tests/run-addr2line-C-test.sh":"f4474409e3f8c2431e203622ca191c04d489b9a375c732767d616f9e8d3877e3","elfutils/tests/run-addr2line-alt-debugpath.sh":"aa3a7161bbb44f74c91af7bc2d0bbd5c871b6c7972ef780d2ff5a10dda74b4c0","elfutils/tests/run-addr2line-i-demangle-test.sh":"e57ce1cdcc04b7d7c8ceb9dd1a4784505e2ec93a06cb165eac842f4cad5eb583","elfutils/tests/run-addr2line-i-lex-test.sh":"91651a716ed1bbeb91c3305f55214a5ffc910ba095da9596791583514f7eb381","elfutils/tests/run-addr2line-i-test.sh":"904bc2d1467b5842d5ede3ea0a7ea1a9eee7b8b461b39f8ee86bbf21f8eab069","elfutils/tests/run-addr2line-test.sh":"c55a9cb690e505d2cacbac32cb24cfe32fac14b5d32164cbdca6278a0899e751","elfutils/tests/run-addrcfi.sh":"217366a7de6b730ccb985f443ad424b52c7e8e55969575308786f87890554b5c","elfutils/tests/run-addrname-test.sh":"a1434152fa620772036d63cc7a96ba46a736d8322fd6c9d664ee79f4ecfc4f1f","elfutils/tests/run-addrscopes.sh":"d441aafc401e193ccfba6d5071122c57a15bd617c10c7d51ecf33fc260ece290","elfutils/tests/run-aggregate-size.sh":"cd2c2abad65bf551401fa8b0c504d3dd668a53ae94b1532a4a300e4524961be1","elfutils/tests/run-all-dwarf-ranges.sh":"985f42290ad560c892ca03acfaa1a3eb3d0e17c98885be19484f770194d60373","elfutils/tests/run-alldts.sh":"66a01c19a2fde14dfc9f903433eb3e1a5ecc55a6a4e4d1a4d38d25c34c008f29","elfutils/tests/run-allfcts-multi.sh":"2dc2578942ef85f00b06e82d358834687c30c60335e09390eeb8d3f85c483cd3","elfutils/tests/run-allfcts.sh":"fc07f697d909555a69a8d358cbec88079058261943d249a1375d577a5a3d0bf8","elfutils/tests/run-allregs.sh":"661bfa0be94795ac71ea379bcd1d974b596621e4eb4835e890c2d291a9825a65","elfutils/tests/run-annobingroup.sh":"5411dfe03c74906a2f559f5bc3157c69e4e77aa5b1acc2405da59eeac747fd5f","elfutils/tests/run-ar-N.sh":"cb8fa49b9647f7bc4c49fffbea427ab4eccb8f5dc04ab7d133f45f7a0e0625b8","elfutils/tests/run-ar.sh":"8999067cb4adb8cc393affb01e92aad9efab5d6592ab02978e28e24be23dd1d5","elfutils/tests/run-arextract.sh":"95dacfb142dc21b3c34ea1494d19518d9b96f7dfa1229478486c4fb44bff1b0f","elfutils/tests/run-arsymtest.sh":"4d19240a9e9be4cec3bd1fbab4a4641d0a02db78e26bbc324d2de37fcf28db34","elfutils/tests/run-attr-integrate-skel.sh":"bc0b44d0bef4ba5b7f854558b166ba8ace05a23e68225a803e19623f4f6b0b8a","elfutils/tests/run-backtrace-core-aarch64.sh":"b4d18c3842821b71da7f5c9d0b14d0036d02d1a3635bf884b046482425049942","elfutils/tests/run-backtrace-core-i386.sh":"2eed9f41af5daef700efe56f14caa6059166b83f41c0a68084f620c982c2c94d","elfutils/tests/run-backtrace-core-ppc.sh":"f44f86d37e8c14d8e0ecafccfca7c2ee3cc035c65d95abf137ef6de38a6cca88","elfutils/tests/run-backtrace-core-s390.sh":"fc8058be181fd04dd0e661bdf614a73ad7e72fa0b1b7082b2bc1d136d8986777","elfutils/tests/run-backtrace-core-s390x.sh":"73c21396bdeed2eff2ee55c1d40d6639203b6ffd35a9b0c83a139a365cfa3266","elfutils/tests/run-backtrace-core-sparc.sh":"7f43111482bb61bb576b35981a20f87457c61d4afd0eb5b2ecab5cd587638ed6","elfutils/tests/run-backtrace-core-x32.sh":"1185e18c4d69d290dd8184e47859c396a926086169687ee06c87eb43bf971125","elfutils/tests/run-backtrace-core-x86_64.sh":"0ad3489d2bf1df4dbfa433be51dcd58c95165f3972260fe7cd152d7d06808edb","elfutils/tests/run-backtrace-data.sh":"b912d35318c40942cab89eb9edd9e6624a4fb5d7d42721d34876ad94ac0c9e90","elfutils/tests/run-backtrace-demangle.sh":"bfa0fa11e6a6a24899c30a39aa14a8875a8ddebde0cf56372252445290a71625","elfutils/tests/run-backtrace-dwarf.sh":"7ef76a0f10abe54c094c4575040a04cc8a7d2eea4c3c26c3ed1f9c0af4fc0242","elfutils/tests/run-backtrace-fp-core-aarch64.sh":"ced076730f5f84e52054cd6ac23a7fb5d676bdcb68414b32066ddc667f8c66ec","elfutils/tests/run-backtrace-fp-core-i386.sh":"e1aeea431ee6a70ca64b9427c7d9efa5ca05a98d68336476362b7c363a6a7d8d","elfutils/tests/run-backtrace-fp-core-ppc64le.sh":"ea768c4918c1db3c747785bfd07b00b8a98520b56af59cf2aa20e51c028f3fb5","elfutils/tests/run-backtrace-fp-core-x86_64.sh":"9137632b9e2525da6cee9edf8fa247f3bc2daa66b59c94010f25c35738331477","elfutils/tests/run-backtrace-native-biarch.sh":"fed7387672ce8eaa02dc8c715b947fa8eb9378e0711ecdf180b2190437c85cef","elfutils/tests/run-backtrace-native-core-biarch.sh":"73a70d5f6435c4c3fed3b8ccfada2db0d03e64d0a47a6672d4218df55c8d66db","elfutils/tests/run-backtrace-native-core.sh":"d093a12da817300c477fb18b634b95db7cc4fcea9aad7fd4357d887e5bc6fdf9","elfutils/tests/run-backtrace-native.sh":"977604fb24021d72552e47c9d44142ec492bbd09a3c3e1794862f15c06072cdf","elfutils/tests/run-bug1-test.sh":"183a4433feb8f30a335fb80d1b8c70a911c858708f2d52967c43b83a3dec3c21","elfutils/tests/run-buildid.sh":"f4fa13e8b22561abd9fe65068b097be816c6e5c8077121ed8962a18e609518fc","elfutils/tests/run-compress-test.sh":"1993d26bb6bba46438d69ce04595fa06af773a2d16288d59f8e4bde7f259ca7a","elfutils/tests/run-copyadd-sections.sh":"6d9ca8c16bafb7df19182171a47aeefd7d4f2c2fca49722935e52256aa70ac5f","elfutils/tests/run-copymany-sections.sh":"7fb088931294fead8248b7951432a641c18d778f47cfa21472121faf893c1b02","elfutils/tests/run-debugaltlink.sh":"3a967d2870ee38c839d0a805f51fda729b45f6659e8068fc4535de291fb5a91d","elfutils/tests/run-debuginfod-archive-groom.sh":"2c8237ad43b7fce263cd8eed68a556c4cfcc997b5f616a10266494446bf00d85","elfutils/tests/run-debuginfod-archive-rename.sh":"95e4d7ececa491de4aaf11d7a91ed3dc84b28fd87c6d95997b2a05d9bd445002","elfutils/tests/run-debuginfod-archive-test.sh":"76f26e892555c25e3cbb76181d98f706704498d338475f6d57ac4b54a9e364f8","elfutils/tests/run-debuginfod-artifact-running.sh":"c37d91fc0dccf18617d19fcc767cde570c6d8c97def15ef19b261c40288e25cb","elfutils/tests/run-debuginfod-dlopen.sh":"a6b8e1557081ef608d65456ba91c815aaddc3e5926768ff869fd77d524804573","elfutils/tests/run-debuginfod-duplicate-urls.sh":"8fadb54f967f16b408c3bae9d28256dda1b809f4bb6e908e22698f90b3cb63b5","elfutils/tests/run-debuginfod-extraction-passive.sh":"515c334d617d0b66322bab9ea2384985d53a5d04e37ef8e2f8bb62e7ef980396","elfutils/tests/run-debuginfod-extraction.sh":"049e757e216a1ae26ba864878e0eefff2017dda873d0739682d7955d3455ffdf","elfutils/tests/run-debuginfod-fd-prefetch-caches.sh":"b3fad695a00270ac2085c06bfdde7026d1de7ebe176df44754b354b294867b62","elfutils/tests/run-debuginfod-federation-link.sh":"5ee6ab99178d067e0a37dfb01432fd6fe6cb06483bd8206cb03afc3b54a66d88","elfutils/tests/run-debuginfod-federation-metrics.sh":"24b89f86b2ff48121cc7775ef8c7d7661e2b60eaa99a4b9f21299ccfc8fb81d6","elfutils/tests/run-debuginfod-federation-sqlite.sh":"161e649bae278cde1cf81797f87701319121d75e6409294e313b46db369f2a2f","elfutils/tests/run-debuginfod-file.sh":"04a5f2d8ec232b1c249bf8c76016ccdcb688b18e9f0f9660d6bd270b7c54f923","elfutils/tests/run-debuginfod-malformed.sh":"e4ddec32c2f260b8c21852e9945165ecf4c7f7c77e0d7e7f2e91c8c10fd2a25d","elfutils/tests/run-debuginfod-negative-cache.sh":"f6d1b1a7bfc50d7b0d1ce0590e00ad0a113063737344009d91fdc99654a32797","elfutils/tests/run-debuginfod-no-urls.sh":"d5b8e593df9026560274678fc3a06c5209d88dd434ee2d4df9e882fe88e5750a","elfutils/tests/run-debuginfod-percent-escape.sh":"c1fe1004b27acd592d5e04a1db04dfca530c16e2e8cfb8eaa726f12548c57750","elfutils/tests/run-debuginfod-query-retry.sh":"ea9fe2fc649451642e22e5006c89be8a1280ad793e2b8d920bf51311710d9a50","elfutils/tests/run-debuginfod-regex.sh":"73f4affe8c0b30bd879a497bb9d67bf33469e494ab3d0edf73ff0ab2c786f886","elfutils/tests/run-debuginfod-response-headers.sh":"c5868ddd58abfb081620e893d8c74fa8d2e40b917ba53f279dab9d222f542854","elfutils/tests/run-debuginfod-section.sh":"7443543559a5deb409ed912a2efc449b87abbb5ac1f9c5b512c03197374b772c","elfutils/tests/run-debuginfod-sizetime.sh":"6bf95e60733f73480132374209fb7a56b487db9d70a4e1f9546c043a2663e084","elfutils/tests/run-debuginfod-tmp-home.sh":"e0750dc616a9a21f5bdaccd6a85c8c3c3ce467eb9c444156fb5c8048f009edb7","elfutils/tests/run-debuginfod-webapi-concurrency.sh":"be0bf7d5ea89b4bcf7eaae0bf06e72227755f3f878507e3dc41adb68d3f4ab5d","elfutils/tests/run-debuginfod-writable.sh":"e906711724b72e48f489749cdec9960f275221442cca4ff257cd355c5cdf796c","elfutils/tests/run-debuginfod-x-forwarded-for.sh":"66a52eff75e37b6093850727b78b6de66b3752ed76d45c512a12bd4cf51e8ee6","elfutils/tests/run-debuglink.sh":"58d375b9a100b6cb4b5bde3704601ae05a757da7c49ece08f595afb4ceead5f9","elfutils/tests/run-deleted.sh":"5664f6f9f9263f70a0186867439c0894bf3da0cc10bb1bd7260994d19404cc3a","elfutils/tests/run-disasm-bpf.sh":"b2890e91dd3ce0966b82f2b64637e5877844bea0c68e1a9fda1daf8cc4bcde3f","elfutils/tests/run-disasm-riscv64.sh":"3c198700034cf77084056657475c9562ccf4bda22d43cad9265d2b2ba57b8f58","elfutils/tests/run-disasm-x86-64.sh":"507ed6613a13c5faf2e80e327398f044daf37544078f52873cbfe89f2948b386","elfutils/tests/run-disasm-x86.sh":"b96a7ed57284ee94bb6dc79b8df23ac97cd74f5390139e2445977768da63d6e4","elfutils/tests/run-dwarf-die-addr-die.sh":"e148898c861204c0f230511e36ab7ee159e889358be135f8ece5ffae175a19c4","elfutils/tests/run-dwarf-getmacros.sh":"2494c1f69f1c73203fc91c7b8b45e7cab7025b8bd540884d8c41431dd8b46d65","elfutils/tests/run-dwarf-getstring.sh":"7de4f9b90eb3d20b931cc3da6694c5241c727ea085c7e2198a32d3ef896d0c9b","elfutils/tests/run-dwarf-ranges.sh":"fadfc6a402523f82ffff3915a93b14508daa06e12598896fc9b1a8a39ce9cf3e","elfutils/tests/run-dwarfcfi.sh":"ba92c867f8a359133990be957efe17d26841e17dfd1c9824d1f3d22a1f996e45","elfutils/tests/run-dwelf_elf_e_machine_string.sh":"973146e0038722c34541f67be5eeaf703a0b8be9775165df2a719d765c4fd568","elfutils/tests/run-dwelfgnucompressed.sh":"6ea964d34ea82ea064c3707f907b89bd6f67afd2c10d1e3bf691e2d461d7b6aa","elfutils/tests/run-dwfl-addr-sect.sh":"9b6332231df33b38a41e457232c4b9386065ef7789e39b4095093572f79623a7","elfutils/tests/run-dwfl-bug-offline-rel.sh":"f3e963286ea834762ac287572a3a25c5721e99a6e5abab8f4790b759c162b296","elfutils/tests/run-dwfl-report-elf-align.sh":"4271260f837d72d162e39ebe21a4aa55ee37a81a6e6256d3a855a94e137c60ff","elfutils/tests/run-dwfl-report-offline-memory.sh":"131105236e6e0f95f95f972a413e3f6d7526e622dd36ad2ea4f2afd08e2df607","elfutils/tests/run-dwfllines.sh":"5daebaba2af76650d7f608ad835ac6a1c457aded06be08f2873ffd72d8f3e227","elfutils/tests/run-dwflsyms.sh":"0559ae2b68a655552bd559a92cd0cf3b770a135d81af23fe7dd0af029975fec9","elfutils/tests/run-early-offscn.sh":"712ad0f92206b22b02e17b6d8268d168fe95a348efcd2875a42b68ec142a2e09","elfutils/tests/run-ecp-test.sh":"eb0a39585b25f36f7cc67d81d92af5d674289b26f2222b4a1c94714583a5d68d","elfutils/tests/run-ecp-test2.sh":"b45d98baa4984b696241f533bd165849c3f9b1e5057efa610eb087b258084806","elfutils/tests/run-elf_cntl_gelf_getshdr.sh":"19e49c5362e5e37eca6db2161b44a0d242bf5a95be2016b3ca3840e44363d4c4","elfutils/tests/run-elfclassify-self.sh":"651fd6463fe93f9ff65428930c834742a7ff58d5019526ec2538369143affb5c","elfutils/tests/run-elfclassify.sh":"3b4ba85dcfdcd217d4eacd8fbe79a3f6df26fb01bd7edf8f5f56ef32e4728334","elfutils/tests/run-elfgetchdr.sh":"512584e915c0f666c249909d19e9623ad1e028fd335ffd7db47fe3538448b2f0","elfutils/tests/run-elfgetzdata.sh":"c6f27c1763d2cae5e29efbca787a8abc2fabbd9abcf67afba6fc1a066e92e131","elfutils/tests/run-elflint-self.sh":"3422778e66180ce5a9c2f9bb4df4eb4b2f77592327d8c760fdaeec731b461b88","elfutils/tests/run-elflint-test.sh":"f136b991685bbcd8c20fa925e9bae63dd023f673a09e17f155d0dbf69cfeaeb0","elfutils/tests/run-elfputzdata.sh":"9d48b4f14f7be499455476bafb146d13c2272fcb6fc9d8f49a30adcb2a51ed61","elfutils/tests/run-elfstrmerge-test.sh":"9e45e5791c63b4b48eec841697b7fd1609a34353007691b5d8ee524568cd65ae","elfutils/tests/run-exprlocs-self.sh":"30d57d31abd3fbfd3c30ae82b3a504131bc514b23b9653a49b735b094819192b","elfutils/tests/run-exprlocs.sh":"cefbe4a2f6ab9ddfb5e4b136d9a920c82c8d87242720cb622a20de3f6da0a427","elfutils/tests/run-find-prologues.sh":"33307bb86f5175db1c37c3100d9f1be8e9c8ac608b185b89397109980ddd128a","elfutils/tests/run-funcretval++11.sh":"f33959290c250b15010c48c59ded68c18520f60d9c82f086c32bbc72ac006910","elfutils/tests/run-funcretval.sh":"ac9d762bc06573c77e3785dd536d8d77920d7ba19c1eefda9ff4c5b51a7a49b5","elfutils/tests/run-funcscopes.sh":"b2bf11e4081524a53bfb235902f6163c8784338af3d4719dbe9b61975fe01e55","elfutils/tests/run-get-aranges.sh":"c0d433159ab9df48ef5ec79acabc4f9c8b0dc1e5fdd9c10a4323d8bf402fe233","elfutils/tests/run-get-files.sh":"8d4e580870814362e9aedfc7cc7db6b3deaca2a72278c659b6e6ce71c15c21ab","elfutils/tests/run-get-lines.sh":"8dcb2fa174740c0b9447570f78c8f8050379631251f08376b3bc1e273d6449c3","elfutils/tests/run-get-pubnames.sh":"fbf806b7e4dbd078311800b5ffa21ae30c4ab3bcdf90747dbb7f8c85e2e9a0db","elfutils/tests/run-get-units-invalid.sh":"1cc3f76a2964dc9bc12258c43a5710ea8ee21c1214f90e91b9822e44291cdf8f","elfutils/tests/run-get-units-split.sh":"f39cdd55f015742cd0ae46d0ed697ae42a04a86a801df68c641f9ae13f27219f","elfutils/tests/run-getphdrnum.sh":"1eb9df99bd596457a481f3be288bec765abe9b1c77cc65cb091a3420f1e53dfe","elfutils/tests/run-getsrc-die.sh":"43ecfe807484f0a00db96fd68f776ad02b32560420f53137ed676ca77ca444d4","elfutils/tests/run-large-elf-file.sh":"3f1ab60d5f808cd5781da8516f8c5181ef69900e8f4ced352ccf034bec7f88e4","elfutils/tests/run-lfs-symbols.sh":"e5c709c34d3e539864ccf664640269fbd50ecfca36ba07415b7abb7b9fda7325","elfutils/tests/run-line2addr.sh":"14da171bd39d6ad99aec84749c38f0f3a610e88c2c2c6b2c5a9f634bc99b641d","elfutils/tests/run-linkmap-cut.sh":"bae463198e7572630343cdb55a82a46c4e24eebc22be3434255b12593d6b3f1a","elfutils/tests/run-low_high_pc-dw-form-indirect.sh":"3c0bde3bef76c95e5ed5bcdccb748c02bf5c251f5c30101a56bd6c032a384683","elfutils/tests/run-low_high_pc.sh":"73f40598962d937fcc8ca8ce72d5a87dbd8074a56f78f33b51aa1d6557760a14","elfutils/tests/run-macro-test.sh":"cffb29268c561959e8a7971f164116f7fd8987953dfcfd5f30cf24ba652774d5","elfutils/tests/run-native-test.sh":"de6f499c8683e952ceb0a11efd706aced895a75f4dbcca3b7de5702eef2fcd06","elfutils/tests/run-next-cfi-self.sh":"2fd8332668fe5966a3b4dad30ca5123e1232c349320d5b7341f40bdbb7a5ed7d","elfutils/tests/run-next-cfi.sh":"35b862b8c7507c9fb4aa69b265cdad35c3ae36e8515f691b0bc5b8f0e501824d","elfutils/tests/run-next-files.sh":"ea38ec48ebd56c89b4c32b0d149484d15d23d481af6c12cd86c89f0074ab0329","elfutils/tests/run-next-lines.sh":"5751596000268fac8ead8184ee419669ed3fe390b669df88dc18719c054db1e0","elfutils/tests/run-nm-self.sh":"3b2b4fcd5eeb59c09deb0a1be88ee7c93be3cfec45f3a426841348b7af23fafe","elfutils/tests/run-nm-syms.sh":"4b687437387fc47f67c8e085f5e1113339db9f47cbf1233c0082ef5f1237fd66","elfutils/tests/run-nvidia-extended-linemap-libdw.sh":"81a07b9c3d44fe390e48906ab641ca0aa26ae44b44cae08211624c8e3859425d","elfutils/tests/run-nvidia-extended-linemap-readelf.sh":"99f480d1933ab75b0e19b68fa7f201600b1a0ee147d71d3da843ba392bf60cb5","elfutils/tests/run-peel-type.sh":"37527df3f62bb1cd2a5d7a9fd5fcffd96ab9adbbffb224142a1e913c9ce2771d","elfutils/tests/run-prelink-addr-test.sh":"ba364084dcfb2d605652361d5bbb87ce700625a7d14ca50d3d6f104aee5fcb1c","elfutils/tests/run-pt_gnu_prop-tests.sh":"9736a7cde946c19ecbbbcf52adf645ab22a16a0f7fa63b52ae64f9f45b9f0fff","elfutils/tests/run-ranlib-test.sh":"5d69383528d20d7bee4980185ab8058766dcfa831c4955a49416baf1673f1c1c","elfutils/tests/run-ranlib-test2.sh":"252bd17dd3622cd2e5b39ffca526df7adab68d2e4fd3c661a4ad131059688ac2","elfutils/tests/run-ranlib-test3.sh":"9eee541b342aa373144344a4ed9e09a57f5834282d5a7c75778a3c9b58ebd07e","elfutils/tests/run-ranlib-test4.sh":"123b63683ff872bb455baabd4bb45dc4a9b7a99a5ca38d3d51c027f2eb512527","elfutils/tests/run-readelf-A.sh":"0bce89e4f70299e7d8bda956a5985406ef15313d5f52170ca575614b935827b9","elfutils/tests/run-readelf-Dd.sh":"7c21742951d4420eeaedc43861e4bc6a375d1fb7f8130c358d39463e641b70f0","elfutils/tests/run-readelf-addr.sh":"141263a260ea9ee7cb9fafe0bdc9c7711f745f3b5de228ee67d5bfd52727dcc2","elfutils/tests/run-readelf-aranges.sh":"6b4091e9ad2e06de6bdb2082bad5ebb7ee93ed448df2aaff8a7a08e17c46e2b2","elfutils/tests/run-readelf-arm-flags.sh":"5880694eeb3ba32d7eeed4184bfe4a3f879459bd3754d3c6224d8c4cc1d7a41c","elfutils/tests/run-readelf-compressed-zstd.sh":"eb1f2e09ccd0b69385154a0313c4127a1944e1bfeb87fee8961f23aa1867b468","elfutils/tests/run-readelf-compressed.sh":"8c324e3dab63e8b1d8927737ef25f478634138db81463fd55d81f491537ef859","elfutils/tests/run-readelf-const-values.sh":"907e29243e90a0a08dc4511eff630c170efb7ec2b8b3fcb02633c6591816355f","elfutils/tests/run-readelf-d.sh":"25e3723d1ff11c5876a7b74a70fe69b21d507d7581864706735e56325232f3f8","elfutils/tests/run-readelf-discr.sh":"e75e4e09aacdccabd8415dc77ae47d6e7ddfb60c50e4feb71f7d60cd8ea8464d","elfutils/tests/run-readelf-dw-form-indirect.sh":"ed02ef53b4824f8514b7c42bb097c9922318ec99d971ad2bbd79fbdc4af3ff0d","elfutils/tests/run-readelf-dwz-multi.sh":"c233971e483fe255215dd6ccf44942b543c0df3c01e372a135c0e09fe34af255","elfutils/tests/run-readelf-fat-lto.sh":"e664a0c7983472c998ac32db5c72c99e9a8dc102bf63fc7c7dd2220166452c2d","elfutils/tests/run-readelf-frames.sh":"d5d23d30b2390b20957994b94919b1779e1644031f936cf4a73f2f988c9a90cf","elfutils/tests/run-readelf-gdb_index.sh":"ebed328dc474e552be160f2e461c18fef7206b589167197a6d30be48896c8ad1","elfutils/tests/run-readelf-info-plus.sh":"ae9002254d115fa18df3f18d4dc884e45267e49482c4c27902054381d41c7307","elfutils/tests/run-readelf-line.sh":"b4031a0af3268865aae2c7efec7e05c3a0c5d8e17727ad88fbaea08e0f761376","elfutils/tests/run-readelf-loc.sh":"b4e62cc874319efbfef7fb16bbfef4a427461fb8985b6e8c4ab51c73a9780265","elfutils/tests/run-readelf-macro.sh":"5c7167099d6f44015ab2077d1b70fc83ee5c88603d6af94e91dd031326255d4f","elfutils/tests/run-readelf-macros.sh":"6ecf328e7c9ad8dd435294180ca8fa456be85ceb7827036a0888bd6d2be2875f","elfutils/tests/run-readelf-mixed-corenote.sh":"7160119d80ba6eb71998f8db39fb1cf2ac86845276b6895e40d5efc1aeb8776a","elfutils/tests/run-readelf-multi-noline.sh":"234bd678057a3db9581298612c57e2f2d994bed704ed403600ee7654f7b7c73e","elfutils/tests/run-readelf-n.sh":"33ce985c3f59d5fd228880ab4af28d1bb788f0655b6a2eac5a33b7525be194ed","elfutils/tests/run-readelf-ranges.sh":"bbe1ef6935c0f6874e2813110e503afe6d2a6c2b15e812d4013d1460723f4a4a","elfutils/tests/run-readelf-s.sh":"36574875972fefbdb17f8b863c3ede69ff8c897f7f4f69f348a2cf482f632ba4","elfutils/tests/run-readelf-self.sh":"669f7c2aa771431c4367fd0e6a550d736d165fa0cf600c9dfb7e00b36d4d7aec","elfutils/tests/run-readelf-str.sh":"618e388274c4fc29f44fb2a5fab7cc2ad342edac97dc915c62edfef896836867","elfutils/tests/run-readelf-test1.sh":"0bec3a3f2df1d792b0d4ea1af65843fef52ccef102ac025bae5f72f189ab17d1","elfutils/tests/run-readelf-test2.sh":"0c3566df23406c1589d79b97e647d355171a595752b1ad235833463fe5233dd5","elfutils/tests/run-readelf-test3.sh":"0deb22cf518037d38ff24e959350f22c7815bf3f86ef034893b273c55cdec15d","elfutils/tests/run-readelf-test4.sh":"e483b30aa89c4f47095311a53931b159cd2708fce85a4a051b34d707e31ae495","elfutils/tests/run-readelf-twofiles.sh":"04f625e76656ba6881dbd43af35557b52c26591bd1a494d24ccb9fef410463d2","elfutils/tests/run-readelf-types.sh":"6f224dbf2f3df9a8ebaba5e6cb82ed19093bce3a66f3db7aaf881500c270a21a","elfutils/tests/run-readelf-variant.sh":"db8c94ac0b6d12d534561ce394944328f63df0f93123fdd657c98e96dbeffbcf","elfutils/tests/run-readelf-vmcoreinfo.sh":"52d508983562c82cb461e4e5bd115fd009e37dc0f28fe307cee6fe49550e1346","elfutils/tests/run-readelf-z.sh":"f981a0677c014b66826504921f7a5ad7dd3bf8894217e4dc84220b3e53fd9464","elfutils/tests/run-readelf-zdebug-rel.sh":"48f5d21719a3b11a3e5bc23306b8f9148391fd7ba78fe628b386ce5d0c023379","elfutils/tests/run-readelf-zdebug.sh":"3f7c86c87cc467027b1981c781e075029aebc721b5de3bc74aaa6afe522bd5ba","elfutils/tests/run-readelf-zp.sh":"174badeff1a9dbbd2b596fa608b091e0ab3fec7addcf8e116361ac9c90a495dd","elfutils/tests/run-readelf-zx.sh":"50209d72d424a3cd86fddd49099917f59023ee6202ec4c327bea3f4cd0aaf5ee","elfutils/tests/run-reloc-bpf.sh":"09671f4a9247a52b1b8d7cc3ae946af74aaa4e5113b8428ac9a4654e1ec6e97a","elfutils/tests/run-rerequest_tag.sh":"ff09361cdaeb4baf47c6821c31e5da5efdd1126d1133c852cbc34f572180ab7e","elfutils/tests/run-retain.sh":"7e109b3ce6f204e8cf0cede27bba8126ce6093f263b0192c2aa3e94fee6e50cd","elfutils/tests/run-reverse-sections-self.sh":"0fa4e4318021df653e1d0e69aa52f41c9d64a0c64b197c7b279c24d768c0712e","elfutils/tests/run-reverse-sections.sh":"0476f3d89472ad182ba7153c9bfb34ed22ee8c7e3f966418e4a386d11e7505e0","elfutils/tests/run-show-abbrev.sh":"dbf16950a81572fd3f28c5899fbdb0dabb1439d977aa5837d799cb760cf6a0a7","elfutils/tests/run-show-die-info.sh":"56325a0b9c72a6e092f289f3c25401fc418b35e030e431c0b1de5db193c1a1b8","elfutils/tests/run-stack-d-test.sh":"faa15f4a0fe3139712cf1f36818ae76b2b522288e436ee9fd4aa53c5fe3ce6f6","elfutils/tests/run-stack-demangled-test.sh":"9102d476710fcaa92eab3bb8ed63f3b54c4dffe1b6c4bd07c7a4df2e53413a0b","elfutils/tests/run-stack-i-test.sh":"2afe7d55cebbe0e7a105fe4c7bf3821c7a9369d5872ec78e6e38336e3c4e5003","elfutils/tests/run-strings-test.sh":"6df8219f67106daf0eb99db81c9120e65fcad7f464a466c9d7daa3eba093891d","elfutils/tests/run-strip-g.sh":"4c0a8fc22f966e46f72065e22ddedf4c3d3ebea5cf0731ca061f9c6c363079c3","elfutils/tests/run-strip-groups.sh":"4785cc17a4776f78480d35b1fb829ab23ae61aaa86d180c8d8c87fa2936414ba","elfutils/tests/run-strip-largealign.sh":"896c3b2014313e89beb91bcf416b21eaed9c1603d19429ddf3a8eb2682dd4e97","elfutils/tests/run-strip-nobitsalign.sh":"8c2c5276ff859f9e318745e595142734cf2c3e77a01d3cca4d2ddcb47997b91c","elfutils/tests/run-strip-nothing.sh":"514708ba3a0ecae3efdfd53209bde0d76457b6a259de778c502aba1efcd65c9f","elfutils/tests/run-strip-reloc.sh":"f82f3d5c2baece33944c7ef2aee88359fc72ef61730c8c3c9795e3302feebe24","elfutils/tests/run-strip-remove-keep.sh":"aaaeca89c780be525139903fee94c98e7e8abec87024db365f970eb9279c5fc2","elfutils/tests/run-strip-strmerge.sh":"d97b008d02f1440cb490fecaba6b6ce19152c9bf5cfa5262a74d48d096e19b6c","elfutils/tests/run-strip-test-many.sh":"3641255520e4086c065e78cf27ef6f4f6111fd90d29473a4389980cefae14491","elfutils/tests/run-strip-test.sh":"df040eab0d0f8fd119bfdc9e2eb97e5ae1135ff53a7d5598bcd4649cd7753d51","elfutils/tests/run-strip-test10.sh":"9e06bbc56369ff5d22a1db1b9e7eead67f572fd6ca4bdc39b4a9595107229735","elfutils/tests/run-strip-test11.sh":"b5bff1c38b5d6d879814a21f2c93a895869dc150f77e20e8058c3f8324fb1721","elfutils/tests/run-strip-test12.sh":"5150d39e3c8559de79b245cbe02f8de8dbc241fc34c1262edcb098fb660eb48c","elfutils/tests/run-strip-test2.sh":"b8c5fc7fd3a9d81488460ce358afffc2237c49e1f7624a0749acc956fdca2b81","elfutils/tests/run-strip-test3.sh":"4248ae18006227aca1e0e0d517e6482020c89894ec0d5f635a8c4defd17ef987","elfutils/tests/run-strip-test4.sh":"b581050a136238150d034cb7b80f506e5f7b2ace716a621d83a6d8cbcee4b50b","elfutils/tests/run-strip-test5.sh":"26ed059cd2df92d63184abf2848d76bfa6c25f5b6d5578fdfd1b235227768418","elfutils/tests/run-strip-test6.sh":"afb3b7f3cd03e99e2da8e270c972928cadf018659c9e1f2e1bb80c030d065305","elfutils/tests/run-strip-test7.sh":"0bf3f48acf5f8741da0b2869a6604b885bb5e6bd8e8c16a87ef3b12885eefce5","elfutils/tests/run-strip-test8.sh":"a9709de8e41162dfad5de2bac4a2684d94a8e7509f3e1fff634f74fcc33bd88e","elfutils/tests/run-strip-test9.sh":"eb5c25dbf52446b872f95a1913a27602a8841f73e14663d585e10cb1fb37c6b5","elfutils/tests/run-strip-version.sh":"92f54e8072073ba35ce64d54bdc6b720ddee6eb4f4f9da59647da72e0cb0763f","elfutils/tests/run-strptr.sh":"fc01d4eb9039182fb71dfc205028f3bc1e205da1a5a2aa301d748dfe19fee776","elfutils/tests/run-test-archive64.sh":"220a5eb522744eb91d7653bc033641ff840e77de15558f470fd4ff56921bfb1e","elfutils/tests/run-test-flag-nobits.sh":"7d0237b23511089c4944a8c00fd2c2c0ded662f22e31b9bfbb65a126fa029829","elfutils/tests/run-test-includes.sh":"8419246b6c7c3d965d2b2edb12f02b2d61a2782d0777d5c217963ed2ab96f6a7","elfutils/tests/run-typeiter-many.sh":"856b044d83f8f24b07a0f8787f5b60bd18fa09e2e00b1178648ef22147d00646","elfutils/tests/run-typeiter.sh":"b3746bbcf857609ea40eb3d87f078a8555edd060c8b59d93fb9e51af11313113","elfutils/tests/run-unit-info.sh":"599edd545b2afdf23c02369c9320e8b162c3c5f10a7db21a096bcf0ce15cd36d","elfutils/tests/run-unstrip-M.sh":"f0928dec3e4b465324f059dab8aed39294bb909e83d18eda4d8ba40393510382","elfutils/tests/run-unstrip-n.sh":"728f9e2c395fb7c8dbb1981a5b4605fad7be3a0eb0b423ab68d63328115c7b35","elfutils/tests/run-unstrip-test.sh":"27d21c69fb5be83575c69fc0d0d50ad51bed1ab33d10fbc0eed86af71a3e6d74","elfutils/tests/run-unstrip-test2.sh":"01c2e1d278e7deb57101634d9b014592fe3ebe0c6c857f35111c2e87e67c7264","elfutils/tests/run-unstrip-test3.sh":"eb3b6521a4bdb15e643127774a17850968458651ab0aede2a745c5e71d978672","elfutils/tests/run-unstrip-test4.sh":"5a63228282d206372a5efddcdd6e6fc9e00459042c172c1c18e2d6c6b75a4e2e","elfutils/tests/run-varlocs-self.sh":"3c84b257cb4cad2e60d695b46ced65d1d15841ffb8d40eeb42965f98754135b6","elfutils/tests/run-varlocs-vars.sh":"a690e1e2c880fdfce1e8cb639102289077aa7ff2d525bde0741c75898f7c77ac","elfutils/tests/run-varlocs.sh":"e033b7a952c453bf941c4b764dd6ddee8bfc27c1680fd99be38a393b5ee763f8","elfutils/tests/run-xlate-note.sh":"7cb2953f47e9030bbd206c148517d9ebf9086e2cd934a1d847488ff158c96120","elfutils/tests/run-zstrptr.sh":"5f5ca05d39841a3997a1fc0f6fd66d9b7d6e03e839bc731520d099917515a45e","elfutils/tests/saridx.c":"99e5b8169f226d19e5de35e72d21685327d4f5f3ee5b68d42490b4ae7dbe0e3d","elfutils/tests/scnnames.c":"e3dee2269fe902b5ee33c990624aa694c6fc0e6e7a0613972642cb551d10b6e0","elfutils/tests/sectiondump.c":"7dc796c21aed6877da5c12018d391928fb439148df36a1f901d023493b8d32ba","elfutils/tests/show-abbrev.c":"4a61e3461dc093d4302f7eb864f0554b28092e536572d33abd922276a33335f5","elfutils/tests/show-die-info.c":"adf372728ebe55e58f30e0b36e70157e0d1a75943368fc0967f9f7ae37ef3d8d","elfutils/tests/showptable.c":"e028355186fece866e19975acea3fc993d0512c08aa8f4ffc54a294ecc5a6497","elfutils/tests/strptr.c":"cf090113bf319d8b124f38ac13fa596764d17d0e8c5d35cbc1d064c1276a3b5b","elfutils/tests/system-elf-libelf-test.c":"17a3000c8813d8fa6d914c1c6c213c69e0dd8a6aa774f1c6961248398506d9af","elfutils/tests/test-elf_cntl_gelf_getshdr.c":"36a2555a504d18b99fcf59f84e11897f9beccd1fb2bbad3f6d50f7f42565a949","elfutils/tests/test-flag-nobits.c":"40a4e976387cee7e22d78dc2c6a726e695b1ec34e41edc8df9557ae69a904bdd","elfutils/tests/test-nlist.c":"5b1d0a5c4c539a951a59e38f5bff833eb9e8ce5a1210d39e95cc356df64a7ef0","elfutils/tests/test-subr.sh":"9bb67b39cb70e11227d92942a1c868c092fc116ef4100dd4b8d9d27b04368bbc","elfutils/tests/test-wrapper.sh":"c8992be3dc95c753a653b8fe4cc725259a2f5a37935bfe9d9f8f66bdddfc81ee","elfutils/tests/testfile-backtrace-demangle.cc":"70d33d705f928d1d99f72fb843a282279cbc19488ce49e60e6828b7114f6b068","elfutils/tests/testfile-dwarf-45.source":"f6cc7aa10fc979d2d3e90c73867452e53ebad9d481bd02403a9591fd0db65b7d","elfutils/tests/testfile-macros-0xff.s":"937db60fe01b50782c589f8fa0e4377f5e855d7c8530a8b12339107da869cbde","elfutils/tests/testfile-sizes4.s":"8563c5ff5694b42c82067ad423895b9378984c67cb75904892f55989c0e0e844","elfutils/tests/testfile_const_type.c":"9bb14456ca0989e3a24caf932623e2dd412ec49d926e7ca35aeb2505bc2e443e","elfutils/tests/testfile_entry_value.c":"bab06441aab1e8b5a4e0b9ecacbede07fc5adfbb77482cbf513e455ad5c68214","elfutils/tests/testfile_implicit_pointer.c":"ef769002beb61da685d8b4b97ca8885124d3b1d11f0d4246e3eada2dfe759848","elfutils/tests/testfile_implicit_value.c":"08128c3e3c15cc1b4edde62367f636379d8febcec14e5d081dbd57fc943b2369","elfutils/tests/testfile_parameter_ref.c":"ab39f1152dd31335f2eb0cfa23ad2557aa7362dfdbec7089f4f78ca8e7a6f128","elfutils/tests/typeiter.c":"9d2e0a5914ebfdeeda25ae72ed80dfac1ea89196359792fccd337dec5aec72a2","elfutils/tests/typeiter2.c":"b67735b329f01d81a8534418855c387c42328fdc7d9d4d8a069f49302ecca0a9","elfutils/tests/unit-info.c":"8f9409de67b2de88b3a6450ba8eec02cdb54453c0cb4cb0d10e7106b0353e7c5","elfutils/tests/update1.c":"5df8e12061b63e32b33f2dc7904ebacd9eecc34c412f311eaca7bd6964d2c9c9","elfutils/tests/update2.c":"03adeea6aa2d3b63d0f86f845bd03aa087c91a215f684aa16de19285be2d8e4c","elfutils/tests/update3.c":"57ee8cfec4c19c968539065c4c76de41face399ccee2ca51a5cb1426dcd2b2d6","elfutils/tests/update4.c":"dd62311e8b508547c839d9e1a8266c6f1a9f75afaa12eddaba7a41e97202f4e9","elfutils/tests/varlocs.c":"0ac1198ee6dfad8b01874c15fc6d4bc14977c4e2ae4ea6a638a173a4c54393c1","elfutils/tests/vdsosyms.c":"d1a4187788255ee13d18483470768b29592547fec6ff641818670fb1c77c9665","elfutils/tests/vendorelf.c":"8abbffb89ab28cc3853cc22f76ea258fb8e794262d1281b61441c121c36eb816","elfutils/tests/xlate_notes.c":"9aff37d8a8f4f606eabcbb872523e4cb487d7949f50cb37265728cafe84e4275","elfutils/tests/zstrptr.c":"3882b24a9c02207b99dc6d06d8913e9bd6b7d34b2429c64dd7e1e39ac3521a1b","libbpf/BPF-CHECKPOINT-COMMIT":"9ea0e39de5a19da09b1e32af3e6be0ebd74332f828790478120d9f2f6c38e39b","libbpf/CHECKPOINT-COMMIT":"22be1a382044c63946ee164ca8090ba7705d31e3e374dfcbd41cea0a7c4c2f46","libbpf/LICENSE":"847f4addbd56e2d5be20c4ea0845e972672fc07b755fadaae5f7abd35d71e349","libbpf/LICENSE.BSD-2-Clause":"e1638b9a0c68ca90fad3df1d6b4e430804d2fbdc15e58d02cffddfae38953bbf","libbpf/LICENSE.LGPL-2.1":"0b9a4febcdee6de55872501d5c1a8f5d8b0d1650cd4d5351995ceb22e889f8ca","libbpf/README.md":"185248a3d3052b3da990f2d2ef1990bc333054e512b983322f33731734cdb4e9","libbpf/SYNC.md":"55aab65b031850055ebdf1488c380a73a9e02218e10f73746edbbb02eb6b1131","libbpf/ci/diffs/0002-xdp-bonding-Fix-feature-flags-when-there-are-no-slav.patch":"f9f3eeadd2ad7dd23cadd4a4f4ba650ccb957692cea7a02a21ce05b3dde3255d","libbpf/ci/managers/debian.sh":"96a3840e054042266c80a81c312cec8bae128ba8201fc91163a46714a8d37811","libbpf/ci/managers/test_compile.sh":"0279de7b3f01dd37c9e296d15a6da1b142cc48a903698dbf69ee0b71952ae379","libbpf/ci/managers/travis_wait.bash":"1bc4cc8d8c7a69ad5740e5ef8154594051168c9266950844ac68f5f0e8310d2e","libbpf/ci/managers/ubuntu.sh":"35e1c83d3b2acbfe5091a6dbd2057205649b181d1514cd8d1c7b10306ac9bd10","libbpf/ci/vmtest/configs/ALLOWLIST-4.9.0":"f1496ff9eba8271d6fb81279dab5ba69c498a0c3d3854e274c9aac90007567b1","libbpf/ci/vmtest/configs/ALLOWLIST-5.5.0":"eeae9bd883755b46232c35929ada5862de72d9ad35ba37ac2092c449d30c4fdb","libbpf/ci/vmtest/configs/DENYLIST":"020f17b3ae9efeb6a7f0393ad09ca20c746edcadad7905df03e0ce07253616f3","libbpf/ci/vmtest/configs/DENYLIST-5.5.0":"a6e75bf61f4033b7b4711cbd6f3aa46df2c4bca05f934fbb5117596d229c3e39","libbpf/ci/vmtest/configs/DENYLIST-latest":"49d5f2c75fbfd21e50a5919692ac1b6caecb8ea97096f310e216b24a038afd31","libbpf/ci/vmtest/configs/DENYLIST-latest.s390x":"90c5fcf54052f9cf35c63ec17de67a19b93727dc38fa7b19b653b53fb7eb776a","libbpf/ci/vmtest/helpers.sh":"abdf101e8d5b0a9799f008d1a440d21c0ee3da2f62bcbeada289f446fb2742db","libbpf/ci/vmtest/run_selftests.sh":"853173301c46e5e2ad8aed74616edcd94faa26afe19bafa8a180b20bfcb4cffb","libbpf/docs/api.rst":"c987ae649b2ccb386558e768897c636af4b280f2005c5d04549d83f0e675dcb7","libbpf/docs/conf.py":"3e9e4f766400427e3cdb93492f89ee5a5fa091eebb728244c621d589a5b92557","libbpf/docs/index.rst":"3abd3d59ca6e7a469171b174864140de501e258423cf3376e9efaf7430991015","libbpf/docs/libbpf_build.rst":"69f3f73e0db490c56bef7a0c61d83cc3d46a6c42e9534bc4ef28f815221f4673","libbpf/docs/libbpf_naming_convention.rst":"bed930cc1ab82aa7d6bf111345586d0e5d86b0acd1b6e3a881ffbdc473354b06","libbpf/docs/libbpf_overview.rst":"f151f83ec701e1c646d3bfb3134c5ca908f24654535ebed5d1de8e2eadbcddd6","libbpf/docs/program_types.rst":"33845853e5425dc4649960f9297913dc642f0efb647a3c3b0071fc90a646ce51","libbpf/docs/sphinx/Makefile":"a5c89d2eeacf8686db5db05209ab32050358c3b81e68a55b3c027f6691527d91","libbpf/docs/sphinx/doxygen/Doxyfile":"27fdf22303f575878036a1050c3459126b68a232ac5f4d78b51323ecd2e6c9d4","libbpf/docs/sphinx/requirements.txt":"51e2106b807bbe2525d9d2d2f934488eb582161412c076c057164049f4383076","libbpf/fuzz/bpf-object-fuzzer.c":"c710220d98ed740d6695f4c09eb17b76c7cd26bb6ba6699334215d54d304b9fb","libbpf/fuzz/bpf-object-fuzzer_seed_corpus.zip":"84ed860e064ed39db7e8019b58f93775a852784a3524c93e44096f0dc862bb90","libbpf/include/asm/barrier.h":"a84d0a77e672ca9ccff1a422b7a7b74be5ca72c316aeeca2eecc6ee77e81a505","libbpf/include/linux/compiler.h":"3ac4146cd35a9c0b53b05dec28c78aa632eef0450fa1a323b4eb41222974fed9","libbpf/include/linux/err.h":"245fdff3371ec43620a091edeb674059bdbb65606d2c63bf6689bbcb48cf17e4","libbpf/include/linux/filter.h":"9b4d326eba272ed1ecf8c98a7589796737feddb79cdd36ad9364df069de6ef77","libbpf/include/linux/kernel.h":"d781b97dee2e02f5152f3d26e0a25e906cd454cb241bf62e7398cff06454f170","libbpf/include/linux/list.h":"176a9979d21ffd72852deb9795616308e800643ce597bcc2391d5fe9aa307394","libbpf/include/linux/overflow.h":"e7a26cac1fd3a8167206a78256b69581c6a76636dda1b8b90ddcd1783ca804ee","libbpf/include/linux/ring_buffer.h":"8f0764e60adef7feace9c8d26bc7cb9a0970b45de091f687a3e6fc76412dd8f3","libbpf/include/linux/types.h":"b5735c301c95f7bf1f315eb162a982981f06dab12b7769546edbf875014c7621","libbpf/include/uapi/linux/bpf.h":"86de0cacddab460f195178d70b4c8e59cc3ec373e5a24195f9c07c13f8a84f25","libbpf/include/uapi/linux/bpf_common.h":"adc9e87d1a335379ffe3658547635904cae6ccb8b7d1e578d0c25b50aa44db04","libbpf/include/uapi/linux/btf.h":"62e3da6eaf7abbc289e3451bbca664872addb0722e538fa69a313b389efccc9d","libbpf/include/uapi/linux/fcntl.h":"cd29391a24dec667584a34cbb5740e166de08df3acb9a507d519af539aa0ede5","libbpf/include/uapi/linux/if_link.h":"3b6f2cec1048b5959dec7cad48e2930b1a79250b8ccf0a0733b4a98e97d6f87a","libbpf/include/uapi/linux/if_xdp.h":"2e0ff3f97d266fe7ba8125d2aa5c56856528d896a8b957bb965c042c55ff0f9e","libbpf/include/uapi/linux/netdev.h":"428439dc6020099d7abeb3abb889f13e6f02929087db38c6b27b5b1573377063","libbpf/include/uapi/linux/netlink.h":"99de393143f53302b0bec31c4b1f1d9672632b6c7cf01c30664c80335871ca85","libbpf/include/uapi/linux/openat2.h":"1c694c33d2d60cb8767c34bf52e536dc9e30dc78b90cbeaf73ac9c6b2271a23c","libbpf/include/uapi/linux/perf_event.h":"e15da87dca9268dfca5e2c0942a7f2b689a5f0ad4ebbbd70b9974661726129ac","libbpf/include/uapi/linux/pkt_cls.h":"1a2cf536238468a1a3d95c5697100542abf5b271fe3f47efb42644f52b21f175","libbpf/include/uapi/linux/pkt_sched.h":"d0a93e928661755ed54b0a628601ae9299f36d1edcc94b9aea38fa8ad0a7f4d3","libbpf/scripts/build-fuzzers.sh":"ad721d91b905935cf3ce54a4a81e401719a07bcc3cc58c846eed07c3514fc67d","libbpf/scripts/coverity.sh":"3e0e7cc6188ad96871cb3aa50d9f49a748272a767ab409dff744b02c5445283a","libbpf/scripts/sync-kernel.sh":"59c5b0406bf44beac1b3b072b5eab7e5bd5ea663e3841f2fa2cd9da0eefd18a6","libbpf/src/Makefile":"45fef9ec2931b972a8cb581399d2e719b4a126e02137fb09ae0c22720db7d0c4","libbpf/src/bpf.c":"5fae946bb1672331cfce5d8960014b59870df7e73e270b2dbe09761e208ceb85","libbpf/src/bpf.h":"0535f5f4d6ba6464040a66f835b57d54caa361646351c94730f8630cc78ece03","libbpf/src/bpf_core_read.h":"927cd824b7f7f24c437b564876ac5e5a767d09c220ac2161301955c053bac253","libbpf/src/bpf_endian.h":"64b77c97b089ca06203d0451407844fe93933b4e36e7315a294745fa29d058fb","libbpf/src/bpf_gen_internal.h":"80310ab1eeddf8c9216fa8d3a2baa030cfae336537e2b65aa2d5b011d4cb54c7","libbpf/src/bpf_helper_defs.h":"713f32128360bebe69a23202649984a66cbcb73f0e0ebae7dc7c8469e48798cd","libbpf/src/bpf_helpers.h":"b2c9bca883f03e7de2535bf0faa894cc52ab99719bcaa42c0d707c63b492e7c1","libbpf/src/bpf_prog_linfo.c":"ec46567e34d604fecfc1d74289da0cb7400c263f6a9e10643f86652d51c34edc","libbpf/src/bpf_tracing.h":"9865b9368764e56df2413961e98715c2817766e5572dc543484ef34cf8789831","libbpf/src/btf.c":"2679077ba08568c9b9f69ecc80e9034f22691c33ca5da7cb376cd91417b4ef83","libbpf/src/btf.h":"e28e5bca81a5d782e27088da750712c747acb9ab1764bd944bf3e7fc15d4b503","libbpf/src/btf_dump.c":"750260d2cb76b894e58cc714499966c97e8eb3d6e8fab7bd0d3e8b49e7882fb4","libbpf/src/elf.c":"13ca4d472f44125dd68b5b388d121d3e260c0c2549ac0144a363c108eb91bef8","libbpf/src/features.c":"f299fd1f6fe45c3dc6fe57e99628f8b377ba5e549c7de6de3a8d2a57d234d4a0","libbpf/src/gen_loader.c":"3626f9199166c04979abea83227e31ed6b61a02bfa65fc7e0996d98fa62781d2","libbpf/src/hashmap.c":"52a91ca6fe27e7f36cb35d56d8465e278e3e220acebc73761f9802bba8c5f533","libbpf/src/hashmap.h":"cd258f15555319f125901609ffdc78bf69e4488239ac9ae57a0b4a9c3e79d737","libbpf/src/libbpf.c":"a834110f00b4fe53618946d3b0dbb74abe04a5a8f290ab081a02e9af6f3fddb0","libbpf/src/libbpf.h":"3f9b47dfe559a32372f720230bdf72bd5b736189ac9022660d0a41aca2c4c687","libbpf/src/libbpf.map":"94cae00c996c441d0fef4478ccdaf21e2bf1a32383b1393158abcd4783e92e42","libbpf/src/libbpf.pc.template":"6abe50db2e0af8b573d91baa7bcca13cb8fdbcff1e0c27043cc6cf66f291c838","libbpf/src/libbpf_common.h":"d58d7044c3e30f322614da76e3832c5b31e61469d31c29c53ee8abf736664414","libbpf/src/libbpf_errno.c":"9047ad9194a9011255b155ef0b55a12b31ffbf615d410de2c4ab66563e057e95","libbpf/src/libbpf_internal.h":"4e22d21a53ee0218e77657fb6ce7a6aa838f5461a1f617e37a0b5045f7785182","libbpf/src/libbpf_legacy.h":"4b09b8535b0eb9da94e8eafba8edcb2abc742bb07dd870bd216c3eea955a18d8","libbpf/src/libbpf_probes.c":"0b98c5a57ac2fc70837b35533b6eec9289f0f77c2af060d4d68e2f30f514f192","libbpf/src/libbpf_version.h":"5bddef31f66a9be5643442b9bfd3838199b654d0a8700b9c546449c11f38e702","libbpf/src/linker.c":"88c0052a220c3be49b4d511fa29f7a3bf43d2e5d37ad85e9ffec477b9e2299eb","libbpf/src/netlink.c":"440f19806a26f9d3db02e622365d561ce6d0fffcbc5299c77e07f85bbda08856","libbpf/src/nlattr.c":"e7e820820620a988dd947b501e1bbf762e9b27fb13f96245900441e1f1ddf2b4","libbpf/src/nlattr.h":"5668e2130357bf0752797855655f7cf8c92bfd32823c9aae993d7e88306c7dcd","libbpf/src/relo_core.c":"801264d318edfc8e1439c31a25ca955e15ca187f31ec02bc54ddbc45416bf28e","libbpf/src/relo_core.h":"d82819c5ca7e1b4a5e09f8462d4a839db4322b84f35d1f9650bc9fa2898ecb94","libbpf/src/ringbuf.c":"c1d645280f38a823d341dfce8d47c20b4c2fb9916364f75c95c9f520f3e89c6d","libbpf/src/skel_internal.h":"a2f7fa02729c0bab05f5bdcab5b0b46e0ec91387518125d6bf6c4451d536fe6b","libbpf/src/str_error.c":"92fdc77721cdc39f7b38f7a237b147d1f5bca8148e0d38cb05701c3ef9d42634","libbpf/src/str_error.h":"7935be5c5e6b8145c479fd07d5f3f66294b4d815d8eacb73c801adc7141f61ea","libbpf/src/strset.c":"8d701fc361e2193adde3ed4d64ba5b11700524d4c1b741505d777c59952a6cd5","libbpf/src/strset.h":"7f9a1ff121988235141ac90f6298486835a495f79138c7c4a969e30e8870947e","libbpf/src/usdt.bpf.h":"df28567890af3c0eb7f07b9e589f28ae68ed931dce24be7d890bec2220f7f6d5","libbpf/src/usdt.c":"6561603ba090e143a8faddd71f0938d0fff82f4b46f663039acee74b129f08f9","libbpf/src/zip.c":"6a2dd844a6db2d9c99d5e27586d57b6b2528287d4d6ef2d11573175407fed8a8","libbpf/src/zip.h":"a20f25184b292aabf4f14f594820c73392ee0b5e939b24fd83ee16d3d8db35e8","rebuild.sh":"29930ba643c59b0b6a2f9d1b20dd996a8166f16f11f4ecbf8747b95f70c5428e","src/bindings.rs":"422c553e86b223b28a5fa5876a1569e466380977f84e2395c5b066bf32703f50","src/lib.rs":"bb3ca4370e84b4a63618f7b06dc82588244bf3b7ee0e2a8df86039becad6b0dd","tests/tests.rs":"1ff19fff30ea54df889efa7c463861a7fa6364aa4b6de5fd7f331ab772562cec","zlib/CMakeLists.txt":"d3ea46cd350c74c21c2dd97f6d0ad354db76b2b43cc91ec1144b88267f67a588","zlib/ChangeLog":"6933f4ab74360476bc80d9eda2afd98f93588a5d276e1197926267421dd6959e","zlib/FAQ":"1e8a0078be0ff1b60d57561a9e4a8cad72892318a8831946cba1abd30d65521c","zlib/INDEX":"3b4e325d47ae66456d43fcf143ba21ab67a02a4f81be7ef2da480ba30d774266","zlib/LICENSE":"845efc77857d485d91fb3e0b884aaa929368c717ae8186b66fe1ed2495753243","zlib/Makefile":"ef23b08ce01239843f1ded3f373bfc432627a477d62f945cbf63b2ac03db118a","zlib/Makefile.in":"77a662b885182111d7731eef75176b4c5061002f278b58bf9bf217e2fa16cadb","zlib/README":"4bb4d5664fb9d06ef0d47e8ef73104bd545a5a57eb7241be4f2e0be904966322","zlib/adler32.c":"d7f1b6e44fee20ab41cef1d650776a039a2348935eb96bcbd294a4096139be3a","zlib/amiga/Makefile.pup":"a65cb3cd40b1b8ec77e288974dd9dc53d91ed78bbe495e94ccc84ddd423edf1f","zlib/amiga/Makefile.sas":"0e63cf88b505a1a04327bb666af3a985c5e11835c0c00aed4058c0dcc315d60e","zlib/compress.c":"6d0f0d0784744acca2678ce325c8d7c4c030e86f057adb78adcee111d2248c0d","zlib/configure":"2d964a697f9060d3a8fc5b4272c9d07b22e5fe6f5cf327e5c29f62f67d935759","zlib/crc32.c":"ec3ff0f97858b228513027a490e4330cbb23c6fbdd24d839902ffa89854f209c","zlib/crc32.h":"9a2223575183ac2ee8a247f20bf3ac066e8bd0140369556bdbdffc777435749e","zlib/deflate.c":"4470e36709ce7d6067fa3e8f60bb7f693b055bee42a0d6655ed71faa2db87fde","zlib/deflate.h":"0db1b5ef79ca6ba0f508b7b8bdaa11af45c5ebe2c89ab4f1086dc22b963a52fa","zlib/doc/algorithm.txt":"992590931e982c0765286c2d83f6e9ff0a95aabb08e28c30c52bae3e8c4bd5ad","zlib/doc/crc-doc.1.0.pdf":"064f9252d6e2e15ea56c2bd18e160e5c9c84bcd137c11a7af497aaa511ace998","zlib/doc/rfc1950.txt":"8f0475a5c984657bf26277f73df9456c9b97f175084f0c1748f1eb1f0b9b10b9","zlib/doc/rfc1951.txt":"5ebf4b5b7fe1c3a0c0ab9aa3ac8c0f3853a7dc484905e76e03b0b0f301350009","zlib/doc/rfc1952.txt":"164ef0897b4cbec63abf1b57f069f3599bd0fb7c72c2a4dee21bd7e03ec9af67","zlib/doc/txtvsbin.txt":"d1549fb75137f03102798f70fd34ff76285e717ddd520dd82274c1c0510eacf0","zlib/examples/README.examples":"1bc1c677bbebe1aa5e85015bb62f0cf3fcdbf95652d30494159bee6166c1854a","zlib/examples/enough.c":"c14a257c60bbe0d65bb54746dd97774a1853ef9e3f78db118a27d8bc0d26d738","zlib/examples/fitblk.c":"fd8aaaefd5eb3d9fc388bdc5b715d1c6993ecc9367f5432d3b120a0278904edc","zlib/examples/gun.c":"3bfd36b06284ba97d6105b8a6a5d18b2b34b75b3a1285f16d018680fb174915f","zlib/examples/gzappend.c":"6de91c8305e37560117bff44136abff72b16b028c0bda0bbac7ea07e4988b0ce","zlib/examples/gzjoin.c":"90b9d6c39a5fc91cf1cc9b96b025a508a8015dc502cd9374c754b44078593f57","zlib/examples/gzlog.c":"196872021c96099fd30c880ac2cccd1350fdbd81179731f3914153a26ebf72e9","zlib/examples/gzlog.h":"681f280437f867820bf39880e2f4fc641d402879e399ba2e6a31d73feefe8edc","zlib/examples/gznorm.c":"e5a8f5c3b107f27212f7d5fbfcf072a337a1b4ea32929ae31c168997438a5cc0","zlib/examples/zlib_how.html":"80fb647be8450bd7a07d8495244e1f061dfbdbdb53172ca24e7ffff8ace9c72f","zlib/examples/zpipe.c":"68140a82582ede938159630bca0fb13a93b4bf1cb2e85b08943c26242cf8f3a6","zlib/examples/zran.c":"10f9568b1f54cdb7474a38c5bc479aa0edb07a0eed2e999bdad4c521f6b25330","zlib/examples/zran.h":"9a0d4c15f898c43deae2c5e98a5c66c637a1b25573d662fe91a789c386eaf971","zlib/gzclose.c":"94446cf8cde67c30e64d0a335b0c941fd3fbad2e77f30180d12e61f9c2a5a6b8","zlib/gzguts.h":"fa85c9dabe24e42ba95c702870416ff67ecc58906321f8e74b72a50dfd7df400","zlib/gzlib.c":"635b7b6df79a5ce6e0f951669e4c82704d7972d8afb87278b9155c2cb4c5066f","zlib/gzread.c":"41c69d43fb3974bae58d9169aea3514221f70dc77bb7a35c79626dd3be01adf2","zlib/gzwrite.c":"c7454689751c8f41ec63a1381a0053fb149095abe1c3b89c8a996b2d7ac8adce","zlib/infback.c":"6a6cfe3d7e239d590692bc2664ac58d3ef92be30ff4cb3c6dbf5deed28f79eb5","zlib/inffast.c":"41d93aefdbfee5455809130af74fcc76cf7259b1aa8b34d0060d14e57463e8bb","zlib/inffast.h":"7d8c1c873ce9bc346ad6005bb9d75cce5c6352aaf7395385be216a9452a34908","zlib/inffixed.h":"237ba710f090e432b62ebf963bee8b302867e9691406b2d3f8ee89ee7bfef9b0","zlib/inflate.c":"f1679575fef1717d908dd09d7bfe8fff89c21941cadd7c255a2ccccfba3a287e","zlib/inflate.h":"e8d4a51b07694bf48cb91979c19974cf6a5ab0b8a09d26ec0d14df349230673e","zlib/inftrees.c":"b9db40bbb68b63dccbcdfa78d687751e33178af8669f1c1236309cfd5d2edc0e","zlib/inftrees.h":"44084a93673386db6282dcb61d739c84518e10dff66d1c6850715137c827464c","zlib/make_vms.com":"14ed54bdd391c1648cedfb69d8a73a26dcc7f1187d59b0f18d944b7665cec85b","zlib/msdos/Makefile.bor":"292ab363f7ffbc4ae84d37cd9bdffd2dac1003bee52d223a8489844870f20702","zlib/msdos/Makefile.dj2":"9208450c2ae6dcbfcc25560b5b9ca763f461e7246e37b0552474edf8fa898906","zlib/msdos/Makefile.emx":"c749d6ec7f88e8e639d4f03bdbdcbbe9d1c304210be4c4be621ceb22961d3d64","zlib/msdos/Makefile.msc":"0e021a6f42212415b060e4ad468eb415d0a8c1f343137fb9dff2cb8f9ead3027","zlib/msdos/Makefile.tc":"2ae12ee2a3e62f7c5a0520d0fbe4adee772bc07fe816002b07ccb43db3daa76a","zlib/nintendods/Makefile":"ea5823efe6830132294eddf2f56dbd7db8712244c210bb4968c431b1a91bd066","zlib/nintendods/README":"e362426c47b39ff6a7d6c75c6660b20abf076cdfa5e1e421716dc629a71aef95","zlib/old/Makefile.emx":"d811f032272aae50123a889297af3a02fbd60d1e42bbef11466462f627ff7b5b","zlib/old/Makefile.riscos":"d1a488b160fbfd53272b68a913283a4be08ba9d490796b196dddb2ba535b41e0","zlib/old/README":"551a0f4d91fe0f827a31cbdfbb4a71d1f3dc4d06564d80a3f526b749dd104d11","zlib/old/descrip.mms":"8ff08c35c056df9c986f23c09cf8936db63ccf12c3c42f7d18a48b36f060cff7","zlib/old/os2/Makefile.os2":"6ad247c00f00ff42fd2d62555e86251cef06e4079378241b5f320c227507d51d","zlib/old/os2/zlib.def":"ea9c61876d2e20b67ef2d9495991a32798eb40d13ede95859a2f4f03b65b9b61","zlib/old/visual-basic.txt":"1727650acbde9a9e6aec9438896377e46a12699cca5d46c5399cef524dedc614","zlib/os400/README400":"5eb702a0dd460e2bea59ee83014c3f975e892057850c639f793bb740044a38ba","zlib/os400/bndsrc":"3c36a17975eed5a8d33bc5443b39fead1e68c01393496be9c1f4a61444bcb0f6","zlib/os400/make.sh":"143394d1e3876c61c29078c0e47310e726e1f5bd42739fe92df9ece65711655f","zlib/os400/zlib.inc":"dede38961ae2e7a2590343bf1ff558c6f51e46714dec33f2d11d8c34899b3875","zlib/qnx/package.qpg":"d521336be75bdd145281c6d166241905751ec97093ecd6fec97a313f631ac0e1","zlib/test/example.c":"64ae90d60b40a8aec4700e5c4e7a71898ebb92948b7a07f939b3e763cb3e8b35","zlib/test/infcover.c":"f654f3fcc74b33bd95cda63d13fe0ce589bcfe965544e0c17ee597d75efbd090","zlib/test/minigzip.c":"f9777d1e8b337573e12daa8091dcf22e88a9b155fc0acad15b8224c377bfe027","zlib/treebuild.xml":"89b50165782643554a38d5c58c203d9648b540e5a455531dcb58b5676a019955","zlib/trees.c":"b338f1ec9038bd77efc09c8fdb99ef27b5db5b3da9baa301e544adc8e3b6a662","zlib/trees.h":"bb0a9d3ca88ee00c81adb7c636e73b97085f6ef1b52d6d58edbe2b6dc3adeb4d","zlib/uncompr.c":"7b3d8ca0f10ef7c74044c3172ca8f9f50389cd0f270ee4517f438e7e06be5623","zlib/watcom/watcom_f.mak":"7e039b912f9cffaa40835281430bb284fa9042b0a0d12f6b34700a06bca6576e","zlib/watcom/watcom_l.mak":"d11b4064604a034725860e63e3f6d347056372e4b1675b183e20a93533b20cc9","zlib/win32/DLL_FAQ.txt":"9e00778319381e6275691dd3a89410c99065b8c0c5db96473abe8c859cbdefd8","zlib/win32/Makefile.bor":"7d73a0d2c3e38b7c610bbc9c22f683a4fe1ab9b8b65649a3a8ac4ff7fcc14ba6","zlib/win32/Makefile.gcc":"97140c30506a8f6b2edb6b3d8a1b6b539d7929d4b957deba9950301090f579bf","zlib/win32/Makefile.msc":"235529bd529d4690d5d4b7871fdd0a1f118f2fe18862cbdec5f5ac674c55a60d","zlib/win32/README-WIN32.txt":"f414b3702f8d3bf1de42e0f41604bd78c44e537aae16b6107e3cdaa5759caa16","zlib/win32/VisualC.txt":"9ec0babd46eaa012371dee2d3a8a55d9c7130f7895512c3371c737e4a7f6a997","zlib/win32/zlib.def":"c00693a5c825f8bfbdb68124fd03cb2fa5269338071147bdaa14434aaf3962b9","zlib/win32/zlib1.rc":"54e161029b59e99a4f9cb2281b956f00ecfb1814318ddef9c741ff4f832c5c1d","zlib/zconf.h":"80e0a31a4c0e6f20d1bad0df99271b9d535aa9f7c4e62f1a54f643adb4c6dfa2","zlib/zconf.h.cmakein":"bb12900d39488e6a9ed67ebd7cf5599f3ced8937b7077d4d5001e470c7a1392e","zlib/zconf.h.in":"80e0a31a4c0e6f20d1bad0df99271b9d535aa9f7c4e62f1a54f643adb4c6dfa2","zlib/zlib.3":"aefd0162070fcb0379dc18e27b039253cd98c148104c1097dd60e0d0b435e564","zlib/zlib.3.pdf":"91343dffd2876dcf4af567f299ce99872b066232451093d6d12e02e4654873d8","zlib/zlib.h":"a980a0d104198a53cc220c51ab5856e5be901bec8a2d02e0ee79a8754219dfed","zlib/zlib.map":"33e2a7c4defd6222945bb0f7191b6380afb4f518e804af86a44aad4a9090bf9e","zlib/zlib.pc.cmakein":"2f1d0b18ce37c2af415a469857f02aee2c41a58877aff21d29e9c6db32b55cb7","zlib/zlib.pc.in":"04c01cc2e1a0ed123518b5855f585c93a24526dd88982c414111ea1fc9f07997","zlib/zlib2ansi":"b3f9c88abbdf16143e5d5110e44fff198bcda9ee1358e036c8d445e9d0cbce85","zlib/zutil.c":"8108af451ad14271065844736ac7c436275b92826c319318070508d769371428","zlib/zutil.h":"cf94d865e3a9162c0571cba7f74c8f01efbdca26b981d6cc9c545d4c3991e3c2"},"package":"ef4996061dea5bd75d12b149b37d84ce7bfd0246997aa5ccc4fdd97ea8f72ee3"}
\ No newline at end of file
diff --git a/crates/libbpf-sys/Android.bp b/crates/libbpf-sys/Android.bp
new file mode 100644
index 0000000..8f26c4f
--- /dev/null
+++ b/crates/libbpf-sys/Android.bp
@@ -0,0 +1,50 @@
+// This file is generated by cargo_embargo.
+// Do not modify this file because the changes will be overridden on upgrade.
+
+package {
+    default_applicable_licenses: ["external_rust_crates_libbpf-sys_license"],
+    default_team: "trendy_team_android_rust",
+}
+
+license {
+    name: "external_rust_crates_libbpf-sys_license",
+    visibility: [":__subpackages__"],
+    license_kinds: ["SPDX-license-identifier-BSD-2-Clause"],
+    license_text: ["LICENSE"],
+}
+
+rust_library {
+    name: "liblibbpf_sys",
+    crate_name: "libbpf_sys",
+    cargo_env_compat: true,
+    cargo_pkg_version: "1.4.3+v1.4.5",
+    crate_root: "src/lib.rs",
+    srcs: [":liblibbpf_bindgen"],
+    edition: "2018",
+    apex_available: [
+        "//apex_available:platform",
+        "//apex_available:anyapex",
+    ],
+}
+
+rust_binary_host {
+    name: "libbpf_bindgen_build",
+    host_cross_supported: false,
+    srcs: ["android/build.rs"],
+    rustlibs: [
+        "libbindgen",
+        "libbindgen_cmd",
+    ],
+    lints: "android",
+    clippy_lints: "android",
+}
+
+rust_bindgen {
+    name: "liblibbpf_bindgen",
+    crate_name: "libbpf_bindgen",
+    custom_bindgen: "libbpf_bindgen_build",
+    wrapper_src: "android/libbpf_wrapper.h",
+    source_stem: "bindgen",
+    header_libs: ["libbpf_build_headers"],
+    shared_libs: ["libbpf"],
+}
diff --git a/crates/libbpf-sys/Cargo.toml b/crates/libbpf-sys/Cargo.toml
new file mode 100644
index 0000000..f27701c
--- /dev/null
+++ b/crates/libbpf-sys/Cargo.toml
@@ -0,0 +1,95 @@
+# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
+#
+# When uploading crates to the registry Cargo will automatically
+# "normalize" Cargo.toml files for maximal compatibility
+# with all versions of Cargo and also rewrite `path` dependencies
+# to registry (e.g., crates.io) dependencies.
+#
+# If you are reading this file be aware that the original Cargo.toml
+# will likely look very different (and much more reasonable).
+# See Cargo.toml.orig for the original contents.
+
+[package]
+edition = "2018"
+name = "libbpf-sys"
+version = "1.4.3+v1.4.5"
+authors = [
+    "Alex Forster <[email protected]>",
+    "Dan Siemon <[email protected]>",
+    "Daniel Xu <[email protected]>",
+]
+build = "build.rs"
+links = "libbpf"
+exclude = [
+    "/elfutils/tests/*.bz2",
+    "/libbpf/assets",
+    "/zlib/contrib",
+]
+autobins = false
+autoexamples = false
+autotests = false
+autobenches = false
+description = "Rust bindings to libbpf from the Linux kernel"
+homepage = "https://github.com/libbpf/libbpf-sys"
+readme = "README.md"
+keywords = [
+    "bpf",
+    "ebpf",
+    "xdp",
+]
+license = "BSD-2-Clause"
+repository = "https://github.com/libbpf/libbpf-sys"
+
+[lib]
+name = "libbpf_sys"
+crate-type = [
+    "lib",
+    "staticlib",
+]
+path = "src/lib.rs"
+
+[[test]]
+name = "tests"
+path = "tests/tests.rs"
+
+[build-dependencies.bindgen]
+version = "^0.69.4"
+optional = true
+
+[build-dependencies.cc]
+version = "^1.1.6"
+
+[build-dependencies.nix]
+version = "^0.29.0"
+features = ["fs"]
+default-features = false
+
+[build-dependencies.pkg-config]
+version = "^0.3.30"
+
+[features]
+bindgen-source = ["bindgen"]
+default = ["vendored-libbpf"]
+novendor = []
+static = [
+    "static-libbpf",
+    "static-libelf",
+    "static-zlib",
+]
+static-libbpf = []
+static-libelf = ["static-libbpf"]
+static-zlib = ["static-libbpf"]
+vendored = [
+    "vendored-libbpf",
+    "vendored-libelf",
+    "vendored-zlib",
+]
+vendored-libbpf = ["static-libbpf"]
+vendored-libelf = ["static-libelf"]
+vendored-zlib = ["static-zlib"]
+
+[badges.github]
+repository = "libbpf/libbpf-sys"
+
+[badges.maintenance]
+status = "passively-maintained"
diff --git a/crates/libbpf-sys/LICENSE b/crates/libbpf-sys/LICENSE
new file mode 100644
index 0000000..f21b0b5
--- /dev/null
+++ b/crates/libbpf-sys/LICENSE
@@ -0,0 +1,25 @@
+BSD 2-Clause License
+
+Copyright (c) 2019 Alex Forster
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this
+   list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/crates/libbpf-sys/METADATA b/crates/libbpf-sys/METADATA
new file mode 100644
index 0000000..fd7002c
--- /dev/null
+++ b/crates/libbpf-sys/METADATA
@@ -0,0 +1,20 @@
+name: "libbpf-sys"
+description: "Rust bindings to libbpf from the Linux kernel"
+third_party {
+  identifier {
+    type: "crates.io"
+    value: "libbpf-sys"
+  }
+  identifier {
+    type: "Archive"
+    value: "https://static.crates.io/crates/libbpf-sys/libbpf-sys-1.4.3+v1.4.5.crate"
+    primary_source: true
+  }
+  version: "1.4.3+v1.4.5"
+  license_type: NOTICE
+  last_upgrade_date {
+    year: 2024
+    month: 8
+    day: 22
+  }
+}
diff --git a/crates/libbpf-sys/MODULE_LICENSE_BSD_LIKE b/crates/libbpf-sys/MODULE_LICENSE_BSD_LIKE
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/crates/libbpf-sys/MODULE_LICENSE_BSD_LIKE
diff --git a/crates/libbpf-sys/README.md b/crates/libbpf-sys/README.md
new file mode 100644
index 0000000..05cfa79
--- /dev/null
+++ b/crates/libbpf-sys/README.md
@@ -0,0 +1,64 @@
+# libbpf-sys [![Build status](https://github.com/libbpf/libbpf-sys/workflows/CI/badge.svg)](https://github.com/libbpf/libbpf-sys/actions?query=workflow%3A%22CI%22) [![crates.io version number badge](https://img.shields.io/crates/v/libbpf-sys.svg)](https://crates.io/crates/libbpf-sys)
+
+**Rust bindings to _libbpf_ from the Linux kernel**
+
+**Maintainer:** Alex Forster \<[email protected]\><br/>
+**License:** `BSD-2-Clause`
+
+_libbpf-sys_ is the packaged result of using _bindgen_ to automatically generate Rust FFI bindings to _libbpf_ from the Linux kernel.
+
+**Warning:** this crate does not provide a high-level or "safe" API wrapper around _libbpf_. If you are looking for an easier way to use _libbpf_, check out these other crates that implement higher-level APIs using _libbpf-sys_...
+
+ * **afxdp:** a Rust interface for AF_XDP – [GitHub](https://github.com/aterlo/afxdp-rs) | [Crates.io](https://crates.io/crates/afxdp)
+ * **libbpf-cargo:** Cargo plugin to build bpf programs – [GitHub](https://github.com/libbpf/libbpf-rs) | [Crates.io](https://crates.io/crates/libbpf-cargo)
+ * **libbpf-rs:** a safe, idiomatic, and opinionated wrapper around libbpf-sys – [GitHub](https://github.com/libbpf/libbpf-rs) | [Crates.io](https://crates.io/crates/libbpf-rs)
+ * **rebpf:** write and load eBPF programs in Rust – [GitHub](https://github.com/uccidibuti/rebpf) | [Crates.io](https://crates.io/crates/rebpf)
+ * **xsk-rs:** a Rust interface for Linux AF_XDP sockets – [Github](https://github.com/DouglasGray/xsk-rs) | [Crates.io](https://crates.io/crates/xsk-rs)
+
+The community is encouraged to build higher-level crates using _libbpf-sys_. Please let me know if you do!
+
+### Building
+
+As part of the `cargo build` process, an included copy of _libbpf_ is compiled and statically linked into the resulting binary. This means that, in order to build a project that depends on this crate, your system must provide a working C compiler toolchain (GCC and Clang should both work). Additionally, your system must provide development headers for _zlib_ and _libelf_, and they must be discoverable via _pkgconfig_.
+
+Building on a fresh Debian/Ubuntu installation:
+
+```sh
+$ apt-get install git rustc cargo build-essential pkgconf zlib1g-dev libelf-dev
+$ git clone --recurse-submodules https://github.com/libbpf/libbpf-sys.git && cd libbpf-sys
+$ cargo build
+```
+
+Building on a fresh RHEL/Fedora installation:
+
+```sh
+$ yum install git rust cargo gcc make pkgconf zlib-devel elfutils-libelf-devel
+$ git clone --recurse-submodules https://github.com/libbpf/libbpf-sys.git && cd libbpf-sys
+$ cargo build
+```
+
+### Distribution
+
+When you add this crate as a dependency to your project, your resulting binaries will dynamically link with `libz` and `libelf`. This means that the systems where you run your binaries must have these libraries installed.
+
+### Versioning
+
+Because the API of this crate is automatically generated from _libbpf_ sources, it uses a versioning scheme based on the version of _libbpf_ that it provides.
+
+The "Major.Minor" semver numbers correspond exactly to the _libbpf_ version that each release provides. For example, the `0.6.x` releases of this crate provides the API for the _libbpf v0.6.x_ releases.
+
+In order to allow for human error, the "Patch" semver number is used by this crate and does not necessarily match the provided _libbpf_ version. For example, both the `0.6.1` and `0.6.2` releases of this crate contain bindings to _libbpf v0.6.1_, but the later release contains bugfixes and/or enhancements to the crate itself.
+
+The exact version of _libbpf_ that is provided by any given release can be found in the "Build Metadata" semver section, which comes after the `+` in the version string. For example, `0.6.2+v0.6.1` indicates that the crate version is `0.6.2` and the upstream _libbpf_ version is `v0.6.1`.
+
+### Licensing and Dependencies
+
+This crate is released under the BSD 2-Clause license, and is careful to avoid infecting users with viral licenses.
+
+It currently depends on the following third-party libraries:
+
+|            | Website                                                       | License                                  | Linkage |
+|------------|---------------------------------------------------------------|------------------------------------------|---------|
+| **libbpf** | [github.com/libbpf/libbpf](https://github.com/libbpf/libbpf/) | `LGPL-2.1-only OR BSD-2-Clause`          | Static  |
+| **libelf** | [sourceware.org/elfutils](https://sourceware.org/elfutils/)   | `LGPL-2.1-or-later OR LGPL-3.0-or-later` | Dynamic |
+| **zlib**   | [zlib.net](https://www.zlib.net/)                             | `Zlib`                                   | Dynamic |
diff --git a/crates/libbpf-sys/android/bindgen_modules.bp b/crates/libbpf-sys/android/bindgen_modules.bp
new file mode 100644
index 0000000..c9a3f45
--- /dev/null
+++ b/crates/libbpf-sys/android/bindgen_modules.bp
@@ -0,0 +1,21 @@
+rust_binary_host {
+    name: "libbpf_bindgen_build",
+    host_cross_supported: false,
+    srcs: ["android/build.rs"],
+    rustlibs: [
+        "libbindgen",
+        "libbindgen_cmd",
+    ],
+    lints: "android",
+    clippy_lints: "android",
+}
+
+rust_bindgen {
+    name: "liblibbpf_bindgen",
+    crate_name: "libbpf_bindgen",
+    custom_bindgen: "libbpf_bindgen_build",
+    wrapper_src: "android/libbpf_wrapper.h",
+    source_stem: "bindgen",
+    header_libs: ["libbpf_build_headers"],
+    shared_libs: ["libbpf"],
+}
diff --git a/crates/libbpf-sys/android/build.rs b/crates/libbpf-sys/android/build.rs
new file mode 100644
index 0000000..7e4c2ee
--- /dev/null
+++ b/crates/libbpf-sys/android/build.rs
@@ -0,0 +1,58 @@
+//! libbpf bindgen configuration
+// Modified from the upstream libbpf-sys build.rs file in the libbpf-sys root dir.
+use std::collections::HashSet;
+fn main() {
+    #[derive(Debug)]
+    struct IgnoreMacros(HashSet<&'static str>);
+    impl bindgen::callbacks::ParseCallbacks for IgnoreMacros {
+        fn will_parse_macro(&self, name: &str) -> bindgen::callbacks::MacroParsingBehavior {
+            if self.0.contains(name) {
+                bindgen::callbacks::MacroParsingBehavior::Ignore
+            } else {
+                bindgen::callbacks::MacroParsingBehavior::Default
+            }
+        }
+    }
+    let ignored_macros = IgnoreMacros(
+        vec![
+            "BTF_KIND_FUNC",
+            "BTF_KIND_FUNC_PROTO",
+            "BTF_KIND_VAR",
+            "BTF_KIND_DATASEC",
+            "BTF_KIND_FLOAT",
+            "BTF_KIND_DECL_TAG",
+            "BTF_KIND_TYPE_TAG",
+            "BTF_KIND_ENUM64",
+        ]
+        .into_iter()
+        .collect(),
+    );
+    bindgen_cmd::build(|mut builder| {
+        builder = builder
+            .derive_default(true)
+            .explicit_padding(true)
+            .default_enum_style(bindgen::EnumVariation::Consts)
+            .size_t_is_usize(false)
+            .prepend_enum_name(false)
+            .layout_tests(false)
+            .generate_comments(false)
+            .emit_builtins()
+            .allowlist_function("bpf_.+")
+            .allowlist_function("btf_.+")
+            .allowlist_function("libbpf_.+")
+            .allowlist_function("perf_.+")
+            .allowlist_function("ring_buffer_.+")
+            .allowlist_function("user_ring_buffer_.+")
+            .allowlist_function("vdprintf")
+            .allowlist_type("bpf_.+")
+            .allowlist_type("btf_.+")
+            .allowlist_type("xdp_.+")
+            .allowlist_type("perf_.+")
+            .allowlist_var("BPF_.+")
+            .allowlist_var("BTF_.+")
+            .allowlist_var("XDP_.+")
+            .allowlist_var("PERF_.+")
+            .parse_callbacks(Box::new(ignored_macros));
+        builder
+    })
+}
diff --git a/crates/libbpf-sys/android/libbpf_wrapper.h b/crates/libbpf-sys/android/libbpf_wrapper.h
new file mode 100644
index 0000000..b64ccef
--- /dev/null
+++ b/crates/libbpf-sys/android/libbpf_wrapper.h
@@ -0,0 +1,18 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "bpf/bpf.h"
+#include "bpf/btf.h"
+#include "bpf/libbpf.h"
diff --git a/crates/libbpf-sys/bindings.h b/crates/libbpf-sys/bindings.h
new file mode 100644
index 0000000..a5a3a98
--- /dev/null
+++ b/crates/libbpf-sys/bindings.h
@@ -0,0 +1,13 @@
+#ifdef __LIBBPF_SYS_NOVENDOR
+#include <linux/if_link.h>
+#include <linux/perf_event.h>
+#include <bpf/bpf.h>
+#include <bpf/btf.h>
+#include <bpf/libbpf.h>
+#else
+#include "libbpf/include/uapi/linux/if_link.h"
+#include "libbpf/include/uapi/linux/perf_event.h"
+#include "libbpf/src/bpf.h"
+#include "libbpf/src/btf.h"
+#include "libbpf/src/libbpf.h"
+#endif /* __LIBBPF_SYS_NOVENDOR */
diff --git a/crates/libbpf-sys/build.rs b/crates/libbpf-sys/build.rs
new file mode 100644
index 0000000..7fb9f0f
--- /dev/null
+++ b/crates/libbpf-sys/build.rs
@@ -0,0 +1,368 @@
+// build.rs
+
+use std::env;
+use std::ffi;
+use std::fs;
+use std::fs::read_dir;
+use std::path;
+use std::path::Path;
+use std::process;
+
+use nix::fcntl;
+
+
+fn emit_rerun_directives_for_contents(dir: &Path) {
+    for result in read_dir(dir).unwrap() {
+        let file = result.unwrap();
+        println!("cargo:rerun-if-changed={}", file.path().display());
+    }
+}
+
+#[cfg(feature = "bindgen")]
+fn generate_bindings(src_dir: path::PathBuf) {
+    use std::collections::HashSet;
+
+    #[derive(Debug)]
+    struct IgnoreMacros(HashSet<&'static str>);
+
+    impl bindgen::callbacks::ParseCallbacks for IgnoreMacros {
+        fn will_parse_macro(&self, name: &str) -> bindgen::callbacks::MacroParsingBehavior {
+            if self.0.contains(name) {
+                bindgen::callbacks::MacroParsingBehavior::Ignore
+            } else {
+                bindgen::callbacks::MacroParsingBehavior::Default
+            }
+        }
+    }
+
+    let ignored_macros = IgnoreMacros(
+        vec![
+            "BTF_KIND_FUNC",
+            "BTF_KIND_FUNC_PROTO",
+            "BTF_KIND_VAR",
+            "BTF_KIND_DATASEC",
+            "BTF_KIND_FLOAT",
+            "BTF_KIND_DECL_TAG",
+            "BTF_KIND_TYPE_TAG",
+            "BTF_KIND_ENUM64",
+        ]
+        .into_iter()
+        .collect(),
+    );
+
+    #[cfg(feature = "bindgen-source")]
+    let out_dir = &src_dir.join("src");
+    #[cfg(not(feature = "bindgen-source"))]
+    let out_dir =
+        &path::PathBuf::from(env::var_os("OUT_DIR").expect("OUT_DIR should always be set"));
+
+    bindgen::Builder::default()
+        .derive_default(true)
+        .explicit_padding(true)
+        .default_enum_style(bindgen::EnumVariation::Consts)
+        .size_t_is_usize(false)
+        .prepend_enum_name(false)
+        .layout_tests(false)
+        .generate_comments(false)
+        .emit_builtins()
+        .allowlist_function("bpf_.+")
+        .allowlist_function("btf_.+")
+        .allowlist_function("libbpf_.+")
+        .allowlist_function("perf_.+")
+        .allowlist_function("ring_buffer_.+")
+        .allowlist_function("user_ring_buffer_.+")
+        .allowlist_function("vdprintf")
+        .allowlist_type("bpf_.+")
+        .allowlist_type("btf_.+")
+        .allowlist_type("xdp_.+")
+        .allowlist_type("perf_.+")
+        .allowlist_var("BPF_.+")
+        .allowlist_var("BTF_.+")
+        .allowlist_var("XDP_.+")
+        .allowlist_var("PERF_.+")
+        .parse_callbacks(Box::new(ignored_macros))
+        .header("bindings.h")
+        .clang_arg(format!("-I{}", src_dir.join("libbpf/include").display()))
+        .clang_arg(format!(
+            "-I{}",
+            src_dir.join("libbpf/include/uapi").display()
+        ))
+        .generate()
+        .expect("Unable to generate bindings")
+        .write_to_file(out_dir.join("bindings.rs"))
+        .expect("Couldn't write bindings");
+}
+
+#[cfg(not(feature = "bindgen"))]
+fn generate_bindings(_: path::PathBuf) {}
+
+fn pkg_check(pkg: &str) {
+    if process::Command::new(pkg)
+        .stdout(process::Stdio::null())
+        .stderr(process::Stdio::null())
+        .status()
+        .is_err()
+    {
+        panic!(
+            "{} is required to compile libbpf-sys with the selected set of features",
+            pkg
+        );
+    }
+}
+
+fn main() {
+    let src_dir = path::PathBuf::from(env::var_os("CARGO_MANIFEST_DIR").unwrap());
+
+    generate_bindings(src_dir.clone());
+
+    let vendored_libbpf = cfg!(feature = "vendored-libbpf");
+    let vendored_libelf = cfg!(feature = "vendored-libelf");
+    let vendored_zlib = cfg!(feature = "vendored-zlib");
+    println!("Using feature vendored-libbpf={}", vendored_libbpf);
+    println!("Using feature vendored-libelf={}", vendored_libelf);
+    println!("Using feature vendored-zlib={}", vendored_zlib);
+
+    let static_libbpf = cfg!(feature = "static-libbpf");
+    let static_libelf = cfg!(feature = "static-libelf");
+    let static_zlib = cfg!(feature = "static-zlib");
+    println!("Using feature static-libbpf={}", static_libbpf);
+    println!("Using feature static-libelf={}", static_libelf);
+    println!("Using feature static-zlib={}", static_zlib);
+
+    if cfg!(feature = "novendor") {
+        println!("cargo:warning=the `novendor` feature of `libbpf-sys` is deprecated; build without features instead");
+        println!(
+            "cargo:rustc-link-lib={}bpf",
+            if static_libbpf { "static=" } else { "" }
+        );
+        return;
+    }
+
+    let out_dir = path::PathBuf::from(env::var_os("OUT_DIR").unwrap());
+
+    // check for all necessary compilation tools
+    if vendored_libelf {
+        pkg_check("autoreconf");
+        pkg_check("autopoint");
+        pkg_check("flex");
+        pkg_check("bison");
+        pkg_check("gawk");
+    }
+
+    let (compiler, mut cflags) = if vendored_libbpf || vendored_libelf || vendored_zlib {
+        pkg_check("make");
+        pkg_check("pkg-config");
+
+        let compiler = cc::Build::new().try_get_compiler().expect(
+            "a C compiler is required to compile libbpf-sys using the vendored copy of libbpf",
+        );
+        let cflags = compiler.cflags_env();
+        (Some(compiler), cflags)
+    } else {
+        (None, ffi::OsString::new())
+    };
+
+    if vendored_zlib {
+        make_zlib(compiler.as_ref().unwrap(), &src_dir, &out_dir);
+        cflags.push(&format!(" -I{}/zlib/", src_dir.display()));
+    }
+
+    if vendored_libelf {
+        make_elfutils(compiler.as_ref().unwrap(), &src_dir, &out_dir);
+        cflags.push(&format!(" -I{}/elfutils/libelf/", src_dir.display()));
+    }
+
+    if vendored_libbpf {
+        make_libbpf(compiler.as_ref().unwrap(), &cflags, &src_dir, &out_dir);
+    }
+
+    println!(
+        "cargo:rustc-link-search=native={}",
+        out_dir.to_string_lossy()
+    );
+    println!(
+        "cargo:rustc-link-lib={}elf",
+        if static_libelf { "static=" } else { "" }
+    );
+    println!(
+        "cargo:rustc-link-lib={}z",
+        if static_zlib { "static=" } else { "" }
+    );
+    println!(
+        "cargo:rustc-link-lib={}bpf",
+        if static_libbpf { "static=" } else { "" }
+    );
+    println!("cargo:include={}/include", out_dir.to_string_lossy());
+
+    println!("cargo:rerun-if-env-changed=LD_LIBRARY_PATH");
+    if let Ok(ld_path) = env::var("LD_LIBRARY_PATH") {
+        for path in ld_path.split(':') {
+            if !path.is_empty() {
+                println!("cargo:rustc-link-search=native={}", path);
+            }
+        }
+    }
+}
+
+fn make_zlib(compiler: &cc::Tool, src_dir: &path::Path, out_dir: &path::Path) {
+    let src_dir = src_dir.join("zlib");
+    // lock README such that if two crates are trying to compile
+    // this at the same time (eg libbpf-rs libbpf-cargo)
+    // they wont trample each other
+    let file = std::fs::File::open(src_dir.join("README")).unwrap();
+    let _lock = fcntl::Flock::lock(file, fcntl::FlockArg::LockExclusive).unwrap();
+
+    let status = process::Command::new("./configure")
+        .arg("--static")
+        .arg("--prefix")
+        .arg(".")
+        .arg("--libdir")
+        .arg(out_dir)
+        .env("CC", compiler.path())
+        .env("CFLAGS", compiler.cflags_env())
+        .current_dir(&src_dir)
+        .status()
+        .expect("could not execute make");
+
+    assert!(status.success(), "make failed");
+
+    let status = process::Command::new("make")
+        .arg("install")
+        .arg("-j")
+        .arg(&format!("{}", num_cpus()))
+        .current_dir(&src_dir)
+        .status()
+        .expect("could not execute make");
+
+    assert!(status.success(), "make failed");
+
+    let status = process::Command::new("make")
+        .arg("distclean")
+        .current_dir(&src_dir)
+        .status()
+        .expect("could not execute make");
+
+    assert!(status.success(), "make failed");
+    emit_rerun_directives_for_contents(&src_dir);
+}
+
+fn make_elfutils(compiler: &cc::Tool, src_dir: &path::Path, out_dir: &path::Path) {
+    // lock README such that if two crates are trying to compile
+    // this at the same time (eg libbpf-rs libbpf-cargo)
+    // they wont trample each other
+    let file = std::fs::File::open(src_dir.join("elfutils/README")).unwrap();
+    let _lock = fcntl::Flock::lock(file, fcntl::FlockArg::LockExclusive).unwrap();
+
+    let flags = compiler
+        .cflags_env()
+        .into_string()
+        .expect("failed to get cflags");
+    let mut cflags: String = flags
+        .split_whitespace()
+        .filter_map(|arg| {
+            if arg != "-static" {
+                // compilation fails with -static flag
+                Some(format!(" {arg}"))
+            } else {
+                None
+            }
+        })
+        .collect();
+
+    #[cfg(target_arch = "aarch64")]
+    cflags.push_str(" -Wno-error=stringop-overflow");
+    cflags.push_str(&format!(" -I{}/zlib/", src_dir.display()));
+
+    let status = process::Command::new("autoreconf")
+        .arg("--install")
+        .arg("--force")
+        .current_dir(&src_dir.join("elfutils"))
+        .status()
+        .expect("could not execute make");
+
+    assert!(status.success(), "make failed");
+
+    // location of libz.a
+    let out_lib = format!("-L{}", out_dir.display());
+    let status = process::Command::new("./configure")
+        .arg("--enable-maintainer-mode")
+        .arg("--disable-debuginfod")
+        .arg("--disable-libdebuginfod")
+        .arg("--without-zstd")
+        .arg("--prefix")
+        .arg(&src_dir.join("elfutils/prefix_dir"))
+        .arg("--libdir")
+        .arg(out_dir)
+        .env("CC", compiler.path())
+        .env("CXX", compiler.path())
+        .env("CFLAGS", &cflags)
+        .env("CXXFLAGS", &cflags)
+        .env("LDFLAGS", &out_lib)
+        .current_dir(&src_dir.join("elfutils"))
+        .status()
+        .expect("could not execute make");
+
+    assert!(status.success(), "make failed");
+
+    let status = process::Command::new("make")
+        .arg("install")
+        .arg("-j")
+        .arg(&format!("{}", num_cpus()))
+        .arg("BUILD_STATIC_ONLY=y")
+        .current_dir(&src_dir.join("elfutils"))
+        .status()
+        .expect("could not execute make");
+
+    assert!(status.success(), "make failed");
+
+    let status = process::Command::new("make")
+        .arg("distclean")
+        .current_dir(&src_dir.join("elfutils"))
+        .status()
+        .expect("could not execute make");
+
+    assert!(status.success(), "make failed");
+    emit_rerun_directives_for_contents(&src_dir.join("elfutils").join("src"));
+}
+
+fn make_libbpf(
+    compiler: &cc::Tool,
+    cflags: &ffi::OsStr,
+    src_dir: &path::Path,
+    out_dir: &path::Path,
+) {
+    let src_dir = src_dir.join("libbpf/src");
+    // create obj_dir if it doesn't exist
+    let obj_dir = path::PathBuf::from(&out_dir.join("obj").into_os_string());
+    let _ = fs::create_dir(&obj_dir);
+
+    let status = process::Command::new("make")
+        .arg("install")
+        .arg("-j")
+        .arg(&format!("{}", num_cpus()))
+        .env("BUILD_STATIC_ONLY", "y")
+        .env("PREFIX", "/")
+        .env("LIBDIR", "")
+        .env("OBJDIR", &obj_dir)
+        .env("DESTDIR", out_dir)
+        .env("CC", compiler.path())
+        .env("CFLAGS", cflags)
+        .current_dir(&src_dir)
+        .status()
+        .expect("could not execute make");
+
+    assert!(status.success(), "make failed");
+
+    let status = process::Command::new("make")
+        .arg("clean")
+        .current_dir(&src_dir)
+        .status()
+        .expect("could not execute make");
+
+    assert!(status.success(), "make failed");
+    emit_rerun_directives_for_contents(&src_dir);
+}
+
+fn num_cpus() -> usize {
+    std::thread::available_parallelism().map_or(1, |count| count.get())
+}
diff --git a/crates/libbpf-sys/cargo_embargo.json b/crates/libbpf-sys/cargo_embargo.json
new file mode 100644
index 0000000..9b31d87
--- /dev/null
+++ b/crates/libbpf-sys/cargo_embargo.json
@@ -0,0 +1,13 @@
+{
+  "run_cargo": false,
+  "features": [],
+  "package": {
+    "libbpf-sys": {
+      "add_toplevel_block": "android/bindgen_modules.bp",
+      "host_supported": false,
+      "patch": "patches/Android.bp.patch"
+    }
+  },
+  "product_available": false,
+  "vendor_available": false
+}
diff --git a/crates/libbpf-sys/patches/Android.bp.patch b/crates/libbpf-sys/patches/Android.bp.patch
new file mode 100644
index 0000000..b6d222e
--- /dev/null
+++ b/crates/libbpf-sys/patches/Android.bp.patch
@@ -0,0 +1,25 @@
+diff --git a/Android.bp b/Android.bp
+index 60c613c..8f26c4f 100644
+--- a/Android.bp
++++ b/Android.bp
+@@ -19,19 +19,7 @@ rust_library {
+     cargo_env_compat: true,
+     cargo_pkg_version: "1.4.3+v1.4.5",
+     crate_root: "src/lib.rs",
+-    edition: "2018",
+-    apex_available: [
+-        "//apex_available:platform",
+-        "//apex_available:anyapex",
+-    ],
+-}
+-
+-rust_ffi_static {
+-    name: "liblibbpf_sys_static",
+-    crate_name: "libbpf_sys",
+-    cargo_env_compat: true,
+-    cargo_pkg_version: "1.4.3+v1.4.5",
+-    crate_root: "src/lib.rs",
++    srcs: [":liblibbpf_bindgen"],
+     edition: "2018",
+     apex_available: [
+         "//apex_available:platform",
diff --git a/crates/libbpf-sys/patches/android_dir.patch b/crates/libbpf-sys/patches/android_dir.patch
new file mode 100644
index 0000000..656a7e3
--- /dev/null
+++ b/crates/libbpf-sys/patches/android_dir.patch
@@ -0,0 +1,115 @@
+diff --git b/android/bindgen_modules.bp a/android/bindgen_modules.bp
+new file mode 100644
+index 0000000..c9a3f45
+--- /dev/null
++++ a/android/bindgen_modules.bp
+@@ -0,0 +1,21 @@
++rust_binary_host {
++    name: "libbpf_bindgen_build",
++    host_cross_supported: false,
++    srcs: ["android/build.rs"],
++    rustlibs: [
++        "libbindgen",
++        "libbindgen_cmd",
++    ],
++    lints: "android",
++    clippy_lints: "android",
++}
++
++rust_bindgen {
++    name: "liblibbpf_bindgen",
++    crate_name: "libbpf_bindgen",
++    custom_bindgen: "libbpf_bindgen_build",
++    wrapper_src: "android/libbpf_wrapper.h",
++    source_stem: "bindgen",
++    header_libs: ["libbpf_build_headers"],
++    shared_libs: ["libbpf"],
++}
+diff --git b/android/build.rs a/android/build.rs
+new file mode 100644
+index 0000000..7e4c2ee
+--- /dev/null
++++ a/android/build.rs
+@@ -0,0 +1,58 @@
++//! libbpf bindgen configuration
++// Modified from the upstream libbpf-sys build.rs file in the libbpf-sys root dir.
++use std::collections::HashSet;
++fn main() {
++    #[derive(Debug)]
++    struct IgnoreMacros(HashSet<&'static str>);
++    impl bindgen::callbacks::ParseCallbacks for IgnoreMacros {
++        fn will_parse_macro(&self, name: &str) -> bindgen::callbacks::MacroParsingBehavior {
++            if self.0.contains(name) {
++                bindgen::callbacks::MacroParsingBehavior::Ignore
++            } else {
++                bindgen::callbacks::MacroParsingBehavior::Default
++            }
++        }
++    }
++    let ignored_macros = IgnoreMacros(
++        vec![
++            "BTF_KIND_FUNC",
++            "BTF_KIND_FUNC_PROTO",
++            "BTF_KIND_VAR",
++            "BTF_KIND_DATASEC",
++            "BTF_KIND_FLOAT",
++            "BTF_KIND_DECL_TAG",
++            "BTF_KIND_TYPE_TAG",
++            "BTF_KIND_ENUM64",
++        ]
++        .into_iter()
++        .collect(),
++    );
++    bindgen_cmd::build(|mut builder| {
++        builder = builder
++            .derive_default(true)
++            .explicit_padding(true)
++            .default_enum_style(bindgen::EnumVariation::Consts)
++            .size_t_is_usize(false)
++            .prepend_enum_name(false)
++            .layout_tests(false)
++            .generate_comments(false)
++            .emit_builtins()
++            .allowlist_function("bpf_.+")
++            .allowlist_function("btf_.+")
++            .allowlist_function("libbpf_.+")
++            .allowlist_function("perf_.+")
++            .allowlist_function("ring_buffer_.+")
++            .allowlist_function("user_ring_buffer_.+")
++            .allowlist_function("vdprintf")
++            .allowlist_type("bpf_.+")
++            .allowlist_type("btf_.+")
++            .allowlist_type("xdp_.+")
++            .allowlist_type("perf_.+")
++            .allowlist_var("BPF_.+")
++            .allowlist_var("BTF_.+")
++            .allowlist_var("XDP_.+")
++            .allowlist_var("PERF_.+")
++            .parse_callbacks(Box::new(ignored_macros));
++        builder
++    })
++}
+diff --git b/android/libbpf_wrapper.h a/android/libbpf_wrapper.h
+new file mode 100644
+index 0000000..b64ccef
+--- /dev/null
++++ a/android/libbpf_wrapper.h
+@@ -0,0 +1,18 @@
++/*
++ * Copyright (C) 2024 The Android Open Source Project
++ *
++ * Licensed under the Apache License, Version 2.0 (the "License");
++ * you may not use this file except in compliance with the License.
++ * You may obtain a copy of the License at
++ *
++ *      http://www.apache.org/licenses/LICENSE-2.0
++ *
++ * Unless required by applicable law or agreed to in writing, software
++ * distributed under the License is distributed on an "AS IS" BASIS,
++ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
++ * See the License for the specific language governing permissions and
++ * limitations under the License.
++ */
++#include "bpf/bpf.h"
++#include "bpf/btf.h"
++#include "bpf/libbpf.h"
diff --git a/crates/libbpf-sys/rebuild.sh b/crates/libbpf-sys/rebuild.sh
new file mode 100755
index 0000000..83421d8
--- /dev/null
+++ b/crates/libbpf-sys/rebuild.sh
@@ -0,0 +1,32 @@
+#!/bin/bash
+
+DOCKER="docker"
+
+set -eu -o pipefail
+
+${DOCKER} build --platform linux/amd64 -t libbpf-sys-builder - <<'EOF'
+FROM ubuntu:jammy AS libbpf-sys-builder
+
+ENV LANG=C.UTF-8 \
+    LC_ALL=C.UTF-8
+
+VOLUME /usr/local/src/libbpf-sys
+WORKDIR /usr/local/src/libbpf-sys
+
+SHELL ["/bin/bash", "-eu", "-o", "pipefail", "-c"]
+
+RUN \
+	export DEBIAN_FRONTEND=noninteractive; \
+	apt-get -q update; \
+	apt-get -q install -y curl build-essential zlib1g-dev libelf-dev libclang-dev llvm clang pkg-config; \
+	apt-get -q clean autoclean;
+
+RUN \
+	curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain stable;
+
+ENTRYPOINT \
+	source $HOME/.cargo/env; \
+	cargo build --features bindgen-source --release --verbose;
+EOF
+
+${DOCKER} run --platform linux/amd64 --rm -v "$(pwd):/usr/local/src/libbpf-sys" libbpf-sys-builder
diff --git a/crates/libbpf-sys/src/bindings.rs b/crates/libbpf-sys/src/bindings.rs
new file mode 100644
index 0000000..3e35881
--- /dev/null
+++ b/crates/libbpf-sys/src/bindings.rs
@@ -0,0 +1,7528 @@
+/* automatically generated by rust-bindgen 0.69.4 */
+
+#[repr(C)]
+#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
+pub struct __BindgenBitfieldUnit<Storage> {
+    storage: Storage,
+}
+impl<Storage> __BindgenBitfieldUnit<Storage> {
+    #[inline]
+    pub const fn new(storage: Storage) -> Self {
+        Self { storage }
+    }
+}
+impl<Storage> __BindgenBitfieldUnit<Storage>
+where
+    Storage: AsRef<[u8]> + AsMut<[u8]>,
+{
+    #[inline]
+    pub fn get_bit(&self, index: usize) -> bool {
+        debug_assert!(index / 8 < self.storage.as_ref().len());
+        let byte_index = index / 8;
+        let byte = self.storage.as_ref()[byte_index];
+        let bit_index = if cfg!(target_endian = "big") {
+            7 - (index % 8)
+        } else {
+            index % 8
+        };
+        let mask = 1 << bit_index;
+        byte & mask == mask
+    }
+    #[inline]
+    pub fn set_bit(&mut self, index: usize, val: bool) {
+        debug_assert!(index / 8 < self.storage.as_ref().len());
+        let byte_index = index / 8;
+        let byte = &mut self.storage.as_mut()[byte_index];
+        let bit_index = if cfg!(target_endian = "big") {
+            7 - (index % 8)
+        } else {
+            index % 8
+        };
+        let mask = 1 << bit_index;
+        if val {
+            *byte |= mask;
+        } else {
+            *byte &= !mask;
+        }
+    }
+    #[inline]
+    pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 {
+        debug_assert!(bit_width <= 64);
+        debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
+        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
+        let mut val = 0;
+        for i in 0..(bit_width as usize) {
+            if self.get_bit(i + bit_offset) {
+                let index = if cfg!(target_endian = "big") {
+                    bit_width as usize - 1 - i
+                } else {
+                    i
+                };
+                val |= 1 << index;
+            }
+        }
+        val
+    }
+    #[inline]
+    pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) {
+        debug_assert!(bit_width <= 64);
+        debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
+        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
+        for i in 0..(bit_width as usize) {
+            let mask = 1 << i;
+            let val_bit_is_set = val & mask == mask;
+            let index = if cfg!(target_endian = "big") {
+                bit_width as usize - 1 - i
+            } else {
+                i
+            };
+            self.set_bit(index + bit_offset, val_bit_is_set);
+        }
+    }
+}
+#[repr(C)]
+#[derive(Default)]
+pub struct __IncompleteArrayField<T>(::std::marker::PhantomData<T>, [T; 0]);
+impl<T> __IncompleteArrayField<T> {
+    #[inline]
+    pub const fn new() -> Self {
+        __IncompleteArrayField(::std::marker::PhantomData, [])
+    }
+    #[inline]
+    pub fn as_ptr(&self) -> *const T {
+        self as *const _ as *const T
+    }
+    #[inline]
+    pub fn as_mut_ptr(&mut self) -> *mut T {
+        self as *mut _ as *mut T
+    }
+    #[inline]
+    pub unsafe fn as_slice(&self, len: usize) -> &[T] {
+        ::std::slice::from_raw_parts(self.as_ptr(), len)
+    }
+    #[inline]
+    pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
+        ::std::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
+    }
+}
+impl<T> ::std::fmt::Debug for __IncompleteArrayField<T> {
+    fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
+        fmt.write_str("__IncompleteArrayField")
+    }
+}
+pub const XDP_FLAGS_UPDATE_IF_NOEXIST: u32 = 1;
+pub const XDP_FLAGS_SKB_MODE: u32 = 2;
+pub const XDP_FLAGS_DRV_MODE: u32 = 4;
+pub const XDP_FLAGS_HW_MODE: u32 = 8;
+pub const XDP_FLAGS_REPLACE: u32 = 16;
+pub const XDP_FLAGS_MODES: u32 = 14;
+pub const XDP_FLAGS_MASK: u32 = 31;
+pub const PERF_PMU_TYPE_SHIFT: u32 = 32;
+pub const PERF_HW_EVENT_MASK: u32 = 4294967295;
+pub const PERF_ATTR_SIZE_VER0: u32 = 64;
+pub const PERF_ATTR_SIZE_VER1: u32 = 72;
+pub const PERF_ATTR_SIZE_VER2: u32 = 80;
+pub const PERF_ATTR_SIZE_VER3: u32 = 96;
+pub const PERF_ATTR_SIZE_VER4: u32 = 104;
+pub const PERF_ATTR_SIZE_VER5: u32 = 112;
+pub const PERF_ATTR_SIZE_VER6: u32 = 120;
+pub const PERF_ATTR_SIZE_VER7: u32 = 128;
+pub const PERF_ATTR_SIZE_VER8: u32 = 136;
+pub const PERF_RECORD_MISC_CPUMODE_MASK: u32 = 7;
+pub const PERF_RECORD_MISC_CPUMODE_UNKNOWN: u32 = 0;
+pub const PERF_RECORD_MISC_KERNEL: u32 = 1;
+pub const PERF_RECORD_MISC_USER: u32 = 2;
+pub const PERF_RECORD_MISC_HYPERVISOR: u32 = 3;
+pub const PERF_RECORD_MISC_GUEST_KERNEL: u32 = 4;
+pub const PERF_RECORD_MISC_GUEST_USER: u32 = 5;
+pub const PERF_RECORD_MISC_PROC_MAP_PARSE_TIMEOUT: u32 = 4096;
+pub const PERF_RECORD_MISC_MMAP_DATA: u32 = 8192;
+pub const PERF_RECORD_MISC_COMM_EXEC: u32 = 8192;
+pub const PERF_RECORD_MISC_FORK_EXEC: u32 = 8192;
+pub const PERF_RECORD_MISC_SWITCH_OUT: u32 = 8192;
+pub const PERF_RECORD_MISC_EXACT_IP: u32 = 16384;
+pub const PERF_RECORD_MISC_SWITCH_OUT_PREEMPT: u32 = 16384;
+pub const PERF_RECORD_MISC_MMAP_BUILD_ID: u32 = 16384;
+pub const PERF_RECORD_MISC_EXT_RESERVED: u32 = 32768;
+pub const PERF_RECORD_KSYMBOL_FLAGS_UNREGISTER: u32 = 1;
+pub const PERF_MAX_STACK_DEPTH: u32 = 127;
+pub const PERF_MAX_CONTEXTS_PER_STACK: u32 = 8;
+pub const PERF_AUX_FLAG_TRUNCATED: u32 = 1;
+pub const PERF_AUX_FLAG_OVERWRITE: u32 = 2;
+pub const PERF_AUX_FLAG_PARTIAL: u32 = 4;
+pub const PERF_AUX_FLAG_COLLISION: u32 = 8;
+pub const PERF_AUX_FLAG_PMU_FORMAT_TYPE_MASK: u32 = 65280;
+pub const PERF_AUX_FLAG_CORESIGHT_FORMAT_CORESIGHT: u32 = 0;
+pub const PERF_AUX_FLAG_CORESIGHT_FORMAT_RAW: u32 = 256;
+pub const PERF_FLAG_FD_NO_GROUP: u32 = 1;
+pub const PERF_FLAG_FD_OUTPUT: u32 = 2;
+pub const PERF_FLAG_PID_CGROUP: u32 = 4;
+pub const PERF_FLAG_FD_CLOEXEC: u32 = 8;
+pub const PERF_MEM_OP_NA: u32 = 1;
+pub const PERF_MEM_OP_LOAD: u32 = 2;
+pub const PERF_MEM_OP_STORE: u32 = 4;
+pub const PERF_MEM_OP_PFETCH: u32 = 8;
+pub const PERF_MEM_OP_EXEC: u32 = 16;
+pub const PERF_MEM_OP_SHIFT: u32 = 0;
+pub const PERF_MEM_LVL_NA: u32 = 1;
+pub const PERF_MEM_LVL_HIT: u32 = 2;
+pub const PERF_MEM_LVL_MISS: u32 = 4;
+pub const PERF_MEM_LVL_L1: u32 = 8;
+pub const PERF_MEM_LVL_LFB: u32 = 16;
+pub const PERF_MEM_LVL_L2: u32 = 32;
+pub const PERF_MEM_LVL_L3: u32 = 64;
+pub const PERF_MEM_LVL_LOC_RAM: u32 = 128;
+pub const PERF_MEM_LVL_REM_RAM1: u32 = 256;
+pub const PERF_MEM_LVL_REM_RAM2: u32 = 512;
+pub const PERF_MEM_LVL_REM_CCE1: u32 = 1024;
+pub const PERF_MEM_LVL_REM_CCE2: u32 = 2048;
+pub const PERF_MEM_LVL_IO: u32 = 4096;
+pub const PERF_MEM_LVL_UNC: u32 = 8192;
+pub const PERF_MEM_LVL_SHIFT: u32 = 5;
+pub const PERF_MEM_REMOTE_REMOTE: u32 = 1;
+pub const PERF_MEM_REMOTE_SHIFT: u32 = 37;
+pub const PERF_MEM_LVLNUM_L1: u32 = 1;
+pub const PERF_MEM_LVLNUM_L2: u32 = 2;
+pub const PERF_MEM_LVLNUM_L3: u32 = 3;
+pub const PERF_MEM_LVLNUM_L4: u32 = 4;
+pub const PERF_MEM_LVLNUM_UNC: u32 = 8;
+pub const PERF_MEM_LVLNUM_CXL: u32 = 9;
+pub const PERF_MEM_LVLNUM_IO: u32 = 10;
+pub const PERF_MEM_LVLNUM_ANY_CACHE: u32 = 11;
+pub const PERF_MEM_LVLNUM_LFB: u32 = 12;
+pub const PERF_MEM_LVLNUM_RAM: u32 = 13;
+pub const PERF_MEM_LVLNUM_PMEM: u32 = 14;
+pub const PERF_MEM_LVLNUM_NA: u32 = 15;
+pub const PERF_MEM_LVLNUM_SHIFT: u32 = 33;
+pub const PERF_MEM_SNOOP_NA: u32 = 1;
+pub const PERF_MEM_SNOOP_NONE: u32 = 2;
+pub const PERF_MEM_SNOOP_HIT: u32 = 4;
+pub const PERF_MEM_SNOOP_MISS: u32 = 8;
+pub const PERF_MEM_SNOOP_HITM: u32 = 16;
+pub const PERF_MEM_SNOOP_SHIFT: u32 = 19;
+pub const PERF_MEM_SNOOPX_FWD: u32 = 1;
+pub const PERF_MEM_SNOOPX_PEER: u32 = 2;
+pub const PERF_MEM_SNOOPX_SHIFT: u32 = 38;
+pub const PERF_MEM_LOCK_NA: u32 = 1;
+pub const PERF_MEM_LOCK_LOCKED: u32 = 2;
+pub const PERF_MEM_LOCK_SHIFT: u32 = 24;
+pub const PERF_MEM_TLB_NA: u32 = 1;
+pub const PERF_MEM_TLB_HIT: u32 = 2;
+pub const PERF_MEM_TLB_MISS: u32 = 4;
+pub const PERF_MEM_TLB_L1: u32 = 8;
+pub const PERF_MEM_TLB_L2: u32 = 16;
+pub const PERF_MEM_TLB_WK: u32 = 32;
+pub const PERF_MEM_TLB_OS: u32 = 64;
+pub const PERF_MEM_TLB_SHIFT: u32 = 26;
+pub const PERF_MEM_BLK_NA: u32 = 1;
+pub const PERF_MEM_BLK_DATA: u32 = 2;
+pub const PERF_MEM_BLK_ADDR: u32 = 4;
+pub const PERF_MEM_BLK_SHIFT: u32 = 40;
+pub const PERF_MEM_HOPS_0: u32 = 1;
+pub const PERF_MEM_HOPS_1: u32 = 2;
+pub const PERF_MEM_HOPS_2: u32 = 3;
+pub const PERF_MEM_HOPS_3: u32 = 4;
+pub const PERF_MEM_HOPS_SHIFT: u32 = 43;
+pub const PERF_BRANCH_ENTRY_INFO_BITS_MAX: u32 = 33;
+pub const BPF_LD: u32 = 0;
+pub const BPF_LDX: u32 = 1;
+pub const BPF_ST: u32 = 2;
+pub const BPF_STX: u32 = 3;
+pub const BPF_ALU: u32 = 4;
+pub const BPF_JMP: u32 = 5;
+pub const BPF_RET: u32 = 6;
+pub const BPF_MISC: u32 = 7;
+pub const BPF_W: u32 = 0;
+pub const BPF_H: u32 = 8;
+pub const BPF_B: u32 = 16;
+pub const BPF_IMM: u32 = 0;
+pub const BPF_ABS: u32 = 32;
+pub const BPF_IND: u32 = 64;
+pub const BPF_MEM: u32 = 96;
+pub const BPF_LEN: u32 = 128;
+pub const BPF_MSH: u32 = 160;
+pub const BPF_ADD: u32 = 0;
+pub const BPF_SUB: u32 = 16;
+pub const BPF_MUL: u32 = 32;
+pub const BPF_DIV: u32 = 48;
+pub const BPF_OR: u32 = 64;
+pub const BPF_AND: u32 = 80;
+pub const BPF_LSH: u32 = 96;
+pub const BPF_RSH: u32 = 112;
+pub const BPF_NEG: u32 = 128;
+pub const BPF_MOD: u32 = 144;
+pub const BPF_XOR: u32 = 160;
+pub const BPF_JA: u32 = 0;
+pub const BPF_JEQ: u32 = 16;
+pub const BPF_JGT: u32 = 32;
+pub const BPF_JGE: u32 = 48;
+pub const BPF_JSET: u32 = 64;
+pub const BPF_K: u32 = 0;
+pub const BPF_X: u32 = 8;
+pub const BPF_MAXINSNS: u32 = 4096;
+pub const BPF_JMP32: u32 = 6;
+pub const BPF_ALU64: u32 = 7;
+pub const BPF_DW: u32 = 24;
+pub const BPF_MEMSX: u32 = 128;
+pub const BPF_ATOMIC: u32 = 192;
+pub const BPF_XADD: u32 = 192;
+pub const BPF_MOV: u32 = 176;
+pub const BPF_ARSH: u32 = 192;
+pub const BPF_END: u32 = 208;
+pub const BPF_TO_LE: u32 = 0;
+pub const BPF_TO_BE: u32 = 8;
+pub const BPF_FROM_LE: u32 = 0;
+pub const BPF_FROM_BE: u32 = 8;
+pub const BPF_JNE: u32 = 80;
+pub const BPF_JLT: u32 = 160;
+pub const BPF_JLE: u32 = 176;
+pub const BPF_JSGT: u32 = 96;
+pub const BPF_JSGE: u32 = 112;
+pub const BPF_JSLT: u32 = 192;
+pub const BPF_JSLE: u32 = 208;
+pub const BPF_JCOND: u32 = 224;
+pub const BPF_CALL: u32 = 128;
+pub const BPF_EXIT: u32 = 144;
+pub const BPF_FETCH: u32 = 1;
+pub const BPF_XCHG: u32 = 225;
+pub const BPF_CMPXCHG: u32 = 241;
+pub const BPF_F_ALLOW_OVERRIDE: u32 = 1;
+pub const BPF_F_ALLOW_MULTI: u32 = 2;
+pub const BPF_F_REPLACE: u32 = 4;
+pub const BPF_F_BEFORE: u32 = 8;
+pub const BPF_F_AFTER: u32 = 16;
+pub const BPF_F_ID: u32 = 32;
+pub const BPF_F_STRICT_ALIGNMENT: u32 = 1;
+pub const BPF_F_ANY_ALIGNMENT: u32 = 2;
+pub const BPF_F_TEST_RND_HI32: u32 = 4;
+pub const BPF_F_TEST_STATE_FREQ: u32 = 8;
+pub const BPF_F_SLEEPABLE: u32 = 16;
+pub const BPF_F_XDP_HAS_FRAGS: u32 = 32;
+pub const BPF_F_XDP_DEV_BOUND_ONLY: u32 = 64;
+pub const BPF_F_TEST_REG_INVARIANTS: u32 = 128;
+pub const BPF_F_NETFILTER_IP_DEFRAG: u32 = 1;
+pub const BPF_PSEUDO_MAP_FD: u32 = 1;
+pub const BPF_PSEUDO_MAP_IDX: u32 = 5;
+pub const BPF_PSEUDO_MAP_VALUE: u32 = 2;
+pub const BPF_PSEUDO_MAP_IDX_VALUE: u32 = 6;
+pub const BPF_PSEUDO_BTF_ID: u32 = 3;
+pub const BPF_PSEUDO_FUNC: u32 = 4;
+pub const BPF_PSEUDO_CALL: u32 = 1;
+pub const BPF_PSEUDO_KFUNC_CALL: u32 = 2;
+pub const BPF_F_QUERY_EFFECTIVE: u32 = 1;
+pub const BPF_F_TEST_RUN_ON_CPU: u32 = 1;
+pub const BPF_F_TEST_XDP_LIVE_FRAMES: u32 = 2;
+pub const BPF_BUILD_ID_SIZE: u32 = 20;
+pub const BPF_OBJ_NAME_LEN: u32 = 16;
+pub const XDP_PACKET_HEADROOM: u32 = 256;
+pub const BPF_TAG_SIZE: u32 = 8;
+pub const BPF_LOG_BUF_SIZE: u32 = 16777215;
+pub const BTF_MAGIC: u32 = 60319;
+pub const BTF_VERSION: u32 = 1;
+pub const BTF_MAX_TYPE: u32 = 1048575;
+pub const BTF_MAX_NAME_OFFSET: u32 = 16777215;
+pub const BTF_MAX_VLEN: u32 = 65535;
+pub const BTF_INT_SIGNED: u32 = 1;
+pub const BTF_INT_CHAR: u32 = 2;
+pub const BTF_INT_BOOL: u32 = 4;
+pub const BTF_ELF_SEC: &[u8; 5] = b".BTF\0";
+pub const BTF_EXT_ELF_SEC: &[u8; 9] = b".BTF.ext\0";
+pub type size_t = ::std::os::raw::c_ulong;
+pub type __pid_t = ::std::os::raw::c_int;
+pub type __u8 = ::std::os::raw::c_uchar;
+pub type __s16 = ::std::os::raw::c_short;
+pub type __u16 = ::std::os::raw::c_ushort;
+pub type __s32 = ::std::os::raw::c_int;
+pub type __u32 = ::std::os::raw::c_uint;
+pub type __s64 = ::std::os::raw::c_longlong;
+pub type __u64 = ::std::os::raw::c_ulonglong;
+pub type __be16 = __u16;
+pub type __be32 = __u32;
+pub const XDP_ATTACHED_NONE: _bindgen_ty_48 = 0;
+pub const XDP_ATTACHED_DRV: _bindgen_ty_48 = 1;
+pub const XDP_ATTACHED_SKB: _bindgen_ty_48 = 2;
+pub const XDP_ATTACHED_HW: _bindgen_ty_48 = 3;
+pub const XDP_ATTACHED_MULTI: _bindgen_ty_48 = 4;
+pub type _bindgen_ty_48 = ::std::os::raw::c_uint;
+pub const PERF_TYPE_HARDWARE: perf_type_id = 0;
+pub const PERF_TYPE_SOFTWARE: perf_type_id = 1;
+pub const PERF_TYPE_TRACEPOINT: perf_type_id = 2;
+pub const PERF_TYPE_HW_CACHE: perf_type_id = 3;
+pub const PERF_TYPE_RAW: perf_type_id = 4;
+pub const PERF_TYPE_BREAKPOINT: perf_type_id = 5;
+pub const PERF_TYPE_MAX: perf_type_id = 6;
+pub type perf_type_id = ::std::os::raw::c_uint;
+pub const PERF_COUNT_HW_CPU_CYCLES: perf_hw_id = 0;
+pub const PERF_COUNT_HW_INSTRUCTIONS: perf_hw_id = 1;
+pub const PERF_COUNT_HW_CACHE_REFERENCES: perf_hw_id = 2;
+pub const PERF_COUNT_HW_CACHE_MISSES: perf_hw_id = 3;
+pub const PERF_COUNT_HW_BRANCH_INSTRUCTIONS: perf_hw_id = 4;
+pub const PERF_COUNT_HW_BRANCH_MISSES: perf_hw_id = 5;
+pub const PERF_COUNT_HW_BUS_CYCLES: perf_hw_id = 6;
+pub const PERF_COUNT_HW_STALLED_CYCLES_FRONTEND: perf_hw_id = 7;
+pub const PERF_COUNT_HW_STALLED_CYCLES_BACKEND: perf_hw_id = 8;
+pub const PERF_COUNT_HW_REF_CPU_CYCLES: perf_hw_id = 9;
+pub const PERF_COUNT_HW_MAX: perf_hw_id = 10;
+pub type perf_hw_id = ::std::os::raw::c_uint;
+pub const PERF_COUNT_HW_CACHE_L1D: perf_hw_cache_id = 0;
+pub const PERF_COUNT_HW_CACHE_L1I: perf_hw_cache_id = 1;
+pub const PERF_COUNT_HW_CACHE_LL: perf_hw_cache_id = 2;
+pub const PERF_COUNT_HW_CACHE_DTLB: perf_hw_cache_id = 3;
+pub const PERF_COUNT_HW_CACHE_ITLB: perf_hw_cache_id = 4;
+pub const PERF_COUNT_HW_CACHE_BPU: perf_hw_cache_id = 5;
+pub const PERF_COUNT_HW_CACHE_NODE: perf_hw_cache_id = 6;
+pub const PERF_COUNT_HW_CACHE_MAX: perf_hw_cache_id = 7;
+pub type perf_hw_cache_id = ::std::os::raw::c_uint;
+pub const PERF_COUNT_HW_CACHE_OP_READ: perf_hw_cache_op_id = 0;
+pub const PERF_COUNT_HW_CACHE_OP_WRITE: perf_hw_cache_op_id = 1;
+pub const PERF_COUNT_HW_CACHE_OP_PREFETCH: perf_hw_cache_op_id = 2;
+pub const PERF_COUNT_HW_CACHE_OP_MAX: perf_hw_cache_op_id = 3;
+pub type perf_hw_cache_op_id = ::std::os::raw::c_uint;
+pub const PERF_COUNT_HW_CACHE_RESULT_ACCESS: perf_hw_cache_op_result_id = 0;
+pub const PERF_COUNT_HW_CACHE_RESULT_MISS: perf_hw_cache_op_result_id = 1;
+pub const PERF_COUNT_HW_CACHE_RESULT_MAX: perf_hw_cache_op_result_id = 2;
+pub type perf_hw_cache_op_result_id = ::std::os::raw::c_uint;
+pub const PERF_COUNT_SW_CPU_CLOCK: perf_sw_ids = 0;
+pub const PERF_COUNT_SW_TASK_CLOCK: perf_sw_ids = 1;
+pub const PERF_COUNT_SW_PAGE_FAULTS: perf_sw_ids = 2;
+pub const PERF_COUNT_SW_CONTEXT_SWITCHES: perf_sw_ids = 3;
+pub const PERF_COUNT_SW_CPU_MIGRATIONS: perf_sw_ids = 4;
+pub const PERF_COUNT_SW_PAGE_FAULTS_MIN: perf_sw_ids = 5;
+pub const PERF_COUNT_SW_PAGE_FAULTS_MAJ: perf_sw_ids = 6;
+pub const PERF_COUNT_SW_ALIGNMENT_FAULTS: perf_sw_ids = 7;
+pub const PERF_COUNT_SW_EMULATION_FAULTS: perf_sw_ids = 8;
+pub const PERF_COUNT_SW_DUMMY: perf_sw_ids = 9;
+pub const PERF_COUNT_SW_BPF_OUTPUT: perf_sw_ids = 10;
+pub const PERF_COUNT_SW_CGROUP_SWITCHES: perf_sw_ids = 11;
+pub const PERF_COUNT_SW_MAX: perf_sw_ids = 12;
+pub type perf_sw_ids = ::std::os::raw::c_uint;
+pub const PERF_SAMPLE_IP: perf_event_sample_format = 1;
+pub const PERF_SAMPLE_TID: perf_event_sample_format = 2;
+pub const PERF_SAMPLE_TIME: perf_event_sample_format = 4;
+pub const PERF_SAMPLE_ADDR: perf_event_sample_format = 8;
+pub const PERF_SAMPLE_READ: perf_event_sample_format = 16;
+pub const PERF_SAMPLE_CALLCHAIN: perf_event_sample_format = 32;
+pub const PERF_SAMPLE_ID: perf_event_sample_format = 64;
+pub const PERF_SAMPLE_CPU: perf_event_sample_format = 128;
+pub const PERF_SAMPLE_PERIOD: perf_event_sample_format = 256;
+pub const PERF_SAMPLE_STREAM_ID: perf_event_sample_format = 512;
+pub const PERF_SAMPLE_RAW: perf_event_sample_format = 1024;
+pub const PERF_SAMPLE_BRANCH_STACK: perf_event_sample_format = 2048;
+pub const PERF_SAMPLE_REGS_USER: perf_event_sample_format = 4096;
+pub const PERF_SAMPLE_STACK_USER: perf_event_sample_format = 8192;
+pub const PERF_SAMPLE_WEIGHT: perf_event_sample_format = 16384;
+pub const PERF_SAMPLE_DATA_SRC: perf_event_sample_format = 32768;
+pub const PERF_SAMPLE_IDENTIFIER: perf_event_sample_format = 65536;
+pub const PERF_SAMPLE_TRANSACTION: perf_event_sample_format = 131072;
+pub const PERF_SAMPLE_REGS_INTR: perf_event_sample_format = 262144;
+pub const PERF_SAMPLE_PHYS_ADDR: perf_event_sample_format = 524288;
+pub const PERF_SAMPLE_AUX: perf_event_sample_format = 1048576;
+pub const PERF_SAMPLE_CGROUP: perf_event_sample_format = 2097152;
+pub const PERF_SAMPLE_DATA_PAGE_SIZE: perf_event_sample_format = 4194304;
+pub const PERF_SAMPLE_CODE_PAGE_SIZE: perf_event_sample_format = 8388608;
+pub const PERF_SAMPLE_WEIGHT_STRUCT: perf_event_sample_format = 16777216;
+pub const PERF_SAMPLE_MAX: perf_event_sample_format = 33554432;
+pub type perf_event_sample_format = ::std::os::raw::c_uint;
+pub const PERF_SAMPLE_BRANCH_USER_SHIFT: perf_branch_sample_type_shift = 0;
+pub const PERF_SAMPLE_BRANCH_KERNEL_SHIFT: perf_branch_sample_type_shift = 1;
+pub const PERF_SAMPLE_BRANCH_HV_SHIFT: perf_branch_sample_type_shift = 2;
+pub const PERF_SAMPLE_BRANCH_ANY_SHIFT: perf_branch_sample_type_shift = 3;
+pub const PERF_SAMPLE_BRANCH_ANY_CALL_SHIFT: perf_branch_sample_type_shift = 4;
+pub const PERF_SAMPLE_BRANCH_ANY_RETURN_SHIFT: perf_branch_sample_type_shift = 5;
+pub const PERF_SAMPLE_BRANCH_IND_CALL_SHIFT: perf_branch_sample_type_shift = 6;
+pub const PERF_SAMPLE_BRANCH_ABORT_TX_SHIFT: perf_branch_sample_type_shift = 7;
+pub const PERF_SAMPLE_BRANCH_IN_TX_SHIFT: perf_branch_sample_type_shift = 8;
+pub const PERF_SAMPLE_BRANCH_NO_TX_SHIFT: perf_branch_sample_type_shift = 9;
+pub const PERF_SAMPLE_BRANCH_COND_SHIFT: perf_branch_sample_type_shift = 10;
+pub const PERF_SAMPLE_BRANCH_CALL_STACK_SHIFT: perf_branch_sample_type_shift = 11;
+pub const PERF_SAMPLE_BRANCH_IND_JUMP_SHIFT: perf_branch_sample_type_shift = 12;
+pub const PERF_SAMPLE_BRANCH_CALL_SHIFT: perf_branch_sample_type_shift = 13;
+pub const PERF_SAMPLE_BRANCH_NO_FLAGS_SHIFT: perf_branch_sample_type_shift = 14;
+pub const PERF_SAMPLE_BRANCH_NO_CYCLES_SHIFT: perf_branch_sample_type_shift = 15;
+pub const PERF_SAMPLE_BRANCH_TYPE_SAVE_SHIFT: perf_branch_sample_type_shift = 16;
+pub const PERF_SAMPLE_BRANCH_HW_INDEX_SHIFT: perf_branch_sample_type_shift = 17;
+pub const PERF_SAMPLE_BRANCH_PRIV_SAVE_SHIFT: perf_branch_sample_type_shift = 18;
+pub const PERF_SAMPLE_BRANCH_COUNTERS_SHIFT: perf_branch_sample_type_shift = 19;
+pub const PERF_SAMPLE_BRANCH_MAX_SHIFT: perf_branch_sample_type_shift = 20;
+pub type perf_branch_sample_type_shift = ::std::os::raw::c_uint;
+pub const PERF_SAMPLE_BRANCH_USER: perf_branch_sample_type = 1;
+pub const PERF_SAMPLE_BRANCH_KERNEL: perf_branch_sample_type = 2;
+pub const PERF_SAMPLE_BRANCH_HV: perf_branch_sample_type = 4;
+pub const PERF_SAMPLE_BRANCH_ANY: perf_branch_sample_type = 8;
+pub const PERF_SAMPLE_BRANCH_ANY_CALL: perf_branch_sample_type = 16;
+pub const PERF_SAMPLE_BRANCH_ANY_RETURN: perf_branch_sample_type = 32;
+pub const PERF_SAMPLE_BRANCH_IND_CALL: perf_branch_sample_type = 64;
+pub const PERF_SAMPLE_BRANCH_ABORT_TX: perf_branch_sample_type = 128;
+pub const PERF_SAMPLE_BRANCH_IN_TX: perf_branch_sample_type = 256;
+pub const PERF_SAMPLE_BRANCH_NO_TX: perf_branch_sample_type = 512;
+pub const PERF_SAMPLE_BRANCH_COND: perf_branch_sample_type = 1024;
+pub const PERF_SAMPLE_BRANCH_CALL_STACK: perf_branch_sample_type = 2048;
+pub const PERF_SAMPLE_BRANCH_IND_JUMP: perf_branch_sample_type = 4096;
+pub const PERF_SAMPLE_BRANCH_CALL: perf_branch_sample_type = 8192;
+pub const PERF_SAMPLE_BRANCH_NO_FLAGS: perf_branch_sample_type = 16384;
+pub const PERF_SAMPLE_BRANCH_NO_CYCLES: perf_branch_sample_type = 32768;
+pub const PERF_SAMPLE_BRANCH_TYPE_SAVE: perf_branch_sample_type = 65536;
+pub const PERF_SAMPLE_BRANCH_HW_INDEX: perf_branch_sample_type = 131072;
+pub const PERF_SAMPLE_BRANCH_PRIV_SAVE: perf_branch_sample_type = 262144;
+pub const PERF_SAMPLE_BRANCH_COUNTERS: perf_branch_sample_type = 524288;
+pub const PERF_SAMPLE_BRANCH_MAX: perf_branch_sample_type = 1048576;
+pub type perf_branch_sample_type = ::std::os::raw::c_uint;
+pub const PERF_BR_UNKNOWN: _bindgen_ty_55 = 0;
+pub const PERF_BR_COND: _bindgen_ty_55 = 1;
+pub const PERF_BR_UNCOND: _bindgen_ty_55 = 2;
+pub const PERF_BR_IND: _bindgen_ty_55 = 3;
+pub const PERF_BR_CALL: _bindgen_ty_55 = 4;
+pub const PERF_BR_IND_CALL: _bindgen_ty_55 = 5;
+pub const PERF_BR_RET: _bindgen_ty_55 = 6;
+pub const PERF_BR_SYSCALL: _bindgen_ty_55 = 7;
+pub const PERF_BR_SYSRET: _bindgen_ty_55 = 8;
+pub const PERF_BR_COND_CALL: _bindgen_ty_55 = 9;
+pub const PERF_BR_COND_RET: _bindgen_ty_55 = 10;
+pub const PERF_BR_ERET: _bindgen_ty_55 = 11;
+pub const PERF_BR_IRQ: _bindgen_ty_55 = 12;
+pub const PERF_BR_SERROR: _bindgen_ty_55 = 13;
+pub const PERF_BR_NO_TX: _bindgen_ty_55 = 14;
+pub const PERF_BR_EXTEND_ABI: _bindgen_ty_55 = 15;
+pub const PERF_BR_MAX: _bindgen_ty_55 = 16;
+pub type _bindgen_ty_55 = ::std::os::raw::c_uint;
+pub const PERF_BR_SPEC_NA: _bindgen_ty_56 = 0;
+pub const PERF_BR_SPEC_WRONG_PATH: _bindgen_ty_56 = 1;
+pub const PERF_BR_NON_SPEC_CORRECT_PATH: _bindgen_ty_56 = 2;
+pub const PERF_BR_SPEC_CORRECT_PATH: _bindgen_ty_56 = 3;
+pub const PERF_BR_SPEC_MAX: _bindgen_ty_56 = 4;
+pub type _bindgen_ty_56 = ::std::os::raw::c_uint;
+pub const PERF_BR_NEW_FAULT_ALGN: _bindgen_ty_57 = 0;
+pub const PERF_BR_NEW_FAULT_DATA: _bindgen_ty_57 = 1;
+pub const PERF_BR_NEW_FAULT_INST: _bindgen_ty_57 = 2;
+pub const PERF_BR_NEW_ARCH_1: _bindgen_ty_57 = 3;
+pub const PERF_BR_NEW_ARCH_2: _bindgen_ty_57 = 4;
+pub const PERF_BR_NEW_ARCH_3: _bindgen_ty_57 = 5;
+pub const PERF_BR_NEW_ARCH_4: _bindgen_ty_57 = 6;
+pub const PERF_BR_NEW_ARCH_5: _bindgen_ty_57 = 7;
+pub const PERF_BR_NEW_MAX: _bindgen_ty_57 = 8;
+pub type _bindgen_ty_57 = ::std::os::raw::c_uint;
+pub const PERF_BR_PRIV_UNKNOWN: _bindgen_ty_58 = 0;
+pub const PERF_BR_PRIV_USER: _bindgen_ty_58 = 1;
+pub const PERF_BR_PRIV_KERNEL: _bindgen_ty_58 = 2;
+pub const PERF_BR_PRIV_HV: _bindgen_ty_58 = 3;
+pub type _bindgen_ty_58 = ::std::os::raw::c_uint;
+pub const PERF_SAMPLE_REGS_ABI_NONE: perf_sample_regs_abi = 0;
+pub const PERF_SAMPLE_REGS_ABI_32: perf_sample_regs_abi = 1;
+pub const PERF_SAMPLE_REGS_ABI_64: perf_sample_regs_abi = 2;
+pub type perf_sample_regs_abi = ::std::os::raw::c_uint;
+pub const PERF_TXN_ELISION: _bindgen_ty_59 = 1;
+pub const PERF_TXN_TRANSACTION: _bindgen_ty_59 = 2;
+pub const PERF_TXN_SYNC: _bindgen_ty_59 = 4;
+pub const PERF_TXN_ASYNC: _bindgen_ty_59 = 8;
+pub const PERF_TXN_RETRY: _bindgen_ty_59 = 16;
+pub const PERF_TXN_CONFLICT: _bindgen_ty_59 = 32;
+pub const PERF_TXN_CAPACITY_WRITE: _bindgen_ty_59 = 64;
+pub const PERF_TXN_CAPACITY_READ: _bindgen_ty_59 = 128;
+pub const PERF_TXN_MAX: _bindgen_ty_59 = 256;
+pub const PERF_TXN_ABORT_MASK: _bindgen_ty_59 = 18446744069414584320;
+pub const PERF_TXN_ABORT_SHIFT: _bindgen_ty_59 = 32;
+pub type _bindgen_ty_59 = ::std::os::raw::c_ulong;
+pub const PERF_FORMAT_TOTAL_TIME_ENABLED: perf_event_read_format = 1;
+pub const PERF_FORMAT_TOTAL_TIME_RUNNING: perf_event_read_format = 2;
+pub const PERF_FORMAT_ID: perf_event_read_format = 4;
+pub const PERF_FORMAT_GROUP: perf_event_read_format = 8;
+pub const PERF_FORMAT_LOST: perf_event_read_format = 16;
+pub const PERF_FORMAT_MAX: perf_event_read_format = 32;
+pub type perf_event_read_format = ::std::os::raw::c_uint;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct perf_event_attr {
+    pub type_: __u32,
+    pub size: __u32,
+    pub config: __u64,
+    pub __bindgen_anon_1: perf_event_attr__bindgen_ty_1,
+    pub sample_type: __u64,
+    pub read_format: __u64,
+    pub _bitfield_align_1: [u32; 0],
+    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
+    pub __bindgen_anon_2: perf_event_attr__bindgen_ty_2,
+    pub bp_type: __u32,
+    pub __bindgen_anon_3: perf_event_attr__bindgen_ty_3,
+    pub __bindgen_anon_4: perf_event_attr__bindgen_ty_4,
+    pub branch_sample_type: __u64,
+    pub sample_regs_user: __u64,
+    pub sample_stack_user: __u32,
+    pub clockid: __s32,
+    pub sample_regs_intr: __u64,
+    pub aux_watermark: __u32,
+    pub sample_max_stack: __u16,
+    pub __reserved_2: __u16,
+    pub aux_sample_size: __u32,
+    pub __reserved_3: __u32,
+    pub sig_data: __u64,
+    pub config3: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union perf_event_attr__bindgen_ty_1 {
+    pub sample_period: __u64,
+    pub sample_freq: __u64,
+}
+impl Default for perf_event_attr__bindgen_ty_1 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union perf_event_attr__bindgen_ty_2 {
+    pub wakeup_events: __u32,
+    pub wakeup_watermark: __u32,
+}
+impl Default for perf_event_attr__bindgen_ty_2 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union perf_event_attr__bindgen_ty_3 {
+    pub bp_addr: __u64,
+    pub kprobe_func: __u64,
+    pub uprobe_path: __u64,
+    pub config1: __u64,
+}
+impl Default for perf_event_attr__bindgen_ty_3 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union perf_event_attr__bindgen_ty_4 {
+    pub bp_len: __u64,
+    pub kprobe_addr: __u64,
+    pub probe_offset: __u64,
+    pub config2: __u64,
+}
+impl Default for perf_event_attr__bindgen_ty_4 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+impl Default for perf_event_attr {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+impl perf_event_attr {
+    #[inline]
+    pub fn disabled(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_disabled(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(0usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn inherit(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_inherit(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(1usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn pinned(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_pinned(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(2usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn exclusive(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_exclusive(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(3usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn exclude_user(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_exclude_user(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(4usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn exclude_kernel(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_exclude_kernel(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(5usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn exclude_hv(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_exclude_hv(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(6usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn exclude_idle(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_exclude_idle(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(7usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn mmap(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_mmap(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(8usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn comm(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_comm(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(9usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn freq(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_freq(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(10usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn inherit_stat(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_inherit_stat(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(11usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn enable_on_exec(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_enable_on_exec(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(12usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn task(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_task(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(13usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn watermark(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_watermark(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(14usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn precise_ip(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(15usize, 2u8) as u64) }
+    }
+    #[inline]
+    pub fn set_precise_ip(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(15usize, 2u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn mmap_data(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(17usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_mmap_data(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(17usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn sample_id_all(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(18usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_sample_id_all(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(18usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn exclude_host(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(19usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_exclude_host(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(19usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn exclude_guest(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(20usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_exclude_guest(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(20usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn exclude_callchain_kernel(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(21usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_exclude_callchain_kernel(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(21usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn exclude_callchain_user(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(22usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_exclude_callchain_user(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(22usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn mmap2(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(23usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_mmap2(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(23usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn comm_exec(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(24usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_comm_exec(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(24usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn use_clockid(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(25usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_use_clockid(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(25usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn context_switch(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(26usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_context_switch(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(26usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn write_backward(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(27usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_write_backward(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(27usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn namespaces(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(28usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_namespaces(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(28usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn ksymbol(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(29usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_ksymbol(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(29usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn bpf_event(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(30usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_bpf_event(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(30usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn aux_output(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(31usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_aux_output(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(31usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn cgroup(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(32usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_cgroup(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(32usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn text_poke(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(33usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_text_poke(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(33usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn build_id(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(34usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_build_id(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(34usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn inherit_thread(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(35usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_inherit_thread(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(35usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn remove_on_exec(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(36usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_remove_on_exec(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(36usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn sigtrap(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(37usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_sigtrap(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(37usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn __reserved_1(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(38usize, 26u8) as u64) }
+    }
+    #[inline]
+    pub fn set___reserved_1(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(38usize, 26u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn new_bitfield_1(
+        disabled: __u64,
+        inherit: __u64,
+        pinned: __u64,
+        exclusive: __u64,
+        exclude_user: __u64,
+        exclude_kernel: __u64,
+        exclude_hv: __u64,
+        exclude_idle: __u64,
+        mmap: __u64,
+        comm: __u64,
+        freq: __u64,
+        inherit_stat: __u64,
+        enable_on_exec: __u64,
+        task: __u64,
+        watermark: __u64,
+        precise_ip: __u64,
+        mmap_data: __u64,
+        sample_id_all: __u64,
+        exclude_host: __u64,
+        exclude_guest: __u64,
+        exclude_callchain_kernel: __u64,
+        exclude_callchain_user: __u64,
+        mmap2: __u64,
+        comm_exec: __u64,
+        use_clockid: __u64,
+        context_switch: __u64,
+        write_backward: __u64,
+        namespaces: __u64,
+        ksymbol: __u64,
+        bpf_event: __u64,
+        aux_output: __u64,
+        cgroup: __u64,
+        text_poke: __u64,
+        build_id: __u64,
+        inherit_thread: __u64,
+        remove_on_exec: __u64,
+        sigtrap: __u64,
+        __reserved_1: __u64,
+    ) -> __BindgenBitfieldUnit<[u8; 8usize]> {
+        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
+        __bindgen_bitfield_unit.set(0usize, 1u8, {
+            let disabled: u64 = unsafe { ::std::mem::transmute(disabled) };
+            disabled as u64
+        });
+        __bindgen_bitfield_unit.set(1usize, 1u8, {
+            let inherit: u64 = unsafe { ::std::mem::transmute(inherit) };
+            inherit as u64
+        });
+        __bindgen_bitfield_unit.set(2usize, 1u8, {
+            let pinned: u64 = unsafe { ::std::mem::transmute(pinned) };
+            pinned as u64
+        });
+        __bindgen_bitfield_unit.set(3usize, 1u8, {
+            let exclusive: u64 = unsafe { ::std::mem::transmute(exclusive) };
+            exclusive as u64
+        });
+        __bindgen_bitfield_unit.set(4usize, 1u8, {
+            let exclude_user: u64 = unsafe { ::std::mem::transmute(exclude_user) };
+            exclude_user as u64
+        });
+        __bindgen_bitfield_unit.set(5usize, 1u8, {
+            let exclude_kernel: u64 = unsafe { ::std::mem::transmute(exclude_kernel) };
+            exclude_kernel as u64
+        });
+        __bindgen_bitfield_unit.set(6usize, 1u8, {
+            let exclude_hv: u64 = unsafe { ::std::mem::transmute(exclude_hv) };
+            exclude_hv as u64
+        });
+        __bindgen_bitfield_unit.set(7usize, 1u8, {
+            let exclude_idle: u64 = unsafe { ::std::mem::transmute(exclude_idle) };
+            exclude_idle as u64
+        });
+        __bindgen_bitfield_unit.set(8usize, 1u8, {
+            let mmap: u64 = unsafe { ::std::mem::transmute(mmap) };
+            mmap as u64
+        });
+        __bindgen_bitfield_unit.set(9usize, 1u8, {
+            let comm: u64 = unsafe { ::std::mem::transmute(comm) };
+            comm as u64
+        });
+        __bindgen_bitfield_unit.set(10usize, 1u8, {
+            let freq: u64 = unsafe { ::std::mem::transmute(freq) };
+            freq as u64
+        });
+        __bindgen_bitfield_unit.set(11usize, 1u8, {
+            let inherit_stat: u64 = unsafe { ::std::mem::transmute(inherit_stat) };
+            inherit_stat as u64
+        });
+        __bindgen_bitfield_unit.set(12usize, 1u8, {
+            let enable_on_exec: u64 = unsafe { ::std::mem::transmute(enable_on_exec) };
+            enable_on_exec as u64
+        });
+        __bindgen_bitfield_unit.set(13usize, 1u8, {
+            let task: u64 = unsafe { ::std::mem::transmute(task) };
+            task as u64
+        });
+        __bindgen_bitfield_unit.set(14usize, 1u8, {
+            let watermark: u64 = unsafe { ::std::mem::transmute(watermark) };
+            watermark as u64
+        });
+        __bindgen_bitfield_unit.set(15usize, 2u8, {
+            let precise_ip: u64 = unsafe { ::std::mem::transmute(precise_ip) };
+            precise_ip as u64
+        });
+        __bindgen_bitfield_unit.set(17usize, 1u8, {
+            let mmap_data: u64 = unsafe { ::std::mem::transmute(mmap_data) };
+            mmap_data as u64
+        });
+        __bindgen_bitfield_unit.set(18usize, 1u8, {
+            let sample_id_all: u64 = unsafe { ::std::mem::transmute(sample_id_all) };
+            sample_id_all as u64
+        });
+        __bindgen_bitfield_unit.set(19usize, 1u8, {
+            let exclude_host: u64 = unsafe { ::std::mem::transmute(exclude_host) };
+            exclude_host as u64
+        });
+        __bindgen_bitfield_unit.set(20usize, 1u8, {
+            let exclude_guest: u64 = unsafe { ::std::mem::transmute(exclude_guest) };
+            exclude_guest as u64
+        });
+        __bindgen_bitfield_unit.set(21usize, 1u8, {
+            let exclude_callchain_kernel: u64 =
+                unsafe { ::std::mem::transmute(exclude_callchain_kernel) };
+            exclude_callchain_kernel as u64
+        });
+        __bindgen_bitfield_unit.set(22usize, 1u8, {
+            let exclude_callchain_user: u64 =
+                unsafe { ::std::mem::transmute(exclude_callchain_user) };
+            exclude_callchain_user as u64
+        });
+        __bindgen_bitfield_unit.set(23usize, 1u8, {
+            let mmap2: u64 = unsafe { ::std::mem::transmute(mmap2) };
+            mmap2 as u64
+        });
+        __bindgen_bitfield_unit.set(24usize, 1u8, {
+            let comm_exec: u64 = unsafe { ::std::mem::transmute(comm_exec) };
+            comm_exec as u64
+        });
+        __bindgen_bitfield_unit.set(25usize, 1u8, {
+            let use_clockid: u64 = unsafe { ::std::mem::transmute(use_clockid) };
+            use_clockid as u64
+        });
+        __bindgen_bitfield_unit.set(26usize, 1u8, {
+            let context_switch: u64 = unsafe { ::std::mem::transmute(context_switch) };
+            context_switch as u64
+        });
+        __bindgen_bitfield_unit.set(27usize, 1u8, {
+            let write_backward: u64 = unsafe { ::std::mem::transmute(write_backward) };
+            write_backward as u64
+        });
+        __bindgen_bitfield_unit.set(28usize, 1u8, {
+            let namespaces: u64 = unsafe { ::std::mem::transmute(namespaces) };
+            namespaces as u64
+        });
+        __bindgen_bitfield_unit.set(29usize, 1u8, {
+            let ksymbol: u64 = unsafe { ::std::mem::transmute(ksymbol) };
+            ksymbol as u64
+        });
+        __bindgen_bitfield_unit.set(30usize, 1u8, {
+            let bpf_event: u64 = unsafe { ::std::mem::transmute(bpf_event) };
+            bpf_event as u64
+        });
+        __bindgen_bitfield_unit.set(31usize, 1u8, {
+            let aux_output: u64 = unsafe { ::std::mem::transmute(aux_output) };
+            aux_output as u64
+        });
+        __bindgen_bitfield_unit.set(32usize, 1u8, {
+            let cgroup: u64 = unsafe { ::std::mem::transmute(cgroup) };
+            cgroup as u64
+        });
+        __bindgen_bitfield_unit.set(33usize, 1u8, {
+            let text_poke: u64 = unsafe { ::std::mem::transmute(text_poke) };
+            text_poke as u64
+        });
+        __bindgen_bitfield_unit.set(34usize, 1u8, {
+            let build_id: u64 = unsafe { ::std::mem::transmute(build_id) };
+            build_id as u64
+        });
+        __bindgen_bitfield_unit.set(35usize, 1u8, {
+            let inherit_thread: u64 = unsafe { ::std::mem::transmute(inherit_thread) };
+            inherit_thread as u64
+        });
+        __bindgen_bitfield_unit.set(36usize, 1u8, {
+            let remove_on_exec: u64 = unsafe { ::std::mem::transmute(remove_on_exec) };
+            remove_on_exec as u64
+        });
+        __bindgen_bitfield_unit.set(37usize, 1u8, {
+            let sigtrap: u64 = unsafe { ::std::mem::transmute(sigtrap) };
+            sigtrap as u64
+        });
+        __bindgen_bitfield_unit.set(38usize, 26u8, {
+            let __reserved_1: u64 = unsafe { ::std::mem::transmute(__reserved_1) };
+            __reserved_1 as u64
+        });
+        __bindgen_bitfield_unit
+    }
+}
+#[repr(C)]
+#[derive(Debug, Default)]
+pub struct perf_event_query_bpf {
+    pub ids_len: __u32,
+    pub prog_cnt: __u32,
+    pub ids: __IncompleteArrayField<__u32>,
+}
+pub const PERF_IOC_FLAG_GROUP: perf_event_ioc_flags = 1;
+pub type perf_event_ioc_flags = ::std::os::raw::c_uint;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct perf_event_mmap_page {
+    pub version: __u32,
+    pub compat_version: __u32,
+    pub lock: __u32,
+    pub index: __u32,
+    pub offset: __s64,
+    pub time_enabled: __u64,
+    pub time_running: __u64,
+    pub __bindgen_anon_1: perf_event_mmap_page__bindgen_ty_1,
+    pub pmc_width: __u16,
+    pub time_shift: __u16,
+    pub time_mult: __u32,
+    pub time_offset: __u64,
+    pub time_zero: __u64,
+    pub size: __u32,
+    pub __reserved_1: __u32,
+    pub time_cycles: __u64,
+    pub time_mask: __u64,
+    pub __reserved: [__u8; 928usize],
+    pub data_head: __u64,
+    pub data_tail: __u64,
+    pub data_offset: __u64,
+    pub data_size: __u64,
+    pub aux_head: __u64,
+    pub aux_tail: __u64,
+    pub aux_offset: __u64,
+    pub aux_size: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union perf_event_mmap_page__bindgen_ty_1 {
+    pub capabilities: __u64,
+    pub __bindgen_anon_1: perf_event_mmap_page__bindgen_ty_1__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct perf_event_mmap_page__bindgen_ty_1__bindgen_ty_1 {
+    pub _bitfield_align_1: [u64; 0],
+    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
+}
+impl perf_event_mmap_page__bindgen_ty_1__bindgen_ty_1 {
+    #[inline]
+    pub fn cap_bit0(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_cap_bit0(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(0usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn cap_bit0_is_deprecated(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_cap_bit0_is_deprecated(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(1usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn cap_user_rdpmc(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_cap_user_rdpmc(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(2usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn cap_user_time(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_cap_user_time(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(3usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn cap_user_time_zero(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_cap_user_time_zero(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(4usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn cap_user_time_short(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_cap_user_time_short(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(5usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn cap_____res(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 58u8) as u64) }
+    }
+    #[inline]
+    pub fn set_cap_____res(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(6usize, 58u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn new_bitfield_1(
+        cap_bit0: __u64,
+        cap_bit0_is_deprecated: __u64,
+        cap_user_rdpmc: __u64,
+        cap_user_time: __u64,
+        cap_user_time_zero: __u64,
+        cap_user_time_short: __u64,
+        cap_____res: __u64,
+    ) -> __BindgenBitfieldUnit<[u8; 8usize]> {
+        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
+        __bindgen_bitfield_unit.set(0usize, 1u8, {
+            let cap_bit0: u64 = unsafe { ::std::mem::transmute(cap_bit0) };
+            cap_bit0 as u64
+        });
+        __bindgen_bitfield_unit.set(1usize, 1u8, {
+            let cap_bit0_is_deprecated: u64 =
+                unsafe { ::std::mem::transmute(cap_bit0_is_deprecated) };
+            cap_bit0_is_deprecated as u64
+        });
+        __bindgen_bitfield_unit.set(2usize, 1u8, {
+            let cap_user_rdpmc: u64 = unsafe { ::std::mem::transmute(cap_user_rdpmc) };
+            cap_user_rdpmc as u64
+        });
+        __bindgen_bitfield_unit.set(3usize, 1u8, {
+            let cap_user_time: u64 = unsafe { ::std::mem::transmute(cap_user_time) };
+            cap_user_time as u64
+        });
+        __bindgen_bitfield_unit.set(4usize, 1u8, {
+            let cap_user_time_zero: u64 = unsafe { ::std::mem::transmute(cap_user_time_zero) };
+            cap_user_time_zero as u64
+        });
+        __bindgen_bitfield_unit.set(5usize, 1u8, {
+            let cap_user_time_short: u64 = unsafe { ::std::mem::transmute(cap_user_time_short) };
+            cap_user_time_short as u64
+        });
+        __bindgen_bitfield_unit.set(6usize, 58u8, {
+            let cap_____res: u64 = unsafe { ::std::mem::transmute(cap_____res) };
+            cap_____res as u64
+        });
+        __bindgen_bitfield_unit
+    }
+}
+impl Default for perf_event_mmap_page__bindgen_ty_1 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+impl Default for perf_event_mmap_page {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct perf_event_header {
+    pub type_: __u32,
+    pub misc: __u16,
+    pub size: __u16,
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct perf_ns_link_info {
+    pub dev: __u64,
+    pub ino: __u64,
+}
+pub const PERF_RECORD_MMAP: perf_event_type = 1;
+pub const PERF_RECORD_LOST: perf_event_type = 2;
+pub const PERF_RECORD_COMM: perf_event_type = 3;
+pub const PERF_RECORD_EXIT: perf_event_type = 4;
+pub const PERF_RECORD_THROTTLE: perf_event_type = 5;
+pub const PERF_RECORD_UNTHROTTLE: perf_event_type = 6;
+pub const PERF_RECORD_FORK: perf_event_type = 7;
+pub const PERF_RECORD_READ: perf_event_type = 8;
+pub const PERF_RECORD_SAMPLE: perf_event_type = 9;
+pub const PERF_RECORD_MMAP2: perf_event_type = 10;
+pub const PERF_RECORD_AUX: perf_event_type = 11;
+pub const PERF_RECORD_ITRACE_START: perf_event_type = 12;
+pub const PERF_RECORD_LOST_SAMPLES: perf_event_type = 13;
+pub const PERF_RECORD_SWITCH: perf_event_type = 14;
+pub const PERF_RECORD_SWITCH_CPU_WIDE: perf_event_type = 15;
+pub const PERF_RECORD_NAMESPACES: perf_event_type = 16;
+pub const PERF_RECORD_KSYMBOL: perf_event_type = 17;
+pub const PERF_RECORD_BPF_EVENT: perf_event_type = 18;
+pub const PERF_RECORD_CGROUP: perf_event_type = 19;
+pub const PERF_RECORD_TEXT_POKE: perf_event_type = 20;
+pub const PERF_RECORD_AUX_OUTPUT_HW_ID: perf_event_type = 21;
+pub const PERF_RECORD_MAX: perf_event_type = 22;
+pub type perf_event_type = ::std::os::raw::c_uint;
+pub const PERF_RECORD_KSYMBOL_TYPE_UNKNOWN: perf_record_ksymbol_type = 0;
+pub const PERF_RECORD_KSYMBOL_TYPE_BPF: perf_record_ksymbol_type = 1;
+pub const PERF_RECORD_KSYMBOL_TYPE_OOL: perf_record_ksymbol_type = 2;
+pub const PERF_RECORD_KSYMBOL_TYPE_MAX: perf_record_ksymbol_type = 3;
+pub type perf_record_ksymbol_type = ::std::os::raw::c_uint;
+pub const PERF_BPF_EVENT_UNKNOWN: perf_bpf_event_type = 0;
+pub const PERF_BPF_EVENT_PROG_LOAD: perf_bpf_event_type = 1;
+pub const PERF_BPF_EVENT_PROG_UNLOAD: perf_bpf_event_type = 2;
+pub const PERF_BPF_EVENT_MAX: perf_bpf_event_type = 3;
+pub type perf_bpf_event_type = ::std::os::raw::c_uint;
+pub const PERF_CONTEXT_HV: perf_callchain_context = 18446744073709551584;
+pub const PERF_CONTEXT_KERNEL: perf_callchain_context = 18446744073709551488;
+pub const PERF_CONTEXT_USER: perf_callchain_context = 18446744073709551104;
+pub const PERF_CONTEXT_GUEST: perf_callchain_context = 18446744073709549568;
+pub const PERF_CONTEXT_GUEST_KERNEL: perf_callchain_context = 18446744073709549440;
+pub const PERF_CONTEXT_GUEST_USER: perf_callchain_context = 18446744073709549056;
+pub const PERF_CONTEXT_MAX: perf_callchain_context = 18446744073709547521;
+pub type perf_callchain_context = ::std::os::raw::c_ulong;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union perf_mem_data_src {
+    pub val: __u64,
+    pub __bindgen_anon_1: perf_mem_data_src__bindgen_ty_1,
+}
+#[repr(C)]
+#[repr(align(8))]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct perf_mem_data_src__bindgen_ty_1 {
+    pub _bitfield_align_1: [u32; 0],
+    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
+}
+impl perf_mem_data_src__bindgen_ty_1 {
+    #[inline]
+    pub fn mem_op(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 5u8) as u64) }
+    }
+    #[inline]
+    pub fn set_mem_op(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(0usize, 5u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn mem_lvl(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 14u8) as u64) }
+    }
+    #[inline]
+    pub fn set_mem_lvl(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(5usize, 14u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn mem_snoop(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(19usize, 5u8) as u64) }
+    }
+    #[inline]
+    pub fn set_mem_snoop(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(19usize, 5u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn mem_lock(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(24usize, 2u8) as u64) }
+    }
+    #[inline]
+    pub fn set_mem_lock(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(24usize, 2u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn mem_dtlb(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(26usize, 7u8) as u64) }
+    }
+    #[inline]
+    pub fn set_mem_dtlb(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(26usize, 7u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn mem_lvl_num(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(33usize, 4u8) as u64) }
+    }
+    #[inline]
+    pub fn set_mem_lvl_num(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(33usize, 4u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn mem_remote(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(37usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_mem_remote(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(37usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn mem_snoopx(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(38usize, 2u8) as u64) }
+    }
+    #[inline]
+    pub fn set_mem_snoopx(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(38usize, 2u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn mem_blk(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(40usize, 3u8) as u64) }
+    }
+    #[inline]
+    pub fn set_mem_blk(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(40usize, 3u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn mem_hops(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(43usize, 3u8) as u64) }
+    }
+    #[inline]
+    pub fn set_mem_hops(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(43usize, 3u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn mem_rsvd(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(46usize, 18u8) as u64) }
+    }
+    #[inline]
+    pub fn set_mem_rsvd(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(46usize, 18u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn new_bitfield_1(
+        mem_op: __u64,
+        mem_lvl: __u64,
+        mem_snoop: __u64,
+        mem_lock: __u64,
+        mem_dtlb: __u64,
+        mem_lvl_num: __u64,
+        mem_remote: __u64,
+        mem_snoopx: __u64,
+        mem_blk: __u64,
+        mem_hops: __u64,
+        mem_rsvd: __u64,
+    ) -> __BindgenBitfieldUnit<[u8; 8usize]> {
+        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
+        __bindgen_bitfield_unit.set(0usize, 5u8, {
+            let mem_op: u64 = unsafe { ::std::mem::transmute(mem_op) };
+            mem_op as u64
+        });
+        __bindgen_bitfield_unit.set(5usize, 14u8, {
+            let mem_lvl: u64 = unsafe { ::std::mem::transmute(mem_lvl) };
+            mem_lvl as u64
+        });
+        __bindgen_bitfield_unit.set(19usize, 5u8, {
+            let mem_snoop: u64 = unsafe { ::std::mem::transmute(mem_snoop) };
+            mem_snoop as u64
+        });
+        __bindgen_bitfield_unit.set(24usize, 2u8, {
+            let mem_lock: u64 = unsafe { ::std::mem::transmute(mem_lock) };
+            mem_lock as u64
+        });
+        __bindgen_bitfield_unit.set(26usize, 7u8, {
+            let mem_dtlb: u64 = unsafe { ::std::mem::transmute(mem_dtlb) };
+            mem_dtlb as u64
+        });
+        __bindgen_bitfield_unit.set(33usize, 4u8, {
+            let mem_lvl_num: u64 = unsafe { ::std::mem::transmute(mem_lvl_num) };
+            mem_lvl_num as u64
+        });
+        __bindgen_bitfield_unit.set(37usize, 1u8, {
+            let mem_remote: u64 = unsafe { ::std::mem::transmute(mem_remote) };
+            mem_remote as u64
+        });
+        __bindgen_bitfield_unit.set(38usize, 2u8, {
+            let mem_snoopx: u64 = unsafe { ::std::mem::transmute(mem_snoopx) };
+            mem_snoopx as u64
+        });
+        __bindgen_bitfield_unit.set(40usize, 3u8, {
+            let mem_blk: u64 = unsafe { ::std::mem::transmute(mem_blk) };
+            mem_blk as u64
+        });
+        __bindgen_bitfield_unit.set(43usize, 3u8, {
+            let mem_hops: u64 = unsafe { ::std::mem::transmute(mem_hops) };
+            mem_hops as u64
+        });
+        __bindgen_bitfield_unit.set(46usize, 18u8, {
+            let mem_rsvd: u64 = unsafe { ::std::mem::transmute(mem_rsvd) };
+            mem_rsvd as u64
+        });
+        __bindgen_bitfield_unit
+    }
+}
+impl Default for perf_mem_data_src {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct perf_branch_entry {
+    pub from: __u64,
+    pub to: __u64,
+    pub _bitfield_align_1: [u32; 0],
+    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
+}
+impl perf_branch_entry {
+    #[inline]
+    pub fn mispred(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_mispred(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(0usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn predicted(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_predicted(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(1usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn in_tx(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_in_tx(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(2usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn abort(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u64) }
+    }
+    #[inline]
+    pub fn set_abort(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(3usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn cycles(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 16u8) as u64) }
+    }
+    #[inline]
+    pub fn set_cycles(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(4usize, 16u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn type_(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(20usize, 4u8) as u64) }
+    }
+    #[inline]
+    pub fn set_type(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(20usize, 4u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn spec(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(24usize, 2u8) as u64) }
+    }
+    #[inline]
+    pub fn set_spec(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(24usize, 2u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn new_type(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(26usize, 4u8) as u64) }
+    }
+    #[inline]
+    pub fn set_new_type(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(26usize, 4u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn priv_(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(30usize, 3u8) as u64) }
+    }
+    #[inline]
+    pub fn set_priv(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(30usize, 3u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn reserved(&self) -> __u64 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(33usize, 31u8) as u64) }
+    }
+    #[inline]
+    pub fn set_reserved(&mut self, val: __u64) {
+        unsafe {
+            let val: u64 = ::std::mem::transmute(val);
+            self._bitfield_1.set(33usize, 31u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn new_bitfield_1(
+        mispred: __u64,
+        predicted: __u64,
+        in_tx: __u64,
+        abort: __u64,
+        cycles: __u64,
+        type_: __u64,
+        spec: __u64,
+        new_type: __u64,
+        priv_: __u64,
+        reserved: __u64,
+    ) -> __BindgenBitfieldUnit<[u8; 8usize]> {
+        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
+        __bindgen_bitfield_unit.set(0usize, 1u8, {
+            let mispred: u64 = unsafe { ::std::mem::transmute(mispred) };
+            mispred as u64
+        });
+        __bindgen_bitfield_unit.set(1usize, 1u8, {
+            let predicted: u64 = unsafe { ::std::mem::transmute(predicted) };
+            predicted as u64
+        });
+        __bindgen_bitfield_unit.set(2usize, 1u8, {
+            let in_tx: u64 = unsafe { ::std::mem::transmute(in_tx) };
+            in_tx as u64
+        });
+        __bindgen_bitfield_unit.set(3usize, 1u8, {
+            let abort: u64 = unsafe { ::std::mem::transmute(abort) };
+            abort as u64
+        });
+        __bindgen_bitfield_unit.set(4usize, 16u8, {
+            let cycles: u64 = unsafe { ::std::mem::transmute(cycles) };
+            cycles as u64
+        });
+        __bindgen_bitfield_unit.set(20usize, 4u8, {
+            let type_: u64 = unsafe { ::std::mem::transmute(type_) };
+            type_ as u64
+        });
+        __bindgen_bitfield_unit.set(24usize, 2u8, {
+            let spec: u64 = unsafe { ::std::mem::transmute(spec) };
+            spec as u64
+        });
+        __bindgen_bitfield_unit.set(26usize, 4u8, {
+            let new_type: u64 = unsafe { ::std::mem::transmute(new_type) };
+            new_type as u64
+        });
+        __bindgen_bitfield_unit.set(30usize, 3u8, {
+            let priv_: u64 = unsafe { ::std::mem::transmute(priv_) };
+            priv_ as u64
+        });
+        __bindgen_bitfield_unit.set(33usize, 31u8, {
+            let reserved: u64 = unsafe { ::std::mem::transmute(reserved) };
+            reserved as u64
+        });
+        __bindgen_bitfield_unit
+    }
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union perf_sample_weight {
+    pub full: __u64,
+    pub __bindgen_anon_1: perf_sample_weight__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct perf_sample_weight__bindgen_ty_1 {
+    pub var1_dw: __u32,
+    pub var2_w: __u16,
+    pub var3_w: __u16,
+}
+impl Default for perf_sample_weight {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+pub const BPF_MAY_GOTO: bpf_cond_pseudo_jmp = 0;
+pub type bpf_cond_pseudo_jmp = ::std::os::raw::c_uint;
+pub const BPF_REG_0: _bindgen_ty_61 = 0;
+pub const BPF_REG_1: _bindgen_ty_61 = 1;
+pub const BPF_REG_2: _bindgen_ty_61 = 2;
+pub const BPF_REG_3: _bindgen_ty_61 = 3;
+pub const BPF_REG_4: _bindgen_ty_61 = 4;
+pub const BPF_REG_5: _bindgen_ty_61 = 5;
+pub const BPF_REG_6: _bindgen_ty_61 = 6;
+pub const BPF_REG_7: _bindgen_ty_61 = 7;
+pub const BPF_REG_8: _bindgen_ty_61 = 8;
+pub const BPF_REG_9: _bindgen_ty_61 = 9;
+pub const BPF_REG_10: _bindgen_ty_61 = 10;
+pub const __MAX_BPF_REG: _bindgen_ty_61 = 11;
+pub type _bindgen_ty_61 = ::std::os::raw::c_uint;
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_insn {
+    pub code: __u8,
+    pub _bitfield_align_1: [u8; 0],
+    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
+    pub off: __s16,
+    pub imm: __s32,
+}
+impl bpf_insn {
+    #[inline]
+    pub fn dst_reg(&self) -> __u8 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
+    }
+    #[inline]
+    pub fn set_dst_reg(&mut self, val: __u8) {
+        unsafe {
+            let val: u8 = ::std::mem::transmute(val);
+            self._bitfield_1.set(0usize, 4u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn src_reg(&self) -> __u8 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
+    }
+    #[inline]
+    pub fn set_src_reg(&mut self, val: __u8) {
+        unsafe {
+            let val: u8 = ::std::mem::transmute(val);
+            self._bitfield_1.set(4usize, 4u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn new_bitfield_1(dst_reg: __u8, src_reg: __u8) -> __BindgenBitfieldUnit<[u8; 1usize]> {
+        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
+        __bindgen_bitfield_unit.set(0usize, 4u8, {
+            let dst_reg: u8 = unsafe { ::std::mem::transmute(dst_reg) };
+            dst_reg as u64
+        });
+        __bindgen_bitfield_unit.set(4usize, 4u8, {
+            let src_reg: u8 = unsafe { ::std::mem::transmute(src_reg) };
+            src_reg as u64
+        });
+        __bindgen_bitfield_unit
+    }
+}
+#[repr(C)]
+#[derive(Debug, Default)]
+pub struct bpf_lpm_trie_key {
+    pub prefixlen: __u32,
+    pub data: __IncompleteArrayField<__u8>,
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_lpm_trie_key_hdr {
+    pub prefixlen: __u32,
+}
+#[repr(C)]
+pub struct bpf_lpm_trie_key_u8 {
+    pub __bindgen_anon_1: bpf_lpm_trie_key_u8__bindgen_ty_1,
+    pub data: __IncompleteArrayField<__u8>,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_lpm_trie_key_u8__bindgen_ty_1 {
+    pub hdr: bpf_lpm_trie_key_hdr,
+    pub prefixlen: __u32,
+}
+impl Default for bpf_lpm_trie_key_u8__bindgen_ty_1 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+impl Default for bpf_lpm_trie_key_u8 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_cgroup_storage_key {
+    pub cgroup_inode_id: __u64,
+    pub attach_type: __u32,
+    pub __bindgen_padding_0: [u8; 4usize],
+}
+pub const BPF_CGROUP_ITER_ORDER_UNSPEC: bpf_cgroup_iter_order = 0;
+pub const BPF_CGROUP_ITER_SELF_ONLY: bpf_cgroup_iter_order = 1;
+pub const BPF_CGROUP_ITER_DESCENDANTS_PRE: bpf_cgroup_iter_order = 2;
+pub const BPF_CGROUP_ITER_DESCENDANTS_POST: bpf_cgroup_iter_order = 3;
+pub const BPF_CGROUP_ITER_ANCESTORS_UP: bpf_cgroup_iter_order = 4;
+pub type bpf_cgroup_iter_order = ::std::os::raw::c_uint;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_iter_link_info {
+    pub map: bpf_iter_link_info__bindgen_ty_1,
+    pub cgroup: bpf_iter_link_info__bindgen_ty_2,
+    pub task: bpf_iter_link_info__bindgen_ty_3,
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_iter_link_info__bindgen_ty_1 {
+    pub map_fd: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_iter_link_info__bindgen_ty_2 {
+    pub order: bpf_cgroup_iter_order,
+    pub cgroup_fd: __u32,
+    pub cgroup_id: __u64,
+}
+impl Default for bpf_iter_link_info__bindgen_ty_2 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_iter_link_info__bindgen_ty_3 {
+    pub tid: __u32,
+    pub pid: __u32,
+    pub pid_fd: __u32,
+}
+impl Default for bpf_iter_link_info {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+pub const BPF_MAP_CREATE: bpf_cmd = 0;
+pub const BPF_MAP_LOOKUP_ELEM: bpf_cmd = 1;
+pub const BPF_MAP_UPDATE_ELEM: bpf_cmd = 2;
+pub const BPF_MAP_DELETE_ELEM: bpf_cmd = 3;
+pub const BPF_MAP_GET_NEXT_KEY: bpf_cmd = 4;
+pub const BPF_PROG_LOAD: bpf_cmd = 5;
+pub const BPF_OBJ_PIN: bpf_cmd = 6;
+pub const BPF_OBJ_GET: bpf_cmd = 7;
+pub const BPF_PROG_ATTACH: bpf_cmd = 8;
+pub const BPF_PROG_DETACH: bpf_cmd = 9;
+pub const BPF_PROG_TEST_RUN: bpf_cmd = 10;
+pub const BPF_PROG_RUN: bpf_cmd = 10;
+pub const BPF_PROG_GET_NEXT_ID: bpf_cmd = 11;
+pub const BPF_MAP_GET_NEXT_ID: bpf_cmd = 12;
+pub const BPF_PROG_GET_FD_BY_ID: bpf_cmd = 13;
+pub const BPF_MAP_GET_FD_BY_ID: bpf_cmd = 14;
+pub const BPF_OBJ_GET_INFO_BY_FD: bpf_cmd = 15;
+pub const BPF_PROG_QUERY: bpf_cmd = 16;
+pub const BPF_RAW_TRACEPOINT_OPEN: bpf_cmd = 17;
+pub const BPF_BTF_LOAD: bpf_cmd = 18;
+pub const BPF_BTF_GET_FD_BY_ID: bpf_cmd = 19;
+pub const BPF_TASK_FD_QUERY: bpf_cmd = 20;
+pub const BPF_MAP_LOOKUP_AND_DELETE_ELEM: bpf_cmd = 21;
+pub const BPF_MAP_FREEZE: bpf_cmd = 22;
+pub const BPF_BTF_GET_NEXT_ID: bpf_cmd = 23;
+pub const BPF_MAP_LOOKUP_BATCH: bpf_cmd = 24;
+pub const BPF_MAP_LOOKUP_AND_DELETE_BATCH: bpf_cmd = 25;
+pub const BPF_MAP_UPDATE_BATCH: bpf_cmd = 26;
+pub const BPF_MAP_DELETE_BATCH: bpf_cmd = 27;
+pub const BPF_LINK_CREATE: bpf_cmd = 28;
+pub const BPF_LINK_UPDATE: bpf_cmd = 29;
+pub const BPF_LINK_GET_FD_BY_ID: bpf_cmd = 30;
+pub const BPF_LINK_GET_NEXT_ID: bpf_cmd = 31;
+pub const BPF_ENABLE_STATS: bpf_cmd = 32;
+pub const BPF_ITER_CREATE: bpf_cmd = 33;
+pub const BPF_LINK_DETACH: bpf_cmd = 34;
+pub const BPF_PROG_BIND_MAP: bpf_cmd = 35;
+pub const BPF_TOKEN_CREATE: bpf_cmd = 36;
+pub const __MAX_BPF_CMD: bpf_cmd = 37;
+pub type bpf_cmd = ::std::os::raw::c_uint;
+pub const BPF_MAP_TYPE_UNSPEC: bpf_map_type = 0;
+pub const BPF_MAP_TYPE_HASH: bpf_map_type = 1;
+pub const BPF_MAP_TYPE_ARRAY: bpf_map_type = 2;
+pub const BPF_MAP_TYPE_PROG_ARRAY: bpf_map_type = 3;
+pub const BPF_MAP_TYPE_PERF_EVENT_ARRAY: bpf_map_type = 4;
+pub const BPF_MAP_TYPE_PERCPU_HASH: bpf_map_type = 5;
+pub const BPF_MAP_TYPE_PERCPU_ARRAY: bpf_map_type = 6;
+pub const BPF_MAP_TYPE_STACK_TRACE: bpf_map_type = 7;
+pub const BPF_MAP_TYPE_CGROUP_ARRAY: bpf_map_type = 8;
+pub const BPF_MAP_TYPE_LRU_HASH: bpf_map_type = 9;
+pub const BPF_MAP_TYPE_LRU_PERCPU_HASH: bpf_map_type = 10;
+pub const BPF_MAP_TYPE_LPM_TRIE: bpf_map_type = 11;
+pub const BPF_MAP_TYPE_ARRAY_OF_MAPS: bpf_map_type = 12;
+pub const BPF_MAP_TYPE_HASH_OF_MAPS: bpf_map_type = 13;
+pub const BPF_MAP_TYPE_DEVMAP: bpf_map_type = 14;
+pub const BPF_MAP_TYPE_SOCKMAP: bpf_map_type = 15;
+pub const BPF_MAP_TYPE_CPUMAP: bpf_map_type = 16;
+pub const BPF_MAP_TYPE_XSKMAP: bpf_map_type = 17;
+pub const BPF_MAP_TYPE_SOCKHASH: bpf_map_type = 18;
+pub const BPF_MAP_TYPE_CGROUP_STORAGE_DEPRECATED: bpf_map_type = 19;
+pub const BPF_MAP_TYPE_CGROUP_STORAGE: bpf_map_type = 19;
+pub const BPF_MAP_TYPE_REUSEPORT_SOCKARRAY: bpf_map_type = 20;
+pub const BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE_DEPRECATED: bpf_map_type = 21;
+pub const BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE: bpf_map_type = 21;
+pub const BPF_MAP_TYPE_QUEUE: bpf_map_type = 22;
+pub const BPF_MAP_TYPE_STACK: bpf_map_type = 23;
+pub const BPF_MAP_TYPE_SK_STORAGE: bpf_map_type = 24;
+pub const BPF_MAP_TYPE_DEVMAP_HASH: bpf_map_type = 25;
+pub const BPF_MAP_TYPE_STRUCT_OPS: bpf_map_type = 26;
+pub const BPF_MAP_TYPE_RINGBUF: bpf_map_type = 27;
+pub const BPF_MAP_TYPE_INODE_STORAGE: bpf_map_type = 28;
+pub const BPF_MAP_TYPE_TASK_STORAGE: bpf_map_type = 29;
+pub const BPF_MAP_TYPE_BLOOM_FILTER: bpf_map_type = 30;
+pub const BPF_MAP_TYPE_USER_RINGBUF: bpf_map_type = 31;
+pub const BPF_MAP_TYPE_CGRP_STORAGE: bpf_map_type = 32;
+pub const BPF_MAP_TYPE_ARENA: bpf_map_type = 33;
+pub const __MAX_BPF_MAP_TYPE: bpf_map_type = 34;
+pub type bpf_map_type = ::std::os::raw::c_uint;
+pub const BPF_PROG_TYPE_UNSPEC: bpf_prog_type = 0;
+pub const BPF_PROG_TYPE_SOCKET_FILTER: bpf_prog_type = 1;
+pub const BPF_PROG_TYPE_KPROBE: bpf_prog_type = 2;
+pub const BPF_PROG_TYPE_SCHED_CLS: bpf_prog_type = 3;
+pub const BPF_PROG_TYPE_SCHED_ACT: bpf_prog_type = 4;
+pub const BPF_PROG_TYPE_TRACEPOINT: bpf_prog_type = 5;
+pub const BPF_PROG_TYPE_XDP: bpf_prog_type = 6;
+pub const BPF_PROG_TYPE_PERF_EVENT: bpf_prog_type = 7;
+pub const BPF_PROG_TYPE_CGROUP_SKB: bpf_prog_type = 8;
+pub const BPF_PROG_TYPE_CGROUP_SOCK: bpf_prog_type = 9;
+pub const BPF_PROG_TYPE_LWT_IN: bpf_prog_type = 10;
+pub const BPF_PROG_TYPE_LWT_OUT: bpf_prog_type = 11;
+pub const BPF_PROG_TYPE_LWT_XMIT: bpf_prog_type = 12;
+pub const BPF_PROG_TYPE_SOCK_OPS: bpf_prog_type = 13;
+pub const BPF_PROG_TYPE_SK_SKB: bpf_prog_type = 14;
+pub const BPF_PROG_TYPE_CGROUP_DEVICE: bpf_prog_type = 15;
+pub const BPF_PROG_TYPE_SK_MSG: bpf_prog_type = 16;
+pub const BPF_PROG_TYPE_RAW_TRACEPOINT: bpf_prog_type = 17;
+pub const BPF_PROG_TYPE_CGROUP_SOCK_ADDR: bpf_prog_type = 18;
+pub const BPF_PROG_TYPE_LWT_SEG6LOCAL: bpf_prog_type = 19;
+pub const BPF_PROG_TYPE_LIRC_MODE2: bpf_prog_type = 20;
+pub const BPF_PROG_TYPE_SK_REUSEPORT: bpf_prog_type = 21;
+pub const BPF_PROG_TYPE_FLOW_DISSECTOR: bpf_prog_type = 22;
+pub const BPF_PROG_TYPE_CGROUP_SYSCTL: bpf_prog_type = 23;
+pub const BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE: bpf_prog_type = 24;
+pub const BPF_PROG_TYPE_CGROUP_SOCKOPT: bpf_prog_type = 25;
+pub const BPF_PROG_TYPE_TRACING: bpf_prog_type = 26;
+pub const BPF_PROG_TYPE_STRUCT_OPS: bpf_prog_type = 27;
+pub const BPF_PROG_TYPE_EXT: bpf_prog_type = 28;
+pub const BPF_PROG_TYPE_LSM: bpf_prog_type = 29;
+pub const BPF_PROG_TYPE_SK_LOOKUP: bpf_prog_type = 30;
+pub const BPF_PROG_TYPE_SYSCALL: bpf_prog_type = 31;
+pub const BPF_PROG_TYPE_NETFILTER: bpf_prog_type = 32;
+pub const __MAX_BPF_PROG_TYPE: bpf_prog_type = 33;
+pub type bpf_prog_type = ::std::os::raw::c_uint;
+pub const BPF_CGROUP_INET_INGRESS: bpf_attach_type = 0;
+pub const BPF_CGROUP_INET_EGRESS: bpf_attach_type = 1;
+pub const BPF_CGROUP_INET_SOCK_CREATE: bpf_attach_type = 2;
+pub const BPF_CGROUP_SOCK_OPS: bpf_attach_type = 3;
+pub const BPF_SK_SKB_STREAM_PARSER: bpf_attach_type = 4;
+pub const BPF_SK_SKB_STREAM_VERDICT: bpf_attach_type = 5;
+pub const BPF_CGROUP_DEVICE: bpf_attach_type = 6;
+pub const BPF_SK_MSG_VERDICT: bpf_attach_type = 7;
+pub const BPF_CGROUP_INET4_BIND: bpf_attach_type = 8;
+pub const BPF_CGROUP_INET6_BIND: bpf_attach_type = 9;
+pub const BPF_CGROUP_INET4_CONNECT: bpf_attach_type = 10;
+pub const BPF_CGROUP_INET6_CONNECT: bpf_attach_type = 11;
+pub const BPF_CGROUP_INET4_POST_BIND: bpf_attach_type = 12;
+pub const BPF_CGROUP_INET6_POST_BIND: bpf_attach_type = 13;
+pub const BPF_CGROUP_UDP4_SENDMSG: bpf_attach_type = 14;
+pub const BPF_CGROUP_UDP6_SENDMSG: bpf_attach_type = 15;
+pub const BPF_LIRC_MODE2: bpf_attach_type = 16;
+pub const BPF_FLOW_DISSECTOR: bpf_attach_type = 17;
+pub const BPF_CGROUP_SYSCTL: bpf_attach_type = 18;
+pub const BPF_CGROUP_UDP4_RECVMSG: bpf_attach_type = 19;
+pub const BPF_CGROUP_UDP6_RECVMSG: bpf_attach_type = 20;
+pub const BPF_CGROUP_GETSOCKOPT: bpf_attach_type = 21;
+pub const BPF_CGROUP_SETSOCKOPT: bpf_attach_type = 22;
+pub const BPF_TRACE_RAW_TP: bpf_attach_type = 23;
+pub const BPF_TRACE_FENTRY: bpf_attach_type = 24;
+pub const BPF_TRACE_FEXIT: bpf_attach_type = 25;
+pub const BPF_MODIFY_RETURN: bpf_attach_type = 26;
+pub const BPF_LSM_MAC: bpf_attach_type = 27;
+pub const BPF_TRACE_ITER: bpf_attach_type = 28;
+pub const BPF_CGROUP_INET4_GETPEERNAME: bpf_attach_type = 29;
+pub const BPF_CGROUP_INET6_GETPEERNAME: bpf_attach_type = 30;
+pub const BPF_CGROUP_INET4_GETSOCKNAME: bpf_attach_type = 31;
+pub const BPF_CGROUP_INET6_GETSOCKNAME: bpf_attach_type = 32;
+pub const BPF_XDP_DEVMAP: bpf_attach_type = 33;
+pub const BPF_CGROUP_INET_SOCK_RELEASE: bpf_attach_type = 34;
+pub const BPF_XDP_CPUMAP: bpf_attach_type = 35;
+pub const BPF_SK_LOOKUP: bpf_attach_type = 36;
+pub const BPF_XDP: bpf_attach_type = 37;
+pub const BPF_SK_SKB_VERDICT: bpf_attach_type = 38;
+pub const BPF_SK_REUSEPORT_SELECT: bpf_attach_type = 39;
+pub const BPF_SK_REUSEPORT_SELECT_OR_MIGRATE: bpf_attach_type = 40;
+pub const BPF_PERF_EVENT: bpf_attach_type = 41;
+pub const BPF_TRACE_KPROBE_MULTI: bpf_attach_type = 42;
+pub const BPF_LSM_CGROUP: bpf_attach_type = 43;
+pub const BPF_STRUCT_OPS: bpf_attach_type = 44;
+pub const BPF_NETFILTER: bpf_attach_type = 45;
+pub const BPF_TCX_INGRESS: bpf_attach_type = 46;
+pub const BPF_TCX_EGRESS: bpf_attach_type = 47;
+pub const BPF_TRACE_UPROBE_MULTI: bpf_attach_type = 48;
+pub const BPF_CGROUP_UNIX_CONNECT: bpf_attach_type = 49;
+pub const BPF_CGROUP_UNIX_SENDMSG: bpf_attach_type = 50;
+pub const BPF_CGROUP_UNIX_RECVMSG: bpf_attach_type = 51;
+pub const BPF_CGROUP_UNIX_GETPEERNAME: bpf_attach_type = 52;
+pub const BPF_CGROUP_UNIX_GETSOCKNAME: bpf_attach_type = 53;
+pub const BPF_NETKIT_PRIMARY: bpf_attach_type = 54;
+pub const BPF_NETKIT_PEER: bpf_attach_type = 55;
+pub const __MAX_BPF_ATTACH_TYPE: bpf_attach_type = 56;
+pub type bpf_attach_type = ::std::os::raw::c_uint;
+pub const BPF_LINK_TYPE_UNSPEC: bpf_link_type = 0;
+pub const BPF_LINK_TYPE_RAW_TRACEPOINT: bpf_link_type = 1;
+pub const BPF_LINK_TYPE_TRACING: bpf_link_type = 2;
+pub const BPF_LINK_TYPE_CGROUP: bpf_link_type = 3;
+pub const BPF_LINK_TYPE_ITER: bpf_link_type = 4;
+pub const BPF_LINK_TYPE_NETNS: bpf_link_type = 5;
+pub const BPF_LINK_TYPE_XDP: bpf_link_type = 6;
+pub const BPF_LINK_TYPE_PERF_EVENT: bpf_link_type = 7;
+pub const BPF_LINK_TYPE_KPROBE_MULTI: bpf_link_type = 8;
+pub const BPF_LINK_TYPE_STRUCT_OPS: bpf_link_type = 9;
+pub const BPF_LINK_TYPE_NETFILTER: bpf_link_type = 10;
+pub const BPF_LINK_TYPE_TCX: bpf_link_type = 11;
+pub const BPF_LINK_TYPE_UPROBE_MULTI: bpf_link_type = 12;
+pub const BPF_LINK_TYPE_NETKIT: bpf_link_type = 13;
+pub const __MAX_BPF_LINK_TYPE: bpf_link_type = 14;
+pub type bpf_link_type = ::std::os::raw::c_uint;
+pub const BPF_PERF_EVENT_UNSPEC: bpf_perf_event_type = 0;
+pub const BPF_PERF_EVENT_UPROBE: bpf_perf_event_type = 1;
+pub const BPF_PERF_EVENT_URETPROBE: bpf_perf_event_type = 2;
+pub const BPF_PERF_EVENT_KPROBE: bpf_perf_event_type = 3;
+pub const BPF_PERF_EVENT_KRETPROBE: bpf_perf_event_type = 4;
+pub const BPF_PERF_EVENT_TRACEPOINT: bpf_perf_event_type = 5;
+pub const BPF_PERF_EVENT_EVENT: bpf_perf_event_type = 6;
+pub type bpf_perf_event_type = ::std::os::raw::c_uint;
+pub const BPF_F_KPROBE_MULTI_RETURN: _bindgen_ty_62 = 1;
+pub type _bindgen_ty_62 = ::std::os::raw::c_uint;
+pub const BPF_F_UPROBE_MULTI_RETURN: _bindgen_ty_63 = 1;
+pub type _bindgen_ty_63 = ::std::os::raw::c_uint;
+pub const BPF_ADDR_SPACE_CAST: bpf_addr_space_cast = 1;
+pub type bpf_addr_space_cast = ::std::os::raw::c_uint;
+pub const BPF_ANY: _bindgen_ty_64 = 0;
+pub const BPF_NOEXIST: _bindgen_ty_64 = 1;
+pub const BPF_EXIST: _bindgen_ty_64 = 2;
+pub const BPF_F_LOCK: _bindgen_ty_64 = 4;
+pub type _bindgen_ty_64 = ::std::os::raw::c_uint;
+pub const BPF_F_NO_PREALLOC: _bindgen_ty_65 = 1;
+pub const BPF_F_NO_COMMON_LRU: _bindgen_ty_65 = 2;
+pub const BPF_F_NUMA_NODE: _bindgen_ty_65 = 4;
+pub const BPF_F_RDONLY: _bindgen_ty_65 = 8;
+pub const BPF_F_WRONLY: _bindgen_ty_65 = 16;
+pub const BPF_F_STACK_BUILD_ID: _bindgen_ty_65 = 32;
+pub const BPF_F_ZERO_SEED: _bindgen_ty_65 = 64;
+pub const BPF_F_RDONLY_PROG: _bindgen_ty_65 = 128;
+pub const BPF_F_WRONLY_PROG: _bindgen_ty_65 = 256;
+pub const BPF_F_CLONE: _bindgen_ty_65 = 512;
+pub const BPF_F_MMAPABLE: _bindgen_ty_65 = 1024;
+pub const BPF_F_PRESERVE_ELEMS: _bindgen_ty_65 = 2048;
+pub const BPF_F_INNER_MAP: _bindgen_ty_65 = 4096;
+pub const BPF_F_LINK: _bindgen_ty_65 = 8192;
+pub const BPF_F_PATH_FD: _bindgen_ty_65 = 16384;
+pub const BPF_F_VTYPE_BTF_OBJ_FD: _bindgen_ty_65 = 32768;
+pub const BPF_F_TOKEN_FD: _bindgen_ty_65 = 65536;
+pub const BPF_F_SEGV_ON_FAULT: _bindgen_ty_65 = 131072;
+pub const BPF_F_NO_USER_CONV: _bindgen_ty_65 = 262144;
+pub type _bindgen_ty_65 = ::std::os::raw::c_uint;
+pub const BPF_STATS_RUN_TIME: bpf_stats_type = 0;
+pub type bpf_stats_type = ::std::os::raw::c_uint;
+pub const BPF_STACK_BUILD_ID_EMPTY: bpf_stack_build_id_status = 0;
+pub const BPF_STACK_BUILD_ID_VALID: bpf_stack_build_id_status = 1;
+pub const BPF_STACK_BUILD_ID_IP: bpf_stack_build_id_status = 2;
+pub type bpf_stack_build_id_status = ::std::os::raw::c_uint;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct bpf_stack_build_id {
+    pub status: __s32,
+    pub build_id: [::std::os::raw::c_uchar; 20usize],
+    pub __bindgen_anon_1: bpf_stack_build_id__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_stack_build_id__bindgen_ty_1 {
+    pub offset: __u64,
+    pub ip: __u64,
+}
+impl Default for bpf_stack_build_id__bindgen_ty_1 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+impl Default for bpf_stack_build_id {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_attr {
+    pub __bindgen_anon_1: bpf_attr__bindgen_ty_1,
+    pub __bindgen_anon_2: bpf_attr__bindgen_ty_2,
+    pub batch: bpf_attr__bindgen_ty_3,
+    pub __bindgen_anon_3: bpf_attr__bindgen_ty_4,
+    pub __bindgen_anon_4: bpf_attr__bindgen_ty_5,
+    pub __bindgen_anon_5: bpf_attr__bindgen_ty_6,
+    pub test: bpf_attr__bindgen_ty_7,
+    pub __bindgen_anon_6: bpf_attr__bindgen_ty_8,
+    pub info: bpf_attr__bindgen_ty_9,
+    pub query: bpf_attr__bindgen_ty_10,
+    pub raw_tracepoint: bpf_attr__bindgen_ty_11,
+    pub __bindgen_anon_7: bpf_attr__bindgen_ty_12,
+    pub task_fd_query: bpf_attr__bindgen_ty_13,
+    pub link_create: bpf_attr__bindgen_ty_14,
+    pub link_update: bpf_attr__bindgen_ty_15,
+    pub link_detach: bpf_attr__bindgen_ty_16,
+    pub enable_stats: bpf_attr__bindgen_ty_17,
+    pub iter_create: bpf_attr__bindgen_ty_18,
+    pub prog_bind_map: bpf_attr__bindgen_ty_19,
+    pub token_create: bpf_attr__bindgen_ty_20,
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_attr__bindgen_ty_1 {
+    pub map_type: __u32,
+    pub key_size: __u32,
+    pub value_size: __u32,
+    pub max_entries: __u32,
+    pub map_flags: __u32,
+    pub inner_map_fd: __u32,
+    pub numa_node: __u32,
+    pub map_name: [::std::os::raw::c_char; 16usize],
+    pub map_ifindex: __u32,
+    pub btf_fd: __u32,
+    pub btf_key_type_id: __u32,
+    pub btf_value_type_id: __u32,
+    pub btf_vmlinux_value_type_id: __u32,
+    pub map_extra: __u64,
+    pub value_type_btf_obj_fd: __s32,
+    pub map_token_fd: __s32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct bpf_attr__bindgen_ty_2 {
+    pub map_fd: __u32,
+    pub __bindgen_padding_0: [u8; 4usize],
+    pub key: __u64,
+    pub __bindgen_anon_1: bpf_attr__bindgen_ty_2__bindgen_ty_1,
+    pub flags: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_attr__bindgen_ty_2__bindgen_ty_1 {
+    pub value: __u64,
+    pub next_key: __u64,
+}
+impl Default for bpf_attr__bindgen_ty_2__bindgen_ty_1 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+impl Default for bpf_attr__bindgen_ty_2 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_attr__bindgen_ty_3 {
+    pub in_batch: __u64,
+    pub out_batch: __u64,
+    pub keys: __u64,
+    pub values: __u64,
+    pub count: __u32,
+    pub map_fd: __u32,
+    pub elem_flags: __u64,
+    pub flags: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct bpf_attr__bindgen_ty_4 {
+    pub prog_type: __u32,
+    pub insn_cnt: __u32,
+    pub insns: __u64,
+    pub license: __u64,
+    pub log_level: __u32,
+    pub log_size: __u32,
+    pub log_buf: __u64,
+    pub kern_version: __u32,
+    pub prog_flags: __u32,
+    pub prog_name: [::std::os::raw::c_char; 16usize],
+    pub prog_ifindex: __u32,
+    pub expected_attach_type: __u32,
+    pub prog_btf_fd: __u32,
+    pub func_info_rec_size: __u32,
+    pub func_info: __u64,
+    pub func_info_cnt: __u32,
+    pub line_info_rec_size: __u32,
+    pub line_info: __u64,
+    pub line_info_cnt: __u32,
+    pub attach_btf_id: __u32,
+    pub __bindgen_anon_1: bpf_attr__bindgen_ty_4__bindgen_ty_1,
+    pub core_relo_cnt: __u32,
+    pub fd_array: __u64,
+    pub core_relos: __u64,
+    pub core_relo_rec_size: __u32,
+    pub log_true_size: __u32,
+    pub prog_token_fd: __s32,
+    pub __bindgen_padding_0: [u8; 4usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_attr__bindgen_ty_4__bindgen_ty_1 {
+    pub attach_prog_fd: __u32,
+    pub attach_btf_obj_fd: __u32,
+}
+impl Default for bpf_attr__bindgen_ty_4__bindgen_ty_1 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+impl Default for bpf_attr__bindgen_ty_4 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_attr__bindgen_ty_5 {
+    pub pathname: __u64,
+    pub bpf_fd: __u32,
+    pub file_flags: __u32,
+    pub path_fd: __s32,
+    pub __bindgen_padding_0: [u8; 4usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct bpf_attr__bindgen_ty_6 {
+    pub __bindgen_anon_1: bpf_attr__bindgen_ty_6__bindgen_ty_1,
+    pub attach_bpf_fd: __u32,
+    pub attach_type: __u32,
+    pub attach_flags: __u32,
+    pub replace_bpf_fd: __u32,
+    pub __bindgen_anon_2: bpf_attr__bindgen_ty_6__bindgen_ty_2,
+    pub expected_revision: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_attr__bindgen_ty_6__bindgen_ty_1 {
+    pub target_fd: __u32,
+    pub target_ifindex: __u32,
+}
+impl Default for bpf_attr__bindgen_ty_6__bindgen_ty_1 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_attr__bindgen_ty_6__bindgen_ty_2 {
+    pub relative_fd: __u32,
+    pub relative_id: __u32,
+}
+impl Default for bpf_attr__bindgen_ty_6__bindgen_ty_2 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+impl Default for bpf_attr__bindgen_ty_6 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_attr__bindgen_ty_7 {
+    pub prog_fd: __u32,
+    pub retval: __u32,
+    pub data_size_in: __u32,
+    pub data_size_out: __u32,
+    pub data_in: __u64,
+    pub data_out: __u64,
+    pub repeat: __u32,
+    pub duration: __u32,
+    pub ctx_size_in: __u32,
+    pub ctx_size_out: __u32,
+    pub ctx_in: __u64,
+    pub ctx_out: __u64,
+    pub flags: __u32,
+    pub cpu: __u32,
+    pub batch_size: __u32,
+    pub __bindgen_padding_0: [u8; 4usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct bpf_attr__bindgen_ty_8 {
+    pub __bindgen_anon_1: bpf_attr__bindgen_ty_8__bindgen_ty_1,
+    pub next_id: __u32,
+    pub open_flags: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_attr__bindgen_ty_8__bindgen_ty_1 {
+    pub start_id: __u32,
+    pub prog_id: __u32,
+    pub map_id: __u32,
+    pub btf_id: __u32,
+    pub link_id: __u32,
+}
+impl Default for bpf_attr__bindgen_ty_8__bindgen_ty_1 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+impl Default for bpf_attr__bindgen_ty_8 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_attr__bindgen_ty_9 {
+    pub bpf_fd: __u32,
+    pub info_len: __u32,
+    pub info: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct bpf_attr__bindgen_ty_10 {
+    pub __bindgen_anon_1: bpf_attr__bindgen_ty_10__bindgen_ty_1,
+    pub attach_type: __u32,
+    pub query_flags: __u32,
+    pub attach_flags: __u32,
+    pub prog_ids: __u64,
+    pub __bindgen_anon_2: bpf_attr__bindgen_ty_10__bindgen_ty_2,
+    pub _bitfield_align_1: [u8; 0],
+    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+    pub prog_attach_flags: __u64,
+    pub link_ids: __u64,
+    pub link_attach_flags: __u64,
+    pub revision: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_attr__bindgen_ty_10__bindgen_ty_1 {
+    pub target_fd: __u32,
+    pub target_ifindex: __u32,
+}
+impl Default for bpf_attr__bindgen_ty_10__bindgen_ty_1 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_attr__bindgen_ty_10__bindgen_ty_2 {
+    pub prog_cnt: __u32,
+    pub count: __u32,
+}
+impl Default for bpf_attr__bindgen_ty_10__bindgen_ty_2 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+impl Default for bpf_attr__bindgen_ty_10 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+impl bpf_attr__bindgen_ty_10 {
+    #[inline]
+    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 4usize]> {
+        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+        __bindgen_bitfield_unit
+    }
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_attr__bindgen_ty_11 {
+    pub name: __u64,
+    pub prog_fd: __u32,
+    pub _bitfield_align_1: [u8; 0],
+    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+    pub cookie: __u64,
+}
+impl bpf_attr__bindgen_ty_11 {
+    #[inline]
+    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 4usize]> {
+        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+        __bindgen_bitfield_unit
+    }
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_attr__bindgen_ty_12 {
+    pub btf: __u64,
+    pub btf_log_buf: __u64,
+    pub btf_size: __u32,
+    pub btf_log_size: __u32,
+    pub btf_log_level: __u32,
+    pub btf_log_true_size: __u32,
+    pub btf_flags: __u32,
+    pub btf_token_fd: __s32,
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_attr__bindgen_ty_13 {
+    pub pid: __u32,
+    pub fd: __u32,
+    pub flags: __u32,
+    pub buf_len: __u32,
+    pub buf: __u64,
+    pub prog_id: __u32,
+    pub fd_type: __u32,
+    pub probe_offset: __u64,
+    pub probe_addr: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct bpf_attr__bindgen_ty_14 {
+    pub __bindgen_anon_1: bpf_attr__bindgen_ty_14__bindgen_ty_1,
+    pub __bindgen_anon_2: bpf_attr__bindgen_ty_14__bindgen_ty_2,
+    pub attach_type: __u32,
+    pub flags: __u32,
+    pub __bindgen_anon_3: bpf_attr__bindgen_ty_14__bindgen_ty_3,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_attr__bindgen_ty_14__bindgen_ty_1 {
+    pub prog_fd: __u32,
+    pub map_fd: __u32,
+}
+impl Default for bpf_attr__bindgen_ty_14__bindgen_ty_1 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_attr__bindgen_ty_14__bindgen_ty_2 {
+    pub target_fd: __u32,
+    pub target_ifindex: __u32,
+}
+impl Default for bpf_attr__bindgen_ty_14__bindgen_ty_2 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_attr__bindgen_ty_14__bindgen_ty_3 {
+    pub target_btf_id: __u32,
+    pub __bindgen_anon_1: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_1,
+    pub perf_event: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_2,
+    pub kprobe_multi: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_3,
+    pub tracing: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_4,
+    pub netfilter: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_5,
+    pub tcx: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_6,
+    pub uprobe_multi: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_7,
+    pub netkit: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_8,
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_1 {
+    pub iter_info: __u64,
+    pub iter_info_len: __u32,
+    pub __bindgen_padding_0: [u8; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_2 {
+    pub bpf_cookie: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_3 {
+    pub flags: __u32,
+    pub cnt: __u32,
+    pub syms: __u64,
+    pub addrs: __u64,
+    pub cookies: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_4 {
+    pub target_btf_id: __u32,
+    pub __bindgen_padding_0: [u8; 4usize],
+    pub cookie: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_5 {
+    pub pf: __u32,
+    pub hooknum: __u32,
+    pub priority: __s32,
+    pub flags: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_6 {
+    pub __bindgen_anon_1: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_6__bindgen_ty_1,
+    pub __bindgen_padding_0: [u8; 4usize],
+    pub expected_revision: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_6__bindgen_ty_1 {
+    pub relative_fd: __u32,
+    pub relative_id: __u32,
+}
+impl Default for bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_6__bindgen_ty_1 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+impl Default for bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_6 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_7 {
+    pub path: __u64,
+    pub offsets: __u64,
+    pub ref_ctr_offsets: __u64,
+    pub cookies: __u64,
+    pub cnt: __u32,
+    pub flags: __u32,
+    pub pid: __u32,
+    pub __bindgen_padding_0: [u8; 4usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_8 {
+    pub __bindgen_anon_1: bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_8__bindgen_ty_1,
+    pub __bindgen_padding_0: [u8; 4usize],
+    pub expected_revision: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_8__bindgen_ty_1 {
+    pub relative_fd: __u32,
+    pub relative_id: __u32,
+}
+impl Default for bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_8__bindgen_ty_1 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+impl Default for bpf_attr__bindgen_ty_14__bindgen_ty_3__bindgen_ty_8 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+impl Default for bpf_attr__bindgen_ty_14__bindgen_ty_3 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+impl Default for bpf_attr__bindgen_ty_14 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct bpf_attr__bindgen_ty_15 {
+    pub link_fd: __u32,
+    pub __bindgen_anon_1: bpf_attr__bindgen_ty_15__bindgen_ty_1,
+    pub flags: __u32,
+    pub __bindgen_anon_2: bpf_attr__bindgen_ty_15__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_attr__bindgen_ty_15__bindgen_ty_1 {
+    pub new_prog_fd: __u32,
+    pub new_map_fd: __u32,
+}
+impl Default for bpf_attr__bindgen_ty_15__bindgen_ty_1 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_attr__bindgen_ty_15__bindgen_ty_2 {
+    pub old_prog_fd: __u32,
+    pub old_map_fd: __u32,
+}
+impl Default for bpf_attr__bindgen_ty_15__bindgen_ty_2 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+impl Default for bpf_attr__bindgen_ty_15 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_attr__bindgen_ty_16 {
+    pub link_fd: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_attr__bindgen_ty_17 {
+    pub type_: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_attr__bindgen_ty_18 {
+    pub link_fd: __u32,
+    pub flags: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_attr__bindgen_ty_19 {
+    pub prog_fd: __u32,
+    pub map_fd: __u32,
+    pub flags: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_attr__bindgen_ty_20 {
+    pub flags: __u32,
+    pub bpffs_fd: __u32,
+}
+impl Default for bpf_attr {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+pub const BPF_FUNC_unspec: bpf_func_id = 0;
+pub const BPF_FUNC_map_lookup_elem: bpf_func_id = 1;
+pub const BPF_FUNC_map_update_elem: bpf_func_id = 2;
+pub const BPF_FUNC_map_delete_elem: bpf_func_id = 3;
+pub const BPF_FUNC_probe_read: bpf_func_id = 4;
+pub const BPF_FUNC_ktime_get_ns: bpf_func_id = 5;
+pub const BPF_FUNC_trace_printk: bpf_func_id = 6;
+pub const BPF_FUNC_get_prandom_u32: bpf_func_id = 7;
+pub const BPF_FUNC_get_smp_processor_id: bpf_func_id = 8;
+pub const BPF_FUNC_skb_store_bytes: bpf_func_id = 9;
+pub const BPF_FUNC_l3_csum_replace: bpf_func_id = 10;
+pub const BPF_FUNC_l4_csum_replace: bpf_func_id = 11;
+pub const BPF_FUNC_tail_call: bpf_func_id = 12;
+pub const BPF_FUNC_clone_redirect: bpf_func_id = 13;
+pub const BPF_FUNC_get_current_pid_tgid: bpf_func_id = 14;
+pub const BPF_FUNC_get_current_uid_gid: bpf_func_id = 15;
+pub const BPF_FUNC_get_current_comm: bpf_func_id = 16;
+pub const BPF_FUNC_get_cgroup_classid: bpf_func_id = 17;
+pub const BPF_FUNC_skb_vlan_push: bpf_func_id = 18;
+pub const BPF_FUNC_skb_vlan_pop: bpf_func_id = 19;
+pub const BPF_FUNC_skb_get_tunnel_key: bpf_func_id = 20;
+pub const BPF_FUNC_skb_set_tunnel_key: bpf_func_id = 21;
+pub const BPF_FUNC_perf_event_read: bpf_func_id = 22;
+pub const BPF_FUNC_redirect: bpf_func_id = 23;
+pub const BPF_FUNC_get_route_realm: bpf_func_id = 24;
+pub const BPF_FUNC_perf_event_output: bpf_func_id = 25;
+pub const BPF_FUNC_skb_load_bytes: bpf_func_id = 26;
+pub const BPF_FUNC_get_stackid: bpf_func_id = 27;
+pub const BPF_FUNC_csum_diff: bpf_func_id = 28;
+pub const BPF_FUNC_skb_get_tunnel_opt: bpf_func_id = 29;
+pub const BPF_FUNC_skb_set_tunnel_opt: bpf_func_id = 30;
+pub const BPF_FUNC_skb_change_proto: bpf_func_id = 31;
+pub const BPF_FUNC_skb_change_type: bpf_func_id = 32;
+pub const BPF_FUNC_skb_under_cgroup: bpf_func_id = 33;
+pub const BPF_FUNC_get_hash_recalc: bpf_func_id = 34;
+pub const BPF_FUNC_get_current_task: bpf_func_id = 35;
+pub const BPF_FUNC_probe_write_user: bpf_func_id = 36;
+pub const BPF_FUNC_current_task_under_cgroup: bpf_func_id = 37;
+pub const BPF_FUNC_skb_change_tail: bpf_func_id = 38;
+pub const BPF_FUNC_skb_pull_data: bpf_func_id = 39;
+pub const BPF_FUNC_csum_update: bpf_func_id = 40;
+pub const BPF_FUNC_set_hash_invalid: bpf_func_id = 41;
+pub const BPF_FUNC_get_numa_node_id: bpf_func_id = 42;
+pub const BPF_FUNC_skb_change_head: bpf_func_id = 43;
+pub const BPF_FUNC_xdp_adjust_head: bpf_func_id = 44;
+pub const BPF_FUNC_probe_read_str: bpf_func_id = 45;
+pub const BPF_FUNC_get_socket_cookie: bpf_func_id = 46;
+pub const BPF_FUNC_get_socket_uid: bpf_func_id = 47;
+pub const BPF_FUNC_set_hash: bpf_func_id = 48;
+pub const BPF_FUNC_setsockopt: bpf_func_id = 49;
+pub const BPF_FUNC_skb_adjust_room: bpf_func_id = 50;
+pub const BPF_FUNC_redirect_map: bpf_func_id = 51;
+pub const BPF_FUNC_sk_redirect_map: bpf_func_id = 52;
+pub const BPF_FUNC_sock_map_update: bpf_func_id = 53;
+pub const BPF_FUNC_xdp_adjust_meta: bpf_func_id = 54;
+pub const BPF_FUNC_perf_event_read_value: bpf_func_id = 55;
+pub const BPF_FUNC_perf_prog_read_value: bpf_func_id = 56;
+pub const BPF_FUNC_getsockopt: bpf_func_id = 57;
+pub const BPF_FUNC_override_return: bpf_func_id = 58;
+pub const BPF_FUNC_sock_ops_cb_flags_set: bpf_func_id = 59;
+pub const BPF_FUNC_msg_redirect_map: bpf_func_id = 60;
+pub const BPF_FUNC_msg_apply_bytes: bpf_func_id = 61;
+pub const BPF_FUNC_msg_cork_bytes: bpf_func_id = 62;
+pub const BPF_FUNC_msg_pull_data: bpf_func_id = 63;
+pub const BPF_FUNC_bind: bpf_func_id = 64;
+pub const BPF_FUNC_xdp_adjust_tail: bpf_func_id = 65;
+pub const BPF_FUNC_skb_get_xfrm_state: bpf_func_id = 66;
+pub const BPF_FUNC_get_stack: bpf_func_id = 67;
+pub const BPF_FUNC_skb_load_bytes_relative: bpf_func_id = 68;
+pub const BPF_FUNC_fib_lookup: bpf_func_id = 69;
+pub const BPF_FUNC_sock_hash_update: bpf_func_id = 70;
+pub const BPF_FUNC_msg_redirect_hash: bpf_func_id = 71;
+pub const BPF_FUNC_sk_redirect_hash: bpf_func_id = 72;
+pub const BPF_FUNC_lwt_push_encap: bpf_func_id = 73;
+pub const BPF_FUNC_lwt_seg6_store_bytes: bpf_func_id = 74;
+pub const BPF_FUNC_lwt_seg6_adjust_srh: bpf_func_id = 75;
+pub const BPF_FUNC_lwt_seg6_action: bpf_func_id = 76;
+pub const BPF_FUNC_rc_repeat: bpf_func_id = 77;
+pub const BPF_FUNC_rc_keydown: bpf_func_id = 78;
+pub const BPF_FUNC_skb_cgroup_id: bpf_func_id = 79;
+pub const BPF_FUNC_get_current_cgroup_id: bpf_func_id = 80;
+pub const BPF_FUNC_get_local_storage: bpf_func_id = 81;
+pub const BPF_FUNC_sk_select_reuseport: bpf_func_id = 82;
+pub const BPF_FUNC_skb_ancestor_cgroup_id: bpf_func_id = 83;
+pub const BPF_FUNC_sk_lookup_tcp: bpf_func_id = 84;
+pub const BPF_FUNC_sk_lookup_udp: bpf_func_id = 85;
+pub const BPF_FUNC_sk_release: bpf_func_id = 86;
+pub const BPF_FUNC_map_push_elem: bpf_func_id = 87;
+pub const BPF_FUNC_map_pop_elem: bpf_func_id = 88;
+pub const BPF_FUNC_map_peek_elem: bpf_func_id = 89;
+pub const BPF_FUNC_msg_push_data: bpf_func_id = 90;
+pub const BPF_FUNC_msg_pop_data: bpf_func_id = 91;
+pub const BPF_FUNC_rc_pointer_rel: bpf_func_id = 92;
+pub const BPF_FUNC_spin_lock: bpf_func_id = 93;
+pub const BPF_FUNC_spin_unlock: bpf_func_id = 94;
+pub const BPF_FUNC_sk_fullsock: bpf_func_id = 95;
+pub const BPF_FUNC_tcp_sock: bpf_func_id = 96;
+pub const BPF_FUNC_skb_ecn_set_ce: bpf_func_id = 97;
+pub const BPF_FUNC_get_listener_sock: bpf_func_id = 98;
+pub const BPF_FUNC_skc_lookup_tcp: bpf_func_id = 99;
+pub const BPF_FUNC_tcp_check_syncookie: bpf_func_id = 100;
+pub const BPF_FUNC_sysctl_get_name: bpf_func_id = 101;
+pub const BPF_FUNC_sysctl_get_current_value: bpf_func_id = 102;
+pub const BPF_FUNC_sysctl_get_new_value: bpf_func_id = 103;
+pub const BPF_FUNC_sysctl_set_new_value: bpf_func_id = 104;
+pub const BPF_FUNC_strtol: bpf_func_id = 105;
+pub const BPF_FUNC_strtoul: bpf_func_id = 106;
+pub const BPF_FUNC_sk_storage_get: bpf_func_id = 107;
+pub const BPF_FUNC_sk_storage_delete: bpf_func_id = 108;
+pub const BPF_FUNC_send_signal: bpf_func_id = 109;
+pub const BPF_FUNC_tcp_gen_syncookie: bpf_func_id = 110;
+pub const BPF_FUNC_skb_output: bpf_func_id = 111;
+pub const BPF_FUNC_probe_read_user: bpf_func_id = 112;
+pub const BPF_FUNC_probe_read_kernel: bpf_func_id = 113;
+pub const BPF_FUNC_probe_read_user_str: bpf_func_id = 114;
+pub const BPF_FUNC_probe_read_kernel_str: bpf_func_id = 115;
+pub const BPF_FUNC_tcp_send_ack: bpf_func_id = 116;
+pub const BPF_FUNC_send_signal_thread: bpf_func_id = 117;
+pub const BPF_FUNC_jiffies64: bpf_func_id = 118;
+pub const BPF_FUNC_read_branch_records: bpf_func_id = 119;
+pub const BPF_FUNC_get_ns_current_pid_tgid: bpf_func_id = 120;
+pub const BPF_FUNC_xdp_output: bpf_func_id = 121;
+pub const BPF_FUNC_get_netns_cookie: bpf_func_id = 122;
+pub const BPF_FUNC_get_current_ancestor_cgroup_id: bpf_func_id = 123;
+pub const BPF_FUNC_sk_assign: bpf_func_id = 124;
+pub const BPF_FUNC_ktime_get_boot_ns: bpf_func_id = 125;
+pub const BPF_FUNC_seq_printf: bpf_func_id = 126;
+pub const BPF_FUNC_seq_write: bpf_func_id = 127;
+pub const BPF_FUNC_sk_cgroup_id: bpf_func_id = 128;
+pub const BPF_FUNC_sk_ancestor_cgroup_id: bpf_func_id = 129;
+pub const BPF_FUNC_ringbuf_output: bpf_func_id = 130;
+pub const BPF_FUNC_ringbuf_reserve: bpf_func_id = 131;
+pub const BPF_FUNC_ringbuf_submit: bpf_func_id = 132;
+pub const BPF_FUNC_ringbuf_discard: bpf_func_id = 133;
+pub const BPF_FUNC_ringbuf_query: bpf_func_id = 134;
+pub const BPF_FUNC_csum_level: bpf_func_id = 135;
+pub const BPF_FUNC_skc_to_tcp6_sock: bpf_func_id = 136;
+pub const BPF_FUNC_skc_to_tcp_sock: bpf_func_id = 137;
+pub const BPF_FUNC_skc_to_tcp_timewait_sock: bpf_func_id = 138;
+pub const BPF_FUNC_skc_to_tcp_request_sock: bpf_func_id = 139;
+pub const BPF_FUNC_skc_to_udp6_sock: bpf_func_id = 140;
+pub const BPF_FUNC_get_task_stack: bpf_func_id = 141;
+pub const BPF_FUNC_load_hdr_opt: bpf_func_id = 142;
+pub const BPF_FUNC_store_hdr_opt: bpf_func_id = 143;
+pub const BPF_FUNC_reserve_hdr_opt: bpf_func_id = 144;
+pub const BPF_FUNC_inode_storage_get: bpf_func_id = 145;
+pub const BPF_FUNC_inode_storage_delete: bpf_func_id = 146;
+pub const BPF_FUNC_d_path: bpf_func_id = 147;
+pub const BPF_FUNC_copy_from_user: bpf_func_id = 148;
+pub const BPF_FUNC_snprintf_btf: bpf_func_id = 149;
+pub const BPF_FUNC_seq_printf_btf: bpf_func_id = 150;
+pub const BPF_FUNC_skb_cgroup_classid: bpf_func_id = 151;
+pub const BPF_FUNC_redirect_neigh: bpf_func_id = 152;
+pub const BPF_FUNC_per_cpu_ptr: bpf_func_id = 153;
+pub const BPF_FUNC_this_cpu_ptr: bpf_func_id = 154;
+pub const BPF_FUNC_redirect_peer: bpf_func_id = 155;
+pub const BPF_FUNC_task_storage_get: bpf_func_id = 156;
+pub const BPF_FUNC_task_storage_delete: bpf_func_id = 157;
+pub const BPF_FUNC_get_current_task_btf: bpf_func_id = 158;
+pub const BPF_FUNC_bprm_opts_set: bpf_func_id = 159;
+pub const BPF_FUNC_ktime_get_coarse_ns: bpf_func_id = 160;
+pub const BPF_FUNC_ima_inode_hash: bpf_func_id = 161;
+pub const BPF_FUNC_sock_from_file: bpf_func_id = 162;
+pub const BPF_FUNC_check_mtu: bpf_func_id = 163;
+pub const BPF_FUNC_for_each_map_elem: bpf_func_id = 164;
+pub const BPF_FUNC_snprintf: bpf_func_id = 165;
+pub const BPF_FUNC_sys_bpf: bpf_func_id = 166;
+pub const BPF_FUNC_btf_find_by_name_kind: bpf_func_id = 167;
+pub const BPF_FUNC_sys_close: bpf_func_id = 168;
+pub const BPF_FUNC_timer_init: bpf_func_id = 169;
+pub const BPF_FUNC_timer_set_callback: bpf_func_id = 170;
+pub const BPF_FUNC_timer_start: bpf_func_id = 171;
+pub const BPF_FUNC_timer_cancel: bpf_func_id = 172;
+pub const BPF_FUNC_get_func_ip: bpf_func_id = 173;
+pub const BPF_FUNC_get_attach_cookie: bpf_func_id = 174;
+pub const BPF_FUNC_task_pt_regs: bpf_func_id = 175;
+pub const BPF_FUNC_get_branch_snapshot: bpf_func_id = 176;
+pub const BPF_FUNC_trace_vprintk: bpf_func_id = 177;
+pub const BPF_FUNC_skc_to_unix_sock: bpf_func_id = 178;
+pub const BPF_FUNC_kallsyms_lookup_name: bpf_func_id = 179;
+pub const BPF_FUNC_find_vma: bpf_func_id = 180;
+pub const BPF_FUNC_loop: bpf_func_id = 181;
+pub const BPF_FUNC_strncmp: bpf_func_id = 182;
+pub const BPF_FUNC_get_func_arg: bpf_func_id = 183;
+pub const BPF_FUNC_get_func_ret: bpf_func_id = 184;
+pub const BPF_FUNC_get_func_arg_cnt: bpf_func_id = 185;
+pub const BPF_FUNC_get_retval: bpf_func_id = 186;
+pub const BPF_FUNC_set_retval: bpf_func_id = 187;
+pub const BPF_FUNC_xdp_get_buff_len: bpf_func_id = 188;
+pub const BPF_FUNC_xdp_load_bytes: bpf_func_id = 189;
+pub const BPF_FUNC_xdp_store_bytes: bpf_func_id = 190;
+pub const BPF_FUNC_copy_from_user_task: bpf_func_id = 191;
+pub const BPF_FUNC_skb_set_tstamp: bpf_func_id = 192;
+pub const BPF_FUNC_ima_file_hash: bpf_func_id = 193;
+pub const BPF_FUNC_kptr_xchg: bpf_func_id = 194;
+pub const BPF_FUNC_map_lookup_percpu_elem: bpf_func_id = 195;
+pub const BPF_FUNC_skc_to_mptcp_sock: bpf_func_id = 196;
+pub const BPF_FUNC_dynptr_from_mem: bpf_func_id = 197;
+pub const BPF_FUNC_ringbuf_reserve_dynptr: bpf_func_id = 198;
+pub const BPF_FUNC_ringbuf_submit_dynptr: bpf_func_id = 199;
+pub const BPF_FUNC_ringbuf_discard_dynptr: bpf_func_id = 200;
+pub const BPF_FUNC_dynptr_read: bpf_func_id = 201;
+pub const BPF_FUNC_dynptr_write: bpf_func_id = 202;
+pub const BPF_FUNC_dynptr_data: bpf_func_id = 203;
+pub const BPF_FUNC_tcp_raw_gen_syncookie_ipv4: bpf_func_id = 204;
+pub const BPF_FUNC_tcp_raw_gen_syncookie_ipv6: bpf_func_id = 205;
+pub const BPF_FUNC_tcp_raw_check_syncookie_ipv4: bpf_func_id = 206;
+pub const BPF_FUNC_tcp_raw_check_syncookie_ipv6: bpf_func_id = 207;
+pub const BPF_FUNC_ktime_get_tai_ns: bpf_func_id = 208;
+pub const BPF_FUNC_user_ringbuf_drain: bpf_func_id = 209;
+pub const BPF_FUNC_cgrp_storage_get: bpf_func_id = 210;
+pub const BPF_FUNC_cgrp_storage_delete: bpf_func_id = 211;
+pub const __BPF_FUNC_MAX_ID: bpf_func_id = 212;
+pub type bpf_func_id = ::std::os::raw::c_uint;
+pub const BPF_F_RECOMPUTE_CSUM: _bindgen_ty_66 = 1;
+pub const BPF_F_INVALIDATE_HASH: _bindgen_ty_66 = 2;
+pub type _bindgen_ty_66 = ::std::os::raw::c_uint;
+pub const BPF_F_HDR_FIELD_MASK: _bindgen_ty_67 = 15;
+pub type _bindgen_ty_67 = ::std::os::raw::c_uint;
+pub const BPF_F_PSEUDO_HDR: _bindgen_ty_68 = 16;
+pub const BPF_F_MARK_MANGLED_0: _bindgen_ty_68 = 32;
+pub const BPF_F_MARK_ENFORCE: _bindgen_ty_68 = 64;
+pub type _bindgen_ty_68 = ::std::os::raw::c_uint;
+pub const BPF_F_INGRESS: _bindgen_ty_69 = 1;
+pub type _bindgen_ty_69 = ::std::os::raw::c_uint;
+pub const BPF_F_TUNINFO_IPV6: _bindgen_ty_70 = 1;
+pub type _bindgen_ty_70 = ::std::os::raw::c_uint;
+pub const BPF_F_SKIP_FIELD_MASK: _bindgen_ty_71 = 255;
+pub const BPF_F_USER_STACK: _bindgen_ty_71 = 256;
+pub const BPF_F_FAST_STACK_CMP: _bindgen_ty_71 = 512;
+pub const BPF_F_REUSE_STACKID: _bindgen_ty_71 = 1024;
+pub const BPF_F_USER_BUILD_ID: _bindgen_ty_71 = 2048;
+pub type _bindgen_ty_71 = ::std::os::raw::c_uint;
+pub const BPF_F_ZERO_CSUM_TX: _bindgen_ty_72 = 2;
+pub const BPF_F_DONT_FRAGMENT: _bindgen_ty_72 = 4;
+pub const BPF_F_SEQ_NUMBER: _bindgen_ty_72 = 8;
+pub const BPF_F_NO_TUNNEL_KEY: _bindgen_ty_72 = 16;
+pub type _bindgen_ty_72 = ::std::os::raw::c_uint;
+pub const BPF_F_TUNINFO_FLAGS: _bindgen_ty_73 = 16;
+pub type _bindgen_ty_73 = ::std::os::raw::c_uint;
+pub const BPF_F_INDEX_MASK: _bindgen_ty_74 = 4294967295;
+pub const BPF_F_CURRENT_CPU: _bindgen_ty_74 = 4294967295;
+pub const BPF_F_CTXLEN_MASK: _bindgen_ty_74 = 4503595332403200;
+pub type _bindgen_ty_74 = ::std::os::raw::c_ulong;
+pub const BPF_F_CURRENT_NETNS: _bindgen_ty_75 = -1;
+pub type _bindgen_ty_75 = ::std::os::raw::c_int;
+pub const BPF_CSUM_LEVEL_QUERY: _bindgen_ty_76 = 0;
+pub const BPF_CSUM_LEVEL_INC: _bindgen_ty_76 = 1;
+pub const BPF_CSUM_LEVEL_DEC: _bindgen_ty_76 = 2;
+pub const BPF_CSUM_LEVEL_RESET: _bindgen_ty_76 = 3;
+pub type _bindgen_ty_76 = ::std::os::raw::c_uint;
+pub const BPF_F_ADJ_ROOM_FIXED_GSO: _bindgen_ty_77 = 1;
+pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV4: _bindgen_ty_77 = 2;
+pub const BPF_F_ADJ_ROOM_ENCAP_L3_IPV6: _bindgen_ty_77 = 4;
+pub const BPF_F_ADJ_ROOM_ENCAP_L4_GRE: _bindgen_ty_77 = 8;
+pub const BPF_F_ADJ_ROOM_ENCAP_L4_UDP: _bindgen_ty_77 = 16;
+pub const BPF_F_ADJ_ROOM_NO_CSUM_RESET: _bindgen_ty_77 = 32;
+pub const BPF_F_ADJ_ROOM_ENCAP_L2_ETH: _bindgen_ty_77 = 64;
+pub const BPF_F_ADJ_ROOM_DECAP_L3_IPV4: _bindgen_ty_77 = 128;
+pub const BPF_F_ADJ_ROOM_DECAP_L3_IPV6: _bindgen_ty_77 = 256;
+pub type _bindgen_ty_77 = ::std::os::raw::c_uint;
+pub const BPF_ADJ_ROOM_ENCAP_L2_MASK: _bindgen_ty_78 = 255;
+pub const BPF_ADJ_ROOM_ENCAP_L2_SHIFT: _bindgen_ty_78 = 56;
+pub type _bindgen_ty_78 = ::std::os::raw::c_uint;
+pub const BPF_F_SYSCTL_BASE_NAME: _bindgen_ty_79 = 1;
+pub type _bindgen_ty_79 = ::std::os::raw::c_uint;
+pub const BPF_LOCAL_STORAGE_GET_F_CREATE: _bindgen_ty_80 = 1;
+pub const BPF_SK_STORAGE_GET_F_CREATE: _bindgen_ty_80 = 1;
+pub type _bindgen_ty_80 = ::std::os::raw::c_uint;
+pub const BPF_F_GET_BRANCH_RECORDS_SIZE: _bindgen_ty_81 = 1;
+pub type _bindgen_ty_81 = ::std::os::raw::c_uint;
+pub const BPF_RB_NO_WAKEUP: _bindgen_ty_82 = 1;
+pub const BPF_RB_FORCE_WAKEUP: _bindgen_ty_82 = 2;
+pub type _bindgen_ty_82 = ::std::os::raw::c_uint;
+pub const BPF_RB_AVAIL_DATA: _bindgen_ty_83 = 0;
+pub const BPF_RB_RING_SIZE: _bindgen_ty_83 = 1;
+pub const BPF_RB_CONS_POS: _bindgen_ty_83 = 2;
+pub const BPF_RB_PROD_POS: _bindgen_ty_83 = 3;
+pub type _bindgen_ty_83 = ::std::os::raw::c_uint;
+pub const BPF_RINGBUF_BUSY_BIT: _bindgen_ty_84 = 2147483648;
+pub const BPF_RINGBUF_DISCARD_BIT: _bindgen_ty_84 = 1073741824;
+pub const BPF_RINGBUF_HDR_SZ: _bindgen_ty_84 = 8;
+pub type _bindgen_ty_84 = ::std::os::raw::c_uint;
+pub const BPF_SK_LOOKUP_F_REPLACE: _bindgen_ty_85 = 1;
+pub const BPF_SK_LOOKUP_F_NO_REUSEPORT: _bindgen_ty_85 = 2;
+pub type _bindgen_ty_85 = ::std::os::raw::c_uint;
+pub const BPF_ADJ_ROOM_NET: bpf_adj_room_mode = 0;
+pub const BPF_ADJ_ROOM_MAC: bpf_adj_room_mode = 1;
+pub type bpf_adj_room_mode = ::std::os::raw::c_uint;
+pub const BPF_HDR_START_MAC: bpf_hdr_start_off = 0;
+pub const BPF_HDR_START_NET: bpf_hdr_start_off = 1;
+pub type bpf_hdr_start_off = ::std::os::raw::c_uint;
+pub const BPF_LWT_ENCAP_SEG6: bpf_lwt_encap_mode = 0;
+pub const BPF_LWT_ENCAP_SEG6_INLINE: bpf_lwt_encap_mode = 1;
+pub const BPF_LWT_ENCAP_IP: bpf_lwt_encap_mode = 2;
+pub type bpf_lwt_encap_mode = ::std::os::raw::c_uint;
+pub const BPF_F_BPRM_SECUREEXEC: _bindgen_ty_86 = 1;
+pub type _bindgen_ty_86 = ::std::os::raw::c_uint;
+pub const BPF_F_BROADCAST: _bindgen_ty_87 = 8;
+pub const BPF_F_EXCLUDE_INGRESS: _bindgen_ty_87 = 16;
+pub type _bindgen_ty_87 = ::std::os::raw::c_uint;
+pub const BPF_SKB_TSTAMP_UNSPEC: _bindgen_ty_88 = 0;
+pub const BPF_SKB_TSTAMP_DELIVERY_MONO: _bindgen_ty_88 = 1;
+pub type _bindgen_ty_88 = ::std::os::raw::c_uint;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct bpf_tunnel_key {
+    pub tunnel_id: __u32,
+    pub __bindgen_anon_1: bpf_tunnel_key__bindgen_ty_1,
+    pub tunnel_tos: __u8,
+    pub tunnel_ttl: __u8,
+    pub __bindgen_anon_2: bpf_tunnel_key__bindgen_ty_2,
+    pub tunnel_label: __u32,
+    pub __bindgen_anon_3: bpf_tunnel_key__bindgen_ty_3,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_tunnel_key__bindgen_ty_1 {
+    pub remote_ipv4: __u32,
+    pub remote_ipv6: [__u32; 4usize],
+}
+impl Default for bpf_tunnel_key__bindgen_ty_1 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_tunnel_key__bindgen_ty_2 {
+    pub tunnel_ext: __u16,
+    pub tunnel_flags: __be16,
+}
+impl Default for bpf_tunnel_key__bindgen_ty_2 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_tunnel_key__bindgen_ty_3 {
+    pub local_ipv4: __u32,
+    pub local_ipv6: [__u32; 4usize],
+}
+impl Default for bpf_tunnel_key__bindgen_ty_3 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+impl Default for bpf_tunnel_key {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct bpf_xfrm_state {
+    pub reqid: __u32,
+    pub spi: __u32,
+    pub family: __u16,
+    pub ext: __u16,
+    pub __bindgen_anon_1: bpf_xfrm_state__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_xfrm_state__bindgen_ty_1 {
+    pub remote_ipv4: __u32,
+    pub remote_ipv6: [__u32; 4usize],
+}
+impl Default for bpf_xfrm_state__bindgen_ty_1 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+impl Default for bpf_xfrm_state {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+pub const BPF_OK: bpf_ret_code = 0;
+pub const BPF_DROP: bpf_ret_code = 2;
+pub const BPF_REDIRECT: bpf_ret_code = 7;
+pub const BPF_LWT_REROUTE: bpf_ret_code = 128;
+pub const BPF_FLOW_DISSECTOR_CONTINUE: bpf_ret_code = 129;
+pub type bpf_ret_code = ::std::os::raw::c_uint;
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_sock {
+    pub bound_dev_if: __u32,
+    pub family: __u32,
+    pub type_: __u32,
+    pub protocol: __u32,
+    pub mark: __u32,
+    pub priority: __u32,
+    pub src_ip4: __u32,
+    pub src_ip6: [__u32; 4usize],
+    pub src_port: __u32,
+    pub dst_port: __be16,
+    pub _bitfield_align_1: [u8; 0],
+    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
+    pub dst_ip4: __u32,
+    pub dst_ip6: [__u32; 4usize],
+    pub state: __u32,
+    pub rx_queue_mapping: __s32,
+}
+impl bpf_sock {
+    #[inline]
+    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 2usize]> {
+        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
+        __bindgen_bitfield_unit
+    }
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_tcp_sock {
+    pub snd_cwnd: __u32,
+    pub srtt_us: __u32,
+    pub rtt_min: __u32,
+    pub snd_ssthresh: __u32,
+    pub rcv_nxt: __u32,
+    pub snd_nxt: __u32,
+    pub snd_una: __u32,
+    pub mss_cache: __u32,
+    pub ecn_flags: __u32,
+    pub rate_delivered: __u32,
+    pub rate_interval_us: __u32,
+    pub packets_out: __u32,
+    pub retrans_out: __u32,
+    pub total_retrans: __u32,
+    pub segs_in: __u32,
+    pub data_segs_in: __u32,
+    pub segs_out: __u32,
+    pub data_segs_out: __u32,
+    pub lost_out: __u32,
+    pub sacked_out: __u32,
+    pub bytes_received: __u64,
+    pub bytes_acked: __u64,
+    pub dsack_dups: __u32,
+    pub delivered: __u32,
+    pub delivered_ce: __u32,
+    pub icsk_retransmits: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct bpf_sock_tuple {
+    pub __bindgen_anon_1: bpf_sock_tuple__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_sock_tuple__bindgen_ty_1 {
+    pub ipv4: bpf_sock_tuple__bindgen_ty_1__bindgen_ty_1,
+    pub ipv6: bpf_sock_tuple__bindgen_ty_1__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_sock_tuple__bindgen_ty_1__bindgen_ty_1 {
+    pub saddr: __be32,
+    pub daddr: __be32,
+    pub sport: __be16,
+    pub dport: __be16,
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_sock_tuple__bindgen_ty_1__bindgen_ty_2 {
+    pub saddr: [__be32; 4usize],
+    pub daddr: [__be32; 4usize],
+    pub sport: __be16,
+    pub dport: __be16,
+}
+impl Default for bpf_sock_tuple__bindgen_ty_1 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+impl Default for bpf_sock_tuple {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_xdp_sock {
+    pub queue_id: __u32,
+}
+pub const XDP_ABORTED: xdp_action = 0;
+pub const XDP_DROP: xdp_action = 1;
+pub const XDP_PASS: xdp_action = 2;
+pub const XDP_TX: xdp_action = 3;
+pub const XDP_REDIRECT: xdp_action = 4;
+pub type xdp_action = ::std::os::raw::c_uint;
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct xdp_md {
+    pub data: __u32,
+    pub data_end: __u32,
+    pub data_meta: __u32,
+    pub ingress_ifindex: __u32,
+    pub rx_queue_index: __u32,
+    pub egress_ifindex: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct bpf_devmap_val {
+    pub ifindex: __u32,
+    pub bpf_prog: bpf_devmap_val__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_devmap_val__bindgen_ty_1 {
+    pub fd: ::std::os::raw::c_int,
+    pub id: __u32,
+}
+impl Default for bpf_devmap_val__bindgen_ty_1 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+impl Default for bpf_devmap_val {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct bpf_cpumap_val {
+    pub qsize: __u32,
+    pub bpf_prog: bpf_cpumap_val__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_cpumap_val__bindgen_ty_1 {
+    pub fd: ::std::os::raw::c_int,
+    pub id: __u32,
+}
+impl Default for bpf_cpumap_val__bindgen_ty_1 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+impl Default for bpf_cpumap_val {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_prog_info {
+    pub type_: __u32,
+    pub id: __u32,
+    pub tag: [__u8; 8usize],
+    pub jited_prog_len: __u32,
+    pub xlated_prog_len: __u32,
+    pub jited_prog_insns: __u64,
+    pub xlated_prog_insns: __u64,
+    pub load_time: __u64,
+    pub created_by_uid: __u32,
+    pub nr_map_ids: __u32,
+    pub map_ids: __u64,
+    pub name: [::std::os::raw::c_char; 16usize],
+    pub ifindex: __u32,
+    pub _bitfield_align_1: [u8; 0],
+    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+    pub netns_dev: __u64,
+    pub netns_ino: __u64,
+    pub nr_jited_ksyms: __u32,
+    pub nr_jited_func_lens: __u32,
+    pub jited_ksyms: __u64,
+    pub jited_func_lens: __u64,
+    pub btf_id: __u32,
+    pub func_info_rec_size: __u32,
+    pub func_info: __u64,
+    pub nr_func_info: __u32,
+    pub nr_line_info: __u32,
+    pub line_info: __u64,
+    pub jited_line_info: __u64,
+    pub nr_jited_line_info: __u32,
+    pub line_info_rec_size: __u32,
+    pub jited_line_info_rec_size: __u32,
+    pub nr_prog_tags: __u32,
+    pub prog_tags: __u64,
+    pub run_time_ns: __u64,
+    pub run_cnt: __u64,
+    pub recursion_misses: __u64,
+    pub verified_insns: __u32,
+    pub attach_btf_obj_id: __u32,
+    pub attach_btf_id: __u32,
+    pub __bindgen_padding_0: [u8; 4usize],
+}
+impl bpf_prog_info {
+    #[inline]
+    pub fn gpl_compatible(&self) -> __u32 {
+        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
+    }
+    #[inline]
+    pub fn set_gpl_compatible(&mut self, val: __u32) {
+        unsafe {
+            let val: u32 = ::std::mem::transmute(val);
+            self._bitfield_1.set(0usize, 1u8, val as u64)
+        }
+    }
+    #[inline]
+    pub fn new_bitfield_1(gpl_compatible: __u32) -> __BindgenBitfieldUnit<[u8; 4usize]> {
+        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+        __bindgen_bitfield_unit.set(0usize, 1u8, {
+            let gpl_compatible: u32 = unsafe { ::std::mem::transmute(gpl_compatible) };
+            gpl_compatible as u64
+        });
+        __bindgen_bitfield_unit
+    }
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_map_info {
+    pub type_: __u32,
+    pub id: __u32,
+    pub key_size: __u32,
+    pub value_size: __u32,
+    pub max_entries: __u32,
+    pub map_flags: __u32,
+    pub name: [::std::os::raw::c_char; 16usize],
+    pub ifindex: __u32,
+    pub btf_vmlinux_value_type_id: __u32,
+    pub netns_dev: __u64,
+    pub netns_ino: __u64,
+    pub btf_id: __u32,
+    pub btf_key_type_id: __u32,
+    pub btf_value_type_id: __u32,
+    pub btf_vmlinux_id: __u32,
+    pub map_extra: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_btf_info {
+    pub btf: __u64,
+    pub btf_size: __u32,
+    pub id: __u32,
+    pub name: __u64,
+    pub name_len: __u32,
+    pub kernel_btf: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct bpf_link_info {
+    pub type_: __u32,
+    pub id: __u32,
+    pub prog_id: __u32,
+    pub __bindgen_padding_0: [u8; 4usize],
+    pub __bindgen_anon_1: bpf_link_info__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_link_info__bindgen_ty_1 {
+    pub raw_tracepoint: bpf_link_info__bindgen_ty_1__bindgen_ty_1,
+    pub tracing: bpf_link_info__bindgen_ty_1__bindgen_ty_2,
+    pub cgroup: bpf_link_info__bindgen_ty_1__bindgen_ty_3,
+    pub iter: bpf_link_info__bindgen_ty_1__bindgen_ty_4,
+    pub netns: bpf_link_info__bindgen_ty_1__bindgen_ty_5,
+    pub xdp: bpf_link_info__bindgen_ty_1__bindgen_ty_6,
+    pub struct_ops: bpf_link_info__bindgen_ty_1__bindgen_ty_7,
+    pub netfilter: bpf_link_info__bindgen_ty_1__bindgen_ty_8,
+    pub kprobe_multi: bpf_link_info__bindgen_ty_1__bindgen_ty_9,
+    pub uprobe_multi: bpf_link_info__bindgen_ty_1__bindgen_ty_10,
+    pub perf_event: bpf_link_info__bindgen_ty_1__bindgen_ty_11,
+    pub tcx: bpf_link_info__bindgen_ty_1__bindgen_ty_12,
+    pub netkit: bpf_link_info__bindgen_ty_1__bindgen_ty_13,
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_1 {
+    pub tp_name: __u64,
+    pub tp_name_len: __u32,
+    pub __bindgen_padding_0: [u8; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_2 {
+    pub attach_type: __u32,
+    pub target_obj_id: __u32,
+    pub target_btf_id: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_3 {
+    pub cgroup_id: __u64,
+    pub attach_type: __u32,
+    pub __bindgen_padding_0: [u8; 4usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_4 {
+    pub target_name: __u64,
+    pub target_name_len: __u32,
+    pub __bindgen_anon_1: bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_1,
+    pub __bindgen_anon_2: bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_1 {
+    pub map: bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1 {
+    pub map_id: __u32,
+}
+impl Default for bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_1 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_2 {
+    pub cgroup: bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_2__bindgen_ty_1,
+    pub task: bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_2__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_2__bindgen_ty_1 {
+    pub cgroup_id: __u64,
+    pub order: __u32,
+    pub __bindgen_padding_0: [u8; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_2__bindgen_ty_2 {
+    pub tid: __u32,
+    pub pid: __u32,
+}
+impl Default for bpf_link_info__bindgen_ty_1__bindgen_ty_4__bindgen_ty_2 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+impl Default for bpf_link_info__bindgen_ty_1__bindgen_ty_4 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_5 {
+    pub netns_ino: __u32,
+    pub attach_type: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_6 {
+    pub ifindex: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_7 {
+    pub map_id: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_8 {
+    pub pf: __u32,
+    pub hooknum: __u32,
+    pub priority: __s32,
+    pub flags: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_9 {
+    pub addrs: __u64,
+    pub count: __u32,
+    pub flags: __u32,
+    pub missed: __u64,
+    pub cookies: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_10 {
+    pub path: __u64,
+    pub offsets: __u64,
+    pub ref_ctr_offsets: __u64,
+    pub cookies: __u64,
+    pub path_size: __u32,
+    pub count: __u32,
+    pub flags: __u32,
+    pub pid: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_11 {
+    pub type_: __u32,
+    pub _bitfield_align_1: [u8; 0],
+    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+    pub __bindgen_anon_1: bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1 {
+    pub uprobe: bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_1,
+    pub kprobe: bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_2,
+    pub tracepoint: bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_3,
+    pub event: bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_4,
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_1 {
+    pub file_name: __u64,
+    pub name_len: __u32,
+    pub offset: __u32,
+    pub cookie: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_2 {
+    pub func_name: __u64,
+    pub name_len: __u32,
+    pub offset: __u32,
+    pub addr: __u64,
+    pub missed: __u64,
+    pub cookie: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_3 {
+    pub tp_name: __u64,
+    pub name_len: __u32,
+    pub _bitfield_align_1: [u8; 0],
+    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+    pub cookie: __u64,
+}
+impl bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_3 {
+    #[inline]
+    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 4usize]> {
+        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+        __bindgen_bitfield_unit
+    }
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_4 {
+    pub config: __u64,
+    pub type_: __u32,
+    pub _bitfield_align_1: [u8; 0],
+    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+    pub cookie: __u64,
+}
+impl bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1__bindgen_ty_4 {
+    #[inline]
+    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 4usize]> {
+        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+        __bindgen_bitfield_unit
+    }
+}
+impl Default for bpf_link_info__bindgen_ty_1__bindgen_ty_11__bindgen_ty_1 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+impl Default for bpf_link_info__bindgen_ty_1__bindgen_ty_11 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+impl bpf_link_info__bindgen_ty_1__bindgen_ty_11 {
+    #[inline]
+    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 4usize]> {
+        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+        __bindgen_bitfield_unit
+    }
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_12 {
+    pub ifindex: __u32,
+    pub attach_type: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_link_info__bindgen_ty_1__bindgen_ty_13 {
+    pub ifindex: __u32,
+    pub attach_type: __u32,
+}
+impl Default for bpf_link_info__bindgen_ty_1 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+impl Default for bpf_link_info {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct bpf_sock_addr {
+    pub user_family: __u32,
+    pub user_ip4: __u32,
+    pub user_ip6: [__u32; 4usize],
+    pub user_port: __u32,
+    pub family: __u32,
+    pub type_: __u32,
+    pub protocol: __u32,
+    pub msg_src_ip4: __u32,
+    pub msg_src_ip6: [__u32; 4usize],
+    pub __bindgen_padding_0: [u8; 4usize],
+    pub __bindgen_anon_1: bpf_sock_addr__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_sock_addr__bindgen_ty_1 {
+    pub sk: *mut bpf_sock,
+    pub _bitfield_align_1: [u8; 0],
+    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
+}
+impl Default for bpf_sock_addr__bindgen_ty_1 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+impl bpf_sock_addr__bindgen_ty_1 {
+    #[inline]
+    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
+        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
+        __bindgen_bitfield_unit
+    }
+}
+impl Default for bpf_sock_addr {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct bpf_sock_ops {
+    pub op: __u32,
+    pub __bindgen_anon_1: bpf_sock_ops__bindgen_ty_1,
+    pub family: __u32,
+    pub remote_ip4: __u32,
+    pub local_ip4: __u32,
+    pub remote_ip6: [__u32; 4usize],
+    pub local_ip6: [__u32; 4usize],
+    pub remote_port: __u32,
+    pub local_port: __u32,
+    pub is_fullsock: __u32,
+    pub snd_cwnd: __u32,
+    pub srtt_us: __u32,
+    pub bpf_sock_ops_cb_flags: __u32,
+    pub state: __u32,
+    pub rtt_min: __u32,
+    pub snd_ssthresh: __u32,
+    pub rcv_nxt: __u32,
+    pub snd_nxt: __u32,
+    pub snd_una: __u32,
+    pub mss_cache: __u32,
+    pub ecn_flags: __u32,
+    pub rate_delivered: __u32,
+    pub rate_interval_us: __u32,
+    pub packets_out: __u32,
+    pub retrans_out: __u32,
+    pub total_retrans: __u32,
+    pub segs_in: __u32,
+    pub data_segs_in: __u32,
+    pub segs_out: __u32,
+    pub data_segs_out: __u32,
+    pub lost_out: __u32,
+    pub sacked_out: __u32,
+    pub sk_txhash: __u32,
+    pub bytes_received: __u64,
+    pub bytes_acked: __u64,
+    pub __bindgen_anon_2: bpf_sock_ops__bindgen_ty_2,
+    pub __bindgen_anon_3: bpf_sock_ops__bindgen_ty_3,
+    pub __bindgen_anon_4: bpf_sock_ops__bindgen_ty_4,
+    pub skb_len: __u32,
+    pub skb_tcp_flags: __u32,
+    pub skb_hwtstamp: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_sock_ops__bindgen_ty_1 {
+    pub args: [__u32; 4usize],
+    pub reply: __u32,
+    pub replylong: [__u32; 4usize],
+}
+impl Default for bpf_sock_ops__bindgen_ty_1 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_sock_ops__bindgen_ty_2 {
+    pub sk: *mut bpf_sock,
+    pub _bitfield_align_1: [u8; 0],
+    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
+}
+impl Default for bpf_sock_ops__bindgen_ty_2 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+impl bpf_sock_ops__bindgen_ty_2 {
+    #[inline]
+    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
+        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
+        __bindgen_bitfield_unit
+    }
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_sock_ops__bindgen_ty_3 {
+    pub skb_data: *mut ::std::os::raw::c_void,
+    pub _bitfield_align_1: [u8; 0],
+    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
+}
+impl Default for bpf_sock_ops__bindgen_ty_3 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+impl bpf_sock_ops__bindgen_ty_3 {
+    #[inline]
+    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
+        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
+        __bindgen_bitfield_unit
+    }
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_sock_ops__bindgen_ty_4 {
+    pub skb_data_end: *mut ::std::os::raw::c_void,
+    pub _bitfield_align_1: [u8; 0],
+    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
+}
+impl Default for bpf_sock_ops__bindgen_ty_4 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+impl bpf_sock_ops__bindgen_ty_4 {
+    #[inline]
+    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
+        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
+        __bindgen_bitfield_unit
+    }
+}
+impl Default for bpf_sock_ops {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+pub const BPF_SOCK_OPS_RTO_CB_FLAG: _bindgen_ty_89 = 1;
+pub const BPF_SOCK_OPS_RETRANS_CB_FLAG: _bindgen_ty_89 = 2;
+pub const BPF_SOCK_OPS_STATE_CB_FLAG: _bindgen_ty_89 = 4;
+pub const BPF_SOCK_OPS_RTT_CB_FLAG: _bindgen_ty_89 = 8;
+pub const BPF_SOCK_OPS_PARSE_ALL_HDR_OPT_CB_FLAG: _bindgen_ty_89 = 16;
+pub const BPF_SOCK_OPS_PARSE_UNKNOWN_HDR_OPT_CB_FLAG: _bindgen_ty_89 = 32;
+pub const BPF_SOCK_OPS_WRITE_HDR_OPT_CB_FLAG: _bindgen_ty_89 = 64;
+pub const BPF_SOCK_OPS_ALL_CB_FLAGS: _bindgen_ty_89 = 127;
+pub type _bindgen_ty_89 = ::std::os::raw::c_uint;
+pub const BPF_SOCK_OPS_VOID: _bindgen_ty_90 = 0;
+pub const BPF_SOCK_OPS_TIMEOUT_INIT: _bindgen_ty_90 = 1;
+pub const BPF_SOCK_OPS_RWND_INIT: _bindgen_ty_90 = 2;
+pub const BPF_SOCK_OPS_TCP_CONNECT_CB: _bindgen_ty_90 = 3;
+pub const BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB: _bindgen_ty_90 = 4;
+pub const BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB: _bindgen_ty_90 = 5;
+pub const BPF_SOCK_OPS_NEEDS_ECN: _bindgen_ty_90 = 6;
+pub const BPF_SOCK_OPS_BASE_RTT: _bindgen_ty_90 = 7;
+pub const BPF_SOCK_OPS_RTO_CB: _bindgen_ty_90 = 8;
+pub const BPF_SOCK_OPS_RETRANS_CB: _bindgen_ty_90 = 9;
+pub const BPF_SOCK_OPS_STATE_CB: _bindgen_ty_90 = 10;
+pub const BPF_SOCK_OPS_TCP_LISTEN_CB: _bindgen_ty_90 = 11;
+pub const BPF_SOCK_OPS_RTT_CB: _bindgen_ty_90 = 12;
+pub const BPF_SOCK_OPS_PARSE_HDR_OPT_CB: _bindgen_ty_90 = 13;
+pub const BPF_SOCK_OPS_HDR_OPT_LEN_CB: _bindgen_ty_90 = 14;
+pub const BPF_SOCK_OPS_WRITE_HDR_OPT_CB: _bindgen_ty_90 = 15;
+pub type _bindgen_ty_90 = ::std::os::raw::c_uint;
+pub const BPF_TCP_ESTABLISHED: _bindgen_ty_91 = 1;
+pub const BPF_TCP_SYN_SENT: _bindgen_ty_91 = 2;
+pub const BPF_TCP_SYN_RECV: _bindgen_ty_91 = 3;
+pub const BPF_TCP_FIN_WAIT1: _bindgen_ty_91 = 4;
+pub const BPF_TCP_FIN_WAIT2: _bindgen_ty_91 = 5;
+pub const BPF_TCP_TIME_WAIT: _bindgen_ty_91 = 6;
+pub const BPF_TCP_CLOSE: _bindgen_ty_91 = 7;
+pub const BPF_TCP_CLOSE_WAIT: _bindgen_ty_91 = 8;
+pub const BPF_TCP_LAST_ACK: _bindgen_ty_91 = 9;
+pub const BPF_TCP_LISTEN: _bindgen_ty_91 = 10;
+pub const BPF_TCP_CLOSING: _bindgen_ty_91 = 11;
+pub const BPF_TCP_NEW_SYN_RECV: _bindgen_ty_91 = 12;
+pub const BPF_TCP_BOUND_INACTIVE: _bindgen_ty_91 = 13;
+pub const BPF_TCP_MAX_STATES: _bindgen_ty_91 = 14;
+pub type _bindgen_ty_91 = ::std::os::raw::c_uint;
+pub const BPF_LOAD_HDR_OPT_TCP_SYN: _bindgen_ty_93 = 1;
+pub type _bindgen_ty_93 = ::std::os::raw::c_uint;
+pub const BPF_WRITE_HDR_TCP_CURRENT_MSS: _bindgen_ty_94 = 1;
+pub const BPF_WRITE_HDR_TCP_SYNACK_COOKIE: _bindgen_ty_94 = 2;
+pub type _bindgen_ty_94 = ::std::os::raw::c_uint;
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_perf_event_value {
+    pub counter: __u64,
+    pub enabled: __u64,
+    pub running: __u64,
+}
+pub const BPF_DEVCG_ACC_MKNOD: _bindgen_ty_95 = 1;
+pub const BPF_DEVCG_ACC_READ: _bindgen_ty_95 = 2;
+pub const BPF_DEVCG_ACC_WRITE: _bindgen_ty_95 = 4;
+pub type _bindgen_ty_95 = ::std::os::raw::c_uint;
+pub const BPF_DEVCG_DEV_BLOCK: _bindgen_ty_96 = 1;
+pub const BPF_DEVCG_DEV_CHAR: _bindgen_ty_96 = 2;
+pub type _bindgen_ty_96 = ::std::os::raw::c_uint;
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_cgroup_dev_ctx {
+    pub access_type: __u32,
+    pub major: __u32,
+    pub minor: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Default)]
+pub struct bpf_raw_tracepoint_args {
+    pub args: __IncompleteArrayField<__u64>,
+}
+pub const BPF_FIB_LOOKUP_DIRECT: _bindgen_ty_97 = 1;
+pub const BPF_FIB_LOOKUP_OUTPUT: _bindgen_ty_97 = 2;
+pub const BPF_FIB_LOOKUP_SKIP_NEIGH: _bindgen_ty_97 = 4;
+pub const BPF_FIB_LOOKUP_TBID: _bindgen_ty_97 = 8;
+pub const BPF_FIB_LOOKUP_SRC: _bindgen_ty_97 = 16;
+pub type _bindgen_ty_97 = ::std::os::raw::c_uint;
+pub const BPF_FIB_LKUP_RET_SUCCESS: _bindgen_ty_98 = 0;
+pub const BPF_FIB_LKUP_RET_BLACKHOLE: _bindgen_ty_98 = 1;
+pub const BPF_FIB_LKUP_RET_UNREACHABLE: _bindgen_ty_98 = 2;
+pub const BPF_FIB_LKUP_RET_PROHIBIT: _bindgen_ty_98 = 3;
+pub const BPF_FIB_LKUP_RET_NOT_FWDED: _bindgen_ty_98 = 4;
+pub const BPF_FIB_LKUP_RET_FWD_DISABLED: _bindgen_ty_98 = 5;
+pub const BPF_FIB_LKUP_RET_UNSUPP_LWT: _bindgen_ty_98 = 6;
+pub const BPF_FIB_LKUP_RET_NO_NEIGH: _bindgen_ty_98 = 7;
+pub const BPF_FIB_LKUP_RET_FRAG_NEEDED: _bindgen_ty_98 = 8;
+pub const BPF_FIB_LKUP_RET_NO_SRC_ADDR: _bindgen_ty_98 = 9;
+pub type _bindgen_ty_98 = ::std::os::raw::c_uint;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct bpf_fib_lookup {
+    pub family: __u8,
+    pub l4_protocol: __u8,
+    pub sport: __be16,
+    pub dport: __be16,
+    pub __bindgen_anon_1: bpf_fib_lookup__bindgen_ty_1,
+    pub ifindex: __u32,
+    pub __bindgen_anon_2: bpf_fib_lookup__bindgen_ty_2,
+    pub __bindgen_anon_3: bpf_fib_lookup__bindgen_ty_3,
+    pub __bindgen_anon_4: bpf_fib_lookup__bindgen_ty_4,
+    pub __bindgen_anon_5: bpf_fib_lookup__bindgen_ty_5,
+    pub smac: [__u8; 6usize],
+    pub dmac: [__u8; 6usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_fib_lookup__bindgen_ty_1 {
+    pub tot_len: __u16,
+    pub mtu_result: __u16,
+}
+impl Default for bpf_fib_lookup__bindgen_ty_1 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_fib_lookup__bindgen_ty_2 {
+    pub tos: __u8,
+    pub flowinfo: __be32,
+    pub rt_metric: __u32,
+}
+impl Default for bpf_fib_lookup__bindgen_ty_2 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_fib_lookup__bindgen_ty_3 {
+    pub ipv4_src: __be32,
+    pub ipv6_src: [__u32; 4usize],
+}
+impl Default for bpf_fib_lookup__bindgen_ty_3 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_fib_lookup__bindgen_ty_4 {
+    pub ipv4_dst: __be32,
+    pub ipv6_dst: [__u32; 4usize],
+}
+impl Default for bpf_fib_lookup__bindgen_ty_4 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_fib_lookup__bindgen_ty_5 {
+    pub __bindgen_anon_1: bpf_fib_lookup__bindgen_ty_5__bindgen_ty_1,
+    pub tbid: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_fib_lookup__bindgen_ty_5__bindgen_ty_1 {
+    pub h_vlan_proto: __be16,
+    pub h_vlan_TCI: __be16,
+}
+impl Default for bpf_fib_lookup__bindgen_ty_5 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+impl Default for bpf_fib_lookup {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct bpf_redir_neigh {
+    pub nh_family: __u32,
+    pub __bindgen_anon_1: bpf_redir_neigh__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_redir_neigh__bindgen_ty_1 {
+    pub ipv4_nh: __be32,
+    pub ipv6_nh: [__u32; 4usize],
+}
+impl Default for bpf_redir_neigh__bindgen_ty_1 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+impl Default for bpf_redir_neigh {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+pub const BPF_MTU_CHK_SEGS: bpf_check_mtu_flags = 1;
+pub type bpf_check_mtu_flags = ::std::os::raw::c_uint;
+pub const BPF_MTU_CHK_RET_SUCCESS: bpf_check_mtu_ret = 0;
+pub const BPF_MTU_CHK_RET_FRAG_NEEDED: bpf_check_mtu_ret = 1;
+pub const BPF_MTU_CHK_RET_SEGS_TOOBIG: bpf_check_mtu_ret = 2;
+pub type bpf_check_mtu_ret = ::std::os::raw::c_uint;
+pub const BPF_FD_TYPE_RAW_TRACEPOINT: bpf_task_fd_type = 0;
+pub const BPF_FD_TYPE_TRACEPOINT: bpf_task_fd_type = 1;
+pub const BPF_FD_TYPE_KPROBE: bpf_task_fd_type = 2;
+pub const BPF_FD_TYPE_KRETPROBE: bpf_task_fd_type = 3;
+pub const BPF_FD_TYPE_UPROBE: bpf_task_fd_type = 4;
+pub const BPF_FD_TYPE_URETPROBE: bpf_task_fd_type = 5;
+pub type bpf_task_fd_type = ::std::os::raw::c_uint;
+pub const BPF_FLOW_DISSECTOR_F_PARSE_1ST_FRAG: _bindgen_ty_99 = 1;
+pub const BPF_FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL: _bindgen_ty_99 = 2;
+pub const BPF_FLOW_DISSECTOR_F_STOP_AT_ENCAP: _bindgen_ty_99 = 4;
+pub type _bindgen_ty_99 = ::std::os::raw::c_uint;
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct bpf_flow_keys {
+    pub nhoff: __u16,
+    pub thoff: __u16,
+    pub addr_proto: __u16,
+    pub is_frag: __u8,
+    pub is_first_frag: __u8,
+    pub is_encap: __u8,
+    pub ip_proto: __u8,
+    pub n_proto: __be16,
+    pub sport: __be16,
+    pub dport: __be16,
+    pub __bindgen_anon_1: bpf_flow_keys__bindgen_ty_1,
+    pub flags: __u32,
+    pub flow_label: __be32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_flow_keys__bindgen_ty_1 {
+    pub __bindgen_anon_1: bpf_flow_keys__bindgen_ty_1__bindgen_ty_1,
+    pub __bindgen_anon_2: bpf_flow_keys__bindgen_ty_1__bindgen_ty_2,
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_flow_keys__bindgen_ty_1__bindgen_ty_1 {
+    pub ipv4_src: __be32,
+    pub ipv4_dst: __be32,
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_flow_keys__bindgen_ty_1__bindgen_ty_2 {
+    pub ipv6_src: [__u32; 4usize],
+    pub ipv6_dst: [__u32; 4usize],
+}
+impl Default for bpf_flow_keys__bindgen_ty_1 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+impl Default for bpf_flow_keys {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_func_info {
+    pub insn_off: __u32,
+    pub type_id: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_line_info {
+    pub insn_off: __u32,
+    pub file_name_off: __u32,
+    pub line_off: __u32,
+    pub line_col: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_spin_lock {
+    pub val: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_timer {
+    pub __opaque: [__u64; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_dynptr {
+    pub __opaque: [__u64; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_list_head {
+    pub __opaque: [__u64; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_list_node {
+    pub __opaque: [__u64; 3usize],
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_rb_root {
+    pub __opaque: [__u64; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_rb_node {
+    pub __opaque: [__u64; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_refcount {
+    pub __opaque: [__u32; 1usize],
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_sysctl {
+    pub write: __u32,
+    pub file_pos: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct bpf_sockopt {
+    pub __bindgen_anon_1: bpf_sockopt__bindgen_ty_1,
+    pub __bindgen_anon_2: bpf_sockopt__bindgen_ty_2,
+    pub __bindgen_anon_3: bpf_sockopt__bindgen_ty_3,
+    pub level: __s32,
+    pub optname: __s32,
+    pub optlen: __s32,
+    pub retval: __s32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_sockopt__bindgen_ty_1 {
+    pub sk: *mut bpf_sock,
+    pub _bitfield_align_1: [u8; 0],
+    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
+}
+impl Default for bpf_sockopt__bindgen_ty_1 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+impl bpf_sockopt__bindgen_ty_1 {
+    #[inline]
+    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
+        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
+        __bindgen_bitfield_unit
+    }
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_sockopt__bindgen_ty_2 {
+    pub optval: *mut ::std::os::raw::c_void,
+    pub _bitfield_align_1: [u8; 0],
+    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
+}
+impl Default for bpf_sockopt__bindgen_ty_2 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+impl bpf_sockopt__bindgen_ty_2 {
+    #[inline]
+    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
+        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
+        __bindgen_bitfield_unit
+    }
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_sockopt__bindgen_ty_3 {
+    pub optval_end: *mut ::std::os::raw::c_void,
+    pub _bitfield_align_1: [u8; 0],
+    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
+}
+impl Default for bpf_sockopt__bindgen_ty_3 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+impl bpf_sockopt__bindgen_ty_3 {
+    #[inline]
+    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
+        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
+        __bindgen_bitfield_unit
+    }
+}
+impl Default for bpf_sockopt {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_pidns_info {
+    pub pid: __u32,
+    pub tgid: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct bpf_sk_lookup {
+    pub __bindgen_anon_1: bpf_sk_lookup__bindgen_ty_1,
+    pub family: __u32,
+    pub protocol: __u32,
+    pub remote_ip4: __u32,
+    pub remote_ip6: [__u32; 4usize],
+    pub remote_port: __be16,
+    pub _bitfield_align_1: [u8; 0],
+    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
+    pub local_ip4: __u32,
+    pub local_ip6: [__u32; 4usize],
+    pub local_port: __u32,
+    pub ingress_ifindex: __u32,
+    pub __bindgen_padding_0: [u8; 4usize],
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_sk_lookup__bindgen_ty_1 {
+    pub __bindgen_anon_1: bpf_sk_lookup__bindgen_ty_1__bindgen_ty_1,
+    pub cookie: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_sk_lookup__bindgen_ty_1__bindgen_ty_1 {
+    pub sk: *mut bpf_sock,
+    pub _bitfield_align_1: [u8; 0],
+    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
+}
+impl Default for bpf_sk_lookup__bindgen_ty_1__bindgen_ty_1 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+impl bpf_sk_lookup__bindgen_ty_1__bindgen_ty_1 {
+    #[inline]
+    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 8usize]> {
+        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
+        __bindgen_bitfield_unit
+    }
+}
+impl Default for bpf_sk_lookup__bindgen_ty_1 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+impl Default for bpf_sk_lookup {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+impl bpf_sk_lookup {
+    #[inline]
+    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 2usize]> {
+        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
+        __bindgen_bitfield_unit
+    }
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btf_ptr {
+    pub ptr: *mut ::std::os::raw::c_void,
+    pub type_id: __u32,
+    pub flags: __u32,
+}
+impl Default for btf_ptr {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+pub const BTF_F_COMPACT: _bindgen_ty_100 = 1;
+pub const BTF_F_NONAME: _bindgen_ty_100 = 2;
+pub const BTF_F_PTR_RAW: _bindgen_ty_100 = 4;
+pub const BTF_F_ZERO: _bindgen_ty_100 = 8;
+pub type _bindgen_ty_100 = ::std::os::raw::c_uint;
+pub const BPF_CORE_FIELD_BYTE_OFFSET: bpf_core_relo_kind = 0;
+pub const BPF_CORE_FIELD_BYTE_SIZE: bpf_core_relo_kind = 1;
+pub const BPF_CORE_FIELD_EXISTS: bpf_core_relo_kind = 2;
+pub const BPF_CORE_FIELD_SIGNED: bpf_core_relo_kind = 3;
+pub const BPF_CORE_FIELD_LSHIFT_U64: bpf_core_relo_kind = 4;
+pub const BPF_CORE_FIELD_RSHIFT_U64: bpf_core_relo_kind = 5;
+pub const BPF_CORE_TYPE_ID_LOCAL: bpf_core_relo_kind = 6;
+pub const BPF_CORE_TYPE_ID_TARGET: bpf_core_relo_kind = 7;
+pub const BPF_CORE_TYPE_EXISTS: bpf_core_relo_kind = 8;
+pub const BPF_CORE_TYPE_SIZE: bpf_core_relo_kind = 9;
+pub const BPF_CORE_ENUMVAL_EXISTS: bpf_core_relo_kind = 10;
+pub const BPF_CORE_ENUMVAL_VALUE: bpf_core_relo_kind = 11;
+pub const BPF_CORE_TYPE_MATCHES: bpf_core_relo_kind = 12;
+pub type bpf_core_relo_kind = ::std::os::raw::c_uint;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_core_relo {
+    pub insn_off: __u32,
+    pub type_id: __u32,
+    pub access_str_off: __u32,
+    pub kind: bpf_core_relo_kind,
+}
+impl Default for bpf_core_relo {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+pub const BPF_F_TIMER_ABS: _bindgen_ty_101 = 1;
+pub const BPF_F_TIMER_CPU_PIN: _bindgen_ty_101 = 2;
+pub type _bindgen_ty_101 = ::std::os::raw::c_uint;
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_iter_num {
+    pub __opaque: [__u64; 1usize],
+}
+pub const LIBBPF_STRICT_ALL: libbpf_strict_mode = 4294967295;
+pub const LIBBPF_STRICT_NONE: libbpf_strict_mode = 0;
+pub const LIBBPF_STRICT_CLEAN_PTRS: libbpf_strict_mode = 1;
+pub const LIBBPF_STRICT_DIRECT_ERRS: libbpf_strict_mode = 2;
+pub const LIBBPF_STRICT_SEC_NAME: libbpf_strict_mode = 4;
+pub const LIBBPF_STRICT_NO_OBJECT_LIST: libbpf_strict_mode = 8;
+pub const LIBBPF_STRICT_AUTO_RLIMIT_MEMLOCK: libbpf_strict_mode = 16;
+pub const LIBBPF_STRICT_MAP_DEFINITIONS: libbpf_strict_mode = 32;
+pub const __LIBBPF_STRICT_LAST: libbpf_strict_mode = 33;
+pub type libbpf_strict_mode = ::std::os::raw::c_uint;
+extern "C" {
+    pub fn libbpf_set_strict_mode(mode: libbpf_strict_mode) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn libbpf_get_error(ptr: *const ::std::os::raw::c_void) -> ::std::os::raw::c_long;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_program {
+    _unused: [u8; 0],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_map {
+    _unused: [u8; 0],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btf {
+    _unused: [u8; 0],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btf_ext {
+    _unused: [u8; 0],
+}
+extern "C" {
+    pub fn libbpf_find_kernel_btf() -> *mut btf;
+}
+extern "C" {
+    pub fn bpf_program__get_type(prog: *const bpf_program) -> bpf_prog_type;
+}
+extern "C" {
+    pub fn bpf_program__get_expected_attach_type(prog: *const bpf_program) -> bpf_attach_type;
+}
+extern "C" {
+    pub fn bpf_map__get_pin_path(map: *const bpf_map) -> *const ::std::os::raw::c_char;
+}
+extern "C" {
+    pub fn btf__get_raw_data(btf: *const btf, size: *mut __u32) -> *const ::std::os::raw::c_void;
+}
+extern "C" {
+    pub fn btf_ext__get_raw_data(
+        btf_ext: *const btf_ext,
+        size: *mut __u32,
+    ) -> *const ::std::os::raw::c_void;
+}
+extern "C" {
+    pub fn libbpf_set_memlock_rlim(memlock_bytes: size_t) -> ::std::os::raw::c_int;
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_map_create_opts {
+    pub sz: size_t,
+    pub btf_fd: __u32,
+    pub btf_key_type_id: __u32,
+    pub btf_value_type_id: __u32,
+    pub btf_vmlinux_value_type_id: __u32,
+    pub inner_map_fd: __u32,
+    pub map_flags: __u32,
+    pub map_extra: __u64,
+    pub numa_node: __u32,
+    pub map_ifindex: __u32,
+    pub value_type_btf_obj_fd: __s32,
+    pub token_fd: __u32,
+}
+extern "C" {
+    pub fn bpf_map_create(
+        map_type: bpf_map_type,
+        map_name: *const ::std::os::raw::c_char,
+        key_size: __u32,
+        value_size: __u32,
+        max_entries: __u32,
+        opts: *const bpf_map_create_opts,
+    ) -> ::std::os::raw::c_int;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_prog_load_opts {
+    pub sz: size_t,
+    pub attempts: ::std::os::raw::c_int,
+    pub expected_attach_type: bpf_attach_type,
+    pub prog_btf_fd: __u32,
+    pub prog_flags: __u32,
+    pub prog_ifindex: __u32,
+    pub kern_version: __u32,
+    pub attach_btf_id: __u32,
+    pub attach_prog_fd: __u32,
+    pub attach_btf_obj_fd: __u32,
+    pub __bindgen_padding_0: [u8; 4usize],
+    pub fd_array: *const ::std::os::raw::c_int,
+    pub func_info: *const ::std::os::raw::c_void,
+    pub func_info_cnt: __u32,
+    pub func_info_rec_size: __u32,
+    pub line_info: *const ::std::os::raw::c_void,
+    pub line_info_cnt: __u32,
+    pub line_info_rec_size: __u32,
+    pub log_level: __u32,
+    pub log_size: __u32,
+    pub log_buf: *mut ::std::os::raw::c_char,
+    pub log_true_size: __u32,
+    pub token_fd: __u32,
+}
+impl Default for bpf_prog_load_opts {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+extern "C" {
+    pub fn bpf_prog_load(
+        prog_type: bpf_prog_type,
+        prog_name: *const ::std::os::raw::c_char,
+        license: *const ::std::os::raw::c_char,
+        insns: *const bpf_insn,
+        insn_cnt: size_t,
+        opts: *mut bpf_prog_load_opts,
+    ) -> ::std::os::raw::c_int;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_btf_load_opts {
+    pub sz: size_t,
+    pub log_buf: *mut ::std::os::raw::c_char,
+    pub log_level: __u32,
+    pub log_size: __u32,
+    pub log_true_size: __u32,
+    pub btf_flags: __u32,
+    pub token_fd: __u32,
+    pub __bindgen_padding_0: [u8; 4usize],
+}
+impl Default for bpf_btf_load_opts {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+extern "C" {
+    pub fn bpf_btf_load(
+        btf_data: *const ::std::os::raw::c_void,
+        btf_size: size_t,
+        opts: *mut bpf_btf_load_opts,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_map_update_elem(
+        fd: ::std::os::raw::c_int,
+        key: *const ::std::os::raw::c_void,
+        value: *const ::std::os::raw::c_void,
+        flags: __u64,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_map_lookup_elem(
+        fd: ::std::os::raw::c_int,
+        key: *const ::std::os::raw::c_void,
+        value: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_map_lookup_elem_flags(
+        fd: ::std::os::raw::c_int,
+        key: *const ::std::os::raw::c_void,
+        value: *mut ::std::os::raw::c_void,
+        flags: __u64,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_map_lookup_and_delete_elem(
+        fd: ::std::os::raw::c_int,
+        key: *const ::std::os::raw::c_void,
+        value: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_map_lookup_and_delete_elem_flags(
+        fd: ::std::os::raw::c_int,
+        key: *const ::std::os::raw::c_void,
+        value: *mut ::std::os::raw::c_void,
+        flags: __u64,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_map_delete_elem(
+        fd: ::std::os::raw::c_int,
+        key: *const ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_map_delete_elem_flags(
+        fd: ::std::os::raw::c_int,
+        key: *const ::std::os::raw::c_void,
+        flags: __u64,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_map_get_next_key(
+        fd: ::std::os::raw::c_int,
+        key: *const ::std::os::raw::c_void,
+        next_key: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_map_freeze(fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_map_batch_opts {
+    pub sz: size_t,
+    pub elem_flags: __u64,
+    pub flags: __u64,
+}
+extern "C" {
+    pub fn bpf_map_delete_batch(
+        fd: ::std::os::raw::c_int,
+        keys: *const ::std::os::raw::c_void,
+        count: *mut __u32,
+        opts: *const bpf_map_batch_opts,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_map_lookup_batch(
+        fd: ::std::os::raw::c_int,
+        in_batch: *mut ::std::os::raw::c_void,
+        out_batch: *mut ::std::os::raw::c_void,
+        keys: *mut ::std::os::raw::c_void,
+        values: *mut ::std::os::raw::c_void,
+        count: *mut __u32,
+        opts: *const bpf_map_batch_opts,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_map_lookup_and_delete_batch(
+        fd: ::std::os::raw::c_int,
+        in_batch: *mut ::std::os::raw::c_void,
+        out_batch: *mut ::std::os::raw::c_void,
+        keys: *mut ::std::os::raw::c_void,
+        values: *mut ::std::os::raw::c_void,
+        count: *mut __u32,
+        opts: *const bpf_map_batch_opts,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_map_update_batch(
+        fd: ::std::os::raw::c_int,
+        keys: *const ::std::os::raw::c_void,
+        values: *const ::std::os::raw::c_void,
+        count: *mut __u32,
+        opts: *const bpf_map_batch_opts,
+    ) -> ::std::os::raw::c_int;
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_obj_pin_opts {
+    pub sz: size_t,
+    pub file_flags: __u32,
+    pub path_fd: ::std::os::raw::c_int,
+}
+extern "C" {
+    pub fn bpf_obj_pin(
+        fd: ::std::os::raw::c_int,
+        pathname: *const ::std::os::raw::c_char,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_obj_pin_opts(
+        fd: ::std::os::raw::c_int,
+        pathname: *const ::std::os::raw::c_char,
+        opts: *const bpf_obj_pin_opts,
+    ) -> ::std::os::raw::c_int;
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_obj_get_opts {
+    pub sz: size_t,
+    pub file_flags: __u32,
+    pub path_fd: ::std::os::raw::c_int,
+}
+extern "C" {
+    pub fn bpf_obj_get(pathname: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_obj_get_opts(
+        pathname: *const ::std::os::raw::c_char,
+        opts: *const bpf_obj_get_opts,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_prog_attach(
+        prog_fd: ::std::os::raw::c_int,
+        attachable_fd: ::std::os::raw::c_int,
+        type_: bpf_attach_type,
+        flags: ::std::os::raw::c_uint,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_prog_detach(
+        attachable_fd: ::std::os::raw::c_int,
+        type_: bpf_attach_type,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_prog_detach2(
+        prog_fd: ::std::os::raw::c_int,
+        attachable_fd: ::std::os::raw::c_int,
+        type_: bpf_attach_type,
+    ) -> ::std::os::raw::c_int;
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct bpf_prog_attach_opts {
+    pub sz: size_t,
+    pub flags: __u32,
+    pub __bindgen_anon_1: bpf_prog_attach_opts__bindgen_ty_1,
+    pub relative_fd: ::std::os::raw::c_int,
+    pub relative_id: __u32,
+    pub expected_revision: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_prog_attach_opts__bindgen_ty_1 {
+    pub replace_prog_fd: ::std::os::raw::c_int,
+    pub replace_fd: ::std::os::raw::c_int,
+}
+impl Default for bpf_prog_attach_opts__bindgen_ty_1 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+impl Default for bpf_prog_attach_opts {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_prog_detach_opts {
+    pub sz: size_t,
+    pub flags: __u32,
+    pub relative_fd: ::std::os::raw::c_int,
+    pub relative_id: __u32,
+    pub __bindgen_padding_0: [u8; 4usize],
+    pub expected_revision: __u64,
+}
+extern "C" {
+    pub fn bpf_prog_attach_opts(
+        prog_fd: ::std::os::raw::c_int,
+        target: ::std::os::raw::c_int,
+        type_: bpf_attach_type,
+        opts: *const bpf_prog_attach_opts,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_prog_detach_opts(
+        prog_fd: ::std::os::raw::c_int,
+        target: ::std::os::raw::c_int,
+        type_: bpf_attach_type,
+        opts: *const bpf_prog_detach_opts,
+    ) -> ::std::os::raw::c_int;
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct bpf_link_create_opts {
+    pub sz: size_t,
+    pub flags: __u32,
+    pub __bindgen_padding_0: [u8; 4usize],
+    pub iter_info: *mut bpf_iter_link_info,
+    pub iter_info_len: __u32,
+    pub target_btf_id: __u32,
+    pub __bindgen_anon_1: bpf_link_create_opts__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_link_create_opts__bindgen_ty_1 {
+    pub perf_event: bpf_link_create_opts__bindgen_ty_1__bindgen_ty_1,
+    pub kprobe_multi: bpf_link_create_opts__bindgen_ty_1__bindgen_ty_2,
+    pub uprobe_multi: bpf_link_create_opts__bindgen_ty_1__bindgen_ty_3,
+    pub tracing: bpf_link_create_opts__bindgen_ty_1__bindgen_ty_4,
+    pub netfilter: bpf_link_create_opts__bindgen_ty_1__bindgen_ty_5,
+    pub tcx: bpf_link_create_opts__bindgen_ty_1__bindgen_ty_6,
+    pub netkit: bpf_link_create_opts__bindgen_ty_1__bindgen_ty_7,
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_link_create_opts__bindgen_ty_1__bindgen_ty_1 {
+    pub bpf_cookie: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_link_create_opts__bindgen_ty_1__bindgen_ty_2 {
+    pub flags: __u32,
+    pub cnt: __u32,
+    pub syms: *mut *const ::std::os::raw::c_char,
+    pub addrs: *const ::std::os::raw::c_ulong,
+    pub cookies: *const __u64,
+}
+impl Default for bpf_link_create_opts__bindgen_ty_1__bindgen_ty_2 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_link_create_opts__bindgen_ty_1__bindgen_ty_3 {
+    pub flags: __u32,
+    pub cnt: __u32,
+    pub path: *const ::std::os::raw::c_char,
+    pub offsets: *const ::std::os::raw::c_ulong,
+    pub ref_ctr_offsets: *const ::std::os::raw::c_ulong,
+    pub cookies: *const __u64,
+    pub pid: __u32,
+    pub __bindgen_padding_0: [u8; 4usize],
+}
+impl Default for bpf_link_create_opts__bindgen_ty_1__bindgen_ty_3 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_link_create_opts__bindgen_ty_1__bindgen_ty_4 {
+    pub cookie: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_link_create_opts__bindgen_ty_1__bindgen_ty_5 {
+    pub pf: __u32,
+    pub hooknum: __u32,
+    pub priority: __s32,
+    pub flags: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_link_create_opts__bindgen_ty_1__bindgen_ty_6 {
+    pub relative_fd: __u32,
+    pub relative_id: __u32,
+    pub expected_revision: __u64,
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_link_create_opts__bindgen_ty_1__bindgen_ty_7 {
+    pub relative_fd: __u32,
+    pub relative_id: __u32,
+    pub expected_revision: __u64,
+}
+impl Default for bpf_link_create_opts__bindgen_ty_1 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+impl Default for bpf_link_create_opts {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+extern "C" {
+    pub fn bpf_link_create(
+        prog_fd: ::std::os::raw::c_int,
+        target_fd: ::std::os::raw::c_int,
+        attach_type: bpf_attach_type,
+        opts: *const bpf_link_create_opts,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_link_detach(link_fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_link_update_opts {
+    pub sz: size_t,
+    pub flags: __u32,
+    pub old_prog_fd: __u32,
+    pub old_map_fd: __u32,
+    pub __bindgen_padding_0: [u8; 4usize],
+}
+extern "C" {
+    pub fn bpf_link_update(
+        link_fd: ::std::os::raw::c_int,
+        new_prog_fd: ::std::os::raw::c_int,
+        opts: *const bpf_link_update_opts,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_iter_create(link_fd: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_prog_test_run_attr {
+    pub prog_fd: ::std::os::raw::c_int,
+    pub repeat: ::std::os::raw::c_int,
+    pub data_in: *const ::std::os::raw::c_void,
+    pub data_size_in: __u32,
+    pub __bindgen_padding_0: [u8; 4usize],
+    pub data_out: *mut ::std::os::raw::c_void,
+    pub data_size_out: __u32,
+    pub retval: __u32,
+    pub duration: __u32,
+    pub __bindgen_padding_1: [u8; 4usize],
+    pub ctx_in: *const ::std::os::raw::c_void,
+    pub ctx_size_in: __u32,
+    pub __bindgen_padding_2: [u8; 4usize],
+    pub ctx_out: *mut ::std::os::raw::c_void,
+    pub ctx_size_out: __u32,
+    pub __bindgen_padding_3: [u8; 4usize],
+}
+impl Default for bpf_prog_test_run_attr {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+extern "C" {
+    pub fn bpf_prog_get_next_id(start_id: __u32, next_id: *mut __u32) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_map_get_next_id(start_id: __u32, next_id: *mut __u32) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_btf_get_next_id(start_id: __u32, next_id: *mut __u32) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_link_get_next_id(start_id: __u32, next_id: *mut __u32) -> ::std::os::raw::c_int;
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_get_fd_by_id_opts {
+    pub sz: size_t,
+    pub open_flags: __u32,
+    pub __bindgen_padding_0: [u8; 4usize],
+}
+extern "C" {
+    pub fn bpf_prog_get_fd_by_id(id: __u32) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_prog_get_fd_by_id_opts(
+        id: __u32,
+        opts: *const bpf_get_fd_by_id_opts,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_map_get_fd_by_id(id: __u32) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_map_get_fd_by_id_opts(
+        id: __u32,
+        opts: *const bpf_get_fd_by_id_opts,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_btf_get_fd_by_id(id: __u32) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_btf_get_fd_by_id_opts(
+        id: __u32,
+        opts: *const bpf_get_fd_by_id_opts,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_link_get_fd_by_id(id: __u32) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_link_get_fd_by_id_opts(
+        id: __u32,
+        opts: *const bpf_get_fd_by_id_opts,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_obj_get_info_by_fd(
+        bpf_fd: ::std::os::raw::c_int,
+        info: *mut ::std::os::raw::c_void,
+        info_len: *mut __u32,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_prog_get_info_by_fd(
+        prog_fd: ::std::os::raw::c_int,
+        info: *mut bpf_prog_info,
+        info_len: *mut __u32,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_map_get_info_by_fd(
+        map_fd: ::std::os::raw::c_int,
+        info: *mut bpf_map_info,
+        info_len: *mut __u32,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_btf_get_info_by_fd(
+        btf_fd: ::std::os::raw::c_int,
+        info: *mut bpf_btf_info,
+        info_len: *mut __u32,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_link_get_info_by_fd(
+        link_fd: ::std::os::raw::c_int,
+        info: *mut bpf_link_info,
+        info_len: *mut __u32,
+    ) -> ::std::os::raw::c_int;
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct bpf_prog_query_opts {
+    pub sz: size_t,
+    pub query_flags: __u32,
+    pub attach_flags: __u32,
+    pub prog_ids: *mut __u32,
+    pub __bindgen_anon_1: bpf_prog_query_opts__bindgen_ty_1,
+    pub __bindgen_padding_0: [u8; 4usize],
+    pub prog_attach_flags: *mut __u32,
+    pub link_ids: *mut __u32,
+    pub link_attach_flags: *mut __u32,
+    pub revision: __u64,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union bpf_prog_query_opts__bindgen_ty_1 {
+    pub prog_cnt: __u32,
+    pub count: __u32,
+}
+impl Default for bpf_prog_query_opts__bindgen_ty_1 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+impl Default for bpf_prog_query_opts {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+extern "C" {
+    pub fn bpf_prog_query_opts(
+        target: ::std::os::raw::c_int,
+        type_: bpf_attach_type,
+        opts: *mut bpf_prog_query_opts,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_prog_query(
+        target_fd: ::std::os::raw::c_int,
+        type_: bpf_attach_type,
+        query_flags: __u32,
+        attach_flags: *mut __u32,
+        prog_ids: *mut __u32,
+        prog_cnt: *mut __u32,
+    ) -> ::std::os::raw::c_int;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_raw_tp_opts {
+    pub sz: size_t,
+    pub tp_name: *const ::std::os::raw::c_char,
+    pub cookie: __u64,
+}
+impl Default for bpf_raw_tp_opts {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+extern "C" {
+    pub fn bpf_raw_tracepoint_open_opts(
+        prog_fd: ::std::os::raw::c_int,
+        opts: *mut bpf_raw_tp_opts,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_raw_tracepoint_open(
+        name: *const ::std::os::raw::c_char,
+        prog_fd: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_task_fd_query(
+        pid: ::std::os::raw::c_int,
+        fd: ::std::os::raw::c_int,
+        flags: __u32,
+        buf: *mut ::std::os::raw::c_char,
+        buf_len: *mut __u32,
+        prog_id: *mut __u32,
+        fd_type: *mut __u32,
+        probe_offset: *mut __u64,
+        probe_addr: *mut __u64,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_enable_stats(type_: bpf_stats_type) -> ::std::os::raw::c_int;
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_prog_bind_opts {
+    pub sz: size_t,
+    pub flags: __u32,
+    pub __bindgen_padding_0: [u8; 4usize],
+}
+extern "C" {
+    pub fn bpf_prog_bind_map(
+        prog_fd: ::std::os::raw::c_int,
+        map_fd: ::std::os::raw::c_int,
+        opts: *const bpf_prog_bind_opts,
+    ) -> ::std::os::raw::c_int;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_test_run_opts {
+    pub sz: size_t,
+    pub data_in: *const ::std::os::raw::c_void,
+    pub data_out: *mut ::std::os::raw::c_void,
+    pub data_size_in: __u32,
+    pub data_size_out: __u32,
+    pub ctx_in: *const ::std::os::raw::c_void,
+    pub ctx_out: *mut ::std::os::raw::c_void,
+    pub ctx_size_in: __u32,
+    pub ctx_size_out: __u32,
+    pub retval: __u32,
+    pub repeat: ::std::os::raw::c_int,
+    pub duration: __u32,
+    pub flags: __u32,
+    pub cpu: __u32,
+    pub batch_size: __u32,
+}
+impl Default for bpf_test_run_opts {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+extern "C" {
+    pub fn bpf_prog_test_run_opts(
+        prog_fd: ::std::os::raw::c_int,
+        opts: *mut bpf_test_run_opts,
+    ) -> ::std::os::raw::c_int;
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_token_create_opts {
+    pub sz: size_t,
+    pub flags: __u32,
+    pub __bindgen_padding_0: [u8; 4usize],
+}
+extern "C" {
+    pub fn bpf_token_create(
+        bpffs_fd: ::std::os::raw::c_int,
+        opts: *mut bpf_token_create_opts,
+    ) -> ::std::os::raw::c_int;
+}
+pub type va_list = __builtin_va_list;
+pub type __gnuc_va_list = __builtin_va_list;
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct btf_header {
+    pub magic: __u16,
+    pub version: __u8,
+    pub flags: __u8,
+    pub hdr_len: __u32,
+    pub type_off: __u32,
+    pub type_len: __u32,
+    pub str_off: __u32,
+    pub str_len: __u32,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct btf_type {
+    pub name_off: __u32,
+    pub info: __u32,
+    pub __bindgen_anon_1: btf_type__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union btf_type__bindgen_ty_1 {
+    pub size: __u32,
+    pub type_: __u32,
+}
+impl Default for btf_type__bindgen_ty_1 {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+impl Default for btf_type {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+pub const BTF_KIND_UNKN: _bindgen_ty_102 = 0;
+pub const BTF_KIND_INT: _bindgen_ty_102 = 1;
+pub const BTF_KIND_PTR: _bindgen_ty_102 = 2;
+pub const BTF_KIND_ARRAY: _bindgen_ty_102 = 3;
+pub const BTF_KIND_STRUCT: _bindgen_ty_102 = 4;
+pub const BTF_KIND_UNION: _bindgen_ty_102 = 5;
+pub const BTF_KIND_ENUM: _bindgen_ty_102 = 6;
+pub const BTF_KIND_FWD: _bindgen_ty_102 = 7;
+pub const BTF_KIND_TYPEDEF: _bindgen_ty_102 = 8;
+pub const BTF_KIND_VOLATILE: _bindgen_ty_102 = 9;
+pub const BTF_KIND_CONST: _bindgen_ty_102 = 10;
+pub const BTF_KIND_RESTRICT: _bindgen_ty_102 = 11;
+pub const BTF_KIND_FUNC: _bindgen_ty_102 = 12;
+pub const BTF_KIND_FUNC_PROTO: _bindgen_ty_102 = 13;
+pub const BTF_KIND_VAR: _bindgen_ty_102 = 14;
+pub const BTF_KIND_DATASEC: _bindgen_ty_102 = 15;
+pub const BTF_KIND_FLOAT: _bindgen_ty_102 = 16;
+pub const BTF_KIND_DECL_TAG: _bindgen_ty_102 = 17;
+pub const BTF_KIND_TYPE_TAG: _bindgen_ty_102 = 18;
+pub const BTF_KIND_ENUM64: _bindgen_ty_102 = 19;
+pub const NR_BTF_KINDS: _bindgen_ty_102 = 20;
+pub const BTF_KIND_MAX: _bindgen_ty_102 = 19;
+pub type _bindgen_ty_102 = ::std::os::raw::c_uint;
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct btf_enum {
+    pub name_off: __u32,
+    pub val: __s32,
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct btf_array {
+    pub type_: __u32,
+    pub index_type: __u32,
+    pub nelems: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct btf_member {
+    pub name_off: __u32,
+    pub type_: __u32,
+    pub offset: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct btf_param {
+    pub name_off: __u32,
+    pub type_: __u32,
+}
+pub const BTF_VAR_STATIC: _bindgen_ty_103 = 0;
+pub const BTF_VAR_GLOBAL_ALLOCATED: _bindgen_ty_103 = 1;
+pub const BTF_VAR_GLOBAL_EXTERN: _bindgen_ty_103 = 2;
+pub type _bindgen_ty_103 = ::std::os::raw::c_uint;
+pub const BTF_FUNC_STATIC: btf_func_linkage = 0;
+pub const BTF_FUNC_GLOBAL: btf_func_linkage = 1;
+pub const BTF_FUNC_EXTERN: btf_func_linkage = 2;
+pub type btf_func_linkage = ::std::os::raw::c_uint;
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct btf_var {
+    pub linkage: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct btf_var_secinfo {
+    pub type_: __u32,
+    pub offset: __u32,
+    pub size: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct btf_decl_tag {
+    pub component_idx: __s32,
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct btf_enum64 {
+    pub name_off: __u32,
+    pub val_lo32: __u32,
+    pub val_hi32: __u32,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_object {
+    _unused: [u8; 0],
+}
+pub const BTF_LITTLE_ENDIAN: btf_endianness = 0;
+pub const BTF_BIG_ENDIAN: btf_endianness = 1;
+pub type btf_endianness = ::std::os::raw::c_uint;
+extern "C" {
+    pub fn btf__free(btf: *mut btf);
+}
+extern "C" {
+    pub fn btf__new(data: *const ::std::os::raw::c_void, size: __u32) -> *mut btf;
+}
+extern "C" {
+    pub fn btf__new_split(
+        data: *const ::std::os::raw::c_void,
+        size: __u32,
+        base_btf: *mut btf,
+    ) -> *mut btf;
+}
+extern "C" {
+    pub fn btf__new_empty() -> *mut btf;
+}
+extern "C" {
+    pub fn btf__new_empty_split(base_btf: *mut btf) -> *mut btf;
+}
+extern "C" {
+    pub fn btf__parse(path: *const ::std::os::raw::c_char, btf_ext: *mut *mut btf_ext) -> *mut btf;
+}
+extern "C" {
+    pub fn btf__parse_split(path: *const ::std::os::raw::c_char, base_btf: *mut btf) -> *mut btf;
+}
+extern "C" {
+    pub fn btf__parse_elf(
+        path: *const ::std::os::raw::c_char,
+        btf_ext: *mut *mut btf_ext,
+    ) -> *mut btf;
+}
+extern "C" {
+    pub fn btf__parse_elf_split(
+        path: *const ::std::os::raw::c_char,
+        base_btf: *mut btf,
+    ) -> *mut btf;
+}
+extern "C" {
+    pub fn btf__parse_raw(path: *const ::std::os::raw::c_char) -> *mut btf;
+}
+extern "C" {
+    pub fn btf__parse_raw_split(
+        path: *const ::std::os::raw::c_char,
+        base_btf: *mut btf,
+    ) -> *mut btf;
+}
+extern "C" {
+    pub fn btf__load_vmlinux_btf() -> *mut btf;
+}
+extern "C" {
+    pub fn btf__load_module_btf(
+        module_name: *const ::std::os::raw::c_char,
+        vmlinux_btf: *mut btf,
+    ) -> *mut btf;
+}
+extern "C" {
+    pub fn btf__load_from_kernel_by_id(id: __u32) -> *mut btf;
+}
+extern "C" {
+    pub fn btf__load_from_kernel_by_id_split(id: __u32, base_btf: *mut btf) -> *mut btf;
+}
+extern "C" {
+    pub fn btf__load_into_kernel(btf: *mut btf) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn btf__find_by_name(btf: *const btf, type_name: *const ::std::os::raw::c_char) -> __s32;
+}
+extern "C" {
+    pub fn btf__find_by_name_kind(
+        btf: *const btf,
+        type_name: *const ::std::os::raw::c_char,
+        kind: __u32,
+    ) -> __s32;
+}
+extern "C" {
+    pub fn btf__type_cnt(btf: *const btf) -> __u32;
+}
+extern "C" {
+    pub fn btf__base_btf(btf: *const btf) -> *const btf;
+}
+extern "C" {
+    pub fn btf__type_by_id(btf: *const btf, id: __u32) -> *const btf_type;
+}
+extern "C" {
+    pub fn btf__pointer_size(btf: *const btf) -> size_t;
+}
+extern "C" {
+    pub fn btf__set_pointer_size(btf: *mut btf, ptr_sz: size_t) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn btf__endianness(btf: *const btf) -> btf_endianness;
+}
+extern "C" {
+    pub fn btf__set_endianness(btf: *mut btf, endian: btf_endianness) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn btf__resolve_size(btf: *const btf, type_id: __u32) -> __s64;
+}
+extern "C" {
+    pub fn btf__resolve_type(btf: *const btf, type_id: __u32) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn btf__align_of(btf: *const btf, id: __u32) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn btf__fd(btf: *const btf) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn btf__set_fd(btf: *mut btf, fd: ::std::os::raw::c_int);
+}
+extern "C" {
+    pub fn btf__raw_data(btf: *const btf, size: *mut __u32) -> *const ::std::os::raw::c_void;
+}
+extern "C" {
+    pub fn btf__name_by_offset(btf: *const btf, offset: __u32) -> *const ::std::os::raw::c_char;
+}
+extern "C" {
+    pub fn btf__str_by_offset(btf: *const btf, offset: __u32) -> *const ::std::os::raw::c_char;
+}
+extern "C" {
+    pub fn btf_ext__new(data: *const __u8, size: __u32) -> *mut btf_ext;
+}
+extern "C" {
+    pub fn btf_ext__free(btf_ext: *mut btf_ext);
+}
+extern "C" {
+    pub fn btf_ext__raw_data(
+        btf_ext: *const btf_ext,
+        size: *mut __u32,
+    ) -> *const ::std::os::raw::c_void;
+}
+extern "C" {
+    pub fn btf__find_str(btf: *mut btf, s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn btf__add_str(btf: *mut btf, s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn btf__add_type(
+        btf: *mut btf,
+        src_btf: *const btf,
+        src_type: *const btf_type,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn btf__add_btf(btf: *mut btf, src_btf: *const btf) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn btf__add_int(
+        btf: *mut btf,
+        name: *const ::std::os::raw::c_char,
+        byte_sz: size_t,
+        encoding: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn btf__add_float(
+        btf: *mut btf,
+        name: *const ::std::os::raw::c_char,
+        byte_sz: size_t,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn btf__add_ptr(btf: *mut btf, ref_type_id: ::std::os::raw::c_int)
+        -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn btf__add_array(
+        btf: *mut btf,
+        index_type_id: ::std::os::raw::c_int,
+        elem_type_id: ::std::os::raw::c_int,
+        nr_elems: __u32,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn btf__add_struct(
+        btf: *mut btf,
+        name: *const ::std::os::raw::c_char,
+        sz: __u32,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn btf__add_union(
+        btf: *mut btf,
+        name: *const ::std::os::raw::c_char,
+        sz: __u32,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn btf__add_field(
+        btf: *mut btf,
+        name: *const ::std::os::raw::c_char,
+        field_type_id: ::std::os::raw::c_int,
+        bit_offset: __u32,
+        bit_size: __u32,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn btf__add_enum(
+        btf: *mut btf,
+        name: *const ::std::os::raw::c_char,
+        bytes_sz: __u32,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn btf__add_enum_value(
+        btf: *mut btf,
+        name: *const ::std::os::raw::c_char,
+        value: __s64,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn btf__add_enum64(
+        btf: *mut btf,
+        name: *const ::std::os::raw::c_char,
+        bytes_sz: __u32,
+        is_signed: bool,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn btf__add_enum64_value(
+        btf: *mut btf,
+        name: *const ::std::os::raw::c_char,
+        value: __u64,
+    ) -> ::std::os::raw::c_int;
+}
+pub const BTF_FWD_STRUCT: btf_fwd_kind = 0;
+pub const BTF_FWD_UNION: btf_fwd_kind = 1;
+pub const BTF_FWD_ENUM: btf_fwd_kind = 2;
+pub type btf_fwd_kind = ::std::os::raw::c_uint;
+extern "C" {
+    pub fn btf__add_fwd(
+        btf: *mut btf,
+        name: *const ::std::os::raw::c_char,
+        fwd_kind: btf_fwd_kind,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn btf__add_typedef(
+        btf: *mut btf,
+        name: *const ::std::os::raw::c_char,
+        ref_type_id: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn btf__add_volatile(
+        btf: *mut btf,
+        ref_type_id: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn btf__add_const(
+        btf: *mut btf,
+        ref_type_id: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn btf__add_restrict(
+        btf: *mut btf,
+        ref_type_id: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn btf__add_type_tag(
+        btf: *mut btf,
+        value: *const ::std::os::raw::c_char,
+        ref_type_id: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn btf__add_func(
+        btf: *mut btf,
+        name: *const ::std::os::raw::c_char,
+        linkage: btf_func_linkage,
+        proto_type_id: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn btf__add_func_proto(
+        btf: *mut btf,
+        ret_type_id: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn btf__add_func_param(
+        btf: *mut btf,
+        name: *const ::std::os::raw::c_char,
+        type_id: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn btf__add_var(
+        btf: *mut btf,
+        name: *const ::std::os::raw::c_char,
+        linkage: ::std::os::raw::c_int,
+        type_id: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn btf__add_datasec(
+        btf: *mut btf,
+        name: *const ::std::os::raw::c_char,
+        byte_sz: __u32,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn btf__add_datasec_var_info(
+        btf: *mut btf,
+        var_type_id: ::std::os::raw::c_int,
+        offset: __u32,
+        byte_sz: __u32,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn btf__add_decl_tag(
+        btf: *mut btf,
+        value: *const ::std::os::raw::c_char,
+        ref_type_id: ::std::os::raw::c_int,
+        component_idx: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btf_dedup_opts {
+    pub sz: size_t,
+    pub btf_ext: *mut btf_ext,
+    pub force_collisions: bool,
+    pub __bindgen_padding_0: [u8; 7usize],
+}
+impl Default for btf_dedup_opts {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+extern "C" {
+    pub fn btf__dedup(btf: *mut btf, opts: *const btf_dedup_opts) -> ::std::os::raw::c_int;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btf_dump {
+    _unused: [u8; 0],
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct btf_dump_opts {
+    pub sz: size_t,
+}
+pub type btf_dump_printf_fn_t = ::std::option::Option<
+    unsafe extern "C" fn(
+        ctx: *mut ::std::os::raw::c_void,
+        fmt: *const ::std::os::raw::c_char,
+        args: *mut __va_list_tag,
+    ),
+>;
+extern "C" {
+    pub fn btf_dump__new(
+        btf: *const btf,
+        printf_fn: btf_dump_printf_fn_t,
+        ctx: *mut ::std::os::raw::c_void,
+        opts: *const btf_dump_opts,
+    ) -> *mut btf_dump;
+}
+extern "C" {
+    pub fn btf_dump__free(d: *mut btf_dump);
+}
+extern "C" {
+    pub fn btf_dump__dump_type(d: *mut btf_dump, id: __u32) -> ::std::os::raw::c_int;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btf_dump_emit_type_decl_opts {
+    pub sz: size_t,
+    pub field_name: *const ::std::os::raw::c_char,
+    pub indent_level: ::std::os::raw::c_int,
+    pub strip_mods: bool,
+    pub __bindgen_padding_0: [u8; 3usize],
+}
+impl Default for btf_dump_emit_type_decl_opts {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+extern "C" {
+    pub fn btf_dump__emit_type_decl(
+        d: *mut btf_dump,
+        id: __u32,
+        opts: *const btf_dump_emit_type_decl_opts,
+    ) -> ::std::os::raw::c_int;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct btf_dump_type_data_opts {
+    pub sz: size_t,
+    pub indent_str: *const ::std::os::raw::c_char,
+    pub indent_level: ::std::os::raw::c_int,
+    pub compact: bool,
+    pub skip_names: bool,
+    pub emit_zeroes: bool,
+    pub __bindgen_padding_0: u8,
+}
+impl Default for btf_dump_type_data_opts {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+extern "C" {
+    pub fn btf_dump__dump_type_data(
+        d: *mut btf_dump,
+        id: __u32,
+        data: *const ::std::os::raw::c_void,
+        data_sz: size_t,
+        opts: *const btf_dump_type_data_opts,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn vdprintf(
+        __fd: ::std::os::raw::c_int,
+        __fmt: *const ::std::os::raw::c_char,
+        __arg: *mut __va_list_tag,
+    ) -> ::std::os::raw::c_int;
+}
+pub type pid_t = __pid_t;
+extern "C" {
+    pub fn libbpf_major_version() -> __u32;
+}
+extern "C" {
+    pub fn libbpf_minor_version() -> __u32;
+}
+extern "C" {
+    pub fn libbpf_version_string() -> *const ::std::os::raw::c_char;
+}
+extern "C" {
+    pub fn libbpf_strerror(
+        err: ::std::os::raw::c_int,
+        buf: *mut ::std::os::raw::c_char,
+        size: size_t,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn libbpf_bpf_attach_type_str(t: bpf_attach_type) -> *const ::std::os::raw::c_char;
+}
+extern "C" {
+    pub fn libbpf_bpf_link_type_str(t: bpf_link_type) -> *const ::std::os::raw::c_char;
+}
+extern "C" {
+    pub fn libbpf_bpf_map_type_str(t: bpf_map_type) -> *const ::std::os::raw::c_char;
+}
+extern "C" {
+    pub fn libbpf_bpf_prog_type_str(t: bpf_prog_type) -> *const ::std::os::raw::c_char;
+}
+pub const LIBBPF_WARN: libbpf_print_level = 0;
+pub const LIBBPF_INFO: libbpf_print_level = 1;
+pub const LIBBPF_DEBUG: libbpf_print_level = 2;
+pub type libbpf_print_level = ::std::os::raw::c_uint;
+pub type libbpf_print_fn_t = ::std::option::Option<
+    unsafe extern "C" fn(
+        level: libbpf_print_level,
+        arg1: *const ::std::os::raw::c_char,
+        ap: *mut __va_list_tag,
+    ) -> ::std::os::raw::c_int,
+>;
+extern "C" {
+    pub fn libbpf_set_print(fn_: libbpf_print_fn_t) -> libbpf_print_fn_t;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_object_open_opts {
+    pub sz: size_t,
+    pub object_name: *const ::std::os::raw::c_char,
+    pub relaxed_maps: bool,
+    pub __bindgen_padding_0: [u8; 7usize],
+    pub pin_root_path: *const ::std::os::raw::c_char,
+    pub _bitfield_align_1: [u8; 0],
+    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
+    pub __bindgen_padding_1: [u8; 4usize],
+    pub kconfig: *const ::std::os::raw::c_char,
+    pub btf_custom_path: *const ::std::os::raw::c_char,
+    pub kernel_log_buf: *mut ::std::os::raw::c_char,
+    pub kernel_log_size: size_t,
+    pub kernel_log_level: __u32,
+    pub __bindgen_padding_2: [u8; 4usize],
+    pub bpf_token_path: *const ::std::os::raw::c_char,
+}
+impl Default for bpf_object_open_opts {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+impl bpf_object_open_opts {
+    #[inline]
+    pub fn new_bitfield_1() -> __BindgenBitfieldUnit<[u8; 4usize]> {
+        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
+        __bindgen_bitfield_unit
+    }
+}
+extern "C" {
+    pub fn bpf_object__open(path: *const ::std::os::raw::c_char) -> *mut bpf_object;
+}
+extern "C" {
+    pub fn bpf_object__open_file(
+        path: *const ::std::os::raw::c_char,
+        opts: *const bpf_object_open_opts,
+    ) -> *mut bpf_object;
+}
+extern "C" {
+    pub fn bpf_object__open_mem(
+        obj_buf: *const ::std::os::raw::c_void,
+        obj_buf_sz: size_t,
+        opts: *const bpf_object_open_opts,
+    ) -> *mut bpf_object;
+}
+extern "C" {
+    pub fn bpf_object__load(obj: *mut bpf_object) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_object__close(obj: *mut bpf_object);
+}
+extern "C" {
+    pub fn bpf_object__pin_maps(
+        obj: *mut bpf_object,
+        path: *const ::std::os::raw::c_char,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_object__unpin_maps(
+        obj: *mut bpf_object,
+        path: *const ::std::os::raw::c_char,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_object__pin_programs(
+        obj: *mut bpf_object,
+        path: *const ::std::os::raw::c_char,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_object__unpin_programs(
+        obj: *mut bpf_object,
+        path: *const ::std::os::raw::c_char,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_object__pin(
+        object: *mut bpf_object,
+        path: *const ::std::os::raw::c_char,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_object__unpin(
+        object: *mut bpf_object,
+        path: *const ::std::os::raw::c_char,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_object__name(obj: *const bpf_object) -> *const ::std::os::raw::c_char;
+}
+extern "C" {
+    pub fn bpf_object__kversion(obj: *const bpf_object) -> ::std::os::raw::c_uint;
+}
+extern "C" {
+    pub fn bpf_object__set_kversion(
+        obj: *mut bpf_object,
+        kern_version: __u32,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_object__btf(obj: *const bpf_object) -> *mut btf;
+}
+extern "C" {
+    pub fn bpf_object__btf_fd(obj: *const bpf_object) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_object__find_program_by_name(
+        obj: *const bpf_object,
+        name: *const ::std::os::raw::c_char,
+    ) -> *mut bpf_program;
+}
+extern "C" {
+    pub fn libbpf_prog_type_by_name(
+        name: *const ::std::os::raw::c_char,
+        prog_type: *mut bpf_prog_type,
+        expected_attach_type: *mut bpf_attach_type,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn libbpf_attach_type_by_name(
+        name: *const ::std::os::raw::c_char,
+        attach_type: *mut bpf_attach_type,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn libbpf_find_vmlinux_btf_id(
+        name: *const ::std::os::raw::c_char,
+        attach_type: bpf_attach_type,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_object__next_program(
+        obj: *const bpf_object,
+        prog: *mut bpf_program,
+    ) -> *mut bpf_program;
+}
+extern "C" {
+    pub fn bpf_object__prev_program(
+        obj: *const bpf_object,
+        prog: *mut bpf_program,
+    ) -> *mut bpf_program;
+}
+extern "C" {
+    pub fn bpf_program__set_ifindex(prog: *mut bpf_program, ifindex: __u32);
+}
+extern "C" {
+    pub fn bpf_program__name(prog: *const bpf_program) -> *const ::std::os::raw::c_char;
+}
+extern "C" {
+    pub fn bpf_program__section_name(prog: *const bpf_program) -> *const ::std::os::raw::c_char;
+}
+extern "C" {
+    pub fn bpf_program__autoload(prog: *const bpf_program) -> bool;
+}
+extern "C" {
+    pub fn bpf_program__set_autoload(
+        prog: *mut bpf_program,
+        autoload: bool,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_program__autoattach(prog: *const bpf_program) -> bool;
+}
+extern "C" {
+    pub fn bpf_program__set_autoattach(prog: *mut bpf_program, autoattach: bool);
+}
+extern "C" {
+    pub fn bpf_program__insns(prog: *const bpf_program) -> *const bpf_insn;
+}
+extern "C" {
+    pub fn bpf_program__set_insns(
+        prog: *mut bpf_program,
+        new_insns: *mut bpf_insn,
+        new_insn_cnt: size_t,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_program__insn_cnt(prog: *const bpf_program) -> size_t;
+}
+extern "C" {
+    pub fn bpf_program__fd(prog: *const bpf_program) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_program__pin(
+        prog: *mut bpf_program,
+        path: *const ::std::os::raw::c_char,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_program__unpin(
+        prog: *mut bpf_program,
+        path: *const ::std::os::raw::c_char,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_program__unload(prog: *mut bpf_program);
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_link {
+    _unused: [u8; 0],
+}
+extern "C" {
+    pub fn bpf_link__open(path: *const ::std::os::raw::c_char) -> *mut bpf_link;
+}
+extern "C" {
+    pub fn bpf_link__fd(link: *const bpf_link) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_link__pin_path(link: *const bpf_link) -> *const ::std::os::raw::c_char;
+}
+extern "C" {
+    pub fn bpf_link__pin(
+        link: *mut bpf_link,
+        path: *const ::std::os::raw::c_char,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_link__unpin(link: *mut bpf_link) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_link__update_program(
+        link: *mut bpf_link,
+        prog: *mut bpf_program,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_link__disconnect(link: *mut bpf_link);
+}
+extern "C" {
+    pub fn bpf_link__detach(link: *mut bpf_link) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_link__destroy(link: *mut bpf_link) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_program__attach(prog: *const bpf_program) -> *mut bpf_link;
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_perf_event_opts {
+    pub sz: size_t,
+    pub bpf_cookie: __u64,
+    pub force_ioctl_attach: bool,
+    pub __bindgen_padding_0: [u8; 7usize],
+}
+extern "C" {
+    pub fn bpf_program__attach_perf_event(
+        prog: *const bpf_program,
+        pfd: ::std::os::raw::c_int,
+    ) -> *mut bpf_link;
+}
+extern "C" {
+    pub fn bpf_program__attach_perf_event_opts(
+        prog: *const bpf_program,
+        pfd: ::std::os::raw::c_int,
+        opts: *const bpf_perf_event_opts,
+    ) -> *mut bpf_link;
+}
+pub const PROBE_ATTACH_MODE_DEFAULT: probe_attach_mode = 0;
+pub const PROBE_ATTACH_MODE_LEGACY: probe_attach_mode = 1;
+pub const PROBE_ATTACH_MODE_PERF: probe_attach_mode = 2;
+pub const PROBE_ATTACH_MODE_LINK: probe_attach_mode = 3;
+pub type probe_attach_mode = ::std::os::raw::c_uint;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_kprobe_opts {
+    pub sz: size_t,
+    pub bpf_cookie: __u64,
+    pub offset: size_t,
+    pub retprobe: bool,
+    pub __bindgen_padding_0: [u8; 3usize],
+    pub attach_mode: probe_attach_mode,
+}
+impl Default for bpf_kprobe_opts {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+extern "C" {
+    pub fn bpf_program__attach_kprobe(
+        prog: *const bpf_program,
+        retprobe: bool,
+        func_name: *const ::std::os::raw::c_char,
+    ) -> *mut bpf_link;
+}
+extern "C" {
+    pub fn bpf_program__attach_kprobe_opts(
+        prog: *const bpf_program,
+        func_name: *const ::std::os::raw::c_char,
+        opts: *const bpf_kprobe_opts,
+    ) -> *mut bpf_link;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_kprobe_multi_opts {
+    pub sz: size_t,
+    pub syms: *mut *const ::std::os::raw::c_char,
+    pub addrs: *const ::std::os::raw::c_ulong,
+    pub cookies: *const __u64,
+    pub cnt: size_t,
+    pub retprobe: bool,
+    pub __bindgen_padding_0: [u8; 7usize],
+}
+impl Default for bpf_kprobe_multi_opts {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+extern "C" {
+    pub fn bpf_program__attach_kprobe_multi_opts(
+        prog: *const bpf_program,
+        pattern: *const ::std::os::raw::c_char,
+        opts: *const bpf_kprobe_multi_opts,
+    ) -> *mut bpf_link;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_uprobe_multi_opts {
+    pub sz: size_t,
+    pub syms: *mut *const ::std::os::raw::c_char,
+    pub offsets: *const ::std::os::raw::c_ulong,
+    pub ref_ctr_offsets: *const ::std::os::raw::c_ulong,
+    pub cookies: *const __u64,
+    pub cnt: size_t,
+    pub retprobe: bool,
+    pub __bindgen_padding_0: [u8; 7usize],
+}
+impl Default for bpf_uprobe_multi_opts {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+extern "C" {
+    pub fn bpf_program__attach_uprobe_multi(
+        prog: *const bpf_program,
+        pid: pid_t,
+        binary_path: *const ::std::os::raw::c_char,
+        func_pattern: *const ::std::os::raw::c_char,
+        opts: *const bpf_uprobe_multi_opts,
+    ) -> *mut bpf_link;
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_ksyscall_opts {
+    pub sz: size_t,
+    pub bpf_cookie: __u64,
+    pub retprobe: bool,
+    pub __bindgen_padding_0: [u8; 7usize],
+}
+extern "C" {
+    pub fn bpf_program__attach_ksyscall(
+        prog: *const bpf_program,
+        syscall_name: *const ::std::os::raw::c_char,
+        opts: *const bpf_ksyscall_opts,
+    ) -> *mut bpf_link;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_uprobe_opts {
+    pub sz: size_t,
+    pub ref_ctr_offset: size_t,
+    pub bpf_cookie: __u64,
+    pub retprobe: bool,
+    pub __bindgen_padding_0: [u8; 7usize],
+    pub func_name: *const ::std::os::raw::c_char,
+    pub attach_mode: probe_attach_mode,
+    pub __bindgen_padding_1: [u8; 4usize],
+}
+impl Default for bpf_uprobe_opts {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+extern "C" {
+    pub fn bpf_program__attach_uprobe(
+        prog: *const bpf_program,
+        retprobe: bool,
+        pid: pid_t,
+        binary_path: *const ::std::os::raw::c_char,
+        func_offset: size_t,
+    ) -> *mut bpf_link;
+}
+extern "C" {
+    pub fn bpf_program__attach_uprobe_opts(
+        prog: *const bpf_program,
+        pid: pid_t,
+        binary_path: *const ::std::os::raw::c_char,
+        func_offset: size_t,
+        opts: *const bpf_uprobe_opts,
+    ) -> *mut bpf_link;
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_usdt_opts {
+    pub sz: size_t,
+    pub usdt_cookie: __u64,
+}
+extern "C" {
+    pub fn bpf_program__attach_usdt(
+        prog: *const bpf_program,
+        pid: pid_t,
+        binary_path: *const ::std::os::raw::c_char,
+        usdt_provider: *const ::std::os::raw::c_char,
+        usdt_name: *const ::std::os::raw::c_char,
+        opts: *const bpf_usdt_opts,
+    ) -> *mut bpf_link;
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_tracepoint_opts {
+    pub sz: size_t,
+    pub bpf_cookie: __u64,
+}
+extern "C" {
+    pub fn bpf_program__attach_tracepoint(
+        prog: *const bpf_program,
+        tp_category: *const ::std::os::raw::c_char,
+        tp_name: *const ::std::os::raw::c_char,
+    ) -> *mut bpf_link;
+}
+extern "C" {
+    pub fn bpf_program__attach_tracepoint_opts(
+        prog: *const bpf_program,
+        tp_category: *const ::std::os::raw::c_char,
+        tp_name: *const ::std::os::raw::c_char,
+        opts: *const bpf_tracepoint_opts,
+    ) -> *mut bpf_link;
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_raw_tracepoint_opts {
+    pub sz: size_t,
+    pub cookie: __u64,
+}
+extern "C" {
+    pub fn bpf_program__attach_raw_tracepoint(
+        prog: *const bpf_program,
+        tp_name: *const ::std::os::raw::c_char,
+    ) -> *mut bpf_link;
+}
+extern "C" {
+    pub fn bpf_program__attach_raw_tracepoint_opts(
+        prog: *const bpf_program,
+        tp_name: *const ::std::os::raw::c_char,
+        opts: *mut bpf_raw_tracepoint_opts,
+    ) -> *mut bpf_link;
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_trace_opts {
+    pub sz: size_t,
+    pub cookie: __u64,
+}
+extern "C" {
+    pub fn bpf_program__attach_trace(prog: *const bpf_program) -> *mut bpf_link;
+}
+extern "C" {
+    pub fn bpf_program__attach_trace_opts(
+        prog: *const bpf_program,
+        opts: *const bpf_trace_opts,
+    ) -> *mut bpf_link;
+}
+extern "C" {
+    pub fn bpf_program__attach_lsm(prog: *const bpf_program) -> *mut bpf_link;
+}
+extern "C" {
+    pub fn bpf_program__attach_cgroup(
+        prog: *const bpf_program,
+        cgroup_fd: ::std::os::raw::c_int,
+    ) -> *mut bpf_link;
+}
+extern "C" {
+    pub fn bpf_program__attach_netns(
+        prog: *const bpf_program,
+        netns_fd: ::std::os::raw::c_int,
+    ) -> *mut bpf_link;
+}
+extern "C" {
+    pub fn bpf_program__attach_xdp(
+        prog: *const bpf_program,
+        ifindex: ::std::os::raw::c_int,
+    ) -> *mut bpf_link;
+}
+extern "C" {
+    pub fn bpf_program__attach_freplace(
+        prog: *const bpf_program,
+        target_fd: ::std::os::raw::c_int,
+        attach_func_name: *const ::std::os::raw::c_char,
+    ) -> *mut bpf_link;
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_netfilter_opts {
+    pub sz: size_t,
+    pub pf: __u32,
+    pub hooknum: __u32,
+    pub priority: __s32,
+    pub flags: __u32,
+}
+extern "C" {
+    pub fn bpf_program__attach_netfilter(
+        prog: *const bpf_program,
+        opts: *const bpf_netfilter_opts,
+    ) -> *mut bpf_link;
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_tcx_opts {
+    pub sz: size_t,
+    pub flags: __u32,
+    pub relative_fd: __u32,
+    pub relative_id: __u32,
+    pub __bindgen_padding_0: [u8; 4usize],
+    pub expected_revision: __u64,
+}
+extern "C" {
+    pub fn bpf_program__attach_tcx(
+        prog: *const bpf_program,
+        ifindex: ::std::os::raw::c_int,
+        opts: *const bpf_tcx_opts,
+    ) -> *mut bpf_link;
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_netkit_opts {
+    pub sz: size_t,
+    pub flags: __u32,
+    pub relative_fd: __u32,
+    pub relative_id: __u32,
+    pub __bindgen_padding_0: [u8; 4usize],
+    pub expected_revision: __u64,
+}
+extern "C" {
+    pub fn bpf_program__attach_netkit(
+        prog: *const bpf_program,
+        ifindex: ::std::os::raw::c_int,
+        opts: *const bpf_netkit_opts,
+    ) -> *mut bpf_link;
+}
+extern "C" {
+    pub fn bpf_map__attach_struct_ops(map: *const bpf_map) -> *mut bpf_link;
+}
+extern "C" {
+    pub fn bpf_link__update_map(link: *mut bpf_link, map: *const bpf_map) -> ::std::os::raw::c_int;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_iter_attach_opts {
+    pub sz: size_t,
+    pub link_info: *mut bpf_iter_link_info,
+    pub link_info_len: __u32,
+    pub __bindgen_padding_0: [u8; 4usize],
+}
+impl Default for bpf_iter_attach_opts {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+extern "C" {
+    pub fn bpf_program__attach_iter(
+        prog: *const bpf_program,
+        opts: *const bpf_iter_attach_opts,
+    ) -> *mut bpf_link;
+}
+extern "C" {
+    pub fn bpf_program__type(prog: *const bpf_program) -> bpf_prog_type;
+}
+extern "C" {
+    pub fn bpf_program__set_type(
+        prog: *mut bpf_program,
+        type_: bpf_prog_type,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_program__expected_attach_type(prog: *const bpf_program) -> bpf_attach_type;
+}
+extern "C" {
+    pub fn bpf_program__set_expected_attach_type(
+        prog: *mut bpf_program,
+        type_: bpf_attach_type,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_program__flags(prog: *const bpf_program) -> __u32;
+}
+extern "C" {
+    pub fn bpf_program__set_flags(prog: *mut bpf_program, flags: __u32) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_program__log_level(prog: *const bpf_program) -> __u32;
+}
+extern "C" {
+    pub fn bpf_program__set_log_level(
+        prog: *mut bpf_program,
+        log_level: __u32,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_program__log_buf(
+        prog: *const bpf_program,
+        log_size: *mut size_t,
+    ) -> *const ::std::os::raw::c_char;
+}
+extern "C" {
+    pub fn bpf_program__set_log_buf(
+        prog: *mut bpf_program,
+        log_buf: *mut ::std::os::raw::c_char,
+        log_size: size_t,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_program__set_attach_target(
+        prog: *mut bpf_program,
+        attach_prog_fd: ::std::os::raw::c_int,
+        attach_func_name: *const ::std::os::raw::c_char,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_object__find_map_by_name(
+        obj: *const bpf_object,
+        name: *const ::std::os::raw::c_char,
+    ) -> *mut bpf_map;
+}
+extern "C" {
+    pub fn bpf_object__find_map_fd_by_name(
+        obj: *const bpf_object,
+        name: *const ::std::os::raw::c_char,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_object__next_map(obj: *const bpf_object, map: *const bpf_map) -> *mut bpf_map;
+}
+extern "C" {
+    pub fn bpf_object__prev_map(obj: *const bpf_object, map: *const bpf_map) -> *mut bpf_map;
+}
+extern "C" {
+    pub fn bpf_map__set_autocreate(map: *mut bpf_map, autocreate: bool) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_map__autocreate(map: *const bpf_map) -> bool;
+}
+extern "C" {
+    pub fn bpf_map__fd(map: *const bpf_map) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_map__reuse_fd(map: *mut bpf_map, fd: ::std::os::raw::c_int)
+        -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_map__name(map: *const bpf_map) -> *const ::std::os::raw::c_char;
+}
+extern "C" {
+    pub fn bpf_map__type(map: *const bpf_map) -> bpf_map_type;
+}
+extern "C" {
+    pub fn bpf_map__set_type(map: *mut bpf_map, type_: bpf_map_type) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_map__max_entries(map: *const bpf_map) -> __u32;
+}
+extern "C" {
+    pub fn bpf_map__set_max_entries(map: *mut bpf_map, max_entries: __u32)
+        -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_map__map_flags(map: *const bpf_map) -> __u32;
+}
+extern "C" {
+    pub fn bpf_map__set_map_flags(map: *mut bpf_map, flags: __u32) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_map__numa_node(map: *const bpf_map) -> __u32;
+}
+extern "C" {
+    pub fn bpf_map__set_numa_node(map: *mut bpf_map, numa_node: __u32) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_map__key_size(map: *const bpf_map) -> __u32;
+}
+extern "C" {
+    pub fn bpf_map__set_key_size(map: *mut bpf_map, size: __u32) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_map__value_size(map: *const bpf_map) -> __u32;
+}
+extern "C" {
+    pub fn bpf_map__set_value_size(map: *mut bpf_map, size: __u32) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_map__btf_key_type_id(map: *const bpf_map) -> __u32;
+}
+extern "C" {
+    pub fn bpf_map__btf_value_type_id(map: *const bpf_map) -> __u32;
+}
+extern "C" {
+    pub fn bpf_map__ifindex(map: *const bpf_map) -> __u32;
+}
+extern "C" {
+    pub fn bpf_map__set_ifindex(map: *mut bpf_map, ifindex: __u32) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_map__map_extra(map: *const bpf_map) -> __u64;
+}
+extern "C" {
+    pub fn bpf_map__set_map_extra(map: *mut bpf_map, map_extra: __u64) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_map__set_initial_value(
+        map: *mut bpf_map,
+        data: *const ::std::os::raw::c_void,
+        size: size_t,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_map__initial_value(
+        map: *const bpf_map,
+        psize: *mut size_t,
+    ) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    pub fn bpf_map__is_internal(map: *const bpf_map) -> bool;
+}
+extern "C" {
+    pub fn bpf_map__set_pin_path(
+        map: *mut bpf_map,
+        path: *const ::std::os::raw::c_char,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_map__pin_path(map: *const bpf_map) -> *const ::std::os::raw::c_char;
+}
+extern "C" {
+    pub fn bpf_map__is_pinned(map: *const bpf_map) -> bool;
+}
+extern "C" {
+    pub fn bpf_map__pin(
+        map: *mut bpf_map,
+        path: *const ::std::os::raw::c_char,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_map__unpin(
+        map: *mut bpf_map,
+        path: *const ::std::os::raw::c_char,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_map__set_inner_map_fd(
+        map: *mut bpf_map,
+        fd: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_map__inner_map(map: *mut bpf_map) -> *mut bpf_map;
+}
+extern "C" {
+    pub fn bpf_map__lookup_elem(
+        map: *const bpf_map,
+        key: *const ::std::os::raw::c_void,
+        key_sz: size_t,
+        value: *mut ::std::os::raw::c_void,
+        value_sz: size_t,
+        flags: __u64,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_map__update_elem(
+        map: *const bpf_map,
+        key: *const ::std::os::raw::c_void,
+        key_sz: size_t,
+        value: *const ::std::os::raw::c_void,
+        value_sz: size_t,
+        flags: __u64,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_map__delete_elem(
+        map: *const bpf_map,
+        key: *const ::std::os::raw::c_void,
+        key_sz: size_t,
+        flags: __u64,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_map__lookup_and_delete_elem(
+        map: *const bpf_map,
+        key: *const ::std::os::raw::c_void,
+        key_sz: size_t,
+        value: *mut ::std::os::raw::c_void,
+        value_sz: size_t,
+        flags: __u64,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_map__get_next_key(
+        map: *const bpf_map,
+        cur_key: *const ::std::os::raw::c_void,
+        next_key: *mut ::std::os::raw::c_void,
+        key_sz: size_t,
+    ) -> ::std::os::raw::c_int;
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_xdp_set_link_opts {
+    pub sz: size_t,
+    pub old_fd: ::std::os::raw::c_int,
+    pub __bindgen_padding_0: [u8; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_xdp_attach_opts {
+    pub sz: size_t,
+    pub old_prog_fd: ::std::os::raw::c_int,
+    pub __bindgen_padding_0: [u8; 4usize],
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_xdp_query_opts {
+    pub sz: size_t,
+    pub prog_id: __u32,
+    pub drv_prog_id: __u32,
+    pub hw_prog_id: __u32,
+    pub skb_prog_id: __u32,
+    pub attach_mode: __u8,
+    pub __bindgen_padding_0: [u8; 7usize],
+    pub feature_flags: __u64,
+    pub xdp_zc_max_segs: __u32,
+    pub __bindgen_padding_1: [u8; 4usize],
+}
+extern "C" {
+    pub fn bpf_xdp_attach(
+        ifindex: ::std::os::raw::c_int,
+        prog_fd: ::std::os::raw::c_int,
+        flags: __u32,
+        opts: *const bpf_xdp_attach_opts,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_xdp_detach(
+        ifindex: ::std::os::raw::c_int,
+        flags: __u32,
+        opts: *const bpf_xdp_attach_opts,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_xdp_query(
+        ifindex: ::std::os::raw::c_int,
+        flags: ::std::os::raw::c_int,
+        opts: *mut bpf_xdp_query_opts,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_xdp_query_id(
+        ifindex: ::std::os::raw::c_int,
+        flags: ::std::os::raw::c_int,
+        prog_id: *mut __u32,
+    ) -> ::std::os::raw::c_int;
+}
+pub const BPF_TC_INGRESS: bpf_tc_attach_point = 1;
+pub const BPF_TC_EGRESS: bpf_tc_attach_point = 2;
+pub const BPF_TC_CUSTOM: bpf_tc_attach_point = 4;
+pub type bpf_tc_attach_point = ::std::os::raw::c_uint;
+pub const BPF_TC_F_REPLACE: bpf_tc_flags = 1;
+pub type bpf_tc_flags = ::std::os::raw::c_uint;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_tc_hook {
+    pub sz: size_t,
+    pub ifindex: ::std::os::raw::c_int,
+    pub attach_point: bpf_tc_attach_point,
+    pub parent: __u32,
+    pub __bindgen_padding_0: [u8; 4usize],
+}
+impl Default for bpf_tc_hook {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_tc_opts {
+    pub sz: size_t,
+    pub prog_fd: ::std::os::raw::c_int,
+    pub flags: __u32,
+    pub prog_id: __u32,
+    pub handle: __u32,
+    pub priority: __u32,
+    pub __bindgen_padding_0: [u8; 4usize],
+}
+extern "C" {
+    pub fn bpf_tc_hook_create(hook: *mut bpf_tc_hook) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_tc_hook_destroy(hook: *mut bpf_tc_hook) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_tc_attach(hook: *const bpf_tc_hook, opts: *mut bpf_tc_opts)
+        -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_tc_detach(
+        hook: *const bpf_tc_hook,
+        opts: *const bpf_tc_opts,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_tc_query(hook: *const bpf_tc_hook, opts: *mut bpf_tc_opts) -> ::std::os::raw::c_int;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ring_buffer {
+    _unused: [u8; 0],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct ring {
+    _unused: [u8; 0],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct user_ring_buffer {
+    _unused: [u8; 0],
+}
+pub type ring_buffer_sample_fn = ::std::option::Option<
+    unsafe extern "C" fn(
+        ctx: *mut ::std::os::raw::c_void,
+        data: *mut ::std::os::raw::c_void,
+        size: size_t,
+    ) -> ::std::os::raw::c_int,
+>;
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct ring_buffer_opts {
+    pub sz: size_t,
+}
+extern "C" {
+    pub fn ring_buffer__new(
+        map_fd: ::std::os::raw::c_int,
+        sample_cb: ring_buffer_sample_fn,
+        ctx: *mut ::std::os::raw::c_void,
+        opts: *const ring_buffer_opts,
+    ) -> *mut ring_buffer;
+}
+extern "C" {
+    pub fn ring_buffer__free(rb: *mut ring_buffer);
+}
+extern "C" {
+    pub fn ring_buffer__add(
+        rb: *mut ring_buffer,
+        map_fd: ::std::os::raw::c_int,
+        sample_cb: ring_buffer_sample_fn,
+        ctx: *mut ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ring_buffer__poll(
+        rb: *mut ring_buffer,
+        timeout_ms: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ring_buffer__consume(rb: *mut ring_buffer) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ring_buffer__epoll_fd(rb: *const ring_buffer) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn ring_buffer__ring(rb: *mut ring_buffer, idx: ::std::os::raw::c_uint) -> *mut ring;
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct user_ring_buffer_opts {
+    pub sz: size_t,
+}
+extern "C" {
+    pub fn user_ring_buffer__new(
+        map_fd: ::std::os::raw::c_int,
+        opts: *const user_ring_buffer_opts,
+    ) -> *mut user_ring_buffer;
+}
+extern "C" {
+    pub fn user_ring_buffer__reserve(
+        rb: *mut user_ring_buffer,
+        size: __u32,
+    ) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    pub fn user_ring_buffer__reserve_blocking(
+        rb: *mut user_ring_buffer,
+        size: __u32,
+        timeout_ms: ::std::os::raw::c_int,
+    ) -> *mut ::std::os::raw::c_void;
+}
+extern "C" {
+    pub fn user_ring_buffer__submit(rb: *mut user_ring_buffer, sample: *mut ::std::os::raw::c_void);
+}
+extern "C" {
+    pub fn user_ring_buffer__discard(
+        rb: *mut user_ring_buffer,
+        sample: *mut ::std::os::raw::c_void,
+    );
+}
+extern "C" {
+    pub fn user_ring_buffer__free(rb: *mut user_ring_buffer);
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct perf_buffer {
+    _unused: [u8; 0],
+}
+pub type perf_buffer_sample_fn = ::std::option::Option<
+    unsafe extern "C" fn(
+        ctx: *mut ::std::os::raw::c_void,
+        cpu: ::std::os::raw::c_int,
+        data: *mut ::std::os::raw::c_void,
+        size: __u32,
+    ),
+>;
+pub type perf_buffer_lost_fn = ::std::option::Option<
+    unsafe extern "C" fn(ctx: *mut ::std::os::raw::c_void, cpu: ::std::os::raw::c_int, cnt: __u64),
+>;
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct perf_buffer_opts {
+    pub sz: size_t,
+    pub sample_period: __u32,
+    pub __bindgen_padding_0: [u8; 4usize],
+}
+extern "C" {
+    pub fn perf_buffer__new(
+        map_fd: ::std::os::raw::c_int,
+        page_cnt: size_t,
+        sample_cb: perf_buffer_sample_fn,
+        lost_cb: perf_buffer_lost_fn,
+        ctx: *mut ::std::os::raw::c_void,
+        opts: *const perf_buffer_opts,
+    ) -> *mut perf_buffer;
+}
+pub const LIBBPF_PERF_EVENT_DONE: bpf_perf_event_ret = 0;
+pub const LIBBPF_PERF_EVENT_ERROR: bpf_perf_event_ret = -1;
+pub const LIBBPF_PERF_EVENT_CONT: bpf_perf_event_ret = -2;
+pub type bpf_perf_event_ret = ::std::os::raw::c_int;
+pub type perf_buffer_event_fn = ::std::option::Option<
+    unsafe extern "C" fn(
+        ctx: *mut ::std::os::raw::c_void,
+        cpu: ::std::os::raw::c_int,
+        event: *mut perf_event_header,
+    ) -> bpf_perf_event_ret,
+>;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct perf_buffer_raw_opts {
+    pub sz: size_t,
+    pub cpu_cnt: ::std::os::raw::c_int,
+    pub __bindgen_padding_0: [u8; 4usize],
+    pub cpus: *mut ::std::os::raw::c_int,
+    pub map_keys: *mut ::std::os::raw::c_int,
+}
+impl Default for perf_buffer_raw_opts {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+extern "C" {
+    pub fn perf_buffer__new_raw(
+        map_fd: ::std::os::raw::c_int,
+        page_cnt: size_t,
+        attr: *mut perf_event_attr,
+        event_cb: perf_buffer_event_fn,
+        ctx: *mut ::std::os::raw::c_void,
+        opts: *const perf_buffer_raw_opts,
+    ) -> *mut perf_buffer;
+}
+extern "C" {
+    pub fn perf_buffer__free(pb: *mut perf_buffer);
+}
+extern "C" {
+    pub fn perf_buffer__epoll_fd(pb: *const perf_buffer) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn perf_buffer__poll(
+        pb: *mut perf_buffer,
+        timeout_ms: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn perf_buffer__consume(pb: *mut perf_buffer) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn perf_buffer__consume_buffer(
+        pb: *mut perf_buffer,
+        buf_idx: size_t,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn perf_buffer__buffer_cnt(pb: *const perf_buffer) -> size_t;
+}
+extern "C" {
+    pub fn perf_buffer__buffer_fd(pb: *const perf_buffer, buf_idx: size_t)
+        -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn perf_buffer__buffer(
+        pb: *mut perf_buffer,
+        buf_idx: ::std::os::raw::c_int,
+        buf: *mut *mut ::std::os::raw::c_void,
+        buf_size: *mut size_t,
+    ) -> ::std::os::raw::c_int;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_prog_linfo {
+    _unused: [u8; 0],
+}
+extern "C" {
+    pub fn bpf_prog_linfo__free(prog_linfo: *mut bpf_prog_linfo);
+}
+extern "C" {
+    pub fn bpf_prog_linfo__new(info: *const bpf_prog_info) -> *mut bpf_prog_linfo;
+}
+extern "C" {
+    pub fn bpf_prog_linfo__lfind_addr_func(
+        prog_linfo: *const bpf_prog_linfo,
+        addr: __u64,
+        func_idx: __u32,
+        nr_skip: __u32,
+    ) -> *const bpf_line_info;
+}
+extern "C" {
+    pub fn bpf_prog_linfo__lfind(
+        prog_linfo: *const bpf_prog_linfo,
+        insn_off: __u32,
+        nr_skip: __u32,
+    ) -> *const bpf_line_info;
+}
+extern "C" {
+    pub fn libbpf_probe_bpf_prog_type(
+        prog_type: bpf_prog_type,
+        opts: *const ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn libbpf_probe_bpf_map_type(
+        map_type: bpf_map_type,
+        opts: *const ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn libbpf_probe_bpf_helper(
+        prog_type: bpf_prog_type,
+        helper_id: bpf_func_id,
+        opts: *const ::std::os::raw::c_void,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn libbpf_num_possible_cpus() -> ::std::os::raw::c_int;
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_map_skeleton {
+    pub name: *const ::std::os::raw::c_char,
+    pub map: *mut *mut bpf_map,
+    pub mmaped: *mut *mut ::std::os::raw::c_void,
+}
+impl Default for bpf_map_skeleton {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_prog_skeleton {
+    pub name: *const ::std::os::raw::c_char,
+    pub prog: *mut *mut bpf_program,
+    pub link: *mut *mut bpf_link,
+}
+impl Default for bpf_prog_skeleton {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_object_skeleton {
+    pub sz: size_t,
+    pub name: *const ::std::os::raw::c_char,
+    pub data: *const ::std::os::raw::c_void,
+    pub data_sz: size_t,
+    pub obj: *mut *mut bpf_object,
+    pub map_cnt: ::std::os::raw::c_int,
+    pub map_skel_sz: ::std::os::raw::c_int,
+    pub maps: *mut bpf_map_skeleton,
+    pub prog_cnt: ::std::os::raw::c_int,
+    pub prog_skel_sz: ::std::os::raw::c_int,
+    pub progs: *mut bpf_prog_skeleton,
+}
+impl Default for bpf_object_skeleton {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+extern "C" {
+    pub fn bpf_object__open_skeleton(
+        s: *mut bpf_object_skeleton,
+        opts: *const bpf_object_open_opts,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_object__load_skeleton(s: *mut bpf_object_skeleton) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_object__attach_skeleton(s: *mut bpf_object_skeleton) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_object__detach_skeleton(s: *mut bpf_object_skeleton);
+}
+extern "C" {
+    pub fn bpf_object__destroy_skeleton(s: *mut bpf_object_skeleton);
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_var_skeleton {
+    pub name: *const ::std::os::raw::c_char,
+    pub map: *mut *mut bpf_map,
+    pub addr: *mut *mut ::std::os::raw::c_void,
+}
+impl Default for bpf_var_skeleton {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_object_subskeleton {
+    pub sz: size_t,
+    pub obj: *const bpf_object,
+    pub map_cnt: ::std::os::raw::c_int,
+    pub map_skel_sz: ::std::os::raw::c_int,
+    pub maps: *mut bpf_map_skeleton,
+    pub prog_cnt: ::std::os::raw::c_int,
+    pub prog_skel_sz: ::std::os::raw::c_int,
+    pub progs: *mut bpf_prog_skeleton,
+    pub var_cnt: ::std::os::raw::c_int,
+    pub var_skel_sz: ::std::os::raw::c_int,
+    pub vars: *mut bpf_var_skeleton,
+}
+impl Default for bpf_object_subskeleton {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+extern "C" {
+    pub fn bpf_object__open_subskeleton(s: *mut bpf_object_subskeleton) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_object__destroy_subskeleton(s: *mut bpf_object_subskeleton);
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct gen_loader_opts {
+    pub sz: size_t,
+    pub data: *const ::std::os::raw::c_char,
+    pub insns: *const ::std::os::raw::c_char,
+    pub data_sz: __u32,
+    pub insns_sz: __u32,
+}
+impl Default for gen_loader_opts {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
+extern "C" {
+    pub fn bpf_object__gen_loader(
+        obj: *mut bpf_object,
+        opts: *mut gen_loader_opts,
+    ) -> ::std::os::raw::c_int;
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_linker_opts {
+    pub sz: size_t,
+}
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct bpf_linker_file_opts {
+    pub sz: size_t,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct bpf_linker {
+    _unused: [u8; 0],
+}
+extern "C" {
+    pub fn bpf_linker__new(
+        filename: *const ::std::os::raw::c_char,
+        opts: *mut bpf_linker_opts,
+    ) -> *mut bpf_linker;
+}
+extern "C" {
+    pub fn bpf_linker__add_file(
+        linker: *mut bpf_linker,
+        filename: *const ::std::os::raw::c_char,
+        opts: *const bpf_linker_file_opts,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_linker__finalize(linker: *mut bpf_linker) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn bpf_linker__free(linker: *mut bpf_linker);
+}
+pub type libbpf_prog_setup_fn_t = ::std::option::Option<
+    unsafe extern "C" fn(
+        prog: *mut bpf_program,
+        cookie: ::std::os::raw::c_long,
+    ) -> ::std::os::raw::c_int,
+>;
+pub type libbpf_prog_prepare_load_fn_t = ::std::option::Option<
+    unsafe extern "C" fn(
+        prog: *mut bpf_program,
+        opts: *mut bpf_prog_load_opts,
+        cookie: ::std::os::raw::c_long,
+    ) -> ::std::os::raw::c_int,
+>;
+pub type libbpf_prog_attach_fn_t = ::std::option::Option<
+    unsafe extern "C" fn(
+        prog: *const bpf_program,
+        cookie: ::std::os::raw::c_long,
+        link: *mut *mut bpf_link,
+    ) -> ::std::os::raw::c_int,
+>;
+#[repr(C)]
+#[derive(Debug, Default, Copy, Clone)]
+pub struct libbpf_prog_handler_opts {
+    pub sz: size_t,
+    pub cookie: ::std::os::raw::c_long,
+    pub prog_setup_fn: libbpf_prog_setup_fn_t,
+    pub prog_prepare_load_fn: libbpf_prog_prepare_load_fn_t,
+    pub prog_attach_fn: libbpf_prog_attach_fn_t,
+}
+extern "C" {
+    pub fn libbpf_register_prog_handler(
+        sec: *const ::std::os::raw::c_char,
+        prog_type: bpf_prog_type,
+        exp_attach_type: bpf_attach_type,
+        opts: *const libbpf_prog_handler_opts,
+    ) -> ::std::os::raw::c_int;
+}
+extern "C" {
+    pub fn libbpf_unregister_prog_handler(
+        handler_id: ::std::os::raw::c_int,
+    ) -> ::std::os::raw::c_int;
+}
+pub type __builtin_va_list = [__va_list_tag; 1usize];
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __va_list_tag {
+    pub gp_offset: ::std::os::raw::c_uint,
+    pub fp_offset: ::std::os::raw::c_uint,
+    pub overflow_arg_area: *mut ::std::os::raw::c_void,
+    pub reg_save_area: *mut ::std::os::raw::c_void,
+}
+impl Default for __va_list_tag {
+    fn default() -> Self {
+        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
+        unsafe {
+            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
+            s.assume_init()
+        }
+    }
+}
diff --git a/crates/libbpf-sys/src/lib.rs b/crates/libbpf-sys/src/lib.rs
new file mode 100644
index 0000000..a65ab4c
--- /dev/null
+++ b/crates/libbpf-sys/src/lib.rs
@@ -0,0 +1,34 @@
+// src/lib.rs
+
+#![allow(non_upper_case_globals)]
+#![allow(non_camel_case_types)]
+#![allow(non_snake_case)]
+
+#[cfg(all(feature = "bindgen", not(feature = "bindgen-source")))]
+include!(concat!(env!("OUT_DIR"), "/bindings.rs"));
+#[cfg(any(not(feature = "bindgen"), feature = "bindgen-source"))]
+include!("bindings.rs");
+
+#[cfg(feature = "vendored-libbpf")]
+macro_rules! header {
+    ($file:literal) => {
+        ($file, include_str!(concat!("../libbpf/src/", $file)))
+    };
+}
+
+/// Vendored libbpf headers
+///
+/// Tuple format is: (header filename, header contents)
+#[cfg(feature = "vendored-libbpf")]
+pub const API_HEADERS: [(&str, &str); 10] = [
+    header!("bpf.h"),
+    header!("libbpf.h"),
+    header!("btf.h"),
+    header!("bpf_helpers.h"),
+    header!("bpf_helper_defs.h"),
+    header!("bpf_tracing.h"),
+    header!("bpf_endian.h"),
+    header!("bpf_core_read.h"),
+    header!("libbpf_common.h"),
+    header!("usdt.bpf.h"),
+];
diff --git a/crates/libbpf-sys/tests/tests.rs b/crates/libbpf-sys/tests/tests.rs
new file mode 100644
index 0000000..7d6e8bb
--- /dev/null
+++ b/crates/libbpf-sys/tests/tests.rs
@@ -0,0 +1,22 @@
+// tests/tests.rs
+
+#[cfg(test)]
+mod tests {
+    use libbpf_sys::*;
+
+    unsafe extern "C" fn print_fn(
+        _level: libbpf_print_level,
+        _arg1: *const std::os::raw::c_char,
+        _ap: *mut __va_list_tag,
+    ) -> std::os::raw::c_int {
+        0
+    }
+
+    #[test]
+    fn test() {
+        unsafe {
+            // just tests that we can call into the library
+            assert!(libbpf_set_print(Some(print_fn as _)).is_some());
+        }
+    }
+}