kernels-bot commited on
Commit
c3cadfa
·
verified ·
1 Parent(s): f5cfe88

Uploaded using `kernel-builder`.

Browse files
Files changed (34) hide show
  1. .gitattributes +6 -0
  2. build/torch210-metal-aarch64-darwin/{_bitsandbytes_mps_metal_d6a0698.abi3.so → _bitsandbytes_mps_metal_fe2bb66.abi3.so} +2 -2
  3. build/torch210-metal-aarch64-darwin/_ops.py +3 -3
  4. build/torch210-metal-aarch64-darwin/bitsandbytes_mps/__init__.py +0 -26
  5. build/torch210-metal-aarch64-darwin/metadata.json +17 -4
  6. build/torch210-metal-aarch64-darwin/metadata.json.sigstore +1 -1
  7. build/torch210-metal-aarch64-darwin/symbols.json +235 -0
  8. build/torch211-metal-aarch64-darwin/{_bitsandbytes_mps_metal_8a730d9.abi3.so → _bitsandbytes_mps_metal_fe2bb66.abi3.so} +2 -2
  9. build/torch211-metal-aarch64-darwin/_ops.py +3 -3
  10. build/torch211-metal-aarch64-darwin/bitsandbytes_mps/__init__.py +0 -26
  11. build/torch211-metal-aarch64-darwin/metadata.json +9 -7
  12. build/torch211-metal-aarch64-darwin/metadata.json.sigstore +1 -1
  13. build/torch211-metal-aarch64-darwin/symbols.json +235 -0
  14. build/torch212-metal-aarch64-darwin/{_bitsandbytes_mps_metal_addf474.abi3.so → _bitsandbytes_mps_metal_fe2bb66.abi3.so} +1 -1
  15. build/torch212-metal-aarch64-darwin/_ops.py +3 -3
  16. build/torch212-metal-aarch64-darwin/metadata.json +8 -6
  17. build/torch212-metal-aarch64-darwin/metadata.json.sigstore +1 -1
  18. build/torch212-metal-aarch64-darwin/symbols.json +235 -0
  19. build/torch213-metal-aarch64-darwin/{_bitsandbytes_mps_metal_89d4054.abi3.so → _bitsandbytes_mps_metal_fe2bb66.abi3.so} +1 -1
  20. build/torch213-metal-aarch64-darwin/_ops.py +3 -3
  21. build/torch213-metal-aarch64-darwin/metadata.json +7 -6
  22. build/torch213-metal-aarch64-darwin/metadata.json.sigstore +1 -1
  23. build/torch213-metal-aarch64-darwin/symbols.json +235 -0
  24. build/torch214-metal-aarch64-darwin/{_bitsandbytes_mps_metal_89d4054.abi3.so → _bitsandbytes_mps_metal_fe2bb66.abi3.so} +1 -1
  25. build/torch214-metal-aarch64-darwin/_ops.py +3 -3
  26. build/torch214-metal-aarch64-darwin/metadata.json +7 -6
  27. build/torch214-metal-aarch64-darwin/metadata.json.sigstore +1 -1
  28. build/torch214-metal-aarch64-darwin/symbols.json +235 -0
  29. build/torch215-metal-aarch64-darwin/__init__.py +165 -0
  30. build/torch215-metal-aarch64-darwin/_bitsandbytes_mps_metal_fe2bb66.abi3.so +3 -0
  31. build/torch215-metal-aarch64-darwin/_ops.py +9 -0
  32. build/torch215-metal-aarch64-darwin/metadata.json +32 -0
  33. build/torch215-metal-aarch64-darwin/metadata.json.sigstore +1 -0
  34. build/torch215-metal-aarch64-darwin/symbols.json +235 -0
.gitattributes CHANGED
@@ -60,3 +60,9 @@ build/torch213-metal-aarch64-darwin/_bitsandbytes_mps_metal_addf474.abi3.so filt
60
  build/torch214-metal-aarch64-darwin/_bitsandbytes_mps_metal_addf474.abi3.so filter=lfs diff=lfs merge=lfs -text
61
  build/torch213-metal-aarch64-darwin/_bitsandbytes_mps_metal_89d4054.abi3.so filter=lfs diff=lfs merge=lfs -text
62
  build/torch214-metal-aarch64-darwin/_bitsandbytes_mps_metal_89d4054.abi3.so filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
60
  build/torch214-metal-aarch64-darwin/_bitsandbytes_mps_metal_addf474.abi3.so filter=lfs diff=lfs merge=lfs -text
61
  build/torch213-metal-aarch64-darwin/_bitsandbytes_mps_metal_89d4054.abi3.so filter=lfs diff=lfs merge=lfs -text
62
  build/torch214-metal-aarch64-darwin/_bitsandbytes_mps_metal_89d4054.abi3.so filter=lfs diff=lfs merge=lfs -text
63
+ build/torch210-metal-aarch64-darwin/_bitsandbytes_mps_metal_fe2bb66.abi3.so filter=lfs diff=lfs merge=lfs -text
64
+ build/torch211-metal-aarch64-darwin/_bitsandbytes_mps_metal_fe2bb66.abi3.so filter=lfs diff=lfs merge=lfs -text
65
+ build/torch212-metal-aarch64-darwin/_bitsandbytes_mps_metal_fe2bb66.abi3.so filter=lfs diff=lfs merge=lfs -text
66
+ build/torch213-metal-aarch64-darwin/_bitsandbytes_mps_metal_fe2bb66.abi3.so filter=lfs diff=lfs merge=lfs -text
67
+ build/torch214-metal-aarch64-darwin/_bitsandbytes_mps_metal_fe2bb66.abi3.so filter=lfs diff=lfs merge=lfs -text
68
+ build/torch215-metal-aarch64-darwin/_bitsandbytes_mps_metal_fe2bb66.abi3.so filter=lfs diff=lfs merge=lfs -text
build/torch210-metal-aarch64-darwin/{_bitsandbytes_mps_metal_d6a0698.abi3.so → _bitsandbytes_mps_metal_fe2bb66.abi3.so} RENAMED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:ba0e121ab5a234aae0e8e3b26a5b22f14b03dd6117858baa8f130e6b40499d17
3
- size 845512
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f878b51ed1e57f762bfd3028e6c9926fbabc3ff001050a24c10bd83a3a20717b
3
+ size 845576
build/torch210-metal-aarch64-darwin/_ops.py CHANGED
@@ -1,9 +1,9 @@
1
  import torch
2
- from . import _bitsandbytes_mps_metal_d6a0698
3
- ops = torch.ops._bitsandbytes_mps_metal_d6a0698
4
 
5
  def add_op_namespace_prefix(op_name: str):
6
  """
7
  Prefix op by namespace.
8
  """
9
- return f"_bitsandbytes_mps_metal_d6a0698::{op_name}"
 
1
  import torch
2
+ from . import _bitsandbytes_mps_metal_fe2bb66
3
+ ops = torch.ops._bitsandbytes_mps_metal_fe2bb66
4
 
5
  def add_op_namespace_prefix(op_name: str):
6
  """
7
  Prefix op by namespace.
8
  """
9
+ return f"_bitsandbytes_mps_metal_fe2bb66::{op_name}"
build/torch210-metal-aarch64-darwin/bitsandbytes_mps/__init__.py DELETED
@@ -1,26 +0,0 @@
1
- import ctypes
2
- import importlib.util
3
- import sys
4
- from pathlib import Path
5
- from types import ModuleType
6
-
7
-
8
- def _import_from_path(file_path: Path) -> ModuleType:
9
- # We cannot use the module name as-is, after adding it to `sys.modules`,
10
- # it would also be used for other imports. So, we make a module name that
11
- # depends on the path for it to be unique using the hex-encoded hash of
12
- # the path.
13
- path_hash = "{:x}".format(ctypes.c_size_t(hash(file_path.absolute())).value)
14
- module_name = path_hash
15
- spec = importlib.util.spec_from_file_location(module_name, file_path)
16
- if spec is None:
17
- raise ImportError(f"Cannot load spec for {module_name} from {file_path}")
18
- module = importlib.util.module_from_spec(spec)
19
- if module is None:
20
- raise ImportError(f"Cannot load module {module_name} from spec")
21
- sys.modules[module_name] = module
22
- spec.loader.exec_module(module) # type: ignore
23
- return module
24
-
25
-
26
- globals().update(vars(_import_from_path(Path(__file__).parent.parent / "__init__.py")))
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
build/torch210-metal-aarch64-darwin/metadata.json CHANGED
@@ -1,9 +1,11 @@
1
  {
2
  "name": "bitsandbytes-mps",
3
- "id": "_bitsandbytes_mps_metal_d6a0698",
4
  "version": 1,
 
5
  "license": "MIT",
6
  "python-depends": [],
 
7
  "backend": {
8
  "type": "metal"
9
  },
@@ -11,9 +13,20 @@
11
  "algorithm": "sha256",
12
  "files": {
13
  "__init__.py": "rs6BtEpr3t1l0M2Rvw1/OjtqW+WocRyKcp8tNRLui9M=",
14
- "_bitsandbytes_mps_metal_d6a0698.abi3.so": "ug4SGrWiNKrg6OOyalsi8UsD3WEXhYuqjxMOa0BJnRc=",
15
- "_ops.py": "0znXt0qoOzJ6I2F9n/lPY6mdxsC+1tC72TdwMSqomYM=",
16
- "bitsandbytes_mps/__init__.py": "DFYPlrhXwYjEqCl/8n0SmWGZV8NFml5DPhMjKfv98GY="
 
 
 
 
 
 
 
 
 
 
 
17
  }
18
  }
19
  }
 
1
  {
2
  "name": "bitsandbytes-mps",
3
+ "id": "_bitsandbytes_mps_metal_fe2bb66",
4
  "version": 1,
5
+ "kernels-minver": "0.14.0",
6
  "license": "MIT",
7
  "python-depends": [],
8
+ "kernel-depends": [],
9
  "backend": {
10
  "type": "metal"
11
  },
 
13
  "algorithm": "sha256",
14
  "files": {
15
  "__init__.py": "rs6BtEpr3t1l0M2Rvw1/OjtqW+WocRyKcp8tNRLui9M=",
16
+ "_bitsandbytes_mps_metal_fe2bb66.abi3.so": "+Hi1HtHlf3Yr/TAo5smSb7q8P/ABBQokwQvYOjogcXs=",
17
+ "_ops.py": "KZ69wBm+uvagRpIJvyCWGxE7d3dVr9+r6zz16TO61lE=",
18
+ "symbols.json": "bp3qE0B/ix7Cb1dc0RFiDEzrr9mKJIC/lZgwMhDjkTI="
19
+ }
20
+ },
21
+ "provenance": {
22
+ "kernel-builder": {
23
+ "version": "0.18.0-dev0",
24
+ "commit": "d054906a13710b811b96697b4635f03020842733",
25
+ "dirty": false
26
+ },
27
+ "kernel": {
28
+ "commit": "fe2bb66fee6c2a77eccf08a0508dc57428d488ed",
29
+ "dirty": false
30
  }
31
  }
32
  }
build/torch210-metal-aarch64-darwin/metadata.json.sigstore CHANGED
@@ -1 +1 @@
1
- {"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"MIIHdTCCBvqgAwIBAgIUHfQ4zdAuaKYvC2F9JhdNLiYjTUwwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwNjE4MDY0MDIwWhcNMjYwNjE4MDY1MDIwWjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEOXPIR5V/XcgEELiz9WsBZZAolvjuRxfbAiIDmKywBXv0ch11VoNCpeNO6XEBQi+cTcxA3zKAUfkeGllwhlVYX6OCBhkwggYVMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUEgPEjJiiaBM8cv2X5BVENC0ryIwwHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wdQYDVR0RAQH/BGswaYZnaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL3NpZ24tb2xkLWJ1aWxkcy55YW1sQHJlZnMvaGVhZHMvbWFpbjA5BgorBgEEAYO/MAEBBCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMB8GCisGAQQBg78wAQIEEXdvcmtmbG93X2Rpc3BhdGNoMDYGCisGAQQBg78wAQMEKDhhNmJlN2JjNzc1NjVhZDY1YzhhZTJkZWI0NTY0ODJmZjZhYTUwZWQwHQYKKwYBBAGDvzABBAQPU2lnbiBvbGQgYnVpbGRzMCsGCisGAQQBg78wAQUEHWh1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MB0GCisGAQQBg78wAQYED3JlZnMvaGVhZHMvbWFpbjA7BgorBgEEAYO/MAEIBC0MK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wdwYKKwYBBAGDvzABCQRpDGdodHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3Mvc2lnbi1vbGQtYnVpbGRzLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wAQoEKgwoOGE2YmU3YmM3NzU2NWFkNjVjOGFlMmRlYjQ1NjQ4MmZmNmFhNTBlZDAbBgorBgEEAYO/MAELBA0MC3NlbGYtaG9zdGVkMEAGCisGAQQBg78wAQwEMgwwaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MDgGCisGAQQBg78wAQ0EKgwoOGE2YmU3YmM3NzU2NWFkNjVjOGFlMmRlYjQ1NjQ4MmZmNmFhNTBlZDAfBgorBgEEAYO/MAEOBBEMD3JlZnMvaGVhZHMvbWFpbjAaBgorBgEEAYO/MAEPBAwMCjEwNzE0NzU1MjkwLgYKKwYBBAGDvzABEAQgDB5odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2UwGAYKKwYBBAGDvzABEQQKDAgyNTcyMDc0MzB3BgorBgEEAYO/MAESBGkMZ2h0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS8uZ2l0aHViL3dvcmtmbG93cy9zaWduLW9sZC1idWlsZHMueWFtbEByZWZzL2hlYWRzL21haW4wOAYKKwYBBAGDvzABEwQqDCg4YTZiZTdiYzc3NTY1YWQ2NWM4YWUyZGViNDU2NDgyZmY2YWE1MGVkMCEGCisGAQQBg78wARQEEwwRd29ya2Zsb3dfZGlzcGF0Y2gwZAYKKwYBBAGDvzABFQRWDFRodHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvYWN0aW9ucy9ydW5zLzI3NzQxNDY0ODQyL2F0dGVtcHRzLzEwFgYKKwYBBAGDvzABFgQIDAZwdWJsaWMwRgYKKwYBBAGDvzABGAQ4DDZyZXBvOmh1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5OnJlZjpyZWZzL2hlYWRzL21haW4wgYsGCisGAQQB1nkCBAIEfQR7AHkAdwDdPTBqxscRMmMZHhyZZzcCokpeuN48rf+HinKALynujgAAAZ7ZdY4dAAAEAwBIMEYCIQCQqVXoR998GwUsqZGLDzVaKHGDTQB8qDaJmQF5Ih6UxgIhAOXVQWlybNKzGVnf5yTZ/IRyYSUTJm8A9SlONOtJfaHuMAoGCCqGSM49BAMDA2kAMGYCMQDhAxK/ZrOnApwbn5cmXThpMwtds0wDMadjDi4cSFKh8QSI+FD3DIt9yPrmSssb7+oCMQDIpg1n1YESByToPONGdqzfGB4oBtxjnYsOcHb+Wp/TvvhtSylsbuS8yf2OUd/DXas="},"tlogEntries":[{"logIndex":"1857728236","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1781764820","inclusionPromise":{"signedEntryTimestamp":"MEUCIGgu6i5oOuQL+Pif8fL/5M4a3C20BDqT6UKQA87oZNfrAiEAkViMrEPUhq4oLIRnV2u0X52PnCWWqvjDmfkhCL4YNis="},"inclusionProof":{"logIndex":"1735823974","rootHash":"1eaVLgWzWsVWchDKgxcF23WmcEtuEA2Fqt0M9JKoMNQ=","treeSize":"1735823991","hashes":["+yTzWjaOHfPX+8hqLlxuwGLY5Jb7tM8QWMzeODGifC8=","TT9qAU8CLq4HRJf+uQFEDyVcHRnWoExqNLDjRgk6+rg=","1uGS2BCLJHRt6V1DIrOYk0LVhXt/xSBzsWuw7yGmEWY=","XCophVXHu/Z+YZm0rDDyZfX9mr/V0onMOw2JKQaelRM=","nk19bi9AozR3UyPjxDXvJblwAkhznnN84uKviyTv3Y8=","aBkNw3NCYwWtG/lsARlVNsXxysDCDIv1X5WLRWU5syk=","jo9sPg+pvz+jpzrqOG27FtCOIydL/D2yFpnNyCoMzus=","3kUdVZbCEOQwJ99MmM94vLCLIWz+5+LHq+BUuMlsh3I=","SNqEjw1JNKr33qEbszcSUSbJMsvd76IMxL7dccPKLbg=","dQ0vp6bTINknlH62FrclrEUfkH7k78NIxh1bWpWHr/8=","gAXtVb4czMvijEVHzLZvy9CiZR4I3EjGJKutWKb8sus=","kQ24bHYwEfgDFlQ+Tj4EY+dUxV0UU4uH+etf0vVNbbY=","sWDh7SjDHbJf3HWKGRxiURh6iIYrOzn4Zs37yIij6OA=","x7kXd4VRJvVmTHoSla2KyPQdKvGKDX26/7ST9OONR78=","U8wMiVDzFlmyqT7Nw1RSZYU9+fftsSkRhjpbyXnXUk8=","mqM7J+i75IpuD09QejiUBjeH85AZa+fSm4RXXFmj3lI=","72FC5FYLhxB4a4iiC956o0B/fT54ip4R41vsw2QBKtU=","lYGQ9ibwC8+smMkPQ6TchJm3H9Nc/aTYLfdRacGFChw=","daxmZaajRpZV+JxHiOYZhJBiSKN5ucqjh2WnGbHhirw=","DOCeoSMovIvLExkhIvisow9AuNXgeWs4ECkyR6EcqYU="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n1735823991\n1eaVLgWzWsVWchDKgxcF23WmcEtuEA2Fqt0M9JKoMNQ=\n\n— rekor.sigstore.dev wNI9ajBFAiEA91bKwk6S7V53cFSdyoRMhF3K1pDPwHA5K87IJutz47UCICKbC8eQx5djAhlZzfGqM0vc6Nz9eoqVB4/oVw7b7U0O\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiJlZTg2ZGQwOGU1Mzc5ZjBjMjUwZWUxZWQzZjFlMWQ3YjA3Y2Q4MjYyMmNiZGY1ZWZjMjc5ZjVkOWFiMTE3NDdkIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJUURTdks2ZlJZdUlNUTV1U0E3VGhkS1ZpSm9OWENMcmpraDJHRHRmWGQrT2xBSWdFd1VmL1pzRmdyVUpoN2RabStYcGNMNDhXV1RxSWtRdkpCTnpLZFNMZWFzPSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaGtWRU5EUW5aeFowRjNTVUpCWjBsVlNHWlJOSHBrUVhWaFMxbDJRekpHT1Vwb1pFNU1hVmxxVkZWM2QwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDVxUlRSTlJGa3dUVVJKZDFkb1kwNU5hbGwzVG1wRk5FMUVXVEZOUkVsM1YycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZQV0ZCSlVqVldMMWhqWjBWRlRHbDZPVmR6UWxwYVFXOXNkbXAxVW5obVlrRnBTVVFLYlV0NWQwSllkakJqYURFeFZtOU9RM0JsVGs4MldFVkNVV2tyWTFSamVFRXpla3RCVldaclpVZHNiSGRvYkZaWldEWlBRMEpvYTNkbloxbFdUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlZGWjFCRkNtcEthV2xoUWswNFkzWXlXRFZDVmtWT1F6QnllVWwzZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDJSUldVUldVakJTUVZGSUwwSkhjM2RoV1ZwdVlVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKb01Wb3laSEJpYldSdFdWZE9iQXBNTW5Sc1kyMDFiR0pJVFhSWk1qbDBZbGhXZFdGWVVqVk1lVFZ1WVZoU2IyUlhTWFprTWpsNVlUSmFjMkl6WkhwTU0wNXdXakkwZEdJeWVHdE1WMG94Q21GWGVHdGplVFUxV1ZjeGMxRklTbXhhYmsxMllVZFdhRnBJVFhaaVYwWndZbXBCTlVKbmIzSkNaMFZGUVZsUEwwMUJSVUpDUTNSdlpFaFNkMk42YjNZS1RETlNkbUV5Vm5WTWJVWnFaRWRzZG1KdVRYVmFNbXd3WVVoV2FXUllUbXhqYlU1MlltNVNiR0p1VVhWWk1qbDBUVUk0UjBOcGMwZEJVVkZDWnpjNGR3cEJVVWxGUlZoa2RtTnRkRzFpUnpreldESlNjR016UW1oa1IwNXZUVVJaUjBOcGMwZEJVVkZDWnpjNGQwRlJUVVZMUkdob1RtMUtiRTR5U21wT2VtTXhDazVxVm1oYVJGa3hXWHBvYUZwVVNtdGFWMGt3VGxSWk1FOUVTbTFhYWxwb1dWUlZkMXBYVVhkSVVWbExTM2RaUWtKQlIwUjJla0ZDUWtGUlVGVXliRzRLWW1sQ2RtSkhVV2RaYmxad1lrZFNlazFEYzBkRGFYTkhRVkZSUW1jM09IZEJVVlZGU0Zkb01Wb3laSEJpYldSdFdWZE9iRXd5ZEd4amJUVnNZa2hOZEFwWk1qbDBZbGhXZFdGWVVqVk5RakJIUTJselIwRlJVVUpuTnpoM1FWRlpSVVF6U214YWJrMTJZVWRXYUZwSVRYWmlWMFp3WW1wQk4wSm5iM0pDWjBWRkNrRlpUeTlOUVVWSlFrTXdUVXN5YURCa1NFSjZUMms0ZG1SSE9YSmFWelIxV1ZkT01HRlhPWFZqZVRWdVlWaFNiMlJYU2pGak1sWjVXVEk1ZFdSSFZuVUtaRU0xYW1JeU1IZGtkMWxMUzNkWlFrSkJSMFIyZWtGQ1ExRlNjRVJIWkc5a1NGSjNZM3B2ZGt3eVpIQmtSMmd4V1drMWFtSXlNSFpoU0ZadVdqSnNkUXBhTWxwb1dUSlZkbUV5Vm5saWJWWnpZM2t4YW1JeU1YUmtWelZ3WkVocmRreHRaSEJrUjJneFdXazVNMkl6U25KYWJYaDJaRE5OZG1NeWJHNWlhVEYyQ21KSFVYUlpibFp3WWtkU2VreHViR2hpVjNoQlkyMVdiV041T1c5YVYwWnJZM2s1ZEZsWGJIVk5SR2RIUTJselIwRlJVVUpuTnpoM1FWRnZSVXRuZDI4S1QwZEZNbGx0VlROWmJVMHpUbnBWTWs1WFJtdE9hbFpxVDBkR2JFMXRVbXhaYWxFeFRtcFJORTF0V20xT2JVWm9UbFJDYkZwRVFXSkNaMjl5UW1kRlJRcEJXVTh2VFVGRlRFSkJNRTFETTA1c1lrZFpkR0ZIT1hwa1IxWnJUVVZCUjBOcGMwZEJVVkZDWnpjNGQwRlJkMFZOWjNkM1lVaFNNR05JVFRaTWVUbHVDbUZZVW05a1YwbDFXVEk1ZEV3eWFERmFNbVJ3WW0xa2JWbFhUbXhNTW5Sc1kyMDFiR0pJVFhSWk1qbDBZbGhXZFdGWVVqVk5SR2RIUTJselIwRlJVVUlLWnpjNGQwRlJNRVZMWjNkdlQwZEZNbGx0VlROWmJVMHpUbnBWTWs1WFJtdE9hbFpxVDBkR2JFMXRVbXhaYWxFeFRtcFJORTF0V20xT2JVWm9UbFJDYkFwYVJFRm1RbWR2Y2tKblJVVkJXVTh2VFVGRlQwSkNSVTFFTTBwc1dtNU5kbUZIVm1oYVNFMTJZbGRHY0dKcVFXRkNaMjl5UW1kRlJVRlpUeTlOUVVWUUNrSkJkMDFEYWtWM1RucEZNRTU2VlRGTmFtdDNUR2RaUzB0M1dVSkNRVWRFZG5wQlFrVkJVV2RFUWpWdlpFaFNkMk42YjNaTU1tUndaRWRvTVZscE5Xb0tZakl3ZG1GSVZtNWFNbXgxV2pKYWFGa3lWWGRIUVZsTFMzZFpRa0pCUjBSMmVrRkNSVkZSUzBSQlozbE9WR041VFVSak1FMTZRak5DWjI5eVFtZEZSUXBCV1U4dlRVRkZVMEpIYTAxYU1tZ3daRWhDZWs5cE9IWmFNbXd3WVVoV2FVeHRUblppVXpsdlpGZGtibUZYTlc1YWJVWnFXbE01Y2xwWVNuVmFWM2g2Q2t4WFRuWmlWekV4WW0xc01HVlRPSFZhTW13d1lVaFdhVXd6WkhaamJYUnRZa2M1TTJONU9YcGhWMlIxVEZjNWMxcERNV2xrVjJ4eldraE5kV1ZYUm5RS1lrVkNlVnBYV25wTU1taHNXVmRTZWt3eU1XaGhWelIzVDBGWlMwdDNXVUpDUVVkRWRucEJRa1YzVVhGRVEyYzBXVlJhYVZwVVpHbFplbU16VGxSWk1RcFpWMUV5VGxkTk5GbFhWWGxhUjFacFRrUlZNazVFWjNsYWJWa3lXVmRGTVUxSFZtdE5RMFZIUTJselIwRlJVVUpuTnpoM1FWSlJSVVYzZDFKa01qbDVDbUV5V25OaU0yUm1Xa2RzZW1OSFJqQlpNbWQzV2tGWlMwdDNXVUpDUVVkRWRucEJRa1pSVWxkRVJsSnZaRWhTZDJONmIzWk1NbVJ3WkVkb01WbHBOV29LWWpJd2RtRklWbTVhTW14MVdqSmFhRmt5VlhaaE1sWjVZbTFXYzJONU1XcGlNakYwWkZjMWNHUklhM1paVjA0d1lWYzVkV041T1hsa1Z6VjZUSHBKTXdwT2VsRjRUa1JaTUU5RVVYbE1Na1l3WkVkV2RHTklVbnBNZWtWM1JtZFpTMHQzV1VKQ1FVZEVkbnBCUWtablVVbEVRVnAzWkZkS2MyRlhUWGRTWjFsTENrdDNXVUpDUVVkRWRucEJRa2RCVVRSRVJGcDVXbGhDZGs5dGFERmFNbVJ3WW0xa2JWbFhUbXhNTW5Sc1kyMDFiR0pJVFhSWk1qbDBZbGhXZFdGWVVqVUtUMjVLYkZwcWNIbGFWMXA2VERKb2JGbFhVbnBNTWpGb1lWYzBkMmRaYzBkRGFYTkhRVkZSUWpGdWEwTkNRVWxGWmxGU04wRklhMEZrZDBSa1VGUkNjUXA0YzJOU1RXMU5Xa2hvZVZwYWVtTkRiMnR3WlhWT05EaHlaaXRJYVc1TFFVeDViblZxWjBGQlFWbzNXbVJaTkdSQlFVRkZRWGRDU1UxRldVTkpVVU5SQ25GV1dHOVNPVGs0UjNkVmMzRmFSMHhFZWxaaFMwaEhSRlJSUWpoeFJHRktiVkZHTlVsb05sVjRaMGxvUVU5WVZsRlhiSGxpVGt0NlIxWnVaalY1VkZvS0wwbFNlVmxUVlZSS2JUaEJPVk5zVDA1UGRFcG1ZVWgxVFVGdlIwTkRjVWRUVFRRNVFrRk5SRUV5YTBGTlIxbERUVkZFYUVGNFN5OWFjazl1UVhCM1lncHVOV050V0ZSb2NFMTNkR1J6TUhkRVRXRmtha1JwTkdOVFJrdG9PRkZUU1N0R1JETkVTWFE1ZVZCeWJWTnpjMkkzSzI5RFRWRkVTWEJuTVc0eFdVVlRDa0o1Vkc5UVQwNUhaSEY2WmtkQ05HOUNkSGhxYmxselQyTklZaXRYY0M5VWRuWm9kRk41YkhOaWRWTTRlV1l5VDFWa0wwUllZWE05Q2kwdExTMHRSVTVFSUVORlVsUkpSa2xEUVZSRkxTMHRMUzBLIn19fX0="}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyjADAgEAMIICwQYJKoZIhvcNAQcCoIICsjCCAq4CAQMxDTALBglghkgBZQMEAgEwgbgGCyqGSIb3DQEJEAEEoIGoBIGlMIGiAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgcdNO2D9KYQPiGeGRjPo+Xi6g6p6oCqMyFgRLpmNq5UECFQCYA+EqBWrTs3NxmcRrDfA6inJdbxgPMjAyNjA2MTgwNjQwMjBaMAMCAQGgMqQwMC4xFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEVMBMGA1UEAxMMc2lnc3RvcmUtdHNhoAAxggHbMIIB1wIBATBRMDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAsGCWCGSAFlAwQCAaCB/DAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTI2MDYxODA2NDAyMFowLwYJKoZIhvcNAQkEMSIEIEGe3HMRTJq08v05PqM6RrHr/+hYJ5XmcqzemLY4b2P0MIGOBgsqhkiG9w0BCRACLzF/MH0wezB5BCCF+Se8B6tiysO0Q1bBDvyBssaIP9p6uebYcNnROs0FtzBVMD2kOzA5MRUwEwYDVQQKEwxzaWdzdG9yZS5kZXYxIDAeBgNVBAMTF3NpZ3N0b3JlLXRzYS1zZWxmc2lnbmVkAhQ6E1QvDJBh7rzBQy/Lio6LKiOLDDAKBggqhkjOPQQDAgRnMGUCMQDvXj6sv06fv2P85jFzQjv9FBY4hhC+EOldCw1P5FCaoCbFCz7in8G1NsJru17bEocCMCdjAikef4OpImCNxTiojCFvRd91b71z4LPHxEiXhDkpeqQl6qoF0vxqAfT8WVd6Pg=="}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"7obdCOU3nwwlDuHtPx4dewfNgmIsvfXvwnn12asRdH0="},"signature":"MEUCIQDSvK6fRYuIMQ5uSA7ThdKViJoNXCLrjkh2GDtfXd+OlAIgEwUf/ZsFgrUJh7dZm+XpcL48WWTqIkQvJBNzKdSLeas="}}
 
1
+ {"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"MIIHQzCCBsigAwIBAgIUT1FN3zyFP7OglYfdGEXj9OpH38kwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYxMDE5MTEwMzM1WhcNMjYxMDE5MTExMzM1WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEayuNDkM+64sYbu4LqxL9q57MS6Z01zQ75MSJ8kfXgyd8v6WIUCLoWWDXsvS8JgR3XuLKjAbXGwyFvlt39iQMXaOCBecwggXjMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAfBgNVHSMEGDAWgBTf0+nPViQRlvmo2OkoVaLGLhhkPzBvBgNVHREBAf8EZTBjhmFodHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQtbWFjLnlhbWxAcmVmcy9oZWFkcy9tYWluMDkGCisGAQQBg78wAQEEK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wHwYKKwYBBAGDvzABAgQRd29ya2Zsb3dfZGlzcGF0Y2gwNgYKKwYBBAGDvzABAwQoZmUyYmI2NmZlZTZjMmE3N2VjY2YwOGEwNTA4ZGM1NzQyOGQ0ODhlZDAbBgorBgEEAYO/MAEEBA1CdWlsZCAobWFjT1MpMCsGCisGAQQBg78wAQUEHWh1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MB0GCisGAQQBg78wAQYED3JlZnMvaGVhZHMvbWFpbjA7BgorBgEEAYO/MAEIBC0MK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wcQYKKwYBBAGDvzABCQRjDGFodHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQtbWFjLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wAQoEKgwoZmUyYmI2NmZlZTZjMmE3N2VjY2YwOGEwNTA4ZGM1NzQyOGQ0ODhlZDAdBgorBgEEAYO/MAELBA8MDWdpdGh1Yi1ob3N0ZWQwQAYKKwYBBAGDvzABDAQyDDBodHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkwOAYKKwYBBAGDvzABDQQqDChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMB8GCisGAQQBg78wAQ4EEQwPcmVmcy9oZWFkcy9tYWluMBoGCisGAQQBg78wAQ8EDAwKMTA3MTQ3NTUyOTAuBgorBgEEAYO/MAEQBCAMHmh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZTAYBgorBgEEAYO/MAERBAoMCDI1NzIwNzQzMHEGCisGAQQBg78wARIEYwxhaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLW1hYy55YW1sQHJlZnMvaGVhZHMvbWFpbjA4BgorBgEEAYO/MAETBCoMKGZlMmJiNjZmZWU2YzJhNzdlY2NmMDhhMDUwOGRjNTc0MjhkNDg4ZWQwIQYKKwYBBAGDvzABFAQTDBF3b3JrZmxvd19kaXNwYXRjaDBkBgorBgEEAYO/MAEVBFYMVGh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS9hY3Rpb25zL3J1bnMvMzkyMzk1MjcyOTIvYXR0ZW1wdHMvMTAWBgorBgEEAYO/MAEWBAgMBnB1YmxpYzBGBgorBgEEAYO/MAEYBDgMNnJlcG86aHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHk6cmVmOnJlZnMvaGVhZHMvbWFpbjCBigYKKwYBBAHWeQIEAgR8BHoAeAB2AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABoVPUxOYAAAQDAEcwRQIgESi0lVbjAx5JOrSxEE/nFVEFl3xHU973623qSn3sqnMCIQDUFOuOF8ad5A5vlYa2aLUeGgGM2B1Xwe0HPqzgYRBCNDAKBggqhkjOPQQDAwNpADBmAjEA0QnAewKnyZKUHvINkjASPv+keZC7mJdNytAorarWQCBL9bXrEl2ZxR9uY/u7G0olAjEAz/yke+B15y1PRPiciorzspjU2vILg18nID89svFo4RbzSquPx7nlpReSWB+sxm5c"},"tlogEntries":[{"logIndex":"3320110950","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1792407815","inclusionPromise":{"signedEntryTimestamp":"MEUCIQCQIQTjweika4NeIVVl4fpeSbnY/cbjhtlrwfdINnPLZwIge0k0iagl1XwmBUxlNCNODQ9FkrMPh0SWjlID7yIlbw8="},"inclusionProof":{"logIndex":"3198206688","rootHash":"8vVMdPoonIC6efS0PFpvxkHL6Hd+5q51HuKqlSHkIFg=","treeSize":"3198206695","hashes":["7RzSaLXvb7uiVUDg2JI3DzfsLmWX2d+zIa1hU8/ttI8=","5v15TfGRPr6y96IDu8ufCXRPciMCqGs0WYrZVbb8ZXM=","TthoVviRW0llzsiUrpOSefGN5qie9f1SWTRawanbssc=","uF/v6HRQcgsU+Ysgu+lTcbE9QGl0OKbuMOC423Vn0Vg=","nc64r3Is9g7gSNNxhtjqwhPIj57WoOgwKI0wqAh+36Q=","R6FxYo+QNJcFswxXnMZWIOpBuDq2jfkKkxfn2PftPkQ=","CwBCuqAkeVZhjK66R5XeutytxmFWSlFTPAVBKldfDFA=","f4MktXqhBPk7ruDBxwgqTvXa7eCNzak9cUObXS0eTxI=","OlLDeTiZ1vIMDel4vGDtbNVnrFnzDe1MFV5rBN5Ep4o=","uCZQe757l2sS1c05Y7TzOwEm+X8MeGLIUCkEOmFVOz4=","nyQV/+cWQUG5Hb2PKjQQNkQIJmz2qzAZKBQlkHGIknM=","G+nk7mgE5h6dUmv2UY7NDJrY3WvrZY31raaO1AETt+o=","qlTWNDzERnTBQVcHHXXVPjiUP0SsikGxfcxVlgqVFDo=","gg9GNApNke3+zNhl4tsWtmIycCFrOMCB3lys6XuSQNQ=","NlOclldmKPA1tMKIskqHAwuQDYHp31YwpK+OOMrMccc=","qxzHanAzz57SDdmJe0B7bJK72NTIBbwEMGBBKvDOROw=","xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n3198206695\n8vVMdPoonIC6efS0PFpvxkHL6Hd+5q51HuKqlSHkIFg=\n\n— rekor.sigstore.dev wNI9ajBFAiEAzKm1S2QDcbKuhU8rOPEChSdZRxrgOT/f7+4KP1Wo2+ECIBroqx5Kb6KZmmus4nd5UMbMPK7OgoQ5zi9ipneoxzUJ\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiJiNGY0MjM4YTFmNmYwNjYyOGY0ODM2YjdhNmViMzUzMTVjZTBhNzI0ZDgwY2E0ZWZjYjY4MjU3ZjI2YjZjZmNmIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJUURxUnVTVHBXbFkwbElCTmlqdjNBZmJQRFl5TXFCd3F2OW1DZkhWSjFMZmFRSWdVdG1IcS9rdk9LM2pOMXZtMlJ1MS9lZG9SWEJHTHJveFNscDQ1K1JmdnB3PSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaFJla05EUW5OcFowRjNTVUpCWjBsVlZERkdUak42ZVVaUU4wOW5iRmxtWkVkRldHbzVUM0JJTXpocmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFplRTFFUlRWTlZFVjNUWHBOTVZkb1kwNU5hbGw0VFVSRk5VMVVSWGhOZWsweFYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZoZVhWT1JHdE5LelkwYzFsaWRUUk1jWGhNT1hFMU4wMVRObG93TVhwUk56Vk5VMG9LT0d0bVdHZDVaRGgyTmxkSlZVTk1iMWRYUkZoemRsTTRTbWRTTTFoMVRFdHFRV0pZUjNkNVJuWnNkRE01YVZGTldHRlBRMEpsWTNkbloxaHFUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXWkNaMDVXU0ZOTlJVZEVRVmRuUWxSbUNqQXJibEJXYVZGU2JIWnRiekpQYTI5V1lVeEhUR2hvYTFCNlFuWkNaMDVXU0ZKRlFrRm1PRVZhVkVKcWFHMUdiMlJJVW5kamVtOTJUREprY0dSSGFERUtXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWMllUSldlV0p0Vm5OamVURnFZakl4ZEdSWE5YQmtTR3QyVEcxa2NHUkhhREZaYVRrellqTktjZ3BhYlhoMlpETk5kbGx1Vm5CaVIxRjBZbGRHYWt4dWJHaGlWM2hCWTIxV2JXTjVPVzlhVjBaclkzazVkRmxYYkhWTlJHdEhRMmx6UjBGUlVVSm5OemgzQ2tGUlJVVkxNbWd3WkVoQ2VrOXBPSFprUnpseVdsYzBkVmxYVGpCaFZ6bDFZM2sxYm1GWVVtOWtWMG94WXpKV2VWa3lPWFZrUjFaMVpFTTFhbUl5TUhjS1NIZFpTMHQzV1VKQ1FVZEVkbnBCUWtGblVWSmtNamw1WVRKYWMySXpaR1phUjJ4NlkwZEdNRmt5WjNkT1oxbExTM2RaUWtKQlIwUjJla0ZDUVhkUmJ3cGFiVlY1V1cxSk1rNXRXbXhhVkZwcVRXMUZNMDR5Vm1wWk1sbDNUMGRGZDA1VVFUUmFSMDB4VG5wUmVVOUhVVEJQUkdoc1drUkJZa0puYjNKQ1owVkZDa0ZaVHk5TlFVVkZRa0V4UTJSWGJITmFRMEZ2WWxkR2FsUXhUWEJOUTNOSFEybHpSMEZSVVVKbk56aDNRVkZWUlVoWGFERmFNbVJ3WW0xa2JWbFhUbXdLVERKMGJHTnROV3hpU0UxMFdUSTVkR0pZVm5WaFdGSTFUVUl3UjBOcGMwZEJVVkZDWnpjNGQwRlJXVVZFTTBwc1dtNU5kbUZIVm1oYVNFMTJZbGRHY0FwaWFrRTNRbWR2Y2tKblJVVkJXVTh2VFVGRlNVSkRNRTFMTW1nd1pFaENlazlwT0haa1J6bHlXbGMwZFZsWFRqQmhWemwxWTNrMWJtRllVbTlrVjBveENtTXlWbmxaTWpsMVpFZFdkV1JETldwaU1qQjNZMUZaUzB0M1dVSkNRVWRFZG5wQlFrTlJVbXBFUjBadlpFaFNkMk42YjNaTU1tUndaRWRvTVZscE5Xb0tZakl3ZG1GSVZtNWFNbXgxV2pKYWFGa3lWWFpoTWxaNVltMVdjMk41TVdwaU1qRjBaRmMxY0dSSWEzWk1iV1J3WkVkb01WbHBPVE5pTTBweVdtMTRkZ3BrTTAxMldXNVdjR0pIVVhSaVYwWnFURzVzYUdKWGVFRmpiVlp0WTNrNWIxcFhSbXRqZVRsMFdWZHNkVTFFWjBkRGFYTkhRVkZSUW1jM09IZEJVVzlGQ2t0bmQyOWFiVlY1V1cxSk1rNXRXbXhhVkZwcVRXMUZNMDR5Vm1wWk1sbDNUMGRGZDA1VVFUUmFSMDB4VG5wUmVVOUhVVEJQUkdoc1drUkJaRUpuYjNJS1FtZEZSVUZaVHk5TlFVVk1Ra0U0VFVSWFpIQmtSMmd4V1dreGIySXpUakJhVjFGM1VVRlpTMHQzV1VKQ1FVZEVkbnBCUWtSQlVYbEVSRUp2WkVoU2R3cGplbTkyVERKa2NHUkhhREZaYVRWcVlqSXdkbUZJVm01YU1teDFXakphYUZreVZYWmhNbFo1WW0xV2MyTjVNV3BpTWpGMFpGYzFjR1JJYTNkUFFWbExDa3QzV1VKQ1FVZEVkbnBCUWtSUlVYRkVRMmh0V2xSS2FWbHFXVEphYlZac1RtMU5lVmxVWXpOYVYwNXFXbXBCTkZsVVFURk5SR2hyV1hwVk0wNUVTVFFLV2tSUk5FOUhWbXROUWpoSFEybHpSMEZSVVVKbk56aDNRVkUwUlVWUmQxQmpiVlp0WTNrNWIxcFhSbXRqZVRsMFdWZHNkVTFDYjBkRGFYTkhRVkZSUWdwbk56aDNRVkU0UlVSQmQwdE5WRUV6VFZSUk0wNVVWWGxQVkVGMVFtZHZja0puUlVWQldVOHZUVUZGVVVKRFFVMUliV2d3WkVoQ2VrOXBPSFphTW13d0NtRklWbWxNYlU1MllsTTViMlJYWkc1aFZ6VnVXbTFHYWxwVVFWbENaMjl5UW1kRlJVRlpUeTlOUVVWU1FrRnZUVU5FU1RGT2VrbDNUbnBSZWsxSVJVY0tRMmx6UjBGUlVVSm5OemgzUVZKSlJWbDNlR2hoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiQXBqYlRWc1lraE5kRmt5T1hSaVdGWjFZVmhTTlV4NU5XNWhXRkp2WkZkSmRtUXlPWGxoTWxwellqTmtla3d5U2pGaFYzaHJURmN4YUZsNU5UVlpWekZ6Q2xGSVNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJORUpuYjNKQ1owVkZRVmxQTDAxQlJWUkNRMjlOUzBkYWJFMXRTbWxPYWxwdFdsZFZNbGw2U21nS1RucGtiRmt5VG0xTlJHaG9UVVJWZDA5SFVtcE9WR013VFdwb2EwNUVaelJhVjFGM1NWRlpTMHQzV1VKQ1FVZEVkbnBCUWtaQlVWUkVRa1l6WWpOS2NncGFiWGgyWkRFNWEyRllUbmRaV0ZKcVlVUkNhMEpuYjNKQ1owVkZRVmxQTDAxQlJWWkNSbGxOVmtkb01HUklRbnBQYVRoMldqSnNNR0ZJVm1sTWJVNTJDbUpUT1c5a1YyUnVZVmMxYmxwdFJtcGFVemx5V2xoS2RWcFhlSHBNVjA1MllsY3hNV0p0YkRCbFV6bG9XVE5TY0dJeU5YcE1NMG94WW01TmRrMTZhM2tLVFhwck1VMXFZM2xQVkVsMldWaFNNRnBYTVhka1NFMTJUVlJCVjBKbmIzSkNaMFZGUVZsUEwwMUJSVmRDUVdkTlFtNUNNVmx0ZUhCWmVrSkhRbWR2Y2dwQ1owVkZRVmxQTDAxQlJWbENSR2ROVG01S2JHTkhPRFpoU0ZadVdqSnNkVm95V21oWk1sVjJZVEpXZVdKdFZuTmplVEZxWWpJeGRHUlhOWEJrU0dzMkNtTnRWbTFQYmtwc1dtNU5kbUZIVm1oYVNFMTJZbGRHY0dKcVEwSnBaMWxMUzNkWlFrSkJTRmRsVVVsRlFXZFNPRUpJYjBGbFFVSXlRVTR3T1UxSGNrY0tlSGhGZVZsNGEyVklTbXh1VG5kTGFWTnNOalF6YW5sMEx6UmxTMk52UVhaTFpUWlBRVUZCUW05V1VGVjRUMWxCUVVGUlJFRkZZM2RTVVVsblJWTnBNQXBzVm1KcVFYZzFTazl5VTNoRlJTOXVSbFpGUm13emVFaFZPVGN6TmpJemNWTnVNM054YmsxRFNWRkVWVVpQZFU5R09HRmtOVUUxZG14WllUSmhURlZsQ2tkblIwMHlRakZZZDJVd1NGQnhlbWRaVWtKRFRrUkJTMEpuWjNGb2EycFBVRkZSUkVGM1RuQkJSRUp0UVdwRlFUQlJia0ZsZDB0dWVWcExWVWgyU1U0S2EycEJVMUIySzJ0bFdrTTNiVXBrVG5sMFFXOXlZWEpYVVVOQ1REbGlXSEpGYkRKYWVGSTVkVmt2ZFRkSE1HOXNRV3BGUVhvdmVXdGxLMEl4TlhreFVBcFNVR2xqYVc5eWVuTndhbFV5ZGtsTVp6RTRia2xFT0RsemRrWnZORkppZWxOeGRWQjROMjVzY0ZKbFUxZENLM040YlRWakNpMHRMUzB0UlU1RUlFTkZVbFJKUmtsRFFWUkZMUzB0TFMwSyJ9fX19"}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyTADAgEAMIICwAYJKoZIhvcNAQcCoIICsTCCAq0CAQMxDTALBglghkgBZQMEAgEwgbcGCyqGSIb3DQEJEAEEoIGnBIGkMIGhAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQg3nMHk9m8MOwkPFqUA1YejbTU6WgfhFguCrI6fmoFWeECFFzePk1gcIaM9LolyQuInHACIHB0GA8yMDI2MTAxOTExMDMzNVowAwIBAaAypDAwLjEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MRUwEwYDVQQDEwxzaWdzdG9yZS10c2GgADGCAdswggHXAgEBMFEwOTEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MSAwHgYDVQQDExdzaWdzdG9yZS10c2Etc2VsZnNpZ25lZAIUOhNULwyQYe68wUMvy4qOiyojiwwwCwYJYIZIAWUDBAIBoIH8MBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAcBgkqhkiG9w0BCQUxDxcNMjYxMDE5MTEwMzM1WjAvBgkqhkiG9w0BCQQxIgQgFlFlX0VKofsf8zAp/T9lAeo5EvudcLGvijToJoL2Y3gwgY4GCyqGSIb3DQEJEAIvMX8wfTB7MHkEIIX5J7wHq2LKw7RDVsEO/IGyxog/2nq55thw2dE6zQW3MFUwPaQ7MDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAoGCCqGSM49BAMCBGcwZQIxAJu3eYTiMdpdeMoV8EjxknfrDZbZv8f1V4jhiR80x/meu5ksKO3a0GGg5/6Kdior3AIwIU2Xxn0hRCe2gZU/4S7s5clE9OUQMT9ZmUhA7Ec7ycJG5BDgZGiEn9xa53Hbs2i8"}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"tPQjih9vBmKPSDa3pus1MVzgpyTYDKTvy2glfya2z88="},"signature":"MEUCIQDqRuSTpWlY0lIBNijv3AfbPDYyMqBwqv9mCfHVJ1LfaQIgUtmHq/kvOK3jN1vm2Ru1/edoRXBGLroxSlp45+Rfvpw="}}
build/torch210-metal-aarch64-darwin/symbols.json ADDED
@@ -0,0 +1,235 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "schema_version": 1,
3
+ "module": "_bitsandbytes_mps_metal_fe2bb66",
4
+ "functions": [
5
+ {
6
+ "name": "quantize_4bit",
7
+ "qualname": "quantize_4bit",
8
+ "module": "_bitsandbytes_mps_metal_fe2bb66",
9
+ "kind": "function",
10
+ "doc": "Blockwise 4-bit quantization using NF4 or FP4 codebook.\n\nArgs:\n input: Input tensor on MPS device (float16, bfloat16, or float32).\n blocksize: Number of elements per quantization block (64 or 128).\n quant_type: FP4 (1) or NF4 (2).\n\nReturns:\n Tuple of (packed, absmax):\n packed: uint8 tensor of packed 4-bit values [numel/2].\n absmax: float32 tensor of per-block max absolute values.",
11
+ "signature": {
12
+ "parameters": [
13
+ {
14
+ "name": "input",
15
+ "kind": "POSITIONAL_OR_KEYWORD",
16
+ "default": null,
17
+ "annotation": "torch.Tensor"
18
+ },
19
+ {
20
+ "name": "blocksize",
21
+ "kind": "POSITIONAL_OR_KEYWORD",
22
+ "default": "64",
23
+ "annotation": "int"
24
+ },
25
+ {
26
+ "name": "quant_type",
27
+ "kind": "POSITIONAL_OR_KEYWORD",
28
+ "default": "2",
29
+ "annotation": "int"
30
+ }
31
+ ],
32
+ "return_annotation": "Tuple[torch.Tensor, torch.Tensor]"
33
+ }
34
+ },
35
+ {
36
+ "name": "dequantize_4bit",
37
+ "qualname": "dequantize_4bit",
38
+ "module": "_bitsandbytes_mps_metal_fe2bb66",
39
+ "kind": "function",
40
+ "doc": "Blockwise 4-bit dequantization using NF4 or FP4 codebook.\n\nArgs:\n packed: uint8 tensor of packed 4-bit values.\n absmax: float32 tensor of per-block max absolute values.\n blocksize: Number of elements per quantization block (64 or 128).\n quant_type: FP4 (1) or NF4 (2).\n numel: Number of elements in the original tensor.\n If -1, inferred as packed.numel() * 2.\n output_dtype: Output scalar type.\n\nReturns:\n Dequantized tensor.",
41
+ "signature": {
42
+ "parameters": [
43
+ {
44
+ "name": "packed",
45
+ "kind": "POSITIONAL_OR_KEYWORD",
46
+ "default": null,
47
+ "annotation": "torch.Tensor"
48
+ },
49
+ {
50
+ "name": "absmax",
51
+ "kind": "POSITIONAL_OR_KEYWORD",
52
+ "default": null,
53
+ "annotation": "torch.Tensor"
54
+ },
55
+ {
56
+ "name": "blocksize",
57
+ "kind": "POSITIONAL_OR_KEYWORD",
58
+ "default": "64",
59
+ "annotation": "int"
60
+ },
61
+ {
62
+ "name": "quant_type",
63
+ "kind": "POSITIONAL_OR_KEYWORD",
64
+ "default": "2",
65
+ "annotation": "int"
66
+ },
67
+ {
68
+ "name": "numel",
69
+ "kind": "POSITIONAL_OR_KEYWORD",
70
+ "default": "-1",
71
+ "annotation": "int"
72
+ },
73
+ {
74
+ "name": "output_dtype",
75
+ "kind": "POSITIONAL_OR_KEYWORD",
76
+ "default": "torch.float16",
77
+ "annotation": "torch.dtype"
78
+ }
79
+ ],
80
+ "return_annotation": "torch.Tensor"
81
+ }
82
+ },
83
+ {
84
+ "name": "gemv_4bit",
85
+ "qualname": "gemv_4bit",
86
+ "module": "_bitsandbytes_mps_metal_fe2bb66",
87
+ "kind": "function",
88
+ "doc": "Fused matrix-vector multiply with 4-bit quantized weights.\n\nComputes y = dequant(W) @ x, where W is blockwise NF4/FP4 quantized.\n\nArgs:\n x: Input vector [..., K] on MPS device.\n w: Packed weight matrix [N, K/2] (uint8) on MPS device.\n absmax: Per-block scales [N, ceil(K/blocksize)] (float32).\n output_features: Number of output features (N).\n blocksize: Quantization block size (64 or 128).\n quant_type: FP4 (1) or NF4 (2).\n\nReturns:\n Output tensor [..., N].",
89
+ "signature": {
90
+ "parameters": [
91
+ {
92
+ "name": "x",
93
+ "kind": "POSITIONAL_OR_KEYWORD",
94
+ "default": null,
95
+ "annotation": "torch.Tensor"
96
+ },
97
+ {
98
+ "name": "w",
99
+ "kind": "POSITIONAL_OR_KEYWORD",
100
+ "default": null,
101
+ "annotation": "torch.Tensor"
102
+ },
103
+ {
104
+ "name": "absmax",
105
+ "kind": "POSITIONAL_OR_KEYWORD",
106
+ "default": null,
107
+ "annotation": "torch.Tensor"
108
+ },
109
+ {
110
+ "name": "output_features",
111
+ "kind": "POSITIONAL_OR_KEYWORD",
112
+ "default": null,
113
+ "annotation": "int"
114
+ },
115
+ {
116
+ "name": "blocksize",
117
+ "kind": "POSITIONAL_OR_KEYWORD",
118
+ "default": "64",
119
+ "annotation": "int"
120
+ },
121
+ {
122
+ "name": "quant_type",
123
+ "kind": "POSITIONAL_OR_KEYWORD",
124
+ "default": "2",
125
+ "annotation": "int"
126
+ }
127
+ ],
128
+ "return_annotation": "torch.Tensor"
129
+ }
130
+ },
131
+ {
132
+ "name": "gemm_4bit",
133
+ "qualname": "gemm_4bit",
134
+ "module": "_bitsandbytes_mps_metal_fe2bb66",
135
+ "kind": "function",
136
+ "doc": "Fused matrix-matrix multiply with 4-bit quantized transposed weights.\n\nComputes Y = X @ dequant(W).T, where W is blockwise NF4/FP4 quantized.\n\nArgs:\n x: Input matrix [..., M, K] on MPS device.\n w: Packed weight matrix [N, K/2] (uint8) on MPS device.\n absmax: Per-block scales [N, ceil(K/blocksize)] (float32).\n output_features: Number of output features (N).\n blocksize: Quantization block size (64 or 128).\n quant_type: FP4 (1) or NF4 (2).\n\nReturns:\n Output tensor [..., M, N].",
137
+ "signature": {
138
+ "parameters": [
139
+ {
140
+ "name": "x",
141
+ "kind": "POSITIONAL_OR_KEYWORD",
142
+ "default": null,
143
+ "annotation": "torch.Tensor"
144
+ },
145
+ {
146
+ "name": "w",
147
+ "kind": "POSITIONAL_OR_KEYWORD",
148
+ "default": null,
149
+ "annotation": "torch.Tensor"
150
+ },
151
+ {
152
+ "name": "absmax",
153
+ "kind": "POSITIONAL_OR_KEYWORD",
154
+ "default": null,
155
+ "annotation": "torch.Tensor"
156
+ },
157
+ {
158
+ "name": "output_features",
159
+ "kind": "POSITIONAL_OR_KEYWORD",
160
+ "default": null,
161
+ "annotation": "int"
162
+ },
163
+ {
164
+ "name": "blocksize",
165
+ "kind": "POSITIONAL_OR_KEYWORD",
166
+ "default": "64",
167
+ "annotation": "int"
168
+ },
169
+ {
170
+ "name": "quant_type",
171
+ "kind": "POSITIONAL_OR_KEYWORD",
172
+ "default": "2",
173
+ "annotation": "int"
174
+ }
175
+ ],
176
+ "return_annotation": "torch.Tensor"
177
+ }
178
+ },
179
+ {
180
+ "name": "linear_4bit",
181
+ "qualname": "linear_4bit",
182
+ "module": "_bitsandbytes_mps_metal_fe2bb66",
183
+ "kind": "function",
184
+ "doc": "4-bit quantized linear layer (auto-selects GEMV or GEMM).\n\nArgs:\n x: Input tensor on MPS device.\n w: Packed weight [N, K/2] (uint8).\n absmax: Scales [N, ceil(K/blocksize)] (float32).\n output_features: N.\n blocksize: 64 or 128.\n quant_type: FP4 (1) or NF4 (2).\n bias: Optional bias [N].\n\nReturns:\n Output tensor.",
185
+ "signature": {
186
+ "parameters": [
187
+ {
188
+ "name": "x",
189
+ "kind": "POSITIONAL_OR_KEYWORD",
190
+ "default": null,
191
+ "annotation": "torch.Tensor"
192
+ },
193
+ {
194
+ "name": "w",
195
+ "kind": "POSITIONAL_OR_KEYWORD",
196
+ "default": null,
197
+ "annotation": "torch.Tensor"
198
+ },
199
+ {
200
+ "name": "absmax",
201
+ "kind": "POSITIONAL_OR_KEYWORD",
202
+ "default": null,
203
+ "annotation": "torch.Tensor"
204
+ },
205
+ {
206
+ "name": "output_features",
207
+ "kind": "POSITIONAL_OR_KEYWORD",
208
+ "default": null,
209
+ "annotation": "int"
210
+ },
211
+ {
212
+ "name": "blocksize",
213
+ "kind": "POSITIONAL_OR_KEYWORD",
214
+ "default": "64",
215
+ "annotation": "int"
216
+ },
217
+ {
218
+ "name": "quant_type",
219
+ "kind": "POSITIONAL_OR_KEYWORD",
220
+ "default": "2",
221
+ "annotation": "int"
222
+ },
223
+ {
224
+ "name": "bias",
225
+ "kind": "POSITIONAL_OR_KEYWORD",
226
+ "default": "None",
227
+ "annotation": "torch.Tensor | None"
228
+ }
229
+ ],
230
+ "return_annotation": "torch.Tensor"
231
+ }
232
+ }
233
+ ],
234
+ "layers": []
235
+ }
build/torch211-metal-aarch64-darwin/{_bitsandbytes_mps_metal_8a730d9.abi3.so → _bitsandbytes_mps_metal_fe2bb66.abi3.so} RENAMED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:a2589da5ae0783305fdefc09190de285218652ae12b33fc3dad3cb1b070cdc87
3
- size 845512
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d526ad1ee25e296a3e0fee43db74e61ea064eab5daf7a202e7133492ec4102db
3
+ size 845576
build/torch211-metal-aarch64-darwin/_ops.py CHANGED
@@ -1,9 +1,9 @@
1
  import torch
2
- from . import _bitsandbytes_mps_metal_8a730d9
3
- ops = torch.ops._bitsandbytes_mps_metal_8a730d9
4
 
5
  def add_op_namespace_prefix(op_name: str):
6
  """
7
  Prefix op by namespace.
8
  """
9
- return f"_bitsandbytes_mps_metal_8a730d9::{op_name}"
 
1
  import torch
2
+ from . import _bitsandbytes_mps_metal_fe2bb66
3
+ ops = torch.ops._bitsandbytes_mps_metal_fe2bb66
4
 
5
  def add_op_namespace_prefix(op_name: str):
6
  """
7
  Prefix op by namespace.
8
  """
9
+ return f"_bitsandbytes_mps_metal_fe2bb66::{op_name}"
build/torch211-metal-aarch64-darwin/bitsandbytes_mps/__init__.py DELETED
@@ -1,26 +0,0 @@
1
- import ctypes
2
- import importlib.util
3
- import sys
4
- from pathlib import Path
5
- from types import ModuleType
6
-
7
-
8
- def _import_from_path(file_path: Path) -> ModuleType:
9
- # We cannot use the module name as-is, after adding it to `sys.modules`,
10
- # it would also be used for other imports. So, we make a module name that
11
- # depends on the path for it to be unique using the hex-encoded hash of
12
- # the path.
13
- path_hash = "{:x}".format(ctypes.c_size_t(hash(file_path.absolute())).value)
14
- module_name = path_hash
15
- spec = importlib.util.spec_from_file_location(module_name, file_path)
16
- if spec is None:
17
- raise ImportError(f"Cannot load spec for {module_name} from {file_path}")
18
- module = importlib.util.module_from_spec(spec)
19
- if module is None:
20
- raise ImportError(f"Cannot load module {module_name} from spec")
21
- sys.modules[module_name] = module
22
- spec.loader.exec_module(module) # type: ignore
23
- return module
24
-
25
-
26
- globals().update(vars(_import_from_path(Path(__file__).parent.parent / "__init__.py")))
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
build/torch211-metal-aarch64-darwin/metadata.json CHANGED
@@ -1,9 +1,11 @@
1
  {
2
  "name": "bitsandbytes-mps",
3
- "id": "_bitsandbytes_mps_metal_8a730d9",
4
  "version": 1,
 
5
  "license": "MIT",
6
  "python-depends": [],
 
7
  "backend": {
8
  "type": "metal"
9
  },
@@ -11,19 +13,19 @@
11
  "algorithm": "sha256",
12
  "files": {
13
  "__init__.py": "rs6BtEpr3t1l0M2Rvw1/OjtqW+WocRyKcp8tNRLui9M=",
14
- "_bitsandbytes_mps_metal_8a730d9.abi3.so": "olidpa4HgzBf3vwJGQ3ihSGGUq4Ssz/D2tPLGwcM3Ic=",
15
- "_ops.py": "82wkcg038yTRll4cqulqPLcQZmaDENBQ7E2qGWweQS4=",
16
- "bitsandbytes_mps/__init__.py": "DFYPlrhXwYjEqCl/8n0SmWGZV8NFml5DPhMjKfv98GY="
17
  }
18
  },
19
  "provenance": {
20
  "kernel-builder": {
21
- "version": "0.17.0-dev0",
22
- "sha": "81580bb92577f2f7228661ca2a221fc052375709",
23
  "dirty": false
24
  },
25
  "kernel": {
26
- "sha": "8a730d96c37560ccf1d3e09f7bbccdc886818f33",
27
  "dirty": false
28
  }
29
  }
 
1
  {
2
  "name": "bitsandbytes-mps",
3
+ "id": "_bitsandbytes_mps_metal_fe2bb66",
4
  "version": 1,
5
+ "kernels-minver": "0.14.0",
6
  "license": "MIT",
7
  "python-depends": [],
8
+ "kernel-depends": [],
9
  "backend": {
10
  "type": "metal"
11
  },
 
13
  "algorithm": "sha256",
14
  "files": {
15
  "__init__.py": "rs6BtEpr3t1l0M2Rvw1/OjtqW+WocRyKcp8tNRLui9M=",
16
+ "_bitsandbytes_mps_metal_fe2bb66.abi3.so": "1SatHuJeKWo+D+5D23TmHqBk6rXa96IC5xM0kuxBAts=",
17
+ "_ops.py": "KZ69wBm+uvagRpIJvyCWGxE7d3dVr9+r6zz16TO61lE=",
18
+ "symbols.json": "bp3qE0B/ix7Cb1dc0RFiDEzrr9mKJIC/lZgwMhDjkTI="
19
  }
20
  },
21
  "provenance": {
22
  "kernel-builder": {
23
+ "version": "0.18.0-dev0",
24
+ "commit": "d054906a13710b811b96697b4635f03020842733",
25
  "dirty": false
26
  },
27
  "kernel": {
28
+ "commit": "fe2bb66fee6c2a77eccf08a0508dc57428d488ed",
29
  "dirty": false
30
  }
31
  }
build/torch211-metal-aarch64-darwin/metadata.json.sigstore CHANGED
@@ -1 +1 @@
1
- {"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"MIIHYDCCBuegAwIBAgIUOO1k7a4tPmUowExoKRomA2bQefowCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwNzA4MDkzMTI3WhcNMjYwNzA4MDk0MTI3WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEddzTIPwiguU5A6jLbLXAbkhBmHTY3X5yItG2ekRb9lUnVv/IIsE9b175M5+V0xfnWR+urm+QVk8hB5UtSnT/y6OCBgYwggYCMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUPBgCAxI1Pys78obJ6n8R+B1dv1cwHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wbwYDVR0RAQH/BGUwY4ZhaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLW1hYy55YW1sQHJlZnMvaGVhZHMvbWFpbjA5BgorBgEEAYO/MAEBBCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMB8GCisGAQQBg78wAQIEEXdvcmtmbG93X2Rpc3BhdGNoMDYGCisGAQQBg78wAQMEKDhhNzMwZDk2YzM3NTYwY2NmMWQzZTA5ZjdiYmNjZGM4ODY4MThmMzMwGwYKKwYBBAGDvzABBAQNQnVpbGQgKG1hY09TKTArBgorBgEEAYO/MAEFBB1odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTAdBgorBgEEAYO/MAEGBA9yZWZzL2hlYWRzL21haW4wOwYKKwYBBAGDvzABCAQtDCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMHEGCisGAQQBg78wAQkEYwxhaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLW1hYy55YW1sQHJlZnMvaGVhZHMvbWFpbjA4BgorBgEEAYO/MAEKBCoMKDhhNzMwZDk2YzM3NTYwY2NmMWQzZTA5ZjdiYmNjZGM4ODY4MThmMzMwHQYKKwYBBAGDvzABCwQPDA1naXRodWItaG9zdGVkMEAGCisGAQQBg78wAQwEMgwwaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MDgGCisGAQQBg78wAQ0EKgwoOGE3MzBkOTZjMzc1NjBjY2YxZDNlMDlmN2JiY2NkYzg4NjgxOGYzMzAfBgorBgEEAYO/MAEOBBEMD3JlZnMvaGVhZHMvbWFpbjAaBgorBgEEAYO/MAEPBAwMCjEwNzE0NzU1MjkwLgYKKwYBBAGDvzABEAQgDB5odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2UwGAYKKwYBBAGDvzABEQQKDAgyNTcyMDc0MzBxBgorBgEEAYO/MAESBGMMYWh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS8uZ2l0aHViL3dvcmtmbG93cy9idWlsZC1tYWMueWFtbEByZWZzL2hlYWRzL21haW4wOAYKKwYBBAGDvzABEwQqDCg4YTczMGQ5NmMzNzU2MGNjZjFkM2UwOWY3YmJjY2RjODg2ODE4ZjMzMCEGCisGAQQBg78wARQEEwwRd29ya2Zsb3dfZGlzcGF0Y2gwZAYKKwYBBAGDvzABFQRWDFRodHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvYWN0aW9ucy9ydW5zLzI4OTMxMTkwMjcwL2F0dGVtcHRzLzEwFgYKKwYBBAGDvzABFgQIDAZwdWJsaWMwRgYKKwYBBAGDvzABGAQ4DDZyZXBvOmh1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5OnJlZjpyZWZzL2hlYWRzL21haW4wgYoGCisGAQQB1nkCBAIEfAR6AHgAdgDdPTBqxscRMmMZHhyZZzcCokpeuN48rf+HinKALynujgAAAZ9BEWmBAAAEAwBHMEUCIQDGCbOjaYJCsLcnTndy82oWueckIix4ePNGlhiQYVjnswIgKUUacyPAQ7HQprDwf/cc+Ve80FwopCZ7QmnZr5y/H7MwCgYIKoZIzj0EAwMDZwAwZAIwX3BKAmGG3vz9V507WPC3VGrI7lvJLDIdX9S8BZif3aZdlJt/E41yRPAqIXcWLQqyAjB68YhoIQsc1tFVfJUfdNf0YYm4wOokgbVzOzlsslSgSNkArOU4BLzhsE8Ezj8oMMw="},"tlogEntries":[{"logIndex":"2114050659","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1783503088","inclusionPromise":{"signedEntryTimestamp":"MEUCIQCBgpw4ypVqU7VW15yM8lRPvqbpSzQYOr6i2+2Gvh1e3gIgFN4iORW6hxuQAST1Lra8KousiUkRDBnnWBn1sQTl18s="},"inclusionProof":{"logIndex":"1992146397","rootHash":"rR9Qc/X9A2Q9/Hcc/KqWZB6nFkw5ab/SqQuvqafZCgE=","treeSize":"1992146402","hashes":["kFV2zs1QhPlk/g0Zg4Lg7tm7olJOrZsB6Dd1Fx9FTu0=","1WyTGd+FEuewv8rygLwIbgtH7KseTXserbyIz8UfqPU=","Lo1FdfeDJ7PCIgQu9oRp9hyuDADXZxcNwfZVqN9goZE=","GOShJ8C/7QO4TDrvlOOyPE6QQqcQALMxmIgTwoER4RE=","n3KQif5uGgwJthN/6GmumW0JXi2YBa2VTPeH7YhpC0E=","yLpEQ8hEnY4R7PL5je5jZjNVy0mbc5prDO/VBPvV/Ug=","/EiiwBad1rBzMNYlO1BYcV6a71do+mVNStNUyLfTuKw=","Gx91TuvyI6opA0m8qyGiU2eRzvGzuLZFAnFWfNH5QVo=","+eXlt8gTv6FQTk8PBlp9k9O33mVEXe0lWPsKfv4ipN4=","nFN2p5hPYRGd0Iu8+TAmyhbEAvTJDt1NnWpDAiPixcI=","q8/g5osqGPIuqE5wE2qxfFehh2/Wpt3ybBf0T5+fQUo=","lMHak7Tzg3f53GiOSOK9fErpjV8mG4MKhTxfekY9cKs=","lNWmtLA9nenrjvrgkSDblv+6UJkO/AmP3cVBvAXp5Bo=","tY8nHkJkYkzR0a8crBzP4XX2ys6vaQR/b0ImUbbsFfk=","W8OH9B7+IUIWw6Asm1BMB4ZxX27Q2QG2hpA1yZ+WxAQ=","q0bDCYYM8Kl1AcQlFtAjsMRkDgQDRjrR/EhSNDT6HeI=","Uh9Q3t0owp3nQij7uUVzswxCf/9lo7BQqoqZwxfV0u4=","fZbx4AWo+aeMN9Mbraux+rscCGLJEHB7hXu1e/kRgeo=","D/x3yP7cG/SpQUwSXzpITAOA0UroT/kIiXSF3wR+jT4=","Bcvbbu+tDL+zr1H2q26c2ATmVu7v/f7JIFweUu7qDK8=","WajL3ZhY6ZX9meV3VTH9TkrbM31OF4o6+7foL0Uf6PI=","cyKMKBvHkQtwb2xR5svh+YppANOVdn7X8t4DuKMxICA=","+/VZ56MsIPxMiyLAodzKXo5TEWdQp36z89qLhpzloAo=","daxmZaajRpZV+JxHiOYZhJBiSKN5ucqjh2WnGbHhirw=","DOCeoSMovIvLExkhIvisow9AuNXgeWs4ECkyR6EcqYU="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n1992146402\nrR9Qc/X9A2Q9/Hcc/KqWZB6nFkw5ab/SqQuvqafZCgE=\n\n— rekor.sigstore.dev wNI9ajBFAiEA4q2y8BMxZG/5cgiLEDKgn6Z6vYxZ0cr77+LInOWJUWYCIC4eJA8WbvDzrFHvVyCo3TnjtXejm0D0oTf4L36wjJds\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiI1Y2E5NzU4YmZhMjg0ZGY2YmY0ODg1NmNhNGZkNGFiZWI1ZjkyOTM5ODc4MDJiYzlhNDkwMTkyOTUxNDhmNWE5In19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJQmUrMFFHMExXei9WSHIveTRrVDB0akcyUXM1TmFJZHIvWHF1V0pudUtsRkFpRUFtUjhPSitXSTRyZXljRG1zYlF0RzNvMDN3UlBnbjhDeHpocmhsdmUzY2pjPSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaFpSRU5EUW5WbFowRjNTVUpCWjBsVlQwOHhhemRoTkhSUWJWVnZkMFY0YjB0U2IyMUJNbUpSWldadmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDU2UVRSTlJHdDZUVlJKTTFkb1kwNU5hbGwzVG5wQk5FMUVhekJOVkVrelYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZrWkhwVVNWQjNhV2QxVlRWQk5tcE1Za3hZUVdKcmFFSnRTRlJaTTFnMWVVbDBSeklLWld0U1lqbHNWVzVXZGk5SlNYTkZPV0l4TnpWTk5TdFdNSGhtYmxkU0szVnliU3RSVm1zNGFFSTFWWFJUYmxRdmVUWlBRMEpuV1hkbloxbERUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlZRUW1kRENrRjRTVEZRZVhNM09HOWlTalp1T0ZJclFqRmtkakZqZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDJKM1dVUldVakJTUVZGSUwwSkhWWGRaTkZwb1lVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKb01Wb3laSEJpYldSdFdWZE9iQXBNTW5Sc1kyMDFiR0pJVFhSWk1qbDBZbGhXZFdGWVVqVk1lVFZ1WVZoU2IyUlhTWFprTWpsNVlUSmFjMkl6WkhwTU1rb3hZVmQ0YTB4WE1XaFplVFUxQ2xsWE1YTlJTRXBzV201TmRtRkhWbWhhU0UxMllsZEdjR0pxUVRWQ1oyOXlRbWRGUlVGWlR5OU5RVVZDUWtOMGIyUklVbmRqZW05MlRETlNkbUV5Vm5VS1RHMUdhbVJIYkhaaWJrMTFXakpzTUdGSVZtbGtXRTVzWTIxT2RtSnVVbXhpYmxGMVdUSTVkRTFDT0VkRGFYTkhRVkZSUW1jM09IZEJVVWxGUlZoa2RncGpiWFJ0WWtjNU0xZ3lVbkJqTTBKb1pFZE9iMDFFV1VkRGFYTkhRVkZSUW1jM09IZEJVVTFGUzBSb2FFNTZUWGRhUkdzeVdYcE5NMDVVV1hkWk1rNXRDazFYVVhwYVZFRTFXbXBrYVZsdFRtcGFSMDAwVDBSWk5FMVVhRzFOZWsxM1IzZFpTMHQzV1VKQ1FVZEVkbnBCUWtKQlVVNVJibFp3WWtkUlowdEhNV2dLV1RBNVZFdFVRWEpDWjI5eVFtZEZSVUZaVHk5TlFVVkdRa0l4YjJSWFpHNWhWelZ1V20xR2FscFRPWEphV0VwMVdsZDRla3hYVG5aaVZ6RXhZbTFzTUFwbFZFRmtRbWR2Y2tKblJVVkJXVTh2VFVGRlIwSkJPWGxhVjFwNlRESm9iRmxYVW5wTU1qRm9ZVmMwZDA5M1dVdExkMWxDUWtGSFJIWjZRVUpEUVZGMENrUkRkRzlrU0ZKM1kzcHZka3d6VW5aaE1sWjFURzFHYW1SSGJIWmliazExV2pKc01HRklWbWxrV0U1c1kyMU9kbUp1VW14aWJsRjFXVEk1ZEUxSVJVY0tRMmx6UjBGUlVVSm5OemgzUVZGclJWbDNlR2hoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiQXBqYlRWc1lraE5kRmt5T1hSaVdGWjFZVmhTTlV4NU5XNWhXRkp2WkZkSmRtUXlPWGxoTWxwellqTmtla3d5U2pGaFYzaHJURmN4YUZsNU5UVlpWekZ6Q2xGSVNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJORUpuYjNKQ1owVkZRVmxQTDAxQlJVdENRMjlOUzBSb2FFNTZUWGRhUkdzeVdYcE5NMDVVV1hjS1dUSk9iVTFYVVhwYVZFRTFXbXBrYVZsdFRtcGFSMDAwVDBSWk5FMVVhRzFOZWsxM1NGRlpTMHQzV1VKQ1FVZEVkbnBCUWtOM1VWQkVRVEZ1WVZoU2J3cGtWMGwwWVVjNWVtUkhWbXROUlVGSFEybHpSMEZSVVVKbk56aDNRVkYzUlUxbmQzZGhTRkl3WTBoTk5reDVPVzVoV0ZKdlpGZEpkVmt5T1hSTU1tZ3hDbG95WkhCaWJXUnRXVmRPYkV3eWRHeGpiVFZzWWtoTmRGa3lPWFJpV0ZaMVlWaFNOVTFFWjBkRGFYTkhRVkZSUW1jM09IZEJVVEJGUzJkM2IwOUhSVE1LVFhwQ2EwOVVXbXBOZW1NeFRtcENhbGt5V1hoYVJFNXNUVVJzYlU0eVNtbFpNazVyV1hwbk5FNXFaM2hQUjFsNlRYcEJaa0puYjNKQ1owVkZRVmxQTHdwTlFVVlBRa0pGVFVRelNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJZVUpuYjNKQ1owVkZRVmxQTDAxQlJWQkNRWGROUTJwRmQwNTZSVEJPZWxVeENrMXFhM2RNWjFsTFMzZFpRa0pCUjBSMmVrRkNSVUZSWjBSQ05XOWtTRkozWTNwdmRrd3laSEJrUjJneFdXazFhbUl5TUhaaFNGWnVXakpzZFZveVdtZ0tXVEpWZDBkQldVdExkMWxDUWtGSFJIWjZRVUpGVVZGTFJFRm5lVTVVWTNsTlJHTXdUWHBDZUVKbmIzSkNaMFZGUVZsUEwwMUJSVk5DUjAxTldWZG9NQXBrU0VKNlQyazRkbG95YkRCaFNGWnBURzFPZG1KVE9XOWtWMlJ1WVZjMWJscHRSbXBhVXpseVdsaEtkVnBYZUhwTVYwNTJZbGN4TVdKdGJEQmxVemgxQ2xveWJEQmhTRlpwVEROa2RtTnRkRzFpUnprelkzazVhV1JYYkhOYVF6RjBXVmROZFdWWFJuUmlSVUo1V2xkYWVrd3lhR3haVjFKNlRESXhhR0ZYTkhjS1QwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWM1VYRkVRMmMwV1ZSamVrMUhVVFZPYlUxNlRucFZNazFIVG1wYWFrWnJUVEpWZDA5WFdUTlpiVXBxV1RKU2FncFBSR2N5VDBSRk5GcHFUWHBOUTBWSFEybHpSMEZSVVVKbk56aDNRVkpSUlVWM2QxSmtNamw1WVRKYWMySXpaR1phUjJ4NlkwZEdNRmt5WjNkYVFWbExDa3QzV1VKQ1FVZEVkbnBCUWtaUlVsZEVSbEp2WkVoU2QyTjZiM1pNTW1Sd1pFZG9NVmxwTldwaU1qQjJZVWhXYmxveWJIVmFNbHBvV1RKVmRtRXlWbmtLWW0xV2MyTjVNV3BpTWpGMFpGYzFjR1JJYTNaWlYwNHdZVmM1ZFdONU9YbGtWelY2VEhwSk5FOVVUWGhOVkd0M1RXcGpkMHd5UmpCa1IxWjBZMGhTZWdwTWVrVjNSbWRaUzB0M1dVSkNRVWRFZG5wQlFrWm5VVWxFUVZwM1pGZEtjMkZYVFhkU1oxbExTM2RaUWtKQlIwUjJla0ZDUjBGUk5FUkVXbmxhV0VKMkNrOXRhREZhTW1Sd1ltMWtiVmxYVG14TU1uUnNZMjAxYkdKSVRYUlpNamwwWWxoV2RXRllValZQYmtwc1dtcHdlVnBYV25wTU1taHNXVmRTZWt3eU1XZ0tZVmMwZDJkWmIwZERhWE5IUVZGUlFqRnVhME5DUVVsRlprRlNOa0ZJWjBGa1owUmtVRlJDY1hoelkxSk5iVTFhU0doNVdscDZZME52YTNCbGRVNDBPQXB5Wml0SWFXNUxRVXg1Ym5WcVowRkJRVm81UWtWWGJVSkJRVUZGUVhkQ1NFMUZWVU5KVVVSSFEySlBhbUZaU2tOelRHTnVWRzVrZVRneWIxZDFaV05yQ2tscGVEUmxVRTVIYkdocFVWbFdhbTV6ZDBsblMxVlZZV041VUVGUk4waFJjSEpFZDJZdlkyTXJWbVU0TUVaM2IzQkRXamRSYlc1YWNqVjVMMGczVFhjS1EyZFpTVXR2V2tsNmFqQkZRWGROUkZwM1FYZGFRVWwzV0ROQ1MwRnRSMGN6ZG5vNVZqVXdOMWRRUXpOV1IzSkpOMngyU2t4RVNXUllPVk00UWxwcFpnb3pZVnBrYkVwMEwwVTBNWGxTVUVGeFNWaGpWMHhSY1hsQmFrSTJPRmxvYjBsUmMyTXhkRVpXWmtwVlptUk9aakJaV1cwMGQwOXZhMmRpVm5wUGVteHpDbk5zVTJkVFRtdEJjazlWTkVKTWVtaHpSVGhGZW1vNGIwMU5kejBLTFMwdExTMUZUa1FnUTBWU1ZFbEdTVU5CVkVVdExTMHRMUW89In19fX0="}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyTADAgEAMIICwAYJKoZIhvcNAQcCoIICsTCCAq0CAQMxDTALBglghkgBZQMEAgEwgbcGCyqGSIb3DQEJEAEEoIGnBIGkMIGhAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQg3l/dzztLuuvlg6xmyZ5A144mC04qonb/3Ye4V8xUrGACFFdu4wYMmkU2tRv0iAwm1gZB8HnuGA8yMDI2MDcwODA5MzEyOFowAwIBAaAypDAwLjEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MRUwEwYDVQQDEwxzaWdzdG9yZS10c2GgADGCAdswggHXAgEBMFEwOTEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MSAwHgYDVQQDExdzaWdzdG9yZS10c2Etc2VsZnNpZ25lZAIUOhNULwyQYe68wUMvy4qOiyojiwwwCwYJYIZIAWUDBAIBoIH8MBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAcBgkqhkiG9w0BCQUxDxcNMjYwNzA4MDkzMTI4WjAvBgkqhkiG9w0BCQQxIgQg9zu7xZOcbQuAdUaL5z07KxYjp58jBoB3rRuT7LntyY8wgY4GCyqGSIb3DQEJEAIvMX8wfTB7MHkEIIX5J7wHq2LKw7RDVsEO/IGyxog/2nq55thw2dE6zQW3MFUwPaQ7MDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAoGCCqGSM49BAMCBGcwZQIxAOyJQoM/kwkCbsUS/Udgu0ArZEEUYndCp9lw5BqyeHcdeEwQptq3u706GPeVnL8YiAIwa15Eepdr8JlIJoqNKSSjIgiFCagdiGhPP/H4SU22vmWQtbYn/nUv99nHdNz0I0DM"}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"XKl1i/ooTfa/SIVspP1KvrX5KTmHgCvJpJAZKVFI9ak="},"signature":"MEUCIBe+0QG0LWz/VHr/y4kT0tjG2Qs5NaIdr/XquWJnuKlFAiEAmR8OJ+WI4reycDmsbQtG3o03wRPgn8Cxzhrhlve3cjc="}}
 
1
+ {"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"MIIHQzCCBsmgAwIBAgIUHsvFvJiTmSYkzKIsgIskO0TDTFAwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYxMDE5MTEwMzM3WhcNMjYxMDE5MTExMzM3WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEvc6g2SBuj+n1HOGsc4YcCXW9Ts9+eN1sU2CuxQrQDqGP5pN3YowBjF1R1H/P1KGO/oInOdqSmvuNav7c4Gee8qOCBegwggXkMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAfBgNVHSMEGDAWgBTf0+nPViQRlvmo2OkoVaLGLhhkPzBvBgNVHREBAf8EZTBjhmFodHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQtbWFjLnlhbWxAcmVmcy9oZWFkcy9tYWluMDkGCisGAQQBg78wAQEEK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wHwYKKwYBBAGDvzABAgQRd29ya2Zsb3dfZGlzcGF0Y2gwNgYKKwYBBAGDvzABAwQoZmUyYmI2NmZlZTZjMmE3N2VjY2YwOGEwNTA4ZGM1NzQyOGQ0ODhlZDAbBgorBgEEAYO/MAEEBA1CdWlsZCAobWFjT1MpMCsGCisGAQQBg78wAQUEHWh1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MB0GCisGAQQBg78wAQYED3JlZnMvaGVhZHMvbWFpbjA7BgorBgEEAYO/MAEIBC0MK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wcQYKKwYBBAGDvzABCQRjDGFodHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQtbWFjLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wAQoEKgwoZmUyYmI2NmZlZTZjMmE3N2VjY2YwOGEwNTA4ZGM1NzQyOGQ0ODhlZDAdBgorBgEEAYO/MAELBA8MDWdpdGh1Yi1ob3N0ZWQwQAYKKwYBBAGDvzABDAQyDDBodHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkwOAYKKwYBBAGDvzABDQQqDChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMB8GCisGAQQBg78wAQ4EEQwPcmVmcy9oZWFkcy9tYWluMBoGCisGAQQBg78wAQ8EDAwKMTA3MTQ3NTUyOTAuBgorBgEEAYO/MAEQBCAMHmh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZTAYBgorBgEEAYO/MAERBAoMCDI1NzIwNzQzMHEGCisGAQQBg78wARIEYwxhaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLW1hYy55YW1sQHJlZnMvaGVhZHMvbWFpbjA4BgorBgEEAYO/MAETBCoMKGZlMmJiNjZmZWU2YzJhNzdlY2NmMDhhMDUwOGRjNTc0MjhkNDg4ZWQwIQYKKwYBBAGDvzABFAQTDBF3b3JrZmxvd19kaXNwYXRjaDBkBgorBgEEAYO/MAEVBFYMVGh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS9hY3Rpb25zL3J1bnMvMzkyMzk1MjcyOTIvYXR0ZW1wdHMvMTAWBgorBgEEAYO/MAEWBAgMBnB1YmxpYzBGBgorBgEEAYO/MAEYBDgMNnJlcG86aHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHk6cmVmOnJlZnMvaGVhZHMvbWFpbjCBiwYKKwYBBAHWeQIEAgR9BHsAeQB3AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABoVPUzFkAAAQDAEgwRgIhAMTCTp4YvAR6Ui8YB5RXdIz6Pr5Q08A/B49JiO70hJ7zAiEAxRYZh5pC5yDxEAl6/xhOhEGe8KtdeRBelA2oOAthkwEwCgYIKoZIzj0EAwMDaAAwZQIwes5SJjJ8+OJynn7kc/VuPzYQ0KZrntVncsjfm8MJ67ID9Q6Eedfs5Kp86xrM8tGtAjEAzv1sn6JFKjiZhq0iwvRoMaDVNmm75ogp835wgqyTgY5BGYLKxLpIM7DsvnUkr4sh"},"tlogEntries":[{"logIndex":"3320111013","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1792407817","inclusionPromise":{"signedEntryTimestamp":"MEUCIQCeNhsb3bdqKBAh4Yvm8zVI74NHYXqyaqeMN+SfRb5ceAIgcJTRzWjFCVhb6c9ABCsAV8C6+aSUYCySAp2qkLG0WD4="},"inclusionProof":{"logIndex":"3198206751","rootHash":"22CDpCQNBz+Cj7VR+/yjM0dZfufV92Sldot2KLnx51E=","treeSize":"3198206752","hashes":["eond+ziV7lfgOURM8dByDZ/4h1TmszPRWhbJqO1bnyg=","lmYcceFJK85Ew8lqC+NvtwYG23LbSLhJT1JL+VAtNnk=","Uud/1ZZGDLRMa6g7nZ/kR3+ZkDl5QMresaMQmK4HlIc=","f5sn6P9HK9BbE/TMCoh92SC8ZwMSKM2kZgW/5FqAST8=","Y81fanTcXscwnOxgBWxbJkmBwALefAQC252hIW7Jev0=","gYfBRC310JhNu8LpaMHNYoVqAKzPyEqWf4EziUHx4MY=","CwBCuqAkeVZhjK66R5XeutytxmFWSlFTPAVBKldfDFA=","f4MktXqhBPk7ruDBxwgqTvXa7eCNzak9cUObXS0eTxI=","OlLDeTiZ1vIMDel4vGDtbNVnrFnzDe1MFV5rBN5Ep4o=","uCZQe757l2sS1c05Y7TzOwEm+X8MeGLIUCkEOmFVOz4=","nyQV/+cWQUG5Hb2PKjQQNkQIJmz2qzAZKBQlkHGIknM=","G+nk7mgE5h6dUmv2UY7NDJrY3WvrZY31raaO1AETt+o=","qlTWNDzERnTBQVcHHXXVPjiUP0SsikGxfcxVlgqVFDo=","gg9GNApNke3+zNhl4tsWtmIycCFrOMCB3lys6XuSQNQ=","NlOclldmKPA1tMKIskqHAwuQDYHp31YwpK+OOMrMccc=","qxzHanAzz57SDdmJe0B7bJK72NTIBbwEMGBBKvDOROw=","xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n3198206752\n22CDpCQNBz+Cj7VR+/yjM0dZfufV92Sldot2KLnx51E=\n\n— rekor.sigstore.dev wNI9ajBFAiEAv8Pdn/WUzZ6aEX37Gxx6YKHtpaiH/9luGn9/4vjMHTYCIChSQmWKgXxOYzeFlmwKcm/yLjF6KWzCBf6D638iKTVp\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiJlMmQ5YmIwM2Y5OWIyYmViOTFhMWIyOGFjMzllZDU1NTBiMGZmN2UyZWQ3ZTNkYzNkNTkzZTIxYmQ1NTRjODk1In19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FWUNJUURpRVY1aTd6RDVVWnNJQ2x6b01kRXhLRE5zZHpDYVUrUGpUeFFGM3MvTExBSWhBTWg1c3ZQNnFJMU5yeXRGUHNlLzhYclVQWFZiVWc3czgvd01GVThiNFZiTCIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaFJla05EUW5OdFowRjNTVUpCWjBsVlNITjJSblpLYVZSdFUxbHJla3RKYzJkSmMydFBNRlJFVkVaQmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFplRTFFUlRWTlZFVjNUWHBOTTFkb1kwNU5hbGw0VFVSRk5VMVVSWGhOZWswelYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVYyWXpabk1sTkNkV29yYmpGSVQwZHpZelJaWTBOWVZ6bFVjemtyWlU0eGMxVXlRM1VLZUZGeVVVUnhSMUExY0U0eldXOTNRbXBHTVZJeFNDOVFNVXRIVHk5dlNXNVBaSEZUYlhaMVRtRjJOMk0wUjJWbE9IRlBRMEpsWjNkbloxaHJUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXWkNaMDVXU0ZOTlJVZEVRVmRuUWxSbUNqQXJibEJXYVZGU2JIWnRiekpQYTI5V1lVeEhUR2hvYTFCNlFuWkNaMDVXU0ZKRlFrRm1PRVZhVkVKcWFHMUdiMlJJVW5kamVtOTJUREprY0dSSGFERUtXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWMllUSldlV0p0Vm5OamVURnFZakl4ZEdSWE5YQmtTR3QyVEcxa2NHUkhhREZaYVRrellqTktjZ3BhYlhoMlpETk5kbGx1Vm5CaVIxRjBZbGRHYWt4dWJHaGlWM2hCWTIxV2JXTjVPVzlhVjBaclkzazVkRmxYYkhWTlJHdEhRMmx6UjBGUlVVSm5OemgzQ2tGUlJVVkxNbWd3WkVoQ2VrOXBPSFprUnpseVdsYzBkVmxYVGpCaFZ6bDFZM2sxYm1GWVVtOWtWMG94WXpKV2VWa3lPWFZrUjFaMVpFTTFhbUl5TUhjS1NIZFpTMHQzV1VKQ1FVZEVkbnBCUWtGblVWSmtNamw1WVRKYWMySXpaR1phUjJ4NlkwZEdNRmt5WjNkT1oxbExTM2RaUWtKQlIwUjJla0ZDUVhkUmJ3cGFiVlY1V1cxSk1rNXRXbXhhVkZwcVRXMUZNMDR5Vm1wWk1sbDNUMGRGZDA1VVFUUmFSMDB4VG5wUmVVOUhVVEJQUkdoc1drUkJZa0puYjNKQ1owVkZDa0ZaVHk5TlFVVkZRa0V4UTJSWGJITmFRMEZ2WWxkR2FsUXhUWEJOUTNOSFEybHpSMEZSVVVKbk56aDNRVkZWUlVoWGFERmFNbVJ3WW0xa2JWbFhUbXdLVERKMGJHTnROV3hpU0UxMFdUSTVkR0pZVm5WaFdGSTFUVUl3UjBOcGMwZEJVVkZDWnpjNGQwRlJXVVZFTTBwc1dtNU5kbUZIVm1oYVNFMTJZbGRHY0FwaWFrRTNRbWR2Y2tKblJVVkJXVTh2VFVGRlNVSkRNRTFMTW1nd1pFaENlazlwT0haa1J6bHlXbGMwZFZsWFRqQmhWemwxWTNrMWJtRllVbTlrVjBveENtTXlWbmxaTWpsMVpFZFdkV1JETldwaU1qQjNZMUZaUzB0M1dVSkNRVWRFZG5wQlFrTlJVbXBFUjBadlpFaFNkMk42YjNaTU1tUndaRWRvTVZscE5Xb0tZakl3ZG1GSVZtNWFNbXgxV2pKYWFGa3lWWFpoTWxaNVltMVdjMk41TVdwaU1qRjBaRmMxY0dSSWEzWk1iV1J3WkVkb01WbHBPVE5pTTBweVdtMTRkZ3BrTTAxMldXNVdjR0pIVVhSaVYwWnFURzVzYUdKWGVFRmpiVlp0WTNrNWIxcFhSbXRqZVRsMFdWZHNkVTFFWjBkRGFYTkhRVkZSUW1jM09IZEJVVzlGQ2t0bmQyOWFiVlY1V1cxSk1rNXRXbXhhVkZwcVRXMUZNMDR5Vm1wWk1sbDNUMGRGZDA1VVFUUmFSMDB4VG5wUmVVOUhVVEJQUkdoc1drUkJaRUpuYjNJS1FtZEZSVUZaVHk5TlFVVk1Ra0U0VFVSWFpIQmtSMmd4V1dreGIySXpUakJhVjFGM1VVRlpTMHQzV1VKQ1FVZEVkbnBCUWtSQlVYbEVSRUp2WkVoU2R3cGplbTkyVERKa2NHUkhhREZaYVRWcVlqSXdkbUZJVm01YU1teDFXakphYUZreVZYWmhNbFo1WW0xV2MyTjVNV3BpTWpGMFpGYzFjR1JJYTNkUFFWbExDa3QzV1VKQ1FVZEVkbnBCUWtSUlVYRkVRMmh0V2xSS2FWbHFXVEphYlZac1RtMU5lVmxVWXpOYVYwNXFXbXBCTkZsVVFURk5SR2hyV1hwVk0wNUVTVFFLV2tSUk5FOUhWbXROUWpoSFEybHpSMEZSVVVKbk56aDNRVkUwUlVWUmQxQmpiVlp0WTNrNWIxcFhSbXRqZVRsMFdWZHNkVTFDYjBkRGFYTkhRVkZSUWdwbk56aDNRVkU0UlVSQmQwdE5WRUV6VFZSUk0wNVVWWGxQVkVGMVFtZHZja0puUlVWQldVOHZUVUZGVVVKRFFVMUliV2d3WkVoQ2VrOXBPSFphTW13d0NtRklWbWxNYlU1MllsTTViMlJYWkc1aFZ6VnVXbTFHYWxwVVFWbENaMjl5UW1kRlJVRlpUeTlOUVVWU1FrRnZUVU5FU1RGT2VrbDNUbnBSZWsxSVJVY0tRMmx6UjBGUlVVSm5OemgzUVZKSlJWbDNlR2hoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiQXBqYlRWc1lraE5kRmt5T1hSaVdGWjFZVmhTTlV4NU5XNWhXRkp2WkZkSmRtUXlPWGxoTWxwellqTmtla3d5U2pGaFYzaHJURmN4YUZsNU5UVlpWekZ6Q2xGSVNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJORUpuYjNKQ1owVkZRVmxQTDAxQlJWUkNRMjlOUzBkYWJFMXRTbWxPYWxwdFdsZFZNbGw2U21nS1RucGtiRmt5VG0xTlJHaG9UVVJWZDA5SFVtcE9WR013VFdwb2EwNUVaelJhVjFGM1NWRlpTMHQzV1VKQ1FVZEVkbnBCUWtaQlVWUkVRa1l6WWpOS2NncGFiWGgyWkRFNWEyRllUbmRaV0ZKcVlVUkNhMEpuYjNKQ1owVkZRVmxQTDAxQlJWWkNSbGxOVmtkb01HUklRbnBQYVRoMldqSnNNR0ZJVm1sTWJVNTJDbUpUT1c5a1YyUnVZVmMxYmxwdFJtcGFVemx5V2xoS2RWcFhlSHBNVjA1MllsY3hNV0p0YkRCbFV6bG9XVE5TY0dJeU5YcE1NMG94WW01TmRrMTZhM2tLVFhwck1VMXFZM2xQVkVsMldWaFNNRnBYTVhka1NFMTJUVlJCVjBKbmIzSkNaMFZGUVZsUEwwMUJSVmRDUVdkTlFtNUNNVmx0ZUhCWmVrSkhRbWR2Y2dwQ1owVkZRVmxQTDAxQlJWbENSR2ROVG01S2JHTkhPRFpoU0ZadVdqSnNkVm95V21oWk1sVjJZVEpXZVdKdFZuTmplVEZxWWpJeGRHUlhOWEJrU0dzMkNtTnRWbTFQYmtwc1dtNU5kbUZIVm1oYVNFMTJZbGRHY0dKcVEwSnBkMWxMUzNkWlFrSkJTRmRsVVVsRlFXZFNPVUpJYzBGbFVVSXpRVTR3T1UxSGNrY0tlSGhGZVZsNGEyVklTbXh1VG5kTGFWTnNOalF6YW5sMEx6UmxTMk52UVhaTFpUWlBRVUZCUW05V1VGVjZSbXRCUVVGUlJFRkZaM2RTWjBsb1FVMVVRd3BVY0RSWmRrRlNObFZwT0ZsQ05WSllaRWw2TmxCeU5WRXdPRUV2UWpRNVNtbFBOekJvU2pkNlFXbEZRWGhTV1Zwb05YQkROWGxFZUVWQmJEWXZlR2hQQ21oRlIyVTRTM1JrWlZKQ1pXeEJNbTlQUVhSb2EzZEZkME5uV1VsTGIxcEplbW93UlVGM1RVUmhRVUYzV2xGSmQyVnpOVk5LYWtvNEswOUtlVzV1TjJzS1l5OVdkVkI2V1ZFd1MxcHliblJXYm1OemFtWnRPRTFLTmpkSlJEbFJOa1ZsWkdaek5VdHdPRFo0Y2swNGRFZDBRV3BGUVhwMk1YTnVOa3BHUzJwcFdncG9jVEJwZDNaU2IwMWhSRlpPYlcwM05XOW5jRGd6TlhkbmNYbFVaMWsxUWtkWlRFdDRUSEJKVFRkRWMzWnVWV3R5TkhOb0NpMHRMUzB0UlU1RUlFTkZVbFJKUmtsRFFWUkZMUzB0TFMwSyJ9fX19"}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyTADAgEAMIICwAYJKoZIhvcNAQcCoIICsTCCAq0CAQMxDTALBglghkgBZQMEAgEwgbcGCyqGSIb3DQEJEAEEoIGnBIGkMIGhAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgKSESZ4/3L9y/trFUsB6/IfeFwEI2l5QDGwJD26hsEfACFDNF+iB3OT+vMw5jCwa7IUf7b51fGA8yMDI2MTAxOTExMDMzN1owAwIBAaAypDAwLjEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MRUwEwYDVQQDEwxzaWdzdG9yZS10c2GgADGCAdswggHXAgEBMFEwOTEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MSAwHgYDVQQDExdzaWdzdG9yZS10c2Etc2VsZnNpZ25lZAIUOhNULwyQYe68wUMvy4qOiyojiwwwCwYJYIZIAWUDBAIBoIH8MBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAcBgkqhkiG9w0BCQUxDxcNMjYxMDE5MTEwMzM3WjAvBgkqhkiG9w0BCQQxIgQgAwJVl7+ETbakjV88JN6Z8L5KRn434aFIPmfQUonQ+rUwgY4GCyqGSIb3DQEJEAIvMX8wfTB7MHkEIIX5J7wHq2LKw7RDVsEO/IGyxog/2nq55thw2dE6zQW3MFUwPaQ7MDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAoGCCqGSM49BAMCBGcwZQIwMQY1JK/4gRtlrM6/4epqnLMOntdjoR6lviAM8N9j9oUmCyMY0TO37zBukuDeb1PUAjEA3Exe7lky1X/JASsQ0OKNZM5C9E3DMb7XA+rncB4uZUEXIfatCtdPYtMnD+LQt6NW"}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"4tm7A/mbK+uRobKKw57VVQsP9+Ltfj3D1ZPiG9VUyJU="},"signature":"MEYCIQDiEV5i7zD5UZsIClzoMdExKDNsdzCaU+PjTxQF3s/LLAIhAMh5svP6qI1NrytFPse/8XrUPXVbUg7s8/wMFU8b4VbL"}}
build/torch211-metal-aarch64-darwin/symbols.json ADDED
@@ -0,0 +1,235 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "schema_version": 1,
3
+ "module": "_bitsandbytes_mps_metal_fe2bb66",
4
+ "functions": [
5
+ {
6
+ "name": "quantize_4bit",
7
+ "qualname": "quantize_4bit",
8
+ "module": "_bitsandbytes_mps_metal_fe2bb66",
9
+ "kind": "function",
10
+ "doc": "Blockwise 4-bit quantization using NF4 or FP4 codebook.\n\nArgs:\n input: Input tensor on MPS device (float16, bfloat16, or float32).\n blocksize: Number of elements per quantization block (64 or 128).\n quant_type: FP4 (1) or NF4 (2).\n\nReturns:\n Tuple of (packed, absmax):\n packed: uint8 tensor of packed 4-bit values [numel/2].\n absmax: float32 tensor of per-block max absolute values.",
11
+ "signature": {
12
+ "parameters": [
13
+ {
14
+ "name": "input",
15
+ "kind": "POSITIONAL_OR_KEYWORD",
16
+ "default": null,
17
+ "annotation": "torch.Tensor"
18
+ },
19
+ {
20
+ "name": "blocksize",
21
+ "kind": "POSITIONAL_OR_KEYWORD",
22
+ "default": "64",
23
+ "annotation": "int"
24
+ },
25
+ {
26
+ "name": "quant_type",
27
+ "kind": "POSITIONAL_OR_KEYWORD",
28
+ "default": "2",
29
+ "annotation": "int"
30
+ }
31
+ ],
32
+ "return_annotation": "Tuple[torch.Tensor, torch.Tensor]"
33
+ }
34
+ },
35
+ {
36
+ "name": "dequantize_4bit",
37
+ "qualname": "dequantize_4bit",
38
+ "module": "_bitsandbytes_mps_metal_fe2bb66",
39
+ "kind": "function",
40
+ "doc": "Blockwise 4-bit dequantization using NF4 or FP4 codebook.\n\nArgs:\n packed: uint8 tensor of packed 4-bit values.\n absmax: float32 tensor of per-block max absolute values.\n blocksize: Number of elements per quantization block (64 or 128).\n quant_type: FP4 (1) or NF4 (2).\n numel: Number of elements in the original tensor.\n If -1, inferred as packed.numel() * 2.\n output_dtype: Output scalar type.\n\nReturns:\n Dequantized tensor.",
41
+ "signature": {
42
+ "parameters": [
43
+ {
44
+ "name": "packed",
45
+ "kind": "POSITIONAL_OR_KEYWORD",
46
+ "default": null,
47
+ "annotation": "torch.Tensor"
48
+ },
49
+ {
50
+ "name": "absmax",
51
+ "kind": "POSITIONAL_OR_KEYWORD",
52
+ "default": null,
53
+ "annotation": "torch.Tensor"
54
+ },
55
+ {
56
+ "name": "blocksize",
57
+ "kind": "POSITIONAL_OR_KEYWORD",
58
+ "default": "64",
59
+ "annotation": "int"
60
+ },
61
+ {
62
+ "name": "quant_type",
63
+ "kind": "POSITIONAL_OR_KEYWORD",
64
+ "default": "2",
65
+ "annotation": "int"
66
+ },
67
+ {
68
+ "name": "numel",
69
+ "kind": "POSITIONAL_OR_KEYWORD",
70
+ "default": "-1",
71
+ "annotation": "int"
72
+ },
73
+ {
74
+ "name": "output_dtype",
75
+ "kind": "POSITIONAL_OR_KEYWORD",
76
+ "default": "torch.float16",
77
+ "annotation": "torch.dtype"
78
+ }
79
+ ],
80
+ "return_annotation": "torch.Tensor"
81
+ }
82
+ },
83
+ {
84
+ "name": "gemv_4bit",
85
+ "qualname": "gemv_4bit",
86
+ "module": "_bitsandbytes_mps_metal_fe2bb66",
87
+ "kind": "function",
88
+ "doc": "Fused matrix-vector multiply with 4-bit quantized weights.\n\nComputes y = dequant(W) @ x, where W is blockwise NF4/FP4 quantized.\n\nArgs:\n x: Input vector [..., K] on MPS device.\n w: Packed weight matrix [N, K/2] (uint8) on MPS device.\n absmax: Per-block scales [N, ceil(K/blocksize)] (float32).\n output_features: Number of output features (N).\n blocksize: Quantization block size (64 or 128).\n quant_type: FP4 (1) or NF4 (2).\n\nReturns:\n Output tensor [..., N].",
89
+ "signature": {
90
+ "parameters": [
91
+ {
92
+ "name": "x",
93
+ "kind": "POSITIONAL_OR_KEYWORD",
94
+ "default": null,
95
+ "annotation": "torch.Tensor"
96
+ },
97
+ {
98
+ "name": "w",
99
+ "kind": "POSITIONAL_OR_KEYWORD",
100
+ "default": null,
101
+ "annotation": "torch.Tensor"
102
+ },
103
+ {
104
+ "name": "absmax",
105
+ "kind": "POSITIONAL_OR_KEYWORD",
106
+ "default": null,
107
+ "annotation": "torch.Tensor"
108
+ },
109
+ {
110
+ "name": "output_features",
111
+ "kind": "POSITIONAL_OR_KEYWORD",
112
+ "default": null,
113
+ "annotation": "int"
114
+ },
115
+ {
116
+ "name": "blocksize",
117
+ "kind": "POSITIONAL_OR_KEYWORD",
118
+ "default": "64",
119
+ "annotation": "int"
120
+ },
121
+ {
122
+ "name": "quant_type",
123
+ "kind": "POSITIONAL_OR_KEYWORD",
124
+ "default": "2",
125
+ "annotation": "int"
126
+ }
127
+ ],
128
+ "return_annotation": "torch.Tensor"
129
+ }
130
+ },
131
+ {
132
+ "name": "gemm_4bit",
133
+ "qualname": "gemm_4bit",
134
+ "module": "_bitsandbytes_mps_metal_fe2bb66",
135
+ "kind": "function",
136
+ "doc": "Fused matrix-matrix multiply with 4-bit quantized transposed weights.\n\nComputes Y = X @ dequant(W).T, where W is blockwise NF4/FP4 quantized.\n\nArgs:\n x: Input matrix [..., M, K] on MPS device.\n w: Packed weight matrix [N, K/2] (uint8) on MPS device.\n absmax: Per-block scales [N, ceil(K/blocksize)] (float32).\n output_features: Number of output features (N).\n blocksize: Quantization block size (64 or 128).\n quant_type: FP4 (1) or NF4 (2).\n\nReturns:\n Output tensor [..., M, N].",
137
+ "signature": {
138
+ "parameters": [
139
+ {
140
+ "name": "x",
141
+ "kind": "POSITIONAL_OR_KEYWORD",
142
+ "default": null,
143
+ "annotation": "torch.Tensor"
144
+ },
145
+ {
146
+ "name": "w",
147
+ "kind": "POSITIONAL_OR_KEYWORD",
148
+ "default": null,
149
+ "annotation": "torch.Tensor"
150
+ },
151
+ {
152
+ "name": "absmax",
153
+ "kind": "POSITIONAL_OR_KEYWORD",
154
+ "default": null,
155
+ "annotation": "torch.Tensor"
156
+ },
157
+ {
158
+ "name": "output_features",
159
+ "kind": "POSITIONAL_OR_KEYWORD",
160
+ "default": null,
161
+ "annotation": "int"
162
+ },
163
+ {
164
+ "name": "blocksize",
165
+ "kind": "POSITIONAL_OR_KEYWORD",
166
+ "default": "64",
167
+ "annotation": "int"
168
+ },
169
+ {
170
+ "name": "quant_type",
171
+ "kind": "POSITIONAL_OR_KEYWORD",
172
+ "default": "2",
173
+ "annotation": "int"
174
+ }
175
+ ],
176
+ "return_annotation": "torch.Tensor"
177
+ }
178
+ },
179
+ {
180
+ "name": "linear_4bit",
181
+ "qualname": "linear_4bit",
182
+ "module": "_bitsandbytes_mps_metal_fe2bb66",
183
+ "kind": "function",
184
+ "doc": "4-bit quantized linear layer (auto-selects GEMV or GEMM).\n\nArgs:\n x: Input tensor on MPS device.\n w: Packed weight [N, K/2] (uint8).\n absmax: Scales [N, ceil(K/blocksize)] (float32).\n output_features: N.\n blocksize: 64 or 128.\n quant_type: FP4 (1) or NF4 (2).\n bias: Optional bias [N].\n\nReturns:\n Output tensor.",
185
+ "signature": {
186
+ "parameters": [
187
+ {
188
+ "name": "x",
189
+ "kind": "POSITIONAL_OR_KEYWORD",
190
+ "default": null,
191
+ "annotation": "torch.Tensor"
192
+ },
193
+ {
194
+ "name": "w",
195
+ "kind": "POSITIONAL_OR_KEYWORD",
196
+ "default": null,
197
+ "annotation": "torch.Tensor"
198
+ },
199
+ {
200
+ "name": "absmax",
201
+ "kind": "POSITIONAL_OR_KEYWORD",
202
+ "default": null,
203
+ "annotation": "torch.Tensor"
204
+ },
205
+ {
206
+ "name": "output_features",
207
+ "kind": "POSITIONAL_OR_KEYWORD",
208
+ "default": null,
209
+ "annotation": "int"
210
+ },
211
+ {
212
+ "name": "blocksize",
213
+ "kind": "POSITIONAL_OR_KEYWORD",
214
+ "default": "64",
215
+ "annotation": "int"
216
+ },
217
+ {
218
+ "name": "quant_type",
219
+ "kind": "POSITIONAL_OR_KEYWORD",
220
+ "default": "2",
221
+ "annotation": "int"
222
+ },
223
+ {
224
+ "name": "bias",
225
+ "kind": "POSITIONAL_OR_KEYWORD",
226
+ "default": "None",
227
+ "annotation": "torch.Tensor | None"
228
+ }
229
+ ],
230
+ "return_annotation": "torch.Tensor"
231
+ }
232
+ }
233
+ ],
234
+ "layers": []
235
+ }
build/torch212-metal-aarch64-darwin/{_bitsandbytes_mps_metal_addf474.abi3.so → _bitsandbytes_mps_metal_fe2bb66.abi3.so} RENAMED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:3fe8b289b486755530f91f3faa6991989569a8092e095646756bb93301b6ac4d
3
  size 845464
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:883e1a8230330c980cf1d5a344f9ebfcefbf921976a33db34311aa1b45736d4e
3
  size 845464
build/torch212-metal-aarch64-darwin/_ops.py CHANGED
@@ -1,9 +1,9 @@
1
  import torch
2
- from . import _bitsandbytes_mps_metal_addf474
3
- ops = torch.ops._bitsandbytes_mps_metal_addf474
4
 
5
  def add_op_namespace_prefix(op_name: str):
6
  """
7
  Prefix op by namespace.
8
  """
9
- return f"_bitsandbytes_mps_metal_addf474::{op_name}"
 
1
  import torch
2
+ from . import _bitsandbytes_mps_metal_fe2bb66
3
+ ops = torch.ops._bitsandbytes_mps_metal_fe2bb66
4
 
5
  def add_op_namespace_prefix(op_name: str):
6
  """
7
  Prefix op by namespace.
8
  """
9
+ return f"_bitsandbytes_mps_metal_fe2bb66::{op_name}"
build/torch212-metal-aarch64-darwin/metadata.json CHANGED
@@ -1,7 +1,8 @@
1
  {
2
  "name": "bitsandbytes-mps",
3
- "id": "_bitsandbytes_mps_metal_addf474",
4
  "version": 1,
 
5
  "license": "MIT",
6
  "python-depends": [],
7
  "kernel-depends": [],
@@ -12,18 +13,19 @@
12
  "algorithm": "sha256",
13
  "files": {
14
  "__init__.py": "rs6BtEpr3t1l0M2Rvw1/OjtqW+WocRyKcp8tNRLui9M=",
15
- "_bitsandbytes_mps_metal_addf474.abi3.so": "P+iyibSGdVUw+R8/qmmRmJVpqAkuCVZGdWu5MwG2rE0=",
16
- "_ops.py": "l8HruWkDA+SB/OwWA5dmr6G7n6Fk8KstXjEqUH2rh34="
 
17
  }
18
  },
19
  "provenance": {
20
  "kernel-builder": {
21
- "version": "0.17.0-dev0",
22
- "commit": "081dcd473f8eca27226eef1f9c47c45b86c756b5",
23
  "dirty": false
24
  },
25
  "kernel": {
26
- "commit": "addf4741fafb55b4c101b15985dfaeea7c7c2f3a",
27
  "dirty": false
28
  }
29
  }
 
1
  {
2
  "name": "bitsandbytes-mps",
3
+ "id": "_bitsandbytes_mps_metal_fe2bb66",
4
  "version": 1,
5
+ "kernels-minver": "0.14.0",
6
  "license": "MIT",
7
  "python-depends": [],
8
  "kernel-depends": [],
 
13
  "algorithm": "sha256",
14
  "files": {
15
  "__init__.py": "rs6BtEpr3t1l0M2Rvw1/OjtqW+WocRyKcp8tNRLui9M=",
16
+ "_bitsandbytes_mps_metal_fe2bb66.abi3.so": "iD4agjAzDJgM8dWjRPnr/O+/khl2oz2zQxGqG0VzbU4=",
17
+ "_ops.py": "KZ69wBm+uvagRpIJvyCWGxE7d3dVr9+r6zz16TO61lE=",
18
+ "symbols.json": "bp3qE0B/ix7Cb1dc0RFiDEzrr9mKJIC/lZgwMhDjkTI="
19
  }
20
  },
21
  "provenance": {
22
  "kernel-builder": {
23
+ "version": "0.18.0-dev0",
24
+ "commit": "d054906a13710b811b96697b4635f03020842733",
25
  "dirty": false
26
  },
27
  "kernel": {
28
+ "commit": "fe2bb66fee6c2a77eccf08a0508dc57428d488ed",
29
  "dirty": false
30
  }
31
  }
build/torch212-metal-aarch64-darwin/metadata.json.sigstore CHANGED
@@ -1 +1 @@
1
- {"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"MIIHYTCCBuegAwIBAgIUJuIK1d4c5gIdJH5vqFpznGQ4CVUwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwODI3MDY0MzU0WhcNMjYwODI3MDY1MzU0WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEDexVgE+2Z28SPmtOs4P/mkMxJw+kqhe7uq1sDu+hNMw682n5Jkw7uITMLq7MaoFqEhM6gFelP4Zw3CpYljaHhqOCBgYwggYCMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUW8fdtLEg/JlNq131G7wLUpxMDoMwHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wbwYDVR0RAQH/BGUwY4ZhaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLW1hYy55YW1sQHJlZnMvaGVhZHMvbWFpbjA5BgorBgEEAYO/MAEBBCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMB8GCisGAQQBg78wAQIEEXdvcmtmbG93X2Rpc3BhdGNoMDYGCisGAQQBg78wAQMEKGFkZGY0NzQxZmFmYjU1YjRjMTAxYjE1OTg1ZGZhZWVhN2M3YzJmM2EwGwYKKwYBBAGDvzABBAQNQnVpbGQgKG1hY09TKTArBgorBgEEAYO/MAEFBB1odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTAdBgorBgEEAYO/MAEGBA9yZWZzL2hlYWRzL21haW4wOwYKKwYBBAGDvzABCAQtDCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMHEGCisGAQQBg78wAQkEYwxhaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLW1hYy55YW1sQHJlZnMvaGVhZHMvbWFpbjA4BgorBgEEAYO/MAEKBCoMKGFkZGY0NzQxZmFmYjU1YjRjMTAxYjE1OTg1ZGZhZWVhN2M3YzJmM2EwHQYKKwYBBAGDvzABCwQPDA1naXRodWItaG9zdGVkMEAGCisGAQQBg78wAQwEMgwwaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MDgGCisGAQQBg78wAQ0EKgwoYWRkZjQ3NDFmYWZiNTViNGMxMDFiMTU5ODVkZmFlZWE3YzdjMmYzYTAfBgorBgEEAYO/MAEOBBEMD3JlZnMvaGVhZHMvbWFpbjAaBgorBgEEAYO/MAEPBAwMCjEwNzE0NzU1MjkwLgYKKwYBBAGDvzABEAQgDB5odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2UwGAYKKwYBBAGDvzABEQQKDAgyNTcyMDc0MzBxBgorBgEEAYO/MAESBGMMYWh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS8uZ2l0aHViL3dvcmtmbG93cy9idWlsZC1tYWMueWFtbEByZWZzL2hlYWRzL21haW4wOAYKKwYBBAGDvzABEwQqDChhZGRmNDc0MWZhZmI1NWI0YzEwMWIxNTk4NWRmYWVlYTdjN2MyZjNhMCEGCisGAQQBg78wARQEEwwRd29ya2Zsb3dfZGlzcGF0Y2gwZAYKKwYBBAGDvzABFQRWDFRodHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvYWN0aW9ucy9ydW5zLzMzMDQ1MzYxNTQ5L2F0dGVtcHRzLzEwFgYKKwYBBAGDvzABFgQIDAZwdWJsaWMwRgYKKwYBBAGDvzABGAQ4DDZyZXBvOmh1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5OnJlZjpyZWZzL2hlYWRzL21haW4wgYoGCisGAQQB1nkCBAIEfAR6AHgAdgDdPTBqxscRMmMZHhyZZzcCokpeuN48rf+HinKALynujgAAAaBB9fnAAAAEAwBHMEUCIQDjAP0vZQGWJGU/6PlQbsYxtXmmEGgqs+4a3Gdy+erqjwIgHHaH3hh81Wppic5acbXNTdpUEoTvMjbDQK9BFznInkgwCgYIKoZIzj0EAwMDaAAwZQIwDAEtsX08EtS0sVwqKqLVU8A9+SsW++sIKeyGbFMQlin5e9ZMKO2XHxZTkiVkqQd3AjEAlYVRqTNEKhvUfmN4oAGqsJW9NWhqbqwAs8xDNg7geNd+WbdTW7tDaVSrY5LG2Bg0"},"tlogEntries":[{"logIndex":"2613712877","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1787813034","inclusionPromise":{"signedEntryTimestamp":"MEQCIHwUqQ4w+4lCWpp3bbq/sJoAATquPepTpGJpkMErNGPRAiBqiKd1qxBkJTagML1n4Rb5Ay8wPiuEv752cMLrOWbScA=="},"inclusionProof":{"logIndex":"2491808615","rootHash":"Kju03UDbNW4hNxEQsu57GVcUAcaM9aAW9o3CuKiwpAw=","treeSize":"2491808628","hashes":["uwsHFDqfyGjTI/jPn2iiNzxJTH74tWhNauHG+BJlaS0=","1uEMcgoM5MOicWmtn47Ecwsb6vJtrmJLP5rktkK+REM=","40Uj98RAZvtrARp9JoxzYEGGz6y5ogTAbBHGHz2lbqs=","/lpNN5gjY43o7/q+xZHEzi4vLyG2at8Yz29vCXcruuo=","+wWBV/2Yw6cQzt0AGQEZ4W9gAbFYPUvTSTarZ3mHkg8=","NyZSBDzBtDB4pdj8bYN2PiKD8nODII9Ty9mDI/u4Sng=","lAx0jUGyq9HZlnmJKxTy9nICT9TFIbizYlRYQl3newk=","7RpkkHRl02EsXlK2RVA8unRJMslzIN2RCPaXT251K/E=","fSoPklAC67Y4qGkPPJ0tgN9Esk1pOgheH82inh4GoeM=","vDO4mFDFDlM6fOA7cP9WVtFoAUQVy41uBHeqzT9XUOo=","32KhxEZQsHzhvj5kywpcHXpDe/PdUU5A3cXJaatX5iI=","o4VrcXFJgdy7xEexAoHr67fLnbbPCK6U1/wLV0KLCqc=","83YZ4v/yz1J45+azokpOB8uoQ/Pr1iSMUGjfAg+xPc0=","wP53eMxZdmktSvKrqWMYOGzrZyD5NAaEMhRCrykR34Y=","v9xqun9zxtoZrifGMxqDEeiCg5lbscvvJiAec8LqOsQ=","E7AEzQrWJL3fkxC6doP8J8+b69/ILUYXJjzAAPrp8Oo=","7TfDCaMWgEwSJEZd/e33b24919rF4IDJLmbqNNRNhZs=","0HfdxDt/zGugZLIuHasrdLEW9s8OaTykSSqBEDFQXdw=","SndbMKVtcTenAkwi2JBfGzD+mhexp1qJbRIY+A1JRIU=","xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n2491808628\nKju03UDbNW4hNxEQsu57GVcUAcaM9aAW9o3CuKiwpAw=\n\n— rekor.sigstore.dev wNI9ajBGAiEAqMDe0wruxzZxkHKdRIFJ/7Nshs8YCusWpz/CRm7+XNsCIQDHdplLW4tjwHzU7YfXLmtgzx0Hyh2knLaAP29jUV1Fkg==\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiJjOTg1YjI2YjY4MzgyZjA4N2VmYmY1NmI0OGIxZDE4ZDdkMzQzNjY2ZDY3ZDZhN2RlYWMwOTViZWQyYjJjMzIyIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FWUNJUUNMblJCcjJVZUpETkFjSno2N3BGOEFUdTRUeFQ4WFhIZTAxTGF3NFZMMTFRSWhBTEZZU1luMVVhRTRDUkRkVXdpY3llbkZwTVNjcVo1UVloZmVZRFNyM1NyVCIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaFpWRU5EUW5WbFowRjNTVUpCWjBsVlNuVkpTekZrTkdNMVowbGtTa2cxZG5GR2NIcHVSMUUwUTFaVmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDlFU1ROTlJGa3dUWHBWTUZkb1kwNU5hbGwzVDBSSk0wMUVXVEZOZWxVd1YycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZFWlhoV1owVXJNbG95T0ZOUWJYUlBjelJRTDIxclRYaEtkeXRyY1dobE4zVnhNWE1LUkhVcmFFNU5kelk0TW00MVNtdDNOM1ZKVkUxTWNUZE5ZVzlHY1VWb1RUWm5SbVZzVURSYWR6TkRjRmxzYW1GSWFIRlBRMEpuV1hkbloxbERUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlZYT0daa0NuUk1SV2N2U214T2NURXpNVWMzZDB4VmNIaE5SRzlOZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDJKM1dVUldVakJTUVZGSUwwSkhWWGRaTkZwb1lVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKb01Wb3laSEJpYldSdFdWZE9iQXBNTW5Sc1kyMDFiR0pJVFhSWk1qbDBZbGhXZFdGWVVqVk1lVFZ1WVZoU2IyUlhTWFprTWpsNVlUSmFjMkl6WkhwTU1rb3hZVmQ0YTB4WE1XaFplVFUxQ2xsWE1YTlJTRXBzV201TmRtRkhWbWhhU0UxMllsZEdjR0pxUVRWQ1oyOXlRbWRGUlVGWlR5OU5RVVZDUWtOMGIyUklVbmRqZW05MlRETlNkbUV5Vm5VS1RHMUdhbVJIYkhaaWJrMTFXakpzTUdGSVZtbGtXRTVzWTIxT2RtSnVVbXhpYmxGMVdUSTVkRTFDT0VkRGFYTkhRVkZSUW1jM09IZEJVVWxGUlZoa2RncGpiWFJ0WWtjNU0xZ3lVbkJqTTBKb1pFZE9iMDFFV1VkRGFYTkhRVkZSUW1jM09IZEJVVTFGUzBkR2ExcEhXVEJPZWxGNFdtMUdiVmxxVlRGWmFsSnFDazFVUVhoWmFrVXhUMVJuTVZwSFdtaGFWMVpvVGpKTk0xbDZTbTFOTWtWM1IzZFpTMHQzV1VKQ1FVZEVkbnBCUWtKQlVVNVJibFp3WWtkUlowdEhNV2dLV1RBNVZFdFVRWEpDWjI5eVFtZEZSVUZaVHk5TlFVVkdRa0l4YjJSWFpHNWhWelZ1V20xR2FscFRPWEphV0VwMVdsZDRla3hYVG5aaVZ6RXhZbTFzTUFwbFZFRmtRbWR2Y2tKblJVVkJXVTh2VFVGRlIwSkJPWGxhVjFwNlRESm9iRmxYVW5wTU1qRm9ZVmMwZDA5M1dVdExkMWxDUWtGSFJIWjZRVUpEUVZGMENrUkRkRzlrU0ZKM1kzcHZka3d6VW5aaE1sWjFURzFHYW1SSGJIWmliazExV2pKc01HRklWbWxrV0U1c1kyMU9kbUp1VW14aWJsRjFXVEk1ZEUxSVJVY0tRMmx6UjBGUlVVSm5OemgzUVZGclJWbDNlR2hoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiQXBqYlRWc1lraE5kRmt5T1hSaVdGWjFZVmhTTlV4NU5XNWhXRkp2WkZkSmRtUXlPWGxoTWxwellqTmtla3d5U2pGaFYzaHJURmN4YUZsNU5UVlpWekZ6Q2xGSVNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJORUpuYjNKQ1owVkZRVmxQTDAxQlJVdENRMjlOUzBkR2ExcEhXVEJPZWxGNFdtMUdiVmxxVlRFS1dXcFNhazFVUVhoWmFrVXhUMVJuTVZwSFdtaGFWMVpvVGpKTk0xbDZTbTFOTWtWM1NGRlpTMHQzV1VKQ1FVZEVkbnBCUWtOM1VWQkVRVEZ1WVZoU2J3cGtWMGwwWVVjNWVtUkhWbXROUlVGSFEybHpSMEZSVVVKbk56aDNRVkYzUlUxbmQzZGhTRkl3WTBoTk5reDVPVzVoV0ZKdlpGZEpkVmt5T1hSTU1tZ3hDbG95WkhCaWJXUnRXVmRPYkV3eWRHeGpiVFZzWWtoTmRGa3lPWFJpV0ZaMVlWaFNOVTFFWjBkRGFYTkhRVkZSUW1jM09IZEJVVEJGUzJkM2IxbFhVbXNLV21wUk0wNUVSbTFaVjFwcFRsUldhVTVIVFhoTlJFWnBUVlJWTlU5RVZtdGFiVVpzV2xkRk0xbDZaR3BOYlZsNldWUkJaa0puYjNKQ1owVkZRVmxQTHdwTlFVVlBRa0pGVFVRelNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJZVUpuYjNKQ1owVkZRVmxQTDAxQlJWQkNRWGROUTJwRmQwNTZSVEJPZWxVeENrMXFhM2RNWjFsTFMzZFpRa0pCUjBSMmVrRkNSVUZSWjBSQ05XOWtTRkozWTNwdmRrd3laSEJrUjJneFdXazFhbUl5TUhaaFNGWnVXakpzZFZveVdtZ0tXVEpWZDBkQldVdExkMWxDUWtGSFJIWjZRVUpGVVZGTFJFRm5lVTVVWTNsTlJHTXdUWHBDZUVKbmIzSkNaMFZGUVZsUEwwMUJSVk5DUjAxTldWZG9NQXBrU0VKNlQyazRkbG95YkRCaFNGWnBURzFPZG1KVE9XOWtWMlJ1WVZjMWJscHRSbXBhVXpseVdsaEtkVnBYZUhwTVYwNTJZbGN4TVdKdGJEQmxVemgxQ2xveWJEQmhTRlpwVEROa2RtTnRkRzFpUnprelkzazVhV1JYYkhOYVF6RjBXVmROZFdWWFJuUmlSVUo1V2xkYWVrd3lhR3haVjFKNlRESXhhR0ZYTkhjS1QwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWM1VYRkVRMmhvV2tkU2JVNUVZekJOVjFwb1dtMUpNVTVYU1RCWmVrVjNUVmRKZUU1VWF6Uk9WMUp0V1ZkV2JBcFpWR1JxVGpKTmVWcHFUbWhOUTBWSFEybHpSMEZSVVVKbk56aDNRVkpSUlVWM2QxSmtNamw1WVRKYWMySXpaR1phUjJ4NlkwZEdNRmt5WjNkYVFWbExDa3QzV1VKQ1FVZEVkbnBCUWtaUlVsZEVSbEp2WkVoU2QyTjZiM1pNTW1Sd1pFZG9NVmxwTldwaU1qQjJZVWhXYmxveWJIVmFNbHBvV1RKVmRtRXlWbmtLWW0xV2MyTjVNV3BpTWpGMFpGYzFjR1JJYTNaWlYwNHdZVmM1ZFdONU9YbGtWelY2VEhwTmVrMUVVVEZOZWxsNFRsUlJOVXd5UmpCa1IxWjBZMGhTZWdwTWVrVjNSbWRaUzB0M1dVSkNRVWRFZG5wQlFrWm5VVWxFUVZwM1pGZEtjMkZYVFhkU1oxbExTM2RaUWtKQlIwUjJla0ZDUjBGUk5FUkVXbmxhV0VKMkNrOXRhREZhTW1Sd1ltMWtiVmxYVG14TU1uUnNZMjAxYkdKSVRYUlpNamwwWWxoV2RXRllValZQYmtwc1dtcHdlVnBYV25wTU1taHNXVmRTZWt3eU1XZ0tZVmMwZDJkWmIwZERhWE5IUVZGUlFqRnVhME5DUVVsRlprRlNOa0ZJWjBGa1owUmtVRlJDY1hoelkxSk5iVTFhU0doNVdscDZZME52YTNCbGRVNDBPQXB5Wml0SWFXNUxRVXg1Ym5WcVowRkJRV0ZDUWpsbWJrRkJRVUZGUVhkQ1NFMUZWVU5KVVVScVFWQXdkbHBSUjFkS1IxVXZObEJzVVdKeldYaDBXRzF0Q2tWSFozRnpLelJoTTBka2VTdGxjbkZxZDBsblNFaGhTRE5vYURneFYzQndhV00xWVdOaVdFNVVaSEJWUlc5VWRrMXFZa1JSU3psQ1JucHVTVzVyWjNjS1EyZFpTVXR2V2tsNmFqQkZRWGROUkdGQlFYZGFVVWwzUkVGRmRITllNRGhGZEZNd2MxWjNjVXR4VEZaVk9FRTVLMU56VnlzcmMwbExaWGxIWWtaTlVRcHNhVzQxWlRsYVRVdFBNbGhJZUZwVWEybFdhM0ZSWkROQmFrVkJiRmxXVW5GVVRrVkxhSFpWWm0xT05HOUJSM0Z6U2xjNVRsZG9jV0p4ZDBGek9IaEVDazVuTjJkbFRtUXJWMkprVkZjM2RFUmhWbE55V1RWTVJ6SkNaekFLTFMwdExTMUZUa1FnUTBWU1ZFbEdTVU5CVkVVdExTMHRMUW89In19fX0="}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyTADAgEAMIICwAYJKoZIhvcNAQcCoIICsTCCAq0CAQMxDTALBglghkgBZQMEAgEwgbcGCyqGSIb3DQEJEAEEoIGnBIGkMIGhAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgVcKp3+UMVsrjTAtySCYmPCX4R1iDCZ4pnsXRN9Ymkn0CFGu/JxSettGMOgelHn0hFK/oOy0nGA8yMDI2MDgyNzA2NDM1NFowAwIBAaAypDAwLjEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MRUwEwYDVQQDEwxzaWdzdG9yZS10c2GgADGCAdswggHXAgEBMFEwOTEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MSAwHgYDVQQDExdzaWdzdG9yZS10c2Etc2VsZnNpZ25lZAIUOhNULwyQYe68wUMvy4qOiyojiwwwCwYJYIZIAWUDBAIBoIH8MBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAcBgkqhkiG9w0BCQUxDxcNMjYwODI3MDY0MzU0WjAvBgkqhkiG9w0BCQQxIgQg1tQGlAJTgvznSdayZ54vQqfE7TWiwl9qv2JVVKwVwMwwgY4GCyqGSIb3DQEJEAIvMX8wfTB7MHkEIIX5J7wHq2LKw7RDVsEO/IGyxog/2nq55thw2dE6zQW3MFUwPaQ7MDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAoGCCqGSM49BAMCBGcwZQIxALJY/sHdmwRQBOmVfyW3E3B0rBTH+AxW7jEFLF1oNDZxfX+F3hoBWAS75is3tWcjbQIwYmGZfyVFiBF508MBjuubl8JyRvwR1g6dZzSaEEOew43YFJ8nFcSvk75UpFeOcxKS"}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"yYWya2g4Lwh++/VrSLHRjX00NmbWfWp96sCVvtKywyI="},"signature":"MEYCIQCLnRBr2UeJDNAcJz67pF8ATu4TxT8XXHe01Law4VL11QIhALFYSYn1UaE4CRDdUwicyenFpMScqZ5QYhfeYDSr3SrT"}}
 
1
+ {"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"MIIHQjCCBsigAwIBAgIUNldr4zfiP6DsnlXf67swmFvK02QwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYxMDE5MTEwMzM4WhcNMjYxMDE5MTExMzM4WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEDY83yNC/cybgZcwwLOpcFCbaq0avVPCtTrkJqRDO9c2gZXVL7wlYAKLaecXdmCjBDrAGi4jnjgkz3XXX8J8Te6OCBecwggXjMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAfBgNVHSMEGDAWgBTf0+nPViQRlvmo2OkoVaLGLhhkPzBvBgNVHREBAf8EZTBjhmFodHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQtbWFjLnlhbWxAcmVmcy9oZWFkcy9tYWluMDkGCisGAQQBg78wAQEEK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wHwYKKwYBBAGDvzABAgQRd29ya2Zsb3dfZGlzcGF0Y2gwNgYKKwYBBAGDvzABAwQoZmUyYmI2NmZlZTZjMmE3N2VjY2YwOGEwNTA4ZGM1NzQyOGQ0ODhlZDAbBgorBgEEAYO/MAEEBA1CdWlsZCAobWFjT1MpMCsGCisGAQQBg78wAQUEHWh1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MB0GCisGAQQBg78wAQYED3JlZnMvaGVhZHMvbWFpbjA7BgorBgEEAYO/MAEIBC0MK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wcQYKKwYBBAGDvzABCQRjDGFodHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQtbWFjLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wAQoEKgwoZmUyYmI2NmZlZTZjMmE3N2VjY2YwOGEwNTA4ZGM1NzQyOGQ0ODhlZDAdBgorBgEEAYO/MAELBA8MDWdpdGh1Yi1ob3N0ZWQwQAYKKwYBBAGDvzABDAQyDDBodHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkwOAYKKwYBBAGDvzABDQQqDChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMB8GCisGAQQBg78wAQ4EEQwPcmVmcy9oZWFkcy9tYWluMBoGCisGAQQBg78wAQ8EDAwKMTA3MTQ3NTUyOTAuBgorBgEEAYO/MAEQBCAMHmh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZTAYBgorBgEEAYO/MAERBAoMCDI1NzIwNzQzMHEGCisGAQQBg78wARIEYwxhaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLW1hYy55YW1sQHJlZnMvaGVhZHMvbWFpbjA4BgorBgEEAYO/MAETBCoMKGZlMmJiNjZmZWU2YzJhNzdlY2NmMDhhMDUwOGRjNTc0MjhkNDg4ZWQwIQYKKwYBBAGDvzABFAQTDBF3b3JrZmxvd19kaXNwYXRjaDBkBgorBgEEAYO/MAEVBFYMVGh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS9hY3Rpb25zL3J1bnMvMzkyMzk1MjcyOTIvYXR0ZW1wdHMvMTAWBgorBgEEAYO/MAEWBAgMBnB1YmxpYzBGBgorBgEEAYO/MAEYBDgMNnJlcG86aHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHk6cmVmOnJlZnMvaGVhZHMvbWFpbjCBigYKKwYBBAHWeQIEAgR8BHoAeAB2AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABoVPUz5MAAAQDAEcwRQIgc7OMdQBEkOfONGPVXfcbu3w/mvouTfiK3a1LcGErlzkCIQDQZ5oNwOWbLMS7lm51C9+Tk3zcuREWUp0DFMci/chptTAKBggqhkjOPQQDAwNoADBlAjAaEXoSRVwAa9tpry9dmR6R7LpkcYRS5Oa0patC80Qr8sq40AQiPMDOLmT0+Q7p7P8CMQDFzepDjc7pUpRtN5voQAgC9h4GH/Fm3ji+AbU0Lk8Qi3csS6hNjAbc7r22FxAdjd8="},"tlogEntries":[{"logIndex":"3320111057","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1792407818","inclusionPromise":{"signedEntryTimestamp":"MEUCIQCV2vMRdfoN3r2rdAHAWaASJFDvhjs15s0iu0yXxMp6jAIgE16+vh9h9pR29gCdEkP3bzs5STs35p4oIfI4sIQpVeI="},"inclusionProof":{"logIndex":"3198206795","rootHash":"I7tA1g8Y4ajoMm5AImTKBU9SocOISh15vfzKsgT975c=","treeSize":"3198206796","hashes":["B4mUNnxRNbmht93iwYP0fIhQnG/jkHuoDWtVx+NhRWU=","BAwONFvd1Q9YQmBqbbe1QzjO+1fzkezY0eohMdfzwCk=","7W/mel54afTLShyExfaiJv/jYnMLvTCo75KAjPoKIso=","H72JElou4X1aDkH/7DYdKiVluCgux6gyrbH6P7GOHv0=","gYfBRC310JhNu8LpaMHNYoVqAKzPyEqWf4EziUHx4MY=","CwBCuqAkeVZhjK66R5XeutytxmFWSlFTPAVBKldfDFA=","f4MktXqhBPk7ruDBxwgqTvXa7eCNzak9cUObXS0eTxI=","OlLDeTiZ1vIMDel4vGDtbNVnrFnzDe1MFV5rBN5Ep4o=","uCZQe757l2sS1c05Y7TzOwEm+X8MeGLIUCkEOmFVOz4=","nyQV/+cWQUG5Hb2PKjQQNkQIJmz2qzAZKBQlkHGIknM=","G+nk7mgE5h6dUmv2UY7NDJrY3WvrZY31raaO1AETt+o=","qlTWNDzERnTBQVcHHXXVPjiUP0SsikGxfcxVlgqVFDo=","gg9GNApNke3+zNhl4tsWtmIycCFrOMCB3lys6XuSQNQ=","NlOclldmKPA1tMKIskqHAwuQDYHp31YwpK+OOMrMccc=","qxzHanAzz57SDdmJe0B7bJK72NTIBbwEMGBBKvDOROw=","xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n3198206796\nI7tA1g8Y4ajoMm5AImTKBU9SocOISh15vfzKsgT975c=\n\n— rekor.sigstore.dev wNI9ajBGAiEAusO6BJnaVsSG1MRLcY1LiO32DeiqbmPJS0529VZR6D0CIQDL92L3RV/uAPZz4vwQgDGCF5TO0ZNRcFZuj9P7dcY+2A==\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiIyMGI4MGVmMDU0ZWQ5ZGNjMDZmOGYxY2I3Y2YxNzUyNTdkYzA1Yzk0ZTQzMDE5NzEzYThlNTkwNjcxOWRkMTI0In19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FWUNJUUNZcURTVWw3enArSzR2b2E4TzY1WnJCZXFwcXhWTzdoUmdYZmpBVHl6WmVBSWhBTWdqaDAyNGFCMEtFWmV0dXNSOGZKT1hEbFdGSmFKd2NBWTZWcWZHY1VTQyIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaFJha05EUW5OcFowRjNTVUpCWjBsVlRteGtjalI2Wm1sUU5rUnpibXhZWmpZM2MzZHRSblpMTURKUmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFplRTFFUlRWTlZFVjNUWHBOTkZkb1kwNU5hbGw0VFVSRk5VMVVSWGhOZWswMFYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZFV1RnemVVNURMMk41WW1kYVkzZDNURTl3WTBaRFltRnhNR0YyVmxCRGRGUnlhMG9LY1ZKRVR6bGpNbWRhV0ZaTU4zZHNXVUZMVEdGbFkxaGtiVU5xUWtSeVFVZHBOR3B1YW1kcmVqTllXRmc0U2poVVpUWlBRMEpsWTNkbloxaHFUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXWkNaMDVXU0ZOTlJVZEVRVmRuUWxSbUNqQXJibEJXYVZGU2JIWnRiekpQYTI5V1lVeEhUR2hvYTFCNlFuWkNaMDVXU0ZKRlFrRm1PRVZhVkVKcWFHMUdiMlJJVW5kamVtOTJUREprY0dSSGFERUtXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWMllUSldlV0p0Vm5OamVURnFZakl4ZEdSWE5YQmtTR3QyVEcxa2NHUkhhREZaYVRrellqTktjZ3BhYlhoMlpETk5kbGx1Vm5CaVIxRjBZbGRHYWt4dWJHaGlWM2hCWTIxV2JXTjVPVzlhVjBaclkzazVkRmxYYkhWTlJHdEhRMmx6UjBGUlVVSm5OemgzQ2tGUlJVVkxNbWd3WkVoQ2VrOXBPSFprUnpseVdsYzBkVmxYVGpCaFZ6bDFZM2sxYm1GWVVtOWtWMG94WXpKV2VWa3lPWFZrUjFaMVpFTTFhbUl5TUhjS1NIZFpTMHQzV1VKQ1FVZEVkbnBCUWtGblVWSmtNamw1WVRKYWMySXpaR1phUjJ4NlkwZEdNRmt5WjNkT1oxbExTM2RaUWtKQlIwUjJla0ZDUVhkUmJ3cGFiVlY1V1cxSk1rNXRXbXhhVkZwcVRXMUZNMDR5Vm1wWk1sbDNUMGRGZDA1VVFUUmFSMDB4VG5wUmVVOUhVVEJQUkdoc1drUkJZa0puYjNKQ1owVkZDa0ZaVHk5TlFVVkZRa0V4UTJSWGJITmFRMEZ2WWxkR2FsUXhUWEJOUTNOSFEybHpSMEZSVVVKbk56aDNRVkZWUlVoWGFERmFNbVJ3WW0xa2JWbFhUbXdLVERKMGJHTnROV3hpU0UxMFdUSTVkR0pZVm5WaFdGSTFUVUl3UjBOcGMwZEJVVkZDWnpjNGQwRlJXVVZFTTBwc1dtNU5kbUZIVm1oYVNFMTJZbGRHY0FwaWFrRTNRbWR2Y2tKblJVVkJXVTh2VFVGRlNVSkRNRTFMTW1nd1pFaENlazlwT0haa1J6bHlXbGMwZFZsWFRqQmhWemwxWTNrMWJtRllVbTlrVjBveENtTXlWbmxaTWpsMVpFZFdkV1JETldwaU1qQjNZMUZaUzB0M1dVSkNRVWRFZG5wQlFrTlJVbXBFUjBadlpFaFNkMk42YjNaTU1tUndaRWRvTVZscE5Xb0tZakl3ZG1GSVZtNWFNbXgxV2pKYWFGa3lWWFpoTWxaNVltMVdjMk41TVdwaU1qRjBaRmMxY0dSSWEzWk1iV1J3WkVkb01WbHBPVE5pTTBweVdtMTRkZ3BrTTAxMldXNVdjR0pIVVhSaVYwWnFURzVzYUdKWGVFRmpiVlp0WTNrNWIxcFhSbXRqZVRsMFdWZHNkVTFFWjBkRGFYTkhRVkZSUW1jM09IZEJVVzlGQ2t0bmQyOWFiVlY1V1cxSk1rNXRXbXhhVkZwcVRXMUZNMDR5Vm1wWk1sbDNUMGRGZDA1VVFUUmFSMDB4VG5wUmVVOUhVVEJQUkdoc1drUkJaRUpuYjNJS1FtZEZSVUZaVHk5TlFVVk1Ra0U0VFVSWFpIQmtSMmd4V1dreGIySXpUakJhVjFGM1VVRlpTMHQzV1VKQ1FVZEVkbnBCUWtSQlVYbEVSRUp2WkVoU2R3cGplbTkyVERKa2NHUkhhREZaYVRWcVlqSXdkbUZJVm01YU1teDFXakphYUZreVZYWmhNbFo1WW0xV2MyTjVNV3BpTWpGMFpGYzFjR1JJYTNkUFFWbExDa3QzV1VKQ1FVZEVkbnBCUWtSUlVYRkVRMmh0V2xSS2FWbHFXVEphYlZac1RtMU5lVmxVWXpOYVYwNXFXbXBCTkZsVVFURk5SR2hyV1hwVk0wNUVTVFFLV2tSUk5FOUhWbXROUWpoSFEybHpSMEZSVVVKbk56aDNRVkUwUlVWUmQxQmpiVlp0WTNrNWIxcFhSbXRqZVRsMFdWZHNkVTFDYjBkRGFYTkhRVkZSUWdwbk56aDNRVkU0UlVSQmQwdE5WRUV6VFZSUk0wNVVWWGxQVkVGMVFtZHZja0puUlVWQldVOHZUVUZGVVVKRFFVMUliV2d3WkVoQ2VrOXBPSFphTW13d0NtRklWbWxNYlU1MllsTTViMlJYWkc1aFZ6VnVXbTFHYWxwVVFWbENaMjl5UW1kRlJVRlpUeTlOUVVWU1FrRnZUVU5FU1RGT2VrbDNUbnBSZWsxSVJVY0tRMmx6UjBGUlVVSm5OemgzUVZKSlJWbDNlR2hoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiQXBqYlRWc1lraE5kRmt5T1hSaVdGWjFZVmhTTlV4NU5XNWhXRkp2WkZkSmRtUXlPWGxoTWxwellqTmtla3d5U2pGaFYzaHJURmN4YUZsNU5UVlpWekZ6Q2xGSVNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJORUpuYjNKQ1owVkZRVmxQTDAxQlJWUkNRMjlOUzBkYWJFMXRTbWxPYWxwdFdsZFZNbGw2U21nS1RucGtiRmt5VG0xTlJHaG9UVVJWZDA5SFVtcE9WR013VFdwb2EwNUVaelJhVjFGM1NWRlpTMHQzV1VKQ1FVZEVkbnBCUWtaQlVWUkVRa1l6WWpOS2NncGFiWGgyWkRFNWEyRllUbmRaV0ZKcVlVUkNhMEpuYjNKQ1owVkZRVmxQTDAxQlJWWkNSbGxOVmtkb01HUklRbnBQYVRoMldqSnNNR0ZJVm1sTWJVNTJDbUpUT1c5a1YyUnVZVmMxYmxwdFJtcGFVemx5V2xoS2RWcFhlSHBNVjA1MllsY3hNV0p0YkRCbFV6bG9XVE5TY0dJeU5YcE1NMG94WW01TmRrMTZhM2tLVFhwck1VMXFZM2xQVkVsMldWaFNNRnBYTVhka1NFMTJUVlJCVjBKbmIzSkNaMFZGUVZsUEwwMUJSVmRDUVdkTlFtNUNNVmx0ZUhCWmVrSkhRbWR2Y2dwQ1owVkZRVmxQTDAxQlJWbENSR2ROVG01S2JHTkhPRFpoU0ZadVdqSnNkVm95V21oWk1sVjJZVEpXZVdKdFZuTmplVEZxWWpJeGRHUlhOWEJrU0dzMkNtTnRWbTFQYmtwc1dtNU5kbUZIVm1oYVNFMTJZbGRHY0dKcVEwSnBaMWxMUzNkWlFrSkJTRmRsVVVsRlFXZFNPRUpJYjBGbFFVSXlRVTR3T1UxSGNrY0tlSGhGZVZsNGEyVklTbXh1VG5kTGFWTnNOalF6YW5sMEx6UmxTMk52UVhaTFpUWlBRVUZCUW05V1VGVjZOVTFCUVVGUlJFRkZZM2RTVVVsbll6ZFBUUXBrVVVKRmEwOW1UMDVIVUZaWVptTmlkVE4zTDIxMmIzVlVabWxMTTJFeFRHTkhSWEpzZW10RFNWRkVVVm8xYjA1M1QxZGlURTFUTjJ4dE5URkRPU3RVQ21zemVtTjFVa1ZYVlhBd1JFWk5ZMmt2WTJod2RGUkJTMEpuWjNGb2EycFBVRkZSUkVGM1RtOUJSRUpzUVdwQllVVlliMU5TVm5kQllUbDBjSEo1T1dRS2JWSTJVamRNY0d0aldWSlROVTloTUhCaGRFTTRNRkZ5T0hOeE5EQkJVV2xRVFVSUFRHMVVNQ3RSTjNBM1VEaERUVkZFUm5wbGNFUnFZemR3VlhCU2RBcE9OWFp2VVVGblF6bG9ORWRJTDBadE0ycHBLMEZpVlRCTWF6aFJhVE5qYzFNMmFFNXFRV0pqTjNJeU1rWjRRV1JxWkRnOUNpMHRMUzB0UlU1RUlFTkZVbFJKUmtsRFFWUkZMUzB0TFMwSyJ9fX19"}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyTADAgEAMIICwAYJKoZIhvcNAQcCoIICsTCCAq0CAQMxDTALBglghkgBZQMEAgEwgbcGCyqGSIb3DQEJEAEEoIGnBIGkMIGhAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgR/EP2oKLjWFu7kQ6nTys1R//9t8cDpK/U+KbK5/ybSACFCdc99GLxtYYhX5AayAFLMRQ1py7GA8yMDI2MTAxOTExMDMzOFowAwIBAaAypDAwLjEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MRUwEwYDVQQDEwxzaWdzdG9yZS10c2GgADGCAdswggHXAgEBMFEwOTEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MSAwHgYDVQQDExdzaWdzdG9yZS10c2Etc2VsZnNpZ25lZAIUOhNULwyQYe68wUMvy4qOiyojiwwwCwYJYIZIAWUDBAIBoIH8MBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAcBgkqhkiG9w0BCQUxDxcNMjYxMDE5MTEwMzM4WjAvBgkqhkiG9w0BCQQxIgQgibhBR5aCSPVB0nmuHUL+jyWx1S7uEQCibYpCCNGfNsswgY4GCyqGSIb3DQEJEAIvMX8wfTB7MHkEIIX5J7wHq2LKw7RDVsEO/IGyxog/2nq55thw2dE6zQW3MFUwPaQ7MDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAoGCCqGSM49BAMCBGcwZQIxAJE+9qihUy28f28qpL0qQ2q8YKqIQibG2AI0ZlCdxbR4Tc0ouQz1mqb0F7LbIjJkpgIwZ116u5q1ryuAHuIVhlFp8+hR8pO6eO/dYhqRy5ke57z4EQQbJd0Sk10s+4x6bYIU"}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"ILgO8FTtncwG+PHLfPF1JX3AXJTkMBlxOo5ZBnGd0SQ="},"signature":"MEYCIQCYqDSUl7zp+K4voa8O65ZrBeqpqxVO7hRgXfjATyzZeAIhAMgjh024aB0KEZetusR8fJOXDlWFJaJwcAY6VqfGcUSC"}}
build/torch212-metal-aarch64-darwin/symbols.json ADDED
@@ -0,0 +1,235 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "schema_version": 1,
3
+ "module": "_bitsandbytes_mps_metal_fe2bb66",
4
+ "functions": [
5
+ {
6
+ "name": "quantize_4bit",
7
+ "qualname": "quantize_4bit",
8
+ "module": "_bitsandbytes_mps_metal_fe2bb66",
9
+ "kind": "function",
10
+ "doc": "Blockwise 4-bit quantization using NF4 or FP4 codebook.\n\nArgs:\n input: Input tensor on MPS device (float16, bfloat16, or float32).\n blocksize: Number of elements per quantization block (64 or 128).\n quant_type: FP4 (1) or NF4 (2).\n\nReturns:\n Tuple of (packed, absmax):\n packed: uint8 tensor of packed 4-bit values [numel/2].\n absmax: float32 tensor of per-block max absolute values.",
11
+ "signature": {
12
+ "parameters": [
13
+ {
14
+ "name": "input",
15
+ "kind": "POSITIONAL_OR_KEYWORD",
16
+ "default": null,
17
+ "annotation": "torch.Tensor"
18
+ },
19
+ {
20
+ "name": "blocksize",
21
+ "kind": "POSITIONAL_OR_KEYWORD",
22
+ "default": "64",
23
+ "annotation": "int"
24
+ },
25
+ {
26
+ "name": "quant_type",
27
+ "kind": "POSITIONAL_OR_KEYWORD",
28
+ "default": "2",
29
+ "annotation": "int"
30
+ }
31
+ ],
32
+ "return_annotation": "Tuple[torch.Tensor, torch.Tensor]"
33
+ }
34
+ },
35
+ {
36
+ "name": "dequantize_4bit",
37
+ "qualname": "dequantize_4bit",
38
+ "module": "_bitsandbytes_mps_metal_fe2bb66",
39
+ "kind": "function",
40
+ "doc": "Blockwise 4-bit dequantization using NF4 or FP4 codebook.\n\nArgs:\n packed: uint8 tensor of packed 4-bit values.\n absmax: float32 tensor of per-block max absolute values.\n blocksize: Number of elements per quantization block (64 or 128).\n quant_type: FP4 (1) or NF4 (2).\n numel: Number of elements in the original tensor.\n If -1, inferred as packed.numel() * 2.\n output_dtype: Output scalar type.\n\nReturns:\n Dequantized tensor.",
41
+ "signature": {
42
+ "parameters": [
43
+ {
44
+ "name": "packed",
45
+ "kind": "POSITIONAL_OR_KEYWORD",
46
+ "default": null,
47
+ "annotation": "torch.Tensor"
48
+ },
49
+ {
50
+ "name": "absmax",
51
+ "kind": "POSITIONAL_OR_KEYWORD",
52
+ "default": null,
53
+ "annotation": "torch.Tensor"
54
+ },
55
+ {
56
+ "name": "blocksize",
57
+ "kind": "POSITIONAL_OR_KEYWORD",
58
+ "default": "64",
59
+ "annotation": "int"
60
+ },
61
+ {
62
+ "name": "quant_type",
63
+ "kind": "POSITIONAL_OR_KEYWORD",
64
+ "default": "2",
65
+ "annotation": "int"
66
+ },
67
+ {
68
+ "name": "numel",
69
+ "kind": "POSITIONAL_OR_KEYWORD",
70
+ "default": "-1",
71
+ "annotation": "int"
72
+ },
73
+ {
74
+ "name": "output_dtype",
75
+ "kind": "POSITIONAL_OR_KEYWORD",
76
+ "default": "torch.float16",
77
+ "annotation": "torch.dtype"
78
+ }
79
+ ],
80
+ "return_annotation": "torch.Tensor"
81
+ }
82
+ },
83
+ {
84
+ "name": "gemv_4bit",
85
+ "qualname": "gemv_4bit",
86
+ "module": "_bitsandbytes_mps_metal_fe2bb66",
87
+ "kind": "function",
88
+ "doc": "Fused matrix-vector multiply with 4-bit quantized weights.\n\nComputes y = dequant(W) @ x, where W is blockwise NF4/FP4 quantized.\n\nArgs:\n x: Input vector [..., K] on MPS device.\n w: Packed weight matrix [N, K/2] (uint8) on MPS device.\n absmax: Per-block scales [N, ceil(K/blocksize)] (float32).\n output_features: Number of output features (N).\n blocksize: Quantization block size (64 or 128).\n quant_type: FP4 (1) or NF4 (2).\n\nReturns:\n Output tensor [..., N].",
89
+ "signature": {
90
+ "parameters": [
91
+ {
92
+ "name": "x",
93
+ "kind": "POSITIONAL_OR_KEYWORD",
94
+ "default": null,
95
+ "annotation": "torch.Tensor"
96
+ },
97
+ {
98
+ "name": "w",
99
+ "kind": "POSITIONAL_OR_KEYWORD",
100
+ "default": null,
101
+ "annotation": "torch.Tensor"
102
+ },
103
+ {
104
+ "name": "absmax",
105
+ "kind": "POSITIONAL_OR_KEYWORD",
106
+ "default": null,
107
+ "annotation": "torch.Tensor"
108
+ },
109
+ {
110
+ "name": "output_features",
111
+ "kind": "POSITIONAL_OR_KEYWORD",
112
+ "default": null,
113
+ "annotation": "int"
114
+ },
115
+ {
116
+ "name": "blocksize",
117
+ "kind": "POSITIONAL_OR_KEYWORD",
118
+ "default": "64",
119
+ "annotation": "int"
120
+ },
121
+ {
122
+ "name": "quant_type",
123
+ "kind": "POSITIONAL_OR_KEYWORD",
124
+ "default": "2",
125
+ "annotation": "int"
126
+ }
127
+ ],
128
+ "return_annotation": "torch.Tensor"
129
+ }
130
+ },
131
+ {
132
+ "name": "gemm_4bit",
133
+ "qualname": "gemm_4bit",
134
+ "module": "_bitsandbytes_mps_metal_fe2bb66",
135
+ "kind": "function",
136
+ "doc": "Fused matrix-matrix multiply with 4-bit quantized transposed weights.\n\nComputes Y = X @ dequant(W).T, where W is blockwise NF4/FP4 quantized.\n\nArgs:\n x: Input matrix [..., M, K] on MPS device.\n w: Packed weight matrix [N, K/2] (uint8) on MPS device.\n absmax: Per-block scales [N, ceil(K/blocksize)] (float32).\n output_features: Number of output features (N).\n blocksize: Quantization block size (64 or 128).\n quant_type: FP4 (1) or NF4 (2).\n\nReturns:\n Output tensor [..., M, N].",
137
+ "signature": {
138
+ "parameters": [
139
+ {
140
+ "name": "x",
141
+ "kind": "POSITIONAL_OR_KEYWORD",
142
+ "default": null,
143
+ "annotation": "torch.Tensor"
144
+ },
145
+ {
146
+ "name": "w",
147
+ "kind": "POSITIONAL_OR_KEYWORD",
148
+ "default": null,
149
+ "annotation": "torch.Tensor"
150
+ },
151
+ {
152
+ "name": "absmax",
153
+ "kind": "POSITIONAL_OR_KEYWORD",
154
+ "default": null,
155
+ "annotation": "torch.Tensor"
156
+ },
157
+ {
158
+ "name": "output_features",
159
+ "kind": "POSITIONAL_OR_KEYWORD",
160
+ "default": null,
161
+ "annotation": "int"
162
+ },
163
+ {
164
+ "name": "blocksize",
165
+ "kind": "POSITIONAL_OR_KEYWORD",
166
+ "default": "64",
167
+ "annotation": "int"
168
+ },
169
+ {
170
+ "name": "quant_type",
171
+ "kind": "POSITIONAL_OR_KEYWORD",
172
+ "default": "2",
173
+ "annotation": "int"
174
+ }
175
+ ],
176
+ "return_annotation": "torch.Tensor"
177
+ }
178
+ },
179
+ {
180
+ "name": "linear_4bit",
181
+ "qualname": "linear_4bit",
182
+ "module": "_bitsandbytes_mps_metal_fe2bb66",
183
+ "kind": "function",
184
+ "doc": "4-bit quantized linear layer (auto-selects GEMV or GEMM).\n\nArgs:\n x: Input tensor on MPS device.\n w: Packed weight [N, K/2] (uint8).\n absmax: Scales [N, ceil(K/blocksize)] (float32).\n output_features: N.\n blocksize: 64 or 128.\n quant_type: FP4 (1) or NF4 (2).\n bias: Optional bias [N].\n\nReturns:\n Output tensor.",
185
+ "signature": {
186
+ "parameters": [
187
+ {
188
+ "name": "x",
189
+ "kind": "POSITIONAL_OR_KEYWORD",
190
+ "default": null,
191
+ "annotation": "torch.Tensor"
192
+ },
193
+ {
194
+ "name": "w",
195
+ "kind": "POSITIONAL_OR_KEYWORD",
196
+ "default": null,
197
+ "annotation": "torch.Tensor"
198
+ },
199
+ {
200
+ "name": "absmax",
201
+ "kind": "POSITIONAL_OR_KEYWORD",
202
+ "default": null,
203
+ "annotation": "torch.Tensor"
204
+ },
205
+ {
206
+ "name": "output_features",
207
+ "kind": "POSITIONAL_OR_KEYWORD",
208
+ "default": null,
209
+ "annotation": "int"
210
+ },
211
+ {
212
+ "name": "blocksize",
213
+ "kind": "POSITIONAL_OR_KEYWORD",
214
+ "default": "64",
215
+ "annotation": "int"
216
+ },
217
+ {
218
+ "name": "quant_type",
219
+ "kind": "POSITIONAL_OR_KEYWORD",
220
+ "default": "2",
221
+ "annotation": "int"
222
+ },
223
+ {
224
+ "name": "bias",
225
+ "kind": "POSITIONAL_OR_KEYWORD",
226
+ "default": "None",
227
+ "annotation": "torch.Tensor | None"
228
+ }
229
+ ],
230
+ "return_annotation": "torch.Tensor"
231
+ }
232
+ }
233
+ ],
234
+ "layers": []
235
+ }
build/torch213-metal-aarch64-darwin/{_bitsandbytes_mps_metal_89d4054.abi3.so → _bitsandbytes_mps_metal_fe2bb66.abi3.so} RENAMED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:788aa156d82f0fb61b191dc49afb7bddf8173d1a557c419b43c5bc48d8af7dc5
3
  size 845896
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3921aa01f60720aaeaabbaec32729696bd5e417fedd65ef06d472ea04d93069b
3
  size 845896
build/torch213-metal-aarch64-darwin/_ops.py CHANGED
@@ -1,9 +1,9 @@
1
  import torch
2
- from . import _bitsandbytes_mps_metal_89d4054
3
- ops = torch.ops._bitsandbytes_mps_metal_89d4054
4
 
5
  def add_op_namespace_prefix(op_name: str):
6
  """
7
  Prefix op by namespace.
8
  """
9
- return f"_bitsandbytes_mps_metal_89d4054::{op_name}"
 
1
  import torch
2
+ from . import _bitsandbytes_mps_metal_fe2bb66
3
+ ops = torch.ops._bitsandbytes_mps_metal_fe2bb66
4
 
5
  def add_op_namespace_prefix(op_name: str):
6
  """
7
  Prefix op by namespace.
8
  """
9
+ return f"_bitsandbytes_mps_metal_fe2bb66::{op_name}"
build/torch213-metal-aarch64-darwin/metadata.json CHANGED
@@ -1,6 +1,6 @@
1
  {
2
  "name": "bitsandbytes-mps",
3
- "id": "_bitsandbytes_mps_metal_89d4054",
4
  "version": 1,
5
  "kernels-minver": "0.14.0",
6
  "license": "MIT",
@@ -13,18 +13,19 @@
13
  "algorithm": "sha256",
14
  "files": {
15
  "__init__.py": "rs6BtEpr3t1l0M2Rvw1/OjtqW+WocRyKcp8tNRLui9M=",
16
- "_bitsandbytes_mps_metal_89d4054.abi3.so": "eIqhVtgvD7YbGR3Emvt73fgXPRpVfEGbQ8W8SNivfcU=",
17
- "_ops.py": "eCYR64sg6wrqSpsCqWHIUbxBAqW435bZJFT0qFYA1m8="
 
18
  }
19
  },
20
  "provenance": {
21
  "kernel-builder": {
22
- "version": "0.17.0-dev0",
23
- "commit": "a7f0afdb29a6a3372b1d47180cc0c182454c5e3b",
24
  "dirty": false
25
  },
26
  "kernel": {
27
- "commit": "89d4054f3755039d5474cfed03f06de026ee2ce7",
28
  "dirty": false
29
  }
30
  }
 
1
  {
2
  "name": "bitsandbytes-mps",
3
+ "id": "_bitsandbytes_mps_metal_fe2bb66",
4
  "version": 1,
5
  "kernels-minver": "0.14.0",
6
  "license": "MIT",
 
13
  "algorithm": "sha256",
14
  "files": {
15
  "__init__.py": "rs6BtEpr3t1l0M2Rvw1/OjtqW+WocRyKcp8tNRLui9M=",
16
+ "_bitsandbytes_mps_metal_fe2bb66.abi3.so": "OSGqAfYHIKrqq7rsMnKWlr1eQX/t1l7wbUcuoE2TBps=",
17
+ "_ops.py": "KZ69wBm+uvagRpIJvyCWGxE7d3dVr9+r6zz16TO61lE=",
18
+ "symbols.json": "bp3qE0B/ix7Cb1dc0RFiDEzrr9mKJIC/lZgwMhDjkTI="
19
  }
20
  },
21
  "provenance": {
22
  "kernel-builder": {
23
+ "version": "0.18.0-dev0",
24
+ "commit": "d054906a13710b811b96697b4635f03020842733",
25
  "dirty": false
26
  },
27
  "kernel": {
28
+ "commit": "fe2bb66fee6c2a77eccf08a0508dc57428d488ed",
29
  "dirty": false
30
  }
31
  }
build/torch213-metal-aarch64-darwin/metadata.json.sigstore CHANGED
@@ -1 +1 @@
1
- {"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"MIIHXzCCBuagAwIBAgIUEsKR5k2F1yPxMQLazbt4oh0zv2kwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwOTA3MDkzMDA1WhcNMjYwOTA3MDk0MDA1WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE7Cv+OYP7jikr/w+P6mjwUPiC7+Mp5kfSVSKt/E9X3UaI4VOPahwWiCH8VYDISWcp4xML1BF5jhtW3QXilADRGaOCBgUwggYBMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUI3HbdkW4a/KFzn7ZS3NhIu+VDX8wHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wbwYDVR0RAQH/BGUwY4ZhaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLW1hYy55YW1sQHJlZnMvaGVhZHMvbWFpbjA5BgorBgEEAYO/MAEBBCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMB8GCisGAQQBg78wAQIEEXdvcmtmbG93X2Rpc3BhdGNoMDYGCisGAQQBg78wAQMEKDg5ZDQwNTRmMzc1NTAzOWQ1NDc0Y2ZlZDAzZjA2ZGUwMjZlZTJjZTcwGwYKKwYBBAGDvzABBAQNQnVpbGQgKG1hY09TKTArBgorBgEEAYO/MAEFBB1odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTAdBgorBgEEAYO/MAEGBA9yZWZzL2hlYWRzL21haW4wOwYKKwYBBAGDvzABCAQtDCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMHEGCisGAQQBg78wAQkEYwxhaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLW1hYy55YW1sQHJlZnMvaGVhZHMvbWFpbjA4BgorBgEEAYO/MAEKBCoMKDg5ZDQwNTRmMzc1NTAzOWQ1NDc0Y2ZlZDAzZjA2ZGUwMjZlZTJjZTcwHQYKKwYBBAGDvzABCwQPDA1naXRodWItaG9zdGVkMEAGCisGAQQBg78wAQwEMgwwaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MDgGCisGAQQBg78wAQ0EKgwoODlkNDA1NGYzNzU1MDM5ZDU0NzRjZmVkMDNmMDZkZTAyNmVlMmNlNzAfBgorBgEEAYO/MAEOBBEMD3JlZnMvaGVhZHMvbWFpbjAaBgorBgEEAYO/MAEPBAwMCjEwNzE0NzU1MjkwLgYKKwYBBAGDvzABEAQgDB5odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2UwGAYKKwYBBAGDvzABEQQKDAgyNTcyMDc0MzBxBgorBgEEAYO/MAESBGMMYWh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS8uZ2l0aHViL3dvcmtmbG93cy9idWlsZC1tYWMueWFtbEByZWZzL2hlYWRzL21haW4wOAYKKwYBBAGDvzABEwQqDCg4OWQ0MDU0ZjM3NTUwMzlkNTQ3NGNmZWQwM2YwNmRlMDI2ZWUyY2U3MCEGCisGAQQBg78wARQEEwwRd29ya2Zsb3dfZGlzcGF0Y2gwZAYKKwYBBAGDvzABFQRWDFRodHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvYWN0aW9ucy9ydW5zLzM0MTAzMTcwNjkyL2F0dGVtcHRzLzEwFgYKKwYBBAGDvzABFgQIDAZwdWJsaWMwRgYKKwYBBAGDvzABGAQ4DDZyZXBvOmh1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5OnJlZjpyZWZzL2hlYWRzL21haW4wgYkGCisGAQQB1nkCBAIEewR5AHcAdQDdPTBqxscRMmMZHhyZZzcCokpeuN48rf+HinKALynujgAAAaB7NBL3AAAEAwBGMEQCICgYWhLCaJCf4y3ZGTz0XlLxRmYB3C2d506s6IDO7WpLAiANZYnka8juyAHmd6ifb3Xu8UZUkaPoZeLNxFt/8g9Z0zAKBggqhkjOPQQDAwNnADBkAjBV3IP/fD4A+46PRg0/bIcGzfJct11Q+849M3LCp5AbvXtqyXpHa8+VB2wMCk+hP8kCMERhOM3n0UeJq3UBHgUAiNlfoRjfuFIjzm7CaZehMmRV5Ye87GpJBGrR5f2oi2vS5A=="},"tlogEntries":[{"logIndex":"2749100618","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1788773405","inclusionPromise":{"signedEntryTimestamp":"MEUCIQCkR3PiMbkAHY12sITo50v8HzP1wkHYaTXDJn/yMlSrAQIgNcaHHEtQgW3aSzh1Eq8zGXe/lSnE8GEQJ/FXlraxv6U="},"inclusionProof":{"logIndex":"2627196356","rootHash":"7ozpDS7RJltWC3Y87+D+1hVzgZKEXnHCtCRnQJJx/S0=","treeSize":"2627196457","hashes":["b9V/d1vw224Uj8tAN1bKWp8aZweZg0R7AK7DuK0CtVg=","bpSYuRrKXM5DWXJonS++itOWzVdabgKwEszeptTfFXg=","ri1C1y5SeoCshC4gykWP2p2AKcvNQm8jyLP/gxPPyAY=","AVpt/41h8gYMa8r3/6TjuZVNd6im5sOL2fhjKgSBovY=","ggn5mPFD5CqDR/O9UFFH6knYm4eazNgFiDJB1hKuqLQ=","xuyW/DuWQnAAaoNdRpHf4s8ning+KAEQo6jpC2JalSk=","1I0ztpwOcXnRldGQ0Tsj7x4YUAhidVVzNLNFy9Vp2lY=","sBF4c/++vdZKKp6dU5niwYyD89RUabVWMU2t8hRfa9s=","fnk2z4FTLn4I5nFrT13Gv2dF0kIF7fvRdBhF/zHVgdo=","5fFLSbbpdICLEi4OvhBDtzjCjJc9t3M4GqAgbndhbi8=","gwfasP/TJab5Cvtt+/tMBexO1cQPUxTQYVeDqUifdcI=","/PiCs5+cl7D9ZwxQHCNLza7k9yZiaWfgjHrCROrtH5c=","vJH9DwxUiqR7d5Iv86gJqaAG7mgpK8BhNha5RlVSXoE=","rC7UvsBWtIMUY1hF7VAc1IuD9m+gPgcwdArHV3COAxg=","ch0aD372ymT2fXHxbf+epFKHoFZu8e2qER+xxSCbPyc=","yLcHDDCEu1BAK+IfkRJ79X8cbQ0Ewt8a51AAHz4ItBA=","sFs5ZPVs0GrIELeO+PLKnaw6Xqx6rrLLSsxTCL7uEy4=","PeXZrqD3jq5qFdOmhUHJ8en1qzGlcp6bfMESzIwc3z0=","lKSWYj364IeG0b10DY/iYLgSeWiNkybEZLzd49gUFSo=","7tD2K8mAqGTMENrP2YXWz71BeTWQPCiYd3CESAgQLz8=","eXSLrLqKSxRTixSP/k4YimriB2lufao6trqTrsxxlyg=","SndbMKVtcTenAkwi2JBfGzD+mhexp1qJbRIY+A1JRIU=","xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n2627196457\n7ozpDS7RJltWC3Y87+D+1hVzgZKEXnHCtCRnQJJx/S0=\n\n— rekor.sigstore.dev wNI9ajBFAiA9gGts8+YyGGPjak7NyshBi/LIKSUxbLzCpNdAoQ1bswIhAKc8AMAlCvVjdpjS9FDfkdPKo6teRxKND/3qRo/Tj4CF\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiI2NDE4N2U2MGJiMWU1NGRhMDkzNDE1ZjQ0YTRhOWM3NGE4YWI2ODVhNzljNTk1OTJhNDFmZTU1Y2RlY2NiY2Y2In19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FWUNJUUNnbXZub1RHR1oyLzhsQ0Zud1hLZHNLZU55QlRialEyR2JPMFJKRjl1K25nSWhBTEVhTUttNmgvRWJNM0VLclJuWUx6Yzl0eEVCT0FHYmZrVStEcGRnQjNkQSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaFlla05EUW5WaFowRjNTVUpCWjBsVlJYTkxValZyTWtZeGVWQjRUVkZNWVhwaWREUnZhREI2ZGpKcmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDlVUVROTlJHdDZUVVJCTVZkb1kwNU5hbGwzVDFSQk0wMUVhekJOUkVFeFYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVUzUTNZclQxbFFOMnBwYTNJdmR5dFFObTFxZDFWUWFVTTNLMDF3Tld0bVUxWlRTM1FLTDBVNVdETlZZVWswVms5UVlXaDNWMmxEU0RoV1dVUkpVMWRqY0RSNFRVd3hRa1kxYW1oMFZ6TlJXR2xzUVVSU1IyRlBRMEpuVlhkbloxbENUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlZKTTBoaUNtUnJWelJoTDB0R2VtNDNXbE16VG1oSmRTdFdSRmc0ZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDJKM1dVUldVakJTUVZGSUwwSkhWWGRaTkZwb1lVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKb01Wb3laSEJpYldSdFdWZE9iQXBNTW5Sc1kyMDFiR0pJVFhSWk1qbDBZbGhXZFdGWVVqVk1lVFZ1WVZoU2IyUlhTWFprTWpsNVlUSmFjMkl6WkhwTU1rb3hZVmQ0YTB4WE1XaFplVFUxQ2xsWE1YTlJTRXBzV201TmRtRkhWbWhhU0UxMllsZEdjR0pxUVRWQ1oyOXlRbWRGUlVGWlR5OU5RVVZDUWtOMGIyUklVbmRqZW05MlRETlNkbUV5Vm5VS1RHMUdhbVJIYkhaaWJrMTFXakpzTUdGSVZtbGtXRTVzWTIxT2RtSnVVbXhpYmxGMVdUSTVkRTFDT0VkRGFYTkhRVkZSUW1jM09IZEJVVWxGUlZoa2RncGpiWFJ0WWtjNU0xZ3lVbkJqTTBKb1pFZE9iMDFFV1VkRGFYTkhRVkZSUW1jM09IZEJVVTFGUzBSbk5WcEVVWGRPVkZKdFRYcGpNVTVVUVhwUFYxRXhDazVFWXpCWk1scHNXa1JCZWxwcVFUSmFSMVYzVFdwYWJGcFVTbXBhVkdOM1IzZFpTMHQzV1VKQ1FVZEVkbnBCUWtKQlVVNVJibFp3WWtkUlowdEhNV2dLV1RBNVZFdFVRWEpDWjI5eVFtZEZSVUZaVHk5TlFVVkdRa0l4YjJSWFpHNWhWelZ1V20xR2FscFRPWEphV0VwMVdsZDRla3hYVG5aaVZ6RXhZbTFzTUFwbFZFRmtRbWR2Y2tKblJVVkJXVTh2VFVGRlIwSkJPWGxhVjFwNlRESm9iRmxYVW5wTU1qRm9ZVmMwZDA5M1dVdExkMWxDUWtGSFJIWjZRVUpEUVZGMENrUkRkRzlrU0ZKM1kzcHZka3d6VW5aaE1sWjFURzFHYW1SSGJIWmliazExV2pKc01HRklWbWxrV0U1c1kyMU9kbUp1VW14aWJsRjFXVEk1ZEUxSVJVY0tRMmx6UjBGUlVVSm5OemgzUVZGclJWbDNlR2hoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiQXBqYlRWc1lraE5kRmt5T1hSaVdGWjFZVmhTTlV4NU5XNWhXRkp2WkZkSmRtUXlPWGxoTWxwellqTmtla3d5U2pGaFYzaHJURmN4YUZsNU5UVlpWekZ6Q2xGSVNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJORUpuYjNKQ1owVkZRVmxQTDAxQlJVdENRMjlOUzBSbk5WcEVVWGRPVkZKdFRYcGpNVTVVUVhvS1QxZFJNVTVFWXpCWk1scHNXa1JCZWxwcVFUSmFSMVYzVFdwYWJGcFVTbXBhVkdOM1NGRlpTMHQzV1VKQ1FVZEVkbnBCUWtOM1VWQkVRVEZ1WVZoU2J3cGtWMGwwWVVjNWVtUkhWbXROUlVGSFEybHpSMEZSVVVKbk56aDNRVkYzUlUxbmQzZGhTRkl3WTBoTk5reDVPVzVoV0ZKdlpGZEpkVmt5T1hSTU1tZ3hDbG95WkhCaWJXUnRXVmRPYkV3eWRHeGpiVFZzWWtoTmRGa3lPWFJpV0ZaMVlWaFNOVTFFWjBkRGFYTkhRVkZSUW1jM09IZEJVVEJGUzJkM2IwOUViR3NLVGtSQk1VNUhXWHBPZWxVeFRVUk5OVnBFVlRCT2VsSnFXbTFXYTAxRVRtMU5SRnByV2xSQmVVNXRWbXhOYlU1c1RucEJaa0puYjNKQ1owVkZRVmxQTHdwTlFVVlBRa0pGVFVRelNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJZVUpuYjNKQ1owVkZRVmxQTDAxQlJWQkNRWGROUTJwRmQwNTZSVEJPZWxVeENrMXFhM2RNWjFsTFMzZFpRa0pCUjBSMmVrRkNSVUZSWjBSQ05XOWtTRkozWTNwdmRrd3laSEJrUjJneFdXazFhbUl5TUhaaFNGWnVXakpzZFZveVdtZ0tXVEpWZDBkQldVdExkMWxDUWtGSFJIWjZRVUpGVVZGTFJFRm5lVTVVWTNsTlJHTXdUWHBDZUVKbmIzSkNaMFZGUVZsUEwwMUJSVk5DUjAxTldWZG9NQXBrU0VKNlQyazRkbG95YkRCaFNGWnBURzFPZG1KVE9XOWtWMlJ1WVZjMWJscHRSbXBhVXpseVdsaEtkVnBYZUhwTVYwNTJZbGN4TVdKdGJEQmxVemgxQ2xveWJEQmhTRlpwVEROa2RtTnRkRzFpUnprelkzazVhV1JYYkhOYVF6RjBXVmROZFdWWFJuUmlSVUo1V2xkYWVrd3lhR3haVjFKNlRESXhhR0ZYTkhjS1QwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWM1VYRkVRMmMwVDFkUk1FMUVWVEJhYWswelRsUlZkMDE2Ykd0T1ZGRXpUa2RPYlZwWFVYZE5NbGwzVG0xU2JBcE5SRWt5V2xkVmVWa3lWVE5OUTBWSFEybHpSMEZSVVVKbk56aDNRVkpSUlVWM2QxSmtNamw1WVRKYWMySXpaR1phUjJ4NlkwZEdNRmt5WjNkYVFWbExDa3QzV1VKQ1FVZEVkbnBCUWtaUlVsZEVSbEp2WkVoU2QyTjZiM1pNTW1Sd1pFZG9NVmxwTldwaU1qQjJZVWhXYmxveWJIVmFNbHBvV1RKVmRtRXlWbmtLWW0xV2MyTjVNV3BpTWpGMFpGYzFjR1JJYTNaWlYwNHdZVmM1ZFdONU9YbGtWelY2VEhwTk1FMVVRWHBOVkdOM1RtcHJlVXd5UmpCa1IxWjBZMGhTZWdwTWVrVjNSbWRaUzB0M1dVSkNRVWRFZG5wQlFrWm5VVWxFUVZwM1pGZEtjMkZYVFhkU1oxbExTM2RaUWtKQlIwUjJla0ZDUjBGUk5FUkVXbmxhV0VKMkNrOXRhREZhTW1Sd1ltMWtiVmxYVG14TU1uUnNZMjAxYkdKSVRYUlpNamwwWWxoV2RXRllValZQYmtwc1dtcHdlVnBYV25wTU1taHNXVmRTZWt3eU1XZ0tZVmMwZDJkWmEwZERhWE5IUVZGUlFqRnVhME5DUVVsRlpYZFNOVUZJWTBGa1VVUmtVRlJDY1hoelkxSk5iVTFhU0doNVdscDZZME52YTNCbGRVNDBPQXB5Wml0SWFXNUxRVXg1Ym5WcVowRkJRV0ZDTjA1Q1RETkJRVUZGUVhkQ1IwMUZVVU5KUTJkWlYyaE1RMkZLUTJZMGVUTmFSMVI2TUZoc1RIaFNiVmxDQ2pORE1tUTFNRFp6TmtsRVR6ZFhjRXhCYVVGT1dsbHVhMkU0YW5WNVFVaHRaRFpwWm1JeldIVTRWVnBWYTJGUWIxcGxURTU0Um5Rdk9HYzVXakI2UVVzS1FtZG5jV2hyYWs5UVVWRkVRWGRPYmtGRVFtdEJha0pXTTBsUUwyWkVORUVyTkRaUVVtY3dMMkpKWTBkNlprcGpkREV4VVNzNE5EbE5NMHhEY0RWQllncDJXSFJ4ZVZod1NHRTRLMVpDTW5kTlEyc3JhRkE0YTBOTlJWSm9UMDB6YmpCVlpVcHhNMVZDU0dkVlFXbE9iR1p2VW1wbWRVWkphbnB0TjBOaFdtVm9DazF0VWxZMVdXVTROMGR3U2tKSGNsSTFaakp2YVRKMlV6VkJQVDBLTFMwdExTMUZUa1FnUTBWU1ZFbEdTVU5CVkVVdExTMHRMUW89In19fX0="}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyTADAgEAMIICwAYJKoZIhvcNAQcCoIICsTCCAq0CAQMxDTALBglghkgBZQMEAgEwgbgGCyqGSIb3DQEJEAEEoIGoBIGlMIGiAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgAtmR0vI80LoVn7zcIZ2HB3oCjbytVHHlnarUvNVQQZECFQCagyOsoXuWqzEYsW9gZjP1fxkQzxgPMjAyNjA5MDcwOTMwMDVaMAMCAQGgMqQwMC4xFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEVMBMGA1UEAxMMc2lnc3RvcmUtdHNhoAAxggHaMIIB1gIBATBRMDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAsGCWCGSAFlAwQCAaCB/DAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTI2MDkwNzA5MzAwNVowLwYJKoZIhvcNAQkEMSIEINiAFOAkTDyS1sVC5NUNcAeHd8VrOhj1j3l35E8p/CfzMIGOBgsqhkiG9w0BCRACLzF/MH0wezB5BCCF+Se8B6tiysO0Q1bBDvyBssaIP9p6uebYcNnROs0FtzBVMD2kOzA5MRUwEwYDVQQKEwxzaWdzdG9yZS5kZXYxIDAeBgNVBAMTF3NpZ3N0b3JlLXRzYS1zZWxmc2lnbmVkAhQ6E1QvDJBh7rzBQy/Lio6LKiOLDDAKBggqhkjOPQQDAgRmMGQCMHXG5EqW0/OfNVPjTLyxLcR4aR+ms/M9CyTBqwvPs3gZyU2lAvBQJ/aeeOeE0w1ojQIwH4btM7HZh+oto5OekSADej/x3Wyn5l8eW/D6OESwOgk/0dGBQG/8gXLGDF2iRmeR"}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"ZBh+YLseVNoJNBX0SkqcdKiraFp5xZWSpB/lXN7MvPY="},"signature":"MEYCIQCgmvnoTGGZ2/8lCFnwXKdsKeNyBTbjQ2GbO0RJF9u+ngIhALEaMKm6h/EbM3EKrRnYLzc9txEBOAGbfkU+DpdgB3dA"}}
 
1
+ {"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"MIIHQTCCBsegAwIBAgIUT5uQiA8+1Eu8ultcUtOt7FPjqFYwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYxMDE5MTEwMzM4WhcNMjYxMDE5MTExMzM4WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAENqxK/wgGU05WDo2QneavbC2YxpSxPo1n4SilNA8A08Y2Op+ZL6t3NGyGGqTKVe4uDJqdR4NinaMDSKWWsA2q3qOCBeYwggXiMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAfBgNVHSMEGDAWgBTf0+nPViQRlvmo2OkoVaLGLhhkPzBvBgNVHREBAf8EZTBjhmFodHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQtbWFjLnlhbWxAcmVmcy9oZWFkcy9tYWluMDkGCisGAQQBg78wAQEEK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wHwYKKwYBBAGDvzABAgQRd29ya2Zsb3dfZGlzcGF0Y2gwNgYKKwYBBAGDvzABAwQoZmUyYmI2NmZlZTZjMmE3N2VjY2YwOGEwNTA4ZGM1NzQyOGQ0ODhlZDAbBgorBgEEAYO/MAEEBA1CdWlsZCAobWFjT1MpMCsGCisGAQQBg78wAQUEHWh1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MB0GCisGAQQBg78wAQYED3JlZnMvaGVhZHMvbWFpbjA7BgorBgEEAYO/MAEIBC0MK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wcQYKKwYBBAGDvzABCQRjDGFodHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQtbWFjLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wAQoEKgwoZmUyYmI2NmZlZTZjMmE3N2VjY2YwOGEwNTA4ZGM1NzQyOGQ0ODhlZDAdBgorBgEEAYO/MAELBA8MDWdpdGh1Yi1ob3N0ZWQwQAYKKwYBBAGDvzABDAQyDDBodHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkwOAYKKwYBBAGDvzABDQQqDChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMB8GCisGAQQBg78wAQ4EEQwPcmVmcy9oZWFkcy9tYWluMBoGCisGAQQBg78wAQ8EDAwKMTA3MTQ3NTUyOTAuBgorBgEEAYO/MAEQBCAMHmh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZTAYBgorBgEEAYO/MAERBAoMCDI1NzIwNzQzMHEGCisGAQQBg78wARIEYwxhaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLW1hYy55YW1sQHJlZnMvaGVhZHMvbWFpbjA4BgorBgEEAYO/MAETBCoMKGZlMmJiNjZmZWU2YzJhNzdlY2NmMDhhMDUwOGRjNTc0MjhkNDg4ZWQwIQYKKwYBBAGDvzABFAQTDBF3b3JrZmxvd19kaXNwYXRjaDBkBgorBgEEAYO/MAEVBFYMVGh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS9hY3Rpb25zL3J1bnMvMzkyMzk1MjcyOTIvYXR0ZW1wdHMvMTAWBgorBgEEAYO/MAEWBAgMBnB1YmxpYzBGBgorBgEEAYO/MAEYBDgMNnJlcG86aHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHk6cmVmOnJlZnMvaGVhZHMvbWFpbjCBiQYKKwYBBAHWeQIEAgR7BHkAdwB1AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABoVPU0uIAAAQDAEYwRAIgBP9R95T9VSxP7HliYcSsytBarXmitebnf0QjmU9tu6cCIBObWHeIJ5rIneUmybnJZYsfAUJR/Gss7kDYjKorB91YMAoGCCqGSM49BAMDA2gAMGUCMA0R00EXAslyVSHIxI4giC8hpWIfr7Xsl8UqIKDayTO/ZKxGJj9/qHHxSoasOt/I5QIxAM4pMV79B9sjdjEGZLIJGoJ0YYRZt3RFe2KjIRPKtvnyCL5U8xonr72vxmb7pjZNxg=="},"tlogEntries":[{"logIndex":"3320111084","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1792407819","inclusionPromise":{"signedEntryTimestamp":"MEQCICP2QgFQK8OxjfXCshZKZ0RI9KgXWldl1rqT+hGD8mbqAiAJp/7D3SvopZnEhlOqqC32MOYYtB+O+cgNSjBc/bLYng=="},"inclusionProof":{"logIndex":"3198206822","rootHash":"EftD4Y7Xn5dJEs61Hqzu4eeBWGz1fn33J8QMp7UtW20=","treeSize":"3198206825","hashes":["EwfHsxYzPpsXo0NaPPj3S/E19m7h4fJsT4i8lVNcTHM=","vRojsomXzat5yfD+BzeRLXx2fddu5NJmq/fcQjEzvG0=","5XFN0Mf8oVz12QoWGBdCdlFSW8f/1aRJEE2O/Vlb11E=","Ae95CCghp9ZM1yPdtnBnpnyKa8t4FnxOrw3B2Ex21XQ=","IpzS+yrYON2V52MHkg7C0FIeMpzMXDQHiC+9BAMgZkE=","H72JElou4X1aDkH/7DYdKiVluCgux6gyrbH6P7GOHv0=","gYfBRC310JhNu8LpaMHNYoVqAKzPyEqWf4EziUHx4MY=","CwBCuqAkeVZhjK66R5XeutytxmFWSlFTPAVBKldfDFA=","f4MktXqhBPk7ruDBxwgqTvXa7eCNzak9cUObXS0eTxI=","OlLDeTiZ1vIMDel4vGDtbNVnrFnzDe1MFV5rBN5Ep4o=","uCZQe757l2sS1c05Y7TzOwEm+X8MeGLIUCkEOmFVOz4=","nyQV/+cWQUG5Hb2PKjQQNkQIJmz2qzAZKBQlkHGIknM=","G+nk7mgE5h6dUmv2UY7NDJrY3WvrZY31raaO1AETt+o=","qlTWNDzERnTBQVcHHXXVPjiUP0SsikGxfcxVlgqVFDo=","gg9GNApNke3+zNhl4tsWtmIycCFrOMCB3lys6XuSQNQ=","NlOclldmKPA1tMKIskqHAwuQDYHp31YwpK+OOMrMccc=","qxzHanAzz57SDdmJe0B7bJK72NTIBbwEMGBBKvDOROw=","xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n3198206825\nEftD4Y7Xn5dJEs61Hqzu4eeBWGz1fn33J8QMp7UtW20=\n\n— rekor.sigstore.dev wNI9ajBGAiEAgJlr/DnScLMe1BkYDkFWVzONAsWEIDoqcnqhHi2sCuECIQDVPj8MsePhDjXEWFG92ZmnExJkbWwiUb7k0ntb99Fw1Q==\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiI1ZGMyYmRhNmViYmQ2M2UyMDQwYzU1YTEwODc2OGE2MWJlMzA0MjczMjQ3NDU1MmRmN2JmM2E5YTE2MzU2MjhjIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FUUNJRENKcHBSUUluejFGU0RhT1U4dWFRVmNGaHlXL25sVWFqdGxrdFg0SHljZEFpQkIrYWtWUDVtYlh5S3ZmR3Z6RnYxdFJpOUNQSnU1Mk5PQUQ4VXNha0JoOVE9PSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaFJWRU5EUW5ObFowRjNTVUpCWjBsVlZEVjFVV2xCT0NzeFJYVTRkV3gwWTFWMFQzUTNSbEJxY1VaWmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFplRTFFUlRWTlZFVjNUWHBOTkZkb1kwNU5hbGw0VFVSRk5VMVVSWGhOZWswMFYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZPY1hoTEwzZG5SMVV3TlZkRWJ6SlJibVZoZG1KRE1sbDRjRk40VUc4eGJqUlRhV3dLVGtFNFFUQTRXVEpQY0N0YVREWjBNMDVIZVVkSGNWUkxWbVUwZFVSS2NXUlNORTVwYm1GTlJGTkxWMWR6UVRKeE0zRlBRMEpsV1hkbloxaHBUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXWkNaMDVXU0ZOTlJVZEVRVmRuUWxSbUNqQXJibEJXYVZGU2JIWnRiekpQYTI5V1lVeEhUR2hvYTFCNlFuWkNaMDVXU0ZKRlFrRm1PRVZhVkVKcWFHMUdiMlJJVW5kamVtOTJUREprY0dSSGFERUtXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWMllUSldlV0p0Vm5OamVURnFZakl4ZEdSWE5YQmtTR3QyVEcxa2NHUkhhREZaYVRrellqTktjZ3BhYlhoMlpETk5kbGx1Vm5CaVIxRjBZbGRHYWt4dWJHaGlWM2hCWTIxV2JXTjVPVzlhVjBaclkzazVkRmxYYkhWTlJHdEhRMmx6UjBGUlVVSm5OemgzQ2tGUlJVVkxNbWd3WkVoQ2VrOXBPSFprUnpseVdsYzBkVmxYVGpCaFZ6bDFZM2sxYm1GWVVtOWtWMG94WXpKV2VWa3lPWFZrUjFaMVpFTTFhbUl5TUhjS1NIZFpTMHQzV1VKQ1FVZEVkbnBCUWtGblVWSmtNamw1WVRKYWMySXpaR1phUjJ4NlkwZEdNRmt5WjNkT1oxbExTM2RaUWtKQlIwUjJla0ZDUVhkUmJ3cGFiVlY1V1cxSk1rNXRXbXhhVkZwcVRXMUZNMDR5Vm1wWk1sbDNUMGRGZDA1VVFUUmFSMDB4VG5wUmVVOUhVVEJQUkdoc1drUkJZa0puYjNKQ1owVkZDa0ZaVHk5TlFVVkZRa0V4UTJSWGJITmFRMEZ2WWxkR2FsUXhUWEJOUTNOSFEybHpSMEZSVVVKbk56aDNRVkZWUlVoWGFERmFNbVJ3WW0xa2JWbFhUbXdLVERKMGJHTnROV3hpU0UxMFdUSTVkR0pZVm5WaFdGSTFUVUl3UjBOcGMwZEJVVkZDWnpjNGQwRlJXVVZFTTBwc1dtNU5kbUZIVm1oYVNFMTJZbGRHY0FwaWFrRTNRbWR2Y2tKblJVVkJXVTh2VFVGRlNVSkRNRTFMTW1nd1pFaENlazlwT0haa1J6bHlXbGMwZFZsWFRqQmhWemwxWTNrMWJtRllVbTlrVjBveENtTXlWbmxaTWpsMVpFZFdkV1JETldwaU1qQjNZMUZaUzB0M1dVSkNRVWRFZG5wQlFrTlJVbXBFUjBadlpFaFNkMk42YjNaTU1tUndaRWRvTVZscE5Xb0tZakl3ZG1GSVZtNWFNbXgxV2pKYWFGa3lWWFpoTWxaNVltMVdjMk41TVdwaU1qRjBaRmMxY0dSSWEzWk1iV1J3WkVkb01WbHBPVE5pTTBweVdtMTRkZ3BrTTAxMldXNVdjR0pIVVhSaVYwWnFURzVzYUdKWGVFRmpiVlp0WTNrNWIxcFhSbXRqZVRsMFdWZHNkVTFFWjBkRGFYTkhRVkZSUW1jM09IZEJVVzlGQ2t0bmQyOWFiVlY1V1cxSk1rNXRXbXhhVkZwcVRXMUZNMDR5Vm1wWk1sbDNUMGRGZDA1VVFUUmFSMDB4VG5wUmVVOUhVVEJQUkdoc1drUkJaRUpuYjNJS1FtZEZSVUZaVHk5TlFVVk1Ra0U0VFVSWFpIQmtSMmd4V1dreGIySXpUakJhVjFGM1VVRlpTMHQzV1VKQ1FVZEVkbnBCUWtSQlVYbEVSRUp2WkVoU2R3cGplbTkyVERKa2NHUkhhREZaYVRWcVlqSXdkbUZJVm01YU1teDFXakphYUZreVZYWmhNbFo1WW0xV2MyTjVNV3BpTWpGMFpGYzFjR1JJYTNkUFFWbExDa3QzV1VKQ1FVZEVkbnBCUWtSUlVYRkVRMmh0V2xSS2FWbHFXVEphYlZac1RtMU5lVmxVWXpOYVYwNXFXbXBCTkZsVVFURk5SR2hyV1hwVk0wNUVTVFFLV2tSUk5FOUhWbXROUWpoSFEybHpSMEZSVVVKbk56aDNRVkUwUlVWUmQxQmpiVlp0WTNrNWIxcFhSbXRqZVRsMFdWZHNkVTFDYjBkRGFYTkhRVkZSUWdwbk56aDNRVkU0UlVSQmQwdE5WRUV6VFZSUk0wNVVWWGxQVkVGMVFtZHZja0puUlVWQldVOHZUVUZGVVVKRFFVMUliV2d3WkVoQ2VrOXBPSFphTW13d0NtRklWbWxNYlU1MllsTTViMlJYWkc1aFZ6VnVXbTFHYWxwVVFWbENaMjl5UW1kRlJVRlpUeTlOUVVWU1FrRnZUVU5FU1RGT2VrbDNUbnBSZWsxSVJVY0tRMmx6UjBGUlVVSm5OemgzUVZKSlJWbDNlR2hoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiQXBqYlRWc1lraE5kRmt5T1hSaVdGWjFZVmhTTlV4NU5XNWhXRkp2WkZkSmRtUXlPWGxoTWxwellqTmtla3d5U2pGaFYzaHJURmN4YUZsNU5UVlpWekZ6Q2xGSVNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJORUpuYjNKQ1owVkZRVmxQTDAxQlJWUkNRMjlOUzBkYWJFMXRTbWxPYWxwdFdsZFZNbGw2U21nS1RucGtiRmt5VG0xTlJHaG9UVVJWZDA5SFVtcE9WR013VFdwb2EwNUVaelJhVjFGM1NWRlpTMHQzV1VKQ1FVZEVkbnBCUWtaQlVWUkVRa1l6WWpOS2NncGFiWGgyWkRFNWEyRllUbmRaV0ZKcVlVUkNhMEpuYjNKQ1owVkZRVmxQTDAxQlJWWkNSbGxOVmtkb01HUklRbnBQYVRoMldqSnNNR0ZJVm1sTWJVNTJDbUpUT1c5a1YyUnVZVmMxYmxwdFJtcGFVemx5V2xoS2RWcFhlSHBNVjA1MllsY3hNV0p0YkRCbFV6bG9XVE5TY0dJeU5YcE1NMG94WW01TmRrMTZhM2tLVFhwck1VMXFZM2xQVkVsMldWaFNNRnBYTVhka1NFMTJUVlJCVjBKbmIzSkNaMFZGUVZsUEwwMUJSVmRDUVdkTlFtNUNNVmx0ZUhCWmVrSkhRbWR2Y2dwQ1owVkZRVmxQTDAxQlJWbENSR2ROVG01S2JHTkhPRFpoU0ZadVdqSnNkVm95V21oWk1sVjJZVEpXZVdKdFZuTmplVEZxWWpJeGRHUlhOWEJrU0dzMkNtTnRWbTFQYmtwc1dtNU5kbUZIVm1oYVNFMTJZbGRHY0dKcVEwSnBVVmxMUzNkWlFrSkJTRmRsVVVsRlFXZFNOMEpJYTBGa2QwSXhRVTR3T1UxSGNrY0tlSGhGZVZsNGEyVklTbXh1VG5kTGFWTnNOalF6YW5sMEx6UmxTMk52UVhaTFpUWlBRVUZCUW05V1VGVXdkVWxCUVVGUlJFRkZXWGRTUVVsblFsQTVVZ281TlZRNVZsTjRVRGRJYkdsWlkxTnplWFJDWVhKWWJXbDBaV0p1WmpCUmFtMVZPWFIxTm1ORFNVSlBZbGRJWlVsS05YSkpibVZWYlhsaWJrcGFXWE5tQ2tGVlNsSXZSM056TjJ0RVdXcExiM0pDT1RGWlRVRnZSME5EY1VkVFRUUTVRa0ZOUkVFeVowRk5SMVZEVFVFd1VqQXdSVmhCYzJ4NVZsTklTWGhKTkdjS2FVTTRhSEJYU1daeU4xaHpiRGhWY1VsTFJHRjVWRTh2V2t0NFIwcHFPUzl4U0VoNFUyOWhjMDkwTDBrMVVVbDRRVTAwY0UxV056bENPWE5xWkdwRlJ3cGFURWxLUjI5S01GbFpVbHAwTTFKR1pUSkxha2xTVUV0MGRtNTVRMHcxVlRoNGIyNXlOekoyZUcxaU4zQnFXazU0WnowOUNpMHRMUzB0UlU1RUlFTkZVbFJKUmtsRFFWUkZMUzB0TFMwSyJ9fX19"}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyjADAgEAMIICwQYJKoZIhvcNAQcCoIICsjCCAq4CAQMxDTALBglghkgBZQMEAgEwgbcGCyqGSIb3DQEJEAEEoIGnBIGkMIGhAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQg5jFwpnUDEwtHmQKmLu8PgNNudI6RazsFCt1B/IgSyswCFG79eIOkAZS6mDhRdKggy5Q7xycNGA8yMDI2MTAxOTExMDMzOVowAwIBAaAypDAwLjEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MRUwEwYDVQQDEwxzaWdzdG9yZS10c2GgADGCAdwwggHYAgEBMFEwOTEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MSAwHgYDVQQDExdzaWdzdG9yZS10c2Etc2VsZnNpZ25lZAIUOhNULwyQYe68wUMvy4qOiyojiwwwCwYJYIZIAWUDBAIBoIH8MBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAcBgkqhkiG9w0BCQUxDxcNMjYxMDE5MTEwMzM5WjAvBgkqhkiG9w0BCQQxIgQg25CBrFEc1+k5SG79G0nlgldovWhEe9v8hVRgVMinafUwgY4GCyqGSIb3DQEJEAIvMX8wfTB7MHkEIIX5J7wHq2LKw7RDVsEO/IGyxog/2nq55thw2dE6zQW3MFUwPaQ7MDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAoGCCqGSM49BAMCBGgwZgIxAJf3HTJ7MTSb4Ro5FOSoJcysD3yOVLO4Ky5KrYmvgp+Xf5rdS7sO6uVeYGJ0PaLp/AIxAJ4K5UaxAcghnOkiXwNcbn7GTHaJf4v15V7SwZpJUTULUDZWiT3cLQTnNeQbYhA1+w=="}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"XcK9puu9Y+IEDFWhCHaKYb4wQnMkdFUt9786mhY1Yow="},"signature":"MEQCIDCJppRQInz1FSDaOU8uaQVcFhyW/nlUajtlktX4HycdAiBB+akVP5mbXyKvfGvzFv1tRi9CPJu52NOAD8UsakBh9Q=="}}
build/torch213-metal-aarch64-darwin/symbols.json ADDED
@@ -0,0 +1,235 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "schema_version": 1,
3
+ "module": "_bitsandbytes_mps_metal_fe2bb66",
4
+ "functions": [
5
+ {
6
+ "name": "quantize_4bit",
7
+ "qualname": "quantize_4bit",
8
+ "module": "_bitsandbytes_mps_metal_fe2bb66",
9
+ "kind": "function",
10
+ "doc": "Blockwise 4-bit quantization using NF4 or FP4 codebook.\n\nArgs:\n input: Input tensor on MPS device (float16, bfloat16, or float32).\n blocksize: Number of elements per quantization block (64 or 128).\n quant_type: FP4 (1) or NF4 (2).\n\nReturns:\n Tuple of (packed, absmax):\n packed: uint8 tensor of packed 4-bit values [numel/2].\n absmax: float32 tensor of per-block max absolute values.",
11
+ "signature": {
12
+ "parameters": [
13
+ {
14
+ "name": "input",
15
+ "kind": "POSITIONAL_OR_KEYWORD",
16
+ "default": null,
17
+ "annotation": "torch.Tensor"
18
+ },
19
+ {
20
+ "name": "blocksize",
21
+ "kind": "POSITIONAL_OR_KEYWORD",
22
+ "default": "64",
23
+ "annotation": "int"
24
+ },
25
+ {
26
+ "name": "quant_type",
27
+ "kind": "POSITIONAL_OR_KEYWORD",
28
+ "default": "2",
29
+ "annotation": "int"
30
+ }
31
+ ],
32
+ "return_annotation": "Tuple[torch.Tensor, torch.Tensor]"
33
+ }
34
+ },
35
+ {
36
+ "name": "dequantize_4bit",
37
+ "qualname": "dequantize_4bit",
38
+ "module": "_bitsandbytes_mps_metal_fe2bb66",
39
+ "kind": "function",
40
+ "doc": "Blockwise 4-bit dequantization using NF4 or FP4 codebook.\n\nArgs:\n packed: uint8 tensor of packed 4-bit values.\n absmax: float32 tensor of per-block max absolute values.\n blocksize: Number of elements per quantization block (64 or 128).\n quant_type: FP4 (1) or NF4 (2).\n numel: Number of elements in the original tensor.\n If -1, inferred as packed.numel() * 2.\n output_dtype: Output scalar type.\n\nReturns:\n Dequantized tensor.",
41
+ "signature": {
42
+ "parameters": [
43
+ {
44
+ "name": "packed",
45
+ "kind": "POSITIONAL_OR_KEYWORD",
46
+ "default": null,
47
+ "annotation": "torch.Tensor"
48
+ },
49
+ {
50
+ "name": "absmax",
51
+ "kind": "POSITIONAL_OR_KEYWORD",
52
+ "default": null,
53
+ "annotation": "torch.Tensor"
54
+ },
55
+ {
56
+ "name": "blocksize",
57
+ "kind": "POSITIONAL_OR_KEYWORD",
58
+ "default": "64",
59
+ "annotation": "int"
60
+ },
61
+ {
62
+ "name": "quant_type",
63
+ "kind": "POSITIONAL_OR_KEYWORD",
64
+ "default": "2",
65
+ "annotation": "int"
66
+ },
67
+ {
68
+ "name": "numel",
69
+ "kind": "POSITIONAL_OR_KEYWORD",
70
+ "default": "-1",
71
+ "annotation": "int"
72
+ },
73
+ {
74
+ "name": "output_dtype",
75
+ "kind": "POSITIONAL_OR_KEYWORD",
76
+ "default": "torch.float16",
77
+ "annotation": "torch.dtype"
78
+ }
79
+ ],
80
+ "return_annotation": "torch.Tensor"
81
+ }
82
+ },
83
+ {
84
+ "name": "gemv_4bit",
85
+ "qualname": "gemv_4bit",
86
+ "module": "_bitsandbytes_mps_metal_fe2bb66",
87
+ "kind": "function",
88
+ "doc": "Fused matrix-vector multiply with 4-bit quantized weights.\n\nComputes y = dequant(W) @ x, where W is blockwise NF4/FP4 quantized.\n\nArgs:\n x: Input vector [..., K] on MPS device.\n w: Packed weight matrix [N, K/2] (uint8) on MPS device.\n absmax: Per-block scales [N, ceil(K/blocksize)] (float32).\n output_features: Number of output features (N).\n blocksize: Quantization block size (64 or 128).\n quant_type: FP4 (1) or NF4 (2).\n\nReturns:\n Output tensor [..., N].",
89
+ "signature": {
90
+ "parameters": [
91
+ {
92
+ "name": "x",
93
+ "kind": "POSITIONAL_OR_KEYWORD",
94
+ "default": null,
95
+ "annotation": "torch.Tensor"
96
+ },
97
+ {
98
+ "name": "w",
99
+ "kind": "POSITIONAL_OR_KEYWORD",
100
+ "default": null,
101
+ "annotation": "torch.Tensor"
102
+ },
103
+ {
104
+ "name": "absmax",
105
+ "kind": "POSITIONAL_OR_KEYWORD",
106
+ "default": null,
107
+ "annotation": "torch.Tensor"
108
+ },
109
+ {
110
+ "name": "output_features",
111
+ "kind": "POSITIONAL_OR_KEYWORD",
112
+ "default": null,
113
+ "annotation": "int"
114
+ },
115
+ {
116
+ "name": "blocksize",
117
+ "kind": "POSITIONAL_OR_KEYWORD",
118
+ "default": "64",
119
+ "annotation": "int"
120
+ },
121
+ {
122
+ "name": "quant_type",
123
+ "kind": "POSITIONAL_OR_KEYWORD",
124
+ "default": "2",
125
+ "annotation": "int"
126
+ }
127
+ ],
128
+ "return_annotation": "torch.Tensor"
129
+ }
130
+ },
131
+ {
132
+ "name": "gemm_4bit",
133
+ "qualname": "gemm_4bit",
134
+ "module": "_bitsandbytes_mps_metal_fe2bb66",
135
+ "kind": "function",
136
+ "doc": "Fused matrix-matrix multiply with 4-bit quantized transposed weights.\n\nComputes Y = X @ dequant(W).T, where W is blockwise NF4/FP4 quantized.\n\nArgs:\n x: Input matrix [..., M, K] on MPS device.\n w: Packed weight matrix [N, K/2] (uint8) on MPS device.\n absmax: Per-block scales [N, ceil(K/blocksize)] (float32).\n output_features: Number of output features (N).\n blocksize: Quantization block size (64 or 128).\n quant_type: FP4 (1) or NF4 (2).\n\nReturns:\n Output tensor [..., M, N].",
137
+ "signature": {
138
+ "parameters": [
139
+ {
140
+ "name": "x",
141
+ "kind": "POSITIONAL_OR_KEYWORD",
142
+ "default": null,
143
+ "annotation": "torch.Tensor"
144
+ },
145
+ {
146
+ "name": "w",
147
+ "kind": "POSITIONAL_OR_KEYWORD",
148
+ "default": null,
149
+ "annotation": "torch.Tensor"
150
+ },
151
+ {
152
+ "name": "absmax",
153
+ "kind": "POSITIONAL_OR_KEYWORD",
154
+ "default": null,
155
+ "annotation": "torch.Tensor"
156
+ },
157
+ {
158
+ "name": "output_features",
159
+ "kind": "POSITIONAL_OR_KEYWORD",
160
+ "default": null,
161
+ "annotation": "int"
162
+ },
163
+ {
164
+ "name": "blocksize",
165
+ "kind": "POSITIONAL_OR_KEYWORD",
166
+ "default": "64",
167
+ "annotation": "int"
168
+ },
169
+ {
170
+ "name": "quant_type",
171
+ "kind": "POSITIONAL_OR_KEYWORD",
172
+ "default": "2",
173
+ "annotation": "int"
174
+ }
175
+ ],
176
+ "return_annotation": "torch.Tensor"
177
+ }
178
+ },
179
+ {
180
+ "name": "linear_4bit",
181
+ "qualname": "linear_4bit",
182
+ "module": "_bitsandbytes_mps_metal_fe2bb66",
183
+ "kind": "function",
184
+ "doc": "4-bit quantized linear layer (auto-selects GEMV or GEMM).\n\nArgs:\n x: Input tensor on MPS device.\n w: Packed weight [N, K/2] (uint8).\n absmax: Scales [N, ceil(K/blocksize)] (float32).\n output_features: N.\n blocksize: 64 or 128.\n quant_type: FP4 (1) or NF4 (2).\n bias: Optional bias [N].\n\nReturns:\n Output tensor.",
185
+ "signature": {
186
+ "parameters": [
187
+ {
188
+ "name": "x",
189
+ "kind": "POSITIONAL_OR_KEYWORD",
190
+ "default": null,
191
+ "annotation": "torch.Tensor"
192
+ },
193
+ {
194
+ "name": "w",
195
+ "kind": "POSITIONAL_OR_KEYWORD",
196
+ "default": null,
197
+ "annotation": "torch.Tensor"
198
+ },
199
+ {
200
+ "name": "absmax",
201
+ "kind": "POSITIONAL_OR_KEYWORD",
202
+ "default": null,
203
+ "annotation": "torch.Tensor"
204
+ },
205
+ {
206
+ "name": "output_features",
207
+ "kind": "POSITIONAL_OR_KEYWORD",
208
+ "default": null,
209
+ "annotation": "int"
210
+ },
211
+ {
212
+ "name": "blocksize",
213
+ "kind": "POSITIONAL_OR_KEYWORD",
214
+ "default": "64",
215
+ "annotation": "int"
216
+ },
217
+ {
218
+ "name": "quant_type",
219
+ "kind": "POSITIONAL_OR_KEYWORD",
220
+ "default": "2",
221
+ "annotation": "int"
222
+ },
223
+ {
224
+ "name": "bias",
225
+ "kind": "POSITIONAL_OR_KEYWORD",
226
+ "default": "None",
227
+ "annotation": "torch.Tensor | None"
228
+ }
229
+ ],
230
+ "return_annotation": "torch.Tensor"
231
+ }
232
+ }
233
+ ],
234
+ "layers": []
235
+ }
build/torch214-metal-aarch64-darwin/{_bitsandbytes_mps_metal_89d4054.abi3.so → _bitsandbytes_mps_metal_fe2bb66.abi3.so} RENAMED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:2c40680e6bd86b2fcdd9d1dea8741974b5d19ff2cfa899e9466d1cf5300f0d97
3
  size 846168
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d3a9f87d2e3d045c741328db8cb953c3c0933dfc71b35d4c6e91fd3471d1db0b
3
  size 846168
build/torch214-metal-aarch64-darwin/_ops.py CHANGED
@@ -1,9 +1,9 @@
1
  import torch
2
- from . import _bitsandbytes_mps_metal_89d4054
3
- ops = torch.ops._bitsandbytes_mps_metal_89d4054
4
 
5
  def add_op_namespace_prefix(op_name: str):
6
  """
7
  Prefix op by namespace.
8
  """
9
- return f"_bitsandbytes_mps_metal_89d4054::{op_name}"
 
1
  import torch
2
+ from . import _bitsandbytes_mps_metal_fe2bb66
3
+ ops = torch.ops._bitsandbytes_mps_metal_fe2bb66
4
 
5
  def add_op_namespace_prefix(op_name: str):
6
  """
7
  Prefix op by namespace.
8
  """
9
+ return f"_bitsandbytes_mps_metal_fe2bb66::{op_name}"
build/torch214-metal-aarch64-darwin/metadata.json CHANGED
@@ -1,6 +1,6 @@
1
  {
2
  "name": "bitsandbytes-mps",
3
- "id": "_bitsandbytes_mps_metal_89d4054",
4
  "version": 1,
5
  "kernels-minver": "0.14.0",
6
  "license": "MIT",
@@ -13,18 +13,19 @@
13
  "algorithm": "sha256",
14
  "files": {
15
  "__init__.py": "rs6BtEpr3t1l0M2Rvw1/OjtqW+WocRyKcp8tNRLui9M=",
16
- "_bitsandbytes_mps_metal_89d4054.abi3.so": "LEBoDmvYay/N2dHeqHQZdLXRn/LPqJnpRm0c9TAPDZc=",
17
- "_ops.py": "eCYR64sg6wrqSpsCqWHIUbxBAqW435bZJFT0qFYA1m8="
 
18
  }
19
  },
20
  "provenance": {
21
  "kernel-builder": {
22
- "version": "0.17.0-dev0",
23
- "commit": "a7f0afdb29a6a3372b1d47180cc0c182454c5e3b",
24
  "dirty": false
25
  },
26
  "kernel": {
27
- "commit": "89d4054f3755039d5474cfed03f06de026ee2ce7",
28
  "dirty": false
29
  }
30
  }
 
1
  {
2
  "name": "bitsandbytes-mps",
3
+ "id": "_bitsandbytes_mps_metal_fe2bb66",
4
  "version": 1,
5
  "kernels-minver": "0.14.0",
6
  "license": "MIT",
 
13
  "algorithm": "sha256",
14
  "files": {
15
  "__init__.py": "rs6BtEpr3t1l0M2Rvw1/OjtqW+WocRyKcp8tNRLui9M=",
16
+ "_bitsandbytes_mps_metal_fe2bb66.abi3.so": "06n4fS49BFx0EyjbjLlTw8CTPfxxs11MbpH9NHHR2ws=",
17
+ "_ops.py": "KZ69wBm+uvagRpIJvyCWGxE7d3dVr9+r6zz16TO61lE=",
18
+ "symbols.json": "bp3qE0B/ix7Cb1dc0RFiDEzrr9mKJIC/lZgwMhDjkTI="
19
  }
20
  },
21
  "provenance": {
22
  "kernel-builder": {
23
+ "version": "0.18.0-dev0",
24
+ "commit": "d054906a13710b811b96697b4635f03020842733",
25
  "dirty": false
26
  },
27
  "kernel": {
28
+ "commit": "fe2bb66fee6c2a77eccf08a0508dc57428d488ed",
29
  "dirty": false
30
  }
31
  }
build/torch214-metal-aarch64-darwin/metadata.json.sigstore CHANGED
@@ -1 +1 @@
1
- {"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"MIIHYzCCBuigAwIBAgIUAcOtU715Wzl4LOrqWN+ioB0rcgEwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYwOTA3MDkzMDAzWhcNMjYwOTA3MDk0MDAzWjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEE5TiyntRhLSjkw49RrCXRro73ARXyu3sYfuuLU+HtkD7+d9YZ+qtaMdslYMBAYJxNZxPWa2vz+fHAbpektUuu6OCBgcwggYDMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUrZaURvu9ibVZS95QGciG9jJba0cwHwYDVR0jBBgwFoAU39Ppz1YkEZb5qNjpKFWixi4YZD8wbwYDVR0RAQH/BGUwY4ZhaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLW1hYy55YW1sQHJlZnMvaGVhZHMvbWFpbjA5BgorBgEEAYO/MAEBBCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMB8GCisGAQQBg78wAQIEEXdvcmtmbG93X2Rpc3BhdGNoMDYGCisGAQQBg78wAQMEKDg5ZDQwNTRmMzc1NTAzOWQ1NDc0Y2ZlZDAzZjA2ZGUwMjZlZTJjZTcwGwYKKwYBBAGDvzABBAQNQnVpbGQgKG1hY09TKTArBgorBgEEAYO/MAEFBB1odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTAdBgorBgEEAYO/MAEGBA9yZWZzL2hlYWRzL21haW4wOwYKKwYBBAGDvzABCAQtDCtodHRwczovL3Rva2VuLmFjdGlvbnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tMHEGCisGAQQBg78wAQkEYwxhaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLW1hYy55YW1sQHJlZnMvaGVhZHMvbWFpbjA4BgorBgEEAYO/MAEKBCoMKDg5ZDQwNTRmMzc1NTAzOWQ1NDc0Y2ZlZDAzZjA2ZGUwMjZlZTJjZTcwHQYKKwYBBAGDvzABCwQPDA1naXRodWItaG9zdGVkMEAGCisGAQQBg78wAQwEMgwwaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MDgGCisGAQQBg78wAQ0EKgwoODlkNDA1NGYzNzU1MDM5ZDU0NzRjZmVkMDNmMDZkZTAyNmVlMmNlNzAfBgorBgEEAYO/MAEOBBEMD3JlZnMvaGVhZHMvbWFpbjAaBgorBgEEAYO/MAEPBAwMCjEwNzE0NzU1MjkwLgYKKwYBBAGDvzABEAQgDB5odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2UwGAYKKwYBBAGDvzABEQQKDAgyNTcyMDc0MzBxBgorBgEEAYO/MAESBGMMYWh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS8uZ2l0aHViL3dvcmtmbG93cy9idWlsZC1tYWMueWFtbEByZWZzL2hlYWRzL21haW4wOAYKKwYBBAGDvzABEwQqDCg4OWQ0MDU0ZjM3NTUwMzlkNTQ3NGNmZWQwM2YwNmRlMDI2ZWUyY2U3MCEGCisGAQQBg78wARQEEwwRd29ya2Zsb3dfZGlzcGF0Y2gwZAYKKwYBBAGDvzABFQRWDFRodHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvYWN0aW9ucy9ydW5zLzM0MTAzMTcwNjkyL2F0dGVtcHRzLzEwFgYKKwYBBAGDvzABFgQIDAZwdWJsaWMwRgYKKwYBBAGDvzABGAQ4DDZyZXBvOmh1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5OnJlZjpyZWZzL2hlYWRzL21haW4wgYsGCisGAQQB1nkCBAIEfQR7AHkAdwDdPTBqxscRMmMZHhyZZzcCokpeuN48rf+HinKALynujgAAAaB7NAomAAAEAwBIMEYCIQC9HIy2s5cAZesBKS09+cmbH0dBicsOV/zPtAn3RQmWSwIhANw9HP+LT2bTFKB+PK6pPF1iREbAC0lCcNc8pkLIoK5yMAoGCCqGSM49BAMDA2kAMGYCMQD260CUTKUniEbb88LUiGrKdr6D3Y2HYRHYdPfARJNivZwiKXDBLn2Y7WpuNfWrqA0CMQD7L9DtzeUyRkyga6o7hLKWJ3X78dDKswT4FK8owwp15kcs1nel2azlYY2K8xfMNfc="},"tlogEntries":[{"logIndex":"2749100207","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1788773403","inclusionPromise":{"signedEntryTimestamp":"MEUCIG5IaZRLlf5qiHV1FNwNj8nQZMuAoyYGx8AlWt7d0noHAiEAgYnmfZidAOafSUNdizG67A2zqWhrZ7RhggPbIHIqmU4="},"inclusionProof":{"logIndex":"2627195945","rootHash":"cJ3QOAhmm4OJ63pQ2TaWMquytzH4gmGZWL6kVejLhww=","treeSize":"2627196067","hashes":["+CKEVBouhytlw+oHwJflcLPvXskjxS3vVhyxOx8pz9k=","uszW7EyR9JSmDzAJCBGBdsGlglitbjT3BaRVTgVqGjI=","UBWdtfuOkZXz/QJnSEPY4Czv9mKN5gRQCh/rtHNwtSk=","GV4JydalPCq7ytKeXUKIuQYKQ2hI9PsPaIE0ehwXBEE=","VDdteGv7nzd1OANhdWNFJX+X8BNuqHXJV2GmKafhLqk=","Rle10fVsItGghtf5Gyv0rw26SctLRzHrkooLnLaXe+c=","64kH21x+c2C3Ufx3x34qy2v4mA95CmQ3dun7N/sf1Ws=","FTAdZJ+EZkbFCC5EKe6uTwGg7AzEM3/FjOVVFWNIXCU=","gwfasP/TJab5Cvtt+/tMBexO1cQPUxTQYVeDqUifdcI=","/PiCs5+cl7D9ZwxQHCNLza7k9yZiaWfgjHrCROrtH5c=","vJH9DwxUiqR7d5Iv86gJqaAG7mgpK8BhNha5RlVSXoE=","rC7UvsBWtIMUY1hF7VAc1IuD9m+gPgcwdArHV3COAxg=","ch0aD372ymT2fXHxbf+epFKHoFZu8e2qER+xxSCbPyc=","yLcHDDCEu1BAK+IfkRJ79X8cbQ0Ewt8a51AAHz4ItBA=","sFs5ZPVs0GrIELeO+PLKnaw6Xqx6rrLLSsxTCL7uEy4=","PeXZrqD3jq5qFdOmhUHJ8en1qzGlcp6bfMESzIwc3z0=","lKSWYj364IeG0b10DY/iYLgSeWiNkybEZLzd49gUFSo=","7tD2K8mAqGTMENrP2YXWz71BeTWQPCiYd3CESAgQLz8=","eXSLrLqKSxRTixSP/k4YimriB2lufao6trqTrsxxlyg=","SndbMKVtcTenAkwi2JBfGzD+mhexp1qJbRIY+A1JRIU=","xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n2627196067\ncJ3QOAhmm4OJ63pQ2TaWMquytzH4gmGZWL6kVejLhww=\n\n— rekor.sigstore.dev wNI9ajBEAiAK2my3MOfNQBnBMpHWxLC7Q+bvWnjsjfU2dD18zXZ72gIgS0Hr00e9s0Pjm1XAQ+kvqNySELb5qwf2PQeTQtfqwHY=\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiI1NTVlYWQ0OWUzNTVjOTQ4ZjM3ZDRiYmQ1MTYxYzY3MzI1MWE4ODU1YjllMDUwMTQyZGViZTUyODY0ZDQ1NzNjIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FUUNJSEVmekxlMXdjSDFRM1dkVStRUEtYaUR1TloxV0JSdzRPNDhFNDFLdnhvTkFpQVpsb0JobDlSdVo5VERoZVErRkhPU1RXcFNMU3ZTM2xneis4SE5WYXh6YlE9PSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaFpla05EUW5WcFowRjNTVUpCWjBsVlFXTlBkRlUzTVRWWGVtdzBURTl5Y1ZkT0sybHZRakJ5WTJkRmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFpkMDlVUVROTlJHdDZUVVJCZWxkb1kwNU5hbGwzVDFSQk0wMUVhekJOUkVGNlYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZGTlZScGVXNTBVbWhNVTJwcmR6UTVVbkpEV0ZKeWJ6Y3pRVkpZZVhVemMxbG1kWFVLVEZVclNIUnJSRGNyWkRsWldpdHhkR0ZOWkhOc1dVMUNRVmxLZUU1YWVGQlhZVEoyZWl0bVNFRmljR1ZyZEZWMWRUWlBRMEpuWTNkbloxbEVUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlZ5V21GVkNsSjJkVGxwWWxaYVV6azFVVWRqYVVjNWFrcGlZVEJqZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDJKM1dVUldVakJTUVZGSUwwSkhWWGRaTkZwb1lVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKb01Wb3laSEJpYldSdFdWZE9iQXBNTW5Sc1kyMDFiR0pJVFhSWk1qbDBZbGhXZFdGWVVqVk1lVFZ1WVZoU2IyUlhTWFprTWpsNVlUSmFjMkl6WkhwTU1rb3hZVmQ0YTB4WE1XaFplVFUxQ2xsWE1YTlJTRXBzV201TmRtRkhWbWhhU0UxMllsZEdjR0pxUVRWQ1oyOXlRbWRGUlVGWlR5OU5RVVZDUWtOMGIyUklVbmRqZW05MlRETlNkbUV5Vm5VS1RHMUdhbVJIYkhaaWJrMTFXakpzTUdGSVZtbGtXRTVzWTIxT2RtSnVVbXhpYmxGMVdUSTVkRTFDT0VkRGFYTkhRVkZSUW1jM09IZEJVVWxGUlZoa2RncGpiWFJ0WWtjNU0xZ3lVbkJqTTBKb1pFZE9iMDFFV1VkRGFYTkhRVkZSUW1jM09IZEJVVTFGUzBSbk5WcEVVWGRPVkZKdFRYcGpNVTVVUVhwUFYxRXhDazVFWXpCWk1scHNXa1JCZWxwcVFUSmFSMVYzVFdwYWJGcFVTbXBhVkdOM1IzZFpTMHQzV1VKQ1FVZEVkbnBCUWtKQlVVNVJibFp3WWtkUlowdEhNV2dLV1RBNVZFdFVRWEpDWjI5eVFtZEZSVUZaVHk5TlFVVkdRa0l4YjJSWFpHNWhWelZ1V20xR2FscFRPWEphV0VwMVdsZDRla3hYVG5aaVZ6RXhZbTFzTUFwbFZFRmtRbWR2Y2tKblJVVkJXVTh2VFVGRlIwSkJPWGxhVjFwNlRESm9iRmxYVW5wTU1qRm9ZVmMwZDA5M1dVdExkMWxDUWtGSFJIWjZRVUpEUVZGMENrUkRkRzlrU0ZKM1kzcHZka3d6VW5aaE1sWjFURzFHYW1SSGJIWmliazExV2pKc01HRklWbWxrV0U1c1kyMU9kbUp1VW14aWJsRjFXVEk1ZEUxSVJVY0tRMmx6UjBGUlVVSm5OemgzUVZGclJWbDNlR2hoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiQXBqYlRWc1lraE5kRmt5T1hSaVdGWjFZVmhTTlV4NU5XNWhXRkp2WkZkSmRtUXlPWGxoTWxwellqTmtla3d5U2pGaFYzaHJURmN4YUZsNU5UVlpWekZ6Q2xGSVNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJORUpuYjNKQ1owVkZRVmxQTDAxQlJVdENRMjlOUzBSbk5WcEVVWGRPVkZKdFRYcGpNVTVVUVhvS1QxZFJNVTVFWXpCWk1scHNXa1JCZWxwcVFUSmFSMVYzVFdwYWJGcFVTbXBhVkdOM1NGRlpTMHQzV1VKQ1FVZEVkbnBCUWtOM1VWQkVRVEZ1WVZoU2J3cGtWMGwwWVVjNWVtUkhWbXROUlVGSFEybHpSMEZSVVVKbk56aDNRVkYzUlUxbmQzZGhTRkl3WTBoTk5reDVPVzVoV0ZKdlpGZEpkVmt5T1hSTU1tZ3hDbG95WkhCaWJXUnRXVmRPYkV3eWRHeGpiVFZzWWtoTmRGa3lPWFJpV0ZaMVlWaFNOVTFFWjBkRGFYTkhRVkZSUW1jM09IZEJVVEJGUzJkM2IwOUViR3NLVGtSQk1VNUhXWHBPZWxVeFRVUk5OVnBFVlRCT2VsSnFXbTFXYTAxRVRtMU5SRnByV2xSQmVVNXRWbXhOYlU1c1RucEJaa0puYjNKQ1owVkZRVmxQTHdwTlFVVlBRa0pGVFVRelNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJZVUpuYjNKQ1owVkZRVmxQTDAxQlJWQkNRWGROUTJwRmQwNTZSVEJPZWxVeENrMXFhM2RNWjFsTFMzZFpRa0pCUjBSMmVrRkNSVUZSWjBSQ05XOWtTRkozWTNwdmRrd3laSEJrUjJneFdXazFhbUl5TUhaaFNGWnVXakpzZFZveVdtZ0tXVEpWZDBkQldVdExkMWxDUWtGSFJIWjZRVUpGVVZGTFJFRm5lVTVVWTNsTlJHTXdUWHBDZUVKbmIzSkNaMFZGUVZsUEwwMUJSVk5DUjAxTldWZG9NQXBrU0VKNlQyazRkbG95YkRCaFNGWnBURzFPZG1KVE9XOWtWMlJ1WVZjMWJscHRSbXBhVXpseVdsaEtkVnBYZUhwTVYwNTJZbGN4TVdKdGJEQmxVemgxQ2xveWJEQmhTRlpwVEROa2RtTnRkRzFpUnprelkzazVhV1JYYkhOYVF6RjBXVmROZFdWWFJuUmlSVUo1V2xkYWVrd3lhR3haVjFKNlRESXhhR0ZYTkhjS1QwRlpTMHQzV1VKQ1FVZEVkbnBCUWtWM1VYRkVRMmMwVDFkUk1FMUVWVEJhYWswelRsUlZkMDE2Ykd0T1ZGRXpUa2RPYlZwWFVYZE5NbGwzVG0xU2JBcE5SRWt5V2xkVmVWa3lWVE5OUTBWSFEybHpSMEZSVVVKbk56aDNRVkpSUlVWM2QxSmtNamw1WVRKYWMySXpaR1phUjJ4NlkwZEdNRmt5WjNkYVFWbExDa3QzV1VKQ1FVZEVkbnBCUWtaUlVsZEVSbEp2WkVoU2QyTjZiM1pNTW1Sd1pFZG9NVmxwTldwaU1qQjJZVWhXYmxveWJIVmFNbHBvV1RKVmRtRXlWbmtLWW0xV2MyTjVNV3BpTWpGMFpGYzFjR1JJYTNaWlYwNHdZVmM1ZFdONU9YbGtWelY2VEhwTk1FMVVRWHBOVkdOM1RtcHJlVXd5UmpCa1IxWjBZMGhTZWdwTWVrVjNSbWRaUzB0M1dVSkNRVWRFZG5wQlFrWm5VVWxFUVZwM1pGZEtjMkZYVFhkU1oxbExTM2RaUWtKQlIwUjJla0ZDUjBGUk5FUkVXbmxhV0VKMkNrOXRhREZhTW1Sd1ltMWtiVmxYVG14TU1uUnNZMjAxYkdKSVRYUlpNamwwWWxoV2RXRllValZQYmtwc1dtcHdlVnBYV25wTU1taHNXVmRTZWt3eU1XZ0tZVmMwZDJkWmMwZERhWE5IUVZGUlFqRnVhME5DUVVsRlpsRlNOMEZJYTBGa2QwUmtVRlJDY1hoelkxSk5iVTFhU0doNVdscDZZME52YTNCbGRVNDBPQXB5Wml0SWFXNUxRVXg1Ym5WcVowRkJRV0ZDTjA1QmIyMUJRVUZGUVhkQ1NVMUZXVU5KVVVNNVNFbDVNbk0xWTBGYVpYTkNTMU13T1N0amJXSklNR1JDQ21samMwOVdMM3BRZEVGdU0xSlJiVmRUZDBsb1FVNTNPVWhRSzB4VU1tSlVSa3RDSzFCTE5uQlFSakZwVWtWaVFVTXdiRU5qVG1NNGNHdE1TVzlMTlhrS1RVRnZSME5EY1VkVFRUUTVRa0ZOUkVFeWEwRk5SMWxEVFZGRU1qWXdRMVZVUzFWdWFVVmlZamc0VEZWcFIzSkxaSEkyUkROWk1raFpVa2haWkZCbVFRcFNTazVwZGxwM2FVdFlSRUpNYmpKWk4xZHdkVTVtVjNKeFFUQkRUVkZFTjB3NVJIUjZaVlY1VW10NVoyRTJiemRvVEV0WFNqTllOemhrUkV0emQxUTBDa1pMT0c5M2QzQXhOV3RqY3pGdVpXd3lZWHBzV1ZreVN6aDRaazFPWm1NOUNpMHRMUzB0UlU1RUlFTkZVbFJKUmtsRFFWUkZMUzB0TFMwSyJ9fX19"}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyzADAgEAMIICwgYJKoZIhvcNAQcCoIICszCCAq8CAQMxDTALBglghkgBZQMEAgEwgbgGCyqGSIb3DQEJEAEEoIGoBIGlMIGiAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgXuWK9V/0jnQBxEmwi1zsAAINh4HoQVIH/BYMrpUsaP8CFQDc6LUDhxy7qlVtD0kUHwuC7t15zhgPMjAyNjA5MDcwOTMwMDNaMAMCAQGgMqQwMC4xFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEVMBMGA1UEAxMMc2lnc3RvcmUtdHNhoAAxggHcMIIB2AIBATBRMDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAsGCWCGSAFlAwQCAaCB/DAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTI2MDkwNzA5MzAwM1owLwYJKoZIhvcNAQkEMSIEIFYOrXbErfHd1B2aswPKG7/Ln4vRRdbvX5kLSJI8/8CwMIGOBgsqhkiG9w0BCRACLzF/MH0wezB5BCCF+Se8B6tiysO0Q1bBDvyBssaIP9p6uebYcNnROs0FtzBVMD2kOzA5MRUwEwYDVQQKEwxzaWdzdG9yZS5kZXYxIDAeBgNVBAMTF3NpZ3N0b3JlLXRzYS1zZWxmc2lnbmVkAhQ6E1QvDJBh7rzBQy/Lio6LKiOLDDAKBggqhkjOPQQDAgRoMGYCMQD/8xEmSXwRiWdWZrMaqInJThIB1RBqcim+IdIZysBr8wFgQCHVeWvtEYzi90xeAN0CMQCUHaVo3+z2MhsQcqS0g6xXnI9Aw2LbmvcOdzrFjhKbfE0sChStzhCc0v4Tr5EZUiQ="}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"VV6tSeNVyUjzfUu9UWHGcyUaiFW54FAULevlKGTUVzw="},"signature":"MEQCIHEfzLe1wcH1Q3WdU+QPKXiDuNZ1WBRw4O48E41KvxoNAiAZloBhl9RuZ9TDheQ+FHOSTWpSLSvS3lgz+8HNVaxzbQ=="}}
 
1
+ {"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"MIIHQTCCBsegAwIBAgIUJX+aJt/dPEkLJCP1SmIiU8fFHC4wCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYxMDE5MTEwMzM2WhcNMjYxMDE5MTExMzM2WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEROpIwGaB0Gud/nGyxuBA4fFTaK6t2ncowgNEJ3RcJty6bb19gu3IgRU1RVnt6C0+bFhKNeY/QhV6fDG8ZWkYBqOCBeYwggXiMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAfBgNVHSMEGDAWgBTf0+nPViQRlvmo2OkoVaLGLhhkPzBvBgNVHREBAf8EZTBjhmFodHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQtbWFjLnlhbWxAcmVmcy9oZWFkcy9tYWluMDkGCisGAQQBg78wAQEEK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wHwYKKwYBBAGDvzABAgQRd29ya2Zsb3dfZGlzcGF0Y2gwNgYKKwYBBAGDvzABAwQoZmUyYmI2NmZlZTZjMmE3N2VjY2YwOGEwNTA4ZGM1NzQyOGQ0ODhlZDAbBgorBgEEAYO/MAEEBA1CdWlsZCAobWFjT1MpMCsGCisGAQQBg78wAQUEHWh1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MB0GCisGAQQBg78wAQYED3JlZnMvaGVhZHMvbWFpbjA7BgorBgEEAYO/MAEIBC0MK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wcQYKKwYBBAGDvzABCQRjDGFodHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQtbWFjLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wAQoEKgwoZmUyYmI2NmZlZTZjMmE3N2VjY2YwOGEwNTA4ZGM1NzQyOGQ0ODhlZDAdBgorBgEEAYO/MAELBA8MDWdpdGh1Yi1ob3N0ZWQwQAYKKwYBBAGDvzABDAQyDDBodHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkwOAYKKwYBBAGDvzABDQQqDChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMB8GCisGAQQBg78wAQ4EEQwPcmVmcy9oZWFkcy9tYWluMBoGCisGAQQBg78wAQ8EDAwKMTA3MTQ3NTUyOTAuBgorBgEEAYO/MAEQBCAMHmh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZTAYBgorBgEEAYO/MAERBAoMCDI1NzIwNzQzMHEGCisGAQQBg78wARIEYwxhaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLW1hYy55YW1sQHJlZnMvaGVhZHMvbWFpbjA4BgorBgEEAYO/MAETBCoMKGZlMmJiNjZmZWU2YzJhNzdlY2NmMDhhMDUwOGRjNTc0MjhkNDg4ZWQwIQYKKwYBBAGDvzABFAQTDBF3b3JrZmxvd19kaXNwYXRjaDBkBgorBgEEAYO/MAEVBFYMVGh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS9hY3Rpb25zL3J1bnMvMzkyMzk1MjcyOTIvYXR0ZW1wdHMvMTAWBgorBgEEAYO/MAEWBAgMBnB1YmxpYzBGBgorBgEEAYO/MAEYBDgMNnJlcG86aHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHk6cmVmOnJlZnMvaGVhZHMvbWFpbjCBiQYKKwYBBAHWeQIEAgR7BHkAdwB1AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABoVPUyKcAAAQDAEYwRAIgR5t7TkJCLyAiW6jgdKRKwrvYXo2qMry5+A8LstxhuWICIDz+JP8FtgamB5UFCW7gjwLG+VITGh9RQy9lVL2rdHqtMAoGCCqGSM49BAMDA2gAMGUCMC7+BYR3Jc4dao0IgJB8aUKI2Zl4QQTCD3sljXDnYoc5ziQpFbc+CiNUpZ7mPo+57QIxAMgSVfCDE7p3iIawwHWFSM9XiXwYNiRw6bR+A8eIdMwjV3Py5sGIFj629P8dkX2HFA=="},"tlogEntries":[{"logIndex":"3320110979","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1792407816","inclusionPromise":{"signedEntryTimestamp":"MEQCICzjVUoaWQCLhNJS8DGpP7z1DkE6+4ApH05CNlICS4XUAiBKTW9kau5B0CaTVi53e3mjx/QDY8Zf4XoR2uqFHrBc6w=="},"inclusionProof":{"logIndex":"3198206717","rootHash":"914yOfmQUg+M+iCLZzztxu8W669rghjMHV9a3TDmIgs=","treeSize":"3198206721","hashes":["5xb9VHwh5YcY1P6URO+0uGowowdvpuH4Gt4sOXlScfw=","oGHl+DnheR2851e17avh67s5ThBkCdvhoy6VtDxSZfo=","qbcqMWZxF5Ve1lnWPkQnOioEHj9a84+5vyubX4UU2II=","PwRQDWFJzNZ5F/3rAzpU10/B9O3vPob1BwyOAs6A1h8=","fLjiVGBaNB2W4uL5hYZ9gAGkNbzZr+0mS9rf4/dZMG0=","uF/v6HRQcgsU+Ysgu+lTcbE9QGl0OKbuMOC423Vn0Vg=","nc64r3Is9g7gSNNxhtjqwhPIj57WoOgwKI0wqAh+36Q=","R6FxYo+QNJcFswxXnMZWIOpBuDq2jfkKkxfn2PftPkQ=","BeaEnCrDNy6c9123s+I49GbjFtmSLGzLg6sLRbn9M+8=","CwBCuqAkeVZhjK66R5XeutytxmFWSlFTPAVBKldfDFA=","f4MktXqhBPk7ruDBxwgqTvXa7eCNzak9cUObXS0eTxI=","OlLDeTiZ1vIMDel4vGDtbNVnrFnzDe1MFV5rBN5Ep4o=","uCZQe757l2sS1c05Y7TzOwEm+X8MeGLIUCkEOmFVOz4=","nyQV/+cWQUG5Hb2PKjQQNkQIJmz2qzAZKBQlkHGIknM=","G+nk7mgE5h6dUmv2UY7NDJrY3WvrZY31raaO1AETt+o=","qlTWNDzERnTBQVcHHXXVPjiUP0SsikGxfcxVlgqVFDo=","gg9GNApNke3+zNhl4tsWtmIycCFrOMCB3lys6XuSQNQ=","NlOclldmKPA1tMKIskqHAwuQDYHp31YwpK+OOMrMccc=","qxzHanAzz57SDdmJe0B7bJK72NTIBbwEMGBBKvDOROw=","xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n3198206721\n914yOfmQUg+M+iCLZzztxu8W669rghjMHV9a3TDmIgs=\n\n— rekor.sigstore.dev wNI9ajBGAiEAvdH78MMzlur57CJEujTDb7LtQesEXqdY0erJHehxFDUCIQDzKUwvLIuoD1jlUf05E9Z4/M/q0vAIiv2337elypDkrw==\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiIxNWE3ZDlmNWVkNDY4ZDAwN2RjZTAzZjU1MjIyODFlNGIxMGMxMWI1MDM4NmIwMDNhODVlYTVhZjAxODQwYTljIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FUUNJQzB2d2JldkR2QUl3R0JIVGQ4TEJ0MVlMbDBpKysrQVByQjZ3M1h5blFhSUFpQXk0YTV3Y0ZwYXpQeU1ycGhyaGw3M2R1WGxENG1TbDJNQmxxK2RvMjBSZHc9PSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaFJWRU5EUW5ObFowRjNTVUpCWjBsVlNsZ3JZVXAwTDJSUVJXdE1Ta05RTVZOdFNXbFZPR1pHU0VNMGQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFplRTFFUlRWTlZFVjNUWHBOTWxkb1kwNU5hbGw0VFVSRk5VMVVSWGhOZWsweVYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZTVDNCSmQwZGhRakJIZFdRdmJrZDVlSFZDUVRSbVJsUmhTelowTW01amIzZG5Ua1VLU2pOU1kwcDBlVFppWWpFNVozVXpTV2RTVlRGU1ZtNTBOa013SzJKR2FFdE9aVmt2VVdoV05tWkVSemhhVjJ0WlFuRlBRMEpsV1hkbloxaHBUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXWkNaMDVXU0ZOTlJVZEVRVmRuUWxSbUNqQXJibEJXYVZGU2JIWnRiekpQYTI5V1lVeEhUR2hvYTFCNlFuWkNaMDVXU0ZKRlFrRm1PRVZhVkVKcWFHMUdiMlJJVW5kamVtOTJUREprY0dSSGFERUtXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWMllUSldlV0p0Vm5OamVURnFZakl4ZEdSWE5YQmtTR3QyVEcxa2NHUkhhREZaYVRrellqTktjZ3BhYlhoMlpETk5kbGx1Vm5CaVIxRjBZbGRHYWt4dWJHaGlWM2hCWTIxV2JXTjVPVzlhVjBaclkzazVkRmxYYkhWTlJHdEhRMmx6UjBGUlVVSm5OemgzQ2tGUlJVVkxNbWd3WkVoQ2VrOXBPSFprUnpseVdsYzBkVmxYVGpCaFZ6bDFZM2sxYm1GWVVtOWtWMG94WXpKV2VWa3lPWFZrUjFaMVpFTTFhbUl5TUhjS1NIZFpTMHQzV1VKQ1FVZEVkbnBCUWtGblVWSmtNamw1WVRKYWMySXpaR1phUjJ4NlkwZEdNRmt5WjNkT1oxbExTM2RaUWtKQlIwUjJla0ZDUVhkUmJ3cGFiVlY1V1cxSk1rNXRXbXhhVkZwcVRXMUZNMDR5Vm1wWk1sbDNUMGRGZDA1VVFUUmFSMDB4VG5wUmVVOUhVVEJQUkdoc1drUkJZa0puYjNKQ1owVkZDa0ZaVHk5TlFVVkZRa0V4UTJSWGJITmFRMEZ2WWxkR2FsUXhUWEJOUTNOSFEybHpSMEZSVVVKbk56aDNRVkZWUlVoWGFERmFNbVJ3WW0xa2JWbFhUbXdLVERKMGJHTnROV3hpU0UxMFdUSTVkR0pZVm5WaFdGSTFUVUl3UjBOcGMwZEJVVkZDWnpjNGQwRlJXVVZFTTBwc1dtNU5kbUZIVm1oYVNFMTJZbGRHY0FwaWFrRTNRbWR2Y2tKblJVVkJXVTh2VFVGRlNVSkRNRTFMTW1nd1pFaENlazlwT0haa1J6bHlXbGMwZFZsWFRqQmhWemwxWTNrMWJtRllVbTlrVjBveENtTXlWbmxaTWpsMVpFZFdkV1JETldwaU1qQjNZMUZaUzB0M1dVSkNRVWRFZG5wQlFrTlJVbXBFUjBadlpFaFNkMk42YjNaTU1tUndaRWRvTVZscE5Xb0tZakl3ZG1GSVZtNWFNbXgxV2pKYWFGa3lWWFpoTWxaNVltMVdjMk41TVdwaU1qRjBaRmMxY0dSSWEzWk1iV1J3WkVkb01WbHBPVE5pTTBweVdtMTRkZ3BrTTAxMldXNVdjR0pIVVhSaVYwWnFURzVzYUdKWGVFRmpiVlp0WTNrNWIxcFhSbXRqZVRsMFdWZHNkVTFFWjBkRGFYTkhRVkZSUW1jM09IZEJVVzlGQ2t0bmQyOWFiVlY1V1cxSk1rNXRXbXhhVkZwcVRXMUZNMDR5Vm1wWk1sbDNUMGRGZDA1VVFUUmFSMDB4VG5wUmVVOUhVVEJQUkdoc1drUkJaRUpuYjNJS1FtZEZSVUZaVHk5TlFVVk1Ra0U0VFVSWFpIQmtSMmd4V1dreGIySXpUakJhVjFGM1VVRlpTMHQzV1VKQ1FVZEVkbnBCUWtSQlVYbEVSRUp2WkVoU2R3cGplbTkyVERKa2NHUkhhREZaYVRWcVlqSXdkbUZJVm01YU1teDFXakphYUZreVZYWmhNbFo1WW0xV2MyTjVNV3BpTWpGMFpGYzFjR1JJYTNkUFFWbExDa3QzV1VKQ1FVZEVkbnBCUWtSUlVYRkVRMmh0V2xSS2FWbHFXVEphYlZac1RtMU5lVmxVWXpOYVYwNXFXbXBCTkZsVVFURk5SR2hyV1hwVk0wNUVTVFFLV2tSUk5FOUhWbXROUWpoSFEybHpSMEZSVVVKbk56aDNRVkUwUlVWUmQxQmpiVlp0WTNrNWIxcFhSbXRqZVRsMFdWZHNkVTFDYjBkRGFYTkhRVkZSUWdwbk56aDNRVkU0UlVSQmQwdE5WRUV6VFZSUk0wNVVWWGxQVkVGMVFtZHZja0puUlVWQldVOHZUVUZGVVVKRFFVMUliV2d3WkVoQ2VrOXBPSFphTW13d0NtRklWbWxNYlU1MllsTTViMlJYWkc1aFZ6VnVXbTFHYWxwVVFWbENaMjl5UW1kRlJVRlpUeTlOUVVWU1FrRnZUVU5FU1RGT2VrbDNUbnBSZWsxSVJVY0tRMmx6UjBGUlVVSm5OemgzUVZKSlJWbDNlR2hoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiQXBqYlRWc1lraE5kRmt5T1hSaVdGWjFZVmhTTlV4NU5XNWhXRkp2WkZkSmRtUXlPWGxoTWxwellqTmtla3d5U2pGaFYzaHJURmN4YUZsNU5UVlpWekZ6Q2xGSVNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJORUpuYjNKQ1owVkZRVmxQTDAxQlJWUkNRMjlOUzBkYWJFMXRTbWxPYWxwdFdsZFZNbGw2U21nS1RucGtiRmt5VG0xTlJHaG9UVVJWZDA5SFVtcE9WR013VFdwb2EwNUVaelJhVjFGM1NWRlpTMHQzV1VKQ1FVZEVkbnBCUWtaQlVWUkVRa1l6WWpOS2NncGFiWGgyWkRFNWEyRllUbmRaV0ZKcVlVUkNhMEpuYjNKQ1owVkZRVmxQTDAxQlJWWkNSbGxOVmtkb01HUklRbnBQYVRoMldqSnNNR0ZJVm1sTWJVNTJDbUpUT1c5a1YyUnVZVmMxYmxwdFJtcGFVemx5V2xoS2RWcFhlSHBNVjA1MllsY3hNV0p0YkRCbFV6bG9XVE5TY0dJeU5YcE1NMG94WW01TmRrMTZhM2tLVFhwck1VMXFZM2xQVkVsMldWaFNNRnBYTVhka1NFMTJUVlJCVjBKbmIzSkNaMFZGUVZsUEwwMUJSVmRDUVdkTlFtNUNNVmx0ZUhCWmVrSkhRbWR2Y2dwQ1owVkZRVmxQTDAxQlJWbENSR2ROVG01S2JHTkhPRFpoU0ZadVdqSnNkVm95V21oWk1sVjJZVEpXZVdKdFZuTmplVEZxWWpJeGRHUlhOWEJrU0dzMkNtTnRWbTFQYmtwc1dtNU5kbUZIVm1oYVNFMTJZbGRHY0dKcVEwSnBVVmxMUzNkWlFrSkJTRmRsVVVsRlFXZFNOMEpJYTBGa2QwSXhRVTR3T1UxSGNrY0tlSGhGZVZsNGEyVklTbXh1VG5kTGFWTnNOalF6YW5sMEx6UmxTMk52UVhaTFpUWlBRVUZCUW05V1VGVjVTMk5CUVVGUlJFRkZXWGRTUVVsblVqVjBOd3BVYTBwRFRIbEJhVmMyYW1ka1MxSkxkM0oyV1Zodk1uRk5jbmsxSzBFNFRITjBlR2gxVjBsRFNVUjZLMHBRT0VaMFoyRnRRalZWUmtOWE4yZHFkMHhIQ2l0V1NWUkhhRGxTVVhrNWJGWk1NbkprU0hGMFRVRnZSME5EY1VkVFRUUTVRa0ZOUkVFeVowRk5SMVZEVFVNM0swSlpVak5LWXpSa1lXOHdTV2RLUWpnS1lWVkxTVEphYkRSUlVWUkRSRE56YkdwWVJHNVpiMk0xZW1sUmNFWmlZeXREYVU1VmNGbzNiVkJ2S3pVM1VVbDRRVTFuVTFabVEwUkZOM0F6YVVsaGR3cDNTRmRHVTAwNVdHbFlkMWxPYVZKM05tSlNLMEU0WlVsa1RYZHFWak5RZVRWelIwbEdhall5T1ZBNFpHdFlNa2hHUVQwOUNpMHRMUzB0UlU1RUlFTkZVbFJKUmtsRFFWUkZMUzB0TFMwSyJ9fX19"}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyjADAgEAMIICwQYJKoZIhvcNAQcCoIICsjCCAq4CAQMxDTALBglghkgBZQMEAgEwgbgGCyqGSIb3DQEJEAEEoIGoBIGlMIGiAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgWhlF8DGPsUtkPixDy3++RMZJg5Nupth7QH5we8n4l1ICFQCWgqXqcZNtLpsd7i1MiIE6f3jM2BgPMjAyNjEwMTkxMTAzMzZaMAMCAQGgMqQwMC4xFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEVMBMGA1UEAxMMc2lnc3RvcmUtdHNhoAAxggHbMIIB1wIBATBRMDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAsGCWCGSAFlAwQCAaCB/DAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTI2MTAxOTExMDMzNlowLwYJKoZIhvcNAQkEMSIEIBi7m9JNEsg3gu8JrhDQfSidT7tUEtz9RG++OFKUt25KMIGOBgsqhkiG9w0BCRACLzF/MH0wezB5BCCF+Se8B6tiysO0Q1bBDvyBssaIP9p6uebYcNnROs0FtzBVMD2kOzA5MRUwEwYDVQQKEwxzaWdzdG9yZS5kZXYxIDAeBgNVBAMTF3NpZ3N0b3JlLXRzYS1zZWxmc2lnbmVkAhQ6E1QvDJBh7rzBQy/Lio6LKiOLDDAKBggqhkjOPQQDAgRnMGUCMQDY74oB64WKAsGROoUYrNin/4g2bb+bsx+X5U48gg37gERtqK2DPxpL66YklJ3yVn8CMFPKfGPjNnO0UW1S0U+UPRX21+wMzpPpGIeuuEOsqzc1NWUfzvTzNM9ZszgX31rz5w=="}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"FafZ9e1GjQB9zgP1UiKB5LEMEbUDhrADqF6lrwGECpw="},"signature":"MEQCIC0vwbevDvAIwGBHTd8LBt1YLl0i+++APrB6w3XynQaIAiAy4a5wcFpazPyMrphrhl73duXlD4mSl2MBlq+do20Rdw=="}}
build/torch214-metal-aarch64-darwin/symbols.json ADDED
@@ -0,0 +1,235 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "schema_version": 1,
3
+ "module": "_bitsandbytes_mps_metal_fe2bb66",
4
+ "functions": [
5
+ {
6
+ "name": "quantize_4bit",
7
+ "qualname": "quantize_4bit",
8
+ "module": "_bitsandbytes_mps_metal_fe2bb66",
9
+ "kind": "function",
10
+ "doc": "Blockwise 4-bit quantization using NF4 or FP4 codebook.\n\nArgs:\n input: Input tensor on MPS device (float16, bfloat16, or float32).\n blocksize: Number of elements per quantization block (64 or 128).\n quant_type: FP4 (1) or NF4 (2).\n\nReturns:\n Tuple of (packed, absmax):\n packed: uint8 tensor of packed 4-bit values [numel/2].\n absmax: float32 tensor of per-block max absolute values.",
11
+ "signature": {
12
+ "parameters": [
13
+ {
14
+ "name": "input",
15
+ "kind": "POSITIONAL_OR_KEYWORD",
16
+ "default": null,
17
+ "annotation": "torch.Tensor"
18
+ },
19
+ {
20
+ "name": "blocksize",
21
+ "kind": "POSITIONAL_OR_KEYWORD",
22
+ "default": "64",
23
+ "annotation": "int"
24
+ },
25
+ {
26
+ "name": "quant_type",
27
+ "kind": "POSITIONAL_OR_KEYWORD",
28
+ "default": "2",
29
+ "annotation": "int"
30
+ }
31
+ ],
32
+ "return_annotation": "Tuple[torch.Tensor, torch.Tensor]"
33
+ }
34
+ },
35
+ {
36
+ "name": "dequantize_4bit",
37
+ "qualname": "dequantize_4bit",
38
+ "module": "_bitsandbytes_mps_metal_fe2bb66",
39
+ "kind": "function",
40
+ "doc": "Blockwise 4-bit dequantization using NF4 or FP4 codebook.\n\nArgs:\n packed: uint8 tensor of packed 4-bit values.\n absmax: float32 tensor of per-block max absolute values.\n blocksize: Number of elements per quantization block (64 or 128).\n quant_type: FP4 (1) or NF4 (2).\n numel: Number of elements in the original tensor.\n If -1, inferred as packed.numel() * 2.\n output_dtype: Output scalar type.\n\nReturns:\n Dequantized tensor.",
41
+ "signature": {
42
+ "parameters": [
43
+ {
44
+ "name": "packed",
45
+ "kind": "POSITIONAL_OR_KEYWORD",
46
+ "default": null,
47
+ "annotation": "torch.Tensor"
48
+ },
49
+ {
50
+ "name": "absmax",
51
+ "kind": "POSITIONAL_OR_KEYWORD",
52
+ "default": null,
53
+ "annotation": "torch.Tensor"
54
+ },
55
+ {
56
+ "name": "blocksize",
57
+ "kind": "POSITIONAL_OR_KEYWORD",
58
+ "default": "64",
59
+ "annotation": "int"
60
+ },
61
+ {
62
+ "name": "quant_type",
63
+ "kind": "POSITIONAL_OR_KEYWORD",
64
+ "default": "2",
65
+ "annotation": "int"
66
+ },
67
+ {
68
+ "name": "numel",
69
+ "kind": "POSITIONAL_OR_KEYWORD",
70
+ "default": "-1",
71
+ "annotation": "int"
72
+ },
73
+ {
74
+ "name": "output_dtype",
75
+ "kind": "POSITIONAL_OR_KEYWORD",
76
+ "default": "torch.float16",
77
+ "annotation": "torch.dtype"
78
+ }
79
+ ],
80
+ "return_annotation": "torch.Tensor"
81
+ }
82
+ },
83
+ {
84
+ "name": "gemv_4bit",
85
+ "qualname": "gemv_4bit",
86
+ "module": "_bitsandbytes_mps_metal_fe2bb66",
87
+ "kind": "function",
88
+ "doc": "Fused matrix-vector multiply with 4-bit quantized weights.\n\nComputes y = dequant(W) @ x, where W is blockwise NF4/FP4 quantized.\n\nArgs:\n x: Input vector [..., K] on MPS device.\n w: Packed weight matrix [N, K/2] (uint8) on MPS device.\n absmax: Per-block scales [N, ceil(K/blocksize)] (float32).\n output_features: Number of output features (N).\n blocksize: Quantization block size (64 or 128).\n quant_type: FP4 (1) or NF4 (2).\n\nReturns:\n Output tensor [..., N].",
89
+ "signature": {
90
+ "parameters": [
91
+ {
92
+ "name": "x",
93
+ "kind": "POSITIONAL_OR_KEYWORD",
94
+ "default": null,
95
+ "annotation": "torch.Tensor"
96
+ },
97
+ {
98
+ "name": "w",
99
+ "kind": "POSITIONAL_OR_KEYWORD",
100
+ "default": null,
101
+ "annotation": "torch.Tensor"
102
+ },
103
+ {
104
+ "name": "absmax",
105
+ "kind": "POSITIONAL_OR_KEYWORD",
106
+ "default": null,
107
+ "annotation": "torch.Tensor"
108
+ },
109
+ {
110
+ "name": "output_features",
111
+ "kind": "POSITIONAL_OR_KEYWORD",
112
+ "default": null,
113
+ "annotation": "int"
114
+ },
115
+ {
116
+ "name": "blocksize",
117
+ "kind": "POSITIONAL_OR_KEYWORD",
118
+ "default": "64",
119
+ "annotation": "int"
120
+ },
121
+ {
122
+ "name": "quant_type",
123
+ "kind": "POSITIONAL_OR_KEYWORD",
124
+ "default": "2",
125
+ "annotation": "int"
126
+ }
127
+ ],
128
+ "return_annotation": "torch.Tensor"
129
+ }
130
+ },
131
+ {
132
+ "name": "gemm_4bit",
133
+ "qualname": "gemm_4bit",
134
+ "module": "_bitsandbytes_mps_metal_fe2bb66",
135
+ "kind": "function",
136
+ "doc": "Fused matrix-matrix multiply with 4-bit quantized transposed weights.\n\nComputes Y = X @ dequant(W).T, where W is blockwise NF4/FP4 quantized.\n\nArgs:\n x: Input matrix [..., M, K] on MPS device.\n w: Packed weight matrix [N, K/2] (uint8) on MPS device.\n absmax: Per-block scales [N, ceil(K/blocksize)] (float32).\n output_features: Number of output features (N).\n blocksize: Quantization block size (64 or 128).\n quant_type: FP4 (1) or NF4 (2).\n\nReturns:\n Output tensor [..., M, N].",
137
+ "signature": {
138
+ "parameters": [
139
+ {
140
+ "name": "x",
141
+ "kind": "POSITIONAL_OR_KEYWORD",
142
+ "default": null,
143
+ "annotation": "torch.Tensor"
144
+ },
145
+ {
146
+ "name": "w",
147
+ "kind": "POSITIONAL_OR_KEYWORD",
148
+ "default": null,
149
+ "annotation": "torch.Tensor"
150
+ },
151
+ {
152
+ "name": "absmax",
153
+ "kind": "POSITIONAL_OR_KEYWORD",
154
+ "default": null,
155
+ "annotation": "torch.Tensor"
156
+ },
157
+ {
158
+ "name": "output_features",
159
+ "kind": "POSITIONAL_OR_KEYWORD",
160
+ "default": null,
161
+ "annotation": "int"
162
+ },
163
+ {
164
+ "name": "blocksize",
165
+ "kind": "POSITIONAL_OR_KEYWORD",
166
+ "default": "64",
167
+ "annotation": "int"
168
+ },
169
+ {
170
+ "name": "quant_type",
171
+ "kind": "POSITIONAL_OR_KEYWORD",
172
+ "default": "2",
173
+ "annotation": "int"
174
+ }
175
+ ],
176
+ "return_annotation": "torch.Tensor"
177
+ }
178
+ },
179
+ {
180
+ "name": "linear_4bit",
181
+ "qualname": "linear_4bit",
182
+ "module": "_bitsandbytes_mps_metal_fe2bb66",
183
+ "kind": "function",
184
+ "doc": "4-bit quantized linear layer (auto-selects GEMV or GEMM).\n\nArgs:\n x: Input tensor on MPS device.\n w: Packed weight [N, K/2] (uint8).\n absmax: Scales [N, ceil(K/blocksize)] (float32).\n output_features: N.\n blocksize: 64 or 128.\n quant_type: FP4 (1) or NF4 (2).\n bias: Optional bias [N].\n\nReturns:\n Output tensor.",
185
+ "signature": {
186
+ "parameters": [
187
+ {
188
+ "name": "x",
189
+ "kind": "POSITIONAL_OR_KEYWORD",
190
+ "default": null,
191
+ "annotation": "torch.Tensor"
192
+ },
193
+ {
194
+ "name": "w",
195
+ "kind": "POSITIONAL_OR_KEYWORD",
196
+ "default": null,
197
+ "annotation": "torch.Tensor"
198
+ },
199
+ {
200
+ "name": "absmax",
201
+ "kind": "POSITIONAL_OR_KEYWORD",
202
+ "default": null,
203
+ "annotation": "torch.Tensor"
204
+ },
205
+ {
206
+ "name": "output_features",
207
+ "kind": "POSITIONAL_OR_KEYWORD",
208
+ "default": null,
209
+ "annotation": "int"
210
+ },
211
+ {
212
+ "name": "blocksize",
213
+ "kind": "POSITIONAL_OR_KEYWORD",
214
+ "default": "64",
215
+ "annotation": "int"
216
+ },
217
+ {
218
+ "name": "quant_type",
219
+ "kind": "POSITIONAL_OR_KEYWORD",
220
+ "default": "2",
221
+ "annotation": "int"
222
+ },
223
+ {
224
+ "name": "bias",
225
+ "kind": "POSITIONAL_OR_KEYWORD",
226
+ "default": "None",
227
+ "annotation": "torch.Tensor | None"
228
+ }
229
+ ],
230
+ "return_annotation": "torch.Tensor"
231
+ }
232
+ }
233
+ ],
234
+ "layers": []
235
+ }
build/torch215-metal-aarch64-darwin/__init__.py ADDED
@@ -0,0 +1,165 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from typing import Optional, Tuple
2
+
3
+ import torch
4
+
5
+ from ._ops import ops
6
+
7
+ # Quant type constants (match bitsandbytes DataType_t)
8
+ FP4 = 1
9
+ NF4 = 2
10
+
11
+
12
+ def quantize_4bit(
13
+ input: torch.Tensor,
14
+ blocksize: int = 64,
15
+ quant_type: int = NF4,
16
+ ) -> Tuple[torch.Tensor, torch.Tensor]:
17
+ """Blockwise 4-bit quantization using NF4 or FP4 codebook.
18
+
19
+ Args:
20
+ input: Input tensor on MPS device (float16, bfloat16, or float32).
21
+ blocksize: Number of elements per quantization block (64 or 128).
22
+ quant_type: FP4 (1) or NF4 (2).
23
+
24
+ Returns:
25
+ Tuple of (packed, absmax):
26
+ packed: uint8 tensor of packed 4-bit values [numel/2].
27
+ absmax: float32 tensor of per-block max absolute values.
28
+ """
29
+ return ops.bnb_quantize_4bit(input, blocksize, quant_type)
30
+
31
+
32
+ def dequantize_4bit(
33
+ packed: torch.Tensor,
34
+ absmax: torch.Tensor,
35
+ blocksize: int = 64,
36
+ quant_type: int = NF4,
37
+ numel: int = -1,
38
+ output_dtype: torch.dtype = torch.float16,
39
+ ) -> torch.Tensor:
40
+ """Blockwise 4-bit dequantization using NF4 or FP4 codebook.
41
+
42
+ Args:
43
+ packed: uint8 tensor of packed 4-bit values.
44
+ absmax: float32 tensor of per-block max absolute values.
45
+ blocksize: Number of elements per quantization block (64 or 128).
46
+ quant_type: FP4 (1) or NF4 (2).
47
+ numel: Number of elements in the original tensor.
48
+ If -1, inferred as packed.numel() * 2.
49
+ output_dtype: Output scalar type.
50
+
51
+ Returns:
52
+ Dequantized tensor.
53
+ """
54
+ if numel < 0:
55
+ numel = packed.numel() * 2
56
+ return ops.bnb_dequantize_4bit(
57
+ packed, absmax, blocksize, quant_type, numel, output_dtype
58
+ )
59
+
60
+
61
+ def gemv_4bit(
62
+ x: torch.Tensor,
63
+ w: torch.Tensor,
64
+ absmax: torch.Tensor,
65
+ output_features: int,
66
+ blocksize: int = 64,
67
+ quant_type: int = NF4,
68
+ ) -> torch.Tensor:
69
+ """Fused matrix-vector multiply with 4-bit quantized weights.
70
+
71
+ Computes y = dequant(W) @ x, where W is blockwise NF4/FP4 quantized.
72
+
73
+ Args:
74
+ x: Input vector [..., K] on MPS device.
75
+ w: Packed weight matrix [N, K/2] (uint8) on MPS device.
76
+ absmax: Per-block scales [N, ceil(K/blocksize)] (float32).
77
+ output_features: Number of output features (N).
78
+ blocksize: Quantization block size (64 or 128).
79
+ quant_type: FP4 (1) or NF4 (2).
80
+
81
+ Returns:
82
+ Output tensor [..., N].
83
+ """
84
+ return ops.bnb_gemv_4bit(x, w, absmax, blocksize, quant_type, output_features)
85
+
86
+
87
+ def gemm_4bit(
88
+ x: torch.Tensor,
89
+ w: torch.Tensor,
90
+ absmax: torch.Tensor,
91
+ output_features: int,
92
+ blocksize: int = 64,
93
+ quant_type: int = NF4,
94
+ ) -> torch.Tensor:
95
+ """Fused matrix-matrix multiply with 4-bit quantized transposed weights.
96
+
97
+ Computes Y = X @ dequant(W).T, where W is blockwise NF4/FP4 quantized.
98
+
99
+ Args:
100
+ x: Input matrix [..., M, K] on MPS device.
101
+ w: Packed weight matrix [N, K/2] (uint8) on MPS device.
102
+ absmax: Per-block scales [N, ceil(K/blocksize)] (float32).
103
+ output_features: Number of output features (N).
104
+ blocksize: Quantization block size (64 or 128).
105
+ quant_type: FP4 (1) or NF4 (2).
106
+
107
+ Returns:
108
+ Output tensor [..., M, N].
109
+ """
110
+ return ops.bnb_gemm_4bit(x, w, absmax, blocksize, quant_type, output_features)
111
+
112
+
113
+ def linear_4bit(
114
+ x: torch.Tensor,
115
+ w: torch.Tensor,
116
+ absmax: torch.Tensor,
117
+ output_features: int,
118
+ blocksize: int = 64,
119
+ quant_type: int = NF4,
120
+ bias: Optional[torch.Tensor] = None,
121
+ ) -> torch.Tensor:
122
+ """4-bit quantized linear layer (auto-selects GEMV or GEMM).
123
+
124
+ Args:
125
+ x: Input tensor on MPS device.
126
+ w: Packed weight [N, K/2] (uint8).
127
+ absmax: Scales [N, ceil(K/blocksize)] (float32).
128
+ output_features: N.
129
+ blocksize: 64 or 128.
130
+ quant_type: FP4 (1) or NF4 (2).
131
+ bias: Optional bias [N].
132
+
133
+ Returns:
134
+ Output tensor.
135
+ """
136
+ input_1d = x.dim() == 1
137
+ if input_1d or (x.dim() >= 2 and x.size(-2) == 1):
138
+ x_flat = x.view(x.size(-1)) if input_1d else x.squeeze(-2)
139
+ y = gemv_4bit(
140
+ x_flat,
141
+ w,
142
+ absmax,
143
+ output_features,
144
+ blocksize,
145
+ quant_type,
146
+ )
147
+ if input_1d:
148
+ y = y.squeeze(0)
149
+ elif x.dim() >= 2:
150
+ y = y.unsqueeze(-2)
151
+ else:
152
+ y = gemm_4bit(x, w, absmax, output_features, blocksize, quant_type)
153
+
154
+ if bias is not None:
155
+ y = y + bias
156
+
157
+ return y
158
+
159
+ __all__ = [
160
+ "quantize_4bit",
161
+ "dequantize_4bit",
162
+ "gemv_4bit",
163
+ "gemm_4bit",
164
+ "linear_4bit",
165
+ ]
build/torch215-metal-aarch64-darwin/_bitsandbytes_mps_metal_fe2bb66.abi3.so ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:48c151c35559914e2d86635a229be28dd09fe5c9123ec840e60a0f74cc967b7e
3
+ size 846168
build/torch215-metal-aarch64-darwin/_ops.py ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ import torch
2
+ from . import _bitsandbytes_mps_metal_fe2bb66
3
+ ops = torch.ops._bitsandbytes_mps_metal_fe2bb66
4
+
5
+ def add_op_namespace_prefix(op_name: str):
6
+ """
7
+ Prefix op by namespace.
8
+ """
9
+ return f"_bitsandbytes_mps_metal_fe2bb66::{op_name}"
build/torch215-metal-aarch64-darwin/metadata.json ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "bitsandbytes-mps",
3
+ "id": "_bitsandbytes_mps_metal_fe2bb66",
4
+ "version": 1,
5
+ "kernels-minver": "0.14.0",
6
+ "license": "MIT",
7
+ "python-depends": [],
8
+ "kernel-depends": [],
9
+ "backend": {
10
+ "type": "metal"
11
+ },
12
+ "digest": {
13
+ "algorithm": "sha256",
14
+ "files": {
15
+ "__init__.py": "rs6BtEpr3t1l0M2Rvw1/OjtqW+WocRyKcp8tNRLui9M=",
16
+ "_bitsandbytes_mps_metal_fe2bb66.abi3.so": "SMFRw1VZkU4thmNaIpvijdCf5ckSPshA5goPdMyWe34=",
17
+ "_ops.py": "KZ69wBm+uvagRpIJvyCWGxE7d3dVr9+r6zz16TO61lE=",
18
+ "symbols.json": "bp3qE0B/ix7Cb1dc0RFiDEzrr9mKJIC/lZgwMhDjkTI="
19
+ }
20
+ },
21
+ "provenance": {
22
+ "kernel-builder": {
23
+ "version": "0.18.0-dev0",
24
+ "commit": "d054906a13710b811b96697b4635f03020842733",
25
+ "dirty": false
26
+ },
27
+ "kernel": {
28
+ "commit": "fe2bb66fee6c2a77eccf08a0508dc57428d488ed",
29
+ "dirty": false
30
+ }
31
+ }
32
+ }
build/torch215-metal-aarch64-darwin/metadata.json.sigstore ADDED
@@ -0,0 +1 @@
 
 
1
+ {"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"MIIHQTCCBsegAwIBAgIUNTMknBBvQArZ5Ynq28SDcsAbxH0wCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYxMDE5MTEwMzM0WhcNMjYxMDE5MTExMzM0WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEH1bAmOtU762ykQoSH+r9flNLlEL2ExGO5JBs5kc6u6KOL3Ix2Ms8DGT/tf8OnW9Rg+L3fPNm9eJ0NMTZW+aGuaOCBeYwggXiMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAfBgNVHSMEGDAWgBTf0+nPViQRlvmo2OkoVaLGLhhkPzBvBgNVHREBAf8EZTBjhmFodHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQtbWFjLnlhbWxAcmVmcy9oZWFkcy9tYWluMDkGCisGAQQBg78wAQEEK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wHwYKKwYBBAGDvzABAgQRd29ya2Zsb3dfZGlzcGF0Y2gwNgYKKwYBBAGDvzABAwQoZmUyYmI2NmZlZTZjMmE3N2VjY2YwOGEwNTA4ZGM1NzQyOGQ0ODhlZDAbBgorBgEEAYO/MAEEBA1CdWlsZCAobWFjT1MpMCsGCisGAQQBg78wAQUEHWh1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MB0GCisGAQQBg78wAQYED3JlZnMvaGVhZHMvbWFpbjA7BgorBgEEAYO/MAEIBC0MK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wcQYKKwYBBAGDvzABCQRjDGFodHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQtbWFjLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wAQoEKgwoZmUyYmI2NmZlZTZjMmE3N2VjY2YwOGEwNTA4ZGM1NzQyOGQ0ODhlZDAdBgorBgEEAYO/MAELBA8MDWdpdGh1Yi1ob3N0ZWQwQAYKKwYBBAGDvzABDAQyDDBodHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkwOAYKKwYBBAGDvzABDQQqDChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMB8GCisGAQQBg78wAQ4EEQwPcmVmcy9oZWFkcy9tYWluMBoGCisGAQQBg78wAQ8EDAwKMTA3MTQ3NTUyOTAuBgorBgEEAYO/MAEQBCAMHmh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZTAYBgorBgEEAYO/MAERBAoMCDI1NzIwNzQzMHEGCisGAQQBg78wARIEYwxhaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLW1hYy55YW1sQHJlZnMvaGVhZHMvbWFpbjA4BgorBgEEAYO/MAETBCoMKGZlMmJiNjZmZWU2YzJhNzdlY2NmMDhhMDUwOGRjNTc0MjhkNDg4ZWQwIQYKKwYBBAGDvzABFAQTDBF3b3JrZmxvd19kaXNwYXRjaDBkBgorBgEEAYO/MAEVBFYMVGh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eS9hY3Rpb25zL3J1bnMvMzkyMzk1MjcyOTIvYXR0ZW1wdHMvMTAWBgorBgEEAYO/MAEWBAgMBnB1YmxpYzBGBgorBgEEAYO/MAEYBDgMNnJlcG86aHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHk6cmVmOnJlZnMvaGVhZHMvbWFpbjCBiQYKKwYBBAHWeQIEAgR7BHkAdwB1AN09MGrGxxEyYxkeHJlnNwKiSl643jyt/4eKcoAvKe6OAAABoVPUwTIAAAQDAEYwRAIgP9LojahyhBwRhoglfkaRXFLi44CVWSsuahDQXJjww9gCIBXfQEhVZC2or9qVPACToWA+3u4zn+MyelG9lDB0/afoMAoGCCqGSM49BAMDA2gAMGUCMQCZFSLZYCpRtC+5y/aX2w0cyqi20d5Ov9jf0a7AkI4Uj5pfVGw5UVp2HV3KV+erK9QCMHbTq0gB/nD2vD/2DyBn0il1XGWJZDPra2tvxA+9T/KrFkR8oS0xcSvLM0+joq4Eiw=="},"tlogEntries":[{"logIndex":"3320110923","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1792407814","inclusionPromise":{"signedEntryTimestamp":"MEYCIQD2l6uPgZtX5mGzZ5Ono5uJV3Y1tZ5rKKVYgsbSJbVjZgIhAKDoHM2emvPzHxuljmXZzOWBbIriW/TAZxIXxuJOnM+V"},"inclusionProof":{"logIndex":"3198206661","rootHash":"yA/mVotDEVy0T1NT4w0uP45toMFUlAr+bvRaRnbbDxQ=","treeSize":"3198206662","hashes":["CdeyRlG8SmtCjwgtZOXvXmdIAs2EPw/JuW1hilTR/bI=","xdKWJFxk/ogMEZbkNsppJCVSf2CK8sFoc09uLdKX2YE=","nc64r3Is9g7gSNNxhtjqwhPIj57WoOgwKI0wqAh+36Q=","R6FxYo+QNJcFswxXnMZWIOpBuDq2jfkKkxfn2PftPkQ=","CwBCuqAkeVZhjK66R5XeutytxmFWSlFTPAVBKldfDFA=","f4MktXqhBPk7ruDBxwgqTvXa7eCNzak9cUObXS0eTxI=","OlLDeTiZ1vIMDel4vGDtbNVnrFnzDe1MFV5rBN5Ep4o=","uCZQe757l2sS1c05Y7TzOwEm+X8MeGLIUCkEOmFVOz4=","nyQV/+cWQUG5Hb2PKjQQNkQIJmz2qzAZKBQlkHGIknM=","G+nk7mgE5h6dUmv2UY7NDJrY3WvrZY31raaO1AETt+o=","qlTWNDzERnTBQVcHHXXVPjiUP0SsikGxfcxVlgqVFDo=","gg9GNApNke3+zNhl4tsWtmIycCFrOMCB3lys6XuSQNQ=","NlOclldmKPA1tMKIskqHAwuQDYHp31YwpK+OOMrMccc=","qxzHanAzz57SDdmJe0B7bJK72NTIBbwEMGBBKvDOROw=","xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n3198206662\nyA/mVotDEVy0T1NT4w0uP45toMFUlAr+bvRaRnbbDxQ=\n\n— rekor.sigstore.dev wNI9ajBGAiEAyz1BaQH2Gbfkh5n9TscgQm/gZOag9WDmbPqPE7xNb3ICIQCW6vi5ZRbcrrWLLQy6TJVPCtiSQRCRgSDPT9SRCZbfiA==\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiJhYTdlNWQ3NDI4OWYzM2YwOTBjNmM2M2NmYmRhZTdjNDViOTA5NGQxODc5YTFkMTFkM2YyYjcwMzg1Njk0NWNiIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FUUNJR1A2R3B2R2VVQUJZdWZuZ3U4MW8rK2ppMnBFR1kyaG9MREZlUVZrRU9XVEFpQTBPZzdLUlFFN0FTbjZUZGoyZ0NUVHMwWFpPWEpZRE1wMFk5V1BnVzlWUXc9PSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaFJWRU5EUW5ObFowRjNTVUpCWjBsVlRsUk5hMjVDUW5aUlFYSmFOVmx1Y1RJNFUwUmpjMEZpZUVnd2QwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFplRTFFUlRWTlZFVjNUWHBOTUZkb1kwNU5hbGw0VFVSRk5VMVVSWGhOZWswd1YycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZJTVdKQmJVOTBWVGMyTW5sclVXOVRTQ3R5T1dac1RreHNSVXd5UlhoSFR6VktRbk1LTld0ak5uVTJTMDlNTTBsNE1rMXpPRVJIVkM5MFpqaFBibGM1VW1jclRETm1VRTV0T1dWS01FNU5WRnBYSzJGSGRXRlBRMEpsV1hkbloxaHBUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXWkNaMDVXU0ZOTlJVZEVRVmRuUWxSbUNqQXJibEJXYVZGU2JIWnRiekpQYTI5V1lVeEhUR2hvYTFCNlFuWkNaMDVXU0ZKRlFrRm1PRVZhVkVKcWFHMUdiMlJJVW5kamVtOTJUREprY0dSSGFERUtXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWMllUSldlV0p0Vm5OamVURnFZakl4ZEdSWE5YQmtTR3QyVEcxa2NHUkhhREZaYVRrellqTktjZ3BhYlhoMlpETk5kbGx1Vm5CaVIxRjBZbGRHYWt4dWJHaGlWM2hCWTIxV2JXTjVPVzlhVjBaclkzazVkRmxYYkhWTlJHdEhRMmx6UjBGUlVVSm5OemgzQ2tGUlJVVkxNbWd3WkVoQ2VrOXBPSFprUnpseVdsYzBkVmxYVGpCaFZ6bDFZM2sxYm1GWVVtOWtWMG94WXpKV2VWa3lPWFZrUjFaMVpFTTFhbUl5TUhjS1NIZFpTMHQzV1VKQ1FVZEVkbnBCUWtGblVWSmtNamw1WVRKYWMySXpaR1phUjJ4NlkwZEdNRmt5WjNkT1oxbExTM2RaUWtKQlIwUjJla0ZDUVhkUmJ3cGFiVlY1V1cxSk1rNXRXbXhhVkZwcVRXMUZNMDR5Vm1wWk1sbDNUMGRGZDA1VVFUUmFSMDB4VG5wUmVVOUhVVEJQUkdoc1drUkJZa0puYjNKQ1owVkZDa0ZaVHk5TlFVVkZRa0V4UTJSWGJITmFRMEZ2WWxkR2FsUXhUWEJOUTNOSFEybHpSMEZSVVVKbk56aDNRVkZWUlVoWGFERmFNbVJ3WW0xa2JWbFhUbXdLVERKMGJHTnROV3hpU0UxMFdUSTVkR0pZVm5WaFdGSTFUVUl3UjBOcGMwZEJVVkZDWnpjNGQwRlJXVVZFTTBwc1dtNU5kbUZIVm1oYVNFMTJZbGRHY0FwaWFrRTNRbWR2Y2tKblJVVkJXVTh2VFVGRlNVSkRNRTFMTW1nd1pFaENlazlwT0haa1J6bHlXbGMwZFZsWFRqQmhWemwxWTNrMWJtRllVbTlrVjBveENtTXlWbmxaTWpsMVpFZFdkV1JETldwaU1qQjNZMUZaUzB0M1dVSkNRVWRFZG5wQlFrTlJVbXBFUjBadlpFaFNkMk42YjNaTU1tUndaRWRvTVZscE5Xb0tZakl3ZG1GSVZtNWFNbXgxV2pKYWFGa3lWWFpoTWxaNVltMVdjMk41TVdwaU1qRjBaRmMxY0dSSWEzWk1iV1J3WkVkb01WbHBPVE5pTTBweVdtMTRkZ3BrTTAxMldXNVdjR0pIVVhSaVYwWnFURzVzYUdKWGVFRmpiVlp0WTNrNWIxcFhSbXRqZVRsMFdWZHNkVTFFWjBkRGFYTkhRVkZSUW1jM09IZEJVVzlGQ2t0bmQyOWFiVlY1V1cxSk1rNXRXbXhhVkZwcVRXMUZNMDR5Vm1wWk1sbDNUMGRGZDA1VVFUUmFSMDB4VG5wUmVVOUhVVEJQUkdoc1drUkJaRUpuYjNJS1FtZEZSVUZaVHk5TlFVVk1Ra0U0VFVSWFpIQmtSMmd4V1dreGIySXpUakJhVjFGM1VVRlpTMHQzV1VKQ1FVZEVkbnBCUWtSQlVYbEVSRUp2WkVoU2R3cGplbTkyVERKa2NHUkhhREZaYVRWcVlqSXdkbUZJVm01YU1teDFXakphYUZreVZYWmhNbFo1WW0xV2MyTjVNV3BpTWpGMFpGYzFjR1JJYTNkUFFWbExDa3QzV1VKQ1FVZEVkbnBCUWtSUlVYRkVRMmh0V2xSS2FWbHFXVEphYlZac1RtMU5lVmxVWXpOYVYwNXFXbXBCTkZsVVFURk5SR2hyV1hwVk0wNUVTVFFLV2tSUk5FOUhWbXROUWpoSFEybHpSMEZSVVVKbk56aDNRVkUwUlVWUmQxQmpiVlp0WTNrNWIxcFhSbXRqZVRsMFdWZHNkVTFDYjBkRGFYTkhRVkZSUWdwbk56aDNRVkU0UlVSQmQwdE5WRUV6VFZSUk0wNVVWWGxQVkVGMVFtZHZja0puUlVWQldVOHZUVUZGVVVKRFFVMUliV2d3WkVoQ2VrOXBPSFphTW13d0NtRklWbWxNYlU1MllsTTViMlJYWkc1aFZ6VnVXbTFHYWxwVVFWbENaMjl5UW1kRlJVRlpUeTlOUVVWU1FrRnZUVU5FU1RGT2VrbDNUbnBSZWsxSVJVY0tRMmx6UjBGUlVVSm5OemgzUVZKSlJWbDNlR2hoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiQXBqYlRWc1lraE5kRmt5T1hSaVdGWjFZVmhTTlV4NU5XNWhXRkp2WkZkSmRtUXlPWGxoTWxwellqTmtla3d5U2pGaFYzaHJURmN4YUZsNU5UVlpWekZ6Q2xGSVNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJORUpuYjNKQ1owVkZRVmxQTDAxQlJWUkNRMjlOUzBkYWJFMXRTbWxPYWxwdFdsZFZNbGw2U21nS1RucGtiRmt5VG0xTlJHaG9UVVJWZDA5SFVtcE9WR013VFdwb2EwNUVaelJhVjFGM1NWRlpTMHQzV1VKQ1FVZEVkbnBCUWtaQlVWUkVRa1l6WWpOS2NncGFiWGgyWkRFNWEyRllUbmRaV0ZKcVlVUkNhMEpuYjNKQ1owVkZRVmxQTDAxQlJWWkNSbGxOVmtkb01HUklRbnBQYVRoMldqSnNNR0ZJVm1sTWJVNTJDbUpUT1c5a1YyUnVZVmMxYmxwdFJtcGFVemx5V2xoS2RWcFhlSHBNVjA1MllsY3hNV0p0YkRCbFV6bG9XVE5TY0dJeU5YcE1NMG94WW01TmRrMTZhM2tLVFhwck1VMXFZM2xQVkVsMldWaFNNRnBYTVhka1NFMTJUVlJCVjBKbmIzSkNaMFZGUVZsUEwwMUJSVmRDUVdkTlFtNUNNVmx0ZUhCWmVrSkhRbWR2Y2dwQ1owVkZRVmxQTDAxQlJWbENSR2ROVG01S2JHTkhPRFpoU0ZadVdqSnNkVm95V21oWk1sVjJZVEpXZVdKdFZuTmplVEZxWWpJeGRHUlhOWEJrU0dzMkNtTnRWbTFQYmtwc1dtNU5kbUZIVm1oYVNFMTJZbGRHY0dKcVEwSnBVVmxMUzNkWlFrSkJTRmRsVVVsRlFXZFNOMEpJYTBGa2QwSXhRVTR3T1UxSGNrY0tlSGhGZVZsNGEyVklTbXh1VG5kTGFWTnNOalF6YW5sMEx6UmxTMk52UVhaTFpUWlBRVUZCUW05V1VGVjNWRWxCUVVGUlJFRkZXWGRTUVVsblVEbE1id3BxWVdoNWFFSjNVbWh2WjJ4bWEyRlNXRVpNYVRRMFExWlhVM04xWVdoRVVWaEthbmQzT1dkRFNVSllabEZGYUZaYVF6SnZjamx4VmxCQlExUnZWMEVyQ2pOMU5IcHVLMDE1Wld4SE9XeEVRakF2WVdadlRVRnZSME5EY1VkVFRUUTVRa0ZOUkVFeVowRk5SMVZEVFZGRFdrWlRURnBaUTNCU2RFTXJOWGt2WVZnS01uY3dZM2x4YVRJd1pEVlBkamxxWmpCaE4wRnJTVFJWYWpWd1psWkhkelZWVm5BeVNGWXpTMVlyWlhKTE9WRkRUVWhpVkhFd1owSXZia1F5ZGtRdk1ncEVlVUp1TUdsc01WaEhWMHBhUkZCeVlUSjBkbmhCS3psVUwwdHlSbXRTT0c5VE1IaGpVM1pNVFRBcmFtOXhORVZwZHowOUNpMHRMUzB0UlU1RUlFTkZVbFJKUmtsRFFWUkZMUzB0TFMwSyJ9fX19"}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyjADAgEAMIICwQYJKoZIhvcNAQcCoIICsjCCAq4CAQMxDTALBglghkgBZQMEAgEwgbgGCyqGSIb3DQEJEAEEoIGoBIGlMIGiAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgWc1oPkACYnqQjqYcyGBnVBnv1ib+mRGHyb3YSz4b8jcCFQCHol4xLQ3EamAOy2s1DJlTcpjpgxgPMjAyNjEwMTkxMTAzMzRaMAMCAQGgMqQwMC4xFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEVMBMGA1UEAxMMc2lnc3RvcmUtdHNhoAAxggHbMIIB1wIBATBRMDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAsGCWCGSAFlAwQCAaCB/DAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTI2MTAxOTExMDMzNFowLwYJKoZIhvcNAQkEMSIEIGCCMesCVjzwM8MxQoMj2AFekCXVP7ZG6jS1MoSUYGpVMIGOBgsqhkiG9w0BCRACLzF/MH0wezB5BCCF+Se8B6tiysO0Q1bBDvyBssaIP9p6uebYcNnROs0FtzBVMD2kOzA5MRUwEwYDVQQKEwxzaWdzdG9yZS5kZXYxIDAeBgNVBAMTF3NpZ3N0b3JlLXRzYS1zZWxmc2lnbmVkAhQ6E1QvDJBh7rzBQy/Lio6LKiOLDDAKBggqhkjOPQQDAgRnMGUCMDCcz943pjqyw5U3ZGArd9PnF+6LwfjgcsDntRCZAlBvmFeHwUSDF2nXnBZwRlr4YQIxAPVmwU8lELTKu21k4+e+Pg2GCwdqGLhA6s6nj6RV8V5eFtOtAQ+otT6B2wk0VUL1zw=="}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"qn5ddCifM/CQxsY8+9rnxFuQlNGHmh0R0/K3A4VpRcs="},"signature":"MEQCIGP6GpvGeUABYufngu81o++ji2pEGY2hoLDFeQVkEOWTAiA0Og7KRQE7ASn6Tdj2gCTTs0XZOXJYDMp0Y9WPgW9VQw=="}}
build/torch215-metal-aarch64-darwin/symbols.json ADDED
@@ -0,0 +1,235 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "schema_version": 1,
3
+ "module": "_bitsandbytes_mps_metal_fe2bb66",
4
+ "functions": [
5
+ {
6
+ "name": "quantize_4bit",
7
+ "qualname": "quantize_4bit",
8
+ "module": "_bitsandbytes_mps_metal_fe2bb66",
9
+ "kind": "function",
10
+ "doc": "Blockwise 4-bit quantization using NF4 or FP4 codebook.\n\nArgs:\n input: Input tensor on MPS device (float16, bfloat16, or float32).\n blocksize: Number of elements per quantization block (64 or 128).\n quant_type: FP4 (1) or NF4 (2).\n\nReturns:\n Tuple of (packed, absmax):\n packed: uint8 tensor of packed 4-bit values [numel/2].\n absmax: float32 tensor of per-block max absolute values.",
11
+ "signature": {
12
+ "parameters": [
13
+ {
14
+ "name": "input",
15
+ "kind": "POSITIONAL_OR_KEYWORD",
16
+ "default": null,
17
+ "annotation": "torch.Tensor"
18
+ },
19
+ {
20
+ "name": "blocksize",
21
+ "kind": "POSITIONAL_OR_KEYWORD",
22
+ "default": "64",
23
+ "annotation": "int"
24
+ },
25
+ {
26
+ "name": "quant_type",
27
+ "kind": "POSITIONAL_OR_KEYWORD",
28
+ "default": "2",
29
+ "annotation": "int"
30
+ }
31
+ ],
32
+ "return_annotation": "Tuple[torch.Tensor, torch.Tensor]"
33
+ }
34
+ },
35
+ {
36
+ "name": "dequantize_4bit",
37
+ "qualname": "dequantize_4bit",
38
+ "module": "_bitsandbytes_mps_metal_fe2bb66",
39
+ "kind": "function",
40
+ "doc": "Blockwise 4-bit dequantization using NF4 or FP4 codebook.\n\nArgs:\n packed: uint8 tensor of packed 4-bit values.\n absmax: float32 tensor of per-block max absolute values.\n blocksize: Number of elements per quantization block (64 or 128).\n quant_type: FP4 (1) or NF4 (2).\n numel: Number of elements in the original tensor.\n If -1, inferred as packed.numel() * 2.\n output_dtype: Output scalar type.\n\nReturns:\n Dequantized tensor.",
41
+ "signature": {
42
+ "parameters": [
43
+ {
44
+ "name": "packed",
45
+ "kind": "POSITIONAL_OR_KEYWORD",
46
+ "default": null,
47
+ "annotation": "torch.Tensor"
48
+ },
49
+ {
50
+ "name": "absmax",
51
+ "kind": "POSITIONAL_OR_KEYWORD",
52
+ "default": null,
53
+ "annotation": "torch.Tensor"
54
+ },
55
+ {
56
+ "name": "blocksize",
57
+ "kind": "POSITIONAL_OR_KEYWORD",
58
+ "default": "64",
59
+ "annotation": "int"
60
+ },
61
+ {
62
+ "name": "quant_type",
63
+ "kind": "POSITIONAL_OR_KEYWORD",
64
+ "default": "2",
65
+ "annotation": "int"
66
+ },
67
+ {
68
+ "name": "numel",
69
+ "kind": "POSITIONAL_OR_KEYWORD",
70
+ "default": "-1",
71
+ "annotation": "int"
72
+ },
73
+ {
74
+ "name": "output_dtype",
75
+ "kind": "POSITIONAL_OR_KEYWORD",
76
+ "default": "torch.float16",
77
+ "annotation": "torch.dtype"
78
+ }
79
+ ],
80
+ "return_annotation": "torch.Tensor"
81
+ }
82
+ },
83
+ {
84
+ "name": "gemv_4bit",
85
+ "qualname": "gemv_4bit",
86
+ "module": "_bitsandbytes_mps_metal_fe2bb66",
87
+ "kind": "function",
88
+ "doc": "Fused matrix-vector multiply with 4-bit quantized weights.\n\nComputes y = dequant(W) @ x, where W is blockwise NF4/FP4 quantized.\n\nArgs:\n x: Input vector [..., K] on MPS device.\n w: Packed weight matrix [N, K/2] (uint8) on MPS device.\n absmax: Per-block scales [N, ceil(K/blocksize)] (float32).\n output_features: Number of output features (N).\n blocksize: Quantization block size (64 or 128).\n quant_type: FP4 (1) or NF4 (2).\n\nReturns:\n Output tensor [..., N].",
89
+ "signature": {
90
+ "parameters": [
91
+ {
92
+ "name": "x",
93
+ "kind": "POSITIONAL_OR_KEYWORD",
94
+ "default": null,
95
+ "annotation": "torch.Tensor"
96
+ },
97
+ {
98
+ "name": "w",
99
+ "kind": "POSITIONAL_OR_KEYWORD",
100
+ "default": null,
101
+ "annotation": "torch.Tensor"
102
+ },
103
+ {
104
+ "name": "absmax",
105
+ "kind": "POSITIONAL_OR_KEYWORD",
106
+ "default": null,
107
+ "annotation": "torch.Tensor"
108
+ },
109
+ {
110
+ "name": "output_features",
111
+ "kind": "POSITIONAL_OR_KEYWORD",
112
+ "default": null,
113
+ "annotation": "int"
114
+ },
115
+ {
116
+ "name": "blocksize",
117
+ "kind": "POSITIONAL_OR_KEYWORD",
118
+ "default": "64",
119
+ "annotation": "int"
120
+ },
121
+ {
122
+ "name": "quant_type",
123
+ "kind": "POSITIONAL_OR_KEYWORD",
124
+ "default": "2",
125
+ "annotation": "int"
126
+ }
127
+ ],
128
+ "return_annotation": "torch.Tensor"
129
+ }
130
+ },
131
+ {
132
+ "name": "gemm_4bit",
133
+ "qualname": "gemm_4bit",
134
+ "module": "_bitsandbytes_mps_metal_fe2bb66",
135
+ "kind": "function",
136
+ "doc": "Fused matrix-matrix multiply with 4-bit quantized transposed weights.\n\nComputes Y = X @ dequant(W).T, where W is blockwise NF4/FP4 quantized.\n\nArgs:\n x: Input matrix [..., M, K] on MPS device.\n w: Packed weight matrix [N, K/2] (uint8) on MPS device.\n absmax: Per-block scales [N, ceil(K/blocksize)] (float32).\n output_features: Number of output features (N).\n blocksize: Quantization block size (64 or 128).\n quant_type: FP4 (1) or NF4 (2).\n\nReturns:\n Output tensor [..., M, N].",
137
+ "signature": {
138
+ "parameters": [
139
+ {
140
+ "name": "x",
141
+ "kind": "POSITIONAL_OR_KEYWORD",
142
+ "default": null,
143
+ "annotation": "torch.Tensor"
144
+ },
145
+ {
146
+ "name": "w",
147
+ "kind": "POSITIONAL_OR_KEYWORD",
148
+ "default": null,
149
+ "annotation": "torch.Tensor"
150
+ },
151
+ {
152
+ "name": "absmax",
153
+ "kind": "POSITIONAL_OR_KEYWORD",
154
+ "default": null,
155
+ "annotation": "torch.Tensor"
156
+ },
157
+ {
158
+ "name": "output_features",
159
+ "kind": "POSITIONAL_OR_KEYWORD",
160
+ "default": null,
161
+ "annotation": "int"
162
+ },
163
+ {
164
+ "name": "blocksize",
165
+ "kind": "POSITIONAL_OR_KEYWORD",
166
+ "default": "64",
167
+ "annotation": "int"
168
+ },
169
+ {
170
+ "name": "quant_type",
171
+ "kind": "POSITIONAL_OR_KEYWORD",
172
+ "default": "2",
173
+ "annotation": "int"
174
+ }
175
+ ],
176
+ "return_annotation": "torch.Tensor"
177
+ }
178
+ },
179
+ {
180
+ "name": "linear_4bit",
181
+ "qualname": "linear_4bit",
182
+ "module": "_bitsandbytes_mps_metal_fe2bb66",
183
+ "kind": "function",
184
+ "doc": "4-bit quantized linear layer (auto-selects GEMV or GEMM).\n\nArgs:\n x: Input tensor on MPS device.\n w: Packed weight [N, K/2] (uint8).\n absmax: Scales [N, ceil(K/blocksize)] (float32).\n output_features: N.\n blocksize: 64 or 128.\n quant_type: FP4 (1) or NF4 (2).\n bias: Optional bias [N].\n\nReturns:\n Output tensor.",
185
+ "signature": {
186
+ "parameters": [
187
+ {
188
+ "name": "x",
189
+ "kind": "POSITIONAL_OR_KEYWORD",
190
+ "default": null,
191
+ "annotation": "torch.Tensor"
192
+ },
193
+ {
194
+ "name": "w",
195
+ "kind": "POSITIONAL_OR_KEYWORD",
196
+ "default": null,
197
+ "annotation": "torch.Tensor"
198
+ },
199
+ {
200
+ "name": "absmax",
201
+ "kind": "POSITIONAL_OR_KEYWORD",
202
+ "default": null,
203
+ "annotation": "torch.Tensor"
204
+ },
205
+ {
206
+ "name": "output_features",
207
+ "kind": "POSITIONAL_OR_KEYWORD",
208
+ "default": null,
209
+ "annotation": "int"
210
+ },
211
+ {
212
+ "name": "blocksize",
213
+ "kind": "POSITIONAL_OR_KEYWORD",
214
+ "default": "64",
215
+ "annotation": "int"
216
+ },
217
+ {
218
+ "name": "quant_type",
219
+ "kind": "POSITIONAL_OR_KEYWORD",
220
+ "default": "2",
221
+ "annotation": "int"
222
+ },
223
+ {
224
+ "name": "bias",
225
+ "kind": "POSITIONAL_OR_KEYWORD",
226
+ "default": "None",
227
+ "annotation": "torch.Tensor | None"
228
+ }
229
+ ],
230
+ "return_annotation": "torch.Tensor"
231
+ }
232
+ }
233
+ ],
234
+ "layers": []
235
+ }