react-native-quick-crypto 1.1.0 → 1.1.1

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 (687) hide show
  1. package/android/build.gradle +5 -1
  2. package/cpp/argon2/HybridArgon2.cpp +10 -3
  3. package/cpp/blake3/HybridBlake3.cpp +5 -3
  4. package/cpp/cipher/CCMCipher.cpp +29 -16
  5. package/cpp/cipher/CCMCipher.hpp +2 -4
  6. package/cpp/cipher/ChaCha20Cipher.cpp +14 -18
  7. package/cpp/cipher/ChaCha20Cipher.hpp +2 -4
  8. package/cpp/cipher/ChaCha20Poly1305Cipher.cpp +34 -23
  9. package/cpp/cipher/ChaCha20Poly1305Cipher.hpp +2 -4
  10. package/cpp/cipher/GCMCipher.cpp +14 -15
  11. package/cpp/cipher/HybridCipher.cpp +39 -36
  12. package/cpp/cipher/HybridCipher.hpp +17 -1
  13. package/cpp/cipher/HybridRsaCipher.cpp +74 -29
  14. package/cpp/cipher/OCBCipher.cpp +4 -3
  15. package/cpp/cipher/XChaCha20Poly1305Cipher.cpp +14 -13
  16. package/cpp/cipher/XSalsa20Cipher.cpp +72 -6
  17. package/cpp/cipher/XSalsa20Cipher.hpp +25 -3
  18. package/cpp/cipher/XSalsa20Poly1305Cipher.cpp +21 -25
  19. package/cpp/dh/HybridDiffieHellman.cpp +29 -0
  20. package/cpp/ec/HybridEcKeyPair.cpp +35 -33
  21. package/cpp/ec/HybridEcKeyPair.hpp +3 -7
  22. package/cpp/ecdh/HybridECDH.cpp +23 -0
  23. package/cpp/ed25519/HybridEdKeyPair.cpp +73 -117
  24. package/cpp/ed25519/HybridEdKeyPair.hpp +5 -9
  25. package/cpp/hash/HybridHash.cpp +5 -7
  26. package/cpp/hkdf/HybridHkdf.cpp +6 -4
  27. package/cpp/hmac/HybridHmac.cpp +4 -6
  28. package/cpp/kmac/HybridKmac.cpp +4 -4
  29. package/cpp/mldsa/HybridMlDsaKeyPair.cpp +37 -49
  30. package/cpp/mlkem/HybridMlKemKeyPair.cpp +39 -43
  31. package/cpp/pbkdf2/HybridPbkdf2.cpp +7 -8
  32. package/cpp/rsa/HybridRsaKeyPair.cpp +5 -8
  33. package/cpp/rsa/HybridRsaKeyPair.hpp +4 -7
  34. package/cpp/scrypt/HybridScrypt.cpp +6 -4
  35. package/cpp/sign/HybridSignHandle.cpp +25 -68
  36. package/cpp/sign/HybridVerifyHandle.cpp +23 -60
  37. package/cpp/utils/HybridUtils.cpp +183 -43
  38. package/cpp/utils/HybridUtils.hpp +9 -2
  39. package/cpp/utils/QuickCryptoUtils.hpp +72 -0
  40. package/lib/commonjs/argon2.js +51 -2
  41. package/lib/commonjs/argon2.js.map +1 -1
  42. package/lib/commonjs/cipher.js +109 -11
  43. package/lib/commonjs/cipher.js.map +1 -1
  44. package/lib/commonjs/dsa.js +8 -2
  45. package/lib/commonjs/dsa.js.map +1 -1
  46. package/lib/commonjs/hash.js +15 -5
  47. package/lib/commonjs/hash.js.map +1 -1
  48. package/lib/commonjs/hkdf.js +33 -6
  49. package/lib/commonjs/hkdf.js.map +1 -1
  50. package/lib/commonjs/hmac.js +15 -5
  51. package/lib/commonjs/hmac.js.map +1 -1
  52. package/lib/commonjs/keys/publicCipher.js +10 -4
  53. package/lib/commonjs/keys/publicCipher.js.map +1 -1
  54. package/lib/commonjs/random.js +11 -2
  55. package/lib/commonjs/random.js.map +1 -1
  56. package/lib/commonjs/rsa.js +12 -5
  57. package/lib/commonjs/rsa.js.map +1 -1
  58. package/lib/commonjs/scrypt.js +47 -6
  59. package/lib/commonjs/scrypt.js.map +1 -1
  60. package/lib/commonjs/subtle.js +76 -5
  61. package/lib/commonjs/subtle.js.map +1 -1
  62. package/lib/commonjs/utils/cipher.js +18 -7
  63. package/lib/commonjs/utils/cipher.js.map +1 -1
  64. package/lib/commonjs/utils/conversion.js +33 -9
  65. package/lib/commonjs/utils/conversion.js.map +1 -1
  66. package/lib/commonjs/utils/timingSafeEqual.js +7 -2
  67. package/lib/commonjs/utils/timingSafeEqual.js.map +1 -1
  68. package/lib/commonjs/x509certificate.js +6 -6
  69. package/lib/commonjs/x509certificate.js.map +1 -1
  70. package/lib/module/argon2.js +51 -2
  71. package/lib/module/argon2.js.map +1 -1
  72. package/lib/module/cipher.js +109 -11
  73. package/lib/module/cipher.js.map +1 -1
  74. package/lib/module/dsa.js +8 -2
  75. package/lib/module/dsa.js.map +1 -1
  76. package/lib/module/hash.js +15 -5
  77. package/lib/module/hash.js.map +1 -1
  78. package/lib/module/hkdf.js +33 -6
  79. package/lib/module/hkdf.js.map +1 -1
  80. package/lib/module/hmac.js +15 -5
  81. package/lib/module/hmac.js.map +1 -1
  82. package/lib/module/keys/publicCipher.js +10 -4
  83. package/lib/module/keys/publicCipher.js.map +1 -1
  84. package/lib/module/random.js +11 -2
  85. package/lib/module/random.js.map +1 -1
  86. package/lib/module/rsa.js +11 -4
  87. package/lib/module/rsa.js.map +1 -1
  88. package/lib/module/scrypt.js +47 -6
  89. package/lib/module/scrypt.js.map +1 -1
  90. package/lib/module/subtle.js +76 -5
  91. package/lib/module/subtle.js.map +1 -1
  92. package/lib/module/utils/cipher.js +18 -7
  93. package/lib/module/utils/cipher.js.map +1 -1
  94. package/lib/module/utils/conversion.js +33 -9
  95. package/lib/module/utils/conversion.js.map +1 -1
  96. package/lib/module/utils/timingSafeEqual.js +8 -3
  97. package/lib/module/utils/timingSafeEqual.js.map +1 -1
  98. package/lib/module/x509certificate.js +6 -6
  99. package/lib/module/x509certificate.js.map +1 -1
  100. package/lib/typescript/argon2.d.ts.map +1 -1
  101. package/lib/typescript/cipher.d.ts +2 -2
  102. package/lib/typescript/cipher.d.ts.map +1 -1
  103. package/lib/typescript/dsa.d.ts.map +1 -1
  104. package/lib/typescript/hash.d.ts +2 -2
  105. package/lib/typescript/hash.d.ts.map +1 -1
  106. package/lib/typescript/hkdf.d.ts.map +1 -1
  107. package/lib/typescript/hmac.d.ts +2 -2
  108. package/lib/typescript/hmac.d.ts.map +1 -1
  109. package/lib/typescript/index.d.ts +1 -1
  110. package/lib/typescript/index.d.ts.map +1 -1
  111. package/lib/typescript/keys/publicCipher.d.ts.map +1 -1
  112. package/lib/typescript/random.d.ts.map +1 -1
  113. package/lib/typescript/rsa.d.ts.map +1 -1
  114. package/lib/typescript/scrypt.d.ts.map +1 -1
  115. package/lib/typescript/specs/utils.nitro.d.ts +0 -2
  116. package/lib/typescript/specs/utils.nitro.d.ts.map +1 -1
  117. package/lib/typescript/subtle.d.ts.map +1 -1
  118. package/lib/typescript/utils/cipher.d.ts +13 -1
  119. package/lib/typescript/utils/cipher.d.ts.map +1 -1
  120. package/lib/typescript/utils/conversion.d.ts +9 -6
  121. package/lib/typescript/utils/conversion.d.ts.map +1 -1
  122. package/lib/typescript/utils/timingSafeEqual.d.ts.map +1 -1
  123. package/lib/typescript/x509certificate.d.ts.map +1 -1
  124. package/nitrogen/generated/shared/c++/HybridUtilsSpec.cpp +0 -2
  125. package/nitrogen/generated/shared/c++/HybridUtilsSpec.hpp +0 -3
  126. package/package.json +37 -5
  127. package/src/argon2.ts +80 -2
  128. package/src/cipher.ts +139 -15
  129. package/src/dsa.ts +11 -2
  130. package/src/hash.ts +17 -7
  131. package/src/hkdf.ts +44 -6
  132. package/src/hmac.ts +17 -7
  133. package/src/keys/publicCipher.ts +10 -4
  134. package/src/random.ts +11 -2
  135. package/src/rsa.ts +18 -4
  136. package/src/scrypt.ts +73 -6
  137. package/src/specs/utils.nitro.ts +0 -2
  138. package/src/subtle.ts +90 -8
  139. package/src/utils/cipher.ts +30 -8
  140. package/src/utils/conversion.ts +58 -20
  141. package/src/utils/timingSafeEqual.ts +8 -3
  142. package/src/x509certificate.ts +5 -6
  143. package/deps/blake3/.cargo/config.toml +0 -2
  144. package/deps/blake3/.git-blame-ignore-revs +0 -2
  145. package/deps/blake3/.github/workflows/build_b3sum.py +0 -38
  146. package/deps/blake3/.github/workflows/ci.yml +0 -491
  147. package/deps/blake3/.github/workflows/tag.yml +0 -43
  148. package/deps/blake3/.github/workflows/upload_github_release_asset.py +0 -73
  149. package/deps/blake3/CONTRIBUTING.md +0 -31
  150. package/deps/blake3/Cargo.toml +0 -135
  151. package/deps/blake3/b3sum/Cargo.lock +0 -513
  152. package/deps/blake3/b3sum/Cargo.toml +0 -26
  153. package/deps/blake3/b3sum/README.md +0 -72
  154. package/deps/blake3/b3sum/src/main.rs +0 -564
  155. package/deps/blake3/b3sum/src/unit_tests.rs +0 -235
  156. package/deps/blake3/b3sum/tests/cli_tests.rs +0 -680
  157. package/deps/blake3/b3sum/what_does_check_do.md +0 -176
  158. package/deps/blake3/benches/bench.rs +0 -623
  159. package/deps/blake3/build.rs +0 -389
  160. package/deps/blake3/c/CMakeLists.txt +0 -383
  161. package/deps/blake3/c/CMakePresets.json +0 -73
  162. package/deps/blake3/c/Makefile.testing +0 -82
  163. package/deps/blake3/c/blake3-config.cmake.in +0 -14
  164. package/deps/blake3/c/blake3_avx2.c +0 -326
  165. package/deps/blake3/c/blake3_avx2_x86-64_unix.S +0 -1815
  166. package/deps/blake3/c/blake3_avx2_x86-64_windows_gnu.S +0 -1817
  167. package/deps/blake3/c/blake3_avx2_x86-64_windows_msvc.asm +0 -1828
  168. package/deps/blake3/c/blake3_avx512.c +0 -1388
  169. package/deps/blake3/c/blake3_avx512_x86-64_unix.S +0 -4824
  170. package/deps/blake3/c/blake3_avx512_x86-64_windows_gnu.S +0 -2615
  171. package/deps/blake3/c/blake3_avx512_x86-64_windows_msvc.asm +0 -2634
  172. package/deps/blake3/c/blake3_c_rust_bindings/Cargo.toml +0 -32
  173. package/deps/blake3/c/blake3_c_rust_bindings/README.md +0 -4
  174. package/deps/blake3/c/blake3_c_rust_bindings/benches/bench.rs +0 -477
  175. package/deps/blake3/c/blake3_c_rust_bindings/build.rs +0 -253
  176. package/deps/blake3/c/blake3_c_rust_bindings/cross_test.sh +0 -31
  177. package/deps/blake3/c/blake3_c_rust_bindings/src/lib.rs +0 -333
  178. package/deps/blake3/c/blake3_c_rust_bindings/src/test.rs +0 -696
  179. package/deps/blake3/c/blake3_sse2.c +0 -566
  180. package/deps/blake3/c/blake3_sse2_x86-64_unix.S +0 -2291
  181. package/deps/blake3/c/blake3_sse2_x86-64_windows_gnu.S +0 -2332
  182. package/deps/blake3/c/blake3_sse2_x86-64_windows_msvc.asm +0 -2350
  183. package/deps/blake3/c/blake3_sse41.c +0 -560
  184. package/deps/blake3/c/blake3_sse41_x86-64_unix.S +0 -2028
  185. package/deps/blake3/c/blake3_sse41_x86-64_windows_gnu.S +0 -2069
  186. package/deps/blake3/c/blake3_sse41_x86-64_windows_msvc.asm +0 -2089
  187. package/deps/blake3/c/blake3_tbb.cpp +0 -37
  188. package/deps/blake3/c/dependencies/CMakeLists.txt +0 -3
  189. package/deps/blake3/c/dependencies/tbb/CMakeLists.txt +0 -28
  190. package/deps/blake3/c/example.c +0 -36
  191. package/deps/blake3/c/example_tbb.c +0 -57
  192. package/deps/blake3/c/libblake3.pc.in +0 -12
  193. package/deps/blake3/c/main.c +0 -166
  194. package/deps/blake3/c/test.py +0 -97
  195. package/deps/blake3/media/B3.svg +0 -70
  196. package/deps/blake3/media/BLAKE3.svg +0 -85
  197. package/deps/blake3/media/speed.svg +0 -1474
  198. package/deps/blake3/reference_impl/Cargo.toml +0 -8
  199. package/deps/blake3/reference_impl/README.md +0 -14
  200. package/deps/blake3/reference_impl/reference_impl.rs +0 -374
  201. package/deps/blake3/src/ffi_avx2.rs +0 -65
  202. package/deps/blake3/src/ffi_avx512.rs +0 -169
  203. package/deps/blake3/src/ffi_neon.rs +0 -82
  204. package/deps/blake3/src/ffi_sse2.rs +0 -126
  205. package/deps/blake3/src/ffi_sse41.rs +0 -126
  206. package/deps/blake3/src/guts.rs +0 -60
  207. package/deps/blake3/src/hazmat.rs +0 -704
  208. package/deps/blake3/src/io.rs +0 -64
  209. package/deps/blake3/src/join.rs +0 -92
  210. package/deps/blake3/src/lib.rs +0 -1835
  211. package/deps/blake3/src/platform.rs +0 -587
  212. package/deps/blake3/src/portable.rs +0 -198
  213. package/deps/blake3/src/rust_avx2.rs +0 -474
  214. package/deps/blake3/src/rust_sse2.rs +0 -775
  215. package/deps/blake3/src/rust_sse41.rs +0 -766
  216. package/deps/blake3/src/test.rs +0 -1049
  217. package/deps/blake3/src/traits.rs +0 -227
  218. package/deps/blake3/src/wasm32_simd.rs +0 -794
  219. package/deps/blake3/test_vectors/Cargo.toml +0 -19
  220. package/deps/blake3/test_vectors/cross_test.sh +0 -25
  221. package/deps/blake3/test_vectors/src/bin/generate.rs +0 -4
  222. package/deps/blake3/test_vectors/src/lib.rs +0 -350
  223. package/deps/blake3/test_vectors/test_vectors.json +0 -217
  224. package/deps/blake3/tools/compiler_version/Cargo.toml +0 -7
  225. package/deps/blake3/tools/compiler_version/build.rs +0 -6
  226. package/deps/blake3/tools/compiler_version/src/main.rs +0 -27
  227. package/deps/blake3/tools/instruction_set_support/Cargo.toml +0 -6
  228. package/deps/blake3/tools/instruction_set_support/src/main.rs +0 -10
  229. package/deps/blake3/tools/release.md +0 -16
  230. package/deps/ncrypto/.bazelignore +0 -4
  231. package/deps/ncrypto/.bazelrc +0 -1
  232. package/deps/ncrypto/.bazelversion +0 -1
  233. package/deps/ncrypto/.clang-format +0 -111
  234. package/deps/ncrypto/.github/workflows/bazel.yml +0 -58
  235. package/deps/ncrypto/.github/workflows/commitlint.yml +0 -16
  236. package/deps/ncrypto/.github/workflows/linter.yml +0 -38
  237. package/deps/ncrypto/.github/workflows/macos.yml +0 -43
  238. package/deps/ncrypto/.github/workflows/release-please.yml +0 -16
  239. package/deps/ncrypto/.github/workflows/ubuntu.yml +0 -128
  240. package/deps/ncrypto/.github/workflows/visual-studio.yml +0 -49
  241. package/deps/ncrypto/.python-version +0 -1
  242. package/deps/ncrypto/.release-please-manifest.json +0 -3
  243. package/deps/ncrypto/BUILD.bazel +0 -44
  244. package/deps/ncrypto/CHANGELOG.md +0 -37
  245. package/deps/ncrypto/CMakeLists.txt +0 -79
  246. package/deps/ncrypto/MODULE.bazel +0 -16
  247. package/deps/ncrypto/MODULE.bazel.lock +0 -461
  248. package/deps/ncrypto/cmake/CPM.cmake +0 -1225
  249. package/deps/ncrypto/cmake/ncrypto-flags.cmake +0 -17
  250. package/deps/ncrypto/ncrypto.pc.in +0 -10
  251. package/deps/ncrypto/patches/0001-Expose-libdecrepit-so-NodeJS-can-use-it-for-ncrypto.patch +0 -28
  252. package/deps/ncrypto/pyproject.toml +0 -38
  253. package/deps/ncrypto/release-please-config.json +0 -11
  254. package/deps/ncrypto/src/CMakeLists.txt +0 -40
  255. package/deps/ncrypto/tests/BUILD.bazel +0 -11
  256. package/deps/ncrypto/tests/CMakeLists.txt +0 -7
  257. package/deps/ncrypto/tests/basic.cpp +0 -856
  258. package/deps/ncrypto/tools/run-clang-format.sh +0 -42
  259. package/deps/simdutf/.clang-format +0 -4
  260. package/deps/simdutf/.github/ISSUE_TEMPLATE/bug_report.md +0 -62
  261. package/deps/simdutf/.github/ISSUE_TEMPLATE/config.yml +0 -1
  262. package/deps/simdutf/.github/ISSUE_TEMPLATE/feature_request.md +0 -35
  263. package/deps/simdutf/.github/ISSUE_TEMPLATE/standard-issue-template.md +0 -29
  264. package/deps/simdutf/.github/pull_request_template.md +0 -51
  265. package/deps/simdutf/.github/workflows/aarch64.yml +0 -39
  266. package/deps/simdutf/.github/workflows/alpine.yml +0 -27
  267. package/deps/simdutf/.github/workflows/amalgamation_demos.yml +0 -34
  268. package/deps/simdutf/.github/workflows/armv7.yml +0 -32
  269. package/deps/simdutf/.github/workflows/atomic_fuzz.yml +0 -25
  270. package/deps/simdutf/.github/workflows/cifuzz.yml +0 -37
  271. package/deps/simdutf/.github/workflows/clangformat.yml +0 -36
  272. package/deps/simdutf/.github/workflows/debian-latestcxxstandards.yml +0 -40
  273. package/deps/simdutf/.github/workflows/debian.yml +0 -33
  274. package/deps/simdutf/.github/workflows/documentation.yml +0 -36
  275. package/deps/simdutf/.github/workflows/emscripten.yml +0 -19
  276. package/deps/simdutf/.github/workflows/loongarch64-gcc-14.2.yml +0 -39
  277. package/deps/simdutf/.github/workflows/macos-latest.yml +0 -29
  278. package/deps/simdutf/.github/workflows/msys2-clang.yml +0 -48
  279. package/deps/simdutf/.github/workflows/msys2.yml +0 -50
  280. package/deps/simdutf/.github/workflows/ppc64le.yml +0 -29
  281. package/deps/simdutf/.github/workflows/rvv-1024-clang-18.yml +0 -35
  282. package/deps/simdutf/.github/workflows/rvv-128-clang-17.yml +0 -35
  283. package/deps/simdutf/.github/workflows/rvv-256-gcc-14.yml +0 -31
  284. package/deps/simdutf/.github/workflows/s390x.yml +0 -29
  285. package/deps/simdutf/.github/workflows/selective-amalgamation.yml +0 -29
  286. package/deps/simdutf/.github/workflows/typos.yml +0 -19
  287. package/deps/simdutf/.github/workflows/ubuntu22-cxx20.yml +0 -30
  288. package/deps/simdutf/.github/workflows/ubuntu22.yml +0 -32
  289. package/deps/simdutf/.github/workflows/ubuntu22_gcc12.yml +0 -27
  290. package/deps/simdutf/.github/workflows/ubuntu22sani.yml +0 -29
  291. package/deps/simdutf/.github/workflows/ubuntu24-cxxstandards.yml +0 -34
  292. package/deps/simdutf/.github/workflows/ubuntu24-unsignedchar.yml +0 -34
  293. package/deps/simdutf/.github/workflows/ubuntu24.yml +0 -32
  294. package/deps/simdutf/.github/workflows/ubuntu24sani.yml +0 -36
  295. package/deps/simdutf/.github/workflows/ubuntu24sani_clang.yml +0 -29
  296. package/deps/simdutf/.github/workflows/vs17-arm-ci.yml +0 -21
  297. package/deps/simdutf/.github/workflows/vs17-ci-cxx20.yml +0 -41
  298. package/deps/simdutf/.github/workflows/vs17-ci.yml +0 -41
  299. package/deps/simdutf/.github/workflows/vs17-clang-ci.yml +0 -41
  300. package/deps/simdutf/.github/workflows/vs17-cxxstandards.yml +0 -36
  301. package/deps/simdutf/AI_USAGE_POLICY.md +0 -56
  302. package/deps/simdutf/AUTHORS +0 -6
  303. package/deps/simdutf/CMakeLists.txt +0 -231
  304. package/deps/simdutf/CONTRIBUTING.md +0 -214
  305. package/deps/simdutf/CONTRIBUTORS +0 -1
  306. package/deps/simdutf/Doxyfile +0 -2584
  307. package/deps/simdutf/Makefile.crosscompile +0 -54
  308. package/deps/simdutf/README-RVV.md +0 -16
  309. package/deps/simdutf/SECURITY.md +0 -8
  310. package/deps/simdutf/benchmarks/CMakeLists.txt +0 -101
  311. package/deps/simdutf/benchmarks/alignment.cpp +0 -150
  312. package/deps/simdutf/benchmarks/base64/CMakeLists.txt +0 -30
  313. package/deps/simdutf/benchmarks/base64/benchmark_base64.cpp +0 -875
  314. package/deps/simdutf/benchmarks/base64/libbase64_spaces.h +0 -49
  315. package/deps/simdutf/benchmarks/base64/node_base64.h +0 -227
  316. package/deps/simdutf/benchmarks/base64/openssl3_base64.h +0 -334
  317. package/deps/simdutf/benchmarks/benchmark.cpp +0 -65
  318. package/deps/simdutf/benchmarks/benchmark_to_well_formed_utf16.cpp +0 -347
  319. package/deps/simdutf/benchmarks/competition/.clang-format-ignore +0 -5
  320. package/deps/simdutf/benchmarks/competition/CppCon2018/utf_utils.cpp +0 -1276
  321. package/deps/simdutf/benchmarks/competition/CppCon2018/utf_utils.h +0 -595
  322. package/deps/simdutf/benchmarks/competition/README.md +0 -7
  323. package/deps/simdutf/benchmarks/competition/hoehrmann/hoehrmann.h +0 -91
  324. package/deps/simdutf/benchmarks/competition/inoue2008/inoue_utf8_to_utf16.h +0 -444
  325. package/deps/simdutf/benchmarks/competition/inoue2008/inoue_utf8_to_utf16_tables.h +0 -13183
  326. package/deps/simdutf/benchmarks/competition/inoue2008/script.py +0 -73
  327. package/deps/simdutf/benchmarks/competition/llvm/ConvertUTF.cpp +0 -738
  328. package/deps/simdutf/benchmarks/competition/llvm/ConvertUTF.h +0 -293
  329. package/deps/simdutf/benchmarks/competition/u8u16/COPYRIGHT +0 -8
  330. package/deps/simdutf/benchmarks/competition/u8u16/Makefile +0 -44
  331. package/deps/simdutf/benchmarks/competition/u8u16/OSL3.0.txt +0 -169
  332. package/deps/simdutf/benchmarks/competition/u8u16/Profiling/BOM_Profiler.h +0 -148
  333. package/deps/simdutf/benchmarks/competition/u8u16/Profiling/i386_timer.h +0 -45
  334. package/deps/simdutf/benchmarks/competition/u8u16/Profiling/ppc_timer.c +0 -34
  335. package/deps/simdutf/benchmarks/competition/u8u16/README +0 -56
  336. package/deps/simdutf/benchmarks/competition/u8u16/config/config_defs.h +0 -43
  337. package/deps/simdutf/benchmarks/competition/u8u16/config/g4_config.h +0 -27
  338. package/deps/simdutf/benchmarks/competition/u8u16/config/mmx_config.h +0 -16
  339. package/deps/simdutf/benchmarks/competition/u8u16/config/p4_config.h +0 -18
  340. package/deps/simdutf/benchmarks/competition/u8u16/config/p4_ideal_config.h +0 -16
  341. package/deps/simdutf/benchmarks/competition/u8u16/config/spu_config.h +0 -28
  342. package/deps/simdutf/benchmarks/competition/u8u16/config/ssse3_config.h +0 -20
  343. package/deps/simdutf/benchmarks/competition/u8u16/iconv_u8u16.c +0 -2
  344. package/deps/simdutf/benchmarks/competition/u8u16/lib/altivec_simd.h +0 -440
  345. package/deps/simdutf/benchmarks/competition/u8u16/lib/libgen/make_basic_ops.py +0 -121
  346. package/deps/simdutf/benchmarks/competition/u8u16/lib/libgen/make_half_operand_versions.py +0 -158
  347. package/deps/simdutf/benchmarks/competition/u8u16/lib/libgen/make_test.py +0 -270
  348. package/deps/simdutf/benchmarks/competition/u8u16/lib/mmx_simd.h +0 -141
  349. package/deps/simdutf/benchmarks/competition/u8u16/lib/mmx_simd_basic.h +0 -216
  350. package/deps/simdutf/benchmarks/competition/u8u16/lib/mmx_simd_built_in.h +0 -119
  351. package/deps/simdutf/benchmarks/competition/u8u16/lib/mmx_simd_modified.h +0 -2430
  352. package/deps/simdutf/benchmarks/competition/u8u16/lib/outline.txt +0 -39
  353. package/deps/simdutf/benchmarks/competition/u8u16/lib/spu_simd.h +0 -421
  354. package/deps/simdutf/benchmarks/competition/u8u16/lib/sse_simd.h +0 -836
  355. package/deps/simdutf/benchmarks/competition/u8u16/lib/stdint.h +0 -222
  356. package/deps/simdutf/benchmarks/competition/u8u16/libu8u16_BE.c +0 -4
  357. package/deps/simdutf/benchmarks/competition/u8u16/libu8u16_LE.c +0 -5
  358. package/deps/simdutf/benchmarks/competition/u8u16/proto/u8u16.py +0 -390
  359. package/deps/simdutf/benchmarks/competition/u8u16/src/Makefile +0 -18
  360. package/deps/simdutf/benchmarks/competition/u8u16/src/bytelex.h +0 -448
  361. package/deps/simdutf/benchmarks/competition/u8u16/src/charsets/ASCII_EBCDIC.h +0 -284
  362. package/deps/simdutf/benchmarks/competition/u8u16/src/libu8u16.c +0 -1975
  363. package/deps/simdutf/benchmarks/competition/u8u16/src/libu8u16.pdf +0 -0
  364. package/deps/simdutf/benchmarks/competition/u8u16/src/libu8u16.w +0 -2263
  365. package/deps/simdutf/benchmarks/competition/u8u16/src/multiliteral.h +0 -239
  366. package/deps/simdutf/benchmarks/competition/u8u16/src/u8u16.c +0 -232
  367. package/deps/simdutf/benchmarks/competition/u8u16/src/x8x16.c +0 -194
  368. package/deps/simdutf/benchmarks/competition/u8u16/src/xml_error.c +0 -193
  369. package/deps/simdutf/benchmarks/competition/u8u16/src/xml_error.h +0 -167
  370. package/deps/simdutf/benchmarks/competition/u8u16/src/xmldecl.c +0 -288
  371. package/deps/simdutf/benchmarks/competition/u8u16/src/xmldecl.h +0 -117
  372. package/deps/simdutf/benchmarks/competition/u8u16/u8u16_g4.c +0 -2
  373. package/deps/simdutf/benchmarks/competition/u8u16/u8u16_mmx.c +0 -2
  374. package/deps/simdutf/benchmarks/competition/u8u16/u8u16_p4.c +0 -3
  375. package/deps/simdutf/benchmarks/competition/u8u16/u8u16_p4_ideal.c +0 -2
  376. package/deps/simdutf/benchmarks/competition/u8u16/u8u16_spu.c +0 -2
  377. package/deps/simdutf/benchmarks/competition/u8u16/u8u16_ssse3.c +0 -3
  378. package/deps/simdutf/benchmarks/competition/u8u16/x8x16_p4.c +0 -2
  379. package/deps/simdutf/benchmarks/competition/utf8lut/LICENSE +0 -23
  380. package/deps/simdutf/benchmarks/competition/utf8lut/data/test_minimal.txt +0 -44
  381. package/deps/simdutf/benchmarks/competition/utf8lut/readme.md +0 -106
  382. package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_clang_corr_tests.cmd +0 -11
  383. package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_clang_corr_tests.sh +0 -13
  384. package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_gcc_corr_tests.sh +0 -13
  385. package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_gcc_example.sh +0 -13
  386. package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_gcc_file_conv.sh +0 -14
  387. package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_gcc_iconv_lib.sh +0 -11
  388. package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_gcc_iconv_sample.sh +0 -8
  389. package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_mingw_corr_tests.cmd +0 -12
  390. package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_mingw_example.cmd +0 -13
  391. package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_mingw_file_conv.cmd +0 -14
  392. package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_mingw_iconv_lib.cmd +0 -11
  393. package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_mingw_iconv_sample.cmd +0 -8
  394. package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_msvc_corr_tests.cmd +0 -11
  395. package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_msvc_example.cmd +0 -12
  396. package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_msvc_file_conv.cmd +0 -13
  397. package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_msvc_iconv_lib.cmd +0 -10
  398. package/deps/simdutf/benchmarks/competition/utf8lut/scripts/build_msvc_iconv_sample.cmd +0 -9
  399. package/deps/simdutf/benchmarks/competition/utf8lut/scripts/html_table.py +0 -25
  400. package/deps/simdutf/benchmarks/competition/utf8lut/scripts/measure.py +0 -94
  401. package/deps/simdutf/benchmarks/competition/utf8lut/scripts/resize.py +0 -20
  402. package/deps/simdutf/benchmarks/competition/utf8lut/scripts/wipe_all.cmd +0 -2
  403. package/deps/simdutf/benchmarks/competition/utf8lut/scripts/wipe_interm.cmd +0 -1
  404. package/deps/simdutf/benchmarks/competition/utf8lut/src/base/CustomMemcpy.h +0 -75
  405. package/deps/simdutf/benchmarks/competition/utf8lut/src/base/PerfDefs.h +0 -47
  406. package/deps/simdutf/benchmarks/competition/utf8lut/src/base/Timing.cpp +0 -17
  407. package/deps/simdutf/benchmarks/competition/utf8lut/src/base/Timing.h +0 -76
  408. package/deps/simdutf/benchmarks/competition/utf8lut/src/buffer/AllProcessors.cpp +0 -35
  409. package/deps/simdutf/benchmarks/competition/utf8lut/src/buffer/BaseBufferProcessor.cpp +0 -117
  410. package/deps/simdutf/benchmarks/competition/utf8lut/src/buffer/BaseBufferProcessor.h +0 -210
  411. package/deps/simdutf/benchmarks/competition/utf8lut/src/buffer/BufferDecoder.h +0 -158
  412. package/deps/simdutf/benchmarks/competition/utf8lut/src/buffer/BufferEncoder.h +0 -104
  413. package/deps/simdutf/benchmarks/competition/utf8lut/src/buffer/ProcessorPlugins.h +0 -334
  414. package/deps/simdutf/benchmarks/competition/utf8lut/src/buffer/ProcessorSelector.h +0 -186
  415. package/deps/simdutf/benchmarks/competition/utf8lut/src/core/DecoderLut.cpp +0 -140
  416. package/deps/simdutf/benchmarks/competition/utf8lut/src/core/DecoderLut.h +0 -42
  417. package/deps/simdutf/benchmarks/competition/utf8lut/src/core/DecoderProcess.h +0 -100
  418. package/deps/simdutf/benchmarks/competition/utf8lut/src/core/Dfa.h +0 -57
  419. package/deps/simdutf/benchmarks/competition/utf8lut/src/core/EncoderLut.cpp +0 -85
  420. package/deps/simdutf/benchmarks/competition/utf8lut/src/core/EncoderLut.h +0 -27
  421. package/deps/simdutf/benchmarks/competition/utf8lut/src/core/EncoderProcess.h +0 -126
  422. package/deps/simdutf/benchmarks/competition/utf8lut/src/core/ProcessTrivial.h +0 -108
  423. package/deps/simdutf/benchmarks/competition/utf8lut/src/iconv/iconv.cpp +0 -139
  424. package/deps/simdutf/benchmarks/competition/utf8lut/src/iconv/iconv.h +0 -74
  425. package/deps/simdutf/benchmarks/competition/utf8lut/src/message/MessageConverter.cpp +0 -65
  426. package/deps/simdutf/benchmarks/competition/utf8lut/src/message/MessageConverter.h +0 -91
  427. package/deps/simdutf/benchmarks/competition/utf8lut/src/tests/CorrectnessTests.cpp +0 -772
  428. package/deps/simdutf/benchmarks/competition/utf8lut/src/tests/Example.cpp +0 -12
  429. package/deps/simdutf/benchmarks/competition/utf8lut/src/tests/FileConverter.cpp +0 -486
  430. package/deps/simdutf/benchmarks/competition/utf8lut/src/tests/iconv_sample.c +0 -162
  431. package/deps/simdutf/benchmarks/competition/utf8lut/src/utf8lut.h +0 -15
  432. package/deps/simdutf/benchmarks/competition/utf8sse4/fromutf8-sse.cpp +0 -292
  433. package/deps/simdutf/benchmarks/competition/utfcpp/LICENSE +0 -23
  434. package/deps/simdutf/benchmarks/competition/utfcpp/README.md +0 -1503
  435. package/deps/simdutf/benchmarks/competition/utfcpp/source/utf8/checked.h +0 -335
  436. package/deps/simdutf/benchmarks/competition/utfcpp/source/utf8/core.h +0 -338
  437. package/deps/simdutf/benchmarks/competition/utfcpp/source/utf8/cpp11.h +0 -103
  438. package/deps/simdutf/benchmarks/competition/utfcpp/source/utf8/cpp17.h +0 -103
  439. package/deps/simdutf/benchmarks/competition/utfcpp/source/utf8/unchecked.h +0 -274
  440. package/deps/simdutf/benchmarks/competition/utfcpp/source/utf8.h +0 -34
  441. package/deps/simdutf/benchmarks/dataset/README.md +0 -155
  442. package/deps/simdutf/benchmarks/dataset/emoji.txt +0 -204
  443. package/deps/simdutf/benchmarks/dataset/scripts/utf8type.py +0 -40
  444. package/deps/simdutf/benchmarks/dataset/wikipedia_mars/Makefile +0 -80
  445. package/deps/simdutf/benchmarks/dataset/wikipedia_mars/convert_to_utf6.py +0 -20
  446. package/deps/simdutf/benchmarks/find/CMakeLists.txt +0 -6
  447. package/deps/simdutf/benchmarks/find/findbenchmark.cpp +0 -63
  448. package/deps/simdutf/benchmarks/find/findbenchmarker.h +0 -46
  449. package/deps/simdutf/benchmarks/shortbench.cpp +0 -555
  450. package/deps/simdutf/benchmarks/src/CMakeLists.txt +0 -52
  451. package/deps/simdutf/benchmarks/src/apple_arm_events.h +0 -1104
  452. package/deps/simdutf/benchmarks/src/benchmark.cpp +0 -3899
  453. package/deps/simdutf/benchmarks/src/benchmark.h +0 -317
  454. package/deps/simdutf/benchmarks/src/benchmark_base.cpp +0 -144
  455. package/deps/simdutf/benchmarks/src/benchmark_base.h +0 -98
  456. package/deps/simdutf/benchmarks/src/cmdline.cpp +0 -176
  457. package/deps/simdutf/benchmarks/src/cmdline.h +0 -35
  458. package/deps/simdutf/benchmarks/src/event_counter.h +0 -162
  459. package/deps/simdutf/benchmarks/src/linux-perf-events.h +0 -104
  460. package/deps/simdutf/benchmarks/stream.cpp +0 -209
  461. package/deps/simdutf/benchmarks/threaded.cpp +0 -123
  462. package/deps/simdutf/cmake/CPM.cmake +0 -1363
  463. package/deps/simdutf/cmake/JoinPaths.cmake +0 -23
  464. package/deps/simdutf/cmake/add_cpp_test.cmake +0 -68
  465. package/deps/simdutf/cmake/simdutf-config.cmake.in +0 -2
  466. package/deps/simdutf/cmake/simdutf-flags.cmake +0 -26
  467. package/deps/simdutf/cmake/toolchains-ci/riscv64-linux-gnu.cmake +0 -4
  468. package/deps/simdutf/cmake/toolchains-dev/README.md +0 -32
  469. package/deps/simdutf/cmake/toolchains-dev/aarch64.cmake +0 -14
  470. package/deps/simdutf/cmake/toolchains-dev/loongarch64.cmake +0 -22
  471. package/deps/simdutf/cmake/toolchains-dev/powerpc64.cmake +0 -16
  472. package/deps/simdutf/cmake/toolchains-dev/powerpc64le.cmake +0 -16
  473. package/deps/simdutf/cmake/toolchains-dev/riscv64.cmake +0 -16
  474. package/deps/simdutf/cmake/toolchains-dev/rvv-spike.cmake +0 -38
  475. package/deps/simdutf/doc/avx512.png +0 -0
  476. package/deps/simdutf/doc/logo.png +0 -0
  477. package/deps/simdutf/doc/logo.svg +0 -165
  478. package/deps/simdutf/doc/node2023.png +0 -0
  479. package/deps/simdutf/doc/shortinput.md +0 -78
  480. package/deps/simdutf/doc/utf16utf8.png +0 -0
  481. package/deps/simdutf/doc/utf8utf16.png +0 -0
  482. package/deps/simdutf/doc/widelogo.png +0 -0
  483. package/deps/simdutf/doxygen.py +0 -50
  484. package/deps/simdutf/fuzz/.clang-format +0 -9
  485. package/deps/simdutf/fuzz/CMakeLists.txt +0 -45
  486. package/deps/simdutf/fuzz/README.md +0 -168
  487. package/deps/simdutf/fuzz/atomic_base64.cpp +0 -448
  488. package/deps/simdutf/fuzz/base64.cpp +0 -278
  489. package/deps/simdutf/fuzz/build.sh +0 -83
  490. package/deps/simdutf/fuzz/conversion.cpp +0 -669
  491. package/deps/simdutf/fuzz/helpers/.clang-format-ignore +0 -1
  492. package/deps/simdutf/fuzz/helpers/common.h +0 -135
  493. package/deps/simdutf/fuzz/helpers/nameof.hpp +0 -1258
  494. package/deps/simdutf/fuzz/main.cpp +0 -72
  495. package/deps/simdutf/fuzz/minimize_and_cleanse.sh +0 -87
  496. package/deps/simdutf/fuzz/misc.cpp +0 -216
  497. package/deps/simdutf/fuzz/random_fuzz.sh +0 -154
  498. package/deps/simdutf/fuzz/roundtrip.cpp +0 -588
  499. package/deps/simdutf/fuzz/safe_conversion.cpp +0 -104
  500. package/deps/simdutf/riscv/Dockerfile +0 -16
  501. package/deps/simdutf/riscv/README.md +0 -24
  502. package/deps/simdutf/riscv/remove-docker-station +0 -8
  503. package/deps/simdutf/riscv/run-docker-station +0 -31
  504. package/deps/simdutf/scripts/.flake8 +0 -2
  505. package/deps/simdutf/scripts/Makefile +0 -2
  506. package/deps/simdutf/scripts/README_ADD_FUNCTION.md +0 -49
  507. package/deps/simdutf/scripts/add_function.py +0 -330
  508. package/deps/simdutf/scripts/amalgamation_tests.py +0 -156
  509. package/deps/simdutf/scripts/base64/Makefile +0 -2
  510. package/deps/simdutf/scripts/base64/README.md +0 -2
  511. package/deps/simdutf/scripts/base64/avx512.py +0 -76
  512. package/deps/simdutf/scripts/base64/neon_decode.py +0 -143
  513. package/deps/simdutf/scripts/base64/neon_generate_lut.py +0 -101
  514. package/deps/simdutf/scripts/base64/sse.py +0 -252
  515. package/deps/simdutf/scripts/base64/sseregular.py +0 -160
  516. package/deps/simdutf/scripts/base64/sseurl.py +0 -283
  517. package/deps/simdutf/scripts/base64/table.py +0 -59
  518. package/deps/simdutf/scripts/base64bench_print.py +0 -145
  519. package/deps/simdutf/scripts/benchmark-all.py +0 -119
  520. package/deps/simdutf/scripts/benchmark_print.py +0 -324
  521. package/deps/simdutf/scripts/check_feature_macros.py +0 -156
  522. package/deps/simdutf/scripts/check_typos.sh +0 -13
  523. package/deps/simdutf/scripts/clang_format.sh +0 -35
  524. package/deps/simdutf/scripts/clang_format_docker.sh +0 -38
  525. package/deps/simdutf/scripts/common.py +0 -24
  526. package/deps/simdutf/scripts/compilation_benchmark.py +0 -55
  527. package/deps/simdutf/scripts/compile_many_variations.sh +0 -64
  528. package/deps/simdutf/scripts/create_latex_table.py +0 -62
  529. package/deps/simdutf/scripts/docker/Dockerfile +0 -14
  530. package/deps/simdutf/scripts/docker/Makefile +0 -9
  531. package/deps/simdutf/scripts/docker/README.md +0 -30
  532. package/deps/simdutf/scripts/docker/llvm.gpg +0 -0
  533. package/deps/simdutf/scripts/ppc64_convert_utf16_to_utf8.py +0 -155
  534. package/deps/simdutf/scripts/prepare_doxygen.sh +0 -21
  535. package/deps/simdutf/scripts/release.py +0 -197
  536. package/deps/simdutf/scripts/shortinputplots.py +0 -97
  537. package/deps/simdutf/scripts/sse_convert_utf16_to_utf8.py +0 -422
  538. package/deps/simdutf/scripts/sse_convert_utf32_to_utf16.py +0 -105
  539. package/deps/simdutf/scripts/sse_utf8_utf16_decode.py +0 -186
  540. package/deps/simdutf/scripts/sse_validate_utf16le_proof.py +0 -137
  541. package/deps/simdutf/scripts/sse_validate_utf16le_testcases.py +0 -129
  542. package/deps/simdutf/scripts/table.py +0 -207
  543. package/deps/simdutf/scripts/tests/new.txt +0 -33
  544. package/deps/simdutf/scripts/tests/old.txt +0 -33
  545. package/deps/simdutf/scripts/tests/results.txt +0 -272
  546. package/deps/simdutf/simdutf.pc.in +0 -11
  547. package/deps/simdutf/singleheader/.flake8 +0 -2
  548. package/deps/simdutf/singleheader/CMakeLists.txt +0 -64
  549. package/deps/simdutf/singleheader/README-dev.md +0 -81
  550. package/deps/simdutf/singleheader/README.md +0 -19
  551. package/deps/simdutf/singleheader/amalgamate.py +0 -513
  552. package/deps/simdutf/singleheader/amalgamation_demo.c +0 -59
  553. package/deps/simdutf/singleheader/amalgamation_demo.cpp +0 -54
  554. package/deps/simdutf/singleheader/test-features.py +0 -262
  555. package/deps/simdutf/src/CMakeLists.txt +0 -78
  556. package/deps/simdutf/tests/CMakeLists.txt +0 -483
  557. package/deps/simdutf/tests/atomic_base64_tests.cpp +0 -2845
  558. package/deps/simdutf/tests/base64_tests.cpp +0 -3617
  559. package/deps/simdutf/tests/basic_fuzzer.cpp +0 -805
  560. package/deps/simdutf/tests/bele_tests.cpp +0 -182
  561. package/deps/simdutf/tests/constexpr_base64_tests.cpp +0 -387
  562. package/deps/simdutf/tests/convert_latin1_to_utf16be_tests.cpp +0 -52
  563. package/deps/simdutf/tests/convert_latin1_to_utf16le_tests.cpp +0 -80
  564. package/deps/simdutf/tests/convert_latin1_to_utf32_tests.cpp +0 -66
  565. package/deps/simdutf/tests/convert_latin1_to_utf8_tests.cpp +0 -120
  566. package/deps/simdutf/tests/convert_utf16_to_utf8_safe_tests.cpp +0 -203
  567. package/deps/simdutf/tests/convert_utf16_to_utf8_with_replacement_tests.cpp +0 -276
  568. package/deps/simdutf/tests/convert_utf16be_to_latin1_tests.cpp +0 -109
  569. package/deps/simdutf/tests/convert_utf16be_to_latin1_tests_with_errors.cpp +0 -136
  570. package/deps/simdutf/tests/convert_utf16be_to_utf32_tests.cpp +0 -193
  571. package/deps/simdutf/tests/convert_utf16be_to_utf32_with_errors_tests.cpp +0 -381
  572. package/deps/simdutf/tests/convert_utf16be_to_utf8_tests.cpp +0 -259
  573. package/deps/simdutf/tests/convert_utf16be_to_utf8_with_errors_tests.cpp +0 -266
  574. package/deps/simdutf/tests/convert_utf16le_to_latin1_tests.cpp +0 -148
  575. package/deps/simdutf/tests/convert_utf16le_to_latin1_tests_with_errors.cpp +0 -176
  576. package/deps/simdutf/tests/convert_utf16le_to_utf32_tests.cpp +0 -213
  577. package/deps/simdutf/tests/convert_utf16le_to_utf32_with_errors_tests.cpp +0 -318
  578. package/deps/simdutf/tests/convert_utf16le_to_utf8_tests.cpp +0 -343
  579. package/deps/simdutf/tests/convert_utf16le_to_utf8_with_errors_tests.cpp +0 -271
  580. package/deps/simdutf/tests/convert_utf32_to_latin1_tests.cpp +0 -111
  581. package/deps/simdutf/tests/convert_utf32_to_latin1_with_errors_tests.cpp +0 -96
  582. package/deps/simdutf/tests/convert_utf32_to_utf16be_tests.cpp +0 -148
  583. package/deps/simdutf/tests/convert_utf32_to_utf16be_with_errors_tests.cpp +0 -192
  584. package/deps/simdutf/tests/convert_utf32_to_utf16le_tests.cpp +0 -166
  585. package/deps/simdutf/tests/convert_utf32_to_utf16le_with_errors_tests.cpp +0 -215
  586. package/deps/simdutf/tests/convert_utf32_to_utf8_tests.cpp +0 -181
  587. package/deps/simdutf/tests/convert_utf32_to_utf8_with_errors_tests.cpp +0 -261
  588. package/deps/simdutf/tests/convert_utf8_to_latin1_tests.cpp +0 -516
  589. package/deps/simdutf/tests/convert_utf8_to_latin1_with_errors_tests.cpp +0 -579
  590. package/deps/simdutf/tests/convert_utf8_to_utf16be_tests.cpp +0 -412
  591. package/deps/simdutf/tests/convert_utf8_to_utf16be_with_errors_tests.cpp +0 -480
  592. package/deps/simdutf/tests/convert_utf8_to_utf16le_tests.cpp +0 -671
  593. package/deps/simdutf/tests/convert_utf8_to_utf16le_with_errors_tests.cpp +0 -455
  594. package/deps/simdutf/tests/convert_utf8_to_utf32_tests.cpp +0 -1204
  595. package/deps/simdutf/tests/convert_utf8_to_utf32_with_errors_tests.cpp +0 -337
  596. package/deps/simdutf/tests/convert_valid_utf16be_to_latin1_tests.cpp +0 -37
  597. package/deps/simdutf/tests/convert_valid_utf16be_to_utf32_tests.cpp +0 -97
  598. package/deps/simdutf/tests/convert_valid_utf16be_to_utf8_tests.cpp +0 -126
  599. package/deps/simdutf/tests/convert_valid_utf16le_to_latin1_tests.cpp +0 -71
  600. package/deps/simdutf/tests/convert_valid_utf16le_to_utf32_tests.cpp +0 -122
  601. package/deps/simdutf/tests/convert_valid_utf16le_to_utf8_tests.cpp +0 -244
  602. package/deps/simdutf/tests/convert_valid_utf32_to_latin1_tests.cpp +0 -49
  603. package/deps/simdutf/tests/convert_valid_utf32_to_utf16be_tests.cpp +0 -92
  604. package/deps/simdutf/tests/convert_valid_utf32_to_utf16le_tests.cpp +0 -114
  605. package/deps/simdutf/tests/convert_valid_utf32_to_utf8_tests.cpp +0 -109
  606. package/deps/simdutf/tests/convert_valid_utf8_to_latin1_tests.cpp +0 -84
  607. package/deps/simdutf/tests/convert_valid_utf8_to_utf16be_tests.cpp +0 -124
  608. package/deps/simdutf/tests/convert_valid_utf8_to_utf16le_tests.cpp +0 -221
  609. package/deps/simdutf/tests/convert_valid_utf8_to_utf32_tests.cpp +0 -155
  610. package/deps/simdutf/tests/count_utf16be.cpp +0 -64
  611. package/deps/simdutf/tests/count_utf16le.cpp +0 -61
  612. package/deps/simdutf/tests/count_utf8.cpp +0 -87
  613. package/deps/simdutf/tests/detect_encodings_tests.cpp +0 -312
  614. package/deps/simdutf/tests/embed/valid_utf8.txt +0 -1
  615. package/deps/simdutf/tests/embed_tests.cpp +0 -22
  616. package/deps/simdutf/tests/find_tests.cpp +0 -77
  617. package/deps/simdutf/tests/fixed_string_tests.cpp +0 -153
  618. package/deps/simdutf/tests/helpers/CMakeLists.txt +0 -25
  619. package/deps/simdutf/tests/helpers/compiletime_conversions.h +0 -222
  620. package/deps/simdutf/tests/helpers/fixed_string.h +0 -267
  621. package/deps/simdutf/tests/helpers/random_int.cpp +0 -30
  622. package/deps/simdutf/tests/helpers/random_int.h +0 -39
  623. package/deps/simdutf/tests/helpers/random_utf16.cpp +0 -123
  624. package/deps/simdutf/tests/helpers/random_utf16.h +0 -52
  625. package/deps/simdutf/tests/helpers/random_utf32.cpp +0 -41
  626. package/deps/simdutf/tests/helpers/random_utf32.h +0 -40
  627. package/deps/simdutf/tests/helpers/random_utf8.cpp +0 -93
  628. package/deps/simdutf/tests/helpers/random_utf8.h +0 -36
  629. package/deps/simdutf/tests/helpers/test.cpp +0 -231
  630. package/deps/simdutf/tests/helpers/test.h +0 -193
  631. package/deps/simdutf/tests/helpers/transcode_test_base.cpp +0 -1257
  632. package/deps/simdutf/tests/helpers/transcode_test_base.h +0 -683
  633. package/deps/simdutf/tests/helpers/utf16.h +0 -27
  634. package/deps/simdutf/tests/installation_tests/find/CMakeLists.txt +0 -43
  635. package/deps/simdutf/tests/installation_tests/from_fetch/CMakeLists.txt +0 -47
  636. package/deps/simdutf/tests/internal_tests.cpp +0 -27
  637. package/deps/simdutf/tests/null_safety_tests.cpp +0 -94
  638. package/deps/simdutf/tests/random_fuzzer.cpp +0 -779
  639. package/deps/simdutf/tests/readme_tests.cpp +0 -274
  640. package/deps/simdutf/tests/reference/CMakeLists.txt +0 -23
  641. package/deps/simdutf/tests/reference/decode_utf16.h +0 -81
  642. package/deps/simdutf/tests/reference/decode_utf32.h +0 -47
  643. package/deps/simdutf/tests/reference/encode_latin1.cpp +0 -1
  644. package/deps/simdutf/tests/reference/encode_latin1.h +0 -32
  645. package/deps/simdutf/tests/reference/encode_utf16.cpp +0 -49
  646. package/deps/simdutf/tests/reference/encode_utf16.h +0 -20
  647. package/deps/simdutf/tests/reference/encode_utf32.cpp +0 -1
  648. package/deps/simdutf/tests/reference/encode_utf32.h +0 -36
  649. package/deps/simdutf/tests/reference/encode_utf8.cpp +0 -1
  650. package/deps/simdutf/tests/reference/encode_utf8.h +0 -40
  651. package/deps/simdutf/tests/reference/validate_utf16.cpp +0 -60
  652. package/deps/simdutf/tests/reference/validate_utf16.h +0 -14
  653. package/deps/simdutf/tests/reference/validate_utf16_to_latin1.cpp +0 -35
  654. package/deps/simdutf/tests/reference/validate_utf16_to_latin1.h +0 -13
  655. package/deps/simdutf/tests/reference/validate_utf32.cpp +0 -27
  656. package/deps/simdutf/tests/reference/validate_utf32.h +0 -12
  657. package/deps/simdutf/tests/reference/validate_utf32_to_latin1.cpp +0 -27
  658. package/deps/simdutf/tests/reference/validate_utf32_to_latin1.h +0 -12
  659. package/deps/simdutf/tests/reference/validate_utf8.cpp +0 -82
  660. package/deps/simdutf/tests/reference/validate_utf8.h +0 -11
  661. package/deps/simdutf/tests/reference/validate_utf8_to_latin1.cpp +0 -43
  662. package/deps/simdutf/tests/reference/validate_utf8_to_latin1.h +0 -12
  663. package/deps/simdutf/tests/select_implementation.cpp +0 -43
  664. package/deps/simdutf/tests/simdutf_c_tests.cpp +0 -244
  665. package/deps/simdutf/tests/span_tests.cpp +0 -401
  666. package/deps/simdutf/tests/special_tests.cpp +0 -559
  667. package/deps/simdutf/tests/straight_c_test.c +0 -187
  668. package/deps/simdutf/tests/text_encoding_tests.cpp +0 -77
  669. package/deps/simdutf/tests/to_well_formed_utf16_tests.cpp +0 -377
  670. package/deps/simdutf/tests/utf8_length_from_utf16_tests.cpp +0 -202
  671. package/deps/simdutf/tests/validate_ascii_basic_tests.cpp +0 -165
  672. package/deps/simdutf/tests/validate_ascii_with_errors_tests.cpp +0 -77
  673. package/deps/simdutf/tests/validate_utf16be_basic_tests.cpp +0 -175
  674. package/deps/simdutf/tests/validate_utf16be_with_errors_tests.cpp +0 -188
  675. package/deps/simdutf/tests/validate_utf16le_basic_tests.cpp +0 -268
  676. package/deps/simdutf/tests/validate_utf16le_with_errors_tests.cpp +0 -274
  677. package/deps/simdutf/tests/validate_utf32_basic_tests.cpp +0 -92
  678. package/deps/simdutf/tests/validate_utf32_with_errors_tests.cpp +0 -114
  679. package/deps/simdutf/tests/validate_utf8_basic_tests.cpp +0 -178
  680. package/deps/simdutf/tests/validate_utf8_brute_force_tests.cpp +0 -88
  681. package/deps/simdutf/tests/validate_utf8_puzzler_tests.cpp +0 -33
  682. package/deps/simdutf/tests/validate_utf8_with_errors_tests.cpp +0 -228
  683. package/deps/simdutf/tools/CMakeLists.txt +0 -85
  684. package/deps/simdutf/tools/fastbase64.cpp +0 -250
  685. package/deps/simdutf/tools/sutf.cpp +0 -556
  686. package/deps/simdutf/tools/sutf.h +0 -40
  687. package/lib/tsconfig.tsbuildinfo +0 -1
@@ -1,2845 +0,0 @@
1
- #include "simdutf.h"
2
-
3
- #if SIMDUTF_CPLUSPLUS20
4
- #include <barrier>
5
- #endif
6
- #include <iostream>
7
- #include <iomanip>
8
- #include <random>
9
- #include <thread>
10
- #include <vector>
11
-
12
- #include <tests/helpers/test.h>
13
- using random_generator = std::mt19937;
14
- static random_generator::result_type seed = 42;
15
- // check if we are running with thread sanitizer
16
- #if defined(__clang__)
17
- #if __has_feature(thread_sanitizer)
18
- #define RUNNING_UNDER_THREAD_SANITIZER 1
19
- #else
20
- #define RUNNING_UNDER_THREAD_SANITIZER 0
21
- #endif
22
- #elif defined(__GNUC__)
23
- #if defined(__SANITIZE_THREAD__)
24
- #define RUNNING_UNDER_THREAD_SANITIZER 1
25
- #else
26
- #define RUNNING_UNDER_THREAD_SANITIZER 0
27
- #endif
28
- #else
29
- #define RUNNING_UNDER_THREAD_SANITIZER 0
30
- #endif
31
-
32
- #if !defined(SIMDUTF_NO_THREADS) && SIMDUTF_ATOMIC_REF && SIMDUTF_SPAN
33
-
34
- TEST(issue_824) {
35
- struct read_write {
36
- size_t read;
37
- size_t written;
38
- };
39
- std::vector<std::tuple<std::string, read_write, std::vector<char>>>
40
- test_cases = {
41
- {" ", {2, 0}, {}}, // return the entire input length, including
42
- // trailing whitespace.
43
- {" A A G A / v 8 ",
44
- {8, 3},
45
- {0, 1, char(128)}} // return the ending position of the previous
46
- // chunk before skipping whitespace.
47
- };
48
- std::vector<unsigned char> case1(5463, 0x20);
49
- case1.back() = 0x38;
50
- test_cases.emplace_back(std::string(case1.begin(), case1.end()),
51
- read_write{0, 0}, std::vector<char>{});
52
- std::string long_input(1000, ' ');
53
- test_cases.emplace_back(long_input, read_write{1000, 0}, std::vector<char>{});
54
- test_cases.emplace_back(long_input + " A A G A / v 8 ",
55
- read_write{1000 + 8, 3},
56
- std::vector<char>{0, 1, char(128)});
57
- test_cases.emplace_back(long_input + "A", read_write{0, 0},
58
- std::vector<char>{});
59
- test_cases.emplace_back("AAAA" + long_input + "A", read_write{4, 3},
60
- std::vector<char>{0, 0, 0});
61
-
62
- for (const std::tuple<std::string, read_write, std::vector<char>> &t :
63
- test_cases) {
64
- auto input_data = std::get<0>(t);
65
- auto read_write_info = std::get<1>(t);
66
- auto expected_output = std::get<2>(t);
67
- std::vector<char> output_buffer(
68
- implementation.maximal_binary_length_from_base64(input_data.data(),
69
- input_data.size()));
70
- size_t written = output_buffer.size();
71
- const auto r = simdutf::atomic_base64_to_binary_safe(
72
- input_data.data(), input_data.size(), output_buffer.data(), written,
73
- simdutf::base64_default,
74
- simdutf::last_chunk_handling_options::stop_before_partial, true);
75
- ASSERT_EQUAL(r.error, simdutf::error_code::SUCCESS);
76
- ASSERT_EQUAL(r.count, read_write_info.read);
77
- ASSERT_EQUAL(written, expected_output.size());
78
- output_buffer.resize(written);
79
- ASSERT_TRUE(output_buffer == expected_output);
80
- }
81
- for (const std::tuple<std::string, read_write, std::vector<char>> &t :
82
- test_cases) {
83
- auto input_data = std::get<0>(t);
84
- auto read_write_info = std::get<1>(t);
85
- auto expected_output = std::get<2>(t);
86
- std::vector<char> output_buffer(expected_output.size(),
87
- 0); // we know the size of the output
88
- size_t written = output_buffer.size();
89
- const auto r = simdutf::atomic_base64_to_binary_safe(
90
- input_data.data(), input_data.size(), output_buffer.data(), written,
91
- simdutf::base64_default,
92
- simdutf::last_chunk_handling_options::stop_before_partial, true);
93
- ASSERT_EQUAL(r.error, simdutf::error_code::SUCCESS);
94
- ASSERT_EQUAL(r.count, read_write_info.read);
95
- ASSERT_EQUAL(written, expected_output.size());
96
- output_buffer.resize(written);
97
- ASSERT_TRUE(output_buffer == expected_output);
98
- }
99
- }
100
-
101
- TEST(atomic_roundtrip_base64) {
102
- for (size_t len = 0; len < 2048; len++) {
103
- std::vector<char> source(len, 0);
104
- std::vector<char> buffer;
105
- buffer.resize(simdutf::base64_length_from_binary(len));
106
- std::vector<char> back(len);
107
- std::mt19937 gen((std::mt19937::result_type)(seed));
108
- std::uniform_int_distribution<int> byte_generator{0, 255};
109
- for (size_t trial = 0; trial < 10; trial++) {
110
- for (size_t i = 0; i < len; i++) {
111
- source[i] = byte_generator(gen);
112
- }
113
- size_t size = simdutf::atomic_binary_to_base64(
114
- source.data(), source.size(), buffer.data());
115
- ASSERT_EQUAL(size, simdutf::base64_length_from_binary(len));
116
- simdutf::result r =
117
- implementation.base64_to_binary(buffer.data(), size, back.data());
118
- ASSERT_EQUAL(r.error, simdutf::error_code::SUCCESS);
119
- ASSERT_EQUAL(r.count, len);
120
- if (back != source) {
121
- printf("=====input size %zu\n", len);
122
- for (size_t i = 0; i < len; i++) {
123
- if (back[i] != source[i]) {
124
- printf("Mismatch at position %zu trial %zu\n", i, trial);
125
- }
126
- printf("%zu: %02x %02x\n", i, uint8_t(back[i]), uint8_t(source[i]));
127
- }
128
- printf("=====base64 size %zu\n", size);
129
- for (size_t i = 0; i < size; i++) {
130
- printf("%zu: %02x %c\n", i, uint8_t(buffer[i]), buffer[i]);
131
- }
132
- }
133
- ASSERT_TRUE(back == source);
134
- back.assign(len, 0);
135
- size_t written_out = back.size();
136
- r = simdutf::atomic_base64_to_binary_safe(buffer.data(), size,
137
- back.data(), written_out);
138
- ASSERT_EQUAL(r.error, simdutf::error_code::SUCCESS);
139
- ASSERT_EQUAL(r.count, size);
140
- ASSERT_EQUAL(written_out, len);
141
- if (back != source) {
142
- printf("=====input size %zu\n", len);
143
- for (size_t i = 0; i < len; i++) {
144
- if (back[i] != source[i]) {
145
- printf("Mismatch at position %zu trial %zu\n", i, trial);
146
- }
147
- printf("%zu: %02x %02x\n", i, uint8_t(back[i]), uint8_t(source[i]));
148
- }
149
- printf("=====base64 size %zu\n", size);
150
- for (size_t i = 0; i < size; i++) {
151
- printf("%zu: %02x %c\n", i, uint8_t(buffer[i]), buffer[i]);
152
- }
153
- }
154
- ASSERT_TRUE(back == source);
155
- }
156
- }
157
- }
158
-
159
- TEST(atomic_binary_to_base64_large_roundtrip) {
160
- const std::vector<char> binary(10000, '\0');
161
- std::string b64output(binary.size() * 4 / 3 + 4, '\0');
162
- const auto ret = simdutf::atomic_binary_to_base64(binary, b64output);
163
- ASSERT_TRUE(ret > 0);
164
- b64output.resize(ret);
165
- std::vector<char> recovered(binary.size(), '?');
166
- std::size_t outlen = recovered.size();
167
- const auto ret2 = simdutf::atomic_base64_to_binary_safe(
168
- b64output.data(), b64output.size(), recovered.data(), outlen);
169
- ASSERT_EQUAL(ret2.error, simdutf::SUCCESS);
170
- ASSERT_EQUAL(recovered, binary);
171
- }
172
-
173
- TEST(atomic_span_roundtrip_base64) {
174
- for (size_t len = 0; len < 2048; len++) {
175
- std::vector<char> source(len, 0);
176
- std::vector<char> buffer;
177
- buffer.resize(simdutf::base64_length_from_binary(len));
178
- std::vector<char> back(len);
179
- std::mt19937 gen((std::mt19937::result_type)(seed));
180
- std::uniform_int_distribution<int> byte_generator{0, 255};
181
- for (size_t trial = 0; trial < 10; trial++) {
182
- for (size_t i = 0; i < len; i++) {
183
- source[i] = byte_generator(gen);
184
- }
185
- size_t size = simdutf::atomic_binary_to_base64(source, buffer);
186
- ASSERT_EQUAL(size, simdutf::base64_length_from_binary(len));
187
- simdutf::result r =
188
- implementation.base64_to_binary(buffer.data(), size, back.data());
189
- ASSERT_EQUAL(r.error, simdutf::error_code::SUCCESS);
190
- ASSERT_EQUAL(r.count, len);
191
- if (back != source) {
192
- printf("=====input size %zu\n", len);
193
- for (size_t i = 0; i < len; i++) {
194
- if (back[i] != source[i]) {
195
- printf("Mismatch at position %zu trial %zu\n", i, trial);
196
- }
197
- printf("%zu: %02x %02x\n", i, uint8_t(back[i]), uint8_t(source[i]));
198
- }
199
- printf("=====base64 size %zu\n", size);
200
- for (size_t i = 0; i < size; i++) {
201
- printf("%zu: %02x %c\n", i, uint8_t(buffer[i]), buffer[i]);
202
- }
203
- }
204
- ASSERT_TRUE(back == source);
205
- }
206
- }
207
- }
208
- void compare_decode(
209
- const auto &b64_input, const std::size_t decodesize,
210
- const simdutf::base64_options options,
211
- const simdutf::last_chunk_handling_options last_chunk_options,
212
- const bool decode_up_to_bad_char) {
213
- const auto s = [&]() {
214
- if constexpr (sizeof(b64_input[0]) == 1) {
215
- return std::span<const char>(
216
- reinterpret_cast<const char *>(b64_input.data()), b64_input.size());
217
- } else {
218
- return std::span<const char16_t>(
219
- reinterpret_cast<const char16_t *>(b64_input.data()),
220
- b64_input.size());
221
- }
222
- }();
223
- std::vector<char> outbuf1(decodesize);
224
- std::size_t outlen1 = outbuf1.size();
225
- const auto r1 = simdutf::base64_to_binary_safe(
226
- s.data(), s.size(), outbuf1.data(), outlen1, options, last_chunk_options,
227
- decode_up_to_bad_char);
228
- // ensure that the output is zeroed out
229
- for (std::size_t i = outlen1; i < decodesize; ++i) {
230
- ASSERT_EQUAL(uint8_t(outbuf1.at(i)), 0);
231
- }
232
- std::vector<char> outbuf2(decodesize);
233
- const auto [r2, outlen2] = simdutf::atomic_base64_to_binary_safe(
234
- s, outbuf2, options, last_chunk_options, decode_up_to_bad_char);
235
- for (std::size_t i = outlen2; i < decodesize; ++i) {
236
- ASSERT_EQUAL(uint8_t(outbuf2.at(i)), 0);
237
- }
238
- // both must agree on the kind of error: we do not guarantee that they
239
- // agree on the error code unless decode_up_to_bad_char is set to true
240
- if (decode_up_to_bad_char) {
241
- ASSERT_EQUAL(r1.error, r2.error);
242
- } else {
243
- ASSERT_EQUAL(r1.error == simdutf::error_code::SUCCESS,
244
- r2.error == simdutf::error_code::SUCCESS);
245
- }
246
-
247
- // on success, must agree on the output
248
- if (r1.error == simdutf::error_code::SUCCESS) {
249
- ASSERT_EQUAL(outlen1, outlen2);
250
- ASSERT_EQUAL(r1.count, r2.count);
251
- for (std::size_t i = 0; i < outlen1; ++i) {
252
- ASSERT_EQUAL(+outbuf1.at(i), +outbuf2.at(i));
253
- }
254
- // ensure also that the remainder of the output is equal
255
- for (std::size_t i = outlen1; i < decodesize; ++i) {
256
- ASSERT_EQUAL(+outbuf1.at(i), +outbuf2.at(i));
257
- }
258
- }
259
- }
260
-
261
- template <typename T> std::string get_code(T c) {
262
- static_assert(std::is_same_v<T, char> || std::is_same_v<T, char16_t>,
263
- "T must be char or char16_t");
264
-
265
- using output_type =
266
- std::conditional_t<std::is_same_v<T, char>, uint8_t, uint16_t>;
267
- auto value = static_cast<output_type>(c);
268
- if (c == '\n') {
269
- return "'\\n'";
270
- } else if (c == '\r') {
271
- return "'\\r'";
272
- } else if (c == '\t') {
273
- return "'\\t'";
274
- } else if (c == '\f') {
275
- return "'\\f'";
276
- } else if (c == '\\') {
277
- return "'\\\\'";
278
- } else if (value >= 32 && value <= 126) { // Printable ASCII range
279
- return "'" + std::string(1, static_cast<char>(value)) + "'";
280
- } else {
281
- std::ostringstream oss;
282
- oss << "'" << (std::is_same_v<T, char> ? "\\x" : "\\u") << std::hex
283
- << std::setw(std::is_same_v<T, char> ? 2 : 4) << std::setfill('0')
284
- << static_cast<unsigned>(value) << "'";
285
- return oss.str();
286
- }
287
- }
288
-
289
- [[nodiscard]] std::uint64_t compute_hash(const auto &data) noexcept {
290
- constexpr std::uint64_t fnv_prime = 1099511628211ULL;
291
- constexpr std::uint64_t fnv_offset = 14695981039346656037ULL;
292
-
293
- std::uint64_t hash = fnv_offset;
294
- for (const auto &item : data) {
295
- hash ^= static_cast<std::uint64_t>(item);
296
- hash *= fnv_prime;
297
- }
298
- return hash;
299
- }
300
-
301
- // For debugging purposes, we want to see a careful comparison of the
302
- // output of the two implementations.
303
- bool compare_decode_verbose(
304
- const auto &b64_input, const std::size_t decodesize,
305
- const simdutf::base64_options options,
306
- const simdutf::last_chunk_handling_options last_chunk_options,
307
- const bool decode_up_to_bad_char) {
308
- std::cerr << "// input size: " << b64_input.size() << "\n";
309
- std::cerr << "// decode buffer size: " << decodesize << "\n";
310
- std::cerr << "// options: " << options << "\n";
311
- std::cerr << "// last chunk options: " << last_chunk_options << "\n";
312
- std::cerr << "// decode up to bad char: " << decode_up_to_bad_char << "\n";
313
- std::cerr << "// hash: " << compute_hash(b64_input) << "\n";
314
- std::cerr << "// implementation tested: "
315
- << simdutf::get_active_implementation()->name() << "\n";
316
- std::cerr << "// ";
317
- for (std::size_t i = 0; i < b64_input.size(); ++i) {
318
- std::cerr << uint64_t(b64_input[i]) << ", ";
319
- if ((i + 1) % 16 == 0) {
320
- std::cerr << "\n";
321
- std::cerr << "// ";
322
- }
323
- }
324
- std::cerr << "\n";
325
- #if FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
326
- std::cerr << "// fuzzing build mode: unsafe for production\n";
327
- #else
328
- std::cerr << "// fuzzing build mode: DISABLED, try enabling it when working "
329
- "with fuzzers\n";
330
- #endif
331
- const auto s = [&]() {
332
- if constexpr (sizeof(b64_input[0]) == 1) {
333
- return std::span<const char>(
334
- reinterpret_cast<const char *>(b64_input.data()), b64_input.size());
335
- } else {
336
- return std::span<const char16_t>(
337
- reinterpret_cast<const char16_t *>(b64_input.data()),
338
- b64_input.size());
339
- }
340
- }();
341
-
342
- {
343
- // We are going to compute the 'true' answer.
344
- std::vector<char> largebuffer(s.size());
345
- simdutf::full_result tr =
346
- simdutf::get_active_implementation()->base64_to_binary_details(
347
- s.data(), s.size(), largebuffer.data(), options,
348
- last_chunk_options);
349
- std::cerr << "// 'correct' output " << tr.output_count << " bytes\n";
350
- std::cerr << "// 'correct' consumes " << tr.input_count << " characters\n";
351
- std::cerr << "// 'correct' has error " << tr.error << "\n";
352
- }
353
-
354
- std::vector<char> outbuf1(decodesize);
355
- std::size_t outlen1 = outbuf1.size();
356
- const auto r1 = simdutf::base64_to_binary_safe(
357
- s.data(), s.size(), outbuf1.data(), outlen1, options, last_chunk_options,
358
- decode_up_to_bad_char);
359
- // Check that the output is zeroed out
360
- for (std::size_t i = outlen1; i < decodesize; ++i) {
361
- if (uint8_t(outbuf1.at(i)) != 0) {
362
- return false;
363
- }
364
- }
365
- std::cerr << "// regular safe produces " << outlen1 << " bytes\n";
366
- std::cerr << "// regular safe consumes " << r1.count << " characters\n";
367
- std::cerr << "// regular has error " << r1.error << "\n";
368
- if (r1.error == simdutf::error_code::INVALID_BASE64_CHARACTER) {
369
- std::cerr << "// regular has error INVALID_BASE64_CHARACTER\n";
370
- if (r1.count < s.size()) {
371
- std::cerr << "// at character " << get_code(s[r1.count]) << "\n";
372
- }
373
- }
374
- if (r1.error == simdutf::error_code::BASE64_INPUT_REMAINDER) {
375
- std::cerr << "// regular has error BASE64_INPUT_REMAINDER\n";
376
- }
377
- if (r1.error == simdutf::error_code::OUTPUT_BUFFER_TOO_SMALL) {
378
- std::cerr << "// regular has error OUTPUT_BUFFER_TOO_SMALL\n";
379
- }
380
- if (r1.error == simdutf::error_code::SUCCESS) {
381
- std::cerr << "// regular has error SUCCESS\n";
382
- }
383
- std::vector<char> outbuf2(decodesize);
384
- const auto [r2, outlen2] = simdutf::atomic_base64_to_binary_safe(
385
- s, outbuf2, options, last_chunk_options, decode_up_to_bad_char);
386
- for (std::size_t i = outlen2; i < decodesize; ++i) {
387
- if (uint8_t(outbuf2.at(i)) != 0) {
388
- return false;
389
- }
390
- }
391
- std::cerr << "// atomic produces " << outlen2 << " bytes\n";
392
- std::cerr << "// atomic consumes " << r2.count << " characters\n";
393
- std::cerr << "// atomic has error " << r2.error << "\n";
394
- if (r2.error == simdutf::error_code::INVALID_BASE64_CHARACTER) {
395
- std::cerr << "// atomic has error INVALID_BASE64_CHARACTER\n";
396
- if (r2.count < s.size()) {
397
- std::cerr << "// at character " << get_code(s[r2.count]) << "\n";
398
- }
399
- }
400
- if (r2.error == simdutf::error_code::BASE64_INPUT_REMAINDER) {
401
- std::cerr << "// atomic has error BASE64_INPUT_REMAINDER\n";
402
- }
403
- if (r2.error == simdutf::error_code::OUTPUT_BUFFER_TOO_SMALL) {
404
- std::cerr << "// atomic has error OUTPUT_BUFFER_TOO_SMALL\n";
405
- }
406
- if (r2.error == simdutf::error_code::SUCCESS) {
407
- std::cerr << "// atomic has error SUCCESS\n";
408
- }
409
-
410
- // Both must agree on the kind of error
411
- if (decode_up_to_bad_char) {
412
- if (r1.error != r2.error) {
413
- return false;
414
- }
415
- } else {
416
- if ((r1.error == simdutf::error_code::SUCCESS) !=
417
- (r2.error == simdutf::error_code::SUCCESS)) {
418
- return false;
419
- }
420
- }
421
-
422
- // On success, must agree on the output
423
- if (r1.error == simdutf::error_code::SUCCESS) {
424
- if (outlen1 != outlen2 || r1.count != r2.count) {
425
- return false;
426
- }
427
- for (std::size_t i = 0; i < outlen1; ++i) {
428
- if (+outbuf1.at(i) != +outbuf2.at(i)) {
429
- return false;
430
- }
431
- }
432
- // Ensure remainder of the output is equal
433
- for (std::size_t i = outlen1; i < decodesize; ++i) {
434
- if (+outbuf1.at(i) != +outbuf2.at(i)) {
435
- return false;
436
- }
437
- }
438
- }
439
- return true;
440
- }
441
-
442
- TEST(issue_dash) {
443
- const std::string input = "Iw==";
444
- std::vector<char> back(1);
445
- size_t len = back.size();
446
- auto r = simdutf::atomic_base64_to_binary_safe(input.data(), input.size(),
447
- back.data(), len);
448
- ASSERT_EQUAL(r.error, simdutf::error_code::SUCCESS);
449
- ASSERT_EQUAL(r.count, 4);
450
- ASSERT_EQUAL(len, 1);
451
- ASSERT_EQUAL(back[0], '#');
452
- }
453
-
454
- TEST(issue_dash_partial) {
455
- const std::string input = "Iw==";
456
- std::vector<char> back(1);
457
- size_t len = back.size();
458
- auto r = simdutf::atomic_base64_to_binary_safe(
459
- input.data(), input.size(), back.data(), len, simdutf::base64_url,
460
- simdutf::last_chunk_handling_options::stop_before_partial);
461
- ASSERT_EQUAL(r.error, simdutf::error_code::SUCCESS);
462
- ASSERT_EQUAL(r.count, 4);
463
- ASSERT_EQUAL(len, 1);
464
- ASSERT_EQUAL(back[0], '#');
465
- }
466
-
467
- TEST(issue_202505170242) {
468
- const std::vector<char> base64{
469
- '\f', '\n', '=', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',
470
- ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',
471
- ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',
472
- ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '=', ' ', ' ', ' ', ' ', ' ',
473
- ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',
474
- ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',
475
- ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',
476
- ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',
477
- ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',
478
- ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',
479
- ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',
480
- ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',
481
- ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',
482
- };
483
- compare_decode(base64, 62976, simdutf::base64_url_with_padding,
484
- simdutf::last_chunk_handling_options::strict, true);
485
- ASSERT_TRUE(compare_decode_verbose(
486
- base64, 62976, simdutf::base64_url_with_padding,
487
- simdutf::last_chunk_handling_options::strict, true));
488
- };
489
-
490
- TEST(issue_202505170245) {
491
- const std::vector<char> base64{
492
- '\r', '\t', '\t', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f',
493
- '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f',
494
- '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f',
495
- '\f', '\f', '\f', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',
496
- ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',
497
- 'C', '0', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',
498
- ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',
499
- ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',
500
- ' ', 'C', '0', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '1', ' ',
501
- ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '0',
502
- ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',
503
- ' ', ' ', ' ', ' ', ' ', ' ', ' ', '5', ' ', ' ', ' ', ' ',
504
- ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '0', ' ', ' ',
505
- ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '\f',
506
- '\f', '\f', ' ', '\n', '\n', '\n', '=',
507
- };
508
- ASSERT_TRUE(compare_decode_verbose(
509
- base64, 8236, simdutf::base64_default,
510
- simdutf::last_chunk_handling_options::strict, true));
511
- compare_decode(base64, 8236, simdutf::base64_default,
512
- simdutf::last_chunk_handling_options::strict, true);
513
- };
514
-
515
- TEST(issue_202505170241) {
516
- const std::vector<char> base64{
517
- 'c', 'c', 'c', '\t', '=', '\n', '\r', '\n', '\f', '\f', '\f', '\f',
518
- '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f',
519
- '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f',
520
- '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f',
521
- '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f',
522
- '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f',
523
- '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f',
524
- '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f',
525
- '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f',
526
- '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f',
527
- '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f',
528
- '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f',
529
- '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f',
530
- '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f',
531
- '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f',
532
- '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '=',
533
- };
534
- ASSERT_TRUE(compare_decode_verbose(
535
- base64, 2621, simdutf::base64_url_with_padding,
536
- simdutf::last_chunk_handling_options::stop_before_partial, true));
537
- compare_decode(base64, 2621, simdutf::base64_url_with_padding,
538
- simdutf::last_chunk_handling_options::stop_before_partial,
539
- true);
540
- };
541
-
542
- TEST(issue_202505170219) {
543
- const std::vector<char> base64{
544
- '\r', 'c', 'c', 'c', '\f', '\f', '\f', '-', '\f', '\f', '\f', '\f',
545
- '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\n', '\n', '\n', '\n',
546
- '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n',
547
- '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n',
548
- '\n', '\n', '\n', 'y', 'i', 'y', 'y', 'y', 'y', 'y', 'y', 'y',
549
- 'y', 'y', 'y', 'y', 'y', 'y', 'x', 'y', 'y', 'y', 'y', '\t',
550
- 'D', 'y', 'i', 'y', 'D', 'D', 'y', 'y', 'y', 'y', 'y', 'x',
551
- 'y', 'y', '\t', 'D', '\t', 'y', 'y', 'y', 'y', 'y', 'y', 'y',
552
- 'y', 'i', 'y', 'y', 'y', 'y', 'y', 'y', 'y', '\n', '\n', '\n',
553
- '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n',
554
- '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n',
555
- '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n',
556
- '\n', '\n', '\n', '\n', '\f', '\f', '\f', '\f', '\f', '\f', '\t', '=',
557
- '\t', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\f', '\f', '\f', '\f',
558
- '\f', '\f', '\f', '\t', '=', '\t',
559
- };
560
- compare_decode(base64, 2621, simdutf::base64_url_with_padding,
561
- simdutf::last_chunk_handling_options::stop_before_partial,
562
- true);
563
- ASSERT_TRUE(compare_decode_verbose(
564
- base64, 2621, simdutf::base64_url_with_padding,
565
- simdutf::last_chunk_handling_options::stop_before_partial, true));
566
- };
567
-
568
- TEST(issue_202505170211) {
569
- const std::vector<char> base64{
570
- 'i', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y',
571
- 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y',
572
- 'y', 'y', 'y', 'y', 'i', 'y', 'y', 'y', 'y', 'y', 'y', 'y',
573
- 'y', 'y', 'y', 'y', 'y', 'y', 'x', 'y', 'y', 'y', 'y', '\t',
574
- 'D', 'y', 'i', 'y', 'D', 'D', 'y', 'y', 'y', 'y', 'y', 'x',
575
- 'y', 'y', '\t', 'D', '\t', 'y', 'y', 'y', 'y', 'y', 'y', 'y',
576
- 'y', 'i', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y',
577
- 'y', 'y', 'y', 'x', 'y', 'y', 'y', 'y', '\t', 'D', 'y', 'y',
578
- 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'k', 'y', 'y', 'y',
579
- 'y', 'i', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y',
580
- 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y',
581
- 'y', 'y', 'y', 'y', 'y', 'i', 'y', 'y', 'y', 'y', 'y', 'y',
582
- 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'k', 'y', 'y', 'y', 'y',
583
- 'i', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y',
584
- 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y',
585
- 'y', 'y', 'y', 'y', 'i', 'y', 'y', 'y', 'y', 'y', 'y', 'y',
586
- 'y', 'y', 'y', 'y', 'y', 'y', 'y', '\t', 'D', 'D', 'y', 'y',
587
- 'y', 'y', 'y', 'y', 'y', 'x', 'y', 'y', 'y', 'y', '\f', '\f',
588
- '\f', '\f', '\f', '\f', 'y', 'y', 'k', 'y', 'y', 'y', 'y', 'y',
589
- 'y', 'y', 'y', 'y', 'y', 'y', 'i', 'y', 'y', 'y', 'y', 'y',
590
- 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'D', '\f', '\f',
591
- '\f', '\f', '\f', '\f', '\f', '\f', '\f', 'D', 'y', 'y', 'y', 'y',
592
- 'y', 'y', 'y', 'x', 'y', 'y', 'y', 'y', 'y', 'y', 'y', '\f',
593
- '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f',
594
- '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', 'y',
595
- 'y', 'y', 'y', 'y', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f',
596
- '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f',
597
- '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f',
598
- '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f',
599
- '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f',
600
- '=',
601
- };
602
- compare_decode(base64, 31097, simdutf::base64_url_with_padding,
603
- simdutf::last_chunk_handling_options::strict, true);
604
- ASSERT_TRUE(compare_decode_verbose(
605
- base64, 31097, simdutf::base64_url_with_padding,
606
- simdutf::last_chunk_handling_options::strict, true));
607
- };
608
-
609
- TEST(issue_202505170137) {
610
- const std::vector<char> base64{
611
- '\r', 'c', 'c', 'c', '\f', '\f', '\f', '\f', '\f', 'p', 'C', '\n',
612
- '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n',
613
- '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', 'C', 'C', 'C',
614
- 'C', 'C', 'C', '1', 'C', 'C', 'C', 'C', 'C', 'C', 'C', 'C',
615
- 'C', 'C', 'C', 'C', 'C', 'C', 'C', 'C', 'C', 'C', 'C', 'C',
616
- 'C', 'C', 'C', 'C', 'C', 'C', 'C', 'C', '\n', '\n', '\n', '\n',
617
- '\n', '\n', '\n', '\n', 'C', 'C', 'C', 'C', 'C', 'C', 'C', 'C',
618
- 'C', 'C', 'C', 'C', 'C', 'C', 'C', 'C', 'C', 'C', 'C', 'C',
619
- 'C', 'C', '_', 'C', 'C', 'C', 'r', 'r', 'r', 'r', '\f', '\f',
620
- '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\n', '\n',
621
- '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n',
622
- '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n', '\n',
623
- '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f',
624
- '\f', '\f', '\f', '\f', '\f', '\f', '1', '\f', '\f', '\t', '=', '\t',
625
- '\f', '\n', '\f', '\f', '\f', '\n', '=',
626
- };
627
- compare_decode(base64, 2621, simdutf::base64_url_with_padding,
628
- simdutf::last_chunk_handling_options::stop_before_partial,
629
- true);
630
- ASSERT_TRUE(compare_decode_verbose(
631
- base64, 2621, simdutf::base64_url_with_padding,
632
- simdutf::last_chunk_handling_options::stop_before_partial, true));
633
- };
634
-
635
- TEST(issue_202505170122) {
636
- const std::vector<char> base64{
637
- 'i', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y',
638
- 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y',
639
- 'y', 'y', 'y', 'y', 'i', 'y', 'y', 'y', 'y', 'y', 'y', 'y',
640
- 'y', 'y', 'y', 'y', 'y', 'y', 'x', 'y', 'y', 'y', 'y', '\t',
641
- 'D', 'y', 'i', 'y', 'D', 'D', 'y', 'y', 'y', 'y', 'y', 'x',
642
- 'y', 'y', '\t', 'D', '\t', 'y', 'y', 'y', 'y', 'y', 'y', 'y',
643
- 'y', 'i', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y',
644
- 'y', 'y', 'y', 'x', 'y', 'y', 'y', 'y', '\t', 'D', 'y', 'y',
645
- 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'k', 'y', 'y', 'y',
646
- 'y', 'i', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y',
647
- 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y',
648
- 'y', 'y', 'y', 'y', 'y', 'i', 'y', 'y', 'y', 'y', 'y', 'y',
649
- 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', '\t', 'D', 'D', 'y',
650
- 'y', 'y', 'y', 'y', 'y', 'y', 'x', 'y', 'y', 'y', 'y', '\f',
651
- '\f', '\f', '\f', '\f', '\f', 'y', 'y', 'k', 'y', 'y', 'y', 'y',
652
- 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'i', 'y', 'y', 'y', 'y',
653
- 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'D', '\f',
654
- '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', 'D', 'y', 'y', 'y',
655
- 'y', 'y', 'y', 'y', 'x', 'y', 'y', 'y', 'y', 'y', 'y', 'y',
656
- '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f',
657
- '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f',
658
- 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'i', 'y', 'y', 'y',
659
- 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'x', 'y',
660
- 'Y', 'y', 'D', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f',
661
- 'D', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'x', 'y', 'y', 'y',
662
- 'y', 'y', 'y', 'y', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f',
663
- '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f',
664
- '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f',
665
- '\f', 'z', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f',
666
- '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f', '\f',
667
- '\f', '=',
668
- };
669
- compare_decode(base64, 31097, simdutf::base64_url_with_padding,
670
- simdutf::last_chunk_handling_options::strict, true);
671
-
672
- ASSERT_TRUE(compare_decode_verbose(
673
- base64, 31097, simdutf::base64_url_with_padding,
674
- simdutf::last_chunk_handling_options::strict, true));
675
- };
676
-
677
- TEST(issue_202505170003) {
678
- // input:
679
- // _ccc_____pC__________________J___CCCCCC1CCCCCCCCCCCCCCCCCCCCCCCCCCCC_________CCCCCCCCCCCCCCCCCCCCCCCCCrrrr_____________________
680
- // ___________________________________1___=_______=
681
- // count=175
682
- const std::vector<unsigned char> base64{
683
- 0x0d, 0x63, 0x63, 0x63, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x70, 0x43, 0x0a,
684
- 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a,
685
- 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x4a, 0x0a, 0x0a, 0x0a, 0x43, 0x43, 0x43,
686
- 0x43, 0x43, 0x43, 0x31, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43,
687
- 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43,
688
- 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x0a, 0x0a, 0x0a, 0x0a,
689
- 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43,
690
- 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43,
691
- 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x72, 0x72, 0x72, 0x72, 0x0c, 0x0c,
692
- 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0a, 0x0a,
693
- 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a,
694
- 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a,
695
- 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c,
696
- 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x31, 0x0c, 0x0c, 0x09, 0x3d, 0x09,
697
- 0x0c, 0x0a, 0x0c, 0x0c, 0x0c, 0x0a, 0x3d,
698
- };
699
- compare_decode(base64, 2621, simdutf::base64_url_with_padding,
700
- simdutf::last_chunk_handling_options::stop_before_partial,
701
- true);
702
- };
703
- TEST(issue_16_05_2025_002) {
704
- const std::vector<unsigned char> base64{
705
- 0x0d, 0x63, 0x63, 0x63, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x70, 0x43, 0x0a,
706
- 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a,
707
- 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x43, 0x43, 0x43,
708
- 0x43, 0x43, 0x43, 0x31, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43,
709
- 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43,
710
- 0x43, 0x43, 0x79, 0x78, 0x6b, 0x42, 0x09, 0x44, 0x09, 0x44, 0x44, 0x79,
711
- 0x79, 0x79, 0x79, 0x79, 0x79, 0x78, 0x79, 0x79, 0x09, 0x44, 0x09, 0x44,
712
- 0x44, 0x79, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43,
713
- 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x72, 0x72, 0x72, 0x72, 0x0c, 0x0c,
714
- 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0a, 0x0a,
715
- 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a,
716
- 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a,
717
- 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c,
718
- 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x31, 0x0c, 0x0c, 0x09, 0x3d, 0x09,
719
- 0x0c, 0x0a, 0x0c, 0x0c, 0x0c, 0x0a, 0x3d,
720
- };
721
- compare_decode(base64, 2621, simdutf::base64_url_with_padding,
722
- simdutf::last_chunk_handling_options::stop_before_partial,
723
- true);
724
- };
725
-
726
- TEST(issue_16_05_2025_001) {
727
- const std::vector<unsigned char> base64{
728
- 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09,
729
- 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09,
730
- 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09,
731
- 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09,
732
- 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09,
733
- 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09,
734
- 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09,
735
- 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09,
736
- 0x4c, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09,
737
- 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x3d, 0x09, 0x09, 0x09,
738
- 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x0d, 0x09,
739
- 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09,
740
- 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09,
741
- 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09,
742
- 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09,
743
- 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0xa6, 0xa6, 0xa6,
744
- 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0x8c, 0xa6, 0xa6, 0xa6,
745
- 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0x33, 0xff, 0x32, 0xff, 0x32, 0x7a,
746
- 0x3d,
747
- };
748
- compare_decode(base64, 42662, simdutf::base64_default_no_padding,
749
- simdutf::last_chunk_handling_options::loose, false);
750
- };
751
-
752
- TEST(issue_06_05_2025_001) {
753
- const std::vector<unsigned char> base64{
754
- 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f,
755
- 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f,
756
- 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f,
757
- 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f,
758
- 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f,
759
- 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f,
760
- 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f,
761
- 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f,
762
- 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x0a, 0x0a,
763
- 0x0a, 0x6f, 0x6e, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f,
764
- 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71,
765
- 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x6f, 0x0a,
766
- 0x0a, 0x0a, 0x0a, 0x0a, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x0a,
767
- 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x4b, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a,
768
- 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a,
769
- };
770
- compare_decode(base64, 28426, simdutf::base64_default,
771
- simdutf::last_chunk_handling_options::stop_before_partial,
772
- true);
773
- };
774
-
775
- template <typename char_type>
776
- std::vector<char_type> add_simple_spaces(std::vector<char_type> &v,
777
- std::mt19937 &gen,
778
- size_t number_of_spaces) {
779
- // If there are no spaces to add or the vector is empty, return
780
- if (number_of_spaces == 0) {
781
- return v;
782
- }
783
-
784
- // Generate unique random positions
785
- std::vector<bool> positions(v.size() + number_of_spaces, false);
786
- std::uniform_int_distribution<size_t> dist(0, positions.size() - 1);
787
- for (size_t i = 0; i < number_of_spaces; ++i) {
788
- size_t pos = dist(gen);
789
- while (positions[pos]) {
790
- pos = dist(gen);
791
- }
792
- positions[pos] = true;
793
- }
794
- std::vector<char_type> result;
795
- result.resize(v.size() + number_of_spaces);
796
- int pos = 0;
797
- for (size_t i = 0; i < v.size() + number_of_spaces; ++i) {
798
- if (positions[i]) {
799
- result[i] = ' ';
800
- } else {
801
- result[i] = v[pos++];
802
- }
803
- }
804
- return result;
805
- }
806
-
807
- TEST(base64_with_spaces) {
808
- uint64_t seed = 0x12345678;
809
- for (size_t len = 0; len < 8000; len += 15) {
810
- std::vector<char> source(len, 0);
811
- std::vector<char> buffer;
812
- buffer.resize(simdutf::base64_length_from_binary(len));
813
- std::mt19937 gen((std::mt19937::result_type)(seed));
814
- std::uniform_int_distribution<int> byte_generator{0, 255};
815
- for (size_t trial = 0; trial < 20; trial++) {
816
- for (size_t i = 0; i < len; i++) {
817
- source[i] = 'a' + i % ('z' - 'a'); // byte_generator(gen);
818
- }
819
- size_t size = implementation.binary_to_base64(
820
- source.data(), source.size(), buffer.data());
821
- buffer.resize(size);
822
- add_simple_spaces(buffer, gen, 500);
823
- for (auto option :
824
- {simdutf::last_chunk_handling_options::strict,
825
- simdutf::last_chunk_handling_options::loose,
826
- simdutf::last_chunk_handling_options::stop_before_partial}) {
827
- compare_decode(buffer, len, simdutf::base64_default, option, false);
828
- compare_decode(buffer, len / 2, simdutf::base64_default, option, false);
829
- }
830
- }
831
- }
832
- }
833
-
834
- TEST(gets_different_error) {
835
- std::vector<unsigned char> base64(5463, 0x20);
836
- base64.back() = 0x38;
837
- compare_decode(base64, 8224, simdutf::base64_default,
838
- simdutf::last_chunk_handling_options::stop_before_partial,
839
- false);
840
- }
841
-
842
- // different error reported, INVALID_BASE64_CHARACTER=7 vs
843
- // BASE64_INPUT_REMAINDER=8
844
- TEST(gets_different_error2) {
845
- const std::vector<unsigned char> base64{
846
- 0x69, 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c,
847
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
848
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x69, 0x69, 0x69, 0x69,
849
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x61, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
850
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
851
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x49, 0x69,
852
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x20, 0x69, 0x69,
853
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x43, 0x69, 0x69,
854
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x20, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
855
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
856
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
857
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
858
- 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c, 0x4c,
859
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
860
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
861
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x69, 0x69, 0x20, 0x69, 0x69, 0x69, 0x69,
862
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
863
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
864
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
865
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
866
- 0x69, 0x49, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
867
- 0x20, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
868
- 0x43, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x20, 0x69, 0x69, 0x69,
869
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
870
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
871
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
872
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
873
- 0x69, 0x69, 0x69, 0x69, 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
874
- 0x69, 0x69, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x44, 0x4c,
875
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x69, 0x69, 0x69,
876
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
877
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
878
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
879
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
880
- 0x69, 0x69, 0x69, 0x49, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
881
- 0x69, 0x69, 0x20, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
882
- 0x69, 0x69, 0x43, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x20, 0x69,
883
- 0x31, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
884
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
885
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
886
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x30, 0x69, 0x69, 0x69, 0x69, 0x69,
887
- 0x69, 0x69, 0x69, 0x69, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
888
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
889
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x69,
890
- 0x69, 0x20, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
891
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
892
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
893
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
894
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x49, 0x69, 0x69, 0x69, 0x69,
895
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x20, 0x69, 0x69, 0x69, 0x69, 0x69,
896
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
897
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
898
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
899
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x49, 0x69, 0x69, 0x69, 0x69,
900
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x20, 0x69, 0x69, 0x69, 0x69, 0x69,
901
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x43, 0x69, 0x69, 0x69, 0x69, 0x69,
902
- 0x69, 0x69, 0x20, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
903
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
904
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
905
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x30, 0x69, 0x69,
906
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
907
- 0x4c, 0x4c, 0x4c, 0x44, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
908
- 0x4c, 0x4c, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
909
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
910
- 0x69, 0x69, 0x69, 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
911
- 0x69, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
912
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
913
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
914
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
915
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
916
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
917
- 0x69, 0x43, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x20, 0x69, 0x69,
918
- 0x69, 0x69, 0x69, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
919
- 0x4c, 0x69, 0x69, 0x20, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
920
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
921
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
922
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
923
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x49, 0x69, 0x69,
924
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x20, 0x69, 0x69, 0x69,
925
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
926
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
927
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
928
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x49, 0x69, 0x69,
929
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x20, 0x69, 0x69, 0x69,
930
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x43, 0x69, 0x69, 0x69,
931
- 0x69, 0x69, 0x69, 0x69, 0x20, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
932
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
933
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
934
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x30,
935
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c, 0x4c, 0x4c,
936
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x44, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
937
- 0x4c, 0x4c, 0x4c, 0x4c, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
938
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
939
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
940
- 0x69, 0x69, 0x69, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
941
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
942
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
943
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
944
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
945
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x69, 0x69, 0x69, 0x69, 0x69,
946
- 0x69, 0x69, 0x69, 0x43, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x20,
947
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
948
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
949
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
950
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x30, 0x69, 0x69, 0x69, 0x69, 0x69,
951
- 0x69, 0x69, 0x69, 0x69, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
952
- 0x44, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x69,
953
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
954
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
955
- 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c, 0x4c,
956
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
957
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
958
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
959
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
960
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
961
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
962
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
963
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
964
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
965
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
966
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x30, 0x69, 0x69, 0x69,
967
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
968
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
969
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
970
- 0x69, 0x69, 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
971
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
972
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
973
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x69, 0x69, 0x20, 0x69, 0x69,
974
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
975
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
976
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
977
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
978
- 0x69, 0x69, 0x69, 0x49, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
979
- 0x69, 0x69, 0x20, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
980
- 0x69, 0x69, 0x43, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x20, 0x69,
981
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
982
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
983
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
984
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
985
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
986
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
987
- 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c, 0x4c,
988
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
989
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
990
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
991
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
992
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
993
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
994
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
995
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
996
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x31, 0x69, 0x69, 0x69,
997
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
998
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
999
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1000
- 0x69, 0x69, 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1001
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1002
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1003
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x69, 0x69, 0x20, 0x69, 0x69,
1004
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1005
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1006
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1007
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1008
- 0x69, 0x69, 0x69, 0x49, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1009
- 0x69, 0x69, 0x20, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1010
- 0x69, 0x69, 0x43, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x20, 0x69,
1011
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1012
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1013
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1014
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1015
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1016
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1017
- 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c, 0x4c,
1018
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1019
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1020
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1021
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1022
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1023
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1024
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1025
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1026
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1027
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1028
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1029
- 0x69, 0x69, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1030
- 0x4c, 0x20, 0x20, 0x20, 0x20, 0x67, 0x67, 0x67, 0x20, 0x4c, 0x4c, 0x4c,
1031
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1032
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x69, 0x69, 0x69, 0x69, 0x69,
1033
- 0x69, 0x69, 0x69, 0x69, 0x61, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1034
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1035
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x49, 0x69, 0x69,
1036
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x20, 0x69, 0x69, 0x69,
1037
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x43, 0x69, 0x69, 0x69,
1038
- 0x69, 0x69, 0x69, 0x69, 0x20, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1039
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1040
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1041
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1042
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x49, 0x69, 0x69,
1043
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x20, 0x69, 0x69, 0x69,
1044
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x43, 0x69, 0x69, 0x69,
1045
- 0x69, 0x69, 0x69, 0x69, 0x20, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1046
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1047
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1048
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x30,
1049
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c, 0x4c, 0x4c,
1050
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1051
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1052
- 0x4c, 0x4c, 0x4c, 0x4c, 0x69, 0x69, 0x20, 0x69, 0x69, 0x69, 0x69, 0x69,
1053
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1054
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1055
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1056
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1057
- 0x49, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x20,
1058
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x43,
1059
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x20, 0x69, 0x69, 0x69, 0x69,
1060
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1061
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x43, 0x69, 0x69, 0x69, 0x69,
1062
- 0x69, 0x69, 0x69, 0x20, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1063
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1064
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1065
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x30, 0x69,
1066
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c, 0x4c, 0x4c, 0x4c,
1067
- 0x4c, 0x4c, 0x4c, 0x4c, 0x44, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1068
- 0x4c, 0x4c, 0x4c, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1069
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1070
- 0x69, 0x69, 0x69, 0x69, 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1071
- 0x69, 0x69, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1072
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x69,
1073
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x61, 0x69, 0x69, 0x69,
1074
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1075
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1076
- 0x69, 0x49, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1077
- 0x20, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1078
- 0x43, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x20, 0x69, 0x69, 0x69,
1079
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1080
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1081
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1082
- 0x69, 0x69, 0x69, 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1083
- 0x69, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1084
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1085
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x69, 0x69, 0x20, 0x69,
1086
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1087
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1088
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1089
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1090
- 0x69, 0x69, 0x69, 0x69, 0x49, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1091
- 0x69, 0x69, 0x69, 0x20, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1092
- 0x69, 0x69, 0x69, 0x43, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1093
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1094
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1095
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1096
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x30, 0x69, 0x69,
1097
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1098
- 0x4c, 0x4c, 0x4c, 0x44, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1099
- 0x4c, 0x4c, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1100
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1101
- 0x69, 0x69, 0x69, 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1102
- 0x69, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1103
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1104
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1105
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1106
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1107
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1108
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1109
- 0x4c, 0x4c, 0x4c, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1110
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1111
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1112
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x31,
1113
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1114
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1115
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1116
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1117
- 0x69, 0x69, 0x69, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1118
- 0x4c, 0x4c, 0x4c, 0x20, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1119
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x69, 0x69,
1120
- 0x20, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1121
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1122
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1123
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1124
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x49, 0x69, 0x69, 0x69, 0x69, 0x69,
1125
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x20, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1126
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x43, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1127
- 0x69, 0x20, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1128
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1129
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1130
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x30, 0x69, 0x69, 0x69,
1131
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1132
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1133
- 0x69, 0x69, 0x69, 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1134
- 0x69, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1135
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1136
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1137
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1138
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1139
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1140
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1141
- 0x4c, 0x4c, 0x4c, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1142
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x31,
1143
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1144
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1145
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1146
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1147
- 0x69, 0x69, 0x69, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1148
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1149
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x69, 0x69,
1150
- 0x20, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1151
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1152
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1153
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1154
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x49, 0x69, 0x69, 0x69, 0x69, 0x69,
1155
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x20, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1156
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x43, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1157
- 0x69, 0x20, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1158
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1159
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1160
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x30, 0x69, 0x69, 0x69,
1161
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1162
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1163
- 0x69, 0x69, 0x69, 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1164
- 0x69, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1165
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1166
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1167
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1168
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1169
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1170
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1171
- 0x4c, 0x4c, 0x4c, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1172
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1173
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1174
- 0x69, 0x69, 0x69, 0x49, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1175
- 0x69, 0x69, 0x20, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1176
- 0x69, 0x69, 0x43, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x20, 0x69,
1177
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1178
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x43, 0x69,
1179
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x20, 0x69, 0x69, 0x69, 0x69, 0x69,
1180
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1181
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1182
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1183
- 0x69, 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c,
1184
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x44, 0x4c, 0x4c, 0x4c, 0x4c,
1185
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1186
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1187
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x30, 0x69, 0x69, 0x69, 0x69,
1188
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1189
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1190
- 0x4c, 0x4c, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x61,
1191
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1192
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1193
- 0x69, 0x69, 0x69, 0x69, 0x49, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1194
- 0x69, 0x69, 0x69, 0x20, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1195
- 0x69, 0x69, 0x69, 0x43, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x20,
1196
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1197
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1198
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1199
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x30, 0x69, 0x69, 0x69, 0x69, 0x69,
1200
- 0x69, 0x69, 0x69, 0x69, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1201
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1202
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x69,
1203
- 0x69, 0x20, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1204
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1205
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1206
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1207
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x49, 0x69, 0x69, 0x69, 0x69,
1208
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x20, 0x69, 0x69, 0x69, 0x69, 0x69,
1209
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x43, 0x69, 0x69, 0x69, 0x69, 0x69,
1210
- 0x69, 0x69, 0x20, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1211
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1212
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1213
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1214
- 0x69, 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c,
1215
- 0x4c, 0x4c, 0x4c, 0x44, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1216
- 0x4c, 0x4c, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1217
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1218
- 0x69, 0x69, 0x69, 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1219
- 0x69, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1220
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1221
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1222
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1223
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1224
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1225
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1226
- 0x4c, 0x4c, 0x4c, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1227
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1228
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1229
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x31,
1230
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1231
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1232
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1233
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1234
- 0x69, 0x69, 0x69, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1235
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1236
- 0x4c, 0x4c, 0x4c, 0x4c, 0x69, 0x49, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1237
- 0x69, 0x69, 0x69, 0x69, 0x20, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1238
- 0x69, 0x69, 0x69, 0x69, 0x43, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1239
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1240
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1241
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1242
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x30, 0x69, 0x69, 0x69, 0x69, 0x69,
1243
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1244
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1245
- 0x69, 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c,
1246
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1247
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1248
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1249
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1250
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1251
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1252
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1253
- 0x4c, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1254
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x31, 0x69, 0x69,
1255
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1256
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1257
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1258
- 0x69, 0x69, 0x69, 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1259
- 0x69, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1260
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1261
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x69, 0x69, 0x20, 0x69,
1262
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1263
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1264
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1265
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1266
- 0x69, 0x69, 0x69, 0x69, 0x49, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1267
- 0x69, 0x69, 0x69, 0x20, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1268
- 0x69, 0x69, 0x69, 0x43, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x20,
1269
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1270
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1271
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1272
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x30, 0x69, 0x69, 0x69, 0x69, 0x69,
1273
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1274
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1275
- 0x69, 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c,
1276
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1277
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1278
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1279
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1280
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1281
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1282
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1283
- 0x4c, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1284
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1285
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1286
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1287
- 0x69, 0x69, 0x69, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
1288
- 0x4c, 0x4c, 0x20, 0x20, 0x20, 0x20, 0x67, 0x67, 0x67, 0x20, 0x4c, 0x4c,
1289
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x69, 0x69, 0x20, 0x69, 0x69,
1290
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1291
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1292
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1293
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1294
- 0x69, 0x69, 0x69, 0x49, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1295
- 0x69, 0x69, 0x20, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1296
- 0x69, 0x69, 0x43, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x20, 0x69,
1297
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1298
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1299
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
1300
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x2f, 0x20, 0x20, 0x20, 0x20, 0x20,
1301
- 0x20, 0x20, 0x20, 0x3d,
1302
- };
1303
- compare_decode(base64, 8224, simdutf::base64_default,
1304
- simdutf::last_chunk_handling_options::strict, false);
1305
- };
1306
-
1307
- TEST(issue_001) {
1308
- // This string has two padding characters at the end following 3 base64
1309
- // characters.
1310
- //
1311
- std::string base64 =
1312
- " ccc "
1313
- " "
1314
- " = = ";
1315
- compare_decode(base64, 65131, simdutf::base64_default,
1316
- simdutf::last_chunk_handling_options::stop_before_partial,
1317
- true);
1318
- };
1319
-
1320
- TEST(issue_002) {
1321
- const std::vector<unsigned char> base64{
1322
- 0x0d, 0x63, 0x63, 0x63, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c,
1323
- 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a,
1324
- 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a,
1325
- 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a,
1326
- 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a,
1327
- 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a,
1328
- 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a,
1329
- 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a,
1330
- 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a,
1331
- 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a,
1332
- 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0c, 0x0a, 0x0a,
1333
- 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a,
1334
- 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x09, 0x3d, 0x09, 0x0a, 0x0a,
1335
- 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c,
1336
- 0x09, 0x3d, 0x09, 0x0a,
1337
- };
1338
- compare_decode(base64, 2621, simdutf::base64_url_with_padding,
1339
- simdutf::last_chunk_handling_options::stop_before_partial,
1340
- true);
1341
- };
1342
-
1343
- TEST(issue_100) {
1344
- // 7688 base 64 characters. 903 0x09.
1345
- // 8596 characters.
1346
- // 7688 is divisible by 4
1347
- // 7688 / 4 = 1922
1348
- // 1922 * 3 = 5766
1349
- // So we should output 5766 bytes.
1350
- const std::vector<unsigned char> base64{
1351
- 0x39, 0x35, 0x34, 0x32, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
1352
- 0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x31,
1353
- 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
1354
- 0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39,
1355
- 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30,
1356
- 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31,
1357
- 0x31, 0x39, 0x35, 0x34, 0x32, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35,
1358
- 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32,
1359
- 0x38, 0x33, 0x34, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x31, 0x30,
1360
- 0x31, 0x32, 0x32, 0x32, 0x35, 0x33, 0x36, 0x34, 0x35, 0x35, 0x39, 0x37,
1361
- 0x34, 0x37, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
1362
- 0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x39, 0x09, 0x09,
1363
- 0x30, 0x30, 0x30, 0x32, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35,
1364
- 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38,
1365
- 0x33, 0x34, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x32, 0x39, 0x31, 0x31,
1366
- 0x39, 0x35, 0x34, 0x32, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
1367
- 0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x31,
1368
- 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30,
1369
- 0x30, 0x30, 0x30, 0x31, 0x30, 0x31, 0x32, 0x32, 0x32, 0x35, 0x33, 0x36,
1370
- 0x34, 0x35, 0x35, 0x39, 0x37, 0x37, 0x31, 0x34, 0x32, 0x34, 0x09, 0x09,
1371
- 0x09, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x31, 0x30, 0x31,
1372
- 0x32, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x39,
1373
- 0x35, 0x33, 0x34, 0x32, 0x38, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30,
1374
- 0x31, 0x30, 0x31, 0x32, 0x32, 0x32, 0x35, 0x33, 0x36, 0x34, 0x35, 0x35,
1375
- 0x39, 0x37, 0x37, 0x32, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
1376
- 0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x31,
1377
- 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x35, 0x35, 0x35, 0x32, 0x32,
1378
- 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x09,
1379
- 0x09, 0x35, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30,
1380
- 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32,
1381
- 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x38, 0x31, 0x39, 0x35, 0x33,
1382
- 0x34, 0x32, 0x38, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x38,
1383
- 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
1384
- 0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34, 0x39, 0x09,
1385
- 0x09, 0x30, 0x30, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30,
1386
- 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39,
1387
- 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35,
1388
- 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34,
1389
- 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x35, 0x35, 0x35,
1390
- 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x31,
1391
- 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30,
1392
- 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32,
1393
- 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x38, 0x09, 0x09, 0x09, 0x35,
1394
- 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x35, 0x39,
1395
- 0x31, 0x32, 0x38, 0x33, 0x34, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30,
1396
- 0x31, 0x30, 0x31, 0x32, 0x32, 0x32, 0x35, 0x33, 0x36, 0x34, 0x35, 0x35,
1397
- 0x39, 0x37, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x39, 0x09, 0x09, 0x30,
1398
- 0x30, 0x30, 0x32, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35,
1399
- 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33,
1400
- 0x34, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x32, 0x39, 0x31, 0x31, 0x39,
1401
- 0x35, 0x34, 0x32, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
1402
- 0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39,
1403
- 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30,
1404
- 0x30, 0x30, 0x31, 0x30, 0x31, 0x32, 0x32, 0x32, 0x35, 0x33, 0x36, 0x34,
1405
- 0x35, 0x35, 0x39, 0x37, 0x37, 0x31, 0x34, 0x32, 0x34, 0x09, 0x09, 0x09,
1406
- 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x31, 0x30, 0x31, 0x32,
1407
- 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x39, 0x35,
1408
- 0x33, 0x34, 0x32, 0x38, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x31,
1409
- 0x30, 0x31, 0x32, 0x32, 0x32, 0x35, 0x33, 0x36, 0x34, 0x35, 0x35, 0x39,
1410
- 0x37, 0x37, 0x32, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
1411
- 0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39,
1412
- 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x35, 0x35, 0x35, 0x32, 0x32, 0x35,
1413
- 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x09, 0x09,
1414
- 0x35, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30,
1415
- 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39,
1416
- 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x38, 0x31, 0x39, 0x35, 0x33, 0x34,
1417
- 0x32, 0x38, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x38, 0x09,
1418
- 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
1419
- 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34, 0x39, 0x09, 0x09,
1420
- 0x30, 0x30, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30,
1421
- 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31,
1422
- 0x31, 0x39, 0x35, 0x34, 0x32, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35,
1423
- 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x31,
1424
- 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x35, 0x35, 0x35, 0x35,
1425
- 0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x31,
1426
- 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x30, 0x30, 0x31, 0x30, 0x30,
1427
- 0x09, 0x09, 0x32, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39,
1428
- 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35,
1429
- 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31,
1430
- 0x32, 0x38, 0x31, 0x37, 0x32, 0x34, 0x09, 0x09, 0x30, 0x30, 0x30, 0x31,
1431
- 0x30, 0x31, 0x32, 0x32, 0x32, 0x35, 0x33, 0x36, 0x34, 0x35, 0x35, 0x39,
1432
- 0x37, 0x37, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
1433
- 0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x39, 0x09, 0x09,
1434
- 0x30, 0x30, 0x30, 0x32, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35,
1435
- 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38,
1436
- 0x33, 0x34, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x32, 0x39, 0x31, 0x31,
1437
- 0x39, 0x35, 0x34, 0x32, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
1438
- 0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x31,
1439
- 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30,
1440
- 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39,
1441
- 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x38, 0x09, 0x09, 0x31, 0x31, 0x39,
1442
- 0x35, 0x33, 0x34, 0x32, 0x38, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30,
1443
- 0x32, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
1444
- 0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34,
1445
- 0x39, 0x09, 0x09, 0x30, 0x30, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09,
1446
- 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37,
1447
- 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x09, 0x09, 0x35, 0x35,
1448
- 0x33, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32,
1449
- 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31,
1450
- 0x39, 0x35, 0x34, 0x32, 0x38, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38,
1451
- 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x38, 0x09, 0x09, 0x09,
1452
- 0x35, 0x35, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32,
1453
- 0x39, 0x31, 0x31, 0x39, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
1454
- 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35,
1455
- 0x33, 0x34, 0x32, 0x38, 0x35, 0x35, 0x35, 0x35, 0x32, 0x32, 0x35, 0x30,
1456
- 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x09, 0x09, 0x35,
1457
- 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30,
1458
- 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31,
1459
- 0x31, 0x39, 0x35, 0x34, 0x32, 0x38, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32,
1460
- 0x38, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34,
1461
- 0x32, 0x09, 0x09, 0x35, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09,
1462
- 0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30,
1463
- 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x38, 0x31, 0x39,
1464
- 0x35, 0x33, 0x34, 0x32, 0x38, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30,
1465
- 0x32, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
1466
- 0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34,
1467
- 0x39, 0x09, 0x09, 0x30, 0x30, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09,
1468
- 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37,
1469
- 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x09, 0x09, 0x35, 0x35,
1470
- 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35,
1471
- 0x33, 0x34, 0x31, 0x31, 0x32, 0x32, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32,
1472
- 0x38, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31,
1473
- 0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38,
1474
- 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32,
1475
- 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32,
1476
- 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
1477
- 0x31, 0x35, 0x35, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34, 0x39,
1478
- 0x09, 0x09, 0x30, 0x30, 0x30, 0x31, 0x30, 0x31, 0x32, 0x32, 0x32, 0x35,
1479
- 0x33, 0x36, 0x34, 0x35, 0x35, 0x39, 0x37, 0x37, 0x38, 0x09, 0x09, 0x09,
1480
- 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31,
1481
- 0x39, 0x35, 0x33, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x38, 0x09,
1482
- 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
1483
- 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34, 0x39, 0x09, 0x09,
1484
- 0x30, 0x30, 0x30, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x35, 0x35, 0x35,
1485
- 0x35, 0x31, 0x31, 0x39, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37,
1486
- 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x38, 0x31, 0x39, 0x35,
1487
- 0x33, 0x34, 0x32, 0x38, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32,
1488
- 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x39, 0x35, 0x34, 0x32, 0x38, 0x09,
1489
- 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
1490
- 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34,
1491
- 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x38, 0x09, 0x09, 0x09,
1492
- 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31,
1493
- 0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38,
1494
- 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35,
1495
- 0x34, 0x32, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
1496
- 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35,
1497
- 0x33, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32,
1498
- 0x31, 0x30, 0x31, 0x35, 0x34, 0x32, 0x38, 0x31, 0x39, 0x35, 0x33, 0x34,
1499
- 0x32, 0x38, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35,
1500
- 0x34, 0x32, 0x09, 0x09, 0x35, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x30,
1501
- 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35,
1502
- 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x38, 0x31,
1503
- 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30,
1504
- 0x30, 0x32, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
1505
- 0x35, 0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34,
1506
- 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09,
1507
- 0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30,
1508
- 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x09, 0x09, 0x35,
1509
- 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39,
1510
- 0x35, 0x33, 0x34, 0x31, 0x31, 0x32, 0x32, 0x31, 0x39, 0x35, 0x33, 0x34,
1511
- 0x32, 0x38, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31,
1512
- 0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32,
1513
- 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31,
1514
- 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34,
1515
- 0x32, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
1516
- 0x35, 0x31, 0x35, 0x35, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34,
1517
- 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x31, 0x30, 0x31, 0x32, 0x32, 0x32,
1518
- 0x35, 0x33, 0x36, 0x34, 0x35, 0x35, 0x39, 0x37, 0x37, 0x38, 0x09, 0x09,
1519
- 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31,
1520
- 0x31, 0x39, 0x35, 0x33, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x38,
1521
- 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
1522
- 0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34, 0x39, 0x09,
1523
- 0x09, 0x30, 0x30, 0x30, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x35, 0x35,
1524
- 0x35, 0x35, 0x31, 0x31, 0x39, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30,
1525
- 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x38, 0x31, 0x39,
1526
- 0x35, 0x33, 0x34, 0x32, 0x38, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30,
1527
- 0x32, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x39, 0x35, 0x34, 0x32, 0x38,
1528
- 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
1529
- 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35, 0x33,
1530
- 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x38, 0x37, 0x32,
1531
- 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x38, 0x31, 0x39, 0x35, 0x33,
1532
- 0x34, 0x32, 0x38, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x38,
1533
- 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
1534
- 0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34, 0x39, 0x09,
1535
- 0x09, 0x30, 0x30, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30,
1536
- 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39,
1537
- 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x09, 0x09, 0x35, 0x30, 0x30, 0x30,
1538
- 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30,
1539
- 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x31, 0x31,
1540
- 0x31, 0x39, 0x34, 0x38, 0x37, 0x31, 0x34, 0x30, 0x09, 0x09, 0x09, 0x30,
1541
- 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x31, 0x30, 0x31, 0x32, 0x35,
1542
- 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x39, 0x35, 0x33,
1543
- 0x34, 0x32, 0x38, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x31, 0x30,
1544
- 0x31, 0x32, 0x32, 0x32, 0x35, 0x33, 0x36, 0x34, 0x35, 0x35, 0x39, 0x37,
1545
- 0x37, 0x32, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
1546
- 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35,
1547
- 0x33, 0x34, 0x32, 0x38, 0x35, 0x35, 0x35, 0x35, 0x32, 0x32, 0x35, 0x30,
1548
- 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x09, 0x09, 0x35,
1549
- 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30,
1550
- 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31,
1551
- 0x31, 0x39, 0x35, 0x34, 0x32, 0x38, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32,
1552
- 0x38, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34,
1553
- 0x32, 0x09, 0x09, 0x35, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09,
1554
- 0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30,
1555
- 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x38, 0x31, 0x39,
1556
- 0x35, 0x33, 0x34, 0x32, 0x38, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30,
1557
- 0x32, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
1558
- 0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34,
1559
- 0x39, 0x09, 0x09, 0x30, 0x30, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09,
1560
- 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37,
1561
- 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x09, 0x09, 0x35, 0x35,
1562
- 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35,
1563
- 0x33, 0x34, 0x31, 0x31, 0x32, 0x32, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32,
1564
- 0x38, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31,
1565
- 0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38,
1566
- 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32,
1567
- 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32,
1568
- 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
1569
- 0x31, 0x35, 0x35, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34, 0x39,
1570
- 0x09, 0x09, 0x30, 0x30, 0x30, 0x31, 0x30, 0x31, 0x32, 0x32, 0x32, 0x35,
1571
- 0x33, 0x36, 0x34, 0x35, 0x35, 0x39, 0x37, 0x37, 0x38, 0x09, 0x09, 0x09,
1572
- 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31,
1573
- 0x39, 0x35, 0x33, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x38, 0x09,
1574
- 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
1575
- 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34, 0x39, 0x09, 0x09,
1576
- 0x30, 0x30, 0x30, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x35, 0x35, 0x35,
1577
- 0x35, 0x31, 0x31, 0x39, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37,
1578
- 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x38, 0x31, 0x39, 0x35,
1579
- 0x33, 0x34, 0x32, 0x38, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32,
1580
- 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x39, 0x35, 0x34, 0x32, 0x38, 0x09,
1581
- 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
1582
- 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34,
1583
- 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x38, 0x09, 0x09, 0x09,
1584
- 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31,
1585
- 0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38,
1586
- 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35,
1587
- 0x34, 0x32, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
1588
- 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35,
1589
- 0x33, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32,
1590
- 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31,
1591
- 0x39, 0x35, 0x34, 0x32, 0x38, 0x09, 0x09, 0x31, 0x31, 0x39, 0x35, 0x33,
1592
- 0x34, 0x32, 0x38, 0x34, 0x39, 0x09, 0x09, 0x30, 0x35, 0x35, 0x35, 0x35,
1593
- 0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34,
1594
- 0x39, 0x09, 0x09, 0x30, 0x30, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09,
1595
- 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37,
1596
- 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x09, 0x09, 0x35, 0x35,
1597
- 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31,
1598
- 0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38,
1599
- 0x35, 0x35, 0x35, 0x35, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31,
1600
- 0x31, 0x39, 0x35, 0x34, 0x32, 0x09, 0x09, 0x35, 0x35, 0x33, 0x34, 0x32,
1601
- 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31,
1602
- 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34,
1603
- 0x32, 0x38, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x34, 0x39, 0x09,
1604
- 0x09, 0x30, 0x30, 0x30, 0x32, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35,
1605
- 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32,
1606
- 0x38, 0x33, 0x34, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x34, 0x32, 0x38,
1607
- 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32,
1608
- 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32,
1609
- 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
1610
- 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34,
1611
- 0x32, 0x38, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31,
1612
- 0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32,
1613
- 0x38, 0x35, 0x30, 0x30, 0x31, 0x30, 0x30, 0x09, 0x09, 0x32, 0x30, 0x31,
1614
- 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34,
1615
- 0x32, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
1616
- 0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x31, 0x37, 0x32,
1617
- 0x34, 0x09, 0x09, 0x30, 0x30, 0x30, 0x31, 0x30, 0x31, 0x32, 0x32, 0x32,
1618
- 0x35, 0x33, 0x36, 0x34, 0x35, 0x35, 0x39, 0x37, 0x37, 0x38, 0x09, 0x09,
1619
- 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31,
1620
- 0x31, 0x39, 0x35, 0x33, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x38,
1621
- 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
1622
- 0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34, 0x39, 0x09,
1623
- 0x09, 0x30, 0x30, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x09,
1624
- 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31,
1625
- 0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32,
1626
- 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31,
1627
- 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34,
1628
- 0x32, 0x38, 0x09, 0x09, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38,
1629
- 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x38, 0x09, 0x09, 0x09,
1630
- 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x35,
1631
- 0x39, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30,
1632
- 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x31,
1633
- 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39,
1634
- 0x35, 0x34, 0x32, 0x09, 0x09, 0x35, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35,
1635
- 0x30, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32,
1636
- 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x38,
1637
- 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x34, 0x39, 0x09, 0x09, 0x30,
1638
- 0x30, 0x30, 0x32, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35,
1639
- 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33,
1640
- 0x34, 0x34, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37,
1641
- 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x38, 0x31, 0x39, 0x35,
1642
- 0x33, 0x34, 0x32, 0x38, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32,
1643
- 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
1644
- 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34, 0x39,
1645
- 0x09, 0x09, 0x30, 0x30, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30,
1646
- 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32,
1647
- 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x09, 0x09, 0x35, 0x30, 0x30,
1648
- 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30,
1649
- 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x31,
1650
- 0x31, 0x31, 0x39, 0x34, 0x38, 0x37, 0x31, 0x34, 0x30, 0x09, 0x09, 0x09,
1651
- 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x31, 0x30, 0x31, 0x32,
1652
- 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x39, 0x35,
1653
- 0x33, 0x34, 0x32, 0x38, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x31,
1654
- 0x30, 0x31, 0x32, 0x32, 0x32, 0x35, 0x33, 0x36, 0x34, 0x35, 0x35, 0x39,
1655
- 0x37, 0x37, 0x32, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
1656
- 0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39,
1657
- 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x35, 0x35, 0x35, 0x32, 0x32, 0x35,
1658
- 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x09, 0x09,
1659
- 0x35, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30,
1660
- 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39,
1661
- 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x38, 0x31, 0x39, 0x35, 0x33, 0x34,
1662
- 0x32, 0x38, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35,
1663
- 0x34, 0x32, 0x09, 0x09, 0x35, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x30,
1664
- 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35,
1665
- 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x38, 0x31,
1666
- 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30,
1667
- 0x30, 0x32, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
1668
- 0x35, 0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34,
1669
- 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09,
1670
- 0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30,
1671
- 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x09, 0x09, 0x35,
1672
- 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39,
1673
- 0x35, 0x33, 0x34, 0x31, 0x31, 0x32, 0x32, 0x31, 0x39, 0x35, 0x33, 0x34,
1674
- 0x32, 0x38, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31,
1675
- 0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32,
1676
- 0x38, 0x35, 0x30, 0x09, 0x09, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32,
1677
- 0x38, 0x33, 0x34, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x34, 0x32, 0x38,
1678
- 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32,
1679
- 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32,
1680
- 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35,
1681
- 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x38, 0x31,
1682
- 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30,
1683
- 0x30, 0x32, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
1684
- 0x35, 0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34,
1685
- 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09,
1686
- 0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30,
1687
- 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x09, 0x09, 0x35,
1688
- 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39,
1689
- 0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35,
1690
- 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35,
1691
- 0x33, 0x34, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x30,
1692
- 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35,
1693
- 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x38, 0x09,
1694
- 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
1695
- 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34, 0x39, 0x09, 0x09,
1696
- 0x30, 0x30, 0x30, 0x31, 0x30, 0x31, 0x32, 0x32, 0x32, 0x35, 0x33, 0x36,
1697
- 0x34, 0x35, 0x35, 0x39, 0x37, 0x37, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35,
1698
- 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35,
1699
- 0x33, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x38, 0x32, 0x09, 0x09, 0x09,
1700
- 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x35,
1701
- 0x39, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30,
1702
- 0x30, 0x31, 0x30, 0x31, 0x32, 0x32, 0x32, 0x35, 0x35, 0x35, 0x35, 0x35,
1703
- 0x35, 0x35, 0x35, 0x35, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x34,
1704
- 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x31, 0x30, 0x31, 0x32, 0x32, 0x32,
1705
- 0x35, 0x33, 0x36, 0x34, 0x35, 0x35, 0x39, 0x37, 0x37, 0x31, 0x34, 0x32,
1706
- 0x34, 0x09, 0x09, 0x09, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30,
1707
- 0x31, 0x30, 0x31, 0x32, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
1708
- 0x35, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x34, 0x39, 0x09, 0x09,
1709
- 0x30, 0x30, 0x30, 0x31, 0x30, 0x31, 0x32, 0x32, 0x32, 0x35, 0x35, 0x35,
1710
- 0x35, 0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34,
1711
- 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09,
1712
- 0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30,
1713
- 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x09, 0x09, 0x35,
1714
- 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39,
1715
- 0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35,
1716
- 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35,
1717
- 0x33, 0x34, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x30,
1718
- 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35,
1719
- 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x38, 0x09,
1720
- 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x39,
1721
- 0x31, 0x35, 0x35, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34, 0x39, 0x09, 0x09,
1722
- 0x30, 0x30, 0x30, 0x31, 0x30, 0x31, 0x32, 0x32, 0x32, 0x35, 0x33, 0x36,
1723
- 0x34, 0x35, 0x35, 0x39, 0x37, 0x37, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35,
1724
- 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35,
1725
- 0x33, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x38, 0x09, 0x09, 0x09,
1726
- 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x35,
1727
- 0x39, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30,
1728
- 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x09, 0x09, 0x35, 0x35,
1729
- 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x33, 0x34, 0x32, 0x38,
1730
- 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30, 0x34, 0x35, 0x35, 0x39, 0x37,
1731
- 0x37, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
1732
- 0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x39, 0x09, 0x09, 0x30,
1733
- 0x30, 0x30, 0x38, 0x32, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35,
1734
- 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33,
1735
- 0x34, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x31, 0x30, 0x31, 0x32,
1736
- 0x32, 0x32, 0x35, 0x39, 0x35, 0x34, 0x32, 0x09, 0x09, 0x35, 0x35, 0x35,
1737
- 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33,
1738
- 0x34, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x35, 0x35,
1739
- 0x35, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35,
1740
- 0x34, 0x32, 0x09, 0x09, 0x35, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x30,
1741
- 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35,
1742
- 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x38, 0x31,
1743
- 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30,
1744
- 0x30, 0x32, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
1745
- 0x35, 0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34,
1746
- 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09,
1747
- 0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30,
1748
- 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x09, 0x09, 0x35,
1749
- 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39,
1750
- 0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35,
1751
- 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35,
1752
- 0x33, 0x34, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x30,
1753
- 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35,
1754
- 0x30, 0x37, 0x32, 0x39, 0x31, 0x33, 0x34, 0x32, 0x38, 0x34, 0x39, 0x09,
1755
- 0x09, 0x30, 0x30, 0x30, 0x32, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35,
1756
- 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32,
1757
- 0x38, 0x33, 0x34, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x34, 0x32, 0x38,
1758
- 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32,
1759
- 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32,
1760
- 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x30, 0x36, 0x38,
1761
- 0x35, 0x36, 0x39, 0x38, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x38, 0x09,
1762
- 0x09, 0x09, 0x35, 0x35, 0x39, 0x35, 0x34, 0x32, 0x38, 0x09, 0x09, 0x09,
1763
- 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31,
1764
- 0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38,
1765
- 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35,
1766
- 0x34, 0x32, 0x09, 0x09, 0x35, 0x35, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x35,
1767
- 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33,
1768
- 0x34, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09,
1769
- 0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30,
1770
- 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x38, 0x09, 0x09,
1771
- 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x34, 0x39, 0x09, 0x09,
1772
- 0x30, 0x30, 0x30, 0x32, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35,
1773
- 0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34,
1774
- 0x39, 0x09, 0x09, 0x30, 0x30, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09,
1775
- 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37,
1776
- 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x09, 0x09, 0x35, 0x35,
1777
- 0x33, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32,
1778
- 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31,
1779
- 0x39, 0x35, 0x34, 0x32, 0x38, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38,
1780
- 0x34, 0x39, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
1781
- 0x35, 0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34,
1782
- 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35,
1783
- 0x34, 0x32, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
1784
- 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35,
1785
- 0x33, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30, 0x30,
1786
- 0x30, 0x31, 0x30, 0x31, 0x32, 0x32, 0x32, 0x35, 0x33, 0x36, 0x34, 0x35,
1787
- 0x35, 0x39, 0x37, 0x37, 0x31, 0x34, 0x32, 0x34, 0x09, 0x09, 0x09, 0x30,
1788
- 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x31, 0x30, 0x31, 0x32, 0x35,
1789
- 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x39, 0x35, 0x33,
1790
- 0x34, 0x32, 0x38, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x31, 0x30,
1791
- 0x31, 0x32, 0x32, 0x32, 0x35, 0x33, 0x36, 0x34, 0x35, 0x35, 0x39, 0x37,
1792
- 0x37, 0x32, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
1793
- 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35,
1794
- 0x33, 0x34, 0x32, 0x38, 0x35, 0x35, 0x35, 0x35, 0x32, 0x32, 0x35, 0x30,
1795
- 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x09, 0x09, 0x35,
1796
- 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30,
1797
- 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31,
1798
- 0x31, 0x39, 0x35, 0x34, 0x32, 0x38, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32,
1799
- 0x38, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x38, 0x09, 0x09,
1800
- 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31,
1801
- 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34, 0x39, 0x09, 0x09, 0x30,
1802
- 0x30, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32,
1803
- 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31,
1804
- 0x39, 0x35, 0x34, 0x32, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
1805
- 0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x31,
1806
- 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
1807
- 0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39,
1808
- 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30,
1809
- 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31,
1810
- 0x31, 0x39, 0x35, 0x34, 0x32, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35,
1811
- 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32,
1812
- 0x38, 0x33, 0x34, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x31, 0x30,
1813
- 0x31, 0x32, 0x32, 0x32, 0x35, 0x33, 0x36, 0x34, 0x35, 0x35, 0x39, 0x37,
1814
- 0x37, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
1815
- 0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x39, 0x09, 0x09, 0x30,
1816
- 0x30, 0x30, 0x32, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35,
1817
- 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33,
1818
- 0x34, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x32, 0x39, 0x31, 0x31, 0x39,
1819
- 0x35, 0x34, 0x32, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
1820
- 0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x33, 0x34,
1821
- 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30,
1822
- 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35,
1823
- 0x34, 0x32, 0x38, 0x09, 0x09, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32,
1824
- 0x38, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x38, 0x09, 0x09,
1825
- 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31,
1826
- 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34, 0x39, 0x09, 0x09, 0x30,
1827
- 0x30, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32,
1828
- 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31,
1829
- 0x39, 0x35, 0x34, 0x32, 0x09, 0x09, 0x35, 0x35, 0x33, 0x34, 0x32, 0x38,
1830
- 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32,
1831
- 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32,
1832
- 0x38, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x34, 0x39, 0x09, 0x09,
1833
- 0x30, 0x30, 0x30, 0x32, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35,
1834
- 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38,
1835
- 0x33, 0x34, 0x34, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30,
1836
- 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x38, 0x31, 0x39,
1837
- 0x35, 0x33, 0x34, 0x32, 0x38, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30,
1838
- 0x32, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
1839
- 0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34,
1840
- 0x39, 0x09, 0x09, 0x30, 0x30, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09,
1841
- 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37,
1842
- 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x09, 0x09, 0x35, 0x35,
1843
- 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35,
1844
- 0x33, 0x34, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x35,
1845
- 0x35, 0x35, 0x35, 0x39, 0x37, 0x37, 0x31, 0x34, 0x32, 0x34, 0x09, 0x09,
1846
- 0x09, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x31, 0x30, 0x31,
1847
- 0x32, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x39,
1848
- 0x35, 0x33, 0x34, 0x32, 0x38, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30,
1849
- 0x31, 0x30, 0x31, 0x32, 0x32, 0x32, 0x35, 0x33, 0x36, 0x34, 0x35, 0x35,
1850
- 0x39, 0x37, 0x30, 0x30, 0x30, 0x31, 0x30, 0x31, 0x32, 0x32, 0x32, 0x35,
1851
- 0x33, 0x36, 0x34, 0x35, 0x35, 0x39, 0x37, 0x37, 0x31, 0x34, 0x32, 0x34,
1852
- 0x09, 0x09, 0x09, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x31,
1853
- 0x30, 0x31, 0x32, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
1854
- 0x31, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37,
1855
- 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x38, 0x31, 0x39, 0x35,
1856
- 0x33, 0x34, 0x32, 0x38, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32,
1857
- 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
1858
- 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34, 0x39,
1859
- 0x09, 0x09, 0x30, 0x30, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30,
1860
- 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32,
1861
- 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x09, 0x09, 0x35, 0x35, 0x35,
1862
- 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33,
1863
- 0x34, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x35, 0x35,
1864
- 0x35, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35,
1865
- 0x34, 0x32, 0x09, 0x09, 0x35, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x30,
1866
- 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35,
1867
- 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x30, 0x30, 0x30, 0x30, 0x32, 0x31,
1868
- 0x33, 0x31, 0x37, 0x31, 0x30, 0x30, 0x31, 0x36, 0x09, 0x09, 0x30, 0x30,
1869
- 0x30, 0x32, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
1870
- 0x35, 0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34,
1871
- 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09,
1872
- 0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30,
1873
- 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x09, 0x09, 0x30,
1874
- 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32,
1875
- 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x38, 0x31, 0x39, 0x35, 0x33,
1876
- 0x34, 0x32, 0x38, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x38,
1877
- 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
1878
- 0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34, 0x39, 0x09,
1879
- 0x09, 0x30, 0x30, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30,
1880
- 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39,
1881
- 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35,
1882
- 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34,
1883
- 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x35, 0x35, 0x35,
1884
- 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x31,
1885
- 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30,
1886
- 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32,
1887
- 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x38, 0x09, 0x09, 0x09, 0x35,
1888
- 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x35, 0x39,
1889
- 0x31, 0x32, 0x38, 0x33, 0x34, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30,
1890
- 0x31, 0x30, 0x31, 0x32, 0x32, 0x32, 0x35, 0x33, 0x36, 0x34, 0x35, 0x35,
1891
- 0x39, 0x37, 0x37, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35,
1892
- 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x39, 0x09,
1893
- 0x09, 0x30, 0x30, 0x30, 0x38, 0x32, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35,
1894
- 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32,
1895
- 0x38, 0x33, 0x34, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x31, 0x30,
1896
- 0x31, 0x32, 0x32, 0x32, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
1897
- 0x35, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x34, 0x39, 0x09, 0x09,
1898
- 0x30, 0x30, 0x30, 0x31, 0x30, 0x31, 0x32, 0x32, 0x32, 0x35, 0x33, 0x36,
1899
- 0x34, 0x35, 0x35, 0x39, 0x37, 0x37, 0x31, 0x34, 0x32, 0x34, 0x09, 0x09,
1900
- 0x09, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x31, 0x30, 0x31,
1901
- 0x32, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x39,
1902
- 0x35, 0x33, 0x34, 0x32, 0x38, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30,
1903
- 0x31, 0x30, 0x31, 0x32, 0x32, 0x32, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
1904
- 0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34, 0x39, 0x09,
1905
- 0x09, 0x30, 0x30, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30,
1906
- 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39,
1907
- 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x09, 0x09, 0x35, 0x35, 0x35, 0x31,
1908
- 0x32, 0x32, 0x32, 0x35, 0x33, 0x36, 0x34, 0x35, 0x35, 0x39, 0x37, 0x37,
1909
- 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
1910
- 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x39, 0x09, 0x09, 0x30, 0x30,
1911
- 0x30, 0x32, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x38,
1912
- 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x31, 0x30, 0x31, 0x32, 0x32,
1913
- 0x32, 0x35, 0x33, 0x36, 0x34, 0x35, 0x35, 0x39, 0x37, 0x37, 0x31, 0x34,
1914
- 0x32, 0x34, 0x09, 0x09, 0x09, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30,
1915
- 0x30, 0x31, 0x30, 0x31, 0x32, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
1916
- 0x35, 0x35, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x34, 0x39, 0x09,
1917
- 0x09, 0x30, 0x30, 0x30, 0x31, 0x30, 0x31, 0x32, 0x32, 0x32, 0x35, 0x35,
1918
- 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33,
1919
- 0x34, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x34, 0x32, 0x38, 0x35, 0x30,
1920
- 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35,
1921
- 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x09, 0x09,
1922
- 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31,
1923
- 0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38,
1924
- 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39,
1925
- 0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35,
1926
- 0x30, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32,
1927
- 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x38,
1928
- 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
1929
- 0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34, 0x39, 0x09,
1930
- 0x09, 0x30, 0x30, 0x30, 0x31, 0x30, 0x31, 0x32, 0x32, 0x32, 0x35, 0x33,
1931
- 0x36, 0x34, 0x35, 0x35, 0x39, 0x37, 0x34, 0x37, 0x38, 0x09, 0x09, 0x09,
1932
- 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31,
1933
- 0x39, 0x35, 0x33, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x38, 0x09,
1934
- 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
1935
- 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34, 0x39, 0x09, 0x09,
1936
- 0x30, 0x30, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x09, 0x09,
1937
- 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31,
1938
- 0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38,
1939
- 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30, 0x30, 0x30, 0x31, 0x30, 0x31,
1940
- 0x32, 0x32, 0x32, 0x35, 0x33, 0x36, 0x34, 0x35, 0x35, 0x39, 0x37, 0x37,
1941
- 0x31, 0x34, 0x32, 0x34, 0x09, 0x09, 0x09, 0x30, 0x30, 0x30, 0x30, 0x30,
1942
- 0x30, 0x30, 0x30, 0x31, 0x30, 0x31, 0x32, 0x35, 0x35, 0x35, 0x35, 0x35,
1943
- 0x35, 0x35, 0x35, 0x35, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x34,
1944
- 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x31, 0x30, 0x31, 0x32, 0x32, 0x32,
1945
- 0x35, 0x33, 0x36, 0x34, 0x35, 0x35, 0x39, 0x37, 0x37, 0x32, 0x09, 0x09,
1946
- 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31,
1947
- 0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38,
1948
- 0x35, 0x35, 0x35, 0x35, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31,
1949
- 0x31, 0x39, 0x35, 0x34, 0x32, 0x09, 0x09, 0x35, 0x35, 0x33, 0x34, 0x32,
1950
- 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31,
1951
- 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34,
1952
- 0x32, 0x38, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x34, 0x39, 0x09,
1953
- 0x09, 0x30, 0x30, 0x30, 0x32, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35,
1954
- 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32,
1955
- 0x38, 0x33, 0x34, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x34, 0x32, 0x38,
1956
- 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32,
1957
- 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32,
1958
- 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
1959
- 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34,
1960
- 0x32, 0x38, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31,
1961
- 0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32,
1962
- 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31,
1963
- 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34,
1964
- 0x32, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
1965
- 0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34,
1966
- 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x31, 0x30, 0x31, 0x32, 0x32, 0x32,
1967
- 0x35, 0x33, 0x36, 0x34, 0x35, 0x35, 0x39, 0x37, 0x37, 0x38, 0x09, 0x09,
1968
- 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31,
1969
- 0x31, 0x39, 0x35, 0x33, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x38,
1970
- 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
1971
- 0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34, 0x39, 0x09,
1972
- 0x09, 0x30, 0x30, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x09,
1973
- 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31,
1974
- 0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32,
1975
- 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31,
1976
- 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34,
1977
- 0x32, 0x38, 0x09, 0x09, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38,
1978
- 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x38, 0x09, 0x09, 0x09,
1979
- 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x35,
1980
- 0x39, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30,
1981
- 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x31,
1982
- 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39,
1983
- 0x35, 0x34, 0x32, 0x09, 0x09, 0x35, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35,
1984
- 0x30, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32,
1985
- 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x38,
1986
- 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x34, 0x39, 0x09, 0x09, 0x30,
1987
- 0x30, 0x30, 0x32, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35,
1988
- 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33,
1989
- 0x34, 0x34, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37,
1990
- 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x38, 0x31, 0x39, 0x35,
1991
- 0x33, 0x34, 0x32, 0x38, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32,
1992
- 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
1993
- 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34, 0x39,
1994
- 0x09, 0x09, 0x30, 0x30, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30,
1995
- 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32,
1996
- 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x09, 0x09, 0x35, 0x35, 0x35,
1997
- 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33,
1998
- 0x34, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x35, 0x35,
1999
- 0x35, 0x35, 0x39, 0x37, 0x37, 0x31, 0x34, 0x32, 0x34, 0x09, 0x09, 0x09,
2000
- 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x31, 0x30, 0x31, 0x32,
2001
- 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x39, 0x35,
2002
- 0x33, 0x34, 0x32, 0x38, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x31,
2003
- 0x30, 0x31, 0x32, 0x32, 0x32, 0x35, 0x33, 0x36, 0x34, 0x35, 0x35, 0x39,
2004
- 0x37, 0x37, 0x32, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
2005
- 0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39,
2006
- 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x35, 0x35, 0x35, 0x32, 0x32, 0x35,
2007
- 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x09, 0x09,
2008
- 0x35, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30,
2009
- 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39,
2010
- 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x38, 0x31, 0x39, 0x35, 0x33, 0x34,
2011
- 0x32, 0x38, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x38, 0x09,
2012
- 0x09, 0x09, 0x35, 0x35, 0x35, 0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30,
2013
- 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35,
2014
- 0x34, 0x32, 0x38, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x34, 0x39,
2015
- 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35,
2016
- 0x35, 0x09, 0x30, 0x30, 0x30, 0x32, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35,
2017
- 0x39, 0x35, 0x34, 0x32, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35,
2018
- 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34,
2019
- 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09,
2020
- 0x30, 0x30, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x39, 0x35, 0x33, 0x34,
2021
- 0x32, 0x38, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x31, 0x30, 0x31,
2022
- 0x32, 0x32, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31,
2023
- 0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38,
2024
- 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35,
2025
- 0x34, 0x32, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
2026
- 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35,
2027
- 0x33, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30, 0x37,
2028
- 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x09, 0x09, 0x35, 0x35,
2029
- 0x33, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32,
2030
- 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31,
2031
- 0x39, 0x35, 0x34, 0x32, 0x38, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38,
2032
- 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x38, 0x09, 0x09, 0x09,
2033
- 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x35,
2034
- 0x39, 0x31, 0x32, 0x38, 0x33, 0x34, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30,
2035
- 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x31,
2036
- 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39,
2037
- 0x35, 0x34, 0x32, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
2038
- 0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39,
2039
- 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
2040
- 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35,
2041
- 0x33, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32,
2042
- 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31,
2043
- 0x39, 0x35, 0x34, 0x32, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35,
2044
- 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38,
2045
- 0x33, 0x34, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x31, 0x30, 0x31,
2046
- 0x32, 0x32, 0x32, 0x35, 0x33, 0x36, 0x34, 0x35, 0x35, 0x39, 0x37, 0x37,
2047
- 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
2048
- 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x39, 0x09, 0x09, 0x30, 0x30,
2049
- 0x30, 0x32, 0x38, 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
2050
- 0x35, 0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31, 0x32, 0x38, 0x33, 0x34,
2051
- 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35,
2052
- 0x34, 0x32, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35,
2053
- 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x31, 0x31, 0x39, 0x35,
2054
- 0x33, 0x34, 0x32, 0x38, 0x35, 0x30, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32,
2055
- 0x31, 0x30, 0x31, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31,
2056
- 0x39, 0x35, 0x34, 0x32, 0x38, 0x09, 0x09, 0x31, 0x31, 0x39, 0x35, 0x33,
2057
- 0x34, 0x32, 0x38, 0x34, 0x39, 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x38,
2058
- 0x09, 0x09, 0x09, 0x35, 0x35, 0x35, 0x35, 0x35, 0x32, 0x35, 0x33, 0x36,
2059
- 0x34, 0x37, 0x37, 0x39, 0x35, 0x35, 0x32, 0x09, 0x09, 0x35, 0x35, 0x35,
2060
- 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x31, 0x39, 0x35, 0x33,
2061
- 0x34, 0x31, 0x31, 0x39, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x35, 0x35,
2062
- 0x35, 0x32, 0x32, 0x35, 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35,
2063
- 0x34, 0x32, 0x09, 0x09, 0x35, 0x35, 0x33, 0x34, 0x32, 0x38, 0x35, 0x30,
2064
- 0x09, 0x09, 0x30, 0x30, 0x30, 0x32, 0x31, 0x30, 0x31, 0x32, 0x32, 0x35,
2065
- 0x30, 0x37, 0x32, 0x39, 0x31, 0x31, 0x39, 0x35, 0x34, 0x32, 0x38, 0x31,
2066
- 0x39, 0x35, 0x33, 0x35, 0x35, 0x35, 0x35, 0x35, 0x31, 0x35, 0x39, 0x31,
2067
- 0x32, 0x34, 0x32, 0x38,
2068
- };
2069
- compare_decode(base64, 12601, simdutf::base64_default,
2070
- simdutf::last_chunk_handling_options::stop_before_partial,
2071
- true);
2072
- };
2073
-
2074
- TEST(causes_mismatch_in_count) {
2075
- const std::vector<unsigned char> base64(9194, 0x20);
2076
- compare_decode(base64, 8224, simdutf::base64_default,
2077
- simdutf::last_chunk_handling_options::loose, false);
2078
- };
2079
-
2080
- TEST(decoding_into_zero_length_output) {
2081
- const std::vector<unsigned char> base64{
2082
- 0x09,
2083
- 0x09,
2084
- };
2085
- compare_decode(base64, 0, simdutf::base64_url,
2086
- simdutf::last_chunk_handling_options::loose, false);
2087
- };
2088
-
2089
- TEST(show_that_base64_to_binary_safe_writes_after_outlen) {
2090
- const std::vector<unsigned char> base64{
2091
- 0x6d, 0x6d, 0x6d, 0x6a, 0x6d, 0x6d, 0x6d, 0x6d, 0x6a, 0x6d, 0x6d,
2092
- 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x2d,
2093
- 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c,
2094
- 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c,
2095
- 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c,
2096
- 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c,
2097
- };
2098
- compare_decode(base64, 47, simdutf::base64_url_with_padding,
2099
- simdutf::last_chunk_handling_options::stop_before_partial,
2100
- false);
2101
- };
2102
-
2103
- TEST(success_but_mismatch_in_count) {
2104
- // different count reported! 5465 vs 5466
2105
- const std::vector<unsigned char> base64{
2106
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2107
- 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c, 0x4c,
2108
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2109
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2110
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x36, 0x4c,
2111
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2112
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x69,
2113
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2114
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2115
- 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c, 0x4c,
2116
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x20, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2117
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2118
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2119
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2120
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x69, 0x69,
2121
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2122
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x30,
2123
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c, 0x4c, 0x4c,
2124
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x20, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2125
- 0x4c, 0x4c, 0x69, 0x69, 0x69, 0x69, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2126
- 0x4c, 0x4c, 0x20, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2127
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2128
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2129
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2130
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2131
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2132
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2133
- 0x4c, 0x4c, 0x4c, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2134
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2135
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2136
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x30, 0x69, 0x69, 0x69,
2137
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2138
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2139
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2140
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x36, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2141
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2142
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x69, 0x69, 0x69, 0x69, 0x69,
2143
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2144
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x30, 0x69, 0x69, 0x69,
2145
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c, 0x4c, 0x4c, 0x69, 0x69, 0x69,
2146
- 0x69, 0x69, 0x69, 0x69, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2147
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x36, 0x4c, 0x4c,
2148
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2149
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x69, 0x69, 0x69, 0x69, 0x30, 0x69, 0x69,
2150
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2151
- 0x4c, 0x4c, 0x4c, 0x20, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2152
- 0x4c, 0x4c, 0x4c, 0x4c, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2153
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2154
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2155
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x30, 0x69, 0x69, 0x69,
2156
- 0x69, 0x69, 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2157
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c, 0x69, 0x69, 0x69, 0x69, 0x69,
2158
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2159
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x30, 0x69, 0x69, 0x69,
2160
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c, 0x69, 0x69, 0x69, 0x69, 0x69,
2161
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x30, 0x69, 0x69,
2162
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2163
- 0x69, 0x4c, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2164
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2165
- 0x69, 0x69, 0x69, 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2166
- 0x69, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x20, 0x4c, 0x4c,
2167
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2168
- 0x4c, 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2169
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2170
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2171
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2172
- 0x4c, 0x4c, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2173
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2174
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2175
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x30, 0x69, 0x69, 0x69, 0x69,
2176
- 0x69, 0x69, 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2177
- 0x4c, 0x4c, 0x4c, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2178
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2179
- 0x69, 0x69, 0x69, 0x69, 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2180
- 0x69, 0x69, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2181
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2182
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2183
- 0x4c, 0x4c, 0x36, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2184
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2185
- 0x4c, 0x4c, 0x4c, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2186
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2187
- 0x69, 0x69, 0x69, 0x69, 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2188
- 0x69, 0x69, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x20, 0x4c,
2189
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2190
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2191
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2192
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2193
- 0x4c, 0x4c, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2194
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2195
- 0x69, 0x69, 0x69, 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2196
- 0x69, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x20, 0x4c, 0x4c,
2197
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x69, 0x69, 0x69, 0x69, 0x4c, 0x4c,
2198
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x20, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2199
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2200
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2201
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2202
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2203
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2204
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2205
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x69, 0x69, 0x69, 0x69, 0x69,
2206
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2207
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2208
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2209
- 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c, 0x4c,
2210
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2211
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2212
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x36, 0x4c,
2213
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2214
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x69,
2215
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2216
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2217
- 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c, 0x4c,
2218
- 0x4c, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c, 0x4c, 0x4c, 0x4c,
2219
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2220
- 0x4c, 0x36, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2221
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x69, 0x69, 0x69,
2222
- 0x69, 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c,
2223
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x20, 0x4c, 0x4c, 0x4c, 0x4c,
2224
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x69, 0x69, 0x69, 0x69,
2225
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2226
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2227
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2228
- 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x30, 0x69, 0x69, 0x69, 0x69, 0x69,
2229
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c, 0x69,
2230
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2231
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2232
- 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c, 0x69,
2233
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2234
- 0x69, 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2235
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2236
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2237
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x30, 0x69, 0x69, 0x69, 0x69,
2238
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x20, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2239
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2240
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2241
- 0x4c, 0x4c, 0x4c, 0x4c, 0x69, 0x69, 0x69, 0x69, 0x4c, 0x4c, 0x4c, 0x4c,
2242
- 0x4c, 0x4c, 0x4c, 0x4c, 0x20, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2243
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2244
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2245
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2246
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x30, 0x69, 0x69,
2247
- 0x69, 0x69, 0x69, 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2248
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c, 0x69, 0x69, 0x69, 0x69,
2249
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c,
2250
- 0x4c, 0x4c, 0x36, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2251
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2252
- 0x4c, 0x4c, 0x4c, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2253
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2254
- 0x69, 0x69, 0x69, 0x69, 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2255
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2256
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2257
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x69,
2258
- 0x69, 0x69, 0x69, 0x69, 0x4c, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2259
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x30, 0x69, 0x69, 0x69, 0x69,
2260
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c,
2261
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2262
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2263
- 0x69, 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c,
2264
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x20, 0x4c, 0x4c, 0x4c, 0x4c,
2265
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2266
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2267
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2268
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2269
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x69, 0x69, 0x69, 0x69, 0x69,
2270
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2271
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x30, 0x69, 0x69, 0x69,
2272
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2273
- 0x4c, 0x4c, 0x20, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2274
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2275
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2276
- 0x69, 0x69, 0x69, 0x69, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2277
- 0x20, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2278
- 0x4c, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2279
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2280
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2281
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x30,
2282
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2283
- 0x69, 0x69, 0x69, 0x4c, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2284
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2285
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2286
- 0x69, 0x69, 0x69, 0x4c, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2287
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x30, 0x69, 0x69, 0x69, 0x69, 0x69,
2288
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c, 0x69,
2289
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2290
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2291
- 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x4e, 0x4c, 0x4c,
2292
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x20, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2293
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2294
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2295
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2296
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2297
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2298
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2299
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x30, 0x69, 0x69, 0x69, 0x69,
2300
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2301
- 0x4c, 0x20, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2302
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2303
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2304
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2305
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2306
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2307
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2308
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2309
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c, 0x4c, 0x4c, 0x4c,
2310
- 0x4c, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2311
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2312
- 0x69, 0x69, 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2313
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2314
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2315
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2316
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2317
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2318
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2319
- 0x4c, 0x4c, 0x4c, 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c, 0x4c, 0x4c, 0x4c,
2320
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2321
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2322
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2323
- 0x4c, 0x4c, 0x4c, 0x4c, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2324
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x65, 0x69,
2325
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2326
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x30, 0x69,
2327
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2328
- 0x69, 0x69, 0x69, 0x4c, 0x4c, 0x4c, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2329
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2330
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x30, 0x69, 0x69, 0x69, 0x69,
2331
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2332
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2333
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2334
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x36, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2335
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2336
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2337
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2338
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x30, 0x69, 0x69, 0x69, 0x69,
2339
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2340
- 0x4c, 0x20, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2341
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2342
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2343
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x69,
2344
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2345
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2346
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2347
- 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c, 0x4c,
2348
- 0x4c, 0x69, 0x69, 0x69, 0x69, 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2349
- 0x69, 0x69, 0x69, 0x4c, 0x4c, 0x4c, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2350
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2351
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x30, 0x69, 0x69, 0x69, 0x69,
2352
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2353
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2354
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2355
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x36, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2356
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2357
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2358
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2359
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x30, 0x69, 0x69, 0x69, 0x69,
2360
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2361
- 0x4c, 0x20, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2362
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2363
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2364
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x69,
2365
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2366
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2367
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2368
- 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c, 0x4c,
2369
- 0x4c, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2370
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2371
- 0x69, 0x69, 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2372
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2373
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2374
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2375
- 0x36, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2376
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2377
- 0x4c, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2378
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2379
- 0x69, 0x69, 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2380
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x20, 0x4c, 0x4c, 0x4c,
2381
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2382
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x20, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2383
- 0x4c, 0x4c, 0x4c, 0x69, 0x69, 0x69, 0x69, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2384
- 0x4c, 0x4c, 0x4c, 0x20, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2385
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2386
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2387
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2388
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2389
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2390
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2391
- 0x4c, 0x4c, 0x4c, 0x4c, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2392
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2393
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2394
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x30, 0x69, 0x69,
2395
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2396
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2397
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2398
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x36, 0x4c, 0x4c, 0x4c, 0x4c,
2399
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2400
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x69, 0x69, 0x69, 0x69,
2401
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2402
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x30, 0x69, 0x69,
2403
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c, 0x4c, 0x4c, 0x69, 0x69,
2404
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2405
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x36, 0x4c,
2406
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2407
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x69, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2408
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2409
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2410
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2411
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2412
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x69, 0x69,
2413
- 0x69, 0x69, 0x69, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2414
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2415
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2416
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x69,
2417
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2418
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2419
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2420
- 0x69, 0x69, 0x69, 0x69, 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x30,
2421
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c, 0x4c, 0x4c,
2422
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2423
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2424
- 0x69, 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c,
2425
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2426
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2427
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x36,
2428
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2429
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2430
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2431
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x66, 0x69, 0x69,
2432
- 0x69, 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c,
2433
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x20, 0x4c, 0x4c, 0x4c, 0x4c,
2434
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2435
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2436
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2437
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x69,
2438
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2439
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2440
- 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c, 0x4c,
2441
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x20, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2442
- 0x4c, 0x4c, 0x4c, 0x69, 0x69, 0x69, 0x69, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2443
- 0x4c, 0x4c, 0x4c, 0x20, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2444
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2445
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2446
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2447
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2448
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2449
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2450
- 0x4c, 0x4c, 0x4c, 0x4c, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2451
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2452
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2453
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x30, 0x69, 0x69,
2454
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2455
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2456
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2457
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x36, 0x4c, 0x4c, 0x4c, 0x4c,
2458
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2459
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x69, 0x69, 0x69, 0x69,
2460
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2461
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x30, 0x69, 0x69,
2462
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c, 0x4c, 0x4c, 0x69, 0x69,
2463
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2464
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x36, 0x4c,
2465
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2466
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x69, 0x69, 0x69, 0x69, 0x30, 0x69,
2467
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c, 0x4c, 0x4c, 0x4c,
2468
- 0x4c, 0x4c, 0x4c, 0x4c, 0x20, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2469
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2470
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2471
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2472
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x30, 0x69, 0x69,
2473
- 0x69, 0x69, 0x69, 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2474
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c, 0x69, 0x69, 0x69, 0x69,
2475
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2476
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x30, 0x69, 0x69,
2477
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c, 0x69, 0x69, 0x69, 0x69,
2478
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x30, 0x69,
2479
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2480
- 0x69, 0x69, 0x4c, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2481
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2482
- 0x69, 0x69, 0x69, 0x69, 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2483
- 0x69, 0x69, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x20, 0x4c,
2484
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2485
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2486
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2487
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2488
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x69, 0x69,
2489
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2490
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x30,
2491
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c, 0x4c, 0x4c,
2492
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x20, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2493
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2494
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2495
- 0x4c, 0x4c, 0x4c, 0x69, 0x69, 0x69, 0x69, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2496
- 0x4c, 0x4c, 0x4c, 0x20, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2497
- 0x4c, 0x4c, 0x4c, 0x4c, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2498
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2499
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2500
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x30, 0x69, 0x69, 0x69,
2501
- 0x69, 0x69, 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2502
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c, 0x69, 0x69, 0x69, 0x69, 0x69,
2503
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c, 0x4c,
2504
- 0x4c, 0x36, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2505
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2506
- 0x4c, 0x4c, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2507
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2508
- 0x69, 0x69, 0x69, 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c,
2509
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2510
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2511
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x69, 0x69,
2512
- 0x69, 0x69, 0x69, 0x4c, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2513
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x30, 0x69, 0x69, 0x69, 0x69, 0x69,
2514
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c, 0x69,
2515
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2516
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2517
- 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c, 0x4c,
2518
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x20, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2519
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2520
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2521
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2522
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2523
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2524
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2525
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x30, 0x69, 0x69, 0x69, 0x69,
2526
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2527
- 0x4c, 0x20, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2528
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2529
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x69,
2530
- 0x69, 0x69, 0x69, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x20,
2531
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2532
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2533
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2534
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2535
- 0x69, 0x69, 0x69, 0x69, 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x30, 0x69,
2536
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x30, 0x69, 0x69, 0x69,
2537
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2538
- 0x4c, 0x4c, 0x20, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2539
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2540
- 0x20, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x69, 0x69, 0x69,
2541
- 0x69, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x20, 0x4c, 0x4c,
2542
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2543
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2544
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2545
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2546
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2547
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2548
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x69, 0x69,
2549
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2550
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2551
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2552
- 0x69, 0x69, 0x69, 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2553
- 0x69, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2554
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2555
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2556
- 0x4c, 0x36, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2557
- 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,
2558
- 0x4c, 0x4c, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2559
- 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2560
- 0x69, 0x69, 0x69, 0x30, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
2561
- 0x69, 0x4c, 0x4c, 0x4c, 0x4c, 0x3d,
2562
- };
2563
- compare_decode(base64, 65312, simdutf::base64_default,
2564
- simdutf::last_chunk_handling_options::stop_before_partial,
2565
- false);
2566
- };
2567
-
2568
- TEST(gets_success_but_different_count) {
2569
- const std::vector<unsigned char> base64{
2570
- 0x0a, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d,
2571
- 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d,
2572
- 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d,
2573
- 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d,
2574
- 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d,
2575
- 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d,
2576
- 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x0a,
2577
- 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a,
2578
- 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a,
2579
- 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a,
2580
- 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a,
2581
- 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a,
2582
- 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a,
2583
- 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d,
2584
- 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x71,
2585
- 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d,
2586
- 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d,
2587
- 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d,
2588
- 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x0a, 0x0a, 0x0a, 0x0a,
2589
- 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a,
2590
- 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a,
2591
- 0x0a, 0x6d, 0x6d, 0x0a, 0x3d, 0x0a, 0x3d,
2592
- };
2593
- compare_decode(base64, 60207, simdutf::base64_url_with_padding,
2594
- simdutf::last_chunk_handling_options::stop_before_partial,
2595
- false);
2596
- };
2597
-
2598
- TEST(gets_success_but_different_content) {
2599
- const std::vector<unsigned char> base64{
2600
- 0x3d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2601
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2602
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2603
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2604
- };
2605
- compare_decode(base64, 4, simdutf::base64_url_with_padding,
2606
- simdutf::last_chunk_handling_options::stop_before_partial,
2607
- true);
2608
- };
2609
-
2610
- TEST(unaligned_encode) {
2611
- // this test uses misaligned in and output buffers, to provoke problems
2612
- // in the code for handling pointer alignment
2613
- std::vector<unsigned char> base64{
2614
- 0x3d, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2615
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2616
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2617
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
2618
- };
2619
- const auto payload_size = base64.size();
2620
- std::string output(100 + 128, '\0');
2621
- std::string reference_output;
2622
- for (std::size_t misalign = 0; misalign < 128; ++misalign) {
2623
- const auto output_span = std::span(output).subspan(misalign, 100);
2624
- const auto r = simdutf::atomic_binary_to_base64(
2625
- std::span(base64).last(payload_size), output_span);
2626
- base64.insert(base64.begin(), '\0');
2627
- if (reference_output.empty()) {
2628
- reference_output.assign(output_span.begin(), output_span.end());
2629
- } else {
2630
- ASSERT_EQUAL(output_span.size(), reference_output.size());
2631
- ASSERT_BYTES_EQUAL(output_span, reference_output, output_span.size());
2632
- }
2633
- }
2634
- }
2635
-
2636
- TEST(empty_input_gives_empty_output) {
2637
- std::vector<char> input;
2638
- std::vector<char> output;
2639
-
2640
- {
2641
- const auto ret = simdutf::atomic_binary_to_base64(input, output);
2642
- ASSERT_EQUAL(ret, 0);
2643
- }
2644
- {
2645
- const auto s = std::span(output);
2646
- const auto [ret, outlen] = simdutf::atomic_base64_to_binary_safe(input, s);
2647
- ASSERT_EQUAL(ret.error, simdutf::SUCCESS);
2648
- ASSERT_EQUAL(outlen, 0);
2649
- }
2650
- {
2651
- const auto [ret, outlen] =
2652
- simdutf::atomic_base64_to_binary_safe(input, std::span(output));
2653
- ASSERT_EQUAL(ret.error, simdutf::SUCCESS);
2654
- ASSERT_EQUAL(outlen, 0);
2655
- }
2656
- {
2657
- const auto [ret, outlen] =
2658
- simdutf::atomic_base64_to_binary_safe(input, output);
2659
- ASSERT_EQUAL(ret.error, simdutf::SUCCESS);
2660
- ASSERT_EQUAL(outlen, 0);
2661
- }
2662
- }
2663
-
2664
- TEST(small_input) {
2665
- const std::string input{"Abracadabra!"};
2666
- const std::string expected_output{"QWJyYWNhZGFicmEh"};
2667
- std::string output(expected_output.size(), '\0');
2668
-
2669
- const auto ret = simdutf::atomic_binary_to_base64(input, output);
2670
- ASSERT_EQUAL(ret, expected_output.size());
2671
- ASSERT_EQUAL(output, expected_output);
2672
-
2673
- // try to recover the input by going in the opposite direction
2674
- std::string recovered;
2675
- {
2676
- // try with a (too) small buffer
2677
- const auto [ret2, outlen] = simdutf::atomic_base64_to_binary_safe(
2678
- std::span(output).first(expected_output.size()), recovered);
2679
- ASSERT_EQUAL(ret2.error, simdutf::OUTPUT_BUFFER_TOO_SMALL);
2680
- ASSERT_EQUAL(outlen, 0);
2681
- }
2682
- {
2683
- // ...then with a larger size
2684
- recovered.resize(100);
2685
- const auto [ret2, outlen] = simdutf::atomic_base64_to_binary_safe(
2686
- std::span(output).first(expected_output.size()), recovered);
2687
- ASSERT_EQUAL(ret2.error, simdutf::SUCCESS);
2688
- ASSERT_EQUAL(outlen, input.size());
2689
- recovered.resize(outlen);
2690
- }
2691
- ASSERT_EQUAL(input, recovered);
2692
- }
2693
-
2694
- TEST(large_input) {
2695
- // large means larger than one internal block of data
2696
- const std::size_t N_input = 1'000'000;
2697
- std::string input, expected_output;
2698
- for (std::size_t i = 0; i < N_input; ++i) {
2699
- input.append("abc");
2700
- expected_output.append("YWJj");
2701
- }
2702
- std::string output(expected_output.size(), '\0');
2703
- const auto ret = simdutf::atomic_binary_to_base64(input, output);
2704
- ASSERT_EQUAL(ret, expected_output.size());
2705
- ASSERT_EQUAL(output, expected_output);
2706
-
2707
- // try to recover the input by going in the opposite direction
2708
- std::string recovered(input.size(), '?');
2709
- const auto [ret2, outlen] = simdutf::atomic_base64_to_binary_safe(
2710
- std::span(output).first(ret), recovered);
2711
- ASSERT_EQUAL(ret2.error, simdutf::SUCCESS);
2712
- ASSERT_EQUAL(outlen, input.size());
2713
- recovered.resize(outlen);
2714
- ASSERT_EQUAL(input, recovered);
2715
- }
2716
-
2717
- void varying_input_size_utf16_impl(const std::size_t N_input) {
2718
- std::string input;
2719
- std::u16string expected_output;
2720
- for (std::size_t i = 0; i < N_input; ++i) {
2721
- input.append("abc");
2722
- expected_output.append(u"YWJj");
2723
- }
2724
- std::u16string output16(expected_output.size(), '\0');
2725
- {
2726
- std::string output(expected_output.size(), '\0');
2727
- const auto ret = simdutf::atomic_binary_to_base64(input, output);
2728
- ASSERT_EQUAL(output.size(),
2729
- simdutf::convert_utf8_to_utf16(output, output16));
2730
- ASSERT_EQUAL(ret, expected_output.size());
2731
- ASSERT_TRUE(output16 == expected_output);
2732
- }
2733
-
2734
- // try to recover the input by going in the opposite direction
2735
- std::string recovered(input.size(), '?');
2736
- const auto [ret2, outlen] =
2737
- simdutf::atomic_base64_to_binary_safe(std::span(output16), recovered);
2738
- ASSERT_EQUAL(ret2.error, simdutf::SUCCESS);
2739
- ASSERT_EQUAL(outlen, input.size());
2740
- recovered.resize(outlen);
2741
- ASSERT_EQUAL(input, recovered);
2742
- }
2743
-
2744
- TEST(varying_input_size_utf16) {
2745
- varying_input_size_utf16_impl(0);
2746
- varying_input_size_utf16_impl(1);
2747
- varying_input_size_utf16_impl(1'000'000);
2748
- }
2749
-
2750
- #if SIMDUTF_CPLUSPLUS20
2751
-
2752
- #if RUNNING_UNDER_THREAD_SANITIZER
2753
- // this test is only relevant if compiling with thread sanitizer
2754
- TEST(threaded_binary_to_base64) {
2755
- // large means larger than one internal block of data
2756
- const std::size_t N_input = 1'000'000;
2757
- std::string input, expected_output;
2758
- for (std::size_t i = 0; i < N_input; ++i) {
2759
- input.append("abc");
2760
- expected_output.append("YWJj");
2761
- }
2762
- std::string output(expected_output.size(), '\0');
2763
-
2764
- constexpr auto nthreads = 4;
2765
-
2766
- std::barrier sync_point(nthreads + 1, [nthreads]() noexcept {
2767
- std::printf("all %u threads reached the barrier\n", nthreads);
2768
- });
2769
-
2770
- std::atomic_bool keep_running{true};
2771
- std::vector<std::jthread> threads;
2772
- for (std::size_t threadi = 0; threadi < nthreads; ++threadi) {
2773
- threads.emplace_back([&, threadi]() {
2774
- std::mt19937 gen{static_cast<std::mt19937::result_type>(threadi)};
2775
- std::uniform_int_distribution<int> dist{0, 255};
2776
- std::uniform_int_distribution<std::size_t> input_index_dist{
2777
- 0, input.size() - 1};
2778
- sync_point.arrive_and_wait();
2779
- while (keep_running) {
2780
- std::atomic_ref(input[input_index_dist(gen)]).fetch_add(dist(gen));
2781
- }
2782
- });
2783
- }
2784
-
2785
- sync_point.arrive_and_wait();
2786
-
2787
- for (int i = 0; i < 10; ++i) {
2788
- // don't bother to look at the output, it can fail or succeed depending
2789
- // on the thread scheduling
2790
- simdutf_maybe_unused const auto ret =
2791
- simdutf::atomic_binary_to_base64(input, output);
2792
- }
2793
-
2794
- keep_running = false;
2795
- }
2796
-
2797
- TEST(threaded_base64_to_binary_safe) {
2798
- // large means larger than one internal block of data
2799
- const std::size_t N_input = 1'000'000;
2800
- std::string input, expected_output;
2801
- for (std::size_t i = 0; i < N_input; ++i) {
2802
- input.append("YWJj");
2803
- expected_output.append("abc");
2804
- }
2805
- std::string output(expected_output.size(), '\0');
2806
-
2807
- constexpr auto nthreads = 4;
2808
-
2809
- std::barrier sync_point(nthreads + 1, [nthreads]() noexcept {
2810
- std::printf("all %u threads reached the barrier\n", nthreads);
2811
- });
2812
-
2813
- std::atomic_bool keep_running{true};
2814
- std::vector<std::jthread> threads;
2815
- for (std::size_t threadi = 0; threadi < nthreads; ++threadi) {
2816
- threads.emplace_back([&, threadi]() {
2817
- std::mt19937 gen{static_cast<std::mt19937::result_type>(threadi)};
2818
- std::uniform_int_distribution<int> dist{0, 255};
2819
- std::uniform_int_distribution<std::size_t> output_index_dist{
2820
- 0, output.size() - 1};
2821
- sync_point.arrive_and_wait();
2822
- while (keep_running) {
2823
- std::atomic_ref(output[output_index_dist(gen)]).fetch_add(dist(gen));
2824
- }
2825
- });
2826
- }
2827
-
2828
- sync_point.arrive_and_wait();
2829
-
2830
- for (int i = 0; i < 10; ++i) {
2831
- // don't bother to look at the output, it can fail or succeed depending
2832
- // on the thread scheduling
2833
- simdutf_maybe_unused const auto ret =
2834
- simdutf::atomic_base64_to_binary_safe(input, output);
2835
- }
2836
-
2837
- keep_running = false;
2838
- }
2839
- #endif // RUNNING_UNDER_THREAD_SANITIZER
2840
- #endif // SIMDUTF_CPLUSPLUS20
2841
-
2842
- #endif // #if !defined(SIMDUTF_NO_THREADS) && SIMDUTF_ATOMIC_REF &&
2843
- // SIMDUTF_SPAN
2844
-
2845
- TEST_MAIN