kernels-bot commited on
Commit
10bc0bf
·
verified ·
1 Parent(s): 8cd32bb

Uploaded using `kernel-builder`.

Browse files
Files changed (31) hide show
  1. build/torch-stable-abi210-cu126-aarch64-linux/_ops.py +3 -3
  2. build/torch-stable-abi210-cu126-aarch64-linux/{_tdt_loss_cuda_8bdd234.abi3.so → _tdt_loss_cuda_fe2bb66.abi3.so} +1 -1
  3. build/torch-stable-abi210-cu126-aarch64-linux/metadata.json +7 -6
  4. build/torch-stable-abi210-cu126-aarch64-linux/metadata.json.sigstore +1 -1
  5. build/torch-stable-abi210-cu126-aarch64-linux/symbols.json +73 -0
  6. build/torch-stable-abi210-cu128-aarch64-linux/__init__.py +6 -0
  7. build/torch-stable-abi210-cu128-aarch64-linux/_ops.py +9 -0
  8. build/torch-stable-abi210-cu128-aarch64-linux/_tdt_loss_cuda_fe2bb66.abi3.so +3 -0
  9. build/torch-stable-abi210-cu128-aarch64-linux/layers.py +40 -0
  10. build/torch-stable-abi210-cu128-aarch64-linux/loss.py +254 -0
  11. build/torch-stable-abi210-cu128-aarch64-linux/metadata.json +47 -0
  12. build/torch-stable-abi210-cu128-aarch64-linux/metadata.json.sigstore +1 -0
  13. build/torch-stable-abi210-cu128-aarch64-linux/symbols.json +73 -0
  14. build/torch-stable-abi210-cu130-aarch64-linux/_ops.py +3 -3
  15. build/torch-stable-abi210-cu130-aarch64-linux/{_tdt_loss_cuda_8bdd234.abi3.so → _tdt_loss_cuda_fe2bb66.abi3.so} +1 -1
  16. build/torch-stable-abi210-cu130-aarch64-linux/metadata.json +7 -6
  17. build/torch-stable-abi210-cu130-aarch64-linux/metadata.json.sigstore +1 -1
  18. build/torch-stable-abi210-cu130-aarch64-linux/symbols.json +73 -0
  19. build/torch-stable-abi210-cu132-aarch64-linux/_ops.py +3 -3
  20. build/torch-stable-abi210-cu132-aarch64-linux/{_tdt_loss_cuda_8bdd234.abi3.so → _tdt_loss_cuda_fe2bb66.abi3.so} +1 -1
  21. build/torch-stable-abi210-cu132-aarch64-linux/metadata.json +7 -6
  22. build/torch-stable-abi210-cu132-aarch64-linux/metadata.json.sigstore +1 -1
  23. build/torch-stable-abi210-cu132-aarch64-linux/symbols.json +73 -0
  24. build/torch-stable-abi210-cu134-aarch64-linux/__init__.py +6 -0
  25. build/torch-stable-abi210-cu134-aarch64-linux/_ops.py +9 -0
  26. build/torch-stable-abi210-cu134-aarch64-linux/_tdt_loss_cuda_fe2bb66.abi3.so +3 -0
  27. build/torch-stable-abi210-cu134-aarch64-linux/layers.py +40 -0
  28. build/torch-stable-abi210-cu134-aarch64-linux/loss.py +254 -0
  29. build/torch-stable-abi210-cu134-aarch64-linux/metadata.json +47 -0
  30. build/torch-stable-abi210-cu134-aarch64-linux/metadata.json.sigstore +1 -0
  31. build/torch-stable-abi210-cu134-aarch64-linux/symbols.json +73 -0
build/torch-stable-abi210-cu126-aarch64-linux/_ops.py CHANGED
@@ -1,9 +1,9 @@
1
  import torch
2
- from . import _tdt_loss_cuda_8bdd234
3
- ops = torch.ops._tdt_loss_cuda_8bdd234
4
 
5
  def add_op_namespace_prefix(op_name: str):
6
  """
7
  Prefix op by namespace.
8
  """
9
- return f"_tdt_loss_cuda_8bdd234::{op_name}"
 
1
  import torch
2
+ from . import _tdt_loss_cuda_fe2bb66
3
+ ops = torch.ops._tdt_loss_cuda_fe2bb66
4
 
5
  def add_op_namespace_prefix(op_name: str):
6
  """
7
  Prefix op by namespace.
8
  """
9
+ return f"_tdt_loss_cuda_fe2bb66::{op_name}"
build/torch-stable-abi210-cu126-aarch64-linux/{_tdt_loss_cuda_8bdd234.abi3.so → _tdt_loss_cuda_fe2bb66.abi3.so} RENAMED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:d38219e9b5d80e16509f5d6d96a962bfa6d1fae103cf97146cc355725aadba48
3
  size 1730248
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:17ce2fa8efc614ef544e7b39355c94e019e610538d6f5acd9ca2a062e8741858
3
  size 1730248
build/torch-stable-abi210-cu126-aarch64-linux/metadata.json CHANGED
@@ -1,6 +1,6 @@
1
  {
2
  "name": "tdt-loss",
3
- "id": "_tdt_loss_cuda_8bdd234",
4
  "version": 1,
5
  "kernels-minver": "0.14.0",
6
  "license": "Apache-2.0",
@@ -23,20 +23,21 @@
23
  "algorithm": "sha256",
24
  "files": {
25
  "__init__.py": "lJBeJMzaqMSucC/K3266DuYA0JHw96ji1i/gcrHN/ik=",
26
- "_ops.py": "cH0xzOWosVtZ2ezM/hTe5ql5CGAnZ5/YPobUSLaDVKs=",
27
- "_tdt_loss_cuda_8bdd234.abi3.so": "04IZ6bXYDhZQn11tlqliv6bR+uEDz5cUbMNVclqtukg=",
28
  "layers.py": "76Xr2iKOW3v6xtD8gct2jH6LMwVbqJSD8txMe5r0Nlk=",
29
- "loss.py": "wxR68dHg9dUSiG/YOrtbNDQ5CSxHgkWAETZe1VE1FQM="
 
30
  }
31
  },
32
  "provenance": {
33
  "kernel-builder": {
34
  "version": "0.18.0-dev0",
35
- "commit": "a56da98e235a3f52b4b766e4d93fac6a9e599e3d",
36
  "dirty": false
37
  },
38
  "kernel": {
39
- "commit": "8bdd23441c0aad1e36878aec98bd0f05d69eaa6a",
40
  "dirty": false
41
  }
42
  }
 
1
  {
2
  "name": "tdt-loss",
3
+ "id": "_tdt_loss_cuda_fe2bb66",
4
  "version": 1,
5
  "kernels-minver": "0.14.0",
6
  "license": "Apache-2.0",
 
23
  "algorithm": "sha256",
24
  "files": {
25
  "__init__.py": "lJBeJMzaqMSucC/K3266DuYA0JHw96ji1i/gcrHN/ik=",
26
+ "_ops.py": "OrFGElR/Z4ojQBmY0Ij0VyxBZHlO4uCyCD9TW8uuAdQ=",
27
+ "_tdt_loss_cuda_fe2bb66.abi3.so": "F84vqO/GFO9UTns5NVyU4BnmEFONb1rNnKKgYuh0GFg=",
28
  "layers.py": "76Xr2iKOW3v6xtD8gct2jH6LMwVbqJSD8txMe5r0Nlk=",
29
+ "loss.py": "wxR68dHg9dUSiG/YOrtbNDQ5CSxHgkWAETZe1VE1FQM=",
30
+ "symbols.json": "Uu88dl5tWmpC533wKqo0ZaZ8dXHuzmevhNOI/bXFxbc="
31
  }
32
  },
33
  "provenance": {
34
  "kernel-builder": {
35
  "version": "0.18.0-dev0",
36
+ "commit": "d054906a13710b811b96697b4635f03020842733",
37
  "dirty": false
38
  },
39
  "kernel": {
40
+ "commit": "fe2bb66fee6c2a77eccf08a0508dc57428d488ed",
41
  "dirty": false
42
  }
43
  }
build/torch-stable-abi210-cu126-aarch64-linux/metadata.json.sigstore CHANGED
@@ -1 +1 @@
1
- {"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"MIIHLTCCBrKgAwIBAgIUa6CEaRKBe1Xr0Q5EUev1UiucxPQwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYxMDA5MTY0MTQ1WhcNMjYxMDA5MTY1MTQ1WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWXZELN/K+6U1a3YvB8KPDwPaH7+h0bmFm/tpg+rajpiEsOu5lVpEEi9eftTju98HZkEDwas9Eb55qpG//Yfp96OCBdEwggXNMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAfBgNVHSMEGDAWgBTf0+nPViQRlvmo2OkoVaLGLhhkPzBrBgNVHREBAf8EYTBfhl1odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQueWFtbEByZWZzL2hlYWRzL21haW4wOQYKKwYBBAGDvzABAQQraHR0cHM6Ly90b2tlbi5hY3Rpb25zLmdpdGh1YnVzZXJjb250ZW50LmNvbTAfBgorBgEEAYO/MAECBBF3b3JrZmxvd19kaXNwYXRjaDA2BgorBgEEAYO/MAEDBCg4YmRkMjM0NDFjMGFhZDFlMzY4NzhhZWM5OGJkMGYwNWQ2OWVhYTZhMBMGCisGAQQBg78wAQQEBUJ1aWxkMCsGCisGAQQBg78wAQUEHWh1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MB0GCisGAQQBg78wAQYED3JlZnMvaGVhZHMvbWFpbjA7BgorBgEEAYO/MAEIBC0MK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wbQYKKwYBBAGDvzABCQRfDF1odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQueWFtbEByZWZzL2hlYWRzL21haW4wOAYKKwYBBAGDvzABCgQqDCg4YmRkMjM0NDFjMGFhZDFlMzY4NzhhZWM5OGJkMGYwNWQ2OWVhYTZhMBsGCisGAQQBg78wAQsEDQwLc2VsZi1ob3N0ZWQwQAYKKwYBBAGDvzABDAQyDDBodHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkwOAYKKwYBBAGDvzABDQQqDCg4YmRkMjM0NDFjMGFhZDFlMzY4NzhhZWM5OGJkMGYwNWQ2OWVhYTZhMB8GCisGAQQBg78wAQ4EEQwPcmVmcy9oZWFkcy9tYWluMBoGCisGAQQBg78wAQ8EDAwKMTA3MTQ3NTUyOTAuBgorBgEEAYO/MAEQBCAMHmh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZTAYBgorBgEEAYO/MAERBAoMCDI1NzIwNzQzMG0GCisGAQQBg78wARIEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wARMEKgwoOGJkZDIzNDQxYzBhYWQxZTM2ODc4YWVjOThiZDBmMDVkNjllYWE2YTAhBgorBgEEAYO/MAEUBBMMEXdvcmtmbG93X2Rpc3BhdGNoMGQGCisGAQQBg78wARUEVgxUaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5L2FjdGlvbnMvcnVucy8zNzk2MDQ1OTE3MC9hdHRlbXB0cy8xMBYGCisGAQQBg78wARYECAwGcHVibGljMEYGCisGAQQBg78wARgEOAw2cmVwbzpodWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTpyZWY6cmVmcy9oZWFkcy9tYWluMIGKBgorBgEEAdZ5AgQCBHwEegB4AHYA3T0wasbHETJjGR4cmWc3AqJKXrjePK3/h4pygC8p7o4AAAGhIYrHXAAABAMARzBFAiAjQdpLCn5m49BwNObNNPt9qGCbqt7U07ClFl4NOjvtRgIhAIwjn+rPa6FtZwaM7269R9RjOQUHuC1pww/w6PajAquCMAoGCCqGSM49BAMDA2kAMGYCMQDK/Sp9U4YycOTKJKvB5FRpKUfMnjY80ljc1yoOuGssx5/qFsbGwdBic6A3/9031AYCMQDoID9gBcx2wsOp1CXR1APCOHXLvE02LdPJXKJKwcldBh+jXd7+eiOxlI0oGKpQ/7I="},"tlogEntries":[{"logIndex":"3167887056","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1791564106","inclusionPromise":{"signedEntryTimestamp":"MEUCIQDbbjXD6a88/6QttFc/sOGb0C1W3H3LpYbFCWwjl9GvpgIgX0XPEsXzvRNg6gpcVZE1S2/zv45EFxYmhk+0tO+tfBM="},"inclusionProof":{"logIndex":"3045982794","rootHash":"iRqUyCW97Lq79bnwmHCiKCiua3fjIW8M56fuKLAH0GI=","treeSize":"3045983212","hashes":["oa7n2UrnG0FslO5xYdSbJfp4dhI80uyITJVX7jrLg/0=","TylS0Xu3IMeL6fTN6YUojcoj/vOSFxMvHtyYtub7Nco=","r4COXvJS+JSOuJNc1vdd0AAOkhDf1PaeglGuozsvXRo=","h1lvBym/QYNISw04huMst/Y6dofNBJMR0dW3cMQjpPc=","Nyov7Fb3yiS3zBWpUdGG92+4JprHV0pPk51kxdMjt1M=","uv8UBiDpcEMnjEFeE7XW2tMixqtPGRzmvvaYT7YfwjQ=","LqM4nSk0Sg1zZRL72AJbToGBBG+QzLMCZJ1ouwGQP50=","Aj/f5UjV7UGiTqWsJRk2AZUqlmWAaecHRuMEXEugXFU=","wRhm7D7rO6jRitgk0aaYPYpbRJBf8oqkvqQdMrzm5c0=","dUhtx7NU5mebByscTcUMDS3blWdPbgNsHpJTq5CnDAs=","XMzAouyPItjmFBcAg/oorHRQD6qGd0heiVJVWc4Vr9A=","qjjBYB6D8Ah105gg7+wzLiP3mSHKyVl6MylyqpGKKio=","CEC6YzIAZg/5EuXuZ/n+5om4p5ZrF6WsPyYyOsor0mw=","4Qh+oTbYMNZG8o6b5TjkLowu8zTMD/YGtu9os93Mfiw=","wSaHrpTQFjMB4RSxQVUhglqJvAGe2z1ilppo9GSYLkY=","hafZfJdzUX/yyCr3Anv7Qq1DWVaWxotaclNRcl/O9SQ=","NlOclldmKPA1tMKIskqHAwuQDYHp31YwpK+OOMrMccc=","qxzHanAzz57SDdmJe0B7bJK72NTIBbwEMGBBKvDOROw=","xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n3045983212\niRqUyCW97Lq79bnwmHCiKCiua3fjIW8M56fuKLAH0GI=\n\n— rekor.sigstore.dev wNI9ajBEAiAfiKROwDRB2KlWsknrEF2TzTan1ULr9H+9D+xe0gWKSgIgaZm5SdnwI3S3Merk27TrQ1BEiuMVGw5gQx2Pd4v68vY=\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiIwMzM5MTdmZjEyZDhlYzUzYmM1MGE2M2E1NDVjYzVmNjM5OWI2YjMzMWU3M2QxNmM5MGViY2U1ODAwYzVhYWIzIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJRHhTaGpIeWtuaHpjc0FFMm5yWmVGWCtFZlI4L2VER2N2aHF6QWc3K2JUZUFpRUFzaWVCSDQzbDlVR1FQMzBSVzN5ZEVmeW41MEsyK1htSGVSWFRrTzRGVlhvPSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaE1WRU5EUW5KTFowRjNTVUpCWjBsVllUWkRSV0ZTUzBKbE1WaHlNRkUxUlZWbGRqRlZhWFZqZUZCUmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFplRTFFUVRWTlZGa3dUVlJSTVZkb1kwNU5hbGw0VFVSQk5VMVVXVEZOVkZFeFYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZYV0ZwRlRFNHZTeXMyVlRGaE0xbDJRamhMVUVSM1VHRklOeXRvTUdKdFJtMHZkSEFLWnl0eVlXcHdhVVZ6VDNVMWJGWndSVVZwT1dWbWRGUnFkVGs0U0ZwclJVUjNZWE01UldJMU5YRndSeTh2V1dad09UWlBRMEprUlhkbloxaE9UVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXWkNaMDVXU0ZOTlJVZEVRVmRuUWxSbUNqQXJibEJXYVZGU2JIWnRiekpQYTI5V1lVeEhUR2hvYTFCNlFuSkNaMDVXU0ZKRlFrRm1PRVZaVkVKbWFHd3hiMlJJVW5kamVtOTJUREprY0dSSGFERUtXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWMllUSldlV0p0Vm5OamVURnFZakl4ZEdSWE5YQmtTR3QyVEcxa2NHUkhhREZaYVRrellqTktjZ3BhYlhoMlpETk5kbGx1Vm5CaVIxRjFaVmRHZEdKRlFubGFWMXA2VERKb2JGbFhVbnBNTWpGb1lWYzBkMDlSV1V0TGQxbENRa0ZIUkhaNlFVSkJVVkZ5Q21GSVVqQmpTRTAyVEhrNU1HSXlkR3hpYVRWb1dUTlNjR0l5TlhwTWJXUndaRWRvTVZsdVZucGFXRXBxWWpJMU1GcFhOVEJNYlU1MllsUkJaa0puYjNJS1FtZEZSVUZaVHk5TlFVVkRRa0pHTTJJelNuSmFiWGgyWkRFNWEyRllUbmRaV0ZKcVlVUkJNa0puYjNKQ1owVkZRVmxQTDAxQlJVUkNRMmMwV1cxU2F3cE5hazB3VGtSR2FrMUhSbWhhUkVac1RYcFpORTU2YUdoYVYwMDFUMGRLYTAxSFdYZE9WMUV5VDFkV2FGbFVXbWhOUWsxSFEybHpSMEZSVVVKbk56aDNDa0ZSVVVWQ1ZVb3hZVmQ0YTAxRGMwZERhWE5IUVZGUlFtYzNPSGRCVVZWRlNGZG9NVm95WkhCaWJXUnRXVmRPYkV3eWRHeGpiVFZzWWtoTmRGa3lPWFFLWWxoV2RXRllValZOUWpCSFEybHpSMEZSVVVKbk56aDNRVkZaUlVRelNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJOMEpuYjNKQ1owVkZRVmxQTHdwTlFVVkpRa013VFVzeWFEQmtTRUo2VDJrNGRtUkhPWEphVnpSMVdWZE9NR0ZYT1hWamVUVnVZVmhTYjJSWFNqRmpNbFo1V1RJNWRXUkhWblZrUXpWcUNtSXlNSGRpVVZsTFMzZFpRa0pCUjBSMmVrRkNRMUZTWmtSR01XOWtTRkozWTNwdmRrd3laSEJrUjJneFdXazFhbUl5TUhaaFNGWnVXakpzZFZveVdtZ0tXVEpWZG1FeVZubGliVlp6WTNreGFtSXlNWFJrVnpWd1pFaHJka3h0WkhCa1IyZ3hXV2s1TTJJelNuSmFiWGgyWkROTmRsbHVWbkJpUjFGMVpWZEdkQXBpUlVKNVdsZGFla3d5YUd4WlYxSjZUREl4YUdGWE5IZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1EyZFJjVVJEWnpSWmJWSnJUV3BOTUU1RVJtcE5SMFpvQ2xwRVJteE5lbGswVG5wb2FGcFhUVFZQUjBwclRVZFpkMDVYVVRKUFYxWm9XVlJhYUUxQ2MwZERhWE5IUVZGUlFtYzNPSGRCVVhORlJGRjNUR015Vm5NS1dta3hiMkl6VGpCYVYxRjNVVUZaUzB0M1dVSkNRVWRFZG5wQlFrUkJVWGxFUkVKdlpFaFNkMk42YjNaTU1tUndaRWRvTVZscE5XcGlNakIyWVVoV2JncGFNbXgxV2pKYWFGa3lWWFpoTWxaNVltMVdjMk41TVdwaU1qRjBaRmMxY0dSSWEzZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1JGRlJjVVJEWnpSWmJWSnJDazFxVFRCT1JFWnFUVWRHYUZwRVJteE5lbGswVG5wb2FGcFhUVFZQUjBwclRVZFpkMDVYVVRKUFYxWm9XVlJhYUUxQ09FZERhWE5IUVZGUlFtYzNPSGNLUVZFMFJVVlJkMUJqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxQ2IwZERhWE5IUVZGUlFtYzNPSGRCVVRoRlJFRjNTMDFVUVROTlZGRXpUbFJWZVFwUFZFRjFRbWR2Y2tKblJVVkJXVTh2VFVGRlVVSkRRVTFJYldnd1pFaENlazlwT0haYU1td3dZVWhXYVV4dFRuWmlVemx2WkZka2JtRlhOVzVhYlVacUNscFVRVmxDWjI5eVFtZEZSVUZaVHk5TlFVVlNRa0Z2VFVORVNURk9la2wzVG5wUmVrMUhNRWREYVhOSFFWRlJRbWMzT0hkQlVrbEZXSGQ0WkdGSVVqQUtZMGhOTmt4NU9XNWhXRkp2WkZkSmRWa3lPWFJNTW1neFdqSmtjR0p0WkcxWlYwNXNUREowYkdOdE5XeGlTRTEwV1RJNWRHSllWblZoV0ZJMVRIazFiZ3BoV0ZKdlpGZEpkbVF5T1hsaE1scHpZak5rZWt3eVNqRmhWM2hyVEc1c2FHSlhlRUZqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxRVowZERhWE5IQ2tGUlVVSm5OemgzUVZKTlJVdG5kMjlQUjBwcldrUkplazVFVVhoWmVrSm9XVmRSZUZwVVRUSlBSR00wV1ZkV2FrOVVhR2xhUkVKdFRVUldhMDVxYkd3S1dWZEZNbGxVUVdoQ1oyOXlRbWRGUlVGWlR5OU5RVVZWUWtKTlRVVllaSFpqYlhSdFlrYzVNMWd5VW5Cak0wSm9aRWRPYjAxSFVVZERhWE5IUVZGUlFncG5OemgzUVZKVlJWWm5lRlZoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlV3eVJtcGtSMngyWW01TmRtTnVWblZqZVRoNlRucHJNazFFVVRGUFZFVXpUVU01YUdSSVVteGlXRUl3WTNrNGVFMUNXVWNLUTJselIwRlJVVUpuTnpoM1FWSlpSVU5CZDBkalNGWnBZa2RzYWsxRldVZERhWE5IUVZGUlFtYzNPSGRCVW1kRlQwRjNNbU50Vm5kaWVuQnZaRmRrYmdwaFZ6VnVXbTFHYWxwVE9YSmFXRXAxV2xkNGVreFhUblppVnpFeFltMXNNR1ZVY0hsYVYxazJZMjFXYldONU9XOWFWMFpyWTNrNWRGbFhiSFZOU1VkTENrSm5iM0pDWjBWRlFXUmFOVUZuVVVOQ1NIZEZaV2RDTkVGSVdVRXpWREIzWVhOaVNFVlVTbXBIVWpSamJWZGpNMEZ4U2t0WWNtcGxVRXN6TDJnMGNIa0taME00Y0Rkdk5FRkJRVWRvU1ZseVNGaEJRVUZDUVUxQlVucENSa0ZwUVdwUlpIQk1RMjQxYlRRNVFuZE9UMkpPVGxCME9YRkhRMkp4ZERkVk1EZERiQXBHYkRST1QycDJkRkpuU1doQlNYZHFiaXR5VUdFMlJuUmFkMkZOTnpJMk9WSTVVbXBQVVZWSWRVTXhjSGQzTDNjMlVHRnFRWEYxUTAxQmIwZERRM0ZIQ2xOTk5EbENRVTFFUVRKclFVMUhXVU5OVVVSTEwxTndPVlUwV1hsalQxUkxTa3QyUWpWR1VuQkxWV1pOYm1wWk9EQnNhbU14ZVc5UGRVZHpjM2cxTDNFS1JuTmlSM2RrUW1sak5rRXpMemt3TXpGQldVTk5VVVJ2U1VRNVowSmplREozYzA5d01VTllVakZCVUVOUFNGaE1ka1V3TWt4a1VFcFlTMHBMZDJOc1pBcENhQ3RxV0dRM0syVnBUM2hzU1RCdlIwdHdVUzgzU1QwS0xTMHRMUzFGVGtRZ1EwVlNWRWxHU1VOQlZFVXRMUzB0TFFvPSJ9fX19"}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyjADAgEAMIICwQYJKoZIhvcNAQcCoIICsjCCAq4CAQMxDTALBglghkgBZQMEAgEwgbgGCyqGSIb3DQEJEAEEoIGoBIGlMIGiAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgfQM/7zNbcFWHoiPmT6hI/yzzKdQrF+NWaZeyZoWwX4sCFQCNwIjLpROq0wtxM0jLcFIEt063hRgPMjAyNjEwMDkxNjQxNDVaMAMCAQGgMqQwMC4xFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEVMBMGA1UEAxMMc2lnc3RvcmUtdHNhoAAxggHbMIIB1wIBATBRMDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAsGCWCGSAFlAwQCAaCB/DAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTI2MTAwOTE2NDE0NVowLwYJKoZIhvcNAQkEMSIEIMhFkW8Nv4jdmFT6hZ32xsH6n49t2SpFrXsES2Y+zn7pMIGOBgsqhkiG9w0BCRACLzF/MH0wezB5BCCF+Se8B6tiysO0Q1bBDvyBssaIP9p6uebYcNnROs0FtzBVMD2kOzA5MRUwEwYDVQQKEwxzaWdzdG9yZS5kZXYxIDAeBgNVBAMTF3NpZ3N0b3JlLXRzYS1zZWxmc2lnbmVkAhQ6E1QvDJBh7rzBQy/Lio6LKiOLDDAKBggqhkjOPQQDAgRnMGUCMQDYjFkBYwoTdn687TvPI8zwWcQePUcyTgBo45bMBkMCw67y20F1HxCo808j2LwOPhUCMD6W1dT3Z4X770EQwPsaK7LaXS+15J9bGRA74T6D0Rc755SRyGjWBDAMuFk//h5jyg=="}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"AzkX/xLY7FO8UKY6VFzF9jmbazMec9FskOvOWADFqrM="},"signature":"MEUCIDxShjHyknhzcsAE2nrZeFX+EfR8/eDGcvhqzAg7+bTeAiEAsieBH43l9UGQP30RW3ydEfyn50K2+XmHeRXTkO4FVXo="}}
 
1
+ {"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"MIIHLDCCBrKgAwIBAgIUalT1lEp/pISVY1CjZjWMq6StqNowCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYxMDE5MTMwOTA0WhcNMjYxMDE5MTMxOTA0WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEOYsQopc4Rf1lDgNKUaxgV1IvZvt9PAWokeZCiLMeRxum9ZWQOE05bqgOZi5NNWdyvoB17QWOn5RdNHGWVuVQpqOCBdEwggXNMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAfBgNVHSMEGDAWgBTf0+nPViQRlvmo2OkoVaLGLhhkPzBrBgNVHREBAf8EYTBfhl1odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQueWFtbEByZWZzL2hlYWRzL21haW4wOQYKKwYBBAGDvzABAQQraHR0cHM6Ly90b2tlbi5hY3Rpb25zLmdpdGh1YnVzZXJjb250ZW50LmNvbTAfBgorBgEEAYO/MAECBBF3b3JrZmxvd19kaXNwYXRjaDA2BgorBgEEAYO/MAEDBChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMBMGCisGAQQBg78wAQQEBUJ1aWxkMCsGCisGAQQBg78wAQUEHWh1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MB0GCisGAQQBg78wAQYED3JlZnMvaGVhZHMvbWFpbjA7BgorBgEEAYO/MAEIBC0MK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wbQYKKwYBBAGDvzABCQRfDF1odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQueWFtbEByZWZzL2hlYWRzL21haW4wOAYKKwYBBAGDvzABCgQqDChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMBsGCisGAQQBg78wAQsEDQwLc2VsZi1ob3N0ZWQwQAYKKwYBBAGDvzABDAQyDDBodHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkwOAYKKwYBBAGDvzABDQQqDChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMB8GCisGAQQBg78wAQ4EEQwPcmVmcy9oZWFkcy9tYWluMBoGCisGAQQBg78wAQ8EDAwKMTA3MTQ3NTUyOTAuBgorBgEEAYO/MAEQBCAMHmh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZTAYBgorBgEEAYO/MAERBAoMCDI1NzIwNzQzMG0GCisGAQQBg78wARIEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wARMEKgwoZmUyYmI2NmZlZTZjMmE3N2VjY2YwOGEwNTA4ZGM1NzQyOGQ0ODhlZDAhBgorBgEEAYO/MAEUBBMMEXdvcmtmbG93X2Rpc3BhdGNoMGQGCisGAQQBg78wARUEVgxUaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5L2FjdGlvbnMvcnVucy8zOTIzOTY2ODY5My9hdHRlbXB0cy8xMBYGCisGAQQBg78wARYECAwGcHVibGljMEYGCisGAQQBg78wARgEOAw2cmVwbzpodWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTpyZWY6cmVmcy9oZWFkcy9tYWluMIGKBgorBgEEAdZ5AgQCBHwEegB4AHYA3T0wasbHETJjGR4cmWc3AqJKXrjePK3/h4pygC8p7o4AAAGhVEenCQAABAMARzBFAiEAg0z8SAn973jue/LALZ6HeE3XsDFsfAzwihbhJC23gQACIH+iSJpWHlu7oG8mByjABChnojG26yw5MxCL1sTSAfONMAoGCCqGSM49BAMDA2gAMGUCMFTLhR05XP8zs5Crdo36X6CbLn82NekNVlE2J7wzpdwTAgbTeh4b+Oo/KYHD/HMxngIxAK1uabPTifv7u8B+mi40SyPBL1IsTlKOWN0eqqYCg0Dgx7F0Nk7Cuqsy95mNSGfxzg=="},"tlogEntries":[{"logIndex":"3321292033","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1792415344","inclusionPromise":{"signedEntryTimestamp":"MEQCIByy5wkTD4eHS3BzrpsCi0P5S4B5NixmLN8OXEtLgubCAiAlnR7ODjmmztIEHMd7CA+jJrFHAGPwNkPWm3ZexcdHXA=="},"inclusionProof":{"logIndex":"3199387771","rootHash":"KE21hdcs08amHhJ2DXxm+RWOzB5L2PLuUV5GUAIJ4/E=","treeSize":"3199387796","hashes":["h1HVpDn5T055MSDCgyIw5jtu2IU4xYWzLaEFZDujdzk=","sa+BSo60vNel58ut7Pcd/BHSOVSQDOnr6P7N+2yX9bE=","8knvScvtQzAV+yBX/Ly1poqxu2Gj76TA4eAprKe+vJI=","lMorlncfq/vrjRa2GI1oZhM4qX8HXIihb5fJKdjK/WI=","7lxke9kXxr4j/VJJNkv+z2dnVZzkmqkRwn3F1vJ6xEg=","7/3Lt1BBewuYrf6dhSNX/q/8695epVIoSj1MgZdru1o=","Sq+HxoUo+AmNZ/ROYf0v/JP8mcv12j30Li0Nb1i/J38=","eaJdENLr/N7Z3xAkZkJfIFFIKlKjyzDnDvIGNS0FrYo=","mt1dzHGetMCzh6/McC8kSJ5PK+UdXVQPQ6wZH7bGzx8=","j+zDFv60yRAka5lkKHJVk+ONVHePdN56t0G1bDYa7wI=","L/dvD12ZWmTF90/mlI41DO4ofR4szSGubOcaZ3tSrfo=","DlkFsuaW0Lemnx/hfWKDDGIHO8n35fi5A3sL1nZM6Nw=","kHa2Ke03zePMosAfwPNg2y4kk1ZwjdZi4MKNVX7epiE=","uCZQe757l2sS1c05Y7TzOwEm+X8MeGLIUCkEOmFVOz4=","nyQV/+cWQUG5Hb2PKjQQNkQIJmz2qzAZKBQlkHGIknM=","G+nk7mgE5h6dUmv2UY7NDJrY3WvrZY31raaO1AETt+o=","qlTWNDzERnTBQVcHHXXVPjiUP0SsikGxfcxVlgqVFDo=","gg9GNApNke3+zNhl4tsWtmIycCFrOMCB3lys6XuSQNQ=","NlOclldmKPA1tMKIskqHAwuQDYHp31YwpK+OOMrMccc=","qxzHanAzz57SDdmJe0B7bJK72NTIBbwEMGBBKvDOROw=","xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n3199387796\nKE21hdcs08amHhJ2DXxm+RWOzB5L2PLuUV5GUAIJ4/E=\n\n— rekor.sigstore.dev wNI9ajBFAiEAtqWOPVMwm7FYOU/8ZGkYX3EbVSt6sM69G87AjPMGlO0CIFHTekuohApz6ZZUis7z5PTOJNQ6/2zsWyM8PpWp/v3K\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiJkZGQ1YmNmYmI0NDY2OGFjYWE3YzAwZTQ4ZDc0NDY1NjhhMWI1MjBmMmNmZTA1ZTIzMzU0Y2NmNGEwNTJiNWMzIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJQzdML1NzZUFFbGlrbXhLWm1QYk9GN2g2MHQ0UzAvV1BuOXpTQ1lDUVA1ckFpRUF6akZuc1kvZUthSHh0b1VHSEVLenBOVzRzUjJXQjNZOWk5U1JML1RabzE0PSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaE1SRU5EUW5KTFowRjNTVUpCWjBsVllXeFVNV3hGY0M5d1NWTldXVEZEYWxwcVYwMXhObE4wY1U1dmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFplRTFFUlRWTlZFMTNUMVJCTUZkb1kwNU5hbGw0VFVSRk5VMVVUWGhQVkVFd1YycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZQV1hOUmIzQmpORkptTVd4RVowNUxWV0Y0WjFZeFNYWmFkblE1VUVGWGIydGxXa01LYVV4TlpWSjRkVzA1V2xkUlQwVXdOV0p4WjA5YWFUVk9UbGRrZVhadlFqRTNVVmRQYmpWU1pFNUlSMWRXZFZaUmNIRlBRMEprUlhkbloxaE9UVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXWkNaMDVXU0ZOTlJVZEVRVmRuUWxSbUNqQXJibEJXYVZGU2JIWnRiekpQYTI5V1lVeEhUR2hvYTFCNlFuSkNaMDVXU0ZKRlFrRm1PRVZaVkVKbWFHd3hiMlJJVW5kamVtOTJUREprY0dSSGFERUtXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWMllUSldlV0p0Vm5OamVURnFZakl4ZEdSWE5YQmtTR3QyVEcxa2NHUkhhREZaYVRrellqTktjZ3BhYlhoMlpETk5kbGx1Vm5CaVIxRjFaVmRHZEdKRlFubGFWMXA2VERKb2JGbFhVbnBNTWpGb1lWYzBkMDlSV1V0TGQxbENRa0ZIUkhaNlFVSkJVVkZ5Q21GSVVqQmpTRTAyVEhrNU1HSXlkR3hpYVRWb1dUTlNjR0l5TlhwTWJXUndaRWRvTVZsdVZucGFXRXBxWWpJMU1GcFhOVEJNYlU1MllsUkJaa0puYjNJS1FtZEZSVUZaVHk5TlFVVkRRa0pHTTJJelNuSmFiWGgyWkRFNWEyRllUbmRaV0ZKcVlVUkJNa0puYjNKQ1owVkZRVmxQTDAxQlJVUkNRMmh0V2xSS2FRcFphbGt5V20xV2JFNXRUWGxaVkdNeldsZE9hbHBxUVRSWlZFRXhUVVJvYTFsNlZUTk9SRWswV2tSUk5FOUhWbXROUWsxSFEybHpSMEZSVVVKbk56aDNDa0ZSVVVWQ1ZVb3hZVmQ0YTAxRGMwZERhWE5IUVZGUlFtYzNPSGRCVVZWRlNGZG9NVm95WkhCaWJXUnRXVmRPYkV3eWRHeGpiVFZzWWtoTmRGa3lPWFFLWWxoV2RXRllValZOUWpCSFEybHpSMEZSVVVKbk56aDNRVkZaUlVRelNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJOMEpuYjNKQ1owVkZRVmxQTHdwTlFVVkpRa013VFVzeWFEQmtTRUo2VDJrNGRtUkhPWEphVnpSMVdWZE9NR0ZYT1hWamVUVnVZVmhTYjJSWFNqRmpNbFo1V1RJNWRXUkhWblZrUXpWcUNtSXlNSGRpVVZsTFMzZFpRa0pCUjBSMmVrRkNRMUZTWmtSR01XOWtTRkozWTNwdmRrd3laSEJrUjJneFdXazFhbUl5TUhaaFNGWnVXakpzZFZveVdtZ0tXVEpWZG1FeVZubGliVlp6WTNreGFtSXlNWFJrVnpWd1pFaHJka3h0WkhCa1IyZ3hXV2s1TTJJelNuSmFiWGgyWkROTmRsbHVWbkJpUjFGMVpWZEdkQXBpUlVKNVdsZGFla3d5YUd4WlYxSjZUREl4YUdGWE5IZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1EyZFJjVVJEYUcxYVZFcHBXV3BaTWxwdFZteE9iVTE1Q2xsVVl6TmFWMDVxV21wQk5GbFVRVEZOUkdocldYcFZNMDVFU1RSYVJGRTBUMGRXYTAxQ2MwZERhWE5IUVZGUlFtYzNPSGRCVVhORlJGRjNUR015Vm5NS1dta3hiMkl6VGpCYVYxRjNVVUZaUzB0M1dVSkNRVWRFZG5wQlFrUkJVWGxFUkVKdlpFaFNkMk42YjNaTU1tUndaRWRvTVZscE5XcGlNakIyWVVoV2JncGFNbXgxV2pKYWFGa3lWWFpoTWxaNVltMVdjMk41TVdwaU1qRjBaRmMxY0dSSWEzZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1JGRlJjVVJEYUcxYVZFcHBDbGxxV1RKYWJWWnNUbTFOZVZsVVl6TmFWMDVxV21wQk5GbFVRVEZOUkdocldYcFZNMDVFU1RSYVJGRTBUMGRXYTAxQ09FZERhWE5IUVZGUlFtYzNPSGNLUVZFMFJVVlJkMUJqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxQ2IwZERhWE5IUVZGUlFtYzNPSGRCVVRoRlJFRjNTMDFVUVROTlZGRXpUbFJWZVFwUFZFRjFRbWR2Y2tKblJVVkJXVTh2VFVGRlVVSkRRVTFJYldnd1pFaENlazlwT0haYU1td3dZVWhXYVV4dFRuWmlVemx2WkZka2JtRlhOVzVhYlVacUNscFVRVmxDWjI5eVFtZEZSVUZaVHk5TlFVVlNRa0Z2VFVORVNURk9la2wzVG5wUmVrMUhNRWREYVhOSFFWRlJRbWMzT0hkQlVrbEZXSGQ0WkdGSVVqQUtZMGhOTmt4NU9XNWhXRkp2WkZkSmRWa3lPWFJNTW1neFdqSmtjR0p0WkcxWlYwNXNUREowYkdOdE5XeGlTRTEwV1RJNWRHSllWblZoV0ZJMVRIazFiZ3BoV0ZKdlpGZEpkbVF5T1hsaE1scHpZak5rZWt3eVNqRmhWM2hyVEc1c2FHSlhlRUZqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxRVowZERhWE5IQ2tGUlVVSm5OemgzUVZKTlJVdG5kMjlhYlZWNVdXMUpNazV0V214YVZGcHFUVzFGTTA0eVZtcFpNbGwzVDBkRmQwNVVRVFJhUjAweFRucFJlVTlIVVRBS1QwUm9iRnBFUVdoQ1oyOXlRbWRGUlVGWlR5OU5RVVZWUWtKTlRVVllaSFpqYlhSdFlrYzVNMWd5VW5Cak0wSm9aRWRPYjAxSFVVZERhWE5IUVZGUlFncG5OemgzUVZKVlJWWm5lRlZoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlV3eVJtcGtSMngyWW01TmRtTnVWblZqZVRoNlQxUkplazlVV1RKUFJGazFUWGs1YUdSSVVteGlXRUl3WTNrNGVFMUNXVWNLUTJselIwRlJVVUpuTnpoM1FWSlpSVU5CZDBkalNGWnBZa2RzYWsxRldVZERhWE5IUVZGUlFtYzNPSGRCVW1kRlQwRjNNbU50Vm5kaWVuQnZaRmRrYmdwaFZ6VnVXbTFHYWxwVE9YSmFXRXAxV2xkNGVreFhUblppVnpFeFltMXNNR1ZVY0hsYVYxazJZMjFXYldONU9XOWFWMFpyWTNrNWRGbFhiSFZOU1VkTENrSm5iM0pDWjBWRlFXUmFOVUZuVVVOQ1NIZEZaV2RDTkVGSVdVRXpWREIzWVhOaVNFVlVTbXBIVWpSamJWZGpNMEZ4U2t0WWNtcGxVRXN6TDJnMGNIa0taME00Y0Rkdk5FRkJRVWRvVmtWbGJrTlJRVUZDUVUxQlVucENSa0ZwUlVGbk1IbzRVMEZ1T1RjemFuVmxMMHhCVEZvMlNHVkZNMWh6UkVaelprRjZkd3BwYUdKb1NrTXlNMmRSUVVOSlNDdHBVMHB3VjBoc2RUZHZSemh0UW5scVFVSkRhRzV2YWtjeU5ubDNOVTE0UTB3eGMxUlRRV1pQVGsxQmIwZERRM0ZIQ2xOTk5EbENRVTFFUVRKblFVMUhWVU5OUmxSTWFGSXdOVmhRT0hwek5VTnlaRzh6TmxnMlEySk1iamd5VG1WclRsWnNSVEpLTjNkNmNHUjNWRUZuWWxRS1pXZzBZaXRQYnk5TFdVaEVMMGhOZUc1blNYaEJTekYxWVdKUVZHbG1kamQxT0VJcmJXazBNRk41VUVKTU1VbHpWR3hMVDFkT01HVnhjVmxEWnpCRVp3cDROMFl3VG1zM1EzVnhjM2s1TlcxT1UwZG1lSHBuUFQwS0xTMHRMUzFGVGtRZ1EwVlNWRWxHU1VOQlZFVXRMUzB0TFFvPSJ9fX19"}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyjADAgEAMIICwQYJKoZIhvcNAQcCoIICsjCCAq4CAQMxDTALBglghkgBZQMEAgEwgbgGCyqGSIb3DQEJEAEEoIGoBIGlMIGiAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQg1IHwzmasa/lYR16ri1+bhcyG1k9YZ3dP8IlKNYoak98CFQCeF/Xlbjl8o2xvXnBuFFUhhmqM2BgPMjAyNjEwMTkxMzA5MDRaMAMCAQGgMqQwMC4xFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEVMBMGA1UEAxMMc2lnc3RvcmUtdHNhoAAxggHbMIIB1wIBATBRMDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAsGCWCGSAFlAwQCAaCB/DAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTI2MTAxOTEzMDkwNFowLwYJKoZIhvcNAQkEMSIEIDKTCQ7kPn7xYwE6f1ufS/Tdo0GR+re4zvbPdhk/H7DEMIGOBgsqhkiG9w0BCRACLzF/MH0wezB5BCCF+Se8B6tiysO0Q1bBDvyBssaIP9p6uebYcNnROs0FtzBVMD2kOzA5MRUwEwYDVQQKEwxzaWdzdG9yZS5kZXYxIDAeBgNVBAMTF3NpZ3N0b3JlLXRzYS1zZWxmc2lnbmVkAhQ6E1QvDJBh7rzBQy/Lio6LKiOLDDAKBggqhkjOPQQDAgRnMGUCMQCWa4nBqGFt/jfOrXjuNBp+DrPtdaNngrWrcAQJKi+XweFnqUS85QUkiEVQfMhVnwwCMBFJZq6V3DJAkbx+0SZc7IoOWS17bNpCndq8E4j4omDbxHu5y0mSYt9oL610Wn597A=="}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"3dW8+7RGaKyqfADkjXRGVoobUg8s/gXiM1TM9KBStcM="},"signature":"MEUCIC7L/SseAElikmxKZmPbOF7h60t4S0/WPn9zSCYCQP5rAiEAzjFnsY/eKaHxtoUGHEKzpNW4sR2WB3Y9i9SRL/TZo14="}}
build/torch-stable-abi210-cu126-aarch64-linux/symbols.json ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "schema_version": 1,
3
+ "module": "_tdt_loss_cuda_fe2bb66",
4
+ "functions": [
5
+ {
6
+ "name": "tdt_loss",
7
+ "qualname": "tdt_loss",
8
+ "module": "_tdt_loss_cuda_fe2bb66.loss",
9
+ "kind": "function",
10
+ "doc": "Compute the TDT (Token-and-Duration Transducer) loss (https://arxiv.org/abs/2304.06795).\n\nArgs:\n token_logits: Token logits of shape `(batch, T, U+1, vocab_size+1)`, in float32, float16 or bfloat16.\n Only the last dimension needs to be contiguous.\n duration_logits: Duration logits of shape `(batch, T, U+1, num_durations)`, same dtype as `token_logits`.\n targets: Target labels of shape `(batch, U)`.\n logit_lengths: Encoder output lengths of shape `(batch,)`.\n target_lengths: Target lengths of shape `(batch,)`.\n blank_token_id: Blank token id.\n durations: Non-negative duration values, e.g. `[0, 1, 2, 3, 4]`.\n sigma: Logit undernormalization constant (see TDT paper). Defaults to `0.0`.\n reduction: One of `\"mean_volume\"`, `\"mean_batch\"`, `\"mean\"`, `\"sum\"` or `\"none\"`, mirroring NeMo's\n `RNNTLoss`. `\"mean\"` divides each loss by its target length before averaging over the batch.\n\nReturns:\n Scalar loss tensor (or per-example losses of shape `(batch,)` if `reduction=\"none\"`). Samples without a\n valid alignment get an infinite loss and a zero gradient.",
11
+ "signature": {
12
+ "parameters": [
13
+ {
14
+ "name": "token_logits",
15
+ "kind": "POSITIONAL_OR_KEYWORD",
16
+ "default": null,
17
+ "annotation": "torch.Tensor"
18
+ },
19
+ {
20
+ "name": "duration_logits",
21
+ "kind": "POSITIONAL_OR_KEYWORD",
22
+ "default": null,
23
+ "annotation": "torch.Tensor"
24
+ },
25
+ {
26
+ "name": "targets",
27
+ "kind": "POSITIONAL_OR_KEYWORD",
28
+ "default": null,
29
+ "annotation": "torch.Tensor"
30
+ },
31
+ {
32
+ "name": "logit_lengths",
33
+ "kind": "POSITIONAL_OR_KEYWORD",
34
+ "default": null,
35
+ "annotation": "torch.Tensor"
36
+ },
37
+ {
38
+ "name": "target_lengths",
39
+ "kind": "POSITIONAL_OR_KEYWORD",
40
+ "default": null,
41
+ "annotation": "torch.Tensor"
42
+ },
43
+ {
44
+ "name": "blank_token_id",
45
+ "kind": "POSITIONAL_OR_KEYWORD",
46
+ "default": null,
47
+ "annotation": "int"
48
+ },
49
+ {
50
+ "name": "durations",
51
+ "kind": "POSITIONAL_OR_KEYWORD",
52
+ "default": null,
53
+ "annotation": "Sequence[int] | torch.Tensor"
54
+ },
55
+ {
56
+ "name": "sigma",
57
+ "kind": "POSITIONAL_OR_KEYWORD",
58
+ "default": "0.0",
59
+ "annotation": "float"
60
+ },
61
+ {
62
+ "name": "reduction",
63
+ "kind": "POSITIONAL_OR_KEYWORD",
64
+ "default": "'mean'",
65
+ "annotation": "str"
66
+ }
67
+ ],
68
+ "return_annotation": "torch.Tensor"
69
+ }
70
+ }
71
+ ],
72
+ "layers": []
73
+ }
build/torch-stable-abi210-cu128-aarch64-linux/__init__.py ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ """TDT (Token-and-Duration Transducer) loss CUDA kernel."""
2
+
3
+ from . import layers
4
+ from .loss import tdt_loss
5
+
6
+ __all__ = ["layers", "tdt_loss"]
build/torch-stable-abi210-cu128-aarch64-linux/_ops.py ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ import torch
2
+ from . import _tdt_loss_cuda_fe2bb66
3
+ ops = torch.ops._tdt_loss_cuda_fe2bb66
4
+
5
+ def add_op_namespace_prefix(op_name: str):
6
+ """
7
+ Prefix op by namespace.
8
+ """
9
+ return f"_tdt_loss_cuda_fe2bb66::{op_name}"
build/torch-stable-abi210-cu128-aarch64-linux/_tdt_loss_cuda_fe2bb66.abi3.so ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:dcab968eef1ea592b57b6ad306adf2328e5df9f8af53d524081f7b5847aff855
3
+ size 2384360
build/torch-stable-abi210-cu128-aarch64-linux/layers.py ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from typing import Sequence, Union
2
+
3
+ import torch
4
+ import torch.nn as nn
5
+
6
+ from .loss import tdt_loss
7
+
8
+
9
+ class TDTLoss(nn.Module):
10
+ """
11
+ Stateless layer computing the TDT loss with the CUDA kernels. Its forward has the same signature as
12
+ `transformers.loss.loss_tdt.tdt_loss`, so it can replace it through `kernels.kernelize`.
13
+ """
14
+
15
+ has_backward = True
16
+ can_torch_compile = True
17
+
18
+ def forward(
19
+ self,
20
+ token_logits: torch.Tensor,
21
+ duration_logits: torch.Tensor,
22
+ targets: torch.Tensor,
23
+ logit_lengths: torch.Tensor,
24
+ target_lengths: torch.Tensor,
25
+ blank_token_id: int,
26
+ durations: Union[Sequence[int], torch.Tensor],
27
+ sigma: float = 0.0,
28
+ reduction: str = "mean",
29
+ ) -> torch.Tensor:
30
+ return tdt_loss(
31
+ token_logits,
32
+ duration_logits,
33
+ targets,
34
+ logit_lengths,
35
+ target_lengths,
36
+ blank_token_id,
37
+ durations,
38
+ sigma=sigma,
39
+ reduction=reduction,
40
+ )
build/torch-stable-abi210-cu128-aarch64-linux/loss.py ADDED
@@ -0,0 +1,254 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """TDT (Token-and-Duration Transducer) loss: autograd function and functional API."""
2
+
3
+ from typing import Dict, Sequence, Tuple, Union
4
+
5
+ import torch
6
+
7
+ from ._ops import add_op_namespace_prefix, ops
8
+
9
+ _REDUCTIONS = ("mean_volume", "mean_batch", "mean", "sum", "none")
10
+
11
+
12
+ _DURATIONS_CACHE: Dict[Tuple[Tuple[int, ...], torch.device], torch.Tensor] = {}
13
+
14
+
15
+ def _durations_tensor(durations: Union[Sequence[int], torch.Tensor], device: torch.device) -> torch.Tensor:
16
+ """Validated int32 tensor of durations on `device`, cached in eager mode since they are fixed for a model."""
17
+ if isinstance(durations, torch.Tensor):
18
+ durations = durations.tolist()
19
+ key = (tuple(int(d) for d in durations), device)
20
+ if any(d < 0 for d in key[0]):
21
+ raise ValueError(f"Durations must be non-negative, got {list(key[0])}.")
22
+ if torch.compiler.is_compiling():
23
+ return torch.tensor(key[0], device=device, dtype=torch.int32)
24
+ if key not in _DURATIONS_CACHE:
25
+ _DURATIONS_CACHE[key] = torch.tensor(key[0], device=device, dtype=torch.int32)
26
+ return _DURATIONS_CACHE[key]
27
+
28
+
29
+ def _last_dim_contiguous(x: torch.Tensor) -> torch.Tensor:
30
+ # The kernels accept arbitrary strides for the (batch, T, U) dims, so slices of a
31
+ # joint `(..., vocab_size + num_durations)` output can be passed without a copy.
32
+ return x if x.stride(-1) == 1 else x.contiguous()
33
+
34
+
35
+ # The ops only write to preallocated outputs, so their fake (meta) implementations have nothing to do. They let
36
+ # `torch.compile` trace through the ops.
37
+ @torch.library.register_fake(add_op_namespace_prefix("tdt_logprobs_fwd"))
38
+ def _(
39
+ token_logits,
40
+ duration_logits,
41
+ targets,
42
+ logit_lengths,
43
+ target_lengths,
44
+ blank_id,
45
+ sigma,
46
+ blank_lp,
47
+ label_lp,
48
+ dur_lp,
49
+ token_lse,
50
+ ):
51
+ return None
52
+
53
+
54
+ @torch.library.register_fake(add_op_namespace_prefix("tdt_loss_fwd"))
55
+ def _(blank_lp, label_lp, dur_lp, logit_lengths, target_lengths, durations, alphas, log_ll):
56
+ return None
57
+
58
+
59
+ @torch.library.register_fake(add_op_namespace_prefix("tdt_loss_bwd"))
60
+ def _(blank_lp, label_lp, dur_lp, logit_lengths, target_lengths, durations, betas):
61
+ return None
62
+
63
+
64
+ @torch.library.register_fake(add_op_namespace_prefix("tdt_logits_grad"))
65
+ def _(
66
+ token_logits,
67
+ targets,
68
+ logit_lengths,
69
+ target_lengths,
70
+ durations,
71
+ blank_lp,
72
+ label_lp,
73
+ dur_lp,
74
+ token_lse,
75
+ alphas,
76
+ betas,
77
+ log_ll,
78
+ grad_loss,
79
+ blank_id,
80
+ grad_token_logits,
81
+ grad_duration_logits,
82
+ ):
83
+ return None
84
+
85
+
86
+ class _TDTLossFunction(torch.autograd.Function):
87
+ """Per-sample TDT loss (negative log-likelihood) with a CUDA forward and backward."""
88
+
89
+ @staticmethod
90
+ def forward(
91
+ ctx,
92
+ token_logits: torch.Tensor,
93
+ duration_logits: torch.Tensor,
94
+ targets: torch.Tensor,
95
+ logit_lengths: torch.Tensor,
96
+ target_lengths: torch.Tensor,
97
+ durations: torch.Tensor,
98
+ blank_id: int,
99
+ sigma: float,
100
+ ) -> torch.Tensor:
101
+ token_logits = _last_dim_contiguous(token_logits)
102
+ duration_logits = _last_dim_contiguous(duration_logits)
103
+
104
+ B, max_T, max_U, _ = token_logits.shape
105
+ D = duration_logits.shape[-1]
106
+ f32 = dict(device=token_logits.device, dtype=torch.float32)
107
+
108
+ blank_lp = torch.empty(B, max_T, max_U, **f32)
109
+ label_lp = torch.empty(B, max_T, max_U, **f32)
110
+ dur_lp = torch.empty(B, max_T, max_U, D, **f32)
111
+ token_lse = torch.empty(B, max_T, max_U, **f32)
112
+ ops.tdt_logprobs_fwd(
113
+ token_logits,
114
+ duration_logits,
115
+ targets,
116
+ logit_lengths,
117
+ target_lengths,
118
+ blank_id,
119
+ sigma,
120
+ blank_lp,
121
+ label_lp,
122
+ dur_lp,
123
+ token_lse,
124
+ )
125
+
126
+ # The lattice recursions run in float64, see lattice.cu.
127
+ f64 = dict(device=token_logits.device, dtype=torch.float64)
128
+ alphas = torch.empty(B, max_T, max_U, **f64)
129
+ log_ll = torch.empty(B, **f64)
130
+ ops.tdt_loss_fwd(blank_lp, label_lp, dur_lp, logit_lengths, target_lengths, durations, alphas, log_ll)
131
+
132
+ ctx.save_for_backward(
133
+ token_logits,
134
+ targets,
135
+ logit_lengths,
136
+ target_lengths,
137
+ durations,
138
+ blank_lp,
139
+ label_lp,
140
+ dur_lp,
141
+ token_lse,
142
+ alphas,
143
+ log_ll,
144
+ )
145
+ ctx.blank_id = blank_id
146
+ ctx.duration_shape = duration_logits.shape
147
+ ctx.duration_dtype = duration_logits.dtype
148
+ return -log_ll.float()
149
+
150
+ @staticmethod
151
+ def backward(ctx, grad_loss: torch.Tensor):
152
+ (
153
+ token_logits,
154
+ targets,
155
+ logit_lengths,
156
+ target_lengths,
157
+ durations,
158
+ blank_lp,
159
+ label_lp,
160
+ dur_lp,
161
+ token_lse,
162
+ alphas,
163
+ log_ll,
164
+ ) = ctx.saved_tensors
165
+ if not (ctx.needs_input_grad[0] or ctx.needs_input_grad[1]):
166
+ return (None,) * 8
167
+
168
+ betas = torch.empty_like(alphas)
169
+ ops.tdt_loss_bwd(blank_lp, label_lp, dur_lp, logit_lengths, target_lengths, durations, betas)
170
+
171
+ grad_token_logits = torch.empty(token_logits.shape, device=token_logits.device, dtype=token_logits.dtype)
172
+ grad_duration_logits = torch.empty(ctx.duration_shape, device=token_logits.device, dtype=ctx.duration_dtype)
173
+ ops.tdt_logits_grad(
174
+ token_logits,
175
+ targets,
176
+ logit_lengths,
177
+ target_lengths,
178
+ durations,
179
+ blank_lp,
180
+ label_lp,
181
+ dur_lp,
182
+ token_lse,
183
+ alphas,
184
+ betas,
185
+ log_ll,
186
+ grad_loss.float().contiguous(),
187
+ ctx.blank_id,
188
+ grad_token_logits,
189
+ grad_duration_logits,
190
+ )
191
+ return grad_token_logits, grad_duration_logits, None, None, None, None, None, None
192
+
193
+
194
+ def tdt_loss(
195
+ token_logits: torch.Tensor,
196
+ duration_logits: torch.Tensor,
197
+ targets: torch.Tensor,
198
+ logit_lengths: torch.Tensor,
199
+ target_lengths: torch.Tensor,
200
+ blank_token_id: int,
201
+ durations: Union[Sequence[int], torch.Tensor],
202
+ sigma: float = 0.0,
203
+ reduction: str = "mean",
204
+ ) -> torch.Tensor:
205
+ """Compute the TDT (Token-and-Duration Transducer) loss (https://arxiv.org/abs/2304.06795).
206
+
207
+ Args:
208
+ token_logits: Token logits of shape `(batch, T, U+1, vocab_size+1)`, in float32, float16 or bfloat16.
209
+ Only the last dimension needs to be contiguous.
210
+ duration_logits: Duration logits of shape `(batch, T, U+1, num_durations)`, same dtype as `token_logits`.
211
+ targets: Target labels of shape `(batch, U)`.
212
+ logit_lengths: Encoder output lengths of shape `(batch,)`.
213
+ target_lengths: Target lengths of shape `(batch,)`.
214
+ blank_token_id: Blank token id.
215
+ durations: Non-negative duration values, e.g. `[0, 1, 2, 3, 4]`.
216
+ sigma: Logit undernormalization constant (see TDT paper). Defaults to `0.0`.
217
+ reduction: One of `"mean_volume"`, `"mean_batch"`, `"mean"`, `"sum"` or `"none"`, mirroring NeMo's
218
+ `RNNTLoss`. `"mean"` divides each loss by its target length before averaging over the batch.
219
+
220
+ Returns:
221
+ Scalar loss tensor (or per-example losses of shape `(batch,)` if `reduction="none"`). Samples without a
222
+ valid alignment get an infinite loss and a zero gradient.
223
+ """
224
+ if reduction not in _REDUCTIONS:
225
+ raise ValueError(
226
+ f'Invalid reduction mode "{reduction}". Expected one of {", ".join(repr(r) for r in _REDUCTIONS)}.'
227
+ )
228
+
229
+ device = token_logits.device
230
+ durations = _durations_tensor(durations, device)
231
+ targets = targets.to(device=device, dtype=torch.int32).contiguous()
232
+ logit_lengths = logit_lengths.to(device=device, dtype=torch.int32).contiguous()
233
+ target_lengths = target_lengths.to(device=device, dtype=torch.int32).contiguous()
234
+
235
+ losses = _TDTLossFunction.apply(
236
+ token_logits,
237
+ duration_logits,
238
+ targets,
239
+ logit_lengths,
240
+ target_lengths,
241
+ durations,
242
+ int(blank_token_id),
243
+ float(sigma),
244
+ )
245
+
246
+ if reduction == "mean_volume":
247
+ return losses.sum() / target_lengths.sum().float()
248
+ if reduction == "mean_batch":
249
+ return losses.mean()
250
+ if reduction == "mean":
251
+ return (losses / target_lengths.float()).mean()
252
+ if reduction == "sum":
253
+ return losses.sum()
254
+ return losses
build/torch-stable-abi210-cu128-aarch64-linux/metadata.json ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "tdt-loss",
3
+ "id": "_tdt_loss_cuda_fe2bb66",
4
+ "version": 1,
5
+ "kernels-minver": "0.14.0",
6
+ "license": "Apache-2.0",
7
+ "python-depends": [],
8
+ "kernel-depends": [],
9
+ "backend": {
10
+ "type": "cuda",
11
+ "archs": [
12
+ "10.0",
13
+ "10.1",
14
+ "12.0+PTX",
15
+ "7.0",
16
+ "7.2",
17
+ "7.5",
18
+ "8.0",
19
+ "8.6",
20
+ "8.7",
21
+ "8.9",
22
+ "9.0"
23
+ ]
24
+ },
25
+ "digest": {
26
+ "algorithm": "sha256",
27
+ "files": {
28
+ "__init__.py": "lJBeJMzaqMSucC/K3266DuYA0JHw96ji1i/gcrHN/ik=",
29
+ "_ops.py": "OrFGElR/Z4ojQBmY0Ij0VyxBZHlO4uCyCD9TW8uuAdQ=",
30
+ "_tdt_loss_cuda_fe2bb66.abi3.so": "3KuWju8epZK1e2rTBq3yMo5d+fivU9UkCB97WEev+FU=",
31
+ "layers.py": "76Xr2iKOW3v6xtD8gct2jH6LMwVbqJSD8txMe5r0Nlk=",
32
+ "loss.py": "wxR68dHg9dUSiG/YOrtbNDQ5CSxHgkWAETZe1VE1FQM=",
33
+ "symbols.json": "Uu88dl5tWmpC533wKqo0ZaZ8dXHuzmevhNOI/bXFxbc="
34
+ }
35
+ },
36
+ "provenance": {
37
+ "kernel-builder": {
38
+ "version": "0.18.0-dev0",
39
+ "commit": "d054906a13710b811b96697b4635f03020842733",
40
+ "dirty": false
41
+ },
42
+ "kernel": {
43
+ "commit": "fe2bb66fee6c2a77eccf08a0508dc57428d488ed",
44
+ "dirty": false
45
+ }
46
+ }
47
+ }
build/torch-stable-abi210-cu128-aarch64-linux/metadata.json.sigstore ADDED
@@ -0,0 +1 @@
 
 
1
+ {"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"MIIHKzCCBrGgAwIBAgIUWyoYVuINSxyFH9hnTzG1E/sOFyswCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYxMDE5MTMwOTA1WhcNMjYxMDE5MTMxOTA1WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEfyCVySF3XbCrq9+py6j47KVf1HT6K12tCuHzccGv+bA4ORawsylZ2ovhsOe3L2TVyikSW+JAHELJwMWAFN5aPqOCBdAwggXMMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAfBgNVHSMEGDAWgBTf0+nPViQRlvmo2OkoVaLGLhhkPzBrBgNVHREBAf8EYTBfhl1odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQueWFtbEByZWZzL2hlYWRzL21haW4wOQYKKwYBBAGDvzABAQQraHR0cHM6Ly90b2tlbi5hY3Rpb25zLmdpdGh1YnVzZXJjb250ZW50LmNvbTAfBgorBgEEAYO/MAECBBF3b3JrZmxvd19kaXNwYXRjaDA2BgorBgEEAYO/MAEDBChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMBMGCisGAQQBg78wAQQEBUJ1aWxkMCsGCisGAQQBg78wAQUEHWh1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MB0GCisGAQQBg78wAQYED3JlZnMvaGVhZHMvbWFpbjA7BgorBgEEAYO/MAEIBC0MK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wbQYKKwYBBAGDvzABCQRfDF1odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQueWFtbEByZWZzL2hlYWRzL21haW4wOAYKKwYBBAGDvzABCgQqDChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMBsGCisGAQQBg78wAQsEDQwLc2VsZi1ob3N0ZWQwQAYKKwYBBAGDvzABDAQyDDBodHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkwOAYKKwYBBAGDvzABDQQqDChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMB8GCisGAQQBg78wAQ4EEQwPcmVmcy9oZWFkcy9tYWluMBoGCisGAQQBg78wAQ8EDAwKMTA3MTQ3NTUyOTAuBgorBgEEAYO/MAEQBCAMHmh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZTAYBgorBgEEAYO/MAERBAoMCDI1NzIwNzQzMG0GCisGAQQBg78wARIEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wARMEKgwoZmUyYmI2NmZlZTZjMmE3N2VjY2YwOGEwNTA4ZGM1NzQyOGQ0ODhlZDAhBgorBgEEAYO/MAEUBBMMEXdvcmtmbG93X2Rpc3BhdGNoMGQGCisGAQQBg78wARUEVgxUaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5L2FjdGlvbnMvcnVucy8zOTIzOTY2ODY5My9hdHRlbXB0cy8xMBYGCisGAQQBg78wARYECAwGcHVibGljMEYGCisGAQQBg78wARgEOAw2cmVwbzpodWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTpyZWY6cmVmcy9oZWFkcy9tYWluMIGJBgorBgEEAdZ5AgQCBHsEeQB3AHUA3T0wasbHETJjGR4cmWc3AqJKXrjePK3/h4pygC8p7o4AAAGhVEeqrwAABAMARjBEAiB7Y8cWI3Y+8rs48r+RtQ3mKSU65HXCUW83b6WLOfzAeQIgQnkkcMzHAqStTaL1ivvedj1cPPjbjF21N1otkdjevIAwCgYIKoZIzj0EAwMDaAAwZQIwN+zY/nxT0UcqfsW+fLTVAjyoWinRgu19mLqNpKL+ZysuuGPGgINWOwbF/TlYuvcZAjEAz1v04HrJNOhkO9gBgPycFDWaoFLWtnNPGEmcP+clAUwCN8iTkEsRleTVmgWJYBom"},"tlogEntries":[{"logIndex":"3321292492","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1792415347","inclusionPromise":{"signedEntryTimestamp":"MEUCIGnXU3y3CDGu9s04ibTLM7LzjS5FKhTp5bHFcIPtIph2AiEA++2VmCCdlshfz/YUHrmU/fAZmOMIUhC//FKUnrKFBos="},"inclusionProof":{"logIndex":"3199388230","rootHash":"6i5QQjnVaEtqtpQyH7I0LV0JKuZEJb8nCOICva2WhT8=","treeSize":"3199388251","hashes":["Sbd8cbqNEMb9f2Jy7tAN3FuB4MJRrZqhJsFEezBCrtk=","w3MlVzi/g6oehiNOAXuw9fUVAhu5BwenXCocPGfJd6U=","2VS8VSq/3j0ODLfKXGQiF5SbhnLL4zFvVmNajNVWSPE=","pVmLSzPY+Xy3kGVxy5/Y3dFOWRGT0C7lGKxu2B0KKDQ=","RJ+zYj/AOLMpn8nHZ7iQWl8aI4cb09sKXR+y/6wC4K8=","oA575YjymKJmrD7AvOJWhqVBUZImO3yhTndPfg8+B0E=","C/fI26KBF321XQI7R6j5tuZcYPrxkdPYZ+Nb7nr08Js=","mt1dzHGetMCzh6/McC8kSJ5PK+UdXVQPQ6wZH7bGzx8=","j+zDFv60yRAka5lkKHJVk+ONVHePdN56t0G1bDYa7wI=","L/dvD12ZWmTF90/mlI41DO4ofR4szSGubOcaZ3tSrfo=","DlkFsuaW0Lemnx/hfWKDDGIHO8n35fi5A3sL1nZM6Nw=","kHa2Ke03zePMosAfwPNg2y4kk1ZwjdZi4MKNVX7epiE=","uCZQe757l2sS1c05Y7TzOwEm+X8MeGLIUCkEOmFVOz4=","nyQV/+cWQUG5Hb2PKjQQNkQIJmz2qzAZKBQlkHGIknM=","G+nk7mgE5h6dUmv2UY7NDJrY3WvrZY31raaO1AETt+o=","qlTWNDzERnTBQVcHHXXVPjiUP0SsikGxfcxVlgqVFDo=","gg9GNApNke3+zNhl4tsWtmIycCFrOMCB3lys6XuSQNQ=","NlOclldmKPA1tMKIskqHAwuQDYHp31YwpK+OOMrMccc=","qxzHanAzz57SDdmJe0B7bJK72NTIBbwEMGBBKvDOROw=","xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n3199388251\n6i5QQjnVaEtqtpQyH7I0LV0JKuZEJb8nCOICva2WhT8=\n\n— rekor.sigstore.dev wNI9ajBFAiB66nwE7CtMsZCkeAq/4lqYl+6jFiweaED44KurvHbf3wIhAJUJg0haPMlWUIuQvj6J20cp07X4609WESmG2fwDwYn8\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiJiMjMyYjJmNGU0YzI5ZTNhZTNhOTUxNzQ2ODE5YzU0YjJhZmZkMzEzZmQ5NTVkMzg4ZmJkNzk5NzgyYTMxNWIxIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJQ1JNRVJLNTlaeXY4NklSN294THEvZCtVOW5HOGNGUlpBWUU0VkRJRlZWTUFpRUFvRk1vTnRoL2pXcmJJQU8zeEQ0YWFUSFBQQ25vR0swcFlNNGh6U2xjb040PSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaExla05EUW5KSFowRjNTVUpCWjBsVlYzbHZXVloxU1U1VGVIbEdTRGxvYmxSNlJ6RkZMM05QUm5semQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFplRTFFUlRWTlZFMTNUMVJCTVZkb1kwNU5hbGw0VFVSRk5VMVVUWGhQVkVFeFYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZtZVVOV2VWTkdNMWhpUTNKeE9TdHdlVFpxTkRkTFZtWXhTRlEyU3pFeWRFTjFTSG9LWTJOSGRpdGlRVFJQVW1GM2MzbHNXakp2ZG1oelQyVXpUREpVVm5scGExTlhLMHBCU0VWTVNuZE5WMEZHVGpWaFVIRlBRMEprUVhkbloxaE5UVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXWkNaMDVXU0ZOTlJVZEVRVmRuUWxSbUNqQXJibEJXYVZGU2JIWnRiekpQYTI5V1lVeEhUR2hvYTFCNlFuSkNaMDVXU0ZKRlFrRm1PRVZaVkVKbWFHd3hiMlJJVW5kamVtOTJUREprY0dSSGFERUtXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWMllUSldlV0p0Vm5OamVURnFZakl4ZEdSWE5YQmtTR3QyVEcxa2NHUkhhREZaYVRrellqTktjZ3BhYlhoMlpETk5kbGx1Vm5CaVIxRjFaVmRHZEdKRlFubGFWMXA2VERKb2JGbFhVbnBNTWpGb1lWYzBkMDlSV1V0TGQxbENRa0ZIUkhaNlFVSkJVVkZ5Q21GSVVqQmpTRTAyVEhrNU1HSXlkR3hpYVRWb1dUTlNjR0l5TlhwTWJXUndaRWRvTVZsdVZucGFXRXBxWWpJMU1GcFhOVEJNYlU1MllsUkJaa0puYjNJS1FtZEZSVUZaVHk5TlFVVkRRa0pHTTJJelNuSmFiWGgyWkRFNWEyRllUbmRaV0ZKcVlVUkJNa0puYjNKQ1owVkZRVmxQTDAxQlJVUkNRMmh0V2xSS2FRcFphbGt5V20xV2JFNXRUWGxaVkdNeldsZE9hbHBxUVRSWlZFRXhUVVJvYTFsNlZUTk9SRWswV2tSUk5FOUhWbXROUWsxSFEybHpSMEZSVVVKbk56aDNDa0ZSVVVWQ1ZVb3hZVmQ0YTAxRGMwZERhWE5IUVZGUlFtYzNPSGRCVVZWRlNGZG9NVm95WkhCaWJXUnRXVmRPYkV3eWRHeGpiVFZzWWtoTmRGa3lPWFFLWWxoV2RXRllValZOUWpCSFEybHpSMEZSVVVKbk56aDNRVkZaUlVRelNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJOMEpuYjNKQ1owVkZRVmxQTHdwTlFVVkpRa013VFVzeWFEQmtTRUo2VDJrNGRtUkhPWEphVnpSMVdWZE9NR0ZYT1hWamVUVnVZVmhTYjJSWFNqRmpNbFo1V1RJNWRXUkhWblZrUXpWcUNtSXlNSGRpVVZsTFMzZFpRa0pCUjBSMmVrRkNRMUZTWmtSR01XOWtTRkozWTNwdmRrd3laSEJrUjJneFdXazFhbUl5TUhaaFNGWnVXakpzZFZveVdtZ0tXVEpWZG1FeVZubGliVlp6WTNreGFtSXlNWFJrVnpWd1pFaHJka3h0WkhCa1IyZ3hXV2s1TTJJelNuSmFiWGgyWkROTmRsbHVWbkJpUjFGMVpWZEdkQXBpUlVKNVdsZGFla3d5YUd4WlYxSjZUREl4YUdGWE5IZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1EyZFJjVVJEYUcxYVZFcHBXV3BaTWxwdFZteE9iVTE1Q2xsVVl6TmFWMDVxV21wQk5GbFVRVEZOUkdocldYcFZNMDVFU1RSYVJGRTBUMGRXYTAxQ2MwZERhWE5IUVZGUlFtYzNPSGRCVVhORlJGRjNUR015Vm5NS1dta3hiMkl6VGpCYVYxRjNVVUZaUzB0M1dVSkNRVWRFZG5wQlFrUkJVWGxFUkVKdlpFaFNkMk42YjNaTU1tUndaRWRvTVZscE5XcGlNakIyWVVoV2JncGFNbXgxV2pKYWFGa3lWWFpoTWxaNVltMVdjMk41TVdwaU1qRjBaRmMxY0dSSWEzZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1JGRlJjVVJEYUcxYVZFcHBDbGxxV1RKYWJWWnNUbTFOZVZsVVl6TmFWMDVxV21wQk5GbFVRVEZOUkdocldYcFZNMDVFU1RSYVJGRTBUMGRXYTAxQ09FZERhWE5IUVZGUlFtYzNPSGNLUVZFMFJVVlJkMUJqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxQ2IwZERhWE5IUVZGUlFtYzNPSGRCVVRoRlJFRjNTMDFVUVROTlZGRXpUbFJWZVFwUFZFRjFRbWR2Y2tKblJVVkJXVTh2VFVGRlVVSkRRVTFJYldnd1pFaENlazlwT0haYU1td3dZVWhXYVV4dFRuWmlVemx2WkZka2JtRlhOVzVhYlVacUNscFVRVmxDWjI5eVFtZEZSVUZaVHk5TlFVVlNRa0Z2VFVORVNURk9la2wzVG5wUmVrMUhNRWREYVhOSFFWRlJRbWMzT0hkQlVrbEZXSGQ0WkdGSVVqQUtZMGhOTmt4NU9XNWhXRkp2WkZkSmRWa3lPWFJNTW1neFdqSmtjR0p0WkcxWlYwNXNUREowYkdOdE5XeGlTRTEwV1RJNWRHSllWblZoV0ZJMVRIazFiZ3BoV0ZKdlpGZEpkbVF5T1hsaE1scHpZak5rZWt3eVNqRmhWM2hyVEc1c2FHSlhlRUZqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxRVowZERhWE5IQ2tGUlVVSm5OemgzUVZKTlJVdG5kMjlhYlZWNVdXMUpNazV0V214YVZGcHFUVzFGTTA0eVZtcFpNbGwzVDBkRmQwNVVRVFJhUjAweFRucFJlVTlIVVRBS1QwUm9iRnBFUVdoQ1oyOXlRbWRGUlVGWlR5OU5RVVZWUWtKTlRVVllaSFpqYlhSdFlrYzVNMWd5VW5Cak0wSm9aRWRPYjAxSFVVZERhWE5IUVZGUlFncG5OemgzUVZKVlJWWm5lRlZoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlV3eVJtcGtSMngyWW01TmRtTnVWblZqZVRoNlQxUkplazlVV1RKUFJGazFUWGs1YUdSSVVteGlXRUl3WTNrNGVFMUNXVWNLUTJselIwRlJVVUpuTnpoM1FWSlpSVU5CZDBkalNGWnBZa2RzYWsxRldVZERhWE5IUVZGUlFtYzNPSGRCVW1kRlQwRjNNbU50Vm5kaWVuQnZaRmRrYmdwaFZ6VnVXbTFHYWxwVE9YSmFXRXAxV2xkNGVreFhUblppVnpFeFltMXNNR1ZVY0hsYVYxazJZMjFXYldONU9XOWFWMFpyWTNrNWRGbFhiSFZOU1VkS0NrSm5iM0pDWjBWRlFXUmFOVUZuVVVOQ1NITkZaVkZDTTBGSVZVRXpWREIzWVhOaVNFVlVTbXBIVWpSamJWZGpNMEZ4U2t0WWNtcGxVRXN6TDJnMGNIa0taME00Y0Rkdk5FRkJRVWRvVmtWbGNYSjNRVUZDUVUxQlVtcENSVUZwUWpkWk9HTlhTVE5aS3poeWN6UTRjaXRTZEZFemJVdFRWVFkxU0ZoRFZWYzRNd3BpTmxkTVQyWjZRV1ZSU1dkUmJtdHJZMDE2U0VGeFUzUlVZVXd4YVhaMlpXUnFNV05RVUdwaWFrWXlNVTR4YjNSclpHcGxka2xCZDBObldVbExiMXBKQ25wcU1FVkJkMDFFWVVGQmQxcFJTWGRPSzNwWkwyNTRWREJWWTNGbWMxY3Jaa3hVVmtGcWVXOVhhVzVTWjNVeE9XMU1jVTV3UzB3cldubHpkWFZIVUVjS1owbE9WMDkzWWtZdlZHeFpkWFpqV2tGcVJVRjZNWFl3TkVoeVNrNVBhR3RQT1dkQ1oxQjVZMFpFVjJGdlJreFhkRzVPVUVkRmJXTlFLMk5zUVZWM1F3cE9PR2xVYTBWelVteGxWRlp0WjFkS1dVSnZiUW90TFMwdExVVk9SQ0JEUlZKVVNVWkpRMEZVUlMwdExTMHRDZz09In19fX0="}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyjADAgEAMIICwQYJKoZIhvcNAQcCoIICsjCCAq4CAQMxDTALBglghkgBZQMEAgEwgbgGCyqGSIb3DQEJEAEEoIGoBIGlMIGiAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgW5GLu9z8VhT1uwfRchWhRKpKygmwUY7fcVxvUboiY/ICFQD5mNt0c4rzP5eYQALiNYgSw/mrqBgPMjAyNjEwMTkxMzA5MDVaMAMCAQGgMqQwMC4xFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEVMBMGA1UEAxMMc2lnc3RvcmUtdHNhoAAxggHbMIIB1wIBATBRMDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAsGCWCGSAFlAwQCAaCB/DAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTI2MTAxOTEzMDkwNVowLwYJKoZIhvcNAQkEMSIEIKj6zhcVimxA5U9dmmawvAqLIYKv7ncazjiQGKm3WyerMIGOBgsqhkiG9w0BCRACLzF/MH0wezB5BCCF+Se8B6tiysO0Q1bBDvyBssaIP9p6uebYcNnROs0FtzBVMD2kOzA5MRUwEwYDVQQKEwxzaWdzdG9yZS5kZXYxIDAeBgNVBAMTF3NpZ3N0b3JlLXRzYS1zZWxmc2lnbmVkAhQ6E1QvDJBh7rzBQy/Lio6LKiOLDDAKBggqhkjOPQQDAgRnMGUCMQDC+IWAcuOVXog8RCz06CUTzSyB5IRnChRpNC9AbVVh+Bb1qkX7HUwdx1+KMbbmnmICMBsYd/e2SjLL64pSLqAWFga5khxokBUo3fULaDVcSZTaKve6zerksybld33i19TaAA=="}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"sjKy9OTCnjrjqVF0aBnFSyr/0xP9lV04j715l4KjFbE="},"signature":"MEUCICRMERK59Zyv86IR7oxLq/d+U9nG8cFRZAYE4VDIFVVMAiEAoFMoNth/jWrbIAO3xD4aaTHPPCnoGK0pYM4hzSlcoN4="}}
build/torch-stable-abi210-cu128-aarch64-linux/symbols.json ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "schema_version": 1,
3
+ "module": "_tdt_loss_cuda_fe2bb66",
4
+ "functions": [
5
+ {
6
+ "name": "tdt_loss",
7
+ "qualname": "tdt_loss",
8
+ "module": "_tdt_loss_cuda_fe2bb66.loss",
9
+ "kind": "function",
10
+ "doc": "Compute the TDT (Token-and-Duration Transducer) loss (https://arxiv.org/abs/2304.06795).\n\nArgs:\n token_logits: Token logits of shape `(batch, T, U+1, vocab_size+1)`, in float32, float16 or bfloat16.\n Only the last dimension needs to be contiguous.\n duration_logits: Duration logits of shape `(batch, T, U+1, num_durations)`, same dtype as `token_logits`.\n targets: Target labels of shape `(batch, U)`.\n logit_lengths: Encoder output lengths of shape `(batch,)`.\n target_lengths: Target lengths of shape `(batch,)`.\n blank_token_id: Blank token id.\n durations: Non-negative duration values, e.g. `[0, 1, 2, 3, 4]`.\n sigma: Logit undernormalization constant (see TDT paper). Defaults to `0.0`.\n reduction: One of `\"mean_volume\"`, `\"mean_batch\"`, `\"mean\"`, `\"sum\"` or `\"none\"`, mirroring NeMo's\n `RNNTLoss`. `\"mean\"` divides each loss by its target length before averaging over the batch.\n\nReturns:\n Scalar loss tensor (or per-example losses of shape `(batch,)` if `reduction=\"none\"`). Samples without a\n valid alignment get an infinite loss and a zero gradient.",
11
+ "signature": {
12
+ "parameters": [
13
+ {
14
+ "name": "token_logits",
15
+ "kind": "POSITIONAL_OR_KEYWORD",
16
+ "default": null,
17
+ "annotation": "torch.Tensor"
18
+ },
19
+ {
20
+ "name": "duration_logits",
21
+ "kind": "POSITIONAL_OR_KEYWORD",
22
+ "default": null,
23
+ "annotation": "torch.Tensor"
24
+ },
25
+ {
26
+ "name": "targets",
27
+ "kind": "POSITIONAL_OR_KEYWORD",
28
+ "default": null,
29
+ "annotation": "torch.Tensor"
30
+ },
31
+ {
32
+ "name": "logit_lengths",
33
+ "kind": "POSITIONAL_OR_KEYWORD",
34
+ "default": null,
35
+ "annotation": "torch.Tensor"
36
+ },
37
+ {
38
+ "name": "target_lengths",
39
+ "kind": "POSITIONAL_OR_KEYWORD",
40
+ "default": null,
41
+ "annotation": "torch.Tensor"
42
+ },
43
+ {
44
+ "name": "blank_token_id",
45
+ "kind": "POSITIONAL_OR_KEYWORD",
46
+ "default": null,
47
+ "annotation": "int"
48
+ },
49
+ {
50
+ "name": "durations",
51
+ "kind": "POSITIONAL_OR_KEYWORD",
52
+ "default": null,
53
+ "annotation": "Sequence[int] | torch.Tensor"
54
+ },
55
+ {
56
+ "name": "sigma",
57
+ "kind": "POSITIONAL_OR_KEYWORD",
58
+ "default": "0.0",
59
+ "annotation": "float"
60
+ },
61
+ {
62
+ "name": "reduction",
63
+ "kind": "POSITIONAL_OR_KEYWORD",
64
+ "default": "'mean'",
65
+ "annotation": "str"
66
+ }
67
+ ],
68
+ "return_annotation": "torch.Tensor"
69
+ }
70
+ }
71
+ ],
72
+ "layers": []
73
+ }
build/torch-stable-abi210-cu130-aarch64-linux/_ops.py CHANGED
@@ -1,9 +1,9 @@
1
  import torch
2
- from . import _tdt_loss_cuda_8bdd234
3
- ops = torch.ops._tdt_loss_cuda_8bdd234
4
 
5
  def add_op_namespace_prefix(op_name: str):
6
  """
7
  Prefix op by namespace.
8
  """
9
- return f"_tdt_loss_cuda_8bdd234::{op_name}"
 
1
  import torch
2
+ from . import _tdt_loss_cuda_fe2bb66
3
+ ops = torch.ops._tdt_loss_cuda_fe2bb66
4
 
5
  def add_op_namespace_prefix(op_name: str):
6
  """
7
  Prefix op by namespace.
8
  """
9
+ return f"_tdt_loss_cuda_fe2bb66::{op_name}"
build/torch-stable-abi210-cu130-aarch64-linux/{_tdt_loss_cuda_8bdd234.abi3.so → _tdt_loss_cuda_fe2bb66.abi3.so} RENAMED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:8e616e46e2308791573335325ffaa98ad0ef729f917fbc6029e6d986068b0063
3
  size 2523872
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:109f78ed260ab2af69480f45c297dea085c2f2a8eb66ee783168778e5a330be6
3
  size 2523872
build/torch-stable-abi210-cu130-aarch64-linux/metadata.json CHANGED
@@ -1,6 +1,6 @@
1
  {
2
  "name": "tdt-loss",
3
- "id": "_tdt_loss_cuda_8bdd234",
4
  "version": 1,
5
  "kernels-minver": "0.14.0",
6
  "license": "Apache-2.0",
@@ -26,20 +26,21 @@
26
  "algorithm": "sha256",
27
  "files": {
28
  "__init__.py": "lJBeJMzaqMSucC/K3266DuYA0JHw96ji1i/gcrHN/ik=",
29
- "_ops.py": "cH0xzOWosVtZ2ezM/hTe5ql5CGAnZ5/YPobUSLaDVKs=",
30
- "_tdt_loss_cuda_8bdd234.abi3.so": "jmFuRuIwh5FXMzUyX/qpitDvcp+Rf7xgKebZhgaLAGM=",
31
  "layers.py": "76Xr2iKOW3v6xtD8gct2jH6LMwVbqJSD8txMe5r0Nlk=",
32
- "loss.py": "wxR68dHg9dUSiG/YOrtbNDQ5CSxHgkWAETZe1VE1FQM="
 
33
  }
34
  },
35
  "provenance": {
36
  "kernel-builder": {
37
  "version": "0.18.0-dev0",
38
- "commit": "a56da98e235a3f52b4b766e4d93fac6a9e599e3d",
39
  "dirty": false
40
  },
41
  "kernel": {
42
- "commit": "8bdd23441c0aad1e36878aec98bd0f05d69eaa6a",
43
  "dirty": false
44
  }
45
  }
 
1
  {
2
  "name": "tdt-loss",
3
+ "id": "_tdt_loss_cuda_fe2bb66",
4
  "version": 1,
5
  "kernels-minver": "0.14.0",
6
  "license": "Apache-2.0",
 
26
  "algorithm": "sha256",
27
  "files": {
28
  "__init__.py": "lJBeJMzaqMSucC/K3266DuYA0JHw96ji1i/gcrHN/ik=",
29
+ "_ops.py": "OrFGElR/Z4ojQBmY0Ij0VyxBZHlO4uCyCD9TW8uuAdQ=",
30
+ "_tdt_loss_cuda_fe2bb66.abi3.so": "EJ947SYKsq9pSA9FwpfeoIXC8qjrZu54MWh3jlozC+Y=",
31
  "layers.py": "76Xr2iKOW3v6xtD8gct2jH6LMwVbqJSD8txMe5r0Nlk=",
32
+ "loss.py": "wxR68dHg9dUSiG/YOrtbNDQ5CSxHgkWAETZe1VE1FQM=",
33
+ "symbols.json": "Uu88dl5tWmpC533wKqo0ZaZ8dXHuzmevhNOI/bXFxbc="
34
  }
35
  },
36
  "provenance": {
37
  "kernel-builder": {
38
  "version": "0.18.0-dev0",
39
+ "commit": "d054906a13710b811b96697b4635f03020842733",
40
  "dirty": false
41
  },
42
  "kernel": {
43
+ "commit": "fe2bb66fee6c2a77eccf08a0508dc57428d488ed",
44
  "dirty": false
45
  }
46
  }
build/torch-stable-abi210-cu130-aarch64-linux/metadata.json.sigstore CHANGED
@@ -1 +1 @@
1
- {"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"MIIHLDCCBrKgAwIBAgIUeCH2dwCUHJySq8DrKsErPNptTaAwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYxMDA5MTY0MTQ5WhcNMjYxMDA5MTY1MTQ5WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE/bW/ZOrUZpj8WbebL65Lq8Rp+qSuinYN+N3cTFzlbbpPbYIaLw3a2Hp1UtTug5RQR6fRqrJ6RTRbQF83BvzYeKOCBdEwggXNMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAfBgNVHSMEGDAWgBTf0+nPViQRlvmo2OkoVaLGLhhkPzBrBgNVHREBAf8EYTBfhl1odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQueWFtbEByZWZzL2hlYWRzL21haW4wOQYKKwYBBAGDvzABAQQraHR0cHM6Ly90b2tlbi5hY3Rpb25zLmdpdGh1YnVzZXJjb250ZW50LmNvbTAfBgorBgEEAYO/MAECBBF3b3JrZmxvd19kaXNwYXRjaDA2BgorBgEEAYO/MAEDBCg4YmRkMjM0NDFjMGFhZDFlMzY4NzhhZWM5OGJkMGYwNWQ2OWVhYTZhMBMGCisGAQQBg78wAQQEBUJ1aWxkMCsGCisGAQQBg78wAQUEHWh1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MB0GCisGAQQBg78wAQYED3JlZnMvaGVhZHMvbWFpbjA7BgorBgEEAYO/MAEIBC0MK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wbQYKKwYBBAGDvzABCQRfDF1odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQueWFtbEByZWZzL2hlYWRzL21haW4wOAYKKwYBBAGDvzABCgQqDCg4YmRkMjM0NDFjMGFhZDFlMzY4NzhhZWM5OGJkMGYwNWQ2OWVhYTZhMBsGCisGAQQBg78wAQsEDQwLc2VsZi1ob3N0ZWQwQAYKKwYBBAGDvzABDAQyDDBodHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkwOAYKKwYBBAGDvzABDQQqDCg4YmRkMjM0NDFjMGFhZDFlMzY4NzhhZWM5OGJkMGYwNWQ2OWVhYTZhMB8GCisGAQQBg78wAQ4EEQwPcmVmcy9oZWFkcy9tYWluMBoGCisGAQQBg78wAQ8EDAwKMTA3MTQ3NTUyOTAuBgorBgEEAYO/MAEQBCAMHmh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZTAYBgorBgEEAYO/MAERBAoMCDI1NzIwNzQzMG0GCisGAQQBg78wARIEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wARMEKgwoOGJkZDIzNDQxYzBhYWQxZTM2ODc4YWVjOThiZDBmMDVkNjllYWE2YTAhBgorBgEEAYO/MAEUBBMMEXdvcmtmbG93X2Rpc3BhdGNoMGQGCisGAQQBg78wARUEVgxUaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5L2FjdGlvbnMvcnVucy8zNzk2MDQ1OTE3MC9hdHRlbXB0cy8xMBYGCisGAQQBg78wARYECAwGcHVibGljMEYGCisGAQQBg78wARgEOAw2cmVwbzpodWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTpyZWY6cmVmcy9oZWFkcy9tYWluMIGKBgorBgEEAdZ5AgQCBHwEegB4AHYA3T0wasbHETJjGR4cmWc3AqJKXrjePK3/h4pygC8p7o4AAAGhIYrXeQAABAMARzBFAiEAtO8v62GLRWZrJrWS4OE9LPborTgAd1RFUmudENZe9JgCIDWb36iEd9aBaNcGkAE+vdMEOfLmOqW9e0zUlevFLnlwMAoGCCqGSM49BAMDA2gAMGUCME98dQGhKiwVY4qe5fw5a0let0F/hiMeNP5QPlj9enOy8nmWMmERK03TV8541/3OBwIxALyQFNbz5j07pbqUwarJuKEXDWaxdzRNOLivKSqFN3EwcCP13K9SkCBN2MiBbBhXcg=="},"tlogEntries":[{"logIndex":"3167887954","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1791564109","inclusionPromise":{"signedEntryTimestamp":"MEUCIQDzAJNJkSuQnr3RH9cy1nRPTj8ah9w8IDLbFA324SobiAIgAM3QdP+2I6EwgqKqhVZpVFyAaaMrjC3Kb5ErcTRtEps="},"inclusionProof":{"logIndex":"3045983692","rootHash":"ftzoKx7PdPxX/6tyxTOK+e5OeuiUoAKFqZqBVBT35g8=","treeSize":"3045983892","hashes":["i1eHYmO7i+kiUPVnDrFxceLWsVqR/dHkzOQ8uygx/zE=","JrjHhu0gDeYkL6yxCNmjHbwXj98glaUNB7GqvS6abX8=","Eg0VcpCZFtq+gTB4NcvRkZ2ayQn3Pjxo3erEdfbYX28=","5lMr3Stoz1fkBsq5LUhUZCIB9UENKlWr883CawBYsrE=","gwL4hHIOO6bsb6WVYDahrBU6G3y2mEGdRZuQuKL0Ezc=","iHODlaSHkBG7DPMKG71ucUFBkJcG3fr6l91nsuqFj3c=","wtUSqpMmTWgqHRz+c2lPhBZuoKcs2e7NRI5qSDtR4RU=","bmP0eW+uiM/0ivs3nlI09lrRRcVNzihiQD7n3UcDXng=","36h+Cz47w3tTP68A6IdH0G5BIF5LzxspnfTKht9oCgU=","0XfHqnmVkJiHb8zskE7jQGFWE9Q4bDh0wATG3l5mO4c=","pt0VklsLTv7EJr7YVnV1cttPnz+SNl74L/uimHjxV2c=","XMzAouyPItjmFBcAg/oorHRQD6qGd0heiVJVWc4Vr9A=","qjjBYB6D8Ah105gg7+wzLiP3mSHKyVl6MylyqpGKKio=","CEC6YzIAZg/5EuXuZ/n+5om4p5ZrF6WsPyYyOsor0mw=","4Qh+oTbYMNZG8o6b5TjkLowu8zTMD/YGtu9os93Mfiw=","wSaHrpTQFjMB4RSxQVUhglqJvAGe2z1ilppo9GSYLkY=","hafZfJdzUX/yyCr3Anv7Qq1DWVaWxotaclNRcl/O9SQ=","NlOclldmKPA1tMKIskqHAwuQDYHp31YwpK+OOMrMccc=","qxzHanAzz57SDdmJe0B7bJK72NTIBbwEMGBBKvDOROw=","xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n3045983892\nftzoKx7PdPxX/6tyxTOK+e5OeuiUoAKFqZqBVBT35g8=\n\n— rekor.sigstore.dev wNI9ajBFAiBwkr0YsTLtn/SjJUZplB+tyxuPbWg7EbQUwBnyR8dYlAIhAP3WWJmGFafKAOEOhpyj5Br6CIURFTL3jdXjp0OXosFe\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiJjOTg1Y2Y3OWE3ODI2M2IwZmM1MDVlNmZjNTc2MDU1YjYwNTdmNGRkNjgyNWQzOTQ0ZTJiNTY2ZmE2YTUwNTU5In19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FUUNJSElVaHFXc1RuYWh2VmNYdEZseEUvbG9jVkhWRWR5elI4RzYraGFpYXVCU0FpQTNPZjk4c0xWVXRRcGkxMy9LekFvdG11WmZ0Tm9Gci9ZQ0dOQWw4RnltQlE9PSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaE1SRU5EUW5KTFowRjNTVUpCWjBsVlpVTklNbVIzUTFWSVNubFRjVGhFY2t0elJYSlFUbkIwVkdGQmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFplRTFFUVRWTlZGa3dUVlJSTlZkb1kwNU5hbGw0VFVSQk5VMVVXVEZOVkZFMVYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVV2WWxjdldrOXlWVnB3YWpoWFltVmlURFkxVEhFNFVuQXJjVk4xYVc1WlRpdE9NMk1LVkVaNmJHSmljRkJpV1VsaFRIY3pZVEpJY0RGVmRGUjFaelZTVVZJMlpsSnhja28yVWxSU1lsRkdPRE5DZG5wWlpVdFBRMEprUlhkbloxaE9UVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXWkNaMDVXU0ZOTlJVZEVRVmRuUWxSbUNqQXJibEJXYVZGU2JIWnRiekpQYTI5V1lVeEhUR2hvYTFCNlFuSkNaMDVXU0ZKRlFrRm1PRVZaVkVKbWFHd3hiMlJJVW5kamVtOTJUREprY0dSSGFERUtXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWMllUSldlV0p0Vm5OamVURnFZakl4ZEdSWE5YQmtTR3QyVEcxa2NHUkhhREZaYVRrellqTktjZ3BhYlhoMlpETk5kbGx1Vm5CaVIxRjFaVmRHZEdKRlFubGFWMXA2VERKb2JGbFhVbnBNTWpGb1lWYzBkMDlSV1V0TGQxbENRa0ZIUkhaNlFVSkJVVkZ5Q21GSVVqQmpTRTAyVEhrNU1HSXlkR3hpYVRWb1dUTlNjR0l5TlhwTWJXUndaRWRvTVZsdVZucGFXRXBxWWpJMU1GcFhOVEJNYlU1MllsUkJaa0puYjNJS1FtZEZSVUZaVHk5TlFVVkRRa0pHTTJJelNuSmFiWGgyWkRFNWEyRllUbmRaV0ZKcVlVUkJNa0puYjNKQ1owVkZRVmxQTDAxQlJVUkNRMmMwV1cxU2F3cE5hazB3VGtSR2FrMUhSbWhhUkVac1RYcFpORTU2YUdoYVYwMDFUMGRLYTAxSFdYZE9WMUV5VDFkV2FGbFVXbWhOUWsxSFEybHpSMEZSVVVKbk56aDNDa0ZSVVVWQ1ZVb3hZVmQ0YTAxRGMwZERhWE5IUVZGUlFtYzNPSGRCVVZWRlNGZG9NVm95WkhCaWJXUnRXVmRPYkV3eWRHeGpiVFZzWWtoTmRGa3lPWFFLWWxoV2RXRllValZOUWpCSFEybHpSMEZSVVVKbk56aDNRVkZaUlVRelNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJOMEpuYjNKQ1owVkZRVmxQTHdwTlFVVkpRa013VFVzeWFEQmtTRUo2VDJrNGRtUkhPWEphVnpSMVdWZE9NR0ZYT1hWamVUVnVZVmhTYjJSWFNqRmpNbFo1V1RJNWRXUkhWblZrUXpWcUNtSXlNSGRpVVZsTFMzZFpRa0pCUjBSMmVrRkNRMUZTWmtSR01XOWtTRkozWTNwdmRrd3laSEJrUjJneFdXazFhbUl5TUhaaFNGWnVXakpzZFZveVdtZ0tXVEpWZG1FeVZubGliVlp6WTNreGFtSXlNWFJrVnpWd1pFaHJka3h0WkhCa1IyZ3hXV2s1TTJJelNuSmFiWGgyWkROTmRsbHVWbkJpUjFGMVpWZEdkQXBpUlVKNVdsZGFla3d5YUd4WlYxSjZUREl4YUdGWE5IZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1EyZFJjVVJEWnpSWmJWSnJUV3BOTUU1RVJtcE5SMFpvQ2xwRVJteE5lbGswVG5wb2FGcFhUVFZQUjBwclRVZFpkMDVYVVRKUFYxWm9XVlJhYUUxQ2MwZERhWE5IUVZGUlFtYzNPSGRCVVhORlJGRjNUR015Vm5NS1dta3hiMkl6VGpCYVYxRjNVVUZaUzB0M1dVSkNRVWRFZG5wQlFrUkJVWGxFUkVKdlpFaFNkMk42YjNaTU1tUndaRWRvTVZscE5XcGlNakIyWVVoV2JncGFNbXgxV2pKYWFGa3lWWFpoTWxaNVltMVdjMk41TVdwaU1qRjBaRmMxY0dSSWEzZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1JGRlJjVVJEWnpSWmJWSnJDazFxVFRCT1JFWnFUVWRHYUZwRVJteE5lbGswVG5wb2FGcFhUVFZQUjBwclRVZFpkMDVYVVRKUFYxWm9XVlJhYUUxQ09FZERhWE5IUVZGUlFtYzNPSGNLUVZFMFJVVlJkMUJqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxQ2IwZERhWE5IUVZGUlFtYzNPSGRCVVRoRlJFRjNTMDFVUVROTlZGRXpUbFJWZVFwUFZFRjFRbWR2Y2tKblJVVkJXVTh2VFVGRlVVSkRRVTFJYldnd1pFaENlazlwT0haYU1td3dZVWhXYVV4dFRuWmlVemx2WkZka2JtRlhOVzVhYlVacUNscFVRVmxDWjI5eVFtZEZSVUZaVHk5TlFVVlNRa0Z2VFVORVNURk9la2wzVG5wUmVrMUhNRWREYVhOSFFWRlJRbWMzT0hkQlVrbEZXSGQ0WkdGSVVqQUtZMGhOTmt4NU9XNWhXRkp2WkZkSmRWa3lPWFJNTW1neFdqSmtjR0p0WkcxWlYwNXNUREowYkdOdE5XeGlTRTEwV1RJNWRHSllWblZoV0ZJMVRIazFiZ3BoV0ZKdlpGZEpkbVF5T1hsaE1scHpZak5rZWt3eVNqRmhWM2hyVEc1c2FHSlhlRUZqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxRVowZERhWE5IQ2tGUlVVSm5OemgzUVZKTlJVdG5kMjlQUjBwcldrUkplazVFVVhoWmVrSm9XVmRSZUZwVVRUSlBSR00wV1ZkV2FrOVVhR2xhUkVKdFRVUldhMDVxYkd3S1dWZEZNbGxVUVdoQ1oyOXlRbWRGUlVGWlR5OU5RVVZWUWtKTlRVVllaSFpqYlhSdFlrYzVNMWd5VW5Cak0wSm9aRWRPYjAxSFVVZERhWE5IUVZGUlFncG5OemgzUVZKVlJWWm5lRlZoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlV3eVJtcGtSMngyWW01TmRtTnVWblZqZVRoNlRucHJNazFFVVRGUFZFVXpUVU01YUdSSVVteGlXRUl3WTNrNGVFMUNXVWNLUTJselIwRlJVVUpuTnpoM1FWSlpSVU5CZDBkalNGWnBZa2RzYWsxRldVZERhWE5IUVZGUlFtYzNPSGRCVW1kRlQwRjNNbU50Vm5kaWVuQnZaRmRrYmdwaFZ6VnVXbTFHYWxwVE9YSmFXRXAxV2xkNGVreFhUblppVnpFeFltMXNNR1ZVY0hsYVYxazJZMjFXYldONU9XOWFWMFpyWTNrNWRGbFhiSFZOU1VkTENrSm5iM0pDWjBWRlFXUmFOVUZuVVVOQ1NIZEZaV2RDTkVGSVdVRXpWREIzWVhOaVNFVlVTbXBIVWpSamJWZGpNMEZ4U2t0WWNtcGxVRXN6TDJnMGNIa0taME00Y0Rkdk5FRkJRVWRvU1ZseVdHVlJRVUZDUVUxQlVucENSa0ZwUlVGMFR6aDJOakpIVEZKWFduSktjbGRUTkU5Rk9VeFFZbTl5VkdkQlpERlNSZ3BWYlhWa1JVNWFaVGxLWjBOSlJGZGlNelpwUldRNVlVSmhUbU5IYTBGRkszWmtUVVZQWmt4dFQzRlhPV1V3ZWxWc1pYWkdURzVzZDAxQmIwZERRM0ZIQ2xOTk5EbENRVTFFUVRKblFVMUhWVU5OUlRrNFpGRkhhRXRwZDFaWk5IRmxOV1ozTldFd2JHVjBNRVl2YUdsTlpVNVFOVkZRYkdvNVpXNVBlVGh1YlZjS1RXMUZVa3N3TTFSV09EVTBNUzh6VDBKM1NYaEJUSGxSUms1aWVqVnFNRGR3WW5GVmQyRnlTblZMUlZoRVYyRjRaSHBTVGs5TWFYWkxVM0ZHVGpORmR3cGpRMUF4TTBzNVUydERRazR5VFdsQ1lrSm9XR05uUFQwS0xTMHRMUzFGVGtRZ1EwVlNWRWxHU1VOQlZFVXRMUzB0TFFvPSJ9fX19"}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyzADAgEAMIICwgYJKoZIhvcNAQcCoIICszCCAq8CAQMxDTALBglghkgBZQMEAgEwgbgGCyqGSIb3DQEJEAEEoIGoBIGlMIGiAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgJj6QmGoA0spPR/zDA6LpBu2nF9RxenLxba8SK7TSti0CFQCnuB3EL9MLsyOMkFyImuLcKTYQxhgPMjAyNjEwMDkxNjQxNDlaMAMCAQGgMqQwMC4xFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEVMBMGA1UEAxMMc2lnc3RvcmUtdHNhoAAxggHcMIIB2AIBATBRMDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAsGCWCGSAFlAwQCAaCB/DAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTI2MTAwOTE2NDE0OVowLwYJKoZIhvcNAQkEMSIEIBPE6AqLfOB2guywmWJrxmHbGtAc4bKUbZBK8E34u5EGMIGOBgsqhkiG9w0BCRACLzF/MH0wezB5BCCF+Se8B6tiysO0Q1bBDvyBssaIP9p6uebYcNnROs0FtzBVMD2kOzA5MRUwEwYDVQQKEwxzaWdzdG9yZS5kZXYxIDAeBgNVBAMTF3NpZ3N0b3JlLXRzYS1zZWxmc2lnbmVkAhQ6E1QvDJBh7rzBQy/Lio6LKiOLDDAKBggqhkjOPQQDAgRoMGYCMQCh9+FxCRoC5GvVmV1wdip/zD52gHmgrddPeTOBQpF1iq4JwBPKWGfR6a6jLdgNu3ACMQCnOo3qOaGzblDcKXwIJltyQyw7GJFwvuELW3nMwSF+hcUJh8ukphJ1V1kZ/HIMflE="}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"yYXPeaeCY7D8UF5vxXYFW2BX9N1oJdOUTitWb6alBVk="},"signature":"MEQCIHIUhqWsTnahvVcXtFlxE/locVHVEdyzR8G6+haiauBSAiA3Of98sLVUtQpi13/KzAotmuZftNoFr/YCGNAl8FymBQ=="}}
 
1
+ {"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"MIIHLTCCBrOgAwIBAgIUKqPfYUYn789/GyvhaGaecsBKwfYwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYxMDE5MTMwOTA4WhcNMjYxMDE5MTMxOTA4WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEpkaxpI+a0VJexJYl49khbfSmH8oDmzS8kO6Lf1+HHYa5uUeVLKpodkx+NqibmS0v05p97RxGf7R9Jy9gTSnzhaOCBdIwggXOMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAfBgNVHSMEGDAWgBTf0+nPViQRlvmo2OkoVaLGLhhkPzBrBgNVHREBAf8EYTBfhl1odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQueWFtbEByZWZzL2hlYWRzL21haW4wOQYKKwYBBAGDvzABAQQraHR0cHM6Ly90b2tlbi5hY3Rpb25zLmdpdGh1YnVzZXJjb250ZW50LmNvbTAfBgorBgEEAYO/MAECBBF3b3JrZmxvd19kaXNwYXRjaDA2BgorBgEEAYO/MAEDBChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMBMGCisGAQQBg78wAQQEBUJ1aWxkMCsGCisGAQQBg78wAQUEHWh1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MB0GCisGAQQBg78wAQYED3JlZnMvaGVhZHMvbWFpbjA7BgorBgEEAYO/MAEIBC0MK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wbQYKKwYBBAGDvzABCQRfDF1odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQueWFtbEByZWZzL2hlYWRzL21haW4wOAYKKwYBBAGDvzABCgQqDChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMBsGCisGAQQBg78wAQsEDQwLc2VsZi1ob3N0ZWQwQAYKKwYBBAGDvzABDAQyDDBodHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkwOAYKKwYBBAGDvzABDQQqDChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMB8GCisGAQQBg78wAQ4EEQwPcmVmcy9oZWFkcy9tYWluMBoGCisGAQQBg78wAQ8EDAwKMTA3MTQ3NTUyOTAuBgorBgEEAYO/MAEQBCAMHmh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZTAYBgorBgEEAYO/MAERBAoMCDI1NzIwNzQzMG0GCisGAQQBg78wARIEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wARMEKgwoZmUyYmI2NmZlZTZjMmE3N2VjY2YwOGEwNTA4ZGM1NzQyOGQ0ODhlZDAhBgorBgEEAYO/MAEUBBMMEXdvcmtmbG93X2Rpc3BhdGNoMGQGCisGAQQBg78wARUEVgxUaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5L2FjdGlvbnMvcnVucy8zOTIzOTY2ODY5My9hdHRlbXB0cy8xMBYGCisGAQQBg78wARYECAwGcHVibGljMEYGCisGAQQBg78wARgEOAw2cmVwbzpodWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTpyZWY6cmVmcy9oZWFkcy9tYWluMIGLBgorBgEEAdZ5AgQCBH0EewB5AHcA3T0wasbHETJjGR4cmWc3AqJKXrjePK3/h4pygC8p7o4AAAGhVEe1ZQAABAMASDBGAiEAh/AfCLYhSm6v3piCFKBi7GTOqTHUQ+l/Drk6LbdOJKoCIQC9/wsLCVjfmHB80v5Ab72D3+UMReK5YdjK4wcpqQzrDTAKBggqhkjOPQQDAwNoADBlAjEAwm1W3voYB4nchU1uyRsccAGWKJ8AIPK9fW8yLwUjpTAV+kL6t2SpM1QPcwT2e8IKAjAIBkEr9lVqZKipkqFCsEqfW0Y09Uf72x6u6F9GGH15uiugUmmkqKlyovnyai0gFBM="},"tlogEntries":[{"logIndex":"3321292655","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1792415348","inclusionPromise":{"signedEntryTimestamp":"MEQCIDwm9X+/2JTIXb2vBV4EQgfX9UqbTcx+tnyESPAV/XEQAiAEUsbDC/zGev6hka838xJjmAotowXvfI9gVXgBS95ufw=="},"inclusionProof":{"logIndex":"3199388393","rootHash":"RwJ8fQUw4zh+o92lgQKVbZo4hT3HBZv4aTQxWs1gLdE=","treeSize":"3199389460","hashes":["iw5jadPq249RgzrQcoznA8joRnNzN1jH2szIV4zhHPQ=","95gMm9h/L3yRdvkbjz7fG2U/7q9ZjHYzMcJnH6q2L54=","/6qY3pWPSDgnQSBy2un7tsMkt648yn8LPgrjDDUj9YE=","QxVpszXKUqsiRt3pkXT7Cugxcik889tnJxujgI9w+pk=","jKxqz6/ihlEIwP0S7GBDI0qgZU51TkjK4ijzTsw7zcE=","vmTEyLKwl8/zr9JKBBIjK0LUI4Ihcegb5drzFLefMOE=","CJGHHx+EP4/BP4hQjIqFyGZ6QFF4MVxxhd1kTNR6BSc=","HE6Ii1lVuZLdVYiOFWjC2cxVxUcJGkYugwnz34BKzf4=","0U5XLGo2HWnX8kTgwfSIpQdMgZQ+TzGfnMo/QjYDs10=","C/fI26KBF321XQI7R6j5tuZcYPrxkdPYZ+Nb7nr08Js=","RgglxuS/hdpMr9jb27ZwuIIafqsBMb72/QLFtrNimbY=","mt1dzHGetMCzh6/McC8kSJ5PK+UdXVQPQ6wZH7bGzx8=","j+zDFv60yRAka5lkKHJVk+ONVHePdN56t0G1bDYa7wI=","L/dvD12ZWmTF90/mlI41DO4ofR4szSGubOcaZ3tSrfo=","DlkFsuaW0Lemnx/hfWKDDGIHO8n35fi5A3sL1nZM6Nw=","kHa2Ke03zePMosAfwPNg2y4kk1ZwjdZi4MKNVX7epiE=","uCZQe757l2sS1c05Y7TzOwEm+X8MeGLIUCkEOmFVOz4=","nyQV/+cWQUG5Hb2PKjQQNkQIJmz2qzAZKBQlkHGIknM=","G+nk7mgE5h6dUmv2UY7NDJrY3WvrZY31raaO1AETt+o=","qlTWNDzERnTBQVcHHXXVPjiUP0SsikGxfcxVlgqVFDo=","gg9GNApNke3+zNhl4tsWtmIycCFrOMCB3lys6XuSQNQ=","NlOclldmKPA1tMKIskqHAwuQDYHp31YwpK+OOMrMccc=","qxzHanAzz57SDdmJe0B7bJK72NTIBbwEMGBBKvDOROw=","xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n3199389460\nRwJ8fQUw4zh+o92lgQKVbZo4hT3HBZv4aTQxWs1gLdE=\n\n— rekor.sigstore.dev wNI9ajBFAiBUEsnKFoFuG85TEseu19SjIS8g2CK8j+CH3+g4oAEzUAIhAOEmPJGVJSwdN5WZeIxGrXGjTUGXFcUcdZrdpINGLwwI\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiI3YjIxZmJkMjI0OThhYzE3OGI2MWI5YzkxYjdjMGY5NGZiMTE4YzRhOTc3YzUwMmM0N2YyYzk0YWZmMjQ4ZGJhIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJRXdmSUdDWTd4RkJwYjc0dU9CZ2JaSWJobWJKdGxxZ1NXVVN1Yi9hSzVEb0FpRUFoZGtYQzRYaDdUbjNOTWd1Mk5EMU1uNEp1RytuY2NTdjdYcHZlSys1aG9nPSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaE1WRU5EUW5KUFowRjNTVUpCWjBsVlMzRlFabGxWV1c0M09Ea3ZSM2wyYUdGSFlXVmpjMEpMZDJaWmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFplRTFFUlRWTlZFMTNUMVJCTkZkb1kwNU5hbGw0VFVSRk5VMVVUWGhQVkVFMFYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZ3YTJGNGNFa3JZVEJXU21WNFNsbHNORGxyYUdKbVUyMUlPRzlFYlhwVE9HdFBOa3dLWmpFclNFaFpZVFYxVldWV1RFdHdiMlJyZUN0T2NXbGliVk13ZGpBMWNEazNVbmhIWmpkU09VcDVPV2RVVTI1NmFHRlBRMEprU1hkbloxaFBUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXWkNaMDVXU0ZOTlJVZEVRVmRuUWxSbUNqQXJibEJXYVZGU2JIWnRiekpQYTI5V1lVeEhUR2hvYTFCNlFuSkNaMDVXU0ZKRlFrRm1PRVZaVkVKbWFHd3hiMlJJVW5kamVtOTJUREprY0dSSGFERUtXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWMllUSldlV0p0Vm5OamVURnFZakl4ZEdSWE5YQmtTR3QyVEcxa2NHUkhhREZaYVRrellqTktjZ3BhYlhoMlpETk5kbGx1Vm5CaVIxRjFaVmRHZEdKRlFubGFWMXA2VERKb2JGbFhVbnBNTWpGb1lWYzBkMDlSV1V0TGQxbENRa0ZIUkhaNlFVSkJVVkZ5Q21GSVVqQmpTRTAyVEhrNU1HSXlkR3hpYVRWb1dUTlNjR0l5TlhwTWJXUndaRWRvTVZsdVZucGFXRXBxWWpJMU1GcFhOVEJNYlU1MllsUkJaa0puYjNJS1FtZEZSVUZaVHk5TlFVVkRRa0pHTTJJelNuSmFiWGgyWkRFNWEyRllUbmRaV0ZKcVlVUkJNa0puYjNKQ1owVkZRVmxQTDAxQlJVUkNRMmh0V2xSS2FRcFphbGt5V20xV2JFNXRUWGxaVkdNeldsZE9hbHBxUVRSWlZFRXhUVVJvYTFsNlZUTk9SRWswV2tSUk5FOUhWbXROUWsxSFEybHpSMEZSVVVKbk56aDNDa0ZSVVVWQ1ZVb3hZVmQ0YTAxRGMwZERhWE5IUVZGUlFtYzNPSGRCVVZWRlNGZG9NVm95WkhCaWJXUnRXVmRPYkV3eWRHeGpiVFZzWWtoTmRGa3lPWFFLWWxoV2RXRllValZOUWpCSFEybHpSMEZSVVVKbk56aDNRVkZaUlVRelNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJOMEpuYjNKQ1owVkZRVmxQTHdwTlFVVkpRa013VFVzeWFEQmtTRUo2VDJrNGRtUkhPWEphVnpSMVdWZE9NR0ZYT1hWamVUVnVZVmhTYjJSWFNqRmpNbFo1V1RJNWRXUkhWblZrUXpWcUNtSXlNSGRpVVZsTFMzZFpRa0pCUjBSMmVrRkNRMUZTWmtSR01XOWtTRkozWTNwdmRrd3laSEJrUjJneFdXazFhbUl5TUhaaFNGWnVXakpzZFZveVdtZ0tXVEpWZG1FeVZubGliVlp6WTNreGFtSXlNWFJrVnpWd1pFaHJka3h0WkhCa1IyZ3hXV2s1TTJJelNuSmFiWGgyWkROTmRsbHVWbkJpUjFGMVpWZEdkQXBpUlVKNVdsZGFla3d5YUd4WlYxSjZUREl4YUdGWE5IZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1EyZFJjVVJEYUcxYVZFcHBXV3BaTWxwdFZteE9iVTE1Q2xsVVl6TmFWMDVxV21wQk5GbFVRVEZOUkdocldYcFZNMDVFU1RSYVJGRTBUMGRXYTAxQ2MwZERhWE5IUVZGUlFtYzNPSGRCVVhORlJGRjNUR015Vm5NS1dta3hiMkl6VGpCYVYxRjNVVUZaUzB0M1dVSkNRVWRFZG5wQlFrUkJVWGxFUkVKdlpFaFNkMk42YjNaTU1tUndaRWRvTVZscE5XcGlNakIyWVVoV2JncGFNbXgxV2pKYWFGa3lWWFpoTWxaNVltMVdjMk41TVdwaU1qRjBaRmMxY0dSSWEzZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1JGRlJjVVJEYUcxYVZFcHBDbGxxV1RKYWJWWnNUbTFOZVZsVVl6TmFWMDVxV21wQk5GbFVRVEZOUkdocldYcFZNMDVFU1RSYVJGRTBUMGRXYTAxQ09FZERhWE5IUVZGUlFtYzNPSGNLUVZFMFJVVlJkMUJqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxQ2IwZERhWE5IUVZGUlFtYzNPSGRCVVRoRlJFRjNTMDFVUVROTlZGRXpUbFJWZVFwUFZFRjFRbWR2Y2tKblJVVkJXVTh2VFVGRlVVSkRRVTFJYldnd1pFaENlazlwT0haYU1td3dZVWhXYVV4dFRuWmlVemx2WkZka2JtRlhOVzVhYlVacUNscFVRVmxDWjI5eVFtZEZSVUZaVHk5TlFVVlNRa0Z2VFVORVNURk9la2wzVG5wUmVrMUhNRWREYVhOSFFWRlJRbWMzT0hkQlVrbEZXSGQ0WkdGSVVqQUtZMGhOTmt4NU9XNWhXRkp2WkZkSmRWa3lPWFJNTW1neFdqSmtjR0p0WkcxWlYwNXNUREowYkdOdE5XeGlTRTEwV1RJNWRHSllWblZoV0ZJMVRIazFiZ3BoV0ZKdlpGZEpkbVF5T1hsaE1scHpZak5rZWt3eVNqRmhWM2hyVEc1c2FHSlhlRUZqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxRVowZERhWE5IQ2tGUlVVSm5OemgzUVZKTlJVdG5kMjlhYlZWNVdXMUpNazV0V214YVZGcHFUVzFGTTA0eVZtcFpNbGwzVDBkRmQwNVVRVFJhUjAweFRucFJlVTlIVVRBS1QwUm9iRnBFUVdoQ1oyOXlRbWRGUlVGWlR5OU5RVVZWUWtKTlRVVllaSFpqYlhSdFlrYzVNMWd5VW5Cak0wSm9aRWRPYjAxSFVVZERhWE5IUVZGUlFncG5OemgzUVZKVlJWWm5lRlZoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlV3eVJtcGtSMngyWW01TmRtTnVWblZqZVRoNlQxUkplazlVV1RKUFJGazFUWGs1YUdSSVVteGlXRUl3WTNrNGVFMUNXVWNLUTJselIwRlJVVUpuTnpoM1FWSlpSVU5CZDBkalNGWnBZa2RzYWsxRldVZERhWE5IUVZGUlFtYzNPSGRCVW1kRlQwRjNNbU50Vm5kaWVuQnZaRmRrYmdwaFZ6VnVXbTFHYWxwVE9YSmFXRXAxV2xkNGVreFhUblppVnpFeFltMXNNR1ZVY0hsYVYxazJZMjFXYldONU9XOWFWMFpyWTNrNWRGbFhiSFZOU1VkTUNrSm5iM0pDWjBWRlFXUmFOVUZuVVVOQ1NEQkZaWGRDTlVGSVkwRXpWREIzWVhOaVNFVlVTbXBIVWpSamJWZGpNMEZ4U2t0WWNtcGxVRXN6TDJnMGNIa0taME00Y0Rkdk5FRkJRVWRvVmtWbE1WcFJRVUZDUVUxQlUwUkNSMEZwUlVGb0wwRm1RMHhaYUZOdE5uWXpjR2xEUmt0Q2FUZEhWRTl4VkVoVlVTdHNMd3BFY21zMlRHSmtUMHBMYjBOSlVVTTVMM2R6VEVOV2FtWnRTRUk0TUhZMVFXSTNNa1F6SzFWTlVtVkxOVmxrYWtzMGQyTndjVkY2Y2tSVVFVdENaMmR4Q21ocmFrOVFVVkZFUVhkT2IwRkVRbXhCYWtWQmQyMHhWek4yYjFsQ05HNWphRlV4ZFhsU2MyTmpRVWRYUzBvNFFVbFFTemxtVnpoNVRIZFZhbkJVUVZZS0sydE1OblF5VTNCTk1WRlFZM2RVTW1VNFNVdEJha0ZKUW10RmNqbHNWbkZhUzJsd2EzRkdRM05GY1daWE1Ga3dPVlZtTnpKNE5uVTJSamxIUjBneE5RcDFhWFZuVlcxdGEzRkxiSGx2ZG01NVlXa3daMFpDVFQwS0xTMHRMUzFGVGtRZ1EwVlNWRWxHU1VOQlZFVXRMUzB0TFFvPSJ9fX19"}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyDADAgEAMIICvwYJKoZIhvcNAQcCoIICsDCCAqwCAQMxDTALBglghkgBZQMEAgEwgbcGCyqGSIb3DQEJEAEEoIGnBIGkMIGhAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgOjKI7GlPl1CcnavyLZFAsXkK92urOjcTuF64CopsxKUCFCB+t6RBmWehxlCXokOsCFe3UqpLGA8yMDI2MTAxOTEzMDkwOFowAwIBAaAypDAwLjEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MRUwEwYDVQQDEwxzaWdzdG9yZS10c2GgADGCAdowggHWAgEBMFEwOTEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MSAwHgYDVQQDExdzaWdzdG9yZS10c2Etc2VsZnNpZ25lZAIUOhNULwyQYe68wUMvy4qOiyojiwwwCwYJYIZIAWUDBAIBoIH8MBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAcBgkqhkiG9w0BCQUxDxcNMjYxMDE5MTMwOTA4WjAvBgkqhkiG9w0BCQQxIgQgSEkHm8rFzEYqVsGmuiqOI3bShCskO6t+77M9KAe32RYwgY4GCyqGSIb3DQEJEAIvMX8wfTB7MHkEIIX5J7wHq2LKw7RDVsEO/IGyxog/2nq55thw2dE6zQW3MFUwPaQ7MDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAoGCCqGSM49BAMCBGYwZAIwFT4W7qLPNgV34q9P93MAQXtbtTG8g+kbM3JNAZlxxVPq79KYaXnk5cb5oJkClI6ZAjArlOFKu5y6NN0QsymDyS1naCIh94BKFoK05lmt/TAiAxyasMmqOrpWP9e8l4nnU5I="}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"eyH70iSYrBeLYbnJG3wPlPsRjEqXfFAsR/LJSv8kjbo="},"signature":"MEUCIEwfIGCY7xFBpb74uOBgbZIbhmbJtlqgSWUSub/aK5DoAiEAhdkXC4Xh7Tn3NMgu2ND1Mn4JuG+nccSv7XpveK+5hog="}}
build/torch-stable-abi210-cu130-aarch64-linux/symbols.json ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "schema_version": 1,
3
+ "module": "_tdt_loss_cuda_fe2bb66",
4
+ "functions": [
5
+ {
6
+ "name": "tdt_loss",
7
+ "qualname": "tdt_loss",
8
+ "module": "_tdt_loss_cuda_fe2bb66.loss",
9
+ "kind": "function",
10
+ "doc": "Compute the TDT (Token-and-Duration Transducer) loss (https://arxiv.org/abs/2304.06795).\n\nArgs:\n token_logits: Token logits of shape `(batch, T, U+1, vocab_size+1)`, in float32, float16 or bfloat16.\n Only the last dimension needs to be contiguous.\n duration_logits: Duration logits of shape `(batch, T, U+1, num_durations)`, same dtype as `token_logits`.\n targets: Target labels of shape `(batch, U)`.\n logit_lengths: Encoder output lengths of shape `(batch,)`.\n target_lengths: Target lengths of shape `(batch,)`.\n blank_token_id: Blank token id.\n durations: Non-negative duration values, e.g. `[0, 1, 2, 3, 4]`.\n sigma: Logit undernormalization constant (see TDT paper). Defaults to `0.0`.\n reduction: One of `\"mean_volume\"`, `\"mean_batch\"`, `\"mean\"`, `\"sum\"` or `\"none\"`, mirroring NeMo's\n `RNNTLoss`. `\"mean\"` divides each loss by its target length before averaging over the batch.\n\nReturns:\n Scalar loss tensor (or per-example losses of shape `(batch,)` if `reduction=\"none\"`). Samples without a\n valid alignment get an infinite loss and a zero gradient.",
11
+ "signature": {
12
+ "parameters": [
13
+ {
14
+ "name": "token_logits",
15
+ "kind": "POSITIONAL_OR_KEYWORD",
16
+ "default": null,
17
+ "annotation": "torch.Tensor"
18
+ },
19
+ {
20
+ "name": "duration_logits",
21
+ "kind": "POSITIONAL_OR_KEYWORD",
22
+ "default": null,
23
+ "annotation": "torch.Tensor"
24
+ },
25
+ {
26
+ "name": "targets",
27
+ "kind": "POSITIONAL_OR_KEYWORD",
28
+ "default": null,
29
+ "annotation": "torch.Tensor"
30
+ },
31
+ {
32
+ "name": "logit_lengths",
33
+ "kind": "POSITIONAL_OR_KEYWORD",
34
+ "default": null,
35
+ "annotation": "torch.Tensor"
36
+ },
37
+ {
38
+ "name": "target_lengths",
39
+ "kind": "POSITIONAL_OR_KEYWORD",
40
+ "default": null,
41
+ "annotation": "torch.Tensor"
42
+ },
43
+ {
44
+ "name": "blank_token_id",
45
+ "kind": "POSITIONAL_OR_KEYWORD",
46
+ "default": null,
47
+ "annotation": "int"
48
+ },
49
+ {
50
+ "name": "durations",
51
+ "kind": "POSITIONAL_OR_KEYWORD",
52
+ "default": null,
53
+ "annotation": "Sequence[int] | torch.Tensor"
54
+ },
55
+ {
56
+ "name": "sigma",
57
+ "kind": "POSITIONAL_OR_KEYWORD",
58
+ "default": "0.0",
59
+ "annotation": "float"
60
+ },
61
+ {
62
+ "name": "reduction",
63
+ "kind": "POSITIONAL_OR_KEYWORD",
64
+ "default": "'mean'",
65
+ "annotation": "str"
66
+ }
67
+ ],
68
+ "return_annotation": "torch.Tensor"
69
+ }
70
+ }
71
+ ],
72
+ "layers": []
73
+ }
build/torch-stable-abi210-cu132-aarch64-linux/_ops.py CHANGED
@@ -1,9 +1,9 @@
1
  import torch
2
- from . import _tdt_loss_cuda_8bdd234
3
- ops = torch.ops._tdt_loss_cuda_8bdd234
4
 
5
  def add_op_namespace_prefix(op_name: str):
6
  """
7
  Prefix op by namespace.
8
  """
9
- return f"_tdt_loss_cuda_8bdd234::{op_name}"
 
1
  import torch
2
+ from . import _tdt_loss_cuda_fe2bb66
3
+ ops = torch.ops._tdt_loss_cuda_fe2bb66
4
 
5
  def add_op_namespace_prefix(op_name: str):
6
  """
7
  Prefix op by namespace.
8
  """
9
+ return f"_tdt_loss_cuda_fe2bb66::{op_name}"
build/torch-stable-abi210-cu132-aarch64-linux/{_tdt_loss_cuda_8bdd234.abi3.so → _tdt_loss_cuda_fe2bb66.abi3.so} RENAMED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:bb9b0e5d6879c205952a4216ef79f2d8c0b7b14058d3cc3c648d440dde9a037b
3
  size 2657816
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e06156401924f8befe3ba36041aa1c4321c6bbc93a1a173759225ea5b9970b88
3
  size 2657816
build/torch-stable-abi210-cu132-aarch64-linux/metadata.json CHANGED
@@ -1,6 +1,6 @@
1
  {
2
  "name": "tdt-loss",
3
- "id": "_tdt_loss_cuda_8bdd234",
4
  "version": 1,
5
  "kernels-minver": "0.14.0",
6
  "license": "Apache-2.0",
@@ -26,20 +26,21 @@
26
  "algorithm": "sha256",
27
  "files": {
28
  "__init__.py": "lJBeJMzaqMSucC/K3266DuYA0JHw96ji1i/gcrHN/ik=",
29
- "_ops.py": "cH0xzOWosVtZ2ezM/hTe5ql5CGAnZ5/YPobUSLaDVKs=",
30
- "_tdt_loss_cuda_8bdd234.abi3.so": "u5sOXWh5wgWVKkIW73ny2MC3sUBY08w8ZI1EDd6aA3s=",
31
  "layers.py": "76Xr2iKOW3v6xtD8gct2jH6LMwVbqJSD8txMe5r0Nlk=",
32
- "loss.py": "wxR68dHg9dUSiG/YOrtbNDQ5CSxHgkWAETZe1VE1FQM="
 
33
  }
34
  },
35
  "provenance": {
36
  "kernel-builder": {
37
  "version": "0.18.0-dev0",
38
- "commit": "a56da98e235a3f52b4b766e4d93fac6a9e599e3d",
39
  "dirty": false
40
  },
41
  "kernel": {
42
- "commit": "8bdd23441c0aad1e36878aec98bd0f05d69eaa6a",
43
  "dirty": false
44
  }
45
  }
 
1
  {
2
  "name": "tdt-loss",
3
+ "id": "_tdt_loss_cuda_fe2bb66",
4
  "version": 1,
5
  "kernels-minver": "0.14.0",
6
  "license": "Apache-2.0",
 
26
  "algorithm": "sha256",
27
  "files": {
28
  "__init__.py": "lJBeJMzaqMSucC/K3266DuYA0JHw96ji1i/gcrHN/ik=",
29
+ "_ops.py": "OrFGElR/Z4ojQBmY0Ij0VyxBZHlO4uCyCD9TW8uuAdQ=",
30
+ "_tdt_loss_cuda_fe2bb66.abi3.so": "4GFWQBkk+L7+O6NgQaocQyHGu8k6Ghc3WSJepbmXC4g=",
31
  "layers.py": "76Xr2iKOW3v6xtD8gct2jH6LMwVbqJSD8txMe5r0Nlk=",
32
+ "loss.py": "wxR68dHg9dUSiG/YOrtbNDQ5CSxHgkWAETZe1VE1FQM=",
33
+ "symbols.json": "Uu88dl5tWmpC533wKqo0ZaZ8dXHuzmevhNOI/bXFxbc="
34
  }
35
  },
36
  "provenance": {
37
  "kernel-builder": {
38
  "version": "0.18.0-dev0",
39
+ "commit": "d054906a13710b811b96697b4635f03020842733",
40
  "dirty": false
41
  },
42
  "kernel": {
43
+ "commit": "fe2bb66fee6c2a77eccf08a0508dc57428d488ed",
44
  "dirty": false
45
  }
46
  }
build/torch-stable-abi210-cu132-aarch64-linux/metadata.json.sigstore CHANGED
@@ -1 +1 @@
1
- {"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"MIIHKzCCBrKgAwIBAgIUFdQ1PU5zCbulMUCQHv7lGMbbZmkwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYxMDA5MTY0MTUyWhcNMjYxMDA5MTY1MTUyWjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE/KCLMjRSzkU0CJkCXMttZ4zL6b+ZZ0OEgI6DR9kFvolLbND3bwmZn/HJ/9wkAkV4VOdlpXDXB8rxuMvmk0Ra46OCBdEwggXNMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAfBgNVHSMEGDAWgBTf0+nPViQRlvmo2OkoVaLGLhhkPzBrBgNVHREBAf8EYTBfhl1odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQueWFtbEByZWZzL2hlYWRzL21haW4wOQYKKwYBBAGDvzABAQQraHR0cHM6Ly90b2tlbi5hY3Rpb25zLmdpdGh1YnVzZXJjb250ZW50LmNvbTAfBgorBgEEAYO/MAECBBF3b3JrZmxvd19kaXNwYXRjaDA2BgorBgEEAYO/MAEDBCg4YmRkMjM0NDFjMGFhZDFlMzY4NzhhZWM5OGJkMGYwNWQ2OWVhYTZhMBMGCisGAQQBg78wAQQEBUJ1aWxkMCsGCisGAQQBg78wAQUEHWh1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MB0GCisGAQQBg78wAQYED3JlZnMvaGVhZHMvbWFpbjA7BgorBgEEAYO/MAEIBC0MK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wbQYKKwYBBAGDvzABCQRfDF1odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQueWFtbEByZWZzL2hlYWRzL21haW4wOAYKKwYBBAGDvzABCgQqDCg4YmRkMjM0NDFjMGFhZDFlMzY4NzhhZWM5OGJkMGYwNWQ2OWVhYTZhMBsGCisGAQQBg78wAQsEDQwLc2VsZi1ob3N0ZWQwQAYKKwYBBAGDvzABDAQyDDBodHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkwOAYKKwYBBAGDvzABDQQqDCg4YmRkMjM0NDFjMGFhZDFlMzY4NzhhZWM5OGJkMGYwNWQ2OWVhYTZhMB8GCisGAQQBg78wAQ4EEQwPcmVmcy9oZWFkcy9tYWluMBoGCisGAQQBg78wAQ8EDAwKMTA3MTQ3NTUyOTAuBgorBgEEAYO/MAEQBCAMHmh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZTAYBgorBgEEAYO/MAERBAoMCDI1NzIwNzQzMG0GCisGAQQBg78wARIEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wARMEKgwoOGJkZDIzNDQxYzBhYWQxZTM2ODc4YWVjOThiZDBmMDVkNjllYWE2YTAhBgorBgEEAYO/MAEUBBMMEXdvcmtmbG93X2Rpc3BhdGNoMGQGCisGAQQBg78wARUEVgxUaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5L2FjdGlvbnMvcnVucy8zNzk2MDQ1OTE3MC9hdHRlbXB0cy8xMBYGCisGAQQBg78wARYECAwGcHVibGljMEYGCisGAQQBg78wARgEOAw2cmVwbzpodWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTpyZWY6cmVmcy9oZWFkcy9tYWluMIGKBgorBgEEAdZ5AgQCBHwEegB4AHYA3T0wasbHETJjGR4cmWc3AqJKXrjePK3/h4pygC8p7o4AAAGhIYrhsAAABAMARzBFAiEArEEHXHBRjN3c2CjQvH/xa+G12MT0q3FAOzM0p/hCzJQCIGuMqlUS9WjKI3t8gO3Ckmxxp62SDlSemeIj56SindQNMAoGCCqGSM49BAMDA2cAMGQCMAh/99bF73DHHWYjOBcgAcGulLiUX5BTyhh+DAKQubyFWjlNdIXPLpLexCN4p+sUowIwIuU/eEpbQJEb2wAdVDk3xbjqAzmaB+4ccE5ymNrn0Z7wQobhwmN89qQYAZhsrtBU"},"tlogEntries":[{"logIndex":"3167888701","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1791564112","inclusionPromise":{"signedEntryTimestamp":"MEUCIEki1TXZqgZJsP1i5lYINSLQ/deEO0dOPqGXxDk+QGAqAiEAgScHibIP+ZOHZx5usuWzNPPa5aGAfKW7GHPKvX3B60U="},"inclusionProof":{"logIndex":"3045984439","rootHash":"K6CkjMNwQMlpO6OL+aLqKfvZHWMlAt+Xxi9KZRQB6WY=","treeSize":"3045984522","hashes":["LDqGAGAQOh1WyXLr0eHnGVcvDRZ+VaSL23qhpOGb/Zc=","EPsPoMi/iYLqWhm0uBxNyzc4ukbRENzYrVml6Ykpng8=","sT/aeifbRgiSoEMIj3ehfZHuGMCfLxUMjcSxEU4QqH4=","Pome7a5XsV0ep7HaxD+jD+0XO1G8U5HPAqQw6YLcPN0=","xfpQVWPWmzxkk13GDrlSDPzy3Q9b4I/ya/lMuZzDMqk=","V2c8gxs8tYMhiTTUc81RmKwEklk3HPH5+Rwp7JNOXRQ=","HKKHrDDAIqGE/LSzrNQzfCL4QAQifezW4ir1c2L4A9s=","o1vPGz7CJP4CIcSbrvx0bMCIKmvvWc53DpFQYyNj5CI=","OFbzzBbxxz6rH7eOWzmWYB7EfvptIbYU/LGaj+s36qI=","Ez6gCXn+vyRVqYzucRGsU1wlkAGLn9s2Ia0gWaOnYGc=","XMzAouyPItjmFBcAg/oorHRQD6qGd0heiVJVWc4Vr9A=","qjjBYB6D8Ah105gg7+wzLiP3mSHKyVl6MylyqpGKKio=","CEC6YzIAZg/5EuXuZ/n+5om4p5ZrF6WsPyYyOsor0mw=","4Qh+oTbYMNZG8o6b5TjkLowu8zTMD/YGtu9os93Mfiw=","wSaHrpTQFjMB4RSxQVUhglqJvAGe2z1ilppo9GSYLkY=","hafZfJdzUX/yyCr3Anv7Qq1DWVaWxotaclNRcl/O9SQ=","NlOclldmKPA1tMKIskqHAwuQDYHp31YwpK+OOMrMccc=","qxzHanAzz57SDdmJe0B7bJK72NTIBbwEMGBBKvDOROw=","xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n3045984522\nK6CkjMNwQMlpO6OL+aLqKfvZHWMlAt+Xxi9KZRQB6WY=\n\n— rekor.sigstore.dev wNI9ajBGAiEA5QGnkTSSpq1vEFpvrPTWbIfuMDzbUhjoodbhGoJKX+UCIQCdzmlzY41CcyXohX7u6Tm5vYdpjBdpfe50SAO0zUZeUw==\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiJjYTJmODVmN2IxMWE0NjIxMDhlZTAwYTBhNjFkOTAwOTBlNDhmMGY3OGFjNGM3YTdkOWUzZjUwYTRjY2ZlNzQyIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FWUNJUURaSGJoUE5tM2xNWXJ3cVI2bFhVcWZrVVBWV3V4VDdsWTl3NG9tais0SVl3SWhBS3BhUndTNVB4V3BRMUtEVStISEhlUHh2TnovWXlWcTI0RitHbjFkSVplKyIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaExla05EUW5KTFowRjNTVUpCWjBsVlJtUlJNVkJWTlhwRFluVnNUVlZEVVVoMk4yeEhUV0ppV20xcmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFplRTFFUVRWTlZGa3dUVlJWZVZkb1kwNU5hbGw0VFVSQk5VMVVXVEZOVkZWNVYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVV2UzBOTVRXcFNVM3ByVlRCRFNtdERXRTEwZEZvMGVrdzJZaXRhV2pCUFJXZEpOa1FLVWpsclJuWnZiRXhpVGtRelluZHRXbTR2U0Vvdk9YZHJRV3RXTkZaUFpHeHdXRVJZUWpoeWVIVk5kbTFyTUZKaE5EWlBRMEprUlhkbloxaE9UVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXWkNaMDVXU0ZOTlJVZEVRVmRuUWxSbUNqQXJibEJXYVZGU2JIWnRiekpQYTI5V1lVeEhUR2hvYTFCNlFuSkNaMDVXU0ZKRlFrRm1PRVZaVkVKbWFHd3hiMlJJVW5kamVtOTJUREprY0dSSGFERUtXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWMllUSldlV0p0Vm5OamVURnFZakl4ZEdSWE5YQmtTR3QyVEcxa2NHUkhhREZaYVRrellqTktjZ3BhYlhoMlpETk5kbGx1Vm5CaVIxRjFaVmRHZEdKRlFubGFWMXA2VERKb2JGbFhVbnBNTWpGb1lWYzBkMDlSV1V0TGQxbENRa0ZIUkhaNlFVSkJVVkZ5Q21GSVVqQmpTRTAyVEhrNU1HSXlkR3hpYVRWb1dUTlNjR0l5TlhwTWJXUndaRWRvTVZsdVZucGFXRXBxWWpJMU1GcFhOVEJNYlU1MllsUkJaa0puYjNJS1FtZEZSVUZaVHk5TlFVVkRRa0pHTTJJelNuSmFiWGgyWkRFNWEyRllUbmRaV0ZKcVlVUkJNa0puYjNKQ1owVkZRVmxQTDAxQlJVUkNRMmMwV1cxU2F3cE5hazB3VGtSR2FrMUhSbWhhUkVac1RYcFpORTU2YUdoYVYwMDFUMGRLYTAxSFdYZE9WMUV5VDFkV2FGbFVXbWhOUWsxSFEybHpSMEZSVVVKbk56aDNDa0ZSVVVWQ1ZVb3hZVmQ0YTAxRGMwZERhWE5IUVZGUlFtYzNPSGRCVVZWRlNGZG9NVm95WkhCaWJXUnRXVmRPYkV3eWRHeGpiVFZzWWtoTmRGa3lPWFFLWWxoV2RXRllValZOUWpCSFEybHpSMEZSVVVKbk56aDNRVkZaUlVRelNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJOMEpuYjNKQ1owVkZRVmxQTHdwTlFVVkpRa013VFVzeWFEQmtTRUo2VDJrNGRtUkhPWEphVnpSMVdWZE9NR0ZYT1hWamVUVnVZVmhTYjJSWFNqRmpNbFo1V1RJNWRXUkhWblZrUXpWcUNtSXlNSGRpVVZsTFMzZFpRa0pCUjBSMmVrRkNRMUZTWmtSR01XOWtTRkozWTNwdmRrd3laSEJrUjJneFdXazFhbUl5TUhaaFNGWnVXakpzZFZveVdtZ0tXVEpWZG1FeVZubGliVlp6WTNreGFtSXlNWFJrVnpWd1pFaHJka3h0WkhCa1IyZ3hXV2s1TTJJelNuSmFiWGgyWkROTmRsbHVWbkJpUjFGMVpWZEdkQXBpUlVKNVdsZGFla3d5YUd4WlYxSjZUREl4YUdGWE5IZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1EyZFJjVVJEWnpSWmJWSnJUV3BOTUU1RVJtcE5SMFpvQ2xwRVJteE5lbGswVG5wb2FGcFhUVFZQUjBwclRVZFpkMDVYVVRKUFYxWm9XVlJhYUUxQ2MwZERhWE5IUVZGUlFtYzNPSGRCVVhORlJGRjNUR015Vm5NS1dta3hiMkl6VGpCYVYxRjNVVUZaUzB0M1dVSkNRVWRFZG5wQlFrUkJVWGxFUkVKdlpFaFNkMk42YjNaTU1tUndaRWRvTVZscE5XcGlNakIyWVVoV2JncGFNbXgxV2pKYWFGa3lWWFpoTWxaNVltMVdjMk41TVdwaU1qRjBaRmMxY0dSSWEzZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1JGRlJjVVJEWnpSWmJWSnJDazFxVFRCT1JFWnFUVWRHYUZwRVJteE5lbGswVG5wb2FGcFhUVFZQUjBwclRVZFpkMDVYVVRKUFYxWm9XVlJhYUUxQ09FZERhWE5IUVZGUlFtYzNPSGNLUVZFMFJVVlJkMUJqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxQ2IwZERhWE5IUVZGUlFtYzNPSGRCVVRoRlJFRjNTMDFVUVROTlZGRXpUbFJWZVFwUFZFRjFRbWR2Y2tKblJVVkJXVTh2VFVGRlVVSkRRVTFJYldnd1pFaENlazlwT0haYU1td3dZVWhXYVV4dFRuWmlVemx2WkZka2JtRlhOVzVhYlVacUNscFVRVmxDWjI5eVFtZEZSVUZaVHk5TlFVVlNRa0Z2VFVORVNURk9la2wzVG5wUmVrMUhNRWREYVhOSFFWRlJRbWMzT0hkQlVrbEZXSGQ0WkdGSVVqQUtZMGhOTmt4NU9XNWhXRkp2WkZkSmRWa3lPWFJNTW1neFdqSmtjR0p0WkcxWlYwNXNUREowYkdOdE5XeGlTRTEwV1RJNWRHSllWblZoV0ZJMVRIazFiZ3BoV0ZKdlpGZEpkbVF5T1hsaE1scHpZak5rZWt3eVNqRmhWM2hyVEc1c2FHSlhlRUZqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxRVowZERhWE5IQ2tGUlVVSm5OemgzUVZKTlJVdG5kMjlQUjBwcldrUkplazVFVVhoWmVrSm9XVmRSZUZwVVRUSlBSR00wV1ZkV2FrOVVhR2xhUkVKdFRVUldhMDVxYkd3S1dWZEZNbGxVUVdoQ1oyOXlRbWRGUlVGWlR5OU5RVVZWUWtKTlRVVllaSFpqYlhSdFlrYzVNMWd5VW5Cak0wSm9aRWRPYjAxSFVVZERhWE5IUVZGUlFncG5OemgzUVZKVlJWWm5lRlZoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlV3eVJtcGtSMngyWW01TmRtTnVWblZqZVRoNlRucHJNazFFVVRGUFZFVXpUVU01YUdSSVVteGlXRUl3WTNrNGVFMUNXVWNLUTJselIwRlJVVUpuTnpoM1FWSlpSVU5CZDBkalNGWnBZa2RzYWsxRldVZERhWE5IUVZGUlFtYzNPSGRCVW1kRlQwRjNNbU50Vm5kaWVuQnZaRmRrYmdwaFZ6VnVXbTFHYWxwVE9YSmFXRXAxV2xkNGVreFhUblppVnpFeFltMXNNR1ZVY0hsYVYxazJZMjFXYldONU9XOWFWMFpyWTNrNWRGbFhiSFZOU1VkTENrSm5iM0pDWjBWRlFXUmFOVUZuVVVOQ1NIZEZaV2RDTkVGSVdVRXpWREIzWVhOaVNFVlVTbXBIVWpSamJWZGpNMEZ4U2t0WWNtcGxVRXN6TDJnMGNIa0taME00Y0Rkdk5FRkJRVWRvU1ZseWFITkJRVUZDUVUxQlVucENSa0ZwUlVGeVJVVklXRWhDVW1wT00yTXlRMnBSZGtndmVHRXJSekV5VFZRd2NUTkdRUXBQZWswd2NDOW9RM3BLVVVOSlIzVk5jV3hWVXpsWGFrdEpNM1E0WjA4elEydHRlSGh3TmpKVFJHeFRaVzFsU1dvMU5sTnBibVJSVGsxQmIwZERRM0ZIQ2xOTk5EbENRVTFFUVRKalFVMUhVVU5OUVdndk9UbGlSamN6UkVoSVYxbHFUMEpqWjBGalIzVnNUR2xWV0RWQ1ZIbG9hQ3RFUVV0UmRXSjVSbGRxYkU0S1pFbFlVRXh3VEdWNFEwNDBjQ3R6Vlc5M1NYZEpkVlV2WlVWd1lsRktSV0l5ZDBGa1ZrUnJNM2hpYW5GQmVtMWhRaXMwWTJORk5YbHRUbkp1TUZvM2R3cFJiMkpvZDIxT09EbHhVVmxCV21oemNuUkNWUW90TFMwdExVVk9SQ0JEUlZKVVNVWkpRMEZVUlMwdExTMHRDZz09In19fX0="}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyjADAgEAMIICwQYJKoZIhvcNAQcCoIICsjCCAq4CAQMxDTALBglghkgBZQMEAgEwgbcGCyqGSIb3DQEJEAEEoIGnBIGkMIGhAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgPUX5RfAjePEC1vzHpPMopeVRXgwL9mS+wXnOSsfUcTcCFBfcot3D1Y4k1dAxovMIxg69pc46GA8yMDI2MTAwOTE2NDE1MlowAwIBAaAypDAwLjEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MRUwEwYDVQQDEwxzaWdzdG9yZS10c2GgADGCAdwwggHYAgEBMFEwOTEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MSAwHgYDVQQDExdzaWdzdG9yZS10c2Etc2VsZnNpZ25lZAIUOhNULwyQYe68wUMvy4qOiyojiwwwCwYJYIZIAWUDBAIBoIH8MBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAcBgkqhkiG9w0BCQUxDxcNMjYxMDA5MTY0MTUyWjAvBgkqhkiG9w0BCQQxIgQgIp4y7HHqMynvCTnIp11vzUYOix14FVYkwXCwIn4Bn5EwgY4GCyqGSIb3DQEJEAIvMX8wfTB7MHkEIIX5J7wHq2LKw7RDVsEO/IGyxog/2nq55thw2dE6zQW3MFUwPaQ7MDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAoGCCqGSM49BAMCBGgwZgIxAJwcC1esEJ47AsynbBX8IbRmopNfu62qsb/lpGDUJ16v1jRbkXXQROU16LRakR4isQIxAP9KCoDA7IAFDXJT6BhHHJ2IWARQHS5GnGJS9kcSQ8zexz3Gpga4rfGtu/SAa5M/rQ=="}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"yi+F97EaRiEI7gCgph2QCQ5I8PeKxMen2eP1CkzP50I="},"signature":"MEYCIQDZHbhPNm3lMYrwqR6lXUqfkUPVWuxT7lY9w4omj+4IYwIhAKpaRwS5PxWpQ1KDU+HHHePxvNz/YyVq24F+Gn1dIZe+"}}
 
1
+ {"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"MIIHKzCCBrGgAwIBAgIUT63Eqg2ZJj+Q1QmZ6LEwyuyiJfUwCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYxMDE5MTMwOTE4WhcNMjYxMDE5MTMxOTE4WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE3s+/yz7muMNZvuzcp2qm5xNSFtLL+SL+C8l66Y5SKnle2UjwbQW4roy1fkKLyXNZTmDm/gSjWWwCUB52J3yQtKOCBdAwggXMMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAfBgNVHSMEGDAWgBTf0+nPViQRlvmo2OkoVaLGLhhkPzBrBgNVHREBAf8EYTBfhl1odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQueWFtbEByZWZzL2hlYWRzL21haW4wOQYKKwYBBAGDvzABAQQraHR0cHM6Ly90b2tlbi5hY3Rpb25zLmdpdGh1YnVzZXJjb250ZW50LmNvbTAfBgorBgEEAYO/MAECBBF3b3JrZmxvd19kaXNwYXRjaDA2BgorBgEEAYO/MAEDBChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMBMGCisGAQQBg78wAQQEBUJ1aWxkMCsGCisGAQQBg78wAQUEHWh1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MB0GCisGAQQBg78wAQYED3JlZnMvaGVhZHMvbWFpbjA7BgorBgEEAYO/MAEIBC0MK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wbQYKKwYBBAGDvzABCQRfDF1odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQueWFtbEByZWZzL2hlYWRzL21haW4wOAYKKwYBBAGDvzABCgQqDChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMBsGCisGAQQBg78wAQsEDQwLc2VsZi1ob3N0ZWQwQAYKKwYBBAGDvzABDAQyDDBodHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkwOAYKKwYBBAGDvzABDQQqDChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMB8GCisGAQQBg78wAQ4EEQwPcmVmcy9oZWFkcy9tYWluMBoGCisGAQQBg78wAQ8EDAwKMTA3MTQ3NTUyOTAuBgorBgEEAYO/MAEQBCAMHmh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZTAYBgorBgEEAYO/MAERBAoMCDI1NzIwNzQzMG0GCisGAQQBg78wARIEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wARMEKgwoZmUyYmI2NmZlZTZjMmE3N2VjY2YwOGEwNTA4ZGM1NzQyOGQ0ODhlZDAhBgorBgEEAYO/MAEUBBMMEXdvcmtmbG93X2Rpc3BhdGNoMGQGCisGAQQBg78wARUEVgxUaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5L2FjdGlvbnMvcnVucy8zOTIzOTY2ODY5My9hdHRlbXB0cy8xMBYGCisGAQQBg78wARYECAwGcHVibGljMEYGCisGAQQBg78wARgEOAw2cmVwbzpodWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTpyZWY6cmVmcy9oZWFkcy9tYWluMIGJBgorBgEEAdZ5AgQCBHsEeQB3AHUA3T0wasbHETJjGR4cmWc3AqJKXrjePK3/h4pygC8p7o4AAAGhVEfdfwAABAMARjBEAiAQ9v8ypJAB9NdONfieeTIHEvTX0jz2mU0PmxmuljrK3AIgBSnsSwb3GPxm9z/mmCIRirduvn5aoWkanidA47mxnQwwCgYIKoZIzj0EAwMDaAAwZQIwDdBBzJjF3zmK6Ox3sWqs9OVSQumKaBRv8n9uLJUuZ2IFFAhEJp1pKiMCnS5FX7A2AjEAw4YhUMgS20h22UQUycVFifOXiP+K9CUnD/7GtZAeNclIWOhoWw3U0CIH3iz1MtE0"},"tlogEntries":[{"logIndex":"3321294606","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1792415361","inclusionPromise":{"signedEntryTimestamp":"MEUCIGeWu9AN2Hh/EeqeMTNRBvYaDpBkcKFcVt7PvZw/Ya4QAiEAy+SUqGtlrSmZ6B3bMimu8cdW3FLwqpfNsS0Po7VDenU="},"inclusionProof":{"logIndex":"3199390344","rootHash":"C1N+ZADsWRwTXwBE47sZlhH+UrFR0at4Sp/kDO/pLM4=","treeSize":"3199390633","hashes":["fOTykE3rlJkuJ2W8aA/7zR6I7q3gslzcwjQNNz0mF5E=","RDVwTVb06kW9fdt0tdlscOyNvhrU3XlG+iQ4Pk//7gY=","voqTFbPgQNidf3SCP/YLS+lpBmr3X2zD4LcrpZh5Cc0=","HPwrf5PkwrE+/ZfRIkfMk1H/GnwD1/qBN74//USdsOw=","Pe8MmSH6gVuFv9Qo+xoLmlklDOXXC+Nua0/xIMZa0NE=","QnOVD8+jlj4npd3WiIiZ6bQwGkdU/7PpIJEZpvzN0dA=","PhwI42YV1e62W9ay98ZimxxQa1+xVgwt3SNYXvdGqZM=","yHWQZgPvqtCKN3nIZyOk8+OKxGXoq9EDfHZcFC6WT08=","nhLowBtlMe0KQvvfAcIpkze9SJtHSZqqOEeb+72r90c=","XdVNLmBxSET5LWUwSd+qZ3wipgg+2Fyz5RjV0BbGnKU=","vrCjqDs6QDDugKSKGSIvCyYDePC654SqpxqIV8Q7Dbw=","j+zDFv60yRAka5lkKHJVk+ONVHePdN56t0G1bDYa7wI=","L/dvD12ZWmTF90/mlI41DO4ofR4szSGubOcaZ3tSrfo=","DlkFsuaW0Lemnx/hfWKDDGIHO8n35fi5A3sL1nZM6Nw=","kHa2Ke03zePMosAfwPNg2y4kk1ZwjdZi4MKNVX7epiE=","uCZQe757l2sS1c05Y7TzOwEm+X8MeGLIUCkEOmFVOz4=","nyQV/+cWQUG5Hb2PKjQQNkQIJmz2qzAZKBQlkHGIknM=","G+nk7mgE5h6dUmv2UY7NDJrY3WvrZY31raaO1AETt+o=","qlTWNDzERnTBQVcHHXXVPjiUP0SsikGxfcxVlgqVFDo=","gg9GNApNke3+zNhl4tsWtmIycCFrOMCB3lys6XuSQNQ=","NlOclldmKPA1tMKIskqHAwuQDYHp31YwpK+OOMrMccc=","qxzHanAzz57SDdmJe0B7bJK72NTIBbwEMGBBKvDOROw=","xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n3199390633\nC1N+ZADsWRwTXwBE47sZlhH+UrFR0at4Sp/kDO/pLM4=\n\n— rekor.sigstore.dev wNI9ajBFAiEAkGcfqY+mvtJmBgpXAbZ8X+UjQz0ofNpFc77M2BdV1GgCIBOMZMoMgfEy1ulW259ilbagsKgQSQnF6Ofbzc+ynBDH\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiJmMGY2ZWVmMzc2NzM3NDZhODcyMmZmNjNlNTg4NDQ3ZGJhZDExY2M0MzQ0MjNmZDllZTUwOTQwNWFkZTNlNmVmIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJUUNRcllQa3VSamRibVdsYjJrcXR6RXVOV1o1M2dibEE4QXZTRXdLRXBWdjBRSWdPTzJZbFY4OXoxcU5iUFpmUEZiYUJib1RCd1BIMEZUdU1qQ01IT05oSVRvPSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaExla05EUW5KSFowRjNTVUpCWjBsVlZEWXpSWEZuTWxwS2FpdFJNVkZ0V2paTVJYZDVkWGxwU21aVmQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFplRTFFUlRWTlZFMTNUMVJGTkZkb1kwNU5hbGw0VFVSRk5VMVVUWGhQVkVVMFYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVV6Y3lzdmVYbzNiWFZOVGxwMmRYcGpjREp4YlRWNFRsTkdkRXhNSzFOTUswTTRiRFlLTmxrMVUwdHViR1V5VldwM1lsRlhOSEp2ZVRGbWEwdE1lVmhPV2xSdFJHMHZaMU5xVjFkM1ExVkNOVEpLTTNsUmRFdFBRMEprUVhkbloxaE5UVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXWkNaMDVXU0ZOTlJVZEVRVmRuUWxSbUNqQXJibEJXYVZGU2JIWnRiekpQYTI5V1lVeEhUR2hvYTFCNlFuSkNaMDVXU0ZKRlFrRm1PRVZaVkVKbWFHd3hiMlJJVW5kamVtOTJUREprY0dSSGFERUtXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWMllUSldlV0p0Vm5OamVURnFZakl4ZEdSWE5YQmtTR3QyVEcxa2NHUkhhREZaYVRrellqTktjZ3BhYlhoMlpETk5kbGx1Vm5CaVIxRjFaVmRHZEdKRlFubGFWMXA2VERKb2JGbFhVbnBNTWpGb1lWYzBkMDlSV1V0TGQxbENRa0ZIUkhaNlFVSkJVVkZ5Q21GSVVqQmpTRTAyVEhrNU1HSXlkR3hpYVRWb1dUTlNjR0l5TlhwTWJXUndaRWRvTVZsdVZucGFXRXBxWWpJMU1GcFhOVEJNYlU1MllsUkJaa0puYjNJS1FtZEZSVUZaVHk5TlFVVkRRa0pHTTJJelNuSmFiWGgyWkRFNWEyRllUbmRaV0ZKcVlVUkJNa0puYjNKQ1owVkZRVmxQTDAxQlJVUkNRMmh0V2xSS2FRcFphbGt5V20xV2JFNXRUWGxaVkdNeldsZE9hbHBxUVRSWlZFRXhUVVJvYTFsNlZUTk9SRWswV2tSUk5FOUhWbXROUWsxSFEybHpSMEZSVVVKbk56aDNDa0ZSVVVWQ1ZVb3hZVmQ0YTAxRGMwZERhWE5IUVZGUlFtYzNPSGRCVVZWRlNGZG9NVm95WkhCaWJXUnRXVmRPYkV3eWRHeGpiVFZzWWtoTmRGa3lPWFFLWWxoV2RXRllValZOUWpCSFEybHpSMEZSVVVKbk56aDNRVkZaUlVRelNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJOMEpuYjNKQ1owVkZRVmxQTHdwTlFVVkpRa013VFVzeWFEQmtTRUo2VDJrNGRtUkhPWEphVnpSMVdWZE9NR0ZYT1hWamVUVnVZVmhTYjJSWFNqRmpNbFo1V1RJNWRXUkhWblZrUXpWcUNtSXlNSGRpVVZsTFMzZFpRa0pCUjBSMmVrRkNRMUZTWmtSR01XOWtTRkozWTNwdmRrd3laSEJrUjJneFdXazFhbUl5TUhaaFNGWnVXakpzZFZveVdtZ0tXVEpWZG1FeVZubGliVlp6WTNreGFtSXlNWFJrVnpWd1pFaHJka3h0WkhCa1IyZ3hXV2s1TTJJelNuSmFiWGgyWkROTmRsbHVWbkJpUjFGMVpWZEdkQXBpUlVKNVdsZGFla3d5YUd4WlYxSjZUREl4YUdGWE5IZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1EyZFJjVVJEYUcxYVZFcHBXV3BaTWxwdFZteE9iVTE1Q2xsVVl6TmFWMDVxV21wQk5GbFVRVEZOUkdocldYcFZNMDVFU1RSYVJGRTBUMGRXYTAxQ2MwZERhWE5IUVZGUlFtYzNPSGRCVVhORlJGRjNUR015Vm5NS1dta3hiMkl6VGpCYVYxRjNVVUZaUzB0M1dVSkNRVWRFZG5wQlFrUkJVWGxFUkVKdlpFaFNkMk42YjNaTU1tUndaRWRvTVZscE5XcGlNakIyWVVoV2JncGFNbXgxV2pKYWFGa3lWWFpoTWxaNVltMVdjMk41TVdwaU1qRjBaRmMxY0dSSWEzZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1JGRlJjVVJEYUcxYVZFcHBDbGxxV1RKYWJWWnNUbTFOZVZsVVl6TmFWMDVxV21wQk5GbFVRVEZOUkdocldYcFZNMDVFU1RSYVJGRTBUMGRXYTAxQ09FZERhWE5IUVZGUlFtYzNPSGNLUVZFMFJVVlJkMUJqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxQ2IwZERhWE5IUVZGUlFtYzNPSGRCVVRoRlJFRjNTMDFVUVROTlZGRXpUbFJWZVFwUFZFRjFRbWR2Y2tKblJVVkJXVTh2VFVGRlVVSkRRVTFJYldnd1pFaENlazlwT0haYU1td3dZVWhXYVV4dFRuWmlVemx2WkZka2JtRlhOVzVhYlVacUNscFVRVmxDWjI5eVFtZEZSVUZaVHk5TlFVVlNRa0Z2VFVORVNURk9la2wzVG5wUmVrMUhNRWREYVhOSFFWRlJRbWMzT0hkQlVrbEZXSGQ0WkdGSVVqQUtZMGhOTmt4NU9XNWhXRkp2WkZkSmRWa3lPWFJNTW1neFdqSmtjR0p0WkcxWlYwNXNUREowYkdOdE5XeGlTRTEwV1RJNWRHSllWblZoV0ZJMVRIazFiZ3BoV0ZKdlpGZEpkbVF5T1hsaE1scHpZak5rZWt3eVNqRmhWM2hyVEc1c2FHSlhlRUZqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxRVowZERhWE5IQ2tGUlVVSm5OemgzUVZKTlJVdG5kMjlhYlZWNVdXMUpNazV0V214YVZGcHFUVzFGTTA0eVZtcFpNbGwzVDBkRmQwNVVRVFJhUjAweFRucFJlVTlIVVRBS1QwUm9iRnBFUVdoQ1oyOXlRbWRGUlVGWlR5OU5RVVZWUWtKTlRVVllaSFpqYlhSdFlrYzVNMWd5VW5Cak0wSm9aRWRPYjAxSFVVZERhWE5IUVZGUlFncG5OemgzUVZKVlJWWm5lRlZoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlV3eVJtcGtSMngyWW01TmRtTnVWblZqZVRoNlQxUkplazlVV1RKUFJGazFUWGs1YUdSSVVteGlXRUl3WTNrNGVFMUNXVWNLUTJselIwRlJVVUpuTnpoM1FWSlpSVU5CZDBkalNGWnBZa2RzYWsxRldVZERhWE5IUVZGUlFtYzNPSGRCVW1kRlQwRjNNbU50Vm5kaWVuQnZaRmRrYmdwaFZ6VnVXbTFHYWxwVE9YSmFXRXAxV2xkNGVreFhUblppVnpFeFltMXNNR1ZVY0hsYVYxazJZMjFXYldONU9XOWFWMFpyWTNrNWRGbFhiSFZOU1VkS0NrSm5iM0pDWjBWRlFXUmFOVUZuVVVOQ1NITkZaVkZDTTBGSVZVRXpWREIzWVhOaVNFVlVTbXBIVWpSamJWZGpNMEZ4U2t0WWNtcGxVRXN6TDJnMGNIa0taME00Y0Rkdk5FRkJRVWRvVmtWbVpHWjNRVUZDUVUxQlVtcENSVUZwUVZFNWRqaDVjRXBCUWpsT1pFOU9abWxsWlZSSlNFVjJWRmd3YW5veWJWVXdVQXB0ZUcxMWJHcHlTek5CU1dkQ1UyNXpVM2RpTTBkUWVHMDVlaTl0YlVOSlVtbHlaSFYyYmpWaGIxZHJZVzVwWkVFME4yMTRibEYzZDBObldVbExiMXBKQ25wcU1FVkJkMDFFWVVGQmQxcFJTWGRFWkVKQ2VrcHFSak42YlVzMlQzZ3pjMWR4Y3psUFZsTlJkVzFMWVVKU2RqaHVPWFZNU2xWMVdqSkpSa1pCYUVVS1NuQXhjRXRwVFVOdVV6VkdXRGRCTWtGcVJVRjNORmxvVlUxblV6SXdhREl5VlZGVmVXTldSbWxtVDFocFVDdExPVU5WYmtRdk4wZDBXa0ZsVG1Oc1NRcFhUMmh2VjNjelZUQkRTVWd6YVhveFRYUkZNQW90TFMwdExVVk9SQ0JEUlZKVVNVWkpRMEZVUlMwdExTMHRDZz09In19fX0="}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyjADAgEAMIICwQYJKoZIhvcNAQcCoIICsjCCAq4CAQMxDTALBglghkgBZQMEAgEwgbgGCyqGSIb3DQEJEAEEoIGoBIGlMIGiAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgtko5hnNdOPXin6pru3vifDAvD6W51WJ1CyMvUwk90hACFQCaq8USJe01aCGi6+/bNRx10jG5xhgPMjAyNjEwMTkxMzA5MThaMAMCAQGgMqQwMC4xFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEVMBMGA1UEAxMMc2lnc3RvcmUtdHNhoAAxggHbMIIB1wIBATBRMDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAsGCWCGSAFlAwQCAaCB/DAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTI2MTAxOTEzMDkxOFowLwYJKoZIhvcNAQkEMSIEIP8w6zscKcXSYal3XBgAeG9Z3IXldNVgpbj17Ym38QEFMIGOBgsqhkiG9w0BCRACLzF/MH0wezB5BCCF+Se8B6tiysO0Q1bBDvyBssaIP9p6uebYcNnROs0FtzBVMD2kOzA5MRUwEwYDVQQKEwxzaWdzdG9yZS5kZXYxIDAeBgNVBAMTF3NpZ3N0b3JlLXRzYS1zZWxmc2lnbmVkAhQ6E1QvDJBh7rzBQy/Lio6LKiOLDDAKBggqhkjOPQQDAgRnMGUCMQDMpa7ZrDus85SuJHCofGvG9XirQQ/PxfVlYTHRLMnS+UXcLjI4QtR0nH31Qjyw1sMCMGZAKgni3X1+BiupyQR94oI7OoQqPK56ewKlOOOr+p0E8CCFohlU1tEBrlIo/CN/dw=="}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"8Pbu83ZzdGqHIv9j5YhEfbrRHMQ0Qj/Z7lCUBa3j5u8="},"signature":"MEUCIQCQrYPkuRjdbmWlb2kqtzEuNWZ53gblA8AvSEwKEpVv0QIgOO2YlV89z1qNbPZfPFbaBboTBwPH0FTuMjCMHONhITo="}}
build/torch-stable-abi210-cu132-aarch64-linux/symbols.json ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "schema_version": 1,
3
+ "module": "_tdt_loss_cuda_fe2bb66",
4
+ "functions": [
5
+ {
6
+ "name": "tdt_loss",
7
+ "qualname": "tdt_loss",
8
+ "module": "_tdt_loss_cuda_fe2bb66.loss",
9
+ "kind": "function",
10
+ "doc": "Compute the TDT (Token-and-Duration Transducer) loss (https://arxiv.org/abs/2304.06795).\n\nArgs:\n token_logits: Token logits of shape `(batch, T, U+1, vocab_size+1)`, in float32, float16 or bfloat16.\n Only the last dimension needs to be contiguous.\n duration_logits: Duration logits of shape `(batch, T, U+1, num_durations)`, same dtype as `token_logits`.\n targets: Target labels of shape `(batch, U)`.\n logit_lengths: Encoder output lengths of shape `(batch,)`.\n target_lengths: Target lengths of shape `(batch,)`.\n blank_token_id: Blank token id.\n durations: Non-negative duration values, e.g. `[0, 1, 2, 3, 4]`.\n sigma: Logit undernormalization constant (see TDT paper). Defaults to `0.0`.\n reduction: One of `\"mean_volume\"`, `\"mean_batch\"`, `\"mean\"`, `\"sum\"` or `\"none\"`, mirroring NeMo's\n `RNNTLoss`. `\"mean\"` divides each loss by its target length before averaging over the batch.\n\nReturns:\n Scalar loss tensor (or per-example losses of shape `(batch,)` if `reduction=\"none\"`). Samples without a\n valid alignment get an infinite loss and a zero gradient.",
11
+ "signature": {
12
+ "parameters": [
13
+ {
14
+ "name": "token_logits",
15
+ "kind": "POSITIONAL_OR_KEYWORD",
16
+ "default": null,
17
+ "annotation": "torch.Tensor"
18
+ },
19
+ {
20
+ "name": "duration_logits",
21
+ "kind": "POSITIONAL_OR_KEYWORD",
22
+ "default": null,
23
+ "annotation": "torch.Tensor"
24
+ },
25
+ {
26
+ "name": "targets",
27
+ "kind": "POSITIONAL_OR_KEYWORD",
28
+ "default": null,
29
+ "annotation": "torch.Tensor"
30
+ },
31
+ {
32
+ "name": "logit_lengths",
33
+ "kind": "POSITIONAL_OR_KEYWORD",
34
+ "default": null,
35
+ "annotation": "torch.Tensor"
36
+ },
37
+ {
38
+ "name": "target_lengths",
39
+ "kind": "POSITIONAL_OR_KEYWORD",
40
+ "default": null,
41
+ "annotation": "torch.Tensor"
42
+ },
43
+ {
44
+ "name": "blank_token_id",
45
+ "kind": "POSITIONAL_OR_KEYWORD",
46
+ "default": null,
47
+ "annotation": "int"
48
+ },
49
+ {
50
+ "name": "durations",
51
+ "kind": "POSITIONAL_OR_KEYWORD",
52
+ "default": null,
53
+ "annotation": "Sequence[int] | torch.Tensor"
54
+ },
55
+ {
56
+ "name": "sigma",
57
+ "kind": "POSITIONAL_OR_KEYWORD",
58
+ "default": "0.0",
59
+ "annotation": "float"
60
+ },
61
+ {
62
+ "name": "reduction",
63
+ "kind": "POSITIONAL_OR_KEYWORD",
64
+ "default": "'mean'",
65
+ "annotation": "str"
66
+ }
67
+ ],
68
+ "return_annotation": "torch.Tensor"
69
+ }
70
+ }
71
+ ],
72
+ "layers": []
73
+ }
build/torch-stable-abi210-cu134-aarch64-linux/__init__.py ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ """TDT (Token-and-Duration Transducer) loss CUDA kernel."""
2
+
3
+ from . import layers
4
+ from .loss import tdt_loss
5
+
6
+ __all__ = ["layers", "tdt_loss"]
build/torch-stable-abi210-cu134-aarch64-linux/_ops.py ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ import torch
2
+ from . import _tdt_loss_cuda_fe2bb66
3
+ ops = torch.ops._tdt_loss_cuda_fe2bb66
4
+
5
+ def add_op_namespace_prefix(op_name: str):
6
+ """
7
+ Prefix op by namespace.
8
+ """
9
+ return f"_tdt_loss_cuda_fe2bb66::{op_name}"
build/torch-stable-abi210-cu134-aarch64-linux/_tdt_loss_cuda_fe2bb66.abi3.so ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:12c269f4140d30928f4102a6f270d896dba50b09ecca1df9399cfd556e4a9618
3
+ size 2591112
build/torch-stable-abi210-cu134-aarch64-linux/layers.py ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from typing import Sequence, Union
2
+
3
+ import torch
4
+ import torch.nn as nn
5
+
6
+ from .loss import tdt_loss
7
+
8
+
9
+ class TDTLoss(nn.Module):
10
+ """
11
+ Stateless layer computing the TDT loss with the CUDA kernels. Its forward has the same signature as
12
+ `transformers.loss.loss_tdt.tdt_loss`, so it can replace it through `kernels.kernelize`.
13
+ """
14
+
15
+ has_backward = True
16
+ can_torch_compile = True
17
+
18
+ def forward(
19
+ self,
20
+ token_logits: torch.Tensor,
21
+ duration_logits: torch.Tensor,
22
+ targets: torch.Tensor,
23
+ logit_lengths: torch.Tensor,
24
+ target_lengths: torch.Tensor,
25
+ blank_token_id: int,
26
+ durations: Union[Sequence[int], torch.Tensor],
27
+ sigma: float = 0.0,
28
+ reduction: str = "mean",
29
+ ) -> torch.Tensor:
30
+ return tdt_loss(
31
+ token_logits,
32
+ duration_logits,
33
+ targets,
34
+ logit_lengths,
35
+ target_lengths,
36
+ blank_token_id,
37
+ durations,
38
+ sigma=sigma,
39
+ reduction=reduction,
40
+ )
build/torch-stable-abi210-cu134-aarch64-linux/loss.py ADDED
@@ -0,0 +1,254 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """TDT (Token-and-Duration Transducer) loss: autograd function and functional API."""
2
+
3
+ from typing import Dict, Sequence, Tuple, Union
4
+
5
+ import torch
6
+
7
+ from ._ops import add_op_namespace_prefix, ops
8
+
9
+ _REDUCTIONS = ("mean_volume", "mean_batch", "mean", "sum", "none")
10
+
11
+
12
+ _DURATIONS_CACHE: Dict[Tuple[Tuple[int, ...], torch.device], torch.Tensor] = {}
13
+
14
+
15
+ def _durations_tensor(durations: Union[Sequence[int], torch.Tensor], device: torch.device) -> torch.Tensor:
16
+ """Validated int32 tensor of durations on `device`, cached in eager mode since they are fixed for a model."""
17
+ if isinstance(durations, torch.Tensor):
18
+ durations = durations.tolist()
19
+ key = (tuple(int(d) for d in durations), device)
20
+ if any(d < 0 for d in key[0]):
21
+ raise ValueError(f"Durations must be non-negative, got {list(key[0])}.")
22
+ if torch.compiler.is_compiling():
23
+ return torch.tensor(key[0], device=device, dtype=torch.int32)
24
+ if key not in _DURATIONS_CACHE:
25
+ _DURATIONS_CACHE[key] = torch.tensor(key[0], device=device, dtype=torch.int32)
26
+ return _DURATIONS_CACHE[key]
27
+
28
+
29
+ def _last_dim_contiguous(x: torch.Tensor) -> torch.Tensor:
30
+ # The kernels accept arbitrary strides for the (batch, T, U) dims, so slices of a
31
+ # joint `(..., vocab_size + num_durations)` output can be passed without a copy.
32
+ return x if x.stride(-1) == 1 else x.contiguous()
33
+
34
+
35
+ # The ops only write to preallocated outputs, so their fake (meta) implementations have nothing to do. They let
36
+ # `torch.compile` trace through the ops.
37
+ @torch.library.register_fake(add_op_namespace_prefix("tdt_logprobs_fwd"))
38
+ def _(
39
+ token_logits,
40
+ duration_logits,
41
+ targets,
42
+ logit_lengths,
43
+ target_lengths,
44
+ blank_id,
45
+ sigma,
46
+ blank_lp,
47
+ label_lp,
48
+ dur_lp,
49
+ token_lse,
50
+ ):
51
+ return None
52
+
53
+
54
+ @torch.library.register_fake(add_op_namespace_prefix("tdt_loss_fwd"))
55
+ def _(blank_lp, label_lp, dur_lp, logit_lengths, target_lengths, durations, alphas, log_ll):
56
+ return None
57
+
58
+
59
+ @torch.library.register_fake(add_op_namespace_prefix("tdt_loss_bwd"))
60
+ def _(blank_lp, label_lp, dur_lp, logit_lengths, target_lengths, durations, betas):
61
+ return None
62
+
63
+
64
+ @torch.library.register_fake(add_op_namespace_prefix("tdt_logits_grad"))
65
+ def _(
66
+ token_logits,
67
+ targets,
68
+ logit_lengths,
69
+ target_lengths,
70
+ durations,
71
+ blank_lp,
72
+ label_lp,
73
+ dur_lp,
74
+ token_lse,
75
+ alphas,
76
+ betas,
77
+ log_ll,
78
+ grad_loss,
79
+ blank_id,
80
+ grad_token_logits,
81
+ grad_duration_logits,
82
+ ):
83
+ return None
84
+
85
+
86
+ class _TDTLossFunction(torch.autograd.Function):
87
+ """Per-sample TDT loss (negative log-likelihood) with a CUDA forward and backward."""
88
+
89
+ @staticmethod
90
+ def forward(
91
+ ctx,
92
+ token_logits: torch.Tensor,
93
+ duration_logits: torch.Tensor,
94
+ targets: torch.Tensor,
95
+ logit_lengths: torch.Tensor,
96
+ target_lengths: torch.Tensor,
97
+ durations: torch.Tensor,
98
+ blank_id: int,
99
+ sigma: float,
100
+ ) -> torch.Tensor:
101
+ token_logits = _last_dim_contiguous(token_logits)
102
+ duration_logits = _last_dim_contiguous(duration_logits)
103
+
104
+ B, max_T, max_U, _ = token_logits.shape
105
+ D = duration_logits.shape[-1]
106
+ f32 = dict(device=token_logits.device, dtype=torch.float32)
107
+
108
+ blank_lp = torch.empty(B, max_T, max_U, **f32)
109
+ label_lp = torch.empty(B, max_T, max_U, **f32)
110
+ dur_lp = torch.empty(B, max_T, max_U, D, **f32)
111
+ token_lse = torch.empty(B, max_T, max_U, **f32)
112
+ ops.tdt_logprobs_fwd(
113
+ token_logits,
114
+ duration_logits,
115
+ targets,
116
+ logit_lengths,
117
+ target_lengths,
118
+ blank_id,
119
+ sigma,
120
+ blank_lp,
121
+ label_lp,
122
+ dur_lp,
123
+ token_lse,
124
+ )
125
+
126
+ # The lattice recursions run in float64, see lattice.cu.
127
+ f64 = dict(device=token_logits.device, dtype=torch.float64)
128
+ alphas = torch.empty(B, max_T, max_U, **f64)
129
+ log_ll = torch.empty(B, **f64)
130
+ ops.tdt_loss_fwd(blank_lp, label_lp, dur_lp, logit_lengths, target_lengths, durations, alphas, log_ll)
131
+
132
+ ctx.save_for_backward(
133
+ token_logits,
134
+ targets,
135
+ logit_lengths,
136
+ target_lengths,
137
+ durations,
138
+ blank_lp,
139
+ label_lp,
140
+ dur_lp,
141
+ token_lse,
142
+ alphas,
143
+ log_ll,
144
+ )
145
+ ctx.blank_id = blank_id
146
+ ctx.duration_shape = duration_logits.shape
147
+ ctx.duration_dtype = duration_logits.dtype
148
+ return -log_ll.float()
149
+
150
+ @staticmethod
151
+ def backward(ctx, grad_loss: torch.Tensor):
152
+ (
153
+ token_logits,
154
+ targets,
155
+ logit_lengths,
156
+ target_lengths,
157
+ durations,
158
+ blank_lp,
159
+ label_lp,
160
+ dur_lp,
161
+ token_lse,
162
+ alphas,
163
+ log_ll,
164
+ ) = ctx.saved_tensors
165
+ if not (ctx.needs_input_grad[0] or ctx.needs_input_grad[1]):
166
+ return (None,) * 8
167
+
168
+ betas = torch.empty_like(alphas)
169
+ ops.tdt_loss_bwd(blank_lp, label_lp, dur_lp, logit_lengths, target_lengths, durations, betas)
170
+
171
+ grad_token_logits = torch.empty(token_logits.shape, device=token_logits.device, dtype=token_logits.dtype)
172
+ grad_duration_logits = torch.empty(ctx.duration_shape, device=token_logits.device, dtype=ctx.duration_dtype)
173
+ ops.tdt_logits_grad(
174
+ token_logits,
175
+ targets,
176
+ logit_lengths,
177
+ target_lengths,
178
+ durations,
179
+ blank_lp,
180
+ label_lp,
181
+ dur_lp,
182
+ token_lse,
183
+ alphas,
184
+ betas,
185
+ log_ll,
186
+ grad_loss.float().contiguous(),
187
+ ctx.blank_id,
188
+ grad_token_logits,
189
+ grad_duration_logits,
190
+ )
191
+ return grad_token_logits, grad_duration_logits, None, None, None, None, None, None
192
+
193
+
194
+ def tdt_loss(
195
+ token_logits: torch.Tensor,
196
+ duration_logits: torch.Tensor,
197
+ targets: torch.Tensor,
198
+ logit_lengths: torch.Tensor,
199
+ target_lengths: torch.Tensor,
200
+ blank_token_id: int,
201
+ durations: Union[Sequence[int], torch.Tensor],
202
+ sigma: float = 0.0,
203
+ reduction: str = "mean",
204
+ ) -> torch.Tensor:
205
+ """Compute the TDT (Token-and-Duration Transducer) loss (https://arxiv.org/abs/2304.06795).
206
+
207
+ Args:
208
+ token_logits: Token logits of shape `(batch, T, U+1, vocab_size+1)`, in float32, float16 or bfloat16.
209
+ Only the last dimension needs to be contiguous.
210
+ duration_logits: Duration logits of shape `(batch, T, U+1, num_durations)`, same dtype as `token_logits`.
211
+ targets: Target labels of shape `(batch, U)`.
212
+ logit_lengths: Encoder output lengths of shape `(batch,)`.
213
+ target_lengths: Target lengths of shape `(batch,)`.
214
+ blank_token_id: Blank token id.
215
+ durations: Non-negative duration values, e.g. `[0, 1, 2, 3, 4]`.
216
+ sigma: Logit undernormalization constant (see TDT paper). Defaults to `0.0`.
217
+ reduction: One of `"mean_volume"`, `"mean_batch"`, `"mean"`, `"sum"` or `"none"`, mirroring NeMo's
218
+ `RNNTLoss`. `"mean"` divides each loss by its target length before averaging over the batch.
219
+
220
+ Returns:
221
+ Scalar loss tensor (or per-example losses of shape `(batch,)` if `reduction="none"`). Samples without a
222
+ valid alignment get an infinite loss and a zero gradient.
223
+ """
224
+ if reduction not in _REDUCTIONS:
225
+ raise ValueError(
226
+ f'Invalid reduction mode "{reduction}". Expected one of {", ".join(repr(r) for r in _REDUCTIONS)}.'
227
+ )
228
+
229
+ device = token_logits.device
230
+ durations = _durations_tensor(durations, device)
231
+ targets = targets.to(device=device, dtype=torch.int32).contiguous()
232
+ logit_lengths = logit_lengths.to(device=device, dtype=torch.int32).contiguous()
233
+ target_lengths = target_lengths.to(device=device, dtype=torch.int32).contiguous()
234
+
235
+ losses = _TDTLossFunction.apply(
236
+ token_logits,
237
+ duration_logits,
238
+ targets,
239
+ logit_lengths,
240
+ target_lengths,
241
+ durations,
242
+ int(blank_token_id),
243
+ float(sigma),
244
+ )
245
+
246
+ if reduction == "mean_volume":
247
+ return losses.sum() / target_lengths.sum().float()
248
+ if reduction == "mean_batch":
249
+ return losses.mean()
250
+ if reduction == "mean":
251
+ return (losses / target_lengths.float()).mean()
252
+ if reduction == "sum":
253
+ return losses.sum()
254
+ return losses
build/torch-stable-abi210-cu134-aarch64-linux/metadata.json ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "tdt-loss",
3
+ "id": "_tdt_loss_cuda_fe2bb66",
4
+ "version": 1,
5
+ "kernels-minver": "0.14.0",
6
+ "license": "Apache-2.0",
7
+ "python-depends": [],
8
+ "kernel-depends": [],
9
+ "backend": {
10
+ "type": "cuda",
11
+ "archs": [
12
+ "10.0",
13
+ "10.3",
14
+ "11.0",
15
+ "12.0",
16
+ "12.1+PTX",
17
+ "7.5",
18
+ "8.0",
19
+ "8.6",
20
+ "8.7",
21
+ "8.9",
22
+ "9.0"
23
+ ]
24
+ },
25
+ "digest": {
26
+ "algorithm": "sha256",
27
+ "files": {
28
+ "__init__.py": "lJBeJMzaqMSucC/K3266DuYA0JHw96ji1i/gcrHN/ik=",
29
+ "_ops.py": "OrFGElR/Z4ojQBmY0Ij0VyxBZHlO4uCyCD9TW8uuAdQ=",
30
+ "_tdt_loss_cuda_fe2bb66.abi3.so": "EsJp9BQNMJKPQQKm8nDYltulCwnsyh35OZz9VW5Klhg=",
31
+ "layers.py": "76Xr2iKOW3v6xtD8gct2jH6LMwVbqJSD8txMe5r0Nlk=",
32
+ "loss.py": "wxR68dHg9dUSiG/YOrtbNDQ5CSxHgkWAETZe1VE1FQM=",
33
+ "symbols.json": "Uu88dl5tWmpC533wKqo0ZaZ8dXHuzmevhNOI/bXFxbc="
34
+ }
35
+ },
36
+ "provenance": {
37
+ "kernel-builder": {
38
+ "version": "0.18.0-dev0",
39
+ "commit": "d054906a13710b811b96697b4635f03020842733",
40
+ "dirty": false
41
+ },
42
+ "kernel": {
43
+ "commit": "fe2bb66fee6c2a77eccf08a0508dc57428d488ed",
44
+ "dirty": false
45
+ }
46
+ }
47
+ }
build/torch-stable-abi210-cu134-aarch64-linux/metadata.json.sigstore ADDED
@@ -0,0 +1 @@
 
 
1
+ {"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"certificate":{"rawBytes":"MIIHLDCCBrOgAwIBAgIUDuiB0dRdeMU+pjUjwpEsblht1F4wCgYIKoZIzj0EAwMwNzEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MR4wHAYDVQQDExVzaWdzdG9yZS1pbnRlcm1lZGlhdGUwHhcNMjYxMDE5MTMwOTI2WhcNMjYxMDE5MTMxOTI2WjAAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEfdQEhmIgLRO4S7FJBYLh1M+s8e/8Wf4fj1e7aCVgrRYWb18bPiQRlYdOIpBpAOdc73+p/4Fqtzko9ZgUMM61gKOCBdIwggXOMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAfBgNVHSMEGDAWgBTf0+nPViQRlvmo2OkoVaLGLhhkPzBrBgNVHREBAf8EYTBfhl1odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQueWFtbEByZWZzL2hlYWRzL21haW4wOQYKKwYBBAGDvzABAQQraHR0cHM6Ly90b2tlbi5hY3Rpb25zLmdpdGh1YnVzZXJjb250ZW50LmNvbTAfBgorBgEEAYO/MAECBBF3b3JrZmxvd19kaXNwYXRjaDA2BgorBgEEAYO/MAEDBChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMBMGCisGAQQBg78wAQQEBUJ1aWxkMCsGCisGAQQBg78wAQUEHWh1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5MB0GCisGAQQBg78wAQYED3JlZnMvaGVhZHMvbWFpbjA7BgorBgEEAYO/MAEIBC0MK2h0dHBzOi8vdG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb20wbQYKKwYBBAGDvzABCQRfDF1odHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQueWFtbEByZWZzL2hlYWRzL21haW4wOAYKKwYBBAGDvzABCgQqDChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMBsGCisGAQQBg78wAQsEDQwLc2VsZi1ob3N0ZWQwQAYKKwYBBAGDvzABDAQyDDBodHRwczovL2dpdGh1Yi5jb20vaHVnZ2luZ2ZhY2Uva2VybmVscy1jb21tdW5pdHkwOAYKKwYBBAGDvzABDQQqDChmZTJiYjY2ZmVlNmMyYTc3ZWNjZjA4YTA1MDhkYzU3NDI4ZDQ4OGVkMB8GCisGAQQBg78wAQ4EEQwPcmVmcy9oZWFkcy9tYWluMBoGCisGAQQBg78wAQ8EDAwKMTA3MTQ3NTUyOTAuBgorBgEEAYO/MAEQBCAMHmh0dHBzOi8vZ2l0aHViLmNvbS9odWdnaW5nZmFjZTAYBgorBgEEAYO/MAERBAoMCDI1NzIwNzQzMG0GCisGAQQBg78wARIEXwxdaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5Ly5naXRodWIvd29ya2Zsb3dzL2J1aWxkLnlhbWxAcmVmcy9oZWFkcy9tYWluMDgGCisGAQQBg78wARMEKgwoZmUyYmI2NmZlZTZjMmE3N2VjY2YwOGEwNTA4ZGM1NzQyOGQ0ODhlZDAhBgorBgEEAYO/MAEUBBMMEXdvcmtmbG93X2Rpc3BhdGNoMGQGCisGAQQBg78wARUEVgxUaHR0cHM6Ly9naXRodWIuY29tL2h1Z2dpbmdmYWNlL2tlcm5lbHMtY29tbXVuaXR5L2FjdGlvbnMvcnVucy8zOTIzOTY2ODY5My9hdHRlbXB0cy8xMBYGCisGAQQBg78wARYECAwGcHVibGljMEYGCisGAQQBg78wARgEOAw2cmVwbzpodWdnaW5nZmFjZS9rZXJuZWxzLWNvbW11bml0eTpyZWY6cmVmcy9oZWFkcy9tYWluMIGLBgorBgEEAdZ5AgQCBH0EewB5AHcA3T0wasbHETJjGR4cmWc3AqJKXrjePK3/h4pygC8p7o4AAAGhVEf8qQAABAMASDBGAiEA0HdNZFN3xDkTjB47v8NFezb44PlwKDw3AGsBZuXg/3ECIQCxnDAnqqmF9kZ2IMwqX3bZR8OpyqJeWSId/55l0dDbPjAKBggqhkjOPQQDAwNnADBkAjBoM3I0N4nDsGW+t/yYGTSJ3NYwhoBZmYJp7EEaU40GiUv8LeWNE+tGYuQ9mM1ECXgCMHcol627Vrght67dA7xDAlt91/fip7PQck9O9M431HIqcvxlAnw9MtlR9Bct9aYtpg=="},"tlogEntries":[{"logIndex":"3321295478","logId":{"keyId":"wNI9atQGlz+VWfO6LRygH4QUfY/8W4RFwiT5i5WRgB0="},"kindVersion":{"kind":"hashedrekord","version":"0.0.1"},"integratedTime":"1792415366","inclusionPromise":{"signedEntryTimestamp":"MEUCIQDc6ziTvZ1fVgHk8McSPviyKwtxxXDKMoZt/5qkenY5egIgafXAm41qLyqU+vXp4AuKJ+F0Kqx4HXeCNHqUFHjOdAg="},"inclusionProof":{"logIndex":"3199391216","rootHash":"8ExG88zyAX85NqMzy3u1Srmp2SwGZzn+/9+fj0Bw2UE=","treeSize":"3199391351","hashes":["8b3tW7EvN7uQNG0o+QKUQjXm8773DOWC1ZUjnCQY5D8=","pqRWrFgVM3N0E8dOgl/2GYSfPLCvPp+xDtrchqd4GkE=","ezoxqFRScOV4VNopEl9UZb9xsy5W+ztjIJMG122hY20=","Nidx+rnPReWp5OOUwNYfPJvbDdzBETU1/JmDDnZdFF4=","eJofG8RtvE6j+OZGh7b7AeAMgXaKQy4MTSS5PGXqmHU=","QtGZwrG4og8ZKVj8l+QxZwLx3eA5HO+RTdWejNQK6Fk=","jwYE5QZdljxMo+F4YGxk/W+K+YNzxLm3a1VCxs0W+4g=","EvyKoxqyMgCV00YiMf76ftYnSvoFj4Qal+0na/v+jjU=","GCZziAP6BkgoR4E3eTCyjZRNFPgZarHIFBgsaZKfXrs=","BZd4BJZY+feL395dpGszjzms4THU56DPtcDm6tBJJv4=","sup+8bIjX1zbs0BjyIcKudWZDeibYaWcwhF+8cE/O0s=","vrCjqDs6QDDugKSKGSIvCyYDePC654SqpxqIV8Q7Dbw=","j+zDFv60yRAka5lkKHJVk+ONVHePdN56t0G1bDYa7wI=","L/dvD12ZWmTF90/mlI41DO4ofR4szSGubOcaZ3tSrfo=","DlkFsuaW0Lemnx/hfWKDDGIHO8n35fi5A3sL1nZM6Nw=","kHa2Ke03zePMosAfwPNg2y4kk1ZwjdZi4MKNVX7epiE=","uCZQe757l2sS1c05Y7TzOwEm+X8MeGLIUCkEOmFVOz4=","nyQV/+cWQUG5Hb2PKjQQNkQIJmz2qzAZKBQlkHGIknM=","G+nk7mgE5h6dUmv2UY7NDJrY3WvrZY31raaO1AETt+o=","qlTWNDzERnTBQVcHHXXVPjiUP0SsikGxfcxVlgqVFDo=","gg9GNApNke3+zNhl4tsWtmIycCFrOMCB3lys6XuSQNQ=","NlOclldmKPA1tMKIskqHAwuQDYHp31YwpK+OOMrMccc=","qxzHanAzz57SDdmJe0B7bJK72NTIBbwEMGBBKvDOROw=","xH/DCseLHr9eKoYT8qsORZK7zVdEGYWHuVtsVrD95wY="],"checkpoint":{"envelope":"rekor.sigstore.dev - 1193050959916656506\n3199391351\n8ExG88zyAX85NqMzy3u1Srmp2SwGZzn+/9+fj0Bw2UE=\n\n— rekor.sigstore.dev wNI9ajBFAiAzOTZYM2tV0ldCXW3E5aHIsk3/lRhO+8H3nctkkATlIQIhAL5GPTLjF1fRNyAp9FeZjPLmQEgnaxmbRG4lW5WIZA8A\n"}},"canonicalizedBody":"eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiIxYmYwOTA1ZTM4ZTg2MjNiM2ZjODQyOWFjYjY5ZGNkNGJlNThjY2QwOTBiMTllOGIwMGU4ZmJmMzZhN2VlYjRiIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FUUNJSEdHS29xOHBNbmxJQnRrVkZySlRmTldRWUNPN3Q2SjBML2lKczB5MWFEcUFpQnFmeEsvdzVOVnlrZkI0VUxFQTN0T0ZzMDcwOXlQMkljcFNEQ0lVbmQvWHc9PSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVaE1SRU5EUW5KUFowRjNTVUpCWjBsVlJIVnBRakJrVW1SbFRWVXJjR3BWYW5kd1JYTmliR2gwTVVZMGQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcFplRTFFUlRWTlZFMTNUMVJKTWxkb1kwNU5hbGw0VFVSRk5VMVVUWGhQVkVreVYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZtWkZGRmFHMUpaMHhTVHpSVE4wWktRbGxNYURGTkszTTRaUzg0VjJZMFptb3haVGNLWVVOV1ozSlNXVmRpTVRoaVVHbFJVbXhaWkU5SmNFSndRVTlrWXpjekszQXZORVp4ZEhwcmJ6bGFaMVZOVFRZeFowdFBRMEprU1hkbloxaFBUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXWkNaMDVXU0ZOTlJVZEVRVmRuUWxSbUNqQXJibEJXYVZGU2JIWnRiekpQYTI5V1lVeEhUR2hvYTFCNlFuSkNaMDVXU0ZKRlFrRm1PRVZaVkVKbWFHd3hiMlJJVW5kamVtOTJUREprY0dSSGFERUtXV2sxYW1JeU1IWmhTRlp1V2pKc2RWb3lXbWhaTWxWMllUSldlV0p0Vm5OamVURnFZakl4ZEdSWE5YQmtTR3QyVEcxa2NHUkhhREZaYVRrellqTktjZ3BhYlhoMlpETk5kbGx1Vm5CaVIxRjFaVmRHZEdKRlFubGFWMXA2VERKb2JGbFhVbnBNTWpGb1lWYzBkMDlSV1V0TGQxbENRa0ZIUkhaNlFVSkJVVkZ5Q21GSVVqQmpTRTAyVEhrNU1HSXlkR3hpYVRWb1dUTlNjR0l5TlhwTWJXUndaRWRvTVZsdVZucGFXRXBxWWpJMU1GcFhOVEJNYlU1MllsUkJaa0puYjNJS1FtZEZSVUZaVHk5TlFVVkRRa0pHTTJJelNuSmFiWGgyWkRFNWEyRllUbmRaV0ZKcVlVUkJNa0puYjNKQ1owVkZRVmxQTDAxQlJVUkNRMmh0V2xSS2FRcFphbGt5V20xV2JFNXRUWGxaVkdNeldsZE9hbHBxUVRSWlZFRXhUVVJvYTFsNlZUTk9SRWswV2tSUk5FOUhWbXROUWsxSFEybHpSMEZSVVVKbk56aDNDa0ZSVVVWQ1ZVb3hZVmQ0YTAxRGMwZERhWE5IUVZGUlFtYzNPSGRCVVZWRlNGZG9NVm95WkhCaWJXUnRXVmRPYkV3eWRHeGpiVFZzWWtoTmRGa3lPWFFLWWxoV2RXRllValZOUWpCSFEybHpSMEZSVVVKbk56aDNRVkZaUlVRelNteGFiazEyWVVkV2FGcElUWFppVjBad1ltcEJOMEpuYjNKQ1owVkZRVmxQTHdwTlFVVkpRa013VFVzeWFEQmtTRUo2VDJrNGRtUkhPWEphVnpSMVdWZE9NR0ZYT1hWamVUVnVZVmhTYjJSWFNqRmpNbFo1V1RJNWRXUkhWblZrUXpWcUNtSXlNSGRpVVZsTFMzZFpRa0pCUjBSMmVrRkNRMUZTWmtSR01XOWtTRkozWTNwdmRrd3laSEJrUjJneFdXazFhbUl5TUhaaFNGWnVXakpzZFZveVdtZ0tXVEpWZG1FeVZubGliVlp6WTNreGFtSXlNWFJrVnpWd1pFaHJka3h0WkhCa1IyZ3hXV2s1TTJJelNuSmFiWGgyWkROTmRsbHVWbkJpUjFGMVpWZEdkQXBpUlVKNVdsZGFla3d5YUd4WlYxSjZUREl4YUdGWE5IZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1EyZFJjVVJEYUcxYVZFcHBXV3BaTWxwdFZteE9iVTE1Q2xsVVl6TmFWMDVxV21wQk5GbFVRVEZOUkdocldYcFZNMDVFU1RSYVJGRTBUMGRXYTAxQ2MwZERhWE5IUVZGUlFtYzNPSGRCVVhORlJGRjNUR015Vm5NS1dta3hiMkl6VGpCYVYxRjNVVUZaUzB0M1dVSkNRVWRFZG5wQlFrUkJVWGxFUkVKdlpFaFNkMk42YjNaTU1tUndaRWRvTVZscE5XcGlNakIyWVVoV2JncGFNbXgxV2pKYWFGa3lWWFpoTWxaNVltMVdjMk41TVdwaU1qRjBaRmMxY0dSSWEzZFBRVmxMUzNkWlFrSkJSMFIyZWtGQ1JGRlJjVVJEYUcxYVZFcHBDbGxxV1RKYWJWWnNUbTFOZVZsVVl6TmFWMDVxV21wQk5GbFVRVEZOUkdocldYcFZNMDVFU1RSYVJGRTBUMGRXYTAxQ09FZERhWE5IUVZGUlFtYzNPSGNLUVZFMFJVVlJkMUJqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxQ2IwZERhWE5IUVZGUlFtYzNPSGRCVVRoRlJFRjNTMDFVUVROTlZGRXpUbFJWZVFwUFZFRjFRbWR2Y2tKblJVVkJXVTh2VFVGRlVVSkRRVTFJYldnd1pFaENlazlwT0haYU1td3dZVWhXYVV4dFRuWmlVemx2WkZka2JtRlhOVzVhYlVacUNscFVRVmxDWjI5eVFtZEZSVUZaVHk5TlFVVlNRa0Z2VFVORVNURk9la2wzVG5wUmVrMUhNRWREYVhOSFFWRlJRbWMzT0hkQlVrbEZXSGQ0WkdGSVVqQUtZMGhOTmt4NU9XNWhXRkp2WkZkSmRWa3lPWFJNTW1neFdqSmtjR0p0WkcxWlYwNXNUREowYkdOdE5XeGlTRTEwV1RJNWRHSllWblZoV0ZJMVRIazFiZ3BoV0ZKdlpGZEpkbVF5T1hsaE1scHpZak5rZWt3eVNqRmhWM2hyVEc1c2FHSlhlRUZqYlZadFkzazViMXBYUm10amVUbDBXVmRzZFUxRVowZERhWE5IQ2tGUlVVSm5OemgzUVZKTlJVdG5kMjlhYlZWNVdXMUpNazV0V214YVZGcHFUVzFGTTA0eVZtcFpNbGwzVDBkRmQwNVVRVFJhUjAweFRucFJlVTlIVVRBS1QwUm9iRnBFUVdoQ1oyOXlRbWRGUlVGWlR5OU5RVVZWUWtKTlRVVllaSFpqYlhSdFlrYzVNMWd5VW5Cak0wSm9aRWRPYjAxSFVVZERhWE5IUVZGUlFncG5OemgzUVZKVlJWWm5lRlZoU0ZJd1kwaE5Oa3g1T1c1aFdGSnZaRmRKZFZreU9YUk1NbWd4V2pKa2NHSnRaRzFaVjA1c1RESjBiR050Tld4aVNFMTBDbGt5T1hSaVdGWjFZVmhTTlV3eVJtcGtSMngyWW01TmRtTnVWblZqZVRoNlQxUkplazlVV1RKUFJGazFUWGs1YUdSSVVteGlXRUl3WTNrNGVFMUNXVWNLUTJselIwRlJVVUpuTnpoM1FWSlpSVU5CZDBkalNGWnBZa2RzYWsxRldVZERhWE5IUVZGUlFtYzNPSGRCVW1kRlQwRjNNbU50Vm5kaWVuQnZaRmRrYmdwaFZ6VnVXbTFHYWxwVE9YSmFXRXAxV2xkNGVreFhUblppVnpFeFltMXNNR1ZVY0hsYVYxazJZMjFXYldONU9XOWFWMFpyWTNrNWRGbFhiSFZOU1VkTUNrSm5iM0pDWjBWRlFXUmFOVUZuVVVOQ1NEQkZaWGRDTlVGSVkwRXpWREIzWVhOaVNFVlVTbXBIVWpSamJWZGpNMEZ4U2t0WWNtcGxVRXN6TDJnMGNIa0taME00Y0Rkdk5FRkJRVWRvVmtWbU9IRlJRVUZDUVUxQlUwUkNSMEZwUlVFd1NHUk9Xa1pPTTNoRWExUnFRalEzZGpoT1JtVjZZalEwVUd4M1MwUjNNd3BCUjNOQ1duVllaeTh6UlVOSlVVTjRia1JCYm5GeGJVWTVhMW95U1UxM2NWZ3pZbHBTT0U5d2VYRktaVmRUU1dRdk5UVnNNR1JFWWxCcVFVdENaMmR4Q21ocmFrOVFVVkZFUVhkT2JrRkVRbXRCYWtKdlRUTkpNRTQwYmtSelIxY3JkQzk1V1VkVVUwb3pUbGwzYUc5Q1dtMVpTbkEzUlVWaFZUUXdSMmxWZGpnS1RHVlhUa1VyZEVkWmRWRTViVTB4UlVOWVowTk5TR052YkRZeU4xWnlaMmgwTmpka1FUZDRSRUZzZERreEwyWnBjRGRRVVdOck9VODVUVFF6TVVoSmNRcGpkbmhzUVc1M09VMTBiRkk1UW1OME9XRlpkSEJuUFQwS0xTMHRMUzFGVGtRZ1EwVlNWRWxHU1VOQlZFVXRMUzB0TFFvPSJ9fX19"}],"timestampVerificationData":{"rfc3161Timestamps":[{"signedTimestamp":"MIICyDADAgEAMIICvwYJKoZIhvcNAQcCoIICsDCCAqwCAQMxDTALBglghkgBZQMEAgEwgbcGCyqGSIb3DQEJEAEEoIGnBIGkMIGhAgEBBgkrBgEEAYO/MAIwMTANBglghkgBZQMEAgEFAAQgt69NdxgHXs2XPtc8fs7xp79xzni8cLuBxcOtXX1NsqECFB1BPDGxFQt+hsgfCeQqetEJ5QbKGA8yMDI2MTAxOTEzMDkyNlowAwIBAaAypDAwLjEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MRUwEwYDVQQDEwxzaWdzdG9yZS10c2GgADGCAdowggHWAgEBMFEwOTEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MSAwHgYDVQQDExdzaWdzdG9yZS10c2Etc2VsZnNpZ25lZAIUOhNULwyQYe68wUMvy4qOiyojiwwwCwYJYIZIAWUDBAIBoIH8MBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAcBgkqhkiG9w0BCQUxDxcNMjYxMDE5MTMwOTI2WjAvBgkqhkiG9w0BCQQxIgQgxna9oX+pchWZxSP8xwWrKJQ0L5sACgrvden646GjIvAwgY4GCyqGSIb3DQEJEAIvMX8wfTB7MHkEIIX5J7wHq2LKw7RDVsEO/IGyxog/2nq55thw2dE6zQW3MFUwPaQ7MDkxFTATBgNVBAoTDHNpZ3N0b3JlLmRldjEgMB4GA1UEAxMXc2lnc3RvcmUtdHNhLXNlbGZzaWduZWQCFDoTVC8MkGHuvMFDL8uKjosqI4sMMAoGCCqGSM49BAMCBGYwZAIwUl8xYxpoICKXjakQZm+G2TAxsDOoeLwGibfSzKRPTCwFCXRV600wR39bXtR46KPPAjAHYZbIDHIjQ/NkJVqm6INTdENBiW7yGaUziYheBbeftL1cEgk8yQiNomh7c9AAdoA="}]}},"messageSignature":{"messageDigest":{"algorithm":"SHA2_256","digest":"G/CQXjjoYjs/yEKay2nc1L5YzNCQsZ6LAOj782p+60s="},"signature":"MEQCIHGGKoq8pMnlIBtkVFrJTfNWQYCO7t6J0L/iJs0y1aDqAiBqfxK/w5NVykfB4ULEA3tOFs0709yP2IcpSDCIUnd/Xw=="}}
build/torch-stable-abi210-cu134-aarch64-linux/symbols.json ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "schema_version": 1,
3
+ "module": "_tdt_loss_cuda_fe2bb66",
4
+ "functions": [
5
+ {
6
+ "name": "tdt_loss",
7
+ "qualname": "tdt_loss",
8
+ "module": "_tdt_loss_cuda_fe2bb66.loss",
9
+ "kind": "function",
10
+ "doc": "Compute the TDT (Token-and-Duration Transducer) loss (https://arxiv.org/abs/2304.06795).\n\nArgs:\n token_logits: Token logits of shape `(batch, T, U+1, vocab_size+1)`, in float32, float16 or bfloat16.\n Only the last dimension needs to be contiguous.\n duration_logits: Duration logits of shape `(batch, T, U+1, num_durations)`, same dtype as `token_logits`.\n targets: Target labels of shape `(batch, U)`.\n logit_lengths: Encoder output lengths of shape `(batch,)`.\n target_lengths: Target lengths of shape `(batch,)`.\n blank_token_id: Blank token id.\n durations: Non-negative duration values, e.g. `[0, 1, 2, 3, 4]`.\n sigma: Logit undernormalization constant (see TDT paper). Defaults to `0.0`.\n reduction: One of `\"mean_volume\"`, `\"mean_batch\"`, `\"mean\"`, `\"sum\"` or `\"none\"`, mirroring NeMo's\n `RNNTLoss`. `\"mean\"` divides each loss by its target length before averaging over the batch.\n\nReturns:\n Scalar loss tensor (or per-example losses of shape `(batch,)` if `reduction=\"none\"`). Samples without a\n valid alignment get an infinite loss and a zero gradient.",
11
+ "signature": {
12
+ "parameters": [
13
+ {
14
+ "name": "token_logits",
15
+ "kind": "POSITIONAL_OR_KEYWORD",
16
+ "default": null,
17
+ "annotation": "torch.Tensor"
18
+ },
19
+ {
20
+ "name": "duration_logits",
21
+ "kind": "POSITIONAL_OR_KEYWORD",
22
+ "default": null,
23
+ "annotation": "torch.Tensor"
24
+ },
25
+ {
26
+ "name": "targets",
27
+ "kind": "POSITIONAL_OR_KEYWORD",
28
+ "default": null,
29
+ "annotation": "torch.Tensor"
30
+ },
31
+ {
32
+ "name": "logit_lengths",
33
+ "kind": "POSITIONAL_OR_KEYWORD",
34
+ "default": null,
35
+ "annotation": "torch.Tensor"
36
+ },
37
+ {
38
+ "name": "target_lengths",
39
+ "kind": "POSITIONAL_OR_KEYWORD",
40
+ "default": null,
41
+ "annotation": "torch.Tensor"
42
+ },
43
+ {
44
+ "name": "blank_token_id",
45
+ "kind": "POSITIONAL_OR_KEYWORD",
46
+ "default": null,
47
+ "annotation": "int"
48
+ },
49
+ {
50
+ "name": "durations",
51
+ "kind": "POSITIONAL_OR_KEYWORD",
52
+ "default": null,
53
+ "annotation": "Sequence[int] | torch.Tensor"
54
+ },
55
+ {
56
+ "name": "sigma",
57
+ "kind": "POSITIONAL_OR_KEYWORD",
58
+ "default": "0.0",
59
+ "annotation": "float"
60
+ },
61
+ {
62
+ "name": "reduction",
63
+ "kind": "POSITIONAL_OR_KEYWORD",
64
+ "default": "'mean'",
65
+ "annotation": "str"
66
+ }
67
+ ],
68
+ "return_annotation": "torch.Tensor"
69
+ }
70
+ }
71
+ ],
72
+ "layers": []
73
+ }