kernels-bot commited on
Commit
703da04
·
verified ·
1 Parent(s): e5a8920

Uploaded using `kernel-builder`.

Browse files
Files changed (45) hide show
  1. build/torch211-cxx11-cu126-aarch64-linux/{_megablocks_cuda_18e92fb.abi3.so → _megablocks_cuda_c4d0dc5.abi3.so} +1 -1
  2. build/torch211-cxx11-cu126-aarch64-linux/_ops.py +3 -3
  3. build/torch211-cxx11-cu126-aarch64-linux/metadata.json +5 -5
  4. build/torch211-cxx11-cu126-aarch64-linux/metadata.json.sigstore +1 -1
  5. build/torch211-cxx11-cu126-aarch64-linux/xpu_fused_moe.py +22 -12
  6. build/torch211-cxx11-cu128-aarch64-linux/{_megablocks_cuda_18e92fb.abi3.so → _megablocks_cuda_c4d0dc5.abi3.so} +1 -1
  7. build/torch211-cxx11-cu128-aarch64-linux/_ops.py +3 -3
  8. build/torch211-cxx11-cu128-aarch64-linux/metadata.json +5 -5
  9. build/torch211-cxx11-cu128-aarch64-linux/metadata.json.sigstore +1 -1
  10. build/torch211-cxx11-cu128-aarch64-linux/xpu_fused_moe.py +22 -12
  11. build/torch211-cxx11-cu130-aarch64-linux/{_megablocks_cuda_18e92fb.abi3.so → _megablocks_cuda_c4d0dc5.abi3.so} +1 -1
  12. build/torch211-cxx11-cu130-aarch64-linux/_ops.py +3 -3
  13. build/torch211-cxx11-cu130-aarch64-linux/metadata.json +5 -5
  14. build/torch211-cxx11-cu130-aarch64-linux/metadata.json.sigstore +1 -1
  15. build/torch211-cxx11-cu130-aarch64-linux/xpu_fused_moe.py +22 -12
  16. build/torch212-cxx11-cu126-aarch64-linux/{_megablocks_cuda_18e92fb.abi3.so → _megablocks_cuda_c4d0dc5.abi3.so} +1 -1
  17. build/torch212-cxx11-cu126-aarch64-linux/_ops.py +3 -3
  18. build/torch212-cxx11-cu126-aarch64-linux/metadata.json +5 -5
  19. build/torch212-cxx11-cu126-aarch64-linux/metadata.json.sigstore +1 -1
  20. build/torch212-cxx11-cu126-aarch64-linux/xpu_fused_moe.py +22 -12
  21. build/torch212-cxx11-cu130-aarch64-linux/{_megablocks_cuda_18e92fb.abi3.so → _megablocks_cuda_c4d0dc5.abi3.so} +1 -1
  22. build/torch212-cxx11-cu130-aarch64-linux/_ops.py +3 -3
  23. build/torch212-cxx11-cu130-aarch64-linux/metadata.json +5 -5
  24. build/torch212-cxx11-cu130-aarch64-linux/metadata.json.sigstore +1 -1
  25. build/torch212-cxx11-cu130-aarch64-linux/xpu_fused_moe.py +22 -12
  26. build/torch212-cxx11-cu132-aarch64-linux/{_megablocks_cuda_18e92fb.abi3.so → _megablocks_cuda_c4d0dc5.abi3.so} +1 -1
  27. build/torch212-cxx11-cu132-aarch64-linux/_ops.py +3 -3
  28. build/torch212-cxx11-cu132-aarch64-linux/metadata.json +5 -5
  29. build/torch212-cxx11-cu132-aarch64-linux/metadata.json.sigstore +1 -1
  30. build/torch212-cxx11-cu132-aarch64-linux/xpu_fused_moe.py +22 -12
  31. build/torch213-cxx11-cu126-aarch64-linux/{_megablocks_cuda_18e92fb.abi3.so → _megablocks_cuda_c4d0dc5.abi3.so} +1 -1
  32. build/torch213-cxx11-cu126-aarch64-linux/_ops.py +3 -3
  33. build/torch213-cxx11-cu126-aarch64-linux/metadata.json +5 -5
  34. build/torch213-cxx11-cu126-aarch64-linux/metadata.json.sigstore +1 -1
  35. build/torch213-cxx11-cu126-aarch64-linux/xpu_fused_moe.py +22 -12
  36. build/torch213-cxx11-cu130-aarch64-linux/{_megablocks_cuda_18e92fb.abi3.so → _megablocks_cuda_c4d0dc5.abi3.so} +1 -1
  37. build/torch213-cxx11-cu130-aarch64-linux/_ops.py +3 -3
  38. build/torch213-cxx11-cu130-aarch64-linux/metadata.json +5 -5
  39. build/torch213-cxx11-cu130-aarch64-linux/metadata.json.sigstore +1 -1
  40. build/torch213-cxx11-cu130-aarch64-linux/xpu_fused_moe.py +22 -12
  41. build/torch213-cxx11-cu132-aarch64-linux/{_megablocks_cuda_18e92fb.abi3.so → _megablocks_cuda_c4d0dc5.abi3.so} +1 -1
  42. build/torch213-cxx11-cu132-aarch64-linux/_ops.py +3 -3
  43. build/torch213-cxx11-cu132-aarch64-linux/metadata.json +5 -5
  44. build/torch213-cxx11-cu132-aarch64-linux/metadata.json.sigstore +1 -1
  45. build/torch213-cxx11-cu132-aarch64-linux/xpu_fused_moe.py +22 -12
build/torch211-cxx11-cu126-aarch64-linux/{_megablocks_cuda_18e92fb.abi3.so → _megablocks_cuda_c4d0dc5.abi3.so} RENAMED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:a91e81fc3aeee8359e3b1fb981caa210401a364cd08b2c689c006da35804daec
3
  size 13179816
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:41c9509b4c7eda28b1526b0b1906c487b1a8e98bd5d88495159dbf48f321d447
3
  size 13179816
build/torch211-cxx11-cu126-aarch64-linux/_ops.py CHANGED
@@ -1,9 +1,9 @@
1
  import torch
2
- from . import _megablocks_cuda_18e92fb
3
- ops = torch.ops._megablocks_cuda_18e92fb
4
 
5
  def add_op_namespace_prefix(op_name: str):
6
  """
7
  Prefix op by namespace.
8
  """
9
- return f"_megablocks_cuda_18e92fb::{op_name}"
 
1
  import torch
2
+ from . import _megablocks_cuda_c4d0dc5
3
+ ops = torch.ops._megablocks_cuda_c4d0dc5
4
 
5
  def add_op_namespace_prefix(op_name: str):
6
  """
7
  Prefix op by namespace.
8
  """
9
+ return f"_megablocks_cuda_c4d0dc5::{op_name}"
build/torch211-cxx11-cu126-aarch64-linux/metadata.json CHANGED
@@ -1,6 +1,6 @@
1
  {
2
  "name": "megablocks",
3
- "id": "_megablocks_cuda_18e92fb",
4
  "version": 1,
5
  "license": "Apache-2.0",
6
  "python-depends": [],
@@ -48,8 +48,8 @@
48
  "_layers/mpu.py": "BX61/pmqRCVeEMnzpuK8x5NpITBJyZfOawGnDegW1O8=",
49
  "_layers/router.py": "GKC/5//Uf43HT6zXlBTStCMTml2YXn7Jbgq9EgTgDC0=",
50
  "_layers/sharedexpert_registry.py": "GfwHKjbC7lBXYq9kNifp3HudTdZKSqwsFxGxFLc2krw=",
51
- "_megablocks_cuda_18e92fb.abi3.so": "qR6B/Dru6DWeOx+5gcqiEEAaNkzQiyxonABto1gE2uw=",
52
- "_ops.py": "baTEjeHRnpTSLod30qZST/UL5GNv7vZoGeNwQWakxbo=",
53
  "_version.py": "W3l9oUrnmvfBoIy06Lv0y2ezTQhNU04ug/txHcdWJD0=",
54
  "backend/__init__.py": "4bunAqqjwE93nym8CigHbqVAal7UaYGdONb8lGRfrek=",
55
  "backend/kernels.py": "2UFNTlmSDk3S5y6UW14MJMPVVsVhmozxQ5wFDxtZHhQ=",
@@ -100,7 +100,7 @@
100
  "stk/random/__init__.py": "Gr/+Gl20jJ6fJVRfoAUxEcCPeChILQzrzhKVVAWQsRI=",
101
  "stk/random/random_ops.py": "AluIDj3Vo2ReKAsZz07yydbtndDbJoglekRGIaCoRZE=",
102
  "stk/random/random_ops_test.py": "B+a4Zb+OPhBtpVA48oc09sBL/AAQO9j/YUFI0nnXxzk=",
103
- "xpu_fused_moe.py": "Dp6S3fK/Fc4Sr+Ac94vw2zz0v/QTGp6rYeMIUqE3Y/I="
104
  }
105
  },
106
  "provenance": {
@@ -110,7 +110,7 @@
110
  "dirty": false
111
  },
112
  "kernel": {
113
- "sha": "18e92fb6886201ffb91c173f02593777756c793f",
114
  "dirty": false
115
  }
116
  }
 
1
  {
2
  "name": "megablocks",
3
+ "id": "_megablocks_cuda_c4d0dc5",
4
  "version": 1,
5
  "license": "Apache-2.0",
6
  "python-depends": [],
 
48
  "_layers/mpu.py": "BX61/pmqRCVeEMnzpuK8x5NpITBJyZfOawGnDegW1O8=",
49
  "_layers/router.py": "GKC/5//Uf43HT6zXlBTStCMTml2YXn7Jbgq9EgTgDC0=",
50
  "_layers/sharedexpert_registry.py": "GfwHKjbC7lBXYq9kNifp3HudTdZKSqwsFxGxFLc2krw=",
51
+ "_megablocks_cuda_c4d0dc5.abi3.so": "QclQm0x+2iixUmsLGQbEh7Go6YvV2ISVFZ2/SPMh1Ec=",
52
+ "_ops.py": "9NSxkX5lSS5VhF9+hDazP5NimwZK2V/+nIXR0AQxnHA=",
53
  "_version.py": "W3l9oUrnmvfBoIy06Lv0y2ezTQhNU04ug/txHcdWJD0=",
54
  "backend/__init__.py": "4bunAqqjwE93nym8CigHbqVAal7UaYGdONb8lGRfrek=",
55
  "backend/kernels.py": "2UFNTlmSDk3S5y6UW14MJMPVVsVhmozxQ5wFDxtZHhQ=",
 
100
  "stk/random/__init__.py": "Gr/+Gl20jJ6fJVRfoAUxEcCPeChILQzrzhKVVAWQsRI=",
101
  "stk/random/random_ops.py": "AluIDj3Vo2ReKAsZz07yydbtndDbJoglekRGIaCoRZE=",
102
  "stk/random/random_ops_test.py": "B+a4Zb+OPhBtpVA48oc09sBL/AAQO9j/YUFI0nnXxzk=",
103
+ "xpu_fused_moe.py": "sPmuRSpkH1Bmk4hdpz53us8Qpc6yinT9rkld3T8WreI="
104
  }
105
  },
106
  "provenance": {
 
110
  "dirty": false
111
  },
112
  "kernel": {
113
+ "sha": "c4d0dc56661badb9cc47bde647e08fe3b4bf7458",
114
  "dirty": false
115
  }
116
  }
build/torch211-cxx11-cu126-aarch64-linux/metadata.json.sigstore CHANGED
@@ -1 +1 @@
1
- {"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"MIIHSzCCBtGgAwIBAgIUN9RVclY/J9BNJW4xSbf/nSHbMjUwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwODI1MDkwNDE5WhcNMjYwODI1MDkxNDE5WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEyF5o2oroSxZiGLmtWjuyZlfP4Z+PN0hszkpsPFK0rxFc+2HA8j/T+uAW+qtVmWC5NzWomvixuVcU2jOfFvuSaaOCBfAwggXsMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUMRzqLCfdBirubCVnqJkN7U9u9BgwHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wawYDVR0RAQH/BGEwX4ZdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDkGCisGAQQBg78wAQEEK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wHwYKKwYBBAGDvzABAgQRd29ya2Zsb3dfZGlzcGF0Y2gwNgYKKwYBBAGDvzABAwQoMThlOTJmYjY4ODYyMDFmZmI5MWMxNzNmMDI1OTM3Nzc3NTZjNzkzZjATBgorBgEEAYO/MAEEBAVCdWlsZDArBgorBgEEAYO/MAEFBB1odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTAdBgorBgEEAYO/MAEGBA9yZWZzL2hlYWRzL21haW4wOwYKKwYBBAGDvzABCAQtDCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMG0GCisGAQQBg78wAQkEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wAQoEKgwoMThlOTJmYjY4ODYyMDFmZmI5MWMxNzNmMDI1OTM3Nzc3NTZjNzkzZjAbBgorBgEEAYO/MAELBA0MC3NlbGYtaG9zdGVkMEAGCisGAQQBg78wAQwEMgwwaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MDgGCisGAQQBg78wAQ0EKgwoMThlOTJmYjY4ODYyMDFmZmI5MWMxNzNmMDI1OTM3Nzc3NTZjNzkzZjAfBgorBgEEAYO/MAEOBBEMD3JlZnMvaGVhZHMvbWFpbjAaBgorBgEEAYO/MAEPBAwMCjEwNzE0NzU1MjkwLgYKKwYBBAGDvzABEAQgDB5odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2UwGAYKKwYBBAGDvzABEQQKDAgyNTcyMDc0MzBtBgorBgEEAYO/MAESBF8MXWh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS8uZ2l0aHViL3dvcmtmbG93cy9idWlsZC55YW1sQHJlZnMvaGVhZHMvbWFpbjA4BgorBgEEAYO/MAETBCoMKDE4ZTkyZmI2ODg2MjAxZmZiOTFjMTczZjAyNTkzNzc3NzU2Yzc5M2YwIQYKKwYBBAGDvzABFAQTDBF3b3JrZmxvd19kaXNwYXRjaDBkBgorBgEEAYO/MAEVBFYMVGh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS9hY3Rpb25zL3J1bnMvMzI4Mjc3ODQ2NjkvYXR0ZW1wdHMvMTAWBgorBgEEAYO/MAEWBAgMBnB1YmxpYzBGBgorBgEEAYO/MAEYBDgMNnJlcG86aHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHk6cmVmOnJlZnMvaGVhZHMvbWFpbjCBigYKKwYBBAHWeQIEAgR8BHoAeAB2AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABoDgp0L0AAAQDAEcwRQIhAJ5y+9xEMkCOHw734WkghoBTuJx5wXeoj9CN5TuAyPVXAiAyQD42j0PUxuRTeK1MM3bC2o7tk5noKVIoJ0uap/Tn4zAKBggqhkjOPQQDAwNoADBlAjEAqOA5WOZT7H2adRqG6DewR9H4ZnbaVVjvO6Tz2/mu3Ao53IqH+2SlpA0sscHJB4KgAjBBgYkXfuX510YGCwdqXMA+y9kwM6s+cEfMGuvjCahNHEjy+gaAmODRe8zbO3ByS7E="},"tlogEntries":[{"logIndex":"2582977705","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1787648660","inclusionPromise":{"signedEntryTimestamp":"MEUCIQC1ySUaAz6MneBymo4igFAGMpNB2be95a4ZbGvBL8xXLQIgFL4BkFjXYa03wwqj9ZzmqN4/cM0Q6pbF7aRmru0Qxp4="},"inclusionProof":{"logIndex":"2461073443","rootHash":"rX4CUbNDNzWSUbs02q/2hBgHEERKTrEvKoriKRvjKTI=","treeSize":"2461073447","hashes":["wd47AQFeg/WhYB72gH2ygDv26bmY4s7l9hMsaUwIGtI=","XfV5tfNYlmnpCRy9teG+Y+2Yq53iHBMSi0Ma9KlKif8=","3R4vLGlcgiteGMjFsPxl/VtV8+PVedIBss9NSDo7kvk=","d1boxA4L/qk9dPYuyI9n0pMKSK++v8n6CTnTIyiIrJ8=","/pzrkLFRwt/XMVRmL7s6Ii88QiOLu5drCOp/UggZ7TU=","G1R9F5B2KizFA2NyhDznjNKXPOF1SDmbGHz+omLG7TY=","RZ7XwGuqMr5gDUh2HpUcaXp+AmIiEcPJiMui4GLJE7o=","mBm+vQtn0C4thMnlTnxfxqowq1dXsPBCKaJ85da3JeU=","b80/J/68RC8/tx5xRdlKk6MmTpZiVRotquWBrE/z1pI=","SndbMKVtcTenAkwi2JBfGzD+mhexp1qJbRIY+A1JRIU=","xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n2461073447\nrX4CUbNDNzWSUbs02q/2hBgHEERKTrEvKoriKRvjKTI=\n\n— rekor.sigstore.dev wNI9ajBFAiEAjkhzwaxX/ToQS979jz8P5UBgMsD48LV+ZhM/YHt51d0CIBJ/uco1L5w7KIRUnItCDB3jBq1Ymoeogu3X4oyixUvP\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiIzYjU3ZWZmMDkzMGRkYzM1MzljMDFjMWI0N2MwMzc2ZDg2ZDM1MjU2ZTcxMDAyNGZjYTBkZmIwODFjZGJiMTIzIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJUUNMazcvVStneFRvTlhFa0Vuell6TnQrMkh4TW5PR2VIMkZMdGU0SUFYYWZRSWdUWis1WFp2NnMwMFpENUV5TXZibXFyemJMU1ZCMzVmdWo5MVVZNjhXZUlBPSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaFRla05EUW5SSFowRjNTVUpCWjBsVlRqbFNWbU5zV1M5S09VSk9TbGMwZUZOaVppOXVVMGhpVFdwVmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDlFU1RGTlJHdDNUa1JGTlZkb1kwNU5hbGwzVDBSSk1VMUVhM2hPUkVVMVYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVY1UmpWdk1tOXliMU40V21sSFRHMTBWMnAxZVZwc1psQTBXaXRRVGpCb2MzcHJjSE1LVUVaTE1ISjRSbU1yTWtoQk9Hb3ZWQ3QxUVZjcmNYUldiVmRETlU1NlYyOXRkbWw0ZFZaalZUSnFUMlpHZG5WVFlXRlBRMEptUVhkbloxaHpUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlZOVW5weENreERabVJDYVhKMVlrTldibkZLYTA0M1ZUbDFPVUpuZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDJGM1dVUldVakJTUVZGSUwwSkhSWGRZTkZwa1lVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKb01Wb3laSEJpYldSdFdWZE9iQXBNTW5Sc1kyMDFiR0pJVFhSWk1qbDBZbGhXZFdGWVVqVk1lVFZ1WVZoU2IyUlhTWFprTWpsNVlUSmFjMkl6WkhwTU1rb3hZVmQ0YTB4dWJHaGlWM2hCQ21OdFZtMWplVGx2V2xkR2EyTjVPWFJaVjJ4MVRVUnJSME5wYzBkQlVWRkNaemM0ZDBGUlJVVkxNbWd3WkVoQ2VrOXBPSFprUnpseVdsYzBkVmxYVGpBS1lWYzVkV041Tlc1aFdGSnZaRmRLTVdNeVZubFpNamwxWkVkV2RXUkROV3BpTWpCM1NIZFpTMHQzV1VKQ1FVZEVkbnBCUWtGblVWSmtNamw1WVRKYWN3cGlNMlJtV2tkc2VtTkhSakJaTW1kM1RtZFpTMHQzV1VKQ1FVZEVkbnBCUWtGM1VXOU5WR2hzVDFSS2JWbHFXVFJQUkZsNVRVUkdiVnB0U1RWTlYwMTRDazU2VG0xTlJFa3hUMVJOTTA1Nll6Tk9WRnBxVG5wcmVscHFRVlJDWjI5eVFtZEZSVUZaVHk5TlFVVkZRa0ZXUTJSWGJITmFSRUZ5UW1kdmNrSm5SVVVLUVZsUEwwMUJSVVpDUWpGdlpGZGtibUZYTlc1YWJVWnFXbE01Y2xwWVNuVmFWM2g2VEZkT2RtSlhNVEZpYld3d1pWUkJaRUpuYjNKQ1owVkZRVmxQTHdwTlFVVkhRa0U1ZVZwWFducE1NbWhzV1ZkU2Vrd3lNV2hoVnpSM1QzZFpTMHQzV1VKQ1FVZEVkbnBCUWtOQlVYUkVRM1J2WkVoU2QyTjZiM1pNTTFKMkNtRXlWblZNYlVacVpFZHNkbUp1VFhWYU1td3dZVWhXYVdSWVRteGpiVTUyWW01U2JHSnVVWFZaTWpsMFRVY3dSME5wYzBkQlVWRkNaemM0ZDBGUmEwVUtXSGQ0WkdGSVVqQmpTRTAyVEhrNWJtRllVbTlrVjBsMVdUSTVkRXd5YURGYU1tUndZbTFrYlZsWFRteE1NblJzWTIwMWJHSklUWFJaTWpsMFlsaFdkUXBoV0ZJMVRIazFibUZZVW05a1YwbDJaREk1ZVdFeVduTmlNMlI2VERKS01XRlhlR3RNYm14b1lsZDRRV050Vm0xamVUbHZXbGRHYTJONU9YUlpWMngxQ2sxRVowZERhWE5IUVZGUlFtYzNPSGRCVVc5RlMyZDNiMDFVYUd4UFZFcHRXV3BaTkU5RVdYbE5SRVp0V20xSk5VMVhUWGhPZWs1dFRVUkpNVTlVVFRNS1RucGpNMDVVV21wT2VtdDZXbXBCWWtKbmIzSkNaMFZGUVZsUEwwMUJSVXhDUVRCTlF6Tk9iR0pIV1hSaFJ6bDZaRWRXYTAxRlFVZERhWE5IUVZGUlFncG5OemgzUVZGM1JVMW5kM2RoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlUxRVowZERhWE5IUVZGUlFtYzNPSGRCVVRCRlMyZDNiMDFVYUd4UFZFcHRXV3BaTkU5RVdYbE5SRVp0V20xSk5VMVhUWGdLVG5wT2JVMUVTVEZQVkUwelRucGpNMDVVV21wT2VtdDZXbXBCWmtKbmIzSkNaMFZGUVZsUEwwMUJSVTlDUWtWTlJETktiRnB1VFhaaFIxWm9Xa2hOZGdwaVYwWndZbXBCWVVKbmIzSkNaMFZGUVZsUEwwMUJSVkJDUVhkTlEycEZkMDU2UlRCT2VsVXhUV3ByZDB4bldVdExkMWxDUWtGSFJIWjZRVUpGUVZGbkNrUkNOVzlrU0ZKM1kzcHZka3d5WkhCa1IyZ3hXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWM1IwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWUlVVc0tSRUZuZVU1VVkzbE5SR013VFhwQ2RFSm5iM0pDWjBWRlFWbFBMMDFCUlZOQ1JqaE5XRmRvTUdSSVFucFBhVGgyV2pKc01HRklWbWxNYlU1MllsTTVid3BrVjJSdVlWYzFibHB0Um1wYVV6bHlXbGhLZFZwWGVIcE1WMDUyWWxjeE1XSnRiREJsVXpoMVdqSnNNR0ZJVm1sTU0yUjJZMjEwYldKSE9UTmplVGxwQ21SWGJITmFRelUxV1ZjeGMxRklTbXhhYmsxMllVZFdhRnBJVFhaaVYwWndZbXBCTkVKbmIzSkNaMFZGUVZsUEwwMUJSVlJDUTI5TlMwUkZORnBVYTNrS1dtMUpNazlFWnpKTmFrRjRXbTFhYVU5VVJtcE5WR042V21wQmVVNVVhM3BPZW1NelRucFZNbGw2WXpWTk1sbDNTVkZaUzB0M1dVSkNRVWRFZG5wQlFncEdRVkZVUkVKR00ySXpTbkphYlhoMlpERTVhMkZZVG5kWldGSnFZVVJDYTBKbmIzSkNaMFZGUVZsUEwwMUJSVlpDUmxsTlZrZG9NR1JJUW5wUGFUaDJDbG95YkRCaFNGWnBURzFPZG1KVE9XOWtWMlJ1WVZjMWJscHRSbXBhVXpseVdsaEtkVnBYZUhwTVYwNTJZbGN4TVdKdGJEQmxVemxvV1ROU2NHSXlOWG9LVEROS01XSnVUWFpOZWtrMFRXcGpNMDlFVVRKT2FtdDJXVmhTTUZwWE1YZGtTRTEyVFZSQlYwSm5iM0pDWjBWRlFWbFBMMDFCUlZkQ1FXZE5RbTVDTVFwWmJYaHdXWHBDUjBKbmIzSkNaMFZGUVZsUEwwMUJSVmxDUkdkTlRtNUtiR05IT0RaaFNGWnVXakpzZFZveVdtaFpNbFYyWVRKV2VXSnRWbk5qZVRGcUNtSXlNWFJrVnpWd1pFaHJObU50Vm0xUGJrcHNXbTVOZG1GSFZtaGFTRTEyWWxkR2NHSnFRMEpwWjFsTFMzZFpRa0pCU0ZkbFVVbEZRV2RTT0VKSWIwRUtaVUZDTWtGT01EbE5SM0pIZUhoRmVWbDRhMlZJU214dVRuZExhVk5zTmpRemFubDBMelJsUzJOdlFYWkxaVFpQUVVGQlFtOUVaM0F3VERCQlFVRlJSQXBCUldOM1VsRkphRUZLTlhrck9YaEZUV3REVDBoM056TTBWMnRuYUc5Q1ZIVktlRFYzV0dWdmFqbERUalZVZFVGNVVGWllRV2xCZVZGRU5ESnFNRkJWQ25oMVVsUmxTekZOVFROaVF6SnZOM1JyTlc1dlMxWkpiMG93ZFdGd0wxUnVOSHBCUzBKblozRm9hMnBQVUZGUlJFRjNUbTlCUkVKc1FXcEZRWEZQUVRVS1YwOWFWRGRJTW1Ga1VuRkhOa1JsZDFJNVNEUmFibUpoVmxacWRrODJWSG95TDIxMU0wRnZOVE5KY1Vnck1sTnNjRUV3YzNOalNFcENORXRuUVdwQ1FncG5XV3RZWm5WWU5URXdXVWREZDJSeFdFMUJLM2s1YTNkTk5uTXJZMFZtVFVkMWRtcERZV2hPU0VWcWVTdG5ZVUZ0VDBSU1pUaDZZazh6UW5sVE4wVTlDaTB0TFMwdFJVNUVJRU5GVWxSSlJrbERRVlJGTFMwdExTMEsifX19fQ=="}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyDADAgEAMIICvwYJKoZIhvcNAQcCoIICsDCCAqwCAQMxDTALBglghkgBZQMEAgEwgbcGCyqGSIb3DQEJEAEEoIGnBIGkMIGhAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgEJzZrQg4XMZiJkmidKkJAjwMPMJfMLBqefCazO8iEPwCFCDLogpU7xap/rFVZKcQBoQpn04dGA8yMDI2MDgyNTA5MDQxOVowAwIBAaAypDAwLjEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MRUwEwYDVQQDEwxzaWdzdG9yZS10c2GgADGCAdowggHWAgEBMFEwOTEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MSAwHgYDVQQDExdzaWdzdG9yZS10c2Etc2VsZnNpZ25lZAIUOhNULwyQYe68wUMvy4qOiyojiwwwCwYJYIZIAWUDBAIBoIH8MBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAcBgkqhkiG9w0BCQUxDxcNMjYwODI1MDkwNDE5WjAvBgkqhkiG9w0BCQQxIgQgt97thq60+05DIAWDXUgoA0JWNf47WD5liNrqkJFzECkwgY4GCyqGSIb3DQEJEAIvMX8wfTB7MHkEIIX5J7wHq2LKw7RDVsEO/IGyxog/2nq55thw2dE6zQW3MFUwPaQ7MDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAoGCCqGSM49BAMCBGYwZAIwLuuDSycRbyUCXRpTH1w8zcHBJzm03k2cV3/yfQ/zUiE60BCGEGAlvFqBZG8IDSZ8AjBUZ5KkMl4NfoWDdD6ThNGRw0dhxNp0npu0ceKjXEXqtaCPJfRGXiXOnBVEFXweE5g="}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"O1fv8JMN3DU5wBwbR8A3bYbTUlbnEAJPyg37CBzbsSM="},"signature":"MEUCIQCLk7/U+gxToNXEkEnzYzNt+2HxMnOGeH2FLte4IAXafQIgTZ+5XZv6s00ZD5EyMvbmqrzbLSVB35fuj91UY68WeIA="}}
 
1
+ {"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"MIIHTDCCBtGgAwIBAgIUa1nGKXSUhv9utEu3QotgKh78C0MwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwODI1MTIxOTQ3WhcNMjYwODI1MTIyOTQ3WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEFunXSM8UedBYnj+kcR7v3Okf9wB5Fs4UjDX6nRjWBIg4BOspmr6fNPc7IcNBV091Rcu1qQQrhNAUyfV9ZNTPu6OCBfAwggXsMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUtuI7UIFAs4kp6eDHXWhybMWr/OYwHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wawYDVR0RAQH/BGEwX4ZdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDkGCisGAQQBg78wAQEEK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wHwYKKwYBBAGDvzABAgQRd29ya2Zsb3dfZGlzcGF0Y2gwNgYKKwYBBAGDvzABAwQoYzRkMGRjNTY2NjFiYWRiOWNjNDdiZGU2NDdlMDhmZTNiNGJmNzQ1ODATBgorBgEEAYO/MAEEBAVCdWlsZDArBgorBgEEAYO/MAEFBB1odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTAdBgorBgEEAYO/MAEGBA9yZWZzL2hlYWRzL21haW4wOwYKKwYBBAGDvzABCAQtDCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMG0GCisGAQQBg78wAQkEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wAQoEKgwoYzRkMGRjNTY2NjFiYWRiOWNjNDdiZGU2NDdlMDhmZTNiNGJmNzQ1ODAbBgorBgEEAYO/MAELBA0MC3NlbGYtaG9zdGVkMEAGCisGAQQBg78wAQwEMgwwaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MDgGCisGAQQBg78wAQ0EKgwoYzRkMGRjNTY2NjFiYWRiOWNjNDdiZGU2NDdlMDhmZTNiNGJmNzQ1ODAfBgorBgEEAYO/MAEOBBEMD3JlZnMvaGVhZHMvbWFpbjAaBgorBgEEAYO/MAEPBAwMCjEwNzE0NzU1MjkwLgYKKwYBBAGDvzABEAQgDB5odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2UwGAYKKwYBBAGDvzABEQQKDAgyNTcyMDc0MzBtBgorBgEEAYO/MAESBF8MXWh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS8uZ2l0aHViL3dvcmtmbG93cy9idWlsZC55YW1sQHJlZnMvaGVhZHMvbWFpbjA4BgorBgEEAYO/MAETBCoMKGM0ZDBkYzU2NjYxYmFkYjljYzQ3YmRlNjQ3ZTA4ZmUzYjRiZjc0NTgwIQYKKwYBBAGDvzABFAQTDBF3b3JrZmxvd19kaXNwYXRjaDBkBgorBgEEAYO/MAEVBFYMVGh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS9hY3Rpb25zL3J1bnMvMzI4NDQ2ODk4OTQvYXR0ZW1wdHMvMTAWBgorBgEEAYO/MAEWBAgMBnB1YmxpYzBGBgorBgEEAYO/MAEYBDgMNnJlcG86aHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHk6cmVmOnJlZnMvaGVhZHMvbWFpbjCBigYKKwYBBAHWeQIEAgR8BHoAeAB2AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABoDjcxk8AAAQDAEcwRQIgchU17cUlPI4bj9X3kJEcPirzWjPpoHiCCmc+zCts2dECIQDYcd9zzhhB4NFAyipVxa1NjDYTgyqr+MOe171P+YUOkjAKBggqhkjOPQQDAwNpADBmAjEAvXAH/HvZcHglqHtf13EJvOGoUUH9M7IgO5nJDky0DcYzLYGvie7y1R81gK7qVditAjEA8LYJZBbFEyLiTDB6IGaJvbfNb5dir7hlWVRSkcqsycuUrDNBP5O4Ayk1e2xqaNBz"},"tlogEntries":[{"logIndex":"2583300997","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1787660388","inclusionPromise":{"signedEntryTimestamp":"MEUCIQCPD+DcIXMjfujtuSftT+7jmNjEeUr7dkNE5coXXxikxQIgEf+IJ/2kYJ5ADxkatPICRAR7s8YAKJ4a+P20nUN/pSE="},"inclusionProof":{"logIndex":"2461396735","rootHash":"ZI/dJTehzl7CG5EvEc1W+9eSm4/xpzy3ypRySB1cIak=","treeSize":"2461396738","hashes":["5hvSt7ZFYbc4Pz0KZ1kTFJ0JyWZMTEdcSBaSMPEWKgU=","J+yTkk6F5VdycYmIyVyC7KGzhe6kNjI5gfRqF9mg4do=","ziCDg2LMx8jgyndiAzMOo1S7PiKIXLTKaNCLqaW4tYc=","+qOkLQjvzb5OTYoemnFR8QXV6dRj2Kg+q6W6IHdFvUU=","UBTTofHsrD/tXJCgUFartEaSLHtmA9hqwVUCnxmKfOw=","jctsymf2PHXE6SdE6lQqEqLa8/9vIkw0qveGvYs8YBU=","BXKuzzO7ElNGXj0uheQyAFy9pIic2FshQ8heU2FrQwI=","M4YcEg7u+RzHhtqrJi5G60zEdbFHo9OVEDterfXbo4k=","GmUPfaadYE9veujsPZXWod4O/7gkGm/HgxlzdfU4k0E=","rJMFK17JIR2K3LvDkBdSnu34bvtB3vXQPdwQg0pZ8co=","sBRt94T302PGfFAkqNx12yVeZQ2wK8MXBkspHV8OBEU=","bBUTypOI8GgjhxRM30SIZoDfZopPulgZgxKAp1agI1Q=","EY8T0lxQDrmYoWBGpKNGttaHfKmpfqKcWqSNF4XOQKE=","T4Jz+m9vO48rOpMSsdZSW28/bgHR8prz7JeNX1s7WiQ=","EXKrSbeG2qm5APD5QSDN66X7UHz9OSofiW9PyNU7fPM=","cjIeeutzThxIPTlFFHJqa7bAzn3k2FzK8Nrdd56OWvE=","+pNXWGIXzU1dqSy/aePHKYtSkDnFinI+/bL5HnurJ6w=","G1R9F5B2KizFA2NyhDznjNKXPOF1SDmbGHz+omLG7TY=","RZ7XwGuqMr5gDUh2HpUcaXp+AmIiEcPJiMui4GLJE7o=","mBm+vQtn0C4thMnlTnxfxqowq1dXsPBCKaJ85da3JeU=","b80/J/68RC8/tx5xRdlKk6MmTpZiVRotquWBrE/z1pI=","SndbMKVtcTenAkwi2JBfGzD+mhexp1qJbRIY+A1JRIU=","xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n2461396738\nZI/dJTehzl7CG5EvEc1W+9eSm4/xpzy3ypRySB1cIak=\n\n— rekor.sigstore.dev wNI9ajBGAiEA4IH7NySTEK0L/+tz3vdW5YYzUZ6gatzmXdfohGAtN54CIQCPZ5g8mPhCbx52Te/kWs3grcivO9LqE5trEsmrpKsP3g==\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiI4MWVkYjI2NzE2OTg1YWZjOTZkNzI3NTc4OGI1M2VhNzRiYWY0MTVjODAxZjg0ZGZjNDFiNGY0YWIyZTM3Y2YxIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJUUR2VWJ4b3ZnQVNFN1BrYkdpOSt6WVgzRUJGUlpEYnhpRXhQVVcyamtWOHR3SWdKTGRmK1FuNHJ2ZDk3UjBjRmpER283UXJWV0w2OVpwTVQva3RPQnUya09vPSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaFVSRU5EUW5SSFowRjNTVUpCWjBsVllURnVSMHRZVTFWb2RqbDFkRVYxTTFGdmRHZExhRGM0UXpCTmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDlFU1RGTlZFbDRUMVJSTTFkb1kwNU5hbGwzVDBSSk1VMVVTWGxQVkZFelYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZHZFc1WVUwMDRWV1ZrUWxsdWFpdHJZMUkzZGpOUGEyWTVkMEkxUm5NMFZXcEVXRFlLYmxKcVYwSkpaelJDVDNOd2JYSTJaazVRWXpkSlkwNUNWakE1TVZKamRURnhVVkZ5YUU1QlZYbG1WamxhVGxSUWRUWlBRMEptUVhkbloxaHpUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlYwZFVrM0NsVkpSa0Z6Tkd0d05tVkVTRmhYYUhsaVRWZHlMMDlaZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDJGM1dVUldVakJTUVZGSUwwSkhSWGRZTkZwa1lVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKb01Wb3laSEJpYldSdFdWZE9iQXBNTW5Sc1kyMDFiR0pJVFhSWk1qbDBZbGhXZFdGWVVqVk1lVFZ1WVZoU2IyUlhTWFprTWpsNVlUSmFjMkl6WkhwTU1rb3hZVmQ0YTB4dWJHaGlWM2hCQ21OdFZtMWplVGx2V2xkR2EyTjVPWFJaVjJ4MVRVUnJSME5wYzBkQlVWRkNaemM0ZDBGUlJVVkxNbWd3WkVoQ2VrOXBPSFprUnpseVdsYzBkVmxYVGpBS1lWYzVkV041Tlc1aFdGSnZaRmRLTVdNeVZubFpNamwxWkVkV2RXUkROV3BpTWpCM1NIZFpTMHQzV1VKQ1FVZEVkbnBCUWtGblVWSmtNamw1WVRKYWN3cGlNMlJtV2tkc2VtTkhSakJaTW1kM1RtZFpTMHQzV1VKQ1FVZEVkbnBCUWtGM1VXOVplbEpyVFVkU2FrNVVXVEpPYWtacFdWZFNhVTlYVG1wT1JHUnBDbHBIVlRKT1JHUnNUVVJvYlZwVVRtbE9SMHB0VG5wUk1VOUVRVlJDWjI5eVFtZEZSVUZaVHk5TlFVVkZRa0ZXUTJSWGJITmFSRUZ5UW1kdmNrSm5SVVVLUVZsUEwwMUJSVVpDUWpGdlpGZGtibUZYTlc1YWJVWnFXbE01Y2xwWVNuVmFWM2g2VEZkT2RtSlhNVEZpYld3d1pWUkJaRUpuYjNKQ1owVkZRVmxQTHdwTlFVVkhRa0U1ZVZwWFducE1NbWhzV1ZkU2Vrd3lNV2hoVnpSM1QzZFpTMHQzV1VKQ1FVZEVkbnBCUWtOQlVYUkVRM1J2WkVoU2QyTjZiM1pNTTFKMkNtRXlWblZNYlVacVpFZHNkbUp1VFhWYU1td3dZVWhXYVdSWVRteGpiVTUyWW01U2JHSnVVWFZaTWpsMFRVY3dSME5wYzBkQlVWRkNaemM0ZDBGUmEwVUtXSGQ0WkdGSVVqQmpTRTAyVEhrNWJtRllVbTlrVjBsMVdUSTVkRXd5YURGYU1tUndZbTFrYlZsWFRteE1NblJzWTIwMWJHSklUWFJaTWpsMFlsaFdkUXBoV0ZJMVRIazFibUZZVW05a1YwbDJaREk1ZVdFeVduTmlNMlI2VERKS01XRlhlR3RNYm14b1lsZDRRV050Vm0xamVUbHZXbGRHYTJONU9YUlpWMngxQ2sxRVowZERhWE5IUVZGUlFtYzNPSGRCVVc5RlMyZDNiMWw2VW10TlIxSnFUbFJaTWs1cVJtbFpWMUpwVDFkT2FrNUVaR2xhUjFVeVRrUmtiRTFFYUcwS1dsUk9hVTVIU20xT2VsRXhUMFJCWWtKbmIzSkNaMFZGUVZsUEwwMUJSVXhDUVRCTlF6Tk9iR0pIV1hSaFJ6bDZaRWRXYTAxRlFVZERhWE5IUVZGUlFncG5OemgzUVZGM1JVMW5kM2RoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlUxRVowZERhWE5IUVZGUlFtYzNPSGRCVVRCRlMyZDNiMWw2VW10TlIxSnFUbFJaTWs1cVJtbFpWMUpwVDFkT2FrNUVaR2tLV2tkVk1rNUVaR3hOUkdodFdsUk9hVTVIU20xT2VsRXhUMFJCWmtKbmIzSkNaMFZGUVZsUEwwMUJSVTlDUWtWTlJETktiRnB1VFhaaFIxWm9Xa2hOZGdwaVYwWndZbXBCWVVKbmIzSkNaMFZGUVZsUEwwMUJSVkJDUVhkTlEycEZkMDU2UlRCT2VsVXhUV3ByZDB4bldVdExkMWxDUWtGSFJIWjZRVUpGUVZGbkNrUkNOVzlrU0ZKM1kzcHZka3d5WkhCa1IyZ3hXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWM1IwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWUlVVc0tSRUZuZVU1VVkzbE5SR013VFhwQ2RFSm5iM0pDWjBWRlFWbFBMMDFCUlZOQ1JqaE5XRmRvTUdSSVFucFBhVGgyV2pKc01HRklWbWxNYlU1MllsTTVid3BrVjJSdVlWYzFibHB0Um1wYVV6bHlXbGhLZFZwWGVIcE1WMDUyWWxjeE1XSnRiREJsVXpoMVdqSnNNR0ZJVm1sTU0yUjJZMjEwYldKSE9UTmplVGxwQ21SWGJITmFRelUxV1ZjeGMxRklTbXhhYmsxMllVZFdhRnBJVFhaaVYwWndZbXBCTkVKbmIzSkNaMFZGUVZsUEwwMUJSVlJDUTI5TlMwZE5NRnBFUW1zS1dYcFZNazVxV1hoWmJVWnJXV3BzYWxsNlVUTlpiVkpzVG1wUk0xcFVRVFJhYlZWNldXcFNhVnBxWXpCT1ZHZDNTVkZaUzB0M1dVSkNRVWRFZG5wQlFncEdRVkZVUkVKR00ySXpTbkphYlhoMlpERTVhMkZZVG5kWldGSnFZVVJDYTBKbmIzSkNaMFZGUVZsUEwwMUJSVlpDUmxsTlZrZG9NR1JJUW5wUGFUaDJDbG95YkRCaFNGWnBURzFPZG1KVE9XOWtWMlJ1WVZjMWJscHRSbXBhVXpseVdsaEtkVnBYZUhwTVYwNTJZbGN4TVdKdGJEQmxVemxvV1ROU2NHSXlOWG9LVEROS01XSnVUWFpOZWtrMFRrUlJNazlFYXpSUFZGRjJXVmhTTUZwWE1YZGtTRTEyVFZSQlYwSm5iM0pDWjBWRlFWbFBMMDFCUlZkQ1FXZE5RbTVDTVFwWmJYaHdXWHBDUjBKbmIzSkNaMFZGUVZsUEwwMUJSVmxDUkdkTlRtNUtiR05IT0RaaFNGWnVXakpzZFZveVdtaFpNbFYyWVRKV2VXSnRWbk5qZVRGcUNtSXlNWFJrVnpWd1pFaHJObU50Vm0xUGJrcHNXbTVOZG1GSFZtaGFTRTEyWWxkR2NHSnFRMEpwWjFsTFMzZFpRa0pCU0ZkbFVVbEZRV2RTT0VKSWIwRUtaVUZDTWtGT01EbE5SM0pIZUhoRmVWbDRhMlZJU214dVRuZExhVk5zTmpRemFubDBMelJsUzJOdlFYWkxaVFpQUVVGQlFtOUVhbU40YXpoQlFVRlJSQXBCUldOM1VsRkpaMk5vVlRFM1kxVnNVRWswWW1vNVdETnJTa1ZqVUdseWVsZHFVSEJ2U0dsRFEyMWpLM3BEZEhNeVpFVkRTVkZFV1dOa09YcDZhR2hDQ2pST1JrRjVhWEJXZUdFeFRtcEVXVlJuZVhGeUswMVBaVEUzTVZBcldWVlBhMnBCUzBKblozRm9hMnBQVUZGUlJFRjNUbkJCUkVKdFFXcEZRWFpZUVVnS0wwaDJXbU5JWjJ4eFNIUm1NVE5GU25aUFIyOVZWVWc1VFRkSlowODFia3BFYTNrd1JHTlpla3haUjNacFpUZDVNVkk0TVdkTE4zRldaR2wwUVdwRlFRbzRURmxLV2tKaVJrVjVUR2xVUkVJMlNVZGhTblppWms1aU5XUnBjamRvYkZkV1VsTnJZM0Z6ZVdOMVZYSkVUa0pRTlU4MFFYbHJNV1V5ZUhGaFRrSjZDaTB0TFMwdFJVNUVJRU5GVWxSSlJrbERRVlJGTFMwdExTMEsifX19fQ=="}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyjADAgEAMIICwQYJKoZIhvcNAQcCoIICsjCCAq4CAQMxDTALBglghkgBZQMEAgEwgbgGCyqGSIb3DQEJEAEEoIGoBIGlMIGiAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgX6uyPy3jZ5S2wkDAQRomrdvLfADS0UMVdeajSBjDthkCFQCXvzeVXs2PG6lT5qIvLfbYF7QNexgPMjAyNjA4MjUxMjE5NDdaMAMCAQGgMqQwMC4xFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEVMBMGA1UEAxMMc2lnc3RvcmUtdHNhoAAxggHbMIIB1wIBATBRMDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAsGCWCGSAFlAwQCAaCB/DAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTI2MDgyNTEyMTk0N1owLwYJKoZIhvcNAQkEMSIEIEEpsZMhQtyDqy0aGofek41BRyGNCa2xJmsDo6PoX0wYMIGOBgsqhkiG9w0BCRACLzF/MH0wezB5BCCF+Se8B6tiysO0Q1bBDvyBssaIP9p6uebYcNnROs0FtzBVMD2kOzA5MRUwEwYDVQQKEwxzaWdzdG9yZS5kZXYxIDAeBgNVBAMTF3NpZ3N0b3JlLXRzYS1zZWxmc2lnbmVkAhQ6E1QvDJBh7rzBQy/Lio6LKiOLDDAKBggqhkjOPQQDAgRnMGUCMDlezbxhcPERF3E5mLnhlOTZxQVr8kpjnZUoxSgGZClxTOFFTCfaaLgiBSgb3Fmx3AIxANSktnxeZ+1MfGDWbwkeOA4T3yrNVGpFFnx9Uf/se7FwJ7OsaIASxGtc/r5pxIaSKQ=="}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"ge2yZxaYWvyW1ydXiLU+p0uvQVyAH4TfxBtPSrLjfPE="},"signature":"MEUCIQDvUbxovgASE7PkbGi9+zYX3EBFRZDbxiExPUW2jkV8twIgJLdf+Qn4rvd97R0cFjDGo7QrVWL69ZpMT/ktOBu2kOo="}}
build/torch211-cxx11-cu126-aarch64-linux/xpu_fused_moe.py CHANGED
@@ -26,7 +26,7 @@ def _register_xpu_fake_kernels():
26
 
27
  _register_if_available(
28
  "cutlass_grouped_gemm_interface",
29
- lambda ptr_A, ptr_B, ptr_scales, ptr_bias, ptr_D, expert_first_token_offset, N, K, num_experts, is_B_int4, is_B_mxfp4: ptr_D,
30
  )
31
 
32
  _register_if_available(
@@ -106,12 +106,13 @@ def cutlass_grouped_gemm(input_A, input_B, bias, output, expert_token_count, n,
106
  K=k,
107
  num_experts=num_experts,
108
  is_B_int4=False,
109
- is_B_mxfp4=False)
 
110
 
111
 
112
  def cutlass_grouped_gemm_xe2(input_A, input_B, scales, bias, output,
113
  num_rows_per_expert, n, k, num_experts, is_B_int4,
114
- is_B_mxfp4):
115
  expert_first_token_offset = torch.cat([
116
  torch.tensor([0],
117
  dtype=num_rows_per_expert.dtype,
@@ -129,7 +130,8 @@ def cutlass_grouped_gemm_xe2(input_A, input_B, scales, bias, output,
129
  K=k,
130
  num_experts=num_experts,
131
  is_B_int4=is_B_int4,
132
- is_B_mxfp4=is_B_mxfp4)
 
133
 
134
 
135
  def ceilDiv(a, b):
@@ -206,7 +208,8 @@ def xpu_fused_moe(hidden_states,
206
  ep_size=1,
207
  is_fp8=False,
208
  is_int4=False,
209
- is_mxfp4=False):
 
210
  '''
211
  hidden_states: [num_rows, hidden_size]
212
  w13: [num_experts, 2*inter_size, hidden_size]
@@ -228,6 +231,7 @@ def xpu_fused_moe(hidden_states,
228
  num_experts: int
229
  is_int4: bool
230
  is_mxfp4: bool
 
231
  '''
232
 
233
  # Resolve DTensors to local tensors before passing to custom ops
@@ -266,7 +270,7 @@ def xpu_fused_moe(hidden_states,
266
 
267
  # 4bits support [E, N, K]
268
  # other types [E, K, N]
269
- if not is_int4 and not is_mxfp4:
270
  if not hasattr(w13, 'xpu_fused_moe'):
271
  if needs_transpose:
272
  w13.data = w13.transpose(-1, -2).contiguous()
@@ -389,7 +393,7 @@ def xpu_fused_moe(hidden_states,
389
  ########### gemm1 ##################
390
  input_B = w13
391
 
392
- if not is_fp8 and not is_int4 and not is_mxfp4:
393
  ops.cutlass_grouped_gemm_interface(
394
  ptr_A=gemm1_input,
395
  ptr_B=input_B,
@@ -401,7 +405,8 @@ def xpu_fused_moe(hidden_states,
401
  K=hidden_size,
402
  num_experts=num_experts_per_node,
403
  is_B_int4=is_int4,
404
- is_B_mxfp4=is_mxfp4)
 
405
  else:
406
  ops.cutlass_grouped_gemm_interface(
407
  ptr_A=gemm1_input,
@@ -414,7 +419,8 @@ def xpu_fused_moe(hidden_states,
414
  K=hidden_size,
415
  num_experts=num_experts_per_node,
416
  is_B_int4=is_int4,
417
- is_B_mxfp4=is_mxfp4)
 
418
 
419
  # act
420
  act_output = torch.empty((num_moe_inputs, inter_size),
@@ -435,7 +441,7 @@ def xpu_fused_moe(hidden_states,
435
  gemm2_output = torch.empty((num_moe_inputs, hidden_size),
436
  dtype=hidden_states.dtype,
437
  device=hidden_states.device)
438
- if not is_fp8 and not is_int4 and not is_mxfp4:
439
  ops.cutlass_grouped_gemm_interface(
440
  ptr_A=input_A,
441
  ptr_B=input_B,
@@ -447,7 +453,8 @@ def xpu_fused_moe(hidden_states,
447
  K=inter_size,
448
  num_experts=num_experts_per_node,
449
  is_B_int4=is_int4,
450
- is_B_mxfp4=is_mxfp4)
 
451
  else:
452
  ops.cutlass_grouped_gemm_interface(
453
  ptr_A=input_A,
@@ -460,7 +467,8 @@ def xpu_fused_moe(hidden_states,
460
  K=inter_size,
461
  num_experts=num_experts_per_node,
462
  is_B_int4=is_int4,
463
- is_B_mxfp4=is_mxfp4)
 
464
 
465
  ops.moe_gather(output, gemm2_output, topk_weights,
466
  permuted_row_to_unpermuted_row,
@@ -633,6 +641,7 @@ class MegaBlocksMoeMLP(torch.nn.Module):
633
  is_fp8 = getattr(self.experts, "is_fp8", False)
634
  is_int4 = getattr(self.experts, "is_int4", False)
635
  is_mxfp4 = getattr(self.experts, "is_mxfp4", False)
 
636
 
637
  w13_scales = getattr(self.experts, "gate_up_proj_scales", None)
638
  w2_scales = getattr(self.experts, "down_proj_scales", None)
@@ -685,6 +694,7 @@ class MegaBlocksMoeMLP(torch.nn.Module):
685
  is_fp8=is_fp8,
686
  is_int4=is_int4,
687
  is_mxfp4=is_mxfp4,
 
688
  )
689
 
690
  # All-reduce across EP group to combine partial expert outputs
 
26
 
27
  _register_if_available(
28
  "cutlass_grouped_gemm_interface",
29
+ lambda ptr_A, ptr_B, ptr_scales, ptr_bias, ptr_D, expert_first_token_offset, N, K, num_experts, is_B_int4, is_B_mxfp4, is_B_mxfp8=False: ptr_D,
30
  )
31
 
32
  _register_if_available(
 
106
  K=k,
107
  num_experts=num_experts,
108
  is_B_int4=False,
109
+ is_B_mxfp4=False,
110
+ is_B_mxfp8=False)
111
 
112
 
113
  def cutlass_grouped_gemm_xe2(input_A, input_B, scales, bias, output,
114
  num_rows_per_expert, n, k, num_experts, is_B_int4,
115
+ is_B_mxfp4, is_B_mxfp8=False):
116
  expert_first_token_offset = torch.cat([
117
  torch.tensor([0],
118
  dtype=num_rows_per_expert.dtype,
 
130
  K=k,
131
  num_experts=num_experts,
132
  is_B_int4=is_B_int4,
133
+ is_B_mxfp4=is_B_mxfp4,
134
+ is_B_mxfp8=is_B_mxfp8)
135
 
136
 
137
  def ceilDiv(a, b):
 
208
  ep_size=1,
209
  is_fp8=False,
210
  is_int4=False,
211
+ is_mxfp4=False,
212
+ is_mxfp8=False):
213
  '''
214
  hidden_states: [num_rows, hidden_size]
215
  w13: [num_experts, 2*inter_size, hidden_size]
 
231
  num_experts: int
232
  is_int4: bool
233
  is_mxfp4: bool
234
+ is_mxfp8: bool
235
  '''
236
 
237
  # Resolve DTensors to local tensors before passing to custom ops
 
270
 
271
  # 4bits support [E, N, K]
272
  # other types [E, K, N]
273
+ if not is_int4 and not is_mxfp4 and not is_mxfp8:
274
  if not hasattr(w13, 'xpu_fused_moe'):
275
  if needs_transpose:
276
  w13.data = w13.transpose(-1, -2).contiguous()
 
393
  ########### gemm1 ##################
394
  input_B = w13
395
 
396
+ if not is_fp8 and not is_int4 and not is_mxfp4 and not is_mxfp8:
397
  ops.cutlass_grouped_gemm_interface(
398
  ptr_A=gemm1_input,
399
  ptr_B=input_B,
 
405
  K=hidden_size,
406
  num_experts=num_experts_per_node,
407
  is_B_int4=is_int4,
408
+ is_B_mxfp4=is_mxfp4,
409
+ is_B_mxfp8=is_mxfp8)
410
  else:
411
  ops.cutlass_grouped_gemm_interface(
412
  ptr_A=gemm1_input,
 
419
  K=hidden_size,
420
  num_experts=num_experts_per_node,
421
  is_B_int4=is_int4,
422
+ is_B_mxfp4=is_mxfp4,
423
+ is_B_mxfp8=is_mxfp8)
424
 
425
  # act
426
  act_output = torch.empty((num_moe_inputs, inter_size),
 
441
  gemm2_output = torch.empty((num_moe_inputs, hidden_size),
442
  dtype=hidden_states.dtype,
443
  device=hidden_states.device)
444
+ if not is_fp8 and not is_int4 and not is_mxfp4 and not is_mxfp8:
445
  ops.cutlass_grouped_gemm_interface(
446
  ptr_A=input_A,
447
  ptr_B=input_B,
 
453
  K=inter_size,
454
  num_experts=num_experts_per_node,
455
  is_B_int4=is_int4,
456
+ is_B_mxfp4=is_mxfp4,
457
+ is_B_mxfp8=is_mxfp8)
458
  else:
459
  ops.cutlass_grouped_gemm_interface(
460
  ptr_A=input_A,
 
467
  K=inter_size,
468
  num_experts=num_experts_per_node,
469
  is_B_int4=is_int4,
470
+ is_B_mxfp4=is_mxfp4,
471
+ is_B_mxfp8=is_mxfp8)
472
 
473
  ops.moe_gather(output, gemm2_output, topk_weights,
474
  permuted_row_to_unpermuted_row,
 
641
  is_fp8 = getattr(self.experts, "is_fp8", False)
642
  is_int4 = getattr(self.experts, "is_int4", False)
643
  is_mxfp4 = getattr(self.experts, "is_mxfp4", False)
644
+ is_mxfp8 = getattr(self.experts, "is_mxfp8", False)
645
 
646
  w13_scales = getattr(self.experts, "gate_up_proj_scales", None)
647
  w2_scales = getattr(self.experts, "down_proj_scales", None)
 
694
  is_fp8=is_fp8,
695
  is_int4=is_int4,
696
  is_mxfp4=is_mxfp4,
697
+ is_mxfp8=is_mxfp8,
698
  )
699
 
700
  # All-reduce across EP group to combine partial expert outputs
build/torch211-cxx11-cu128-aarch64-linux/{_megablocks_cuda_18e92fb.abi3.so → _megablocks_cuda_c4d0dc5.abi3.so} RENAMED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:866d45eee04fbdfe07ea6174146ce89b3cf23ce3e4b02e6d194b02b120ec6ea5
3
  size 19079128
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a4db24a265054351d3f005b945c66f11ed30f8edeabf9a119be12685e1b66307
3
  size 19079128
build/torch211-cxx11-cu128-aarch64-linux/_ops.py CHANGED
@@ -1,9 +1,9 @@
1
  import torch
2
- from . import _megablocks_cuda_18e92fb
3
- ops = torch.ops._megablocks_cuda_18e92fb
4
 
5
  def add_op_namespace_prefix(op_name: str):
6
  """
7
  Prefix op by namespace.
8
  """
9
- return f"_megablocks_cuda_18e92fb::{op_name}"
 
1
  import torch
2
+ from . import _megablocks_cuda_c4d0dc5
3
+ ops = torch.ops._megablocks_cuda_c4d0dc5
4
 
5
  def add_op_namespace_prefix(op_name: str):
6
  """
7
  Prefix op by namespace.
8
  """
9
+ return f"_megablocks_cuda_c4d0dc5::{op_name}"
build/torch211-cxx11-cu128-aarch64-linux/metadata.json CHANGED
@@ -1,6 +1,6 @@
1
  {
2
  "name": "megablocks",
3
- "id": "_megablocks_cuda_18e92fb",
4
  "version": 1,
5
  "license": "Apache-2.0",
6
  "python-depends": [],
@@ -51,8 +51,8 @@
51
  "_layers/mpu.py": "BX61/pmqRCVeEMnzpuK8x5NpITBJyZfOawGnDegW1O8=",
52
  "_layers/router.py": "GKC/5//Uf43HT6zXlBTStCMTml2YXn7Jbgq9EgTgDC0=",
53
  "_layers/sharedexpert_registry.py": "GfwHKjbC7lBXYq9kNifp3HudTdZKSqwsFxGxFLc2krw=",
54
- "_megablocks_cuda_18e92fb.abi3.so": "hm1F7uBPvf4H6mF0FGzomzzyPOPksC5tGUsCsSDsbqU=",
55
- "_ops.py": "baTEjeHRnpTSLod30qZST/UL5GNv7vZoGeNwQWakxbo=",
56
  "_version.py": "W3l9oUrnmvfBoIy06Lv0y2ezTQhNU04ug/txHcdWJD0=",
57
  "backend/__init__.py": "4bunAqqjwE93nym8CigHbqVAal7UaYGdONb8lGRfrek=",
58
  "backend/kernels.py": "2UFNTlmSDk3S5y6UW14MJMPVVsVhmozxQ5wFDxtZHhQ=",
@@ -103,7 +103,7 @@
103
  "stk/random/__init__.py": "Gr/+Gl20jJ6fJVRfoAUxEcCPeChILQzrzhKVVAWQsRI=",
104
  "stk/random/random_ops.py": "AluIDj3Vo2ReKAsZz07yydbtndDbJoglekRGIaCoRZE=",
105
  "stk/random/random_ops_test.py": "B+a4Zb+OPhBtpVA48oc09sBL/AAQO9j/YUFI0nnXxzk=",
106
- "xpu_fused_moe.py": "Dp6S3fK/Fc4Sr+Ac94vw2zz0v/QTGp6rYeMIUqE3Y/I="
107
  }
108
  },
109
  "provenance": {
@@ -113,7 +113,7 @@
113
  "dirty": false
114
  },
115
  "kernel": {
116
- "sha": "18e92fb6886201ffb91c173f02593777756c793f",
117
  "dirty": false
118
  }
119
  }
 
1
  {
2
  "name": "megablocks",
3
+ "id": "_megablocks_cuda_c4d0dc5",
4
  "version": 1,
5
  "license": "Apache-2.0",
6
  "python-depends": [],
 
51
  "_layers/mpu.py": "BX61/pmqRCVeEMnzpuK8x5NpITBJyZfOawGnDegW1O8=",
52
  "_layers/router.py": "GKC/5//Uf43HT6zXlBTStCMTml2YXn7Jbgq9EgTgDC0=",
53
  "_layers/sharedexpert_registry.py": "GfwHKjbC7lBXYq9kNifp3HudTdZKSqwsFxGxFLc2krw=",
54
+ "_megablocks_cuda_c4d0dc5.abi3.so": "pNskomUFQ1HT8AW5RcZvEe0w+O3qv5oRm+EmheG2Ywc=",
55
+ "_ops.py": "9NSxkX5lSS5VhF9+hDazP5NimwZK2V/+nIXR0AQxnHA=",
56
  "_version.py": "W3l9oUrnmvfBoIy06Lv0y2ezTQhNU04ug/txHcdWJD0=",
57
  "backend/__init__.py": "4bunAqqjwE93nym8CigHbqVAal7UaYGdONb8lGRfrek=",
58
  "backend/kernels.py": "2UFNTlmSDk3S5y6UW14MJMPVVsVhmozxQ5wFDxtZHhQ=",
 
103
  "stk/random/__init__.py": "Gr/+Gl20jJ6fJVRfoAUxEcCPeChILQzrzhKVVAWQsRI=",
104
  "stk/random/random_ops.py": "AluIDj3Vo2ReKAsZz07yydbtndDbJoglekRGIaCoRZE=",
105
  "stk/random/random_ops_test.py": "B+a4Zb+OPhBtpVA48oc09sBL/AAQO9j/YUFI0nnXxzk=",
106
+ "xpu_fused_moe.py": "sPmuRSpkH1Bmk4hdpz53us8Qpc6yinT9rkld3T8WreI="
107
  }
108
  },
109
  "provenance": {
 
113
  "dirty": false
114
  },
115
  "kernel": {
116
+ "sha": "c4d0dc56661badb9cc47bde647e08fe3b4bf7458",
117
  "dirty": false
118
  }
119
  }
build/torch211-cxx11-cu128-aarch64-linux/metadata.json.sigstore CHANGED
@@ -1 +1 @@
1
- {"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"MIIHSzCCBtGgAwIBAgIUcJaoMTXf0o6a8TJCeaJyVqjIPTswCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwODI1MDkwNDIwWhcNMjYwODI1MDkxNDIwWjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAElN54NV9JP5KD59fy8SYQxrYLM09jzA/ggW0u0Y1tvNVdG6lhxeqCPYUd+metC2reHzo+LcVR1aUzs6x0DiNU+KOCBfAwggXsMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQU5phfwt26g8dm43UGMlCqWkJE1dgwHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wawYDVR0RAQH/BGEwX4ZdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDkGCisGAQQBg78wAQEEK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wHwYKKwYBBAGDvzABAgQRd29ya2Zsb3dfZGlzcGF0Y2gwNgYKKwYBBAGDvzABAwQoMThlOTJmYjY4ODYyMDFmZmI5MWMxNzNmMDI1OTM3Nzc3NTZjNzkzZjATBgorBgEEAYO/MAEEBAVCdWlsZDArBgorBgEEAYO/MAEFBB1odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTAdBgorBgEEAYO/MAEGBA9yZWZzL2hlYWRzL21haW4wOwYKKwYBBAGDvzABCAQtDCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMG0GCisGAQQBg78wAQkEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wAQoEKgwoMThlOTJmYjY4ODYyMDFmZmI5MWMxNzNmMDI1OTM3Nzc3NTZjNzkzZjAbBgorBgEEAYO/MAELBA0MC3NlbGYtaG9zdGVkMEAGCisGAQQBg78wAQwEMgwwaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MDgGCisGAQQBg78wAQ0EKgwoMThlOTJmYjY4ODYyMDFmZmI5MWMxNzNmMDI1OTM3Nzc3NTZjNzkzZjAfBgorBgEEAYO/MAEOBBEMD3JlZnMvaGVhZHMvbWFpbjAaBgorBgEEAYO/MAEPBAwMCjEwNzE0NzU1MjkwLgYKKwYBBAGDvzABEAQgDB5odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2UwGAYKKwYBBAGDvzABEQQKDAgyNTcyMDc0MzBtBgorBgEEAYO/MAESBF8MXWh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS8uZ2l0aHViL3dvcmtmbG93cy9idWlsZC55YW1sQHJlZnMvaGVhZHMvbWFpbjA4BgorBgEEAYO/MAETBCoMKDE4ZTkyZmI2ODg2MjAxZmZiOTFjMTczZjAyNTkzNzc3NzU2Yzc5M2YwIQYKKwYBBAGDvzABFAQTDBF3b3JrZmxvd19kaXNwYXRjaDBkBgorBgEEAYO/MAEVBFYMVGh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS9hY3Rpb25zL3J1bnMvMzI4Mjc3ODQ2NjkvYXR0ZW1wdHMvMTAWBgorBgEEAYO/MAEWBAgMBnB1YmxpYzBGBgorBgEEAYO/MAEYBDgMNnJlcG86aHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHk6cmVmOnJlZnMvaGVhZHMvbWFpbjCBigYKKwYBBAHWeQIEAgR8BHoAeAB2AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABoDgp1KsAAAQDAEcwRQIhAPp4PzzBsPQZDjF2wsiSoOOfcbgHxubUWJ/fiZ7TMRTfAiBVIFPIWnYmoWs13bdDa1It4ElqN1Xb5SPgyneW9ngdgjAKBggqhkjOPQQDAwNoADBlAjAHVNGiIUwU6dJgTcVYWUAd6qpoWGI3dc9HDSuj5VPYWJ45hyFHw+i7UWMQwgRY2WACMQDg/vjgok4s2ROaoCwUY30oR5NF7fdNV6EAPh/xz5HN+ZmhRj/NO5jMYG7ftkk4E74="},"tlogEntries":[{"logIndex":"2582977721","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1787648660","inclusionPromise":{"signedEntryTimestamp":"MEUCIQDtvVVae75tqgyiABN+3t3Dx5Ey6N3h+WjKI0B024qWKgIgKM30oFEQ0I9rARlVEAwajdGJwT15yF+GpzvZ8dFBK5s="},"inclusionProof":{"logIndex":"2461073459","rootHash":"RY/uO7Ngwm1vvNDlYPXcHMmNXgc4PkUSX5uCOOGuHFA=","treeSize":"2461073461","hashes":["9qy3h3npZwbuSNzQC7/lwMlBF7FDJNpFt6FkiaV+bhQ=","dIbLsPRGEjYt+0vBIy7EjGb43nIskmKs09yMx+UGwRc=","b18mYJmqWdWM5Rnl0pTgboMTZgpjjGM2i5+KZhxiQ4A=","THCnfO3ePQZlKA0Za+sx59fdhpY/K4OLGOiWz6uhWCE=","d1boxA4L/qk9dPYuyI9n0pMKSK++v8n6CTnTIyiIrJ8=","/pzrkLFRwt/XMVRmL7s6Ii88QiOLu5drCOp/UggZ7TU=","G1R9F5B2KizFA2NyhDznjNKXPOF1SDmbGHz+omLG7TY=","RZ7XwGuqMr5gDUh2HpUcaXp+AmIiEcPJiMui4GLJE7o=","mBm+vQtn0C4thMnlTnxfxqowq1dXsPBCKaJ85da3JeU=","b80/J/68RC8/tx5xRdlKk6MmTpZiVRotquWBrE/z1pI=","SndbMKVtcTenAkwi2JBfGzD+mhexp1qJbRIY+A1JRIU=","xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n2461073461\nRY/uO7Ngwm1vvNDlYPXcHMmNXgc4PkUSX5uCOOGuHFA=\n\n— rekor.sigstore.dev wNI9ajBFAiBn75ktZP2hAzSn5VlPMdSo+PPcu1MQcQdg+rqGmMV2HQIhAMLuG+VnbWSX0HYH1Cq9e154wyf0OdzGzBd8A891Yyma\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiJlODYwOWRkMzcxMDk4YjdlYTkxMjcxMmY1YmZlODZmNzViNzA3ZGQ3YTMyNTI5YWMxOWYzYzE1MDJiNTllYzVhIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJRm54aGJtdWJnSWFqem9WK09HME9sZytQbzJCZ2lxUzhaa1AvNUJPWGxXYUFpRUFoWis4dGNuRTAzZXMvOUptYyt0ajhQWTI5b1BCaVRXN3o2ZHhNc00zcFc4PSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaFRla05EUW5SSFowRjNTVUpCWjBsVlkwcGhiMDFVV0dZd2J6WmhPRlJLUTJWaFNubFdjV3BKVUZSemQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDlFU1RGTlJHdDNUa1JKZDFkb1kwNU5hbGwzVDBSSk1VMUVhM2hPUkVsM1YycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZzVGpVMFRsWTVTbEExUzBRMU9XWjVPRk5aVVhoeVdVeE5NRGxxZWtFdloyZFhNSFVLTUZreGRIWk9WbVJITm14b2VHVnhRMUJaVldRcmJXVjBRekp5WlVoNmJ5dE1ZMVpTTVdGVmVuTTJlREJFYVU1VkswdFBRMEptUVhkbloxaHpUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlUxY0dobUNuZDBNalpuT0dSdE5ETlZSMDFzUTNGWGEwcEZNV1JuZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDJGM1dVUldVakJTUVZGSUwwSkhSWGRZTkZwa1lVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKb01Wb3laSEJpYldSdFdWZE9iQXBNTW5Sc1kyMDFiR0pJVFhSWk1qbDBZbGhXZFdGWVVqVk1lVFZ1WVZoU2IyUlhTWFprTWpsNVlUSmFjMkl6WkhwTU1rb3hZVmQ0YTB4dWJHaGlWM2hCQ21OdFZtMWplVGx2V2xkR2EyTjVPWFJaVjJ4MVRVUnJSME5wYzBkQlVWRkNaemM0ZDBGUlJVVkxNbWd3WkVoQ2VrOXBPSFprUnpseVdsYzBkVmxYVGpBS1lWYzVkV041Tlc1aFdGSnZaRmRLTVdNeVZubFpNamwxWkVkV2RXUkROV3BpTWpCM1NIZFpTMHQzV1VKQ1FVZEVkbnBCUWtGblVWSmtNamw1WVRKYWN3cGlNMlJtV2tkc2VtTkhSakJaTW1kM1RtZFpTMHQzV1VKQ1FVZEVkbnBCUWtGM1VXOU5WR2hzVDFSS2JWbHFXVFJQUkZsNVRVUkdiVnB0U1RWTlYwMTRDazU2VG0xTlJFa3hUMVJOTTA1Nll6Tk9WRnBxVG5wcmVscHFRVlJDWjI5eVFtZEZSVUZaVHk5TlFVVkZRa0ZXUTJSWGJITmFSRUZ5UW1kdmNrSm5SVVVLUVZsUEwwMUJSVVpDUWpGdlpGZGtibUZYTlc1YWJVWnFXbE01Y2xwWVNuVmFWM2g2VEZkT2RtSlhNVEZpYld3d1pWUkJaRUpuYjNKQ1owVkZRVmxQTHdwTlFVVkhRa0U1ZVZwWFducE1NbWhzV1ZkU2Vrd3lNV2hoVnpSM1QzZFpTMHQzV1VKQ1FVZEVkbnBCUWtOQlVYUkVRM1J2WkVoU2QyTjZiM1pNTTFKMkNtRXlWblZNYlVacVpFZHNkbUp1VFhWYU1td3dZVWhXYVdSWVRteGpiVTUyWW01U2JHSnVVWFZaTWpsMFRVY3dSME5wYzBkQlVWRkNaemM0ZDBGUmEwVUtXSGQ0WkdGSVVqQmpTRTAyVEhrNWJtRllVbTlrVjBsMVdUSTVkRXd5YURGYU1tUndZbTFrYlZsWFRteE1NblJzWTIwMWJHSklUWFJaTWpsMFlsaFdkUXBoV0ZJMVRIazFibUZZVW05a1YwbDJaREk1ZVdFeVduTmlNMlI2VERKS01XRlhlR3RNYm14b1lsZDRRV050Vm0xamVUbHZXbGRHYTJONU9YUlpWMngxQ2sxRVowZERhWE5IUVZGUlFtYzNPSGRCVVc5RlMyZDNiMDFVYUd4UFZFcHRXV3BaTkU5RVdYbE5SRVp0V20xSk5VMVhUWGhPZWs1dFRVUkpNVTlVVFRNS1RucGpNMDVVV21wT2VtdDZXbXBCWWtKbmIzSkNaMFZGUVZsUEwwMUJSVXhDUVRCTlF6Tk9iR0pIV1hSaFJ6bDZaRWRXYTAxRlFVZERhWE5IUVZGUlFncG5OemgzUVZGM1JVMW5kM2RoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlUxRVowZERhWE5IUVZGUlFtYzNPSGRCVVRCRlMyZDNiMDFVYUd4UFZFcHRXV3BaTkU5RVdYbE5SRVp0V20xSk5VMVhUWGdLVG5wT2JVMUVTVEZQVkUwelRucGpNMDVVV21wT2VtdDZXbXBCWmtKbmIzSkNaMFZGUVZsUEwwMUJSVTlDUWtWTlJETktiRnB1VFhaaFIxWm9Xa2hOZGdwaVYwWndZbXBCWVVKbmIzSkNaMFZGUVZsUEwwMUJSVkJDUVhkTlEycEZkMDU2UlRCT2VsVXhUV3ByZDB4bldVdExkMWxDUWtGSFJIWjZRVUpGUVZGbkNrUkNOVzlrU0ZKM1kzcHZka3d5WkhCa1IyZ3hXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWM1IwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWUlVVc0tSRUZuZVU1VVkzbE5SR013VFhwQ2RFSm5iM0pDWjBWRlFWbFBMMDFCUlZOQ1JqaE5XRmRvTUdSSVFucFBhVGgyV2pKc01HRklWbWxNYlU1MllsTTVid3BrVjJSdVlWYzFibHB0Um1wYVV6bHlXbGhLZFZwWGVIcE1WMDUyWWxjeE1XSnRiREJsVXpoMVdqSnNNR0ZJVm1sTU0yUjJZMjEwYldKSE9UTmplVGxwQ21SWGJITmFRelUxV1ZjeGMxRklTbXhhYmsxMllVZFdhRnBJVFhaaVYwWndZbXBCTkVKbmIzSkNaMFZGUVZsUEwwMUJSVlJDUTI5TlMwUkZORnBVYTNrS1dtMUpNazlFWnpKTmFrRjRXbTFhYVU5VVJtcE5WR042V21wQmVVNVVhM3BPZW1NelRucFZNbGw2WXpWTk1sbDNTVkZaUzB0M1dVSkNRVWRFZG5wQlFncEdRVkZVUkVKR00ySXpTbkphYlhoMlpERTVhMkZZVG5kWldGSnFZVVJDYTBKbmIzSkNaMFZGUVZsUEwwMUJSVlpDUmxsTlZrZG9NR1JJUW5wUGFUaDJDbG95YkRCaFNGWnBURzFPZG1KVE9XOWtWMlJ1WVZjMWJscHRSbXBhVXpseVdsaEtkVnBYZUhwTVYwNTJZbGN4TVdKdGJEQmxVemxvV1ROU2NHSXlOWG9LVEROS01XSnVUWFpOZWtrMFRXcGpNMDlFVVRKT2FtdDJXVmhTTUZwWE1YZGtTRTEyVFZSQlYwSm5iM0pDWjBWRlFWbFBMMDFCUlZkQ1FXZE5RbTVDTVFwWmJYaHdXWHBDUjBKbmIzSkNaMFZGUVZsUEwwMUJSVmxDUkdkTlRtNUtiR05IT0RaaFNGWnVXakpzZFZveVdtaFpNbFYyWVRKV2VXSnRWbk5qZVRGcUNtSXlNWFJrVnpWd1pFaHJObU50Vm0xUGJrcHNXbTVOZG1GSFZtaGFTRTEyWWxkR2NHSnFRMEpwWjFsTFMzZFpRa0pCU0ZkbFVVbEZRV2RTT0VKSWIwRUtaVUZDTWtGT01EbE5SM0pIZUhoRmVWbDRhMlZJU214dVRuZExhVk5zTmpRemFubDBMelJsUzJOdlFYWkxaVFpQUVVGQlFtOUVaM0F4UzNOQlFVRlJSQXBCUldOM1VsRkphRUZRY0RSUWVucENjMUJSV2tScVJqSjNjMmxUYjA5UFptTmlaMGg0ZFdKVlYwb3ZabWxhTjFSTlVsUm1RV2xDVmtsR1VFbFhibGx0Q205WGN6RXpZbVJFWVRGSmREUkZiSEZPTVZoaU5WTlFaM2x1WlZjNWJtZGtaMnBCUzBKblozRm9hMnBQVUZGUlJFRjNUbTlCUkVKc1FXcEJTRlpPUjJrS1NWVjNWVFprU21kVVkxWlpWMVZCWkRaeGNHOVhSMGt6WkdNNVNFUlRkV28xVmxCWlYwbzBOV2g1UmtoM0syazNWVmROVVhkblVsa3lWMEZEVFZGRVp3b3ZkbXBuYjJzMGN6SlNUMkZ2UTNkVldUTXdiMUkxVGtZM1ptUk9WalpGUVZCb0wzaDZOVWhPSzFwdGFGSnFMMDVQTldwTldVYzNablJyYXpSRk56UTlDaTB0TFMwdFJVNUVJRU5GVWxSSlJrbERRVlJGTFMwdExTMEsifX19fQ=="}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyDADAgEAMIICvwYJKoZIhvcNAQcCoIICsDCCAqwCAQMxDTALBglghkgBZQMEAgEwgbcGCyqGSIb3DQEJEAEEoIGnBIGkMIGhAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQglDJg9KqQV1UqFIK9+Yaywe3826SSndmvN+/4HU7gUT0CFGBZRo6SvAvmZTJme3lREaiH0g1JGA8yMDI2MDgyNTA5MDQyMFowAwIBAaAypDAwLjEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MRUwEwYDVQQDEwxzaWdzdG9yZS10c2GgADGCAdowggHWAgEBMFEwOTEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MSAwHgYDVQQDExdzaWdzdG9yZS10c2Etc2VsZnNpZ25lZAIUOhNULwyQYe68wUMvy4qOiyojiwwwCwYJYIZIAWUDBAIBoIH8MBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAcBgkqhkiG9w0BCQUxDxcNMjYwODI1MDkwNDIwWjAvBgkqhkiG9w0BCQQxIgQgm16Jm70HZc3xN4oMJmfPj7/E5RTC692oj+AW4xyilK0wgY4GCyqGSIb3DQEJEAIvMX8wfTB7MHkEIIX5J7wHq2LKw7RDVsEO/IGyxog/2nq55thw2dE6zQW3MFUwPaQ7MDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAoGCCqGSM49BAMCBGYwZAIwJG2qOWq+bYIJcWCUKtc36EdxIpTbaVE1W315e2crCJetBTb51xTq008wTHgiobxCAjAU0+h1dbyeDCjCj8GOBLQbP+NrGkPrhCP8fNfAuGL2NnpSDsnBklzWUfWxiZ3aDsY="}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"6GCd03EJi36pEnEvW/6G91twfdejJSmsGfPBUCtZ7Fo="},"signature":"MEUCIFnxhbmubgIajzoV+OG0Olg+Po2BgiqS8ZkP/5BOXlWaAiEAhZ+8tcnE03es/9Jmc+tj8PY29oPBiTW7z6dxMsM3pW8="}}
 
1
+ {"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"MIIHSjCCBtGgAwIBAgIUVzfa/jFYvER2/ieL8vax7RoE1qIwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwODI1MTIxOTQ4WhcNMjYwODI1MTIyOTQ4WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE5DpIUsnOiO/nHI18h+ZRIzq9jd72cD/5+QzGBYv0rsUt/2dh/paTy3nP6GHMcuQqHbav/6q3MqGmSWZpp+W0YKOCBfAwggXsMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUaHT3T7uHjJW5v1z70v2B5PrZJF0wHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wawYDVR0RAQH/BGEwX4ZdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDkGCisGAQQBg78wAQEEK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wHwYKKwYBBAGDvzABAgQRd29ya2Zsb3dfZGlzcGF0Y2gwNgYKKwYBBAGDvzABAwQoYzRkMGRjNTY2NjFiYWRiOWNjNDdiZGU2NDdlMDhmZTNiNGJmNzQ1ODATBgorBgEEAYO/MAEEBAVCdWlsZDArBgorBgEEAYO/MAEFBB1odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTAdBgorBgEEAYO/MAEGBA9yZWZzL2hlYWRzL21haW4wOwYKKwYBBAGDvzABCAQtDCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMG0GCisGAQQBg78wAQkEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wAQoEKgwoYzRkMGRjNTY2NjFiYWRiOWNjNDdiZGU2NDdlMDhmZTNiNGJmNzQ1ODAbBgorBgEEAYO/MAELBA0MC3NlbGYtaG9zdGVkMEAGCisGAQQBg78wAQwEMgwwaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MDgGCisGAQQBg78wAQ0EKgwoYzRkMGRjNTY2NjFiYWRiOWNjNDdiZGU2NDdlMDhmZTNiNGJmNzQ1ODAfBgorBgEEAYO/MAEOBBEMD3JlZnMvaGVhZHMvbWFpbjAaBgorBgEEAYO/MAEPBAwMCjEwNzE0NzU1MjkwLgYKKwYBBAGDvzABEAQgDB5odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2UwGAYKKwYBBAGDvzABEQQKDAgyNTcyMDc0MzBtBgorBgEEAYO/MAESBF8MXWh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS8uZ2l0aHViL3dvcmtmbG93cy9idWlsZC55YW1sQHJlZnMvaGVhZHMvbWFpbjA4BgorBgEEAYO/MAETBCoMKGM0ZDBkYzU2NjYxYmFkYjljYzQ3YmRlNjQ3ZTA4ZmUzYjRiZjc0NTgwIQYKKwYBBAGDvzABFAQTDBF3b3JrZmxvd19kaXNwYXRjaDBkBgorBgEEAYO/MAEVBFYMVGh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS9hY3Rpb25zL3J1bnMvMzI4NDQ2ODk4OTQvYXR0ZW1wdHMvMTAWBgorBgEEAYO/MAEWBAgMBnB1YmxpYzBGBgorBgEEAYO/MAEYBDgMNnJlcG86aHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHk6cmVmOnJlZnMvaGVhZHMvbWFpbjCBigYKKwYBBAHWeQIEAgR8BHoAeAB2AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABoDjcyYMAAAQDAEcwRQIhAKrC2PMxuJSOijSlriu4yrq/JBow7EbHmc2Vtm5svSOuAiBQO+5eQuw3w2zOxXPlZxlmjYMlkA+3ygxHF+0CYOX7JjAKBggqhkjOPQQDAwNnADBkAjANuZNh9v52fBTku1AApXwyISDdPDsxJh5sTcmXtyKWumXLzglx8+5j4JM5S5h1UaMCMAxnV9sWPV413y7vPccptRV9RpOYS3qU7cSBoev7yAwFuhikBjuEaTiQdTioJlmpFw=="},"tlogEntries":[{"logIndex":"2583301012","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1787660388","inclusionPromise":{"signedEntryTimestamp":"MEUCIAmPu4YW7WaKvADOuB80ShOOhYf+Rs1S8q7aSeeDaCwaAiEAplw6YD/ft9ZSGyUTMsKiuy3zjR1YJbD1EfJ79D8m1bY="},"inclusionProof":{"logIndex":"2461396750","rootHash":"1pvDT5idN/C0zaLG6r4W5FSrOQaOwrtDxWObYt7e3Is=","treeSize":"2461396760","hashes":["1jfuySa4lYVU2YeiToV67fXGun437h5d/8E7Mi8z51Q=","91TKOH6AFIjWZht1cxM7KirFxzjsqC1wsU2X3qjEg9k=","6yDgFc8UOh5a7YSmL+It+Mgvrx+ha4GGi/QEU4fpDds=","jOB7k5+Ai8qU7CV5QLbQ6tvMybg2QsHV+ZM6d5H0vwQ=","97JkW4syQbnYlniAcD/h1y34Ewl0+0Yw2Yi6B5lcKQM=","M1KvBxaBWRZCfg7zEqvTKXXoAv5EZdP6wtNwhsr1HU0=","rJMFK17JIR2K3LvDkBdSnu34bvtB3vXQPdwQg0pZ8co=","sBRt94T302PGfFAkqNx12yVeZQ2wK8MXBkspHV8OBEU=","bBUTypOI8GgjhxRM30SIZoDfZopPulgZgxKAp1agI1Q=","EY8T0lxQDrmYoWBGpKNGttaHfKmpfqKcWqSNF4XOQKE=","T4Jz+m9vO48rOpMSsdZSW28/bgHR8prz7JeNX1s7WiQ=","EXKrSbeG2qm5APD5QSDN66X7UHz9OSofiW9PyNU7fPM=","cjIeeutzThxIPTlFFHJqa7bAzn3k2FzK8Nrdd56OWvE=","+pNXWGIXzU1dqSy/aePHKYtSkDnFinI+/bL5HnurJ6w=","G1R9F5B2KizFA2NyhDznjNKXPOF1SDmbGHz+omLG7TY=","RZ7XwGuqMr5gDUh2HpUcaXp+AmIiEcPJiMui4GLJE7o=","mBm+vQtn0C4thMnlTnxfxqowq1dXsPBCKaJ85da3JeU=","b80/J/68RC8/tx5xRdlKk6MmTpZiVRotquWBrE/z1pI=","SndbMKVtcTenAkwi2JBfGzD+mhexp1qJbRIY+A1JRIU=","xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n2461396760\n1pvDT5idN/C0zaLG6r4W5FSrOQaOwrtDxWObYt7e3Is=\n\n— rekor.sigstore.dev wNI9ajBGAiEA8Ocd+Zq9tmK94fX97OlhwNnV2x8FrXSEVuX4c3ttxJQCIQDPir+IeTpisJbvfI6uUY/tKWhticWYtHVRgf+68N6J8w==\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiJmNTczZDNhMTM3YzRmZWY5MmZlNWI1YTEyZmQ1YmU3M2NhZDEzY2U0YTUwYzMyODE0NmYzZTI2OTljYjc1ZDBiIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJR1dFZXZ3V3Yva3RDcm5tVG5sL0FtNzlYRERZeUdOMzZDdlNjK1krN0QwOEFpRUF5M0x1Q1dwbnVsY1lSaWs3Ly8ycGg0aFpvWVlDMHpjei9KdXBESi85UUYwPSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaFRha05EUW5SSFowRjNTVUpCWjBsVlZucG1ZUzlxUmxsMlJWSXlMMmxsVERoMllYZzNVbTlGTVhGSmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDlFU1RGTlZFbDRUMVJSTkZkb1kwNU5hbGwzVDBSSk1VMVVTWGxQVkZFMFYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVUxUkhCSlZYTnVUMmxQTDI1SVNURTRhQ3RhVWtsNmNUbHFaRGN5WTBRdk5TdFJla2NLUWxsMk1ISnpWWFF2TW1Sb0wzQmhWSGt6YmxBMlIwaE5ZM1ZSY1VoaVlYWXZObkV6VFhGSGJWTlhXbkJ3SzFjd1dVdFBRMEptUVhkbloxaHpUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlZoU0ZRekNsUTNkVWhxU2xjMWRqRjZOekIyTWtJMVVISmFTa1l3ZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDJGM1dVUldVakJTUVZGSUwwSkhSWGRZTkZwa1lVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKb01Wb3laSEJpYldSdFdWZE9iQXBNTW5Sc1kyMDFiR0pJVFhSWk1qbDBZbGhXZFdGWVVqVk1lVFZ1WVZoU2IyUlhTWFprTWpsNVlUSmFjMkl6WkhwTU1rb3hZVmQ0YTB4dWJHaGlWM2hCQ21OdFZtMWplVGx2V2xkR2EyTjVPWFJaVjJ4MVRVUnJSME5wYzBkQlVWRkNaemM0ZDBGUlJVVkxNbWd3WkVoQ2VrOXBPSFprUnpseVdsYzBkVmxYVGpBS1lWYzVkV041Tlc1aFdGSnZaRmRLTVdNeVZubFpNamwxWkVkV2RXUkROV3BpTWpCM1NIZFpTMHQzV1VKQ1FVZEVkbnBCUWtGblVWSmtNamw1WVRKYWN3cGlNMlJtV2tkc2VtTkhSakJaTW1kM1RtZFpTMHQzV1VKQ1FVZEVkbnBCUWtGM1VXOVplbEpyVFVkU2FrNVVXVEpPYWtacFdWZFNhVTlYVG1wT1JHUnBDbHBIVlRKT1JHUnNUVVJvYlZwVVRtbE9SMHB0VG5wUk1VOUVRVlJDWjI5eVFtZEZSVUZaVHk5TlFVVkZRa0ZXUTJSWGJITmFSRUZ5UW1kdmNrSm5SVVVLUVZsUEwwMUJSVVpDUWpGdlpGZGtibUZYTlc1YWJVWnFXbE01Y2xwWVNuVmFWM2g2VEZkT2RtSlhNVEZpYld3d1pWUkJaRUpuYjNKQ1owVkZRVmxQTHdwTlFVVkhRa0U1ZVZwWFducE1NbWhzV1ZkU2Vrd3lNV2hoVnpSM1QzZFpTMHQzV1VKQ1FVZEVkbnBCUWtOQlVYUkVRM1J2WkVoU2QyTjZiM1pNTTFKMkNtRXlWblZNYlVacVpFZHNkbUp1VFhWYU1td3dZVWhXYVdSWVRteGpiVTUyWW01U2JHSnVVWFZaTWpsMFRVY3dSME5wYzBkQlVWRkNaemM0ZDBGUmEwVUtXSGQ0WkdGSVVqQmpTRTAyVEhrNWJtRllVbTlrVjBsMVdUSTVkRXd5YURGYU1tUndZbTFrYlZsWFRteE1NblJzWTIwMWJHSklUWFJaTWpsMFlsaFdkUXBoV0ZJMVRIazFibUZZVW05a1YwbDJaREk1ZVdFeVduTmlNMlI2VERKS01XRlhlR3RNYm14b1lsZDRRV050Vm0xamVUbHZXbGRHYTJONU9YUlpWMngxQ2sxRVowZERhWE5IUVZGUlFtYzNPSGRCVVc5RlMyZDNiMWw2VW10TlIxSnFUbFJaTWs1cVJtbFpWMUpwVDFkT2FrNUVaR2xhUjFVeVRrUmtiRTFFYUcwS1dsUk9hVTVIU20xT2VsRXhUMFJCWWtKbmIzSkNaMFZGUVZsUEwwMUJSVXhDUVRCTlF6Tk9iR0pIV1hSaFJ6bDZaRWRXYTAxRlFVZERhWE5IUVZGUlFncG5OemgzUVZGM1JVMW5kM2RoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlUxRVowZERhWE5IUVZGUlFtYzNPSGRCVVRCRlMyZDNiMWw2VW10TlIxSnFUbFJaTWs1cVJtbFpWMUpwVDFkT2FrNUVaR2tLV2tkVk1rNUVaR3hOUkdodFdsUk9hVTVIU20xT2VsRXhUMFJCWmtKbmIzSkNaMFZGUVZsUEwwMUJSVTlDUWtWTlJETktiRnB1VFhaaFIxWm9Xa2hOZGdwaVYwWndZbXBCWVVKbmIzSkNaMFZGUVZsUEwwMUJSVkJDUVhkTlEycEZkMDU2UlRCT2VsVXhUV3ByZDB4bldVdExkMWxDUWtGSFJIWjZRVUpGUVZGbkNrUkNOVzlrU0ZKM1kzcHZka3d5WkhCa1IyZ3hXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWM1IwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWUlVVc0tSRUZuZVU1VVkzbE5SR013VFhwQ2RFSm5iM0pDWjBWRlFWbFBMMDFCUlZOQ1JqaE5XRmRvTUdSSVFucFBhVGgyV2pKc01HRklWbWxNYlU1MllsTTVid3BrVjJSdVlWYzFibHB0Um1wYVV6bHlXbGhLZFZwWGVIcE1WMDUyWWxjeE1XSnRiREJsVXpoMVdqSnNNR0ZJVm1sTU0yUjJZMjEwYldKSE9UTmplVGxwQ21SWGJITmFRelUxV1ZjeGMxRklTbXhhYmsxMllVZFdhRnBJVFhaaVYwWndZbXBCTkVKbmIzSkNaMFZGUVZsUEwwMUJSVlJDUTI5TlMwZE5NRnBFUW1zS1dYcFZNazVxV1hoWmJVWnJXV3BzYWxsNlVUTlpiVkpzVG1wUk0xcFVRVFJhYlZWNldXcFNhVnBxWXpCT1ZHZDNTVkZaUzB0M1dVSkNRVWRFZG5wQlFncEdRVkZVUkVKR00ySXpTbkphYlhoMlpERTVhMkZZVG5kWldGSnFZVVJDYTBKbmIzSkNaMFZGUVZsUEwwMUJSVlpDUmxsTlZrZG9NR1JJUW5wUGFUaDJDbG95YkRCaFNGWnBURzFPZG1KVE9XOWtWMlJ1WVZjMWJscHRSbXBhVXpseVdsaEtkVnBYZUhwTVYwNTJZbGN4TVdKdGJEQmxVemxvV1ROU2NHSXlOWG9LVEROS01XSnVUWFpOZWtrMFRrUlJNazlFYXpSUFZGRjJXVmhTTUZwWE1YZGtTRTEyVFZSQlYwSm5iM0pDWjBWRlFWbFBMMDFCUlZkQ1FXZE5RbTVDTVFwWmJYaHdXWHBDUjBKbmIzSkNaMFZGUVZsUEwwMUJSVmxDUkdkTlRtNUtiR05IT0RaaFNGWnVXakpzZFZveVdtaFpNbFYyWVRKV2VXSnRWbk5qZVRGcUNtSXlNWFJrVnpWd1pFaHJObU50Vm0xUGJrcHNXbTVOZG1GSFZtaGFTRTEyWWxkR2NHSnFRMEpwWjFsTFMzZFpRa0pCU0ZkbFVVbEZRV2RTT0VKSWIwRUtaVUZDTWtGT01EbE5SM0pIZUhoRmVWbDRhMlZJU214dVRuZExhVk5zTmpRemFubDBMelJsUzJOdlFYWkxaVFpQUVVGQlFtOUVhbU41V1UxQlFVRlJSQXBCUldOM1VsRkphRUZMY2tNeVVFMTRkVXBUVDJscVUyeHlhWFUwZVhKeEwwcENiM2MzUldKSWJXTXlWblJ0TlhOMlUwOTFRV2xDVVU4ck5XVlJkWGN6Q25jeWVrOTRXRkJzV25oc2JXcFpUV3hyUVNzemVXZDRTRVlyTUVOWlQxZzNTbXBCUzBKblozRm9hMnBQVUZGUlJFRjNUbTVCUkVKclFXcEJUblZhVG1nS09YWTFNbVpDVkd0MU1VRkJjRmgzZVVsVFJHUlFSSE40U21nMWMxUmpiVmgwZVV0WGRXMVlUSHBuYkhnNEt6VnFORXBOTlZNMWFERlZZVTFEVFVGNGJncFdPWE5YVUZZME1UTjVOM1pRWTJOd2RGSldPVkp3VDFsVE0zRlZOMk5UUW05bGRqZDVRWGRHZFdocGEwSnFkVVZoVkdsUlpGUnBiMHBzYlhCR2R6MDlDaTB0TFMwdFJVNUVJRU5GVWxSSlJrbERRVlJGTFMwdExTMEsifX19fQ=="}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyjADAgEAMIICwQYJKoZIhvcNAQcCoIICsjCCAq4CAQMxDTALBglghkgBZQMEAgEwgbgGCyqGSIb3DQEJEAEEoIGoBIGlMIGiAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgICHhFKbnBB+a3pjbiHdgW3YfnF+0t1RXH4NBu7fvLU4CFQD1rzLesmxzFyi3MpRBeuAUaAzKXRgPMjAyNjA4MjUxMjE5NDhaMAMCAQGgMqQwMC4xFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEVMBMGA1UEAxMMc2lnc3RvcmUtdHNhoAAxggHbMIIB1wIBATBRMDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAsGCWCGSAFlAwQCAaCB/DAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTI2MDgyNTEyMTk0OFowLwYJKoZIhvcNAQkEMSIEIHvInt1Pq6Z5x8Bpg8EqghwQoXy0JBDYurmza8/afnCYMIGOBgsqhkiG9w0BCRACLzF/MH0wezB5BCCF+Se8B6tiysO0Q1bBDvyBssaIP9p6uebYcNnROs0FtzBVMD2kOzA5MRUwEwYDVQQKEwxzaWdzdG9yZS5kZXYxIDAeBgNVBAMTF3NpZ3N0b3JlLXRzYS1zZWxmc2lnbmVkAhQ6E1QvDJBh7rzBQy/Lio6LKiOLDDAKBggqhkjOPQQDAgRnMGUCMQDGuxY5DtAoXb1rkbs0Y8WmVb82oFzqVfPa8xH4pyScbymTf9euKoa2WLGEnFMSTpsCMBZRYLM+6w3q4yVGt/6dBta2a7tl41RLWFLMfIlLwOZxxoUU96iIvP7JkPNoxJF9Xg=="}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"9XPToTfE/vkv5bWhL9W+c8rRPOSlDDKBRvPiaZy3XQs="},"signature":"MEUCIGWEevwWv/ktCrnmTnl/Am79XDDYyGN36CvSc+Y+7D08AiEAy3LuCWpnulcYRik7//2ph4hZoYYC0zcz/JupDJ/9QF0="}}
build/torch211-cxx11-cu128-aarch64-linux/xpu_fused_moe.py CHANGED
@@ -26,7 +26,7 @@ def _register_xpu_fake_kernels():
26
 
27
  _register_if_available(
28
  "cutlass_grouped_gemm_interface",
29
- lambda ptr_A, ptr_B, ptr_scales, ptr_bias, ptr_D, expert_first_token_offset, N, K, num_experts, is_B_int4, is_B_mxfp4: ptr_D,
30
  )
31
 
32
  _register_if_available(
@@ -106,12 +106,13 @@ def cutlass_grouped_gemm(input_A, input_B, bias, output, expert_token_count, n,
106
  K=k,
107
  num_experts=num_experts,
108
  is_B_int4=False,
109
- is_B_mxfp4=False)
 
110
 
111
 
112
  def cutlass_grouped_gemm_xe2(input_A, input_B, scales, bias, output,
113
  num_rows_per_expert, n, k, num_experts, is_B_int4,
114
- is_B_mxfp4):
115
  expert_first_token_offset = torch.cat([
116
  torch.tensor([0],
117
  dtype=num_rows_per_expert.dtype,
@@ -129,7 +130,8 @@ def cutlass_grouped_gemm_xe2(input_A, input_B, scales, bias, output,
129
  K=k,
130
  num_experts=num_experts,
131
  is_B_int4=is_B_int4,
132
- is_B_mxfp4=is_B_mxfp4)
 
133
 
134
 
135
  def ceilDiv(a, b):
@@ -206,7 +208,8 @@ def xpu_fused_moe(hidden_states,
206
  ep_size=1,
207
  is_fp8=False,
208
  is_int4=False,
209
- is_mxfp4=False):
 
210
  '''
211
  hidden_states: [num_rows, hidden_size]
212
  w13: [num_experts, 2*inter_size, hidden_size]
@@ -228,6 +231,7 @@ def xpu_fused_moe(hidden_states,
228
  num_experts: int
229
  is_int4: bool
230
  is_mxfp4: bool
 
231
  '''
232
 
233
  # Resolve DTensors to local tensors before passing to custom ops
@@ -266,7 +270,7 @@ def xpu_fused_moe(hidden_states,
266
 
267
  # 4bits support [E, N, K]
268
  # other types [E, K, N]
269
- if not is_int4 and not is_mxfp4:
270
  if not hasattr(w13, 'xpu_fused_moe'):
271
  if needs_transpose:
272
  w13.data = w13.transpose(-1, -2).contiguous()
@@ -389,7 +393,7 @@ def xpu_fused_moe(hidden_states,
389
  ########### gemm1 ##################
390
  input_B = w13
391
 
392
- if not is_fp8 and not is_int4 and not is_mxfp4:
393
  ops.cutlass_grouped_gemm_interface(
394
  ptr_A=gemm1_input,
395
  ptr_B=input_B,
@@ -401,7 +405,8 @@ def xpu_fused_moe(hidden_states,
401
  K=hidden_size,
402
  num_experts=num_experts_per_node,
403
  is_B_int4=is_int4,
404
- is_B_mxfp4=is_mxfp4)
 
405
  else:
406
  ops.cutlass_grouped_gemm_interface(
407
  ptr_A=gemm1_input,
@@ -414,7 +419,8 @@ def xpu_fused_moe(hidden_states,
414
  K=hidden_size,
415
  num_experts=num_experts_per_node,
416
  is_B_int4=is_int4,
417
- is_B_mxfp4=is_mxfp4)
 
418
 
419
  # act
420
  act_output = torch.empty((num_moe_inputs, inter_size),
@@ -435,7 +441,7 @@ def xpu_fused_moe(hidden_states,
435
  gemm2_output = torch.empty((num_moe_inputs, hidden_size),
436
  dtype=hidden_states.dtype,
437
  device=hidden_states.device)
438
- if not is_fp8 and not is_int4 and not is_mxfp4:
439
  ops.cutlass_grouped_gemm_interface(
440
  ptr_A=input_A,
441
  ptr_B=input_B,
@@ -447,7 +453,8 @@ def xpu_fused_moe(hidden_states,
447
  K=inter_size,
448
  num_experts=num_experts_per_node,
449
  is_B_int4=is_int4,
450
- is_B_mxfp4=is_mxfp4)
 
451
  else:
452
  ops.cutlass_grouped_gemm_interface(
453
  ptr_A=input_A,
@@ -460,7 +467,8 @@ def xpu_fused_moe(hidden_states,
460
  K=inter_size,
461
  num_experts=num_experts_per_node,
462
  is_B_int4=is_int4,
463
- is_B_mxfp4=is_mxfp4)
 
464
 
465
  ops.moe_gather(output, gemm2_output, topk_weights,
466
  permuted_row_to_unpermuted_row,
@@ -633,6 +641,7 @@ class MegaBlocksMoeMLP(torch.nn.Module):
633
  is_fp8 = getattr(self.experts, "is_fp8", False)
634
  is_int4 = getattr(self.experts, "is_int4", False)
635
  is_mxfp4 = getattr(self.experts, "is_mxfp4", False)
 
636
 
637
  w13_scales = getattr(self.experts, "gate_up_proj_scales", None)
638
  w2_scales = getattr(self.experts, "down_proj_scales", None)
@@ -685,6 +694,7 @@ class MegaBlocksMoeMLP(torch.nn.Module):
685
  is_fp8=is_fp8,
686
  is_int4=is_int4,
687
  is_mxfp4=is_mxfp4,
 
688
  )
689
 
690
  # All-reduce across EP group to combine partial expert outputs
 
26
 
27
  _register_if_available(
28
  "cutlass_grouped_gemm_interface",
29
+ lambda ptr_A, ptr_B, ptr_scales, ptr_bias, ptr_D, expert_first_token_offset, N, K, num_experts, is_B_int4, is_B_mxfp4, is_B_mxfp8=False: ptr_D,
30
  )
31
 
32
  _register_if_available(
 
106
  K=k,
107
  num_experts=num_experts,
108
  is_B_int4=False,
109
+ is_B_mxfp4=False,
110
+ is_B_mxfp8=False)
111
 
112
 
113
  def cutlass_grouped_gemm_xe2(input_A, input_B, scales, bias, output,
114
  num_rows_per_expert, n, k, num_experts, is_B_int4,
115
+ is_B_mxfp4, is_B_mxfp8=False):
116
  expert_first_token_offset = torch.cat([
117
  torch.tensor([0],
118
  dtype=num_rows_per_expert.dtype,
 
130
  K=k,
131
  num_experts=num_experts,
132
  is_B_int4=is_B_int4,
133
+ is_B_mxfp4=is_B_mxfp4,
134
+ is_B_mxfp8=is_B_mxfp8)
135
 
136
 
137
  def ceilDiv(a, b):
 
208
  ep_size=1,
209
  is_fp8=False,
210
  is_int4=False,
211
+ is_mxfp4=False,
212
+ is_mxfp8=False):
213
  '''
214
  hidden_states: [num_rows, hidden_size]
215
  w13: [num_experts, 2*inter_size, hidden_size]
 
231
  num_experts: int
232
  is_int4: bool
233
  is_mxfp4: bool
234
+ is_mxfp8: bool
235
  '''
236
 
237
  # Resolve DTensors to local tensors before passing to custom ops
 
270
 
271
  # 4bits support [E, N, K]
272
  # other types [E, K, N]
273
+ if not is_int4 and not is_mxfp4 and not is_mxfp8:
274
  if not hasattr(w13, 'xpu_fused_moe'):
275
  if needs_transpose:
276
  w13.data = w13.transpose(-1, -2).contiguous()
 
393
  ########### gemm1 ##################
394
  input_B = w13
395
 
396
+ if not is_fp8 and not is_int4 and not is_mxfp4 and not is_mxfp8:
397
  ops.cutlass_grouped_gemm_interface(
398
  ptr_A=gemm1_input,
399
  ptr_B=input_B,
 
405
  K=hidden_size,
406
  num_experts=num_experts_per_node,
407
  is_B_int4=is_int4,
408
+ is_B_mxfp4=is_mxfp4,
409
+ is_B_mxfp8=is_mxfp8)
410
  else:
411
  ops.cutlass_grouped_gemm_interface(
412
  ptr_A=gemm1_input,
 
419
  K=hidden_size,
420
  num_experts=num_experts_per_node,
421
  is_B_int4=is_int4,
422
+ is_B_mxfp4=is_mxfp4,
423
+ is_B_mxfp8=is_mxfp8)
424
 
425
  # act
426
  act_output = torch.empty((num_moe_inputs, inter_size),
 
441
  gemm2_output = torch.empty((num_moe_inputs, hidden_size),
442
  dtype=hidden_states.dtype,
443
  device=hidden_states.device)
444
+ if not is_fp8 and not is_int4 and not is_mxfp4 and not is_mxfp8:
445
  ops.cutlass_grouped_gemm_interface(
446
  ptr_A=input_A,
447
  ptr_B=input_B,
 
453
  K=inter_size,
454
  num_experts=num_experts_per_node,
455
  is_B_int4=is_int4,
456
+ is_B_mxfp4=is_mxfp4,
457
+ is_B_mxfp8=is_mxfp8)
458
  else:
459
  ops.cutlass_grouped_gemm_interface(
460
  ptr_A=input_A,
 
467
  K=inter_size,
468
  num_experts=num_experts_per_node,
469
  is_B_int4=is_int4,
470
+ is_B_mxfp4=is_mxfp4,
471
+ is_B_mxfp8=is_mxfp8)
472
 
473
  ops.moe_gather(output, gemm2_output, topk_weights,
474
  permuted_row_to_unpermuted_row,
 
641
  is_fp8 = getattr(self.experts, "is_fp8", False)
642
  is_int4 = getattr(self.experts, "is_int4", False)
643
  is_mxfp4 = getattr(self.experts, "is_mxfp4", False)
644
+ is_mxfp8 = getattr(self.experts, "is_mxfp8", False)
645
 
646
  w13_scales = getattr(self.experts, "gate_up_proj_scales", None)
647
  w2_scales = getattr(self.experts, "down_proj_scales", None)
 
694
  is_fp8=is_fp8,
695
  is_int4=is_int4,
696
  is_mxfp4=is_mxfp4,
697
+ is_mxfp8=is_mxfp8,
698
  )
699
 
700
  # All-reduce across EP group to combine partial expert outputs
build/torch211-cxx11-cu130-aarch64-linux/{_megablocks_cuda_18e92fb.abi3.so → _megablocks_cuda_c4d0dc5.abi3.so} RENAMED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:06677d7557b216449dc6032f0728807df304fd1454ef2608259e37d39b3bae56
3
  size 10062568
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:42f42b28a91fe3b5cb4541cba47978da22d283022e01c7520077c4980701bd04
3
  size 10062568
build/torch211-cxx11-cu130-aarch64-linux/_ops.py CHANGED
@@ -1,9 +1,9 @@
1
  import torch
2
- from . import _megablocks_cuda_18e92fb
3
- ops = torch.ops._megablocks_cuda_18e92fb
4
 
5
  def add_op_namespace_prefix(op_name: str):
6
  """
7
  Prefix op by namespace.
8
  """
9
- return f"_megablocks_cuda_18e92fb::{op_name}"
 
1
  import torch
2
+ from . import _megablocks_cuda_c4d0dc5
3
+ ops = torch.ops._megablocks_cuda_c4d0dc5
4
 
5
  def add_op_namespace_prefix(op_name: str):
6
  """
7
  Prefix op by namespace.
8
  """
9
+ return f"_megablocks_cuda_c4d0dc5::{op_name}"
build/torch211-cxx11-cu130-aarch64-linux/metadata.json CHANGED
@@ -1,6 +1,6 @@
1
  {
2
  "name": "megablocks",
3
- "id": "_megablocks_cuda_18e92fb",
4
  "version": 1,
5
  "license": "Apache-2.0",
6
  "python-depends": [],
@@ -48,8 +48,8 @@
48
  "_layers/mpu.py": "BX61/pmqRCVeEMnzpuK8x5NpITBJyZfOawGnDegW1O8=",
49
  "_layers/router.py": "GKC/5//Uf43HT6zXlBTStCMTml2YXn7Jbgq9EgTgDC0=",
50
  "_layers/sharedexpert_registry.py": "GfwHKjbC7lBXYq9kNifp3HudTdZKSqwsFxGxFLc2krw=",
51
- "_megablocks_cuda_18e92fb.abi3.so": "Bmd9dVeyFkSdxgMvByiAffME/RRU7yYIJZ4305s7rlY=",
52
- "_ops.py": "baTEjeHRnpTSLod30qZST/UL5GNv7vZoGeNwQWakxbo=",
53
  "_version.py": "W3l9oUrnmvfBoIy06Lv0y2ezTQhNU04ug/txHcdWJD0=",
54
  "backend/__init__.py": "4bunAqqjwE93nym8CigHbqVAal7UaYGdONb8lGRfrek=",
55
  "backend/kernels.py": "2UFNTlmSDk3S5y6UW14MJMPVVsVhmozxQ5wFDxtZHhQ=",
@@ -100,7 +100,7 @@
100
  "stk/random/__init__.py": "Gr/+Gl20jJ6fJVRfoAUxEcCPeChILQzrzhKVVAWQsRI=",
101
  "stk/random/random_ops.py": "AluIDj3Vo2ReKAsZz07yydbtndDbJoglekRGIaCoRZE=",
102
  "stk/random/random_ops_test.py": "B+a4Zb+OPhBtpVA48oc09sBL/AAQO9j/YUFI0nnXxzk=",
103
- "xpu_fused_moe.py": "Dp6S3fK/Fc4Sr+Ac94vw2zz0v/QTGp6rYeMIUqE3Y/I="
104
  }
105
  },
106
  "provenance": {
@@ -110,7 +110,7 @@
110
  "dirty": false
111
  },
112
  "kernel": {
113
- "sha": "18e92fb6886201ffb91c173f02593777756c793f",
114
  "dirty": false
115
  }
116
  }
 
1
  {
2
  "name": "megablocks",
3
+ "id": "_megablocks_cuda_c4d0dc5",
4
  "version": 1,
5
  "license": "Apache-2.0",
6
  "python-depends": [],
 
48
  "_layers/mpu.py": "BX61/pmqRCVeEMnzpuK8x5NpITBJyZfOawGnDegW1O8=",
49
  "_layers/router.py": "GKC/5//Uf43HT6zXlBTStCMTml2YXn7Jbgq9EgTgDC0=",
50
  "_layers/sharedexpert_registry.py": "GfwHKjbC7lBXYq9kNifp3HudTdZKSqwsFxGxFLc2krw=",
51
+ "_megablocks_cuda_c4d0dc5.abi3.so": "QvQrKKkf47XLRUHLpHl42iLSgwIuAcdSAHfEmAcBvQQ=",
52
+ "_ops.py": "9NSxkX5lSS5VhF9+hDazP5NimwZK2V/+nIXR0AQxnHA=",
53
  "_version.py": "W3l9oUrnmvfBoIy06Lv0y2ezTQhNU04ug/txHcdWJD0=",
54
  "backend/__init__.py": "4bunAqqjwE93nym8CigHbqVAal7UaYGdONb8lGRfrek=",
55
  "backend/kernels.py": "2UFNTlmSDk3S5y6UW14MJMPVVsVhmozxQ5wFDxtZHhQ=",
 
100
  "stk/random/__init__.py": "Gr/+Gl20jJ6fJVRfoAUxEcCPeChILQzrzhKVVAWQsRI=",
101
  "stk/random/random_ops.py": "AluIDj3Vo2ReKAsZz07yydbtndDbJoglekRGIaCoRZE=",
102
  "stk/random/random_ops_test.py": "B+a4Zb+OPhBtpVA48oc09sBL/AAQO9j/YUFI0nnXxzk=",
103
+ "xpu_fused_moe.py": "sPmuRSpkH1Bmk4hdpz53us8Qpc6yinT9rkld3T8WreI="
104
  }
105
  },
106
  "provenance": {
 
110
  "dirty": false
111
  },
112
  "kernel": {
113
+ "sha": "c4d0dc56661badb9cc47bde647e08fe3b4bf7458",
114
  "dirty": false
115
  }
116
  }
build/torch211-cxx11-cu130-aarch64-linux/metadata.json.sigstore CHANGED
@@ -1 +1 @@
1
- {"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"MIIHTDCCBtKgAwIBAgIUKLWAGcnkp2QwDvil9bqBQ/muBP8wCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwODI1MDkwNDIxWhcNMjYwODI1MDkxNDIxWjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAElV5BuwlM25qU5KTygDzxK6CRfNdHk7w7ywFyHGCxBstfp0cKYU3N5pMGIDX9mM9x6WT57cdhs35+wo//IsXHa6OCBfEwggXtMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUajWLv6MQW2UPBUnxgoHf5ne51b0wHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wawYDVR0RAQH/BGEwX4ZdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDkGCisGAQQBg78wAQEEK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wHwYKKwYBBAGDvzABAgQRd29ya2Zsb3dfZGlzcGF0Y2gwNgYKKwYBBAGDvzABAwQoMThlOTJmYjY4ODYyMDFmZmI5MWMxNzNmMDI1OTM3Nzc3NTZjNzkzZjATBgorBgEEAYO/MAEEBAVCdWlsZDArBgorBgEEAYO/MAEFBB1odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTAdBgorBgEEAYO/MAEGBA9yZWZzL2hlYWRzL21haW4wOwYKKwYBBAGDvzABCAQtDCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMG0GCisGAQQBg78wAQkEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wAQoEKgwoMThlOTJmYjY4ODYyMDFmZmI5MWMxNzNmMDI1OTM3Nzc3NTZjNzkzZjAbBgorBgEEAYO/MAELBA0MC3NlbGYtaG9zdGVkMEAGCisGAQQBg78wAQwEMgwwaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MDgGCisGAQQBg78wAQ0EKgwoMThlOTJmYjY4ODYyMDFmZmI5MWMxNzNmMDI1OTM3Nzc3NTZjNzkzZjAfBgorBgEEAYO/MAEOBBEMD3JlZnMvaGVhZHMvbWFpbjAaBgorBgEEAYO/MAEPBAwMCjEwNzE0NzU1MjkwLgYKKwYBBAGDvzABEAQgDB5odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2UwGAYKKwYBBAGDvzABEQQKDAgyNTcyMDc0MzBtBgorBgEEAYO/MAESBF8MXWh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS8uZ2l0aHViL3dvcmtmbG93cy9idWlsZC55YW1sQHJlZnMvaGVhZHMvbWFpbjA4BgorBgEEAYO/MAETBCoMKDE4ZTkyZmI2ODg2MjAxZmZiOTFjMTczZjAyNTkzNzc3NzU2Yzc5M2YwIQYKKwYBBAGDvzABFAQTDBF3b3JrZmxvd19kaXNwYXRjaDBkBgorBgEEAYO/MAEVBFYMVGh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS9hY3Rpb25zL3J1bnMvMzI4Mjc3ODQ2NjkvYXR0ZW1wdHMvMTAWBgorBgEEAYO/MAEWBAgMBnB1YmxpYzBGBgorBgEEAYO/MAEYBDgMNnJlcG86aHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHk6cmVmOnJlZnMvaGVhZHMvbWFpbjCBiwYKKwYBBAHWeQIEAgR9BHsAeQB3AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABoDgp1xcAAAQDAEgwRgIhAJO9rYknPN3U7N/COeKyy1QpaXwhaUONbU+mCPeqcDYsAiEA4ldjKuQS2RBxFL5k5ENAPehbC30amR+3tSWR7/l2nf8wCgYIKoZIzj0EAwMDaAAwZQIxAL2nalBpfMuSZKju02usZy4pc5YQZ2skYz701BUEhmy+FN6A8QFCUIko40P73dg6xgIwDbkz23V1IefKstAWEFzWRHPZashXV41WIQIgNnDgBzk6Kwai1u57lpp4+GOefTS8"},"tlogEntries":[{"logIndex":"2582977735","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1787648661","inclusionPromise":{"signedEntryTimestamp":"MEYCIQDA213dI2UYNnpHycuf95RcEWhQVHT+gTtRHeKrQPeLrwIhAJ/taFiQyR2/W3uIXYA0yPYarhItUVEuGTI4Q5mLIL9m"},"inclusionProof":{"logIndex":"2461073473","rootHash":"apVe6x+i4pa8RQKVnEQjEZadzYFi++nPp+3sbgNGwqg=","treeSize":"2461073475","hashes":["t3BcCIlB2YdZ4h+sOAU9nefasg2HsxzG6R+W1jRi9wU=","zPTIjNnO+wWwo8YmGGvZDwziK9b93Fs7SVJ7oUs45NU=","WfF6D/sWEPwUJtf6CrUr55BiTTNRUkwx9Dg0kX9Z+/8=","/pzrkLFRwt/XMVRmL7s6Ii88QiOLu5drCOp/UggZ7TU=","G1R9F5B2KizFA2NyhDznjNKXPOF1SDmbGHz+omLG7TY=","RZ7XwGuqMr5gDUh2HpUcaXp+AmIiEcPJiMui4GLJE7o=","mBm+vQtn0C4thMnlTnxfxqowq1dXsPBCKaJ85da3JeU=","b80/J/68RC8/tx5xRdlKk6MmTpZiVRotquWBrE/z1pI=","SndbMKVtcTenAkwi2JBfGzD+mhexp1qJbRIY+A1JRIU=","xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n2461073475\napVe6x+i4pa8RQKVnEQjEZadzYFi++nPp+3sbgNGwqg=\n\n— rekor.sigstore.dev wNI9ajBFAiEAmpJD5Qpv41SSNx/j/pk677lOu7gaHgqDg1B+tMBzScwCIASCYCxZzvch7/8NfSc1gEZFNsVtU3R0nx4CQUbggOty\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiI4MTAxMDVjZmM5NmNhYzIwNWZiZTBkZTFmMTk1ZWNmMWJiZmMzMDA4OTA5ODA4YzZkMGFmNzFkMWQ2MzQyNDU3In19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FUUNJRlNSTUNQOHh5UTJRQmZ5K29IYkEybFlJVUgybzNaMmxGVU12WDRmMUdhd0FpQkFyNklCcVIyTFJnL1lnTWZUdWdoTjhkQVNnbzZYcnVFSzRZcVgreWF6d0E9PSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaFVSRU5EUW5STFowRjNTVUpCWjBsVlMweFhRVWRqYm10d01sRjNSSFpwYkRsaWNVSlJMMjExUWxBNGQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDlFU1RGTlJHdDNUa1JKZUZkb1kwNU5hbGwzVDBSSk1VMUVhM2hPUkVsNFYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZzVmpWQ2RYZHNUVEkxY1ZVMVMxUjVaMFI2ZUVzMlExSm1UbVJJYXpkM04zbDNSbmtLU0VkRGVFSnpkR1p3TUdOTFdWVXpUalZ3VFVkSlJGZzViVTA1ZURaWFZEVTNZMlJvY3pNMUszZHZMeTlKYzFoSVlUWlBRMEptUlhkbloxaDBUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlZoYWxkTUNuWTJUVkZYTWxWUVFsVnVlR2R2U0dZMWJtVTFNV0l3ZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDJGM1dVUldVakJTUVZGSUwwSkhSWGRZTkZwa1lVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKb01Wb3laSEJpYldSdFdWZE9iQXBNTW5Sc1kyMDFiR0pJVFhSWk1qbDBZbGhXZFdGWVVqVk1lVFZ1WVZoU2IyUlhTWFprTWpsNVlUSmFjMkl6WkhwTU1rb3hZVmQ0YTB4dWJHaGlWM2hCQ21OdFZtMWplVGx2V2xkR2EyTjVPWFJaVjJ4MVRVUnJSME5wYzBkQlVWRkNaemM0ZDBGUlJVVkxNbWd3WkVoQ2VrOXBPSFprUnpseVdsYzBkVmxYVGpBS1lWYzVkV041Tlc1aFdGSnZaRmRLTVdNeVZubFpNamwxWkVkV2RXUkROV3BpTWpCM1NIZFpTMHQzV1VKQ1FVZEVkbnBCUWtGblVWSmtNamw1WVRKYWN3cGlNMlJtV2tkc2VtTkhSakJaTW1kM1RtZFpTMHQzV1VKQ1FVZEVkbnBCUWtGM1VXOU5WR2hzVDFSS2JWbHFXVFJQUkZsNVRVUkdiVnB0U1RWTlYwMTRDazU2VG0xTlJFa3hUMVJOTTA1Nll6Tk9WRnBxVG5wcmVscHFRVlJDWjI5eVFtZEZSVUZaVHk5TlFVVkZRa0ZXUTJSWGJITmFSRUZ5UW1kdmNrSm5SVVVLUVZsUEwwMUJSVVpDUWpGdlpGZGtibUZYTlc1YWJVWnFXbE01Y2xwWVNuVmFWM2g2VEZkT2RtSlhNVEZpYld3d1pWUkJaRUpuYjNKQ1owVkZRVmxQTHdwTlFVVkhRa0U1ZVZwWFducE1NbWhzV1ZkU2Vrd3lNV2hoVnpSM1QzZFpTMHQzV1VKQ1FVZEVkbnBCUWtOQlVYUkVRM1J2WkVoU2QyTjZiM1pNTTFKMkNtRXlWblZNYlVacVpFZHNkbUp1VFhWYU1td3dZVWhXYVdSWVRteGpiVTUyWW01U2JHSnVVWFZaTWpsMFRVY3dSME5wYzBkQlVWRkNaemM0ZDBGUmEwVUtXSGQ0WkdGSVVqQmpTRTAyVEhrNWJtRllVbTlrVjBsMVdUSTVkRXd5YURGYU1tUndZbTFrYlZsWFRteE1NblJzWTIwMWJHSklUWFJaTWpsMFlsaFdkUXBoV0ZJMVRIazFibUZZVW05a1YwbDJaREk1ZVdFeVduTmlNMlI2VERKS01XRlhlR3RNYm14b1lsZDRRV050Vm0xamVUbHZXbGRHYTJONU9YUlpWMngxQ2sxRVowZERhWE5IUVZGUlFtYzNPSGRCVVc5RlMyZDNiMDFVYUd4UFZFcHRXV3BaTkU5RVdYbE5SRVp0V20xSk5VMVhUWGhPZWs1dFRVUkpNVTlVVFRNS1RucGpNMDVVV21wT2VtdDZXbXBCWWtKbmIzSkNaMFZGUVZsUEwwMUJSVXhDUVRCTlF6Tk9iR0pIV1hSaFJ6bDZaRWRXYTAxRlFVZERhWE5IUVZGUlFncG5OemgzUVZGM1JVMW5kM2RoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlUxRVowZERhWE5IUVZGUlFtYzNPSGRCVVRCRlMyZDNiMDFVYUd4UFZFcHRXV3BaTkU5RVdYbE5SRVp0V20xSk5VMVhUWGdLVG5wT2JVMUVTVEZQVkUwelRucGpNMDVVV21wT2VtdDZXbXBCWmtKbmIzSkNaMFZGUVZsUEwwMUJSVTlDUWtWTlJETktiRnB1VFhaaFIxWm9Xa2hOZGdwaVYwWndZbXBCWVVKbmIzSkNaMFZGUVZsUEwwMUJSVkJDUVhkTlEycEZkMDU2UlRCT2VsVXhUV3ByZDB4bldVdExkMWxDUWtGSFJIWjZRVUpGUVZGbkNrUkNOVzlrU0ZKM1kzcHZka3d5WkhCa1IyZ3hXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWM1IwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWUlVVc0tSRUZuZVU1VVkzbE5SR013VFhwQ2RFSm5iM0pDWjBWRlFWbFBMMDFCUlZOQ1JqaE5XRmRvTUdSSVFucFBhVGgyV2pKc01HRklWbWxNYlU1MllsTTVid3BrVjJSdVlWYzFibHB0Um1wYVV6bHlXbGhLZFZwWGVIcE1WMDUyWWxjeE1XSnRiREJsVXpoMVdqSnNNR0ZJVm1sTU0yUjJZMjEwYldKSE9UTmplVGxwQ21SWGJITmFRelUxV1ZjeGMxRklTbXhhYmsxMllVZFdhRnBJVFhaaVYwWndZbXBCTkVKbmIzSkNaMFZGUVZsUEwwMUJSVlJDUTI5TlMwUkZORnBVYTNrS1dtMUpNazlFWnpKTmFrRjRXbTFhYVU5VVJtcE5WR042V21wQmVVNVVhM3BPZW1NelRucFZNbGw2WXpWTk1sbDNTVkZaUzB0M1dVSkNRVWRFZG5wQlFncEdRVkZVUkVKR00ySXpTbkphYlhoMlpERTVhMkZZVG5kWldGSnFZVVJDYTBKbmIzSkNaMFZGUVZsUEwwMUJSVlpDUmxsTlZrZG9NR1JJUW5wUGFUaDJDbG95YkRCaFNGWnBURzFPZG1KVE9XOWtWMlJ1WVZjMWJscHRSbXBhVXpseVdsaEtkVnBYZUhwTVYwNTJZbGN4TVdKdGJEQmxVemxvV1ROU2NHSXlOWG9LVEROS01XSnVUWFpOZWtrMFRXcGpNMDlFVVRKT2FtdDJXVmhTTUZwWE1YZGtTRTEyVFZSQlYwSm5iM0pDWjBWRlFWbFBMMDFCUlZkQ1FXZE5RbTVDTVFwWmJYaHdXWHBDUjBKbmIzSkNaMFZGUVZsUEwwMUJSVmxDUkdkTlRtNUtiR05IT0RaaFNGWnVXakpzZFZveVdtaFpNbFYyWVRKV2VXSnRWbk5qZVRGcUNtSXlNWFJrVnpWd1pFaHJObU50Vm0xUGJrcHNXbTVOZG1GSFZtaGFTRTEyWWxkR2NHSnFRMEpwZDFsTFMzZFpRa0pCU0ZkbFVVbEZRV2RTT1VKSWMwRUtaVkZDTTBGT01EbE5SM0pIZUhoRmVWbDRhMlZJU214dVRuZExhVk5zTmpRemFubDBMelJsUzJOdlFYWkxaVFpQUVVGQlFtOUVaM0F4ZUdOQlFVRlJSQXBCUldkM1VtZEphRUZLVHpseVdXdHVVRTR6VlRkT0wwTlBaVXQ1ZVRGUmNHRllkMmhoVlU5T1lsVXJiVU5RWlhGalJGbHpRV2xGUVRSc1pHcExkVkZUQ2pKU1FuaEdURFZyTlVWT1FWQmxhR0pETXpCaGJWSXJNM1JUVjFJM0wyd3libVk0ZDBObldVbExiMXBKZW1vd1JVRjNUVVJoUVVGM1dsRkplRUZNTW00S1lXeENjR1pOZFZOYVMycDFNREoxYzFwNU5IQmpOVmxSV2pKemExbDZOekF4UWxWRmFHMTVLMFpPTmtFNFVVWkRWVWxyYnpRd1VEY3paR2MyZUdkSmR3cEVZbXQ2TWpOV01VbGxaa3R6ZEVGWFJVWjZWMUpJVUZwaGMyaFlWalF4VjBsUlNXZE9ia1JuUW5wck5rdDNZV2t4ZFRVM2JIQndOQ3RIVDJWbVZGTTRDaTB0TFMwdFJVNUVJRU5GVWxSSlJrbERRVlJGTFMwdExTMEsifX19fQ=="}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyzADAgEAMIICwgYJKoZIhvcNAQcCoIICszCCAq8CAQMxDTALBglghkgBZQMEAgEwgbgGCyqGSIb3DQEJEAEEoIGoBIGlMIGiAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgEbF28frWRBCMHPGhrV89UBA7h3cO6gr3lkGdSfF53BACFQCQonnWq+IPKfv3udX+7csZK6be4RgPMjAyNjA4MjUwOTA0MjFaMAMCAQGgMqQwMC4xFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEVMBMGA1UEAxMMc2lnc3RvcmUtdHNhoAAxggHcMIIB2AIBATBRMDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAsGCWCGSAFlAwQCAaCB/DAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTI2MDgyNTA5MDQyMVowLwYJKoZIhvcNAQkEMSIEIJvppJQlAG6IqizFIZA3YDy7fP25gmx2GaSqcx6p+hTjMIGOBgsqhkiG9w0BCRACLzF/MH0wezB5BCCF+Se8B6tiysO0Q1bBDvyBssaIP9p6uebYcNnROs0FtzBVMD2kOzA5MRUwEwYDVQQKEwxzaWdzdG9yZS5kZXYxIDAeBgNVBAMTF3NpZ3N0b3JlLXRzYS1zZWxmc2lnbmVkAhQ6E1QvDJBh7rzBQy/Lio6LKiOLDDAKBggqhkjOPQQDAgRoMGYCMQC1jrnKCkXUmHamh1QAefIlnP3Ghf64s8pOFQVLUfG6+Mhw7ozS57IpV/XosVCT+9cCMQDkuaYzz6a5JayABh/e9lxkIiU9ldsn7/azucsMmCtW0AIJkn01x97bN5bYpLCvU2M="}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"gQEFz8lsrCBfvg3h8ZXs8bv8MAiQmAjG0K9x0dY0JFc="},"signature":"MEQCIFSRMCP8xyQ2QBfy+oHbA2lYIUH2o3Z2lFUMvX4f1GawAiBAr6IBqR2LRg/YgMfTughN8dASgo6XruEK4YqX+yazwA=="}}
 
1
+ {"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"MIIHTDCCBtGgAwIBAgIUeUIFXJ50+G12sCjwJl6augF4nYkwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwODI1MTIxOTQ5WhcNMjYwODI1MTIyOTQ5WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAETnFoeHaBXZxmUD4bM5e1HCFIW6+2UmcyhfG1es2w/2dx8166uiZnnpc0crvvMowTMT82UDoBAcxIOiTkNmO0fKOCBfAwggXsMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUlmxH8ufqpVu9Glz6/XWF551U8D0wHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wawYDVR0RAQH/BGEwX4ZdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDkGCisGAQQBg78wAQEEK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wHwYKKwYBBAGDvzABAgQRd29ya2Zsb3dfZGlzcGF0Y2gwNgYKKwYBBAGDvzABAwQoYzRkMGRjNTY2NjFiYWRiOWNjNDdiZGU2NDdlMDhmZTNiNGJmNzQ1ODATBgorBgEEAYO/MAEEBAVCdWlsZDArBgorBgEEAYO/MAEFBB1odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTAdBgorBgEEAYO/MAEGBA9yZWZzL2hlYWRzL21haW4wOwYKKwYBBAGDvzABCAQtDCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMG0GCisGAQQBg78wAQkEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wAQoEKgwoYzRkMGRjNTY2NjFiYWRiOWNjNDdiZGU2NDdlMDhmZTNiNGJmNzQ1ODAbBgorBgEEAYO/MAELBA0MC3NlbGYtaG9zdGVkMEAGCisGAQQBg78wAQwEMgwwaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MDgGCisGAQQBg78wAQ0EKgwoYzRkMGRjNTY2NjFiYWRiOWNjNDdiZGU2NDdlMDhmZTNiNGJmNzQ1ODAfBgorBgEEAYO/MAEOBBEMD3JlZnMvaGVhZHMvbWFpbjAaBgorBgEEAYO/MAEPBAwMCjEwNzE0NzU1MjkwLgYKKwYBBAGDvzABEAQgDB5odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2UwGAYKKwYBBAGDvzABEQQKDAgyNTcyMDc0MzBtBgorBgEEAYO/MAESBF8MXWh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS8uZ2l0aHViL3dvcmtmbG93cy9idWlsZC55YW1sQHJlZnMvaGVhZHMvbWFpbjA4BgorBgEEAYO/MAETBCoMKGM0ZDBkYzU2NjYxYmFkYjljYzQ3YmRlNjQ3ZTA4ZmUzYjRiZjc0NTgwIQYKKwYBBAGDvzABFAQTDBF3b3JrZmxvd19kaXNwYXRjaDBkBgorBgEEAYO/MAEVBFYMVGh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS9hY3Rpb25zL3J1bnMvMzI4NDQ2ODk4OTQvYXR0ZW1wdHMvMTAWBgorBgEEAYO/MAEWBAgMBnB1YmxpYzBGBgorBgEEAYO/MAEYBDgMNnJlcG86aHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHk6cmVmOnJlZnMvaGVhZHMvbWFpbjCBigYKKwYBBAHWeQIEAgR8BHoAeAB2AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABoDjczIoAAAQDAEcwRQIgWiYzfUX9Dn3pZIXPbKOgXR6WJ/+rR4vyyaqzz3rSQj8CIQCMTfgOEczMvL2d2CtQoGMErJ9vwpNTr3/wm1WLC8U05DAKBggqhkjOPQQDAwNpADBmAjEAvZFo1QbCMQeVvG0QKt5wu0Ozq/JVHfFDiBXJJL8z7/ohp6e+XnESLXzn5w+vQ68lAjEAkJafr6hmukEKp0BRUVDcHHIw3MctDa9PW52xXiAuKaksk8vYB/0hbuQtW14DwGMz"},"tlogEntries":[{"logIndex":"2583301032","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1787660389","inclusionPromise":{"signedEntryTimestamp":"MEYCIQCUtXbf/b51Js5ZRSIbUlNu2l1ewj3iUC0RMHBVVAG0ogIhALcm6a/0G0qs+un1gWipXQraGMgsPQMg2HITEW/+izqd"},"inclusionProof":{"logIndex":"2461396770","rootHash":"+9yDVQtoBwv+TWg9sbvbrws2o4uDrAiv3/sXe3VsXEI=","treeSize":"2461396771","hashes":["f156COoZ5G1LD9hWjZwrqyK6SWCrQZDZ0BsdBSj64Pw=","j0jxmcYIDfzscLLup18JrUF+HnFqxPFULBBDxDLqfSQ=","M1KvBxaBWRZCfg7zEqvTKXXoAv5EZdP6wtNwhsr1HU0=","rJMFK17JIR2K3LvDkBdSnu34bvtB3vXQPdwQg0pZ8co=","sBRt94T302PGfFAkqNx12yVeZQ2wK8MXBkspHV8OBEU=","bBUTypOI8GgjhxRM30SIZoDfZopPulgZgxKAp1agI1Q=","EY8T0lxQDrmYoWBGpKNGttaHfKmpfqKcWqSNF4XOQKE=","T4Jz+m9vO48rOpMSsdZSW28/bgHR8prz7JeNX1s7WiQ=","EXKrSbeG2qm5APD5QSDN66X7UHz9OSofiW9PyNU7fPM=","cjIeeutzThxIPTlFFHJqa7bAzn3k2FzK8Nrdd56OWvE=","+pNXWGIXzU1dqSy/aePHKYtSkDnFinI+/bL5HnurJ6w=","G1R9F5B2KizFA2NyhDznjNKXPOF1SDmbGHz+omLG7TY=","RZ7XwGuqMr5gDUh2HpUcaXp+AmIiEcPJiMui4GLJE7o=","mBm+vQtn0C4thMnlTnxfxqowq1dXsPBCKaJ85da3JeU=","b80/J/68RC8/tx5xRdlKk6MmTpZiVRotquWBrE/z1pI=","SndbMKVtcTenAkwi2JBfGzD+mhexp1qJbRIY+A1JRIU=","xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n2461396771\n+9yDVQtoBwv+TWg9sbvbrws2o4uDrAiv3/sXe3VsXEI=\n\n— rekor.sigstore.dev wNI9ajBFAiBL168m4LojcDzYOaZGPy3YwpLodl04c1rYP6PM1jdPLAIhANY9/3PjaDlSULsSizUeyE+OZbCJwXr5psaGl/lNHDf/\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiI0ZjY0MjUzMDA5YjZlZDMyOGNlODc2MTY0MWFmYjFkMzRiZjZkMmY5M2YzYzU3MmZmYWU2NjA4NjRhZjE3ZjgyIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FWUNJUURlMDlmc2w2T2R2QkZEOTJ0bElrLzNCNjhuMEt0aWN1a2d5ajhwdmkxVnB3SWhBTmJGVE5sTHR4aDZLVllxZHBqMjlMWmJMWURNQ3FSaXUwMXlOM2xzb0FsSCIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaFVSRU5EUW5SSFowRjNTVUpCWjBsVlpWVkpSbGhLTlRBclJ6RXljME5xZDBwc05tRjFaMFkwYmxscmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDlFU1RGTlZFbDRUMVJSTlZkb1kwNU5hbGwzVDBSSk1VMVVTWGxQVkZFMVYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZVYmtadlpVaGhRbGhhZUcxVlJEUmlUVFZsTVVoRFJrbFhOaXN5VlcxamVXaG1SekVLWlhNeWR5OHlaSGc0TVRZMmRXbGFibTV3WXpCamNuWjJUVzkzVkUxVU9ESlZSRzlDUVdONFNVOXBWR3RPYlU4d1prdFBRMEptUVhkbloxaHpUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlZzYlhoSUNqaDFabkZ3Vm5VNVIyeDZOaTlZVjBZMU5URlZPRVF3ZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDJGM1dVUldVakJTUVZGSUwwSkhSWGRZTkZwa1lVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKb01Wb3laSEJpYldSdFdWZE9iQXBNTW5Sc1kyMDFiR0pJVFhSWk1qbDBZbGhXZFdGWVVqVk1lVFZ1WVZoU2IyUlhTWFprTWpsNVlUSmFjMkl6WkhwTU1rb3hZVmQ0YTB4dWJHaGlWM2hCQ21OdFZtMWplVGx2V2xkR2EyTjVPWFJaVjJ4MVRVUnJSME5wYzBkQlVWRkNaemM0ZDBGUlJVVkxNbWd3WkVoQ2VrOXBPSFprUnpseVdsYzBkVmxYVGpBS1lWYzVkV041Tlc1aFdGSnZaRmRLTVdNeVZubFpNamwxWkVkV2RXUkROV3BpTWpCM1NIZFpTMHQzV1VKQ1FVZEVkbnBCUWtGblVWSmtNamw1WVRKYWN3cGlNMlJtV2tkc2VtTkhSakJaTW1kM1RtZFpTMHQzV1VKQ1FVZEVkbnBCUWtGM1VXOVplbEpyVFVkU2FrNVVXVEpPYWtacFdWZFNhVTlYVG1wT1JHUnBDbHBIVlRKT1JHUnNUVVJvYlZwVVRtbE9SMHB0VG5wUk1VOUVRVlJDWjI5eVFtZEZSVUZaVHk5TlFVVkZRa0ZXUTJSWGJITmFSRUZ5UW1kdmNrSm5SVVVLUVZsUEwwMUJSVVpDUWpGdlpGZGtibUZYTlc1YWJVWnFXbE01Y2xwWVNuVmFWM2g2VEZkT2RtSlhNVEZpYld3d1pWUkJaRUpuYjNKQ1owVkZRVmxQTHdwTlFVVkhRa0U1ZVZwWFducE1NbWhzV1ZkU2Vrd3lNV2hoVnpSM1QzZFpTMHQzV1VKQ1FVZEVkbnBCUWtOQlVYUkVRM1J2WkVoU2QyTjZiM1pNTTFKMkNtRXlWblZNYlVacVpFZHNkbUp1VFhWYU1td3dZVWhXYVdSWVRteGpiVTUyWW01U2JHSnVVWFZaTWpsMFRVY3dSME5wYzBkQlVWRkNaemM0ZDBGUmEwVUtXSGQ0WkdGSVVqQmpTRTAyVEhrNWJtRllVbTlrVjBsMVdUSTVkRXd5YURGYU1tUndZbTFrYlZsWFRteE1NblJzWTIwMWJHSklUWFJaTWpsMFlsaFdkUXBoV0ZJMVRIazFibUZZVW05a1YwbDJaREk1ZVdFeVduTmlNMlI2VERKS01XRlhlR3RNYm14b1lsZDRRV050Vm0xamVUbHZXbGRHYTJONU9YUlpWMngxQ2sxRVowZERhWE5IUVZGUlFtYzNPSGRCVVc5RlMyZDNiMWw2VW10TlIxSnFUbFJaTWs1cVJtbFpWMUpwVDFkT2FrNUVaR2xhUjFVeVRrUmtiRTFFYUcwS1dsUk9hVTVIU20xT2VsRXhUMFJCWWtKbmIzSkNaMFZGUVZsUEwwMUJSVXhDUVRCTlF6Tk9iR0pIV1hSaFJ6bDZaRWRXYTAxRlFVZERhWE5IUVZGUlFncG5OemgzUVZGM1JVMW5kM2RoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlUxRVowZERhWE5IUVZGUlFtYzNPSGRCVVRCRlMyZDNiMWw2VW10TlIxSnFUbFJaTWs1cVJtbFpWMUpwVDFkT2FrNUVaR2tLV2tkVk1rNUVaR3hOUkdodFdsUk9hVTVIU20xT2VsRXhUMFJCWmtKbmIzSkNaMFZGUVZsUEwwMUJSVTlDUWtWTlJETktiRnB1VFhaaFIxWm9Xa2hOZGdwaVYwWndZbXBCWVVKbmIzSkNaMFZGUVZsUEwwMUJSVkJDUVhkTlEycEZkMDU2UlRCT2VsVXhUV3ByZDB4bldVdExkMWxDUWtGSFJIWjZRVUpGUVZGbkNrUkNOVzlrU0ZKM1kzcHZka3d5WkhCa1IyZ3hXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWM1IwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWUlVVc0tSRUZuZVU1VVkzbE5SR013VFhwQ2RFSm5iM0pDWjBWRlFWbFBMMDFCUlZOQ1JqaE5XRmRvTUdSSVFucFBhVGgyV2pKc01HRklWbWxNYlU1MllsTTVid3BrVjJSdVlWYzFibHB0Um1wYVV6bHlXbGhLZFZwWGVIcE1WMDUyWWxjeE1XSnRiREJsVXpoMVdqSnNNR0ZJVm1sTU0yUjJZMjEwYldKSE9UTmplVGxwQ21SWGJITmFRelUxV1ZjeGMxRklTbXhhYmsxMllVZFdhRnBJVFhaaVYwWndZbXBCTkVKbmIzSkNaMFZGUVZsUEwwMUJSVlJDUTI5TlMwZE5NRnBFUW1zS1dYcFZNazVxV1hoWmJVWnJXV3BzYWxsNlVUTlpiVkpzVG1wUk0xcFVRVFJhYlZWNldXcFNhVnBxWXpCT1ZHZDNTVkZaUzB0M1dVSkNRVWRFZG5wQlFncEdRVkZVUkVKR00ySXpTbkphYlhoMlpERTVhMkZZVG5kWldGSnFZVVJDYTBKbmIzSkNaMFZGUVZsUEwwMUJSVlpDUmxsTlZrZG9NR1JJUW5wUGFUaDJDbG95YkRCaFNGWnBURzFPZG1KVE9XOWtWMlJ1WVZjMWJscHRSbXBhVXpseVdsaEtkVnBYZUhwTVYwNTJZbGN4TVdKdGJEQmxVemxvV1ROU2NHSXlOWG9LVEROS01XSnVUWFpOZWtrMFRrUlJNazlFYXpSUFZGRjJXVmhTTUZwWE1YZGtTRTEyVFZSQlYwSm5iM0pDWjBWRlFWbFBMMDFCUlZkQ1FXZE5RbTVDTVFwWmJYaHdXWHBDUjBKbmIzSkNaMFZGUVZsUEwwMUJSVmxDUkdkTlRtNUtiR05IT0RaaFNGWnVXakpzZFZveVdtaFpNbFYyWVRKV2VXSnRWbk5qZVRGcUNtSXlNWFJrVnpWd1pFaHJObU50Vm0xUGJrcHNXbTVOZG1GSFZtaGFTRTEyWWxkR2NHSnFRMEpwWjFsTFMzZFpRa0pCU0ZkbFVVbEZRV2RTT0VKSWIwRUtaVUZDTWtGT01EbE5SM0pIZUhoRmVWbDRhMlZJU214dVRuZExhVk5zTmpRemFubDBMelJsUzJOdlFYWkxaVFpQUVVGQlFtOUVhbU42U1c5QlFVRlJSQXBCUldOM1VsRkpaMWRwV1hwbVZWZzVSRzR6Y0ZwSldGQmlTMDluV0ZJMlYwb3ZLM0pTTkhaNWVXRnhlbm96Y2xOUmFqaERTVkZEVFZSbVowOUZZM3BOQ25aTU1tUXlRM1JSYjBkTlJYSktPWFozY0U1VWNqTXZkMjB4VjB4RE9GVXdOVVJCUzBKblozRm9hMnBQVUZGUlJFRjNUbkJCUkVKdFFXcEZRWFphUm04S01WRmlRMDFSWlZaMlJ6QlJTM1ExZDNVd1QzcHhMMHBXU0daR1JHbENXRXBLVERoNk55OXZhSEEyWlN0WWJrVlRURmg2YmpWM0szWlJOamhzUVdwRlFRcHJTbUZtY2pab2JYVnJSVXR3TUVKU1ZWWkVZMGhJU1hjelRXTjBSR0U1VUZjMU1uaFlhVUYxUzJGcmMyczRkbGxDTHpCb1luVlJkRmN4TkVSM1IwMTZDaTB0TFMwdFJVNUVJRU5GVWxSSlJrbERRVlJGTFMwdExTMEsifX19fQ=="}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyTADAgEAMIICwAYJKoZIhvcNAQcCoIICsTCCAq0CAQMxDTALBglghkgBZQMEAgEwgbcGCyqGSIb3DQEJEAEEoIGnBIGkMIGhAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgSWVhglxpSgP1f3zUnVIkOgusk5CMnDvGDhITWuynm5YCFDAh5gwFjdqsGgKEZ25Fktw3bonkGA8yMDI2MDgyNTEyMTk0OVowAwIBAaAypDAwLjEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MRUwEwYDVQQDEwxzaWdzdG9yZS10c2GgADGCAdswggHXAgEBMFEwOTEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MSAwHgYDVQQDExdzaWdzdG9yZS10c2Etc2VsZnNpZ25lZAIUOhNULwyQYe68wUMvy4qOiyojiwwwCwYJYIZIAWUDBAIBoIH8MBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAcBgkqhkiG9w0BCQUxDxcNMjYwODI1MTIxOTQ5WjAvBgkqhkiG9w0BCQQxIgQg3TJBUVxzs7a/jl+x/P7oQDylbJNmNbIXXeNjTiz38oUwgY4GCyqGSIb3DQEJEAIvMX8wfTB7MHkEIIX5J7wHq2LKw7RDVsEO/IGyxog/2nq55thw2dE6zQW3MFUwPaQ7MDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAoGCCqGSM49BAMCBGcwZQIxALSFeJGSHEz0aIlHP0/fLvuDH1wMSI9RhzG1rUxWiHk28oT629l4tP2Tr7y5TYKttwIwMwrndXpK2KKFYLCEQoDB+AxwYe2KJ7aSrPUZG2aWyFYZzhWI3DaFSEcpBUn6PKgX"}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"T2QlMAm27TKM6HYWQa+x00v20vk/PFcv+uZghkrxf4I="},"signature":"MEYCIQDe09fsl6OdvBFD92tlIk/3B68n0Kticukgyj8pvi1VpwIhANbFTNlLtxh6KVYqdpj29LZbLYDMCqRiu01yN3lsoAlH"}}
build/torch211-cxx11-cu130-aarch64-linux/xpu_fused_moe.py CHANGED
@@ -26,7 +26,7 @@ def _register_xpu_fake_kernels():
26
 
27
  _register_if_available(
28
  "cutlass_grouped_gemm_interface",
29
- lambda ptr_A, ptr_B, ptr_scales, ptr_bias, ptr_D, expert_first_token_offset, N, K, num_experts, is_B_int4, is_B_mxfp4: ptr_D,
30
  )
31
 
32
  _register_if_available(
@@ -106,12 +106,13 @@ def cutlass_grouped_gemm(input_A, input_B, bias, output, expert_token_count, n,
106
  K=k,
107
  num_experts=num_experts,
108
  is_B_int4=False,
109
- is_B_mxfp4=False)
 
110
 
111
 
112
  def cutlass_grouped_gemm_xe2(input_A, input_B, scales, bias, output,
113
  num_rows_per_expert, n, k, num_experts, is_B_int4,
114
- is_B_mxfp4):
115
  expert_first_token_offset = torch.cat([
116
  torch.tensor([0],
117
  dtype=num_rows_per_expert.dtype,
@@ -129,7 +130,8 @@ def cutlass_grouped_gemm_xe2(input_A, input_B, scales, bias, output,
129
  K=k,
130
  num_experts=num_experts,
131
  is_B_int4=is_B_int4,
132
- is_B_mxfp4=is_B_mxfp4)
 
133
 
134
 
135
  def ceilDiv(a, b):
@@ -206,7 +208,8 @@ def xpu_fused_moe(hidden_states,
206
  ep_size=1,
207
  is_fp8=False,
208
  is_int4=False,
209
- is_mxfp4=False):
 
210
  '''
211
  hidden_states: [num_rows, hidden_size]
212
  w13: [num_experts, 2*inter_size, hidden_size]
@@ -228,6 +231,7 @@ def xpu_fused_moe(hidden_states,
228
  num_experts: int
229
  is_int4: bool
230
  is_mxfp4: bool
 
231
  '''
232
 
233
  # Resolve DTensors to local tensors before passing to custom ops
@@ -266,7 +270,7 @@ def xpu_fused_moe(hidden_states,
266
 
267
  # 4bits support [E, N, K]
268
  # other types [E, K, N]
269
- if not is_int4 and not is_mxfp4:
270
  if not hasattr(w13, 'xpu_fused_moe'):
271
  if needs_transpose:
272
  w13.data = w13.transpose(-1, -2).contiguous()
@@ -389,7 +393,7 @@ def xpu_fused_moe(hidden_states,
389
  ########### gemm1 ##################
390
  input_B = w13
391
 
392
- if not is_fp8 and not is_int4 and not is_mxfp4:
393
  ops.cutlass_grouped_gemm_interface(
394
  ptr_A=gemm1_input,
395
  ptr_B=input_B,
@@ -401,7 +405,8 @@ def xpu_fused_moe(hidden_states,
401
  K=hidden_size,
402
  num_experts=num_experts_per_node,
403
  is_B_int4=is_int4,
404
- is_B_mxfp4=is_mxfp4)
 
405
  else:
406
  ops.cutlass_grouped_gemm_interface(
407
  ptr_A=gemm1_input,
@@ -414,7 +419,8 @@ def xpu_fused_moe(hidden_states,
414
  K=hidden_size,
415
  num_experts=num_experts_per_node,
416
  is_B_int4=is_int4,
417
- is_B_mxfp4=is_mxfp4)
 
418
 
419
  # act
420
  act_output = torch.empty((num_moe_inputs, inter_size),
@@ -435,7 +441,7 @@ def xpu_fused_moe(hidden_states,
435
  gemm2_output = torch.empty((num_moe_inputs, hidden_size),
436
  dtype=hidden_states.dtype,
437
  device=hidden_states.device)
438
- if not is_fp8 and not is_int4 and not is_mxfp4:
439
  ops.cutlass_grouped_gemm_interface(
440
  ptr_A=input_A,
441
  ptr_B=input_B,
@@ -447,7 +453,8 @@ def xpu_fused_moe(hidden_states,
447
  K=inter_size,
448
  num_experts=num_experts_per_node,
449
  is_B_int4=is_int4,
450
- is_B_mxfp4=is_mxfp4)
 
451
  else:
452
  ops.cutlass_grouped_gemm_interface(
453
  ptr_A=input_A,
@@ -460,7 +467,8 @@ def xpu_fused_moe(hidden_states,
460
  K=inter_size,
461
  num_experts=num_experts_per_node,
462
  is_B_int4=is_int4,
463
- is_B_mxfp4=is_mxfp4)
 
464
 
465
  ops.moe_gather(output, gemm2_output, topk_weights,
466
  permuted_row_to_unpermuted_row,
@@ -633,6 +641,7 @@ class MegaBlocksMoeMLP(torch.nn.Module):
633
  is_fp8 = getattr(self.experts, "is_fp8", False)
634
  is_int4 = getattr(self.experts, "is_int4", False)
635
  is_mxfp4 = getattr(self.experts, "is_mxfp4", False)
 
636
 
637
  w13_scales = getattr(self.experts, "gate_up_proj_scales", None)
638
  w2_scales = getattr(self.experts, "down_proj_scales", None)
@@ -685,6 +694,7 @@ class MegaBlocksMoeMLP(torch.nn.Module):
685
  is_fp8=is_fp8,
686
  is_int4=is_int4,
687
  is_mxfp4=is_mxfp4,
 
688
  )
689
 
690
  # All-reduce across EP group to combine partial expert outputs
 
26
 
27
  _register_if_available(
28
  "cutlass_grouped_gemm_interface",
29
+ lambda ptr_A, ptr_B, ptr_scales, ptr_bias, ptr_D, expert_first_token_offset, N, K, num_experts, is_B_int4, is_B_mxfp4, is_B_mxfp8=False: ptr_D,
30
  )
31
 
32
  _register_if_available(
 
106
  K=k,
107
  num_experts=num_experts,
108
  is_B_int4=False,
109
+ is_B_mxfp4=False,
110
+ is_B_mxfp8=False)
111
 
112
 
113
  def cutlass_grouped_gemm_xe2(input_A, input_B, scales, bias, output,
114
  num_rows_per_expert, n, k, num_experts, is_B_int4,
115
+ is_B_mxfp4, is_B_mxfp8=False):
116
  expert_first_token_offset = torch.cat([
117
  torch.tensor([0],
118
  dtype=num_rows_per_expert.dtype,
 
130
  K=k,
131
  num_experts=num_experts,
132
  is_B_int4=is_B_int4,
133
+ is_B_mxfp4=is_B_mxfp4,
134
+ is_B_mxfp8=is_B_mxfp8)
135
 
136
 
137
  def ceilDiv(a, b):
 
208
  ep_size=1,
209
  is_fp8=False,
210
  is_int4=False,
211
+ is_mxfp4=False,
212
+ is_mxfp8=False):
213
  '''
214
  hidden_states: [num_rows, hidden_size]
215
  w13: [num_experts, 2*inter_size, hidden_size]
 
231
  num_experts: int
232
  is_int4: bool
233
  is_mxfp4: bool
234
+ is_mxfp8: bool
235
  '''
236
 
237
  # Resolve DTensors to local tensors before passing to custom ops
 
270
 
271
  # 4bits support [E, N, K]
272
  # other types [E, K, N]
273
+ if not is_int4 and not is_mxfp4 and not is_mxfp8:
274
  if not hasattr(w13, 'xpu_fused_moe'):
275
  if needs_transpose:
276
  w13.data = w13.transpose(-1, -2).contiguous()
 
393
  ########### gemm1 ##################
394
  input_B = w13
395
 
396
+ if not is_fp8 and not is_int4 and not is_mxfp4 and not is_mxfp8:
397
  ops.cutlass_grouped_gemm_interface(
398
  ptr_A=gemm1_input,
399
  ptr_B=input_B,
 
405
  K=hidden_size,
406
  num_experts=num_experts_per_node,
407
  is_B_int4=is_int4,
408
+ is_B_mxfp4=is_mxfp4,
409
+ is_B_mxfp8=is_mxfp8)
410
  else:
411
  ops.cutlass_grouped_gemm_interface(
412
  ptr_A=gemm1_input,
 
419
  K=hidden_size,
420
  num_experts=num_experts_per_node,
421
  is_B_int4=is_int4,
422
+ is_B_mxfp4=is_mxfp4,
423
+ is_B_mxfp8=is_mxfp8)
424
 
425
  # act
426
  act_output = torch.empty((num_moe_inputs, inter_size),
 
441
  gemm2_output = torch.empty((num_moe_inputs, hidden_size),
442
  dtype=hidden_states.dtype,
443
  device=hidden_states.device)
444
+ if not is_fp8 and not is_int4 and not is_mxfp4 and not is_mxfp8:
445
  ops.cutlass_grouped_gemm_interface(
446
  ptr_A=input_A,
447
  ptr_B=input_B,
 
453
  K=inter_size,
454
  num_experts=num_experts_per_node,
455
  is_B_int4=is_int4,
456
+ is_B_mxfp4=is_mxfp4,
457
+ is_B_mxfp8=is_mxfp8)
458
  else:
459
  ops.cutlass_grouped_gemm_interface(
460
  ptr_A=input_A,
 
467
  K=inter_size,
468
  num_experts=num_experts_per_node,
469
  is_B_int4=is_int4,
470
+ is_B_mxfp4=is_mxfp4,
471
+ is_B_mxfp8=is_mxfp8)
472
 
473
  ops.moe_gather(output, gemm2_output, topk_weights,
474
  permuted_row_to_unpermuted_row,
 
641
  is_fp8 = getattr(self.experts, "is_fp8", False)
642
  is_int4 = getattr(self.experts, "is_int4", False)
643
  is_mxfp4 = getattr(self.experts, "is_mxfp4", False)
644
+ is_mxfp8 = getattr(self.experts, "is_mxfp8", False)
645
 
646
  w13_scales = getattr(self.experts, "gate_up_proj_scales", None)
647
  w2_scales = getattr(self.experts, "down_proj_scales", None)
 
694
  is_fp8=is_fp8,
695
  is_int4=is_int4,
696
  is_mxfp4=is_mxfp4,
697
+ is_mxfp8=is_mxfp8,
698
  )
699
 
700
  # All-reduce across EP group to combine partial expert outputs
build/torch212-cxx11-cu126-aarch64-linux/{_megablocks_cuda_18e92fb.abi3.so → _megablocks_cuda_c4d0dc5.abi3.so} RENAMED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:60ba8c7bf0a8e0e78a110ff50dba38342a3a6a72656c83a6420a0e2964007b7d
3
  size 13179512
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b7a6b16d948b24d1008e2409afab1371ad1a70c4e5d1e6c3d55ce87d4d197e85
3
  size 13179512
build/torch212-cxx11-cu126-aarch64-linux/_ops.py CHANGED
@@ -1,9 +1,9 @@
1
  import torch
2
- from . import _megablocks_cuda_18e92fb
3
- ops = torch.ops._megablocks_cuda_18e92fb
4
 
5
  def add_op_namespace_prefix(op_name: str):
6
  """
7
  Prefix op by namespace.
8
  """
9
- return f"_megablocks_cuda_18e92fb::{op_name}"
 
1
  import torch
2
+ from . import _megablocks_cuda_c4d0dc5
3
+ ops = torch.ops._megablocks_cuda_c4d0dc5
4
 
5
  def add_op_namespace_prefix(op_name: str):
6
  """
7
  Prefix op by namespace.
8
  """
9
+ return f"_megablocks_cuda_c4d0dc5::{op_name}"
build/torch212-cxx11-cu126-aarch64-linux/metadata.json CHANGED
@@ -1,6 +1,6 @@
1
  {
2
  "name": "megablocks",
3
- "id": "_megablocks_cuda_18e92fb",
4
  "version": 1,
5
  "license": "Apache-2.0",
6
  "python-depends": [],
@@ -48,8 +48,8 @@
48
  "_layers/mpu.py": "BX61/pmqRCVeEMnzpuK8x5NpITBJyZfOawGnDegW1O8=",
49
  "_layers/router.py": "GKC/5//Uf43HT6zXlBTStCMTml2YXn7Jbgq9EgTgDC0=",
50
  "_layers/sharedexpert_registry.py": "GfwHKjbC7lBXYq9kNifp3HudTdZKSqwsFxGxFLc2krw=",
51
- "_megablocks_cuda_18e92fb.abi3.so": "YLqMe/Co4OeKEQ/1Dbo4NCo6anJlbIOmQgoOKWQAe30=",
52
- "_ops.py": "baTEjeHRnpTSLod30qZST/UL5GNv7vZoGeNwQWakxbo=",
53
  "_version.py": "W3l9oUrnmvfBoIy06Lv0y2ezTQhNU04ug/txHcdWJD0=",
54
  "backend/__init__.py": "4bunAqqjwE93nym8CigHbqVAal7UaYGdONb8lGRfrek=",
55
  "backend/kernels.py": "2UFNTlmSDk3S5y6UW14MJMPVVsVhmozxQ5wFDxtZHhQ=",
@@ -100,7 +100,7 @@
100
  "stk/random/__init__.py": "Gr/+Gl20jJ6fJVRfoAUxEcCPeChILQzrzhKVVAWQsRI=",
101
  "stk/random/random_ops.py": "AluIDj3Vo2ReKAsZz07yydbtndDbJoglekRGIaCoRZE=",
102
  "stk/random/random_ops_test.py": "B+a4Zb+OPhBtpVA48oc09sBL/AAQO9j/YUFI0nnXxzk=",
103
- "xpu_fused_moe.py": "Dp6S3fK/Fc4Sr+Ac94vw2zz0v/QTGp6rYeMIUqE3Y/I="
104
  }
105
  },
106
  "provenance": {
@@ -110,7 +110,7 @@
110
  "dirty": false
111
  },
112
  "kernel": {
113
- "sha": "18e92fb6886201ffb91c173f02593777756c793f",
114
  "dirty": false
115
  }
116
  }
 
1
  {
2
  "name": "megablocks",
3
+ "id": "_megablocks_cuda_c4d0dc5",
4
  "version": 1,
5
  "license": "Apache-2.0",
6
  "python-depends": [],
 
48
  "_layers/mpu.py": "BX61/pmqRCVeEMnzpuK8x5NpITBJyZfOawGnDegW1O8=",
49
  "_layers/router.py": "GKC/5//Uf43HT6zXlBTStCMTml2YXn7Jbgq9EgTgDC0=",
50
  "_layers/sharedexpert_registry.py": "GfwHKjbC7lBXYq9kNifp3HudTdZKSqwsFxGxFLc2krw=",
51
+ "_megablocks_cuda_c4d0dc5.abi3.so": "t6axbZSLJNEAjiQJr6sTca0acMTl0ebD1VzofU0ZfoU=",
52
+ "_ops.py": "9NSxkX5lSS5VhF9+hDazP5NimwZK2V/+nIXR0AQxnHA=",
53
  "_version.py": "W3l9oUrnmvfBoIy06Lv0y2ezTQhNU04ug/txHcdWJD0=",
54
  "backend/__init__.py": "4bunAqqjwE93nym8CigHbqVAal7UaYGdONb8lGRfrek=",
55
  "backend/kernels.py": "2UFNTlmSDk3S5y6UW14MJMPVVsVhmozxQ5wFDxtZHhQ=",
 
100
  "stk/random/__init__.py": "Gr/+Gl20jJ6fJVRfoAUxEcCPeChILQzrzhKVVAWQsRI=",
101
  "stk/random/random_ops.py": "AluIDj3Vo2ReKAsZz07yydbtndDbJoglekRGIaCoRZE=",
102
  "stk/random/random_ops_test.py": "B+a4Zb+OPhBtpVA48oc09sBL/AAQO9j/YUFI0nnXxzk=",
103
+ "xpu_fused_moe.py": "sPmuRSpkH1Bmk4hdpz53us8Qpc6yinT9rkld3T8WreI="
104
  }
105
  },
106
  "provenance": {
 
110
  "dirty": false
111
  },
112
  "kernel": {
113
+ "sha": "c4d0dc56661badb9cc47bde647e08fe3b4bf7458",
114
  "dirty": false
115
  }
116
  }
build/torch212-cxx11-cu126-aarch64-linux/metadata.json.sigstore CHANGED
@@ -1 +1 @@
1
- {"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"MIIHSTCCBtCgAwIBAgIURA4psH8MgnuWYo41Lg2JMTepkaowCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwODI1MDkwNDIyWhcNMjYwODI1MDkxNDIyWjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEqCr40Lli7ROYDnocXr3BTZ2IPIs8IU8Bdkc4SU/+kOSLOmSSqgxZVSm5ypAX1gkc7QxO9e6eegWYwKWr9VwEoaOCBe8wggXrMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUf6GGX9h+HmIqTFGzGdGhCc16uPYwHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wawYDVR0RAQH/BGEwX4ZdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDkGCisGAQQBg78wAQEEK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wHwYKKwYBBAGDvzABAgQRd29ya2Zsb3dfZGlzcGF0Y2gwNgYKKwYBBAGDvzABAwQoMThlOTJmYjY4ODYyMDFmZmI5MWMxNzNmMDI1OTM3Nzc3NTZjNzkzZjATBgorBgEEAYO/MAEEBAVCdWlsZDArBgorBgEEAYO/MAEFBB1odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTAdBgorBgEEAYO/MAEGBA9yZWZzL2hlYWRzL21haW4wOwYKKwYBBAGDvzABCAQtDCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMG0GCisGAQQBg78wAQkEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wAQoEKgwoMThlOTJmYjY4ODYyMDFmZmI5MWMxNzNmMDI1OTM3Nzc3NTZjNzkzZjAbBgorBgEEAYO/MAELBA0MC3NlbGYtaG9zdGVkMEAGCisGAQQBg78wAQwEMgwwaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MDgGCisGAQQBg78wAQ0EKgwoMThlOTJmYjY4ODYyMDFmZmI5MWMxNzNmMDI1OTM3Nzc3NTZjNzkzZjAfBgorBgEEAYO/MAEOBBEMD3JlZnMvaGVhZHMvbWFpbjAaBgorBgEEAYO/MAEPBAwMCjEwNzE0NzU1MjkwLgYKKwYBBAGDvzABEAQgDB5odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2UwGAYKKwYBBAGDvzABEQQKDAgyNTcyMDc0MzBtBgorBgEEAYO/MAESBF8MXWh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS8uZ2l0aHViL3dvcmtmbG93cy9idWlsZC55YW1sQHJlZnMvaGVhZHMvbWFpbjA4BgorBgEEAYO/MAETBCoMKDE4ZTkyZmI2ODg2MjAxZmZiOTFjMTczZjAyNTkzNzc3NzU2Yzc5M2YwIQYKKwYBBAGDvzABFAQTDBF3b3JrZmxvd19kaXNwYXRjaDBkBgorBgEEAYO/MAEVBFYMVGh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS9hY3Rpb25zL3J1bnMvMzI4Mjc3ODQ2NjkvYXR0ZW1wdHMvMTAWBgorBgEEAYO/MAEWBAgMBnB1YmxpYzBGBgorBgEEAYO/MAEYBDgMNnJlcG86aHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHk6cmVmOnJlZnMvaGVhZHMvbWFpbjCBiQYKKwYBBAHWeQIEAgR7BHkAdwB1AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABoDgp2jQAAAQDAEYwRAIgIqNv52+WQxvpfJgiWlma48NnuFVQdy36eoxjuyjCQdACIDIcFpzpw6Kv5AdhfiQNqEzsDl2fvcWFh7TmulN3hhr4MAoGCCqGSM49BAMDA2cAMGQCMFFV+A0nYLjdGWuA1Wa5KDsFi7NWTEG3GqnqNVs7f0TfeXUD8iYLfL3NHf0xzo45wgIwJaV5qKAPoWqGqqehw6CPZVc/oxqHoIwYrFK+oXVvpKQzZJI7B4l0W2lKC8zNilj3"},"tlogEntries":[{"logIndex":"2582977745","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1787648662","inclusionPromise":{"signedEntryTimestamp":"MEYCIQC5QB9pu8wZZglqpRB9xFzZYUOncom44+ffv0U6MzenswIhANhrWHqhettDsAmfSt2LqP2lqt1LbDZ6cSuts/WDp1BK"},"inclusionProof":{"logIndex":"2461073483","rootHash":"jybjX7uHrfeuLrg+RrcKNSVirKC85JDjFJho4VHV8/s=","treeSize":"2461073484","hashes":["7RtIiRbCgLHRs0aRnkXT8Wf82c4M+Fud0ooodmPlDLA=","p8Mqi1VWyBEfV22HDv1WsSo6dqOBAgEYPPUlSBaKhfU=","xeoOmGXglW8feXvsEyQ/FeAmiRX3eT7IQrJ1+3YOMF0=","WfF6D/sWEPwUJtf6CrUr55BiTTNRUkwx9Dg0kX9Z+/8=","/pzrkLFRwt/XMVRmL7s6Ii88QiOLu5drCOp/UggZ7TU=","G1R9F5B2KizFA2NyhDznjNKXPOF1SDmbGHz+omLG7TY=","RZ7XwGuqMr5gDUh2HpUcaXp+AmIiEcPJiMui4GLJE7o=","mBm+vQtn0C4thMnlTnxfxqowq1dXsPBCKaJ85da3JeU=","b80/J/68RC8/tx5xRdlKk6MmTpZiVRotquWBrE/z1pI=","SndbMKVtcTenAkwi2JBfGzD+mhexp1qJbRIY+A1JRIU=","xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n2461073484\njybjX7uHrfeuLrg+RrcKNSVirKC85JDjFJho4VHV8/s=\n\n— rekor.sigstore.dev wNI9ajBFAiEA4VJ5SaL7eV+WEjMLyfaEYvaIwHdZITAosh2tUdzDIbcCIEhAH+05Jx0GcVroTSrYXf3oNKxBTVAnOJzrUuGhGM++\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiJlZTZmMWY2MDlhYzI5ZTBmZGU4MjM1N2IyMjQ5NGUwOGUyMGFiYWNmMjdkYzNjZTkzNzgxYTcwOGM3NGEyZTNhIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJUUNUOHlDUEFhbDluL0JqdS9DckhiL2xtK1NRcFMxU3djaGd3ODRzRm5OREJ3SWdQbjFPUEpYem1VUDZpQkVNdWEvL3BPVTBKcXpnKzlRNHVpVTNNVHo3UVlnPSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaFRWRU5EUW5SRFowRjNTVUpCWjBsVlVrRTBjSE5JT0UxbmJuVlhXVzgwTVV4bk1rcE5WR1Z3YTJGdmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDlFU1RGTlJHdDNUa1JKZVZkb1kwNU5hbGwzVDBSSk1VMUVhM2hPUkVsNVYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZ4UTNJME1FeHNhVGRTVDFsRWJtOWpXSEl6UWxSYU1rbFFTWE00U1ZVNFFtUnJZelFLVTFVdksydFBVMHhQYlZOVGNXZDRXbFpUYlRWNWNFRllNV2RyWXpkUmVFODVaVFpsWldkWFdYZExWM0k1Vm5kRmIyRlBRMEpsT0hkbloxaHlUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlZtTmtkSENsZzVhQ3RJYlVseFZFWkhla2RrUjJoRFl6RTJkVkJaZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDJGM1dVUldVakJTUVZGSUwwSkhSWGRZTkZwa1lVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKb01Wb3laSEJpYldSdFdWZE9iQXBNTW5Sc1kyMDFiR0pJVFhSWk1qbDBZbGhXZFdGWVVqVk1lVFZ1WVZoU2IyUlhTWFprTWpsNVlUSmFjMkl6WkhwTU1rb3hZVmQ0YTB4dWJHaGlWM2hCQ21OdFZtMWplVGx2V2xkR2EyTjVPWFJaVjJ4MVRVUnJSME5wYzBkQlVWRkNaemM0ZDBGUlJVVkxNbWd3WkVoQ2VrOXBPSFprUnpseVdsYzBkVmxYVGpBS1lWYzVkV041Tlc1aFdGSnZaRmRLTVdNeVZubFpNamwxWkVkV2RXUkROV3BpTWpCM1NIZFpTMHQzV1VKQ1FVZEVkbnBCUWtGblVWSmtNamw1WVRKYWN3cGlNMlJtV2tkc2VtTkhSakJaTW1kM1RtZFpTMHQzV1VKQ1FVZEVkbnBCUWtGM1VXOU5WR2hzVDFSS2JWbHFXVFJQUkZsNVRVUkdiVnB0U1RWTlYwMTRDazU2VG0xTlJFa3hUMVJOTTA1Nll6Tk9WRnBxVG5wcmVscHFRVlJDWjI5eVFtZEZSVUZaVHk5TlFVVkZRa0ZXUTJSWGJITmFSRUZ5UW1kdmNrSm5SVVVLUVZsUEwwMUJSVVpDUWpGdlpGZGtibUZYTlc1YWJVWnFXbE01Y2xwWVNuVmFWM2g2VEZkT2RtSlhNVEZpYld3d1pWUkJaRUpuYjNKQ1owVkZRVmxQTHdwTlFVVkhRa0U1ZVZwWFducE1NbWhzV1ZkU2Vrd3lNV2hoVnpSM1QzZFpTMHQzV1VKQ1FVZEVkbnBCUWtOQlVYUkVRM1J2WkVoU2QyTjZiM1pNTTFKMkNtRXlWblZNYlVacVpFZHNkbUp1VFhWYU1td3dZVWhXYVdSWVRteGpiVTUyWW01U2JHSnVVWFZaTWpsMFRVY3dSME5wYzBkQlVWRkNaemM0ZDBGUmEwVUtXSGQ0WkdGSVVqQmpTRTAyVEhrNWJtRllVbTlrVjBsMVdUSTVkRXd5YURGYU1tUndZbTFrYlZsWFRteE1NblJzWTIwMWJHSklUWFJaTWpsMFlsaFdkUXBoV0ZJMVRIazFibUZZVW05a1YwbDJaREk1ZVdFeVduTmlNMlI2VERKS01XRlhlR3RNYm14b1lsZDRRV050Vm0xamVUbHZXbGRHYTJONU9YUlpWMngxQ2sxRVowZERhWE5IUVZGUlFtYzNPSGRCVVc5RlMyZDNiMDFVYUd4UFZFcHRXV3BaTkU5RVdYbE5SRVp0V20xSk5VMVhUWGhPZWs1dFRVUkpNVTlVVFRNS1RucGpNMDVVV21wT2VtdDZXbXBCWWtKbmIzSkNaMFZGUVZsUEwwMUJSVXhDUVRCTlF6Tk9iR0pIV1hSaFJ6bDZaRWRXYTAxRlFVZERhWE5IUVZGUlFncG5OemgzUVZGM1JVMW5kM2RoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlUxRVowZERhWE5IUVZGUlFtYzNPSGRCVVRCRlMyZDNiMDFVYUd4UFZFcHRXV3BaTkU5RVdYbE5SRVp0V20xSk5VMVhUWGdLVG5wT2JVMUVTVEZQVkUwelRucGpNMDVVV21wT2VtdDZXbXBCWmtKbmIzSkNaMFZGUVZsUEwwMUJSVTlDUWtWTlJETktiRnB1VFhaaFIxWm9Xa2hOZGdwaVYwWndZbXBCWVVKbmIzSkNaMFZGUVZsUEwwMUJSVkJDUVhkTlEycEZkMDU2UlRCT2VsVXhUV3ByZDB4bldVdExkMWxDUWtGSFJIWjZRVUpGUVZGbkNrUkNOVzlrU0ZKM1kzcHZka3d5WkhCa1IyZ3hXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWM1IwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWUlVVc0tSRUZuZVU1VVkzbE5SR013VFhwQ2RFSm5iM0pDWjBWRlFWbFBMMDFCUlZOQ1JqaE5XRmRvTUdSSVFucFBhVGgyV2pKc01HRklWbWxNYlU1MllsTTVid3BrVjJSdVlWYzFibHB0Um1wYVV6bHlXbGhLZFZwWGVIcE1WMDUyWWxjeE1XSnRiREJsVXpoMVdqSnNNR0ZJVm1sTU0yUjJZMjEwYldKSE9UTmplVGxwQ21SWGJITmFRelUxV1ZjeGMxRklTbXhhYmsxMllVZFdhRnBJVFhaaVYwWndZbXBCTkVKbmIzSkNaMFZGUVZsUEwwMUJSVlJDUTI5TlMwUkZORnBVYTNrS1dtMUpNazlFWnpKTmFrRjRXbTFhYVU5VVJtcE5WR042V21wQmVVNVVhM3BPZW1NelRucFZNbGw2WXpWTk1sbDNTVkZaUzB0M1dVSkNRVWRFZG5wQlFncEdRVkZVUkVKR00ySXpTbkphYlhoMlpERTVhMkZZVG5kWldGSnFZVVJDYTBKbmIzSkNaMFZGUVZsUEwwMUJSVlpDUmxsTlZrZG9NR1JJUW5wUGFUaDJDbG95YkRCaFNGWnBURzFPZG1KVE9XOWtWMlJ1WVZjMWJscHRSbXBhVXpseVdsaEtkVnBYZUhwTVYwNTJZbGN4TVdKdGJEQmxVemxvV1ROU2NHSXlOWG9LVEROS01XSnVUWFpOZWtrMFRXcGpNMDlFVVRKT2FtdDJXVmhTTUZwWE1YZGtTRTEyVFZSQlYwSm5iM0pDWjBWRlFWbFBMMDFCUlZkQ1FXZE5RbTVDTVFwWmJYaHdXWHBDUjBKbmIzSkNaMFZGUVZsUEwwMUJSVmxDUkdkTlRtNUtiR05IT0RaaFNGWnVXakpzZFZveVdtaFpNbFYyWVRKV2VXSnRWbk5qZVRGcUNtSXlNWFJrVnpWd1pFaHJObU50Vm0xUGJrcHNXbTVOZG1GSFZtaGFTRTEyWWxkR2NHSnFRMEpwVVZsTFMzZFpRa0pCU0ZkbFVVbEZRV2RTTjBKSWEwRUtaSGRDTVVGT01EbE5SM0pIZUhoRmVWbDRhMlZJU214dVRuZExhVk5zTmpRemFubDBMelJsUzJOdlFYWkxaVFpQUVVGQlFtOUVaM0F5YWxGQlFVRlJSQXBCUlZsM1VrRkpaMGx4VG5ZMU1pdFhVWGgyY0daS1oybFhiRzFoTkRoT2JuVkdWbEZrZVRNMlpXOTRhblY1YWtOUlpFRkRTVVJKWTBad2VuQjNOa3QyQ2pWQlpHaG1hVkZPY1VWNmMwUnNNbVoyWTFkR2FEZFViWFZzVGpOb2FISTBUVUZ2UjBORGNVZFRUVFE1UWtGTlJFRXlZMEZOUjFGRFRVWkdWaXRCTUc0S1dVeHFaRWRYZFVFeFYyRTFTMFJ6Um1rM1RsZFVSVWN6UjNGdWNVNVdjemRtTUZSbVpWaFZSRGhwV1V4bVRETk9TR1l3ZUhwdk5EVjNaMGwzU21GV05RcHhTMEZRYjFkeFIzRnhaV2gzTmtOUVdsWmpMMjk0Y1VodlNYZFpja1pMSzI5WVZuWndTMUY2V2twSk4wSTBiREJYTW14TFF6aDZUbWxzYWpNS0xTMHRMUzFGVGtRZ1EwVlNWRWxHU1VOQlZFVXRMUzB0TFFvPSJ9fX19"}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyDADAgEAMIICvwYJKoZIhvcNAQcCoIICsDCCAqwCAQMxDTALBglghkgBZQMEAgEwgbcGCyqGSIb3DQEJEAEEoIGnBIGkMIGhAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgBrluxgYJJQ+VXpWuiIG1CcPy4CqlqGZ5orDHNHcBZt8CFFayJbsXTb+hlc8vuTyJtX4zk61iGA8yMDI2MDgyNTA5MDQyMlowAwIBAaAypDAwLjEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MRUwEwYDVQQDEwxzaWdzdG9yZS10c2GgADGCAdowggHWAgEBMFEwOTEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MSAwHgYDVQQDExdzaWdzdG9yZS10c2Etc2VsZnNpZ25lZAIUOhNULwyQYe68wUMvy4qOiyojiwwwCwYJYIZIAWUDBAIBoIH8MBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAcBgkqhkiG9w0BCQUxDxcNMjYwODI1MDkwNDIyWjAvBgkqhkiG9w0BCQQxIgQgfiMPG0HAhX1fhUzII2tzRtrImOtrhXyoSalsa+K+T+owgY4GCyqGSIb3DQEJEAIvMX8wfTB7MHkEIIX5J7wHq2LKw7RDVsEO/IGyxog/2nq55thw2dE6zQW3MFUwPaQ7MDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAoGCCqGSM49BAMCBGYwZAIwDaR2g4vhTmhn+a9bfPw9lpHk44cWjGjHOlNsHEhIxao9y1KFyzyhueEjJSC7e9idAjAZhDRmoW/1Y5QM5WOMaD6LgpMdgo39K5Y3MmYtebu95LgYJY/1s1ajcBEEvVGR8Hw="}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"7m8fYJrCng/egjV7IklOCOIKus8n3DzpN4GnCMdKLjo="},"signature":"MEUCIQCT8yCPAal9n/Bju/CrHb/lm+SQpS1Swchgw84sFnNDBwIgPn1OPJXzmUP6iBEMua//pOU0Jqzg+9Q4uiU3MTz7QYg="}}
 
1
+ {"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"MIIHSzCCBtCgAwIBAgIUFnFOQN7uJssvbiXCaawRDN/D3v4wCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwODI1MTIxOTUwWhcNMjYwODI1MTIyOTUwWjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAELzuHLO359HEqG04AWhmqA9/Tn2OUzC+AlJcZ466Gc+8Uub12FCMNss8B+Sl8xfCWAhffHIJKM4q5PuRzqOqNeKOCBe8wggXrMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQURMMYkodFWqTJRMaEx229QX5LCmkwHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wawYDVR0RAQH/BGEwX4ZdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDkGCisGAQQBg78wAQEEK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wHwYKKwYBBAGDvzABAgQRd29ya2Zsb3dfZGlzcGF0Y2gwNgYKKwYBBAGDvzABAwQoYzRkMGRjNTY2NjFiYWRiOWNjNDdiZGU2NDdlMDhmZTNiNGJmNzQ1ODATBgorBgEEAYO/MAEEBAVCdWlsZDArBgorBgEEAYO/MAEFBB1odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTAdBgorBgEEAYO/MAEGBA9yZWZzL2hlYWRzL21haW4wOwYKKwYBBAGDvzABCAQtDCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMG0GCisGAQQBg78wAQkEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wAQoEKgwoYzRkMGRjNTY2NjFiYWRiOWNjNDdiZGU2NDdlMDhmZTNiNGJmNzQ1ODAbBgorBgEEAYO/MAELBA0MC3NlbGYtaG9zdGVkMEAGCisGAQQBg78wAQwEMgwwaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MDgGCisGAQQBg78wAQ0EKgwoYzRkMGRjNTY2NjFiYWRiOWNjNDdiZGU2NDdlMDhmZTNiNGJmNzQ1ODAfBgorBgEEAYO/MAEOBBEMD3JlZnMvaGVhZHMvbWFpbjAaBgorBgEEAYO/MAEPBAwMCjEwNzE0NzU1MjkwLgYKKwYBBAGDvzABEAQgDB5odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2UwGAYKKwYBBAGDvzABEQQKDAgyNTcyMDc0MzBtBgorBgEEAYO/MAESBF8MXWh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS8uZ2l0aHViL3dvcmtmbG93cy9idWlsZC55YW1sQHJlZnMvaGVhZHMvbWFpbjA4BgorBgEEAYO/MAETBCoMKGM0ZDBkYzU2NjYxYmFkYjljYzQ3YmRlNjQ3ZTA4ZmUzYjRiZjc0NTgwIQYKKwYBBAGDvzABFAQTDBF3b3JrZmxvd19kaXNwYXRjaDBkBgorBgEEAYO/MAEVBFYMVGh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS9hY3Rpb25zL3J1bnMvMzI4NDQ2ODk4OTQvYXR0ZW1wdHMvMTAWBgorBgEEAYO/MAEWBAgMBnB1YmxpYzBGBgorBgEEAYO/MAEYBDgMNnJlcG86aHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHk6cmVmOnJlZnMvaGVhZHMvbWFpbjCBiQYKKwYBBAHWeQIEAgR7BHkAdwB1AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABoDjczxIAAAQDAEYwRAIgKlOon84AnvCVrXqZeHDMoGAvIT7ME33nUzPiy4gW9ZICIEFp5fjPLiA6iaBxIWVL9bQ6siPjjBaqcakx5Y24fPMkMAoGCCqGSM49BAMDA2kAMGYCMQDkOMdIbuYsMZ9RUIWRQdH4kp0H+MjhrdVZAHpPJBaiN91cXivCpSAUJoxzfpwIHtMCMQCp49Va1yYt9vy3cIB4yQI/jJA22Zd9hQsBQQacmTZrMmiIdoUSwQbMMJIDAXxu7lw="},"tlogEntries":[{"logIndex":"2583301044","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1787660390","inclusionPromise":{"signedEntryTimestamp":"MEUCIQDkO9m4Tl19c8iteMaIXPXB/uSmtag47s9WJuLHlsjDEgIgc9lVN//CEhqPE6CL7SfD9g0U7VyEj0iNFtQF96EfDSk="},"inclusionProof":{"logIndex":"2461396782","rootHash":"d18bbsE9PjlmjfnUJcACRTOgcpaZHGieCKgPwgUwZds=","treeSize":"2461396784","hashes":["rPvu9///nLz+gh1zjBlTy8zC38dE6rU8mfa5/CC/yqY=","NFilNnXKaLOXJr3n2WhRYP9i041CIJeDlvuqlzQ6e74=","WmIMG7asN5/crmb0Tm+GYiQGTyvZVQIwNgYs1akCGlY=","VnjBsDs2FMxUskVhMZAggxN5nK97K6ZChSBf5Oni0Gg=","j0jxmcYIDfzscLLup18JrUF+HnFqxPFULBBDxDLqfSQ=","M1KvBxaBWRZCfg7zEqvTKXXoAv5EZdP6wtNwhsr1HU0=","rJMFK17JIR2K3LvDkBdSnu34bvtB3vXQPdwQg0pZ8co=","sBRt94T302PGfFAkqNx12yVeZQ2wK8MXBkspHV8OBEU=","bBUTypOI8GgjhxRM30SIZoDfZopPulgZgxKAp1agI1Q=","EY8T0lxQDrmYoWBGpKNGttaHfKmpfqKcWqSNF4XOQKE=","T4Jz+m9vO48rOpMSsdZSW28/bgHR8prz7JeNX1s7WiQ=","EXKrSbeG2qm5APD5QSDN66X7UHz9OSofiW9PyNU7fPM=","cjIeeutzThxIPTlFFHJqa7bAzn3k2FzK8Nrdd56OWvE=","+pNXWGIXzU1dqSy/aePHKYtSkDnFinI+/bL5HnurJ6w=","G1R9F5B2KizFA2NyhDznjNKXPOF1SDmbGHz+omLG7TY=","RZ7XwGuqMr5gDUh2HpUcaXp+AmIiEcPJiMui4GLJE7o=","mBm+vQtn0C4thMnlTnxfxqowq1dXsPBCKaJ85da3JeU=","b80/J/68RC8/tx5xRdlKk6MmTpZiVRotquWBrE/z1pI=","SndbMKVtcTenAkwi2JBfGzD+mhexp1qJbRIY+A1JRIU=","xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n2461396784\nd18bbsE9PjlmjfnUJcACRTOgcpaZHGieCKgPwgUwZds=\n\n— rekor.sigstore.dev wNI9ajBFAiAGdeMU88F0/iVOt7mBsHYzyxmxx/2gkgWaP+Tf8WDspwIhALfLBDfHzUWcQJ4pNbTUZVc2HwU8GIRjQnBU/BzLom0T\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiJlZWJhZTg2OGYxM2U2NTc3YTA1MzY1MWY4MTQ2OTYzNTZlZDlmYjEyMDM2MzAwMTBiNGQ4MjU4NmVhMjRkY2E5In19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FUUNJRXRQcVRVVmlPN3RleTlPUDZWVWpuSXRXd2JvbFVZTExpS3AyZjFzbmMzWEFpQVNUbjlYMXVCejFhU0JpR0x2eThyc1dNc0tmdnZ5dk5WcjY0RFhGc0p3d1E9PSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaFRla05EUW5SRFowRjNTVUpCWjBsVlJtNUdUMUZPTjNWS2MzTjJZbWxZUTJGaGQxSkVUaTlFTTNZMGQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDlFU1RGTlZFbDRUMVJWZDFkb1kwNU5hbGwzVDBSSk1VMVVTWGxQVkZWM1YycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZNZW5WSVRFOHpOVGxJUlhGSE1EUkJWMmh0Y1VFNUwxUnVNazlWZWtNclFXeEtZMW9LTkRZMlIyTXJPRlYxWWpFeVJrTk5Ubk56T0VJclUydzRlR1pEVjBGb1ptWklTVXBMVFRSeE5WQjFVbnB4VDNGT1pVdFBRMEpsT0hkbloxaHlUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlZTVFUxWkNtdHZaRVpYY1ZSS1VrMWhSWGd5TWpsUldEVk1RMjFyZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDJGM1dVUldVakJTUVZGSUwwSkhSWGRZTkZwa1lVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKb01Wb3laSEJpYldSdFdWZE9iQXBNTW5Sc1kyMDFiR0pJVFhSWk1qbDBZbGhXZFdGWVVqVk1lVFZ1WVZoU2IyUlhTWFprTWpsNVlUSmFjMkl6WkhwTU1rb3hZVmQ0YTB4dWJHaGlWM2hCQ21OdFZtMWplVGx2V2xkR2EyTjVPWFJaVjJ4MVRVUnJSME5wYzBkQlVWRkNaemM0ZDBGUlJVVkxNbWd3WkVoQ2VrOXBPSFprUnpseVdsYzBkVmxYVGpBS1lWYzVkV041Tlc1aFdGSnZaRmRLTVdNeVZubFpNamwxWkVkV2RXUkROV3BpTWpCM1NIZFpTMHQzV1VKQ1FVZEVkbnBCUWtGblVWSmtNamw1WVRKYWN3cGlNMlJtV2tkc2VtTkhSakJaTW1kM1RtZFpTMHQzV1VKQ1FVZEVkbnBCUWtGM1VXOVplbEpyVFVkU2FrNVVXVEpPYWtacFdWZFNhVTlYVG1wT1JHUnBDbHBIVlRKT1JHUnNUVVJvYlZwVVRtbE9SMHB0VG5wUk1VOUVRVlJDWjI5eVFtZEZSVUZaVHk5TlFVVkZRa0ZXUTJSWGJITmFSRUZ5UW1kdmNrSm5SVVVLUVZsUEwwMUJSVVpDUWpGdlpGZGtibUZYTlc1YWJVWnFXbE01Y2xwWVNuVmFWM2g2VEZkT2RtSlhNVEZpYld3d1pWUkJaRUpuYjNKQ1owVkZRVmxQTHdwTlFVVkhRa0U1ZVZwWFducE1NbWhzV1ZkU2Vrd3lNV2hoVnpSM1QzZFpTMHQzV1VKQ1FVZEVkbnBCUWtOQlVYUkVRM1J2WkVoU2QyTjZiM1pNTTFKMkNtRXlWblZNYlVacVpFZHNkbUp1VFhWYU1td3dZVWhXYVdSWVRteGpiVTUyWW01U2JHSnVVWFZaTWpsMFRVY3dSME5wYzBkQlVWRkNaemM0ZDBGUmEwVUtXSGQ0WkdGSVVqQmpTRTAyVEhrNWJtRllVbTlrVjBsMVdUSTVkRXd5YURGYU1tUndZbTFrYlZsWFRteE1NblJzWTIwMWJHSklUWFJaTWpsMFlsaFdkUXBoV0ZJMVRIazFibUZZVW05a1YwbDJaREk1ZVdFeVduTmlNMlI2VERKS01XRlhlR3RNYm14b1lsZDRRV050Vm0xamVUbHZXbGRHYTJONU9YUlpWMngxQ2sxRVowZERhWE5IUVZGUlFtYzNPSGRCVVc5RlMyZDNiMWw2VW10TlIxSnFUbFJaTWs1cVJtbFpWMUpwVDFkT2FrNUVaR2xhUjFVeVRrUmtiRTFFYUcwS1dsUk9hVTVIU20xT2VsRXhUMFJCWWtKbmIzSkNaMFZGUVZsUEwwMUJSVXhDUVRCTlF6Tk9iR0pIV1hSaFJ6bDZaRWRXYTAxRlFVZERhWE5IUVZGUlFncG5OemgzUVZGM1JVMW5kM2RoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlUxRVowZERhWE5IUVZGUlFtYzNPSGRCVVRCRlMyZDNiMWw2VW10TlIxSnFUbFJaTWs1cVJtbFpWMUpwVDFkT2FrNUVaR2tLV2tkVk1rNUVaR3hOUkdodFdsUk9hVTVIU20xT2VsRXhUMFJCWmtKbmIzSkNaMFZGUVZsUEwwMUJSVTlDUWtWTlJETktiRnB1VFhaaFIxWm9Xa2hOZGdwaVYwWndZbXBCWVVKbmIzSkNaMFZGUVZsUEwwMUJSVkJDUVhkTlEycEZkMDU2UlRCT2VsVXhUV3ByZDB4bldVdExkMWxDUWtGSFJIWjZRVUpGUVZGbkNrUkNOVzlrU0ZKM1kzcHZka3d5WkhCa1IyZ3hXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWM1IwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWUlVVc0tSRUZuZVU1VVkzbE5SR013VFhwQ2RFSm5iM0pDWjBWRlFWbFBMMDFCUlZOQ1JqaE5XRmRvTUdSSVFucFBhVGgyV2pKc01HRklWbWxNYlU1MllsTTVid3BrVjJSdVlWYzFibHB0Um1wYVV6bHlXbGhLZFZwWGVIcE1WMDUyWWxjeE1XSnRiREJsVXpoMVdqSnNNR0ZJVm1sTU0yUjJZMjEwYldKSE9UTmplVGxwQ21SWGJITmFRelUxV1ZjeGMxRklTbXhhYmsxMllVZFdhRnBJVFhaaVYwWndZbXBCTkVKbmIzSkNaMFZGUVZsUEwwMUJSVlJDUTI5TlMwZE5NRnBFUW1zS1dYcFZNazVxV1hoWmJVWnJXV3BzYWxsNlVUTlpiVkpzVG1wUk0xcFVRVFJhYlZWNldXcFNhVnBxWXpCT1ZHZDNTVkZaUzB0M1dVSkNRVWRFZG5wQlFncEdRVkZVUkVKR00ySXpTbkphYlhoMlpERTVhMkZZVG5kWldGSnFZVVJDYTBKbmIzSkNaMFZGUVZsUEwwMUJSVlpDUmxsTlZrZG9NR1JJUW5wUGFUaDJDbG95YkRCaFNGWnBURzFPZG1KVE9XOWtWMlJ1WVZjMWJscHRSbXBhVXpseVdsaEtkVnBYZUhwTVYwNTJZbGN4TVdKdGJEQmxVemxvV1ROU2NHSXlOWG9LVEROS01XSnVUWFpOZWtrMFRrUlJNazlFYXpSUFZGRjJXVmhTTUZwWE1YZGtTRTEyVFZSQlYwSm5iM0pDWjBWRlFWbFBMMDFCUlZkQ1FXZE5RbTVDTVFwWmJYaHdXWHBDUjBKbmIzSkNaMFZGUVZsUEwwMUJSVmxDUkdkTlRtNUtiR05IT0RaaFNGWnVXakpzZFZveVdtaFpNbFYyWVRKV2VXSnRWbk5qZVRGcUNtSXlNWFJrVnpWd1pFaHJObU50Vm0xUGJrcHNXbTVOZG1GSFZtaGFTRTEyWWxkR2NHSnFRMEpwVVZsTFMzZFpRa0pCU0ZkbFVVbEZRV2RTTjBKSWEwRUtaSGRDTVVGT01EbE5SM0pIZUhoRmVWbDRhMlZJU214dVRuZExhVk5zTmpRemFubDBMelJsUzJOdlFYWkxaVFpQUVVGQlFtOUVhbU42ZUVsQlFVRlJSQXBCUlZsM1VrRkpaMHRzVDI5dU9EUkJiblpEVm5KWWNWcGxTRVJOYjBkQmRrbFVOMDFGTXpOdVZYcFFhWGswWjFjNVdrbERTVVZHY0RWbWFsQk1hVUUyQ21saFFuaEpWMVpNT1dKUk5uTnBVR3BxUW1GeFkyRnJlRFZaTWpSbVVFMXJUVUZ2UjBORGNVZFRUVFE1UWtGTlJFRXlhMEZOUjFsRFRWRkVhMDlOWkVrS1luVlpjMDFhT1ZKVlNWZFNVV1JJTkd0d01FZ3JUV3BvY21SV1drRkljRkJLUW1GcFRqa3hZMWhwZGtOd1UwRlZTbTk0ZW1ad2QwbElkRTFEVFZGRGNBbzBPVlpoTVhsWmREbDJlVE5qU1VJMGVWRkpMMnBLUVRJeVdtUTVhRkZ6UWxGUllXTnRWRnB5VFcxcFNXUnZWVk4zVVdKTlRVcEpSRUZZZUhVM2JIYzlDaTB0TFMwdFJVNUVJRU5GVWxSSlJrbERRVlJGTFMwdExTMEsifX19fQ=="}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyjADAgEAMIICwQYJKoZIhvcNAQcCoIICsjCCAq4CAQMxDTALBglghkgBZQMEAgEwgbgGCyqGSIb3DQEJEAEEoIGoBIGlMIGiAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgKI/oPhVrHmUFyIE+y2JgQTAL/+9krEqnMSlDCQzQjcACFQD8rb/iyffw+si3GwcMkoGa9kyhSRgPMjAyNjA4MjUxMjE5NTBaMAMCAQGgMqQwMC4xFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEVMBMGA1UEAxMMc2lnc3RvcmUtdHNhoAAxggHbMIIB1wIBATBRMDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAsGCWCGSAFlAwQCAaCB/DAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTI2MDgyNTEyMTk1MFowLwYJKoZIhvcNAQkEMSIEIHmWmFFIMV2oib4VeuU2NpF2M4p3ca2Nmq8Rvzsfv+ncMIGOBgsqhkiG9w0BCRACLzF/MH0wezB5BCCF+Se8B6tiysO0Q1bBDvyBssaIP9p6uebYcNnROs0FtzBVMD2kOzA5MRUwEwYDVQQKEwxzaWdzdG9yZS5kZXYxIDAeBgNVBAMTF3NpZ3N0b3JlLXRzYS1zZWxmc2lnbmVkAhQ6E1QvDJBh7rzBQy/Lio6LKiOLDDAKBggqhkjOPQQDAgRnMGUCMFGp3gZJXhP85ltPV5pkkhnozPgDaI0pcqrQngkqHvQAGcrMdJVl33ER4GEAmOfHnwIxAOCw+jrF4NHoYpd31+muglNn7577GBu/86LYACkL3ELI4rDZJchhVuPfRuOyV6VLSg=="}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"7rroaPE+ZXegU2UfgUaWNW7Z+xIDYwAQtNglhuok3Kk="},"signature":"MEQCIEtPqTUViO7tey9OP6VUjnItWwbolUYLLiKp2f1snc3XAiASTn9X1uBz1aSBiGLvy8rsWMsKfvvyvNVr64DXFsJwwQ=="}}
build/torch212-cxx11-cu126-aarch64-linux/xpu_fused_moe.py CHANGED
@@ -26,7 +26,7 @@ def _register_xpu_fake_kernels():
26
 
27
  _register_if_available(
28
  "cutlass_grouped_gemm_interface",
29
- lambda ptr_A, ptr_B, ptr_scales, ptr_bias, ptr_D, expert_first_token_offset, N, K, num_experts, is_B_int4, is_B_mxfp4: ptr_D,
30
  )
31
 
32
  _register_if_available(
@@ -106,12 +106,13 @@ def cutlass_grouped_gemm(input_A, input_B, bias, output, expert_token_count, n,
106
  K=k,
107
  num_experts=num_experts,
108
  is_B_int4=False,
109
- is_B_mxfp4=False)
 
110
 
111
 
112
  def cutlass_grouped_gemm_xe2(input_A, input_B, scales, bias, output,
113
  num_rows_per_expert, n, k, num_experts, is_B_int4,
114
- is_B_mxfp4):
115
  expert_first_token_offset = torch.cat([
116
  torch.tensor([0],
117
  dtype=num_rows_per_expert.dtype,
@@ -129,7 +130,8 @@ def cutlass_grouped_gemm_xe2(input_A, input_B, scales, bias, output,
129
  K=k,
130
  num_experts=num_experts,
131
  is_B_int4=is_B_int4,
132
- is_B_mxfp4=is_B_mxfp4)
 
133
 
134
 
135
  def ceilDiv(a, b):
@@ -206,7 +208,8 @@ def xpu_fused_moe(hidden_states,
206
  ep_size=1,
207
  is_fp8=False,
208
  is_int4=False,
209
- is_mxfp4=False):
 
210
  '''
211
  hidden_states: [num_rows, hidden_size]
212
  w13: [num_experts, 2*inter_size, hidden_size]
@@ -228,6 +231,7 @@ def xpu_fused_moe(hidden_states,
228
  num_experts: int
229
  is_int4: bool
230
  is_mxfp4: bool
 
231
  '''
232
 
233
  # Resolve DTensors to local tensors before passing to custom ops
@@ -266,7 +270,7 @@ def xpu_fused_moe(hidden_states,
266
 
267
  # 4bits support [E, N, K]
268
  # other types [E, K, N]
269
- if not is_int4 and not is_mxfp4:
270
  if not hasattr(w13, 'xpu_fused_moe'):
271
  if needs_transpose:
272
  w13.data = w13.transpose(-1, -2).contiguous()
@@ -389,7 +393,7 @@ def xpu_fused_moe(hidden_states,
389
  ########### gemm1 ##################
390
  input_B = w13
391
 
392
- if not is_fp8 and not is_int4 and not is_mxfp4:
393
  ops.cutlass_grouped_gemm_interface(
394
  ptr_A=gemm1_input,
395
  ptr_B=input_B,
@@ -401,7 +405,8 @@ def xpu_fused_moe(hidden_states,
401
  K=hidden_size,
402
  num_experts=num_experts_per_node,
403
  is_B_int4=is_int4,
404
- is_B_mxfp4=is_mxfp4)
 
405
  else:
406
  ops.cutlass_grouped_gemm_interface(
407
  ptr_A=gemm1_input,
@@ -414,7 +419,8 @@ def xpu_fused_moe(hidden_states,
414
  K=hidden_size,
415
  num_experts=num_experts_per_node,
416
  is_B_int4=is_int4,
417
- is_B_mxfp4=is_mxfp4)
 
418
 
419
  # act
420
  act_output = torch.empty((num_moe_inputs, inter_size),
@@ -435,7 +441,7 @@ def xpu_fused_moe(hidden_states,
435
  gemm2_output = torch.empty((num_moe_inputs, hidden_size),
436
  dtype=hidden_states.dtype,
437
  device=hidden_states.device)
438
- if not is_fp8 and not is_int4 and not is_mxfp4:
439
  ops.cutlass_grouped_gemm_interface(
440
  ptr_A=input_A,
441
  ptr_B=input_B,
@@ -447,7 +453,8 @@ def xpu_fused_moe(hidden_states,
447
  K=inter_size,
448
  num_experts=num_experts_per_node,
449
  is_B_int4=is_int4,
450
- is_B_mxfp4=is_mxfp4)
 
451
  else:
452
  ops.cutlass_grouped_gemm_interface(
453
  ptr_A=input_A,
@@ -460,7 +467,8 @@ def xpu_fused_moe(hidden_states,
460
  K=inter_size,
461
  num_experts=num_experts_per_node,
462
  is_B_int4=is_int4,
463
- is_B_mxfp4=is_mxfp4)
 
464
 
465
  ops.moe_gather(output, gemm2_output, topk_weights,
466
  permuted_row_to_unpermuted_row,
@@ -633,6 +641,7 @@ class MegaBlocksMoeMLP(torch.nn.Module):
633
  is_fp8 = getattr(self.experts, "is_fp8", False)
634
  is_int4 = getattr(self.experts, "is_int4", False)
635
  is_mxfp4 = getattr(self.experts, "is_mxfp4", False)
 
636
 
637
  w13_scales = getattr(self.experts, "gate_up_proj_scales", None)
638
  w2_scales = getattr(self.experts, "down_proj_scales", None)
@@ -685,6 +694,7 @@ class MegaBlocksMoeMLP(torch.nn.Module):
685
  is_fp8=is_fp8,
686
  is_int4=is_int4,
687
  is_mxfp4=is_mxfp4,
 
688
  )
689
 
690
  # All-reduce across EP group to combine partial expert outputs
 
26
 
27
  _register_if_available(
28
  "cutlass_grouped_gemm_interface",
29
+ lambda ptr_A, ptr_B, ptr_scales, ptr_bias, ptr_D, expert_first_token_offset, N, K, num_experts, is_B_int4, is_B_mxfp4, is_B_mxfp8=False: ptr_D,
30
  )
31
 
32
  _register_if_available(
 
106
  K=k,
107
  num_experts=num_experts,
108
  is_B_int4=False,
109
+ is_B_mxfp4=False,
110
+ is_B_mxfp8=False)
111
 
112
 
113
  def cutlass_grouped_gemm_xe2(input_A, input_B, scales, bias, output,
114
  num_rows_per_expert, n, k, num_experts, is_B_int4,
115
+ is_B_mxfp4, is_B_mxfp8=False):
116
  expert_first_token_offset = torch.cat([
117
  torch.tensor([0],
118
  dtype=num_rows_per_expert.dtype,
 
130
  K=k,
131
  num_experts=num_experts,
132
  is_B_int4=is_B_int4,
133
+ is_B_mxfp4=is_B_mxfp4,
134
+ is_B_mxfp8=is_B_mxfp8)
135
 
136
 
137
  def ceilDiv(a, b):
 
208
  ep_size=1,
209
  is_fp8=False,
210
  is_int4=False,
211
+ is_mxfp4=False,
212
+ is_mxfp8=False):
213
  '''
214
  hidden_states: [num_rows, hidden_size]
215
  w13: [num_experts, 2*inter_size, hidden_size]
 
231
  num_experts: int
232
  is_int4: bool
233
  is_mxfp4: bool
234
+ is_mxfp8: bool
235
  '''
236
 
237
  # Resolve DTensors to local tensors before passing to custom ops
 
270
 
271
  # 4bits support [E, N, K]
272
  # other types [E, K, N]
273
+ if not is_int4 and not is_mxfp4 and not is_mxfp8:
274
  if not hasattr(w13, 'xpu_fused_moe'):
275
  if needs_transpose:
276
  w13.data = w13.transpose(-1, -2).contiguous()
 
393
  ########### gemm1 ##################
394
  input_B = w13
395
 
396
+ if not is_fp8 and not is_int4 and not is_mxfp4 and not is_mxfp8:
397
  ops.cutlass_grouped_gemm_interface(
398
  ptr_A=gemm1_input,
399
  ptr_B=input_B,
 
405
  K=hidden_size,
406
  num_experts=num_experts_per_node,
407
  is_B_int4=is_int4,
408
+ is_B_mxfp4=is_mxfp4,
409
+ is_B_mxfp8=is_mxfp8)
410
  else:
411
  ops.cutlass_grouped_gemm_interface(
412
  ptr_A=gemm1_input,
 
419
  K=hidden_size,
420
  num_experts=num_experts_per_node,
421
  is_B_int4=is_int4,
422
+ is_B_mxfp4=is_mxfp4,
423
+ is_B_mxfp8=is_mxfp8)
424
 
425
  # act
426
  act_output = torch.empty((num_moe_inputs, inter_size),
 
441
  gemm2_output = torch.empty((num_moe_inputs, hidden_size),
442
  dtype=hidden_states.dtype,
443
  device=hidden_states.device)
444
+ if not is_fp8 and not is_int4 and not is_mxfp4 and not is_mxfp8:
445
  ops.cutlass_grouped_gemm_interface(
446
  ptr_A=input_A,
447
  ptr_B=input_B,
 
453
  K=inter_size,
454
  num_experts=num_experts_per_node,
455
  is_B_int4=is_int4,
456
+ is_B_mxfp4=is_mxfp4,
457
+ is_B_mxfp8=is_mxfp8)
458
  else:
459
  ops.cutlass_grouped_gemm_interface(
460
  ptr_A=input_A,
 
467
  K=inter_size,
468
  num_experts=num_experts_per_node,
469
  is_B_int4=is_int4,
470
+ is_B_mxfp4=is_mxfp4,
471
+ is_B_mxfp8=is_mxfp8)
472
 
473
  ops.moe_gather(output, gemm2_output, topk_weights,
474
  permuted_row_to_unpermuted_row,
 
641
  is_fp8 = getattr(self.experts, "is_fp8", False)
642
  is_int4 = getattr(self.experts, "is_int4", False)
643
  is_mxfp4 = getattr(self.experts, "is_mxfp4", False)
644
+ is_mxfp8 = getattr(self.experts, "is_mxfp8", False)
645
 
646
  w13_scales = getattr(self.experts, "gate_up_proj_scales", None)
647
  w2_scales = getattr(self.experts, "down_proj_scales", None)
 
694
  is_fp8=is_fp8,
695
  is_int4=is_int4,
696
  is_mxfp4=is_mxfp4,
697
+ is_mxfp8=is_mxfp8,
698
  )
699
 
700
  # All-reduce across EP group to combine partial expert outputs
build/torch212-cxx11-cu130-aarch64-linux/{_megablocks_cuda_18e92fb.abi3.so → _megablocks_cuda_c4d0dc5.abi3.so} RENAMED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:e30ee1d0e47e7ae07083094ca1108d2d72a921b046d22788f311d348c0daf5eb
3
  size 10062976
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2b6dfc16c00e8334974dc4937d458c3cc19003d04e3268beadb01a2b9361ab1e
3
  size 10062976
build/torch212-cxx11-cu130-aarch64-linux/_ops.py CHANGED
@@ -1,9 +1,9 @@
1
  import torch
2
- from . import _megablocks_cuda_18e92fb
3
- ops = torch.ops._megablocks_cuda_18e92fb
4
 
5
  def add_op_namespace_prefix(op_name: str):
6
  """
7
  Prefix op by namespace.
8
  """
9
- return f"_megablocks_cuda_18e92fb::{op_name}"
 
1
  import torch
2
+ from . import _megablocks_cuda_c4d0dc5
3
+ ops = torch.ops._megablocks_cuda_c4d0dc5
4
 
5
  def add_op_namespace_prefix(op_name: str):
6
  """
7
  Prefix op by namespace.
8
  """
9
+ return f"_megablocks_cuda_c4d0dc5::{op_name}"
build/torch212-cxx11-cu130-aarch64-linux/metadata.json CHANGED
@@ -1,6 +1,6 @@
1
  {
2
  "name": "megablocks",
3
- "id": "_megablocks_cuda_18e92fb",
4
  "version": 1,
5
  "license": "Apache-2.0",
6
  "python-depends": [],
@@ -48,8 +48,8 @@
48
  "_layers/mpu.py": "BX61/pmqRCVeEMnzpuK8x5NpITBJyZfOawGnDegW1O8=",
49
  "_layers/router.py": "GKC/5//Uf43HT6zXlBTStCMTml2YXn7Jbgq9EgTgDC0=",
50
  "_layers/sharedexpert_registry.py": "GfwHKjbC7lBXYq9kNifp3HudTdZKSqwsFxGxFLc2krw=",
51
- "_megablocks_cuda_18e92fb.abi3.so": "4w7h0OR+euBwgwlMoRCNLXKpIbBG0ieI8xHTSMDa9es=",
52
- "_ops.py": "baTEjeHRnpTSLod30qZST/UL5GNv7vZoGeNwQWakxbo=",
53
  "_version.py": "W3l9oUrnmvfBoIy06Lv0y2ezTQhNU04ug/txHcdWJD0=",
54
  "backend/__init__.py": "4bunAqqjwE93nym8CigHbqVAal7UaYGdONb8lGRfrek=",
55
  "backend/kernels.py": "2UFNTlmSDk3S5y6UW14MJMPVVsVhmozxQ5wFDxtZHhQ=",
@@ -100,7 +100,7 @@
100
  "stk/random/__init__.py": "Gr/+Gl20jJ6fJVRfoAUxEcCPeChILQzrzhKVVAWQsRI=",
101
  "stk/random/random_ops.py": "AluIDj3Vo2ReKAsZz07yydbtndDbJoglekRGIaCoRZE=",
102
  "stk/random/random_ops_test.py": "B+a4Zb+OPhBtpVA48oc09sBL/AAQO9j/YUFI0nnXxzk=",
103
- "xpu_fused_moe.py": "Dp6S3fK/Fc4Sr+Ac94vw2zz0v/QTGp6rYeMIUqE3Y/I="
104
  }
105
  },
106
  "provenance": {
@@ -110,7 +110,7 @@
110
  "dirty": false
111
  },
112
  "kernel": {
113
- "sha": "18e92fb6886201ffb91c173f02593777756c793f",
114
  "dirty": false
115
  }
116
  }
 
1
  {
2
  "name": "megablocks",
3
+ "id": "_megablocks_cuda_c4d0dc5",
4
  "version": 1,
5
  "license": "Apache-2.0",
6
  "python-depends": [],
 
48
  "_layers/mpu.py": "BX61/pmqRCVeEMnzpuK8x5NpITBJyZfOawGnDegW1O8=",
49
  "_layers/router.py": "GKC/5//Uf43HT6zXlBTStCMTml2YXn7Jbgq9EgTgDC0=",
50
  "_layers/sharedexpert_registry.py": "GfwHKjbC7lBXYq9kNifp3HudTdZKSqwsFxGxFLc2krw=",
51
+ "_megablocks_cuda_c4d0dc5.abi3.so": "K238FsAOgzSXTcSTfUWMPMGQA9BOMmi+rbAaK5Nhqx4=",
52
+ "_ops.py": "9NSxkX5lSS5VhF9+hDazP5NimwZK2V/+nIXR0AQxnHA=",
53
  "_version.py": "W3l9oUrnmvfBoIy06Lv0y2ezTQhNU04ug/txHcdWJD0=",
54
  "backend/__init__.py": "4bunAqqjwE93nym8CigHbqVAal7UaYGdONb8lGRfrek=",
55
  "backend/kernels.py": "2UFNTlmSDk3S5y6UW14MJMPVVsVhmozxQ5wFDxtZHhQ=",
 
100
  "stk/random/__init__.py": "Gr/+Gl20jJ6fJVRfoAUxEcCPeChILQzrzhKVVAWQsRI=",
101
  "stk/random/random_ops.py": "AluIDj3Vo2ReKAsZz07yydbtndDbJoglekRGIaCoRZE=",
102
  "stk/random/random_ops_test.py": "B+a4Zb+OPhBtpVA48oc09sBL/AAQO9j/YUFI0nnXxzk=",
103
+ "xpu_fused_moe.py": "sPmuRSpkH1Bmk4hdpz53us8Qpc6yinT9rkld3T8WreI="
104
  }
105
  },
106
  "provenance": {
 
110
  "dirty": false
111
  },
112
  "kernel": {
113
+ "sha": "c4d0dc56661badb9cc47bde647e08fe3b4bf7458",
114
  "dirty": false
115
  }
116
  }
build/torch212-cxx11-cu130-aarch64-linux/metadata.json.sigstore CHANGED
@@ -1 +1 @@
1
- {"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"MIIHTDCCBtKgAwIBAgIULnQN62f0ZKgw5nrfbWUiovJNqSAwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwODI1MDkwNDIyWhcNMjYwODI1MDkxNDIyWjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEsPcar8XEw6QDj0/mxQYKPmqpaB2nI2294BdLOSgQRLZ7THq5ZSnavwGnBGy/JlPNYMry1kgdE6rkKZMA4ZH0rqOCBfEwggXtMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQU/rAEu8Je8dKyGUzHTZKrDWmHXcowHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wawYDVR0RAQH/BGEwX4ZdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDkGCisGAQQBg78wAQEEK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wHwYKKwYBBAGDvzABAgQRd29ya2Zsb3dfZGlzcGF0Y2gwNgYKKwYBBAGDvzABAwQoMThlOTJmYjY4ODYyMDFmZmI5MWMxNzNmMDI1OTM3Nzc3NTZjNzkzZjATBgorBgEEAYO/MAEEBAVCdWlsZDArBgorBgEEAYO/MAEFBB1odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTAdBgorBgEEAYO/MAEGBA9yZWZzL2hlYWRzL21haW4wOwYKKwYBBAGDvzABCAQtDCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMG0GCisGAQQBg78wAQkEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wAQoEKgwoMThlOTJmYjY4ODYyMDFmZmI5MWMxNzNmMDI1OTM3Nzc3NTZjNzkzZjAbBgorBgEEAYO/MAELBA0MC3NlbGYtaG9zdGVkMEAGCisGAQQBg78wAQwEMgwwaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MDgGCisGAQQBg78wAQ0EKgwoMThlOTJmYjY4ODYyMDFmZmI5MWMxNzNmMDI1OTM3Nzc3NTZjNzkzZjAfBgorBgEEAYO/MAEOBBEMD3JlZnMvaGVhZHMvbWFpbjAaBgorBgEEAYO/MAEPBAwMCjEwNzE0NzU1MjkwLgYKKwYBBAGDvzABEAQgDB5odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2UwGAYKKwYBBAGDvzABEQQKDAgyNTcyMDc0MzBtBgorBgEEAYO/MAESBF8MXWh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS8uZ2l0aHViL3dvcmtmbG93cy9idWlsZC55YW1sQHJlZnMvaGVhZHMvbWFpbjA4BgorBgEEAYO/MAETBCoMKDE4ZTkyZmI2ODg2MjAxZmZiOTFjMTczZjAyNTkzNzc3NzU2Yzc5M2YwIQYKKwYBBAGDvzABFAQTDBF3b3JrZmxvd19kaXNwYXRjaDBkBgorBgEEAYO/MAEVBFYMVGh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS9hY3Rpb25zL3J1bnMvMzI4Mjc3ODQ2NjkvYXR0ZW1wdHMvMTAWBgorBgEEAYO/MAEWBAgMBnB1YmxpYzBGBgorBgEEAYO/MAEYBDgMNnJlcG86aHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHk6cmVmOnJlZnMvaGVhZHMvbWFpbjCBiwYKKwYBBAHWeQIEAgR9BHsAeQB3AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABoDgp3KYAAAQDAEgwRgIhAODwJcrxFyD9BJPS8tMj9gyX2EyC4ZnjEjMLMD727N0lAiEAj1rVSxpt1MrYmKB/IGbuXrOteCwZYPmNbHRdExOoAO0wCgYIKoZIzj0EAwMDaAAwZQIxAMTRzghaYbm33facSyXt9Hz99YhtiMdlecnuEgemZnR2wnUGJ3dC5u/a6YLvN6txZwIwFEfsYPxlId+66WVKH8V18//vDWVZtY7mONmVAUbJK90a0CNYDQ3/gtBiaeh9A0Oj"},"tlogEntries":[{"logIndex":"2582977758","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1787648662","inclusionPromise":{"signedEntryTimestamp":"MEYCIQC34tWB7qVrDI/+Z0m+9oqWltUAoj0N9ip2k+KE8a76bAIhAKeYrdyF2Sy1qN+XjScGF3nbdmS7kWYeelLwzCn6Jx0u"},"inclusionProof":{"logIndex":"2461073496","rootHash":"oLv2iYKJbL4WExOfhF3w5qnOul5y5AbSEeZsKggogQE=","treeSize":"2461073501","hashes":["dbxEP0FV7pmflZpDmL2tNGfBEu7LThf9n1nLtX7gRoU=","TkBfw4R6DmmhGyBSLAF97QL7Ybh5/fy+uZf7YAEKtYQ=","uGhTRfSlbIlQ0J74jNi/gxsKrv9Hz6fTSKF0SeeuDaY=","LXY7oyixSK02Tup8gib7uTv5+GWJgYZl3oSUWbhQjv0=","dZXpTcxruTCAqJdmgLe8ubZ/ID5LIHvQl5MoiOdDgLM=","WfF6D/sWEPwUJtf6CrUr55BiTTNRUkwx9Dg0kX9Z+/8=","/pzrkLFRwt/XMVRmL7s6Ii88QiOLu5drCOp/UggZ7TU=","G1R9F5B2KizFA2NyhDznjNKXPOF1SDmbGHz+omLG7TY=","RZ7XwGuqMr5gDUh2HpUcaXp+AmIiEcPJiMui4GLJE7o=","mBm+vQtn0C4thMnlTnxfxqowq1dXsPBCKaJ85da3JeU=","b80/J/68RC8/tx5xRdlKk6MmTpZiVRotquWBrE/z1pI=","SndbMKVtcTenAkwi2JBfGzD+mhexp1qJbRIY+A1JRIU=","xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n2461073501\noLv2iYKJbL4WExOfhF3w5qnOul5y5AbSEeZsKggogQE=\n\n— rekor.sigstore.dev wNI9ajBFAiAmqH2EhcE9gtoPnfLmf2DzVdJ6+OygPKmOCm2EnNVgWQIhAK92T6ObovyL58QGbZCtmHCCZYUddAFp3wsAt6moJtt7\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiJlNjFhNjE5MDg0YTk3YzkxZTIwMGFiZTM5NWU5NDAyN2Y3Y2ZjOTAzYmUxOTUwNDQ0YTUzYmEzNjg1YjZjNTBmIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FWUNJUUR3aDV5aUFDU3lkS21ucVovOE10UUdTdVRFRGpTT1NiWnRFY2pTN2g2V3FnSWhBTDdUVlBLN1RaelBqNExIQ1dPMGxIUnlNbG9zdUhEbHFZOW5ZOURaN2NBNCIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaFVSRU5EUW5STFowRjNTVUpCWjBsVlRHNVJUall5WmpCYVMyZDNOVzV5Wm1KWFZXbHZka3BPY1ZOQmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDlFU1RGTlJHdDNUa1JKZVZkb1kwNU5hbGwzVDBSSk1VMUVhM2hPUkVsNVYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZ6VUdOaGNqaFlSWGMyVVVScU1DOXRlRkZaUzFCdGNYQmhRakp1U1RJeU9UUkNaRXdLVDFOblVWSk1XamRVU0hFMVdsTnVZWFozUjI1Q1Iza3ZTbXhRVGxsTmNua3hhMmRrUlRaeWEwdGFUVUUwV2tnd2NuRlBRMEptUlhkbloxaDBUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlV2Y2tGRkNuVTRTbVU0WkV0NVIxVjZTRlJhUzNKRVYyMUlXR052ZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDJGM1dVUldVakJTUVZGSUwwSkhSWGRZTkZwa1lVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKb01Wb3laSEJpYldSdFdWZE9iQXBNTW5Sc1kyMDFiR0pJVFhSWk1qbDBZbGhXZFdGWVVqVk1lVFZ1WVZoU2IyUlhTWFprTWpsNVlUSmFjMkl6WkhwTU1rb3hZVmQ0YTB4dWJHaGlWM2hCQ21OdFZtMWplVGx2V2xkR2EyTjVPWFJaVjJ4MVRVUnJSME5wYzBkQlVWRkNaemM0ZDBGUlJVVkxNbWd3WkVoQ2VrOXBPSFprUnpseVdsYzBkVmxYVGpBS1lWYzVkV041Tlc1aFdGSnZaRmRLTVdNeVZubFpNamwxWkVkV2RXUkROV3BpTWpCM1NIZFpTMHQzV1VKQ1FVZEVkbnBCUWtGblVWSmtNamw1WVRKYWN3cGlNMlJtV2tkc2VtTkhSakJaTW1kM1RtZFpTMHQzV1VKQ1FVZEVkbnBCUWtGM1VXOU5WR2hzVDFSS2JWbHFXVFJQUkZsNVRVUkdiVnB0U1RWTlYwMTRDazU2VG0xTlJFa3hUMVJOTTA1Nll6Tk9WRnBxVG5wcmVscHFRVlJDWjI5eVFtZEZSVUZaVHk5TlFVVkZRa0ZXUTJSWGJITmFSRUZ5UW1kdmNrSm5SVVVLUVZsUEwwMUJSVVpDUWpGdlpGZGtibUZYTlc1YWJVWnFXbE01Y2xwWVNuVmFWM2g2VEZkT2RtSlhNVEZpYld3d1pWUkJaRUpuYjNKQ1owVkZRVmxQTHdwTlFVVkhRa0U1ZVZwWFducE1NbWhzV1ZkU2Vrd3lNV2hoVnpSM1QzZFpTMHQzV1VKQ1FVZEVkbnBCUWtOQlVYUkVRM1J2WkVoU2QyTjZiM1pNTTFKMkNtRXlWblZNYlVacVpFZHNkbUp1VFhWYU1td3dZVWhXYVdSWVRteGpiVTUyWW01U2JHSnVVWFZaTWpsMFRVY3dSME5wYzBkQlVWRkNaemM0ZDBGUmEwVUtXSGQ0WkdGSVVqQmpTRTAyVEhrNWJtRllVbTlrVjBsMVdUSTVkRXd5YURGYU1tUndZbTFrYlZsWFRteE1NblJzWTIwMWJHSklUWFJaTWpsMFlsaFdkUXBoV0ZJMVRIazFibUZZVW05a1YwbDJaREk1ZVdFeVduTmlNMlI2VERKS01XRlhlR3RNYm14b1lsZDRRV050Vm0xamVUbHZXbGRHYTJONU9YUlpWMngxQ2sxRVowZERhWE5IUVZGUlFtYzNPSGRCVVc5RlMyZDNiMDFVYUd4UFZFcHRXV3BaTkU5RVdYbE5SRVp0V20xSk5VMVhUWGhPZWs1dFRVUkpNVTlVVFRNS1RucGpNMDVVV21wT2VtdDZXbXBCWWtKbmIzSkNaMFZGUVZsUEwwMUJSVXhDUVRCTlF6Tk9iR0pIV1hSaFJ6bDZaRWRXYTAxRlFVZERhWE5IUVZGUlFncG5OemgzUVZGM1JVMW5kM2RoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlUxRVowZERhWE5IUVZGUlFtYzNPSGRCVVRCRlMyZDNiMDFVYUd4UFZFcHRXV3BaTkU5RVdYbE5SRVp0V20xSk5VMVhUWGdLVG5wT2JVMUVTVEZQVkUwelRucGpNMDVVV21wT2VtdDZXbXBCWmtKbmIzSkNaMFZGUVZsUEwwMUJSVTlDUWtWTlJETktiRnB1VFhaaFIxWm9Xa2hOZGdwaVYwWndZbXBCWVVKbmIzSkNaMFZGUVZsUEwwMUJSVkJDUVhkTlEycEZkMDU2UlRCT2VsVXhUV3ByZDB4bldVdExkMWxDUWtGSFJIWjZRVUpGUVZGbkNrUkNOVzlrU0ZKM1kzcHZka3d5WkhCa1IyZ3hXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWM1IwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWUlVVc0tSRUZuZVU1VVkzbE5SR013VFhwQ2RFSm5iM0pDWjBWRlFWbFBMMDFCUlZOQ1JqaE5XRmRvTUdSSVFucFBhVGgyV2pKc01HRklWbWxNYlU1MllsTTVid3BrVjJSdVlWYzFibHB0Um1wYVV6bHlXbGhLZFZwWGVIcE1WMDUyWWxjeE1XSnRiREJsVXpoMVdqSnNNR0ZJVm1sTU0yUjJZMjEwYldKSE9UTmplVGxwQ21SWGJITmFRelUxV1ZjeGMxRklTbXhhYmsxMllVZFdhRnBJVFhaaVYwWndZbXBCTkVKbmIzSkNaMFZGUVZsUEwwMUJSVlJDUTI5TlMwUkZORnBVYTNrS1dtMUpNazlFWnpKTmFrRjRXbTFhYVU5VVJtcE5WR042V21wQmVVNVVhM3BPZW1NelRucFZNbGw2WXpWTk1sbDNTVkZaUzB0M1dVSkNRVWRFZG5wQlFncEdRVkZVUkVKR00ySXpTbkphYlhoMlpERTVhMkZZVG5kWldGSnFZVVJDYTBKbmIzSkNaMFZGUVZsUEwwMUJSVlpDUmxsTlZrZG9NR1JJUW5wUGFUaDJDbG95YkRCaFNGWnBURzFPZG1KVE9XOWtWMlJ1WVZjMWJscHRSbXBhVXpseVdsaEtkVnBYZUhwTVYwNTJZbGN4TVdKdGJEQmxVemxvV1ROU2NHSXlOWG9LVEROS01XSnVUWFpOZWtrMFRXcGpNMDlFVVRKT2FtdDJXVmhTTUZwWE1YZGtTRTEyVFZSQlYwSm5iM0pDWjBWRlFWbFBMMDFCUlZkQ1FXZE5RbTVDTVFwWmJYaHdXWHBDUjBKbmIzSkNaMFZGUVZsUEwwMUJSVmxDUkdkTlRtNUtiR05IT0RaaFNGWnVXakpzZFZveVdtaFpNbFYyWVRKV2VXSnRWbk5qZVRGcUNtSXlNWFJrVnpWd1pFaHJObU50Vm0xUGJrcHNXbTVOZG1GSFZtaGFTRTEyWWxkR2NHSnFRMEpwZDFsTFMzZFpRa0pCU0ZkbFVVbEZRV2RTT1VKSWMwRUtaVkZDTTBGT01EbE5SM0pIZUhoRmVWbDRhMlZJU214dVRuZExhVk5zTmpRemFubDBMelJsUzJOdlFYWkxaVFpQUVVGQlFtOUVaM0F6UzFsQlFVRlJSQXBCUldkM1VtZEphRUZQUkhkS1kzSjRSbmxFT1VKS1VGTTRkRTFxT1dkNVdESkZlVU0wV201cVJXcE5URTFFTnpJM1RqQnNRV2xGUVdveGNsWlRlSEIwQ2pGTmNsbHRTMEl2U1VkaWRWaHlUM1JsUTNkYVdWQnRUbUpJVW1SRmVFOXZRVTh3ZDBObldVbExiMXBKZW1vd1JVRjNUVVJoUVVGM1dsRkplRUZOVkZJS2VtZG9ZVmxpYlRNelptRmpVM2xZZERsSWVqazVXV2gwYVUxa2JHVmpiblZGWjJWdFdtNVNNbmR1VlVkS00yUkROWFV2WVRaWlRIWk9OblI0V25kSmR3cEdSV1p6V1ZCNGJFbGtLelkyVjFaTFNEaFdNVGd2TDNaRVYxWmFkRmszYlU5T2JWWkJWV0pLU3prd1lUQkRUbGxFVVRNdlozUkNhV0ZsYURsQk1FOXFDaTB0TFMwdFJVNUVJRU5GVWxSSlJrbERRVlJGTFMwdExTMEsifX19fQ=="}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyzADAgEAMIICwgYJKoZIhvcNAQcCoIICszCCAq8CAQMxDTALBglghkgBZQMEAgEwgbgGCyqGSIb3DQEJEAEEoIGoBIGlMIGiAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgXx7GH3aqPx6z/UuFJnu8MTwXK85oGDJlgIPC71rmzFsCFQD5vJWGIPR5BESb3mpZ9jqTgC8HPhgPMjAyNjA4MjUwOTA0MjJaMAMCAQGgMqQwMC4xFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEVMBMGA1UEAxMMc2lnc3RvcmUtdHNhoAAxggHcMIIB2AIBATBRMDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAsGCWCGSAFlAwQCAaCB/DAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTI2MDgyNTA5MDQyMlowLwYJKoZIhvcNAQkEMSIEII6G0qFJ/J8L7sISXeOEv8r6SXsckdNYNuK0ReSOUdBzMIGOBgsqhkiG9w0BCRACLzF/MH0wezB5BCCF+Se8B6tiysO0Q1bBDvyBssaIP9p6uebYcNnROs0FtzBVMD2kOzA5MRUwEwYDVQQKEwxzaWdzdG9yZS5kZXYxIDAeBgNVBAMTF3NpZ3N0b3JlLXRzYS1zZWxmc2lnbmVkAhQ6E1QvDJBh7rzBQy/Lio6LKiOLDDAKBggqhkjOPQQDAgRoMGYCMQCwklbK3In75P5Bpd+SFQOaawGyj4Ltla1WAAQoQvdyM5F9t6XOTmrvSEJZL8YraLMCMQDlq5P+3Nt8Q5DWOFe3a3LmkQVtc4CtkKYrgtbw7IB2cz739W+JxX3/Pk1dzbGG5VA="}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"5hphkISpfJHiAKvjlelAJ/fPyQO+GVBESlO6NoW2xQ8="},"signature":"MEYCIQDwh5yiACSydKmnqZ/8MtQGSuTEDjSOSbZtEcjS7h6WqgIhAL7TVPK7TZzPj4LHCWO0lHRyMlosuHDlqY9nY9DZ7cA4"}}
 
1
+ {"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"MIIHTDCCBtKgAwIBAgIUX/lROFfwcp3Dp+K1mvRPKW3wpvIwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwODI1MTIxOTUwWhcNMjYwODI1MTIyOTUwWjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEordtplyCu+GQHeQ9ey1VxdZ5Ht5xSW80StNYa84emSqVzCGxOE5dePYRQQAdd4FT+EgLgQLcBONduG5Cyi7cA6OCBfEwggXtMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUPkV+m9EYn8WFJgiemoWKVM6UtdowHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wawYDVR0RAQH/BGEwX4ZdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDkGCisGAQQBg78wAQEEK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wHwYKKwYBBAGDvzABAgQRd29ya2Zsb3dfZGlzcGF0Y2gwNgYKKwYBBAGDvzABAwQoYzRkMGRjNTY2NjFiYWRiOWNjNDdiZGU2NDdlMDhmZTNiNGJmNzQ1ODATBgorBgEEAYO/MAEEBAVCdWlsZDArBgorBgEEAYO/MAEFBB1odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTAdBgorBgEEAYO/MAEGBA9yZWZzL2hlYWRzL21haW4wOwYKKwYBBAGDvzABCAQtDCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMG0GCisGAQQBg78wAQkEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wAQoEKgwoYzRkMGRjNTY2NjFiYWRiOWNjNDdiZGU2NDdlMDhmZTNiNGJmNzQ1ODAbBgorBgEEAYO/MAELBA0MC3NlbGYtaG9zdGVkMEAGCisGAQQBg78wAQwEMgwwaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MDgGCisGAQQBg78wAQ0EKgwoYzRkMGRjNTY2NjFiYWRiOWNjNDdiZGU2NDdlMDhmZTNiNGJmNzQ1ODAfBgorBgEEAYO/MAEOBBEMD3JlZnMvaGVhZHMvbWFpbjAaBgorBgEEAYO/MAEPBAwMCjEwNzE0NzU1MjkwLgYKKwYBBAGDvzABEAQgDB5odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2UwGAYKKwYBBAGDvzABEQQKDAgyNTcyMDc0MzBtBgorBgEEAYO/MAESBF8MXWh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS8uZ2l0aHViL3dvcmtmbG93cy9idWlsZC55YW1sQHJlZnMvaGVhZHMvbWFpbjA4BgorBgEEAYO/MAETBCoMKGM0ZDBkYzU2NjYxYmFkYjljYzQ3YmRlNjQ3ZTA4ZmUzYjRiZjc0NTgwIQYKKwYBBAGDvzABFAQTDBF3b3JrZmxvd19kaXNwYXRjaDBkBgorBgEEAYO/MAEVBFYMVGh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS9hY3Rpb25zL3J1bnMvMzI4NDQ2ODk4OTQvYXR0ZW1wdHMvMTAWBgorBgEEAYO/MAEWBAgMBnB1YmxpYzBGBgorBgEEAYO/MAEYBDgMNnJlcG86aHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHk6cmVmOnJlZnMvaGVhZHMvbWFpbjCBiwYKKwYBBAHWeQIEAgR9BHsAeQB3AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABoDjc0fcAAAQDAEgwRgIhAI6Arr1BHopBNTbNpwRLN7Xg28Sc2yPqFCJiJel3lLj6AiEA7zeo0UcDWQ9JdLfHf8H0rWQgGzw3+XkpTJgNsbe//YcwCgYIKoZIzj0EAwMDaAAwZQIxAInLA8ekANL1V7lB+iJmnzpf2wdt3Z6tGl0Xqzlcnl36ryZrzylII548U9gvwX9W/wIwSXIrHW9ds7R/n0s3Bz29pz5pS2miTVlCGhHybBNRTyqVwAjyf8PHK2InEV9+69ng"},"tlogEntries":[{"logIndex":"2583301055","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1787660391","inclusionPromise":{"signedEntryTimestamp":"MEUCIQC/yOlkkX5+vweOk84yGi3XIxu+cBHheseua3wuzWKi7wIgfF9e2IURGYK4/gOIiQxU0LpYsaQDH3aJMnNCTz/LbTk="},"inclusionProof":{"logIndex":"2461396793","rootHash":"d7K7sFwwosG5fPYRWJ7pD/EsSYbKbtyfvJuCwPOfFRY=","treeSize":"2461396795","hashes":["0X9dyk7HFfT0d/nFUhQzqiJqTlOK+PEHrRx6aCAPhVQ=","3hQojbb8eoY8HqfGrohobJUmvuEY6FYQUEmGMYCmqYQ=","dfUDZsat7AH4MyRBnL1j6Uop1GbU68dmOJ7mPrPhVbo=","5SSIAYN7P+bdRe32JW5aCkEXn6nVWaafvueOlRo+0I0=","j0jxmcYIDfzscLLup18JrUF+HnFqxPFULBBDxDLqfSQ=","M1KvBxaBWRZCfg7zEqvTKXXoAv5EZdP6wtNwhsr1HU0=","rJMFK17JIR2K3LvDkBdSnu34bvtB3vXQPdwQg0pZ8co=","sBRt94T302PGfFAkqNx12yVeZQ2wK8MXBkspHV8OBEU=","bBUTypOI8GgjhxRM30SIZoDfZopPulgZgxKAp1agI1Q=","EY8T0lxQDrmYoWBGpKNGttaHfKmpfqKcWqSNF4XOQKE=","T4Jz+m9vO48rOpMSsdZSW28/bgHR8prz7JeNX1s7WiQ=","EXKrSbeG2qm5APD5QSDN66X7UHz9OSofiW9PyNU7fPM=","cjIeeutzThxIPTlFFHJqa7bAzn3k2FzK8Nrdd56OWvE=","+pNXWGIXzU1dqSy/aePHKYtSkDnFinI+/bL5HnurJ6w=","G1R9F5B2KizFA2NyhDznjNKXPOF1SDmbGHz+omLG7TY=","RZ7XwGuqMr5gDUh2HpUcaXp+AmIiEcPJiMui4GLJE7o=","mBm+vQtn0C4thMnlTnxfxqowq1dXsPBCKaJ85da3JeU=","b80/J/68RC8/tx5xRdlKk6MmTpZiVRotquWBrE/z1pI=","SndbMKVtcTenAkwi2JBfGzD+mhexp1qJbRIY+A1JRIU=","xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n2461396795\nd7K7sFwwosG5fPYRWJ7pD/EsSYbKbtyfvJuCwPOfFRY=\n\n— rekor.sigstore.dev wNI9ajBFAiEAy1A8fK1UUuh6SYf9iD6gbrxR6fu+D0IfUxS5shMdcocCIEloCs5D+YV0EOEdpjplSvggfVOodHD0qEnO0lIXYadR\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiJlZDRhNjQ5ZTFiMjk5ZWNjNTY0NjM2NzYyMTg4NzMxMjVjMDMzODU1NDRiOTViNTE5Mzk0MjRhODQ1NGZmODczIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJUURJdG9ZZmljVDI0N3JsM2N2aHN6VGI1TzRoM2RIa3NxbmxXOXNrdGV4NFlnSWdmSHMyZ1pJNWRCdXZNMW0rNDdBOHU0V1MxaU84cnpJYW9NVnVmT24yZGxVPSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaFVSRU5EUW5STFowRjNTVUpCWjBsVldDOXNVazlHWm5kamNETkVjQ3RMTVcxMlVsQkxWek4zY0haSmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDlFU1RGTlZFbDRUMVJWZDFkb1kwNU5hbGwzVDBSSk1VMVVTWGxQVkZWM1YycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZ2Y21SMGNHeDVRM1VyUjFGSVpWRTVaWGt4Vm5oa1dqVklkRFY0VTFjNE1GTjBUbGtLWVRnMFpXMVRjVlo2UTBkNFQwVTFaR1ZRV1ZKUlVVRmtaRFJHVkN0RloweG5VVXhqUWs5T1pIVkhOVU41YVRkalFUWlBRMEptUlhkbloxaDBUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlZRYTFZckNtMDVSVmx1T0ZkR1NtZHBaVzF2VjB0V1RUWlZkR1J2ZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDJGM1dVUldVakJTUVZGSUwwSkhSWGRZTkZwa1lVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKb01Wb3laSEJpYldSdFdWZE9iQXBNTW5Sc1kyMDFiR0pJVFhSWk1qbDBZbGhXZFdGWVVqVk1lVFZ1WVZoU2IyUlhTWFprTWpsNVlUSmFjMkl6WkhwTU1rb3hZVmQ0YTB4dWJHaGlWM2hCQ21OdFZtMWplVGx2V2xkR2EyTjVPWFJaVjJ4MVRVUnJSME5wYzBkQlVWRkNaemM0ZDBGUlJVVkxNbWd3WkVoQ2VrOXBPSFprUnpseVdsYzBkVmxYVGpBS1lWYzVkV041Tlc1aFdGSnZaRmRLTVdNeVZubFpNamwxWkVkV2RXUkROV3BpTWpCM1NIZFpTMHQzV1VKQ1FVZEVkbnBCUWtGblVWSmtNamw1WVRKYWN3cGlNMlJtV2tkc2VtTkhSakJaTW1kM1RtZFpTMHQzV1VKQ1FVZEVkbnBCUWtGM1VXOVplbEpyVFVkU2FrNVVXVEpPYWtacFdWZFNhVTlYVG1wT1JHUnBDbHBIVlRKT1JHUnNUVVJvYlZwVVRtbE9SMHB0VG5wUk1VOUVRVlJDWjI5eVFtZEZSVUZaVHk5TlFVVkZRa0ZXUTJSWGJITmFSRUZ5UW1kdmNrSm5SVVVLUVZsUEwwMUJSVVpDUWpGdlpGZGtibUZYTlc1YWJVWnFXbE01Y2xwWVNuVmFWM2g2VEZkT2RtSlhNVEZpYld3d1pWUkJaRUpuYjNKQ1owVkZRVmxQTHdwTlFVVkhRa0U1ZVZwWFducE1NbWhzV1ZkU2Vrd3lNV2hoVnpSM1QzZFpTMHQzV1VKQ1FVZEVkbnBCUWtOQlVYUkVRM1J2WkVoU2QyTjZiM1pNTTFKMkNtRXlWblZNYlVacVpFZHNkbUp1VFhWYU1td3dZVWhXYVdSWVRteGpiVTUyWW01U2JHSnVVWFZaTWpsMFRVY3dSME5wYzBkQlVWRkNaemM0ZDBGUmEwVUtXSGQ0WkdGSVVqQmpTRTAyVEhrNWJtRllVbTlrVjBsMVdUSTVkRXd5YURGYU1tUndZbTFrYlZsWFRteE1NblJzWTIwMWJHSklUWFJaTWpsMFlsaFdkUXBoV0ZJMVRIazFibUZZVW05a1YwbDJaREk1ZVdFeVduTmlNMlI2VERKS01XRlhlR3RNYm14b1lsZDRRV050Vm0xamVUbHZXbGRHYTJONU9YUlpWMngxQ2sxRVowZERhWE5IUVZGUlFtYzNPSGRCVVc5RlMyZDNiMWw2VW10TlIxSnFUbFJaTWs1cVJtbFpWMUpwVDFkT2FrNUVaR2xhUjFVeVRrUmtiRTFFYUcwS1dsUk9hVTVIU20xT2VsRXhUMFJCWWtKbmIzSkNaMFZGUVZsUEwwMUJSVXhDUVRCTlF6Tk9iR0pIV1hSaFJ6bDZaRWRXYTAxRlFVZERhWE5IUVZGUlFncG5OemgzUVZGM1JVMW5kM2RoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlUxRVowZERhWE5IUVZGUlFtYzNPSGRCVVRCRlMyZDNiMWw2VW10TlIxSnFUbFJaTWs1cVJtbFpWMUpwVDFkT2FrNUVaR2tLV2tkVk1rNUVaR3hOUkdodFdsUk9hVTVIU20xT2VsRXhUMFJCWmtKbmIzSkNaMFZGUVZsUEwwMUJSVTlDUWtWTlJETktiRnB1VFhaaFIxWm9Xa2hOZGdwaVYwWndZbXBCWVVKbmIzSkNaMFZGUVZsUEwwMUJSVkJDUVhkTlEycEZkMDU2UlRCT2VsVXhUV3ByZDB4bldVdExkMWxDUWtGSFJIWjZRVUpGUVZGbkNrUkNOVzlrU0ZKM1kzcHZka3d5WkhCa1IyZ3hXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWM1IwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWUlVVc0tSRUZuZVU1VVkzbE5SR013VFhwQ2RFSm5iM0pDWjBWRlFWbFBMMDFCUlZOQ1JqaE5XRmRvTUdSSVFucFBhVGgyV2pKc01HRklWbWxNYlU1MllsTTVid3BrVjJSdVlWYzFibHB0Um1wYVV6bHlXbGhLZFZwWGVIcE1WMDUyWWxjeE1XSnRiREJsVXpoMVdqSnNNR0ZJVm1sTU0yUjJZMjEwYldKSE9UTmplVGxwQ21SWGJITmFRelUxV1ZjeGMxRklTbXhhYmsxMllVZFdhRnBJVFhaaVYwWndZbXBCTkVKbmIzSkNaMFZGUVZsUEwwMUJSVlJDUTI5TlMwZE5NRnBFUW1zS1dYcFZNazVxV1hoWmJVWnJXV3BzYWxsNlVUTlpiVkpzVG1wUk0xcFVRVFJhYlZWNldXcFNhVnBxWXpCT1ZHZDNTVkZaUzB0M1dVSkNRVWRFZG5wQlFncEdRVkZVUkVKR00ySXpTbkphYlhoMlpERTVhMkZZVG5kWldGSnFZVVJDYTBKbmIzSkNaMFZGUVZsUEwwMUJSVlpDUmxsTlZrZG9NR1JJUW5wUGFUaDJDbG95YkRCaFNGWnBURzFPZG1KVE9XOWtWMlJ1WVZjMWJscHRSbXBhVXpseVdsaEtkVnBYZUhwTVYwNTJZbGN4TVdKdGJEQmxVemxvV1ROU2NHSXlOWG9LVEROS01XSnVUWFpOZWtrMFRrUlJNazlFYXpSUFZGRjJXVmhTTUZwWE1YZGtTRTEyVFZSQlYwSm5iM0pDWjBWRlFWbFBMMDFCUlZkQ1FXZE5RbTVDTVFwWmJYaHdXWHBDUjBKbmIzSkNaMFZGUVZsUEwwMUJSVmxDUkdkTlRtNUtiR05IT0RaaFNGWnVXakpzZFZveVdtaFpNbFYyWVRKV2VXSnRWbk5qZVRGcUNtSXlNWFJrVnpWd1pFaHJObU50Vm0xUGJrcHNXbTVOZG1GSFZtaGFTRTEyWWxkR2NHSnFRMEpwZDFsTFMzZFpRa0pCU0ZkbFVVbEZRV2RTT1VKSWMwRUtaVkZDTTBGT01EbE5SM0pIZUhoRmVWbDRhMlZJU214dVRuZExhVk5zTmpRemFubDBMelJsUzJOdlFYWkxaVFpQUVVGQlFtOUVhbU13Wm1OQlFVRlJSQXBCUldkM1VtZEphRUZKTmtGeWNqRkNTRzl3UWs1VVlrNXdkMUpNVGpkWVp6STRVMk15ZVZCeFJrTkthVXBsYkROc1RHbzJRV2xGUVRkNlpXOHdWV05FQ2xkUk9VcGtUR1pJWmpoSU1ISlhVV2RIZW5jeksxaHJjRlJLWjA1elltVXZMMWxqZDBObldVbExiMXBKZW1vd1JVRjNUVVJoUVVGM1dsRkplRUZKYmt3S1FUaGxhMEZPVERGV04yeENLMmxLYlc1NmNHWXlkMlIwTTFvMmRFZHNNRmh4ZW14amJtd3pObko1V25KNmVXeEpTVFUwT0ZVNVozWjNXRGxYTDNkSmR3cFRXRWx5U0ZjNVpITTNVaTl1TUhNelFub3lPWEI2TlhCVE1tMXBWRlpzUTBkb1NIbGlRazVTVkhseFZuZEJhbmxtT0ZCSVN6Skpia1ZXT1NzMk9XNW5DaTB0TFMwdFJVNUVJRU5GVWxSSlJrbERRVlJGTFMwdExTMEsifX19fQ=="}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyDADAgEAMIICvwYJKoZIhvcNAQcCoIICsDCCAqwCAQMxDTALBglghkgBZQMEAgEwgbcGCyqGSIb3DQEJEAEEoIGnBIGkMIGhAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgSSOhPAlzolCffNwHPg1Z7lijHCRkYoaIxgEm6DmOk/ICFCCb7x63uGGVFdNWFxq9fSK3wXqaGA8yMDI2MDgyNTEyMTk1MVowAwIBAaAypDAwLjEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MRUwEwYDVQQDEwxzaWdzdG9yZS10c2GgADGCAdowggHWAgEBMFEwOTEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MSAwHgYDVQQDExdzaWdzdG9yZS10c2Etc2VsZnNpZ25lZAIUOhNULwyQYe68wUMvy4qOiyojiwwwCwYJYIZIAWUDBAIBoIH8MBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAcBgkqhkiG9w0BCQUxDxcNMjYwODI1MTIxOTUxWjAvBgkqhkiG9w0BCQQxIgQgt4TEFaQK45UdU8s7vWhUVHrkKiOEQNAwqol0vvSRQRswgY4GCyqGSIb3DQEJEAIvMX8wfTB7MHkEIIX5J7wHq2LKw7RDVsEO/IGyxog/2nq55thw2dE6zQW3MFUwPaQ7MDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAoGCCqGSM49BAMCBGYwZAIwECMv8XOdlmZs7UE5o/rpCwV4CfrXizvJe1vsHSx6mctwG11Fmg+bm9mHCw/zjQOEAjAWpP44C+k1H2mGUm4TEl5Owwj9/41AxO4Mz93Y/7ASNI6YlaD1Ya2+wIAOKLhoVDY="}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"7UpknhspnsxWRjZ2IYhzElwDOFVEuVtRk5QkqEVP+HM="},"signature":"MEUCIQDItoYficT247rl3cvhszTb5O4h3dHksqnlW9sktex4YgIgfHs2gZI5dBuvM1m+47A8u4WS1iO8rzIaoMVufOn2dlU="}}
build/torch212-cxx11-cu130-aarch64-linux/xpu_fused_moe.py CHANGED
@@ -26,7 +26,7 @@ def _register_xpu_fake_kernels():
26
 
27
  _register_if_available(
28
  "cutlass_grouped_gemm_interface",
29
- lambda ptr_A, ptr_B, ptr_scales, ptr_bias, ptr_D, expert_first_token_offset, N, K, num_experts, is_B_int4, is_B_mxfp4: ptr_D,
30
  )
31
 
32
  _register_if_available(
@@ -106,12 +106,13 @@ def cutlass_grouped_gemm(input_A, input_B, bias, output, expert_token_count, n,
106
  K=k,
107
  num_experts=num_experts,
108
  is_B_int4=False,
109
- is_B_mxfp4=False)
 
110
 
111
 
112
  def cutlass_grouped_gemm_xe2(input_A, input_B, scales, bias, output,
113
  num_rows_per_expert, n, k, num_experts, is_B_int4,
114
- is_B_mxfp4):
115
  expert_first_token_offset = torch.cat([
116
  torch.tensor([0],
117
  dtype=num_rows_per_expert.dtype,
@@ -129,7 +130,8 @@ def cutlass_grouped_gemm_xe2(input_A, input_B, scales, bias, output,
129
  K=k,
130
  num_experts=num_experts,
131
  is_B_int4=is_B_int4,
132
- is_B_mxfp4=is_B_mxfp4)
 
133
 
134
 
135
  def ceilDiv(a, b):
@@ -206,7 +208,8 @@ def xpu_fused_moe(hidden_states,
206
  ep_size=1,
207
  is_fp8=False,
208
  is_int4=False,
209
- is_mxfp4=False):
 
210
  '''
211
  hidden_states: [num_rows, hidden_size]
212
  w13: [num_experts, 2*inter_size, hidden_size]
@@ -228,6 +231,7 @@ def xpu_fused_moe(hidden_states,
228
  num_experts: int
229
  is_int4: bool
230
  is_mxfp4: bool
 
231
  '''
232
 
233
  # Resolve DTensors to local tensors before passing to custom ops
@@ -266,7 +270,7 @@ def xpu_fused_moe(hidden_states,
266
 
267
  # 4bits support [E, N, K]
268
  # other types [E, K, N]
269
- if not is_int4 and not is_mxfp4:
270
  if not hasattr(w13, 'xpu_fused_moe'):
271
  if needs_transpose:
272
  w13.data = w13.transpose(-1, -2).contiguous()
@@ -389,7 +393,7 @@ def xpu_fused_moe(hidden_states,
389
  ########### gemm1 ##################
390
  input_B = w13
391
 
392
- if not is_fp8 and not is_int4 and not is_mxfp4:
393
  ops.cutlass_grouped_gemm_interface(
394
  ptr_A=gemm1_input,
395
  ptr_B=input_B,
@@ -401,7 +405,8 @@ def xpu_fused_moe(hidden_states,
401
  K=hidden_size,
402
  num_experts=num_experts_per_node,
403
  is_B_int4=is_int4,
404
- is_B_mxfp4=is_mxfp4)
 
405
  else:
406
  ops.cutlass_grouped_gemm_interface(
407
  ptr_A=gemm1_input,
@@ -414,7 +419,8 @@ def xpu_fused_moe(hidden_states,
414
  K=hidden_size,
415
  num_experts=num_experts_per_node,
416
  is_B_int4=is_int4,
417
- is_B_mxfp4=is_mxfp4)
 
418
 
419
  # act
420
  act_output = torch.empty((num_moe_inputs, inter_size),
@@ -435,7 +441,7 @@ def xpu_fused_moe(hidden_states,
435
  gemm2_output = torch.empty((num_moe_inputs, hidden_size),
436
  dtype=hidden_states.dtype,
437
  device=hidden_states.device)
438
- if not is_fp8 and not is_int4 and not is_mxfp4:
439
  ops.cutlass_grouped_gemm_interface(
440
  ptr_A=input_A,
441
  ptr_B=input_B,
@@ -447,7 +453,8 @@ def xpu_fused_moe(hidden_states,
447
  K=inter_size,
448
  num_experts=num_experts_per_node,
449
  is_B_int4=is_int4,
450
- is_B_mxfp4=is_mxfp4)
 
451
  else:
452
  ops.cutlass_grouped_gemm_interface(
453
  ptr_A=input_A,
@@ -460,7 +467,8 @@ def xpu_fused_moe(hidden_states,
460
  K=inter_size,
461
  num_experts=num_experts_per_node,
462
  is_B_int4=is_int4,
463
- is_B_mxfp4=is_mxfp4)
 
464
 
465
  ops.moe_gather(output, gemm2_output, topk_weights,
466
  permuted_row_to_unpermuted_row,
@@ -633,6 +641,7 @@ class MegaBlocksMoeMLP(torch.nn.Module):
633
  is_fp8 = getattr(self.experts, "is_fp8", False)
634
  is_int4 = getattr(self.experts, "is_int4", False)
635
  is_mxfp4 = getattr(self.experts, "is_mxfp4", False)
 
636
 
637
  w13_scales = getattr(self.experts, "gate_up_proj_scales", None)
638
  w2_scales = getattr(self.experts, "down_proj_scales", None)
@@ -685,6 +694,7 @@ class MegaBlocksMoeMLP(torch.nn.Module):
685
  is_fp8=is_fp8,
686
  is_int4=is_int4,
687
  is_mxfp4=is_mxfp4,
 
688
  )
689
 
690
  # All-reduce across EP group to combine partial expert outputs
 
26
 
27
  _register_if_available(
28
  "cutlass_grouped_gemm_interface",
29
+ lambda ptr_A, ptr_B, ptr_scales, ptr_bias, ptr_D, expert_first_token_offset, N, K, num_experts, is_B_int4, is_B_mxfp4, is_B_mxfp8=False: ptr_D,
30
  )
31
 
32
  _register_if_available(
 
106
  K=k,
107
  num_experts=num_experts,
108
  is_B_int4=False,
109
+ is_B_mxfp4=False,
110
+ is_B_mxfp8=False)
111
 
112
 
113
  def cutlass_grouped_gemm_xe2(input_A, input_B, scales, bias, output,
114
  num_rows_per_expert, n, k, num_experts, is_B_int4,
115
+ is_B_mxfp4, is_B_mxfp8=False):
116
  expert_first_token_offset = torch.cat([
117
  torch.tensor([0],
118
  dtype=num_rows_per_expert.dtype,
 
130
  K=k,
131
  num_experts=num_experts,
132
  is_B_int4=is_B_int4,
133
+ is_B_mxfp4=is_B_mxfp4,
134
+ is_B_mxfp8=is_B_mxfp8)
135
 
136
 
137
  def ceilDiv(a, b):
 
208
  ep_size=1,
209
  is_fp8=False,
210
  is_int4=False,
211
+ is_mxfp4=False,
212
+ is_mxfp8=False):
213
  '''
214
  hidden_states: [num_rows, hidden_size]
215
  w13: [num_experts, 2*inter_size, hidden_size]
 
231
  num_experts: int
232
  is_int4: bool
233
  is_mxfp4: bool
234
+ is_mxfp8: bool
235
  '''
236
 
237
  # Resolve DTensors to local tensors before passing to custom ops
 
270
 
271
  # 4bits support [E, N, K]
272
  # other types [E, K, N]
273
+ if not is_int4 and not is_mxfp4 and not is_mxfp8:
274
  if not hasattr(w13, 'xpu_fused_moe'):
275
  if needs_transpose:
276
  w13.data = w13.transpose(-1, -2).contiguous()
 
393
  ########### gemm1 ##################
394
  input_B = w13
395
 
396
+ if not is_fp8 and not is_int4 and not is_mxfp4 and not is_mxfp8:
397
  ops.cutlass_grouped_gemm_interface(
398
  ptr_A=gemm1_input,
399
  ptr_B=input_B,
 
405
  K=hidden_size,
406
  num_experts=num_experts_per_node,
407
  is_B_int4=is_int4,
408
+ is_B_mxfp4=is_mxfp4,
409
+ is_B_mxfp8=is_mxfp8)
410
  else:
411
  ops.cutlass_grouped_gemm_interface(
412
  ptr_A=gemm1_input,
 
419
  K=hidden_size,
420
  num_experts=num_experts_per_node,
421
  is_B_int4=is_int4,
422
+ is_B_mxfp4=is_mxfp4,
423
+ is_B_mxfp8=is_mxfp8)
424
 
425
  # act
426
  act_output = torch.empty((num_moe_inputs, inter_size),
 
441
  gemm2_output = torch.empty((num_moe_inputs, hidden_size),
442
  dtype=hidden_states.dtype,
443
  device=hidden_states.device)
444
+ if not is_fp8 and not is_int4 and not is_mxfp4 and not is_mxfp8:
445
  ops.cutlass_grouped_gemm_interface(
446
  ptr_A=input_A,
447
  ptr_B=input_B,
 
453
  K=inter_size,
454
  num_experts=num_experts_per_node,
455
  is_B_int4=is_int4,
456
+ is_B_mxfp4=is_mxfp4,
457
+ is_B_mxfp8=is_mxfp8)
458
  else:
459
  ops.cutlass_grouped_gemm_interface(
460
  ptr_A=input_A,
 
467
  K=inter_size,
468
  num_experts=num_experts_per_node,
469
  is_B_int4=is_int4,
470
+ is_B_mxfp4=is_mxfp4,
471
+ is_B_mxfp8=is_mxfp8)
472
 
473
  ops.moe_gather(output, gemm2_output, topk_weights,
474
  permuted_row_to_unpermuted_row,
 
641
  is_fp8 = getattr(self.experts, "is_fp8", False)
642
  is_int4 = getattr(self.experts, "is_int4", False)
643
  is_mxfp4 = getattr(self.experts, "is_mxfp4", False)
644
+ is_mxfp8 = getattr(self.experts, "is_mxfp8", False)
645
 
646
  w13_scales = getattr(self.experts, "gate_up_proj_scales", None)
647
  w2_scales = getattr(self.experts, "down_proj_scales", None)
 
694
  is_fp8=is_fp8,
695
  is_int4=is_int4,
696
  is_mxfp4=is_mxfp4,
697
+ is_mxfp8=is_mxfp8,
698
  )
699
 
700
  # All-reduce across EP group to combine partial expert outputs
build/torch212-cxx11-cu132-aarch64-linux/{_megablocks_cuda_18e92fb.abi3.so → _megablocks_cuda_c4d0dc5.abi3.so} RENAMED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:3bc514ea255b28d4ebe4ecdc475045cda997dfb48c73eb2f070f20723260180d
3
  size 10393056
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:079f6f6e8893a9ce5a2fa17fd717a48282a9308607df2f65ad714d7f9b2ea9ad
3
  size 10393056
build/torch212-cxx11-cu132-aarch64-linux/_ops.py CHANGED
@@ -1,9 +1,9 @@
1
  import torch
2
- from . import _megablocks_cuda_18e92fb
3
- ops = torch.ops._megablocks_cuda_18e92fb
4
 
5
  def add_op_namespace_prefix(op_name: str):
6
  """
7
  Prefix op by namespace.
8
  """
9
- return f"_megablocks_cuda_18e92fb::{op_name}"
 
1
  import torch
2
+ from . import _megablocks_cuda_c4d0dc5
3
+ ops = torch.ops._megablocks_cuda_c4d0dc5
4
 
5
  def add_op_namespace_prefix(op_name: str):
6
  """
7
  Prefix op by namespace.
8
  """
9
+ return f"_megablocks_cuda_c4d0dc5::{op_name}"
build/torch212-cxx11-cu132-aarch64-linux/metadata.json CHANGED
@@ -1,6 +1,6 @@
1
  {
2
  "name": "megablocks",
3
- "id": "_megablocks_cuda_18e92fb",
4
  "version": 1,
5
  "license": "Apache-2.0",
6
  "python-depends": [],
@@ -48,8 +48,8 @@
48
  "_layers/mpu.py": "BX61/pmqRCVeEMnzpuK8x5NpITBJyZfOawGnDegW1O8=",
49
  "_layers/router.py": "GKC/5//Uf43HT6zXlBTStCMTml2YXn7Jbgq9EgTgDC0=",
50
  "_layers/sharedexpert_registry.py": "GfwHKjbC7lBXYq9kNifp3HudTdZKSqwsFxGxFLc2krw=",
51
- "_megablocks_cuda_18e92fb.abi3.so": "O8UU6iVbKNTr5OzcR1BFzamX37SMc+svBw8gcjJgGA0=",
52
- "_ops.py": "baTEjeHRnpTSLod30qZST/UL5GNv7vZoGeNwQWakxbo=",
53
  "_version.py": "W3l9oUrnmvfBoIy06Lv0y2ezTQhNU04ug/txHcdWJD0=",
54
  "backend/__init__.py": "4bunAqqjwE93nym8CigHbqVAal7UaYGdONb8lGRfrek=",
55
  "backend/kernels.py": "2UFNTlmSDk3S5y6UW14MJMPVVsVhmozxQ5wFDxtZHhQ=",
@@ -100,7 +100,7 @@
100
  "stk/random/__init__.py": "Gr/+Gl20jJ6fJVRfoAUxEcCPeChILQzrzhKVVAWQsRI=",
101
  "stk/random/random_ops.py": "AluIDj3Vo2ReKAsZz07yydbtndDbJoglekRGIaCoRZE=",
102
  "stk/random/random_ops_test.py": "B+a4Zb+OPhBtpVA48oc09sBL/AAQO9j/YUFI0nnXxzk=",
103
- "xpu_fused_moe.py": "Dp6S3fK/Fc4Sr+Ac94vw2zz0v/QTGp6rYeMIUqE3Y/I="
104
  }
105
  },
106
  "provenance": {
@@ -110,7 +110,7 @@
110
  "dirty": false
111
  },
112
  "kernel": {
113
- "sha": "18e92fb6886201ffb91c173f02593777756c793f",
114
  "dirty": false
115
  }
116
  }
 
1
  {
2
  "name": "megablocks",
3
+ "id": "_megablocks_cuda_c4d0dc5",
4
  "version": 1,
5
  "license": "Apache-2.0",
6
  "python-depends": [],
 
48
  "_layers/mpu.py": "BX61/pmqRCVeEMnzpuK8x5NpITBJyZfOawGnDegW1O8=",
49
  "_layers/router.py": "GKC/5//Uf43HT6zXlBTStCMTml2YXn7Jbgq9EgTgDC0=",
50
  "_layers/sharedexpert_registry.py": "GfwHKjbC7lBXYq9kNifp3HudTdZKSqwsFxGxFLc2krw=",
51
+ "_megablocks_cuda_c4d0dc5.abi3.so": "B59vboiTqc5aL6F/1xekgoKpMIYH3y9lrXFNf5suqa0=",
52
+ "_ops.py": "9NSxkX5lSS5VhF9+hDazP5NimwZK2V/+nIXR0AQxnHA=",
53
  "_version.py": "W3l9oUrnmvfBoIy06Lv0y2ezTQhNU04ug/txHcdWJD0=",
54
  "backend/__init__.py": "4bunAqqjwE93nym8CigHbqVAal7UaYGdONb8lGRfrek=",
55
  "backend/kernels.py": "2UFNTlmSDk3S5y6UW14MJMPVVsVhmozxQ5wFDxtZHhQ=",
 
100
  "stk/random/__init__.py": "Gr/+Gl20jJ6fJVRfoAUxEcCPeChILQzrzhKVVAWQsRI=",
101
  "stk/random/random_ops.py": "AluIDj3Vo2ReKAsZz07yydbtndDbJoglekRGIaCoRZE=",
102
  "stk/random/random_ops_test.py": "B+a4Zb+OPhBtpVA48oc09sBL/AAQO9j/YUFI0nnXxzk=",
103
+ "xpu_fused_moe.py": "sPmuRSpkH1Bmk4hdpz53us8Qpc6yinT9rkld3T8WreI="
104
  }
105
  },
106
  "provenance": {
 
110
  "dirty": false
111
  },
112
  "kernel": {
113
+ "sha": "c4d0dc56661badb9cc47bde647e08fe3b4bf7458",
114
  "dirty": false
115
  }
116
  }
build/torch212-cxx11-cu132-aarch64-linux/metadata.json.sigstore CHANGED
@@ -1 +1 @@
1
- {"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"MIIHTTCCBtKgAwIBAgIUX2+lCZihX7/Cu0KIQtuZgMc2RxcwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwODI1MDkwNDIzWhcNMjYwODI1MDkxNDIzWjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEljVbv5eZxYV/LdQTPOxax/DfgcNvWQv+ga8CJLLgai1+UAkGAeln5p//7lL2h6ezbjUT8Mk3RH+6X0ykdJI2iqOCBfEwggXtMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUIiPpPk8mjLVO2/YYQ1fosAScOzgwHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wawYDVR0RAQH/BGEwX4ZdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDkGCisGAQQBg78wAQEEK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wHwYKKwYBBAGDvzABAgQRd29ya2Zsb3dfZGlzcGF0Y2gwNgYKKwYBBAGDvzABAwQoMThlOTJmYjY4ODYyMDFmZmI5MWMxNzNmMDI1OTM3Nzc3NTZjNzkzZjATBgorBgEEAYO/MAEEBAVCdWlsZDArBgorBgEEAYO/MAEFBB1odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTAdBgorBgEEAYO/MAEGBA9yZWZzL2hlYWRzL21haW4wOwYKKwYBBAGDvzABCAQtDCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMG0GCisGAQQBg78wAQkEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wAQoEKgwoMThlOTJmYjY4ODYyMDFmZmI5MWMxNzNmMDI1OTM3Nzc3NTZjNzkzZjAbBgorBgEEAYO/MAELBA0MC3NlbGYtaG9zdGVkMEAGCisGAQQBg78wAQwEMgwwaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MDgGCisGAQQBg78wAQ0EKgwoMThlOTJmYjY4ODYyMDFmZmI5MWMxNzNmMDI1OTM3Nzc3NTZjNzkzZjAfBgorBgEEAYO/MAEOBBEMD3JlZnMvaGVhZHMvbWFpbjAaBgorBgEEAYO/MAEPBAwMCjEwNzE0NzU1MjkwLgYKKwYBBAGDvzABEAQgDB5odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2UwGAYKKwYBBAGDvzABEQQKDAgyNTcyMDc0MzBtBgorBgEEAYO/MAESBF8MXWh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS8uZ2l0aHViL3dvcmtmbG93cy9idWlsZC55YW1sQHJlZnMvaGVhZHMvbWFpbjA4BgorBgEEAYO/MAETBCoMKDE4ZTkyZmI2ODg2MjAxZmZiOTFjMTczZjAyNTkzNzc3NzU2Yzc5M2YwIQYKKwYBBAGDvzABFAQTDBF3b3JrZmxvd19kaXNwYXRjaDBkBgorBgEEAYO/MAEVBFYMVGh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS9hY3Rpb25zL3J1bnMvMzI4Mjc3ODQ2NjkvYXR0ZW1wdHMvMTAWBgorBgEEAYO/MAEWBAgMBnB1YmxpYzBGBgorBgEEAYO/MAEYBDgMNnJlcG86aHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHk6cmVmOnJlZnMvaGVhZHMvbWFpbjCBiwYKKwYBBAHWeQIEAgR9BHsAeQB3AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABoDgp38IAAAQDAEgwRgIhAPQQIZz7eaBojkatlk8iXIRaW/pL3hVCU//3UO3kNijPAiEAxVRKvMo5Vo31MeVE7vIKhR2BAqbc3x9Z1Blh0YtIk/UwCgYIKoZIzj0EAwMDaQAwZgIxANOyhW3ytUEbEHhIKBUcQKsXZDcoL4lBdT2FtvFM08FQa72urOwkyopvJr1VXex9xwIxANyKDXFcaLR2wgYaIqvDEGMAyrMnqpW8Ve+DbuB38ivSLmBXUghG3A7BGL03vuwROg=="},"tlogEntries":[{"logIndex":"2582977775","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1787648663","inclusionPromise":{"signedEntryTimestamp":"MEQCIDvrTSxS3x4ToTjkwELouiHuW0Q+15b5mLDvckUTYpCOAiB3KcffL5cMMaQndRXTiQSPEcjF2EEjN9CVi+hcAg/bQA=="},"inclusionProof":{"logIndex":"2461073513","rootHash":"FeXN6ikwdZZD18UM3SGavUIlEbRJgvkV9ZKK4RgjWg4=","treeSize":"2461073516","hashes":["ak65uKD5E/e2MbFiK5X03SpdHxJ7OzJRgdOk7TbXGuE=","Xenf/hx/Q5GW0Jcf8obY5wLfW6ZDnwEH662V5hdRmRo=","wdFBlFeKsJ9f/uYgAQgs8YZ0tsOqHBqPVlCDnDyAInY=","nIfLLS3On+p9qgKAj3BC7iWmKUSEEJz1oPygWckIY2E=","WfF6D/sWEPwUJtf6CrUr55BiTTNRUkwx9Dg0kX9Z+/8=","/pzrkLFRwt/XMVRmL7s6Ii88QiOLu5drCOp/UggZ7TU=","G1R9F5B2KizFA2NyhDznjNKXPOF1SDmbGHz+omLG7TY=","RZ7XwGuqMr5gDUh2HpUcaXp+AmIiEcPJiMui4GLJE7o=","mBm+vQtn0C4thMnlTnxfxqowq1dXsPBCKaJ85da3JeU=","b80/J/68RC8/tx5xRdlKk6MmTpZiVRotquWBrE/z1pI=","SndbMKVtcTenAkwi2JBfGzD+mhexp1qJbRIY+A1JRIU=","xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n2461073516\nFeXN6ikwdZZD18UM3SGavUIlEbRJgvkV9ZKK4RgjWg4=\n\n— rekor.sigstore.dev wNI9ajBGAiEAwA4RUYFVp45IWpG7zAlpVZ9z/gh23gLPwjYPbEHD8vACIQDG10Wgsq5pbnpz3PW18hMZP2bnyqzW97c2dx8/8UyZHQ==\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiJiNjVjZjU4YjI1OGU2YzQ3YWRhMTIwM2E3ZWZlODFiM2Y5OTI1OTY4ZjQ0ZDQwN2MzOTFmNTgzYzg2NjM3ZWYwIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJQ3ZQaXBBeUxoS2VUZHNRby9oVnlGNzF4VWZBN0NtVWc4cU9KVko0dnhvUUFpRUFxbW5wUFU2VWxiMlZZRStqMThINTg5aHVXTlN3dnV3V2s3ekh2SzhWWjl3PSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaFVWRU5EUW5STFowRjNTVUpCWjBsVldESXJiRU5hYVdoWU55OURkVEJMU1ZGMGRWcG5UV015VW5oamQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDlFU1RGTlJHdDNUa1JKZWxkb1kwNU5hbGwzVDBSSk1VMUVhM2hPUkVsNlYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZzYWxaaWRqVmxXbmhaVmk5TVpGRlVVRTk0WVhndlJHWm5ZMDUyVjFGMksyZGhPRU1LU2t4TVoyRnBNU3RWUVd0SFFXVnNialZ3THk4M2JFd3lhRFpsZW1KcVZWUTRUV3N6VWtnck5sZ3dlV3RrU2treWFYRlBRMEptUlhkbloxaDBUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlZKYVZCd0NsQnJPRzFxVEZaUE1pOVpXVkV4Wm05elFWTmpUM3BuZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDJGM1dVUldVakJTUVZGSUwwSkhSWGRZTkZwa1lVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKb01Wb3laSEJpYldSdFdWZE9iQXBNTW5Sc1kyMDFiR0pJVFhSWk1qbDBZbGhXZFdGWVVqVk1lVFZ1WVZoU2IyUlhTWFprTWpsNVlUSmFjMkl6WkhwTU1rb3hZVmQ0YTB4dWJHaGlWM2hCQ21OdFZtMWplVGx2V2xkR2EyTjVPWFJaVjJ4MVRVUnJSME5wYzBkQlVWRkNaemM0ZDBGUlJVVkxNbWd3WkVoQ2VrOXBPSFprUnpseVdsYzBkVmxYVGpBS1lWYzVkV041Tlc1aFdGSnZaRmRLTVdNeVZubFpNamwxWkVkV2RXUkROV3BpTWpCM1NIZFpTMHQzV1VKQ1FVZEVkbnBCUWtGblVWSmtNamw1WVRKYWN3cGlNMlJtV2tkc2VtTkhSakJaTW1kM1RtZFpTMHQzV1VKQ1FVZEVkbnBCUWtGM1VXOU5WR2hzVDFSS2JWbHFXVFJQUkZsNVRVUkdiVnB0U1RWTlYwMTRDazU2VG0xTlJFa3hUMVJOTTA1Nll6Tk9WRnBxVG5wcmVscHFRVlJDWjI5eVFtZEZSVUZaVHk5TlFVVkZRa0ZXUTJSWGJITmFSRUZ5UW1kdmNrSm5SVVVLUVZsUEwwMUJSVVpDUWpGdlpGZGtibUZYTlc1YWJVWnFXbE01Y2xwWVNuVmFWM2g2VEZkT2RtSlhNVEZpYld3d1pWUkJaRUpuYjNKQ1owVkZRVmxQTHdwTlFVVkhRa0U1ZVZwWFducE1NbWhzV1ZkU2Vrd3lNV2hoVnpSM1QzZFpTMHQzV1VKQ1FVZEVkbnBCUWtOQlVYUkVRM1J2WkVoU2QyTjZiM1pNTTFKMkNtRXlWblZNYlVacVpFZHNkbUp1VFhWYU1td3dZVWhXYVdSWVRteGpiVTUyWW01U2JHSnVVWFZaTWpsMFRVY3dSME5wYzBkQlVWRkNaemM0ZDBGUmEwVUtXSGQ0WkdGSVVqQmpTRTAyVEhrNWJtRllVbTlrVjBsMVdUSTVkRXd5YURGYU1tUndZbTFrYlZsWFRteE1NblJzWTIwMWJHSklUWFJaTWpsMFlsaFdkUXBoV0ZJMVRIazFibUZZVW05a1YwbDJaREk1ZVdFeVduTmlNMlI2VERKS01XRlhlR3RNYm14b1lsZDRRV050Vm0xamVUbHZXbGRHYTJONU9YUlpWMngxQ2sxRVowZERhWE5IUVZGUlFtYzNPSGRCVVc5RlMyZDNiMDFVYUd4UFZFcHRXV3BaTkU5RVdYbE5SRVp0V20xSk5VMVhUWGhPZWs1dFRVUkpNVTlVVFRNS1RucGpNMDVVV21wT2VtdDZXbXBCWWtKbmIzSkNaMFZGUVZsUEwwMUJSVXhDUVRCTlF6Tk9iR0pIV1hSaFJ6bDZaRWRXYTAxRlFVZERhWE5IUVZGUlFncG5OemgzUVZGM1JVMW5kM2RoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlUxRVowZERhWE5IUVZGUlFtYzNPSGRCVVRCRlMyZDNiMDFVYUd4UFZFcHRXV3BaTkU5RVdYbE5SRVp0V20xSk5VMVhUWGdLVG5wT2JVMUVTVEZQVkUwelRucGpNMDVVV21wT2VtdDZXbXBCWmtKbmIzSkNaMFZGUVZsUEwwMUJSVTlDUWtWTlJETktiRnB1VFhaaFIxWm9Xa2hOZGdwaVYwWndZbXBCWVVKbmIzSkNaMFZGUVZsUEwwMUJSVkJDUVhkTlEycEZkMDU2UlRCT2VsVXhUV3ByZDB4bldVdExkMWxDUWtGSFJIWjZRVUpGUVZGbkNrUkNOVzlrU0ZKM1kzcHZka3d5WkhCa1IyZ3hXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWM1IwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWUlVVc0tSRUZuZVU1VVkzbE5SR013VFhwQ2RFSm5iM0pDWjBWRlFWbFBMMDFCUlZOQ1JqaE5XRmRvTUdSSVFucFBhVGgyV2pKc01HRklWbWxNYlU1MllsTTVid3BrVjJSdVlWYzFibHB0Um1wYVV6bHlXbGhLZFZwWGVIcE1WMDUyWWxjeE1XSnRiREJsVXpoMVdqSnNNR0ZJVm1sTU0yUjJZMjEwYldKSE9UTmplVGxwQ21SWGJITmFRelUxV1ZjeGMxRklTbXhhYmsxMllVZFdhRnBJVFhaaVYwWndZbXBCTkVKbmIzSkNaMFZGUVZsUEwwMUJSVlJDUTI5TlMwUkZORnBVYTNrS1dtMUpNazlFWnpKTmFrRjRXbTFhYVU5VVJtcE5WR042V21wQmVVNVVhM3BPZW1NelRucFZNbGw2WXpWTk1sbDNTVkZaUzB0M1dVSkNRVWRFZG5wQlFncEdRVkZVUkVKR00ySXpTbkphYlhoMlpERTVhMkZZVG5kWldGSnFZVVJDYTBKbmIzSkNaMFZGUVZsUEwwMUJSVlpDUmxsTlZrZG9NR1JJUW5wUGFUaDJDbG95YkRCaFNGWnBURzFPZG1KVE9XOWtWMlJ1WVZjMWJscHRSbXBhVXpseVdsaEtkVnBYZUhwTVYwNTJZbGN4TVdKdGJEQmxVemxvV1ROU2NHSXlOWG9LVEROS01XSnVUWFpOZWtrMFRXcGpNMDlFVVRKT2FtdDJXVmhTTUZwWE1YZGtTRTEyVFZSQlYwSm5iM0pDWjBWRlFWbFBMMDFCUlZkQ1FXZE5RbTVDTVFwWmJYaHdXWHBDUjBKbmIzSkNaMFZGUVZsUEwwMUJSVmxDUkdkTlRtNUtiR05IT0RaaFNGWnVXakpzZFZveVdtaFpNbFYyWVRKV2VXSnRWbk5qZVRGcUNtSXlNWFJrVnpWd1pFaHJObU50Vm0xUGJrcHNXbTVOZG1GSFZtaGFTRTEyWWxkR2NHSnFRMEpwZDFsTFMzZFpRa0pCU0ZkbFVVbEZRV2RTT1VKSWMwRUtaVkZDTTBGT01EbE5SM0pIZUhoRmVWbDRhMlZJU214dVRuZExhVk5zTmpRemFubDBMelJsUzJOdlFYWkxaVFpQUVVGQlFtOUVaM0F6T0VsQlFVRlJSQXBCUldkM1VtZEphRUZRVVZGSldubzNaV0ZDYjJwcllYUnNhemhwV0VsU1lWY3ZjRXd6YUZaRFZTOHZNMVZQTTJ0T2FXcFFRV2xGUVhoV1VrdDJUVzgxQ2xadk16Rk5aVlpGTjNaSlMyaFNNa0pCY1dKak0zZzVXakZDYkdnd1dYUkpheTlWZDBObldVbExiMXBKZW1vd1JVRjNUVVJoVVVGM1dtZEplRUZPVDNrS2FGY3plWFJWUldKRlNHaEpTMEpWWTFGTGMxaGFSR052VERSc1FtUlVNa1owZGtaTk1EaEdVV0UzTW5WeVQzZHJlVzl3ZGtweU1WWllaWGc1ZUhkSmVBcEJUbmxMUkZoR1kyRk1VakozWjFsaFNYRjJSRVZIVFVGNWNrMXVjWEJYT0ZabEswUmlkVUl6T0dsMlUweHRRbGhWWjJoSE0wRTNRa2RNTUROMmRYZFNDazluUFQwS0xTMHRMUzFGVGtRZ1EwVlNWRWxHU1VOQlZFVXRMUzB0TFFvPSJ9fX19"}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyTADAgEAMIICwAYJKoZIhvcNAQcCoIICsTCCAq0CAQMxDTALBglghkgBZQMEAgEwgbcGCyqGSIb3DQEJEAEEoIGnBIGkMIGhAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgz0hFoOzWMn1ugCwI4Cl3Q0zNY4+1iAwJuG87AQJaQqwCFEiAYaKPjS+hHXzk+8td2tL7hz0OGA8yMDI2MDgyNTA5MDQyM1owAwIBAaAypDAwLjEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MRUwEwYDVQQDEwxzaWdzdG9yZS10c2GgADGCAdswggHXAgEBMFEwOTEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MSAwHgYDVQQDExdzaWdzdG9yZS10c2Etc2VsZnNpZ25lZAIUOhNULwyQYe68wUMvy4qOiyojiwwwCwYJYIZIAWUDBAIBoIH8MBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAcBgkqhkiG9w0BCQUxDxcNMjYwODI1MDkwNDIzWjAvBgkqhkiG9w0BCQQxIgQgH+AIaEwIMnA3FUB5J5ywXdosgLgpTfXC5fJzBvI4Z8kwgY4GCyqGSIb3DQEJEAIvMX8wfTB7MHkEIIX5J7wHq2LKw7RDVsEO/IGyxog/2nq55thw2dE6zQW3MFUwPaQ7MDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAoGCCqGSM49BAMCBGcwZQIxAJ3HM5N355NuAV81ND9QDwFx/5Otbul1bq9UzK77Y6cxbcm2bcc9vWHhQX5JHwS0DwIwU+SRY3MUSsyfu4TQcmqa2CSLEh1xpv+lS5OZNePO4kFyJMcrWvyW7iLqaboWRtS+"}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"tlz1iyWObEetoSA6fv6Bs/mSWWj0TUB8OR9YPIZjfvA="},"signature":"MEUCICvPipAyLhKeTdsQo/hVyF71xUfA7CmUg8qOJVJ4vxoQAiEAqmnpPU6Ulb2VYE+j18H589huWNSwvuwWk7zHvK8VZ9w="}}
 
1
+ {"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"MIIHSjCCBtGgAwIBAgIUR6V5DsY+BUjiWw5r2c1qjLPvdiQwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwODI1MTIxOTUxWhcNMjYwODI1MTIyOTUxWjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE7gYKoefCOR8Uuuo0KKEC/i1pDpwXBHrXIBWslUjoacrgtjgtBkkyl7W53Arjltz+jONjwyjLUQ08vvF1Ux0EF6OCBfAwggXsMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUGQJUwNpUSbKeghT51q3xxXFkR7AwHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wawYDVR0RAQH/BGEwX4ZdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDkGCisGAQQBg78wAQEEK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wHwYKKwYBBAGDvzABAgQRd29ya2Zsb3dfZGlzcGF0Y2gwNgYKKwYBBAGDvzABAwQoYzRkMGRjNTY2NjFiYWRiOWNjNDdiZGU2NDdlMDhmZTNiNGJmNzQ1ODATBgorBgEEAYO/MAEEBAVCdWlsZDArBgorBgEEAYO/MAEFBB1odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTAdBgorBgEEAYO/MAEGBA9yZWZzL2hlYWRzL21haW4wOwYKKwYBBAGDvzABCAQtDCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMG0GCisGAQQBg78wAQkEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wAQoEKgwoYzRkMGRjNTY2NjFiYWRiOWNjNDdiZGU2NDdlMDhmZTNiNGJmNzQ1ODAbBgorBgEEAYO/MAELBA0MC3NlbGYtaG9zdGVkMEAGCisGAQQBg78wAQwEMgwwaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MDgGCisGAQQBg78wAQ0EKgwoYzRkMGRjNTY2NjFiYWRiOWNjNDdiZGU2NDdlMDhmZTNiNGJmNzQ1ODAfBgorBgEEAYO/MAEOBBEMD3JlZnMvaGVhZHMvbWFpbjAaBgorBgEEAYO/MAEPBAwMCjEwNzE0NzU1MjkwLgYKKwYBBAGDvzABEAQgDB5odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2UwGAYKKwYBBAGDvzABEQQKDAgyNTcyMDc0MzBtBgorBgEEAYO/MAESBF8MXWh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS8uZ2l0aHViL3dvcmtmbG93cy9idWlsZC55YW1sQHJlZnMvaGVhZHMvbWFpbjA4BgorBgEEAYO/MAETBCoMKGM0ZDBkYzU2NjYxYmFkYjljYzQ3YmRlNjQ3ZTA4ZmUzYjRiZjc0NTgwIQYKKwYBBAGDvzABFAQTDBF3b3JrZmxvd19kaXNwYXRjaDBkBgorBgEEAYO/MAEVBFYMVGh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS9hY3Rpb25zL3J1bnMvMzI4NDQ2ODk4OTQvYXR0ZW1wdHMvMTAWBgorBgEEAYO/MAEWBAgMBnB1YmxpYzBGBgorBgEEAYO/MAEYBDgMNnJlcG86aHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHk6cmVmOnJlZnMvaGVhZHMvbWFpbjCBigYKKwYBBAHWeQIEAgR8BHoAeAB2AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABoDjc1RAAAAQDAEcwRQIhAIOqviLWyBZ4fvHEQ9eU/Kgww8nVyiiAV0WBGiJiu/tVAiBMsb02VYbhOxkBBDStdnFZJ/N1MGuQ+FUpJGUdT5qNxTAKBggqhkjOPQQDAwNnADBkAjBss8HABHHIKQDP/F+9uP9E9nmFWe0kUXPrjYVvE+1bUe5tyGR5bMMaXxP0Q41kfh4CMFg/cI8KJw+kPh27DBQ9sYjSkc8f5bZUJYBbagK55LiShYCcw3HNhp7YWTYHZ40nRA=="},"tlogEntries":[{"logIndex":"2583301071","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1787660391","inclusionPromise":{"signedEntryTimestamp":"MEQCIFaRBMNqb2UzX17vvi03NAGB9N7KjD0ek/F3MK3dgk1DAiBh0SOUPznKvRak8LPggkSZ03vgIt8tPoyaRGZJOainog=="},"inclusionProof":{"logIndex":"2461396809","rootHash":"sl0UVi5RDbF3bSCUSaWGQE1oePiJjoIC/BgnmiQlh+s=","treeSize":"2461396811","hashes":["qo6aB3Hw4estRMl0wNfEH9rgMokpYK4i7domAC10rBk=","BKyclpo60HrwVu1wzV4oEIvIqw9yJcwegdboJpq4Kyk=","GwLU1nZb+kv6KSHNSTfVgszkWZtBuRcF8bd6nFemKik=","FGoQjvguQqmlhEbn1uhWpAr5TNW2H4r+sHzTjsLX/Ec=","M1KvBxaBWRZCfg7zEqvTKXXoAv5EZdP6wtNwhsr1HU0=","rJMFK17JIR2K3LvDkBdSnu34bvtB3vXQPdwQg0pZ8co=","sBRt94T302PGfFAkqNx12yVeZQ2wK8MXBkspHV8OBEU=","bBUTypOI8GgjhxRM30SIZoDfZopPulgZgxKAp1agI1Q=","EY8T0lxQDrmYoWBGpKNGttaHfKmpfqKcWqSNF4XOQKE=","T4Jz+m9vO48rOpMSsdZSW28/bgHR8prz7JeNX1s7WiQ=","EXKrSbeG2qm5APD5QSDN66X7UHz9OSofiW9PyNU7fPM=","cjIeeutzThxIPTlFFHJqa7bAzn3k2FzK8Nrdd56OWvE=","+pNXWGIXzU1dqSy/aePHKYtSkDnFinI+/bL5HnurJ6w=","G1R9F5B2KizFA2NyhDznjNKXPOF1SDmbGHz+omLG7TY=","RZ7XwGuqMr5gDUh2HpUcaXp+AmIiEcPJiMui4GLJE7o=","mBm+vQtn0C4thMnlTnxfxqowq1dXsPBCKaJ85da3JeU=","b80/J/68RC8/tx5xRdlKk6MmTpZiVRotquWBrE/z1pI=","SndbMKVtcTenAkwi2JBfGzD+mhexp1qJbRIY+A1JRIU=","xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n2461396811\nsl0UVi5RDbF3bSCUSaWGQE1oePiJjoIC/BgnmiQlh+s=\n\n— rekor.sigstore.dev wNI9ajBFAiEAhZQWSotNGDvxWiPc5eFw6kVIFRg3g2oid+JUgi04KfkCIBy+gxK9Kao3QjMx5I8y4a6SPbG3Xu6zMnTOzTLNjla9\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiIxMDkzNjJiNmFmZDZhMWVlOTA1ZDNiNzcwNjc4YWFmNzJiOGNjMjYyOTlmODkwOWMyYWVlNGQ3YjY1NGI5MzEzIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FUUNJR2k2R1ZLS21wZ01qY0IzNjdSZHE5Uks2Q3ppejBPTlAxcUdmSFFOcTNPaEFpQXJ3S1ZVNitYNzFRQTN3ZWNWbHVCMG1meFFXNkVmZFd5TWtkcEdjZk5lNWc9PSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaFRha05EUW5SSFowRjNTVUpCWjBsVlVqWldOVVJ6V1N0Q1ZXcHBWM2MxY2pKak1YRnFURkIyWkdsUmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDlFU1RGTlZFbDRUMVJWZUZkb1kwNU5hbGwzVDBSSk1VMVVTWGxQVkZWNFYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVUzWjFsTGIyVm1RMDlTT0ZWMWRXOHdTMHRGUXk5cE1YQkVjSGRZUWtoeVdFbENWM01LYkZWcWIyRmpjbWQwYW1kMFFtdHJlV3czVnpVelFYSnFiSFI2SzJwUFRtcDNlV3BNVlZFd09IWjJSakZWZURCRlJqWlBRMEptUVhkbloxaHpUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlZIVVVwVkNuZE9jRlZUWWt0bFoyaFVOVEZ4TTNoNFdFWnJVamRCZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDJGM1dVUldVakJTUVZGSUwwSkhSWGRZTkZwa1lVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKb01Wb3laSEJpYldSdFdWZE9iQXBNTW5Sc1kyMDFiR0pJVFhSWk1qbDBZbGhXZFdGWVVqVk1lVFZ1WVZoU2IyUlhTWFprTWpsNVlUSmFjMkl6WkhwTU1rb3hZVmQ0YTB4dWJHaGlWM2hCQ21OdFZtMWplVGx2V2xkR2EyTjVPWFJaVjJ4MVRVUnJSME5wYzBkQlVWRkNaemM0ZDBGUlJVVkxNbWd3WkVoQ2VrOXBPSFprUnpseVdsYzBkVmxYVGpBS1lWYzVkV041Tlc1aFdGSnZaRmRLTVdNeVZubFpNamwxWkVkV2RXUkROV3BpTWpCM1NIZFpTMHQzV1VKQ1FVZEVkbnBCUWtGblVWSmtNamw1WVRKYWN3cGlNMlJtV2tkc2VtTkhSakJaTW1kM1RtZFpTMHQzV1VKQ1FVZEVkbnBCUWtGM1VXOVplbEpyVFVkU2FrNVVXVEpPYWtacFdWZFNhVTlYVG1wT1JHUnBDbHBIVlRKT1JHUnNUVVJvYlZwVVRtbE9SMHB0VG5wUk1VOUVRVlJDWjI5eVFtZEZSVUZaVHk5TlFVVkZRa0ZXUTJSWGJITmFSRUZ5UW1kdmNrSm5SVVVLUVZsUEwwMUJSVVpDUWpGdlpGZGtibUZYTlc1YWJVWnFXbE01Y2xwWVNuVmFWM2g2VEZkT2RtSlhNVEZpYld3d1pWUkJaRUpuYjNKQ1owVkZRVmxQTHdwTlFVVkhRa0U1ZVZwWFducE1NbWhzV1ZkU2Vrd3lNV2hoVnpSM1QzZFpTMHQzV1VKQ1FVZEVkbnBCUWtOQlVYUkVRM1J2WkVoU2QyTjZiM1pNTTFKMkNtRXlWblZNYlVacVpFZHNkbUp1VFhWYU1td3dZVWhXYVdSWVRteGpiVTUyWW01U2JHSnVVWFZaTWpsMFRVY3dSME5wYzBkQlVWRkNaemM0ZDBGUmEwVUtXSGQ0WkdGSVVqQmpTRTAyVEhrNWJtRllVbTlrVjBsMVdUSTVkRXd5YURGYU1tUndZbTFrYlZsWFRteE1NblJzWTIwMWJHSklUWFJaTWpsMFlsaFdkUXBoV0ZJMVRIazFibUZZVW05a1YwbDJaREk1ZVdFeVduTmlNMlI2VERKS01XRlhlR3RNYm14b1lsZDRRV050Vm0xamVUbHZXbGRHYTJONU9YUlpWMngxQ2sxRVowZERhWE5IUVZGUlFtYzNPSGRCVVc5RlMyZDNiMWw2VW10TlIxSnFUbFJaTWs1cVJtbFpWMUpwVDFkT2FrNUVaR2xhUjFVeVRrUmtiRTFFYUcwS1dsUk9hVTVIU20xT2VsRXhUMFJCWWtKbmIzSkNaMFZGUVZsUEwwMUJSVXhDUVRCTlF6Tk9iR0pIV1hSaFJ6bDZaRWRXYTAxRlFVZERhWE5IUVZGUlFncG5OemgzUVZGM1JVMW5kM2RoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlUxRVowZERhWE5IUVZGUlFtYzNPSGRCVVRCRlMyZDNiMWw2VW10TlIxSnFUbFJaTWs1cVJtbFpWMUpwVDFkT2FrNUVaR2tLV2tkVk1rNUVaR3hOUkdodFdsUk9hVTVIU20xT2VsRXhUMFJCWmtKbmIzSkNaMFZGUVZsUEwwMUJSVTlDUWtWTlJETktiRnB1VFhaaFIxWm9Xa2hOZGdwaVYwWndZbXBCWVVKbmIzSkNaMFZGUVZsUEwwMUJSVkJDUVhkTlEycEZkMDU2UlRCT2VsVXhUV3ByZDB4bldVdExkMWxDUWtGSFJIWjZRVUpGUVZGbkNrUkNOVzlrU0ZKM1kzcHZka3d5WkhCa1IyZ3hXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWM1IwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWUlVVc0tSRUZuZVU1VVkzbE5SR013VFhwQ2RFSm5iM0pDWjBWRlFWbFBMMDFCUlZOQ1JqaE5XRmRvTUdSSVFucFBhVGgyV2pKc01HRklWbWxNYlU1MllsTTVid3BrVjJSdVlWYzFibHB0Um1wYVV6bHlXbGhLZFZwWGVIcE1WMDUyWWxjeE1XSnRiREJsVXpoMVdqSnNNR0ZJVm1sTU0yUjJZMjEwYldKSE9UTmplVGxwQ21SWGJITmFRelUxV1ZjeGMxRklTbXhhYmsxMllVZFdhRnBJVFhaaVYwWndZbXBCTkVKbmIzSkNaMFZGUVZsUEwwMUJSVlJDUTI5TlMwZE5NRnBFUW1zS1dYcFZNazVxV1hoWmJVWnJXV3BzYWxsNlVUTlpiVkpzVG1wUk0xcFVRVFJhYlZWNldXcFNhVnBxWXpCT1ZHZDNTVkZaUzB0M1dVSkNRVWRFZG5wQlFncEdRVkZVUkVKR00ySXpTbkphYlhoMlpERTVhMkZZVG5kWldGSnFZVVJDYTBKbmIzSkNaMFZGUVZsUEwwMUJSVlpDUmxsTlZrZG9NR1JJUW5wUGFUaDJDbG95YkRCaFNGWnBURzFPZG1KVE9XOWtWMlJ1WVZjMWJscHRSbXBhVXpseVdsaEtkVnBYZUhwTVYwNTJZbGN4TVdKdGJEQmxVemxvV1ROU2NHSXlOWG9LVEROS01XSnVUWFpOZWtrMFRrUlJNazlFYXpSUFZGRjJXVmhTTUZwWE1YZGtTRTEyVFZSQlYwSm5iM0pDWjBWRlFWbFBMMDFCUlZkQ1FXZE5RbTVDTVFwWmJYaHdXWHBDUjBKbmIzSkNaMFZGUVZsUEwwMUJSVmxDUkdkTlRtNUtiR05IT0RaaFNGWnVXakpzZFZveVdtaFpNbFYyWVRKV2VXSnRWbk5qZVRGcUNtSXlNWFJrVnpWd1pFaHJObU50Vm0xUGJrcHNXbTVOZG1GSFZtaGFTRTEyWWxkR2NHSnFRMEpwWjFsTFMzZFpRa0pCU0ZkbFVVbEZRV2RTT0VKSWIwRUtaVUZDTWtGT01EbE5SM0pIZUhoRmVWbDRhMlZJU214dVRuZExhVk5zTmpRemFubDBMelJsUzJOdlFYWkxaVFpQUVVGQlFtOUVhbU14VWtGQlFVRlJSQXBCUldOM1VsRkphRUZKVDNGMmFVeFhlVUphTkdaMlNFVlJPV1ZWTDB0bmQzYzRibFo1YVdsQlZqQlhRa2RwU21sMUwzUldRV2xDVFhOaU1ESldXV0pvQ2s5NGEwSkNSRk4wWkc1R1drb3ZUakZOUjNWUkswWlZjRXBIVldSVU5YRk9lRlJCUzBKblozRm9hMnBQVUZGUlJFRjNUbTVCUkVKclFXcENjM000U0VFS1FraElTVXRSUkZBdlJpczVkVkE1UlRsdWJVWlhaVEJyVlZoUWNtcFpWblpGS3pGaVZXVTFkSGxIVWpWaVRVMWhXSGhRTUZFME1XdG1hRFJEVFVabkx3cGpTVGhMU25jcmExQm9NamRFUWxFNWMxbHFVMnRqT0dZMVlscFZTbGxDWW1GblN6VTFUR2xUYUZsRFkzY3pTRTVvY0RkWlYxUlpTRm8wTUc1U1FUMDlDaTB0TFMwdFJVNUVJRU5GVWxSSlJrbERRVlJGTFMwdExTMEsifX19fQ=="}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyjADAgEAMIICwQYJKoZIhvcNAQcCoIICsjCCAq4CAQMxDTALBglghkgBZQMEAgEwgbcGCyqGSIb3DQEJEAEEoIGnBIGkMIGhAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQg23pLsv2SNwLyENKWzryBIjNBKrqJeSctyHAlEpgVbLwCFDUVnCbcEIhJh/dnfHJ9ChZVJVfLGA8yMDI2MDgyNTEyMTk1MVowAwIBAaAypDAwLjEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MRUwEwYDVQQDEwxzaWdzdG9yZS10c2GgADGCAdwwggHYAgEBMFEwOTEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MSAwHgYDVQQDExdzaWdzdG9yZS10c2Etc2VsZnNpZ25lZAIUOhNULwyQYe68wUMvy4qOiyojiwwwCwYJYIZIAWUDBAIBoIH8MBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAcBgkqhkiG9w0BCQUxDxcNMjYwODI1MTIxOTUxWjAvBgkqhkiG9w0BCQQxIgQgmLR1EEB06NIbo3z3jpCmMyZydKN9RFu4DeOK364OWEowgY4GCyqGSIb3DQEJEAIvMX8wfTB7MHkEIIX5J7wHq2LKw7RDVsEO/IGyxog/2nq55thw2dE6zQW3MFUwPaQ7MDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAoGCCqGSM49BAMCBGgwZgIxAK7TQPzO1tjmX1JB3NlYp3ZH9BRMpzcUPRXoKowYZ0S0mPp7xzdWGNBEBvwIzU90OwIxAMp/r5GUVsO5bsSmCcXlS5S9L23GaVlCwacwMEzpew+e1DCo4yG1+oijC7yhxAAQOA=="}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"EJNitq/Woe6QXTt3Bniq9yuMwmKZ+JCcKu5Ne2VLkxM="},"signature":"MEQCIGi6GVKKmpgMjcB367Rdq9RK6Cziz0ONP1qGfHQNq3OhAiArwKVU6+X71QA3wecVluB0mfxQW6EfdWyMkdpGcfNe5g=="}}
build/torch212-cxx11-cu132-aarch64-linux/xpu_fused_moe.py CHANGED
@@ -26,7 +26,7 @@ def _register_xpu_fake_kernels():
26
 
27
  _register_if_available(
28
  "cutlass_grouped_gemm_interface",
29
- lambda ptr_A, ptr_B, ptr_scales, ptr_bias, ptr_D, expert_first_token_offset, N, K, num_experts, is_B_int4, is_B_mxfp4: ptr_D,
30
  )
31
 
32
  _register_if_available(
@@ -106,12 +106,13 @@ def cutlass_grouped_gemm(input_A, input_B, bias, output, expert_token_count, n,
106
  K=k,
107
  num_experts=num_experts,
108
  is_B_int4=False,
109
- is_B_mxfp4=False)
 
110
 
111
 
112
  def cutlass_grouped_gemm_xe2(input_A, input_B, scales, bias, output,
113
  num_rows_per_expert, n, k, num_experts, is_B_int4,
114
- is_B_mxfp4):
115
  expert_first_token_offset = torch.cat([
116
  torch.tensor([0],
117
  dtype=num_rows_per_expert.dtype,
@@ -129,7 +130,8 @@ def cutlass_grouped_gemm_xe2(input_A, input_B, scales, bias, output,
129
  K=k,
130
  num_experts=num_experts,
131
  is_B_int4=is_B_int4,
132
- is_B_mxfp4=is_B_mxfp4)
 
133
 
134
 
135
  def ceilDiv(a, b):
@@ -206,7 +208,8 @@ def xpu_fused_moe(hidden_states,
206
  ep_size=1,
207
  is_fp8=False,
208
  is_int4=False,
209
- is_mxfp4=False):
 
210
  '''
211
  hidden_states: [num_rows, hidden_size]
212
  w13: [num_experts, 2*inter_size, hidden_size]
@@ -228,6 +231,7 @@ def xpu_fused_moe(hidden_states,
228
  num_experts: int
229
  is_int4: bool
230
  is_mxfp4: bool
 
231
  '''
232
 
233
  # Resolve DTensors to local tensors before passing to custom ops
@@ -266,7 +270,7 @@ def xpu_fused_moe(hidden_states,
266
 
267
  # 4bits support [E, N, K]
268
  # other types [E, K, N]
269
- if not is_int4 and not is_mxfp4:
270
  if not hasattr(w13, 'xpu_fused_moe'):
271
  if needs_transpose:
272
  w13.data = w13.transpose(-1, -2).contiguous()
@@ -389,7 +393,7 @@ def xpu_fused_moe(hidden_states,
389
  ########### gemm1 ##################
390
  input_B = w13
391
 
392
- if not is_fp8 and not is_int4 and not is_mxfp4:
393
  ops.cutlass_grouped_gemm_interface(
394
  ptr_A=gemm1_input,
395
  ptr_B=input_B,
@@ -401,7 +405,8 @@ def xpu_fused_moe(hidden_states,
401
  K=hidden_size,
402
  num_experts=num_experts_per_node,
403
  is_B_int4=is_int4,
404
- is_B_mxfp4=is_mxfp4)
 
405
  else:
406
  ops.cutlass_grouped_gemm_interface(
407
  ptr_A=gemm1_input,
@@ -414,7 +419,8 @@ def xpu_fused_moe(hidden_states,
414
  K=hidden_size,
415
  num_experts=num_experts_per_node,
416
  is_B_int4=is_int4,
417
- is_B_mxfp4=is_mxfp4)
 
418
 
419
  # act
420
  act_output = torch.empty((num_moe_inputs, inter_size),
@@ -435,7 +441,7 @@ def xpu_fused_moe(hidden_states,
435
  gemm2_output = torch.empty((num_moe_inputs, hidden_size),
436
  dtype=hidden_states.dtype,
437
  device=hidden_states.device)
438
- if not is_fp8 and not is_int4 and not is_mxfp4:
439
  ops.cutlass_grouped_gemm_interface(
440
  ptr_A=input_A,
441
  ptr_B=input_B,
@@ -447,7 +453,8 @@ def xpu_fused_moe(hidden_states,
447
  K=inter_size,
448
  num_experts=num_experts_per_node,
449
  is_B_int4=is_int4,
450
- is_B_mxfp4=is_mxfp4)
 
451
  else:
452
  ops.cutlass_grouped_gemm_interface(
453
  ptr_A=input_A,
@@ -460,7 +467,8 @@ def xpu_fused_moe(hidden_states,
460
  K=inter_size,
461
  num_experts=num_experts_per_node,
462
  is_B_int4=is_int4,
463
- is_B_mxfp4=is_mxfp4)
 
464
 
465
  ops.moe_gather(output, gemm2_output, topk_weights,
466
  permuted_row_to_unpermuted_row,
@@ -633,6 +641,7 @@ class MegaBlocksMoeMLP(torch.nn.Module):
633
  is_fp8 = getattr(self.experts, "is_fp8", False)
634
  is_int4 = getattr(self.experts, "is_int4", False)
635
  is_mxfp4 = getattr(self.experts, "is_mxfp4", False)
 
636
 
637
  w13_scales = getattr(self.experts, "gate_up_proj_scales", None)
638
  w2_scales = getattr(self.experts, "down_proj_scales", None)
@@ -685,6 +694,7 @@ class MegaBlocksMoeMLP(torch.nn.Module):
685
  is_fp8=is_fp8,
686
  is_int4=is_int4,
687
  is_mxfp4=is_mxfp4,
 
688
  )
689
 
690
  # All-reduce across EP group to combine partial expert outputs
 
26
 
27
  _register_if_available(
28
  "cutlass_grouped_gemm_interface",
29
+ lambda ptr_A, ptr_B, ptr_scales, ptr_bias, ptr_D, expert_first_token_offset, N, K, num_experts, is_B_int4, is_B_mxfp4, is_B_mxfp8=False: ptr_D,
30
  )
31
 
32
  _register_if_available(
 
106
  K=k,
107
  num_experts=num_experts,
108
  is_B_int4=False,
109
+ is_B_mxfp4=False,
110
+ is_B_mxfp8=False)
111
 
112
 
113
  def cutlass_grouped_gemm_xe2(input_A, input_B, scales, bias, output,
114
  num_rows_per_expert, n, k, num_experts, is_B_int4,
115
+ is_B_mxfp4, is_B_mxfp8=False):
116
  expert_first_token_offset = torch.cat([
117
  torch.tensor([0],
118
  dtype=num_rows_per_expert.dtype,
 
130
  K=k,
131
  num_experts=num_experts,
132
  is_B_int4=is_B_int4,
133
+ is_B_mxfp4=is_B_mxfp4,
134
+ is_B_mxfp8=is_B_mxfp8)
135
 
136
 
137
  def ceilDiv(a, b):
 
208
  ep_size=1,
209
  is_fp8=False,
210
  is_int4=False,
211
+ is_mxfp4=False,
212
+ is_mxfp8=False):
213
  '''
214
  hidden_states: [num_rows, hidden_size]
215
  w13: [num_experts, 2*inter_size, hidden_size]
 
231
  num_experts: int
232
  is_int4: bool
233
  is_mxfp4: bool
234
+ is_mxfp8: bool
235
  '''
236
 
237
  # Resolve DTensors to local tensors before passing to custom ops
 
270
 
271
  # 4bits support [E, N, K]
272
  # other types [E, K, N]
273
+ if not is_int4 and not is_mxfp4 and not is_mxfp8:
274
  if not hasattr(w13, 'xpu_fused_moe'):
275
  if needs_transpose:
276
  w13.data = w13.transpose(-1, -2).contiguous()
 
393
  ########### gemm1 ##################
394
  input_B = w13
395
 
396
+ if not is_fp8 and not is_int4 and not is_mxfp4 and not is_mxfp8:
397
  ops.cutlass_grouped_gemm_interface(
398
  ptr_A=gemm1_input,
399
  ptr_B=input_B,
 
405
  K=hidden_size,
406
  num_experts=num_experts_per_node,
407
  is_B_int4=is_int4,
408
+ is_B_mxfp4=is_mxfp4,
409
+ is_B_mxfp8=is_mxfp8)
410
  else:
411
  ops.cutlass_grouped_gemm_interface(
412
  ptr_A=gemm1_input,
 
419
  K=hidden_size,
420
  num_experts=num_experts_per_node,
421
  is_B_int4=is_int4,
422
+ is_B_mxfp4=is_mxfp4,
423
+ is_B_mxfp8=is_mxfp8)
424
 
425
  # act
426
  act_output = torch.empty((num_moe_inputs, inter_size),
 
441
  gemm2_output = torch.empty((num_moe_inputs, hidden_size),
442
  dtype=hidden_states.dtype,
443
  device=hidden_states.device)
444
+ if not is_fp8 and not is_int4 and not is_mxfp4 and not is_mxfp8:
445
  ops.cutlass_grouped_gemm_interface(
446
  ptr_A=input_A,
447
  ptr_B=input_B,
 
453
  K=inter_size,
454
  num_experts=num_experts_per_node,
455
  is_B_int4=is_int4,
456
+ is_B_mxfp4=is_mxfp4,
457
+ is_B_mxfp8=is_mxfp8)
458
  else:
459
  ops.cutlass_grouped_gemm_interface(
460
  ptr_A=input_A,
 
467
  K=inter_size,
468
  num_experts=num_experts_per_node,
469
  is_B_int4=is_int4,
470
+ is_B_mxfp4=is_mxfp4,
471
+ is_B_mxfp8=is_mxfp8)
472
 
473
  ops.moe_gather(output, gemm2_output, topk_weights,
474
  permuted_row_to_unpermuted_row,
 
641
  is_fp8 = getattr(self.experts, "is_fp8", False)
642
  is_int4 = getattr(self.experts, "is_int4", False)
643
  is_mxfp4 = getattr(self.experts, "is_mxfp4", False)
644
+ is_mxfp8 = getattr(self.experts, "is_mxfp8", False)
645
 
646
  w13_scales = getattr(self.experts, "gate_up_proj_scales", None)
647
  w2_scales = getattr(self.experts, "down_proj_scales", None)
 
694
  is_fp8=is_fp8,
695
  is_int4=is_int4,
696
  is_mxfp4=is_mxfp4,
697
+ is_mxfp8=is_mxfp8,
698
  )
699
 
700
  # All-reduce across EP group to combine partial expert outputs
build/torch213-cxx11-cu126-aarch64-linux/{_megablocks_cuda_18e92fb.abi3.so → _megablocks_cuda_c4d0dc5.abi3.so} RENAMED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:d336b0c91c9347ae68ffd838415103adf66e23d55c83c5a0aa0356feb4bde811
3
  size 13179656
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:158335ce098593106590acae2ece601bca6f9f3350e61a5c150e58fbaa62ce41
3
  size 13179656
build/torch213-cxx11-cu126-aarch64-linux/_ops.py CHANGED
@@ -1,9 +1,9 @@
1
  import torch
2
- from . import _megablocks_cuda_18e92fb
3
- ops = torch.ops._megablocks_cuda_18e92fb
4
 
5
  def add_op_namespace_prefix(op_name: str):
6
  """
7
  Prefix op by namespace.
8
  """
9
- return f"_megablocks_cuda_18e92fb::{op_name}"
 
1
  import torch
2
+ from . import _megablocks_cuda_c4d0dc5
3
+ ops = torch.ops._megablocks_cuda_c4d0dc5
4
 
5
  def add_op_namespace_prefix(op_name: str):
6
  """
7
  Prefix op by namespace.
8
  """
9
+ return f"_megablocks_cuda_c4d0dc5::{op_name}"
build/torch213-cxx11-cu126-aarch64-linux/metadata.json CHANGED
@@ -1,6 +1,6 @@
1
  {
2
  "name": "megablocks",
3
- "id": "_megablocks_cuda_18e92fb",
4
  "version": 1,
5
  "license": "Apache-2.0",
6
  "python-depends": [],
@@ -48,8 +48,8 @@
48
  "_layers/mpu.py": "BX61/pmqRCVeEMnzpuK8x5NpITBJyZfOawGnDegW1O8=",
49
  "_layers/router.py": "GKC/5//Uf43HT6zXlBTStCMTml2YXn7Jbgq9EgTgDC0=",
50
  "_layers/sharedexpert_registry.py": "GfwHKjbC7lBXYq9kNifp3HudTdZKSqwsFxGxFLc2krw=",
51
- "_megablocks_cuda_18e92fb.abi3.so": "0zawyRyTR65o/9g4QVEDrfZuI9Vcg8WgqgNW/rS96BE=",
52
- "_ops.py": "baTEjeHRnpTSLod30qZST/UL5GNv7vZoGeNwQWakxbo=",
53
  "_version.py": "W3l9oUrnmvfBoIy06Lv0y2ezTQhNU04ug/txHcdWJD0=",
54
  "backend/__init__.py": "4bunAqqjwE93nym8CigHbqVAal7UaYGdONb8lGRfrek=",
55
  "backend/kernels.py": "2UFNTlmSDk3S5y6UW14MJMPVVsVhmozxQ5wFDxtZHhQ=",
@@ -100,7 +100,7 @@
100
  "stk/random/__init__.py": "Gr/+Gl20jJ6fJVRfoAUxEcCPeChILQzrzhKVVAWQsRI=",
101
  "stk/random/random_ops.py": "AluIDj3Vo2ReKAsZz07yydbtndDbJoglekRGIaCoRZE=",
102
  "stk/random/random_ops_test.py": "B+a4Zb+OPhBtpVA48oc09sBL/AAQO9j/YUFI0nnXxzk=",
103
- "xpu_fused_moe.py": "Dp6S3fK/Fc4Sr+Ac94vw2zz0v/QTGp6rYeMIUqE3Y/I="
104
  }
105
  },
106
  "provenance": {
@@ -110,7 +110,7 @@
110
  "dirty": false
111
  },
112
  "kernel": {
113
- "sha": "18e92fb6886201ffb91c173f02593777756c793f",
114
  "dirty": false
115
  }
116
  }
 
1
  {
2
  "name": "megablocks",
3
+ "id": "_megablocks_cuda_c4d0dc5",
4
  "version": 1,
5
  "license": "Apache-2.0",
6
  "python-depends": [],
 
48
  "_layers/mpu.py": "BX61/pmqRCVeEMnzpuK8x5NpITBJyZfOawGnDegW1O8=",
49
  "_layers/router.py": "GKC/5//Uf43HT6zXlBTStCMTml2YXn7Jbgq9EgTgDC0=",
50
  "_layers/sharedexpert_registry.py": "GfwHKjbC7lBXYq9kNifp3HudTdZKSqwsFxGxFLc2krw=",
51
+ "_megablocks_cuda_c4d0dc5.abi3.so": "FYM1zgmFkxBlkKyuLs5gG8pvnzNQ5hpcFQ5Y+6pizkE=",
52
+ "_ops.py": "9NSxkX5lSS5VhF9+hDazP5NimwZK2V/+nIXR0AQxnHA=",
53
  "_version.py": "W3l9oUrnmvfBoIy06Lv0y2ezTQhNU04ug/txHcdWJD0=",
54
  "backend/__init__.py": "4bunAqqjwE93nym8CigHbqVAal7UaYGdONb8lGRfrek=",
55
  "backend/kernels.py": "2UFNTlmSDk3S5y6UW14MJMPVVsVhmozxQ5wFDxtZHhQ=",
 
100
  "stk/random/__init__.py": "Gr/+Gl20jJ6fJVRfoAUxEcCPeChILQzrzhKVVAWQsRI=",
101
  "stk/random/random_ops.py": "AluIDj3Vo2ReKAsZz07yydbtndDbJoglekRGIaCoRZE=",
102
  "stk/random/random_ops_test.py": "B+a4Zb+OPhBtpVA48oc09sBL/AAQO9j/YUFI0nnXxzk=",
103
+ "xpu_fused_moe.py": "sPmuRSpkH1Bmk4hdpz53us8Qpc6yinT9rkld3T8WreI="
104
  }
105
  },
106
  "provenance": {
 
110
  "dirty": false
111
  },
112
  "kernel": {
113
+ "sha": "c4d0dc56661badb9cc47bde647e08fe3b4bf7458",
114
  "dirty": false
115
  }
116
  }
build/torch213-cxx11-cu126-aarch64-linux/metadata.json.sigstore CHANGED
@@ -1 +1 @@
1
- {"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"MIIHSzCCBtGgAwIBAgIUMtkI4yZee+nFD9oE0ojbUuNQuCwwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwODI1MDkwNDI0WhcNMjYwODI1MDkxNDI0WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEfHFZ4ZngJ4WZb8DFoiqVzTJvPWmXEMxFT6WlvWvxEtsIWfNQ/1pSlyIFL05wPPCBHb4QfCb+70nk6XcvMJojy6OCBfAwggXsMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUhVu8m6xRGfzGHzm5DUCrPVl2UqAwHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wawYDVR0RAQH/BGEwX4ZdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDkGCisGAQQBg78wAQEEK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wHwYKKwYBBAGDvzABAgQRd29ya2Zsb3dfZGlzcGF0Y2gwNgYKKwYBBAGDvzABAwQoMThlOTJmYjY4ODYyMDFmZmI5MWMxNzNmMDI1OTM3Nzc3NTZjNzkzZjATBgorBgEEAYO/MAEEBAVCdWlsZDArBgorBgEEAYO/MAEFBB1odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTAdBgorBgEEAYO/MAEGBA9yZWZzL2hlYWRzL21haW4wOwYKKwYBBAGDvzABCAQtDCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMG0GCisGAQQBg78wAQkEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wAQoEKgwoMThlOTJmYjY4ODYyMDFmZmI5MWMxNzNmMDI1OTM3Nzc3NTZjNzkzZjAbBgorBgEEAYO/MAELBA0MC3NlbGYtaG9zdGVkMEAGCisGAQQBg78wAQwEMgwwaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MDgGCisGAQQBg78wAQ0EKgwoMThlOTJmYjY4ODYyMDFmZmI5MWMxNzNmMDI1OTM3Nzc3NTZjNzkzZjAfBgorBgEEAYO/MAEOBBEMD3JlZnMvaGVhZHMvbWFpbjAaBgorBgEEAYO/MAEPBAwMCjEwNzE0NzU1MjkwLgYKKwYBBAGDvzABEAQgDB5odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2UwGAYKKwYBBAGDvzABEQQKDAgyNTcyMDc0MzBtBgorBgEEAYO/MAESBF8MXWh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS8uZ2l0aHViL3dvcmtmbG93cy9idWlsZC55YW1sQHJlZnMvaGVhZHMvbWFpbjA4BgorBgEEAYO/MAETBCoMKDE4ZTkyZmI2ODg2MjAxZmZiOTFjMTczZjAyNTkzNzc3NzU2Yzc5M2YwIQYKKwYBBAGDvzABFAQTDBF3b3JrZmxvd19kaXNwYXRjaDBkBgorBgEEAYO/MAEVBFYMVGh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS9hY3Rpb25zL3J1bnMvMzI4Mjc3ODQ2NjkvYXR0ZW1wdHMvMTAWBgorBgEEAYO/MAEWBAgMBnB1YmxpYzBGBgorBgEEAYO/MAEYBDgMNnJlcG86aHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHk6cmVmOnJlZnMvaGVhZHMvbWFpbjCBigYKKwYBBAHWeQIEAgR8BHoAeAB2AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABoDgp4rYAAAQDAEcwRQIga8oGXYawzFWqdSAsUq4qhWiDxXQ75BxnPCGwshHQO78CIQDByTEmOWUlvZ6Lv231Ue9rkX7PF3FePMS8TvC5rVi65zAKBggqhkjOPQQDAwNoADBlAjA1vEg5nCarVDYv4iEhKS4C9W+inN/oxAdPhoZsKhqAn2+C7THLWRqGVSZLZllqVcYCMQCye0RfgEVxBE5W4eA4ipGbuICpse4zumjtUPMpCPeqWgfkTMf2QcAaVwLp/T2fVJ8="},"tlogEntries":[{"logIndex":"2582977808","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1787648664","inclusionPromise":{"signedEntryTimestamp":"MEQCIDDuHbFR9WtNlZNiYAAiTMKqtzzftgD4XEOkVZbTkmp7AiBSnZmi2T0AgHWuaI7zXeYUaMtCgDSn9WRqsTxk6GWMig=="},"inclusionProof":{"logIndex":"2461073546","rootHash":"FV/PYroDwSFapocMH22+zb1LMzrzGqd94dfPheHgPkw=","treeSize":"2461073555","hashes":["7uTLtxRqmmv/8p+v2nnqUM1P42HPrKqaeUl9Wf+2HwE=","8GnqzV8pQl4J9bEUALd8Yp4PRuEnEvkNZcBMaP3Ittc=","gsvwDz2GmRmpXyJPjzpTxkY/K7TV3cNUM0Yemt+N4gs=","E3k6zUKpuWnYY9MRLAT8JUTWcqnh+0gDCDk/frmgjgc=","jzKq0V+XBYBPgZRy3daP/UF1vMDwW7pLdkIs5OpgDoU=","f96QBJwcFN9L0WkH/laITJQPIRru+66zvTEJhSnxV+o=","/pzrkLFRwt/XMVRmL7s6Ii88QiOLu5drCOp/UggZ7TU=","G1R9F5B2KizFA2NyhDznjNKXPOF1SDmbGHz+omLG7TY=","RZ7XwGuqMr5gDUh2HpUcaXp+AmIiEcPJiMui4GLJE7o=","mBm+vQtn0C4thMnlTnxfxqowq1dXsPBCKaJ85da3JeU=","b80/J/68RC8/tx5xRdlKk6MmTpZiVRotquWBrE/z1pI=","SndbMKVtcTenAkwi2JBfGzD+mhexp1qJbRIY+A1JRIU=","xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n2461073555\nFV/PYroDwSFapocMH22+zb1LMzrzGqd94dfPheHgPkw=\n\n— rekor.sigstore.dev wNI9ajBFAiEApeDvQToepg7vll88mcPF7CwRId+qWhPCfA+23kzBlxcCIE3lf8DQbI+tu4nB0ah/XdAB9By6f++NU0jJAG0HGdHj\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiI2N2QyYTIxNTdiYWRhODI4ZTljZDY2ZGMyOTk4ZDgxMWI5MTk4ZmNhNmQwZWNkMTc0NzA3YTcyMjc0MDY1ZmQxIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FWUNJUURSY2VadnJRQ0xSUG5kclI3YmVOVUJHQkVlbTBNbWVkWEJFRW04VDR4ZC9BSWhBS3huTGtlbnpOOEdtai9tQ3ZwY3RZWlVtSUtkVkFJSWVndDFYTFNyTGE1SyIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaFRla05EUW5SSFowRjNTVUpCWjBsVlRYUnJTVFI1V21WbEsyNUdSRGx2UlRCdmFtSlZkVTVSZFVOM2QwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDlFU1RGTlJHdDNUa1JKTUZkb1kwNU5hbGwzVDBSSk1VMUVhM2hPUkVrd1YycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZtU0VaYU5GcHVaMG8wVjFwaU9FUkdiMmx4Vm5wVVNuWlFWMjFZUlUxNFJsUTJWMndLZGxkMmVFVjBjMGxYWms1Ukx6RndVMng1U1VaTU1EVjNVRkJEUWtoaU5GRm1RMklyTnpCdWF6WllZM1pOU205cWVUWlBRMEptUVhkbloxaHpUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlZvVm5VNENtMDJlRkpIWm5wSFNIcHROVVJWUTNKUVZtd3lWWEZCZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDJGM1dVUldVakJTUVZGSUwwSkhSWGRZTkZwa1lVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKb01Wb3laSEJpYldSdFdWZE9iQXBNTW5Sc1kyMDFiR0pJVFhSWk1qbDBZbGhXZFdGWVVqVk1lVFZ1WVZoU2IyUlhTWFprTWpsNVlUSmFjMkl6WkhwTU1rb3hZVmQ0YTB4dWJHaGlWM2hCQ21OdFZtMWplVGx2V2xkR2EyTjVPWFJaVjJ4MVRVUnJSME5wYzBkQlVWRkNaemM0ZDBGUlJVVkxNbWd3WkVoQ2VrOXBPSFprUnpseVdsYzBkVmxYVGpBS1lWYzVkV041Tlc1aFdGSnZaRmRLTVdNeVZubFpNamwxWkVkV2RXUkROV3BpTWpCM1NIZFpTMHQzV1VKQ1FVZEVkbnBCUWtGblVWSmtNamw1WVRKYWN3cGlNMlJtV2tkc2VtTkhSakJaTW1kM1RtZFpTMHQzV1VKQ1FVZEVkbnBCUWtGM1VXOU5WR2hzVDFSS2JWbHFXVFJQUkZsNVRVUkdiVnB0U1RWTlYwMTRDazU2VG0xTlJFa3hUMVJOTTA1Nll6Tk9WRnBxVG5wcmVscHFRVlJDWjI5eVFtZEZSVUZaVHk5TlFVVkZRa0ZXUTJSWGJITmFSRUZ5UW1kdmNrSm5SVVVLUVZsUEwwMUJSVVpDUWpGdlpGZGtibUZYTlc1YWJVWnFXbE01Y2xwWVNuVmFWM2g2VEZkT2RtSlhNVEZpYld3d1pWUkJaRUpuYjNKQ1owVkZRVmxQTHdwTlFVVkhRa0U1ZVZwWFducE1NbWhzV1ZkU2Vrd3lNV2hoVnpSM1QzZFpTMHQzV1VKQ1FVZEVkbnBCUWtOQlVYUkVRM1J2WkVoU2QyTjZiM1pNTTFKMkNtRXlWblZNYlVacVpFZHNkbUp1VFhWYU1td3dZVWhXYVdSWVRteGpiVTUyWW01U2JHSnVVWFZaTWpsMFRVY3dSME5wYzBkQlVWRkNaemM0ZDBGUmEwVUtXSGQ0WkdGSVVqQmpTRTAyVEhrNWJtRllVbTlrVjBsMVdUSTVkRXd5YURGYU1tUndZbTFrYlZsWFRteE1NblJzWTIwMWJHSklUWFJaTWpsMFlsaFdkUXBoV0ZJMVRIazFibUZZVW05a1YwbDJaREk1ZVdFeVduTmlNMlI2VERKS01XRlhlR3RNYm14b1lsZDRRV050Vm0xamVUbHZXbGRHYTJONU9YUlpWMngxQ2sxRVowZERhWE5IUVZGUlFtYzNPSGRCVVc5RlMyZDNiMDFVYUd4UFZFcHRXV3BaTkU5RVdYbE5SRVp0V20xSk5VMVhUWGhPZWs1dFRVUkpNVTlVVFRNS1RucGpNMDVVV21wT2VtdDZXbXBCWWtKbmIzSkNaMFZGUVZsUEwwMUJSVXhDUVRCTlF6Tk9iR0pIV1hSaFJ6bDZaRWRXYTAxRlFVZERhWE5IUVZGUlFncG5OemgzUVZGM1JVMW5kM2RoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlUxRVowZERhWE5IUVZGUlFtYzNPSGRCVVRCRlMyZDNiMDFVYUd4UFZFcHRXV3BaTkU5RVdYbE5SRVp0V20xSk5VMVhUWGdLVG5wT2JVMUVTVEZQVkUwelRucGpNMDVVV21wT2VtdDZXbXBCWmtKbmIzSkNaMFZGUVZsUEwwMUJSVTlDUWtWTlJETktiRnB1VFhaaFIxWm9Xa2hOZGdwaVYwWndZbXBCWVVKbmIzSkNaMFZGUVZsUEwwMUJSVkJDUVhkTlEycEZkMDU2UlRCT2VsVXhUV3ByZDB4bldVdExkMWxDUWtGSFJIWjZRVUpGUVZGbkNrUkNOVzlrU0ZKM1kzcHZka3d5WkhCa1IyZ3hXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWM1IwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWUlVVc0tSRUZuZVU1VVkzbE5SR013VFhwQ2RFSm5iM0pDWjBWRlFWbFBMMDFCUlZOQ1JqaE5XRmRvTUdSSVFucFBhVGgyV2pKc01HRklWbWxNYlU1MllsTTVid3BrVjJSdVlWYzFibHB0Um1wYVV6bHlXbGhLZFZwWGVIcE1WMDUyWWxjeE1XSnRiREJsVXpoMVdqSnNNR0ZJVm1sTU0yUjJZMjEwYldKSE9UTmplVGxwQ21SWGJITmFRelUxV1ZjeGMxRklTbXhhYmsxMllVZFdhRnBJVFhaaVYwWndZbXBCTkVKbmIzSkNaMFZGUVZsUEwwMUJSVlJDUTI5TlMwUkZORnBVYTNrS1dtMUpNazlFWnpKTmFrRjRXbTFhYVU5VVJtcE5WR042V21wQmVVNVVhM3BPZW1NelRucFZNbGw2WXpWTk1sbDNTVkZaUzB0M1dVSkNRVWRFZG5wQlFncEdRVkZVUkVKR00ySXpTbkphYlhoMlpERTVhMkZZVG5kWldGSnFZVVJDYTBKbmIzSkNaMFZGUVZsUEwwMUJSVlpDUmxsTlZrZG9NR1JJUW5wUGFUaDJDbG95YkRCaFNGWnBURzFPZG1KVE9XOWtWMlJ1WVZjMWJscHRSbXBhVXpseVdsaEtkVnBYZUhwTVYwNTJZbGN4TVdKdGJEQmxVemxvV1ROU2NHSXlOWG9LVEROS01XSnVUWFpOZWtrMFRXcGpNMDlFVVRKT2FtdDJXVmhTTUZwWE1YZGtTRTEyVFZSQlYwSm5iM0pDWjBWRlFWbFBMMDFCUlZkQ1FXZE5RbTVDTVFwWmJYaHdXWHBDUjBKbmIzSkNaMFZGUVZsUEwwMUJSVmxDUkdkTlRtNUtiR05IT0RaaFNGWnVXakpzZFZveVdtaFpNbFYyWVRKV2VXSnRWbk5qZVRGcUNtSXlNWFJrVnpWd1pFaHJObU50Vm0xUGJrcHNXbTVOZG1GSFZtaGFTRTEyWWxkR2NHSnFRMEpwWjFsTFMzZFpRa0pCU0ZkbFVVbEZRV2RTT0VKSWIwRUtaVUZDTWtGT01EbE5SM0pIZUhoRmVWbDRhMlZJU214dVRuZExhVk5zTmpRemFubDBMelJsUzJOdlFYWkxaVFpQUVVGQlFtOUVaM0EwY2xsQlFVRlJSQXBCUldOM1VsRkpaMkU0YjBkWVdXRjNla1pYY1dSVFFYTlZjVFJ4YUZkcFJIaFlVVGMxUW5odVVFTkhkM05vU0ZGUE56aERTVkZFUW5sVVJXMVBWMVZzQ25aYU5reDJNak14VldVNWNtdFlOMUJHTTBabFVFMVRPRlIyUXpWeVZtazJOWHBCUzBKblozRm9hMnBQVUZGUlJFRjNUbTlCUkVKc1FXcEJNWFpGWnpVS2JrTmhjbFpFV1hZMGFVVm9TMU0wUXpsWEsybHVUaTl2ZUVGa1VHaHZXbk5MYUhGQmJqSXJRemRVU0V4WFVuRkhWbE5hVEZwc2JIRldZMWxEVFZGRGVRcGxNRkptWjBWV2VFSkZOVmMwWlVFMGFYQkhZblZKUTNCelpUUjZkVzFxZEZWUVRYQkRVR1Z4VjJkbWExUk5aakpSWTBGaFZuZE1jQzlVTW1aV1NqZzlDaTB0TFMwdFJVNUVJRU5GVWxSSlJrbERRVlJGTFMwdExTMEsifX19fQ=="}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyjADAgEAMIICwQYJKoZIhvcNAQcCoIICsjCCAq4CAQMxDTALBglghkgBZQMEAgEwgbgGCyqGSIb3DQEJEAEEoIGoBIGlMIGiAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgoqoIbuGkU55c4aqze3E2FEt7DHBUUMRh7oVbs1KmPa4CFQCelqIn3zbQRqX3MJNRULzg4Gq8ihgPMjAyNjA4MjUwOTA0MjRaMAMCAQGgMqQwMC4xFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEVMBMGA1UEAxMMc2lnc3RvcmUtdHNhoAAxggHbMIIB1wIBATBRMDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAsGCWCGSAFlAwQCAaCB/DAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTI2MDgyNTA5MDQyNFowLwYJKoZIhvcNAQkEMSIEIFbTmlbIsRSQoVdokEAao4eEHVRqVjIIYl9V7f1G7tl2MIGOBgsqhkiG9w0BCRACLzF/MH0wezB5BCCF+Se8B6tiysO0Q1bBDvyBssaIP9p6uebYcNnROs0FtzBVMD2kOzA5MRUwEwYDVQQKEwxzaWdzdG9yZS5kZXYxIDAeBgNVBAMTF3NpZ3N0b3JlLXRzYS1zZWxmc2lnbmVkAhQ6E1QvDJBh7rzBQy/Lio6LKiOLDDAKBggqhkjOPQQDAgRnMGUCMDESmSqRWvk1Tn76GyXxhn0XOgtW4V1AVFp83jWFk45z7h5YqLmZxtYH0WSGpHiOHwIxAKVBsT1scJ7OQCp43sbAECMmKzojVB7fVxhyTPjXN0svKlAL5MTnRKvEDsqQeagINw=="}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"Z9KiFXutqCjpzWbcKZjYEbkZj8ptDs0XRwenInQGX9E="},"signature":"MEYCIQDRceZvrQCLRPndrR7beNUBGBEem0MmedXBEEm8T4xd/AIhAKxnLkenzN8Gmj/mCvpctYZUmIKdVAIIegt1XLSrLa5K"}}
 
1
+ {"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"MIIHSjCCBtCgAwIBAgIUfZ90HuZNi85NghDJd0m2PlvMtu0wCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwODI1MTIxOTUyWhcNMjYwODI1MTIyOTUyWjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEu42GY+SpIP0pI3Yt088XSewhRIRhkMQPeWk7OTFwMXWG7g2yvixZC6GnnZV613K5nw35BTSyqD99E86uonXN5qOCBe8wggXrMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQU3US2ZNisJgS78EtssmJKeUDKFb8wHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wawYDVR0RAQH/BGEwX4ZdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDkGCisGAQQBg78wAQEEK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wHwYKKwYBBAGDvzABAgQRd29ya2Zsb3dfZGlzcGF0Y2gwNgYKKwYBBAGDvzABAwQoYzRkMGRjNTY2NjFiYWRiOWNjNDdiZGU2NDdlMDhmZTNiNGJmNzQ1ODATBgorBgEEAYO/MAEEBAVCdWlsZDArBgorBgEEAYO/MAEFBB1odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTAdBgorBgEEAYO/MAEGBA9yZWZzL2hlYWRzL21haW4wOwYKKwYBBAGDvzABCAQtDCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMG0GCisGAQQBg78wAQkEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wAQoEKgwoYzRkMGRjNTY2NjFiYWRiOWNjNDdiZGU2NDdlMDhmZTNiNGJmNzQ1ODAbBgorBgEEAYO/MAELBA0MC3NlbGYtaG9zdGVkMEAGCisGAQQBg78wAQwEMgwwaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MDgGCisGAQQBg78wAQ0EKgwoYzRkMGRjNTY2NjFiYWRiOWNjNDdiZGU2NDdlMDhmZTNiNGJmNzQ1ODAfBgorBgEEAYO/MAEOBBEMD3JlZnMvaGVhZHMvbWFpbjAaBgorBgEEAYO/MAEPBAwMCjEwNzE0NzU1MjkwLgYKKwYBBAGDvzABEAQgDB5odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2UwGAYKKwYBBAGDvzABEQQKDAgyNTcyMDc0MzBtBgorBgEEAYO/MAESBF8MXWh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS8uZ2l0aHViL3dvcmtmbG93cy9idWlsZC55YW1sQHJlZnMvaGVhZHMvbWFpbjA4BgorBgEEAYO/MAETBCoMKGM0ZDBkYzU2NjYxYmFkYjljYzQ3YmRlNjQ3ZTA4ZmUzYjRiZjc0NTgwIQYKKwYBBAGDvzABFAQTDBF3b3JrZmxvd19kaXNwYXRjaDBkBgorBgEEAYO/MAEVBFYMVGh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS9hY3Rpb25zL3J1bnMvMzI4NDQ2ODk4OTQvYXR0ZW1wdHMvMTAWBgorBgEEAYO/MAEWBAgMBnB1YmxpYzBGBgorBgEEAYO/MAEYBDgMNnJlcG86aHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHk6cmVmOnJlZnMvaGVhZHMvbWFpbjCBiQYKKwYBBAHWeQIEAgR7BHkAdwB1AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABoDjc2BQAAAQDAEYwRAIgTXLYfj3SuFm1R5EocGmsXeLCta8nv9wZ+kxFBpS8qAQCIAwFgHfYaCqPZoA1hHH3v0+nNSDZcy/xx9BNZnK520ehMAoGCCqGSM49BAMDA2gAMGUCMBhJtZuUwGxCNmcZhKZ5zVXnFQ/RI7O8ibMOmgJhWmXuHUEg5Ple5Y1r2BnKeknDzgIxAJ4gFSan3jS6qAbM3JAHTTjdmomSoLTBAZ92t5c7p85ARPg7237gKtY5jzBbmWPvzQ=="},"tlogEntries":[{"logIndex":"2583301082","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1787660392","inclusionPromise":{"signedEntryTimestamp":"MEUCIDsTmracy+YQrPHuOeGkisnPIOXoXhB0ayCBDj+YdJeMAiEAlFa8X7oXcW77B18bCkIWAgE67frIFuUAb6lYQhPmuGQ="},"inclusionProof":{"logIndex":"2461396820","rootHash":"eLNN5MK9k0uvh5m8bWNT0BPQyEkDGXQ/uVeByI97jWs=","treeSize":"2461396824","hashes":["62XGPnXIV7xFzYY7MZF1dtGjBN7xZvqyJR3kOz3IX3M=","QXoPZa0gi+tpxv9r2LMEvHMC7B3wj/bBhQKjgBFp8tQ=","nmNGjIq2+8uLpYDEwshJP8HhsBjCcNBxUKdLf84PDiE=","1KE1pQErum9qeIcrshsYXuDXHVntCDXZ2GVZ6MPH42U=","FGoQjvguQqmlhEbn1uhWpAr5TNW2H4r+sHzTjsLX/Ec=","M1KvBxaBWRZCfg7zEqvTKXXoAv5EZdP6wtNwhsr1HU0=","rJMFK17JIR2K3LvDkBdSnu34bvtB3vXQPdwQg0pZ8co=","sBRt94T302PGfFAkqNx12yVeZQ2wK8MXBkspHV8OBEU=","bBUTypOI8GgjhxRM30SIZoDfZopPulgZgxKAp1agI1Q=","EY8T0lxQDrmYoWBGpKNGttaHfKmpfqKcWqSNF4XOQKE=","T4Jz+m9vO48rOpMSsdZSW28/bgHR8prz7JeNX1s7WiQ=","EXKrSbeG2qm5APD5QSDN66X7UHz9OSofiW9PyNU7fPM=","cjIeeutzThxIPTlFFHJqa7bAzn3k2FzK8Nrdd56OWvE=","+pNXWGIXzU1dqSy/aePHKYtSkDnFinI+/bL5HnurJ6w=","G1R9F5B2KizFA2NyhDznjNKXPOF1SDmbGHz+omLG7TY=","RZ7XwGuqMr5gDUh2HpUcaXp+AmIiEcPJiMui4GLJE7o=","mBm+vQtn0C4thMnlTnxfxqowq1dXsPBCKaJ85da3JeU=","b80/J/68RC8/tx5xRdlKk6MmTpZiVRotquWBrE/z1pI=","SndbMKVtcTenAkwi2JBfGzD+mhexp1qJbRIY+A1JRIU=","xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n2461396824\neLNN5MK9k0uvh5m8bWNT0BPQyEkDGXQ/uVeByI97jWs=\n\n— rekor.sigstore.dev wNI9ajBEAiAIQQOciTwjgOC3UBOGMyHri1jWO/003KTZ7KUjUQ9U7AIgBeYLQ1rHwwchlRSiZ1oSkK9qtDDY4Z4SjXOQ0BZSqHE=\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiIwYTA0MDY4YzUxZWI5ZjAxNzMwYTYwYmZlOTgxNWU0ZjhkZTU5MmI5ZWY2NTAwZDc1YzFhYzY2OTU1MmM1Y2NhIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FUUNJQVdwZEdwRVFYMHBkd0RVcVorYlk5N2NjV2JiTSsvcHIvN1RlZ2pvWFp6T0FpQWhndkFScE5TK0g3Y0pLMlE2alQ1RDVENEthUWJGT0tiV3ZzNWhMYSt3cHc9PSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaFRha05EUW5SRFowRjNTVUpCWjBsVlpsbzVNRWgxV2s1cE9EVk9aMmhFU21Rd2JUSlFiSFpOZEhVd2QwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDlFU1RGTlZFbDRUMVJWZVZkb1kwNU5hbGwzVDBSSk1VMVVTWGxQVkZWNVYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVYxTkRKSFdTdFRjRWxRTUhCSk0xbDBNRGc0V0ZObGQyaFNTVkpvYTAxUlVHVlhhemNLVDFSR2QwMVlWMGMzWnpKNWRtbDRXa00yUjI1dVdsWTJNVE5MTlc1M016VkNWRk41Y1VRNU9VVTROblZ2YmxoT05YRlBRMEpsT0hkbloxaHlUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlV6VlZNeUNscE9hWE5LWjFNM09FVjBjM050U2t0bFZVUkxSbUk0ZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDJGM1dVUldVakJTUVZGSUwwSkhSWGRZTkZwa1lVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKb01Wb3laSEJpYldSdFdWZE9iQXBNTW5Sc1kyMDFiR0pJVFhSWk1qbDBZbGhXZFdGWVVqVk1lVFZ1WVZoU2IyUlhTWFprTWpsNVlUSmFjMkl6WkhwTU1rb3hZVmQ0YTB4dWJHaGlWM2hCQ21OdFZtMWplVGx2V2xkR2EyTjVPWFJaVjJ4MVRVUnJSME5wYzBkQlVWRkNaemM0ZDBGUlJVVkxNbWd3WkVoQ2VrOXBPSFprUnpseVdsYzBkVmxYVGpBS1lWYzVkV041Tlc1aFdGSnZaRmRLTVdNeVZubFpNamwxWkVkV2RXUkROV3BpTWpCM1NIZFpTMHQzV1VKQ1FVZEVkbnBCUWtGblVWSmtNamw1WVRKYWN3cGlNMlJtV2tkc2VtTkhSakJaTW1kM1RtZFpTMHQzV1VKQ1FVZEVkbnBCUWtGM1VXOVplbEpyVFVkU2FrNVVXVEpPYWtacFdWZFNhVTlYVG1wT1JHUnBDbHBIVlRKT1JHUnNUVVJvYlZwVVRtbE9SMHB0VG5wUk1VOUVRVlJDWjI5eVFtZEZSVUZaVHk5TlFVVkZRa0ZXUTJSWGJITmFSRUZ5UW1kdmNrSm5SVVVLUVZsUEwwMUJSVVpDUWpGdlpGZGtibUZYTlc1YWJVWnFXbE01Y2xwWVNuVmFWM2g2VEZkT2RtSlhNVEZpYld3d1pWUkJaRUpuYjNKQ1owVkZRVmxQTHdwTlFVVkhRa0U1ZVZwWFducE1NbWhzV1ZkU2Vrd3lNV2hoVnpSM1QzZFpTMHQzV1VKQ1FVZEVkbnBCUWtOQlVYUkVRM1J2WkVoU2QyTjZiM1pNTTFKMkNtRXlWblZNYlVacVpFZHNkbUp1VFhWYU1td3dZVWhXYVdSWVRteGpiVTUyWW01U2JHSnVVWFZaTWpsMFRVY3dSME5wYzBkQlVWRkNaemM0ZDBGUmEwVUtXSGQ0WkdGSVVqQmpTRTAyVEhrNWJtRllVbTlrVjBsMVdUSTVkRXd5YURGYU1tUndZbTFrYlZsWFRteE1NblJzWTIwMWJHSklUWFJaTWpsMFlsaFdkUXBoV0ZJMVRIazFibUZZVW05a1YwbDJaREk1ZVdFeVduTmlNMlI2VERKS01XRlhlR3RNYm14b1lsZDRRV050Vm0xamVUbHZXbGRHYTJONU9YUlpWMngxQ2sxRVowZERhWE5IUVZGUlFtYzNPSGRCVVc5RlMyZDNiMWw2VW10TlIxSnFUbFJaTWs1cVJtbFpWMUpwVDFkT2FrNUVaR2xhUjFVeVRrUmtiRTFFYUcwS1dsUk9hVTVIU20xT2VsRXhUMFJCWWtKbmIzSkNaMFZGUVZsUEwwMUJSVXhDUVRCTlF6Tk9iR0pIV1hSaFJ6bDZaRWRXYTAxRlFVZERhWE5IUVZGUlFncG5OemgzUVZGM1JVMW5kM2RoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlUxRVowZERhWE5IUVZGUlFtYzNPSGRCVVRCRlMyZDNiMWw2VW10TlIxSnFUbFJaTWs1cVJtbFpWMUpwVDFkT2FrNUVaR2tLV2tkVk1rNUVaR3hOUkdodFdsUk9hVTVIU20xT2VsRXhUMFJCWmtKbmIzSkNaMFZGUVZsUEwwMUJSVTlDUWtWTlJETktiRnB1VFhaaFIxWm9Xa2hOZGdwaVYwWndZbXBCWVVKbmIzSkNaMFZGUVZsUEwwMUJSVkJDUVhkTlEycEZkMDU2UlRCT2VsVXhUV3ByZDB4bldVdExkMWxDUWtGSFJIWjZRVUpGUVZGbkNrUkNOVzlrU0ZKM1kzcHZka3d5WkhCa1IyZ3hXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWM1IwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWUlVVc0tSRUZuZVU1VVkzbE5SR013VFhwQ2RFSm5iM0pDWjBWRlFWbFBMMDFCUlZOQ1JqaE5XRmRvTUdSSVFucFBhVGgyV2pKc01HRklWbWxNYlU1MllsTTVid3BrVjJSdVlWYzFibHB0Um1wYVV6bHlXbGhLZFZwWGVIcE1WMDUyWWxjeE1XSnRiREJsVXpoMVdqSnNNR0ZJVm1sTU0yUjJZMjEwYldKSE9UTmplVGxwQ21SWGJITmFRelUxV1ZjeGMxRklTbXhhYmsxMllVZFdhRnBJVFhaaVYwWndZbXBCTkVKbmIzSkNaMFZGUVZsUEwwMUJSVlJDUTI5TlMwZE5NRnBFUW1zS1dYcFZNazVxV1hoWmJVWnJXV3BzYWxsNlVUTlpiVkpzVG1wUk0xcFVRVFJhYlZWNldXcFNhVnBxWXpCT1ZHZDNTVkZaUzB0M1dVSkNRVWRFZG5wQlFncEdRVkZVUkVKR00ySXpTbkphYlhoMlpERTVhMkZZVG5kWldGSnFZVVJDYTBKbmIzSkNaMFZGUVZsUEwwMUJSVlpDUmxsTlZrZG9NR1JJUW5wUGFUaDJDbG95YkRCaFNGWnBURzFPZG1KVE9XOWtWMlJ1WVZjMWJscHRSbXBhVXpseVdsaEtkVnBYZUhwTVYwNTJZbGN4TVdKdGJEQmxVemxvV1ROU2NHSXlOWG9LVEROS01XSnVUWFpOZWtrMFRrUlJNazlFYXpSUFZGRjJXVmhTTUZwWE1YZGtTRTEyVFZSQlYwSm5iM0pDWjBWRlFWbFBMMDFCUlZkQ1FXZE5RbTVDTVFwWmJYaHdXWHBDUjBKbmIzSkNaMFZGUVZsUEwwMUJSVmxDUkdkTlRtNUtiR05IT0RaaFNGWnVXakpzZFZveVdtaFpNbFYyWVRKV2VXSnRWbk5qZVRGcUNtSXlNWFJrVnpWd1pFaHJObU50Vm0xUGJrcHNXbTVOZG1GSFZtaGFTRTEyWWxkR2NHSnFRMEpwVVZsTFMzZFpRa0pCU0ZkbFVVbEZRV2RTTjBKSWEwRUtaSGRDTVVGT01EbE5SM0pIZUhoRmVWbDRhMlZJU214dVRuZExhVk5zTmpRemFubDBMelJsUzJOdlFYWkxaVFpQUVVGQlFtOUVhbU15UWxGQlFVRlJSQXBCUlZsM1VrRkpaMVJZVEZsbWFqTlRkVVp0TVZJMVJXOWpSMjF6V0dWTVEzUmhPRzUyT1hkYUsydDRSa0p3VXpoeFFWRkRTVUYzUm1kSVpsbGhRM0ZRQ2xwdlFURm9TRWd6ZGpBcmJrNVRSRnBqZVM5NGVEbENUbHB1U3pVeU1HVm9UVUZ2UjBORGNVZFRUVFE1UWtGTlJFRXlaMEZOUjFWRFRVSm9TblJhZFZVS2QwZDRRMDV0WTFwb1MxbzFlbFpZYmtaUkwxSkpOMDg0YVdKTlQyMW5TbWhYYlZoMVNGVkZaelZRYkdVMVdURnlNa0p1UzJWcmJrUjZaMGw0UVVvMFp3cEdVMkZ1TTJwVE5uRkJZazB6U2tGSVZGUnFaRzF2YlZOdlRGUkNRVm81TW5RMVl6ZHdPRFZCVWxCbk56SXpOMmRMZEZrMWFucENZbTFYVUhaNlVUMDlDaTB0TFMwdFJVNUVJRU5GVWxSSlJrbERRVlJGTFMwdExTMEsifX19fQ=="}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyDADAgEAMIICvwYJKoZIhvcNAQcCoIICsDCCAqwCAQMxDTALBglghkgBZQMEAgEwgbcGCyqGSIb3DQEJEAEEoIGnBIGkMIGhAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgvmSoXp6uCuAcF6+xllGtZvDKxQOtTJjPn/FXJP9r6usCFGKl/F2FhsqvaenrPm4aEHDOQ3/XGA8yMDI2MDgyNTEyMTk1MlowAwIBAaAypDAwLjEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MRUwEwYDVQQDEwxzaWdzdG9yZS10c2GgADGCAdowggHWAgEBMFEwOTEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MSAwHgYDVQQDExdzaWdzdG9yZS10c2Etc2VsZnNpZ25lZAIUOhNULwyQYe68wUMvy4qOiyojiwwwCwYJYIZIAWUDBAIBoIH8MBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAcBgkqhkiG9w0BCQUxDxcNMjYwODI1MTIxOTUyWjAvBgkqhkiG9w0BCQQxIgQgwzaMqt/6oPQifDAgi2+Ui363SHIWUSBL55L8M/CEDgUwgY4GCyqGSIb3DQEJEAIvMX8wfTB7MHkEIIX5J7wHq2LKw7RDVsEO/IGyxog/2nq55thw2dE6zQW3MFUwPaQ7MDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAoGCCqGSM49BAMCBGYwZAIwLKZH/61mj+IKaBtVyFB5VmCyNe4fbq1/x7PUWqEuamHcd4rT7A/UvSH1iYsHO4I3AjBSI0nPreejpYFllFxYhyb2IqVPryGd3bT7Q+Tgo9TxoV6jQsxh7ZhsyEOirYwZoFo="}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"CgQGjFHrnwFzCmC/6YFeT43lkrnvZQDXXBrGaVUsXMo="},"signature":"MEQCIAWpdGpEQX0pdwDUqZ+bY97ccWbbM+/pr/7TegjoXZzOAiAhgvARpNS+H7cJK2Q6jT5D5D4KaQbFOKbWvs5hLa+wpw=="}}
build/torch213-cxx11-cu126-aarch64-linux/xpu_fused_moe.py CHANGED
@@ -26,7 +26,7 @@ def _register_xpu_fake_kernels():
26
 
27
  _register_if_available(
28
  "cutlass_grouped_gemm_interface",
29
- lambda ptr_A, ptr_B, ptr_scales, ptr_bias, ptr_D, expert_first_token_offset, N, K, num_experts, is_B_int4, is_B_mxfp4: ptr_D,
30
  )
31
 
32
  _register_if_available(
@@ -106,12 +106,13 @@ def cutlass_grouped_gemm(input_A, input_B, bias, output, expert_token_count, n,
106
  K=k,
107
  num_experts=num_experts,
108
  is_B_int4=False,
109
- is_B_mxfp4=False)
 
110
 
111
 
112
  def cutlass_grouped_gemm_xe2(input_A, input_B, scales, bias, output,
113
  num_rows_per_expert, n, k, num_experts, is_B_int4,
114
- is_B_mxfp4):
115
  expert_first_token_offset = torch.cat([
116
  torch.tensor([0],
117
  dtype=num_rows_per_expert.dtype,
@@ -129,7 +130,8 @@ def cutlass_grouped_gemm_xe2(input_A, input_B, scales, bias, output,
129
  K=k,
130
  num_experts=num_experts,
131
  is_B_int4=is_B_int4,
132
- is_B_mxfp4=is_B_mxfp4)
 
133
 
134
 
135
  def ceilDiv(a, b):
@@ -206,7 +208,8 @@ def xpu_fused_moe(hidden_states,
206
  ep_size=1,
207
  is_fp8=False,
208
  is_int4=False,
209
- is_mxfp4=False):
 
210
  '''
211
  hidden_states: [num_rows, hidden_size]
212
  w13: [num_experts, 2*inter_size, hidden_size]
@@ -228,6 +231,7 @@ def xpu_fused_moe(hidden_states,
228
  num_experts: int
229
  is_int4: bool
230
  is_mxfp4: bool
 
231
  '''
232
 
233
  # Resolve DTensors to local tensors before passing to custom ops
@@ -266,7 +270,7 @@ def xpu_fused_moe(hidden_states,
266
 
267
  # 4bits support [E, N, K]
268
  # other types [E, K, N]
269
- if not is_int4 and not is_mxfp4:
270
  if not hasattr(w13, 'xpu_fused_moe'):
271
  if needs_transpose:
272
  w13.data = w13.transpose(-1, -2).contiguous()
@@ -389,7 +393,7 @@ def xpu_fused_moe(hidden_states,
389
  ########### gemm1 ##################
390
  input_B = w13
391
 
392
- if not is_fp8 and not is_int4 and not is_mxfp4:
393
  ops.cutlass_grouped_gemm_interface(
394
  ptr_A=gemm1_input,
395
  ptr_B=input_B,
@@ -401,7 +405,8 @@ def xpu_fused_moe(hidden_states,
401
  K=hidden_size,
402
  num_experts=num_experts_per_node,
403
  is_B_int4=is_int4,
404
- is_B_mxfp4=is_mxfp4)
 
405
  else:
406
  ops.cutlass_grouped_gemm_interface(
407
  ptr_A=gemm1_input,
@@ -414,7 +419,8 @@ def xpu_fused_moe(hidden_states,
414
  K=hidden_size,
415
  num_experts=num_experts_per_node,
416
  is_B_int4=is_int4,
417
- is_B_mxfp4=is_mxfp4)
 
418
 
419
  # act
420
  act_output = torch.empty((num_moe_inputs, inter_size),
@@ -435,7 +441,7 @@ def xpu_fused_moe(hidden_states,
435
  gemm2_output = torch.empty((num_moe_inputs, hidden_size),
436
  dtype=hidden_states.dtype,
437
  device=hidden_states.device)
438
- if not is_fp8 and not is_int4 and not is_mxfp4:
439
  ops.cutlass_grouped_gemm_interface(
440
  ptr_A=input_A,
441
  ptr_B=input_B,
@@ -447,7 +453,8 @@ def xpu_fused_moe(hidden_states,
447
  K=inter_size,
448
  num_experts=num_experts_per_node,
449
  is_B_int4=is_int4,
450
- is_B_mxfp4=is_mxfp4)
 
451
  else:
452
  ops.cutlass_grouped_gemm_interface(
453
  ptr_A=input_A,
@@ -460,7 +467,8 @@ def xpu_fused_moe(hidden_states,
460
  K=inter_size,
461
  num_experts=num_experts_per_node,
462
  is_B_int4=is_int4,
463
- is_B_mxfp4=is_mxfp4)
 
464
 
465
  ops.moe_gather(output, gemm2_output, topk_weights,
466
  permuted_row_to_unpermuted_row,
@@ -633,6 +641,7 @@ class MegaBlocksMoeMLP(torch.nn.Module):
633
  is_fp8 = getattr(self.experts, "is_fp8", False)
634
  is_int4 = getattr(self.experts, "is_int4", False)
635
  is_mxfp4 = getattr(self.experts, "is_mxfp4", False)
 
636
 
637
  w13_scales = getattr(self.experts, "gate_up_proj_scales", None)
638
  w2_scales = getattr(self.experts, "down_proj_scales", None)
@@ -685,6 +694,7 @@ class MegaBlocksMoeMLP(torch.nn.Module):
685
  is_fp8=is_fp8,
686
  is_int4=is_int4,
687
  is_mxfp4=is_mxfp4,
 
688
  )
689
 
690
  # All-reduce across EP group to combine partial expert outputs
 
26
 
27
  _register_if_available(
28
  "cutlass_grouped_gemm_interface",
29
+ lambda ptr_A, ptr_B, ptr_scales, ptr_bias, ptr_D, expert_first_token_offset, N, K, num_experts, is_B_int4, is_B_mxfp4, is_B_mxfp8=False: ptr_D,
30
  )
31
 
32
  _register_if_available(
 
106
  K=k,
107
  num_experts=num_experts,
108
  is_B_int4=False,
109
+ is_B_mxfp4=False,
110
+ is_B_mxfp8=False)
111
 
112
 
113
  def cutlass_grouped_gemm_xe2(input_A, input_B, scales, bias, output,
114
  num_rows_per_expert, n, k, num_experts, is_B_int4,
115
+ is_B_mxfp4, is_B_mxfp8=False):
116
  expert_first_token_offset = torch.cat([
117
  torch.tensor([0],
118
  dtype=num_rows_per_expert.dtype,
 
130
  K=k,
131
  num_experts=num_experts,
132
  is_B_int4=is_B_int4,
133
+ is_B_mxfp4=is_B_mxfp4,
134
+ is_B_mxfp8=is_B_mxfp8)
135
 
136
 
137
  def ceilDiv(a, b):
 
208
  ep_size=1,
209
  is_fp8=False,
210
  is_int4=False,
211
+ is_mxfp4=False,
212
+ is_mxfp8=False):
213
  '''
214
  hidden_states: [num_rows, hidden_size]
215
  w13: [num_experts, 2*inter_size, hidden_size]
 
231
  num_experts: int
232
  is_int4: bool
233
  is_mxfp4: bool
234
+ is_mxfp8: bool
235
  '''
236
 
237
  # Resolve DTensors to local tensors before passing to custom ops
 
270
 
271
  # 4bits support [E, N, K]
272
  # other types [E, K, N]
273
+ if not is_int4 and not is_mxfp4 and not is_mxfp8:
274
  if not hasattr(w13, 'xpu_fused_moe'):
275
  if needs_transpose:
276
  w13.data = w13.transpose(-1, -2).contiguous()
 
393
  ########### gemm1 ##################
394
  input_B = w13
395
 
396
+ if not is_fp8 and not is_int4 and not is_mxfp4 and not is_mxfp8:
397
  ops.cutlass_grouped_gemm_interface(
398
  ptr_A=gemm1_input,
399
  ptr_B=input_B,
 
405
  K=hidden_size,
406
  num_experts=num_experts_per_node,
407
  is_B_int4=is_int4,
408
+ is_B_mxfp4=is_mxfp4,
409
+ is_B_mxfp8=is_mxfp8)
410
  else:
411
  ops.cutlass_grouped_gemm_interface(
412
  ptr_A=gemm1_input,
 
419
  K=hidden_size,
420
  num_experts=num_experts_per_node,
421
  is_B_int4=is_int4,
422
+ is_B_mxfp4=is_mxfp4,
423
+ is_B_mxfp8=is_mxfp8)
424
 
425
  # act
426
  act_output = torch.empty((num_moe_inputs, inter_size),
 
441
  gemm2_output = torch.empty((num_moe_inputs, hidden_size),
442
  dtype=hidden_states.dtype,
443
  device=hidden_states.device)
444
+ if not is_fp8 and not is_int4 and not is_mxfp4 and not is_mxfp8:
445
  ops.cutlass_grouped_gemm_interface(
446
  ptr_A=input_A,
447
  ptr_B=input_B,
 
453
  K=inter_size,
454
  num_experts=num_experts_per_node,
455
  is_B_int4=is_int4,
456
+ is_B_mxfp4=is_mxfp4,
457
+ is_B_mxfp8=is_mxfp8)
458
  else:
459
  ops.cutlass_grouped_gemm_interface(
460
  ptr_A=input_A,
 
467
  K=inter_size,
468
  num_experts=num_experts_per_node,
469
  is_B_int4=is_int4,
470
+ is_B_mxfp4=is_mxfp4,
471
+ is_B_mxfp8=is_mxfp8)
472
 
473
  ops.moe_gather(output, gemm2_output, topk_weights,
474
  permuted_row_to_unpermuted_row,
 
641
  is_fp8 = getattr(self.experts, "is_fp8", False)
642
  is_int4 = getattr(self.experts, "is_int4", False)
643
  is_mxfp4 = getattr(self.experts, "is_mxfp4", False)
644
+ is_mxfp8 = getattr(self.experts, "is_mxfp8", False)
645
 
646
  w13_scales = getattr(self.experts, "gate_up_proj_scales", None)
647
  w2_scales = getattr(self.experts, "down_proj_scales", None)
 
694
  is_fp8=is_fp8,
695
  is_int4=is_int4,
696
  is_mxfp4=is_mxfp4,
697
+ is_mxfp8=is_mxfp8,
698
  )
699
 
700
  # All-reduce across EP group to combine partial expert outputs
build/torch213-cxx11-cu130-aarch64-linux/{_megablocks_cuda_18e92fb.abi3.so → _megablocks_cuda_c4d0dc5.abi3.so} RENAMED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:c5ef8fb1c74800a4709e0008c8e2c2f7644188f1297ec96ca29b68bbe7c6b0f8
3
  size 10063112
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3f5ee20f6f56544a76b0430e8b6804d7df870f97e09e55809f91529fb0f9c69a
3
  size 10063112
build/torch213-cxx11-cu130-aarch64-linux/_ops.py CHANGED
@@ -1,9 +1,9 @@
1
  import torch
2
- from . import _megablocks_cuda_18e92fb
3
- ops = torch.ops._megablocks_cuda_18e92fb
4
 
5
  def add_op_namespace_prefix(op_name: str):
6
  """
7
  Prefix op by namespace.
8
  """
9
- return f"_megablocks_cuda_18e92fb::{op_name}"
 
1
  import torch
2
+ from . import _megablocks_cuda_c4d0dc5
3
+ ops = torch.ops._megablocks_cuda_c4d0dc5
4
 
5
  def add_op_namespace_prefix(op_name: str):
6
  """
7
  Prefix op by namespace.
8
  """
9
+ return f"_megablocks_cuda_c4d0dc5::{op_name}"
build/torch213-cxx11-cu130-aarch64-linux/metadata.json CHANGED
@@ -1,6 +1,6 @@
1
  {
2
  "name": "megablocks",
3
- "id": "_megablocks_cuda_18e92fb",
4
  "version": 1,
5
  "license": "Apache-2.0",
6
  "python-depends": [],
@@ -48,8 +48,8 @@
48
  "_layers/mpu.py": "BX61/pmqRCVeEMnzpuK8x5NpITBJyZfOawGnDegW1O8=",
49
  "_layers/router.py": "GKC/5//Uf43HT6zXlBTStCMTml2YXn7Jbgq9EgTgDC0=",
50
  "_layers/sharedexpert_registry.py": "GfwHKjbC7lBXYq9kNifp3HudTdZKSqwsFxGxFLc2krw=",
51
- "_megablocks_cuda_18e92fb.abi3.so": "xe+PscdIAKRwngAIyOLC92RBiPEpfslsoptou+fGsPg=",
52
- "_ops.py": "baTEjeHRnpTSLod30qZST/UL5GNv7vZoGeNwQWakxbo=",
53
  "_version.py": "W3l9oUrnmvfBoIy06Lv0y2ezTQhNU04ug/txHcdWJD0=",
54
  "backend/__init__.py": "4bunAqqjwE93nym8CigHbqVAal7UaYGdONb8lGRfrek=",
55
  "backend/kernels.py": "2UFNTlmSDk3S5y6UW14MJMPVVsVhmozxQ5wFDxtZHhQ=",
@@ -100,7 +100,7 @@
100
  "stk/random/__init__.py": "Gr/+Gl20jJ6fJVRfoAUxEcCPeChILQzrzhKVVAWQsRI=",
101
  "stk/random/random_ops.py": "AluIDj3Vo2ReKAsZz07yydbtndDbJoglekRGIaCoRZE=",
102
  "stk/random/random_ops_test.py": "B+a4Zb+OPhBtpVA48oc09sBL/AAQO9j/YUFI0nnXxzk=",
103
- "xpu_fused_moe.py": "Dp6S3fK/Fc4Sr+Ac94vw2zz0v/QTGp6rYeMIUqE3Y/I="
104
  }
105
  },
106
  "provenance": {
@@ -110,7 +110,7 @@
110
  "dirty": false
111
  },
112
  "kernel": {
113
- "sha": "18e92fb6886201ffb91c173f02593777756c793f",
114
  "dirty": false
115
  }
116
  }
 
1
  {
2
  "name": "megablocks",
3
+ "id": "_megablocks_cuda_c4d0dc5",
4
  "version": 1,
5
  "license": "Apache-2.0",
6
  "python-depends": [],
 
48
  "_layers/mpu.py": "BX61/pmqRCVeEMnzpuK8x5NpITBJyZfOawGnDegW1O8=",
49
  "_layers/router.py": "GKC/5//Uf43HT6zXlBTStCMTml2YXn7Jbgq9EgTgDC0=",
50
  "_layers/sharedexpert_registry.py": "GfwHKjbC7lBXYq9kNifp3HudTdZKSqwsFxGxFLc2krw=",
51
+ "_megablocks_cuda_c4d0dc5.abi3.so": "P17iD29WVEp2sEMOi2gE19+HD5fgnlWAn5FSn7D5xpo=",
52
+ "_ops.py": "9NSxkX5lSS5VhF9+hDazP5NimwZK2V/+nIXR0AQxnHA=",
53
  "_version.py": "W3l9oUrnmvfBoIy06Lv0y2ezTQhNU04ug/txHcdWJD0=",
54
  "backend/__init__.py": "4bunAqqjwE93nym8CigHbqVAal7UaYGdONb8lGRfrek=",
55
  "backend/kernels.py": "2UFNTlmSDk3S5y6UW14MJMPVVsVhmozxQ5wFDxtZHhQ=",
 
100
  "stk/random/__init__.py": "Gr/+Gl20jJ6fJVRfoAUxEcCPeChILQzrzhKVVAWQsRI=",
101
  "stk/random/random_ops.py": "AluIDj3Vo2ReKAsZz07yydbtndDbJoglekRGIaCoRZE=",
102
  "stk/random/random_ops_test.py": "B+a4Zb+OPhBtpVA48oc09sBL/AAQO9j/YUFI0nnXxzk=",
103
+ "xpu_fused_moe.py": "sPmuRSpkH1Bmk4hdpz53us8Qpc6yinT9rkld3T8WreI="
104
  }
105
  },
106
  "provenance": {
 
110
  "dirty": false
111
  },
112
  "kernel": {
113
+ "sha": "c4d0dc56661badb9cc47bde647e08fe3b4bf7458",
114
  "dirty": false
115
  }
116
  }
build/torch213-cxx11-cu130-aarch64-linux/metadata.json.sigstore CHANGED
@@ -1 +1 @@
1
- {"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"MIIHSzCCBtCgAwIBAgIUIKO6h20i1PXPykkLpVpyvRfEPZcwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwODI1MDkwNDI1WhcNMjYwODI1MDkxNDI1WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEiAciQNk5eZ6mWjnlKnoNqxMuSjkyPRU/K2U2TcQg474PbXRcYbYGA/n9QYZ8qTXzaLWIQ0CxXJqzWJ4d6KW34aOCBe8wggXrMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUeK/6rnceYHr3bmDZtarOnKatjYQwHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wawYDVR0RAQH/BGEwX4ZdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDkGCisGAQQBg78wAQEEK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wHwYKKwYBBAGDvzABAgQRd29ya2Zsb3dfZGlzcGF0Y2gwNgYKKwYBBAGDvzABAwQoMThlOTJmYjY4ODYyMDFmZmI5MWMxNzNmMDI1OTM3Nzc3NTZjNzkzZjATBgorBgEEAYO/MAEEBAVCdWlsZDArBgorBgEEAYO/MAEFBB1odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTAdBgorBgEEAYO/MAEGBA9yZWZzL2hlYWRzL21haW4wOwYKKwYBBAGDvzABCAQtDCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMG0GCisGAQQBg78wAQkEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wAQoEKgwoMThlOTJmYjY4ODYyMDFmZmI5MWMxNzNmMDI1OTM3Nzc3NTZjNzkzZjAbBgorBgEEAYO/MAELBA0MC3NlbGYtaG9zdGVkMEAGCisGAQQBg78wAQwEMgwwaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MDgGCisGAQQBg78wAQ0EKgwoMThlOTJmYjY4ODYyMDFmZmI5MWMxNzNmMDI1OTM3Nzc3NTZjNzkzZjAfBgorBgEEAYO/MAEOBBEMD3JlZnMvaGVhZHMvbWFpbjAaBgorBgEEAYO/MAEPBAwMCjEwNzE0NzU1MjkwLgYKKwYBBAGDvzABEAQgDB5odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2UwGAYKKwYBBAGDvzABEQQKDAgyNTcyMDc0MzBtBgorBgEEAYO/MAESBF8MXWh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS8uZ2l0aHViL3dvcmtmbG93cy9idWlsZC55YW1sQHJlZnMvaGVhZHMvbWFpbjA4BgorBgEEAYO/MAETBCoMKDE4ZTkyZmI2ODg2MjAxZmZiOTFjMTczZjAyNTkzNzc3NzU2Yzc5M2YwIQYKKwYBBAGDvzABFAQTDBF3b3JrZmxvd19kaXNwYXRjaDBkBgorBgEEAYO/MAEVBFYMVGh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS9hY3Rpb25zL3J1bnMvMzI4Mjc3ODQ2NjkvYXR0ZW1wdHMvMTAWBgorBgEEAYO/MAEWBAgMBnB1YmxpYzBGBgorBgEEAYO/MAEYBDgMNnJlcG86aHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHk6cmVmOnJlZnMvaGVhZHMvbWFpbjCBiQYKKwYBBAHWeQIEAgR7BHkAdwB1AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABoDgp5eoAAAQDAEYwRAIgJS9KMG9korBDqqjZcYk55px3FLLJKYvpXquZV1xcU/8CICDzDXj5LcPXc6v5GlvfT9AdQSZrGWigl4S20FyjhdzpMAoGCCqGSM49BAMDA2kAMGYCMQC8o3Gn/exxEubd+IzJM9WUU1PEbLQpsLIAUEk9lUBCvDuNlOZ7eIsVOHLyrxd8r3MCMQCBhFV/hzCy3H7KTcVSwh4YYI/O0Wmvh3dEpNnAsjj5DJEfqUS9kea84zhc2cG+3EU="},"tlogEntries":[{"logIndex":"2582977835","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1787648665","inclusionPromise":{"signedEntryTimestamp":"MEUCIQCRjAU3U3nx986OkIc9dkcSbeBcGcmISDsdy/HiXQakMAIgH3+rNTBOaI37+gM795t+OrA9sZBprUEMNkJcB1bULE0="},"inclusionProof":{"logIndex":"2461073573","rootHash":"2wsvIqlPt3Cp8FhjIvnpUzt3pVCVdZ2pqaDG5/jiFL0=","treeSize":"2461073576","hashes":["9Xndp68fipwG+DheZE04KI8Wy1V7Z1UGkcB21T2tBuA=","h8JVo5NT5nwvB0We1pVpg3f5NEwMNwuB9cKa/PGzNmo=","DuC6E6Qfn3z98CE4ykqbz/pBxySWwEQCbXJWklrzxlQ=","la/NkjAdjkF6bNeSlJB+awx+HHp1GMhg1utiqCNjlDk=","f96QBJwcFN9L0WkH/laITJQPIRru+66zvTEJhSnxV+o=","/pzrkLFRwt/XMVRmL7s6Ii88QiOLu5drCOp/UggZ7TU=","G1R9F5B2KizFA2NyhDznjNKXPOF1SDmbGHz+omLG7TY=","RZ7XwGuqMr5gDUh2HpUcaXp+AmIiEcPJiMui4GLJE7o=","mBm+vQtn0C4thMnlTnxfxqowq1dXsPBCKaJ85da3JeU=","b80/J/68RC8/tx5xRdlKk6MmTpZiVRotquWBrE/z1pI=","SndbMKVtcTenAkwi2JBfGzD+mhexp1qJbRIY+A1JRIU=","xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n2461073576\n2wsvIqlPt3Cp8FhjIvnpUzt3pVCVdZ2pqaDG5/jiFL0=\n\n— rekor.sigstore.dev wNI9ajBFAiEAt7pyxmssjw1oPwPRKrfLhftKDkP9TbpOPs9tMy61NUMCIDJ8aGT7nV5gWUNnPMw94kLQ+sXoxI3r9i0Q2ciKPKUV\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiI1ZjU4NGIxMGQ0YzRhOTM3ODAxYjVkNTRiZTcwMjE5YjdhOTRhODRkNTJlYTgzOWNhYTg0MzUzYWM4ZmVhZTY1In19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FUUNJQ3ZHS3NRNGlvbzFla3J4QkpiQWd4aGNTNlRzUlA5MjdINkpwZUNvek9pckFpQVd0cVlveVJ0SUlIbi9uS2N6VzA1cWVkWHNCbXJsMzZBb0p1U0xsS2tFWFE9PSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaFRla05EUW5SRFowRjNTVUpCWjBsVlNVdFBObWd5TUdreFVGaFFlV3RyVEhCV2NIbDJVbVpGVUZwamQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDlFU1RGTlJHdDNUa1JKTVZkb1kwNU5hbGwzVDBSSk1VMUVhM2hPUkVreFYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZwUVdOcFVVNXJOV1ZhTm0xWGFtNXNTMjV2VG5GNFRYVlRhbXQ1VUZKVkwwc3lWVElLVkdOUlp6UTNORkJpV0ZKaldXSlpSMEV2YmpsUldWbzRjVlJZZW1GTVYwbFJNRU40V0VweGVsZEtOR1EyUzFjek5HRlBRMEpsT0hkbloxaHlUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlZsU3k4MkNuSnVZMlZaU0hJelltMUVXblJoY2s5dVMyRjBhbGxSZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDJGM1dVUldVakJTUVZGSUwwSkhSWGRZTkZwa1lVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKb01Wb3laSEJpYldSdFdWZE9iQXBNTW5Sc1kyMDFiR0pJVFhSWk1qbDBZbGhXZFdGWVVqVk1lVFZ1WVZoU2IyUlhTWFprTWpsNVlUSmFjMkl6WkhwTU1rb3hZVmQ0YTB4dWJHaGlWM2hCQ21OdFZtMWplVGx2V2xkR2EyTjVPWFJaVjJ4MVRVUnJSME5wYzBkQlVWRkNaemM0ZDBGUlJVVkxNbWd3WkVoQ2VrOXBPSFprUnpseVdsYzBkVmxYVGpBS1lWYzVkV041Tlc1aFdGSnZaRmRLTVdNeVZubFpNamwxWkVkV2RXUkROV3BpTWpCM1NIZFpTMHQzV1VKQ1FVZEVkbnBCUWtGblVWSmtNamw1WVRKYWN3cGlNMlJtV2tkc2VtTkhSakJaTW1kM1RtZFpTMHQzV1VKQ1FVZEVkbnBCUWtGM1VXOU5WR2hzVDFSS2JWbHFXVFJQUkZsNVRVUkdiVnB0U1RWTlYwMTRDazU2VG0xTlJFa3hUMVJOTTA1Nll6Tk9WRnBxVG5wcmVscHFRVlJDWjI5eVFtZEZSVUZaVHk5TlFVVkZRa0ZXUTJSWGJITmFSRUZ5UW1kdmNrSm5SVVVLUVZsUEwwMUJSVVpDUWpGdlpGZGtibUZYTlc1YWJVWnFXbE01Y2xwWVNuVmFWM2g2VEZkT2RtSlhNVEZpYld3d1pWUkJaRUpuYjNKQ1owVkZRVmxQTHdwTlFVVkhRa0U1ZVZwWFducE1NbWhzV1ZkU2Vrd3lNV2hoVnpSM1QzZFpTMHQzV1VKQ1FVZEVkbnBCUWtOQlVYUkVRM1J2WkVoU2QyTjZiM1pNTTFKMkNtRXlWblZNYlVacVpFZHNkbUp1VFhWYU1td3dZVWhXYVdSWVRteGpiVTUyWW01U2JHSnVVWFZaTWpsMFRVY3dSME5wYzBkQlVWRkNaemM0ZDBGUmEwVUtXSGQ0WkdGSVVqQmpTRTAyVEhrNWJtRllVbTlrVjBsMVdUSTVkRXd5YURGYU1tUndZbTFrYlZsWFRteE1NblJzWTIwMWJHSklUWFJaTWpsMFlsaFdkUXBoV0ZJMVRIazFibUZZVW05a1YwbDJaREk1ZVdFeVduTmlNMlI2VERKS01XRlhlR3RNYm14b1lsZDRRV050Vm0xamVUbHZXbGRHYTJONU9YUlpWMngxQ2sxRVowZERhWE5IUVZGUlFtYzNPSGRCVVc5RlMyZDNiMDFVYUd4UFZFcHRXV3BaTkU5RVdYbE5SRVp0V20xSk5VMVhUWGhPZWs1dFRVUkpNVTlVVFRNS1RucGpNMDVVV21wT2VtdDZXbXBCWWtKbmIzSkNaMFZGUVZsUEwwMUJSVXhDUVRCTlF6Tk9iR0pIV1hSaFJ6bDZaRWRXYTAxRlFVZERhWE5IUVZGUlFncG5OemgzUVZGM1JVMW5kM2RoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlUxRVowZERhWE5IUVZGUlFtYzNPSGRCVVRCRlMyZDNiMDFVYUd4UFZFcHRXV3BaTkU5RVdYbE5SRVp0V20xSk5VMVhUWGdLVG5wT2JVMUVTVEZQVkUwelRucGpNMDVVV21wT2VtdDZXbXBCWmtKbmIzSkNaMFZGUVZsUEwwMUJSVTlDUWtWTlJETktiRnB1VFhaaFIxWm9Xa2hOZGdwaVYwWndZbXBCWVVKbmIzSkNaMFZGUVZsUEwwMUJSVkJDUVhkTlEycEZkMDU2UlRCT2VsVXhUV3ByZDB4bldVdExkMWxDUWtGSFJIWjZRVUpGUVZGbkNrUkNOVzlrU0ZKM1kzcHZka3d5WkhCa1IyZ3hXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWM1IwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWUlVVc0tSRUZuZVU1VVkzbE5SR013VFhwQ2RFSm5iM0pDWjBWRlFWbFBMMDFCUlZOQ1JqaE5XRmRvTUdSSVFucFBhVGgyV2pKc01HRklWbWxNYlU1MllsTTVid3BrVjJSdVlWYzFibHB0Um1wYVV6bHlXbGhLZFZwWGVIcE1WMDUyWWxjeE1XSnRiREJsVXpoMVdqSnNNR0ZJVm1sTU0yUjJZMjEwYldKSE9UTmplVGxwQ21SWGJITmFRelUxV1ZjeGMxRklTbXhhYmsxMllVZFdhRnBJVFhaaVYwWndZbXBCTkVKbmIzSkNaMFZGUVZsUEwwMUJSVlJDUTI5TlMwUkZORnBVYTNrS1dtMUpNazlFWnpKTmFrRjRXbTFhYVU5VVJtcE5WR042V21wQmVVNVVhM3BPZW1NelRucFZNbGw2WXpWTk1sbDNTVkZaUzB0M1dVSkNRVWRFZG5wQlFncEdRVkZVUkVKR00ySXpTbkphYlhoMlpERTVhMkZZVG5kWldGSnFZVVJDYTBKbmIzSkNaMFZGUVZsUEwwMUJSVlpDUmxsTlZrZG9NR1JJUW5wUGFUaDJDbG95YkRCaFNGWnBURzFPZG1KVE9XOWtWMlJ1WVZjMWJscHRSbXBhVXpseVdsaEtkVnBYZUhwTVYwNTJZbGN4TVdKdGJEQmxVemxvV1ROU2NHSXlOWG9LVEROS01XSnVUWFpOZWtrMFRXcGpNMDlFVVRKT2FtdDJXVmhTTUZwWE1YZGtTRTEyVFZSQlYwSm5iM0pDWjBWRlFWbFBMMDFCUlZkQ1FXZE5RbTVDTVFwWmJYaHdXWHBDUjBKbmIzSkNaMFZGUVZsUEwwMUJSVmxDUkdkTlRtNUtiR05IT0RaaFNGWnVXakpzZFZveVdtaFpNbFYyWVRKV2VXSnRWbk5qZVRGcUNtSXlNWFJrVnpWd1pFaHJObU50Vm0xUGJrcHNXbTVOZG1GSFZtaGFTRTEyWWxkR2NHSnFRMEpwVVZsTFMzZFpRa0pCU0ZkbFVVbEZRV2RTTjBKSWEwRUtaSGRDTVVGT01EbE5SM0pIZUhoRmVWbDRhMlZJU214dVRuZExhVk5zTmpRemFubDBMelJsUzJOdlFYWkxaVFpQUVVGQlFtOUVaM0ExWlc5QlFVRlJSQXBCUlZsM1VrRkpaMHBUT1V0TlJ6bHJiM0pDUkhGeGFscGpXV3MxTlhCNE0wWk1URXBMV1had1dIRjFXbFl4ZUdOVkx6aERTVU5FZWtSWWFqVk1ZMUJZQ21NMmRqVkhiSFptVkRsQlpGRlRXbkpIVjJsbmJEUlRNakJHZVdwb1pIcHdUVUZ2UjBORGNVZFRUVFE1UWtGTlJFRXlhMEZOUjFsRFRWRkRPRzh6UjI0S0wyVjRlRVYxWW1RclNYcEtUVGxYVlZVeFVFVmlURkZ3YzB4SlFWVkZhemxzVlVKRGRrUjFUbXhQV2pkbFNYTldUMGhNZVhKNFpEaHlNMDFEVFZGRFFncG9SbFl2YUhwRGVUTklOMHRVWTFaVGQyZzBXVmxKTDA4d1YyMTJhRE5rUlhCT2JrRnphbW8xUkVwRlpuRlZVemxyWldFNE5IcG9ZekpqUnlzelJWVTlDaTB0TFMwdFJVNUVJRU5GVWxSSlJrbERRVlJGTFMwdExTMEsifX19fQ=="}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyzADAgEAMIICwgYJKoZIhvcNAQcCoIICszCCAq8CAQMxDTALBglghkgBZQMEAgEwgbgGCyqGSIb3DQEJEAEEoIGoBIGlMIGiAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgpck3w2G9YkyjTChvuRSp1D9tfnkUD/lkHDaz4O/n/80CFQDM0GOQodn4S36rugfmcisRsDrl+xgPMjAyNjA4MjUwOTA0MjVaMAMCAQGgMqQwMC4xFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEVMBMGA1UEAxMMc2lnc3RvcmUtdHNhoAAxggHcMIIB2AIBATBRMDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAsGCWCGSAFlAwQCAaCB/DAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTI2MDgyNTA5MDQyNVowLwYJKoZIhvcNAQkEMSIEIO4f0q+mTAbfti8zMHmImeX21+6xGkbahPTBlUT3Oy8NMIGOBgsqhkiG9w0BCRACLzF/MH0wezB5BCCF+Se8B6tiysO0Q1bBDvyBssaIP9p6uebYcNnROs0FtzBVMD2kOzA5MRUwEwYDVQQKEwxzaWdzdG9yZS5kZXYxIDAeBgNVBAMTF3NpZ3N0b3JlLXRzYS1zZWxmc2lnbmVkAhQ6E1QvDJBh7rzBQy/Lio6LKiOLDDAKBggqhkjOPQQDAgRoMGYCMQDytlfLe6Brw1zKxZo/JMJs9e9uKsTlv3nYtz0Daq5H5FF5Zb9Er4nF7PHURoOdRpECMQDiLNwvXvP8KmInRCFO3kUxVbzKY6jwYdgdZlgHtWl2WYAdFHkSZt6+asEzfm/vrjo="}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"X1hLENTEqTeAG11UvnAhm3qUqE1S6oOcqoQ1Osj+rmU="},"signature":"MEQCICvGKsQ4ioo1ekrxBJbAgxhcS6TsRP927H6JpeCozOirAiAWtqYoyRtIIHn/nKczW05qedXsBmrl36AoJuSLlKkEXQ=="}}
 
1
+ {"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"MIIHSzCCBtCgAwIBAgIUa+WJMbaQC1grw12koPJUz9fw3hYwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwODI1MTIxOTQ2WhcNMjYwODI1MTIyOTQ2WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE5uKT3qT1XKlx7Ax0tTbyotTt1oWz3bBiTm+DGEkr34GTR227sxSshxtQ0cKzznaGtd3PxHH5M6qmRorwyR9zJaOCBe8wggXrMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUUyAarDTYmOtydjdDEUhRcziuNOEwHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wawYDVR0RAQH/BGEwX4ZdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDkGCisGAQQBg78wAQEEK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wHwYKKwYBBAGDvzABAgQRd29ya2Zsb3dfZGlzcGF0Y2gwNgYKKwYBBAGDvzABAwQoYzRkMGRjNTY2NjFiYWRiOWNjNDdiZGU2NDdlMDhmZTNiNGJmNzQ1ODATBgorBgEEAYO/MAEEBAVCdWlsZDArBgorBgEEAYO/MAEFBB1odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTAdBgorBgEEAYO/MAEGBA9yZWZzL2hlYWRzL21haW4wOwYKKwYBBAGDvzABCAQtDCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMG0GCisGAQQBg78wAQkEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wAQoEKgwoYzRkMGRjNTY2NjFiYWRiOWNjNDdiZGU2NDdlMDhmZTNiNGJmNzQ1ODAbBgorBgEEAYO/MAELBA0MC3NlbGYtaG9zdGVkMEAGCisGAQQBg78wAQwEMgwwaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MDgGCisGAQQBg78wAQ0EKgwoYzRkMGRjNTY2NjFiYWRiOWNjNDdiZGU2NDdlMDhmZTNiNGJmNzQ1ODAfBgorBgEEAYO/MAEOBBEMD3JlZnMvaGVhZHMvbWFpbjAaBgorBgEEAYO/MAEPBAwMCjEwNzE0NzU1MjkwLgYKKwYBBAGDvzABEAQgDB5odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2UwGAYKKwYBBAGDvzABEQQKDAgyNTcyMDc0MzBtBgorBgEEAYO/MAESBF8MXWh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS8uZ2l0aHViL3dvcmtmbG93cy9idWlsZC55YW1sQHJlZnMvaGVhZHMvbWFpbjA4BgorBgEEAYO/MAETBCoMKGM0ZDBkYzU2NjYxYmFkYjljYzQ3YmRlNjQ3ZTA4ZmUzYjRiZjc0NTgwIQYKKwYBBAGDvzABFAQTDBF3b3JrZmxvd19kaXNwYXRjaDBkBgorBgEEAYO/MAEVBFYMVGh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS9hY3Rpb25zL3J1bnMvMzI4NDQ2ODk4OTQvYXR0ZW1wdHMvMTAWBgorBgEEAYO/MAEWBAgMBnB1YmxpYzBGBgorBgEEAYO/MAEYBDgMNnJlcG86aHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHk6cmVmOnJlZnMvaGVhZHMvbWFpbjCBiQYKKwYBBAHWeQIEAgR7BHkAdwB1AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABoDjcv78AAAQDAEYwRAIgKlzyxe6AWov5mUW39DqvC6PqIygH2PTVfWtDDEiZShACIAjVC8GXApHFXp8ltEYDsC34IaK1bMBNl2iIhhEZ+6CUMAoGCCqGSM49BAMDA2kAMGYCMQCncp177k1vh3mDsz4DD7fQqtwTpmCRR0EqLrG8YGQnxNrbxtmgP3XKe/zvGhmETkwCMQDq72NfH5gTj5OiZDei80f8tAdwQhhfT6waK+55gMZq32mpUXoJ7M5Jh6BEgld0Q2A="},"tlogEntries":[{"logIndex":"2583300970","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1787660386","inclusionPromise":{"signedEntryTimestamp":"MEUCIQDAqX15QuahW4ktX+B9pdtCNdXcDxIczhGzUb0L7T0kNgIgE2QOTIieSfs2CzJPiL3bidigMQz0mJKbFMJyAqry9W4="},"inclusionProof":{"logIndex":"2461396708","rootHash":"+/BtGEjaCfOBE3GyItfh2Lva+OpfCMdb5nho4znBQSQ=","treeSize":"2461396712","hashes":["rPq/yA7FeNfQ3tMZyTpSkm9gwhRjTQhF1u/MIi2QgQM=","myJqHqlcVUBm3tQLhERPc/5mnR58YRrfBX5BzOcjhaE=","fggg/bWHkFYa60X0ZTfttapZkWq6l1dyFCmAObC2eTM=","jctsymf2PHXE6SdE6lQqEqLa8/9vIkw0qveGvYs8YBU=","BXKuzzO7ElNGXj0uheQyAFy9pIic2FshQ8heU2FrQwI=","M4YcEg7u+RzHhtqrJi5G60zEdbFHo9OVEDterfXbo4k=","rJMFK17JIR2K3LvDkBdSnu34bvtB3vXQPdwQg0pZ8co=","sBRt94T302PGfFAkqNx12yVeZQ2wK8MXBkspHV8OBEU=","bBUTypOI8GgjhxRM30SIZoDfZopPulgZgxKAp1agI1Q=","EY8T0lxQDrmYoWBGpKNGttaHfKmpfqKcWqSNF4XOQKE=","T4Jz+m9vO48rOpMSsdZSW28/bgHR8prz7JeNX1s7WiQ=","EXKrSbeG2qm5APD5QSDN66X7UHz9OSofiW9PyNU7fPM=","cjIeeutzThxIPTlFFHJqa7bAzn3k2FzK8Nrdd56OWvE=","+pNXWGIXzU1dqSy/aePHKYtSkDnFinI+/bL5HnurJ6w=","G1R9F5B2KizFA2NyhDznjNKXPOF1SDmbGHz+omLG7TY=","RZ7XwGuqMr5gDUh2HpUcaXp+AmIiEcPJiMui4GLJE7o=","mBm+vQtn0C4thMnlTnxfxqowq1dXsPBCKaJ85da3JeU=","b80/J/68RC8/tx5xRdlKk6MmTpZiVRotquWBrE/z1pI=","SndbMKVtcTenAkwi2JBfGzD+mhexp1qJbRIY+A1JRIU=","xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n2461396712\n+/BtGEjaCfOBE3GyItfh2Lva+OpfCMdb5nho4znBQSQ=\n\n— rekor.sigstore.dev wNI9ajBGAiEAuLkkijT5J+/ImxIYxLvWPtbfHcKl2fIjUllTbyIzfgMCIQCkxXNnKp3fuWQNaXLcMoRx1IyYSp6whS6O+0BV9aWpWg==\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiI4MDUwOGUzZjM5ZjEwMDQ1NGMxNGU4MDI5YmU0ZTA2OTM3NGRhYWM2MzA2N2MyZTkwMmI2YWM2MDVjMzQ3OGFhIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJUUNsVXJIekR1R2dpWWZhZ3VPQ1J3dnRyN2FEajRoaDh5aStjNVhGZHlXS0l3SWdVTU9Gb3JJRmpETzUzKzVYRHdyR214YklYUFBsOVRIcTI2eDlUUm96b0NNPSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaFRla05EUW5SRFowRjNTVUpCWjBsVllTdFhTazFpWVZGRE1XZHlkekV5YTI5UVNsVjZPV1ozTTJoWmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDlFU1RGTlZFbDRUMVJSTWxkb1kwNU5hbGwzVDBSSk1VMVVTWGxQVkZFeVYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVUxZFV0VU0zRlVNVmhMYkhnM1FYZ3dkRlJpZVc5MFZIUXhiMWQ2TTJKQ2FWUnRLMFFLUjBWcmNqTTBSMVJTTWpJM2MzaFRjMmg0ZEZFd1kwdDZlbTVoUjNSa00xQjRTRWcxVFRaeGJWSnZjbmQ1VWpsNlNtRlBRMEpsT0hkbloxaHlUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlZWZVVGaENuSkVWRmx0VDNSNVpHcGtSRVZWYUZKamVtbDFUazlGZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDJGM1dVUldVakJTUVZGSUwwSkhSWGRZTkZwa1lVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKb01Wb3laSEJpYldSdFdWZE9iQXBNTW5Sc1kyMDFiR0pJVFhSWk1qbDBZbGhXZFdGWVVqVk1lVFZ1WVZoU2IyUlhTWFprTWpsNVlUSmFjMkl6WkhwTU1rb3hZVmQ0YTB4dWJHaGlWM2hCQ21OdFZtMWplVGx2V2xkR2EyTjVPWFJaVjJ4MVRVUnJSME5wYzBkQlVWRkNaemM0ZDBGUlJVVkxNbWd3WkVoQ2VrOXBPSFprUnpseVdsYzBkVmxYVGpBS1lWYzVkV041Tlc1aFdGSnZaRmRLTVdNeVZubFpNamwxWkVkV2RXUkROV3BpTWpCM1NIZFpTMHQzV1VKQ1FVZEVkbnBCUWtGblVWSmtNamw1WVRKYWN3cGlNMlJtV2tkc2VtTkhSakJaTW1kM1RtZFpTMHQzV1VKQ1FVZEVkbnBCUWtGM1VXOVplbEpyVFVkU2FrNVVXVEpPYWtacFdWZFNhVTlYVG1wT1JHUnBDbHBIVlRKT1JHUnNUVVJvYlZwVVRtbE9SMHB0VG5wUk1VOUVRVlJDWjI5eVFtZEZSVUZaVHk5TlFVVkZRa0ZXUTJSWGJITmFSRUZ5UW1kdmNrSm5SVVVLUVZsUEwwMUJSVVpDUWpGdlpGZGtibUZYTlc1YWJVWnFXbE01Y2xwWVNuVmFWM2g2VEZkT2RtSlhNVEZpYld3d1pWUkJaRUpuYjNKQ1owVkZRVmxQTHdwTlFVVkhRa0U1ZVZwWFducE1NbWhzV1ZkU2Vrd3lNV2hoVnpSM1QzZFpTMHQzV1VKQ1FVZEVkbnBCUWtOQlVYUkVRM1J2WkVoU2QyTjZiM1pNTTFKMkNtRXlWblZNYlVacVpFZHNkbUp1VFhWYU1td3dZVWhXYVdSWVRteGpiVTUyWW01U2JHSnVVWFZaTWpsMFRVY3dSME5wYzBkQlVWRkNaemM0ZDBGUmEwVUtXSGQ0WkdGSVVqQmpTRTAyVEhrNWJtRllVbTlrVjBsMVdUSTVkRXd5YURGYU1tUndZbTFrYlZsWFRteE1NblJzWTIwMWJHSklUWFJaTWpsMFlsaFdkUXBoV0ZJMVRIazFibUZZVW05a1YwbDJaREk1ZVdFeVduTmlNMlI2VERKS01XRlhlR3RNYm14b1lsZDRRV050Vm0xamVUbHZXbGRHYTJONU9YUlpWMngxQ2sxRVowZERhWE5IUVZGUlFtYzNPSGRCVVc5RlMyZDNiMWw2VW10TlIxSnFUbFJaTWs1cVJtbFpWMUpwVDFkT2FrNUVaR2xhUjFVeVRrUmtiRTFFYUcwS1dsUk9hVTVIU20xT2VsRXhUMFJCWWtKbmIzSkNaMFZGUVZsUEwwMUJSVXhDUVRCTlF6Tk9iR0pIV1hSaFJ6bDZaRWRXYTAxRlFVZERhWE5IUVZGUlFncG5OemgzUVZGM1JVMW5kM2RoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlUxRVowZERhWE5IUVZGUlFtYzNPSGRCVVRCRlMyZDNiMWw2VW10TlIxSnFUbFJaTWs1cVJtbFpWMUpwVDFkT2FrNUVaR2tLV2tkVk1rNUVaR3hOUkdodFdsUk9hVTVIU20xT2VsRXhUMFJCWmtKbmIzSkNaMFZGUVZsUEwwMUJSVTlDUWtWTlJETktiRnB1VFhaaFIxWm9Xa2hOZGdwaVYwWndZbXBCWVVKbmIzSkNaMFZGUVZsUEwwMUJSVkJDUVhkTlEycEZkMDU2UlRCT2VsVXhUV3ByZDB4bldVdExkMWxDUWtGSFJIWjZRVUpGUVZGbkNrUkNOVzlrU0ZKM1kzcHZka3d5WkhCa1IyZ3hXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWM1IwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWUlVVc0tSRUZuZVU1VVkzbE5SR013VFhwQ2RFSm5iM0pDWjBWRlFWbFBMMDFCUlZOQ1JqaE5XRmRvTUdSSVFucFBhVGgyV2pKc01HRklWbWxNYlU1MllsTTVid3BrVjJSdVlWYzFibHB0Um1wYVV6bHlXbGhLZFZwWGVIcE1WMDUyWWxjeE1XSnRiREJsVXpoMVdqSnNNR0ZJVm1sTU0yUjJZMjEwYldKSE9UTmplVGxwQ21SWGJITmFRelUxV1ZjeGMxRklTbXhhYmsxMllVZFdhRnBJVFhaaVYwWndZbXBCTkVKbmIzSkNaMFZGUVZsUEwwMUJSVlJDUTI5TlMwZE5NRnBFUW1zS1dYcFZNazVxV1hoWmJVWnJXV3BzYWxsNlVUTlpiVkpzVG1wUk0xcFVRVFJhYlZWNldXcFNhVnBxWXpCT1ZHZDNTVkZaUzB0M1dVSkNRVWRFZG5wQlFncEdRVkZVUkVKR00ySXpTbkphYlhoMlpERTVhMkZZVG5kWldGSnFZVVJDYTBKbmIzSkNaMFZGUVZsUEwwMUJSVlpDUmxsTlZrZG9NR1JJUW5wUGFUaDJDbG95YkRCaFNGWnBURzFPZG1KVE9XOWtWMlJ1WVZjMWJscHRSbXBhVXpseVdsaEtkVnBYZUhwTVYwNTJZbGN4TVdKdGJEQmxVemxvV1ROU2NHSXlOWG9LVEROS01XSnVUWFpOZWtrMFRrUlJNazlFYXpSUFZGRjJXVmhTTUZwWE1YZGtTRTEyVFZSQlYwSm5iM0pDWjBWRlFWbFBMMDFCUlZkQ1FXZE5RbTVDTVFwWmJYaHdXWHBDUjBKbmIzSkNaMFZGUVZsUEwwMUJSVmxDUkdkTlRtNUtiR05IT0RaaFNGWnVXakpzZFZveVdtaFpNbFYyWVRKV2VXSnRWbk5qZVRGcUNtSXlNWFJrVnpWd1pFaHJObU50Vm0xUGJrcHNXbTVOZG1GSFZtaGFTRTEyWWxkR2NHSnFRMEpwVVZsTFMzZFpRa0pCU0ZkbFVVbEZRV2RTTjBKSWEwRUtaSGRDTVVGT01EbE5SM0pIZUhoRmVWbDRhMlZJU214dVRuZExhVk5zTmpRemFubDBMelJsUzJOdlFYWkxaVFpQUVVGQlFtOUVhbU4yTnpoQlFVRlJSQXBCUlZsM1VrRkpaMHRzZW5sNFpUWkJWMjkyTlcxVlZ6TTVSSEYyUXpaUWNVbDVaMGd5VUZSV1psZDBSRVJGYVZwVGFFRkRTVUZxVmtNNFIxaEJjRWhHQ2xod09HeDBSVmxFYzBNek5FbGhTekZpVFVKT2JESnBTV2hvUlZvck5rTlZUVUZ2UjBORGNVZFRUVFE1UWtGTlJFRXlhMEZOUjFsRFRWRkRibU53TVRjS04yc3hkbWd6YlVSemVqUkVSRGRtVVhGMGQxUndiVU5TVWpCRmNVeHlSemhaUjFGdWVFNXlZbmgwYldkUU0xaExaUzk2ZGtkb2JVVlVhM2REVFZGRWNRbzNNazVtU0RWblZHbzFUMmxhUkdWcE9EQm1PSFJCWkhkUmFHaG1WRFozWVVzck5UVm5UVnB4TXpKdGNGVlliMG8zVFRWS2FEWkNSV2RzWkRCUk1rRTlDaTB0TFMwdFJVNUVJRU5GVWxSSlJrbERRVlJGTFMwdExTMEsifX19fQ=="}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyjADAgEAMIICwQYJKoZIhvcNAQcCoIICsjCCAq4CAQMxDTALBglghkgBZQMEAgEwgbgGCyqGSIb3DQEJEAEEoIGoBIGlMIGiAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgqPejiK1ZbyXw+q7IqxjjAak/qGm6VF9NBzFPJCDomVkCFQCQI9QhFSZZ0In1mR+9sJvhrSrSwhgPMjAyNjA4MjUxMjE5NDZaMAMCAQGgMqQwMC4xFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEVMBMGA1UEAxMMc2lnc3RvcmUtdHNhoAAxggHbMIIB1wIBATBRMDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAsGCWCGSAFlAwQCAaCB/DAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTI2MDgyNTEyMTk0NlowLwYJKoZIhvcNAQkEMSIEINw8sRB6JyhxDYV2KzcKOqkuc8pvkOSfroRmUeJcX+SGMIGOBgsqhkiG9w0BCRACLzF/MH0wezB5BCCF+Se8B6tiysO0Q1bBDvyBssaIP9p6uebYcNnROs0FtzBVMD2kOzA5MRUwEwYDVQQKEwxzaWdzdG9yZS5kZXYxIDAeBgNVBAMTF3NpZ3N0b3JlLXRzYS1zZWxmc2lnbmVkAhQ6E1QvDJBh7rzBQy/Lio6LKiOLDDAKBggqhkjOPQQDAgRnMGUCMQCf7RAfBiR3Utsnu4eKiIBBuQPPD+FDfFPDze92VvMbih/B9DtQTTKxOoEQb4aeptkCMFowKt2axet72pb7NaHXc0V357Ij6BJEgN8++VF4hG7HWQVY2gMdGsIcVvh/pVqCXg=="}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"gFCOPznxAEVMFOgCm+TgaTdNqsYwZ8LpArasYFw0eKo="},"signature":"MEUCIQClUrHzDuGgiYfaguOCRwvtr7aDj4hh8yi+c5XFdyWKIwIgUMOForIFjDO53+5XDwrGmxbIXPPl9THq26x9TRozoCM="}}
build/torch213-cxx11-cu130-aarch64-linux/xpu_fused_moe.py CHANGED
@@ -26,7 +26,7 @@ def _register_xpu_fake_kernels():
26
 
27
  _register_if_available(
28
  "cutlass_grouped_gemm_interface",
29
- lambda ptr_A, ptr_B, ptr_scales, ptr_bias, ptr_D, expert_first_token_offset, N, K, num_experts, is_B_int4, is_B_mxfp4: ptr_D,
30
  )
31
 
32
  _register_if_available(
@@ -106,12 +106,13 @@ def cutlass_grouped_gemm(input_A, input_B, bias, output, expert_token_count, n,
106
  K=k,
107
  num_experts=num_experts,
108
  is_B_int4=False,
109
- is_B_mxfp4=False)
 
110
 
111
 
112
  def cutlass_grouped_gemm_xe2(input_A, input_B, scales, bias, output,
113
  num_rows_per_expert, n, k, num_experts, is_B_int4,
114
- is_B_mxfp4):
115
  expert_first_token_offset = torch.cat([
116
  torch.tensor([0],
117
  dtype=num_rows_per_expert.dtype,
@@ -129,7 +130,8 @@ def cutlass_grouped_gemm_xe2(input_A, input_B, scales, bias, output,
129
  K=k,
130
  num_experts=num_experts,
131
  is_B_int4=is_B_int4,
132
- is_B_mxfp4=is_B_mxfp4)
 
133
 
134
 
135
  def ceilDiv(a, b):
@@ -206,7 +208,8 @@ def xpu_fused_moe(hidden_states,
206
  ep_size=1,
207
  is_fp8=False,
208
  is_int4=False,
209
- is_mxfp4=False):
 
210
  '''
211
  hidden_states: [num_rows, hidden_size]
212
  w13: [num_experts, 2*inter_size, hidden_size]
@@ -228,6 +231,7 @@ def xpu_fused_moe(hidden_states,
228
  num_experts: int
229
  is_int4: bool
230
  is_mxfp4: bool
 
231
  '''
232
 
233
  # Resolve DTensors to local tensors before passing to custom ops
@@ -266,7 +270,7 @@ def xpu_fused_moe(hidden_states,
266
 
267
  # 4bits support [E, N, K]
268
  # other types [E, K, N]
269
- if not is_int4 and not is_mxfp4:
270
  if not hasattr(w13, 'xpu_fused_moe'):
271
  if needs_transpose:
272
  w13.data = w13.transpose(-1, -2).contiguous()
@@ -389,7 +393,7 @@ def xpu_fused_moe(hidden_states,
389
  ########### gemm1 ##################
390
  input_B = w13
391
 
392
- if not is_fp8 and not is_int4 and not is_mxfp4:
393
  ops.cutlass_grouped_gemm_interface(
394
  ptr_A=gemm1_input,
395
  ptr_B=input_B,
@@ -401,7 +405,8 @@ def xpu_fused_moe(hidden_states,
401
  K=hidden_size,
402
  num_experts=num_experts_per_node,
403
  is_B_int4=is_int4,
404
- is_B_mxfp4=is_mxfp4)
 
405
  else:
406
  ops.cutlass_grouped_gemm_interface(
407
  ptr_A=gemm1_input,
@@ -414,7 +419,8 @@ def xpu_fused_moe(hidden_states,
414
  K=hidden_size,
415
  num_experts=num_experts_per_node,
416
  is_B_int4=is_int4,
417
- is_B_mxfp4=is_mxfp4)
 
418
 
419
  # act
420
  act_output = torch.empty((num_moe_inputs, inter_size),
@@ -435,7 +441,7 @@ def xpu_fused_moe(hidden_states,
435
  gemm2_output = torch.empty((num_moe_inputs, hidden_size),
436
  dtype=hidden_states.dtype,
437
  device=hidden_states.device)
438
- if not is_fp8 and not is_int4 and not is_mxfp4:
439
  ops.cutlass_grouped_gemm_interface(
440
  ptr_A=input_A,
441
  ptr_B=input_B,
@@ -447,7 +453,8 @@ def xpu_fused_moe(hidden_states,
447
  K=inter_size,
448
  num_experts=num_experts_per_node,
449
  is_B_int4=is_int4,
450
- is_B_mxfp4=is_mxfp4)
 
451
  else:
452
  ops.cutlass_grouped_gemm_interface(
453
  ptr_A=input_A,
@@ -460,7 +467,8 @@ def xpu_fused_moe(hidden_states,
460
  K=inter_size,
461
  num_experts=num_experts_per_node,
462
  is_B_int4=is_int4,
463
- is_B_mxfp4=is_mxfp4)
 
464
 
465
  ops.moe_gather(output, gemm2_output, topk_weights,
466
  permuted_row_to_unpermuted_row,
@@ -633,6 +641,7 @@ class MegaBlocksMoeMLP(torch.nn.Module):
633
  is_fp8 = getattr(self.experts, "is_fp8", False)
634
  is_int4 = getattr(self.experts, "is_int4", False)
635
  is_mxfp4 = getattr(self.experts, "is_mxfp4", False)
 
636
 
637
  w13_scales = getattr(self.experts, "gate_up_proj_scales", None)
638
  w2_scales = getattr(self.experts, "down_proj_scales", None)
@@ -685,6 +694,7 @@ class MegaBlocksMoeMLP(torch.nn.Module):
685
  is_fp8=is_fp8,
686
  is_int4=is_int4,
687
  is_mxfp4=is_mxfp4,
 
688
  )
689
 
690
  # All-reduce across EP group to combine partial expert outputs
 
26
 
27
  _register_if_available(
28
  "cutlass_grouped_gemm_interface",
29
+ lambda ptr_A, ptr_B, ptr_scales, ptr_bias, ptr_D, expert_first_token_offset, N, K, num_experts, is_B_int4, is_B_mxfp4, is_B_mxfp8=False: ptr_D,
30
  )
31
 
32
  _register_if_available(
 
106
  K=k,
107
  num_experts=num_experts,
108
  is_B_int4=False,
109
+ is_B_mxfp4=False,
110
+ is_B_mxfp8=False)
111
 
112
 
113
  def cutlass_grouped_gemm_xe2(input_A, input_B, scales, bias, output,
114
  num_rows_per_expert, n, k, num_experts, is_B_int4,
115
+ is_B_mxfp4, is_B_mxfp8=False):
116
  expert_first_token_offset = torch.cat([
117
  torch.tensor([0],
118
  dtype=num_rows_per_expert.dtype,
 
130
  K=k,
131
  num_experts=num_experts,
132
  is_B_int4=is_B_int4,
133
+ is_B_mxfp4=is_B_mxfp4,
134
+ is_B_mxfp8=is_B_mxfp8)
135
 
136
 
137
  def ceilDiv(a, b):
 
208
  ep_size=1,
209
  is_fp8=False,
210
  is_int4=False,
211
+ is_mxfp4=False,
212
+ is_mxfp8=False):
213
  '''
214
  hidden_states: [num_rows, hidden_size]
215
  w13: [num_experts, 2*inter_size, hidden_size]
 
231
  num_experts: int
232
  is_int4: bool
233
  is_mxfp4: bool
234
+ is_mxfp8: bool
235
  '''
236
 
237
  # Resolve DTensors to local tensors before passing to custom ops
 
270
 
271
  # 4bits support [E, N, K]
272
  # other types [E, K, N]
273
+ if not is_int4 and not is_mxfp4 and not is_mxfp8:
274
  if not hasattr(w13, 'xpu_fused_moe'):
275
  if needs_transpose:
276
  w13.data = w13.transpose(-1, -2).contiguous()
 
393
  ########### gemm1 ##################
394
  input_B = w13
395
 
396
+ if not is_fp8 and not is_int4 and not is_mxfp4 and not is_mxfp8:
397
  ops.cutlass_grouped_gemm_interface(
398
  ptr_A=gemm1_input,
399
  ptr_B=input_B,
 
405
  K=hidden_size,
406
  num_experts=num_experts_per_node,
407
  is_B_int4=is_int4,
408
+ is_B_mxfp4=is_mxfp4,
409
+ is_B_mxfp8=is_mxfp8)
410
  else:
411
  ops.cutlass_grouped_gemm_interface(
412
  ptr_A=gemm1_input,
 
419
  K=hidden_size,
420
  num_experts=num_experts_per_node,
421
  is_B_int4=is_int4,
422
+ is_B_mxfp4=is_mxfp4,
423
+ is_B_mxfp8=is_mxfp8)
424
 
425
  # act
426
  act_output = torch.empty((num_moe_inputs, inter_size),
 
441
  gemm2_output = torch.empty((num_moe_inputs, hidden_size),
442
  dtype=hidden_states.dtype,
443
  device=hidden_states.device)
444
+ if not is_fp8 and not is_int4 and not is_mxfp4 and not is_mxfp8:
445
  ops.cutlass_grouped_gemm_interface(
446
  ptr_A=input_A,
447
  ptr_B=input_B,
 
453
  K=inter_size,
454
  num_experts=num_experts_per_node,
455
  is_B_int4=is_int4,
456
+ is_B_mxfp4=is_mxfp4,
457
+ is_B_mxfp8=is_mxfp8)
458
  else:
459
  ops.cutlass_grouped_gemm_interface(
460
  ptr_A=input_A,
 
467
  K=inter_size,
468
  num_experts=num_experts_per_node,
469
  is_B_int4=is_int4,
470
+ is_B_mxfp4=is_mxfp4,
471
+ is_B_mxfp8=is_mxfp8)
472
 
473
  ops.moe_gather(output, gemm2_output, topk_weights,
474
  permuted_row_to_unpermuted_row,
 
641
  is_fp8 = getattr(self.experts, "is_fp8", False)
642
  is_int4 = getattr(self.experts, "is_int4", False)
643
  is_mxfp4 = getattr(self.experts, "is_mxfp4", False)
644
+ is_mxfp8 = getattr(self.experts, "is_mxfp8", False)
645
 
646
  w13_scales = getattr(self.experts, "gate_up_proj_scales", None)
647
  w2_scales = getattr(self.experts, "down_proj_scales", None)
 
694
  is_fp8=is_fp8,
695
  is_int4=is_int4,
696
  is_mxfp4=is_mxfp4,
697
+ is_mxfp8=is_mxfp8,
698
  )
699
 
700
  # All-reduce across EP group to combine partial expert outputs
build/torch213-cxx11-cu132-aarch64-linux/{_megablocks_cuda_18e92fb.abi3.so → _megablocks_cuda_c4d0dc5.abi3.so} RENAMED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:da407707aebe565a1d9ba6d57d9b7e7437ca37e02a915b4e727b72fd38417b54
3
  size 10393200
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b771635991a5759a16294af9a8e125105fee84ff1f77cd412051adffbb24b343
3
  size 10393200
build/torch213-cxx11-cu132-aarch64-linux/_ops.py CHANGED
@@ -1,9 +1,9 @@
1
  import torch
2
- from . import _megablocks_cuda_18e92fb
3
- ops = torch.ops._megablocks_cuda_18e92fb
4
 
5
  def add_op_namespace_prefix(op_name: str):
6
  """
7
  Prefix op by namespace.
8
  """
9
- return f"_megablocks_cuda_18e92fb::{op_name}"
 
1
  import torch
2
+ from . import _megablocks_cuda_c4d0dc5
3
+ ops = torch.ops._megablocks_cuda_c4d0dc5
4
 
5
  def add_op_namespace_prefix(op_name: str):
6
  """
7
  Prefix op by namespace.
8
  """
9
+ return f"_megablocks_cuda_c4d0dc5::{op_name}"
build/torch213-cxx11-cu132-aarch64-linux/metadata.json CHANGED
@@ -1,6 +1,6 @@
1
  {
2
  "name": "megablocks",
3
- "id": "_megablocks_cuda_18e92fb",
4
  "version": 1,
5
  "license": "Apache-2.0",
6
  "python-depends": [],
@@ -48,8 +48,8 @@
48
  "_layers/mpu.py": "BX61/pmqRCVeEMnzpuK8x5NpITBJyZfOawGnDegW1O8=",
49
  "_layers/router.py": "GKC/5//Uf43HT6zXlBTStCMTml2YXn7Jbgq9EgTgDC0=",
50
  "_layers/sharedexpert_registry.py": "GfwHKjbC7lBXYq9kNifp3HudTdZKSqwsFxGxFLc2krw=",
51
- "_megablocks_cuda_18e92fb.abi3.so": "2kB3B66+Vlodm6bVfZt+dDfKN+AqkVtOcnty/ThBe1Q=",
52
- "_ops.py": "baTEjeHRnpTSLod30qZST/UL5GNv7vZoGeNwQWakxbo=",
53
  "_version.py": "W3l9oUrnmvfBoIy06Lv0y2ezTQhNU04ug/txHcdWJD0=",
54
  "backend/__init__.py": "4bunAqqjwE93nym8CigHbqVAal7UaYGdONb8lGRfrek=",
55
  "backend/kernels.py": "2UFNTlmSDk3S5y6UW14MJMPVVsVhmozxQ5wFDxtZHhQ=",
@@ -100,7 +100,7 @@
100
  "stk/random/__init__.py": "Gr/+Gl20jJ6fJVRfoAUxEcCPeChILQzrzhKVVAWQsRI=",
101
  "stk/random/random_ops.py": "AluIDj3Vo2ReKAsZz07yydbtndDbJoglekRGIaCoRZE=",
102
  "stk/random/random_ops_test.py": "B+a4Zb+OPhBtpVA48oc09sBL/AAQO9j/YUFI0nnXxzk=",
103
- "xpu_fused_moe.py": "Dp6S3fK/Fc4Sr+Ac94vw2zz0v/QTGp6rYeMIUqE3Y/I="
104
  }
105
  },
106
  "provenance": {
@@ -110,7 +110,7 @@
110
  "dirty": false
111
  },
112
  "kernel": {
113
- "sha": "18e92fb6886201ffb91c173f02593777756c793f",
114
  "dirty": false
115
  }
116
  }
 
1
  {
2
  "name": "megablocks",
3
+ "id": "_megablocks_cuda_c4d0dc5",
4
  "version": 1,
5
  "license": "Apache-2.0",
6
  "python-depends": [],
 
48
  "_layers/mpu.py": "BX61/pmqRCVeEMnzpuK8x5NpITBJyZfOawGnDegW1O8=",
49
  "_layers/router.py": "GKC/5//Uf43HT6zXlBTStCMTml2YXn7Jbgq9EgTgDC0=",
50
  "_layers/sharedexpert_registry.py": "GfwHKjbC7lBXYq9kNifp3HudTdZKSqwsFxGxFLc2krw=",
51
+ "_megablocks_cuda_c4d0dc5.abi3.so": "t3FjWZGldZoWKUr5qOElEF/uhP8fd81BIFGt/7sks0M=",
52
+ "_ops.py": "9NSxkX5lSS5VhF9+hDazP5NimwZK2V/+nIXR0AQxnHA=",
53
  "_version.py": "W3l9oUrnmvfBoIy06Lv0y2ezTQhNU04ug/txHcdWJD0=",
54
  "backend/__init__.py": "4bunAqqjwE93nym8CigHbqVAal7UaYGdONb8lGRfrek=",
55
  "backend/kernels.py": "2UFNTlmSDk3S5y6UW14MJMPVVsVhmozxQ5wFDxtZHhQ=",
 
100
  "stk/random/__init__.py": "Gr/+Gl20jJ6fJVRfoAUxEcCPeChILQzrzhKVVAWQsRI=",
101
  "stk/random/random_ops.py": "AluIDj3Vo2ReKAsZz07yydbtndDbJoglekRGIaCoRZE=",
102
  "stk/random/random_ops_test.py": "B+a4Zb+OPhBtpVA48oc09sBL/AAQO9j/YUFI0nnXxzk=",
103
+ "xpu_fused_moe.py": "sPmuRSpkH1Bmk4hdpz53us8Qpc6yinT9rkld3T8WreI="
104
  }
105
  },
106
  "provenance": {
 
110
  "dirty": false
111
  },
112
  "kernel": {
113
+ "sha": "c4d0dc56661badb9cc47bde647e08fe3b4bf7458",
114
  "dirty": false
115
  }
116
  }
build/torch213-cxx11-cu132-aarch64-linux/metadata.json.sigstore CHANGED
@@ -1 +1 @@
1
- {"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"MIIHSjCCBtCgAwIBAgIUIKN96qO6niw8wTgQQyEhIigsi/wwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwODI1MDkwNDI1WhcNMjYwODI1MDkxNDI1WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEi+5T9ae/x3kJGsNATqK7PnrZYwZp3oRfRuiz0kLs/bS+m9OiT2kIE4ulNCpRejTb7XGwPOsR6+H1my4nq+aMbaOCBe8wggXrMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUugj1xlZyAA8vY3ObSi5R27RzHuAwHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wawYDVR0RAQH/BGEwX4ZdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDkGCisGAQQBg78wAQEEK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wHwYKKwYBBAGDvzABAgQRd29ya2Zsb3dfZGlzcGF0Y2gwNgYKKwYBBAGDvzABAwQoMThlOTJmYjY4ODYyMDFmZmI5MWMxNzNmMDI1OTM3Nzc3NTZjNzkzZjATBgorBgEEAYO/MAEEBAVCdWlsZDArBgorBgEEAYO/MAEFBB1odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTAdBgorBgEEAYO/MAEGBA9yZWZzL2hlYWRzL21haW4wOwYKKwYBBAGDvzABCAQtDCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMG0GCisGAQQBg78wAQkEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wAQoEKgwoMThlOTJmYjY4ODYyMDFmZmI5MWMxNzNmMDI1OTM3Nzc3NTZjNzkzZjAbBgorBgEEAYO/MAELBA0MC3NlbGYtaG9zdGVkMEAGCisGAQQBg78wAQwEMgwwaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MDgGCisGAQQBg78wAQ0EKgwoMThlOTJmYjY4ODYyMDFmZmI5MWMxNzNmMDI1OTM3Nzc3NTZjNzkzZjAfBgorBgEEAYO/MAEOBBEMD3JlZnMvaGVhZHMvbWFpbjAaBgorBgEEAYO/MAEPBAwMCjEwNzE0NzU1MjkwLgYKKwYBBAGDvzABEAQgDB5odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2UwGAYKKwYBBAGDvzABEQQKDAgyNTcyMDc0MzBtBgorBgEEAYO/MAESBF8MXWh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS8uZ2l0aHViL3dvcmtmbG93cy9idWlsZC55YW1sQHJlZnMvaGVhZHMvbWFpbjA4BgorBgEEAYO/MAETBCoMKDE4ZTkyZmI2ODg2MjAxZmZiOTFjMTczZjAyNTkzNzc3NzU2Yzc5M2YwIQYKKwYBBAGDvzABFAQTDBF3b3JrZmxvd19kaXNwYXRjaDBkBgorBgEEAYO/MAEVBFYMVGh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS9hY3Rpb25zL3J1bnMvMzI4Mjc3ODQ2NjkvYXR0ZW1wdHMvMTAWBgorBgEEAYO/MAEWBAgMBnB1YmxpYzBGBgorBgEEAYO/MAEYBDgMNnJlcG86aHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHk6cmVmOnJlZnMvaGVhZHMvbWFpbjCBiQYKKwYBBAHWeQIEAgR7BHkAdwB1AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABoDgp6QcAAAQDAEYwRAIgYCtaiqUXEbqLlZ0Zdzeq2qrgDedZgqmBB815uqHMzcMCIA7GZGgg8WTS7czs8QdInEK0kY8OMYrvOlgsP85nCdTLMAoGCCqGSM49BAMDA2gAMGUCMACwzULkbzQgwhISHWQwIu1+V7YYpmJZBYXOcjf0fUcB43Na3OQP3SNniuPLW4yAowIxALBHha/brnttgvceCZT+cR7xg8XiWNyA39E1I5cLDs9IRCsBTQsdQ43Kls8pO1vz9g=="},"tlogEntries":[{"logIndex":"2582977859","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1787648666","inclusionPromise":{"signedEntryTimestamp":"MEQCIEG1VLJ1vP2qQfMsRPnZ9XzadQGLN5MQbSFe9TPhX/WwAiBYm7IbZFLMDVcVDvcmazyj6ZCFk5GeFXs1DQl+2rfsEw=="},"inclusionProof":{"logIndex":"2461073597","rootHash":"LNPoCc/pShINEqNrdb1g7EZ0x2C7pfu4qUZhyWNH7WA=","treeSize":"2461073602","hashes":["gAGmTCfpbuyfmZ9kZXp8dSavdBNUNAd6JNCkUaoTANk=","afKBR25GgH9Kt2K3fT90qHhTahV1n17bqgQbanSsj2w=","j9TsVZHvmJIw7PhaMxWhO9PFssI7YJQCub1QVZ5BSxE=","hMcunMan/QEb4k6PtHCDeLWDw7KcD7mb2w/g6jIw7r8=","2aIgbBj6PDPfNCiDK/xGx1S6kXWAFE0oFfxcHOzOfZc=","la/NkjAdjkF6bNeSlJB+awx+HHp1GMhg1utiqCNjlDk=","pFPl7r5TL+BvyorK0Jb8/8dZum0E0a1WtS/SeoEAeyg=","f96QBJwcFN9L0WkH/laITJQPIRru+66zvTEJhSnxV+o=","/pzrkLFRwt/XMVRmL7s6Ii88QiOLu5drCOp/UggZ7TU=","G1R9F5B2KizFA2NyhDznjNKXPOF1SDmbGHz+omLG7TY=","RZ7XwGuqMr5gDUh2HpUcaXp+AmIiEcPJiMui4GLJE7o=","mBm+vQtn0C4thMnlTnxfxqowq1dXsPBCKaJ85da3JeU=","b80/J/68RC8/tx5xRdlKk6MmTpZiVRotquWBrE/z1pI=","SndbMKVtcTenAkwi2JBfGzD+mhexp1qJbRIY+A1JRIU=","xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n2461073602\nLNPoCc/pShINEqNrdb1g7EZ0x2C7pfu4qUZhyWNH7WA=\n\n— rekor.sigstore.dev wNI9ajBFAiBRghzrOqW48OjI73fP4M89K4ykJlBrE17fm46Tku+4ugIhAJ/oTF7JmsbDsY60Nc6ExI57/mEdwB0ck4iHpD4HSP1v\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiJjZDkzZjNkZjYwMmUxZDllYTcwZjE0MjFiNWYwM2EzYTAxMTEyMDdiYmVhNDkwN2U0YTU2N2QwMzBlNmE5MzVjIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJUURocVVWdzRFdk9qZFZnRXF3MUZ6d21QVm4yWTBobjNBL0hnaWtPRGdhWit3SWdPYmw2dFNMZWY3VzFrM3ZQbjE3bHQzWVZDN25LbXZXR1dmQjFQSnBTMEJJPSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaFRha05EUW5SRFowRjNTVUpCWjBsVlNVdE9PVFp4VHpadWFYYzRkMVJuVVZGNVJXaEphV2R6YVM5M2QwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDlFU1RGTlJHdDNUa1JKTVZkb1kwNU5hbGwzVDBSSk1VMUVhM2hPUkVreFYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZwS3pWVU9XRmxMM2d6YTBwSGMwNUJWSEZMTjFCdWNscFpkMXB3TTI5U1psSjFhWG9LTUd0TWN5OWlVeXR0T1U5cFZESnJTVVUwZFd4T1EzQlNaV3BVWWpkWVIzZFFUM05TTml0SU1XMTVORzV4SzJGTlltRlBRMEpsT0hkbloxaHlUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlYxWjJveENuaHNXbmxCUVRoMldUTlBZbE5wTlZJeU4xSjZTSFZCZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDJGM1dVUldVakJTUVZGSUwwSkhSWGRZTkZwa1lVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKb01Wb3laSEJpYldSdFdWZE9iQXBNTW5Sc1kyMDFiR0pJVFhSWk1qbDBZbGhXZFdGWVVqVk1lVFZ1WVZoU2IyUlhTWFprTWpsNVlUSmFjMkl6WkhwTU1rb3hZVmQ0YTB4dWJHaGlWM2hCQ21OdFZtMWplVGx2V2xkR2EyTjVPWFJaVjJ4MVRVUnJSME5wYzBkQlVWRkNaemM0ZDBGUlJVVkxNbWd3WkVoQ2VrOXBPSFprUnpseVdsYzBkVmxYVGpBS1lWYzVkV041Tlc1aFdGSnZaRmRLTVdNeVZubFpNamwxWkVkV2RXUkROV3BpTWpCM1NIZFpTMHQzV1VKQ1FVZEVkbnBCUWtGblVWSmtNamw1WVRKYWN3cGlNMlJtV2tkc2VtTkhSakJaTW1kM1RtZFpTMHQzV1VKQ1FVZEVkbnBCUWtGM1VXOU5WR2hzVDFSS2JWbHFXVFJQUkZsNVRVUkdiVnB0U1RWTlYwMTRDazU2VG0xTlJFa3hUMVJOTTA1Nll6Tk9WRnBxVG5wcmVscHFRVlJDWjI5eVFtZEZSVUZaVHk5TlFVVkZRa0ZXUTJSWGJITmFSRUZ5UW1kdmNrSm5SVVVLUVZsUEwwMUJSVVpDUWpGdlpGZGtibUZYTlc1YWJVWnFXbE01Y2xwWVNuVmFWM2g2VEZkT2RtSlhNVEZpYld3d1pWUkJaRUpuYjNKQ1owVkZRVmxQTHdwTlFVVkhRa0U1ZVZwWFducE1NbWhzV1ZkU2Vrd3lNV2hoVnpSM1QzZFpTMHQzV1VKQ1FVZEVkbnBCUWtOQlVYUkVRM1J2WkVoU2QyTjZiM1pNTTFKMkNtRXlWblZNYlVacVpFZHNkbUp1VFhWYU1td3dZVWhXYVdSWVRteGpiVTUyWW01U2JHSnVVWFZaTWpsMFRVY3dSME5wYzBkQlVWRkNaemM0ZDBGUmEwVUtXSGQ0WkdGSVVqQmpTRTAyVEhrNWJtRllVbTlrVjBsMVdUSTVkRXd5YURGYU1tUndZbTFrYlZsWFRteE1NblJzWTIwMWJHSklUWFJaTWpsMFlsaFdkUXBoV0ZJMVRIazFibUZZVW05a1YwbDJaREk1ZVdFeVduTmlNMlI2VERKS01XRlhlR3RNYm14b1lsZDRRV050Vm0xamVUbHZXbGRHYTJONU9YUlpWMngxQ2sxRVowZERhWE5IUVZGUlFtYzNPSGRCVVc5RlMyZDNiMDFVYUd4UFZFcHRXV3BaTkU5RVdYbE5SRVp0V20xSk5VMVhUWGhPZWs1dFRVUkpNVTlVVFRNS1RucGpNMDVVV21wT2VtdDZXbXBCWWtKbmIzSkNaMFZGUVZsUEwwMUJSVXhDUVRCTlF6Tk9iR0pIV1hSaFJ6bDZaRWRXYTAxRlFVZERhWE5IUVZGUlFncG5OemgzUVZGM1JVMW5kM2RoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlUxRVowZERhWE5IUVZGUlFtYzNPSGRCVVRCRlMyZDNiMDFVYUd4UFZFcHRXV3BaTkU5RVdYbE5SRVp0V20xSk5VMVhUWGdLVG5wT2JVMUVTVEZQVkUwelRucGpNMDVVV21wT2VtdDZXbXBCWmtKbmIzSkNaMFZGUVZsUEwwMUJSVTlDUWtWTlJETktiRnB1VFhaaFIxWm9Xa2hOZGdwaVYwWndZbXBCWVVKbmIzSkNaMFZGUVZsUEwwMUJSVkJDUVhkTlEycEZkMDU2UlRCT2VsVXhUV3ByZDB4bldVdExkMWxDUWtGSFJIWjZRVUpGUVZGbkNrUkNOVzlrU0ZKM1kzcHZka3d5WkhCa1IyZ3hXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWM1IwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWUlVVc0tSRUZuZVU1VVkzbE5SR013VFhwQ2RFSm5iM0pDWjBWRlFWbFBMMDFCUlZOQ1JqaE5XRmRvTUdSSVFucFBhVGgyV2pKc01HRklWbWxNYlU1MllsTTVid3BrVjJSdVlWYzFibHB0Um1wYVV6bHlXbGhLZFZwWGVIcE1WMDUyWWxjeE1XSnRiREJsVXpoMVdqSnNNR0ZJVm1sTU0yUjJZMjEwYldKSE9UTmplVGxwQ21SWGJITmFRelUxV1ZjeGMxRklTbXhhYmsxMllVZFdhRnBJVFhaaVYwWndZbXBCTkVKbmIzSkNaMFZGUVZsUEwwMUJSVlJDUTI5TlMwUkZORnBVYTNrS1dtMUpNazlFWnpKTmFrRjRXbTFhYVU5VVJtcE5WR042V21wQmVVNVVhM3BPZW1NelRucFZNbGw2WXpWTk1sbDNTVkZaUzB0M1dVSkNRVWRFZG5wQlFncEdRVkZVUkVKR00ySXpTbkphYlhoMlpERTVhMkZZVG5kWldGSnFZVVJDYTBKbmIzSkNaMFZGUVZsUEwwMUJSVlpDUmxsTlZrZG9NR1JJUW5wUGFUaDJDbG95YkRCaFNGWnBURzFPZG1KVE9XOWtWMlJ1WVZjMWJscHRSbXBhVXpseVdsaEtkVnBYZUhwTVYwNTJZbGN4TVdKdGJEQmxVemxvV1ROU2NHSXlOWG9LVEROS01XSnVUWFpOZWtrMFRXcGpNMDlFVVRKT2FtdDJXVmhTTUZwWE1YZGtTRTEyVFZSQlYwSm5iM0pDWjBWRlFWbFBMMDFCUlZkQ1FXZE5RbTVDTVFwWmJYaHdXWHBDUjBKbmIzSkNaMFZGUVZsUEwwMUJSVmxDUkdkTlRtNUtiR05IT0RaaFNGWnVXakpzZFZveVdtaFpNbFYyWVRKV2VXSnRWbk5qZVRGcUNtSXlNWFJrVnpWd1pFaHJObU50Vm0xUGJrcHNXbTVOZG1GSFZtaGFTRTEyWWxkR2NHSnFRMEpwVVZsTFMzZFpRa0pCU0ZkbFVVbEZRV2RTTjBKSWEwRUtaSGRDTVVGT01EbE5SM0pIZUhoRmVWbDRhMlZJU214dVRuZExhVk5zTmpRemFubDBMelJsUzJOdlFYWkxaVFpQUVVGQlFtOUVaM0EyVVdOQlFVRlJSQXBCUlZsM1VrRkpaMWxEZEdGcGNWVllSV0p4VEd4YU1GcGtlbVZ4TW5GeVowUmxaRnBuY1cxQ1FqZ3hOWFZ4U0UxNlkwMURTVUUzUjFwSFoyYzRWMVJUQ2pkamVuTTRVV1JKYmtWTE1HdFpPRTlOV1hKMlQyeG5jMUE0Tlc1RFpGUk1UVUZ2UjBORGNVZFRUVFE1UWtGTlJFRXlaMEZOUjFWRFRVRkRkM3BWVEdzS1lucFJaM2RvU1ZOSVYxRjNTWFV4SzFZM1dWbHdiVXBhUWxsWVQyTnFaakJtVldOQ05ETk9ZVE5QVVZBelUwNXVhWFZRVEZjMGVVRnZkMGw0UVV4Q1NBcG9ZUzlpY201MGRHZDJZMlZEV2xRclkxSTNlR2M0V0dsWFRubEJNemxGTVVrMVkweEVjemxKVWtOelFsUlJjMlJSTkROTGJITTRjRTh4ZG5vNVp6MDlDaTB0TFMwdFJVNUVJRU5GVWxSSlJrbERRVlJGTFMwdExTMEsifX19fQ=="}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyjADAgEAMIICwQYJKoZIhvcNAQcCoIICsjCCAq4CAQMxDTALBglghkgBZQMEAgEwgbgGCyqGSIb3DQEJEAEEoIGoBIGlMIGiAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgpwqjMDw3nwkf4G20GMykmbJ4wq5UgUde5B5zqEZV51kCFQDhLfomwgeAw+bYpREBOgnsxVQPOhgPMjAyNjA4MjUwOTA0MjVaMAMCAQGgMqQwMC4xFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEVMBMGA1UEAxMMc2lnc3RvcmUtdHNhoAAxggHbMIIB1wIBATBRMDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAsGCWCGSAFlAwQCAaCB/DAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTI2MDgyNTA5MDQyNVowLwYJKoZIhvcNAQkEMSIEILAMreDO3rbxFqB5lF++PfdM/6NJkB16nsZYwKk5hcviMIGOBgsqhkiG9w0BCRACLzF/MH0wezB5BCCF+Se8B6tiysO0Q1bBDvyBssaIP9p6uebYcNnROs0FtzBVMD2kOzA5MRUwEwYDVQQKEwxzaWdzdG9yZS5kZXYxIDAeBgNVBAMTF3NpZ3N0b3JlLXRzYS1zZWxmc2lnbmVkAhQ6E1QvDJBh7rzBQy/Lio6LKiOLDDAKBggqhkjOPQQDAgRnMGUCMGZ0WjV4207azZ6HrucNRKGqhYogUcT2bkxpJEhLeTMuM0XWdu16EVSGbGhZy7W2xwIxAPvtHYw+Vyy7PN6gN6GdC3unXJyy21GM/2s0Z6i1wXpYv9Z0F6B0y0N6ME/NtxDlrw=="}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"zZPz32AuHZ6nDxQhtfA6OgERIHu+pJB+SlZ9Aw5qk1w="},"signature":"MEUCIQDhqUVw4EvOjdVgEqw1FzwmPVn2Y0hn3A/HgikODgaZ+wIgObl6tSLef7W1k3vPn17lt3YVC7nKmvWGWfB1PJpS0BI="}}
 
1
+ {"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"MIIHSjCCBtCgAwIBAgIUMwrtx0tqraZMygQCikDK1Chn52MwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwODI1MTIxOTQ3WhcNMjYwODI1MTIyOTQ3WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE5oaf/lzNoHXTylb1DDDGFGjtEZTHCuqiisBbCkmXoaovbcXr10ytIBIo5+uBbOo1xIbem/KGWAeV+tshNR+OJqOCBe8wggXrMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUDHky/Kd+SqfhN5eMCDP+baZ2tCowHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wawYDVR0RAQH/BGEwX4ZdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDkGCisGAQQBg78wAQEEK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wHwYKKwYBBAGDvzABAgQRd29ya2Zsb3dfZGlzcGF0Y2gwNgYKKwYBBAGDvzABAwQoYzRkMGRjNTY2NjFiYWRiOWNjNDdiZGU2NDdlMDhmZTNiNGJmNzQ1ODATBgorBgEEAYO/MAEEBAVCdWlsZDArBgorBgEEAYO/MAEFBB1odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTAdBgorBgEEAYO/MAEGBA9yZWZzL2hlYWRzL21haW4wOwYKKwYBBAGDvzABCAQtDCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMG0GCisGAQQBg78wAQkEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wAQoEKgwoYzRkMGRjNTY2NjFiYWRiOWNjNDdiZGU2NDdlMDhmZTNiNGJmNzQ1ODAbBgorBgEEAYO/MAELBA0MC3NlbGYtaG9zdGVkMEAGCisGAQQBg78wAQwEMgwwaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MDgGCisGAQQBg78wAQ0EKgwoYzRkMGRjNTY2NjFiYWRiOWNjNDdiZGU2NDdlMDhmZTNiNGJmNzQ1ODAfBgorBgEEAYO/MAEOBBEMD3JlZnMvaGVhZHMvbWFpbjAaBgorBgEEAYO/MAEPBAwMCjEwNzE0NzU1MjkwLgYKKwYBBAGDvzABEAQgDB5odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2UwGAYKKwYBBAGDvzABEQQKDAgyNTcyMDc0MzBtBgorBgEEAYO/MAESBF8MXWh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS8uZ2l0aHViL3dvcmtmbG93cy9idWlsZC55YW1sQHJlZnMvaGVhZHMvbWFpbjA4BgorBgEEAYO/MAETBCoMKGM0ZDBkYzU2NjYxYmFkYjljYzQ3YmRlNjQ3ZTA4ZmUzYjRiZjc0NTgwIQYKKwYBBAGDvzABFAQTDBF3b3JrZmxvd19kaXNwYXRjaDBkBgorBgEEAYO/MAEVBFYMVGh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS9hY3Rpb25zL3J1bnMvMzI4NDQ2ODk4OTQvYXR0ZW1wdHMvMTAWBgorBgEEAYO/MAEWBAgMBnB1YmxpYzBGBgorBgEEAYO/MAEYBDgMNnJlcG86aHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHk6cmVmOnJlZnMvaGVhZHMvbWFpbjCBiQYKKwYBBAHWeQIEAgR7BHkAdwB1AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABoDjcwzsAAAQDAEYwRAIgeJq0LebERg2HeKxbrY0u3o8r7hsAqhyoYr0BoyFjfg8CIGPQYeRd1kAz+ypbHsjYAOnKKVAx4ZW1iOLqQrRtzz2eMAoGCCqGSM49BAMDA2gAMGUCMQCCwAU2dbop28oQvvIBZtBIJivsJRtKL3R1kAO4hEq1+gzkMC175TYqE/8Zh0aZpnECMBnE0zkkgykAnJGyzJN8eNFFlM7V/g+jVYSObVsPjvtCwaXBTL/IUWLqEITwK9IJwg=="},"tlogEntries":[{"logIndex":"2583300987","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1787660387","inclusionPromise":{"signedEntryTimestamp":"MEUCIQCQbcIKZ3vvLmI+RMMofM5jZyol4RtZsSYI9lLolNqL2AIgM40CH7c5xrYx4I8soFQeKCG+omUpM3A0jYHdNBG8/z0="},"inclusionProof":{"logIndex":"2461396725","rootHash":"Px7Yx7+T4zZwBjPwUsi+oYONjEHU4EFM6uRdZlDLHKQ=","treeSize":"2461396727","hashes":["P1522aPS+RLZLdPUYwp9hqnQWdW3fHi7YfHRvcgfzfI=","RBOv5M1/IFMYI2OkmQCKgsOiFU/eM/P8KpgAy0kkQ1U=","PnTjVMVFSfBf8Th+IftUutqdgefsWFdLP4tSxkXkU44=","UBTTofHsrD/tXJCgUFartEaSLHtmA9hqwVUCnxmKfOw=","jctsymf2PHXE6SdE6lQqEqLa8/9vIkw0qveGvYs8YBU=","BXKuzzO7ElNGXj0uheQyAFy9pIic2FshQ8heU2FrQwI=","M4YcEg7u+RzHhtqrJi5G60zEdbFHo9OVEDterfXbo4k=","rJMFK17JIR2K3LvDkBdSnu34bvtB3vXQPdwQg0pZ8co=","sBRt94T302PGfFAkqNx12yVeZQ2wK8MXBkspHV8OBEU=","bBUTypOI8GgjhxRM30SIZoDfZopPulgZgxKAp1agI1Q=","EY8T0lxQDrmYoWBGpKNGttaHfKmpfqKcWqSNF4XOQKE=","T4Jz+m9vO48rOpMSsdZSW28/bgHR8prz7JeNX1s7WiQ=","EXKrSbeG2qm5APD5QSDN66X7UHz9OSofiW9PyNU7fPM=","cjIeeutzThxIPTlFFHJqa7bAzn3k2FzK8Nrdd56OWvE=","+pNXWGIXzU1dqSy/aePHKYtSkDnFinI+/bL5HnurJ6w=","G1R9F5B2KizFA2NyhDznjNKXPOF1SDmbGHz+omLG7TY=","RZ7XwGuqMr5gDUh2HpUcaXp+AmIiEcPJiMui4GLJE7o=","mBm+vQtn0C4thMnlTnxfxqowq1dXsPBCKaJ85da3JeU=","b80/J/68RC8/tx5xRdlKk6MmTpZiVRotquWBrE/z1pI=","SndbMKVtcTenAkwi2JBfGzD+mhexp1qJbRIY+A1JRIU=","xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n2461396727\nPx7Yx7+T4zZwBjPwUsi+oYONjEHU4EFM6uRdZlDLHKQ=\n\n— rekor.sigstore.dev wNI9ajBEAiAiUvqizYRNJc7ll/k7p4TYKpJUHemJz+gJT6ma38F/2AIgAwCT2tpfEZabmXAfEPeOI2t9Y1/F4gnqWxJQVays5w8=\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiI3NjY0ZmNhYjQ5ZTBlNDkwNTgxNWE0ZmU5NmJmZTZjYTE1MGRkNTllYTk2YTdmYzhmYWU4OGYxODJjNjBkNmUxIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJRnQ0T3lRR3dBN1Q1aVFrMjZhcW9hMzM5cGVCSnVJbFpYZWJiZ3cyRDlhWEFpRUFpR3VEaUQ1Y0J3NTNZUkEwb0pXdFFrOC9CSkpBcENBWERUWisxUTErbmtNPSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaFRha05EUW5SRFowRjNTVUpCWjBsVlRYZHlkSGd3ZEhGeVlWcE5lV2RSUTJsclJFc3hRMmh1TlRKTmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDlFU1RGTlZFbDRUMVJSTTFkb1kwNU5hbGwzVDBSSk1VMVVTWGxQVkZFelYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVUxYjJGbUwyeDZUbTlJV0ZSNWJHSXhSRVJFUjBaSGFuUkZXbFJJUTNWeGFXbHpRbUlLUTJ0dFdHOWhiM1ppWTFoeU1UQjVkRWxDU1c4MUszVkNZazl2TVhoSlltVnRMMHRIVjBGbFZpdDBjMmhPVWl0UFNuRlBRMEpsT0hkbloxaHlUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlZFU0d0NUNpOUxaQ3RUY1dab1RqVmxUVU5FVUN0aVlWb3lkRU52ZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDJGM1dVUldVakJTUVZGSUwwSkhSWGRZTkZwa1lVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKb01Wb3laSEJpYldSdFdWZE9iQXBNTW5Sc1kyMDFiR0pJVFhSWk1qbDBZbGhXZFdGWVVqVk1lVFZ1WVZoU2IyUlhTWFprTWpsNVlUSmFjMkl6WkhwTU1rb3hZVmQ0YTB4dWJHaGlWM2hCQ21OdFZtMWplVGx2V2xkR2EyTjVPWFJaVjJ4MVRVUnJSME5wYzBkQlVWRkNaemM0ZDBGUlJVVkxNbWd3WkVoQ2VrOXBPSFprUnpseVdsYzBkVmxYVGpBS1lWYzVkV041Tlc1aFdGSnZaRmRLTVdNeVZubFpNamwxWkVkV2RXUkROV3BpTWpCM1NIZFpTMHQzV1VKQ1FVZEVkbnBCUWtGblVWSmtNamw1WVRKYWN3cGlNMlJtV2tkc2VtTkhSakJaTW1kM1RtZFpTMHQzV1VKQ1FVZEVkbnBCUWtGM1VXOVplbEpyVFVkU2FrNVVXVEpPYWtacFdWZFNhVTlYVG1wT1JHUnBDbHBIVlRKT1JHUnNUVVJvYlZwVVRtbE9SMHB0VG5wUk1VOUVRVlJDWjI5eVFtZEZSVUZaVHk5TlFVVkZRa0ZXUTJSWGJITmFSRUZ5UW1kdmNrSm5SVVVLUVZsUEwwMUJSVVpDUWpGdlpGZGtibUZYTlc1YWJVWnFXbE01Y2xwWVNuVmFWM2g2VEZkT2RtSlhNVEZpYld3d1pWUkJaRUpuYjNKQ1owVkZRVmxQTHdwTlFVVkhRa0U1ZVZwWFducE1NbWhzV1ZkU2Vrd3lNV2hoVnpSM1QzZFpTMHQzV1VKQ1FVZEVkbnBCUWtOQlVYUkVRM1J2WkVoU2QyTjZiM1pNTTFKMkNtRXlWblZNYlVacVpFZHNkbUp1VFhWYU1td3dZVWhXYVdSWVRteGpiVTUyWW01U2JHSnVVWFZaTWpsMFRVY3dSME5wYzBkQlVWRkNaemM0ZDBGUmEwVUtXSGQ0WkdGSVVqQmpTRTAyVEhrNWJtRllVbTlrVjBsMVdUSTVkRXd5YURGYU1tUndZbTFrYlZsWFRteE1NblJzWTIwMWJHSklUWFJaTWpsMFlsaFdkUXBoV0ZJMVRIazFibUZZVW05a1YwbDJaREk1ZVdFeVduTmlNMlI2VERKS01XRlhlR3RNYm14b1lsZDRRV050Vm0xamVUbHZXbGRHYTJONU9YUlpWMngxQ2sxRVowZERhWE5IUVZGUlFtYzNPSGRCVVc5RlMyZDNiMWw2VW10TlIxSnFUbFJaTWs1cVJtbFpWMUpwVDFkT2FrNUVaR2xhUjFVeVRrUmtiRTFFYUcwS1dsUk9hVTVIU20xT2VsRXhUMFJCWWtKbmIzSkNaMFZGUVZsUEwwMUJSVXhDUVRCTlF6Tk9iR0pIV1hSaFJ6bDZaRWRXYTAxRlFVZERhWE5IUVZGUlFncG5OemgzUVZGM1JVMW5kM2RoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlUxRVowZERhWE5IUVZGUlFtYzNPSGRCVVRCRlMyZDNiMWw2VW10TlIxSnFUbFJaTWs1cVJtbFpWMUpwVDFkT2FrNUVaR2tLV2tkVk1rNUVaR3hOUkdodFdsUk9hVTVIU20xT2VsRXhUMFJCWmtKbmIzSkNaMFZGUVZsUEwwMUJSVTlDUWtWTlJETktiRnB1VFhaaFIxWm9Xa2hOZGdwaVYwWndZbXBCWVVKbmIzSkNaMFZGUVZsUEwwMUJSVkJDUVhkTlEycEZkMDU2UlRCT2VsVXhUV3ByZDB4bldVdExkMWxDUWtGSFJIWjZRVUpGUVZGbkNrUkNOVzlrU0ZKM1kzcHZka3d5WkhCa1IyZ3hXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWM1IwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWUlVVc0tSRUZuZVU1VVkzbE5SR013VFhwQ2RFSm5iM0pDWjBWRlFWbFBMMDFCUlZOQ1JqaE5XRmRvTUdSSVFucFBhVGgyV2pKc01HRklWbWxNYlU1MllsTTVid3BrVjJSdVlWYzFibHB0Um1wYVV6bHlXbGhLZFZwWGVIcE1WMDUyWWxjeE1XSnRiREJsVXpoMVdqSnNNR0ZJVm1sTU0yUjJZMjEwYldKSE9UTmplVGxwQ21SWGJITmFRelUxV1ZjeGMxRklTbXhhYmsxMllVZFdhRnBJVFhaaVYwWndZbXBCTkVKbmIzSkNaMFZGUVZsUEwwMUJSVlJDUTI5TlMwZE5NRnBFUW1zS1dYcFZNazVxV1hoWmJVWnJXV3BzYWxsNlVUTlpiVkpzVG1wUk0xcFVRVFJhYlZWNldXcFNhVnBxWXpCT1ZHZDNTVkZaUzB0M1dVSkNRVWRFZG5wQlFncEdRVkZVUkVKR00ySXpTbkphYlhoMlpERTVhMkZZVG5kWldGSnFZVVJDYTBKbmIzSkNaMFZGUVZsUEwwMUJSVlpDUmxsTlZrZG9NR1JJUW5wUGFUaDJDbG95YkRCaFNGWnBURzFPZG1KVE9XOWtWMlJ1WVZjMWJscHRSbXBhVXpseVdsaEtkVnBYZUhwTVYwNTJZbGN4TVdKdGJEQmxVemxvV1ROU2NHSXlOWG9LVEROS01XSnVUWFpOZWtrMFRrUlJNazlFYXpSUFZGRjJXVmhTTUZwWE1YZGtTRTEyVFZSQlYwSm5iM0pDWjBWRlFWbFBMMDFCUlZkQ1FXZE5RbTVDTVFwWmJYaHdXWHBDUjBKbmIzSkNaMFZGUVZsUEwwMUJSVmxDUkdkTlRtNUtiR05IT0RaaFNGWnVXakpzZFZveVdtaFpNbFYyWVRKV2VXSnRWbk5qZVRGcUNtSXlNWFJrVnpWd1pFaHJObU50Vm0xUGJrcHNXbTVOZG1GSFZtaGFTRTEyWWxkR2NHSnFRMEpwVVZsTFMzZFpRa0pCU0ZkbFVVbEZRV2RTTjBKSWEwRUtaSGRDTVVGT01EbE5SM0pIZUhoRmVWbDRhMlZJU214dVRuZExhVk5zTmpRemFubDBMelJsUzJOdlFYWkxaVFpQUVVGQlFtOUVhbU4zZW5OQlFVRlJSQXBCUlZsM1VrRkpaMlZLY1RCTVpXSkZVbWN5U0dWTGVHSnlXVEIxTTI4NGNqZG9jMEZ4YUhsdldYSXdRbTk1Um1wbVp6aERTVWRRVVZsbFVtUXhhMEY2Q2l0NWNHSkljMnBaUVU5dVMwdFdRWGcwV2xjeGFVOU1jVkZ5VW5SNmVqSmxUVUZ2UjBORGNVZFRUVFE1UWtGTlJFRXlaMEZOUjFWRFRWRkRRM2RCVlRJS1pHSnZjREk0YjFGMmRrbENXblJDU1VwcGRuTktVblJMVEROU01XdEJUelJvUlhFeEsyZDZhMDFETVRjMVZGbHhSUzg0V21nd1lWcHdia1ZEVFVKdVJRb3dlbXRyWjNsclFXNUtSM2w2U2s0NFpVNUdSbXhOTjFZdlp5dHFWbGxUVDJKV2MxQnFkblJEZDJGWVFsUk1MMGxWVjB4eFJVbFVkMHM1U1VwM1p6MDlDaTB0TFMwdFJVNUVJRU5GVWxSSlJrbERRVlJGTFMwdExTMEsifX19fQ=="}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyjADAgEAMIICwQYJKoZIhvcNAQcCoIICsjCCAq4CAQMxDTALBglghkgBZQMEAgEwgbgGCyqGSIb3DQEJEAEEoIGoBIGlMIGiAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgH5gRaDxpIITuM7jMGDW7PFJMwLanUdlcoFP7eXIuB3wCFQCw56lcJ9vTLX5/Gvsomzbe5aFTYBgPMjAyNjA4MjUxMjE5NDdaMAMCAQGgMqQwMC4xFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEVMBMGA1UEAxMMc2lnc3RvcmUtdHNhoAAxggHbMIIB1wIBATBRMDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAsGCWCGSAFlAwQCAaCB/DAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTI2MDgyNTEyMTk0N1owLwYJKoZIhvcNAQkEMSIEIKuGQ7u/FkcBvgOPNDGclSD4jVPnIVOaIrdJehxL74koMIGOBgsqhkiG9w0BCRACLzF/MH0wezB5BCCF+Se8B6tiysO0Q1bBDvyBssaIP9p6uebYcNnROs0FtzBVMD2kOzA5MRUwEwYDVQQKEwxzaWdzdG9yZS5kZXYxIDAeBgNVBAMTF3NpZ3N0b3JlLXRzYS1zZWxmc2lnbmVkAhQ6E1QvDJBh7rzBQy/Lio6LKiOLDDAKBggqhkjOPQQDAgRnMGUCMAhtYPLc/rtzNreRWzDQC679OGgmLsj/aG9UKulVzrKlAGm8ErKZV2uzm3lhpYCKZQIxAOnEBfY2x+v9utgceIINrdbHgpPFzjmD3IkG01WWCqjVFli23SE1iTEwXYI1EbHXYA=="}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"dmT8q0ng5JBYFaT+lr/myhUN1Z6pan/I+uiPGCxg1uE="},"signature":"MEUCIFt4OyQGwA7T5iQk26aqoa339peBJuIlZXebbgw2D9aXAiEAiGuDiD5cBw53YRA0oJWtQk8/BJJApCAXDTZ+1Q1+nkM="}}
build/torch213-cxx11-cu132-aarch64-linux/xpu_fused_moe.py CHANGED
@@ -26,7 +26,7 @@ def _register_xpu_fake_kernels():
26
 
27
  _register_if_available(
28
  "cutlass_grouped_gemm_interface",
29
- lambda ptr_A, ptr_B, ptr_scales, ptr_bias, ptr_D, expert_first_token_offset, N, K, num_experts, is_B_int4, is_B_mxfp4: ptr_D,
30
  )
31
 
32
  _register_if_available(
@@ -106,12 +106,13 @@ def cutlass_grouped_gemm(input_A, input_B, bias, output, expert_token_count, n,
106
  K=k,
107
  num_experts=num_experts,
108
  is_B_int4=False,
109
- is_B_mxfp4=False)
 
110
 
111
 
112
  def cutlass_grouped_gemm_xe2(input_A, input_B, scales, bias, output,
113
  num_rows_per_expert, n, k, num_experts, is_B_int4,
114
- is_B_mxfp4):
115
  expert_first_token_offset = torch.cat([
116
  torch.tensor([0],
117
  dtype=num_rows_per_expert.dtype,
@@ -129,7 +130,8 @@ def cutlass_grouped_gemm_xe2(input_A, input_B, scales, bias, output,
129
  K=k,
130
  num_experts=num_experts,
131
  is_B_int4=is_B_int4,
132
- is_B_mxfp4=is_B_mxfp4)
 
133
 
134
 
135
  def ceilDiv(a, b):
@@ -206,7 +208,8 @@ def xpu_fused_moe(hidden_states,
206
  ep_size=1,
207
  is_fp8=False,
208
  is_int4=False,
209
- is_mxfp4=False):
 
210
  '''
211
  hidden_states: [num_rows, hidden_size]
212
  w13: [num_experts, 2*inter_size, hidden_size]
@@ -228,6 +231,7 @@ def xpu_fused_moe(hidden_states,
228
  num_experts: int
229
  is_int4: bool
230
  is_mxfp4: bool
 
231
  '''
232
 
233
  # Resolve DTensors to local tensors before passing to custom ops
@@ -266,7 +270,7 @@ def xpu_fused_moe(hidden_states,
266
 
267
  # 4bits support [E, N, K]
268
  # other types [E, K, N]
269
- if not is_int4 and not is_mxfp4:
270
  if not hasattr(w13, 'xpu_fused_moe'):
271
  if needs_transpose:
272
  w13.data = w13.transpose(-1, -2).contiguous()
@@ -389,7 +393,7 @@ def xpu_fused_moe(hidden_states,
389
  ########### gemm1 ##################
390
  input_B = w13
391
 
392
- if not is_fp8 and not is_int4 and not is_mxfp4:
393
  ops.cutlass_grouped_gemm_interface(
394
  ptr_A=gemm1_input,
395
  ptr_B=input_B,
@@ -401,7 +405,8 @@ def xpu_fused_moe(hidden_states,
401
  K=hidden_size,
402
  num_experts=num_experts_per_node,
403
  is_B_int4=is_int4,
404
- is_B_mxfp4=is_mxfp4)
 
405
  else:
406
  ops.cutlass_grouped_gemm_interface(
407
  ptr_A=gemm1_input,
@@ -414,7 +419,8 @@ def xpu_fused_moe(hidden_states,
414
  K=hidden_size,
415
  num_experts=num_experts_per_node,
416
  is_B_int4=is_int4,
417
- is_B_mxfp4=is_mxfp4)
 
418
 
419
  # act
420
  act_output = torch.empty((num_moe_inputs, inter_size),
@@ -435,7 +441,7 @@ def xpu_fused_moe(hidden_states,
435
  gemm2_output = torch.empty((num_moe_inputs, hidden_size),
436
  dtype=hidden_states.dtype,
437
  device=hidden_states.device)
438
- if not is_fp8 and not is_int4 and not is_mxfp4:
439
  ops.cutlass_grouped_gemm_interface(
440
  ptr_A=input_A,
441
  ptr_B=input_B,
@@ -447,7 +453,8 @@ def xpu_fused_moe(hidden_states,
447
  K=inter_size,
448
  num_experts=num_experts_per_node,
449
  is_B_int4=is_int4,
450
- is_B_mxfp4=is_mxfp4)
 
451
  else:
452
  ops.cutlass_grouped_gemm_interface(
453
  ptr_A=input_A,
@@ -460,7 +467,8 @@ def xpu_fused_moe(hidden_states,
460
  K=inter_size,
461
  num_experts=num_experts_per_node,
462
  is_B_int4=is_int4,
463
- is_B_mxfp4=is_mxfp4)
 
464
 
465
  ops.moe_gather(output, gemm2_output, topk_weights,
466
  permuted_row_to_unpermuted_row,
@@ -633,6 +641,7 @@ class MegaBlocksMoeMLP(torch.nn.Module):
633
  is_fp8 = getattr(self.experts, "is_fp8", False)
634
  is_int4 = getattr(self.experts, "is_int4", False)
635
  is_mxfp4 = getattr(self.experts, "is_mxfp4", False)
 
636
 
637
  w13_scales = getattr(self.experts, "gate_up_proj_scales", None)
638
  w2_scales = getattr(self.experts, "down_proj_scales", None)
@@ -685,6 +694,7 @@ class MegaBlocksMoeMLP(torch.nn.Module):
685
  is_fp8=is_fp8,
686
  is_int4=is_int4,
687
  is_mxfp4=is_mxfp4,
 
688
  )
689
 
690
  # All-reduce across EP group to combine partial expert outputs
 
26
 
27
  _register_if_available(
28
  "cutlass_grouped_gemm_interface",
29
+ lambda ptr_A, ptr_B, ptr_scales, ptr_bias, ptr_D, expert_first_token_offset, N, K, num_experts, is_B_int4, is_B_mxfp4, is_B_mxfp8=False: ptr_D,
30
  )
31
 
32
  _register_if_available(
 
106
  K=k,
107
  num_experts=num_experts,
108
  is_B_int4=False,
109
+ is_B_mxfp4=False,
110
+ is_B_mxfp8=False)
111
 
112
 
113
  def cutlass_grouped_gemm_xe2(input_A, input_B, scales, bias, output,
114
  num_rows_per_expert, n, k, num_experts, is_B_int4,
115
+ is_B_mxfp4, is_B_mxfp8=False):
116
  expert_first_token_offset = torch.cat([
117
  torch.tensor([0],
118
  dtype=num_rows_per_expert.dtype,
 
130
  K=k,
131
  num_experts=num_experts,
132
  is_B_int4=is_B_int4,
133
+ is_B_mxfp4=is_B_mxfp4,
134
+ is_B_mxfp8=is_B_mxfp8)
135
 
136
 
137
  def ceilDiv(a, b):
 
208
  ep_size=1,
209
  is_fp8=False,
210
  is_int4=False,
211
+ is_mxfp4=False,
212
+ is_mxfp8=False):
213
  '''
214
  hidden_states: [num_rows, hidden_size]
215
  w13: [num_experts, 2*inter_size, hidden_size]
 
231
  num_experts: int
232
  is_int4: bool
233
  is_mxfp4: bool
234
+ is_mxfp8: bool
235
  '''
236
 
237
  # Resolve DTensors to local tensors before passing to custom ops
 
270
 
271
  # 4bits support [E, N, K]
272
  # other types [E, K, N]
273
+ if not is_int4 and not is_mxfp4 and not is_mxfp8:
274
  if not hasattr(w13, 'xpu_fused_moe'):
275
  if needs_transpose:
276
  w13.data = w13.transpose(-1, -2).contiguous()
 
393
  ########### gemm1 ##################
394
  input_B = w13
395
 
396
+ if not is_fp8 and not is_int4 and not is_mxfp4 and not is_mxfp8:
397
  ops.cutlass_grouped_gemm_interface(
398
  ptr_A=gemm1_input,
399
  ptr_B=input_B,
 
405
  K=hidden_size,
406
  num_experts=num_experts_per_node,
407
  is_B_int4=is_int4,
408
+ is_B_mxfp4=is_mxfp4,
409
+ is_B_mxfp8=is_mxfp8)
410
  else:
411
  ops.cutlass_grouped_gemm_interface(
412
  ptr_A=gemm1_input,
 
419
  K=hidden_size,
420
  num_experts=num_experts_per_node,
421
  is_B_int4=is_int4,
422
+ is_B_mxfp4=is_mxfp4,
423
+ is_B_mxfp8=is_mxfp8)
424
 
425
  # act
426
  act_output = torch.empty((num_moe_inputs, inter_size),
 
441
  gemm2_output = torch.empty((num_moe_inputs, hidden_size),
442
  dtype=hidden_states.dtype,
443
  device=hidden_states.device)
444
+ if not is_fp8 and not is_int4 and not is_mxfp4 and not is_mxfp8:
445
  ops.cutlass_grouped_gemm_interface(
446
  ptr_A=input_A,
447
  ptr_B=input_B,
 
453
  K=inter_size,
454
  num_experts=num_experts_per_node,
455
  is_B_int4=is_int4,
456
+ is_B_mxfp4=is_mxfp4,
457
+ is_B_mxfp8=is_mxfp8)
458
  else:
459
  ops.cutlass_grouped_gemm_interface(
460
  ptr_A=input_A,
 
467
  K=inter_size,
468
  num_experts=num_experts_per_node,
469
  is_B_int4=is_int4,
470
+ is_B_mxfp4=is_mxfp4,
471
+ is_B_mxfp8=is_mxfp8)
472
 
473
  ops.moe_gather(output, gemm2_output, topk_weights,
474
  permuted_row_to_unpermuted_row,
 
641
  is_fp8 = getattr(self.experts, "is_fp8", False)
642
  is_int4 = getattr(self.experts, "is_int4", False)
643
  is_mxfp4 = getattr(self.experts, "is_mxfp4", False)
644
+ is_mxfp8 = getattr(self.experts, "is_mxfp8", False)
645
 
646
  w13_scales = getattr(self.experts, "gate_up_proj_scales", None)
647
  w2_scales = getattr(self.experts, "down_proj_scales", None)
 
694
  is_fp8=is_fp8,
695
  is_int4=is_int4,
696
  is_mxfp4=is_mxfp4,
697
+ is_mxfp8=is_mxfp8,
698
  )
699
 
700
  # All-reduce across EP group to combine partial expert outputs