one_gadget 1.10.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (927) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +349 -0
  3. data/README.md +386 -248
  4. data/lib/one_gadget/abi.rb +86 -3
  5. data/lib/one_gadget/builds/libc-2.19-cf699a15caae64f50311fc4655b86dc39a479789.rb +269 -7
  6. data/lib/one_gadget/builds/libc-2.19-fd51b20e670e9a9f60dc3b06dc9761fb08c9358b.rb +118 -10
  7. data/lib/one_gadget/builds/libc-2.23-60131540dadc6796cab33388349e6e4e68692053.rb +230 -9
  8. data/lib/one_gadget/builds/libc-2.23-679ad41a6bc9e718a11a36cf9879cac97197e565.rb +82 -4
  9. data/lib/one_gadget/builds/libc-2.23-926eb99d49cab2e5622af38ab07395f5b32035e9.rb +147 -6
  10. data/lib/one_gadget/builds/libc-2.23-991d173c6b9056712812d98507cbe95f937db7cf.rb +133 -0
  11. data/lib/one_gadget/builds/libc-2.24-8cba3297f538691eb1875be62986993c004f3f4d.rb +120 -5
  12. data/lib/one_gadget/builds/libc-2.24-fd0655c4d2073eda4235084e1d0e558f0251be8a.rb +67 -7
  13. data/lib/one_gadget/builds/libc-2.27-53f40c1d2f3739ae017dcdcef1a17314786e3709.rb +134 -5
  14. data/lib/one_gadget/builds/libc-2.27-63b3d43ad45e1b0f601848c65b067f9e9b40528b.rb +154 -4
  15. data/lib/one_gadget/builds/libc-2.27-8c2d375f8d23a7b58de23a60b37bef2d80b23aef.rb +167 -0
  16. data/lib/one_gadget/builds/libc-2.27-b417c0ba7cc5cf06d1d1bed6652cedb9253c60d0.rb +198 -8
  17. data/lib/one_gadget/builds/libc-2.31-00537087f0a4c4381deb83f49cc19e6abfd47a12.rb +68 -0
  18. data/lib/one_gadget/builds/libc-2.31-5792732f783158c66fb4f3756458ca24e46e827d.rb +308 -0
  19. data/lib/one_gadget/builds/libc-2.31-749e6d13e587d608128a097381cd44b9aca59927.rb +416 -0
  20. data/lib/one_gadget/builds/libc-2.31-93b46e0027747153e336c3fd9431ce9a5d82ad00.rb +563 -0
  21. data/lib/one_gadget/builds/libc-2.31-9fdb74e7b217d06c93172a8243f8547f947ee6d1.rb +217 -31
  22. data/lib/one_gadget/builds/libc-2.31-aa18dedb2aa800a743aac3bb546b8bd5816dbca6.rb +278 -0
  23. data/lib/one_gadget/builds/libc-2.35-1a0246cddde3e301e0cd5a85630aa26e89cb34b5.rb +83 -0
  24. data/lib/one_gadget/builds/libc-2.35-22ca0a83a4004122e30a69b597be96e134068616.rb +263 -0
  25. data/lib/one_gadget/builds/libc-2.35-4a81130bc30ded618f1edc030ecc5439e066dc68.rb +248 -0
  26. data/lib/one_gadget/builds/libc-2.35-891c1403437a4e30e684e0c8e34b87a09e4298e5.rb +434 -0
  27. data/lib/one_gadget/builds/libc-2.35-a91d1bc05ce8f54989de1172c24b2b736378901f.rb +221 -0
  28. data/lib/one_gadget/builds/libc-2.39-328820b908de8ea1ef79afa8995e302e819163d7.rb +174 -0
  29. data/lib/one_gadget/builds/libc-2.39-54ae5337044aaabab70d65e0c3444f7e4735e059.rb +291 -0
  30. data/lib/one_gadget/builds/libc-2.39-70d6616bcfd43eaa73962220df98dd9c82ca6687.rb +282 -0
  31. data/lib/one_gadget/builds/libc-2.39-a1d1cf4badf1f5dfe57ff1d17bd692ccc6fcd5c5.rb +531 -0
  32. data/lib/one_gadget/builds/libc-2.39-a7e93008cd7dad7a713e3eaf1f9dec78ce7c68a6.rb +66 -0
  33. data/lib/one_gadget/builds/libc-2.39-cd8f5a207dd67aea370d2b471a54c3e56f44ab18.rb +531 -0
  34. data/lib/one_gadget/builds/libc-2.39-f5b510cd91b956148e885994f55a0e476462bf92.rb +282 -0
  35. data/lib/one_gadget/builds/libc-2.43-7a08e84aa7f1e0bd80a7da6227c3a006c3ff327d.rb +75 -0
  36. data/lib/one_gadget/builds/libc-2.43-8c7af7f227b3871d6afba752cbb617f317023de5.rb +279 -0
  37. data/lib/one_gadget/builds/libc-2.43-90ebd03ae9d9f42b23b4eb82fdf70352cf744198.rb +96 -0
  38. data/lib/one_gadget/builds/libc-2.43-b50ceafbd17dc6bceee344a66671c7eaa152bef4.rb +462 -0
  39. data/lib/one_gadget/cli.rb +13 -12
  40. data/lib/one_gadget/emulators/aarch64.rb +60 -78
  41. data/lib/one_gadget/emulators/amd64.rb +49 -2
  42. data/lib/one_gadget/emulators/arm.rb +315 -0
  43. data/lib/one_gadget/emulators/arm_family.rb +175 -0
  44. data/lib/one_gadget/emulators/conditional.rb +354 -0
  45. data/lib/one_gadget/emulators/constraints.rb +269 -0
  46. data/lib/one_gadget/emulators/data_processing.rb +167 -0
  47. data/lib/one_gadget/emulators/i386.rb +6 -8
  48. data/lib/one_gadget/emulators/instruction.rb +29 -5
  49. data/lib/one_gadget/emulators/lambda.rb +59 -8
  50. data/lib/one_gadget/emulators/mips.rb +289 -0
  51. data/lib/one_gadget/emulators/processor.rb +187 -44
  52. data/lib/one_gadget/emulators/register_file.rb +106 -0
  53. data/lib/one_gadget/emulators/riscv64.rb +265 -0
  54. data/lib/one_gadget/emulators/safe_calls.rb +62 -0
  55. data/lib/one_gadget/emulators/tracked_memory.rb +209 -0
  56. data/lib/one_gadget/emulators/x86.rb +180 -78
  57. data/lib/one_gadget/error.rb +12 -0
  58. data/lib/one_gadget/fetchers/aarch64.rb +28 -20
  59. data/lib/one_gadget/fetchers/amd64.rb +2 -53
  60. data/lib/one_gadget/fetchers/argument_resolution.rb +340 -0
  61. data/lib/one_gadget/fetchers/arm.rb +311 -0
  62. data/lib/one_gadget/fetchers/base.rb +364 -223
  63. data/lib/one_gadget/fetchers/candidate_walk.rb +150 -0
  64. data/lib/one_gadget/fetchers/disassembly.rb +252 -0
  65. data/lib/one_gadget/fetchers/dynamic_symbols.rb +104 -0
  66. data/lib/one_gadget/fetchers/i386.rb +32 -14
  67. data/lib/one_gadget/fetchers/mips.rb +478 -0
  68. data/lib/one_gadget/fetchers/objdump.rb +25 -3
  69. data/lib/one_gadget/fetchers/riscv64.rb +78 -0
  70. data/lib/one_gadget/fetchers/x86.rb +60 -4
  71. data/lib/one_gadget/fetchers.rb +115 -0
  72. data/lib/one_gadget/gadget.rb +335 -42
  73. data/lib/one_gadget/helper.rb +68 -40
  74. data/lib/one_gadget/logger.rb +4 -1
  75. data/lib/one_gadget/one_gadget.rb +26 -11
  76. data/lib/one_gadget/version.rb +1 -1
  77. data/lib/one_gadget.rb +1 -1
  78. metadata +68 -862
  79. data/lib/one_gadget/builds/libc-2.19-01e14462fc6097604edd54a2ee63664c65b2c12b.rb +0 -49
  80. data/lib/one_gadget/builds/libc-2.19-01e23c38126dad7db569b176808a7c54db64a086.rb +0 -47
  81. data/lib/one_gadget/builds/libc-2.19-02093f433808b294939b7a84c436c9eb4ec7f084.rb +0 -45
  82. data/lib/one_gadget/builds/libc-2.19-0301225d38bb881df8962a45d8c7f97449628511.rb +0 -50
  83. data/lib/one_gadget/builds/libc-2.19-036830b8f13a440ab4f419e46889b60e6e2b4211.rb +0 -49
  84. data/lib/one_gadget/builds/libc-2.19-03913aa050d557a99cc18f7b10e35f06e7c9265e.rb +0 -47
  85. data/lib/one_gadget/builds/libc-2.19-05438cea9c1f9b3bbca9d9718319ee3742937f2e.rb +0 -49
  86. data/lib/one_gadget/builds/libc-2.19-05d284a054b0c444fe40e91b25155a637b5cd35b.rb +0 -50
  87. data/lib/one_gadget/builds/libc-2.19-081d1ade5e735e7bbd0d2c1655a1eb7a0ab546ad.rb +0 -50
  88. data/lib/one_gadget/builds/libc-2.19-09aa28fd1054ee91085a7e13da58891c2d22058d.rb +0 -46
  89. data/lib/one_gadget/builds/libc-2.19-0b3a9eb5ffbd93527a046585e2eb0c8ae804498b.rb +0 -50
  90. data/lib/one_gadget/builds/libc-2.19-0ca781d9dae5d7689f112aa047b949ba253a1a24.rb +0 -50
  91. data/lib/one_gadget/builds/libc-2.19-0cfe51d12d5ffdc0b80469a74e6e5afb8130cafb.rb +0 -47
  92. data/lib/one_gadget/builds/libc-2.19-0dd7691bd47c4270c2ce9343dff1fbe0e27ad9f3.rb +0 -45
  93. data/lib/one_gadget/builds/libc-2.19-0e1a9dd2ea0a174b53ad15979b049628cb2d7fd0.rb +0 -50
  94. data/lib/one_gadget/builds/libc-2.19-0fe755222a275227e03414bf80fe98560038cf7e.rb +0 -50
  95. data/lib/one_gadget/builds/libc-2.19-10c913aa6554f3128781afb7846ac481b64c10b6.rb +0 -45
  96. data/lib/one_gadget/builds/libc-2.19-1142f4753ddff69c217e1e539272eaaf7d75da4c.rb +0 -50
  97. data/lib/one_gadget/builds/libc-2.19-12d7f074b08cab569614830552b5fe8a32707295.rb +0 -47
  98. data/lib/one_gadget/builds/libc-2.19-145bd51d758bf9c3e3b45949a2023cbaa0941e37.rb +0 -47
  99. data/lib/one_gadget/builds/libc-2.19-15b6f6d06e3435a22c15398ce99c3d649112f576.rb +0 -47
  100. data/lib/one_gadget/builds/libc-2.19-15c42742a61d7b2fe40dca9ca659a8f8f8ffea32.rb +0 -47
  101. data/lib/one_gadget/builds/libc-2.19-1606a4f3d8e807c5bf9b273ab202901115aa7a1e.rb +0 -49
  102. data/lib/one_gadget/builds/libc-2.19-17e8467dfe433c3622e6874d5795f6ac8edc8951.rb +0 -50
  103. data/lib/one_gadget/builds/libc-2.19-1d7ac0a26e8dd7a9b8443fe4a5f59e46ee16ce74.rb +0 -45
  104. data/lib/one_gadget/builds/libc-2.19-1dae2bc5818d22b565ed441211d0e2df6e942c25.rb +0 -45
  105. data/lib/one_gadget/builds/libc-2.19-1db2291c040579630f551b3568d0bc8758aa25d7.rb +0 -47
  106. data/lib/one_gadget/builds/libc-2.19-1dcad38451d0f4e339ac91079d6a20e40015d7f4.rb +0 -49
  107. data/lib/one_gadget/builds/libc-2.19-20f983ed5f4a8d177a9839b4abe44ffa35e1eade.rb +0 -49
  108. data/lib/one_gadget/builds/libc-2.19-21f20ffd821a693d32e258aa6a64e6bde5c5bdaf.rb +0 -45
  109. data/lib/one_gadget/builds/libc-2.19-22325505e6f257ab00ca32d46cd444c903d5dc89.rb +0 -50
  110. data/lib/one_gadget/builds/libc-2.19-22ea459c5bf13179544fc0bc92372ebe52792f53.rb +0 -49
  111. data/lib/one_gadget/builds/libc-2.19-267899ea9a83d7e5bd2ae3e53943cd57da6a01e7.rb +0 -47
  112. data/lib/one_gadget/builds/libc-2.19-26d70c7187d46c01bea7c22e8428fd6569d0f29c.rb +0 -50
  113. data/lib/one_gadget/builds/libc-2.19-27ae159e7958021d9c784daa60ac582aeb2e380c.rb +0 -50
  114. data/lib/one_gadget/builds/libc-2.19-286f68616b18ea86201b1bd81c4e39ab441a876f.rb +0 -50
  115. data/lib/one_gadget/builds/libc-2.19-29ad0fae22588909ae24075cf3d30123d3563a3c.rb +0 -46
  116. data/lib/one_gadget/builds/libc-2.19-29c9abe596db30c86fe28d30dc275485c7e3f240.rb +0 -50
  117. data/lib/one_gadget/builds/libc-2.19-2aebf61fd92ce11ccbc35f4f5e1da8843415ff2f.rb +0 -47
  118. data/lib/one_gadget/builds/libc-2.19-2b7794adc3efbe94dd7f17bb28382f42415ef32c.rb +0 -45
  119. data/lib/one_gadget/builds/libc-2.19-2bb9296b7b2843ef007f7de1b2995bc33ec8294d.rb +0 -50
  120. data/lib/one_gadget/builds/libc-2.19-2bba9d358bac63ff81597767b5bc229316bd12e0.rb +0 -47
  121. data/lib/one_gadget/builds/libc-2.19-2dad3f021a0e10d56a36a3e6e83c641013bb8d0d.rb +0 -47
  122. data/lib/one_gadget/builds/libc-2.19-2dc3a77a63a29cdfce5000c5e562da4574560802.rb +0 -49
  123. data/lib/one_gadget/builds/libc-2.19-2ee2c632ffc91afb8662573f6870c70a03fecaad.rb +0 -45
  124. data/lib/one_gadget/builds/libc-2.19-2fc2eb810e87cbb9d2a9c79bb1aa31c3b84330c0.rb +0 -49
  125. data/lib/one_gadget/builds/libc-2.19-309303fe5b44867525d535b4b8df1d9890128765.rb +0 -47
  126. data/lib/one_gadget/builds/libc-2.19-30c94dc66a1fe95180c3d68d2b89e576d5ae213c.rb +0 -50
  127. data/lib/one_gadget/builds/libc-2.19-30d456d1974436ca70141610c206bbd4e9ac127f.rb +0 -50
  128. data/lib/one_gadget/builds/libc-2.19-30dfa78b54091b3517212562fbe71c82031135df.rb +0 -50
  129. data/lib/one_gadget/builds/libc-2.19-319d6e67364b59468f00c62003e31f9698590885.rb +0 -50
  130. data/lib/one_gadget/builds/libc-2.19-325f373d48d6e3eb950fb4a1841cee80adf696e4.rb +0 -50
  131. data/lib/one_gadget/builds/libc-2.19-335b30edc15f874730295594b30528ba178aeca7.rb +0 -46
  132. data/lib/one_gadget/builds/libc-2.19-33adc3316a61d4db3e78e167be8f2d1c8b4a0474.rb +0 -50
  133. data/lib/one_gadget/builds/libc-2.19-34eca1b0e54755d19a70d3a74b744911f746902a.rb +0 -50
  134. data/lib/one_gadget/builds/libc-2.19-35597c5d9140178626b2989b0f3049c825f17249.rb +0 -49
  135. data/lib/one_gadget/builds/libc-2.19-3565b3bf199d386bd0188a3690135b2ef82a559e.rb +0 -45
  136. data/lib/one_gadget/builds/libc-2.19-365c74dde459303730e276b4d6022f1eacda06fd.rb +0 -49
  137. data/lib/one_gadget/builds/libc-2.19-3691e2c3b9f75fbaf99c93f201c86a2df07a98d2.rb +0 -50
  138. data/lib/one_gadget/builds/libc-2.19-3701aa1820d0a1dc12ac27ffde0ca8c63c50ab4a.rb +0 -50
  139. data/lib/one_gadget/builds/libc-2.19-3883c7733b2a0819e0c7c2dcbadfdac26e0e2b72.rb +0 -45
  140. data/lib/one_gadget/builds/libc-2.19-395c995bb2028f96efb60a6ebce75ed51d58c0b0.rb +0 -45
  141. data/lib/one_gadget/builds/libc-2.19-39612ce36adeb6f7e92658cd62c737bc3a260586.rb +0 -49
  142. data/lib/one_gadget/builds/libc-2.19-397c84e78c14cbffba39a48184db482211df9fb3.rb +0 -41
  143. data/lib/one_gadget/builds/libc-2.19-39f403e178f6c4db89f200bae5afd6c55f61e34b.rb +0 -49
  144. data/lib/one_gadget/builds/libc-2.19-3bbdc31d826a2bd8af0919d958620342c295c557.rb +0 -47
  145. data/lib/one_gadget/builds/libc-2.19-3ea89e2234c5203ef245cd4146b515794079ceac.rb +0 -50
  146. data/lib/one_gadget/builds/libc-2.19-3f8df0a32477b9b5c8521116e4d554f4dd784e9c.rb +0 -47
  147. data/lib/one_gadget/builds/libc-2.19-40410c37ab2b3867bcc1efa841c4bd990bbaced6.rb +0 -47
  148. data/lib/one_gadget/builds/libc-2.19-40443517ebed72833c0cea4364db0346c422be75.rb +0 -50
  149. data/lib/one_gadget/builds/libc-2.19-410c538cbb80e04ba67f8f93ead7c915cb8b151e.rb +0 -50
  150. data/lib/one_gadget/builds/libc-2.19-410c5d16e862678b3263a8250ad936b99554050c.rb +0 -50
  151. data/lib/one_gadget/builds/libc-2.19-42150628cea5ef0a4f7f48267f0d6fd206d7bef4.rb +0 -50
  152. data/lib/one_gadget/builds/libc-2.19-4315ee2103b2f1797d8d18ef03714dbdc4417095.rb +0 -45
  153. data/lib/one_gadget/builds/libc-2.19-4360063303905bf941489398b5601c5e2bc6c3a7.rb +0 -47
  154. data/lib/one_gadget/builds/libc-2.19-441d0bc3f372750187a7cc29528fca0f2fa4297d.rb +0 -45
  155. data/lib/one_gadget/builds/libc-2.19-444c5eaa7cb665ed9b90d3edc47e07c9eeb22c49.rb +0 -50
  156. data/lib/one_gadget/builds/libc-2.19-458c7913f032820ce7610496892f79a4779b0224.rb +0 -50
  157. data/lib/one_gadget/builds/libc-2.19-460355a265c134c0c801820ab5e80e37e2cd9b00.rb +0 -45
  158. data/lib/one_gadget/builds/libc-2.19-47411da31c1af33c897d1646f68d4443c3a156f2.rb +0 -47
  159. data/lib/one_gadget/builds/libc-2.19-482a813d828d5fe257838e679dff9b7be56bf4fb.rb +0 -47
  160. data/lib/one_gadget/builds/libc-2.19-484428905d6e138e0b88e97107732ace68c12752.rb +0 -45
  161. data/lib/one_gadget/builds/libc-2.19-4866fc3ad424dfb788e9ad11039b7759f3b51574.rb +0 -47
  162. data/lib/one_gadget/builds/libc-2.19-48b333aa64a86c31334714305379a6c1f1701c69.rb +0 -45
  163. data/lib/one_gadget/builds/libc-2.19-49f3ac15a25f78f0258283b3a207017e51ced583.rb +0 -49
  164. data/lib/one_gadget/builds/libc-2.19-4a384b8c751de6c0e2652261310104bf1b2127d5.rb +0 -50
  165. data/lib/one_gadget/builds/libc-2.19-4a5eeadb796e6dba8f289a90de2b53e71c8e8788.rb +0 -49
  166. data/lib/one_gadget/builds/libc-2.19-4daad26169c5c868b8ae90587fff76cc28e7b309.rb +0 -49
  167. data/lib/one_gadget/builds/libc-2.19-4e304f78f3cfb52dd521bd6fd8ae7a0c7400104e.rb +0 -50
  168. data/lib/one_gadget/builds/libc-2.19-4e9b0243eb28ea1a14539448a5317d6215fa13fa.rb +0 -49
  169. data/lib/one_gadget/builds/libc-2.19-4eda8ff01be3fba1c7bdd442a8690c3dc7397b6a.rb +0 -47
  170. data/lib/one_gadget/builds/libc-2.19-4f953c59dca85d439af86c6564c9fdb07cccafd5.rb +0 -50
  171. data/lib/one_gadget/builds/libc-2.19-509ee0c9616c4c3ed81951501a8950e1f529bbff.rb +0 -41
  172. data/lib/one_gadget/builds/libc-2.19-50c2ed4707152ba59bfacfd4e1fabc3b28ddc140.rb +0 -50
  173. data/lib/one_gadget/builds/libc-2.19-50e2c3560712d3d9f7af3d155cdeb69687045dd2.rb +0 -47
  174. data/lib/one_gadget/builds/libc-2.19-512993e1c66001e0ad11feea73ddfc22f9c0767b.rb +0 -50
  175. data/lib/one_gadget/builds/libc-2.19-515cd2920490d13129bbad0514c7c7c7e67c18bc.rb +0 -49
  176. data/lib/one_gadget/builds/libc-2.19-51a7763b217be74d9da6fd006c32f82ef82477b5.rb +0 -45
  177. data/lib/one_gadget/builds/libc-2.19-5382058b69031caa9b9996c11061cd164c9398ff.rb +0 -50
  178. data/lib/one_gadget/builds/libc-2.19-5455f3eafe22e7a085c3568bebc324a2ade811ea.rb +0 -49
  179. data/lib/one_gadget/builds/libc-2.19-54b97c45aa9ce58ba4dea4eda316f49927e51cff.rb +0 -50
  180. data/lib/one_gadget/builds/libc-2.19-54fe99efd891702e87da514403a2d3d8cae8032b.rb +0 -49
  181. data/lib/one_gadget/builds/libc-2.19-5537ab284321fdc6efd07276d6e4c524014bf069.rb +0 -50
  182. data/lib/one_gadget/builds/libc-2.19-55e62f166b419389a0de90ceab52c337946ba643.rb +0 -50
  183. data/lib/one_gadget/builds/libc-2.19-56338f83f1b656ee4395a8d3bddf810725151e91.rb +0 -49
  184. data/lib/one_gadget/builds/libc-2.19-58915015546da78c4116e45480be238bac4c59a7.rb +0 -45
  185. data/lib/one_gadget/builds/libc-2.19-58cabb8c6f68b05a1c1c9a707a43f22c3a55a3e9.rb +0 -45
  186. data/lib/one_gadget/builds/libc-2.19-5962ff0ec39da4ea3c572535d1da0c0d3b10cfe9.rb +0 -45
  187. data/lib/one_gadget/builds/libc-2.19-5a49bf8def435ac3fe9208df3c6b5622fe347a97.rb +0 -50
  188. data/lib/one_gadget/builds/libc-2.19-5a49ee56df5b5ab48a6f5607bb46a0b92a3d1c34.rb +0 -50
  189. data/lib/one_gadget/builds/libc-2.19-5a7a0413044f37bc4096c7bc4c33d1ea6880d856.rb +0 -47
  190. data/lib/one_gadget/builds/libc-2.19-5a968877a4a31019701f53ed38130c1313a5e0ad.rb +0 -50
  191. data/lib/one_gadget/builds/libc-2.19-5ab6a00d805f696b8aa6d0d2ee29d511b41499d1.rb +0 -50
  192. data/lib/one_gadget/builds/libc-2.19-5b344bb54cc929c6849371987107f587bd9e0d48.rb +0 -47
  193. data/lib/one_gadget/builds/libc-2.19-5b60e04aabbebdb248f5c03dad0ca1a9fab8be5f.rb +0 -49
  194. data/lib/one_gadget/builds/libc-2.19-5ba8f97e1beb7f068474d473e2db786c07df8561.rb +0 -50
  195. data/lib/one_gadget/builds/libc-2.19-5c02e6b0e80785f5944265c698dc811862018d21.rb +0 -49
  196. data/lib/one_gadget/builds/libc-2.19-5c14523f13f0fb9be3366f446e9e48165373ddf8.rb +0 -45
  197. data/lib/one_gadget/builds/libc-2.19-5e1e27a45fbd02cfa9a95bf657fc4aa53af75421.rb +0 -47
  198. data/lib/one_gadget/builds/libc-2.19-605a6d751871d12a83e34359ff4d73c895d6f4ce.rb +0 -50
  199. data/lib/one_gadget/builds/libc-2.19-60b315c3b5a4b7e4bf699cf79a137d19a9a13d89.rb +0 -47
  200. data/lib/one_gadget/builds/libc-2.19-60c7d280d7c8af6758a3a951524487641f349460.rb +0 -50
  201. data/lib/one_gadget/builds/libc-2.19-61eeda0c442c32c20f93008acbc978e28cca956d.rb +0 -45
  202. data/lib/one_gadget/builds/libc-2.19-63b04eb27336fd6c68f7bd8ba76ccbcc8df1b46c.rb +0 -49
  203. data/lib/one_gadget/builds/libc-2.19-6573062b2d3648b5970f82fbd63cd154c9d84661.rb +0 -49
  204. data/lib/one_gadget/builds/libc-2.19-6573e7dbcbb6179989e2308746f65b95c4117485.rb +0 -45
  205. data/lib/one_gadget/builds/libc-2.19-6850f318041a1a5a202ab0512dda55e80ff19ec8.rb +0 -45
  206. data/lib/one_gadget/builds/libc-2.19-68977b6661c8b646d7d88e32d81916937e346001.rb +0 -45
  207. data/lib/one_gadget/builds/libc-2.19-69673214041206e0eee5b9b5b47fd12d733127e1.rb +0 -46
  208. data/lib/one_gadget/builds/libc-2.19-6a6d6625087a1de6139a620795ef8b2360a06592.rb +0 -45
  209. data/lib/one_gadget/builds/libc-2.19-6abcb030391dbadd0fda38c3975ad6dcfe7fe20c.rb +0 -49
  210. data/lib/one_gadget/builds/libc-2.19-6aff6d091954955fe931bb720a17708513aabda7.rb +0 -50
  211. data/lib/one_gadget/builds/libc-2.19-6b536aa43eabd040e5117034f582d1c0374980cd.rb +0 -50
  212. data/lib/one_gadget/builds/libc-2.19-6d7e55c204d097c75f6b89717876c17f0dc1779a.rb +0 -45
  213. data/lib/one_gadget/builds/libc-2.19-6d8d0b8321b58b20d824cfa9d68d66769caa9b42.rb +0 -50
  214. data/lib/one_gadget/builds/libc-2.19-6ee0f980c1c75935d8802d0ea84e0a9f09874c51.rb +0 -47
  215. data/lib/one_gadget/builds/libc-2.19-700e2a19dfcc8e20b41145039b6c823123676696.rb +0 -45
  216. data/lib/one_gadget/builds/libc-2.19-705f27d45e46aeda2619beb62fc804d1c2fbe26c.rb +0 -50
  217. data/lib/one_gadget/builds/libc-2.19-707bc133809b86abab918bb8a8fc7791fe916765.rb +0 -50
  218. data/lib/one_gadget/builds/libc-2.19-74a3b58450e957c04e2cca3619695cb3d73bb68e.rb +0 -50
  219. data/lib/one_gadget/builds/libc-2.19-74bf136a60dee4fe2f7ca0d9b40fbdd6b0115496.rb +0 -45
  220. data/lib/one_gadget/builds/libc-2.19-7553121919b4b6bb1d86f8b1eb8eb152e6fb1218.rb +0 -47
  221. data/lib/one_gadget/builds/libc-2.19-77063a4c59e02c182d5afae288f450c7cdf5b6da.rb +0 -49
  222. data/lib/one_gadget/builds/libc-2.19-77504f0405a2d81d64310f262ac559cdc8375b04.rb +0 -47
  223. data/lib/one_gadget/builds/libc-2.19-77bcde9cd55f5ca93684b46705e0851585b94019.rb +0 -50
  224. data/lib/one_gadget/builds/libc-2.19-78c0362905c145cfc28aa2ff409962f3c8b2cb6b.rb +0 -50
  225. data/lib/one_gadget/builds/libc-2.19-7a02d454ba0e8af69e3a284c381318b55908deda.rb +0 -36
  226. data/lib/one_gadget/builds/libc-2.19-7a7914eec99efd40990d0b1978a01caf46612636.rb +0 -47
  227. data/lib/one_gadget/builds/libc-2.19-7ccbbd7f1713d8eebb6042a8da7e9f2ac1878d42.rb +0 -49
  228. data/lib/one_gadget/builds/libc-2.19-7cf04fce2326ced25e80c0d7972408574a0817e6.rb +0 -47
  229. data/lib/one_gadget/builds/libc-2.19-7d415bffb8dbc06c96e116d8e8f0d8deababbd9e.rb +0 -47
  230. data/lib/one_gadget/builds/libc-2.19-7e523a4a16878ad1fcb7844e93bdd4d474843f86.rb +0 -49
  231. data/lib/one_gadget/builds/libc-2.19-7e97512d5895e6d5e26dc5b26b31c575a80f0188.rb +0 -52
  232. data/lib/one_gadget/builds/libc-2.19-7f380884708f0bac5c779705562e01ccc7ecf223.rb +0 -45
  233. data/lib/one_gadget/builds/libc-2.19-7f6d04c0ad1b67e316c80cd606720675fc111b50.rb +0 -50
  234. data/lib/one_gadget/builds/libc-2.19-7fbf66aed8b38b67a1a5653e27e9e4d430b9ada6.rb +0 -49
  235. data/lib/one_gadget/builds/libc-2.19-80c8143bd0180bbeb21b7d8c12687d043ae81c7d.rb +0 -50
  236. data/lib/one_gadget/builds/libc-2.19-8131bf46e87501516970176f3f7e86762ffcc3bf.rb +0 -50
  237. data/lib/one_gadget/builds/libc-2.19-83aef0e751f3dddd4b56c5be57524239e39eecaa.rb +0 -45
  238. data/lib/one_gadget/builds/libc-2.19-83f3af43ecaf52a63801ea59ad113835dfb31d58.rb +0 -50
  239. data/lib/one_gadget/builds/libc-2.19-845104cd0116005c9b9569fe3c6d5afd3689a01e.rb +0 -50
  240. data/lib/one_gadget/builds/libc-2.19-8564abd306654cfc468a54117954244e1a2c9102.rb +0 -50
  241. data/lib/one_gadget/builds/libc-2.19-863b5d3db2ef5af0b32dba633dca439a3908c42e.rb +0 -47
  242. data/lib/one_gadget/builds/libc-2.19-866e18be92e8dcab711b7c1e3402065deff5df70.rb +0 -49
  243. data/lib/one_gadget/builds/libc-2.19-869f691faebbe08548ec64381e41acf5997c0fb0.rb +0 -49
  244. data/lib/one_gadget/builds/libc-2.19-87805ebef970b79b4a1fb5facb43719a26c335af.rb +0 -50
  245. data/lib/one_gadget/builds/libc-2.19-887a7db21e668f6153604d9e00d1026137f777ee.rb +0 -50
  246. data/lib/one_gadget/builds/libc-2.19-8b05579712ebaea7cae547f4fc461c0828e9c446.rb +0 -49
  247. data/lib/one_gadget/builds/libc-2.19-8c5d5643cd08bc078f22310103f7c6af4ed37921.rb +0 -47
  248. data/lib/one_gadget/builds/libc-2.19-8cb4573f8cc3764df7570800247a76dd63d847b4.rb +0 -47
  249. data/lib/one_gadget/builds/libc-2.19-8d935a42f2f2a1149aa52d3098b32b1d5012cb67.rb +0 -41
  250. data/lib/one_gadget/builds/libc-2.19-8dbcbca713ca58e2c7e4970e8218d536154bb64e.rb +0 -36
  251. data/lib/one_gadget/builds/libc-2.19-8e4150ea59c3a6fdc9f001ba17274f7c48e4be21.rb +0 -47
  252. data/lib/one_gadget/builds/libc-2.19-8fa762223d6b8ee6d47af7455c691a5e238c8209.rb +0 -49
  253. data/lib/one_gadget/builds/libc-2.19-90b068141be8b0f52ef8dc93e8327cda87a632bc.rb +0 -50
  254. data/lib/one_gadget/builds/libc-2.19-913a7e92e674593c7e1121b0013d81e20cebe85c.rb +0 -47
  255. data/lib/one_gadget/builds/libc-2.19-9356622cb19154bd2d3bb21e67f188e3cc3e2902.rb +0 -45
  256. data/lib/one_gadget/builds/libc-2.19-95287be8acccc7b5723f4306e6a5eca6dfe7bffd.rb +0 -50
  257. data/lib/one_gadget/builds/libc-2.19-9a970aa5f863d2ccecd63ceef8bb57d28e55be11.rb +0 -46
  258. data/lib/one_gadget/builds/libc-2.19-9bf807e100d6c152efd7e845c65ecfb92e2e202e.rb +0 -50
  259. data/lib/one_gadget/builds/libc-2.19-9d1dd2edd9ada4b73ddc73ea10ba1c9ef0810248.rb +0 -47
  260. data/lib/one_gadget/builds/libc-2.19-9e817f4c472417e94d161b392e13d6aeb76f0b5a.rb +0 -50
  261. data/lib/one_gadget/builds/libc-2.19-a13df1fb206f167af0eef4d438f3949d80f8bce3.rb +0 -47
  262. data/lib/one_gadget/builds/libc-2.19-a1818c2dd8e7c4a3d4f61270b4b29330d6b51391.rb +0 -49
  263. data/lib/one_gadget/builds/libc-2.19-a2d884479c5c8f73fbb82e6fefa5083623826cc1.rb +0 -49
  264. data/lib/one_gadget/builds/libc-2.19-a3386004b2a158b95ba4c26c01e421e6c2191a47.rb +0 -49
  265. data/lib/one_gadget/builds/libc-2.19-a3c88cff23421ec2e3c97860bdf28868592ed14c.rb +0 -47
  266. data/lib/one_gadget/builds/libc-2.19-a3ebc8ad2873288cbd2a510de65161c697310e5c.rb +0 -49
  267. data/lib/one_gadget/builds/libc-2.19-a4b13a91fc5d961be3e1a68a30938ba840ae4290.rb +0 -50
  268. data/lib/one_gadget/builds/libc-2.19-a6222959a65e5367ec3f2b54d7f114f6a2c8ce28.rb +0 -50
  269. data/lib/one_gadget/builds/libc-2.19-a62a3aed804ccd4faac1ae52ee39165dd1cf4ebe.rb +0 -45
  270. data/lib/one_gadget/builds/libc-2.19-a71e7ba2ffe12012ab7e5c0ff7d83d6f627a7548.rb +0 -45
  271. data/lib/one_gadget/builds/libc-2.19-a7204938a680127c01c9799462c3b33035f06358.rb +0 -49
  272. data/lib/one_gadget/builds/libc-2.19-a77581d3046ec7a2176ba4bebc222562668d9fd6.rb +0 -49
  273. data/lib/one_gadget/builds/libc-2.19-a77d09f3b8cbad4c430378157308f6cb71549a5a.rb +0 -50
  274. data/lib/one_gadget/builds/libc-2.19-a7e2264ecf52a64ea3ab55163132240c3142eafd.rb +0 -50
  275. data/lib/one_gadget/builds/libc-2.19-a820f849dda0b99ed06dd59bb88404969b3a5f88.rb +0 -50
  276. data/lib/one_gadget/builds/libc-2.19-a9f67b66e93e0abd79f1d8028188377397e4536b.rb +0 -50
  277. data/lib/one_gadget/builds/libc-2.19-ab474a836c41aed0f0bad2ddc66388253bfa75af.rb +0 -45
  278. data/lib/one_gadget/builds/libc-2.19-ad03e0bcbda2213489f10a6bf63a7f5fe3dd6558.rb +0 -47
  279. data/lib/one_gadget/builds/libc-2.19-ad0ce0a6b6e201c9a8195b2d55043afcd4f5db00.rb +0 -36
  280. data/lib/one_gadget/builds/libc-2.19-ad91c7db0fad11b03e3ce92eda28f673cb36db5d.rb +0 -50
  281. data/lib/one_gadget/builds/libc-2.19-adf7d21d8b442e6b601ad3dcc180608193d2d041.rb +0 -45
  282. data/lib/one_gadget/builds/libc-2.19-b166aefc9dff38869ad893bea2e9ce5e848628b1.rb +0 -50
  283. data/lib/one_gadget/builds/libc-2.19-b2c58c0aaead4cc02a5ad606edf4284ca598c0ef.rb +0 -50
  284. data/lib/one_gadget/builds/libc-2.19-b32788d3f2b080bd447b295cf59ace25fbfce313.rb +0 -46
  285. data/lib/one_gadget/builds/libc-2.19-b4fbe819a1dc946528b4added1887eb9ca130275.rb +0 -45
  286. data/lib/one_gadget/builds/libc-2.19-b571f83a8a6f5bb22d3558cddda9f943a2a67fd1.rb +0 -50
  287. data/lib/one_gadget/builds/libc-2.19-b700a5d57528fde5c441b020bcc4e19a9099e05b.rb +0 -50
  288. data/lib/one_gadget/builds/libc-2.19-b71ed2c38888a9d0e2c977877193e01a64e97a5d.rb +0 -49
  289. data/lib/one_gadget/builds/libc-2.19-b9082b0162f9d256c1ccf28b9d35d2cce9f6a6a4.rb +0 -50
  290. data/lib/one_gadget/builds/libc-2.19-ba1b1c588dbf0ebb80c646060af92e5a93825fee.rb +0 -49
  291. data/lib/one_gadget/builds/libc-2.19-bb34f13b7ae5fe42cdd14b96dc278f9726424cac.rb +0 -49
  292. data/lib/one_gadget/builds/libc-2.19-bb91233a6ef2a6c754a8ff20f7ba117d7d57707a.rb +0 -46
  293. data/lib/one_gadget/builds/libc-2.19-bd25bd030c2467d343581ee0d8d8aa7a32c7aa29.rb +0 -49
  294. data/lib/one_gadget/builds/libc-2.19-bd69ec1fafeef65209d9874025fd45e093b23144.rb +0 -49
  295. data/lib/one_gadget/builds/libc-2.19-be4425690f42dd1807770d974ff87b88c51d306d.rb +0 -49
  296. data/lib/one_gadget/builds/libc-2.19-bf368b38f238cfe2c12eac2b487ee8ae58a3a0d8.rb +0 -50
  297. data/lib/one_gadget/builds/libc-2.19-c00c9b70ba01f92a952474258bed608c3e7be6b9.rb +0 -50
  298. data/lib/one_gadget/builds/libc-2.19-c0ee9400445c93ecbc8562e006a8b95ed4d07834.rb +0 -49
  299. data/lib/one_gadget/builds/libc-2.19-c24f77af0c861079dbcbbdf09f4b8eee8eb7130c.rb +0 -50
  300. data/lib/one_gadget/builds/libc-2.19-c379cc4f4e8a55319c70e4d3ce4dc2a4c30f151a.rb +0 -49
  301. data/lib/one_gadget/builds/libc-2.19-c40027c0c6f76c27293f7570888b9d64e1a93285.rb +0 -50
  302. data/lib/one_gadget/builds/libc-2.19-c41ed0ae53a1a559a44a1140c77c3b274a38e442.rb +0 -50
  303. data/lib/one_gadget/builds/libc-2.19-c4278754b0c28c437e1e5bd195d82b6d9e4a6d73.rb +0 -47
  304. data/lib/one_gadget/builds/libc-2.19-c46746723526fa9feb3cdf4218ec24c9179131ad.rb +0 -45
  305. data/lib/one_gadget/builds/libc-2.19-c5affb5af2f506eb7d48c471160790d4c24e81ae.rb +0 -46
  306. data/lib/one_gadget/builds/libc-2.19-c5e45bf4881c526999786f4dd2718042b20e582c.rb +0 -49
  307. data/lib/one_gadget/builds/libc-2.19-c7cab037359898862b1584a1e3c3372683daad3f.rb +0 -47
  308. data/lib/one_gadget/builds/libc-2.19-c83833a5f5ca5636f8f914c2c9f1726860fce8b1.rb +0 -45
  309. data/lib/one_gadget/builds/libc-2.19-cad76dba04139f928612ee55bf9e14b74e1b7c3f.rb +0 -45
  310. data/lib/one_gadget/builds/libc-2.19-cafa8de523249f48aebec877e9f45f904e4d62a4.rb +0 -50
  311. data/lib/one_gadget/builds/libc-2.19-cb46f5139038116d66a73281a3aca373f8ac7428.rb +0 -49
  312. data/lib/one_gadget/builds/libc-2.19-cb6e2a7a6812e08f621a5c6b5b3372ab5126fc84.rb +0 -47
  313. data/lib/one_gadget/builds/libc-2.19-cb8c8a8edf5ff17d2df7e68e63f6cb242d85b524.rb +0 -49
  314. data/lib/one_gadget/builds/libc-2.19-cba6f22d1ee9163390664add53a9ef135c664903.rb +0 -45
  315. data/lib/one_gadget/builds/libc-2.19-ce25be66ee91861336df34413f53446cb41a2601.rb +0 -47
  316. data/lib/one_gadget/builds/libc-2.19-cf43a056242aa025a153e4a7b6698edd7497f305.rb +0 -45
  317. data/lib/one_gadget/builds/libc-2.19-d06fb2560475e149d6d2401eae955164eb8262fa.rb +0 -45
  318. data/lib/one_gadget/builds/libc-2.19-d11506d7facb213bd2c6063f010a42fa9d723879.rb +0 -45
  319. data/lib/one_gadget/builds/libc-2.19-d1c6ec21d9d74bb0d866a08635b1fc075c4a2e40.rb +0 -49
  320. data/lib/one_gadget/builds/libc-2.19-d2b9e70520a7dbf92895b3d08c9e6a92010571cf.rb +0 -50
  321. data/lib/one_gadget/builds/libc-2.19-d56aa9d47cf61192f75e28fef805c0ce20502157.rb +0 -46
  322. data/lib/one_gadget/builds/libc-2.19-d66b201cb2987a585890d4be28cf92dad14cb760.rb +0 -47
  323. data/lib/one_gadget/builds/libc-2.19-d6c3d9e55db8600672a2ef744f57aa84e6bea41a.rb +0 -49
  324. data/lib/one_gadget/builds/libc-2.19-d80f3b321f845a71f3c47d913dd3e65152565863.rb +0 -49
  325. data/lib/one_gadget/builds/libc-2.19-d8adddcd7476a6b09bdf02fe1e1d73bd393b6ed7.rb +0 -47
  326. data/lib/one_gadget/builds/libc-2.19-d9a10b8ef90300628dd0a3a535106967714d7328.rb +0 -50
  327. data/lib/one_gadget/builds/libc-2.19-db3fac1541a95bdab2d9ae20bdef3c2f1c13b7e0.rb +0 -50
  328. data/lib/one_gadget/builds/libc-2.19-dd1b1c22eae3c8f0faa0b355bbcdca8f7c0cd91d.rb +0 -49
  329. data/lib/one_gadget/builds/libc-2.19-df559a150829d9f3cdd0b5ce1e5b4d512d20f55f.rb +0 -52
  330. data/lib/one_gadget/builds/libc-2.19-e01fa6a6b4685ecaebc6756679c283c6572eb6f2.rb +0 -45
  331. data/lib/one_gadget/builds/libc-2.19-e10149c2a9bf0df3c9149b351168fcd32adb41c6.rb +0 -46
  332. data/lib/one_gadget/builds/libc-2.19-e13d310493f24ceb84f232c5f72469cbe516d57a.rb +0 -50
  333. data/lib/one_gadget/builds/libc-2.19-e2773917e0ca89ebc16787d8cbc96400088583ec.rb +0 -49
  334. data/lib/one_gadget/builds/libc-2.19-e4c3a6a564aeddbafa8be691efffc79e755fa8a4.rb +0 -49
  335. data/lib/one_gadget/builds/libc-2.19-e53d50e134c10f91f8cf52b1778f85b7926147cc.rb +0 -45
  336. data/lib/one_gadget/builds/libc-2.19-e540f810b37a33fab5b3116fdbf8bcaacc000c16.rb +0 -45
  337. data/lib/one_gadget/builds/libc-2.19-e5bd51e1eefbc5c3d96a3aba4dcb50a0cec162de.rb +0 -50
  338. data/lib/one_gadget/builds/libc-2.19-e6ac06f6c982d98a419cec51de313ea609f2b1f2.rb +0 -50
  339. data/lib/one_gadget/builds/libc-2.19-e6e4c4588d098e16d0fba7e15ba9c81f294074a4.rb +0 -49
  340. data/lib/one_gadget/builds/libc-2.19-e70d0551a6ce8feb294de6c138135b58d8763e85.rb +0 -47
  341. data/lib/one_gadget/builds/libc-2.19-e806961cc6bc18acfd55df2613b100a9e733cebd.rb +0 -47
  342. data/lib/one_gadget/builds/libc-2.19-e882a1c9195b6bc1a62b3aeda9b63733109abd2f.rb +0 -49
  343. data/lib/one_gadget/builds/libc-2.19-e892e2e9d5818511e2390e642edd1d4cf2331885.rb +0 -47
  344. data/lib/one_gadget/builds/libc-2.19-e89b2153fd6795f03d6cd1dd789241326a7ee458.rb +0 -49
  345. data/lib/one_gadget/builds/libc-2.19-ebc3c6d17edbddfdcb000366fae4e7cab6ba420c.rb +0 -45
  346. data/lib/one_gadget/builds/libc-2.19-ecc10e3f1443d65007126bef8184ac84bfdf6b7c.rb +0 -47
  347. data/lib/one_gadget/builds/libc-2.19-edc2302cd47e8eedfc2e45da9fddecbdb07b4f21.rb +0 -50
  348. data/lib/one_gadget/builds/libc-2.19-edd5ba629053d507cb963d5269db6e7ae5bde36e.rb +0 -47
  349. data/lib/one_gadget/builds/libc-2.19-f3a1e60201c31bb9fef972279d08dfc33dbb3ce9.rb +0 -50
  350. data/lib/one_gadget/builds/libc-2.19-f5c375701c2c4406306201e19b42521f504175ec.rb +0 -49
  351. data/lib/one_gadget/builds/libc-2.19-f5e1349016d93661914069bcc7254e702434e445.rb +0 -49
  352. data/lib/one_gadget/builds/libc-2.19-f6248141094bb965d660fd2ce31d8534593c1003.rb +0 -50
  353. data/lib/one_gadget/builds/libc-2.19-f6ba6844f5bba0603e13b577328b9f326d4fef8a.rb +0 -45
  354. data/lib/one_gadget/builds/libc-2.19-f8cc1a32de8229e21b61215844be0462c6ac49a6.rb +0 -45
  355. data/lib/one_gadget/builds/libc-2.19-f9b5531180de2f0ce620bc03b5fc4d7f8570fd18.rb +0 -50
  356. data/lib/one_gadget/builds/libc-2.19-fb899b514fa6763ad006688efb32ecf9ca691ff3.rb +0 -49
  357. data/lib/one_gadget/builds/libc-2.19-fd5df0d8007d692d1c00226f81ba04b4f734b5b2.rb +0 -50
  358. data/lib/one_gadget/builds/libc-2.19-fe493bf9ecadc1f26aa36d4a95c718e9f227ad3a.rb +0 -50
  359. data/lib/one_gadget/builds/libc-2.19-fe76e177d397e9bdccf270232cc7e3a06e84aeb1.rb +0 -49
  360. data/lib/one_gadget/builds/libc-2.20-024df4febc9c789a8eeb052385d5e780b98a379f.rb +0 -48
  361. data/lib/one_gadget/builds/libc-2.20-074a896d13132ebfb22b89fd4d026b8608b84d01.rb +0 -46
  362. data/lib/one_gadget/builds/libc-2.20-0a1de0cc524dacd5b00c678daf50dde4d4539203.rb +0 -46
  363. data/lib/one_gadget/builds/libc-2.20-22fcfb6d820fec1bd07ebc3506236a1c10d2a74e.rb +0 -46
  364. data/lib/one_gadget/builds/libc-2.20-317589ae8050581abdfc414151c4655abc3cdfcd.rb +0 -48
  365. data/lib/one_gadget/builds/libc-2.20-370ce0ece788e8e73d938f2fb3ce6adb890eb417.rb +0 -48
  366. data/lib/one_gadget/builds/libc-2.20-389e645d86ab23c5f6acd039caacb18a02c3cfa2.rb +0 -46
  367. data/lib/one_gadget/builds/libc-2.20-398115bd423958b1769317a6f7e4928df141eb57.rb +0 -46
  368. data/lib/one_gadget/builds/libc-2.20-62fa1628ae33cc45efe8313a24ec8c475c9dffa6.rb +0 -46
  369. data/lib/one_gadget/builds/libc-2.20-6daaba13e3623d964ca116f91948afc5231732a8.rb +0 -48
  370. data/lib/one_gadget/builds/libc-2.20-765f172661014a4db8bb05b203bbc07c8686aa25.rb +0 -46
  371. data/lib/one_gadget/builds/libc-2.20-8bb8c78658cc612de895ec59a8026a08c86662e5.rb +0 -46
  372. data/lib/one_gadget/builds/libc-2.20-a8e57776dcdd5da9b7c9f60e65d28eaeb5b8173f.rb +0 -46
  373. data/lib/one_gadget/builds/libc-2.20-ad272c3f76f36f4fe1357514d4b207a06f7f536c.rb +0 -46
  374. data/lib/one_gadget/builds/libc-2.20-aefe2d045393dbe3e0a2acef88b6f31a78d3a27c.rb +0 -46
  375. data/lib/one_gadget/builds/libc-2.20-b1217615db4b7a86b90436982610bf86a03ca881.rb +0 -46
  376. data/lib/one_gadget/builds/libc-2.20-f3063b7115d5a383189937852ce356f4c60fd190.rb +0 -46
  377. data/lib/one_gadget/builds/libc-2.20-f53b8ad377a1988dcf6329bbdfa7b1201431656e.rb +0 -46
  378. data/lib/one_gadget/builds/libc-2.21-04f18629ef42b062ed0c8f60d5bfaa40a7d28ef7.rb +0 -52
  379. data/lib/one_gadget/builds/libc-2.21-092fa8483d177952f4b38a4b9be8305baef60466.rb +0 -46
  380. data/lib/one_gadget/builds/libc-2.21-096d4c9ce21618defe0b3e4694dc5380e0189009.rb +0 -51
  381. data/lib/one_gadget/builds/libc-2.21-13495a0bf9fc076d41056041922792ddb58ac456.rb +0 -46
  382. data/lib/one_gadget/builds/libc-2.21-169a143e9c40cfd9d09695333e45fd67743cd2d6.rb +0 -46
  383. data/lib/one_gadget/builds/libc-2.21-1800fb8ed39680604091e8268cd21cb8ee6f747f.rb +0 -46
  384. data/lib/one_gadget/builds/libc-2.21-185ab573783653be4ea1784a59be3a1499ca64c7.rb +0 -46
  385. data/lib/one_gadget/builds/libc-2.21-1a266f551f39283eff85f4ab8913d8b6d57fb290.rb +0 -46
  386. data/lib/one_gadget/builds/libc-2.21-1dfdbdb3ed58b70e07e1a94ff3e95d84652cb0f1.rb +0 -46
  387. data/lib/one_gadget/builds/libc-2.21-1ee253f6aeaec7a001984e257b86ad7224e46469.rb +0 -46
  388. data/lib/one_gadget/builds/libc-2.21-20b088455f100a9a72e94a69e843b6e0831cbedb.rb +0 -46
  389. data/lib/one_gadget/builds/libc-2.21-2466292818ad2b41c64ea7107123fe96010e1b96.rb +0 -46
  390. data/lib/one_gadget/builds/libc-2.21-24c3f01054f36f8184ba673743310b5178354334.rb +0 -46
  391. data/lib/one_gadget/builds/libc-2.21-25dd428fb4c350c16dfee20491f1a06484a2bfa3.rb +0 -46
  392. data/lib/one_gadget/builds/libc-2.21-2c092eb4091e8d3a20313a09194418595efca9db.rb +0 -46
  393. data/lib/one_gadget/builds/libc-2.21-2e9718e58257bda1dc0d751665a3ee233bf606f2.rb +0 -46
  394. data/lib/one_gadget/builds/libc-2.21-3141017330a2057c655dcb61bd3d9b2c98399181.rb +0 -46
  395. data/lib/one_gadget/builds/libc-2.21-39f1a0bc7f66ea42f3341c0d629bae8caef2346d.rb +0 -46
  396. data/lib/one_gadget/builds/libc-2.21-3af67b618c87a9cfadcf4be33331e34f77f5c842.rb +0 -46
  397. data/lib/one_gadget/builds/libc-2.21-3b9bef61c919475929cfcc3608bdadb86c3b1c6e.rb +0 -46
  398. data/lib/one_gadget/builds/libc-2.21-3c9e3250b31dfe4b5e139cda266e7beabc47e504.rb +0 -46
  399. data/lib/one_gadget/builds/libc-2.21-3eab56f86f3ee1745baa9e6fa771e652340487cc.rb +0 -46
  400. data/lib/one_gadget/builds/libc-2.21-3f08a19432b31835c71ea7d5b3687562cef053e3.rb +0 -46
  401. data/lib/one_gadget/builds/libc-2.21-3faf7b9bab86ba7024b62d99c859136333b8a70d.rb +0 -42
  402. data/lib/one_gadget/builds/libc-2.21-3fc95a6cdd31b66c550d64d90d0431f68ed43571.rb +0 -46
  403. data/lib/one_gadget/builds/libc-2.21-41530fe252a0d5854827649ddf6e2c8fba9d1653.rb +0 -46
  404. data/lib/one_gadget/builds/libc-2.21-4a0864552f6b027689c7a69efa12e277009c5999.rb +0 -46
  405. data/lib/one_gadget/builds/libc-2.21-4b7de972132a4762898ccb1210ffb7cfc0e6f14e.rb +0 -46
  406. data/lib/one_gadget/builds/libc-2.21-4ce84d266a07230287b230ac4ce8ba2d2f3f854e.rb +0 -46
  407. data/lib/one_gadget/builds/libc-2.21-4dec520cda38e785c80e30db8fcd5428cee0f324.rb +0 -42
  408. data/lib/one_gadget/builds/libc-2.21-4f14eb66c408453973042c95d25f4e014bf4e364.rb +0 -46
  409. data/lib/one_gadget/builds/libc-2.21-503c5dd98cc9529359e601c1595c995cf359df30.rb +0 -46
  410. data/lib/one_gadget/builds/libc-2.21-505a88bc8f93a7ba339895ce27dc4ad8331cad7d.rb +0 -46
  411. data/lib/one_gadget/builds/libc-2.21-53377f31675a81af793df0c63b40e193a4a6999b.rb +0 -46
  412. data/lib/one_gadget/builds/libc-2.21-53b6f3047638b0703bf1091fe4c3afe79445d546.rb +0 -46
  413. data/lib/one_gadget/builds/libc-2.21-570c7051e379d909016cb81933bc5701daecd428.rb +0 -46
  414. data/lib/one_gadget/builds/libc-2.21-591e5a56f9d466a7c70baf6684d99843ab8c45d1.rb +0 -46
  415. data/lib/one_gadget/builds/libc-2.21-59b7200857a55acdfa5de730a573eed0cfec0962.rb +0 -46
  416. data/lib/one_gadget/builds/libc-2.21-59c981c8e0e729ae7c562daa00be2cdb8e0c090a.rb +0 -46
  417. data/lib/one_gadget/builds/libc-2.21-59eae8a903584dcbc14cf07c719cd23b9f65e230.rb +0 -49
  418. data/lib/one_gadget/builds/libc-2.21-5a22b7ec63fd7c5dc6a92875046515f4beac727d.rb +0 -42
  419. data/lib/one_gadget/builds/libc-2.21-5c9f149296e581c181529723f7eb44bf10a7d746.rb +0 -46
  420. data/lib/one_gadget/builds/libc-2.21-5ccd94c4e3483df05be240ff1fb8a3f53794cc6f.rb +0 -49
  421. data/lib/one_gadget/builds/libc-2.21-5f977df2af6a6a25e48e60dd867680d79dc6da8e.rb +0 -46
  422. data/lib/one_gadget/builds/libc-2.21-60e1d8111d5fec5580da9105670e78a63287732e.rb +0 -46
  423. data/lib/one_gadget/builds/libc-2.21-629ae1554ea01c67fdedb7874de4686f6c30b6e3.rb +0 -46
  424. data/lib/one_gadget/builds/libc-2.21-63c3d4b45af73dff54258c5a5cab9e3d828cc766.rb +0 -46
  425. data/lib/one_gadget/builds/libc-2.21-64125575d05a0aedbfe187ef0f95431229c5aac8.rb +0 -42
  426. data/lib/one_gadget/builds/libc-2.21-6980ac7f9370d2bbb2aade5ceeedc8afc4f02f3e.rb +0 -46
  427. data/lib/one_gadget/builds/libc-2.21-7b173624b62ee3bd8049bdeaaff990839eb4cb36.rb +0 -46
  428. data/lib/one_gadget/builds/libc-2.21-7d672538d6a08ce14e4bd6e931392bf63156f490.rb +0 -46
  429. data/lib/one_gadget/builds/libc-2.21-7f4a3fabc90bc1e410fe6377e2a1826d426c8f57.rb +0 -46
  430. data/lib/one_gadget/builds/libc-2.21-80e8cfbc6550fde842cfb72ba97d916827d462df.rb +0 -46
  431. data/lib/one_gadget/builds/libc-2.21-82d7d2a5db69a59c01ca5d2a63250ca6a6bd08a3.rb +0 -52
  432. data/lib/one_gadget/builds/libc-2.21-834a46faae116cb9500c57d6c06e701f98a52e2e.rb +0 -42
  433. data/lib/one_gadget/builds/libc-2.21-83d46f5dc4d7894ea923bf566f6b38bfceedc6e1.rb +0 -46
  434. data/lib/one_gadget/builds/libc-2.21-847fa75888ee989393032f4ae5a133902df3e2cb.rb +0 -46
  435. data/lib/one_gadget/builds/libc-2.21-8626995277c9a0db7fec384061c564c3ea50eeae.rb +0 -46
  436. data/lib/one_gadget/builds/libc-2.21-86d752d92fbf1e8b558018e4b122dab52b304ab6.rb +0 -46
  437. data/lib/one_gadget/builds/libc-2.21-879c9c4ffc5aabfd0a9c9d1b1c73d5f1df969aac.rb +0 -46
  438. data/lib/one_gadget/builds/libc-2.21-87ded6f6ac3f40a59e17170307d0b15c1170552c.rb +0 -46
  439. data/lib/one_gadget/builds/libc-2.21-8acd43cf74a9756cd727b8516b08679ee071a92d.rb +0 -49
  440. data/lib/one_gadget/builds/libc-2.21-8e845b188299cb419b70cf5de27c22a50f776fce.rb +0 -46
  441. data/lib/one_gadget/builds/libc-2.21-924acd9c6de558f26574bdc2eaa3048b597f2e5e.rb +0 -46
  442. data/lib/one_gadget/builds/libc-2.21-93d704dff1ec8dceb660b58863d2a36afd52b66e.rb +0 -46
  443. data/lib/one_gadget/builds/libc-2.21-9595d37f80a7925dc75efa522c839df34edb4b46.rb +0 -46
  444. data/lib/one_gadget/builds/libc-2.21-9ac81172d5ff96f40d984fe7c10073a98f1a6b2e.rb +0 -46
  445. data/lib/one_gadget/builds/libc-2.21-9c764e8fb2df1bccb33ffedd92cd8659aab98e33.rb +0 -46
  446. data/lib/one_gadget/builds/libc-2.21-9cf342a68f1a7b4b6ba4df62667c5f4ee8cf7687.rb +0 -46
  447. data/lib/one_gadget/builds/libc-2.21-9d0884395161c74567d7fea747e15c9a31785e06.rb +0 -46
  448. data/lib/one_gadget/builds/libc-2.21-a0ccdc12ed6ad0d67778aff9b49abc3c8eb30b9a.rb +0 -46
  449. data/lib/one_gadget/builds/libc-2.21-a167f5367b27f9493cefac9b23e68f180239e96c.rb +0 -46
  450. data/lib/one_gadget/builds/libc-2.21-a1f20771562e9a58f6d2746d38a09694d4cbc345.rb +0 -46
  451. data/lib/one_gadget/builds/libc-2.21-a235f288513fa6064a856c499e0453f9f4a44f8a.rb +0 -46
  452. data/lib/one_gadget/builds/libc-2.21-a5c1de4517ba044d2f7cfa479e69f29bbc673c6a.rb +0 -46
  453. data/lib/one_gadget/builds/libc-2.21-a890a8ee268f8ae36ae0810b6eea7c45766b4133.rb +0 -46
  454. data/lib/one_gadget/builds/libc-2.21-a9274e5d52fbb32ba32bae055f69ba1741771e79.rb +0 -46
  455. data/lib/one_gadget/builds/libc-2.21-ab066cff9171d55efb0dd884d31c18682ae6922b.rb +0 -46
  456. data/lib/one_gadget/builds/libc-2.21-af2daffab6880d8bc68db4143643c132164dc7ca.rb +0 -46
  457. data/lib/one_gadget/builds/libc-2.21-b180bd3047be9b4b70fb28455365546001b76e85.rb +0 -42
  458. data/lib/one_gadget/builds/libc-2.21-b440183d6aefac5a9259f6e2de824e43e85ed341.rb +0 -46
  459. data/lib/one_gadget/builds/libc-2.21-b551bf2740c7e79d1722776a6e0d35d65885d037.rb +0 -46
  460. data/lib/one_gadget/builds/libc-2.21-b7ac9e99f0fc2fb83f98b6a01615c0508de638a8.rb +0 -46
  461. data/lib/one_gadget/builds/libc-2.21-b8c6428b947bad767595961d6cb907493073183c.rb +0 -46
  462. data/lib/one_gadget/builds/libc-2.21-b8daa3ddab3acf64323b47fee32338d5c9591c4d.rb +0 -46
  463. data/lib/one_gadget/builds/libc-2.21-bbfccd958f34a2292058d60a0ddf19e1fcd4ec1e.rb +0 -46
  464. data/lib/one_gadget/builds/libc-2.21-bda2fd9acb85c5de61a1d4c7e2098fce25f3199f.rb +0 -46
  465. data/lib/one_gadget/builds/libc-2.21-c164b79c008a3ad0c2f0277688274a0c3c98e79b.rb +0 -46
  466. data/lib/one_gadget/builds/libc-2.21-c2f12c8aed093770731d57b19dc039c32423246b.rb +0 -46
  467. data/lib/one_gadget/builds/libc-2.21-c3318940121036465913d946fa62fef61459b68a.rb +0 -46
  468. data/lib/one_gadget/builds/libc-2.21-c4969c549a0d0099304108e50a77ff68602ed922.rb +0 -46
  469. data/lib/one_gadget/builds/libc-2.21-c51ca19ec6c53db97a15c67eea8ed00761570689.rb +0 -46
  470. data/lib/one_gadget/builds/libc-2.21-c601601a621be82612e36dd2a981121c141c72c9.rb +0 -46
  471. data/lib/one_gadget/builds/libc-2.21-c6654d8229ff494d5b5c067e8a1dbf184fcdd57d.rb +0 -46
  472. data/lib/one_gadget/builds/libc-2.21-c91d043eaeb023885cdd80a3c0872d9fde9867bb.rb +0 -46
  473. data/lib/one_gadget/builds/libc-2.21-cb732feec2d8bae5ebb5d072a86cd31aca65f89b.rb +0 -46
  474. data/lib/one_gadget/builds/libc-2.21-cf580407d98ed9bec9c92c1ae2241eca8604e4d5.rb +0 -46
  475. data/lib/one_gadget/builds/libc-2.21-d0cbed817be7f8947339e1796d1964567e9dfe96.rb +0 -46
  476. data/lib/one_gadget/builds/libc-2.21-d1c4dd44416a5a2781b37f7d9111961c8dc58583.rb +0 -46
  477. data/lib/one_gadget/builds/libc-2.21-dc53884306f13d86e310d893433556d93ef7facc.rb +0 -49
  478. data/lib/one_gadget/builds/libc-2.21-dc70ee31ce02e89d989cb38dc885438e19dc5919.rb +0 -49
  479. data/lib/one_gadget/builds/libc-2.21-e174b9dc46c7d38d1f153f2a4f9c059484042cdc.rb +0 -46
  480. data/lib/one_gadget/builds/libc-2.21-e3a06c9d90272ed9dd49863667de02579971fefd.rb +0 -46
  481. data/lib/one_gadget/builds/libc-2.21-e6f442dc2d29e0e16cd34dc787d3c95fafeb90cc.rb +0 -46
  482. data/lib/one_gadget/builds/libc-2.21-e91a3a679d219196e597358caa46469961c471fd.rb +0 -42
  483. data/lib/one_gadget/builds/libc-2.21-f08b44317fec610d418f62d5d24fafaec0510353.rb +0 -46
  484. data/lib/one_gadget/builds/libc-2.21-f0c24219cbba0605e39e02123398437c5dbbb104.rb +0 -51
  485. data/lib/one_gadget/builds/libc-2.21-f233903e448d3ae08e72a23b0e742ecfc8b6ccc1.rb +0 -46
  486. data/lib/one_gadget/builds/libc-2.21-f5043f1299e2b98ddf8a1ba08f731f260492601a.rb +0 -46
  487. data/lib/one_gadget/builds/libc-2.21-f9e9b2f3225a520c823f0d81aea92a3dacfd621f.rb +0 -46
  488. data/lib/one_gadget/builds/libc-2.21-fe668be19c2dadb3cef5e6eafb6796acabf0b8f1.rb +0 -49
  489. data/lib/one_gadget/builds/libc-2.21.90-d8785e62882096798b9a47645c401e2db0c3da87.rb +0 -54
  490. data/lib/one_gadget/builds/libc-2.21.90-ec2edee6fe6141b914f74b6d3541e986c1995420.rb +0 -54
  491. data/lib/one_gadget/builds/libc-2.22-056b23405739592e947a92cb210791fbfe9d9938.rb +0 -52
  492. data/lib/one_gadget/builds/libc-2.22-057feedce849edba19d94bf3920903b4c297e249.rb +0 -52
  493. data/lib/one_gadget/builds/libc-2.22-06a01f4986991b8605b775bd21c3829c071c7e01.rb +0 -46
  494. data/lib/one_gadget/builds/libc-2.22-07627a0a76d4347858dc9b2533aac197920feb67.rb +0 -42
  495. data/lib/one_gadget/builds/libc-2.22-079d0ce21fe81c5c95f687db4b944d28c121a849.rb +0 -52
  496. data/lib/one_gadget/builds/libc-2.22-0f1e39397cbf59f35018306725336d275b33fad6.rb +0 -46
  497. data/lib/one_gadget/builds/libc-2.22-111a78efce1a05c176c84381f9a8687564c124dd.rb +0 -46
  498. data/lib/one_gadget/builds/libc-2.22-11c38e8940f7cd6be485bf6903fdb169d71617dd.rb +0 -46
  499. data/lib/one_gadget/builds/libc-2.22-121137de182d11744ae6be8683de568a64edca7f.rb +0 -46
  500. data/lib/one_gadget/builds/libc-2.22-124cbcd567a508befc4d08238d209749a6f81ef6.rb +0 -46
  501. data/lib/one_gadget/builds/libc-2.22-13fbe87df7583cb37d64da775d5298d139d6c645.rb +0 -46
  502. data/lib/one_gadget/builds/libc-2.22-142110382cc91407cee827f639c811fa41aad081.rb +0 -46
  503. data/lib/one_gadget/builds/libc-2.22-157a6d46c53ff9cd3176239d342644bd34cc9e6a.rb +0 -46
  504. data/lib/one_gadget/builds/libc-2.22-172387e0713d81467e907f48691fd8a3a9d9b745.rb +0 -46
  505. data/lib/one_gadget/builds/libc-2.22-1853ca84fd72235c89ca6c71dc2fd586035fb508.rb +0 -52
  506. data/lib/one_gadget/builds/libc-2.22-18c9fd18d79dce6408c752dc974b0b895286f861.rb +0 -46
  507. data/lib/one_gadget/builds/libc-2.22-190d9018168d767820b7fc6fac5cb62d1a40d819.rb +0 -52
  508. data/lib/one_gadget/builds/libc-2.22-1c3905611074ae1c586d90e5312e49817dfb1454.rb +0 -46
  509. data/lib/one_gadget/builds/libc-2.22-1ef0e3b0b75b086f54c2fb8ad958db46c199de28.rb +0 -52
  510. data/lib/one_gadget/builds/libc-2.22-20d1cd3333f60c045ee0d71cd32ac74a6b721b85.rb +0 -46
  511. data/lib/one_gadget/builds/libc-2.22-22585efc70794668f1b7f01f4392daef49f476e0.rb +0 -46
  512. data/lib/one_gadget/builds/libc-2.22-263aaed35e720148fbc396f8311138d46d099d7e.rb +0 -46
  513. data/lib/one_gadget/builds/libc-2.22-26ce2dab7bee96ee1c9d290100ffae593a644ddf.rb +0 -42
  514. data/lib/one_gadget/builds/libc-2.22-2881424e7394f45d7b7e4b9d7bee0ac3336fb53c.rb +0 -42
  515. data/lib/one_gadget/builds/libc-2.22-291a696d50e945b55f27ad1b7055adb4d94d611e.rb +0 -52
  516. data/lib/one_gadget/builds/libc-2.22-2da1c94523e9778bedccac2922cdb5582b3bab99.rb +0 -52
  517. data/lib/one_gadget/builds/libc-2.22-34701c7aa9501f113595ba20117d03fbab4a7edf.rb +0 -46
  518. data/lib/one_gadget/builds/libc-2.22-34a1e432068988d1d05ded9a1ff3a5a4d9ba957d.rb +0 -46
  519. data/lib/one_gadget/builds/libc-2.22-35dad9bbfda68f466fdb0784359dfa8be8f2e636.rb +0 -46
  520. data/lib/one_gadget/builds/libc-2.22-372f377ce426f864bf68f2a32cd703d595664885.rb +0 -46
  521. data/lib/one_gadget/builds/libc-2.22-37acef3594b4fbe5bdb37cfab88155ea223bac9d.rb +0 -46
  522. data/lib/one_gadget/builds/libc-2.22-3d8a83ac6553abcf5e18c10a39e5020352cf1fb2.rb +0 -52
  523. data/lib/one_gadget/builds/libc-2.22-3e86d1920edbc9fb506c499301164f3920a3e141.rb +0 -46
  524. data/lib/one_gadget/builds/libc-2.22-461f342f6e88de1977eb60aecd9554335b3602be.rb +0 -46
  525. data/lib/one_gadget/builds/libc-2.22-49c585626bc777823124cce965150be221723855.rb +0 -52
  526. data/lib/one_gadget/builds/libc-2.22-4bccfeb62282482e2bb5fe47523cc26cc9891d9d.rb +0 -52
  527. data/lib/one_gadget/builds/libc-2.22-4e7b4e6104632c48765f27c7e53ce073c73b03c2.rb +0 -46
  528. data/lib/one_gadget/builds/libc-2.22-515163d8d5ee351c62d0ef6438b1cb492b882128.rb +0 -46
  529. data/lib/one_gadget/builds/libc-2.22-53e3e8ce017c356969e16f4bb329fc45e948a045.rb +0 -46
  530. data/lib/one_gadget/builds/libc-2.22-5f40eb5a5f32b9824ba0cb2547ffb2b6964f6414.rb +0 -46
  531. data/lib/one_gadget/builds/libc-2.22-6281300a16a309db14773233ab085dadc65f0081.rb +0 -52
  532. data/lib/one_gadget/builds/libc-2.22-6293d42412b9a87b7233bcb5f5cbf4496c8c90dd.rb +0 -52
  533. data/lib/one_gadget/builds/libc-2.22-661a81563d20e7823c63828ff38348ec1b80adcc.rb +0 -46
  534. data/lib/one_gadget/builds/libc-2.22-6670937bc44571ec34ab812a7a7d2ce839a382ad.rb +0 -46
  535. data/lib/one_gadget/builds/libc-2.22-669abe13c2975dbdc59eb4cf3a6e9bd28ecd376c.rb +0 -52
  536. data/lib/one_gadget/builds/libc-2.22-66b3470fd1603fc11a54f8f1c69b81d85f2f0074.rb +0 -46
  537. data/lib/one_gadget/builds/libc-2.22-67222017b4ae03b81a41387cb81b0814654e2dd6.rb +0 -46
  538. data/lib/one_gadget/builds/libc-2.22-6758f608b9326b54464784a72149d9991ce839d1.rb +0 -46
  539. data/lib/one_gadget/builds/libc-2.22-68afe0b2e7d234d495d38ec6bf35257a42f229de.rb +0 -52
  540. data/lib/one_gadget/builds/libc-2.22-695c07ac1193aad1d8ee9871ee425e5653408a4d.rb +0 -46
  541. data/lib/one_gadget/builds/libc-2.22-6c9019c65a7a835172e1e88ca2f88d1f14fb23e1.rb +0 -52
  542. data/lib/one_gadget/builds/libc-2.22-765dbc5efb8e378d36cd0742b6e5a65bd9046168.rb +0 -46
  543. data/lib/one_gadget/builds/libc-2.22-775336aa55e307ff5c730b375f8220b85ede2e34.rb +0 -52
  544. data/lib/one_gadget/builds/libc-2.22-7d3f57aba43d34ae3cfab2df04a3050efbd1dfed.rb +0 -46
  545. data/lib/one_gadget/builds/libc-2.22-84681ac612616253b2eb8e99e1b68836b7d68cac.rb +0 -46
  546. data/lib/one_gadget/builds/libc-2.22-87066f8392926c00ab4a5969f52aade616c1e314.rb +0 -52
  547. data/lib/one_gadget/builds/libc-2.22-871cd1cac63b0dcd8f2cdd231291f9f89fe7c099.rb +0 -52
  548. data/lib/one_gadget/builds/libc-2.22-87e1ed146ef347cf326650e230524a6c8d4ed43d.rb +0 -46
  549. data/lib/one_gadget/builds/libc-2.22-8c48d3a9f8dea201de2948aa7f78c6a42ffa47cf.rb +0 -46
  550. data/lib/one_gadget/builds/libc-2.22-916b3d65c4f43150dea643a905c1a2a68efc3fb6.rb +0 -52
  551. data/lib/one_gadget/builds/libc-2.22-91dee95c3183246a5332357b814a08ba9c05d999.rb +0 -46
  552. data/lib/one_gadget/builds/libc-2.22-91fcf48a9dd99f320b205a2feef18c2edfdbaeba.rb +0 -42
  553. data/lib/one_gadget/builds/libc-2.22-92f57ef98cf5dc8e4d6b5df5cd1b9260b7e9975a.rb +0 -46
  554. data/lib/one_gadget/builds/libc-2.22-94075f4ca5cff8f90934c9e1706db8022e7d4ba1.rb +0 -46
  555. data/lib/one_gadget/builds/libc-2.22-94140487ddd020e65cb6c3f9ae09275ca91dc47c.rb +0 -46
  556. data/lib/one_gadget/builds/libc-2.22-94b271ac2dedc103ec8d042bb40a418a042dceb9.rb +0 -42
  557. data/lib/one_gadget/builds/libc-2.22-9686e55d792fbbcc0ae8589a69c8b15d2444ac65.rb +0 -46
  558. data/lib/one_gadget/builds/libc-2.22-a352f9564e9d19391f222c67e5c64e09f949df4e.rb +0 -42
  559. data/lib/one_gadget/builds/libc-2.22-a506f6e38353adbb19bd22872b2fa8831c32c63d.rb +0 -52
  560. data/lib/one_gadget/builds/libc-2.22-a5a6daa9eb710b5fc311bdd17696bb25e98d9dab.rb +0 -46
  561. data/lib/one_gadget/builds/libc-2.22-a61e9f882f22a77b803a1fa28912b2636913ea56.rb +0 -52
  562. data/lib/one_gadget/builds/libc-2.22-ac771fb8769897775bb6df04fe982d7a79684c8a.rb +0 -46
  563. data/lib/one_gadget/builds/libc-2.22-b213a4604fc2c8fd113ae890a97c3c2ad4022ceb.rb +0 -46
  564. data/lib/one_gadget/builds/libc-2.22-b916e3c1d80069d0209f6376b33e42b75ec49eda.rb +0 -52
  565. data/lib/one_gadget/builds/libc-2.22-b941d9b157b159697c7cbfa154c410b23be1a7af.rb +0 -42
  566. data/lib/one_gadget/builds/libc-2.22-bdbc01430dbd0c80011dea9852f3ae257bcf3138.rb +0 -46
  567. data/lib/one_gadget/builds/libc-2.22-bfdfa3833107e0041ab896c1dbfd0a4f1c4fec77.rb +0 -52
  568. data/lib/one_gadget/builds/libc-2.22-c2931cdba68412c1b871f960b4005f70847b29c3.rb +0 -52
  569. data/lib/one_gadget/builds/libc-2.22-c65d9bac0e2687bd08337088466a686c40479e5d.rb +0 -46
  570. data/lib/one_gadget/builds/libc-2.22-c6799f7a3df15cf4c4b5c273686e7cb3283e0337.rb +0 -52
  571. data/lib/one_gadget/builds/libc-2.22-cb354ede0283a824c81183b1ffb6add90255edb6.rb +0 -52
  572. data/lib/one_gadget/builds/libc-2.22-cee6e82b12f7c94f715fc96dcd4544a44997dbb5.rb +0 -46
  573. data/lib/one_gadget/builds/libc-2.22-d0516d4ba12ccc659906a5f122f8637279970bf4.rb +0 -52
  574. data/lib/one_gadget/builds/libc-2.22-d088eee45f6cbd649b53ae99b68a91823d86c6d6.rb +0 -46
  575. data/lib/one_gadget/builds/libc-2.22-dcc06a908986f225fded745f7f884bf50fd5b434.rb +0 -42
  576. data/lib/one_gadget/builds/libc-2.22-dd900e0adc14d176fe33f2b6e5d8dbe2bacb48d0.rb +0 -46
  577. data/lib/one_gadget/builds/libc-2.22-e1d7f9459324fd489e82a931f9bbe3b10cfc4436.rb +0 -42
  578. data/lib/one_gadget/builds/libc-2.22-e259f9732c7269eccd67dc7f8bbceded2a909972.rb +0 -52
  579. data/lib/one_gadget/builds/libc-2.22-e7e6d42611b69819d39439c2ee93305f6305ed90.rb +0 -46
  580. data/lib/one_gadget/builds/libc-2.22-eb0fe6bc985d025bfeeb207924823e7c2c7a77e6.rb +0 -46
  581. data/lib/one_gadget/builds/libc-2.22-eb2c0cc31e0d158b487d1010b30fa7ed358fcbd7.rb +0 -42
  582. data/lib/one_gadget/builds/libc-2.22-ee60bf5cd327f0aa534fd8c37a8733e942707a0a.rb +0 -46
  583. data/lib/one_gadget/builds/libc-2.22-efd6084786349d5763237b1caeb3d5d9f61dce75.rb +0 -46
  584. data/lib/one_gadget/builds/libc-2.22-f21f4b63fbd354522a1c37a982da46973b6a95ef.rb +0 -52
  585. data/lib/one_gadget/builds/libc-2.22-f43f58b45b8c7fe20d3c3c9f812f50a7755615d3.rb +0 -46
  586. data/lib/one_gadget/builds/libc-2.22-fa6cf8c4105217d0cf2609ab83ec3c9d4d3c5d41.rb +0 -46
  587. data/lib/one_gadget/builds/libc-2.22-faef9af5a88432766d76d7da2cf961c75b6e0e0b.rb +0 -52
  588. data/lib/one_gadget/builds/libc-2.22-ff7fbdaaef014460825b4ef5848e86834aa3880c.rb +0 -42
  589. data/lib/one_gadget/builds/libc-2.23-012683a92d161c37d51d89711c4870ba30904c3d.rb +0 -46
  590. data/lib/one_gadget/builds/libc-2.23-088165fba081e659b7ea6463eab7bcac70363656.rb +0 -46
  591. data/lib/one_gadget/builds/libc-2.23-088a6e00a1814622219f346b41e775b8dd46c518.rb +0 -46
  592. data/lib/one_gadget/builds/libc-2.23-0ae3de55854513a2a7d4979337176c0717efce8a.rb +0 -46
  593. data/lib/one_gadget/builds/libc-2.23-0c23056feb23daf0cb1d2f90e153b5f892df83c6.rb +0 -46
  594. data/lib/one_gadget/builds/libc-2.23-11ae3441756e6c2ebf5c962434bf9f07b3ea3deb.rb +0 -46
  595. data/lib/one_gadget/builds/libc-2.23-131c254aed46e6a24cb08f3abe802ea0ef50e5f9.rb +0 -46
  596. data/lib/one_gadget/builds/libc-2.23-1800a4bdb0c42a7bb7a570ed90724fa04de8a4fe.rb +0 -46
  597. data/lib/one_gadget/builds/libc-2.23-18f761287ed46e213bec29c2e440e73fd72373be.rb +0 -46
  598. data/lib/one_gadget/builds/libc-2.23-1b1d19add6d861e16e04e4b8e9864a7bc16c1327.rb +0 -46
  599. data/lib/one_gadget/builds/libc-2.23-1ca54a6e0d76188105b12e49fe6b8019bf08803a.rb +0 -46
  600. data/lib/one_gadget/builds/libc-2.23-1e80992437b5e1cb76bf56605ee8991e76e85f69.rb +0 -42
  601. data/lib/one_gadget/builds/libc-2.23-1f1cf1c7ff279aa37add352423fd850e06be1098.rb +0 -46
  602. data/lib/one_gadget/builds/libc-2.23-2052ef79d1bb69a8f5c5340eee984f2659b75e39.rb +0 -46
  603. data/lib/one_gadget/builds/libc-2.23-233dde1d38ecdc54bef352f1b5ee4e007ec9df26.rb +0 -46
  604. data/lib/one_gadget/builds/libc-2.23-2891dc7656eed3d8d4f255c41ca6a28caf532079.rb +0 -46
  605. data/lib/one_gadget/builds/libc-2.23-29e38445a740bba5a77b86691e3c51a7e48dc79b.rb +0 -46
  606. data/lib/one_gadget/builds/libc-2.23-2aedae2bb27ac85cf14c36da79747dd88bb2b633.rb +0 -46
  607. data/lib/one_gadget/builds/libc-2.23-2c4ed1bebc9ede033fbbb422f84da9a93cacd88e.rb +0 -46
  608. data/lib/one_gadget/builds/libc-2.23-30773be8cf5bfed9d910c8473dd44eaab2e705ab.rb +0 -49
  609. data/lib/one_gadget/builds/libc-2.23-336976f90c600be7c95a68be6c2f0652cc22347c.rb +0 -46
  610. data/lib/one_gadget/builds/libc-2.23-3612e20f3e2705dcf8fd81ac494a0e20b9e16764.rb +0 -46
  611. data/lib/one_gadget/builds/libc-2.23-369de0e1d833caa693af17f17c83ba937f0a4dad.rb +0 -49
  612. data/lib/one_gadget/builds/libc-2.23-39fa51127c50ad10c32a19e0a1a587a05b8d450b.rb +0 -46
  613. data/lib/one_gadget/builds/libc-2.23-408d0e9e7720923def88a5aea9988cbaa0142b64.rb +0 -46
  614. data/lib/one_gadget/builds/libc-2.23-414c35398dffe74ac9ed945e176d8fd99446d9de.rb +0 -46
  615. data/lib/one_gadget/builds/libc-2.23-49bd3f83d9b34b9f043e68624271c5ef90820021.rb +0 -46
  616. data/lib/one_gadget/builds/libc-2.23-4df2711ee6c911fe238cf10f43b08099201e57ec.rb +0 -40
  617. data/lib/one_gadget/builds/libc-2.23-54128118082b61b311247f8fa6672b8df938748a.rb +0 -46
  618. data/lib/one_gadget/builds/libc-2.23-5d45b750d14b7b6ea11c2b57c73746b61592437b.rb +0 -46
  619. data/lib/one_gadget/builds/libc-2.23-5d511bfe32efcb567933d13ab9dc87f0a02d3651.rb +0 -42
  620. data/lib/one_gadget/builds/libc-2.23-60ea46dff84c256650d44c1a32ca609168bee1a6.rb +0 -46
  621. data/lib/one_gadget/builds/libc-2.23-635101aec7213fdc442419bf65a92047a862ff32.rb +0 -46
  622. data/lib/one_gadget/builds/libc-2.23-6462f7cc95a34bd03f42ad150211db68fcf27d44.rb +0 -46
  623. data/lib/one_gadget/builds/libc-2.23-697f7d05a70ecde852a2eed480bea6a6779b4a27.rb +0 -46
  624. data/lib/one_gadget/builds/libc-2.23-72ac40020fbf2b0b6a16b5ff4e0efdff1e71fa92.rb +0 -29
  625. data/lib/one_gadget/builds/libc-2.23-7598dcdd3567efa7befebc6d97977e83d758c649.rb +0 -46
  626. data/lib/one_gadget/builds/libc-2.23-78e2b4f1945abc8f1db6d82acf6d1ef593d01e06.rb +0 -46
  627. data/lib/one_gadget/builds/libc-2.23-89cc3bb9361ad139a1967462175759416c9dc82b.rb +0 -46
  628. data/lib/one_gadget/builds/libc-2.23-8b51f0e99fae7170859f393ba0118cc955c337b9.rb +0 -46
  629. data/lib/one_gadget/builds/libc-2.23-8c436e0b35bb19702fba4b5effb3f94edecc3c46.rb +0 -45
  630. data/lib/one_gadget/builds/libc-2.23-8ccf267bc9d0f4706559d85cbeb704782dae9ede.rb +0 -46
  631. data/lib/one_gadget/builds/libc-2.23-946025a5cad7b5f2dfbaebc6ebd1fcc004349b48.rb +0 -40
  632. data/lib/one_gadget/builds/libc-2.23-94ab3e046784e5da65532a9aded8555c3bdc3778.rb +0 -46
  633. data/lib/one_gadget/builds/libc-2.23-9600225be309ec27d01385dd52df9196e86ed3c0.rb +0 -46
  634. data/lib/one_gadget/builds/libc-2.23-961068caa1dcd5005b27c7c6abe32e94102eae3f.rb +0 -46
  635. data/lib/one_gadget/builds/libc-2.23-96f8c796364693379a2a0c753133fecbd1c52434.rb +0 -46
  636. data/lib/one_gadget/builds/libc-2.23-99de357f509368d89f95b0e92b0d5227e8b8addc.rb +0 -46
  637. data/lib/one_gadget/builds/libc-2.23-9a6b57c7a4f93d7e54e61bccb7df996c8bc58141.rb +0 -46
  638. data/lib/one_gadget/builds/libc-2.23-9e85392b0c4e3e2c8fdc063dfda4c3d0e0156e54.rb +0 -46
  639. data/lib/one_gadget/builds/libc-2.23-a594a9c73a6067ab00a0f8db78d665be147acdc1.rb +0 -38
  640. data/lib/one_gadget/builds/libc-2.23-a6fe771348e04d552fa1e6dcaf610699719bdd0e.rb +0 -46
  641. data/lib/one_gadget/builds/libc-2.23-a71b122dbcd9503767b6f176d7745749fb4aaf89.rb +0 -46
  642. data/lib/one_gadget/builds/libc-2.23-ac333186c6b532511a68d16aca4c61422eb772da.rb +0 -46
  643. data/lib/one_gadget/builds/libc-2.23-b078f2c07ab3751dbcbc3fbd2a11a8a162c35576.rb +0 -42
  644. data/lib/one_gadget/builds/libc-2.23-b2994712adbb4db7b768554149443ddee829cb91.rb +0 -46
  645. data/lib/one_gadget/builds/libc-2.23-b5381a457906d279073822a5ceb24c4bfef94ddb.rb +0 -49
  646. data/lib/one_gadget/builds/libc-2.23-b8aaf9d529588ee96e6e399ab8a15cbd58ab8b54.rb +0 -46
  647. data/lib/one_gadget/builds/libc-2.23-b978afd6ca2cf3f8768d6055581ece3c3e7d7b27.rb +0 -46
  648. data/lib/one_gadget/builds/libc-2.23-bde4e8b0230b1b474cd8a1ca6e9f81bb2b438914.rb +0 -46
  649. data/lib/one_gadget/builds/libc-2.23-c0a199289365088782dcaceab6a81721d0d8ae0c.rb +0 -46
  650. data/lib/one_gadget/builds/libc-2.23-c0cc47b9f732f8150eb2bbfb18d0d60a7b3564a9.rb +0 -46
  651. data/lib/one_gadget/builds/libc-2.23-c4fd86ec1eed57a09c79ce601f6c6e3796f574df.rb +0 -49
  652. data/lib/one_gadget/builds/libc-2.23-cbfa941a8eb7a11e4f90e81b66fcd5a820995d7c.rb +0 -38
  653. data/lib/one_gadget/builds/libc-2.23-d10743a8f3a9a7a2e9807b1af78026c0b5363f6b.rb +0 -46
  654. data/lib/one_gadget/builds/libc-2.23-d10fbfd9328f5ffaca50aa93562cb3bfb618fbcc.rb +0 -46
  655. data/lib/one_gadget/builds/libc-2.23-d1df77a9cc06ba60c213852b01bc24282e49696a.rb +0 -46
  656. data/lib/one_gadget/builds/libc-2.23-d26149b8dc15c0c3ea8a5316583757f69b39e037.rb +0 -29
  657. data/lib/one_gadget/builds/libc-2.23-d2be9dbf540a6ca8b559ddfbd17f47b53e84ba8d.rb +0 -46
  658. data/lib/one_gadget/builds/libc-2.23-d61f734abbd95e2ddeab19046141020d00aa2aaf.rb +0 -42
  659. data/lib/one_gadget/builds/libc-2.23-d67449e7e9672f074e72fd37ffa9335c6c483bc8.rb +0 -43
  660. data/lib/one_gadget/builds/libc-2.23-dcd02728e55c40d4a4b0d1482abe75cf2b853c2e.rb +0 -46
  661. data/lib/one_gadget/builds/libc-2.23-dd5192a769e33ed6ca68a6ab5740ff9e8ec678a7.rb +0 -46
  662. data/lib/one_gadget/builds/libc-2.23-e388b883ef50189a2eb5e6c7931c52e03761a7fd.rb +0 -46
  663. data/lib/one_gadget/builds/libc-2.23-e7b96675bca2ca2e2e746ebcb706d9236178564c.rb +0 -40
  664. data/lib/one_gadget/builds/libc-2.23-e7c57c7dc7a4d8ca964993f19fd8b0fc4f72b617.rb +0 -46
  665. data/lib/one_gadget/builds/libc-2.23-e8df4c3d58e99c87f9b22655e9180c7ac31cb44f.rb +0 -46
  666. data/lib/one_gadget/builds/libc-2.23-edceed30099baad51871c5fc277daf9b74dc726a.rb +0 -46
  667. data/lib/one_gadget/builds/libc-2.23-ee0b5a0f65e25f536a868d84e1d912403b56e742.rb +0 -46
  668. data/lib/one_gadget/builds/libc-2.23-ee525f6c9b018c094beedd17b87a4573d7ea7e2e.rb +0 -46
  669. data/lib/one_gadget/builds/libc-2.23-f0c2e03955a845c9a7f9c85228b12c9700d66c50.rb +0 -46
  670. data/lib/one_gadget/builds/libc-2.23-f202f01f10e845e14e7d8ca44cf5d9e4742fca6a.rb +0 -40
  671. data/lib/one_gadget/builds/libc-2.23-f2f2f2af4f3e8597cca1fdff1008a834c78de42b.rb +0 -46
  672. data/lib/one_gadget/builds/libc-2.23-f303ce47c562225a4f3475170333494965760a6a.rb +0 -46
  673. data/lib/one_gadget/builds/libc-2.23-f33f3937b8f458ffd96cf10a22deea1bd85ac61a.rb +0 -46
  674. data/lib/one_gadget/builds/libc-2.23-f4490657edfef482025fff60e85acd5928e0d05b.rb +0 -46
  675. data/lib/one_gadget/builds/libc-2.23-ffb3662a7bc5e136fa8f464fc14ec23efb8d1817.rb +0 -40
  676. data/lib/one_gadget/builds/libc-2.23.90-203feaf8a7e40cef8a75568a406a22fdeda94f8b.rb +0 -40
  677. data/lib/one_gadget/builds/libc-2.23.90-392b643118f919a1827477e978d9cea2b09a34fc.rb +0 -46
  678. data/lib/one_gadget/builds/libc-2.23.90-52e411aed4443fbbcb9706fffa2362e4a108f28f.rb +0 -46
  679. data/lib/one_gadget/builds/libc-2.23.90-604d873b711edeb971328656c4c17bbc15c7427f.rb +0 -46
  680. data/lib/one_gadget/builds/libc-2.23.90-63fbdf3e3928f6dc2bcac10e28aa233a625a3d27.rb +0 -46
  681. data/lib/one_gadget/builds/libc-2.23.90-7439c4311f0dd7307f78c1b5530f52a590230e45.rb +0 -46
  682. data/lib/one_gadget/builds/libc-2.23.90-b23fcdbc7bead3c59600e0a6acfe9220c42e1b93.rb +0 -46
  683. data/lib/one_gadget/builds/libc-2.23.90-c5238226a11b5538d56c713c97db1a36722e6322.rb +0 -40
  684. data/lib/one_gadget/builds/libc-2.23.90-e1b43c632d35649e9b128528994426e34ae40d1a.rb +0 -46
  685. data/lib/one_gadget/builds/libc-2.23.90-e9ab765fb32204de2215d6117dcbc1fb92f26b9a.rb +0 -40
  686. data/lib/one_gadget/builds/libc-2.23.90-ef3765f1e2595771cefa96291c647d0eff8a81e0.rb +0 -40
  687. data/lib/one_gadget/builds/libc-2.23.90-f149edaf4dee34b38f831bf0914af2ecf0a1a317.rb +0 -46
  688. data/lib/one_gadget/builds/libc-2.24-024385baa7aaf9c62ae336e896bcf245dda0fc01.rb +0 -46
  689. data/lib/one_gadget/builds/libc-2.24-04b6f2a9e244a36a9f107febf832bbadea9f252c.rb +0 -46
  690. data/lib/one_gadget/builds/libc-2.24-0b88546716e2f1924986596ee7cc9215df89c6f5.rb +0 -46
  691. data/lib/one_gadget/builds/libc-2.24-0c11fd6524ef7a7da877f940fba181ed746edb0a.rb +0 -46
  692. data/lib/one_gadget/builds/libc-2.24-0f523a27b7460f50befd3d281238c6f189c92d84.rb +0 -46
  693. data/lib/one_gadget/builds/libc-2.24-1c3ec3a011b1005cb1c2c32fc6dbc4e6e9cef4bb.rb +0 -45
  694. data/lib/one_gadget/builds/libc-2.24-1da8c8ac3c71c30040cf58b563ae48e39bbae86f.rb +0 -40
  695. data/lib/one_gadget/builds/libc-2.24-1ddd6fca9cd87c66e6a19df018f5992e9fa6453d.rb +0 -46
  696. data/lib/one_gadget/builds/libc-2.24-1f253610e390e5237eb7949212e08166fba3ca4b.rb +0 -46
  697. data/lib/one_gadget/builds/libc-2.24-1f7bdfb9a24714835cee6e6597ea7aa782821371.rb +0 -46
  698. data/lib/one_gadget/builds/libc-2.24-206b2bb216b6cdb6b1be565a6fcd29f3862db060.rb +0 -52
  699. data/lib/one_gadget/builds/libc-2.24-20cbb98b62f46ee16b182d1b357146577c40ebb7.rb +0 -40
  700. data/lib/one_gadget/builds/libc-2.24-236e52c7896f5403d8065cf3965fdb2d31d56891.rb +0 -46
  701. data/lib/one_gadget/builds/libc-2.24-24b1296687d36e24bd48b8c412157d94f074ecc2.rb +0 -40
  702. data/lib/one_gadget/builds/libc-2.24-253debb34a7d493c0b8e2d6db2079e3d680459f5.rb +0 -40
  703. data/lib/one_gadget/builds/libc-2.24-26e84118fee5788eb5d8dda66b7e7f029d2c7800.rb +0 -52
  704. data/lib/one_gadget/builds/libc-2.24-2ee9e1740da616757f2e6d5ba58576c0c7302fff.rb +0 -40
  705. data/lib/one_gadget/builds/libc-2.24-30acfe88fed30ad3f8cb88425b80ea96899655aa.rb +0 -46
  706. data/lib/one_gadget/builds/libc-2.24-33801a6f55c5c3cdf7d83590b433adcbab08a688.rb +0 -40
  707. data/lib/one_gadget/builds/libc-2.24-349119af9e223829ea24f6b7226bdff0182e73f2.rb +0 -52
  708. data/lib/one_gadget/builds/libc-2.24-35764bd71c58942e9131e3547b7c343098212d03.rb +0 -46
  709. data/lib/one_gadget/builds/libc-2.24-389260a6758c3f1dbc741c197e747341ed277cd2.rb +0 -46
  710. data/lib/one_gadget/builds/libc-2.24-3b24749bb184473f81819312e3d86903915eaf65.rb +0 -46
  711. data/lib/one_gadget/builds/libc-2.24-3ea4c67e60e49b8164b692166115bbf927e521db.rb +0 -45
  712. data/lib/one_gadget/builds/libc-2.24-3f89db5baa7e88162377fab6a1590f732a355401.rb +0 -45
  713. data/lib/one_gadget/builds/libc-2.24-3fce81d490804af9759c70bf197380bc05a584c2.rb +0 -46
  714. data/lib/one_gadget/builds/libc-2.24-43adbb1e7368c94fba1ba9020d8ef0808bff5bc4.rb +0 -40
  715. data/lib/one_gadget/builds/libc-2.24-43faee19af5e1d20163c6492862fca1a4146b668.rb +0 -40
  716. data/lib/one_gadget/builds/libc-2.24-45adab2b0ad8604e35eeea0b30d6ec1ad11642af.rb +0 -40
  717. data/lib/one_gadget/builds/libc-2.24-46bb6303e03d21ec9b79334370e1b39a51f883b1.rb +0 -46
  718. data/lib/one_gadget/builds/libc-2.24-497931f8d2346a6d0e300a65d8fc6106c6c88c15.rb +0 -46
  719. data/lib/one_gadget/builds/libc-2.24-4d0bb76f378375d584a373929f6d5b695f53db99.rb +0 -40
  720. data/lib/one_gadget/builds/libc-2.24-4dac034d41342a93593b3e18aa05f4b69c2909c9.rb +0 -45
  721. data/lib/one_gadget/builds/libc-2.24-4fa7401566d6b3e2c7ee5df3b4d85a01f85b595c.rb +0 -46
  722. data/lib/one_gadget/builds/libc-2.24-5284cbfbd543755c2fa4df64a20ccb14e7ded30c.rb +0 -46
  723. data/lib/one_gadget/builds/libc-2.24-53bab59259db20458dc7d753dd2950916f6e47de.rb +0 -46
  724. data/lib/one_gadget/builds/libc-2.24-568d20b7e0d08bc282fb42ae405c7054e4209ede.rb +0 -40
  725. data/lib/one_gadget/builds/libc-2.24-595aeaf311d354bbcd3f311e218f6b40fe711046.rb +0 -46
  726. data/lib/one_gadget/builds/libc-2.24-5a75868ead9dbb03eb4d668ff2918f341f949387.rb +0 -46
  727. data/lib/one_gadget/builds/libc-2.24-5b72576ff331e93852355123afecdec70fd247b5.rb +0 -52
  728. data/lib/one_gadget/builds/libc-2.24-6194e9b483a157d38ab633a5bf3c37f9ed6b7e04.rb +0 -40
  729. data/lib/one_gadget/builds/libc-2.24-6a5885d005a0e25074da79038453af3c1bbd16a1.rb +0 -40
  730. data/lib/one_gadget/builds/libc-2.24-6a6d4ead4f4d511091e34c8baebaab04b97913e0.rb +0 -46
  731. data/lib/one_gadget/builds/libc-2.24-6d3ffad6407f2ea71f9121d761426f3a917f4216.rb +0 -46
  732. data/lib/one_gadget/builds/libc-2.24-6dd40dc4bc5ee908b857c00c1b2a00c58ebc1596.rb +0 -45
  733. data/lib/one_gadget/builds/libc-2.24-756da9d194e16bccf2c342a12d8ea01e677fcba7.rb +0 -40
  734. data/lib/one_gadget/builds/libc-2.24-7a7fafb866f1680656f7343e9d38fa76986bcfff.rb +0 -45
  735. data/lib/one_gadget/builds/libc-2.24-7e0f1b3a8efe3adcf3080b20447ac4bd47aaf489.rb +0 -40
  736. data/lib/one_gadget/builds/libc-2.24-805005b60c0c3e63eb593a5041fc9f7803e3b87d.rb +0 -46
  737. data/lib/one_gadget/builds/libc-2.24-856e263a6c8431b34f1ab69b55abbe453a135c52.rb +0 -45
  738. data/lib/one_gadget/builds/libc-2.24-8a683c08dbc27e1ceab72d87cd00b5d6208f7620.rb +0 -40
  739. data/lib/one_gadget/builds/libc-2.24-8eb1e49d70f349433d3d4a712b4746c73481012d.rb +0 -46
  740. data/lib/one_gadget/builds/libc-2.24-91b0020fb992b67e3c368576943fde81e4ec7ec9.rb +0 -40
  741. data/lib/one_gadget/builds/libc-2.24-9378343c5442ef04933110045638b2daafa16098.rb +0 -46
  742. data/lib/one_gadget/builds/libc-2.24-976f2a94a6a1db73c935bce8db1e5a28a46d8535.rb +0 -46
  743. data/lib/one_gadget/builds/libc-2.24-980296526a2060e4e53dfa8ded76917c3f9b851c.rb +0 -46
  744. data/lib/one_gadget/builds/libc-2.24-9a006ea92b333aa035fdecc8dc0b28e1d04edd37.rb +0 -46
  745. data/lib/one_gadget/builds/libc-2.24-9ae48d5843f29af366655a00fb0636db91328abb.rb +0 -40
  746. data/lib/one_gadget/builds/libc-2.24-9b7db6636c9f2f03c9523b02db229741e2250550.rb +0 -40
  747. data/lib/one_gadget/builds/libc-2.24-9e638553dc7a08748d03c42455ecd6bb9bd8f8cd.rb +0 -46
  748. data/lib/one_gadget/builds/libc-2.24-a4c01d397b6584f7040ef266b16a5d4da0b7a087.rb +0 -52
  749. data/lib/one_gadget/builds/libc-2.24-a51ace667ccae6a8887837efb18259a906704bed.rb +0 -46
  750. data/lib/one_gadget/builds/libc-2.24-a822e789c3428254f309f81600b9e5ae551a3461.rb +0 -46
  751. data/lib/one_gadget/builds/libc-2.24-aad7dbe330f23ea00ca63daf793b766b51aceb5d.rb +0 -52
  752. data/lib/one_gadget/builds/libc-2.24-acd08eb60d44e32e85530f0537d46f8cd422403e.rb +0 -46
  753. data/lib/one_gadget/builds/libc-2.24-b81a06f0ac241c4aa8860602d9abcc903adbb675.rb +0 -46
  754. data/lib/one_gadget/builds/libc-2.24-b8a944084a03aec90d871ca8a5fac48801cc064d.rb +0 -46
  755. data/lib/one_gadget/builds/libc-2.24-b95a6603e6113924f82409ff65e6ed1514afd3db.rb +0 -40
  756. data/lib/one_gadget/builds/libc-2.24-bb0d156759d9bdfec06f5decd1c03785bcbc0ba1.rb +0 -46
  757. data/lib/one_gadget/builds/libc-2.24-bccffaa4c34e166b9c09e8802ce09989d1e8f46a.rb +0 -40
  758. data/lib/one_gadget/builds/libc-2.24-be6d412ecc4816c46eb49e750b02f714a9131c4e.rb +0 -46
  759. data/lib/one_gadget/builds/libc-2.24-c116abd24efe14f6dc2f98cef3d673934f6d66d0.rb +0 -42
  760. data/lib/one_gadget/builds/libc-2.24-c1fd7dc1c8a6915e5f7a7f24a5901a239d473f08.rb +0 -46
  761. data/lib/one_gadget/builds/libc-2.24-c451b072ff6aa62ba6e054c06e633fa297a3a7eb.rb +0 -40
  762. data/lib/one_gadget/builds/libc-2.24-c5a0679981d0258465ddba6b975c9340cbf20d22.rb +0 -40
  763. data/lib/one_gadget/builds/libc-2.24-c62f8c5ce9f5304f054922d39d0c0fa94d9e9531.rb +0 -46
  764. data/lib/one_gadget/builds/libc-2.24-c7d3ac73ddd0865d350bd570771cf3a964a1ddbd.rb +0 -46
  765. data/lib/one_gadget/builds/libc-2.24-c9133ae8d86b5d469422e0c51a19e7910ebeae41.rb +0 -40
  766. data/lib/one_gadget/builds/libc-2.24-cc7e13208dfc283e75a9491f8507429f647eac05.rb +0 -40
  767. data/lib/one_gadget/builds/libc-2.24-d2a8a8ac188a6c3bafa4813a3d2789240ee49489.rb +0 -46
  768. data/lib/one_gadget/builds/libc-2.24-d67af93d54c07bbe5d252ef6f176ec77b866c786.rb +0 -46
  769. data/lib/one_gadget/builds/libc-2.24-d8ba284042773fed1189bcf927960999f4c1de55.rb +0 -45
  770. data/lib/one_gadget/builds/libc-2.24-da518391ad926bb7535f2095df0be265180eeed5.rb +0 -40
  771. data/lib/one_gadget/builds/libc-2.24-dab413a7e3b33dde527af308a09a55ade6b41e84.rb +0 -40
  772. data/lib/one_gadget/builds/libc-2.24-dc799b9197929f88cebc6aa72e3be388cacfb1df.rb +0 -46
  773. data/lib/one_gadget/builds/libc-2.24-deefae132c5a39ba892bc189edd91f73c1ea1f14.rb +0 -40
  774. data/lib/one_gadget/builds/libc-2.24-dff06414a29b97b865ef938e06a7751fe8b1b2d0.rb +0 -46
  775. data/lib/one_gadget/builds/libc-2.24-e0206d9b8d7ad3abc39a94dbc37bb3b42c9f1345.rb +0 -46
  776. data/lib/one_gadget/builds/libc-2.24-e5dc6c0caa39828fa10ed37e642723a581acdb6d.rb +0 -40
  777. data/lib/one_gadget/builds/libc-2.24-e7de387eec0b57da248cc4e74edefcfcb55bd204.rb +0 -45
  778. data/lib/one_gadget/builds/libc-2.24-eaadebbded05e24bc9853c39b2241436f96d41ef.rb +0 -46
  779. data/lib/one_gadget/builds/libc-2.24-eb6b0b1e1c5cf4579e66eadb083885884dc0b648.rb +0 -40
  780. data/lib/one_gadget/builds/libc-2.24-f5ffc1b2b1282d79097f4ce84b519d326dce1247.rb +0 -40
  781. data/lib/one_gadget/builds/libc-2.24-fb431a54ddae802fd1c59850cbbc408a05d3deb8.rb +0 -46
  782. data/lib/one_gadget/builds/libc-2.24-fc121fe8b1eaa6ea0babbc3b8ce6e12adfcc3719.rb +0 -45
  783. data/lib/one_gadget/builds/libc-2.24-fe976940471b3f683eeebb268f095b7ff1c898c1.rb +0 -46
  784. data/lib/one_gadget/builds/libc-2.25-58c735bc7b19b0aeb395cce70cf63bd62ac75e4a.rb +0 -52
  785. data/lib/one_gadget/builds/libc-2.25-912fc00c0da67045111928bd5c8a350e5be18c41.rb +0 -52
  786. data/lib/one_gadget/builds/libc-2.25-e5eb6347f0629b37bf698200022a683b7efb10ed.rb +0 -46
  787. data/lib/one_gadget/builds/libc-2.25-eae5038c2b9ae67d9eda345aa9fbe0a7185ab436.rb +0 -52
  788. data/lib/one_gadget/builds/libc-2.26-1c39b3b3faa2a2cbb0fa0b6845b29332562262d3.rb +0 -52
  789. data/lib/one_gadget/builds/libc-2.26-2104f3d4ad5cf68603afbe7ba1a17f5ac99c5988.rb +0 -43
  790. data/lib/one_gadget/builds/libc-2.26-3b850bf60461afbdd83317b248b3f687e52ff18e.rb +0 -52
  791. data/lib/one_gadget/builds/libc-2.26-499b381aaf00ce85ee5d4a12770ea369b30d2a41.rb +0 -52
  792. data/lib/one_gadget/builds/libc-2.26-4cc84abfe1fd26a485fc2b1b954c281ce9d358fd.rb +0 -52
  793. data/lib/one_gadget/builds/libc-2.26-4ea852c9d6a5084b8b58509b3b3d37d3d8cddb90.rb +0 -52
  794. data/lib/one_gadget/builds/libc-2.26-6d2b609f0c8e7b338f767b08c5ac712fac809d31.rb +0 -64
  795. data/lib/one_gadget/builds/libc-2.26-d4dd444f86cfc66c97c5e3eecb69fc5b86ea6539.rb +0 -52
  796. data/lib/one_gadget/builds/libc-2.26-ddcc13122ddbfe5e5ef77d4ebe66d124ae5762c2.rb +0 -64
  797. data/lib/one_gadget/builds/libc-2.26-f65648a832414f2144ce795d75b6045a1ec2e252.rb +0 -52
  798. data/lib/one_gadget/builds/libc-2.26-fb587bc4429e7d1b0de31a3b9ee8ae78ee797eb0.rb +0 -52
  799. data/lib/one_gadget/builds/libc-2.27-06a8004be6e10c4aeabbe0db74423ace392a2d6b.rb +0 -47
  800. data/lib/one_gadget/builds/libc-2.27-0e188ec5f09c187a7a92784d4b97aa251b15a93c.rb +0 -47
  801. data/lib/one_gadget/builds/libc-2.27-14cd15d2eb0bc25c89045873cf807f7533e4788d.rb +0 -47
  802. data/lib/one_gadget/builds/libc-2.27-2d1c5e0b85cb06ff47fa6fa088ec22cb6e06074e.rb +0 -47
  803. data/lib/one_gadget/builds/libc-2.27-4b06dfe2c46f5e537b3d0a310ab0bda11bcbd681.rb +0 -32
  804. data/lib/one_gadget/builds/libc-2.27-71f0f3074a929e519e85f6a5c03a7d1fd976bfe4.rb +0 -47
  805. data/lib/one_gadget/builds/libc-2.27-73cd526a553b3b47c6dd0d6dc62175263cdc646e.rb +0 -41
  806. data/lib/one_gadget/builds/libc-2.27-9dd0bb57f81671704475d1e5163405f7b4d4b454.rb +0 -41
  807. data/lib/one_gadget/builds/libc-2.27-a5e88eb34369fb48113b9eda7a92e07b372f3cb7.rb +0 -41
  808. data/lib/one_gadget/builds/libc-2.27-afdabd83c53f0fc60a059c3305c4f3b57198e51b.rb +0 -47
  809. data/lib/one_gadget/builds/libc-2.27-ba63c4a5f5c2b51e6e7e5df94017dc98b20e397a.rb +0 -47
  810. data/lib/one_gadget/builds/libc-2.27-cc6dd208d3af4bc505f599a90ef8af52f16116e4.rb +0 -41
  811. data/lib/one_gadget/builds/libc-2.27-ce450eb01a5e5acc7ce7b8c2633b02cc1093339e.rb +0 -47
  812. data/lib/one_gadget/builds/libc-2.27-cf1599aa8b3cb35f79dcaea7a8b48704ecf42a19.rb +0 -47
  813. data/lib/one_gadget/builds/libc-2.27-d1237c55f6778f53b369cf22ff81979b2fe340bb.rb +0 -41
  814. data/lib/one_gadget/builds/libc-2.27-d3cf764b2f97ac3efe366ddd07ad902fb6928fd7.rb +0 -47
  815. data/lib/one_gadget/builds/libc-2.27-d831493b564a8632d1da5cc0fe44af45713cfeb6.rb +0 -47
  816. data/lib/one_gadget/builds/libc-2.27-f4929d2a8af4629477103af6f1cfb3bebce80883.rb +0 -47
  817. data/lib/one_gadget/builds/libc-2.28-26b3c1a40c8a0bd026975a262774bf52aec55107.rb +0 -44
  818. data/lib/one_gadget/builds/libc-2.28-44f5a3efb0e5733fa9d97e690cb36cd4c682bcdb.rb +0 -41
  819. data/lib/one_gadget/builds/libc-2.28-5784a31a1c26f6d2157e585205ebb63dd19ff90f.rb +0 -41
  820. data/lib/one_gadget/builds/libc-2.28-5b157f49586a3ca84d55837f97ff466767dd3445.rb +0 -59
  821. data/lib/one_gadget/builds/libc-2.28-65ed813688b116fdce9e866ad2fef2e734167337.rb +0 -50
  822. data/lib/one_gadget/builds/libc-2.28-6ee9454b96efa9e343f9e8105f2fa4529265ea05.rb +0 -50
  823. data/lib/one_gadget/builds/libc-2.29-2195ff86b0ddead43a7c08f46b95b0887cdb96fa.rb +0 -32
  824. data/lib/one_gadget/builds/libc-2.29-5b7203920d3d786ac40af8e0d5104683335f11be.rb +0 -74
  825. data/lib/one_gadget/builds/libc-2.29-6d8abbab5b004d65bfdf909fd4982103499cd1c9.rb +0 -23
  826. data/lib/one_gadget/builds/libc-2.29-85d5020664b11fd2708859275de41d5ab9d104cf.rb +0 -74
  827. data/lib/one_gadget/builds/libc-2.29-9a1100ebab15d22bbc31836b0656d2fa5a6a1252.rb +0 -23
  828. data/lib/one_gadget/builds/libc-2.29-a8af6c81cb28a37bf3a546970bf64224402f8bd4.rb +0 -74
  829. data/lib/one_gadget/builds/libc-2.29-c19c88c33b60742ca906e0f9f96fe31b8b79ea9c.rb +0 -74
  830. data/lib/one_gadget/builds/libc-2.29-d389232dd725501db38f08e2aca0b44ab3af314f.rb +0 -23
  831. data/lib/one_gadget/builds/libc-2.29-d561ec515222887a1e004555981169199d841024.rb +0 -83
  832. data/lib/one_gadget/builds/libc-2.30-00854a16b9b4b73893627ccb730d97907837e320.rb +0 -26
  833. data/lib/one_gadget/builds/libc-2.30-135c0b4a030ec9b6306ed6b621e1e0dedfd614a3.rb +0 -23
  834. data/lib/one_gadget/builds/libc-2.30-2155f455ad56bd871c8225bcca85ee25c1c197c4.rb +0 -107
  835. data/lib/one_gadget/builds/libc-2.30-33d1f350f13728651d74dd2a56bad1e4e4648f5e.rb +0 -74
  836. data/lib/one_gadget/builds/libc-2.30-3f72ae987c135c35f2e721c61991ec46df8816ab.rb +0 -32
  837. data/lib/one_gadget/builds/libc-2.30-4ab6143b59defc12c3d50d176c78b4e6e5a2c179.rb +0 -23
  838. data/lib/one_gadget/builds/libc-2.30-71373fd43ed6a83e0aab983c3a971e32d459e15f.rb +0 -38
  839. data/lib/one_gadget/builds/libc-2.30-75e3e2d9596aae251330ae7ef3f91a847fc62641.rb +0 -38
  840. data/lib/one_gadget/builds/libc-2.30-7a1e2ae26cef50584af2c60a5ad3a7ae3e9b1446.rb +0 -74
  841. data/lib/one_gadget/builds/libc-2.30-884362aa891ab565e4cf904cd60be984a7941acd.rb +0 -26
  842. data/lib/one_gadget/builds/libc-2.30-93abe093a13b9b10f83b5e6de4a63a0d29175c89.rb +0 -32
  843. data/lib/one_gadget/builds/libc-2.30-bef538440d5b4b0ac6b4575acb3aac4a65316061.rb +0 -26
  844. data/lib/one_gadget/builds/libc-2.30-c0a4471ee8f24f2ecc0ad1ccbd4633fa6fa36654.rb +0 -26
  845. data/lib/one_gadget/builds/libc-2.30-c60a7605ae87b9b40426e3123b12a91bfe2036f3.rb +0 -26
  846. data/lib/one_gadget/builds/libc-2.30-c841931c41e7affad89dfe70a45f01afafa9a37a.rb +0 -32
  847. data/lib/one_gadget/builds/libc-2.30-cbe9cff3c43b979739af1681b61a3d585725577b.rb +0 -107
  848. data/lib/one_gadget/builds/libc-2.30-cd779a06a5df37cdad8dfcfa12cb2c8db36f62f4.rb +0 -26
  849. data/lib/one_gadget/builds/libc-2.30-dc43d2c2d727158000c9bef6d47e17722d41ec2d.rb +0 -26
  850. data/lib/one_gadget/builds/libc-2.30-e3e238714a7998a958651faa0a5e97fafa229ec3.rb +0 -26
  851. data/lib/one_gadget/builds/libc-2.30-f07144cc3d0ac50415f3a2e061be6da672c914ba.rb +0 -74
  852. data/lib/one_gadget/builds/libc-2.30-f44469d65b4efd2e5951513ed7cbf773657f1283.rb +0 -74
  853. data/lib/one_gadget/builds/libc-2.31-012f3f1e614cb9c829b8d1590d228cc6a9506a03.rb +0 -26
  854. data/lib/one_gadget/builds/libc-2.31-05dd8f45f3f82869e5ca8cb214475816e41f469a.rb +0 -26
  855. data/lib/one_gadget/builds/libc-2.31-099b9225bcb0d019d9d60884be583eb31bb5f44e.rb +0 -122
  856. data/lib/one_gadget/builds/libc-2.31-0d1b3211736c4ca528a32ea0d565d41a2ede3b58.rb +0 -80
  857. data/lib/one_gadget/builds/libc-2.31-0df979b8b244294bbc29bbe8f7f6dd6bf89c6820.rb +0 -26
  858. data/lib/one_gadget/builds/libc-2.31-12e412d1938ec3ff79751f0e85f31bc52f7e3722.rb +0 -80
  859. data/lib/one_gadget/builds/libc-2.31-2886817dc06a87bdeef50544c0d6c12de13a8148.rb +0 -80
  860. data/lib/one_gadget/builds/libc-2.31-4d4d0853eb075b8b0cfaee0aee7cdf4254a3e877.rb +0 -80
  861. data/lib/one_gadget/builds/libc-2.31-58a58f2fcdafddacb4a08439ea2ee163ff645d1d.rb +0 -26
  862. data/lib/one_gadget/builds/libc-2.31-634252e0c5f8b03957a2e529719d4101699a894a.rb +0 -122
  863. data/lib/one_gadget/builds/libc-2.31-6b143503744b9d6c22e479941488d6a9e6e3f1c5.rb +0 -26
  864. data/lib/one_gadget/builds/libc-2.31-6c6ea8a57519f219a10c9d6a6d199dd813680226.rb +0 -26
  865. data/lib/one_gadget/builds/libc-2.31-6dbad1709854c527793f6401666e45a791b7c793.rb +0 -80
  866. data/lib/one_gadget/builds/libc-2.31-6fe07009bc57e6917030d052370d8bed414dd7c0.rb +0 -32
  867. data/lib/one_gadget/builds/libc-2.31-78702aff0796336ccdd432310ba6f84c728c9b3c.rb +0 -26
  868. data/lib/one_gadget/builds/libc-2.31-85d7bb2dad0f8172d1c02c0311a00c4695933beb.rb +0 -26
  869. data/lib/one_gadget/builds/libc-2.31-8614995a8f0152ad4b1b45e28070588546ca7ac8.rb +0 -26
  870. data/lib/one_gadget/builds/libc-2.31-8629fa2eea681f639a0c18305d4548850dde3450.rb +0 -26
  871. data/lib/one_gadget/builds/libc-2.31-94761ae31db09ce9140ca55cb6986a5ea9110abc.rb +0 -80
  872. data/lib/one_gadget/builds/libc-2.31-a9053cb60c51ead85c68c941ca4d02f9381844f9.rb +0 -26
  873. data/lib/one_gadget/builds/libc-2.31-b61d34c10e608722a90d339bd9a7ff28b18cd501.rb +0 -23
  874. data/lib/one_gadget/builds/libc-2.31-c9d56de82ddd00d822d6100034f3075ef1709cd2.rb +0 -122
  875. data/lib/one_gadget/builds/libc-2.31-cdaf4c7a78acdea7ede78ea0240a3d8d5833110f.rb +0 -26
  876. data/lib/one_gadget/builds/libc-2.31-e67e80e70619717709e3180e552a11a285036a54.rb +0 -80
  877. data/lib/one_gadget/builds/libc-2.31-eb3c5cf73a0a6b7f2b3895a56dbc443806700971.rb +0 -80
  878. data/lib/one_gadget/builds/libc-2.31-f3aa1ef59e51e64ff8438f46d225e4ae256c1b03.rb +0 -26
  879. data/lib/one_gadget/builds/libc-2.31-f3ff3fda80b817c464a56eed59ff09dc864eaeb0.rb +0 -32
  880. data/lib/one_gadget/builds/libc-2.31-fb7626dd8b8a50f7685920487e992528834f6775.rb +0 -26
  881. data/lib/one_gadget/builds/libc-2.32-0e5c8d8738927eb715941480b3726fa764cc50ed.rb +0 -29
  882. data/lib/one_gadget/builds/libc-2.32-1e3fb06b8c86b5e282e3e11bd207d399fb4952e2.rb +0 -122
  883. data/lib/one_gadget/builds/libc-2.32-7ec3e74da842ca3c6a9ba20b21303ce1bc7a45af.rb +0 -122
  884. data/lib/one_gadget/builds/libc-2.32-7fba7abef941659c229c2636aa0905c28652ee3f.rb +0 -80
  885. data/lib/one_gadget/builds/libc-2.32-82f6b69e698bb579baefb35a3fb0346632fa2c4d.rb +0 -122
  886. data/lib/one_gadget/builds/libc-2.32-87f011a7e4cc3fc60a54d0d3dd690e7438decc8d.rb +0 -80
  887. data/lib/one_gadget/builds/libc-2.32-92199dd358616182fb49c992330fb05e42eaa423.rb +0 -29
  888. data/lib/one_gadget/builds/libc-2.32-9d60d4bd625a7fe2439db781a5fc91bb69684903.rb +0 -29
  889. data/lib/one_gadget/builds/libc-2.32-a75b0c335a4987f12d17d3b4adb8dc430432b082.rb +0 -29
  890. data/lib/one_gadget/builds/libc-2.32-ac287babd169c70013b752da2713dfb96d9a503f.rb +0 -122
  891. data/lib/one_gadget/builds/libc-2.32-aebd80372a00285a5c486ef72917f935eb8f91be.rb +0 -29
  892. data/lib/one_gadget/builds/libc-2.32-bd0e9dc4e27475b5ab7dc59141daaa2626b8a760.rb +0 -29
  893. data/lib/one_gadget/builds/libc-2.32-bddeb6374fc99723cef3b3baafe48ac78fce13b4.rb +0 -29
  894. data/lib/one_gadget/builds/libc-2.32-cb91dd613d38b806a16bed1b364c084ad63d1a1f.rb +0 -80
  895. data/lib/one_gadget/builds/libc-2.32-d3f1cf7f55b985fd6d989880ec3599724fe40a26.rb +0 -29
  896. data/lib/one_gadget/builds/libc-2.32-e13b24f94b260dd6394bdb2433d2a78e37078d5c.rb +0 -80
  897. data/lib/one_gadget/builds/libc-2.32-e1596c76d0d93d8a36378ba976f034f140618d59.rb +0 -80
  898. data/lib/one_gadget/builds/libc-2.32-f45b67ab28af1581cba8e4713e0fd3b2bc004b2e.rb +0 -80
  899. data/lib/one_gadget/builds/libc-2.33-18edf6b683a2f9768cc0ee9cc64ae6fbb545deb2.rb +0 -122
  900. data/lib/one_gadget/builds/libc-2.33-1c943bf313b5b4546e47b830e70de6bbd6a0ba57.rb +0 -29
  901. data/lib/one_gadget/builds/libc-2.33-2b48299781548c9bc452eac6df39902547c884ed.rb +0 -122
  902. data/lib/one_gadget/builds/libc-2.33-37169e68b33cad12e272bb4896d71fd0d4fd98bb.rb +0 -80
  903. data/lib/one_gadget/builds/libc-2.33-54a6e404e7dc1de7c1434a00b7b1ad325b81f22a.rb +0 -80
  904. data/lib/one_gadget/builds/libc-2.33-7983d313db4a441a3762c8861ca405aa0331c0c8.rb +0 -80
  905. data/lib/one_gadget/builds/libc-2.33-8fdc2b2c65f3d782e52c01b546399eee8aa466dc.rb +0 -29
  906. data/lib/one_gadget/builds/libc-2.33-9143da129b44b931a1c180e2b103e993dd2474fd.rb +0 -29
  907. data/lib/one_gadget/builds/libc-2.33-97c8d90bd86bc698d156630e8803de433a640090.rb +0 -122
  908. data/lib/one_gadget/builds/libc-2.33-9bf4c513db255ab7248cef9f0f96b4403df29852.rb +0 -80
  909. data/lib/one_gadget/builds/libc-2.33-9e592d3efa165bc2bab8b40426370bd50cb0b027.rb +0 -80
  910. data/lib/one_gadget/builds/libc-2.33-abf3b2a9815c0cd6e4280cd99474d34102804eb2.rb +0 -80
  911. data/lib/one_gadget/builds/libc-2.33-b046eecd056a0c30995703f6cfca7a8e3a9ef5fa.rb +0 -80
  912. data/lib/one_gadget/builds/libc-2.33-b2262bfa6f1bffd1e9ddc845276dfaebb7c8f0b9.rb +0 -29
  913. data/lib/one_gadget/builds/libc-2.33-f462ab2b79c7f29fb866da6e087e45261570a09c.rb +0 -29
  914. data/lib/one_gadget/builds/libc-2.33-f4af69206091c7f14a941f2dd77a79a7682a1184.rb +0 -29
  915. data/lib/one_gadget/builds/libc-2.34-140609514178a4bb96a3cd44ffdfede398a77610.rb +0 -29
  916. data/lib/one_gadget/builds/libc-2.34-25594d4b6cbecda86ec968fa940c6c09937db70f.rb +0 -83
  917. data/lib/one_gadget/builds/libc-2.34-387920279e1c7892042ff27d76315d55e4651db9.rb +0 -29
  918. data/lib/one_gadget/builds/libc-2.34-7e46fbc4d85f5df8b6f18630787ad281786a3512.rb +0 -29
  919. data/lib/one_gadget/builds/libc-2.34-8d631c824a37b236d1dc9686b224a573fd6048b4.rb +0 -29
  920. data/lib/one_gadget/builds/libc-2.34-b8037b6260865346802321dd2256b8ad1d857e63.rb +0 -119
  921. data/lib/one_gadget/builds/libc-2.34-ba4777827fe1fb729ca35acd99c8013936172a0d.rb +0 -83
  922. data/lib/one_gadget/builds/libc-2.34-f0fc29165cbe6088c0e1adf03b0048fbecbc003a.rb +0 -119
  923. data/lib/one_gadget/builds/libc-2.35-89c3cb85f9e55046776471fed05ec441581d1969.rb +0 -104
  924. data/lib/one_gadget/builds/libc-2.35-ab265082cac9486923c709d48ee5dde080e243ff.rb +0 -68
  925. data/lib/one_gadget/builds/libc-2.35-c376d41cff4473142a97ac1ff1eab433859dc3d4.rb +0 -26
  926. data/lib/one_gadget/builds/libc-2.35-dfca8b65dd2d2ca67f70dc7a556a6cfa8ba96ed8.rb +0 -26
  927. data/lib/one_gadget/fetcher.rb +0 -58
@@ -1,16 +1,72 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'one_gadget/emulators/x86'
3
4
  require 'one_gadget/fetchers/base'
4
5
 
5
6
  module OneGadget
6
- module Fetcher
7
+ module Fetchers
7
8
  # Define common methods for gadget fetchers.
8
9
  class X86 < Base
10
+ # Conditional-jump mnemonics (shared with the emulator).
11
+ JCC = OneGadget::Emulators::X86::JCC
12
+
9
13
  private
10
14
 
11
- # If str contains a branch instruction.
12
- def branch?(str)
13
- %w[jmp je jne jl jb ja jg].any? { |f| str.include?(f) }
15
+ # Emulate only the candidates that could still become a gadget. x86 writes
16
+ # the address of a string as a displacement, so a window that reaches
17
+ # +"/bin/sh"+ names it outright -- except through +posix_spawn+, which takes
18
+ # the path as an argument a window need not have materialised itself.
19
+ #
20
+ # This lives here rather than in {Base} because an architecture building such
21
+ # an address in pieces (+adrp+ then +add+) can state no such rule: filtering
22
+ # aarch64 on the same test drops all but one of its gadgets.
23
+ def candidates
24
+ reference = bin_sh_reference.to_s(16)
25
+ super do |candidate|
26
+ candidate.match?(TERMINAL_SPAWN) || candidate.include?(reference)
27
+ end
28
+ end
29
+
30
+ # The number a window holds when it points at the +"/bin/sh"+ string.
31
+ # @return [Integer]
32
+ def bin_sh_reference = bin_sh_offset
33
+
34
+ # A direct near call, +E8+ then a 32-bit displacement from the instruction
35
+ # after it.
36
+ CALL_REL32 = "\xe8".b.freeze
37
+ private_constant :CALL_REL32
38
+ CALL_REL32_SIZE = 5
39
+ private_constant :CALL_REL32_SIZE
40
+
41
+ # x86 instructions are variable length, so a byte in the middle of one can
42
+ # read as a call; that costs a window nothing is found in, where missing a
43
+ # real call would cost the gadgets around it.
44
+ def scan_calls(base, data, targets)
45
+ sites = []
46
+ pos = 0
47
+ while (pos = data.index(CALL_REL32, pos))
48
+ displacement = data.byteslice(pos + 1, 4)
49
+ break if displacement.nil? || displacement.bytesize < 4
50
+
51
+ addr = base + pos
52
+ sites << addr if targets.key?(addr + CALL_REL32_SIZE + displacement.unpack1('l<'))
53
+ pos += 1
54
+ end
55
+ sites
56
+ end
57
+
58
+ def branch_lead_chars
59
+ 'j'
60
+ end
61
+
62
+ # +jcc+/+jcxz+ are conditional; a direct +jmp+ is unconditional while an
63
+ # indirect one (+jmp rax+, +jmp QWORD PTR [..]+) and +ret+/+leave+ terminate.
64
+ def branch_kind(line)
65
+ m = mnemonic(line)
66
+ return :conditional if JCC.key?(m) || %w[jcxz jecxz jrcxz].include?(m)
67
+ return branch_target(line).nil? ? :terminator : :unconditional if m == 'jmp'
68
+
69
+ :terminator if m.start_with?('ret') || m == 'leave'
14
70
  end
15
71
 
16
72
  def objdump_options
@@ -0,0 +1,115 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'one_gadget/error'
4
+ require 'one_gadget/fetchers/aarch64'
5
+ require 'one_gadget/fetchers/amd64'
6
+ require 'one_gadget/fetchers/arm'
7
+ require 'one_gadget/fetchers/i386'
8
+ require 'one_gadget/fetchers/mips'
9
+ require 'one_gadget/fetchers/riscv64'
10
+ require 'one_gadget/gadget'
11
+ require 'one_gadget/helper'
12
+
13
+ module OneGadget
14
+ # To find gadgets.
15
+ module Fetchers
16
+ # At and above this level, keep every distinct gadget instead of trimming
17
+ # down to the easiest-to-reach set (see {ClassMethods#from_file}).
18
+ RAW_LEVEL = 2
19
+
20
+ # The fetcher each architecture is searched with, and so the set of
21
+ # architectures this tool supports (see {ClassMethods#supported_architecture?}).
22
+ FETCHERS = {
23
+ aarch64: OneGadget::Fetchers::AArch64,
24
+ amd64: OneGadget::Fetchers::Amd64,
25
+ arm: OneGadget::Fetchers::Arm,
26
+ i386: OneGadget::Fetchers::I386,
27
+ mips: OneGadget::Fetchers::Mips,
28
+ riscv64: OneGadget::Fetchers::Riscv64
29
+ }.freeze
30
+
31
+ # Define class methods here.
32
+ module ClassMethods
33
+ # Fetch one-gadget offsets of this build id.
34
+ # @param [String] build_id The targets' BuildID.
35
+ # @param [Boolean] remote
36
+ # When local not found, try search in latest version?
37
+ # @param [Integer] level
38
+ # Output level, interpreted as in {#from_file}.
39
+ # @return [Array<OneGadget::Gadget::Gadget>?]
40
+ # +nil+ is returned if cannot find target id in database.
41
+ def from_build_id(build_id, remote: true, level: 0)
42
+ OneGadget::Helper.verify_build_id!(build_id)
43
+ gadgets = OneGadget::Gadget.builds(build_id, remote:)
44
+ gadgets && for_level(gadgets, level)
45
+ end
46
+
47
+ # Fetch one-gadget offsets from file.
48
+ # @param [String] file The absolute path of libc file.
49
+ # @param [Integer] level
50
+ # Output level. Below {RAW_LEVEL} the result is trimmed to the
51
+ # easiest-to-reach gadgets ({#trim_gadgets}); at {RAW_LEVEL} and above
52
+ # every distinct gadget is kept ({#all_gadgets}), including ones a lower
53
+ # level drops as duplicate or harder-to-satisfy.
54
+ # @return [Array<OneGadget::Gadget::Gadget>]
55
+ # Array of all found gadgets is returned.
56
+ def from_file(file, level: 0)
57
+ arch = OneGadget::Helper.architecture(file)
58
+ klass = FETCHERS[arch]
59
+ raise Error::UnsupportedArchitectureError, arch if klass.nil?
60
+
61
+ for_level(klass.new(file).find, level)
62
+ end
63
+
64
+ # Whether gadgets can be searched for in +arch+. The ELF reader recognises
65
+ # plenty this tool cannot emulate.
66
+ # @param [Symbol] arch As {OneGadget::Helper.architecture} names it.
67
+ # @return [Boolean]
68
+ def supported_architecture?(arch)
69
+ FETCHERS.key?(arch)
70
+ end
71
+
72
+ private
73
+
74
+ # Narrow a complete gadget set down to what an output level asks for.
75
+ # @param [Array<OneGadget::Gadget::Gadget>] gadgets
76
+ # @param [Integer] level
77
+ # @return [Array<OneGadget::Gadget::Gadget>]
78
+ def for_level(gadgets, level)
79
+ level >= RAW_LEVEL ? all_gadgets(gadgets) : trim_gadgets(gadgets)
80
+ end
81
+
82
+ # Keep every distinct gadget, dropping only exact +(offset, constraints)+
83
+ # repeats (the same suffix reached by more than one candidate path). Unlike
84
+ # {#trim_gadgets} this keeps duplicate-constraint and dominated gadgets, and
85
+ # lists an offset once per constraint set it can be reached under.
86
+ def all_gadgets(gadgets)
87
+ gadgets.uniq { |g| [g.offset, g.constraints] }
88
+ .sort_by { |g| [g.offset, g.constraints.size] }
89
+ end
90
+
91
+ # Unique, remove gadgets whose constraints already meet an easier gadget's
92
+ # (see {OneGadget::Gadget::Gadget#met_by?}): that one is the better answer,
93
+ # and this one asks the reader for strictly more.
94
+ def trim_gadgets(gadgets)
95
+ # Order totally before anything is dropped: each step below keeps
96
+ # whichever of several equally good gadgets it meets first, so without a
97
+ # tie-break the answer depends on the order gadgets were discovered in
98
+ # rather than on the libc alone. Gadgets sharing a constraint set are
99
+ # interchangeable -- whoever satisfies one satisfies them all -- so the
100
+ # last of them represents the set: it is the one that reaches the call
101
+ # with the least code in between.
102
+ gadgets = gadgets.sort_by { |g| [g.constraints.size, -g.offset, g.constraints] }
103
+ .uniq(&:constraints)
104
+ res = []
105
+ gadgets.each_with_index do |g, i|
106
+ res << g unless i.times.any? { |j| gadgets[j].met_by?(g) }
107
+ end
108
+ # The same offset can reach the call via more than one branch direction;
109
+ # list it once, keeping the easiest (fewest-constraint) variant.
110
+ res.group_by(&:offset).map { |_, gs| gs.min_by { |g| g.constraints.size } }.sort_by(&:offset)
111
+ end
112
+ end
113
+ extend ClassMethods
114
+ end
115
+ end
@@ -10,6 +10,23 @@ module OneGadget
10
10
  # Module for define gadgets.
11
11
  module Gadget
12
12
  # Information of a gadget.
13
+ #
14
+ # Its {Gadget#constraints} are written in this language:
15
+ # REG: OneGadget::ABI.all
16
+ # IMM: [+-]0x[\da-f]+
17
+ # BITS: 8, 16, 32, 64
18
+ # CAST: (<s|u><BITS>)
19
+ # Identity: <REG><IMM>?
20
+ # Identity: [<Identity>]
21
+ # Expr: <REG> is the GOT address of libc
22
+ # Expr: writable: <Identity>
23
+ # Expr: readable: <Identity>
24
+ # Expr: <CAST>?<Identity> == NULL
25
+ # Expr: <REG> & 0xf == <IMM>
26
+ # Expr: (s32)[<Identity>] <= 0
27
+ # Expr: .+ is a valid argv
28
+ # Expr: .+ is a valid envp
29
+ # Expr: <Expr> || <Expr>
13
30
  class Gadget
14
31
  # @return [Integer] Base address of libc. Default: 0.
15
32
  attr_accessor :base
@@ -19,6 +36,9 @@ module OneGadget
19
36
  attr_reader :constraints
20
37
  # @return [String] The final result of this gadget.
21
38
  attr_reader :effect
39
+ # @return [Array<String>] Where each descriptor this gadget closes before the
40
+ # exec is read from, in the order it closes them (see {#caveats}).
41
+ attr_reader :closed_fds
22
42
 
23
43
  # Initialize method of {Gadget} instance.
24
44
  # @param [Integer] offset The relative address offset of this gadget.
@@ -29,17 +49,39 @@ module OneGadget
29
49
  def initialize(offset, **options)
30
50
  @base = 0
31
51
  @offset = offset
32
- @constraints = options[:constraints] || []
52
+ @constraints = prune_settled(options[:constraints] || [])
33
53
  @effect = options[:effect] || ''
54
+ @closed_fds = options[:closed_fds] || []
34
55
  end
35
56
 
36
- # Show gadget in a pretty way.
57
+ # What the gadget costs the caller beyond its constraints: a descriptor it
58
+ # closes on the way to the exec. Each line names the close itself, so it
59
+ # reads as the code does and can be matched exactly, and says what the value
60
+ # must avoid for the spawned shell to keep its I/O.
61
+ # @return [Array<String>]
62
+ # @example
63
+ # ['close([rsp+0x44]): prevent it from being 0 (stdin) or 1 (stdout) ...']
64
+ def caveats
65
+ closed_fds.map do |fd|
66
+ "close(#{fd}): prevent it from being 0 (stdin) or 1 (stdout) to sound " \
67
+ 'an interactive shell.'
68
+ end
69
+ end
70
+
71
+ # Returns a human-readable, colorized representation of this gadget,
72
+ # showing its address followed by the effect and constraints.
73
+ # @return [String] The multi-line pretty-printed gadget.
37
74
  def inspect
38
75
  str = "#{OneGadget::Helper.hex(value)} #{effect}\n"
39
76
  unless constraints.empty?
40
77
  str += "#{OneGadget::Helper.colorize('constraints')}:\n "
41
78
  str += merge_constraints.join("\n ")
42
79
  end
80
+ unless caveats.empty?
81
+ str += "\n" unless constraints.empty?
82
+ str += "#{OneGadget::Helper.colorize('caveats')}:\n "
83
+ str += caveats.join("\n ")
84
+ end
43
85
  str.gsub!(/0x[\da-f]+/) { |s| OneGadget::Helper.colorize(s, sev: :integer) }
44
86
  OneGadget::ABI.all.each do |reg|
45
87
  str.gsub!(/([^\w])(#{reg})([^\w])/, "\\1#{OneGadget::Helper.colorize('\2', sev: :reg)}\\3")
@@ -47,17 +89,21 @@ module OneGadget
47
89
  "#{str}\n"
48
90
  end
49
91
 
50
- # @return [Hash]
92
+ # Converts this gadget into a plain hash, suitable for serialization.
93
+ # @return [Hash{Symbol => Integer, String, Array<String>, Array<Integer>}]
94
+ # A hash with keys +:value+ (the absolute address), +:effect+ (the
95
+ # resulting function call), +:constraints+ (the required constraints) and,
96
+ # when the gadget closes a descriptor, +:closed_fds+ with the {#caveats}
97
+ # they carry.
51
98
  def to_obj
52
- {
53
- value:,
54
- effect:,
55
- constraints:
56
- }
99
+ obj = { value:, effect:, constraints: }
100
+ return obj if caveats.empty?
101
+
102
+ obj.merge(closed_fds:, caveats:)
57
103
  end
58
104
 
59
- # To have this class can be serialized in JSON.
60
- # @return [String]
105
+ # Serializes this gadget into a JSON string.
106
+ # @return [String] The gadget in JSON format. See {#to_obj} for the keys.
61
107
  def to_json(*)
62
108
  to_obj.to_json
63
109
  end
@@ -74,62 +120,308 @@ module OneGadget
74
120
  @score ||= constraints.reduce(1.0) { |s, c| s * calculate_score(c) }
75
121
  end
76
122
 
123
+ # Whether +other+ asks for everything this gadget asks for, so listing this
124
+ # one beside it tells the reader nothing new. Each constraint here has to be
125
+ # met by +other+'s list: named there, or -- for one that offers several
126
+ # options -- an option of it required there outright.
127
+ # @param [Gadget] other
128
+ # @return [Boolean]
129
+ # @example An option required outright meets the constraint offering it.
130
+ # met_by?(other) # where this asks "r8 == NULL || (u16)[r8] == 0x0"
131
+ # # and +other+ asks "(u16)[r8] == 0x0"
132
+ def met_by?(other)
133
+ constraints.all? do |con|
134
+ other.constraints.include?(con) ||
135
+ con.split(DISJUNCTION).any? { |option| other.constraints.include?(option) }
136
+ end
137
+ end
138
+
139
+ # Every architecture's register names, for {#base_register} to recognise one
140
+ # by. Keyed for lookup: it is asked once per token of every constraint scored.
141
+ REGISTER_NAMES = OneGadget::ABI.all.to_h { |reg| [reg, true] }.freeze
142
+ private_constant :REGISTER_NAMES
143
+
144
+ # What separates the options of a constraint that can be met in more than
145
+ # one way.
146
+ DISJUNCTION = ' || '
147
+ private_constant :DISJUNCTION
148
+
149
+ # How far from an address a dereference can sit and still say the address
150
+ # is not NULL: within the smallest page, which a NULL base cannot reach out
151
+ # of.
152
+ PAGE_SIZE = 0x1000
153
+ private_constant :PAGE_SIZE
154
+
77
155
  private
78
156
 
79
- # REG: OneGadget::ABI.all
80
- # IMM: [+-]0x[\da-f]+
81
- # BITS: 8, 16, 32, 64
82
- # CAST: (<s|u><BITS>)
83
- # Identity: <REG><IMM>?
84
- # Identity: [<Identity>]
85
- # Expr: <REG> is the GOT address of libc
86
- # Expr: writable: <Identity>
87
- # Expr: <CAST>?<Identity> == NULL
88
- # Expr: <REG> & 0xf == <IMM>
89
- # Expr: (s32)[<Identity>] <= 0
90
- # Expr: .+ is a valid argv
91
- # Expr: .+ is a valid envp
92
- # Expr: <Expr> || <Expr>
157
+ # Drops what the rest of the list already settles, so a gadget asks for each
158
+ # thing once and never offers an option it rules out itself. Only a
159
+ # constraint holding outright settles anything, since one inside a +||+ is an
160
+ # option among several; the rules run until the list stops changing.
161
+ # @param [Array<String>] cons
162
+ # @return [Array<String>]
163
+ # @example An option the same list rules out.
164
+ # prune_settled(['writable: r8', 'r8 == NULL || (u16)[r8] == 0x0'])
165
+ # #=> ['writable: r8', '(u16)[r8] == 0x0']
166
+ # @example A readability the dereference beside it already states.
167
+ # prune_settled(['readable: x1', '[x1] == 0x0']) #=> ['[x1] == 0x0']
168
+ # @example A non-NULL the dereference beside it already states.
169
+ # prune_settled(['[$base+0x10] != 0x0', '[[$base+0x10]+0xa4] == 0x0'])
170
+ # #=> ['[[$base+0x10]+0xa4] == 0x0']
171
+ # @example A bound the pinned value already satisfies.
172
+ # prune_settled(['r0 == NULL', '(u32)r0 <= 0xfffff000']) #=> ['r0 == NULL']
173
+ def prune_settled(cons)
174
+ loop do
175
+ settled = drop_stated_readable(
176
+ drop_settled_comparison(drop_settled_non_null(drop_ruled_out_null(cons)))
177
+ )
178
+ return cons if settled == cons
179
+
180
+ cons = settled
181
+ end
182
+ end
183
+
184
+ # The constraints that hold outright, as opposed to naming several options.
185
+ # @param [Array<String>] cons
186
+ # @return [Array<String>]
187
+ def unconditional(cons)
188
+ cons.reject { |c| c.include?(DISJUNCTION) }
189
+ end
190
+
191
+ # Whether the list requires +identity+ to be mapped memory: a constraint
192
+ # holding outright either names it as one, or accesses it -- at the address
193
+ # itself, or near enough that a NULL one could not be what is accessed.
194
+ # @param [Array<String>] cons
195
+ # @param [String] identity
196
+ # @return [Boolean]
197
+ def mapped?(cons, identity)
198
+ deref = "[#{identity}]"
199
+ near = /\[#{Regexp.escape(identity)}([+-]0x[0-9a-f]+)\]/
200
+ unconditional(cons).any? do |con|
201
+ con == "readable: #{identity}" || con == "writable: #{identity}" || con.include?(deref) ||
202
+ (off = con[near, 1]) && off.to_i(16).abs < PAGE_SIZE
203
+ end
204
+ end
205
+
206
+ # Drops every option that asks an address the list requires to be mapped
207
+ # memory to be NULL. A constraint whose every option goes is left alone: it
208
+ # says the gadget is impossible, which is not this pass's call to make.
209
+ # @param [Array<String>] cons
210
+ # @return [Array<String>]
211
+ def drop_ruled_out_null(cons)
212
+ cons.map do |con|
213
+ options = con.split(DISJUNCTION)
214
+ next con if options.size == 1
215
+
216
+ kept = options.reject do |opt|
217
+ identity = opt[/\A(.+) == NULL\z/, 1]
218
+ !identity.nil? && mapped?(cons, identity)
219
+ end
220
+ kept.empty? ? con : kept.join(DISJUNCTION)
221
+ end
222
+ end
223
+
224
+ # Drops every requirement that an address the list requires to be mapped
225
+ # memory be non-NULL, which mapped memory never is.
226
+ # @param [Array<String>] cons
227
+ # @return [Array<String>]
228
+ def drop_settled_non_null(cons)
229
+ cons.reject do |con|
230
+ identity = con[/\A(.+) != (?:NULL|0x0)\z/, 1]
231
+ !identity.nil? && !identity.match?(/\A\([su]\d+\)/) && mapped?(cons, identity)
232
+ end
233
+ end
234
+
235
+ # A comparison against a literal: the cast that says how much of the value is
236
+ # compared and whether those bits read as signed, what is compared, and what
237
+ # it is compared with.
238
+ # @example +(u32)r0 <= 0xfffff000+, +[rbp-0x50] == 0x1+, +x2 == NULL+
239
+ COMPARISON = /\A(?:\(([su])(\d+)\))?(.+?) (==|!=|<=|>=|<|>) (NULL|-?(?:0x[0-9a-f]+|\d+))\z/
240
+ private_constant :COMPARISON
241
+
242
+ # Drops every comparison a value pinned elsewhere in the list already
243
+ # answers. Only an uncast equality pins a whole value -- +(u16)X == 0x0+
244
+ # leaves the rest of it unsaid -- and a comparison the pinned value does not
245
+ # satisfy is left alone: it says the gadget is impossible, which is not this
246
+ # pass's call to make.
247
+ # @param [Array<String>] cons
248
+ # @return [Array<String>]
249
+ def drop_settled_comparison(cons)
250
+ pinned = pinned_values(unconditional(cons))
251
+ return cons if pinned.empty?
252
+
253
+ cons.reject do |con|
254
+ parts = COMPARISON.match(con)
255
+ next false if parts.nil? || (parts[1].nil? && parts[4] == '==')
256
+
257
+ value = pinned[parts[3]]
258
+ !value.nil? && comparison_holds?(value, parts)
259
+ end
260
+ end
261
+
262
+ # What the list pins outright, by what is pinned.
263
+ # @param [Array<String>] held
264
+ # @return [Hash{String => Integer}]
265
+ def pinned_values(held)
266
+ held.each_with_object({}) do |con, pinned|
267
+ parts = COMPARISON.match(con)
268
+ next unless parts && parts[1].nil? && parts[4] == '=='
269
+
270
+ pinned[parts[3]] = literal_value(parts[5])
271
+ end
272
+ end
273
+
274
+ # Whether a comparison already holds for a value pinned to +value+.
275
+ # @param [Integer] value
276
+ # @param [MatchData] parts A {COMPARISON} match.
277
+ # @return [Boolean]
278
+ def comparison_holds?(value, parts)
279
+ value = as_cast(value, parts[1], parts[2]) if parts[1]
280
+ value.public_send(parts[4], literal_value(parts[5]))
281
+ end
282
+
283
+ # +value+ as a cast reads it: the low +bits+ of it, negative when those bits
284
+ # are read as signed and the top one is set.
285
+ def as_cast(value, sign, bits)
286
+ bits = Integer(bits)
287
+ low = value & ((1 << bits) - 1)
288
+ sign == 's' && low >= (1 << (bits - 1)) ? low - (1 << bits) : low
289
+ end
290
+
291
+ # @param [String] literal +NULL+ or a number, as a constraint writes it.
292
+ # @return [Integer]
293
+ def literal_value(literal)
294
+ literal == 'NULL' ? 0 : Integer(literal)
295
+ end
296
+
297
+ # Drops every +readable:+ whose address another constraint dereferences
298
+ # outright, which asks for that readability already. Unlike {#mapped?} this
299
+ # takes only the address itself: a dereference nearby says the page it lands
300
+ # on is mapped, not the one +identity+ sits on.
301
+ # @param [Array<String>] cons
302
+ # @return [Array<String>]
303
+ def drop_stated_readable(cons)
304
+ cons.reject do |con|
305
+ identity = con[/\Areadable: (.+)\z/, 1]
306
+ next false if identity.nil?
307
+
308
+ unconditional(cons).any? { |other| other.include?("[#{identity}]") }
309
+ end
310
+ end
311
+
93
312
  def calculate_score(expr)
94
313
  return expr.split(' || ').map(&method(:calculate_score)).max if expr.include?(' || ')
95
314
 
315
+ return 0.95 if stack_alignment?(expr)
316
+ # Zero is the easy value to arrange and every other one is hard, so a mask
317
+ # tells them apart rather than making them easier: some of a value's bits
318
+ # zeroed is a little easier than all of them, while a mask asking for any
319
+ # other value is as hard as asking for it anywhere.
320
+ return 0.92 if MASKED_ZERO.match?(expr)
321
+ # Any other mask asks for a particular value, which the mask does nothing
322
+ # to make easier, so it is the relation it looks like.
323
+ return calculate_relation_score(expr) if MASKED.match?(expr)
324
+
96
325
  case expr
97
- when / & 0xf/ then 0.95
98
326
  when /GOT address/ then 0.9
99
327
  when /^writable/ then calculate_writable_score(expr.sub('writable: ', ''))
100
- when / == NULL$/ then calculate_null_score(expr.sub(' == NULL', ''))
101
- when / <= 0$/ then calculate_null_score(expr.sub(' <= 0', ''))
102
- when / is a valid (argv|envp)$/ then 0.2 # This usually means the register has to be a readable pointer.
328
+ # However a "must be zero" is spelled -- NULL where the value is a pointer,
329
+ # 0x0 where it is not, with or without a size cast, and <= for a signed
330
+ # field -- it asks for the same thing, and asking for zero is easier than a
331
+ # relation that names some other value.
332
+ when / == NULL$/, / == 0x0$/, / <= 0x0$/
333
+ calculate_null_score(expr.sub(/ (?:==|<=) (?:NULL|0x0)\z/, ''))
334
+ # A register that just has to be a readable pointer -- a "readable: <reg>"
335
+ # (a dereferenced call arg) or a valid argv/envp element -- is easy.
336
+ when /^readable/, / is a valid (argv|envp)$/ then 0.2
337
+ when / (==|!=|<=|>=|<|>) / then calculate_relation_score(expr) # a branch condition
103
338
  end
104
339
  end
105
340
 
341
+ # Some of a value's bits required to be zero: +(eax & 0xf000) == 0x0+, or the
342
+ # unparenthesised +eax & 0xf == 0x0+ an alignment renders as. A mask against
343
+ # any other value is not one of these -- that is as hard as asking for that
344
+ # value anywhere. Nor is a mask by a register (+(x0 & x1) == 0x0+), which
345
+ # pins no bit anyone knows, nor one inside what is compared
346
+ # (+[(rsi & 0xf0)] == NULL+), where the whole word still has to be zero.
347
+ MASKED_ZERO = /\A\(?[^()]+? & ~?(?:0x[0-9a-f]+|\d+)\)? == (?:NULL|0x0+)\z/
348
+ private_constant :MASKED_ZERO
349
+
350
+ # A comparison whose left side is masked, whatever it is compared with.
351
+ MASKED = /\A\(?[^()]+? & [^()]+?\)? (?:==|!=|<=|>=|<|>) /
352
+ private_constant :MASKED
353
+
354
+ # Whether +expr+ is the alignment an aligned store imposes (see
355
+ # {OneGadget::Emulators::X86#inst_movaps}): the stack pointer's low bits
356
+ # must hold a fixed value, which is free -- the caller picks where the
357
+ # stack sits. Matched exactly, so a masked value the caller has to arrange
358
+ # stays what it is.
359
+ # @example matches +rsp & 0xf == 0x0+; not +(eax & 0xf000) == 0x2000+
360
+ def stack_alignment?(expr)
361
+ reg = expr[/\A(\S+) & 0xf == 0x[0-9a-f]+\z/, 1]
362
+ !reg.nil? && OneGadget::ABI.stack_register?(reg)
363
+ end
364
+
365
+ # Score a branch-derived relational constraint such as +x2 == 0x1+ or
366
+ # +(u64)x0 >= 0x400+: an equality on one specific value is harder than an
367
+ # inequality/range, and a dereferenced left-hand side is harder still.
368
+ def calculate_relation_score(expr)
369
+ op = expr[/ (==|!=|<=|>=|<|>) /, 1]
370
+ lhs = expr.split(/ #{Regexp.escape(op)} /, 2).first.sub(/\A\([su]\d+\)/, '')
371
+ base = op == '==' ? 0.4 : 0.6
372
+ base * 0.9**deref_depth(lhs)
373
+ end
374
+
375
+ # How many dereferences +identity+ is behind, read off the rendering that
376
+ # produced it -- a lambda emits one +[+ per dereference.
377
+ # @example deref_depth('[[ebp+0x10]]') #=> 2
378
+ def deref_depth(identity)
379
+ identity[/\A\[*/].size
380
+ end
381
+
382
+ # The register +identity+ is derived from: the first one it names, since a
383
+ # rendering puts its base ahead of whatever is applied to it. +nil+ when it
384
+ # names none, e.g. a libc-relative +$base+0x10+.
385
+ # @example base_register('[(rsi & 0xfffffffffffffff0)+0x10]') #=> 'rsi'
386
+ def base_register(identity)
387
+ identity.scan(/\w+/).find { |token| REGISTER_NAMES.key?(token) }
388
+ end
389
+
390
+ # Whether +identity+ is a register itself rather than a value derived from
391
+ # one. Asked of an undereferenced identity, where being the register is
392
+ # what makes a requirement on it cheap to meet.
393
+ # @example bare_register?('rax') #=> true
394
+ # @example bare_register?('rax+0x10'), bare_register?('(rax & 0xf0)') #=> false
395
+ def bare_register?(identity)
396
+ identity == base_register(identity)
397
+ end
398
+
106
399
  def calculate_writable_score(identity)
107
- lmda = OneGadget::Emulators::Lambda.parse(identity)
108
- return 0.81 if lmda.deref_count != 0
400
+ return 0.81 unless deref_depth(identity).zero?
109
401
 
110
- OneGadget::ABI.stack_register?(lmda.obj) ? 0.95 : 0.81
402
+ OneGadget::ABI.stack_register?(base_register(identity)) ? 0.95 : 0.81
111
403
  end
112
404
 
113
405
  def calculate_null_score(identity)
114
- # remove <CAST>
115
- identity.sub!(/^\([s|u]\d+\)/, '')
116
- # Thank God we are already able to parse this
117
- lmda = OneGadget::Emulators::Lambda.parse(identity)
406
+ identity = identity.sub(/\A\([su]\d+\)/, '') # remove <CAST>
407
+ depth = deref_depth(identity)
118
408
  # rax == 0 is easy; rax + 0x10 == 0 is damn hard.
119
- return lmda.immi.zero? ? 0.9 : 0.1 if lmda.deref_count.zero?
409
+ return bare_register?(identity) ? 0.9 : 0.1 if depth.zero?
120
410
 
121
411
  # [sp+xx] == NULL is easy.
122
- base = OneGadget::ABI.stack_register?(lmda.obj) ? 0 : 1
123
- 0.9**(lmda.deref_count + base)
412
+ base = OneGadget::ABI.stack_register?(base_register(identity)) ? 0 : 1
413
+ 0.9**(depth + base)
124
414
  end
125
415
 
416
+ # The constraints as a reader wants them: every +writable:+ folded into one
417
+ # sentence naming all of the addresses, the rest left alone.
126
418
  def merge_constraints
127
419
  key = 'writable: '
128
420
  w_cons, normal = constraints.partition { |c| c.start_with?(key) }
129
421
  return normal if w_cons.empty?
130
422
 
131
423
  w_cons.map! { |c| c[key.size..] }
132
- ["address#{w_cons.size > 1 ? 'es' : ''} #{w_cons.join(', ')} #{w_cons.size > 1 ? 'are' : 'is'} writable"] +
424
+ ["address#{'es' if w_cons.size > 1} #{w_cons.join(', ')} #{w_cons.size > 1 ? 'are' : 'is'} writable"] +
133
425
  normal
134
426
  end
135
427
  end
@@ -192,12 +484,13 @@ module OneGadget
192
484
  end
193
485
 
194
486
  # Add a gadget, for scripts in builds/ to use.
487
+ #
488
+ # Keyword arguments are forwarded to {Gadget#initialize}.
195
489
  # @param [String] build_id The target's build id.
196
490
  # @param [Integer] offset The relative address offset of this gadget.
197
- # @param [Hash] options See {Gadget::Gadget#initialize} for more information.
198
491
  # @return [void]
199
- def add(build_id, offset, **options)
200
- BUILDS[build_id] << OneGadget::Gadget::Gadget.new(offset, **options)
492
+ def add(build_id, offset, **)
493
+ BUILDS[build_id] << OneGadget::Gadget::Gadget.new(offset, **)
201
494
  end
202
495
 
203
496
  private