@aztec/protocol-contracts 0.0.1-commit.808bf7f90 → 0.0.1-commit.8227e42

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -71,7 +71,7 @@
71
71
  }
72
72
  },
73
73
  "bytecode": "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",
74
- "debug_symbols": "pZnbbhs5DIbfxde5GOpAUnmVoijc1CkMGE7gJgssgrz7kpIoOV1ISOSbzGc68w9PomT7bffr8PP194/j+fHpz+7+29vu5+V4Oh1//zg9Pexfjk9nsb7tNv0Djnb3/m4H3u3uo16pXAMUe8ByjfKa9IrlivU1pnKlUK+8u4dNgL0AKHCFhAXcJvcCKmAFiAapggsGZvFm8WYJ3oAqRGdgymjPQn1EEqDNIBhwBXYGVCGZJTsv4De53YFCrABmAa7gxDFHCmrRu7ymUd/Kec1gFs2s9wpYAc2iyc2grnpW4Aqa3gLianAC6mqQ0gUUfwIqiIdB3AiMFZIoB1aIBaKGE5JCMEgVwCxgFmcWjSuDtk0BqqABFsAK0R4Ro4EJokQRpVtiogKonRAlLeg2A7N4tTiFWEHLHb0CVUCzaJUL6D8HBXlolPwgBwOukHwB0s4sIM5HySEBGJglO0YKsf6zq8rkg4FZgimH+izKPmdQQSkBaXFjUkgVtLi4KXCFVC2sHhbACmAWLVMGLROCQqrgzeJVUFLH2bGkQBWyYxnMon1YACvkrGZQZUkvazJR0ps2Z6COSaKSrosCsYIzizOLN4s3i/YPSn6Stg2Sgj6CFVIF1CjEjUTyUNoUqALrXAIFrJDMkqoFNu31SskIms25RqrqlLTPKzWbeko+E5anw6ZOV4pG2GwYGiUjkkJQyMRGOocoZiKjZDbQJVspGkGz6RAqpFOIMBMb+WbLcejEhuDqc/OwL5THfaFmy3EUio00DlbKG0AhfVpS0j6u1Gy5Ckp5G6jUbLkKhUSZNUN5K6jUbBoHQyauz3U5jkJkFJstx5Epb12FJA72mZKRxlGp2bjZuNmS2fKOwC6T2tz7+93OdtofL5fDQTfaq61XNuTn/eVwftndn19Pp7vdP/vTa/6nP8/7c76+7C/yrkR6OP+Sqwg+Hk8Hpfe7fvc2vpWQsd5NBF0gwgcFGCtg0NWcFTAQdYX0QcGNFbyO+CzgMbT7yX3eg+TMgxjCyIMw8yBWgQDxKglrWUyjLOJMwTcBbPcH+LQHsss0gRBHHvAki7L2LItuc6MsprGCIxOQph/V8bNZDDSKYaYgu4spJAfDbp40owwFS6Ss3Z5IDh8l/CQPbAvSJ76q5cdEwqQfkxyrq0QC6g3p08eFDXFSz81bS6FsPF3jC16wrezkrrL5Py9orMFyZ9XghGmswbPVaYF47vn02xeKCslGjAxfHBXVTVorcs9mLwjjUmv64aB1kyiSHs1LOciNXHCTxpSDSrQVpoeW8bAOM5ENqIlsfjhvXbx52Di8cdrMAkmJXI8j8NCJWWvG3ptx4sa8KOGqKGmYDD/pLpDFZRoJfB86frFBcdSgftKgrq0yD1fjgj/vQgzNBfJDF8LN49vHW8e3x9vHt6dbx/dnk8njZKbZ2NxaMsHDaOSEWWNu7EPrbp6cziYHPJBYTIM3Hnb33BFpqe7I9SHtL0emazVinxkyxIYis8MmkmXEE8SFg5Ksdmir/Wo7+3tLnEtsTcJtSxJ9PxLkNYmezusF/wUJt0WTkI+HcUkibJYLF2DNi+C7RIQ1ifYpxkWgJYnY5o6gW5PwsUv4RS+oSVwf+Ra9WJVoDS4f5Jca3GEbwQ7DWlExtoogLXrRdjSRgJsDWZPwjLEdwgkXJdrcS9tSLuS763bcSjgOBCfbe+ibSWDfFwnw573gds5JaTEQ7oGktaJubRMQXFvsG8cusbbY5YtOkwBYDYS6xM2BrEpAn+DgeU0itI8k8iXoooTrEnBzIKsSlJoEr21F0IsqBV6UaA3uFif4VSCrEs5jk6AwlGC3NnK+y6v9w/Hy4TfXd9W6HPc/T4f68vH1/HD17su/z/aO/Wb7fHl6OPx6vRxUqf9wK3++yS50J99Nf9efB+Sl/BZBrC9A35OfaWSD/P6urvwH"
74
+ "debug_symbols": "pZnbbhs5DIbfxde5GOpAUnmVoijc1CkMGE7gJgssgrz7kpIoOV1ISOSbzGc68w9PomT7bffr8PP194/j+fHpz+7+29vu5+V4Oh1//zg9Pexfjk9nsb7tNv0Djnb3/m4H3u3uo16pXAMUe8ByjfKa9IrlivU1pnKlUK+8u4dNgL0AKHCFhAXcJvcCKmAFiAapggsGZvFm8WYJ3oAqRGdgymjPQn1EEqDNIBhwBXYGVCGZJTsv4De53YFCrABmAa7gxDFHCmrRu7ymUd/Kec1gFs2s9wpYAc2iyc2grnpW4Aqa3gLianAC6mqQ0gUUfwIqiIdB3AiMFZIoB1aIBaKGE5JCMEgVwCxgFmcWjSuDtk0BqqABFsAK0R4Ro4EJokQRpVtiogKonRAlLeg2A7N4tTiFWEHLHb0CVUCzaJUL6D8HBXlolPwgBwOukHwB0s4sIM5HySEBGJglO0YKsf6zq8rkg4FZgimH+izKPmdQQSkBaXFjUkgVtLi4KXCFVC2sHhbACmAWLVMGLROCQqrgzeJVUFLH2bGkQBWyYxnMon1YACvkrGZQZUkvazJR0ps2Z6COSaKSrosCsYIzizOLN4s3i/YPSn6Stg2Sgj6CFVIF1CjEjUTyUNoUqALrXAIFrJDMkqoFNu31SskIms25RqrqlLTPKzWbeko+E5anw6ZOV4pG2GwYGiUjkkJQyMRGOocoZiKjZDbQJVspGkGz6RAqpFOIMBMb+WbLcejEhuDqc/OwL5THfaFmy3EUio00DlbKG0AhfVpS0j6u1Gy5Ckp5G6jUbLkKhUSZNUN5K6jUbBoHQyauz3U5jkJkFJstx5Epb12FJA72mZKRxlGp2bjZuNmS2fKOwC6T2tz7+93OdtofL5fDQTfaq61XNuTn/eVwftndn19Pp7vdP/vTa/6nP8/7c76+7C/yrkR6OP+Sqwg+Hk8Hpfe7fvc2vpWQsd5NBF0gwgcFGCtg0NWcFTAQdYX0QcGNFbyO+CzgMbT7yX3eg+TMgxjCyIMw8yBWgQDxKglrWUyjLOJMwTcBbPcH+LQHsss0gRBHHvAki7L2LItuc6MsprGCIxOQph/V8bNZDDSKYaYgu4spJAfDbp40owwFS6Ss3Z5IDh8l/CQPbAvSJ76q5cdEwqQfkxyrq0QC6g3p08eFDXFSz81bS6FsPF3jC16wrezkrrL5Py9orMFyZ9XghGmswbPVaYF47vn02xeKCslGjAxfHBXVTVorcs9mLwjjUmv64aB1kyiSHs1LOciNXHCTxpSDSrQVpoeW8bAOM5ENqIlsfjhvXbx52Di8cdrMAkmJXI8j8NCJWWvG3ptx4sa8KOGqKGmYDD/pLpDFZRoJfB86YW12ehw1qJ80qGurzMPVuODPuxBDc4H80IVw8/j28dbx7fH28e3p1vH92WTyOJlpNja3lkzwMBo5YdaYG/vQupsnp7PJAQ8kFtPgjYfdPXdEWqo7cn1I+8uR6VqN2GeGDLGhyOywiWQZ8QRx4aAkqx3aar/azv7eEucSW5Nw25JE348EeU2ip/N6wX9Bwm3RJOTjYVySCJvlwgVY8yL4LhFhTaJ9inERaEkitrkj6NYkfOwSftELahLXR75FL1YlWoPLB/mlBnfYRrDDsFZUjK0iSItetB1NJODmQNYkPGNsh3DCRYk299K2lAv57rodtxKOA8HJ9h76ZhLY90UC/HkvuJ1zUloMhHsgaa2oW9sEBNcW+8axS6wtdvmi0yQAVgOhLnFzIKsS0Cc4eF6TCO0jiXwJuijhugTcHMiqBKUmwWtbEfSiSoEXJVqDu8UJfhXIqoTz2CQoDCXYrY2c7/Jq/3C8fPjN9V21Lsf9z9Ohvnx8PT9cvfvy77O9Y7/ZPl+eHg6/Xi8HVeo/3Mqfb7IL3cl309/15wF5Kb9FEOsL0PfkZxrZIL+/qyv/AQ=="
75
75
  },
76
76
  {
77
77
  "name": "balance_of_public",
@@ -123,7 +123,7 @@
123
123
  }
124
124
  },
125
125
  "bytecode": "JwACBAEoAAABBIBGJwAABEYlAAAARScCAgQBJwIDBAAfCgACAAMARC0IRAElAAAARi0CAUUnAgIERScCAwQBOw4AAwACJiUAAAEzHgIAAgknAgMBASQCAAIAAABiJQAAAVkpAgACAO9SU00nAgMAASsCAAQAAAAAAAAAAAMAAAAAAAAAAC0IAQUnAgYEBQAIAQYBJwMFBAEAIgUCBi0KBgctDgIHACIHAgctDgMHACIHAgctDgEHACIHAgctDgQHLQgBAScCAgQFAAgBAgEnAwEEAQAiBQICACIBAgM/DwACAAMnAgIEAQAqAQIELQsEAycCAQAACioDAQInAgEBAAoqAgEEJAIABAAAARIlAAABax4CAAEALyoAAwABAAIcCgIDBhwKAwEAHAoBAgYtCgIBJigAAAQEeEYMAAAEAyQAAAMAAAFYKgEAAQXaxfXWtEoybTwEAgEmKgEAAQXcG27r+7a8QzwEAgEmKgEAAQW6uyHXgjMYZDwEAgEm",
126
- "debug_symbols": "nZbbrqowEIbfpddcdKbH8VVWjEHFFRKChqU72TG8+54iA7KTNive2L9T+JhTa5/q3Bwf34e2v1x/1O7rqY5D23Xt96G7nup7e+3Z+lQ6/QSndqZSkSeWBzcNZF5DVDuASoEOswCchTEiZMnKkhWLE4sTiwcRbhZBi7AiaBZRPhHFDUpAk4R/CdQgQiwgFhALigWTGxwWGhQhFpue8Un4WTixOLF4sXiaRfIZMQm2YOJEBmJaSq6+xGQZx0pJ7g/3oWlS6t+KwSW61UPT39Wuf3Rdpf7U3WN66OdW99N4rwde1ZVq+jOPDLy0XZPUWK1v6/yroEHb+XXW7JQgHGwYkGeQT0FNCPI2rATaELDkRVyc4L5aCAE/jSPm4igy0MaFgT7kGK7AQOsEgeQWQrQbgs8TMEo5Da1RWNgmMxTKAUsyift8QRjadkXMIyKlDp4QkTxlEZRHGGskjLiGYfR/XVUoB/KunxEIMXzGQCOtyTvd5hmF5rSBpKQ2GlwYEH/tBldyyQYRZN0oNRaQZAOM9rnGggLCLU54vR4V0X+4PwJlz4pSd9ogzRkw5wTEohfOv3mRPW+AShANYYFoY7OHViEfnv+EJKGoMYsoHJ0YhIBkc8deKRDiLK5x2Jh1whS606171RXcKBfFvhWF8skotTifNcIgMOvZZ7g79jytT+2wua2MCTa09bFr5unl0Z/eVu9/b7Iit53bcD0158fQJNJ65QH+/XKx8mafrjQ88aHytB/Tp/8B"
126
+ "debug_symbols": "nZbbrqowEIbfpddcdKbH8VVWjEHFFRKChqU72TG8+54iA7KTNive2L9T+JhTa5/q3Bwf34e2v1x/1O7rqY5D23Xt96G7nup7e+3Z+lQ6/QSndqZSkSeWBzcNZF5DVDuASoEOswCchTEiZMnKkhWLE4sTiwcRbhZBi7AiaBZRPhHFDUpAk4R/CdQgQiwgFhALigWTGxwWGhQhFpue8Un4WTixOLF4sXiaRfIZMQm2YOJEBmJaSq6+xGQZx0pJ7g/3oWlS6t+KwSW61UPT39Wuf3Rdpf7U3WN66OdW99N4rwde1ZVq+jOPDLy0XZPUWK1v6/yroEHb+XXW7JQgHGwYkGeQT0FNCPI2rATaELDkRVyc4L5aCAE/jSPm4igy0MaFgT7kGK7AQOsEgeQWQrQbgs8TMEo5Da1RWNgmMxTKAUsyift8QRjadkXMIyKlDp4QkTxlEZRHGGskjLiGYfR/XVUoB/KunxEIMXzGQCOtyTvd5hmF5rSBpKQ2GlwYEH/tBldyyQYRZN0oNRaQZAOM9rnGggLCLU54vR4V0X+4PwJlz4pSd9ogzRkw5wTEohfOv3mRPW+AShANYYFoY7OHViEfnv+EJKGoMYsoHJ0YhIBkc8deKRDiLK5x2Jh1whS606171RXcKBfFvhWF8skotTifNcIgMOvZZ7m99jytT+2wua2MCTa09bFr5unl0Z/eVu9/b7Iit53bcD0158fQJNJ65QH+/XKx8mafrjQ88aHytB/Tp/8B"
127
127
  },
128
128
  {
129
129
  "name": "check_balance",
@@ -165,7 +165,7 @@
165
165
  }
166
166
  },
167
167
  "bytecode": "JwACBAEoAAABBIBFJwAABEUlAAAARicCAgQBJwIDBAAfCgACAAMARBwAREQGLQhEASUAAABsJwIBBEUnAgIEADsOAAIAASwAAEMAMGROcuExoCm4UEW2gYFYXSgz6Eh5uXCRQ+H1k/AAAAAmJQAAAZoeAgACCScCAwEBJAIAAgAAAIglAAABwB4CAAIBCiICQwMWCgMEHAoEBQAEKgUCBCcCAgEACioDAgUkAgAFAAAAuycCBgQAPAYGASkCAAMA71JTTScCBQABKwIABgAAAAAAAAAAAwAAAAAAAAAALQgBBycCCAQFAAgBCAEnAwcEAQAiBwIILQoICS0OAwkAIgkCCS0OBQkAIgkCCS0OBAkAIgkCCS0OBgktCAEDJwIEBAUACAEEAScDAwQBACIHAgQAIgMCBT8PAAQABScCBAQBACoDBAYtCwYFJwIDAAAKKgUDBAoqBAIDJAIAAwAAAWYlAAAB0h4CAAMALyoABQADAAQcCgQFBhwKBQMAHAoDBAYMKgQBAwoqAwIBJAIAAQAAAZklAAAB5CYoAAAEBHhFDAAABAMkAAADAAABvyoBAAEF2sX11rRKMm08BAIBJioBAAEFDv4gSes3Tjw8BAIBJioBAAEFursh14IzGGQ8BAIBJioBAAEFhHKAwoQjC0Y8BAIBJg==",
168
- "debug_symbols": "nZbdavMwDIbvJcc9sCT/qbcyxsi6dARCWrL2g4/Se5+8WvkZ2IyeVG/k5oksyUpuzUf3fv1868fj6avZv9ya96kfhv7zbTgd2kt/GsV7a0z6AaBmTzuxsdlbsUgPS5Ctb/ZBrJVrTtY/rDMPv3MP6+UaIAmXRVBPiFlEUhFERBHsHwINZIGoQpdIl0g9Vj1WPSmah7AqOAtPKmIWQR8RchgYBYgmCZcFGxXZQ8aoUA+oByQMlH0Rggr1UPoPJeGysOqx6nGkQiJESS6lmCndHgRIaSn4LKJ6YvJIhYhBRfZYY5O433eNFvztMnVdqveqA6Qvzu3UjZdmP16HYdf8a4frz5++zu34Yy/tJKuyxW78ECvAYz90Sd13y92mfGtk5/PdkUOcAQ42BCgT2KMS2NuwEHhDwDIBTLSZAGAWQsCndhFNaRcVAgNoDAxUzIMrE7z1SpA0FPPgywSynAHkbSkL1QgYNQJnbSmCWIvAZYCV+bEAnsriuhd+dVMFETxlQgh+Bti/F9LwEgJQMYRaP+KcBpDxMiOi3SKojMCoZ5I4rnaxrURKVjmV86FgRJgZxNuzDa52LBDnY+G5zKg2pdaD4rITMr/SGSq5gKB9jfJieY4h7xZlYLBlBpcZNvDc3ZFwZkD8cxhSzDkbzFAOo9ZdwJoOIONL3YUVhJuj8GY5pdE/dUacK50RrLWnDUoIWAoBXW3o4zyzRZcHJvoaxECYIYaKMw8rRfUQo6YTDRYRlbmJQQnIxcld2whLFpd92FgKgipVJbccVVcJo14UuyoKF5NBtQaXWaMMXk1gS881aNi+z1/lqj300+Zb+Z5YU9++D12+PF7Hw2r18v+sK/qtfZ5Oh+7jOnWJtPrglt+XALvgX9NXt1zILI/4ek+P/gY="
168
+ "debug_symbols": "nZbdavMwDIbvJcc9sCT/qbcyxsi6dARCWrL2g4/Se5+8WvkZ2IyeVG/k5oksyUpuzUf3fv1868fj6avZv9ya96kfhv7zbTgd2kt/GsV7a0z6AaBmTzuxsdlbsUgPS5Ctb/ZBrJVrTtY/rDMPv3MP6+UaIAmXRVBPiFlEUhFERBHsHwINZIGoQpdIl0g9Vj1WPSmah7AqOAtPKmIWQR8RchgYBYgmCZcFGxXZQ8aoUA+oByQMlH0Rggr1UPoPJeGysOqx6nGkQiJESS6lmCndHgRIaSn4LKJ6YvJIhYhBRfZYY5O433eNFvztMnVdqveqA6Qvzu3UjZdmP16HYdf8a4frz5++zu34Yy/tJKuyxW78ECvAYz90Sd13y92mfGtk5/PdkUOcAQ42BCgT2KMS2NuwEHhDwDIBTLSZAGAWQsCndhFNaRcVAgNoDAxUzIMrE7z1SpA0FPPgywSynAHkbSkL1QgYNQJnbSmCWIvAZYCV+bEAnsriuhd+dVMFETxlQgh+Bti/F9LwEgJQMYRaP+KcBpDxMiOi3SKojMCoZ5I4rnaxrURKVjmV86FgRJgZxNuzDa52LBDnY+G5zKg2pdaD4rITMr/SGSq5gKB9jfJieY4h7xZlYLBlBpcZNvDc3ZFwZkD8cxhSzDkbzFAOo9ZdwJoOIONL3YUVhJuj8GY5pdE/dUacK50RrLWnDUoIWAoBXW3o4zyzRZcHJvoaxECYIYaKMw8rRfUQo6YTDRYRlbmJQQnIxcld2whLFpd92FgKgipVJbccVVcJo14UuyoKF5NBtQaXWaMMXk1g++QQD9v3+atctYd+2nwr3xNr6tv3ocuXx+t4WK1e/p91Rb+1z9Pp0H1cpy6RVh/c8vsSYBf8a/rqlguZ5RFf7+nR3w=="
169
169
  },
170
170
  {
171
171
  "name": "claim",
@@ -2016,7 +2016,7 @@
2016
2016
  }
2017
2017
  },
2018
2018
  "bytecode": "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pWvP5Nhy7tK1OXfp2py7dG3OXbo25y5dm3OXrs25S9fm3KVrc+7StTl36dqkX3jl3KVrc+7StTl36dqcu3Rtzl26NucuXZtzl67NuUvX5tyla3Pu0rU5d+nanLt0bc5dujbnLl2bc5euzblL1+bcpWtz7tK1OXfp2py7dO2VHFvOXbo25y5dm3OXrs25S9fm3KVrc+7StTl36dqcu3Rtzl26NucuXZtzl67NuUvX5tyla3Pu0rU5d+nanLt0bc5dujbnLl2bc5euzblL1+bcpWtz7tK1OXfp2gc4tpy7dG3OXbo25y5dm3OXrs25S9fm3KVrc+7StU9wbDl36dqcu3Rtzl26NucuXZtzl67NuUvX5tyla3Pu0rU5d+nanLt0bc5dujbnLl2bc5euh3OXrodzl66Hc5euh3OXrodzl66Hc5euh3OXrodzl66Hc5euh3OXrodzl66Hc5euh3OXrodzl66Hc5euJ4ljm4djm5djm49jy7n/1sO5/9bDuf/Ww7n/1sO5/9bDuf/Ww7n/1sO5/9bDuf/Ww7n/1sO5/9bDuf/Ww7n/1sO5/9bDuf/Ww7n/1sO5/9bDuf/Ww7n/1sO5/9bDuf/Ww7n/1sO5/9bDuf/Ww7n/1sO5/9bDuf/Ww7n/1sO5/9bDuf/Ww7n/1lOOY8u5/9bDuf/Ww7n/1sO5/9bDuf/Ww7n/1sO5/9bDuf/Ww7n/1sO5/9bDuf/Ww7n/1sO5/9bzCMeWc/+th3P/rYdz/62Hc/+th3P/rYdz/62Hc/+th3P/rYdz/62Hc/+th3P/rYdz/62Hc/+th3P/rYdz/62Hc/+th3P/rac2x5Zz/62Hc/+th3P/rYdz/62Hc/+th3P/rYdz/62Hc/+th3P/rYdz/62Hc/+th3P/rYdz/62Hc/+th3P/rYdz/62Hc/+th3P/rYdz/62Hc/+th3P/rYdz/62Hc/+th3P/rYdz/62Hc/+th3P/rYdz/62Hc/+th3P/rYdz/60nlWPLuf/Ww7n/1sO5/9bDuf/Ww7n/1sO5/9bDuf/Ww7n/1sO5/9bDuf/Ww7n/1sO5/9bDuf/Ww7n/1sO5/9bDuf/Ww7n/1sO5/9bDuf/Ww7n/1sO5/9bDuf/Ww7n/1sO5/9bDuf/Ww7n/1sO5/9YD3X9bvWnrtqmdq7Rp2aF3rc2eZqVvvOnmW269rUzZcrffceddd99z7333P/DgQw8/Uv7RxypUfLxS5SpVqz1RvUbNWk/WrvNU3afrPfPsc8/Xf+HFBg1TGjVu0rRZ8xYtX3q5Ves2bdu9ktq+Q8dXX+vU+fU33nzr7XcCXQJdA+8G3gu8H/gg8GGgW6B74KPAx4FPAp8GegR6BnoF0gL+QHqgd6BPoG+gX6B/YEDgs8DAwKDA4MCQwNDAsMDwwIjAyMCowOjAmMDYwLjA+MCEwMTApMDkwJTA1MC0wPTAjMDMwKzA7MCcwNzAvMD8wILA54GFgUWBLwKLA18Gvgp8Hfgm8G3gu8D3gR8CPwZ+CiwJ/Bz4JRAIiMDSwLLA8sCKwMrAqsDqwJrA2sC6wPrAhsDGwKbA5sCWwNbAtsD2wI7AzsCuwO7AnsDewL7Ar4H9gQOBg4FDgcOBI4GjgWOB44ETgZOBU4HTgd8Cvwf+CPwZ+Cvwd+BM4J/A2cC/wsohLEtYtrA8wooRVk5heYUVK6xcwooTVrywEoSVKKzcwvIJK0lYeYSVV1j5hJVfWAWEdYWwrhTWVcIqKKxCwrpaWNcI61phFRbWdcIqIqxkYV0vrBuEVVRYxYRVXFglhFVSWKWEVVpYNwrrJmHdLKxbhHWrsG4TVhlhlRVWOWHdLqw7hHWnsO4S1t3CukdY9wrrPmHdL6wHhPWgsB4S1sPCekRY5YX1qLAeE1YFYVUU1uPCqiSsysKqIqyqwqomrCeEVV1YNYRVU1i1hPWksGoLq46wnhJWXWE9Lax6wnpGWM8K6zlhPS+s+sJ6QVgvCquBsBoKK0VYjYTVWFhNhNVUWM2E1VxYLYTVUlgvCetlYbUSVmthtRFWW2G1E9YrwkoVVnthdRBWR2G9KqzXhNVJWJ2F9bqw3hDWm8J6S1hvC+sdYXURVldhvSus94T1vrA+ENaHwuomrO7C+khYHwvrE2F9KqwewuoprF7CShOWX1jpwuotrD7C6iusfsLqL6wBwvpMWAOFNUhYg4U1RFhDhTVMWMOFNUJYI4U1SlijhTVGWGOFNU5Y44U1QVgThTVJWJOFNUVYU4U1TVjThTVDWDOFNUtYs4U1R1hzhTVPWPOFtUBYnwtrobAWCesLYS0W1pfC+kpYXwvrG2F9K6zvhPW9sH4Q1o/C+klYS4T1s7B+EVZAWEJYS4W1TFjLhbVCWCuFtUpYq4W1RlhrhbVOWOuFtUFYG4W1SVibhbVFWFuFtU1Y24W1Q1g7hbVLWLuFtUdYe4W1T1i/Cmu/sA4I66CwDgnrsLCOCOuosI4J67iwTgjrpLBOCeu0sH4T1u/C+kNYfwrrL2H9LawzwvpHWGeF9a+wcwjbErYtbI+wY4SdU9heYccKO5ew44QdL+wEYScKO7ewfcJOEnYeYecVdj5h5xd2AWFfIewrhX2VsAsKu5Cwrxb2NcK+VtiFhX2dsIsIO1nY1wv7BmEXFXYxYRcXdglhlxR2KWGXFvaNwr5J2DcL+xZh3yrs24RdRthlhV1O2LcL+w5h3ynsu4R9t7DvEfa9wr5P2PcL+wFhPyjsh4T9sLAfEXZ5YT8q7MeEXUHYFYX9uLArCbuysKsIu6qwqwn7CWFXF3YNYdcUdi1hPyns2sKuI+ynhF1X2E8Lu56wnxH2s8J+TtjPC7u+sF8Q9ovCbiDshsJOEXYjYTcWdhNhNxV2M2E3F3YLYbcU9kvCflnYrYTdWththN1W2O2E/YqwU4XdXtgdhN1R2K8K+zVhdxJ2Z2G/Luw3hP2msN8S9tvCfkfYXYTdVdjvCvs9Yb8v7A+E/aGwuwm7u7A/EvbHwv5E2J8Ku4ewewq7l7DThO0Xdrqwewu7j7D7CrufsPsLe4CwPxP2QGEPEvZgYQ8R9lBhDxP2cGGPEPZIYY8S9mhhjxH2WGGPE/Z4YU8Q9kRhTxL2ZGFPEfZUYU8T9nRhzxD2TGHPEvZsYc8R9lxhzxP2fGEvEPbnwl4o7EXC/kLYi4X9pbC/EvbXwv5G2N8K+zthfy/sH4T9o7B/EvYSYf8s7F+EHRC2EPZSYS8T9nJhrxD2SmGvEvZqYa8R9lphrxP2emFvEPZGYW8S9mZhbxH2VmFvE/Z2Ye8Q9k5h7xL2bmHvEfZeYe8T9q/C3i/sA8I+KOxDwj4s7CPCPirsY8I+LuwTwj4p7FPCPi3s34T9u7D/EPafwv5L2H8L+4yw/xH2WWH/Kzw5hEci2RYej/DECE9O4fEKT6zw5BKeOOGJF54E4UkUntzC4xOeJOHJIzx5hSef8OQXngLCc4XwXCk8VwlPQeEpJDxXC881wnOt8BQWnuuEp4jwJAvP9cJzg/AUFZ5iwlNceEoIT0nhKSU8pYXnRuG5SXhuFp5bhOdW4blNeMoIT1nhKSc8twvPHcJzp/DcJTx3C889wnOv8NwnPPcLzwPC86DwPCQ8DwvPI8JTXngeFZ7HhKeC8FQUnseFp5LwVJYf7cuP4eVH5vLjbflRtPzYWH7EKz+OlR+dyo855UeS8uND+VGf/FhOfoQmP+6SH03Jj5HkRz7y4xn5UYr82EN+RCE/TpCP/uVjevlIXT7+lo+q5WNl+QhYPq6Vj1blY1D5yFI+XpSPAuVjO/mITT4Ok4+u5GMm+UhIPr6Rj1rkYxH5CEM+bpCPBuTbePmWW749lm9l5dtO+RZRvp2Tb73k2yT5lka+/ZBvFeTLevkSXL5cli9t5ctQ+ZJRvryTL8Xky6aJtZt26JjapkJKh5TNOUrnsGxPTE5vbK64+ITE3L6kPHnz5S9wxZVXFSx09TXXFr6uSPL1NxQtVrxEyVJpaZtz3JredXT5xi1TC6YvWx578NQvPzRPS7vwo6sz/+iB9GWbvr2p9tqK3iKhHz2Y+UcPZf6RbKpZ/fDfLH5o58jih57d6csGHCowJnFQ7uecHx7I6ofHsvrhb1n98EwWP4yxs/phrqx+6Mvqh7dnMfmYO7L64Z1Z/DDn6ax++FtWP/w9ix/Gzsvqh/Oz+uGCLH4Y1zmrH76e1Q/fyOKHCfdn9cMHsvphFkUjEv/J6odZlU1iVmWTVDiL7UgqmtUPS2f1w9uy+uGdWf3w/qx+WD6rH1bK6odt0pdNmtyryVtdfup68Yd57k5f9vzC+L/61fppiPPDhzIfQJGnkuuHA9M3lEo59y6rQeO2rduldGjZqFXTBm1TUxrL/+/VpqntW7Zt0+C11JR27Zqmbs5xZdcxj7Vt075D765jK7RMbdq4g911XJU2HZo2b5o6qu7t5dRv0DL+eytb/75LhYz/Pkf24lfoOvqxlFat/AkXfcbXbtpKLvrVptmbiXwXmcnBzq7D5OBcmsiO+1jbdp0vLqmCe04u8/Mzz33ZM69gYOaj63Ro286fHmamGfbosTGPt2zaSv3xbuLY8wy6sNI8XSc93ja1acvmbYL/s++GYh07tGzVskPn888EHrtYrDXP1erT50s1Lc3fdcr5t/flmzRJbdq+/cVZ+LuOrdOydbtWTc9PJxQsw2RjspWKThW6Tnq0ZZuU4MOEDjXb9Q25eMY/IUM/1SKlTdDFKdaLQcZW7di6XZVm6Rf/wRVdp1Rp0+T8TMOekLsifOd+4/en186uWq5119FPydPqT3f+feioXlhx+txGHVu2atKgdfvmDRq1atv45QYtmrYKnm4r///4dA+6zNM96ELlNMtc4dnb1hyPZ3bIaeZ0V3TPyWUuZ+5aeEVnEIo6su49GUSPO4PwokrOILyosjMIL6riDMKLqjqD8KJqziC86AlnEF5U3RmEF9VwBuFFNZ1BeFEtZxBe9KQzCC+q7QzCi+o4g/Cip5xBeFFdZxBe9LQzCC+q5wzCi55xBuFFzzqD8KLnnEF40fPOILyovjMIL3rBGYQXvegMwosaOIPwoobOILwoxRmEFzVyBuFFjZ1BeFETZxBe1NQZhBc1cwbhRc2dQXhRC2cQXtTSGYQXveQMwotedgbhRa2cQXhRa2cQXtTGGYQXtXUG4UXtnEF40SvOILwo1RmEF7V3BuFFHZxBeFFHZxBe9KozCC96zRmEF3VyBuFFnZ1BeNHrziC86A1nEF70pjMIL3rLGYQXve0MwovecQbhRYEurlEEWVfXKILsXdcoguw91yiC7H3XKILsA9coguxD1yiCrJtrFEHW3TWKIPvINXK/usyo+9g1ukR3ue8FK17269wKXUdVb/tquvtV7YW5Wpm9vdmdXZZvrqxR8q2d+32V5Y6Q8W3UeM23AFaG4E6Ii+Ezr9m+kI0L/9Pj3phL/kuMe8qX/JecGd4VyPczLTPm2HKHzvDfbFdNZfhPHlcZnXfuEG6RduZFOm8kM2+sJ3u5/eSy36DlCZtoO2yiPWETHXMx0Zf7aOSTy85NnswPV2y3WcaHK9lzfyTjv6+QvX8fE3pskuXJjM14Mj1Osi/JfS5HcMnP45xtyzJA/NiKr3RMadXeHeOiV2ympyrx7buOfqJtSpOLP/A6/2iMzHJq08yRvVlHzpVxabmc45DlP4jL+A/inH8wOjhPf6tLn3cFDht46JDhxHsjNOPY7HnnzX4zjg3fjL2GmnFs5j7ljdCncmX3LIYJmytz2FzudWfYhjj3fwtjGT819MjQVeJZucc5Ze78Y/lSKVTQWUXNGS5qXOaFZKrTtzMuJ9bZa7QmnC3JOMtY986FQ+6lj1OzboyZs+INfHZhCZKF+E56nN4aLmsR98rj3rbMs4oL9Aid+JNhA6gXnLV1emjBaWFbwWMhSf/wr3DqdGwUIdPhUolmxc5i6rkC/UJZ+c2ZYKbXlq7lXBANiiDK6Yg0XsxV0FvoJZPMaqHDnO2/3AZlhT/XmbbQ645yuU3Im2UTGu1sYdh8V2j5aph+k8UHU3HZ7deZHOJd77/KZuMTjIsGCZf96Vqi+y2gzgeLubM3hVyZ3xJkPhGTw+2QT916stp8X2BGyHpa6EXX+Czer8SGXvRkmGOSSaYkAeTLM6p6x1YZl6g6+fkyl28e5T/KOzarw5Qvcj/MG1gQOkx/ZsyVL4v9XBg2epj99Dnzzir60pDx4ky76XMnOuN/TAJe6uRRl1hWL3LyBL4NpeRM2Ld/SZf3ga58mXshxL8Zs57HeS8TLtWZYZIn3LsEV0ll+kd53SnJVNz53DsR6eVU2FevvswhL3lhEb59+JTtI19WOXD9+zD/LH9E8ORxrz5zYeQPrFS+osofpubyXQL+LKzXhZa8JmNe8rpb/AXRzrDxs3qd6ZpFmH9WAH1NlT+LyRcIbFLmJV+YvOR3EzCzdb7AVucs4qVgKY9Dgcz/KJ97Vhn7jWsTCjibkFGVz90gwu5QnRatwkbOHXomm9V/zHvpU1m8PeS/7BLI755FViWw3/VqMwIn82Zj1r4IzcLntrzIpsv7ks0gU1+yCZz4P/uWzeUGCn1Bjx7omkVNlz+8+cBmeqCcMdd8ljyt4RP0QLtz1apoz/m0iDpQmIeDnjBPN7N4+Oh62JSx2mKF5blwAoSVM+Oz54uhQop8YRTZfj0cAz6P9Dj/4JLI8WGezSaEe/1z4ceJWaQn3vXwM0N6EoWVN8MG5HL+WYanswmOJOvnwhkXF694OpuQ8R8kZHzqJaz4cIWYzaeylvKLd9P+t1+863r35X3xzrr7AmOEZV/2Jzs7o1+9i371LvrVu+hX76JfvYt+9S761bvoV++iX72LfvWu6f/JV++ykGX1zbssZJ+4RhFkn7pGEWQ9XKMIsp6uUQRZL9cogizNNYog87tGEWTprlEEmXsUQdbHNYog6+saRZD1c40iyPq7RhFkA1yjCLLPXKMIsoGuUQTZINcogmywaxRBNsQ1iiAb6hpFkA1zjSLIhrtGEWQjXKMIspGuUQTZKNcogmy0axRBNsY1iiAb6xpFkI1zjSLIxrtGEWQTXKMIsomuUQTZJNcogmyyaxRBNsU1iiCb6hpFkE1zjSLIprtGEWQzXKMIspmuUQTZLNcogmy2axRBNsc1iiCb6xpFkM1zjSLI5rtGEWQLXKMIss9dowiyha5RBNki1yiC7AvXKIJssWsUQfalaxRB9pVrFEH2tWsUQfaNaxRB9q1rFEH2nWsUQfa9axRB9oNrFEH2o2sUQfaTaxRBtsQ1iiD72TWKIPvFNYogC7hGEWTCNYogW+oaRZAtc40iyJa7RhFkK1yjCLKVrlEE2SrXKIJstWsUQbbGNYogW+saRZCtc40iyNa7RhFkG1yjCLKNrlEE2SbXKIJss2sUQbbFNYog2+oaRZBtc40iyLa7RhFkO1yjCLKdrlEE2S7XKIJst2sUQbbHNYog2+saRZDtc40iyH51jSLI9rtGEWQHXKMIsoOuUQTZIdcoguywaxRBdsQ1iiA76hpFkB1zjSLIjrtGEWQnXKMIspOuUQTZKdcoguy0axRB9ptrFEH2u2sUQfaHaxRB9qdrFEH2l2sUQfa3axRBdsY1iiD7xzWKIDvrGkWQ/esahZcJK4d7GElouYeRhLZ7GEnocQ8jCWPcw0jCnO5hJKHXPYwkjHUPIwlzuYeRhHHuYSRhvHsYSZjgHkYSJrqHkYS53cNIQp97GEmY5B5GEuZxDyMJ87qHkYT53MNIwvzuYSRhAfcwkvAK9zCS8Er3MJLwKvcwkrCgexhJWMg9jCS82j2MJLzGPYwkvNY9jCQs7B5GEl7nHkYSFnEPIwmT3cNIwuvdw0jCG9zDSMKi7mEkYTH3MJKwuHsYEmbxq/jCKuEeXqL83/8y/nbiL+PviP4y/oXvOOXU+nX8YGGF+338YCmF3PP8T34l3yr5H/2V/GC6L/OX8rNaW/SX8pv+z34pP/hC5z/8a/nyZeqlv5gvrI+iv5kf7v+iv5kf+ZfW4oMvo2i/mh98wfn/6i/nC+vOi6so/h/69Xxhlb548HuZ/gV9Yd16cdE3K39FX1i3/6d+R19Y5S6mJt01R/Wv6QvrbuD39IOq/84v6gvrflch/P/Xr+oL6xHXTv5/9Zf1t/+/8cv6wqps+rf1hVX9onm16O/rG/h9fWHVvXii+gK/sS+semZ/ZV9YL120fu6/80v7wmpwMS8D6L+2L6xB0d/bz/zffOpO8j/5xX1htVG/1tL91X1htb+47FeAX94X1tv/qd/eF9Zr6uTo/v6+sF53Hcv/2G/wB3ci+iv8Th184H4d+r/5Jf4gri6rRXe+29Rv8QurZ/TX+DP+X/TX+DM9TDT2a/zDLp6BEcpf45/6/71f45/y3/41/rGmf43/y+ZNOzRoVbZBh7YNWpVr0Lpp60ZNU9u3aNmuwWstO7SRvWxzjnL/4z+k0+oy/5BOqwu8ufKyPxTy0H6bv4J7Ti7zTJ/NXdSH+2SuYtjP5R6/kIerLj1Cldz2YYjryeq1evjH39lMa+XLTmuxsG/FPGE/rYtRfjh6/WV/0lbpsnNTPPNnda7VxVz62U6mZ7A5I3wu483uREx+Yp7T0OPGLB6k5nR12Uv+5Nr1F/7kWqWmHZ4o+1TbJ8pVv9js6p3vdekZ/9qaa9cmVG6a0q58ampKZ/cz7mLpl/4dtq5jzksy/Hm2Yr3DOlth/4sd9r94emeIGul/ZevjfSeL/299CnvTf/kz2GJm/jpfK1NvOcr+3/11vg3F27Tt0LJZ5waNU5umdGjapEGbjq1atWzWsmlq6K9ytktt26nz//5vcVa8zBcZFS+04MTL/qML1mVTB3iRYWcmZFYvMkYb+iudFdl/pTPiH9v8ol1qy1dl9dU4V4qPna/EGqFCzOKPbDohKH9ms+L/g39mc0PJ9sE22qBlmwZNOzVtLFHatk2DximNW1z887oX/6zurf/jo1z5Mo9y5QtVVPCyD2LMZb/8A46y++Ug48/pZvs9Urj3H9Zlv8yPyf5r0JzhX4N6DL0GzRnhWx0639rMqfwaYaEIL+o8Yd8ZVrrwr4tddpVU/r9q5/9vvPgs+l9+8XntpWgslY23+FaYd1KLLvD03NqqtKkY4sFjQRwE/zJ7lu+VPJ7w73TSw7xv8jDwW9kUfm/5P8TvzRdeRzdt80rHph3/f91czUoDMRDOxmrb9VRxL/oAnn0H9argAxRbKywsSy3d4mOU0oOevQmCePRZfBj3J7tJJjMlYYO0vS5JZnZ+vvmY/OREepqNkng8fMrSsajFSSJr8Pme1OCBh5rRtvNhUYMP1cX1OxbI45plfOmj0Nc1Lz23/6jrFHVhONmdwlApHIEOz4VG9K9FqtyVmXIjEqUYuVyu/fZj6L7R2qZTo0cG/JgHwpYB39n/Ad93JSY3ZbFDMXt4jF9+2QAawrkLD+YftUTHritHxhGFKSSj/jEdJwIcj6E+jocXQ0ui1ZfSP6sJZRjfTpsnzQ4+hNyreGH8FadmdYrTcAab2zD8PhshcUqRrY4rdwL3pphUDWdtaAL1acbY67Z2WI2ShmdWXzJj4nQxmc3foLCoZbSf+qmfTOrTLAxZS4WTFiKoeBRUHolFA9V6BuexlE5mA3tX0iCQOgDnNfeMo9WP6rzSxMPnLK9mk3T+CtUL3dzA4fxjz24M5cKEPfgmdCCtGKjowC2GY+gQECnNoTOaPffwD/8XJ4vYHgsA",
2019
- "debug_symbols": "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",
2019
+ "debug_symbols": "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OZ7y1c51qjueLtnxpOUZjejEIHZiUqGI0E6XrH97umRHaBPahDahTWgT2oQ2oU2Nzc4FrYqi2bmkVdGJQezEJBZxEOcVG7TTJTsa0YlBhNagNWgNWoNmDyJjM8ZmjM2gnS7ZMYlFHERoDs2hOTSH5sykMzZnbM7YHJpz3IKZDGYymMmAFtACWkALaMFMBmPrjK0ztg6tc9w6M9mZyc5MdmgdWoeW0BJaMpPJ2JKxJWNLaMlxS2YymcliJgtaQStoBa2gFTNZjK0YWzG2AW1w3AYzOZjJwUwOaAPagDagDWiTmZyMbTK2ydgmtMlxm8zkZCYnMzkv2lr3umMjGtGJQezEJBbxoq11ryvikoZLGi5Z615XhQYNlzRc0nBJwyUNlzRc0nDJWve6aObEIHZiEqEZNFzScEnDJQ2XNFzScEnDJWvd66J5EZlJXNJwyVr3uioENFzScEnDJQ2XNFzScEnDJWvd66J1jhsuabik4ZK17nVXgIZLGi5puKThkoZLGi5puGSte1205LjhkoZLGi5Z615XhYKGSxouabik4ZKGSxouabikFbTiuOGShksaLmkD2oCGSxouabik4ZKGSxouabhkrXtdtMlxwyUNlzRcsta97grQcInhEsMlhksMlxguMVyy1r2etLXudcdBvGbScMla97oqNGi4xHCJ4RLDJYZLDJcYLlnrXhfNGtGITgwiNIOGSwyXGC4xXGK4xHCJ4ZK17nXRvBOZSVxiuGSte10VAhouMVxiuMRwieESwyWGS9a610ULjhsuMVxiuGSte10VOjRcYrjEcInhEsMlhksMl6x1r4uWHDdcYrjEcMla97orQMMlhksMlxguMVxiuMRwyVr3umjFccMlhksMl9iANqDhEsMlhksMlxguMVxiuGSte120yXHDJYZLDJfYhDah4RLDJYZLHJc4LnFc4rhkrXs9aWvd645JLOIgQmvQcInjEscljksclzgucVyy1r0uWruOm+MSxyWOS5zPOGvd647QcInjEscljksclzguWeteF82dyEziEsclzmecte51R2i4xHGJ4xLHJY5LHJesda+LFhw3XOK4xHGJ8xlnrXvdERoucVziuMRxieMSxyVr3euiJccNlzgucVzifMZZ6153hIZLHJc4LnFc4rjEccla97poxXHDJY5LHJc4n3EclzjXJc51ieMS5zPOWve6IzRc4rjEcYlzXbLWvR6/3cTWutfzeexr3euOQezEJBZxEKfiWve6YyMa0YlB7MQkFnEQoTVoDVqD1qA1aA1ag9agNWgNmkEzaAbNoBk0g2bQDNrpkvXc39MlK54u2fGkxRmN6MQgdmJSoYjQTpesf3u6ZEdoAS2gBbSAFtACWkALxtYZW4fWoXVoHVqHdrpkxyIOImNLaKdLdjSiE4MILaEltISW0IqZLMZWjK0YW0E7XbIjM1nMZDGTBW1AG9AGtAFtMJODsQ3GNhjbgDY4bpOZnMzkZCYntAltQpvQJrTJTM5rbGvd646NeNHWutcdg9iJSSwqDCK0Bq1Ba0Z0YhA7EVor4iBeM7nWve4IzaAZNINm0CyJjM0YmzE2XLLWve7ITDoz6cwkLlnrXneE5tBwScclHZd0XNJxyVr3up86znHDJR2XdFyy1r2uCh0aLum4pOOSjks6Lum4pOOSte510TrHDZd0XNJxyVr3uiokNFzScUnHJR2XdFzScUnHJWvd66IVxw2XdFzSccla97orQMMlHZd0XNJxScclHZd0XLLWvS7a4Ljhko5LOi5Z615XhQkNl3Rc0nFJxyUdl3Rc0nHJWvd60ta61x2N6MQgdioksYiDCA2XJC5JXJK4ZK17XbTWiUks4iBCM2i4JHFJ4pLEJYlLEpckLkmuS5LrksQliUsSlyTXJcl1SeKSxCWJSxKXJC5JXJK4ZK17XbTguOGSxCWJS9a6110BGi5JXJK4JHFJ4pLEJYlL1rrXRescN1ySuCRxyVr3uiokNFySuCRxSeKSxCWJSxKXrHWvi1YcN1ySuCRxyVr3uitAwyWJSxKXJC5JXJK4JHHJWve6aIPjhksSlyQuWeteV4UJDZckLklckrgkcUniksQla93ros3ruBUuKVxSuGStez0rrHWvO3ZiEos4iNfYCpcULlnrXhetOTGInZhEaA0aLilcUrikcEnhksIlhUvWutdFsyIOIjOJS4rPOMVnnMIlhUsKlxQuKVxSuKRwyVr3umjBccMlhUsKlxSfcda61x2h4ZLCJYVLCpcULilcsta9LlrnuOGSwiWFS4rPOGvd647QcEnhksIlhUsKlxQuWeteFy05brikcEnhkuIzzlr3uiM0XFK4pHBJ4ZLCJYVL1rrXRRscN1xSuKRwSfEZZ6173REaLilcUrikcEnhksIla93rok2OGy4pXDJwyeAzzlr3uqMTg9iJSSziIF5jW+teF601ohGdGERoDRouGbhk4JKBSwYuGbhk4JK17nXRrBOTWMRBhIZLBtclg+uSgUsGn3HWutcdoeGSgUsGLhlcl6x1r8dvWLC17vX4RQG21r3uGMROTGIRB3FecblkxUaE1qF1aB1ah9ahdWgdWkJLaAktoSW0hJbQElpCS2gFraAVtIJW0ApaQStop0uOZ2raWve64umSHQ/a8UBNW+ted3RiEDsxqVBEaKdL1r89XbIjtAltQpvQJrQJbUKb0OY1trXudceLtta97ujEIHZiEos4iNfY1rrXRTtdsqMRnRhEaA1ag9agNWj2IDI2Y2zG2Aza6ZIdk1jEQYTm0ByaQ3Nozkw6Y3PG5ozNoTnHLZjJYCaDmQxoAS2gBbSAFsxkMLbO2Dpj69A6x60zk52Z7Mxkh9ahdWgJLaElM5mMLRlbMraElhy3ZCaTmSxmsqAVtIJW0ApaMZPF2IqxFWPDJWvd647M5GAmBzOJS9a61x2hDWi4ZOKSiUsmLpm4ZK17XbTJccMlE5dMXLLWvR4VfK173bERjejEIHZiEosomq91ryteLvHH5RJ/XC7xte51VWjQGrQGrUG7XOKPxtiMsRljM2jmxCB2YhKhGTSD5tAcmjOTzticsTljc2heRGbSmclgJgNaQAtoAS2gBTMZjC0YWzC2Dq1z3Doz2ZnJzkx2aB1ah9ahdWjJTCZjS8aWjC2hJcctmclkJpOZTGgFraAVtIJWzGQxtmJsxdgKWnHcBjM5mMnBTA5oA9qANqANaIOZHIxtMrbJ2Ca0yXGbzORkJiczOaFNaLik4ZKGSxouabik4ZKGS9a615O21r3uOIjXTDZcsta9rgoNGi5puKThkoZLGi5puKThkrXuddGsEY3oxCBCM2i4pOGShksaLmm4pOGShkvWutdF805kJnFJwyVr3euqENBwScMlDZc0XNJwScMlDZesda+LFhw3XNJwScMlrUPr0HBJwyUNlzRc0nBJwyUNl7SElhw3XNJwScMla93rrgANlzRc0nBJwyUNlzRc0nDJWve6aMVxwyUNlzRc0ga0AQ2XNFzScEnDJQ2XNFzScMla97pok+OGSxouabikTWgTGi5puKThEsMlhksMlxguWeteT9pa97pjEos4iNAaNFxiuMRwieESwyWGSwyXrHWvi9au42a4xHCJ4RIzaAYNlxguMVxiuMRwieESwyVr3euiuROZSVxiuMQcmkPDJYZLDJcYLjFcYrjEcMla97powXHDJYZLDJdYh9ah4RLDJYZLDJcYLjFcYrhkrXtdtOS44RLDJYZLLKElNFxiuMRwieESwyWGSwyXrHWvi1YcN1xiuMRwiRU0XGJclxjXJYZLbEAb0AY0XGK4xHCJcV2y1r0ev+XE17rXrDM6MYidmMQiDuJUXOted2xEIzoxiJ2YxCIOIrQGrUFr0Bq0Bq1Ba9AatAatQTNoBs2gGTSDZtAMmkFbLplnnFdcLlnxoNXjjEZ0YhA7MalQRGinS9a/PV2yI7SAFtACWkALaAEtoAVj64ytQ+vQOrQOrUM7XbJjEQeRsSW05ZIVjejEIEJLaAktoSW0YiaLsRVjK8ZW0JZLVmQmi5ksZrKgDWgD2oA2oA1mcjC2wdgGYxvQBsdtMpOTmZzM5IQ2oU1oE9qENpnJeY1trXvdsREv2lr3umMQOzGJRYVBhNagNWjNiE4MYidCa0UcxGsm17rXHaEZNINm0AyaJZGxGWMzxoZL1rrXHZlJZyadmcQla93rjtAcGi4JXBK4JHBJ4JK17nXRguOGSwKXBC5Z615XhQ4NlwQuCVwSuCRwSeCSwCVr3euidY4bLglcErhkrXtdFRIaLglcErgkcEngksAlgUvWutdFK44bLglcErhkrXvdFaDhksAlgUsClwQuCVwSuGSte120wXHDJYFLApesda+rwoSGSwKXBC4JXBK4JHBJ4JK17vWkrXWvOxrRiUHsVEhiEQcRGi7puKTjko5L1rrXRWudmMQiDiI0g4ZLOi7puKTjko5LOi7puKRzXdK5Lum4pOOSjks61yWd65KOSzou6bik45KOSzou6bhkrXtdtOC44ZKOSzouWetedwVouKTjko5LOi7puKTjko5L1rrXRescN1zScUnHJWvd66qQ0HBJxyUdl3Rc0nFJxyUdl6x1r4tWHDdc0nFJxyVr3euuAA2XdFzScUnHJR2XdFzSccla97pog+OGSzou6bhkrXtdFSY0XNJxScclHZd0XNJxSccla93ros3ruCUuSVySuGStez0rrHWvO3ZiEos4iNfYEpckLlnrXhetOTGInZhEaA0aLklckrgkcUniksQliUvWutdFsyIOIjOJS5LPOMlnnMQliUsSlyQuSVySuCRxyVr3umjBccMliUsSlySfcda61x2h4ZLEJYlLEpckLklcsta9LlrnuOGSxCWJS5LPOGvd647QcEniksQliUsSlyQuWeteFy05brgkcUnikuQzzlr3uiM0XJK4JHFJ4pLEJYlL1rrXRRscN1ySuCRxSfIZZ6173REaLklckrgkcUniksQla93rok2OGy5JXFK4pPiMs9a97ujEIHZiEos4iNfY1rrXRWuNaEQnBhFag4ZLCpcULilcUrikcEnhkrXuddGsE5NYxEGEhkuK65LiuqRwSfEZZ6173REaLilcUrikuC5Z617LzniO7aywPuOsGMROTGIRB3FecblkxYM22hmN6MQgdmISiziI84qnS3aEltASWkJLaAntdMnx23N9rXvdkbEVY1ufcVZkJouZLGaymMliJouZLGayoA1oA9qANqANaAPaYGyDmRzM5GAmJzM5mcnJTE5mcjKTk5mc0Ca0CW1etLXudcdGNM36Wvd6jmKte92xE5NYxEG8ZnKte92xEY0IrUFr0Bq0Bq1Ba9CMsRljMyM6MYidmMQiDiIz6dAcmkNzaA7NoZ0uWbN+umSMMw7ivOLpkh0b0YhODGInHrTj10/7Wve64yDOK54u2bERjejEIHYitA6tQ+vQElpCO1zyvMF4RifGEeuMnZjEIg7ivOLhEsVGNKIToRW0glbQClpBG9AGtAFtQBvQBrQBbUAb0Aa0CW1Cm9AmtAltQpvQJrQJbV60c92rYiMa0YlB7MQkFnEQoTVoDdrhkudd2zMeNOtnDGInJrGIgziveLhEsRGNCM2gGTSDZtAMmkFzaA7NoTk0h+bQHJpDc2gOLaAFtIAW0AJaQAtoAS2gBbQO7XDJ8572GY3oxCB2YhKLOIjziodLFKEltISW0BJaQktoCS2hFbSCVtAKWkEraAWtoBW0gjagDWgD2oA2oA1oA9qANqANaBPahDahTWgT2oQ2oU1oE9oULc51r4qNaEQnBrETk1jEQYTWoDVoDVqD1qA1aA1ag9agNWgGzaAZNINm0AyaQTNoBs2gOTSH5tAcmkNzaA7NoTk0hxbQAlpAC2gBLaAFtIAW0AJah9ahdWgdWofWoXVoHVqH1qEltISW0BJaQktoCS2hJbSEVtAKWkEraAWtoBW0glbQCtqANqANaAPagDagDWgD2oA2oE1oE9qENqFNaBPahDahTWi4pOGShksaLmm4pOGShksaLmm4pOGShksaLmm4pOGShksaLmm4pOGShksaLmm4pOGShksaLmm4pOGShksaLmm4pOGShksaLmm4pOGShksaLmm4pOGShksaLmm4pOGShksaLmm4pOGShksaLmm4pOGShksaLmnLJXnGgxbr/zoxiJ140GKe8aAdT5WKc92r4kHLM54u2bERjXjQsp8xiActxxkPWq1/W8SDVv7Lt9/873c///Ddn3/8/n+++cM/n3/8r3/89Je///DXn/Yf//7//qa/+fPPP/z44w///ae//fzXv3z/n//4+fs//fjXvxx/983j+M9xPv9Hy2+t/fH5j9v+//9hvX9rFX98vm8ff//o3z5P4eefzn9uXt9a2PHHdvwxni+Pcbze9PrnWfxt+GO//hj0cwR6/fPy9NvnxYde/3w/+/bp/eP1frz+eIX78+X698/5j3n8dfzrHne94nnN6dcexuPb6Mdf5/WK56cGyz/+8ssvf/zl/wM=",
2020
2020
  "verification_key": "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"
2021
2021
  },
2022
2022
  {
@@ -3868,7 +3868,7 @@
3868
3868
  }
3869
3869
  },
3870
3870
  "bytecode": "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bc5dujbnLl2bc5euzblL1+bcpWtz7tK1OXfp2py7dG3OXbo25y5dm3OXrs25S9fm3KVrc+7StTl36dozOLacu3Rtzl26NucuXZtzl67NuUvX5tyla3Pu0rU5d+nanLt0bc5dujbpF145d+nanLt0bc5dujbnLl2bc5euzblL1+bcpWtz7tK1OXfp2py7dG3OXbo25y5dm3OXrs25S9fm3KVrc+7StTl36dqcu3Rtzl26NucuXXslx5Zzl67NuUvX5tyla3Pu0rU5d+nanLt0bc5dujbnLl2bc5euzblL1+bcpWtz7tK1OXfp2py7dG3OXbo25y5dm3OXrs25S9fm3KVrc+7StTl36dqcu3Rtzl269gGOLecuXZtzl67NuUvX5tyla3Pu0rU5d+nanLt07RMcW85dujbnLl2bc5euzblL1+bcpWtz7tK1OXfp2py7dG3OXbo25y5dm3OXrs25S9fm3KXr4dyl6+Hcpevh3KXr4dyl6+Hcpevh3KXr4dyl6+Hcpevh3KXr4dyl6+Hcpevh3KXr4dyl6+Hcpevh3KXrSeLY5uHY5uXY5uPYcu6/9XDuv/Vw7r/1cO6/9XDuv/Vw7r/1cO6/9XDuv/Vw7r/1cO6/9XDuv/Vw7r/1cO6/9XDuv/Vw7r/1cO6/9XDuv/Vw7r/1cO6/9XDuv/Vw7r/1cO6/9XDuv/Vw7r/1cO6/9XDuv/Vw7r/1cO6/9XDuv/Vw7r/1cO6/9ZTj2HLuv/Vw7r/1cO6/9XDuv/Vw7r/1cO6/9XDuv/Vw7r/1cO6/9XDuv/Vw7r/1cO6/9XDuv/U8wrHl3H/r4dx/6+Hcf+vh3H/r4dx/6+Hcf+vh3H/r4dx/6+Hcf+vh3H/r4dx/6+Hcf+vh3H/r4dx/6+Hcf+vh3H/r4dx/66nNseXcf+vh3H/r4dx/6+Hcf+vh3H/r4dx/6+Hcf+vh3H/r4dx/6+Hcf+vh3H/r4dx/6+Hcf+vh3H/r4dx/6+Hcf+vh3H/r4dx/6+Hcf+vh3H/r4dx/6+Hcf+vh3H/r4dx/6+Hcf+vh3H/r4dx/6+Hcf+vh3H/r4dx/6+Hcf+tJ5dhy7r/1cO6/9XDuv/Vw7r/1cO6/9XDuv/Vw7r/1cO6/9XDuv/Vw7r/1cO6/9XDuv/Vw7r/1cO6/9XDuv/Vw7r/1cO6/9XDuv/Vw7r/1cO6/9XDuv/Vw7r/1cO6/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",
3871
- "debug_symbols": "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c4/K9ogO2aE67Nkw6crSlbsHrXvQugete9C6B6170LoHz2/YPSvro4N00A7WoStrV+4etO5B6x607kHrHrTuQesePL+796xs3qFno3vQugfP7+5dz+rK3YPWPWjdg9Y9aN2D1j1o3YPn9/uelb3nuXvQugete/D8ft/zWaMrdw9a96B1D1r3oHUPWvegdQ9adOXoee4etO5B6x60vtS0vta07kHrHrTuQesetO5B6x607sHzW4HPytnz3D1o3YPWPWh94WnVlbsHrXvQugete9C6B6170LoHz68HPivPnufuQesetO5B68tQm125e9C6B6170LoHvXvQuwe9e9Afu7I/vMPoEB2yQ/WzunL3oHcPevegdw9696B3D3r3oEtXluqwZ8O7B7170Pta1LUrdw9696B3D3r3oHcPevegdw+6dWXTDj0b3YPePeh9LerWlbsHvXvQuwe9e9C7B7170LsH3buy9zx3D3r3oHcPel+L+ujK3YPePejdg9496N2D3j3o3YM+unL0PHcPevegdw96X4t696D366D366B3D3pfi3p25X7P592D3j3o3YPer4N+9mAe4fiO9scRqsPc4fza9zNIB+1gHbzD6BAdunJ15erKsyvPrjy78uzKsyvPrjy78uzKsyvPXXk8Hh2kg3awDt5hdIgO2aE6dGXpytKVpSsfPRjnpwLeYXQ4KtsRskN1mDucv3PiDLKfdf7WiTN05fP3Tpz/ZnToytqVtStrV7aubF3ZurJ1Zetjtj5m68rWla0rW1f2rnz04ArawTr0MXtXPnpwhexQHeYOoyuPrjy68ujKoyuPno3Rxzz6mEcf8+jKRw+u0LMRPRvRsxFdObpydOXoytGVo2cj+5izjzn7mLMrZ89z9mxkz0b2bGRXzq5cXbm6cnXl6tmoPubqY64+5urK1fNcPRuzZ2P2bMyuPLvy7MqzK8+uPHs2Zh/z3Mccj0eHXTke2sE6eIfRIfpZ2aE6dGXpyiIdtIN18A5dWaJDdqgOezaiezC0K2tX1q7cPRjdg9E9GN2D0T0Y2pXt0aFno3swugfDurJ15e7B6B6M7sHoHozuwegejO7B8K7sPc/dg9E9GN2D4V3Zu3L3YHQPRvdgdA9G92B0D0b3YIyuPHqeuwejezC6ByO6cnTl7sHoHozuwegejO7B6B6M7sHIrpw9z92D0T0Y3YOR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QQxiEos4r3i6ZEchQhvQBrQBbUAb0Aa0AS2gBbSAFtACWkALaAEtoAW0hJbQElpCS2gJLaEltNMlx7eCybmvdcfTJTuetDyjEo3oxEEMKiQR2umS9W9Pl+wIbUKb0Ca0CW1Cm9AmtNlj07Xvdcem6dr3uqMRnTiIQUxiEecVBdrpkh2VaEQnQhNoAk2gCTR9EBmbMjZlbArtdMmOQUxiEaEZNINm0AyaMZPG2IyxGWMzaMa6OTPpzKQzkw7NoTk0h+bQnJl0xjYY22BsA9pg3QYzOZjJwUwOaAPagBbQAlowk8HYgrEFYwtowboFMxnMZDKTCS2hJbSEltCSmUzGlowtGVtBK9atmMliJouZLGgFraAVtII2mcnJ2CZjm4xtQpus22QmJzM5mcl50da+1x2FqEQjOnEQg5jEi7b2va6ISwSXCC5Z+15XBYGGSwSXCC4RXCK4RHCJ4JK173XR1IhOHMQgQlNouERwieASwSWCSwSXCC5Z+14XzZLITOISwSVr3+uq4NBwieASwSWCSwSXCC4RXLL2vS7aYN1wieASwSVr3+uuAA2XCC4RXCK4RHCJ4BLBJWvf66IF64ZLBJcILln7XleFhIZLBJcILhFcIrhEcIngEkloybrhEsElgkukoBU0XCK4RHCJ4BLBJYJLBJesfa+LNlk3XCK4RHDJ2ve6K0DDJYpLFJcoLlFcorhEccna93rS1r7XHYt4zaTikrXvdVUQaLhEcYniEsUliksUlyguWfteF02FqEQjOhGaQsMliksUlyguUVyiuERxydr3umg2iMwkLlFcsva9rgoODZcoLlFcorhEcYniEsUla9/rojnrhksUlyguWfteV4UBDZcoLlFcorhEcYniEsUla9/rogXrhksUlyguWftedwVouERxieISxSWKSxSXKC5Z+14XLVk3XKK4RHGJFrSChksUlyguUVyiuERxieKSte910SbrhksUlygu0QltQsMliksUlxguMVxiuMRwydr3etLWvtcdg5jEIkITaLjEcInhEsMlhksMlxguWfteF02udTNcYrjEcInxHmfte90RGi4xXGK4xHCJ4RLDJWvf66KZEZlJXGK4xHiPs/a97ggNlxguMVxiuMRwieGSte910Zx1wyWGSwyXGO9x1r7XHaHhEsMlhksMlxguMVyy9r0uWrBuuMRwieES4z3O2ve6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",
3871
+ "debug_symbols": "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",
3872
3872
  "verification_key": "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"
3873
3873
  },
3874
3874
  {
@@ -3941,7 +3941,7 @@
3941
3941
  }
3942
3942
  },
3943
3943
  "bytecode": "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",
3944
- "debug_symbols": "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"
3944
+ "debug_symbols": "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"
3945
3945
  }
3946
3946
  ],
3947
3947
  "outputs": {
@@ -4242,23 +4242,23 @@
4242
4242
  "path": "std/panic.nr",
4243
4243
  "source": "pub fn panic<T, U>(message: T) -> U\nwhere\n T: StringLike,\n{\n assert(false, message);\n crate::mem::zeroed()\n}\n\ntrait StringLike {}\n\nimpl<let N: u32> StringLike for str<N> {}\nimpl<let N: u32, T> StringLike for fmtstr<N, T> {}\n"
4244
4244
  },
4245
- "436": {
4245
+ "441": {
4246
4246
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/type_packing.nr",
4247
4247
  "source": "use crate::traits::Packable;\n\nglobal BOOL_PACKED_LEN: u32 = 1;\nglobal U8_PACKED_LEN: u32 = 1;\nglobal U16_PACKED_LEN: u32 = 1;\nglobal U32_PACKED_LEN: u32 = 1;\nglobal U64_PACKED_LEN: u32 = 1;\nglobal U128_PACKED_LEN: u32 = 1;\nglobal FIELD_PACKED_LEN: u32 = 1;\nglobal I8_PACKED_LEN: u32 = 1;\nglobal I16_PACKED_LEN: u32 = 1;\nglobal I32_PACKED_LEN: u32 = 1;\nglobal I64_PACKED_LEN: u32 = 1;\n\nimpl Packable for bool {\n let N: u32 = BOOL_PACKED_LEN;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n [self as Field]\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> bool {\n (fields[0] as u1) != 0\n }\n}\n\nimpl Packable for u8 {\n let N: u32 = U8_PACKED_LEN;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n [self as Field]\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> Self {\n fields[0] as u8\n }\n}\n\nimpl Packable for u16 {\n let N: u32 = U16_PACKED_LEN;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n [self as Field]\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> Self {\n fields[0] as u16\n }\n}\n\nimpl Packable for u32 {\n let N: u32 = U32_PACKED_LEN;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n [self as Field]\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> Self {\n fields[0] as u32\n }\n}\n\nimpl Packable for u64 {\n let N: u32 = U64_PACKED_LEN;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n [self as Field]\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> Self {\n fields[0] as u64\n }\n}\n\nimpl Packable for u128 {\n let N: u32 = U128_PACKED_LEN;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n [self as Field]\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> Self {\n fields[0] as u128\n }\n}\n\nimpl Packable for Field {\n let N: u32 = FIELD_PACKED_LEN;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n [self]\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> Self {\n fields[0]\n }\n}\n\nimpl Packable for i8 {\n let N: u32 = I8_PACKED_LEN;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n [self as u8 as Field]\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> Self {\n fields[0] as u8 as i8\n }\n}\n\nimpl Packable for i16 {\n let N: u32 = I16_PACKED_LEN;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n [self as u16 as Field]\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> Self {\n fields[0] as u16 as i16\n }\n}\n\nimpl Packable for i32 {\n let N: u32 = I32_PACKED_LEN;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n [self as u32 as Field]\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> Self {\n fields[0] as u32 as i32\n }\n}\n\nimpl Packable for i64 {\n let N: u32 = I64_PACKED_LEN;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n [self as u64 as Field]\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> Self {\n fields[0] as u64 as i64\n }\n}\n\nimpl<T, let M: u32> Packable for [T; M]\nwhere\n T: Packable,\n{\n let N: u32 = M * <T as Packable>::N;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n let mut result: [Field; Self::N] = std::mem::zeroed();\n for i in 0..M {\n let serialized = self[i].pack();\n for j in 0..<T as Packable>::N {\n result[i * <T as Packable>::N + j] = serialized[j];\n }\n }\n result\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> Self {\n let mut reader = crate::utils::reader::Reader::new(fields);\n let mut result: [T; M] = std::mem::zeroed();\n reader.read_struct_array::<T, <T as Packable>::N, M>(Packable::unpack, result)\n }\n}\n\n#[test]\nfn test_u16_packing() {\n let a: u16 = 10;\n assert_eq(a, u16::unpack(a.pack()));\n}\n\n#[test]\nfn test_i8_packing() {\n let a: i8 = -10;\n assert_eq(a, i8::unpack(a.pack()));\n}\n\n#[test]\nfn test_i16_packing() {\n let a: i16 = -10;\n assert_eq(a, i16::unpack(a.pack()));\n}\n\n#[test]\nfn test_i32_packing() {\n let a: i32 = -10;\n assert_eq(a, i32::unpack(a.pack()));\n}\n\n#[test]\nfn test_i64_packing() {\n let a: i64 = -10;\n assert_eq(a, i64::unpack(a.pack()));\n}\n"
4248
4248
  },
4249
- "449": {
4249
+ "454": {
4250
4250
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/serde/src/reader.nr",
4251
4251
  "source": "pub struct Reader<let N: u32> {\n data: [Field; N],\n offset: u32,\n}\n\nimpl<let N: u32> Reader<N> {\n pub fn new(data: [Field; N]) -> Self {\n Self { data, offset: 0 }\n }\n\n pub fn read(&mut self) -> Field {\n let result = self.data[self.offset];\n self.offset += 1;\n result\n }\n\n pub fn read_u32(&mut self) -> u32 {\n self.read() as u32\n }\n\n pub fn read_u64(&mut self) -> u64 {\n self.read() as u64\n }\n\n pub fn read_bool(&mut self) -> bool {\n self.read() != 0\n }\n\n pub fn read_array<let K: u32>(&mut self) -> [Field; K] {\n let mut result = [0; K];\n for i in 0..K {\n result[i] = self.data[self.offset + i];\n }\n self.offset += K;\n result\n }\n\n pub fn read_struct<T, let K: u32>(&mut self, deserialise: fn([Field; K]) -> T) -> T {\n let result = deserialise(self.read_array());\n result\n }\n\n pub fn read_struct_array<T, let K: u32, let C: u32>(\n &mut self,\n deserialise: fn([Field; K]) -> T,\n mut result: [T; C],\n ) -> [T; C] {\n for i in 0..C {\n result[i] = self.read_struct(deserialise);\n }\n result\n }\n\n pub fn peek_offset(&mut self, offset: u32) -> Field {\n self.data[self.offset + offset]\n }\n\n pub fn advance_offset(&mut self, offset: u32) {\n self.offset += offset;\n }\n\n pub fn finish(self) {\n assert_eq(self.offset, self.data.len(), \"Reader did not read all data\");\n }\n}\n"
4252
4252
  },
4253
- "450": {
4253
+ "455": {
4254
4254
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/serde/src/serialization.nr",
4255
4255
  "source": "use crate::{reader::Reader, writer::Writer};\n\n// docs:start:serialize\n/// Trait for serializing Noir types into arrays of Fields.\n///\n/// An implementation of the Serialize trait has to follow Noir's intrinsic serialization (each member of a struct\n/// converted directly into one or more Fields without any packing or compression). This trait (and Deserialize) are\n/// typically used to communicate between Noir and TypeScript (via oracles and function arguments).\n///\n/// # On Following Noir's Intrinsic Serialization\n/// When calling a Noir function from TypeScript (TS), first the function arguments are serialized into an array\n/// of fields. This array is then included in the initial witness. Noir's intrinsic serialization is then used\n/// to deserialize the arguments from the witness. When the same Noir function is called from Noir this Serialize trait\n/// is used instead of the serialization in TS. For this reason we need to have a match between TS serialization,\n/// Noir's intrinsic serialization and the implementation of this trait. If there is a mismatch, the function calls\n/// fail with an arguments hash mismatch error message.\n///\n/// # Associated Constants\n/// * `N` - The length of the output Field array, known at compile time\n///\n/// # Example\n/// ```\n/// impl<let N: u32> Serialize for str<N> {\n/// let N: u32 = N;\n///\n/// fn serialize(self) -> [Field; Self::N] {\n/// let mut writer: Writer<Self::N> = Writer::new();\n/// self.stream_serialize(&mut writer);\n/// writer.finish()\n/// }\n///\n/// fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n/// let bytes = self.as_bytes();\n/// for i in 0..bytes.len() {\n/// writer.write(bytes[i] as Field);\n/// }\n/// }\n/// }\n/// ```\n#[derive_via(derive_serialize)]\npub trait Serialize {\n let N: u32;\n\n fn serialize(self) -> [Field; Self::N];\n\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>);\n}\n\n/// Generates a `Serialize` trait implementation for a struct type.\n///\n/// # Parameters\n/// - `s`: The struct type definition to generate the implementation for\n///\n/// # Returns\n/// A quoted code block containing the trait implementation\n///\n/// # Example\n/// For a struct defined as:\n/// ```\n/// struct Log<N> {\n/// fields: [Field; N],\n/// length: u32\n/// }\n/// ```\n///\n/// This function generates code equivalent to:\n/// ```\n/// impl<let N: u32> Serialize for Log<N> {\n/// let N: u32 = <[Field; N] as Serialize>::N + <u32 as Serialize>::N;\n///\n/// fn serialize(self) -> [Field; Self::N] {\n/// let mut writer: Writer<Self::N> = Writer::new();\n/// self.stream_serialize(&mut writer);\n/// writer.finish()\n/// }\n///\n/// #[inline_always]\n/// fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n/// Serialize::stream_serialize(self.fields, writer);\n/// Serialize::stream_serialize(self.length, writer);\n/// }\n/// }\n/// ```\npub comptime fn derive_serialize(s: TypeDefinition) -> Quoted {\n let typ = s.as_type();\n let nested_struct = typ.as_data_type().unwrap();\n\n // We care only about the name and type so we drop the last item of the tuple\n let params = nested_struct.0.fields(nested_struct.1).map(|(name, typ, _)| (name, typ));\n\n // Generates the generic parameter declarations (to be placed after the `impl` keyword) and the `where` clause\n // for the `Serialize` trait.\n let generics_declarations = get_generics_declarations(s);\n let where_serialize_clause = get_where_trait_clause(s, quote {Serialize});\n\n let params_len_quote = get_params_len_quote(params);\n\n let function_body = params\n .map(|(name, _typ): (Quoted, Type)| {\n quote {\n $crate::serialization::Serialize::stream_serialize(self.$name, writer);\n }\n })\n .join(quote {});\n\n quote {\n impl$generics_declarations $crate::serialization::Serialize for $typ\n $where_serialize_clause\n {\n let N: u32 = $params_len_quote;\n\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: $crate::writer::Writer<Self::N> = $crate::writer::Writer::new();\n $crate::serialization::Serialize::stream_serialize(self, &mut writer);\n writer.finish()\n }\n\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut $crate::writer::Writer<K>) {\n $function_body\n }\n }\n }\n}\n\n// docs:start:deserialize\n/// Trait for deserializing Noir types from arrays of Fields.\n///\n/// An implementation of the Deserialize trait has to follow Noir's intrinsic serialization (each member of a struct\n/// converted directly into one or more Fields without any packing or compression). This trait is typically used when\n/// deserializing return values from function calls in Noir. Since the same function could be called from TypeScript\n/// (TS), in which case the TS deserialization would get used, we need to have a match between the 2.\n///\n/// # Associated Constants\n/// * `N` - The length of the input Field array, known at compile time\n///\n/// # Example\n/// ```\n/// impl<let M: u32> Deserialize for str<M> {\n/// let N: u32 = M;\n///\n/// fn deserialize(fields: [Field; Self::N]) -> Self {\n/// let mut reader = Reader::new(fields);\n/// let result = Self::stream_deserialize(&mut reader);\n/// reader.finish();\n/// result\n/// }\n///\n/// fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n/// let mut bytes = [0 as u8; M];\n/// for i in 0..M {\n/// bytes[i] = reader.read() as u8;\n/// }\n/// str::<M>::from(bytes)\n/// }\n/// }\n/// ```\n#[derive_via(derive_deserialize)]\npub trait Deserialize {\n let N: u32;\n\n fn deserialize(fields: [Field; Self::N]) -> Self;\n\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self;\n}\n\n/// Generates a `Deserialize` trait implementation for a given struct `s`.\n///\n/// # Arguments\n/// * `s` - The struct type definition to generate the implementation for\n///\n/// # Returns\n/// A `Quoted` block containing the generated trait implementation\n///\n/// # Requirements\n/// Each struct member type must implement the `Deserialize` trait (it gets used in the generated code).\n///\n/// # Example\n/// For a struct like:\n/// ```\n/// struct MyStruct {\n/// x: AztecAddress,\n/// y: Field,\n/// }\n/// ```\n///\n/// This generates:\n/// ```\n/// impl Deserialize for MyStruct {\n/// let N: u32 = <AztecAddress as Deserialize>::N + <Field as Deserialize>::N;\n///\n/// fn deserialize(fields: [Field; Self::N]) -> Self {\n/// let mut reader = Reader::new(fields);\n/// let result = Self::stream_deserialize(&mut reader);\n/// reader.finish();\n/// result\n/// }\n///\n/// #[inline_always]\n/// fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n/// let x = <AztecAddress as Deserialize>::stream_deserialize(reader);\n/// let y = <Field as Deserialize>::stream_deserialize(reader);\n/// Self { x, y }\n/// }\n/// }\n/// ```\npub comptime fn derive_deserialize(s: TypeDefinition) -> Quoted {\n let typ = s.as_type();\n let nested_struct = typ.as_data_type().unwrap();\n let params = nested_struct.0.fields(nested_struct.1);\n\n // Generates the generic parameter declarations (to be placed after the `impl` keyword) and the `where` clause\n // for the `Deserialize` trait.\n let generics_declarations = get_generics_declarations(s);\n let where_deserialize_clause = get_where_trait_clause(s, quote {Deserialize});\n\n // The following will give us:\n // <type_of_struct_member_1 as Deserialize>::N + <type_of_struct_member_2 as Deserialize>::N + ...\n // (or 0 if the struct has no members)\n let right_hand_side_of_definition_of_n = if params.len() > 0 {\n params\n .map(|(_, param_type, _): (Quoted, Type, Quoted)| {\n quote {\n <$param_type as $crate::serialization::Deserialize>::N\n }\n })\n .join(quote {+})\n } else {\n quote {0}\n };\n\n // For structs containing a single member, we can enhance performance by directly deserializing the input array,\n // bypassing the need for loop-based array construction. While this optimization yields significant benefits in\n // Brillig where the loops are expected to not be optimized, it is not relevant in ACIR where the loops are\n // expected to be optimized away.\n let function_body = if params.len() > 1 {\n // This generates deserialization code for each struct member and concatenates them together.\n let deserialization_of_struct_members = params\n .map(|(param_name, param_type, _): (Quoted, Type, Quoted)| {\n quote {\n let $param_name = <$param_type as Deserialize>::stream_deserialize(reader);\n }\n })\n .join(quote {});\n\n // We join the struct member names with a comma to be used in the `Self { ... }` syntax\n // This will give us e.g. `a, b, c` for a struct with three fields named `a`, `b`, and `c`.\n let struct_members = params\n .map(|(param_name, _, _): (Quoted, Type, Quoted)| quote { $param_name })\n .join(quote {,});\n\n quote {\n $deserialization_of_struct_members\n\n Self { $struct_members }\n }\n } else if params.len() == 1 {\n let param_name = params[0].0;\n quote {\n Self { $param_name: $crate::serialization::Deserialize::stream_deserialize(reader) }\n }\n } else {\n quote {\n Self {}\n }\n };\n\n quote {\n impl$generics_declarations $crate::serialization::Deserialize for $typ\n $where_deserialize_clause\n {\n let N: u32 = $right_hand_side_of_definition_of_n;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = $crate::reader::Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut $crate::reader::Reader<K>) -> Self {\n $function_body\n }\n }\n }\n}\n\n/// Generates a quoted expression that computes the total serialized length of function parameters.\n///\n/// # Parameters\n/// * `params` - An array of tuples where each tuple contains a quoted parameter name and its Type. The type needs\n/// to implement the Serialize trait.\n///\n/// # Returns\n/// A quoted expression that evaluates to:\n/// * `0` if there are no parameters\n/// * `(<type1 as Serialize>::N + <type2 as Serialize>::N + ...)` for one or more parameters\ncomptime fn get_params_len_quote(params: [(Quoted, Type)]) -> Quoted {\n if params.len() == 0 {\n quote { 0 }\n } else {\n let params_quote_without_parentheses = params\n .map(|(_, param_type): (Quoted, Type)| {\n quote {\n <$param_type as $crate::serialization::Serialize>::N\n }\n })\n .join(quote {+});\n quote { ($params_quote_without_parentheses) }\n }\n}\n\ncomptime fn get_generics_declarations(s: TypeDefinition) -> Quoted {\n let generics = s.generics();\n\n if generics.len() > 0 {\n let generics_declarations_items = generics\n .map(|(name, maybe_integer_typ)| {\n // The second item in the generics tuple is an Option of an integer type that is Some only if\n // the generic is numeric.\n if maybe_integer_typ.is_some() {\n // The generic is numeric, so we return a quote defined as e.g. \"let N: u32\"\n let integer_type = maybe_integer_typ.unwrap();\n quote {let $name: $integer_type}\n } else {\n // The generic is not numeric, so we return a quote containing the name of the generic (e.g. \"T\")\n quote {$name}\n }\n })\n .join(quote {,});\n quote {<$generics_declarations_items>}\n } else {\n // The struct doesn't have any generics defined, so we just return an empty quote.\n quote {}\n }\n}\n\ncomptime fn get_where_trait_clause(s: TypeDefinition, trait_name: Quoted) -> Quoted {\n let generics = s.generics();\n\n // The second item in the generics tuple is an Option of an integer type that is Some only if the generic is\n // numeric.\n let non_numeric_generics =\n generics.filter(|(_, maybe_integer_typ)| maybe_integer_typ.is_none());\n\n if non_numeric_generics.len() > 0 {\n let non_numeric_generics_declarations =\n non_numeric_generics.map(|(name, _)| quote {$name: $trait_name}).join(quote {,});\n quote {where $non_numeric_generics_declarations}\n } else {\n // There are no non-numeric generics, so we return an empty quote.\n quote {}\n }\n}\n"
4256
4256
  },
4257
- "452": {
4257
+ "457": {
4258
4258
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/serde/src/type_impls.nr",
4259
- "source": "use crate::{reader::Reader, serialization::{Deserialize, Serialize}, writer::Writer};\nuse std::embedded_curve_ops::EmbeddedCurvePoint;\nuse std::embedded_curve_ops::EmbeddedCurveScalar;\n\nglobal U1_SERIALIZED_LEN: u32 = 1;\nglobal BOOL_SERIALIZED_LEN: u32 = 1;\nglobal U8_SERIALIZED_LEN: u32 = 1;\nglobal U16_SERIALIZED_LEN: u32 = 1;\nglobal U32_SERIALIZED_LEN: u32 = 1;\nglobal U64_SERIALIZED_LEN: u32 = 1;\nglobal U128_SERIALIZED_LEN: u32 = 1;\nglobal FIELD_SERIALIZED_LEN: u32 = 1;\nglobal I8_SERIALIZED_LEN: u32 = 1;\nglobal I16_SERIALIZED_LEN: u32 = 1;\nglobal I32_SERIALIZED_LEN: u32 = 1;\nglobal I64_SERIALIZED_LEN: u32 = 1;\n\nimpl Serialize for bool {\n let N: u32 = BOOL_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self as Field);\n }\n}\n\nimpl Deserialize for bool {\n let N: u32 = BOOL_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> bool {\n reader.read() != 0\n }\n}\n\nimpl Serialize for u1 {\n let N: u32 = U1_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self as Field);\n }\n}\n\nimpl Deserialize for u1 {\n let N: u32 = U1_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n reader.read() as u1\n }\n}\n\nimpl Serialize for u8 {\n let N: u32 = U8_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self as Field);\n }\n}\n\nimpl Deserialize for u8 {\n let N: u32 = U8_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n reader.read() as u8\n }\n}\n\nimpl Serialize for u16 {\n let N: u32 = U16_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self as Field);\n }\n}\n\nimpl Deserialize for u16 {\n let N: u32 = U16_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n reader.read() as u16\n }\n}\n\nimpl Serialize for u32 {\n let N: u32 = U32_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self as Field);\n }\n}\n\nimpl Deserialize for u32 {\n let N: u32 = U32_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n reader.read() as u32\n }\n}\n\nimpl Serialize for u64 {\n let N: u32 = U64_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self as Field);\n }\n}\n\nimpl Deserialize for u64 {\n let N: u32 = U64_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n reader.read() as u64\n }\n}\n\nimpl Serialize for u128 {\n let N: u32 = U128_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self as Field);\n }\n}\n\nimpl Deserialize for u128 {\n let N: u32 = U128_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n reader.read() as u128\n }\n}\n\nimpl Serialize for Field {\n let N: u32 = FIELD_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self);\n }\n}\n\nimpl Deserialize for Field {\n let N: u32 = FIELD_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n reader.read()\n }\n}\n\nimpl Serialize for i8 {\n let N: u32 = I8_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self as u8 as Field);\n }\n}\n\nimpl Deserialize for i8 {\n let N: u32 = I8_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n reader.read() as u8 as i8\n }\n}\n\nimpl Serialize for i16 {\n let N: u32 = I16_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self as u16 as Field);\n }\n}\n\nimpl Deserialize for i16 {\n let N: u32 = I16_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n reader.read() as u16 as i16\n }\n}\n\nimpl Serialize for i32 {\n let N: u32 = I32_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self as u32 as Field);\n }\n}\n\nimpl Deserialize for i32 {\n let N: u32 = I32_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n reader.read() as u32 as i32\n }\n}\n\nimpl Serialize for i64 {\n let N: u32 = I64_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self as u64 as Field);\n }\n}\n\nimpl Deserialize for i64 {\n let N: u32 = I64_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n reader.read() as u64 as i64\n }\n}\n\nimpl<T, let M: u32> Serialize for [T; M]\nwhere\n T: Serialize,\n{\n let N: u32 = <T as Serialize>::N * M;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n for i in 0..M {\n self[i].stream_serialize(writer);\n }\n }\n}\n\nimpl<T, let M: u32> Deserialize for [T; M]\nwhere\n T: Deserialize,\n{\n let N: u32 = <T as Deserialize>::N * M;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n let mut result: [T; M] = std::mem::zeroed();\n for i in 0..M {\n result[i] = T::stream_deserialize(reader);\n }\n result\n }\n}\n\nimpl<T> Serialize for Option<T>\nwhere\n T: Serialize,\n{\n let N: u32 = <T as Serialize>::N + 1;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write_bool(self.is_some());\n if self.is_some() {\n self.unwrap_unchecked().stream_serialize(writer);\n } else {\n writer.advance_offset(<T as Serialize>::N);\n }\n }\n}\n\nimpl<T> Deserialize for Option<T>\nwhere\n T: Deserialize,\n{\n let N: u32 = <T as Deserialize>::N + 1;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n if reader.read_bool() {\n Option::some(<T as Deserialize>::stream_deserialize(reader))\n } else {\n reader.advance_offset(<T as Deserialize>::N);\n Option::none()\n }\n }\n}\n\nglobal SCALAR_SIZE: u32 = 2;\n\nimpl Serialize for EmbeddedCurveScalar {\n\n let N: u32 = SCALAR_SIZE;\n\n fn serialize(self) -> [Field; SCALAR_SIZE] {\n [self.lo, self.hi]\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self.lo);\n writer.write(self.hi);\n }\n}\n\nimpl Deserialize for EmbeddedCurveScalar {\n let N: u32 = SCALAR_SIZE;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n Self { lo: fields[0], hi: fields[1] }\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n Self { lo: reader.read(), hi: reader.read() }\n }\n}\n\nglobal POINT_SIZE: u32 = 3;\n\nimpl Serialize for EmbeddedCurvePoint {\n let N: u32 = POINT_SIZE;\n\n fn serialize(self) -> [Field; Self::N] {\n [self.x, self.y, self.is_infinite as Field]\n }\n\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self.x);\n writer.write(self.y);\n writer.write(self.is_infinite as Field);\n }\n}\n\nimpl Deserialize for EmbeddedCurvePoint {\n let N: u32 = POINT_SIZE;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n Self { x: fields[0], y: fields[1], is_infinite: fields[2] != 0 }\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n Self { x: reader.read(), y: reader.read(), is_infinite: reader.read_bool() }\n }\n}\n\nimpl<let M: u32> Deserialize for str<M> {\n let N: u32 = M;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n let u8_arr = <[u8; Self::N] as Deserialize>::stream_deserialize(reader);\n str::<Self::N>::from(u8_arr)\n }\n}\n\nimpl<let M: u32> Serialize for str<M> {\n let N: u32 = M;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n self.as_bytes().stream_serialize(writer);\n }\n}\n\n// Note: Not deriving this because it's not supported to call derive_serialize on a \"remote\" struct (and it will never\n// be supported).\nimpl<T, let M: u32> Deserialize for BoundedVec<T, M>\nwhere\n T: Deserialize,\n{\n let N: u32 = <T as Deserialize>::N * M + 1;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n let mut new_bounded_vec: BoundedVec<T, M> = BoundedVec::new();\n let payload_len = Self::N - 1;\n\n // Length is stored in the last field as we need to match intrinsic Noir serialization and the `len` struct\n // field is after `storage` struct field (see `bounded_vec.nr` in noir-stdlib)\n let len = reader.peek_offset(payload_len) as u32;\n\n for i in 0..M {\n if i < len {\n new_bounded_vec.push(<T as Deserialize>::stream_deserialize(reader));\n }\n }\n\n // +1 for the length of the BoundedVec\n reader.advance_offset((M - len) * <T as Deserialize>::N + 1);\n\n new_bounded_vec\n }\n}\n\n// This may cause issues if used as program input, because noir disallows empty arrays for program input.\n// I think this is okay because I don't foresee a unit type being used as input. But leaving this comment as a hint\n// if someone does run into this in the future.\nimpl Deserialize for () {\n let N: u32 = 0;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(_reader: &mut Reader<K>) -> Self {\n ()\n }\n}\n\n// Note: Not deriving this because it's not supported to call derive_serialize on a \"remote\" struct (and it will never\n// be supported).\nimpl<T, let M: u32> Serialize for BoundedVec<T, M>\nwhere\n T: Serialize,\n{\n let N: u32 = <T as Serialize>::N * M + 1; // +1 for the length of the BoundedVec\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n self.storage().stream_serialize(writer);\n // Length is stored in the last field as we need to match intrinsic Noir serialization and the `len` struct\n // field is after `storage` struct field (see `bounded_vec.nr` in noir-stdlib)\n writer.write_u32(self.len() as u32);\n }\n}\n\n// Create a slice of the given length with each element made from `f(i)` where `i` is the current index\ncomptime fn make_slice<Env, T>(length: u32, f: fn[Env](u32) -> T) -> [T] {\n let mut slice = @[];\n for i in 0..length {\n slice = slice.push_back(f(i));\n }\n slice\n}\n\n// Implements Serialize and Deserialize for an arbitrary tuple type\ncomptime fn impl_serialize_for_tuple(_m: Module, length: u32) -> Quoted {\n // `T0`, `T1`, `T2`\n let type_names = make_slice(length, |i| f\"T{i}\".quoted_contents());\n\n // `result0`, `result1`, `result2`\n let result_names = make_slice(length, |i| f\"result{i}\".quoted_contents());\n\n // `T0, T1, T2`\n let field_generics = type_names.join(quote [,]);\n\n // `<T0 as Serialize>::N + <T1 as Serialize>::N + <T2 as Serialize>::N`\n let full_size_serialize = type_names\n .map(|type_name| quote {\n <$type_name as Serialize>::N\n })\n .join(quote [+]);\n\n // `<T0 as Deserialize>::N + <T1 as Deserialize>::N + <T2 as Deserialize>::N`\n let full_size_deserialize = type_names\n .map(|type_name| quote {\n <$type_name as Deserialize>::N\n })\n .join(quote [+]);\n\n // `T0: Serialize, T1: Serialize, T2: Serialize,`\n let serialize_constraints = type_names\n .map(|field_name| quote {\n $field_name: Serialize,\n })\n .join(quote []);\n\n // `T0: Deserialize, T1: Deserialize, T2: Deserialize,`\n let deserialize_constraints = type_names\n .map(|field_name| quote {\n $field_name: Deserialize,\n })\n .join(quote []);\n\n // Statements to serialize each field\n let serialized_fields = type_names\n .mapi(|i, _type_name| quote {\n $crate::serialization::Serialize::stream_serialize(self.$i, writer);\n })\n .join(quote []);\n\n // Statements to deserialize each field\n let deserialized_fields = type_names\n .mapi(|i, type_name| {\n let result_name = result_names[i];\n quote {\n let $result_name = <$type_name as $crate::serialization::Deserialize>::stream_deserialize(reader);\n }\n })\n .join(quote []);\n let deserialize_results = result_names.join(quote [,]);\n\n quote {\n impl<$field_generics> Serialize for ($field_generics) where $serialize_constraints {\n let N: u32 = $full_size_serialize;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: $crate::writer::Writer<Self::N> = $crate::writer::Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut $crate::writer::Writer<K>) {\n\n $serialized_fields\n }\n }\n\n impl<$field_generics> Deserialize for ($field_generics) where $deserialize_constraints {\n let N: u32 = $full_size_deserialize;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = $crate::reader::Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n \n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut $crate::reader::Reader<K>) -> Self {\n $deserialized_fields\n ($deserialize_results)\n }\n }\n }\n}\n\n// Keeping these manual impls. They are more efficient since they do not\n// require copying sub-arrays from any serialized arrays.\nimpl<T1> Serialize for (T1,)\nwhere\n T1: Serialize,\n{\n let N: u32 = <T1 as Serialize>::N;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: crate::writer::Writer<Self::N> = crate::writer::Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n self.0.stream_serialize(writer);\n }\n}\n\nimpl<T1> Deserialize for (T1,)\nwhere\n T1: Deserialize,\n{\n let N: u32 = <T1 as Deserialize>::N;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = crate::reader::Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n (<T1 as Deserialize>::stream_deserialize(reader),)\n }\n}\n\n#[impl_serialize_for_tuple(2)]\n#[impl_serialize_for_tuple(3)]\n#[impl_serialize_for_tuple(4)]\n#[impl_serialize_for_tuple(5)]\n#[impl_serialize_for_tuple(6)]\nmod impls {\n use crate::serialization::{Deserialize, Serialize};\n}\n"
4259
+ "source": "use crate::{reader::Reader, serialization::{Deserialize, Serialize}, writer::Writer};\nuse std::embedded_curve_ops::EmbeddedCurvePoint;\nuse std::embedded_curve_ops::EmbeddedCurveScalar;\n\nglobal U1_SERIALIZED_LEN: u32 = 1;\nglobal BOOL_SERIALIZED_LEN: u32 = 1;\nglobal U8_SERIALIZED_LEN: u32 = 1;\nglobal U16_SERIALIZED_LEN: u32 = 1;\nglobal U32_SERIALIZED_LEN: u32 = 1;\nglobal U64_SERIALIZED_LEN: u32 = 1;\nglobal U128_SERIALIZED_LEN: u32 = 1;\nglobal FIELD_SERIALIZED_LEN: u32 = 1;\nglobal I8_SERIALIZED_LEN: u32 = 1;\nglobal I16_SERIALIZED_LEN: u32 = 1;\nglobal I32_SERIALIZED_LEN: u32 = 1;\nglobal I64_SERIALIZED_LEN: u32 = 1;\n\nimpl Serialize for bool {\n let N: u32 = BOOL_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self as Field);\n }\n}\n\nimpl Deserialize for bool {\n let N: u32 = BOOL_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> bool {\n reader.read() != 0\n }\n}\n\nimpl Serialize for u1 {\n let N: u32 = U1_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self as Field);\n }\n}\n\nimpl Deserialize for u1 {\n let N: u32 = U1_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n reader.read() as u1\n }\n}\n\nimpl Serialize for u8 {\n let N: u32 = U8_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self as Field);\n }\n}\n\nimpl Deserialize for u8 {\n let N: u32 = U8_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n reader.read() as u8\n }\n}\n\nimpl Serialize for u16 {\n let N: u32 = U16_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self as Field);\n }\n}\n\nimpl Deserialize for u16 {\n let N: u32 = U16_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n reader.read() as u16\n }\n}\n\nimpl Serialize for u32 {\n let N: u32 = U32_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self as Field);\n }\n}\n\nimpl Deserialize for u32 {\n let N: u32 = U32_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n reader.read() as u32\n }\n}\n\nimpl Serialize for u64 {\n let N: u32 = U64_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self as Field);\n }\n}\n\nimpl Deserialize for u64 {\n let N: u32 = U64_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n reader.read() as u64\n }\n}\n\nimpl Serialize for u128 {\n let N: u32 = U128_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self as Field);\n }\n}\n\nimpl Deserialize for u128 {\n let N: u32 = U128_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n reader.read() as u128\n }\n}\n\nimpl Serialize for Field {\n let N: u32 = FIELD_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self);\n }\n}\n\nimpl Deserialize for Field {\n let N: u32 = FIELD_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n reader.read()\n }\n}\n\nimpl Serialize for i8 {\n let N: u32 = I8_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self as u8 as Field);\n }\n}\n\nimpl Deserialize for i8 {\n let N: u32 = I8_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n reader.read() as u8 as i8\n }\n}\n\nimpl Serialize for i16 {\n let N: u32 = I16_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self as u16 as Field);\n }\n}\n\nimpl Deserialize for i16 {\n let N: u32 = I16_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n reader.read() as u16 as i16\n }\n}\n\nimpl Serialize for i32 {\n let N: u32 = I32_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self as u32 as Field);\n }\n}\n\nimpl Deserialize for i32 {\n let N: u32 = I32_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n reader.read() as u32 as i32\n }\n}\n\nimpl Serialize for i64 {\n let N: u32 = I64_SERIALIZED_LEN;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self as u64 as Field);\n }\n}\n\nimpl Deserialize for i64 {\n let N: u32 = I64_SERIALIZED_LEN;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n reader.read() as u64 as i64\n }\n}\n\nimpl<T, let M: u32> Serialize for [T; M]\nwhere\n T: Serialize,\n{\n let N: u32 = <T as Serialize>::N * M;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n for i in 0..M {\n self[i].stream_serialize(writer);\n }\n }\n}\n\nimpl<T, let M: u32> Deserialize for [T; M]\nwhere\n T: Deserialize,\n{\n let N: u32 = <T as Deserialize>::N * M;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n let mut result: [T; M] = std::mem::zeroed();\n for i in 0..M {\n result[i] = T::stream_deserialize(reader);\n }\n result\n }\n}\n\nimpl<T> Serialize for Option<T>\nwhere\n T: Serialize,\n{\n let N: u32 = <T as Serialize>::N + 1;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write_bool(self.is_some());\n if self.is_some() {\n self.unwrap_unchecked().stream_serialize(writer);\n } else {\n writer.advance_offset(<T as Serialize>::N);\n }\n }\n}\n\nimpl<T> Deserialize for Option<T>\nwhere\n T: Deserialize,\n{\n let N: u32 = <T as Deserialize>::N + 1;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n if reader.read_bool() {\n Option::some(<T as Deserialize>::stream_deserialize(reader))\n } else {\n reader.advance_offset(<T as Deserialize>::N);\n Option::none()\n }\n }\n}\n\nglobal SCALAR_SIZE: u32 = 2;\n\nimpl Serialize for EmbeddedCurveScalar {\n\n let N: u32 = SCALAR_SIZE;\n\n fn serialize(self) -> [Field; SCALAR_SIZE] {\n [self.lo, self.hi]\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self.lo);\n writer.write(self.hi);\n }\n}\n\nimpl Deserialize for EmbeddedCurveScalar {\n let N: u32 = SCALAR_SIZE;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n Self { lo: fields[0], hi: fields[1] }\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n Self { lo: reader.read(), hi: reader.read() }\n }\n}\n\nglobal POINT_SIZE: u32 = 3;\n\nimpl Serialize for EmbeddedCurvePoint {\n let N: u32 = POINT_SIZE;\n\n fn serialize(self) -> [Field; Self::N] {\n [self.x, self.y, self.is_infinite as Field]\n }\n\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n writer.write(self.x);\n writer.write(self.y);\n writer.write(self.is_infinite as Field);\n }\n}\n\nimpl Deserialize for EmbeddedCurvePoint {\n let N: u32 = POINT_SIZE;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n Self { x: fields[0], y: fields[1], is_infinite: fields[2] != 0 }\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n Self { x: reader.read(), y: reader.read(), is_infinite: reader.read_bool() }\n }\n}\n\nimpl<let M: u32> Deserialize for str<M> {\n let N: u32 = M;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n let u8_arr = <[u8; Self::N] as Deserialize>::stream_deserialize(reader);\n str::<Self::N>::from(u8_arr)\n }\n}\n\nimpl<let M: u32> Serialize for str<M> {\n let N: u32 = M;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n self.as_bytes().stream_serialize(writer);\n }\n}\n\n// Note: Not deriving this because it's not supported to call derive_serialize on a \"remote\" struct (and it will never\n// be supported).\nimpl<T, let M: u32> Deserialize for BoundedVec<T, M>\nwhere\n T: Deserialize,\n{\n let N: u32 = <T as Deserialize>::N * M + 1;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n let mut new_bounded_vec: BoundedVec<T, M> = BoundedVec::new();\n let payload_len = Self::N - 1;\n\n // Length is stored in the last field as we need to match intrinsic Noir serialization and the `len` struct\n // field is after `storage` struct field (see `bounded_vec.nr` in noir-stdlib)\n let len = reader.peek_offset(payload_len) as u32;\n\n for i in 0..M {\n if i < len {\n new_bounded_vec.push(<T as Deserialize>::stream_deserialize(reader));\n }\n }\n\n // +1 for the length of the BoundedVec\n reader.advance_offset((M - len) * <T as Deserialize>::N + 1);\n\n new_bounded_vec\n }\n}\n\n// This may cause issues if used as program input, because noir disallows empty arrays for program input.\n// I think this is okay because I don't foresee a unit type being used as input. But leaving this comment as a hint\n// if someone does run into this in the future.\nimpl Deserialize for () {\n let N: u32 = 0;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(_reader: &mut Reader<K>) -> Self {\n ()\n }\n}\n\n// Note: Not deriving this because it's not supported to call derive_serialize on a \"remote\" struct (and it will never\n// be supported).\nimpl<T, let M: u32> Serialize for BoundedVec<T, M>\nwhere\n T: Serialize,\n{\n let N: u32 = <T as Serialize>::N * M + 1; // +1 for the length of the BoundedVec\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: Writer<Self::N> = Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n self.storage().stream_serialize(writer);\n // Length is stored in the last field as we need to match intrinsic Noir serialization and the `len` struct\n // field is after `storage` struct field (see `bounded_vec.nr` in noir-stdlib)\n writer.write_u32(self.len() as u32);\n }\n}\n\n// Create a slice of the given length with each element made from `f(i)` where `i` is the current index\ncomptime fn make_slice<Env, T>(length: u32, f: fn[Env](u32) -> T) -> [T] {\n let mut slice = @[];\n for i in 0..length {\n slice = slice.push_back(f(i));\n }\n slice\n}\n\n// Implements Serialize and Deserialize for an arbitrary tuple type\ncomptime fn impl_serialize_for_tuple(_m: Module, length: u32) -> Quoted {\n // `T0`, `T1`, `T2`\n let type_names = make_slice(length, |i| f\"T{i}\".quoted_contents());\n\n // `result0`, `result1`, `result2`\n let result_names = make_slice(length, |i| f\"result{i}\".quoted_contents());\n\n // `T0, T1, T2`\n let field_generics = type_names.join(quote [,]);\n\n // `<T0 as Serialize>::N + <T1 as Serialize>::N + <T2 as Serialize>::N`\n let full_size_serialize = type_names\n .map(|type_name| quote {\n <$type_name as Serialize>::N\n })\n .join(quote [+]);\n\n // `<T0 as Deserialize>::N + <T1 as Deserialize>::N + <T2 as Deserialize>::N`\n let full_size_deserialize = type_names\n .map(|type_name| quote {\n <$type_name as Deserialize>::N\n })\n .join(quote [+]);\n\n // `T0: Serialize, T1: Serialize, T2: Serialize,`\n let serialize_constraints = type_names\n .map(|field_name| quote {\n $field_name: Serialize,\n })\n .join(quote []);\n\n // `T0: Deserialize, T1: Deserialize, T2: Deserialize,`\n let deserialize_constraints = type_names\n .map(|field_name| quote {\n $field_name: Deserialize,\n })\n .join(quote []);\n\n // Statements to serialize each field\n let serialized_fields = type_names\n .mapi(|i, _type_name| quote {\n $crate::serialization::Serialize::stream_serialize(self.$i, writer);\n })\n .join(quote []);\n\n // Statements to deserialize each field\n let deserialized_fields = type_names\n .mapi(|i, type_name| {\n let result_name = result_names[i];\n quote {\n let $result_name = <$type_name as $crate::serialization::Deserialize>::stream_deserialize(reader);\n }\n })\n .join(quote []);\n let deserialize_results = result_names.join(quote [,]);\n\n quote {\n impl<$field_generics> Serialize for ($field_generics) where $serialize_constraints {\n let N: u32 = $full_size_serialize;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: $crate::writer::Writer<Self::N> = $crate::writer::Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut $crate::writer::Writer<K>) {\n\n $serialized_fields\n }\n }\n\n impl<$field_generics> Deserialize for ($field_generics) where $deserialize_constraints {\n let N: u32 = $full_size_deserialize;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = $crate::reader::Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n \n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut $crate::reader::Reader<K>) -> Self {\n $deserialized_fields\n ($deserialize_results)\n }\n }\n }\n}\n\n// Keeping these manual impls. They are more efficient since they do not\n// require copying sub-arrays from any serialized arrays.\nimpl<T1> Serialize for (T1,)\nwhere\n T1: Serialize,\n{\n let N: u32 = <T1 as Serialize>::N;\n\n fn serialize(self) -> [Field; Self::N] {\n let mut writer: crate::writer::Writer<Self::N> = crate::writer::Writer::new();\n self.stream_serialize(&mut writer);\n writer.finish()\n }\n\n #[inline_always]\n fn stream_serialize<let K: u32>(self, writer: &mut Writer<K>) {\n self.0.stream_serialize(writer);\n }\n}\n\nimpl<T1> Deserialize for (T1,)\nwhere\n T1: Deserialize,\n{\n let N: u32 = <T1 as Deserialize>::N;\n\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = crate::reader::Reader::new(fields);\n let result = Self::stream_deserialize(&mut reader);\n reader.finish();\n result\n }\n\n #[inline_always]\n fn stream_deserialize<let K: u32>(reader: &mut Reader<K>) -> Self {\n (<T1 as Deserialize>::stream_deserialize(reader),)\n }\n}\n\n#[impl_serialize_for_tuple(2)]\n#[impl_serialize_for_tuple(3)]\n#[impl_serialize_for_tuple(4)]\n#[impl_serialize_for_tuple(5)]\n#[impl_serialize_for_tuple(6)]\nmod impls {\n use crate::serialization::{Deserialize, Serialize};\n}\n\n#[test]\nunconstrained fn bounded_vec_serialization() {\n // Test empty BoundedVec\n let empty_vec: BoundedVec<Field, 3> = BoundedVec::from_array([]);\n let serialized = empty_vec.serialize();\n let deserialized = BoundedVec::<Field, 3>::deserialize(serialized);\n assert_eq(empty_vec, deserialized);\n assert_eq(deserialized.len(), 0);\n\n // Test partially filled BoundedVec\n let partial_vec: BoundedVec<[u32; 2], 3> = BoundedVec::from_array([[1, 2]]);\n let serialized = partial_vec.serialize();\n let deserialized = BoundedVec::<[u32; 2], 3>::deserialize(serialized);\n assert_eq(partial_vec, deserialized);\n assert_eq(deserialized.len(), 1);\n assert_eq(deserialized.get(0), [1, 2]);\n\n // Test full BoundedVec\n let full_vec: BoundedVec<[u32; 2], 3> = BoundedVec::from_array([[1, 2], [3, 4], [5, 6]]);\n let serialized = full_vec.serialize();\n let deserialized = BoundedVec::<[u32; 2], 3>::deserialize(serialized);\n assert_eq(full_vec, deserialized);\n assert_eq(deserialized.len(), 3);\n assert_eq(deserialized.get(0), [1, 2]);\n assert_eq(deserialized.get(1), [3, 4]);\n assert_eq(deserialized.get(2), [5, 6]);\n}\n"
4260
4260
  },
4261
- "462": {
4261
+ "467": {
4262
4262
  "path": "/home/aztec-dev/nargo/github.com/noir-lang/sha256/v0.3.0/src/sha256.nr",
4263
4263
  "source": "use std::hash::sha256_compression;\nuse std::runtime::is_unconstrained;\n\nuse constants::{\n BLOCK_BYTE_PTR, BLOCK_SIZE, HASH, INITIAL_STATE, INT_BLOCK_SIZE, INT_SIZE, INT_SIZE_PTR,\n MSG_BLOCK, MSG_SIZE_PTR, STATE, TWO_POW_16, TWO_POW_24, TWO_POW_32, TWO_POW_8,\n};\n\npub(crate) mod constants;\nmod tests;\nmod oracle_tests;\n\n// Implementation of SHA-256 mapping a byte array of variable length to\n// 32 bytes.\n\n// Deprecated in favour of `sha256_var`\n// docs:start:sha256\npub fn sha256<let N: u32>(input: [u8; N]) -> HASH\n// docs:end:sha256\n{\n digest(input)\n}\n\n// SHA-256 hash function\n#[no_predicates]\npub fn digest<let N: u32>(msg: [u8; N]) -> HASH {\n sha256_var(msg, N)\n}\n\n// Variable size SHA-256 hash\npub fn sha256_var<let N: u32>(msg: [u8; N], message_size: u32) -> HASH {\n assert(message_size <= N);\n\n let (h, msg_block) = process_full_blocks(msg, message_size, INITIAL_STATE);\n\n finalize_sha256_blocks(message_size, h, msg_block)\n}\n\n/// Returns the first partially filled message block along with the internal state prior to its compression.\npub(crate) fn process_full_blocks<let N: u32>(\n msg: [u8; N],\n message_size: u32,\n initial_state: STATE,\n) -> (STATE, MSG_BLOCK) {\n if std::runtime::is_unconstrained() {\n let num_full_blocks = message_size / BLOCK_SIZE;\n // Intermediate hash, starting with the canonical initial value\n let mut h: STATE = initial_state;\n // Pointer into msg_block on a 64 byte scale\n for i in 0..num_full_blocks {\n let msg_block = build_msg_block(msg, message_size, BLOCK_SIZE * i);\n h = sha256_compression(msg_block, h);\n }\n\n // We now build the final un-filled block.\n let msg_byte_ptr = message_size % BLOCK_SIZE;\n let msg_block: MSG_BLOCK = if msg_byte_ptr != 0 {\n let num_full_blocks = message_size / BLOCK_SIZE;\n let msg_start = BLOCK_SIZE * num_full_blocks;\n build_msg_block(msg, message_size, msg_start)\n } else {\n // If the message size is a multiple of the block size (i.e. `msg_byte_ptr == 0`) then this block will be empty,\n // so we short-circuit in this case.\n [0; 16]\n };\n\n (h, msg_block)\n } else {\n let num_blocks = N / BLOCK_SIZE;\n\n // We store the intermediate hash states and message blocks in these two arrays which allows us to select the correct state\n // for the given message size with a lookup.\n //\n // These can be reasoned about as followed:\n // Consider a message with an unknown number of bytes, `msg_size. It can be seen that this will have `msg_size / BLOCK_SIZE` full blocks.\n // - `states[i]` should then be the state after processing the first `i` blocks.\n // - `blocks[i]` should then be the next message block after processing the first `i` blocks.\n // blocks[first_partially_filled_block_index] is the last block that is partially filled or all 0 if the message is a multiple of the block size.\n //\n // In other words:\n //\n // blocks = [block 1, block 2, ..., block N / BLOCK_SIZE, block N / BLOCK_SIZE + 1]\n // states = [INITIAL_STATE, state after block 1, state after block 2, ..., state after block N / BLOCK_SIZE]\n //\n // We place the initial state in `states[0]` as in the case where the `message_size < BLOCK_SIZE` then there are no full blocks to process and no compressions should occur.\n let mut blocks: [MSG_BLOCK; N / BLOCK_SIZE + 1] = std::mem::zeroed();\n let mut states: [STATE; N / BLOCK_SIZE + 1] = [initial_state; N / BLOCK_SIZE + 1];\n\n // Optimization for small messages. If the largest possible message is smaller than a block then we know that the first block is partially filled\n // no matter the value of `message_size`.\n //\n // Note that the condition `N >= BLOCK_SIZE` is known during monomorphization so this has no runtime cost.\n let first_partially_filled_block_index = if N >= BLOCK_SIZE {\n message_size / BLOCK_SIZE\n } else {\n 0\n };\n\n for i in 0..num_blocks {\n let msg_start = BLOCK_SIZE * i;\n let new_msg_block = build_msg_block(msg, message_size, msg_start);\n\n blocks[i] = new_msg_block;\n states[i + 1] = sha256_compression(new_msg_block, states[i]);\n }\n // If message_size/BLOCK_SIZE == N/BLOCK_SIZE, and there is a remainder, we need to process the last block.\n if N % BLOCK_SIZE != 0 {\n let new_msg_block = build_msg_block(msg, message_size, BLOCK_SIZE * num_blocks);\n\n blocks[num_blocks] = new_msg_block;\n }\n\n (states[first_partially_filled_block_index], blocks[first_partially_filled_block_index])\n }\n}\n\n// Take `BLOCK_SIZE` number of bytes from `msg` starting at `msg_start` and pack them into a `MSG_BLOCK`.\npub(crate) unconstrained fn build_msg_block_helper<let N: u32>(\n msg: [u8; N],\n message_size: u32,\n msg_start: u32,\n) -> MSG_BLOCK {\n let mut msg_block: MSG_BLOCK = [0; INT_BLOCK_SIZE];\n\n // We insert `BLOCK_SIZE` bytes (or up to the end of the message)\n let block_input = if message_size < msg_start {\n // This function is sometimes called with `msg_start` past the end of the message.\n // In this case we return an empty block and zero pointer to signal that the result should be ignored.\n 0\n } else if message_size < msg_start + BLOCK_SIZE {\n message_size - msg_start\n } else {\n BLOCK_SIZE\n };\n\n // Figure out the number of items in the int array that we have to pack.\n // e.g. if the input is [0,1,2,3,4,5] then we need to pack it as 2 items: [0123, 4500]\n let int_input = (block_input + INT_SIZE - 1) / INT_SIZE;\n\n for i in 0..int_input {\n let mut msg_item: u32 = 0;\n // Always construct the integer as 4 bytes, even if it means going beyond the input.\n for j in 0..INT_SIZE {\n let k = i * INT_SIZE + j;\n let msg_byte = if k < block_input {\n msg[msg_start + k]\n } else {\n 0\n };\n msg_item = (msg_item << 8) + msg_byte as u32;\n }\n msg_block[i] = msg_item;\n }\n\n // Returning the index as if it was a 64 byte array.\n // We have to project it down to 16 items and bit shifting to get a byte back if we need it.\n msg_block\n}\n\n// Build a message block from the input message starting at `msg_start`.\n//\n// If `message_size` is less than `msg_start` then this is called with the old non-empty block;\n// in that case we can skip verification, ie. no need to check that everything is zero.\nfn build_msg_block<let N: u32>(msg: [u8; N], message_size: u32, msg_start: u32) -> MSG_BLOCK {\n let msg_block =\n // Safety: We constrain the block below by reconstructing each `u32` word from the input bytes.\n unsafe { build_msg_block_helper(msg, message_size, msg_start) };\n\n if !is_unconstrained() {\n let mut msg_end = msg_start + BLOCK_SIZE;\n\n let max_read_index = std::cmp::min(message_size, msg_end);\n\n // Reconstructed packed item\n let mut msg_item: Field = 0;\n\n // Inclusive at the end so that we can compare the last item.\n for k in msg_start..=msg_end {\n if (k != msg_start) & (k % INT_SIZE == 0) {\n // If we consumed some input we can compare against the block.\n let msg_block_index = (k - msg_start) / INT_SIZE - 1;\n assert_eq(msg_block[msg_block_index] as Field, msg_item);\n\n msg_item = 0;\n }\n\n // If we have input to consume, add it at the rightmost position.\n let msg_byte = if k < max_read_index { msg[k] } else { 0 };\n msg_item = msg_item * (TWO_POW_8 as Field) + msg_byte as Field;\n }\n }\n msg_block\n}\n\n// Encode `8 * message_size` into two `u32` limbs.\nunconstrained fn encode_len(message_size: u32) -> (u32, u32) {\n let len = 8 * message_size as u64;\n let lo = len & 0xFFFFFFFF;\n let hi = (len >> 32) & 0xFFFFFFFF;\n (lo as u32, hi as u32)\n}\n\n// Write the length into the last 8 bytes of the block.\nfn attach_len_to_msg_block(mut msg_block: MSG_BLOCK, message_size: u32) -> MSG_BLOCK {\n // Safety: We assert the correctness of the decomposition below.\n // 2 `u32` limbs cannot overflow the field modulus so performing the check as `Field`s is safe.\n let (lo, hi) = unsafe { encode_len(message_size) };\n assert_eq(8 * (message_size as Field), lo as Field + hi as Field * TWO_POW_32);\n\n msg_block[INT_SIZE_PTR] = hi;\n msg_block[INT_SIZE_PTR + 1] = lo;\n msg_block\n}\n\n// Perform the final compression, then transform the `STATE` into `HASH`.\nfn hash_final_block(msg_block: MSG_BLOCK, mut state: STATE) -> HASH {\n // Hash final padded block\n state = sha256_compression(msg_block, state);\n\n // Return final hash as byte array\n let mut out_h: HASH = [0; 32]; // Digest as sequence of bytes\n for j in 0..8 {\n let h_bytes: [u8; 4] = (state[j] as Field).to_be_bytes();\n for k in 0..4 {\n out_h[4 * j + k] = h_bytes[k];\n }\n }\n\n out_h\n}\n\n/// Lookup table for the position of the padding bit within one of the `u32` words in the final message block.\nglobal PADDING_BIT_TABLE: [u32; 4] =\n [(1 << 7) * TWO_POW_24, (1 << 7) * TWO_POW_16, (1 << 7) * TWO_POW_8, (1 << 7)];\n\n/// Add 1 bit padding to end of message and compress the block if there's not enough room for the 8-byte length.\n/// Returns the updated hash state and message block that will be used to write the message size.\n///\n/// # Assumptions:\n///\n/// - `msg_block[i] == 0` for all `i > msg_byte_ptr / INT_SIZE`\n/// - `msg_block[msg_byte_ptr / INT_SIZE] & ((1 << 7) * (msg_byte_ptr % INT_SIZE)) == 0`\nfn add_padding_byte_and_compress_if_needed(\n mut msg_block: MSG_BLOCK,\n msg_byte_ptr: BLOCK_BYTE_PTR,\n h: STATE,\n) -> (STATE, MSG_BLOCK) {\n // Pad the rest such that we have a [u32; 2] block at the end representing the length\n // of the message, and a block of 1 0 ... 0 following the message (i.e. [1 << 7, 0, ..., 0]).\n // Here we rely on the fact that everything beyond the available input is set to 0.\n let index = msg_byte_ptr / INT_SIZE;\n\n // Lookup the position of the padding bit and insert it into the message block.\n msg_block[index] += PADDING_BIT_TABLE[msg_byte_ptr % INT_SIZE];\n\n // If we don't have room to write the size, compress the block and reset it.\n if msg_byte_ptr >= MSG_SIZE_PTR {\n let h = sha256_compression(msg_block, h);\n\n // In this case, the final block consists of all zeros with the last 8 bytes containing the length.\n // We set msg_block to all zeros and attach_len_to_msg_block will add the length to the last 8 bytes.\n let msg_block = [0; INT_BLOCK_SIZE];\n (h, msg_block)\n } else {\n (h, msg_block)\n }\n}\n\npub(crate) fn finalize_sha256_blocks(\n message_size: u32,\n mut h: STATE,\n mut msg_block: MSG_BLOCK,\n) -> HASH {\n let msg_byte_ptr = message_size % BLOCK_SIZE;\n\n let (h, mut msg_block) = add_padding_byte_and_compress_if_needed(msg_block, msg_byte_ptr, h);\n\n msg_block = attach_len_to_msg_block(msg_block, message_size);\n\n hash_final_block(msg_block, h)\n}\n\n/**\n * Given some state of a partially computed sha256 hash and part of the preimage, continue hashing\n * @notice used for complex/ recursive offloading of post-partial hashing\n *\n * @param N - the maximum length of the message to hash\n * @param h - the intermediate hash state\n * @param msg - the preimage to hash\n * @param message_size - the actual length of the preimage to hash\n * @return the intermediate hash state after compressing in msg to h\n */\npub fn partial_sha256_var_interstitial<let N: u32>(\n mut h: [u32; 8],\n msg: [u8; N],\n message_size: u32,\n) -> [u32; 8] {\n assert(message_size % BLOCK_SIZE == 0, \"Message size must be a multiple of the block size\");\n if std::runtime::is_unconstrained() {\n // Safety: running as an unconstrained function\n unsafe {\n __sha_partial_var_interstitial(h, msg, message_size)\n }\n } else {\n let (h, _) = process_full_blocks(msg, message_size, h);\n\n h\n }\n}\n\n/**\n * Given some state of a partially computed sha256 hash and remaining preimage, complete the hash\n * @notice used for traditional partial hashing\n *\n * @param N - the maximum length of the message to hash\n * @param h - the intermediate hash state\n * @param msg - the remaining preimage to hash\n * @param message_size - the size of the current chunk\n * @param real_message_size - the total size of the original preimage\n * @return finalized sha256 hash\n */\npub fn partial_sha256_var_end<let N: u32>(\n mut h: [u32; 8],\n msg: [u8; N],\n message_size: u32,\n real_message_size: u32,\n) -> [u8; 32] {\n assert(message_size % BLOCK_SIZE == 0, \"Message size must be a multiple of the block size\");\n if std::runtime::is_unconstrained() {\n // Safety: running as an unconstrained function\n unsafe {\n h = __sha_partial_var_interstitial(h, msg, message_size);\n\n // Handle setup of the final msg block.\n // This case is only hit if the msg is less than the block size,\n // or our message cannot be evenly split into blocks.\n\n finalize_last_sha256_block(h, real_message_size, msg)\n }\n } else {\n let (h, msg_block) = process_full_blocks(msg, message_size, h);\n finalize_sha256_blocks(real_message_size, h, msg_block)\n }\n}\n\nunconstrained fn __sha_partial_var_interstitial<let N: u32>(\n mut h: [u32; 8],\n msg: [u8; N],\n message_size: u32,\n) -> [u32; 8] {\n let num_full_blocks = message_size / BLOCK_SIZE;\n // Intermediate hash, starting with the canonical initial value\n // Pointer into msg_block on a 64 byte scale\n for i in 0..num_full_blocks {\n let msg_block = build_msg_block(msg, message_size, BLOCK_SIZE * i);\n h = sha256_compression(msg_block, h);\n }\n h\n}\n\n// Helper function to finalize the message block with padding and length\nunconstrained fn finalize_last_sha256_block<let N: u32>(\n mut h: STATE,\n message_size: u32,\n msg: [u8; N],\n) -> HASH {\n let msg_byte_ptr = message_size % BLOCK_SIZE;\n\n // We now build the final un-filled block.\n let msg_block: MSG_BLOCK = if msg_byte_ptr != 0 {\n let num_full_blocks = message_size / BLOCK_SIZE;\n let msg_start = BLOCK_SIZE * num_full_blocks;\n build_msg_block(msg, message_size, msg_start)\n } else {\n // If the message size is a multiple of the block size (i.e. `msg_byte_ptr == 0`) then this block will be empty,\n // so we short-circuit in this case.\n [0; 16]\n };\n\n // Once built, we need to add the necessary padding bytes and encoded length\n let (h, mut msg_block) = add_padding_byte_and_compress_if_needed(msg_block, msg_byte_ptr, h);\n msg_block = attach_len_to_msg_block(msg_block, message_size);\n\n hash_final_block(msg_block, h)\n}\n\nmod test_process_full_blocks {\n\n /// Wrapper to force an unconstrained runtime on process_full_blocks.\n unconstrained fn unconstrained_process_full_blocks<let N: u32>(\n msg: [u8; N],\n message_size: u32,\n h: super::STATE,\n ) -> (super::STATE, super::MSG_BLOCK) {\n super::process_full_blocks(msg, message_size, h)\n }\n\n #[test]\n fn test_implementations_agree(msg: [u8; 100], message_size: u32) {\n let message_size = message_size % 100;\n // Safety: test function\n let unconstrained_state =\n unsafe { unconstrained_process_full_blocks(msg, message_size, super::INITIAL_STATE) };\n let state = super::process_full_blocks(msg, message_size, super::INITIAL_STATE);\n assert_eq(state, unconstrained_state);\n }\n}\n\nmod test_sha256_var {\n\n /// Wrapper to force an unconstrained runtime on sha256.\n unconstrained fn unconstrained_sha256<let N: u32>(\n msg: [u8; N],\n message_size: u32,\n ) -> super::HASH {\n super::sha256_var(msg, message_size)\n }\n\n #[test]\n fn test_implementations_agree(msg: [u8; 100], message_size: u32) {\n let message_size = message_size % 100;\n // Safety: test function\n let unconstrained_sha = unsafe { unconstrained_sha256(msg, message_size) };\n let sha = super::sha256_var(msg, message_size);\n assert_eq(sha, unconstrained_sha);\n }\n\n}\n"
4264
4264
  },