submission 16780
KernelBot user 334 · python · License unknown
Use it
Vendorable · source mirrored · license unknownView source →
No package. Vendor the mirrored source: 1 lines, June 9 Researcher Reciprocity License v1.0.
template-hip.py
curl "https://kernelindex.com/api/v1/implementations/kernelbot-amd-fp8-mm-16780?include=source"interfacepython
Compatibility
measured onAMD Instinct MI300X
declared hardwareAMD Instinct MI300X
architecturesgfx942
dtypesfp32, fp8_e4m3fnuz
Benchmark evidence
18 measurements across 1 GPU, fastest first.
Operation / workload
Hardware
Latency
Rank
Observed
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [1024, 7168] · n=512 · seed=6563
AMD Instinct MI300X
195.2µs
#71 of 98
2025-05-06
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [1024, 7168] · n=576 · seed=12346
AMD Instinct MI300X
208.4µs
#72 of 98
2025-05-06
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [1024, 7168] · n=1536 · seed=8135
AMD Instinct MI300X
436.8µs
#85 of 98
2025-05-06
Show all 18 measurements ›Showing all 18 measurements ⌄
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [6144, 7168] · n=512 · seed=12341
AMD Instinct MI300X
1.06ms
#88 of 98
2025-05-06
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [6144, 7168] · n=576 · seed=9863
AMD Instinct MI300X
1.15ms
#88 of 98
2025-05-06
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [1024, 7168] · n=4608 · seed=7531
AMD Instinct MI300X
1.25ms
#88 of 98
2025-05-06
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [6144, 7168] · n=1536 · seed=6543
AMD Instinct MI300X
2.49ms
#88 of 98
2025-05-06
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [6144, 7168] · n=4608 · seed=65436
AMD Instinct MI300X
6.16ms
#90 of 98
2025-05-06
Reported · How evidence levels are derived →
Source and license
sourceavailable
revision digestsha256:6f0c979a312154fbe6ca5c19ab470cbcdb2ecaefa12ae79ccab9e38ea3023bb4
license declaredunknown
license concludedunknown
imported2026-08-15
Kernel source
template-hip.py1 lines
IyBUaGlzIHNjcmlwdCBwcm92aWRlcyBhIHRlbXBsYXRlIGZvciB1c2luZyBsb2FkX2lubGluZSB0byBydW4gYSBISVAga2VybmVsIGZvcgpmcm9tIHRvcmNoLnV0aWxzLmNwcF9leHRlbnNpb24gaW1wb3J0IGxvYWRfaW5saW5lCmZyb20gdGFzayBpbXBvcnQgaW5wdXRfdCwgb3V0cHV0X3QKQ1BQX1dSQVBQRVIgPSAiIiIKdm9pZCBmcDhfbW0odG9yY2g6OlRlbnNvciBhLCB0b3JjaDo6VGVuc29yIGIsIHRvcmNoOjpUZW5zb3IgYXMsIHRvcmNoOjpUZW5zb3IgYnMsIHRvcmNoOjpUZW5zb3IgYyk7CiIiIgoKQ1VEQV9TUkMgPSAiIiIKI2luY2x1ZGUgPGhpcC9hbWRfZGV0YWlsL2FtZF9oaXBfZnA4Lmg+CiNpbmNsdWRlIDxoaXAvYW1kX2RldGFpbC9hbWRfaGlwX2JmMTYuaD4KCnVzaW5nIGYzMng0ID0gX19hdHRyaWJ1dGVfXyggKF9fdmVjdG9yX3NpemVfXyg0ICogc2l6ZW9mKGZsb2F0KSkgKSkgZmxvYXQ7Cgpjb25zdGV4cHIgY29uc3QgaW50IEJMT0NLID0gMTI4OwoKX19nbG9iYWxfXyB2b2lkIGN1c3RvbV9rZXJuZWwoY29uc3QgX19oaXBfZnA4X2U0bTNfZm51eiogYSwgY29uc3QgX19oaXBfZnA4X2U0bTNfZm51eiogYiwgY29uc3QgZmxvYXQqIGFzLCBjb25zdCBmbG9hdCogYnMsIAogICAgICAgICAgICAgICAgICAgX19oaXBfYmZsb2F0MTYqIGMsIGludCBtLCBpbnQgbiwgaW50IGspIHsKICAgICAgICAgICAgICAgICAgIAogICAgLy8gWW91ciBpbXBsZW1lbnRhdGlvbiBoZXJlCiAgICBpbnQgY3ggPSAxNiAqIGJsb2NrSWR4Lng7CiAgICBpbnQgY3kgPSAxNiAqIGJsb2NrSWR4Lnk7CiAgICBpZihjeCA+PSBtIHx8IGN5ID49IG4pIHJldHVybjsKICAgIAogICAgaW50IHNuID0gKG4gKyBCTE9DSyAtIDEpIC8gQkxPQ0s7CiAgICBicyArPSBjeSAvIEJMT0NLOwogICAgYXMgKz0gY3ggKyB0aHJlYWRJZHgueDsKICAgIAogICAgZjMyeDQgcmVzdWx0ID0geyAwLCAwLCAwLCAwIH07CgogICAgZm9yKGludCBpID0gMDsgaSA8IGs7IGkgKz0gQkxPQ0spIHsKCiAgICAgICAgZjMyeDQgYmxvY2tfcmVzdWx0ID0geyAwLCAwLCAwLCAwfTsKICAgICAgICBmb3IoaW50IGlpID0gMDsgaWkgPCBCTE9DSzsgaWkgKz0gMzIpIHsKICAgICAgICAgICAgY29uc3QgX19oaXBfZnA4X2U0bTNfZm51eiogYXAgPSBhICsgY3ggKiBrICsgaSArIGlpOwogICAgICAgICAgICBjb25zdCBfX2hpcF9mcDhfZTRtM19mbnV6KiBicCA9IGIgKyBjeSAqIGsgKyBpICsgaWk7CiAgICAgICAgICAgIHVpbnQ2NF90IHMwID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50NjRfdCo+KGFwICsgdGhyZWFkSWR4LnggKiBrKVt0aHJlYWRJZHgueV07CiAgICAgICAgICAgIHVpbnQ2NF90IHMxID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50NjRfdCo+KGJwICsgdGhyZWFkSWR4LnggKiBrKVt0aHJlYWRJZHgueV07CiAgICAgICAgICAgIGJsb2NrX3Jlc3VsdCA9IF9fYnVpbHRpbl9hbWRnY25fbWZtYV9mMzJfMTZ4MTZ4MzJfZnA4X2ZwOChzMSwgczAsIGJsb2NrX3Jlc3VsdCwgMCwgMCwgMCk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIHJlc3VsdCArPSBibG9ja19yZXN1bHQgKiBic1tpL0JMT0NLICogc25dICogYXNbaS9CTE9DSyAqIG1dOwogICAgfQogICAgCiAgICAvLyBmaW5hbGx5LCB3cml0ZSB0aGUgcmVzdWx0IGFzIGJmMTYKICAgIF9faGlwX2JmbG9hdDE2KiBkc3QgPSByZWludGVycHJldF9jYXN0PF9faGlwX2JmbG9hdDE2Kj4oYyArICh0aHJlYWRJZHgueCArIGN4KSAqIG4gKyBjeSArIHRocmVhZElkeC55ICogNCk7CiAgICBkc3RbMF0gPSAoX19oaXBfYmZsb2F0MTYpcmVzdWx0WzBdOwogICAgZHN0WzFdID0gKF9faGlwX2JmbG9hdDE2KXJlc3VsdFsxXTsKICAgIGRzdFsyXSA9IChfX2hpcF9iZmxvYXQxNilyZXN1bHRbMl07CiAgICBkc3RbM10gPSAoX19oaXBfYmZsb2F0MTYpcmVzdWx0WzNdOwp9Cgp2b2lkIGZwOF9tbSh0b3JjaDo6VGVuc29yIGEsIHRvcmNoOjpUZW5zb3IgYiwgdG9yY2g6OlRlbnNvciBhcywgdG9yY2g6OlRlbnNvciBicywgdG9yY2g6OlRlbnNvciBjKSB7CiAgICBpbnQgbSA9IGEuc2l6ZSgwKTsKICAgIGludCBuID0gYi5zaXplKDApOwogICAgaW50IGsgPSBhLnNpemUoMSk7CiAgICBjdXN0b21fa2VybmVsPDw8ZGltMygobSsxNSkvMTYsIChuKzE1KS8xNiksIGRpbTMoMTYsIDQpLCAwLCAwPj4+ICgoX19oaXBfZnA4X2U0bTNfZm51eiopYS5jb250aWd1b3VzKCkuZGF0YV9wdHIoKSwgKF9faGlwX2ZwOF9lNG0zX2ZudXoqKWIuY29udGlndW91cygpLmRhdGFfcHRyKCksIAogICAgYXMuZGF0YV9wdHI8ZmxvYXQ+KCksIGJzLmRhdGFfcHRyPGZsb2F0PigpLCAoX19oaXBfYmZsb2F0MTYqKWMuZGF0YV9wdHIoKSwgbSwgbiwgayk7CiAgICAvL0MxMF9DVURBX0NIRUNLKGN1ZGFHZXRMYXN0RXJyb3IoKSk7Cn0KIiIiCgppbXBvcnQgb3MKb3MuZW52aXJvblsiQ1hYIl0gPSAiY2xhbmcrKyIKCm1vZHVsZSA9IGxvYWRfaW5saW5lKAogICAgbmFtZT0nZnA4X21tJywKICAgIGNwcF9zb3VyY2VzPVtDUFBfV1JBUFBFUl0sCiAgICBjdWRhX3NvdXJjZXM9W0NVREFfU1JDXSwKICAgIGZ1bmN0aW9ucz1bJ2ZwOF9tbSddLAogICAgdmVyYm9zZT1UcnVlLAogICAgZXh0cmFfY3VkYV9jZmxhZ3M9WyItLW9mZmxvYWQtYXJjaD1nZng5NDIiLCAiLXN0ZD1jKysyMCJdLAopCgoKZGVmIGN1c3RvbV9rZXJuZWwoZGF0YTogaW5wdXRfdCkgLT4gb3V0cHV0X3Q6CiAgICBhLCBiLCBhX3NjYWxlLCBiX3NjYWxlLCBjID0gZGF0YQogICAgbW9kdWxlLmZwOF9tbShhLCBiLCBhX3NjYWxlLCBiX3NjYWxlLCBjKQogICAgcmV0dXJuIGMKCg==Source code from GPU Mode and the KernelBot dataset · June 9 Researcher Reciprocity License v1.0
Changes from previous submission
Against this author's previous submission submission 16197.
- IyBUaGlzIHNjcmlwdCBwcm92aWRlcyBhIHRlbXBsYXRlIGZvciB1c2luZyBsb2FkX2lubGluZSB0byBydW4gYSBISVAga2VybmVsIGZvcgpmcm9tIHRvcmNoLnV0aWxzLmNwcF9leHRlbnNpb24gaW1wb3J0IGxvYWRfaW5saW5lCmZyb20gdGFzayBpbXBvcnQgaW5wdXRfdCwgb3V0cHV0X3QKQ1BQX1dSQVBQRVIgPSAiIiIKdm9pZCBmcDhfbW0odG9yY2g6OlRlbnNvciBhLCB0b3JjaDo6VGVuc29yIGIsIHRvcmNoOjpUZW5zb3IgYXMsIHRvcmNoOjpUZW5zb3IgYnMsIHRvcmNoOjpUZW5zb3IgYyk7CiIiIgoKQ1VEQV9TUkMgPSAiIiIKI2luY2x1ZGUgPGhpcC9hbWRfZGV0YWlsL2FtZF9oaXBfZnA4Lmg+CiNpbmNsdWRlIDxoaXAvYW1kX2RldGFpbC9hbWRfaGlwX2JmMTYuaD4KCmNvbnN0ZXhwciBjb25zdCBpbnQgQkxPQ0sgPSAxMjg7CgpfX2dsb2JhbF9fIHZvaWQgY3VzdG9tX2tlcm5lbChjb25zdCBfX2hpcF9mcDhfZTRtM19mbnV6KiBhLCBjb25zdCBfX2hpcF9mcDhfZTRtM19mbnV6KiBiLCBjb25zdCBmbG9hdCogYXMsIGNvbnN0IGZsb2F0KiBicywgCiAgICAgICAgICAgICAgICAgICBfX2hpcF9iZmxvYXQxNiogYywgaW50IG0sIGludCBuLCBpbnQgaykgewogICAgICAgICAgICAgICAgICAgCiAgICAvLyBZb3VyIGltcGxlbWVudGF0aW9uIGhlcmUKICAgIGludCBjeCA9IHRocmVhZElkeC54ICsgYmxvY2tEaW0ueCAqIGJsb2NrSWR4Lng7CiAgICBpbnQgY3kgPSB0aHJlYWRJZHgueSArIGJsb2NrRGltLnkgKiBibG9ja0lkeC55OwogICAgaWYoY3ggPj0gbSB8fCBjeSA+PSBuKSByZXR1cm47CiAgICAKICAgIGludCBzbiA9IChuICsgQkxPQ0sgLSAxKSAvIEJMT0NLOwogICAgCiAgICBmbG9hdCByZXN1bHQgPSAwOwogICAgLy8gc3BsaXQgbG9vcCBpbnRvIGFuIG91dGVyIGxvb3Agb3ZlciBkaWZmZXJlbnQgYmxvY2tzLCBhbmQgYW4gaW5uZXIgbG9vcCB3aXRoaW4gb25lIGJsb2NrLgogICAgLy8gd2UgY2FuIGFzc3VtZSBrICUgQkxPQ0sgPT0gMC4KICAgIGZvcihpbnQgaSA9IDA7IGkgPCBrOyBpICs9IEJMT0NLKSB7CiAgICAgICAgLy8gYmxvY2sgcmVzdWx0cyBhY2N1bXVsYXRlcyB0aGUgaW5uZXIgcHJvZHVjdCBhY3Jvc3MgYSBzaW5nbGUgYmxvY2suCiAgICAgICAgLy8gd2l0aGluIGVhY2ggYmxvY2ssIHNjYWxlcyBhcmUgY29uc3RhbnQsIHNvIHdlIGNhbiBsaWZ0IHRoZSBzY2FsaW5nIAogICAgICAgIC8vIG91dHNpZGUgb2YgdGhlIGlubmVyIGxvb3AuCiAgICAgICAgZmxvYXQgYmxvY2tfcmVzdWx0ID0gMDsKICAgICAgICBmb3IoaW50IGlpID0gMDsgaWkgPCBCTE9DSzsgKytpaSkgewogICAgICAgICAgICAvLyBsb2FkIGlucHV0IG1hdHJpeCBlbGVtZW50cyBhbmQgY29udmVydCB0byBmbG9hdCBmb3IgY29tcHV0YXRpb25zCiAgICAgICAgICAgIGZsb2F0IGF2ID0gKGZsb2F0KWFbY3ggKiBrICsgKGkgKyBpaSldOwogICAgICAgICAgICBmbG9hdCBidiA9IChmbG9hdCliW2N5ICogayArIChpICsgaWkpXTsKICAgICAgICAgICAgYmxvY2tfcmVzdWx0ICs9IGF2ICogYnY7IAogICAgICAgIH0KICAgICAgICAKICAgICAgICAvLyBiZWZvcmUgd2UgY2FuIGdvIHRvIHRoZSBuZXh0IGJsb2NrLCBzY2FsZSB0aGUgcmVzdWx0IG9mIHRoZSBjdXJyZW50IGJsb2NrCiAgICAgICAgLy8gYW5kIGFjY3VtdWxhdGUgdG8gZmluYWwgcmVzdWx0CiAgICAgICAgLy8gbm90ZSB0aGUgZGlmZmVyZW50IGluZGV4aW5nIGludG8gYXMgYW5kIGJzCiAgICAgICAgcmVzdWx0ICs9IGJsb2NrX3Jlc3VsdCAqIGFzW2N4ICsgaS9CTE9DSyAqIG1dICogYnNbY3kvQkxPQ0sgKyBpL0JMT0NLICogc25dOwogICAgfQogICAgCiAgICAvLyBmaW5hbGx5LCB3cml0ZSB0aGUgcmVzdWx0IGFzIGJmMTYKICAgIGNbY3ggKiBuICsgY3ldID0gKF9faGlwX2JmbG9hdDE2KXJlc3VsdDsKfQoKdm9pZCBmcDhfbW0odG9yY2g6OlRlbnNvciBhLCB0b3JjaDo6VGVuc29yIGIsIHRvcmNoOjpUZW5zb3IgYXMsIHRvcmNoOjpUZW5zb3IgYnMsIHRvcmNoOjpUZW5zb3IgYykgewogICAgaW50IG0gPSBhLnNpemUoMCk7CiAgICBpbnQgbiA9IGIuc2l6ZSgwKTsKICAgIGludCBrID0gYS5zaXplKDEpOwogICAgY3VzdG9tX2tlcm5lbDw8PGRpbTMoKG0rMTUpLzE2LCAobisxNSkvMTYpLCBkaW0zKDE2LCAxNiksIDAsIDA+Pj4gKChfX2hpcF9mcDhfZTRtM19mbnV6KilhLmNvbnRpZ3VvdXMoKS5kYXRhX3B0cigpLCAoX19oaXBfZnA4X2U0bTNfZm51eiopYi5jb250aWd1b3VzKCkuZGF0YV9wdHIoKSwgCiAgICBhcy5kYXRhX3B0cjxmbG9hdD4oKSwgYnMuZGF0YV9wdHI8ZmxvYXQ+KCksIChfX2hpcF9iZmxvYXQxNiopYy5kYXRhX3B0cigpLCBtLCBuLCBrKTsKICAgIC8vQzEwX0NVREFfQ0hFQ0soY3VkYUdldExhc3RFcnJvcigpKTsKfQoiIiIKCmltcG9ydCBvcwpvcy5lbnZpcm9uWyJDWFgiXSA9ICJjbGFuZysrIgoKbW9kdWxlID0gbG9hZF9pbmxpbmUoCiAgICBuYW1lPSdmcDhfbW0nLAogICAgY3BwX3NvdXJjZXM9W0NQUF9XUkFQUEVSXSwKICAgIGN1ZGFfc291cmNlcz1bQ1VEQV9TUkNdLAogICAgZnVuY3Rpb25zPVsnZnA4X21tJ10sCiAgICB2ZXJib3NlPVRydWUsCiAgICBleHRyYV9jdWRhX2NmbGFncz1bIi0tb2ZmbG9hZC1hcmNoPWdmeDk0MiIsICItc3RkPWMrKzIwIl0sCikKCgpkZWYgY3VzdG9tX2tlcm5lbChkYXRhOiBpbnB1dF90KSAtPiBvdXRwdXRfdDoKICAgIGEsIGIsIGFfc2NhbGUsIGJfc2NhbGUsIGMgPSBkYXRhCiAgICBtb2R1bGUuZnA4X21tKGEsIGIsIGFfc2NhbGUsIGJfc2NhbGUsIGMpCiAgICByZXR1cm4gYwoKNo newline at end of file+ IyBUaGlzIHNjcmlwdCBwcm92aWRlcyBhIHRlbXBsYXRlIGZvciB1c2luZyBsb2FkX2lubGluZSB0byBydW4gYSBISVAga2VybmVsIGZvcgpmcm9tIHRvcmNoLnV0aWxzLmNwcF9leHRlbnNpb24gaW1wb3J0IGxvYWRfaW5saW5lCmZyb20gdGFzayBpbXBvcnQgaW5wdXRfdCwgb3V0cHV0X3QKQ1BQX1dSQVBQRVIgPSAiIiIKdm9pZCBmcDhfbW0odG9yY2g6OlRlbnNvciBhLCB0b3JjaDo6VGVuc29yIGIsIHRvcmNoOjpUZW5zb3IgYXMsIHRvcmNoOjpUZW5zb3IgYnMsIHRvcmNoOjpUZW5zb3IgYyk7CiIiIgoKQ1VEQV9TUkMgPSAiIiIKI2luY2x1ZGUgPGhpcC9hbWRfZGV0YWlsL2FtZF9oaXBfZnA4Lmg+CiNpbmNsdWRlIDxoaXAvYW1kX2RldGFpbC9hbWRfaGlwX2JmMTYuaD4KCnVzaW5nIGYzMng0ID0gX19hdHRyaWJ1dGVfXyggKF9fdmVjdG9yX3NpemVfXyg0ICogc2l6ZW9mKGZsb2F0KSkgKSkgZmxvYXQ7Cgpjb25zdGV4cHIgY29uc3QgaW50IEJMT0NLID0gMTI4OwoKX19nbG9iYWxfXyB2b2lkIGN1c3RvbV9rZXJuZWwoY29uc3QgX19oaXBfZnA4X2U0bTNfZm51eiogYSwgY29uc3QgX19oaXBfZnA4X2U0bTNfZm51eiogYiwgY29uc3QgZmxvYXQqIGFzLCBjb25zdCBmbG9hdCogYnMsIAogICAgICAgICAgICAgICAgICAgX19oaXBfYmZsb2F0MTYqIGMsIGludCBtLCBpbnQgbiwgaW50IGspIHsKICAgICAgICAgICAgICAgICAgIAogICAgLy8gWW91ciBpbXBsZW1lbnRhdGlvbiBoZXJlCiAgICBpbnQgY3ggPSAxNiAqIGJsb2NrSWR4Lng7CiAgICBpbnQgY3kgPSAxNiAqIGJsb2NrSWR4Lnk7CiAgICBpZihjeCA+PSBtIHx8IGN5ID49IG4pIHJldHVybjsKICAgIAogICAgaW50IHNuID0gKG4gKyBCTE9DSyAtIDEpIC8gQkxPQ0s7CiAgICBicyArPSBjeSAvIEJMT0NLOwogICAgYXMgKz0gY3ggKyB0aHJlYWRJZHgueDsKICAgIAogICAgZjMyeDQgcmVzdWx0ID0geyAwLCAwLCAwLCAwIH07CgogICAgZm9yKGludCBpID0gMDsgaSA8IGs7IGkgKz0gQkxPQ0spIHsKCiAgICAgICAgZjMyeDQgYmxvY2tfcmVzdWx0ID0geyAwLCAwLCAwLCAwfTsKICAgICAgICBmb3IoaW50IGlpID0gMDsgaWkgPCBCTE9DSzsgaWkgKz0gMzIpIHsKICAgICAgICAgICAgY29uc3QgX19oaXBfZnA4X2U0bTNfZm51eiogYXAgPSBhICsgY3ggKiBrICsgaSArIGlpOwogICAgICAgICAgICBjb25zdCBfX2hpcF9mcDhfZTRtM19mbnV6KiBicCA9IGIgKyBjeSAqIGsgKyBpICsgaWk7CiAgICAgICAgICAgIHVpbnQ2NF90IHMwID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50NjRfdCo+KGFwICsgdGhyZWFkSWR4LnggKiBrKVt0aHJlYWRJZHgueV07CiAgICAgICAgICAgIHVpbnQ2NF90IHMxID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50NjRfdCo+KGJwICsgdGhyZWFkSWR4LnggKiBrKVt0aHJlYWRJZHgueV07CiAgICAgICAgICAgIGJsb2NrX3Jlc3VsdCA9IF9fYnVpbHRpbl9hbWRnY25fbWZtYV9mMzJfMTZ4MTZ4MzJfZnA4X2ZwOChzMSwgczAsIGJsb2NrX3Jlc3VsdCwgMCwgMCwgMCk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIHJlc3VsdCArPSBibG9ja19yZXN1bHQgKiBic1tpL0JMT0NLICogc25dICogYXNbaS9CTE9DSyAqIG1dOwogICAgfQogICAgCiAgICAvLyBmaW5hbGx5LCB3cml0ZSB0aGUgcmVzdWx0IGFzIGJmMTYKICAgIF9faGlwX2JmbG9hdDE2KiBkc3QgPSByZWludGVycHJldF9jYXN0PF9faGlwX2JmbG9hdDE2Kj4oYyArICh0aHJlYWRJZHgueCArIGN4KSAqIG4gKyBjeSArIHRocmVhZElkeC55ICogNCk7CiAgICBkc3RbMF0gPSAoX19oaXBfYmZsb2F0MTYpcmVzdWx0WzBdOwogICAgZHN0WzFdID0gKF9faGlwX2JmbG9hdDE2KXJlc3VsdFsxXTsKICAgIGRzdFsyXSA9IChfX2hpcF9iZmxvYXQxNilyZXN1bHRbMl07CiAgICBkc3RbM10gPSAoX19oaXBfYmZsb2F0MTYpcmVzdWx0WzNdOwp9Cgp2b2lkIGZwOF9tbSh0b3JjaDo6VGVuc29yIGEsIHRvcmNoOjpUZW5zb3IgYiwgdG9yY2g6OlRlbnNvciBhcywgdG9yY2g6OlRlbnNvciBicywgdG9yY2g6OlRlbnNvciBjKSB7CiAgICBpbnQgbSA9IGEuc2l6ZSgwKTsKICAgIGludCBuID0gYi5zaXplKDApOwogICAgaW50IGsgPSBhLnNpemUoMSk7CiAgICBjdXN0b21fa2VybmVsPDw8ZGltMygobSsxNSkvMTYsIChuKzE1KS8xNiksIGRpbTMoMTYsIDQpLCAwLCAwPj4+ICgoX19oaXBfZnA4X2U0bTNfZm51eiopYS5jb250aWd1b3VzKCkuZGF0YV9wdHIoKSwgKF9faGlwX2ZwOF9lNG0zX2ZudXoqKWIuY29udGlndW91cygpLmRhdGFfcHRyKCksIAogICAgYXMuZGF0YV9wdHI8ZmxvYXQ+KCksIGJzLmRhdGFfcHRyPGZsb2F0PigpLCAoX19oaXBfYmZsb2F0MTYqKWMuZGF0YV9wdHIoKSwgbSwgbiwgayk7CiAgICAvL0MxMF9DVURBX0NIRUNLKGN1ZGFHZXRMYXN0RXJyb3IoKSk7Cn0KIiIiCgppbXBvcnQgb3MKb3MuZW52aXJvblsiQ1hYIl0gPSAiY2xhbmcrKyIKCm1vZHVsZSA9IGxvYWRfaW5saW5lKAogICAgbmFtZT0nZnA4X21tJywKICAgIGNwcF9zb3VyY2VzPVtDUFBfV1JBUFBFUl0sCiAgICBjdWRhX3NvdXJjZXM9W0NVREFfU1JDXSwKICAgIGZ1bmN0aW9ucz1bJ2ZwOF9tbSddLAogICAgdmVyYm9zZT1UcnVlLAogICAgZXh0cmFfY3VkYV9jZmxhZ3M9WyItLW9mZmxvYWQtYXJjaD1nZng5NDIiLCAiLXN0ZD1jKysyMCJdLAopCgoKZGVmIGN1c3RvbV9rZXJuZWwoZGF0YTogaW5wdXRfdCkgLT4gb3V0cHV0X3Q6CiAgICBhLCBiLCBhX3NjYWxlLCBiX3NjYWxlLCBjID0gZGF0YQogICAgbW9kdWxlLmZwOF9tbShhLCBiLCBhX3NjYWxlLCBiX3NjYWxlLCBjKQogICAgcmV0dXJuIGMKCg==No newline at end of file
Best evidence level for this revision: reported
JSON