Skip to content
KernelIndex
Search⌘K

amd-mixture-of-experts · submission 25595

KernelBot user 160 · 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.

submission-moe.py
curl "https://kernelindex.com/api/v1/implementations/kernelbot-amd-mixture-of-experts-25595?include=source"
interfacepython
Compatibility
measured onAMD Instinct MI300X
declared hardwareAMD Instinct MI300X
architecturesgfx942
dtypesfp16

Benchmark evidence

2 measurements across 1 GPU, fastest first.

Operation / workload
Hardware
Latency
Rank
Observed
AMD DeepSeek-style MoE layerfp16 · [1, 2048, 7168]
AMD Instinct MI300X
6.42ms
#47 of 118
2025-05-20
AMD DeepSeek-style MoE layerfp16 · [1, 8192, 7168]
AMD Instinct MI300X
13.9ms
#39 of 118
2025-05-20

Reported · How evidence levels are derived →

Source and license

sourceavailable
revision digestsha256:cc86fef97f785e65ec71be3c164bffb8b136869e1a361f0b1c9a659c13575eea
license declaredunknown
license concludedunknown
imported2026-08-15

Kernel source

submission-moe.py1 lines
IyFQT1BDT1JOIGxlYWRlcmJvYXJkIGFtZC1taXh0dXJlLW9mLWV4cGVydHMKIyFQT1BDT1JOIGdwdXMgTUkzMDAKCmltcG9ydCBtYXRoCmltcG9ydCB0b3JjaAppbXBvcnQgdG9yY2gubm4gYXMgbm4KaW1wb3J0IHRvcmNoLm5uLmZ1bmN0aW9uYWwgYXMgRgpmcm9tIHR5cGluZyBpbXBvcnQgRGljdCwgVHVwbGUsIE9wdGlvbmFsCmZyb20gdGFzayBpbXBvcnQgaW5wdXRfdCwgb3V0cHV0X3QKCgpjbGFzcyBGdXNlZF9NT0Uobm4uTW9kdWxlKToKICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjb25maWc6IERpY3QpOgogICAgICAgIHN1cGVyKCkuX19pbml0X18oKQogICAgICAgIHNlbGYuY29uZmlnID0gY29uZmlnCiAgICAgICAgCiAgICAgICAgc2VsZi5udW1fcm91dGVkX2V4cGVydHMgPSBjb25maWdbIm5fcm91dGVkX2V4cGVydHMiXQogICAgICAgIHNlbGYubnVtX2V4cGVydHNfcGVyX3Rva2VuID0gY29uZmlnWyJuX2V4cGVydHNfcGVyX3Rva2VuIl0KICAgICAgICAKICAgICAgICBzZWxmLmFsbF93ZWlnaHRzID0gewogICAgICAgICAgICAicm91dGVyIjogTm9uZSwKICAgICAgICAgICAgImV4cGVydHNfZ2F0ZSI6IFtOb25lXSAqIHNlbGYubnVtX3JvdXRlZF9leHBlcnRzLAogICAgICAgICAgICAiZXhwZXJ0c191cCI6IFtOb25lXSAqIHNlbGYubnVtX3JvdXRlZF9leHBlcnRzLAogICAgICAgICAgICAiZXhwZXJ0c19kb3duIjogW05vbmVdICogc2VsZi5udW1fcm91dGVkX2V4cGVydHMsCiAgICAgICAgICAgICJzaGFyZWRfZ2F0ZSI6IE5vbmUsCiAgICAgICAgICAgICJzaGFyZWRfdXAiOiBOb25lLAogICAgICAgICAgICAic2hhcmVkX2Rvd24iOiBOb25lCiAgICAgICAgfQoKICAgIGRlZiBmb3J3YXJkKHNlbGYsIHg6IHRvcmNoLlRlbnNvcikgLT4gdG9yY2guVGVuc29yOgogICAgICAgIG9yaWdfc2hhcGUgPSB4LnNoYXBlCiAgICAgICAgYmF0Y2hfc2l6ZSwgc2VxX2xlbiwgaGlkZGVuX2RpbSA9IHguc2hhcGUKICAgICAgICB0b3RhbF90b2tlbnMgPSBiYXRjaF9zaXplICogc2VxX2xlbgogICAgICAgIAogICAgICAgIHNoYXJlZF9nYXRlX2FjdGl2YXRpb24gPSBGLnNpbHUoeCBAIHNlbGYuYWxsX3dlaWdodHNbInNoYXJlZF9nYXRlIl0pCiAgICAgICAgc2hhcmVkX3VwID0geCBAIHNlbGYuYWxsX3dlaWdodHNbInNoYXJlZF91cCJdCiAgICAgICAgcm91dGVyX2xvZ2l0cyA9IHggQCBzZWxmLmFsbF93ZWlnaHRzWyJyb3V0ZXIiXQogICAgICAgIAogICAgICAgIHJvdXRlcl9wcm9icyA9IEYuc29mdG1heChyb3V0ZXJfbG9naXRzLCBkaW09LTEpCiAgICAgICAgdG9wa19wcm9icywgdG9wa19pbmRpY2VzID0gdG9yY2gudG9waygKICAgICAgICAgICAgcm91dGVyX3Byb2JzLCBrPXNlbGYubnVtX2V4cGVydHNfcGVyX3Rva2VuLCBkaW09LTEsIHNvcnRlZD1GYWxzZQogICAgICAgICkKICAgICAgICAKICAgICAgICBzaGFyZWRfb3V0cHV0ID0gKHNoYXJlZF9nYXRlX2FjdGl2YXRpb24gKiBzaGFyZWRfdXApIEAgc2VsZi5hbGxfd2VpZ2h0c1sic2hhcmVkX2Rvd24iXQogICAgICAgIAogICAgICAgIHhfZmxhdCA9IHgucmVzaGFwZSh0b3RhbF90b2tlbnMsIGhpZGRlbl9kaW0pCiAgICAgICAgCiAgICAgICAgZmxhdF90b3BrX2luZGljZXMgPSB0b3BrX2luZGljZXMucmVzaGFwZSgtMSkKICAgICAgICBmbGF0X3RvcGtfcHJvYnMgPSB0b3BrX3Byb2JzLnJlc2hhcGUoLTEsIDEpCiAgICAgICAgCiAgICAgICAgcm91dGVkX291dHB1dCA9IHRvcmNoLnplcm9zX2xpa2UoeF9mbGF0KQogICAgICAgIAogICAgICAgIHNvcnRlZF9pZHggPSBmbGF0X3RvcGtfaW5kaWNlcy5hcmdzb3J0KCkKICAgICAgICB0b2tlbl9pZHggPSBzb3J0ZWRfaWR4IC8vIHNlbGYubnVtX2V4cGVydHNfcGVyX3Rva2VuCiAgICAgICAgCiAgICAgICAgZXhwZXJ0X2NvdW50cyA9IGZsYXRfdG9wa19pbmRpY2VzLmJpbmNvdW50KCkKICAgICAgICBleHBlcnRfY3Vtc3VtID0gZXhwZXJ0X2NvdW50cy5jdW1zdW0oMCkuY3B1KCkubnVtcHkoKQogICAgICAgIAogICAgICAgIGZvciBleHBlcnRfaWQgaW4gcmFuZ2Uoc2VsZi5udW1fcm91dGVkX2V4cGVydHMpOgogICAgICAgICAgICBzdGFydF9pZHggPSAwIGlmIGV4cGVydF9pZCA9PSAwIGVsc2UgZXhwZXJ0X2N1bXN1bVtleHBlcnRfaWQgLSAxXQogICAgICAgICAgICBlbmRfaWR4ID0gZXhwZXJ0X2N1bXN1bVtleHBlcnRfaWRdIGlmIGV4cGVydF9pZCA8IGxlbihleHBlcnRfY3Vtc3VtKSBlbHNlIDAKICAgICAgICAgICAgCiAgICAgICAgICAgIGlmIHN0YXJ0X2lkeCA9PSBlbmRfaWR4OgogICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAgICAgICAgIAogICAgICAgICAgICBjdXJyZW50X3Rva2VucyA9IHRva2VuX2lkeFtzdGFydF9pZHg6ZW5kX2lkeF0KICAgICAgICAgICAgCiAgICAgICAgICAgIGV4cGVydF9pbnB1dCA9IHhfZmxhdFtjdXJyZW50X3Rva2Vuc10KICAgICAgICAgICAgCiAgICAgICAgICAgIGdhdGVfd2VpZ2h0ID0gc2VsZi5hbGxfd2VpZ2h0c1siZXhwZXJ0c19nYXRlIl1bZXhwZXJ0X2lkXQogICAgICAgICAgICB1cF93ZWlnaHQgPSBzZWxmLmFsbF93ZWlnaHRzWyJleHBlcnRzX3VwIl1bZXhwZXJ0X2lkXQogICAgICAgICAgICBkb3duX3dlaWdodCA9IHNlbGYuYWxsX3dlaWdodHNbImV4cGVydHNfZG93biJdW2V4cGVydF9pZF0KICAgICAgICAgICAgCiAgICAgICAgICAgIGV4cGVydF9vdXRwdXQgPSBGLnNpbHUoZXhwZXJ0X2lucHV0IEAgZ2F0ZV93ZWlnaHQpICogKGV4cGVydF9pbnB1dCBAIHVwX3dlaWdodCkgQCBkb3duX3dlaWdodAogICAgICAgICAgICBleHBlcnRfb3V0cHV0Lm11bF8oZmxhdF90b3BrX3Byb2JzW3NvcnRlZF9pZHhbc3RhcnRfaWR4OmVuZF9pZHhdXSkKICAgICAgICAgICAgCiAgICAgICAgICAgIGV4cGFuZGVkX2luZGljZXMgPSBjdXJyZW50X3Rva2Vucy51bnNxdWVlemUoMSkuZXhwYW5kKC0xLCBleHBlcnRfb3V0cHV0LnNpemUoMSkpCiAgICAgICAgICAgIHJvdXRlZF9vdXRwdXQuc2NhdHRlcl9hZGRfKDAsIGV4cGFuZGVkX2luZGljZXMsIGV4cGVydF9vdXRwdXQpCiAgICAgICAgICAgIAogICAgICAgIHJldHVybiByb3V0ZWRfb3V0cHV0LnJlc2hhcGUob3JpZ19zaGFwZSkgKyBzaGFyZWRfb3V0cHV0CiAgICAgICAgCiAgICBkZWYgbG9hZF93ZWlnaHRzKHNlbGYsIHdlaWdodHMpOgogICAgICAgIHNlbGYuYWxsX3dlaWdodHNbInJvdXRlciJdID0gd2VpZ2h0c1sicm91dGVyLndlaWdodCJdLnQoKQogICAgICAgIAogICAgICAgIGZvciBpIGluIHJhbmdlKHNlbGYubnVtX3JvdXRlZF9leHBlcnRzKToKICAgICAgICAgICAgc2VsZi5hbGxfd2VpZ2h0c1siZXhwZXJ0c19nYXRlIl1baV0gPSB3ZWlnaHRzW2YiZXhwZXJ0cy57aX0uMC53ZWlnaHQiXQogICAgICAgICAgICBzZWxmLmFsbF93ZWlnaHRzWyJleHBlcnRzX3VwIl1baV0gPSB3ZWlnaHRzW2YiZXhwZXJ0cy57aX0uMS53ZWlnaHQiXQogICAgICAgICAgICBzZWxmLmFsbF93ZWlnaHRzWyJleHBlcnRzX2Rvd24iXVtpXSA9IHdlaWdodHNbZiJleHBlcnRzLntpfS4yLndlaWdodCJdCiAgICAgICAgCiAgICAgICAgc2VsZi5hbGxfd2VpZ2h0c1sic2hhcmVkX2dhdGUiXSA9IHdlaWdodHNbInNoYXJlZF9leHBlcnRzLjAud2VpZ2h0Il0KICAgICAgICBzZWxmLmFsbF93ZWlnaHRzWyJzaGFyZWRfdXAiXSA9IHdlaWdodHNbInNoYXJlZF9leHBlcnRzLjEud2VpZ2h0Il0KICAgICAgICBzZWxmLmFsbF93ZWlnaHRzWyJzaGFyZWRfZG93biJdID0gd2VpZ2h0c1sic2hhcmVkX2V4cGVydHMuMi53ZWlnaHQiXQoKCmRlZiBjdXN0b21fa2VybmVsKGRhdGE6IGlucHV0X3QpIC0+IG91dHB1dF90OgogICAgaW5wdXRfdGVuc29yLCB3ZWlnaHRzLCBjb25maWcgPSBkYXRhCiAgICAKICAgIGZ1c2VkX21vZV9pbnN0YW5jZSA9IEZ1c2VkX01PRShjb25maWcpCiAgICAKICAgIGZ1c2VkX21vZV9pbnN0YW5jZS5sb2FkX3dlaWdodHMod2VpZ2h0cykKICAgIAogICAgb3V0cHV0ID0gZnVzZWRfbW9lX2luc3RhbmNlKGlucHV0X3RlbnNvcikgCiAgICAKICAgIHJldHVybiBvdXRwdXQK

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 amd-mixture-of-experts · submission 25584.

- IyFQT1BDT1JOIGxlYWRlcmJvYXJkIGFtZC1taXh0dXJlLW9mLWV4cGVydHMKIyFQT1BDT1JOIGdwdXMgTUkzMDAKCmltcG9ydCBtYXRoCmltcG9ydCB0b3JjaAppbXBvcnQgdG9yY2gubm4gYXMgbm4KaW1wb3J0IHRvcmNoLm5uLmZ1bmN0aW9uYWwgYXMgRgpmcm9tIHR5cGluZyBpbXBvcnQgRGljdCwgVHVwbGUsIE9wdGlvbmFsCmZyb20gdGFzayBpbXBvcnQgaW5wdXRfdCwgb3V0cHV0X3QKCgpjbGFzcyBGdXNlZF9NT0Uobm4uTW9kdWxlKToKICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjb25maWc6IERpY3QpOgogICAgICAgIHN1cGVyKCkuX19pbml0X18oKQogICAgICAgIHNlbGYuY29uZmlnID0gY29uZmlnCiAgICAgICAgCiAgICAgICAgc2VsZi5udW1fcm91dGVkX2V4cGVydHMgPSBjb25maWdbIm5fcm91dGVkX2V4cGVydHMiXQogICAgICAgIHNlbGYubnVtX2V4cGVydHNfcGVyX3Rva2VuID0gY29uZmlnWyJuX2V4cGVydHNfcGVyX3Rva2VuIl0KICAgICAgICAKICAgICAgICBzZWxmLmFsbF93ZWlnaHRzID0gewogICAgICAgICAgICAicm91dGVyIjogTm9uZSwKICAgICAgICAgICAgImV4cGVydHNfZ2F0ZSI6IFtOb25lXSAqIHNlbGYubnVtX3JvdXRlZF9leHBlcnRzLAogICAgICAgICAgICAiZXhwZXJ0c191cCI6IFtOb25lXSAqIHNlbGYubnVtX3JvdXRlZF9leHBlcnRzLAogICAgICAgICAgICAiZXhwZXJ0c19kb3duIjogW05vbmVdICogc2VsZi5udW1fcm91dGVkX2V4cGVydHMsCiAgICAgICAgICAgICJzaGFyZWRfZ2F0ZSI6IE5vbmUsCiAgICAgICAgICAgICJzaGFyZWRfdXAiOiBOb25lLAogICAgICAgICAgICAic2hhcmVkX2Rvd24iOiBOb25lCiAgICAgICAgfQoKICAgIGRlZiBmb3J3YXJkKHNlbGYsIHg6IHRvcmNoLlRlbnNvcikgLT4gdG9yY2guVGVuc29yOgogICAgICAgIG9yaWdfc2hhcGUgPSB4LnNoYXBlCiAgICAgICAgYmF0Y2hfc2l6ZSwgc2VxX2xlbiwgaGlkZGVuX2RpbSA9IHguc2hhcGUKICAgICAgICB0b3RhbF90b2tlbnMgPSBiYXRjaF9zaXplICogc2VxX2xlbgogICAgICAgIAogICAgICAgIHNoYXJlZF9nYXRlX2FjdGl2YXRpb24gPSBGLnNpbHUoeCBAIHNlbGYuYWxsX3dlaWdodHNbInNoYXJlZF9nYXRlIl0pCiAgICAgICAgc2hhcmVkX3VwID0geCBAIHNlbGYuYWxsX3dlaWdodHNbInNoYXJlZF91cCJdCiAgICAgICAgcm91dGVyX2xvZ2l0cyA9IHggQCBzZWxmLmFsbF93ZWlnaHRzWyJyb3V0ZXIiXQogICAgICAgIAogICAgICAgIHJvdXRlcl9wcm9icyA9IEYuc29mdG1heChyb3V0ZXJfbG9naXRzLCBkaW09LTEpCiAgICAgICAgdG9wa19wcm9icywgdG9wa19pbmRpY2VzID0gdG9yY2gudG9waygKICAgICAgICAgICAgcm91dGVyX3Byb2JzLCBrPXNlbGYubnVtX2V4cGVydHNfcGVyX3Rva2VuLCBkaW09LTEsIHNvcnRlZD1GYWxzZQogICAgICAgICkKICAgICAgICAKICAgICAgICBzaGFyZWRfb3V0cHV0ID0gKHNoYXJlZF9nYXRlX2FjdGl2YXRpb24gKiBzaGFyZWRfdXApIEAgc2VsZi5hbGxfd2VpZ2h0c1sic2hhcmVkX2Rvd24iXQogICAgICAgIAogICAgICAgIHhfZmxhdCA9IHgucmVzaGFwZSh0b3RhbF90b2tlbnMsIGhpZGRlbl9kaW0pCiAgICAgICAgCiAgICAgICAgZmxhdF90b3BrX2luZGljZXMgPSB0b3BrX2luZGljZXMucmVzaGFwZSgtMSkKICAgICAgICBmbGF0X3RvcGtfcHJvYnMgPSB0b3BrX3Byb2JzLnJlc2hhcGUoLTEsIDEpCiAgICAgICAgCiAgICAgICAgcm91dGVkX291dHB1dCA9IHRvcmNoLnplcm9zX2xpa2UoeF9mbGF0KQogICAgICAgIAogICAgICAgIHNvcnRlZF9pZHggPSBmbGF0X3RvcGtfaW5kaWNlcy5hcmdzb3J0KCkKICAgICAgICB0b2tlbl9pZHggPSBzb3J0ZWRfaWR4IC8vIHNlbGYubnVtX2V4cGVydHNfcGVyX3Rva2VuCiAgICAgICAgCiAgICAgICAgZXhwZXJ0X2NvdW50cyA9IGZsYXRfdG9wa19pbmRpY2VzLmJpbmNvdW50KCkKICAgICAgICBleHBlcnRfY3Vtc3VtID0gZXhwZXJ0X2NvdW50cy5jdW1zdW0oMCkuY3B1KCkubnVtcHkoKQogICAgICAgIAogICAgICAgIGZvciBleHBlcnRfaWQgaW4gcmFuZ2Uoc2VsZi5udW1fcm91dGVkX2V4cGVydHMpOgogICAgICAgICAgICBzdGFydF9pZHggPSAwIGlmIGV4cGVydF9pZCA9PSAwIGVsc2UgZXhwZXJ0X2N1bXN1bVtleHBlcnRfaWQgLSAxXQogICAgICAgICAgICBlbmRfaWR4ID0gZXhwZXJ0X2N1bXN1bVtleHBlcnRfaWRdIGlmIGV4cGVydF9pZCA8IGxlbihleHBlcnRfY3Vtc3VtKSBlbHNlIDAKICAgICAgICAgICAgCiAgICAgICAgICAgIGlmIHN0YXJ0X2lkeCA9PSBlbmRfaWR4OgogICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAgICAgICAgIAogICAgICAgICAgICBjdXJyZW50X3Rva2VucyA9IHRva2VuX2lkeFtzdGFydF9pZHg6ZW5kX2lkeF0KICAgICAgICAgICAgCiAgICAgICAgICAgIGV4cGVydF9pbnB1dCA9IHhfZmxhdFtjdXJyZW50X3Rva2Vuc10KICAgICAgICAgICAgCiAgICAgICAgICAgIGdhdGVfd2VpZ2h0ID0gc2VsZi5hbGxfd2VpZ2h0c1siZXhwZXJ0c19nYXRlIl1bZXhwZXJ0X2lkXQogICAgICAgICAgICB1cF93ZWlnaHQgPSBzZWxmLmFsbF93ZWlnaHRzWyJleHBlcnRzX3VwIl1bZXhwZXJ0X2lkXQogICAgICAgICAgICBkb3duX3dlaWdodCA9IHNlbGYuYWxsX3dlaWdodHNbImV4cGVydHNfZG93biJdW2V4cGVydF9pZF0KICAgICAgICAgICAgCiAgICAgICAgICAgIGV4cGVydF9vdXRwdXQgPSBGLnNpbHUoZXhwZXJ0X2lucHV0IEAgZ2F0ZV93ZWlnaHQpICogKGV4cGVydF9pbnB1dCBAIHVwX3dlaWdodCkgQCBkb3duX3dlaWdodAogICAgICAgICAgICBleHBlcnRfb3V0cHV0Lm11bF8oZmxhdF90b3BrX3Byb2JzW3NvcnRlZF9pZHhbc3RhcnRfaWR4OmVuZF9pZHhdXSkKICAgICAgICAgICAgCiAgICAgICAgICAgIGV4cGFuZGVkX2luZGljZXMgPSBjdXJyZW50X3Rva2Vucy51bnNxdWVlemUoMSkuZXhwYW5kKC0xLCBleHBlcnRfb3V0cHV0LnNpemUoMSkpCiAgICAgICAgICAgIHJvdXRlZF9vdXRwdXQuc2NhdHRlcl9hZGRfKDAsIGV4cGFuZGVkX2luZGljZXMsIGV4cGVydF9vdXRwdXQpCiAgICAgICAgICAgIAogICAgICAgIHJldHVybiByb3V0ZWRfb3V0cHV0LnJlc2hhcGUob3JpZ19zaGFwZSkgKyBzaGFyZWRfb3V0cHV0CiAgICAgICAgCiAgICBkZWYgbG9hZF93ZWlnaHRzKHNlbGYsIHdlaWdodHMpOgogICAgICAgIHNlbGYuYWxsX3dlaWdodHNbInJvdXRlciJdID0gd2VpZ2h0c1sicm91dGVyLndlaWdodCJdLnQoKQogICAgICAgIAogICAgICAgIGZvciBpIGluIHJhbmdlKHNlbGYubnVtX3JvdXRlZF9leHBlcnRzKToKICAgICAgICAgICAgc2VsZi5hbGxfd2VpZ2h0c1siZXhwZXJ0c19nYXRlIl1baV0gPSB3ZWlnaHRzW2YiZXhwZXJ0cy57aX0uMC53ZWlnaHQiXQogICAgICAgICAgICBzZWxmLmFsbF93ZWlnaHRzWyJleHBlcnRzX3VwIl1baV0gPSB3ZWlnaHRzW2YiZXhwZXJ0cy57aX0uMS53ZWlnaHQiXQogICAgICAgICAgICBzZWxmLmFsbF93ZWlnaHRzWyJleHBlcnRzX2Rvd24iXVtpXSA9IHdlaWdodHNbZiJleHBlcnRzLntpfS4yLndlaWdodCJdCiAgICAgICAgCiAgICAgICAgc2VsZi5hbGxfd2VpZ2h0c1sic2hhcmVkX2dhdGUiXSA9IHdlaWdodHNbInNoYXJlZF9leHBlcnRzLjAud2VpZ2h0Il0KICAgICAgICBzZWxmLmFsbF93ZWlnaHRzWyJzaGFyZWRfdXAiXSA9IHdlaWdodHNbInNoYXJlZF9leHBlcnRzLjEud2VpZ2h0Il0KICAgICAgICBzZWxmLmFsbF93ZWlnaHRzWyJzaGFyZWRfZG93biJdID0gd2VpZ2h0c1sic2hhcmVkX2V4cGVydHMuMi53ZWlnaHQiXQoKCmRlZiBjdXN0b21fa2VybmVsKGRhdGE6IGlucHV0X3QpIC0+IG91dHB1dF90OgogICAgaW5wdXRfdGVuc29yLCB3ZWlnaHRzLCBjb25maWcgPSBkYXRhCiAgICAKICAgIGZ1c2VkX21vZV9pbnN0YW5jZSA9IEZ1c2VkX01PRShjb25maWcpCiAgICAKICAgIGZ1c2VkX21vZV9pbnN0YW5jZS5sb2FkX3dlaWdodHMod2VpZ2h0cykKICAgIAogICAgb3V0cHV0ID0gZnVzZWRfbW9lX2luc3RhbmNlKGlucHV0X3RlbnNvcikgCiAgICAKICAgIHJldHVybiBvdXRwdXQ=
No newline at end of file
+ IyFQT1BDT1JOIGxlYWRlcmJvYXJkIGFtZC1taXh0dXJlLW9mLWV4cGVydHMKIyFQT1BDT1JOIGdwdXMgTUkzMDAKCmltcG9ydCBtYXRoCmltcG9ydCB0b3JjaAppbXBvcnQgdG9yY2gubm4gYXMgbm4KaW1wb3J0IHRvcmNoLm5uLmZ1bmN0aW9uYWwgYXMgRgpmcm9tIHR5cGluZyBpbXBvcnQgRGljdCwgVHVwbGUsIE9wdGlvbmFsCmZyb20gdGFzayBpbXBvcnQgaW5wdXRfdCwgb3V0cHV0X3QKCgpjbGFzcyBGdXNlZF9NT0Uobm4uTW9kdWxlKToKICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjb25maWc6IERpY3QpOgogICAgICAgIHN1cGVyKCkuX19pbml0X18oKQogICAgICAgIHNlbGYuY29uZmlnID0gY29uZmlnCiAgICAgICAgCiAgICAgICAgc2VsZi5udW1fcm91dGVkX2V4cGVydHMgPSBjb25maWdbIm5fcm91dGVkX2V4cGVydHMiXQogICAgICAgIHNlbGYubnVtX2V4cGVydHNfcGVyX3Rva2VuID0gY29uZmlnWyJuX2V4cGVydHNfcGVyX3Rva2VuIl0KICAgICAgICAKICAgICAgICBzZWxmLmFsbF93ZWlnaHRzID0gewogICAgICAgICAgICAicm91dGVyIjogTm9uZSwKICAgICAgICAgICAgImV4cGVydHNfZ2F0ZSI6IFtOb25lXSAqIHNlbGYubnVtX3JvdXRlZF9leHBlcnRzLAogICAgICAgICAgICAiZXhwZXJ0c191cCI6IFtOb25lXSAqIHNlbGYubnVtX3JvdXRlZF9leHBlcnRzLAogICAgICAgICAgICAiZXhwZXJ0c19kb3duIjogW05vbmVdICogc2VsZi5udW1fcm91dGVkX2V4cGVydHMsCiAgICAgICAgICAgICJzaGFyZWRfZ2F0ZSI6IE5vbmUsCiAgICAgICAgICAgICJzaGFyZWRfdXAiOiBOb25lLAogICAgICAgICAgICAic2hhcmVkX2Rvd24iOiBOb25lCiAgICAgICAgfQoKICAgIGRlZiBmb3J3YXJkKHNlbGYsIHg6IHRvcmNoLlRlbnNvcikgLT4gdG9yY2guVGVuc29yOgogICAgICAgIG9yaWdfc2hhcGUgPSB4LnNoYXBlCiAgICAgICAgYmF0Y2hfc2l6ZSwgc2VxX2xlbiwgaGlkZGVuX2RpbSA9IHguc2hhcGUKICAgICAgICB0b3RhbF90b2tlbnMgPSBiYXRjaF9zaXplICogc2VxX2xlbgogICAgICAgIAogICAgICAgIHNoYXJlZF9nYXRlX2FjdGl2YXRpb24gPSBGLnNpbHUoeCBAIHNlbGYuYWxsX3dlaWdodHNbInNoYXJlZF9nYXRlIl0pCiAgICAgICAgc2hhcmVkX3VwID0geCBAIHNlbGYuYWxsX3dlaWdodHNbInNoYXJlZF91cCJdCiAgICAgICAgcm91dGVyX2xvZ2l0cyA9IHggQCBzZWxmLmFsbF93ZWlnaHRzWyJyb3V0ZXIiXQogICAgICAgIAogICAgICAgIHJvdXRlcl9wcm9icyA9IEYuc29mdG1heChyb3V0ZXJfbG9naXRzLCBkaW09LTEpCiAgICAgICAgdG9wa19wcm9icywgdG9wa19pbmRpY2VzID0gdG9yY2gudG9waygKICAgICAgICAgICAgcm91dGVyX3Byb2JzLCBrPXNlbGYubnVtX2V4cGVydHNfcGVyX3Rva2VuLCBkaW09LTEsIHNvcnRlZD1GYWxzZQogICAgICAgICkKICAgICAgICAKICAgICAgICBzaGFyZWRfb3V0cHV0ID0gKHNoYXJlZF9nYXRlX2FjdGl2YXRpb24gKiBzaGFyZWRfdXApIEAgc2VsZi5hbGxfd2VpZ2h0c1sic2hhcmVkX2Rvd24iXQogICAgICAgIAogICAgICAgIHhfZmxhdCA9IHgucmVzaGFwZSh0b3RhbF90b2tlbnMsIGhpZGRlbl9kaW0pCiAgICAgICAgCiAgICAgICAgZmxhdF90b3BrX2luZGljZXMgPSB0b3BrX2luZGljZXMucmVzaGFwZSgtMSkKICAgICAgICBmbGF0X3RvcGtfcHJvYnMgPSB0b3BrX3Byb2JzLnJlc2hhcGUoLTEsIDEpCiAgICAgICAgCiAgICAgICAgcm91dGVkX291dHB1dCA9IHRvcmNoLnplcm9zX2xpa2UoeF9mbGF0KQogICAgICAgIAogICAgICAgIHNvcnRlZF9pZHggPSBmbGF0X3RvcGtfaW5kaWNlcy5hcmdzb3J0KCkKICAgICAgICB0b2tlbl9pZHggPSBzb3J0ZWRfaWR4IC8vIHNlbGYubnVtX2V4cGVydHNfcGVyX3Rva2VuCiAgICAgICAgCiAgICAgICAgZXhwZXJ0X2NvdW50cyA9IGZsYXRfdG9wa19pbmRpY2VzLmJpbmNvdW50KCkKICAgICAgICBleHBlcnRfY3Vtc3VtID0gZXhwZXJ0X2NvdW50cy5jdW1zdW0oMCkuY3B1KCkubnVtcHkoKQogICAgICAgIAogICAgICAgIGZvciBleHBlcnRfaWQgaW4gcmFuZ2Uoc2VsZi5udW1fcm91dGVkX2V4cGVydHMpOgogICAgICAgICAgICBzdGFydF9pZHggPSAwIGlmIGV4cGVydF9pZCA9PSAwIGVsc2UgZXhwZXJ0X2N1bXN1bVtleHBlcnRfaWQgLSAxXQogICAgICAgICAgICBlbmRfaWR4ID0gZXhwZXJ0X2N1bXN1bVtleHBlcnRfaWRdIGlmIGV4cGVydF9pZCA8IGxlbihleHBlcnRfY3Vtc3VtKSBlbHNlIDAKICAgICAgICAgICAgCiAgICAgICAgICAgIGlmIHN0YXJ0X2lkeCA9PSBlbmRfaWR4OgogICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAgICAgICAgIAogICAgICAgICAgICBjdXJyZW50X3Rva2VucyA9IHRva2VuX2lkeFtzdGFydF9pZHg6ZW5kX2lkeF0KICAgICAgICAgICAgCiAgICAgICAgICAgIGV4cGVydF9pbnB1dCA9IHhfZmxhdFtjdXJyZW50X3Rva2Vuc10KICAgICAgICAgICAgCiAgICAgICAgICAgIGdhdGVfd2VpZ2h0ID0gc2VsZi5hbGxfd2VpZ2h0c1siZXhwZXJ0c19nYXRlIl1bZXhwZXJ0X2lkXQogICAgICAgICAgICB1cF93ZWlnaHQgPSBzZWxmLmFsbF93ZWlnaHRzWyJleHBlcnRzX3VwIl1bZXhwZXJ0X2lkXQogICAgICAgICAgICBkb3duX3dlaWdodCA9IHNlbGYuYWxsX3dlaWdodHNbImV4cGVydHNfZG93biJdW2V4cGVydF9pZF0KICAgICAgICAgICAgCiAgICAgICAgICAgIGV4cGVydF9vdXRwdXQgPSBGLnNpbHUoZXhwZXJ0X2lucHV0IEAgZ2F0ZV93ZWlnaHQpICogKGV4cGVydF9pbnB1dCBAIHVwX3dlaWdodCkgQCBkb3duX3dlaWdodAogICAgICAgICAgICBleHBlcnRfb3V0cHV0Lm11bF8oZmxhdF90b3BrX3Byb2JzW3NvcnRlZF9pZHhbc3RhcnRfaWR4OmVuZF9pZHhdXSkKICAgICAgICAgICAgCiAgICAgICAgICAgIGV4cGFuZGVkX2luZGljZXMgPSBjdXJyZW50X3Rva2Vucy51bnNxdWVlemUoMSkuZXhwYW5kKC0xLCBleHBlcnRfb3V0cHV0LnNpemUoMSkpCiAgICAgICAgICAgIHJvdXRlZF9vdXRwdXQuc2NhdHRlcl9hZGRfKDAsIGV4cGFuZGVkX2luZGljZXMsIGV4cGVydF9vdXRwdXQpCiAgICAgICAgICAgIAogICAgICAgIHJldHVybiByb3V0ZWRfb3V0cHV0LnJlc2hhcGUob3JpZ19zaGFwZSkgKyBzaGFyZWRfb3V0cHV0CiAgICAgICAgCiAgICBkZWYgbG9hZF93ZWlnaHRzKHNlbGYsIHdlaWdodHMpOgogICAgICAgIHNlbGYuYWxsX3dlaWdodHNbInJvdXRlciJdID0gd2VpZ2h0c1sicm91dGVyLndlaWdodCJdLnQoKQogICAgICAgIAogICAgICAgIGZvciBpIGluIHJhbmdlKHNlbGYubnVtX3JvdXRlZF9leHBlcnRzKToKICAgICAgICAgICAgc2VsZi5hbGxfd2VpZ2h0c1siZXhwZXJ0c19nYXRlIl1baV0gPSB3ZWlnaHRzW2YiZXhwZXJ0cy57aX0uMC53ZWlnaHQiXQogICAgICAgICAgICBzZWxmLmFsbF93ZWlnaHRzWyJleHBlcnRzX3VwIl1baV0gPSB3ZWlnaHRzW2YiZXhwZXJ0cy57aX0uMS53ZWlnaHQiXQogICAgICAgICAgICBzZWxmLmFsbF93ZWlnaHRzWyJleHBlcnRzX2Rvd24iXVtpXSA9IHdlaWdodHNbZiJleHBlcnRzLntpfS4yLndlaWdodCJdCiAgICAgICAgCiAgICAgICAgc2VsZi5hbGxfd2VpZ2h0c1sic2hhcmVkX2dhdGUiXSA9IHdlaWdodHNbInNoYXJlZF9leHBlcnRzLjAud2VpZ2h0Il0KICAgICAgICBzZWxmLmFsbF93ZWlnaHRzWyJzaGFyZWRfdXAiXSA9IHdlaWdodHNbInNoYXJlZF9leHBlcnRzLjEud2VpZ2h0Il0KICAgICAgICBzZWxmLmFsbF93ZWlnaHRzWyJzaGFyZWRfZG93biJdID0gd2VpZ2h0c1sic2hhcmVkX2V4cGVydHMuMi53ZWlnaHQiXQoKCmRlZiBjdXN0b21fa2VybmVsKGRhdGE6IGlucHV0X3QpIC0+IG91dHB1dF90OgogICAgaW5wdXRfdGVuc29yLCB3ZWlnaHRzLCBjb25maWcgPSBkYXRhCiAgICAKICAgIGZ1c2VkX21vZV9pbnN0YW5jZSA9IEZ1c2VkX01PRShjb25maWcpCiAgICAKICAgIGZ1c2VkX21vZV9pbnN0YW5jZS5sb2FkX3dlaWdodHMod2VpZ2h0cykKICAgIAogICAgb3V0cHV0ID0gZnVzZWRfbW9lX2luc3RhbmNlKGlucHV0X3RlbnNvcikgCiAgICAKICAgIHJldHVybiBvdXRwdXQK
No newline at end of file

Best evidence level for this revision: reported

JSON