submission 21025
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.
finish-1.py
curl "https://kernelindex.com/api/v1/implementations/kernelbot-amd-fp8-mm-21025?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
86.8µs
#33 of 98
2025-05-12
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [1024, 7168] · n=576 · seed=12346
AMD Instinct MI300X
90.4µs
#38 of 98
2025-05-12
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [1024, 7168] · n=1536 · seed=8135
AMD Instinct MI300X
119.1µs
#28 of 98
2025-05-12
Show all 18 measurements ›Showing all 18 measurements ⌄
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [6144, 7168] · n=512 · seed=12341
AMD Instinct MI300X
219.7µs
#50 of 98
2025-05-12
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [6144, 7168] · n=576 · seed=9863
AMD Instinct MI300X
228.4µs
#47 of 98
2025-05-12
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [1024, 7168] · n=4608 · seed=7531
AMD Instinct MI300X
264.7µs
#53 of 98
2025-05-12
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [6144, 7168] · n=1536 · seed=6543
AMD Instinct MI300X
431.0µs
#53 of 98
2025-05-12
AMD FP8 blockwise GEMMfp32/fp8_e4m3fnuz · [6144, 7168] · n=4608 · seed=65436
AMD Instinct MI300X
1.11ms
#49 of 98
2025-05-12
Reported · How evidence levels are derived →
Source and license
sourceavailable
revision digestsha256:2df833bcd5336d5aa162e87a14d86d362fc5775c8d9a9153bf8801143f1da08e
license declaredunknown
license concludedunknown
imported2026-08-15
Kernel source
finish-1.py1 lines
IyBUaGlzIHNjcmlwdCBwcm92aWRlcyBhIHRlbXBsYXRlIGZvciB1c2luZyBsb2FkX2lubGluZSB0byBydW4gYSBISVAga2VybmVsIGZvcgpmcm9tIHRvcmNoLnV0aWxzLmNwcF9leHRlbnNpb24gaW1wb3J0IGxvYWRfaW5saW5lCmZyb20gdGFzayBpbXBvcnQgaW5wdXRfdCwgb3V0cHV0X3QKQ1BQX1dSQVBQRVIgPSAiIiIKdm9pZCBmcDhfbW0odG9yY2g6OlRlbnNvciBhLCB0b3JjaDo6VGVuc29yIGIsIHRvcmNoOjpUZW5zb3IgYXMsIHRvcmNoOjpUZW5zb3IgYnMsIHRvcmNoOjpUZW5zb3IgYyk7CiIiIgoKQ1VEQV9TUkMgPSAiIiIKI2luY2x1ZGUgPGhpcC9hbWRfZGV0YWlsL2FtZF9oaXBfZnA4Lmg+CiNpbmNsdWRlIDxoaXAvYW1kX2RldGFpbC9hbWRfaGlwX2JmMTYuaD4KCnVzaW5nIGYzMngxNiA9IF9fYXR0cmlidXRlX18oIChfX3ZlY3Rvcl9zaXplX18oMTYgKiBzaXplb2YoZmxvYXQpKSApKSBmbG9hdDsKCmNvbnN0ZXhwciBjb25zdCBpbnQgQkxPQ0sgPSAxMjg7CgpfX2RldmljZV9fIHN0YXRpYyB1aW50NjRfdCBwYWNrX3UxNng4X3RvX3U2NChjb25zdCB1aW50MTZfdCogc3JjKQp7CiAgICB1aW50MTZfdCBkc3RbXSA9IHsgc3JjWzFdLCBzcmNbM10sIHNyY1s1XSwgc3JjWzddIH07CiAgICByZXR1cm4gKnJlaW50ZXJwcmV0X2Nhc3Q8dWludDY0X3QqPihkc3QpOwp9CgpfX2dsb2JhbF9fIHZvaWQgY3VzdG9tX2tlcm5lbChjb25zdCB1aW50NjRfdCogY2FjaGUsIGNvbnN0IGZsb2F0KiBhcywgY29uc3QgZmxvYXQqIGJzLCAKICAgICAgICAgICAgICAgICAgIF9faGlwX2JmbG9hdDE2KiBjLCBpbnQgbSwgaW50IG4sIGludCBrLCBpbnQgY29sLCBpbnQgb2Zmc2V0KSB7CiAgICAvLyBZb3VyIGltcGxlbWVudGF0aW9uIGhlcmUKICAgIGNvbnN0IHVpbnQ2NF90KiBhID0gY2FjaGU7CiAgICBjb25zdCB1aW50NjRfdCogYiA9IGNhY2hlICsgb2Zmc2V0OwogICAgaW50IGN4ID0gMzIgKiBibG9ja0lkeC54OwogICAgaW50IGN5ID0gMzIgKiBibG9ja0lkeC55OwogICAgaWYoY3ggPj0gbSB8fCBjeSA+PSBuKSByZXR1cm47CiAgICBpbnQgdHggPSB0aHJlYWRJZHgueCAmIDMxOwogICAgaW50IHR5ID0gdGhyZWFkSWR4LnggPj4gNSAmIDE7CiAgICBpbnQgc24gPSAobiArIEJMT0NLIC0gMSkgPj4gNzsKICAgIGJzICs9IGN5ID4+IDc7CiAgICBhcyArPSBjeCArIHR4OwogICAgYSArPSBibG9ja0lkeC54ICogY29sICsgdGhyZWFkSWR4Lng7CiAgICBiICs9IGJsb2NrSWR4LnkgKiBjb2wgKyB0aHJlYWRJZHgueDsKICAgIGYzMngxNiByZXN1bHQgPSB7IH07CiAgICBmb3IoaW50IGkgPSAwOyBpIDwgazsgaSArPSBCTE9DSykgewogICAgICAgIGNvbnN0IGF1dG8qIGFwID0gYSArIGkgKiA0OwogICAgICAgIGNvbnN0IGF1dG8qIGJwID0gYiArIGkgKiA0OwogICAgICAgIGYzMngxNiBibG9ja19yZXN1bHQgPSB7IH07CiAgICAgICAgYmxvY2tfcmVzdWx0ID0gX19idWlsdGluX2FtZGdjbl9tZm1hX2YzMl8zMngzMngxNl9mcDhfZnA4KGJwWzBdLCBhcFswXSwgYmxvY2tfcmVzdWx0LCAwLCAwLCAwKTsKICAgICAgICBibG9ja19yZXN1bHQgPSBfX2J1aWx0aW5fYW1kZ2NuX21mbWFfZjMyXzMyeDMyeDE2X2ZwOF9mcDgoYnBbMHg0MF0sIGFwWzB4NDBdLCBibG9ja19yZXN1bHQsIDAsIDAsIDApOwogICAgICAgIGJsb2NrX3Jlc3VsdCA9IF9fYnVpbHRpbl9hbWRnY25fbWZtYV9mMzJfMzJ4MzJ4MTZfZnA4X2ZwOChicFsweDgwXSwgYXBbMHg4MF0sIGJsb2NrX3Jlc3VsdCwgMCwgMCwgMCk7CiAgICAgICAgYmxvY2tfcmVzdWx0ID0gX19idWlsdGluX2FtZGdjbl9tZm1hX2YzMl8zMngzMngxNl9mcDhfZnA4KGJwWzB4YzBdLCBhcFsweGMwXSwgYmxvY2tfcmVzdWx0LCAwLCAwLCAwKTsKICAgICAgICBibG9ja19yZXN1bHQgPSBfX2J1aWx0aW5fYW1kZ2NuX21mbWFfZjMyXzMyeDMyeDE2X2ZwOF9mcDgoYnBbMHgxMDBdLCBhcFsweDEwMF0sIGJsb2NrX3Jlc3VsdCwgMCwgMCwgMCk7CiAgICAgICAgYmxvY2tfcmVzdWx0ID0gX19idWlsdGluX2FtZGdjbl9tZm1hX2YzMl8zMngzMngxNl9mcDhfZnA4KGJwWzB4MTQwXSwgYXBbMHgxNDBdLCBibG9ja19yZXN1bHQsIDAsIDAsIDApOwogICAgICAgIGJsb2NrX3Jlc3VsdCA9IF9fYnVpbHRpbl9hbWRnY25fbWZtYV9mMzJfMzJ4MzJ4MTZfZnA4X2ZwOChicFsweDE4MF0sIGFwWzB4MTgwXSwgYmxvY2tfcmVzdWx0LCAwLCAwLCAwKTsKICAgICAgICBibG9ja19yZXN1bHQgPSBfX2J1aWx0aW5fYW1kZ2NuX21mbWFfZjMyXzMyeDMyeDE2X2ZwOF9mcDgoYnBbMHgxYzBdLCBhcFsweDFjMF0sIGJsb2NrX3Jlc3VsdCwgMCwgMCwgMCk7CiAgICAgICAgcmVzdWx0ICs9IGJsb2NrX3Jlc3VsdCAqIGJzWyhpID4+IDcpICogc25dICogYXNbKGkgPj4gNykgKiBtXTsKICAgIH0KICAgIGNvbnN0IGF1dG8qIHNyYyA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDE2X3QoKilbOF0+KCZyZXN1bHQpOwogICAgdWludDY0X3QqIGRzdCA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludDY0X3QqPihjICsgKHR4ICsgY3gpICogbiArIGN5ICsgdHkgKiA0KTsKICAgIGRzdFswXSA9IHBhY2tfdTE2eDhfdG9fdTY0KHNyY1swXSk7CiAgICBkc3RbMl0gPSBwYWNrX3UxNng4X3RvX3U2NChzcmNbMV0pOwogICAgZHN0WzRdID0gcGFja191MTZ4OF90b191NjQoc3JjWzJdKTsKICAgIGRzdFs2XSA9IHBhY2tfdTE2eDhfdG9fdTY0KHNyY1szXSk7Cn0KCl9fZ2xvYmFsX18gdm9pZCByZW9yZGVyX2tlcm5lbChjb25zdCBfX2hpcF9mcDhfZTRtM19mbnV6KiBzcmMwLCBjb25zdCBfX2hpcF9mcDhfZTRtM19mbnV6KiBzcmMxLCB1aW50NjRfdCogZHN0LCBpbnQgbSwgaW50IG4sIGludCBrLCBpbnQgY29sLCBpbnQgbmV4dCkgewogICAgbmV4dCA9IGJsb2NrSWR4LnggPj0gbmV4dCA/IG5leHQgOiAwOwogICAgbSA9IG5leHQgPyBuIDogbTsKICAgIGNvbnN0IF9faGlwX2ZwOF9lNG0zX2ZudXoqIHNyYyA9IG5leHQgPyBzcmMxIDogc3JjMDsKICAgIGludCBjeCA9IChibG9ja0lkeC54IC0gbmV4dCkgKiAzMiArICh0aHJlYWRJZHgueCAmIDMxKTsKICAgIGludCBjeSA9IChibG9ja0lkeC55ICogMiArICh0aHJlYWRJZHgueCA+PiA1ICYgMSkpICogODsKICAgIGlmIChjeCA+PSBtIHx8IGN5ID49IGspIHJldHVybjsKICAgIHNyYyArPSBjeSAqIG0gKyBjeDsKICAgIF9faGlwX2ZwOF9lNG0zX2ZudXogYnVmZmVyWzhdID0geyBzcmNbMF0sIHNyY1ttXSwgc3JjWzIgKiBtXSwgc3JjWzMgKiBtXSwKICAgICAgc3JjWzQgKiBtXSwgc3JjWzUgKiBtXSwgc3JjWzYgKiBtXSwgc3JjWzcgKiBtXX07CiAgICBkc3RbYmxvY2tJZHgueCAqIGNvbCArIGJsb2NrSWR4LnkgKiA2NCArIHRocmVhZElkeC54XSA9ICpyZWludGVycHJldF9jYXN0PHVpbnQ2NF90Kj4oYnVmZmVyKTsKfQoKdm9pZCBmcDhfbW0odG9yY2g6OlRlbnNvciBhLCB0b3JjaDo6VGVuc29yIGIsIHRvcmNoOjpUZW5zb3IgYXMsIHRvcmNoOjpUZW5zb3IgYnMsIHRvcmNoOjpUZW5zb3IgYykgewogICAgaW50IG0gPSBhLnNpemUoMCk7CiAgICBpbnQgbiA9IGIuc2l6ZSgwKTsKICAgIGludCBrID0gYS5zaXplKDEpOwogICAgaW50IG5leHQgPSAobSArIDEyNykgLyAxMjggKiA0OwogICAgaW50IHJvdyA9IChuICsgMTI3KSAvIDEyOCAqIDQgKyBuZXh0OwogICAgaW50IGNvbCA9IChrICsgMTI3KSAvIDEyOCAqIDUxMjsKICAgIGF1dG8gb3B0aW9ucyA9IHRvcmNoOjpUZW5zb3JPcHRpb25zKCkuZHR5cGUodG9yY2g6OmtVSW50NjQpLmRldmljZSh0b3JjaDo6a0NVREEpOwogICAgdG9yY2g6OlRlbnNvciBjYWNoZSA9IHRvcmNoOjp6ZXJvcyh7cm93LCBjb2x9LCBvcHRpb25zKTsKICAgIHJlb3JkZXJfa2VybmVsPDw8ZGltMyhyb3csIGNvbCAvIDY0KSwgZGltMyg2NCksIDAsIDA+Pj4oKF9faGlwX2ZwOF9lNG0zX2ZudXoqKWEuZGF0YV9wdHIoKSwgIChfX2hpcF9mcDhfZTRtM19mbnV6KiliLmRhdGFfcHRyKCksCiAgICAgICAgY2FjaGUuZGF0YV9wdHI8dWludDY0X3Q+KCksIG0sIG4sIGssIGNvbCwgbmV4dCk7CiAgICBjdXN0b21fa2VybmVsPDw8ZGltMygobSszMSkvMzIsIChuKzMxKS8zMiksIGRpbTMoNjQpLCAwLCAwPj4+IChjYWNoZS5kYXRhX3B0cjx1aW50NjRfdD4oKSwKICAgICAgICBhcy5kYXRhX3B0cjxmbG9hdD4oKSwgYnMuZGF0YV9wdHI8ZmxvYXQ+KCksIChfX2hpcF9iZmxvYXQxNiopYy5kYXRhX3B0cigpLCBtLCBuLCBrLCBjb2wsIG5leHQgKiBjb2wpOwp9CiIiIgoKaW1wb3J0IG9zCm9zLmVudmlyb25bIkNYWCJdID0gImNsYW5nKysiCgptb2R1bGUgPSBsb2FkX2lubGluZSgKICAgIG5hbWU9J2ZwOF9tbScsCiAgICBjcHBfc291cmNlcz1bQ1BQX1dSQVBQRVJdLAogICAgY3VkYV9zb3VyY2VzPVtDVURBX1NSQ10sCiAgICBmdW5jdGlvbnM9WydmcDhfbW0nXSwKICAgIHZlcmJvc2U9VHJ1ZSwKICAgIGV4dHJhX2N1ZGFfY2ZsYWdzPVsiLS1vZmZsb2FkLWFyY2g9Z2Z4OTQyIiwgIi1zdGQ9YysrMjAiLCAiLU8zIl0sCikKCgpkZWYgY3VzdG9tX2tlcm5lbChkYXRhOiBpbnB1dF90KSAtPiBvdXRwdXRfdDoKICAgIGEsIGIsIGFfc2NhbGUsIGJfc2NhbGUsIGMgPSBkYXRhCiAgICBtb2R1bGUuZnA4X21tKGEsIGIsIGFfc2NhbGUsIGJfc2NhbGUsIGMpCiAgICByZXR1cm4gYwoKSource 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 20999.
- IyBUaGlzIHNjcmlwdCBwcm92aWRlcyBhIHRlbXBsYXRlIGZvciB1c2luZyBsb2FkX2lubGluZSB0byBydW4gYSBISVAga2VybmVsIGZvcgpmcm9tIHRvcmNoLnV0aWxzLmNwcF9leHRlbnNpb24gaW1wb3J0IGxvYWRfaW5saW5lCmZyb20gdGFzayBpbXBvcnQgaW5wdXRfdCwgb3V0cHV0X3QKQ1BQX1dSQVBQRVIgPSAiIiIKdm9pZCBmcDhfbW0odG9yY2g6OlRlbnNvciBhLCB0b3JjaDo6VGVuc29yIGIsIHRvcmNoOjpUZW5zb3IgYXMsIHRvcmNoOjpUZW5zb3IgYnMsIHRvcmNoOjpUZW5zb3IgYyk7CiIiIgoKQ1VEQV9TUkMgPSAiIiIKI2luY2x1ZGUgPGhpcC9hbWRfZGV0YWlsL2FtZF9oaXBfZnA4Lmg+CiNpbmNsdWRlIDxoaXAvYW1kX2RldGFpbC9hbWRfaGlwX2JmMTYuaD4KCnVzaW5nIGYzMngxNiA9IF9fYXR0cmlidXRlX18oIChfX3ZlY3Rvcl9zaXplX18oMTYgKiBzaXplb2YoZmxvYXQpKSApKSBmbG9hdDsKCmNvbnN0ZXhwciBjb25zdCBpbnQgQkxPQ0sgPSAxMjg7CgpfX2RldmljZV9fIHN0YXRpYyB1aW50NjRfdCBwYWNrX3UxNng4X3RvX3U2NChjb25zdCB1aW50MTZfdCogc3JjKQp7CiAgICB1aW50MTZfdCBkc3RbXSA9IHsgc3JjWzFdLCBzcmNbM10sIHNyY1s1XSwgc3JjWzddIH07CiAgICByZXR1cm4gKnJlaW50ZXJwcmV0X2Nhc3Q8dWludDY0X3QqPihkc3QpOwp9CgpfX2dsb2JhbF9fIHZvaWQgY3VzdG9tX2tlcm5lbChjb25zdCB1aW50NjRfdCogY2FjaGUsIGNvbnN0IGZsb2F0KiBhcywgY29uc3QgZmxvYXQqIGJzLCAKICAgICAgICAgICAgICAgICAgIF9faGlwX2JmbG9hdDE2KiBjLCBpbnQgbSwgaW50IG4sIGludCBrLCBpbnQgcm93LCBpbnQgbmV4dCkgewogICAgLy8gWW91ciBpbXBsZW1lbnRhdGlvbiBoZXJlCiAgICBjb25zdCB1aW50NjRfdCogYSA9IGNhY2hlOwogICAgY29uc3QgdWludDY0X3QqIGIgPSBjYWNoZSArIG5leHQ7CiAgICBpbnQgY3ggPSAzMiAqIGJsb2NrSWR4Lng7CiAgICBpbnQgY3kgPSAzMiAqIGJsb2NrSWR4Lnk7CiAgICBpZihjeCA+PSBtIHx8IGN5ID49IG4pIHJldHVybjsKICAgIGludCB0eCA9IHRocmVhZElkeC54ICYgMzE7CiAgICBpbnQgdHkgPSB0aHJlYWRJZHgueCA+PiA1ICYgMTsKICAgIGludCBzbiA9IChuICsgQkxPQ0sgLSAxKSA+PiA3OwogICAgYnMgKz0gY3kgPj4gNzsKICAgIGFzICs9IGN4ICsgdHg7CiAgICBhICs9IGJsb2NrSWR4LnggKiByb3cgKyB0aHJlYWRJZHgueDsKICAgIGIgKz0gYmxvY2tJZHgueSAqIHJvdyArIHRocmVhZElkeC54OwogICAgZjMyeDE2IHJlc3VsdCA9IHsgfTsKICAgIGZvcihpbnQgaSA9IDA7IGkgPCBrOyBpICs9IEJMT0NLKSB7CiAgICAgICAgY29uc3QgYXV0byogYXAgPSBhICsgaSAqIDQ7CiAgICAgICAgY29uc3QgYXV0byogYnAgPSBiICsgaSAqIDQ7CiAgICAgICAgZjMyeDE2IGJsb2NrX3Jlc3VsdCA9IHsgfTsKICAgICAgICBibG9ja19yZXN1bHQgPSBfX2J1aWx0aW5fYW1kZ2NuX21mbWFfZjMyXzMyeDMyeDE2X2ZwOF9mcDgoYnBbMF0sIGFwWzBdLCBibG9ja19yZXN1bHQsIDAsIDAsIDApOwogICAgICAgIGJsb2NrX3Jlc3VsdCA9IF9fYnVpbHRpbl9hbWRnY25fbWZtYV9mMzJfMzJ4MzJ4MTZfZnA4X2ZwOChicFsweDQwXSwgYXBbMHg0MF0sIGJsb2NrX3Jlc3VsdCwgMCwgMCwgMCk7CiAgICAgICAgYmxvY2tfcmVzdWx0ID0gX19idWlsdGluX2FtZGdjbl9tZm1hX2YzMl8zMngzMngxNl9mcDhfZnA4KGJwWzB4ODBdLCBhcFsweDgwXSwgYmxvY2tfcmVzdWx0LCAwLCAwLCAwKTsKICAgICAgICBibG9ja19yZXN1bHQgPSBfX2J1aWx0aW5fYW1kZ2NuX21mbWFfZjMyXzMyeDMyeDE2X2ZwOF9mcDgoYnBbMHhjMF0sIGFwWzB4YzBdLCBibG9ja19yZXN1bHQsIDAsIDAsIDApOwogICAgICAgIGJsb2NrX3Jlc3VsdCA9IF9fYnVpbHRpbl9hbWRnY25fbWZtYV9mMzJfMzJ4MzJ4MTZfZnA4X2ZwOChicFsweDEwMF0sIGFwWzB4MTAwXSwgYmxvY2tfcmVzdWx0LCAwLCAwLCAwKTsKICAgICAgICBibG9ja19yZXN1bHQgPSBfX2J1aWx0aW5fYW1kZ2NuX21mbWFfZjMyXzMyeDMyeDE2X2ZwOF9mcDgoYnBbMHgxNDBdLCBhcFsweDE0MF0sIGJsb2NrX3Jlc3VsdCwgMCwgMCwgMCk7CiAgICAgICAgYmxvY2tfcmVzdWx0ID0gX19idWlsdGluX2FtZGdjbl9tZm1hX2YzMl8zMngzMngxNl9mcDhfZnA4KGJwWzB4MTgwXSwgYXBbMHgxODBdLCBibG9ja19yZXN1bHQsIDAsIDAsIDApOwogICAgICAgIGJsb2NrX3Jlc3VsdCA9IF9fYnVpbHRpbl9hbWRnY25fbWZtYV9mMzJfMzJ4MzJ4MTZfZnA4X2ZwOChicFsweDFjMF0sIGFwWzB4MWMwXSwgYmxvY2tfcmVzdWx0LCAwLCAwLCAwKTsKICAgICAgICByZXN1bHQgKz0gYmxvY2tfcmVzdWx0ICogYnNbKGkgPj4gNykgKiBzbl0gKiBhc1soaSA+PiA3KSAqIG1dOwogICAgfQogICAgY29uc3QgYXV0byogc3JjID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50MTZfdCgqKVs4XT4oJnJlc3VsdCk7CiAgICB1aW50NjRfdCogZHN0ID0gcmVpbnRlcnByZXRfY2FzdDx1aW50NjRfdCo+KGMgKyAodHggKyBjeCkgKiBuICsgY3kgKyB0eSAqIDQpOwogICAgZHN0WzBdID0gcGFja191MTZ4OF90b191NjQoc3JjWzBdKTsKICAgIGRzdFsyXSA9IHBhY2tfdTE2eDhfdG9fdTY0KHNyY1sxXSk7CiAgICBkc3RbNF0gPSBwYWNrX3UxNng4X3RvX3U2NChzcmNbMl0pOwogICAgZHN0WzZdID0gcGFja191MTZ4OF90b191NjQoc3JjWzNdKTsKfQoKX19nbG9iYWxfXyB2b2lkIGxvYWRfa2VybmVsKGNvbnN0IF9faGlwX2ZwOF9lNG0zX2ZudXoqIHNyYywgdWludDY0X3QqIGRzdCwgaW50IG0sIGludCBrLCBpbnQgcm93LCBpbnQgbmV4dCkgewogICAgaW50IGN4ID0gYmxvY2tJZHgueCAqIDMyICsgKHRocmVhZElkeC54ICYgMzEpOwogICAgaW50IGN5ID0gKGJsb2NrSWR4LnkgKiAyICsgKHRocmVhZElkeC54ID4+IDUgJiAxKSkgKiA4OwogICAgaWYgKGN4ID49IG0gfHwgY3kgPj0gaykgcmV0dXJuOwogICAgc3JjICs9IGN5ICogbSArIGN4OwogICAgX19oaXBfZnA4X2U0bTNfZm51eiBidWZmZXJbOF0gPSB7IHNyY1swXSwgc3JjW21dLCBzcmNbMiAqIG1dLCBzcmNbMyAqIG1dLAogICAgICBzcmNbNCAqIG1dLCBzcmNbNSAqIG1dLCBzcmNbNiAqIG1dLCBzcmNbNyAqIG1dfTsKICAgIGRzdFtuZXh0ICsgYmxvY2tJZHgueCAqIHJvdyArIGJsb2NrSWR4LnkgKiA2NCArIHRocmVhZElkeC54XSA9ICpyZWludGVycHJldF9jYXN0PHVpbnQ2NF90Kj4oYnVmZmVyKTsKfQoKdm9pZCBmcDhfbW0odG9yY2g6OlRlbnNvciBhLCB0b3JjaDo6VGVuc29yIGIsIHRvcmNoOjpUZW5zb3IgYXMsIHRvcmNoOjpUZW5zb3IgYnMsIHRvcmNoOjpUZW5zb3IgYykgewogICAgaW50IG0gPSBhLnNpemUoMCk7CiAgICBpbnQgbiA9IGIuc2l6ZSgwKTsKICAgIGludCBrID0gYS5zaXplKDEpOwogICAgaW50IG0xID0gKG0gKyAxMjcpIC8gMTI4ICogNDsKICAgIGludCBuMSA9IChuICsgMTI3KSAvIDEyOCAqIDQ7CiAgICBpbnQgazEgPSAoayArIDEyNykgLyAxMjggKiA1MTI7CiAgICBhdXRvIG9wdGlvbnMgPSB0b3JjaDo6VGVuc29yT3B0aW9ucygpLmR0eXBlKHRvcmNoOjprVUludDY0KS5kZXZpY2UodG9yY2g6OmtDVURBKTsKICAgIHRvcmNoOjpUZW5zb3IgY2FjaGUgPSB0b3JjaDo6emVyb3Moe20xICsgbjEsIGsxfSwgb3B0aW9ucyk7CiAgICBsb2FkX2tlcm5lbDw8PGRpbTMobTEsIGsxIC8gNjQpLCBkaW0zKDY0KSwgMCwgMD4+PigoX19oaXBfZnA4X2U0bTNfZm51eiopYS5kYXRhX3B0cigpLCBjYWNoZS5kYXRhX3B0cjx1aW50NjRfdD4oKSwgbSwgaywgazEsIDApOwogICAgbG9hZF9rZXJuZWw8PDxkaW0zKG4xLCBrMSAvIDY0KSwgZGltMyg2NCksIDAsIDA+Pj4oKF9faGlwX2ZwOF9lNG0zX2ZudXoqKWIuZGF0YV9wdHIoKSwgY2FjaGUuZGF0YV9wdHI8dWludDY0X3Q+KCksIG4sIGssIGsxLCBrMSAqIG0xKTsKICAgIGN1c3RvbV9rZXJuZWw8PDxkaW0zKChtKzMxKS8zMiwgKG4rMzEpLzMyKSwgZGltMyg2NCksIDAsIDA+Pj4gKGNhY2hlLmRhdGFfcHRyPHVpbnQ2NF90PigpLAogICAgICAgIGFzLmRhdGFfcHRyPGZsb2F0PigpLCBicy5kYXRhX3B0cjxmbG9hdD4oKSwgKF9faGlwX2JmbG9hdDE2KiljLmRhdGFfcHRyKCksIG0sIG4sIGssIGsxLCBrMSAqIG0xKTsKfQoiIiIKCmltcG9ydCBvcwpvcy5lbnZpcm9uWyJDWFgiXSA9ICJjbGFuZysrIgoKbW9kdWxlID0gbG9hZF9pbmxpbmUoCiAgICBuYW1lPSdmcDhfbW0nLAogICAgY3BwX3NvdXJjZXM9W0NQUF9XUkFQUEVSXSwKICAgIGN1ZGFfc291cmNlcz1bQ1VEQV9TUkNdLAogICAgZnVuY3Rpb25zPVsnZnA4X21tJ10sCiAgICB2ZXJib3NlPVRydWUsCiAgICBleHRyYV9jdWRhX2NmbGFncz1bIi0tb2ZmbG9hZC1hcmNoPWdmeDk0MiIsICItc3RkPWMrKzIwIiwgIi1PMyJdLAopCgoKZGVmIGN1c3RvbV9rZXJuZWwoZGF0YTogaW5wdXRfdCkgLT4gb3V0cHV0X3Q6CiAgICBhLCBiLCBhX3NjYWxlLCBiX3NjYWxlLCBjID0gZGF0YQogICAgbW9kdWxlLmZwOF9tbShhLCBiLCBhX3NjYWxlLCBiX3NjYWxlLCBjKQogICAgcmV0dXJuIGMKCg==No newline at end of file+ IyBUaGlzIHNjcmlwdCBwcm92aWRlcyBhIHRlbXBsYXRlIGZvciB1c2luZyBsb2FkX2lubGluZSB0byBydW4gYSBISVAga2VybmVsIGZvcgpmcm9tIHRvcmNoLnV0aWxzLmNwcF9leHRlbnNpb24gaW1wb3J0IGxvYWRfaW5saW5lCmZyb20gdGFzayBpbXBvcnQgaW5wdXRfdCwgb3V0cHV0X3QKQ1BQX1dSQVBQRVIgPSAiIiIKdm9pZCBmcDhfbW0odG9yY2g6OlRlbnNvciBhLCB0b3JjaDo6VGVuc29yIGIsIHRvcmNoOjpUZW5zb3IgYXMsIHRvcmNoOjpUZW5zb3IgYnMsIHRvcmNoOjpUZW5zb3IgYyk7CiIiIgoKQ1VEQV9TUkMgPSAiIiIKI2luY2x1ZGUgPGhpcC9hbWRfZGV0YWlsL2FtZF9oaXBfZnA4Lmg+CiNpbmNsdWRlIDxoaXAvYW1kX2RldGFpbC9hbWRfaGlwX2JmMTYuaD4KCnVzaW5nIGYzMngxNiA9IF9fYXR0cmlidXRlX18oIChfX3ZlY3Rvcl9zaXplX18oMTYgKiBzaXplb2YoZmxvYXQpKSApKSBmbG9hdDsKCmNvbnN0ZXhwciBjb25zdCBpbnQgQkxPQ0sgPSAxMjg7CgpfX2RldmljZV9fIHN0YXRpYyB1aW50NjRfdCBwYWNrX3UxNng4X3RvX3U2NChjb25zdCB1aW50MTZfdCogc3JjKQp7CiAgICB1aW50MTZfdCBkc3RbXSA9IHsgc3JjWzFdLCBzcmNbM10sIHNyY1s1XSwgc3JjWzddIH07CiAgICByZXR1cm4gKnJlaW50ZXJwcmV0X2Nhc3Q8dWludDY0X3QqPihkc3QpOwp9CgpfX2dsb2JhbF9fIHZvaWQgY3VzdG9tX2tlcm5lbChjb25zdCB1aW50NjRfdCogY2FjaGUsIGNvbnN0IGZsb2F0KiBhcywgY29uc3QgZmxvYXQqIGJzLCAKICAgICAgICAgICAgICAgICAgIF9faGlwX2JmbG9hdDE2KiBjLCBpbnQgbSwgaW50IG4sIGludCBrLCBpbnQgY29sLCBpbnQgb2Zmc2V0KSB7CiAgICAvLyBZb3VyIGltcGxlbWVudGF0aW9uIGhlcmUKICAgIGNvbnN0IHVpbnQ2NF90KiBhID0gY2FjaGU7CiAgICBjb25zdCB1aW50NjRfdCogYiA9IGNhY2hlICsgb2Zmc2V0OwogICAgaW50IGN4ID0gMzIgKiBibG9ja0lkeC54OwogICAgaW50IGN5ID0gMzIgKiBibG9ja0lkeC55OwogICAgaWYoY3ggPj0gbSB8fCBjeSA+PSBuKSByZXR1cm47CiAgICBpbnQgdHggPSB0aHJlYWRJZHgueCAmIDMxOwogICAgaW50IHR5ID0gdGhyZWFkSWR4LnggPj4gNSAmIDE7CiAgICBpbnQgc24gPSAobiArIEJMT0NLIC0gMSkgPj4gNzsKICAgIGJzICs9IGN5ID4+IDc7CiAgICBhcyArPSBjeCArIHR4OwogICAgYSArPSBibG9ja0lkeC54ICogY29sICsgdGhyZWFkSWR4Lng7CiAgICBiICs9IGJsb2NrSWR4LnkgKiBjb2wgKyB0aHJlYWRJZHgueDsKICAgIGYzMngxNiByZXN1bHQgPSB7IH07CiAgICBmb3IoaW50IGkgPSAwOyBpIDwgazsgaSArPSBCTE9DSykgewogICAgICAgIGNvbnN0IGF1dG8qIGFwID0gYSArIGkgKiA0OwogICAgICAgIGNvbnN0IGF1dG8qIGJwID0gYiArIGkgKiA0OwogICAgICAgIGYzMngxNiBibG9ja19yZXN1bHQgPSB7IH07CiAgICAgICAgYmxvY2tfcmVzdWx0ID0gX19idWlsdGluX2FtZGdjbl9tZm1hX2YzMl8zMngzMngxNl9mcDhfZnA4KGJwWzBdLCBhcFswXSwgYmxvY2tfcmVzdWx0LCAwLCAwLCAwKTsKICAgICAgICBibG9ja19yZXN1bHQgPSBfX2J1aWx0aW5fYW1kZ2NuX21mbWFfZjMyXzMyeDMyeDE2X2ZwOF9mcDgoYnBbMHg0MF0sIGFwWzB4NDBdLCBibG9ja19yZXN1bHQsIDAsIDAsIDApOwogICAgICAgIGJsb2NrX3Jlc3VsdCA9IF9fYnVpbHRpbl9hbWRnY25fbWZtYV9mMzJfMzJ4MzJ4MTZfZnA4X2ZwOChicFsweDgwXSwgYXBbMHg4MF0sIGJsb2NrX3Jlc3VsdCwgMCwgMCwgMCk7CiAgICAgICAgYmxvY2tfcmVzdWx0ID0gX19idWlsdGluX2FtZGdjbl9tZm1hX2YzMl8zMngzMngxNl9mcDhfZnA4KGJwWzB4YzBdLCBhcFsweGMwXSwgYmxvY2tfcmVzdWx0LCAwLCAwLCAwKTsKICAgICAgICBibG9ja19yZXN1bHQgPSBfX2J1aWx0aW5fYW1kZ2NuX21mbWFfZjMyXzMyeDMyeDE2X2ZwOF9mcDgoYnBbMHgxMDBdLCBhcFsweDEwMF0sIGJsb2NrX3Jlc3VsdCwgMCwgMCwgMCk7CiAgICAgICAgYmxvY2tfcmVzdWx0ID0gX19idWlsdGluX2FtZGdjbl9tZm1hX2YzMl8zMngzMngxNl9mcDhfZnA4KGJwWzB4MTQwXSwgYXBbMHgxNDBdLCBibG9ja19yZXN1bHQsIDAsIDAsIDApOwogICAgICAgIGJsb2NrX3Jlc3VsdCA9IF9fYnVpbHRpbl9hbWRnY25fbWZtYV9mMzJfMzJ4MzJ4MTZfZnA4X2ZwOChicFsweDE4MF0sIGFwWzB4MTgwXSwgYmxvY2tfcmVzdWx0LCAwLCAwLCAwKTsKICAgICAgICBibG9ja19yZXN1bHQgPSBfX2J1aWx0aW5fYW1kZ2NuX21mbWFfZjMyXzMyeDMyeDE2X2ZwOF9mcDgoYnBbMHgxYzBdLCBhcFsweDFjMF0sIGJsb2NrX3Jlc3VsdCwgMCwgMCwgMCk7CiAgICAgICAgcmVzdWx0ICs9IGJsb2NrX3Jlc3VsdCAqIGJzWyhpID4+IDcpICogc25dICogYXNbKGkgPj4gNykgKiBtXTsKICAgIH0KICAgIGNvbnN0IGF1dG8qIHNyYyA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDE2X3QoKilbOF0+KCZyZXN1bHQpOwogICAgdWludDY0X3QqIGRzdCA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludDY0X3QqPihjICsgKHR4ICsgY3gpICogbiArIGN5ICsgdHkgKiA0KTsKICAgIGRzdFswXSA9IHBhY2tfdTE2eDhfdG9fdTY0KHNyY1swXSk7CiAgICBkc3RbMl0gPSBwYWNrX3UxNng4X3RvX3U2NChzcmNbMV0pOwogICAgZHN0WzRdID0gcGFja191MTZ4OF90b191NjQoc3JjWzJdKTsKICAgIGRzdFs2XSA9IHBhY2tfdTE2eDhfdG9fdTY0KHNyY1szXSk7Cn0KCl9fZ2xvYmFsX18gdm9pZCByZW9yZGVyX2tlcm5lbChjb25zdCBfX2hpcF9mcDhfZTRtM19mbnV6KiBzcmMwLCBjb25zdCBfX2hpcF9mcDhfZTRtM19mbnV6KiBzcmMxLCB1aW50NjRfdCogZHN0LCBpbnQgbSwgaW50IG4sIGludCBrLCBpbnQgY29sLCBpbnQgbmV4dCkgewogICAgbmV4dCA9IGJsb2NrSWR4LnggPj0gbmV4dCA/IG5leHQgOiAwOwogICAgbSA9IG5leHQgPyBuIDogbTsKICAgIGNvbnN0IF9faGlwX2ZwOF9lNG0zX2ZudXoqIHNyYyA9IG5leHQgPyBzcmMxIDogc3JjMDsKICAgIGludCBjeCA9IChibG9ja0lkeC54IC0gbmV4dCkgKiAzMiArICh0aHJlYWRJZHgueCAmIDMxKTsKICAgIGludCBjeSA9IChibG9ja0lkeC55ICogMiArICh0aHJlYWRJZHgueCA+PiA1ICYgMSkpICogODsKICAgIGlmIChjeCA+PSBtIHx8IGN5ID49IGspIHJldHVybjsKICAgIHNyYyArPSBjeSAqIG0gKyBjeDsKICAgIF9faGlwX2ZwOF9lNG0zX2ZudXogYnVmZmVyWzhdID0geyBzcmNbMF0sIHNyY1ttXSwgc3JjWzIgKiBtXSwgc3JjWzMgKiBtXSwKICAgICAgc3JjWzQgKiBtXSwgc3JjWzUgKiBtXSwgc3JjWzYgKiBtXSwgc3JjWzcgKiBtXX07CiAgICBkc3RbYmxvY2tJZHgueCAqIGNvbCArIGJsb2NrSWR4LnkgKiA2NCArIHRocmVhZElkeC54XSA9ICpyZWludGVycHJldF9jYXN0PHVpbnQ2NF90Kj4oYnVmZmVyKTsKfQoKdm9pZCBmcDhfbW0odG9yY2g6OlRlbnNvciBhLCB0b3JjaDo6VGVuc29yIGIsIHRvcmNoOjpUZW5zb3IgYXMsIHRvcmNoOjpUZW5zb3IgYnMsIHRvcmNoOjpUZW5zb3IgYykgewogICAgaW50IG0gPSBhLnNpemUoMCk7CiAgICBpbnQgbiA9IGIuc2l6ZSgwKTsKICAgIGludCBrID0gYS5zaXplKDEpOwogICAgaW50IG5leHQgPSAobSArIDEyNykgLyAxMjggKiA0OwogICAgaW50IHJvdyA9IChuICsgMTI3KSAvIDEyOCAqIDQgKyBuZXh0OwogICAgaW50IGNvbCA9IChrICsgMTI3KSAvIDEyOCAqIDUxMjsKICAgIGF1dG8gb3B0aW9ucyA9IHRvcmNoOjpUZW5zb3JPcHRpb25zKCkuZHR5cGUodG9yY2g6OmtVSW50NjQpLmRldmljZSh0b3JjaDo6a0NVREEpOwogICAgdG9yY2g6OlRlbnNvciBjYWNoZSA9IHRvcmNoOjp6ZXJvcyh7cm93LCBjb2x9LCBvcHRpb25zKTsKICAgIHJlb3JkZXJfa2VybmVsPDw8ZGltMyhyb3csIGNvbCAvIDY0KSwgZGltMyg2NCksIDAsIDA+Pj4oKF9faGlwX2ZwOF9lNG0zX2ZudXoqKWEuZGF0YV9wdHIoKSwgIChfX2hpcF9mcDhfZTRtM19mbnV6KiliLmRhdGFfcHRyKCksCiAgICAgICAgY2FjaGUuZGF0YV9wdHI8dWludDY0X3Q+KCksIG0sIG4sIGssIGNvbCwgbmV4dCk7CiAgICBjdXN0b21fa2VybmVsPDw8ZGltMygobSszMSkvMzIsIChuKzMxKS8zMiksIGRpbTMoNjQpLCAwLCAwPj4+IChjYWNoZS5kYXRhX3B0cjx1aW50NjRfdD4oKSwKICAgICAgICBhcy5kYXRhX3B0cjxmbG9hdD4oKSwgYnMuZGF0YV9wdHI8ZmxvYXQ+KCksIChfX2hpcF9iZmxvYXQxNiopYy5kYXRhX3B0cigpLCBtLCBuLCBrLCBjb2wsIG5leHQgKiBjb2wpOwp9CiIiIgoKaW1wb3J0IG9zCm9zLmVudmlyb25bIkNYWCJdID0gImNsYW5nKysiCgptb2R1bGUgPSBsb2FkX2lubGluZSgKICAgIG5hbWU9J2ZwOF9tbScsCiAgICBjcHBfc291cmNlcz1bQ1BQX1dSQVBQRVJdLAogICAgY3VkYV9zb3VyY2VzPVtDVURBX1NSQ10sCiAgICBmdW5jdGlvbnM9WydmcDhfbW0nXSwKICAgIHZlcmJvc2U9VHJ1ZSwKICAgIGV4dHJhX2N1ZGFfY2ZsYWdzPVsiLS1vZmZsb2FkLWFyY2g9Z2Z4OTQyIiwgIi1zdGQ9YysrMjAiLCAiLU8zIl0sCikKCgpkZWYgY3VzdG9tX2tlcm5lbChkYXRhOiBpbnB1dF90KSAtPiBvdXRwdXRfdDoKICAgIGEsIGIsIGFfc2NhbGUsIGJfc2NhbGUsIGMgPSBkYXRhCiAgICBtb2R1bGUuZnA4X21tKGEsIGIsIGFfc2NhbGUsIGJfc2NhbGUsIGMpCiAgICByZXR1cm4gYwoKNo newline at end of file
Best evidence level for this revision: reported
JSON