diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 12332bac..2743e276 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -37,9 +37,22 @@ jobs:
run: cargo fmt --check
- name: clippy
run: cargo clippy --all-targets -- -D warnings
- - name: 'test (unix: full suite incl. native legs)'
- if: runner.os != 'Windows'
- run: cargo test --all
+ - name: 'test (PR: fast suite — VM legs only)'
+ if: runner.os != 'Windows' && github.event_name == 'pull_request'
+ # PR signal in minutes: unit + e2e (VM) + VM-only parity.
+ run: ./scripts/test-fast.sh
+ - name: 'test (PR: batched native parity)'
+ if: runner.os != 'Windows' && github.event_name == 'pull_request'
+ # All batchable strict fixtures' native legs in ~4 clang builds
+ # (same programs, same flags, demuxed per file). Individuals run
+ # VM-only inside test-fast.sh above.
+ run: ZZ_BATCH_NATIVE=1 cargo test -p zz_cli --test batched_parity
+ - name: 'test (merge: full suite, strict natives via batch)'
+ if: runner.os != 'Windows' && github.event_name != 'pull_request'
+ # `ZZ_BATCH_NATIVE=1`: strict-success natives run batched
+ # (same programs, same flags); quad, error, and known-failure
+ # natives stay individual. Full coverage, no duplicated builds.
+ run: ZZ_BATCH_NATIVE=1 cargo test --all
- name: 'test (windows: VM-only, native backend unsupported)'
if: runner.os == 'Windows'
# The native backend is POSIX/Linux-only (epoll/fork AOT server, no
diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml
index c9c7b750..6f6dc253 100644
--- a/.github/workflows/docker-publish.yml
+++ b/.github/workflows/docker-publish.yml
@@ -19,6 +19,11 @@ on:
release:
types: [published]
workflow_dispatch:
+ inputs:
+ version:
+ description: "Version to package without leading v (default: Cargo.toml; needed to rebuild an older tag's image)"
+ required: false
+ default: ""
env:
CARGO_TERM_COLOR: always
@@ -41,6 +46,8 @@ jobs:
run: |
if [ "${{ github.event_name }}" = "release" ]; then
TAG="${{ github.event.release.tag_name }}"
+ elif [ -n "${{ inputs.version }}" ]; then
+ TAG="v${{ inputs.version }}"
else
# Manual dispatch: version comes from the tree (normally main).
TAG="v$(grep -m1 '^version = ' Cargo.toml | cut -d'"' -f2)"
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 813fcfdc..1028fe66 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -12,8 +12,17 @@ name: release
# dispatch. Push-to-main is deliberately NOT a trigger: every merge
# already ran CI, and re-running here would duplicate it.
#
+# Downstream trigger contract: docker-publish and aur-publish listen for
+# `release: published`, and GitHub does NOT fire that event when the
+# Release is created with GITHUB_TOKEN (token-authenticated API activity
+# never triggers new workflow runs — anti-recursion rule). So the tag +
+# Release below are created with a user PAT (`RELEASE_TOKEN` secret,
+# Contents read+write on this repo). Without it the Release still cuts
+# fine, but docker/AUR will never fire — check the step logs for the
+# explicit warning.
+#
# Flow: resolve version -> skip if released -> sync Cargo.lock ->
-# build zips (x86_64 + aarch64, in parallel) -> create Release WITH
+# build zips (linux + macos, in parallel) -> create Release WITH
# the zips attached (single shot, so `release: published` consumers
# never see a half-ready Release).
#
@@ -148,22 +157,30 @@ jobs:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
build-assets:
- name: build release zip (${{ matrix.ziparch }})
+ name: build release zip (${{ matrix.os }}-${{ matrix.arch }})
needs: [cut]
# Same CI gate as `cut` (a skipped `cut` leaves `skip` empty, which
# `!= 'true'` would wrongly pass — belt and suspenders).
if: ${{ (github.event_name != 'workflow_run' || github.event.workflow_run.conclusion == 'success') && needs.cut.outputs.skip != 'true' }}
runs-on: ${{ matrix.runner }}
strategy:
- # One arch failing must not cancel the other: we want both logs.
+ # One target failing must not cancel the others: we want all logs.
# The publish step refuses to cut the Release with a zip missing.
fail-fast: false
matrix:
include:
- - ziparch: x86_64
+ - os: linux
+ arch: x86_64
runner: ubuntu-latest
- - ziparch: aarch64
+ - os: linux
+ arch: aarch64
runner: ubuntu-24.04-arm
+ - os: macos
+ arch: aarch64
+ runner: macos-14
+ - os: macos
+ arch: x86_64
+ runner: macos-13
steps:
- uses: actions/checkout@v4
with:
@@ -172,8 +189,12 @@ jobs:
ref: main
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- - name: install native deps
+ - name: install native deps (linux)
+ if: matrix.os == 'linux'
run: sudo apt-get update && sudo apt-get install -y clang libcurl4-openssl-dev libsqlite3-dev zip unzip
+ - name: install native deps (macos)
+ if: matrix.os == 'macos'
+ run: brew install zip unzip
- name: build + zip
run: |
PKGVER="${{ needs.cut.outputs.pkgver }}"
@@ -187,8 +208,12 @@ jobs:
cargo build --release --locked -p zz_cli -p zz_lsp
./target/release/zz --version
test -x ./target/release/zz-lsp
- strip target/release/zz target/release/zz-lsp
- ZIP="zz-$PKGVER-linux-${{ matrix.ziparch }}.zip"
+ if [ "${{ matrix.os }}" = "macos" ]; then
+ strip -x target/release/zz target/release/zz-lsp
+ else
+ strip target/release/zz target/release/zz-lsp
+ fi
+ ZIP="zz-$PKGVER-${{ matrix.os }}-${{ matrix.arch }}.zip"
rm -rf dist "$ZIP"
mkdir -p dist
cp target/release/zz target/release/zz-lsp LICENSE README.md dist/
@@ -197,7 +222,7 @@ jobs:
- name: upload zip artifact
uses: actions/upload-artifact@v4
with:
- name: release-zip-${{ matrix.ziparch }}
+ name: release-zip-${{ matrix.os }}-${{ matrix.arch }}
path: zz-*.zip
if-no-files-found: error
@@ -217,6 +242,13 @@ jobs:
with:
pattern: release-zip-*
merge-multiple: true
+ - name: resolve release token
+ run: |
+ if [ -z "${{ secrets.RELEASE_TOKEN }}" ]; then
+ echo "::warning::RELEASE_TOKEN secret is not set — falling back to GITHUB_TOKEN. The Release will cut, but docker-publish/aur-publish will NOT trigger (GitHub suppresses workflow runs from token-created releases). Add a PAT with Contents read+write as RELEASE_TOKEN to enable the chain."
+ else
+ echo "using RELEASE_TOKEN (user PAT): downstream release workflows will trigger"
+ fi
- name: create tag + release with assets (if missing)
run: |
TAG="${{ needs.cut.outputs.tag }}"
@@ -233,9 +265,13 @@ jobs:
fi
ls -la zz-*.zip
test -f "zz-${{ needs.cut.outputs.pkgver }}-linux-x86_64.zip" \
- || { echo "error: x86_64 zip missing, refusing half-ready release." >&2; exit 1; }
+ || { echo "error: linux x86_64 zip missing, refusing half-ready release." >&2; exit 1; }
test -f "zz-${{ needs.cut.outputs.pkgver }}-linux-aarch64.zip" \
- || { echo "error: aarch64 zip missing, refusing half-ready release." >&2; exit 1; }
+ || { echo "error: linux aarch64 zip missing, refusing half-ready release." >&2; exit 1; }
+ test -f "zz-${{ needs.cut.outputs.pkgver }}-macos-aarch64.zip" \
+ || { echo "error: macos aarch64 zip missing, refusing half-ready release." >&2; exit 1; }
+ test -f "zz-${{ needs.cut.outputs.pkgver }}-macos-x86_64.zip" \
+ || { echo "error: macos x86_64 zip missing, refusing half-ready release." >&2; exit 1; }
gh release create "$TAG" \
--target "main" \
--title "$TAG" \
@@ -243,4 +279,7 @@ jobs:
zz-*.zip
echo "created release $TAG with prebuilt zips"
env:
- GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ # User PAT when present so the `release: published` event is
+ # genuine and downstream workflows fire; GITHUB_TOKEN fallback
+ # cuts the Release but triggers nothing (see warning above).
+ GH_TOKEN: ${{ secrets.RELEASE_TOKEN != '' && secrets.RELEASE_TOKEN || secrets.GITHUB_TOKEN }}
diff --git a/.gitignore b/.gitignore
index 475aa549..74fd1d27 100644
--- a/.gitignore
+++ b/.gitignore
@@ -16,6 +16,10 @@ bench/native/bench_loop
bench/native/bench_str
bench/native/_go/main
bench/native/.bin
+# move-append elision harness: generated corpus + built binaries
+# (regenerate deterministically via gen_corpus.py, seed 7)
+bench/move_append/corpus/
+bench/move_append/bin/
bench/native/categories/*
!bench/native/categories/*.zz
benchmarks/arena_bench
@@ -33,3 +37,5 @@ bench/performance_check/RESULTS.md
# AUR render output (local only, CI regenerates per release)
packaging/aur/out/
packaging/aur/tmp/
+
+tests/fuzz/__pycache__/
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 00000000..5fae61b9
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,51 @@
+# Contributing to ZZ
+
+Thanks for helping. Keep it simple.
+
+## Setup
+
+```bash
+git clone https://github.com/zaidejjo/zz
+cd zz
+cargo install --path crates/zz_cli
+```
+
+Requires stable Rust.
+
+## Workflow
+
+```bash
+cargo test -p zz_frontend # single crate, fast loop
+./scripts/test-fast.sh # fast suite (skips native legs + plugin e2e)
+cargo test --all # full suite (slow, CI equivalent)
+cargo clippy --all-targets -- -D warnings
+cargo fmt --check
+```
+
+CI enforces zero clippy warnings and clean `cargo fmt`.
+
+## PRs
+
+1. Fork, branch from `main`, keep the diff focused.
+2. Add a `.zz` fixture under `tests/fixtures/` for user-facing changes and register it in `crates/zz_cli/tests/e2e.rs`.
+3. Update docs on the website repo when behavior changes.
+4. Make sure tests, clippy, and fmt pass before requesting review.
+
+## Project layout
+
+```
+zz_frontend → zz_checker → zz_stdlib → zz_cli
+ | |
+ v v
+ zz_runtime ──────────────→ zz_lsp
+```
+
+- `zz_frontend`: lexer, parser, AST, formatter.
+- `zz_checker`: type checker with inference.
+- `zz_runtime`: interpreter + VM.
+- `zz_stdlib`: native functions (keep `funcs.rs` type signatures and `natives.rs` implementations in sync).
+- `zz_cli`: `zz` binary. `zz_lsp`: `zz-lsp` binary.
+
+## License
+
+By contributing you agree your changes are Apache-2.0 licensed.
diff --git a/Cargo.lock b/Cargo.lock
index 634c4f2c..a953144d 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -374,6 +374,21 @@ dependencies = [
"libc",
]
+[[package]]
+name = "crc"
+version = "3.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5eb8a2a1cd12ab0d987a5d5e825195d372001a4094a0376319d5a0ad71c1ba0d"
+dependencies = [
+ "crc-catalog",
+]
+
+[[package]]
+name = "crc-catalog"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "217698eaf96b4a3f0bc4f3662aaa55bdf913cd54d7204591faa790070c6d0853"
+
[[package]]
name = "crc32fast"
version = "1.5.2"
@@ -1498,6 +1513,16 @@ dependencies = [
"url",
]
+[[package]]
+name = "lzma-rs"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "297e814c836ae64db86b36cf2a557ba54368d03f6afcd7d947c266692f71115e"
+dependencies = [
+ "byteorder",
+ "crc",
+]
+
[[package]]
name = "matchers"
version = "0.2.0"
@@ -3553,10 +3578,16 @@ version = "1.0.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b"
+[[package]]
+name = "zz_arena"
+version = "0.1.6"
+
[[package]]
name = "zz_checker"
version = "0.1.6"
dependencies = [
+ "serde",
+ "serde_json",
"zz_frontend",
]
@@ -3567,15 +3598,22 @@ dependencies = [
"base64 0.22.1",
"codespan-reporting",
"dirs",
+ "hex",
+ "lzma-rs",
"nu-ansi-term",
"reedline",
+ "serde",
"serde_json",
+ "sha2",
+ "tar",
"toml",
+ "ureq",
"zz_checker",
"zz_codegen",
"zz_fmt",
"zz_frontend",
"zz_hir",
+ "zz_ir",
"zz_plugin",
"zz_pm",
"zz_runtime",
@@ -3589,6 +3627,7 @@ dependencies = [
"zz_checker",
"zz_frontend",
"zz_hir",
+ "zz_ir",
"zz_native_rt",
"zz_runtime",
"zz_stdlib",
@@ -3623,6 +3662,16 @@ dependencies = [
"zz_frontend",
]
+[[package]]
+name = "zz_ir"
+version = "0.1.6"
+dependencies = [
+ "zz_checker",
+ "zz_frontend",
+ "zz_runtime",
+ "zz_stdlib",
+]
+
[[package]]
name = "zz_lsp"
version = "0.1.6"
@@ -3636,6 +3685,7 @@ dependencies = [
"zz_checker",
"zz_fmt",
"zz_frontend",
+ "zz_runtime",
"zz_stdlib",
]
@@ -3649,6 +3699,7 @@ dependencies = [
"ed25519-dalek",
"getrandom 0.3.4",
"hmac",
+ "libc",
"rand_core",
"rcgen",
"regex",
@@ -3714,6 +3765,7 @@ dependencies = [
"crossbeam-deque",
"httparse",
"libc",
+ "memchr",
"rcgen",
"reqwest",
"rusqlite",
diff --git a/Cargo.toml b/Cargo.toml
index 512b82a9..e738b40a 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -1,9 +1,9 @@
[workspace]
resolver = "2"
-members = ["crates/zz_frontend", "crates/zz_checker", "crates/zz_hir", "crates/zz_runtime", "crates/zz_stdlib", "crates/zz_codegen", "crates/zz_cli", "crates/zz_fmt", "crates/zz_lsp", "crates/zz_native_rt", "crates/zz_pm", "crates/zz_plugin"]
+members = ["crates/zz_frontend", "crates/zz_checker", "crates/zz_hir", "crates/zz_arena", "crates/zz_runtime", "crates/zz_ir", "crates/zz_stdlib", "crates/zz_codegen", "crates/zz_cli", "crates/zz_fmt", "crates/zz_lsp", "crates/zz_native_rt", "crates/zz_pm", "crates/zz_plugin"]
[workspace.package]
-version = "0.1.6"
+version = "0.2.0"
edition = "2021"
license = "Apache-2.0"
@@ -18,6 +18,7 @@ dirs = "6"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
tar = "0.4"
+lzma-rs = "0.3"
flate2 = "1"
ureq = "3"
base64 = "0.22"
diff --git a/LICENSE b/LICENSE
index f898a58c..2f4cd594 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,204 +1,190 @@
-Copyright 2026 ZZ Language team
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
----
-
-Apache License
-Version 2.0, January 2004
-http://www.apache.org/licenses/
-
-TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
-2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
-3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- Use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
-4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
-5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
-6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
-7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
-8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
-9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
-END OF TERMS AND CONDITIONS
-
-APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. Please also get an approval
- for your intended use from the package maintainer.
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ Use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
Copyright 2026 ZZ Language team
diff --git a/README.md b/README.md
index 59d805e2..5bd534f4 100644
--- a/README.md
+++ b/README.md
@@ -1,73 +1,113 @@
-# ZZ
-
-A statically-typed language with inferred declarations, pipeline operators, and rich diagnostics.
-
-## Quick Start
+
+
+
+
+ZZ
+
+Fast systems language: native AOT, green threads, zero GC pauses.
+
+
+ Website |
+ Getting started |
+ Learn |
+ Documentation |
+ Contributing
+
+
+## Why ZZ?
+
+- Native binaries via `zz build`, fast iteration via `zz run`.
+- Green threads and channels for concurrent pipelines.
+- Inferred types, pipelines (`|>`), pattern matching.
+- Diagnostics that suggest fixes, plus `zz fix` and `zz fmt`.
+- Batteries included: HTTP, JSON, fs, math, SQL.
+
+## How is ZZ different from Rust?
+
+ZZ is not syntactic sugar on top of Rust. It is an independent language
+with its own frontend, type checker, tree-walk VM, and AOT backend
+(ZZ → C → native binary), plus its own standard library.
+
+- **Memory without a borrow checker.** ZZ has value semantics: functions
+ receive copies from the programmer's perspective, there are no
+ references, no lifetimes, no `&`/`&mut`. The compiler/runtime may elide
+ copies internally (copy-on-write, in-place slots), but aliasing is never
+ observable. Rust gives you control via ownership/borrows; ZZ trades that
+ control for simpler reasoning.
+- **Concurrency model.** ZZ ships green threads and channels as the default
+ pipeline primitive. No `async`/executors to wire up for the common case.
+- **Scope.** ZZ targets services, CLIs, and data pipelines with batteries
+ included (HTTP, JSON, fs, SQL). It cannot do everything Rust can: no
+ `unsafe`, no zero-cost abstractions, no `no_std`/embedded, no manual
+ layout control. For those, use Rust (including as a ZZ native plugin).
+- **Interop.** ZZ plugins speak C ABI (`plugin.zzi`); Rust crates can back
+ plugins, but the ZZ side never exposes Rust semantics.
+
+## Quick start
+
+Install (main way, latest GitHub release). Re-run to update:
```bash
-# Install
-cargo install --path crates/zz_cli
+curl -fsSL https://zz-lang.pages.dev/install.sh | sh
+```
-# Run a file
-zz run hello.zz
+Windows:
-# Start REPL
-zz
+```powershell
+irm https://zz-lang.pages.dev/install.ps1 | iex
+```
-# Check for errors
-zz check src/
+Verify:
+
+```bash
+zz --version
+zz setup # PATH + shell completions for bash/zsh/fish (run once)
```
+Hello world (`hello.zz`):
+
```zz
-// hello.zz
name := input("What is your name? ")
println("Hello, {name}!")
+```
-func factorial(n: int) -> int {
- if n <= 1 { 1 } else { n * factorial(n - 1) }
-}
-
-println("5! = {factorial(5)}")
+```bash
+zz run hello.zz
```
-## Features
+REPL, check, format:
-- **Inferred declarations** -- `x := 1` infers `int`; `x: float = 1.0` declares explicitly
-- **Pipeline operator** -- `val |> func()` chains function calls, including across lines
-- **Pattern matching** -- `match` with exhaustive variant patterns, `if let` for binding
-- **Elvis operator** -- `val ?? fallback` unwraps or provides default
-- **String interpolation** -- `"Hello {name}"` with format specs `{pi:.2f}`
-- **Closures** -- `|x: int| x * 2` with captured environment
-- **Generics** -- `func map(...)` with type inference
-- **Standard library** -- HTTP, JSON, filesystem, math, string operations
-- **LSP support** -- autocompletion, go-to-definition, hover, diagnostics, formatting
-- **Smart diagnostics** -- Levenshtein suggestions, fix-it hints, source-mapped errors
+```bash
+zz # REPL (:help, :quit)
+zz check src/
+zz fmt src/
+```
-## Architecture
+Install a project as a tool (`~/.zz/bin`):
-```
-zz_frontend Lexer, parser, AST, lossless formatter, diagnostics
-zz_checker Unification-based type checker with inference
-zz_runtime Tree-walker interpreter + bytecode VM
-zz_stdlib Standard library (70+ native functions)
-zz_cli CLI binary: REPL, run, check, fix, fmt
-zz_lsp Language Server Protocol implementation
+```bash
+zz install --path .
```
-```
-zz_frontend ──> zz_checker ──> zz_stdlib ──> zz_cli
- | |
- v v
- zz_runtime ──────────────> zz_lsp
+Keep the toolchain healthy:
+
+```bash
+zz upgrade # self-update to the latest release
+zz doctor # audit binary, clang, shell, git, registry (add --fix)
```
## Documentation
-- [Syntax Reference](docs/syntax.md) -- complete grammar, operators, statements, expressions
-- [Type System](docs/types.md) -- primitives, structs, generics, type inference rules
-- [Standard Library](docs/stdlib.md) -- all 70+ built-in functions and modules
-- [CLI Reference](docs/cli.md) -- commands, flags, REPL, diagnostics
+- [Getting started](https://zz-lang.pages.dev/getting-started)
+- [Syntax](https://zz-lang.pages.dev/syntax)
+- [Language reference](https://zz-lang.pages.dev/language-reference)
+- [Standard library](https://zz-lang.pages.dev/stdlib/overview)
+- [Playground](https://zz-lang.pages.dev/playground)
+
+## Contributing
+
+See [CONTRIBUTING.md](./CONTRIBUTING.md) for setup, tests, and PRs.
## License
-Apache-2.0 — see [LICENSE](LICENSE).
+Apache-2.0 — see [LICENSE](./LICENSE).
diff --git a/bench/compiler/heavyproj/hmod00.zz b/bench/compiler/heavyproj/hmod00.zz
new file mode 100644
index 00000000..2edc83d1
--- /dev/null
+++ b/bench/compiler/heavyproj/hmod00.zz
@@ -0,0 +1,280 @@
+pub func hmod00_f0(x: int) -> int {
+ a := x + 0
+ b := a * 2 + x
+ c := b - a + 0 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod00_f1(x: int) -> int {
+ a := x + 1
+ b := a * 2 + x
+ c := b - a + 1 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod00_f2(x: int) -> int {
+ a := x + 2
+ b := a * 2 + x
+ c := b - a + 2 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod00_f3(x: int) -> int {
+ a := x + 3
+ b := a * 2 + x
+ c := b - a + 3 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod00_f4(x: int) -> int {
+ a := x + 4
+ b := a * 2 + x
+ c := b - a + 4 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod00_f5(x: int) -> int {
+ a := x + 5
+ b := a * 2 + x
+ c := b - a + 5 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod00_f6(x: int) -> int {
+ a := x + 6
+ b := a * 2 + x
+ c := b - a + 6 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod00_f7(x: int) -> int {
+ a := x + 7
+ b := a * 2 + x
+ c := b - a + 7 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod00_f8(x: int) -> int {
+ a := x + 8
+ b := a * 2 + x
+ c := b - a + 8 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod00_f9(x: int) -> int {
+ a := x + 9
+ b := a * 2 + x
+ c := b - a + 9 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod00_f10(x: int) -> int {
+ a := x + 10
+ b := a * 2 + x
+ c := b - a + 10 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod00_f11(x: int) -> int {
+ a := x + 11
+ b := a * 2 + x
+ c := b - a + 11 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod00_f12(x: int) -> int {
+ a := x + 12
+ b := a * 2 + x
+ c := b - a + 12 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod00_f13(x: int) -> int {
+ a := x + 13
+ b := a * 2 + x
+ c := b - a + 13 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod00_f14(x: int) -> int {
+ a := x + 14
+ b := a * 2 + x
+ c := b - a + 14 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod00_f15(x: int) -> int {
+ a := x + 15
+ b := a * 2 + x
+ c := b - a + 15 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod00_f16(x: int) -> int {
+ a := x + 16
+ b := a * 2 + x
+ c := b - a + 16 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod00_f17(x: int) -> int {
+ a := x + 17
+ b := a * 2 + x
+ c := b - a + 17 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod00_f18(x: int) -> int {
+ a := x + 18
+ b := a * 2 + x
+ c := b - a + 18 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod00_f19(x: int) -> int {
+ a := x + 19
+ b := a * 2 + x
+ c := b - a + 19 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
diff --git a/bench/compiler/heavyproj/hmod01.zz b/bench/compiler/heavyproj/hmod01.zz
new file mode 100644
index 00000000..349c1ac1
--- /dev/null
+++ b/bench/compiler/heavyproj/hmod01.zz
@@ -0,0 +1,280 @@
+pub func hmod01_f0(x: int) -> int {
+ a := x + 0
+ b := a * 2 + x
+ c := b - a + 0 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod01_f1(x: int) -> int {
+ a := x + 1
+ b := a * 2 + x
+ c := b - a + 1 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod01_f2(x: int) -> int {
+ a := x + 2
+ b := a * 2 + x
+ c := b - a + 2 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod01_f3(x: int) -> int {
+ a := x + 3
+ b := a * 2 + x
+ c := b - a + 3 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod01_f4(x: int) -> int {
+ a := x + 4
+ b := a * 2 + x
+ c := b - a + 4 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod01_f5(x: int) -> int {
+ a := x + 5
+ b := a * 2 + x
+ c := b - a + 5 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod01_f6(x: int) -> int {
+ a := x + 6
+ b := a * 2 + x
+ c := b - a + 6 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod01_f7(x: int) -> int {
+ a := x + 7
+ b := a * 2 + x
+ c := b - a + 7 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod01_f8(x: int) -> int {
+ a := x + 8
+ b := a * 2 + x
+ c := b - a + 8 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod01_f9(x: int) -> int {
+ a := x + 9
+ b := a * 2 + x
+ c := b - a + 9 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod01_f10(x: int) -> int {
+ a := x + 10
+ b := a * 2 + x
+ c := b - a + 10 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod01_f11(x: int) -> int {
+ a := x + 11
+ b := a * 2 + x
+ c := b - a + 11 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod01_f12(x: int) -> int {
+ a := x + 12
+ b := a * 2 + x
+ c := b - a + 12 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod01_f13(x: int) -> int {
+ a := x + 13
+ b := a * 2 + x
+ c := b - a + 13 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod01_f14(x: int) -> int {
+ a := x + 14
+ b := a * 2 + x
+ c := b - a + 14 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod01_f15(x: int) -> int {
+ a := x + 15
+ b := a * 2 + x
+ c := b - a + 15 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod01_f16(x: int) -> int {
+ a := x + 16
+ b := a * 2 + x
+ c := b - a + 16 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod01_f17(x: int) -> int {
+ a := x + 17
+ b := a * 2 + x
+ c := b - a + 17 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod01_f18(x: int) -> int {
+ a := x + 18
+ b := a * 2 + x
+ c := b - a + 18 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod01_f19(x: int) -> int {
+ a := x + 19
+ b := a * 2 + x
+ c := b - a + 19 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
diff --git a/bench/compiler/heavyproj/hmod02.zz b/bench/compiler/heavyproj/hmod02.zz
new file mode 100644
index 00000000..a883b834
--- /dev/null
+++ b/bench/compiler/heavyproj/hmod02.zz
@@ -0,0 +1,280 @@
+pub func hmod02_f0(x: int) -> int {
+ a := x + 0
+ b := a * 2 + x
+ c := b - a + 0 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod02_f1(x: int) -> int {
+ a := x + 1
+ b := a * 2 + x
+ c := b - a + 1 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod02_f2(x: int) -> int {
+ a := x + 2
+ b := a * 2 + x
+ c := b - a + 2 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod02_f3(x: int) -> int {
+ a := x + 3
+ b := a * 2 + x
+ c := b - a + 3 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod02_f4(x: int) -> int {
+ a := x + 4
+ b := a * 2 + x
+ c := b - a + 4 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod02_f5(x: int) -> int {
+ a := x + 5
+ b := a * 2 + x
+ c := b - a + 5 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod02_f6(x: int) -> int {
+ a := x + 6
+ b := a * 2 + x
+ c := b - a + 6 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod02_f7(x: int) -> int {
+ a := x + 7
+ b := a * 2 + x
+ c := b - a + 7 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod02_f8(x: int) -> int {
+ a := x + 8
+ b := a * 2 + x
+ c := b - a + 8 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod02_f9(x: int) -> int {
+ a := x + 9
+ b := a * 2 + x
+ c := b - a + 9 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod02_f10(x: int) -> int {
+ a := x + 10
+ b := a * 2 + x
+ c := b - a + 10 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod02_f11(x: int) -> int {
+ a := x + 11
+ b := a * 2 + x
+ c := b - a + 11 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod02_f12(x: int) -> int {
+ a := x + 12
+ b := a * 2 + x
+ c := b - a + 12 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod02_f13(x: int) -> int {
+ a := x + 13
+ b := a * 2 + x
+ c := b - a + 13 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod02_f14(x: int) -> int {
+ a := x + 14
+ b := a * 2 + x
+ c := b - a + 14 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod02_f15(x: int) -> int {
+ a := x + 15
+ b := a * 2 + x
+ c := b - a + 15 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod02_f16(x: int) -> int {
+ a := x + 16
+ b := a * 2 + x
+ c := b - a + 16 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod02_f17(x: int) -> int {
+ a := x + 17
+ b := a * 2 + x
+ c := b - a + 17 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod02_f18(x: int) -> int {
+ a := x + 18
+ b := a * 2 + x
+ c := b - a + 18 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod02_f19(x: int) -> int {
+ a := x + 19
+ b := a * 2 + x
+ c := b - a + 19 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
diff --git a/bench/compiler/heavyproj/hmod03.zz b/bench/compiler/heavyproj/hmod03.zz
new file mode 100644
index 00000000..7bbd90eb
--- /dev/null
+++ b/bench/compiler/heavyproj/hmod03.zz
@@ -0,0 +1,280 @@
+pub func hmod03_f0(x: int) -> int {
+ a := x + 0
+ b := a * 2 + x
+ c := b - a + 0 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod03_f1(x: int) -> int {
+ a := x + 1
+ b := a * 2 + x
+ c := b - a + 1 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod03_f2(x: int) -> int {
+ a := x + 2
+ b := a * 2 + x
+ c := b - a + 2 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod03_f3(x: int) -> int {
+ a := x + 3
+ b := a * 2 + x
+ c := b - a + 3 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod03_f4(x: int) -> int {
+ a := x + 4
+ b := a * 2 + x
+ c := b - a + 4 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod03_f5(x: int) -> int {
+ a := x + 5
+ b := a * 2 + x
+ c := b - a + 5 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod03_f6(x: int) -> int {
+ a := x + 6
+ b := a * 2 + x
+ c := b - a + 6 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod03_f7(x: int) -> int {
+ a := x + 7
+ b := a * 2 + x
+ c := b - a + 7 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod03_f8(x: int) -> int {
+ a := x + 8
+ b := a * 2 + x
+ c := b - a + 8 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod03_f9(x: int) -> int {
+ a := x + 9
+ b := a * 2 + x
+ c := b - a + 9 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod03_f10(x: int) -> int {
+ a := x + 10
+ b := a * 2 + x
+ c := b - a + 10 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod03_f11(x: int) -> int {
+ a := x + 11
+ b := a * 2 + x
+ c := b - a + 11 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod03_f12(x: int) -> int {
+ a := x + 12
+ b := a * 2 + x
+ c := b - a + 12 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod03_f13(x: int) -> int {
+ a := x + 13
+ b := a * 2 + x
+ c := b - a + 13 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod03_f14(x: int) -> int {
+ a := x + 14
+ b := a * 2 + x
+ c := b - a + 14 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod03_f15(x: int) -> int {
+ a := x + 15
+ b := a * 2 + x
+ c := b - a + 15 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod03_f16(x: int) -> int {
+ a := x + 16
+ b := a * 2 + x
+ c := b - a + 16 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod03_f17(x: int) -> int {
+ a := x + 17
+ b := a * 2 + x
+ c := b - a + 17 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod03_f18(x: int) -> int {
+ a := x + 18
+ b := a * 2 + x
+ c := b - a + 18 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod03_f19(x: int) -> int {
+ a := x + 19
+ b := a * 2 + x
+ c := b - a + 19 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
diff --git a/bench/compiler/heavyproj/hmod04.zz b/bench/compiler/heavyproj/hmod04.zz
new file mode 100644
index 00000000..8331de44
--- /dev/null
+++ b/bench/compiler/heavyproj/hmod04.zz
@@ -0,0 +1,280 @@
+pub func hmod04_f0(x: int) -> int {
+ a := x + 0
+ b := a * 2 + x
+ c := b - a + 0 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod04_f1(x: int) -> int {
+ a := x + 1
+ b := a * 2 + x
+ c := b - a + 1 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod04_f2(x: int) -> int {
+ a := x + 2
+ b := a * 2 + x
+ c := b - a + 2 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod04_f3(x: int) -> int {
+ a := x + 3
+ b := a * 2 + x
+ c := b - a + 3 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod04_f4(x: int) -> int {
+ a := x + 4
+ b := a * 2 + x
+ c := b - a + 4 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod04_f5(x: int) -> int {
+ a := x + 5
+ b := a * 2 + x
+ c := b - a + 5 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod04_f6(x: int) -> int {
+ a := x + 6
+ b := a * 2 + x
+ c := b - a + 6 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod04_f7(x: int) -> int {
+ a := x + 7
+ b := a * 2 + x
+ c := b - a + 7 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod04_f8(x: int) -> int {
+ a := x + 8
+ b := a * 2 + x
+ c := b - a + 8 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod04_f9(x: int) -> int {
+ a := x + 9
+ b := a * 2 + x
+ c := b - a + 9 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod04_f10(x: int) -> int {
+ a := x + 10
+ b := a * 2 + x
+ c := b - a + 10 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod04_f11(x: int) -> int {
+ a := x + 11
+ b := a * 2 + x
+ c := b - a + 11 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod04_f12(x: int) -> int {
+ a := x + 12
+ b := a * 2 + x
+ c := b - a + 12 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod04_f13(x: int) -> int {
+ a := x + 13
+ b := a * 2 + x
+ c := b - a + 13 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod04_f14(x: int) -> int {
+ a := x + 14
+ b := a * 2 + x
+ c := b - a + 14 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod04_f15(x: int) -> int {
+ a := x + 15
+ b := a * 2 + x
+ c := b - a + 15 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod04_f16(x: int) -> int {
+ a := x + 16
+ b := a * 2 + x
+ c := b - a + 16 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod04_f17(x: int) -> int {
+ a := x + 17
+ b := a * 2 + x
+ c := b - a + 17 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod04_f18(x: int) -> int {
+ a := x + 18
+ b := a * 2 + x
+ c := b - a + 18 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod04_f19(x: int) -> int {
+ a := x + 19
+ b := a * 2 + x
+ c := b - a + 19 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
diff --git a/bench/compiler/heavyproj/hmod05.zz b/bench/compiler/heavyproj/hmod05.zz
new file mode 100644
index 00000000..45a5ea51
--- /dev/null
+++ b/bench/compiler/heavyproj/hmod05.zz
@@ -0,0 +1,280 @@
+pub func hmod05_f0(x: int) -> int {
+ a := x + 0
+ b := a * 2 + x
+ c := b - a + 0 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod05_f1(x: int) -> int {
+ a := x + 1
+ b := a * 2 + x
+ c := b - a + 1 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod05_f2(x: int) -> int {
+ a := x + 2
+ b := a * 2 + x
+ c := b - a + 2 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod05_f3(x: int) -> int {
+ a := x + 3
+ b := a * 2 + x
+ c := b - a + 3 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod05_f4(x: int) -> int {
+ a := x + 4
+ b := a * 2 + x
+ c := b - a + 4 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod05_f5(x: int) -> int {
+ a := x + 5
+ b := a * 2 + x
+ c := b - a + 5 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod05_f6(x: int) -> int {
+ a := x + 6
+ b := a * 2 + x
+ c := b - a + 6 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod05_f7(x: int) -> int {
+ a := x + 7
+ b := a * 2 + x
+ c := b - a + 7 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod05_f8(x: int) -> int {
+ a := x + 8
+ b := a * 2 + x
+ c := b - a + 8 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod05_f9(x: int) -> int {
+ a := x + 9
+ b := a * 2 + x
+ c := b - a + 9 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod05_f10(x: int) -> int {
+ a := x + 10
+ b := a * 2 + x
+ c := b - a + 10 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod05_f11(x: int) -> int {
+ a := x + 11
+ b := a * 2 + x
+ c := b - a + 11 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod05_f12(x: int) -> int {
+ a := x + 12
+ b := a * 2 + x
+ c := b - a + 12 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod05_f13(x: int) -> int {
+ a := x + 13
+ b := a * 2 + x
+ c := b - a + 13 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod05_f14(x: int) -> int {
+ a := x + 14
+ b := a * 2 + x
+ c := b - a + 14 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod05_f15(x: int) -> int {
+ a := x + 15
+ b := a * 2 + x
+ c := b - a + 15 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod05_f16(x: int) -> int {
+ a := x + 16
+ b := a * 2 + x
+ c := b - a + 16 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod05_f17(x: int) -> int {
+ a := x + 17
+ b := a * 2 + x
+ c := b - a + 17 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod05_f18(x: int) -> int {
+ a := x + 18
+ b := a * 2 + x
+ c := b - a + 18 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod05_f19(x: int) -> int {
+ a := x + 19
+ b := a * 2 + x
+ c := b - a + 19 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
diff --git a/bench/compiler/heavyproj/hmod06.zz b/bench/compiler/heavyproj/hmod06.zz
new file mode 100644
index 00000000..4c9f5dfd
--- /dev/null
+++ b/bench/compiler/heavyproj/hmod06.zz
@@ -0,0 +1,280 @@
+pub func hmod06_f0(x: int) -> int {
+ a := x + 0
+ b := a * 2 + x
+ c := b - a + 0 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod06_f1(x: int) -> int {
+ a := x + 1
+ b := a * 2 + x
+ c := b - a + 1 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod06_f2(x: int) -> int {
+ a := x + 2
+ b := a * 2 + x
+ c := b - a + 2 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod06_f3(x: int) -> int {
+ a := x + 3
+ b := a * 2 + x
+ c := b - a + 3 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod06_f4(x: int) -> int {
+ a := x + 4
+ b := a * 2 + x
+ c := b - a + 4 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod06_f5(x: int) -> int {
+ a := x + 5
+ b := a * 2 + x
+ c := b - a + 5 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod06_f6(x: int) -> int {
+ a := x + 6
+ b := a * 2 + x
+ c := b - a + 6 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod06_f7(x: int) -> int {
+ a := x + 7
+ b := a * 2 + x
+ c := b - a + 7 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod06_f8(x: int) -> int {
+ a := x + 8
+ b := a * 2 + x
+ c := b - a + 8 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod06_f9(x: int) -> int {
+ a := x + 9
+ b := a * 2 + x
+ c := b - a + 9 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod06_f10(x: int) -> int {
+ a := x + 10
+ b := a * 2 + x
+ c := b - a + 10 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod06_f11(x: int) -> int {
+ a := x + 11
+ b := a * 2 + x
+ c := b - a + 11 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod06_f12(x: int) -> int {
+ a := x + 12
+ b := a * 2 + x
+ c := b - a + 12 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod06_f13(x: int) -> int {
+ a := x + 13
+ b := a * 2 + x
+ c := b - a + 13 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod06_f14(x: int) -> int {
+ a := x + 14
+ b := a * 2 + x
+ c := b - a + 14 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod06_f15(x: int) -> int {
+ a := x + 15
+ b := a * 2 + x
+ c := b - a + 15 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod06_f16(x: int) -> int {
+ a := x + 16
+ b := a * 2 + x
+ c := b - a + 16 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod06_f17(x: int) -> int {
+ a := x + 17
+ b := a * 2 + x
+ c := b - a + 17 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod06_f18(x: int) -> int {
+ a := x + 18
+ b := a * 2 + x
+ c := b - a + 18 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod06_f19(x: int) -> int {
+ a := x + 19
+ b := a * 2 + x
+ c := b - a + 19 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
diff --git a/bench/compiler/heavyproj/hmod07.zz b/bench/compiler/heavyproj/hmod07.zz
new file mode 100644
index 00000000..3d29575b
--- /dev/null
+++ b/bench/compiler/heavyproj/hmod07.zz
@@ -0,0 +1,280 @@
+pub func hmod07_f0(x: int) -> int {
+ a := x + 0
+ b := a * 2 + x
+ c := b - a + 0 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod07_f1(x: int) -> int {
+ a := x + 1
+ b := a * 2 + x
+ c := b - a + 1 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod07_f2(x: int) -> int {
+ a := x + 2
+ b := a * 2 + x
+ c := b - a + 2 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod07_f3(x: int) -> int {
+ a := x + 3
+ b := a * 2 + x
+ c := b - a + 3 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod07_f4(x: int) -> int {
+ a := x + 4
+ b := a * 2 + x
+ c := b - a + 4 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod07_f5(x: int) -> int {
+ a := x + 5
+ b := a * 2 + x
+ c := b - a + 5 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod07_f6(x: int) -> int {
+ a := x + 6
+ b := a * 2 + x
+ c := b - a + 6 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod07_f7(x: int) -> int {
+ a := x + 7
+ b := a * 2 + x
+ c := b - a + 7 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod07_f8(x: int) -> int {
+ a := x + 8
+ b := a * 2 + x
+ c := b - a + 8 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod07_f9(x: int) -> int {
+ a := x + 9
+ b := a * 2 + x
+ c := b - a + 9 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod07_f10(x: int) -> int {
+ a := x + 10
+ b := a * 2 + x
+ c := b - a + 10 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod07_f11(x: int) -> int {
+ a := x + 11
+ b := a * 2 + x
+ c := b - a + 11 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod07_f12(x: int) -> int {
+ a := x + 12
+ b := a * 2 + x
+ c := b - a + 12 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod07_f13(x: int) -> int {
+ a := x + 13
+ b := a * 2 + x
+ c := b - a + 13 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod07_f14(x: int) -> int {
+ a := x + 14
+ b := a * 2 + x
+ c := b - a + 14 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod07_f15(x: int) -> int {
+ a := x + 15
+ b := a * 2 + x
+ c := b - a + 15 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod07_f16(x: int) -> int {
+ a := x + 16
+ b := a * 2 + x
+ c := b - a + 16 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod07_f17(x: int) -> int {
+ a := x + 17
+ b := a * 2 + x
+ c := b - a + 17 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod07_f18(x: int) -> int {
+ a := x + 18
+ b := a * 2 + x
+ c := b - a + 18 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod07_f19(x: int) -> int {
+ a := x + 19
+ b := a * 2 + x
+ c := b - a + 19 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
diff --git a/bench/compiler/heavyproj/hmod08.zz b/bench/compiler/heavyproj/hmod08.zz
new file mode 100644
index 00000000..25fb903c
--- /dev/null
+++ b/bench/compiler/heavyproj/hmod08.zz
@@ -0,0 +1,280 @@
+pub func hmod08_f0(x: int) -> int {
+ a := x + 0
+ b := a * 2 + x
+ c := b - a + 0 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod08_f1(x: int) -> int {
+ a := x + 1
+ b := a * 2 + x
+ c := b - a + 1 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod08_f2(x: int) -> int {
+ a := x + 2
+ b := a * 2 + x
+ c := b - a + 2 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod08_f3(x: int) -> int {
+ a := x + 3
+ b := a * 2 + x
+ c := b - a + 3 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod08_f4(x: int) -> int {
+ a := x + 4
+ b := a * 2 + x
+ c := b - a + 4 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod08_f5(x: int) -> int {
+ a := x + 5
+ b := a * 2 + x
+ c := b - a + 5 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod08_f6(x: int) -> int {
+ a := x + 6
+ b := a * 2 + x
+ c := b - a + 6 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod08_f7(x: int) -> int {
+ a := x + 7
+ b := a * 2 + x
+ c := b - a + 7 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod08_f8(x: int) -> int {
+ a := x + 8
+ b := a * 2 + x
+ c := b - a + 8 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod08_f9(x: int) -> int {
+ a := x + 9
+ b := a * 2 + x
+ c := b - a + 9 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod08_f10(x: int) -> int {
+ a := x + 10
+ b := a * 2 + x
+ c := b - a + 10 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod08_f11(x: int) -> int {
+ a := x + 11
+ b := a * 2 + x
+ c := b - a + 11 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod08_f12(x: int) -> int {
+ a := x + 12
+ b := a * 2 + x
+ c := b - a + 12 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod08_f13(x: int) -> int {
+ a := x + 13
+ b := a * 2 + x
+ c := b - a + 13 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod08_f14(x: int) -> int {
+ a := x + 14
+ b := a * 2 + x
+ c := b - a + 14 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod08_f15(x: int) -> int {
+ a := x + 15
+ b := a * 2 + x
+ c := b - a + 15 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod08_f16(x: int) -> int {
+ a := x + 16
+ b := a * 2 + x
+ c := b - a + 16 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod08_f17(x: int) -> int {
+ a := x + 17
+ b := a * 2 + x
+ c := b - a + 17 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod08_f18(x: int) -> int {
+ a := x + 18
+ b := a * 2 + x
+ c := b - a + 18 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod08_f19(x: int) -> int {
+ a := x + 19
+ b := a * 2 + x
+ c := b - a + 19 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
diff --git a/bench/compiler/heavyproj/hmod09.zz b/bench/compiler/heavyproj/hmod09.zz
new file mode 100644
index 00000000..5fa23c5a
--- /dev/null
+++ b/bench/compiler/heavyproj/hmod09.zz
@@ -0,0 +1,280 @@
+pub func hmod09_f0(x: int) -> int {
+ a := x + 0
+ b := a * 2 + x
+ c := b - a + 0 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod09_f1(x: int) -> int {
+ a := x + 1
+ b := a * 2 + x
+ c := b - a + 1 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod09_f2(x: int) -> int {
+ a := x + 2
+ b := a * 2 + x
+ c := b - a + 2 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod09_f3(x: int) -> int {
+ a := x + 3
+ b := a * 2 + x
+ c := b - a + 3 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod09_f4(x: int) -> int {
+ a := x + 4
+ b := a * 2 + x
+ c := b - a + 4 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod09_f5(x: int) -> int {
+ a := x + 5
+ b := a * 2 + x
+ c := b - a + 5 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod09_f6(x: int) -> int {
+ a := x + 6
+ b := a * 2 + x
+ c := b - a + 6 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod09_f7(x: int) -> int {
+ a := x + 7
+ b := a * 2 + x
+ c := b - a + 7 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod09_f8(x: int) -> int {
+ a := x + 8
+ b := a * 2 + x
+ c := b - a + 8 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod09_f9(x: int) -> int {
+ a := x + 9
+ b := a * 2 + x
+ c := b - a + 9 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod09_f10(x: int) -> int {
+ a := x + 10
+ b := a * 2 + x
+ c := b - a + 10 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod09_f11(x: int) -> int {
+ a := x + 11
+ b := a * 2 + x
+ c := b - a + 11 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod09_f12(x: int) -> int {
+ a := x + 12
+ b := a * 2 + x
+ c := b - a + 12 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod09_f13(x: int) -> int {
+ a := x + 13
+ b := a * 2 + x
+ c := b - a + 13 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod09_f14(x: int) -> int {
+ a := x + 14
+ b := a * 2 + x
+ c := b - a + 14 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod09_f15(x: int) -> int {
+ a := x + 15
+ b := a * 2 + x
+ c := b - a + 15 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod09_f16(x: int) -> int {
+ a := x + 16
+ b := a * 2 + x
+ c := b - a + 16 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod09_f17(x: int) -> int {
+ a := x + 17
+ b := a * 2 + x
+ c := b - a + 17 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod09_f18(x: int) -> int {
+ a := x + 18
+ b := a * 2 + x
+ c := b - a + 18 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
+pub func hmod09_f19(x: int) -> int {
+ a := x + 19
+ b := a * 2 + x
+ c := b - a + 19 * 3
+ d := c + b - a
+ e := match d {
+ 0 => x,
+ 1 => a + b,
+ _ => c + d + a + b,
+ }
+ f := e + d - c + b - a + x
+ g := f * 2 + e - d
+ return g + f - e + d - c + b - a
+}
diff --git a/bench/compiler/heavyproj/main.zz b/bench/compiler/heavyproj/main.zz
new file mode 100644
index 00000000..d8e61e66
--- /dev/null
+++ b/bench/compiler/heavyproj/main.zz
@@ -0,0 +1,25 @@
+import hmod00
+import hmod01
+import hmod02
+import hmod03
+import hmod04
+import hmod05
+import hmod06
+import hmod07
+import hmod08
+import hmod09
+func main() -> int {
+ total := 0
+ total = total + hmod00.hmod00_f0(total)
+ total = total + hmod01.hmod01_f0(total)
+ total = total + hmod02.hmod02_f0(total)
+ total = total + hmod03.hmod03_f0(total)
+ total = total + hmod04.hmod04_f0(total)
+ total = total + hmod05.hmod05_f0(total)
+ total = total + hmod06.hmod06_f0(total)
+ total = total + hmod07.hmod07_f0(total)
+ total = total + hmod08.hmod08_f0(total)
+ total = total + hmod09.hmod09_f0(total)
+ println("{total}")
+ return total
+}
diff --git a/bench/compiler/large.zz b/bench/compiler/large.zz
new file mode 100644
index 00000000..eb6f0967
--- /dev/null
+++ b/bench/compiler/large.zz
@@ -0,0 +1,2607 @@
+// P0 compiler bench: large file — generated, ~2500 funcs to stress parse+check.
+func gen_0(x: int) -> int { x + 0 }
+func gen_1(x: int) -> int { x + 1 }
+func gen_2(x: int) -> int { x + 2 }
+func gen_3(x: int) -> int { x + 3 }
+func gen_4(x: int) -> int { x + 4 }
+func gen_5(x: int) -> int { x + 5 }
+func gen_6(x: int) -> int { x + 6 }
+func gen_7(x: int) -> int { x + 7 }
+func gen_8(x: int) -> int { x + 8 }
+func gen_9(x: int) -> int { x + 9 }
+func gen_10(x: int) -> int { x + 10 }
+func gen_11(x: int) -> int { x + 11 }
+func gen_12(x: int) -> int { x + 12 }
+func gen_13(x: int) -> int { x + 13 }
+func gen_14(x: int) -> int { x + 14 }
+func gen_15(x: int) -> int { x + 15 }
+func gen_16(x: int) -> int { x + 16 }
+func gen_17(x: int) -> int { x + 17 }
+func gen_18(x: int) -> int { x + 18 }
+func gen_19(x: int) -> int { x + 19 }
+func gen_20(x: int) -> int { x + 20 }
+func gen_21(x: int) -> int { x + 21 }
+func gen_22(x: int) -> int { x + 22 }
+func gen_23(x: int) -> int { x + 23 }
+func gen_24(x: int) -> int { x + 24 }
+func gen_25(x: int) -> int { x + 25 }
+func gen_26(x: int) -> int { x + 26 }
+func gen_27(x: int) -> int { x + 27 }
+func gen_28(x: int) -> int { x + 28 }
+func gen_29(x: int) -> int { x + 29 }
+func gen_30(x: int) -> int { x + 30 }
+func gen_31(x: int) -> int { x + 31 }
+func gen_32(x: int) -> int { x + 32 }
+func gen_33(x: int) -> int { x + 33 }
+func gen_34(x: int) -> int { x + 34 }
+func gen_35(x: int) -> int { x + 35 }
+func gen_36(x: int) -> int { x + 36 }
+func gen_37(x: int) -> int { x + 37 }
+func gen_38(x: int) -> int { x + 38 }
+func gen_39(x: int) -> int { x + 39 }
+func gen_40(x: int) -> int { x + 40 }
+func gen_41(x: int) -> int { x + 41 }
+func gen_42(x: int) -> int { x + 42 }
+func gen_43(x: int) -> int { x + 43 }
+func gen_44(x: int) -> int { x + 44 }
+func gen_45(x: int) -> int { x + 45 }
+func gen_46(x: int) -> int { x + 46 }
+func gen_47(x: int) -> int { x + 47 }
+func gen_48(x: int) -> int { x + 48 }
+func gen_49(x: int) -> int { x + 49 }
+func gen_50(x: int) -> int { x + 50 }
+func gen_51(x: int) -> int { x + 51 }
+func gen_52(x: int) -> int { x + 52 }
+func gen_53(x: int) -> int { x + 53 }
+func gen_54(x: int) -> int { x + 54 }
+func gen_55(x: int) -> int { x + 55 }
+func gen_56(x: int) -> int { x + 56 }
+func gen_57(x: int) -> int { x + 57 }
+func gen_58(x: int) -> int { x + 58 }
+func gen_59(x: int) -> int { x + 59 }
+func gen_60(x: int) -> int { x + 60 }
+func gen_61(x: int) -> int { x + 61 }
+func gen_62(x: int) -> int { x + 62 }
+func gen_63(x: int) -> int { x + 63 }
+func gen_64(x: int) -> int { x + 64 }
+func gen_65(x: int) -> int { x + 65 }
+func gen_66(x: int) -> int { x + 66 }
+func gen_67(x: int) -> int { x + 67 }
+func gen_68(x: int) -> int { x + 68 }
+func gen_69(x: int) -> int { x + 69 }
+func gen_70(x: int) -> int { x + 70 }
+func gen_71(x: int) -> int { x + 71 }
+func gen_72(x: int) -> int { x + 72 }
+func gen_73(x: int) -> int { x + 73 }
+func gen_74(x: int) -> int { x + 74 }
+func gen_75(x: int) -> int { x + 75 }
+func gen_76(x: int) -> int { x + 76 }
+func gen_77(x: int) -> int { x + 77 }
+func gen_78(x: int) -> int { x + 78 }
+func gen_79(x: int) -> int { x + 79 }
+func gen_80(x: int) -> int { x + 80 }
+func gen_81(x: int) -> int { x + 81 }
+func gen_82(x: int) -> int { x + 82 }
+func gen_83(x: int) -> int { x + 83 }
+func gen_84(x: int) -> int { x + 84 }
+func gen_85(x: int) -> int { x + 85 }
+func gen_86(x: int) -> int { x + 86 }
+func gen_87(x: int) -> int { x + 87 }
+func gen_88(x: int) -> int { x + 88 }
+func gen_89(x: int) -> int { x + 89 }
+func gen_90(x: int) -> int { x + 90 }
+func gen_91(x: int) -> int { x + 91 }
+func gen_92(x: int) -> int { x + 92 }
+func gen_93(x: int) -> int { x + 93 }
+func gen_94(x: int) -> int { x + 94 }
+func gen_95(x: int) -> int { x + 95 }
+func gen_96(x: int) -> int { x + 96 }
+func gen_97(x: int) -> int { x + 97 }
+func gen_98(x: int) -> int { x + 98 }
+func gen_99(x: int) -> int { x + 99 }
+func gen_100(x: int) -> int { x + 100 }
+func gen_101(x: int) -> int { x + 101 }
+func gen_102(x: int) -> int { x + 102 }
+func gen_103(x: int) -> int { x + 103 }
+func gen_104(x: int) -> int { x + 104 }
+func gen_105(x: int) -> int { x + 105 }
+func gen_106(x: int) -> int { x + 106 }
+func gen_107(x: int) -> int { x + 107 }
+func gen_108(x: int) -> int { x + 108 }
+func gen_109(x: int) -> int { x + 109 }
+func gen_110(x: int) -> int { x + 110 }
+func gen_111(x: int) -> int { x + 111 }
+func gen_112(x: int) -> int { x + 112 }
+func gen_113(x: int) -> int { x + 113 }
+func gen_114(x: int) -> int { x + 114 }
+func gen_115(x: int) -> int { x + 115 }
+func gen_116(x: int) -> int { x + 116 }
+func gen_117(x: int) -> int { x + 117 }
+func gen_118(x: int) -> int { x + 118 }
+func gen_119(x: int) -> int { x + 119 }
+func gen_120(x: int) -> int { x + 120 }
+func gen_121(x: int) -> int { x + 121 }
+func gen_122(x: int) -> int { x + 122 }
+func gen_123(x: int) -> int { x + 123 }
+func gen_124(x: int) -> int { x + 124 }
+func gen_125(x: int) -> int { x + 125 }
+func gen_126(x: int) -> int { x + 126 }
+func gen_127(x: int) -> int { x + 127 }
+func gen_128(x: int) -> int { x + 128 }
+func gen_129(x: int) -> int { x + 129 }
+func gen_130(x: int) -> int { x + 130 }
+func gen_131(x: int) -> int { x + 131 }
+func gen_132(x: int) -> int { x + 132 }
+func gen_133(x: int) -> int { x + 133 }
+func gen_134(x: int) -> int { x + 134 }
+func gen_135(x: int) -> int { x + 135 }
+func gen_136(x: int) -> int { x + 136 }
+func gen_137(x: int) -> int { x + 137 }
+func gen_138(x: int) -> int { x + 138 }
+func gen_139(x: int) -> int { x + 139 }
+func gen_140(x: int) -> int { x + 140 }
+func gen_141(x: int) -> int { x + 141 }
+func gen_142(x: int) -> int { x + 142 }
+func gen_143(x: int) -> int { x + 143 }
+func gen_144(x: int) -> int { x + 144 }
+func gen_145(x: int) -> int { x + 145 }
+func gen_146(x: int) -> int { x + 146 }
+func gen_147(x: int) -> int { x + 147 }
+func gen_148(x: int) -> int { x + 148 }
+func gen_149(x: int) -> int { x + 149 }
+func gen_150(x: int) -> int { x + 150 }
+func gen_151(x: int) -> int { x + 151 }
+func gen_152(x: int) -> int { x + 152 }
+func gen_153(x: int) -> int { x + 153 }
+func gen_154(x: int) -> int { x + 154 }
+func gen_155(x: int) -> int { x + 155 }
+func gen_156(x: int) -> int { x + 156 }
+func gen_157(x: int) -> int { x + 157 }
+func gen_158(x: int) -> int { x + 158 }
+func gen_159(x: int) -> int { x + 159 }
+func gen_160(x: int) -> int { x + 160 }
+func gen_161(x: int) -> int { x + 161 }
+func gen_162(x: int) -> int { x + 162 }
+func gen_163(x: int) -> int { x + 163 }
+func gen_164(x: int) -> int { x + 164 }
+func gen_165(x: int) -> int { x + 165 }
+func gen_166(x: int) -> int { x + 166 }
+func gen_167(x: int) -> int { x + 167 }
+func gen_168(x: int) -> int { x + 168 }
+func gen_169(x: int) -> int { x + 169 }
+func gen_170(x: int) -> int { x + 170 }
+func gen_171(x: int) -> int { x + 171 }
+func gen_172(x: int) -> int { x + 172 }
+func gen_173(x: int) -> int { x + 173 }
+func gen_174(x: int) -> int { x + 174 }
+func gen_175(x: int) -> int { x + 175 }
+func gen_176(x: int) -> int { x + 176 }
+func gen_177(x: int) -> int { x + 177 }
+func gen_178(x: int) -> int { x + 178 }
+func gen_179(x: int) -> int { x + 179 }
+func gen_180(x: int) -> int { x + 180 }
+func gen_181(x: int) -> int { x + 181 }
+func gen_182(x: int) -> int { x + 182 }
+func gen_183(x: int) -> int { x + 183 }
+func gen_184(x: int) -> int { x + 184 }
+func gen_185(x: int) -> int { x + 185 }
+func gen_186(x: int) -> int { x + 186 }
+func gen_187(x: int) -> int { x + 187 }
+func gen_188(x: int) -> int { x + 188 }
+func gen_189(x: int) -> int { x + 189 }
+func gen_190(x: int) -> int { x + 190 }
+func gen_191(x: int) -> int { x + 191 }
+func gen_192(x: int) -> int { x + 192 }
+func gen_193(x: int) -> int { x + 193 }
+func gen_194(x: int) -> int { x + 194 }
+func gen_195(x: int) -> int { x + 195 }
+func gen_196(x: int) -> int { x + 196 }
+func gen_197(x: int) -> int { x + 197 }
+func gen_198(x: int) -> int { x + 198 }
+func gen_199(x: int) -> int { x + 199 }
+func gen_200(x: int) -> int { x + 200 }
+func gen_201(x: int) -> int { x + 201 }
+func gen_202(x: int) -> int { x + 202 }
+func gen_203(x: int) -> int { x + 203 }
+func gen_204(x: int) -> int { x + 204 }
+func gen_205(x: int) -> int { x + 205 }
+func gen_206(x: int) -> int { x + 206 }
+func gen_207(x: int) -> int { x + 207 }
+func gen_208(x: int) -> int { x + 208 }
+func gen_209(x: int) -> int { x + 209 }
+func gen_210(x: int) -> int { x + 210 }
+func gen_211(x: int) -> int { x + 211 }
+func gen_212(x: int) -> int { x + 212 }
+func gen_213(x: int) -> int { x + 213 }
+func gen_214(x: int) -> int { x + 214 }
+func gen_215(x: int) -> int { x + 215 }
+func gen_216(x: int) -> int { x + 216 }
+func gen_217(x: int) -> int { x + 217 }
+func gen_218(x: int) -> int { x + 218 }
+func gen_219(x: int) -> int { x + 219 }
+func gen_220(x: int) -> int { x + 220 }
+func gen_221(x: int) -> int { x + 221 }
+func gen_222(x: int) -> int { x + 222 }
+func gen_223(x: int) -> int { x + 223 }
+func gen_224(x: int) -> int { x + 224 }
+func gen_225(x: int) -> int { x + 225 }
+func gen_226(x: int) -> int { x + 226 }
+func gen_227(x: int) -> int { x + 227 }
+func gen_228(x: int) -> int { x + 228 }
+func gen_229(x: int) -> int { x + 229 }
+func gen_230(x: int) -> int { x + 230 }
+func gen_231(x: int) -> int { x + 231 }
+func gen_232(x: int) -> int { x + 232 }
+func gen_233(x: int) -> int { x + 233 }
+func gen_234(x: int) -> int { x + 234 }
+func gen_235(x: int) -> int { x + 235 }
+func gen_236(x: int) -> int { x + 236 }
+func gen_237(x: int) -> int { x + 237 }
+func gen_238(x: int) -> int { x + 238 }
+func gen_239(x: int) -> int { x + 239 }
+func gen_240(x: int) -> int { x + 240 }
+func gen_241(x: int) -> int { x + 241 }
+func gen_242(x: int) -> int { x + 242 }
+func gen_243(x: int) -> int { x + 243 }
+func gen_244(x: int) -> int { x + 244 }
+func gen_245(x: int) -> int { x + 245 }
+func gen_246(x: int) -> int { x + 246 }
+func gen_247(x: int) -> int { x + 247 }
+func gen_248(x: int) -> int { x + 248 }
+func gen_249(x: int) -> int { x + 249 }
+func gen_250(x: int) -> int { x + 250 }
+func gen_251(x: int) -> int { x + 251 }
+func gen_252(x: int) -> int { x + 252 }
+func gen_253(x: int) -> int { x + 253 }
+func gen_254(x: int) -> int { x + 254 }
+func gen_255(x: int) -> int { x + 255 }
+func gen_256(x: int) -> int { x + 256 }
+func gen_257(x: int) -> int { x + 257 }
+func gen_258(x: int) -> int { x + 258 }
+func gen_259(x: int) -> int { x + 259 }
+func gen_260(x: int) -> int { x + 260 }
+func gen_261(x: int) -> int { x + 261 }
+func gen_262(x: int) -> int { x + 262 }
+func gen_263(x: int) -> int { x + 263 }
+func gen_264(x: int) -> int { x + 264 }
+func gen_265(x: int) -> int { x + 265 }
+func gen_266(x: int) -> int { x + 266 }
+func gen_267(x: int) -> int { x + 267 }
+func gen_268(x: int) -> int { x + 268 }
+func gen_269(x: int) -> int { x + 269 }
+func gen_270(x: int) -> int { x + 270 }
+func gen_271(x: int) -> int { x + 271 }
+func gen_272(x: int) -> int { x + 272 }
+func gen_273(x: int) -> int { x + 273 }
+func gen_274(x: int) -> int { x + 274 }
+func gen_275(x: int) -> int { x + 275 }
+func gen_276(x: int) -> int { x + 276 }
+func gen_277(x: int) -> int { x + 277 }
+func gen_278(x: int) -> int { x + 278 }
+func gen_279(x: int) -> int { x + 279 }
+func gen_280(x: int) -> int { x + 280 }
+func gen_281(x: int) -> int { x + 281 }
+func gen_282(x: int) -> int { x + 282 }
+func gen_283(x: int) -> int { x + 283 }
+func gen_284(x: int) -> int { x + 284 }
+func gen_285(x: int) -> int { x + 285 }
+func gen_286(x: int) -> int { x + 286 }
+func gen_287(x: int) -> int { x + 287 }
+func gen_288(x: int) -> int { x + 288 }
+func gen_289(x: int) -> int { x + 289 }
+func gen_290(x: int) -> int { x + 290 }
+func gen_291(x: int) -> int { x + 291 }
+func gen_292(x: int) -> int { x + 292 }
+func gen_293(x: int) -> int { x + 293 }
+func gen_294(x: int) -> int { x + 294 }
+func gen_295(x: int) -> int { x + 295 }
+func gen_296(x: int) -> int { x + 296 }
+func gen_297(x: int) -> int { x + 297 }
+func gen_298(x: int) -> int { x + 298 }
+func gen_299(x: int) -> int { x + 299 }
+func gen_300(x: int) -> int { x + 300 }
+func gen_301(x: int) -> int { x + 301 }
+func gen_302(x: int) -> int { x + 302 }
+func gen_303(x: int) -> int { x + 303 }
+func gen_304(x: int) -> int { x + 304 }
+func gen_305(x: int) -> int { x + 305 }
+func gen_306(x: int) -> int { x + 306 }
+func gen_307(x: int) -> int { x + 307 }
+func gen_308(x: int) -> int { x + 308 }
+func gen_309(x: int) -> int { x + 309 }
+func gen_310(x: int) -> int { x + 310 }
+func gen_311(x: int) -> int { x + 311 }
+func gen_312(x: int) -> int { x + 312 }
+func gen_313(x: int) -> int { x + 313 }
+func gen_314(x: int) -> int { x + 314 }
+func gen_315(x: int) -> int { x + 315 }
+func gen_316(x: int) -> int { x + 316 }
+func gen_317(x: int) -> int { x + 317 }
+func gen_318(x: int) -> int { x + 318 }
+func gen_319(x: int) -> int { x + 319 }
+func gen_320(x: int) -> int { x + 320 }
+func gen_321(x: int) -> int { x + 321 }
+func gen_322(x: int) -> int { x + 322 }
+func gen_323(x: int) -> int { x + 323 }
+func gen_324(x: int) -> int { x + 324 }
+func gen_325(x: int) -> int { x + 325 }
+func gen_326(x: int) -> int { x + 326 }
+func gen_327(x: int) -> int { x + 327 }
+func gen_328(x: int) -> int { x + 328 }
+func gen_329(x: int) -> int { x + 329 }
+func gen_330(x: int) -> int { x + 330 }
+func gen_331(x: int) -> int { x + 331 }
+func gen_332(x: int) -> int { x + 332 }
+func gen_333(x: int) -> int { x + 333 }
+func gen_334(x: int) -> int { x + 334 }
+func gen_335(x: int) -> int { x + 335 }
+func gen_336(x: int) -> int { x + 336 }
+func gen_337(x: int) -> int { x + 337 }
+func gen_338(x: int) -> int { x + 338 }
+func gen_339(x: int) -> int { x + 339 }
+func gen_340(x: int) -> int { x + 340 }
+func gen_341(x: int) -> int { x + 341 }
+func gen_342(x: int) -> int { x + 342 }
+func gen_343(x: int) -> int { x + 343 }
+func gen_344(x: int) -> int { x + 344 }
+func gen_345(x: int) -> int { x + 345 }
+func gen_346(x: int) -> int { x + 346 }
+func gen_347(x: int) -> int { x + 347 }
+func gen_348(x: int) -> int { x + 348 }
+func gen_349(x: int) -> int { x + 349 }
+func gen_350(x: int) -> int { x + 350 }
+func gen_351(x: int) -> int { x + 351 }
+func gen_352(x: int) -> int { x + 352 }
+func gen_353(x: int) -> int { x + 353 }
+func gen_354(x: int) -> int { x + 354 }
+func gen_355(x: int) -> int { x + 355 }
+func gen_356(x: int) -> int { x + 356 }
+func gen_357(x: int) -> int { x + 357 }
+func gen_358(x: int) -> int { x + 358 }
+func gen_359(x: int) -> int { x + 359 }
+func gen_360(x: int) -> int { x + 360 }
+func gen_361(x: int) -> int { x + 361 }
+func gen_362(x: int) -> int { x + 362 }
+func gen_363(x: int) -> int { x + 363 }
+func gen_364(x: int) -> int { x + 364 }
+func gen_365(x: int) -> int { x + 365 }
+func gen_366(x: int) -> int { x + 366 }
+func gen_367(x: int) -> int { x + 367 }
+func gen_368(x: int) -> int { x + 368 }
+func gen_369(x: int) -> int { x + 369 }
+func gen_370(x: int) -> int { x + 370 }
+func gen_371(x: int) -> int { x + 371 }
+func gen_372(x: int) -> int { x + 372 }
+func gen_373(x: int) -> int { x + 373 }
+func gen_374(x: int) -> int { x + 374 }
+func gen_375(x: int) -> int { x + 375 }
+func gen_376(x: int) -> int { x + 376 }
+func gen_377(x: int) -> int { x + 377 }
+func gen_378(x: int) -> int { x + 378 }
+func gen_379(x: int) -> int { x + 379 }
+func gen_380(x: int) -> int { x + 380 }
+func gen_381(x: int) -> int { x + 381 }
+func gen_382(x: int) -> int { x + 382 }
+func gen_383(x: int) -> int { x + 383 }
+func gen_384(x: int) -> int { x + 384 }
+func gen_385(x: int) -> int { x + 385 }
+func gen_386(x: int) -> int { x + 386 }
+func gen_387(x: int) -> int { x + 387 }
+func gen_388(x: int) -> int { x + 388 }
+func gen_389(x: int) -> int { x + 389 }
+func gen_390(x: int) -> int { x + 390 }
+func gen_391(x: int) -> int { x + 391 }
+func gen_392(x: int) -> int { x + 392 }
+func gen_393(x: int) -> int { x + 393 }
+func gen_394(x: int) -> int { x + 394 }
+func gen_395(x: int) -> int { x + 395 }
+func gen_396(x: int) -> int { x + 396 }
+func gen_397(x: int) -> int { x + 397 }
+func gen_398(x: int) -> int { x + 398 }
+func gen_399(x: int) -> int { x + 399 }
+func gen_400(x: int) -> int { x + 400 }
+func gen_401(x: int) -> int { x + 401 }
+func gen_402(x: int) -> int { x + 402 }
+func gen_403(x: int) -> int { x + 403 }
+func gen_404(x: int) -> int { x + 404 }
+func gen_405(x: int) -> int { x + 405 }
+func gen_406(x: int) -> int { x + 406 }
+func gen_407(x: int) -> int { x + 407 }
+func gen_408(x: int) -> int { x + 408 }
+func gen_409(x: int) -> int { x + 409 }
+func gen_410(x: int) -> int { x + 410 }
+func gen_411(x: int) -> int { x + 411 }
+func gen_412(x: int) -> int { x + 412 }
+func gen_413(x: int) -> int { x + 413 }
+func gen_414(x: int) -> int { x + 414 }
+func gen_415(x: int) -> int { x + 415 }
+func gen_416(x: int) -> int { x + 416 }
+func gen_417(x: int) -> int { x + 417 }
+func gen_418(x: int) -> int { x + 418 }
+func gen_419(x: int) -> int { x + 419 }
+func gen_420(x: int) -> int { x + 420 }
+func gen_421(x: int) -> int { x + 421 }
+func gen_422(x: int) -> int { x + 422 }
+func gen_423(x: int) -> int { x + 423 }
+func gen_424(x: int) -> int { x + 424 }
+func gen_425(x: int) -> int { x + 425 }
+func gen_426(x: int) -> int { x + 426 }
+func gen_427(x: int) -> int { x + 427 }
+func gen_428(x: int) -> int { x + 428 }
+func gen_429(x: int) -> int { x + 429 }
+func gen_430(x: int) -> int { x + 430 }
+func gen_431(x: int) -> int { x + 431 }
+func gen_432(x: int) -> int { x + 432 }
+func gen_433(x: int) -> int { x + 433 }
+func gen_434(x: int) -> int { x + 434 }
+func gen_435(x: int) -> int { x + 435 }
+func gen_436(x: int) -> int { x + 436 }
+func gen_437(x: int) -> int { x + 437 }
+func gen_438(x: int) -> int { x + 438 }
+func gen_439(x: int) -> int { x + 439 }
+func gen_440(x: int) -> int { x + 440 }
+func gen_441(x: int) -> int { x + 441 }
+func gen_442(x: int) -> int { x + 442 }
+func gen_443(x: int) -> int { x + 443 }
+func gen_444(x: int) -> int { x + 444 }
+func gen_445(x: int) -> int { x + 445 }
+func gen_446(x: int) -> int { x + 446 }
+func gen_447(x: int) -> int { x + 447 }
+func gen_448(x: int) -> int { x + 448 }
+func gen_449(x: int) -> int { x + 449 }
+func gen_450(x: int) -> int { x + 450 }
+func gen_451(x: int) -> int { x + 451 }
+func gen_452(x: int) -> int { x + 452 }
+func gen_453(x: int) -> int { x + 453 }
+func gen_454(x: int) -> int { x + 454 }
+func gen_455(x: int) -> int { x + 455 }
+func gen_456(x: int) -> int { x + 456 }
+func gen_457(x: int) -> int { x + 457 }
+func gen_458(x: int) -> int { x + 458 }
+func gen_459(x: int) -> int { x + 459 }
+func gen_460(x: int) -> int { x + 460 }
+func gen_461(x: int) -> int { x + 461 }
+func gen_462(x: int) -> int { x + 462 }
+func gen_463(x: int) -> int { x + 463 }
+func gen_464(x: int) -> int { x + 464 }
+func gen_465(x: int) -> int { x + 465 }
+func gen_466(x: int) -> int { x + 466 }
+func gen_467(x: int) -> int { x + 467 }
+func gen_468(x: int) -> int { x + 468 }
+func gen_469(x: int) -> int { x + 469 }
+func gen_470(x: int) -> int { x + 470 }
+func gen_471(x: int) -> int { x + 471 }
+func gen_472(x: int) -> int { x + 472 }
+func gen_473(x: int) -> int { x + 473 }
+func gen_474(x: int) -> int { x + 474 }
+func gen_475(x: int) -> int { x + 475 }
+func gen_476(x: int) -> int { x + 476 }
+func gen_477(x: int) -> int { x + 477 }
+func gen_478(x: int) -> int { x + 478 }
+func gen_479(x: int) -> int { x + 479 }
+func gen_480(x: int) -> int { x + 480 }
+func gen_481(x: int) -> int { x + 481 }
+func gen_482(x: int) -> int { x + 482 }
+func gen_483(x: int) -> int { x + 483 }
+func gen_484(x: int) -> int { x + 484 }
+func gen_485(x: int) -> int { x + 485 }
+func gen_486(x: int) -> int { x + 486 }
+func gen_487(x: int) -> int { x + 487 }
+func gen_488(x: int) -> int { x + 488 }
+func gen_489(x: int) -> int { x + 489 }
+func gen_490(x: int) -> int { x + 490 }
+func gen_491(x: int) -> int { x + 491 }
+func gen_492(x: int) -> int { x + 492 }
+func gen_493(x: int) -> int { x + 493 }
+func gen_494(x: int) -> int { x + 494 }
+func gen_495(x: int) -> int { x + 495 }
+func gen_496(x: int) -> int { x + 496 }
+func gen_497(x: int) -> int { x + 497 }
+func gen_498(x: int) -> int { x + 498 }
+func gen_499(x: int) -> int { x + 499 }
+func gen_500(x: int) -> int { x + 500 }
+func gen_501(x: int) -> int { x + 501 }
+func gen_502(x: int) -> int { x + 502 }
+func gen_503(x: int) -> int { x + 503 }
+func gen_504(x: int) -> int { x + 504 }
+func gen_505(x: int) -> int { x + 505 }
+func gen_506(x: int) -> int { x + 506 }
+func gen_507(x: int) -> int { x + 507 }
+func gen_508(x: int) -> int { x + 508 }
+func gen_509(x: int) -> int { x + 509 }
+func gen_510(x: int) -> int { x + 510 }
+func gen_511(x: int) -> int { x + 511 }
+func gen_512(x: int) -> int { x + 512 }
+func gen_513(x: int) -> int { x + 513 }
+func gen_514(x: int) -> int { x + 514 }
+func gen_515(x: int) -> int { x + 515 }
+func gen_516(x: int) -> int { x + 516 }
+func gen_517(x: int) -> int { x + 517 }
+func gen_518(x: int) -> int { x + 518 }
+func gen_519(x: int) -> int { x + 519 }
+func gen_520(x: int) -> int { x + 520 }
+func gen_521(x: int) -> int { x + 521 }
+func gen_522(x: int) -> int { x + 522 }
+func gen_523(x: int) -> int { x + 523 }
+func gen_524(x: int) -> int { x + 524 }
+func gen_525(x: int) -> int { x + 525 }
+func gen_526(x: int) -> int { x + 526 }
+func gen_527(x: int) -> int { x + 527 }
+func gen_528(x: int) -> int { x + 528 }
+func gen_529(x: int) -> int { x + 529 }
+func gen_530(x: int) -> int { x + 530 }
+func gen_531(x: int) -> int { x + 531 }
+func gen_532(x: int) -> int { x + 532 }
+func gen_533(x: int) -> int { x + 533 }
+func gen_534(x: int) -> int { x + 534 }
+func gen_535(x: int) -> int { x + 535 }
+func gen_536(x: int) -> int { x + 536 }
+func gen_537(x: int) -> int { x + 537 }
+func gen_538(x: int) -> int { x + 538 }
+func gen_539(x: int) -> int { x + 539 }
+func gen_540(x: int) -> int { x + 540 }
+func gen_541(x: int) -> int { x + 541 }
+func gen_542(x: int) -> int { x + 542 }
+func gen_543(x: int) -> int { x + 543 }
+func gen_544(x: int) -> int { x + 544 }
+func gen_545(x: int) -> int { x + 545 }
+func gen_546(x: int) -> int { x + 546 }
+func gen_547(x: int) -> int { x + 547 }
+func gen_548(x: int) -> int { x + 548 }
+func gen_549(x: int) -> int { x + 549 }
+func gen_550(x: int) -> int { x + 550 }
+func gen_551(x: int) -> int { x + 551 }
+func gen_552(x: int) -> int { x + 552 }
+func gen_553(x: int) -> int { x + 553 }
+func gen_554(x: int) -> int { x + 554 }
+func gen_555(x: int) -> int { x + 555 }
+func gen_556(x: int) -> int { x + 556 }
+func gen_557(x: int) -> int { x + 557 }
+func gen_558(x: int) -> int { x + 558 }
+func gen_559(x: int) -> int { x + 559 }
+func gen_560(x: int) -> int { x + 560 }
+func gen_561(x: int) -> int { x + 561 }
+func gen_562(x: int) -> int { x + 562 }
+func gen_563(x: int) -> int { x + 563 }
+func gen_564(x: int) -> int { x + 564 }
+func gen_565(x: int) -> int { x + 565 }
+func gen_566(x: int) -> int { x + 566 }
+func gen_567(x: int) -> int { x + 567 }
+func gen_568(x: int) -> int { x + 568 }
+func gen_569(x: int) -> int { x + 569 }
+func gen_570(x: int) -> int { x + 570 }
+func gen_571(x: int) -> int { x + 571 }
+func gen_572(x: int) -> int { x + 572 }
+func gen_573(x: int) -> int { x + 573 }
+func gen_574(x: int) -> int { x + 574 }
+func gen_575(x: int) -> int { x + 575 }
+func gen_576(x: int) -> int { x + 576 }
+func gen_577(x: int) -> int { x + 577 }
+func gen_578(x: int) -> int { x + 578 }
+func gen_579(x: int) -> int { x + 579 }
+func gen_580(x: int) -> int { x + 580 }
+func gen_581(x: int) -> int { x + 581 }
+func gen_582(x: int) -> int { x + 582 }
+func gen_583(x: int) -> int { x + 583 }
+func gen_584(x: int) -> int { x + 584 }
+func gen_585(x: int) -> int { x + 585 }
+func gen_586(x: int) -> int { x + 586 }
+func gen_587(x: int) -> int { x + 587 }
+func gen_588(x: int) -> int { x + 588 }
+func gen_589(x: int) -> int { x + 589 }
+func gen_590(x: int) -> int { x + 590 }
+func gen_591(x: int) -> int { x + 591 }
+func gen_592(x: int) -> int { x + 592 }
+func gen_593(x: int) -> int { x + 593 }
+func gen_594(x: int) -> int { x + 594 }
+func gen_595(x: int) -> int { x + 595 }
+func gen_596(x: int) -> int { x + 596 }
+func gen_597(x: int) -> int { x + 597 }
+func gen_598(x: int) -> int { x + 598 }
+func gen_599(x: int) -> int { x + 599 }
+func gen_600(x: int) -> int { x + 600 }
+func gen_601(x: int) -> int { x + 601 }
+func gen_602(x: int) -> int { x + 602 }
+func gen_603(x: int) -> int { x + 603 }
+func gen_604(x: int) -> int { x + 604 }
+func gen_605(x: int) -> int { x + 605 }
+func gen_606(x: int) -> int { x + 606 }
+func gen_607(x: int) -> int { x + 607 }
+func gen_608(x: int) -> int { x + 608 }
+func gen_609(x: int) -> int { x + 609 }
+func gen_610(x: int) -> int { x + 610 }
+func gen_611(x: int) -> int { x + 611 }
+func gen_612(x: int) -> int { x + 612 }
+func gen_613(x: int) -> int { x + 613 }
+func gen_614(x: int) -> int { x + 614 }
+func gen_615(x: int) -> int { x + 615 }
+func gen_616(x: int) -> int { x + 616 }
+func gen_617(x: int) -> int { x + 617 }
+func gen_618(x: int) -> int { x + 618 }
+func gen_619(x: int) -> int { x + 619 }
+func gen_620(x: int) -> int { x + 620 }
+func gen_621(x: int) -> int { x + 621 }
+func gen_622(x: int) -> int { x + 622 }
+func gen_623(x: int) -> int { x + 623 }
+func gen_624(x: int) -> int { x + 624 }
+func gen_625(x: int) -> int { x + 625 }
+func gen_626(x: int) -> int { x + 626 }
+func gen_627(x: int) -> int { x + 627 }
+func gen_628(x: int) -> int { x + 628 }
+func gen_629(x: int) -> int { x + 629 }
+func gen_630(x: int) -> int { x + 630 }
+func gen_631(x: int) -> int { x + 631 }
+func gen_632(x: int) -> int { x + 632 }
+func gen_633(x: int) -> int { x + 633 }
+func gen_634(x: int) -> int { x + 634 }
+func gen_635(x: int) -> int { x + 635 }
+func gen_636(x: int) -> int { x + 636 }
+func gen_637(x: int) -> int { x + 637 }
+func gen_638(x: int) -> int { x + 638 }
+func gen_639(x: int) -> int { x + 639 }
+func gen_640(x: int) -> int { x + 640 }
+func gen_641(x: int) -> int { x + 641 }
+func gen_642(x: int) -> int { x + 642 }
+func gen_643(x: int) -> int { x + 643 }
+func gen_644(x: int) -> int { x + 644 }
+func gen_645(x: int) -> int { x + 645 }
+func gen_646(x: int) -> int { x + 646 }
+func gen_647(x: int) -> int { x + 647 }
+func gen_648(x: int) -> int { x + 648 }
+func gen_649(x: int) -> int { x + 649 }
+func gen_650(x: int) -> int { x + 650 }
+func gen_651(x: int) -> int { x + 651 }
+func gen_652(x: int) -> int { x + 652 }
+func gen_653(x: int) -> int { x + 653 }
+func gen_654(x: int) -> int { x + 654 }
+func gen_655(x: int) -> int { x + 655 }
+func gen_656(x: int) -> int { x + 656 }
+func gen_657(x: int) -> int { x + 657 }
+func gen_658(x: int) -> int { x + 658 }
+func gen_659(x: int) -> int { x + 659 }
+func gen_660(x: int) -> int { x + 660 }
+func gen_661(x: int) -> int { x + 661 }
+func gen_662(x: int) -> int { x + 662 }
+func gen_663(x: int) -> int { x + 663 }
+func gen_664(x: int) -> int { x + 664 }
+func gen_665(x: int) -> int { x + 665 }
+func gen_666(x: int) -> int { x + 666 }
+func gen_667(x: int) -> int { x + 667 }
+func gen_668(x: int) -> int { x + 668 }
+func gen_669(x: int) -> int { x + 669 }
+func gen_670(x: int) -> int { x + 670 }
+func gen_671(x: int) -> int { x + 671 }
+func gen_672(x: int) -> int { x + 672 }
+func gen_673(x: int) -> int { x + 673 }
+func gen_674(x: int) -> int { x + 674 }
+func gen_675(x: int) -> int { x + 675 }
+func gen_676(x: int) -> int { x + 676 }
+func gen_677(x: int) -> int { x + 677 }
+func gen_678(x: int) -> int { x + 678 }
+func gen_679(x: int) -> int { x + 679 }
+func gen_680(x: int) -> int { x + 680 }
+func gen_681(x: int) -> int { x + 681 }
+func gen_682(x: int) -> int { x + 682 }
+func gen_683(x: int) -> int { x + 683 }
+func gen_684(x: int) -> int { x + 684 }
+func gen_685(x: int) -> int { x + 685 }
+func gen_686(x: int) -> int { x + 686 }
+func gen_687(x: int) -> int { x + 687 }
+func gen_688(x: int) -> int { x + 688 }
+func gen_689(x: int) -> int { x + 689 }
+func gen_690(x: int) -> int { x + 690 }
+func gen_691(x: int) -> int { x + 691 }
+func gen_692(x: int) -> int { x + 692 }
+func gen_693(x: int) -> int { x + 693 }
+func gen_694(x: int) -> int { x + 694 }
+func gen_695(x: int) -> int { x + 695 }
+func gen_696(x: int) -> int { x + 696 }
+func gen_697(x: int) -> int { x + 697 }
+func gen_698(x: int) -> int { x + 698 }
+func gen_699(x: int) -> int { x + 699 }
+func gen_700(x: int) -> int { x + 700 }
+func gen_701(x: int) -> int { x + 701 }
+func gen_702(x: int) -> int { x + 702 }
+func gen_703(x: int) -> int { x + 703 }
+func gen_704(x: int) -> int { x + 704 }
+func gen_705(x: int) -> int { x + 705 }
+func gen_706(x: int) -> int { x + 706 }
+func gen_707(x: int) -> int { x + 707 }
+func gen_708(x: int) -> int { x + 708 }
+func gen_709(x: int) -> int { x + 709 }
+func gen_710(x: int) -> int { x + 710 }
+func gen_711(x: int) -> int { x + 711 }
+func gen_712(x: int) -> int { x + 712 }
+func gen_713(x: int) -> int { x + 713 }
+func gen_714(x: int) -> int { x + 714 }
+func gen_715(x: int) -> int { x + 715 }
+func gen_716(x: int) -> int { x + 716 }
+func gen_717(x: int) -> int { x + 717 }
+func gen_718(x: int) -> int { x + 718 }
+func gen_719(x: int) -> int { x + 719 }
+func gen_720(x: int) -> int { x + 720 }
+func gen_721(x: int) -> int { x + 721 }
+func gen_722(x: int) -> int { x + 722 }
+func gen_723(x: int) -> int { x + 723 }
+func gen_724(x: int) -> int { x + 724 }
+func gen_725(x: int) -> int { x + 725 }
+func gen_726(x: int) -> int { x + 726 }
+func gen_727(x: int) -> int { x + 727 }
+func gen_728(x: int) -> int { x + 728 }
+func gen_729(x: int) -> int { x + 729 }
+func gen_730(x: int) -> int { x + 730 }
+func gen_731(x: int) -> int { x + 731 }
+func gen_732(x: int) -> int { x + 732 }
+func gen_733(x: int) -> int { x + 733 }
+func gen_734(x: int) -> int { x + 734 }
+func gen_735(x: int) -> int { x + 735 }
+func gen_736(x: int) -> int { x + 736 }
+func gen_737(x: int) -> int { x + 737 }
+func gen_738(x: int) -> int { x + 738 }
+func gen_739(x: int) -> int { x + 739 }
+func gen_740(x: int) -> int { x + 740 }
+func gen_741(x: int) -> int { x + 741 }
+func gen_742(x: int) -> int { x + 742 }
+func gen_743(x: int) -> int { x + 743 }
+func gen_744(x: int) -> int { x + 744 }
+func gen_745(x: int) -> int { x + 745 }
+func gen_746(x: int) -> int { x + 746 }
+func gen_747(x: int) -> int { x + 747 }
+func gen_748(x: int) -> int { x + 748 }
+func gen_749(x: int) -> int { x + 749 }
+func gen_750(x: int) -> int { x + 750 }
+func gen_751(x: int) -> int { x + 751 }
+func gen_752(x: int) -> int { x + 752 }
+func gen_753(x: int) -> int { x + 753 }
+func gen_754(x: int) -> int { x + 754 }
+func gen_755(x: int) -> int { x + 755 }
+func gen_756(x: int) -> int { x + 756 }
+func gen_757(x: int) -> int { x + 757 }
+func gen_758(x: int) -> int { x + 758 }
+func gen_759(x: int) -> int { x + 759 }
+func gen_760(x: int) -> int { x + 760 }
+func gen_761(x: int) -> int { x + 761 }
+func gen_762(x: int) -> int { x + 762 }
+func gen_763(x: int) -> int { x + 763 }
+func gen_764(x: int) -> int { x + 764 }
+func gen_765(x: int) -> int { x + 765 }
+func gen_766(x: int) -> int { x + 766 }
+func gen_767(x: int) -> int { x + 767 }
+func gen_768(x: int) -> int { x + 768 }
+func gen_769(x: int) -> int { x + 769 }
+func gen_770(x: int) -> int { x + 770 }
+func gen_771(x: int) -> int { x + 771 }
+func gen_772(x: int) -> int { x + 772 }
+func gen_773(x: int) -> int { x + 773 }
+func gen_774(x: int) -> int { x + 774 }
+func gen_775(x: int) -> int { x + 775 }
+func gen_776(x: int) -> int { x + 776 }
+func gen_777(x: int) -> int { x + 777 }
+func gen_778(x: int) -> int { x + 778 }
+func gen_779(x: int) -> int { x + 779 }
+func gen_780(x: int) -> int { x + 780 }
+func gen_781(x: int) -> int { x + 781 }
+func gen_782(x: int) -> int { x + 782 }
+func gen_783(x: int) -> int { x + 783 }
+func gen_784(x: int) -> int { x + 784 }
+func gen_785(x: int) -> int { x + 785 }
+func gen_786(x: int) -> int { x + 786 }
+func gen_787(x: int) -> int { x + 787 }
+func gen_788(x: int) -> int { x + 788 }
+func gen_789(x: int) -> int { x + 789 }
+func gen_790(x: int) -> int { x + 790 }
+func gen_791(x: int) -> int { x + 791 }
+func gen_792(x: int) -> int { x + 792 }
+func gen_793(x: int) -> int { x + 793 }
+func gen_794(x: int) -> int { x + 794 }
+func gen_795(x: int) -> int { x + 795 }
+func gen_796(x: int) -> int { x + 796 }
+func gen_797(x: int) -> int { x + 797 }
+func gen_798(x: int) -> int { x + 798 }
+func gen_799(x: int) -> int { x + 799 }
+func gen_800(x: int) -> int { x + 800 }
+func gen_801(x: int) -> int { x + 801 }
+func gen_802(x: int) -> int { x + 802 }
+func gen_803(x: int) -> int { x + 803 }
+func gen_804(x: int) -> int { x + 804 }
+func gen_805(x: int) -> int { x + 805 }
+func gen_806(x: int) -> int { x + 806 }
+func gen_807(x: int) -> int { x + 807 }
+func gen_808(x: int) -> int { x + 808 }
+func gen_809(x: int) -> int { x + 809 }
+func gen_810(x: int) -> int { x + 810 }
+func gen_811(x: int) -> int { x + 811 }
+func gen_812(x: int) -> int { x + 812 }
+func gen_813(x: int) -> int { x + 813 }
+func gen_814(x: int) -> int { x + 814 }
+func gen_815(x: int) -> int { x + 815 }
+func gen_816(x: int) -> int { x + 816 }
+func gen_817(x: int) -> int { x + 817 }
+func gen_818(x: int) -> int { x + 818 }
+func gen_819(x: int) -> int { x + 819 }
+func gen_820(x: int) -> int { x + 820 }
+func gen_821(x: int) -> int { x + 821 }
+func gen_822(x: int) -> int { x + 822 }
+func gen_823(x: int) -> int { x + 823 }
+func gen_824(x: int) -> int { x + 824 }
+func gen_825(x: int) -> int { x + 825 }
+func gen_826(x: int) -> int { x + 826 }
+func gen_827(x: int) -> int { x + 827 }
+func gen_828(x: int) -> int { x + 828 }
+func gen_829(x: int) -> int { x + 829 }
+func gen_830(x: int) -> int { x + 830 }
+func gen_831(x: int) -> int { x + 831 }
+func gen_832(x: int) -> int { x + 832 }
+func gen_833(x: int) -> int { x + 833 }
+func gen_834(x: int) -> int { x + 834 }
+func gen_835(x: int) -> int { x + 835 }
+func gen_836(x: int) -> int { x + 836 }
+func gen_837(x: int) -> int { x + 837 }
+func gen_838(x: int) -> int { x + 838 }
+func gen_839(x: int) -> int { x + 839 }
+func gen_840(x: int) -> int { x + 840 }
+func gen_841(x: int) -> int { x + 841 }
+func gen_842(x: int) -> int { x + 842 }
+func gen_843(x: int) -> int { x + 843 }
+func gen_844(x: int) -> int { x + 844 }
+func gen_845(x: int) -> int { x + 845 }
+func gen_846(x: int) -> int { x + 846 }
+func gen_847(x: int) -> int { x + 847 }
+func gen_848(x: int) -> int { x + 848 }
+func gen_849(x: int) -> int { x + 849 }
+func gen_850(x: int) -> int { x + 850 }
+func gen_851(x: int) -> int { x + 851 }
+func gen_852(x: int) -> int { x + 852 }
+func gen_853(x: int) -> int { x + 853 }
+func gen_854(x: int) -> int { x + 854 }
+func gen_855(x: int) -> int { x + 855 }
+func gen_856(x: int) -> int { x + 856 }
+func gen_857(x: int) -> int { x + 857 }
+func gen_858(x: int) -> int { x + 858 }
+func gen_859(x: int) -> int { x + 859 }
+func gen_860(x: int) -> int { x + 860 }
+func gen_861(x: int) -> int { x + 861 }
+func gen_862(x: int) -> int { x + 862 }
+func gen_863(x: int) -> int { x + 863 }
+func gen_864(x: int) -> int { x + 864 }
+func gen_865(x: int) -> int { x + 865 }
+func gen_866(x: int) -> int { x + 866 }
+func gen_867(x: int) -> int { x + 867 }
+func gen_868(x: int) -> int { x + 868 }
+func gen_869(x: int) -> int { x + 869 }
+func gen_870(x: int) -> int { x + 870 }
+func gen_871(x: int) -> int { x + 871 }
+func gen_872(x: int) -> int { x + 872 }
+func gen_873(x: int) -> int { x + 873 }
+func gen_874(x: int) -> int { x + 874 }
+func gen_875(x: int) -> int { x + 875 }
+func gen_876(x: int) -> int { x + 876 }
+func gen_877(x: int) -> int { x + 877 }
+func gen_878(x: int) -> int { x + 878 }
+func gen_879(x: int) -> int { x + 879 }
+func gen_880(x: int) -> int { x + 880 }
+func gen_881(x: int) -> int { x + 881 }
+func gen_882(x: int) -> int { x + 882 }
+func gen_883(x: int) -> int { x + 883 }
+func gen_884(x: int) -> int { x + 884 }
+func gen_885(x: int) -> int { x + 885 }
+func gen_886(x: int) -> int { x + 886 }
+func gen_887(x: int) -> int { x + 887 }
+func gen_888(x: int) -> int { x + 888 }
+func gen_889(x: int) -> int { x + 889 }
+func gen_890(x: int) -> int { x + 890 }
+func gen_891(x: int) -> int { x + 891 }
+func gen_892(x: int) -> int { x + 892 }
+func gen_893(x: int) -> int { x + 893 }
+func gen_894(x: int) -> int { x + 894 }
+func gen_895(x: int) -> int { x + 895 }
+func gen_896(x: int) -> int { x + 896 }
+func gen_897(x: int) -> int { x + 897 }
+func gen_898(x: int) -> int { x + 898 }
+func gen_899(x: int) -> int { x + 899 }
+func gen_900(x: int) -> int { x + 900 }
+func gen_901(x: int) -> int { x + 901 }
+func gen_902(x: int) -> int { x + 902 }
+func gen_903(x: int) -> int { x + 903 }
+func gen_904(x: int) -> int { x + 904 }
+func gen_905(x: int) -> int { x + 905 }
+func gen_906(x: int) -> int { x + 906 }
+func gen_907(x: int) -> int { x + 907 }
+func gen_908(x: int) -> int { x + 908 }
+func gen_909(x: int) -> int { x + 909 }
+func gen_910(x: int) -> int { x + 910 }
+func gen_911(x: int) -> int { x + 911 }
+func gen_912(x: int) -> int { x + 912 }
+func gen_913(x: int) -> int { x + 913 }
+func gen_914(x: int) -> int { x + 914 }
+func gen_915(x: int) -> int { x + 915 }
+func gen_916(x: int) -> int { x + 916 }
+func gen_917(x: int) -> int { x + 917 }
+func gen_918(x: int) -> int { x + 918 }
+func gen_919(x: int) -> int { x + 919 }
+func gen_920(x: int) -> int { x + 920 }
+func gen_921(x: int) -> int { x + 921 }
+func gen_922(x: int) -> int { x + 922 }
+func gen_923(x: int) -> int { x + 923 }
+func gen_924(x: int) -> int { x + 924 }
+func gen_925(x: int) -> int { x + 925 }
+func gen_926(x: int) -> int { x + 926 }
+func gen_927(x: int) -> int { x + 927 }
+func gen_928(x: int) -> int { x + 928 }
+func gen_929(x: int) -> int { x + 929 }
+func gen_930(x: int) -> int { x + 930 }
+func gen_931(x: int) -> int { x + 931 }
+func gen_932(x: int) -> int { x + 932 }
+func gen_933(x: int) -> int { x + 933 }
+func gen_934(x: int) -> int { x + 934 }
+func gen_935(x: int) -> int { x + 935 }
+func gen_936(x: int) -> int { x + 936 }
+func gen_937(x: int) -> int { x + 937 }
+func gen_938(x: int) -> int { x + 938 }
+func gen_939(x: int) -> int { x + 939 }
+func gen_940(x: int) -> int { x + 940 }
+func gen_941(x: int) -> int { x + 941 }
+func gen_942(x: int) -> int { x + 942 }
+func gen_943(x: int) -> int { x + 943 }
+func gen_944(x: int) -> int { x + 944 }
+func gen_945(x: int) -> int { x + 945 }
+func gen_946(x: int) -> int { x + 946 }
+func gen_947(x: int) -> int { x + 947 }
+func gen_948(x: int) -> int { x + 948 }
+func gen_949(x: int) -> int { x + 949 }
+func gen_950(x: int) -> int { x + 950 }
+func gen_951(x: int) -> int { x + 951 }
+func gen_952(x: int) -> int { x + 952 }
+func gen_953(x: int) -> int { x + 953 }
+func gen_954(x: int) -> int { x + 954 }
+func gen_955(x: int) -> int { x + 955 }
+func gen_956(x: int) -> int { x + 956 }
+func gen_957(x: int) -> int { x + 957 }
+func gen_958(x: int) -> int { x + 958 }
+func gen_959(x: int) -> int { x + 959 }
+func gen_960(x: int) -> int { x + 960 }
+func gen_961(x: int) -> int { x + 961 }
+func gen_962(x: int) -> int { x + 962 }
+func gen_963(x: int) -> int { x + 963 }
+func gen_964(x: int) -> int { x + 964 }
+func gen_965(x: int) -> int { x + 965 }
+func gen_966(x: int) -> int { x + 966 }
+func gen_967(x: int) -> int { x + 967 }
+func gen_968(x: int) -> int { x + 968 }
+func gen_969(x: int) -> int { x + 969 }
+func gen_970(x: int) -> int { x + 970 }
+func gen_971(x: int) -> int { x + 971 }
+func gen_972(x: int) -> int { x + 972 }
+func gen_973(x: int) -> int { x + 973 }
+func gen_974(x: int) -> int { x + 974 }
+func gen_975(x: int) -> int { x + 975 }
+func gen_976(x: int) -> int { x + 976 }
+func gen_977(x: int) -> int { x + 977 }
+func gen_978(x: int) -> int { x + 978 }
+func gen_979(x: int) -> int { x + 979 }
+func gen_980(x: int) -> int { x + 980 }
+func gen_981(x: int) -> int { x + 981 }
+func gen_982(x: int) -> int { x + 982 }
+func gen_983(x: int) -> int { x + 983 }
+func gen_984(x: int) -> int { x + 984 }
+func gen_985(x: int) -> int { x + 985 }
+func gen_986(x: int) -> int { x + 986 }
+func gen_987(x: int) -> int { x + 987 }
+func gen_988(x: int) -> int { x + 988 }
+func gen_989(x: int) -> int { x + 989 }
+func gen_990(x: int) -> int { x + 990 }
+func gen_991(x: int) -> int { x + 991 }
+func gen_992(x: int) -> int { x + 992 }
+func gen_993(x: int) -> int { x + 993 }
+func gen_994(x: int) -> int { x + 994 }
+func gen_995(x: int) -> int { x + 995 }
+func gen_996(x: int) -> int { x + 996 }
+func gen_997(x: int) -> int { x + 997 }
+func gen_998(x: int) -> int { x + 998 }
+func gen_999(x: int) -> int { x + 999 }
+func gen_1000(x: int) -> int { x + 1000 }
+func gen_1001(x: int) -> int { x + 1001 }
+func gen_1002(x: int) -> int { x + 1002 }
+func gen_1003(x: int) -> int { x + 1003 }
+func gen_1004(x: int) -> int { x + 1004 }
+func gen_1005(x: int) -> int { x + 1005 }
+func gen_1006(x: int) -> int { x + 1006 }
+func gen_1007(x: int) -> int { x + 1007 }
+func gen_1008(x: int) -> int { x + 1008 }
+func gen_1009(x: int) -> int { x + 1009 }
+func gen_1010(x: int) -> int { x + 1010 }
+func gen_1011(x: int) -> int { x + 1011 }
+func gen_1012(x: int) -> int { x + 1012 }
+func gen_1013(x: int) -> int { x + 1013 }
+func gen_1014(x: int) -> int { x + 1014 }
+func gen_1015(x: int) -> int { x + 1015 }
+func gen_1016(x: int) -> int { x + 1016 }
+func gen_1017(x: int) -> int { x + 1017 }
+func gen_1018(x: int) -> int { x + 1018 }
+func gen_1019(x: int) -> int { x + 1019 }
+func gen_1020(x: int) -> int { x + 1020 }
+func gen_1021(x: int) -> int { x + 1021 }
+func gen_1022(x: int) -> int { x + 1022 }
+func gen_1023(x: int) -> int { x + 1023 }
+func gen_1024(x: int) -> int { x + 1024 }
+func gen_1025(x: int) -> int { x + 1025 }
+func gen_1026(x: int) -> int { x + 1026 }
+func gen_1027(x: int) -> int { x + 1027 }
+func gen_1028(x: int) -> int { x + 1028 }
+func gen_1029(x: int) -> int { x + 1029 }
+func gen_1030(x: int) -> int { x + 1030 }
+func gen_1031(x: int) -> int { x + 1031 }
+func gen_1032(x: int) -> int { x + 1032 }
+func gen_1033(x: int) -> int { x + 1033 }
+func gen_1034(x: int) -> int { x + 1034 }
+func gen_1035(x: int) -> int { x + 1035 }
+func gen_1036(x: int) -> int { x + 1036 }
+func gen_1037(x: int) -> int { x + 1037 }
+func gen_1038(x: int) -> int { x + 1038 }
+func gen_1039(x: int) -> int { x + 1039 }
+func gen_1040(x: int) -> int { x + 1040 }
+func gen_1041(x: int) -> int { x + 1041 }
+func gen_1042(x: int) -> int { x + 1042 }
+func gen_1043(x: int) -> int { x + 1043 }
+func gen_1044(x: int) -> int { x + 1044 }
+func gen_1045(x: int) -> int { x + 1045 }
+func gen_1046(x: int) -> int { x + 1046 }
+func gen_1047(x: int) -> int { x + 1047 }
+func gen_1048(x: int) -> int { x + 1048 }
+func gen_1049(x: int) -> int { x + 1049 }
+func gen_1050(x: int) -> int { x + 1050 }
+func gen_1051(x: int) -> int { x + 1051 }
+func gen_1052(x: int) -> int { x + 1052 }
+func gen_1053(x: int) -> int { x + 1053 }
+func gen_1054(x: int) -> int { x + 1054 }
+func gen_1055(x: int) -> int { x + 1055 }
+func gen_1056(x: int) -> int { x + 1056 }
+func gen_1057(x: int) -> int { x + 1057 }
+func gen_1058(x: int) -> int { x + 1058 }
+func gen_1059(x: int) -> int { x + 1059 }
+func gen_1060(x: int) -> int { x + 1060 }
+func gen_1061(x: int) -> int { x + 1061 }
+func gen_1062(x: int) -> int { x + 1062 }
+func gen_1063(x: int) -> int { x + 1063 }
+func gen_1064(x: int) -> int { x + 1064 }
+func gen_1065(x: int) -> int { x + 1065 }
+func gen_1066(x: int) -> int { x + 1066 }
+func gen_1067(x: int) -> int { x + 1067 }
+func gen_1068(x: int) -> int { x + 1068 }
+func gen_1069(x: int) -> int { x + 1069 }
+func gen_1070(x: int) -> int { x + 1070 }
+func gen_1071(x: int) -> int { x + 1071 }
+func gen_1072(x: int) -> int { x + 1072 }
+func gen_1073(x: int) -> int { x + 1073 }
+func gen_1074(x: int) -> int { x + 1074 }
+func gen_1075(x: int) -> int { x + 1075 }
+func gen_1076(x: int) -> int { x + 1076 }
+func gen_1077(x: int) -> int { x + 1077 }
+func gen_1078(x: int) -> int { x + 1078 }
+func gen_1079(x: int) -> int { x + 1079 }
+func gen_1080(x: int) -> int { x + 1080 }
+func gen_1081(x: int) -> int { x + 1081 }
+func gen_1082(x: int) -> int { x + 1082 }
+func gen_1083(x: int) -> int { x + 1083 }
+func gen_1084(x: int) -> int { x + 1084 }
+func gen_1085(x: int) -> int { x + 1085 }
+func gen_1086(x: int) -> int { x + 1086 }
+func gen_1087(x: int) -> int { x + 1087 }
+func gen_1088(x: int) -> int { x + 1088 }
+func gen_1089(x: int) -> int { x + 1089 }
+func gen_1090(x: int) -> int { x + 1090 }
+func gen_1091(x: int) -> int { x + 1091 }
+func gen_1092(x: int) -> int { x + 1092 }
+func gen_1093(x: int) -> int { x + 1093 }
+func gen_1094(x: int) -> int { x + 1094 }
+func gen_1095(x: int) -> int { x + 1095 }
+func gen_1096(x: int) -> int { x + 1096 }
+func gen_1097(x: int) -> int { x + 1097 }
+func gen_1098(x: int) -> int { x + 1098 }
+func gen_1099(x: int) -> int { x + 1099 }
+func gen_1100(x: int) -> int { x + 1100 }
+func gen_1101(x: int) -> int { x + 1101 }
+func gen_1102(x: int) -> int { x + 1102 }
+func gen_1103(x: int) -> int { x + 1103 }
+func gen_1104(x: int) -> int { x + 1104 }
+func gen_1105(x: int) -> int { x + 1105 }
+func gen_1106(x: int) -> int { x + 1106 }
+func gen_1107(x: int) -> int { x + 1107 }
+func gen_1108(x: int) -> int { x + 1108 }
+func gen_1109(x: int) -> int { x + 1109 }
+func gen_1110(x: int) -> int { x + 1110 }
+func gen_1111(x: int) -> int { x + 1111 }
+func gen_1112(x: int) -> int { x + 1112 }
+func gen_1113(x: int) -> int { x + 1113 }
+func gen_1114(x: int) -> int { x + 1114 }
+func gen_1115(x: int) -> int { x + 1115 }
+func gen_1116(x: int) -> int { x + 1116 }
+func gen_1117(x: int) -> int { x + 1117 }
+func gen_1118(x: int) -> int { x + 1118 }
+func gen_1119(x: int) -> int { x + 1119 }
+func gen_1120(x: int) -> int { x + 1120 }
+func gen_1121(x: int) -> int { x + 1121 }
+func gen_1122(x: int) -> int { x + 1122 }
+func gen_1123(x: int) -> int { x + 1123 }
+func gen_1124(x: int) -> int { x + 1124 }
+func gen_1125(x: int) -> int { x + 1125 }
+func gen_1126(x: int) -> int { x + 1126 }
+func gen_1127(x: int) -> int { x + 1127 }
+func gen_1128(x: int) -> int { x + 1128 }
+func gen_1129(x: int) -> int { x + 1129 }
+func gen_1130(x: int) -> int { x + 1130 }
+func gen_1131(x: int) -> int { x + 1131 }
+func gen_1132(x: int) -> int { x + 1132 }
+func gen_1133(x: int) -> int { x + 1133 }
+func gen_1134(x: int) -> int { x + 1134 }
+func gen_1135(x: int) -> int { x + 1135 }
+func gen_1136(x: int) -> int { x + 1136 }
+func gen_1137(x: int) -> int { x + 1137 }
+func gen_1138(x: int) -> int { x + 1138 }
+func gen_1139(x: int) -> int { x + 1139 }
+func gen_1140(x: int) -> int { x + 1140 }
+func gen_1141(x: int) -> int { x + 1141 }
+func gen_1142(x: int) -> int { x + 1142 }
+func gen_1143(x: int) -> int { x + 1143 }
+func gen_1144(x: int) -> int { x + 1144 }
+func gen_1145(x: int) -> int { x + 1145 }
+func gen_1146(x: int) -> int { x + 1146 }
+func gen_1147(x: int) -> int { x + 1147 }
+func gen_1148(x: int) -> int { x + 1148 }
+func gen_1149(x: int) -> int { x + 1149 }
+func gen_1150(x: int) -> int { x + 1150 }
+func gen_1151(x: int) -> int { x + 1151 }
+func gen_1152(x: int) -> int { x + 1152 }
+func gen_1153(x: int) -> int { x + 1153 }
+func gen_1154(x: int) -> int { x + 1154 }
+func gen_1155(x: int) -> int { x + 1155 }
+func gen_1156(x: int) -> int { x + 1156 }
+func gen_1157(x: int) -> int { x + 1157 }
+func gen_1158(x: int) -> int { x + 1158 }
+func gen_1159(x: int) -> int { x + 1159 }
+func gen_1160(x: int) -> int { x + 1160 }
+func gen_1161(x: int) -> int { x + 1161 }
+func gen_1162(x: int) -> int { x + 1162 }
+func gen_1163(x: int) -> int { x + 1163 }
+func gen_1164(x: int) -> int { x + 1164 }
+func gen_1165(x: int) -> int { x + 1165 }
+func gen_1166(x: int) -> int { x + 1166 }
+func gen_1167(x: int) -> int { x + 1167 }
+func gen_1168(x: int) -> int { x + 1168 }
+func gen_1169(x: int) -> int { x + 1169 }
+func gen_1170(x: int) -> int { x + 1170 }
+func gen_1171(x: int) -> int { x + 1171 }
+func gen_1172(x: int) -> int { x + 1172 }
+func gen_1173(x: int) -> int { x + 1173 }
+func gen_1174(x: int) -> int { x + 1174 }
+func gen_1175(x: int) -> int { x + 1175 }
+func gen_1176(x: int) -> int { x + 1176 }
+func gen_1177(x: int) -> int { x + 1177 }
+func gen_1178(x: int) -> int { x + 1178 }
+func gen_1179(x: int) -> int { x + 1179 }
+func gen_1180(x: int) -> int { x + 1180 }
+func gen_1181(x: int) -> int { x + 1181 }
+func gen_1182(x: int) -> int { x + 1182 }
+func gen_1183(x: int) -> int { x + 1183 }
+func gen_1184(x: int) -> int { x + 1184 }
+func gen_1185(x: int) -> int { x + 1185 }
+func gen_1186(x: int) -> int { x + 1186 }
+func gen_1187(x: int) -> int { x + 1187 }
+func gen_1188(x: int) -> int { x + 1188 }
+func gen_1189(x: int) -> int { x + 1189 }
+func gen_1190(x: int) -> int { x + 1190 }
+func gen_1191(x: int) -> int { x + 1191 }
+func gen_1192(x: int) -> int { x + 1192 }
+func gen_1193(x: int) -> int { x + 1193 }
+func gen_1194(x: int) -> int { x + 1194 }
+func gen_1195(x: int) -> int { x + 1195 }
+func gen_1196(x: int) -> int { x + 1196 }
+func gen_1197(x: int) -> int { x + 1197 }
+func gen_1198(x: int) -> int { x + 1198 }
+func gen_1199(x: int) -> int { x + 1199 }
+func gen_1200(x: int) -> int { x + 1200 }
+func gen_1201(x: int) -> int { x + 1201 }
+func gen_1202(x: int) -> int { x + 1202 }
+func gen_1203(x: int) -> int { x + 1203 }
+func gen_1204(x: int) -> int { x + 1204 }
+func gen_1205(x: int) -> int { x + 1205 }
+func gen_1206(x: int) -> int { x + 1206 }
+func gen_1207(x: int) -> int { x + 1207 }
+func gen_1208(x: int) -> int { x + 1208 }
+func gen_1209(x: int) -> int { x + 1209 }
+func gen_1210(x: int) -> int { x + 1210 }
+func gen_1211(x: int) -> int { x + 1211 }
+func gen_1212(x: int) -> int { x + 1212 }
+func gen_1213(x: int) -> int { x + 1213 }
+func gen_1214(x: int) -> int { x + 1214 }
+func gen_1215(x: int) -> int { x + 1215 }
+func gen_1216(x: int) -> int { x + 1216 }
+func gen_1217(x: int) -> int { x + 1217 }
+func gen_1218(x: int) -> int { x + 1218 }
+func gen_1219(x: int) -> int { x + 1219 }
+func gen_1220(x: int) -> int { x + 1220 }
+func gen_1221(x: int) -> int { x + 1221 }
+func gen_1222(x: int) -> int { x + 1222 }
+func gen_1223(x: int) -> int { x + 1223 }
+func gen_1224(x: int) -> int { x + 1224 }
+func gen_1225(x: int) -> int { x + 1225 }
+func gen_1226(x: int) -> int { x + 1226 }
+func gen_1227(x: int) -> int { x + 1227 }
+func gen_1228(x: int) -> int { x + 1228 }
+func gen_1229(x: int) -> int { x + 1229 }
+func gen_1230(x: int) -> int { x + 1230 }
+func gen_1231(x: int) -> int { x + 1231 }
+func gen_1232(x: int) -> int { x + 1232 }
+func gen_1233(x: int) -> int { x + 1233 }
+func gen_1234(x: int) -> int { x + 1234 }
+func gen_1235(x: int) -> int { x + 1235 }
+func gen_1236(x: int) -> int { x + 1236 }
+func gen_1237(x: int) -> int { x + 1237 }
+func gen_1238(x: int) -> int { x + 1238 }
+func gen_1239(x: int) -> int { x + 1239 }
+func gen_1240(x: int) -> int { x + 1240 }
+func gen_1241(x: int) -> int { x + 1241 }
+func gen_1242(x: int) -> int { x + 1242 }
+func gen_1243(x: int) -> int { x + 1243 }
+func gen_1244(x: int) -> int { x + 1244 }
+func gen_1245(x: int) -> int { x + 1245 }
+func gen_1246(x: int) -> int { x + 1246 }
+func gen_1247(x: int) -> int { x + 1247 }
+func gen_1248(x: int) -> int { x + 1248 }
+func gen_1249(x: int) -> int { x + 1249 }
+func gen_1250(x: int) -> int { x + 1250 }
+func gen_1251(x: int) -> int { x + 1251 }
+func gen_1252(x: int) -> int { x + 1252 }
+func gen_1253(x: int) -> int { x + 1253 }
+func gen_1254(x: int) -> int { x + 1254 }
+func gen_1255(x: int) -> int { x + 1255 }
+func gen_1256(x: int) -> int { x + 1256 }
+func gen_1257(x: int) -> int { x + 1257 }
+func gen_1258(x: int) -> int { x + 1258 }
+func gen_1259(x: int) -> int { x + 1259 }
+func gen_1260(x: int) -> int { x + 1260 }
+func gen_1261(x: int) -> int { x + 1261 }
+func gen_1262(x: int) -> int { x + 1262 }
+func gen_1263(x: int) -> int { x + 1263 }
+func gen_1264(x: int) -> int { x + 1264 }
+func gen_1265(x: int) -> int { x + 1265 }
+func gen_1266(x: int) -> int { x + 1266 }
+func gen_1267(x: int) -> int { x + 1267 }
+func gen_1268(x: int) -> int { x + 1268 }
+func gen_1269(x: int) -> int { x + 1269 }
+func gen_1270(x: int) -> int { x + 1270 }
+func gen_1271(x: int) -> int { x + 1271 }
+func gen_1272(x: int) -> int { x + 1272 }
+func gen_1273(x: int) -> int { x + 1273 }
+func gen_1274(x: int) -> int { x + 1274 }
+func gen_1275(x: int) -> int { x + 1275 }
+func gen_1276(x: int) -> int { x + 1276 }
+func gen_1277(x: int) -> int { x + 1277 }
+func gen_1278(x: int) -> int { x + 1278 }
+func gen_1279(x: int) -> int { x + 1279 }
+func gen_1280(x: int) -> int { x + 1280 }
+func gen_1281(x: int) -> int { x + 1281 }
+func gen_1282(x: int) -> int { x + 1282 }
+func gen_1283(x: int) -> int { x + 1283 }
+func gen_1284(x: int) -> int { x + 1284 }
+func gen_1285(x: int) -> int { x + 1285 }
+func gen_1286(x: int) -> int { x + 1286 }
+func gen_1287(x: int) -> int { x + 1287 }
+func gen_1288(x: int) -> int { x + 1288 }
+func gen_1289(x: int) -> int { x + 1289 }
+func gen_1290(x: int) -> int { x + 1290 }
+func gen_1291(x: int) -> int { x + 1291 }
+func gen_1292(x: int) -> int { x + 1292 }
+func gen_1293(x: int) -> int { x + 1293 }
+func gen_1294(x: int) -> int { x + 1294 }
+func gen_1295(x: int) -> int { x + 1295 }
+func gen_1296(x: int) -> int { x + 1296 }
+func gen_1297(x: int) -> int { x + 1297 }
+func gen_1298(x: int) -> int { x + 1298 }
+func gen_1299(x: int) -> int { x + 1299 }
+func gen_1300(x: int) -> int { x + 1300 }
+func gen_1301(x: int) -> int { x + 1301 }
+func gen_1302(x: int) -> int { x + 1302 }
+func gen_1303(x: int) -> int { x + 1303 }
+func gen_1304(x: int) -> int { x + 1304 }
+func gen_1305(x: int) -> int { x + 1305 }
+func gen_1306(x: int) -> int { x + 1306 }
+func gen_1307(x: int) -> int { x + 1307 }
+func gen_1308(x: int) -> int { x + 1308 }
+func gen_1309(x: int) -> int { x + 1309 }
+func gen_1310(x: int) -> int { x + 1310 }
+func gen_1311(x: int) -> int { x + 1311 }
+func gen_1312(x: int) -> int { x + 1312 }
+func gen_1313(x: int) -> int { x + 1313 }
+func gen_1314(x: int) -> int { x + 1314 }
+func gen_1315(x: int) -> int { x + 1315 }
+func gen_1316(x: int) -> int { x + 1316 }
+func gen_1317(x: int) -> int { x + 1317 }
+func gen_1318(x: int) -> int { x + 1318 }
+func gen_1319(x: int) -> int { x + 1319 }
+func gen_1320(x: int) -> int { x + 1320 }
+func gen_1321(x: int) -> int { x + 1321 }
+func gen_1322(x: int) -> int { x + 1322 }
+func gen_1323(x: int) -> int { x + 1323 }
+func gen_1324(x: int) -> int { x + 1324 }
+func gen_1325(x: int) -> int { x + 1325 }
+func gen_1326(x: int) -> int { x + 1326 }
+func gen_1327(x: int) -> int { x + 1327 }
+func gen_1328(x: int) -> int { x + 1328 }
+func gen_1329(x: int) -> int { x + 1329 }
+func gen_1330(x: int) -> int { x + 1330 }
+func gen_1331(x: int) -> int { x + 1331 }
+func gen_1332(x: int) -> int { x + 1332 }
+func gen_1333(x: int) -> int { x + 1333 }
+func gen_1334(x: int) -> int { x + 1334 }
+func gen_1335(x: int) -> int { x + 1335 }
+func gen_1336(x: int) -> int { x + 1336 }
+func gen_1337(x: int) -> int { x + 1337 }
+func gen_1338(x: int) -> int { x + 1338 }
+func gen_1339(x: int) -> int { x + 1339 }
+func gen_1340(x: int) -> int { x + 1340 }
+func gen_1341(x: int) -> int { x + 1341 }
+func gen_1342(x: int) -> int { x + 1342 }
+func gen_1343(x: int) -> int { x + 1343 }
+func gen_1344(x: int) -> int { x + 1344 }
+func gen_1345(x: int) -> int { x + 1345 }
+func gen_1346(x: int) -> int { x + 1346 }
+func gen_1347(x: int) -> int { x + 1347 }
+func gen_1348(x: int) -> int { x + 1348 }
+func gen_1349(x: int) -> int { x + 1349 }
+func gen_1350(x: int) -> int { x + 1350 }
+func gen_1351(x: int) -> int { x + 1351 }
+func gen_1352(x: int) -> int { x + 1352 }
+func gen_1353(x: int) -> int { x + 1353 }
+func gen_1354(x: int) -> int { x + 1354 }
+func gen_1355(x: int) -> int { x + 1355 }
+func gen_1356(x: int) -> int { x + 1356 }
+func gen_1357(x: int) -> int { x + 1357 }
+func gen_1358(x: int) -> int { x + 1358 }
+func gen_1359(x: int) -> int { x + 1359 }
+func gen_1360(x: int) -> int { x + 1360 }
+func gen_1361(x: int) -> int { x + 1361 }
+func gen_1362(x: int) -> int { x + 1362 }
+func gen_1363(x: int) -> int { x + 1363 }
+func gen_1364(x: int) -> int { x + 1364 }
+func gen_1365(x: int) -> int { x + 1365 }
+func gen_1366(x: int) -> int { x + 1366 }
+func gen_1367(x: int) -> int { x + 1367 }
+func gen_1368(x: int) -> int { x + 1368 }
+func gen_1369(x: int) -> int { x + 1369 }
+func gen_1370(x: int) -> int { x + 1370 }
+func gen_1371(x: int) -> int { x + 1371 }
+func gen_1372(x: int) -> int { x + 1372 }
+func gen_1373(x: int) -> int { x + 1373 }
+func gen_1374(x: int) -> int { x + 1374 }
+func gen_1375(x: int) -> int { x + 1375 }
+func gen_1376(x: int) -> int { x + 1376 }
+func gen_1377(x: int) -> int { x + 1377 }
+func gen_1378(x: int) -> int { x + 1378 }
+func gen_1379(x: int) -> int { x + 1379 }
+func gen_1380(x: int) -> int { x + 1380 }
+func gen_1381(x: int) -> int { x + 1381 }
+func gen_1382(x: int) -> int { x + 1382 }
+func gen_1383(x: int) -> int { x + 1383 }
+func gen_1384(x: int) -> int { x + 1384 }
+func gen_1385(x: int) -> int { x + 1385 }
+func gen_1386(x: int) -> int { x + 1386 }
+func gen_1387(x: int) -> int { x + 1387 }
+func gen_1388(x: int) -> int { x + 1388 }
+func gen_1389(x: int) -> int { x + 1389 }
+func gen_1390(x: int) -> int { x + 1390 }
+func gen_1391(x: int) -> int { x + 1391 }
+func gen_1392(x: int) -> int { x + 1392 }
+func gen_1393(x: int) -> int { x + 1393 }
+func gen_1394(x: int) -> int { x + 1394 }
+func gen_1395(x: int) -> int { x + 1395 }
+func gen_1396(x: int) -> int { x + 1396 }
+func gen_1397(x: int) -> int { x + 1397 }
+func gen_1398(x: int) -> int { x + 1398 }
+func gen_1399(x: int) -> int { x + 1399 }
+func gen_1400(x: int) -> int { x + 1400 }
+func gen_1401(x: int) -> int { x + 1401 }
+func gen_1402(x: int) -> int { x + 1402 }
+func gen_1403(x: int) -> int { x + 1403 }
+func gen_1404(x: int) -> int { x + 1404 }
+func gen_1405(x: int) -> int { x + 1405 }
+func gen_1406(x: int) -> int { x + 1406 }
+func gen_1407(x: int) -> int { x + 1407 }
+func gen_1408(x: int) -> int { x + 1408 }
+func gen_1409(x: int) -> int { x + 1409 }
+func gen_1410(x: int) -> int { x + 1410 }
+func gen_1411(x: int) -> int { x + 1411 }
+func gen_1412(x: int) -> int { x + 1412 }
+func gen_1413(x: int) -> int { x + 1413 }
+func gen_1414(x: int) -> int { x + 1414 }
+func gen_1415(x: int) -> int { x + 1415 }
+func gen_1416(x: int) -> int { x + 1416 }
+func gen_1417(x: int) -> int { x + 1417 }
+func gen_1418(x: int) -> int { x + 1418 }
+func gen_1419(x: int) -> int { x + 1419 }
+func gen_1420(x: int) -> int { x + 1420 }
+func gen_1421(x: int) -> int { x + 1421 }
+func gen_1422(x: int) -> int { x + 1422 }
+func gen_1423(x: int) -> int { x + 1423 }
+func gen_1424(x: int) -> int { x + 1424 }
+func gen_1425(x: int) -> int { x + 1425 }
+func gen_1426(x: int) -> int { x + 1426 }
+func gen_1427(x: int) -> int { x + 1427 }
+func gen_1428(x: int) -> int { x + 1428 }
+func gen_1429(x: int) -> int { x + 1429 }
+func gen_1430(x: int) -> int { x + 1430 }
+func gen_1431(x: int) -> int { x + 1431 }
+func gen_1432(x: int) -> int { x + 1432 }
+func gen_1433(x: int) -> int { x + 1433 }
+func gen_1434(x: int) -> int { x + 1434 }
+func gen_1435(x: int) -> int { x + 1435 }
+func gen_1436(x: int) -> int { x + 1436 }
+func gen_1437(x: int) -> int { x + 1437 }
+func gen_1438(x: int) -> int { x + 1438 }
+func gen_1439(x: int) -> int { x + 1439 }
+func gen_1440(x: int) -> int { x + 1440 }
+func gen_1441(x: int) -> int { x + 1441 }
+func gen_1442(x: int) -> int { x + 1442 }
+func gen_1443(x: int) -> int { x + 1443 }
+func gen_1444(x: int) -> int { x + 1444 }
+func gen_1445(x: int) -> int { x + 1445 }
+func gen_1446(x: int) -> int { x + 1446 }
+func gen_1447(x: int) -> int { x + 1447 }
+func gen_1448(x: int) -> int { x + 1448 }
+func gen_1449(x: int) -> int { x + 1449 }
+func gen_1450(x: int) -> int { x + 1450 }
+func gen_1451(x: int) -> int { x + 1451 }
+func gen_1452(x: int) -> int { x + 1452 }
+func gen_1453(x: int) -> int { x + 1453 }
+func gen_1454(x: int) -> int { x + 1454 }
+func gen_1455(x: int) -> int { x + 1455 }
+func gen_1456(x: int) -> int { x + 1456 }
+func gen_1457(x: int) -> int { x + 1457 }
+func gen_1458(x: int) -> int { x + 1458 }
+func gen_1459(x: int) -> int { x + 1459 }
+func gen_1460(x: int) -> int { x + 1460 }
+func gen_1461(x: int) -> int { x + 1461 }
+func gen_1462(x: int) -> int { x + 1462 }
+func gen_1463(x: int) -> int { x + 1463 }
+func gen_1464(x: int) -> int { x + 1464 }
+func gen_1465(x: int) -> int { x + 1465 }
+func gen_1466(x: int) -> int { x + 1466 }
+func gen_1467(x: int) -> int { x + 1467 }
+func gen_1468(x: int) -> int { x + 1468 }
+func gen_1469(x: int) -> int { x + 1469 }
+func gen_1470(x: int) -> int { x + 1470 }
+func gen_1471(x: int) -> int { x + 1471 }
+func gen_1472(x: int) -> int { x + 1472 }
+func gen_1473(x: int) -> int { x + 1473 }
+func gen_1474(x: int) -> int { x + 1474 }
+func gen_1475(x: int) -> int { x + 1475 }
+func gen_1476(x: int) -> int { x + 1476 }
+func gen_1477(x: int) -> int { x + 1477 }
+func gen_1478(x: int) -> int { x + 1478 }
+func gen_1479(x: int) -> int { x + 1479 }
+func gen_1480(x: int) -> int { x + 1480 }
+func gen_1481(x: int) -> int { x + 1481 }
+func gen_1482(x: int) -> int { x + 1482 }
+func gen_1483(x: int) -> int { x + 1483 }
+func gen_1484(x: int) -> int { x + 1484 }
+func gen_1485(x: int) -> int { x + 1485 }
+func gen_1486(x: int) -> int { x + 1486 }
+func gen_1487(x: int) -> int { x + 1487 }
+func gen_1488(x: int) -> int { x + 1488 }
+func gen_1489(x: int) -> int { x + 1489 }
+func gen_1490(x: int) -> int { x + 1490 }
+func gen_1491(x: int) -> int { x + 1491 }
+func gen_1492(x: int) -> int { x + 1492 }
+func gen_1493(x: int) -> int { x + 1493 }
+func gen_1494(x: int) -> int { x + 1494 }
+func gen_1495(x: int) -> int { x + 1495 }
+func gen_1496(x: int) -> int { x + 1496 }
+func gen_1497(x: int) -> int { x + 1497 }
+func gen_1498(x: int) -> int { x + 1498 }
+func gen_1499(x: int) -> int { x + 1499 }
+func gen_1500(x: int) -> int { x + 1500 }
+func gen_1501(x: int) -> int { x + 1501 }
+func gen_1502(x: int) -> int { x + 1502 }
+func gen_1503(x: int) -> int { x + 1503 }
+func gen_1504(x: int) -> int { x + 1504 }
+func gen_1505(x: int) -> int { x + 1505 }
+func gen_1506(x: int) -> int { x + 1506 }
+func gen_1507(x: int) -> int { x + 1507 }
+func gen_1508(x: int) -> int { x + 1508 }
+func gen_1509(x: int) -> int { x + 1509 }
+func gen_1510(x: int) -> int { x + 1510 }
+func gen_1511(x: int) -> int { x + 1511 }
+func gen_1512(x: int) -> int { x + 1512 }
+func gen_1513(x: int) -> int { x + 1513 }
+func gen_1514(x: int) -> int { x + 1514 }
+func gen_1515(x: int) -> int { x + 1515 }
+func gen_1516(x: int) -> int { x + 1516 }
+func gen_1517(x: int) -> int { x + 1517 }
+func gen_1518(x: int) -> int { x + 1518 }
+func gen_1519(x: int) -> int { x + 1519 }
+func gen_1520(x: int) -> int { x + 1520 }
+func gen_1521(x: int) -> int { x + 1521 }
+func gen_1522(x: int) -> int { x + 1522 }
+func gen_1523(x: int) -> int { x + 1523 }
+func gen_1524(x: int) -> int { x + 1524 }
+func gen_1525(x: int) -> int { x + 1525 }
+func gen_1526(x: int) -> int { x + 1526 }
+func gen_1527(x: int) -> int { x + 1527 }
+func gen_1528(x: int) -> int { x + 1528 }
+func gen_1529(x: int) -> int { x + 1529 }
+func gen_1530(x: int) -> int { x + 1530 }
+func gen_1531(x: int) -> int { x + 1531 }
+func gen_1532(x: int) -> int { x + 1532 }
+func gen_1533(x: int) -> int { x + 1533 }
+func gen_1534(x: int) -> int { x + 1534 }
+func gen_1535(x: int) -> int { x + 1535 }
+func gen_1536(x: int) -> int { x + 1536 }
+func gen_1537(x: int) -> int { x + 1537 }
+func gen_1538(x: int) -> int { x + 1538 }
+func gen_1539(x: int) -> int { x + 1539 }
+func gen_1540(x: int) -> int { x + 1540 }
+func gen_1541(x: int) -> int { x + 1541 }
+func gen_1542(x: int) -> int { x + 1542 }
+func gen_1543(x: int) -> int { x + 1543 }
+func gen_1544(x: int) -> int { x + 1544 }
+func gen_1545(x: int) -> int { x + 1545 }
+func gen_1546(x: int) -> int { x + 1546 }
+func gen_1547(x: int) -> int { x + 1547 }
+func gen_1548(x: int) -> int { x + 1548 }
+func gen_1549(x: int) -> int { x + 1549 }
+func gen_1550(x: int) -> int { x + 1550 }
+func gen_1551(x: int) -> int { x + 1551 }
+func gen_1552(x: int) -> int { x + 1552 }
+func gen_1553(x: int) -> int { x + 1553 }
+func gen_1554(x: int) -> int { x + 1554 }
+func gen_1555(x: int) -> int { x + 1555 }
+func gen_1556(x: int) -> int { x + 1556 }
+func gen_1557(x: int) -> int { x + 1557 }
+func gen_1558(x: int) -> int { x + 1558 }
+func gen_1559(x: int) -> int { x + 1559 }
+func gen_1560(x: int) -> int { x + 1560 }
+func gen_1561(x: int) -> int { x + 1561 }
+func gen_1562(x: int) -> int { x + 1562 }
+func gen_1563(x: int) -> int { x + 1563 }
+func gen_1564(x: int) -> int { x + 1564 }
+func gen_1565(x: int) -> int { x + 1565 }
+func gen_1566(x: int) -> int { x + 1566 }
+func gen_1567(x: int) -> int { x + 1567 }
+func gen_1568(x: int) -> int { x + 1568 }
+func gen_1569(x: int) -> int { x + 1569 }
+func gen_1570(x: int) -> int { x + 1570 }
+func gen_1571(x: int) -> int { x + 1571 }
+func gen_1572(x: int) -> int { x + 1572 }
+func gen_1573(x: int) -> int { x + 1573 }
+func gen_1574(x: int) -> int { x + 1574 }
+func gen_1575(x: int) -> int { x + 1575 }
+func gen_1576(x: int) -> int { x + 1576 }
+func gen_1577(x: int) -> int { x + 1577 }
+func gen_1578(x: int) -> int { x + 1578 }
+func gen_1579(x: int) -> int { x + 1579 }
+func gen_1580(x: int) -> int { x + 1580 }
+func gen_1581(x: int) -> int { x + 1581 }
+func gen_1582(x: int) -> int { x + 1582 }
+func gen_1583(x: int) -> int { x + 1583 }
+func gen_1584(x: int) -> int { x + 1584 }
+func gen_1585(x: int) -> int { x + 1585 }
+func gen_1586(x: int) -> int { x + 1586 }
+func gen_1587(x: int) -> int { x + 1587 }
+func gen_1588(x: int) -> int { x + 1588 }
+func gen_1589(x: int) -> int { x + 1589 }
+func gen_1590(x: int) -> int { x + 1590 }
+func gen_1591(x: int) -> int { x + 1591 }
+func gen_1592(x: int) -> int { x + 1592 }
+func gen_1593(x: int) -> int { x + 1593 }
+func gen_1594(x: int) -> int { x + 1594 }
+func gen_1595(x: int) -> int { x + 1595 }
+func gen_1596(x: int) -> int { x + 1596 }
+func gen_1597(x: int) -> int { x + 1597 }
+func gen_1598(x: int) -> int { x + 1598 }
+func gen_1599(x: int) -> int { x + 1599 }
+func gen_1600(x: int) -> int { x + 1600 }
+func gen_1601(x: int) -> int { x + 1601 }
+func gen_1602(x: int) -> int { x + 1602 }
+func gen_1603(x: int) -> int { x + 1603 }
+func gen_1604(x: int) -> int { x + 1604 }
+func gen_1605(x: int) -> int { x + 1605 }
+func gen_1606(x: int) -> int { x + 1606 }
+func gen_1607(x: int) -> int { x + 1607 }
+func gen_1608(x: int) -> int { x + 1608 }
+func gen_1609(x: int) -> int { x + 1609 }
+func gen_1610(x: int) -> int { x + 1610 }
+func gen_1611(x: int) -> int { x + 1611 }
+func gen_1612(x: int) -> int { x + 1612 }
+func gen_1613(x: int) -> int { x + 1613 }
+func gen_1614(x: int) -> int { x + 1614 }
+func gen_1615(x: int) -> int { x + 1615 }
+func gen_1616(x: int) -> int { x + 1616 }
+func gen_1617(x: int) -> int { x + 1617 }
+func gen_1618(x: int) -> int { x + 1618 }
+func gen_1619(x: int) -> int { x + 1619 }
+func gen_1620(x: int) -> int { x + 1620 }
+func gen_1621(x: int) -> int { x + 1621 }
+func gen_1622(x: int) -> int { x + 1622 }
+func gen_1623(x: int) -> int { x + 1623 }
+func gen_1624(x: int) -> int { x + 1624 }
+func gen_1625(x: int) -> int { x + 1625 }
+func gen_1626(x: int) -> int { x + 1626 }
+func gen_1627(x: int) -> int { x + 1627 }
+func gen_1628(x: int) -> int { x + 1628 }
+func gen_1629(x: int) -> int { x + 1629 }
+func gen_1630(x: int) -> int { x + 1630 }
+func gen_1631(x: int) -> int { x + 1631 }
+func gen_1632(x: int) -> int { x + 1632 }
+func gen_1633(x: int) -> int { x + 1633 }
+func gen_1634(x: int) -> int { x + 1634 }
+func gen_1635(x: int) -> int { x + 1635 }
+func gen_1636(x: int) -> int { x + 1636 }
+func gen_1637(x: int) -> int { x + 1637 }
+func gen_1638(x: int) -> int { x + 1638 }
+func gen_1639(x: int) -> int { x + 1639 }
+func gen_1640(x: int) -> int { x + 1640 }
+func gen_1641(x: int) -> int { x + 1641 }
+func gen_1642(x: int) -> int { x + 1642 }
+func gen_1643(x: int) -> int { x + 1643 }
+func gen_1644(x: int) -> int { x + 1644 }
+func gen_1645(x: int) -> int { x + 1645 }
+func gen_1646(x: int) -> int { x + 1646 }
+func gen_1647(x: int) -> int { x + 1647 }
+func gen_1648(x: int) -> int { x + 1648 }
+func gen_1649(x: int) -> int { x + 1649 }
+func gen_1650(x: int) -> int { x + 1650 }
+func gen_1651(x: int) -> int { x + 1651 }
+func gen_1652(x: int) -> int { x + 1652 }
+func gen_1653(x: int) -> int { x + 1653 }
+func gen_1654(x: int) -> int { x + 1654 }
+func gen_1655(x: int) -> int { x + 1655 }
+func gen_1656(x: int) -> int { x + 1656 }
+func gen_1657(x: int) -> int { x + 1657 }
+func gen_1658(x: int) -> int { x + 1658 }
+func gen_1659(x: int) -> int { x + 1659 }
+func gen_1660(x: int) -> int { x + 1660 }
+func gen_1661(x: int) -> int { x + 1661 }
+func gen_1662(x: int) -> int { x + 1662 }
+func gen_1663(x: int) -> int { x + 1663 }
+func gen_1664(x: int) -> int { x + 1664 }
+func gen_1665(x: int) -> int { x + 1665 }
+func gen_1666(x: int) -> int { x + 1666 }
+func gen_1667(x: int) -> int { x + 1667 }
+func gen_1668(x: int) -> int { x + 1668 }
+func gen_1669(x: int) -> int { x + 1669 }
+func gen_1670(x: int) -> int { x + 1670 }
+func gen_1671(x: int) -> int { x + 1671 }
+func gen_1672(x: int) -> int { x + 1672 }
+func gen_1673(x: int) -> int { x + 1673 }
+func gen_1674(x: int) -> int { x + 1674 }
+func gen_1675(x: int) -> int { x + 1675 }
+func gen_1676(x: int) -> int { x + 1676 }
+func gen_1677(x: int) -> int { x + 1677 }
+func gen_1678(x: int) -> int { x + 1678 }
+func gen_1679(x: int) -> int { x + 1679 }
+func gen_1680(x: int) -> int { x + 1680 }
+func gen_1681(x: int) -> int { x + 1681 }
+func gen_1682(x: int) -> int { x + 1682 }
+func gen_1683(x: int) -> int { x + 1683 }
+func gen_1684(x: int) -> int { x + 1684 }
+func gen_1685(x: int) -> int { x + 1685 }
+func gen_1686(x: int) -> int { x + 1686 }
+func gen_1687(x: int) -> int { x + 1687 }
+func gen_1688(x: int) -> int { x + 1688 }
+func gen_1689(x: int) -> int { x + 1689 }
+func gen_1690(x: int) -> int { x + 1690 }
+func gen_1691(x: int) -> int { x + 1691 }
+func gen_1692(x: int) -> int { x + 1692 }
+func gen_1693(x: int) -> int { x + 1693 }
+func gen_1694(x: int) -> int { x + 1694 }
+func gen_1695(x: int) -> int { x + 1695 }
+func gen_1696(x: int) -> int { x + 1696 }
+func gen_1697(x: int) -> int { x + 1697 }
+func gen_1698(x: int) -> int { x + 1698 }
+func gen_1699(x: int) -> int { x + 1699 }
+func gen_1700(x: int) -> int { x + 1700 }
+func gen_1701(x: int) -> int { x + 1701 }
+func gen_1702(x: int) -> int { x + 1702 }
+func gen_1703(x: int) -> int { x + 1703 }
+func gen_1704(x: int) -> int { x + 1704 }
+func gen_1705(x: int) -> int { x + 1705 }
+func gen_1706(x: int) -> int { x + 1706 }
+func gen_1707(x: int) -> int { x + 1707 }
+func gen_1708(x: int) -> int { x + 1708 }
+func gen_1709(x: int) -> int { x + 1709 }
+func gen_1710(x: int) -> int { x + 1710 }
+func gen_1711(x: int) -> int { x + 1711 }
+func gen_1712(x: int) -> int { x + 1712 }
+func gen_1713(x: int) -> int { x + 1713 }
+func gen_1714(x: int) -> int { x + 1714 }
+func gen_1715(x: int) -> int { x + 1715 }
+func gen_1716(x: int) -> int { x + 1716 }
+func gen_1717(x: int) -> int { x + 1717 }
+func gen_1718(x: int) -> int { x + 1718 }
+func gen_1719(x: int) -> int { x + 1719 }
+func gen_1720(x: int) -> int { x + 1720 }
+func gen_1721(x: int) -> int { x + 1721 }
+func gen_1722(x: int) -> int { x + 1722 }
+func gen_1723(x: int) -> int { x + 1723 }
+func gen_1724(x: int) -> int { x + 1724 }
+func gen_1725(x: int) -> int { x + 1725 }
+func gen_1726(x: int) -> int { x + 1726 }
+func gen_1727(x: int) -> int { x + 1727 }
+func gen_1728(x: int) -> int { x + 1728 }
+func gen_1729(x: int) -> int { x + 1729 }
+func gen_1730(x: int) -> int { x + 1730 }
+func gen_1731(x: int) -> int { x + 1731 }
+func gen_1732(x: int) -> int { x + 1732 }
+func gen_1733(x: int) -> int { x + 1733 }
+func gen_1734(x: int) -> int { x + 1734 }
+func gen_1735(x: int) -> int { x + 1735 }
+func gen_1736(x: int) -> int { x + 1736 }
+func gen_1737(x: int) -> int { x + 1737 }
+func gen_1738(x: int) -> int { x + 1738 }
+func gen_1739(x: int) -> int { x + 1739 }
+func gen_1740(x: int) -> int { x + 1740 }
+func gen_1741(x: int) -> int { x + 1741 }
+func gen_1742(x: int) -> int { x + 1742 }
+func gen_1743(x: int) -> int { x + 1743 }
+func gen_1744(x: int) -> int { x + 1744 }
+func gen_1745(x: int) -> int { x + 1745 }
+func gen_1746(x: int) -> int { x + 1746 }
+func gen_1747(x: int) -> int { x + 1747 }
+func gen_1748(x: int) -> int { x + 1748 }
+func gen_1749(x: int) -> int { x + 1749 }
+func gen_1750(x: int) -> int { x + 1750 }
+func gen_1751(x: int) -> int { x + 1751 }
+func gen_1752(x: int) -> int { x + 1752 }
+func gen_1753(x: int) -> int { x + 1753 }
+func gen_1754(x: int) -> int { x + 1754 }
+func gen_1755(x: int) -> int { x + 1755 }
+func gen_1756(x: int) -> int { x + 1756 }
+func gen_1757(x: int) -> int { x + 1757 }
+func gen_1758(x: int) -> int { x + 1758 }
+func gen_1759(x: int) -> int { x + 1759 }
+func gen_1760(x: int) -> int { x + 1760 }
+func gen_1761(x: int) -> int { x + 1761 }
+func gen_1762(x: int) -> int { x + 1762 }
+func gen_1763(x: int) -> int { x + 1763 }
+func gen_1764(x: int) -> int { x + 1764 }
+func gen_1765(x: int) -> int { x + 1765 }
+func gen_1766(x: int) -> int { x + 1766 }
+func gen_1767(x: int) -> int { x + 1767 }
+func gen_1768(x: int) -> int { x + 1768 }
+func gen_1769(x: int) -> int { x + 1769 }
+func gen_1770(x: int) -> int { x + 1770 }
+func gen_1771(x: int) -> int { x + 1771 }
+func gen_1772(x: int) -> int { x + 1772 }
+func gen_1773(x: int) -> int { x + 1773 }
+func gen_1774(x: int) -> int { x + 1774 }
+func gen_1775(x: int) -> int { x + 1775 }
+func gen_1776(x: int) -> int { x + 1776 }
+func gen_1777(x: int) -> int { x + 1777 }
+func gen_1778(x: int) -> int { x + 1778 }
+func gen_1779(x: int) -> int { x + 1779 }
+func gen_1780(x: int) -> int { x + 1780 }
+func gen_1781(x: int) -> int { x + 1781 }
+func gen_1782(x: int) -> int { x + 1782 }
+func gen_1783(x: int) -> int { x + 1783 }
+func gen_1784(x: int) -> int { x + 1784 }
+func gen_1785(x: int) -> int { x + 1785 }
+func gen_1786(x: int) -> int { x + 1786 }
+func gen_1787(x: int) -> int { x + 1787 }
+func gen_1788(x: int) -> int { x + 1788 }
+func gen_1789(x: int) -> int { x + 1789 }
+func gen_1790(x: int) -> int { x + 1790 }
+func gen_1791(x: int) -> int { x + 1791 }
+func gen_1792(x: int) -> int { x + 1792 }
+func gen_1793(x: int) -> int { x + 1793 }
+func gen_1794(x: int) -> int { x + 1794 }
+func gen_1795(x: int) -> int { x + 1795 }
+func gen_1796(x: int) -> int { x + 1796 }
+func gen_1797(x: int) -> int { x + 1797 }
+func gen_1798(x: int) -> int { x + 1798 }
+func gen_1799(x: int) -> int { x + 1799 }
+func gen_1800(x: int) -> int { x + 1800 }
+func gen_1801(x: int) -> int { x + 1801 }
+func gen_1802(x: int) -> int { x + 1802 }
+func gen_1803(x: int) -> int { x + 1803 }
+func gen_1804(x: int) -> int { x + 1804 }
+func gen_1805(x: int) -> int { x + 1805 }
+func gen_1806(x: int) -> int { x + 1806 }
+func gen_1807(x: int) -> int { x + 1807 }
+func gen_1808(x: int) -> int { x + 1808 }
+func gen_1809(x: int) -> int { x + 1809 }
+func gen_1810(x: int) -> int { x + 1810 }
+func gen_1811(x: int) -> int { x + 1811 }
+func gen_1812(x: int) -> int { x + 1812 }
+func gen_1813(x: int) -> int { x + 1813 }
+func gen_1814(x: int) -> int { x + 1814 }
+func gen_1815(x: int) -> int { x + 1815 }
+func gen_1816(x: int) -> int { x + 1816 }
+func gen_1817(x: int) -> int { x + 1817 }
+func gen_1818(x: int) -> int { x + 1818 }
+func gen_1819(x: int) -> int { x + 1819 }
+func gen_1820(x: int) -> int { x + 1820 }
+func gen_1821(x: int) -> int { x + 1821 }
+func gen_1822(x: int) -> int { x + 1822 }
+func gen_1823(x: int) -> int { x + 1823 }
+func gen_1824(x: int) -> int { x + 1824 }
+func gen_1825(x: int) -> int { x + 1825 }
+func gen_1826(x: int) -> int { x + 1826 }
+func gen_1827(x: int) -> int { x + 1827 }
+func gen_1828(x: int) -> int { x + 1828 }
+func gen_1829(x: int) -> int { x + 1829 }
+func gen_1830(x: int) -> int { x + 1830 }
+func gen_1831(x: int) -> int { x + 1831 }
+func gen_1832(x: int) -> int { x + 1832 }
+func gen_1833(x: int) -> int { x + 1833 }
+func gen_1834(x: int) -> int { x + 1834 }
+func gen_1835(x: int) -> int { x + 1835 }
+func gen_1836(x: int) -> int { x + 1836 }
+func gen_1837(x: int) -> int { x + 1837 }
+func gen_1838(x: int) -> int { x + 1838 }
+func gen_1839(x: int) -> int { x + 1839 }
+func gen_1840(x: int) -> int { x + 1840 }
+func gen_1841(x: int) -> int { x + 1841 }
+func gen_1842(x: int) -> int { x + 1842 }
+func gen_1843(x: int) -> int { x + 1843 }
+func gen_1844(x: int) -> int { x + 1844 }
+func gen_1845(x: int) -> int { x + 1845 }
+func gen_1846(x: int) -> int { x + 1846 }
+func gen_1847(x: int) -> int { x + 1847 }
+func gen_1848(x: int) -> int { x + 1848 }
+func gen_1849(x: int) -> int { x + 1849 }
+func gen_1850(x: int) -> int { x + 1850 }
+func gen_1851(x: int) -> int { x + 1851 }
+func gen_1852(x: int) -> int { x + 1852 }
+func gen_1853(x: int) -> int { x + 1853 }
+func gen_1854(x: int) -> int { x + 1854 }
+func gen_1855(x: int) -> int { x + 1855 }
+func gen_1856(x: int) -> int { x + 1856 }
+func gen_1857(x: int) -> int { x + 1857 }
+func gen_1858(x: int) -> int { x + 1858 }
+func gen_1859(x: int) -> int { x + 1859 }
+func gen_1860(x: int) -> int { x + 1860 }
+func gen_1861(x: int) -> int { x + 1861 }
+func gen_1862(x: int) -> int { x + 1862 }
+func gen_1863(x: int) -> int { x + 1863 }
+func gen_1864(x: int) -> int { x + 1864 }
+func gen_1865(x: int) -> int { x + 1865 }
+func gen_1866(x: int) -> int { x + 1866 }
+func gen_1867(x: int) -> int { x + 1867 }
+func gen_1868(x: int) -> int { x + 1868 }
+func gen_1869(x: int) -> int { x + 1869 }
+func gen_1870(x: int) -> int { x + 1870 }
+func gen_1871(x: int) -> int { x + 1871 }
+func gen_1872(x: int) -> int { x + 1872 }
+func gen_1873(x: int) -> int { x + 1873 }
+func gen_1874(x: int) -> int { x + 1874 }
+func gen_1875(x: int) -> int { x + 1875 }
+func gen_1876(x: int) -> int { x + 1876 }
+func gen_1877(x: int) -> int { x + 1877 }
+func gen_1878(x: int) -> int { x + 1878 }
+func gen_1879(x: int) -> int { x + 1879 }
+func gen_1880(x: int) -> int { x + 1880 }
+func gen_1881(x: int) -> int { x + 1881 }
+func gen_1882(x: int) -> int { x + 1882 }
+func gen_1883(x: int) -> int { x + 1883 }
+func gen_1884(x: int) -> int { x + 1884 }
+func gen_1885(x: int) -> int { x + 1885 }
+func gen_1886(x: int) -> int { x + 1886 }
+func gen_1887(x: int) -> int { x + 1887 }
+func gen_1888(x: int) -> int { x + 1888 }
+func gen_1889(x: int) -> int { x + 1889 }
+func gen_1890(x: int) -> int { x + 1890 }
+func gen_1891(x: int) -> int { x + 1891 }
+func gen_1892(x: int) -> int { x + 1892 }
+func gen_1893(x: int) -> int { x + 1893 }
+func gen_1894(x: int) -> int { x + 1894 }
+func gen_1895(x: int) -> int { x + 1895 }
+func gen_1896(x: int) -> int { x + 1896 }
+func gen_1897(x: int) -> int { x + 1897 }
+func gen_1898(x: int) -> int { x + 1898 }
+func gen_1899(x: int) -> int { x + 1899 }
+func gen_1900(x: int) -> int { x + 1900 }
+func gen_1901(x: int) -> int { x + 1901 }
+func gen_1902(x: int) -> int { x + 1902 }
+func gen_1903(x: int) -> int { x + 1903 }
+func gen_1904(x: int) -> int { x + 1904 }
+func gen_1905(x: int) -> int { x + 1905 }
+func gen_1906(x: int) -> int { x + 1906 }
+func gen_1907(x: int) -> int { x + 1907 }
+func gen_1908(x: int) -> int { x + 1908 }
+func gen_1909(x: int) -> int { x + 1909 }
+func gen_1910(x: int) -> int { x + 1910 }
+func gen_1911(x: int) -> int { x + 1911 }
+func gen_1912(x: int) -> int { x + 1912 }
+func gen_1913(x: int) -> int { x + 1913 }
+func gen_1914(x: int) -> int { x + 1914 }
+func gen_1915(x: int) -> int { x + 1915 }
+func gen_1916(x: int) -> int { x + 1916 }
+func gen_1917(x: int) -> int { x + 1917 }
+func gen_1918(x: int) -> int { x + 1918 }
+func gen_1919(x: int) -> int { x + 1919 }
+func gen_1920(x: int) -> int { x + 1920 }
+func gen_1921(x: int) -> int { x + 1921 }
+func gen_1922(x: int) -> int { x + 1922 }
+func gen_1923(x: int) -> int { x + 1923 }
+func gen_1924(x: int) -> int { x + 1924 }
+func gen_1925(x: int) -> int { x + 1925 }
+func gen_1926(x: int) -> int { x + 1926 }
+func gen_1927(x: int) -> int { x + 1927 }
+func gen_1928(x: int) -> int { x + 1928 }
+func gen_1929(x: int) -> int { x + 1929 }
+func gen_1930(x: int) -> int { x + 1930 }
+func gen_1931(x: int) -> int { x + 1931 }
+func gen_1932(x: int) -> int { x + 1932 }
+func gen_1933(x: int) -> int { x + 1933 }
+func gen_1934(x: int) -> int { x + 1934 }
+func gen_1935(x: int) -> int { x + 1935 }
+func gen_1936(x: int) -> int { x + 1936 }
+func gen_1937(x: int) -> int { x + 1937 }
+func gen_1938(x: int) -> int { x + 1938 }
+func gen_1939(x: int) -> int { x + 1939 }
+func gen_1940(x: int) -> int { x + 1940 }
+func gen_1941(x: int) -> int { x + 1941 }
+func gen_1942(x: int) -> int { x + 1942 }
+func gen_1943(x: int) -> int { x + 1943 }
+func gen_1944(x: int) -> int { x + 1944 }
+func gen_1945(x: int) -> int { x + 1945 }
+func gen_1946(x: int) -> int { x + 1946 }
+func gen_1947(x: int) -> int { x + 1947 }
+func gen_1948(x: int) -> int { x + 1948 }
+func gen_1949(x: int) -> int { x + 1949 }
+func gen_1950(x: int) -> int { x + 1950 }
+func gen_1951(x: int) -> int { x + 1951 }
+func gen_1952(x: int) -> int { x + 1952 }
+func gen_1953(x: int) -> int { x + 1953 }
+func gen_1954(x: int) -> int { x + 1954 }
+func gen_1955(x: int) -> int { x + 1955 }
+func gen_1956(x: int) -> int { x + 1956 }
+func gen_1957(x: int) -> int { x + 1957 }
+func gen_1958(x: int) -> int { x + 1958 }
+func gen_1959(x: int) -> int { x + 1959 }
+func gen_1960(x: int) -> int { x + 1960 }
+func gen_1961(x: int) -> int { x + 1961 }
+func gen_1962(x: int) -> int { x + 1962 }
+func gen_1963(x: int) -> int { x + 1963 }
+func gen_1964(x: int) -> int { x + 1964 }
+func gen_1965(x: int) -> int { x + 1965 }
+func gen_1966(x: int) -> int { x + 1966 }
+func gen_1967(x: int) -> int { x + 1967 }
+func gen_1968(x: int) -> int { x + 1968 }
+func gen_1969(x: int) -> int { x + 1969 }
+func gen_1970(x: int) -> int { x + 1970 }
+func gen_1971(x: int) -> int { x + 1971 }
+func gen_1972(x: int) -> int { x + 1972 }
+func gen_1973(x: int) -> int { x + 1973 }
+func gen_1974(x: int) -> int { x + 1974 }
+func gen_1975(x: int) -> int { x + 1975 }
+func gen_1976(x: int) -> int { x + 1976 }
+func gen_1977(x: int) -> int { x + 1977 }
+func gen_1978(x: int) -> int { x + 1978 }
+func gen_1979(x: int) -> int { x + 1979 }
+func gen_1980(x: int) -> int { x + 1980 }
+func gen_1981(x: int) -> int { x + 1981 }
+func gen_1982(x: int) -> int { x + 1982 }
+func gen_1983(x: int) -> int { x + 1983 }
+func gen_1984(x: int) -> int { x + 1984 }
+func gen_1985(x: int) -> int { x + 1985 }
+func gen_1986(x: int) -> int { x + 1986 }
+func gen_1987(x: int) -> int { x + 1987 }
+func gen_1988(x: int) -> int { x + 1988 }
+func gen_1989(x: int) -> int { x + 1989 }
+func gen_1990(x: int) -> int { x + 1990 }
+func gen_1991(x: int) -> int { x + 1991 }
+func gen_1992(x: int) -> int { x + 1992 }
+func gen_1993(x: int) -> int { x + 1993 }
+func gen_1994(x: int) -> int { x + 1994 }
+func gen_1995(x: int) -> int { x + 1995 }
+func gen_1996(x: int) -> int { x + 1996 }
+func gen_1997(x: int) -> int { x + 1997 }
+func gen_1998(x: int) -> int { x + 1998 }
+func gen_1999(x: int) -> int { x + 1999 }
+func gen_2000(x: int) -> int { x + 2000 }
+func gen_2001(x: int) -> int { x + 2001 }
+func gen_2002(x: int) -> int { x + 2002 }
+func gen_2003(x: int) -> int { x + 2003 }
+func gen_2004(x: int) -> int { x + 2004 }
+func gen_2005(x: int) -> int { x + 2005 }
+func gen_2006(x: int) -> int { x + 2006 }
+func gen_2007(x: int) -> int { x + 2007 }
+func gen_2008(x: int) -> int { x + 2008 }
+func gen_2009(x: int) -> int { x + 2009 }
+func gen_2010(x: int) -> int { x + 2010 }
+func gen_2011(x: int) -> int { x + 2011 }
+func gen_2012(x: int) -> int { x + 2012 }
+func gen_2013(x: int) -> int { x + 2013 }
+func gen_2014(x: int) -> int { x + 2014 }
+func gen_2015(x: int) -> int { x + 2015 }
+func gen_2016(x: int) -> int { x + 2016 }
+func gen_2017(x: int) -> int { x + 2017 }
+func gen_2018(x: int) -> int { x + 2018 }
+func gen_2019(x: int) -> int { x + 2019 }
+func gen_2020(x: int) -> int { x + 2020 }
+func gen_2021(x: int) -> int { x + 2021 }
+func gen_2022(x: int) -> int { x + 2022 }
+func gen_2023(x: int) -> int { x + 2023 }
+func gen_2024(x: int) -> int { x + 2024 }
+func gen_2025(x: int) -> int { x + 2025 }
+func gen_2026(x: int) -> int { x + 2026 }
+func gen_2027(x: int) -> int { x + 2027 }
+func gen_2028(x: int) -> int { x + 2028 }
+func gen_2029(x: int) -> int { x + 2029 }
+func gen_2030(x: int) -> int { x + 2030 }
+func gen_2031(x: int) -> int { x + 2031 }
+func gen_2032(x: int) -> int { x + 2032 }
+func gen_2033(x: int) -> int { x + 2033 }
+func gen_2034(x: int) -> int { x + 2034 }
+func gen_2035(x: int) -> int { x + 2035 }
+func gen_2036(x: int) -> int { x + 2036 }
+func gen_2037(x: int) -> int { x + 2037 }
+func gen_2038(x: int) -> int { x + 2038 }
+func gen_2039(x: int) -> int { x + 2039 }
+func gen_2040(x: int) -> int { x + 2040 }
+func gen_2041(x: int) -> int { x + 2041 }
+func gen_2042(x: int) -> int { x + 2042 }
+func gen_2043(x: int) -> int { x + 2043 }
+func gen_2044(x: int) -> int { x + 2044 }
+func gen_2045(x: int) -> int { x + 2045 }
+func gen_2046(x: int) -> int { x + 2046 }
+func gen_2047(x: int) -> int { x + 2047 }
+func gen_2048(x: int) -> int { x + 2048 }
+func gen_2049(x: int) -> int { x + 2049 }
+func gen_2050(x: int) -> int { x + 2050 }
+func gen_2051(x: int) -> int { x + 2051 }
+func gen_2052(x: int) -> int { x + 2052 }
+func gen_2053(x: int) -> int { x + 2053 }
+func gen_2054(x: int) -> int { x + 2054 }
+func gen_2055(x: int) -> int { x + 2055 }
+func gen_2056(x: int) -> int { x + 2056 }
+func gen_2057(x: int) -> int { x + 2057 }
+func gen_2058(x: int) -> int { x + 2058 }
+func gen_2059(x: int) -> int { x + 2059 }
+func gen_2060(x: int) -> int { x + 2060 }
+func gen_2061(x: int) -> int { x + 2061 }
+func gen_2062(x: int) -> int { x + 2062 }
+func gen_2063(x: int) -> int { x + 2063 }
+func gen_2064(x: int) -> int { x + 2064 }
+func gen_2065(x: int) -> int { x + 2065 }
+func gen_2066(x: int) -> int { x + 2066 }
+func gen_2067(x: int) -> int { x + 2067 }
+func gen_2068(x: int) -> int { x + 2068 }
+func gen_2069(x: int) -> int { x + 2069 }
+func gen_2070(x: int) -> int { x + 2070 }
+func gen_2071(x: int) -> int { x + 2071 }
+func gen_2072(x: int) -> int { x + 2072 }
+func gen_2073(x: int) -> int { x + 2073 }
+func gen_2074(x: int) -> int { x + 2074 }
+func gen_2075(x: int) -> int { x + 2075 }
+func gen_2076(x: int) -> int { x + 2076 }
+func gen_2077(x: int) -> int { x + 2077 }
+func gen_2078(x: int) -> int { x + 2078 }
+func gen_2079(x: int) -> int { x + 2079 }
+func gen_2080(x: int) -> int { x + 2080 }
+func gen_2081(x: int) -> int { x + 2081 }
+func gen_2082(x: int) -> int { x + 2082 }
+func gen_2083(x: int) -> int { x + 2083 }
+func gen_2084(x: int) -> int { x + 2084 }
+func gen_2085(x: int) -> int { x + 2085 }
+func gen_2086(x: int) -> int { x + 2086 }
+func gen_2087(x: int) -> int { x + 2087 }
+func gen_2088(x: int) -> int { x + 2088 }
+func gen_2089(x: int) -> int { x + 2089 }
+func gen_2090(x: int) -> int { x + 2090 }
+func gen_2091(x: int) -> int { x + 2091 }
+func gen_2092(x: int) -> int { x + 2092 }
+func gen_2093(x: int) -> int { x + 2093 }
+func gen_2094(x: int) -> int { x + 2094 }
+func gen_2095(x: int) -> int { x + 2095 }
+func gen_2096(x: int) -> int { x + 2096 }
+func gen_2097(x: int) -> int { x + 2097 }
+func gen_2098(x: int) -> int { x + 2098 }
+func gen_2099(x: int) -> int { x + 2099 }
+func gen_2100(x: int) -> int { x + 2100 }
+func gen_2101(x: int) -> int { x + 2101 }
+func gen_2102(x: int) -> int { x + 2102 }
+func gen_2103(x: int) -> int { x + 2103 }
+func gen_2104(x: int) -> int { x + 2104 }
+func gen_2105(x: int) -> int { x + 2105 }
+func gen_2106(x: int) -> int { x + 2106 }
+func gen_2107(x: int) -> int { x + 2107 }
+func gen_2108(x: int) -> int { x + 2108 }
+func gen_2109(x: int) -> int { x + 2109 }
+func gen_2110(x: int) -> int { x + 2110 }
+func gen_2111(x: int) -> int { x + 2111 }
+func gen_2112(x: int) -> int { x + 2112 }
+func gen_2113(x: int) -> int { x + 2113 }
+func gen_2114(x: int) -> int { x + 2114 }
+func gen_2115(x: int) -> int { x + 2115 }
+func gen_2116(x: int) -> int { x + 2116 }
+func gen_2117(x: int) -> int { x + 2117 }
+func gen_2118(x: int) -> int { x + 2118 }
+func gen_2119(x: int) -> int { x + 2119 }
+func gen_2120(x: int) -> int { x + 2120 }
+func gen_2121(x: int) -> int { x + 2121 }
+func gen_2122(x: int) -> int { x + 2122 }
+func gen_2123(x: int) -> int { x + 2123 }
+func gen_2124(x: int) -> int { x + 2124 }
+func gen_2125(x: int) -> int { x + 2125 }
+func gen_2126(x: int) -> int { x + 2126 }
+func gen_2127(x: int) -> int { x + 2127 }
+func gen_2128(x: int) -> int { x + 2128 }
+func gen_2129(x: int) -> int { x + 2129 }
+func gen_2130(x: int) -> int { x + 2130 }
+func gen_2131(x: int) -> int { x + 2131 }
+func gen_2132(x: int) -> int { x + 2132 }
+func gen_2133(x: int) -> int { x + 2133 }
+func gen_2134(x: int) -> int { x + 2134 }
+func gen_2135(x: int) -> int { x + 2135 }
+func gen_2136(x: int) -> int { x + 2136 }
+func gen_2137(x: int) -> int { x + 2137 }
+func gen_2138(x: int) -> int { x + 2138 }
+func gen_2139(x: int) -> int { x + 2139 }
+func gen_2140(x: int) -> int { x + 2140 }
+func gen_2141(x: int) -> int { x + 2141 }
+func gen_2142(x: int) -> int { x + 2142 }
+func gen_2143(x: int) -> int { x + 2143 }
+func gen_2144(x: int) -> int { x + 2144 }
+func gen_2145(x: int) -> int { x + 2145 }
+func gen_2146(x: int) -> int { x + 2146 }
+func gen_2147(x: int) -> int { x + 2147 }
+func gen_2148(x: int) -> int { x + 2148 }
+func gen_2149(x: int) -> int { x + 2149 }
+func gen_2150(x: int) -> int { x + 2150 }
+func gen_2151(x: int) -> int { x + 2151 }
+func gen_2152(x: int) -> int { x + 2152 }
+func gen_2153(x: int) -> int { x + 2153 }
+func gen_2154(x: int) -> int { x + 2154 }
+func gen_2155(x: int) -> int { x + 2155 }
+func gen_2156(x: int) -> int { x + 2156 }
+func gen_2157(x: int) -> int { x + 2157 }
+func gen_2158(x: int) -> int { x + 2158 }
+func gen_2159(x: int) -> int { x + 2159 }
+func gen_2160(x: int) -> int { x + 2160 }
+func gen_2161(x: int) -> int { x + 2161 }
+func gen_2162(x: int) -> int { x + 2162 }
+func gen_2163(x: int) -> int { x + 2163 }
+func gen_2164(x: int) -> int { x + 2164 }
+func gen_2165(x: int) -> int { x + 2165 }
+func gen_2166(x: int) -> int { x + 2166 }
+func gen_2167(x: int) -> int { x + 2167 }
+func gen_2168(x: int) -> int { x + 2168 }
+func gen_2169(x: int) -> int { x + 2169 }
+func gen_2170(x: int) -> int { x + 2170 }
+func gen_2171(x: int) -> int { x + 2171 }
+func gen_2172(x: int) -> int { x + 2172 }
+func gen_2173(x: int) -> int { x + 2173 }
+func gen_2174(x: int) -> int { x + 2174 }
+func gen_2175(x: int) -> int { x + 2175 }
+func gen_2176(x: int) -> int { x + 2176 }
+func gen_2177(x: int) -> int { x + 2177 }
+func gen_2178(x: int) -> int { x + 2178 }
+func gen_2179(x: int) -> int { x + 2179 }
+func gen_2180(x: int) -> int { x + 2180 }
+func gen_2181(x: int) -> int { x + 2181 }
+func gen_2182(x: int) -> int { x + 2182 }
+func gen_2183(x: int) -> int { x + 2183 }
+func gen_2184(x: int) -> int { x + 2184 }
+func gen_2185(x: int) -> int { x + 2185 }
+func gen_2186(x: int) -> int { x + 2186 }
+func gen_2187(x: int) -> int { x + 2187 }
+func gen_2188(x: int) -> int { x + 2188 }
+func gen_2189(x: int) -> int { x + 2189 }
+func gen_2190(x: int) -> int { x + 2190 }
+func gen_2191(x: int) -> int { x + 2191 }
+func gen_2192(x: int) -> int { x + 2192 }
+func gen_2193(x: int) -> int { x + 2193 }
+func gen_2194(x: int) -> int { x + 2194 }
+func gen_2195(x: int) -> int { x + 2195 }
+func gen_2196(x: int) -> int { x + 2196 }
+func gen_2197(x: int) -> int { x + 2197 }
+func gen_2198(x: int) -> int { x + 2198 }
+func gen_2199(x: int) -> int { x + 2199 }
+func gen_2200(x: int) -> int { x + 2200 }
+func gen_2201(x: int) -> int { x + 2201 }
+func gen_2202(x: int) -> int { x + 2202 }
+func gen_2203(x: int) -> int { x + 2203 }
+func gen_2204(x: int) -> int { x + 2204 }
+func gen_2205(x: int) -> int { x + 2205 }
+func gen_2206(x: int) -> int { x + 2206 }
+func gen_2207(x: int) -> int { x + 2207 }
+func gen_2208(x: int) -> int { x + 2208 }
+func gen_2209(x: int) -> int { x + 2209 }
+func gen_2210(x: int) -> int { x + 2210 }
+func gen_2211(x: int) -> int { x + 2211 }
+func gen_2212(x: int) -> int { x + 2212 }
+func gen_2213(x: int) -> int { x + 2213 }
+func gen_2214(x: int) -> int { x + 2214 }
+func gen_2215(x: int) -> int { x + 2215 }
+func gen_2216(x: int) -> int { x + 2216 }
+func gen_2217(x: int) -> int { x + 2217 }
+func gen_2218(x: int) -> int { x + 2218 }
+func gen_2219(x: int) -> int { x + 2219 }
+func gen_2220(x: int) -> int { x + 2220 }
+func gen_2221(x: int) -> int { x + 2221 }
+func gen_2222(x: int) -> int { x + 2222 }
+func gen_2223(x: int) -> int { x + 2223 }
+func gen_2224(x: int) -> int { x + 2224 }
+func gen_2225(x: int) -> int { x + 2225 }
+func gen_2226(x: int) -> int { x + 2226 }
+func gen_2227(x: int) -> int { x + 2227 }
+func gen_2228(x: int) -> int { x + 2228 }
+func gen_2229(x: int) -> int { x + 2229 }
+func gen_2230(x: int) -> int { x + 2230 }
+func gen_2231(x: int) -> int { x + 2231 }
+func gen_2232(x: int) -> int { x + 2232 }
+func gen_2233(x: int) -> int { x + 2233 }
+func gen_2234(x: int) -> int { x + 2234 }
+func gen_2235(x: int) -> int { x + 2235 }
+func gen_2236(x: int) -> int { x + 2236 }
+func gen_2237(x: int) -> int { x + 2237 }
+func gen_2238(x: int) -> int { x + 2238 }
+func gen_2239(x: int) -> int { x + 2239 }
+func gen_2240(x: int) -> int { x + 2240 }
+func gen_2241(x: int) -> int { x + 2241 }
+func gen_2242(x: int) -> int { x + 2242 }
+func gen_2243(x: int) -> int { x + 2243 }
+func gen_2244(x: int) -> int { x + 2244 }
+func gen_2245(x: int) -> int { x + 2245 }
+func gen_2246(x: int) -> int { x + 2246 }
+func gen_2247(x: int) -> int { x + 2247 }
+func gen_2248(x: int) -> int { x + 2248 }
+func gen_2249(x: int) -> int { x + 2249 }
+func gen_2250(x: int) -> int { x + 2250 }
+func gen_2251(x: int) -> int { x + 2251 }
+func gen_2252(x: int) -> int { x + 2252 }
+func gen_2253(x: int) -> int { x + 2253 }
+func gen_2254(x: int) -> int { x + 2254 }
+func gen_2255(x: int) -> int { x + 2255 }
+func gen_2256(x: int) -> int { x + 2256 }
+func gen_2257(x: int) -> int { x + 2257 }
+func gen_2258(x: int) -> int { x + 2258 }
+func gen_2259(x: int) -> int { x + 2259 }
+func gen_2260(x: int) -> int { x + 2260 }
+func gen_2261(x: int) -> int { x + 2261 }
+func gen_2262(x: int) -> int { x + 2262 }
+func gen_2263(x: int) -> int { x + 2263 }
+func gen_2264(x: int) -> int { x + 2264 }
+func gen_2265(x: int) -> int { x + 2265 }
+func gen_2266(x: int) -> int { x + 2266 }
+func gen_2267(x: int) -> int { x + 2267 }
+func gen_2268(x: int) -> int { x + 2268 }
+func gen_2269(x: int) -> int { x + 2269 }
+func gen_2270(x: int) -> int { x + 2270 }
+func gen_2271(x: int) -> int { x + 2271 }
+func gen_2272(x: int) -> int { x + 2272 }
+func gen_2273(x: int) -> int { x + 2273 }
+func gen_2274(x: int) -> int { x + 2274 }
+func gen_2275(x: int) -> int { x + 2275 }
+func gen_2276(x: int) -> int { x + 2276 }
+func gen_2277(x: int) -> int { x + 2277 }
+func gen_2278(x: int) -> int { x + 2278 }
+func gen_2279(x: int) -> int { x + 2279 }
+func gen_2280(x: int) -> int { x + 2280 }
+func gen_2281(x: int) -> int { x + 2281 }
+func gen_2282(x: int) -> int { x + 2282 }
+func gen_2283(x: int) -> int { x + 2283 }
+func gen_2284(x: int) -> int { x + 2284 }
+func gen_2285(x: int) -> int { x + 2285 }
+func gen_2286(x: int) -> int { x + 2286 }
+func gen_2287(x: int) -> int { x + 2287 }
+func gen_2288(x: int) -> int { x + 2288 }
+func gen_2289(x: int) -> int { x + 2289 }
+func gen_2290(x: int) -> int { x + 2290 }
+func gen_2291(x: int) -> int { x + 2291 }
+func gen_2292(x: int) -> int { x + 2292 }
+func gen_2293(x: int) -> int { x + 2293 }
+func gen_2294(x: int) -> int { x + 2294 }
+func gen_2295(x: int) -> int { x + 2295 }
+func gen_2296(x: int) -> int { x + 2296 }
+func gen_2297(x: int) -> int { x + 2297 }
+func gen_2298(x: int) -> int { x + 2298 }
+func gen_2299(x: int) -> int { x + 2299 }
+func gen_2300(x: int) -> int { x + 2300 }
+func gen_2301(x: int) -> int { x + 2301 }
+func gen_2302(x: int) -> int { x + 2302 }
+func gen_2303(x: int) -> int { x + 2303 }
+func gen_2304(x: int) -> int { x + 2304 }
+func gen_2305(x: int) -> int { x + 2305 }
+func gen_2306(x: int) -> int { x + 2306 }
+func gen_2307(x: int) -> int { x + 2307 }
+func gen_2308(x: int) -> int { x + 2308 }
+func gen_2309(x: int) -> int { x + 2309 }
+func gen_2310(x: int) -> int { x + 2310 }
+func gen_2311(x: int) -> int { x + 2311 }
+func gen_2312(x: int) -> int { x + 2312 }
+func gen_2313(x: int) -> int { x + 2313 }
+func gen_2314(x: int) -> int { x + 2314 }
+func gen_2315(x: int) -> int { x + 2315 }
+func gen_2316(x: int) -> int { x + 2316 }
+func gen_2317(x: int) -> int { x + 2317 }
+func gen_2318(x: int) -> int { x + 2318 }
+func gen_2319(x: int) -> int { x + 2319 }
+func gen_2320(x: int) -> int { x + 2320 }
+func gen_2321(x: int) -> int { x + 2321 }
+func gen_2322(x: int) -> int { x + 2322 }
+func gen_2323(x: int) -> int { x + 2323 }
+func gen_2324(x: int) -> int { x + 2324 }
+func gen_2325(x: int) -> int { x + 2325 }
+func gen_2326(x: int) -> int { x + 2326 }
+func gen_2327(x: int) -> int { x + 2327 }
+func gen_2328(x: int) -> int { x + 2328 }
+func gen_2329(x: int) -> int { x + 2329 }
+func gen_2330(x: int) -> int { x + 2330 }
+func gen_2331(x: int) -> int { x + 2331 }
+func gen_2332(x: int) -> int { x + 2332 }
+func gen_2333(x: int) -> int { x + 2333 }
+func gen_2334(x: int) -> int { x + 2334 }
+func gen_2335(x: int) -> int { x + 2335 }
+func gen_2336(x: int) -> int { x + 2336 }
+func gen_2337(x: int) -> int { x + 2337 }
+func gen_2338(x: int) -> int { x + 2338 }
+func gen_2339(x: int) -> int { x + 2339 }
+func gen_2340(x: int) -> int { x + 2340 }
+func gen_2341(x: int) -> int { x + 2341 }
+func gen_2342(x: int) -> int { x + 2342 }
+func gen_2343(x: int) -> int { x + 2343 }
+func gen_2344(x: int) -> int { x + 2344 }
+func gen_2345(x: int) -> int { x + 2345 }
+func gen_2346(x: int) -> int { x + 2346 }
+func gen_2347(x: int) -> int { x + 2347 }
+func gen_2348(x: int) -> int { x + 2348 }
+func gen_2349(x: int) -> int { x + 2349 }
+func gen_2350(x: int) -> int { x + 2350 }
+func gen_2351(x: int) -> int { x + 2351 }
+func gen_2352(x: int) -> int { x + 2352 }
+func gen_2353(x: int) -> int { x + 2353 }
+func gen_2354(x: int) -> int { x + 2354 }
+func gen_2355(x: int) -> int { x + 2355 }
+func gen_2356(x: int) -> int { x + 2356 }
+func gen_2357(x: int) -> int { x + 2357 }
+func gen_2358(x: int) -> int { x + 2358 }
+func gen_2359(x: int) -> int { x + 2359 }
+func gen_2360(x: int) -> int { x + 2360 }
+func gen_2361(x: int) -> int { x + 2361 }
+func gen_2362(x: int) -> int { x + 2362 }
+func gen_2363(x: int) -> int { x + 2363 }
+func gen_2364(x: int) -> int { x + 2364 }
+func gen_2365(x: int) -> int { x + 2365 }
+func gen_2366(x: int) -> int { x + 2366 }
+func gen_2367(x: int) -> int { x + 2367 }
+func gen_2368(x: int) -> int { x + 2368 }
+func gen_2369(x: int) -> int { x + 2369 }
+func gen_2370(x: int) -> int { x + 2370 }
+func gen_2371(x: int) -> int { x + 2371 }
+func gen_2372(x: int) -> int { x + 2372 }
+func gen_2373(x: int) -> int { x + 2373 }
+func gen_2374(x: int) -> int { x + 2374 }
+func gen_2375(x: int) -> int { x + 2375 }
+func gen_2376(x: int) -> int { x + 2376 }
+func gen_2377(x: int) -> int { x + 2377 }
+func gen_2378(x: int) -> int { x + 2378 }
+func gen_2379(x: int) -> int { x + 2379 }
+func gen_2380(x: int) -> int { x + 2380 }
+func gen_2381(x: int) -> int { x + 2381 }
+func gen_2382(x: int) -> int { x + 2382 }
+func gen_2383(x: int) -> int { x + 2383 }
+func gen_2384(x: int) -> int { x + 2384 }
+func gen_2385(x: int) -> int { x + 2385 }
+func gen_2386(x: int) -> int { x + 2386 }
+func gen_2387(x: int) -> int { x + 2387 }
+func gen_2388(x: int) -> int { x + 2388 }
+func gen_2389(x: int) -> int { x + 2389 }
+func gen_2390(x: int) -> int { x + 2390 }
+func gen_2391(x: int) -> int { x + 2391 }
+func gen_2392(x: int) -> int { x + 2392 }
+func gen_2393(x: int) -> int { x + 2393 }
+func gen_2394(x: int) -> int { x + 2394 }
+func gen_2395(x: int) -> int { x + 2395 }
+func gen_2396(x: int) -> int { x + 2396 }
+func gen_2397(x: int) -> int { x + 2397 }
+func gen_2398(x: int) -> int { x + 2398 }
+func gen_2399(x: int) -> int { x + 2399 }
+func gen_2400(x: int) -> int { x + 2400 }
+func gen_2401(x: int) -> int { x + 2401 }
+func gen_2402(x: int) -> int { x + 2402 }
+func gen_2403(x: int) -> int { x + 2403 }
+func gen_2404(x: int) -> int { x + 2404 }
+func gen_2405(x: int) -> int { x + 2405 }
+func gen_2406(x: int) -> int { x + 2406 }
+func gen_2407(x: int) -> int { x + 2407 }
+func gen_2408(x: int) -> int { x + 2408 }
+func gen_2409(x: int) -> int { x + 2409 }
+func gen_2410(x: int) -> int { x + 2410 }
+func gen_2411(x: int) -> int { x + 2411 }
+func gen_2412(x: int) -> int { x + 2412 }
+func gen_2413(x: int) -> int { x + 2413 }
+func gen_2414(x: int) -> int { x + 2414 }
+func gen_2415(x: int) -> int { x + 2415 }
+func gen_2416(x: int) -> int { x + 2416 }
+func gen_2417(x: int) -> int { x + 2417 }
+func gen_2418(x: int) -> int { x + 2418 }
+func gen_2419(x: int) -> int { x + 2419 }
+func gen_2420(x: int) -> int { x + 2420 }
+func gen_2421(x: int) -> int { x + 2421 }
+func gen_2422(x: int) -> int { x + 2422 }
+func gen_2423(x: int) -> int { x + 2423 }
+func gen_2424(x: int) -> int { x + 2424 }
+func gen_2425(x: int) -> int { x + 2425 }
+func gen_2426(x: int) -> int { x + 2426 }
+func gen_2427(x: int) -> int { x + 2427 }
+func gen_2428(x: int) -> int { x + 2428 }
+func gen_2429(x: int) -> int { x + 2429 }
+func gen_2430(x: int) -> int { x + 2430 }
+func gen_2431(x: int) -> int { x + 2431 }
+func gen_2432(x: int) -> int { x + 2432 }
+func gen_2433(x: int) -> int { x + 2433 }
+func gen_2434(x: int) -> int { x + 2434 }
+func gen_2435(x: int) -> int { x + 2435 }
+func gen_2436(x: int) -> int { x + 2436 }
+func gen_2437(x: int) -> int { x + 2437 }
+func gen_2438(x: int) -> int { x + 2438 }
+func gen_2439(x: int) -> int { x + 2439 }
+func gen_2440(x: int) -> int { x + 2440 }
+func gen_2441(x: int) -> int { x + 2441 }
+func gen_2442(x: int) -> int { x + 2442 }
+func gen_2443(x: int) -> int { x + 2443 }
+func gen_2444(x: int) -> int { x + 2444 }
+func gen_2445(x: int) -> int { x + 2445 }
+func gen_2446(x: int) -> int { x + 2446 }
+func gen_2447(x: int) -> int { x + 2447 }
+func gen_2448(x: int) -> int { x + 2448 }
+func gen_2449(x: int) -> int { x + 2449 }
+func gen_2450(x: int) -> int { x + 2450 }
+func gen_2451(x: int) -> int { x + 2451 }
+func gen_2452(x: int) -> int { x + 2452 }
+func gen_2453(x: int) -> int { x + 2453 }
+func gen_2454(x: int) -> int { x + 2454 }
+func gen_2455(x: int) -> int { x + 2455 }
+func gen_2456(x: int) -> int { x + 2456 }
+func gen_2457(x: int) -> int { x + 2457 }
+func gen_2458(x: int) -> int { x + 2458 }
+func gen_2459(x: int) -> int { x + 2459 }
+func gen_2460(x: int) -> int { x + 2460 }
+func gen_2461(x: int) -> int { x + 2461 }
+func gen_2462(x: int) -> int { x + 2462 }
+func gen_2463(x: int) -> int { x + 2463 }
+func gen_2464(x: int) -> int { x + 2464 }
+func gen_2465(x: int) -> int { x + 2465 }
+func gen_2466(x: int) -> int { x + 2466 }
+func gen_2467(x: int) -> int { x + 2467 }
+func gen_2468(x: int) -> int { x + 2468 }
+func gen_2469(x: int) -> int { x + 2469 }
+func gen_2470(x: int) -> int { x + 2470 }
+func gen_2471(x: int) -> int { x + 2471 }
+func gen_2472(x: int) -> int { x + 2472 }
+func gen_2473(x: int) -> int { x + 2473 }
+func gen_2474(x: int) -> int { x + 2474 }
+func gen_2475(x: int) -> int { x + 2475 }
+func gen_2476(x: int) -> int { x + 2476 }
+func gen_2477(x: int) -> int { x + 2477 }
+func gen_2478(x: int) -> int { x + 2478 }
+func gen_2479(x: int) -> int { x + 2479 }
+func gen_2480(x: int) -> int { x + 2480 }
+func gen_2481(x: int) -> int { x + 2481 }
+func gen_2482(x: int) -> int { x + 2482 }
+func gen_2483(x: int) -> int { x + 2483 }
+func gen_2484(x: int) -> int { x + 2484 }
+func gen_2485(x: int) -> int { x + 2485 }
+func gen_2486(x: int) -> int { x + 2486 }
+func gen_2487(x: int) -> int { x + 2487 }
+func gen_2488(x: int) -> int { x + 2488 }
+func gen_2489(x: int) -> int { x + 2489 }
+func gen_2490(x: int) -> int { x + 2490 }
+func gen_2491(x: int) -> int { x + 2491 }
+func gen_2492(x: int) -> int { x + 2492 }
+func gen_2493(x: int) -> int { x + 2493 }
+func gen_2494(x: int) -> int { x + 2494 }
+func gen_2495(x: int) -> int { x + 2495 }
+func gen_2496(x: int) -> int { x + 2496 }
+func gen_2497(x: int) -> int { x + 2497 }
+func gen_2498(x: int) -> int { x + 2498 }
+func gen_2499(x: int) -> int { x + 2499 }
+
+func main() -> int {
+ total := 0
+ total = total + gen_0(total)
+ total = total + gen_25(total)
+ total = total + gen_50(total)
+ total = total + gen_75(total)
+ total = total + gen_100(total)
+ total = total + gen_125(total)
+ total = total + gen_150(total)
+ total = total + gen_175(total)
+ total = total + gen_200(total)
+ total = total + gen_225(total)
+ total = total + gen_250(total)
+ total = total + gen_275(total)
+ total = total + gen_300(total)
+ total = total + gen_325(total)
+ total = total + gen_350(total)
+ total = total + gen_375(total)
+ total = total + gen_400(total)
+ total = total + gen_425(total)
+ total = total + gen_450(total)
+ total = total + gen_475(total)
+ total = total + gen_500(total)
+ total = total + gen_525(total)
+ total = total + gen_550(total)
+ total = total + gen_575(total)
+ total = total + gen_600(total)
+ total = total + gen_625(total)
+ total = total + gen_650(total)
+ total = total + gen_675(total)
+ total = total + gen_700(total)
+ total = total + gen_725(total)
+ total = total + gen_750(total)
+ total = total + gen_775(total)
+ total = total + gen_800(total)
+ total = total + gen_825(total)
+ total = total + gen_850(total)
+ total = total + gen_875(total)
+ total = total + gen_900(total)
+ total = total + gen_925(total)
+ total = total + gen_950(total)
+ total = total + gen_975(total)
+ total = total + gen_1000(total)
+ total = total + gen_1025(total)
+ total = total + gen_1050(total)
+ total = total + gen_1075(total)
+ total = total + gen_1100(total)
+ total = total + gen_1125(total)
+ total = total + gen_1150(total)
+ total = total + gen_1175(total)
+ total = total + gen_1200(total)
+ total = total + gen_1225(total)
+ total = total + gen_1250(total)
+ total = total + gen_1275(total)
+ total = total + gen_1300(total)
+ total = total + gen_1325(total)
+ total = total + gen_1350(total)
+ total = total + gen_1375(total)
+ total = total + gen_1400(total)
+ total = total + gen_1425(total)
+ total = total + gen_1450(total)
+ total = total + gen_1475(total)
+ total = total + gen_1500(total)
+ total = total + gen_1525(total)
+ total = total + gen_1550(total)
+ total = total + gen_1575(total)
+ total = total + gen_1600(total)
+ total = total + gen_1625(total)
+ total = total + gen_1650(total)
+ total = total + gen_1675(total)
+ total = total + gen_1700(total)
+ total = total + gen_1725(total)
+ total = total + gen_1750(total)
+ total = total + gen_1775(total)
+ total = total + gen_1800(total)
+ total = total + gen_1825(total)
+ total = total + gen_1850(total)
+ total = total + gen_1875(total)
+ total = total + gen_1900(total)
+ total = total + gen_1925(total)
+ total = total + gen_1950(total)
+ total = total + gen_1975(total)
+ total = total + gen_2000(total)
+ total = total + gen_2025(total)
+ total = total + gen_2050(total)
+ total = total + gen_2075(total)
+ total = total + gen_2100(total)
+ total = total + gen_2125(total)
+ total = total + gen_2150(total)
+ total = total + gen_2175(total)
+ total = total + gen_2200(total)
+ total = total + gen_2225(total)
+ total = total + gen_2250(total)
+ total = total + gen_2275(total)
+ total = total + gen_2300(total)
+ total = total + gen_2325(total)
+ total = total + gen_2350(total)
+ total = total + gen_2375(total)
+ total = total + gen_2400(total)
+ total = total + gen_2425(total)
+ total = total + gen_2450(total)
+ total = total + gen_2475(total)
+ println("{total}")
+ return total
+}
diff --git a/bench/compiler/many_exprs.zz b/bench/compiler/many_exprs.zz
new file mode 100644
index 00000000..2308d7d2
--- /dev/null
+++ b/bench/compiler/many_exprs.zz
@@ -0,0 +1,12651 @@
+func h0(x: int) -> int {
+ t0 := x + 0
+ t1 := x + 1
+ t2 := x + 2
+ t3 := x + 3
+ t4 := x + 4
+ t5 := x + 5
+ t6 := x + 6
+ t7 := x + 7
+ t8 := x + 8
+ t9 := x + 9
+ t10 := x + 10
+ t11 := x + 11
+ t12 := x + 12
+ t13 := x + 13
+ t14 := x + 14
+ t15 := x + 15
+ t16 := x + 16
+ t17 := x + 17
+ t18 := x + 18
+ t19 := x + 19
+ t20 := x + 20
+ t21 := x + 21
+ t22 := x + 22
+ t23 := x + 23
+ t24 := x + 24
+ t25 := x + 25
+ t26 := x + 26
+ t27 := x + 27
+ t28 := x + 28
+ t29 := x + 29
+ t30 := x + 30
+ t31 := x + 31
+ t32 := x + 32
+ t33 := x + 33
+ t34 := x + 34
+ t35 := x + 35
+ t36 := x + 36
+ t37 := x + 37
+ t38 := x + 38
+ t39 := x + 39
+ t40 := x + 40
+ t41 := x + 41
+ t42 := x + 42
+ t43 := x + 43
+ t44 := x + 44
+ t45 := x + 45
+ t46 := x + 46
+ t47 := x + 47
+ t48 := x + 48
+ t49 := x + 49
+ t50 := x + 50
+ t51 := x + 51
+ t52 := x + 52
+ t53 := x + 53
+ t54 := x + 54
+ t55 := x + 55
+ t56 := x + 56
+ t57 := x + 57
+ t58 := x + 58
+ t59 := x + 59
+ t60 := x + 60
+ t61 := x + 61
+ t62 := x + 62
+ t63 := x + 63
+ t64 := x + 64
+ t65 := x + 65
+ t66 := x + 66
+ t67 := x + 67
+ t68 := x + 68
+ t69 := x + 69
+ t70 := x + 70
+ t71 := x + 71
+ t72 := x + 72
+ t73 := x + 73
+ t74 := x + 74
+ t75 := x + 75
+ t76 := x + 76
+ t77 := x + 77
+ t78 := x + 78
+ t79 := x + 79
+ t80 := x + 80
+ t81 := x + 81
+ t82 := x + 82
+ t83 := x + 83
+ t84 := x + 84
+ t85 := x + 85
+ t86 := x + 86
+ t87 := x + 87
+ t88 := x + 88
+ t89 := x + 89
+ t90 := x + 90
+ t91 := x + 91
+ t92 := x + 92
+ t93 := x + 93
+ t94 := x + 94
+ t95 := x + 95
+ t96 := x + 96
+ t97 := x + 97
+ t98 := x + 98
+ t99 := x + 99
+ t100 := x + 100
+ t101 := x + 101
+ t102 := x + 102
+ t103 := x + 103
+ t104 := x + 104
+ t105 := x + 105
+ t106 := x + 106
+ t107 := x + 107
+ t108 := x + 108
+ t109 := x + 109
+ t110 := x + 110
+ t111 := x + 111
+ t112 := x + 112
+ t113 := x + 113
+ t114 := x + 114
+ t115 := x + 115
+ t116 := x + 116
+ t117 := x + 117
+ t118 := x + 118
+ t119 := x + 119
+ t120 := x + 120
+ t121 := x + 121
+ t122 := x + 122
+ t123 := x + 123
+ t124 := x + 124
+ t125 := x + 125
+ t126 := x + 126
+ t127 := x + 127
+ t128 := x + 128
+ t129 := x + 129
+ t130 := x + 130
+ t131 := x + 131
+ t132 := x + 132
+ t133 := x + 133
+ t134 := x + 134
+ t135 := x + 135
+ t136 := x + 136
+ t137 := x + 137
+ t138 := x + 138
+ t139 := x + 139
+ t140 := x + 140
+ t141 := x + 141
+ t142 := x + 142
+ t143 := x + 143
+ t144 := x + 144
+ t145 := x + 145
+ t146 := x + 146
+ t147 := x + 147
+ t148 := x + 148
+ t149 := x + 149
+ t150 := x + 150
+ t151 := x + 151
+ t152 := x + 152
+ t153 := x + 153
+ t154 := x + 154
+ t155 := x + 155
+ t156 := x + 156
+ t157 := x + 157
+ t158 := x + 158
+ t159 := x + 159
+ t160 := x + 160
+ t161 := x + 161
+ t162 := x + 162
+ t163 := x + 163
+ t164 := x + 164
+ t165 := x + 165
+ t166 := x + 166
+ t167 := x + 167
+ t168 := x + 168
+ t169 := x + 169
+ t170 := x + 170
+ t171 := x + 171
+ t172 := x + 172
+ t173 := x + 173
+ t174 := x + 174
+ t175 := x + 175
+ t176 := x + 176
+ t177 := x + 177
+ t178 := x + 178
+ t179 := x + 179
+ t180 := x + 180
+ t181 := x + 181
+ t182 := x + 182
+ t183 := x + 183
+ t184 := x + 184
+ t185 := x + 185
+ t186 := x + 186
+ t187 := x + 187
+ t188 := x + 188
+ t189 := x + 189
+ t190 := x + 190
+ t191 := x + 191
+ t192 := x + 192
+ t193 := x + 193
+ t194 := x + 194
+ t195 := x + 195
+ t196 := x + 196
+ t197 := x + 197
+ t198 := x + 198
+ t199 := x + 199
+ t200 := x + 200
+ t201 := x + 201
+ t202 := x + 202
+ t203 := x + 203
+ t204 := x + 204
+ t205 := x + 205
+ t206 := x + 206
+ t207 := x + 207
+ t208 := x + 208
+ t209 := x + 209
+ t210 := x + 210
+ t211 := x + 211
+ t212 := x + 212
+ t213 := x + 213
+ t214 := x + 214
+ t215 := x + 215
+ t216 := x + 216
+ t217 := x + 217
+ t218 := x + 218
+ t219 := x + 219
+ t220 := x + 220
+ t221 := x + 221
+ t222 := x + 222
+ t223 := x + 223
+ t224 := x + 224
+ t225 := x + 225
+ t226 := x + 226
+ t227 := x + 227
+ t228 := x + 228
+ t229 := x + 229
+ t230 := x + 230
+ t231 := x + 231
+ t232 := x + 232
+ t233 := x + 233
+ t234 := x + 234
+ t235 := x + 235
+ t236 := x + 236
+ t237 := x + 237
+ t238 := x + 238
+ t239 := x + 239
+ t240 := x + 240
+ t241 := x + 241
+ t242 := x + 242
+ t243 := x + 243
+ t244 := x + 244
+ t245 := x + 245
+ t246 := x + 246
+ t247 := x + 247
+ t248 := x + 248
+ t249 := x + 249
+ return t0 + t1 + t2 + t3 + t4 + t5 + t6 + t7 + t8 + t9 + t10 + t11 + t12 + t13 + t14 + t15 + t16 + t17 + t18 + t19 + t20 + t21 + t22 + t23 + t24 + t25 + t26 + t27 + t28 + t29 + t30 + t31 + t32 + t33 + t34 + t35 + t36 + t37 + t38 + t39 + t40 + t41 + t42 + t43 + t44 + t45 + t46 + t47 + t48 + t49 + t50 + t51 + t52 + t53 + t54 + t55 + t56 + t57 + t58 + t59 + t60 + t61 + t62 + t63 + t64 + t65 + t66 + t67 + t68 + t69 + t70 + t71 + t72 + t73 + t74 + t75 + t76 + t77 + t78 + t79 + t80 + t81 + t82 + t83 + t84 + t85 + t86 + t87 + t88 + t89 + t90 + t91 + t92 + t93 + t94 + t95 + t96 + t97 + t98 + t99 + t100 + t101 + t102 + t103 + t104 + t105 + t106 + t107 + t108 + t109 + t110 + t111 + t112 + t113 + t114 + t115 + t116 + t117 + t118 + t119 + t120 + t121 + t122 + t123 + t124 + t125 + t126 + t127 + t128 + t129 + t130 + t131 + t132 + t133 + t134 + t135 + t136 + t137 + t138 + t139 + t140 + t141 + t142 + t143 + t144 + t145 + t146 + t147 + t148 + t149 + t150 + t151 + t152 + t153 + t154 + t155 + t156 + t157 + t158 + t159 + t160 + t161 + t162 + t163 + t164 + t165 + t166 + t167 + t168 + t169 + t170 + t171 + t172 + t173 + t174 + t175 + t176 + t177 + t178 + t179 + t180 + t181 + t182 + t183 + t184 + t185 + t186 + t187 + t188 + t189 + t190 + t191 + t192 + t193 + t194 + t195 + t196 + t197 + t198 + t199 + t200 + t201 + t202 + t203 + t204 + t205 + t206 + t207 + t208 + t209 + t210 + t211 + t212 + t213 + t214 + t215 + t216 + t217 + t218 + t219 + t220 + t221 + t222 + t223 + t224 + t225 + t226 + t227 + t228 + t229 + t230 + t231 + t232 + t233 + t234 + t235 + t236 + t237 + t238 + t239 + t240 + t241 + t242 + t243 + t244 + t245 + t246 + t247 + t248 + t249
+}
+func h1(x: int) -> int {
+ t0 := x + 0
+ t1 := x + 1
+ t2 := x + 2
+ t3 := x + 3
+ t4 := x + 4
+ t5 := x + 5
+ t6 := x + 6
+ t7 := x + 7
+ t8 := x + 8
+ t9 := x + 9
+ t10 := x + 10
+ t11 := x + 11
+ t12 := x + 12
+ t13 := x + 13
+ t14 := x + 14
+ t15 := x + 15
+ t16 := x + 16
+ t17 := x + 17
+ t18 := x + 18
+ t19 := x + 19
+ t20 := x + 20
+ t21 := x + 21
+ t22 := x + 22
+ t23 := x + 23
+ t24 := x + 24
+ t25 := x + 25
+ t26 := x + 26
+ t27 := x + 27
+ t28 := x + 28
+ t29 := x + 29
+ t30 := x + 30
+ t31 := x + 31
+ t32 := x + 32
+ t33 := x + 33
+ t34 := x + 34
+ t35 := x + 35
+ t36 := x + 36
+ t37 := x + 37
+ t38 := x + 38
+ t39 := x + 39
+ t40 := x + 40
+ t41 := x + 41
+ t42 := x + 42
+ t43 := x + 43
+ t44 := x + 44
+ t45 := x + 45
+ t46 := x + 46
+ t47 := x + 47
+ t48 := x + 48
+ t49 := x + 49
+ t50 := x + 50
+ t51 := x + 51
+ t52 := x + 52
+ t53 := x + 53
+ t54 := x + 54
+ t55 := x + 55
+ t56 := x + 56
+ t57 := x + 57
+ t58 := x + 58
+ t59 := x + 59
+ t60 := x + 60
+ t61 := x + 61
+ t62 := x + 62
+ t63 := x + 63
+ t64 := x + 64
+ t65 := x + 65
+ t66 := x + 66
+ t67 := x + 67
+ t68 := x + 68
+ t69 := x + 69
+ t70 := x + 70
+ t71 := x + 71
+ t72 := x + 72
+ t73 := x + 73
+ t74 := x + 74
+ t75 := x + 75
+ t76 := x + 76
+ t77 := x + 77
+ t78 := x + 78
+ t79 := x + 79
+ t80 := x + 80
+ t81 := x + 81
+ t82 := x + 82
+ t83 := x + 83
+ t84 := x + 84
+ t85 := x + 85
+ t86 := x + 86
+ t87 := x + 87
+ t88 := x + 88
+ t89 := x + 89
+ t90 := x + 90
+ t91 := x + 91
+ t92 := x + 92
+ t93 := x + 93
+ t94 := x + 94
+ t95 := x + 95
+ t96 := x + 96
+ t97 := x + 97
+ t98 := x + 98
+ t99 := x + 99
+ t100 := x + 100
+ t101 := x + 101
+ t102 := x + 102
+ t103 := x + 103
+ t104 := x + 104
+ t105 := x + 105
+ t106 := x + 106
+ t107 := x + 107
+ t108 := x + 108
+ t109 := x + 109
+ t110 := x + 110
+ t111 := x + 111
+ t112 := x + 112
+ t113 := x + 113
+ t114 := x + 114
+ t115 := x + 115
+ t116 := x + 116
+ t117 := x + 117
+ t118 := x + 118
+ t119 := x + 119
+ t120 := x + 120
+ t121 := x + 121
+ t122 := x + 122
+ t123 := x + 123
+ t124 := x + 124
+ t125 := x + 125
+ t126 := x + 126
+ t127 := x + 127
+ t128 := x + 128
+ t129 := x + 129
+ t130 := x + 130
+ t131 := x + 131
+ t132 := x + 132
+ t133 := x + 133
+ t134 := x + 134
+ t135 := x + 135
+ t136 := x + 136
+ t137 := x + 137
+ t138 := x + 138
+ t139 := x + 139
+ t140 := x + 140
+ t141 := x + 141
+ t142 := x + 142
+ t143 := x + 143
+ t144 := x + 144
+ t145 := x + 145
+ t146 := x + 146
+ t147 := x + 147
+ t148 := x + 148
+ t149 := x + 149
+ t150 := x + 150
+ t151 := x + 151
+ t152 := x + 152
+ t153 := x + 153
+ t154 := x + 154
+ t155 := x + 155
+ t156 := x + 156
+ t157 := x + 157
+ t158 := x + 158
+ t159 := x + 159
+ t160 := x + 160
+ t161 := x + 161
+ t162 := x + 162
+ t163 := x + 163
+ t164 := x + 164
+ t165 := x + 165
+ t166 := x + 166
+ t167 := x + 167
+ t168 := x + 168
+ t169 := x + 169
+ t170 := x + 170
+ t171 := x + 171
+ t172 := x + 172
+ t173 := x + 173
+ t174 := x + 174
+ t175 := x + 175
+ t176 := x + 176
+ t177 := x + 177
+ t178 := x + 178
+ t179 := x + 179
+ t180 := x + 180
+ t181 := x + 181
+ t182 := x + 182
+ t183 := x + 183
+ t184 := x + 184
+ t185 := x + 185
+ t186 := x + 186
+ t187 := x + 187
+ t188 := x + 188
+ t189 := x + 189
+ t190 := x + 190
+ t191 := x + 191
+ t192 := x + 192
+ t193 := x + 193
+ t194 := x + 194
+ t195 := x + 195
+ t196 := x + 196
+ t197 := x + 197
+ t198 := x + 198
+ t199 := x + 199
+ t200 := x + 200
+ t201 := x + 201
+ t202 := x + 202
+ t203 := x + 203
+ t204 := x + 204
+ t205 := x + 205
+ t206 := x + 206
+ t207 := x + 207
+ t208 := x + 208
+ t209 := x + 209
+ t210 := x + 210
+ t211 := x + 211
+ t212 := x + 212
+ t213 := x + 213
+ t214 := x + 214
+ t215 := x + 215
+ t216 := x + 216
+ t217 := x + 217
+ t218 := x + 218
+ t219 := x + 219
+ t220 := x + 220
+ t221 := x + 221
+ t222 := x + 222
+ t223 := x + 223
+ t224 := x + 224
+ t225 := x + 225
+ t226 := x + 226
+ t227 := x + 227
+ t228 := x + 228
+ t229 := x + 229
+ t230 := x + 230
+ t231 := x + 231
+ t232 := x + 232
+ t233 := x + 233
+ t234 := x + 234
+ t235 := x + 235
+ t236 := x + 236
+ t237 := x + 237
+ t238 := x + 238
+ t239 := x + 239
+ t240 := x + 240
+ t241 := x + 241
+ t242 := x + 242
+ t243 := x + 243
+ t244 := x + 244
+ t245 := x + 245
+ t246 := x + 246
+ t247 := x + 247
+ t248 := x + 248
+ t249 := x + 249
+ return t0 + t1 + t2 + t3 + t4 + t5 + t6 + t7 + t8 + t9 + t10 + t11 + t12 + t13 + t14 + t15 + t16 + t17 + t18 + t19 + t20 + t21 + t22 + t23 + t24 + t25 + t26 + t27 + t28 + t29 + t30 + t31 + t32 + t33 + t34 + t35 + t36 + t37 + t38 + t39 + t40 + t41 + t42 + t43 + t44 + t45 + t46 + t47 + t48 + t49 + t50 + t51 + t52 + t53 + t54 + t55 + t56 + t57 + t58 + t59 + t60 + t61 + t62 + t63 + t64 + t65 + t66 + t67 + t68 + t69 + t70 + t71 + t72 + t73 + t74 + t75 + t76 + t77 + t78 + t79 + t80 + t81 + t82 + t83 + t84 + t85 + t86 + t87 + t88 + t89 + t90 + t91 + t92 + t93 + t94 + t95 + t96 + t97 + t98 + t99 + t100 + t101 + t102 + t103 + t104 + t105 + t106 + t107 + t108 + t109 + t110 + t111 + t112 + t113 + t114 + t115 + t116 + t117 + t118 + t119 + t120 + t121 + t122 + t123 + t124 + t125 + t126 + t127 + t128 + t129 + t130 + t131 + t132 + t133 + t134 + t135 + t136 + t137 + t138 + t139 + t140 + t141 + t142 + t143 + t144 + t145 + t146 + t147 + t148 + t149 + t150 + t151 + t152 + t153 + t154 + t155 + t156 + t157 + t158 + t159 + t160 + t161 + t162 + t163 + t164 + t165 + t166 + t167 + t168 + t169 + t170 + t171 + t172 + t173 + t174 + t175 + t176 + t177 + t178 + t179 + t180 + t181 + t182 + t183 + t184 + t185 + t186 + t187 + t188 + t189 + t190 + t191 + t192 + t193 + t194 + t195 + t196 + t197 + t198 + t199 + t200 + t201 + t202 + t203 + t204 + t205 + t206 + t207 + t208 + t209 + t210 + t211 + t212 + t213 + t214 + t215 + t216 + t217 + t218 + t219 + t220 + t221 + t222 + t223 + t224 + t225 + t226 + t227 + t228 + t229 + t230 + t231 + t232 + t233 + t234 + t235 + t236 + t237 + t238 + t239 + t240 + t241 + t242 + t243 + t244 + t245 + t246 + t247 + t248 + t249
+}
+func h2(x: int) -> int {
+ t0 := x + 0
+ t1 := x + 1
+ t2 := x + 2
+ t3 := x + 3
+ t4 := x + 4
+ t5 := x + 5
+ t6 := x + 6
+ t7 := x + 7
+ t8 := x + 8
+ t9 := x + 9
+ t10 := x + 10
+ t11 := x + 11
+ t12 := x + 12
+ t13 := x + 13
+ t14 := x + 14
+ t15 := x + 15
+ t16 := x + 16
+ t17 := x + 17
+ t18 := x + 18
+ t19 := x + 19
+ t20 := x + 20
+ t21 := x + 21
+ t22 := x + 22
+ t23 := x + 23
+ t24 := x + 24
+ t25 := x + 25
+ t26 := x + 26
+ t27 := x + 27
+ t28 := x + 28
+ t29 := x + 29
+ t30 := x + 30
+ t31 := x + 31
+ t32 := x + 32
+ t33 := x + 33
+ t34 := x + 34
+ t35 := x + 35
+ t36 := x + 36
+ t37 := x + 37
+ t38 := x + 38
+ t39 := x + 39
+ t40 := x + 40
+ t41 := x + 41
+ t42 := x + 42
+ t43 := x + 43
+ t44 := x + 44
+ t45 := x + 45
+ t46 := x + 46
+ t47 := x + 47
+ t48 := x + 48
+ t49 := x + 49
+ t50 := x + 50
+ t51 := x + 51
+ t52 := x + 52
+ t53 := x + 53
+ t54 := x + 54
+ t55 := x + 55
+ t56 := x + 56
+ t57 := x + 57
+ t58 := x + 58
+ t59 := x + 59
+ t60 := x + 60
+ t61 := x + 61
+ t62 := x + 62
+ t63 := x + 63
+ t64 := x + 64
+ t65 := x + 65
+ t66 := x + 66
+ t67 := x + 67
+ t68 := x + 68
+ t69 := x + 69
+ t70 := x + 70
+ t71 := x + 71
+ t72 := x + 72
+ t73 := x + 73
+ t74 := x + 74
+ t75 := x + 75
+ t76 := x + 76
+ t77 := x + 77
+ t78 := x + 78
+ t79 := x + 79
+ t80 := x + 80
+ t81 := x + 81
+ t82 := x + 82
+ t83 := x + 83
+ t84 := x + 84
+ t85 := x + 85
+ t86 := x + 86
+ t87 := x + 87
+ t88 := x + 88
+ t89 := x + 89
+ t90 := x + 90
+ t91 := x + 91
+ t92 := x + 92
+ t93 := x + 93
+ t94 := x + 94
+ t95 := x + 95
+ t96 := x + 96
+ t97 := x + 97
+ t98 := x + 98
+ t99 := x + 99
+ t100 := x + 100
+ t101 := x + 101
+ t102 := x + 102
+ t103 := x + 103
+ t104 := x + 104
+ t105 := x + 105
+ t106 := x + 106
+ t107 := x + 107
+ t108 := x + 108
+ t109 := x + 109
+ t110 := x + 110
+ t111 := x + 111
+ t112 := x + 112
+ t113 := x + 113
+ t114 := x + 114
+ t115 := x + 115
+ t116 := x + 116
+ t117 := x + 117
+ t118 := x + 118
+ t119 := x + 119
+ t120 := x + 120
+ t121 := x + 121
+ t122 := x + 122
+ t123 := x + 123
+ t124 := x + 124
+ t125 := x + 125
+ t126 := x + 126
+ t127 := x + 127
+ t128 := x + 128
+ t129 := x + 129
+ t130 := x + 130
+ t131 := x + 131
+ t132 := x + 132
+ t133 := x + 133
+ t134 := x + 134
+ t135 := x + 135
+ t136 := x + 136
+ t137 := x + 137
+ t138 := x + 138
+ t139 := x + 139
+ t140 := x + 140
+ t141 := x + 141
+ t142 := x + 142
+ t143 := x + 143
+ t144 := x + 144
+ t145 := x + 145
+ t146 := x + 146
+ t147 := x + 147
+ t148 := x + 148
+ t149 := x + 149
+ t150 := x + 150
+ t151 := x + 151
+ t152 := x + 152
+ t153 := x + 153
+ t154 := x + 154
+ t155 := x + 155
+ t156 := x + 156
+ t157 := x + 157
+ t158 := x + 158
+ t159 := x + 159
+ t160 := x + 160
+ t161 := x + 161
+ t162 := x + 162
+ t163 := x + 163
+ t164 := x + 164
+ t165 := x + 165
+ t166 := x + 166
+ t167 := x + 167
+ t168 := x + 168
+ t169 := x + 169
+ t170 := x + 170
+ t171 := x + 171
+ t172 := x + 172
+ t173 := x + 173
+ t174 := x + 174
+ t175 := x + 175
+ t176 := x + 176
+ t177 := x + 177
+ t178 := x + 178
+ t179 := x + 179
+ t180 := x + 180
+ t181 := x + 181
+ t182 := x + 182
+ t183 := x + 183
+ t184 := x + 184
+ t185 := x + 185
+ t186 := x + 186
+ t187 := x + 187
+ t188 := x + 188
+ t189 := x + 189
+ t190 := x + 190
+ t191 := x + 191
+ t192 := x + 192
+ t193 := x + 193
+ t194 := x + 194
+ t195 := x + 195
+ t196 := x + 196
+ t197 := x + 197
+ t198 := x + 198
+ t199 := x + 199
+ t200 := x + 200
+ t201 := x + 201
+ t202 := x + 202
+ t203 := x + 203
+ t204 := x + 204
+ t205 := x + 205
+ t206 := x + 206
+ t207 := x + 207
+ t208 := x + 208
+ t209 := x + 209
+ t210 := x + 210
+ t211 := x + 211
+ t212 := x + 212
+ t213 := x + 213
+ t214 := x + 214
+ t215 := x + 215
+ t216 := x + 216
+ t217 := x + 217
+ t218 := x + 218
+ t219 := x + 219
+ t220 := x + 220
+ t221 := x + 221
+ t222 := x + 222
+ t223 := x + 223
+ t224 := x + 224
+ t225 := x + 225
+ t226 := x + 226
+ t227 := x + 227
+ t228 := x + 228
+ t229 := x + 229
+ t230 := x + 230
+ t231 := x + 231
+ t232 := x + 232
+ t233 := x + 233
+ t234 := x + 234
+ t235 := x + 235
+ t236 := x + 236
+ t237 := x + 237
+ t238 := x + 238
+ t239 := x + 239
+ t240 := x + 240
+ t241 := x + 241
+ t242 := x + 242
+ t243 := x + 243
+ t244 := x + 244
+ t245 := x + 245
+ t246 := x + 246
+ t247 := x + 247
+ t248 := x + 248
+ t249 := x + 249
+ return t0 + t1 + t2 + t3 + t4 + t5 + t6 + t7 + t8 + t9 + t10 + t11 + t12 + t13 + t14 + t15 + t16 + t17 + t18 + t19 + t20 + t21 + t22 + t23 + t24 + t25 + t26 + t27 + t28 + t29 + t30 + t31 + t32 + t33 + t34 + t35 + t36 + t37 + t38 + t39 + t40 + t41 + t42 + t43 + t44 + t45 + t46 + t47 + t48 + t49 + t50 + t51 + t52 + t53 + t54 + t55 + t56 + t57 + t58 + t59 + t60 + t61 + t62 + t63 + t64 + t65 + t66 + t67 + t68 + t69 + t70 + t71 + t72 + t73 + t74 + t75 + t76 + t77 + t78 + t79 + t80 + t81 + t82 + t83 + t84 + t85 + t86 + t87 + t88 + t89 + t90 + t91 + t92 + t93 + t94 + t95 + t96 + t97 + t98 + t99 + t100 + t101 + t102 + t103 + t104 + t105 + t106 + t107 + t108 + t109 + t110 + t111 + t112 + t113 + t114 + t115 + t116 + t117 + t118 + t119 + t120 + t121 + t122 + t123 + t124 + t125 + t126 + t127 + t128 + t129 + t130 + t131 + t132 + t133 + t134 + t135 + t136 + t137 + t138 + t139 + t140 + t141 + t142 + t143 + t144 + t145 + t146 + t147 + t148 + t149 + t150 + t151 + t152 + t153 + t154 + t155 + t156 + t157 + t158 + t159 + t160 + t161 + t162 + t163 + t164 + t165 + t166 + t167 + t168 + t169 + t170 + t171 + t172 + t173 + t174 + t175 + t176 + t177 + t178 + t179 + t180 + t181 + t182 + t183 + t184 + t185 + t186 + t187 + t188 + t189 + t190 + t191 + t192 + t193 + t194 + t195 + t196 + t197 + t198 + t199 + t200 + t201 + t202 + t203 + t204 + t205 + t206 + t207 + t208 + t209 + t210 + t211 + t212 + t213 + t214 + t215 + t216 + t217 + t218 + t219 + t220 + t221 + t222 + t223 + t224 + t225 + t226 + t227 + t228 + t229 + t230 + t231 + t232 + t233 + t234 + t235 + t236 + t237 + t238 + t239 + t240 + t241 + t242 + t243 + t244 + t245 + t246 + t247 + t248 + t249
+}
+func h3(x: int) -> int {
+ t0 := x + 0
+ t1 := x + 1
+ t2 := x + 2
+ t3 := x + 3
+ t4 := x + 4
+ t5 := x + 5
+ t6 := x + 6
+ t7 := x + 7
+ t8 := x + 8
+ t9 := x + 9
+ t10 := x + 10
+ t11 := x + 11
+ t12 := x + 12
+ t13 := x + 13
+ t14 := x + 14
+ t15 := x + 15
+ t16 := x + 16
+ t17 := x + 17
+ t18 := x + 18
+ t19 := x + 19
+ t20 := x + 20
+ t21 := x + 21
+ t22 := x + 22
+ t23 := x + 23
+ t24 := x + 24
+ t25 := x + 25
+ t26 := x + 26
+ t27 := x + 27
+ t28 := x + 28
+ t29 := x + 29
+ t30 := x + 30
+ t31 := x + 31
+ t32 := x + 32
+ t33 := x + 33
+ t34 := x + 34
+ t35 := x + 35
+ t36 := x + 36
+ t37 := x + 37
+ t38 := x + 38
+ t39 := x + 39
+ t40 := x + 40
+ t41 := x + 41
+ t42 := x + 42
+ t43 := x + 43
+ t44 := x + 44
+ t45 := x + 45
+ t46 := x + 46
+ t47 := x + 47
+ t48 := x + 48
+ t49 := x + 49
+ t50 := x + 50
+ t51 := x + 51
+ t52 := x + 52
+ t53 := x + 53
+ t54 := x + 54
+ t55 := x + 55
+ t56 := x + 56
+ t57 := x + 57
+ t58 := x + 58
+ t59 := x + 59
+ t60 := x + 60
+ t61 := x + 61
+ t62 := x + 62
+ t63 := x + 63
+ t64 := x + 64
+ t65 := x + 65
+ t66 := x + 66
+ t67 := x + 67
+ t68 := x + 68
+ t69 := x + 69
+ t70 := x + 70
+ t71 := x + 71
+ t72 := x + 72
+ t73 := x + 73
+ t74 := x + 74
+ t75 := x + 75
+ t76 := x + 76
+ t77 := x + 77
+ t78 := x + 78
+ t79 := x + 79
+ t80 := x + 80
+ t81 := x + 81
+ t82 := x + 82
+ t83 := x + 83
+ t84 := x + 84
+ t85 := x + 85
+ t86 := x + 86
+ t87 := x + 87
+ t88 := x + 88
+ t89 := x + 89
+ t90 := x + 90
+ t91 := x + 91
+ t92 := x + 92
+ t93 := x + 93
+ t94 := x + 94
+ t95 := x + 95
+ t96 := x + 96
+ t97 := x + 97
+ t98 := x + 98
+ t99 := x + 99
+ t100 := x + 100
+ t101 := x + 101
+ t102 := x + 102
+ t103 := x + 103
+ t104 := x + 104
+ t105 := x + 105
+ t106 := x + 106
+ t107 := x + 107
+ t108 := x + 108
+ t109 := x + 109
+ t110 := x + 110
+ t111 := x + 111
+ t112 := x + 112
+ t113 := x + 113
+ t114 := x + 114
+ t115 := x + 115
+ t116 := x + 116
+ t117 := x + 117
+ t118 := x + 118
+ t119 := x + 119
+ t120 := x + 120
+ t121 := x + 121
+ t122 := x + 122
+ t123 := x + 123
+ t124 := x + 124
+ t125 := x + 125
+ t126 := x + 126
+ t127 := x + 127
+ t128 := x + 128
+ t129 := x + 129
+ t130 := x + 130
+ t131 := x + 131
+ t132 := x + 132
+ t133 := x + 133
+ t134 := x + 134
+ t135 := x + 135
+ t136 := x + 136
+ t137 := x + 137
+ t138 := x + 138
+ t139 := x + 139
+ t140 := x + 140
+ t141 := x + 141
+ t142 := x + 142
+ t143 := x + 143
+ t144 := x + 144
+ t145 := x + 145
+ t146 := x + 146
+ t147 := x + 147
+ t148 := x + 148
+ t149 := x + 149
+ t150 := x + 150
+ t151 := x + 151
+ t152 := x + 152
+ t153 := x + 153
+ t154 := x + 154
+ t155 := x + 155
+ t156 := x + 156
+ t157 := x + 157
+ t158 := x + 158
+ t159 := x + 159
+ t160 := x + 160
+ t161 := x + 161
+ t162 := x + 162
+ t163 := x + 163
+ t164 := x + 164
+ t165 := x + 165
+ t166 := x + 166
+ t167 := x + 167
+ t168 := x + 168
+ t169 := x + 169
+ t170 := x + 170
+ t171 := x + 171
+ t172 := x + 172
+ t173 := x + 173
+ t174 := x + 174
+ t175 := x + 175
+ t176 := x + 176
+ t177 := x + 177
+ t178 := x + 178
+ t179 := x + 179
+ t180 := x + 180
+ t181 := x + 181
+ t182 := x + 182
+ t183 := x + 183
+ t184 := x + 184
+ t185 := x + 185
+ t186 := x + 186
+ t187 := x + 187
+ t188 := x + 188
+ t189 := x + 189
+ t190 := x + 190
+ t191 := x + 191
+ t192 := x + 192
+ t193 := x + 193
+ t194 := x + 194
+ t195 := x + 195
+ t196 := x + 196
+ t197 := x + 197
+ t198 := x + 198
+ t199 := x + 199
+ t200 := x + 200
+ t201 := x + 201
+ t202 := x + 202
+ t203 := x + 203
+ t204 := x + 204
+ t205 := x + 205
+ t206 := x + 206
+ t207 := x + 207
+ t208 := x + 208
+ t209 := x + 209
+ t210 := x + 210
+ t211 := x + 211
+ t212 := x + 212
+ t213 := x + 213
+ t214 := x + 214
+ t215 := x + 215
+ t216 := x + 216
+ t217 := x + 217
+ t218 := x + 218
+ t219 := x + 219
+ t220 := x + 220
+ t221 := x + 221
+ t222 := x + 222
+ t223 := x + 223
+ t224 := x + 224
+ t225 := x + 225
+ t226 := x + 226
+ t227 := x + 227
+ t228 := x + 228
+ t229 := x + 229
+ t230 := x + 230
+ t231 := x + 231
+ t232 := x + 232
+ t233 := x + 233
+ t234 := x + 234
+ t235 := x + 235
+ t236 := x + 236
+ t237 := x + 237
+ t238 := x + 238
+ t239 := x + 239
+ t240 := x + 240
+ t241 := x + 241
+ t242 := x + 242
+ t243 := x + 243
+ t244 := x + 244
+ t245 := x + 245
+ t246 := x + 246
+ t247 := x + 247
+ t248 := x + 248
+ t249 := x + 249
+ return t0 + t1 + t2 + t3 + t4 + t5 + t6 + t7 + t8 + t9 + t10 + t11 + t12 + t13 + t14 + t15 + t16 + t17 + t18 + t19 + t20 + t21 + t22 + t23 + t24 + t25 + t26 + t27 + t28 + t29 + t30 + t31 + t32 + t33 + t34 + t35 + t36 + t37 + t38 + t39 + t40 + t41 + t42 + t43 + t44 + t45 + t46 + t47 + t48 + t49 + t50 + t51 + t52 + t53 + t54 + t55 + t56 + t57 + t58 + t59 + t60 + t61 + t62 + t63 + t64 + t65 + t66 + t67 + t68 + t69 + t70 + t71 + t72 + t73 + t74 + t75 + t76 + t77 + t78 + t79 + t80 + t81 + t82 + t83 + t84 + t85 + t86 + t87 + t88 + t89 + t90 + t91 + t92 + t93 + t94 + t95 + t96 + t97 + t98 + t99 + t100 + t101 + t102 + t103 + t104 + t105 + t106 + t107 + t108 + t109 + t110 + t111 + t112 + t113 + t114 + t115 + t116 + t117 + t118 + t119 + t120 + t121 + t122 + t123 + t124 + t125 + t126 + t127 + t128 + t129 + t130 + t131 + t132 + t133 + t134 + t135 + t136 + t137 + t138 + t139 + t140 + t141 + t142 + t143 + t144 + t145 + t146 + t147 + t148 + t149 + t150 + t151 + t152 + t153 + t154 + t155 + t156 + t157 + t158 + t159 + t160 + t161 + t162 + t163 + t164 + t165 + t166 + t167 + t168 + t169 + t170 + t171 + t172 + t173 + t174 + t175 + t176 + t177 + t178 + t179 + t180 + t181 + t182 + t183 + t184 + t185 + t186 + t187 + t188 + t189 + t190 + t191 + t192 + t193 + t194 + t195 + t196 + t197 + t198 + t199 + t200 + t201 + t202 + t203 + t204 + t205 + t206 + t207 + t208 + t209 + t210 + t211 + t212 + t213 + t214 + t215 + t216 + t217 + t218 + t219 + t220 + t221 + t222 + t223 + t224 + t225 + t226 + t227 + t228 + t229 + t230 + t231 + t232 + t233 + t234 + t235 + t236 + t237 + t238 + t239 + t240 + t241 + t242 + t243 + t244 + t245 + t246 + t247 + t248 + t249
+}
+func h4(x: int) -> int {
+ t0 := x + 0
+ t1 := x + 1
+ t2 := x + 2
+ t3 := x + 3
+ t4 := x + 4
+ t5 := x + 5
+ t6 := x + 6
+ t7 := x + 7
+ t8 := x + 8
+ t9 := x + 9
+ t10 := x + 10
+ t11 := x + 11
+ t12 := x + 12
+ t13 := x + 13
+ t14 := x + 14
+ t15 := x + 15
+ t16 := x + 16
+ t17 := x + 17
+ t18 := x + 18
+ t19 := x + 19
+ t20 := x + 20
+ t21 := x + 21
+ t22 := x + 22
+ t23 := x + 23
+ t24 := x + 24
+ t25 := x + 25
+ t26 := x + 26
+ t27 := x + 27
+ t28 := x + 28
+ t29 := x + 29
+ t30 := x + 30
+ t31 := x + 31
+ t32 := x + 32
+ t33 := x + 33
+ t34 := x + 34
+ t35 := x + 35
+ t36 := x + 36
+ t37 := x + 37
+ t38 := x + 38
+ t39 := x + 39
+ t40 := x + 40
+ t41 := x + 41
+ t42 := x + 42
+ t43 := x + 43
+ t44 := x + 44
+ t45 := x + 45
+ t46 := x + 46
+ t47 := x + 47
+ t48 := x + 48
+ t49 := x + 49
+ t50 := x + 50
+ t51 := x + 51
+ t52 := x + 52
+ t53 := x + 53
+ t54 := x + 54
+ t55 := x + 55
+ t56 := x + 56
+ t57 := x + 57
+ t58 := x + 58
+ t59 := x + 59
+ t60 := x + 60
+ t61 := x + 61
+ t62 := x + 62
+ t63 := x + 63
+ t64 := x + 64
+ t65 := x + 65
+ t66 := x + 66
+ t67 := x + 67
+ t68 := x + 68
+ t69 := x + 69
+ t70 := x + 70
+ t71 := x + 71
+ t72 := x + 72
+ t73 := x + 73
+ t74 := x + 74
+ t75 := x + 75
+ t76 := x + 76
+ t77 := x + 77
+ t78 := x + 78
+ t79 := x + 79
+ t80 := x + 80
+ t81 := x + 81
+ t82 := x + 82
+ t83 := x + 83
+ t84 := x + 84
+ t85 := x + 85
+ t86 := x + 86
+ t87 := x + 87
+ t88 := x + 88
+ t89 := x + 89
+ t90 := x + 90
+ t91 := x + 91
+ t92 := x + 92
+ t93 := x + 93
+ t94 := x + 94
+ t95 := x + 95
+ t96 := x + 96
+ t97 := x + 97
+ t98 := x + 98
+ t99 := x + 99
+ t100 := x + 100
+ t101 := x + 101
+ t102 := x + 102
+ t103 := x + 103
+ t104 := x + 104
+ t105 := x + 105
+ t106 := x + 106
+ t107 := x + 107
+ t108 := x + 108
+ t109 := x + 109
+ t110 := x + 110
+ t111 := x + 111
+ t112 := x + 112
+ t113 := x + 113
+ t114 := x + 114
+ t115 := x + 115
+ t116 := x + 116
+ t117 := x + 117
+ t118 := x + 118
+ t119 := x + 119
+ t120 := x + 120
+ t121 := x + 121
+ t122 := x + 122
+ t123 := x + 123
+ t124 := x + 124
+ t125 := x + 125
+ t126 := x + 126
+ t127 := x + 127
+ t128 := x + 128
+ t129 := x + 129
+ t130 := x + 130
+ t131 := x + 131
+ t132 := x + 132
+ t133 := x + 133
+ t134 := x + 134
+ t135 := x + 135
+ t136 := x + 136
+ t137 := x + 137
+ t138 := x + 138
+ t139 := x + 139
+ t140 := x + 140
+ t141 := x + 141
+ t142 := x + 142
+ t143 := x + 143
+ t144 := x + 144
+ t145 := x + 145
+ t146 := x + 146
+ t147 := x + 147
+ t148 := x + 148
+ t149 := x + 149
+ t150 := x + 150
+ t151 := x + 151
+ t152 := x + 152
+ t153 := x + 153
+ t154 := x + 154
+ t155 := x + 155
+ t156 := x + 156
+ t157 := x + 157
+ t158 := x + 158
+ t159 := x + 159
+ t160 := x + 160
+ t161 := x + 161
+ t162 := x + 162
+ t163 := x + 163
+ t164 := x + 164
+ t165 := x + 165
+ t166 := x + 166
+ t167 := x + 167
+ t168 := x + 168
+ t169 := x + 169
+ t170 := x + 170
+ t171 := x + 171
+ t172 := x + 172
+ t173 := x + 173
+ t174 := x + 174
+ t175 := x + 175
+ t176 := x + 176
+ t177 := x + 177
+ t178 := x + 178
+ t179 := x + 179
+ t180 := x + 180
+ t181 := x + 181
+ t182 := x + 182
+ t183 := x + 183
+ t184 := x + 184
+ t185 := x + 185
+ t186 := x + 186
+ t187 := x + 187
+ t188 := x + 188
+ t189 := x + 189
+ t190 := x + 190
+ t191 := x + 191
+ t192 := x + 192
+ t193 := x + 193
+ t194 := x + 194
+ t195 := x + 195
+ t196 := x + 196
+ t197 := x + 197
+ t198 := x + 198
+ t199 := x + 199
+ t200 := x + 200
+ t201 := x + 201
+ t202 := x + 202
+ t203 := x + 203
+ t204 := x + 204
+ t205 := x + 205
+ t206 := x + 206
+ t207 := x + 207
+ t208 := x + 208
+ t209 := x + 209
+ t210 := x + 210
+ t211 := x + 211
+ t212 := x + 212
+ t213 := x + 213
+ t214 := x + 214
+ t215 := x + 215
+ t216 := x + 216
+ t217 := x + 217
+ t218 := x + 218
+ t219 := x + 219
+ t220 := x + 220
+ t221 := x + 221
+ t222 := x + 222
+ t223 := x + 223
+ t224 := x + 224
+ t225 := x + 225
+ t226 := x + 226
+ t227 := x + 227
+ t228 := x + 228
+ t229 := x + 229
+ t230 := x + 230
+ t231 := x + 231
+ t232 := x + 232
+ t233 := x + 233
+ t234 := x + 234
+ t235 := x + 235
+ t236 := x + 236
+ t237 := x + 237
+ t238 := x + 238
+ t239 := x + 239
+ t240 := x + 240
+ t241 := x + 241
+ t242 := x + 242
+ t243 := x + 243
+ t244 := x + 244
+ t245 := x + 245
+ t246 := x + 246
+ t247 := x + 247
+ t248 := x + 248
+ t249 := x + 249
+ return t0 + t1 + t2 + t3 + t4 + t5 + t6 + t7 + t8 + t9 + t10 + t11 + t12 + t13 + t14 + t15 + t16 + t17 + t18 + t19 + t20 + t21 + t22 + t23 + t24 + t25 + t26 + t27 + t28 + t29 + t30 + t31 + t32 + t33 + t34 + t35 + t36 + t37 + t38 + t39 + t40 + t41 + t42 + t43 + t44 + t45 + t46 + t47 + t48 + t49 + t50 + t51 + t52 + t53 + t54 + t55 + t56 + t57 + t58 + t59 + t60 + t61 + t62 + t63 + t64 + t65 + t66 + t67 + t68 + t69 + t70 + t71 + t72 + t73 + t74 + t75 + t76 + t77 + t78 + t79 + t80 + t81 + t82 + t83 + t84 + t85 + t86 + t87 + t88 + t89 + t90 + t91 + t92 + t93 + t94 + t95 + t96 + t97 + t98 + t99 + t100 + t101 + t102 + t103 + t104 + t105 + t106 + t107 + t108 + t109 + t110 + t111 + t112 + t113 + t114 + t115 + t116 + t117 + t118 + t119 + t120 + t121 + t122 + t123 + t124 + t125 + t126 + t127 + t128 + t129 + t130 + t131 + t132 + t133 + t134 + t135 + t136 + t137 + t138 + t139 + t140 + t141 + t142 + t143 + t144 + t145 + t146 + t147 + t148 + t149 + t150 + t151 + t152 + t153 + t154 + t155 + t156 + t157 + t158 + t159 + t160 + t161 + t162 + t163 + t164 + t165 + t166 + t167 + t168 + t169 + t170 + t171 + t172 + t173 + t174 + t175 + t176 + t177 + t178 + t179 + t180 + t181 + t182 + t183 + t184 + t185 + t186 + t187 + t188 + t189 + t190 + t191 + t192 + t193 + t194 + t195 + t196 + t197 + t198 + t199 + t200 + t201 + t202 + t203 + t204 + t205 + t206 + t207 + t208 + t209 + t210 + t211 + t212 + t213 + t214 + t215 + t216 + t217 + t218 + t219 + t220 + t221 + t222 + t223 + t224 + t225 + t226 + t227 + t228 + t229 + t230 + t231 + t232 + t233 + t234 + t235 + t236 + t237 + t238 + t239 + t240 + t241 + t242 + t243 + t244 + t245 + t246 + t247 + t248 + t249
+}
+func h5(x: int) -> int {
+ t0 := x + 0
+ t1 := x + 1
+ t2 := x + 2
+ t3 := x + 3
+ t4 := x + 4
+ t5 := x + 5
+ t6 := x + 6
+ t7 := x + 7
+ t8 := x + 8
+ t9 := x + 9
+ t10 := x + 10
+ t11 := x + 11
+ t12 := x + 12
+ t13 := x + 13
+ t14 := x + 14
+ t15 := x + 15
+ t16 := x + 16
+ t17 := x + 17
+ t18 := x + 18
+ t19 := x + 19
+ t20 := x + 20
+ t21 := x + 21
+ t22 := x + 22
+ t23 := x + 23
+ t24 := x + 24
+ t25 := x + 25
+ t26 := x + 26
+ t27 := x + 27
+ t28 := x + 28
+ t29 := x + 29
+ t30 := x + 30
+ t31 := x + 31
+ t32 := x + 32
+ t33 := x + 33
+ t34 := x + 34
+ t35 := x + 35
+ t36 := x + 36
+ t37 := x + 37
+ t38 := x + 38
+ t39 := x + 39
+ t40 := x + 40
+ t41 := x + 41
+ t42 := x + 42
+ t43 := x + 43
+ t44 := x + 44
+ t45 := x + 45
+ t46 := x + 46
+ t47 := x + 47
+ t48 := x + 48
+ t49 := x + 49
+ t50 := x + 50
+ t51 := x + 51
+ t52 := x + 52
+ t53 := x + 53
+ t54 := x + 54
+ t55 := x + 55
+ t56 := x + 56
+ t57 := x + 57
+ t58 := x + 58
+ t59 := x + 59
+ t60 := x + 60
+ t61 := x + 61
+ t62 := x + 62
+ t63 := x + 63
+ t64 := x + 64
+ t65 := x + 65
+ t66 := x + 66
+ t67 := x + 67
+ t68 := x + 68
+ t69 := x + 69
+ t70 := x + 70
+ t71 := x + 71
+ t72 := x + 72
+ t73 := x + 73
+ t74 := x + 74
+ t75 := x + 75
+ t76 := x + 76
+ t77 := x + 77
+ t78 := x + 78
+ t79 := x + 79
+ t80 := x + 80
+ t81 := x + 81
+ t82 := x + 82
+ t83 := x + 83
+ t84 := x + 84
+ t85 := x + 85
+ t86 := x + 86
+ t87 := x + 87
+ t88 := x + 88
+ t89 := x + 89
+ t90 := x + 90
+ t91 := x + 91
+ t92 := x + 92
+ t93 := x + 93
+ t94 := x + 94
+ t95 := x + 95
+ t96 := x + 96
+ t97 := x + 97
+ t98 := x + 98
+ t99 := x + 99
+ t100 := x + 100
+ t101 := x + 101
+ t102 := x + 102
+ t103 := x + 103
+ t104 := x + 104
+ t105 := x + 105
+ t106 := x + 106
+ t107 := x + 107
+ t108 := x + 108
+ t109 := x + 109
+ t110 := x + 110
+ t111 := x + 111
+ t112 := x + 112
+ t113 := x + 113
+ t114 := x + 114
+ t115 := x + 115
+ t116 := x + 116
+ t117 := x + 117
+ t118 := x + 118
+ t119 := x + 119
+ t120 := x + 120
+ t121 := x + 121
+ t122 := x + 122
+ t123 := x + 123
+ t124 := x + 124
+ t125 := x + 125
+ t126 := x + 126
+ t127 := x + 127
+ t128 := x + 128
+ t129 := x + 129
+ t130 := x + 130
+ t131 := x + 131
+ t132 := x + 132
+ t133 := x + 133
+ t134 := x + 134
+ t135 := x + 135
+ t136 := x + 136
+ t137 := x + 137
+ t138 := x + 138
+ t139 := x + 139
+ t140 := x + 140
+ t141 := x + 141
+ t142 := x + 142
+ t143 := x + 143
+ t144 := x + 144
+ t145 := x + 145
+ t146 := x + 146
+ t147 := x + 147
+ t148 := x + 148
+ t149 := x + 149
+ t150 := x + 150
+ t151 := x + 151
+ t152 := x + 152
+ t153 := x + 153
+ t154 := x + 154
+ t155 := x + 155
+ t156 := x + 156
+ t157 := x + 157
+ t158 := x + 158
+ t159 := x + 159
+ t160 := x + 160
+ t161 := x + 161
+ t162 := x + 162
+ t163 := x + 163
+ t164 := x + 164
+ t165 := x + 165
+ t166 := x + 166
+ t167 := x + 167
+ t168 := x + 168
+ t169 := x + 169
+ t170 := x + 170
+ t171 := x + 171
+ t172 := x + 172
+ t173 := x + 173
+ t174 := x + 174
+ t175 := x + 175
+ t176 := x + 176
+ t177 := x + 177
+ t178 := x + 178
+ t179 := x + 179
+ t180 := x + 180
+ t181 := x + 181
+ t182 := x + 182
+ t183 := x + 183
+ t184 := x + 184
+ t185 := x + 185
+ t186 := x + 186
+ t187 := x + 187
+ t188 := x + 188
+ t189 := x + 189
+ t190 := x + 190
+ t191 := x + 191
+ t192 := x + 192
+ t193 := x + 193
+ t194 := x + 194
+ t195 := x + 195
+ t196 := x + 196
+ t197 := x + 197
+ t198 := x + 198
+ t199 := x + 199
+ t200 := x + 200
+ t201 := x + 201
+ t202 := x + 202
+ t203 := x + 203
+ t204 := x + 204
+ t205 := x + 205
+ t206 := x + 206
+ t207 := x + 207
+ t208 := x + 208
+ t209 := x + 209
+ t210 := x + 210
+ t211 := x + 211
+ t212 := x + 212
+ t213 := x + 213
+ t214 := x + 214
+ t215 := x + 215
+ t216 := x + 216
+ t217 := x + 217
+ t218 := x + 218
+ t219 := x + 219
+ t220 := x + 220
+ t221 := x + 221
+ t222 := x + 222
+ t223 := x + 223
+ t224 := x + 224
+ t225 := x + 225
+ t226 := x + 226
+ t227 := x + 227
+ t228 := x + 228
+ t229 := x + 229
+ t230 := x + 230
+ t231 := x + 231
+ t232 := x + 232
+ t233 := x + 233
+ t234 := x + 234
+ t235 := x + 235
+ t236 := x + 236
+ t237 := x + 237
+ t238 := x + 238
+ t239 := x + 239
+ t240 := x + 240
+ t241 := x + 241
+ t242 := x + 242
+ t243 := x + 243
+ t244 := x + 244
+ t245 := x + 245
+ t246 := x + 246
+ t247 := x + 247
+ t248 := x + 248
+ t249 := x + 249
+ return t0 + t1 + t2 + t3 + t4 + t5 + t6 + t7 + t8 + t9 + t10 + t11 + t12 + t13 + t14 + t15 + t16 + t17 + t18 + t19 + t20 + t21 + t22 + t23 + t24 + t25 + t26 + t27 + t28 + t29 + t30 + t31 + t32 + t33 + t34 + t35 + t36 + t37 + t38 + t39 + t40 + t41 + t42 + t43 + t44 + t45 + t46 + t47 + t48 + t49 + t50 + t51 + t52 + t53 + t54 + t55 + t56 + t57 + t58 + t59 + t60 + t61 + t62 + t63 + t64 + t65 + t66 + t67 + t68 + t69 + t70 + t71 + t72 + t73 + t74 + t75 + t76 + t77 + t78 + t79 + t80 + t81 + t82 + t83 + t84 + t85 + t86 + t87 + t88 + t89 + t90 + t91 + t92 + t93 + t94 + t95 + t96 + t97 + t98 + t99 + t100 + t101 + t102 + t103 + t104 + t105 + t106 + t107 + t108 + t109 + t110 + t111 + t112 + t113 + t114 + t115 + t116 + t117 + t118 + t119 + t120 + t121 + t122 + t123 + t124 + t125 + t126 + t127 + t128 + t129 + t130 + t131 + t132 + t133 + t134 + t135 + t136 + t137 + t138 + t139 + t140 + t141 + t142 + t143 + t144 + t145 + t146 + t147 + t148 + t149 + t150 + t151 + t152 + t153 + t154 + t155 + t156 + t157 + t158 + t159 + t160 + t161 + t162 + t163 + t164 + t165 + t166 + t167 + t168 + t169 + t170 + t171 + t172 + t173 + t174 + t175 + t176 + t177 + t178 + t179 + t180 + t181 + t182 + t183 + t184 + t185 + t186 + t187 + t188 + t189 + t190 + t191 + t192 + t193 + t194 + t195 + t196 + t197 + t198 + t199 + t200 + t201 + t202 + t203 + t204 + t205 + t206 + t207 + t208 + t209 + t210 + t211 + t212 + t213 + t214 + t215 + t216 + t217 + t218 + t219 + t220 + t221 + t222 + t223 + t224 + t225 + t226 + t227 + t228 + t229 + t230 + t231 + t232 + t233 + t234 + t235 + t236 + t237 + t238 + t239 + t240 + t241 + t242 + t243 + t244 + t245 + t246 + t247 + t248 + t249
+}
+func h6(x: int) -> int {
+ t0 := x + 0
+ t1 := x + 1
+ t2 := x + 2
+ t3 := x + 3
+ t4 := x + 4
+ t5 := x + 5
+ t6 := x + 6
+ t7 := x + 7
+ t8 := x + 8
+ t9 := x + 9
+ t10 := x + 10
+ t11 := x + 11
+ t12 := x + 12
+ t13 := x + 13
+ t14 := x + 14
+ t15 := x + 15
+ t16 := x + 16
+ t17 := x + 17
+ t18 := x + 18
+ t19 := x + 19
+ t20 := x + 20
+ t21 := x + 21
+ t22 := x + 22
+ t23 := x + 23
+ t24 := x + 24
+ t25 := x + 25
+ t26 := x + 26
+ t27 := x + 27
+ t28 := x + 28
+ t29 := x + 29
+ t30 := x + 30
+ t31 := x + 31
+ t32 := x + 32
+ t33 := x + 33
+ t34 := x + 34
+ t35 := x + 35
+ t36 := x + 36
+ t37 := x + 37
+ t38 := x + 38
+ t39 := x + 39
+ t40 := x + 40
+ t41 := x + 41
+ t42 := x + 42
+ t43 := x + 43
+ t44 := x + 44
+ t45 := x + 45
+ t46 := x + 46
+ t47 := x + 47
+ t48 := x + 48
+ t49 := x + 49
+ t50 := x + 50
+ t51 := x + 51
+ t52 := x + 52
+ t53 := x + 53
+ t54 := x + 54
+ t55 := x + 55
+ t56 := x + 56
+ t57 := x + 57
+ t58 := x + 58
+ t59 := x + 59
+ t60 := x + 60
+ t61 := x + 61
+ t62 := x + 62
+ t63 := x + 63
+ t64 := x + 64
+ t65 := x + 65
+ t66 := x + 66
+ t67 := x + 67
+ t68 := x + 68
+ t69 := x + 69
+ t70 := x + 70
+ t71 := x + 71
+ t72 := x + 72
+ t73 := x + 73
+ t74 := x + 74
+ t75 := x + 75
+ t76 := x + 76
+ t77 := x + 77
+ t78 := x + 78
+ t79 := x + 79
+ t80 := x + 80
+ t81 := x + 81
+ t82 := x + 82
+ t83 := x + 83
+ t84 := x + 84
+ t85 := x + 85
+ t86 := x + 86
+ t87 := x + 87
+ t88 := x + 88
+ t89 := x + 89
+ t90 := x + 90
+ t91 := x + 91
+ t92 := x + 92
+ t93 := x + 93
+ t94 := x + 94
+ t95 := x + 95
+ t96 := x + 96
+ t97 := x + 97
+ t98 := x + 98
+ t99 := x + 99
+ t100 := x + 100
+ t101 := x + 101
+ t102 := x + 102
+ t103 := x + 103
+ t104 := x + 104
+ t105 := x + 105
+ t106 := x + 106
+ t107 := x + 107
+ t108 := x + 108
+ t109 := x + 109
+ t110 := x + 110
+ t111 := x + 111
+ t112 := x + 112
+ t113 := x + 113
+ t114 := x + 114
+ t115 := x + 115
+ t116 := x + 116
+ t117 := x + 117
+ t118 := x + 118
+ t119 := x + 119
+ t120 := x + 120
+ t121 := x + 121
+ t122 := x + 122
+ t123 := x + 123
+ t124 := x + 124
+ t125 := x + 125
+ t126 := x + 126
+ t127 := x + 127
+ t128 := x + 128
+ t129 := x + 129
+ t130 := x + 130
+ t131 := x + 131
+ t132 := x + 132
+ t133 := x + 133
+ t134 := x + 134
+ t135 := x + 135
+ t136 := x + 136
+ t137 := x + 137
+ t138 := x + 138
+ t139 := x + 139
+ t140 := x + 140
+ t141 := x + 141
+ t142 := x + 142
+ t143 := x + 143
+ t144 := x + 144
+ t145 := x + 145
+ t146 := x + 146
+ t147 := x + 147
+ t148 := x + 148
+ t149 := x + 149
+ t150 := x + 150
+ t151 := x + 151
+ t152 := x + 152
+ t153 := x + 153
+ t154 := x + 154
+ t155 := x + 155
+ t156 := x + 156
+ t157 := x + 157
+ t158 := x + 158
+ t159 := x + 159
+ t160 := x + 160
+ t161 := x + 161
+ t162 := x + 162
+ t163 := x + 163
+ t164 := x + 164
+ t165 := x + 165
+ t166 := x + 166
+ t167 := x + 167
+ t168 := x + 168
+ t169 := x + 169
+ t170 := x + 170
+ t171 := x + 171
+ t172 := x + 172
+ t173 := x + 173
+ t174 := x + 174
+ t175 := x + 175
+ t176 := x + 176
+ t177 := x + 177
+ t178 := x + 178
+ t179 := x + 179
+ t180 := x + 180
+ t181 := x + 181
+ t182 := x + 182
+ t183 := x + 183
+ t184 := x + 184
+ t185 := x + 185
+ t186 := x + 186
+ t187 := x + 187
+ t188 := x + 188
+ t189 := x + 189
+ t190 := x + 190
+ t191 := x + 191
+ t192 := x + 192
+ t193 := x + 193
+ t194 := x + 194
+ t195 := x + 195
+ t196 := x + 196
+ t197 := x + 197
+ t198 := x + 198
+ t199 := x + 199
+ t200 := x + 200
+ t201 := x + 201
+ t202 := x + 202
+ t203 := x + 203
+ t204 := x + 204
+ t205 := x + 205
+ t206 := x + 206
+ t207 := x + 207
+ t208 := x + 208
+ t209 := x + 209
+ t210 := x + 210
+ t211 := x + 211
+ t212 := x + 212
+ t213 := x + 213
+ t214 := x + 214
+ t215 := x + 215
+ t216 := x + 216
+ t217 := x + 217
+ t218 := x + 218
+ t219 := x + 219
+ t220 := x + 220
+ t221 := x + 221
+ t222 := x + 222
+ t223 := x + 223
+ t224 := x + 224
+ t225 := x + 225
+ t226 := x + 226
+ t227 := x + 227
+ t228 := x + 228
+ t229 := x + 229
+ t230 := x + 230
+ t231 := x + 231
+ t232 := x + 232
+ t233 := x + 233
+ t234 := x + 234
+ t235 := x + 235
+ t236 := x + 236
+ t237 := x + 237
+ t238 := x + 238
+ t239 := x + 239
+ t240 := x + 240
+ t241 := x + 241
+ t242 := x + 242
+ t243 := x + 243
+ t244 := x + 244
+ t245 := x + 245
+ t246 := x + 246
+ t247 := x + 247
+ t248 := x + 248
+ t249 := x + 249
+ return t0 + t1 + t2 + t3 + t4 + t5 + t6 + t7 + t8 + t9 + t10 + t11 + t12 + t13 + t14 + t15 + t16 + t17 + t18 + t19 + t20 + t21 + t22 + t23 + t24 + t25 + t26 + t27 + t28 + t29 + t30 + t31 + t32 + t33 + t34 + t35 + t36 + t37 + t38 + t39 + t40 + t41 + t42 + t43 + t44 + t45 + t46 + t47 + t48 + t49 + t50 + t51 + t52 + t53 + t54 + t55 + t56 + t57 + t58 + t59 + t60 + t61 + t62 + t63 + t64 + t65 + t66 + t67 + t68 + t69 + t70 + t71 + t72 + t73 + t74 + t75 + t76 + t77 + t78 + t79 + t80 + t81 + t82 + t83 + t84 + t85 + t86 + t87 + t88 + t89 + t90 + t91 + t92 + t93 + t94 + t95 + t96 + t97 + t98 + t99 + t100 + t101 + t102 + t103 + t104 + t105 + t106 + t107 + t108 + t109 + t110 + t111 + t112 + t113 + t114 + t115 + t116 + t117 + t118 + t119 + t120 + t121 + t122 + t123 + t124 + t125 + t126 + t127 + t128 + t129 + t130 + t131 + t132 + t133 + t134 + t135 + t136 + t137 + t138 + t139 + t140 + t141 + t142 + t143 + t144 + t145 + t146 + t147 + t148 + t149 + t150 + t151 + t152 + t153 + t154 + t155 + t156 + t157 + t158 + t159 + t160 + t161 + t162 + t163 + t164 + t165 + t166 + t167 + t168 + t169 + t170 + t171 + t172 + t173 + t174 + t175 + t176 + t177 + t178 + t179 + t180 + t181 + t182 + t183 + t184 + t185 + t186 + t187 + t188 + t189 + t190 + t191 + t192 + t193 + t194 + t195 + t196 + t197 + t198 + t199 + t200 + t201 + t202 + t203 + t204 + t205 + t206 + t207 + t208 + t209 + t210 + t211 + t212 + t213 + t214 + t215 + t216 + t217 + t218 + t219 + t220 + t221 + t222 + t223 + t224 + t225 + t226 + t227 + t228 + t229 + t230 + t231 + t232 + t233 + t234 + t235 + t236 + t237 + t238 + t239 + t240 + t241 + t242 + t243 + t244 + t245 + t246 + t247 + t248 + t249
+}
+func h7(x: int) -> int {
+ t0 := x + 0
+ t1 := x + 1
+ t2 := x + 2
+ t3 := x + 3
+ t4 := x + 4
+ t5 := x + 5
+ t6 := x + 6
+ t7 := x + 7
+ t8 := x + 8
+ t9 := x + 9
+ t10 := x + 10
+ t11 := x + 11
+ t12 := x + 12
+ t13 := x + 13
+ t14 := x + 14
+ t15 := x + 15
+ t16 := x + 16
+ t17 := x + 17
+ t18 := x + 18
+ t19 := x + 19
+ t20 := x + 20
+ t21 := x + 21
+ t22 := x + 22
+ t23 := x + 23
+ t24 := x + 24
+ t25 := x + 25
+ t26 := x + 26
+ t27 := x + 27
+ t28 := x + 28
+ t29 := x + 29
+ t30 := x + 30
+ t31 := x + 31
+ t32 := x + 32
+ t33 := x + 33
+ t34 := x + 34
+ t35 := x + 35
+ t36 := x + 36
+ t37 := x + 37
+ t38 := x + 38
+ t39 := x + 39
+ t40 := x + 40
+ t41 := x + 41
+ t42 := x + 42
+ t43 := x + 43
+ t44 := x + 44
+ t45 := x + 45
+ t46 := x + 46
+ t47 := x + 47
+ t48 := x + 48
+ t49 := x + 49
+ t50 := x + 50
+ t51 := x + 51
+ t52 := x + 52
+ t53 := x + 53
+ t54 := x + 54
+ t55 := x + 55
+ t56 := x + 56
+ t57 := x + 57
+ t58 := x + 58
+ t59 := x + 59
+ t60 := x + 60
+ t61 := x + 61
+ t62 := x + 62
+ t63 := x + 63
+ t64 := x + 64
+ t65 := x + 65
+ t66 := x + 66
+ t67 := x + 67
+ t68 := x + 68
+ t69 := x + 69
+ t70 := x + 70
+ t71 := x + 71
+ t72 := x + 72
+ t73 := x + 73
+ t74 := x + 74
+ t75 := x + 75
+ t76 := x + 76
+ t77 := x + 77
+ t78 := x + 78
+ t79 := x + 79
+ t80 := x + 80
+ t81 := x + 81
+ t82 := x + 82
+ t83 := x + 83
+ t84 := x + 84
+ t85 := x + 85
+ t86 := x + 86
+ t87 := x + 87
+ t88 := x + 88
+ t89 := x + 89
+ t90 := x + 90
+ t91 := x + 91
+ t92 := x + 92
+ t93 := x + 93
+ t94 := x + 94
+ t95 := x + 95
+ t96 := x + 96
+ t97 := x + 97
+ t98 := x + 98
+ t99 := x + 99
+ t100 := x + 100
+ t101 := x + 101
+ t102 := x + 102
+ t103 := x + 103
+ t104 := x + 104
+ t105 := x + 105
+ t106 := x + 106
+ t107 := x + 107
+ t108 := x + 108
+ t109 := x + 109
+ t110 := x + 110
+ t111 := x + 111
+ t112 := x + 112
+ t113 := x + 113
+ t114 := x + 114
+ t115 := x + 115
+ t116 := x + 116
+ t117 := x + 117
+ t118 := x + 118
+ t119 := x + 119
+ t120 := x + 120
+ t121 := x + 121
+ t122 := x + 122
+ t123 := x + 123
+ t124 := x + 124
+ t125 := x + 125
+ t126 := x + 126
+ t127 := x + 127
+ t128 := x + 128
+ t129 := x + 129
+ t130 := x + 130
+ t131 := x + 131
+ t132 := x + 132
+ t133 := x + 133
+ t134 := x + 134
+ t135 := x + 135
+ t136 := x + 136
+ t137 := x + 137
+ t138 := x + 138
+ t139 := x + 139
+ t140 := x + 140
+ t141 := x + 141
+ t142 := x + 142
+ t143 := x + 143
+ t144 := x + 144
+ t145 := x + 145
+ t146 := x + 146
+ t147 := x + 147
+ t148 := x + 148
+ t149 := x + 149
+ t150 := x + 150
+ t151 := x + 151
+ t152 := x + 152
+ t153 := x + 153
+ t154 := x + 154
+ t155 := x + 155
+ t156 := x + 156
+ t157 := x + 157
+ t158 := x + 158
+ t159 := x + 159
+ t160 := x + 160
+ t161 := x + 161
+ t162 := x + 162
+ t163 := x + 163
+ t164 := x + 164
+ t165 := x + 165
+ t166 := x + 166
+ t167 := x + 167
+ t168 := x + 168
+ t169 := x + 169
+ t170 := x + 170
+ t171 := x + 171
+ t172 := x + 172
+ t173 := x + 173
+ t174 := x + 174
+ t175 := x + 175
+ t176 := x + 176
+ t177 := x + 177
+ t178 := x + 178
+ t179 := x + 179
+ t180 := x + 180
+ t181 := x + 181
+ t182 := x + 182
+ t183 := x + 183
+ t184 := x + 184
+ t185 := x + 185
+ t186 := x + 186
+ t187 := x + 187
+ t188 := x + 188
+ t189 := x + 189
+ t190 := x + 190
+ t191 := x + 191
+ t192 := x + 192
+ t193 := x + 193
+ t194 := x + 194
+ t195 := x + 195
+ t196 := x + 196
+ t197 := x + 197
+ t198 := x + 198
+ t199 := x + 199
+ t200 := x + 200
+ t201 := x + 201
+ t202 := x + 202
+ t203 := x + 203
+ t204 := x + 204
+ t205 := x + 205
+ t206 := x + 206
+ t207 := x + 207
+ t208 := x + 208
+ t209 := x + 209
+ t210 := x + 210
+ t211 := x + 211
+ t212 := x + 212
+ t213 := x + 213
+ t214 := x + 214
+ t215 := x + 215
+ t216 := x + 216
+ t217 := x + 217
+ t218 := x + 218
+ t219 := x + 219
+ t220 := x + 220
+ t221 := x + 221
+ t222 := x + 222
+ t223 := x + 223
+ t224 := x + 224
+ t225 := x + 225
+ t226 := x + 226
+ t227 := x + 227
+ t228 := x + 228
+ t229 := x + 229
+ t230 := x + 230
+ t231 := x + 231
+ t232 := x + 232
+ t233 := x + 233
+ t234 := x + 234
+ t235 := x + 235
+ t236 := x + 236
+ t237 := x + 237
+ t238 := x + 238
+ t239 := x + 239
+ t240 := x + 240
+ t241 := x + 241
+ t242 := x + 242
+ t243 := x + 243
+ t244 := x + 244
+ t245 := x + 245
+ t246 := x + 246
+ t247 := x + 247
+ t248 := x + 248
+ t249 := x + 249
+ return t0 + t1 + t2 + t3 + t4 + t5 + t6 + t7 + t8 + t9 + t10 + t11 + t12 + t13 + t14 + t15 + t16 + t17 + t18 + t19 + t20 + t21 + t22 + t23 + t24 + t25 + t26 + t27 + t28 + t29 + t30 + t31 + t32 + t33 + t34 + t35 + t36 + t37 + t38 + t39 + t40 + t41 + t42 + t43 + t44 + t45 + t46 + t47 + t48 + t49 + t50 + t51 + t52 + t53 + t54 + t55 + t56 + t57 + t58 + t59 + t60 + t61 + t62 + t63 + t64 + t65 + t66 + t67 + t68 + t69 + t70 + t71 + t72 + t73 + t74 + t75 + t76 + t77 + t78 + t79 + t80 + t81 + t82 + t83 + t84 + t85 + t86 + t87 + t88 + t89 + t90 + t91 + t92 + t93 + t94 + t95 + t96 + t97 + t98 + t99 + t100 + t101 + t102 + t103 + t104 + t105 + t106 + t107 + t108 + t109 + t110 + t111 + t112 + t113 + t114 + t115 + t116 + t117 + t118 + t119 + t120 + t121 + t122 + t123 + t124 + t125 + t126 + t127 + t128 + t129 + t130 + t131 + t132 + t133 + t134 + t135 + t136 + t137 + t138 + t139 + t140 + t141 + t142 + t143 + t144 + t145 + t146 + t147 + t148 + t149 + t150 + t151 + t152 + t153 + t154 + t155 + t156 + t157 + t158 + t159 + t160 + t161 + t162 + t163 + t164 + t165 + t166 + t167 + t168 + t169 + t170 + t171 + t172 + t173 + t174 + t175 + t176 + t177 + t178 + t179 + t180 + t181 + t182 + t183 + t184 + t185 + t186 + t187 + t188 + t189 + t190 + t191 + t192 + t193 + t194 + t195 + t196 + t197 + t198 + t199 + t200 + t201 + t202 + t203 + t204 + t205 + t206 + t207 + t208 + t209 + t210 + t211 + t212 + t213 + t214 + t215 + t216 + t217 + t218 + t219 + t220 + t221 + t222 + t223 + t224 + t225 + t226 + t227 + t228 + t229 + t230 + t231 + t232 + t233 + t234 + t235 + t236 + t237 + t238 + t239 + t240 + t241 + t242 + t243 + t244 + t245 + t246 + t247 + t248 + t249
+}
+func h8(x: int) -> int {
+ t0 := x + 0
+ t1 := x + 1
+ t2 := x + 2
+ t3 := x + 3
+ t4 := x + 4
+ t5 := x + 5
+ t6 := x + 6
+ t7 := x + 7
+ t8 := x + 8
+ t9 := x + 9
+ t10 := x + 10
+ t11 := x + 11
+ t12 := x + 12
+ t13 := x + 13
+ t14 := x + 14
+ t15 := x + 15
+ t16 := x + 16
+ t17 := x + 17
+ t18 := x + 18
+ t19 := x + 19
+ t20 := x + 20
+ t21 := x + 21
+ t22 := x + 22
+ t23 := x + 23
+ t24 := x + 24
+ t25 := x + 25
+ t26 := x + 26
+ t27 := x + 27
+ t28 := x + 28
+ t29 := x + 29
+ t30 := x + 30
+ t31 := x + 31
+ t32 := x + 32
+ t33 := x + 33
+ t34 := x + 34
+ t35 := x + 35
+ t36 := x + 36
+ t37 := x + 37
+ t38 := x + 38
+ t39 := x + 39
+ t40 := x + 40
+ t41 := x + 41
+ t42 := x + 42
+ t43 := x + 43
+ t44 := x + 44
+ t45 := x + 45
+ t46 := x + 46
+ t47 := x + 47
+ t48 := x + 48
+ t49 := x + 49
+ t50 := x + 50
+ t51 := x + 51
+ t52 := x + 52
+ t53 := x + 53
+ t54 := x + 54
+ t55 := x + 55
+ t56 := x + 56
+ t57 := x + 57
+ t58 := x + 58
+ t59 := x + 59
+ t60 := x + 60
+ t61 := x + 61
+ t62 := x + 62
+ t63 := x + 63
+ t64 := x + 64
+ t65 := x + 65
+ t66 := x + 66
+ t67 := x + 67
+ t68 := x + 68
+ t69 := x + 69
+ t70 := x + 70
+ t71 := x + 71
+ t72 := x + 72
+ t73 := x + 73
+ t74 := x + 74
+ t75 := x + 75
+ t76 := x + 76
+ t77 := x + 77
+ t78 := x + 78
+ t79 := x + 79
+ t80 := x + 80
+ t81 := x + 81
+ t82 := x + 82
+ t83 := x + 83
+ t84 := x + 84
+ t85 := x + 85
+ t86 := x + 86
+ t87 := x + 87
+ t88 := x + 88
+ t89 := x + 89
+ t90 := x + 90
+ t91 := x + 91
+ t92 := x + 92
+ t93 := x + 93
+ t94 := x + 94
+ t95 := x + 95
+ t96 := x + 96
+ t97 := x + 97
+ t98 := x + 98
+ t99 := x + 99
+ t100 := x + 100
+ t101 := x + 101
+ t102 := x + 102
+ t103 := x + 103
+ t104 := x + 104
+ t105 := x + 105
+ t106 := x + 106
+ t107 := x + 107
+ t108 := x + 108
+ t109 := x + 109
+ t110 := x + 110
+ t111 := x + 111
+ t112 := x + 112
+ t113 := x + 113
+ t114 := x + 114
+ t115 := x + 115
+ t116 := x + 116
+ t117 := x + 117
+ t118 := x + 118
+ t119 := x + 119
+ t120 := x + 120
+ t121 := x + 121
+ t122 := x + 122
+ t123 := x + 123
+ t124 := x + 124
+ t125 := x + 125
+ t126 := x + 126
+ t127 := x + 127
+ t128 := x + 128
+ t129 := x + 129
+ t130 := x + 130
+ t131 := x + 131
+ t132 := x + 132
+ t133 := x + 133
+ t134 := x + 134
+ t135 := x + 135
+ t136 := x + 136
+ t137 := x + 137
+ t138 := x + 138
+ t139 := x + 139
+ t140 := x + 140
+ t141 := x + 141
+ t142 := x + 142
+ t143 := x + 143
+ t144 := x + 144
+ t145 := x + 145
+ t146 := x + 146
+ t147 := x + 147
+ t148 := x + 148
+ t149 := x + 149
+ t150 := x + 150
+ t151 := x + 151
+ t152 := x + 152
+ t153 := x + 153
+ t154 := x + 154
+ t155 := x + 155
+ t156 := x + 156
+ t157 := x + 157
+ t158 := x + 158
+ t159 := x + 159
+ t160 := x + 160
+ t161 := x + 161
+ t162 := x + 162
+ t163 := x + 163
+ t164 := x + 164
+ t165 := x + 165
+ t166 := x + 166
+ t167 := x + 167
+ t168 := x + 168
+ t169 := x + 169
+ t170 := x + 170
+ t171 := x + 171
+ t172 := x + 172
+ t173 := x + 173
+ t174 := x + 174
+ t175 := x + 175
+ t176 := x + 176
+ t177 := x + 177
+ t178 := x + 178
+ t179 := x + 179
+ t180 := x + 180
+ t181 := x + 181
+ t182 := x + 182
+ t183 := x + 183
+ t184 := x + 184
+ t185 := x + 185
+ t186 := x + 186
+ t187 := x + 187
+ t188 := x + 188
+ t189 := x + 189
+ t190 := x + 190
+ t191 := x + 191
+ t192 := x + 192
+ t193 := x + 193
+ t194 := x + 194
+ t195 := x + 195
+ t196 := x + 196
+ t197 := x + 197
+ t198 := x + 198
+ t199 := x + 199
+ t200 := x + 200
+ t201 := x + 201
+ t202 := x + 202
+ t203 := x + 203
+ t204 := x + 204
+ t205 := x + 205
+ t206 := x + 206
+ t207 := x + 207
+ t208 := x + 208
+ t209 := x + 209
+ t210 := x + 210
+ t211 := x + 211
+ t212 := x + 212
+ t213 := x + 213
+ t214 := x + 214
+ t215 := x + 215
+ t216 := x + 216
+ t217 := x + 217
+ t218 := x + 218
+ t219 := x + 219
+ t220 := x + 220
+ t221 := x + 221
+ t222 := x + 222
+ t223 := x + 223
+ t224 := x + 224
+ t225 := x + 225
+ t226 := x + 226
+ t227 := x + 227
+ t228 := x + 228
+ t229 := x + 229
+ t230 := x + 230
+ t231 := x + 231
+ t232 := x + 232
+ t233 := x + 233
+ t234 := x + 234
+ t235 := x + 235
+ t236 := x + 236
+ t237 := x + 237
+ t238 := x + 238
+ t239 := x + 239
+ t240 := x + 240
+ t241 := x + 241
+ t242 := x + 242
+ t243 := x + 243
+ t244 := x + 244
+ t245 := x + 245
+ t246 := x + 246
+ t247 := x + 247
+ t248 := x + 248
+ t249 := x + 249
+ return t0 + t1 + t2 + t3 + t4 + t5 + t6 + t7 + t8 + t9 + t10 + t11 + t12 + t13 + t14 + t15 + t16 + t17 + t18 + t19 + t20 + t21 + t22 + t23 + t24 + t25 + t26 + t27 + t28 + t29 + t30 + t31 + t32 + t33 + t34 + t35 + t36 + t37 + t38 + t39 + t40 + t41 + t42 + t43 + t44 + t45 + t46 + t47 + t48 + t49 + t50 + t51 + t52 + t53 + t54 + t55 + t56 + t57 + t58 + t59 + t60 + t61 + t62 + t63 + t64 + t65 + t66 + t67 + t68 + t69 + t70 + t71 + t72 + t73 + t74 + t75 + t76 + t77 + t78 + t79 + t80 + t81 + t82 + t83 + t84 + t85 + t86 + t87 + t88 + t89 + t90 + t91 + t92 + t93 + t94 + t95 + t96 + t97 + t98 + t99 + t100 + t101 + t102 + t103 + t104 + t105 + t106 + t107 + t108 + t109 + t110 + t111 + t112 + t113 + t114 + t115 + t116 + t117 + t118 + t119 + t120 + t121 + t122 + t123 + t124 + t125 + t126 + t127 + t128 + t129 + t130 + t131 + t132 + t133 + t134 + t135 + t136 + t137 + t138 + t139 + t140 + t141 + t142 + t143 + t144 + t145 + t146 + t147 + t148 + t149 + t150 + t151 + t152 + t153 + t154 + t155 + t156 + t157 + t158 + t159 + t160 + t161 + t162 + t163 + t164 + t165 + t166 + t167 + t168 + t169 + t170 + t171 + t172 + t173 + t174 + t175 + t176 + t177 + t178 + t179 + t180 + t181 + t182 + t183 + t184 + t185 + t186 + t187 + t188 + t189 + t190 + t191 + t192 + t193 + t194 + t195 + t196 + t197 + t198 + t199 + t200 + t201 + t202 + t203 + t204 + t205 + t206 + t207 + t208 + t209 + t210 + t211 + t212 + t213 + t214 + t215 + t216 + t217 + t218 + t219 + t220 + t221 + t222 + t223 + t224 + t225 + t226 + t227 + t228 + t229 + t230 + t231 + t232 + t233 + t234 + t235 + t236 + t237 + t238 + t239 + t240 + t241 + t242 + t243 + t244 + t245 + t246 + t247 + t248 + t249
+}
+func h9(x: int) -> int {
+ t0 := x + 0
+ t1 := x + 1
+ t2 := x + 2
+ t3 := x + 3
+ t4 := x + 4
+ t5 := x + 5
+ t6 := x + 6
+ t7 := x + 7
+ t8 := x + 8
+ t9 := x + 9
+ t10 := x + 10
+ t11 := x + 11
+ t12 := x + 12
+ t13 := x + 13
+ t14 := x + 14
+ t15 := x + 15
+ t16 := x + 16
+ t17 := x + 17
+ t18 := x + 18
+ t19 := x + 19
+ t20 := x + 20
+ t21 := x + 21
+ t22 := x + 22
+ t23 := x + 23
+ t24 := x + 24
+ t25 := x + 25
+ t26 := x + 26
+ t27 := x + 27
+ t28 := x + 28
+ t29 := x + 29
+ t30 := x + 30
+ t31 := x + 31
+ t32 := x + 32
+ t33 := x + 33
+ t34 := x + 34
+ t35 := x + 35
+ t36 := x + 36
+ t37 := x + 37
+ t38 := x + 38
+ t39 := x + 39
+ t40 := x + 40
+ t41 := x + 41
+ t42 := x + 42
+ t43 := x + 43
+ t44 := x + 44
+ t45 := x + 45
+ t46 := x + 46
+ t47 := x + 47
+ t48 := x + 48
+ t49 := x + 49
+ t50 := x + 50
+ t51 := x + 51
+ t52 := x + 52
+ t53 := x + 53
+ t54 := x + 54
+ t55 := x + 55
+ t56 := x + 56
+ t57 := x + 57
+ t58 := x + 58
+ t59 := x + 59
+ t60 := x + 60
+ t61 := x + 61
+ t62 := x + 62
+ t63 := x + 63
+ t64 := x + 64
+ t65 := x + 65
+ t66 := x + 66
+ t67 := x + 67
+ t68 := x + 68
+ t69 := x + 69
+ t70 := x + 70
+ t71 := x + 71
+ t72 := x + 72
+ t73 := x + 73
+ t74 := x + 74
+ t75 := x + 75
+ t76 := x + 76
+ t77 := x + 77
+ t78 := x + 78
+ t79 := x + 79
+ t80 := x + 80
+ t81 := x + 81
+ t82 := x + 82
+ t83 := x + 83
+ t84 := x + 84
+ t85 := x + 85
+ t86 := x + 86
+ t87 := x + 87
+ t88 := x + 88
+ t89 := x + 89
+ t90 := x + 90
+ t91 := x + 91
+ t92 := x + 92
+ t93 := x + 93
+ t94 := x + 94
+ t95 := x + 95
+ t96 := x + 96
+ t97 := x + 97
+ t98 := x + 98
+ t99 := x + 99
+ t100 := x + 100
+ t101 := x + 101
+ t102 := x + 102
+ t103 := x + 103
+ t104 := x + 104
+ t105 := x + 105
+ t106 := x + 106
+ t107 := x + 107
+ t108 := x + 108
+ t109 := x + 109
+ t110 := x + 110
+ t111 := x + 111
+ t112 := x + 112
+ t113 := x + 113
+ t114 := x + 114
+ t115 := x + 115
+ t116 := x + 116
+ t117 := x + 117
+ t118 := x + 118
+ t119 := x + 119
+ t120 := x + 120
+ t121 := x + 121
+ t122 := x + 122
+ t123 := x + 123
+ t124 := x + 124
+ t125 := x + 125
+ t126 := x + 126
+ t127 := x + 127
+ t128 := x + 128
+ t129 := x + 129
+ t130 := x + 130
+ t131 := x + 131
+ t132 := x + 132
+ t133 := x + 133
+ t134 := x + 134
+ t135 := x + 135
+ t136 := x + 136
+ t137 := x + 137
+ t138 := x + 138
+ t139 := x + 139
+ t140 := x + 140
+ t141 := x + 141
+ t142 := x + 142
+ t143 := x + 143
+ t144 := x + 144
+ t145 := x + 145
+ t146 := x + 146
+ t147 := x + 147
+ t148 := x + 148
+ t149 := x + 149
+ t150 := x + 150
+ t151 := x + 151
+ t152 := x + 152
+ t153 := x + 153
+ t154 := x + 154
+ t155 := x + 155
+ t156 := x + 156
+ t157 := x + 157
+ t158 := x + 158
+ t159 := x + 159
+ t160 := x + 160
+ t161 := x + 161
+ t162 := x + 162
+ t163 := x + 163
+ t164 := x + 164
+ t165 := x + 165
+ t166 := x + 166
+ t167 := x + 167
+ t168 := x + 168
+ t169 := x + 169
+ t170 := x + 170
+ t171 := x + 171
+ t172 := x + 172
+ t173 := x + 173
+ t174 := x + 174
+ t175 := x + 175
+ t176 := x + 176
+ t177 := x + 177
+ t178 := x + 178
+ t179 := x + 179
+ t180 := x + 180
+ t181 := x + 181
+ t182 := x + 182
+ t183 := x + 183
+ t184 := x + 184
+ t185 := x + 185
+ t186 := x + 186
+ t187 := x + 187
+ t188 := x + 188
+ t189 := x + 189
+ t190 := x + 190
+ t191 := x + 191
+ t192 := x + 192
+ t193 := x + 193
+ t194 := x + 194
+ t195 := x + 195
+ t196 := x + 196
+ t197 := x + 197
+ t198 := x + 198
+ t199 := x + 199
+ t200 := x + 200
+ t201 := x + 201
+ t202 := x + 202
+ t203 := x + 203
+ t204 := x + 204
+ t205 := x + 205
+ t206 := x + 206
+ t207 := x + 207
+ t208 := x + 208
+ t209 := x + 209
+ t210 := x + 210
+ t211 := x + 211
+ t212 := x + 212
+ t213 := x + 213
+ t214 := x + 214
+ t215 := x + 215
+ t216 := x + 216
+ t217 := x + 217
+ t218 := x + 218
+ t219 := x + 219
+ t220 := x + 220
+ t221 := x + 221
+ t222 := x + 222
+ t223 := x + 223
+ t224 := x + 224
+ t225 := x + 225
+ t226 := x + 226
+ t227 := x + 227
+ t228 := x + 228
+ t229 := x + 229
+ t230 := x + 230
+ t231 := x + 231
+ t232 := x + 232
+ t233 := x + 233
+ t234 := x + 234
+ t235 := x + 235
+ t236 := x + 236
+ t237 := x + 237
+ t238 := x + 238
+ t239 := x + 239
+ t240 := x + 240
+ t241 := x + 241
+ t242 := x + 242
+ t243 := x + 243
+ t244 := x + 244
+ t245 := x + 245
+ t246 := x + 246
+ t247 := x + 247
+ t248 := x + 248
+ t249 := x + 249
+ return t0 + t1 + t2 + t3 + t4 + t5 + t6 + t7 + t8 + t9 + t10 + t11 + t12 + t13 + t14 + t15 + t16 + t17 + t18 + t19 + t20 + t21 + t22 + t23 + t24 + t25 + t26 + t27 + t28 + t29 + t30 + t31 + t32 + t33 + t34 + t35 + t36 + t37 + t38 + t39 + t40 + t41 + t42 + t43 + t44 + t45 + t46 + t47 + t48 + t49 + t50 + t51 + t52 + t53 + t54 + t55 + t56 + t57 + t58 + t59 + t60 + t61 + t62 + t63 + t64 + t65 + t66 + t67 + t68 + t69 + t70 + t71 + t72 + t73 + t74 + t75 + t76 + t77 + t78 + t79 + t80 + t81 + t82 + t83 + t84 + t85 + t86 + t87 + t88 + t89 + t90 + t91 + t92 + t93 + t94 + t95 + t96 + t97 + t98 + t99 + t100 + t101 + t102 + t103 + t104 + t105 + t106 + t107 + t108 + t109 + t110 + t111 + t112 + t113 + t114 + t115 + t116 + t117 + t118 + t119 + t120 + t121 + t122 + t123 + t124 + t125 + t126 + t127 + t128 + t129 + t130 + t131 + t132 + t133 + t134 + t135 + t136 + t137 + t138 + t139 + t140 + t141 + t142 + t143 + t144 + t145 + t146 + t147 + t148 + t149 + t150 + t151 + t152 + t153 + t154 + t155 + t156 + t157 + t158 + t159 + t160 + t161 + t162 + t163 + t164 + t165 + t166 + t167 + t168 + t169 + t170 + t171 + t172 + t173 + t174 + t175 + t176 + t177 + t178 + t179 + t180 + t181 + t182 + t183 + t184 + t185 + t186 + t187 + t188 + t189 + t190 + t191 + t192 + t193 + t194 + t195 + t196 + t197 + t198 + t199 + t200 + t201 + t202 + t203 + t204 + t205 + t206 + t207 + t208 + t209 + t210 + t211 + t212 + t213 + t214 + t215 + t216 + t217 + t218 + t219 + t220 + t221 + t222 + t223 + t224 + t225 + t226 + t227 + t228 + t229 + t230 + t231 + t232 + t233 + t234 + t235 + t236 + t237 + t238 + t239 + t240 + t241 + t242 + t243 + t244 + t245 + t246 + t247 + t248 + t249
+}
+func h10(x: int) -> int {
+ t0 := x + 0
+ t1 := x + 1
+ t2 := x + 2
+ t3 := x + 3
+ t4 := x + 4
+ t5 := x + 5
+ t6 := x + 6
+ t7 := x + 7
+ t8 := x + 8
+ t9 := x + 9
+ t10 := x + 10
+ t11 := x + 11
+ t12 := x + 12
+ t13 := x + 13
+ t14 := x + 14
+ t15 := x + 15
+ t16 := x + 16
+ t17 := x + 17
+ t18 := x + 18
+ t19 := x + 19
+ t20 := x + 20
+ t21 := x + 21
+ t22 := x + 22
+ t23 := x + 23
+ t24 := x + 24
+ t25 := x + 25
+ t26 := x + 26
+ t27 := x + 27
+ t28 := x + 28
+ t29 := x + 29
+ t30 := x + 30
+ t31 := x + 31
+ t32 := x + 32
+ t33 := x + 33
+ t34 := x + 34
+ t35 := x + 35
+ t36 := x + 36
+ t37 := x + 37
+ t38 := x + 38
+ t39 := x + 39
+ t40 := x + 40
+ t41 := x + 41
+ t42 := x + 42
+ t43 := x + 43
+ t44 := x + 44
+ t45 := x + 45
+ t46 := x + 46
+ t47 := x + 47
+ t48 := x + 48
+ t49 := x + 49
+ t50 := x + 50
+ t51 := x + 51
+ t52 := x + 52
+ t53 := x + 53
+ t54 := x + 54
+ t55 := x + 55
+ t56 := x + 56
+ t57 := x + 57
+ t58 := x + 58
+ t59 := x + 59
+ t60 := x + 60
+ t61 := x + 61
+ t62 := x + 62
+ t63 := x + 63
+ t64 := x + 64
+ t65 := x + 65
+ t66 := x + 66
+ t67 := x + 67
+ t68 := x + 68
+ t69 := x + 69
+ t70 := x + 70
+ t71 := x + 71
+ t72 := x + 72
+ t73 := x + 73
+ t74 := x + 74
+ t75 := x + 75
+ t76 := x + 76
+ t77 := x + 77
+ t78 := x + 78
+ t79 := x + 79
+ t80 := x + 80
+ t81 := x + 81
+ t82 := x + 82
+ t83 := x + 83
+ t84 := x + 84
+ t85 := x + 85
+ t86 := x + 86
+ t87 := x + 87
+ t88 := x + 88
+ t89 := x + 89
+ t90 := x + 90
+ t91 := x + 91
+ t92 := x + 92
+ t93 := x + 93
+ t94 := x + 94
+ t95 := x + 95
+ t96 := x + 96
+ t97 := x + 97
+ t98 := x + 98
+ t99 := x + 99
+ t100 := x + 100
+ t101 := x + 101
+ t102 := x + 102
+ t103 := x + 103
+ t104 := x + 104
+ t105 := x + 105
+ t106 := x + 106
+ t107 := x + 107
+ t108 := x + 108
+ t109 := x + 109
+ t110 := x + 110
+ t111 := x + 111
+ t112 := x + 112
+ t113 := x + 113
+ t114 := x + 114
+ t115 := x + 115
+ t116 := x + 116
+ t117 := x + 117
+ t118 := x + 118
+ t119 := x + 119
+ t120 := x + 120
+ t121 := x + 121
+ t122 := x + 122
+ t123 := x + 123
+ t124 := x + 124
+ t125 := x + 125
+ t126 := x + 126
+ t127 := x + 127
+ t128 := x + 128
+ t129 := x + 129
+ t130 := x + 130
+ t131 := x + 131
+ t132 := x + 132
+ t133 := x + 133
+ t134 := x + 134
+ t135 := x + 135
+ t136 := x + 136
+ t137 := x + 137
+ t138 := x + 138
+ t139 := x + 139
+ t140 := x + 140
+ t141 := x + 141
+ t142 := x + 142
+ t143 := x + 143
+ t144 := x + 144
+ t145 := x + 145
+ t146 := x + 146
+ t147 := x + 147
+ t148 := x + 148
+ t149 := x + 149
+ t150 := x + 150
+ t151 := x + 151
+ t152 := x + 152
+ t153 := x + 153
+ t154 := x + 154
+ t155 := x + 155
+ t156 := x + 156
+ t157 := x + 157
+ t158 := x + 158
+ t159 := x + 159
+ t160 := x + 160
+ t161 := x + 161
+ t162 := x + 162
+ t163 := x + 163
+ t164 := x + 164
+ t165 := x + 165
+ t166 := x + 166
+ t167 := x + 167
+ t168 := x + 168
+ t169 := x + 169
+ t170 := x + 170
+ t171 := x + 171
+ t172 := x + 172
+ t173 := x + 173
+ t174 := x + 174
+ t175 := x + 175
+ t176 := x + 176
+ t177 := x + 177
+ t178 := x + 178
+ t179 := x + 179
+ t180 := x + 180
+ t181 := x + 181
+ t182 := x + 182
+ t183 := x + 183
+ t184 := x + 184
+ t185 := x + 185
+ t186 := x + 186
+ t187 := x + 187
+ t188 := x + 188
+ t189 := x + 189
+ t190 := x + 190
+ t191 := x + 191
+ t192 := x + 192
+ t193 := x + 193
+ t194 := x + 194
+ t195 := x + 195
+ t196 := x + 196
+ t197 := x + 197
+ t198 := x + 198
+ t199 := x + 199
+ t200 := x + 200
+ t201 := x + 201
+ t202 := x + 202
+ t203 := x + 203
+ t204 := x + 204
+ t205 := x + 205
+ t206 := x + 206
+ t207 := x + 207
+ t208 := x + 208
+ t209 := x + 209
+ t210 := x + 210
+ t211 := x + 211
+ t212 := x + 212
+ t213 := x + 213
+ t214 := x + 214
+ t215 := x + 215
+ t216 := x + 216
+ t217 := x + 217
+ t218 := x + 218
+ t219 := x + 219
+ t220 := x + 220
+ t221 := x + 221
+ t222 := x + 222
+ t223 := x + 223
+ t224 := x + 224
+ t225 := x + 225
+ t226 := x + 226
+ t227 := x + 227
+ t228 := x + 228
+ t229 := x + 229
+ t230 := x + 230
+ t231 := x + 231
+ t232 := x + 232
+ t233 := x + 233
+ t234 := x + 234
+ t235 := x + 235
+ t236 := x + 236
+ t237 := x + 237
+ t238 := x + 238
+ t239 := x + 239
+ t240 := x + 240
+ t241 := x + 241
+ t242 := x + 242
+ t243 := x + 243
+ t244 := x + 244
+ t245 := x + 245
+ t246 := x + 246
+ t247 := x + 247
+ t248 := x + 248
+ t249 := x + 249
+ return t0 + t1 + t2 + t3 + t4 + t5 + t6 + t7 + t8 + t9 + t10 + t11 + t12 + t13 + t14 + t15 + t16 + t17 + t18 + t19 + t20 + t21 + t22 + t23 + t24 + t25 + t26 + t27 + t28 + t29 + t30 + t31 + t32 + t33 + t34 + t35 + t36 + t37 + t38 + t39 + t40 + t41 + t42 + t43 + t44 + t45 + t46 + t47 + t48 + t49 + t50 + t51 + t52 + t53 + t54 + t55 + t56 + t57 + t58 + t59 + t60 + t61 + t62 + t63 + t64 + t65 + t66 + t67 + t68 + t69 + t70 + t71 + t72 + t73 + t74 + t75 + t76 + t77 + t78 + t79 + t80 + t81 + t82 + t83 + t84 + t85 + t86 + t87 + t88 + t89 + t90 + t91 + t92 + t93 + t94 + t95 + t96 + t97 + t98 + t99 + t100 + t101 + t102 + t103 + t104 + t105 + t106 + t107 + t108 + t109 + t110 + t111 + t112 + t113 + t114 + t115 + t116 + t117 + t118 + t119 + t120 + t121 + t122 + t123 + t124 + t125 + t126 + t127 + t128 + t129 + t130 + t131 + t132 + t133 + t134 + t135 + t136 + t137 + t138 + t139 + t140 + t141 + t142 + t143 + t144 + t145 + t146 + t147 + t148 + t149 + t150 + t151 + t152 + t153 + t154 + t155 + t156 + t157 + t158 + t159 + t160 + t161 + t162 + t163 + t164 + t165 + t166 + t167 + t168 + t169 + t170 + t171 + t172 + t173 + t174 + t175 + t176 + t177 + t178 + t179 + t180 + t181 + t182 + t183 + t184 + t185 + t186 + t187 + t188 + t189 + t190 + t191 + t192 + t193 + t194 + t195 + t196 + t197 + t198 + t199 + t200 + t201 + t202 + t203 + t204 + t205 + t206 + t207 + t208 + t209 + t210 + t211 + t212 + t213 + t214 + t215 + t216 + t217 + t218 + t219 + t220 + t221 + t222 + t223 + t224 + t225 + t226 + t227 + t228 + t229 + t230 + t231 + t232 + t233 + t234 + t235 + t236 + t237 + t238 + t239 + t240 + t241 + t242 + t243 + t244 + t245 + t246 + t247 + t248 + t249
+}
+func h11(x: int) -> int {
+ t0 := x + 0
+ t1 := x + 1
+ t2 := x + 2
+ t3 := x + 3
+ t4 := x + 4
+ t5 := x + 5
+ t6 := x + 6
+ t7 := x + 7
+ t8 := x + 8
+ t9 := x + 9
+ t10 := x + 10
+ t11 := x + 11
+ t12 := x + 12
+ t13 := x + 13
+ t14 := x + 14
+ t15 := x + 15
+ t16 := x + 16
+ t17 := x + 17
+ t18 := x + 18
+ t19 := x + 19
+ t20 := x + 20
+ t21 := x + 21
+ t22 := x + 22
+ t23 := x + 23
+ t24 := x + 24
+ t25 := x + 25
+ t26 := x + 26
+ t27 := x + 27
+ t28 := x + 28
+ t29 := x + 29
+ t30 := x + 30
+ t31 := x + 31
+ t32 := x + 32
+ t33 := x + 33
+ t34 := x + 34
+ t35 := x + 35
+ t36 := x + 36
+ t37 := x + 37
+ t38 := x + 38
+ t39 := x + 39
+ t40 := x + 40
+ t41 := x + 41
+ t42 := x + 42
+ t43 := x + 43
+ t44 := x + 44
+ t45 := x + 45
+ t46 := x + 46
+ t47 := x + 47
+ t48 := x + 48
+ t49 := x + 49
+ t50 := x + 50
+ t51 := x + 51
+ t52 := x + 52
+ t53 := x + 53
+ t54 := x + 54
+ t55 := x + 55
+ t56 := x + 56
+ t57 := x + 57
+ t58 := x + 58
+ t59 := x + 59
+ t60 := x + 60
+ t61 := x + 61
+ t62 := x + 62
+ t63 := x + 63
+ t64 := x + 64
+ t65 := x + 65
+ t66 := x + 66
+ t67 := x + 67
+ t68 := x + 68
+ t69 := x + 69
+ t70 := x + 70
+ t71 := x + 71
+ t72 := x + 72
+ t73 := x + 73
+ t74 := x + 74
+ t75 := x + 75
+ t76 := x + 76
+ t77 := x + 77
+ t78 := x + 78
+ t79 := x + 79
+ t80 := x + 80
+ t81 := x + 81
+ t82 := x + 82
+ t83 := x + 83
+ t84 := x + 84
+ t85 := x + 85
+ t86 := x + 86
+ t87 := x + 87
+ t88 := x + 88
+ t89 := x + 89
+ t90 := x + 90
+ t91 := x + 91
+ t92 := x + 92
+ t93 := x + 93
+ t94 := x + 94
+ t95 := x + 95
+ t96 := x + 96
+ t97 := x + 97
+ t98 := x + 98
+ t99 := x + 99
+ t100 := x + 100
+ t101 := x + 101
+ t102 := x + 102
+ t103 := x + 103
+ t104 := x + 104
+ t105 := x + 105
+ t106 := x + 106
+ t107 := x + 107
+ t108 := x + 108
+ t109 := x + 109
+ t110 := x + 110
+ t111 := x + 111
+ t112 := x + 112
+ t113 := x + 113
+ t114 := x + 114
+ t115 := x + 115
+ t116 := x + 116
+ t117 := x + 117
+ t118 := x + 118
+ t119 := x + 119
+ t120 := x + 120
+ t121 := x + 121
+ t122 := x + 122
+ t123 := x + 123
+ t124 := x + 124
+ t125 := x + 125
+ t126 := x + 126
+ t127 := x + 127
+ t128 := x + 128
+ t129 := x + 129
+ t130 := x + 130
+ t131 := x + 131
+ t132 := x + 132
+ t133 := x + 133
+ t134 := x + 134
+ t135 := x + 135
+ t136 := x + 136
+ t137 := x + 137
+ t138 := x + 138
+ t139 := x + 139
+ t140 := x + 140
+ t141 := x + 141
+ t142 := x + 142
+ t143 := x + 143
+ t144 := x + 144
+ t145 := x + 145
+ t146 := x + 146
+ t147 := x + 147
+ t148 := x + 148
+ t149 := x + 149
+ t150 := x + 150
+ t151 := x + 151
+ t152 := x + 152
+ t153 := x + 153
+ t154 := x + 154
+ t155 := x + 155
+ t156 := x + 156
+ t157 := x + 157
+ t158 := x + 158
+ t159 := x + 159
+ t160 := x + 160
+ t161 := x + 161
+ t162 := x + 162
+ t163 := x + 163
+ t164 := x + 164
+ t165 := x + 165
+ t166 := x + 166
+ t167 := x + 167
+ t168 := x + 168
+ t169 := x + 169
+ t170 := x + 170
+ t171 := x + 171
+ t172 := x + 172
+ t173 := x + 173
+ t174 := x + 174
+ t175 := x + 175
+ t176 := x + 176
+ t177 := x + 177
+ t178 := x + 178
+ t179 := x + 179
+ t180 := x + 180
+ t181 := x + 181
+ t182 := x + 182
+ t183 := x + 183
+ t184 := x + 184
+ t185 := x + 185
+ t186 := x + 186
+ t187 := x + 187
+ t188 := x + 188
+ t189 := x + 189
+ t190 := x + 190
+ t191 := x + 191
+ t192 := x + 192
+ t193 := x + 193
+ t194 := x + 194
+ t195 := x + 195
+ t196 := x + 196
+ t197 := x + 197
+ t198 := x + 198
+ t199 := x + 199
+ t200 := x + 200
+ t201 := x + 201
+ t202 := x + 202
+ t203 := x + 203
+ t204 := x + 204
+ t205 := x + 205
+ t206 := x + 206
+ t207 := x + 207
+ t208 := x + 208
+ t209 := x + 209
+ t210 := x + 210
+ t211 := x + 211
+ t212 := x + 212
+ t213 := x + 213
+ t214 := x + 214
+ t215 := x + 215
+ t216 := x + 216
+ t217 := x + 217
+ t218 := x + 218
+ t219 := x + 219
+ t220 := x + 220
+ t221 := x + 221
+ t222 := x + 222
+ t223 := x + 223
+ t224 := x + 224
+ t225 := x + 225
+ t226 := x + 226
+ t227 := x + 227
+ t228 := x + 228
+ t229 := x + 229
+ t230 := x + 230
+ t231 := x + 231
+ t232 := x + 232
+ t233 := x + 233
+ t234 := x + 234
+ t235 := x + 235
+ t236 := x + 236
+ t237 := x + 237
+ t238 := x + 238
+ t239 := x + 239
+ t240 := x + 240
+ t241 := x + 241
+ t242 := x + 242
+ t243 := x + 243
+ t244 := x + 244
+ t245 := x + 245
+ t246 := x + 246
+ t247 := x + 247
+ t248 := x + 248
+ t249 := x + 249
+ return t0 + t1 + t2 + t3 + t4 + t5 + t6 + t7 + t8 + t9 + t10 + t11 + t12 + t13 + t14 + t15 + t16 + t17 + t18 + t19 + t20 + t21 + t22 + t23 + t24 + t25 + t26 + t27 + t28 + t29 + t30 + t31 + t32 + t33 + t34 + t35 + t36 + t37 + t38 + t39 + t40 + t41 + t42 + t43 + t44 + t45 + t46 + t47 + t48 + t49 + t50 + t51 + t52 + t53 + t54 + t55 + t56 + t57 + t58 + t59 + t60 + t61 + t62 + t63 + t64 + t65 + t66 + t67 + t68 + t69 + t70 + t71 + t72 + t73 + t74 + t75 + t76 + t77 + t78 + t79 + t80 + t81 + t82 + t83 + t84 + t85 + t86 + t87 + t88 + t89 + t90 + t91 + t92 + t93 + t94 + t95 + t96 + t97 + t98 + t99 + t100 + t101 + t102 + t103 + t104 + t105 + t106 + t107 + t108 + t109 + t110 + t111 + t112 + t113 + t114 + t115 + t116 + t117 + t118 + t119 + t120 + t121 + t122 + t123 + t124 + t125 + t126 + t127 + t128 + t129 + t130 + t131 + t132 + t133 + t134 + t135 + t136 + t137 + t138 + t139 + t140 + t141 + t142 + t143 + t144 + t145 + t146 + t147 + t148 + t149 + t150 + t151 + t152 + t153 + t154 + t155 + t156 + t157 + t158 + t159 + t160 + t161 + t162 + t163 + t164 + t165 + t166 + t167 + t168 + t169 + t170 + t171 + t172 + t173 + t174 + t175 + t176 + t177 + t178 + t179 + t180 + t181 + t182 + t183 + t184 + t185 + t186 + t187 + t188 + t189 + t190 + t191 + t192 + t193 + t194 + t195 + t196 + t197 + t198 + t199 + t200 + t201 + t202 + t203 + t204 + t205 + t206 + t207 + t208 + t209 + t210 + t211 + t212 + t213 + t214 + t215 + t216 + t217 + t218 + t219 + t220 + t221 + t222 + t223 + t224 + t225 + t226 + t227 + t228 + t229 + t230 + t231 + t232 + t233 + t234 + t235 + t236 + t237 + t238 + t239 + t240 + t241 + t242 + t243 + t244 + t245 + t246 + t247 + t248 + t249
+}
+func h12(x: int) -> int {
+ t0 := x + 0
+ t1 := x + 1
+ t2 := x + 2
+ t3 := x + 3
+ t4 := x + 4
+ t5 := x + 5
+ t6 := x + 6
+ t7 := x + 7
+ t8 := x + 8
+ t9 := x + 9
+ t10 := x + 10
+ t11 := x + 11
+ t12 := x + 12
+ t13 := x + 13
+ t14 := x + 14
+ t15 := x + 15
+ t16 := x + 16
+ t17 := x + 17
+ t18 := x + 18
+ t19 := x + 19
+ t20 := x + 20
+ t21 := x + 21
+ t22 := x + 22
+ t23 := x + 23
+ t24 := x + 24
+ t25 := x + 25
+ t26 := x + 26
+ t27 := x + 27
+ t28 := x + 28
+ t29 := x + 29
+ t30 := x + 30
+ t31 := x + 31
+ t32 := x + 32
+ t33 := x + 33
+ t34 := x + 34
+ t35 := x + 35
+ t36 := x + 36
+ t37 := x + 37
+ t38 := x + 38
+ t39 := x + 39
+ t40 := x + 40
+ t41 := x + 41
+ t42 := x + 42
+ t43 := x + 43
+ t44 := x + 44
+ t45 := x + 45
+ t46 := x + 46
+ t47 := x + 47
+ t48 := x + 48
+ t49 := x + 49
+ t50 := x + 50
+ t51 := x + 51
+ t52 := x + 52
+ t53 := x + 53
+ t54 := x + 54
+ t55 := x + 55
+ t56 := x + 56
+ t57 := x + 57
+ t58 := x + 58
+ t59 := x + 59
+ t60 := x + 60
+ t61 := x + 61
+ t62 := x + 62
+ t63 := x + 63
+ t64 := x + 64
+ t65 := x + 65
+ t66 := x + 66
+ t67 := x + 67
+ t68 := x + 68
+ t69 := x + 69
+ t70 := x + 70
+ t71 := x + 71
+ t72 := x + 72
+ t73 := x + 73
+ t74 := x + 74
+ t75 := x + 75
+ t76 := x + 76
+ t77 := x + 77
+ t78 := x + 78
+ t79 := x + 79
+ t80 := x + 80
+ t81 := x + 81
+ t82 := x + 82
+ t83 := x + 83
+ t84 := x + 84
+ t85 := x + 85
+ t86 := x + 86
+ t87 := x + 87
+ t88 := x + 88
+ t89 := x + 89
+ t90 := x + 90
+ t91 := x + 91
+ t92 := x + 92
+ t93 := x + 93
+ t94 := x + 94
+ t95 := x + 95
+ t96 := x + 96
+ t97 := x + 97
+ t98 := x + 98
+ t99 := x + 99
+ t100 := x + 100
+ t101 := x + 101
+ t102 := x + 102
+ t103 := x + 103
+ t104 := x + 104
+ t105 := x + 105
+ t106 := x + 106
+ t107 := x + 107
+ t108 := x + 108
+ t109 := x + 109
+ t110 := x + 110
+ t111 := x + 111
+ t112 := x + 112
+ t113 := x + 113
+ t114 := x + 114
+ t115 := x + 115
+ t116 := x + 116
+ t117 := x + 117
+ t118 := x + 118
+ t119 := x + 119
+ t120 := x + 120
+ t121 := x + 121
+ t122 := x + 122
+ t123 := x + 123
+ t124 := x + 124
+ t125 := x + 125
+ t126 := x + 126
+ t127 := x + 127
+ t128 := x + 128
+ t129 := x + 129
+ t130 := x + 130
+ t131 := x + 131
+ t132 := x + 132
+ t133 := x + 133
+ t134 := x + 134
+ t135 := x + 135
+ t136 := x + 136
+ t137 := x + 137
+ t138 := x + 138
+ t139 := x + 139
+ t140 := x + 140
+ t141 := x + 141
+ t142 := x + 142
+ t143 := x + 143
+ t144 := x + 144
+ t145 := x + 145
+ t146 := x + 146
+ t147 := x + 147
+ t148 := x + 148
+ t149 := x + 149
+ t150 := x + 150
+ t151 := x + 151
+ t152 := x + 152
+ t153 := x + 153
+ t154 := x + 154
+ t155 := x + 155
+ t156 := x + 156
+ t157 := x + 157
+ t158 := x + 158
+ t159 := x + 159
+ t160 := x + 160
+ t161 := x + 161
+ t162 := x + 162
+ t163 := x + 163
+ t164 := x + 164
+ t165 := x + 165
+ t166 := x + 166
+ t167 := x + 167
+ t168 := x + 168
+ t169 := x + 169
+ t170 := x + 170
+ t171 := x + 171
+ t172 := x + 172
+ t173 := x + 173
+ t174 := x + 174
+ t175 := x + 175
+ t176 := x + 176
+ t177 := x + 177
+ t178 := x + 178
+ t179 := x + 179
+ t180 := x + 180
+ t181 := x + 181
+ t182 := x + 182
+ t183 := x + 183
+ t184 := x + 184
+ t185 := x + 185
+ t186 := x + 186
+ t187 := x + 187
+ t188 := x + 188
+ t189 := x + 189
+ t190 := x + 190
+ t191 := x + 191
+ t192 := x + 192
+ t193 := x + 193
+ t194 := x + 194
+ t195 := x + 195
+ t196 := x + 196
+ t197 := x + 197
+ t198 := x + 198
+ t199 := x + 199
+ t200 := x + 200
+ t201 := x + 201
+ t202 := x + 202
+ t203 := x + 203
+ t204 := x + 204
+ t205 := x + 205
+ t206 := x + 206
+ t207 := x + 207
+ t208 := x + 208
+ t209 := x + 209
+ t210 := x + 210
+ t211 := x + 211
+ t212 := x + 212
+ t213 := x + 213
+ t214 := x + 214
+ t215 := x + 215
+ t216 := x + 216
+ t217 := x + 217
+ t218 := x + 218
+ t219 := x + 219
+ t220 := x + 220
+ t221 := x + 221
+ t222 := x + 222
+ t223 := x + 223
+ t224 := x + 224
+ t225 := x + 225
+ t226 := x + 226
+ t227 := x + 227
+ t228 := x + 228
+ t229 := x + 229
+ t230 := x + 230
+ t231 := x + 231
+ t232 := x + 232
+ t233 := x + 233
+ t234 := x + 234
+ t235 := x + 235
+ t236 := x + 236
+ t237 := x + 237
+ t238 := x + 238
+ t239 := x + 239
+ t240 := x + 240
+ t241 := x + 241
+ t242 := x + 242
+ t243 := x + 243
+ t244 := x + 244
+ t245 := x + 245
+ t246 := x + 246
+ t247 := x + 247
+ t248 := x + 248
+ t249 := x + 249
+ return t0 + t1 + t2 + t3 + t4 + t5 + t6 + t7 + t8 + t9 + t10 + t11 + t12 + t13 + t14 + t15 + t16 + t17 + t18 + t19 + t20 + t21 + t22 + t23 + t24 + t25 + t26 + t27 + t28 + t29 + t30 + t31 + t32 + t33 + t34 + t35 + t36 + t37 + t38 + t39 + t40 + t41 + t42 + t43 + t44 + t45 + t46 + t47 + t48 + t49 + t50 + t51 + t52 + t53 + t54 + t55 + t56 + t57 + t58 + t59 + t60 + t61 + t62 + t63 + t64 + t65 + t66 + t67 + t68 + t69 + t70 + t71 + t72 + t73 + t74 + t75 + t76 + t77 + t78 + t79 + t80 + t81 + t82 + t83 + t84 + t85 + t86 + t87 + t88 + t89 + t90 + t91 + t92 + t93 + t94 + t95 + t96 + t97 + t98 + t99 + t100 + t101 + t102 + t103 + t104 + t105 + t106 + t107 + t108 + t109 + t110 + t111 + t112 + t113 + t114 + t115 + t116 + t117 + t118 + t119 + t120 + t121 + t122 + t123 + t124 + t125 + t126 + t127 + t128 + t129 + t130 + t131 + t132 + t133 + t134 + t135 + t136 + t137 + t138 + t139 + t140 + t141 + t142 + t143 + t144 + t145 + t146 + t147 + t148 + t149 + t150 + t151 + t152 + t153 + t154 + t155 + t156 + t157 + t158 + t159 + t160 + t161 + t162 + t163 + t164 + t165 + t166 + t167 + t168 + t169 + t170 + t171 + t172 + t173 + t174 + t175 + t176 + t177 + t178 + t179 + t180 + t181 + t182 + t183 + t184 + t185 + t186 + t187 + t188 + t189 + t190 + t191 + t192 + t193 + t194 + t195 + t196 + t197 + t198 + t199 + t200 + t201 + t202 + t203 + t204 + t205 + t206 + t207 + t208 + t209 + t210 + t211 + t212 + t213 + t214 + t215 + t216 + t217 + t218 + t219 + t220 + t221 + t222 + t223 + t224 + t225 + t226 + t227 + t228 + t229 + t230 + t231 + t232 + t233 + t234 + t235 + t236 + t237 + t238 + t239 + t240 + t241 + t242 + t243 + t244 + t245 + t246 + t247 + t248 + t249
+}
+func h13(x: int) -> int {
+ t0 := x + 0
+ t1 := x + 1
+ t2 := x + 2
+ t3 := x + 3
+ t4 := x + 4
+ t5 := x + 5
+ t6 := x + 6
+ t7 := x + 7
+ t8 := x + 8
+ t9 := x + 9
+ t10 := x + 10
+ t11 := x + 11
+ t12 := x + 12
+ t13 := x + 13
+ t14 := x + 14
+ t15 := x + 15
+ t16 := x + 16
+ t17 := x + 17
+ t18 := x + 18
+ t19 := x + 19
+ t20 := x + 20
+ t21 := x + 21
+ t22 := x + 22
+ t23 := x + 23
+ t24 := x + 24
+ t25 := x + 25
+ t26 := x + 26
+ t27 := x + 27
+ t28 := x + 28
+ t29 := x + 29
+ t30 := x + 30
+ t31 := x + 31
+ t32 := x + 32
+ t33 := x + 33
+ t34 := x + 34
+ t35 := x + 35
+ t36 := x + 36
+ t37 := x + 37
+ t38 := x + 38
+ t39 := x + 39
+ t40 := x + 40
+ t41 := x + 41
+ t42 := x + 42
+ t43 := x + 43
+ t44 := x + 44
+ t45 := x + 45
+ t46 := x + 46
+ t47 := x + 47
+ t48 := x + 48
+ t49 := x + 49
+ t50 := x + 50
+ t51 := x + 51
+ t52 := x + 52
+ t53 := x + 53
+ t54 := x + 54
+ t55 := x + 55
+ t56 := x + 56
+ t57 := x + 57
+ t58 := x + 58
+ t59 := x + 59
+ t60 := x + 60
+ t61 := x + 61
+ t62 := x + 62
+ t63 := x + 63
+ t64 := x + 64
+ t65 := x + 65
+ t66 := x + 66
+ t67 := x + 67
+ t68 := x + 68
+ t69 := x + 69
+ t70 := x + 70
+ t71 := x + 71
+ t72 := x + 72
+ t73 := x + 73
+ t74 := x + 74
+ t75 := x + 75
+ t76 := x + 76
+ t77 := x + 77
+ t78 := x + 78
+ t79 := x + 79
+ t80 := x + 80
+ t81 := x + 81
+ t82 := x + 82
+ t83 := x + 83
+ t84 := x + 84
+ t85 := x + 85
+ t86 := x + 86
+ t87 := x + 87
+ t88 := x + 88
+ t89 := x + 89
+ t90 := x + 90
+ t91 := x + 91
+ t92 := x + 92
+ t93 := x + 93
+ t94 := x + 94
+ t95 := x + 95
+ t96 := x + 96
+ t97 := x + 97
+ t98 := x + 98
+ t99 := x + 99
+ t100 := x + 100
+ t101 := x + 101
+ t102 := x + 102
+ t103 := x + 103
+ t104 := x + 104
+ t105 := x + 105
+ t106 := x + 106
+ t107 := x + 107
+ t108 := x + 108
+ t109 := x + 109
+ t110 := x + 110
+ t111 := x + 111
+ t112 := x + 112
+ t113 := x + 113
+ t114 := x + 114
+ t115 := x + 115
+ t116 := x + 116
+ t117 := x + 117
+ t118 := x + 118
+ t119 := x + 119
+ t120 := x + 120
+ t121 := x + 121
+ t122 := x + 122
+ t123 := x + 123
+ t124 := x + 124
+ t125 := x + 125
+ t126 := x + 126
+ t127 := x + 127
+ t128 := x + 128
+ t129 := x + 129
+ t130 := x + 130
+ t131 := x + 131
+ t132 := x + 132
+ t133 := x + 133
+ t134 := x + 134
+ t135 := x + 135
+ t136 := x + 136
+ t137 := x + 137
+ t138 := x + 138
+ t139 := x + 139
+ t140 := x + 140
+ t141 := x + 141
+ t142 := x + 142
+ t143 := x + 143
+ t144 := x + 144
+ t145 := x + 145
+ t146 := x + 146
+ t147 := x + 147
+ t148 := x + 148
+ t149 := x + 149
+ t150 := x + 150
+ t151 := x + 151
+ t152 := x + 152
+ t153 := x + 153
+ t154 := x + 154
+ t155 := x + 155
+ t156 := x + 156
+ t157 := x + 157
+ t158 := x + 158
+ t159 := x + 159
+ t160 := x + 160
+ t161 := x + 161
+ t162 := x + 162
+ t163 := x + 163
+ t164 := x + 164
+ t165 := x + 165
+ t166 := x + 166
+ t167 := x + 167
+ t168 := x + 168
+ t169 := x + 169
+ t170 := x + 170
+ t171 := x + 171
+ t172 := x + 172
+ t173 := x + 173
+ t174 := x + 174
+ t175 := x + 175
+ t176 := x + 176
+ t177 := x + 177
+ t178 := x + 178
+ t179 := x + 179
+ t180 := x + 180
+ t181 := x + 181
+ t182 := x + 182
+ t183 := x + 183
+ t184 := x + 184
+ t185 := x + 185
+ t186 := x + 186
+ t187 := x + 187
+ t188 := x + 188
+ t189 := x + 189
+ t190 := x + 190
+ t191 := x + 191
+ t192 := x + 192
+ t193 := x + 193
+ t194 := x + 194
+ t195 := x + 195
+ t196 := x + 196
+ t197 := x + 197
+ t198 := x + 198
+ t199 := x + 199
+ t200 := x + 200
+ t201 := x + 201
+ t202 := x + 202
+ t203 := x + 203
+ t204 := x + 204
+ t205 := x + 205
+ t206 := x + 206
+ t207 := x + 207
+ t208 := x + 208
+ t209 := x + 209
+ t210 := x + 210
+ t211 := x + 211
+ t212 := x + 212
+ t213 := x + 213
+ t214 := x + 214
+ t215 := x + 215
+ t216 := x + 216
+ t217 := x + 217
+ t218 := x + 218
+ t219 := x + 219
+ t220 := x + 220
+ t221 := x + 221
+ t222 := x + 222
+ t223 := x + 223
+ t224 := x + 224
+ t225 := x + 225
+ t226 := x + 226
+ t227 := x + 227
+ t228 := x + 228
+ t229 := x + 229
+ t230 := x + 230
+ t231 := x + 231
+ t232 := x + 232
+ t233 := x + 233
+ t234 := x + 234
+ t235 := x + 235
+ t236 := x + 236
+ t237 := x + 237
+ t238 := x + 238
+ t239 := x + 239
+ t240 := x + 240
+ t241 := x + 241
+ t242 := x + 242
+ t243 := x + 243
+ t244 := x + 244
+ t245 := x + 245
+ t246 := x + 246
+ t247 := x + 247
+ t248 := x + 248
+ t249 := x + 249
+ return t0 + t1 + t2 + t3 + t4 + t5 + t6 + t7 + t8 + t9 + t10 + t11 + t12 + t13 + t14 + t15 + t16 + t17 + t18 + t19 + t20 + t21 + t22 + t23 + t24 + t25 + t26 + t27 + t28 + t29 + t30 + t31 + t32 + t33 + t34 + t35 + t36 + t37 + t38 + t39 + t40 + t41 + t42 + t43 + t44 + t45 + t46 + t47 + t48 + t49 + t50 + t51 + t52 + t53 + t54 + t55 + t56 + t57 + t58 + t59 + t60 + t61 + t62 + t63 + t64 + t65 + t66 + t67 + t68 + t69 + t70 + t71 + t72 + t73 + t74 + t75 + t76 + t77 + t78 + t79 + t80 + t81 + t82 + t83 + t84 + t85 + t86 + t87 + t88 + t89 + t90 + t91 + t92 + t93 + t94 + t95 + t96 + t97 + t98 + t99 + t100 + t101 + t102 + t103 + t104 + t105 + t106 + t107 + t108 + t109 + t110 + t111 + t112 + t113 + t114 + t115 + t116 + t117 + t118 + t119 + t120 + t121 + t122 + t123 + t124 + t125 + t126 + t127 + t128 + t129 + t130 + t131 + t132 + t133 + t134 + t135 + t136 + t137 + t138 + t139 + t140 + t141 + t142 + t143 + t144 + t145 + t146 + t147 + t148 + t149 + t150 + t151 + t152 + t153 + t154 + t155 + t156 + t157 + t158 + t159 + t160 + t161 + t162 + t163 + t164 + t165 + t166 + t167 + t168 + t169 + t170 + t171 + t172 + t173 + t174 + t175 + t176 + t177 + t178 + t179 + t180 + t181 + t182 + t183 + t184 + t185 + t186 + t187 + t188 + t189 + t190 + t191 + t192 + t193 + t194 + t195 + t196 + t197 + t198 + t199 + t200 + t201 + t202 + t203 + t204 + t205 + t206 + t207 + t208 + t209 + t210 + t211 + t212 + t213 + t214 + t215 + t216 + t217 + t218 + t219 + t220 + t221 + t222 + t223 + t224 + t225 + t226 + t227 + t228 + t229 + t230 + t231 + t232 + t233 + t234 + t235 + t236 + t237 + t238 + t239 + t240 + t241 + t242 + t243 + t244 + t245 + t246 + t247 + t248 + t249
+}
+func h14(x: int) -> int {
+ t0 := x + 0
+ t1 := x + 1
+ t2 := x + 2
+ t3 := x + 3
+ t4 := x + 4
+ t5 := x + 5
+ t6 := x + 6
+ t7 := x + 7
+ t8 := x + 8
+ t9 := x + 9
+ t10 := x + 10
+ t11 := x + 11
+ t12 := x + 12
+ t13 := x + 13
+ t14 := x + 14
+ t15 := x + 15
+ t16 := x + 16
+ t17 := x + 17
+ t18 := x + 18
+ t19 := x + 19
+ t20 := x + 20
+ t21 := x + 21
+ t22 := x + 22
+ t23 := x + 23
+ t24 := x + 24
+ t25 := x + 25
+ t26 := x + 26
+ t27 := x + 27
+ t28 := x + 28
+ t29 := x + 29
+ t30 := x + 30
+ t31 := x + 31
+ t32 := x + 32
+ t33 := x + 33
+ t34 := x + 34
+ t35 := x + 35
+ t36 := x + 36
+ t37 := x + 37
+ t38 := x + 38
+ t39 := x + 39
+ t40 := x + 40
+ t41 := x + 41
+ t42 := x + 42
+ t43 := x + 43
+ t44 := x + 44
+ t45 := x + 45
+ t46 := x + 46
+ t47 := x + 47
+ t48 := x + 48
+ t49 := x + 49
+ t50 := x + 50
+ t51 := x + 51
+ t52 := x + 52
+ t53 := x + 53
+ t54 := x + 54
+ t55 := x + 55
+ t56 := x + 56
+ t57 := x + 57
+ t58 := x + 58
+ t59 := x + 59
+ t60 := x + 60
+ t61 := x + 61
+ t62 := x + 62
+ t63 := x + 63
+ t64 := x + 64
+ t65 := x + 65
+ t66 := x + 66
+ t67 := x + 67
+ t68 := x + 68
+ t69 := x + 69
+ t70 := x + 70
+ t71 := x + 71
+ t72 := x + 72
+ t73 := x + 73
+ t74 := x + 74
+ t75 := x + 75
+ t76 := x + 76
+ t77 := x + 77
+ t78 := x + 78
+ t79 := x + 79
+ t80 := x + 80
+ t81 := x + 81
+ t82 := x + 82
+ t83 := x + 83
+ t84 := x + 84
+ t85 := x + 85
+ t86 := x + 86
+ t87 := x + 87
+ t88 := x + 88
+ t89 := x + 89
+ t90 := x + 90
+ t91 := x + 91
+ t92 := x + 92
+ t93 := x + 93
+ t94 := x + 94
+ t95 := x + 95
+ t96 := x + 96
+ t97 := x + 97
+ t98 := x + 98
+ t99 := x + 99
+ t100 := x + 100
+ t101 := x + 101
+ t102 := x + 102
+ t103 := x + 103
+ t104 := x + 104
+ t105 := x + 105
+ t106 := x + 106
+ t107 := x + 107
+ t108 := x + 108
+ t109 := x + 109
+ t110 := x + 110
+ t111 := x + 111
+ t112 := x + 112
+ t113 := x + 113
+ t114 := x + 114
+ t115 := x + 115
+ t116 := x + 116
+ t117 := x + 117
+ t118 := x + 118
+ t119 := x + 119
+ t120 := x + 120
+ t121 := x + 121
+ t122 := x + 122
+ t123 := x + 123
+ t124 := x + 124
+ t125 := x + 125
+ t126 := x + 126
+ t127 := x + 127
+ t128 := x + 128
+ t129 := x + 129
+ t130 := x + 130
+ t131 := x + 131
+ t132 := x + 132
+ t133 := x + 133
+ t134 := x + 134
+ t135 := x + 135
+ t136 := x + 136
+ t137 := x + 137
+ t138 := x + 138
+ t139 := x + 139
+ t140 := x + 140
+ t141 := x + 141
+ t142 := x + 142
+ t143 := x + 143
+ t144 := x + 144
+ t145 := x + 145
+ t146 := x + 146
+ t147 := x + 147
+ t148 := x + 148
+ t149 := x + 149
+ t150 := x + 150
+ t151 := x + 151
+ t152 := x + 152
+ t153 := x + 153
+ t154 := x + 154
+ t155 := x + 155
+ t156 := x + 156
+ t157 := x + 157
+ t158 := x + 158
+ t159 := x + 159
+ t160 := x + 160
+ t161 := x + 161
+ t162 := x + 162
+ t163 := x + 163
+ t164 := x + 164
+ t165 := x + 165
+ t166 := x + 166
+ t167 := x + 167
+ t168 := x + 168
+ t169 := x + 169
+ t170 := x + 170
+ t171 := x + 171
+ t172 := x + 172
+ t173 := x + 173
+ t174 := x + 174
+ t175 := x + 175
+ t176 := x + 176
+ t177 := x + 177
+ t178 := x + 178
+ t179 := x + 179
+ t180 := x + 180
+ t181 := x + 181
+ t182 := x + 182
+ t183 := x + 183
+ t184 := x + 184
+ t185 := x + 185
+ t186 := x + 186
+ t187 := x + 187
+ t188 := x + 188
+ t189 := x + 189
+ t190 := x + 190
+ t191 := x + 191
+ t192 := x + 192
+ t193 := x + 193
+ t194 := x + 194
+ t195 := x + 195
+ t196 := x + 196
+ t197 := x + 197
+ t198 := x + 198
+ t199 := x + 199
+ t200 := x + 200
+ t201 := x + 201
+ t202 := x + 202
+ t203 := x + 203
+ t204 := x + 204
+ t205 := x + 205
+ t206 := x + 206
+ t207 := x + 207
+ t208 := x + 208
+ t209 := x + 209
+ t210 := x + 210
+ t211 := x + 211
+ t212 := x + 212
+ t213 := x + 213
+ t214 := x + 214
+ t215 := x + 215
+ t216 := x + 216
+ t217 := x + 217
+ t218 := x + 218
+ t219 := x + 219
+ t220 := x + 220
+ t221 := x + 221
+ t222 := x + 222
+ t223 := x + 223
+ t224 := x + 224
+ t225 := x + 225
+ t226 := x + 226
+ t227 := x + 227
+ t228 := x + 228
+ t229 := x + 229
+ t230 := x + 230
+ t231 := x + 231
+ t232 := x + 232
+ t233 := x + 233
+ t234 := x + 234
+ t235 := x + 235
+ t236 := x + 236
+ t237 := x + 237
+ t238 := x + 238
+ t239 := x + 239
+ t240 := x + 240
+ t241 := x + 241
+ t242 := x + 242
+ t243 := x + 243
+ t244 := x + 244
+ t245 := x + 245
+ t246 := x + 246
+ t247 := x + 247
+ t248 := x + 248
+ t249 := x + 249
+ return t0 + t1 + t2 + t3 + t4 + t5 + t6 + t7 + t8 + t9 + t10 + t11 + t12 + t13 + t14 + t15 + t16 + t17 + t18 + t19 + t20 + t21 + t22 + t23 + t24 + t25 + t26 + t27 + t28 + t29 + t30 + t31 + t32 + t33 + t34 + t35 + t36 + t37 + t38 + t39 + t40 + t41 + t42 + t43 + t44 + t45 + t46 + t47 + t48 + t49 + t50 + t51 + t52 + t53 + t54 + t55 + t56 + t57 + t58 + t59 + t60 + t61 + t62 + t63 + t64 + t65 + t66 + t67 + t68 + t69 + t70 + t71 + t72 + t73 + t74 + t75 + t76 + t77 + t78 + t79 + t80 + t81 + t82 + t83 + t84 + t85 + t86 + t87 + t88 + t89 + t90 + t91 + t92 + t93 + t94 + t95 + t96 + t97 + t98 + t99 + t100 + t101 + t102 + t103 + t104 + t105 + t106 + t107 + t108 + t109 + t110 + t111 + t112 + t113 + t114 + t115 + t116 + t117 + t118 + t119 + t120 + t121 + t122 + t123 + t124 + t125 + t126 + t127 + t128 + t129 + t130 + t131 + t132 + t133 + t134 + t135 + t136 + t137 + t138 + t139 + t140 + t141 + t142 + t143 + t144 + t145 + t146 + t147 + t148 + t149 + t150 + t151 + t152 + t153 + t154 + t155 + t156 + t157 + t158 + t159 + t160 + t161 + t162 + t163 + t164 + t165 + t166 + t167 + t168 + t169 + t170 + t171 + t172 + t173 + t174 + t175 + t176 + t177 + t178 + t179 + t180 + t181 + t182 + t183 + t184 + t185 + t186 + t187 + t188 + t189 + t190 + t191 + t192 + t193 + t194 + t195 + t196 + t197 + t198 + t199 + t200 + t201 + t202 + t203 + t204 + t205 + t206 + t207 + t208 + t209 + t210 + t211 + t212 + t213 + t214 + t215 + t216 + t217 + t218 + t219 + t220 + t221 + t222 + t223 + t224 + t225 + t226 + t227 + t228 + t229 + t230 + t231 + t232 + t233 + t234 + t235 + t236 + t237 + t238 + t239 + t240 + t241 + t242 + t243 + t244 + t245 + t246 + t247 + t248 + t249
+}
+func h15(x: int) -> int {
+ t0 := x + 0
+ t1 := x + 1
+ t2 := x + 2
+ t3 := x + 3
+ t4 := x + 4
+ t5 := x + 5
+ t6 := x + 6
+ t7 := x + 7
+ t8 := x + 8
+ t9 := x + 9
+ t10 := x + 10
+ t11 := x + 11
+ t12 := x + 12
+ t13 := x + 13
+ t14 := x + 14
+ t15 := x + 15
+ t16 := x + 16
+ t17 := x + 17
+ t18 := x + 18
+ t19 := x + 19
+ t20 := x + 20
+ t21 := x + 21
+ t22 := x + 22
+ t23 := x + 23
+ t24 := x + 24
+ t25 := x + 25
+ t26 := x + 26
+ t27 := x + 27
+ t28 := x + 28
+ t29 := x + 29
+ t30 := x + 30
+ t31 := x + 31
+ t32 := x + 32
+ t33 := x + 33
+ t34 := x + 34
+ t35 := x + 35
+ t36 := x + 36
+ t37 := x + 37
+ t38 := x + 38
+ t39 := x + 39
+ t40 := x + 40
+ t41 := x + 41
+ t42 := x + 42
+ t43 := x + 43
+ t44 := x + 44
+ t45 := x + 45
+ t46 := x + 46
+ t47 := x + 47
+ t48 := x + 48
+ t49 := x + 49
+ t50 := x + 50
+ t51 := x + 51
+ t52 := x + 52
+ t53 := x + 53
+ t54 := x + 54
+ t55 := x + 55
+ t56 := x + 56
+ t57 := x + 57
+ t58 := x + 58
+ t59 := x + 59
+ t60 := x + 60
+ t61 := x + 61
+ t62 := x + 62
+ t63 := x + 63
+ t64 := x + 64
+ t65 := x + 65
+ t66 := x + 66
+ t67 := x + 67
+ t68 := x + 68
+ t69 := x + 69
+ t70 := x + 70
+ t71 := x + 71
+ t72 := x + 72
+ t73 := x + 73
+ t74 := x + 74
+ t75 := x + 75
+ t76 := x + 76
+ t77 := x + 77
+ t78 := x + 78
+ t79 := x + 79
+ t80 := x + 80
+ t81 := x + 81
+ t82 := x + 82
+ t83 := x + 83
+ t84 := x + 84
+ t85 := x + 85
+ t86 := x + 86
+ t87 := x + 87
+ t88 := x + 88
+ t89 := x + 89
+ t90 := x + 90
+ t91 := x + 91
+ t92 := x + 92
+ t93 := x + 93
+ t94 := x + 94
+ t95 := x + 95
+ t96 := x + 96
+ t97 := x + 97
+ t98 := x + 98
+ t99 := x + 99
+ t100 := x + 100
+ t101 := x + 101
+ t102 := x + 102
+ t103 := x + 103
+ t104 := x + 104
+ t105 := x + 105
+ t106 := x + 106
+ t107 := x + 107
+ t108 := x + 108
+ t109 := x + 109
+ t110 := x + 110
+ t111 := x + 111
+ t112 := x + 112
+ t113 := x + 113
+ t114 := x + 114
+ t115 := x + 115
+ t116 := x + 116
+ t117 := x + 117
+ t118 := x + 118
+ t119 := x + 119
+ t120 := x + 120
+ t121 := x + 121
+ t122 := x + 122
+ t123 := x + 123
+ t124 := x + 124
+ t125 := x + 125
+ t126 := x + 126
+ t127 := x + 127
+ t128 := x + 128
+ t129 := x + 129
+ t130 := x + 130
+ t131 := x + 131
+ t132 := x + 132
+ t133 := x + 133
+ t134 := x + 134
+ t135 := x + 135
+ t136 := x + 136
+ t137 := x + 137
+ t138 := x + 138
+ t139 := x + 139
+ t140 := x + 140
+ t141 := x + 141
+ t142 := x + 142
+ t143 := x + 143
+ t144 := x + 144
+ t145 := x + 145
+ t146 := x + 146
+ t147 := x + 147
+ t148 := x + 148
+ t149 := x + 149
+ t150 := x + 150
+ t151 := x + 151
+ t152 := x + 152
+ t153 := x + 153
+ t154 := x + 154
+ t155 := x + 155
+ t156 := x + 156
+ t157 := x + 157
+ t158 := x + 158
+ t159 := x + 159
+ t160 := x + 160
+ t161 := x + 161
+ t162 := x + 162
+ t163 := x + 163
+ t164 := x + 164
+ t165 := x + 165
+ t166 := x + 166
+ t167 := x + 167
+ t168 := x + 168
+ t169 := x + 169
+ t170 := x + 170
+ t171 := x + 171
+ t172 := x + 172
+ t173 := x + 173
+ t174 := x + 174
+ t175 := x + 175
+ t176 := x + 176
+ t177 := x + 177
+ t178 := x + 178
+ t179 := x + 179
+ t180 := x + 180
+ t181 := x + 181
+ t182 := x + 182
+ t183 := x + 183
+ t184 := x + 184
+ t185 := x + 185
+ t186 := x + 186
+ t187 := x + 187
+ t188 := x + 188
+ t189 := x + 189
+ t190 := x + 190
+ t191 := x + 191
+ t192 := x + 192
+ t193 := x + 193
+ t194 := x + 194
+ t195 := x + 195
+ t196 := x + 196
+ t197 := x + 197
+ t198 := x + 198
+ t199 := x + 199
+ t200 := x + 200
+ t201 := x + 201
+ t202 := x + 202
+ t203 := x + 203
+ t204 := x + 204
+ t205 := x + 205
+ t206 := x + 206
+ t207 := x + 207
+ t208 := x + 208
+ t209 := x + 209
+ t210 := x + 210
+ t211 := x + 211
+ t212 := x + 212
+ t213 := x + 213
+ t214 := x + 214
+ t215 := x + 215
+ t216 := x + 216
+ t217 := x + 217
+ t218 := x + 218
+ t219 := x + 219
+ t220 := x + 220
+ t221 := x + 221
+ t222 := x + 222
+ t223 := x + 223
+ t224 := x + 224
+ t225 := x + 225
+ t226 := x + 226
+ t227 := x + 227
+ t228 := x + 228
+ t229 := x + 229
+ t230 := x + 230
+ t231 := x + 231
+ t232 := x + 232
+ t233 := x + 233
+ t234 := x + 234
+ t235 := x + 235
+ t236 := x + 236
+ t237 := x + 237
+ t238 := x + 238
+ t239 := x + 239
+ t240 := x + 240
+ t241 := x + 241
+ t242 := x + 242
+ t243 := x + 243
+ t244 := x + 244
+ t245 := x + 245
+ t246 := x + 246
+ t247 := x + 247
+ t248 := x + 248
+ t249 := x + 249
+ return t0 + t1 + t2 + t3 + t4 + t5 + t6 + t7 + t8 + t9 + t10 + t11 + t12 + t13 + t14 + t15 + t16 + t17 + t18 + t19 + t20 + t21 + t22 + t23 + t24 + t25 + t26 + t27 + t28 + t29 + t30 + t31 + t32 + t33 + t34 + t35 + t36 + t37 + t38 + t39 + t40 + t41 + t42 + t43 + t44 + t45 + t46 + t47 + t48 + t49 + t50 + t51 + t52 + t53 + t54 + t55 + t56 + t57 + t58 + t59 + t60 + t61 + t62 + t63 + t64 + t65 + t66 + t67 + t68 + t69 + t70 + t71 + t72 + t73 + t74 + t75 + t76 + t77 + t78 + t79 + t80 + t81 + t82 + t83 + t84 + t85 + t86 + t87 + t88 + t89 + t90 + t91 + t92 + t93 + t94 + t95 + t96 + t97 + t98 + t99 + t100 + t101 + t102 + t103 + t104 + t105 + t106 + t107 + t108 + t109 + t110 + t111 + t112 + t113 + t114 + t115 + t116 + t117 + t118 + t119 + t120 + t121 + t122 + t123 + t124 + t125 + t126 + t127 + t128 + t129 + t130 + t131 + t132 + t133 + t134 + t135 + t136 + t137 + t138 + t139 + t140 + t141 + t142 + t143 + t144 + t145 + t146 + t147 + t148 + t149 + t150 + t151 + t152 + t153 + t154 + t155 + t156 + t157 + t158 + t159 + t160 + t161 + t162 + t163 + t164 + t165 + t166 + t167 + t168 + t169 + t170 + t171 + t172 + t173 + t174 + t175 + t176 + t177 + t178 + t179 + t180 + t181 + t182 + t183 + t184 + t185 + t186 + t187 + t188 + t189 + t190 + t191 + t192 + t193 + t194 + t195 + t196 + t197 + t198 + t199 + t200 + t201 + t202 + t203 + t204 + t205 + t206 + t207 + t208 + t209 + t210 + t211 + t212 + t213 + t214 + t215 + t216 + t217 + t218 + t219 + t220 + t221 + t222 + t223 + t224 + t225 + t226 + t227 + t228 + t229 + t230 + t231 + t232 + t233 + t234 + t235 + t236 + t237 + t238 + t239 + t240 + t241 + t242 + t243 + t244 + t245 + t246 + t247 + t248 + t249
+}
+func h16(x: int) -> int {
+ t0 := x + 0
+ t1 := x + 1
+ t2 := x + 2
+ t3 := x + 3
+ t4 := x + 4
+ t5 := x + 5
+ t6 := x + 6
+ t7 := x + 7
+ t8 := x + 8
+ t9 := x + 9
+ t10 := x + 10
+ t11 := x + 11
+ t12 := x + 12
+ t13 := x + 13
+ t14 := x + 14
+ t15 := x + 15
+ t16 := x + 16
+ t17 := x + 17
+ t18 := x + 18
+ t19 := x + 19
+ t20 := x + 20
+ t21 := x + 21
+ t22 := x + 22
+ t23 := x + 23
+ t24 := x + 24
+ t25 := x + 25
+ t26 := x + 26
+ t27 := x + 27
+ t28 := x + 28
+ t29 := x + 29
+ t30 := x + 30
+ t31 := x + 31
+ t32 := x + 32
+ t33 := x + 33
+ t34 := x + 34
+ t35 := x + 35
+ t36 := x + 36
+ t37 := x + 37
+ t38 := x + 38
+ t39 := x + 39
+ t40 := x + 40
+ t41 := x + 41
+ t42 := x + 42
+ t43 := x + 43
+ t44 := x + 44
+ t45 := x + 45
+ t46 := x + 46
+ t47 := x + 47
+ t48 := x + 48
+ t49 := x + 49
+ t50 := x + 50
+ t51 := x + 51
+ t52 := x + 52
+ t53 := x + 53
+ t54 := x + 54
+ t55 := x + 55
+ t56 := x + 56
+ t57 := x + 57
+ t58 := x + 58
+ t59 := x + 59
+ t60 := x + 60
+ t61 := x + 61
+ t62 := x + 62
+ t63 := x + 63
+ t64 := x + 64
+ t65 := x + 65
+ t66 := x + 66
+ t67 := x + 67
+ t68 := x + 68
+ t69 := x + 69
+ t70 := x + 70
+ t71 := x + 71
+ t72 := x + 72
+ t73 := x + 73
+ t74 := x + 74
+ t75 := x + 75
+ t76 := x + 76
+ t77 := x + 77
+ t78 := x + 78
+ t79 := x + 79
+ t80 := x + 80
+ t81 := x + 81
+ t82 := x + 82
+ t83 := x + 83
+ t84 := x + 84
+ t85 := x + 85
+ t86 := x + 86
+ t87 := x + 87
+ t88 := x + 88
+ t89 := x + 89
+ t90 := x + 90
+ t91 := x + 91
+ t92 := x + 92
+ t93 := x + 93
+ t94 := x + 94
+ t95 := x + 95
+ t96 := x + 96
+ t97 := x + 97
+ t98 := x + 98
+ t99 := x + 99
+ t100 := x + 100
+ t101 := x + 101
+ t102 := x + 102
+ t103 := x + 103
+ t104 := x + 104
+ t105 := x + 105
+ t106 := x + 106
+ t107 := x + 107
+ t108 := x + 108
+ t109 := x + 109
+ t110 := x + 110
+ t111 := x + 111
+ t112 := x + 112
+ t113 := x + 113
+ t114 := x + 114
+ t115 := x + 115
+ t116 := x + 116
+ t117 := x + 117
+ t118 := x + 118
+ t119 := x + 119
+ t120 := x + 120
+ t121 := x + 121
+ t122 := x + 122
+ t123 := x + 123
+ t124 := x + 124
+ t125 := x + 125
+ t126 := x + 126
+ t127 := x + 127
+ t128 := x + 128
+ t129 := x + 129
+ t130 := x + 130
+ t131 := x + 131
+ t132 := x + 132
+ t133 := x + 133
+ t134 := x + 134
+ t135 := x + 135
+ t136 := x + 136
+ t137 := x + 137
+ t138 := x + 138
+ t139 := x + 139
+ t140 := x + 140
+ t141 := x + 141
+ t142 := x + 142
+ t143 := x + 143
+ t144 := x + 144
+ t145 := x + 145
+ t146 := x + 146
+ t147 := x + 147
+ t148 := x + 148
+ t149 := x + 149
+ t150 := x + 150
+ t151 := x + 151
+ t152 := x + 152
+ t153 := x + 153
+ t154 := x + 154
+ t155 := x + 155
+ t156 := x + 156
+ t157 := x + 157
+ t158 := x + 158
+ t159 := x + 159
+ t160 := x + 160
+ t161 := x + 161
+ t162 := x + 162
+ t163 := x + 163
+ t164 := x + 164
+ t165 := x + 165
+ t166 := x + 166
+ t167 := x + 167
+ t168 := x + 168
+ t169 := x + 169
+ t170 := x + 170
+ t171 := x + 171
+ t172 := x + 172
+ t173 := x + 173
+ t174 := x + 174
+ t175 := x + 175
+ t176 := x + 176
+ t177 := x + 177
+ t178 := x + 178
+ t179 := x + 179
+ t180 := x + 180
+ t181 := x + 181
+ t182 := x + 182
+ t183 := x + 183
+ t184 := x + 184
+ t185 := x + 185
+ t186 := x + 186
+ t187 := x + 187
+ t188 := x + 188
+ t189 := x + 189
+ t190 := x + 190
+ t191 := x + 191
+ t192 := x + 192
+ t193 := x + 193
+ t194 := x + 194
+ t195 := x + 195
+ t196 := x + 196
+ t197 := x + 197
+ t198 := x + 198
+ t199 := x + 199
+ t200 := x + 200
+ t201 := x + 201
+ t202 := x + 202
+ t203 := x + 203
+ t204 := x + 204
+ t205 := x + 205
+ t206 := x + 206
+ t207 := x + 207
+ t208 := x + 208
+ t209 := x + 209
+ t210 := x + 210
+ t211 := x + 211
+ t212 := x + 212
+ t213 := x + 213
+ t214 := x + 214
+ t215 := x + 215
+ t216 := x + 216
+ t217 := x + 217
+ t218 := x + 218
+ t219 := x + 219
+ t220 := x + 220
+ t221 := x + 221
+ t222 := x + 222
+ t223 := x + 223
+ t224 := x + 224
+ t225 := x + 225
+ t226 := x + 226
+ t227 := x + 227
+ t228 := x + 228
+ t229 := x + 229
+ t230 := x + 230
+ t231 := x + 231
+ t232 := x + 232
+ t233 := x + 233
+ t234 := x + 234
+ t235 := x + 235
+ t236 := x + 236
+ t237 := x + 237
+ t238 := x + 238
+ t239 := x + 239
+ t240 := x + 240
+ t241 := x + 241
+ t242 := x + 242
+ t243 := x + 243
+ t244 := x + 244
+ t245 := x + 245
+ t246 := x + 246
+ t247 := x + 247
+ t248 := x + 248
+ t249 := x + 249
+ return t0 + t1 + t2 + t3 + t4 + t5 + t6 + t7 + t8 + t9 + t10 + t11 + t12 + t13 + t14 + t15 + t16 + t17 + t18 + t19 + t20 + t21 + t22 + t23 + t24 + t25 + t26 + t27 + t28 + t29 + t30 + t31 + t32 + t33 + t34 + t35 + t36 + t37 + t38 + t39 + t40 + t41 + t42 + t43 + t44 + t45 + t46 + t47 + t48 + t49 + t50 + t51 + t52 + t53 + t54 + t55 + t56 + t57 + t58 + t59 + t60 + t61 + t62 + t63 + t64 + t65 + t66 + t67 + t68 + t69 + t70 + t71 + t72 + t73 + t74 + t75 + t76 + t77 + t78 + t79 + t80 + t81 + t82 + t83 + t84 + t85 + t86 + t87 + t88 + t89 + t90 + t91 + t92 + t93 + t94 + t95 + t96 + t97 + t98 + t99 + t100 + t101 + t102 + t103 + t104 + t105 + t106 + t107 + t108 + t109 + t110 + t111 + t112 + t113 + t114 + t115 + t116 + t117 + t118 + t119 + t120 + t121 + t122 + t123 + t124 + t125 + t126 + t127 + t128 + t129 + t130 + t131 + t132 + t133 + t134 + t135 + t136 + t137 + t138 + t139 + t140 + t141 + t142 + t143 + t144 + t145 + t146 + t147 + t148 + t149 + t150 + t151 + t152 + t153 + t154 + t155 + t156 + t157 + t158 + t159 + t160 + t161 + t162 + t163 + t164 + t165 + t166 + t167 + t168 + t169 + t170 + t171 + t172 + t173 + t174 + t175 + t176 + t177 + t178 + t179 + t180 + t181 + t182 + t183 + t184 + t185 + t186 + t187 + t188 + t189 + t190 + t191 + t192 + t193 + t194 + t195 + t196 + t197 + t198 + t199 + t200 + t201 + t202 + t203 + t204 + t205 + t206 + t207 + t208 + t209 + t210 + t211 + t212 + t213 + t214 + t215 + t216 + t217 + t218 + t219 + t220 + t221 + t222 + t223 + t224 + t225 + t226 + t227 + t228 + t229 + t230 + t231 + t232 + t233 + t234 + t235 + t236 + t237 + t238 + t239 + t240 + t241 + t242 + t243 + t244 + t245 + t246 + t247 + t248 + t249
+}
+func h17(x: int) -> int {
+ t0 := x + 0
+ t1 := x + 1
+ t2 := x + 2
+ t3 := x + 3
+ t4 := x + 4
+ t5 := x + 5
+ t6 := x + 6
+ t7 := x + 7
+ t8 := x + 8
+ t9 := x + 9
+ t10 := x + 10
+ t11 := x + 11
+ t12 := x + 12
+ t13 := x + 13
+ t14 := x + 14
+ t15 := x + 15
+ t16 := x + 16
+ t17 := x + 17
+ t18 := x + 18
+ t19 := x + 19
+ t20 := x + 20
+ t21 := x + 21
+ t22 := x + 22
+ t23 := x + 23
+ t24 := x + 24
+ t25 := x + 25
+ t26 := x + 26
+ t27 := x + 27
+ t28 := x + 28
+ t29 := x + 29
+ t30 := x + 30
+ t31 := x + 31
+ t32 := x + 32
+ t33 := x + 33
+ t34 := x + 34
+ t35 := x + 35
+ t36 := x + 36
+ t37 := x + 37
+ t38 := x + 38
+ t39 := x + 39
+ t40 := x + 40
+ t41 := x + 41
+ t42 := x + 42
+ t43 := x + 43
+ t44 := x + 44
+ t45 := x + 45
+ t46 := x + 46
+ t47 := x + 47
+ t48 := x + 48
+ t49 := x + 49
+ t50 := x + 50
+ t51 := x + 51
+ t52 := x + 52
+ t53 := x + 53
+ t54 := x + 54
+ t55 := x + 55
+ t56 := x + 56
+ t57 := x + 57
+ t58 := x + 58
+ t59 := x + 59
+ t60 := x + 60
+ t61 := x + 61
+ t62 := x + 62
+ t63 := x + 63
+ t64 := x + 64
+ t65 := x + 65
+ t66 := x + 66
+ t67 := x + 67
+ t68 := x + 68
+ t69 := x + 69
+ t70 := x + 70
+ t71 := x + 71
+ t72 := x + 72
+ t73 := x + 73
+ t74 := x + 74
+ t75 := x + 75
+ t76 := x + 76
+ t77 := x + 77
+ t78 := x + 78
+ t79 := x + 79
+ t80 := x + 80
+ t81 := x + 81
+ t82 := x + 82
+ t83 := x + 83
+ t84 := x + 84
+ t85 := x + 85
+ t86 := x + 86
+ t87 := x + 87
+ t88 := x + 88
+ t89 := x + 89
+ t90 := x + 90
+ t91 := x + 91
+ t92 := x + 92
+ t93 := x + 93
+ t94 := x + 94
+ t95 := x + 95
+ t96 := x + 96
+ t97 := x + 97
+ t98 := x + 98
+ t99 := x + 99
+ t100 := x + 100
+ t101 := x + 101
+ t102 := x + 102
+ t103 := x + 103
+ t104 := x + 104
+ t105 := x + 105
+ t106 := x + 106
+ t107 := x + 107
+ t108 := x + 108
+ t109 := x + 109
+ t110 := x + 110
+ t111 := x + 111
+ t112 := x + 112
+ t113 := x + 113
+ t114 := x + 114
+ t115 := x + 115
+ t116 := x + 116
+ t117 := x + 117
+ t118 := x + 118
+ t119 := x + 119
+ t120 := x + 120
+ t121 := x + 121
+ t122 := x + 122
+ t123 := x + 123
+ t124 := x + 124
+ t125 := x + 125
+ t126 := x + 126
+ t127 := x + 127
+ t128 := x + 128
+ t129 := x + 129
+ t130 := x + 130
+ t131 := x + 131
+ t132 := x + 132
+ t133 := x + 133
+ t134 := x + 134
+ t135 := x + 135
+ t136 := x + 136
+ t137 := x + 137
+ t138 := x + 138
+ t139 := x + 139
+ t140 := x + 140
+ t141 := x + 141
+ t142 := x + 142
+ t143 := x + 143
+ t144 := x + 144
+ t145 := x + 145
+ t146 := x + 146
+ t147 := x + 147
+ t148 := x + 148
+ t149 := x + 149
+ t150 := x + 150
+ t151 := x + 151
+ t152 := x + 152
+ t153 := x + 153
+ t154 := x + 154
+ t155 := x + 155
+ t156 := x + 156
+ t157 := x + 157
+ t158 := x + 158
+ t159 := x + 159
+ t160 := x + 160
+ t161 := x + 161
+ t162 := x + 162
+ t163 := x + 163
+ t164 := x + 164
+ t165 := x + 165
+ t166 := x + 166
+ t167 := x + 167
+ t168 := x + 168
+ t169 := x + 169
+ t170 := x + 170
+ t171 := x + 171
+ t172 := x + 172
+ t173 := x + 173
+ t174 := x + 174
+ t175 := x + 175
+ t176 := x + 176
+ t177 := x + 177
+ t178 := x + 178
+ t179 := x + 179
+ t180 := x + 180
+ t181 := x + 181
+ t182 := x + 182
+ t183 := x + 183
+ t184 := x + 184
+ t185 := x + 185
+ t186 := x + 186
+ t187 := x + 187
+ t188 := x + 188
+ t189 := x + 189
+ t190 := x + 190
+ t191 := x + 191
+ t192 := x + 192
+ t193 := x + 193
+ t194 := x + 194
+ t195 := x + 195
+ t196 := x + 196
+ t197 := x + 197
+ t198 := x + 198
+ t199 := x + 199
+ t200 := x + 200
+ t201 := x + 201
+ t202 := x + 202
+ t203 := x + 203
+ t204 := x + 204
+ t205 := x + 205
+ t206 := x + 206
+ t207 := x + 207
+ t208 := x + 208
+ t209 := x + 209
+ t210 := x + 210
+ t211 := x + 211
+ t212 := x + 212
+ t213 := x + 213
+ t214 := x + 214
+ t215 := x + 215
+ t216 := x + 216
+ t217 := x + 217
+ t218 := x + 218
+ t219 := x + 219
+ t220 := x + 220
+ t221 := x + 221
+ t222 := x + 222
+ t223 := x + 223
+ t224 := x + 224
+ t225 := x + 225
+ t226 := x + 226
+ t227 := x + 227
+ t228 := x + 228
+ t229 := x + 229
+ t230 := x + 230
+ t231 := x + 231
+ t232 := x + 232
+ t233 := x + 233
+ t234 := x + 234
+ t235 := x + 235
+ t236 := x + 236
+ t237 := x + 237
+ t238 := x + 238
+ t239 := x + 239
+ t240 := x + 240
+ t241 := x + 241
+ t242 := x + 242
+ t243 := x + 243
+ t244 := x + 244
+ t245 := x + 245
+ t246 := x + 246
+ t247 := x + 247
+ t248 := x + 248
+ t249 := x + 249
+ return t0 + t1 + t2 + t3 + t4 + t5 + t6 + t7 + t8 + t9 + t10 + t11 + t12 + t13 + t14 + t15 + t16 + t17 + t18 + t19 + t20 + t21 + t22 + t23 + t24 + t25 + t26 + t27 + t28 + t29 + t30 + t31 + t32 + t33 + t34 + t35 + t36 + t37 + t38 + t39 + t40 + t41 + t42 + t43 + t44 + t45 + t46 + t47 + t48 + t49 + t50 + t51 + t52 + t53 + t54 + t55 + t56 + t57 + t58 + t59 + t60 + t61 + t62 + t63 + t64 + t65 + t66 + t67 + t68 + t69 + t70 + t71 + t72 + t73 + t74 + t75 + t76 + t77 + t78 + t79 + t80 + t81 + t82 + t83 + t84 + t85 + t86 + t87 + t88 + t89 + t90 + t91 + t92 + t93 + t94 + t95 + t96 + t97 + t98 + t99 + t100 + t101 + t102 + t103 + t104 + t105 + t106 + t107 + t108 + t109 + t110 + t111 + t112 + t113 + t114 + t115 + t116 + t117 + t118 + t119 + t120 + t121 + t122 + t123 + t124 + t125 + t126 + t127 + t128 + t129 + t130 + t131 + t132 + t133 + t134 + t135 + t136 + t137 + t138 + t139 + t140 + t141 + t142 + t143 + t144 + t145 + t146 + t147 + t148 + t149 + t150 + t151 + t152 + t153 + t154 + t155 + t156 + t157 + t158 + t159 + t160 + t161 + t162 + t163 + t164 + t165 + t166 + t167 + t168 + t169 + t170 + t171 + t172 + t173 + t174 + t175 + t176 + t177 + t178 + t179 + t180 + t181 + t182 + t183 + t184 + t185 + t186 + t187 + t188 + t189 + t190 + t191 + t192 + t193 + t194 + t195 + t196 + t197 + t198 + t199 + t200 + t201 + t202 + t203 + t204 + t205 + t206 + t207 + t208 + t209 + t210 + t211 + t212 + t213 + t214 + t215 + t216 + t217 + t218 + t219 + t220 + t221 + t222 + t223 + t224 + t225 + t226 + t227 + t228 + t229 + t230 + t231 + t232 + t233 + t234 + t235 + t236 + t237 + t238 + t239 + t240 + t241 + t242 + t243 + t244 + t245 + t246 + t247 + t248 + t249
+}
+func h18(x: int) -> int {
+ t0 := x + 0
+ t1 := x + 1
+ t2 := x + 2
+ t3 := x + 3
+ t4 := x + 4
+ t5 := x + 5
+ t6 := x + 6
+ t7 := x + 7
+ t8 := x + 8
+ t9 := x + 9
+ t10 := x + 10
+ t11 := x + 11
+ t12 := x + 12
+ t13 := x + 13
+ t14 := x + 14
+ t15 := x + 15
+ t16 := x + 16
+ t17 := x + 17
+ t18 := x + 18
+ t19 := x + 19
+ t20 := x + 20
+ t21 := x + 21
+ t22 := x + 22
+ t23 := x + 23
+ t24 := x + 24
+ t25 := x + 25
+ t26 := x + 26
+ t27 := x + 27
+ t28 := x + 28
+ t29 := x + 29
+ t30 := x + 30
+ t31 := x + 31
+ t32 := x + 32
+ t33 := x + 33
+ t34 := x + 34
+ t35 := x + 35
+ t36 := x + 36
+ t37 := x + 37
+ t38 := x + 38
+ t39 := x + 39
+ t40 := x + 40
+ t41 := x + 41
+ t42 := x + 42
+ t43 := x + 43
+ t44 := x + 44
+ t45 := x + 45
+ t46 := x + 46
+ t47 := x + 47
+ t48 := x + 48
+ t49 := x + 49
+ t50 := x + 50
+ t51 := x + 51
+ t52 := x + 52
+ t53 := x + 53
+ t54 := x + 54
+ t55 := x + 55
+ t56 := x + 56
+ t57 := x + 57
+ t58 := x + 58
+ t59 := x + 59
+ t60 := x + 60
+ t61 := x + 61
+ t62 := x + 62
+ t63 := x + 63
+ t64 := x + 64
+ t65 := x + 65
+ t66 := x + 66
+ t67 := x + 67
+ t68 := x + 68
+ t69 := x + 69
+ t70 := x + 70
+ t71 := x + 71
+ t72 := x + 72
+ t73 := x + 73
+ t74 := x + 74
+ t75 := x + 75
+ t76 := x + 76
+ t77 := x + 77
+ t78 := x + 78
+ t79 := x + 79
+ t80 := x + 80
+ t81 := x + 81
+ t82 := x + 82
+ t83 := x + 83
+ t84 := x + 84
+ t85 := x + 85
+ t86 := x + 86
+ t87 := x + 87
+ t88 := x + 88
+ t89 := x + 89
+ t90 := x + 90
+ t91 := x + 91
+ t92 := x + 92
+ t93 := x + 93
+ t94 := x + 94
+ t95 := x + 95
+ t96 := x + 96
+ t97 := x + 97
+ t98 := x + 98
+ t99 := x + 99
+ t100 := x + 100
+ t101 := x + 101
+ t102 := x + 102
+ t103 := x + 103
+ t104 := x + 104
+ t105 := x + 105
+ t106 := x + 106
+ t107 := x + 107
+ t108 := x + 108
+ t109 := x + 109
+ t110 := x + 110
+ t111 := x + 111
+ t112 := x + 112
+ t113 := x + 113
+ t114 := x + 114
+ t115 := x + 115
+ t116 := x + 116
+ t117 := x + 117
+ t118 := x + 118
+ t119 := x + 119
+ t120 := x + 120
+ t121 := x + 121
+ t122 := x + 122
+ t123 := x + 123
+ t124 := x + 124
+ t125 := x + 125
+ t126 := x + 126
+ t127 := x + 127
+ t128 := x + 128
+ t129 := x + 129
+ t130 := x + 130
+ t131 := x + 131
+ t132 := x + 132
+ t133 := x + 133
+ t134 := x + 134
+ t135 := x + 135
+ t136 := x + 136
+ t137 := x + 137
+ t138 := x + 138
+ t139 := x + 139
+ t140 := x + 140
+ t141 := x + 141
+ t142 := x + 142
+ t143 := x + 143
+ t144 := x + 144
+ t145 := x + 145
+ t146 := x + 146
+ t147 := x + 147
+ t148 := x + 148
+ t149 := x + 149
+ t150 := x + 150
+ t151 := x + 151
+ t152 := x + 152
+ t153 := x + 153
+ t154 := x + 154
+ t155 := x + 155
+ t156 := x + 156
+ t157 := x + 157
+ t158 := x + 158
+ t159 := x + 159
+ t160 := x + 160
+ t161 := x + 161
+ t162 := x + 162
+ t163 := x + 163
+ t164 := x + 164
+ t165 := x + 165
+ t166 := x + 166
+ t167 := x + 167
+ t168 := x + 168
+ t169 := x + 169
+ t170 := x + 170
+ t171 := x + 171
+ t172 := x + 172
+ t173 := x + 173
+ t174 := x + 174
+ t175 := x + 175
+ t176 := x + 176
+ t177 := x + 177
+ t178 := x + 178
+ t179 := x + 179
+ t180 := x + 180
+ t181 := x + 181
+ t182 := x + 182
+ t183 := x + 183
+ t184 := x + 184
+ t185 := x + 185
+ t186 := x + 186
+ t187 := x + 187
+ t188 := x + 188
+ t189 := x + 189
+ t190 := x + 190
+ t191 := x + 191
+ t192 := x + 192
+ t193 := x + 193
+ t194 := x + 194
+ t195 := x + 195
+ t196 := x + 196
+ t197 := x + 197
+ t198 := x + 198
+ t199 := x + 199
+ t200 := x + 200
+ t201 := x + 201
+ t202 := x + 202
+ t203 := x + 203
+ t204 := x + 204
+ t205 := x + 205
+ t206 := x + 206
+ t207 := x + 207
+ t208 := x + 208
+ t209 := x + 209
+ t210 := x + 210
+ t211 := x + 211
+ t212 := x + 212
+ t213 := x + 213
+ t214 := x + 214
+ t215 := x + 215
+ t216 := x + 216
+ t217 := x + 217
+ t218 := x + 218
+ t219 := x + 219
+ t220 := x + 220
+ t221 := x + 221
+ t222 := x + 222
+ t223 := x + 223
+ t224 := x + 224
+ t225 := x + 225
+ t226 := x + 226
+ t227 := x + 227
+ t228 := x + 228
+ t229 := x + 229
+ t230 := x + 230
+ t231 := x + 231
+ t232 := x + 232
+ t233 := x + 233
+ t234 := x + 234
+ t235 := x + 235
+ t236 := x + 236
+ t237 := x + 237
+ t238 := x + 238
+ t239 := x + 239
+ t240 := x + 240
+ t241 := x + 241
+ t242 := x + 242
+ t243 := x + 243
+ t244 := x + 244
+ t245 := x + 245
+ t246 := x + 246
+ t247 := x + 247
+ t248 := x + 248
+ t249 := x + 249
+ return t0 + t1 + t2 + t3 + t4 + t5 + t6 + t7 + t8 + t9 + t10 + t11 + t12 + t13 + t14 + t15 + t16 + t17 + t18 + t19 + t20 + t21 + t22 + t23 + t24 + t25 + t26 + t27 + t28 + t29 + t30 + t31 + t32 + t33 + t34 + t35 + t36 + t37 + t38 + t39 + t40 + t41 + t42 + t43 + t44 + t45 + t46 + t47 + t48 + t49 + t50 + t51 + t52 + t53 + t54 + t55 + t56 + t57 + t58 + t59 + t60 + t61 + t62 + t63 + t64 + t65 + t66 + t67 + t68 + t69 + t70 + t71 + t72 + t73 + t74 + t75 + t76 + t77 + t78 + t79 + t80 + t81 + t82 + t83 + t84 + t85 + t86 + t87 + t88 + t89 + t90 + t91 + t92 + t93 + t94 + t95 + t96 + t97 + t98 + t99 + t100 + t101 + t102 + t103 + t104 + t105 + t106 + t107 + t108 + t109 + t110 + t111 + t112 + t113 + t114 + t115 + t116 + t117 + t118 + t119 + t120 + t121 + t122 + t123 + t124 + t125 + t126 + t127 + t128 + t129 + t130 + t131 + t132 + t133 + t134 + t135 + t136 + t137 + t138 + t139 + t140 + t141 + t142 + t143 + t144 + t145 + t146 + t147 + t148 + t149 + t150 + t151 + t152 + t153 + t154 + t155 + t156 + t157 + t158 + t159 + t160 + t161 + t162 + t163 + t164 + t165 + t166 + t167 + t168 + t169 + t170 + t171 + t172 + t173 + t174 + t175 + t176 + t177 + t178 + t179 + t180 + t181 + t182 + t183 + t184 + t185 + t186 + t187 + t188 + t189 + t190 + t191 + t192 + t193 + t194 + t195 + t196 + t197 + t198 + t199 + t200 + t201 + t202 + t203 + t204 + t205 + t206 + t207 + t208 + t209 + t210 + t211 + t212 + t213 + t214 + t215 + t216 + t217 + t218 + t219 + t220 + t221 + t222 + t223 + t224 + t225 + t226 + t227 + t228 + t229 + t230 + t231 + t232 + t233 + t234 + t235 + t236 + t237 + t238 + t239 + t240 + t241 + t242 + t243 + t244 + t245 + t246 + t247 + t248 + t249
+}
+func h19(x: int) -> int {
+ t0 := x + 0
+ t1 := x + 1
+ t2 := x + 2
+ t3 := x + 3
+ t4 := x + 4
+ t5 := x + 5
+ t6 := x + 6
+ t7 := x + 7
+ t8 := x + 8
+ t9 := x + 9
+ t10 := x + 10
+ t11 := x + 11
+ t12 := x + 12
+ t13 := x + 13
+ t14 := x + 14
+ t15 := x + 15
+ t16 := x + 16
+ t17 := x + 17
+ t18 := x + 18
+ t19 := x + 19
+ t20 := x + 20
+ t21 := x + 21
+ t22 := x + 22
+ t23 := x + 23
+ t24 := x + 24
+ t25 := x + 25
+ t26 := x + 26
+ t27 := x + 27
+ t28 := x + 28
+ t29 := x + 29
+ t30 := x + 30
+ t31 := x + 31
+ t32 := x + 32
+ t33 := x + 33
+ t34 := x + 34
+ t35 := x + 35
+ t36 := x + 36
+ t37 := x + 37
+ t38 := x + 38
+ t39 := x + 39
+ t40 := x + 40
+ t41 := x + 41
+ t42 := x + 42
+ t43 := x + 43
+ t44 := x + 44
+ t45 := x + 45
+ t46 := x + 46
+ t47 := x + 47
+ t48 := x + 48
+ t49 := x + 49
+ t50 := x + 50
+ t51 := x + 51
+ t52 := x + 52
+ t53 := x + 53
+ t54 := x + 54
+ t55 := x + 55
+ t56 := x + 56
+ t57 := x + 57
+ t58 := x + 58
+ t59 := x + 59
+ t60 := x + 60
+ t61 := x + 61
+ t62 := x + 62
+ t63 := x + 63
+ t64 := x + 64
+ t65 := x + 65
+ t66 := x + 66
+ t67 := x + 67
+ t68 := x + 68
+ t69 := x + 69
+ t70 := x + 70
+ t71 := x + 71
+ t72 := x + 72
+ t73 := x + 73
+ t74 := x + 74
+ t75 := x + 75
+ t76 := x + 76
+ t77 := x + 77
+ t78 := x + 78
+ t79 := x + 79
+ t80 := x + 80
+ t81 := x + 81
+ t82 := x + 82
+ t83 := x + 83
+ t84 := x + 84
+ t85 := x + 85
+ t86 := x + 86
+ t87 := x + 87
+ t88 := x + 88
+ t89 := x + 89
+ t90 := x + 90
+ t91 := x + 91
+ t92 := x + 92
+ t93 := x + 93
+ t94 := x + 94
+ t95 := x + 95
+ t96 := x + 96
+ t97 := x + 97
+ t98 := x + 98
+ t99 := x + 99
+ t100 := x + 100
+ t101 := x + 101
+ t102 := x + 102
+ t103 := x + 103
+ t104 := x + 104
+ t105 := x + 105
+ t106 := x + 106
+ t107 := x + 107
+ t108 := x + 108
+ t109 := x + 109
+ t110 := x + 110
+ t111 := x + 111
+ t112 := x + 112
+ t113 := x + 113
+ t114 := x + 114
+ t115 := x + 115
+ t116 := x + 116
+ t117 := x + 117
+ t118 := x + 118
+ t119 := x + 119
+ t120 := x + 120
+ t121 := x + 121
+ t122 := x + 122
+ t123 := x + 123
+ t124 := x + 124
+ t125 := x + 125
+ t126 := x + 126
+ t127 := x + 127
+ t128 := x + 128
+ t129 := x + 129
+ t130 := x + 130
+ t131 := x + 131
+ t132 := x + 132
+ t133 := x + 133
+ t134 := x + 134
+ t135 := x + 135
+ t136 := x + 136
+ t137 := x + 137
+ t138 := x + 138
+ t139 := x + 139
+ t140 := x + 140
+ t141 := x + 141
+ t142 := x + 142
+ t143 := x + 143
+ t144 := x + 144
+ t145 := x + 145
+ t146 := x + 146
+ t147 := x + 147
+ t148 := x + 148
+ t149 := x + 149
+ t150 := x + 150
+ t151 := x + 151
+ t152 := x + 152
+ t153 := x + 153
+ t154 := x + 154
+ t155 := x + 155
+ t156 := x + 156
+ t157 := x + 157
+ t158 := x + 158
+ t159 := x + 159
+ t160 := x + 160
+ t161 := x + 161
+ t162 := x + 162
+ t163 := x + 163
+ t164 := x + 164
+ t165 := x + 165
+ t166 := x + 166
+ t167 := x + 167
+ t168 := x + 168
+ t169 := x + 169
+ t170 := x + 170
+ t171 := x + 171
+ t172 := x + 172
+ t173 := x + 173
+ t174 := x + 174
+ t175 := x + 175
+ t176 := x + 176
+ t177 := x + 177
+ t178 := x + 178
+ t179 := x + 179
+ t180 := x + 180
+ t181 := x + 181
+ t182 := x + 182
+ t183 := x + 183
+ t184 := x + 184
+ t185 := x + 185
+ t186 := x + 186
+ t187 := x + 187
+ t188 := x + 188
+ t189 := x + 189
+ t190 := x + 190
+ t191 := x + 191
+ t192 := x + 192
+ t193 := x + 193
+ t194 := x + 194
+ t195 := x + 195
+ t196 := x + 196
+ t197 := x + 197
+ t198 := x + 198
+ t199 := x + 199
+ t200 := x + 200
+ t201 := x + 201
+ t202 := x + 202
+ t203 := x + 203
+ t204 := x + 204
+ t205 := x + 205
+ t206 := x + 206
+ t207 := x + 207
+ t208 := x + 208
+ t209 := x + 209
+ t210 := x + 210
+ t211 := x + 211
+ t212 := x + 212
+ t213 := x + 213
+ t214 := x + 214
+ t215 := x + 215
+ t216 := x + 216
+ t217 := x + 217
+ t218 := x + 218
+ t219 := x + 219
+ t220 := x + 220
+ t221 := x + 221
+ t222 := x + 222
+ t223 := x + 223
+ t224 := x + 224
+ t225 := x + 225
+ t226 := x + 226
+ t227 := x + 227
+ t228 := x + 228
+ t229 := x + 229
+ t230 := x + 230
+ t231 := x + 231
+ t232 := x + 232
+ t233 := x + 233
+ t234 := x + 234
+ t235 := x + 235
+ t236 := x + 236
+ t237 := x + 237
+ t238 := x + 238
+ t239 := x + 239
+ t240 := x + 240
+ t241 := x + 241
+ t242 := x + 242
+ t243 := x + 243
+ t244 := x + 244
+ t245 := x + 245
+ t246 := x + 246
+ t247 := x + 247
+ t248 := x + 248
+ t249 := x + 249
+ return t0 + t1 + t2 + t3 + t4 + t5 + t6 + t7 + t8 + t9 + t10 + t11 + t12 + t13 + t14 + t15 + t16 + t17 + t18 + t19 + t20 + t21 + t22 + t23 + t24 + t25 + t26 + t27 + t28 + t29 + t30 + t31 + t32 + t33 + t34 + t35 + t36 + t37 + t38 + t39 + t40 + t41 + t42 + t43 + t44 + t45 + t46 + t47 + t48 + t49 + t50 + t51 + t52 + t53 + t54 + t55 + t56 + t57 + t58 + t59 + t60 + t61 + t62 + t63 + t64 + t65 + t66 + t67 + t68 + t69 + t70 + t71 + t72 + t73 + t74 + t75 + t76 + t77 + t78 + t79 + t80 + t81 + t82 + t83 + t84 + t85 + t86 + t87 + t88 + t89 + t90 + t91 + t92 + t93 + t94 + t95 + t96 + t97 + t98 + t99 + t100 + t101 + t102 + t103 + t104 + t105 + t106 + t107 + t108 + t109 + t110 + t111 + t112 + t113 + t114 + t115 + t116 + t117 + t118 + t119 + t120 + t121 + t122 + t123 + t124 + t125 + t126 + t127 + t128 + t129 + t130 + t131 + t132 + t133 + t134 + t135 + t136 + t137 + t138 + t139 + t140 + t141 + t142 + t143 + t144 + t145 + t146 + t147 + t148 + t149 + t150 + t151 + t152 + t153 + t154 + t155 + t156 + t157 + t158 + t159 + t160 + t161 + t162 + t163 + t164 + t165 + t166 + t167 + t168 + t169 + t170 + t171 + t172 + t173 + t174 + t175 + t176 + t177 + t178 + t179 + t180 + t181 + t182 + t183 + t184 + t185 + t186 + t187 + t188 + t189 + t190 + t191 + t192 + t193 + t194 + t195 + t196 + t197 + t198 + t199 + t200 + t201 + t202 + t203 + t204 + t205 + t206 + t207 + t208 + t209 + t210 + t211 + t212 + t213 + t214 + t215 + t216 + t217 + t218 + t219 + t220 + t221 + t222 + t223 + t224 + t225 + t226 + t227 + t228 + t229 + t230 + t231 + t232 + t233 + t234 + t235 + t236 + t237 + t238 + t239 + t240 + t241 + t242 + t243 + t244 + t245 + t246 + t247 + t248 + t249
+}
+func h20(x: int) -> int {
+ t0 := x + 0
+ t1 := x + 1
+ t2 := x + 2
+ t3 := x + 3
+ t4 := x + 4
+ t5 := x + 5
+ t6 := x + 6
+ t7 := x + 7
+ t8 := x + 8
+ t9 := x + 9
+ t10 := x + 10
+ t11 := x + 11
+ t12 := x + 12
+ t13 := x + 13
+ t14 := x + 14
+ t15 := x + 15
+ t16 := x + 16
+ t17 := x + 17
+ t18 := x + 18
+ t19 := x + 19
+ t20 := x + 20
+ t21 := x + 21
+ t22 := x + 22
+ t23 := x + 23
+ t24 := x + 24
+ t25 := x + 25
+ t26 := x + 26
+ t27 := x + 27
+ t28 := x + 28
+ t29 := x + 29
+ t30 := x + 30
+ t31 := x + 31
+ t32 := x + 32
+ t33 := x + 33
+ t34 := x + 34
+ t35 := x + 35
+ t36 := x + 36
+ t37 := x + 37
+ t38 := x + 38
+ t39 := x + 39
+ t40 := x + 40
+ t41 := x + 41
+ t42 := x + 42
+ t43 := x + 43
+ t44 := x + 44
+ t45 := x + 45
+ t46 := x + 46
+ t47 := x + 47
+ t48 := x + 48
+ t49 := x + 49
+ t50 := x + 50
+ t51 := x + 51
+ t52 := x + 52
+ t53 := x + 53
+ t54 := x + 54
+ t55 := x + 55
+ t56 := x + 56
+ t57 := x + 57
+ t58 := x + 58
+ t59 := x + 59
+ t60 := x + 60
+ t61 := x + 61
+ t62 := x + 62
+ t63 := x + 63
+ t64 := x + 64
+ t65 := x + 65
+ t66 := x + 66
+ t67 := x + 67
+ t68 := x + 68
+ t69 := x + 69
+ t70 := x + 70
+ t71 := x + 71
+ t72 := x + 72
+ t73 := x + 73
+ t74 := x + 74
+ t75 := x + 75
+ t76 := x + 76
+ t77 := x + 77
+ t78 := x + 78
+ t79 := x + 79
+ t80 := x + 80
+ t81 := x + 81
+ t82 := x + 82
+ t83 := x + 83
+ t84 := x + 84
+ t85 := x + 85
+ t86 := x + 86
+ t87 := x + 87
+ t88 := x + 88
+ t89 := x + 89
+ t90 := x + 90
+ t91 := x + 91
+ t92 := x + 92
+ t93 := x + 93
+ t94 := x + 94
+ t95 := x + 95
+ t96 := x + 96
+ t97 := x + 97
+ t98 := x + 98
+ t99 := x + 99
+ t100 := x + 100
+ t101 := x + 101
+ t102 := x + 102
+ t103 := x + 103
+ t104 := x + 104
+ t105 := x + 105
+ t106 := x + 106
+ t107 := x + 107
+ t108 := x + 108
+ t109 := x + 109
+ t110 := x + 110
+ t111 := x + 111
+ t112 := x + 112
+ t113 := x + 113
+ t114 := x + 114
+ t115 := x + 115
+ t116 := x + 116
+ t117 := x + 117
+ t118 := x + 118
+ t119 := x + 119
+ t120 := x + 120
+ t121 := x + 121
+ t122 := x + 122
+ t123 := x + 123
+ t124 := x + 124
+ t125 := x + 125
+ t126 := x + 126
+ t127 := x + 127
+ t128 := x + 128
+ t129 := x + 129
+ t130 := x + 130
+ t131 := x + 131
+ t132 := x + 132
+ t133 := x + 133
+ t134 := x + 134
+ t135 := x + 135
+ t136 := x + 136
+ t137 := x + 137
+ t138 := x + 138
+ t139 := x + 139
+ t140 := x + 140
+ t141 := x + 141
+ t142 := x + 142
+ t143 := x + 143
+ t144 := x + 144
+ t145 := x + 145
+ t146 := x + 146
+ t147 := x + 147
+ t148 := x + 148
+ t149 := x + 149
+ t150 := x + 150
+ t151 := x + 151
+ t152 := x + 152
+ t153 := x + 153
+ t154 := x + 154
+ t155 := x + 155
+ t156 := x + 156
+ t157 := x + 157
+ t158 := x + 158
+ t159 := x + 159
+ t160 := x + 160
+ t161 := x + 161
+ t162 := x + 162
+ t163 := x + 163
+ t164 := x + 164
+ t165 := x + 165
+ t166 := x + 166
+ t167 := x + 167
+ t168 := x + 168
+ t169 := x + 169
+ t170 := x + 170
+ t171 := x + 171
+ t172 := x + 172
+ t173 := x + 173
+ t174 := x + 174
+ t175 := x + 175
+ t176 := x + 176
+ t177 := x + 177
+ t178 := x + 178
+ t179 := x + 179
+ t180 := x + 180
+ t181 := x + 181
+ t182 := x + 182
+ t183 := x + 183
+ t184 := x + 184
+ t185 := x + 185
+ t186 := x + 186
+ t187 := x + 187
+ t188 := x + 188
+ t189 := x + 189
+ t190 := x + 190
+ t191 := x + 191
+ t192 := x + 192
+ t193 := x + 193
+ t194 := x + 194
+ t195 := x + 195
+ t196 := x + 196
+ t197 := x + 197
+ t198 := x + 198
+ t199 := x + 199
+ t200 := x + 200
+ t201 := x + 201
+ t202 := x + 202
+ t203 := x + 203
+ t204 := x + 204
+ t205 := x + 205
+ t206 := x + 206
+ t207 := x + 207
+ t208 := x + 208
+ t209 := x + 209
+ t210 := x + 210
+ t211 := x + 211
+ t212 := x + 212
+ t213 := x + 213
+ t214 := x + 214
+ t215 := x + 215
+ t216 := x + 216
+ t217 := x + 217
+ t218 := x + 218
+ t219 := x + 219
+ t220 := x + 220
+ t221 := x + 221
+ t222 := x + 222
+ t223 := x + 223
+ t224 := x + 224
+ t225 := x + 225
+ t226 := x + 226
+ t227 := x + 227
+ t228 := x + 228
+ t229 := x + 229
+ t230 := x + 230
+ t231 := x + 231
+ t232 := x + 232
+ t233 := x + 233
+ t234 := x + 234
+ t235 := x + 235
+ t236 := x + 236
+ t237 := x + 237
+ t238 := x + 238
+ t239 := x + 239
+ t240 := x + 240
+ t241 := x + 241
+ t242 := x + 242
+ t243 := x + 243
+ t244 := x + 244
+ t245 := x + 245
+ t246 := x + 246
+ t247 := x + 247
+ t248 := x + 248
+ t249 := x + 249
+ return t0 + t1 + t2 + t3 + t4 + t5 + t6 + t7 + t8 + t9 + t10 + t11 + t12 + t13 + t14 + t15 + t16 + t17 + t18 + t19 + t20 + t21 + t22 + t23 + t24 + t25 + t26 + t27 + t28 + t29 + t30 + t31 + t32 + t33 + t34 + t35 + t36 + t37 + t38 + t39 + t40 + t41 + t42 + t43 + t44 + t45 + t46 + t47 + t48 + t49 + t50 + t51 + t52 + t53 + t54 + t55 + t56 + t57 + t58 + t59 + t60 + t61 + t62 + t63 + t64 + t65 + t66 + t67 + t68 + t69 + t70 + t71 + t72 + t73 + t74 + t75 + t76 + t77 + t78 + t79 + t80 + t81 + t82 + t83 + t84 + t85 + t86 + t87 + t88 + t89 + t90 + t91 + t92 + t93 + t94 + t95 + t96 + t97 + t98 + t99 + t100 + t101 + t102 + t103 + t104 + t105 + t106 + t107 + t108 + t109 + t110 + t111 + t112 + t113 + t114 + t115 + t116 + t117 + t118 + t119 + t120 + t121 + t122 + t123 + t124 + t125 + t126 + t127 + t128 + t129 + t130 + t131 + t132 + t133 + t134 + t135 + t136 + t137 + t138 + t139 + t140 + t141 + t142 + t143 + t144 + t145 + t146 + t147 + t148 + t149 + t150 + t151 + t152 + t153 + t154 + t155 + t156 + t157 + t158 + t159 + t160 + t161 + t162 + t163 + t164 + t165 + t166 + t167 + t168 + t169 + t170 + t171 + t172 + t173 + t174 + t175 + t176 + t177 + t178 + t179 + t180 + t181 + t182 + t183 + t184 + t185 + t186 + t187 + t188 + t189 + t190 + t191 + t192 + t193 + t194 + t195 + t196 + t197 + t198 + t199 + t200 + t201 + t202 + t203 + t204 + t205 + t206 + t207 + t208 + t209 + t210 + t211 + t212 + t213 + t214 + t215 + t216 + t217 + t218 + t219 + t220 + t221 + t222 + t223 + t224 + t225 + t226 + t227 + t228 + t229 + t230 + t231 + t232 + t233 + t234 + t235 + t236 + t237 + t238 + t239 + t240 + t241 + t242 + t243 + t244 + t245 + t246 + t247 + t248 + t249
+}
+func h21(x: int) -> int {
+ t0 := x + 0
+ t1 := x + 1
+ t2 := x + 2
+ t3 := x + 3
+ t4 := x + 4
+ t5 := x + 5
+ t6 := x + 6
+ t7 := x + 7
+ t8 := x + 8
+ t9 := x + 9
+ t10 := x + 10
+ t11 := x + 11
+ t12 := x + 12
+ t13 := x + 13
+ t14 := x + 14
+ t15 := x + 15
+ t16 := x + 16
+ t17 := x + 17
+ t18 := x + 18
+ t19 := x + 19
+ t20 := x + 20
+ t21 := x + 21
+ t22 := x + 22
+ t23 := x + 23
+ t24 := x + 24
+ t25 := x + 25
+ t26 := x + 26
+ t27 := x + 27
+ t28 := x + 28
+ t29 := x + 29
+ t30 := x + 30
+ t31 := x + 31
+ t32 := x + 32
+ t33 := x + 33
+ t34 := x + 34
+ t35 := x + 35
+ t36 := x + 36
+ t37 := x + 37
+ t38 := x + 38
+ t39 := x + 39
+ t40 := x + 40
+ t41 := x + 41
+ t42 := x + 42
+ t43 := x + 43
+ t44 := x + 44
+ t45 := x + 45
+ t46 := x + 46
+ t47 := x + 47
+ t48 := x + 48
+ t49 := x + 49
+ t50 := x + 50
+ t51 := x + 51
+ t52 := x + 52
+ t53 := x + 53
+ t54 := x + 54
+ t55 := x + 55
+ t56 := x + 56
+ t57 := x + 57
+ t58 := x + 58
+ t59 := x + 59
+ t60 := x + 60
+ t61 := x + 61
+ t62 := x + 62
+ t63 := x + 63
+ t64 := x + 64
+ t65 := x + 65
+ t66 := x + 66
+ t67 := x + 67
+ t68 := x + 68
+ t69 := x + 69
+ t70 := x + 70
+ t71 := x + 71
+ t72 := x + 72
+ t73 := x + 73
+ t74 := x + 74
+ t75 := x + 75
+ t76 := x + 76
+ t77 := x + 77
+ t78 := x + 78
+ t79 := x + 79
+ t80 := x + 80
+ t81 := x + 81
+ t82 := x + 82
+ t83 := x + 83
+ t84 := x + 84
+ t85 := x + 85
+ t86 := x + 86
+ t87 := x + 87
+ t88 := x + 88
+ t89 := x + 89
+ t90 := x + 90
+ t91 := x + 91
+ t92 := x + 92
+ t93 := x + 93
+ t94 := x + 94
+ t95 := x + 95
+ t96 := x + 96
+ t97 := x + 97
+ t98 := x + 98
+ t99 := x + 99
+ t100 := x + 100
+ t101 := x + 101
+ t102 := x + 102
+ t103 := x + 103
+ t104 := x + 104
+ t105 := x + 105
+ t106 := x + 106
+ t107 := x + 107
+ t108 := x + 108
+ t109 := x + 109
+ t110 := x + 110
+ t111 := x + 111
+ t112 := x + 112
+ t113 := x + 113
+ t114 := x + 114
+ t115 := x + 115
+ t116 := x + 116
+ t117 := x + 117
+ t118 := x + 118
+ t119 := x + 119
+ t120 := x + 120
+ t121 := x + 121
+ t122 := x + 122
+ t123 := x + 123
+ t124 := x + 124
+ t125 := x + 125
+ t126 := x + 126
+ t127 := x + 127
+ t128 := x + 128
+ t129 := x + 129
+ t130 := x + 130
+ t131 := x + 131
+ t132 := x + 132
+ t133 := x + 133
+ t134 := x + 134
+ t135 := x + 135
+ t136 := x + 136
+ t137 := x + 137
+ t138 := x + 138
+ t139 := x + 139
+ t140 := x + 140
+ t141 := x + 141
+ t142 := x + 142
+ t143 := x + 143
+ t144 := x + 144
+ t145 := x + 145
+ t146 := x + 146
+ t147 := x + 147
+ t148 := x + 148
+ t149 := x + 149
+ t150 := x + 150
+ t151 := x + 151
+ t152 := x + 152
+ t153 := x + 153
+ t154 := x + 154
+ t155 := x + 155
+ t156 := x + 156
+ t157 := x + 157
+ t158 := x + 158
+ t159 := x + 159
+ t160 := x + 160
+ t161 := x + 161
+ t162 := x + 162
+ t163 := x + 163
+ t164 := x + 164
+ t165 := x + 165
+ t166 := x + 166
+ t167 := x + 167
+ t168 := x + 168
+ t169 := x + 169
+ t170 := x + 170
+ t171 := x + 171
+ t172 := x + 172
+ t173 := x + 173
+ t174 := x + 174
+ t175 := x + 175
+ t176 := x + 176
+ t177 := x + 177
+ t178 := x + 178
+ t179 := x + 179
+ t180 := x + 180
+ t181 := x + 181
+ t182 := x + 182
+ t183 := x + 183
+ t184 := x + 184
+ t185 := x + 185
+ t186 := x + 186
+ t187 := x + 187
+ t188 := x + 188
+ t189 := x + 189
+ t190 := x + 190
+ t191 := x + 191
+ t192 := x + 192
+ t193 := x + 193
+ t194 := x + 194
+ t195 := x + 195
+ t196 := x + 196
+ t197 := x + 197
+ t198 := x + 198
+ t199 := x + 199
+ t200 := x + 200
+ t201 := x + 201
+ t202 := x + 202
+ t203 := x + 203
+ t204 := x + 204
+ t205 := x + 205
+ t206 := x + 206
+ t207 := x + 207
+ t208 := x + 208
+ t209 := x + 209
+ t210 := x + 210
+ t211 := x + 211
+ t212 := x + 212
+ t213 := x + 213
+ t214 := x + 214
+ t215 := x + 215
+ t216 := x + 216
+ t217 := x + 217
+ t218 := x + 218
+ t219 := x + 219
+ t220 := x + 220
+ t221 := x + 221
+ t222 := x + 222
+ t223 := x + 223
+ t224 := x + 224
+ t225 := x + 225
+ t226 := x + 226
+ t227 := x + 227
+ t228 := x + 228
+ t229 := x + 229
+ t230 := x + 230
+ t231 := x + 231
+ t232 := x + 232
+ t233 := x + 233
+ t234 := x + 234
+ t235 := x + 235
+ t236 := x + 236
+ t237 := x + 237
+ t238 := x + 238
+ t239 := x + 239
+ t240 := x + 240
+ t241 := x + 241
+ t242 := x + 242
+ t243 := x + 243
+ t244 := x + 244
+ t245 := x + 245
+ t246 := x + 246
+ t247 := x + 247
+ t248 := x + 248
+ t249 := x + 249
+ return t0 + t1 + t2 + t3 + t4 + t5 + t6 + t7 + t8 + t9 + t10 + t11 + t12 + t13 + t14 + t15 + t16 + t17 + t18 + t19 + t20 + t21 + t22 + t23 + t24 + t25 + t26 + t27 + t28 + t29 + t30 + t31 + t32 + t33 + t34 + t35 + t36 + t37 + t38 + t39 + t40 + t41 + t42 + t43 + t44 + t45 + t46 + t47 + t48 + t49 + t50 + t51 + t52 + t53 + t54 + t55 + t56 + t57 + t58 + t59 + t60 + t61 + t62 + t63 + t64 + t65 + t66 + t67 + t68 + t69 + t70 + t71 + t72 + t73 + t74 + t75 + t76 + t77 + t78 + t79 + t80 + t81 + t82 + t83 + t84 + t85 + t86 + t87 + t88 + t89 + t90 + t91 + t92 + t93 + t94 + t95 + t96 + t97 + t98 + t99 + t100 + t101 + t102 + t103 + t104 + t105 + t106 + t107 + t108 + t109 + t110 + t111 + t112 + t113 + t114 + t115 + t116 + t117 + t118 + t119 + t120 + t121 + t122 + t123 + t124 + t125 + t126 + t127 + t128 + t129 + t130 + t131 + t132 + t133 + t134 + t135 + t136 + t137 + t138 + t139 + t140 + t141 + t142 + t143 + t144 + t145 + t146 + t147 + t148 + t149 + t150 + t151 + t152 + t153 + t154 + t155 + t156 + t157 + t158 + t159 + t160 + t161 + t162 + t163 + t164 + t165 + t166 + t167 + t168 + t169 + t170 + t171 + t172 + t173 + t174 + t175 + t176 + t177 + t178 + t179 + t180 + t181 + t182 + t183 + t184 + t185 + t186 + t187 + t188 + t189 + t190 + t191 + t192 + t193 + t194 + t195 + t196 + t197 + t198 + t199 + t200 + t201 + t202 + t203 + t204 + t205 + t206 + t207 + t208 + t209 + t210 + t211 + t212 + t213 + t214 + t215 + t216 + t217 + t218 + t219 + t220 + t221 + t222 + t223 + t224 + t225 + t226 + t227 + t228 + t229 + t230 + t231 + t232 + t233 + t234 + t235 + t236 + t237 + t238 + t239 + t240 + t241 + t242 + t243 + t244 + t245 + t246 + t247 + t248 + t249
+}
+func h22(x: int) -> int {
+ t0 := x + 0
+ t1 := x + 1
+ t2 := x + 2
+ t3 := x + 3
+ t4 := x + 4
+ t5 := x + 5
+ t6 := x + 6
+ t7 := x + 7
+ t8 := x + 8
+ t9 := x + 9
+ t10 := x + 10
+ t11 := x + 11
+ t12 := x + 12
+ t13 := x + 13
+ t14 := x + 14
+ t15 := x + 15
+ t16 := x + 16
+ t17 := x + 17
+ t18 := x + 18
+ t19 := x + 19
+ t20 := x + 20
+ t21 := x + 21
+ t22 := x + 22
+ t23 := x + 23
+ t24 := x + 24
+ t25 := x + 25
+ t26 := x + 26
+ t27 := x + 27
+ t28 := x + 28
+ t29 := x + 29
+ t30 := x + 30
+ t31 := x + 31
+ t32 := x + 32
+ t33 := x + 33
+ t34 := x + 34
+ t35 := x + 35
+ t36 := x + 36
+ t37 := x + 37
+ t38 := x + 38
+ t39 := x + 39
+ t40 := x + 40
+ t41 := x + 41
+ t42 := x + 42
+ t43 := x + 43
+ t44 := x + 44
+ t45 := x + 45
+ t46 := x + 46
+ t47 := x + 47
+ t48 := x + 48
+ t49 := x + 49
+ t50 := x + 50
+ t51 := x + 51
+ t52 := x + 52
+ t53 := x + 53
+ t54 := x + 54
+ t55 := x + 55
+ t56 := x + 56
+ t57 := x + 57
+ t58 := x + 58
+ t59 := x + 59
+ t60 := x + 60
+ t61 := x + 61
+ t62 := x + 62
+ t63 := x + 63
+ t64 := x + 64
+ t65 := x + 65
+ t66 := x + 66
+ t67 := x + 67
+ t68 := x + 68
+ t69 := x + 69
+ t70 := x + 70
+ t71 := x + 71
+ t72 := x + 72
+ t73 := x + 73
+ t74 := x + 74
+ t75 := x + 75
+ t76 := x + 76
+ t77 := x + 77
+ t78 := x + 78
+ t79 := x + 79
+ t80 := x + 80
+ t81 := x + 81
+ t82 := x + 82
+ t83 := x + 83
+ t84 := x + 84
+ t85 := x + 85
+ t86 := x + 86
+ t87 := x + 87
+ t88 := x + 88
+ t89 := x + 89
+ t90 := x + 90
+ t91 := x + 91
+ t92 := x + 92
+ t93 := x + 93
+ t94 := x + 94
+ t95 := x + 95
+ t96 := x + 96
+ t97 := x + 97
+ t98 := x + 98
+ t99 := x + 99
+ t100 := x + 100
+ t101 := x + 101
+ t102 := x + 102
+ t103 := x + 103
+ t104 := x + 104
+ t105 := x + 105
+ t106 := x + 106
+ t107 := x + 107
+ t108 := x + 108
+ t109 := x + 109
+ t110 := x + 110
+ t111 := x + 111
+ t112 := x + 112
+ t113 := x + 113
+ t114 := x + 114
+ t115 := x + 115
+ t116 := x + 116
+ t117 := x + 117
+ t118 := x + 118
+ t119 := x + 119
+ t120 := x + 120
+ t121 := x + 121
+ t122 := x + 122
+ t123 := x + 123
+ t124 := x + 124
+ t125 := x + 125
+ t126 := x + 126
+ t127 := x + 127
+ t128 := x + 128
+ t129 := x + 129
+ t130 := x + 130
+ t131 := x + 131
+ t132 := x + 132
+ t133 := x + 133
+ t134 := x + 134
+ t135 := x + 135
+ t136 := x + 136
+ t137 := x + 137
+ t138 := x + 138
+ t139 := x + 139
+ t140 := x + 140
+ t141 := x + 141
+ t142 := x + 142
+ t143 := x + 143
+ t144 := x + 144
+ t145 := x + 145
+ t146 := x + 146
+ t147 := x + 147
+ t148 := x + 148
+ t149 := x + 149
+ t150 := x + 150
+ t151 := x + 151
+ t152 := x + 152
+ t153 := x + 153
+ t154 := x + 154
+ t155 := x + 155
+ t156 := x + 156
+ t157 := x + 157
+ t158 := x + 158
+ t159 := x + 159
+ t160 := x + 160
+ t161 := x + 161
+ t162 := x + 162
+ t163 := x + 163
+ t164 := x + 164
+ t165 := x + 165
+ t166 := x + 166
+ t167 := x + 167
+ t168 := x + 168
+ t169 := x + 169
+ t170 := x + 170
+ t171 := x + 171
+ t172 := x + 172
+ t173 := x + 173
+ t174 := x + 174
+ t175 := x + 175
+ t176 := x + 176
+ t177 := x + 177
+ t178 := x + 178
+ t179 := x + 179
+ t180 := x + 180
+ t181 := x + 181
+ t182 := x + 182
+ t183 := x + 183
+ t184 := x + 184
+ t185 := x + 185
+ t186 := x + 186
+ t187 := x + 187
+ t188 := x + 188
+ t189 := x + 189
+ t190 := x + 190
+ t191 := x + 191
+ t192 := x + 192
+ t193 := x + 193
+ t194 := x + 194
+ t195 := x + 195
+ t196 := x + 196
+ t197 := x + 197
+ t198 := x + 198
+ t199 := x + 199
+ t200 := x + 200
+ t201 := x + 201
+ t202 := x + 202
+ t203 := x + 203
+ t204 := x + 204
+ t205 := x + 205
+ t206 := x + 206
+ t207 := x + 207
+ t208 := x + 208
+ t209 := x + 209
+ t210 := x + 210
+ t211 := x + 211
+ t212 := x + 212
+ t213 := x + 213
+ t214 := x + 214
+ t215 := x + 215
+ t216 := x + 216
+ t217 := x + 217
+ t218 := x + 218
+ t219 := x + 219
+ t220 := x + 220
+ t221 := x + 221
+ t222 := x + 222
+ t223 := x + 223
+ t224 := x + 224
+ t225 := x + 225
+ t226 := x + 226
+ t227 := x + 227
+ t228 := x + 228
+ t229 := x + 229
+ t230 := x + 230
+ t231 := x + 231
+ t232 := x + 232
+ t233 := x + 233
+ t234 := x + 234
+ t235 := x + 235
+ t236 := x + 236
+ t237 := x + 237
+ t238 := x + 238
+ t239 := x + 239
+ t240 := x + 240
+ t241 := x + 241
+ t242 := x + 242
+ t243 := x + 243
+ t244 := x + 244
+ t245 := x + 245
+ t246 := x + 246
+ t247 := x + 247
+ t248 := x + 248
+ t249 := x + 249
+ return t0 + t1 + t2 + t3 + t4 + t5 + t6 + t7 + t8 + t9 + t10 + t11 + t12 + t13 + t14 + t15 + t16 + t17 + t18 + t19 + t20 + t21 + t22 + t23 + t24 + t25 + t26 + t27 + t28 + t29 + t30 + t31 + t32 + t33 + t34 + t35 + t36 + t37 + t38 + t39 + t40 + t41 + t42 + t43 + t44 + t45 + t46 + t47 + t48 + t49 + t50 + t51 + t52 + t53 + t54 + t55 + t56 + t57 + t58 + t59 + t60 + t61 + t62 + t63 + t64 + t65 + t66 + t67 + t68 + t69 + t70 + t71 + t72 + t73 + t74 + t75 + t76 + t77 + t78 + t79 + t80 + t81 + t82 + t83 + t84 + t85 + t86 + t87 + t88 + t89 + t90 + t91 + t92 + t93 + t94 + t95 + t96 + t97 + t98 + t99 + t100 + t101 + t102 + t103 + t104 + t105 + t106 + t107 + t108 + t109 + t110 + t111 + t112 + t113 + t114 + t115 + t116 + t117 + t118 + t119 + t120 + t121 + t122 + t123 + t124 + t125 + t126 + t127 + t128 + t129 + t130 + t131 + t132 + t133 + t134 + t135 + t136 + t137 + t138 + t139 + t140 + t141 + t142 + t143 + t144 + t145 + t146 + t147 + t148 + t149 + t150 + t151 + t152 + t153 + t154 + t155 + t156 + t157 + t158 + t159 + t160 + t161 + t162 + t163 + t164 + t165 + t166 + t167 + t168 + t169 + t170 + t171 + t172 + t173 + t174 + t175 + t176 + t177 + t178 + t179 + t180 + t181 + t182 + t183 + t184 + t185 + t186 + t187 + t188 + t189 + t190 + t191 + t192 + t193 + t194 + t195 + t196 + t197 + t198 + t199 + t200 + t201 + t202 + t203 + t204 + t205 + t206 + t207 + t208 + t209 + t210 + t211 + t212 + t213 + t214 + t215 + t216 + t217 + t218 + t219 + t220 + t221 + t222 + t223 + t224 + t225 + t226 + t227 + t228 + t229 + t230 + t231 + t232 + t233 + t234 + t235 + t236 + t237 + t238 + t239 + t240 + t241 + t242 + t243 + t244 + t245 + t246 + t247 + t248 + t249
+}
+func h23(x: int) -> int {
+ t0 := x + 0
+ t1 := x + 1
+ t2 := x + 2
+ t3 := x + 3
+ t4 := x + 4
+ t5 := x + 5
+ t6 := x + 6
+ t7 := x + 7
+ t8 := x + 8
+ t9 := x + 9
+ t10 := x + 10
+ t11 := x + 11
+ t12 := x + 12
+ t13 := x + 13
+ t14 := x + 14
+ t15 := x + 15
+ t16 := x + 16
+ t17 := x + 17
+ t18 := x + 18
+ t19 := x + 19
+ t20 := x + 20
+ t21 := x + 21
+ t22 := x + 22
+ t23 := x + 23
+ t24 := x + 24
+ t25 := x + 25
+ t26 := x + 26
+ t27 := x + 27
+ t28 := x + 28
+ t29 := x + 29
+ t30 := x + 30
+ t31 := x + 31
+ t32 := x + 32
+ t33 := x + 33
+ t34 := x + 34
+ t35 := x + 35
+ t36 := x + 36
+ t37 := x + 37
+ t38 := x + 38
+ t39 := x + 39
+ t40 := x + 40
+ t41 := x + 41
+ t42 := x + 42
+ t43 := x + 43
+ t44 := x + 44
+ t45 := x + 45
+ t46 := x + 46
+ t47 := x + 47
+ t48 := x + 48
+ t49 := x + 49
+ t50 := x + 50
+ t51 := x + 51
+ t52 := x + 52
+ t53 := x + 53
+ t54 := x + 54
+ t55 := x + 55
+ t56 := x + 56
+ t57 := x + 57
+ t58 := x + 58
+ t59 := x + 59
+ t60 := x + 60
+ t61 := x + 61
+ t62 := x + 62
+ t63 := x + 63
+ t64 := x + 64
+ t65 := x + 65
+ t66 := x + 66
+ t67 := x + 67
+ t68 := x + 68
+ t69 := x + 69
+ t70 := x + 70
+ t71 := x + 71
+ t72 := x + 72
+ t73 := x + 73
+ t74 := x + 74
+ t75 := x + 75
+ t76 := x + 76
+ t77 := x + 77
+ t78 := x + 78
+ t79 := x + 79
+ t80 := x + 80
+ t81 := x + 81
+ t82 := x + 82
+ t83 := x + 83
+ t84 := x + 84
+ t85 := x + 85
+ t86 := x + 86
+ t87 := x + 87
+ t88 := x + 88
+ t89 := x + 89
+ t90 := x + 90
+ t91 := x + 91
+ t92 := x + 92
+ t93 := x + 93
+ t94 := x + 94
+ t95 := x + 95
+ t96 := x + 96
+ t97 := x + 97
+ t98 := x + 98
+ t99 := x + 99
+ t100 := x + 100
+ t101 := x + 101
+ t102 := x + 102
+ t103 := x + 103
+ t104 := x + 104
+ t105 := x + 105
+ t106 := x + 106
+ t107 := x + 107
+ t108 := x + 108
+ t109 := x + 109
+ t110 := x + 110
+ t111 := x + 111
+ t112 := x + 112
+ t113 := x + 113
+ t114 := x + 114
+ t115 := x + 115
+ t116 := x + 116
+ t117 := x + 117
+ t118 := x + 118
+ t119 := x + 119
+ t120 := x + 120
+ t121 := x + 121
+ t122 := x + 122
+ t123 := x + 123
+ t124 := x + 124
+ t125 := x + 125
+ t126 := x + 126
+ t127 := x + 127
+ t128 := x + 128
+ t129 := x + 129
+ t130 := x + 130
+ t131 := x + 131
+ t132 := x + 132
+ t133 := x + 133
+ t134 := x + 134
+ t135 := x + 135
+ t136 := x + 136
+ t137 := x + 137
+ t138 := x + 138
+ t139 := x + 139
+ t140 := x + 140
+ t141 := x + 141
+ t142 := x + 142
+ t143 := x + 143
+ t144 := x + 144
+ t145 := x + 145
+ t146 := x + 146
+ t147 := x + 147
+ t148 := x + 148
+ t149 := x + 149
+ t150 := x + 150
+ t151 := x + 151
+ t152 := x + 152
+ t153 := x + 153
+ t154 := x + 154
+ t155 := x + 155
+ t156 := x + 156
+ t157 := x + 157
+ t158 := x + 158
+ t159 := x + 159
+ t160 := x + 160
+ t161 := x + 161
+ t162 := x + 162
+ t163 := x + 163
+ t164 := x + 164
+ t165 := x + 165
+ t166 := x + 166
+ t167 := x + 167
+ t168 := x + 168
+ t169 := x + 169
+ t170 := x + 170
+ t171 := x + 171
+ t172 := x + 172
+ t173 := x + 173
+ t174 := x + 174
+ t175 := x + 175
+ t176 := x + 176
+ t177 := x + 177
+ t178 := x + 178
+ t179 := x + 179
+ t180 := x + 180
+ t181 := x + 181
+ t182 := x + 182
+ t183 := x + 183
+ t184 := x + 184
+ t185 := x + 185
+ t186 := x + 186
+ t187 := x + 187
+ t188 := x + 188
+ t189 := x + 189
+ t190 := x + 190
+ t191 := x + 191
+ t192 := x + 192
+ t193 := x + 193
+ t194 := x + 194
+ t195 := x + 195
+ t196 := x + 196
+ t197 := x + 197
+ t198 := x + 198
+ t199 := x + 199
+ t200 := x + 200
+ t201 := x + 201
+ t202 := x + 202
+ t203 := x + 203
+ t204 := x + 204
+ t205 := x + 205
+ t206 := x + 206
+ t207 := x + 207
+ t208 := x + 208
+ t209 := x + 209
+ t210 := x + 210
+ t211 := x + 211
+ t212 := x + 212
+ t213 := x + 213
+ t214 := x + 214
+ t215 := x + 215
+ t216 := x + 216
+ t217 := x + 217
+ t218 := x + 218
+ t219 := x + 219
+ t220 := x + 220
+ t221 := x + 221
+ t222 := x + 222
+ t223 := x + 223
+ t224 := x + 224
+ t225 := x + 225
+ t226 := x + 226
+ t227 := x + 227
+ t228 := x + 228
+ t229 := x + 229
+ t230 := x + 230
+ t231 := x + 231
+ t232 := x + 232
+ t233 := x + 233
+ t234 := x + 234
+ t235 := x + 235
+ t236 := x + 236
+ t237 := x + 237
+ t238 := x + 238
+ t239 := x + 239
+ t240 := x + 240
+ t241 := x + 241
+ t242 := x + 242
+ t243 := x + 243
+ t244 := x + 244
+ t245 := x + 245
+ t246 := x + 246
+ t247 := x + 247
+ t248 := x + 248
+ t249 := x + 249
+ return t0 + t1 + t2 + t3 + t4 + t5 + t6 + t7 + t8 + t9 + t10 + t11 + t12 + t13 + t14 + t15 + t16 + t17 + t18 + t19 + t20 + t21 + t22 + t23 + t24 + t25 + t26 + t27 + t28 + t29 + t30 + t31 + t32 + t33 + t34 + t35 + t36 + t37 + t38 + t39 + t40 + t41 + t42 + t43 + t44 + t45 + t46 + t47 + t48 + t49 + t50 + t51 + t52 + t53 + t54 + t55 + t56 + t57 + t58 + t59 + t60 + t61 + t62 + t63 + t64 + t65 + t66 + t67 + t68 + t69 + t70 + t71 + t72 + t73 + t74 + t75 + t76 + t77 + t78 + t79 + t80 + t81 + t82 + t83 + t84 + t85 + t86 + t87 + t88 + t89 + t90 + t91 + t92 + t93 + t94 + t95 + t96 + t97 + t98 + t99 + t100 + t101 + t102 + t103 + t104 + t105 + t106 + t107 + t108 + t109 + t110 + t111 + t112 + t113 + t114 + t115 + t116 + t117 + t118 + t119 + t120 + t121 + t122 + t123 + t124 + t125 + t126 + t127 + t128 + t129 + t130 + t131 + t132 + t133 + t134 + t135 + t136 + t137 + t138 + t139 + t140 + t141 + t142 + t143 + t144 + t145 + t146 + t147 + t148 + t149 + t150 + t151 + t152 + t153 + t154 + t155 + t156 + t157 + t158 + t159 + t160 + t161 + t162 + t163 + t164 + t165 + t166 + t167 + t168 + t169 + t170 + t171 + t172 + t173 + t174 + t175 + t176 + t177 + t178 + t179 + t180 + t181 + t182 + t183 + t184 + t185 + t186 + t187 + t188 + t189 + t190 + t191 + t192 + t193 + t194 + t195 + t196 + t197 + t198 + t199 + t200 + t201 + t202 + t203 + t204 + t205 + t206 + t207 + t208 + t209 + t210 + t211 + t212 + t213 + t214 + t215 + t216 + t217 + t218 + t219 + t220 + t221 + t222 + t223 + t224 + t225 + t226 + t227 + t228 + t229 + t230 + t231 + t232 + t233 + t234 + t235 + t236 + t237 + t238 + t239 + t240 + t241 + t242 + t243 + t244 + t245 + t246 + t247 + t248 + t249
+}
+func h24(x: int) -> int {
+ t0 := x + 0
+ t1 := x + 1
+ t2 := x + 2
+ t3 := x + 3
+ t4 := x + 4
+ t5 := x + 5
+ t6 := x + 6
+ t7 := x + 7
+ t8 := x + 8
+ t9 := x + 9
+ t10 := x + 10
+ t11 := x + 11
+ t12 := x + 12
+ t13 := x + 13
+ t14 := x + 14
+ t15 := x + 15
+ t16 := x + 16
+ t17 := x + 17
+ t18 := x + 18
+ t19 := x + 19
+ t20 := x + 20
+ t21 := x + 21
+ t22 := x + 22
+ t23 := x + 23
+ t24 := x + 24
+ t25 := x + 25
+ t26 := x + 26
+ t27 := x + 27
+ t28 := x + 28
+ t29 := x + 29
+ t30 := x + 30
+ t31 := x + 31
+ t32 := x + 32
+ t33 := x + 33
+ t34 := x + 34
+ t35 := x + 35
+ t36 := x + 36
+ t37 := x + 37
+ t38 := x + 38
+ t39 := x + 39
+ t40 := x + 40
+ t41 := x + 41
+ t42 := x + 42
+ t43 := x + 43
+ t44 := x + 44
+ t45 := x + 45
+ t46 := x + 46
+ t47 := x + 47
+ t48 := x + 48
+ t49 := x + 49
+ t50 := x + 50
+ t51 := x + 51
+ t52 := x + 52
+ t53 := x + 53
+ t54 := x + 54
+ t55 := x + 55
+ t56 := x + 56
+ t57 := x + 57
+ t58 := x + 58
+ t59 := x + 59
+ t60 := x + 60
+ t61 := x + 61
+ t62 := x + 62
+ t63 := x + 63
+ t64 := x + 64
+ t65 := x + 65
+ t66 := x + 66
+ t67 := x + 67
+ t68 := x + 68
+ t69 := x + 69
+ t70 := x + 70
+ t71 := x + 71
+ t72 := x + 72
+ t73 := x + 73
+ t74 := x + 74
+ t75 := x + 75
+ t76 := x + 76
+ t77 := x + 77
+ t78 := x + 78
+ t79 := x + 79
+ t80 := x + 80
+ t81 := x + 81
+ t82 := x + 82
+ t83 := x + 83
+ t84 := x + 84
+ t85 := x + 85
+ t86 := x + 86
+ t87 := x + 87
+ t88 := x + 88
+ t89 := x + 89
+ t90 := x + 90
+ t91 := x + 91
+ t92 := x + 92
+ t93 := x + 93
+ t94 := x + 94
+ t95 := x + 95
+ t96 := x + 96
+ t97 := x + 97
+ t98 := x + 98
+ t99 := x + 99
+ t100 := x + 100
+ t101 := x + 101
+ t102 := x + 102
+ t103 := x + 103
+ t104 := x + 104
+ t105 := x + 105
+ t106 := x + 106
+ t107 := x + 107
+ t108 := x + 108
+ t109 := x + 109
+ t110 := x + 110
+ t111 := x + 111
+ t112 := x + 112
+ t113 := x + 113
+ t114 := x + 114
+ t115 := x + 115
+ t116 := x + 116
+ t117 := x + 117
+ t118 := x + 118
+ t119 := x + 119
+ t120 := x + 120
+ t121 := x + 121
+ t122 := x + 122
+ t123 := x + 123
+ t124 := x + 124
+ t125 := x + 125
+ t126 := x + 126
+ t127 := x + 127
+ t128 := x + 128
+ t129 := x + 129
+ t130 := x + 130
+ t131 := x + 131
+ t132 := x + 132
+ t133 := x + 133
+ t134 := x + 134
+ t135 := x + 135
+ t136 := x + 136
+ t137 := x + 137
+ t138 := x + 138
+ t139 := x + 139
+ t140 := x + 140
+ t141 := x + 141
+ t142 := x + 142
+ t143 := x + 143
+ t144 := x + 144
+ t145 := x + 145
+ t146 := x + 146
+ t147 := x + 147
+ t148 := x + 148
+ t149 := x + 149
+ t150 := x + 150
+ t151 := x + 151
+ t152 := x + 152
+ t153 := x + 153
+ t154 := x + 154
+ t155 := x + 155
+ t156 := x + 156
+ t157 := x + 157
+ t158 := x + 158
+ t159 := x + 159
+ t160 := x + 160
+ t161 := x + 161
+ t162 := x + 162
+ t163 := x + 163
+ t164 := x + 164
+ t165 := x + 165
+ t166 := x + 166
+ t167 := x + 167
+ t168 := x + 168
+ t169 := x + 169
+ t170 := x + 170
+ t171 := x + 171
+ t172 := x + 172
+ t173 := x + 173
+ t174 := x + 174
+ t175 := x + 175
+ t176 := x + 176
+ t177 := x + 177
+ t178 := x + 178
+ t179 := x + 179
+ t180 := x + 180
+ t181 := x + 181
+ t182 := x + 182
+ t183 := x + 183
+ t184 := x + 184
+ t185 := x + 185
+ t186 := x + 186
+ t187 := x + 187
+ t188 := x + 188
+ t189 := x + 189
+ t190 := x + 190
+ t191 := x + 191
+ t192 := x + 192
+ t193 := x + 193
+ t194 := x + 194
+ t195 := x + 195
+ t196 := x + 196
+ t197 := x + 197
+ t198 := x + 198
+ t199 := x + 199
+ t200 := x + 200
+ t201 := x + 201
+ t202 := x + 202
+ t203 := x + 203
+ t204 := x + 204
+ t205 := x + 205
+ t206 := x + 206
+ t207 := x + 207
+ t208 := x + 208
+ t209 := x + 209
+ t210 := x + 210
+ t211 := x + 211
+ t212 := x + 212
+ t213 := x + 213
+ t214 := x + 214
+ t215 := x + 215
+ t216 := x + 216
+ t217 := x + 217
+ t218 := x + 218
+ t219 := x + 219
+ t220 := x + 220
+ t221 := x + 221
+ t222 := x + 222
+ t223 := x + 223
+ t224 := x + 224
+ t225 := x + 225
+ t226 := x + 226
+ t227 := x + 227
+ t228 := x + 228
+ t229 := x + 229
+ t230 := x + 230
+ t231 := x + 231
+ t232 := x + 232
+ t233 := x + 233
+ t234 := x + 234
+ t235 := x + 235
+ t236 := x + 236
+ t237 := x + 237
+ t238 := x + 238
+ t239 := x + 239
+ t240 := x + 240
+ t241 := x + 241
+ t242 := x + 242
+ t243 := x + 243
+ t244 := x + 244
+ t245 := x + 245
+ t246 := x + 246
+ t247 := x + 247
+ t248 := x + 248
+ t249 := x + 249
+ return t0 + t1 + t2 + t3 + t4 + t5 + t6 + t7 + t8 + t9 + t10 + t11 + t12 + t13 + t14 + t15 + t16 + t17 + t18 + t19 + t20 + t21 + t22 + t23 + t24 + t25 + t26 + t27 + t28 + t29 + t30 + t31 + t32 + t33 + t34 + t35 + t36 + t37 + t38 + t39 + t40 + t41 + t42 + t43 + t44 + t45 + t46 + t47 + t48 + t49 + t50 + t51 + t52 + t53 + t54 + t55 + t56 + t57 + t58 + t59 + t60 + t61 + t62 + t63 + t64 + t65 + t66 + t67 + t68 + t69 + t70 + t71 + t72 + t73 + t74 + t75 + t76 + t77 + t78 + t79 + t80 + t81 + t82 + t83 + t84 + t85 + t86 + t87 + t88 + t89 + t90 + t91 + t92 + t93 + t94 + t95 + t96 + t97 + t98 + t99 + t100 + t101 + t102 + t103 + t104 + t105 + t106 + t107 + t108 + t109 + t110 + t111 + t112 + t113 + t114 + t115 + t116 + t117 + t118 + t119 + t120 + t121 + t122 + t123 + t124 + t125 + t126 + t127 + t128 + t129 + t130 + t131 + t132 + t133 + t134 + t135 + t136 + t137 + t138 + t139 + t140 + t141 + t142 + t143 + t144 + t145 + t146 + t147 + t148 + t149 + t150 + t151 + t152 + t153 + t154 + t155 + t156 + t157 + t158 + t159 + t160 + t161 + t162 + t163 + t164 + t165 + t166 + t167 + t168 + t169 + t170 + t171 + t172 + t173 + t174 + t175 + t176 + t177 + t178 + t179 + t180 + t181 + t182 + t183 + t184 + t185 + t186 + t187 + t188 + t189 + t190 + t191 + t192 + t193 + t194 + t195 + t196 + t197 + t198 + t199 + t200 + t201 + t202 + t203 + t204 + t205 + t206 + t207 + t208 + t209 + t210 + t211 + t212 + t213 + t214 + t215 + t216 + t217 + t218 + t219 + t220 + t221 + t222 + t223 + t224 + t225 + t226 + t227 + t228 + t229 + t230 + t231 + t232 + t233 + t234 + t235 + t236 + t237 + t238 + t239 + t240 + t241 + t242 + t243 + t244 + t245 + t246 + t247 + t248 + t249
+}
+func h25(x: int) -> int {
+ t0 := x + 0
+ t1 := x + 1
+ t2 := x + 2
+ t3 := x + 3
+ t4 := x + 4
+ t5 := x + 5
+ t6 := x + 6
+ t7 := x + 7
+ t8 := x + 8
+ t9 := x + 9
+ t10 := x + 10
+ t11 := x + 11
+ t12 := x + 12
+ t13 := x + 13
+ t14 := x + 14
+ t15 := x + 15
+ t16 := x + 16
+ t17 := x + 17
+ t18 := x + 18
+ t19 := x + 19
+ t20 := x + 20
+ t21 := x + 21
+ t22 := x + 22
+ t23 := x + 23
+ t24 := x + 24
+ t25 := x + 25
+ t26 := x + 26
+ t27 := x + 27
+ t28 := x + 28
+ t29 := x + 29
+ t30 := x + 30
+ t31 := x + 31
+ t32 := x + 32
+ t33 := x + 33
+ t34 := x + 34
+ t35 := x + 35
+ t36 := x + 36
+ t37 := x + 37
+ t38 := x + 38
+ t39 := x + 39
+ t40 := x + 40
+ t41 := x + 41
+ t42 := x + 42
+ t43 := x + 43
+ t44 := x + 44
+ t45 := x + 45
+ t46 := x + 46
+ t47 := x + 47
+ t48 := x + 48
+ t49 := x + 49
+ t50 := x + 50
+ t51 := x + 51
+ t52 := x + 52
+ t53 := x + 53
+ t54 := x + 54
+ t55 := x + 55
+ t56 := x + 56
+ t57 := x + 57
+ t58 := x + 58
+ t59 := x + 59
+ t60 := x + 60
+ t61 := x + 61
+ t62 := x + 62
+ t63 := x + 63
+ t64 := x + 64
+ t65 := x + 65
+ t66 := x + 66
+ t67 := x + 67
+ t68 := x + 68
+ t69 := x + 69
+ t70 := x + 70
+ t71 := x + 71
+ t72 := x + 72
+ t73 := x + 73
+ t74 := x + 74
+ t75 := x + 75
+ t76 := x + 76
+ t77 := x + 77
+ t78 := x + 78
+ t79 := x + 79
+ t80 := x + 80
+ t81 := x + 81
+ t82 := x + 82
+ t83 := x + 83
+ t84 := x + 84
+ t85 := x + 85
+ t86 := x + 86
+ t87 := x + 87
+ t88 := x + 88
+ t89 := x + 89
+ t90 := x + 90
+ t91 := x + 91
+ t92 := x + 92
+ t93 := x + 93
+ t94 := x + 94
+ t95 := x + 95
+ t96 := x + 96
+ t97 := x + 97
+ t98 := x + 98
+ t99 := x + 99
+ t100 := x + 100
+ t101 := x + 101
+ t102 := x + 102
+ t103 := x + 103
+ t104 := x + 104
+ t105 := x + 105
+ t106 := x + 106
+ t107 := x + 107
+ t108 := x + 108
+ t109 := x + 109
+ t110 := x + 110
+ t111 := x + 111
+ t112 := x + 112
+ t113 := x + 113
+ t114 := x + 114
+ t115 := x + 115
+ t116 := x + 116
+ t117 := x + 117
+ t118 := x + 118
+ t119 := x + 119
+ t120 := x + 120
+ t121 := x + 121
+ t122 := x + 122
+ t123 := x + 123
+ t124 := x + 124
+ t125 := x + 125
+ t126 := x + 126
+ t127 := x + 127
+ t128 := x + 128
+ t129 := x + 129
+ t130 := x + 130
+ t131 := x + 131
+ t132 := x + 132
+ t133 := x + 133
+ t134 := x + 134
+ t135 := x + 135
+ t136 := x + 136
+ t137 := x + 137
+ t138 := x + 138
+ t139 := x + 139
+ t140 := x + 140
+ t141 := x + 141
+ t142 := x + 142
+ t143 := x + 143
+ t144 := x + 144
+ t145 := x + 145
+ t146 := x + 146
+ t147 := x + 147
+ t148 := x + 148
+ t149 := x + 149
+ t150 := x + 150
+ t151 := x + 151
+ t152 := x + 152
+ t153 := x + 153
+ t154 := x + 154
+ t155 := x + 155
+ t156 := x + 156
+ t157 := x + 157
+ t158 := x + 158
+ t159 := x + 159
+ t160 := x + 160
+ t161 := x + 161
+ t162 := x + 162
+ t163 := x + 163
+ t164 := x + 164
+ t165 := x + 165
+ t166 := x + 166
+ t167 := x + 167
+ t168 := x + 168
+ t169 := x + 169
+ t170 := x + 170
+ t171 := x + 171
+ t172 := x + 172
+ t173 := x + 173
+ t174 := x + 174
+ t175 := x + 175
+ t176 := x + 176
+ t177 := x + 177
+ t178 := x + 178
+ t179 := x + 179
+ t180 := x + 180
+ t181 := x + 181
+ t182 := x + 182
+ t183 := x + 183
+ t184 := x + 184
+ t185 := x + 185
+ t186 := x + 186
+ t187 := x + 187
+ t188 := x + 188
+ t189 := x + 189
+ t190 := x + 190
+ t191 := x + 191
+ t192 := x + 192
+ t193 := x + 193
+ t194 := x + 194
+ t195 := x + 195
+ t196 := x + 196
+ t197 := x + 197
+ t198 := x + 198
+ t199 := x + 199
+ t200 := x + 200
+ t201 := x + 201
+ t202 := x + 202
+ t203 := x + 203
+ t204 := x + 204
+ t205 := x + 205
+ t206 := x + 206
+ t207 := x + 207
+ t208 := x + 208
+ t209 := x + 209
+ t210 := x + 210
+ t211 := x + 211
+ t212 := x + 212
+ t213 := x + 213
+ t214 := x + 214
+ t215 := x + 215
+ t216 := x + 216
+ t217 := x + 217
+ t218 := x + 218
+ t219 := x + 219
+ t220 := x + 220
+ t221 := x + 221
+ t222 := x + 222
+ t223 := x + 223
+ t224 := x + 224
+ t225 := x + 225
+ t226 := x + 226
+ t227 := x + 227
+ t228 := x + 228
+ t229 := x + 229
+ t230 := x + 230
+ t231 := x + 231
+ t232 := x + 232
+ t233 := x + 233
+ t234 := x + 234
+ t235 := x + 235
+ t236 := x + 236
+ t237 := x + 237
+ t238 := x + 238
+ t239 := x + 239
+ t240 := x + 240
+ t241 := x + 241
+ t242 := x + 242
+ t243 := x + 243
+ t244 := x + 244
+ t245 := x + 245
+ t246 := x + 246
+ t247 := x + 247
+ t248 := x + 248
+ t249 := x + 249
+ return t0 + t1 + t2 + t3 + t4 + t5 + t6 + t7 + t8 + t9 + t10 + t11 + t12 + t13 + t14 + t15 + t16 + t17 + t18 + t19 + t20 + t21 + t22 + t23 + t24 + t25 + t26 + t27 + t28 + t29 + t30 + t31 + t32 + t33 + t34 + t35 + t36 + t37 + t38 + t39 + t40 + t41 + t42 + t43 + t44 + t45 + t46 + t47 + t48 + t49 + t50 + t51 + t52 + t53 + t54 + t55 + t56 + t57 + t58 + t59 + t60 + t61 + t62 + t63 + t64 + t65 + t66 + t67 + t68 + t69 + t70 + t71 + t72 + t73 + t74 + t75 + t76 + t77 + t78 + t79 + t80 + t81 + t82 + t83 + t84 + t85 + t86 + t87 + t88 + t89 + t90 + t91 + t92 + t93 + t94 + t95 + t96 + t97 + t98 + t99 + t100 + t101 + t102 + t103 + t104 + t105 + t106 + t107 + t108 + t109 + t110 + t111 + t112 + t113 + t114 + t115 + t116 + t117 + t118 + t119 + t120 + t121 + t122 + t123 + t124 + t125 + t126 + t127 + t128 + t129 + t130 + t131 + t132 + t133 + t134 + t135 + t136 + t137 + t138 + t139 + t140 + t141 + t142 + t143 + t144 + t145 + t146 + t147 + t148 + t149 + t150 + t151 + t152 + t153 + t154 + t155 + t156 + t157 + t158 + t159 + t160 + t161 + t162 + t163 + t164 + t165 + t166 + t167 + t168 + t169 + t170 + t171 + t172 + t173 + t174 + t175 + t176 + t177 + t178 + t179 + t180 + t181 + t182 + t183 + t184 + t185 + t186 + t187 + t188 + t189 + t190 + t191 + t192 + t193 + t194 + t195 + t196 + t197 + t198 + t199 + t200 + t201 + t202 + t203 + t204 + t205 + t206 + t207 + t208 + t209 + t210 + t211 + t212 + t213 + t214 + t215 + t216 + t217 + t218 + t219 + t220 + t221 + t222 + t223 + t224 + t225 + t226 + t227 + t228 + t229 + t230 + t231 + t232 + t233 + t234 + t235 + t236 + t237 + t238 + t239 + t240 + t241 + t242 + t243 + t244 + t245 + t246 + t247 + t248 + t249
+}
+func h26(x: int) -> int {
+ t0 := x + 0
+ t1 := x + 1
+ t2 := x + 2
+ t3 := x + 3
+ t4 := x + 4
+ t5 := x + 5
+ t6 := x + 6
+ t7 := x + 7
+ t8 := x + 8
+ t9 := x + 9
+ t10 := x + 10
+ t11 := x + 11
+ t12 := x + 12
+ t13 := x + 13
+ t14 := x + 14
+ t15 := x + 15
+ t16 := x + 16
+ t17 := x + 17
+ t18 := x + 18
+ t19 := x + 19
+ t20 := x + 20
+ t21 := x + 21
+ t22 := x + 22
+ t23 := x + 23
+ t24 := x + 24
+ t25 := x + 25
+ t26 := x + 26
+ t27 := x + 27
+ t28 := x + 28
+ t29 := x + 29
+ t30 := x + 30
+ t31 := x + 31
+ t32 := x + 32
+ t33 := x + 33
+ t34 := x + 34
+ t35 := x + 35
+ t36 := x + 36
+ t37 := x + 37
+ t38 := x + 38
+ t39 := x + 39
+ t40 := x + 40
+ t41 := x + 41
+ t42 := x + 42
+ t43 := x + 43
+ t44 := x + 44
+ t45 := x + 45
+ t46 := x + 46
+ t47 := x + 47
+ t48 := x + 48
+ t49 := x + 49
+ t50 := x + 50
+ t51 := x + 51
+ t52 := x + 52
+ t53 := x + 53
+ t54 := x + 54
+ t55 := x + 55
+ t56 := x + 56
+ t57 := x + 57
+ t58 := x + 58
+ t59 := x + 59
+ t60 := x + 60
+ t61 := x + 61
+ t62 := x + 62
+ t63 := x + 63
+ t64 := x + 64
+ t65 := x + 65
+ t66 := x + 66
+ t67 := x + 67
+ t68 := x + 68
+ t69 := x + 69
+ t70 := x + 70
+ t71 := x + 71
+ t72 := x + 72
+ t73 := x + 73
+ t74 := x + 74
+ t75 := x + 75
+ t76 := x + 76
+ t77 := x + 77
+ t78 := x + 78
+ t79 := x + 79
+ t80 := x + 80
+ t81 := x + 81
+ t82 := x + 82
+ t83 := x + 83
+ t84 := x + 84
+ t85 := x + 85
+ t86 := x + 86
+ t87 := x + 87
+ t88 := x + 88
+ t89 := x + 89
+ t90 := x + 90
+ t91 := x + 91
+ t92 := x + 92
+ t93 := x + 93
+ t94 := x + 94
+ t95 := x + 95
+ t96 := x + 96
+ t97 := x + 97
+ t98 := x + 98
+ t99 := x + 99
+ t100 := x + 100
+ t101 := x + 101
+ t102 := x + 102
+ t103 := x + 103
+ t104 := x + 104
+ t105 := x + 105
+ t106 := x + 106
+ t107 := x + 107
+ t108 := x + 108
+ t109 := x + 109
+ t110 := x + 110
+ t111 := x + 111
+ t112 := x + 112
+ t113 := x + 113
+ t114 := x + 114
+ t115 := x + 115
+ t116 := x + 116
+ t117 := x + 117
+ t118 := x + 118
+ t119 := x + 119
+ t120 := x + 120
+ t121 := x + 121
+ t122 := x + 122
+ t123 := x + 123
+ t124 := x + 124
+ t125 := x + 125
+ t126 := x + 126
+ t127 := x + 127
+ t128 := x + 128
+ t129 := x + 129
+ t130 := x + 130
+ t131 := x + 131
+ t132 := x + 132
+ t133 := x + 133
+ t134 := x + 134
+ t135 := x + 135
+ t136 := x + 136
+ t137 := x + 137
+ t138 := x + 138
+ t139 := x + 139
+ t140 := x + 140
+ t141 := x + 141
+ t142 := x + 142
+ t143 := x + 143
+ t144 := x + 144
+ t145 := x + 145
+ t146 := x + 146
+ t147 := x + 147
+ t148 := x + 148
+ t149 := x + 149
+ t150 := x + 150
+ t151 := x + 151
+ t152 := x + 152
+ t153 := x + 153
+ t154 := x + 154
+ t155 := x + 155
+ t156 := x + 156
+ t157 := x + 157
+ t158 := x + 158
+ t159 := x + 159
+ t160 := x + 160
+ t161 := x + 161
+ t162 := x + 162
+ t163 := x + 163
+ t164 := x + 164
+ t165 := x + 165
+ t166 := x + 166
+ t167 := x + 167
+ t168 := x + 168
+ t169 := x + 169
+ t170 := x + 170
+ t171 := x + 171
+ t172 := x + 172
+ t173 := x + 173
+ t174 := x + 174
+ t175 := x + 175
+ t176 := x + 176
+ t177 := x + 177
+ t178 := x + 178
+ t179 := x + 179
+ t180 := x + 180
+ t181 := x + 181
+ t182 := x + 182
+ t183 := x + 183
+ t184 := x + 184
+ t185 := x + 185
+ t186 := x + 186
+ t187 := x + 187
+ t188 := x + 188
+ t189 := x + 189
+ t190 := x + 190
+ t191 := x + 191
+ t192 := x + 192
+ t193 := x + 193
+ t194 := x + 194
+ t195 := x + 195
+ t196 := x + 196
+ t197 := x + 197
+ t198 := x + 198
+ t199 := x + 199
+ t200 := x + 200
+ t201 := x + 201
+ t202 := x + 202
+ t203 := x + 203
+ t204 := x + 204
+ t205 := x + 205
+ t206 := x + 206
+ t207 := x + 207
+ t208 := x + 208
+ t209 := x + 209
+ t210 := x + 210
+ t211 := x + 211
+ t212 := x + 212
+ t213 := x + 213
+ t214 := x + 214
+ t215 := x + 215
+ t216 := x + 216
+ t217 := x + 217
+ t218 := x + 218
+ t219 := x + 219
+ t220 := x + 220
+ t221 := x + 221
+ t222 := x + 222
+ t223 := x + 223
+ t224 := x + 224
+ t225 := x + 225
+ t226 := x + 226
+ t227 := x + 227
+ t228 := x + 228
+ t229 := x + 229
+ t230 := x + 230
+ t231 := x + 231
+ t232 := x + 232
+ t233 := x + 233
+ t234 := x + 234
+ t235 := x + 235
+ t236 := x + 236
+ t237 := x + 237
+ t238 := x + 238
+ t239 := x + 239
+ t240 := x + 240
+ t241 := x + 241
+ t242 := x + 242
+ t243 := x + 243
+ t244 := x + 244
+ t245 := x + 245
+ t246 := x + 246
+ t247 := x + 247
+ t248 := x + 248
+ t249 := x + 249
+ return t0 + t1 + t2 + t3 + t4 + t5 + t6 + t7 + t8 + t9 + t10 + t11 + t12 + t13 + t14 + t15 + t16 + t17 + t18 + t19 + t20 + t21 + t22 + t23 + t24 + t25 + t26 + t27 + t28 + t29 + t30 + t31 + t32 + t33 + t34 + t35 + t36 + t37 + t38 + t39 + t40 + t41 + t42 + t43 + t44 + t45 + t46 + t47 + t48 + t49 + t50 + t51 + t52 + t53 + t54 + t55 + t56 + t57 + t58 + t59 + t60 + t61 + t62 + t63 + t64 + t65 + t66 + t67 + t68 + t69 + t70 + t71 + t72 + t73 + t74 + t75 + t76 + t77 + t78 + t79 + t80 + t81 + t82 + t83 + t84 + t85 + t86 + t87 + t88 + t89 + t90 + t91 + t92 + t93 + t94 + t95 + t96 + t97 + t98 + t99 + t100 + t101 + t102 + t103 + t104 + t105 + t106 + t107 + t108 + t109 + t110 + t111 + t112 + t113 + t114 + t115 + t116 + t117 + t118 + t119 + t120 + t121 + t122 + t123 + t124 + t125 + t126 + t127 + t128 + t129 + t130 + t131 + t132 + t133 + t134 + t135 + t136 + t137 + t138 + t139 + t140 + t141 + t142 + t143 + t144 + t145 + t146 + t147 + t148 + t149 + t150 + t151 + t152 + t153 + t154 + t155 + t156 + t157 + t158 + t159 + t160 + t161 + t162 + t163 + t164 + t165 + t166 + t167 + t168 + t169 + t170 + t171 + t172 + t173 + t174 + t175 + t176 + t177 + t178 + t179 + t180 + t181 + t182 + t183 + t184 + t185 + t186 + t187 + t188 + t189 + t190 + t191 + t192 + t193 + t194 + t195 + t196 + t197 + t198 + t199 + t200 + t201 + t202 + t203 + t204 + t205 + t206 + t207 + t208 + t209 + t210 + t211 + t212 + t213 + t214 + t215 + t216 + t217 + t218 + t219 + t220 + t221 + t222 + t223 + t224 + t225 + t226 + t227 + t228 + t229 + t230 + t231 + t232 + t233 + t234 + t235 + t236 + t237 + t238 + t239 + t240 + t241 + t242 + t243 + t244 + t245 + t246 + t247 + t248 + t249
+}
+func h27(x: int) -> int {
+ t0 := x + 0
+ t1 := x + 1
+ t2 := x + 2
+ t3 := x + 3
+ t4 := x + 4
+ t5 := x + 5
+ t6 := x + 6
+ t7 := x + 7
+ t8 := x + 8
+ t9 := x + 9
+ t10 := x + 10
+ t11 := x + 11
+ t12 := x + 12
+ t13 := x + 13
+ t14 := x + 14
+ t15 := x + 15
+ t16 := x + 16
+ t17 := x + 17
+ t18 := x + 18
+ t19 := x + 19
+ t20 := x + 20
+ t21 := x + 21
+ t22 := x + 22
+ t23 := x + 23
+ t24 := x + 24
+ t25 := x + 25
+ t26 := x + 26
+ t27 := x + 27
+ t28 := x + 28
+ t29 := x + 29
+ t30 := x + 30
+ t31 := x + 31
+ t32 := x + 32
+ t33 := x + 33
+ t34 := x + 34
+ t35 := x + 35
+ t36 := x + 36
+ t37 := x + 37
+ t38 := x + 38
+ t39 := x + 39
+ t40 := x + 40
+ t41 := x + 41
+ t42 := x + 42
+ t43 := x + 43
+ t44 := x + 44
+ t45 := x + 45
+ t46 := x + 46
+ t47 := x + 47
+ t48 := x + 48
+ t49 := x + 49
+ t50 := x + 50
+ t51 := x + 51
+ t52 := x + 52
+ t53 := x + 53
+ t54 := x + 54
+ t55 := x + 55
+ t56 := x + 56
+ t57 := x + 57
+ t58 := x + 58
+ t59 := x + 59
+ t60 := x + 60
+ t61 := x + 61
+ t62 := x + 62
+ t63 := x + 63
+ t64 := x + 64
+ t65 := x + 65
+ t66 := x + 66
+ t67 := x + 67
+ t68 := x + 68
+ t69 := x + 69
+ t70 := x + 70
+ t71 := x + 71
+ t72 := x + 72
+ t73 := x + 73
+ t74 := x + 74
+ t75 := x + 75
+ t76 := x + 76
+ t77 := x + 77
+ t78 := x + 78
+ t79 := x + 79
+ t80 := x + 80
+ t81 := x + 81
+ t82 := x + 82
+ t83 := x + 83
+ t84 := x + 84
+ t85 := x + 85
+ t86 := x + 86
+ t87 := x + 87
+ t88 := x + 88
+ t89 := x + 89
+ t90 := x + 90
+ t91 := x + 91
+ t92 := x + 92
+ t93 := x + 93
+ t94 := x + 94
+ t95 := x + 95
+ t96 := x + 96
+ t97 := x + 97
+ t98 := x + 98
+ t99 := x + 99
+ t100 := x + 100
+ t101 := x + 101
+ t102 := x + 102
+ t103 := x + 103
+ t104 := x + 104
+ t105 := x + 105
+ t106 := x + 106
+ t107 := x + 107
+ t108 := x + 108
+ t109 := x + 109
+ t110 := x + 110
+ t111 := x + 111
+ t112 := x + 112
+ t113 := x + 113
+ t114 := x + 114
+ t115 := x + 115
+ t116 := x + 116
+ t117 := x + 117
+ t118 := x + 118
+ t119 := x + 119
+ t120 := x + 120
+ t121 := x + 121
+ t122 := x + 122
+ t123 := x + 123
+ t124 := x + 124
+ t125 := x + 125
+ t126 := x + 126
+ t127 := x + 127
+ t128 := x + 128
+ t129 := x + 129
+ t130 := x + 130
+ t131 := x + 131
+ t132 := x + 132
+ t133 := x + 133
+ t134 := x + 134
+ t135 := x + 135
+ t136 := x + 136
+ t137 := x + 137
+ t138 := x + 138
+ t139 := x + 139
+ t140 := x + 140
+ t141 := x + 141
+ t142 := x + 142
+ t143 := x + 143
+ t144 := x + 144
+ t145 := x + 145
+ t146 := x + 146
+ t147 := x + 147
+ t148 := x + 148
+ t149 := x + 149
+ t150 := x + 150
+ t151 := x + 151
+ t152 := x + 152
+ t153 := x + 153
+ t154 := x + 154
+ t155 := x + 155
+ t156 := x + 156
+ t157 := x + 157
+ t158 := x + 158
+ t159 := x + 159
+ t160 := x + 160
+ t161 := x + 161
+ t162 := x + 162
+ t163 := x + 163
+ t164 := x + 164
+ t165 := x + 165
+ t166 := x + 166
+ t167 := x + 167
+ t168 := x + 168
+ t169 := x + 169
+ t170 := x + 170
+ t171 := x + 171
+ t172 := x + 172
+ t173 := x + 173
+ t174 := x + 174
+ t175 := x + 175
+ t176 := x + 176
+ t177 := x + 177
+ t178 := x + 178
+ t179 := x + 179
+ t180 := x + 180
+ t181 := x + 181
+ t182 := x + 182
+ t183 := x + 183
+ t184 := x + 184
+ t185 := x + 185
+ t186 := x + 186
+ t187 := x + 187
+ t188 := x + 188
+ t189 := x + 189
+ t190 := x + 190
+ t191 := x + 191
+ t192 := x + 192
+ t193 := x + 193
+ t194 := x + 194
+ t195 := x + 195
+ t196 := x + 196
+ t197 := x + 197
+ t198 := x + 198
+ t199 := x + 199
+ t200 := x + 200
+ t201 := x + 201
+ t202 := x + 202
+ t203 := x + 203
+ t204 := x + 204
+ t205 := x + 205
+ t206 := x + 206
+ t207 := x + 207
+ t208 := x + 208
+ t209 := x + 209
+ t210 := x + 210
+ t211 := x + 211
+ t212 := x + 212
+ t213 := x + 213
+ t214 := x + 214
+ t215 := x + 215
+ t216 := x + 216
+ t217 := x + 217
+ t218 := x + 218
+ t219 := x + 219
+ t220 := x + 220
+ t221 := x + 221
+ t222 := x + 222
+ t223 := x + 223
+ t224 := x + 224
+ t225 := x + 225
+ t226 := x + 226
+ t227 := x + 227
+ t228 := x + 228
+ t229 := x + 229
+ t230 := x + 230
+ t231 := x + 231
+ t232 := x + 232
+ t233 := x + 233
+ t234 := x + 234
+ t235 := x + 235
+ t236 := x + 236
+ t237 := x + 237
+ t238 := x + 238
+ t239 := x + 239
+ t240 := x + 240
+ t241 := x + 241
+ t242 := x + 242
+ t243 := x + 243
+ t244 := x + 244
+ t245 := x + 245
+ t246 := x + 246
+ t247 := x + 247
+ t248 := x + 248
+ t249 := x + 249
+ return t0 + t1 + t2 + t3 + t4 + t5 + t6 + t7 + t8 + t9 + t10 + t11 + t12 + t13 + t14 + t15 + t16 + t17 + t18 + t19 + t20 + t21 + t22 + t23 + t24 + t25 + t26 + t27 + t28 + t29 + t30 + t31 + t32 + t33 + t34 + t35 + t36 + t37 + t38 + t39 + t40 + t41 + t42 + t43 + t44 + t45 + t46 + t47 + t48 + t49 + t50 + t51 + t52 + t53 + t54 + t55 + t56 + t57 + t58 + t59 + t60 + t61 + t62 + t63 + t64 + t65 + t66 + t67 + t68 + t69 + t70 + t71 + t72 + t73 + t74 + t75 + t76 + t77 + t78 + t79 + t80 + t81 + t82 + t83 + t84 + t85 + t86 + t87 + t88 + t89 + t90 + t91 + t92 + t93 + t94 + t95 + t96 + t97 + t98 + t99 + t100 + t101 + t102 + t103 + t104 + t105 + t106 + t107 + t108 + t109 + t110 + t111 + t112 + t113 + t114 + t115 + t116 + t117 + t118 + t119 + t120 + t121 + t122 + t123 + t124 + t125 + t126 + t127 + t128 + t129 + t130 + t131 + t132 + t133 + t134 + t135 + t136 + t137 + t138 + t139 + t140 + t141 + t142 + t143 + t144 + t145 + t146 + t147 + t148 + t149 + t150 + t151 + t152 + t153 + t154 + t155 + t156 + t157 + t158 + t159 + t160 + t161 + t162 + t163 + t164 + t165 + t166 + t167 + t168 + t169 + t170 + t171 + t172 + t173 + t174 + t175 + t176 + t177 + t178 + t179 + t180 + t181 + t182 + t183 + t184 + t185 + t186 + t187 + t188 + t189 + t190 + t191 + t192 + t193 + t194 + t195 + t196 + t197 + t198 + t199 + t200 + t201 + t202 + t203 + t204 + t205 + t206 + t207 + t208 + t209 + t210 + t211 + t212 + t213 + t214 + t215 + t216 + t217 + t218 + t219 + t220 + t221 + t222 + t223 + t224 + t225 + t226 + t227 + t228 + t229 + t230 + t231 + t232 + t233 + t234 + t235 + t236 + t237 + t238 + t239 + t240 + t241 + t242 + t243 + t244 + t245 + t246 + t247 + t248 + t249
+}
+func h28(x: int) -> int {
+ t0 := x + 0
+ t1 := x + 1
+ t2 := x + 2
+ t3 := x + 3
+ t4 := x + 4
+ t5 := x + 5
+ t6 := x + 6
+ t7 := x + 7
+ t8 := x + 8
+ t9 := x + 9
+ t10 := x + 10
+ t11 := x + 11
+ t12 := x + 12
+ t13 := x + 13
+ t14 := x + 14
+ t15 := x + 15
+ t16 := x + 16
+ t17 := x + 17
+ t18 := x + 18
+ t19 := x + 19
+ t20 := x + 20
+ t21 := x + 21
+ t22 := x + 22
+ t23 := x + 23
+ t24 := x + 24
+ t25 := x + 25
+ t26 := x + 26
+ t27 := x + 27
+ t28 := x + 28
+ t29 := x + 29
+ t30 := x + 30
+ t31 := x + 31
+ t32 := x + 32
+ t33 := x + 33
+ t34 := x + 34
+ t35 := x + 35
+ t36 := x + 36
+ t37 := x + 37
+ t38 := x + 38
+ t39 := x + 39
+ t40 := x + 40
+ t41 := x + 41
+ t42 := x + 42
+ t43 := x + 43
+ t44 := x + 44
+ t45 := x + 45
+ t46 := x + 46
+ t47 := x + 47
+ t48 := x + 48
+ t49 := x + 49
+ t50 := x + 50
+ t51 := x + 51
+ t52 := x + 52
+ t53 := x + 53
+ t54 := x + 54
+ t55 := x + 55
+ t56 := x + 56
+ t57 := x + 57
+ t58 := x + 58
+ t59 := x + 59
+ t60 := x + 60
+ t61 := x + 61
+ t62 := x + 62
+ t63 := x + 63
+ t64 := x + 64
+ t65 := x + 65
+ t66 := x + 66
+ t67 := x + 67
+ t68 := x + 68
+ t69 := x + 69
+ t70 := x + 70
+ t71 := x + 71
+ t72 := x + 72
+ t73 := x + 73
+ t74 := x + 74
+ t75 := x + 75
+ t76 := x + 76
+ t77 := x + 77
+ t78 := x + 78
+ t79 := x + 79
+ t80 := x + 80
+ t81 := x + 81
+ t82 := x + 82
+ t83 := x + 83
+ t84 := x + 84
+ t85 := x + 85
+ t86 := x + 86
+ t87 := x + 87
+ t88 := x + 88
+ t89 := x + 89
+ t90 := x + 90
+ t91 := x + 91
+ t92 := x + 92
+ t93 := x + 93
+ t94 := x + 94
+ t95 := x + 95
+ t96 := x + 96
+ t97 := x + 97
+ t98 := x + 98
+ t99 := x + 99
+ t100 := x + 100
+ t101 := x + 101
+ t102 := x + 102
+ t103 := x + 103
+ t104 := x + 104
+ t105 := x + 105
+ t106 := x + 106
+ t107 := x + 107
+ t108 := x + 108
+ t109 := x + 109
+ t110 := x + 110
+ t111 := x + 111
+ t112 := x + 112
+ t113 := x + 113
+ t114 := x + 114
+ t115 := x + 115
+ t116 := x + 116
+ t117 := x + 117
+ t118 := x + 118
+ t119 := x + 119
+ t120 := x + 120
+ t121 := x + 121
+ t122 := x + 122
+ t123 := x + 123
+ t124 := x + 124
+ t125 := x + 125
+ t126 := x + 126
+ t127 := x + 127
+ t128 := x + 128
+ t129 := x + 129
+ t130 := x + 130
+ t131 := x + 131
+ t132 := x + 132
+ t133 := x + 133
+ t134 := x + 134
+ t135 := x + 135
+ t136 := x + 136
+ t137 := x + 137
+ t138 := x + 138
+ t139 := x + 139
+ t140 := x + 140
+ t141 := x + 141
+ t142 := x + 142
+ t143 := x + 143
+ t144 := x + 144
+ t145 := x + 145
+ t146 := x + 146
+ t147 := x + 147
+ t148 := x + 148
+ t149 := x + 149
+ t150 := x + 150
+ t151 := x + 151
+ t152 := x + 152
+ t153 := x + 153
+ t154 := x + 154
+ t155 := x + 155
+ t156 := x + 156
+ t157 := x + 157
+ t158 := x + 158
+ t159 := x + 159
+ t160 := x + 160
+ t161 := x + 161
+ t162 := x + 162
+ t163 := x + 163
+ t164 := x + 164
+ t165 := x + 165
+ t166 := x + 166
+ t167 := x + 167
+ t168 := x + 168
+ t169 := x + 169
+ t170 := x + 170
+ t171 := x + 171
+ t172 := x + 172
+ t173 := x + 173
+ t174 := x + 174
+ t175 := x + 175
+ t176 := x + 176
+ t177 := x + 177
+ t178 := x + 178
+ t179 := x + 179
+ t180 := x + 180
+ t181 := x + 181
+ t182 := x + 182
+ t183 := x + 183
+ t184 := x + 184
+ t185 := x + 185
+ t186 := x + 186
+ t187 := x + 187
+ t188 := x + 188
+ t189 := x + 189
+ t190 := x + 190
+ t191 := x + 191
+ t192 := x + 192
+ t193 := x + 193
+ t194 := x + 194
+ t195 := x + 195
+ t196 := x + 196
+ t197 := x + 197
+ t198 := x + 198
+ t199 := x + 199
+ t200 := x + 200
+ t201 := x + 201
+ t202 := x + 202
+ t203 := x + 203
+ t204 := x + 204
+ t205 := x + 205
+ t206 := x + 206
+ t207 := x + 207
+ t208 := x + 208
+ t209 := x + 209
+ t210 := x + 210
+ t211 := x + 211
+ t212 := x + 212
+ t213 := x + 213
+ t214 := x + 214
+ t215 := x + 215
+ t216 := x + 216
+ t217 := x + 217
+ t218 := x + 218
+ t219 := x + 219
+ t220 := x + 220
+ t221 := x + 221
+ t222 := x + 222
+ t223 := x + 223
+ t224 := x + 224
+ t225 := x + 225
+ t226 := x + 226
+ t227 := x + 227
+ t228 := x + 228
+ t229 := x + 229
+ t230 := x + 230
+ t231 := x + 231
+ t232 := x + 232
+ t233 := x + 233
+ t234 := x + 234
+ t235 := x + 235
+ t236 := x + 236
+ t237 := x + 237
+ t238 := x + 238
+ t239 := x + 239
+ t240 := x + 240
+ t241 := x + 241
+ t242 := x + 242
+ t243 := x + 243
+ t244 := x + 244
+ t245 := x + 245
+ t246 := x + 246
+ t247 := x + 247
+ t248 := x + 248
+ t249 := x + 249
+ return t0 + t1 + t2 + t3 + t4 + t5 + t6 + t7 + t8 + t9 + t10 + t11 + t12 + t13 + t14 + t15 + t16 + t17 + t18 + t19 + t20 + t21 + t22 + t23 + t24 + t25 + t26 + t27 + t28 + t29 + t30 + t31 + t32 + t33 + t34 + t35 + t36 + t37 + t38 + t39 + t40 + t41 + t42 + t43 + t44 + t45 + t46 + t47 + t48 + t49 + t50 + t51 + t52 + t53 + t54 + t55 + t56 + t57 + t58 + t59 + t60 + t61 + t62 + t63 + t64 + t65 + t66 + t67 + t68 + t69 + t70 + t71 + t72 + t73 + t74 + t75 + t76 + t77 + t78 + t79 + t80 + t81 + t82 + t83 + t84 + t85 + t86 + t87 + t88 + t89 + t90 + t91 + t92 + t93 + t94 + t95 + t96 + t97 + t98 + t99 + t100 + t101 + t102 + t103 + t104 + t105 + t106 + t107 + t108 + t109 + t110 + t111 + t112 + t113 + t114 + t115 + t116 + t117 + t118 + t119 + t120 + t121 + t122 + t123 + t124 + t125 + t126 + t127 + t128 + t129 + t130 + t131 + t132 + t133 + t134 + t135 + t136 + t137 + t138 + t139 + t140 + t141 + t142 + t143 + t144 + t145 + t146 + t147 + t148 + t149 + t150 + t151 + t152 + t153 + t154 + t155 + t156 + t157 + t158 + t159 + t160 + t161 + t162 + t163 + t164 + t165 + t166 + t167 + t168 + t169 + t170 + t171 + t172 + t173 + t174 + t175 + t176 + t177 + t178 + t179 + t180 + t181 + t182 + t183 + t184 + t185 + t186 + t187 + t188 + t189 + t190 + t191 + t192 + t193 + t194 + t195 + t196 + t197 + t198 + t199 + t200 + t201 + t202 + t203 + t204 + t205 + t206 + t207 + t208 + t209 + t210 + t211 + t212 + t213 + t214 + t215 + t216 + t217 + t218 + t219 + t220 + t221 + t222 + t223 + t224 + t225 + t226 + t227 + t228 + t229 + t230 + t231 + t232 + t233 + t234 + t235 + t236 + t237 + t238 + t239 + t240 + t241 + t242 + t243 + t244 + t245 + t246 + t247 + t248 + t249
+}
+func h29(x: int) -> int {
+ t0 := x + 0
+ t1 := x + 1
+ t2 := x + 2
+ t3 := x + 3
+ t4 := x + 4
+ t5 := x + 5
+ t6 := x + 6
+ t7 := x + 7
+ t8 := x + 8
+ t9 := x + 9
+ t10 := x + 10
+ t11 := x + 11
+ t12 := x + 12
+ t13 := x + 13
+ t14 := x + 14
+ t15 := x + 15
+ t16 := x + 16
+ t17 := x + 17
+ t18 := x + 18
+ t19 := x + 19
+ t20 := x + 20
+ t21 := x + 21
+ t22 := x + 22
+ t23 := x + 23
+ t24 := x + 24
+ t25 := x + 25
+ t26 := x + 26
+ t27 := x + 27
+ t28 := x + 28
+ t29 := x + 29
+ t30 := x + 30
+ t31 := x + 31
+ t32 := x + 32
+ t33 := x + 33
+ t34 := x + 34
+ t35 := x + 35
+ t36 := x + 36
+ t37 := x + 37
+ t38 := x + 38
+ t39 := x + 39
+ t40 := x + 40
+ t41 := x + 41
+ t42 := x + 42
+ t43 := x + 43
+ t44 := x + 44
+ t45 := x + 45
+ t46 := x + 46
+ t47 := x + 47
+ t48 := x + 48
+ t49 := x + 49
+ t50 := x + 50
+ t51 := x + 51
+ t52 := x + 52
+ t53 := x + 53
+ t54 := x + 54
+ t55 := x + 55
+ t56 := x + 56
+ t57 := x + 57
+ t58 := x + 58
+ t59 := x + 59
+ t60 := x + 60
+ t61 := x + 61
+ t62 := x + 62
+ t63 := x + 63
+ t64 := x + 64
+ t65 := x + 65
+ t66 := x + 66
+ t67 := x + 67
+ t68 := x + 68
+ t69 := x + 69
+ t70 := x + 70
+ t71 := x + 71
+ t72 := x + 72
+ t73 := x + 73
+ t74 := x + 74
+ t75 := x + 75
+ t76 := x + 76
+ t77 := x + 77
+ t78 := x + 78
+ t79 := x + 79
+ t80 := x + 80
+ t81 := x + 81
+ t82 := x + 82
+ t83 := x + 83
+ t84 := x + 84
+ t85 := x + 85
+ t86 := x + 86
+ t87 := x + 87
+ t88 := x + 88
+ t89 := x + 89
+ t90 := x + 90
+ t91 := x + 91
+ t92 := x + 92
+ t93 := x + 93
+ t94 := x + 94
+ t95 := x + 95
+ t96 := x + 96
+ t97 := x + 97
+ t98 := x + 98
+ t99 := x + 99
+ t100 := x + 100
+ t101 := x + 101
+ t102 := x + 102
+ t103 := x + 103
+ t104 := x + 104
+ t105 := x + 105
+ t106 := x + 106
+ t107 := x + 107
+ t108 := x + 108
+ t109 := x + 109
+ t110 := x + 110
+ t111 := x + 111
+ t112 := x + 112
+ t113 := x + 113
+ t114 := x + 114
+ t115 := x + 115
+ t116 := x + 116
+ t117 := x + 117
+ t118 := x + 118
+ t119 := x + 119
+ t120 := x + 120
+ t121 := x + 121
+ t122 := x + 122
+ t123 := x + 123
+ t124 := x + 124
+ t125 := x + 125
+ t126 := x + 126
+ t127 := x + 127
+ t128 := x + 128
+ t129 := x + 129
+ t130 := x + 130
+ t131 := x + 131
+ t132 := x + 132
+ t133 := x + 133
+ t134 := x + 134
+ t135 := x + 135
+ t136 := x + 136
+ t137 := x + 137
+ t138 := x + 138
+ t139 := x + 139
+ t140 := x + 140
+ t141 := x + 141
+ t142 := x + 142
+ t143 := x + 143
+ t144 := x + 144
+ t145 := x + 145
+ t146 := x + 146
+ t147 := x + 147
+ t148 := x + 148
+ t149 := x + 149
+ t150 := x + 150
+ t151 := x + 151
+ t152 := x + 152
+ t153 := x + 153
+ t154 := x + 154
+ t155 := x + 155
+ t156 := x + 156
+ t157 := x + 157
+ t158 := x + 158
+ t159 := x + 159
+ t160 := x + 160
+ t161 := x + 161
+ t162 := x + 162
+ t163 := x + 163
+ t164 := x + 164
+ t165 := x + 165
+ t166 := x + 166
+ t167 := x + 167
+ t168 := x + 168
+ t169 := x + 169
+ t170 := x + 170
+ t171 := x + 171
+ t172 := x + 172
+ t173 := x + 173
+ t174 := x + 174
+ t175 := x + 175
+ t176 := x + 176
+ t177 := x + 177
+ t178 := x + 178
+ t179 := x + 179
+ t180 := x + 180
+ t181 := x + 181
+ t182 := x + 182
+ t183 := x + 183
+ t184 := x + 184
+ t185 := x + 185
+ t186 := x + 186
+ t187 := x + 187
+ t188 := x + 188
+ t189 := x + 189
+ t190 := x + 190
+ t191 := x + 191
+ t192 := x + 192
+ t193 := x + 193
+ t194 := x + 194
+ t195 := x + 195
+ t196 := x + 196
+ t197 := x + 197
+ t198 := x + 198
+ t199 := x + 199
+ t200 := x + 200
+ t201 := x + 201
+ t202 := x + 202
+ t203 := x + 203
+ t204 := x + 204
+ t205 := x + 205
+ t206 := x + 206
+ t207 := x + 207
+ t208 := x + 208
+ t209 := x + 209
+ t210 := x + 210
+ t211 := x + 211
+ t212 := x + 212
+ t213 := x + 213
+ t214 := x + 214
+ t215 := x + 215
+ t216 := x + 216
+ t217 := x + 217
+ t218 := x + 218
+ t219 := x + 219
+ t220 := x + 220
+ t221 := x + 221
+ t222 := x + 222
+ t223 := x + 223
+ t224 := x + 224
+ t225 := x + 225
+ t226 := x + 226
+ t227 := x + 227
+ t228 := x + 228
+ t229 := x + 229
+ t230 := x + 230
+ t231 := x + 231
+ t232 := x + 232
+ t233 := x + 233
+ t234 := x + 234
+ t235 := x + 235
+ t236 := x + 236
+ t237 := x + 237
+ t238 := x + 238
+ t239 := x + 239
+ t240 := x + 240
+ t241 := x + 241
+ t242 := x + 242
+ t243 := x + 243
+ t244 := x + 244
+ t245 := x + 245
+ t246 := x + 246
+ t247 := x + 247
+ t248 := x + 248
+ t249 := x + 249
+ return t0 + t1 + t2 + t3 + t4 + t5 + t6 + t7 + t8 + t9 + t10 + t11 + t12 + t13 + t14 + t15 + t16 + t17 + t18 + t19 + t20 + t21 + t22 + t23 + t24 + t25 + t26 + t27 + t28 + t29 + t30 + t31 + t32 + t33 + t34 + t35 + t36 + t37 + t38 + t39 + t40 + t41 + t42 + t43 + t44 + t45 + t46 + t47 + t48 + t49 + t50 + t51 + t52 + t53 + t54 + t55 + t56 + t57 + t58 + t59 + t60 + t61 + t62 + t63 + t64 + t65 + t66 + t67 + t68 + t69 + t70 + t71 + t72 + t73 + t74 + t75 + t76 + t77 + t78 + t79 + t80 + t81 + t82 + t83 + t84 + t85 + t86 + t87 + t88 + t89 + t90 + t91 + t92 + t93 + t94 + t95 + t96 + t97 + t98 + t99 + t100 + t101 + t102 + t103 + t104 + t105 + t106 + t107 + t108 + t109 + t110 + t111 + t112 + t113 + t114 + t115 + t116 + t117 + t118 + t119 + t120 + t121 + t122 + t123 + t124 + t125 + t126 + t127 + t128 + t129 + t130 + t131 + t132 + t133 + t134 + t135 + t136 + t137 + t138 + t139 + t140 + t141 + t142 + t143 + t144 + t145 + t146 + t147 + t148 + t149 + t150 + t151 + t152 + t153 + t154 + t155 + t156 + t157 + t158 + t159 + t160 + t161 + t162 + t163 + t164 + t165 + t166 + t167 + t168 + t169 + t170 + t171 + t172 + t173 + t174 + t175 + t176 + t177 + t178 + t179 + t180 + t181 + t182 + t183 + t184 + t185 + t186 + t187 + t188 + t189 + t190 + t191 + t192 + t193 + t194 + t195 + t196 + t197 + t198 + t199 + t200 + t201 + t202 + t203 + t204 + t205 + t206 + t207 + t208 + t209 + t210 + t211 + t212 + t213 + t214 + t215 + t216 + t217 + t218 + t219 + t220 + t221 + t222 + t223 + t224 + t225 + t226 + t227 + t228 + t229 + t230 + t231 + t232 + t233 + t234 + t235 + t236 + t237 + t238 + t239 + t240 + t241 + t242 + t243 + t244 + t245 + t246 + t247 + t248 + t249
+}
+func h30(x: int) -> int {
+ t0 := x + 0
+ t1 := x + 1
+ t2 := x + 2
+ t3 := x + 3
+ t4 := x + 4
+ t5 := x + 5
+ t6 := x + 6
+ t7 := x + 7
+ t8 := x + 8
+ t9 := x + 9
+ t10 := x + 10
+ t11 := x + 11
+ t12 := x + 12
+ t13 := x + 13
+ t14 := x + 14
+ t15 := x + 15
+ t16 := x + 16
+ t17 := x + 17
+ t18 := x + 18
+ t19 := x + 19
+ t20 := x + 20
+ t21 := x + 21
+ t22 := x + 22
+ t23 := x + 23
+ t24 := x + 24
+ t25 := x + 25
+ t26 := x + 26
+ t27 := x + 27
+ t28 := x + 28
+ t29 := x + 29
+ t30 := x + 30
+ t31 := x + 31
+ t32 := x + 32
+ t33 := x + 33
+ t34 := x + 34
+ t35 := x + 35
+ t36 := x + 36
+ t37 := x + 37
+ t38 := x + 38
+ t39 := x + 39
+ t40 := x + 40
+ t41 := x + 41
+ t42 := x + 42
+ t43 := x + 43
+ t44 := x + 44
+ t45 := x + 45
+ t46 := x + 46
+ t47 := x + 47
+ t48 := x + 48
+ t49 := x + 49
+ t50 := x + 50
+ t51 := x + 51
+ t52 := x + 52
+ t53 := x + 53
+ t54 := x + 54
+ t55 := x + 55
+ t56 := x + 56
+ t57 := x + 57
+ t58 := x + 58
+ t59 := x + 59
+ t60 := x + 60
+ t61 := x + 61
+ t62 := x + 62
+ t63 := x + 63
+ t64 := x + 64
+ t65 := x + 65
+ t66 := x + 66
+ t67 := x + 67
+ t68 := x + 68
+ t69 := x + 69
+ t70 := x + 70
+ t71 := x + 71
+ t72 := x + 72
+ t73 := x + 73
+ t74 := x + 74
+ t75 := x + 75
+ t76 := x + 76
+ t77 := x + 77
+ t78 := x + 78
+ t79 := x + 79
+ t80 := x + 80
+ t81 := x + 81
+ t82 := x + 82
+ t83 := x + 83
+ t84 := x + 84
+ t85 := x + 85
+ t86 := x + 86
+ t87 := x + 87
+ t88 := x + 88
+ t89 := x + 89
+ t90 := x + 90
+ t91 := x + 91
+ t92 := x + 92
+ t93 := x + 93
+ t94 := x + 94
+ t95 := x + 95
+ t96 := x + 96
+ t97 := x + 97
+ t98 := x + 98
+ t99 := x + 99
+ t100 := x + 100
+ t101 := x + 101
+ t102 := x + 102
+ t103 := x + 103
+ t104 := x + 104
+ t105 := x + 105
+ t106 := x + 106
+ t107 := x + 107
+ t108 := x + 108
+ t109 := x + 109
+ t110 := x + 110
+ t111 := x + 111
+ t112 := x + 112
+ t113 := x + 113
+ t114 := x + 114
+ t115 := x + 115
+ t116 := x + 116
+ t117 := x + 117
+ t118 := x + 118
+ t119 := x + 119
+ t120 := x + 120
+ t121 := x + 121
+ t122 := x + 122
+ t123 := x + 123
+ t124 := x + 124
+ t125 := x + 125
+ t126 := x + 126
+ t127 := x + 127
+ t128 := x + 128
+ t129 := x + 129
+ t130 := x + 130
+ t131 := x + 131
+ t132 := x + 132
+ t133 := x + 133
+ t134 := x + 134
+ t135 := x + 135
+ t136 := x + 136
+ t137 := x + 137
+ t138 := x + 138
+ t139 := x + 139
+ t140 := x + 140
+ t141 := x + 141
+ t142 := x + 142
+ t143 := x + 143
+ t144 := x + 144
+ t145 := x + 145
+ t146 := x + 146
+ t147 := x + 147
+ t148 := x + 148
+ t149 := x + 149
+ t150 := x + 150
+ t151 := x + 151
+ t152 := x + 152
+ t153 := x + 153
+ t154 := x + 154
+ t155 := x + 155
+ t156 := x + 156
+ t157 := x + 157
+ t158 := x + 158
+ t159 := x + 159
+ t160 := x + 160
+ t161 := x + 161
+ t162 := x + 162
+ t163 := x + 163
+ t164 := x + 164
+ t165 := x + 165
+ t166 := x + 166
+ t167 := x + 167
+ t168 := x + 168
+ t169 := x + 169
+ t170 := x + 170
+ t171 := x + 171
+ t172 := x + 172
+ t173 := x + 173
+ t174 := x + 174
+ t175 := x + 175
+ t176 := x + 176
+ t177 := x + 177
+ t178 := x + 178
+ t179 := x + 179
+ t180 := x + 180
+ t181 := x + 181
+ t182 := x + 182
+ t183 := x + 183
+ t184 := x + 184
+ t185 := x + 185
+ t186 := x + 186
+ t187 := x + 187
+ t188 := x + 188
+ t189 := x + 189
+ t190 := x + 190
+ t191 := x + 191
+ t192 := x + 192
+ t193 := x + 193
+ t194 := x + 194
+ t195 := x + 195
+ t196 := x + 196
+ t197 := x + 197
+ t198 := x + 198
+ t199 := x + 199
+ t200 := x + 200
+ t201 := x + 201
+ t202 := x + 202
+ t203 := x + 203
+ t204 := x + 204
+ t205 := x + 205
+ t206 := x + 206
+ t207 := x + 207
+ t208 := x + 208
+ t209 := x + 209
+ t210 := x + 210
+ t211 := x + 211
+ t212 := x + 212
+ t213 := x + 213
+ t214 := x + 214
+ t215 := x + 215
+ t216 := x + 216
+ t217 := x + 217
+ t218 := x + 218
+ t219 := x + 219
+ t220 := x + 220
+ t221 := x + 221
+ t222 := x + 222
+ t223 := x + 223
+ t224 := x + 224
+ t225 := x + 225
+ t226 := x + 226
+ t227 := x + 227
+ t228 := x + 228
+ t229 := x + 229
+ t230 := x + 230
+ t231 := x + 231
+ t232 := x + 232
+ t233 := x + 233
+ t234 := x + 234
+ t235 := x + 235
+ t236 := x + 236
+ t237 := x + 237
+ t238 := x + 238
+ t239 := x + 239
+ t240 := x + 240
+ t241 := x + 241
+ t242 := x + 242
+ t243 := x + 243
+ t244 := x + 244
+ t245 := x + 245
+ t246 := x + 246
+ t247 := x + 247
+ t248 := x + 248
+ t249 := x + 249
+ return t0 + t1 + t2 + t3 + t4 + t5 + t6 + t7 + t8 + t9 + t10 + t11 + t12 + t13 + t14 + t15 + t16 + t17 + t18 + t19 + t20 + t21 + t22 + t23 + t24 + t25 + t26 + t27 + t28 + t29 + t30 + t31 + t32 + t33 + t34 + t35 + t36 + t37 + t38 + t39 + t40 + t41 + t42 + t43 + t44 + t45 + t46 + t47 + t48 + t49 + t50 + t51 + t52 + t53 + t54 + t55 + t56 + t57 + t58 + t59 + t60 + t61 + t62 + t63 + t64 + t65 + t66 + t67 + t68 + t69 + t70 + t71 + t72 + t73 + t74 + t75 + t76 + t77 + t78 + t79 + t80 + t81 + t82 + t83 + t84 + t85 + t86 + t87 + t88 + t89 + t90 + t91 + t92 + t93 + t94 + t95 + t96 + t97 + t98 + t99 + t100 + t101 + t102 + t103 + t104 + t105 + t106 + t107 + t108 + t109 + t110 + t111 + t112 + t113 + t114 + t115 + t116 + t117 + t118 + t119 + t120 + t121 + t122 + t123 + t124 + t125 + t126 + t127 + t128 + t129 + t130 + t131 + t132 + t133 + t134 + t135 + t136 + t137 + t138 + t139 + t140 + t141 + t142 + t143 + t144 + t145 + t146 + t147 + t148 + t149 + t150 + t151 + t152 + t153 + t154 + t155 + t156 + t157 + t158 + t159 + t160 + t161 + t162 + t163 + t164 + t165 + t166 + t167 + t168 + t169 + t170 + t171 + t172 + t173 + t174 + t175 + t176 + t177 + t178 + t179 + t180 + t181 + t182 + t183 + t184 + t185 + t186 + t187 + t188 + t189 + t190 + t191 + t192 + t193 + t194 + t195 + t196 + t197 + t198 + t199 + t200 + t201 + t202 + t203 + t204 + t205 + t206 + t207 + t208 + t209 + t210 + t211 + t212 + t213 + t214 + t215 + t216 + t217 + t218 + t219 + t220 + t221 + t222 + t223 + t224 + t225 + t226 + t227 + t228 + t229 + t230 + t231 + t232 + t233 + t234 + t235 + t236 + t237 + t238 + t239 + t240 + t241 + t242 + t243 + t244 + t245 + t246 + t247 + t248 + t249
+}
+func h31(x: int) -> int {
+ t0 := x + 0
+ t1 := x + 1
+ t2 := x + 2
+ t3 := x + 3
+ t4 := x + 4
+ t5 := x + 5
+ t6 := x + 6
+ t7 := x + 7
+ t8 := x + 8
+ t9 := x + 9
+ t10 := x + 10
+ t11 := x + 11
+ t12 := x + 12
+ t13 := x + 13
+ t14 := x + 14
+ t15 := x + 15
+ t16 := x + 16
+ t17 := x + 17
+ t18 := x + 18
+ t19 := x + 19
+ t20 := x + 20
+ t21 := x + 21
+ t22 := x + 22
+ t23 := x + 23
+ t24 := x + 24
+ t25 := x + 25
+ t26 := x + 26
+ t27 := x + 27
+ t28 := x + 28
+ t29 := x + 29
+ t30 := x + 30
+ t31 := x + 31
+ t32 := x + 32
+ t33 := x + 33
+ t34 := x + 34
+ t35 := x + 35
+ t36 := x + 36
+ t37 := x + 37
+ t38 := x + 38
+ t39 := x + 39
+ t40 := x + 40
+ t41 := x + 41
+ t42 := x + 42
+ t43 := x + 43
+ t44 := x + 44
+ t45 := x + 45
+ t46 := x + 46
+ t47 := x + 47
+ t48 := x + 48
+ t49 := x + 49
+ t50 := x + 50
+ t51 := x + 51
+ t52 := x + 52
+ t53 := x + 53
+ t54 := x + 54
+ t55 := x + 55
+ t56 := x + 56
+ t57 := x + 57
+ t58 := x + 58
+ t59 := x + 59
+ t60 := x + 60
+ t61 := x + 61
+ t62 := x + 62
+ t63 := x + 63
+ t64 := x + 64
+ t65 := x + 65
+ t66 := x + 66
+ t67 := x + 67
+ t68 := x + 68
+ t69 := x + 69
+ t70 := x + 70
+ t71 := x + 71
+ t72 := x + 72
+ t73 := x + 73
+ t74 := x + 74
+ t75 := x + 75
+ t76 := x + 76
+ t77 := x + 77
+ t78 := x + 78
+ t79 := x + 79
+ t80 := x + 80
+ t81 := x + 81
+ t82 := x + 82
+ t83 := x + 83
+ t84 := x + 84
+ t85 := x + 85
+ t86 := x + 86
+ t87 := x + 87
+ t88 := x + 88
+ t89 := x + 89
+ t90 := x + 90
+ t91 := x + 91
+ t92 := x + 92
+ t93 := x + 93
+ t94 := x + 94
+ t95 := x + 95
+ t96 := x + 96
+ t97 := x + 97
+ t98 := x + 98
+ t99 := x + 99
+ t100 := x + 100
+ t101 := x + 101
+ t102 := x + 102
+ t103 := x + 103
+ t104 := x + 104
+ t105 := x + 105
+ t106 := x + 106
+ t107 := x + 107
+ t108 := x + 108
+ t109 := x + 109
+ t110 := x + 110
+ t111 := x + 111
+ t112 := x + 112
+ t113 := x + 113
+ t114 := x + 114
+ t115 := x + 115
+ t116 := x + 116
+ t117 := x + 117
+ t118 := x + 118
+ t119 := x + 119
+ t120 := x + 120
+ t121 := x + 121
+ t122 := x + 122
+ t123 := x + 123
+ t124 := x + 124
+ t125 := x + 125
+ t126 := x + 126
+ t127 := x + 127
+ t128 := x + 128
+ t129 := x + 129
+ t130 := x + 130
+ t131 := x + 131
+ t132 := x + 132
+ t133 := x + 133
+ t134 := x + 134
+ t135 := x + 135
+ t136 := x + 136
+ t137 := x + 137
+ t138 := x + 138
+ t139 := x + 139
+ t140 := x + 140
+ t141 := x + 141
+ t142 := x + 142
+ t143 := x + 143
+ t144 := x + 144
+ t145 := x + 145
+ t146 := x + 146
+ t147 := x + 147
+ t148 := x + 148
+ t149 := x + 149
+ t150 := x + 150
+ t151 := x + 151
+ t152 := x + 152
+ t153 := x + 153
+ t154 := x + 154
+ t155 := x + 155
+ t156 := x + 156
+ t157 := x + 157
+ t158 := x + 158
+ t159 := x + 159
+ t160 := x + 160
+ t161 := x + 161
+ t162 := x + 162
+ t163 := x + 163
+ t164 := x + 164
+ t165 := x + 165
+ t166 := x + 166
+ t167 := x + 167
+ t168 := x + 168
+ t169 := x + 169
+ t170 := x + 170
+ t171 := x + 171
+ t172 := x + 172
+ t173 := x + 173
+ t174 := x + 174
+ t175 := x + 175
+ t176 := x + 176
+ t177 := x + 177
+ t178 := x + 178
+ t179 := x + 179
+ t180 := x + 180
+ t181 := x + 181
+ t182 := x + 182
+ t183 := x + 183
+ t184 := x + 184
+ t185 := x + 185
+ t186 := x + 186
+ t187 := x + 187
+ t188 := x + 188
+ t189 := x + 189
+ t190 := x + 190
+ t191 := x + 191
+ t192 := x + 192
+ t193 := x + 193
+ t194 := x + 194
+ t195 := x + 195
+ t196 := x + 196
+ t197 := x + 197
+ t198 := x + 198
+ t199 := x + 199
+ t200 := x + 200
+ t201 := x + 201
+ t202 := x + 202
+ t203 := x + 203
+ t204 := x + 204
+ t205 := x + 205
+ t206 := x + 206
+ t207 := x + 207
+ t208 := x + 208
+ t209 := x + 209
+ t210 := x + 210
+ t211 := x + 211
+ t212 := x + 212
+ t213 := x + 213
+ t214 := x + 214
+ t215 := x + 215
+ t216 := x + 216
+ t217 := x + 217
+ t218 := x + 218
+ t219 := x + 219
+ t220 := x + 220
+ t221 := x + 221
+ t222 := x + 222
+ t223 := x + 223
+ t224 := x + 224
+ t225 := x + 225
+ t226 := x + 226
+ t227 := x + 227
+ t228 := x + 228
+ t229 := x + 229
+ t230 := x + 230
+ t231 := x + 231
+ t232 := x + 232
+ t233 := x + 233
+ t234 := x + 234
+ t235 := x + 235
+ t236 := x + 236
+ t237 := x + 237
+ t238 := x + 238
+ t239 := x + 239
+ t240 := x + 240
+ t241 := x + 241
+ t242 := x + 242
+ t243 := x + 243
+ t244 := x + 244
+ t245 := x + 245
+ t246 := x + 246
+ t247 := x + 247
+ t248 := x + 248
+ t249 := x + 249
+ return t0 + t1 + t2 + t3 + t4 + t5 + t6 + t7 + t8 + t9 + t10 + t11 + t12 + t13 + t14 + t15 + t16 + t17 + t18 + t19 + t20 + t21 + t22 + t23 + t24 + t25 + t26 + t27 + t28 + t29 + t30 + t31 + t32 + t33 + t34 + t35 + t36 + t37 + t38 + t39 + t40 + t41 + t42 + t43 + t44 + t45 + t46 + t47 + t48 + t49 + t50 + t51 + t52 + t53 + t54 + t55 + t56 + t57 + t58 + t59 + t60 + t61 + t62 + t63 + t64 + t65 + t66 + t67 + t68 + t69 + t70 + t71 + t72 + t73 + t74 + t75 + t76 + t77 + t78 + t79 + t80 + t81 + t82 + t83 + t84 + t85 + t86 + t87 + t88 + t89 + t90 + t91 + t92 + t93 + t94 + t95 + t96 + t97 + t98 + t99 + t100 + t101 + t102 + t103 + t104 + t105 + t106 + t107 + t108 + t109 + t110 + t111 + t112 + t113 + t114 + t115 + t116 + t117 + t118 + t119 + t120 + t121 + t122 + t123 + t124 + t125 + t126 + t127 + t128 + t129 + t130 + t131 + t132 + t133 + t134 + t135 + t136 + t137 + t138 + t139 + t140 + t141 + t142 + t143 + t144 + t145 + t146 + t147 + t148 + t149 + t150 + t151 + t152 + t153 + t154 + t155 + t156 + t157 + t158 + t159 + t160 + t161 + t162 + t163 + t164 + t165 + t166 + t167 + t168 + t169 + t170 + t171 + t172 + t173 + t174 + t175 + t176 + t177 + t178 + t179 + t180 + t181 + t182 + t183 + t184 + t185 + t186 + t187 + t188 + t189 + t190 + t191 + t192 + t193 + t194 + t195 + t196 + t197 + t198 + t199 + t200 + t201 + t202 + t203 + t204 + t205 + t206 + t207 + t208 + t209 + t210 + t211 + t212 + t213 + t214 + t215 + t216 + t217 + t218 + t219 + t220 + t221 + t222 + t223 + t224 + t225 + t226 + t227 + t228 + t229 + t230 + t231 + t232 + t233 + t234 + t235 + t236 + t237 + t238 + t239 + t240 + t241 + t242 + t243 + t244 + t245 + t246 + t247 + t248 + t249
+}
+func h32(x: int) -> int {
+ t0 := x + 0
+ t1 := x + 1
+ t2 := x + 2
+ t3 := x + 3
+ t4 := x + 4
+ t5 := x + 5
+ t6 := x + 6
+ t7 := x + 7
+ t8 := x + 8
+ t9 := x + 9
+ t10 := x + 10
+ t11 := x + 11
+ t12 := x + 12
+ t13 := x + 13
+ t14 := x + 14
+ t15 := x + 15
+ t16 := x + 16
+ t17 := x + 17
+ t18 := x + 18
+ t19 := x + 19
+ t20 := x + 20
+ t21 := x + 21
+ t22 := x + 22
+ t23 := x + 23
+ t24 := x + 24
+ t25 := x + 25
+ t26 := x + 26
+ t27 := x + 27
+ t28 := x + 28
+ t29 := x + 29
+ t30 := x + 30
+ t31 := x + 31
+ t32 := x + 32
+ t33 := x + 33
+ t34 := x + 34
+ t35 := x + 35
+ t36 := x + 36
+ t37 := x + 37
+ t38 := x + 38
+ t39 := x + 39
+ t40 := x + 40
+ t41 := x + 41
+ t42 := x + 42
+ t43 := x + 43
+ t44 := x + 44
+ t45 := x + 45
+ t46 := x + 46
+ t47 := x + 47
+ t48 := x + 48
+ t49 := x + 49
+ t50 := x + 50
+ t51 := x + 51
+ t52 := x + 52
+ t53 := x + 53
+ t54 := x + 54
+ t55 := x + 55
+ t56 := x + 56
+ t57 := x + 57
+ t58 := x + 58
+ t59 := x + 59
+ t60 := x + 60
+ t61 := x + 61
+ t62 := x + 62
+ t63 := x + 63
+ t64 := x + 64
+ t65 := x + 65
+ t66 := x + 66
+ t67 := x + 67
+ t68 := x + 68
+ t69 := x + 69
+ t70 := x + 70
+ t71 := x + 71
+ t72 := x + 72
+ t73 := x + 73
+ t74 := x + 74
+ t75 := x + 75
+ t76 := x + 76
+ t77 := x + 77
+ t78 := x + 78
+ t79 := x + 79
+ t80 := x + 80
+ t81 := x + 81
+ t82 := x + 82
+ t83 := x + 83
+ t84 := x + 84
+ t85 := x + 85
+ t86 := x + 86
+ t87 := x + 87
+ t88 := x + 88
+ t89 := x + 89
+ t90 := x + 90
+ t91 := x + 91
+ t92 := x + 92
+ t93 := x + 93
+ t94 := x + 94
+ t95 := x + 95
+ t96 := x + 96
+ t97 := x + 97
+ t98 := x + 98
+ t99 := x + 99
+ t100 := x + 100
+ t101 := x + 101
+ t102 := x + 102
+ t103 := x + 103
+ t104 := x + 104
+ t105 := x + 105
+ t106 := x + 106
+ t107 := x + 107
+ t108 := x + 108
+ t109 := x + 109
+ t110 := x + 110
+ t111 := x + 111
+ t112 := x + 112
+ t113 := x + 113
+ t114 := x + 114
+ t115 := x + 115
+ t116 := x + 116
+ t117 := x + 117
+ t118 := x + 118
+ t119 := x + 119
+ t120 := x + 120
+ t121 := x + 121
+ t122 := x + 122
+ t123 := x + 123
+ t124 := x + 124
+ t125 := x + 125
+ t126 := x + 126
+ t127 := x + 127
+ t128 := x + 128
+ t129 := x + 129
+ t130 := x + 130
+ t131 := x + 131
+ t132 := x + 132
+ t133 := x + 133
+ t134 := x + 134
+ t135 := x + 135
+ t136 := x + 136
+ t137 := x + 137
+ t138 := x + 138
+ t139 := x + 139
+ t140 := x + 140
+ t141 := x + 141
+ t142 := x + 142
+ t143 := x + 143
+ t144 := x + 144
+ t145 := x + 145
+ t146 := x + 146
+ t147 := x + 147
+ t148 := x + 148
+ t149 := x + 149
+ t150 := x + 150
+ t151 := x + 151
+ t152 := x + 152
+ t153 := x + 153
+ t154 := x + 154
+ t155 := x + 155
+ t156 := x + 156
+ t157 := x + 157
+ t158 := x + 158
+ t159 := x + 159
+ t160 := x + 160
+ t161 := x + 161
+ t162 := x + 162
+ t163 := x + 163
+ t164 := x + 164
+ t165 := x + 165
+ t166 := x + 166
+ t167 := x + 167
+ t168 := x + 168
+ t169 := x + 169
+ t170 := x + 170
+ t171 := x + 171
+ t172 := x + 172
+ t173 := x + 173
+ t174 := x + 174
+ t175 := x + 175
+ t176 := x + 176
+ t177 := x + 177
+ t178 := x + 178
+ t179 := x + 179
+ t180 := x + 180
+ t181 := x + 181
+ t182 := x + 182
+ t183 := x + 183
+ t184 := x + 184
+ t185 := x + 185
+ t186 := x + 186
+ t187 := x + 187
+ t188 := x + 188
+ t189 := x + 189
+ t190 := x + 190
+ t191 := x + 191
+ t192 := x + 192
+ t193 := x + 193
+ t194 := x + 194
+ t195 := x + 195
+ t196 := x + 196
+ t197 := x + 197
+ t198 := x + 198
+ t199 := x + 199
+ t200 := x + 200
+ t201 := x + 201
+ t202 := x + 202
+ t203 := x + 203
+ t204 := x + 204
+ t205 := x + 205
+ t206 := x + 206
+ t207 := x + 207
+ t208 := x + 208
+ t209 := x + 209
+ t210 := x + 210
+ t211 := x + 211
+ t212 := x + 212
+ t213 := x + 213
+ t214 := x + 214
+ t215 := x + 215
+ t216 := x + 216
+ t217 := x + 217
+ t218 := x + 218
+ t219 := x + 219
+ t220 := x + 220
+ t221 := x + 221
+ t222 := x + 222
+ t223 := x + 223
+ t224 := x + 224
+ t225 := x + 225
+ t226 := x + 226
+ t227 := x + 227
+ t228 := x + 228
+ t229 := x + 229
+ t230 := x + 230
+ t231 := x + 231
+ t232 := x + 232
+ t233 := x + 233
+ t234 := x + 234
+ t235 := x + 235
+ t236 := x + 236
+ t237 := x + 237
+ t238 := x + 238
+ t239 := x + 239
+ t240 := x + 240
+ t241 := x + 241
+ t242 := x + 242
+ t243 := x + 243
+ t244 := x + 244
+ t245 := x + 245
+ t246 := x + 246
+ t247 := x + 247
+ t248 := x + 248
+ t249 := x + 249
+ return t0 + t1 + t2 + t3 + t4 + t5 + t6 + t7 + t8 + t9 + t10 + t11 + t12 + t13 + t14 + t15 + t16 + t17 + t18 + t19 + t20 + t21 + t22 + t23 + t24 + t25 + t26 + t27 + t28 + t29 + t30 + t31 + t32 + t33 + t34 + t35 + t36 + t37 + t38 + t39 + t40 + t41 + t42 + t43 + t44 + t45 + t46 + t47 + t48 + t49 + t50 + t51 + t52 + t53 + t54 + t55 + t56 + t57 + t58 + t59 + t60 + t61 + t62 + t63 + t64 + t65 + t66 + t67 + t68 + t69 + t70 + t71 + t72 + t73 + t74 + t75 + t76 + t77 + t78 + t79 + t80 + t81 + t82 + t83 + t84 + t85 + t86 + t87 + t88 + t89 + t90 + t91 + t92 + t93 + t94 + t95 + t96 + t97 + t98 + t99 + t100 + t101 + t102 + t103 + t104 + t105 + t106 + t107 + t108 + t109 + t110 + t111 + t112 + t113 + t114 + t115 + t116 + t117 + t118 + t119 + t120 + t121 + t122 + t123 + t124 + t125 + t126 + t127 + t128 + t129 + t130 + t131 + t132 + t133 + t134 + t135 + t136 + t137 + t138 + t139 + t140 + t141 + t142 + t143 + t144 + t145 + t146 + t147 + t148 + t149 + t150 + t151 + t152 + t153 + t154 + t155 + t156 + t157 + t158 + t159 + t160 + t161 + t162 + t163 + t164 + t165 + t166 + t167 + t168 + t169 + t170 + t171 + t172 + t173 + t174 + t175 + t176 + t177 + t178 + t179 + t180 + t181 + t182 + t183 + t184 + t185 + t186 + t187 + t188 + t189 + t190 + t191 + t192 + t193 + t194 + t195 + t196 + t197 + t198 + t199 + t200 + t201 + t202 + t203 + t204 + t205 + t206 + t207 + t208 + t209 + t210 + t211 + t212 + t213 + t214 + t215 + t216 + t217 + t218 + t219 + t220 + t221 + t222 + t223 + t224 + t225 + t226 + t227 + t228 + t229 + t230 + t231 + t232 + t233 + t234 + t235 + t236 + t237 + t238 + t239 + t240 + t241 + t242 + t243 + t244 + t245 + t246 + t247 + t248 + t249
+}
+func h33(x: int) -> int {
+ t0 := x + 0
+ t1 := x + 1
+ t2 := x + 2
+ t3 := x + 3
+ t4 := x + 4
+ t5 := x + 5
+ t6 := x + 6
+ t7 := x + 7
+ t8 := x + 8
+ t9 := x + 9
+ t10 := x + 10
+ t11 := x + 11
+ t12 := x + 12
+ t13 := x + 13
+ t14 := x + 14
+ t15 := x + 15
+ t16 := x + 16
+ t17 := x + 17
+ t18 := x + 18
+ t19 := x + 19
+ t20 := x + 20
+ t21 := x + 21
+ t22 := x + 22
+ t23 := x + 23
+ t24 := x + 24
+ t25 := x + 25
+ t26 := x + 26
+ t27 := x + 27
+ t28 := x + 28
+ t29 := x + 29
+ t30 := x + 30
+ t31 := x + 31
+ t32 := x + 32
+ t33 := x + 33
+ t34 := x + 34
+ t35 := x + 35
+ t36 := x + 36
+ t37 := x + 37
+ t38 := x + 38
+ t39 := x + 39
+ t40 := x + 40
+ t41 := x + 41
+ t42 := x + 42
+ t43 := x + 43
+ t44 := x + 44
+ t45 := x + 45
+ t46 := x + 46
+ t47 := x + 47
+ t48 := x + 48
+ t49 := x + 49
+ t50 := x + 50
+ t51 := x + 51
+ t52 := x + 52
+ t53 := x + 53
+ t54 := x + 54
+ t55 := x + 55
+ t56 := x + 56
+ t57 := x + 57
+ t58 := x + 58
+ t59 := x + 59
+ t60 := x + 60
+ t61 := x + 61
+ t62 := x + 62
+ t63 := x + 63
+ t64 := x + 64
+ t65 := x + 65
+ t66 := x + 66
+ t67 := x + 67
+ t68 := x + 68
+ t69 := x + 69
+ t70 := x + 70
+ t71 := x + 71
+ t72 := x + 72
+ t73 := x + 73
+ t74 := x + 74
+ t75 := x + 75
+ t76 := x + 76
+ t77 := x + 77
+ t78 := x + 78
+ t79 := x + 79
+ t80 := x + 80
+ t81 := x + 81
+ t82 := x + 82
+ t83 := x + 83
+ t84 := x + 84
+ t85 := x + 85
+ t86 := x + 86
+ t87 := x + 87
+ t88 := x + 88
+ t89 := x + 89
+ t90 := x + 90
+ t91 := x + 91
+ t92 := x + 92
+ t93 := x + 93
+ t94 := x + 94
+ t95 := x + 95
+ t96 := x + 96
+ t97 := x + 97
+ t98 := x + 98
+ t99 := x + 99
+ t100 := x + 100
+ t101 := x + 101
+ t102 := x + 102
+ t103 := x + 103
+ t104 := x + 104
+ t105 := x + 105
+ t106 := x + 106
+ t107 := x + 107
+ t108 := x + 108
+ t109 := x + 109
+ t110 := x + 110
+ t111 := x + 111
+ t112 := x + 112
+ t113 := x + 113
+ t114 := x + 114
+ t115 := x + 115
+ t116 := x + 116
+ t117 := x + 117
+ t118 := x + 118
+ t119 := x + 119
+ t120 := x + 120
+ t121 := x + 121
+ t122 := x + 122
+ t123 := x + 123
+ t124 := x + 124
+ t125 := x + 125
+ t126 := x + 126
+ t127 := x + 127
+ t128 := x + 128
+ t129 := x + 129
+ t130 := x + 130
+ t131 := x + 131
+ t132 := x + 132
+ t133 := x + 133
+ t134 := x + 134
+ t135 := x + 135
+ t136 := x + 136
+ t137 := x + 137
+ t138 := x + 138
+ t139 := x + 139
+ t140 := x + 140
+ t141 := x + 141
+ t142 := x + 142
+ t143 := x + 143
+ t144 := x + 144
+ t145 := x + 145
+ t146 := x + 146
+ t147 := x + 147
+ t148 := x + 148
+ t149 := x + 149
+ t150 := x + 150
+ t151 := x + 151
+ t152 := x + 152
+ t153 := x + 153
+ t154 := x + 154
+ t155 := x + 155
+ t156 := x + 156
+ t157 := x + 157
+ t158 := x + 158
+ t159 := x + 159
+ t160 := x + 160
+ t161 := x + 161
+ t162 := x + 162
+ t163 := x + 163
+ t164 := x + 164
+ t165 := x + 165
+ t166 := x + 166
+ t167 := x + 167
+ t168 := x + 168
+ t169 := x + 169
+ t170 := x + 170
+ t171 := x + 171
+ t172 := x + 172
+ t173 := x + 173
+ t174 := x + 174
+ t175 := x + 175
+ t176 := x + 176
+ t177 := x + 177
+ t178 := x + 178
+ t179 := x + 179
+ t180 := x + 180
+ t181 := x + 181
+ t182 := x + 182
+ t183 := x + 183
+ t184 := x + 184
+ t185 := x + 185
+ t186 := x + 186
+ t187 := x + 187
+ t188 := x + 188
+ t189 := x + 189
+ t190 := x + 190
+ t191 := x + 191
+ t192 := x + 192
+ t193 := x + 193
+ t194 := x + 194
+ t195 := x + 195
+ t196 := x + 196
+ t197 := x + 197
+ t198 := x + 198
+ t199 := x + 199
+ t200 := x + 200
+ t201 := x + 201
+ t202 := x + 202
+ t203 := x + 203
+ t204 := x + 204
+ t205 := x + 205
+ t206 := x + 206
+ t207 := x + 207
+ t208 := x + 208
+ t209 := x + 209
+ t210 := x + 210
+ t211 := x + 211
+ t212 := x + 212
+ t213 := x + 213
+ t214 := x + 214
+ t215 := x + 215
+ t216 := x + 216
+ t217 := x + 217
+ t218 := x + 218
+ t219 := x + 219
+ t220 := x + 220
+ t221 := x + 221
+ t222 := x + 222
+ t223 := x + 223
+ t224 := x + 224
+ t225 := x + 225
+ t226 := x + 226
+ t227 := x + 227
+ t228 := x + 228
+ t229 := x + 229
+ t230 := x + 230
+ t231 := x + 231
+ t232 := x + 232
+ t233 := x + 233
+ t234 := x + 234
+ t235 := x + 235
+ t236 := x + 236
+ t237 := x + 237
+ t238 := x + 238
+ t239 := x + 239
+ t240 := x + 240
+ t241 := x + 241
+ t242 := x + 242
+ t243 := x + 243
+ t244 := x + 244
+ t245 := x + 245
+ t246 := x + 246
+ t247 := x + 247
+ t248 := x + 248
+ t249 := x + 249
+ return t0 + t1 + t2 + t3 + t4 + t5 + t6 + t7 + t8 + t9 + t10 + t11 + t12 + t13 + t14 + t15 + t16 + t17 + t18 + t19 + t20 + t21 + t22 + t23 + t24 + t25 + t26 + t27 + t28 + t29 + t30 + t31 + t32 + t33 + t34 + t35 + t36 + t37 + t38 + t39 + t40 + t41 + t42 + t43 + t44 + t45 + t46 + t47 + t48 + t49 + t50 + t51 + t52 + t53 + t54 + t55 + t56 + t57 + t58 + t59 + t60 + t61 + t62 + t63 + t64 + t65 + t66 + t67 + t68 + t69 + t70 + t71 + t72 + t73 + t74 + t75 + t76 + t77 + t78 + t79 + t80 + t81 + t82 + t83 + t84 + t85 + t86 + t87 + t88 + t89 + t90 + t91 + t92 + t93 + t94 + t95 + t96 + t97 + t98 + t99 + t100 + t101 + t102 + t103 + t104 + t105 + t106 + t107 + t108 + t109 + t110 + t111 + t112 + t113 + t114 + t115 + t116 + t117 + t118 + t119 + t120 + t121 + t122 + t123 + t124 + t125 + t126 + t127 + t128 + t129 + t130 + t131 + t132 + t133 + t134 + t135 + t136 + t137 + t138 + t139 + t140 + t141 + t142 + t143 + t144 + t145 + t146 + t147 + t148 + t149 + t150 + t151 + t152 + t153 + t154 + t155 + t156 + t157 + t158 + t159 + t160 + t161 + t162 + t163 + t164 + t165 + t166 + t167 + t168 + t169 + t170 + t171 + t172 + t173 + t174 + t175 + t176 + t177 + t178 + t179 + t180 + t181 + t182 + t183 + t184 + t185 + t186 + t187 + t188 + t189 + t190 + t191 + t192 + t193 + t194 + t195 + t196 + t197 + t198 + t199 + t200 + t201 + t202 + t203 + t204 + t205 + t206 + t207 + t208 + t209 + t210 + t211 + t212 + t213 + t214 + t215 + t216 + t217 + t218 + t219 + t220 + t221 + t222 + t223 + t224 + t225 + t226 + t227 + t228 + t229 + t230 + t231 + t232 + t233 + t234 + t235 + t236 + t237 + t238 + t239 + t240 + t241 + t242 + t243 + t244 + t245 + t246 + t247 + t248 + t249
+}
+func h34(x: int) -> int {
+ t0 := x + 0
+ t1 := x + 1
+ t2 := x + 2
+ t3 := x + 3
+ t4 := x + 4
+ t5 := x + 5
+ t6 := x + 6
+ t7 := x + 7
+ t8 := x + 8
+ t9 := x + 9
+ t10 := x + 10
+ t11 := x + 11
+ t12 := x + 12
+ t13 := x + 13
+ t14 := x + 14
+ t15 := x + 15
+ t16 := x + 16
+ t17 := x + 17
+ t18 := x + 18
+ t19 := x + 19
+ t20 := x + 20
+ t21 := x + 21
+ t22 := x + 22
+ t23 := x + 23
+ t24 := x + 24
+ t25 := x + 25
+ t26 := x + 26
+ t27 := x + 27
+ t28 := x + 28
+ t29 := x + 29
+ t30 := x + 30
+ t31 := x + 31
+ t32 := x + 32
+ t33 := x + 33
+ t34 := x + 34
+ t35 := x + 35
+ t36 := x + 36
+ t37 := x + 37
+ t38 := x + 38
+ t39 := x + 39
+ t40 := x + 40
+ t41 := x + 41
+ t42 := x + 42
+ t43 := x + 43
+ t44 := x + 44
+ t45 := x + 45
+ t46 := x + 46
+ t47 := x + 47
+ t48 := x + 48
+ t49 := x + 49
+ t50 := x + 50
+ t51 := x + 51
+ t52 := x + 52
+ t53 := x + 53
+ t54 := x + 54
+ t55 := x + 55
+ t56 := x + 56
+ t57 := x + 57
+ t58 := x + 58
+ t59 := x + 59
+ t60 := x + 60
+ t61 := x + 61
+ t62 := x + 62
+ t63 := x + 63
+ t64 := x + 64
+ t65 := x + 65
+ t66 := x + 66
+ t67 := x + 67
+ t68 := x + 68
+ t69 := x + 69
+ t70 := x + 70
+ t71 := x + 71
+ t72 := x + 72
+ t73 := x + 73
+ t74 := x + 74
+ t75 := x + 75
+ t76 := x + 76
+ t77 := x + 77
+ t78 := x + 78
+ t79 := x + 79
+ t80 := x + 80
+ t81 := x + 81
+ t82 := x + 82
+ t83 := x + 83
+ t84 := x + 84
+ t85 := x + 85
+ t86 := x + 86
+ t87 := x + 87
+ t88 := x + 88
+ t89 := x + 89
+ t90 := x + 90
+ t91 := x + 91
+ t92 := x + 92
+ t93 := x + 93
+ t94 := x + 94
+ t95 := x + 95
+ t96 := x + 96
+ t97 := x + 97
+ t98 := x + 98
+ t99 := x + 99
+ t100 := x + 100
+ t101 := x + 101
+ t102 := x + 102
+ t103 := x + 103
+ t104 := x + 104
+ t105 := x + 105
+ t106 := x + 106
+ t107 := x + 107
+ t108 := x + 108
+ t109 := x + 109
+ t110 := x + 110
+ t111 := x + 111
+ t112 := x + 112
+ t113 := x + 113
+ t114 := x + 114
+ t115 := x + 115
+ t116 := x + 116
+ t117 := x + 117
+ t118 := x + 118
+ t119 := x + 119
+ t120 := x + 120
+ t121 := x + 121
+ t122 := x + 122
+ t123 := x + 123
+ t124 := x + 124
+ t125 := x + 125
+ t126 := x + 126
+ t127 := x + 127
+ t128 := x + 128
+ t129 := x + 129
+ t130 := x + 130
+ t131 := x + 131
+ t132 := x + 132
+ t133 := x + 133
+ t134 := x + 134
+ t135 := x + 135
+ t136 := x + 136
+ t137 := x + 137
+ t138 := x + 138
+ t139 := x + 139
+ t140 := x + 140
+ t141 := x + 141
+ t142 := x + 142
+ t143 := x + 143
+ t144 := x + 144
+ t145 := x + 145
+ t146 := x + 146
+ t147 := x + 147
+ t148 := x + 148
+ t149 := x + 149
+ t150 := x + 150
+ t151 := x + 151
+ t152 := x + 152
+ t153 := x + 153
+ t154 := x + 154
+ t155 := x + 155
+ t156 := x + 156
+ t157 := x + 157
+ t158 := x + 158
+ t159 := x + 159
+ t160 := x + 160
+ t161 := x + 161
+ t162 := x + 162
+ t163 := x + 163
+ t164 := x + 164
+ t165 := x + 165
+ t166 := x + 166
+ t167 := x + 167
+ t168 := x + 168
+ t169 := x + 169
+ t170 := x + 170
+ t171 := x + 171
+ t172 := x + 172
+ t173 := x + 173
+ t174 := x + 174
+ t175 := x + 175
+ t176 := x + 176
+ t177 := x + 177
+ t178 := x + 178
+ t179 := x + 179
+ t180 := x + 180
+ t181 := x + 181
+ t182 := x + 182
+ t183 := x + 183
+ t184 := x + 184
+ t185 := x + 185
+ t186 := x + 186
+ t187 := x + 187
+ t188 := x + 188
+ t189 := x + 189
+ t190 := x + 190
+ t191 := x + 191
+ t192 := x + 192
+ t193 := x + 193
+ t194 := x + 194
+ t195 := x + 195
+ t196 := x + 196
+ t197 := x + 197
+ t198 := x + 198
+ t199 := x + 199
+ t200 := x + 200
+ t201 := x + 201
+ t202 := x + 202
+ t203 := x + 203
+ t204 := x + 204
+ t205 := x + 205
+ t206 := x + 206
+ t207 := x + 207
+ t208 := x + 208
+ t209 := x + 209
+ t210 := x + 210
+ t211 := x + 211
+ t212 := x + 212
+ t213 := x + 213
+ t214 := x + 214
+ t215 := x + 215
+ t216 := x + 216
+ t217 := x + 217
+ t218 := x + 218
+ t219 := x + 219
+ t220 := x + 220
+ t221 := x + 221
+ t222 := x + 222
+ t223 := x + 223
+ t224 := x + 224
+ t225 := x + 225
+ t226 := x + 226
+ t227 := x + 227
+ t228 := x + 228
+ t229 := x + 229
+ t230 := x + 230
+ t231 := x + 231
+ t232 := x + 232
+ t233 := x + 233
+ t234 := x + 234
+ t235 := x + 235
+ t236 := x + 236
+ t237 := x + 237
+ t238 := x + 238
+ t239 := x + 239
+ t240 := x + 240
+ t241 := x + 241
+ t242 := x + 242
+ t243 := x + 243
+ t244 := x + 244
+ t245 := x + 245
+ t246 := x + 246
+ t247 := x + 247
+ t248 := x + 248
+ t249 := x + 249
+ return t0 + t1 + t2 + t3 + t4 + t5 + t6 + t7 + t8 + t9 + t10 + t11 + t12 + t13 + t14 + t15 + t16 + t17 + t18 + t19 + t20 + t21 + t22 + t23 + t24 + t25 + t26 + t27 + t28 + t29 + t30 + t31 + t32 + t33 + t34 + t35 + t36 + t37 + t38 + t39 + t40 + t41 + t42 + t43 + t44 + t45 + t46 + t47 + t48 + t49 + t50 + t51 + t52 + t53 + t54 + t55 + t56 + t57 + t58 + t59 + t60 + t61 + t62 + t63 + t64 + t65 + t66 + t67 + t68 + t69 + t70 + t71 + t72 + t73 + t74 + t75 + t76 + t77 + t78 + t79 + t80 + t81 + t82 + t83 + t84 + t85 + t86 + t87 + t88 + t89 + t90 + t91 + t92 + t93 + t94 + t95 + t96 + t97 + t98 + t99 + t100 + t101 + t102 + t103 + t104 + t105 + t106 + t107 + t108 + t109 + t110 + t111 + t112 + t113 + t114 + t115 + t116 + t117 + t118 + t119 + t120 + t121 + t122 + t123 + t124 + t125 + t126 + t127 + t128 + t129 + t130 + t131 + t132 + t133 + t134 + t135 + t136 + t137 + t138 + t139 + t140 + t141 + t142 + t143 + t144 + t145 + t146 + t147 + t148 + t149 + t150 + t151 + t152 + t153 + t154 + t155 + t156 + t157 + t158 + t159 + t160 + t161 + t162 + t163 + t164 + t165 + t166 + t167 + t168 + t169 + t170 + t171 + t172 + t173 + t174 + t175 + t176 + t177 + t178 + t179 + t180 + t181 + t182 + t183 + t184 + t185 + t186 + t187 + t188 + t189 + t190 + t191 + t192 + t193 + t194 + t195 + t196 + t197 + t198 + t199 + t200 + t201 + t202 + t203 + t204 + t205 + t206 + t207 + t208 + t209 + t210 + t211 + t212 + t213 + t214 + t215 + t216 + t217 + t218 + t219 + t220 + t221 + t222 + t223 + t224 + t225 + t226 + t227 + t228 + t229 + t230 + t231 + t232 + t233 + t234 + t235 + t236 + t237 + t238 + t239 + t240 + t241 + t242 + t243 + t244 + t245 + t246 + t247 + t248 + t249
+}
+func h35(x: int) -> int {
+ t0 := x + 0
+ t1 := x + 1
+ t2 := x + 2
+ t3 := x + 3
+ t4 := x + 4
+ t5 := x + 5
+ t6 := x + 6
+ t7 := x + 7
+ t8 := x + 8
+ t9 := x + 9
+ t10 := x + 10
+ t11 := x + 11
+ t12 := x + 12
+ t13 := x + 13
+ t14 := x + 14
+ t15 := x + 15
+ t16 := x + 16
+ t17 := x + 17
+ t18 := x + 18
+ t19 := x + 19
+ t20 := x + 20
+ t21 := x + 21
+ t22 := x + 22
+ t23 := x + 23
+ t24 := x + 24
+ t25 := x + 25
+ t26 := x + 26
+ t27 := x + 27
+ t28 := x + 28
+ t29 := x + 29
+ t30 := x + 30
+ t31 := x + 31
+ t32 := x + 32
+ t33 := x + 33
+ t34 := x + 34
+ t35 := x + 35
+ t36 := x + 36
+ t37 := x + 37
+ t38 := x + 38
+ t39 := x + 39
+ t40 := x + 40
+ t41 := x + 41
+ t42 := x + 42
+ t43 := x + 43
+ t44 := x + 44
+ t45 := x + 45
+ t46 := x + 46
+ t47 := x + 47
+ t48 := x + 48
+ t49 := x + 49
+ t50 := x + 50
+ t51 := x + 51
+ t52 := x + 52
+ t53 := x + 53
+ t54 := x + 54
+ t55 := x + 55
+ t56 := x + 56
+ t57 := x + 57
+ t58 := x + 58
+ t59 := x + 59
+ t60 := x + 60
+ t61 := x + 61
+ t62 := x + 62
+ t63 := x + 63
+ t64 := x + 64
+ t65 := x + 65
+ t66 := x + 66
+ t67 := x + 67
+ t68 := x + 68
+ t69 := x + 69
+ t70 := x + 70
+ t71 := x + 71
+ t72 := x + 72
+ t73 := x + 73
+ t74 := x + 74
+ t75 := x + 75
+ t76 := x + 76
+ t77 := x + 77
+ t78 := x + 78
+ t79 := x + 79
+ t80 := x + 80
+ t81 := x + 81
+ t82 := x + 82
+ t83 := x + 83
+ t84 := x + 84
+ t85 := x + 85
+ t86 := x + 86
+ t87 := x + 87
+ t88 := x + 88
+ t89 := x + 89
+ t90 := x + 90
+ t91 := x + 91
+ t92 := x + 92
+ t93 := x + 93
+ t94 := x + 94
+ t95 := x + 95
+ t96 := x + 96
+ t97 := x + 97
+ t98 := x + 98
+ t99 := x + 99
+ t100 := x + 100
+ t101 := x + 101
+ t102 := x + 102
+ t103 := x + 103
+ t104 := x + 104
+ t105 := x + 105
+ t106 := x + 106
+ t107 := x + 107
+ t108 := x + 108
+ t109 := x + 109
+ t110 := x + 110
+ t111 := x + 111
+ t112 := x + 112
+ t113 := x + 113
+ t114 := x + 114
+ t115 := x + 115
+ t116 := x + 116
+ t117 := x + 117
+ t118 := x + 118
+ t119 := x + 119
+ t120 := x + 120
+ t121 := x + 121
+ t122 := x + 122
+ t123 := x + 123
+ t124 := x + 124
+ t125 := x + 125
+ t126 := x + 126
+ t127 := x + 127
+ t128 := x + 128
+ t129 := x + 129
+ t130 := x + 130
+ t131 := x + 131
+ t132 := x + 132
+ t133 := x + 133
+ t134 := x + 134
+ t135 := x + 135
+ t136 := x + 136
+ t137 := x + 137
+ t138 := x + 138
+ t139 := x + 139
+ t140 := x + 140
+ t141 := x + 141
+ t142 := x + 142
+ t143 := x + 143
+ t144 := x + 144
+ t145 := x + 145
+ t146 := x + 146
+ t147 := x + 147
+ t148 := x + 148
+ t149 := x + 149
+ t150 := x + 150
+ t151 := x + 151
+ t152 := x + 152
+ t153 := x + 153
+ t154 := x + 154
+ t155 := x + 155
+ t156 := x + 156
+ t157 := x + 157
+ t158 := x + 158
+ t159 := x + 159
+ t160 := x + 160
+ t161 := x + 161
+ t162 := x + 162
+ t163 := x + 163
+ t164 := x + 164
+ t165 := x + 165
+ t166 := x + 166
+ t167 := x + 167
+ t168 := x + 168
+ t169 := x + 169
+ t170 := x + 170
+ t171 := x + 171
+ t172 := x + 172
+ t173 := x + 173
+ t174 := x + 174
+ t175 := x + 175
+ t176 := x + 176
+ t177 := x + 177
+ t178 := x + 178
+ t179 := x + 179
+ t180 := x + 180
+ t181 := x + 181
+ t182 := x + 182
+ t183 := x + 183
+ t184 := x + 184
+ t185 := x + 185
+ t186 := x + 186
+ t187 := x + 187
+ t188 := x + 188
+ t189 := x + 189
+ t190 := x + 190
+ t191 := x + 191
+ t192 := x + 192
+ t193 := x + 193
+ t194 := x + 194
+ t195 := x + 195
+ t196 := x + 196
+ t197 := x + 197
+ t198 := x + 198
+ t199 := x + 199
+ t200 := x + 200
+ t201 := x + 201
+ t202 := x + 202
+ t203 := x + 203
+ t204 := x + 204
+ t205 := x + 205
+ t206 := x + 206
+ t207 := x + 207
+ t208 := x + 208
+ t209 := x + 209
+ t210 := x + 210
+ t211 := x + 211
+ t212 := x + 212
+ t213 := x + 213
+ t214 := x + 214
+ t215 := x + 215
+ t216 := x + 216
+ t217 := x + 217
+ t218 := x + 218
+ t219 := x + 219
+ t220 := x + 220
+ t221 := x + 221
+ t222 := x + 222
+ t223 := x + 223
+ t224 := x + 224
+ t225 := x + 225
+ t226 := x + 226
+ t227 := x + 227
+ t228 := x + 228
+ t229 := x + 229
+ t230 := x + 230
+ t231 := x + 231
+ t232 := x + 232
+ t233 := x + 233
+ t234 := x + 234
+ t235 := x + 235
+ t236 := x + 236
+ t237 := x + 237
+ t238 := x + 238
+ t239 := x + 239
+ t240 := x + 240
+ t241 := x + 241
+ t242 := x + 242
+ t243 := x + 243
+ t244 := x + 244
+ t245 := x + 245
+ t246 := x + 246
+ t247 := x + 247
+ t248 := x + 248
+ t249 := x + 249
+ return t0 + t1 + t2 + t3 + t4 + t5 + t6 + t7 + t8 + t9 + t10 + t11 + t12 + t13 + t14 + t15 + t16 + t17 + t18 + t19 + t20 + t21 + t22 + t23 + t24 + t25 + t26 + t27 + t28 + t29 + t30 + t31 + t32 + t33 + t34 + t35 + t36 + t37 + t38 + t39 + t40 + t41 + t42 + t43 + t44 + t45 + t46 + t47 + t48 + t49 + t50 + t51 + t52 + t53 + t54 + t55 + t56 + t57 + t58 + t59 + t60 + t61 + t62 + t63 + t64 + t65 + t66 + t67 + t68 + t69 + t70 + t71 + t72 + t73 + t74 + t75 + t76 + t77 + t78 + t79 + t80 + t81 + t82 + t83 + t84 + t85 + t86 + t87 + t88 + t89 + t90 + t91 + t92 + t93 + t94 + t95 + t96 + t97 + t98 + t99 + t100 + t101 + t102 + t103 + t104 + t105 + t106 + t107 + t108 + t109 + t110 + t111 + t112 + t113 + t114 + t115 + t116 + t117 + t118 + t119 + t120 + t121 + t122 + t123 + t124 + t125 + t126 + t127 + t128 + t129 + t130 + t131 + t132 + t133 + t134 + t135 + t136 + t137 + t138 + t139 + t140 + t141 + t142 + t143 + t144 + t145 + t146 + t147 + t148 + t149 + t150 + t151 + t152 + t153 + t154 + t155 + t156 + t157 + t158 + t159 + t160 + t161 + t162 + t163 + t164 + t165 + t166 + t167 + t168 + t169 + t170 + t171 + t172 + t173 + t174 + t175 + t176 + t177 + t178 + t179 + t180 + t181 + t182 + t183 + t184 + t185 + t186 + t187 + t188 + t189 + t190 + t191 + t192 + t193 + t194 + t195 + t196 + t197 + t198 + t199 + t200 + t201 + t202 + t203 + t204 + t205 + t206 + t207 + t208 + t209 + t210 + t211 + t212 + t213 + t214 + t215 + t216 + t217 + t218 + t219 + t220 + t221 + t222 + t223 + t224 + t225 + t226 + t227 + t228 + t229 + t230 + t231 + t232 + t233 + t234 + t235 + t236 + t237 + t238 + t239 + t240 + t241 + t242 + t243 + t244 + t245 + t246 + t247 + t248 + t249
+}
+func h36(x: int) -> int {
+ t0 := x + 0
+ t1 := x + 1
+ t2 := x + 2
+ t3 := x + 3
+ t4 := x + 4
+ t5 := x + 5
+ t6 := x + 6
+ t7 := x + 7
+ t8 := x + 8
+ t9 := x + 9
+ t10 := x + 10
+ t11 := x + 11
+ t12 := x + 12
+ t13 := x + 13
+ t14 := x + 14
+ t15 := x + 15
+ t16 := x + 16
+ t17 := x + 17
+ t18 := x + 18
+ t19 := x + 19
+ t20 := x + 20
+ t21 := x + 21
+ t22 := x + 22
+ t23 := x + 23
+ t24 := x + 24
+ t25 := x + 25
+ t26 := x + 26
+ t27 := x + 27
+ t28 := x + 28
+ t29 := x + 29
+ t30 := x + 30
+ t31 := x + 31
+ t32 := x + 32
+ t33 := x + 33
+ t34 := x + 34
+ t35 := x + 35
+ t36 := x + 36
+ t37 := x + 37
+ t38 := x + 38
+ t39 := x + 39
+ t40 := x + 40
+ t41 := x + 41
+ t42 := x + 42
+ t43 := x + 43
+ t44 := x + 44
+ t45 := x + 45
+ t46 := x + 46
+ t47 := x + 47
+ t48 := x + 48
+ t49 := x + 49
+ t50 := x + 50
+ t51 := x + 51
+ t52 := x + 52
+ t53 := x + 53
+ t54 := x + 54
+ t55 := x + 55
+ t56 := x + 56
+ t57 := x + 57
+ t58 := x + 58
+ t59 := x + 59
+ t60 := x + 60
+ t61 := x + 61
+ t62 := x + 62
+ t63 := x + 63
+ t64 := x + 64
+ t65 := x + 65
+ t66 := x + 66
+ t67 := x + 67
+ t68 := x + 68
+ t69 := x + 69
+ t70 := x + 70
+ t71 := x + 71
+ t72 := x + 72
+ t73 := x + 73
+ t74 := x + 74
+ t75 := x + 75
+ t76 := x + 76
+ t77 := x + 77
+ t78 := x + 78
+ t79 := x + 79
+ t80 := x + 80
+ t81 := x + 81
+ t82 := x + 82
+ t83 := x + 83
+ t84 := x + 84
+ t85 := x + 85
+ t86 := x + 86
+ t87 := x + 87
+ t88 := x + 88
+ t89 := x + 89
+ t90 := x + 90
+ t91 := x + 91
+ t92 := x + 92
+ t93 := x + 93
+ t94 := x + 94
+ t95 := x + 95
+ t96 := x + 96
+ t97 := x + 97
+ t98 := x + 98
+ t99 := x + 99
+ t100 := x + 100
+ t101 := x + 101
+ t102 := x + 102
+ t103 := x + 103
+ t104 := x + 104
+ t105 := x + 105
+ t106 := x + 106
+ t107 := x + 107
+ t108 := x + 108
+ t109 := x + 109
+ t110 := x + 110
+ t111 := x + 111
+ t112 := x + 112
+ t113 := x + 113
+ t114 := x + 114
+ t115 := x + 115
+ t116 := x + 116
+ t117 := x + 117
+ t118 := x + 118
+ t119 := x + 119
+ t120 := x + 120
+ t121 := x + 121
+ t122 := x + 122
+ t123 := x + 123
+ t124 := x + 124
+ t125 := x + 125
+ t126 := x + 126
+ t127 := x + 127
+ t128 := x + 128
+ t129 := x + 129
+ t130 := x + 130
+ t131 := x + 131
+ t132 := x + 132
+ t133 := x + 133
+ t134 := x + 134
+ t135 := x + 135
+ t136 := x + 136
+ t137 := x + 137
+ t138 := x + 138
+ t139 := x + 139
+ t140 := x + 140
+ t141 := x + 141
+ t142 := x + 142
+ t143 := x + 143
+ t144 := x + 144
+ t145 := x + 145
+ t146 := x + 146
+ t147 := x + 147
+ t148 := x + 148
+ t149 := x + 149
+ t150 := x + 150
+ t151 := x + 151
+ t152 := x + 152
+ t153 := x + 153
+ t154 := x + 154
+ t155 := x + 155
+ t156 := x + 156
+ t157 := x + 157
+ t158 := x + 158
+ t159 := x + 159
+ t160 := x + 160
+ t161 := x + 161
+ t162 := x + 162
+ t163 := x + 163
+ t164 := x + 164
+ t165 := x + 165
+ t166 := x + 166
+ t167 := x + 167
+ t168 := x + 168
+ t169 := x + 169
+ t170 := x + 170
+ t171 := x + 171
+ t172 := x + 172
+ t173 := x + 173
+ t174 := x + 174
+ t175 := x + 175
+ t176 := x + 176
+ t177 := x + 177
+ t178 := x + 178
+ t179 := x + 179
+ t180 := x + 180
+ t181 := x + 181
+ t182 := x + 182
+ t183 := x + 183
+ t184 := x + 184
+ t185 := x + 185
+ t186 := x + 186
+ t187 := x + 187
+ t188 := x + 188
+ t189 := x + 189
+ t190 := x + 190
+ t191 := x + 191
+ t192 := x + 192
+ t193 := x + 193
+ t194 := x + 194
+ t195 := x + 195
+ t196 := x + 196
+ t197 := x + 197
+ t198 := x + 198
+ t199 := x + 199
+ t200 := x + 200
+ t201 := x + 201
+ t202 := x + 202
+ t203 := x + 203
+ t204 := x + 204
+ t205 := x + 205
+ t206 := x + 206
+ t207 := x + 207
+ t208 := x + 208
+ t209 := x + 209
+ t210 := x + 210
+ t211 := x + 211
+ t212 := x + 212
+ t213 := x + 213
+ t214 := x + 214
+ t215 := x + 215
+ t216 := x + 216
+ t217 := x + 217
+ t218 := x + 218
+ t219 := x + 219
+ t220 := x + 220
+ t221 := x + 221
+ t222 := x + 222
+ t223 := x + 223
+ t224 := x + 224
+ t225 := x + 225
+ t226 := x + 226
+ t227 := x + 227
+ t228 := x + 228
+ t229 := x + 229
+ t230 := x + 230
+ t231 := x + 231
+ t232 := x + 232
+ t233 := x + 233
+ t234 := x + 234
+ t235 := x + 235
+ t236 := x + 236
+ t237 := x + 237
+ t238 := x + 238
+ t239 := x + 239
+ t240 := x + 240
+ t241 := x + 241
+ t242 := x + 242
+ t243 := x + 243
+ t244 := x + 244
+ t245 := x + 245
+ t246 := x + 246
+ t247 := x + 247
+ t248 := x + 248
+ t249 := x + 249
+ return t0 + t1 + t2 + t3 + t4 + t5 + t6 + t7 + t8 + t9 + t10 + t11 + t12 + t13 + t14 + t15 + t16 + t17 + t18 + t19 + t20 + t21 + t22 + t23 + t24 + t25 + t26 + t27 + t28 + t29 + t30 + t31 + t32 + t33 + t34 + t35 + t36 + t37 + t38 + t39 + t40 + t41 + t42 + t43 + t44 + t45 + t46 + t47 + t48 + t49 + t50 + t51 + t52 + t53 + t54 + t55 + t56 + t57 + t58 + t59 + t60 + t61 + t62 + t63 + t64 + t65 + t66 + t67 + t68 + t69 + t70 + t71 + t72 + t73 + t74 + t75 + t76 + t77 + t78 + t79 + t80 + t81 + t82 + t83 + t84 + t85 + t86 + t87 + t88 + t89 + t90 + t91 + t92 + t93 + t94 + t95 + t96 + t97 + t98 + t99 + t100 + t101 + t102 + t103 + t104 + t105 + t106 + t107 + t108 + t109 + t110 + t111 + t112 + t113 + t114 + t115 + t116 + t117 + t118 + t119 + t120 + t121 + t122 + t123 + t124 + t125 + t126 + t127 + t128 + t129 + t130 + t131 + t132 + t133 + t134 + t135 + t136 + t137 + t138 + t139 + t140 + t141 + t142 + t143 + t144 + t145 + t146 + t147 + t148 + t149 + t150 + t151 + t152 + t153 + t154 + t155 + t156 + t157 + t158 + t159 + t160 + t161 + t162 + t163 + t164 + t165 + t166 + t167 + t168 + t169 + t170 + t171 + t172 + t173 + t174 + t175 + t176 + t177 + t178 + t179 + t180 + t181 + t182 + t183 + t184 + t185 + t186 + t187 + t188 + t189 + t190 + t191 + t192 + t193 + t194 + t195 + t196 + t197 + t198 + t199 + t200 + t201 + t202 + t203 + t204 + t205 + t206 + t207 + t208 + t209 + t210 + t211 + t212 + t213 + t214 + t215 + t216 + t217 + t218 + t219 + t220 + t221 + t222 + t223 + t224 + t225 + t226 + t227 + t228 + t229 + t230 + t231 + t232 + t233 + t234 + t235 + t236 + t237 + t238 + t239 + t240 + t241 + t242 + t243 + t244 + t245 + t246 + t247 + t248 + t249
+}
+func h37(x: int) -> int {
+ t0 := x + 0
+ t1 := x + 1
+ t2 := x + 2
+ t3 := x + 3
+ t4 := x + 4
+ t5 := x + 5
+ t6 := x + 6
+ t7 := x + 7
+ t8 := x + 8
+ t9 := x + 9
+ t10 := x + 10
+ t11 := x + 11
+ t12 := x + 12
+ t13 := x + 13
+ t14 := x + 14
+ t15 := x + 15
+ t16 := x + 16
+ t17 := x + 17
+ t18 := x + 18
+ t19 := x + 19
+ t20 := x + 20
+ t21 := x + 21
+ t22 := x + 22
+ t23 := x + 23
+ t24 := x + 24
+ t25 := x + 25
+ t26 := x + 26
+ t27 := x + 27
+ t28 := x + 28
+ t29 := x + 29
+ t30 := x + 30
+ t31 := x + 31
+ t32 := x + 32
+ t33 := x + 33
+ t34 := x + 34
+ t35 := x + 35
+ t36 := x + 36
+ t37 := x + 37
+ t38 := x + 38
+ t39 := x + 39
+ t40 := x + 40
+ t41 := x + 41
+ t42 := x + 42
+ t43 := x + 43
+ t44 := x + 44
+ t45 := x + 45
+ t46 := x + 46
+ t47 := x + 47
+ t48 := x + 48
+ t49 := x + 49
+ t50 := x + 50
+ t51 := x + 51
+ t52 := x + 52
+ t53 := x + 53
+ t54 := x + 54
+ t55 := x + 55
+ t56 := x + 56
+ t57 := x + 57
+ t58 := x + 58
+ t59 := x + 59
+ t60 := x + 60
+ t61 := x + 61
+ t62 := x + 62
+ t63 := x + 63
+ t64 := x + 64
+ t65 := x + 65
+ t66 := x + 66
+ t67 := x + 67
+ t68 := x + 68
+ t69 := x + 69
+ t70 := x + 70
+ t71 := x + 71
+ t72 := x + 72
+ t73 := x + 73
+ t74 := x + 74
+ t75 := x + 75
+ t76 := x + 76
+ t77 := x + 77
+ t78 := x + 78
+ t79 := x + 79
+ t80 := x + 80
+ t81 := x + 81
+ t82 := x + 82
+ t83 := x + 83
+ t84 := x + 84
+ t85 := x + 85
+ t86 := x + 86
+ t87 := x + 87
+ t88 := x + 88
+ t89 := x + 89
+ t90 := x + 90
+ t91 := x + 91
+ t92 := x + 92
+ t93 := x + 93
+ t94 := x + 94
+ t95 := x + 95
+ t96 := x + 96
+ t97 := x + 97
+ t98 := x + 98
+ t99 := x + 99
+ t100 := x + 100
+ t101 := x + 101
+ t102 := x + 102
+ t103 := x + 103
+ t104 := x + 104
+ t105 := x + 105
+ t106 := x + 106
+ t107 := x + 107
+ t108 := x + 108
+ t109 := x + 109
+ t110 := x + 110
+ t111 := x + 111
+ t112 := x + 112
+ t113 := x + 113
+ t114 := x + 114
+ t115 := x + 115
+ t116 := x + 116
+ t117 := x + 117
+ t118 := x + 118
+ t119 := x + 119
+ t120 := x + 120
+ t121 := x + 121
+ t122 := x + 122
+ t123 := x + 123
+ t124 := x + 124
+ t125 := x + 125
+ t126 := x + 126
+ t127 := x + 127
+ t128 := x + 128
+ t129 := x + 129
+ t130 := x + 130
+ t131 := x + 131
+ t132 := x + 132
+ t133 := x + 133
+ t134 := x + 134
+ t135 := x + 135
+ t136 := x + 136
+ t137 := x + 137
+ t138 := x + 138
+ t139 := x + 139
+ t140 := x + 140
+ t141 := x + 141
+ t142 := x + 142
+ t143 := x + 143
+ t144 := x + 144
+ t145 := x + 145
+ t146 := x + 146
+ t147 := x + 147
+ t148 := x + 148
+ t149 := x + 149
+ t150 := x + 150
+ t151 := x + 151
+ t152 := x + 152
+ t153 := x + 153
+ t154 := x + 154
+ t155 := x + 155
+ t156 := x + 156
+ t157 := x + 157
+ t158 := x + 158
+ t159 := x + 159
+ t160 := x + 160
+ t161 := x + 161
+ t162 := x + 162
+ t163 := x + 163
+ t164 := x + 164
+ t165 := x + 165
+ t166 := x + 166
+ t167 := x + 167
+ t168 := x + 168
+ t169 := x + 169
+ t170 := x + 170
+ t171 := x + 171
+ t172 := x + 172
+ t173 := x + 173
+ t174 := x + 174
+ t175 := x + 175
+ t176 := x + 176
+ t177 := x + 177
+ t178 := x + 178
+ t179 := x + 179
+ t180 := x + 180
+ t181 := x + 181
+ t182 := x + 182
+ t183 := x + 183
+ t184 := x + 184
+ t185 := x + 185
+ t186 := x + 186
+ t187 := x + 187
+ t188 := x + 188
+ t189 := x + 189
+ t190 := x + 190
+ t191 := x + 191
+ t192 := x + 192
+ t193 := x + 193
+ t194 := x + 194
+ t195 := x + 195
+ t196 := x + 196
+ t197 := x + 197
+ t198 := x + 198
+ t199 := x + 199
+ t200 := x + 200
+ t201 := x + 201
+ t202 := x + 202
+ t203 := x + 203
+ t204 := x + 204
+ t205 := x + 205
+ t206 := x + 206
+ t207 := x + 207
+ t208 := x + 208
+ t209 := x + 209
+ t210 := x + 210
+ t211 := x + 211
+ t212 := x + 212
+ t213 := x + 213
+ t214 := x + 214
+ t215 := x + 215
+ t216 := x + 216
+ t217 := x + 217
+ t218 := x + 218
+ t219 := x + 219
+ t220 := x + 220
+ t221 := x + 221
+ t222 := x + 222
+ t223 := x + 223
+ t224 := x + 224
+ t225 := x + 225
+ t226 := x + 226
+ t227 := x + 227
+ t228 := x + 228
+ t229 := x + 229
+ t230 := x + 230
+ t231 := x + 231
+ t232 := x + 232
+ t233 := x + 233
+ t234 := x + 234
+ t235 := x + 235
+ t236 := x + 236
+ t237 := x + 237
+ t238 := x + 238
+ t239 := x + 239
+ t240 := x + 240
+ t241 := x + 241
+ t242 := x + 242
+ t243 := x + 243
+ t244 := x + 244
+ t245 := x + 245
+ t246 := x + 246
+ t247 := x + 247
+ t248 := x + 248
+ t249 := x + 249
+ return t0 + t1 + t2 + t3 + t4 + t5 + t6 + t7 + t8 + t9 + t10 + t11 + t12 + t13 + t14 + t15 + t16 + t17 + t18 + t19 + t20 + t21 + t22 + t23 + t24 + t25 + t26 + t27 + t28 + t29 + t30 + t31 + t32 + t33 + t34 + t35 + t36 + t37 + t38 + t39 + t40 + t41 + t42 + t43 + t44 + t45 + t46 + t47 + t48 + t49 + t50 + t51 + t52 + t53 + t54 + t55 + t56 + t57 + t58 + t59 + t60 + t61 + t62 + t63 + t64 + t65 + t66 + t67 + t68 + t69 + t70 + t71 + t72 + t73 + t74 + t75 + t76 + t77 + t78 + t79 + t80 + t81 + t82 + t83 + t84 + t85 + t86 + t87 + t88 + t89 + t90 + t91 + t92 + t93 + t94 + t95 + t96 + t97 + t98 + t99 + t100 + t101 + t102 + t103 + t104 + t105 + t106 + t107 + t108 + t109 + t110 + t111 + t112 + t113 + t114 + t115 + t116 + t117 + t118 + t119 + t120 + t121 + t122 + t123 + t124 + t125 + t126 + t127 + t128 + t129 + t130 + t131 + t132 + t133 + t134 + t135 + t136 + t137 + t138 + t139 + t140 + t141 + t142 + t143 + t144 + t145 + t146 + t147 + t148 + t149 + t150 + t151 + t152 + t153 + t154 + t155 + t156 + t157 + t158 + t159 + t160 + t161 + t162 + t163 + t164 + t165 + t166 + t167 + t168 + t169 + t170 + t171 + t172 + t173 + t174 + t175 + t176 + t177 + t178 + t179 + t180 + t181 + t182 + t183 + t184 + t185 + t186 + t187 + t188 + t189 + t190 + t191 + t192 + t193 + t194 + t195 + t196 + t197 + t198 + t199 + t200 + t201 + t202 + t203 + t204 + t205 + t206 + t207 + t208 + t209 + t210 + t211 + t212 + t213 + t214 + t215 + t216 + t217 + t218 + t219 + t220 + t221 + t222 + t223 + t224 + t225 + t226 + t227 + t228 + t229 + t230 + t231 + t232 + t233 + t234 + t235 + t236 + t237 + t238 + t239 + t240 + t241 + t242 + t243 + t244 + t245 + t246 + t247 + t248 + t249
+}
+func h38(x: int) -> int {
+ t0 := x + 0
+ t1 := x + 1
+ t2 := x + 2
+ t3 := x + 3
+ t4 := x + 4
+ t5 := x + 5
+ t6 := x + 6
+ t7 := x + 7
+ t8 := x + 8
+ t9 := x + 9
+ t10 := x + 10
+ t11 := x + 11
+ t12 := x + 12
+ t13 := x + 13
+ t14 := x + 14
+ t15 := x + 15
+ t16 := x + 16
+ t17 := x + 17
+ t18 := x + 18
+ t19 := x + 19
+ t20 := x + 20
+ t21 := x + 21
+ t22 := x + 22
+ t23 := x + 23
+ t24 := x + 24
+ t25 := x + 25
+ t26 := x + 26
+ t27 := x + 27
+ t28 := x + 28
+ t29 := x + 29
+ t30 := x + 30
+ t31 := x + 31
+ t32 := x + 32
+ t33 := x + 33
+ t34 := x + 34
+ t35 := x + 35
+ t36 := x + 36
+ t37 := x + 37
+ t38 := x + 38
+ t39 := x + 39
+ t40 := x + 40
+ t41 := x + 41
+ t42 := x + 42
+ t43 := x + 43
+ t44 := x + 44
+ t45 := x + 45
+ t46 := x + 46
+ t47 := x + 47
+ t48 := x + 48
+ t49 := x + 49
+ t50 := x + 50
+ t51 := x + 51
+ t52 := x + 52
+ t53 := x + 53
+ t54 := x + 54
+ t55 := x + 55
+ t56 := x + 56
+ t57 := x + 57
+ t58 := x + 58
+ t59 := x + 59
+ t60 := x + 60
+ t61 := x + 61
+ t62 := x + 62
+ t63 := x + 63
+ t64 := x + 64
+ t65 := x + 65
+ t66 := x + 66
+ t67 := x + 67
+ t68 := x + 68
+ t69 := x + 69
+ t70 := x + 70
+ t71 := x + 71
+ t72 := x + 72
+ t73 := x + 73
+ t74 := x + 74
+ t75 := x + 75
+ t76 := x + 76
+ t77 := x + 77
+ t78 := x + 78
+ t79 := x + 79
+ t80 := x + 80
+ t81 := x + 81
+ t82 := x + 82
+ t83 := x + 83
+ t84 := x + 84
+ t85 := x + 85
+ t86 := x + 86
+ t87 := x + 87
+ t88 := x + 88
+ t89 := x + 89
+ t90 := x + 90
+ t91 := x + 91
+ t92 := x + 92
+ t93 := x + 93
+ t94 := x + 94
+ t95 := x + 95
+ t96 := x + 96
+ t97 := x + 97
+ t98 := x + 98
+ t99 := x + 99
+ t100 := x + 100
+ t101 := x + 101
+ t102 := x + 102
+ t103 := x + 103
+ t104 := x + 104
+ t105 := x + 105
+ t106 := x + 106
+ t107 := x + 107
+ t108 := x + 108
+ t109 := x + 109
+ t110 := x + 110
+ t111 := x + 111
+ t112 := x + 112
+ t113 := x + 113
+ t114 := x + 114
+ t115 := x + 115
+ t116 := x + 116
+ t117 := x + 117
+ t118 := x + 118
+ t119 := x + 119
+ t120 := x + 120
+ t121 := x + 121
+ t122 := x + 122
+ t123 := x + 123
+ t124 := x + 124
+ t125 := x + 125
+ t126 := x + 126
+ t127 := x + 127
+ t128 := x + 128
+ t129 := x + 129
+ t130 := x + 130
+ t131 := x + 131
+ t132 := x + 132
+ t133 := x + 133
+ t134 := x + 134
+ t135 := x + 135
+ t136 := x + 136
+ t137 := x + 137
+ t138 := x + 138
+ t139 := x + 139
+ t140 := x + 140
+ t141 := x + 141
+ t142 := x + 142
+ t143 := x + 143
+ t144 := x + 144
+ t145 := x + 145
+ t146 := x + 146
+ t147 := x + 147
+ t148 := x + 148
+ t149 := x + 149
+ t150 := x + 150
+ t151 := x + 151
+ t152 := x + 152
+ t153 := x + 153
+ t154 := x + 154
+ t155 := x + 155
+ t156 := x + 156
+ t157 := x + 157
+ t158 := x + 158
+ t159 := x + 159
+ t160 := x + 160
+ t161 := x + 161
+ t162 := x + 162
+ t163 := x + 163
+ t164 := x + 164
+ t165 := x + 165
+ t166 := x + 166
+ t167 := x + 167
+ t168 := x + 168
+ t169 := x + 169
+ t170 := x + 170
+ t171 := x + 171
+ t172 := x + 172
+ t173 := x + 173
+ t174 := x + 174
+ t175 := x + 175
+ t176 := x + 176
+ t177 := x + 177
+ t178 := x + 178
+ t179 := x + 179
+ t180 := x + 180
+ t181 := x + 181
+ t182 := x + 182
+ t183 := x + 183
+ t184 := x + 184
+ t185 := x + 185
+ t186 := x + 186
+ t187 := x + 187
+ t188 := x + 188
+ t189 := x + 189
+ t190 := x + 190
+ t191 := x + 191
+ t192 := x + 192
+ t193 := x + 193
+ t194 := x + 194
+ t195 := x + 195
+ t196 := x + 196
+ t197 := x + 197
+ t198 := x + 198
+ t199 := x + 199
+ t200 := x + 200
+ t201 := x + 201
+ t202 := x + 202
+ t203 := x + 203
+ t204 := x + 204
+ t205 := x + 205
+ t206 := x + 206
+ t207 := x + 207
+ t208 := x + 208
+ t209 := x + 209
+ t210 := x + 210
+ t211 := x + 211
+ t212 := x + 212
+ t213 := x + 213
+ t214 := x + 214
+ t215 := x + 215
+ t216 := x + 216
+ t217 := x + 217
+ t218 := x + 218
+ t219 := x + 219
+ t220 := x + 220
+ t221 := x + 221
+ t222 := x + 222
+ t223 := x + 223
+ t224 := x + 224
+ t225 := x + 225
+ t226 := x + 226
+ t227 := x + 227
+ t228 := x + 228
+ t229 := x + 229
+ t230 := x + 230
+ t231 := x + 231
+ t232 := x + 232
+ t233 := x + 233
+ t234 := x + 234
+ t235 := x + 235
+ t236 := x + 236
+ t237 := x + 237
+ t238 := x + 238
+ t239 := x + 239
+ t240 := x + 240
+ t241 := x + 241
+ t242 := x + 242
+ t243 := x + 243
+ t244 := x + 244
+ t245 := x + 245
+ t246 := x + 246
+ t247 := x + 247
+ t248 := x + 248
+ t249 := x + 249
+ return t0 + t1 + t2 + t3 + t4 + t5 + t6 + t7 + t8 + t9 + t10 + t11 + t12 + t13 + t14 + t15 + t16 + t17 + t18 + t19 + t20 + t21 + t22 + t23 + t24 + t25 + t26 + t27 + t28 + t29 + t30 + t31 + t32 + t33 + t34 + t35 + t36 + t37 + t38 + t39 + t40 + t41 + t42 + t43 + t44 + t45 + t46 + t47 + t48 + t49 + t50 + t51 + t52 + t53 + t54 + t55 + t56 + t57 + t58 + t59 + t60 + t61 + t62 + t63 + t64 + t65 + t66 + t67 + t68 + t69 + t70 + t71 + t72 + t73 + t74 + t75 + t76 + t77 + t78 + t79 + t80 + t81 + t82 + t83 + t84 + t85 + t86 + t87 + t88 + t89 + t90 + t91 + t92 + t93 + t94 + t95 + t96 + t97 + t98 + t99 + t100 + t101 + t102 + t103 + t104 + t105 + t106 + t107 + t108 + t109 + t110 + t111 + t112 + t113 + t114 + t115 + t116 + t117 + t118 + t119 + t120 + t121 + t122 + t123 + t124 + t125 + t126 + t127 + t128 + t129 + t130 + t131 + t132 + t133 + t134 + t135 + t136 + t137 + t138 + t139 + t140 + t141 + t142 + t143 + t144 + t145 + t146 + t147 + t148 + t149 + t150 + t151 + t152 + t153 + t154 + t155 + t156 + t157 + t158 + t159 + t160 + t161 + t162 + t163 + t164 + t165 + t166 + t167 + t168 + t169 + t170 + t171 + t172 + t173 + t174 + t175 + t176 + t177 + t178 + t179 + t180 + t181 + t182 + t183 + t184 + t185 + t186 + t187 + t188 + t189 + t190 + t191 + t192 + t193 + t194 + t195 + t196 + t197 + t198 + t199 + t200 + t201 + t202 + t203 + t204 + t205 + t206 + t207 + t208 + t209 + t210 + t211 + t212 + t213 + t214 + t215 + t216 + t217 + t218 + t219 + t220 + t221 + t222 + t223 + t224 + t225 + t226 + t227 + t228 + t229 + t230 + t231 + t232 + t233 + t234 + t235 + t236 + t237 + t238 + t239 + t240 + t241 + t242 + t243 + t244 + t245 + t246 + t247 + t248 + t249
+}
+func h39(x: int) -> int {
+ t0 := x + 0
+ t1 := x + 1
+ t2 := x + 2
+ t3 := x + 3
+ t4 := x + 4
+ t5 := x + 5
+ t6 := x + 6
+ t7 := x + 7
+ t8 := x + 8
+ t9 := x + 9
+ t10 := x + 10
+ t11 := x + 11
+ t12 := x + 12
+ t13 := x + 13
+ t14 := x + 14
+ t15 := x + 15
+ t16 := x + 16
+ t17 := x + 17
+ t18 := x + 18
+ t19 := x + 19
+ t20 := x + 20
+ t21 := x + 21
+ t22 := x + 22
+ t23 := x + 23
+ t24 := x + 24
+ t25 := x + 25
+ t26 := x + 26
+ t27 := x + 27
+ t28 := x + 28
+ t29 := x + 29
+ t30 := x + 30
+ t31 := x + 31
+ t32 := x + 32
+ t33 := x + 33
+ t34 := x + 34
+ t35 := x + 35
+ t36 := x + 36
+ t37 := x + 37
+ t38 := x + 38
+ t39 := x + 39
+ t40 := x + 40
+ t41 := x + 41
+ t42 := x + 42
+ t43 := x + 43
+ t44 := x + 44
+ t45 := x + 45
+ t46 := x + 46
+ t47 := x + 47
+ t48 := x + 48
+ t49 := x + 49
+ t50 := x + 50
+ t51 := x + 51
+ t52 := x + 52
+ t53 := x + 53
+ t54 := x + 54
+ t55 := x + 55
+ t56 := x + 56
+ t57 := x + 57
+ t58 := x + 58
+ t59 := x + 59
+ t60 := x + 60
+ t61 := x + 61
+ t62 := x + 62
+ t63 := x + 63
+ t64 := x + 64
+ t65 := x + 65
+ t66 := x + 66
+ t67 := x + 67
+ t68 := x + 68
+ t69 := x + 69
+ t70 := x + 70
+ t71 := x + 71
+ t72 := x + 72
+ t73 := x + 73
+ t74 := x + 74
+ t75 := x + 75
+ t76 := x + 76
+ t77 := x + 77
+ t78 := x + 78
+ t79 := x + 79
+ t80 := x + 80
+ t81 := x + 81
+ t82 := x + 82
+ t83 := x + 83
+ t84 := x + 84
+ t85 := x + 85
+ t86 := x + 86
+ t87 := x + 87
+ t88 := x + 88
+ t89 := x + 89
+ t90 := x + 90
+ t91 := x + 91
+ t92 := x + 92
+ t93 := x + 93
+ t94 := x + 94
+ t95 := x + 95
+ t96 := x + 96
+ t97 := x + 97
+ t98 := x + 98
+ t99 := x + 99
+ t100 := x + 100
+ t101 := x + 101
+ t102 := x + 102
+ t103 := x + 103
+ t104 := x + 104
+ t105 := x + 105
+ t106 := x + 106
+ t107 := x + 107
+ t108 := x + 108
+ t109 := x + 109
+ t110 := x + 110
+ t111 := x + 111
+ t112 := x + 112
+ t113 := x + 113
+ t114 := x + 114
+ t115 := x + 115
+ t116 := x + 116
+ t117 := x + 117
+ t118 := x + 118
+ t119 := x + 119
+ t120 := x + 120
+ t121 := x + 121
+ t122 := x + 122
+ t123 := x + 123
+ t124 := x + 124
+ t125 := x + 125
+ t126 := x + 126
+ t127 := x + 127
+ t128 := x + 128
+ t129 := x + 129
+ t130 := x + 130
+ t131 := x + 131
+ t132 := x + 132
+ t133 := x + 133
+ t134 := x + 134
+ t135 := x + 135
+ t136 := x + 136
+ t137 := x + 137
+ t138 := x + 138
+ t139 := x + 139
+ t140 := x + 140
+ t141 := x + 141
+ t142 := x + 142
+ t143 := x + 143
+ t144 := x + 144
+ t145 := x + 145
+ t146 := x + 146
+ t147 := x + 147
+ t148 := x + 148
+ t149 := x + 149
+ t150 := x + 150
+ t151 := x + 151
+ t152 := x + 152
+ t153 := x + 153
+ t154 := x + 154
+ t155 := x + 155
+ t156 := x + 156
+ t157 := x + 157
+ t158 := x + 158
+ t159 := x + 159
+ t160 := x + 160
+ t161 := x + 161
+ t162 := x + 162
+ t163 := x + 163
+ t164 := x + 164
+ t165 := x + 165
+ t166 := x + 166
+ t167 := x + 167
+ t168 := x + 168
+ t169 := x + 169
+ t170 := x + 170
+ t171 := x + 171
+ t172 := x + 172
+ t173 := x + 173
+ t174 := x + 174
+ t175 := x + 175
+ t176 := x + 176
+ t177 := x + 177
+ t178 := x + 178
+ t179 := x + 179
+ t180 := x + 180
+ t181 := x + 181
+ t182 := x + 182
+ t183 := x + 183
+ t184 := x + 184
+ t185 := x + 185
+ t186 := x + 186
+ t187 := x + 187
+ t188 := x + 188
+ t189 := x + 189
+ t190 := x + 190
+ t191 := x + 191
+ t192 := x + 192
+ t193 := x + 193
+ t194 := x + 194
+ t195 := x + 195
+ t196 := x + 196
+ t197 := x + 197
+ t198 := x + 198
+ t199 := x + 199
+ t200 := x + 200
+ t201 := x + 201
+ t202 := x + 202
+ t203 := x + 203
+ t204 := x + 204
+ t205 := x + 205
+ t206 := x + 206
+ t207 := x + 207
+ t208 := x + 208
+ t209 := x + 209
+ t210 := x + 210
+ t211 := x + 211
+ t212 := x + 212
+ t213 := x + 213
+ t214 := x + 214
+ t215 := x + 215
+ t216 := x + 216
+ t217 := x + 217
+ t218 := x + 218
+ t219 := x + 219
+ t220 := x + 220
+ t221 := x + 221
+ t222 := x + 222
+ t223 := x + 223
+ t224 := x + 224
+ t225 := x + 225
+ t226 := x + 226
+ t227 := x + 227
+ t228 := x + 228
+ t229 := x + 229
+ t230 := x + 230
+ t231 := x + 231
+ t232 := x + 232
+ t233 := x + 233
+ t234 := x + 234
+ t235 := x + 235
+ t236 := x + 236
+ t237 := x + 237
+ t238 := x + 238
+ t239 := x + 239
+ t240 := x + 240
+ t241 := x + 241
+ t242 := x + 242
+ t243 := x + 243
+ t244 := x + 244
+ t245 := x + 245
+ t246 := x + 246
+ t247 := x + 247
+ t248 := x + 248
+ t249 := x + 249
+ return t0 + t1 + t2 + t3 + t4 + t5 + t6 + t7 + t8 + t9 + t10 + t11 + t12 + t13 + t14 + t15 + t16 + t17 + t18 + t19 + t20 + t21 + t22 + t23 + t24 + t25 + t26 + t27 + t28 + t29 + t30 + t31 + t32 + t33 + t34 + t35 + t36 + t37 + t38 + t39 + t40 + t41 + t42 + t43 + t44 + t45 + t46 + t47 + t48 + t49 + t50 + t51 + t52 + t53 + t54 + t55 + t56 + t57 + t58 + t59 + t60 + t61 + t62 + t63 + t64 + t65 + t66 + t67 + t68 + t69 + t70 + t71 + t72 + t73 + t74 + t75 + t76 + t77 + t78 + t79 + t80 + t81 + t82 + t83 + t84 + t85 + t86 + t87 + t88 + t89 + t90 + t91 + t92 + t93 + t94 + t95 + t96 + t97 + t98 + t99 + t100 + t101 + t102 + t103 + t104 + t105 + t106 + t107 + t108 + t109 + t110 + t111 + t112 + t113 + t114 + t115 + t116 + t117 + t118 + t119 + t120 + t121 + t122 + t123 + t124 + t125 + t126 + t127 + t128 + t129 + t130 + t131 + t132 + t133 + t134 + t135 + t136 + t137 + t138 + t139 + t140 + t141 + t142 + t143 + t144 + t145 + t146 + t147 + t148 + t149 + t150 + t151 + t152 + t153 + t154 + t155 + t156 + t157 + t158 + t159 + t160 + t161 + t162 + t163 + t164 + t165 + t166 + t167 + t168 + t169 + t170 + t171 + t172 + t173 + t174 + t175 + t176 + t177 + t178 + t179 + t180 + t181 + t182 + t183 + t184 + t185 + t186 + t187 + t188 + t189 + t190 + t191 + t192 + t193 + t194 + t195 + t196 + t197 + t198 + t199 + t200 + t201 + t202 + t203 + t204 + t205 + t206 + t207 + t208 + t209 + t210 + t211 + t212 + t213 + t214 + t215 + t216 + t217 + t218 + t219 + t220 + t221 + t222 + t223 + t224 + t225 + t226 + t227 + t228 + t229 + t230 + t231 + t232 + t233 + t234 + t235 + t236 + t237 + t238 + t239 + t240 + t241 + t242 + t243 + t244 + t245 + t246 + t247 + t248 + t249
+}
+func h40(x: int) -> int {
+ t0 := x + 0
+ t1 := x + 1
+ t2 := x + 2
+ t3 := x + 3
+ t4 := x + 4
+ t5 := x + 5
+ t6 := x + 6
+ t7 := x + 7
+ t8 := x + 8
+ t9 := x + 9
+ t10 := x + 10
+ t11 := x + 11
+ t12 := x + 12
+ t13 := x + 13
+ t14 := x + 14
+ t15 := x + 15
+ t16 := x + 16
+ t17 := x + 17
+ t18 := x + 18
+ t19 := x + 19
+ t20 := x + 20
+ t21 := x + 21
+ t22 := x + 22
+ t23 := x + 23
+ t24 := x + 24
+ t25 := x + 25
+ t26 := x + 26
+ t27 := x + 27
+ t28 := x + 28
+ t29 := x + 29
+ t30 := x + 30
+ t31 := x + 31
+ t32 := x + 32
+ t33 := x + 33
+ t34 := x + 34
+ t35 := x + 35
+ t36 := x + 36
+ t37 := x + 37
+ t38 := x + 38
+ t39 := x + 39
+ t40 := x + 40
+ t41 := x + 41
+ t42 := x + 42
+ t43 := x + 43
+ t44 := x + 44
+ t45 := x + 45
+ t46 := x + 46
+ t47 := x + 47
+ t48 := x + 48
+ t49 := x + 49
+ t50 := x + 50
+ t51 := x + 51
+ t52 := x + 52
+ t53 := x + 53
+ t54 := x + 54
+ t55 := x + 55
+ t56 := x + 56
+ t57 := x + 57
+ t58 := x + 58
+ t59 := x + 59
+ t60 := x + 60
+ t61 := x + 61
+ t62 := x + 62
+ t63 := x + 63
+ t64 := x + 64
+ t65 := x + 65
+ t66 := x + 66
+ t67 := x + 67
+ t68 := x + 68
+ t69 := x + 69
+ t70 := x + 70
+ t71 := x + 71
+ t72 := x + 72
+ t73 := x + 73
+ t74 := x + 74
+ t75 := x + 75
+ t76 := x + 76
+ t77 := x + 77
+ t78 := x + 78
+ t79 := x + 79
+ t80 := x + 80
+ t81 := x + 81
+ t82 := x + 82
+ t83 := x + 83
+ t84 := x + 84
+ t85 := x + 85
+ t86 := x + 86
+ t87 := x + 87
+ t88 := x + 88
+ t89 := x + 89
+ t90 := x + 90
+ t91 := x + 91
+ t92 := x + 92
+ t93 := x + 93
+ t94 := x + 94
+ t95 := x + 95
+ t96 := x + 96
+ t97 := x + 97
+ t98 := x + 98
+ t99 := x + 99
+ t100 := x + 100
+ t101 := x + 101
+ t102 := x + 102
+ t103 := x + 103
+ t104 := x + 104
+ t105 := x + 105
+ t106 := x + 106
+ t107 := x + 107
+ t108 := x + 108
+ t109 := x + 109
+ t110 := x + 110
+ t111 := x + 111
+ t112 := x + 112
+ t113 := x + 113
+ t114 := x + 114
+ t115 := x + 115
+ t116 := x + 116
+ t117 := x + 117
+ t118 := x + 118
+ t119 := x + 119
+ t120 := x + 120
+ t121 := x + 121
+ t122 := x + 122
+ t123 := x + 123
+ t124 := x + 124
+ t125 := x + 125
+ t126 := x + 126
+ t127 := x + 127
+ t128 := x + 128
+ t129 := x + 129
+ t130 := x + 130
+ t131 := x + 131
+ t132 := x + 132
+ t133 := x + 133
+ t134 := x + 134
+ t135 := x + 135
+ t136 := x + 136
+ t137 := x + 137
+ t138 := x + 138
+ t139 := x + 139
+ t140 := x + 140
+ t141 := x + 141
+ t142 := x + 142
+ t143 := x + 143
+ t144 := x + 144
+ t145 := x + 145
+ t146 := x + 146
+ t147 := x + 147
+ t148 := x + 148
+ t149 := x + 149
+ t150 := x + 150
+ t151 := x + 151
+ t152 := x + 152
+ t153 := x + 153
+ t154 := x + 154
+ t155 := x + 155
+ t156 := x + 156
+ t157 := x + 157
+ t158 := x + 158
+ t159 := x + 159
+ t160 := x + 160
+ t161 := x + 161
+ t162 := x + 162
+ t163 := x + 163
+ t164 := x + 164
+ t165 := x + 165
+ t166 := x + 166
+ t167 := x + 167
+ t168 := x + 168
+ t169 := x + 169
+ t170 := x + 170
+ t171 := x + 171
+ t172 := x + 172
+ t173 := x + 173
+ t174 := x + 174
+ t175 := x + 175
+ t176 := x + 176
+ t177 := x + 177
+ t178 := x + 178
+ t179 := x + 179
+ t180 := x + 180
+ t181 := x + 181
+ t182 := x + 182
+ t183 := x + 183
+ t184 := x + 184
+ t185 := x + 185
+ t186 := x + 186
+ t187 := x + 187
+ t188 := x + 188
+ t189 := x + 189
+ t190 := x + 190
+ t191 := x + 191
+ t192 := x + 192
+ t193 := x + 193
+ t194 := x + 194
+ t195 := x + 195
+ t196 := x + 196
+ t197 := x + 197
+ t198 := x + 198
+ t199 := x + 199
+ t200 := x + 200
+ t201 := x + 201
+ t202 := x + 202
+ t203 := x + 203
+ t204 := x + 204
+ t205 := x + 205
+ t206 := x + 206
+ t207 := x + 207
+ t208 := x + 208
+ t209 := x + 209
+ t210 := x + 210
+ t211 := x + 211
+ t212 := x + 212
+ t213 := x + 213
+ t214 := x + 214
+ t215 := x + 215
+ t216 := x + 216
+ t217 := x + 217
+ t218 := x + 218
+ t219 := x + 219
+ t220 := x + 220
+ t221 := x + 221
+ t222 := x + 222
+ t223 := x + 223
+ t224 := x + 224
+ t225 := x + 225
+ t226 := x + 226
+ t227 := x + 227
+ t228 := x + 228
+ t229 := x + 229
+ t230 := x + 230
+ t231 := x + 231
+ t232 := x + 232
+ t233 := x + 233
+ t234 := x + 234
+ t235 := x + 235
+ t236 := x + 236
+ t237 := x + 237
+ t238 := x + 238
+ t239 := x + 239
+ t240 := x + 240
+ t241 := x + 241
+ t242 := x + 242
+ t243 := x + 243
+ t244 := x + 244
+ t245 := x + 245
+ t246 := x + 246
+ t247 := x + 247
+ t248 := x + 248
+ t249 := x + 249
+ return t0 + t1 + t2 + t3 + t4 + t5 + t6 + t7 + t8 + t9 + t10 + t11 + t12 + t13 + t14 + t15 + t16 + t17 + t18 + t19 + t20 + t21 + t22 + t23 + t24 + t25 + t26 + t27 + t28 + t29 + t30 + t31 + t32 + t33 + t34 + t35 + t36 + t37 + t38 + t39 + t40 + t41 + t42 + t43 + t44 + t45 + t46 + t47 + t48 + t49 + t50 + t51 + t52 + t53 + t54 + t55 + t56 + t57 + t58 + t59 + t60 + t61 + t62 + t63 + t64 + t65 + t66 + t67 + t68 + t69 + t70 + t71 + t72 + t73 + t74 + t75 + t76 + t77 + t78 + t79 + t80 + t81 + t82 + t83 + t84 + t85 + t86 + t87 + t88 + t89 + t90 + t91 + t92 + t93 + t94 + t95 + t96 + t97 + t98 + t99 + t100 + t101 + t102 + t103 + t104 + t105 + t106 + t107 + t108 + t109 + t110 + t111 + t112 + t113 + t114 + t115 + t116 + t117 + t118 + t119 + t120 + t121 + t122 + t123 + t124 + t125 + t126 + t127 + t128 + t129 + t130 + t131 + t132 + t133 + t134 + t135 + t136 + t137 + t138 + t139 + t140 + t141 + t142 + t143 + t144 + t145 + t146 + t147 + t148 + t149 + t150 + t151 + t152 + t153 + t154 + t155 + t156 + t157 + t158 + t159 + t160 + t161 + t162 + t163 + t164 + t165 + t166 + t167 + t168 + t169 + t170 + t171 + t172 + t173 + t174 + t175 + t176 + t177 + t178 + t179 + t180 + t181 + t182 + t183 + t184 + t185 + t186 + t187 + t188 + t189 + t190 + t191 + t192 + t193 + t194 + t195 + t196 + t197 + t198 + t199 + t200 + t201 + t202 + t203 + t204 + t205 + t206 + t207 + t208 + t209 + t210 + t211 + t212 + t213 + t214 + t215 + t216 + t217 + t218 + t219 + t220 + t221 + t222 + t223 + t224 + t225 + t226 + t227 + t228 + t229 + t230 + t231 + t232 + t233 + t234 + t235 + t236 + t237 + t238 + t239 + t240 + t241 + t242 + t243 + t244 + t245 + t246 + t247 + t248 + t249
+}
+func h41(x: int) -> int {
+ t0 := x + 0
+ t1 := x + 1
+ t2 := x + 2
+ t3 := x + 3
+ t4 := x + 4
+ t5 := x + 5
+ t6 := x + 6
+ t7 := x + 7
+ t8 := x + 8
+ t9 := x + 9
+ t10 := x + 10
+ t11 := x + 11
+ t12 := x + 12
+ t13 := x + 13
+ t14 := x + 14
+ t15 := x + 15
+ t16 := x + 16
+ t17 := x + 17
+ t18 := x + 18
+ t19 := x + 19
+ t20 := x + 20
+ t21 := x + 21
+ t22 := x + 22
+ t23 := x + 23
+ t24 := x + 24
+ t25 := x + 25
+ t26 := x + 26
+ t27 := x + 27
+ t28 := x + 28
+ t29 := x + 29
+ t30 := x + 30
+ t31 := x + 31
+ t32 := x + 32
+ t33 := x + 33
+ t34 := x + 34
+ t35 := x + 35
+ t36 := x + 36
+ t37 := x + 37
+ t38 := x + 38
+ t39 := x + 39
+ t40 := x + 40
+ t41 := x + 41
+ t42 := x + 42
+ t43 := x + 43
+ t44 := x + 44
+ t45 := x + 45
+ t46 := x + 46
+ t47 := x + 47
+ t48 := x + 48
+ t49 := x + 49
+ t50 := x + 50
+ t51 := x + 51
+ t52 := x + 52
+ t53 := x + 53
+ t54 := x + 54
+ t55 := x + 55
+ t56 := x + 56
+ t57 := x + 57
+ t58 := x + 58
+ t59 := x + 59
+ t60 := x + 60
+ t61 := x + 61
+ t62 := x + 62
+ t63 := x + 63
+ t64 := x + 64
+ t65 := x + 65
+ t66 := x + 66
+ t67 := x + 67
+ t68 := x + 68
+ t69 := x + 69
+ t70 := x + 70
+ t71 := x + 71
+ t72 := x + 72
+ t73 := x + 73
+ t74 := x + 74
+ t75 := x + 75
+ t76 := x + 76
+ t77 := x + 77
+ t78 := x + 78
+ t79 := x + 79
+ t80 := x + 80
+ t81 := x + 81
+ t82 := x + 82
+ t83 := x + 83
+ t84 := x + 84
+ t85 := x + 85
+ t86 := x + 86
+ t87 := x + 87
+ t88 := x + 88
+ t89 := x + 89
+ t90 := x + 90
+ t91 := x + 91
+ t92 := x + 92
+ t93 := x + 93
+ t94 := x + 94
+ t95 := x + 95
+ t96 := x + 96
+ t97 := x + 97
+ t98 := x + 98
+ t99 := x + 99
+ t100 := x + 100
+ t101 := x + 101
+ t102 := x + 102
+ t103 := x + 103
+ t104 := x + 104
+ t105 := x + 105
+ t106 := x + 106
+ t107 := x + 107
+ t108 := x + 108
+ t109 := x + 109
+ t110 := x + 110
+ t111 := x + 111
+ t112 := x + 112
+ t113 := x + 113
+ t114 := x + 114
+ t115 := x + 115
+ t116 := x + 116
+ t117 := x + 117
+ t118 := x + 118
+ t119 := x + 119
+ t120 := x + 120
+ t121 := x + 121
+ t122 := x + 122
+ t123 := x + 123
+ t124 := x + 124
+ t125 := x + 125
+ t126 := x + 126
+ t127 := x + 127
+ t128 := x + 128
+ t129 := x + 129
+ t130 := x + 130
+ t131 := x + 131
+ t132 := x + 132
+ t133 := x + 133
+ t134 := x + 134
+ t135 := x + 135
+ t136 := x + 136
+ t137 := x + 137
+ t138 := x + 138
+ t139 := x + 139
+ t140 := x + 140
+ t141 := x + 141
+ t142 := x + 142
+ t143 := x + 143
+ t144 := x + 144
+ t145 := x + 145
+ t146 := x + 146
+ t147 := x + 147
+ t148 := x + 148
+ t149 := x + 149
+ t150 := x + 150
+ t151 := x + 151
+ t152 := x + 152
+ t153 := x + 153
+ t154 := x + 154
+ t155 := x + 155
+ t156 := x + 156
+ t157 := x + 157
+ t158 := x + 158
+ t159 := x + 159
+ t160 := x + 160
+ t161 := x + 161
+ t162 := x + 162
+ t163 := x + 163
+ t164 := x + 164
+ t165 := x + 165
+ t166 := x + 166
+ t167 := x + 167
+ t168 := x + 168
+ t169 := x + 169
+ t170 := x + 170
+ t171 := x + 171
+ t172 := x + 172
+ t173 := x + 173
+ t174 := x + 174
+ t175 := x + 175
+ t176 := x + 176
+ t177 := x + 177
+ t178 := x + 178
+ t179 := x + 179
+ t180 := x + 180
+ t181 := x + 181
+ t182 := x + 182
+ t183 := x + 183
+ t184 := x + 184
+ t185 := x + 185
+ t186 := x + 186
+ t187 := x + 187
+ t188 := x + 188
+ t189 := x + 189
+ t190 := x + 190
+ t191 := x + 191
+ t192 := x + 192
+ t193 := x + 193
+ t194 := x + 194
+ t195 := x + 195
+ t196 := x + 196
+ t197 := x + 197
+ t198 := x + 198
+ t199 := x + 199
+ t200 := x + 200
+ t201 := x + 201
+ t202 := x + 202
+ t203 := x + 203
+ t204 := x + 204
+ t205 := x + 205
+ t206 := x + 206
+ t207 := x + 207
+ t208 := x + 208
+ t209 := x + 209
+ t210 := x + 210
+ t211 := x + 211
+ t212 := x + 212
+ t213 := x + 213
+ t214 := x + 214
+ t215 := x + 215
+ t216 := x + 216
+ t217 := x + 217
+ t218 := x + 218
+ t219 := x + 219
+ t220 := x + 220
+ t221 := x + 221
+ t222 := x + 222
+ t223 := x + 223
+ t224 := x + 224
+ t225 := x + 225
+ t226 := x + 226
+ t227 := x + 227
+ t228 := x + 228
+ t229 := x + 229
+ t230 := x + 230
+ t231 := x + 231
+ t232 := x + 232
+ t233 := x + 233
+ t234 := x + 234
+ t235 := x + 235
+ t236 := x + 236
+ t237 := x + 237
+ t238 := x + 238
+ t239 := x + 239
+ t240 := x + 240
+ t241 := x + 241
+ t242 := x + 242
+ t243 := x + 243
+ t244 := x + 244
+ t245 := x + 245
+ t246 := x + 246
+ t247 := x + 247
+ t248 := x + 248
+ t249 := x + 249
+ return t0 + t1 + t2 + t3 + t4 + t5 + t6 + t7 + t8 + t9 + t10 + t11 + t12 + t13 + t14 + t15 + t16 + t17 + t18 + t19 + t20 + t21 + t22 + t23 + t24 + t25 + t26 + t27 + t28 + t29 + t30 + t31 + t32 + t33 + t34 + t35 + t36 + t37 + t38 + t39 + t40 + t41 + t42 + t43 + t44 + t45 + t46 + t47 + t48 + t49 + t50 + t51 + t52 + t53 + t54 + t55 + t56 + t57 + t58 + t59 + t60 + t61 + t62 + t63 + t64 + t65 + t66 + t67 + t68 + t69 + t70 + t71 + t72 + t73 + t74 + t75 + t76 + t77 + t78 + t79 + t80 + t81 + t82 + t83 + t84 + t85 + t86 + t87 + t88 + t89 + t90 + t91 + t92 + t93 + t94 + t95 + t96 + t97 + t98 + t99 + t100 + t101 + t102 + t103 + t104 + t105 + t106 + t107 + t108 + t109 + t110 + t111 + t112 + t113 + t114 + t115 + t116 + t117 + t118 + t119 + t120 + t121 + t122 + t123 + t124 + t125 + t126 + t127 + t128 + t129 + t130 + t131 + t132 + t133 + t134 + t135 + t136 + t137 + t138 + t139 + t140 + t141 + t142 + t143 + t144 + t145 + t146 + t147 + t148 + t149 + t150 + t151 + t152 + t153 + t154 + t155 + t156 + t157 + t158 + t159 + t160 + t161 + t162 + t163 + t164 + t165 + t166 + t167 + t168 + t169 + t170 + t171 + t172 + t173 + t174 + t175 + t176 + t177 + t178 + t179 + t180 + t181 + t182 + t183 + t184 + t185 + t186 + t187 + t188 + t189 + t190 + t191 + t192 + t193 + t194 + t195 + t196 + t197 + t198 + t199 + t200 + t201 + t202 + t203 + t204 + t205 + t206 + t207 + t208 + t209 + t210 + t211 + t212 + t213 + t214 + t215 + t216 + t217 + t218 + t219 + t220 + t221 + t222 + t223 + t224 + t225 + t226 + t227 + t228 + t229 + t230 + t231 + t232 + t233 + t234 + t235 + t236 + t237 + t238 + t239 + t240 + t241 + t242 + t243 + t244 + t245 + t246 + t247 + t248 + t249
+}
+func h42(x: int) -> int {
+ t0 := x + 0
+ t1 := x + 1
+ t2 := x + 2
+ t3 := x + 3
+ t4 := x + 4
+ t5 := x + 5
+ t6 := x + 6
+ t7 := x + 7
+ t8 := x + 8
+ t9 := x + 9
+ t10 := x + 10
+ t11 := x + 11
+ t12 := x + 12
+ t13 := x + 13
+ t14 := x + 14
+ t15 := x + 15
+ t16 := x + 16
+ t17 := x + 17
+ t18 := x + 18
+ t19 := x + 19
+ t20 := x + 20
+ t21 := x + 21
+ t22 := x + 22
+ t23 := x + 23
+ t24 := x + 24
+ t25 := x + 25
+ t26 := x + 26
+ t27 := x + 27
+ t28 := x + 28
+ t29 := x + 29
+ t30 := x + 30
+ t31 := x + 31
+ t32 := x + 32
+ t33 := x + 33
+ t34 := x + 34
+ t35 := x + 35
+ t36 := x + 36
+ t37 := x + 37
+ t38 := x + 38
+ t39 := x + 39
+ t40 := x + 40
+ t41 := x + 41
+ t42 := x + 42
+ t43 := x + 43
+ t44 := x + 44
+ t45 := x + 45
+ t46 := x + 46
+ t47 := x + 47
+ t48 := x + 48
+ t49 := x + 49
+ t50 := x + 50
+ t51 := x + 51
+ t52 := x + 52
+ t53 := x + 53
+ t54 := x + 54
+ t55 := x + 55
+ t56 := x + 56
+ t57 := x + 57
+ t58 := x + 58
+ t59 := x + 59
+ t60 := x + 60
+ t61 := x + 61
+ t62 := x + 62
+ t63 := x + 63
+ t64 := x + 64
+ t65 := x + 65
+ t66 := x + 66
+ t67 := x + 67
+ t68 := x + 68
+ t69 := x + 69
+ t70 := x + 70
+ t71 := x + 71
+ t72 := x + 72
+ t73 := x + 73
+ t74 := x + 74
+ t75 := x + 75
+ t76 := x + 76
+ t77 := x + 77
+ t78 := x + 78
+ t79 := x + 79
+ t80 := x + 80
+ t81 := x + 81
+ t82 := x + 82
+ t83 := x + 83
+ t84 := x + 84
+ t85 := x + 85
+ t86 := x + 86
+ t87 := x + 87
+ t88 := x + 88
+ t89 := x + 89
+ t90 := x + 90
+ t91 := x + 91
+ t92 := x + 92
+ t93 := x + 93
+ t94 := x + 94
+ t95 := x + 95
+ t96 := x + 96
+ t97 := x + 97
+ t98 := x + 98
+ t99 := x + 99
+ t100 := x + 100
+ t101 := x + 101
+ t102 := x + 102
+ t103 := x + 103
+ t104 := x + 104
+ t105 := x + 105
+ t106 := x + 106
+ t107 := x + 107
+ t108 := x + 108
+ t109 := x + 109
+ t110 := x + 110
+ t111 := x + 111
+ t112 := x + 112
+ t113 := x + 113
+ t114 := x + 114
+ t115 := x + 115
+ t116 := x + 116
+ t117 := x + 117
+ t118 := x + 118
+ t119 := x + 119
+ t120 := x + 120
+ t121 := x + 121
+ t122 := x + 122
+ t123 := x + 123
+ t124 := x + 124
+ t125 := x + 125
+ t126 := x + 126
+ t127 := x + 127
+ t128 := x + 128
+ t129 := x + 129
+ t130 := x + 130
+ t131 := x + 131
+ t132 := x + 132
+ t133 := x + 133
+ t134 := x + 134
+ t135 := x + 135
+ t136 := x + 136
+ t137 := x + 137
+ t138 := x + 138
+ t139 := x + 139
+ t140 := x + 140
+ t141 := x + 141
+ t142 := x + 142
+ t143 := x + 143
+ t144 := x + 144
+ t145 := x + 145
+ t146 := x + 146
+ t147 := x + 147
+ t148 := x + 148
+ t149 := x + 149
+ t150 := x + 150
+ t151 := x + 151
+ t152 := x + 152
+ t153 := x + 153
+ t154 := x + 154
+ t155 := x + 155
+ t156 := x + 156
+ t157 := x + 157
+ t158 := x + 158
+ t159 := x + 159
+ t160 := x + 160
+ t161 := x + 161
+ t162 := x + 162
+ t163 := x + 163
+ t164 := x + 164
+ t165 := x + 165
+ t166 := x + 166
+ t167 := x + 167
+ t168 := x + 168
+ t169 := x + 169
+ t170 := x + 170
+ t171 := x + 171
+ t172 := x + 172
+ t173 := x + 173
+ t174 := x + 174
+ t175 := x + 175
+ t176 := x + 176
+ t177 := x + 177
+ t178 := x + 178
+ t179 := x + 179
+ t180 := x + 180
+ t181 := x + 181
+ t182 := x + 182
+ t183 := x + 183
+ t184 := x + 184
+ t185 := x + 185
+ t186 := x + 186
+ t187 := x + 187
+ t188 := x + 188
+ t189 := x + 189
+ t190 := x + 190
+ t191 := x + 191
+ t192 := x + 192
+ t193 := x + 193
+ t194 := x + 194
+ t195 := x + 195
+ t196 := x + 196
+ t197 := x + 197
+ t198 := x + 198
+ t199 := x + 199
+ t200 := x + 200
+ t201 := x + 201
+ t202 := x + 202
+ t203 := x + 203
+ t204 := x + 204
+ t205 := x + 205
+ t206 := x + 206
+ t207 := x + 207
+ t208 := x + 208
+ t209 := x + 209
+ t210 := x + 210
+ t211 := x + 211
+ t212 := x + 212
+ t213 := x + 213
+ t214 := x + 214
+ t215 := x + 215
+ t216 := x + 216
+ t217 := x + 217
+ t218 := x + 218
+ t219 := x + 219
+ t220 := x + 220
+ t221 := x + 221
+ t222 := x + 222
+ t223 := x + 223
+ t224 := x + 224
+ t225 := x + 225
+ t226 := x + 226
+ t227 := x + 227
+ t228 := x + 228
+ t229 := x + 229
+ t230 := x + 230
+ t231 := x + 231
+ t232 := x + 232
+ t233 := x + 233
+ t234 := x + 234
+ t235 := x + 235
+ t236 := x + 236
+ t237 := x + 237
+ t238 := x + 238
+ t239 := x + 239
+ t240 := x + 240
+ t241 := x + 241
+ t242 := x + 242
+ t243 := x + 243
+ t244 := x + 244
+ t245 := x + 245
+ t246 := x + 246
+ t247 := x + 247
+ t248 := x + 248
+ t249 := x + 249
+ return t0 + t1 + t2 + t3 + t4 + t5 + t6 + t7 + t8 + t9 + t10 + t11 + t12 + t13 + t14 + t15 + t16 + t17 + t18 + t19 + t20 + t21 + t22 + t23 + t24 + t25 + t26 + t27 + t28 + t29 + t30 + t31 + t32 + t33 + t34 + t35 + t36 + t37 + t38 + t39 + t40 + t41 + t42 + t43 + t44 + t45 + t46 + t47 + t48 + t49 + t50 + t51 + t52 + t53 + t54 + t55 + t56 + t57 + t58 + t59 + t60 + t61 + t62 + t63 + t64 + t65 + t66 + t67 + t68 + t69 + t70 + t71 + t72 + t73 + t74 + t75 + t76 + t77 + t78 + t79 + t80 + t81 + t82 + t83 + t84 + t85 + t86 + t87 + t88 + t89 + t90 + t91 + t92 + t93 + t94 + t95 + t96 + t97 + t98 + t99 + t100 + t101 + t102 + t103 + t104 + t105 + t106 + t107 + t108 + t109 + t110 + t111 + t112 + t113 + t114 + t115 + t116 + t117 + t118 + t119 + t120 + t121 + t122 + t123 + t124 + t125 + t126 + t127 + t128 + t129 + t130 + t131 + t132 + t133 + t134 + t135 + t136 + t137 + t138 + t139 + t140 + t141 + t142 + t143 + t144 + t145 + t146 + t147 + t148 + t149 + t150 + t151 + t152 + t153 + t154 + t155 + t156 + t157 + t158 + t159 + t160 + t161 + t162 + t163 + t164 + t165 + t166 + t167 + t168 + t169 + t170 + t171 + t172 + t173 + t174 + t175 + t176 + t177 + t178 + t179 + t180 + t181 + t182 + t183 + t184 + t185 + t186 + t187 + t188 + t189 + t190 + t191 + t192 + t193 + t194 + t195 + t196 + t197 + t198 + t199 + t200 + t201 + t202 + t203 + t204 + t205 + t206 + t207 + t208 + t209 + t210 + t211 + t212 + t213 + t214 + t215 + t216 + t217 + t218 + t219 + t220 + t221 + t222 + t223 + t224 + t225 + t226 + t227 + t228 + t229 + t230 + t231 + t232 + t233 + t234 + t235 + t236 + t237 + t238 + t239 + t240 + t241 + t242 + t243 + t244 + t245 + t246 + t247 + t248 + t249
+}
+func h43(x: int) -> int {
+ t0 := x + 0
+ t1 := x + 1
+ t2 := x + 2
+ t3 := x + 3
+ t4 := x + 4
+ t5 := x + 5
+ t6 := x + 6
+ t7 := x + 7
+ t8 := x + 8
+ t9 := x + 9
+ t10 := x + 10
+ t11 := x + 11
+ t12 := x + 12
+ t13 := x + 13
+ t14 := x + 14
+ t15 := x + 15
+ t16 := x + 16
+ t17 := x + 17
+ t18 := x + 18
+ t19 := x + 19
+ t20 := x + 20
+ t21 := x + 21
+ t22 := x + 22
+ t23 := x + 23
+ t24 := x + 24
+ t25 := x + 25
+ t26 := x + 26
+ t27 := x + 27
+ t28 := x + 28
+ t29 := x + 29
+ t30 := x + 30
+ t31 := x + 31
+ t32 := x + 32
+ t33 := x + 33
+ t34 := x + 34
+ t35 := x + 35
+ t36 := x + 36
+ t37 := x + 37
+ t38 := x + 38
+ t39 := x + 39
+ t40 := x + 40
+ t41 := x + 41
+ t42 := x + 42
+ t43 := x + 43
+ t44 := x + 44
+ t45 := x + 45
+ t46 := x + 46
+ t47 := x + 47
+ t48 := x + 48
+ t49 := x + 49
+ t50 := x + 50
+ t51 := x + 51
+ t52 := x + 52
+ t53 := x + 53
+ t54 := x + 54
+ t55 := x + 55
+ t56 := x + 56
+ t57 := x + 57
+ t58 := x + 58
+ t59 := x + 59
+ t60 := x + 60
+ t61 := x + 61
+ t62 := x + 62
+ t63 := x + 63
+ t64 := x + 64
+ t65 := x + 65
+ t66 := x + 66
+ t67 := x + 67
+ t68 := x + 68
+ t69 := x + 69
+ t70 := x + 70
+ t71 := x + 71
+ t72 := x + 72
+ t73 := x + 73
+ t74 := x + 74
+ t75 := x + 75
+ t76 := x + 76
+ t77 := x + 77
+ t78 := x + 78
+ t79 := x + 79
+ t80 := x + 80
+ t81 := x + 81
+ t82 := x + 82
+ t83 := x + 83
+ t84 := x + 84
+ t85 := x + 85
+ t86 := x + 86
+ t87 := x + 87
+ t88 := x + 88
+ t89 := x + 89
+ t90 := x + 90
+ t91 := x + 91
+ t92 := x + 92
+ t93 := x + 93
+ t94 := x + 94
+ t95 := x + 95
+ t96 := x + 96
+ t97 := x + 97
+ t98 := x + 98
+ t99 := x + 99
+ t100 := x + 100
+ t101 := x + 101
+ t102 := x + 102
+ t103 := x + 103
+ t104 := x + 104
+ t105 := x + 105
+ t106 := x + 106
+ t107 := x + 107
+ t108 := x + 108
+ t109 := x + 109
+ t110 := x + 110
+ t111 := x + 111
+ t112 := x + 112
+ t113 := x + 113
+ t114 := x + 114
+ t115 := x + 115
+ t116 := x + 116
+ t117 := x + 117
+ t118 := x + 118
+ t119 := x + 119
+ t120 := x + 120
+ t121 := x + 121
+ t122 := x + 122
+ t123 := x + 123
+ t124 := x + 124
+ t125 := x + 125
+ t126 := x + 126
+ t127 := x + 127
+ t128 := x + 128
+ t129 := x + 129
+ t130 := x + 130
+ t131 := x + 131
+ t132 := x + 132
+ t133 := x + 133
+ t134 := x + 134
+ t135 := x + 135
+ t136 := x + 136
+ t137 := x + 137
+ t138 := x + 138
+ t139 := x + 139
+ t140 := x + 140
+ t141 := x + 141
+ t142 := x + 142
+ t143 := x + 143
+ t144 := x + 144
+ t145 := x + 145
+ t146 := x + 146
+ t147 := x + 147
+ t148 := x + 148
+ t149 := x + 149
+ t150 := x + 150
+ t151 := x + 151
+ t152 := x + 152
+ t153 := x + 153
+ t154 := x + 154
+ t155 := x + 155
+ t156 := x + 156
+ t157 := x + 157
+ t158 := x + 158
+ t159 := x + 159
+ t160 := x + 160
+ t161 := x + 161
+ t162 := x + 162
+ t163 := x + 163
+ t164 := x + 164
+ t165 := x + 165
+ t166 := x + 166
+ t167 := x + 167
+ t168 := x + 168
+ t169 := x + 169
+ t170 := x + 170
+ t171 := x + 171
+ t172 := x + 172
+ t173 := x + 173
+ t174 := x + 174
+ t175 := x + 175
+ t176 := x + 176
+ t177 := x + 177
+ t178 := x + 178
+ t179 := x + 179
+ t180 := x + 180
+ t181 := x + 181
+ t182 := x + 182
+ t183 := x + 183
+ t184 := x + 184
+ t185 := x + 185
+ t186 := x + 186
+ t187 := x + 187
+ t188 := x + 188
+ t189 := x + 189
+ t190 := x + 190
+ t191 := x + 191
+ t192 := x + 192
+ t193 := x + 193
+ t194 := x + 194
+ t195 := x + 195
+ t196 := x + 196
+ t197 := x + 197
+ t198 := x + 198
+ t199 := x + 199
+ t200 := x + 200
+ t201 := x + 201
+ t202 := x + 202
+ t203 := x + 203
+ t204 := x + 204
+ t205 := x + 205
+ t206 := x + 206
+ t207 := x + 207
+ t208 := x + 208
+ t209 := x + 209
+ t210 := x + 210
+ t211 := x + 211
+ t212 := x + 212
+ t213 := x + 213
+ t214 := x + 214
+ t215 := x + 215
+ t216 := x + 216
+ t217 := x + 217
+ t218 := x + 218
+ t219 := x + 219
+ t220 := x + 220
+ t221 := x + 221
+ t222 := x + 222
+ t223 := x + 223
+ t224 := x + 224
+ t225 := x + 225
+ t226 := x + 226
+ t227 := x + 227
+ t228 := x + 228
+ t229 := x + 229
+ t230 := x + 230
+ t231 := x + 231
+ t232 := x + 232
+ t233 := x + 233
+ t234 := x + 234
+ t235 := x + 235
+ t236 := x + 236
+ t237 := x + 237
+ t238 := x + 238
+ t239 := x + 239
+ t240 := x + 240
+ t241 := x + 241
+ t242 := x + 242
+ t243 := x + 243
+ t244 := x + 244
+ t245 := x + 245
+ t246 := x + 246
+ t247 := x + 247
+ t248 := x + 248
+ t249 := x + 249
+ return t0 + t1 + t2 + t3 + t4 + t5 + t6 + t7 + t8 + t9 + t10 + t11 + t12 + t13 + t14 + t15 + t16 + t17 + t18 + t19 + t20 + t21 + t22 + t23 + t24 + t25 + t26 + t27 + t28 + t29 + t30 + t31 + t32 + t33 + t34 + t35 + t36 + t37 + t38 + t39 + t40 + t41 + t42 + t43 + t44 + t45 + t46 + t47 + t48 + t49 + t50 + t51 + t52 + t53 + t54 + t55 + t56 + t57 + t58 + t59 + t60 + t61 + t62 + t63 + t64 + t65 + t66 + t67 + t68 + t69 + t70 + t71 + t72 + t73 + t74 + t75 + t76 + t77 + t78 + t79 + t80 + t81 + t82 + t83 + t84 + t85 + t86 + t87 + t88 + t89 + t90 + t91 + t92 + t93 + t94 + t95 + t96 + t97 + t98 + t99 + t100 + t101 + t102 + t103 + t104 + t105 + t106 + t107 + t108 + t109 + t110 + t111 + t112 + t113 + t114 + t115 + t116 + t117 + t118 + t119 + t120 + t121 + t122 + t123 + t124 + t125 + t126 + t127 + t128 + t129 + t130 + t131 + t132 + t133 + t134 + t135 + t136 + t137 + t138 + t139 + t140 + t141 + t142 + t143 + t144 + t145 + t146 + t147 + t148 + t149 + t150 + t151 + t152 + t153 + t154 + t155 + t156 + t157 + t158 + t159 + t160 + t161 + t162 + t163 + t164 + t165 + t166 + t167 + t168 + t169 + t170 + t171 + t172 + t173 + t174 + t175 + t176 + t177 + t178 + t179 + t180 + t181 + t182 + t183 + t184 + t185 + t186 + t187 + t188 + t189 + t190 + t191 + t192 + t193 + t194 + t195 + t196 + t197 + t198 + t199 + t200 + t201 + t202 + t203 + t204 + t205 + t206 + t207 + t208 + t209 + t210 + t211 + t212 + t213 + t214 + t215 + t216 + t217 + t218 + t219 + t220 + t221 + t222 + t223 + t224 + t225 + t226 + t227 + t228 + t229 + t230 + t231 + t232 + t233 + t234 + t235 + t236 + t237 + t238 + t239 + t240 + t241 + t242 + t243 + t244 + t245 + t246 + t247 + t248 + t249
+}
+func h44(x: int) -> int {
+ t0 := x + 0
+ t1 := x + 1
+ t2 := x + 2
+ t3 := x + 3
+ t4 := x + 4
+ t5 := x + 5
+ t6 := x + 6
+ t7 := x + 7
+ t8 := x + 8
+ t9 := x + 9
+ t10 := x + 10
+ t11 := x + 11
+ t12 := x + 12
+ t13 := x + 13
+ t14 := x + 14
+ t15 := x + 15
+ t16 := x + 16
+ t17 := x + 17
+ t18 := x + 18
+ t19 := x + 19
+ t20 := x + 20
+ t21 := x + 21
+ t22 := x + 22
+ t23 := x + 23
+ t24 := x + 24
+ t25 := x + 25
+ t26 := x + 26
+ t27 := x + 27
+ t28 := x + 28
+ t29 := x + 29
+ t30 := x + 30
+ t31 := x + 31
+ t32 := x + 32
+ t33 := x + 33
+ t34 := x + 34
+ t35 := x + 35
+ t36 := x + 36
+ t37 := x + 37
+ t38 := x + 38
+ t39 := x + 39
+ t40 := x + 40
+ t41 := x + 41
+ t42 := x + 42
+ t43 := x + 43
+ t44 := x + 44
+ t45 := x + 45
+ t46 := x + 46
+ t47 := x + 47
+ t48 := x + 48
+ t49 := x + 49
+ t50 := x + 50
+ t51 := x + 51
+ t52 := x + 52
+ t53 := x + 53
+ t54 := x + 54
+ t55 := x + 55
+ t56 := x + 56
+ t57 := x + 57
+ t58 := x + 58
+ t59 := x + 59
+ t60 := x + 60
+ t61 := x + 61
+ t62 := x + 62
+ t63 := x + 63
+ t64 := x + 64
+ t65 := x + 65
+ t66 := x + 66
+ t67 := x + 67
+ t68 := x + 68
+ t69 := x + 69
+ t70 := x + 70
+ t71 := x + 71
+ t72 := x + 72
+ t73 := x + 73
+ t74 := x + 74
+ t75 := x + 75
+ t76 := x + 76
+ t77 := x + 77
+ t78 := x + 78
+ t79 := x + 79
+ t80 := x + 80
+ t81 := x + 81
+ t82 := x + 82
+ t83 := x + 83
+ t84 := x + 84
+ t85 := x + 85
+ t86 := x + 86
+ t87 := x + 87
+ t88 := x + 88
+ t89 := x + 89
+ t90 := x + 90
+ t91 := x + 91
+ t92 := x + 92
+ t93 := x + 93
+ t94 := x + 94
+ t95 := x + 95
+ t96 := x + 96
+ t97 := x + 97
+ t98 := x + 98
+ t99 := x + 99
+ t100 := x + 100
+ t101 := x + 101
+ t102 := x + 102
+ t103 := x + 103
+ t104 := x + 104
+ t105 := x + 105
+ t106 := x + 106
+ t107 := x + 107
+ t108 := x + 108
+ t109 := x + 109
+ t110 := x + 110
+ t111 := x + 111
+ t112 := x + 112
+ t113 := x + 113
+ t114 := x + 114
+ t115 := x + 115
+ t116 := x + 116
+ t117 := x + 117
+ t118 := x + 118
+ t119 := x + 119
+ t120 := x + 120
+ t121 := x + 121
+ t122 := x + 122
+ t123 := x + 123
+ t124 := x + 124
+ t125 := x + 125
+ t126 := x + 126
+ t127 := x + 127
+ t128 := x + 128
+ t129 := x + 129
+ t130 := x + 130
+ t131 := x + 131
+ t132 := x + 132
+ t133 := x + 133
+ t134 := x + 134
+ t135 := x + 135
+ t136 := x + 136
+ t137 := x + 137
+ t138 := x + 138
+ t139 := x + 139
+ t140 := x + 140
+ t141 := x + 141
+ t142 := x + 142
+ t143 := x + 143
+ t144 := x + 144
+ t145 := x + 145
+ t146 := x + 146
+ t147 := x + 147
+ t148 := x + 148
+ t149 := x + 149
+ t150 := x + 150
+ t151 := x + 151
+ t152 := x + 152
+ t153 := x + 153
+ t154 := x + 154
+ t155 := x + 155
+ t156 := x + 156
+ t157 := x + 157
+ t158 := x + 158
+ t159 := x + 159
+ t160 := x + 160
+ t161 := x + 161
+ t162 := x + 162
+ t163 := x + 163
+ t164 := x + 164
+ t165 := x + 165
+ t166 := x + 166
+ t167 := x + 167
+ t168 := x + 168
+ t169 := x + 169
+ t170 := x + 170
+ t171 := x + 171
+ t172 := x + 172
+ t173 := x + 173
+ t174 := x + 174
+ t175 := x + 175
+ t176 := x + 176
+ t177 := x + 177
+ t178 := x + 178
+ t179 := x + 179
+ t180 := x + 180
+ t181 := x + 181
+ t182 := x + 182
+ t183 := x + 183
+ t184 := x + 184
+ t185 := x + 185
+ t186 := x + 186
+ t187 := x + 187
+ t188 := x + 188
+ t189 := x + 189
+ t190 := x + 190
+ t191 := x + 191
+ t192 := x + 192
+ t193 := x + 193
+ t194 := x + 194
+ t195 := x + 195
+ t196 := x + 196
+ t197 := x + 197
+ t198 := x + 198
+ t199 := x + 199
+ t200 := x + 200
+ t201 := x + 201
+ t202 := x + 202
+ t203 := x + 203
+ t204 := x + 204
+ t205 := x + 205
+ t206 := x + 206
+ t207 := x + 207
+ t208 := x + 208
+ t209 := x + 209
+ t210 := x + 210
+ t211 := x + 211
+ t212 := x + 212
+ t213 := x + 213
+ t214 := x + 214
+ t215 := x + 215
+ t216 := x + 216
+ t217 := x + 217
+ t218 := x + 218
+ t219 := x + 219
+ t220 := x + 220
+ t221 := x + 221
+ t222 := x + 222
+ t223 := x + 223
+ t224 := x + 224
+ t225 := x + 225
+ t226 := x + 226
+ t227 := x + 227
+ t228 := x + 228
+ t229 := x + 229
+ t230 := x + 230
+ t231 := x + 231
+ t232 := x + 232
+ t233 := x + 233
+ t234 := x + 234
+ t235 := x + 235
+ t236 := x + 236
+ t237 := x + 237
+ t238 := x + 238
+ t239 := x + 239
+ t240 := x + 240
+ t241 := x + 241
+ t242 := x + 242
+ t243 := x + 243
+ t244 := x + 244
+ t245 := x + 245
+ t246 := x + 246
+ t247 := x + 247
+ t248 := x + 248
+ t249 := x + 249
+ return t0 + t1 + t2 + t3 + t4 + t5 + t6 + t7 + t8 + t9 + t10 + t11 + t12 + t13 + t14 + t15 + t16 + t17 + t18 + t19 + t20 + t21 + t22 + t23 + t24 + t25 + t26 + t27 + t28 + t29 + t30 + t31 + t32 + t33 + t34 + t35 + t36 + t37 + t38 + t39 + t40 + t41 + t42 + t43 + t44 + t45 + t46 + t47 + t48 + t49 + t50 + t51 + t52 + t53 + t54 + t55 + t56 + t57 + t58 + t59 + t60 + t61 + t62 + t63 + t64 + t65 + t66 + t67 + t68 + t69 + t70 + t71 + t72 + t73 + t74 + t75 + t76 + t77 + t78 + t79 + t80 + t81 + t82 + t83 + t84 + t85 + t86 + t87 + t88 + t89 + t90 + t91 + t92 + t93 + t94 + t95 + t96 + t97 + t98 + t99 + t100 + t101 + t102 + t103 + t104 + t105 + t106 + t107 + t108 + t109 + t110 + t111 + t112 + t113 + t114 + t115 + t116 + t117 + t118 + t119 + t120 + t121 + t122 + t123 + t124 + t125 + t126 + t127 + t128 + t129 + t130 + t131 + t132 + t133 + t134 + t135 + t136 + t137 + t138 + t139 + t140 + t141 + t142 + t143 + t144 + t145 + t146 + t147 + t148 + t149 + t150 + t151 + t152 + t153 + t154 + t155 + t156 + t157 + t158 + t159 + t160 + t161 + t162 + t163 + t164 + t165 + t166 + t167 + t168 + t169 + t170 + t171 + t172 + t173 + t174 + t175 + t176 + t177 + t178 + t179 + t180 + t181 + t182 + t183 + t184 + t185 + t186 + t187 + t188 + t189 + t190 + t191 + t192 + t193 + t194 + t195 + t196 + t197 + t198 + t199 + t200 + t201 + t202 + t203 + t204 + t205 + t206 + t207 + t208 + t209 + t210 + t211 + t212 + t213 + t214 + t215 + t216 + t217 + t218 + t219 + t220 + t221 + t222 + t223 + t224 + t225 + t226 + t227 + t228 + t229 + t230 + t231 + t232 + t233 + t234 + t235 + t236 + t237 + t238 + t239 + t240 + t241 + t242 + t243 + t244 + t245 + t246 + t247 + t248 + t249
+}
+func h45(x: int) -> int {
+ t0 := x + 0
+ t1 := x + 1
+ t2 := x + 2
+ t3 := x + 3
+ t4 := x + 4
+ t5 := x + 5
+ t6 := x + 6
+ t7 := x + 7
+ t8 := x + 8
+ t9 := x + 9
+ t10 := x + 10
+ t11 := x + 11
+ t12 := x + 12
+ t13 := x + 13
+ t14 := x + 14
+ t15 := x + 15
+ t16 := x + 16
+ t17 := x + 17
+ t18 := x + 18
+ t19 := x + 19
+ t20 := x + 20
+ t21 := x + 21
+ t22 := x + 22
+ t23 := x + 23
+ t24 := x + 24
+ t25 := x + 25
+ t26 := x + 26
+ t27 := x + 27
+ t28 := x + 28
+ t29 := x + 29
+ t30 := x + 30
+ t31 := x + 31
+ t32 := x + 32
+ t33 := x + 33
+ t34 := x + 34
+ t35 := x + 35
+ t36 := x + 36
+ t37 := x + 37
+ t38 := x + 38
+ t39 := x + 39
+ t40 := x + 40
+ t41 := x + 41
+ t42 := x + 42
+ t43 := x + 43
+ t44 := x + 44
+ t45 := x + 45
+ t46 := x + 46
+ t47 := x + 47
+ t48 := x + 48
+ t49 := x + 49
+ t50 := x + 50
+ t51 := x + 51
+ t52 := x + 52
+ t53 := x + 53
+ t54 := x + 54
+ t55 := x + 55
+ t56 := x + 56
+ t57 := x + 57
+ t58 := x + 58
+ t59 := x + 59
+ t60 := x + 60
+ t61 := x + 61
+ t62 := x + 62
+ t63 := x + 63
+ t64 := x + 64
+ t65 := x + 65
+ t66 := x + 66
+ t67 := x + 67
+ t68 := x + 68
+ t69 := x + 69
+ t70 := x + 70
+ t71 := x + 71
+ t72 := x + 72
+ t73 := x + 73
+ t74 := x + 74
+ t75 := x + 75
+ t76 := x + 76
+ t77 := x + 77
+ t78 := x + 78
+ t79 := x + 79
+ t80 := x + 80
+ t81 := x + 81
+ t82 := x + 82
+ t83 := x + 83
+ t84 := x + 84
+ t85 := x + 85
+ t86 := x + 86
+ t87 := x + 87
+ t88 := x + 88
+ t89 := x + 89
+ t90 := x + 90
+ t91 := x + 91
+ t92 := x + 92
+ t93 := x + 93
+ t94 := x + 94
+ t95 := x + 95
+ t96 := x + 96
+ t97 := x + 97
+ t98 := x + 98
+ t99 := x + 99
+ t100 := x + 100
+ t101 := x + 101
+ t102 := x + 102
+ t103 := x + 103
+ t104 := x + 104
+ t105 := x + 105
+ t106 := x + 106
+ t107 := x + 107
+ t108 := x + 108
+ t109 := x + 109
+ t110 := x + 110
+ t111 := x + 111
+ t112 := x + 112
+ t113 := x + 113
+ t114 := x + 114
+ t115 := x + 115
+ t116 := x + 116
+ t117 := x + 117
+ t118 := x + 118
+ t119 := x + 119
+ t120 := x + 120
+ t121 := x + 121
+ t122 := x + 122
+ t123 := x + 123
+ t124 := x + 124
+ t125 := x + 125
+ t126 := x + 126
+ t127 := x + 127
+ t128 := x + 128
+ t129 := x + 129
+ t130 := x + 130
+ t131 := x + 131
+ t132 := x + 132
+ t133 := x + 133
+ t134 := x + 134
+ t135 := x + 135
+ t136 := x + 136
+ t137 := x + 137
+ t138 := x + 138
+ t139 := x + 139
+ t140 := x + 140
+ t141 := x + 141
+ t142 := x + 142
+ t143 := x + 143
+ t144 := x + 144
+ t145 := x + 145
+ t146 := x + 146
+ t147 := x + 147
+ t148 := x + 148
+ t149 := x + 149
+ t150 := x + 150
+ t151 := x + 151
+ t152 := x + 152
+ t153 := x + 153
+ t154 := x + 154
+ t155 := x + 155
+ t156 := x + 156
+ t157 := x + 157
+ t158 := x + 158
+ t159 := x + 159
+ t160 := x + 160
+ t161 := x + 161
+ t162 := x + 162
+ t163 := x + 163
+ t164 := x + 164
+ t165 := x + 165
+ t166 := x + 166
+ t167 := x + 167
+ t168 := x + 168
+ t169 := x + 169
+ t170 := x + 170
+ t171 := x + 171
+ t172 := x + 172
+ t173 := x + 173
+ t174 := x + 174
+ t175 := x + 175
+ t176 := x + 176
+ t177 := x + 177
+ t178 := x + 178
+ t179 := x + 179
+ t180 := x + 180
+ t181 := x + 181
+ t182 := x + 182
+ t183 := x + 183
+ t184 := x + 184
+ t185 := x + 185
+ t186 := x + 186
+ t187 := x + 187
+ t188 := x + 188
+ t189 := x + 189
+ t190 := x + 190
+ t191 := x + 191
+ t192 := x + 192
+ t193 := x + 193
+ t194 := x + 194
+ t195 := x + 195
+ t196 := x + 196
+ t197 := x + 197
+ t198 := x + 198
+ t199 := x + 199
+ t200 := x + 200
+ t201 := x + 201
+ t202 := x + 202
+ t203 := x + 203
+ t204 := x + 204
+ t205 := x + 205
+ t206 := x + 206
+ t207 := x + 207
+ t208 := x + 208
+ t209 := x + 209
+ t210 := x + 210
+ t211 := x + 211
+ t212 := x + 212
+ t213 := x + 213
+ t214 := x + 214
+ t215 := x + 215
+ t216 := x + 216
+ t217 := x + 217
+ t218 := x + 218
+ t219 := x + 219
+ t220 := x + 220
+ t221 := x + 221
+ t222 := x + 222
+ t223 := x + 223
+ t224 := x + 224
+ t225 := x + 225
+ t226 := x + 226
+ t227 := x + 227
+ t228 := x + 228
+ t229 := x + 229
+ t230 := x + 230
+ t231 := x + 231
+ t232 := x + 232
+ t233 := x + 233
+ t234 := x + 234
+ t235 := x + 235
+ t236 := x + 236
+ t237 := x + 237
+ t238 := x + 238
+ t239 := x + 239
+ t240 := x + 240
+ t241 := x + 241
+ t242 := x + 242
+ t243 := x + 243
+ t244 := x + 244
+ t245 := x + 245
+ t246 := x + 246
+ t247 := x + 247
+ t248 := x + 248
+ t249 := x + 249
+ return t0 + t1 + t2 + t3 + t4 + t5 + t6 + t7 + t8 + t9 + t10 + t11 + t12 + t13 + t14 + t15 + t16 + t17 + t18 + t19 + t20 + t21 + t22 + t23 + t24 + t25 + t26 + t27 + t28 + t29 + t30 + t31 + t32 + t33 + t34 + t35 + t36 + t37 + t38 + t39 + t40 + t41 + t42 + t43 + t44 + t45 + t46 + t47 + t48 + t49 + t50 + t51 + t52 + t53 + t54 + t55 + t56 + t57 + t58 + t59 + t60 + t61 + t62 + t63 + t64 + t65 + t66 + t67 + t68 + t69 + t70 + t71 + t72 + t73 + t74 + t75 + t76 + t77 + t78 + t79 + t80 + t81 + t82 + t83 + t84 + t85 + t86 + t87 + t88 + t89 + t90 + t91 + t92 + t93 + t94 + t95 + t96 + t97 + t98 + t99 + t100 + t101 + t102 + t103 + t104 + t105 + t106 + t107 + t108 + t109 + t110 + t111 + t112 + t113 + t114 + t115 + t116 + t117 + t118 + t119 + t120 + t121 + t122 + t123 + t124 + t125 + t126 + t127 + t128 + t129 + t130 + t131 + t132 + t133 + t134 + t135 + t136 + t137 + t138 + t139 + t140 + t141 + t142 + t143 + t144 + t145 + t146 + t147 + t148 + t149 + t150 + t151 + t152 + t153 + t154 + t155 + t156 + t157 + t158 + t159 + t160 + t161 + t162 + t163 + t164 + t165 + t166 + t167 + t168 + t169 + t170 + t171 + t172 + t173 + t174 + t175 + t176 + t177 + t178 + t179 + t180 + t181 + t182 + t183 + t184 + t185 + t186 + t187 + t188 + t189 + t190 + t191 + t192 + t193 + t194 + t195 + t196 + t197 + t198 + t199 + t200 + t201 + t202 + t203 + t204 + t205 + t206 + t207 + t208 + t209 + t210 + t211 + t212 + t213 + t214 + t215 + t216 + t217 + t218 + t219 + t220 + t221 + t222 + t223 + t224 + t225 + t226 + t227 + t228 + t229 + t230 + t231 + t232 + t233 + t234 + t235 + t236 + t237 + t238 + t239 + t240 + t241 + t242 + t243 + t244 + t245 + t246 + t247 + t248 + t249
+}
+func h46(x: int) -> int {
+ t0 := x + 0
+ t1 := x + 1
+ t2 := x + 2
+ t3 := x + 3
+ t4 := x + 4
+ t5 := x + 5
+ t6 := x + 6
+ t7 := x + 7
+ t8 := x + 8
+ t9 := x + 9
+ t10 := x + 10
+ t11 := x + 11
+ t12 := x + 12
+ t13 := x + 13
+ t14 := x + 14
+ t15 := x + 15
+ t16 := x + 16
+ t17 := x + 17
+ t18 := x + 18
+ t19 := x + 19
+ t20 := x + 20
+ t21 := x + 21
+ t22 := x + 22
+ t23 := x + 23
+ t24 := x + 24
+ t25 := x + 25
+ t26 := x + 26
+ t27 := x + 27
+ t28 := x + 28
+ t29 := x + 29
+ t30 := x + 30
+ t31 := x + 31
+ t32 := x + 32
+ t33 := x + 33
+ t34 := x + 34
+ t35 := x + 35
+ t36 := x + 36
+ t37 := x + 37
+ t38 := x + 38
+ t39 := x + 39
+ t40 := x + 40
+ t41 := x + 41
+ t42 := x + 42
+ t43 := x + 43
+ t44 := x + 44
+ t45 := x + 45
+ t46 := x + 46
+ t47 := x + 47
+ t48 := x + 48
+ t49 := x + 49
+ t50 := x + 50
+ t51 := x + 51
+ t52 := x + 52
+ t53 := x + 53
+ t54 := x + 54
+ t55 := x + 55
+ t56 := x + 56
+ t57 := x + 57
+ t58 := x + 58
+ t59 := x + 59
+ t60 := x + 60
+ t61 := x + 61
+ t62 := x + 62
+ t63 := x + 63
+ t64 := x + 64
+ t65 := x + 65
+ t66 := x + 66
+ t67 := x + 67
+ t68 := x + 68
+ t69 := x + 69
+ t70 := x + 70
+ t71 := x + 71
+ t72 := x + 72
+ t73 := x + 73
+ t74 := x + 74
+ t75 := x + 75
+ t76 := x + 76
+ t77 := x + 77
+ t78 := x + 78
+ t79 := x + 79
+ t80 := x + 80
+ t81 := x + 81
+ t82 := x + 82
+ t83 := x + 83
+ t84 := x + 84
+ t85 := x + 85
+ t86 := x + 86
+ t87 := x + 87
+ t88 := x + 88
+ t89 := x + 89
+ t90 := x + 90
+ t91 := x + 91
+ t92 := x + 92
+ t93 := x + 93
+ t94 := x + 94
+ t95 := x + 95
+ t96 := x + 96
+ t97 := x + 97
+ t98 := x + 98
+ t99 := x + 99
+ t100 := x + 100
+ t101 := x + 101
+ t102 := x + 102
+ t103 := x + 103
+ t104 := x + 104
+ t105 := x + 105
+ t106 := x + 106
+ t107 := x + 107
+ t108 := x + 108
+ t109 := x + 109
+ t110 := x + 110
+ t111 := x + 111
+ t112 := x + 112
+ t113 := x + 113
+ t114 := x + 114
+ t115 := x + 115
+ t116 := x + 116
+ t117 := x + 117
+ t118 := x + 118
+ t119 := x + 119
+ t120 := x + 120
+ t121 := x + 121
+ t122 := x + 122
+ t123 := x + 123
+ t124 := x + 124
+ t125 := x + 125
+ t126 := x + 126
+ t127 := x + 127
+ t128 := x + 128
+ t129 := x + 129
+ t130 := x + 130
+ t131 := x + 131
+ t132 := x + 132
+ t133 := x + 133
+ t134 := x + 134
+ t135 := x + 135
+ t136 := x + 136
+ t137 := x + 137
+ t138 := x + 138
+ t139 := x + 139
+ t140 := x + 140
+ t141 := x + 141
+ t142 := x + 142
+ t143 := x + 143
+ t144 := x + 144
+ t145 := x + 145
+ t146 := x + 146
+ t147 := x + 147
+ t148 := x + 148
+ t149 := x + 149
+ t150 := x + 150
+ t151 := x + 151
+ t152 := x + 152
+ t153 := x + 153
+ t154 := x + 154
+ t155 := x + 155
+ t156 := x + 156
+ t157 := x + 157
+ t158 := x + 158
+ t159 := x + 159
+ t160 := x + 160
+ t161 := x + 161
+ t162 := x + 162
+ t163 := x + 163
+ t164 := x + 164
+ t165 := x + 165
+ t166 := x + 166
+ t167 := x + 167
+ t168 := x + 168
+ t169 := x + 169
+ t170 := x + 170
+ t171 := x + 171
+ t172 := x + 172
+ t173 := x + 173
+ t174 := x + 174
+ t175 := x + 175
+ t176 := x + 176
+ t177 := x + 177
+ t178 := x + 178
+ t179 := x + 179
+ t180 := x + 180
+ t181 := x + 181
+ t182 := x + 182
+ t183 := x + 183
+ t184 := x + 184
+ t185 := x + 185
+ t186 := x + 186
+ t187 := x + 187
+ t188 := x + 188
+ t189 := x + 189
+ t190 := x + 190
+ t191 := x + 191
+ t192 := x + 192
+ t193 := x + 193
+ t194 := x + 194
+ t195 := x + 195
+ t196 := x + 196
+ t197 := x + 197
+ t198 := x + 198
+ t199 := x + 199
+ t200 := x + 200
+ t201 := x + 201
+ t202 := x + 202
+ t203 := x + 203
+ t204 := x + 204
+ t205 := x + 205
+ t206 := x + 206
+ t207 := x + 207
+ t208 := x + 208
+ t209 := x + 209
+ t210 := x + 210
+ t211 := x + 211
+ t212 := x + 212
+ t213 := x + 213
+ t214 := x + 214
+ t215 := x + 215
+ t216 := x + 216
+ t217 := x + 217
+ t218 := x + 218
+ t219 := x + 219
+ t220 := x + 220
+ t221 := x + 221
+ t222 := x + 222
+ t223 := x + 223
+ t224 := x + 224
+ t225 := x + 225
+ t226 := x + 226
+ t227 := x + 227
+ t228 := x + 228
+ t229 := x + 229
+ t230 := x + 230
+ t231 := x + 231
+ t232 := x + 232
+ t233 := x + 233
+ t234 := x + 234
+ t235 := x + 235
+ t236 := x + 236
+ t237 := x + 237
+ t238 := x + 238
+ t239 := x + 239
+ t240 := x + 240
+ t241 := x + 241
+ t242 := x + 242
+ t243 := x + 243
+ t244 := x + 244
+ t245 := x + 245
+ t246 := x + 246
+ t247 := x + 247
+ t248 := x + 248
+ t249 := x + 249
+ return t0 + t1 + t2 + t3 + t4 + t5 + t6 + t7 + t8 + t9 + t10 + t11 + t12 + t13 + t14 + t15 + t16 + t17 + t18 + t19 + t20 + t21 + t22 + t23 + t24 + t25 + t26 + t27 + t28 + t29 + t30 + t31 + t32 + t33 + t34 + t35 + t36 + t37 + t38 + t39 + t40 + t41 + t42 + t43 + t44 + t45 + t46 + t47 + t48 + t49 + t50 + t51 + t52 + t53 + t54 + t55 + t56 + t57 + t58 + t59 + t60 + t61 + t62 + t63 + t64 + t65 + t66 + t67 + t68 + t69 + t70 + t71 + t72 + t73 + t74 + t75 + t76 + t77 + t78 + t79 + t80 + t81 + t82 + t83 + t84 + t85 + t86 + t87 + t88 + t89 + t90 + t91 + t92 + t93 + t94 + t95 + t96 + t97 + t98 + t99 + t100 + t101 + t102 + t103 + t104 + t105 + t106 + t107 + t108 + t109 + t110 + t111 + t112 + t113 + t114 + t115 + t116 + t117 + t118 + t119 + t120 + t121 + t122 + t123 + t124 + t125 + t126 + t127 + t128 + t129 + t130 + t131 + t132 + t133 + t134 + t135 + t136 + t137 + t138 + t139 + t140 + t141 + t142 + t143 + t144 + t145 + t146 + t147 + t148 + t149 + t150 + t151 + t152 + t153 + t154 + t155 + t156 + t157 + t158 + t159 + t160 + t161 + t162 + t163 + t164 + t165 + t166 + t167 + t168 + t169 + t170 + t171 + t172 + t173 + t174 + t175 + t176 + t177 + t178 + t179 + t180 + t181 + t182 + t183 + t184 + t185 + t186 + t187 + t188 + t189 + t190 + t191 + t192 + t193 + t194 + t195 + t196 + t197 + t198 + t199 + t200 + t201 + t202 + t203 + t204 + t205 + t206 + t207 + t208 + t209 + t210 + t211 + t212 + t213 + t214 + t215 + t216 + t217 + t218 + t219 + t220 + t221 + t222 + t223 + t224 + t225 + t226 + t227 + t228 + t229 + t230 + t231 + t232 + t233 + t234 + t235 + t236 + t237 + t238 + t239 + t240 + t241 + t242 + t243 + t244 + t245 + t246 + t247 + t248 + t249
+}
+func h47(x: int) -> int {
+ t0 := x + 0
+ t1 := x + 1
+ t2 := x + 2
+ t3 := x + 3
+ t4 := x + 4
+ t5 := x + 5
+ t6 := x + 6
+ t7 := x + 7
+ t8 := x + 8
+ t9 := x + 9
+ t10 := x + 10
+ t11 := x + 11
+ t12 := x + 12
+ t13 := x + 13
+ t14 := x + 14
+ t15 := x + 15
+ t16 := x + 16
+ t17 := x + 17
+ t18 := x + 18
+ t19 := x + 19
+ t20 := x + 20
+ t21 := x + 21
+ t22 := x + 22
+ t23 := x + 23
+ t24 := x + 24
+ t25 := x + 25
+ t26 := x + 26
+ t27 := x + 27
+ t28 := x + 28
+ t29 := x + 29
+ t30 := x + 30
+ t31 := x + 31
+ t32 := x + 32
+ t33 := x + 33
+ t34 := x + 34
+ t35 := x + 35
+ t36 := x + 36
+ t37 := x + 37
+ t38 := x + 38
+ t39 := x + 39
+ t40 := x + 40
+ t41 := x + 41
+ t42 := x + 42
+ t43 := x + 43
+ t44 := x + 44
+ t45 := x + 45
+ t46 := x + 46
+ t47 := x + 47
+ t48 := x + 48
+ t49 := x + 49
+ t50 := x + 50
+ t51 := x + 51
+ t52 := x + 52
+ t53 := x + 53
+ t54 := x + 54
+ t55 := x + 55
+ t56 := x + 56
+ t57 := x + 57
+ t58 := x + 58
+ t59 := x + 59
+ t60 := x + 60
+ t61 := x + 61
+ t62 := x + 62
+ t63 := x + 63
+ t64 := x + 64
+ t65 := x + 65
+ t66 := x + 66
+ t67 := x + 67
+ t68 := x + 68
+ t69 := x + 69
+ t70 := x + 70
+ t71 := x + 71
+ t72 := x + 72
+ t73 := x + 73
+ t74 := x + 74
+ t75 := x + 75
+ t76 := x + 76
+ t77 := x + 77
+ t78 := x + 78
+ t79 := x + 79
+ t80 := x + 80
+ t81 := x + 81
+ t82 := x + 82
+ t83 := x + 83
+ t84 := x + 84
+ t85 := x + 85
+ t86 := x + 86
+ t87 := x + 87
+ t88 := x + 88
+ t89 := x + 89
+ t90 := x + 90
+ t91 := x + 91
+ t92 := x + 92
+ t93 := x + 93
+ t94 := x + 94
+ t95 := x + 95
+ t96 := x + 96
+ t97 := x + 97
+ t98 := x + 98
+ t99 := x + 99
+ t100 := x + 100
+ t101 := x + 101
+ t102 := x + 102
+ t103 := x + 103
+ t104 := x + 104
+ t105 := x + 105
+ t106 := x + 106
+ t107 := x + 107
+ t108 := x + 108
+ t109 := x + 109
+ t110 := x + 110
+ t111 := x + 111
+ t112 := x + 112
+ t113 := x + 113
+ t114 := x + 114
+ t115 := x + 115
+ t116 := x + 116
+ t117 := x + 117
+ t118 := x + 118
+ t119 := x + 119
+ t120 := x + 120
+ t121 := x + 121
+ t122 := x + 122
+ t123 := x + 123
+ t124 := x + 124
+ t125 := x + 125
+ t126 := x + 126
+ t127 := x + 127
+ t128 := x + 128
+ t129 := x + 129
+ t130 := x + 130
+ t131 := x + 131
+ t132 := x + 132
+ t133 := x + 133
+ t134 := x + 134
+ t135 := x + 135
+ t136 := x + 136
+ t137 := x + 137
+ t138 := x + 138
+ t139 := x + 139
+ t140 := x + 140
+ t141 := x + 141
+ t142 := x + 142
+ t143 := x + 143
+ t144 := x + 144
+ t145 := x + 145
+ t146 := x + 146
+ t147 := x + 147
+ t148 := x + 148
+ t149 := x + 149
+ t150 := x + 150
+ t151 := x + 151
+ t152 := x + 152
+ t153 := x + 153
+ t154 := x + 154
+ t155 := x + 155
+ t156 := x + 156
+ t157 := x + 157
+ t158 := x + 158
+ t159 := x + 159
+ t160 := x + 160
+ t161 := x + 161
+ t162 := x + 162
+ t163 := x + 163
+ t164 := x + 164
+ t165 := x + 165
+ t166 := x + 166
+ t167 := x + 167
+ t168 := x + 168
+ t169 := x + 169
+ t170 := x + 170
+ t171 := x + 171
+ t172 := x + 172
+ t173 := x + 173
+ t174 := x + 174
+ t175 := x + 175
+ t176 := x + 176
+ t177 := x + 177
+ t178 := x + 178
+ t179 := x + 179
+ t180 := x + 180
+ t181 := x + 181
+ t182 := x + 182
+ t183 := x + 183
+ t184 := x + 184
+ t185 := x + 185
+ t186 := x + 186
+ t187 := x + 187
+ t188 := x + 188
+ t189 := x + 189
+ t190 := x + 190
+ t191 := x + 191
+ t192 := x + 192
+ t193 := x + 193
+ t194 := x + 194
+ t195 := x + 195
+ t196 := x + 196
+ t197 := x + 197
+ t198 := x + 198
+ t199 := x + 199
+ t200 := x + 200
+ t201 := x + 201
+ t202 := x + 202
+ t203 := x + 203
+ t204 := x + 204
+ t205 := x + 205
+ t206 := x + 206
+ t207 := x + 207
+ t208 := x + 208
+ t209 := x + 209
+ t210 := x + 210
+ t211 := x + 211
+ t212 := x + 212
+ t213 := x + 213
+ t214 := x + 214
+ t215 := x + 215
+ t216 := x + 216
+ t217 := x + 217
+ t218 := x + 218
+ t219 := x + 219
+ t220 := x + 220
+ t221 := x + 221
+ t222 := x + 222
+ t223 := x + 223
+ t224 := x + 224
+ t225 := x + 225
+ t226 := x + 226
+ t227 := x + 227
+ t228 := x + 228
+ t229 := x + 229
+ t230 := x + 230
+ t231 := x + 231
+ t232 := x + 232
+ t233 := x + 233
+ t234 := x + 234
+ t235 := x + 235
+ t236 := x + 236
+ t237 := x + 237
+ t238 := x + 238
+ t239 := x + 239
+ t240 := x + 240
+ t241 := x + 241
+ t242 := x + 242
+ t243 := x + 243
+ t244 := x + 244
+ t245 := x + 245
+ t246 := x + 246
+ t247 := x + 247
+ t248 := x + 248
+ t249 := x + 249
+ return t0 + t1 + t2 + t3 + t4 + t5 + t6 + t7 + t8 + t9 + t10 + t11 + t12 + t13 + t14 + t15 + t16 + t17 + t18 + t19 + t20 + t21 + t22 + t23 + t24 + t25 + t26 + t27 + t28 + t29 + t30 + t31 + t32 + t33 + t34 + t35 + t36 + t37 + t38 + t39 + t40 + t41 + t42 + t43 + t44 + t45 + t46 + t47 + t48 + t49 + t50 + t51 + t52 + t53 + t54 + t55 + t56 + t57 + t58 + t59 + t60 + t61 + t62 + t63 + t64 + t65 + t66 + t67 + t68 + t69 + t70 + t71 + t72 + t73 + t74 + t75 + t76 + t77 + t78 + t79 + t80 + t81 + t82 + t83 + t84 + t85 + t86 + t87 + t88 + t89 + t90 + t91 + t92 + t93 + t94 + t95 + t96 + t97 + t98 + t99 + t100 + t101 + t102 + t103 + t104 + t105 + t106 + t107 + t108 + t109 + t110 + t111 + t112 + t113 + t114 + t115 + t116 + t117 + t118 + t119 + t120 + t121 + t122 + t123 + t124 + t125 + t126 + t127 + t128 + t129 + t130 + t131 + t132 + t133 + t134 + t135 + t136 + t137 + t138 + t139 + t140 + t141 + t142 + t143 + t144 + t145 + t146 + t147 + t148 + t149 + t150 + t151 + t152 + t153 + t154 + t155 + t156 + t157 + t158 + t159 + t160 + t161 + t162 + t163 + t164 + t165 + t166 + t167 + t168 + t169 + t170 + t171 + t172 + t173 + t174 + t175 + t176 + t177 + t178 + t179 + t180 + t181 + t182 + t183 + t184 + t185 + t186 + t187 + t188 + t189 + t190 + t191 + t192 + t193 + t194 + t195 + t196 + t197 + t198 + t199 + t200 + t201 + t202 + t203 + t204 + t205 + t206 + t207 + t208 + t209 + t210 + t211 + t212 + t213 + t214 + t215 + t216 + t217 + t218 + t219 + t220 + t221 + t222 + t223 + t224 + t225 + t226 + t227 + t228 + t229 + t230 + t231 + t232 + t233 + t234 + t235 + t236 + t237 + t238 + t239 + t240 + t241 + t242 + t243 + t244 + t245 + t246 + t247 + t248 + t249
+}
+func h48(x: int) -> int {
+ t0 := x + 0
+ t1 := x + 1
+ t2 := x + 2
+ t3 := x + 3
+ t4 := x + 4
+ t5 := x + 5
+ t6 := x + 6
+ t7 := x + 7
+ t8 := x + 8
+ t9 := x + 9
+ t10 := x + 10
+ t11 := x + 11
+ t12 := x + 12
+ t13 := x + 13
+ t14 := x + 14
+ t15 := x + 15
+ t16 := x + 16
+ t17 := x + 17
+ t18 := x + 18
+ t19 := x + 19
+ t20 := x + 20
+ t21 := x + 21
+ t22 := x + 22
+ t23 := x + 23
+ t24 := x + 24
+ t25 := x + 25
+ t26 := x + 26
+ t27 := x + 27
+ t28 := x + 28
+ t29 := x + 29
+ t30 := x + 30
+ t31 := x + 31
+ t32 := x + 32
+ t33 := x + 33
+ t34 := x + 34
+ t35 := x + 35
+ t36 := x + 36
+ t37 := x + 37
+ t38 := x + 38
+ t39 := x + 39
+ t40 := x + 40
+ t41 := x + 41
+ t42 := x + 42
+ t43 := x + 43
+ t44 := x + 44
+ t45 := x + 45
+ t46 := x + 46
+ t47 := x + 47
+ t48 := x + 48
+ t49 := x + 49
+ t50 := x + 50
+ t51 := x + 51
+ t52 := x + 52
+ t53 := x + 53
+ t54 := x + 54
+ t55 := x + 55
+ t56 := x + 56
+ t57 := x + 57
+ t58 := x + 58
+ t59 := x + 59
+ t60 := x + 60
+ t61 := x + 61
+ t62 := x + 62
+ t63 := x + 63
+ t64 := x + 64
+ t65 := x + 65
+ t66 := x + 66
+ t67 := x + 67
+ t68 := x + 68
+ t69 := x + 69
+ t70 := x + 70
+ t71 := x + 71
+ t72 := x + 72
+ t73 := x + 73
+ t74 := x + 74
+ t75 := x + 75
+ t76 := x + 76
+ t77 := x + 77
+ t78 := x + 78
+ t79 := x + 79
+ t80 := x + 80
+ t81 := x + 81
+ t82 := x + 82
+ t83 := x + 83
+ t84 := x + 84
+ t85 := x + 85
+ t86 := x + 86
+ t87 := x + 87
+ t88 := x + 88
+ t89 := x + 89
+ t90 := x + 90
+ t91 := x + 91
+ t92 := x + 92
+ t93 := x + 93
+ t94 := x + 94
+ t95 := x + 95
+ t96 := x + 96
+ t97 := x + 97
+ t98 := x + 98
+ t99 := x + 99
+ t100 := x + 100
+ t101 := x + 101
+ t102 := x + 102
+ t103 := x + 103
+ t104 := x + 104
+ t105 := x + 105
+ t106 := x + 106
+ t107 := x + 107
+ t108 := x + 108
+ t109 := x + 109
+ t110 := x + 110
+ t111 := x + 111
+ t112 := x + 112
+ t113 := x + 113
+ t114 := x + 114
+ t115 := x + 115
+ t116 := x + 116
+ t117 := x + 117
+ t118 := x + 118
+ t119 := x + 119
+ t120 := x + 120
+ t121 := x + 121
+ t122 := x + 122
+ t123 := x + 123
+ t124 := x + 124
+ t125 := x + 125
+ t126 := x + 126
+ t127 := x + 127
+ t128 := x + 128
+ t129 := x + 129
+ t130 := x + 130
+ t131 := x + 131
+ t132 := x + 132
+ t133 := x + 133
+ t134 := x + 134
+ t135 := x + 135
+ t136 := x + 136
+ t137 := x + 137
+ t138 := x + 138
+ t139 := x + 139
+ t140 := x + 140
+ t141 := x + 141
+ t142 := x + 142
+ t143 := x + 143
+ t144 := x + 144
+ t145 := x + 145
+ t146 := x + 146
+ t147 := x + 147
+ t148 := x + 148
+ t149 := x + 149
+ t150 := x + 150
+ t151 := x + 151
+ t152 := x + 152
+ t153 := x + 153
+ t154 := x + 154
+ t155 := x + 155
+ t156 := x + 156
+ t157 := x + 157
+ t158 := x + 158
+ t159 := x + 159
+ t160 := x + 160
+ t161 := x + 161
+ t162 := x + 162
+ t163 := x + 163
+ t164 := x + 164
+ t165 := x + 165
+ t166 := x + 166
+ t167 := x + 167
+ t168 := x + 168
+ t169 := x + 169
+ t170 := x + 170
+ t171 := x + 171
+ t172 := x + 172
+ t173 := x + 173
+ t174 := x + 174
+ t175 := x + 175
+ t176 := x + 176
+ t177 := x + 177
+ t178 := x + 178
+ t179 := x + 179
+ t180 := x + 180
+ t181 := x + 181
+ t182 := x + 182
+ t183 := x + 183
+ t184 := x + 184
+ t185 := x + 185
+ t186 := x + 186
+ t187 := x + 187
+ t188 := x + 188
+ t189 := x + 189
+ t190 := x + 190
+ t191 := x + 191
+ t192 := x + 192
+ t193 := x + 193
+ t194 := x + 194
+ t195 := x + 195
+ t196 := x + 196
+ t197 := x + 197
+ t198 := x + 198
+ t199 := x + 199
+ t200 := x + 200
+ t201 := x + 201
+ t202 := x + 202
+ t203 := x + 203
+ t204 := x + 204
+ t205 := x + 205
+ t206 := x + 206
+ t207 := x + 207
+ t208 := x + 208
+ t209 := x + 209
+ t210 := x + 210
+ t211 := x + 211
+ t212 := x + 212
+ t213 := x + 213
+ t214 := x + 214
+ t215 := x + 215
+ t216 := x + 216
+ t217 := x + 217
+ t218 := x + 218
+ t219 := x + 219
+ t220 := x + 220
+ t221 := x + 221
+ t222 := x + 222
+ t223 := x + 223
+ t224 := x + 224
+ t225 := x + 225
+ t226 := x + 226
+ t227 := x + 227
+ t228 := x + 228
+ t229 := x + 229
+ t230 := x + 230
+ t231 := x + 231
+ t232 := x + 232
+ t233 := x + 233
+ t234 := x + 234
+ t235 := x + 235
+ t236 := x + 236
+ t237 := x + 237
+ t238 := x + 238
+ t239 := x + 239
+ t240 := x + 240
+ t241 := x + 241
+ t242 := x + 242
+ t243 := x + 243
+ t244 := x + 244
+ t245 := x + 245
+ t246 := x + 246
+ t247 := x + 247
+ t248 := x + 248
+ t249 := x + 249
+ return t0 + t1 + t2 + t3 + t4 + t5 + t6 + t7 + t8 + t9 + t10 + t11 + t12 + t13 + t14 + t15 + t16 + t17 + t18 + t19 + t20 + t21 + t22 + t23 + t24 + t25 + t26 + t27 + t28 + t29 + t30 + t31 + t32 + t33 + t34 + t35 + t36 + t37 + t38 + t39 + t40 + t41 + t42 + t43 + t44 + t45 + t46 + t47 + t48 + t49 + t50 + t51 + t52 + t53 + t54 + t55 + t56 + t57 + t58 + t59 + t60 + t61 + t62 + t63 + t64 + t65 + t66 + t67 + t68 + t69 + t70 + t71 + t72 + t73 + t74 + t75 + t76 + t77 + t78 + t79 + t80 + t81 + t82 + t83 + t84 + t85 + t86 + t87 + t88 + t89 + t90 + t91 + t92 + t93 + t94 + t95 + t96 + t97 + t98 + t99 + t100 + t101 + t102 + t103 + t104 + t105 + t106 + t107 + t108 + t109 + t110 + t111 + t112 + t113 + t114 + t115 + t116 + t117 + t118 + t119 + t120 + t121 + t122 + t123 + t124 + t125 + t126 + t127 + t128 + t129 + t130 + t131 + t132 + t133 + t134 + t135 + t136 + t137 + t138 + t139 + t140 + t141 + t142 + t143 + t144 + t145 + t146 + t147 + t148 + t149 + t150 + t151 + t152 + t153 + t154 + t155 + t156 + t157 + t158 + t159 + t160 + t161 + t162 + t163 + t164 + t165 + t166 + t167 + t168 + t169 + t170 + t171 + t172 + t173 + t174 + t175 + t176 + t177 + t178 + t179 + t180 + t181 + t182 + t183 + t184 + t185 + t186 + t187 + t188 + t189 + t190 + t191 + t192 + t193 + t194 + t195 + t196 + t197 + t198 + t199 + t200 + t201 + t202 + t203 + t204 + t205 + t206 + t207 + t208 + t209 + t210 + t211 + t212 + t213 + t214 + t215 + t216 + t217 + t218 + t219 + t220 + t221 + t222 + t223 + t224 + t225 + t226 + t227 + t228 + t229 + t230 + t231 + t232 + t233 + t234 + t235 + t236 + t237 + t238 + t239 + t240 + t241 + t242 + t243 + t244 + t245 + t246 + t247 + t248 + t249
+}
+func h49(x: int) -> int {
+ t0 := x + 0
+ t1 := x + 1
+ t2 := x + 2
+ t3 := x + 3
+ t4 := x + 4
+ t5 := x + 5
+ t6 := x + 6
+ t7 := x + 7
+ t8 := x + 8
+ t9 := x + 9
+ t10 := x + 10
+ t11 := x + 11
+ t12 := x + 12
+ t13 := x + 13
+ t14 := x + 14
+ t15 := x + 15
+ t16 := x + 16
+ t17 := x + 17
+ t18 := x + 18
+ t19 := x + 19
+ t20 := x + 20
+ t21 := x + 21
+ t22 := x + 22
+ t23 := x + 23
+ t24 := x + 24
+ t25 := x + 25
+ t26 := x + 26
+ t27 := x + 27
+ t28 := x + 28
+ t29 := x + 29
+ t30 := x + 30
+ t31 := x + 31
+ t32 := x + 32
+ t33 := x + 33
+ t34 := x + 34
+ t35 := x + 35
+ t36 := x + 36
+ t37 := x + 37
+ t38 := x + 38
+ t39 := x + 39
+ t40 := x + 40
+ t41 := x + 41
+ t42 := x + 42
+ t43 := x + 43
+ t44 := x + 44
+ t45 := x + 45
+ t46 := x + 46
+ t47 := x + 47
+ t48 := x + 48
+ t49 := x + 49
+ t50 := x + 50
+ t51 := x + 51
+ t52 := x + 52
+ t53 := x + 53
+ t54 := x + 54
+ t55 := x + 55
+ t56 := x + 56
+ t57 := x + 57
+ t58 := x + 58
+ t59 := x + 59
+ t60 := x + 60
+ t61 := x + 61
+ t62 := x + 62
+ t63 := x + 63
+ t64 := x + 64
+ t65 := x + 65
+ t66 := x + 66
+ t67 := x + 67
+ t68 := x + 68
+ t69 := x + 69
+ t70 := x + 70
+ t71 := x + 71
+ t72 := x + 72
+ t73 := x + 73
+ t74 := x + 74
+ t75 := x + 75
+ t76 := x + 76
+ t77 := x + 77
+ t78 := x + 78
+ t79 := x + 79
+ t80 := x + 80
+ t81 := x + 81
+ t82 := x + 82
+ t83 := x + 83
+ t84 := x + 84
+ t85 := x + 85
+ t86 := x + 86
+ t87 := x + 87
+ t88 := x + 88
+ t89 := x + 89
+ t90 := x + 90
+ t91 := x + 91
+ t92 := x + 92
+ t93 := x + 93
+ t94 := x + 94
+ t95 := x + 95
+ t96 := x + 96
+ t97 := x + 97
+ t98 := x + 98
+ t99 := x + 99
+ t100 := x + 100
+ t101 := x + 101
+ t102 := x + 102
+ t103 := x + 103
+ t104 := x + 104
+ t105 := x + 105
+ t106 := x + 106
+ t107 := x + 107
+ t108 := x + 108
+ t109 := x + 109
+ t110 := x + 110
+ t111 := x + 111
+ t112 := x + 112
+ t113 := x + 113
+ t114 := x + 114
+ t115 := x + 115
+ t116 := x + 116
+ t117 := x + 117
+ t118 := x + 118
+ t119 := x + 119
+ t120 := x + 120
+ t121 := x + 121
+ t122 := x + 122
+ t123 := x + 123
+ t124 := x + 124
+ t125 := x + 125
+ t126 := x + 126
+ t127 := x + 127
+ t128 := x + 128
+ t129 := x + 129
+ t130 := x + 130
+ t131 := x + 131
+ t132 := x + 132
+ t133 := x + 133
+ t134 := x + 134
+ t135 := x + 135
+ t136 := x + 136
+ t137 := x + 137
+ t138 := x + 138
+ t139 := x + 139
+ t140 := x + 140
+ t141 := x + 141
+ t142 := x + 142
+ t143 := x + 143
+ t144 := x + 144
+ t145 := x + 145
+ t146 := x + 146
+ t147 := x + 147
+ t148 := x + 148
+ t149 := x + 149
+ t150 := x + 150
+ t151 := x + 151
+ t152 := x + 152
+ t153 := x + 153
+ t154 := x + 154
+ t155 := x + 155
+ t156 := x + 156
+ t157 := x + 157
+ t158 := x + 158
+ t159 := x + 159
+ t160 := x + 160
+ t161 := x + 161
+ t162 := x + 162
+ t163 := x + 163
+ t164 := x + 164
+ t165 := x + 165
+ t166 := x + 166
+ t167 := x + 167
+ t168 := x + 168
+ t169 := x + 169
+ t170 := x + 170
+ t171 := x + 171
+ t172 := x + 172
+ t173 := x + 173
+ t174 := x + 174
+ t175 := x + 175
+ t176 := x + 176
+ t177 := x + 177
+ t178 := x + 178
+ t179 := x + 179
+ t180 := x + 180
+ t181 := x + 181
+ t182 := x + 182
+ t183 := x + 183
+ t184 := x + 184
+ t185 := x + 185
+ t186 := x + 186
+ t187 := x + 187
+ t188 := x + 188
+ t189 := x + 189
+ t190 := x + 190
+ t191 := x + 191
+ t192 := x + 192
+ t193 := x + 193
+ t194 := x + 194
+ t195 := x + 195
+ t196 := x + 196
+ t197 := x + 197
+ t198 := x + 198
+ t199 := x + 199
+ t200 := x + 200
+ t201 := x + 201
+ t202 := x + 202
+ t203 := x + 203
+ t204 := x + 204
+ t205 := x + 205
+ t206 := x + 206
+ t207 := x + 207
+ t208 := x + 208
+ t209 := x + 209
+ t210 := x + 210
+ t211 := x + 211
+ t212 := x + 212
+ t213 := x + 213
+ t214 := x + 214
+ t215 := x + 215
+ t216 := x + 216
+ t217 := x + 217
+ t218 := x + 218
+ t219 := x + 219
+ t220 := x + 220
+ t221 := x + 221
+ t222 := x + 222
+ t223 := x + 223
+ t224 := x + 224
+ t225 := x + 225
+ t226 := x + 226
+ t227 := x + 227
+ t228 := x + 228
+ t229 := x + 229
+ t230 := x + 230
+ t231 := x + 231
+ t232 := x + 232
+ t233 := x + 233
+ t234 := x + 234
+ t235 := x + 235
+ t236 := x + 236
+ t237 := x + 237
+ t238 := x + 238
+ t239 := x + 239
+ t240 := x + 240
+ t241 := x + 241
+ t242 := x + 242
+ t243 := x + 243
+ t244 := x + 244
+ t245 := x + 245
+ t246 := x + 246
+ t247 := x + 247
+ t248 := x + 248
+ t249 := x + 249
+ return t0 + t1 + t2 + t3 + t4 + t5 + t6 + t7 + t8 + t9 + t10 + t11 + t12 + t13 + t14 + t15 + t16 + t17 + t18 + t19 + t20 + t21 + t22 + t23 + t24 + t25 + t26 + t27 + t28 + t29 + t30 + t31 + t32 + t33 + t34 + t35 + t36 + t37 + t38 + t39 + t40 + t41 + t42 + t43 + t44 + t45 + t46 + t47 + t48 + t49 + t50 + t51 + t52 + t53 + t54 + t55 + t56 + t57 + t58 + t59 + t60 + t61 + t62 + t63 + t64 + t65 + t66 + t67 + t68 + t69 + t70 + t71 + t72 + t73 + t74 + t75 + t76 + t77 + t78 + t79 + t80 + t81 + t82 + t83 + t84 + t85 + t86 + t87 + t88 + t89 + t90 + t91 + t92 + t93 + t94 + t95 + t96 + t97 + t98 + t99 + t100 + t101 + t102 + t103 + t104 + t105 + t106 + t107 + t108 + t109 + t110 + t111 + t112 + t113 + t114 + t115 + t116 + t117 + t118 + t119 + t120 + t121 + t122 + t123 + t124 + t125 + t126 + t127 + t128 + t129 + t130 + t131 + t132 + t133 + t134 + t135 + t136 + t137 + t138 + t139 + t140 + t141 + t142 + t143 + t144 + t145 + t146 + t147 + t148 + t149 + t150 + t151 + t152 + t153 + t154 + t155 + t156 + t157 + t158 + t159 + t160 + t161 + t162 + t163 + t164 + t165 + t166 + t167 + t168 + t169 + t170 + t171 + t172 + t173 + t174 + t175 + t176 + t177 + t178 + t179 + t180 + t181 + t182 + t183 + t184 + t185 + t186 + t187 + t188 + t189 + t190 + t191 + t192 + t193 + t194 + t195 + t196 + t197 + t198 + t199 + t200 + t201 + t202 + t203 + t204 + t205 + t206 + t207 + t208 + t209 + t210 + t211 + t212 + t213 + t214 + t215 + t216 + t217 + t218 + t219 + t220 + t221 + t222 + t223 + t224 + t225 + t226 + t227 + t228 + t229 + t230 + t231 + t232 + t233 + t234 + t235 + t236 + t237 + t238 + t239 + t240 + t241 + t242 + t243 + t244 + t245 + t246 + t247 + t248 + t249
+}
+func main() -> int { 0 }
diff --git a/bench/compiler/many_funcs.zz b/bench/compiler/many_funcs.zz
new file mode 100644
index 00000000..e40dcd46
--- /dev/null
+++ b/bench/compiler/many_funcs.zz
@@ -0,0 +1,2501 @@
+func g0(x: int) -> int { x }
+func g1(x: int) -> int { x }
+func g2(x: int) -> int { x }
+func g3(x: int) -> int { x }
+func g4(x: int) -> int { x }
+func g5(x: int) -> int { x }
+func g6(x: int) -> int { x }
+func g7(x: int) -> int { x }
+func g8(x: int) -> int { x }
+func g9(x: int) -> int { x }
+func g10(x: int) -> int { x }
+func g11(x: int) -> int { x }
+func g12(x: int) -> int { x }
+func g13(x: int) -> int { x }
+func g14(x: int) -> int { x }
+func g15(x: int) -> int { x }
+func g16(x: int) -> int { x }
+func g17(x: int) -> int { x }
+func g18(x: int) -> int { x }
+func g19(x: int) -> int { x }
+func g20(x: int) -> int { x }
+func g21(x: int) -> int { x }
+func g22(x: int) -> int { x }
+func g23(x: int) -> int { x }
+func g24(x: int) -> int { x }
+func g25(x: int) -> int { x }
+func g26(x: int) -> int { x }
+func g27(x: int) -> int { x }
+func g28(x: int) -> int { x }
+func g29(x: int) -> int { x }
+func g30(x: int) -> int { x }
+func g31(x: int) -> int { x }
+func g32(x: int) -> int { x }
+func g33(x: int) -> int { x }
+func g34(x: int) -> int { x }
+func g35(x: int) -> int { x }
+func g36(x: int) -> int { x }
+func g37(x: int) -> int { x }
+func g38(x: int) -> int { x }
+func g39(x: int) -> int { x }
+func g40(x: int) -> int { x }
+func g41(x: int) -> int { x }
+func g42(x: int) -> int { x }
+func g43(x: int) -> int { x }
+func g44(x: int) -> int { x }
+func g45(x: int) -> int { x }
+func g46(x: int) -> int { x }
+func g47(x: int) -> int { x }
+func g48(x: int) -> int { x }
+func g49(x: int) -> int { x }
+func g50(x: int) -> int { x }
+func g51(x: int) -> int { x }
+func g52(x: int) -> int { x }
+func g53(x: int) -> int { x }
+func g54(x: int) -> int { x }
+func g55(x: int) -> int { x }
+func g56(x: int) -> int { x }
+func g57(x: int) -> int { x }
+func g58(x: int) -> int { x }
+func g59(x: int) -> int { x }
+func g60(x: int) -> int { x }
+func g61(x: int) -> int { x }
+func g62(x: int) -> int { x }
+func g63(x: int) -> int { x }
+func g64(x: int) -> int { x }
+func g65(x: int) -> int { x }
+func g66(x: int) -> int { x }
+func g67(x: int) -> int { x }
+func g68(x: int) -> int { x }
+func g69(x: int) -> int { x }
+func g70(x: int) -> int { x }
+func g71(x: int) -> int { x }
+func g72(x: int) -> int { x }
+func g73(x: int) -> int { x }
+func g74(x: int) -> int { x }
+func g75(x: int) -> int { x }
+func g76(x: int) -> int { x }
+func g77(x: int) -> int { x }
+func g78(x: int) -> int { x }
+func g79(x: int) -> int { x }
+func g80(x: int) -> int { x }
+func g81(x: int) -> int { x }
+func g82(x: int) -> int { x }
+func g83(x: int) -> int { x }
+func g84(x: int) -> int { x }
+func g85(x: int) -> int { x }
+func g86(x: int) -> int { x }
+func g87(x: int) -> int { x }
+func g88(x: int) -> int { x }
+func g89(x: int) -> int { x }
+func g90(x: int) -> int { x }
+func g91(x: int) -> int { x }
+func g92(x: int) -> int { x }
+func g93(x: int) -> int { x }
+func g94(x: int) -> int { x }
+func g95(x: int) -> int { x }
+func g96(x: int) -> int { x }
+func g97(x: int) -> int { x }
+func g98(x: int) -> int { x }
+func g99(x: int) -> int { x }
+func g100(x: int) -> int { x }
+func g101(x: int) -> int { x }
+func g102(x: int) -> int { x }
+func g103(x: int) -> int { x }
+func g104(x: int) -> int { x }
+func g105(x: int) -> int { x }
+func g106(x: int) -> int { x }
+func g107(x: int) -> int { x }
+func g108(x: int) -> int { x }
+func g109(x: int) -> int { x }
+func g110(x: int) -> int { x }
+func g111(x: int) -> int { x }
+func g112(x: int) -> int { x }
+func g113(x: int) -> int { x }
+func g114(x: int) -> int { x }
+func g115(x: int) -> int { x }
+func g116(x: int) -> int { x }
+func g117(x: int) -> int { x }
+func g118(x: int) -> int { x }
+func g119(x: int) -> int { x }
+func g120(x: int) -> int { x }
+func g121(x: int) -> int { x }
+func g122(x: int) -> int { x }
+func g123(x: int) -> int { x }
+func g124(x: int) -> int { x }
+func g125(x: int) -> int { x }
+func g126(x: int) -> int { x }
+func g127(x: int) -> int { x }
+func g128(x: int) -> int { x }
+func g129(x: int) -> int { x }
+func g130(x: int) -> int { x }
+func g131(x: int) -> int { x }
+func g132(x: int) -> int { x }
+func g133(x: int) -> int { x }
+func g134(x: int) -> int { x }
+func g135(x: int) -> int { x }
+func g136(x: int) -> int { x }
+func g137(x: int) -> int { x }
+func g138(x: int) -> int { x }
+func g139(x: int) -> int { x }
+func g140(x: int) -> int { x }
+func g141(x: int) -> int { x }
+func g142(x: int) -> int { x }
+func g143(x: int) -> int { x }
+func g144(x: int) -> int { x }
+func g145(x: int) -> int { x }
+func g146(x: int) -> int { x }
+func g147(x: int) -> int { x }
+func g148(x: int) -> int { x }
+func g149(x: int) -> int { x }
+func g150(x: int) -> int { x }
+func g151(x: int) -> int { x }
+func g152(x: int) -> int { x }
+func g153(x: int) -> int { x }
+func g154(x: int) -> int { x }
+func g155(x: int) -> int { x }
+func g156(x: int) -> int { x }
+func g157(x: int) -> int { x }
+func g158(x: int) -> int { x }
+func g159(x: int) -> int { x }
+func g160(x: int) -> int { x }
+func g161(x: int) -> int { x }
+func g162(x: int) -> int { x }
+func g163(x: int) -> int { x }
+func g164(x: int) -> int { x }
+func g165(x: int) -> int { x }
+func g166(x: int) -> int { x }
+func g167(x: int) -> int { x }
+func g168(x: int) -> int { x }
+func g169(x: int) -> int { x }
+func g170(x: int) -> int { x }
+func g171(x: int) -> int { x }
+func g172(x: int) -> int { x }
+func g173(x: int) -> int { x }
+func g174(x: int) -> int { x }
+func g175(x: int) -> int { x }
+func g176(x: int) -> int { x }
+func g177(x: int) -> int { x }
+func g178(x: int) -> int { x }
+func g179(x: int) -> int { x }
+func g180(x: int) -> int { x }
+func g181(x: int) -> int { x }
+func g182(x: int) -> int { x }
+func g183(x: int) -> int { x }
+func g184(x: int) -> int { x }
+func g185(x: int) -> int { x }
+func g186(x: int) -> int { x }
+func g187(x: int) -> int { x }
+func g188(x: int) -> int { x }
+func g189(x: int) -> int { x }
+func g190(x: int) -> int { x }
+func g191(x: int) -> int { x }
+func g192(x: int) -> int { x }
+func g193(x: int) -> int { x }
+func g194(x: int) -> int { x }
+func g195(x: int) -> int { x }
+func g196(x: int) -> int { x }
+func g197(x: int) -> int { x }
+func g198(x: int) -> int { x }
+func g199(x: int) -> int { x }
+func g200(x: int) -> int { x }
+func g201(x: int) -> int { x }
+func g202(x: int) -> int { x }
+func g203(x: int) -> int { x }
+func g204(x: int) -> int { x }
+func g205(x: int) -> int { x }
+func g206(x: int) -> int { x }
+func g207(x: int) -> int { x }
+func g208(x: int) -> int { x }
+func g209(x: int) -> int { x }
+func g210(x: int) -> int { x }
+func g211(x: int) -> int { x }
+func g212(x: int) -> int { x }
+func g213(x: int) -> int { x }
+func g214(x: int) -> int { x }
+func g215(x: int) -> int { x }
+func g216(x: int) -> int { x }
+func g217(x: int) -> int { x }
+func g218(x: int) -> int { x }
+func g219(x: int) -> int { x }
+func g220(x: int) -> int { x }
+func g221(x: int) -> int { x }
+func g222(x: int) -> int { x }
+func g223(x: int) -> int { x }
+func g224(x: int) -> int { x }
+func g225(x: int) -> int { x }
+func g226(x: int) -> int { x }
+func g227(x: int) -> int { x }
+func g228(x: int) -> int { x }
+func g229(x: int) -> int { x }
+func g230(x: int) -> int { x }
+func g231(x: int) -> int { x }
+func g232(x: int) -> int { x }
+func g233(x: int) -> int { x }
+func g234(x: int) -> int { x }
+func g235(x: int) -> int { x }
+func g236(x: int) -> int { x }
+func g237(x: int) -> int { x }
+func g238(x: int) -> int { x }
+func g239(x: int) -> int { x }
+func g240(x: int) -> int { x }
+func g241(x: int) -> int { x }
+func g242(x: int) -> int { x }
+func g243(x: int) -> int { x }
+func g244(x: int) -> int { x }
+func g245(x: int) -> int { x }
+func g246(x: int) -> int { x }
+func g247(x: int) -> int { x }
+func g248(x: int) -> int { x }
+func g249(x: int) -> int { x }
+func g250(x: int) -> int { x }
+func g251(x: int) -> int { x }
+func g252(x: int) -> int { x }
+func g253(x: int) -> int { x }
+func g254(x: int) -> int { x }
+func g255(x: int) -> int { x }
+func g256(x: int) -> int { x }
+func g257(x: int) -> int { x }
+func g258(x: int) -> int { x }
+func g259(x: int) -> int { x }
+func g260(x: int) -> int { x }
+func g261(x: int) -> int { x }
+func g262(x: int) -> int { x }
+func g263(x: int) -> int { x }
+func g264(x: int) -> int { x }
+func g265(x: int) -> int { x }
+func g266(x: int) -> int { x }
+func g267(x: int) -> int { x }
+func g268(x: int) -> int { x }
+func g269(x: int) -> int { x }
+func g270(x: int) -> int { x }
+func g271(x: int) -> int { x }
+func g272(x: int) -> int { x }
+func g273(x: int) -> int { x }
+func g274(x: int) -> int { x }
+func g275(x: int) -> int { x }
+func g276(x: int) -> int { x }
+func g277(x: int) -> int { x }
+func g278(x: int) -> int { x }
+func g279(x: int) -> int { x }
+func g280(x: int) -> int { x }
+func g281(x: int) -> int { x }
+func g282(x: int) -> int { x }
+func g283(x: int) -> int { x }
+func g284(x: int) -> int { x }
+func g285(x: int) -> int { x }
+func g286(x: int) -> int { x }
+func g287(x: int) -> int { x }
+func g288(x: int) -> int { x }
+func g289(x: int) -> int { x }
+func g290(x: int) -> int { x }
+func g291(x: int) -> int { x }
+func g292(x: int) -> int { x }
+func g293(x: int) -> int { x }
+func g294(x: int) -> int { x }
+func g295(x: int) -> int { x }
+func g296(x: int) -> int { x }
+func g297(x: int) -> int { x }
+func g298(x: int) -> int { x }
+func g299(x: int) -> int { x }
+func g300(x: int) -> int { x }
+func g301(x: int) -> int { x }
+func g302(x: int) -> int { x }
+func g303(x: int) -> int { x }
+func g304(x: int) -> int { x }
+func g305(x: int) -> int { x }
+func g306(x: int) -> int { x }
+func g307(x: int) -> int { x }
+func g308(x: int) -> int { x }
+func g309(x: int) -> int { x }
+func g310(x: int) -> int { x }
+func g311(x: int) -> int { x }
+func g312(x: int) -> int { x }
+func g313(x: int) -> int { x }
+func g314(x: int) -> int { x }
+func g315(x: int) -> int { x }
+func g316(x: int) -> int { x }
+func g317(x: int) -> int { x }
+func g318(x: int) -> int { x }
+func g319(x: int) -> int { x }
+func g320(x: int) -> int { x }
+func g321(x: int) -> int { x }
+func g322(x: int) -> int { x }
+func g323(x: int) -> int { x }
+func g324(x: int) -> int { x }
+func g325(x: int) -> int { x }
+func g326(x: int) -> int { x }
+func g327(x: int) -> int { x }
+func g328(x: int) -> int { x }
+func g329(x: int) -> int { x }
+func g330(x: int) -> int { x }
+func g331(x: int) -> int { x }
+func g332(x: int) -> int { x }
+func g333(x: int) -> int { x }
+func g334(x: int) -> int { x }
+func g335(x: int) -> int { x }
+func g336(x: int) -> int { x }
+func g337(x: int) -> int { x }
+func g338(x: int) -> int { x }
+func g339(x: int) -> int { x }
+func g340(x: int) -> int { x }
+func g341(x: int) -> int { x }
+func g342(x: int) -> int { x }
+func g343(x: int) -> int { x }
+func g344(x: int) -> int { x }
+func g345(x: int) -> int { x }
+func g346(x: int) -> int { x }
+func g347(x: int) -> int { x }
+func g348(x: int) -> int { x }
+func g349(x: int) -> int { x }
+func g350(x: int) -> int { x }
+func g351(x: int) -> int { x }
+func g352(x: int) -> int { x }
+func g353(x: int) -> int { x }
+func g354(x: int) -> int { x }
+func g355(x: int) -> int { x }
+func g356(x: int) -> int { x }
+func g357(x: int) -> int { x }
+func g358(x: int) -> int { x }
+func g359(x: int) -> int { x }
+func g360(x: int) -> int { x }
+func g361(x: int) -> int { x }
+func g362(x: int) -> int { x }
+func g363(x: int) -> int { x }
+func g364(x: int) -> int { x }
+func g365(x: int) -> int { x }
+func g366(x: int) -> int { x }
+func g367(x: int) -> int { x }
+func g368(x: int) -> int { x }
+func g369(x: int) -> int { x }
+func g370(x: int) -> int { x }
+func g371(x: int) -> int { x }
+func g372(x: int) -> int { x }
+func g373(x: int) -> int { x }
+func g374(x: int) -> int { x }
+func g375(x: int) -> int { x }
+func g376(x: int) -> int { x }
+func g377(x: int) -> int { x }
+func g378(x: int) -> int { x }
+func g379(x: int) -> int { x }
+func g380(x: int) -> int { x }
+func g381(x: int) -> int { x }
+func g382(x: int) -> int { x }
+func g383(x: int) -> int { x }
+func g384(x: int) -> int { x }
+func g385(x: int) -> int { x }
+func g386(x: int) -> int { x }
+func g387(x: int) -> int { x }
+func g388(x: int) -> int { x }
+func g389(x: int) -> int { x }
+func g390(x: int) -> int { x }
+func g391(x: int) -> int { x }
+func g392(x: int) -> int { x }
+func g393(x: int) -> int { x }
+func g394(x: int) -> int { x }
+func g395(x: int) -> int { x }
+func g396(x: int) -> int { x }
+func g397(x: int) -> int { x }
+func g398(x: int) -> int { x }
+func g399(x: int) -> int { x }
+func g400(x: int) -> int { x }
+func g401(x: int) -> int { x }
+func g402(x: int) -> int { x }
+func g403(x: int) -> int { x }
+func g404(x: int) -> int { x }
+func g405(x: int) -> int { x }
+func g406(x: int) -> int { x }
+func g407(x: int) -> int { x }
+func g408(x: int) -> int { x }
+func g409(x: int) -> int { x }
+func g410(x: int) -> int { x }
+func g411(x: int) -> int { x }
+func g412(x: int) -> int { x }
+func g413(x: int) -> int { x }
+func g414(x: int) -> int { x }
+func g415(x: int) -> int { x }
+func g416(x: int) -> int { x }
+func g417(x: int) -> int { x }
+func g418(x: int) -> int { x }
+func g419(x: int) -> int { x }
+func g420(x: int) -> int { x }
+func g421(x: int) -> int { x }
+func g422(x: int) -> int { x }
+func g423(x: int) -> int { x }
+func g424(x: int) -> int { x }
+func g425(x: int) -> int { x }
+func g426(x: int) -> int { x }
+func g427(x: int) -> int { x }
+func g428(x: int) -> int { x }
+func g429(x: int) -> int { x }
+func g430(x: int) -> int { x }
+func g431(x: int) -> int { x }
+func g432(x: int) -> int { x }
+func g433(x: int) -> int { x }
+func g434(x: int) -> int { x }
+func g435(x: int) -> int { x }
+func g436(x: int) -> int { x }
+func g437(x: int) -> int { x }
+func g438(x: int) -> int { x }
+func g439(x: int) -> int { x }
+func g440(x: int) -> int { x }
+func g441(x: int) -> int { x }
+func g442(x: int) -> int { x }
+func g443(x: int) -> int { x }
+func g444(x: int) -> int { x }
+func g445(x: int) -> int { x }
+func g446(x: int) -> int { x }
+func g447(x: int) -> int { x }
+func g448(x: int) -> int { x }
+func g449(x: int) -> int { x }
+func g450(x: int) -> int { x }
+func g451(x: int) -> int { x }
+func g452(x: int) -> int { x }
+func g453(x: int) -> int { x }
+func g454(x: int) -> int { x }
+func g455(x: int) -> int { x }
+func g456(x: int) -> int { x }
+func g457(x: int) -> int { x }
+func g458(x: int) -> int { x }
+func g459(x: int) -> int { x }
+func g460(x: int) -> int { x }
+func g461(x: int) -> int { x }
+func g462(x: int) -> int { x }
+func g463(x: int) -> int { x }
+func g464(x: int) -> int { x }
+func g465(x: int) -> int { x }
+func g466(x: int) -> int { x }
+func g467(x: int) -> int { x }
+func g468(x: int) -> int { x }
+func g469(x: int) -> int { x }
+func g470(x: int) -> int { x }
+func g471(x: int) -> int { x }
+func g472(x: int) -> int { x }
+func g473(x: int) -> int { x }
+func g474(x: int) -> int { x }
+func g475(x: int) -> int { x }
+func g476(x: int) -> int { x }
+func g477(x: int) -> int { x }
+func g478(x: int) -> int { x }
+func g479(x: int) -> int { x }
+func g480(x: int) -> int { x }
+func g481(x: int) -> int { x }
+func g482(x: int) -> int { x }
+func g483(x: int) -> int { x }
+func g484(x: int) -> int { x }
+func g485(x: int) -> int { x }
+func g486(x: int) -> int { x }
+func g487(x: int) -> int { x }
+func g488(x: int) -> int { x }
+func g489(x: int) -> int { x }
+func g490(x: int) -> int { x }
+func g491(x: int) -> int { x }
+func g492(x: int) -> int { x }
+func g493(x: int) -> int { x }
+func g494(x: int) -> int { x }
+func g495(x: int) -> int { x }
+func g496(x: int) -> int { x }
+func g497(x: int) -> int { x }
+func g498(x: int) -> int { x }
+func g499(x: int) -> int { x }
+func g500(x: int) -> int { x }
+func g501(x: int) -> int { x }
+func g502(x: int) -> int { x }
+func g503(x: int) -> int { x }
+func g504(x: int) -> int { x }
+func g505(x: int) -> int { x }
+func g506(x: int) -> int { x }
+func g507(x: int) -> int { x }
+func g508(x: int) -> int { x }
+func g509(x: int) -> int { x }
+func g510(x: int) -> int { x }
+func g511(x: int) -> int { x }
+func g512(x: int) -> int { x }
+func g513(x: int) -> int { x }
+func g514(x: int) -> int { x }
+func g515(x: int) -> int { x }
+func g516(x: int) -> int { x }
+func g517(x: int) -> int { x }
+func g518(x: int) -> int { x }
+func g519(x: int) -> int { x }
+func g520(x: int) -> int { x }
+func g521(x: int) -> int { x }
+func g522(x: int) -> int { x }
+func g523(x: int) -> int { x }
+func g524(x: int) -> int { x }
+func g525(x: int) -> int { x }
+func g526(x: int) -> int { x }
+func g527(x: int) -> int { x }
+func g528(x: int) -> int { x }
+func g529(x: int) -> int { x }
+func g530(x: int) -> int { x }
+func g531(x: int) -> int { x }
+func g532(x: int) -> int { x }
+func g533(x: int) -> int { x }
+func g534(x: int) -> int { x }
+func g535(x: int) -> int { x }
+func g536(x: int) -> int { x }
+func g537(x: int) -> int { x }
+func g538(x: int) -> int { x }
+func g539(x: int) -> int { x }
+func g540(x: int) -> int { x }
+func g541(x: int) -> int { x }
+func g542(x: int) -> int { x }
+func g543(x: int) -> int { x }
+func g544(x: int) -> int { x }
+func g545(x: int) -> int { x }
+func g546(x: int) -> int { x }
+func g547(x: int) -> int { x }
+func g548(x: int) -> int { x }
+func g549(x: int) -> int { x }
+func g550(x: int) -> int { x }
+func g551(x: int) -> int { x }
+func g552(x: int) -> int { x }
+func g553(x: int) -> int { x }
+func g554(x: int) -> int { x }
+func g555(x: int) -> int { x }
+func g556(x: int) -> int { x }
+func g557(x: int) -> int { x }
+func g558(x: int) -> int { x }
+func g559(x: int) -> int { x }
+func g560(x: int) -> int { x }
+func g561(x: int) -> int { x }
+func g562(x: int) -> int { x }
+func g563(x: int) -> int { x }
+func g564(x: int) -> int { x }
+func g565(x: int) -> int { x }
+func g566(x: int) -> int { x }
+func g567(x: int) -> int { x }
+func g568(x: int) -> int { x }
+func g569(x: int) -> int { x }
+func g570(x: int) -> int { x }
+func g571(x: int) -> int { x }
+func g572(x: int) -> int { x }
+func g573(x: int) -> int { x }
+func g574(x: int) -> int { x }
+func g575(x: int) -> int { x }
+func g576(x: int) -> int { x }
+func g577(x: int) -> int { x }
+func g578(x: int) -> int { x }
+func g579(x: int) -> int { x }
+func g580(x: int) -> int { x }
+func g581(x: int) -> int { x }
+func g582(x: int) -> int { x }
+func g583(x: int) -> int { x }
+func g584(x: int) -> int { x }
+func g585(x: int) -> int { x }
+func g586(x: int) -> int { x }
+func g587(x: int) -> int { x }
+func g588(x: int) -> int { x }
+func g589(x: int) -> int { x }
+func g590(x: int) -> int { x }
+func g591(x: int) -> int { x }
+func g592(x: int) -> int { x }
+func g593(x: int) -> int { x }
+func g594(x: int) -> int { x }
+func g595(x: int) -> int { x }
+func g596(x: int) -> int { x }
+func g597(x: int) -> int { x }
+func g598(x: int) -> int { x }
+func g599(x: int) -> int { x }
+func g600(x: int) -> int { x }
+func g601(x: int) -> int { x }
+func g602(x: int) -> int { x }
+func g603(x: int) -> int { x }
+func g604(x: int) -> int { x }
+func g605(x: int) -> int { x }
+func g606(x: int) -> int { x }
+func g607(x: int) -> int { x }
+func g608(x: int) -> int { x }
+func g609(x: int) -> int { x }
+func g610(x: int) -> int { x }
+func g611(x: int) -> int { x }
+func g612(x: int) -> int { x }
+func g613(x: int) -> int { x }
+func g614(x: int) -> int { x }
+func g615(x: int) -> int { x }
+func g616(x: int) -> int { x }
+func g617(x: int) -> int { x }
+func g618(x: int) -> int { x }
+func g619(x: int) -> int { x }
+func g620(x: int) -> int { x }
+func g621(x: int) -> int { x }
+func g622(x: int) -> int { x }
+func g623(x: int) -> int { x }
+func g624(x: int) -> int { x }
+func g625(x: int) -> int { x }
+func g626(x: int) -> int { x }
+func g627(x: int) -> int { x }
+func g628(x: int) -> int { x }
+func g629(x: int) -> int { x }
+func g630(x: int) -> int { x }
+func g631(x: int) -> int { x }
+func g632(x: int) -> int { x }
+func g633(x: int) -> int { x }
+func g634(x: int) -> int { x }
+func g635(x: int) -> int { x }
+func g636(x: int) -> int { x }
+func g637(x: int) -> int { x }
+func g638(x: int) -> int { x }
+func g639(x: int) -> int { x }
+func g640(x: int) -> int { x }
+func g641(x: int) -> int { x }
+func g642(x: int) -> int { x }
+func g643(x: int) -> int { x }
+func g644(x: int) -> int { x }
+func g645(x: int) -> int { x }
+func g646(x: int) -> int { x }
+func g647(x: int) -> int { x }
+func g648(x: int) -> int { x }
+func g649(x: int) -> int { x }
+func g650(x: int) -> int { x }
+func g651(x: int) -> int { x }
+func g652(x: int) -> int { x }
+func g653(x: int) -> int { x }
+func g654(x: int) -> int { x }
+func g655(x: int) -> int { x }
+func g656(x: int) -> int { x }
+func g657(x: int) -> int { x }
+func g658(x: int) -> int { x }
+func g659(x: int) -> int { x }
+func g660(x: int) -> int { x }
+func g661(x: int) -> int { x }
+func g662(x: int) -> int { x }
+func g663(x: int) -> int { x }
+func g664(x: int) -> int { x }
+func g665(x: int) -> int { x }
+func g666(x: int) -> int { x }
+func g667(x: int) -> int { x }
+func g668(x: int) -> int { x }
+func g669(x: int) -> int { x }
+func g670(x: int) -> int { x }
+func g671(x: int) -> int { x }
+func g672(x: int) -> int { x }
+func g673(x: int) -> int { x }
+func g674(x: int) -> int { x }
+func g675(x: int) -> int { x }
+func g676(x: int) -> int { x }
+func g677(x: int) -> int { x }
+func g678(x: int) -> int { x }
+func g679(x: int) -> int { x }
+func g680(x: int) -> int { x }
+func g681(x: int) -> int { x }
+func g682(x: int) -> int { x }
+func g683(x: int) -> int { x }
+func g684(x: int) -> int { x }
+func g685(x: int) -> int { x }
+func g686(x: int) -> int { x }
+func g687(x: int) -> int { x }
+func g688(x: int) -> int { x }
+func g689(x: int) -> int { x }
+func g690(x: int) -> int { x }
+func g691(x: int) -> int { x }
+func g692(x: int) -> int { x }
+func g693(x: int) -> int { x }
+func g694(x: int) -> int { x }
+func g695(x: int) -> int { x }
+func g696(x: int) -> int { x }
+func g697(x: int) -> int { x }
+func g698(x: int) -> int { x }
+func g699(x: int) -> int { x }
+func g700(x: int) -> int { x }
+func g701(x: int) -> int { x }
+func g702(x: int) -> int { x }
+func g703(x: int) -> int { x }
+func g704(x: int) -> int { x }
+func g705(x: int) -> int { x }
+func g706(x: int) -> int { x }
+func g707(x: int) -> int { x }
+func g708(x: int) -> int { x }
+func g709(x: int) -> int { x }
+func g710(x: int) -> int { x }
+func g711(x: int) -> int { x }
+func g712(x: int) -> int { x }
+func g713(x: int) -> int { x }
+func g714(x: int) -> int { x }
+func g715(x: int) -> int { x }
+func g716(x: int) -> int { x }
+func g717(x: int) -> int { x }
+func g718(x: int) -> int { x }
+func g719(x: int) -> int { x }
+func g720(x: int) -> int { x }
+func g721(x: int) -> int { x }
+func g722(x: int) -> int { x }
+func g723(x: int) -> int { x }
+func g724(x: int) -> int { x }
+func g725(x: int) -> int { x }
+func g726(x: int) -> int { x }
+func g727(x: int) -> int { x }
+func g728(x: int) -> int { x }
+func g729(x: int) -> int { x }
+func g730(x: int) -> int { x }
+func g731(x: int) -> int { x }
+func g732(x: int) -> int { x }
+func g733(x: int) -> int { x }
+func g734(x: int) -> int { x }
+func g735(x: int) -> int { x }
+func g736(x: int) -> int { x }
+func g737(x: int) -> int { x }
+func g738(x: int) -> int { x }
+func g739(x: int) -> int { x }
+func g740(x: int) -> int { x }
+func g741(x: int) -> int { x }
+func g742(x: int) -> int { x }
+func g743(x: int) -> int { x }
+func g744(x: int) -> int { x }
+func g745(x: int) -> int { x }
+func g746(x: int) -> int { x }
+func g747(x: int) -> int { x }
+func g748(x: int) -> int { x }
+func g749(x: int) -> int { x }
+func g750(x: int) -> int { x }
+func g751(x: int) -> int { x }
+func g752(x: int) -> int { x }
+func g753(x: int) -> int { x }
+func g754(x: int) -> int { x }
+func g755(x: int) -> int { x }
+func g756(x: int) -> int { x }
+func g757(x: int) -> int { x }
+func g758(x: int) -> int { x }
+func g759(x: int) -> int { x }
+func g760(x: int) -> int { x }
+func g761(x: int) -> int { x }
+func g762(x: int) -> int { x }
+func g763(x: int) -> int { x }
+func g764(x: int) -> int { x }
+func g765(x: int) -> int { x }
+func g766(x: int) -> int { x }
+func g767(x: int) -> int { x }
+func g768(x: int) -> int { x }
+func g769(x: int) -> int { x }
+func g770(x: int) -> int { x }
+func g771(x: int) -> int { x }
+func g772(x: int) -> int { x }
+func g773(x: int) -> int { x }
+func g774(x: int) -> int { x }
+func g775(x: int) -> int { x }
+func g776(x: int) -> int { x }
+func g777(x: int) -> int { x }
+func g778(x: int) -> int { x }
+func g779(x: int) -> int { x }
+func g780(x: int) -> int { x }
+func g781(x: int) -> int { x }
+func g782(x: int) -> int { x }
+func g783(x: int) -> int { x }
+func g784(x: int) -> int { x }
+func g785(x: int) -> int { x }
+func g786(x: int) -> int { x }
+func g787(x: int) -> int { x }
+func g788(x: int) -> int { x }
+func g789(x: int) -> int { x }
+func g790(x: int) -> int { x }
+func g791(x: int) -> int { x }
+func g792(x: int) -> int { x }
+func g793(x: int) -> int { x }
+func g794(x: int) -> int { x }
+func g795(x: int) -> int { x }
+func g796(x: int) -> int { x }
+func g797(x: int) -> int { x }
+func g798(x: int) -> int { x }
+func g799(x: int) -> int { x }
+func g800(x: int) -> int { x }
+func g801(x: int) -> int { x }
+func g802(x: int) -> int { x }
+func g803(x: int) -> int { x }
+func g804(x: int) -> int { x }
+func g805(x: int) -> int { x }
+func g806(x: int) -> int { x }
+func g807(x: int) -> int { x }
+func g808(x: int) -> int { x }
+func g809(x: int) -> int { x }
+func g810(x: int) -> int { x }
+func g811(x: int) -> int { x }
+func g812(x: int) -> int { x }
+func g813(x: int) -> int { x }
+func g814(x: int) -> int { x }
+func g815(x: int) -> int { x }
+func g816(x: int) -> int { x }
+func g817(x: int) -> int { x }
+func g818(x: int) -> int { x }
+func g819(x: int) -> int { x }
+func g820(x: int) -> int { x }
+func g821(x: int) -> int { x }
+func g822(x: int) -> int { x }
+func g823(x: int) -> int { x }
+func g824(x: int) -> int { x }
+func g825(x: int) -> int { x }
+func g826(x: int) -> int { x }
+func g827(x: int) -> int { x }
+func g828(x: int) -> int { x }
+func g829(x: int) -> int { x }
+func g830(x: int) -> int { x }
+func g831(x: int) -> int { x }
+func g832(x: int) -> int { x }
+func g833(x: int) -> int { x }
+func g834(x: int) -> int { x }
+func g835(x: int) -> int { x }
+func g836(x: int) -> int { x }
+func g837(x: int) -> int { x }
+func g838(x: int) -> int { x }
+func g839(x: int) -> int { x }
+func g840(x: int) -> int { x }
+func g841(x: int) -> int { x }
+func g842(x: int) -> int { x }
+func g843(x: int) -> int { x }
+func g844(x: int) -> int { x }
+func g845(x: int) -> int { x }
+func g846(x: int) -> int { x }
+func g847(x: int) -> int { x }
+func g848(x: int) -> int { x }
+func g849(x: int) -> int { x }
+func g850(x: int) -> int { x }
+func g851(x: int) -> int { x }
+func g852(x: int) -> int { x }
+func g853(x: int) -> int { x }
+func g854(x: int) -> int { x }
+func g855(x: int) -> int { x }
+func g856(x: int) -> int { x }
+func g857(x: int) -> int { x }
+func g858(x: int) -> int { x }
+func g859(x: int) -> int { x }
+func g860(x: int) -> int { x }
+func g861(x: int) -> int { x }
+func g862(x: int) -> int { x }
+func g863(x: int) -> int { x }
+func g864(x: int) -> int { x }
+func g865(x: int) -> int { x }
+func g866(x: int) -> int { x }
+func g867(x: int) -> int { x }
+func g868(x: int) -> int { x }
+func g869(x: int) -> int { x }
+func g870(x: int) -> int { x }
+func g871(x: int) -> int { x }
+func g872(x: int) -> int { x }
+func g873(x: int) -> int { x }
+func g874(x: int) -> int { x }
+func g875(x: int) -> int { x }
+func g876(x: int) -> int { x }
+func g877(x: int) -> int { x }
+func g878(x: int) -> int { x }
+func g879(x: int) -> int { x }
+func g880(x: int) -> int { x }
+func g881(x: int) -> int { x }
+func g882(x: int) -> int { x }
+func g883(x: int) -> int { x }
+func g884(x: int) -> int { x }
+func g885(x: int) -> int { x }
+func g886(x: int) -> int { x }
+func g887(x: int) -> int { x }
+func g888(x: int) -> int { x }
+func g889(x: int) -> int { x }
+func g890(x: int) -> int { x }
+func g891(x: int) -> int { x }
+func g892(x: int) -> int { x }
+func g893(x: int) -> int { x }
+func g894(x: int) -> int { x }
+func g895(x: int) -> int { x }
+func g896(x: int) -> int { x }
+func g897(x: int) -> int { x }
+func g898(x: int) -> int { x }
+func g899(x: int) -> int { x }
+func g900(x: int) -> int { x }
+func g901(x: int) -> int { x }
+func g902(x: int) -> int { x }
+func g903(x: int) -> int { x }
+func g904(x: int) -> int { x }
+func g905(x: int) -> int { x }
+func g906(x: int) -> int { x }
+func g907(x: int) -> int { x }
+func g908(x: int) -> int { x }
+func g909(x: int) -> int { x }
+func g910(x: int) -> int { x }
+func g911(x: int) -> int { x }
+func g912(x: int) -> int { x }
+func g913(x: int) -> int { x }
+func g914(x: int) -> int { x }
+func g915(x: int) -> int { x }
+func g916(x: int) -> int { x }
+func g917(x: int) -> int { x }
+func g918(x: int) -> int { x }
+func g919(x: int) -> int { x }
+func g920(x: int) -> int { x }
+func g921(x: int) -> int { x }
+func g922(x: int) -> int { x }
+func g923(x: int) -> int { x }
+func g924(x: int) -> int { x }
+func g925(x: int) -> int { x }
+func g926(x: int) -> int { x }
+func g927(x: int) -> int { x }
+func g928(x: int) -> int { x }
+func g929(x: int) -> int { x }
+func g930(x: int) -> int { x }
+func g931(x: int) -> int { x }
+func g932(x: int) -> int { x }
+func g933(x: int) -> int { x }
+func g934(x: int) -> int { x }
+func g935(x: int) -> int { x }
+func g936(x: int) -> int { x }
+func g937(x: int) -> int { x }
+func g938(x: int) -> int { x }
+func g939(x: int) -> int { x }
+func g940(x: int) -> int { x }
+func g941(x: int) -> int { x }
+func g942(x: int) -> int { x }
+func g943(x: int) -> int { x }
+func g944(x: int) -> int { x }
+func g945(x: int) -> int { x }
+func g946(x: int) -> int { x }
+func g947(x: int) -> int { x }
+func g948(x: int) -> int { x }
+func g949(x: int) -> int { x }
+func g950(x: int) -> int { x }
+func g951(x: int) -> int { x }
+func g952(x: int) -> int { x }
+func g953(x: int) -> int { x }
+func g954(x: int) -> int { x }
+func g955(x: int) -> int { x }
+func g956(x: int) -> int { x }
+func g957(x: int) -> int { x }
+func g958(x: int) -> int { x }
+func g959(x: int) -> int { x }
+func g960(x: int) -> int { x }
+func g961(x: int) -> int { x }
+func g962(x: int) -> int { x }
+func g963(x: int) -> int { x }
+func g964(x: int) -> int { x }
+func g965(x: int) -> int { x }
+func g966(x: int) -> int { x }
+func g967(x: int) -> int { x }
+func g968(x: int) -> int { x }
+func g969(x: int) -> int { x }
+func g970(x: int) -> int { x }
+func g971(x: int) -> int { x }
+func g972(x: int) -> int { x }
+func g973(x: int) -> int { x }
+func g974(x: int) -> int { x }
+func g975(x: int) -> int { x }
+func g976(x: int) -> int { x }
+func g977(x: int) -> int { x }
+func g978(x: int) -> int { x }
+func g979(x: int) -> int { x }
+func g980(x: int) -> int { x }
+func g981(x: int) -> int { x }
+func g982(x: int) -> int { x }
+func g983(x: int) -> int { x }
+func g984(x: int) -> int { x }
+func g985(x: int) -> int { x }
+func g986(x: int) -> int { x }
+func g987(x: int) -> int { x }
+func g988(x: int) -> int { x }
+func g989(x: int) -> int { x }
+func g990(x: int) -> int { x }
+func g991(x: int) -> int { x }
+func g992(x: int) -> int { x }
+func g993(x: int) -> int { x }
+func g994(x: int) -> int { x }
+func g995(x: int) -> int { x }
+func g996(x: int) -> int { x }
+func g997(x: int) -> int { x }
+func g998(x: int) -> int { x }
+func g999(x: int) -> int { x }
+func g1000(x: int) -> int { x }
+func g1001(x: int) -> int { x }
+func g1002(x: int) -> int { x }
+func g1003(x: int) -> int { x }
+func g1004(x: int) -> int { x }
+func g1005(x: int) -> int { x }
+func g1006(x: int) -> int { x }
+func g1007(x: int) -> int { x }
+func g1008(x: int) -> int { x }
+func g1009(x: int) -> int { x }
+func g1010(x: int) -> int { x }
+func g1011(x: int) -> int { x }
+func g1012(x: int) -> int { x }
+func g1013(x: int) -> int { x }
+func g1014(x: int) -> int { x }
+func g1015(x: int) -> int { x }
+func g1016(x: int) -> int { x }
+func g1017(x: int) -> int { x }
+func g1018(x: int) -> int { x }
+func g1019(x: int) -> int { x }
+func g1020(x: int) -> int { x }
+func g1021(x: int) -> int { x }
+func g1022(x: int) -> int { x }
+func g1023(x: int) -> int { x }
+func g1024(x: int) -> int { x }
+func g1025(x: int) -> int { x }
+func g1026(x: int) -> int { x }
+func g1027(x: int) -> int { x }
+func g1028(x: int) -> int { x }
+func g1029(x: int) -> int { x }
+func g1030(x: int) -> int { x }
+func g1031(x: int) -> int { x }
+func g1032(x: int) -> int { x }
+func g1033(x: int) -> int { x }
+func g1034(x: int) -> int { x }
+func g1035(x: int) -> int { x }
+func g1036(x: int) -> int { x }
+func g1037(x: int) -> int { x }
+func g1038(x: int) -> int { x }
+func g1039(x: int) -> int { x }
+func g1040(x: int) -> int { x }
+func g1041(x: int) -> int { x }
+func g1042(x: int) -> int { x }
+func g1043(x: int) -> int { x }
+func g1044(x: int) -> int { x }
+func g1045(x: int) -> int { x }
+func g1046(x: int) -> int { x }
+func g1047(x: int) -> int { x }
+func g1048(x: int) -> int { x }
+func g1049(x: int) -> int { x }
+func g1050(x: int) -> int { x }
+func g1051(x: int) -> int { x }
+func g1052(x: int) -> int { x }
+func g1053(x: int) -> int { x }
+func g1054(x: int) -> int { x }
+func g1055(x: int) -> int { x }
+func g1056(x: int) -> int { x }
+func g1057(x: int) -> int { x }
+func g1058(x: int) -> int { x }
+func g1059(x: int) -> int { x }
+func g1060(x: int) -> int { x }
+func g1061(x: int) -> int { x }
+func g1062(x: int) -> int { x }
+func g1063(x: int) -> int { x }
+func g1064(x: int) -> int { x }
+func g1065(x: int) -> int { x }
+func g1066(x: int) -> int { x }
+func g1067(x: int) -> int { x }
+func g1068(x: int) -> int { x }
+func g1069(x: int) -> int { x }
+func g1070(x: int) -> int { x }
+func g1071(x: int) -> int { x }
+func g1072(x: int) -> int { x }
+func g1073(x: int) -> int { x }
+func g1074(x: int) -> int { x }
+func g1075(x: int) -> int { x }
+func g1076(x: int) -> int { x }
+func g1077(x: int) -> int { x }
+func g1078(x: int) -> int { x }
+func g1079(x: int) -> int { x }
+func g1080(x: int) -> int { x }
+func g1081(x: int) -> int { x }
+func g1082(x: int) -> int { x }
+func g1083(x: int) -> int { x }
+func g1084(x: int) -> int { x }
+func g1085(x: int) -> int { x }
+func g1086(x: int) -> int { x }
+func g1087(x: int) -> int { x }
+func g1088(x: int) -> int { x }
+func g1089(x: int) -> int { x }
+func g1090(x: int) -> int { x }
+func g1091(x: int) -> int { x }
+func g1092(x: int) -> int { x }
+func g1093(x: int) -> int { x }
+func g1094(x: int) -> int { x }
+func g1095(x: int) -> int { x }
+func g1096(x: int) -> int { x }
+func g1097(x: int) -> int { x }
+func g1098(x: int) -> int { x }
+func g1099(x: int) -> int { x }
+func g1100(x: int) -> int { x }
+func g1101(x: int) -> int { x }
+func g1102(x: int) -> int { x }
+func g1103(x: int) -> int { x }
+func g1104(x: int) -> int { x }
+func g1105(x: int) -> int { x }
+func g1106(x: int) -> int { x }
+func g1107(x: int) -> int { x }
+func g1108(x: int) -> int { x }
+func g1109(x: int) -> int { x }
+func g1110(x: int) -> int { x }
+func g1111(x: int) -> int { x }
+func g1112(x: int) -> int { x }
+func g1113(x: int) -> int { x }
+func g1114(x: int) -> int { x }
+func g1115(x: int) -> int { x }
+func g1116(x: int) -> int { x }
+func g1117(x: int) -> int { x }
+func g1118(x: int) -> int { x }
+func g1119(x: int) -> int { x }
+func g1120(x: int) -> int { x }
+func g1121(x: int) -> int { x }
+func g1122(x: int) -> int { x }
+func g1123(x: int) -> int { x }
+func g1124(x: int) -> int { x }
+func g1125(x: int) -> int { x }
+func g1126(x: int) -> int { x }
+func g1127(x: int) -> int { x }
+func g1128(x: int) -> int { x }
+func g1129(x: int) -> int { x }
+func g1130(x: int) -> int { x }
+func g1131(x: int) -> int { x }
+func g1132(x: int) -> int { x }
+func g1133(x: int) -> int { x }
+func g1134(x: int) -> int { x }
+func g1135(x: int) -> int { x }
+func g1136(x: int) -> int { x }
+func g1137(x: int) -> int { x }
+func g1138(x: int) -> int { x }
+func g1139(x: int) -> int { x }
+func g1140(x: int) -> int { x }
+func g1141(x: int) -> int { x }
+func g1142(x: int) -> int { x }
+func g1143(x: int) -> int { x }
+func g1144(x: int) -> int { x }
+func g1145(x: int) -> int { x }
+func g1146(x: int) -> int { x }
+func g1147(x: int) -> int { x }
+func g1148(x: int) -> int { x }
+func g1149(x: int) -> int { x }
+func g1150(x: int) -> int { x }
+func g1151(x: int) -> int { x }
+func g1152(x: int) -> int { x }
+func g1153(x: int) -> int { x }
+func g1154(x: int) -> int { x }
+func g1155(x: int) -> int { x }
+func g1156(x: int) -> int { x }
+func g1157(x: int) -> int { x }
+func g1158(x: int) -> int { x }
+func g1159(x: int) -> int { x }
+func g1160(x: int) -> int { x }
+func g1161(x: int) -> int { x }
+func g1162(x: int) -> int { x }
+func g1163(x: int) -> int { x }
+func g1164(x: int) -> int { x }
+func g1165(x: int) -> int { x }
+func g1166(x: int) -> int { x }
+func g1167(x: int) -> int { x }
+func g1168(x: int) -> int { x }
+func g1169(x: int) -> int { x }
+func g1170(x: int) -> int { x }
+func g1171(x: int) -> int { x }
+func g1172(x: int) -> int { x }
+func g1173(x: int) -> int { x }
+func g1174(x: int) -> int { x }
+func g1175(x: int) -> int { x }
+func g1176(x: int) -> int { x }
+func g1177(x: int) -> int { x }
+func g1178(x: int) -> int { x }
+func g1179(x: int) -> int { x }
+func g1180(x: int) -> int { x }
+func g1181(x: int) -> int { x }
+func g1182(x: int) -> int { x }
+func g1183(x: int) -> int { x }
+func g1184(x: int) -> int { x }
+func g1185(x: int) -> int { x }
+func g1186(x: int) -> int { x }
+func g1187(x: int) -> int { x }
+func g1188(x: int) -> int { x }
+func g1189(x: int) -> int { x }
+func g1190(x: int) -> int { x }
+func g1191(x: int) -> int { x }
+func g1192(x: int) -> int { x }
+func g1193(x: int) -> int { x }
+func g1194(x: int) -> int { x }
+func g1195(x: int) -> int { x }
+func g1196(x: int) -> int { x }
+func g1197(x: int) -> int { x }
+func g1198(x: int) -> int { x }
+func g1199(x: int) -> int { x }
+func g1200(x: int) -> int { x }
+func g1201(x: int) -> int { x }
+func g1202(x: int) -> int { x }
+func g1203(x: int) -> int { x }
+func g1204(x: int) -> int { x }
+func g1205(x: int) -> int { x }
+func g1206(x: int) -> int { x }
+func g1207(x: int) -> int { x }
+func g1208(x: int) -> int { x }
+func g1209(x: int) -> int { x }
+func g1210(x: int) -> int { x }
+func g1211(x: int) -> int { x }
+func g1212(x: int) -> int { x }
+func g1213(x: int) -> int { x }
+func g1214(x: int) -> int { x }
+func g1215(x: int) -> int { x }
+func g1216(x: int) -> int { x }
+func g1217(x: int) -> int { x }
+func g1218(x: int) -> int { x }
+func g1219(x: int) -> int { x }
+func g1220(x: int) -> int { x }
+func g1221(x: int) -> int { x }
+func g1222(x: int) -> int { x }
+func g1223(x: int) -> int { x }
+func g1224(x: int) -> int { x }
+func g1225(x: int) -> int { x }
+func g1226(x: int) -> int { x }
+func g1227(x: int) -> int { x }
+func g1228(x: int) -> int { x }
+func g1229(x: int) -> int { x }
+func g1230(x: int) -> int { x }
+func g1231(x: int) -> int { x }
+func g1232(x: int) -> int { x }
+func g1233(x: int) -> int { x }
+func g1234(x: int) -> int { x }
+func g1235(x: int) -> int { x }
+func g1236(x: int) -> int { x }
+func g1237(x: int) -> int { x }
+func g1238(x: int) -> int { x }
+func g1239(x: int) -> int { x }
+func g1240(x: int) -> int { x }
+func g1241(x: int) -> int { x }
+func g1242(x: int) -> int { x }
+func g1243(x: int) -> int { x }
+func g1244(x: int) -> int { x }
+func g1245(x: int) -> int { x }
+func g1246(x: int) -> int { x }
+func g1247(x: int) -> int { x }
+func g1248(x: int) -> int { x }
+func g1249(x: int) -> int { x }
+func g1250(x: int) -> int { x }
+func g1251(x: int) -> int { x }
+func g1252(x: int) -> int { x }
+func g1253(x: int) -> int { x }
+func g1254(x: int) -> int { x }
+func g1255(x: int) -> int { x }
+func g1256(x: int) -> int { x }
+func g1257(x: int) -> int { x }
+func g1258(x: int) -> int { x }
+func g1259(x: int) -> int { x }
+func g1260(x: int) -> int { x }
+func g1261(x: int) -> int { x }
+func g1262(x: int) -> int { x }
+func g1263(x: int) -> int { x }
+func g1264(x: int) -> int { x }
+func g1265(x: int) -> int { x }
+func g1266(x: int) -> int { x }
+func g1267(x: int) -> int { x }
+func g1268(x: int) -> int { x }
+func g1269(x: int) -> int { x }
+func g1270(x: int) -> int { x }
+func g1271(x: int) -> int { x }
+func g1272(x: int) -> int { x }
+func g1273(x: int) -> int { x }
+func g1274(x: int) -> int { x }
+func g1275(x: int) -> int { x }
+func g1276(x: int) -> int { x }
+func g1277(x: int) -> int { x }
+func g1278(x: int) -> int { x }
+func g1279(x: int) -> int { x }
+func g1280(x: int) -> int { x }
+func g1281(x: int) -> int { x }
+func g1282(x: int) -> int { x }
+func g1283(x: int) -> int { x }
+func g1284(x: int) -> int { x }
+func g1285(x: int) -> int { x }
+func g1286(x: int) -> int { x }
+func g1287(x: int) -> int { x }
+func g1288(x: int) -> int { x }
+func g1289(x: int) -> int { x }
+func g1290(x: int) -> int { x }
+func g1291(x: int) -> int { x }
+func g1292(x: int) -> int { x }
+func g1293(x: int) -> int { x }
+func g1294(x: int) -> int { x }
+func g1295(x: int) -> int { x }
+func g1296(x: int) -> int { x }
+func g1297(x: int) -> int { x }
+func g1298(x: int) -> int { x }
+func g1299(x: int) -> int { x }
+func g1300(x: int) -> int { x }
+func g1301(x: int) -> int { x }
+func g1302(x: int) -> int { x }
+func g1303(x: int) -> int { x }
+func g1304(x: int) -> int { x }
+func g1305(x: int) -> int { x }
+func g1306(x: int) -> int { x }
+func g1307(x: int) -> int { x }
+func g1308(x: int) -> int { x }
+func g1309(x: int) -> int { x }
+func g1310(x: int) -> int { x }
+func g1311(x: int) -> int { x }
+func g1312(x: int) -> int { x }
+func g1313(x: int) -> int { x }
+func g1314(x: int) -> int { x }
+func g1315(x: int) -> int { x }
+func g1316(x: int) -> int { x }
+func g1317(x: int) -> int { x }
+func g1318(x: int) -> int { x }
+func g1319(x: int) -> int { x }
+func g1320(x: int) -> int { x }
+func g1321(x: int) -> int { x }
+func g1322(x: int) -> int { x }
+func g1323(x: int) -> int { x }
+func g1324(x: int) -> int { x }
+func g1325(x: int) -> int { x }
+func g1326(x: int) -> int { x }
+func g1327(x: int) -> int { x }
+func g1328(x: int) -> int { x }
+func g1329(x: int) -> int { x }
+func g1330(x: int) -> int { x }
+func g1331(x: int) -> int { x }
+func g1332(x: int) -> int { x }
+func g1333(x: int) -> int { x }
+func g1334(x: int) -> int { x }
+func g1335(x: int) -> int { x }
+func g1336(x: int) -> int { x }
+func g1337(x: int) -> int { x }
+func g1338(x: int) -> int { x }
+func g1339(x: int) -> int { x }
+func g1340(x: int) -> int { x }
+func g1341(x: int) -> int { x }
+func g1342(x: int) -> int { x }
+func g1343(x: int) -> int { x }
+func g1344(x: int) -> int { x }
+func g1345(x: int) -> int { x }
+func g1346(x: int) -> int { x }
+func g1347(x: int) -> int { x }
+func g1348(x: int) -> int { x }
+func g1349(x: int) -> int { x }
+func g1350(x: int) -> int { x }
+func g1351(x: int) -> int { x }
+func g1352(x: int) -> int { x }
+func g1353(x: int) -> int { x }
+func g1354(x: int) -> int { x }
+func g1355(x: int) -> int { x }
+func g1356(x: int) -> int { x }
+func g1357(x: int) -> int { x }
+func g1358(x: int) -> int { x }
+func g1359(x: int) -> int { x }
+func g1360(x: int) -> int { x }
+func g1361(x: int) -> int { x }
+func g1362(x: int) -> int { x }
+func g1363(x: int) -> int { x }
+func g1364(x: int) -> int { x }
+func g1365(x: int) -> int { x }
+func g1366(x: int) -> int { x }
+func g1367(x: int) -> int { x }
+func g1368(x: int) -> int { x }
+func g1369(x: int) -> int { x }
+func g1370(x: int) -> int { x }
+func g1371(x: int) -> int { x }
+func g1372(x: int) -> int { x }
+func g1373(x: int) -> int { x }
+func g1374(x: int) -> int { x }
+func g1375(x: int) -> int { x }
+func g1376(x: int) -> int { x }
+func g1377(x: int) -> int { x }
+func g1378(x: int) -> int { x }
+func g1379(x: int) -> int { x }
+func g1380(x: int) -> int { x }
+func g1381(x: int) -> int { x }
+func g1382(x: int) -> int { x }
+func g1383(x: int) -> int { x }
+func g1384(x: int) -> int { x }
+func g1385(x: int) -> int { x }
+func g1386(x: int) -> int { x }
+func g1387(x: int) -> int { x }
+func g1388(x: int) -> int { x }
+func g1389(x: int) -> int { x }
+func g1390(x: int) -> int { x }
+func g1391(x: int) -> int { x }
+func g1392(x: int) -> int { x }
+func g1393(x: int) -> int { x }
+func g1394(x: int) -> int { x }
+func g1395(x: int) -> int { x }
+func g1396(x: int) -> int { x }
+func g1397(x: int) -> int { x }
+func g1398(x: int) -> int { x }
+func g1399(x: int) -> int { x }
+func g1400(x: int) -> int { x }
+func g1401(x: int) -> int { x }
+func g1402(x: int) -> int { x }
+func g1403(x: int) -> int { x }
+func g1404(x: int) -> int { x }
+func g1405(x: int) -> int { x }
+func g1406(x: int) -> int { x }
+func g1407(x: int) -> int { x }
+func g1408(x: int) -> int { x }
+func g1409(x: int) -> int { x }
+func g1410(x: int) -> int { x }
+func g1411(x: int) -> int { x }
+func g1412(x: int) -> int { x }
+func g1413(x: int) -> int { x }
+func g1414(x: int) -> int { x }
+func g1415(x: int) -> int { x }
+func g1416(x: int) -> int { x }
+func g1417(x: int) -> int { x }
+func g1418(x: int) -> int { x }
+func g1419(x: int) -> int { x }
+func g1420(x: int) -> int { x }
+func g1421(x: int) -> int { x }
+func g1422(x: int) -> int { x }
+func g1423(x: int) -> int { x }
+func g1424(x: int) -> int { x }
+func g1425(x: int) -> int { x }
+func g1426(x: int) -> int { x }
+func g1427(x: int) -> int { x }
+func g1428(x: int) -> int { x }
+func g1429(x: int) -> int { x }
+func g1430(x: int) -> int { x }
+func g1431(x: int) -> int { x }
+func g1432(x: int) -> int { x }
+func g1433(x: int) -> int { x }
+func g1434(x: int) -> int { x }
+func g1435(x: int) -> int { x }
+func g1436(x: int) -> int { x }
+func g1437(x: int) -> int { x }
+func g1438(x: int) -> int { x }
+func g1439(x: int) -> int { x }
+func g1440(x: int) -> int { x }
+func g1441(x: int) -> int { x }
+func g1442(x: int) -> int { x }
+func g1443(x: int) -> int { x }
+func g1444(x: int) -> int { x }
+func g1445(x: int) -> int { x }
+func g1446(x: int) -> int { x }
+func g1447(x: int) -> int { x }
+func g1448(x: int) -> int { x }
+func g1449(x: int) -> int { x }
+func g1450(x: int) -> int { x }
+func g1451(x: int) -> int { x }
+func g1452(x: int) -> int { x }
+func g1453(x: int) -> int { x }
+func g1454(x: int) -> int { x }
+func g1455(x: int) -> int { x }
+func g1456(x: int) -> int { x }
+func g1457(x: int) -> int { x }
+func g1458(x: int) -> int { x }
+func g1459(x: int) -> int { x }
+func g1460(x: int) -> int { x }
+func g1461(x: int) -> int { x }
+func g1462(x: int) -> int { x }
+func g1463(x: int) -> int { x }
+func g1464(x: int) -> int { x }
+func g1465(x: int) -> int { x }
+func g1466(x: int) -> int { x }
+func g1467(x: int) -> int { x }
+func g1468(x: int) -> int { x }
+func g1469(x: int) -> int { x }
+func g1470(x: int) -> int { x }
+func g1471(x: int) -> int { x }
+func g1472(x: int) -> int { x }
+func g1473(x: int) -> int { x }
+func g1474(x: int) -> int { x }
+func g1475(x: int) -> int { x }
+func g1476(x: int) -> int { x }
+func g1477(x: int) -> int { x }
+func g1478(x: int) -> int { x }
+func g1479(x: int) -> int { x }
+func g1480(x: int) -> int { x }
+func g1481(x: int) -> int { x }
+func g1482(x: int) -> int { x }
+func g1483(x: int) -> int { x }
+func g1484(x: int) -> int { x }
+func g1485(x: int) -> int { x }
+func g1486(x: int) -> int { x }
+func g1487(x: int) -> int { x }
+func g1488(x: int) -> int { x }
+func g1489(x: int) -> int { x }
+func g1490(x: int) -> int { x }
+func g1491(x: int) -> int { x }
+func g1492(x: int) -> int { x }
+func g1493(x: int) -> int { x }
+func g1494(x: int) -> int { x }
+func g1495(x: int) -> int { x }
+func g1496(x: int) -> int { x }
+func g1497(x: int) -> int { x }
+func g1498(x: int) -> int { x }
+func g1499(x: int) -> int { x }
+func g1500(x: int) -> int { x }
+func g1501(x: int) -> int { x }
+func g1502(x: int) -> int { x }
+func g1503(x: int) -> int { x }
+func g1504(x: int) -> int { x }
+func g1505(x: int) -> int { x }
+func g1506(x: int) -> int { x }
+func g1507(x: int) -> int { x }
+func g1508(x: int) -> int { x }
+func g1509(x: int) -> int { x }
+func g1510(x: int) -> int { x }
+func g1511(x: int) -> int { x }
+func g1512(x: int) -> int { x }
+func g1513(x: int) -> int { x }
+func g1514(x: int) -> int { x }
+func g1515(x: int) -> int { x }
+func g1516(x: int) -> int { x }
+func g1517(x: int) -> int { x }
+func g1518(x: int) -> int { x }
+func g1519(x: int) -> int { x }
+func g1520(x: int) -> int { x }
+func g1521(x: int) -> int { x }
+func g1522(x: int) -> int { x }
+func g1523(x: int) -> int { x }
+func g1524(x: int) -> int { x }
+func g1525(x: int) -> int { x }
+func g1526(x: int) -> int { x }
+func g1527(x: int) -> int { x }
+func g1528(x: int) -> int { x }
+func g1529(x: int) -> int { x }
+func g1530(x: int) -> int { x }
+func g1531(x: int) -> int { x }
+func g1532(x: int) -> int { x }
+func g1533(x: int) -> int { x }
+func g1534(x: int) -> int { x }
+func g1535(x: int) -> int { x }
+func g1536(x: int) -> int { x }
+func g1537(x: int) -> int { x }
+func g1538(x: int) -> int { x }
+func g1539(x: int) -> int { x }
+func g1540(x: int) -> int { x }
+func g1541(x: int) -> int { x }
+func g1542(x: int) -> int { x }
+func g1543(x: int) -> int { x }
+func g1544(x: int) -> int { x }
+func g1545(x: int) -> int { x }
+func g1546(x: int) -> int { x }
+func g1547(x: int) -> int { x }
+func g1548(x: int) -> int { x }
+func g1549(x: int) -> int { x }
+func g1550(x: int) -> int { x }
+func g1551(x: int) -> int { x }
+func g1552(x: int) -> int { x }
+func g1553(x: int) -> int { x }
+func g1554(x: int) -> int { x }
+func g1555(x: int) -> int { x }
+func g1556(x: int) -> int { x }
+func g1557(x: int) -> int { x }
+func g1558(x: int) -> int { x }
+func g1559(x: int) -> int { x }
+func g1560(x: int) -> int { x }
+func g1561(x: int) -> int { x }
+func g1562(x: int) -> int { x }
+func g1563(x: int) -> int { x }
+func g1564(x: int) -> int { x }
+func g1565(x: int) -> int { x }
+func g1566(x: int) -> int { x }
+func g1567(x: int) -> int { x }
+func g1568(x: int) -> int { x }
+func g1569(x: int) -> int { x }
+func g1570(x: int) -> int { x }
+func g1571(x: int) -> int { x }
+func g1572(x: int) -> int { x }
+func g1573(x: int) -> int { x }
+func g1574(x: int) -> int { x }
+func g1575(x: int) -> int { x }
+func g1576(x: int) -> int { x }
+func g1577(x: int) -> int { x }
+func g1578(x: int) -> int { x }
+func g1579(x: int) -> int { x }
+func g1580(x: int) -> int { x }
+func g1581(x: int) -> int { x }
+func g1582(x: int) -> int { x }
+func g1583(x: int) -> int { x }
+func g1584(x: int) -> int { x }
+func g1585(x: int) -> int { x }
+func g1586(x: int) -> int { x }
+func g1587(x: int) -> int { x }
+func g1588(x: int) -> int { x }
+func g1589(x: int) -> int { x }
+func g1590(x: int) -> int { x }
+func g1591(x: int) -> int { x }
+func g1592(x: int) -> int { x }
+func g1593(x: int) -> int { x }
+func g1594(x: int) -> int { x }
+func g1595(x: int) -> int { x }
+func g1596(x: int) -> int { x }
+func g1597(x: int) -> int { x }
+func g1598(x: int) -> int { x }
+func g1599(x: int) -> int { x }
+func g1600(x: int) -> int { x }
+func g1601(x: int) -> int { x }
+func g1602(x: int) -> int { x }
+func g1603(x: int) -> int { x }
+func g1604(x: int) -> int { x }
+func g1605(x: int) -> int { x }
+func g1606(x: int) -> int { x }
+func g1607(x: int) -> int { x }
+func g1608(x: int) -> int { x }
+func g1609(x: int) -> int { x }
+func g1610(x: int) -> int { x }
+func g1611(x: int) -> int { x }
+func g1612(x: int) -> int { x }
+func g1613(x: int) -> int { x }
+func g1614(x: int) -> int { x }
+func g1615(x: int) -> int { x }
+func g1616(x: int) -> int { x }
+func g1617(x: int) -> int { x }
+func g1618(x: int) -> int { x }
+func g1619(x: int) -> int { x }
+func g1620(x: int) -> int { x }
+func g1621(x: int) -> int { x }
+func g1622(x: int) -> int { x }
+func g1623(x: int) -> int { x }
+func g1624(x: int) -> int { x }
+func g1625(x: int) -> int { x }
+func g1626(x: int) -> int { x }
+func g1627(x: int) -> int { x }
+func g1628(x: int) -> int { x }
+func g1629(x: int) -> int { x }
+func g1630(x: int) -> int { x }
+func g1631(x: int) -> int { x }
+func g1632(x: int) -> int { x }
+func g1633(x: int) -> int { x }
+func g1634(x: int) -> int { x }
+func g1635(x: int) -> int { x }
+func g1636(x: int) -> int { x }
+func g1637(x: int) -> int { x }
+func g1638(x: int) -> int { x }
+func g1639(x: int) -> int { x }
+func g1640(x: int) -> int { x }
+func g1641(x: int) -> int { x }
+func g1642(x: int) -> int { x }
+func g1643(x: int) -> int { x }
+func g1644(x: int) -> int { x }
+func g1645(x: int) -> int { x }
+func g1646(x: int) -> int { x }
+func g1647(x: int) -> int { x }
+func g1648(x: int) -> int { x }
+func g1649(x: int) -> int { x }
+func g1650(x: int) -> int { x }
+func g1651(x: int) -> int { x }
+func g1652(x: int) -> int { x }
+func g1653(x: int) -> int { x }
+func g1654(x: int) -> int { x }
+func g1655(x: int) -> int { x }
+func g1656(x: int) -> int { x }
+func g1657(x: int) -> int { x }
+func g1658(x: int) -> int { x }
+func g1659(x: int) -> int { x }
+func g1660(x: int) -> int { x }
+func g1661(x: int) -> int { x }
+func g1662(x: int) -> int { x }
+func g1663(x: int) -> int { x }
+func g1664(x: int) -> int { x }
+func g1665(x: int) -> int { x }
+func g1666(x: int) -> int { x }
+func g1667(x: int) -> int { x }
+func g1668(x: int) -> int { x }
+func g1669(x: int) -> int { x }
+func g1670(x: int) -> int { x }
+func g1671(x: int) -> int { x }
+func g1672(x: int) -> int { x }
+func g1673(x: int) -> int { x }
+func g1674(x: int) -> int { x }
+func g1675(x: int) -> int { x }
+func g1676(x: int) -> int { x }
+func g1677(x: int) -> int { x }
+func g1678(x: int) -> int { x }
+func g1679(x: int) -> int { x }
+func g1680(x: int) -> int { x }
+func g1681(x: int) -> int { x }
+func g1682(x: int) -> int { x }
+func g1683(x: int) -> int { x }
+func g1684(x: int) -> int { x }
+func g1685(x: int) -> int { x }
+func g1686(x: int) -> int { x }
+func g1687(x: int) -> int { x }
+func g1688(x: int) -> int { x }
+func g1689(x: int) -> int { x }
+func g1690(x: int) -> int { x }
+func g1691(x: int) -> int { x }
+func g1692(x: int) -> int { x }
+func g1693(x: int) -> int { x }
+func g1694(x: int) -> int { x }
+func g1695(x: int) -> int { x }
+func g1696(x: int) -> int { x }
+func g1697(x: int) -> int { x }
+func g1698(x: int) -> int { x }
+func g1699(x: int) -> int { x }
+func g1700(x: int) -> int { x }
+func g1701(x: int) -> int { x }
+func g1702(x: int) -> int { x }
+func g1703(x: int) -> int { x }
+func g1704(x: int) -> int { x }
+func g1705(x: int) -> int { x }
+func g1706(x: int) -> int { x }
+func g1707(x: int) -> int { x }
+func g1708(x: int) -> int { x }
+func g1709(x: int) -> int { x }
+func g1710(x: int) -> int { x }
+func g1711(x: int) -> int { x }
+func g1712(x: int) -> int { x }
+func g1713(x: int) -> int { x }
+func g1714(x: int) -> int { x }
+func g1715(x: int) -> int { x }
+func g1716(x: int) -> int { x }
+func g1717(x: int) -> int { x }
+func g1718(x: int) -> int { x }
+func g1719(x: int) -> int { x }
+func g1720(x: int) -> int { x }
+func g1721(x: int) -> int { x }
+func g1722(x: int) -> int { x }
+func g1723(x: int) -> int { x }
+func g1724(x: int) -> int { x }
+func g1725(x: int) -> int { x }
+func g1726(x: int) -> int { x }
+func g1727(x: int) -> int { x }
+func g1728(x: int) -> int { x }
+func g1729(x: int) -> int { x }
+func g1730(x: int) -> int { x }
+func g1731(x: int) -> int { x }
+func g1732(x: int) -> int { x }
+func g1733(x: int) -> int { x }
+func g1734(x: int) -> int { x }
+func g1735(x: int) -> int { x }
+func g1736(x: int) -> int { x }
+func g1737(x: int) -> int { x }
+func g1738(x: int) -> int { x }
+func g1739(x: int) -> int { x }
+func g1740(x: int) -> int { x }
+func g1741(x: int) -> int { x }
+func g1742(x: int) -> int { x }
+func g1743(x: int) -> int { x }
+func g1744(x: int) -> int { x }
+func g1745(x: int) -> int { x }
+func g1746(x: int) -> int { x }
+func g1747(x: int) -> int { x }
+func g1748(x: int) -> int { x }
+func g1749(x: int) -> int { x }
+func g1750(x: int) -> int { x }
+func g1751(x: int) -> int { x }
+func g1752(x: int) -> int { x }
+func g1753(x: int) -> int { x }
+func g1754(x: int) -> int { x }
+func g1755(x: int) -> int { x }
+func g1756(x: int) -> int { x }
+func g1757(x: int) -> int { x }
+func g1758(x: int) -> int { x }
+func g1759(x: int) -> int { x }
+func g1760(x: int) -> int { x }
+func g1761(x: int) -> int { x }
+func g1762(x: int) -> int { x }
+func g1763(x: int) -> int { x }
+func g1764(x: int) -> int { x }
+func g1765(x: int) -> int { x }
+func g1766(x: int) -> int { x }
+func g1767(x: int) -> int { x }
+func g1768(x: int) -> int { x }
+func g1769(x: int) -> int { x }
+func g1770(x: int) -> int { x }
+func g1771(x: int) -> int { x }
+func g1772(x: int) -> int { x }
+func g1773(x: int) -> int { x }
+func g1774(x: int) -> int { x }
+func g1775(x: int) -> int { x }
+func g1776(x: int) -> int { x }
+func g1777(x: int) -> int { x }
+func g1778(x: int) -> int { x }
+func g1779(x: int) -> int { x }
+func g1780(x: int) -> int { x }
+func g1781(x: int) -> int { x }
+func g1782(x: int) -> int { x }
+func g1783(x: int) -> int { x }
+func g1784(x: int) -> int { x }
+func g1785(x: int) -> int { x }
+func g1786(x: int) -> int { x }
+func g1787(x: int) -> int { x }
+func g1788(x: int) -> int { x }
+func g1789(x: int) -> int { x }
+func g1790(x: int) -> int { x }
+func g1791(x: int) -> int { x }
+func g1792(x: int) -> int { x }
+func g1793(x: int) -> int { x }
+func g1794(x: int) -> int { x }
+func g1795(x: int) -> int { x }
+func g1796(x: int) -> int { x }
+func g1797(x: int) -> int { x }
+func g1798(x: int) -> int { x }
+func g1799(x: int) -> int { x }
+func g1800(x: int) -> int { x }
+func g1801(x: int) -> int { x }
+func g1802(x: int) -> int { x }
+func g1803(x: int) -> int { x }
+func g1804(x: int) -> int { x }
+func g1805(x: int) -> int { x }
+func g1806(x: int) -> int { x }
+func g1807(x: int) -> int { x }
+func g1808(x: int) -> int { x }
+func g1809(x: int) -> int { x }
+func g1810(x: int) -> int { x }
+func g1811(x: int) -> int { x }
+func g1812(x: int) -> int { x }
+func g1813(x: int) -> int { x }
+func g1814(x: int) -> int { x }
+func g1815(x: int) -> int { x }
+func g1816(x: int) -> int { x }
+func g1817(x: int) -> int { x }
+func g1818(x: int) -> int { x }
+func g1819(x: int) -> int { x }
+func g1820(x: int) -> int { x }
+func g1821(x: int) -> int { x }
+func g1822(x: int) -> int { x }
+func g1823(x: int) -> int { x }
+func g1824(x: int) -> int { x }
+func g1825(x: int) -> int { x }
+func g1826(x: int) -> int { x }
+func g1827(x: int) -> int { x }
+func g1828(x: int) -> int { x }
+func g1829(x: int) -> int { x }
+func g1830(x: int) -> int { x }
+func g1831(x: int) -> int { x }
+func g1832(x: int) -> int { x }
+func g1833(x: int) -> int { x }
+func g1834(x: int) -> int { x }
+func g1835(x: int) -> int { x }
+func g1836(x: int) -> int { x }
+func g1837(x: int) -> int { x }
+func g1838(x: int) -> int { x }
+func g1839(x: int) -> int { x }
+func g1840(x: int) -> int { x }
+func g1841(x: int) -> int { x }
+func g1842(x: int) -> int { x }
+func g1843(x: int) -> int { x }
+func g1844(x: int) -> int { x }
+func g1845(x: int) -> int { x }
+func g1846(x: int) -> int { x }
+func g1847(x: int) -> int { x }
+func g1848(x: int) -> int { x }
+func g1849(x: int) -> int { x }
+func g1850(x: int) -> int { x }
+func g1851(x: int) -> int { x }
+func g1852(x: int) -> int { x }
+func g1853(x: int) -> int { x }
+func g1854(x: int) -> int { x }
+func g1855(x: int) -> int { x }
+func g1856(x: int) -> int { x }
+func g1857(x: int) -> int { x }
+func g1858(x: int) -> int { x }
+func g1859(x: int) -> int { x }
+func g1860(x: int) -> int { x }
+func g1861(x: int) -> int { x }
+func g1862(x: int) -> int { x }
+func g1863(x: int) -> int { x }
+func g1864(x: int) -> int { x }
+func g1865(x: int) -> int { x }
+func g1866(x: int) -> int { x }
+func g1867(x: int) -> int { x }
+func g1868(x: int) -> int { x }
+func g1869(x: int) -> int { x }
+func g1870(x: int) -> int { x }
+func g1871(x: int) -> int { x }
+func g1872(x: int) -> int { x }
+func g1873(x: int) -> int { x }
+func g1874(x: int) -> int { x }
+func g1875(x: int) -> int { x }
+func g1876(x: int) -> int { x }
+func g1877(x: int) -> int { x }
+func g1878(x: int) -> int { x }
+func g1879(x: int) -> int { x }
+func g1880(x: int) -> int { x }
+func g1881(x: int) -> int { x }
+func g1882(x: int) -> int { x }
+func g1883(x: int) -> int { x }
+func g1884(x: int) -> int { x }
+func g1885(x: int) -> int { x }
+func g1886(x: int) -> int { x }
+func g1887(x: int) -> int { x }
+func g1888(x: int) -> int { x }
+func g1889(x: int) -> int { x }
+func g1890(x: int) -> int { x }
+func g1891(x: int) -> int { x }
+func g1892(x: int) -> int { x }
+func g1893(x: int) -> int { x }
+func g1894(x: int) -> int { x }
+func g1895(x: int) -> int { x }
+func g1896(x: int) -> int { x }
+func g1897(x: int) -> int { x }
+func g1898(x: int) -> int { x }
+func g1899(x: int) -> int { x }
+func g1900(x: int) -> int { x }
+func g1901(x: int) -> int { x }
+func g1902(x: int) -> int { x }
+func g1903(x: int) -> int { x }
+func g1904(x: int) -> int { x }
+func g1905(x: int) -> int { x }
+func g1906(x: int) -> int { x }
+func g1907(x: int) -> int { x }
+func g1908(x: int) -> int { x }
+func g1909(x: int) -> int { x }
+func g1910(x: int) -> int { x }
+func g1911(x: int) -> int { x }
+func g1912(x: int) -> int { x }
+func g1913(x: int) -> int { x }
+func g1914(x: int) -> int { x }
+func g1915(x: int) -> int { x }
+func g1916(x: int) -> int { x }
+func g1917(x: int) -> int { x }
+func g1918(x: int) -> int { x }
+func g1919(x: int) -> int { x }
+func g1920(x: int) -> int { x }
+func g1921(x: int) -> int { x }
+func g1922(x: int) -> int { x }
+func g1923(x: int) -> int { x }
+func g1924(x: int) -> int { x }
+func g1925(x: int) -> int { x }
+func g1926(x: int) -> int { x }
+func g1927(x: int) -> int { x }
+func g1928(x: int) -> int { x }
+func g1929(x: int) -> int { x }
+func g1930(x: int) -> int { x }
+func g1931(x: int) -> int { x }
+func g1932(x: int) -> int { x }
+func g1933(x: int) -> int { x }
+func g1934(x: int) -> int { x }
+func g1935(x: int) -> int { x }
+func g1936(x: int) -> int { x }
+func g1937(x: int) -> int { x }
+func g1938(x: int) -> int { x }
+func g1939(x: int) -> int { x }
+func g1940(x: int) -> int { x }
+func g1941(x: int) -> int { x }
+func g1942(x: int) -> int { x }
+func g1943(x: int) -> int { x }
+func g1944(x: int) -> int { x }
+func g1945(x: int) -> int { x }
+func g1946(x: int) -> int { x }
+func g1947(x: int) -> int { x }
+func g1948(x: int) -> int { x }
+func g1949(x: int) -> int { x }
+func g1950(x: int) -> int { x }
+func g1951(x: int) -> int { x }
+func g1952(x: int) -> int { x }
+func g1953(x: int) -> int { x }
+func g1954(x: int) -> int { x }
+func g1955(x: int) -> int { x }
+func g1956(x: int) -> int { x }
+func g1957(x: int) -> int { x }
+func g1958(x: int) -> int { x }
+func g1959(x: int) -> int { x }
+func g1960(x: int) -> int { x }
+func g1961(x: int) -> int { x }
+func g1962(x: int) -> int { x }
+func g1963(x: int) -> int { x }
+func g1964(x: int) -> int { x }
+func g1965(x: int) -> int { x }
+func g1966(x: int) -> int { x }
+func g1967(x: int) -> int { x }
+func g1968(x: int) -> int { x }
+func g1969(x: int) -> int { x }
+func g1970(x: int) -> int { x }
+func g1971(x: int) -> int { x }
+func g1972(x: int) -> int { x }
+func g1973(x: int) -> int { x }
+func g1974(x: int) -> int { x }
+func g1975(x: int) -> int { x }
+func g1976(x: int) -> int { x }
+func g1977(x: int) -> int { x }
+func g1978(x: int) -> int { x }
+func g1979(x: int) -> int { x }
+func g1980(x: int) -> int { x }
+func g1981(x: int) -> int { x }
+func g1982(x: int) -> int { x }
+func g1983(x: int) -> int { x }
+func g1984(x: int) -> int { x }
+func g1985(x: int) -> int { x }
+func g1986(x: int) -> int { x }
+func g1987(x: int) -> int { x }
+func g1988(x: int) -> int { x }
+func g1989(x: int) -> int { x }
+func g1990(x: int) -> int { x }
+func g1991(x: int) -> int { x }
+func g1992(x: int) -> int { x }
+func g1993(x: int) -> int { x }
+func g1994(x: int) -> int { x }
+func g1995(x: int) -> int { x }
+func g1996(x: int) -> int { x }
+func g1997(x: int) -> int { x }
+func g1998(x: int) -> int { x }
+func g1999(x: int) -> int { x }
+func g2000(x: int) -> int { x }
+func g2001(x: int) -> int { x }
+func g2002(x: int) -> int { x }
+func g2003(x: int) -> int { x }
+func g2004(x: int) -> int { x }
+func g2005(x: int) -> int { x }
+func g2006(x: int) -> int { x }
+func g2007(x: int) -> int { x }
+func g2008(x: int) -> int { x }
+func g2009(x: int) -> int { x }
+func g2010(x: int) -> int { x }
+func g2011(x: int) -> int { x }
+func g2012(x: int) -> int { x }
+func g2013(x: int) -> int { x }
+func g2014(x: int) -> int { x }
+func g2015(x: int) -> int { x }
+func g2016(x: int) -> int { x }
+func g2017(x: int) -> int { x }
+func g2018(x: int) -> int { x }
+func g2019(x: int) -> int { x }
+func g2020(x: int) -> int { x }
+func g2021(x: int) -> int { x }
+func g2022(x: int) -> int { x }
+func g2023(x: int) -> int { x }
+func g2024(x: int) -> int { x }
+func g2025(x: int) -> int { x }
+func g2026(x: int) -> int { x }
+func g2027(x: int) -> int { x }
+func g2028(x: int) -> int { x }
+func g2029(x: int) -> int { x }
+func g2030(x: int) -> int { x }
+func g2031(x: int) -> int { x }
+func g2032(x: int) -> int { x }
+func g2033(x: int) -> int { x }
+func g2034(x: int) -> int { x }
+func g2035(x: int) -> int { x }
+func g2036(x: int) -> int { x }
+func g2037(x: int) -> int { x }
+func g2038(x: int) -> int { x }
+func g2039(x: int) -> int { x }
+func g2040(x: int) -> int { x }
+func g2041(x: int) -> int { x }
+func g2042(x: int) -> int { x }
+func g2043(x: int) -> int { x }
+func g2044(x: int) -> int { x }
+func g2045(x: int) -> int { x }
+func g2046(x: int) -> int { x }
+func g2047(x: int) -> int { x }
+func g2048(x: int) -> int { x }
+func g2049(x: int) -> int { x }
+func g2050(x: int) -> int { x }
+func g2051(x: int) -> int { x }
+func g2052(x: int) -> int { x }
+func g2053(x: int) -> int { x }
+func g2054(x: int) -> int { x }
+func g2055(x: int) -> int { x }
+func g2056(x: int) -> int { x }
+func g2057(x: int) -> int { x }
+func g2058(x: int) -> int { x }
+func g2059(x: int) -> int { x }
+func g2060(x: int) -> int { x }
+func g2061(x: int) -> int { x }
+func g2062(x: int) -> int { x }
+func g2063(x: int) -> int { x }
+func g2064(x: int) -> int { x }
+func g2065(x: int) -> int { x }
+func g2066(x: int) -> int { x }
+func g2067(x: int) -> int { x }
+func g2068(x: int) -> int { x }
+func g2069(x: int) -> int { x }
+func g2070(x: int) -> int { x }
+func g2071(x: int) -> int { x }
+func g2072(x: int) -> int { x }
+func g2073(x: int) -> int { x }
+func g2074(x: int) -> int { x }
+func g2075(x: int) -> int { x }
+func g2076(x: int) -> int { x }
+func g2077(x: int) -> int { x }
+func g2078(x: int) -> int { x }
+func g2079(x: int) -> int { x }
+func g2080(x: int) -> int { x }
+func g2081(x: int) -> int { x }
+func g2082(x: int) -> int { x }
+func g2083(x: int) -> int { x }
+func g2084(x: int) -> int { x }
+func g2085(x: int) -> int { x }
+func g2086(x: int) -> int { x }
+func g2087(x: int) -> int { x }
+func g2088(x: int) -> int { x }
+func g2089(x: int) -> int { x }
+func g2090(x: int) -> int { x }
+func g2091(x: int) -> int { x }
+func g2092(x: int) -> int { x }
+func g2093(x: int) -> int { x }
+func g2094(x: int) -> int { x }
+func g2095(x: int) -> int { x }
+func g2096(x: int) -> int { x }
+func g2097(x: int) -> int { x }
+func g2098(x: int) -> int { x }
+func g2099(x: int) -> int { x }
+func g2100(x: int) -> int { x }
+func g2101(x: int) -> int { x }
+func g2102(x: int) -> int { x }
+func g2103(x: int) -> int { x }
+func g2104(x: int) -> int { x }
+func g2105(x: int) -> int { x }
+func g2106(x: int) -> int { x }
+func g2107(x: int) -> int { x }
+func g2108(x: int) -> int { x }
+func g2109(x: int) -> int { x }
+func g2110(x: int) -> int { x }
+func g2111(x: int) -> int { x }
+func g2112(x: int) -> int { x }
+func g2113(x: int) -> int { x }
+func g2114(x: int) -> int { x }
+func g2115(x: int) -> int { x }
+func g2116(x: int) -> int { x }
+func g2117(x: int) -> int { x }
+func g2118(x: int) -> int { x }
+func g2119(x: int) -> int { x }
+func g2120(x: int) -> int { x }
+func g2121(x: int) -> int { x }
+func g2122(x: int) -> int { x }
+func g2123(x: int) -> int { x }
+func g2124(x: int) -> int { x }
+func g2125(x: int) -> int { x }
+func g2126(x: int) -> int { x }
+func g2127(x: int) -> int { x }
+func g2128(x: int) -> int { x }
+func g2129(x: int) -> int { x }
+func g2130(x: int) -> int { x }
+func g2131(x: int) -> int { x }
+func g2132(x: int) -> int { x }
+func g2133(x: int) -> int { x }
+func g2134(x: int) -> int { x }
+func g2135(x: int) -> int { x }
+func g2136(x: int) -> int { x }
+func g2137(x: int) -> int { x }
+func g2138(x: int) -> int { x }
+func g2139(x: int) -> int { x }
+func g2140(x: int) -> int { x }
+func g2141(x: int) -> int { x }
+func g2142(x: int) -> int { x }
+func g2143(x: int) -> int { x }
+func g2144(x: int) -> int { x }
+func g2145(x: int) -> int { x }
+func g2146(x: int) -> int { x }
+func g2147(x: int) -> int { x }
+func g2148(x: int) -> int { x }
+func g2149(x: int) -> int { x }
+func g2150(x: int) -> int { x }
+func g2151(x: int) -> int { x }
+func g2152(x: int) -> int { x }
+func g2153(x: int) -> int { x }
+func g2154(x: int) -> int { x }
+func g2155(x: int) -> int { x }
+func g2156(x: int) -> int { x }
+func g2157(x: int) -> int { x }
+func g2158(x: int) -> int { x }
+func g2159(x: int) -> int { x }
+func g2160(x: int) -> int { x }
+func g2161(x: int) -> int { x }
+func g2162(x: int) -> int { x }
+func g2163(x: int) -> int { x }
+func g2164(x: int) -> int { x }
+func g2165(x: int) -> int { x }
+func g2166(x: int) -> int { x }
+func g2167(x: int) -> int { x }
+func g2168(x: int) -> int { x }
+func g2169(x: int) -> int { x }
+func g2170(x: int) -> int { x }
+func g2171(x: int) -> int { x }
+func g2172(x: int) -> int { x }
+func g2173(x: int) -> int { x }
+func g2174(x: int) -> int { x }
+func g2175(x: int) -> int { x }
+func g2176(x: int) -> int { x }
+func g2177(x: int) -> int { x }
+func g2178(x: int) -> int { x }
+func g2179(x: int) -> int { x }
+func g2180(x: int) -> int { x }
+func g2181(x: int) -> int { x }
+func g2182(x: int) -> int { x }
+func g2183(x: int) -> int { x }
+func g2184(x: int) -> int { x }
+func g2185(x: int) -> int { x }
+func g2186(x: int) -> int { x }
+func g2187(x: int) -> int { x }
+func g2188(x: int) -> int { x }
+func g2189(x: int) -> int { x }
+func g2190(x: int) -> int { x }
+func g2191(x: int) -> int { x }
+func g2192(x: int) -> int { x }
+func g2193(x: int) -> int { x }
+func g2194(x: int) -> int { x }
+func g2195(x: int) -> int { x }
+func g2196(x: int) -> int { x }
+func g2197(x: int) -> int { x }
+func g2198(x: int) -> int { x }
+func g2199(x: int) -> int { x }
+func g2200(x: int) -> int { x }
+func g2201(x: int) -> int { x }
+func g2202(x: int) -> int { x }
+func g2203(x: int) -> int { x }
+func g2204(x: int) -> int { x }
+func g2205(x: int) -> int { x }
+func g2206(x: int) -> int { x }
+func g2207(x: int) -> int { x }
+func g2208(x: int) -> int { x }
+func g2209(x: int) -> int { x }
+func g2210(x: int) -> int { x }
+func g2211(x: int) -> int { x }
+func g2212(x: int) -> int { x }
+func g2213(x: int) -> int { x }
+func g2214(x: int) -> int { x }
+func g2215(x: int) -> int { x }
+func g2216(x: int) -> int { x }
+func g2217(x: int) -> int { x }
+func g2218(x: int) -> int { x }
+func g2219(x: int) -> int { x }
+func g2220(x: int) -> int { x }
+func g2221(x: int) -> int { x }
+func g2222(x: int) -> int { x }
+func g2223(x: int) -> int { x }
+func g2224(x: int) -> int { x }
+func g2225(x: int) -> int { x }
+func g2226(x: int) -> int { x }
+func g2227(x: int) -> int { x }
+func g2228(x: int) -> int { x }
+func g2229(x: int) -> int { x }
+func g2230(x: int) -> int { x }
+func g2231(x: int) -> int { x }
+func g2232(x: int) -> int { x }
+func g2233(x: int) -> int { x }
+func g2234(x: int) -> int { x }
+func g2235(x: int) -> int { x }
+func g2236(x: int) -> int { x }
+func g2237(x: int) -> int { x }
+func g2238(x: int) -> int { x }
+func g2239(x: int) -> int { x }
+func g2240(x: int) -> int { x }
+func g2241(x: int) -> int { x }
+func g2242(x: int) -> int { x }
+func g2243(x: int) -> int { x }
+func g2244(x: int) -> int { x }
+func g2245(x: int) -> int { x }
+func g2246(x: int) -> int { x }
+func g2247(x: int) -> int { x }
+func g2248(x: int) -> int { x }
+func g2249(x: int) -> int { x }
+func g2250(x: int) -> int { x }
+func g2251(x: int) -> int { x }
+func g2252(x: int) -> int { x }
+func g2253(x: int) -> int { x }
+func g2254(x: int) -> int { x }
+func g2255(x: int) -> int { x }
+func g2256(x: int) -> int { x }
+func g2257(x: int) -> int { x }
+func g2258(x: int) -> int { x }
+func g2259(x: int) -> int { x }
+func g2260(x: int) -> int { x }
+func g2261(x: int) -> int { x }
+func g2262(x: int) -> int { x }
+func g2263(x: int) -> int { x }
+func g2264(x: int) -> int { x }
+func g2265(x: int) -> int { x }
+func g2266(x: int) -> int { x }
+func g2267(x: int) -> int { x }
+func g2268(x: int) -> int { x }
+func g2269(x: int) -> int { x }
+func g2270(x: int) -> int { x }
+func g2271(x: int) -> int { x }
+func g2272(x: int) -> int { x }
+func g2273(x: int) -> int { x }
+func g2274(x: int) -> int { x }
+func g2275(x: int) -> int { x }
+func g2276(x: int) -> int { x }
+func g2277(x: int) -> int { x }
+func g2278(x: int) -> int { x }
+func g2279(x: int) -> int { x }
+func g2280(x: int) -> int { x }
+func g2281(x: int) -> int { x }
+func g2282(x: int) -> int { x }
+func g2283(x: int) -> int { x }
+func g2284(x: int) -> int { x }
+func g2285(x: int) -> int { x }
+func g2286(x: int) -> int { x }
+func g2287(x: int) -> int { x }
+func g2288(x: int) -> int { x }
+func g2289(x: int) -> int { x }
+func g2290(x: int) -> int { x }
+func g2291(x: int) -> int { x }
+func g2292(x: int) -> int { x }
+func g2293(x: int) -> int { x }
+func g2294(x: int) -> int { x }
+func g2295(x: int) -> int { x }
+func g2296(x: int) -> int { x }
+func g2297(x: int) -> int { x }
+func g2298(x: int) -> int { x }
+func g2299(x: int) -> int { x }
+func g2300(x: int) -> int { x }
+func g2301(x: int) -> int { x }
+func g2302(x: int) -> int { x }
+func g2303(x: int) -> int { x }
+func g2304(x: int) -> int { x }
+func g2305(x: int) -> int { x }
+func g2306(x: int) -> int { x }
+func g2307(x: int) -> int { x }
+func g2308(x: int) -> int { x }
+func g2309(x: int) -> int { x }
+func g2310(x: int) -> int { x }
+func g2311(x: int) -> int { x }
+func g2312(x: int) -> int { x }
+func g2313(x: int) -> int { x }
+func g2314(x: int) -> int { x }
+func g2315(x: int) -> int { x }
+func g2316(x: int) -> int { x }
+func g2317(x: int) -> int { x }
+func g2318(x: int) -> int { x }
+func g2319(x: int) -> int { x }
+func g2320(x: int) -> int { x }
+func g2321(x: int) -> int { x }
+func g2322(x: int) -> int { x }
+func g2323(x: int) -> int { x }
+func g2324(x: int) -> int { x }
+func g2325(x: int) -> int { x }
+func g2326(x: int) -> int { x }
+func g2327(x: int) -> int { x }
+func g2328(x: int) -> int { x }
+func g2329(x: int) -> int { x }
+func g2330(x: int) -> int { x }
+func g2331(x: int) -> int { x }
+func g2332(x: int) -> int { x }
+func g2333(x: int) -> int { x }
+func g2334(x: int) -> int { x }
+func g2335(x: int) -> int { x }
+func g2336(x: int) -> int { x }
+func g2337(x: int) -> int { x }
+func g2338(x: int) -> int { x }
+func g2339(x: int) -> int { x }
+func g2340(x: int) -> int { x }
+func g2341(x: int) -> int { x }
+func g2342(x: int) -> int { x }
+func g2343(x: int) -> int { x }
+func g2344(x: int) -> int { x }
+func g2345(x: int) -> int { x }
+func g2346(x: int) -> int { x }
+func g2347(x: int) -> int { x }
+func g2348(x: int) -> int { x }
+func g2349(x: int) -> int { x }
+func g2350(x: int) -> int { x }
+func g2351(x: int) -> int { x }
+func g2352(x: int) -> int { x }
+func g2353(x: int) -> int { x }
+func g2354(x: int) -> int { x }
+func g2355(x: int) -> int { x }
+func g2356(x: int) -> int { x }
+func g2357(x: int) -> int { x }
+func g2358(x: int) -> int { x }
+func g2359(x: int) -> int { x }
+func g2360(x: int) -> int { x }
+func g2361(x: int) -> int { x }
+func g2362(x: int) -> int { x }
+func g2363(x: int) -> int { x }
+func g2364(x: int) -> int { x }
+func g2365(x: int) -> int { x }
+func g2366(x: int) -> int { x }
+func g2367(x: int) -> int { x }
+func g2368(x: int) -> int { x }
+func g2369(x: int) -> int { x }
+func g2370(x: int) -> int { x }
+func g2371(x: int) -> int { x }
+func g2372(x: int) -> int { x }
+func g2373(x: int) -> int { x }
+func g2374(x: int) -> int { x }
+func g2375(x: int) -> int { x }
+func g2376(x: int) -> int { x }
+func g2377(x: int) -> int { x }
+func g2378(x: int) -> int { x }
+func g2379(x: int) -> int { x }
+func g2380(x: int) -> int { x }
+func g2381(x: int) -> int { x }
+func g2382(x: int) -> int { x }
+func g2383(x: int) -> int { x }
+func g2384(x: int) -> int { x }
+func g2385(x: int) -> int { x }
+func g2386(x: int) -> int { x }
+func g2387(x: int) -> int { x }
+func g2388(x: int) -> int { x }
+func g2389(x: int) -> int { x }
+func g2390(x: int) -> int { x }
+func g2391(x: int) -> int { x }
+func g2392(x: int) -> int { x }
+func g2393(x: int) -> int { x }
+func g2394(x: int) -> int { x }
+func g2395(x: int) -> int { x }
+func g2396(x: int) -> int { x }
+func g2397(x: int) -> int { x }
+func g2398(x: int) -> int { x }
+func g2399(x: int) -> int { x }
+func g2400(x: int) -> int { x }
+func g2401(x: int) -> int { x }
+func g2402(x: int) -> int { x }
+func g2403(x: int) -> int { x }
+func g2404(x: int) -> int { x }
+func g2405(x: int) -> int { x }
+func g2406(x: int) -> int { x }
+func g2407(x: int) -> int { x }
+func g2408(x: int) -> int { x }
+func g2409(x: int) -> int { x }
+func g2410(x: int) -> int { x }
+func g2411(x: int) -> int { x }
+func g2412(x: int) -> int { x }
+func g2413(x: int) -> int { x }
+func g2414(x: int) -> int { x }
+func g2415(x: int) -> int { x }
+func g2416(x: int) -> int { x }
+func g2417(x: int) -> int { x }
+func g2418(x: int) -> int { x }
+func g2419(x: int) -> int { x }
+func g2420(x: int) -> int { x }
+func g2421(x: int) -> int { x }
+func g2422(x: int) -> int { x }
+func g2423(x: int) -> int { x }
+func g2424(x: int) -> int { x }
+func g2425(x: int) -> int { x }
+func g2426(x: int) -> int { x }
+func g2427(x: int) -> int { x }
+func g2428(x: int) -> int { x }
+func g2429(x: int) -> int { x }
+func g2430(x: int) -> int { x }
+func g2431(x: int) -> int { x }
+func g2432(x: int) -> int { x }
+func g2433(x: int) -> int { x }
+func g2434(x: int) -> int { x }
+func g2435(x: int) -> int { x }
+func g2436(x: int) -> int { x }
+func g2437(x: int) -> int { x }
+func g2438(x: int) -> int { x }
+func g2439(x: int) -> int { x }
+func g2440(x: int) -> int { x }
+func g2441(x: int) -> int { x }
+func g2442(x: int) -> int { x }
+func g2443(x: int) -> int { x }
+func g2444(x: int) -> int { x }
+func g2445(x: int) -> int { x }
+func g2446(x: int) -> int { x }
+func g2447(x: int) -> int { x }
+func g2448(x: int) -> int { x }
+func g2449(x: int) -> int { x }
+func g2450(x: int) -> int { x }
+func g2451(x: int) -> int { x }
+func g2452(x: int) -> int { x }
+func g2453(x: int) -> int { x }
+func g2454(x: int) -> int { x }
+func g2455(x: int) -> int { x }
+func g2456(x: int) -> int { x }
+func g2457(x: int) -> int { x }
+func g2458(x: int) -> int { x }
+func g2459(x: int) -> int { x }
+func g2460(x: int) -> int { x }
+func g2461(x: int) -> int { x }
+func g2462(x: int) -> int { x }
+func g2463(x: int) -> int { x }
+func g2464(x: int) -> int { x }
+func g2465(x: int) -> int { x }
+func g2466(x: int) -> int { x }
+func g2467(x: int) -> int { x }
+func g2468(x: int) -> int { x }
+func g2469(x: int) -> int { x }
+func g2470(x: int) -> int { x }
+func g2471(x: int) -> int { x }
+func g2472(x: int) -> int { x }
+func g2473(x: int) -> int { x }
+func g2474(x: int) -> int { x }
+func g2475(x: int) -> int { x }
+func g2476(x: int) -> int { x }
+func g2477(x: int) -> int { x }
+func g2478(x: int) -> int { x }
+func g2479(x: int) -> int { x }
+func g2480(x: int) -> int { x }
+func g2481(x: int) -> int { x }
+func g2482(x: int) -> int { x }
+func g2483(x: int) -> int { x }
+func g2484(x: int) -> int { x }
+func g2485(x: int) -> int { x }
+func g2486(x: int) -> int { x }
+func g2487(x: int) -> int { x }
+func g2488(x: int) -> int { x }
+func g2489(x: int) -> int { x }
+func g2490(x: int) -> int { x }
+func g2491(x: int) -> int { x }
+func g2492(x: int) -> int { x }
+func g2493(x: int) -> int { x }
+func g2494(x: int) -> int { x }
+func g2495(x: int) -> int { x }
+func g2496(x: int) -> int { x }
+func g2497(x: int) -> int { x }
+func g2498(x: int) -> int { x }
+func g2499(x: int) -> int { x }
+func main() -> int { 0 }
diff --git a/bench/compiler/medium.zz b/bench/compiler/medium.zz
new file mode 100644
index 00000000..2a49876f
--- /dev/null
+++ b/bench/compiler/medium.zz
@@ -0,0 +1,25 @@
+// P0 compiler bench: medium file — structs, impls, loops, strings.
+struct Point { x: int, y: int }
+
+impl Point {
+ func sum(self) -> int { self.x + self.y }
+ func moved(self, dx: int, dy: int) -> Point {
+ Point{ x: self.x + dx, y: self.y + dy }
+ }
+}
+
+func fib(n: int) -> int {
+ if n < 2 { return n }
+ return fib(n - 1) + fib(n - 2)
+}
+
+func main() -> int {
+ total := 0
+ for i in 0..1000 {
+ p := Point{ x: i, y: i * 2 }
+ total = total + p.sum()
+ }
+ total = total + fib(15)
+ println("total={total}")
+ return total
+}
diff --git a/bench/compiler/proj/main.zz b/bench/compiler/proj/main.zz
new file mode 100644
index 00000000..67dda94f
--- /dev/null
+++ b/bench/compiler/proj/main.zz
@@ -0,0 +1,45 @@
+import mod00
+import mod01
+import mod02
+import mod03
+import mod04
+import mod05
+import mod06
+import mod07
+import mod08
+import mod09
+import mod10
+import mod11
+import mod12
+import mod13
+import mod14
+import mod15
+import mod16
+import mod17
+import mod18
+import mod19
+func main() -> int {
+ total := 0
+ total = total + mod00.mod00_f0(total)
+ total = total + mod01.mod01_f0(total)
+ total = total + mod02.mod02_f0(total)
+ total = total + mod03.mod03_f0(total)
+ total = total + mod04.mod04_f0(total)
+ total = total + mod05.mod05_f0(total)
+ total = total + mod06.mod06_f0(total)
+ total = total + mod07.mod07_f0(total)
+ total = total + mod08.mod08_f0(total)
+ total = total + mod09.mod09_f0(total)
+ total = total + mod10.mod10_f0(total)
+ total = total + mod11.mod11_f0(total)
+ total = total + mod12.mod12_f0(total)
+ total = total + mod13.mod13_f0(total)
+ total = total + mod14.mod14_f0(total)
+ total = total + mod15.mod15_f0(total)
+ total = total + mod16.mod16_f0(total)
+ total = total + mod17.mod17_f0(total)
+ total = total + mod18.mod18_f0(total)
+ total = total + mod19.mod19_f0(total)
+ println("{total}")
+ return total
+}
diff --git a/bench/compiler/proj/mod00.zz b/bench/compiler/proj/mod00.zz
new file mode 100644
index 00000000..ca1b2855
--- /dev/null
+++ b/bench/compiler/proj/mod00.zz
@@ -0,0 +1,200 @@
+pub func mod00_f0(x: int) -> int { x + 0 }
+pub func mod00_f1(x: int) -> int { x + 1 }
+pub func mod00_f2(x: int) -> int { x + 2 }
+pub func mod00_f3(x: int) -> int { x + 3 }
+pub func mod00_f4(x: int) -> int { x + 4 }
+pub func mod00_f5(x: int) -> int { x + 5 }
+pub func mod00_f6(x: int) -> int { x + 6 }
+pub func mod00_f7(x: int) -> int { x + 7 }
+pub func mod00_f8(x: int) -> int { x + 8 }
+pub func mod00_f9(x: int) -> int { x + 9 }
+pub func mod00_f10(x: int) -> int { x + 10 }
+pub func mod00_f11(x: int) -> int { x + 11 }
+pub func mod00_f12(x: int) -> int { x + 12 }
+pub func mod00_f13(x: int) -> int { x + 13 }
+pub func mod00_f14(x: int) -> int { x + 14 }
+pub func mod00_f15(x: int) -> int { x + 15 }
+pub func mod00_f16(x: int) -> int { x + 16 }
+pub func mod00_f17(x: int) -> int { x + 17 }
+pub func mod00_f18(x: int) -> int { x + 18 }
+pub func mod00_f19(x: int) -> int { x + 19 }
+pub func mod00_f20(x: int) -> int { x + 20 }
+pub func mod00_f21(x: int) -> int { x + 21 }
+pub func mod00_f22(x: int) -> int { x + 22 }
+pub func mod00_f23(x: int) -> int { x + 23 }
+pub func mod00_f24(x: int) -> int { x + 24 }
+pub func mod00_f25(x: int) -> int { x + 25 }
+pub func mod00_f26(x: int) -> int { x + 26 }
+pub func mod00_f27(x: int) -> int { x + 27 }
+pub func mod00_f28(x: int) -> int { x + 28 }
+pub func mod00_f29(x: int) -> int { x + 29 }
+pub func mod00_f30(x: int) -> int { x + 30 }
+pub func mod00_f31(x: int) -> int { x + 31 }
+pub func mod00_f32(x: int) -> int { x + 32 }
+pub func mod00_f33(x: int) -> int { x + 33 }
+pub func mod00_f34(x: int) -> int { x + 34 }
+pub func mod00_f35(x: int) -> int { x + 35 }
+pub func mod00_f36(x: int) -> int { x + 36 }
+pub func mod00_f37(x: int) -> int { x + 37 }
+pub func mod00_f38(x: int) -> int { x + 38 }
+pub func mod00_f39(x: int) -> int { x + 39 }
+pub func mod00_f40(x: int) -> int { x + 40 }
+pub func mod00_f41(x: int) -> int { x + 41 }
+pub func mod00_f42(x: int) -> int { x + 42 }
+pub func mod00_f43(x: int) -> int { x + 43 }
+pub func mod00_f44(x: int) -> int { x + 44 }
+pub func mod00_f45(x: int) -> int { x + 45 }
+pub func mod00_f46(x: int) -> int { x + 46 }
+pub func mod00_f47(x: int) -> int { x + 47 }
+pub func mod00_f48(x: int) -> int { x + 48 }
+pub func mod00_f49(x: int) -> int { x + 49 }
+pub func mod00_f50(x: int) -> int { x + 50 }
+pub func mod00_f51(x: int) -> int { x + 51 }
+pub func mod00_f52(x: int) -> int { x + 52 }
+pub func mod00_f53(x: int) -> int { x + 53 }
+pub func mod00_f54(x: int) -> int { x + 54 }
+pub func mod00_f55(x: int) -> int { x + 55 }
+pub func mod00_f56(x: int) -> int { x + 56 }
+pub func mod00_f57(x: int) -> int { x + 57 }
+pub func mod00_f58(x: int) -> int { x + 58 }
+pub func mod00_f59(x: int) -> int { x + 59 }
+pub func mod00_f60(x: int) -> int { x + 60 }
+pub func mod00_f61(x: int) -> int { x + 61 }
+pub func mod00_f62(x: int) -> int { x + 62 }
+pub func mod00_f63(x: int) -> int { x + 63 }
+pub func mod00_f64(x: int) -> int { x + 64 }
+pub func mod00_f65(x: int) -> int { x + 65 }
+pub func mod00_f66(x: int) -> int { x + 66 }
+pub func mod00_f67(x: int) -> int { x + 67 }
+pub func mod00_f68(x: int) -> int { x + 68 }
+pub func mod00_f69(x: int) -> int { x + 69 }
+pub func mod00_f70(x: int) -> int { x + 70 }
+pub func mod00_f71(x: int) -> int { x + 71 }
+pub func mod00_f72(x: int) -> int { x + 72 }
+pub func mod00_f73(x: int) -> int { x + 73 }
+pub func mod00_f74(x: int) -> int { x + 74 }
+pub func mod00_f75(x: int) -> int { x + 75 }
+pub func mod00_f76(x: int) -> int { x + 76 }
+pub func mod00_f77(x: int) -> int { x + 77 }
+pub func mod00_f78(x: int) -> int { x + 78 }
+pub func mod00_f79(x: int) -> int { x + 79 }
+pub func mod00_f80(x: int) -> int { x + 80 }
+pub func mod00_f81(x: int) -> int { x + 81 }
+pub func mod00_f82(x: int) -> int { x + 82 }
+pub func mod00_f83(x: int) -> int { x + 83 }
+pub func mod00_f84(x: int) -> int { x + 84 }
+pub func mod00_f85(x: int) -> int { x + 85 }
+pub func mod00_f86(x: int) -> int { x + 86 }
+pub func mod00_f87(x: int) -> int { x + 87 }
+pub func mod00_f88(x: int) -> int { x + 88 }
+pub func mod00_f89(x: int) -> int { x + 89 }
+pub func mod00_f90(x: int) -> int { x + 90 }
+pub func mod00_f91(x: int) -> int { x + 91 }
+pub func mod00_f92(x: int) -> int { x + 92 }
+pub func mod00_f93(x: int) -> int { x + 93 }
+pub func mod00_f94(x: int) -> int { x + 94 }
+pub func mod00_f95(x: int) -> int { x + 95 }
+pub func mod00_f96(x: int) -> int { x + 96 }
+pub func mod00_f97(x: int) -> int { x + 97 }
+pub func mod00_f98(x: int) -> int { x + 98 }
+pub func mod00_f99(x: int) -> int { x + 99 }
+pub func mod00_f100(x: int) -> int { x + 100 }
+pub func mod00_f101(x: int) -> int { x + 101 }
+pub func mod00_f102(x: int) -> int { x + 102 }
+pub func mod00_f103(x: int) -> int { x + 103 }
+pub func mod00_f104(x: int) -> int { x + 104 }
+pub func mod00_f105(x: int) -> int { x + 105 }
+pub func mod00_f106(x: int) -> int { x + 106 }
+pub func mod00_f107(x: int) -> int { x + 107 }
+pub func mod00_f108(x: int) -> int { x + 108 }
+pub func mod00_f109(x: int) -> int { x + 109 }
+pub func mod00_f110(x: int) -> int { x + 110 }
+pub func mod00_f111(x: int) -> int { x + 111 }
+pub func mod00_f112(x: int) -> int { x + 112 }
+pub func mod00_f113(x: int) -> int { x + 113 }
+pub func mod00_f114(x: int) -> int { x + 114 }
+pub func mod00_f115(x: int) -> int { x + 115 }
+pub func mod00_f116(x: int) -> int { x + 116 }
+pub func mod00_f117(x: int) -> int { x + 117 }
+pub func mod00_f118(x: int) -> int { x + 118 }
+pub func mod00_f119(x: int) -> int { x + 119 }
+pub func mod00_f120(x: int) -> int { x + 120 }
+pub func mod00_f121(x: int) -> int { x + 121 }
+pub func mod00_f122(x: int) -> int { x + 122 }
+pub func mod00_f123(x: int) -> int { x + 123 }
+pub func mod00_f124(x: int) -> int { x + 124 }
+pub func mod00_f125(x: int) -> int { x + 125 }
+pub func mod00_f126(x: int) -> int { x + 126 }
+pub func mod00_f127(x: int) -> int { x + 127 }
+pub func mod00_f128(x: int) -> int { x + 128 }
+pub func mod00_f129(x: int) -> int { x + 129 }
+pub func mod00_f130(x: int) -> int { x + 130 }
+pub func mod00_f131(x: int) -> int { x + 131 }
+pub func mod00_f132(x: int) -> int { x + 132 }
+pub func mod00_f133(x: int) -> int { x + 133 }
+pub func mod00_f134(x: int) -> int { x + 134 }
+pub func mod00_f135(x: int) -> int { x + 135 }
+pub func mod00_f136(x: int) -> int { x + 136 }
+pub func mod00_f137(x: int) -> int { x + 137 }
+pub func mod00_f138(x: int) -> int { x + 138 }
+pub func mod00_f139(x: int) -> int { x + 139 }
+pub func mod00_f140(x: int) -> int { x + 140 }
+pub func mod00_f141(x: int) -> int { x + 141 }
+pub func mod00_f142(x: int) -> int { x + 142 }
+pub func mod00_f143(x: int) -> int { x + 143 }
+pub func mod00_f144(x: int) -> int { x + 144 }
+pub func mod00_f145(x: int) -> int { x + 145 }
+pub func mod00_f146(x: int) -> int { x + 146 }
+pub func mod00_f147(x: int) -> int { x + 147 }
+pub func mod00_f148(x: int) -> int { x + 148 }
+pub func mod00_f149(x: int) -> int { x + 149 }
+pub func mod00_f150(x: int) -> int { x + 150 }
+pub func mod00_f151(x: int) -> int { x + 151 }
+pub func mod00_f152(x: int) -> int { x + 152 }
+pub func mod00_f153(x: int) -> int { x + 153 }
+pub func mod00_f154(x: int) -> int { x + 154 }
+pub func mod00_f155(x: int) -> int { x + 155 }
+pub func mod00_f156(x: int) -> int { x + 156 }
+pub func mod00_f157(x: int) -> int { x + 157 }
+pub func mod00_f158(x: int) -> int { x + 158 }
+pub func mod00_f159(x: int) -> int { x + 159 }
+pub func mod00_f160(x: int) -> int { x + 160 }
+pub func mod00_f161(x: int) -> int { x + 161 }
+pub func mod00_f162(x: int) -> int { x + 162 }
+pub func mod00_f163(x: int) -> int { x + 163 }
+pub func mod00_f164(x: int) -> int { x + 164 }
+pub func mod00_f165(x: int) -> int { x + 165 }
+pub func mod00_f166(x: int) -> int { x + 166 }
+pub func mod00_f167(x: int) -> int { x + 167 }
+pub func mod00_f168(x: int) -> int { x + 168 }
+pub func mod00_f169(x: int) -> int { x + 169 }
+pub func mod00_f170(x: int) -> int { x + 170 }
+pub func mod00_f171(x: int) -> int { x + 171 }
+pub func mod00_f172(x: int) -> int { x + 172 }
+pub func mod00_f173(x: int) -> int { x + 173 }
+pub func mod00_f174(x: int) -> int { x + 174 }
+pub func mod00_f175(x: int) -> int { x + 175 }
+pub func mod00_f176(x: int) -> int { x + 176 }
+pub func mod00_f177(x: int) -> int { x + 177 }
+pub func mod00_f178(x: int) -> int { x + 178 }
+pub func mod00_f179(x: int) -> int { x + 179 }
+pub func mod00_f180(x: int) -> int { x + 180 }
+pub func mod00_f181(x: int) -> int { x + 181 }
+pub func mod00_f182(x: int) -> int { x + 182 }
+pub func mod00_f183(x: int) -> int { x + 183 }
+pub func mod00_f184(x: int) -> int { x + 184 }
+pub func mod00_f185(x: int) -> int { x + 185 }
+pub func mod00_f186(x: int) -> int { x + 186 }
+pub func mod00_f187(x: int) -> int { x + 187 }
+pub func mod00_f188(x: int) -> int { x + 188 }
+pub func mod00_f189(x: int) -> int { x + 189 }
+pub func mod00_f190(x: int) -> int { x + 190 }
+pub func mod00_f191(x: int) -> int { x + 191 }
+pub func mod00_f192(x: int) -> int { x + 192 }
+pub func mod00_f193(x: int) -> int { x + 193 }
+pub func mod00_f194(x: int) -> int { x + 194 }
+pub func mod00_f195(x: int) -> int { x + 195 }
+pub func mod00_f196(x: int) -> int { x + 196 }
+pub func mod00_f197(x: int) -> int { x + 197 }
+pub func mod00_f198(x: int) -> int { x + 198 }
+pub func mod00_f199(x: int) -> int { x + 199 }
diff --git a/bench/compiler/proj/mod01.zz b/bench/compiler/proj/mod01.zz
new file mode 100644
index 00000000..f793312e
--- /dev/null
+++ b/bench/compiler/proj/mod01.zz
@@ -0,0 +1,200 @@
+pub func mod01_f0(x: int) -> int { x + 0 }
+pub func mod01_f1(x: int) -> int { x + 1 }
+pub func mod01_f2(x: int) -> int { x + 2 }
+pub func mod01_f3(x: int) -> int { x + 3 }
+pub func mod01_f4(x: int) -> int { x + 4 }
+pub func mod01_f5(x: int) -> int { x + 5 }
+pub func mod01_f6(x: int) -> int { x + 6 }
+pub func mod01_f7(x: int) -> int { x + 7 }
+pub func mod01_f8(x: int) -> int { x + 8 }
+pub func mod01_f9(x: int) -> int { x + 9 }
+pub func mod01_f10(x: int) -> int { x + 10 }
+pub func mod01_f11(x: int) -> int { x + 11 }
+pub func mod01_f12(x: int) -> int { x + 12 }
+pub func mod01_f13(x: int) -> int { x + 13 }
+pub func mod01_f14(x: int) -> int { x + 14 }
+pub func mod01_f15(x: int) -> int { x + 15 }
+pub func mod01_f16(x: int) -> int { x + 16 }
+pub func mod01_f17(x: int) -> int { x + 17 }
+pub func mod01_f18(x: int) -> int { x + 18 }
+pub func mod01_f19(x: int) -> int { x + 19 }
+pub func mod01_f20(x: int) -> int { x + 20 }
+pub func mod01_f21(x: int) -> int { x + 21 }
+pub func mod01_f22(x: int) -> int { x + 22 }
+pub func mod01_f23(x: int) -> int { x + 23 }
+pub func mod01_f24(x: int) -> int { x + 24 }
+pub func mod01_f25(x: int) -> int { x + 25 }
+pub func mod01_f26(x: int) -> int { x + 26 }
+pub func mod01_f27(x: int) -> int { x + 27 }
+pub func mod01_f28(x: int) -> int { x + 28 }
+pub func mod01_f29(x: int) -> int { x + 29 }
+pub func mod01_f30(x: int) -> int { x + 30 }
+pub func mod01_f31(x: int) -> int { x + 31 }
+pub func mod01_f32(x: int) -> int { x + 32 }
+pub func mod01_f33(x: int) -> int { x + 33 }
+pub func mod01_f34(x: int) -> int { x + 34 }
+pub func mod01_f35(x: int) -> int { x + 35 }
+pub func mod01_f36(x: int) -> int { x + 36 }
+pub func mod01_f37(x: int) -> int { x + 37 }
+pub func mod01_f38(x: int) -> int { x + 38 }
+pub func mod01_f39(x: int) -> int { x + 39 }
+pub func mod01_f40(x: int) -> int { x + 40 }
+pub func mod01_f41(x: int) -> int { x + 41 }
+pub func mod01_f42(x: int) -> int { x + 42 }
+pub func mod01_f43(x: int) -> int { x + 43 }
+pub func mod01_f44(x: int) -> int { x + 44 }
+pub func mod01_f45(x: int) -> int { x + 45 }
+pub func mod01_f46(x: int) -> int { x + 46 }
+pub func mod01_f47(x: int) -> int { x + 47 }
+pub func mod01_f48(x: int) -> int { x + 48 }
+pub func mod01_f49(x: int) -> int { x + 49 }
+pub func mod01_f50(x: int) -> int { x + 50 }
+pub func mod01_f51(x: int) -> int { x + 51 }
+pub func mod01_f52(x: int) -> int { x + 52 }
+pub func mod01_f53(x: int) -> int { x + 53 }
+pub func mod01_f54(x: int) -> int { x + 54 }
+pub func mod01_f55(x: int) -> int { x + 55 }
+pub func mod01_f56(x: int) -> int { x + 56 }
+pub func mod01_f57(x: int) -> int { x + 57 }
+pub func mod01_f58(x: int) -> int { x + 58 }
+pub func mod01_f59(x: int) -> int { x + 59 }
+pub func mod01_f60(x: int) -> int { x + 60 }
+pub func mod01_f61(x: int) -> int { x + 61 }
+pub func mod01_f62(x: int) -> int { x + 62 }
+pub func mod01_f63(x: int) -> int { x + 63 }
+pub func mod01_f64(x: int) -> int { x + 64 }
+pub func mod01_f65(x: int) -> int { x + 65 }
+pub func mod01_f66(x: int) -> int { x + 66 }
+pub func mod01_f67(x: int) -> int { x + 67 }
+pub func mod01_f68(x: int) -> int { x + 68 }
+pub func mod01_f69(x: int) -> int { x + 69 }
+pub func mod01_f70(x: int) -> int { x + 70 }
+pub func mod01_f71(x: int) -> int { x + 71 }
+pub func mod01_f72(x: int) -> int { x + 72 }
+pub func mod01_f73(x: int) -> int { x + 73 }
+pub func mod01_f74(x: int) -> int { x + 74 }
+pub func mod01_f75(x: int) -> int { x + 75 }
+pub func mod01_f76(x: int) -> int { x + 76 }
+pub func mod01_f77(x: int) -> int { x + 77 }
+pub func mod01_f78(x: int) -> int { x + 78 }
+pub func mod01_f79(x: int) -> int { x + 79 }
+pub func mod01_f80(x: int) -> int { x + 80 }
+pub func mod01_f81(x: int) -> int { x + 81 }
+pub func mod01_f82(x: int) -> int { x + 82 }
+pub func mod01_f83(x: int) -> int { x + 83 }
+pub func mod01_f84(x: int) -> int { x + 84 }
+pub func mod01_f85(x: int) -> int { x + 85 }
+pub func mod01_f86(x: int) -> int { x + 86 }
+pub func mod01_f87(x: int) -> int { x + 87 }
+pub func mod01_f88(x: int) -> int { x + 88 }
+pub func mod01_f89(x: int) -> int { x + 89 }
+pub func mod01_f90(x: int) -> int { x + 90 }
+pub func mod01_f91(x: int) -> int { x + 91 }
+pub func mod01_f92(x: int) -> int { x + 92 }
+pub func mod01_f93(x: int) -> int { x + 93 }
+pub func mod01_f94(x: int) -> int { x + 94 }
+pub func mod01_f95(x: int) -> int { x + 95 }
+pub func mod01_f96(x: int) -> int { x + 96 }
+pub func mod01_f97(x: int) -> int { x + 97 }
+pub func mod01_f98(x: int) -> int { x + 98 }
+pub func mod01_f99(x: int) -> int { x + 99 }
+pub func mod01_f100(x: int) -> int { x + 100 }
+pub func mod01_f101(x: int) -> int { x + 101 }
+pub func mod01_f102(x: int) -> int { x + 102 }
+pub func mod01_f103(x: int) -> int { x + 103 }
+pub func mod01_f104(x: int) -> int { x + 104 }
+pub func mod01_f105(x: int) -> int { x + 105 }
+pub func mod01_f106(x: int) -> int { x + 106 }
+pub func mod01_f107(x: int) -> int { x + 107 }
+pub func mod01_f108(x: int) -> int { x + 108 }
+pub func mod01_f109(x: int) -> int { x + 109 }
+pub func mod01_f110(x: int) -> int { x + 110 }
+pub func mod01_f111(x: int) -> int { x + 111 }
+pub func mod01_f112(x: int) -> int { x + 112 }
+pub func mod01_f113(x: int) -> int { x + 113 }
+pub func mod01_f114(x: int) -> int { x + 114 }
+pub func mod01_f115(x: int) -> int { x + 115 }
+pub func mod01_f116(x: int) -> int { x + 116 }
+pub func mod01_f117(x: int) -> int { x + 117 }
+pub func mod01_f118(x: int) -> int { x + 118 }
+pub func mod01_f119(x: int) -> int { x + 119 }
+pub func mod01_f120(x: int) -> int { x + 120 }
+pub func mod01_f121(x: int) -> int { x + 121 }
+pub func mod01_f122(x: int) -> int { x + 122 }
+pub func mod01_f123(x: int) -> int { x + 123 }
+pub func mod01_f124(x: int) -> int { x + 124 }
+pub func mod01_f125(x: int) -> int { x + 125 }
+pub func mod01_f126(x: int) -> int { x + 126 }
+pub func mod01_f127(x: int) -> int { x + 127 }
+pub func mod01_f128(x: int) -> int { x + 128 }
+pub func mod01_f129(x: int) -> int { x + 129 }
+pub func mod01_f130(x: int) -> int { x + 130 }
+pub func mod01_f131(x: int) -> int { x + 131 }
+pub func mod01_f132(x: int) -> int { x + 132 }
+pub func mod01_f133(x: int) -> int { x + 133 }
+pub func mod01_f134(x: int) -> int { x + 134 }
+pub func mod01_f135(x: int) -> int { x + 135 }
+pub func mod01_f136(x: int) -> int { x + 136 }
+pub func mod01_f137(x: int) -> int { x + 137 }
+pub func mod01_f138(x: int) -> int { x + 138 }
+pub func mod01_f139(x: int) -> int { x + 139 }
+pub func mod01_f140(x: int) -> int { x + 140 }
+pub func mod01_f141(x: int) -> int { x + 141 }
+pub func mod01_f142(x: int) -> int { x + 142 }
+pub func mod01_f143(x: int) -> int { x + 143 }
+pub func mod01_f144(x: int) -> int { x + 144 }
+pub func mod01_f145(x: int) -> int { x + 145 }
+pub func mod01_f146(x: int) -> int { x + 146 }
+pub func mod01_f147(x: int) -> int { x + 147 }
+pub func mod01_f148(x: int) -> int { x + 148 }
+pub func mod01_f149(x: int) -> int { x + 149 }
+pub func mod01_f150(x: int) -> int { x + 150 }
+pub func mod01_f151(x: int) -> int { x + 151 }
+pub func mod01_f152(x: int) -> int { x + 152 }
+pub func mod01_f153(x: int) -> int { x + 153 }
+pub func mod01_f154(x: int) -> int { x + 154 }
+pub func mod01_f155(x: int) -> int { x + 155 }
+pub func mod01_f156(x: int) -> int { x + 156 }
+pub func mod01_f157(x: int) -> int { x + 157 }
+pub func mod01_f158(x: int) -> int { x + 158 }
+pub func mod01_f159(x: int) -> int { x + 159 }
+pub func mod01_f160(x: int) -> int { x + 160 }
+pub func mod01_f161(x: int) -> int { x + 161 }
+pub func mod01_f162(x: int) -> int { x + 162 }
+pub func mod01_f163(x: int) -> int { x + 163 }
+pub func mod01_f164(x: int) -> int { x + 164 }
+pub func mod01_f165(x: int) -> int { x + 165 }
+pub func mod01_f166(x: int) -> int { x + 166 }
+pub func mod01_f167(x: int) -> int { x + 167 }
+pub func mod01_f168(x: int) -> int { x + 168 }
+pub func mod01_f169(x: int) -> int { x + 169 }
+pub func mod01_f170(x: int) -> int { x + 170 }
+pub func mod01_f171(x: int) -> int { x + 171 }
+pub func mod01_f172(x: int) -> int { x + 172 }
+pub func mod01_f173(x: int) -> int { x + 173 }
+pub func mod01_f174(x: int) -> int { x + 174 }
+pub func mod01_f175(x: int) -> int { x + 175 }
+pub func mod01_f176(x: int) -> int { x + 176 }
+pub func mod01_f177(x: int) -> int { x + 177 }
+pub func mod01_f178(x: int) -> int { x + 178 }
+pub func mod01_f179(x: int) -> int { x + 179 }
+pub func mod01_f180(x: int) -> int { x + 180 }
+pub func mod01_f181(x: int) -> int { x + 181 }
+pub func mod01_f182(x: int) -> int { x + 182 }
+pub func mod01_f183(x: int) -> int { x + 183 }
+pub func mod01_f184(x: int) -> int { x + 184 }
+pub func mod01_f185(x: int) -> int { x + 185 }
+pub func mod01_f186(x: int) -> int { x + 186 }
+pub func mod01_f187(x: int) -> int { x + 187 }
+pub func mod01_f188(x: int) -> int { x + 188 }
+pub func mod01_f189(x: int) -> int { x + 189 }
+pub func mod01_f190(x: int) -> int { x + 190 }
+pub func mod01_f191(x: int) -> int { x + 191 }
+pub func mod01_f192(x: int) -> int { x + 192 }
+pub func mod01_f193(x: int) -> int { x + 193 }
+pub func mod01_f194(x: int) -> int { x + 194 }
+pub func mod01_f195(x: int) -> int { x + 195 }
+pub func mod01_f196(x: int) -> int { x + 196 }
+pub func mod01_f197(x: int) -> int { x + 197 }
+pub func mod01_f198(x: int) -> int { x + 198 }
+pub func mod01_f199(x: int) -> int { x + 199 }
diff --git a/bench/compiler/proj/mod02.zz b/bench/compiler/proj/mod02.zz
new file mode 100644
index 00000000..50dd5667
--- /dev/null
+++ b/bench/compiler/proj/mod02.zz
@@ -0,0 +1,200 @@
+pub func mod02_f0(x: int) -> int { x + 0 }
+pub func mod02_f1(x: int) -> int { x + 1 }
+pub func mod02_f2(x: int) -> int { x + 2 }
+pub func mod02_f3(x: int) -> int { x + 3 }
+pub func mod02_f4(x: int) -> int { x + 4 }
+pub func mod02_f5(x: int) -> int { x + 5 }
+pub func mod02_f6(x: int) -> int { x + 6 }
+pub func mod02_f7(x: int) -> int { x + 7 }
+pub func mod02_f8(x: int) -> int { x + 8 }
+pub func mod02_f9(x: int) -> int { x + 9 }
+pub func mod02_f10(x: int) -> int { x + 10 }
+pub func mod02_f11(x: int) -> int { x + 11 }
+pub func mod02_f12(x: int) -> int { x + 12 }
+pub func mod02_f13(x: int) -> int { x + 13 }
+pub func mod02_f14(x: int) -> int { x + 14 }
+pub func mod02_f15(x: int) -> int { x + 15 }
+pub func mod02_f16(x: int) -> int { x + 16 }
+pub func mod02_f17(x: int) -> int { x + 17 }
+pub func mod02_f18(x: int) -> int { x + 18 }
+pub func mod02_f19(x: int) -> int { x + 19 }
+pub func mod02_f20(x: int) -> int { x + 20 }
+pub func mod02_f21(x: int) -> int { x + 21 }
+pub func mod02_f22(x: int) -> int { x + 22 }
+pub func mod02_f23(x: int) -> int { x + 23 }
+pub func mod02_f24(x: int) -> int { x + 24 }
+pub func mod02_f25(x: int) -> int { x + 25 }
+pub func mod02_f26(x: int) -> int { x + 26 }
+pub func mod02_f27(x: int) -> int { x + 27 }
+pub func mod02_f28(x: int) -> int { x + 28 }
+pub func mod02_f29(x: int) -> int { x + 29 }
+pub func mod02_f30(x: int) -> int { x + 30 }
+pub func mod02_f31(x: int) -> int { x + 31 }
+pub func mod02_f32(x: int) -> int { x + 32 }
+pub func mod02_f33(x: int) -> int { x + 33 }
+pub func mod02_f34(x: int) -> int { x + 34 }
+pub func mod02_f35(x: int) -> int { x + 35 }
+pub func mod02_f36(x: int) -> int { x + 36 }
+pub func mod02_f37(x: int) -> int { x + 37 }
+pub func mod02_f38(x: int) -> int { x + 38 }
+pub func mod02_f39(x: int) -> int { x + 39 }
+pub func mod02_f40(x: int) -> int { x + 40 }
+pub func mod02_f41(x: int) -> int { x + 41 }
+pub func mod02_f42(x: int) -> int { x + 42 }
+pub func mod02_f43(x: int) -> int { x + 43 }
+pub func mod02_f44(x: int) -> int { x + 44 }
+pub func mod02_f45(x: int) -> int { x + 45 }
+pub func mod02_f46(x: int) -> int { x + 46 }
+pub func mod02_f47(x: int) -> int { x + 47 }
+pub func mod02_f48(x: int) -> int { x + 48 }
+pub func mod02_f49(x: int) -> int { x + 49 }
+pub func mod02_f50(x: int) -> int { x + 50 }
+pub func mod02_f51(x: int) -> int { x + 51 }
+pub func mod02_f52(x: int) -> int { x + 52 }
+pub func mod02_f53(x: int) -> int { x + 53 }
+pub func mod02_f54(x: int) -> int { x + 54 }
+pub func mod02_f55(x: int) -> int { x + 55 }
+pub func mod02_f56(x: int) -> int { x + 56 }
+pub func mod02_f57(x: int) -> int { x + 57 }
+pub func mod02_f58(x: int) -> int { x + 58 }
+pub func mod02_f59(x: int) -> int { x + 59 }
+pub func mod02_f60(x: int) -> int { x + 60 }
+pub func mod02_f61(x: int) -> int { x + 61 }
+pub func mod02_f62(x: int) -> int { x + 62 }
+pub func mod02_f63(x: int) -> int { x + 63 }
+pub func mod02_f64(x: int) -> int { x + 64 }
+pub func mod02_f65(x: int) -> int { x + 65 }
+pub func mod02_f66(x: int) -> int { x + 66 }
+pub func mod02_f67(x: int) -> int { x + 67 }
+pub func mod02_f68(x: int) -> int { x + 68 }
+pub func mod02_f69(x: int) -> int { x + 69 }
+pub func mod02_f70(x: int) -> int { x + 70 }
+pub func mod02_f71(x: int) -> int { x + 71 }
+pub func mod02_f72(x: int) -> int { x + 72 }
+pub func mod02_f73(x: int) -> int { x + 73 }
+pub func mod02_f74(x: int) -> int { x + 74 }
+pub func mod02_f75(x: int) -> int { x + 75 }
+pub func mod02_f76(x: int) -> int { x + 76 }
+pub func mod02_f77(x: int) -> int { x + 77 }
+pub func mod02_f78(x: int) -> int { x + 78 }
+pub func mod02_f79(x: int) -> int { x + 79 }
+pub func mod02_f80(x: int) -> int { x + 80 }
+pub func mod02_f81(x: int) -> int { x + 81 }
+pub func mod02_f82(x: int) -> int { x + 82 }
+pub func mod02_f83(x: int) -> int { x + 83 }
+pub func mod02_f84(x: int) -> int { x + 84 }
+pub func mod02_f85(x: int) -> int { x + 85 }
+pub func mod02_f86(x: int) -> int { x + 86 }
+pub func mod02_f87(x: int) -> int { x + 87 }
+pub func mod02_f88(x: int) -> int { x + 88 }
+pub func mod02_f89(x: int) -> int { x + 89 }
+pub func mod02_f90(x: int) -> int { x + 90 }
+pub func mod02_f91(x: int) -> int { x + 91 }
+pub func mod02_f92(x: int) -> int { x + 92 }
+pub func mod02_f93(x: int) -> int { x + 93 }
+pub func mod02_f94(x: int) -> int { x + 94 }
+pub func mod02_f95(x: int) -> int { x + 95 }
+pub func mod02_f96(x: int) -> int { x + 96 }
+pub func mod02_f97(x: int) -> int { x + 97 }
+pub func mod02_f98(x: int) -> int { x + 98 }
+pub func mod02_f99(x: int) -> int { x + 99 }
+pub func mod02_f100(x: int) -> int { x + 100 }
+pub func mod02_f101(x: int) -> int { x + 101 }
+pub func mod02_f102(x: int) -> int { x + 102 }
+pub func mod02_f103(x: int) -> int { x + 103 }
+pub func mod02_f104(x: int) -> int { x + 104 }
+pub func mod02_f105(x: int) -> int { x + 105 }
+pub func mod02_f106(x: int) -> int { x + 106 }
+pub func mod02_f107(x: int) -> int { x + 107 }
+pub func mod02_f108(x: int) -> int { x + 108 }
+pub func mod02_f109(x: int) -> int { x + 109 }
+pub func mod02_f110(x: int) -> int { x + 110 }
+pub func mod02_f111(x: int) -> int { x + 111 }
+pub func mod02_f112(x: int) -> int { x + 112 }
+pub func mod02_f113(x: int) -> int { x + 113 }
+pub func mod02_f114(x: int) -> int { x + 114 }
+pub func mod02_f115(x: int) -> int { x + 115 }
+pub func mod02_f116(x: int) -> int { x + 116 }
+pub func mod02_f117(x: int) -> int { x + 117 }
+pub func mod02_f118(x: int) -> int { x + 118 }
+pub func mod02_f119(x: int) -> int { x + 119 }
+pub func mod02_f120(x: int) -> int { x + 120 }
+pub func mod02_f121(x: int) -> int { x + 121 }
+pub func mod02_f122(x: int) -> int { x + 122 }
+pub func mod02_f123(x: int) -> int { x + 123 }
+pub func mod02_f124(x: int) -> int { x + 124 }
+pub func mod02_f125(x: int) -> int { x + 125 }
+pub func mod02_f126(x: int) -> int { x + 126 }
+pub func mod02_f127(x: int) -> int { x + 127 }
+pub func mod02_f128(x: int) -> int { x + 128 }
+pub func mod02_f129(x: int) -> int { x + 129 }
+pub func mod02_f130(x: int) -> int { x + 130 }
+pub func mod02_f131(x: int) -> int { x + 131 }
+pub func mod02_f132(x: int) -> int { x + 132 }
+pub func mod02_f133(x: int) -> int { x + 133 }
+pub func mod02_f134(x: int) -> int { x + 134 }
+pub func mod02_f135(x: int) -> int { x + 135 }
+pub func mod02_f136(x: int) -> int { x + 136 }
+pub func mod02_f137(x: int) -> int { x + 137 }
+pub func mod02_f138(x: int) -> int { x + 138 }
+pub func mod02_f139(x: int) -> int { x + 139 }
+pub func mod02_f140(x: int) -> int { x + 140 }
+pub func mod02_f141(x: int) -> int { x + 141 }
+pub func mod02_f142(x: int) -> int { x + 142 }
+pub func mod02_f143(x: int) -> int { x + 143 }
+pub func mod02_f144(x: int) -> int { x + 144 }
+pub func mod02_f145(x: int) -> int { x + 145 }
+pub func mod02_f146(x: int) -> int { x + 146 }
+pub func mod02_f147(x: int) -> int { x + 147 }
+pub func mod02_f148(x: int) -> int { x + 148 }
+pub func mod02_f149(x: int) -> int { x + 149 }
+pub func mod02_f150(x: int) -> int { x + 150 }
+pub func mod02_f151(x: int) -> int { x + 151 }
+pub func mod02_f152(x: int) -> int { x + 152 }
+pub func mod02_f153(x: int) -> int { x + 153 }
+pub func mod02_f154(x: int) -> int { x + 154 }
+pub func mod02_f155(x: int) -> int { x + 155 }
+pub func mod02_f156(x: int) -> int { x + 156 }
+pub func mod02_f157(x: int) -> int { x + 157 }
+pub func mod02_f158(x: int) -> int { x + 158 }
+pub func mod02_f159(x: int) -> int { x + 159 }
+pub func mod02_f160(x: int) -> int { x + 160 }
+pub func mod02_f161(x: int) -> int { x + 161 }
+pub func mod02_f162(x: int) -> int { x + 162 }
+pub func mod02_f163(x: int) -> int { x + 163 }
+pub func mod02_f164(x: int) -> int { x + 164 }
+pub func mod02_f165(x: int) -> int { x + 165 }
+pub func mod02_f166(x: int) -> int { x + 166 }
+pub func mod02_f167(x: int) -> int { x + 167 }
+pub func mod02_f168(x: int) -> int { x + 168 }
+pub func mod02_f169(x: int) -> int { x + 169 }
+pub func mod02_f170(x: int) -> int { x + 170 }
+pub func mod02_f171(x: int) -> int { x + 171 }
+pub func mod02_f172(x: int) -> int { x + 172 }
+pub func mod02_f173(x: int) -> int { x + 173 }
+pub func mod02_f174(x: int) -> int { x + 174 }
+pub func mod02_f175(x: int) -> int { x + 175 }
+pub func mod02_f176(x: int) -> int { x + 176 }
+pub func mod02_f177(x: int) -> int { x + 177 }
+pub func mod02_f178(x: int) -> int { x + 178 }
+pub func mod02_f179(x: int) -> int { x + 179 }
+pub func mod02_f180(x: int) -> int { x + 180 }
+pub func mod02_f181(x: int) -> int { x + 181 }
+pub func mod02_f182(x: int) -> int { x + 182 }
+pub func mod02_f183(x: int) -> int { x + 183 }
+pub func mod02_f184(x: int) -> int { x + 184 }
+pub func mod02_f185(x: int) -> int { x + 185 }
+pub func mod02_f186(x: int) -> int { x + 186 }
+pub func mod02_f187(x: int) -> int { x + 187 }
+pub func mod02_f188(x: int) -> int { x + 188 }
+pub func mod02_f189(x: int) -> int { x + 189 }
+pub func mod02_f190(x: int) -> int { x + 190 }
+pub func mod02_f191(x: int) -> int { x + 191 }
+pub func mod02_f192(x: int) -> int { x + 192 }
+pub func mod02_f193(x: int) -> int { x + 193 }
+pub func mod02_f194(x: int) -> int { x + 194 }
+pub func mod02_f195(x: int) -> int { x + 195 }
+pub func mod02_f196(x: int) -> int { x + 196 }
+pub func mod02_f197(x: int) -> int { x + 197 }
+pub func mod02_f198(x: int) -> int { x + 198 }
+pub func mod02_f199(x: int) -> int { x + 199 }
diff --git a/bench/compiler/proj/mod03.zz b/bench/compiler/proj/mod03.zz
new file mode 100644
index 00000000..d6d4b6d3
--- /dev/null
+++ b/bench/compiler/proj/mod03.zz
@@ -0,0 +1,200 @@
+pub func mod03_f0(x: int) -> int { x + 0 }
+pub func mod03_f1(x: int) -> int { x + 1 }
+pub func mod03_f2(x: int) -> int { x + 2 }
+pub func mod03_f3(x: int) -> int { x + 3 }
+pub func mod03_f4(x: int) -> int { x + 4 }
+pub func mod03_f5(x: int) -> int { x + 5 }
+pub func mod03_f6(x: int) -> int { x + 6 }
+pub func mod03_f7(x: int) -> int { x + 7 }
+pub func mod03_f8(x: int) -> int { x + 8 }
+pub func mod03_f9(x: int) -> int { x + 9 }
+pub func mod03_f10(x: int) -> int { x + 10 }
+pub func mod03_f11(x: int) -> int { x + 11 }
+pub func mod03_f12(x: int) -> int { x + 12 }
+pub func mod03_f13(x: int) -> int { x + 13 }
+pub func mod03_f14(x: int) -> int { x + 14 }
+pub func mod03_f15(x: int) -> int { x + 15 }
+pub func mod03_f16(x: int) -> int { x + 16 }
+pub func mod03_f17(x: int) -> int { x + 17 }
+pub func mod03_f18(x: int) -> int { x + 18 }
+pub func mod03_f19(x: int) -> int { x + 19 }
+pub func mod03_f20(x: int) -> int { x + 20 }
+pub func mod03_f21(x: int) -> int { x + 21 }
+pub func mod03_f22(x: int) -> int { x + 22 }
+pub func mod03_f23(x: int) -> int { x + 23 }
+pub func mod03_f24(x: int) -> int { x + 24 }
+pub func mod03_f25(x: int) -> int { x + 25 }
+pub func mod03_f26(x: int) -> int { x + 26 }
+pub func mod03_f27(x: int) -> int { x + 27 }
+pub func mod03_f28(x: int) -> int { x + 28 }
+pub func mod03_f29(x: int) -> int { x + 29 }
+pub func mod03_f30(x: int) -> int { x + 30 }
+pub func mod03_f31(x: int) -> int { x + 31 }
+pub func mod03_f32(x: int) -> int { x + 32 }
+pub func mod03_f33(x: int) -> int { x + 33 }
+pub func mod03_f34(x: int) -> int { x + 34 }
+pub func mod03_f35(x: int) -> int { x + 35 }
+pub func mod03_f36(x: int) -> int { x + 36 }
+pub func mod03_f37(x: int) -> int { x + 37 }
+pub func mod03_f38(x: int) -> int { x + 38 }
+pub func mod03_f39(x: int) -> int { x + 39 }
+pub func mod03_f40(x: int) -> int { x + 40 }
+pub func mod03_f41(x: int) -> int { x + 41 }
+pub func mod03_f42(x: int) -> int { x + 42 }
+pub func mod03_f43(x: int) -> int { x + 43 }
+pub func mod03_f44(x: int) -> int { x + 44 }
+pub func mod03_f45(x: int) -> int { x + 45 }
+pub func mod03_f46(x: int) -> int { x + 46 }
+pub func mod03_f47(x: int) -> int { x + 47 }
+pub func mod03_f48(x: int) -> int { x + 48 }
+pub func mod03_f49(x: int) -> int { x + 49 }
+pub func mod03_f50(x: int) -> int { x + 50 }
+pub func mod03_f51(x: int) -> int { x + 51 }
+pub func mod03_f52(x: int) -> int { x + 52 }
+pub func mod03_f53(x: int) -> int { x + 53 }
+pub func mod03_f54(x: int) -> int { x + 54 }
+pub func mod03_f55(x: int) -> int { x + 55 }
+pub func mod03_f56(x: int) -> int { x + 56 }
+pub func mod03_f57(x: int) -> int { x + 57 }
+pub func mod03_f58(x: int) -> int { x + 58 }
+pub func mod03_f59(x: int) -> int { x + 59 }
+pub func mod03_f60(x: int) -> int { x + 60 }
+pub func mod03_f61(x: int) -> int { x + 61 }
+pub func mod03_f62(x: int) -> int { x + 62 }
+pub func mod03_f63(x: int) -> int { x + 63 }
+pub func mod03_f64(x: int) -> int { x + 64 }
+pub func mod03_f65(x: int) -> int { x + 65 }
+pub func mod03_f66(x: int) -> int { x + 66 }
+pub func mod03_f67(x: int) -> int { x + 67 }
+pub func mod03_f68(x: int) -> int { x + 68 }
+pub func mod03_f69(x: int) -> int { x + 69 }
+pub func mod03_f70(x: int) -> int { x + 70 }
+pub func mod03_f71(x: int) -> int { x + 71 }
+pub func mod03_f72(x: int) -> int { x + 72 }
+pub func mod03_f73(x: int) -> int { x + 73 }
+pub func mod03_f74(x: int) -> int { x + 74 }
+pub func mod03_f75(x: int) -> int { x + 75 }
+pub func mod03_f76(x: int) -> int { x + 76 }
+pub func mod03_f77(x: int) -> int { x + 77 }
+pub func mod03_f78(x: int) -> int { x + 78 }
+pub func mod03_f79(x: int) -> int { x + 79 }
+pub func mod03_f80(x: int) -> int { x + 80 }
+pub func mod03_f81(x: int) -> int { x + 81 }
+pub func mod03_f82(x: int) -> int { x + 82 }
+pub func mod03_f83(x: int) -> int { x + 83 }
+pub func mod03_f84(x: int) -> int { x + 84 }
+pub func mod03_f85(x: int) -> int { x + 85 }
+pub func mod03_f86(x: int) -> int { x + 86 }
+pub func mod03_f87(x: int) -> int { x + 87 }
+pub func mod03_f88(x: int) -> int { x + 88 }
+pub func mod03_f89(x: int) -> int { x + 89 }
+pub func mod03_f90(x: int) -> int { x + 90 }
+pub func mod03_f91(x: int) -> int { x + 91 }
+pub func mod03_f92(x: int) -> int { x + 92 }
+pub func mod03_f93(x: int) -> int { x + 93 }
+pub func mod03_f94(x: int) -> int { x + 94 }
+pub func mod03_f95(x: int) -> int { x + 95 }
+pub func mod03_f96(x: int) -> int { x + 96 }
+pub func mod03_f97(x: int) -> int { x + 97 }
+pub func mod03_f98(x: int) -> int { x + 98 }
+pub func mod03_f99(x: int) -> int { x + 99 }
+pub func mod03_f100(x: int) -> int { x + 100 }
+pub func mod03_f101(x: int) -> int { x + 101 }
+pub func mod03_f102(x: int) -> int { x + 102 }
+pub func mod03_f103(x: int) -> int { x + 103 }
+pub func mod03_f104(x: int) -> int { x + 104 }
+pub func mod03_f105(x: int) -> int { x + 105 }
+pub func mod03_f106(x: int) -> int { x + 106 }
+pub func mod03_f107(x: int) -> int { x + 107 }
+pub func mod03_f108(x: int) -> int { x + 108 }
+pub func mod03_f109(x: int) -> int { x + 109 }
+pub func mod03_f110(x: int) -> int { x + 110 }
+pub func mod03_f111(x: int) -> int { x + 111 }
+pub func mod03_f112(x: int) -> int { x + 112 }
+pub func mod03_f113(x: int) -> int { x + 113 }
+pub func mod03_f114(x: int) -> int { x + 114 }
+pub func mod03_f115(x: int) -> int { x + 115 }
+pub func mod03_f116(x: int) -> int { x + 116 }
+pub func mod03_f117(x: int) -> int { x + 117 }
+pub func mod03_f118(x: int) -> int { x + 118 }
+pub func mod03_f119(x: int) -> int { x + 119 }
+pub func mod03_f120(x: int) -> int { x + 120 }
+pub func mod03_f121(x: int) -> int { x + 121 }
+pub func mod03_f122(x: int) -> int { x + 122 }
+pub func mod03_f123(x: int) -> int { x + 123 }
+pub func mod03_f124(x: int) -> int { x + 124 }
+pub func mod03_f125(x: int) -> int { x + 125 }
+pub func mod03_f126(x: int) -> int { x + 126 }
+pub func mod03_f127(x: int) -> int { x + 127 }
+pub func mod03_f128(x: int) -> int { x + 128 }
+pub func mod03_f129(x: int) -> int { x + 129 }
+pub func mod03_f130(x: int) -> int { x + 130 }
+pub func mod03_f131(x: int) -> int { x + 131 }
+pub func mod03_f132(x: int) -> int { x + 132 }
+pub func mod03_f133(x: int) -> int { x + 133 }
+pub func mod03_f134(x: int) -> int { x + 134 }
+pub func mod03_f135(x: int) -> int { x + 135 }
+pub func mod03_f136(x: int) -> int { x + 136 }
+pub func mod03_f137(x: int) -> int { x + 137 }
+pub func mod03_f138(x: int) -> int { x + 138 }
+pub func mod03_f139(x: int) -> int { x + 139 }
+pub func mod03_f140(x: int) -> int { x + 140 }
+pub func mod03_f141(x: int) -> int { x + 141 }
+pub func mod03_f142(x: int) -> int { x + 142 }
+pub func mod03_f143(x: int) -> int { x + 143 }
+pub func mod03_f144(x: int) -> int { x + 144 }
+pub func mod03_f145(x: int) -> int { x + 145 }
+pub func mod03_f146(x: int) -> int { x + 146 }
+pub func mod03_f147(x: int) -> int { x + 147 }
+pub func mod03_f148(x: int) -> int { x + 148 }
+pub func mod03_f149(x: int) -> int { x + 149 }
+pub func mod03_f150(x: int) -> int { x + 150 }
+pub func mod03_f151(x: int) -> int { x + 151 }
+pub func mod03_f152(x: int) -> int { x + 152 }
+pub func mod03_f153(x: int) -> int { x + 153 }
+pub func mod03_f154(x: int) -> int { x + 154 }
+pub func mod03_f155(x: int) -> int { x + 155 }
+pub func mod03_f156(x: int) -> int { x + 156 }
+pub func mod03_f157(x: int) -> int { x + 157 }
+pub func mod03_f158(x: int) -> int { x + 158 }
+pub func mod03_f159(x: int) -> int { x + 159 }
+pub func mod03_f160(x: int) -> int { x + 160 }
+pub func mod03_f161(x: int) -> int { x + 161 }
+pub func mod03_f162(x: int) -> int { x + 162 }
+pub func mod03_f163(x: int) -> int { x + 163 }
+pub func mod03_f164(x: int) -> int { x + 164 }
+pub func mod03_f165(x: int) -> int { x + 165 }
+pub func mod03_f166(x: int) -> int { x + 166 }
+pub func mod03_f167(x: int) -> int { x + 167 }
+pub func mod03_f168(x: int) -> int { x + 168 }
+pub func mod03_f169(x: int) -> int { x + 169 }
+pub func mod03_f170(x: int) -> int { x + 170 }
+pub func mod03_f171(x: int) -> int { x + 171 }
+pub func mod03_f172(x: int) -> int { x + 172 }
+pub func mod03_f173(x: int) -> int { x + 173 }
+pub func mod03_f174(x: int) -> int { x + 174 }
+pub func mod03_f175(x: int) -> int { x + 175 }
+pub func mod03_f176(x: int) -> int { x + 176 }
+pub func mod03_f177(x: int) -> int { x + 177 }
+pub func mod03_f178(x: int) -> int { x + 178 }
+pub func mod03_f179(x: int) -> int { x + 179 }
+pub func mod03_f180(x: int) -> int { x + 180 }
+pub func mod03_f181(x: int) -> int { x + 181 }
+pub func mod03_f182(x: int) -> int { x + 182 }
+pub func mod03_f183(x: int) -> int { x + 183 }
+pub func mod03_f184(x: int) -> int { x + 184 }
+pub func mod03_f185(x: int) -> int { x + 185 }
+pub func mod03_f186(x: int) -> int { x + 186 }
+pub func mod03_f187(x: int) -> int { x + 187 }
+pub func mod03_f188(x: int) -> int { x + 188 }
+pub func mod03_f189(x: int) -> int { x + 189 }
+pub func mod03_f190(x: int) -> int { x + 190 }
+pub func mod03_f191(x: int) -> int { x + 191 }
+pub func mod03_f192(x: int) -> int { x + 192 }
+pub func mod03_f193(x: int) -> int { x + 193 }
+pub func mod03_f194(x: int) -> int { x + 194 }
+pub func mod03_f195(x: int) -> int { x + 195 }
+pub func mod03_f196(x: int) -> int { x + 196 }
+pub func mod03_f197(x: int) -> int { x + 197 }
+pub func mod03_f198(x: int) -> int { x + 198 }
+pub func mod03_f199(x: int) -> int { x + 199 }
diff --git a/bench/compiler/proj/mod04.zz b/bench/compiler/proj/mod04.zz
new file mode 100644
index 00000000..de7a0b2f
--- /dev/null
+++ b/bench/compiler/proj/mod04.zz
@@ -0,0 +1,200 @@
+pub func mod04_f0(x: int) -> int { x + 0 }
+pub func mod04_f1(x: int) -> int { x + 1 }
+pub func mod04_f2(x: int) -> int { x + 2 }
+pub func mod04_f3(x: int) -> int { x + 3 }
+pub func mod04_f4(x: int) -> int { x + 4 }
+pub func mod04_f5(x: int) -> int { x + 5 }
+pub func mod04_f6(x: int) -> int { x + 6 }
+pub func mod04_f7(x: int) -> int { x + 7 }
+pub func mod04_f8(x: int) -> int { x + 8 }
+pub func mod04_f9(x: int) -> int { x + 9 }
+pub func mod04_f10(x: int) -> int { x + 10 }
+pub func mod04_f11(x: int) -> int { x + 11 }
+pub func mod04_f12(x: int) -> int { x + 12 }
+pub func mod04_f13(x: int) -> int { x + 13 }
+pub func mod04_f14(x: int) -> int { x + 14 }
+pub func mod04_f15(x: int) -> int { x + 15 }
+pub func mod04_f16(x: int) -> int { x + 16 }
+pub func mod04_f17(x: int) -> int { x + 17 }
+pub func mod04_f18(x: int) -> int { x + 18 }
+pub func mod04_f19(x: int) -> int { x + 19 }
+pub func mod04_f20(x: int) -> int { x + 20 }
+pub func mod04_f21(x: int) -> int { x + 21 }
+pub func mod04_f22(x: int) -> int { x + 22 }
+pub func mod04_f23(x: int) -> int { x + 23 }
+pub func mod04_f24(x: int) -> int { x + 24 }
+pub func mod04_f25(x: int) -> int { x + 25 }
+pub func mod04_f26(x: int) -> int { x + 26 }
+pub func mod04_f27(x: int) -> int { x + 27 }
+pub func mod04_f28(x: int) -> int { x + 28 }
+pub func mod04_f29(x: int) -> int { x + 29 }
+pub func mod04_f30(x: int) -> int { x + 30 }
+pub func mod04_f31(x: int) -> int { x + 31 }
+pub func mod04_f32(x: int) -> int { x + 32 }
+pub func mod04_f33(x: int) -> int { x + 33 }
+pub func mod04_f34(x: int) -> int { x + 34 }
+pub func mod04_f35(x: int) -> int { x + 35 }
+pub func mod04_f36(x: int) -> int { x + 36 }
+pub func mod04_f37(x: int) -> int { x + 37 }
+pub func mod04_f38(x: int) -> int { x + 38 }
+pub func mod04_f39(x: int) -> int { x + 39 }
+pub func mod04_f40(x: int) -> int { x + 40 }
+pub func mod04_f41(x: int) -> int { x + 41 }
+pub func mod04_f42(x: int) -> int { x + 42 }
+pub func mod04_f43(x: int) -> int { x + 43 }
+pub func mod04_f44(x: int) -> int { x + 44 }
+pub func mod04_f45(x: int) -> int { x + 45 }
+pub func mod04_f46(x: int) -> int { x + 46 }
+pub func mod04_f47(x: int) -> int { x + 47 }
+pub func mod04_f48(x: int) -> int { x + 48 }
+pub func mod04_f49(x: int) -> int { x + 49 }
+pub func mod04_f50(x: int) -> int { x + 50 }
+pub func mod04_f51(x: int) -> int { x + 51 }
+pub func mod04_f52(x: int) -> int { x + 52 }
+pub func mod04_f53(x: int) -> int { x + 53 }
+pub func mod04_f54(x: int) -> int { x + 54 }
+pub func mod04_f55(x: int) -> int { x + 55 }
+pub func mod04_f56(x: int) -> int { x + 56 }
+pub func mod04_f57(x: int) -> int { x + 57 }
+pub func mod04_f58(x: int) -> int { x + 58 }
+pub func mod04_f59(x: int) -> int { x + 59 }
+pub func mod04_f60(x: int) -> int { x + 60 }
+pub func mod04_f61(x: int) -> int { x + 61 }
+pub func mod04_f62(x: int) -> int { x + 62 }
+pub func mod04_f63(x: int) -> int { x + 63 }
+pub func mod04_f64(x: int) -> int { x + 64 }
+pub func mod04_f65(x: int) -> int { x + 65 }
+pub func mod04_f66(x: int) -> int { x + 66 }
+pub func mod04_f67(x: int) -> int { x + 67 }
+pub func mod04_f68(x: int) -> int { x + 68 }
+pub func mod04_f69(x: int) -> int { x + 69 }
+pub func mod04_f70(x: int) -> int { x + 70 }
+pub func mod04_f71(x: int) -> int { x + 71 }
+pub func mod04_f72(x: int) -> int { x + 72 }
+pub func mod04_f73(x: int) -> int { x + 73 }
+pub func mod04_f74(x: int) -> int { x + 74 }
+pub func mod04_f75(x: int) -> int { x + 75 }
+pub func mod04_f76(x: int) -> int { x + 76 }
+pub func mod04_f77(x: int) -> int { x + 77 }
+pub func mod04_f78(x: int) -> int { x + 78 }
+pub func mod04_f79(x: int) -> int { x + 79 }
+pub func mod04_f80(x: int) -> int { x + 80 }
+pub func mod04_f81(x: int) -> int { x + 81 }
+pub func mod04_f82(x: int) -> int { x + 82 }
+pub func mod04_f83(x: int) -> int { x + 83 }
+pub func mod04_f84(x: int) -> int { x + 84 }
+pub func mod04_f85(x: int) -> int { x + 85 }
+pub func mod04_f86(x: int) -> int { x + 86 }
+pub func mod04_f87(x: int) -> int { x + 87 }
+pub func mod04_f88(x: int) -> int { x + 88 }
+pub func mod04_f89(x: int) -> int { x + 89 }
+pub func mod04_f90(x: int) -> int { x + 90 }
+pub func mod04_f91(x: int) -> int { x + 91 }
+pub func mod04_f92(x: int) -> int { x + 92 }
+pub func mod04_f93(x: int) -> int { x + 93 }
+pub func mod04_f94(x: int) -> int { x + 94 }
+pub func mod04_f95(x: int) -> int { x + 95 }
+pub func mod04_f96(x: int) -> int { x + 96 }
+pub func mod04_f97(x: int) -> int { x + 97 }
+pub func mod04_f98(x: int) -> int { x + 98 }
+pub func mod04_f99(x: int) -> int { x + 99 }
+pub func mod04_f100(x: int) -> int { x + 100 }
+pub func mod04_f101(x: int) -> int { x + 101 }
+pub func mod04_f102(x: int) -> int { x + 102 }
+pub func mod04_f103(x: int) -> int { x + 103 }
+pub func mod04_f104(x: int) -> int { x + 104 }
+pub func mod04_f105(x: int) -> int { x + 105 }
+pub func mod04_f106(x: int) -> int { x + 106 }
+pub func mod04_f107(x: int) -> int { x + 107 }
+pub func mod04_f108(x: int) -> int { x + 108 }
+pub func mod04_f109(x: int) -> int { x + 109 }
+pub func mod04_f110(x: int) -> int { x + 110 }
+pub func mod04_f111(x: int) -> int { x + 111 }
+pub func mod04_f112(x: int) -> int { x + 112 }
+pub func mod04_f113(x: int) -> int { x + 113 }
+pub func mod04_f114(x: int) -> int { x + 114 }
+pub func mod04_f115(x: int) -> int { x + 115 }
+pub func mod04_f116(x: int) -> int { x + 116 }
+pub func mod04_f117(x: int) -> int { x + 117 }
+pub func mod04_f118(x: int) -> int { x + 118 }
+pub func mod04_f119(x: int) -> int { x + 119 }
+pub func mod04_f120(x: int) -> int { x + 120 }
+pub func mod04_f121(x: int) -> int { x + 121 }
+pub func mod04_f122(x: int) -> int { x + 122 }
+pub func mod04_f123(x: int) -> int { x + 123 }
+pub func mod04_f124(x: int) -> int { x + 124 }
+pub func mod04_f125(x: int) -> int { x + 125 }
+pub func mod04_f126(x: int) -> int { x + 126 }
+pub func mod04_f127(x: int) -> int { x + 127 }
+pub func mod04_f128(x: int) -> int { x + 128 }
+pub func mod04_f129(x: int) -> int { x + 129 }
+pub func mod04_f130(x: int) -> int { x + 130 }
+pub func mod04_f131(x: int) -> int { x + 131 }
+pub func mod04_f132(x: int) -> int { x + 132 }
+pub func mod04_f133(x: int) -> int { x + 133 }
+pub func mod04_f134(x: int) -> int { x + 134 }
+pub func mod04_f135(x: int) -> int { x + 135 }
+pub func mod04_f136(x: int) -> int { x + 136 }
+pub func mod04_f137(x: int) -> int { x + 137 }
+pub func mod04_f138(x: int) -> int { x + 138 }
+pub func mod04_f139(x: int) -> int { x + 139 }
+pub func mod04_f140(x: int) -> int { x + 140 }
+pub func mod04_f141(x: int) -> int { x + 141 }
+pub func mod04_f142(x: int) -> int { x + 142 }
+pub func mod04_f143(x: int) -> int { x + 143 }
+pub func mod04_f144(x: int) -> int { x + 144 }
+pub func mod04_f145(x: int) -> int { x + 145 }
+pub func mod04_f146(x: int) -> int { x + 146 }
+pub func mod04_f147(x: int) -> int { x + 147 }
+pub func mod04_f148(x: int) -> int { x + 148 }
+pub func mod04_f149(x: int) -> int { x + 149 }
+pub func mod04_f150(x: int) -> int { x + 150 }
+pub func mod04_f151(x: int) -> int { x + 151 }
+pub func mod04_f152(x: int) -> int { x + 152 }
+pub func mod04_f153(x: int) -> int { x + 153 }
+pub func mod04_f154(x: int) -> int { x + 154 }
+pub func mod04_f155(x: int) -> int { x + 155 }
+pub func mod04_f156(x: int) -> int { x + 156 }
+pub func mod04_f157(x: int) -> int { x + 157 }
+pub func mod04_f158(x: int) -> int { x + 158 }
+pub func mod04_f159(x: int) -> int { x + 159 }
+pub func mod04_f160(x: int) -> int { x + 160 }
+pub func mod04_f161(x: int) -> int { x + 161 }
+pub func mod04_f162(x: int) -> int { x + 162 }
+pub func mod04_f163(x: int) -> int { x + 163 }
+pub func mod04_f164(x: int) -> int { x + 164 }
+pub func mod04_f165(x: int) -> int { x + 165 }
+pub func mod04_f166(x: int) -> int { x + 166 }
+pub func mod04_f167(x: int) -> int { x + 167 }
+pub func mod04_f168(x: int) -> int { x + 168 }
+pub func mod04_f169(x: int) -> int { x + 169 }
+pub func mod04_f170(x: int) -> int { x + 170 }
+pub func mod04_f171(x: int) -> int { x + 171 }
+pub func mod04_f172(x: int) -> int { x + 172 }
+pub func mod04_f173(x: int) -> int { x + 173 }
+pub func mod04_f174(x: int) -> int { x + 174 }
+pub func mod04_f175(x: int) -> int { x + 175 }
+pub func mod04_f176(x: int) -> int { x + 176 }
+pub func mod04_f177(x: int) -> int { x + 177 }
+pub func mod04_f178(x: int) -> int { x + 178 }
+pub func mod04_f179(x: int) -> int { x + 179 }
+pub func mod04_f180(x: int) -> int { x + 180 }
+pub func mod04_f181(x: int) -> int { x + 181 }
+pub func mod04_f182(x: int) -> int { x + 182 }
+pub func mod04_f183(x: int) -> int { x + 183 }
+pub func mod04_f184(x: int) -> int { x + 184 }
+pub func mod04_f185(x: int) -> int { x + 185 }
+pub func mod04_f186(x: int) -> int { x + 186 }
+pub func mod04_f187(x: int) -> int { x + 187 }
+pub func mod04_f188(x: int) -> int { x + 188 }
+pub func mod04_f189(x: int) -> int { x + 189 }
+pub func mod04_f190(x: int) -> int { x + 190 }
+pub func mod04_f191(x: int) -> int { x + 191 }
+pub func mod04_f192(x: int) -> int { x + 192 }
+pub func mod04_f193(x: int) -> int { x + 193 }
+pub func mod04_f194(x: int) -> int { x + 194 }
+pub func mod04_f195(x: int) -> int { x + 195 }
+pub func mod04_f196(x: int) -> int { x + 196 }
+pub func mod04_f197(x: int) -> int { x + 197 }
+pub func mod04_f198(x: int) -> int { x + 198 }
+pub func mod04_f199(x: int) -> int { x + 199 }
diff --git a/bench/compiler/proj/mod05.zz b/bench/compiler/proj/mod05.zz
new file mode 100644
index 00000000..3810ebcc
--- /dev/null
+++ b/bench/compiler/proj/mod05.zz
@@ -0,0 +1,200 @@
+pub func mod05_f0(x: int) -> int { x + 0 }
+pub func mod05_f1(x: int) -> int { x + 1 }
+pub func mod05_f2(x: int) -> int { x + 2 }
+pub func mod05_f3(x: int) -> int { x + 3 }
+pub func mod05_f4(x: int) -> int { x + 4 }
+pub func mod05_f5(x: int) -> int { x + 5 }
+pub func mod05_f6(x: int) -> int { x + 6 }
+pub func mod05_f7(x: int) -> int { x + 7 }
+pub func mod05_f8(x: int) -> int { x + 8 }
+pub func mod05_f9(x: int) -> int { x + 9 }
+pub func mod05_f10(x: int) -> int { x + 10 }
+pub func mod05_f11(x: int) -> int { x + 11 }
+pub func mod05_f12(x: int) -> int { x + 12 }
+pub func mod05_f13(x: int) -> int { x + 13 }
+pub func mod05_f14(x: int) -> int { x + 14 }
+pub func mod05_f15(x: int) -> int { x + 15 }
+pub func mod05_f16(x: int) -> int { x + 16 }
+pub func mod05_f17(x: int) -> int { x + 17 }
+pub func mod05_f18(x: int) -> int { x + 18 }
+pub func mod05_f19(x: int) -> int { x + 19 }
+pub func mod05_f20(x: int) -> int { x + 20 }
+pub func mod05_f21(x: int) -> int { x + 21 }
+pub func mod05_f22(x: int) -> int { x + 22 }
+pub func mod05_f23(x: int) -> int { x + 23 }
+pub func mod05_f24(x: int) -> int { x + 24 }
+pub func mod05_f25(x: int) -> int { x + 25 }
+pub func mod05_f26(x: int) -> int { x + 26 }
+pub func mod05_f27(x: int) -> int { x + 27 }
+pub func mod05_f28(x: int) -> int { x + 28 }
+pub func mod05_f29(x: int) -> int { x + 29 }
+pub func mod05_f30(x: int) -> int { x + 30 }
+pub func mod05_f31(x: int) -> int { x + 31 }
+pub func mod05_f32(x: int) -> int { x + 32 }
+pub func mod05_f33(x: int) -> int { x + 33 }
+pub func mod05_f34(x: int) -> int { x + 34 }
+pub func mod05_f35(x: int) -> int { x + 35 }
+pub func mod05_f36(x: int) -> int { x + 36 }
+pub func mod05_f37(x: int) -> int { x + 37 }
+pub func mod05_f38(x: int) -> int { x + 38 }
+pub func mod05_f39(x: int) -> int { x + 39 }
+pub func mod05_f40(x: int) -> int { x + 40 }
+pub func mod05_f41(x: int) -> int { x + 41 }
+pub func mod05_f42(x: int) -> int { x + 42 }
+pub func mod05_f43(x: int) -> int { x + 43 }
+pub func mod05_f44(x: int) -> int { x + 44 }
+pub func mod05_f45(x: int) -> int { x + 45 }
+pub func mod05_f46(x: int) -> int { x + 46 }
+pub func mod05_f47(x: int) -> int { x + 47 }
+pub func mod05_f48(x: int) -> int { x + 48 }
+pub func mod05_f49(x: int) -> int { x + 49 }
+pub func mod05_f50(x: int) -> int { x + 50 }
+pub func mod05_f51(x: int) -> int { x + 51 }
+pub func mod05_f52(x: int) -> int { x + 52 }
+pub func mod05_f53(x: int) -> int { x + 53 }
+pub func mod05_f54(x: int) -> int { x + 54 }
+pub func mod05_f55(x: int) -> int { x + 55 }
+pub func mod05_f56(x: int) -> int { x + 56 }
+pub func mod05_f57(x: int) -> int { x + 57 }
+pub func mod05_f58(x: int) -> int { x + 58 }
+pub func mod05_f59(x: int) -> int { x + 59 }
+pub func mod05_f60(x: int) -> int { x + 60 }
+pub func mod05_f61(x: int) -> int { x + 61 }
+pub func mod05_f62(x: int) -> int { x + 62 }
+pub func mod05_f63(x: int) -> int { x + 63 }
+pub func mod05_f64(x: int) -> int { x + 64 }
+pub func mod05_f65(x: int) -> int { x + 65 }
+pub func mod05_f66(x: int) -> int { x + 66 }
+pub func mod05_f67(x: int) -> int { x + 67 }
+pub func mod05_f68(x: int) -> int { x + 68 }
+pub func mod05_f69(x: int) -> int { x + 69 }
+pub func mod05_f70(x: int) -> int { x + 70 }
+pub func mod05_f71(x: int) -> int { x + 71 }
+pub func mod05_f72(x: int) -> int { x + 72 }
+pub func mod05_f73(x: int) -> int { x + 73 }
+pub func mod05_f74(x: int) -> int { x + 74 }
+pub func mod05_f75(x: int) -> int { x + 75 }
+pub func mod05_f76(x: int) -> int { x + 76 }
+pub func mod05_f77(x: int) -> int { x + 77 }
+pub func mod05_f78(x: int) -> int { x + 78 }
+pub func mod05_f79(x: int) -> int { x + 79 }
+pub func mod05_f80(x: int) -> int { x + 80 }
+pub func mod05_f81(x: int) -> int { x + 81 }
+pub func mod05_f82(x: int) -> int { x + 82 }
+pub func mod05_f83(x: int) -> int { x + 83 }
+pub func mod05_f84(x: int) -> int { x + 84 }
+pub func mod05_f85(x: int) -> int { x + 85 }
+pub func mod05_f86(x: int) -> int { x + 86 }
+pub func mod05_f87(x: int) -> int { x + 87 }
+pub func mod05_f88(x: int) -> int { x + 88 }
+pub func mod05_f89(x: int) -> int { x + 89 }
+pub func mod05_f90(x: int) -> int { x + 90 }
+pub func mod05_f91(x: int) -> int { x + 91 }
+pub func mod05_f92(x: int) -> int { x + 92 }
+pub func mod05_f93(x: int) -> int { x + 93 }
+pub func mod05_f94(x: int) -> int { x + 94 }
+pub func mod05_f95(x: int) -> int { x + 95 }
+pub func mod05_f96(x: int) -> int { x + 96 }
+pub func mod05_f97(x: int) -> int { x + 97 }
+pub func mod05_f98(x: int) -> int { x + 98 }
+pub func mod05_f99(x: int) -> int { x + 99 }
+pub func mod05_f100(x: int) -> int { x + 100 }
+pub func mod05_f101(x: int) -> int { x + 101 }
+pub func mod05_f102(x: int) -> int { x + 102 }
+pub func mod05_f103(x: int) -> int { x + 103 }
+pub func mod05_f104(x: int) -> int { x + 104 }
+pub func mod05_f105(x: int) -> int { x + 105 }
+pub func mod05_f106(x: int) -> int { x + 106 }
+pub func mod05_f107(x: int) -> int { x + 107 }
+pub func mod05_f108(x: int) -> int { x + 108 }
+pub func mod05_f109(x: int) -> int { x + 109 }
+pub func mod05_f110(x: int) -> int { x + 110 }
+pub func mod05_f111(x: int) -> int { x + 111 }
+pub func mod05_f112(x: int) -> int { x + 112 }
+pub func mod05_f113(x: int) -> int { x + 113 }
+pub func mod05_f114(x: int) -> int { x + 114 }
+pub func mod05_f115(x: int) -> int { x + 115 }
+pub func mod05_f116(x: int) -> int { x + 116 }
+pub func mod05_f117(x: int) -> int { x + 117 }
+pub func mod05_f118(x: int) -> int { x + 118 }
+pub func mod05_f119(x: int) -> int { x + 119 }
+pub func mod05_f120(x: int) -> int { x + 120 }
+pub func mod05_f121(x: int) -> int { x + 121 }
+pub func mod05_f122(x: int) -> int { x + 122 }
+pub func mod05_f123(x: int) -> int { x + 123 }
+pub func mod05_f124(x: int) -> int { x + 124 }
+pub func mod05_f125(x: int) -> int { x + 125 }
+pub func mod05_f126(x: int) -> int { x + 126 }
+pub func mod05_f127(x: int) -> int { x + 127 }
+pub func mod05_f128(x: int) -> int { x + 128 }
+pub func mod05_f129(x: int) -> int { x + 129 }
+pub func mod05_f130(x: int) -> int { x + 130 }
+pub func mod05_f131(x: int) -> int { x + 131 }
+pub func mod05_f132(x: int) -> int { x + 132 }
+pub func mod05_f133(x: int) -> int { x + 133 }
+pub func mod05_f134(x: int) -> int { x + 134 }
+pub func mod05_f135(x: int) -> int { x + 135 }
+pub func mod05_f136(x: int) -> int { x + 136 }
+pub func mod05_f137(x: int) -> int { x + 137 }
+pub func mod05_f138(x: int) -> int { x + 138 }
+pub func mod05_f139(x: int) -> int { x + 139 }
+pub func mod05_f140(x: int) -> int { x + 140 }
+pub func mod05_f141(x: int) -> int { x + 141 }
+pub func mod05_f142(x: int) -> int { x + 142 }
+pub func mod05_f143(x: int) -> int { x + 143 }
+pub func mod05_f144(x: int) -> int { x + 144 }
+pub func mod05_f145(x: int) -> int { x + 145 }
+pub func mod05_f146(x: int) -> int { x + 146 }
+pub func mod05_f147(x: int) -> int { x + 147 }
+pub func mod05_f148(x: int) -> int { x + 148 }
+pub func mod05_f149(x: int) -> int { x + 149 }
+pub func mod05_f150(x: int) -> int { x + 150 }
+pub func mod05_f151(x: int) -> int { x + 151 }
+pub func mod05_f152(x: int) -> int { x + 152 }
+pub func mod05_f153(x: int) -> int { x + 153 }
+pub func mod05_f154(x: int) -> int { x + 154 }
+pub func mod05_f155(x: int) -> int { x + 155 }
+pub func mod05_f156(x: int) -> int { x + 156 }
+pub func mod05_f157(x: int) -> int { x + 157 }
+pub func mod05_f158(x: int) -> int { x + 158 }
+pub func mod05_f159(x: int) -> int { x + 159 }
+pub func mod05_f160(x: int) -> int { x + 160 }
+pub func mod05_f161(x: int) -> int { x + 161 }
+pub func mod05_f162(x: int) -> int { x + 162 }
+pub func mod05_f163(x: int) -> int { x + 163 }
+pub func mod05_f164(x: int) -> int { x + 164 }
+pub func mod05_f165(x: int) -> int { x + 165 }
+pub func mod05_f166(x: int) -> int { x + 166 }
+pub func mod05_f167(x: int) -> int { x + 167 }
+pub func mod05_f168(x: int) -> int { x + 168 }
+pub func mod05_f169(x: int) -> int { x + 169 }
+pub func mod05_f170(x: int) -> int { x + 170 }
+pub func mod05_f171(x: int) -> int { x + 171 }
+pub func mod05_f172(x: int) -> int { x + 172 }
+pub func mod05_f173(x: int) -> int { x + 173 }
+pub func mod05_f174(x: int) -> int { x + 174 }
+pub func mod05_f175(x: int) -> int { x + 175 }
+pub func mod05_f176(x: int) -> int { x + 176 }
+pub func mod05_f177(x: int) -> int { x + 177 }
+pub func mod05_f178(x: int) -> int { x + 178 }
+pub func mod05_f179(x: int) -> int { x + 179 }
+pub func mod05_f180(x: int) -> int { x + 180 }
+pub func mod05_f181(x: int) -> int { x + 181 }
+pub func mod05_f182(x: int) -> int { x + 182 }
+pub func mod05_f183(x: int) -> int { x + 183 }
+pub func mod05_f184(x: int) -> int { x + 184 }
+pub func mod05_f185(x: int) -> int { x + 185 }
+pub func mod05_f186(x: int) -> int { x + 186 }
+pub func mod05_f187(x: int) -> int { x + 187 }
+pub func mod05_f188(x: int) -> int { x + 188 }
+pub func mod05_f189(x: int) -> int { x + 189 }
+pub func mod05_f190(x: int) -> int { x + 190 }
+pub func mod05_f191(x: int) -> int { x + 191 }
+pub func mod05_f192(x: int) -> int { x + 192 }
+pub func mod05_f193(x: int) -> int { x + 193 }
+pub func mod05_f194(x: int) -> int { x + 194 }
+pub func mod05_f195(x: int) -> int { x + 195 }
+pub func mod05_f196(x: int) -> int { x + 196 }
+pub func mod05_f197(x: int) -> int { x + 197 }
+pub func mod05_f198(x: int) -> int { x + 198 }
+pub func mod05_f199(x: int) -> int { x + 199 }
diff --git a/bench/compiler/proj/mod06.zz b/bench/compiler/proj/mod06.zz
new file mode 100644
index 00000000..7fa594ba
--- /dev/null
+++ b/bench/compiler/proj/mod06.zz
@@ -0,0 +1,200 @@
+pub func mod06_f0(x: int) -> int { x + 0 }
+pub func mod06_f1(x: int) -> int { x + 1 }
+pub func mod06_f2(x: int) -> int { x + 2 }
+pub func mod06_f3(x: int) -> int { x + 3 }
+pub func mod06_f4(x: int) -> int { x + 4 }
+pub func mod06_f5(x: int) -> int { x + 5 }
+pub func mod06_f6(x: int) -> int { x + 6 }
+pub func mod06_f7(x: int) -> int { x + 7 }
+pub func mod06_f8(x: int) -> int { x + 8 }
+pub func mod06_f9(x: int) -> int { x + 9 }
+pub func mod06_f10(x: int) -> int { x + 10 }
+pub func mod06_f11(x: int) -> int { x + 11 }
+pub func mod06_f12(x: int) -> int { x + 12 }
+pub func mod06_f13(x: int) -> int { x + 13 }
+pub func mod06_f14(x: int) -> int { x + 14 }
+pub func mod06_f15(x: int) -> int { x + 15 }
+pub func mod06_f16(x: int) -> int { x + 16 }
+pub func mod06_f17(x: int) -> int { x + 17 }
+pub func mod06_f18(x: int) -> int { x + 18 }
+pub func mod06_f19(x: int) -> int { x + 19 }
+pub func mod06_f20(x: int) -> int { x + 20 }
+pub func mod06_f21(x: int) -> int { x + 21 }
+pub func mod06_f22(x: int) -> int { x + 22 }
+pub func mod06_f23(x: int) -> int { x + 23 }
+pub func mod06_f24(x: int) -> int { x + 24 }
+pub func mod06_f25(x: int) -> int { x + 25 }
+pub func mod06_f26(x: int) -> int { x + 26 }
+pub func mod06_f27(x: int) -> int { x + 27 }
+pub func mod06_f28(x: int) -> int { x + 28 }
+pub func mod06_f29(x: int) -> int { x + 29 }
+pub func mod06_f30(x: int) -> int { x + 30 }
+pub func mod06_f31(x: int) -> int { x + 31 }
+pub func mod06_f32(x: int) -> int { x + 32 }
+pub func mod06_f33(x: int) -> int { x + 33 }
+pub func mod06_f34(x: int) -> int { x + 34 }
+pub func mod06_f35(x: int) -> int { x + 35 }
+pub func mod06_f36(x: int) -> int { x + 36 }
+pub func mod06_f37(x: int) -> int { x + 37 }
+pub func mod06_f38(x: int) -> int { x + 38 }
+pub func mod06_f39(x: int) -> int { x + 39 }
+pub func mod06_f40(x: int) -> int { x + 40 }
+pub func mod06_f41(x: int) -> int { x + 41 }
+pub func mod06_f42(x: int) -> int { x + 42 }
+pub func mod06_f43(x: int) -> int { x + 43 }
+pub func mod06_f44(x: int) -> int { x + 44 }
+pub func mod06_f45(x: int) -> int { x + 45 }
+pub func mod06_f46(x: int) -> int { x + 46 }
+pub func mod06_f47(x: int) -> int { x + 47 }
+pub func mod06_f48(x: int) -> int { x + 48 }
+pub func mod06_f49(x: int) -> int { x + 49 }
+pub func mod06_f50(x: int) -> int { x + 50 }
+pub func mod06_f51(x: int) -> int { x + 51 }
+pub func mod06_f52(x: int) -> int { x + 52 }
+pub func mod06_f53(x: int) -> int { x + 53 }
+pub func mod06_f54(x: int) -> int { x + 54 }
+pub func mod06_f55(x: int) -> int { x + 55 }
+pub func mod06_f56(x: int) -> int { x + 56 }
+pub func mod06_f57(x: int) -> int { x + 57 }
+pub func mod06_f58(x: int) -> int { x + 58 }
+pub func mod06_f59(x: int) -> int { x + 59 }
+pub func mod06_f60(x: int) -> int { x + 60 }
+pub func mod06_f61(x: int) -> int { x + 61 }
+pub func mod06_f62(x: int) -> int { x + 62 }
+pub func mod06_f63(x: int) -> int { x + 63 }
+pub func mod06_f64(x: int) -> int { x + 64 }
+pub func mod06_f65(x: int) -> int { x + 65 }
+pub func mod06_f66(x: int) -> int { x + 66 }
+pub func mod06_f67(x: int) -> int { x + 67 }
+pub func mod06_f68(x: int) -> int { x + 68 }
+pub func mod06_f69(x: int) -> int { x + 69 }
+pub func mod06_f70(x: int) -> int { x + 70 }
+pub func mod06_f71(x: int) -> int { x + 71 }
+pub func mod06_f72(x: int) -> int { x + 72 }
+pub func mod06_f73(x: int) -> int { x + 73 }
+pub func mod06_f74(x: int) -> int { x + 74 }
+pub func mod06_f75(x: int) -> int { x + 75 }
+pub func mod06_f76(x: int) -> int { x + 76 }
+pub func mod06_f77(x: int) -> int { x + 77 }
+pub func mod06_f78(x: int) -> int { x + 78 }
+pub func mod06_f79(x: int) -> int { x + 79 }
+pub func mod06_f80(x: int) -> int { x + 80 }
+pub func mod06_f81(x: int) -> int { x + 81 }
+pub func mod06_f82(x: int) -> int { x + 82 }
+pub func mod06_f83(x: int) -> int { x + 83 }
+pub func mod06_f84(x: int) -> int { x + 84 }
+pub func mod06_f85(x: int) -> int { x + 85 }
+pub func mod06_f86(x: int) -> int { x + 86 }
+pub func mod06_f87(x: int) -> int { x + 87 }
+pub func mod06_f88(x: int) -> int { x + 88 }
+pub func mod06_f89(x: int) -> int { x + 89 }
+pub func mod06_f90(x: int) -> int { x + 90 }
+pub func mod06_f91(x: int) -> int { x + 91 }
+pub func mod06_f92(x: int) -> int { x + 92 }
+pub func mod06_f93(x: int) -> int { x + 93 }
+pub func mod06_f94(x: int) -> int { x + 94 }
+pub func mod06_f95(x: int) -> int { x + 95 }
+pub func mod06_f96(x: int) -> int { x + 96 }
+pub func mod06_f97(x: int) -> int { x + 97 }
+pub func mod06_f98(x: int) -> int { x + 98 }
+pub func mod06_f99(x: int) -> int { x + 99 }
+pub func mod06_f100(x: int) -> int { x + 100 }
+pub func mod06_f101(x: int) -> int { x + 101 }
+pub func mod06_f102(x: int) -> int { x + 102 }
+pub func mod06_f103(x: int) -> int { x + 103 }
+pub func mod06_f104(x: int) -> int { x + 104 }
+pub func mod06_f105(x: int) -> int { x + 105 }
+pub func mod06_f106(x: int) -> int { x + 106 }
+pub func mod06_f107(x: int) -> int { x + 107 }
+pub func mod06_f108(x: int) -> int { x + 108 }
+pub func mod06_f109(x: int) -> int { x + 109 }
+pub func mod06_f110(x: int) -> int { x + 110 }
+pub func mod06_f111(x: int) -> int { x + 111 }
+pub func mod06_f112(x: int) -> int { x + 112 }
+pub func mod06_f113(x: int) -> int { x + 113 }
+pub func mod06_f114(x: int) -> int { x + 114 }
+pub func mod06_f115(x: int) -> int { x + 115 }
+pub func mod06_f116(x: int) -> int { x + 116 }
+pub func mod06_f117(x: int) -> int { x + 117 }
+pub func mod06_f118(x: int) -> int { x + 118 }
+pub func mod06_f119(x: int) -> int { x + 119 }
+pub func mod06_f120(x: int) -> int { x + 120 }
+pub func mod06_f121(x: int) -> int { x + 121 }
+pub func mod06_f122(x: int) -> int { x + 122 }
+pub func mod06_f123(x: int) -> int { x + 123 }
+pub func mod06_f124(x: int) -> int { x + 124 }
+pub func mod06_f125(x: int) -> int { x + 125 }
+pub func mod06_f126(x: int) -> int { x + 126 }
+pub func mod06_f127(x: int) -> int { x + 127 }
+pub func mod06_f128(x: int) -> int { x + 128 }
+pub func mod06_f129(x: int) -> int { x + 129 }
+pub func mod06_f130(x: int) -> int { x + 130 }
+pub func mod06_f131(x: int) -> int { x + 131 }
+pub func mod06_f132(x: int) -> int { x + 132 }
+pub func mod06_f133(x: int) -> int { x + 133 }
+pub func mod06_f134(x: int) -> int { x + 134 }
+pub func mod06_f135(x: int) -> int { x + 135 }
+pub func mod06_f136(x: int) -> int { x + 136 }
+pub func mod06_f137(x: int) -> int { x + 137 }
+pub func mod06_f138(x: int) -> int { x + 138 }
+pub func mod06_f139(x: int) -> int { x + 139 }
+pub func mod06_f140(x: int) -> int { x + 140 }
+pub func mod06_f141(x: int) -> int { x + 141 }
+pub func mod06_f142(x: int) -> int { x + 142 }
+pub func mod06_f143(x: int) -> int { x + 143 }
+pub func mod06_f144(x: int) -> int { x + 144 }
+pub func mod06_f145(x: int) -> int { x + 145 }
+pub func mod06_f146(x: int) -> int { x + 146 }
+pub func mod06_f147(x: int) -> int { x + 147 }
+pub func mod06_f148(x: int) -> int { x + 148 }
+pub func mod06_f149(x: int) -> int { x + 149 }
+pub func mod06_f150(x: int) -> int { x + 150 }
+pub func mod06_f151(x: int) -> int { x + 151 }
+pub func mod06_f152(x: int) -> int { x + 152 }
+pub func mod06_f153(x: int) -> int { x + 153 }
+pub func mod06_f154(x: int) -> int { x + 154 }
+pub func mod06_f155(x: int) -> int { x + 155 }
+pub func mod06_f156(x: int) -> int { x + 156 }
+pub func mod06_f157(x: int) -> int { x + 157 }
+pub func mod06_f158(x: int) -> int { x + 158 }
+pub func mod06_f159(x: int) -> int { x + 159 }
+pub func mod06_f160(x: int) -> int { x + 160 }
+pub func mod06_f161(x: int) -> int { x + 161 }
+pub func mod06_f162(x: int) -> int { x + 162 }
+pub func mod06_f163(x: int) -> int { x + 163 }
+pub func mod06_f164(x: int) -> int { x + 164 }
+pub func mod06_f165(x: int) -> int { x + 165 }
+pub func mod06_f166(x: int) -> int { x + 166 }
+pub func mod06_f167(x: int) -> int { x + 167 }
+pub func mod06_f168(x: int) -> int { x + 168 }
+pub func mod06_f169(x: int) -> int { x + 169 }
+pub func mod06_f170(x: int) -> int { x + 170 }
+pub func mod06_f171(x: int) -> int { x + 171 }
+pub func mod06_f172(x: int) -> int { x + 172 }
+pub func mod06_f173(x: int) -> int { x + 173 }
+pub func mod06_f174(x: int) -> int { x + 174 }
+pub func mod06_f175(x: int) -> int { x + 175 }
+pub func mod06_f176(x: int) -> int { x + 176 }
+pub func mod06_f177(x: int) -> int { x + 177 }
+pub func mod06_f178(x: int) -> int { x + 178 }
+pub func mod06_f179(x: int) -> int { x + 179 }
+pub func mod06_f180(x: int) -> int { x + 180 }
+pub func mod06_f181(x: int) -> int { x + 181 }
+pub func mod06_f182(x: int) -> int { x + 182 }
+pub func mod06_f183(x: int) -> int { x + 183 }
+pub func mod06_f184(x: int) -> int { x + 184 }
+pub func mod06_f185(x: int) -> int { x + 185 }
+pub func mod06_f186(x: int) -> int { x + 186 }
+pub func mod06_f187(x: int) -> int { x + 187 }
+pub func mod06_f188(x: int) -> int { x + 188 }
+pub func mod06_f189(x: int) -> int { x + 189 }
+pub func mod06_f190(x: int) -> int { x + 190 }
+pub func mod06_f191(x: int) -> int { x + 191 }
+pub func mod06_f192(x: int) -> int { x + 192 }
+pub func mod06_f193(x: int) -> int { x + 193 }
+pub func mod06_f194(x: int) -> int { x + 194 }
+pub func mod06_f195(x: int) -> int { x + 195 }
+pub func mod06_f196(x: int) -> int { x + 196 }
+pub func mod06_f197(x: int) -> int { x + 197 }
+pub func mod06_f198(x: int) -> int { x + 198 }
+pub func mod06_f199(x: int) -> int { x + 199 }
diff --git a/bench/compiler/proj/mod07.zz b/bench/compiler/proj/mod07.zz
new file mode 100644
index 00000000..663f0212
--- /dev/null
+++ b/bench/compiler/proj/mod07.zz
@@ -0,0 +1,200 @@
+pub func mod07_f0(x: int) -> int { x + 0 }
+pub func mod07_f1(x: int) -> int { x + 1 }
+pub func mod07_f2(x: int) -> int { x + 2 }
+pub func mod07_f3(x: int) -> int { x + 3 }
+pub func mod07_f4(x: int) -> int { x + 4 }
+pub func mod07_f5(x: int) -> int { x + 5 }
+pub func mod07_f6(x: int) -> int { x + 6 }
+pub func mod07_f7(x: int) -> int { x + 7 }
+pub func mod07_f8(x: int) -> int { x + 8 }
+pub func mod07_f9(x: int) -> int { x + 9 }
+pub func mod07_f10(x: int) -> int { x + 10 }
+pub func mod07_f11(x: int) -> int { x + 11 }
+pub func mod07_f12(x: int) -> int { x + 12 }
+pub func mod07_f13(x: int) -> int { x + 13 }
+pub func mod07_f14(x: int) -> int { x + 14 }
+pub func mod07_f15(x: int) -> int { x + 15 }
+pub func mod07_f16(x: int) -> int { x + 16 }
+pub func mod07_f17(x: int) -> int { x + 17 }
+pub func mod07_f18(x: int) -> int { x + 18 }
+pub func mod07_f19(x: int) -> int { x + 19 }
+pub func mod07_f20(x: int) -> int { x + 20 }
+pub func mod07_f21(x: int) -> int { x + 21 }
+pub func mod07_f22(x: int) -> int { x + 22 }
+pub func mod07_f23(x: int) -> int { x + 23 }
+pub func mod07_f24(x: int) -> int { x + 24 }
+pub func mod07_f25(x: int) -> int { x + 25 }
+pub func mod07_f26(x: int) -> int { x + 26 }
+pub func mod07_f27(x: int) -> int { x + 27 }
+pub func mod07_f28(x: int) -> int { x + 28 }
+pub func mod07_f29(x: int) -> int { x + 29 }
+pub func mod07_f30(x: int) -> int { x + 30 }
+pub func mod07_f31(x: int) -> int { x + 31 }
+pub func mod07_f32(x: int) -> int { x + 32 }
+pub func mod07_f33(x: int) -> int { x + 33 }
+pub func mod07_f34(x: int) -> int { x + 34 }
+pub func mod07_f35(x: int) -> int { x + 35 }
+pub func mod07_f36(x: int) -> int { x + 36 }
+pub func mod07_f37(x: int) -> int { x + 37 }
+pub func mod07_f38(x: int) -> int { x + 38 }
+pub func mod07_f39(x: int) -> int { x + 39 }
+pub func mod07_f40(x: int) -> int { x + 40 }
+pub func mod07_f41(x: int) -> int { x + 41 }
+pub func mod07_f42(x: int) -> int { x + 42 }
+pub func mod07_f43(x: int) -> int { x + 43 }
+pub func mod07_f44(x: int) -> int { x + 44 }
+pub func mod07_f45(x: int) -> int { x + 45 }
+pub func mod07_f46(x: int) -> int { x + 46 }
+pub func mod07_f47(x: int) -> int { x + 47 }
+pub func mod07_f48(x: int) -> int { x + 48 }
+pub func mod07_f49(x: int) -> int { x + 49 }
+pub func mod07_f50(x: int) -> int { x + 50 }
+pub func mod07_f51(x: int) -> int { x + 51 }
+pub func mod07_f52(x: int) -> int { x + 52 }
+pub func mod07_f53(x: int) -> int { x + 53 }
+pub func mod07_f54(x: int) -> int { x + 54 }
+pub func mod07_f55(x: int) -> int { x + 55 }
+pub func mod07_f56(x: int) -> int { x + 56 }
+pub func mod07_f57(x: int) -> int { x + 57 }
+pub func mod07_f58(x: int) -> int { x + 58 }
+pub func mod07_f59(x: int) -> int { x + 59 }
+pub func mod07_f60(x: int) -> int { x + 60 }
+pub func mod07_f61(x: int) -> int { x + 61 }
+pub func mod07_f62(x: int) -> int { x + 62 }
+pub func mod07_f63(x: int) -> int { x + 63 }
+pub func mod07_f64(x: int) -> int { x + 64 }
+pub func mod07_f65(x: int) -> int { x + 65 }
+pub func mod07_f66(x: int) -> int { x + 66 }
+pub func mod07_f67(x: int) -> int { x + 67 }
+pub func mod07_f68(x: int) -> int { x + 68 }
+pub func mod07_f69(x: int) -> int { x + 69 }
+pub func mod07_f70(x: int) -> int { x + 70 }
+pub func mod07_f71(x: int) -> int { x + 71 }
+pub func mod07_f72(x: int) -> int { x + 72 }
+pub func mod07_f73(x: int) -> int { x + 73 }
+pub func mod07_f74(x: int) -> int { x + 74 }
+pub func mod07_f75(x: int) -> int { x + 75 }
+pub func mod07_f76(x: int) -> int { x + 76 }
+pub func mod07_f77(x: int) -> int { x + 77 }
+pub func mod07_f78(x: int) -> int { x + 78 }
+pub func mod07_f79(x: int) -> int { x + 79 }
+pub func mod07_f80(x: int) -> int { x + 80 }
+pub func mod07_f81(x: int) -> int { x + 81 }
+pub func mod07_f82(x: int) -> int { x + 82 }
+pub func mod07_f83(x: int) -> int { x + 83 }
+pub func mod07_f84(x: int) -> int { x + 84 }
+pub func mod07_f85(x: int) -> int { x + 85 }
+pub func mod07_f86(x: int) -> int { x + 86 }
+pub func mod07_f87(x: int) -> int { x + 87 }
+pub func mod07_f88(x: int) -> int { x + 88 }
+pub func mod07_f89(x: int) -> int { x + 89 }
+pub func mod07_f90(x: int) -> int { x + 90 }
+pub func mod07_f91(x: int) -> int { x + 91 }
+pub func mod07_f92(x: int) -> int { x + 92 }
+pub func mod07_f93(x: int) -> int { x + 93 }
+pub func mod07_f94(x: int) -> int { x + 94 }
+pub func mod07_f95(x: int) -> int { x + 95 }
+pub func mod07_f96(x: int) -> int { x + 96 }
+pub func mod07_f97(x: int) -> int { x + 97 }
+pub func mod07_f98(x: int) -> int { x + 98 }
+pub func mod07_f99(x: int) -> int { x + 99 }
+pub func mod07_f100(x: int) -> int { x + 100 }
+pub func mod07_f101(x: int) -> int { x + 101 }
+pub func mod07_f102(x: int) -> int { x + 102 }
+pub func mod07_f103(x: int) -> int { x + 103 }
+pub func mod07_f104(x: int) -> int { x + 104 }
+pub func mod07_f105(x: int) -> int { x + 105 }
+pub func mod07_f106(x: int) -> int { x + 106 }
+pub func mod07_f107(x: int) -> int { x + 107 }
+pub func mod07_f108(x: int) -> int { x + 108 }
+pub func mod07_f109(x: int) -> int { x + 109 }
+pub func mod07_f110(x: int) -> int { x + 110 }
+pub func mod07_f111(x: int) -> int { x + 111 }
+pub func mod07_f112(x: int) -> int { x + 112 }
+pub func mod07_f113(x: int) -> int { x + 113 }
+pub func mod07_f114(x: int) -> int { x + 114 }
+pub func mod07_f115(x: int) -> int { x + 115 }
+pub func mod07_f116(x: int) -> int { x + 116 }
+pub func mod07_f117(x: int) -> int { x + 117 }
+pub func mod07_f118(x: int) -> int { x + 118 }
+pub func mod07_f119(x: int) -> int { x + 119 }
+pub func mod07_f120(x: int) -> int { x + 120 }
+pub func mod07_f121(x: int) -> int { x + 121 }
+pub func mod07_f122(x: int) -> int { x + 122 }
+pub func mod07_f123(x: int) -> int { x + 123 }
+pub func mod07_f124(x: int) -> int { x + 124 }
+pub func mod07_f125(x: int) -> int { x + 125 }
+pub func mod07_f126(x: int) -> int { x + 126 }
+pub func mod07_f127(x: int) -> int { x + 127 }
+pub func mod07_f128(x: int) -> int { x + 128 }
+pub func mod07_f129(x: int) -> int { x + 129 }
+pub func mod07_f130(x: int) -> int { x + 130 }
+pub func mod07_f131(x: int) -> int { x + 131 }
+pub func mod07_f132(x: int) -> int { x + 132 }
+pub func mod07_f133(x: int) -> int { x + 133 }
+pub func mod07_f134(x: int) -> int { x + 134 }
+pub func mod07_f135(x: int) -> int { x + 135 }
+pub func mod07_f136(x: int) -> int { x + 136 }
+pub func mod07_f137(x: int) -> int { x + 137 }
+pub func mod07_f138(x: int) -> int { x + 138 }
+pub func mod07_f139(x: int) -> int { x + 139 }
+pub func mod07_f140(x: int) -> int { x + 140 }
+pub func mod07_f141(x: int) -> int { x + 141 }
+pub func mod07_f142(x: int) -> int { x + 142 }
+pub func mod07_f143(x: int) -> int { x + 143 }
+pub func mod07_f144(x: int) -> int { x + 144 }
+pub func mod07_f145(x: int) -> int { x + 145 }
+pub func mod07_f146(x: int) -> int { x + 146 }
+pub func mod07_f147(x: int) -> int { x + 147 }
+pub func mod07_f148(x: int) -> int { x + 148 }
+pub func mod07_f149(x: int) -> int { x + 149 }
+pub func mod07_f150(x: int) -> int { x + 150 }
+pub func mod07_f151(x: int) -> int { x + 151 }
+pub func mod07_f152(x: int) -> int { x + 152 }
+pub func mod07_f153(x: int) -> int { x + 153 }
+pub func mod07_f154(x: int) -> int { x + 154 }
+pub func mod07_f155(x: int) -> int { x + 155 }
+pub func mod07_f156(x: int) -> int { x + 156 }
+pub func mod07_f157(x: int) -> int { x + 157 }
+pub func mod07_f158(x: int) -> int { x + 158 }
+pub func mod07_f159(x: int) -> int { x + 159 }
+pub func mod07_f160(x: int) -> int { x + 160 }
+pub func mod07_f161(x: int) -> int { x + 161 }
+pub func mod07_f162(x: int) -> int { x + 162 }
+pub func mod07_f163(x: int) -> int { x + 163 }
+pub func mod07_f164(x: int) -> int { x + 164 }
+pub func mod07_f165(x: int) -> int { x + 165 }
+pub func mod07_f166(x: int) -> int { x + 166 }
+pub func mod07_f167(x: int) -> int { x + 167 }
+pub func mod07_f168(x: int) -> int { x + 168 }
+pub func mod07_f169(x: int) -> int { x + 169 }
+pub func mod07_f170(x: int) -> int { x + 170 }
+pub func mod07_f171(x: int) -> int { x + 171 }
+pub func mod07_f172(x: int) -> int { x + 172 }
+pub func mod07_f173(x: int) -> int { x + 173 }
+pub func mod07_f174(x: int) -> int { x + 174 }
+pub func mod07_f175(x: int) -> int { x + 175 }
+pub func mod07_f176(x: int) -> int { x + 176 }
+pub func mod07_f177(x: int) -> int { x + 177 }
+pub func mod07_f178(x: int) -> int { x + 178 }
+pub func mod07_f179(x: int) -> int { x + 179 }
+pub func mod07_f180(x: int) -> int { x + 180 }
+pub func mod07_f181(x: int) -> int { x + 181 }
+pub func mod07_f182(x: int) -> int { x + 182 }
+pub func mod07_f183(x: int) -> int { x + 183 }
+pub func mod07_f184(x: int) -> int { x + 184 }
+pub func mod07_f185(x: int) -> int { x + 185 }
+pub func mod07_f186(x: int) -> int { x + 186 }
+pub func mod07_f187(x: int) -> int { x + 187 }
+pub func mod07_f188(x: int) -> int { x + 188 }
+pub func mod07_f189(x: int) -> int { x + 189 }
+pub func mod07_f190(x: int) -> int { x + 190 }
+pub func mod07_f191(x: int) -> int { x + 191 }
+pub func mod07_f192(x: int) -> int { x + 192 }
+pub func mod07_f193(x: int) -> int { x + 193 }
+pub func mod07_f194(x: int) -> int { x + 194 }
+pub func mod07_f195(x: int) -> int { x + 195 }
+pub func mod07_f196(x: int) -> int { x + 196 }
+pub func mod07_f197(x: int) -> int { x + 197 }
+pub func mod07_f198(x: int) -> int { x + 198 }
+pub func mod07_f199(x: int) -> int { x + 199 }
diff --git a/bench/compiler/proj/mod08.zz b/bench/compiler/proj/mod08.zz
new file mode 100644
index 00000000..e66b1688
--- /dev/null
+++ b/bench/compiler/proj/mod08.zz
@@ -0,0 +1,200 @@
+pub func mod08_f0(x: int) -> int { x + 0 }
+pub func mod08_f1(x: int) -> int { x + 1 }
+pub func mod08_f2(x: int) -> int { x + 2 }
+pub func mod08_f3(x: int) -> int { x + 3 }
+pub func mod08_f4(x: int) -> int { x + 4 }
+pub func mod08_f5(x: int) -> int { x + 5 }
+pub func mod08_f6(x: int) -> int { x + 6 }
+pub func mod08_f7(x: int) -> int { x + 7 }
+pub func mod08_f8(x: int) -> int { x + 8 }
+pub func mod08_f9(x: int) -> int { x + 9 }
+pub func mod08_f10(x: int) -> int { x + 10 }
+pub func mod08_f11(x: int) -> int { x + 11 }
+pub func mod08_f12(x: int) -> int { x + 12 }
+pub func mod08_f13(x: int) -> int { x + 13 }
+pub func mod08_f14(x: int) -> int { x + 14 }
+pub func mod08_f15(x: int) -> int { x + 15 }
+pub func mod08_f16(x: int) -> int { x + 16 }
+pub func mod08_f17(x: int) -> int { x + 17 }
+pub func mod08_f18(x: int) -> int { x + 18 }
+pub func mod08_f19(x: int) -> int { x + 19 }
+pub func mod08_f20(x: int) -> int { x + 20 }
+pub func mod08_f21(x: int) -> int { x + 21 }
+pub func mod08_f22(x: int) -> int { x + 22 }
+pub func mod08_f23(x: int) -> int { x + 23 }
+pub func mod08_f24(x: int) -> int { x + 24 }
+pub func mod08_f25(x: int) -> int { x + 25 }
+pub func mod08_f26(x: int) -> int { x + 26 }
+pub func mod08_f27(x: int) -> int { x + 27 }
+pub func mod08_f28(x: int) -> int { x + 28 }
+pub func mod08_f29(x: int) -> int { x + 29 }
+pub func mod08_f30(x: int) -> int { x + 30 }
+pub func mod08_f31(x: int) -> int { x + 31 }
+pub func mod08_f32(x: int) -> int { x + 32 }
+pub func mod08_f33(x: int) -> int { x + 33 }
+pub func mod08_f34(x: int) -> int { x + 34 }
+pub func mod08_f35(x: int) -> int { x + 35 }
+pub func mod08_f36(x: int) -> int { x + 36 }
+pub func mod08_f37(x: int) -> int { x + 37 }
+pub func mod08_f38(x: int) -> int { x + 38 }
+pub func mod08_f39(x: int) -> int { x + 39 }
+pub func mod08_f40(x: int) -> int { x + 40 }
+pub func mod08_f41(x: int) -> int { x + 41 }
+pub func mod08_f42(x: int) -> int { x + 42 }
+pub func mod08_f43(x: int) -> int { x + 43 }
+pub func mod08_f44(x: int) -> int { x + 44 }
+pub func mod08_f45(x: int) -> int { x + 45 }
+pub func mod08_f46(x: int) -> int { x + 46 }
+pub func mod08_f47(x: int) -> int { x + 47 }
+pub func mod08_f48(x: int) -> int { x + 48 }
+pub func mod08_f49(x: int) -> int { x + 49 }
+pub func mod08_f50(x: int) -> int { x + 50 }
+pub func mod08_f51(x: int) -> int { x + 51 }
+pub func mod08_f52(x: int) -> int { x + 52 }
+pub func mod08_f53(x: int) -> int { x + 53 }
+pub func mod08_f54(x: int) -> int { x + 54 }
+pub func mod08_f55(x: int) -> int { x + 55 }
+pub func mod08_f56(x: int) -> int { x + 56 }
+pub func mod08_f57(x: int) -> int { x + 57 }
+pub func mod08_f58(x: int) -> int { x + 58 }
+pub func mod08_f59(x: int) -> int { x + 59 }
+pub func mod08_f60(x: int) -> int { x + 60 }
+pub func mod08_f61(x: int) -> int { x + 61 }
+pub func mod08_f62(x: int) -> int { x + 62 }
+pub func mod08_f63(x: int) -> int { x + 63 }
+pub func mod08_f64(x: int) -> int { x + 64 }
+pub func mod08_f65(x: int) -> int { x + 65 }
+pub func mod08_f66(x: int) -> int { x + 66 }
+pub func mod08_f67(x: int) -> int { x + 67 }
+pub func mod08_f68(x: int) -> int { x + 68 }
+pub func mod08_f69(x: int) -> int { x + 69 }
+pub func mod08_f70(x: int) -> int { x + 70 }
+pub func mod08_f71(x: int) -> int { x + 71 }
+pub func mod08_f72(x: int) -> int { x + 72 }
+pub func mod08_f73(x: int) -> int { x + 73 }
+pub func mod08_f74(x: int) -> int { x + 74 }
+pub func mod08_f75(x: int) -> int { x + 75 }
+pub func mod08_f76(x: int) -> int { x + 76 }
+pub func mod08_f77(x: int) -> int { x + 77 }
+pub func mod08_f78(x: int) -> int { x + 78 }
+pub func mod08_f79(x: int) -> int { x + 79 }
+pub func mod08_f80(x: int) -> int { x + 80 }
+pub func mod08_f81(x: int) -> int { x + 81 }
+pub func mod08_f82(x: int) -> int { x + 82 }
+pub func mod08_f83(x: int) -> int { x + 83 }
+pub func mod08_f84(x: int) -> int { x + 84 }
+pub func mod08_f85(x: int) -> int { x + 85 }
+pub func mod08_f86(x: int) -> int { x + 86 }
+pub func mod08_f87(x: int) -> int { x + 87 }
+pub func mod08_f88(x: int) -> int { x + 88 }
+pub func mod08_f89(x: int) -> int { x + 89 }
+pub func mod08_f90(x: int) -> int { x + 90 }
+pub func mod08_f91(x: int) -> int { x + 91 }
+pub func mod08_f92(x: int) -> int { x + 92 }
+pub func mod08_f93(x: int) -> int { x + 93 }
+pub func mod08_f94(x: int) -> int { x + 94 }
+pub func mod08_f95(x: int) -> int { x + 95 }
+pub func mod08_f96(x: int) -> int { x + 96 }
+pub func mod08_f97(x: int) -> int { x + 97 }
+pub func mod08_f98(x: int) -> int { x + 98 }
+pub func mod08_f99(x: int) -> int { x + 99 }
+pub func mod08_f100(x: int) -> int { x + 100 }
+pub func mod08_f101(x: int) -> int { x + 101 }
+pub func mod08_f102(x: int) -> int { x + 102 }
+pub func mod08_f103(x: int) -> int { x + 103 }
+pub func mod08_f104(x: int) -> int { x + 104 }
+pub func mod08_f105(x: int) -> int { x + 105 }
+pub func mod08_f106(x: int) -> int { x + 106 }
+pub func mod08_f107(x: int) -> int { x + 107 }
+pub func mod08_f108(x: int) -> int { x + 108 }
+pub func mod08_f109(x: int) -> int { x + 109 }
+pub func mod08_f110(x: int) -> int { x + 110 }
+pub func mod08_f111(x: int) -> int { x + 111 }
+pub func mod08_f112(x: int) -> int { x + 112 }
+pub func mod08_f113(x: int) -> int { x + 113 }
+pub func mod08_f114(x: int) -> int { x + 114 }
+pub func mod08_f115(x: int) -> int { x + 115 }
+pub func mod08_f116(x: int) -> int { x + 116 }
+pub func mod08_f117(x: int) -> int { x + 117 }
+pub func mod08_f118(x: int) -> int { x + 118 }
+pub func mod08_f119(x: int) -> int { x + 119 }
+pub func mod08_f120(x: int) -> int { x + 120 }
+pub func mod08_f121(x: int) -> int { x + 121 }
+pub func mod08_f122(x: int) -> int { x + 122 }
+pub func mod08_f123(x: int) -> int { x + 123 }
+pub func mod08_f124(x: int) -> int { x + 124 }
+pub func mod08_f125(x: int) -> int { x + 125 }
+pub func mod08_f126(x: int) -> int { x + 126 }
+pub func mod08_f127(x: int) -> int { x + 127 }
+pub func mod08_f128(x: int) -> int { x + 128 }
+pub func mod08_f129(x: int) -> int { x + 129 }
+pub func mod08_f130(x: int) -> int { x + 130 }
+pub func mod08_f131(x: int) -> int { x + 131 }
+pub func mod08_f132(x: int) -> int { x + 132 }
+pub func mod08_f133(x: int) -> int { x + 133 }
+pub func mod08_f134(x: int) -> int { x + 134 }
+pub func mod08_f135(x: int) -> int { x + 135 }
+pub func mod08_f136(x: int) -> int { x + 136 }
+pub func mod08_f137(x: int) -> int { x + 137 }
+pub func mod08_f138(x: int) -> int { x + 138 }
+pub func mod08_f139(x: int) -> int { x + 139 }
+pub func mod08_f140(x: int) -> int { x + 140 }
+pub func mod08_f141(x: int) -> int { x + 141 }
+pub func mod08_f142(x: int) -> int { x + 142 }
+pub func mod08_f143(x: int) -> int { x + 143 }
+pub func mod08_f144(x: int) -> int { x + 144 }
+pub func mod08_f145(x: int) -> int { x + 145 }
+pub func mod08_f146(x: int) -> int { x + 146 }
+pub func mod08_f147(x: int) -> int { x + 147 }
+pub func mod08_f148(x: int) -> int { x + 148 }
+pub func mod08_f149(x: int) -> int { x + 149 }
+pub func mod08_f150(x: int) -> int { x + 150 }
+pub func mod08_f151(x: int) -> int { x + 151 }
+pub func mod08_f152(x: int) -> int { x + 152 }
+pub func mod08_f153(x: int) -> int { x + 153 }
+pub func mod08_f154(x: int) -> int { x + 154 }
+pub func mod08_f155(x: int) -> int { x + 155 }
+pub func mod08_f156(x: int) -> int { x + 156 }
+pub func mod08_f157(x: int) -> int { x + 157 }
+pub func mod08_f158(x: int) -> int { x + 158 }
+pub func mod08_f159(x: int) -> int { x + 159 }
+pub func mod08_f160(x: int) -> int { x + 160 }
+pub func mod08_f161(x: int) -> int { x + 161 }
+pub func mod08_f162(x: int) -> int { x + 162 }
+pub func mod08_f163(x: int) -> int { x + 163 }
+pub func mod08_f164(x: int) -> int { x + 164 }
+pub func mod08_f165(x: int) -> int { x + 165 }
+pub func mod08_f166(x: int) -> int { x + 166 }
+pub func mod08_f167(x: int) -> int { x + 167 }
+pub func mod08_f168(x: int) -> int { x + 168 }
+pub func mod08_f169(x: int) -> int { x + 169 }
+pub func mod08_f170(x: int) -> int { x + 170 }
+pub func mod08_f171(x: int) -> int { x + 171 }
+pub func mod08_f172(x: int) -> int { x + 172 }
+pub func mod08_f173(x: int) -> int { x + 173 }
+pub func mod08_f174(x: int) -> int { x + 174 }
+pub func mod08_f175(x: int) -> int { x + 175 }
+pub func mod08_f176(x: int) -> int { x + 176 }
+pub func mod08_f177(x: int) -> int { x + 177 }
+pub func mod08_f178(x: int) -> int { x + 178 }
+pub func mod08_f179(x: int) -> int { x + 179 }
+pub func mod08_f180(x: int) -> int { x + 180 }
+pub func mod08_f181(x: int) -> int { x + 181 }
+pub func mod08_f182(x: int) -> int { x + 182 }
+pub func mod08_f183(x: int) -> int { x + 183 }
+pub func mod08_f184(x: int) -> int { x + 184 }
+pub func mod08_f185(x: int) -> int { x + 185 }
+pub func mod08_f186(x: int) -> int { x + 186 }
+pub func mod08_f187(x: int) -> int { x + 187 }
+pub func mod08_f188(x: int) -> int { x + 188 }
+pub func mod08_f189(x: int) -> int { x + 189 }
+pub func mod08_f190(x: int) -> int { x + 190 }
+pub func mod08_f191(x: int) -> int { x + 191 }
+pub func mod08_f192(x: int) -> int { x + 192 }
+pub func mod08_f193(x: int) -> int { x + 193 }
+pub func mod08_f194(x: int) -> int { x + 194 }
+pub func mod08_f195(x: int) -> int { x + 195 }
+pub func mod08_f196(x: int) -> int { x + 196 }
+pub func mod08_f197(x: int) -> int { x + 197 }
+pub func mod08_f198(x: int) -> int { x + 198 }
+pub func mod08_f199(x: int) -> int { x + 199 }
diff --git a/bench/compiler/proj/mod09.zz b/bench/compiler/proj/mod09.zz
new file mode 100644
index 00000000..25645582
--- /dev/null
+++ b/bench/compiler/proj/mod09.zz
@@ -0,0 +1,200 @@
+pub func mod09_f0(x: int) -> int { x + 0 }
+pub func mod09_f1(x: int) -> int { x + 1 }
+pub func mod09_f2(x: int) -> int { x + 2 }
+pub func mod09_f3(x: int) -> int { x + 3 }
+pub func mod09_f4(x: int) -> int { x + 4 }
+pub func mod09_f5(x: int) -> int { x + 5 }
+pub func mod09_f6(x: int) -> int { x + 6 }
+pub func mod09_f7(x: int) -> int { x + 7 }
+pub func mod09_f8(x: int) -> int { x + 8 }
+pub func mod09_f9(x: int) -> int { x + 9 }
+pub func mod09_f10(x: int) -> int { x + 10 }
+pub func mod09_f11(x: int) -> int { x + 11 }
+pub func mod09_f12(x: int) -> int { x + 12 }
+pub func mod09_f13(x: int) -> int { x + 13 }
+pub func mod09_f14(x: int) -> int { x + 14 }
+pub func mod09_f15(x: int) -> int { x + 15 }
+pub func mod09_f16(x: int) -> int { x + 16 }
+pub func mod09_f17(x: int) -> int { x + 17 }
+pub func mod09_f18(x: int) -> int { x + 18 }
+pub func mod09_f19(x: int) -> int { x + 19 }
+pub func mod09_f20(x: int) -> int { x + 20 }
+pub func mod09_f21(x: int) -> int { x + 21 }
+pub func mod09_f22(x: int) -> int { x + 22 }
+pub func mod09_f23(x: int) -> int { x + 23 }
+pub func mod09_f24(x: int) -> int { x + 24 }
+pub func mod09_f25(x: int) -> int { x + 25 }
+pub func mod09_f26(x: int) -> int { x + 26 }
+pub func mod09_f27(x: int) -> int { x + 27 }
+pub func mod09_f28(x: int) -> int { x + 28 }
+pub func mod09_f29(x: int) -> int { x + 29 }
+pub func mod09_f30(x: int) -> int { x + 30 }
+pub func mod09_f31(x: int) -> int { x + 31 }
+pub func mod09_f32(x: int) -> int { x + 32 }
+pub func mod09_f33(x: int) -> int { x + 33 }
+pub func mod09_f34(x: int) -> int { x + 34 }
+pub func mod09_f35(x: int) -> int { x + 35 }
+pub func mod09_f36(x: int) -> int { x + 36 }
+pub func mod09_f37(x: int) -> int { x + 37 }
+pub func mod09_f38(x: int) -> int { x + 38 }
+pub func mod09_f39(x: int) -> int { x + 39 }
+pub func mod09_f40(x: int) -> int { x + 40 }
+pub func mod09_f41(x: int) -> int { x + 41 }
+pub func mod09_f42(x: int) -> int { x + 42 }
+pub func mod09_f43(x: int) -> int { x + 43 }
+pub func mod09_f44(x: int) -> int { x + 44 }
+pub func mod09_f45(x: int) -> int { x + 45 }
+pub func mod09_f46(x: int) -> int { x + 46 }
+pub func mod09_f47(x: int) -> int { x + 47 }
+pub func mod09_f48(x: int) -> int { x + 48 }
+pub func mod09_f49(x: int) -> int { x + 49 }
+pub func mod09_f50(x: int) -> int { x + 50 }
+pub func mod09_f51(x: int) -> int { x + 51 }
+pub func mod09_f52(x: int) -> int { x + 52 }
+pub func mod09_f53(x: int) -> int { x + 53 }
+pub func mod09_f54(x: int) -> int { x + 54 }
+pub func mod09_f55(x: int) -> int { x + 55 }
+pub func mod09_f56(x: int) -> int { x + 56 }
+pub func mod09_f57(x: int) -> int { x + 57 }
+pub func mod09_f58(x: int) -> int { x + 58 }
+pub func mod09_f59(x: int) -> int { x + 59 }
+pub func mod09_f60(x: int) -> int { x + 60 }
+pub func mod09_f61(x: int) -> int { x + 61 }
+pub func mod09_f62(x: int) -> int { x + 62 }
+pub func mod09_f63(x: int) -> int { x + 63 }
+pub func mod09_f64(x: int) -> int { x + 64 }
+pub func mod09_f65(x: int) -> int { x + 65 }
+pub func mod09_f66(x: int) -> int { x + 66 }
+pub func mod09_f67(x: int) -> int { x + 67 }
+pub func mod09_f68(x: int) -> int { x + 68 }
+pub func mod09_f69(x: int) -> int { x + 69 }
+pub func mod09_f70(x: int) -> int { x + 70 }
+pub func mod09_f71(x: int) -> int { x + 71 }
+pub func mod09_f72(x: int) -> int { x + 72 }
+pub func mod09_f73(x: int) -> int { x + 73 }
+pub func mod09_f74(x: int) -> int { x + 74 }
+pub func mod09_f75(x: int) -> int { x + 75 }
+pub func mod09_f76(x: int) -> int { x + 76 }
+pub func mod09_f77(x: int) -> int { x + 77 }
+pub func mod09_f78(x: int) -> int { x + 78 }
+pub func mod09_f79(x: int) -> int { x + 79 }
+pub func mod09_f80(x: int) -> int { x + 80 }
+pub func mod09_f81(x: int) -> int { x + 81 }
+pub func mod09_f82(x: int) -> int { x + 82 }
+pub func mod09_f83(x: int) -> int { x + 83 }
+pub func mod09_f84(x: int) -> int { x + 84 }
+pub func mod09_f85(x: int) -> int { x + 85 }
+pub func mod09_f86(x: int) -> int { x + 86 }
+pub func mod09_f87(x: int) -> int { x + 87 }
+pub func mod09_f88(x: int) -> int { x + 88 }
+pub func mod09_f89(x: int) -> int { x + 89 }
+pub func mod09_f90(x: int) -> int { x + 90 }
+pub func mod09_f91(x: int) -> int { x + 91 }
+pub func mod09_f92(x: int) -> int { x + 92 }
+pub func mod09_f93(x: int) -> int { x + 93 }
+pub func mod09_f94(x: int) -> int { x + 94 }
+pub func mod09_f95(x: int) -> int { x + 95 }
+pub func mod09_f96(x: int) -> int { x + 96 }
+pub func mod09_f97(x: int) -> int { x + 97 }
+pub func mod09_f98(x: int) -> int { x + 98 }
+pub func mod09_f99(x: int) -> int { x + 99 }
+pub func mod09_f100(x: int) -> int { x + 100 }
+pub func mod09_f101(x: int) -> int { x + 101 }
+pub func mod09_f102(x: int) -> int { x + 102 }
+pub func mod09_f103(x: int) -> int { x + 103 }
+pub func mod09_f104(x: int) -> int { x + 104 }
+pub func mod09_f105(x: int) -> int { x + 105 }
+pub func mod09_f106(x: int) -> int { x + 106 }
+pub func mod09_f107(x: int) -> int { x + 107 }
+pub func mod09_f108(x: int) -> int { x + 108 }
+pub func mod09_f109(x: int) -> int { x + 109 }
+pub func mod09_f110(x: int) -> int { x + 110 }
+pub func mod09_f111(x: int) -> int { x + 111 }
+pub func mod09_f112(x: int) -> int { x + 112 }
+pub func mod09_f113(x: int) -> int { x + 113 }
+pub func mod09_f114(x: int) -> int { x + 114 }
+pub func mod09_f115(x: int) -> int { x + 115 }
+pub func mod09_f116(x: int) -> int { x + 116 }
+pub func mod09_f117(x: int) -> int { x + 117 }
+pub func mod09_f118(x: int) -> int { x + 118 }
+pub func mod09_f119(x: int) -> int { x + 119 }
+pub func mod09_f120(x: int) -> int { x + 120 }
+pub func mod09_f121(x: int) -> int { x + 121 }
+pub func mod09_f122(x: int) -> int { x + 122 }
+pub func mod09_f123(x: int) -> int { x + 123 }
+pub func mod09_f124(x: int) -> int { x + 124 }
+pub func mod09_f125(x: int) -> int { x + 125 }
+pub func mod09_f126(x: int) -> int { x + 126 }
+pub func mod09_f127(x: int) -> int { x + 127 }
+pub func mod09_f128(x: int) -> int { x + 128 }
+pub func mod09_f129(x: int) -> int { x + 129 }
+pub func mod09_f130(x: int) -> int { x + 130 }
+pub func mod09_f131(x: int) -> int { x + 131 }
+pub func mod09_f132(x: int) -> int { x + 132 }
+pub func mod09_f133(x: int) -> int { x + 133 }
+pub func mod09_f134(x: int) -> int { x + 134 }
+pub func mod09_f135(x: int) -> int { x + 135 }
+pub func mod09_f136(x: int) -> int { x + 136 }
+pub func mod09_f137(x: int) -> int { x + 137 }
+pub func mod09_f138(x: int) -> int { x + 138 }
+pub func mod09_f139(x: int) -> int { x + 139 }
+pub func mod09_f140(x: int) -> int { x + 140 }
+pub func mod09_f141(x: int) -> int { x + 141 }
+pub func mod09_f142(x: int) -> int { x + 142 }
+pub func mod09_f143(x: int) -> int { x + 143 }
+pub func mod09_f144(x: int) -> int { x + 144 }
+pub func mod09_f145(x: int) -> int { x + 145 }
+pub func mod09_f146(x: int) -> int { x + 146 }
+pub func mod09_f147(x: int) -> int { x + 147 }
+pub func mod09_f148(x: int) -> int { x + 148 }
+pub func mod09_f149(x: int) -> int { x + 149 }
+pub func mod09_f150(x: int) -> int { x + 150 }
+pub func mod09_f151(x: int) -> int { x + 151 }
+pub func mod09_f152(x: int) -> int { x + 152 }
+pub func mod09_f153(x: int) -> int { x + 153 }
+pub func mod09_f154(x: int) -> int { x + 154 }
+pub func mod09_f155(x: int) -> int { x + 155 }
+pub func mod09_f156(x: int) -> int { x + 156 }
+pub func mod09_f157(x: int) -> int { x + 157 }
+pub func mod09_f158(x: int) -> int { x + 158 }
+pub func mod09_f159(x: int) -> int { x + 159 }
+pub func mod09_f160(x: int) -> int { x + 160 }
+pub func mod09_f161(x: int) -> int { x + 161 }
+pub func mod09_f162(x: int) -> int { x + 162 }
+pub func mod09_f163(x: int) -> int { x + 163 }
+pub func mod09_f164(x: int) -> int { x + 164 }
+pub func mod09_f165(x: int) -> int { x + 165 }
+pub func mod09_f166(x: int) -> int { x + 166 }
+pub func mod09_f167(x: int) -> int { x + 167 }
+pub func mod09_f168(x: int) -> int { x + 168 }
+pub func mod09_f169(x: int) -> int { x + 169 }
+pub func mod09_f170(x: int) -> int { x + 170 }
+pub func mod09_f171(x: int) -> int { x + 171 }
+pub func mod09_f172(x: int) -> int { x + 172 }
+pub func mod09_f173(x: int) -> int { x + 173 }
+pub func mod09_f174(x: int) -> int { x + 174 }
+pub func mod09_f175(x: int) -> int { x + 175 }
+pub func mod09_f176(x: int) -> int { x + 176 }
+pub func mod09_f177(x: int) -> int { x + 177 }
+pub func mod09_f178(x: int) -> int { x + 178 }
+pub func mod09_f179(x: int) -> int { x + 179 }
+pub func mod09_f180(x: int) -> int { x + 180 }
+pub func mod09_f181(x: int) -> int { x + 181 }
+pub func mod09_f182(x: int) -> int { x + 182 }
+pub func mod09_f183(x: int) -> int { x + 183 }
+pub func mod09_f184(x: int) -> int { x + 184 }
+pub func mod09_f185(x: int) -> int { x + 185 }
+pub func mod09_f186(x: int) -> int { x + 186 }
+pub func mod09_f187(x: int) -> int { x + 187 }
+pub func mod09_f188(x: int) -> int { x + 188 }
+pub func mod09_f189(x: int) -> int { x + 189 }
+pub func mod09_f190(x: int) -> int { x + 190 }
+pub func mod09_f191(x: int) -> int { x + 191 }
+pub func mod09_f192(x: int) -> int { x + 192 }
+pub func mod09_f193(x: int) -> int { x + 193 }
+pub func mod09_f194(x: int) -> int { x + 194 }
+pub func mod09_f195(x: int) -> int { x + 195 }
+pub func mod09_f196(x: int) -> int { x + 196 }
+pub func mod09_f197(x: int) -> int { x + 197 }
+pub func mod09_f198(x: int) -> int { x + 198 }
+pub func mod09_f199(x: int) -> int { x + 199 }
diff --git a/bench/compiler/proj/mod10.zz b/bench/compiler/proj/mod10.zz
new file mode 100644
index 00000000..039d2c57
--- /dev/null
+++ b/bench/compiler/proj/mod10.zz
@@ -0,0 +1,200 @@
+pub func mod10_f0(x: int) -> int { x + 0 }
+pub func mod10_f1(x: int) -> int { x + 1 }
+pub func mod10_f2(x: int) -> int { x + 2 }
+pub func mod10_f3(x: int) -> int { x + 3 }
+pub func mod10_f4(x: int) -> int { x + 4 }
+pub func mod10_f5(x: int) -> int { x + 5 }
+pub func mod10_f6(x: int) -> int { x + 6 }
+pub func mod10_f7(x: int) -> int { x + 7 }
+pub func mod10_f8(x: int) -> int { x + 8 }
+pub func mod10_f9(x: int) -> int { x + 9 }
+pub func mod10_f10(x: int) -> int { x + 10 }
+pub func mod10_f11(x: int) -> int { x + 11 }
+pub func mod10_f12(x: int) -> int { x + 12 }
+pub func mod10_f13(x: int) -> int { x + 13 }
+pub func mod10_f14(x: int) -> int { x + 14 }
+pub func mod10_f15(x: int) -> int { x + 15 }
+pub func mod10_f16(x: int) -> int { x + 16 }
+pub func mod10_f17(x: int) -> int { x + 17 }
+pub func mod10_f18(x: int) -> int { x + 18 }
+pub func mod10_f19(x: int) -> int { x + 19 }
+pub func mod10_f20(x: int) -> int { x + 20 }
+pub func mod10_f21(x: int) -> int { x + 21 }
+pub func mod10_f22(x: int) -> int { x + 22 }
+pub func mod10_f23(x: int) -> int { x + 23 }
+pub func mod10_f24(x: int) -> int { x + 24 }
+pub func mod10_f25(x: int) -> int { x + 25 }
+pub func mod10_f26(x: int) -> int { x + 26 }
+pub func mod10_f27(x: int) -> int { x + 27 }
+pub func mod10_f28(x: int) -> int { x + 28 }
+pub func mod10_f29(x: int) -> int { x + 29 }
+pub func mod10_f30(x: int) -> int { x + 30 }
+pub func mod10_f31(x: int) -> int { x + 31 }
+pub func mod10_f32(x: int) -> int { x + 32 }
+pub func mod10_f33(x: int) -> int { x + 33 }
+pub func mod10_f34(x: int) -> int { x + 34 }
+pub func mod10_f35(x: int) -> int { x + 35 }
+pub func mod10_f36(x: int) -> int { x + 36 }
+pub func mod10_f37(x: int) -> int { x + 37 }
+pub func mod10_f38(x: int) -> int { x + 38 }
+pub func mod10_f39(x: int) -> int { x + 39 }
+pub func mod10_f40(x: int) -> int { x + 40 }
+pub func mod10_f41(x: int) -> int { x + 41 }
+pub func mod10_f42(x: int) -> int { x + 42 }
+pub func mod10_f43(x: int) -> int { x + 43 }
+pub func mod10_f44(x: int) -> int { x + 44 }
+pub func mod10_f45(x: int) -> int { x + 45 }
+pub func mod10_f46(x: int) -> int { x + 46 }
+pub func mod10_f47(x: int) -> int { x + 47 }
+pub func mod10_f48(x: int) -> int { x + 48 }
+pub func mod10_f49(x: int) -> int { x + 49 }
+pub func mod10_f50(x: int) -> int { x + 50 }
+pub func mod10_f51(x: int) -> int { x + 51 }
+pub func mod10_f52(x: int) -> int { x + 52 }
+pub func mod10_f53(x: int) -> int { x + 53 }
+pub func mod10_f54(x: int) -> int { x + 54 }
+pub func mod10_f55(x: int) -> int { x + 55 }
+pub func mod10_f56(x: int) -> int { x + 56 }
+pub func mod10_f57(x: int) -> int { x + 57 }
+pub func mod10_f58(x: int) -> int { x + 58 }
+pub func mod10_f59(x: int) -> int { x + 59 }
+pub func mod10_f60(x: int) -> int { x + 60 }
+pub func mod10_f61(x: int) -> int { x + 61 }
+pub func mod10_f62(x: int) -> int { x + 62 }
+pub func mod10_f63(x: int) -> int { x + 63 }
+pub func mod10_f64(x: int) -> int { x + 64 }
+pub func mod10_f65(x: int) -> int { x + 65 }
+pub func mod10_f66(x: int) -> int { x + 66 }
+pub func mod10_f67(x: int) -> int { x + 67 }
+pub func mod10_f68(x: int) -> int { x + 68 }
+pub func mod10_f69(x: int) -> int { x + 69 }
+pub func mod10_f70(x: int) -> int { x + 70 }
+pub func mod10_f71(x: int) -> int { x + 71 }
+pub func mod10_f72(x: int) -> int { x + 72 }
+pub func mod10_f73(x: int) -> int { x + 73 }
+pub func mod10_f74(x: int) -> int { x + 74 }
+pub func mod10_f75(x: int) -> int { x + 75 }
+pub func mod10_f76(x: int) -> int { x + 76 }
+pub func mod10_f77(x: int) -> int { x + 77 }
+pub func mod10_f78(x: int) -> int { x + 78 }
+pub func mod10_f79(x: int) -> int { x + 79 }
+pub func mod10_f80(x: int) -> int { x + 80 }
+pub func mod10_f81(x: int) -> int { x + 81 }
+pub func mod10_f82(x: int) -> int { x + 82 }
+pub func mod10_f83(x: int) -> int { x + 83 }
+pub func mod10_f84(x: int) -> int { x + 84 }
+pub func mod10_f85(x: int) -> int { x + 85 }
+pub func mod10_f86(x: int) -> int { x + 86 }
+pub func mod10_f87(x: int) -> int { x + 87 }
+pub func mod10_f88(x: int) -> int { x + 88 }
+pub func mod10_f89(x: int) -> int { x + 89 }
+pub func mod10_f90(x: int) -> int { x + 90 }
+pub func mod10_f91(x: int) -> int { x + 91 }
+pub func mod10_f92(x: int) -> int { x + 92 }
+pub func mod10_f93(x: int) -> int { x + 93 }
+pub func mod10_f94(x: int) -> int { x + 94 }
+pub func mod10_f95(x: int) -> int { x + 95 }
+pub func mod10_f96(x: int) -> int { x + 96 }
+pub func mod10_f97(x: int) -> int { x + 97 }
+pub func mod10_f98(x: int) -> int { x + 98 }
+pub func mod10_f99(x: int) -> int { x + 99 }
+pub func mod10_f100(x: int) -> int { x + 100 }
+pub func mod10_f101(x: int) -> int { x + 101 }
+pub func mod10_f102(x: int) -> int { x + 102 }
+pub func mod10_f103(x: int) -> int { x + 103 }
+pub func mod10_f104(x: int) -> int { x + 104 }
+pub func mod10_f105(x: int) -> int { x + 105 }
+pub func mod10_f106(x: int) -> int { x + 106 }
+pub func mod10_f107(x: int) -> int { x + 107 }
+pub func mod10_f108(x: int) -> int { x + 108 }
+pub func mod10_f109(x: int) -> int { x + 109 }
+pub func mod10_f110(x: int) -> int { x + 110 }
+pub func mod10_f111(x: int) -> int { x + 111 }
+pub func mod10_f112(x: int) -> int { x + 112 }
+pub func mod10_f113(x: int) -> int { x + 113 }
+pub func mod10_f114(x: int) -> int { x + 114 }
+pub func mod10_f115(x: int) -> int { x + 115 }
+pub func mod10_f116(x: int) -> int { x + 116 }
+pub func mod10_f117(x: int) -> int { x + 117 }
+pub func mod10_f118(x: int) -> int { x + 118 }
+pub func mod10_f119(x: int) -> int { x + 119 }
+pub func mod10_f120(x: int) -> int { x + 120 }
+pub func mod10_f121(x: int) -> int { x + 121 }
+pub func mod10_f122(x: int) -> int { x + 122 }
+pub func mod10_f123(x: int) -> int { x + 123 }
+pub func mod10_f124(x: int) -> int { x + 124 }
+pub func mod10_f125(x: int) -> int { x + 125 }
+pub func mod10_f126(x: int) -> int { x + 126 }
+pub func mod10_f127(x: int) -> int { x + 127 }
+pub func mod10_f128(x: int) -> int { x + 128 }
+pub func mod10_f129(x: int) -> int { x + 129 }
+pub func mod10_f130(x: int) -> int { x + 130 }
+pub func mod10_f131(x: int) -> int { x + 131 }
+pub func mod10_f132(x: int) -> int { x + 132 }
+pub func mod10_f133(x: int) -> int { x + 133 }
+pub func mod10_f134(x: int) -> int { x + 134 }
+pub func mod10_f135(x: int) -> int { x + 135 }
+pub func mod10_f136(x: int) -> int { x + 136 }
+pub func mod10_f137(x: int) -> int { x + 137 }
+pub func mod10_f138(x: int) -> int { x + 138 }
+pub func mod10_f139(x: int) -> int { x + 139 }
+pub func mod10_f140(x: int) -> int { x + 140 }
+pub func mod10_f141(x: int) -> int { x + 141 }
+pub func mod10_f142(x: int) -> int { x + 142 }
+pub func mod10_f143(x: int) -> int { x + 143 }
+pub func mod10_f144(x: int) -> int { x + 144 }
+pub func mod10_f145(x: int) -> int { x + 145 }
+pub func mod10_f146(x: int) -> int { x + 146 }
+pub func mod10_f147(x: int) -> int { x + 147 }
+pub func mod10_f148(x: int) -> int { x + 148 }
+pub func mod10_f149(x: int) -> int { x + 149 }
+pub func mod10_f150(x: int) -> int { x + 150 }
+pub func mod10_f151(x: int) -> int { x + 151 }
+pub func mod10_f152(x: int) -> int { x + 152 }
+pub func mod10_f153(x: int) -> int { x + 153 }
+pub func mod10_f154(x: int) -> int { x + 154 }
+pub func mod10_f155(x: int) -> int { x + 155 }
+pub func mod10_f156(x: int) -> int { x + 156 }
+pub func mod10_f157(x: int) -> int { x + 157 }
+pub func mod10_f158(x: int) -> int { x + 158 }
+pub func mod10_f159(x: int) -> int { x + 159 }
+pub func mod10_f160(x: int) -> int { x + 160 }
+pub func mod10_f161(x: int) -> int { x + 161 }
+pub func mod10_f162(x: int) -> int { x + 162 }
+pub func mod10_f163(x: int) -> int { x + 163 }
+pub func mod10_f164(x: int) -> int { x + 164 }
+pub func mod10_f165(x: int) -> int { x + 165 }
+pub func mod10_f166(x: int) -> int { x + 166 }
+pub func mod10_f167(x: int) -> int { x + 167 }
+pub func mod10_f168(x: int) -> int { x + 168 }
+pub func mod10_f169(x: int) -> int { x + 169 }
+pub func mod10_f170(x: int) -> int { x + 170 }
+pub func mod10_f171(x: int) -> int { x + 171 }
+pub func mod10_f172(x: int) -> int { x + 172 }
+pub func mod10_f173(x: int) -> int { x + 173 }
+pub func mod10_f174(x: int) -> int { x + 174 }
+pub func mod10_f175(x: int) -> int { x + 175 }
+pub func mod10_f176(x: int) -> int { x + 176 }
+pub func mod10_f177(x: int) -> int { x + 177 }
+pub func mod10_f178(x: int) -> int { x + 178 }
+pub func mod10_f179(x: int) -> int { x + 179 }
+pub func mod10_f180(x: int) -> int { x + 180 }
+pub func mod10_f181(x: int) -> int { x + 181 }
+pub func mod10_f182(x: int) -> int { x + 182 }
+pub func mod10_f183(x: int) -> int { x + 183 }
+pub func mod10_f184(x: int) -> int { x + 184 }
+pub func mod10_f185(x: int) -> int { x + 185 }
+pub func mod10_f186(x: int) -> int { x + 186 }
+pub func mod10_f187(x: int) -> int { x + 187 }
+pub func mod10_f188(x: int) -> int { x + 188 }
+pub func mod10_f189(x: int) -> int { x + 189 }
+pub func mod10_f190(x: int) -> int { x + 190 }
+pub func mod10_f191(x: int) -> int { x + 191 }
+pub func mod10_f192(x: int) -> int { x + 192 }
+pub func mod10_f193(x: int) -> int { x + 193 }
+pub func mod10_f194(x: int) -> int { x + 194 }
+pub func mod10_f195(x: int) -> int { x + 195 }
+pub func mod10_f196(x: int) -> int { x + 196 }
+pub func mod10_f197(x: int) -> int { x + 197 }
+pub func mod10_f198(x: int) -> int { x + 198 }
+pub func mod10_f199(x: int) -> int { x + 199 }
diff --git a/bench/compiler/proj/mod11.zz b/bench/compiler/proj/mod11.zz
new file mode 100644
index 00000000..60eb5d3b
--- /dev/null
+++ b/bench/compiler/proj/mod11.zz
@@ -0,0 +1,200 @@
+pub func mod11_f0(x: int) -> int { x + 0 }
+pub func mod11_f1(x: int) -> int { x + 1 }
+pub func mod11_f2(x: int) -> int { x + 2 }
+pub func mod11_f3(x: int) -> int { x + 3 }
+pub func mod11_f4(x: int) -> int { x + 4 }
+pub func mod11_f5(x: int) -> int { x + 5 }
+pub func mod11_f6(x: int) -> int { x + 6 }
+pub func mod11_f7(x: int) -> int { x + 7 }
+pub func mod11_f8(x: int) -> int { x + 8 }
+pub func mod11_f9(x: int) -> int { x + 9 }
+pub func mod11_f10(x: int) -> int { x + 10 }
+pub func mod11_f11(x: int) -> int { x + 11 }
+pub func mod11_f12(x: int) -> int { x + 12 }
+pub func mod11_f13(x: int) -> int { x + 13 }
+pub func mod11_f14(x: int) -> int { x + 14 }
+pub func mod11_f15(x: int) -> int { x + 15 }
+pub func mod11_f16(x: int) -> int { x + 16 }
+pub func mod11_f17(x: int) -> int { x + 17 }
+pub func mod11_f18(x: int) -> int { x + 18 }
+pub func mod11_f19(x: int) -> int { x + 19 }
+pub func mod11_f20(x: int) -> int { x + 20 }
+pub func mod11_f21(x: int) -> int { x + 21 }
+pub func mod11_f22(x: int) -> int { x + 22 }
+pub func mod11_f23(x: int) -> int { x + 23 }
+pub func mod11_f24(x: int) -> int { x + 24 }
+pub func mod11_f25(x: int) -> int { x + 25 }
+pub func mod11_f26(x: int) -> int { x + 26 }
+pub func mod11_f27(x: int) -> int { x + 27 }
+pub func mod11_f28(x: int) -> int { x + 28 }
+pub func mod11_f29(x: int) -> int { x + 29 }
+pub func mod11_f30(x: int) -> int { x + 30 }
+pub func mod11_f31(x: int) -> int { x + 31 }
+pub func mod11_f32(x: int) -> int { x + 32 }
+pub func mod11_f33(x: int) -> int { x + 33 }
+pub func mod11_f34(x: int) -> int { x + 34 }
+pub func mod11_f35(x: int) -> int { x + 35 }
+pub func mod11_f36(x: int) -> int { x + 36 }
+pub func mod11_f37(x: int) -> int { x + 37 }
+pub func mod11_f38(x: int) -> int { x + 38 }
+pub func mod11_f39(x: int) -> int { x + 39 }
+pub func mod11_f40(x: int) -> int { x + 40 }
+pub func mod11_f41(x: int) -> int { x + 41 }
+pub func mod11_f42(x: int) -> int { x + 42 }
+pub func mod11_f43(x: int) -> int { x + 43 }
+pub func mod11_f44(x: int) -> int { x + 44 }
+pub func mod11_f45(x: int) -> int { x + 45 }
+pub func mod11_f46(x: int) -> int { x + 46 }
+pub func mod11_f47(x: int) -> int { x + 47 }
+pub func mod11_f48(x: int) -> int { x + 48 }
+pub func mod11_f49(x: int) -> int { x + 49 }
+pub func mod11_f50(x: int) -> int { x + 50 }
+pub func mod11_f51(x: int) -> int { x + 51 }
+pub func mod11_f52(x: int) -> int { x + 52 }
+pub func mod11_f53(x: int) -> int { x + 53 }
+pub func mod11_f54(x: int) -> int { x + 54 }
+pub func mod11_f55(x: int) -> int { x + 55 }
+pub func mod11_f56(x: int) -> int { x + 56 }
+pub func mod11_f57(x: int) -> int { x + 57 }
+pub func mod11_f58(x: int) -> int { x + 58 }
+pub func mod11_f59(x: int) -> int { x + 59 }
+pub func mod11_f60(x: int) -> int { x + 60 }
+pub func mod11_f61(x: int) -> int { x + 61 }
+pub func mod11_f62(x: int) -> int { x + 62 }
+pub func mod11_f63(x: int) -> int { x + 63 }
+pub func mod11_f64(x: int) -> int { x + 64 }
+pub func mod11_f65(x: int) -> int { x + 65 }
+pub func mod11_f66(x: int) -> int { x + 66 }
+pub func mod11_f67(x: int) -> int { x + 67 }
+pub func mod11_f68(x: int) -> int { x + 68 }
+pub func mod11_f69(x: int) -> int { x + 69 }
+pub func mod11_f70(x: int) -> int { x + 70 }
+pub func mod11_f71(x: int) -> int { x + 71 }
+pub func mod11_f72(x: int) -> int { x + 72 }
+pub func mod11_f73(x: int) -> int { x + 73 }
+pub func mod11_f74(x: int) -> int { x + 74 }
+pub func mod11_f75(x: int) -> int { x + 75 }
+pub func mod11_f76(x: int) -> int { x + 76 }
+pub func mod11_f77(x: int) -> int { x + 77 }
+pub func mod11_f78(x: int) -> int { x + 78 }
+pub func mod11_f79(x: int) -> int { x + 79 }
+pub func mod11_f80(x: int) -> int { x + 80 }
+pub func mod11_f81(x: int) -> int { x + 81 }
+pub func mod11_f82(x: int) -> int { x + 82 }
+pub func mod11_f83(x: int) -> int { x + 83 }
+pub func mod11_f84(x: int) -> int { x + 84 }
+pub func mod11_f85(x: int) -> int { x + 85 }
+pub func mod11_f86(x: int) -> int { x + 86 }
+pub func mod11_f87(x: int) -> int { x + 87 }
+pub func mod11_f88(x: int) -> int { x + 88 }
+pub func mod11_f89(x: int) -> int { x + 89 }
+pub func mod11_f90(x: int) -> int { x + 90 }
+pub func mod11_f91(x: int) -> int { x + 91 }
+pub func mod11_f92(x: int) -> int { x + 92 }
+pub func mod11_f93(x: int) -> int { x + 93 }
+pub func mod11_f94(x: int) -> int { x + 94 }
+pub func mod11_f95(x: int) -> int { x + 95 }
+pub func mod11_f96(x: int) -> int { x + 96 }
+pub func mod11_f97(x: int) -> int { x + 97 }
+pub func mod11_f98(x: int) -> int { x + 98 }
+pub func mod11_f99(x: int) -> int { x + 99 }
+pub func mod11_f100(x: int) -> int { x + 100 }
+pub func mod11_f101(x: int) -> int { x + 101 }
+pub func mod11_f102(x: int) -> int { x + 102 }
+pub func mod11_f103(x: int) -> int { x + 103 }
+pub func mod11_f104(x: int) -> int { x + 104 }
+pub func mod11_f105(x: int) -> int { x + 105 }
+pub func mod11_f106(x: int) -> int { x + 106 }
+pub func mod11_f107(x: int) -> int { x + 107 }
+pub func mod11_f108(x: int) -> int { x + 108 }
+pub func mod11_f109(x: int) -> int { x + 109 }
+pub func mod11_f110(x: int) -> int { x + 110 }
+pub func mod11_f111(x: int) -> int { x + 111 }
+pub func mod11_f112(x: int) -> int { x + 112 }
+pub func mod11_f113(x: int) -> int { x + 113 }
+pub func mod11_f114(x: int) -> int { x + 114 }
+pub func mod11_f115(x: int) -> int { x + 115 }
+pub func mod11_f116(x: int) -> int { x + 116 }
+pub func mod11_f117(x: int) -> int { x + 117 }
+pub func mod11_f118(x: int) -> int { x + 118 }
+pub func mod11_f119(x: int) -> int { x + 119 }
+pub func mod11_f120(x: int) -> int { x + 120 }
+pub func mod11_f121(x: int) -> int { x + 121 }
+pub func mod11_f122(x: int) -> int { x + 122 }
+pub func mod11_f123(x: int) -> int { x + 123 }
+pub func mod11_f124(x: int) -> int { x + 124 }
+pub func mod11_f125(x: int) -> int { x + 125 }
+pub func mod11_f126(x: int) -> int { x + 126 }
+pub func mod11_f127(x: int) -> int { x + 127 }
+pub func mod11_f128(x: int) -> int { x + 128 }
+pub func mod11_f129(x: int) -> int { x + 129 }
+pub func mod11_f130(x: int) -> int { x + 130 }
+pub func mod11_f131(x: int) -> int { x + 131 }
+pub func mod11_f132(x: int) -> int { x + 132 }
+pub func mod11_f133(x: int) -> int { x + 133 }
+pub func mod11_f134(x: int) -> int { x + 134 }
+pub func mod11_f135(x: int) -> int { x + 135 }
+pub func mod11_f136(x: int) -> int { x + 136 }
+pub func mod11_f137(x: int) -> int { x + 137 }
+pub func mod11_f138(x: int) -> int { x + 138 }
+pub func mod11_f139(x: int) -> int { x + 139 }
+pub func mod11_f140(x: int) -> int { x + 140 }
+pub func mod11_f141(x: int) -> int { x + 141 }
+pub func mod11_f142(x: int) -> int { x + 142 }
+pub func mod11_f143(x: int) -> int { x + 143 }
+pub func mod11_f144(x: int) -> int { x + 144 }
+pub func mod11_f145(x: int) -> int { x + 145 }
+pub func mod11_f146(x: int) -> int { x + 146 }
+pub func mod11_f147(x: int) -> int { x + 147 }
+pub func mod11_f148(x: int) -> int { x + 148 }
+pub func mod11_f149(x: int) -> int { x + 149 }
+pub func mod11_f150(x: int) -> int { x + 150 }
+pub func mod11_f151(x: int) -> int { x + 151 }
+pub func mod11_f152(x: int) -> int { x + 152 }
+pub func mod11_f153(x: int) -> int { x + 153 }
+pub func mod11_f154(x: int) -> int { x + 154 }
+pub func mod11_f155(x: int) -> int { x + 155 }
+pub func mod11_f156(x: int) -> int { x + 156 }
+pub func mod11_f157(x: int) -> int { x + 157 }
+pub func mod11_f158(x: int) -> int { x + 158 }
+pub func mod11_f159(x: int) -> int { x + 159 }
+pub func mod11_f160(x: int) -> int { x + 160 }
+pub func mod11_f161(x: int) -> int { x + 161 }
+pub func mod11_f162(x: int) -> int { x + 162 }
+pub func mod11_f163(x: int) -> int { x + 163 }
+pub func mod11_f164(x: int) -> int { x + 164 }
+pub func mod11_f165(x: int) -> int { x + 165 }
+pub func mod11_f166(x: int) -> int { x + 166 }
+pub func mod11_f167(x: int) -> int { x + 167 }
+pub func mod11_f168(x: int) -> int { x + 168 }
+pub func mod11_f169(x: int) -> int { x + 169 }
+pub func mod11_f170(x: int) -> int { x + 170 }
+pub func mod11_f171(x: int) -> int { x + 171 }
+pub func mod11_f172(x: int) -> int { x + 172 }
+pub func mod11_f173(x: int) -> int { x + 173 }
+pub func mod11_f174(x: int) -> int { x + 174 }
+pub func mod11_f175(x: int) -> int { x + 175 }
+pub func mod11_f176(x: int) -> int { x + 176 }
+pub func mod11_f177(x: int) -> int { x + 177 }
+pub func mod11_f178(x: int) -> int { x + 178 }
+pub func mod11_f179(x: int) -> int { x + 179 }
+pub func mod11_f180(x: int) -> int { x + 180 }
+pub func mod11_f181(x: int) -> int { x + 181 }
+pub func mod11_f182(x: int) -> int { x + 182 }
+pub func mod11_f183(x: int) -> int { x + 183 }
+pub func mod11_f184(x: int) -> int { x + 184 }
+pub func mod11_f185(x: int) -> int { x + 185 }
+pub func mod11_f186(x: int) -> int { x + 186 }
+pub func mod11_f187(x: int) -> int { x + 187 }
+pub func mod11_f188(x: int) -> int { x + 188 }
+pub func mod11_f189(x: int) -> int { x + 189 }
+pub func mod11_f190(x: int) -> int { x + 190 }
+pub func mod11_f191(x: int) -> int { x + 191 }
+pub func mod11_f192(x: int) -> int { x + 192 }
+pub func mod11_f193(x: int) -> int { x + 193 }
+pub func mod11_f194(x: int) -> int { x + 194 }
+pub func mod11_f195(x: int) -> int { x + 195 }
+pub func mod11_f196(x: int) -> int { x + 196 }
+pub func mod11_f197(x: int) -> int { x + 197 }
+pub func mod11_f198(x: int) -> int { x + 198 }
+pub func mod11_f199(x: int) -> int { x + 199 }
diff --git a/bench/compiler/proj/mod12.zz b/bench/compiler/proj/mod12.zz
new file mode 100644
index 00000000..80f861e6
--- /dev/null
+++ b/bench/compiler/proj/mod12.zz
@@ -0,0 +1,200 @@
+pub func mod12_f0(x: int) -> int { x + 0 }
+pub func mod12_f1(x: int) -> int { x + 1 }
+pub func mod12_f2(x: int) -> int { x + 2 }
+pub func mod12_f3(x: int) -> int { x + 3 }
+pub func mod12_f4(x: int) -> int { x + 4 }
+pub func mod12_f5(x: int) -> int { x + 5 }
+pub func mod12_f6(x: int) -> int { x + 6 }
+pub func mod12_f7(x: int) -> int { x + 7 }
+pub func mod12_f8(x: int) -> int { x + 8 }
+pub func mod12_f9(x: int) -> int { x + 9 }
+pub func mod12_f10(x: int) -> int { x + 10 }
+pub func mod12_f11(x: int) -> int { x + 11 }
+pub func mod12_f12(x: int) -> int { x + 12 }
+pub func mod12_f13(x: int) -> int { x + 13 }
+pub func mod12_f14(x: int) -> int { x + 14 }
+pub func mod12_f15(x: int) -> int { x + 15 }
+pub func mod12_f16(x: int) -> int { x + 16 }
+pub func mod12_f17(x: int) -> int { x + 17 }
+pub func mod12_f18(x: int) -> int { x + 18 }
+pub func mod12_f19(x: int) -> int { x + 19 }
+pub func mod12_f20(x: int) -> int { x + 20 }
+pub func mod12_f21(x: int) -> int { x + 21 }
+pub func mod12_f22(x: int) -> int { x + 22 }
+pub func mod12_f23(x: int) -> int { x + 23 }
+pub func mod12_f24(x: int) -> int { x + 24 }
+pub func mod12_f25(x: int) -> int { x + 25 }
+pub func mod12_f26(x: int) -> int { x + 26 }
+pub func mod12_f27(x: int) -> int { x + 27 }
+pub func mod12_f28(x: int) -> int { x + 28 }
+pub func mod12_f29(x: int) -> int { x + 29 }
+pub func mod12_f30(x: int) -> int { x + 30 }
+pub func mod12_f31(x: int) -> int { x + 31 }
+pub func mod12_f32(x: int) -> int { x + 32 }
+pub func mod12_f33(x: int) -> int { x + 33 }
+pub func mod12_f34(x: int) -> int { x + 34 }
+pub func mod12_f35(x: int) -> int { x + 35 }
+pub func mod12_f36(x: int) -> int { x + 36 }
+pub func mod12_f37(x: int) -> int { x + 37 }
+pub func mod12_f38(x: int) -> int { x + 38 }
+pub func mod12_f39(x: int) -> int { x + 39 }
+pub func mod12_f40(x: int) -> int { x + 40 }
+pub func mod12_f41(x: int) -> int { x + 41 }
+pub func mod12_f42(x: int) -> int { x + 42 }
+pub func mod12_f43(x: int) -> int { x + 43 }
+pub func mod12_f44(x: int) -> int { x + 44 }
+pub func mod12_f45(x: int) -> int { x + 45 }
+pub func mod12_f46(x: int) -> int { x + 46 }
+pub func mod12_f47(x: int) -> int { x + 47 }
+pub func mod12_f48(x: int) -> int { x + 48 }
+pub func mod12_f49(x: int) -> int { x + 49 }
+pub func mod12_f50(x: int) -> int { x + 50 }
+pub func mod12_f51(x: int) -> int { x + 51 }
+pub func mod12_f52(x: int) -> int { x + 52 }
+pub func mod12_f53(x: int) -> int { x + 53 }
+pub func mod12_f54(x: int) -> int { x + 54 }
+pub func mod12_f55(x: int) -> int { x + 55 }
+pub func mod12_f56(x: int) -> int { x + 56 }
+pub func mod12_f57(x: int) -> int { x + 57 }
+pub func mod12_f58(x: int) -> int { x + 58 }
+pub func mod12_f59(x: int) -> int { x + 59 }
+pub func mod12_f60(x: int) -> int { x + 60 }
+pub func mod12_f61(x: int) -> int { x + 61 }
+pub func mod12_f62(x: int) -> int { x + 62 }
+pub func mod12_f63(x: int) -> int { x + 63 }
+pub func mod12_f64(x: int) -> int { x + 64 }
+pub func mod12_f65(x: int) -> int { x + 65 }
+pub func mod12_f66(x: int) -> int { x + 66 }
+pub func mod12_f67(x: int) -> int { x + 67 }
+pub func mod12_f68(x: int) -> int { x + 68 }
+pub func mod12_f69(x: int) -> int { x + 69 }
+pub func mod12_f70(x: int) -> int { x + 70 }
+pub func mod12_f71(x: int) -> int { x + 71 }
+pub func mod12_f72(x: int) -> int { x + 72 }
+pub func mod12_f73(x: int) -> int { x + 73 }
+pub func mod12_f74(x: int) -> int { x + 74 }
+pub func mod12_f75(x: int) -> int { x + 75 }
+pub func mod12_f76(x: int) -> int { x + 76 }
+pub func mod12_f77(x: int) -> int { x + 77 }
+pub func mod12_f78(x: int) -> int { x + 78 }
+pub func mod12_f79(x: int) -> int { x + 79 }
+pub func mod12_f80(x: int) -> int { x + 80 }
+pub func mod12_f81(x: int) -> int { x + 81 }
+pub func mod12_f82(x: int) -> int { x + 82 }
+pub func mod12_f83(x: int) -> int { x + 83 }
+pub func mod12_f84(x: int) -> int { x + 84 }
+pub func mod12_f85(x: int) -> int { x + 85 }
+pub func mod12_f86(x: int) -> int { x + 86 }
+pub func mod12_f87(x: int) -> int { x + 87 }
+pub func mod12_f88(x: int) -> int { x + 88 }
+pub func mod12_f89(x: int) -> int { x + 89 }
+pub func mod12_f90(x: int) -> int { x + 90 }
+pub func mod12_f91(x: int) -> int { x + 91 }
+pub func mod12_f92(x: int) -> int { x + 92 }
+pub func mod12_f93(x: int) -> int { x + 93 }
+pub func mod12_f94(x: int) -> int { x + 94 }
+pub func mod12_f95(x: int) -> int { x + 95 }
+pub func mod12_f96(x: int) -> int { x + 96 }
+pub func mod12_f97(x: int) -> int { x + 97 }
+pub func mod12_f98(x: int) -> int { x + 98 }
+pub func mod12_f99(x: int) -> int { x + 99 }
+pub func mod12_f100(x: int) -> int { x + 100 }
+pub func mod12_f101(x: int) -> int { x + 101 }
+pub func mod12_f102(x: int) -> int { x + 102 }
+pub func mod12_f103(x: int) -> int { x + 103 }
+pub func mod12_f104(x: int) -> int { x + 104 }
+pub func mod12_f105(x: int) -> int { x + 105 }
+pub func mod12_f106(x: int) -> int { x + 106 }
+pub func mod12_f107(x: int) -> int { x + 107 }
+pub func mod12_f108(x: int) -> int { x + 108 }
+pub func mod12_f109(x: int) -> int { x + 109 }
+pub func mod12_f110(x: int) -> int { x + 110 }
+pub func mod12_f111(x: int) -> int { x + 111 }
+pub func mod12_f112(x: int) -> int { x + 112 }
+pub func mod12_f113(x: int) -> int { x + 113 }
+pub func mod12_f114(x: int) -> int { x + 114 }
+pub func mod12_f115(x: int) -> int { x + 115 }
+pub func mod12_f116(x: int) -> int { x + 116 }
+pub func mod12_f117(x: int) -> int { x + 117 }
+pub func mod12_f118(x: int) -> int { x + 118 }
+pub func mod12_f119(x: int) -> int { x + 119 }
+pub func mod12_f120(x: int) -> int { x + 120 }
+pub func mod12_f121(x: int) -> int { x + 121 }
+pub func mod12_f122(x: int) -> int { x + 122 }
+pub func mod12_f123(x: int) -> int { x + 123 }
+pub func mod12_f124(x: int) -> int { x + 124 }
+pub func mod12_f125(x: int) -> int { x + 125 }
+pub func mod12_f126(x: int) -> int { x + 126 }
+pub func mod12_f127(x: int) -> int { x + 127 }
+pub func mod12_f128(x: int) -> int { x + 128 }
+pub func mod12_f129(x: int) -> int { x + 129 }
+pub func mod12_f130(x: int) -> int { x + 130 }
+pub func mod12_f131(x: int) -> int { x + 131 }
+pub func mod12_f132(x: int) -> int { x + 132 }
+pub func mod12_f133(x: int) -> int { x + 133 }
+pub func mod12_f134(x: int) -> int { x + 134 }
+pub func mod12_f135(x: int) -> int { x + 135 }
+pub func mod12_f136(x: int) -> int { x + 136 }
+pub func mod12_f137(x: int) -> int { x + 137 }
+pub func mod12_f138(x: int) -> int { x + 138 }
+pub func mod12_f139(x: int) -> int { x + 139 }
+pub func mod12_f140(x: int) -> int { x + 140 }
+pub func mod12_f141(x: int) -> int { x + 141 }
+pub func mod12_f142(x: int) -> int { x + 142 }
+pub func mod12_f143(x: int) -> int { x + 143 }
+pub func mod12_f144(x: int) -> int { x + 144 }
+pub func mod12_f145(x: int) -> int { x + 145 }
+pub func mod12_f146(x: int) -> int { x + 146 }
+pub func mod12_f147(x: int) -> int { x + 147 }
+pub func mod12_f148(x: int) -> int { x + 148 }
+pub func mod12_f149(x: int) -> int { x + 149 }
+pub func mod12_f150(x: int) -> int { x + 150 }
+pub func mod12_f151(x: int) -> int { x + 151 }
+pub func mod12_f152(x: int) -> int { x + 152 }
+pub func mod12_f153(x: int) -> int { x + 153 }
+pub func mod12_f154(x: int) -> int { x + 154 }
+pub func mod12_f155(x: int) -> int { x + 155 }
+pub func mod12_f156(x: int) -> int { x + 156 }
+pub func mod12_f157(x: int) -> int { x + 157 }
+pub func mod12_f158(x: int) -> int { x + 158 }
+pub func mod12_f159(x: int) -> int { x + 159 }
+pub func mod12_f160(x: int) -> int { x + 160 }
+pub func mod12_f161(x: int) -> int { x + 161 }
+pub func mod12_f162(x: int) -> int { x + 162 }
+pub func mod12_f163(x: int) -> int { x + 163 }
+pub func mod12_f164(x: int) -> int { x + 164 }
+pub func mod12_f165(x: int) -> int { x + 165 }
+pub func mod12_f166(x: int) -> int { x + 166 }
+pub func mod12_f167(x: int) -> int { x + 167 }
+pub func mod12_f168(x: int) -> int { x + 168 }
+pub func mod12_f169(x: int) -> int { x + 169 }
+pub func mod12_f170(x: int) -> int { x + 170 }
+pub func mod12_f171(x: int) -> int { x + 171 }
+pub func mod12_f172(x: int) -> int { x + 172 }
+pub func mod12_f173(x: int) -> int { x + 173 }
+pub func mod12_f174(x: int) -> int { x + 174 }
+pub func mod12_f175(x: int) -> int { x + 175 }
+pub func mod12_f176(x: int) -> int { x + 176 }
+pub func mod12_f177(x: int) -> int { x + 177 }
+pub func mod12_f178(x: int) -> int { x + 178 }
+pub func mod12_f179(x: int) -> int { x + 179 }
+pub func mod12_f180(x: int) -> int { x + 180 }
+pub func mod12_f181(x: int) -> int { x + 181 }
+pub func mod12_f182(x: int) -> int { x + 182 }
+pub func mod12_f183(x: int) -> int { x + 183 }
+pub func mod12_f184(x: int) -> int { x + 184 }
+pub func mod12_f185(x: int) -> int { x + 185 }
+pub func mod12_f186(x: int) -> int { x + 186 }
+pub func mod12_f187(x: int) -> int { x + 187 }
+pub func mod12_f188(x: int) -> int { x + 188 }
+pub func mod12_f189(x: int) -> int { x + 189 }
+pub func mod12_f190(x: int) -> int { x + 190 }
+pub func mod12_f191(x: int) -> int { x + 191 }
+pub func mod12_f192(x: int) -> int { x + 192 }
+pub func mod12_f193(x: int) -> int { x + 193 }
+pub func mod12_f194(x: int) -> int { x + 194 }
+pub func mod12_f195(x: int) -> int { x + 195 }
+pub func mod12_f196(x: int) -> int { x + 196 }
+pub func mod12_f197(x: int) -> int { x + 197 }
+pub func mod12_f198(x: int) -> int { x + 198 }
+pub func mod12_f199(x: int) -> int { x + 199 }
diff --git a/bench/compiler/proj/mod13.zz b/bench/compiler/proj/mod13.zz
new file mode 100644
index 00000000..49560afa
--- /dev/null
+++ b/bench/compiler/proj/mod13.zz
@@ -0,0 +1,200 @@
+pub func mod13_f0(x: int) -> int { x + 0 }
+pub func mod13_f1(x: int) -> int { x + 1 }
+pub func mod13_f2(x: int) -> int { x + 2 }
+pub func mod13_f3(x: int) -> int { x + 3 }
+pub func mod13_f4(x: int) -> int { x + 4 }
+pub func mod13_f5(x: int) -> int { x + 5 }
+pub func mod13_f6(x: int) -> int { x + 6 }
+pub func mod13_f7(x: int) -> int { x + 7 }
+pub func mod13_f8(x: int) -> int { x + 8 }
+pub func mod13_f9(x: int) -> int { x + 9 }
+pub func mod13_f10(x: int) -> int { x + 10 }
+pub func mod13_f11(x: int) -> int { x + 11 }
+pub func mod13_f12(x: int) -> int { x + 12 }
+pub func mod13_f13(x: int) -> int { x + 13 }
+pub func mod13_f14(x: int) -> int { x + 14 }
+pub func mod13_f15(x: int) -> int { x + 15 }
+pub func mod13_f16(x: int) -> int { x + 16 }
+pub func mod13_f17(x: int) -> int { x + 17 }
+pub func mod13_f18(x: int) -> int { x + 18 }
+pub func mod13_f19(x: int) -> int { x + 19 }
+pub func mod13_f20(x: int) -> int { x + 20 }
+pub func mod13_f21(x: int) -> int { x + 21 }
+pub func mod13_f22(x: int) -> int { x + 22 }
+pub func mod13_f23(x: int) -> int { x + 23 }
+pub func mod13_f24(x: int) -> int { x + 24 }
+pub func mod13_f25(x: int) -> int { x + 25 }
+pub func mod13_f26(x: int) -> int { x + 26 }
+pub func mod13_f27(x: int) -> int { x + 27 }
+pub func mod13_f28(x: int) -> int { x + 28 }
+pub func mod13_f29(x: int) -> int { x + 29 }
+pub func mod13_f30(x: int) -> int { x + 30 }
+pub func mod13_f31(x: int) -> int { x + 31 }
+pub func mod13_f32(x: int) -> int { x + 32 }
+pub func mod13_f33(x: int) -> int { x + 33 }
+pub func mod13_f34(x: int) -> int { x + 34 }
+pub func mod13_f35(x: int) -> int { x + 35 }
+pub func mod13_f36(x: int) -> int { x + 36 }
+pub func mod13_f37(x: int) -> int { x + 37 }
+pub func mod13_f38(x: int) -> int { x + 38 }
+pub func mod13_f39(x: int) -> int { x + 39 }
+pub func mod13_f40(x: int) -> int { x + 40 }
+pub func mod13_f41(x: int) -> int { x + 41 }
+pub func mod13_f42(x: int) -> int { x + 42 }
+pub func mod13_f43(x: int) -> int { x + 43 }
+pub func mod13_f44(x: int) -> int { x + 44 }
+pub func mod13_f45(x: int) -> int { x + 45 }
+pub func mod13_f46(x: int) -> int { x + 46 }
+pub func mod13_f47(x: int) -> int { x + 47 }
+pub func mod13_f48(x: int) -> int { x + 48 }
+pub func mod13_f49(x: int) -> int { x + 49 }
+pub func mod13_f50(x: int) -> int { x + 50 }
+pub func mod13_f51(x: int) -> int { x + 51 }
+pub func mod13_f52(x: int) -> int { x + 52 }
+pub func mod13_f53(x: int) -> int { x + 53 }
+pub func mod13_f54(x: int) -> int { x + 54 }
+pub func mod13_f55(x: int) -> int { x + 55 }
+pub func mod13_f56(x: int) -> int { x + 56 }
+pub func mod13_f57(x: int) -> int { x + 57 }
+pub func mod13_f58(x: int) -> int { x + 58 }
+pub func mod13_f59(x: int) -> int { x + 59 }
+pub func mod13_f60(x: int) -> int { x + 60 }
+pub func mod13_f61(x: int) -> int { x + 61 }
+pub func mod13_f62(x: int) -> int { x + 62 }
+pub func mod13_f63(x: int) -> int { x + 63 }
+pub func mod13_f64(x: int) -> int { x + 64 }
+pub func mod13_f65(x: int) -> int { x + 65 }
+pub func mod13_f66(x: int) -> int { x + 66 }
+pub func mod13_f67(x: int) -> int { x + 67 }
+pub func mod13_f68(x: int) -> int { x + 68 }
+pub func mod13_f69(x: int) -> int { x + 69 }
+pub func mod13_f70(x: int) -> int { x + 70 }
+pub func mod13_f71(x: int) -> int { x + 71 }
+pub func mod13_f72(x: int) -> int { x + 72 }
+pub func mod13_f73(x: int) -> int { x + 73 }
+pub func mod13_f74(x: int) -> int { x + 74 }
+pub func mod13_f75(x: int) -> int { x + 75 }
+pub func mod13_f76(x: int) -> int { x + 76 }
+pub func mod13_f77(x: int) -> int { x + 77 }
+pub func mod13_f78(x: int) -> int { x + 78 }
+pub func mod13_f79(x: int) -> int { x + 79 }
+pub func mod13_f80(x: int) -> int { x + 80 }
+pub func mod13_f81(x: int) -> int { x + 81 }
+pub func mod13_f82(x: int) -> int { x + 82 }
+pub func mod13_f83(x: int) -> int { x + 83 }
+pub func mod13_f84(x: int) -> int { x + 84 }
+pub func mod13_f85(x: int) -> int { x + 85 }
+pub func mod13_f86(x: int) -> int { x + 86 }
+pub func mod13_f87(x: int) -> int { x + 87 }
+pub func mod13_f88(x: int) -> int { x + 88 }
+pub func mod13_f89(x: int) -> int { x + 89 }
+pub func mod13_f90(x: int) -> int { x + 90 }
+pub func mod13_f91(x: int) -> int { x + 91 }
+pub func mod13_f92(x: int) -> int { x + 92 }
+pub func mod13_f93(x: int) -> int { x + 93 }
+pub func mod13_f94(x: int) -> int { x + 94 }
+pub func mod13_f95(x: int) -> int { x + 95 }
+pub func mod13_f96(x: int) -> int { x + 96 }
+pub func mod13_f97(x: int) -> int { x + 97 }
+pub func mod13_f98(x: int) -> int { x + 98 }
+pub func mod13_f99(x: int) -> int { x + 99 }
+pub func mod13_f100(x: int) -> int { x + 100 }
+pub func mod13_f101(x: int) -> int { x + 101 }
+pub func mod13_f102(x: int) -> int { x + 102 }
+pub func mod13_f103(x: int) -> int { x + 103 }
+pub func mod13_f104(x: int) -> int { x + 104 }
+pub func mod13_f105(x: int) -> int { x + 105 }
+pub func mod13_f106(x: int) -> int { x + 106 }
+pub func mod13_f107(x: int) -> int { x + 107 }
+pub func mod13_f108(x: int) -> int { x + 108 }
+pub func mod13_f109(x: int) -> int { x + 109 }
+pub func mod13_f110(x: int) -> int { x + 110 }
+pub func mod13_f111(x: int) -> int { x + 111 }
+pub func mod13_f112(x: int) -> int { x + 112 }
+pub func mod13_f113(x: int) -> int { x + 113 }
+pub func mod13_f114(x: int) -> int { x + 114 }
+pub func mod13_f115(x: int) -> int { x + 115 }
+pub func mod13_f116(x: int) -> int { x + 116 }
+pub func mod13_f117(x: int) -> int { x + 117 }
+pub func mod13_f118(x: int) -> int { x + 118 }
+pub func mod13_f119(x: int) -> int { x + 119 }
+pub func mod13_f120(x: int) -> int { x + 120 }
+pub func mod13_f121(x: int) -> int { x + 121 }
+pub func mod13_f122(x: int) -> int { x + 122 }
+pub func mod13_f123(x: int) -> int { x + 123 }
+pub func mod13_f124(x: int) -> int { x + 124 }
+pub func mod13_f125(x: int) -> int { x + 125 }
+pub func mod13_f126(x: int) -> int { x + 126 }
+pub func mod13_f127(x: int) -> int { x + 127 }
+pub func mod13_f128(x: int) -> int { x + 128 }
+pub func mod13_f129(x: int) -> int { x + 129 }
+pub func mod13_f130(x: int) -> int { x + 130 }
+pub func mod13_f131(x: int) -> int { x + 131 }
+pub func mod13_f132(x: int) -> int { x + 132 }
+pub func mod13_f133(x: int) -> int { x + 133 }
+pub func mod13_f134(x: int) -> int { x + 134 }
+pub func mod13_f135(x: int) -> int { x + 135 }
+pub func mod13_f136(x: int) -> int { x + 136 }
+pub func mod13_f137(x: int) -> int { x + 137 }
+pub func mod13_f138(x: int) -> int { x + 138 }
+pub func mod13_f139(x: int) -> int { x + 139 }
+pub func mod13_f140(x: int) -> int { x + 140 }
+pub func mod13_f141(x: int) -> int { x + 141 }
+pub func mod13_f142(x: int) -> int { x + 142 }
+pub func mod13_f143(x: int) -> int { x + 143 }
+pub func mod13_f144(x: int) -> int { x + 144 }
+pub func mod13_f145(x: int) -> int { x + 145 }
+pub func mod13_f146(x: int) -> int { x + 146 }
+pub func mod13_f147(x: int) -> int { x + 147 }
+pub func mod13_f148(x: int) -> int { x + 148 }
+pub func mod13_f149(x: int) -> int { x + 149 }
+pub func mod13_f150(x: int) -> int { x + 150 }
+pub func mod13_f151(x: int) -> int { x + 151 }
+pub func mod13_f152(x: int) -> int { x + 152 }
+pub func mod13_f153(x: int) -> int { x + 153 }
+pub func mod13_f154(x: int) -> int { x + 154 }
+pub func mod13_f155(x: int) -> int { x + 155 }
+pub func mod13_f156(x: int) -> int { x + 156 }
+pub func mod13_f157(x: int) -> int { x + 157 }
+pub func mod13_f158(x: int) -> int { x + 158 }
+pub func mod13_f159(x: int) -> int { x + 159 }
+pub func mod13_f160(x: int) -> int { x + 160 }
+pub func mod13_f161(x: int) -> int { x + 161 }
+pub func mod13_f162(x: int) -> int { x + 162 }
+pub func mod13_f163(x: int) -> int { x + 163 }
+pub func mod13_f164(x: int) -> int { x + 164 }
+pub func mod13_f165(x: int) -> int { x + 165 }
+pub func mod13_f166(x: int) -> int { x + 166 }
+pub func mod13_f167(x: int) -> int { x + 167 }
+pub func mod13_f168(x: int) -> int { x + 168 }
+pub func mod13_f169(x: int) -> int { x + 169 }
+pub func mod13_f170(x: int) -> int { x + 170 }
+pub func mod13_f171(x: int) -> int { x + 171 }
+pub func mod13_f172(x: int) -> int { x + 172 }
+pub func mod13_f173(x: int) -> int { x + 173 }
+pub func mod13_f174(x: int) -> int { x + 174 }
+pub func mod13_f175(x: int) -> int { x + 175 }
+pub func mod13_f176(x: int) -> int { x + 176 }
+pub func mod13_f177(x: int) -> int { x + 177 }
+pub func mod13_f178(x: int) -> int { x + 178 }
+pub func mod13_f179(x: int) -> int { x + 179 }
+pub func mod13_f180(x: int) -> int { x + 180 }
+pub func mod13_f181(x: int) -> int { x + 181 }
+pub func mod13_f182(x: int) -> int { x + 182 }
+pub func mod13_f183(x: int) -> int { x + 183 }
+pub func mod13_f184(x: int) -> int { x + 184 }
+pub func mod13_f185(x: int) -> int { x + 185 }
+pub func mod13_f186(x: int) -> int { x + 186 }
+pub func mod13_f187(x: int) -> int { x + 187 }
+pub func mod13_f188(x: int) -> int { x + 188 }
+pub func mod13_f189(x: int) -> int { x + 189 }
+pub func mod13_f190(x: int) -> int { x + 190 }
+pub func mod13_f191(x: int) -> int { x + 191 }
+pub func mod13_f192(x: int) -> int { x + 192 }
+pub func mod13_f193(x: int) -> int { x + 193 }
+pub func mod13_f194(x: int) -> int { x + 194 }
+pub func mod13_f195(x: int) -> int { x + 195 }
+pub func mod13_f196(x: int) -> int { x + 196 }
+pub func mod13_f197(x: int) -> int { x + 197 }
+pub func mod13_f198(x: int) -> int { x + 198 }
+pub func mod13_f199(x: int) -> int { x + 199 }
diff --git a/bench/compiler/proj/mod14.zz b/bench/compiler/proj/mod14.zz
new file mode 100644
index 00000000..981364b7
--- /dev/null
+++ b/bench/compiler/proj/mod14.zz
@@ -0,0 +1,200 @@
+pub func mod14_f0(x: int) -> int { x + 0 }
+pub func mod14_f1(x: int) -> int { x + 1 }
+pub func mod14_f2(x: int) -> int { x + 2 }
+pub func mod14_f3(x: int) -> int { x + 3 }
+pub func mod14_f4(x: int) -> int { x + 4 }
+pub func mod14_f5(x: int) -> int { x + 5 }
+pub func mod14_f6(x: int) -> int { x + 6 }
+pub func mod14_f7(x: int) -> int { x + 7 }
+pub func mod14_f8(x: int) -> int { x + 8 }
+pub func mod14_f9(x: int) -> int { x + 9 }
+pub func mod14_f10(x: int) -> int { x + 10 }
+pub func mod14_f11(x: int) -> int { x + 11 }
+pub func mod14_f12(x: int) -> int { x + 12 }
+pub func mod14_f13(x: int) -> int { x + 13 }
+pub func mod14_f14(x: int) -> int { x + 14 }
+pub func mod14_f15(x: int) -> int { x + 15 }
+pub func mod14_f16(x: int) -> int { x + 16 }
+pub func mod14_f17(x: int) -> int { x + 17 }
+pub func mod14_f18(x: int) -> int { x + 18 }
+pub func mod14_f19(x: int) -> int { x + 19 }
+pub func mod14_f20(x: int) -> int { x + 20 }
+pub func mod14_f21(x: int) -> int { x + 21 }
+pub func mod14_f22(x: int) -> int { x + 22 }
+pub func mod14_f23(x: int) -> int { x + 23 }
+pub func mod14_f24(x: int) -> int { x + 24 }
+pub func mod14_f25(x: int) -> int { x + 25 }
+pub func mod14_f26(x: int) -> int { x + 26 }
+pub func mod14_f27(x: int) -> int { x + 27 }
+pub func mod14_f28(x: int) -> int { x + 28 }
+pub func mod14_f29(x: int) -> int { x + 29 }
+pub func mod14_f30(x: int) -> int { x + 30 }
+pub func mod14_f31(x: int) -> int { x + 31 }
+pub func mod14_f32(x: int) -> int { x + 32 }
+pub func mod14_f33(x: int) -> int { x + 33 }
+pub func mod14_f34(x: int) -> int { x + 34 }
+pub func mod14_f35(x: int) -> int { x + 35 }
+pub func mod14_f36(x: int) -> int { x + 36 }
+pub func mod14_f37(x: int) -> int { x + 37 }
+pub func mod14_f38(x: int) -> int { x + 38 }
+pub func mod14_f39(x: int) -> int { x + 39 }
+pub func mod14_f40(x: int) -> int { x + 40 }
+pub func mod14_f41(x: int) -> int { x + 41 }
+pub func mod14_f42(x: int) -> int { x + 42 }
+pub func mod14_f43(x: int) -> int { x + 43 }
+pub func mod14_f44(x: int) -> int { x + 44 }
+pub func mod14_f45(x: int) -> int { x + 45 }
+pub func mod14_f46(x: int) -> int { x + 46 }
+pub func mod14_f47(x: int) -> int { x + 47 }
+pub func mod14_f48(x: int) -> int { x + 48 }
+pub func mod14_f49(x: int) -> int { x + 49 }
+pub func mod14_f50(x: int) -> int { x + 50 }
+pub func mod14_f51(x: int) -> int { x + 51 }
+pub func mod14_f52(x: int) -> int { x + 52 }
+pub func mod14_f53(x: int) -> int { x + 53 }
+pub func mod14_f54(x: int) -> int { x + 54 }
+pub func mod14_f55(x: int) -> int { x + 55 }
+pub func mod14_f56(x: int) -> int { x + 56 }
+pub func mod14_f57(x: int) -> int { x + 57 }
+pub func mod14_f58(x: int) -> int { x + 58 }
+pub func mod14_f59(x: int) -> int { x + 59 }
+pub func mod14_f60(x: int) -> int { x + 60 }
+pub func mod14_f61(x: int) -> int { x + 61 }
+pub func mod14_f62(x: int) -> int { x + 62 }
+pub func mod14_f63(x: int) -> int { x + 63 }
+pub func mod14_f64(x: int) -> int { x + 64 }
+pub func mod14_f65(x: int) -> int { x + 65 }
+pub func mod14_f66(x: int) -> int { x + 66 }
+pub func mod14_f67(x: int) -> int { x + 67 }
+pub func mod14_f68(x: int) -> int { x + 68 }
+pub func mod14_f69(x: int) -> int { x + 69 }
+pub func mod14_f70(x: int) -> int { x + 70 }
+pub func mod14_f71(x: int) -> int { x + 71 }
+pub func mod14_f72(x: int) -> int { x + 72 }
+pub func mod14_f73(x: int) -> int { x + 73 }
+pub func mod14_f74(x: int) -> int { x + 74 }
+pub func mod14_f75(x: int) -> int { x + 75 }
+pub func mod14_f76(x: int) -> int { x + 76 }
+pub func mod14_f77(x: int) -> int { x + 77 }
+pub func mod14_f78(x: int) -> int { x + 78 }
+pub func mod14_f79(x: int) -> int { x + 79 }
+pub func mod14_f80(x: int) -> int { x + 80 }
+pub func mod14_f81(x: int) -> int { x + 81 }
+pub func mod14_f82(x: int) -> int { x + 82 }
+pub func mod14_f83(x: int) -> int { x + 83 }
+pub func mod14_f84(x: int) -> int { x + 84 }
+pub func mod14_f85(x: int) -> int { x + 85 }
+pub func mod14_f86(x: int) -> int { x + 86 }
+pub func mod14_f87(x: int) -> int { x + 87 }
+pub func mod14_f88(x: int) -> int { x + 88 }
+pub func mod14_f89(x: int) -> int { x + 89 }
+pub func mod14_f90(x: int) -> int { x + 90 }
+pub func mod14_f91(x: int) -> int { x + 91 }
+pub func mod14_f92(x: int) -> int { x + 92 }
+pub func mod14_f93(x: int) -> int { x + 93 }
+pub func mod14_f94(x: int) -> int { x + 94 }
+pub func mod14_f95(x: int) -> int { x + 95 }
+pub func mod14_f96(x: int) -> int { x + 96 }
+pub func mod14_f97(x: int) -> int { x + 97 }
+pub func mod14_f98(x: int) -> int { x + 98 }
+pub func mod14_f99(x: int) -> int { x + 99 }
+pub func mod14_f100(x: int) -> int { x + 100 }
+pub func mod14_f101(x: int) -> int { x + 101 }
+pub func mod14_f102(x: int) -> int { x + 102 }
+pub func mod14_f103(x: int) -> int { x + 103 }
+pub func mod14_f104(x: int) -> int { x + 104 }
+pub func mod14_f105(x: int) -> int { x + 105 }
+pub func mod14_f106(x: int) -> int { x + 106 }
+pub func mod14_f107(x: int) -> int { x + 107 }
+pub func mod14_f108(x: int) -> int { x + 108 }
+pub func mod14_f109(x: int) -> int { x + 109 }
+pub func mod14_f110(x: int) -> int { x + 110 }
+pub func mod14_f111(x: int) -> int { x + 111 }
+pub func mod14_f112(x: int) -> int { x + 112 }
+pub func mod14_f113(x: int) -> int { x + 113 }
+pub func mod14_f114(x: int) -> int { x + 114 }
+pub func mod14_f115(x: int) -> int { x + 115 }
+pub func mod14_f116(x: int) -> int { x + 116 }
+pub func mod14_f117(x: int) -> int { x + 117 }
+pub func mod14_f118(x: int) -> int { x + 118 }
+pub func mod14_f119(x: int) -> int { x + 119 }
+pub func mod14_f120(x: int) -> int { x + 120 }
+pub func mod14_f121(x: int) -> int { x + 121 }
+pub func mod14_f122(x: int) -> int { x + 122 }
+pub func mod14_f123(x: int) -> int { x + 123 }
+pub func mod14_f124(x: int) -> int { x + 124 }
+pub func mod14_f125(x: int) -> int { x + 125 }
+pub func mod14_f126(x: int) -> int { x + 126 }
+pub func mod14_f127(x: int) -> int { x + 127 }
+pub func mod14_f128(x: int) -> int { x + 128 }
+pub func mod14_f129(x: int) -> int { x + 129 }
+pub func mod14_f130(x: int) -> int { x + 130 }
+pub func mod14_f131(x: int) -> int { x + 131 }
+pub func mod14_f132(x: int) -> int { x + 132 }
+pub func mod14_f133(x: int) -> int { x + 133 }
+pub func mod14_f134(x: int) -> int { x + 134 }
+pub func mod14_f135(x: int) -> int { x + 135 }
+pub func mod14_f136(x: int) -> int { x + 136 }
+pub func mod14_f137(x: int) -> int { x + 137 }
+pub func mod14_f138(x: int) -> int { x + 138 }
+pub func mod14_f139(x: int) -> int { x + 139 }
+pub func mod14_f140(x: int) -> int { x + 140 }
+pub func mod14_f141(x: int) -> int { x + 141 }
+pub func mod14_f142(x: int) -> int { x + 142 }
+pub func mod14_f143(x: int) -> int { x + 143 }
+pub func mod14_f144(x: int) -> int { x + 144 }
+pub func mod14_f145(x: int) -> int { x + 145 }
+pub func mod14_f146(x: int) -> int { x + 146 }
+pub func mod14_f147(x: int) -> int { x + 147 }
+pub func mod14_f148(x: int) -> int { x + 148 }
+pub func mod14_f149(x: int) -> int { x + 149 }
+pub func mod14_f150(x: int) -> int { x + 150 }
+pub func mod14_f151(x: int) -> int { x + 151 }
+pub func mod14_f152(x: int) -> int { x + 152 }
+pub func mod14_f153(x: int) -> int { x + 153 }
+pub func mod14_f154(x: int) -> int { x + 154 }
+pub func mod14_f155(x: int) -> int { x + 155 }
+pub func mod14_f156(x: int) -> int { x + 156 }
+pub func mod14_f157(x: int) -> int { x + 157 }
+pub func mod14_f158(x: int) -> int { x + 158 }
+pub func mod14_f159(x: int) -> int { x + 159 }
+pub func mod14_f160(x: int) -> int { x + 160 }
+pub func mod14_f161(x: int) -> int { x + 161 }
+pub func mod14_f162(x: int) -> int { x + 162 }
+pub func mod14_f163(x: int) -> int { x + 163 }
+pub func mod14_f164(x: int) -> int { x + 164 }
+pub func mod14_f165(x: int) -> int { x + 165 }
+pub func mod14_f166(x: int) -> int { x + 166 }
+pub func mod14_f167(x: int) -> int { x + 167 }
+pub func mod14_f168(x: int) -> int { x + 168 }
+pub func mod14_f169(x: int) -> int { x + 169 }
+pub func mod14_f170(x: int) -> int { x + 170 }
+pub func mod14_f171(x: int) -> int { x + 171 }
+pub func mod14_f172(x: int) -> int { x + 172 }
+pub func mod14_f173(x: int) -> int { x + 173 }
+pub func mod14_f174(x: int) -> int { x + 174 }
+pub func mod14_f175(x: int) -> int { x + 175 }
+pub func mod14_f176(x: int) -> int { x + 176 }
+pub func mod14_f177(x: int) -> int { x + 177 }
+pub func mod14_f178(x: int) -> int { x + 178 }
+pub func mod14_f179(x: int) -> int { x + 179 }
+pub func mod14_f180(x: int) -> int { x + 180 }
+pub func mod14_f181(x: int) -> int { x + 181 }
+pub func mod14_f182(x: int) -> int { x + 182 }
+pub func mod14_f183(x: int) -> int { x + 183 }
+pub func mod14_f184(x: int) -> int { x + 184 }
+pub func mod14_f185(x: int) -> int { x + 185 }
+pub func mod14_f186(x: int) -> int { x + 186 }
+pub func mod14_f187(x: int) -> int { x + 187 }
+pub func mod14_f188(x: int) -> int { x + 188 }
+pub func mod14_f189(x: int) -> int { x + 189 }
+pub func mod14_f190(x: int) -> int { x + 190 }
+pub func mod14_f191(x: int) -> int { x + 191 }
+pub func mod14_f192(x: int) -> int { x + 192 }
+pub func mod14_f193(x: int) -> int { x + 193 }
+pub func mod14_f194(x: int) -> int { x + 194 }
+pub func mod14_f195(x: int) -> int { x + 195 }
+pub func mod14_f196(x: int) -> int { x + 196 }
+pub func mod14_f197(x: int) -> int { x + 197 }
+pub func mod14_f198(x: int) -> int { x + 198 }
+pub func mod14_f199(x: int) -> int { x + 199 }
diff --git a/bench/compiler/proj/mod15.zz b/bench/compiler/proj/mod15.zz
new file mode 100644
index 00000000..b6a0d81b
--- /dev/null
+++ b/bench/compiler/proj/mod15.zz
@@ -0,0 +1,200 @@
+pub func mod15_f0(x: int) -> int { x + 0 }
+pub func mod15_f1(x: int) -> int { x + 1 }
+pub func mod15_f2(x: int) -> int { x + 2 }
+pub func mod15_f3(x: int) -> int { x + 3 }
+pub func mod15_f4(x: int) -> int { x + 4 }
+pub func mod15_f5(x: int) -> int { x + 5 }
+pub func mod15_f6(x: int) -> int { x + 6 }
+pub func mod15_f7(x: int) -> int { x + 7 }
+pub func mod15_f8(x: int) -> int { x + 8 }
+pub func mod15_f9(x: int) -> int { x + 9 }
+pub func mod15_f10(x: int) -> int { x + 10 }
+pub func mod15_f11(x: int) -> int { x + 11 }
+pub func mod15_f12(x: int) -> int { x + 12 }
+pub func mod15_f13(x: int) -> int { x + 13 }
+pub func mod15_f14(x: int) -> int { x + 14 }
+pub func mod15_f15(x: int) -> int { x + 15 }
+pub func mod15_f16(x: int) -> int { x + 16 }
+pub func mod15_f17(x: int) -> int { x + 17 }
+pub func mod15_f18(x: int) -> int { x + 18 }
+pub func mod15_f19(x: int) -> int { x + 19 }
+pub func mod15_f20(x: int) -> int { x + 20 }
+pub func mod15_f21(x: int) -> int { x + 21 }
+pub func mod15_f22(x: int) -> int { x + 22 }
+pub func mod15_f23(x: int) -> int { x + 23 }
+pub func mod15_f24(x: int) -> int { x + 24 }
+pub func mod15_f25(x: int) -> int { x + 25 }
+pub func mod15_f26(x: int) -> int { x + 26 }
+pub func mod15_f27(x: int) -> int { x + 27 }
+pub func mod15_f28(x: int) -> int { x + 28 }
+pub func mod15_f29(x: int) -> int { x + 29 }
+pub func mod15_f30(x: int) -> int { x + 30 }
+pub func mod15_f31(x: int) -> int { x + 31 }
+pub func mod15_f32(x: int) -> int { x + 32 }
+pub func mod15_f33(x: int) -> int { x + 33 }
+pub func mod15_f34(x: int) -> int { x + 34 }
+pub func mod15_f35(x: int) -> int { x + 35 }
+pub func mod15_f36(x: int) -> int { x + 36 }
+pub func mod15_f37(x: int) -> int { x + 37 }
+pub func mod15_f38(x: int) -> int { x + 38 }
+pub func mod15_f39(x: int) -> int { x + 39 }
+pub func mod15_f40(x: int) -> int { x + 40 }
+pub func mod15_f41(x: int) -> int { x + 41 }
+pub func mod15_f42(x: int) -> int { x + 42 }
+pub func mod15_f43(x: int) -> int { x + 43 }
+pub func mod15_f44(x: int) -> int { x + 44 }
+pub func mod15_f45(x: int) -> int { x + 45 }
+pub func mod15_f46(x: int) -> int { x + 46 }
+pub func mod15_f47(x: int) -> int { x + 47 }
+pub func mod15_f48(x: int) -> int { x + 48 }
+pub func mod15_f49(x: int) -> int { x + 49 }
+pub func mod15_f50(x: int) -> int { x + 50 }
+pub func mod15_f51(x: int) -> int { x + 51 }
+pub func mod15_f52(x: int) -> int { x + 52 }
+pub func mod15_f53(x: int) -> int { x + 53 }
+pub func mod15_f54(x: int) -> int { x + 54 }
+pub func mod15_f55(x: int) -> int { x + 55 }
+pub func mod15_f56(x: int) -> int { x + 56 }
+pub func mod15_f57(x: int) -> int { x + 57 }
+pub func mod15_f58(x: int) -> int { x + 58 }
+pub func mod15_f59(x: int) -> int { x + 59 }
+pub func mod15_f60(x: int) -> int { x + 60 }
+pub func mod15_f61(x: int) -> int { x + 61 }
+pub func mod15_f62(x: int) -> int { x + 62 }
+pub func mod15_f63(x: int) -> int { x + 63 }
+pub func mod15_f64(x: int) -> int { x + 64 }
+pub func mod15_f65(x: int) -> int { x + 65 }
+pub func mod15_f66(x: int) -> int { x + 66 }
+pub func mod15_f67(x: int) -> int { x + 67 }
+pub func mod15_f68(x: int) -> int { x + 68 }
+pub func mod15_f69(x: int) -> int { x + 69 }
+pub func mod15_f70(x: int) -> int { x + 70 }
+pub func mod15_f71(x: int) -> int { x + 71 }
+pub func mod15_f72(x: int) -> int { x + 72 }
+pub func mod15_f73(x: int) -> int { x + 73 }
+pub func mod15_f74(x: int) -> int { x + 74 }
+pub func mod15_f75(x: int) -> int { x + 75 }
+pub func mod15_f76(x: int) -> int { x + 76 }
+pub func mod15_f77(x: int) -> int { x + 77 }
+pub func mod15_f78(x: int) -> int { x + 78 }
+pub func mod15_f79(x: int) -> int { x + 79 }
+pub func mod15_f80(x: int) -> int { x + 80 }
+pub func mod15_f81(x: int) -> int { x + 81 }
+pub func mod15_f82(x: int) -> int { x + 82 }
+pub func mod15_f83(x: int) -> int { x + 83 }
+pub func mod15_f84(x: int) -> int { x + 84 }
+pub func mod15_f85(x: int) -> int { x + 85 }
+pub func mod15_f86(x: int) -> int { x + 86 }
+pub func mod15_f87(x: int) -> int { x + 87 }
+pub func mod15_f88(x: int) -> int { x + 88 }
+pub func mod15_f89(x: int) -> int { x + 89 }
+pub func mod15_f90(x: int) -> int { x + 90 }
+pub func mod15_f91(x: int) -> int { x + 91 }
+pub func mod15_f92(x: int) -> int { x + 92 }
+pub func mod15_f93(x: int) -> int { x + 93 }
+pub func mod15_f94(x: int) -> int { x + 94 }
+pub func mod15_f95(x: int) -> int { x + 95 }
+pub func mod15_f96(x: int) -> int { x + 96 }
+pub func mod15_f97(x: int) -> int { x + 97 }
+pub func mod15_f98(x: int) -> int { x + 98 }
+pub func mod15_f99(x: int) -> int { x + 99 }
+pub func mod15_f100(x: int) -> int { x + 100 }
+pub func mod15_f101(x: int) -> int { x + 101 }
+pub func mod15_f102(x: int) -> int { x + 102 }
+pub func mod15_f103(x: int) -> int { x + 103 }
+pub func mod15_f104(x: int) -> int { x + 104 }
+pub func mod15_f105(x: int) -> int { x + 105 }
+pub func mod15_f106(x: int) -> int { x + 106 }
+pub func mod15_f107(x: int) -> int { x + 107 }
+pub func mod15_f108(x: int) -> int { x + 108 }
+pub func mod15_f109(x: int) -> int { x + 109 }
+pub func mod15_f110(x: int) -> int { x + 110 }
+pub func mod15_f111(x: int) -> int { x + 111 }
+pub func mod15_f112(x: int) -> int { x + 112 }
+pub func mod15_f113(x: int) -> int { x + 113 }
+pub func mod15_f114(x: int) -> int { x + 114 }
+pub func mod15_f115(x: int) -> int { x + 115 }
+pub func mod15_f116(x: int) -> int { x + 116 }
+pub func mod15_f117(x: int) -> int { x + 117 }
+pub func mod15_f118(x: int) -> int { x + 118 }
+pub func mod15_f119(x: int) -> int { x + 119 }
+pub func mod15_f120(x: int) -> int { x + 120 }
+pub func mod15_f121(x: int) -> int { x + 121 }
+pub func mod15_f122(x: int) -> int { x + 122 }
+pub func mod15_f123(x: int) -> int { x + 123 }
+pub func mod15_f124(x: int) -> int { x + 124 }
+pub func mod15_f125(x: int) -> int { x + 125 }
+pub func mod15_f126(x: int) -> int { x + 126 }
+pub func mod15_f127(x: int) -> int { x + 127 }
+pub func mod15_f128(x: int) -> int { x + 128 }
+pub func mod15_f129(x: int) -> int { x + 129 }
+pub func mod15_f130(x: int) -> int { x + 130 }
+pub func mod15_f131(x: int) -> int { x + 131 }
+pub func mod15_f132(x: int) -> int { x + 132 }
+pub func mod15_f133(x: int) -> int { x + 133 }
+pub func mod15_f134(x: int) -> int { x + 134 }
+pub func mod15_f135(x: int) -> int { x + 135 }
+pub func mod15_f136(x: int) -> int { x + 136 }
+pub func mod15_f137(x: int) -> int { x + 137 }
+pub func mod15_f138(x: int) -> int { x + 138 }
+pub func mod15_f139(x: int) -> int { x + 139 }
+pub func mod15_f140(x: int) -> int { x + 140 }
+pub func mod15_f141(x: int) -> int { x + 141 }
+pub func mod15_f142(x: int) -> int { x + 142 }
+pub func mod15_f143(x: int) -> int { x + 143 }
+pub func mod15_f144(x: int) -> int { x + 144 }
+pub func mod15_f145(x: int) -> int { x + 145 }
+pub func mod15_f146(x: int) -> int { x + 146 }
+pub func mod15_f147(x: int) -> int { x + 147 }
+pub func mod15_f148(x: int) -> int { x + 148 }
+pub func mod15_f149(x: int) -> int { x + 149 }
+pub func mod15_f150(x: int) -> int { x + 150 }
+pub func mod15_f151(x: int) -> int { x + 151 }
+pub func mod15_f152(x: int) -> int { x + 152 }
+pub func mod15_f153(x: int) -> int { x + 153 }
+pub func mod15_f154(x: int) -> int { x + 154 }
+pub func mod15_f155(x: int) -> int { x + 155 }
+pub func mod15_f156(x: int) -> int { x + 156 }
+pub func mod15_f157(x: int) -> int { x + 157 }
+pub func mod15_f158(x: int) -> int { x + 158 }
+pub func mod15_f159(x: int) -> int { x + 159 }
+pub func mod15_f160(x: int) -> int { x + 160 }
+pub func mod15_f161(x: int) -> int { x + 161 }
+pub func mod15_f162(x: int) -> int { x + 162 }
+pub func mod15_f163(x: int) -> int { x + 163 }
+pub func mod15_f164(x: int) -> int { x + 164 }
+pub func mod15_f165(x: int) -> int { x + 165 }
+pub func mod15_f166(x: int) -> int { x + 166 }
+pub func mod15_f167(x: int) -> int { x + 167 }
+pub func mod15_f168(x: int) -> int { x + 168 }
+pub func mod15_f169(x: int) -> int { x + 169 }
+pub func mod15_f170(x: int) -> int { x + 170 }
+pub func mod15_f171(x: int) -> int { x + 171 }
+pub func mod15_f172(x: int) -> int { x + 172 }
+pub func mod15_f173(x: int) -> int { x + 173 }
+pub func mod15_f174(x: int) -> int { x + 174 }
+pub func mod15_f175(x: int) -> int { x + 175 }
+pub func mod15_f176(x: int) -> int { x + 176 }
+pub func mod15_f177(x: int) -> int { x + 177 }
+pub func mod15_f178(x: int) -> int { x + 178 }
+pub func mod15_f179(x: int) -> int { x + 179 }
+pub func mod15_f180(x: int) -> int { x + 180 }
+pub func mod15_f181(x: int) -> int { x + 181 }
+pub func mod15_f182(x: int) -> int { x + 182 }
+pub func mod15_f183(x: int) -> int { x + 183 }
+pub func mod15_f184(x: int) -> int { x + 184 }
+pub func mod15_f185(x: int) -> int { x + 185 }
+pub func mod15_f186(x: int) -> int { x + 186 }
+pub func mod15_f187(x: int) -> int { x + 187 }
+pub func mod15_f188(x: int) -> int { x + 188 }
+pub func mod15_f189(x: int) -> int { x + 189 }
+pub func mod15_f190(x: int) -> int { x + 190 }
+pub func mod15_f191(x: int) -> int { x + 191 }
+pub func mod15_f192(x: int) -> int { x + 192 }
+pub func mod15_f193(x: int) -> int { x + 193 }
+pub func mod15_f194(x: int) -> int { x + 194 }
+pub func mod15_f195(x: int) -> int { x + 195 }
+pub func mod15_f196(x: int) -> int { x + 196 }
+pub func mod15_f197(x: int) -> int { x + 197 }
+pub func mod15_f198(x: int) -> int { x + 198 }
+pub func mod15_f199(x: int) -> int { x + 199 }
diff --git a/bench/compiler/proj/mod16.zz b/bench/compiler/proj/mod16.zz
new file mode 100644
index 00000000..7116084e
--- /dev/null
+++ b/bench/compiler/proj/mod16.zz
@@ -0,0 +1,200 @@
+pub func mod16_f0(x: int) -> int { x + 0 }
+pub func mod16_f1(x: int) -> int { x + 1 }
+pub func mod16_f2(x: int) -> int { x + 2 }
+pub func mod16_f3(x: int) -> int { x + 3 }
+pub func mod16_f4(x: int) -> int { x + 4 }
+pub func mod16_f5(x: int) -> int { x + 5 }
+pub func mod16_f6(x: int) -> int { x + 6 }
+pub func mod16_f7(x: int) -> int { x + 7 }
+pub func mod16_f8(x: int) -> int { x + 8 }
+pub func mod16_f9(x: int) -> int { x + 9 }
+pub func mod16_f10(x: int) -> int { x + 10 }
+pub func mod16_f11(x: int) -> int { x + 11 }
+pub func mod16_f12(x: int) -> int { x + 12 }
+pub func mod16_f13(x: int) -> int { x + 13 }
+pub func mod16_f14(x: int) -> int { x + 14 }
+pub func mod16_f15(x: int) -> int { x + 15 }
+pub func mod16_f16(x: int) -> int { x + 16 }
+pub func mod16_f17(x: int) -> int { x + 17 }
+pub func mod16_f18(x: int) -> int { x + 18 }
+pub func mod16_f19(x: int) -> int { x + 19 }
+pub func mod16_f20(x: int) -> int { x + 20 }
+pub func mod16_f21(x: int) -> int { x + 21 }
+pub func mod16_f22(x: int) -> int { x + 22 }
+pub func mod16_f23(x: int) -> int { x + 23 }
+pub func mod16_f24(x: int) -> int { x + 24 }
+pub func mod16_f25(x: int) -> int { x + 25 }
+pub func mod16_f26(x: int) -> int { x + 26 }
+pub func mod16_f27(x: int) -> int { x + 27 }
+pub func mod16_f28(x: int) -> int { x + 28 }
+pub func mod16_f29(x: int) -> int { x + 29 }
+pub func mod16_f30(x: int) -> int { x + 30 }
+pub func mod16_f31(x: int) -> int { x + 31 }
+pub func mod16_f32(x: int) -> int { x + 32 }
+pub func mod16_f33(x: int) -> int { x + 33 }
+pub func mod16_f34(x: int) -> int { x + 34 }
+pub func mod16_f35(x: int) -> int { x + 35 }
+pub func mod16_f36(x: int) -> int { x + 36 }
+pub func mod16_f37(x: int) -> int { x + 37 }
+pub func mod16_f38(x: int) -> int { x + 38 }
+pub func mod16_f39(x: int) -> int { x + 39 }
+pub func mod16_f40(x: int) -> int { x + 40 }
+pub func mod16_f41(x: int) -> int { x + 41 }
+pub func mod16_f42(x: int) -> int { x + 42 }
+pub func mod16_f43(x: int) -> int { x + 43 }
+pub func mod16_f44(x: int) -> int { x + 44 }
+pub func mod16_f45(x: int) -> int { x + 45 }
+pub func mod16_f46(x: int) -> int { x + 46 }
+pub func mod16_f47(x: int) -> int { x + 47 }
+pub func mod16_f48(x: int) -> int { x + 48 }
+pub func mod16_f49(x: int) -> int { x + 49 }
+pub func mod16_f50(x: int) -> int { x + 50 }
+pub func mod16_f51(x: int) -> int { x + 51 }
+pub func mod16_f52(x: int) -> int { x + 52 }
+pub func mod16_f53(x: int) -> int { x + 53 }
+pub func mod16_f54(x: int) -> int { x + 54 }
+pub func mod16_f55(x: int) -> int { x + 55 }
+pub func mod16_f56(x: int) -> int { x + 56 }
+pub func mod16_f57(x: int) -> int { x + 57 }
+pub func mod16_f58(x: int) -> int { x + 58 }
+pub func mod16_f59(x: int) -> int { x + 59 }
+pub func mod16_f60(x: int) -> int { x + 60 }
+pub func mod16_f61(x: int) -> int { x + 61 }
+pub func mod16_f62(x: int) -> int { x + 62 }
+pub func mod16_f63(x: int) -> int { x + 63 }
+pub func mod16_f64(x: int) -> int { x + 64 }
+pub func mod16_f65(x: int) -> int { x + 65 }
+pub func mod16_f66(x: int) -> int { x + 66 }
+pub func mod16_f67(x: int) -> int { x + 67 }
+pub func mod16_f68(x: int) -> int { x + 68 }
+pub func mod16_f69(x: int) -> int { x + 69 }
+pub func mod16_f70(x: int) -> int { x + 70 }
+pub func mod16_f71(x: int) -> int { x + 71 }
+pub func mod16_f72(x: int) -> int { x + 72 }
+pub func mod16_f73(x: int) -> int { x + 73 }
+pub func mod16_f74(x: int) -> int { x + 74 }
+pub func mod16_f75(x: int) -> int { x + 75 }
+pub func mod16_f76(x: int) -> int { x + 76 }
+pub func mod16_f77(x: int) -> int { x + 77 }
+pub func mod16_f78(x: int) -> int { x + 78 }
+pub func mod16_f79(x: int) -> int { x + 79 }
+pub func mod16_f80(x: int) -> int { x + 80 }
+pub func mod16_f81(x: int) -> int { x + 81 }
+pub func mod16_f82(x: int) -> int { x + 82 }
+pub func mod16_f83(x: int) -> int { x + 83 }
+pub func mod16_f84(x: int) -> int { x + 84 }
+pub func mod16_f85(x: int) -> int { x + 85 }
+pub func mod16_f86(x: int) -> int { x + 86 }
+pub func mod16_f87(x: int) -> int { x + 87 }
+pub func mod16_f88(x: int) -> int { x + 88 }
+pub func mod16_f89(x: int) -> int { x + 89 }
+pub func mod16_f90(x: int) -> int { x + 90 }
+pub func mod16_f91(x: int) -> int { x + 91 }
+pub func mod16_f92(x: int) -> int { x + 92 }
+pub func mod16_f93(x: int) -> int { x + 93 }
+pub func mod16_f94(x: int) -> int { x + 94 }
+pub func mod16_f95(x: int) -> int { x + 95 }
+pub func mod16_f96(x: int) -> int { x + 96 }
+pub func mod16_f97(x: int) -> int { x + 97 }
+pub func mod16_f98(x: int) -> int { x + 98 }
+pub func mod16_f99(x: int) -> int { x + 99 }
+pub func mod16_f100(x: int) -> int { x + 100 }
+pub func mod16_f101(x: int) -> int { x + 101 }
+pub func mod16_f102(x: int) -> int { x + 102 }
+pub func mod16_f103(x: int) -> int { x + 103 }
+pub func mod16_f104(x: int) -> int { x + 104 }
+pub func mod16_f105(x: int) -> int { x + 105 }
+pub func mod16_f106(x: int) -> int { x + 106 }
+pub func mod16_f107(x: int) -> int { x + 107 }
+pub func mod16_f108(x: int) -> int { x + 108 }
+pub func mod16_f109(x: int) -> int { x + 109 }
+pub func mod16_f110(x: int) -> int { x + 110 }
+pub func mod16_f111(x: int) -> int { x + 111 }
+pub func mod16_f112(x: int) -> int { x + 112 }
+pub func mod16_f113(x: int) -> int { x + 113 }
+pub func mod16_f114(x: int) -> int { x + 114 }
+pub func mod16_f115(x: int) -> int { x + 115 }
+pub func mod16_f116(x: int) -> int { x + 116 }
+pub func mod16_f117(x: int) -> int { x + 117 }
+pub func mod16_f118(x: int) -> int { x + 118 }
+pub func mod16_f119(x: int) -> int { x + 119 }
+pub func mod16_f120(x: int) -> int { x + 120 }
+pub func mod16_f121(x: int) -> int { x + 121 }
+pub func mod16_f122(x: int) -> int { x + 122 }
+pub func mod16_f123(x: int) -> int { x + 123 }
+pub func mod16_f124(x: int) -> int { x + 124 }
+pub func mod16_f125(x: int) -> int { x + 125 }
+pub func mod16_f126(x: int) -> int { x + 126 }
+pub func mod16_f127(x: int) -> int { x + 127 }
+pub func mod16_f128(x: int) -> int { x + 128 }
+pub func mod16_f129(x: int) -> int { x + 129 }
+pub func mod16_f130(x: int) -> int { x + 130 }
+pub func mod16_f131(x: int) -> int { x + 131 }
+pub func mod16_f132(x: int) -> int { x + 132 }
+pub func mod16_f133(x: int) -> int { x + 133 }
+pub func mod16_f134(x: int) -> int { x + 134 }
+pub func mod16_f135(x: int) -> int { x + 135 }
+pub func mod16_f136(x: int) -> int { x + 136 }
+pub func mod16_f137(x: int) -> int { x + 137 }
+pub func mod16_f138(x: int) -> int { x + 138 }
+pub func mod16_f139(x: int) -> int { x + 139 }
+pub func mod16_f140(x: int) -> int { x + 140 }
+pub func mod16_f141(x: int) -> int { x + 141 }
+pub func mod16_f142(x: int) -> int { x + 142 }
+pub func mod16_f143(x: int) -> int { x + 143 }
+pub func mod16_f144(x: int) -> int { x + 144 }
+pub func mod16_f145(x: int) -> int { x + 145 }
+pub func mod16_f146(x: int) -> int { x + 146 }
+pub func mod16_f147(x: int) -> int { x + 147 }
+pub func mod16_f148(x: int) -> int { x + 148 }
+pub func mod16_f149(x: int) -> int { x + 149 }
+pub func mod16_f150(x: int) -> int { x + 150 }
+pub func mod16_f151(x: int) -> int { x + 151 }
+pub func mod16_f152(x: int) -> int { x + 152 }
+pub func mod16_f153(x: int) -> int { x + 153 }
+pub func mod16_f154(x: int) -> int { x + 154 }
+pub func mod16_f155(x: int) -> int { x + 155 }
+pub func mod16_f156(x: int) -> int { x + 156 }
+pub func mod16_f157(x: int) -> int { x + 157 }
+pub func mod16_f158(x: int) -> int { x + 158 }
+pub func mod16_f159(x: int) -> int { x + 159 }
+pub func mod16_f160(x: int) -> int { x + 160 }
+pub func mod16_f161(x: int) -> int { x + 161 }
+pub func mod16_f162(x: int) -> int { x + 162 }
+pub func mod16_f163(x: int) -> int { x + 163 }
+pub func mod16_f164(x: int) -> int { x + 164 }
+pub func mod16_f165(x: int) -> int { x + 165 }
+pub func mod16_f166(x: int) -> int { x + 166 }
+pub func mod16_f167(x: int) -> int { x + 167 }
+pub func mod16_f168(x: int) -> int { x + 168 }
+pub func mod16_f169(x: int) -> int { x + 169 }
+pub func mod16_f170(x: int) -> int { x + 170 }
+pub func mod16_f171(x: int) -> int { x + 171 }
+pub func mod16_f172(x: int) -> int { x + 172 }
+pub func mod16_f173(x: int) -> int { x + 173 }
+pub func mod16_f174(x: int) -> int { x + 174 }
+pub func mod16_f175(x: int) -> int { x + 175 }
+pub func mod16_f176(x: int) -> int { x + 176 }
+pub func mod16_f177(x: int) -> int { x + 177 }
+pub func mod16_f178(x: int) -> int { x + 178 }
+pub func mod16_f179(x: int) -> int { x + 179 }
+pub func mod16_f180(x: int) -> int { x + 180 }
+pub func mod16_f181(x: int) -> int { x + 181 }
+pub func mod16_f182(x: int) -> int { x + 182 }
+pub func mod16_f183(x: int) -> int { x + 183 }
+pub func mod16_f184(x: int) -> int { x + 184 }
+pub func mod16_f185(x: int) -> int { x + 185 }
+pub func mod16_f186(x: int) -> int { x + 186 }
+pub func mod16_f187(x: int) -> int { x + 187 }
+pub func mod16_f188(x: int) -> int { x + 188 }
+pub func mod16_f189(x: int) -> int { x + 189 }
+pub func mod16_f190(x: int) -> int { x + 190 }
+pub func mod16_f191(x: int) -> int { x + 191 }
+pub func mod16_f192(x: int) -> int { x + 192 }
+pub func mod16_f193(x: int) -> int { x + 193 }
+pub func mod16_f194(x: int) -> int { x + 194 }
+pub func mod16_f195(x: int) -> int { x + 195 }
+pub func mod16_f196(x: int) -> int { x + 196 }
+pub func mod16_f197(x: int) -> int { x + 197 }
+pub func mod16_f198(x: int) -> int { x + 198 }
+pub func mod16_f199(x: int) -> int { x + 199 }
diff --git a/bench/compiler/proj/mod17.zz b/bench/compiler/proj/mod17.zz
new file mode 100644
index 00000000..e2a1cada
--- /dev/null
+++ b/bench/compiler/proj/mod17.zz
@@ -0,0 +1,200 @@
+pub func mod17_f0(x: int) -> int { x + 0 }
+pub func mod17_f1(x: int) -> int { x + 1 }
+pub func mod17_f2(x: int) -> int { x + 2 }
+pub func mod17_f3(x: int) -> int { x + 3 }
+pub func mod17_f4(x: int) -> int { x + 4 }
+pub func mod17_f5(x: int) -> int { x + 5 }
+pub func mod17_f6(x: int) -> int { x + 6 }
+pub func mod17_f7(x: int) -> int { x + 7 }
+pub func mod17_f8(x: int) -> int { x + 8 }
+pub func mod17_f9(x: int) -> int { x + 9 }
+pub func mod17_f10(x: int) -> int { x + 10 }
+pub func mod17_f11(x: int) -> int { x + 11 }
+pub func mod17_f12(x: int) -> int { x + 12 }
+pub func mod17_f13(x: int) -> int { x + 13 }
+pub func mod17_f14(x: int) -> int { x + 14 }
+pub func mod17_f15(x: int) -> int { x + 15 }
+pub func mod17_f16(x: int) -> int { x + 16 }
+pub func mod17_f17(x: int) -> int { x + 17 }
+pub func mod17_f18(x: int) -> int { x + 18 }
+pub func mod17_f19(x: int) -> int { x + 19 }
+pub func mod17_f20(x: int) -> int { x + 20 }
+pub func mod17_f21(x: int) -> int { x + 21 }
+pub func mod17_f22(x: int) -> int { x + 22 }
+pub func mod17_f23(x: int) -> int { x + 23 }
+pub func mod17_f24(x: int) -> int { x + 24 }
+pub func mod17_f25(x: int) -> int { x + 25 }
+pub func mod17_f26(x: int) -> int { x + 26 }
+pub func mod17_f27(x: int) -> int { x + 27 }
+pub func mod17_f28(x: int) -> int { x + 28 }
+pub func mod17_f29(x: int) -> int { x + 29 }
+pub func mod17_f30(x: int) -> int { x + 30 }
+pub func mod17_f31(x: int) -> int { x + 31 }
+pub func mod17_f32(x: int) -> int { x + 32 }
+pub func mod17_f33(x: int) -> int { x + 33 }
+pub func mod17_f34(x: int) -> int { x + 34 }
+pub func mod17_f35(x: int) -> int { x + 35 }
+pub func mod17_f36(x: int) -> int { x + 36 }
+pub func mod17_f37(x: int) -> int { x + 37 }
+pub func mod17_f38(x: int) -> int { x + 38 }
+pub func mod17_f39(x: int) -> int { x + 39 }
+pub func mod17_f40(x: int) -> int { x + 40 }
+pub func mod17_f41(x: int) -> int { x + 41 }
+pub func mod17_f42(x: int) -> int { x + 42 }
+pub func mod17_f43(x: int) -> int { x + 43 }
+pub func mod17_f44(x: int) -> int { x + 44 }
+pub func mod17_f45(x: int) -> int { x + 45 }
+pub func mod17_f46(x: int) -> int { x + 46 }
+pub func mod17_f47(x: int) -> int { x + 47 }
+pub func mod17_f48(x: int) -> int { x + 48 }
+pub func mod17_f49(x: int) -> int { x + 49 }
+pub func mod17_f50(x: int) -> int { x + 50 }
+pub func mod17_f51(x: int) -> int { x + 51 }
+pub func mod17_f52(x: int) -> int { x + 52 }
+pub func mod17_f53(x: int) -> int { x + 53 }
+pub func mod17_f54(x: int) -> int { x + 54 }
+pub func mod17_f55(x: int) -> int { x + 55 }
+pub func mod17_f56(x: int) -> int { x + 56 }
+pub func mod17_f57(x: int) -> int { x + 57 }
+pub func mod17_f58(x: int) -> int { x + 58 }
+pub func mod17_f59(x: int) -> int { x + 59 }
+pub func mod17_f60(x: int) -> int { x + 60 }
+pub func mod17_f61(x: int) -> int { x + 61 }
+pub func mod17_f62(x: int) -> int { x + 62 }
+pub func mod17_f63(x: int) -> int { x + 63 }
+pub func mod17_f64(x: int) -> int { x + 64 }
+pub func mod17_f65(x: int) -> int { x + 65 }
+pub func mod17_f66(x: int) -> int { x + 66 }
+pub func mod17_f67(x: int) -> int { x + 67 }
+pub func mod17_f68(x: int) -> int { x + 68 }
+pub func mod17_f69(x: int) -> int { x + 69 }
+pub func mod17_f70(x: int) -> int { x + 70 }
+pub func mod17_f71(x: int) -> int { x + 71 }
+pub func mod17_f72(x: int) -> int { x + 72 }
+pub func mod17_f73(x: int) -> int { x + 73 }
+pub func mod17_f74(x: int) -> int { x + 74 }
+pub func mod17_f75(x: int) -> int { x + 75 }
+pub func mod17_f76(x: int) -> int { x + 76 }
+pub func mod17_f77(x: int) -> int { x + 77 }
+pub func mod17_f78(x: int) -> int { x + 78 }
+pub func mod17_f79(x: int) -> int { x + 79 }
+pub func mod17_f80(x: int) -> int { x + 80 }
+pub func mod17_f81(x: int) -> int { x + 81 }
+pub func mod17_f82(x: int) -> int { x + 82 }
+pub func mod17_f83(x: int) -> int { x + 83 }
+pub func mod17_f84(x: int) -> int { x + 84 }
+pub func mod17_f85(x: int) -> int { x + 85 }
+pub func mod17_f86(x: int) -> int { x + 86 }
+pub func mod17_f87(x: int) -> int { x + 87 }
+pub func mod17_f88(x: int) -> int { x + 88 }
+pub func mod17_f89(x: int) -> int { x + 89 }
+pub func mod17_f90(x: int) -> int { x + 90 }
+pub func mod17_f91(x: int) -> int { x + 91 }
+pub func mod17_f92(x: int) -> int { x + 92 }
+pub func mod17_f93(x: int) -> int { x + 93 }
+pub func mod17_f94(x: int) -> int { x + 94 }
+pub func mod17_f95(x: int) -> int { x + 95 }
+pub func mod17_f96(x: int) -> int { x + 96 }
+pub func mod17_f97(x: int) -> int { x + 97 }
+pub func mod17_f98(x: int) -> int { x + 98 }
+pub func mod17_f99(x: int) -> int { x + 99 }
+pub func mod17_f100(x: int) -> int { x + 100 }
+pub func mod17_f101(x: int) -> int { x + 101 }
+pub func mod17_f102(x: int) -> int { x + 102 }
+pub func mod17_f103(x: int) -> int { x + 103 }
+pub func mod17_f104(x: int) -> int { x + 104 }
+pub func mod17_f105(x: int) -> int { x + 105 }
+pub func mod17_f106(x: int) -> int { x + 106 }
+pub func mod17_f107(x: int) -> int { x + 107 }
+pub func mod17_f108(x: int) -> int { x + 108 }
+pub func mod17_f109(x: int) -> int { x + 109 }
+pub func mod17_f110(x: int) -> int { x + 110 }
+pub func mod17_f111(x: int) -> int { x + 111 }
+pub func mod17_f112(x: int) -> int { x + 112 }
+pub func mod17_f113(x: int) -> int { x + 113 }
+pub func mod17_f114(x: int) -> int { x + 114 }
+pub func mod17_f115(x: int) -> int { x + 115 }
+pub func mod17_f116(x: int) -> int { x + 116 }
+pub func mod17_f117(x: int) -> int { x + 117 }
+pub func mod17_f118(x: int) -> int { x + 118 }
+pub func mod17_f119(x: int) -> int { x + 119 }
+pub func mod17_f120(x: int) -> int { x + 120 }
+pub func mod17_f121(x: int) -> int { x + 121 }
+pub func mod17_f122(x: int) -> int { x + 122 }
+pub func mod17_f123(x: int) -> int { x + 123 }
+pub func mod17_f124(x: int) -> int { x + 124 }
+pub func mod17_f125(x: int) -> int { x + 125 }
+pub func mod17_f126(x: int) -> int { x + 126 }
+pub func mod17_f127(x: int) -> int { x + 127 }
+pub func mod17_f128(x: int) -> int { x + 128 }
+pub func mod17_f129(x: int) -> int { x + 129 }
+pub func mod17_f130(x: int) -> int { x + 130 }
+pub func mod17_f131(x: int) -> int { x + 131 }
+pub func mod17_f132(x: int) -> int { x + 132 }
+pub func mod17_f133(x: int) -> int { x + 133 }
+pub func mod17_f134(x: int) -> int { x + 134 }
+pub func mod17_f135(x: int) -> int { x + 135 }
+pub func mod17_f136(x: int) -> int { x + 136 }
+pub func mod17_f137(x: int) -> int { x + 137 }
+pub func mod17_f138(x: int) -> int { x + 138 }
+pub func mod17_f139(x: int) -> int { x + 139 }
+pub func mod17_f140(x: int) -> int { x + 140 }
+pub func mod17_f141(x: int) -> int { x + 141 }
+pub func mod17_f142(x: int) -> int { x + 142 }
+pub func mod17_f143(x: int) -> int { x + 143 }
+pub func mod17_f144(x: int) -> int { x + 144 }
+pub func mod17_f145(x: int) -> int { x + 145 }
+pub func mod17_f146(x: int) -> int { x + 146 }
+pub func mod17_f147(x: int) -> int { x + 147 }
+pub func mod17_f148(x: int) -> int { x + 148 }
+pub func mod17_f149(x: int) -> int { x + 149 }
+pub func mod17_f150(x: int) -> int { x + 150 }
+pub func mod17_f151(x: int) -> int { x + 151 }
+pub func mod17_f152(x: int) -> int { x + 152 }
+pub func mod17_f153(x: int) -> int { x + 153 }
+pub func mod17_f154(x: int) -> int { x + 154 }
+pub func mod17_f155(x: int) -> int { x + 155 }
+pub func mod17_f156(x: int) -> int { x + 156 }
+pub func mod17_f157(x: int) -> int { x + 157 }
+pub func mod17_f158(x: int) -> int { x + 158 }
+pub func mod17_f159(x: int) -> int { x + 159 }
+pub func mod17_f160(x: int) -> int { x + 160 }
+pub func mod17_f161(x: int) -> int { x + 161 }
+pub func mod17_f162(x: int) -> int { x + 162 }
+pub func mod17_f163(x: int) -> int { x + 163 }
+pub func mod17_f164(x: int) -> int { x + 164 }
+pub func mod17_f165(x: int) -> int { x + 165 }
+pub func mod17_f166(x: int) -> int { x + 166 }
+pub func mod17_f167(x: int) -> int { x + 167 }
+pub func mod17_f168(x: int) -> int { x + 168 }
+pub func mod17_f169(x: int) -> int { x + 169 }
+pub func mod17_f170(x: int) -> int { x + 170 }
+pub func mod17_f171(x: int) -> int { x + 171 }
+pub func mod17_f172(x: int) -> int { x + 172 }
+pub func mod17_f173(x: int) -> int { x + 173 }
+pub func mod17_f174(x: int) -> int { x + 174 }
+pub func mod17_f175(x: int) -> int { x + 175 }
+pub func mod17_f176(x: int) -> int { x + 176 }
+pub func mod17_f177(x: int) -> int { x + 177 }
+pub func mod17_f178(x: int) -> int { x + 178 }
+pub func mod17_f179(x: int) -> int { x + 179 }
+pub func mod17_f180(x: int) -> int { x + 180 }
+pub func mod17_f181(x: int) -> int { x + 181 }
+pub func mod17_f182(x: int) -> int { x + 182 }
+pub func mod17_f183(x: int) -> int { x + 183 }
+pub func mod17_f184(x: int) -> int { x + 184 }
+pub func mod17_f185(x: int) -> int { x + 185 }
+pub func mod17_f186(x: int) -> int { x + 186 }
+pub func mod17_f187(x: int) -> int { x + 187 }
+pub func mod17_f188(x: int) -> int { x + 188 }
+pub func mod17_f189(x: int) -> int { x + 189 }
+pub func mod17_f190(x: int) -> int { x + 190 }
+pub func mod17_f191(x: int) -> int { x + 191 }
+pub func mod17_f192(x: int) -> int { x + 192 }
+pub func mod17_f193(x: int) -> int { x + 193 }
+pub func mod17_f194(x: int) -> int { x + 194 }
+pub func mod17_f195(x: int) -> int { x + 195 }
+pub func mod17_f196(x: int) -> int { x + 196 }
+pub func mod17_f197(x: int) -> int { x + 197 }
+pub func mod17_f198(x: int) -> int { x + 198 }
+pub func mod17_f199(x: int) -> int { x + 199 }
diff --git a/bench/compiler/proj/mod18.zz b/bench/compiler/proj/mod18.zz
new file mode 100644
index 00000000..e433a443
--- /dev/null
+++ b/bench/compiler/proj/mod18.zz
@@ -0,0 +1,200 @@
+pub func mod18_f0(x: int) -> int { x + 0 }
+pub func mod18_f1(x: int) -> int { x + 1 }
+pub func mod18_f2(x: int) -> int { x + 2 }
+pub func mod18_f3(x: int) -> int { x + 3 }
+pub func mod18_f4(x: int) -> int { x + 4 }
+pub func mod18_f5(x: int) -> int { x + 5 }
+pub func mod18_f6(x: int) -> int { x + 6 }
+pub func mod18_f7(x: int) -> int { x + 7 }
+pub func mod18_f8(x: int) -> int { x + 8 }
+pub func mod18_f9(x: int) -> int { x + 9 }
+pub func mod18_f10(x: int) -> int { x + 10 }
+pub func mod18_f11(x: int) -> int { x + 11 }
+pub func mod18_f12(x: int) -> int { x + 12 }
+pub func mod18_f13(x: int) -> int { x + 13 }
+pub func mod18_f14(x: int) -> int { x + 14 }
+pub func mod18_f15(x: int) -> int { x + 15 }
+pub func mod18_f16(x: int) -> int { x + 16 }
+pub func mod18_f17(x: int) -> int { x + 17 }
+pub func mod18_f18(x: int) -> int { x + 18 }
+pub func mod18_f19(x: int) -> int { x + 19 }
+pub func mod18_f20(x: int) -> int { x + 20 }
+pub func mod18_f21(x: int) -> int { x + 21 }
+pub func mod18_f22(x: int) -> int { x + 22 }
+pub func mod18_f23(x: int) -> int { x + 23 }
+pub func mod18_f24(x: int) -> int { x + 24 }
+pub func mod18_f25(x: int) -> int { x + 25 }
+pub func mod18_f26(x: int) -> int { x + 26 }
+pub func mod18_f27(x: int) -> int { x + 27 }
+pub func mod18_f28(x: int) -> int { x + 28 }
+pub func mod18_f29(x: int) -> int { x + 29 }
+pub func mod18_f30(x: int) -> int { x + 30 }
+pub func mod18_f31(x: int) -> int { x + 31 }
+pub func mod18_f32(x: int) -> int { x + 32 }
+pub func mod18_f33(x: int) -> int { x + 33 }
+pub func mod18_f34(x: int) -> int { x + 34 }
+pub func mod18_f35(x: int) -> int { x + 35 }
+pub func mod18_f36(x: int) -> int { x + 36 }
+pub func mod18_f37(x: int) -> int { x + 37 }
+pub func mod18_f38(x: int) -> int { x + 38 }
+pub func mod18_f39(x: int) -> int { x + 39 }
+pub func mod18_f40(x: int) -> int { x + 40 }
+pub func mod18_f41(x: int) -> int { x + 41 }
+pub func mod18_f42(x: int) -> int { x + 42 }
+pub func mod18_f43(x: int) -> int { x + 43 }
+pub func mod18_f44(x: int) -> int { x + 44 }
+pub func mod18_f45(x: int) -> int { x + 45 }
+pub func mod18_f46(x: int) -> int { x + 46 }
+pub func mod18_f47(x: int) -> int { x + 47 }
+pub func mod18_f48(x: int) -> int { x + 48 }
+pub func mod18_f49(x: int) -> int { x + 49 }
+pub func mod18_f50(x: int) -> int { x + 50 }
+pub func mod18_f51(x: int) -> int { x + 51 }
+pub func mod18_f52(x: int) -> int { x + 52 }
+pub func mod18_f53(x: int) -> int { x + 53 }
+pub func mod18_f54(x: int) -> int { x + 54 }
+pub func mod18_f55(x: int) -> int { x + 55 }
+pub func mod18_f56(x: int) -> int { x + 56 }
+pub func mod18_f57(x: int) -> int { x + 57 }
+pub func mod18_f58(x: int) -> int { x + 58 }
+pub func mod18_f59(x: int) -> int { x + 59 }
+pub func mod18_f60(x: int) -> int { x + 60 }
+pub func mod18_f61(x: int) -> int { x + 61 }
+pub func mod18_f62(x: int) -> int { x + 62 }
+pub func mod18_f63(x: int) -> int { x + 63 }
+pub func mod18_f64(x: int) -> int { x + 64 }
+pub func mod18_f65(x: int) -> int { x + 65 }
+pub func mod18_f66(x: int) -> int { x + 66 }
+pub func mod18_f67(x: int) -> int { x + 67 }
+pub func mod18_f68(x: int) -> int { x + 68 }
+pub func mod18_f69(x: int) -> int { x + 69 }
+pub func mod18_f70(x: int) -> int { x + 70 }
+pub func mod18_f71(x: int) -> int { x + 71 }
+pub func mod18_f72(x: int) -> int { x + 72 }
+pub func mod18_f73(x: int) -> int { x + 73 }
+pub func mod18_f74(x: int) -> int { x + 74 }
+pub func mod18_f75(x: int) -> int { x + 75 }
+pub func mod18_f76(x: int) -> int { x + 76 }
+pub func mod18_f77(x: int) -> int { x + 77 }
+pub func mod18_f78(x: int) -> int { x + 78 }
+pub func mod18_f79(x: int) -> int { x + 79 }
+pub func mod18_f80(x: int) -> int { x + 80 }
+pub func mod18_f81(x: int) -> int { x + 81 }
+pub func mod18_f82(x: int) -> int { x + 82 }
+pub func mod18_f83(x: int) -> int { x + 83 }
+pub func mod18_f84(x: int) -> int { x + 84 }
+pub func mod18_f85(x: int) -> int { x + 85 }
+pub func mod18_f86(x: int) -> int { x + 86 }
+pub func mod18_f87(x: int) -> int { x + 87 }
+pub func mod18_f88(x: int) -> int { x + 88 }
+pub func mod18_f89(x: int) -> int { x + 89 }
+pub func mod18_f90(x: int) -> int { x + 90 }
+pub func mod18_f91(x: int) -> int { x + 91 }
+pub func mod18_f92(x: int) -> int { x + 92 }
+pub func mod18_f93(x: int) -> int { x + 93 }
+pub func mod18_f94(x: int) -> int { x + 94 }
+pub func mod18_f95(x: int) -> int { x + 95 }
+pub func mod18_f96(x: int) -> int { x + 96 }
+pub func mod18_f97(x: int) -> int { x + 97 }
+pub func mod18_f98(x: int) -> int { x + 98 }
+pub func mod18_f99(x: int) -> int { x + 99 }
+pub func mod18_f100(x: int) -> int { x + 100 }
+pub func mod18_f101(x: int) -> int { x + 101 }
+pub func mod18_f102(x: int) -> int { x + 102 }
+pub func mod18_f103(x: int) -> int { x + 103 }
+pub func mod18_f104(x: int) -> int { x + 104 }
+pub func mod18_f105(x: int) -> int { x + 105 }
+pub func mod18_f106(x: int) -> int { x + 106 }
+pub func mod18_f107(x: int) -> int { x + 107 }
+pub func mod18_f108(x: int) -> int { x + 108 }
+pub func mod18_f109(x: int) -> int { x + 109 }
+pub func mod18_f110(x: int) -> int { x + 110 }
+pub func mod18_f111(x: int) -> int { x + 111 }
+pub func mod18_f112(x: int) -> int { x + 112 }
+pub func mod18_f113(x: int) -> int { x + 113 }
+pub func mod18_f114(x: int) -> int { x + 114 }
+pub func mod18_f115(x: int) -> int { x + 115 }
+pub func mod18_f116(x: int) -> int { x + 116 }
+pub func mod18_f117(x: int) -> int { x + 117 }
+pub func mod18_f118(x: int) -> int { x + 118 }
+pub func mod18_f119(x: int) -> int { x + 119 }
+pub func mod18_f120(x: int) -> int { x + 120 }
+pub func mod18_f121(x: int) -> int { x + 121 }
+pub func mod18_f122(x: int) -> int { x + 122 }
+pub func mod18_f123(x: int) -> int { x + 123 }
+pub func mod18_f124(x: int) -> int { x + 124 }
+pub func mod18_f125(x: int) -> int { x + 125 }
+pub func mod18_f126(x: int) -> int { x + 126 }
+pub func mod18_f127(x: int) -> int { x + 127 }
+pub func mod18_f128(x: int) -> int { x + 128 }
+pub func mod18_f129(x: int) -> int { x + 129 }
+pub func mod18_f130(x: int) -> int { x + 130 }
+pub func mod18_f131(x: int) -> int { x + 131 }
+pub func mod18_f132(x: int) -> int { x + 132 }
+pub func mod18_f133(x: int) -> int { x + 133 }
+pub func mod18_f134(x: int) -> int { x + 134 }
+pub func mod18_f135(x: int) -> int { x + 135 }
+pub func mod18_f136(x: int) -> int { x + 136 }
+pub func mod18_f137(x: int) -> int { x + 137 }
+pub func mod18_f138(x: int) -> int { x + 138 }
+pub func mod18_f139(x: int) -> int { x + 139 }
+pub func mod18_f140(x: int) -> int { x + 140 }
+pub func mod18_f141(x: int) -> int { x + 141 }
+pub func mod18_f142(x: int) -> int { x + 142 }
+pub func mod18_f143(x: int) -> int { x + 143 }
+pub func mod18_f144(x: int) -> int { x + 144 }
+pub func mod18_f145(x: int) -> int { x + 145 }
+pub func mod18_f146(x: int) -> int { x + 146 }
+pub func mod18_f147(x: int) -> int { x + 147 }
+pub func mod18_f148(x: int) -> int { x + 148 }
+pub func mod18_f149(x: int) -> int { x + 149 }
+pub func mod18_f150(x: int) -> int { x + 150 }
+pub func mod18_f151(x: int) -> int { x + 151 }
+pub func mod18_f152(x: int) -> int { x + 152 }
+pub func mod18_f153(x: int) -> int { x + 153 }
+pub func mod18_f154(x: int) -> int { x + 154 }
+pub func mod18_f155(x: int) -> int { x + 155 }
+pub func mod18_f156(x: int) -> int { x + 156 }
+pub func mod18_f157(x: int) -> int { x + 157 }
+pub func mod18_f158(x: int) -> int { x + 158 }
+pub func mod18_f159(x: int) -> int { x + 159 }
+pub func mod18_f160(x: int) -> int { x + 160 }
+pub func mod18_f161(x: int) -> int { x + 161 }
+pub func mod18_f162(x: int) -> int { x + 162 }
+pub func mod18_f163(x: int) -> int { x + 163 }
+pub func mod18_f164(x: int) -> int { x + 164 }
+pub func mod18_f165(x: int) -> int { x + 165 }
+pub func mod18_f166(x: int) -> int { x + 166 }
+pub func mod18_f167(x: int) -> int { x + 167 }
+pub func mod18_f168(x: int) -> int { x + 168 }
+pub func mod18_f169(x: int) -> int { x + 169 }
+pub func mod18_f170(x: int) -> int { x + 170 }
+pub func mod18_f171(x: int) -> int { x + 171 }
+pub func mod18_f172(x: int) -> int { x + 172 }
+pub func mod18_f173(x: int) -> int { x + 173 }
+pub func mod18_f174(x: int) -> int { x + 174 }
+pub func mod18_f175(x: int) -> int { x + 175 }
+pub func mod18_f176(x: int) -> int { x + 176 }
+pub func mod18_f177(x: int) -> int { x + 177 }
+pub func mod18_f178(x: int) -> int { x + 178 }
+pub func mod18_f179(x: int) -> int { x + 179 }
+pub func mod18_f180(x: int) -> int { x + 180 }
+pub func mod18_f181(x: int) -> int { x + 181 }
+pub func mod18_f182(x: int) -> int { x + 182 }
+pub func mod18_f183(x: int) -> int { x + 183 }
+pub func mod18_f184(x: int) -> int { x + 184 }
+pub func mod18_f185(x: int) -> int { x + 185 }
+pub func mod18_f186(x: int) -> int { x + 186 }
+pub func mod18_f187(x: int) -> int { x + 187 }
+pub func mod18_f188(x: int) -> int { x + 188 }
+pub func mod18_f189(x: int) -> int { x + 189 }
+pub func mod18_f190(x: int) -> int { x + 190 }
+pub func mod18_f191(x: int) -> int { x + 191 }
+pub func mod18_f192(x: int) -> int { x + 192 }
+pub func mod18_f193(x: int) -> int { x + 193 }
+pub func mod18_f194(x: int) -> int { x + 194 }
+pub func mod18_f195(x: int) -> int { x + 195 }
+pub func mod18_f196(x: int) -> int { x + 196 }
+pub func mod18_f197(x: int) -> int { x + 197 }
+pub func mod18_f198(x: int) -> int { x + 198 }
+pub func mod18_f199(x: int) -> int { x + 199 }
diff --git a/bench/compiler/proj/mod19.zz b/bench/compiler/proj/mod19.zz
new file mode 100644
index 00000000..77d65fc5
--- /dev/null
+++ b/bench/compiler/proj/mod19.zz
@@ -0,0 +1,200 @@
+pub func mod19_f0(x: int) -> int { x + 0 }
+pub func mod19_f1(x: int) -> int { x + 1 }
+pub func mod19_f2(x: int) -> int { x + 2 }
+pub func mod19_f3(x: int) -> int { x + 3 }
+pub func mod19_f4(x: int) -> int { x + 4 }
+pub func mod19_f5(x: int) -> int { x + 5 }
+pub func mod19_f6(x: int) -> int { x + 6 }
+pub func mod19_f7(x: int) -> int { x + 7 }
+pub func mod19_f8(x: int) -> int { x + 8 }
+pub func mod19_f9(x: int) -> int { x + 9 }
+pub func mod19_f10(x: int) -> int { x + 10 }
+pub func mod19_f11(x: int) -> int { x + 11 }
+pub func mod19_f12(x: int) -> int { x + 12 }
+pub func mod19_f13(x: int) -> int { x + 13 }
+pub func mod19_f14(x: int) -> int { x + 14 }
+pub func mod19_f15(x: int) -> int { x + 15 }
+pub func mod19_f16(x: int) -> int { x + 16 }
+pub func mod19_f17(x: int) -> int { x + 17 }
+pub func mod19_f18(x: int) -> int { x + 18 }
+pub func mod19_f19(x: int) -> int { x + 19 }
+pub func mod19_f20(x: int) -> int { x + 20 }
+pub func mod19_f21(x: int) -> int { x + 21 }
+pub func mod19_f22(x: int) -> int { x + 22 }
+pub func mod19_f23(x: int) -> int { x + 23 }
+pub func mod19_f24(x: int) -> int { x + 24 }
+pub func mod19_f25(x: int) -> int { x + 25 }
+pub func mod19_f26(x: int) -> int { x + 26 }
+pub func mod19_f27(x: int) -> int { x + 27 }
+pub func mod19_f28(x: int) -> int { x + 28 }
+pub func mod19_f29(x: int) -> int { x + 29 }
+pub func mod19_f30(x: int) -> int { x + 30 }
+pub func mod19_f31(x: int) -> int { x + 31 }
+pub func mod19_f32(x: int) -> int { x + 32 }
+pub func mod19_f33(x: int) -> int { x + 33 }
+pub func mod19_f34(x: int) -> int { x + 34 }
+pub func mod19_f35(x: int) -> int { x + 35 }
+pub func mod19_f36(x: int) -> int { x + 36 }
+pub func mod19_f37(x: int) -> int { x + 37 }
+pub func mod19_f38(x: int) -> int { x + 38 }
+pub func mod19_f39(x: int) -> int { x + 39 }
+pub func mod19_f40(x: int) -> int { x + 40 }
+pub func mod19_f41(x: int) -> int { x + 41 }
+pub func mod19_f42(x: int) -> int { x + 42 }
+pub func mod19_f43(x: int) -> int { x + 43 }
+pub func mod19_f44(x: int) -> int { x + 44 }
+pub func mod19_f45(x: int) -> int { x + 45 }
+pub func mod19_f46(x: int) -> int { x + 46 }
+pub func mod19_f47(x: int) -> int { x + 47 }
+pub func mod19_f48(x: int) -> int { x + 48 }
+pub func mod19_f49(x: int) -> int { x + 49 }
+pub func mod19_f50(x: int) -> int { x + 50 }
+pub func mod19_f51(x: int) -> int { x + 51 }
+pub func mod19_f52(x: int) -> int { x + 52 }
+pub func mod19_f53(x: int) -> int { x + 53 }
+pub func mod19_f54(x: int) -> int { x + 54 }
+pub func mod19_f55(x: int) -> int { x + 55 }
+pub func mod19_f56(x: int) -> int { x + 56 }
+pub func mod19_f57(x: int) -> int { x + 57 }
+pub func mod19_f58(x: int) -> int { x + 58 }
+pub func mod19_f59(x: int) -> int { x + 59 }
+pub func mod19_f60(x: int) -> int { x + 60 }
+pub func mod19_f61(x: int) -> int { x + 61 }
+pub func mod19_f62(x: int) -> int { x + 62 }
+pub func mod19_f63(x: int) -> int { x + 63 }
+pub func mod19_f64(x: int) -> int { x + 64 }
+pub func mod19_f65(x: int) -> int { x + 65 }
+pub func mod19_f66(x: int) -> int { x + 66 }
+pub func mod19_f67(x: int) -> int { x + 67 }
+pub func mod19_f68(x: int) -> int { x + 68 }
+pub func mod19_f69(x: int) -> int { x + 69 }
+pub func mod19_f70(x: int) -> int { x + 70 }
+pub func mod19_f71(x: int) -> int { x + 71 }
+pub func mod19_f72(x: int) -> int { x + 72 }
+pub func mod19_f73(x: int) -> int { x + 73 }
+pub func mod19_f74(x: int) -> int { x + 74 }
+pub func mod19_f75(x: int) -> int { x + 75 }
+pub func mod19_f76(x: int) -> int { x + 76 }
+pub func mod19_f77(x: int) -> int { x + 77 }
+pub func mod19_f78(x: int) -> int { x + 78 }
+pub func mod19_f79(x: int) -> int { x + 79 }
+pub func mod19_f80(x: int) -> int { x + 80 }
+pub func mod19_f81(x: int) -> int { x + 81 }
+pub func mod19_f82(x: int) -> int { x + 82 }
+pub func mod19_f83(x: int) -> int { x + 83 }
+pub func mod19_f84(x: int) -> int { x + 84 }
+pub func mod19_f85(x: int) -> int { x + 85 }
+pub func mod19_f86(x: int) -> int { x + 86 }
+pub func mod19_f87(x: int) -> int { x + 87 }
+pub func mod19_f88(x: int) -> int { x + 88 }
+pub func mod19_f89(x: int) -> int { x + 89 }
+pub func mod19_f90(x: int) -> int { x + 90 }
+pub func mod19_f91(x: int) -> int { x + 91 }
+pub func mod19_f92(x: int) -> int { x + 92 }
+pub func mod19_f93(x: int) -> int { x + 93 }
+pub func mod19_f94(x: int) -> int { x + 94 }
+pub func mod19_f95(x: int) -> int { x + 95 }
+pub func mod19_f96(x: int) -> int { x + 96 }
+pub func mod19_f97(x: int) -> int { x + 97 }
+pub func mod19_f98(x: int) -> int { x + 98 }
+pub func mod19_f99(x: int) -> int { x + 99 }
+pub func mod19_f100(x: int) -> int { x + 100 }
+pub func mod19_f101(x: int) -> int { x + 101 }
+pub func mod19_f102(x: int) -> int { x + 102 }
+pub func mod19_f103(x: int) -> int { x + 103 }
+pub func mod19_f104(x: int) -> int { x + 104 }
+pub func mod19_f105(x: int) -> int { x + 105 }
+pub func mod19_f106(x: int) -> int { x + 106 }
+pub func mod19_f107(x: int) -> int { x + 107 }
+pub func mod19_f108(x: int) -> int { x + 108 }
+pub func mod19_f109(x: int) -> int { x + 109 }
+pub func mod19_f110(x: int) -> int { x + 110 }
+pub func mod19_f111(x: int) -> int { x + 111 }
+pub func mod19_f112(x: int) -> int { x + 112 }
+pub func mod19_f113(x: int) -> int { x + 113 }
+pub func mod19_f114(x: int) -> int { x + 114 }
+pub func mod19_f115(x: int) -> int { x + 115 }
+pub func mod19_f116(x: int) -> int { x + 116 }
+pub func mod19_f117(x: int) -> int { x + 117 }
+pub func mod19_f118(x: int) -> int { x + 118 }
+pub func mod19_f119(x: int) -> int { x + 119 }
+pub func mod19_f120(x: int) -> int { x + 120 }
+pub func mod19_f121(x: int) -> int { x + 121 }
+pub func mod19_f122(x: int) -> int { x + 122 }
+pub func mod19_f123(x: int) -> int { x + 123 }
+pub func mod19_f124(x: int) -> int { x + 124 }
+pub func mod19_f125(x: int) -> int { x + 125 }
+pub func mod19_f126(x: int) -> int { x + 126 }
+pub func mod19_f127(x: int) -> int { x + 127 }
+pub func mod19_f128(x: int) -> int { x + 128 }
+pub func mod19_f129(x: int) -> int { x + 129 }
+pub func mod19_f130(x: int) -> int { x + 130 }
+pub func mod19_f131(x: int) -> int { x + 131 }
+pub func mod19_f132(x: int) -> int { x + 132 }
+pub func mod19_f133(x: int) -> int { x + 133 }
+pub func mod19_f134(x: int) -> int { x + 134 }
+pub func mod19_f135(x: int) -> int { x + 135 }
+pub func mod19_f136(x: int) -> int { x + 136 }
+pub func mod19_f137(x: int) -> int { x + 137 }
+pub func mod19_f138(x: int) -> int { x + 138 }
+pub func mod19_f139(x: int) -> int { x + 139 }
+pub func mod19_f140(x: int) -> int { x + 140 }
+pub func mod19_f141(x: int) -> int { x + 141 }
+pub func mod19_f142(x: int) -> int { x + 142 }
+pub func mod19_f143(x: int) -> int { x + 143 }
+pub func mod19_f144(x: int) -> int { x + 144 }
+pub func mod19_f145(x: int) -> int { x + 145 }
+pub func mod19_f146(x: int) -> int { x + 146 }
+pub func mod19_f147(x: int) -> int { x + 147 }
+pub func mod19_f148(x: int) -> int { x + 148 }
+pub func mod19_f149(x: int) -> int { x + 149 }
+pub func mod19_f150(x: int) -> int { x + 150 }
+pub func mod19_f151(x: int) -> int { x + 151 }
+pub func mod19_f152(x: int) -> int { x + 152 }
+pub func mod19_f153(x: int) -> int { x + 153 }
+pub func mod19_f154(x: int) -> int { x + 154 }
+pub func mod19_f155(x: int) -> int { x + 155 }
+pub func mod19_f156(x: int) -> int { x + 156 }
+pub func mod19_f157(x: int) -> int { x + 157 }
+pub func mod19_f158(x: int) -> int { x + 158 }
+pub func mod19_f159(x: int) -> int { x + 159 }
+pub func mod19_f160(x: int) -> int { x + 160 }
+pub func mod19_f161(x: int) -> int { x + 161 }
+pub func mod19_f162(x: int) -> int { x + 162 }
+pub func mod19_f163(x: int) -> int { x + 163 }
+pub func mod19_f164(x: int) -> int { x + 164 }
+pub func mod19_f165(x: int) -> int { x + 165 }
+pub func mod19_f166(x: int) -> int { x + 166 }
+pub func mod19_f167(x: int) -> int { x + 167 }
+pub func mod19_f168(x: int) -> int { x + 168 }
+pub func mod19_f169(x: int) -> int { x + 169 }
+pub func mod19_f170(x: int) -> int { x + 170 }
+pub func mod19_f171(x: int) -> int { x + 171 }
+pub func mod19_f172(x: int) -> int { x + 172 }
+pub func mod19_f173(x: int) -> int { x + 173 }
+pub func mod19_f174(x: int) -> int { x + 174 }
+pub func mod19_f175(x: int) -> int { x + 175 }
+pub func mod19_f176(x: int) -> int { x + 176 }
+pub func mod19_f177(x: int) -> int { x + 177 }
+pub func mod19_f178(x: int) -> int { x + 178 }
+pub func mod19_f179(x: int) -> int { x + 179 }
+pub func mod19_f180(x: int) -> int { x + 180 }
+pub func mod19_f181(x: int) -> int { x + 181 }
+pub func mod19_f182(x: int) -> int { x + 182 }
+pub func mod19_f183(x: int) -> int { x + 183 }
+pub func mod19_f184(x: int) -> int { x + 184 }
+pub func mod19_f185(x: int) -> int { x + 185 }
+pub func mod19_f186(x: int) -> int { x + 186 }
+pub func mod19_f187(x: int) -> int { x + 187 }
+pub func mod19_f188(x: int) -> int { x + 188 }
+pub func mod19_f189(x: int) -> int { x + 189 }
+pub func mod19_f190(x: int) -> int { x + 190 }
+pub func mod19_f191(x: int) -> int { x + 191 }
+pub func mod19_f192(x: int) -> int { x + 192 }
+pub func mod19_f193(x: int) -> int { x + 193 }
+pub func mod19_f194(x: int) -> int { x + 194 }
+pub func mod19_f195(x: int) -> int { x + 195 }
+pub func mod19_f196(x: int) -> int { x + 196 }
+pub func mod19_f197(x: int) -> int { x + 197 }
+pub func mod19_f198(x: int) -> int { x + 198 }
+pub func mod19_f199(x: int) -> int { x + 199 }
diff --git a/bench/compiler/single_4k.zz b/bench/compiler/single_4k.zz
new file mode 100644
index 00000000..da929ab8
--- /dev/null
+++ b/bench/compiler/single_4k.zz
@@ -0,0 +1,4001 @@
+func s0(x: int) -> int { x + 0 }
+func s1(x: int) -> int { x + 1 }
+func s2(x: int) -> int { x + 2 }
+func s3(x: int) -> int { x + 3 }
+func s4(x: int) -> int { x + 4 }
+func s5(x: int) -> int { x + 5 }
+func s6(x: int) -> int { x + 6 }
+func s7(x: int) -> int { x + 7 }
+func s8(x: int) -> int { x + 8 }
+func s9(x: int) -> int { x + 9 }
+func s10(x: int) -> int { x + 10 }
+func s11(x: int) -> int { x + 11 }
+func s12(x: int) -> int { x + 12 }
+func s13(x: int) -> int { x + 13 }
+func s14(x: int) -> int { x + 14 }
+func s15(x: int) -> int { x + 15 }
+func s16(x: int) -> int { x + 16 }
+func s17(x: int) -> int { x + 17 }
+func s18(x: int) -> int { x + 18 }
+func s19(x: int) -> int { x + 19 }
+func s20(x: int) -> int { x + 20 }
+func s21(x: int) -> int { x + 21 }
+func s22(x: int) -> int { x + 22 }
+func s23(x: int) -> int { x + 23 }
+func s24(x: int) -> int { x + 24 }
+func s25(x: int) -> int { x + 25 }
+func s26(x: int) -> int { x + 26 }
+func s27(x: int) -> int { x + 27 }
+func s28(x: int) -> int { x + 28 }
+func s29(x: int) -> int { x + 29 }
+func s30(x: int) -> int { x + 30 }
+func s31(x: int) -> int { x + 31 }
+func s32(x: int) -> int { x + 32 }
+func s33(x: int) -> int { x + 33 }
+func s34(x: int) -> int { x + 34 }
+func s35(x: int) -> int { x + 35 }
+func s36(x: int) -> int { x + 36 }
+func s37(x: int) -> int { x + 37 }
+func s38(x: int) -> int { x + 38 }
+func s39(x: int) -> int { x + 39 }
+func s40(x: int) -> int { x + 40 }
+func s41(x: int) -> int { x + 41 }
+func s42(x: int) -> int { x + 42 }
+func s43(x: int) -> int { x + 43 }
+func s44(x: int) -> int { x + 44 }
+func s45(x: int) -> int { x + 45 }
+func s46(x: int) -> int { x + 46 }
+func s47(x: int) -> int { x + 47 }
+func s48(x: int) -> int { x + 48 }
+func s49(x: int) -> int { x + 49 }
+func s50(x: int) -> int { x + 50 }
+func s51(x: int) -> int { x + 51 }
+func s52(x: int) -> int { x + 52 }
+func s53(x: int) -> int { x + 53 }
+func s54(x: int) -> int { x + 54 }
+func s55(x: int) -> int { x + 55 }
+func s56(x: int) -> int { x + 56 }
+func s57(x: int) -> int { x + 57 }
+func s58(x: int) -> int { x + 58 }
+func s59(x: int) -> int { x + 59 }
+func s60(x: int) -> int { x + 60 }
+func s61(x: int) -> int { x + 61 }
+func s62(x: int) -> int { x + 62 }
+func s63(x: int) -> int { x + 63 }
+func s64(x: int) -> int { x + 64 }
+func s65(x: int) -> int { x + 65 }
+func s66(x: int) -> int { x + 66 }
+func s67(x: int) -> int { x + 67 }
+func s68(x: int) -> int { x + 68 }
+func s69(x: int) -> int { x + 69 }
+func s70(x: int) -> int { x + 70 }
+func s71(x: int) -> int { x + 71 }
+func s72(x: int) -> int { x + 72 }
+func s73(x: int) -> int { x + 73 }
+func s74(x: int) -> int { x + 74 }
+func s75(x: int) -> int { x + 75 }
+func s76(x: int) -> int { x + 76 }
+func s77(x: int) -> int { x + 77 }
+func s78(x: int) -> int { x + 78 }
+func s79(x: int) -> int { x + 79 }
+func s80(x: int) -> int { x + 80 }
+func s81(x: int) -> int { x + 81 }
+func s82(x: int) -> int { x + 82 }
+func s83(x: int) -> int { x + 83 }
+func s84(x: int) -> int { x + 84 }
+func s85(x: int) -> int { x + 85 }
+func s86(x: int) -> int { x + 86 }
+func s87(x: int) -> int { x + 87 }
+func s88(x: int) -> int { x + 88 }
+func s89(x: int) -> int { x + 89 }
+func s90(x: int) -> int { x + 90 }
+func s91(x: int) -> int { x + 91 }
+func s92(x: int) -> int { x + 92 }
+func s93(x: int) -> int { x + 93 }
+func s94(x: int) -> int { x + 94 }
+func s95(x: int) -> int { x + 95 }
+func s96(x: int) -> int { x + 96 }
+func s97(x: int) -> int { x + 97 }
+func s98(x: int) -> int { x + 98 }
+func s99(x: int) -> int { x + 99 }
+func s100(x: int) -> int { x + 100 }
+func s101(x: int) -> int { x + 101 }
+func s102(x: int) -> int { x + 102 }
+func s103(x: int) -> int { x + 103 }
+func s104(x: int) -> int { x + 104 }
+func s105(x: int) -> int { x + 105 }
+func s106(x: int) -> int { x + 106 }
+func s107(x: int) -> int { x + 107 }
+func s108(x: int) -> int { x + 108 }
+func s109(x: int) -> int { x + 109 }
+func s110(x: int) -> int { x + 110 }
+func s111(x: int) -> int { x + 111 }
+func s112(x: int) -> int { x + 112 }
+func s113(x: int) -> int { x + 113 }
+func s114(x: int) -> int { x + 114 }
+func s115(x: int) -> int { x + 115 }
+func s116(x: int) -> int { x + 116 }
+func s117(x: int) -> int { x + 117 }
+func s118(x: int) -> int { x + 118 }
+func s119(x: int) -> int { x + 119 }
+func s120(x: int) -> int { x + 120 }
+func s121(x: int) -> int { x + 121 }
+func s122(x: int) -> int { x + 122 }
+func s123(x: int) -> int { x + 123 }
+func s124(x: int) -> int { x + 124 }
+func s125(x: int) -> int { x + 125 }
+func s126(x: int) -> int { x + 126 }
+func s127(x: int) -> int { x + 127 }
+func s128(x: int) -> int { x + 128 }
+func s129(x: int) -> int { x + 129 }
+func s130(x: int) -> int { x + 130 }
+func s131(x: int) -> int { x + 131 }
+func s132(x: int) -> int { x + 132 }
+func s133(x: int) -> int { x + 133 }
+func s134(x: int) -> int { x + 134 }
+func s135(x: int) -> int { x + 135 }
+func s136(x: int) -> int { x + 136 }
+func s137(x: int) -> int { x + 137 }
+func s138(x: int) -> int { x + 138 }
+func s139(x: int) -> int { x + 139 }
+func s140(x: int) -> int { x + 140 }
+func s141(x: int) -> int { x + 141 }
+func s142(x: int) -> int { x + 142 }
+func s143(x: int) -> int { x + 143 }
+func s144(x: int) -> int { x + 144 }
+func s145(x: int) -> int { x + 145 }
+func s146(x: int) -> int { x + 146 }
+func s147(x: int) -> int { x + 147 }
+func s148(x: int) -> int { x + 148 }
+func s149(x: int) -> int { x + 149 }
+func s150(x: int) -> int { x + 150 }
+func s151(x: int) -> int { x + 151 }
+func s152(x: int) -> int { x + 152 }
+func s153(x: int) -> int { x + 153 }
+func s154(x: int) -> int { x + 154 }
+func s155(x: int) -> int { x + 155 }
+func s156(x: int) -> int { x + 156 }
+func s157(x: int) -> int { x + 157 }
+func s158(x: int) -> int { x + 158 }
+func s159(x: int) -> int { x + 159 }
+func s160(x: int) -> int { x + 160 }
+func s161(x: int) -> int { x + 161 }
+func s162(x: int) -> int { x + 162 }
+func s163(x: int) -> int { x + 163 }
+func s164(x: int) -> int { x + 164 }
+func s165(x: int) -> int { x + 165 }
+func s166(x: int) -> int { x + 166 }
+func s167(x: int) -> int { x + 167 }
+func s168(x: int) -> int { x + 168 }
+func s169(x: int) -> int { x + 169 }
+func s170(x: int) -> int { x + 170 }
+func s171(x: int) -> int { x + 171 }
+func s172(x: int) -> int { x + 172 }
+func s173(x: int) -> int { x + 173 }
+func s174(x: int) -> int { x + 174 }
+func s175(x: int) -> int { x + 175 }
+func s176(x: int) -> int { x + 176 }
+func s177(x: int) -> int { x + 177 }
+func s178(x: int) -> int { x + 178 }
+func s179(x: int) -> int { x + 179 }
+func s180(x: int) -> int { x + 180 }
+func s181(x: int) -> int { x + 181 }
+func s182(x: int) -> int { x + 182 }
+func s183(x: int) -> int { x + 183 }
+func s184(x: int) -> int { x + 184 }
+func s185(x: int) -> int { x + 185 }
+func s186(x: int) -> int { x + 186 }
+func s187(x: int) -> int { x + 187 }
+func s188(x: int) -> int { x + 188 }
+func s189(x: int) -> int { x + 189 }
+func s190(x: int) -> int { x + 190 }
+func s191(x: int) -> int { x + 191 }
+func s192(x: int) -> int { x + 192 }
+func s193(x: int) -> int { x + 193 }
+func s194(x: int) -> int { x + 194 }
+func s195(x: int) -> int { x + 195 }
+func s196(x: int) -> int { x + 196 }
+func s197(x: int) -> int { x + 197 }
+func s198(x: int) -> int { x + 198 }
+func s199(x: int) -> int { x + 199 }
+func s200(x: int) -> int { x + 200 }
+func s201(x: int) -> int { x + 201 }
+func s202(x: int) -> int { x + 202 }
+func s203(x: int) -> int { x + 203 }
+func s204(x: int) -> int { x + 204 }
+func s205(x: int) -> int { x + 205 }
+func s206(x: int) -> int { x + 206 }
+func s207(x: int) -> int { x + 207 }
+func s208(x: int) -> int { x + 208 }
+func s209(x: int) -> int { x + 209 }
+func s210(x: int) -> int { x + 210 }
+func s211(x: int) -> int { x + 211 }
+func s212(x: int) -> int { x + 212 }
+func s213(x: int) -> int { x + 213 }
+func s214(x: int) -> int { x + 214 }
+func s215(x: int) -> int { x + 215 }
+func s216(x: int) -> int { x + 216 }
+func s217(x: int) -> int { x + 217 }
+func s218(x: int) -> int { x + 218 }
+func s219(x: int) -> int { x + 219 }
+func s220(x: int) -> int { x + 220 }
+func s221(x: int) -> int { x + 221 }
+func s222(x: int) -> int { x + 222 }
+func s223(x: int) -> int { x + 223 }
+func s224(x: int) -> int { x + 224 }
+func s225(x: int) -> int { x + 225 }
+func s226(x: int) -> int { x + 226 }
+func s227(x: int) -> int { x + 227 }
+func s228(x: int) -> int { x + 228 }
+func s229(x: int) -> int { x + 229 }
+func s230(x: int) -> int { x + 230 }
+func s231(x: int) -> int { x + 231 }
+func s232(x: int) -> int { x + 232 }
+func s233(x: int) -> int { x + 233 }
+func s234(x: int) -> int { x + 234 }
+func s235(x: int) -> int { x + 235 }
+func s236(x: int) -> int { x + 236 }
+func s237(x: int) -> int { x + 237 }
+func s238(x: int) -> int { x + 238 }
+func s239(x: int) -> int { x + 239 }
+func s240(x: int) -> int { x + 240 }
+func s241(x: int) -> int { x + 241 }
+func s242(x: int) -> int { x + 242 }
+func s243(x: int) -> int { x + 243 }
+func s244(x: int) -> int { x + 244 }
+func s245(x: int) -> int { x + 245 }
+func s246(x: int) -> int { x + 246 }
+func s247(x: int) -> int { x + 247 }
+func s248(x: int) -> int { x + 248 }
+func s249(x: int) -> int { x + 249 }
+func s250(x: int) -> int { x + 250 }
+func s251(x: int) -> int { x + 251 }
+func s252(x: int) -> int { x + 252 }
+func s253(x: int) -> int { x + 253 }
+func s254(x: int) -> int { x + 254 }
+func s255(x: int) -> int { x + 255 }
+func s256(x: int) -> int { x + 256 }
+func s257(x: int) -> int { x + 257 }
+func s258(x: int) -> int { x + 258 }
+func s259(x: int) -> int { x + 259 }
+func s260(x: int) -> int { x + 260 }
+func s261(x: int) -> int { x + 261 }
+func s262(x: int) -> int { x + 262 }
+func s263(x: int) -> int { x + 263 }
+func s264(x: int) -> int { x + 264 }
+func s265(x: int) -> int { x + 265 }
+func s266(x: int) -> int { x + 266 }
+func s267(x: int) -> int { x + 267 }
+func s268(x: int) -> int { x + 268 }
+func s269(x: int) -> int { x + 269 }
+func s270(x: int) -> int { x + 270 }
+func s271(x: int) -> int { x + 271 }
+func s272(x: int) -> int { x + 272 }
+func s273(x: int) -> int { x + 273 }
+func s274(x: int) -> int { x + 274 }
+func s275(x: int) -> int { x + 275 }
+func s276(x: int) -> int { x + 276 }
+func s277(x: int) -> int { x + 277 }
+func s278(x: int) -> int { x + 278 }
+func s279(x: int) -> int { x + 279 }
+func s280(x: int) -> int { x + 280 }
+func s281(x: int) -> int { x + 281 }
+func s282(x: int) -> int { x + 282 }
+func s283(x: int) -> int { x + 283 }
+func s284(x: int) -> int { x + 284 }
+func s285(x: int) -> int { x + 285 }
+func s286(x: int) -> int { x + 286 }
+func s287(x: int) -> int { x + 287 }
+func s288(x: int) -> int { x + 288 }
+func s289(x: int) -> int { x + 289 }
+func s290(x: int) -> int { x + 290 }
+func s291(x: int) -> int { x + 291 }
+func s292(x: int) -> int { x + 292 }
+func s293(x: int) -> int { x + 293 }
+func s294(x: int) -> int { x + 294 }
+func s295(x: int) -> int { x + 295 }
+func s296(x: int) -> int { x + 296 }
+func s297(x: int) -> int { x + 297 }
+func s298(x: int) -> int { x + 298 }
+func s299(x: int) -> int { x + 299 }
+func s300(x: int) -> int { x + 300 }
+func s301(x: int) -> int { x + 301 }
+func s302(x: int) -> int { x + 302 }
+func s303(x: int) -> int { x + 303 }
+func s304(x: int) -> int { x + 304 }
+func s305(x: int) -> int { x + 305 }
+func s306(x: int) -> int { x + 306 }
+func s307(x: int) -> int { x + 307 }
+func s308(x: int) -> int { x + 308 }
+func s309(x: int) -> int { x + 309 }
+func s310(x: int) -> int { x + 310 }
+func s311(x: int) -> int { x + 311 }
+func s312(x: int) -> int { x + 312 }
+func s313(x: int) -> int { x + 313 }
+func s314(x: int) -> int { x + 314 }
+func s315(x: int) -> int { x + 315 }
+func s316(x: int) -> int { x + 316 }
+func s317(x: int) -> int { x + 317 }
+func s318(x: int) -> int { x + 318 }
+func s319(x: int) -> int { x + 319 }
+func s320(x: int) -> int { x + 320 }
+func s321(x: int) -> int { x + 321 }
+func s322(x: int) -> int { x + 322 }
+func s323(x: int) -> int { x + 323 }
+func s324(x: int) -> int { x + 324 }
+func s325(x: int) -> int { x + 325 }
+func s326(x: int) -> int { x + 326 }
+func s327(x: int) -> int { x + 327 }
+func s328(x: int) -> int { x + 328 }
+func s329(x: int) -> int { x + 329 }
+func s330(x: int) -> int { x + 330 }
+func s331(x: int) -> int { x + 331 }
+func s332(x: int) -> int { x + 332 }
+func s333(x: int) -> int { x + 333 }
+func s334(x: int) -> int { x + 334 }
+func s335(x: int) -> int { x + 335 }
+func s336(x: int) -> int { x + 336 }
+func s337(x: int) -> int { x + 337 }
+func s338(x: int) -> int { x + 338 }
+func s339(x: int) -> int { x + 339 }
+func s340(x: int) -> int { x + 340 }
+func s341(x: int) -> int { x + 341 }
+func s342(x: int) -> int { x + 342 }
+func s343(x: int) -> int { x + 343 }
+func s344(x: int) -> int { x + 344 }
+func s345(x: int) -> int { x + 345 }
+func s346(x: int) -> int { x + 346 }
+func s347(x: int) -> int { x + 347 }
+func s348(x: int) -> int { x + 348 }
+func s349(x: int) -> int { x + 349 }
+func s350(x: int) -> int { x + 350 }
+func s351(x: int) -> int { x + 351 }
+func s352(x: int) -> int { x + 352 }
+func s353(x: int) -> int { x + 353 }
+func s354(x: int) -> int { x + 354 }
+func s355(x: int) -> int { x + 355 }
+func s356(x: int) -> int { x + 356 }
+func s357(x: int) -> int { x + 357 }
+func s358(x: int) -> int { x + 358 }
+func s359(x: int) -> int { x + 359 }
+func s360(x: int) -> int { x + 360 }
+func s361(x: int) -> int { x + 361 }
+func s362(x: int) -> int { x + 362 }
+func s363(x: int) -> int { x + 363 }
+func s364(x: int) -> int { x + 364 }
+func s365(x: int) -> int { x + 365 }
+func s366(x: int) -> int { x + 366 }
+func s367(x: int) -> int { x + 367 }
+func s368(x: int) -> int { x + 368 }
+func s369(x: int) -> int { x + 369 }
+func s370(x: int) -> int { x + 370 }
+func s371(x: int) -> int { x + 371 }
+func s372(x: int) -> int { x + 372 }
+func s373(x: int) -> int { x + 373 }
+func s374(x: int) -> int { x + 374 }
+func s375(x: int) -> int { x + 375 }
+func s376(x: int) -> int { x + 376 }
+func s377(x: int) -> int { x + 377 }
+func s378(x: int) -> int { x + 378 }
+func s379(x: int) -> int { x + 379 }
+func s380(x: int) -> int { x + 380 }
+func s381(x: int) -> int { x + 381 }
+func s382(x: int) -> int { x + 382 }
+func s383(x: int) -> int { x + 383 }
+func s384(x: int) -> int { x + 384 }
+func s385(x: int) -> int { x + 385 }
+func s386(x: int) -> int { x + 386 }
+func s387(x: int) -> int { x + 387 }
+func s388(x: int) -> int { x + 388 }
+func s389(x: int) -> int { x + 389 }
+func s390(x: int) -> int { x + 390 }
+func s391(x: int) -> int { x + 391 }
+func s392(x: int) -> int { x + 392 }
+func s393(x: int) -> int { x + 393 }
+func s394(x: int) -> int { x + 394 }
+func s395(x: int) -> int { x + 395 }
+func s396(x: int) -> int { x + 396 }
+func s397(x: int) -> int { x + 397 }
+func s398(x: int) -> int { x + 398 }
+func s399(x: int) -> int { x + 399 }
+func s400(x: int) -> int { x + 400 }
+func s401(x: int) -> int { x + 401 }
+func s402(x: int) -> int { x + 402 }
+func s403(x: int) -> int { x + 403 }
+func s404(x: int) -> int { x + 404 }
+func s405(x: int) -> int { x + 405 }
+func s406(x: int) -> int { x + 406 }
+func s407(x: int) -> int { x + 407 }
+func s408(x: int) -> int { x + 408 }
+func s409(x: int) -> int { x + 409 }
+func s410(x: int) -> int { x + 410 }
+func s411(x: int) -> int { x + 411 }
+func s412(x: int) -> int { x + 412 }
+func s413(x: int) -> int { x + 413 }
+func s414(x: int) -> int { x + 414 }
+func s415(x: int) -> int { x + 415 }
+func s416(x: int) -> int { x + 416 }
+func s417(x: int) -> int { x + 417 }
+func s418(x: int) -> int { x + 418 }
+func s419(x: int) -> int { x + 419 }
+func s420(x: int) -> int { x + 420 }
+func s421(x: int) -> int { x + 421 }
+func s422(x: int) -> int { x + 422 }
+func s423(x: int) -> int { x + 423 }
+func s424(x: int) -> int { x + 424 }
+func s425(x: int) -> int { x + 425 }
+func s426(x: int) -> int { x + 426 }
+func s427(x: int) -> int { x + 427 }
+func s428(x: int) -> int { x + 428 }
+func s429(x: int) -> int { x + 429 }
+func s430(x: int) -> int { x + 430 }
+func s431(x: int) -> int { x + 431 }
+func s432(x: int) -> int { x + 432 }
+func s433(x: int) -> int { x + 433 }
+func s434(x: int) -> int { x + 434 }
+func s435(x: int) -> int { x + 435 }
+func s436(x: int) -> int { x + 436 }
+func s437(x: int) -> int { x + 437 }
+func s438(x: int) -> int { x + 438 }
+func s439(x: int) -> int { x + 439 }
+func s440(x: int) -> int { x + 440 }
+func s441(x: int) -> int { x + 441 }
+func s442(x: int) -> int { x + 442 }
+func s443(x: int) -> int { x + 443 }
+func s444(x: int) -> int { x + 444 }
+func s445(x: int) -> int { x + 445 }
+func s446(x: int) -> int { x + 446 }
+func s447(x: int) -> int { x + 447 }
+func s448(x: int) -> int { x + 448 }
+func s449(x: int) -> int { x + 449 }
+func s450(x: int) -> int { x + 450 }
+func s451(x: int) -> int { x + 451 }
+func s452(x: int) -> int { x + 452 }
+func s453(x: int) -> int { x + 453 }
+func s454(x: int) -> int { x + 454 }
+func s455(x: int) -> int { x + 455 }
+func s456(x: int) -> int { x + 456 }
+func s457(x: int) -> int { x + 457 }
+func s458(x: int) -> int { x + 458 }
+func s459(x: int) -> int { x + 459 }
+func s460(x: int) -> int { x + 460 }
+func s461(x: int) -> int { x + 461 }
+func s462(x: int) -> int { x + 462 }
+func s463(x: int) -> int { x + 463 }
+func s464(x: int) -> int { x + 464 }
+func s465(x: int) -> int { x + 465 }
+func s466(x: int) -> int { x + 466 }
+func s467(x: int) -> int { x + 467 }
+func s468(x: int) -> int { x + 468 }
+func s469(x: int) -> int { x + 469 }
+func s470(x: int) -> int { x + 470 }
+func s471(x: int) -> int { x + 471 }
+func s472(x: int) -> int { x + 472 }
+func s473(x: int) -> int { x + 473 }
+func s474(x: int) -> int { x + 474 }
+func s475(x: int) -> int { x + 475 }
+func s476(x: int) -> int { x + 476 }
+func s477(x: int) -> int { x + 477 }
+func s478(x: int) -> int { x + 478 }
+func s479(x: int) -> int { x + 479 }
+func s480(x: int) -> int { x + 480 }
+func s481(x: int) -> int { x + 481 }
+func s482(x: int) -> int { x + 482 }
+func s483(x: int) -> int { x + 483 }
+func s484(x: int) -> int { x + 484 }
+func s485(x: int) -> int { x + 485 }
+func s486(x: int) -> int { x + 486 }
+func s487(x: int) -> int { x + 487 }
+func s488(x: int) -> int { x + 488 }
+func s489(x: int) -> int { x + 489 }
+func s490(x: int) -> int { x + 490 }
+func s491(x: int) -> int { x + 491 }
+func s492(x: int) -> int { x + 492 }
+func s493(x: int) -> int { x + 493 }
+func s494(x: int) -> int { x + 494 }
+func s495(x: int) -> int { x + 495 }
+func s496(x: int) -> int { x + 496 }
+func s497(x: int) -> int { x + 497 }
+func s498(x: int) -> int { x + 498 }
+func s499(x: int) -> int { x + 499 }
+func s500(x: int) -> int { x + 500 }
+func s501(x: int) -> int { x + 501 }
+func s502(x: int) -> int { x + 502 }
+func s503(x: int) -> int { x + 503 }
+func s504(x: int) -> int { x + 504 }
+func s505(x: int) -> int { x + 505 }
+func s506(x: int) -> int { x + 506 }
+func s507(x: int) -> int { x + 507 }
+func s508(x: int) -> int { x + 508 }
+func s509(x: int) -> int { x + 509 }
+func s510(x: int) -> int { x + 510 }
+func s511(x: int) -> int { x + 511 }
+func s512(x: int) -> int { x + 512 }
+func s513(x: int) -> int { x + 513 }
+func s514(x: int) -> int { x + 514 }
+func s515(x: int) -> int { x + 515 }
+func s516(x: int) -> int { x + 516 }
+func s517(x: int) -> int { x + 517 }
+func s518(x: int) -> int { x + 518 }
+func s519(x: int) -> int { x + 519 }
+func s520(x: int) -> int { x + 520 }
+func s521(x: int) -> int { x + 521 }
+func s522(x: int) -> int { x + 522 }
+func s523(x: int) -> int { x + 523 }
+func s524(x: int) -> int { x + 524 }
+func s525(x: int) -> int { x + 525 }
+func s526(x: int) -> int { x + 526 }
+func s527(x: int) -> int { x + 527 }
+func s528(x: int) -> int { x + 528 }
+func s529(x: int) -> int { x + 529 }
+func s530(x: int) -> int { x + 530 }
+func s531(x: int) -> int { x + 531 }
+func s532(x: int) -> int { x + 532 }
+func s533(x: int) -> int { x + 533 }
+func s534(x: int) -> int { x + 534 }
+func s535(x: int) -> int { x + 535 }
+func s536(x: int) -> int { x + 536 }
+func s537(x: int) -> int { x + 537 }
+func s538(x: int) -> int { x + 538 }
+func s539(x: int) -> int { x + 539 }
+func s540(x: int) -> int { x + 540 }
+func s541(x: int) -> int { x + 541 }
+func s542(x: int) -> int { x + 542 }
+func s543(x: int) -> int { x + 543 }
+func s544(x: int) -> int { x + 544 }
+func s545(x: int) -> int { x + 545 }
+func s546(x: int) -> int { x + 546 }
+func s547(x: int) -> int { x + 547 }
+func s548(x: int) -> int { x + 548 }
+func s549(x: int) -> int { x + 549 }
+func s550(x: int) -> int { x + 550 }
+func s551(x: int) -> int { x + 551 }
+func s552(x: int) -> int { x + 552 }
+func s553(x: int) -> int { x + 553 }
+func s554(x: int) -> int { x + 554 }
+func s555(x: int) -> int { x + 555 }
+func s556(x: int) -> int { x + 556 }
+func s557(x: int) -> int { x + 557 }
+func s558(x: int) -> int { x + 558 }
+func s559(x: int) -> int { x + 559 }
+func s560(x: int) -> int { x + 560 }
+func s561(x: int) -> int { x + 561 }
+func s562(x: int) -> int { x + 562 }
+func s563(x: int) -> int { x + 563 }
+func s564(x: int) -> int { x + 564 }
+func s565(x: int) -> int { x + 565 }
+func s566(x: int) -> int { x + 566 }
+func s567(x: int) -> int { x + 567 }
+func s568(x: int) -> int { x + 568 }
+func s569(x: int) -> int { x + 569 }
+func s570(x: int) -> int { x + 570 }
+func s571(x: int) -> int { x + 571 }
+func s572(x: int) -> int { x + 572 }
+func s573(x: int) -> int { x + 573 }
+func s574(x: int) -> int { x + 574 }
+func s575(x: int) -> int { x + 575 }
+func s576(x: int) -> int { x + 576 }
+func s577(x: int) -> int { x + 577 }
+func s578(x: int) -> int { x + 578 }
+func s579(x: int) -> int { x + 579 }
+func s580(x: int) -> int { x + 580 }
+func s581(x: int) -> int { x + 581 }
+func s582(x: int) -> int { x + 582 }
+func s583(x: int) -> int { x + 583 }
+func s584(x: int) -> int { x + 584 }
+func s585(x: int) -> int { x + 585 }
+func s586(x: int) -> int { x + 586 }
+func s587(x: int) -> int { x + 587 }
+func s588(x: int) -> int { x + 588 }
+func s589(x: int) -> int { x + 589 }
+func s590(x: int) -> int { x + 590 }
+func s591(x: int) -> int { x + 591 }
+func s592(x: int) -> int { x + 592 }
+func s593(x: int) -> int { x + 593 }
+func s594(x: int) -> int { x + 594 }
+func s595(x: int) -> int { x + 595 }
+func s596(x: int) -> int { x + 596 }
+func s597(x: int) -> int { x + 597 }
+func s598(x: int) -> int { x + 598 }
+func s599(x: int) -> int { x + 599 }
+func s600(x: int) -> int { x + 600 }
+func s601(x: int) -> int { x + 601 }
+func s602(x: int) -> int { x + 602 }
+func s603(x: int) -> int { x + 603 }
+func s604(x: int) -> int { x + 604 }
+func s605(x: int) -> int { x + 605 }
+func s606(x: int) -> int { x + 606 }
+func s607(x: int) -> int { x + 607 }
+func s608(x: int) -> int { x + 608 }
+func s609(x: int) -> int { x + 609 }
+func s610(x: int) -> int { x + 610 }
+func s611(x: int) -> int { x + 611 }
+func s612(x: int) -> int { x + 612 }
+func s613(x: int) -> int { x + 613 }
+func s614(x: int) -> int { x + 614 }
+func s615(x: int) -> int { x + 615 }
+func s616(x: int) -> int { x + 616 }
+func s617(x: int) -> int { x + 617 }
+func s618(x: int) -> int { x + 618 }
+func s619(x: int) -> int { x + 619 }
+func s620(x: int) -> int { x + 620 }
+func s621(x: int) -> int { x + 621 }
+func s622(x: int) -> int { x + 622 }
+func s623(x: int) -> int { x + 623 }
+func s624(x: int) -> int { x + 624 }
+func s625(x: int) -> int { x + 625 }
+func s626(x: int) -> int { x + 626 }
+func s627(x: int) -> int { x + 627 }
+func s628(x: int) -> int { x + 628 }
+func s629(x: int) -> int { x + 629 }
+func s630(x: int) -> int { x + 630 }
+func s631(x: int) -> int { x + 631 }
+func s632(x: int) -> int { x + 632 }
+func s633(x: int) -> int { x + 633 }
+func s634(x: int) -> int { x + 634 }
+func s635(x: int) -> int { x + 635 }
+func s636(x: int) -> int { x + 636 }
+func s637(x: int) -> int { x + 637 }
+func s638(x: int) -> int { x + 638 }
+func s639(x: int) -> int { x + 639 }
+func s640(x: int) -> int { x + 640 }
+func s641(x: int) -> int { x + 641 }
+func s642(x: int) -> int { x + 642 }
+func s643(x: int) -> int { x + 643 }
+func s644(x: int) -> int { x + 644 }
+func s645(x: int) -> int { x + 645 }
+func s646(x: int) -> int { x + 646 }
+func s647(x: int) -> int { x + 647 }
+func s648(x: int) -> int { x + 648 }
+func s649(x: int) -> int { x + 649 }
+func s650(x: int) -> int { x + 650 }
+func s651(x: int) -> int { x + 651 }
+func s652(x: int) -> int { x + 652 }
+func s653(x: int) -> int { x + 653 }
+func s654(x: int) -> int { x + 654 }
+func s655(x: int) -> int { x + 655 }
+func s656(x: int) -> int { x + 656 }
+func s657(x: int) -> int { x + 657 }
+func s658(x: int) -> int { x + 658 }
+func s659(x: int) -> int { x + 659 }
+func s660(x: int) -> int { x + 660 }
+func s661(x: int) -> int { x + 661 }
+func s662(x: int) -> int { x + 662 }
+func s663(x: int) -> int { x + 663 }
+func s664(x: int) -> int { x + 664 }
+func s665(x: int) -> int { x + 665 }
+func s666(x: int) -> int { x + 666 }
+func s667(x: int) -> int { x + 667 }
+func s668(x: int) -> int { x + 668 }
+func s669(x: int) -> int { x + 669 }
+func s670(x: int) -> int { x + 670 }
+func s671(x: int) -> int { x + 671 }
+func s672(x: int) -> int { x + 672 }
+func s673(x: int) -> int { x + 673 }
+func s674(x: int) -> int { x + 674 }
+func s675(x: int) -> int { x + 675 }
+func s676(x: int) -> int { x + 676 }
+func s677(x: int) -> int { x + 677 }
+func s678(x: int) -> int { x + 678 }
+func s679(x: int) -> int { x + 679 }
+func s680(x: int) -> int { x + 680 }
+func s681(x: int) -> int { x + 681 }
+func s682(x: int) -> int { x + 682 }
+func s683(x: int) -> int { x + 683 }
+func s684(x: int) -> int { x + 684 }
+func s685(x: int) -> int { x + 685 }
+func s686(x: int) -> int { x + 686 }
+func s687(x: int) -> int { x + 687 }
+func s688(x: int) -> int { x + 688 }
+func s689(x: int) -> int { x + 689 }
+func s690(x: int) -> int { x + 690 }
+func s691(x: int) -> int { x + 691 }
+func s692(x: int) -> int { x + 692 }
+func s693(x: int) -> int { x + 693 }
+func s694(x: int) -> int { x + 694 }
+func s695(x: int) -> int { x + 695 }
+func s696(x: int) -> int { x + 696 }
+func s697(x: int) -> int { x + 697 }
+func s698(x: int) -> int { x + 698 }
+func s699(x: int) -> int { x + 699 }
+func s700(x: int) -> int { x + 700 }
+func s701(x: int) -> int { x + 701 }
+func s702(x: int) -> int { x + 702 }
+func s703(x: int) -> int { x + 703 }
+func s704(x: int) -> int { x + 704 }
+func s705(x: int) -> int { x + 705 }
+func s706(x: int) -> int { x + 706 }
+func s707(x: int) -> int { x + 707 }
+func s708(x: int) -> int { x + 708 }
+func s709(x: int) -> int { x + 709 }
+func s710(x: int) -> int { x + 710 }
+func s711(x: int) -> int { x + 711 }
+func s712(x: int) -> int { x + 712 }
+func s713(x: int) -> int { x + 713 }
+func s714(x: int) -> int { x + 714 }
+func s715(x: int) -> int { x + 715 }
+func s716(x: int) -> int { x + 716 }
+func s717(x: int) -> int { x + 717 }
+func s718(x: int) -> int { x + 718 }
+func s719(x: int) -> int { x + 719 }
+func s720(x: int) -> int { x + 720 }
+func s721(x: int) -> int { x + 721 }
+func s722(x: int) -> int { x + 722 }
+func s723(x: int) -> int { x + 723 }
+func s724(x: int) -> int { x + 724 }
+func s725(x: int) -> int { x + 725 }
+func s726(x: int) -> int { x + 726 }
+func s727(x: int) -> int { x + 727 }
+func s728(x: int) -> int { x + 728 }
+func s729(x: int) -> int { x + 729 }
+func s730(x: int) -> int { x + 730 }
+func s731(x: int) -> int { x + 731 }
+func s732(x: int) -> int { x + 732 }
+func s733(x: int) -> int { x + 733 }
+func s734(x: int) -> int { x + 734 }
+func s735(x: int) -> int { x + 735 }
+func s736(x: int) -> int { x + 736 }
+func s737(x: int) -> int { x + 737 }
+func s738(x: int) -> int { x + 738 }
+func s739(x: int) -> int { x + 739 }
+func s740(x: int) -> int { x + 740 }
+func s741(x: int) -> int { x + 741 }
+func s742(x: int) -> int { x + 742 }
+func s743(x: int) -> int { x + 743 }
+func s744(x: int) -> int { x + 744 }
+func s745(x: int) -> int { x + 745 }
+func s746(x: int) -> int { x + 746 }
+func s747(x: int) -> int { x + 747 }
+func s748(x: int) -> int { x + 748 }
+func s749(x: int) -> int { x + 749 }
+func s750(x: int) -> int { x + 750 }
+func s751(x: int) -> int { x + 751 }
+func s752(x: int) -> int { x + 752 }
+func s753(x: int) -> int { x + 753 }
+func s754(x: int) -> int { x + 754 }
+func s755(x: int) -> int { x + 755 }
+func s756(x: int) -> int { x + 756 }
+func s757(x: int) -> int { x + 757 }
+func s758(x: int) -> int { x + 758 }
+func s759(x: int) -> int { x + 759 }
+func s760(x: int) -> int { x + 760 }
+func s761(x: int) -> int { x + 761 }
+func s762(x: int) -> int { x + 762 }
+func s763(x: int) -> int { x + 763 }
+func s764(x: int) -> int { x + 764 }
+func s765(x: int) -> int { x + 765 }
+func s766(x: int) -> int { x + 766 }
+func s767(x: int) -> int { x + 767 }
+func s768(x: int) -> int { x + 768 }
+func s769(x: int) -> int { x + 769 }
+func s770(x: int) -> int { x + 770 }
+func s771(x: int) -> int { x + 771 }
+func s772(x: int) -> int { x + 772 }
+func s773(x: int) -> int { x + 773 }
+func s774(x: int) -> int { x + 774 }
+func s775(x: int) -> int { x + 775 }
+func s776(x: int) -> int { x + 776 }
+func s777(x: int) -> int { x + 777 }
+func s778(x: int) -> int { x + 778 }
+func s779(x: int) -> int { x + 779 }
+func s780(x: int) -> int { x + 780 }
+func s781(x: int) -> int { x + 781 }
+func s782(x: int) -> int { x + 782 }
+func s783(x: int) -> int { x + 783 }
+func s784(x: int) -> int { x + 784 }
+func s785(x: int) -> int { x + 785 }
+func s786(x: int) -> int { x + 786 }
+func s787(x: int) -> int { x + 787 }
+func s788(x: int) -> int { x + 788 }
+func s789(x: int) -> int { x + 789 }
+func s790(x: int) -> int { x + 790 }
+func s791(x: int) -> int { x + 791 }
+func s792(x: int) -> int { x + 792 }
+func s793(x: int) -> int { x + 793 }
+func s794(x: int) -> int { x + 794 }
+func s795(x: int) -> int { x + 795 }
+func s796(x: int) -> int { x + 796 }
+func s797(x: int) -> int { x + 797 }
+func s798(x: int) -> int { x + 798 }
+func s799(x: int) -> int { x + 799 }
+func s800(x: int) -> int { x + 800 }
+func s801(x: int) -> int { x + 801 }
+func s802(x: int) -> int { x + 802 }
+func s803(x: int) -> int { x + 803 }
+func s804(x: int) -> int { x + 804 }
+func s805(x: int) -> int { x + 805 }
+func s806(x: int) -> int { x + 806 }
+func s807(x: int) -> int { x + 807 }
+func s808(x: int) -> int { x + 808 }
+func s809(x: int) -> int { x + 809 }
+func s810(x: int) -> int { x + 810 }
+func s811(x: int) -> int { x + 811 }
+func s812(x: int) -> int { x + 812 }
+func s813(x: int) -> int { x + 813 }
+func s814(x: int) -> int { x + 814 }
+func s815(x: int) -> int { x + 815 }
+func s816(x: int) -> int { x + 816 }
+func s817(x: int) -> int { x + 817 }
+func s818(x: int) -> int { x + 818 }
+func s819(x: int) -> int { x + 819 }
+func s820(x: int) -> int { x + 820 }
+func s821(x: int) -> int { x + 821 }
+func s822(x: int) -> int { x + 822 }
+func s823(x: int) -> int { x + 823 }
+func s824(x: int) -> int { x + 824 }
+func s825(x: int) -> int { x + 825 }
+func s826(x: int) -> int { x + 826 }
+func s827(x: int) -> int { x + 827 }
+func s828(x: int) -> int { x + 828 }
+func s829(x: int) -> int { x + 829 }
+func s830(x: int) -> int { x + 830 }
+func s831(x: int) -> int { x + 831 }
+func s832(x: int) -> int { x + 832 }
+func s833(x: int) -> int { x + 833 }
+func s834(x: int) -> int { x + 834 }
+func s835(x: int) -> int { x + 835 }
+func s836(x: int) -> int { x + 836 }
+func s837(x: int) -> int { x + 837 }
+func s838(x: int) -> int { x + 838 }
+func s839(x: int) -> int { x + 839 }
+func s840(x: int) -> int { x + 840 }
+func s841(x: int) -> int { x + 841 }
+func s842(x: int) -> int { x + 842 }
+func s843(x: int) -> int { x + 843 }
+func s844(x: int) -> int { x + 844 }
+func s845(x: int) -> int { x + 845 }
+func s846(x: int) -> int { x + 846 }
+func s847(x: int) -> int { x + 847 }
+func s848(x: int) -> int { x + 848 }
+func s849(x: int) -> int { x + 849 }
+func s850(x: int) -> int { x + 850 }
+func s851(x: int) -> int { x + 851 }
+func s852(x: int) -> int { x + 852 }
+func s853(x: int) -> int { x + 853 }
+func s854(x: int) -> int { x + 854 }
+func s855(x: int) -> int { x + 855 }
+func s856(x: int) -> int { x + 856 }
+func s857(x: int) -> int { x + 857 }
+func s858(x: int) -> int { x + 858 }
+func s859(x: int) -> int { x + 859 }
+func s860(x: int) -> int { x + 860 }
+func s861(x: int) -> int { x + 861 }
+func s862(x: int) -> int { x + 862 }
+func s863(x: int) -> int { x + 863 }
+func s864(x: int) -> int { x + 864 }
+func s865(x: int) -> int { x + 865 }
+func s866(x: int) -> int { x + 866 }
+func s867(x: int) -> int { x + 867 }
+func s868(x: int) -> int { x + 868 }
+func s869(x: int) -> int { x + 869 }
+func s870(x: int) -> int { x + 870 }
+func s871(x: int) -> int { x + 871 }
+func s872(x: int) -> int { x + 872 }
+func s873(x: int) -> int { x + 873 }
+func s874(x: int) -> int { x + 874 }
+func s875(x: int) -> int { x + 875 }
+func s876(x: int) -> int { x + 876 }
+func s877(x: int) -> int { x + 877 }
+func s878(x: int) -> int { x + 878 }
+func s879(x: int) -> int { x + 879 }
+func s880(x: int) -> int { x + 880 }
+func s881(x: int) -> int { x + 881 }
+func s882(x: int) -> int { x + 882 }
+func s883(x: int) -> int { x + 883 }
+func s884(x: int) -> int { x + 884 }
+func s885(x: int) -> int { x + 885 }
+func s886(x: int) -> int { x + 886 }
+func s887(x: int) -> int { x + 887 }
+func s888(x: int) -> int { x + 888 }
+func s889(x: int) -> int { x + 889 }
+func s890(x: int) -> int { x + 890 }
+func s891(x: int) -> int { x + 891 }
+func s892(x: int) -> int { x + 892 }
+func s893(x: int) -> int { x + 893 }
+func s894(x: int) -> int { x + 894 }
+func s895(x: int) -> int { x + 895 }
+func s896(x: int) -> int { x + 896 }
+func s897(x: int) -> int { x + 897 }
+func s898(x: int) -> int { x + 898 }
+func s899(x: int) -> int { x + 899 }
+func s900(x: int) -> int { x + 900 }
+func s901(x: int) -> int { x + 901 }
+func s902(x: int) -> int { x + 902 }
+func s903(x: int) -> int { x + 903 }
+func s904(x: int) -> int { x + 904 }
+func s905(x: int) -> int { x + 905 }
+func s906(x: int) -> int { x + 906 }
+func s907(x: int) -> int { x + 907 }
+func s908(x: int) -> int { x + 908 }
+func s909(x: int) -> int { x + 909 }
+func s910(x: int) -> int { x + 910 }
+func s911(x: int) -> int { x + 911 }
+func s912(x: int) -> int { x + 912 }
+func s913(x: int) -> int { x + 913 }
+func s914(x: int) -> int { x + 914 }
+func s915(x: int) -> int { x + 915 }
+func s916(x: int) -> int { x + 916 }
+func s917(x: int) -> int { x + 917 }
+func s918(x: int) -> int { x + 918 }
+func s919(x: int) -> int { x + 919 }
+func s920(x: int) -> int { x + 920 }
+func s921(x: int) -> int { x + 921 }
+func s922(x: int) -> int { x + 922 }
+func s923(x: int) -> int { x + 923 }
+func s924(x: int) -> int { x + 924 }
+func s925(x: int) -> int { x + 925 }
+func s926(x: int) -> int { x + 926 }
+func s927(x: int) -> int { x + 927 }
+func s928(x: int) -> int { x + 928 }
+func s929(x: int) -> int { x + 929 }
+func s930(x: int) -> int { x + 930 }
+func s931(x: int) -> int { x + 931 }
+func s932(x: int) -> int { x + 932 }
+func s933(x: int) -> int { x + 933 }
+func s934(x: int) -> int { x + 934 }
+func s935(x: int) -> int { x + 935 }
+func s936(x: int) -> int { x + 936 }
+func s937(x: int) -> int { x + 937 }
+func s938(x: int) -> int { x + 938 }
+func s939(x: int) -> int { x + 939 }
+func s940(x: int) -> int { x + 940 }
+func s941(x: int) -> int { x + 941 }
+func s942(x: int) -> int { x + 942 }
+func s943(x: int) -> int { x + 943 }
+func s944(x: int) -> int { x + 944 }
+func s945(x: int) -> int { x + 945 }
+func s946(x: int) -> int { x + 946 }
+func s947(x: int) -> int { x + 947 }
+func s948(x: int) -> int { x + 948 }
+func s949(x: int) -> int { x + 949 }
+func s950(x: int) -> int { x + 950 }
+func s951(x: int) -> int { x + 951 }
+func s952(x: int) -> int { x + 952 }
+func s953(x: int) -> int { x + 953 }
+func s954(x: int) -> int { x + 954 }
+func s955(x: int) -> int { x + 955 }
+func s956(x: int) -> int { x + 956 }
+func s957(x: int) -> int { x + 957 }
+func s958(x: int) -> int { x + 958 }
+func s959(x: int) -> int { x + 959 }
+func s960(x: int) -> int { x + 960 }
+func s961(x: int) -> int { x + 961 }
+func s962(x: int) -> int { x + 962 }
+func s963(x: int) -> int { x + 963 }
+func s964(x: int) -> int { x + 964 }
+func s965(x: int) -> int { x + 965 }
+func s966(x: int) -> int { x + 966 }
+func s967(x: int) -> int { x + 967 }
+func s968(x: int) -> int { x + 968 }
+func s969(x: int) -> int { x + 969 }
+func s970(x: int) -> int { x + 970 }
+func s971(x: int) -> int { x + 971 }
+func s972(x: int) -> int { x + 972 }
+func s973(x: int) -> int { x + 973 }
+func s974(x: int) -> int { x + 974 }
+func s975(x: int) -> int { x + 975 }
+func s976(x: int) -> int { x + 976 }
+func s977(x: int) -> int { x + 977 }
+func s978(x: int) -> int { x + 978 }
+func s979(x: int) -> int { x + 979 }
+func s980(x: int) -> int { x + 980 }
+func s981(x: int) -> int { x + 981 }
+func s982(x: int) -> int { x + 982 }
+func s983(x: int) -> int { x + 983 }
+func s984(x: int) -> int { x + 984 }
+func s985(x: int) -> int { x + 985 }
+func s986(x: int) -> int { x + 986 }
+func s987(x: int) -> int { x + 987 }
+func s988(x: int) -> int { x + 988 }
+func s989(x: int) -> int { x + 989 }
+func s990(x: int) -> int { x + 990 }
+func s991(x: int) -> int { x + 991 }
+func s992(x: int) -> int { x + 992 }
+func s993(x: int) -> int { x + 993 }
+func s994(x: int) -> int { x + 994 }
+func s995(x: int) -> int { x + 995 }
+func s996(x: int) -> int { x + 996 }
+func s997(x: int) -> int { x + 997 }
+func s998(x: int) -> int { x + 998 }
+func s999(x: int) -> int { x + 999 }
+func s1000(x: int) -> int { x + 1000 }
+func s1001(x: int) -> int { x + 1001 }
+func s1002(x: int) -> int { x + 1002 }
+func s1003(x: int) -> int { x + 1003 }
+func s1004(x: int) -> int { x + 1004 }
+func s1005(x: int) -> int { x + 1005 }
+func s1006(x: int) -> int { x + 1006 }
+func s1007(x: int) -> int { x + 1007 }
+func s1008(x: int) -> int { x + 1008 }
+func s1009(x: int) -> int { x + 1009 }
+func s1010(x: int) -> int { x + 1010 }
+func s1011(x: int) -> int { x + 1011 }
+func s1012(x: int) -> int { x + 1012 }
+func s1013(x: int) -> int { x + 1013 }
+func s1014(x: int) -> int { x + 1014 }
+func s1015(x: int) -> int { x + 1015 }
+func s1016(x: int) -> int { x + 1016 }
+func s1017(x: int) -> int { x + 1017 }
+func s1018(x: int) -> int { x + 1018 }
+func s1019(x: int) -> int { x + 1019 }
+func s1020(x: int) -> int { x + 1020 }
+func s1021(x: int) -> int { x + 1021 }
+func s1022(x: int) -> int { x + 1022 }
+func s1023(x: int) -> int { x + 1023 }
+func s1024(x: int) -> int { x + 1024 }
+func s1025(x: int) -> int { x + 1025 }
+func s1026(x: int) -> int { x + 1026 }
+func s1027(x: int) -> int { x + 1027 }
+func s1028(x: int) -> int { x + 1028 }
+func s1029(x: int) -> int { x + 1029 }
+func s1030(x: int) -> int { x + 1030 }
+func s1031(x: int) -> int { x + 1031 }
+func s1032(x: int) -> int { x + 1032 }
+func s1033(x: int) -> int { x + 1033 }
+func s1034(x: int) -> int { x + 1034 }
+func s1035(x: int) -> int { x + 1035 }
+func s1036(x: int) -> int { x + 1036 }
+func s1037(x: int) -> int { x + 1037 }
+func s1038(x: int) -> int { x + 1038 }
+func s1039(x: int) -> int { x + 1039 }
+func s1040(x: int) -> int { x + 1040 }
+func s1041(x: int) -> int { x + 1041 }
+func s1042(x: int) -> int { x + 1042 }
+func s1043(x: int) -> int { x + 1043 }
+func s1044(x: int) -> int { x + 1044 }
+func s1045(x: int) -> int { x + 1045 }
+func s1046(x: int) -> int { x + 1046 }
+func s1047(x: int) -> int { x + 1047 }
+func s1048(x: int) -> int { x + 1048 }
+func s1049(x: int) -> int { x + 1049 }
+func s1050(x: int) -> int { x + 1050 }
+func s1051(x: int) -> int { x + 1051 }
+func s1052(x: int) -> int { x + 1052 }
+func s1053(x: int) -> int { x + 1053 }
+func s1054(x: int) -> int { x + 1054 }
+func s1055(x: int) -> int { x + 1055 }
+func s1056(x: int) -> int { x + 1056 }
+func s1057(x: int) -> int { x + 1057 }
+func s1058(x: int) -> int { x + 1058 }
+func s1059(x: int) -> int { x + 1059 }
+func s1060(x: int) -> int { x + 1060 }
+func s1061(x: int) -> int { x + 1061 }
+func s1062(x: int) -> int { x + 1062 }
+func s1063(x: int) -> int { x + 1063 }
+func s1064(x: int) -> int { x + 1064 }
+func s1065(x: int) -> int { x + 1065 }
+func s1066(x: int) -> int { x + 1066 }
+func s1067(x: int) -> int { x + 1067 }
+func s1068(x: int) -> int { x + 1068 }
+func s1069(x: int) -> int { x + 1069 }
+func s1070(x: int) -> int { x + 1070 }
+func s1071(x: int) -> int { x + 1071 }
+func s1072(x: int) -> int { x + 1072 }
+func s1073(x: int) -> int { x + 1073 }
+func s1074(x: int) -> int { x + 1074 }
+func s1075(x: int) -> int { x + 1075 }
+func s1076(x: int) -> int { x + 1076 }
+func s1077(x: int) -> int { x + 1077 }
+func s1078(x: int) -> int { x + 1078 }
+func s1079(x: int) -> int { x + 1079 }
+func s1080(x: int) -> int { x + 1080 }
+func s1081(x: int) -> int { x + 1081 }
+func s1082(x: int) -> int { x + 1082 }
+func s1083(x: int) -> int { x + 1083 }
+func s1084(x: int) -> int { x + 1084 }
+func s1085(x: int) -> int { x + 1085 }
+func s1086(x: int) -> int { x + 1086 }
+func s1087(x: int) -> int { x + 1087 }
+func s1088(x: int) -> int { x + 1088 }
+func s1089(x: int) -> int { x + 1089 }
+func s1090(x: int) -> int { x + 1090 }
+func s1091(x: int) -> int { x + 1091 }
+func s1092(x: int) -> int { x + 1092 }
+func s1093(x: int) -> int { x + 1093 }
+func s1094(x: int) -> int { x + 1094 }
+func s1095(x: int) -> int { x + 1095 }
+func s1096(x: int) -> int { x + 1096 }
+func s1097(x: int) -> int { x + 1097 }
+func s1098(x: int) -> int { x + 1098 }
+func s1099(x: int) -> int { x + 1099 }
+func s1100(x: int) -> int { x + 1100 }
+func s1101(x: int) -> int { x + 1101 }
+func s1102(x: int) -> int { x + 1102 }
+func s1103(x: int) -> int { x + 1103 }
+func s1104(x: int) -> int { x + 1104 }
+func s1105(x: int) -> int { x + 1105 }
+func s1106(x: int) -> int { x + 1106 }
+func s1107(x: int) -> int { x + 1107 }
+func s1108(x: int) -> int { x + 1108 }
+func s1109(x: int) -> int { x + 1109 }
+func s1110(x: int) -> int { x + 1110 }
+func s1111(x: int) -> int { x + 1111 }
+func s1112(x: int) -> int { x + 1112 }
+func s1113(x: int) -> int { x + 1113 }
+func s1114(x: int) -> int { x + 1114 }
+func s1115(x: int) -> int { x + 1115 }
+func s1116(x: int) -> int { x + 1116 }
+func s1117(x: int) -> int { x + 1117 }
+func s1118(x: int) -> int { x + 1118 }
+func s1119(x: int) -> int { x + 1119 }
+func s1120(x: int) -> int { x + 1120 }
+func s1121(x: int) -> int { x + 1121 }
+func s1122(x: int) -> int { x + 1122 }
+func s1123(x: int) -> int { x + 1123 }
+func s1124(x: int) -> int { x + 1124 }
+func s1125(x: int) -> int { x + 1125 }
+func s1126(x: int) -> int { x + 1126 }
+func s1127(x: int) -> int { x + 1127 }
+func s1128(x: int) -> int { x + 1128 }
+func s1129(x: int) -> int { x + 1129 }
+func s1130(x: int) -> int { x + 1130 }
+func s1131(x: int) -> int { x + 1131 }
+func s1132(x: int) -> int { x + 1132 }
+func s1133(x: int) -> int { x + 1133 }
+func s1134(x: int) -> int { x + 1134 }
+func s1135(x: int) -> int { x + 1135 }
+func s1136(x: int) -> int { x + 1136 }
+func s1137(x: int) -> int { x + 1137 }
+func s1138(x: int) -> int { x + 1138 }
+func s1139(x: int) -> int { x + 1139 }
+func s1140(x: int) -> int { x + 1140 }
+func s1141(x: int) -> int { x + 1141 }
+func s1142(x: int) -> int { x + 1142 }
+func s1143(x: int) -> int { x + 1143 }
+func s1144(x: int) -> int { x + 1144 }
+func s1145(x: int) -> int { x + 1145 }
+func s1146(x: int) -> int { x + 1146 }
+func s1147(x: int) -> int { x + 1147 }
+func s1148(x: int) -> int { x + 1148 }
+func s1149(x: int) -> int { x + 1149 }
+func s1150(x: int) -> int { x + 1150 }
+func s1151(x: int) -> int { x + 1151 }
+func s1152(x: int) -> int { x + 1152 }
+func s1153(x: int) -> int { x + 1153 }
+func s1154(x: int) -> int { x + 1154 }
+func s1155(x: int) -> int { x + 1155 }
+func s1156(x: int) -> int { x + 1156 }
+func s1157(x: int) -> int { x + 1157 }
+func s1158(x: int) -> int { x + 1158 }
+func s1159(x: int) -> int { x + 1159 }
+func s1160(x: int) -> int { x + 1160 }
+func s1161(x: int) -> int { x + 1161 }
+func s1162(x: int) -> int { x + 1162 }
+func s1163(x: int) -> int { x + 1163 }
+func s1164(x: int) -> int { x + 1164 }
+func s1165(x: int) -> int { x + 1165 }
+func s1166(x: int) -> int { x + 1166 }
+func s1167(x: int) -> int { x + 1167 }
+func s1168(x: int) -> int { x + 1168 }
+func s1169(x: int) -> int { x + 1169 }
+func s1170(x: int) -> int { x + 1170 }
+func s1171(x: int) -> int { x + 1171 }
+func s1172(x: int) -> int { x + 1172 }
+func s1173(x: int) -> int { x + 1173 }
+func s1174(x: int) -> int { x + 1174 }
+func s1175(x: int) -> int { x + 1175 }
+func s1176(x: int) -> int { x + 1176 }
+func s1177(x: int) -> int { x + 1177 }
+func s1178(x: int) -> int { x + 1178 }
+func s1179(x: int) -> int { x + 1179 }
+func s1180(x: int) -> int { x + 1180 }
+func s1181(x: int) -> int { x + 1181 }
+func s1182(x: int) -> int { x + 1182 }
+func s1183(x: int) -> int { x + 1183 }
+func s1184(x: int) -> int { x + 1184 }
+func s1185(x: int) -> int { x + 1185 }
+func s1186(x: int) -> int { x + 1186 }
+func s1187(x: int) -> int { x + 1187 }
+func s1188(x: int) -> int { x + 1188 }
+func s1189(x: int) -> int { x + 1189 }
+func s1190(x: int) -> int { x + 1190 }
+func s1191(x: int) -> int { x + 1191 }
+func s1192(x: int) -> int { x + 1192 }
+func s1193(x: int) -> int { x + 1193 }
+func s1194(x: int) -> int { x + 1194 }
+func s1195(x: int) -> int { x + 1195 }
+func s1196(x: int) -> int { x + 1196 }
+func s1197(x: int) -> int { x + 1197 }
+func s1198(x: int) -> int { x + 1198 }
+func s1199(x: int) -> int { x + 1199 }
+func s1200(x: int) -> int { x + 1200 }
+func s1201(x: int) -> int { x + 1201 }
+func s1202(x: int) -> int { x + 1202 }
+func s1203(x: int) -> int { x + 1203 }
+func s1204(x: int) -> int { x + 1204 }
+func s1205(x: int) -> int { x + 1205 }
+func s1206(x: int) -> int { x + 1206 }
+func s1207(x: int) -> int { x + 1207 }
+func s1208(x: int) -> int { x + 1208 }
+func s1209(x: int) -> int { x + 1209 }
+func s1210(x: int) -> int { x + 1210 }
+func s1211(x: int) -> int { x + 1211 }
+func s1212(x: int) -> int { x + 1212 }
+func s1213(x: int) -> int { x + 1213 }
+func s1214(x: int) -> int { x + 1214 }
+func s1215(x: int) -> int { x + 1215 }
+func s1216(x: int) -> int { x + 1216 }
+func s1217(x: int) -> int { x + 1217 }
+func s1218(x: int) -> int { x + 1218 }
+func s1219(x: int) -> int { x + 1219 }
+func s1220(x: int) -> int { x + 1220 }
+func s1221(x: int) -> int { x + 1221 }
+func s1222(x: int) -> int { x + 1222 }
+func s1223(x: int) -> int { x + 1223 }
+func s1224(x: int) -> int { x + 1224 }
+func s1225(x: int) -> int { x + 1225 }
+func s1226(x: int) -> int { x + 1226 }
+func s1227(x: int) -> int { x + 1227 }
+func s1228(x: int) -> int { x + 1228 }
+func s1229(x: int) -> int { x + 1229 }
+func s1230(x: int) -> int { x + 1230 }
+func s1231(x: int) -> int { x + 1231 }
+func s1232(x: int) -> int { x + 1232 }
+func s1233(x: int) -> int { x + 1233 }
+func s1234(x: int) -> int { x + 1234 }
+func s1235(x: int) -> int { x + 1235 }
+func s1236(x: int) -> int { x + 1236 }
+func s1237(x: int) -> int { x + 1237 }
+func s1238(x: int) -> int { x + 1238 }
+func s1239(x: int) -> int { x + 1239 }
+func s1240(x: int) -> int { x + 1240 }
+func s1241(x: int) -> int { x + 1241 }
+func s1242(x: int) -> int { x + 1242 }
+func s1243(x: int) -> int { x + 1243 }
+func s1244(x: int) -> int { x + 1244 }
+func s1245(x: int) -> int { x + 1245 }
+func s1246(x: int) -> int { x + 1246 }
+func s1247(x: int) -> int { x + 1247 }
+func s1248(x: int) -> int { x + 1248 }
+func s1249(x: int) -> int { x + 1249 }
+func s1250(x: int) -> int { x + 1250 }
+func s1251(x: int) -> int { x + 1251 }
+func s1252(x: int) -> int { x + 1252 }
+func s1253(x: int) -> int { x + 1253 }
+func s1254(x: int) -> int { x + 1254 }
+func s1255(x: int) -> int { x + 1255 }
+func s1256(x: int) -> int { x + 1256 }
+func s1257(x: int) -> int { x + 1257 }
+func s1258(x: int) -> int { x + 1258 }
+func s1259(x: int) -> int { x + 1259 }
+func s1260(x: int) -> int { x + 1260 }
+func s1261(x: int) -> int { x + 1261 }
+func s1262(x: int) -> int { x + 1262 }
+func s1263(x: int) -> int { x + 1263 }
+func s1264(x: int) -> int { x + 1264 }
+func s1265(x: int) -> int { x + 1265 }
+func s1266(x: int) -> int { x + 1266 }
+func s1267(x: int) -> int { x + 1267 }
+func s1268(x: int) -> int { x + 1268 }
+func s1269(x: int) -> int { x + 1269 }
+func s1270(x: int) -> int { x + 1270 }
+func s1271(x: int) -> int { x + 1271 }
+func s1272(x: int) -> int { x + 1272 }
+func s1273(x: int) -> int { x + 1273 }
+func s1274(x: int) -> int { x + 1274 }
+func s1275(x: int) -> int { x + 1275 }
+func s1276(x: int) -> int { x + 1276 }
+func s1277(x: int) -> int { x + 1277 }
+func s1278(x: int) -> int { x + 1278 }
+func s1279(x: int) -> int { x + 1279 }
+func s1280(x: int) -> int { x + 1280 }
+func s1281(x: int) -> int { x + 1281 }
+func s1282(x: int) -> int { x + 1282 }
+func s1283(x: int) -> int { x + 1283 }
+func s1284(x: int) -> int { x + 1284 }
+func s1285(x: int) -> int { x + 1285 }
+func s1286(x: int) -> int { x + 1286 }
+func s1287(x: int) -> int { x + 1287 }
+func s1288(x: int) -> int { x + 1288 }
+func s1289(x: int) -> int { x + 1289 }
+func s1290(x: int) -> int { x + 1290 }
+func s1291(x: int) -> int { x + 1291 }
+func s1292(x: int) -> int { x + 1292 }
+func s1293(x: int) -> int { x + 1293 }
+func s1294(x: int) -> int { x + 1294 }
+func s1295(x: int) -> int { x + 1295 }
+func s1296(x: int) -> int { x + 1296 }
+func s1297(x: int) -> int { x + 1297 }
+func s1298(x: int) -> int { x + 1298 }
+func s1299(x: int) -> int { x + 1299 }
+func s1300(x: int) -> int { x + 1300 }
+func s1301(x: int) -> int { x + 1301 }
+func s1302(x: int) -> int { x + 1302 }
+func s1303(x: int) -> int { x + 1303 }
+func s1304(x: int) -> int { x + 1304 }
+func s1305(x: int) -> int { x + 1305 }
+func s1306(x: int) -> int { x + 1306 }
+func s1307(x: int) -> int { x + 1307 }
+func s1308(x: int) -> int { x + 1308 }
+func s1309(x: int) -> int { x + 1309 }
+func s1310(x: int) -> int { x + 1310 }
+func s1311(x: int) -> int { x + 1311 }
+func s1312(x: int) -> int { x + 1312 }
+func s1313(x: int) -> int { x + 1313 }
+func s1314(x: int) -> int { x + 1314 }
+func s1315(x: int) -> int { x + 1315 }
+func s1316(x: int) -> int { x + 1316 }
+func s1317(x: int) -> int { x + 1317 }
+func s1318(x: int) -> int { x + 1318 }
+func s1319(x: int) -> int { x + 1319 }
+func s1320(x: int) -> int { x + 1320 }
+func s1321(x: int) -> int { x + 1321 }
+func s1322(x: int) -> int { x + 1322 }
+func s1323(x: int) -> int { x + 1323 }
+func s1324(x: int) -> int { x + 1324 }
+func s1325(x: int) -> int { x + 1325 }
+func s1326(x: int) -> int { x + 1326 }
+func s1327(x: int) -> int { x + 1327 }
+func s1328(x: int) -> int { x + 1328 }
+func s1329(x: int) -> int { x + 1329 }
+func s1330(x: int) -> int { x + 1330 }
+func s1331(x: int) -> int { x + 1331 }
+func s1332(x: int) -> int { x + 1332 }
+func s1333(x: int) -> int { x + 1333 }
+func s1334(x: int) -> int { x + 1334 }
+func s1335(x: int) -> int { x + 1335 }
+func s1336(x: int) -> int { x + 1336 }
+func s1337(x: int) -> int { x + 1337 }
+func s1338(x: int) -> int { x + 1338 }
+func s1339(x: int) -> int { x + 1339 }
+func s1340(x: int) -> int { x + 1340 }
+func s1341(x: int) -> int { x + 1341 }
+func s1342(x: int) -> int { x + 1342 }
+func s1343(x: int) -> int { x + 1343 }
+func s1344(x: int) -> int { x + 1344 }
+func s1345(x: int) -> int { x + 1345 }
+func s1346(x: int) -> int { x + 1346 }
+func s1347(x: int) -> int { x + 1347 }
+func s1348(x: int) -> int { x + 1348 }
+func s1349(x: int) -> int { x + 1349 }
+func s1350(x: int) -> int { x + 1350 }
+func s1351(x: int) -> int { x + 1351 }
+func s1352(x: int) -> int { x + 1352 }
+func s1353(x: int) -> int { x + 1353 }
+func s1354(x: int) -> int { x + 1354 }
+func s1355(x: int) -> int { x + 1355 }
+func s1356(x: int) -> int { x + 1356 }
+func s1357(x: int) -> int { x + 1357 }
+func s1358(x: int) -> int { x + 1358 }
+func s1359(x: int) -> int { x + 1359 }
+func s1360(x: int) -> int { x + 1360 }
+func s1361(x: int) -> int { x + 1361 }
+func s1362(x: int) -> int { x + 1362 }
+func s1363(x: int) -> int { x + 1363 }
+func s1364(x: int) -> int { x + 1364 }
+func s1365(x: int) -> int { x + 1365 }
+func s1366(x: int) -> int { x + 1366 }
+func s1367(x: int) -> int { x + 1367 }
+func s1368(x: int) -> int { x + 1368 }
+func s1369(x: int) -> int { x + 1369 }
+func s1370(x: int) -> int { x + 1370 }
+func s1371(x: int) -> int { x + 1371 }
+func s1372(x: int) -> int { x + 1372 }
+func s1373(x: int) -> int { x + 1373 }
+func s1374(x: int) -> int { x + 1374 }
+func s1375(x: int) -> int { x + 1375 }
+func s1376(x: int) -> int { x + 1376 }
+func s1377(x: int) -> int { x + 1377 }
+func s1378(x: int) -> int { x + 1378 }
+func s1379(x: int) -> int { x + 1379 }
+func s1380(x: int) -> int { x + 1380 }
+func s1381(x: int) -> int { x + 1381 }
+func s1382(x: int) -> int { x + 1382 }
+func s1383(x: int) -> int { x + 1383 }
+func s1384(x: int) -> int { x + 1384 }
+func s1385(x: int) -> int { x + 1385 }
+func s1386(x: int) -> int { x + 1386 }
+func s1387(x: int) -> int { x + 1387 }
+func s1388(x: int) -> int { x + 1388 }
+func s1389(x: int) -> int { x + 1389 }
+func s1390(x: int) -> int { x + 1390 }
+func s1391(x: int) -> int { x + 1391 }
+func s1392(x: int) -> int { x + 1392 }
+func s1393(x: int) -> int { x + 1393 }
+func s1394(x: int) -> int { x + 1394 }
+func s1395(x: int) -> int { x + 1395 }
+func s1396(x: int) -> int { x + 1396 }
+func s1397(x: int) -> int { x + 1397 }
+func s1398(x: int) -> int { x + 1398 }
+func s1399(x: int) -> int { x + 1399 }
+func s1400(x: int) -> int { x + 1400 }
+func s1401(x: int) -> int { x + 1401 }
+func s1402(x: int) -> int { x + 1402 }
+func s1403(x: int) -> int { x + 1403 }
+func s1404(x: int) -> int { x + 1404 }
+func s1405(x: int) -> int { x + 1405 }
+func s1406(x: int) -> int { x + 1406 }
+func s1407(x: int) -> int { x + 1407 }
+func s1408(x: int) -> int { x + 1408 }
+func s1409(x: int) -> int { x + 1409 }
+func s1410(x: int) -> int { x + 1410 }
+func s1411(x: int) -> int { x + 1411 }
+func s1412(x: int) -> int { x + 1412 }
+func s1413(x: int) -> int { x + 1413 }
+func s1414(x: int) -> int { x + 1414 }
+func s1415(x: int) -> int { x + 1415 }
+func s1416(x: int) -> int { x + 1416 }
+func s1417(x: int) -> int { x + 1417 }
+func s1418(x: int) -> int { x + 1418 }
+func s1419(x: int) -> int { x + 1419 }
+func s1420(x: int) -> int { x + 1420 }
+func s1421(x: int) -> int { x + 1421 }
+func s1422(x: int) -> int { x + 1422 }
+func s1423(x: int) -> int { x + 1423 }
+func s1424(x: int) -> int { x + 1424 }
+func s1425(x: int) -> int { x + 1425 }
+func s1426(x: int) -> int { x + 1426 }
+func s1427(x: int) -> int { x + 1427 }
+func s1428(x: int) -> int { x + 1428 }
+func s1429(x: int) -> int { x + 1429 }
+func s1430(x: int) -> int { x + 1430 }
+func s1431(x: int) -> int { x + 1431 }
+func s1432(x: int) -> int { x + 1432 }
+func s1433(x: int) -> int { x + 1433 }
+func s1434(x: int) -> int { x + 1434 }
+func s1435(x: int) -> int { x + 1435 }
+func s1436(x: int) -> int { x + 1436 }
+func s1437(x: int) -> int { x + 1437 }
+func s1438(x: int) -> int { x + 1438 }
+func s1439(x: int) -> int { x + 1439 }
+func s1440(x: int) -> int { x + 1440 }
+func s1441(x: int) -> int { x + 1441 }
+func s1442(x: int) -> int { x + 1442 }
+func s1443(x: int) -> int { x + 1443 }
+func s1444(x: int) -> int { x + 1444 }
+func s1445(x: int) -> int { x + 1445 }
+func s1446(x: int) -> int { x + 1446 }
+func s1447(x: int) -> int { x + 1447 }
+func s1448(x: int) -> int { x + 1448 }
+func s1449(x: int) -> int { x + 1449 }
+func s1450(x: int) -> int { x + 1450 }
+func s1451(x: int) -> int { x + 1451 }
+func s1452(x: int) -> int { x + 1452 }
+func s1453(x: int) -> int { x + 1453 }
+func s1454(x: int) -> int { x + 1454 }
+func s1455(x: int) -> int { x + 1455 }
+func s1456(x: int) -> int { x + 1456 }
+func s1457(x: int) -> int { x + 1457 }
+func s1458(x: int) -> int { x + 1458 }
+func s1459(x: int) -> int { x + 1459 }
+func s1460(x: int) -> int { x + 1460 }
+func s1461(x: int) -> int { x + 1461 }
+func s1462(x: int) -> int { x + 1462 }
+func s1463(x: int) -> int { x + 1463 }
+func s1464(x: int) -> int { x + 1464 }
+func s1465(x: int) -> int { x + 1465 }
+func s1466(x: int) -> int { x + 1466 }
+func s1467(x: int) -> int { x + 1467 }
+func s1468(x: int) -> int { x + 1468 }
+func s1469(x: int) -> int { x + 1469 }
+func s1470(x: int) -> int { x + 1470 }
+func s1471(x: int) -> int { x + 1471 }
+func s1472(x: int) -> int { x + 1472 }
+func s1473(x: int) -> int { x + 1473 }
+func s1474(x: int) -> int { x + 1474 }
+func s1475(x: int) -> int { x + 1475 }
+func s1476(x: int) -> int { x + 1476 }
+func s1477(x: int) -> int { x + 1477 }
+func s1478(x: int) -> int { x + 1478 }
+func s1479(x: int) -> int { x + 1479 }
+func s1480(x: int) -> int { x + 1480 }
+func s1481(x: int) -> int { x + 1481 }
+func s1482(x: int) -> int { x + 1482 }
+func s1483(x: int) -> int { x + 1483 }
+func s1484(x: int) -> int { x + 1484 }
+func s1485(x: int) -> int { x + 1485 }
+func s1486(x: int) -> int { x + 1486 }
+func s1487(x: int) -> int { x + 1487 }
+func s1488(x: int) -> int { x + 1488 }
+func s1489(x: int) -> int { x + 1489 }
+func s1490(x: int) -> int { x + 1490 }
+func s1491(x: int) -> int { x + 1491 }
+func s1492(x: int) -> int { x + 1492 }
+func s1493(x: int) -> int { x + 1493 }
+func s1494(x: int) -> int { x + 1494 }
+func s1495(x: int) -> int { x + 1495 }
+func s1496(x: int) -> int { x + 1496 }
+func s1497(x: int) -> int { x + 1497 }
+func s1498(x: int) -> int { x + 1498 }
+func s1499(x: int) -> int { x + 1499 }
+func s1500(x: int) -> int { x + 1500 }
+func s1501(x: int) -> int { x + 1501 }
+func s1502(x: int) -> int { x + 1502 }
+func s1503(x: int) -> int { x + 1503 }
+func s1504(x: int) -> int { x + 1504 }
+func s1505(x: int) -> int { x + 1505 }
+func s1506(x: int) -> int { x + 1506 }
+func s1507(x: int) -> int { x + 1507 }
+func s1508(x: int) -> int { x + 1508 }
+func s1509(x: int) -> int { x + 1509 }
+func s1510(x: int) -> int { x + 1510 }
+func s1511(x: int) -> int { x + 1511 }
+func s1512(x: int) -> int { x + 1512 }
+func s1513(x: int) -> int { x + 1513 }
+func s1514(x: int) -> int { x + 1514 }
+func s1515(x: int) -> int { x + 1515 }
+func s1516(x: int) -> int { x + 1516 }
+func s1517(x: int) -> int { x + 1517 }
+func s1518(x: int) -> int { x + 1518 }
+func s1519(x: int) -> int { x + 1519 }
+func s1520(x: int) -> int { x + 1520 }
+func s1521(x: int) -> int { x + 1521 }
+func s1522(x: int) -> int { x + 1522 }
+func s1523(x: int) -> int { x + 1523 }
+func s1524(x: int) -> int { x + 1524 }
+func s1525(x: int) -> int { x + 1525 }
+func s1526(x: int) -> int { x + 1526 }
+func s1527(x: int) -> int { x + 1527 }
+func s1528(x: int) -> int { x + 1528 }
+func s1529(x: int) -> int { x + 1529 }
+func s1530(x: int) -> int { x + 1530 }
+func s1531(x: int) -> int { x + 1531 }
+func s1532(x: int) -> int { x + 1532 }
+func s1533(x: int) -> int { x + 1533 }
+func s1534(x: int) -> int { x + 1534 }
+func s1535(x: int) -> int { x + 1535 }
+func s1536(x: int) -> int { x + 1536 }
+func s1537(x: int) -> int { x + 1537 }
+func s1538(x: int) -> int { x + 1538 }
+func s1539(x: int) -> int { x + 1539 }
+func s1540(x: int) -> int { x + 1540 }
+func s1541(x: int) -> int { x + 1541 }
+func s1542(x: int) -> int { x + 1542 }
+func s1543(x: int) -> int { x + 1543 }
+func s1544(x: int) -> int { x + 1544 }
+func s1545(x: int) -> int { x + 1545 }
+func s1546(x: int) -> int { x + 1546 }
+func s1547(x: int) -> int { x + 1547 }
+func s1548(x: int) -> int { x + 1548 }
+func s1549(x: int) -> int { x + 1549 }
+func s1550(x: int) -> int { x + 1550 }
+func s1551(x: int) -> int { x + 1551 }
+func s1552(x: int) -> int { x + 1552 }
+func s1553(x: int) -> int { x + 1553 }
+func s1554(x: int) -> int { x + 1554 }
+func s1555(x: int) -> int { x + 1555 }
+func s1556(x: int) -> int { x + 1556 }
+func s1557(x: int) -> int { x + 1557 }
+func s1558(x: int) -> int { x + 1558 }
+func s1559(x: int) -> int { x + 1559 }
+func s1560(x: int) -> int { x + 1560 }
+func s1561(x: int) -> int { x + 1561 }
+func s1562(x: int) -> int { x + 1562 }
+func s1563(x: int) -> int { x + 1563 }
+func s1564(x: int) -> int { x + 1564 }
+func s1565(x: int) -> int { x + 1565 }
+func s1566(x: int) -> int { x + 1566 }
+func s1567(x: int) -> int { x + 1567 }
+func s1568(x: int) -> int { x + 1568 }
+func s1569(x: int) -> int { x + 1569 }
+func s1570(x: int) -> int { x + 1570 }
+func s1571(x: int) -> int { x + 1571 }
+func s1572(x: int) -> int { x + 1572 }
+func s1573(x: int) -> int { x + 1573 }
+func s1574(x: int) -> int { x + 1574 }
+func s1575(x: int) -> int { x + 1575 }
+func s1576(x: int) -> int { x + 1576 }
+func s1577(x: int) -> int { x + 1577 }
+func s1578(x: int) -> int { x + 1578 }
+func s1579(x: int) -> int { x + 1579 }
+func s1580(x: int) -> int { x + 1580 }
+func s1581(x: int) -> int { x + 1581 }
+func s1582(x: int) -> int { x + 1582 }
+func s1583(x: int) -> int { x + 1583 }
+func s1584(x: int) -> int { x + 1584 }
+func s1585(x: int) -> int { x + 1585 }
+func s1586(x: int) -> int { x + 1586 }
+func s1587(x: int) -> int { x + 1587 }
+func s1588(x: int) -> int { x + 1588 }
+func s1589(x: int) -> int { x + 1589 }
+func s1590(x: int) -> int { x + 1590 }
+func s1591(x: int) -> int { x + 1591 }
+func s1592(x: int) -> int { x + 1592 }
+func s1593(x: int) -> int { x + 1593 }
+func s1594(x: int) -> int { x + 1594 }
+func s1595(x: int) -> int { x + 1595 }
+func s1596(x: int) -> int { x + 1596 }
+func s1597(x: int) -> int { x + 1597 }
+func s1598(x: int) -> int { x + 1598 }
+func s1599(x: int) -> int { x + 1599 }
+func s1600(x: int) -> int { x + 1600 }
+func s1601(x: int) -> int { x + 1601 }
+func s1602(x: int) -> int { x + 1602 }
+func s1603(x: int) -> int { x + 1603 }
+func s1604(x: int) -> int { x + 1604 }
+func s1605(x: int) -> int { x + 1605 }
+func s1606(x: int) -> int { x + 1606 }
+func s1607(x: int) -> int { x + 1607 }
+func s1608(x: int) -> int { x + 1608 }
+func s1609(x: int) -> int { x + 1609 }
+func s1610(x: int) -> int { x + 1610 }
+func s1611(x: int) -> int { x + 1611 }
+func s1612(x: int) -> int { x + 1612 }
+func s1613(x: int) -> int { x + 1613 }
+func s1614(x: int) -> int { x + 1614 }
+func s1615(x: int) -> int { x + 1615 }
+func s1616(x: int) -> int { x + 1616 }
+func s1617(x: int) -> int { x + 1617 }
+func s1618(x: int) -> int { x + 1618 }
+func s1619(x: int) -> int { x + 1619 }
+func s1620(x: int) -> int { x + 1620 }
+func s1621(x: int) -> int { x + 1621 }
+func s1622(x: int) -> int { x + 1622 }
+func s1623(x: int) -> int { x + 1623 }
+func s1624(x: int) -> int { x + 1624 }
+func s1625(x: int) -> int { x + 1625 }
+func s1626(x: int) -> int { x + 1626 }
+func s1627(x: int) -> int { x + 1627 }
+func s1628(x: int) -> int { x + 1628 }
+func s1629(x: int) -> int { x + 1629 }
+func s1630(x: int) -> int { x + 1630 }
+func s1631(x: int) -> int { x + 1631 }
+func s1632(x: int) -> int { x + 1632 }
+func s1633(x: int) -> int { x + 1633 }
+func s1634(x: int) -> int { x + 1634 }
+func s1635(x: int) -> int { x + 1635 }
+func s1636(x: int) -> int { x + 1636 }
+func s1637(x: int) -> int { x + 1637 }
+func s1638(x: int) -> int { x + 1638 }
+func s1639(x: int) -> int { x + 1639 }
+func s1640(x: int) -> int { x + 1640 }
+func s1641(x: int) -> int { x + 1641 }
+func s1642(x: int) -> int { x + 1642 }
+func s1643(x: int) -> int { x + 1643 }
+func s1644(x: int) -> int { x + 1644 }
+func s1645(x: int) -> int { x + 1645 }
+func s1646(x: int) -> int { x + 1646 }
+func s1647(x: int) -> int { x + 1647 }
+func s1648(x: int) -> int { x + 1648 }
+func s1649(x: int) -> int { x + 1649 }
+func s1650(x: int) -> int { x + 1650 }
+func s1651(x: int) -> int { x + 1651 }
+func s1652(x: int) -> int { x + 1652 }
+func s1653(x: int) -> int { x + 1653 }
+func s1654(x: int) -> int { x + 1654 }
+func s1655(x: int) -> int { x + 1655 }
+func s1656(x: int) -> int { x + 1656 }
+func s1657(x: int) -> int { x + 1657 }
+func s1658(x: int) -> int { x + 1658 }
+func s1659(x: int) -> int { x + 1659 }
+func s1660(x: int) -> int { x + 1660 }
+func s1661(x: int) -> int { x + 1661 }
+func s1662(x: int) -> int { x + 1662 }
+func s1663(x: int) -> int { x + 1663 }
+func s1664(x: int) -> int { x + 1664 }
+func s1665(x: int) -> int { x + 1665 }
+func s1666(x: int) -> int { x + 1666 }
+func s1667(x: int) -> int { x + 1667 }
+func s1668(x: int) -> int { x + 1668 }
+func s1669(x: int) -> int { x + 1669 }
+func s1670(x: int) -> int { x + 1670 }
+func s1671(x: int) -> int { x + 1671 }
+func s1672(x: int) -> int { x + 1672 }
+func s1673(x: int) -> int { x + 1673 }
+func s1674(x: int) -> int { x + 1674 }
+func s1675(x: int) -> int { x + 1675 }
+func s1676(x: int) -> int { x + 1676 }
+func s1677(x: int) -> int { x + 1677 }
+func s1678(x: int) -> int { x + 1678 }
+func s1679(x: int) -> int { x + 1679 }
+func s1680(x: int) -> int { x + 1680 }
+func s1681(x: int) -> int { x + 1681 }
+func s1682(x: int) -> int { x + 1682 }
+func s1683(x: int) -> int { x + 1683 }
+func s1684(x: int) -> int { x + 1684 }
+func s1685(x: int) -> int { x + 1685 }
+func s1686(x: int) -> int { x + 1686 }
+func s1687(x: int) -> int { x + 1687 }
+func s1688(x: int) -> int { x + 1688 }
+func s1689(x: int) -> int { x + 1689 }
+func s1690(x: int) -> int { x + 1690 }
+func s1691(x: int) -> int { x + 1691 }
+func s1692(x: int) -> int { x + 1692 }
+func s1693(x: int) -> int { x + 1693 }
+func s1694(x: int) -> int { x + 1694 }
+func s1695(x: int) -> int { x + 1695 }
+func s1696(x: int) -> int { x + 1696 }
+func s1697(x: int) -> int { x + 1697 }
+func s1698(x: int) -> int { x + 1698 }
+func s1699(x: int) -> int { x + 1699 }
+func s1700(x: int) -> int { x + 1700 }
+func s1701(x: int) -> int { x + 1701 }
+func s1702(x: int) -> int { x + 1702 }
+func s1703(x: int) -> int { x + 1703 }
+func s1704(x: int) -> int { x + 1704 }
+func s1705(x: int) -> int { x + 1705 }
+func s1706(x: int) -> int { x + 1706 }
+func s1707(x: int) -> int { x + 1707 }
+func s1708(x: int) -> int { x + 1708 }
+func s1709(x: int) -> int { x + 1709 }
+func s1710(x: int) -> int { x + 1710 }
+func s1711(x: int) -> int { x + 1711 }
+func s1712(x: int) -> int { x + 1712 }
+func s1713(x: int) -> int { x + 1713 }
+func s1714(x: int) -> int { x + 1714 }
+func s1715(x: int) -> int { x + 1715 }
+func s1716(x: int) -> int { x + 1716 }
+func s1717(x: int) -> int { x + 1717 }
+func s1718(x: int) -> int { x + 1718 }
+func s1719(x: int) -> int { x + 1719 }
+func s1720(x: int) -> int { x + 1720 }
+func s1721(x: int) -> int { x + 1721 }
+func s1722(x: int) -> int { x + 1722 }
+func s1723(x: int) -> int { x + 1723 }
+func s1724(x: int) -> int { x + 1724 }
+func s1725(x: int) -> int { x + 1725 }
+func s1726(x: int) -> int { x + 1726 }
+func s1727(x: int) -> int { x + 1727 }
+func s1728(x: int) -> int { x + 1728 }
+func s1729(x: int) -> int { x + 1729 }
+func s1730(x: int) -> int { x + 1730 }
+func s1731(x: int) -> int { x + 1731 }
+func s1732(x: int) -> int { x + 1732 }
+func s1733(x: int) -> int { x + 1733 }
+func s1734(x: int) -> int { x + 1734 }
+func s1735(x: int) -> int { x + 1735 }
+func s1736(x: int) -> int { x + 1736 }
+func s1737(x: int) -> int { x + 1737 }
+func s1738(x: int) -> int { x + 1738 }
+func s1739(x: int) -> int { x + 1739 }
+func s1740(x: int) -> int { x + 1740 }
+func s1741(x: int) -> int { x + 1741 }
+func s1742(x: int) -> int { x + 1742 }
+func s1743(x: int) -> int { x + 1743 }
+func s1744(x: int) -> int { x + 1744 }
+func s1745(x: int) -> int { x + 1745 }
+func s1746(x: int) -> int { x + 1746 }
+func s1747(x: int) -> int { x + 1747 }
+func s1748(x: int) -> int { x + 1748 }
+func s1749(x: int) -> int { x + 1749 }
+func s1750(x: int) -> int { x + 1750 }
+func s1751(x: int) -> int { x + 1751 }
+func s1752(x: int) -> int { x + 1752 }
+func s1753(x: int) -> int { x + 1753 }
+func s1754(x: int) -> int { x + 1754 }
+func s1755(x: int) -> int { x + 1755 }
+func s1756(x: int) -> int { x + 1756 }
+func s1757(x: int) -> int { x + 1757 }
+func s1758(x: int) -> int { x + 1758 }
+func s1759(x: int) -> int { x + 1759 }
+func s1760(x: int) -> int { x + 1760 }
+func s1761(x: int) -> int { x + 1761 }
+func s1762(x: int) -> int { x + 1762 }
+func s1763(x: int) -> int { x + 1763 }
+func s1764(x: int) -> int { x + 1764 }
+func s1765(x: int) -> int { x + 1765 }
+func s1766(x: int) -> int { x + 1766 }
+func s1767(x: int) -> int { x + 1767 }
+func s1768(x: int) -> int { x + 1768 }
+func s1769(x: int) -> int { x + 1769 }
+func s1770(x: int) -> int { x + 1770 }
+func s1771(x: int) -> int { x + 1771 }
+func s1772(x: int) -> int { x + 1772 }
+func s1773(x: int) -> int { x + 1773 }
+func s1774(x: int) -> int { x + 1774 }
+func s1775(x: int) -> int { x + 1775 }
+func s1776(x: int) -> int { x + 1776 }
+func s1777(x: int) -> int { x + 1777 }
+func s1778(x: int) -> int { x + 1778 }
+func s1779(x: int) -> int { x + 1779 }
+func s1780(x: int) -> int { x + 1780 }
+func s1781(x: int) -> int { x + 1781 }
+func s1782(x: int) -> int { x + 1782 }
+func s1783(x: int) -> int { x + 1783 }
+func s1784(x: int) -> int { x + 1784 }
+func s1785(x: int) -> int { x + 1785 }
+func s1786(x: int) -> int { x + 1786 }
+func s1787(x: int) -> int { x + 1787 }
+func s1788(x: int) -> int { x + 1788 }
+func s1789(x: int) -> int { x + 1789 }
+func s1790(x: int) -> int { x + 1790 }
+func s1791(x: int) -> int { x + 1791 }
+func s1792(x: int) -> int { x + 1792 }
+func s1793(x: int) -> int { x + 1793 }
+func s1794(x: int) -> int { x + 1794 }
+func s1795(x: int) -> int { x + 1795 }
+func s1796(x: int) -> int { x + 1796 }
+func s1797(x: int) -> int { x + 1797 }
+func s1798(x: int) -> int { x + 1798 }
+func s1799(x: int) -> int { x + 1799 }
+func s1800(x: int) -> int { x + 1800 }
+func s1801(x: int) -> int { x + 1801 }
+func s1802(x: int) -> int { x + 1802 }
+func s1803(x: int) -> int { x + 1803 }
+func s1804(x: int) -> int { x + 1804 }
+func s1805(x: int) -> int { x + 1805 }
+func s1806(x: int) -> int { x + 1806 }
+func s1807(x: int) -> int { x + 1807 }
+func s1808(x: int) -> int { x + 1808 }
+func s1809(x: int) -> int { x + 1809 }
+func s1810(x: int) -> int { x + 1810 }
+func s1811(x: int) -> int { x + 1811 }
+func s1812(x: int) -> int { x + 1812 }
+func s1813(x: int) -> int { x + 1813 }
+func s1814(x: int) -> int { x + 1814 }
+func s1815(x: int) -> int { x + 1815 }
+func s1816(x: int) -> int { x + 1816 }
+func s1817(x: int) -> int { x + 1817 }
+func s1818(x: int) -> int { x + 1818 }
+func s1819(x: int) -> int { x + 1819 }
+func s1820(x: int) -> int { x + 1820 }
+func s1821(x: int) -> int { x + 1821 }
+func s1822(x: int) -> int { x + 1822 }
+func s1823(x: int) -> int { x + 1823 }
+func s1824(x: int) -> int { x + 1824 }
+func s1825(x: int) -> int { x + 1825 }
+func s1826(x: int) -> int { x + 1826 }
+func s1827(x: int) -> int { x + 1827 }
+func s1828(x: int) -> int { x + 1828 }
+func s1829(x: int) -> int { x + 1829 }
+func s1830(x: int) -> int { x + 1830 }
+func s1831(x: int) -> int { x + 1831 }
+func s1832(x: int) -> int { x + 1832 }
+func s1833(x: int) -> int { x + 1833 }
+func s1834(x: int) -> int { x + 1834 }
+func s1835(x: int) -> int { x + 1835 }
+func s1836(x: int) -> int { x + 1836 }
+func s1837(x: int) -> int { x + 1837 }
+func s1838(x: int) -> int { x + 1838 }
+func s1839(x: int) -> int { x + 1839 }
+func s1840(x: int) -> int { x + 1840 }
+func s1841(x: int) -> int { x + 1841 }
+func s1842(x: int) -> int { x + 1842 }
+func s1843(x: int) -> int { x + 1843 }
+func s1844(x: int) -> int { x + 1844 }
+func s1845(x: int) -> int { x + 1845 }
+func s1846(x: int) -> int { x + 1846 }
+func s1847(x: int) -> int { x + 1847 }
+func s1848(x: int) -> int { x + 1848 }
+func s1849(x: int) -> int { x + 1849 }
+func s1850(x: int) -> int { x + 1850 }
+func s1851(x: int) -> int { x + 1851 }
+func s1852(x: int) -> int { x + 1852 }
+func s1853(x: int) -> int { x + 1853 }
+func s1854(x: int) -> int { x + 1854 }
+func s1855(x: int) -> int { x + 1855 }
+func s1856(x: int) -> int { x + 1856 }
+func s1857(x: int) -> int { x + 1857 }
+func s1858(x: int) -> int { x + 1858 }
+func s1859(x: int) -> int { x + 1859 }
+func s1860(x: int) -> int { x + 1860 }
+func s1861(x: int) -> int { x + 1861 }
+func s1862(x: int) -> int { x + 1862 }
+func s1863(x: int) -> int { x + 1863 }
+func s1864(x: int) -> int { x + 1864 }
+func s1865(x: int) -> int { x + 1865 }
+func s1866(x: int) -> int { x + 1866 }
+func s1867(x: int) -> int { x + 1867 }
+func s1868(x: int) -> int { x + 1868 }
+func s1869(x: int) -> int { x + 1869 }
+func s1870(x: int) -> int { x + 1870 }
+func s1871(x: int) -> int { x + 1871 }
+func s1872(x: int) -> int { x + 1872 }
+func s1873(x: int) -> int { x + 1873 }
+func s1874(x: int) -> int { x + 1874 }
+func s1875(x: int) -> int { x + 1875 }
+func s1876(x: int) -> int { x + 1876 }
+func s1877(x: int) -> int { x + 1877 }
+func s1878(x: int) -> int { x + 1878 }
+func s1879(x: int) -> int { x + 1879 }
+func s1880(x: int) -> int { x + 1880 }
+func s1881(x: int) -> int { x + 1881 }
+func s1882(x: int) -> int { x + 1882 }
+func s1883(x: int) -> int { x + 1883 }
+func s1884(x: int) -> int { x + 1884 }
+func s1885(x: int) -> int { x + 1885 }
+func s1886(x: int) -> int { x + 1886 }
+func s1887(x: int) -> int { x + 1887 }
+func s1888(x: int) -> int { x + 1888 }
+func s1889(x: int) -> int { x + 1889 }
+func s1890(x: int) -> int { x + 1890 }
+func s1891(x: int) -> int { x + 1891 }
+func s1892(x: int) -> int { x + 1892 }
+func s1893(x: int) -> int { x + 1893 }
+func s1894(x: int) -> int { x + 1894 }
+func s1895(x: int) -> int { x + 1895 }
+func s1896(x: int) -> int { x + 1896 }
+func s1897(x: int) -> int { x + 1897 }
+func s1898(x: int) -> int { x + 1898 }
+func s1899(x: int) -> int { x + 1899 }
+func s1900(x: int) -> int { x + 1900 }
+func s1901(x: int) -> int { x + 1901 }
+func s1902(x: int) -> int { x + 1902 }
+func s1903(x: int) -> int { x + 1903 }
+func s1904(x: int) -> int { x + 1904 }
+func s1905(x: int) -> int { x + 1905 }
+func s1906(x: int) -> int { x + 1906 }
+func s1907(x: int) -> int { x + 1907 }
+func s1908(x: int) -> int { x + 1908 }
+func s1909(x: int) -> int { x + 1909 }
+func s1910(x: int) -> int { x + 1910 }
+func s1911(x: int) -> int { x + 1911 }
+func s1912(x: int) -> int { x + 1912 }
+func s1913(x: int) -> int { x + 1913 }
+func s1914(x: int) -> int { x + 1914 }
+func s1915(x: int) -> int { x + 1915 }
+func s1916(x: int) -> int { x + 1916 }
+func s1917(x: int) -> int { x + 1917 }
+func s1918(x: int) -> int { x + 1918 }
+func s1919(x: int) -> int { x + 1919 }
+func s1920(x: int) -> int { x + 1920 }
+func s1921(x: int) -> int { x + 1921 }
+func s1922(x: int) -> int { x + 1922 }
+func s1923(x: int) -> int { x + 1923 }
+func s1924(x: int) -> int { x + 1924 }
+func s1925(x: int) -> int { x + 1925 }
+func s1926(x: int) -> int { x + 1926 }
+func s1927(x: int) -> int { x + 1927 }
+func s1928(x: int) -> int { x + 1928 }
+func s1929(x: int) -> int { x + 1929 }
+func s1930(x: int) -> int { x + 1930 }
+func s1931(x: int) -> int { x + 1931 }
+func s1932(x: int) -> int { x + 1932 }
+func s1933(x: int) -> int { x + 1933 }
+func s1934(x: int) -> int { x + 1934 }
+func s1935(x: int) -> int { x + 1935 }
+func s1936(x: int) -> int { x + 1936 }
+func s1937(x: int) -> int { x + 1937 }
+func s1938(x: int) -> int { x + 1938 }
+func s1939(x: int) -> int { x + 1939 }
+func s1940(x: int) -> int { x + 1940 }
+func s1941(x: int) -> int { x + 1941 }
+func s1942(x: int) -> int { x + 1942 }
+func s1943(x: int) -> int { x + 1943 }
+func s1944(x: int) -> int { x + 1944 }
+func s1945(x: int) -> int { x + 1945 }
+func s1946(x: int) -> int { x + 1946 }
+func s1947(x: int) -> int { x + 1947 }
+func s1948(x: int) -> int { x + 1948 }
+func s1949(x: int) -> int { x + 1949 }
+func s1950(x: int) -> int { x + 1950 }
+func s1951(x: int) -> int { x + 1951 }
+func s1952(x: int) -> int { x + 1952 }
+func s1953(x: int) -> int { x + 1953 }
+func s1954(x: int) -> int { x + 1954 }
+func s1955(x: int) -> int { x + 1955 }
+func s1956(x: int) -> int { x + 1956 }
+func s1957(x: int) -> int { x + 1957 }
+func s1958(x: int) -> int { x + 1958 }
+func s1959(x: int) -> int { x + 1959 }
+func s1960(x: int) -> int { x + 1960 }
+func s1961(x: int) -> int { x + 1961 }
+func s1962(x: int) -> int { x + 1962 }
+func s1963(x: int) -> int { x + 1963 }
+func s1964(x: int) -> int { x + 1964 }
+func s1965(x: int) -> int { x + 1965 }
+func s1966(x: int) -> int { x + 1966 }
+func s1967(x: int) -> int { x + 1967 }
+func s1968(x: int) -> int { x + 1968 }
+func s1969(x: int) -> int { x + 1969 }
+func s1970(x: int) -> int { x + 1970 }
+func s1971(x: int) -> int { x + 1971 }
+func s1972(x: int) -> int { x + 1972 }
+func s1973(x: int) -> int { x + 1973 }
+func s1974(x: int) -> int { x + 1974 }
+func s1975(x: int) -> int { x + 1975 }
+func s1976(x: int) -> int { x + 1976 }
+func s1977(x: int) -> int { x + 1977 }
+func s1978(x: int) -> int { x + 1978 }
+func s1979(x: int) -> int { x + 1979 }
+func s1980(x: int) -> int { x + 1980 }
+func s1981(x: int) -> int { x + 1981 }
+func s1982(x: int) -> int { x + 1982 }
+func s1983(x: int) -> int { x + 1983 }
+func s1984(x: int) -> int { x + 1984 }
+func s1985(x: int) -> int { x + 1985 }
+func s1986(x: int) -> int { x + 1986 }
+func s1987(x: int) -> int { x + 1987 }
+func s1988(x: int) -> int { x + 1988 }
+func s1989(x: int) -> int { x + 1989 }
+func s1990(x: int) -> int { x + 1990 }
+func s1991(x: int) -> int { x + 1991 }
+func s1992(x: int) -> int { x + 1992 }
+func s1993(x: int) -> int { x + 1993 }
+func s1994(x: int) -> int { x + 1994 }
+func s1995(x: int) -> int { x + 1995 }
+func s1996(x: int) -> int { x + 1996 }
+func s1997(x: int) -> int { x + 1997 }
+func s1998(x: int) -> int { x + 1998 }
+func s1999(x: int) -> int { x + 1999 }
+func s2000(x: int) -> int { x + 2000 }
+func s2001(x: int) -> int { x + 2001 }
+func s2002(x: int) -> int { x + 2002 }
+func s2003(x: int) -> int { x + 2003 }
+func s2004(x: int) -> int { x + 2004 }
+func s2005(x: int) -> int { x + 2005 }
+func s2006(x: int) -> int { x + 2006 }
+func s2007(x: int) -> int { x + 2007 }
+func s2008(x: int) -> int { x + 2008 }
+func s2009(x: int) -> int { x + 2009 }
+func s2010(x: int) -> int { x + 2010 }
+func s2011(x: int) -> int { x + 2011 }
+func s2012(x: int) -> int { x + 2012 }
+func s2013(x: int) -> int { x + 2013 }
+func s2014(x: int) -> int { x + 2014 }
+func s2015(x: int) -> int { x + 2015 }
+func s2016(x: int) -> int { x + 2016 }
+func s2017(x: int) -> int { x + 2017 }
+func s2018(x: int) -> int { x + 2018 }
+func s2019(x: int) -> int { x + 2019 }
+func s2020(x: int) -> int { x + 2020 }
+func s2021(x: int) -> int { x + 2021 }
+func s2022(x: int) -> int { x + 2022 }
+func s2023(x: int) -> int { x + 2023 }
+func s2024(x: int) -> int { x + 2024 }
+func s2025(x: int) -> int { x + 2025 }
+func s2026(x: int) -> int { x + 2026 }
+func s2027(x: int) -> int { x + 2027 }
+func s2028(x: int) -> int { x + 2028 }
+func s2029(x: int) -> int { x + 2029 }
+func s2030(x: int) -> int { x + 2030 }
+func s2031(x: int) -> int { x + 2031 }
+func s2032(x: int) -> int { x + 2032 }
+func s2033(x: int) -> int { x + 2033 }
+func s2034(x: int) -> int { x + 2034 }
+func s2035(x: int) -> int { x + 2035 }
+func s2036(x: int) -> int { x + 2036 }
+func s2037(x: int) -> int { x + 2037 }
+func s2038(x: int) -> int { x + 2038 }
+func s2039(x: int) -> int { x + 2039 }
+func s2040(x: int) -> int { x + 2040 }
+func s2041(x: int) -> int { x + 2041 }
+func s2042(x: int) -> int { x + 2042 }
+func s2043(x: int) -> int { x + 2043 }
+func s2044(x: int) -> int { x + 2044 }
+func s2045(x: int) -> int { x + 2045 }
+func s2046(x: int) -> int { x + 2046 }
+func s2047(x: int) -> int { x + 2047 }
+func s2048(x: int) -> int { x + 2048 }
+func s2049(x: int) -> int { x + 2049 }
+func s2050(x: int) -> int { x + 2050 }
+func s2051(x: int) -> int { x + 2051 }
+func s2052(x: int) -> int { x + 2052 }
+func s2053(x: int) -> int { x + 2053 }
+func s2054(x: int) -> int { x + 2054 }
+func s2055(x: int) -> int { x + 2055 }
+func s2056(x: int) -> int { x + 2056 }
+func s2057(x: int) -> int { x + 2057 }
+func s2058(x: int) -> int { x + 2058 }
+func s2059(x: int) -> int { x + 2059 }
+func s2060(x: int) -> int { x + 2060 }
+func s2061(x: int) -> int { x + 2061 }
+func s2062(x: int) -> int { x + 2062 }
+func s2063(x: int) -> int { x + 2063 }
+func s2064(x: int) -> int { x + 2064 }
+func s2065(x: int) -> int { x + 2065 }
+func s2066(x: int) -> int { x + 2066 }
+func s2067(x: int) -> int { x + 2067 }
+func s2068(x: int) -> int { x + 2068 }
+func s2069(x: int) -> int { x + 2069 }
+func s2070(x: int) -> int { x + 2070 }
+func s2071(x: int) -> int { x + 2071 }
+func s2072(x: int) -> int { x + 2072 }
+func s2073(x: int) -> int { x + 2073 }
+func s2074(x: int) -> int { x + 2074 }
+func s2075(x: int) -> int { x + 2075 }
+func s2076(x: int) -> int { x + 2076 }
+func s2077(x: int) -> int { x + 2077 }
+func s2078(x: int) -> int { x + 2078 }
+func s2079(x: int) -> int { x + 2079 }
+func s2080(x: int) -> int { x + 2080 }
+func s2081(x: int) -> int { x + 2081 }
+func s2082(x: int) -> int { x + 2082 }
+func s2083(x: int) -> int { x + 2083 }
+func s2084(x: int) -> int { x + 2084 }
+func s2085(x: int) -> int { x + 2085 }
+func s2086(x: int) -> int { x + 2086 }
+func s2087(x: int) -> int { x + 2087 }
+func s2088(x: int) -> int { x + 2088 }
+func s2089(x: int) -> int { x + 2089 }
+func s2090(x: int) -> int { x + 2090 }
+func s2091(x: int) -> int { x + 2091 }
+func s2092(x: int) -> int { x + 2092 }
+func s2093(x: int) -> int { x + 2093 }
+func s2094(x: int) -> int { x + 2094 }
+func s2095(x: int) -> int { x + 2095 }
+func s2096(x: int) -> int { x + 2096 }
+func s2097(x: int) -> int { x + 2097 }
+func s2098(x: int) -> int { x + 2098 }
+func s2099(x: int) -> int { x + 2099 }
+func s2100(x: int) -> int { x + 2100 }
+func s2101(x: int) -> int { x + 2101 }
+func s2102(x: int) -> int { x + 2102 }
+func s2103(x: int) -> int { x + 2103 }
+func s2104(x: int) -> int { x + 2104 }
+func s2105(x: int) -> int { x + 2105 }
+func s2106(x: int) -> int { x + 2106 }
+func s2107(x: int) -> int { x + 2107 }
+func s2108(x: int) -> int { x + 2108 }
+func s2109(x: int) -> int { x + 2109 }
+func s2110(x: int) -> int { x + 2110 }
+func s2111(x: int) -> int { x + 2111 }
+func s2112(x: int) -> int { x + 2112 }
+func s2113(x: int) -> int { x + 2113 }
+func s2114(x: int) -> int { x + 2114 }
+func s2115(x: int) -> int { x + 2115 }
+func s2116(x: int) -> int { x + 2116 }
+func s2117(x: int) -> int { x + 2117 }
+func s2118(x: int) -> int { x + 2118 }
+func s2119(x: int) -> int { x + 2119 }
+func s2120(x: int) -> int { x + 2120 }
+func s2121(x: int) -> int { x + 2121 }
+func s2122(x: int) -> int { x + 2122 }
+func s2123(x: int) -> int { x + 2123 }
+func s2124(x: int) -> int { x + 2124 }
+func s2125(x: int) -> int { x + 2125 }
+func s2126(x: int) -> int { x + 2126 }
+func s2127(x: int) -> int { x + 2127 }
+func s2128(x: int) -> int { x + 2128 }
+func s2129(x: int) -> int { x + 2129 }
+func s2130(x: int) -> int { x + 2130 }
+func s2131(x: int) -> int { x + 2131 }
+func s2132(x: int) -> int { x + 2132 }
+func s2133(x: int) -> int { x + 2133 }
+func s2134(x: int) -> int { x + 2134 }
+func s2135(x: int) -> int { x + 2135 }
+func s2136(x: int) -> int { x + 2136 }
+func s2137(x: int) -> int { x + 2137 }
+func s2138(x: int) -> int { x + 2138 }
+func s2139(x: int) -> int { x + 2139 }
+func s2140(x: int) -> int { x + 2140 }
+func s2141(x: int) -> int { x + 2141 }
+func s2142(x: int) -> int { x + 2142 }
+func s2143(x: int) -> int { x + 2143 }
+func s2144(x: int) -> int { x + 2144 }
+func s2145(x: int) -> int { x + 2145 }
+func s2146(x: int) -> int { x + 2146 }
+func s2147(x: int) -> int { x + 2147 }
+func s2148(x: int) -> int { x + 2148 }
+func s2149(x: int) -> int { x + 2149 }
+func s2150(x: int) -> int { x + 2150 }
+func s2151(x: int) -> int { x + 2151 }
+func s2152(x: int) -> int { x + 2152 }
+func s2153(x: int) -> int { x + 2153 }
+func s2154(x: int) -> int { x + 2154 }
+func s2155(x: int) -> int { x + 2155 }
+func s2156(x: int) -> int { x + 2156 }
+func s2157(x: int) -> int { x + 2157 }
+func s2158(x: int) -> int { x + 2158 }
+func s2159(x: int) -> int { x + 2159 }
+func s2160(x: int) -> int { x + 2160 }
+func s2161(x: int) -> int { x + 2161 }
+func s2162(x: int) -> int { x + 2162 }
+func s2163(x: int) -> int { x + 2163 }
+func s2164(x: int) -> int { x + 2164 }
+func s2165(x: int) -> int { x + 2165 }
+func s2166(x: int) -> int { x + 2166 }
+func s2167(x: int) -> int { x + 2167 }
+func s2168(x: int) -> int { x + 2168 }
+func s2169(x: int) -> int { x + 2169 }
+func s2170(x: int) -> int { x + 2170 }
+func s2171(x: int) -> int { x + 2171 }
+func s2172(x: int) -> int { x + 2172 }
+func s2173(x: int) -> int { x + 2173 }
+func s2174(x: int) -> int { x + 2174 }
+func s2175(x: int) -> int { x + 2175 }
+func s2176(x: int) -> int { x + 2176 }
+func s2177(x: int) -> int { x + 2177 }
+func s2178(x: int) -> int { x + 2178 }
+func s2179(x: int) -> int { x + 2179 }
+func s2180(x: int) -> int { x + 2180 }
+func s2181(x: int) -> int { x + 2181 }
+func s2182(x: int) -> int { x + 2182 }
+func s2183(x: int) -> int { x + 2183 }
+func s2184(x: int) -> int { x + 2184 }
+func s2185(x: int) -> int { x + 2185 }
+func s2186(x: int) -> int { x + 2186 }
+func s2187(x: int) -> int { x + 2187 }
+func s2188(x: int) -> int { x + 2188 }
+func s2189(x: int) -> int { x + 2189 }
+func s2190(x: int) -> int { x + 2190 }
+func s2191(x: int) -> int { x + 2191 }
+func s2192(x: int) -> int { x + 2192 }
+func s2193(x: int) -> int { x + 2193 }
+func s2194(x: int) -> int { x + 2194 }
+func s2195(x: int) -> int { x + 2195 }
+func s2196(x: int) -> int { x + 2196 }
+func s2197(x: int) -> int { x + 2197 }
+func s2198(x: int) -> int { x + 2198 }
+func s2199(x: int) -> int { x + 2199 }
+func s2200(x: int) -> int { x + 2200 }
+func s2201(x: int) -> int { x + 2201 }
+func s2202(x: int) -> int { x + 2202 }
+func s2203(x: int) -> int { x + 2203 }
+func s2204(x: int) -> int { x + 2204 }
+func s2205(x: int) -> int { x + 2205 }
+func s2206(x: int) -> int { x + 2206 }
+func s2207(x: int) -> int { x + 2207 }
+func s2208(x: int) -> int { x + 2208 }
+func s2209(x: int) -> int { x + 2209 }
+func s2210(x: int) -> int { x + 2210 }
+func s2211(x: int) -> int { x + 2211 }
+func s2212(x: int) -> int { x + 2212 }
+func s2213(x: int) -> int { x + 2213 }
+func s2214(x: int) -> int { x + 2214 }
+func s2215(x: int) -> int { x + 2215 }
+func s2216(x: int) -> int { x + 2216 }
+func s2217(x: int) -> int { x + 2217 }
+func s2218(x: int) -> int { x + 2218 }
+func s2219(x: int) -> int { x + 2219 }
+func s2220(x: int) -> int { x + 2220 }
+func s2221(x: int) -> int { x + 2221 }
+func s2222(x: int) -> int { x + 2222 }
+func s2223(x: int) -> int { x + 2223 }
+func s2224(x: int) -> int { x + 2224 }
+func s2225(x: int) -> int { x + 2225 }
+func s2226(x: int) -> int { x + 2226 }
+func s2227(x: int) -> int { x + 2227 }
+func s2228(x: int) -> int { x + 2228 }
+func s2229(x: int) -> int { x + 2229 }
+func s2230(x: int) -> int { x + 2230 }
+func s2231(x: int) -> int { x + 2231 }
+func s2232(x: int) -> int { x + 2232 }
+func s2233(x: int) -> int { x + 2233 }
+func s2234(x: int) -> int { x + 2234 }
+func s2235(x: int) -> int { x + 2235 }
+func s2236(x: int) -> int { x + 2236 }
+func s2237(x: int) -> int { x + 2237 }
+func s2238(x: int) -> int { x + 2238 }
+func s2239(x: int) -> int { x + 2239 }
+func s2240(x: int) -> int { x + 2240 }
+func s2241(x: int) -> int { x + 2241 }
+func s2242(x: int) -> int { x + 2242 }
+func s2243(x: int) -> int { x + 2243 }
+func s2244(x: int) -> int { x + 2244 }
+func s2245(x: int) -> int { x + 2245 }
+func s2246(x: int) -> int { x + 2246 }
+func s2247(x: int) -> int { x + 2247 }
+func s2248(x: int) -> int { x + 2248 }
+func s2249(x: int) -> int { x + 2249 }
+func s2250(x: int) -> int { x + 2250 }
+func s2251(x: int) -> int { x + 2251 }
+func s2252(x: int) -> int { x + 2252 }
+func s2253(x: int) -> int { x + 2253 }
+func s2254(x: int) -> int { x + 2254 }
+func s2255(x: int) -> int { x + 2255 }
+func s2256(x: int) -> int { x + 2256 }
+func s2257(x: int) -> int { x + 2257 }
+func s2258(x: int) -> int { x + 2258 }
+func s2259(x: int) -> int { x + 2259 }
+func s2260(x: int) -> int { x + 2260 }
+func s2261(x: int) -> int { x + 2261 }
+func s2262(x: int) -> int { x + 2262 }
+func s2263(x: int) -> int { x + 2263 }
+func s2264(x: int) -> int { x + 2264 }
+func s2265(x: int) -> int { x + 2265 }
+func s2266(x: int) -> int { x + 2266 }
+func s2267(x: int) -> int { x + 2267 }
+func s2268(x: int) -> int { x + 2268 }
+func s2269(x: int) -> int { x + 2269 }
+func s2270(x: int) -> int { x + 2270 }
+func s2271(x: int) -> int { x + 2271 }
+func s2272(x: int) -> int { x + 2272 }
+func s2273(x: int) -> int { x + 2273 }
+func s2274(x: int) -> int { x + 2274 }
+func s2275(x: int) -> int { x + 2275 }
+func s2276(x: int) -> int { x + 2276 }
+func s2277(x: int) -> int { x + 2277 }
+func s2278(x: int) -> int { x + 2278 }
+func s2279(x: int) -> int { x + 2279 }
+func s2280(x: int) -> int { x + 2280 }
+func s2281(x: int) -> int { x + 2281 }
+func s2282(x: int) -> int { x + 2282 }
+func s2283(x: int) -> int { x + 2283 }
+func s2284(x: int) -> int { x + 2284 }
+func s2285(x: int) -> int { x + 2285 }
+func s2286(x: int) -> int { x + 2286 }
+func s2287(x: int) -> int { x + 2287 }
+func s2288(x: int) -> int { x + 2288 }
+func s2289(x: int) -> int { x + 2289 }
+func s2290(x: int) -> int { x + 2290 }
+func s2291(x: int) -> int { x + 2291 }
+func s2292(x: int) -> int { x + 2292 }
+func s2293(x: int) -> int { x + 2293 }
+func s2294(x: int) -> int { x + 2294 }
+func s2295(x: int) -> int { x + 2295 }
+func s2296(x: int) -> int { x + 2296 }
+func s2297(x: int) -> int { x + 2297 }
+func s2298(x: int) -> int { x + 2298 }
+func s2299(x: int) -> int { x + 2299 }
+func s2300(x: int) -> int { x + 2300 }
+func s2301(x: int) -> int { x + 2301 }
+func s2302(x: int) -> int { x + 2302 }
+func s2303(x: int) -> int { x + 2303 }
+func s2304(x: int) -> int { x + 2304 }
+func s2305(x: int) -> int { x + 2305 }
+func s2306(x: int) -> int { x + 2306 }
+func s2307(x: int) -> int { x + 2307 }
+func s2308(x: int) -> int { x + 2308 }
+func s2309(x: int) -> int { x + 2309 }
+func s2310(x: int) -> int { x + 2310 }
+func s2311(x: int) -> int { x + 2311 }
+func s2312(x: int) -> int { x + 2312 }
+func s2313(x: int) -> int { x + 2313 }
+func s2314(x: int) -> int { x + 2314 }
+func s2315(x: int) -> int { x + 2315 }
+func s2316(x: int) -> int { x + 2316 }
+func s2317(x: int) -> int { x + 2317 }
+func s2318(x: int) -> int { x + 2318 }
+func s2319(x: int) -> int { x + 2319 }
+func s2320(x: int) -> int { x + 2320 }
+func s2321(x: int) -> int { x + 2321 }
+func s2322(x: int) -> int { x + 2322 }
+func s2323(x: int) -> int { x + 2323 }
+func s2324(x: int) -> int { x + 2324 }
+func s2325(x: int) -> int { x + 2325 }
+func s2326(x: int) -> int { x + 2326 }
+func s2327(x: int) -> int { x + 2327 }
+func s2328(x: int) -> int { x + 2328 }
+func s2329(x: int) -> int { x + 2329 }
+func s2330(x: int) -> int { x + 2330 }
+func s2331(x: int) -> int { x + 2331 }
+func s2332(x: int) -> int { x + 2332 }
+func s2333(x: int) -> int { x + 2333 }
+func s2334(x: int) -> int { x + 2334 }
+func s2335(x: int) -> int { x + 2335 }
+func s2336(x: int) -> int { x + 2336 }
+func s2337(x: int) -> int { x + 2337 }
+func s2338(x: int) -> int { x + 2338 }
+func s2339(x: int) -> int { x + 2339 }
+func s2340(x: int) -> int { x + 2340 }
+func s2341(x: int) -> int { x + 2341 }
+func s2342(x: int) -> int { x + 2342 }
+func s2343(x: int) -> int { x + 2343 }
+func s2344(x: int) -> int { x + 2344 }
+func s2345(x: int) -> int { x + 2345 }
+func s2346(x: int) -> int { x + 2346 }
+func s2347(x: int) -> int { x + 2347 }
+func s2348(x: int) -> int { x + 2348 }
+func s2349(x: int) -> int { x + 2349 }
+func s2350(x: int) -> int { x + 2350 }
+func s2351(x: int) -> int { x + 2351 }
+func s2352(x: int) -> int { x + 2352 }
+func s2353(x: int) -> int { x + 2353 }
+func s2354(x: int) -> int { x + 2354 }
+func s2355(x: int) -> int { x + 2355 }
+func s2356(x: int) -> int { x + 2356 }
+func s2357(x: int) -> int { x + 2357 }
+func s2358(x: int) -> int { x + 2358 }
+func s2359(x: int) -> int { x + 2359 }
+func s2360(x: int) -> int { x + 2360 }
+func s2361(x: int) -> int { x + 2361 }
+func s2362(x: int) -> int { x + 2362 }
+func s2363(x: int) -> int { x + 2363 }
+func s2364(x: int) -> int { x + 2364 }
+func s2365(x: int) -> int { x + 2365 }
+func s2366(x: int) -> int { x + 2366 }
+func s2367(x: int) -> int { x + 2367 }
+func s2368(x: int) -> int { x + 2368 }
+func s2369(x: int) -> int { x + 2369 }
+func s2370(x: int) -> int { x + 2370 }
+func s2371(x: int) -> int { x + 2371 }
+func s2372(x: int) -> int { x + 2372 }
+func s2373(x: int) -> int { x + 2373 }
+func s2374(x: int) -> int { x + 2374 }
+func s2375(x: int) -> int { x + 2375 }
+func s2376(x: int) -> int { x + 2376 }
+func s2377(x: int) -> int { x + 2377 }
+func s2378(x: int) -> int { x + 2378 }
+func s2379(x: int) -> int { x + 2379 }
+func s2380(x: int) -> int { x + 2380 }
+func s2381(x: int) -> int { x + 2381 }
+func s2382(x: int) -> int { x + 2382 }
+func s2383(x: int) -> int { x + 2383 }
+func s2384(x: int) -> int { x + 2384 }
+func s2385(x: int) -> int { x + 2385 }
+func s2386(x: int) -> int { x + 2386 }
+func s2387(x: int) -> int { x + 2387 }
+func s2388(x: int) -> int { x + 2388 }
+func s2389(x: int) -> int { x + 2389 }
+func s2390(x: int) -> int { x + 2390 }
+func s2391(x: int) -> int { x + 2391 }
+func s2392(x: int) -> int { x + 2392 }
+func s2393(x: int) -> int { x + 2393 }
+func s2394(x: int) -> int { x + 2394 }
+func s2395(x: int) -> int { x + 2395 }
+func s2396(x: int) -> int { x + 2396 }
+func s2397(x: int) -> int { x + 2397 }
+func s2398(x: int) -> int { x + 2398 }
+func s2399(x: int) -> int { x + 2399 }
+func s2400(x: int) -> int { x + 2400 }
+func s2401(x: int) -> int { x + 2401 }
+func s2402(x: int) -> int { x + 2402 }
+func s2403(x: int) -> int { x + 2403 }
+func s2404(x: int) -> int { x + 2404 }
+func s2405(x: int) -> int { x + 2405 }
+func s2406(x: int) -> int { x + 2406 }
+func s2407(x: int) -> int { x + 2407 }
+func s2408(x: int) -> int { x + 2408 }
+func s2409(x: int) -> int { x + 2409 }
+func s2410(x: int) -> int { x + 2410 }
+func s2411(x: int) -> int { x + 2411 }
+func s2412(x: int) -> int { x + 2412 }
+func s2413(x: int) -> int { x + 2413 }
+func s2414(x: int) -> int { x + 2414 }
+func s2415(x: int) -> int { x + 2415 }
+func s2416(x: int) -> int { x + 2416 }
+func s2417(x: int) -> int { x + 2417 }
+func s2418(x: int) -> int { x + 2418 }
+func s2419(x: int) -> int { x + 2419 }
+func s2420(x: int) -> int { x + 2420 }
+func s2421(x: int) -> int { x + 2421 }
+func s2422(x: int) -> int { x + 2422 }
+func s2423(x: int) -> int { x + 2423 }
+func s2424(x: int) -> int { x + 2424 }
+func s2425(x: int) -> int { x + 2425 }
+func s2426(x: int) -> int { x + 2426 }
+func s2427(x: int) -> int { x + 2427 }
+func s2428(x: int) -> int { x + 2428 }
+func s2429(x: int) -> int { x + 2429 }
+func s2430(x: int) -> int { x + 2430 }
+func s2431(x: int) -> int { x + 2431 }
+func s2432(x: int) -> int { x + 2432 }
+func s2433(x: int) -> int { x + 2433 }
+func s2434(x: int) -> int { x + 2434 }
+func s2435(x: int) -> int { x + 2435 }
+func s2436(x: int) -> int { x + 2436 }
+func s2437(x: int) -> int { x + 2437 }
+func s2438(x: int) -> int { x + 2438 }
+func s2439(x: int) -> int { x + 2439 }
+func s2440(x: int) -> int { x + 2440 }
+func s2441(x: int) -> int { x + 2441 }
+func s2442(x: int) -> int { x + 2442 }
+func s2443(x: int) -> int { x + 2443 }
+func s2444(x: int) -> int { x + 2444 }
+func s2445(x: int) -> int { x + 2445 }
+func s2446(x: int) -> int { x + 2446 }
+func s2447(x: int) -> int { x + 2447 }
+func s2448(x: int) -> int { x + 2448 }
+func s2449(x: int) -> int { x + 2449 }
+func s2450(x: int) -> int { x + 2450 }
+func s2451(x: int) -> int { x + 2451 }
+func s2452(x: int) -> int { x + 2452 }
+func s2453(x: int) -> int { x + 2453 }
+func s2454(x: int) -> int { x + 2454 }
+func s2455(x: int) -> int { x + 2455 }
+func s2456(x: int) -> int { x + 2456 }
+func s2457(x: int) -> int { x + 2457 }
+func s2458(x: int) -> int { x + 2458 }
+func s2459(x: int) -> int { x + 2459 }
+func s2460(x: int) -> int { x + 2460 }
+func s2461(x: int) -> int { x + 2461 }
+func s2462(x: int) -> int { x + 2462 }
+func s2463(x: int) -> int { x + 2463 }
+func s2464(x: int) -> int { x + 2464 }
+func s2465(x: int) -> int { x + 2465 }
+func s2466(x: int) -> int { x + 2466 }
+func s2467(x: int) -> int { x + 2467 }
+func s2468(x: int) -> int { x + 2468 }
+func s2469(x: int) -> int { x + 2469 }
+func s2470(x: int) -> int { x + 2470 }
+func s2471(x: int) -> int { x + 2471 }
+func s2472(x: int) -> int { x + 2472 }
+func s2473(x: int) -> int { x + 2473 }
+func s2474(x: int) -> int { x + 2474 }
+func s2475(x: int) -> int { x + 2475 }
+func s2476(x: int) -> int { x + 2476 }
+func s2477(x: int) -> int { x + 2477 }
+func s2478(x: int) -> int { x + 2478 }
+func s2479(x: int) -> int { x + 2479 }
+func s2480(x: int) -> int { x + 2480 }
+func s2481(x: int) -> int { x + 2481 }
+func s2482(x: int) -> int { x + 2482 }
+func s2483(x: int) -> int { x + 2483 }
+func s2484(x: int) -> int { x + 2484 }
+func s2485(x: int) -> int { x + 2485 }
+func s2486(x: int) -> int { x + 2486 }
+func s2487(x: int) -> int { x + 2487 }
+func s2488(x: int) -> int { x + 2488 }
+func s2489(x: int) -> int { x + 2489 }
+func s2490(x: int) -> int { x + 2490 }
+func s2491(x: int) -> int { x + 2491 }
+func s2492(x: int) -> int { x + 2492 }
+func s2493(x: int) -> int { x + 2493 }
+func s2494(x: int) -> int { x + 2494 }
+func s2495(x: int) -> int { x + 2495 }
+func s2496(x: int) -> int { x + 2496 }
+func s2497(x: int) -> int { x + 2497 }
+func s2498(x: int) -> int { x + 2498 }
+func s2499(x: int) -> int { x + 2499 }
+func s2500(x: int) -> int { x + 2500 }
+func s2501(x: int) -> int { x + 2501 }
+func s2502(x: int) -> int { x + 2502 }
+func s2503(x: int) -> int { x + 2503 }
+func s2504(x: int) -> int { x + 2504 }
+func s2505(x: int) -> int { x + 2505 }
+func s2506(x: int) -> int { x + 2506 }
+func s2507(x: int) -> int { x + 2507 }
+func s2508(x: int) -> int { x + 2508 }
+func s2509(x: int) -> int { x + 2509 }
+func s2510(x: int) -> int { x + 2510 }
+func s2511(x: int) -> int { x + 2511 }
+func s2512(x: int) -> int { x + 2512 }
+func s2513(x: int) -> int { x + 2513 }
+func s2514(x: int) -> int { x + 2514 }
+func s2515(x: int) -> int { x + 2515 }
+func s2516(x: int) -> int { x + 2516 }
+func s2517(x: int) -> int { x + 2517 }
+func s2518(x: int) -> int { x + 2518 }
+func s2519(x: int) -> int { x + 2519 }
+func s2520(x: int) -> int { x + 2520 }
+func s2521(x: int) -> int { x + 2521 }
+func s2522(x: int) -> int { x + 2522 }
+func s2523(x: int) -> int { x + 2523 }
+func s2524(x: int) -> int { x + 2524 }
+func s2525(x: int) -> int { x + 2525 }
+func s2526(x: int) -> int { x + 2526 }
+func s2527(x: int) -> int { x + 2527 }
+func s2528(x: int) -> int { x + 2528 }
+func s2529(x: int) -> int { x + 2529 }
+func s2530(x: int) -> int { x + 2530 }
+func s2531(x: int) -> int { x + 2531 }
+func s2532(x: int) -> int { x + 2532 }
+func s2533(x: int) -> int { x + 2533 }
+func s2534(x: int) -> int { x + 2534 }
+func s2535(x: int) -> int { x + 2535 }
+func s2536(x: int) -> int { x + 2536 }
+func s2537(x: int) -> int { x + 2537 }
+func s2538(x: int) -> int { x + 2538 }
+func s2539(x: int) -> int { x + 2539 }
+func s2540(x: int) -> int { x + 2540 }
+func s2541(x: int) -> int { x + 2541 }
+func s2542(x: int) -> int { x + 2542 }
+func s2543(x: int) -> int { x + 2543 }
+func s2544(x: int) -> int { x + 2544 }
+func s2545(x: int) -> int { x + 2545 }
+func s2546(x: int) -> int { x + 2546 }
+func s2547(x: int) -> int { x + 2547 }
+func s2548(x: int) -> int { x + 2548 }
+func s2549(x: int) -> int { x + 2549 }
+func s2550(x: int) -> int { x + 2550 }
+func s2551(x: int) -> int { x + 2551 }
+func s2552(x: int) -> int { x + 2552 }
+func s2553(x: int) -> int { x + 2553 }
+func s2554(x: int) -> int { x + 2554 }
+func s2555(x: int) -> int { x + 2555 }
+func s2556(x: int) -> int { x + 2556 }
+func s2557(x: int) -> int { x + 2557 }
+func s2558(x: int) -> int { x + 2558 }
+func s2559(x: int) -> int { x + 2559 }
+func s2560(x: int) -> int { x + 2560 }
+func s2561(x: int) -> int { x + 2561 }
+func s2562(x: int) -> int { x + 2562 }
+func s2563(x: int) -> int { x + 2563 }
+func s2564(x: int) -> int { x + 2564 }
+func s2565(x: int) -> int { x + 2565 }
+func s2566(x: int) -> int { x + 2566 }
+func s2567(x: int) -> int { x + 2567 }
+func s2568(x: int) -> int { x + 2568 }
+func s2569(x: int) -> int { x + 2569 }
+func s2570(x: int) -> int { x + 2570 }
+func s2571(x: int) -> int { x + 2571 }
+func s2572(x: int) -> int { x + 2572 }
+func s2573(x: int) -> int { x + 2573 }
+func s2574(x: int) -> int { x + 2574 }
+func s2575(x: int) -> int { x + 2575 }
+func s2576(x: int) -> int { x + 2576 }
+func s2577(x: int) -> int { x + 2577 }
+func s2578(x: int) -> int { x + 2578 }
+func s2579(x: int) -> int { x + 2579 }
+func s2580(x: int) -> int { x + 2580 }
+func s2581(x: int) -> int { x + 2581 }
+func s2582(x: int) -> int { x + 2582 }
+func s2583(x: int) -> int { x + 2583 }
+func s2584(x: int) -> int { x + 2584 }
+func s2585(x: int) -> int { x + 2585 }
+func s2586(x: int) -> int { x + 2586 }
+func s2587(x: int) -> int { x + 2587 }
+func s2588(x: int) -> int { x + 2588 }
+func s2589(x: int) -> int { x + 2589 }
+func s2590(x: int) -> int { x + 2590 }
+func s2591(x: int) -> int { x + 2591 }
+func s2592(x: int) -> int { x + 2592 }
+func s2593(x: int) -> int { x + 2593 }
+func s2594(x: int) -> int { x + 2594 }
+func s2595(x: int) -> int { x + 2595 }
+func s2596(x: int) -> int { x + 2596 }
+func s2597(x: int) -> int { x + 2597 }
+func s2598(x: int) -> int { x + 2598 }
+func s2599(x: int) -> int { x + 2599 }
+func s2600(x: int) -> int { x + 2600 }
+func s2601(x: int) -> int { x + 2601 }
+func s2602(x: int) -> int { x + 2602 }
+func s2603(x: int) -> int { x + 2603 }
+func s2604(x: int) -> int { x + 2604 }
+func s2605(x: int) -> int { x + 2605 }
+func s2606(x: int) -> int { x + 2606 }
+func s2607(x: int) -> int { x + 2607 }
+func s2608(x: int) -> int { x + 2608 }
+func s2609(x: int) -> int { x + 2609 }
+func s2610(x: int) -> int { x + 2610 }
+func s2611(x: int) -> int { x + 2611 }
+func s2612(x: int) -> int { x + 2612 }
+func s2613(x: int) -> int { x + 2613 }
+func s2614(x: int) -> int { x + 2614 }
+func s2615(x: int) -> int { x + 2615 }
+func s2616(x: int) -> int { x + 2616 }
+func s2617(x: int) -> int { x + 2617 }
+func s2618(x: int) -> int { x + 2618 }
+func s2619(x: int) -> int { x + 2619 }
+func s2620(x: int) -> int { x + 2620 }
+func s2621(x: int) -> int { x + 2621 }
+func s2622(x: int) -> int { x + 2622 }
+func s2623(x: int) -> int { x + 2623 }
+func s2624(x: int) -> int { x + 2624 }
+func s2625(x: int) -> int { x + 2625 }
+func s2626(x: int) -> int { x + 2626 }
+func s2627(x: int) -> int { x + 2627 }
+func s2628(x: int) -> int { x + 2628 }
+func s2629(x: int) -> int { x + 2629 }
+func s2630(x: int) -> int { x + 2630 }
+func s2631(x: int) -> int { x + 2631 }
+func s2632(x: int) -> int { x + 2632 }
+func s2633(x: int) -> int { x + 2633 }
+func s2634(x: int) -> int { x + 2634 }
+func s2635(x: int) -> int { x + 2635 }
+func s2636(x: int) -> int { x + 2636 }
+func s2637(x: int) -> int { x + 2637 }
+func s2638(x: int) -> int { x + 2638 }
+func s2639(x: int) -> int { x + 2639 }
+func s2640(x: int) -> int { x + 2640 }
+func s2641(x: int) -> int { x + 2641 }
+func s2642(x: int) -> int { x + 2642 }
+func s2643(x: int) -> int { x + 2643 }
+func s2644(x: int) -> int { x + 2644 }
+func s2645(x: int) -> int { x + 2645 }
+func s2646(x: int) -> int { x + 2646 }
+func s2647(x: int) -> int { x + 2647 }
+func s2648(x: int) -> int { x + 2648 }
+func s2649(x: int) -> int { x + 2649 }
+func s2650(x: int) -> int { x + 2650 }
+func s2651(x: int) -> int { x + 2651 }
+func s2652(x: int) -> int { x + 2652 }
+func s2653(x: int) -> int { x + 2653 }
+func s2654(x: int) -> int { x + 2654 }
+func s2655(x: int) -> int { x + 2655 }
+func s2656(x: int) -> int { x + 2656 }
+func s2657(x: int) -> int { x + 2657 }
+func s2658(x: int) -> int { x + 2658 }
+func s2659(x: int) -> int { x + 2659 }
+func s2660(x: int) -> int { x + 2660 }
+func s2661(x: int) -> int { x + 2661 }
+func s2662(x: int) -> int { x + 2662 }
+func s2663(x: int) -> int { x + 2663 }
+func s2664(x: int) -> int { x + 2664 }
+func s2665(x: int) -> int { x + 2665 }
+func s2666(x: int) -> int { x + 2666 }
+func s2667(x: int) -> int { x + 2667 }
+func s2668(x: int) -> int { x + 2668 }
+func s2669(x: int) -> int { x + 2669 }
+func s2670(x: int) -> int { x + 2670 }
+func s2671(x: int) -> int { x + 2671 }
+func s2672(x: int) -> int { x + 2672 }
+func s2673(x: int) -> int { x + 2673 }
+func s2674(x: int) -> int { x + 2674 }
+func s2675(x: int) -> int { x + 2675 }
+func s2676(x: int) -> int { x + 2676 }
+func s2677(x: int) -> int { x + 2677 }
+func s2678(x: int) -> int { x + 2678 }
+func s2679(x: int) -> int { x + 2679 }
+func s2680(x: int) -> int { x + 2680 }
+func s2681(x: int) -> int { x + 2681 }
+func s2682(x: int) -> int { x + 2682 }
+func s2683(x: int) -> int { x + 2683 }
+func s2684(x: int) -> int { x + 2684 }
+func s2685(x: int) -> int { x + 2685 }
+func s2686(x: int) -> int { x + 2686 }
+func s2687(x: int) -> int { x + 2687 }
+func s2688(x: int) -> int { x + 2688 }
+func s2689(x: int) -> int { x + 2689 }
+func s2690(x: int) -> int { x + 2690 }
+func s2691(x: int) -> int { x + 2691 }
+func s2692(x: int) -> int { x + 2692 }
+func s2693(x: int) -> int { x + 2693 }
+func s2694(x: int) -> int { x + 2694 }
+func s2695(x: int) -> int { x + 2695 }
+func s2696(x: int) -> int { x + 2696 }
+func s2697(x: int) -> int { x + 2697 }
+func s2698(x: int) -> int { x + 2698 }
+func s2699(x: int) -> int { x + 2699 }
+func s2700(x: int) -> int { x + 2700 }
+func s2701(x: int) -> int { x + 2701 }
+func s2702(x: int) -> int { x + 2702 }
+func s2703(x: int) -> int { x + 2703 }
+func s2704(x: int) -> int { x + 2704 }
+func s2705(x: int) -> int { x + 2705 }
+func s2706(x: int) -> int { x + 2706 }
+func s2707(x: int) -> int { x + 2707 }
+func s2708(x: int) -> int { x + 2708 }
+func s2709(x: int) -> int { x + 2709 }
+func s2710(x: int) -> int { x + 2710 }
+func s2711(x: int) -> int { x + 2711 }
+func s2712(x: int) -> int { x + 2712 }
+func s2713(x: int) -> int { x + 2713 }
+func s2714(x: int) -> int { x + 2714 }
+func s2715(x: int) -> int { x + 2715 }
+func s2716(x: int) -> int { x + 2716 }
+func s2717(x: int) -> int { x + 2717 }
+func s2718(x: int) -> int { x + 2718 }
+func s2719(x: int) -> int { x + 2719 }
+func s2720(x: int) -> int { x + 2720 }
+func s2721(x: int) -> int { x + 2721 }
+func s2722(x: int) -> int { x + 2722 }
+func s2723(x: int) -> int { x + 2723 }
+func s2724(x: int) -> int { x + 2724 }
+func s2725(x: int) -> int { x + 2725 }
+func s2726(x: int) -> int { x + 2726 }
+func s2727(x: int) -> int { x + 2727 }
+func s2728(x: int) -> int { x + 2728 }
+func s2729(x: int) -> int { x + 2729 }
+func s2730(x: int) -> int { x + 2730 }
+func s2731(x: int) -> int { x + 2731 }
+func s2732(x: int) -> int { x + 2732 }
+func s2733(x: int) -> int { x + 2733 }
+func s2734(x: int) -> int { x + 2734 }
+func s2735(x: int) -> int { x + 2735 }
+func s2736(x: int) -> int { x + 2736 }
+func s2737(x: int) -> int { x + 2737 }
+func s2738(x: int) -> int { x + 2738 }
+func s2739(x: int) -> int { x + 2739 }
+func s2740(x: int) -> int { x + 2740 }
+func s2741(x: int) -> int { x + 2741 }
+func s2742(x: int) -> int { x + 2742 }
+func s2743(x: int) -> int { x + 2743 }
+func s2744(x: int) -> int { x + 2744 }
+func s2745(x: int) -> int { x + 2745 }
+func s2746(x: int) -> int { x + 2746 }
+func s2747(x: int) -> int { x + 2747 }
+func s2748(x: int) -> int { x + 2748 }
+func s2749(x: int) -> int { x + 2749 }
+func s2750(x: int) -> int { x + 2750 }
+func s2751(x: int) -> int { x + 2751 }
+func s2752(x: int) -> int { x + 2752 }
+func s2753(x: int) -> int { x + 2753 }
+func s2754(x: int) -> int { x + 2754 }
+func s2755(x: int) -> int { x + 2755 }
+func s2756(x: int) -> int { x + 2756 }
+func s2757(x: int) -> int { x + 2757 }
+func s2758(x: int) -> int { x + 2758 }
+func s2759(x: int) -> int { x + 2759 }
+func s2760(x: int) -> int { x + 2760 }
+func s2761(x: int) -> int { x + 2761 }
+func s2762(x: int) -> int { x + 2762 }
+func s2763(x: int) -> int { x + 2763 }
+func s2764(x: int) -> int { x + 2764 }
+func s2765(x: int) -> int { x + 2765 }
+func s2766(x: int) -> int { x + 2766 }
+func s2767(x: int) -> int { x + 2767 }
+func s2768(x: int) -> int { x + 2768 }
+func s2769(x: int) -> int { x + 2769 }
+func s2770(x: int) -> int { x + 2770 }
+func s2771(x: int) -> int { x + 2771 }
+func s2772(x: int) -> int { x + 2772 }
+func s2773(x: int) -> int { x + 2773 }
+func s2774(x: int) -> int { x + 2774 }
+func s2775(x: int) -> int { x + 2775 }
+func s2776(x: int) -> int { x + 2776 }
+func s2777(x: int) -> int { x + 2777 }
+func s2778(x: int) -> int { x + 2778 }
+func s2779(x: int) -> int { x + 2779 }
+func s2780(x: int) -> int { x + 2780 }
+func s2781(x: int) -> int { x + 2781 }
+func s2782(x: int) -> int { x + 2782 }
+func s2783(x: int) -> int { x + 2783 }
+func s2784(x: int) -> int { x + 2784 }
+func s2785(x: int) -> int { x + 2785 }
+func s2786(x: int) -> int { x + 2786 }
+func s2787(x: int) -> int { x + 2787 }
+func s2788(x: int) -> int { x + 2788 }
+func s2789(x: int) -> int { x + 2789 }
+func s2790(x: int) -> int { x + 2790 }
+func s2791(x: int) -> int { x + 2791 }
+func s2792(x: int) -> int { x + 2792 }
+func s2793(x: int) -> int { x + 2793 }
+func s2794(x: int) -> int { x + 2794 }
+func s2795(x: int) -> int { x + 2795 }
+func s2796(x: int) -> int { x + 2796 }
+func s2797(x: int) -> int { x + 2797 }
+func s2798(x: int) -> int { x + 2798 }
+func s2799(x: int) -> int { x + 2799 }
+func s2800(x: int) -> int { x + 2800 }
+func s2801(x: int) -> int { x + 2801 }
+func s2802(x: int) -> int { x + 2802 }
+func s2803(x: int) -> int { x + 2803 }
+func s2804(x: int) -> int { x + 2804 }
+func s2805(x: int) -> int { x + 2805 }
+func s2806(x: int) -> int { x + 2806 }
+func s2807(x: int) -> int { x + 2807 }
+func s2808(x: int) -> int { x + 2808 }
+func s2809(x: int) -> int { x + 2809 }
+func s2810(x: int) -> int { x + 2810 }
+func s2811(x: int) -> int { x + 2811 }
+func s2812(x: int) -> int { x + 2812 }
+func s2813(x: int) -> int { x + 2813 }
+func s2814(x: int) -> int { x + 2814 }
+func s2815(x: int) -> int { x + 2815 }
+func s2816(x: int) -> int { x + 2816 }
+func s2817(x: int) -> int { x + 2817 }
+func s2818(x: int) -> int { x + 2818 }
+func s2819(x: int) -> int { x + 2819 }
+func s2820(x: int) -> int { x + 2820 }
+func s2821(x: int) -> int { x + 2821 }
+func s2822(x: int) -> int { x + 2822 }
+func s2823(x: int) -> int { x + 2823 }
+func s2824(x: int) -> int { x + 2824 }
+func s2825(x: int) -> int { x + 2825 }
+func s2826(x: int) -> int { x + 2826 }
+func s2827(x: int) -> int { x + 2827 }
+func s2828(x: int) -> int { x + 2828 }
+func s2829(x: int) -> int { x + 2829 }
+func s2830(x: int) -> int { x + 2830 }
+func s2831(x: int) -> int { x + 2831 }
+func s2832(x: int) -> int { x + 2832 }
+func s2833(x: int) -> int { x + 2833 }
+func s2834(x: int) -> int { x + 2834 }
+func s2835(x: int) -> int { x + 2835 }
+func s2836(x: int) -> int { x + 2836 }
+func s2837(x: int) -> int { x + 2837 }
+func s2838(x: int) -> int { x + 2838 }
+func s2839(x: int) -> int { x + 2839 }
+func s2840(x: int) -> int { x + 2840 }
+func s2841(x: int) -> int { x + 2841 }
+func s2842(x: int) -> int { x + 2842 }
+func s2843(x: int) -> int { x + 2843 }
+func s2844(x: int) -> int { x + 2844 }
+func s2845(x: int) -> int { x + 2845 }
+func s2846(x: int) -> int { x + 2846 }
+func s2847(x: int) -> int { x + 2847 }
+func s2848(x: int) -> int { x + 2848 }
+func s2849(x: int) -> int { x + 2849 }
+func s2850(x: int) -> int { x + 2850 }
+func s2851(x: int) -> int { x + 2851 }
+func s2852(x: int) -> int { x + 2852 }
+func s2853(x: int) -> int { x + 2853 }
+func s2854(x: int) -> int { x + 2854 }
+func s2855(x: int) -> int { x + 2855 }
+func s2856(x: int) -> int { x + 2856 }
+func s2857(x: int) -> int { x + 2857 }
+func s2858(x: int) -> int { x + 2858 }
+func s2859(x: int) -> int { x + 2859 }
+func s2860(x: int) -> int { x + 2860 }
+func s2861(x: int) -> int { x + 2861 }
+func s2862(x: int) -> int { x + 2862 }
+func s2863(x: int) -> int { x + 2863 }
+func s2864(x: int) -> int { x + 2864 }
+func s2865(x: int) -> int { x + 2865 }
+func s2866(x: int) -> int { x + 2866 }
+func s2867(x: int) -> int { x + 2867 }
+func s2868(x: int) -> int { x + 2868 }
+func s2869(x: int) -> int { x + 2869 }
+func s2870(x: int) -> int { x + 2870 }
+func s2871(x: int) -> int { x + 2871 }
+func s2872(x: int) -> int { x + 2872 }
+func s2873(x: int) -> int { x + 2873 }
+func s2874(x: int) -> int { x + 2874 }
+func s2875(x: int) -> int { x + 2875 }
+func s2876(x: int) -> int { x + 2876 }
+func s2877(x: int) -> int { x + 2877 }
+func s2878(x: int) -> int { x + 2878 }
+func s2879(x: int) -> int { x + 2879 }
+func s2880(x: int) -> int { x + 2880 }
+func s2881(x: int) -> int { x + 2881 }
+func s2882(x: int) -> int { x + 2882 }
+func s2883(x: int) -> int { x + 2883 }
+func s2884(x: int) -> int { x + 2884 }
+func s2885(x: int) -> int { x + 2885 }
+func s2886(x: int) -> int { x + 2886 }
+func s2887(x: int) -> int { x + 2887 }
+func s2888(x: int) -> int { x + 2888 }
+func s2889(x: int) -> int { x + 2889 }
+func s2890(x: int) -> int { x + 2890 }
+func s2891(x: int) -> int { x + 2891 }
+func s2892(x: int) -> int { x + 2892 }
+func s2893(x: int) -> int { x + 2893 }
+func s2894(x: int) -> int { x + 2894 }
+func s2895(x: int) -> int { x + 2895 }
+func s2896(x: int) -> int { x + 2896 }
+func s2897(x: int) -> int { x + 2897 }
+func s2898(x: int) -> int { x + 2898 }
+func s2899(x: int) -> int { x + 2899 }
+func s2900(x: int) -> int { x + 2900 }
+func s2901(x: int) -> int { x + 2901 }
+func s2902(x: int) -> int { x + 2902 }
+func s2903(x: int) -> int { x + 2903 }
+func s2904(x: int) -> int { x + 2904 }
+func s2905(x: int) -> int { x + 2905 }
+func s2906(x: int) -> int { x + 2906 }
+func s2907(x: int) -> int { x + 2907 }
+func s2908(x: int) -> int { x + 2908 }
+func s2909(x: int) -> int { x + 2909 }
+func s2910(x: int) -> int { x + 2910 }
+func s2911(x: int) -> int { x + 2911 }
+func s2912(x: int) -> int { x + 2912 }
+func s2913(x: int) -> int { x + 2913 }
+func s2914(x: int) -> int { x + 2914 }
+func s2915(x: int) -> int { x + 2915 }
+func s2916(x: int) -> int { x + 2916 }
+func s2917(x: int) -> int { x + 2917 }
+func s2918(x: int) -> int { x + 2918 }
+func s2919(x: int) -> int { x + 2919 }
+func s2920(x: int) -> int { x + 2920 }
+func s2921(x: int) -> int { x + 2921 }
+func s2922(x: int) -> int { x + 2922 }
+func s2923(x: int) -> int { x + 2923 }
+func s2924(x: int) -> int { x + 2924 }
+func s2925(x: int) -> int { x + 2925 }
+func s2926(x: int) -> int { x + 2926 }
+func s2927(x: int) -> int { x + 2927 }
+func s2928(x: int) -> int { x + 2928 }
+func s2929(x: int) -> int { x + 2929 }
+func s2930(x: int) -> int { x + 2930 }
+func s2931(x: int) -> int { x + 2931 }
+func s2932(x: int) -> int { x + 2932 }
+func s2933(x: int) -> int { x + 2933 }
+func s2934(x: int) -> int { x + 2934 }
+func s2935(x: int) -> int { x + 2935 }
+func s2936(x: int) -> int { x + 2936 }
+func s2937(x: int) -> int { x + 2937 }
+func s2938(x: int) -> int { x + 2938 }
+func s2939(x: int) -> int { x + 2939 }
+func s2940(x: int) -> int { x + 2940 }
+func s2941(x: int) -> int { x + 2941 }
+func s2942(x: int) -> int { x + 2942 }
+func s2943(x: int) -> int { x + 2943 }
+func s2944(x: int) -> int { x + 2944 }
+func s2945(x: int) -> int { x + 2945 }
+func s2946(x: int) -> int { x + 2946 }
+func s2947(x: int) -> int { x + 2947 }
+func s2948(x: int) -> int { x + 2948 }
+func s2949(x: int) -> int { x + 2949 }
+func s2950(x: int) -> int { x + 2950 }
+func s2951(x: int) -> int { x + 2951 }
+func s2952(x: int) -> int { x + 2952 }
+func s2953(x: int) -> int { x + 2953 }
+func s2954(x: int) -> int { x + 2954 }
+func s2955(x: int) -> int { x + 2955 }
+func s2956(x: int) -> int { x + 2956 }
+func s2957(x: int) -> int { x + 2957 }
+func s2958(x: int) -> int { x + 2958 }
+func s2959(x: int) -> int { x + 2959 }
+func s2960(x: int) -> int { x + 2960 }
+func s2961(x: int) -> int { x + 2961 }
+func s2962(x: int) -> int { x + 2962 }
+func s2963(x: int) -> int { x + 2963 }
+func s2964(x: int) -> int { x + 2964 }
+func s2965(x: int) -> int { x + 2965 }
+func s2966(x: int) -> int { x + 2966 }
+func s2967(x: int) -> int { x + 2967 }
+func s2968(x: int) -> int { x + 2968 }
+func s2969(x: int) -> int { x + 2969 }
+func s2970(x: int) -> int { x + 2970 }
+func s2971(x: int) -> int { x + 2971 }
+func s2972(x: int) -> int { x + 2972 }
+func s2973(x: int) -> int { x + 2973 }
+func s2974(x: int) -> int { x + 2974 }
+func s2975(x: int) -> int { x + 2975 }
+func s2976(x: int) -> int { x + 2976 }
+func s2977(x: int) -> int { x + 2977 }
+func s2978(x: int) -> int { x + 2978 }
+func s2979(x: int) -> int { x + 2979 }
+func s2980(x: int) -> int { x + 2980 }
+func s2981(x: int) -> int { x + 2981 }
+func s2982(x: int) -> int { x + 2982 }
+func s2983(x: int) -> int { x + 2983 }
+func s2984(x: int) -> int { x + 2984 }
+func s2985(x: int) -> int { x + 2985 }
+func s2986(x: int) -> int { x + 2986 }
+func s2987(x: int) -> int { x + 2987 }
+func s2988(x: int) -> int { x + 2988 }
+func s2989(x: int) -> int { x + 2989 }
+func s2990(x: int) -> int { x + 2990 }
+func s2991(x: int) -> int { x + 2991 }
+func s2992(x: int) -> int { x + 2992 }
+func s2993(x: int) -> int { x + 2993 }
+func s2994(x: int) -> int { x + 2994 }
+func s2995(x: int) -> int { x + 2995 }
+func s2996(x: int) -> int { x + 2996 }
+func s2997(x: int) -> int { x + 2997 }
+func s2998(x: int) -> int { x + 2998 }
+func s2999(x: int) -> int { x + 2999 }
+func s3000(x: int) -> int { x + 3000 }
+func s3001(x: int) -> int { x + 3001 }
+func s3002(x: int) -> int { x + 3002 }
+func s3003(x: int) -> int { x + 3003 }
+func s3004(x: int) -> int { x + 3004 }
+func s3005(x: int) -> int { x + 3005 }
+func s3006(x: int) -> int { x + 3006 }
+func s3007(x: int) -> int { x + 3007 }
+func s3008(x: int) -> int { x + 3008 }
+func s3009(x: int) -> int { x + 3009 }
+func s3010(x: int) -> int { x + 3010 }
+func s3011(x: int) -> int { x + 3011 }
+func s3012(x: int) -> int { x + 3012 }
+func s3013(x: int) -> int { x + 3013 }
+func s3014(x: int) -> int { x + 3014 }
+func s3015(x: int) -> int { x + 3015 }
+func s3016(x: int) -> int { x + 3016 }
+func s3017(x: int) -> int { x + 3017 }
+func s3018(x: int) -> int { x + 3018 }
+func s3019(x: int) -> int { x + 3019 }
+func s3020(x: int) -> int { x + 3020 }
+func s3021(x: int) -> int { x + 3021 }
+func s3022(x: int) -> int { x + 3022 }
+func s3023(x: int) -> int { x + 3023 }
+func s3024(x: int) -> int { x + 3024 }
+func s3025(x: int) -> int { x + 3025 }
+func s3026(x: int) -> int { x + 3026 }
+func s3027(x: int) -> int { x + 3027 }
+func s3028(x: int) -> int { x + 3028 }
+func s3029(x: int) -> int { x + 3029 }
+func s3030(x: int) -> int { x + 3030 }
+func s3031(x: int) -> int { x + 3031 }
+func s3032(x: int) -> int { x + 3032 }
+func s3033(x: int) -> int { x + 3033 }
+func s3034(x: int) -> int { x + 3034 }
+func s3035(x: int) -> int { x + 3035 }
+func s3036(x: int) -> int { x + 3036 }
+func s3037(x: int) -> int { x + 3037 }
+func s3038(x: int) -> int { x + 3038 }
+func s3039(x: int) -> int { x + 3039 }
+func s3040(x: int) -> int { x + 3040 }
+func s3041(x: int) -> int { x + 3041 }
+func s3042(x: int) -> int { x + 3042 }
+func s3043(x: int) -> int { x + 3043 }
+func s3044(x: int) -> int { x + 3044 }
+func s3045(x: int) -> int { x + 3045 }
+func s3046(x: int) -> int { x + 3046 }
+func s3047(x: int) -> int { x + 3047 }
+func s3048(x: int) -> int { x + 3048 }
+func s3049(x: int) -> int { x + 3049 }
+func s3050(x: int) -> int { x + 3050 }
+func s3051(x: int) -> int { x + 3051 }
+func s3052(x: int) -> int { x + 3052 }
+func s3053(x: int) -> int { x + 3053 }
+func s3054(x: int) -> int { x + 3054 }
+func s3055(x: int) -> int { x + 3055 }
+func s3056(x: int) -> int { x + 3056 }
+func s3057(x: int) -> int { x + 3057 }
+func s3058(x: int) -> int { x + 3058 }
+func s3059(x: int) -> int { x + 3059 }
+func s3060(x: int) -> int { x + 3060 }
+func s3061(x: int) -> int { x + 3061 }
+func s3062(x: int) -> int { x + 3062 }
+func s3063(x: int) -> int { x + 3063 }
+func s3064(x: int) -> int { x + 3064 }
+func s3065(x: int) -> int { x + 3065 }
+func s3066(x: int) -> int { x + 3066 }
+func s3067(x: int) -> int { x + 3067 }
+func s3068(x: int) -> int { x + 3068 }
+func s3069(x: int) -> int { x + 3069 }
+func s3070(x: int) -> int { x + 3070 }
+func s3071(x: int) -> int { x + 3071 }
+func s3072(x: int) -> int { x + 3072 }
+func s3073(x: int) -> int { x + 3073 }
+func s3074(x: int) -> int { x + 3074 }
+func s3075(x: int) -> int { x + 3075 }
+func s3076(x: int) -> int { x + 3076 }
+func s3077(x: int) -> int { x + 3077 }
+func s3078(x: int) -> int { x + 3078 }
+func s3079(x: int) -> int { x + 3079 }
+func s3080(x: int) -> int { x + 3080 }
+func s3081(x: int) -> int { x + 3081 }
+func s3082(x: int) -> int { x + 3082 }
+func s3083(x: int) -> int { x + 3083 }
+func s3084(x: int) -> int { x + 3084 }
+func s3085(x: int) -> int { x + 3085 }
+func s3086(x: int) -> int { x + 3086 }
+func s3087(x: int) -> int { x + 3087 }
+func s3088(x: int) -> int { x + 3088 }
+func s3089(x: int) -> int { x + 3089 }
+func s3090(x: int) -> int { x + 3090 }
+func s3091(x: int) -> int { x + 3091 }
+func s3092(x: int) -> int { x + 3092 }
+func s3093(x: int) -> int { x + 3093 }
+func s3094(x: int) -> int { x + 3094 }
+func s3095(x: int) -> int { x + 3095 }
+func s3096(x: int) -> int { x + 3096 }
+func s3097(x: int) -> int { x + 3097 }
+func s3098(x: int) -> int { x + 3098 }
+func s3099(x: int) -> int { x + 3099 }
+func s3100(x: int) -> int { x + 3100 }
+func s3101(x: int) -> int { x + 3101 }
+func s3102(x: int) -> int { x + 3102 }
+func s3103(x: int) -> int { x + 3103 }
+func s3104(x: int) -> int { x + 3104 }
+func s3105(x: int) -> int { x + 3105 }
+func s3106(x: int) -> int { x + 3106 }
+func s3107(x: int) -> int { x + 3107 }
+func s3108(x: int) -> int { x + 3108 }
+func s3109(x: int) -> int { x + 3109 }
+func s3110(x: int) -> int { x + 3110 }
+func s3111(x: int) -> int { x + 3111 }
+func s3112(x: int) -> int { x + 3112 }
+func s3113(x: int) -> int { x + 3113 }
+func s3114(x: int) -> int { x + 3114 }
+func s3115(x: int) -> int { x + 3115 }
+func s3116(x: int) -> int { x + 3116 }
+func s3117(x: int) -> int { x + 3117 }
+func s3118(x: int) -> int { x + 3118 }
+func s3119(x: int) -> int { x + 3119 }
+func s3120(x: int) -> int { x + 3120 }
+func s3121(x: int) -> int { x + 3121 }
+func s3122(x: int) -> int { x + 3122 }
+func s3123(x: int) -> int { x + 3123 }
+func s3124(x: int) -> int { x + 3124 }
+func s3125(x: int) -> int { x + 3125 }
+func s3126(x: int) -> int { x + 3126 }
+func s3127(x: int) -> int { x + 3127 }
+func s3128(x: int) -> int { x + 3128 }
+func s3129(x: int) -> int { x + 3129 }
+func s3130(x: int) -> int { x + 3130 }
+func s3131(x: int) -> int { x + 3131 }
+func s3132(x: int) -> int { x + 3132 }
+func s3133(x: int) -> int { x + 3133 }
+func s3134(x: int) -> int { x + 3134 }
+func s3135(x: int) -> int { x + 3135 }
+func s3136(x: int) -> int { x + 3136 }
+func s3137(x: int) -> int { x + 3137 }
+func s3138(x: int) -> int { x + 3138 }
+func s3139(x: int) -> int { x + 3139 }
+func s3140(x: int) -> int { x + 3140 }
+func s3141(x: int) -> int { x + 3141 }
+func s3142(x: int) -> int { x + 3142 }
+func s3143(x: int) -> int { x + 3143 }
+func s3144(x: int) -> int { x + 3144 }
+func s3145(x: int) -> int { x + 3145 }
+func s3146(x: int) -> int { x + 3146 }
+func s3147(x: int) -> int { x + 3147 }
+func s3148(x: int) -> int { x + 3148 }
+func s3149(x: int) -> int { x + 3149 }
+func s3150(x: int) -> int { x + 3150 }
+func s3151(x: int) -> int { x + 3151 }
+func s3152(x: int) -> int { x + 3152 }
+func s3153(x: int) -> int { x + 3153 }
+func s3154(x: int) -> int { x + 3154 }
+func s3155(x: int) -> int { x + 3155 }
+func s3156(x: int) -> int { x + 3156 }
+func s3157(x: int) -> int { x + 3157 }
+func s3158(x: int) -> int { x + 3158 }
+func s3159(x: int) -> int { x + 3159 }
+func s3160(x: int) -> int { x + 3160 }
+func s3161(x: int) -> int { x + 3161 }
+func s3162(x: int) -> int { x + 3162 }
+func s3163(x: int) -> int { x + 3163 }
+func s3164(x: int) -> int { x + 3164 }
+func s3165(x: int) -> int { x + 3165 }
+func s3166(x: int) -> int { x + 3166 }
+func s3167(x: int) -> int { x + 3167 }
+func s3168(x: int) -> int { x + 3168 }
+func s3169(x: int) -> int { x + 3169 }
+func s3170(x: int) -> int { x + 3170 }
+func s3171(x: int) -> int { x + 3171 }
+func s3172(x: int) -> int { x + 3172 }
+func s3173(x: int) -> int { x + 3173 }
+func s3174(x: int) -> int { x + 3174 }
+func s3175(x: int) -> int { x + 3175 }
+func s3176(x: int) -> int { x + 3176 }
+func s3177(x: int) -> int { x + 3177 }
+func s3178(x: int) -> int { x + 3178 }
+func s3179(x: int) -> int { x + 3179 }
+func s3180(x: int) -> int { x + 3180 }
+func s3181(x: int) -> int { x + 3181 }
+func s3182(x: int) -> int { x + 3182 }
+func s3183(x: int) -> int { x + 3183 }
+func s3184(x: int) -> int { x + 3184 }
+func s3185(x: int) -> int { x + 3185 }
+func s3186(x: int) -> int { x + 3186 }
+func s3187(x: int) -> int { x + 3187 }
+func s3188(x: int) -> int { x + 3188 }
+func s3189(x: int) -> int { x + 3189 }
+func s3190(x: int) -> int { x + 3190 }
+func s3191(x: int) -> int { x + 3191 }
+func s3192(x: int) -> int { x + 3192 }
+func s3193(x: int) -> int { x + 3193 }
+func s3194(x: int) -> int { x + 3194 }
+func s3195(x: int) -> int { x + 3195 }
+func s3196(x: int) -> int { x + 3196 }
+func s3197(x: int) -> int { x + 3197 }
+func s3198(x: int) -> int { x + 3198 }
+func s3199(x: int) -> int { x + 3199 }
+func s3200(x: int) -> int { x + 3200 }
+func s3201(x: int) -> int { x + 3201 }
+func s3202(x: int) -> int { x + 3202 }
+func s3203(x: int) -> int { x + 3203 }
+func s3204(x: int) -> int { x + 3204 }
+func s3205(x: int) -> int { x + 3205 }
+func s3206(x: int) -> int { x + 3206 }
+func s3207(x: int) -> int { x + 3207 }
+func s3208(x: int) -> int { x + 3208 }
+func s3209(x: int) -> int { x + 3209 }
+func s3210(x: int) -> int { x + 3210 }
+func s3211(x: int) -> int { x + 3211 }
+func s3212(x: int) -> int { x + 3212 }
+func s3213(x: int) -> int { x + 3213 }
+func s3214(x: int) -> int { x + 3214 }
+func s3215(x: int) -> int { x + 3215 }
+func s3216(x: int) -> int { x + 3216 }
+func s3217(x: int) -> int { x + 3217 }
+func s3218(x: int) -> int { x + 3218 }
+func s3219(x: int) -> int { x + 3219 }
+func s3220(x: int) -> int { x + 3220 }
+func s3221(x: int) -> int { x + 3221 }
+func s3222(x: int) -> int { x + 3222 }
+func s3223(x: int) -> int { x + 3223 }
+func s3224(x: int) -> int { x + 3224 }
+func s3225(x: int) -> int { x + 3225 }
+func s3226(x: int) -> int { x + 3226 }
+func s3227(x: int) -> int { x + 3227 }
+func s3228(x: int) -> int { x + 3228 }
+func s3229(x: int) -> int { x + 3229 }
+func s3230(x: int) -> int { x + 3230 }
+func s3231(x: int) -> int { x + 3231 }
+func s3232(x: int) -> int { x + 3232 }
+func s3233(x: int) -> int { x + 3233 }
+func s3234(x: int) -> int { x + 3234 }
+func s3235(x: int) -> int { x + 3235 }
+func s3236(x: int) -> int { x + 3236 }
+func s3237(x: int) -> int { x + 3237 }
+func s3238(x: int) -> int { x + 3238 }
+func s3239(x: int) -> int { x + 3239 }
+func s3240(x: int) -> int { x + 3240 }
+func s3241(x: int) -> int { x + 3241 }
+func s3242(x: int) -> int { x + 3242 }
+func s3243(x: int) -> int { x + 3243 }
+func s3244(x: int) -> int { x + 3244 }
+func s3245(x: int) -> int { x + 3245 }
+func s3246(x: int) -> int { x + 3246 }
+func s3247(x: int) -> int { x + 3247 }
+func s3248(x: int) -> int { x + 3248 }
+func s3249(x: int) -> int { x + 3249 }
+func s3250(x: int) -> int { x + 3250 }
+func s3251(x: int) -> int { x + 3251 }
+func s3252(x: int) -> int { x + 3252 }
+func s3253(x: int) -> int { x + 3253 }
+func s3254(x: int) -> int { x + 3254 }
+func s3255(x: int) -> int { x + 3255 }
+func s3256(x: int) -> int { x + 3256 }
+func s3257(x: int) -> int { x + 3257 }
+func s3258(x: int) -> int { x + 3258 }
+func s3259(x: int) -> int { x + 3259 }
+func s3260(x: int) -> int { x + 3260 }
+func s3261(x: int) -> int { x + 3261 }
+func s3262(x: int) -> int { x + 3262 }
+func s3263(x: int) -> int { x + 3263 }
+func s3264(x: int) -> int { x + 3264 }
+func s3265(x: int) -> int { x + 3265 }
+func s3266(x: int) -> int { x + 3266 }
+func s3267(x: int) -> int { x + 3267 }
+func s3268(x: int) -> int { x + 3268 }
+func s3269(x: int) -> int { x + 3269 }
+func s3270(x: int) -> int { x + 3270 }
+func s3271(x: int) -> int { x + 3271 }
+func s3272(x: int) -> int { x + 3272 }
+func s3273(x: int) -> int { x + 3273 }
+func s3274(x: int) -> int { x + 3274 }
+func s3275(x: int) -> int { x + 3275 }
+func s3276(x: int) -> int { x + 3276 }
+func s3277(x: int) -> int { x + 3277 }
+func s3278(x: int) -> int { x + 3278 }
+func s3279(x: int) -> int { x + 3279 }
+func s3280(x: int) -> int { x + 3280 }
+func s3281(x: int) -> int { x + 3281 }
+func s3282(x: int) -> int { x + 3282 }
+func s3283(x: int) -> int { x + 3283 }
+func s3284(x: int) -> int { x + 3284 }
+func s3285(x: int) -> int { x + 3285 }
+func s3286(x: int) -> int { x + 3286 }
+func s3287(x: int) -> int { x + 3287 }
+func s3288(x: int) -> int { x + 3288 }
+func s3289(x: int) -> int { x + 3289 }
+func s3290(x: int) -> int { x + 3290 }
+func s3291(x: int) -> int { x + 3291 }
+func s3292(x: int) -> int { x + 3292 }
+func s3293(x: int) -> int { x + 3293 }
+func s3294(x: int) -> int { x + 3294 }
+func s3295(x: int) -> int { x + 3295 }
+func s3296(x: int) -> int { x + 3296 }
+func s3297(x: int) -> int { x + 3297 }
+func s3298(x: int) -> int { x + 3298 }
+func s3299(x: int) -> int { x + 3299 }
+func s3300(x: int) -> int { x + 3300 }
+func s3301(x: int) -> int { x + 3301 }
+func s3302(x: int) -> int { x + 3302 }
+func s3303(x: int) -> int { x + 3303 }
+func s3304(x: int) -> int { x + 3304 }
+func s3305(x: int) -> int { x + 3305 }
+func s3306(x: int) -> int { x + 3306 }
+func s3307(x: int) -> int { x + 3307 }
+func s3308(x: int) -> int { x + 3308 }
+func s3309(x: int) -> int { x + 3309 }
+func s3310(x: int) -> int { x + 3310 }
+func s3311(x: int) -> int { x + 3311 }
+func s3312(x: int) -> int { x + 3312 }
+func s3313(x: int) -> int { x + 3313 }
+func s3314(x: int) -> int { x + 3314 }
+func s3315(x: int) -> int { x + 3315 }
+func s3316(x: int) -> int { x + 3316 }
+func s3317(x: int) -> int { x + 3317 }
+func s3318(x: int) -> int { x + 3318 }
+func s3319(x: int) -> int { x + 3319 }
+func s3320(x: int) -> int { x + 3320 }
+func s3321(x: int) -> int { x + 3321 }
+func s3322(x: int) -> int { x + 3322 }
+func s3323(x: int) -> int { x + 3323 }
+func s3324(x: int) -> int { x + 3324 }
+func s3325(x: int) -> int { x + 3325 }
+func s3326(x: int) -> int { x + 3326 }
+func s3327(x: int) -> int { x + 3327 }
+func s3328(x: int) -> int { x + 3328 }
+func s3329(x: int) -> int { x + 3329 }
+func s3330(x: int) -> int { x + 3330 }
+func s3331(x: int) -> int { x + 3331 }
+func s3332(x: int) -> int { x + 3332 }
+func s3333(x: int) -> int { x + 3333 }
+func s3334(x: int) -> int { x + 3334 }
+func s3335(x: int) -> int { x + 3335 }
+func s3336(x: int) -> int { x + 3336 }
+func s3337(x: int) -> int { x + 3337 }
+func s3338(x: int) -> int { x + 3338 }
+func s3339(x: int) -> int { x + 3339 }
+func s3340(x: int) -> int { x + 3340 }
+func s3341(x: int) -> int { x + 3341 }
+func s3342(x: int) -> int { x + 3342 }
+func s3343(x: int) -> int { x + 3343 }
+func s3344(x: int) -> int { x + 3344 }
+func s3345(x: int) -> int { x + 3345 }
+func s3346(x: int) -> int { x + 3346 }
+func s3347(x: int) -> int { x + 3347 }
+func s3348(x: int) -> int { x + 3348 }
+func s3349(x: int) -> int { x + 3349 }
+func s3350(x: int) -> int { x + 3350 }
+func s3351(x: int) -> int { x + 3351 }
+func s3352(x: int) -> int { x + 3352 }
+func s3353(x: int) -> int { x + 3353 }
+func s3354(x: int) -> int { x + 3354 }
+func s3355(x: int) -> int { x + 3355 }
+func s3356(x: int) -> int { x + 3356 }
+func s3357(x: int) -> int { x + 3357 }
+func s3358(x: int) -> int { x + 3358 }
+func s3359(x: int) -> int { x + 3359 }
+func s3360(x: int) -> int { x + 3360 }
+func s3361(x: int) -> int { x + 3361 }
+func s3362(x: int) -> int { x + 3362 }
+func s3363(x: int) -> int { x + 3363 }
+func s3364(x: int) -> int { x + 3364 }
+func s3365(x: int) -> int { x + 3365 }
+func s3366(x: int) -> int { x + 3366 }
+func s3367(x: int) -> int { x + 3367 }
+func s3368(x: int) -> int { x + 3368 }
+func s3369(x: int) -> int { x + 3369 }
+func s3370(x: int) -> int { x + 3370 }
+func s3371(x: int) -> int { x + 3371 }
+func s3372(x: int) -> int { x + 3372 }
+func s3373(x: int) -> int { x + 3373 }
+func s3374(x: int) -> int { x + 3374 }
+func s3375(x: int) -> int { x + 3375 }
+func s3376(x: int) -> int { x + 3376 }
+func s3377(x: int) -> int { x + 3377 }
+func s3378(x: int) -> int { x + 3378 }
+func s3379(x: int) -> int { x + 3379 }
+func s3380(x: int) -> int { x + 3380 }
+func s3381(x: int) -> int { x + 3381 }
+func s3382(x: int) -> int { x + 3382 }
+func s3383(x: int) -> int { x + 3383 }
+func s3384(x: int) -> int { x + 3384 }
+func s3385(x: int) -> int { x + 3385 }
+func s3386(x: int) -> int { x + 3386 }
+func s3387(x: int) -> int { x + 3387 }
+func s3388(x: int) -> int { x + 3388 }
+func s3389(x: int) -> int { x + 3389 }
+func s3390(x: int) -> int { x + 3390 }
+func s3391(x: int) -> int { x + 3391 }
+func s3392(x: int) -> int { x + 3392 }
+func s3393(x: int) -> int { x + 3393 }
+func s3394(x: int) -> int { x + 3394 }
+func s3395(x: int) -> int { x + 3395 }
+func s3396(x: int) -> int { x + 3396 }
+func s3397(x: int) -> int { x + 3397 }
+func s3398(x: int) -> int { x + 3398 }
+func s3399(x: int) -> int { x + 3399 }
+func s3400(x: int) -> int { x + 3400 }
+func s3401(x: int) -> int { x + 3401 }
+func s3402(x: int) -> int { x + 3402 }
+func s3403(x: int) -> int { x + 3403 }
+func s3404(x: int) -> int { x + 3404 }
+func s3405(x: int) -> int { x + 3405 }
+func s3406(x: int) -> int { x + 3406 }
+func s3407(x: int) -> int { x + 3407 }
+func s3408(x: int) -> int { x + 3408 }
+func s3409(x: int) -> int { x + 3409 }
+func s3410(x: int) -> int { x + 3410 }
+func s3411(x: int) -> int { x + 3411 }
+func s3412(x: int) -> int { x + 3412 }
+func s3413(x: int) -> int { x + 3413 }
+func s3414(x: int) -> int { x + 3414 }
+func s3415(x: int) -> int { x + 3415 }
+func s3416(x: int) -> int { x + 3416 }
+func s3417(x: int) -> int { x + 3417 }
+func s3418(x: int) -> int { x + 3418 }
+func s3419(x: int) -> int { x + 3419 }
+func s3420(x: int) -> int { x + 3420 }
+func s3421(x: int) -> int { x + 3421 }
+func s3422(x: int) -> int { x + 3422 }
+func s3423(x: int) -> int { x + 3423 }
+func s3424(x: int) -> int { x + 3424 }
+func s3425(x: int) -> int { x + 3425 }
+func s3426(x: int) -> int { x + 3426 }
+func s3427(x: int) -> int { x + 3427 }
+func s3428(x: int) -> int { x + 3428 }
+func s3429(x: int) -> int { x + 3429 }
+func s3430(x: int) -> int { x + 3430 }
+func s3431(x: int) -> int { x + 3431 }
+func s3432(x: int) -> int { x + 3432 }
+func s3433(x: int) -> int { x + 3433 }
+func s3434(x: int) -> int { x + 3434 }
+func s3435(x: int) -> int { x + 3435 }
+func s3436(x: int) -> int { x + 3436 }
+func s3437(x: int) -> int { x + 3437 }
+func s3438(x: int) -> int { x + 3438 }
+func s3439(x: int) -> int { x + 3439 }
+func s3440(x: int) -> int { x + 3440 }
+func s3441(x: int) -> int { x + 3441 }
+func s3442(x: int) -> int { x + 3442 }
+func s3443(x: int) -> int { x + 3443 }
+func s3444(x: int) -> int { x + 3444 }
+func s3445(x: int) -> int { x + 3445 }
+func s3446(x: int) -> int { x + 3446 }
+func s3447(x: int) -> int { x + 3447 }
+func s3448(x: int) -> int { x + 3448 }
+func s3449(x: int) -> int { x + 3449 }
+func s3450(x: int) -> int { x + 3450 }
+func s3451(x: int) -> int { x + 3451 }
+func s3452(x: int) -> int { x + 3452 }
+func s3453(x: int) -> int { x + 3453 }
+func s3454(x: int) -> int { x + 3454 }
+func s3455(x: int) -> int { x + 3455 }
+func s3456(x: int) -> int { x + 3456 }
+func s3457(x: int) -> int { x + 3457 }
+func s3458(x: int) -> int { x + 3458 }
+func s3459(x: int) -> int { x + 3459 }
+func s3460(x: int) -> int { x + 3460 }
+func s3461(x: int) -> int { x + 3461 }
+func s3462(x: int) -> int { x + 3462 }
+func s3463(x: int) -> int { x + 3463 }
+func s3464(x: int) -> int { x + 3464 }
+func s3465(x: int) -> int { x + 3465 }
+func s3466(x: int) -> int { x + 3466 }
+func s3467(x: int) -> int { x + 3467 }
+func s3468(x: int) -> int { x + 3468 }
+func s3469(x: int) -> int { x + 3469 }
+func s3470(x: int) -> int { x + 3470 }
+func s3471(x: int) -> int { x + 3471 }
+func s3472(x: int) -> int { x + 3472 }
+func s3473(x: int) -> int { x + 3473 }
+func s3474(x: int) -> int { x + 3474 }
+func s3475(x: int) -> int { x + 3475 }
+func s3476(x: int) -> int { x + 3476 }
+func s3477(x: int) -> int { x + 3477 }
+func s3478(x: int) -> int { x + 3478 }
+func s3479(x: int) -> int { x + 3479 }
+func s3480(x: int) -> int { x + 3480 }
+func s3481(x: int) -> int { x + 3481 }
+func s3482(x: int) -> int { x + 3482 }
+func s3483(x: int) -> int { x + 3483 }
+func s3484(x: int) -> int { x + 3484 }
+func s3485(x: int) -> int { x + 3485 }
+func s3486(x: int) -> int { x + 3486 }
+func s3487(x: int) -> int { x + 3487 }
+func s3488(x: int) -> int { x + 3488 }
+func s3489(x: int) -> int { x + 3489 }
+func s3490(x: int) -> int { x + 3490 }
+func s3491(x: int) -> int { x + 3491 }
+func s3492(x: int) -> int { x + 3492 }
+func s3493(x: int) -> int { x + 3493 }
+func s3494(x: int) -> int { x + 3494 }
+func s3495(x: int) -> int { x + 3495 }
+func s3496(x: int) -> int { x + 3496 }
+func s3497(x: int) -> int { x + 3497 }
+func s3498(x: int) -> int { x + 3498 }
+func s3499(x: int) -> int { x + 3499 }
+func s3500(x: int) -> int { x + 3500 }
+func s3501(x: int) -> int { x + 3501 }
+func s3502(x: int) -> int { x + 3502 }
+func s3503(x: int) -> int { x + 3503 }
+func s3504(x: int) -> int { x + 3504 }
+func s3505(x: int) -> int { x + 3505 }
+func s3506(x: int) -> int { x + 3506 }
+func s3507(x: int) -> int { x + 3507 }
+func s3508(x: int) -> int { x + 3508 }
+func s3509(x: int) -> int { x + 3509 }
+func s3510(x: int) -> int { x + 3510 }
+func s3511(x: int) -> int { x + 3511 }
+func s3512(x: int) -> int { x + 3512 }
+func s3513(x: int) -> int { x + 3513 }
+func s3514(x: int) -> int { x + 3514 }
+func s3515(x: int) -> int { x + 3515 }
+func s3516(x: int) -> int { x + 3516 }
+func s3517(x: int) -> int { x + 3517 }
+func s3518(x: int) -> int { x + 3518 }
+func s3519(x: int) -> int { x + 3519 }
+func s3520(x: int) -> int { x + 3520 }
+func s3521(x: int) -> int { x + 3521 }
+func s3522(x: int) -> int { x + 3522 }
+func s3523(x: int) -> int { x + 3523 }
+func s3524(x: int) -> int { x + 3524 }
+func s3525(x: int) -> int { x + 3525 }
+func s3526(x: int) -> int { x + 3526 }
+func s3527(x: int) -> int { x + 3527 }
+func s3528(x: int) -> int { x + 3528 }
+func s3529(x: int) -> int { x + 3529 }
+func s3530(x: int) -> int { x + 3530 }
+func s3531(x: int) -> int { x + 3531 }
+func s3532(x: int) -> int { x + 3532 }
+func s3533(x: int) -> int { x + 3533 }
+func s3534(x: int) -> int { x + 3534 }
+func s3535(x: int) -> int { x + 3535 }
+func s3536(x: int) -> int { x + 3536 }
+func s3537(x: int) -> int { x + 3537 }
+func s3538(x: int) -> int { x + 3538 }
+func s3539(x: int) -> int { x + 3539 }
+func s3540(x: int) -> int { x + 3540 }
+func s3541(x: int) -> int { x + 3541 }
+func s3542(x: int) -> int { x + 3542 }
+func s3543(x: int) -> int { x + 3543 }
+func s3544(x: int) -> int { x + 3544 }
+func s3545(x: int) -> int { x + 3545 }
+func s3546(x: int) -> int { x + 3546 }
+func s3547(x: int) -> int { x + 3547 }
+func s3548(x: int) -> int { x + 3548 }
+func s3549(x: int) -> int { x + 3549 }
+func s3550(x: int) -> int { x + 3550 }
+func s3551(x: int) -> int { x + 3551 }
+func s3552(x: int) -> int { x + 3552 }
+func s3553(x: int) -> int { x + 3553 }
+func s3554(x: int) -> int { x + 3554 }
+func s3555(x: int) -> int { x + 3555 }
+func s3556(x: int) -> int { x + 3556 }
+func s3557(x: int) -> int { x + 3557 }
+func s3558(x: int) -> int { x + 3558 }
+func s3559(x: int) -> int { x + 3559 }
+func s3560(x: int) -> int { x + 3560 }
+func s3561(x: int) -> int { x + 3561 }
+func s3562(x: int) -> int { x + 3562 }
+func s3563(x: int) -> int { x + 3563 }
+func s3564(x: int) -> int { x + 3564 }
+func s3565(x: int) -> int { x + 3565 }
+func s3566(x: int) -> int { x + 3566 }
+func s3567(x: int) -> int { x + 3567 }
+func s3568(x: int) -> int { x + 3568 }
+func s3569(x: int) -> int { x + 3569 }
+func s3570(x: int) -> int { x + 3570 }
+func s3571(x: int) -> int { x + 3571 }
+func s3572(x: int) -> int { x + 3572 }
+func s3573(x: int) -> int { x + 3573 }
+func s3574(x: int) -> int { x + 3574 }
+func s3575(x: int) -> int { x + 3575 }
+func s3576(x: int) -> int { x + 3576 }
+func s3577(x: int) -> int { x + 3577 }
+func s3578(x: int) -> int { x + 3578 }
+func s3579(x: int) -> int { x + 3579 }
+func s3580(x: int) -> int { x + 3580 }
+func s3581(x: int) -> int { x + 3581 }
+func s3582(x: int) -> int { x + 3582 }
+func s3583(x: int) -> int { x + 3583 }
+func s3584(x: int) -> int { x + 3584 }
+func s3585(x: int) -> int { x + 3585 }
+func s3586(x: int) -> int { x + 3586 }
+func s3587(x: int) -> int { x + 3587 }
+func s3588(x: int) -> int { x + 3588 }
+func s3589(x: int) -> int { x + 3589 }
+func s3590(x: int) -> int { x + 3590 }
+func s3591(x: int) -> int { x + 3591 }
+func s3592(x: int) -> int { x + 3592 }
+func s3593(x: int) -> int { x + 3593 }
+func s3594(x: int) -> int { x + 3594 }
+func s3595(x: int) -> int { x + 3595 }
+func s3596(x: int) -> int { x + 3596 }
+func s3597(x: int) -> int { x + 3597 }
+func s3598(x: int) -> int { x + 3598 }
+func s3599(x: int) -> int { x + 3599 }
+func s3600(x: int) -> int { x + 3600 }
+func s3601(x: int) -> int { x + 3601 }
+func s3602(x: int) -> int { x + 3602 }
+func s3603(x: int) -> int { x + 3603 }
+func s3604(x: int) -> int { x + 3604 }
+func s3605(x: int) -> int { x + 3605 }
+func s3606(x: int) -> int { x + 3606 }
+func s3607(x: int) -> int { x + 3607 }
+func s3608(x: int) -> int { x + 3608 }
+func s3609(x: int) -> int { x + 3609 }
+func s3610(x: int) -> int { x + 3610 }
+func s3611(x: int) -> int { x + 3611 }
+func s3612(x: int) -> int { x + 3612 }
+func s3613(x: int) -> int { x + 3613 }
+func s3614(x: int) -> int { x + 3614 }
+func s3615(x: int) -> int { x + 3615 }
+func s3616(x: int) -> int { x + 3616 }
+func s3617(x: int) -> int { x + 3617 }
+func s3618(x: int) -> int { x + 3618 }
+func s3619(x: int) -> int { x + 3619 }
+func s3620(x: int) -> int { x + 3620 }
+func s3621(x: int) -> int { x + 3621 }
+func s3622(x: int) -> int { x + 3622 }
+func s3623(x: int) -> int { x + 3623 }
+func s3624(x: int) -> int { x + 3624 }
+func s3625(x: int) -> int { x + 3625 }
+func s3626(x: int) -> int { x + 3626 }
+func s3627(x: int) -> int { x + 3627 }
+func s3628(x: int) -> int { x + 3628 }
+func s3629(x: int) -> int { x + 3629 }
+func s3630(x: int) -> int { x + 3630 }
+func s3631(x: int) -> int { x + 3631 }
+func s3632(x: int) -> int { x + 3632 }
+func s3633(x: int) -> int { x + 3633 }
+func s3634(x: int) -> int { x + 3634 }
+func s3635(x: int) -> int { x + 3635 }
+func s3636(x: int) -> int { x + 3636 }
+func s3637(x: int) -> int { x + 3637 }
+func s3638(x: int) -> int { x + 3638 }
+func s3639(x: int) -> int { x + 3639 }
+func s3640(x: int) -> int { x + 3640 }
+func s3641(x: int) -> int { x + 3641 }
+func s3642(x: int) -> int { x + 3642 }
+func s3643(x: int) -> int { x + 3643 }
+func s3644(x: int) -> int { x + 3644 }
+func s3645(x: int) -> int { x + 3645 }
+func s3646(x: int) -> int { x + 3646 }
+func s3647(x: int) -> int { x + 3647 }
+func s3648(x: int) -> int { x + 3648 }
+func s3649(x: int) -> int { x + 3649 }
+func s3650(x: int) -> int { x + 3650 }
+func s3651(x: int) -> int { x + 3651 }
+func s3652(x: int) -> int { x + 3652 }
+func s3653(x: int) -> int { x + 3653 }
+func s3654(x: int) -> int { x + 3654 }
+func s3655(x: int) -> int { x + 3655 }
+func s3656(x: int) -> int { x + 3656 }
+func s3657(x: int) -> int { x + 3657 }
+func s3658(x: int) -> int { x + 3658 }
+func s3659(x: int) -> int { x + 3659 }
+func s3660(x: int) -> int { x + 3660 }
+func s3661(x: int) -> int { x + 3661 }
+func s3662(x: int) -> int { x + 3662 }
+func s3663(x: int) -> int { x + 3663 }
+func s3664(x: int) -> int { x + 3664 }
+func s3665(x: int) -> int { x + 3665 }
+func s3666(x: int) -> int { x + 3666 }
+func s3667(x: int) -> int { x + 3667 }
+func s3668(x: int) -> int { x + 3668 }
+func s3669(x: int) -> int { x + 3669 }
+func s3670(x: int) -> int { x + 3670 }
+func s3671(x: int) -> int { x + 3671 }
+func s3672(x: int) -> int { x + 3672 }
+func s3673(x: int) -> int { x + 3673 }
+func s3674(x: int) -> int { x + 3674 }
+func s3675(x: int) -> int { x + 3675 }
+func s3676(x: int) -> int { x + 3676 }
+func s3677(x: int) -> int { x + 3677 }
+func s3678(x: int) -> int { x + 3678 }
+func s3679(x: int) -> int { x + 3679 }
+func s3680(x: int) -> int { x + 3680 }
+func s3681(x: int) -> int { x + 3681 }
+func s3682(x: int) -> int { x + 3682 }
+func s3683(x: int) -> int { x + 3683 }
+func s3684(x: int) -> int { x + 3684 }
+func s3685(x: int) -> int { x + 3685 }
+func s3686(x: int) -> int { x + 3686 }
+func s3687(x: int) -> int { x + 3687 }
+func s3688(x: int) -> int { x + 3688 }
+func s3689(x: int) -> int { x + 3689 }
+func s3690(x: int) -> int { x + 3690 }
+func s3691(x: int) -> int { x + 3691 }
+func s3692(x: int) -> int { x + 3692 }
+func s3693(x: int) -> int { x + 3693 }
+func s3694(x: int) -> int { x + 3694 }
+func s3695(x: int) -> int { x + 3695 }
+func s3696(x: int) -> int { x + 3696 }
+func s3697(x: int) -> int { x + 3697 }
+func s3698(x: int) -> int { x + 3698 }
+func s3699(x: int) -> int { x + 3699 }
+func s3700(x: int) -> int { x + 3700 }
+func s3701(x: int) -> int { x + 3701 }
+func s3702(x: int) -> int { x + 3702 }
+func s3703(x: int) -> int { x + 3703 }
+func s3704(x: int) -> int { x + 3704 }
+func s3705(x: int) -> int { x + 3705 }
+func s3706(x: int) -> int { x + 3706 }
+func s3707(x: int) -> int { x + 3707 }
+func s3708(x: int) -> int { x + 3708 }
+func s3709(x: int) -> int { x + 3709 }
+func s3710(x: int) -> int { x + 3710 }
+func s3711(x: int) -> int { x + 3711 }
+func s3712(x: int) -> int { x + 3712 }
+func s3713(x: int) -> int { x + 3713 }
+func s3714(x: int) -> int { x + 3714 }
+func s3715(x: int) -> int { x + 3715 }
+func s3716(x: int) -> int { x + 3716 }
+func s3717(x: int) -> int { x + 3717 }
+func s3718(x: int) -> int { x + 3718 }
+func s3719(x: int) -> int { x + 3719 }
+func s3720(x: int) -> int { x + 3720 }
+func s3721(x: int) -> int { x + 3721 }
+func s3722(x: int) -> int { x + 3722 }
+func s3723(x: int) -> int { x + 3723 }
+func s3724(x: int) -> int { x + 3724 }
+func s3725(x: int) -> int { x + 3725 }
+func s3726(x: int) -> int { x + 3726 }
+func s3727(x: int) -> int { x + 3727 }
+func s3728(x: int) -> int { x + 3728 }
+func s3729(x: int) -> int { x + 3729 }
+func s3730(x: int) -> int { x + 3730 }
+func s3731(x: int) -> int { x + 3731 }
+func s3732(x: int) -> int { x + 3732 }
+func s3733(x: int) -> int { x + 3733 }
+func s3734(x: int) -> int { x + 3734 }
+func s3735(x: int) -> int { x + 3735 }
+func s3736(x: int) -> int { x + 3736 }
+func s3737(x: int) -> int { x + 3737 }
+func s3738(x: int) -> int { x + 3738 }
+func s3739(x: int) -> int { x + 3739 }
+func s3740(x: int) -> int { x + 3740 }
+func s3741(x: int) -> int { x + 3741 }
+func s3742(x: int) -> int { x + 3742 }
+func s3743(x: int) -> int { x + 3743 }
+func s3744(x: int) -> int { x + 3744 }
+func s3745(x: int) -> int { x + 3745 }
+func s3746(x: int) -> int { x + 3746 }
+func s3747(x: int) -> int { x + 3747 }
+func s3748(x: int) -> int { x + 3748 }
+func s3749(x: int) -> int { x + 3749 }
+func s3750(x: int) -> int { x + 3750 }
+func s3751(x: int) -> int { x + 3751 }
+func s3752(x: int) -> int { x + 3752 }
+func s3753(x: int) -> int { x + 3753 }
+func s3754(x: int) -> int { x + 3754 }
+func s3755(x: int) -> int { x + 3755 }
+func s3756(x: int) -> int { x + 3756 }
+func s3757(x: int) -> int { x + 3757 }
+func s3758(x: int) -> int { x + 3758 }
+func s3759(x: int) -> int { x + 3759 }
+func s3760(x: int) -> int { x + 3760 }
+func s3761(x: int) -> int { x + 3761 }
+func s3762(x: int) -> int { x + 3762 }
+func s3763(x: int) -> int { x + 3763 }
+func s3764(x: int) -> int { x + 3764 }
+func s3765(x: int) -> int { x + 3765 }
+func s3766(x: int) -> int { x + 3766 }
+func s3767(x: int) -> int { x + 3767 }
+func s3768(x: int) -> int { x + 3768 }
+func s3769(x: int) -> int { x + 3769 }
+func s3770(x: int) -> int { x + 3770 }
+func s3771(x: int) -> int { x + 3771 }
+func s3772(x: int) -> int { x + 3772 }
+func s3773(x: int) -> int { x + 3773 }
+func s3774(x: int) -> int { x + 3774 }
+func s3775(x: int) -> int { x + 3775 }
+func s3776(x: int) -> int { x + 3776 }
+func s3777(x: int) -> int { x + 3777 }
+func s3778(x: int) -> int { x + 3778 }
+func s3779(x: int) -> int { x + 3779 }
+func s3780(x: int) -> int { x + 3780 }
+func s3781(x: int) -> int { x + 3781 }
+func s3782(x: int) -> int { x + 3782 }
+func s3783(x: int) -> int { x + 3783 }
+func s3784(x: int) -> int { x + 3784 }
+func s3785(x: int) -> int { x + 3785 }
+func s3786(x: int) -> int { x + 3786 }
+func s3787(x: int) -> int { x + 3787 }
+func s3788(x: int) -> int { x + 3788 }
+func s3789(x: int) -> int { x + 3789 }
+func s3790(x: int) -> int { x + 3790 }
+func s3791(x: int) -> int { x + 3791 }
+func s3792(x: int) -> int { x + 3792 }
+func s3793(x: int) -> int { x + 3793 }
+func s3794(x: int) -> int { x + 3794 }
+func s3795(x: int) -> int { x + 3795 }
+func s3796(x: int) -> int { x + 3796 }
+func s3797(x: int) -> int { x + 3797 }
+func s3798(x: int) -> int { x + 3798 }
+func s3799(x: int) -> int { x + 3799 }
+func s3800(x: int) -> int { x + 3800 }
+func s3801(x: int) -> int { x + 3801 }
+func s3802(x: int) -> int { x + 3802 }
+func s3803(x: int) -> int { x + 3803 }
+func s3804(x: int) -> int { x + 3804 }
+func s3805(x: int) -> int { x + 3805 }
+func s3806(x: int) -> int { x + 3806 }
+func s3807(x: int) -> int { x + 3807 }
+func s3808(x: int) -> int { x + 3808 }
+func s3809(x: int) -> int { x + 3809 }
+func s3810(x: int) -> int { x + 3810 }
+func s3811(x: int) -> int { x + 3811 }
+func s3812(x: int) -> int { x + 3812 }
+func s3813(x: int) -> int { x + 3813 }
+func s3814(x: int) -> int { x + 3814 }
+func s3815(x: int) -> int { x + 3815 }
+func s3816(x: int) -> int { x + 3816 }
+func s3817(x: int) -> int { x + 3817 }
+func s3818(x: int) -> int { x + 3818 }
+func s3819(x: int) -> int { x + 3819 }
+func s3820(x: int) -> int { x + 3820 }
+func s3821(x: int) -> int { x + 3821 }
+func s3822(x: int) -> int { x + 3822 }
+func s3823(x: int) -> int { x + 3823 }
+func s3824(x: int) -> int { x + 3824 }
+func s3825(x: int) -> int { x + 3825 }
+func s3826(x: int) -> int { x + 3826 }
+func s3827(x: int) -> int { x + 3827 }
+func s3828(x: int) -> int { x + 3828 }
+func s3829(x: int) -> int { x + 3829 }
+func s3830(x: int) -> int { x + 3830 }
+func s3831(x: int) -> int { x + 3831 }
+func s3832(x: int) -> int { x + 3832 }
+func s3833(x: int) -> int { x + 3833 }
+func s3834(x: int) -> int { x + 3834 }
+func s3835(x: int) -> int { x + 3835 }
+func s3836(x: int) -> int { x + 3836 }
+func s3837(x: int) -> int { x + 3837 }
+func s3838(x: int) -> int { x + 3838 }
+func s3839(x: int) -> int { x + 3839 }
+func s3840(x: int) -> int { x + 3840 }
+func s3841(x: int) -> int { x + 3841 }
+func s3842(x: int) -> int { x + 3842 }
+func s3843(x: int) -> int { x + 3843 }
+func s3844(x: int) -> int { x + 3844 }
+func s3845(x: int) -> int { x + 3845 }
+func s3846(x: int) -> int { x + 3846 }
+func s3847(x: int) -> int { x + 3847 }
+func s3848(x: int) -> int { x + 3848 }
+func s3849(x: int) -> int { x + 3849 }
+func s3850(x: int) -> int { x + 3850 }
+func s3851(x: int) -> int { x + 3851 }
+func s3852(x: int) -> int { x + 3852 }
+func s3853(x: int) -> int { x + 3853 }
+func s3854(x: int) -> int { x + 3854 }
+func s3855(x: int) -> int { x + 3855 }
+func s3856(x: int) -> int { x + 3856 }
+func s3857(x: int) -> int { x + 3857 }
+func s3858(x: int) -> int { x + 3858 }
+func s3859(x: int) -> int { x + 3859 }
+func s3860(x: int) -> int { x + 3860 }
+func s3861(x: int) -> int { x + 3861 }
+func s3862(x: int) -> int { x + 3862 }
+func s3863(x: int) -> int { x + 3863 }
+func s3864(x: int) -> int { x + 3864 }
+func s3865(x: int) -> int { x + 3865 }
+func s3866(x: int) -> int { x + 3866 }
+func s3867(x: int) -> int { x + 3867 }
+func s3868(x: int) -> int { x + 3868 }
+func s3869(x: int) -> int { x + 3869 }
+func s3870(x: int) -> int { x + 3870 }
+func s3871(x: int) -> int { x + 3871 }
+func s3872(x: int) -> int { x + 3872 }
+func s3873(x: int) -> int { x + 3873 }
+func s3874(x: int) -> int { x + 3874 }
+func s3875(x: int) -> int { x + 3875 }
+func s3876(x: int) -> int { x + 3876 }
+func s3877(x: int) -> int { x + 3877 }
+func s3878(x: int) -> int { x + 3878 }
+func s3879(x: int) -> int { x + 3879 }
+func s3880(x: int) -> int { x + 3880 }
+func s3881(x: int) -> int { x + 3881 }
+func s3882(x: int) -> int { x + 3882 }
+func s3883(x: int) -> int { x + 3883 }
+func s3884(x: int) -> int { x + 3884 }
+func s3885(x: int) -> int { x + 3885 }
+func s3886(x: int) -> int { x + 3886 }
+func s3887(x: int) -> int { x + 3887 }
+func s3888(x: int) -> int { x + 3888 }
+func s3889(x: int) -> int { x + 3889 }
+func s3890(x: int) -> int { x + 3890 }
+func s3891(x: int) -> int { x + 3891 }
+func s3892(x: int) -> int { x + 3892 }
+func s3893(x: int) -> int { x + 3893 }
+func s3894(x: int) -> int { x + 3894 }
+func s3895(x: int) -> int { x + 3895 }
+func s3896(x: int) -> int { x + 3896 }
+func s3897(x: int) -> int { x + 3897 }
+func s3898(x: int) -> int { x + 3898 }
+func s3899(x: int) -> int { x + 3899 }
+func s3900(x: int) -> int { x + 3900 }
+func s3901(x: int) -> int { x + 3901 }
+func s3902(x: int) -> int { x + 3902 }
+func s3903(x: int) -> int { x + 3903 }
+func s3904(x: int) -> int { x + 3904 }
+func s3905(x: int) -> int { x + 3905 }
+func s3906(x: int) -> int { x + 3906 }
+func s3907(x: int) -> int { x + 3907 }
+func s3908(x: int) -> int { x + 3908 }
+func s3909(x: int) -> int { x + 3909 }
+func s3910(x: int) -> int { x + 3910 }
+func s3911(x: int) -> int { x + 3911 }
+func s3912(x: int) -> int { x + 3912 }
+func s3913(x: int) -> int { x + 3913 }
+func s3914(x: int) -> int { x + 3914 }
+func s3915(x: int) -> int { x + 3915 }
+func s3916(x: int) -> int { x + 3916 }
+func s3917(x: int) -> int { x + 3917 }
+func s3918(x: int) -> int { x + 3918 }
+func s3919(x: int) -> int { x + 3919 }
+func s3920(x: int) -> int { x + 3920 }
+func s3921(x: int) -> int { x + 3921 }
+func s3922(x: int) -> int { x + 3922 }
+func s3923(x: int) -> int { x + 3923 }
+func s3924(x: int) -> int { x + 3924 }
+func s3925(x: int) -> int { x + 3925 }
+func s3926(x: int) -> int { x + 3926 }
+func s3927(x: int) -> int { x + 3927 }
+func s3928(x: int) -> int { x + 3928 }
+func s3929(x: int) -> int { x + 3929 }
+func s3930(x: int) -> int { x + 3930 }
+func s3931(x: int) -> int { x + 3931 }
+func s3932(x: int) -> int { x + 3932 }
+func s3933(x: int) -> int { x + 3933 }
+func s3934(x: int) -> int { x + 3934 }
+func s3935(x: int) -> int { x + 3935 }
+func s3936(x: int) -> int { x + 3936 }
+func s3937(x: int) -> int { x + 3937 }
+func s3938(x: int) -> int { x + 3938 }
+func s3939(x: int) -> int { x + 3939 }
+func s3940(x: int) -> int { x + 3940 }
+func s3941(x: int) -> int { x + 3941 }
+func s3942(x: int) -> int { x + 3942 }
+func s3943(x: int) -> int { x + 3943 }
+func s3944(x: int) -> int { x + 3944 }
+func s3945(x: int) -> int { x + 3945 }
+func s3946(x: int) -> int { x + 3946 }
+func s3947(x: int) -> int { x + 3947 }
+func s3948(x: int) -> int { x + 3948 }
+func s3949(x: int) -> int { x + 3949 }
+func s3950(x: int) -> int { x + 3950 }
+func s3951(x: int) -> int { x + 3951 }
+func s3952(x: int) -> int { x + 3952 }
+func s3953(x: int) -> int { x + 3953 }
+func s3954(x: int) -> int { x + 3954 }
+func s3955(x: int) -> int { x + 3955 }
+func s3956(x: int) -> int { x + 3956 }
+func s3957(x: int) -> int { x + 3957 }
+func s3958(x: int) -> int { x + 3958 }
+func s3959(x: int) -> int { x + 3959 }
+func s3960(x: int) -> int { x + 3960 }
+func s3961(x: int) -> int { x + 3961 }
+func s3962(x: int) -> int { x + 3962 }
+func s3963(x: int) -> int { x + 3963 }
+func s3964(x: int) -> int { x + 3964 }
+func s3965(x: int) -> int { x + 3965 }
+func s3966(x: int) -> int { x + 3966 }
+func s3967(x: int) -> int { x + 3967 }
+func s3968(x: int) -> int { x + 3968 }
+func s3969(x: int) -> int { x + 3969 }
+func s3970(x: int) -> int { x + 3970 }
+func s3971(x: int) -> int { x + 3971 }
+func s3972(x: int) -> int { x + 3972 }
+func s3973(x: int) -> int { x + 3973 }
+func s3974(x: int) -> int { x + 3974 }
+func s3975(x: int) -> int { x + 3975 }
+func s3976(x: int) -> int { x + 3976 }
+func s3977(x: int) -> int { x + 3977 }
+func s3978(x: int) -> int { x + 3978 }
+func s3979(x: int) -> int { x + 3979 }
+func s3980(x: int) -> int { x + 3980 }
+func s3981(x: int) -> int { x + 3981 }
+func s3982(x: int) -> int { x + 3982 }
+func s3983(x: int) -> int { x + 3983 }
+func s3984(x: int) -> int { x + 3984 }
+func s3985(x: int) -> int { x + 3985 }
+func s3986(x: int) -> int { x + 3986 }
+func s3987(x: int) -> int { x + 3987 }
+func s3988(x: int) -> int { x + 3988 }
+func s3989(x: int) -> int { x + 3989 }
+func s3990(x: int) -> int { x + 3990 }
+func s3991(x: int) -> int { x + 3991 }
+func s3992(x: int) -> int { x + 3992 }
+func s3993(x: int) -> int { x + 3993 }
+func s3994(x: int) -> int { x + 3994 }
+func s3995(x: int) -> int { x + 3995 }
+func s3996(x: int) -> int { x + 3996 }
+func s3997(x: int) -> int { x + 3997 }
+func s3998(x: int) -> int { x + 3998 }
+func s3999(x: int) -> int { x + 3999 }
+func main() -> int { 0 }
diff --git a/bench/compiler/small.zz b/bench/compiler/small.zz
new file mode 100644
index 00000000..78a1a170
--- /dev/null
+++ b/bench/compiler/small.zz
@@ -0,0 +1,9 @@
+// P0 compiler bench: small file — parses + checks in milliseconds.
+func main() -> int {
+ x := 1
+ y := 2
+ return x + y
+}
+
+a := main()
+println("{a}")
diff --git a/bench/ir_baseline.md b/bench/ir_baseline.md
new file mode 100644
index 00000000..0e8e965b
--- /dev/null
+++ b/bench/ir_baseline.md
@@ -0,0 +1,54 @@
+# IR gate benchmarks (pre-M1 baselines for the M5 5% rule)
+
+Gate: AOT-from-IR must be within 5% of current-AOT wall time on this set.
+Measure with `zz build -p` (release flags — the M5 comparison mode),
+best-of-5 runs, binaries outside the repo (`/tmp`).
+
+Set (`bench/ir_gate/*.zz` — committed so M5 reruns the same sources):
+
+| bench | what it stresses | expected out |
+|---|---|---|
+| `fib35.zz` | recursion + call frames | 9227465 |
+| `tak.zz` | nested calls, branches | 9 |
+| `sieve.zz` | arrays, indexing, while loops | 17984 |
+| `arraysum.zz` | vec build + iteration | 47999055 |
+| `strconcat.zz` | string allocation/concat | 100000 |
+
+Baselines (Intel i3-4005U 1.70GHz x86_64, Linux, clang release
+`-O3 -flto=thin`, current HIR-direct AOT). Best-of-5 for the M0
+snapshot; median-of-5 with spread from the flags PR onward:
+
+| bench | M0 best-of-5 | flags-PR median-of-5 (spread) |
+|---|---|---|
+| fib35 | 64ms | 70ms (66–75) |
+| tak | 10ms | 11ms (10–11) |
+| sieve | 31ms | 31ms (29–35) |
+| arraysum | 37ms | 40ms (36–43) |
+| strconcat | 4ms | 4ms (4–5) |
+
+Raw runs around the flags PR (`-ffast-math`/`-march=native` removed,
+`-fwrapv -fno-strict-aliasing` added), same box:
+
+- before (5 runs): fib35 74 76 80 102 106 · tak 15 16 17 17 21 ·
+ sieve 47 51 59 60 72 · arraysum 56 57 57 64 69 · strconcat 5 11 12 12 16
+- after (5 runs): fib35 66 67 70 73 75 · tak 10 10 11 11 11 ·
+ sieve 29 29 31 33 35 · arraysum 36 38 40 40 43 · strconcat 4 4 4 4 5
+
+No attributable change in either direction: the before-run overlapped
+a background release build (note its 2–3x wider spreads), and the
+medians overlap within noise. Verdict for the flags PR: perf-neutral
+within measurement noise. The median column above becomes the M5
+comparison baseline (re-run same-machine/same-day before judging).
+
+Caveats:
+
+- Re-run baselines on the M5 machine before judging: these numbers are
+ machine- and clang-version-specific.
+- `strconcat` is small and noisy; it is an allocation smoke test, not a
+ decision-maker. `tak` is small but call-shaped; keep both, weight
+ fib/sieve/arraysum.
+- Simple accumulation loops (`sum 0..N`) are NOT in the set on purpose:
+ LLVM folds them to closed form, so they measure idiom recognition
+ instead of ZZ codegen (verified: 10M vs 100M both ~3ms).
+- Always diff against a same-machine, same-day current-AOT rebuild —
+ never against this table across machines.
diff --git a/bench/ir_gate/arraysum.zz b/bench/ir_gate/arraysum.zz
new file mode 100644
index 00000000..6730875a
--- /dev/null
+++ b/bench/ir_gate/arraysum.zz
@@ -0,0 +1,12 @@
+import std.vec
+func main() {
+ a := []
+ for i in 0..1000000 {
+ a = vec.push(a, i % 97)
+ }
+ s := 0
+ for v in a {
+ s = s + v
+ }
+ println(s)
+}
diff --git a/bench/ir_gate/fib35.zz b/bench/ir_gate/fib35.zz
new file mode 100644
index 00000000..7446c39a
--- /dev/null
+++ b/bench/ir_gate/fib35.zz
@@ -0,0 +1,14 @@
+
+// Recursion: classic fib(35)
+
+func fib(n: int) -> int {
+ if n <= 1 {
+ n
+ } else {
+ fib(n - 1) + fib(n - 2)
+ }
+}
+
+func main() {
+ println(fib(35))
+}
diff --git a/bench/ir_gate/sieve.zz b/bench/ir_gate/sieve.zz
new file mode 100644
index 00000000..8fb04de3
--- /dev/null
+++ b/bench/ir_gate/sieve.zz
@@ -0,0 +1,21 @@
+func main() {
+ n := 200000
+ is_prime := []
+ for i in 0..n {
+ is_prime = vec.push(is_prime, true)
+ }
+ is_prime[0] = false
+ is_prime[1] = false
+ count := 0
+ for i in 2..n {
+ if is_prime[i] {
+ count = count + 1
+ j := i * 2
+ while j < n {
+ is_prime[j] = false
+ j = j + i
+ }
+ }
+ }
+ println(count)
+}
diff --git a/bench/ir_gate/strconcat.zz b/bench/ir_gate/strconcat.zz
new file mode 100644
index 00000000..b554309f
--- /dev/null
+++ b/bench/ir_gate/strconcat.zz
@@ -0,0 +1,10 @@
+
+// Strings: 20k concat
+
+func main() {
+ s := ""
+ for i in 0..100000 {
+ s = s + "a"
+ }
+ println(len(s))
+}
diff --git a/bench/ir_gate/tak.zz b/bench/ir_gate/tak.zz
new file mode 100644
index 00000000..f772787b
--- /dev/null
+++ b/bench/ir_gate/tak.zz
@@ -0,0 +1,10 @@
+func tak(x: int, y: int, z: int) -> int {
+ if y >= x {
+ z
+ } else {
+ tak(tak(x - 1, y, z), tak(y - 1, z, x), tak(z - 1, x, y))
+ }
+}
+func main() {
+ println(tak(24, 16, 8))
+}
diff --git a/bench/move_append/README.md b/bench/move_append/README.md
new file mode 100644
index 00000000..3857f09e
--- /dev/null
+++ b/bench/move_append/README.md
@@ -0,0 +1,25 @@
+# Move-append elision benchmarks
+
+Harness for the quadratic-append elimination work (`perf/move-append-elision`).
+
+- `gen_corpus.py` — deterministic TOML corpus (seed 7) at 1 KB / 8 KB /
+ 32 KB / 128 KB / 1 MB, flat-key and realistic-mixed shapes. Rerun to
+ regenerate; `corpus/` is gitignored, `MANIFEST.txt` shas pin the bytes.
+- `parse_proxy.zz` — line-based proxy for the toml package's arena pattern
+ (`doc = push_*(doc, …)` on an 11-array struct).
+- `push_int.zz` / `push_str.zz` — `b = vec.push(b, x)` accumulators.
+- `field_push.zz` — `s.f = vec.push(s.f, x)` struct-field accumulator.
+- `thread_doc.zz` — `doc = f(doc, x)` threading an 11-array struct.
+- `run.py` — builds native binaries, runs every case on VM + native,
+ measures wall time (monotonic) and peak RSS (per-child `wait4`
+ `ru_maxrss` — the same kernel counter GNU `time -v` reports; GNU time
+ is not installed here). Writes `docs/perf/baseline.md`.
+
+```bash
+python3 bench/move_append/gen_corpus.py
+python3 bench/move_append/run.py
+```
+
+Full run takes a while (VM corpus cases are slow — that is the point).
+VM cases above 32 KB are skipped as infeasible; native 1 MB may hit the
+590 s timeout, which is itself baseline signal.
diff --git a/bench/move_append/field_push.zz b/bench/move_append/field_push.zz
new file mode 100644
index 00000000..beb93e57
--- /dev/null
+++ b/bench/move_append/field_push.zz
@@ -0,0 +1,24 @@
+// field_push.zz — `s.f = vec.push(s.f, x)` on a struct field.
+import std.env
+
+struct Wrap {
+ f: [int],
+ tag: str,
+}
+
+func first_arg(args: [str], fallback: str) -> str {
+ for a in args {
+ if a != "--" {
+ return a
+ }
+ }
+ fallback
+}
+
+n := int(first_arg(env.args(), "10000")) ?? 10000
+s := Wrap{f: [], tag: "w"}
+for i in 0..n {
+ s.f = vec.push(s.f, i)
+}
+println(len(s.f))
+println("FIELD_PUSH_DONE")
diff --git a/bench/move_append/gen_corpus.py b/bench/move_append/gen_corpus.py
new file mode 100644
index 00000000..3aff35c2
--- /dev/null
+++ b/bench/move_append/gen_corpus.py
@@ -0,0 +1,113 @@
+#!/usr/bin/env python3
+"""Deterministic TOML benchmark corpus generator (seed 7).
+
+Produces flat-key and realistic-mixed files at 1 KB, 8 KB, 32 KB,
+128 KB and 1 MB under corpus/. Mixed files interleave bare keys,
+[table] sections, [[array-of-tables]] entries and long strings so
+the parse proxy exercises table, AoT and string append paths.
+
+Sizes are targets: files are padded with flat keys to land within
+~2% of target. Reruns are byte-identical (fixed seed + no timestamps).
+"""
+
+import hashlib
+import os
+import random
+import sys
+
+HERE = os.path.dirname(os.path.abspath(__file__))
+CORPUS = os.path.join(HERE, "corpus")
+SEED = 7
+
+SIZES = {
+ "1k": 1024,
+ "8k": 8 * 1024,
+ "32k": 32 * 1024,
+ "128k": 128 * 1024,
+ "1m": 1024 * 1024,
+}
+
+WORDS = [
+ "alpha",
+ "beta",
+ "gamma",
+ "delta",
+ "epsilon",
+ "zeta",
+ "eta",
+ "theta",
+ "server",
+ "client",
+ "cache",
+ "queue",
+ "owner",
+ "title",
+]
+
+
+def flat_block(rng, i):
+ return f"k{i:06d} = {rng.randrange(0, 1000000)}\n"
+
+
+def mixed_blocks(rng, i):
+ """One round-robin cycle of realistic shapes."""
+ w = rng.choice(WORDS)
+ table = f"[t{i:04d}_{w}]\n"
+ table += f'host = "h{i}.example.com"\nport = {8000 + (i % 1000)}\n'
+ aot = f'[[items]]\nname = "{w}-{i}"\nqty = {1 + (i % 99)}\n'
+ long_s = "x" * (120 + rng.randrange(0, 120))
+ strang = f'desc{i:04d} = "{long_s}"\n'
+ flat = f"f{i:06d} = {rng.randrange(0, 1000000)}\n"
+ return table + aot + strang + flat
+
+
+def build(target, kind):
+ rng = random.Random(SEED)
+ parts = []
+ size = 0
+ i = 0
+ # Head: a few flat keys so every file starts on the root table.
+ while size < target:
+ if kind == "flat":
+ blk = flat_block(rng, i)
+ else:
+ blk = mixed_blocks(rng, i)
+ # Stop before overshooting by more than one block, then pad
+ # precisely with flat keys.
+ if size + len(blk) > target and size > 0:
+ break
+ parts.append(blk)
+ size += len(blk)
+ i += 1
+ # Precise pad with flat keys to land within ~2% of target.
+ j = 0
+ while size < target:
+ blk = f"pad{j:06d} = {j}\n"
+ if size + len(blk) > target + 64:
+ break
+ parts.append(blk)
+ size += len(blk)
+ j += 1
+ return "".join(parts)
+
+
+def main():
+ os.makedirs(CORPUS, exist_ok=True)
+ manifest = []
+ for name, target in SIZES.items():
+ for kind in ("flat", "mixed"):
+ text = build(target, kind)
+ fname = f"{kind}_{name}.toml"
+ path = os.path.join(CORPUS, fname)
+ with open(path, "w") as f:
+ f.write(text)
+ sha = hashlib.sha256(text.encode()).hexdigest()[:16]
+ manifest.append((fname, len(text), sha))
+ print(f"{fname}: {len(text)} bytes sha={sha}")
+ with open(os.path.join(CORPUS, "MANIFEST.txt"), "w") as f:
+ for fname, size, sha in manifest:
+ f.write(f"{sha} {size:8d} {fname}\n")
+
+
+if __name__ == "__main__":
+ sys.exit(main())
diff --git a/bench/move_append/parse_proxy.zz b/bench/move_append/parse_proxy.zz
new file mode 100644
index 00000000..99aa99f8
--- /dev/null
+++ b/bench/move_append/parse_proxy.zz
@@ -0,0 +1,105 @@
+// parse_proxy.zz — TOML-corpus append benchmark driver.
+//
+// Line-based proxy for the toml package's arena pattern: each key,
+// table header and AoT header appends through `doc = push_*(doc, …)`
+// calls on an 11-array struct, so every insertion pays the same
+// by-value struct + per-array dup costs as the real parser.
+import std.env
+import std.fs
+
+struct Doc {
+ kinds: [str],
+ keys: [str],
+ vals: [str],
+ t_tbl: [int],
+ t_keys: [str],
+ t_kids: [int],
+ a_tbl: [int],
+ a_kids: [int],
+ strs: [str],
+ ints: [int],
+ flags: [int],
+}
+
+func new_doc() -> Doc {
+ Doc{
+ kinds: [],
+ keys: [],
+ vals: [],
+ t_tbl: [],
+ t_keys: [],
+ t_kids: [],
+ a_tbl: [],
+ a_kids: [],
+ strs: [],
+ ints: [],
+ flags: [],
+ }
+}
+
+func push_key(doc: Doc, k: str, v: str) -> Doc {
+ doc.kinds = vec.push(doc.kinds, "I")
+ doc.keys = vec.push(doc.keys, k)
+ doc.vals = vec.push(doc.vals, v)
+ doc.t_tbl = vec.push(doc.t_tbl, 0)
+ doc.t_keys = vec.push(doc.t_keys, k)
+ doc
+}
+
+func push_table(doc: Doc, name: str) -> Doc {
+ doc.kinds = vec.push(doc.kinds, "T")
+ doc.keys = vec.push(doc.keys, name)
+ doc.vals = vec.push(doc.vals, "")
+ doc.t_tbl = vec.push(doc.t_tbl, 0)
+ doc.t_keys = vec.push(doc.t_keys, name)
+ doc.t_kids = vec.push(doc.t_kids, len(doc.kinds))
+ doc.flags = vec.push(doc.flags, 1)
+ doc
+}
+
+func push_aot(doc: Doc, name: str) -> Doc {
+ doc.kinds = vec.push(doc.kinds, "A")
+ doc.keys = vec.push(doc.keys, name)
+ doc.vals = vec.push(doc.vals, "")
+ doc.a_tbl = vec.push(doc.a_tbl, 0)
+ doc.a_kids = vec.push(doc.a_kids, len(doc.kinds))
+ doc.flags = vec.push(doc.flags, 8)
+ doc
+}
+
+func run(path: str) -> int {
+ t := fs.read_to_string(path)
+ match t {
+ .ok(text) => {
+ lines := str.split(text, "\n")
+ doc := new_doc()
+ for line in lines {
+ if str.starts_with(line, "[[") {
+ doc = push_aot(doc, line)
+ } else {
+ if str.starts_with(line, "[") {
+ doc = push_table(doc, line)
+ } else {
+ if str.contains(line, "=") {
+ doc = push_key(doc, line, line)
+ }
+ }
+ }
+ }
+ len(doc.kinds)
+ },
+ .err(_) => 0 - 1,
+ }
+}
+
+args := env.args()
+path := "bench/move_append/corpus/flat_1k.toml"
+for a in args {
+ if a != "--" {
+ path = a
+ break
+ }
+}
+n := run(path)
+println(n)
+println("PARSE_PROXY_DONE")
diff --git a/bench/move_append/push_int.zz b/bench/move_append/push_int.zz
new file mode 100644
index 00000000..8c3f8abd
--- /dev/null
+++ b/bench/move_append/push_int.zz
@@ -0,0 +1,19 @@
+// push_int.zz — `b = vec.push(b, x)` on an int array.
+import std.env
+
+func first_arg(args: [str], fallback: str) -> str {
+ for a in args {
+ if a != "--" {
+ return a
+ }
+ }
+ fallback
+}
+
+n := int(first_arg(env.args(), "10000")) ?? 10000
+b: [int] = []
+for i in 0..n {
+ b = vec.push(b, i)
+}
+println(len(b))
+println("PUSH_INT_DONE")
diff --git a/bench/move_append/push_str.zz b/bench/move_append/push_str.zz
new file mode 100644
index 00000000..de893220
--- /dev/null
+++ b/bench/move_append/push_str.zz
@@ -0,0 +1,19 @@
+// push_str.zz — `b = vec.push(b, x)` on a string array.
+import std.env
+
+func first_arg(args: [str], fallback: str) -> str {
+ for a in args {
+ if a != "--" {
+ return a
+ }
+ }
+ fallback
+}
+
+n := int(first_arg(env.args(), "5000")) ?? 5000
+b: [str] = []
+for i in 0..n {
+ b = vec.push(b, "item_" + str(i))
+}
+println(len(b))
+println("PUSH_STR_DONE")
diff --git a/bench/move_append/run.py b/bench/move_append/run.py
new file mode 100644
index 00000000..eace12fd
--- /dev/null
+++ b/bench/move_append/run.py
@@ -0,0 +1,242 @@
+#!/usr/bin/env python3
+"""Append-elision benchmark harness: wall time + peak RSS per case.
+
+Engines: VM (`zz run`) and native (prebuilt `zz build` binaries).
+Peak RSS comes from `wait4` per-child `ru_maxrss` (same kernel counter
+`/usr/bin/time -v` reports as "Maximum resident set size"; GNU time is
+not installed on this machine, so the harness reads the counter directly
+instead of parsing `time -v` output).
+
+Usage:
+ python3 bench/move_append/run.py [--out docs/perf/baseline.md]
+"""
+
+import argparse
+import datetime
+import hashlib
+import os
+import resource
+import signal
+import subprocess
+import sys
+import time
+
+HERE = os.path.dirname(os.path.abspath(__file__))
+ROOT = os.path.dirname(os.path.dirname(HERE))
+DEFAULT_ZZ = os.path.join(ROOT, "target", "release", "zz")
+if not os.path.exists(DEFAULT_ZZ):
+ DEFAULT_ZZ = os.path.join(ROOT, "target", "debug", "zz")
+# Overridden by --zz below (before/after comparisons across worktrees).
+ZZ = DEFAULT_ZZ
+BIN = os.path.join(HERE, "bin")
+CORPUS = os.path.join(HERE, "corpus")
+DEFAULT_OUT = os.path.join(ROOT, "docs", "perf", "baseline.md")
+
+TIMEOUT_S = 590
+
+MICRO = [
+ ("push_int", ["10000"]),
+ ("push_str", ["5000"]),
+ ("field_push", ["10000"]),
+ ("thread_doc", ["2000"]),
+]
+
+CORPUS_FILES = [
+ "flat_1k",
+ "mixed_1k",
+ "flat_8k",
+ "mixed_8k",
+ "flat_32k",
+ "mixed_32k",
+ "flat_128k",
+ "mixed_128k",
+ "flat_1m",
+ "mixed_1m",
+]
+
+# VM cannot finish the two largest corpora in any reasonable time
+# (superlinear); skip instead of burning two timeout windows.
+VM_SKIP = {"flat_128k", "mixed_128k", "flat_1m", "mixed_1m"}
+
+
+def run_measured(argv, timeout=TIMEOUT_S):
+ """Run argv, return (status, wall_ms, peak_rss_kib).
+
+ status is "ok" or "timeout:" / "error:".
+ """
+ t0 = time.monotonic()
+ pid = os.fork()
+ if pid == 0:
+ try:
+ os.execv(argv[0], argv)
+ except Exception:
+ os._exit(127)
+ deadline = t0 + timeout
+ while True:
+ try:
+ done_pid, status, rusage = os.wait4(pid, os.WNOHANG)
+ except ChildProcessError:
+ return (f"error:gone", int((time.monotonic() - t0) * 1000), 0)
+ if done_pid == pid:
+ wall_ms = int((time.monotonic() - t0) * 1000)
+ if os.WIFEXITED(status) and os.WEXITSTATUS(status) == 0:
+ return ("ok", wall_ms, rusage.ru_maxrss)
+ code = os.WEXITSTATUS(status) if os.WIFEXITED(status) else -1
+ return (f"error:{code}", wall_ms, rusage.ru_maxrss)
+ if time.monotonic() > deadline:
+ try:
+ os.kill(pid, signal.SIGKILL)
+ except ProcessLookupError:
+ pass
+ _, status, rusage = os.wait4(pid, 0)
+ wall_ms = int((time.monotonic() - t0) * 1000)
+ return (f"timeout:{wall_ms}ms", wall_ms, rusage.ru_maxrss)
+ time.sleep(0.05)
+
+
+def build_native(drivers):
+ os.makedirs(BIN, exist_ok=True)
+ bins = {}
+ for name in drivers:
+ src = os.path.join(HERE, name + ".zz")
+ r = subprocess.run(
+ [ZZ, "build", src], capture_output=True, text=True, timeout=590
+ )
+ # `zz build x.zz` drops the binary in /bin/.
+ cand = os.path.join(HERE, "bin", name)
+ if os.path.isfile(cand) and os.access(cand, os.X_OK):
+ bins[name] = cand
+ print(f"built {name} -> {cand}", flush=True)
+ else:
+ print(f"BUILD FAIL {name}: {r.stderr[-500:]}", flush=True)
+ return bins
+
+
+def corpus_sha():
+ h = hashlib.sha256()
+ with open(os.path.join(CORPUS, "MANIFEST.txt"), "rb") as f:
+ h.update(f.read())
+ return h.hexdigest()[:16]
+
+
+def zz_version():
+ try:
+ r = subprocess.run(
+ [ZZ, "--version"], capture_output=True, text=True, timeout=30
+ )
+ return (r.stdout.strip() or r.stderr.strip())[:40]
+ except Exception:
+ return "unknown"
+
+
+def main():
+ ap = argparse.ArgumentParser()
+ ap.add_argument("--out", default=DEFAULT_OUT)
+ ap.add_argument("--skip-build", action="store_true")
+ ap.add_argument("--zz", default=DEFAULT_ZZ)
+ ap.add_argument("--title", default="Append-elision baseline (pre-optimization)")
+ args = ap.parse_args()
+ global ZZ
+ ZZ = args.zz
+
+ drivers = [m[0] for m in MICRO] + ["parse_proxy"]
+ bins = {} if args.skip_build else build_native(drivers)
+ if args.skip_build:
+ for name in drivers:
+ cand = os.path.join(BIN, name)
+ if os.path.isfile(cand):
+ bins[name] = cand
+
+ rows = [] # (case, engine, status, wall_ms, rss_kib)
+
+ def measure(case, engine, argv):
+ print(f"[{engine}] {case} ...", flush=True)
+ status, wall_ms, rss = run_measured(argv)
+ print(f" {status} {wall_ms}ms rss={rss}KiB", flush=True)
+ rows.append((case, engine, status, wall_ms, rss))
+
+ for name, bench_args in MICRO:
+ src = os.path.join(HERE, name + ".zz")
+ measure(f"{name} N={bench_args[0]}", "vm", [ZZ, "run", src] + bench_args)
+ if name in bins:
+ measure(f"{name} N={bench_args[0]}", "native", [bins[name]] + bench_args)
+
+ for stem in CORPUS_FILES:
+ path = os.path.join(CORPUS, stem + ".toml")
+ if stem not in VM_SKIP:
+ measure(
+ f"proxy/{stem}",
+ "vm",
+ [ZZ, "run", os.path.join(HERE, "parse_proxy.zz"), path],
+ )
+ else:
+ rows.append((f"proxy/{stem}", "vm", "skipped-infeasible", 0, 0))
+ print(f"[vm] proxy/{stem} ... skipped-infeasible", flush=True)
+ if "parse_proxy" in bins:
+ measure(f"proxy/{stem}", "native", [bins["parse_proxy"], path])
+
+ commit = subprocess.run(
+ ["git", "rev-parse", "--short", "HEAD"],
+ capture_output=True,
+ text=True,
+ cwd=ROOT,
+ ).stdout.strip()
+ machine = subprocess.run(
+ ["uname", "-m"], capture_output=True, text=True
+ ).stdout.strip()
+ date = datetime.datetime.now(datetime.timezone.utc).strftime("%Y-%m-%dT%H:%M:%SZ")
+
+ def cell(status, wall_ms, rss):
+ if status != "ok":
+ return (status, status)
+ return (f"{wall_ms}", f"{rss}")
+
+ lines = []
+ lines.append(f"# {args.title}")
+ lines.append("")
+ lines.append(f"Date: {date} · Machine: `{machine}` · zz: `{zz_version()}`")
+ lines.append(f"Commit: `{commit}` · Corpus manifest sha: `{corpus_sha()}`")
+ lines.append(f"ZZ binary: `{os.path.relpath(ZZ, ROOT)}` · Timeout: {TIMEOUT_S}s")
+ lines.append("")
+ lines.append("Method: each case runs once per engine; wall time via")
+ lines.append("monotonic clock, peak RSS via per-child `wait4` `ru_maxrss`")
+ lines.append("(same kernel counter as GNU `time -v`; GNU time is not")
+ lines.append("installed on this machine). VM cases over 32 KB are skipped")
+ lines.append("above 32 KB (superlinear — infeasible); native 1 MB may hit")
+ lines.append("the timeout, which is itself the baseline signal.")
+ lines.append("")
+ lines.append("## Microbenchmarks (wall ms / peak RSS KiB)")
+ lines.append("")
+ lines.append("| case | VM | VM RSS | native | native RSS |")
+ lines.append("|------|----|--------|--------|------------|")
+ seen = []
+ for name, bench_args in MICRO:
+ case = f"{name} N={bench_args[0]}"
+ vm = next(r for r in rows if r[0] == case and r[1] == "vm")
+ nat = next(r for r in rows if r[0] == case and r[1] == "native")
+ vm_t, vm_r = cell(vm[2], vm[3], vm[4])
+ n_t, n_r = cell(nat[2], nat[3], nat[4])
+ lines.append(f"| `{case}` | {vm_t} | {vm_r} | {n_t} | {n_r} |")
+ seen.append(case)
+ lines.append("")
+ lines.append("## Corpus proxy (wall ms / peak RSS KiB)")
+ lines.append("")
+ lines.append("| case | VM | VM RSS | native | native RSS |")
+ lines.append("|------|----|--------|--------|------------|")
+ for stem in CORPUS_FILES:
+ case = f"proxy/{stem}"
+ vm = next(r for r in rows if r[0] == case and r[1] == "vm")
+ nat = next(r for r in rows if r[0] == case and r[1] == "native")
+ vm_t, vm_r = cell(vm[2], vm[3], vm[4])
+ n_t, n_r = cell(nat[2], nat[3], nat[4])
+ lines.append(f"| `{case}` | {vm_t} | {vm_r} | {n_t} | {n_r} |")
+ lines.append("")
+
+ os.makedirs(os.path.dirname(args.out), exist_ok=True)
+ with open(args.out, "w") as f:
+ f.write("\n".join(lines))
+ print(f"wrote {args.out}", flush=True)
+
+
+if __name__ == "__main__":
+ sys.exit(main())
diff --git a/bench/move_append/thread_doc.zz b/bench/move_append/thread_doc.zz
new file mode 100644
index 00000000..053ba821
--- /dev/null
+++ b/bench/move_append/thread_doc.zz
@@ -0,0 +1,43 @@
+// thread_doc.zz — `doc = f(doc, x)` threading an 11-array struct
+// through a call (the toml arena shape: 5 array pushes per key).
+import std.env
+
+struct Doc11 {
+ a1: [int],
+ a2: [int],
+ a3: [int],
+ a4: [int],
+ a5: [int],
+ a6: [int],
+ a7: [int],
+ a8: [int],
+ a9: [int],
+ a10: [int],
+ a11: [int],
+}
+
+func push_node(doc: Doc11, x: int) -> Doc11 {
+ doc.a1 = vec.push(doc.a1, x)
+ doc.a2 = vec.push(doc.a2, x)
+ doc.a3 = vec.push(doc.a3, x)
+ doc.a4 = vec.push(doc.a4, x)
+ doc.a5 = vec.push(doc.a5, x)
+ doc
+}
+
+func first_arg(args: [str], fallback: str) -> str {
+ for a in args {
+ if a != "--" {
+ return a
+ }
+ }
+ fallback
+}
+
+n := int(first_arg(env.args(), "2000")) ?? 2000
+doc := Doc11{a1: [], a2: [], a3: [], a4: [], a5: [], a6: [], a7: [], a8: [], a9: [], a10: [], a11: []}
+for i in 0..n {
+ doc = push_node(doc, i)
+}
+println(len(doc.a1))
+println("THREAD_DOC_DONE")
diff --git a/crates/zz_arena/Cargo.toml b/crates/zz_arena/Cargo.toml
new file mode 100644
index 00000000..ebbf66c2
--- /dev/null
+++ b/crates/zz_arena/Cargo.toml
@@ -0,0 +1,7 @@
+[package]
+name = "zz_arena"
+version.workspace = true
+edition.workspace = true
+license.workspace = true
+
+[dependencies]
diff --git a/crates/zz_arena/src/collections.rs b/crates/zz_arena/src/collections.rs
new file mode 100644
index 00000000..34e479aa
--- /dev/null
+++ b/crates/zz_arena/src/collections.rs
@@ -0,0 +1,76 @@
+//! Arena-backed helpers: stage-then-freeze collections without realloc churn.
+//!
+//! Pattern: push into [`ArenaVec`] (inline-staged), then [`ArenaVec::into_slice`]
+//! copies once into the arena. Long-lived data costs exactly one copy and
+//! zero reallocs after freeze — the common AST-build shape.
+
+use crate::Bump;
+
+/// Staging vector that freezes into arena memory once.
+#[derive(Debug, Default)]
+pub struct ArenaVec {
+ items: Vec,
+}
+
+impl ArenaVec {
+ /// Empty staging vec.
+ pub fn new() -> Self {
+ ArenaVec { items: Vec::new() }
+ }
+
+ /// Pre-size staging (avoids even staging reallocs when known).
+ pub fn with_capacity(cap: usize) -> Self {
+ ArenaVec {
+ items: Vec::with_capacity(cap),
+ }
+ }
+
+ /// Push one item.
+ pub fn push(&mut self, item: T) {
+ self.items.push(item);
+ }
+
+ /// Staged length.
+ pub fn len(&self) -> usize {
+ self.items.len()
+ }
+
+ /// Whether nothing is staged.
+ pub fn is_empty(&self) -> bool {
+ self.items.is_empty()
+ }
+
+ /// Freeze `Copy` items into the arena with a single copy.
+ pub fn into_slice_copy(self, bump: &mut Bump) -> &mut [T]
+ where
+ T: Copy,
+ {
+ bump.alloc_slice_copy(&self.items)
+ }
+}
+
+#[cfg(test)]
+mod tests {
+ use super::*;
+
+ #[test]
+ fn stage_and_freeze() {
+ let mut bump = Bump::new();
+ let mut v = ArenaVec::new();
+ for i in 0..100u64 {
+ v.push(i);
+ }
+ let s = v.into_slice_copy(&mut bump);
+ assert_eq!(s.len(), 100);
+ assert_eq!(s[99], 99);
+ }
+
+ #[test]
+ fn empty_freeze() {
+ let mut bump = Bump::new();
+ let v: ArenaVec = ArenaVec::new();
+ assert!(v.is_empty());
+ let s = v.into_slice_copy(&mut bump);
+ assert!(s.is_empty());
+ }
+}
diff --git a/crates/zz_arena/src/intern.rs b/crates/zz_arena/src/intern.rs
new file mode 100644
index 00000000..870a0086
--- /dev/null
+++ b/crates/zz_arena/src/intern.rs
@@ -0,0 +1,127 @@
+//! Deterministic string interner: each distinct string gets one `Symbol`.
+//!
+//! Single-map design (no sharding) so ids are stable for a given intern
+//! order — required for deterministic build-cache keys. Single-threaded
+//! compile interns in source order; identical sources always agree.
+//!
+//! Memory is bounded by distinct identifiers, not by occurrences: a 10k-line
+//! file mentioning `self` 5k times stores it once.
+
+use std::collections::HashMap;
+
+/// Compact identifier handle. `u32` keeps AST nodes small; 4B identifiers
+/// support every real-world codebase (4B distinct strings).
+#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
+pub struct Symbol(pub u32);
+
+impl Symbol {
+ /// Raw id (for serialization / FFI).
+ pub fn id(self) -> u32 {
+ self.0
+ }
+}
+
+/// Owned-string interner with deterministic ids.
+#[derive(Debug, Default)]
+pub struct Interner {
+ map: HashMap,
+ strings: Vec>,
+}
+
+impl Interner {
+ /// Empty interner.
+ pub fn new() -> Self {
+ Interner::default()
+ }
+
+ /// Pre-size for an expected distinct-string count (e.g. ident estimate).
+ pub fn with_capacity(distinct: usize) -> Self {
+ Interner {
+ map: HashMap::with_capacity(distinct),
+ strings: Vec::with_capacity(distinct),
+ }
+ }
+
+ /// Intern `s`, returning its stable id. Re-interning returns the same id.
+ pub fn intern(&mut self, s: &str) -> Symbol {
+ if let Some(&id) = self.map.get(s) {
+ return Symbol(id);
+ }
+ let id = self.strings.len() as u32;
+ // `u32` range is unreachable in practice; fail loudly, not silently.
+ assert!(
+ (id as usize) < u32::MAX as usize,
+ "interner exhausted: too many distinct strings"
+ );
+ let owned: Box = s.into();
+ // SAFETY of the borrow: we clone the key for the map, so the map
+ // never borrows from `strings` (no self-reference).
+ self.map.insert(owned.to_string(), id);
+ self.strings.push(owned);
+ Symbol(id)
+ }
+
+ /// Resolve an id back to its string. Panics on unknown id (caller bug).
+ pub fn resolve(&self, sym: Symbol) -> &str {
+ self.strings
+ .get(sym.0 as usize)
+ .map(|s| &**s)
+ .expect("unknown Symbol id")
+ }
+
+ /// Distinct string count.
+ pub fn len(&self) -> usize {
+ self.strings.len()
+ }
+
+ /// Whether nothing is interned.
+ pub fn is_empty(&self) -> bool {
+ self.strings.is_empty()
+ }
+
+ /// Drop everything (e.g. per-file interner in long-lived daemons).
+ pub fn clear(&mut self) {
+ self.map.clear();
+ self.strings.clear();
+ }
+}
+
+#[cfg(test)]
+mod tests {
+ use super::*;
+
+ #[test]
+ fn dedups_and_stable() {
+ let mut it = Interner::new();
+ let a = it.intern("self");
+ let b = it.intern("self");
+ let c = it.intern("other");
+ assert_eq!(a, b);
+ assert_ne!(a, c);
+ assert_eq!(it.resolve(a), "self");
+ assert_eq!(it.resolve(c), "other");
+ assert_eq!(it.len(), 2);
+ }
+
+ #[test]
+ fn deterministic_order() {
+ let mut i1 = Interner::new();
+ let mut i2 = Interner::new();
+ for s in ["a", "b", "c", "a", "b"] {
+ i1.intern(s);
+ i2.intern(s);
+ }
+ assert_eq!(i1.intern("b"), i2.intern("b"));
+ assert_eq!(i1.len(), 3);
+ }
+
+ #[test]
+ fn clear_resets() {
+ let mut it = Interner::new();
+ it.intern("x");
+ it.clear();
+ assert!(it.is_empty());
+ // Ids restart deterministically after clear.
+ assert_eq!(it.intern("x"), Symbol(0));
+ }
+}
diff --git a/crates/zz_arena/src/lib.rs b/crates/zz_arena/src/lib.rs
new file mode 100644
index 00000000..3a28fc42
--- /dev/null
+++ b/crates/zz_arena/src/lib.rs
@@ -0,0 +1,625 @@
+//! `zz_arena` — fast, light, automatic bump arena for compiler-side allocs.
+//!
+//! One idea: compilation phases never free individual nodes. A bump arena
+//! turns thousands of per-node `malloc`s into a few block allocations and
+//! frees everything with a single O(1) [`Bump::reset`].
+//!
+//! - **Fast:** allocation is a bumped pointer plus a bounds check, no atomics.
+//! - **Light:** no per-object header; blocks are recycled across files.
+//! - **Auto:** growth, large-object spill, and interning are automatic.
+//! [`Bump::scoped`] rewinds speculative work on failure. Lifetimes prove
+//! no use-after-reset.
+//!
+//! # Safety
+//!
+//! All `unsafe` in this crate lives in [`Bump::alloc_raw`]. Blocks are
+//! heap-stable (`Box<[u8]>` never moves its bytes), offsets are always
+//! aligned up, and every returned reference is tied to the arena lifetime.
+//! Types with `Drop` are intentionally leaked (never run) — only place
+//! trivial/`Copy` data or arena-owned strings here.
+
+mod collections;
+mod intern;
+mod stats;
+
+pub use collections::ArenaVec;
+pub use intern::{Interner, Symbol};
+pub use stats::Stats;
+
+use std::marker::PhantomData;
+use std::ptr;
+use std::rc::Rc;
+use std::sync::Arc;
+
+/// Default first block: big enough for a small file, cheap to keep.
+pub const DEFAULT_BLOCK: usize = 64 * 1024;
+/// Upper bound for a single block; larger requests spill to their own backing.
+pub const MAX_BLOCK: usize = 4 * 1024 * 1024;
+/// Requests larger than a quarter of the block limit spill instead of growing.
+pub const SPILL_FRACTION: usize = 4;
+/// Hard ceiling for one arena (all blocks + spills). DoS guard.
+pub const MAX_ARENA_BYTES: usize = 256 * 1024 * 1024;
+/// How many blocks [`Bump::reset`] retains for reuse.
+pub const RETAIN_BLOCKS: usize = 2;
+
+fn align_up(addr: usize, align: usize) -> usize {
+ debug_assert!(align.is_power_of_two());
+ (addr + align - 1) & !(align - 1)
+}
+
+/// Arena-wide limits. All caps produce [`ArenaError`], never abort.
+#[derive(Debug, Clone)]
+pub struct Config {
+ /// First block size in bytes.
+ pub initial_block: usize,
+ /// Largest single block; bigger needs spill to their own backing.
+ pub max_block: usize,
+ /// Total bytes ceiling (blocks + spills).
+ pub max_bytes: u64,
+ /// Block count ceiling.
+ pub max_blocks: usize,
+ /// Blocks retained by [`Bump::reset`] for reuse.
+ pub retain_blocks: usize,
+}
+
+impl Default for Config {
+ fn default() -> Self {
+ Config {
+ initial_block: DEFAULT_BLOCK,
+ max_block: MAX_BLOCK,
+ max_bytes: MAX_ARENA_BYTES as u64,
+ max_blocks: 1024,
+ retain_blocks: RETAIN_BLOCKS,
+ }
+ }
+}
+
+/// Failure to allocate: caps hit. The compiler maps this to a clean
+/// diagnostic (span attached by the caller), never a panic in release.
+#[derive(Debug, Clone, PartialEq, Eq)]
+pub struct ArenaError {
+ /// Bytes requested (size + worst-case padding).
+ pub requested: usize,
+ /// Which ceiling stopped the alloc.
+ pub limit: &'static str,
+}
+
+impl std::fmt::Display for ArenaError {
+ fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
+ write!(
+ f,
+ "arena exhausted (requested {} bytes, limit: {})",
+ self.requested, self.limit
+ )
+ }
+}
+
+impl std::error::Error for ArenaError {}
+
+/// One heap-stable chunk. `mem` never reallocates after creation, so raw
+/// pointers into it stay valid until the block is dropped or reused by reset
+/// (reset requires `&mut`, which exclusive-borrows all outstanding refs'
+/// owner — lifetimes keep this sound).
+#[derive(Debug)]
+struct Block {
+ mem: Box<[u8]>,
+ used: usize,
+}
+
+impl Block {
+ fn with_capacity(cap: usize) -> Self {
+ Block {
+ mem: vec![0u8; cap].into_boxed_slice(),
+ used: 0,
+ }
+ }
+
+ fn capacity(&self) -> usize {
+ self.mem.len()
+ }
+
+ fn base(&self) -> usize {
+ self.mem.as_ptr() as usize
+ }
+}
+
+/// Position to rewind to. Copy; cheap.
+#[derive(Debug, Clone, Copy)]
+pub struct Checkpoint {
+ block: usize,
+ used: usize,
+ spills: usize,
+ bytes_used: u64,
+}
+
+/// Fast, light, automatic bump arena. Thread-local (`!Send + !Sync` via
+/// `Rc` marker) — share across threads through [`FrozenBump`] instead.
+#[derive(Debug)]
+pub struct Bump {
+ blocks: Vec,
+ /// Oversized allocations, each its own backing. Counted against caps.
+ spills: Vec>,
+ config: Config,
+ stats: Stats,
+ /// Makes `Bump` `!Send + !Sync` at compile time: arena refs must never
+ /// cross threads (spawner discipline needs frozen sharing instead).
+ _no_send: PhantomData>,
+}
+
+impl Default for Bump {
+ fn default() -> Self {
+ Self::new()
+ }
+}
+
+impl Bump {
+ /// Empty arena with default limits. First block materializes on demand.
+ pub fn new() -> Self {
+ Bump {
+ blocks: Vec::new(),
+ spills: Vec::new(),
+ config: Config::default(),
+ stats: Stats::default(),
+ _no_send: PhantomData,
+ }
+ }
+
+ /// Arena with custom limits (caps, retention).
+ pub fn with_config(config: Config) -> Self {
+ Bump {
+ blocks: Vec::new(),
+ spills: Vec::new(),
+ config,
+ stats: Stats::default(),
+ _no_send: PhantomData,
+ }
+ }
+
+ /// Pre-size the first block from an expected byte count (e.g. source
+ /// file length × small factor). Small files get one block, no waste;
+ /// huge files skip the doubling dance.
+ pub fn with_hint(expected_bytes: usize) -> Self {
+ let mut config = Config::default();
+ let want = expected_bytes
+ .checked_next_power_of_two()
+ .unwrap_or(DEFAULT_BLOCK);
+ config.initial_block = want.clamp(4096, config.max_block);
+ Self::with_config(config)
+ }
+
+ /// Current limits.
+ pub fn config(&self) -> &Config {
+ &self.config
+ }
+
+ /// Copy of live counters (used bytes, blocks, spills, resets, waste).
+ pub fn stats(&self) -> Stats {
+ let mut s = self.stats.clone();
+ s.blocks_alive = self.blocks.len() as u64;
+ s.spills_alive = self.spills.len() as u64;
+ s.capacity_bytes = self.blocks.iter().map(|b| b.capacity() as u64).sum::()
+ + self.spills.iter().map(|s| s.len() as u64).sum::();
+ s
+ }
+
+ /// Total bytes accounted (block capacities + spill lengths).
+ fn accounted(&self) -> u64 {
+ self.blocks.iter().map(|b| b.capacity() as u64).sum::()
+ + self.spills.iter().map(|s| s.len() as u64).sum::()
+ }
+
+ /// Allocate `val` in the arena. Panics with a clear message only when a
+ /// cap is hit (malicious/huge input) — prefer [`Bump::try_alloc`] on
+ /// untrusted paths and map [`ArenaError`] to a diagnostic.
+ pub fn alloc(&mut self, val: T) -> &mut T {
+ match self.try_alloc(val) {
+ Ok(r) => r,
+ Err(e) => panic!("{e}"),
+ }
+ }
+
+ /// Fallible allocate. `Ok` on every sane input; `Err` only on cap breach.
+ pub fn try_alloc(&mut self, val: T) -> Result<&mut T, ArenaError> {
+ if std::mem::size_of::() == 0 {
+ self.stats.bytes_used += 0;
+ return Ok(unsafe { &mut *ptr::NonNull::::dangling().as_ptr() });
+ }
+ // SAFETY: `alloc_raw` returns `size` readable/writable bytes at the
+ // requested alignment, valid for the arena lifetime. We immediately
+ // initialize with exactly one `T` and hand out `&mut T` tied to
+ // `&mut self`, so aliasing and layout are sound. `T: Drop` is
+ // intentionally never dropped (documented leak — arena owns it).
+ let ptr = self.try_alloc_raw(std::mem::size_of::(), std::mem::align_of::().max(1))?
+ as *mut T;
+ unsafe {
+ ptr::write(ptr, val);
+ Ok(&mut *ptr)
+ }
+ }
+
+ /// Copy a slice into the arena. The returned slice lives with the arena.
+ pub fn alloc_slice_copy(&mut self, items: &[T]) -> &mut [T] {
+ match self.try_alloc_slice_copy(items) {
+ Ok(s) => s,
+ Err(e) => panic!("{e}"),
+ }
+ }
+
+ /// Fallible slice copy.
+ pub fn try_alloc_slice_copy(&mut self, items: &[T]) -> Result<&mut [T], ArenaError> {
+ if items.is_empty() {
+ return Ok(&mut []);
+ }
+ let size = std::mem::size_of_val(items);
+ let align = std::mem::align_of::().max(1);
+ let ptr = self.try_alloc_raw(size, align)? as *mut T;
+ // SAFETY: same guarantees as `try_alloc`, extended over `len`
+ // contiguous `T`s; source and dest never overlap (dest is fresh).
+ unsafe {
+ ptr::copy_nonoverlapping(items.as_ptr(), ptr, items.len());
+ Ok(std::slice::from_raw_parts_mut(ptr, items.len()))
+ }
+ }
+
+ /// Copy a string into the arena.
+ pub fn alloc_str(&mut self, s: &str) -> &mut str {
+ match self.try_alloc_str(s) {
+ Ok(r) => r,
+ Err(e) => panic!("{e}"),
+ }
+ }
+
+ /// Fallible string copy.
+ pub fn try_alloc_str(&mut self, s: &str) -> Result<&mut str, ArenaError> {
+ if s.is_empty() {
+ return Ok(Default::default());
+ }
+ let bytes = self.try_alloc_slice_copy(s.as_bytes())?;
+ // SAFETY: bytes are copied from a valid `str`, so UTF-8 holds.
+ Ok(unsafe { std::str::from_utf8_unchecked_mut(bytes) })
+ }
+
+ fn try_alloc_raw(&mut self, size: usize, align: usize) -> Result<*mut u8, ArenaError> {
+ debug_assert!(align.is_power_of_two());
+ let align = align.max(1);
+ // Fast path: current block.
+ if let Some(block) = self.blocks.last_mut() {
+ let aligned = align_up(block.base() + block.used, align);
+ let end = aligned + size;
+ if end <= block.base() + block.capacity() {
+ let ptr = aligned as *mut u8;
+ block.used = end - block.base();
+ self.stats.bytes_used += size as u64;
+ return Ok(ptr);
+ }
+ }
+ self.slow_alloc_raw(size, align)
+ }
+
+ /// Grow or spill. Marked cold so the fast path stays inline.
+ #[cold]
+ fn slow_alloc_raw(&mut self, size: usize, align: usize) -> Result<*mut u8, ArenaError> {
+ let spill_at = self.config.max_block / SPILL_FRACTION;
+ if size >= spill_at {
+ return self.spill_raw(size, align);
+ }
+ // Grow: double the last block (or start initial), capped.
+ let prev = self.blocks.last().map(|b| b.capacity()).unwrap_or(0);
+ let mut next = (prev.max(self.config.initial_block) * 2)
+ .max(size + align)
+ .min(self.config.max_block);
+ if self.blocks.is_empty() {
+ next = self
+ .config
+ .initial_block
+ .max(size + align)
+ .min(self.config.max_block);
+ if size + align > self.config.max_block {
+ return self.spill_raw(size, align);
+ }
+ }
+ if self.blocks.len() + 1 > self.config.max_blocks {
+ return Err(ArenaError {
+ requested: size,
+ limit: "max_blocks",
+ });
+ }
+ if self.accounted() + next as u64 > self.config.max_bytes {
+ return Err(ArenaError {
+ requested: size,
+ limit: "max_bytes",
+ });
+ }
+ self.blocks.push(Block::with_capacity(next));
+ self.stats.grows += 1;
+ let block = self.blocks.last_mut().expect("just pushed");
+ let aligned = align_up(block.base(), align);
+ let ptr = aligned as *mut u8;
+ block.used = aligned + size - block.base();
+ self.stats.bytes_used += size as u64;
+ Ok(ptr)
+ }
+
+ /// Oversized backing: exact-fit box, tracked for caps + reset.
+ #[cold]
+ fn spill_raw(&mut self, size: usize, align: usize) -> Result<*mut u8, ArenaError> {
+ if size as u64 > self.config.max_bytes {
+ return Err(ArenaError {
+ requested: size,
+ limit: "max_single",
+ });
+ }
+ if self.accounted() + size as u64 + align as u64 > self.config.max_bytes {
+ return Err(ArenaError {
+ requested: size,
+ limit: "max_bytes",
+ });
+ }
+ // Over-allocate by `align` so any alignment is reachable inside.
+ let backing = vec![0u8; size + align].into_boxed_slice();
+ let base = backing.as_ptr() as usize;
+ let aligned = align_up(base, align.max(1));
+ let offset = aligned - base;
+ let ptr = aligned as *mut u8;
+ // Shrink bookkeeping to the reachable window is unnecessary; keep
+ // the whole backing alive and count it.
+ self.stats.bytes_used += size as u64;
+ self.stats.spills += 1;
+ let _ = offset;
+ // `backing` is heap-stable; the interior pointer stays valid while
+ // the box is owned by `spills`. The caller initializes before reads
+ // (enforced by typed wrappers).
+ self.spills.push(backing);
+ Ok(ptr)
+ }
+
+ /// Mark current position. [`Bump::rewind`] returns here.
+ pub fn checkpoint(&self) -> Checkpoint {
+ Checkpoint {
+ block: self.blocks.len(),
+ used: self.blocks.last().map(|b| b.used).unwrap_or(0),
+ spills: self.spills.len(),
+ bytes_used: self.stats.bytes_used,
+ }
+ }
+
+ /// Rewind to a checkpoint. Frees nothing to the OS — blocks stay pooled.
+ /// Truncated bytes are poisoned in debug builds to catch stale use.
+ pub fn rewind(&mut self, cp: Checkpoint) {
+ // Drop whole blocks allocated after the checkpoint.
+ while self.blocks.len() > cp.block {
+ self.blocks.pop();
+ }
+ if let Some(block) = self.blocks.last_mut() {
+ #[cfg(debug_assertions)]
+ {
+ for b in &mut block.mem[cp.used..block.used] {
+ *b = 0xDD;
+ }
+ }
+ block.used = cp.used;
+ }
+ self.spills.truncate(cp.spills);
+ self.stats.bytes_used = cp.bytes_used;
+ }
+
+ /// Run `f` speculatively: on `Err`, rewind all its allocations and
+ /// return the error; on `Ok`, keep them. This is the RAII rewind —
+ /// a closure (not a guard object) so the borrow checker stays happy:
+ /// no `&mut` is held while `f` runs except the one `f` itself owns.
+ pub fn scoped(&mut self, f: impl FnOnce(&mut Self) -> Result) -> Result {
+ let cp = self.checkpoint();
+ let r = f(self);
+ if r.is_err() {
+ self.rewind(cp);
+ }
+ r
+ }
+
+ /// O(1)-ish reset: retains hot blocks for the next file/unit, drops the
+ /// rest plus spills. No syscall when the next unit fits retained blocks.
+ pub fn reset(&mut self) {
+ let retain = self.config.retain_blocks.min(self.blocks.len());
+ // Keep the *largest* (most recent — sizes double upward).
+ let mut kept = self.blocks.split_off(self.blocks.len() - retain);
+ for b in kept.iter_mut() {
+ b.used = 0;
+ }
+ self.blocks.clear();
+ self.blocks.append(&mut kept);
+ self.spills.clear();
+ self.stats.bytes_used = 0;
+ self.stats.resets += 1;
+ // Refresh stats liveness on next `stats()` call.
+ }
+
+ /// Drop all but one fresh block. Call on daemon/LSP idle to bound RSS.
+ pub fn shrink(&mut self) {
+ self.blocks.clear();
+ self.spills.clear();
+ self.spills.shrink_to_fit();
+ self.stats.bytes_used = 0;
+ }
+
+ /// Immutable, shareable snapshot (copies used bytes once). `Send + Sync`
+ /// — the cross-thread handoff. Pointer stability across freeze is NOT
+ /// provided in P1; readers use byte offsets (see `as_bytes`).
+ pub fn freeze(&self) -> FrozenBump {
+ let mut chunks = Vec::with_capacity(self.blocks.len());
+ for b in &self.blocks {
+ chunks.push(Arc::<[u8]>::from(&b.mem[..b.used]));
+ }
+ FrozenBump {
+ chunks,
+ bytes_used: self.stats.bytes_used,
+ }
+ }
+
+ /// Dump counters when `ZZ_ARENA_STATS=1` (per-phase log line support).
+ pub fn maybe_dump_stats(&self, phase: &str) {
+ if std::env::var("ZZ_ARENA_STATS").is_ok() {
+ let s = self.stats();
+ eprintln!(
+ "[arena:{phase}] used={} cap={} blocks={} spills={} grows={} resets={}",
+ s.bytes_used, s.capacity_bytes, s.blocks_alive, s.spills_alive, s.grows, s.resets,
+ );
+ }
+ }
+}
+
+/// Immutable arena snapshot. Cheap to clone (`Arc`s), safe to share.
+#[derive(Debug, Clone)]
+pub struct FrozenBump {
+ chunks: Vec>,
+ bytes_used: u64,
+}
+
+impl FrozenBump {
+ /// Total frozen bytes.
+ pub fn len(&self) -> u64 {
+ self.bytes_used
+ }
+
+ /// Whether the snapshot holds nothing.
+ pub fn is_empty(&self) -> bool {
+ self.bytes_used == 0
+ }
+
+ /// Chunk count.
+ pub fn chunks(&self) -> usize {
+ self.chunks.len()
+ }
+}
+
+// SAFETY: `FrozenBump` only exposes immutable bytes through `Arc` —
+// `Send + Sync` holds by construction. `Bump` itself stays `!Send`
+// (see `_no_send`) so live `&mut` refs can never cross threads.
+
+// Checkpoint token: see `Bump::checkpoint`, `Bump::rewind`,
+// and `Bump::scoped` for automatic rewind on failure.
+#[cfg(test)]
+mod tests {
+ use super::*;
+
+ #[test]
+ fn alloc_scalars_and_slices() {
+ let mut a = Bump::new();
+ let x = a.alloc(42u64);
+ assert_eq!(*x, 42);
+ let s = a.alloc_slice_copy(&[1, 2, 3, 4]);
+ assert_eq!(s, &[1, 2, 3, 4]);
+ let st = a.alloc_str("hello");
+ assert_eq!(st, "hello");
+ assert!(a.stats().bytes_used > 0);
+ }
+
+ #[test]
+ fn zero_sized_and_empty() {
+ let mut a = Bump::new();
+ let _u = a.alloc(());
+ let e: &mut [u8] = a.alloc_slice_copy(&[]);
+ assert!(e.is_empty());
+ let s = a.alloc_str("");
+ assert!(s.is_empty());
+ }
+
+ #[test]
+ fn alignment_holds() {
+ let mut a = Bump::new();
+ a.alloc(1u8);
+ let wide = a.alloc(0u128);
+ assert_eq!((wide as *mut u128 as usize) % 16, 0);
+ let _ = wide;
+ }
+
+ #[test]
+ fn checkpoint_rewind_nested() {
+ let mut a = Bump::new();
+ let _keep = a.alloc(1u64);
+ let used_before = a.stats().bytes_used;
+ let outer = a.checkpoint();
+ let _tmp1 = a.alloc(2u64);
+ let inner = a.checkpoint();
+ let _tmp2 = a.alloc(3u64);
+ a.rewind(inner);
+ assert_eq!(a.stats().bytes_used, used_before + 8);
+ a.rewind(outer);
+ assert_eq!(a.stats().bytes_used, used_before);
+ }
+
+ #[test]
+ fn scoped_rewinds_on_err_and_keeps_on_ok() {
+ let mut a = Bump::new();
+ let base = a.stats().bytes_used;
+ let r: Result<(), ()> = a.scoped(|b| {
+ let _t = b.alloc(99u64);
+ Err(())
+ });
+ assert!(r.is_err());
+ assert_eq!(a.stats().bytes_used, base);
+ let r: Result<(), ()> = a.scoped(|b| {
+ let _t = b.alloc(100u64);
+ Ok(())
+ });
+ assert!(r.is_ok());
+ assert!(a.stats().bytes_used > base);
+ }
+
+ #[test]
+ fn reset_retains_and_reuses() {
+ let mut a = Bump::new();
+ for i in 0..1000u64 {
+ a.alloc(i);
+ }
+ let blocks_before = a.stats().blocks_alive;
+ assert!(blocks_before >= 1);
+ a.reset();
+ assert_eq!(a.stats().bytes_used, 0);
+ // Retained blocks reused: no growth for a small refill.
+ let grows_before = a.stats().grows;
+ for i in 0..10u64 {
+ a.alloc(i);
+ }
+ assert_eq!(a.stats().grows, grows_before);
+ }
+
+ #[test]
+ fn large_value_spills() {
+ let mut a = Bump::new();
+ let big = vec![7u8; MAX_BLOCK];
+ let s = a.alloc_slice_copy(&big);
+ assert_eq!(s.len(), big.len());
+ assert!(a.stats().spills_alive >= 1);
+ }
+
+ #[test]
+ fn caps_error_cleanly() {
+ let mut a = Bump::with_config(Config {
+ max_bytes: 1024,
+ initial_block: 4096,
+ ..Config::default()
+ });
+ let err = a.try_alloc([0u8; 2048]).unwrap_err();
+ assert_eq!(err.limit, "max_bytes");
+ }
+
+ #[test]
+ fn freeze_is_shareable() {
+ fn assert_send_sync() {}
+ assert_send_sync::();
+ let mut a = Bump::new();
+ a.alloc(1u64);
+ let f = a.freeze();
+ assert!(!f.is_empty());
+ let f2 = f.clone();
+ assert_eq!(f.len(), f2.len());
+ }
+
+ #[test]
+ fn with_hint_presizes() {
+ let a = Bump::with_hint(200_000);
+ assert!(a.config.initial_block >= 200_000);
+ let a2 = Bump::with_hint(10);
+ assert_eq!(a2.config.initial_block, 4096);
+ }
+}
diff --git a/crates/zz_arena/src/stats.rs b/crates/zz_arena/src/stats.rs
new file mode 100644
index 00000000..cd231ed5
--- /dev/null
+++ b/crates/zz_arena/src/stats.rs
@@ -0,0 +1,37 @@
+//! Arena counters: allocation volume, block health, waste. Clone cheaply
+//! per phase and log with `ZZ_ARENA_STATS=1`.
+
+/// Snapshot of arena counters. All fields public for telemetry export.
+#[derive(Debug, Default, Clone)]
+pub struct Stats {
+ /// Payload bytes handed out (excludes alignment padding).
+ pub bytes_used: u64,
+ /// Live block capacity (includes padding + unused tails).
+ pub capacity_bytes: u64,
+ /// Live block count (set by `Bump::stats()`).
+ pub blocks_alive: u64,
+ /// Live spill count (set by `Bump::stats()`).
+ pub spills_alive: u64,
+ /// Cumulative oversized allocations.
+ pub spills: u64,
+ /// Cumulative block growths.
+ pub grows: u64,
+ /// Cumulative resets.
+ pub resets: u64,
+}
+
+impl Stats {
+ /// Unused-but-reserved bytes (fragmentation signal).
+ pub fn waste_bytes(&self) -> u64 {
+ self.capacity_bytes.saturating_sub(self.bytes_used)
+ }
+
+ /// Waste as a fraction of capacity (0.0–1.0). Spikes mean blocks are
+ /// badly sized for the workload — tune `initial_block` / hints.
+ pub fn waste_ratio(&self) -> f64 {
+ if self.capacity_bytes == 0 {
+ return 0.0;
+ }
+ self.waste_bytes() as f64 / self.capacity_bytes as f64
+ }
+}
diff --git a/crates/zz_checker/Cargo.toml b/crates/zz_checker/Cargo.toml
index 4d3da0da..0aa45ace 100644
--- a/crates/zz_checker/Cargo.toml
+++ b/crates/zz_checker/Cargo.toml
@@ -5,4 +5,9 @@ edition.workspace = true
license.workspace = true
[dependencies]
-zz_frontend = { path = "../zz_frontend" }
\ No newline at end of file
+zz_frontend = { path = "../zz_frontend" }
+# S1 arena-scale: module check-cache serializes pub signatures.
+serde = { workspace = true }
+
+[dev-dependencies]
+serde_json = { workspace = true }
\ No newline at end of file
diff --git a/crates/zz_checker/src/checker/aliases.rs b/crates/zz_checker/src/checker/aliases.rs
new file mode 100644
index 00000000..8fcb3973
--- /dev/null
+++ b/crates/zz_checker/src/checker/aliases.rs
@@ -0,0 +1,125 @@
+//! Type alias registration and expansion (`type Tokens = [Token]`).
+//!
+//! Aliases erase at check time: every use resolves to the target type,
+//! so the runtime, VM, and native codegen never see alias names.
+//! Collection is two-phase (raw targets recorded in pass 1a, converted
+//! after all structs are known) so targets may reference any struct
+//! regardless of order. Nested aliases expand recursively with cycle
+//! detection (`type A = B`, `type B = A` reports instead of hanging).
+
+use std::collections::HashMap;
+
+use zz_frontend::ast::Ty;
+use zz_frontend::diag::error_at;
+use zz_frontend::span::Span;
+
+use super::inference::subst;
+use super::{AliasSig, Checker};
+use crate::type_::Type;
+
+impl Checker {
+ /// Convert one raw alias target to a resolved [`AliasSig`].
+ /// Idempotent: already-converted names return immediately (also
+ /// breaks re-entrant conversion during cycle reporting).
+ pub(crate) fn convert_alias(&mut self, name: &str) {
+ if self.aliases.contains_key(name) {
+ return;
+ }
+ if self.alias_expanding.iter().any(|n| n == name) {
+ let span = self
+ .alias_asts
+ .get(name)
+ .map(|(_, t)| t.span)
+ .unwrap_or(Span::new(0, 0));
+ self.errors.push(error_at(
+ format!(
+ "cyclic type alias `{}`: {}",
+ name,
+ self.alias_expanding.join(" -> ")
+ ),
+ span,
+ ));
+ // Placeholder so the use site resolves instead of cascading
+ // a second "unknown type" error.
+ self.aliases.entry(name.to_string()).or_insert(AliasSig {
+ generics: Vec::new(),
+ target: Type::Unit,
+ });
+ return;
+ }
+ let Some((generics, target)) = self.alias_asts.get(name).cloned() else {
+ return;
+ };
+ self.alias_expanding.push(name.to_string());
+ let ty = self.ast_to_type_inner(&target, &generics);
+ self.alias_expanding.pop();
+ // A cycle during conversion leaves no entry: record the
+ // (possibly partial) type anyway so uses don't cascade
+ // "unknown type" on top of the cycle error.
+ self.aliases.entry(name.to_string()).or_insert(AliasSig {
+ generics,
+ target: ty,
+ });
+ }
+
+ /// Canonical alias name, mirroring [`Checker::canonical_struct_name`]:
+ /// a selectively-imported bare name resolves to its qualified form.
+ pub(crate) fn canonical_alias_name(&self, name: &str) -> String {
+ if let Some(qualified) = self.import_aliases.get(name) {
+ if self.aliases.contains_key(qualified) {
+ return qualified.clone();
+ }
+ }
+ name.to_string()
+ }
+
+ /// Expand an alias use `Name[args]` to its resolved [`Type`].
+ /// Arity is checked like generic structs; mismatches report and
+ /// resolve with the provided prefix (missing parameters stay
+ /// `Named`, which surfaces as a generic — never a silent hole).
+ pub(crate) fn expand_alias(
+ &mut self,
+ name: &str,
+ args: &[Ty],
+ outer_generics: &[String],
+ span: Span,
+ ) -> Type {
+ // Lazily convert: seeded aliases (cross-module) arrive converted,
+ // same-program aliases convert in pass 1a — but a use inside an
+ // alias target converts on demand through `convert_alias`.
+ self.convert_alias(name);
+ let Some(sig) = self.aliases.get(name).cloned() else {
+ self.errors
+ .push(error_at(format!("unknown type `{name}`"), span));
+ return Type::Unit;
+ };
+ if args.len() != sig.generics.len() {
+ if sig.generics.is_empty() {
+ self.errors.push(error_at(
+ format!(
+ "type alias `{name}` takes no type arguments but {} given",
+ args.len(),
+ ),
+ span,
+ ));
+ } else {
+ self.errors.push(error_at(
+ format!(
+ "type alias `{name}` takes {} type argument{} but {} given",
+ sig.generics.len(),
+ if sig.generics.len() == 1 { "" } else { "s" },
+ args.len(),
+ ),
+ span,
+ ));
+ }
+ }
+ let mut map = HashMap::new();
+ for (i, g) in sig.generics.iter().enumerate() {
+ if let Some(a) = args.get(i) {
+ map.insert(g.clone(), self.ast_to_type_inner(a, outer_generics));
+ }
+ }
+ subst(&sig.target, &map)
+ }
+}
diff --git a/crates/zz_checker/src/checker/diagnostics.rs b/crates/zz_checker/src/checker/diagnostics.rs
index 78876d73..5cd8a263 100644
--- a/crates/zz_checker/src/checker/diagnostics.rs
+++ b/crates/zz_checker/src/checker/diagnostics.rs
@@ -24,6 +24,57 @@ impl Checker {
self.errors.push(error_at(msg, span));
}
+ /// Sherlock: returning an unwrapped `Result` where a plain value is
+ /// expected (or vice versa) is the most common ZZ beginner error.
+ /// Point at the value with the three actionable fixes (#245).
+ /// Returns true when the hint was emitted (caller skips the generic
+ /// return-type-span error to avoid a double report).
+ pub(crate) fn report_result_return_hint(
+ &mut self,
+ value_ty: &Type,
+ ret_ty: &Type,
+ span: Span,
+ ) -> bool {
+ let v = self.unifier.resolve(value_ty);
+ let r = self.unifier.resolve(ret_ty);
+ // Unwrapped Result where a plain value is expected.
+ if let Type::Result(inner, err) = &v {
+ let payload = self.unifier.resolve(inner);
+ if payload == r {
+ let mut diag = error_at(
+ format!(
+ "returning unwrapped `Result<{payload}, {err}>` where `{r}` is expected"
+ ),
+ span,
+ );
+ diag = diag.with_note(format!(
+ "use `?` to propagate (needs `-> Result<{payload}, {err}>`)"
+ ));
+ diag = diag.with_note("or `match` on the value".to_string());
+ diag = diag.with_note(format!(
+ "or change the return type to `Result<{payload}, {err}>`"
+ ));
+ self.errors.push(diag);
+ return true;
+ }
+ }
+ // Plain value where a Result is expected.
+ if let Type::Result(inner, err) = &r {
+ let payload = self.unifier.resolve(inner);
+ if payload == v {
+ let mut diag = error_at(
+ format!("returning plain `{v}` where `Result<{payload}, {err}>` is expected"),
+ span,
+ );
+ diag = diag.with_note("wrap the value: `.ok(value)`".to_string());
+ diag = diag.with_note("or propagate a fallible call with `?`".to_string());
+ self.errors.push(diag);
+ return true;
+ }
+ }
+ false
+ }
+
pub(crate) fn ensure_bool(&mut self, t: Type, span: Span) {
match self.unifier.resolve(&t) {
Type::Bool => {}
diff --git a/crates/zz_checker/src/checker/enums.rs b/crates/zz_checker/src/checker/enums.rs
new file mode 100644
index 00000000..a6302e93
--- /dev/null
+++ b/crates/zz_checker/src/checker/enums.rs
@@ -0,0 +1,194 @@
+//! User enum registration and construction (`enum Token { ... }`).
+//!
+//! Enums erase to qualified `Object` values (`Token.IntLit`): the type
+//! system tracks `Type::Enum`, but no engine allocates anything
+//! enum-specific. Construction (`Token.IntLit(1)`) is a call-shaped
+//! expression intercepted in `check_call`; patterns (`.IntLit(v)`)
+//! resolve against this table in the match checker. Generic enums
+//! (`enum Box[T]`) instantiate like generic structs: fresh variables
+//! per parameter, filled by unifying the payload, arrears defaulted
+//! like `Option`'s.
+
+use std::collections::HashMap;
+
+use zz_frontend::diag::error_at;
+use zz_frontend::levenshtein::suggest_all;
+use zz_frontend::span::Span;
+
+use super::Checker;
+use crate::type_::Type;
+
+impl Checker {
+ /// Canonical enum name, mirroring
+ /// [`Checker::canonical_struct_name`]: a selectively-imported bare
+ /// name resolves to its qualified form.
+ pub(crate) fn canonical_enum_name(&self, name: &str) -> String {
+ if let Some(qualified) = self.import_aliases.get(name) {
+ if self.enums.contains_key(qualified) {
+ return qualified.clone();
+ }
+ }
+ name.to_string()
+ }
+
+ /// Fresh inference variables for an enum's parameters, with the
+ /// substitution map (`T` → `?0`). Mirrors generic struct
+ /// instantiation: the payload unifies against the substituted type,
+ /// so `Box.V(1)` infers `Box[int]`.
+ pub(crate) fn fresh_enum_vars(
+ &mut self,
+ enum_name: &str,
+ ) -> (Vec, HashMap) {
+ let generics = self
+ .enums
+ .get(enum_name)
+ .map(|s| s.generics.clone())
+ .unwrap_or_default();
+ let vars: Vec = generics.iter().map(|_| self.unifier.fresh_var()).collect();
+ let map: HashMap = generics.into_iter().zip(vars.iter().cloned()).collect();
+ (vars, map)
+ }
+
+ /// Substitute an enum's parameters in a payload type using the
+ /// scrutinee's arguments (`Box[int]` + `Named("T")` → `int`).
+ /// Unknown-length args (shouldn't happen post-check) leave `Named`
+ /// intact rather than mis-substituting.
+ pub(crate) fn subst_enum_payload(
+ &self,
+ enum_name: &str,
+ args: &[Type],
+ payload: &Type,
+ ) -> Type {
+ let generics = self
+ .enums
+ .get(enum_name)
+ .map(|s| s.generics.clone())
+ .unwrap_or_default();
+ if generics.len() != args.len() {
+ return payload.clone();
+ }
+ let map: HashMap = generics.into_iter().zip(args.iter().cloned()).collect();
+ super::inference::subst(payload, &map)
+ }
+
+ /// Check an enum construction `Enum.Variant(args)` where `enum_name`
+ /// is the already-canonicalized enum and `variant` the trailing call
+ /// path component. Returns the enum type on success.
+ pub(crate) fn check_enum_construction(
+ &mut self,
+ enum_name: &str,
+ variant: &str,
+ args: &[zz_frontend::ast::Expr],
+ named: &[(String, zz_frontend::ast::Expr)],
+ span: Span,
+ ) -> Option {
+ let sig = self.enums.get(enum_name).cloned()?;
+ let Some((_, payload)) = sig.variants.iter().find(|(v, _)| v == variant) else {
+ let known: Vec<&str> = sig.variants.iter().map(|(v, _)| v.as_str()).collect();
+ self.errors.push(error_at(
+ format!(
+ "unknown variant `{variant}` for enum `{enum_name}` (expected one of: {})",
+ known.join(", "),
+ ),
+ span,
+ ));
+ return Some(Type::Enum(
+ enum_name.to_string(),
+ sig.generics
+ .iter()
+ .map(|_| self.unifier.fresh_var())
+ .collect(),
+ ));
+ };
+ // Generic parameters instantiate to fresh variables, filled in
+ // by unifying the payload below (struct-literal rule).
+ let (gen_vars, gen_map) = self.fresh_enum_vars(enum_name);
+ match payload {
+ Some(pty) => {
+ if !named.is_empty() {
+ self.errors.push(error_at(
+ format!(
+ "variant `{enum_name}.{variant}` takes one positional argument, not named arguments"
+ ),
+ span,
+ ));
+ }
+ if args.len() != 1 {
+ self.errors.push(error_at(
+ format!(
+ "variant `{enum_name}.{variant}` takes 1 argument but {} given",
+ args.len(),
+ ),
+ span,
+ ));
+ // Still check the args so nested errors surface.
+ for arg in args {
+ self.check_expr(arg);
+ }
+ } else {
+ let at = self.check_expr(&args[0]);
+ let exp = super::inference::subst(pty, &gen_map);
+ if let Err(e) = self.unifier.unify(&at, &exp) {
+ self.report_mismatch(e, args[0].span());
+ }
+ }
+ }
+ None => {
+ if !args.is_empty() || !named.is_empty() {
+ self.errors.push(error_at(
+ format!(
+ "variant `{enum_name}.{variant}` takes no arguments but {} given",
+ args.len() + named.len(),
+ ),
+ span,
+ ));
+ }
+ }
+ }
+ // A value construction counts as using the enum's name (marks
+ // imports used when the path is qualified).
+ if enum_name.contains('.') {
+ self.used_names.insert(enum_name.to_string());
+ }
+ Some(Type::Enum(
+ enum_name.to_string(),
+ gen_vars
+ .iter()
+ .map(|v| self.unifier.resolve_deep(v))
+ .collect(),
+ ))
+ }
+
+ /// Resolve a `.Variant` pattern against an enum scrutinee: returns
+ /// the variant's payload type (`None` = unit variant, `Some` = the
+ /// inner pattern must match the payload). Reports unknown variants.
+ /// Generic parameters are already substituted by the caller.
+ pub(crate) fn enum_variant_payload(
+ &mut self,
+ enum_name: &str,
+ variant: &str,
+ span: Span,
+ ) -> Option> {
+ let sig = self.enums.get(enum_name).cloned()?;
+ match sig.variants.iter().find(|(v, _)| v == variant) {
+ Some((_, payload)) => Some(payload.clone()),
+ None => {
+ let known: Vec<&str> = sig.variants.iter().map(|(v, _)| v.as_str()).collect();
+ let mut diag = error_at(
+ format!(
+ "unknown variant `{variant}` for enum `{enum_name}` (expected one of: {})",
+ known.join(", "),
+ ),
+ span,
+ );
+ // Sherlock: suggest the closest known variant (note only, no
+ // fixit — the payload binding shape may differ).
+ if let Some((suggestion, _)) = suggest_all(variant, &known).first() {
+ diag = diag.with_note(format!("did you mean `.{suggestion}`?"));
+ }
+ self.errors.push(diag);
+ None
+ }
+ }
+ }
+}
diff --git a/crates/zz_checker/src/checker/funcs.rs b/crates/zz_checker/src/checker/funcs.rs
index 529d31a9..b55988b8 100644
--- a/crates/zz_checker/src/checker/funcs.rs
+++ b/crates/zz_checker/src/checker/funcs.rs
@@ -181,7 +181,15 @@ impl Checker {
// and missing-return paths (`if c { return 1 }` with no else,
// which falls through with unit).
if let Err(e) = self.unifier.unify(&body_t, &sig.ret) {
- self.report_mismatch(e, body.span);
+ // Sherlock: unwrapped Result at the tail value gets a
+ // value-site error with fixes instead of the generic
+ // return-type-span mismatch (#245).
+ let tail_span = body.stmts.last().map(|s| s.span()).unwrap_or(body.span);
+ let resolved_body = self.unifier.resolve(&body_t);
+ let resolved_ret = self.unifier.resolve(&sig.ret);
+ if !self.report_result_return_hint(&resolved_body, &resolved_ret, tail_span) {
+ self.report_mismatch(e, body.span);
+ }
}
}
diff --git a/crates/zz_checker/src/checker/inference.rs b/crates/zz_checker/src/checker/inference.rs
index b57b1493..ea68c490 100644
--- a/crates/zz_checker/src/checker/inference.rs
+++ b/crates/zz_checker/src/checker/inference.rs
@@ -169,40 +169,154 @@ impl Checker {
));
}
Type::Named(name.clone())
- } else if self.structs.contains_key(name) {
- if !args.is_empty() {
- self.errors.push(error_at(
- format!("struct `{name}` does not take type arguments"),
- ty.span,
- ));
- }
- // Canonicalize selective imports, mirroring
- // StructInit: `Product` → `product.Product`.
- Type::Struct(self.canonical_struct_name(name))
- } else if name == "json" {
- Type::Json
- } else if name == "bytes" {
- Type::Bytes
- } else if name == "db" || name == "sqlz" {
- Type::Db
- } else if name == "chan" {
- Type::Chan
- } else if name == "task.join" {
- Type::TaskJoin
- } else if name == "http.server" {
- Type::HttpServer
- } else if name == "tcp.stream" {
- Type::TcpStream
- } else if name == "tcp.listener" {
- Type::TcpListener
- } else if name == "http.response" {
- Type::Response
- } else if name == "http.request" {
- Type::HttpRequest
} else {
- self.errors
- .push(error_at(format!("unknown type `{name}`"), ty.span));
- Type::Unit
+ // Type-position uses count for unused-import tracking
+ // (`import shapes` + `t: shapes.Tokens` marks `shapes`
+ // used). Bare names are skipped: a type sharing a
+ // variable's name must not silence its warning.
+ if name.contains('.') {
+ self.used_names.insert(name.clone());
+ }
+ if self.alias_asts.contains_key(name)
+ || self.aliases.contains_key(name)
+ || self
+ .import_aliases
+ .get(name)
+ .is_some_and(|q| self.aliases.contains_key(q))
+ {
+ // Type aliases erase: uses resolve to the target type.
+ // Unconverted program-local aliases convert on demand
+ // inside `expand_alias` (order-independent).
+ let cname = self.canonical_alias_name(name);
+ // A bare name resolved through a selective import
+ // counts as using that import (mirrors value
+ // lookups through `import_aliases`).
+ if cname != *name {
+ self.used_names.insert(name.clone());
+ }
+ self.expand_alias(&cname, args, generics, ty.span)
+ } else if self.enums.contains_key(name)
+ || self
+ .import_aliases
+ .get(name)
+ .is_some_and(|q| self.enums.contains_key(q))
+ {
+ // User enums name their type directly (`t: Token`);
+ // generic enums name their arguments (`Box[int]`),
+ // exactly like generic structs.
+ let cname = self.canonical_enum_name(name);
+ if cname != *name {
+ self.used_names.insert(name.clone());
+ }
+ let want = self
+ .enums
+ .get(&cname)
+ .map(|s| s.generics.len())
+ .unwrap_or(0);
+ if args.is_empty() && want > 0 {
+ // Mirror generic structs: name the arguments
+ // (`Box[int]`). Inference still flows from
+ // construction (`Box.V(1)` unifies on its own).
+ self.errors.push(error_at(
+ format!(
+ "enum `{name}` takes {want} type argument{} (e.g. `{name}<{}>`)",
+ if want == 1 { "" } else { "s" },
+ vec!["T"; want].join(", "),
+ ),
+ ty.span,
+ ));
+ return Type::Enum(
+ cname,
+ (0..want).map(|_| self.unifier.fresh_var()).collect(),
+ );
+ }
+ if args.len() != want {
+ self.errors.push(error_at(
+ format!(
+ "enum `{name}` takes {want} type argument{} but {} given",
+ if want == 1 { "" } else { "s" },
+ args.len(),
+ ),
+ ty.span,
+ ));
+ return Type::Enum(
+ cname,
+ (0..want).map(|_| self.unifier.fresh_var()).collect(),
+ );
+ }
+ Type::Enum(
+ cname,
+ args.iter()
+ .map(|a| self.ast_to_type_inner(a, generics))
+ .collect(),
+ )
+ } else if self.structs.contains_key(name) {
+ // Canonicalize selective imports, mirroring
+ // StructInit: `Product` → `product.Product`.
+ let cname = self.canonical_struct_name(name);
+ if cname != *name {
+ self.used_names.insert(name.clone());
+ }
+ let want = self
+ .structs
+ .get(&cname)
+ .map(|s| s.generics.len())
+ .unwrap_or(0);
+ if args.is_empty() && want > 0 {
+ self.errors.push(error_at(
+ format!(
+ "struct `{name}` takes {want} type argument{} (e.g. `{name}<{}>`)",
+ if want == 1 { "" } else { "s" },
+ vec!["T"; want].join(", "),
+ ),
+ ty.span,
+ ));
+ Type::Struct(cname, Vec::new())
+ } else if args.len() != want {
+ if !(args.is_empty() && want == 0) {
+ self.errors.push(error_at(
+ format!(
+ "struct `{name}` takes {want} type argument{} but {} given",
+ if want == 1 { "" } else { "s" },
+ args.len(),
+ ),
+ ty.span,
+ ));
+ }
+ Type::Struct(cname, Vec::new())
+ } else {
+ Type::Struct(
+ cname,
+ args.iter()
+ .map(|a| self.ast_to_type_inner(a, generics))
+ .collect(),
+ )
+ }
+ } else if name == "json" {
+ Type::Json
+ } else if name == "bytes" {
+ Type::Bytes
+ } else if name == "db" || name == "sqlz" {
+ Type::Db
+ } else if name == "chan" {
+ Type::Chan
+ } else if name == "task.join" {
+ Type::TaskJoin
+ } else if name == "http.server" {
+ Type::HttpServer
+ } else if name == "tcp.stream" {
+ Type::TcpStream
+ } else if name == "tcp.listener" {
+ Type::TcpListener
+ } else if name == "http.response" {
+ Type::Response
+ } else if name == "http.request" {
+ Type::HttpRequest
+ } else {
+ self.errors
+ .push(error_at(format!("unknown type `{name}`"), ty.span));
+ Type::Unit
+ }
}
}
}
@@ -220,6 +334,8 @@ pub(crate) fn contains_var(t: &Type) -> bool {
Type::Func(ps, r) => ps.iter().any(contains_var) || contains_var(r),
Type::Array(x) => contains_var(x),
Type::Dict(k, v) => contains_var(k) || contains_var(v),
+ Type::Struct(_, args) => args.iter().any(contains_var),
+ Type::Enum(_, args) => args.iter().any(contains_var),
Type::Union(ts) => ts.iter().any(contains_var),
Type::Range(x) => contains_var(x),
Type::Ptr { inner, .. } => contains_var(inner),
@@ -227,6 +343,28 @@ pub(crate) fn contains_var(t: &Type) -> bool {
}
}
+/// Largest inference-variable id inside a type (`None` when var-free).
+/// Used to offset a fresh checker's unifier above ids imported from
+/// already-checked modules (see `Unifier::reserve_vars_above`).
+pub(crate) fn max_var_id(t: &Type) -> Option {
+ match t {
+ Type::Var(id) => Some(*id),
+ Type::Void => None,
+ Type::Tuple(ts) => ts.iter().filter_map(max_var_id).max(),
+ Type::Option(x) => max_var_id(x),
+ Type::Result(a, b) => max_var_id(a).into_iter().chain(max_var_id(b)).max(),
+ Type::Func(ps, r) => ps.iter().filter_map(max_var_id).chain(max_var_id(r)).max(),
+ Type::Array(x) => max_var_id(x),
+ Type::Dict(k, v) => max_var_id(k).into_iter().chain(max_var_id(v)).max(),
+ Type::Struct(_, args) => args.iter().filter_map(max_var_id).max(),
+ Type::Enum(_, args) => args.iter().filter_map(max_var_id).max(),
+ Type::Union(ts) => ts.iter().filter_map(max_var_id).max(),
+ Type::Range(x) => max_var_id(x),
+ Type::Ptr { inner, .. } => max_var_id(inner),
+ _ => None,
+ }
+}
+
/// Replace unresolved type variables inside `Option`/`Result` with `unit`
/// so `.none`/`.ok`/`.err` bindings type-check without annotations.
pub(crate) fn default_variant_vars(t: &mut Type) {
@@ -253,12 +391,24 @@ pub(crate) fn default_variant_vars(t: &mut Type) {
}
}
}
+ Type::Enum(_, args) => {
+ // Unconstrained enum parameters default like `Option`'s
+ // (bare `Box.Empty` with nothing to infer from is `Box[unit]`).
+ for a in args {
+ if contains_var(a) {
+ default_variant_vars(a);
+ if contains_var(a) {
+ *a = Type::Unit;
+ }
+ }
+ }
+ }
_ => {}
}
}
/// Substitute generic type parameters in a type.
-pub(crate) fn subst(t: &Type, subs: &std::collections::HashMap) -> Type {
+pub fn subst(t: &Type, subs: &std::collections::HashMap) -> Type {
match t {
Type::Named(name) => subs
.get(name)
@@ -273,6 +423,10 @@ pub(crate) fn subst(t: &Type, subs: &std::collections::HashMap) ->
),
Type::Array(x) => Type::Array(Box::new(subst(x, subs))),
Type::Dict(k, v) => Type::Dict(Box::new(subst(k, subs)), Box::new(subst(v, subs))),
+ Type::Struct(n, args) => {
+ Type::Struct(n.clone(), args.iter().map(|x| subst(x, subs)).collect())
+ }
+ Type::Enum(n, args) => Type::Enum(n.clone(), args.iter().map(|x| subst(x, subs)).collect()),
Type::Union(ts) => Type::Union(ts.iter().map(|x| subst(x, subs)).collect()),
Type::Range(x) => Type::Range(Box::new(subst(x, subs))),
Type::Ptr { mutable, inner } => Type::Ptr {
diff --git a/crates/zz_checker/src/checker/mod.rs b/crates/zz_checker/src/checker/mod.rs
index 86a70cb2..66eebc06 100644
--- a/crates/zz_checker/src/checker/mod.rs
+++ b/crates/zz_checker/src/checker/mod.rs
@@ -1,6 +1,8 @@
//! Type checker: HM-lite inference, generics, patterns, exhaustiveness.
+pub mod aliases;
pub mod diagnostics;
+pub mod enums;
pub mod funcs;
pub mod http_lint;
pub mod inference;
@@ -9,8 +11,9 @@ pub mod structs;
pub mod type_check;
use std::collections::HashMap;
+use std::sync::Arc;
-use zz_frontend::ast::{Program, Stmt};
+use zz_frontend::ast::{Program, Stmt, Ty};
use zz_frontend::diag::RawDiag;
use zz_frontend::span::Span;
@@ -30,13 +33,15 @@ pub const TOP_SCOPE: &str = "";
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct SpanKey {
/// Enclosing top-level function (`Type.method` for methods,
- /// [`TOP_SCOPE`] otherwise).
- pub func: String,
+ /// [`TOP_SCOPE`] otherwise). Shared (`Arc`, not `String`): one key is
+ /// built per checked expression, and (atomic) refcounting kills an allocation
+ /// per node with zero hashing cost change.
+ pub func: Arc,
pub span: Span,
}
impl SpanKey {
- pub fn new(func: impl Into, span: Span) -> Self {
+ pub fn new(func: impl Into>, span: Span) -> Self {
SpanKey {
func: func.into(),
span,
@@ -45,7 +50,7 @@ impl SpanKey {
}
/// A registered function signature.
-#[derive(Debug, Clone)]
+#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
pub struct FuncSig {
pub generics: Vec,
/// Trait bounds per generic parameter name (e.g. `T` → `[Num, Ord]`).
@@ -72,12 +77,33 @@ impl FuncSig {
}
}
-/// A registered struct definition: field names and their types.
-#[derive(Debug, Clone)]
+/// A registered struct definition: type parameters and field types
+/// (which may reference the parameters as `Type::Named`).
+#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
pub struct StructSig {
+ pub generics: Vec,
pub fields: Vec<(String, Type)>,
}
+/// A registered type alias: type parameters and the target type with
+/// parameters as `Type::Named` (e.g. `type Pair[T] = (T, T)` stores
+/// `Tuple([Named("T"), Named("T")])`). Uses resolve to the target, so
+/// aliases never appear at runtime.
+#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
+pub struct AliasSig {
+ pub generics: Vec,
+ pub target: Type,
+}
+/// A registered user enum: type parameters and variant names with
+/// optional payload types (`enum Box[T] { V(T), E }` stores
+/// `generics: ["T"]`, `variants: [("V", Some(Named("T"))),
+/// ("E", None)]`). Construction (`Box.V(1)`) and patterns (`.V(v)`)
+/// resolve against this table; values erase to `Object`s at runtime.
+#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
+pub struct EnumSig {
+ pub generics: Vec,
+ pub variants: Vec<(String, Option)>,
+}
/// Minimal error-conversion registration (V1, error-only — not a general trait system).
/// Declared via `impl From { func convert_to_To(self) -> To { ... } }`.
/// V1 rule: at most one conversion per source type (keeps runtime dispatch sound).
@@ -100,6 +126,10 @@ pub struct CheckResult {
pub funcs: HashMap,
/// Top-level struct definitions.
pub structs: HashMap,
+ /// Top-level type aliases (`type Tokens = [Token]`), resolved targets.
+ pub aliases: HashMap,
+ /// Top-level user enums (`enum Token { ... }`).
+ pub enums: HashMap,
/// `try` site span → conversion impl span (`None` = identity).
pub try_resolutions: HashMap>,
/// `try` site span → conversion function name (`None` = identity).
@@ -118,6 +148,10 @@ pub struct CheckResult {
pub pub_funcs: HashMap,
/// Only `pub` structs (for cross-module export).
pub pub_structs: HashMap,
+ /// Only `pub` type aliases (for cross-module export).
+ pub pub_aliases: HashMap,
+ /// Only `pub` user enums (for cross-module export).
+ pub pub_enums: HashMap,
}
/// Type-check a whole program, seeded with bindings/funcs/structs from prior
@@ -128,12 +162,16 @@ pub fn check_program(
initial_bindings: HashMap,
initial_funcs: HashMap,
initial_structs: HashMap,
+ initial_aliases: HashMap,
+ initial_enums: HashMap,
) -> CheckResult {
check_program_impl(
program,
initial_bindings,
initial_funcs,
initial_structs,
+ initial_aliases,
+ initial_enums,
HashMap::new(),
)
.result
@@ -146,6 +184,8 @@ pub fn check_program_with_consts(
initial_bindings: HashMap,
initial_funcs: HashMap,
initial_structs: HashMap,
+ initial_aliases: HashMap,
+ initial_enums: HashMap,
initial_consts: HashMap,
) -> CheckResult {
check_program_impl(
@@ -153,6 +193,8 @@ pub fn check_program_with_consts(
initial_bindings,
initial_funcs,
initial_structs,
+ initial_aliases,
+ initial_enums,
initial_consts,
)
.result
@@ -166,12 +208,16 @@ pub fn check_program_typed(
initial_bindings: HashMap,
initial_funcs: HashMap,
initial_structs: HashMap,
+ initial_aliases: HashMap,
+ initial_enums: HashMap,
) -> (CheckResult, std::collections::HashMap) {
let out = check_program_impl(
program,
initial_bindings,
initial_funcs,
initial_structs,
+ initial_aliases,
+ initial_enums,
HashMap::new(),
);
(out.result, out.span_types)
@@ -184,26 +230,71 @@ fn check_program_impl(
initial_bindings: HashMap,
initial_funcs: HashMap,
initial_structs: HashMap,
+ initial_aliases: HashMap,
+ initial_enums: HashMap,
initial_consts: HashMap,
) -> CheckerOutcome {
// Resolve explicit decorators first: `@dec func f` becomes `f__inner` +
// a same-signature wrapper, so all downstream passes see ordinary
// functions and calls. Idempotent — already-expanded programs pass
// through unchanged.
- let (expanded, mut decorator_errors) = zz_frontend::decorators::expand_program(program);
- let program = &expanded;
+ //
+ // Skip fast path: decorator-free programs (the common case) check
+ // in place with zero cloning. HIR already expanded once upstream, so
+ // without this every compile paid a second full-program deep clone
+ // for a no-op re-expansion.
+ let mut owned: Option = None;
+ let mut decorator_errors = Vec::new();
+ if zz_frontend::decorators::has_any_decorators(program) {
+ let (expanded, errs) = zz_frontend::decorators::expand_program(program);
+ decorator_errors = errs;
+ owned = Some(expanded);
+ }
+ let program: &Program = owned.as_ref().map_or(program, |o| o);
let mut checker = Checker::new(
initial_bindings,
initial_funcs,
initial_structs,
+ initial_aliases,
+ initial_enums,
initial_consts,
);
+ // Offset fresh-var ids above any `Var(id)` carried in seed signatures
+ // from already-checked modules. Those ids were allocated by a previous
+ // checker's unifier; reusing them here would unify unrelated types
+ // across the module boundary.
+ {
+ let mut max_seen: Option = None;
+ let bump = |max_seen: &mut Option, t: &Type| {
+ if let Some(id) = inference::max_var_id(t) {
+ *max_seen = Some(max_seen.map_or(id, |m| m.max(id)));
+ }
+ };
+ for ty in checker.env.iter().flat_map(|s| s.values()) {
+ bump(&mut max_seen, ty);
+ }
+ for sig in checker.funcs.values() {
+ for (_, pt) in &sig.params {
+ bump(&mut max_seen, pt);
+ }
+ bump(&mut max_seen, &sig.ret);
+ }
+ for sig in checker.structs.values() {
+ for (_, ft) in &sig.fields {
+ bump(&mut max_seen, ft);
+ }
+ }
+ if let Some(m) = max_seen {
+ checker.unifier.reserve_vars_above(m.saturating_add(1));
+ }
+ }
checker.errors.append(&mut decorator_errors);
// Track which items are pub (for cross-module export).
let mut pub_bindings_set: std::collections::HashSet = std::collections::HashSet::new();
let mut pub_funcs_set: std::collections::HashSet = std::collections::HashSet::new();
let mut pub_structs_set: std::collections::HashSet = std::collections::HashSet::new();
+ let mut pub_aliases_set: std::collections::HashSet = std::collections::HashSet::new();
// Pass 1: register struct definitions (fields are resolved against the
// struct registry, so structs may reference earlier structs). Structs
@@ -232,6 +323,151 @@ fn check_program_impl(
}
}
+ // Pass 1a: register type aliases. Raw targets are recorded first so
+ // aliases may reference structs regardless of order; conversion to
+ // resolved types happens after (nested aliases expand recursively
+ // with cycle detection in `convert_alias`).
+ let mut seen_aliases = HashMap::new();
+ for stmt in &program.stmts {
+ if let Stmt::TypeAlias {
+ name,
+ generics,
+ target,
+ span,
+ pub_,
+ } = stmt
+ {
+ let full_name = name.join(".");
+ if checker.structs.contains_key(&full_name) {
+ checker.errors.push(zz_frontend::diag::error_at(
+ format!(
+ "duplicate definition of `{}` (a struct with the same name exists)",
+ full_name
+ ),
+ *span,
+ ));
+ }
+ if let Some(prev) = seen_aliases.insert(full_name.clone(), *span) {
+ checker.errors.push(zz_frontend::diag::error_at(
+ format!("duplicate definition of type alias `{}`", full_name),
+ *span,
+ ));
+ checker.errors.push(zz_frontend::diag::error_at(
+ "previous definition here",
+ prev,
+ ));
+ }
+ // Reject duplicate type parameters (`type P[T, T] = ...`).
+ let mut seen = std::collections::HashSet::new();
+ let mut gen_names = Vec::new();
+ for g in generics {
+ if !seen.insert(g.name.clone()) {
+ checker.errors.push(zz_frontend::diag::error_at(
+ format!(
+ "duplicate type parameter `{}` in alias `{}`",
+ g.name, full_name
+ ),
+ g.span,
+ ));
+ } else {
+ gen_names.push(g.name.clone());
+ }
+ }
+ checker
+ .alias_asts
+ .insert(full_name.clone(), (gen_names, target.clone()));
+ if *pub_ {
+ pub_aliases_set.insert(full_name);
+ }
+ }
+ }
+ // Convert raw targets now that every struct and alias name is known.
+ // (Moved after enum collection below: alias targets may name enums,
+ // and enum payloads may name aliases — both tables must be complete
+ // before either resolves. Conversion is lazy-safe regardless.)
+ // Pass 1b: register user enums. Payload types resolve against the
+ // struct and alias tables (already collected); alias conversion
+ // runs after so targets may also reference enums.
+ let mut seen_enums = HashMap::new();
+ let mut pub_enums_set: std::collections::HashSet = std::collections::HashSet::new();
+ for stmt in &program.stmts {
+ if let Stmt::Enum {
+ name,
+ generics,
+ variants,
+ span,
+ pub_,
+ } = stmt
+ {
+ let full_name = name.join(".");
+ if checker.structs.contains_key(&full_name) {
+ checker.errors.push(zz_frontend::diag::error_at(
+ format!(
+ "duplicate definition of `{}` (a struct with the same name exists)",
+ full_name
+ ),
+ *span,
+ ));
+ }
+ if checker.alias_asts.contains_key(&full_name) {
+ checker.errors.push(zz_frontend::diag::error_at(
+ format!(
+ "duplicate definition of `{}` (a type alias with the same name exists)",
+ full_name
+ ),
+ *span,
+ ));
+ }
+ if let Some(prev) = seen_enums.insert(full_name.clone(), *span) {
+ checker.errors.push(zz_frontend::diag::error_at(
+ format!("duplicate definition of enum `{}`", full_name),
+ *span,
+ ));
+ checker.errors.push(zz_frontend::diag::error_at(
+ "previous definition here",
+ prev,
+ ));
+ }
+ // Reject duplicate type parameters (`enum P[T, T]`).
+ let mut seen_params = std::collections::HashSet::new();
+ let mut gen_names = Vec::new();
+ for g in generics {
+ if !seen_params.insert(g.name.clone()) {
+ checker.errors.push(zz_frontend::diag::error_at(
+ format!(
+ "duplicate type parameter `{}` in enum `{}`",
+ g.name, full_name
+ ),
+ g.span,
+ ));
+ } else {
+ gen_names.push(g.name.clone());
+ }
+ }
+ let mut resolved = Vec::new();
+ for (vname, payload) in variants {
+ let pty = payload
+ .as_ref()
+ .map(|t| checker.ast_to_type_inner(t, &gen_names));
+ resolved.push((vname.name.clone(), pty));
+ }
+ checker.enums.insert(
+ full_name.clone(),
+ EnumSig {
+ generics: gen_names,
+ variants: resolved,
+ },
+ );
+ if *pub_ {
+ pub_enums_set.insert(full_name);
+ }
+ }
+ }
+ let alias_names: Vec = checker.alias_asts.keys().cloned().collect();
+ for alias_name in alias_names {
+ checker.convert_alias(&alias_name);
+ }
+
// Pass 1b: register impl method signatures so method calls resolve.
// Inherent (`impl KnownStruct`) → `funcs[Type.method]` (existing).
// Extension (`impl` on builtins or unknown/cross-module types) →
@@ -240,12 +476,86 @@ fn check_program_impl(
// orphan duplicates are compile errors here, not last-wins.
let mut seen = HashMap::new();
for stmt in &program.stmts {
- if let Stmt::Impl { name, methods, .. } = stmt {
+ if let Stmt::Impl {
+ name,
+ generics: impl_generics,
+ methods,
+ ..
+ } = stmt
+ {
let type_name = name.join(".");
let is_known_struct = checker.structs.contains_key(&type_name);
+ // `impl` on a known enum is inherent, exactly like structs:
+ // methods land in `funcs[Enum.method]` with historical
+ // last-wins (re-checks of the same program stay idempotent
+ // instead of tripping the extension orphan rule).
+ let is_known_enum = checker.enums.contains_key(&type_name);
let builtin_key = Checker::builtin_ext_key(&type_name);
- let is_extension = builtin_key.is_some() || !is_known_struct;
+ let is_extension = builtin_key.is_some() || !(is_known_struct || is_known_enum);
let type_key = builtin_key.unwrap_or_else(|| type_name.clone());
+ // Generic structs need a matching generic impl (`impl Box[T]`);
+ // the parameters scope over every method below. Generic
+ // enums follow the identical rule.
+ let struct_generics: Vec = checker
+ .structs
+ .get(&type_name)
+ .map(|s| s.generics.clone())
+ .unwrap_or_else(|| {
+ checker
+ .enums
+ .get(&type_name)
+ .map(|s| s.generics.clone())
+ .unwrap_or_default()
+ });
+ let impl_gen_names: Vec =
+ impl_generics.iter().map(|g| g.name.clone()).collect();
+ if is_extension {
+ if !impl_gen_names.is_empty() {
+ checker.errors.push(zz_frontend::diag::error_at(
+ format!(
+ "generic `impl` requires a generic struct (`{type_name}` is not one)"
+ ),
+ stmt.span(),
+ ));
+ }
+ } else if struct_generics.len() != impl_gen_names.len() {
+ // Name the item kind correctly (struct vs enum).
+ let kind = if checker.enums.contains_key(&type_name) {
+ "enum"
+ } else {
+ "struct"
+ };
+ if struct_generics.is_empty() {
+ checker.errors.push(zz_frontend::diag::error_at(
+ format!(
+ "{kind} `{type_name}` is not generic (expected `impl {type_name}` without type parameters)"
+ ),
+ stmt.span(),
+ ));
+ } else {
+ checker.errors.push(zz_frontend::diag::error_at(
+ format!(
+ "generic {kind} `{type_name}` takes {} type parameter{} (expected `impl {type_name}[{}]`)",
+ struct_generics.len(),
+ if struct_generics.len() == 1 { "" } else { "s" },
+ struct_generics.join(", "),
+ ),
+ stmt.span(),
+ ));
+ }
+ } else {
+ // Duplicate parameter names (`impl Box[T, T]`) shadow each
+ // other in substitution maps; reject rather than guess.
+ let mut seen_gen = std::collections::HashSet::new();
+ for g in &impl_gen_names {
+ if !seen_gen.insert(g.clone()) {
+ checker.errors.push(zz_frontend::diag::error_at(
+ format!("duplicate type parameter `{g}` in `impl {type_name}`"),
+ stmt.span(),
+ ));
+ }
+ }
+ }
for method in methods {
if let Stmt::Func {
name: mname,
@@ -258,16 +568,55 @@ fn check_program_impl(
{
let method_name = mname.join(".");
let full_name = format!("{}.{}", type_key, method_name);
- let gen_names: Vec =
+ let method_gens: Vec =
generics.iter().map(|g| g.name.name.clone()).collect();
+ // Impl parameters scope over every method (so the
+ // receiver's `Box[int]` unifies `T := int` at call
+ // sites through the existing instantiation path).
+ // A method parameter shadowing an impl parameter
+ // would collapse two distinct variables; reject it.
+ for g in generics {
+ if impl_gen_names.contains(&g.name.name) {
+ checker.errors.push(zz_frontend::diag::error_at(
+ format!(
+ "type parameter `{}` shadows an `impl {}` parameter (rename one)",
+ g.name.name, type_name
+ ),
+ g.name.span,
+ ));
+ }
+ }
+ let gen_names: Vec = impl_gen_names
+ .iter()
+ .cloned()
+ .chain(method_gens.iter().cloned())
+ .collect();
let gen_bounds: Vec<(String, Vec)> = generics
.iter()
.map(|g| (g.name.name.clone(), g.bounds.clone()))
.collect();
// Build params, replacing `self` with the receiver type
- // (builtin mapped, else struct by name).
- let self_ty =
- Checker::self_type_for_impl(&type_name, &type_key, &mut checker.unifier);
+ // (builtin mapped, else struct by name — generic structs
+ // keep their parameters as `Named` so calls instantiate
+ // them from the receiver). Enums erase to objects but
+ // keep their identity: `self` is `Type::Enum`, generic
+ // enums keeping their parameters as `Named` too.
+ let self_ty = if let Some(esig) = checker.enums.get(&type_name) {
+ Type::Enum(
+ type_name.clone(),
+ esig.generics
+ .iter()
+ .map(|g| Type::Named(g.clone()))
+ .collect(),
+ )
+ } else {
+ Checker::self_type_for_impl(
+ &type_name,
+ &type_key,
+ &impl_gen_names,
+ &mut checker.unifier,
+ )
+ };
let sig_params: Vec<(String, Type)> = params
.iter()
.enumerate()
@@ -460,7 +809,7 @@ fn check_program_impl(
}
let scoped = !matches!(stmt, Stmt::Func { .. } | Stmt::Impl { .. });
if scoped {
- checker.scope.push(TOP_SCOPE.to_string());
+ checker.scope.push(Arc::from(TOP_SCOPE));
}
checker.check_stmt(stmt);
if scoped {
@@ -483,6 +832,8 @@ fn check_program_impl(
checker.pub_names = pub_bindings_set
.union(&pub_funcs_set)
.chain(pub_structs_set.iter())
+ .chain(pub_aliases_set.iter())
+ .chain(pub_enums_set.iter())
.cloned()
.collect();
@@ -490,7 +841,11 @@ fn check_program_impl(
// is never popped, so pop_scope's check never fires for it).
checker.emit_global_unused_warnings();
- // Build pub-only maps for cross-module export.
+ // Build pub-only maps for cross-module export. Signature types are
+ // deep-resolved so inferred returns (e.g. `ping()` with no annotation
+ // unifies its ret var to `unit` during body checking) export as
+ // concrete types, never as the defining checker's `Var(id)` — a bare
+ // id would collide with the importer's own fresh vars.
let pub_bindings: HashMap = bindings
.iter()
.filter(|(k, _)| pub_bindings_set.contains(k.as_str()))
@@ -500,13 +855,40 @@ fn check_program_impl(
.funcs
.iter()
.filter(|(k, _)| pub_funcs_set.contains(k.as_str()))
- .map(|(k, v)| (k.clone(), v.clone()))
+ .map(|(k, v)| {
+ let mut sig = v.clone();
+ sig.params = sig
+ .params
+ .iter()
+ .map(|(n, t)| (n.clone(), checker.unifier.resolve_deep(t)))
+ .collect();
+ sig.ret = checker.unifier.resolve_deep(&sig.ret);
+ (k.clone(), sig)
+ })
.collect();
let pub_structs: HashMap = checker
.structs
.iter()
.filter(|(k, _)| pub_structs_set.contains(k.as_str()))
- .map(|(k, v)| (k.clone(), v.clone()))
+ .map(|(k, v)| {
+ let mut sig = v.clone();
+ sig.fields = sig
+ .fields
+ .iter()
+ .map(|(n, t)| (n.clone(), checker.unifier.resolve_deep(t)))
+ .collect();
+ (k.clone(), sig)
+ })
+ .collect();
+ let pub_aliases: HashMap = checker
+ .aliases
+ .iter()
+ .filter(|(k, _)| pub_aliases_set.contains(k.as_str()))
+ .map(|(k, v)| {
+ let mut sig = v.clone();
+ sig.target = checker.unifier.resolve_deep(&sig.target);
+ (k.clone(), sig)
+ })
.collect();
// Deep-resolve the recorded span types now that all unification is done.
@@ -552,12 +934,21 @@ fn check_program_impl(
try_converts.insert(*span, func_name);
}
+ // Enum payloads are resolved concrete at collection (no inference
+ // variables can appear), so `pub` enums export as-is.
+ let pub_enums: HashMap = pub_enums_set
+ .iter()
+ .filter_map(|k| checker.enums.get(k).cloned().map(|v| (k.clone(), v)))
+ .collect();
+
CheckerOutcome {
result: CheckResult {
errors: checker.errors,
bindings,
funcs: checker.funcs,
structs: checker.structs,
+ aliases: checker.aliases,
+ enums: checker.enums,
try_resolutions: checker.try_resolutions,
try_converts,
link_libs: checker.link_libs,
@@ -565,6 +956,8 @@ fn check_program_impl(
pub_bindings,
pub_funcs,
pub_structs,
+ pub_aliases,
+ pub_enums,
},
span_types,
}
@@ -582,6 +975,17 @@ pub(crate) struct Checker {
pub(crate) errors: Vec,
pub(crate) funcs: HashMap,
pub(crate) structs: HashMap,
+ /// Type aliases (`type Tokens = [Token]`): exported, resolved targets.
+ pub(crate) aliases: HashMap,
+ /// Raw alias targets (this program only), converted to `aliases`
+ /// after all structs are collected so targets may reference any
+ /// struct regardless of order. Not exported.
+ pub(crate) alias_asts: HashMap, Ty)>,
+ /// Alias expansion stack for cycle detection (`type A = B`,
+ /// `type B = A` reports instead of recursing forever).
+ pub(crate) alias_expanding: Vec,
+ /// User enums (`enum Token { ... }`): exported, resolved payloads.
+ pub(crate) enums: HashMap,
/// Extension methods (separate table): (TypeName, method) → (sig, def span).
/// Holds `impl` on builtins and cross-type extensions. Lookup priority:
/// inherent (`funcs`) → extension (here) → stdlib namespace.
@@ -626,6 +1030,9 @@ pub(crate) struct Checker {
/// functions resolve — generics have no value type, so no binding
/// is ever created for them.
pub(crate) import_aliases: HashMap,
+ /// Module-head aliases: `m` → `std.math` from `import std.math as m`.
+ /// Lets const/call diagnostics resolve aliased namespaces.
+ pub(crate) module_aliases: HashMap,
/// Resolved type per scoped expression key, recorded during the type walk.
/// Used by the HIR builder to attach a resolved `Type` to every AST node.
/// Keyed by [`SpanKey`] (function + span): bare spans collide across
@@ -638,7 +1045,7 @@ pub(crate) struct Checker {
/// Enclosing-item scope stack for [`SpanKey`] recording. Holds the
/// top-level function (or `Type.method`) whose body is being checked;
/// empty at top level (keys then use [`TOP_SCOPE`]).
- pub(crate) scope: Vec,
+ pub(crate) scope: Vec>,
}
impl Checker {
@@ -649,7 +1056,7 @@ impl Checker {
self.scope
.last()
.cloned()
- .unwrap_or_else(|| TOP_SCOPE.to_string()),
+ .unwrap_or_else(|| Arc::from(TOP_SCOPE)),
span,
)
}
@@ -657,6 +1064,8 @@ impl Checker {
initial_bindings: HashMap,
funcs: HashMap,
structs: HashMap,
+ aliases: HashMap,
+ enums: HashMap,
initial_consts: HashMap,
) -> Self {
let env = vec![initial_bindings];
@@ -665,6 +1074,10 @@ impl Checker {
errors: Vec::new(),
funcs,
structs,
+ aliases,
+ alias_asts: HashMap::new(),
+ alias_expanding: Vec::new(),
+ enums,
ext_methods: HashMap::new(),
convert_impls: Vec::new(),
try_resolutions: HashMap::new(),
@@ -681,6 +1094,7 @@ impl Checker {
had_undefined_var: false,
imports: Vec::new(),
import_aliases: HashMap::new(),
+ module_aliases: HashMap::new(),
span_types: std::collections::HashMap::new(),
scope: Vec::new(),
link_libs: Vec::new(),
@@ -716,6 +1130,7 @@ impl Checker {
pub(crate) fn self_type_for_impl(
type_name: &str,
type_key: &str,
+ impl_generics: &[String],
unifier: &mut crate::unify::Unifier,
) -> Type {
match type_key {
@@ -726,7 +1141,13 @@ impl Checker {
"vec" => Type::Array(Box::new(unifier.fresh_var())),
"option" => Type::Option(Box::new(unifier.fresh_var())),
"result" => Type::Result(Box::new(unifier.fresh_var()), Box::new(unifier.fresh_var())),
- _ => Type::Struct(type_name.to_string()),
+ _ => Type::Struct(
+ type_name.to_string(),
+ impl_generics
+ .iter()
+ .map(|g| Type::Named(g.clone()))
+ .collect(),
+ ),
}
}
@@ -799,11 +1220,66 @@ mod span_scope_tests {
stmts,
span: Span::new(0, 0),
};
- let (res, types) =
- check_program_typed(&merged, HashMap::new(), HashMap::new(), HashMap::new());
+ let (res, types) = check_program_typed(
+ &merged,
+ HashMap::new(),
+ HashMap::new(),
+ HashMap::new(),
+ HashMap::new(),
+ HashMap::new(),
+ );
assert!(res.errors.is_empty(), "check: {:?}", res.errors);
let key = Span::new(28, 32);
assert_eq!(types.get(&SpanKey::new("f", key)), Some(&Type::Int));
assert_eq!(types.get(&SpanKey::new("g", key)), Some(&Type::Bool));
}
}
+
+#[cfg(test)]
+mod cache_serde_tests {
+ // S1 arena-scale: pub signatures must survive a JSON roundtrip exactly
+ // (module check-cache stores these on disk).
+ use super::*;
+ use crate::type_::Type;
+
+ #[test]
+ fn func_sig_roundtrips() {
+ let sig = FuncSig {
+ generics: vec!["T".to_string()],
+ bounds: vec![("T".to_string(), vec![zz_frontend::ast::TraitBound::Display])],
+ params: vec![
+ ("x".to_string(), Type::Int),
+ (
+ "ys".to_string(),
+ Type::Array(Box::new(Type::Option(Box::new(Type::Named(
+ "T".to_string(),
+ ))))),
+ ),
+ ],
+ has_default: vec![false, true],
+ ret: Type::Result(Box::new(Type::Named("T".to_string())), Box::new(Type::Str)),
+ is_extern: false,
+ extern_c_symbol: None,
+ };
+ let json = serde_json::to_string(&sig).expect("serialize FuncSig");
+ let back: FuncSig = serde_json::from_str(&json).expect("deserialize FuncSig");
+ assert_eq!(format!("{sig:?}"), format!("{back:?}"));
+ }
+
+ #[test]
+ fn struct_sig_and_type_roundtrip() {
+ let sig = StructSig {
+ generics: vec![],
+ fields: vec![
+ ("x".to_string(), Type::Int),
+ (
+ "f".to_string(),
+ Type::Func(vec![Type::Int], Box::new(Type::Bool)),
+ ),
+ ],
+ };
+ let json = serde_json::to_string(&sig).expect("serialize StructSig");
+ let back: StructSig = serde_json::from_str(&json).expect("deserialize StructSig");
+ assert_eq!(format!("{sig:?}"), format!("{back:?}"));
+ }
+}
diff --git a/crates/zz_checker/src/checker/scope.rs b/crates/zz_checker/src/checker/scope.rs
index a453bd2e..1aa347c3 100644
--- a/crates/zz_checker/src/checker/scope.rs
+++ b/crates/zz_checker/src/checker/scope.rs
@@ -32,19 +32,33 @@ impl Checker {
/// additionally require the name to be present in `funcs` so import
/// gating still applies (using `math.PI` without the import stays an
/// "undefined variable" error).
- pub(crate) fn is_math_const(name: &str) -> bool {
+ pub(crate) fn is_math_const(&self, name: &str) -> bool {
const LEAVES: &[&str] = &[
"PI", "E", "TAU", "SQRT_2", "SQRT_1_2", "LN_2", "LN_10", "LOG10_E", "LOG2_E", "INF",
"NAN",
];
- let (prefix, leaf) = match name.rsplit_once('.') {
+ // Resolve selective-import aliases first (`pi` from
+ // `import std.math(PI as pi)` checks as `math.PI`).
+ let resolved = self
+ .import_aliases
+ .get(name)
+ .map(|s| s.as_str())
+ .unwrap_or(name);
+ let (prefix, leaf) = match resolved.rsplit_once('.') {
Some((p, l)) => (p, l),
- None => ("", name),
+ None => ("", resolved),
};
if !LEAVES.contains(&leaf) {
return false;
}
- matches!(prefix, "" | "math" | "std.math")
+ if matches!(prefix, "" | "math" | "std.math") {
+ return true;
+ }
+ // Resolve module-head aliases (`m.TAU` from `import std.math as m`).
+ if let Some(module) = self.module_aliases.get(prefix) {
+ return matches!(module.as_str(), "math" | "std.math");
+ }
+ false
}
pub(crate) fn pop_scope(&mut self) {
@@ -173,7 +187,21 @@ impl Checker {
let used = self
.used_names
.iter()
- .any(|n| n == alias || n.starts_with(&prefix));
+ .any(|n| n == alias || n.starts_with(&prefix))
+ // Selective imports rewritten to canonical paths
+ // (`join(...)` → `path.join(...)` by the loader): the
+ // import is used when its qualified form was used. The
+ // loader canonicalizes `std.*` calls to the `std.`-rooted
+ // spelling (`pow(...)` → `std.math.pow(...)`), which never
+ // matches the short alias form (`math.pow`) — so the
+ // `std.`-rooted spelling counts too, or every selectively
+ // imported std call warns falsely.
+ || self.import_aliases.get(alias).is_some_and(|q| {
+ self.used_names.contains(q)
+ || self
+ .used_names
+ .contains(format!("std.{q}").as_str())
+ });
if !used {
self.errors.push(
warning_at(format!("unused import `{alias}`"), *span)
@@ -246,8 +274,14 @@ impl Checker {
if let Some((module, _func)) = name.split_once('.') {
let std_module = match module {
"io" | "str" | "vec" | "json" | "http" | "fs" | "env" | "math" | "time"
- | "sqlz" | "db" => Some(module),
- _ => None,
+ | "sqlz" | "db" => Some(module.to_string()),
+ // Generalized: any other std module present in the
+ // seed (`std.M.*` keys), not just the hardcoded list.
+ _ => self
+ .funcs
+ .keys()
+ .any(|k| k.starts_with(&format!("std.{module}.")))
+ .then(|| module.to_string()),
};
if let Some(mod_name) = std_module {
let import_stmt = format!("import std.{mod_name}");
@@ -261,6 +295,43 @@ impl Checker {
"add import",
));
}
+ } else {
+ // Bare name matching exactly one std export (`sin` →
+ // `std.math.sin`): point at the import that provides it.
+ // Capped at 3 modules; more than that is a common word,
+ // not a missed import.
+ let mut providers: Vec = Vec::new();
+ for key in self.funcs.keys().chain(self.structs.keys()) {
+ if let Some(rest) = key.strip_prefix("std.") {
+ if let Some((module, bare)) = rest.split_once('.') {
+ if bare == name && !bare.contains('.') {
+ let m = module.to_string();
+ if !providers.contains(&m) {
+ providers.push(m);
+ }
+ }
+ }
+ }
+ }
+ providers.sort();
+ providers.truncate(3);
+ if !providers.is_empty() {
+ let imports = providers
+ .iter()
+ .map(|m| format!("`import std.{m}`"))
+ .collect::>()
+ .join(", ");
+ diag = diag.with_note(format!(
+ "to use `{name}`, add {imports} at the top of the file"
+ ));
+ if providers.len() == 1 {
+ diag = diag.with_fixit(FixIt::safe(
+ Span::new(0, 0),
+ format!("import std.{}\n", providers[0]),
+ "add import",
+ ));
+ }
+ }
}
self.errors.push(diag);
self.had_undefined_var = true;
@@ -286,8 +357,7 @@ impl Checker {
// Math constants (`math.PI`, `std.math.PI`, bare `PI` via a
// selective import) are true `Float` values, not function
// values — `println(math.PI)` must not suggest `()`.
- if sig.params.is_empty() && matches!(sig.ret, Type::Float) && Self::is_math_const(name)
- {
+ if sig.params.is_empty() && matches!(sig.ret, Type::Float) && self.is_math_const(name) {
return Some(Type::Float);
}
// Function used as a value: give its (uninstantiated) type. Call
@@ -361,56 +431,16 @@ impl Checker {
let mut ty = root;
for field in &parts[1..] {
match self.unifier.resolve(&ty) {
- Type::Struct(name) => match self.structs.get(&name).cloned() {
- Some(sig) => match sig.fields.iter().find(|(n, _)| n == field) {
- Some((_, ft)) => ty = ft.clone(),
- None => match self.resolve_struct_field(&name, field) {
- // Promoted through an embedded struct.
- Some(ft) => ty = ft,
- None => {
- // Suggest closest field name (including promoted fields).
- let visible = self.all_visible_fields(&name);
- let field_names: Vec<&str> =
- visible.iter().map(|n| n.as_str()).collect();
- let mut diag = error_at(
- format!("struct `{name}` has no field `{field}`"),
- span,
- );
- let all = suggest_all(field, &field_names);
- if let Some((suggestion, _)) = all.first() {
- diag = diag
- .with_note(format!("did you mean field `{suggestion}`?"));
- let field_span =
- Span::new(span.end - field.len() as u32, span.end);
- let fixit = if all.len() == 1 {
- FixIt::safe(
- field_span,
- suggestion.to_string(),
- "replace field",
- )
- } else {
- let alts: Vec =
- all.iter().map(|(s, _)| s.to_string()).collect();
- FixIt::ambiguous(
- field_span,
- suggestion.to_string(),
- "replace field",
- alts,
- )
- };
- diag = diag.with_fixit(fixit);
- }
- self.errors.push(diag);
- return Type::Error;
- }
- },
- },
- None => {
- self.errors
- .push(error_at(format!("unknown struct `{name}`"), span));
+ Type::Struct(name, args) => {
+ // On failure the helper reports and yields `Unit`;
+ // paths stop here (historical: `Type::Error`) so a
+ // bad middle segment doesn't cascade per segment.
+ let before = self.errors.len();
+ ty = self.struct_field_access(&name, &args, field, span);
+ if self.errors.len() > before {
return Type::Error;
}
- },
+ }
Type::Dict(k, v) => {
// Dict field access: req.body returns the value type
if let Err(e) = self.unifier.unify(&Type::Str, &k) {
diff --git a/crates/zz_checker/src/checker/structs.rs b/crates/zz_checker/src/checker/structs.rs
index 7cb01efc..72940672 100644
--- a/crates/zz_checker/src/checker/structs.rs
+++ b/crates/zz_checker/src/checker/structs.rs
@@ -15,64 +15,122 @@
use crate::checker::{Checker, FuncSig};
use crate::type_::Type;
use zz_frontend::ast::Stmt;
+use zz_frontend::diag::error_at;
impl Checker {
pub(crate) fn collect_struct(&mut self, stmt: &Stmt) {
- let (name, fields) = match stmt {
- Stmt::Struct { name, fields, .. } => (name, fields),
+ let (name, generics, fields) = match stmt {
+ Stmt::Struct {
+ name,
+ generics,
+ fields,
+ ..
+ } => (name, generics, fields),
_ => unreachable!(),
};
- let gens = self.current_generics.clone();
+ // Reject duplicate type parameters (`struct P[T, T]`).
+ let mut seen = std::collections::HashSet::new();
+ for g in generics {
+ if !seen.insert(g.name.clone()) {
+ self.errors.push(error_at(
+ format!(
+ "duplicate type parameter `{}` in struct `{}`",
+ g.name,
+ name.join(".")
+ ),
+ g.span,
+ ));
+ }
+ }
+ let gen_names: Vec = generics.iter().map(|g| g.name.clone()).collect();
let sig_fields = fields
.iter()
- .map(|(fname, fty)| (fname.name.clone(), self.ast_to_type(fty, &gens)))
+ .map(|(fname, fty)| (fname.name.clone(), self.ast_to_type(fty, &gen_names)))
.collect();
let full_name = name.join(".");
- self.structs
- .insert(full_name, crate::checker::StructSig { fields: sig_fields });
+ // Shadowing a builtin amid generics is still a collision; the
+ // plain-struct path reports it elsewhere, so only check arity here.
+ self.structs.insert(
+ full_name,
+ crate::checker::StructSig {
+ generics: gen_names,
+ fields: sig_fields,
+ },
+ );
}
/// True when a struct field is an embedded (anonymous) field: its type
/// is a struct whose last name segment equals the field name.
pub(crate) fn is_embedded_field(fname: &str, fty: &Type) -> bool {
match fty {
- Type::Struct(s) => s.rsplit('.').next().unwrap_or(s) == fname,
+ Type::Struct(s, _) => s.rsplit('.').next().unwrap_or(s) == fname,
_ => false,
}
}
- /// Direct field type, or the type promoted through embedded structs
- /// (breadth-first, so the nearest embedding wins). Cycle-safe.
- pub(crate) fn resolve_struct_field(&self, sname: &str, field: &str) -> Option {
- self.resolve_struct_field_path(sname, field)
- .map(|(_, ty)| ty)
+ /// Substitution map from a struct's generic parameters to the
+ /// concrete arguments at this use site. Empty when arities differ
+ /// (already reported elsewhere) — lookups then keep `Named` as-is.
+ pub(crate) fn struct_arg_map(
+ &self,
+ sname: &str,
+ args: &[Type],
+ ) -> std::collections::HashMap {
+ match self.structs.get(sname) {
+ Some(sig) if sig.generics.len() == args.len() => sig
+ .generics
+ .iter()
+ .cloned()
+ .zip(args.iter().cloned())
+ .collect(),
+ _ => std::collections::HashMap::new(),
+ }
}
- /// Like [`Checker::resolve_struct_field`], but also returns the path of
+ /// Direct field type with the use-site arguments substituted
+ /// (`Box[int].v` → `int`). Returns `None` for unknown structs,
+ /// unknown fields, or arity mismatch details (handled by callers).
+ pub(crate) fn direct_field_type(
+ &self,
+ sname: &str,
+ args: &[Type],
+ field: &str,
+ ) -> Option {
+ let sig = self.structs.get(sname)?;
+ let (_, ft) = sig.fields.iter().find(|(n, _)| n == field)?;
+ let map = self.struct_arg_map(sname, args);
+ Some(crate::checker::inference::subst(ft, &map))
+ }
+
+ /// Like [`Checker::direct_field_type`], but also returns the path of
/// embedded field names leading to the field (empty = direct).
- pub(crate) fn resolve_struct_field_path(
+ /// Generic arguments thread through embedded levels: stepping into
+ /// `Base` via a field of type `Base[int]` continues with
+ /// `args=[int]`. Cycle-safe.
+ pub(crate) fn resolve_struct_field_generic(
&self,
sname: &str,
+ args: &[Type],
field: &str,
) -> Option<(Vec, Type)> {
let mut visited = vec![sname.to_string()];
- // Queue of (struct name, path of embedded fields to reach it).
- let mut queue: Vec<(String, Vec)> = vec![(sname.to_string(), Vec::new())];
- while let Some((cur, path)) = queue.first().cloned() {
+ let mut queue: Vec<(String, Vec, Vec)> =
+ vec![(sname.to_string(), args.to_vec(), Vec::new())];
+ while let Some((cur, cur_args, path)) = queue.first().cloned() {
queue.remove(0);
let sig = self.structs.get(&cur)?;
+ let map = self.struct_arg_map(&cur, &cur_args);
if let Some((_, ft)) = sig.fields.iter().find(|(n, _)| n == field) {
- // Direct hits win at every level; an embedded field's own
- // name also resolves (so `u.Base` keeps working).
- return Some((path, ft.clone()));
+ return Some((path, crate::checker::inference::subst(ft, &map)));
}
for (fname, fty) in &sig.fields {
- if let Type::Struct(inner) = fty {
- if Self::is_embedded_field(fname, fty) && !visited.contains(inner) {
+ let concrete = crate::checker::inference::subst(fty, &map);
+ if let Type::Struct(inner, inner_args) = &concrete {
+ if Self::is_embedded_field(fname, &concrete) && !visited.contains(inner) {
visited.push(inner.clone());
let mut next_path = path.clone();
next_path.push(fname.clone());
- queue.push((inner.clone(), next_path));
+ queue.push((inner.clone(), inner_args.clone(), next_path));
}
}
}
@@ -80,6 +138,39 @@ impl Checker {
None
}
+ /// Concrete type of the embedded value defining `method` when called
+ /// on `(sname, args)`: BFS over embedded fields carrying each level's
+ /// substituted arguments, returning the first value whose struct base
+ /// matches `defining` (mirrors [`Checker::find_struct_method`).
+ /// The runtime passes this embedded value as the receiver, so method
+ /// calls unify it (not the outer type) against the method's `self`.
+ pub(crate) fn promoted_method_receiver(
+ &self,
+ sname: &str,
+ args: &[Type],
+ defining: &str,
+ ) -> Option {
+ let mut visited = vec![sname.to_string()];
+ let mut queue: Vec<(String, Vec)> = vec![(sname.to_string(), args.to_vec())];
+ while let Some((cur, cur_args)) = queue.first().cloned() {
+ queue.remove(0);
+ let sig = self.structs.get(&cur)?;
+ let map = self.struct_arg_map(&cur, &cur_args);
+ for (fname, fty) in &sig.fields {
+ let concrete = crate::checker::inference::subst(fty, &map);
+ if let Type::Struct(inner, inner_args) = &concrete {
+ if inner == defining {
+ return Some(concrete.clone());
+ }
+ if Self::is_embedded_field(fname, &concrete) && !visited.contains(inner) {
+ visited.push(inner.clone());
+ queue.push((inner.clone(), inner_args.clone()));
+ }
+ }
+ }
+ }
+ None
+ }
/// First required leaf path under struct `sname` (reached via `prefix`)
/// that is not covered by the given concrete literal paths. An explicit
/// value at a path covers its whole subtree; otherwise embedded
@@ -102,7 +193,7 @@ impl Checker {
continue;
}
match fty {
- Type::Struct(inner) if Self::is_embedded_field(fname, fty) => {
+ Type::Struct(inner, _) if Self::is_embedded_field(fname, fty) => {
if let Some(leaf) = self.first_uncovered_leaf(inner, &path, given, depth + 1) {
return Some(leaf);
}
@@ -129,7 +220,7 @@ impl Checker {
if !out.contains(fname) {
out.push(fname.clone());
}
- if let Type::Struct(inner) = fty {
+ if let Type::Struct(inner, _) = fty {
if Self::is_embedded_field(fname, fty) && !visited.contains(inner) {
visited.push(inner.clone());
queue.push(inner.clone());
@@ -166,7 +257,7 @@ impl Checker {
continue;
};
for (fname, fty) in &sig.fields {
- if let Type::Struct(inner) = fty {
+ if let Type::Struct(inner, _) = fty {
if Self::is_embedded_field(fname, fty) && !visited.contains(inner) {
visited.push(inner.clone());
queue.push(inner.clone());
diff --git a/crates/zz_checker/src/checker/type_check.rs b/crates/zz_checker/src/checker/type_check.rs
index c89152c6..f69aaa6c 100644
--- a/crates/zz_checker/src/checker/type_check.rs
+++ b/crates/zz_checker/src/checker/type_check.rs
@@ -1,10 +1,12 @@
//! Core type-checking logic: statements, expressions, patterns.
+use std::sync::Arc;
+
use crate::checker::inference::{contains_var, default_variant_vars};
use crate::checker::Checker;
use crate::type_::Type;
use zz_frontend::ast::{BinOp, Block, Expr, FmtPart, Lit, Param, Pattern, Stmt, Ty, UnOp};
-use zz_frontend::diag::{error_at, FixIt};
+use zz_frontend::diag::{error_at, warning_at, FixIt};
use zz_frontend::levenshtein::suggest_all;
use zz_frontend::span::Span;
@@ -50,6 +52,18 @@ fn check_sql_static(text: &str) -> Option {
None
}
+/// A method invocation: resolved signature plus receiver, args, and span.
+pub(crate) struct MethodCall<'a> {
+ pub sig: &'a super::FuncSig,
+ pub recv_t: &'a Type,
+ /// Embedded-promoted receiver (struct embedding only), if any.
+ pub promoted_recv: Option,
+ pub method: &'a str,
+ pub args: &'a [Expr],
+ pub named: &'a [(String, Expr)],
+ pub span: Span,
+}
+
impl Checker {
// --- statements -------------------------------------------------------
@@ -132,7 +146,12 @@ impl Checker {
.cloned()
.or_else(|| path.last().cloned())
.unwrap_or_default();
- self.imports.push((ns, *span));
+ self.imports.push((ns.clone(), *span));
+ // Remember the module behind an aliased head (`m` →
+ // `std.math`) for const/call diagnostics.
+ self.module_aliases
+ .entry(ns)
+ .or_insert_with(|| path.join("."));
} else {
// Selective/wildcard import: track each imported name.
// Record bare→qualified aliases for call-site fallback
@@ -195,7 +214,7 @@ impl Checker {
}
// Scope span recording to this function: spans repeat
// across modules, so the typed map keys (scope, span).
- self.scope.push(fname);
+ self.scope.push(Arc::from(fname));
self.check_func_body(stmt, &sig);
self.scope.pop();
Type::Unit
@@ -217,7 +236,7 @@ impl Checker {
let method_name = Self::func_name(method);
let full_name = format!("{}.{}", type_name, method_name);
let sig = self.funcs.get(&full_name).unwrap().clone();
- self.scope.push(full_name);
+ self.scope.push(Arc::from(full_name));
self.check_func_body(method, &sig);
self.scope.pop();
}
@@ -237,7 +256,9 @@ impl Checker {
Some(v) => {
let vt = self.check_expr(v);
if let Err(e) = self.unifier.unify(&vt, &ret) {
- self.report_mismatch(e, v.span());
+ if !self.report_result_return_hint(&vt, &ret, v.span()) {
+ self.report_mismatch(e, v.span());
+ }
}
// A `return` diverges: it never yields a value to the
// enclosing block. Its statement type is `Never`
@@ -258,6 +279,12 @@ impl Checker {
}
Stmt::Expr(e) => self.check_expr(e),
Stmt::Struct { .. } => Type::Unit,
+ // Aliases are collected and resolved in pass 1a; checking
+ // the declaration itself is a no-op (uses resolve on demand).
+ Stmt::TypeAlias { .. } => Type::Unit,
+ // Enums are collected in pass 1b; the declaration itself is
+ // a no-op (construction and patterns resolve on demand).
+ Stmt::Enum { .. } => Type::Unit,
Stmt::For {
vars,
iter,
@@ -449,30 +476,7 @@ impl Checker {
// Reject assignment to immutable (`const`) variables. The target is an
// `Ident` in plain programs and a `Path` (e.g. `ns.x`) after
// the loader namespaces top-level bindings.
- let tname: Option = match target {
- Expr::Ident { name, .. } => Some(name.clone()),
- Expr::Path { parts, .. } => Some(parts.join(".")),
- _ => None,
- };
- if let Some(tname) = tname {
- if let Some(def_span) = self.lookup_const_span(&tname) {
- let display = Self::display_name(&tname);
- self.errors.push(
- error_at(
- format!("cannot assign to immutable variable `{}`", display),
- target.span(),
- )
- .with_secondary(zz_frontend::diag::SecondaryLabel {
- span: def_span,
- message: "variable defined as immutable here".to_string(),
- })
- .with_note(format!(
- "hint: remove `const` to make `{}` mutable",
- display
- )),
- );
- }
- }
+ self.reject_const_target(target);
let errors_before = self.errors.len();
let tt = self.check_assign_target(target);
let vt = self.check_expr(value);
@@ -490,11 +494,124 @@ impl Checker {
}
Type::Unit
}
+ Stmt::CompoundAssign {
+ target,
+ op,
+ value,
+ span,
+ } => {
+ // `target OP= value` checks exactly like
+ // `target = target OP value`: same const rule, same
+ // target rules, same binary-op rules (check_binary
+ // re-checks both sides, so float promotion, int-only
+ // bitwise, and error messages are identical).
+ self.reject_const_target(target);
+ let errors_before = self.errors.len();
+ let tt = self.check_assign_target(target);
+ let bt = self.check_binary(*op, target, value, *span);
+ // Phase 2.2: same route-table propagation as `=`.
+ match target {
+ Expr::Ident { name, .. } => self.propagate_http_routes(name, value),
+ Expr::Path { parts, .. } => self.propagate_http_routes(&parts.join("."), value),
+ _ => {}
+ }
+ if self.errors.len() == errors_before {
+ if let Err(e) = self.unifier.unify(&bt, &tt) {
+ self.report_mismatch(e, *span);
+ }
+ }
+ Type::Unit
+ }
}
}
/// Type of an assignment target: a variable, a qualified name, or a
/// struct field path.
+ /// Reject assignment to immutable (`const`) variables. The target
+ /// is an `Ident` in plain programs and a `Path` (e.g. `ns.x`) after
+ /// the loader namespaces top-level bindings. Shared by `=` and
+ /// compound assignment so both reject `const` identically.
+ pub(crate) fn reject_const_target(&mut self, target: &Expr) {
+ let tname: Option = match target {
+ Expr::Ident { name, .. } => Some(name.clone()),
+ Expr::Path { parts, .. } => Some(parts.join(".")),
+ _ => None,
+ };
+ if let Some(tname) = tname {
+ if let Some(def_span) = self.lookup_const_span(&tname) {
+ let display = Self::display_name(&tname);
+ self.errors.push(
+ error_at(
+ format!("cannot assign to immutable variable `{}`", display),
+ target.span(),
+ )
+ .with_secondary(zz_frontend::diag::SecondaryLabel {
+ span: def_span,
+ message: "variable defined as immutable here".to_string(),
+ })
+ .with_note(format!(
+ "hint: remove `const` to make `{}` mutable",
+ display
+ )),
+ );
+ }
+ }
+ }
+
+ /// Field read with generic arguments substituted: `Box[int].v` where
+ /// `v: T` yields `int`. Direct fields hit first; otherwise the lookup
+ /// promotes through embedded structs (threading each level's arguments).
+ /// Error reporting (unknown struct/field, did-you-mean) matches the
+ /// historical inline blocks this replaces.
+ pub(crate) fn struct_field_access(
+ &mut self,
+ sname: &str,
+ args: &[Type],
+ name: &str,
+ span: Span,
+ ) -> Type {
+ match self.structs.get(sname).cloned() {
+ Some(_) => match self.direct_field_type(sname, args, name) {
+ Some(ft) => ft,
+ None => match self.resolve_struct_field_generic(sname, args, name) {
+ // Promoted through an embedded struct.
+ Some((_, ft)) => ft,
+ None => {
+ let visible = self.all_visible_fields(sname);
+ let field_names: Vec<&str> = visible.iter().map(|n| n.as_str()).collect();
+ let mut diag =
+ error_at(format!("struct `{sname}` has no field `{name}`"), span);
+ let all = suggest_all(name, &field_names);
+ if let Some((suggestion, _)) = all.first() {
+ diag = diag.with_note(format!("did you mean field `{suggestion}`?"));
+ let field_span = Span::new(span.end - name.len() as u32, span.end);
+ let alts: Vec =
+ all.iter().map(|(s, _)| s.to_string()).collect();
+ let fixit = if all.len() == 1 {
+ FixIt::safe(field_span, suggestion.to_string(), "replace field")
+ } else {
+ FixIt::ambiguous(
+ field_span,
+ suggestion.to_string(),
+ "replace field",
+ alts,
+ )
+ };
+ diag = diag.with_fixit(fixit);
+ }
+ self.errors.push(diag);
+ Type::Unit
+ }
+ },
+ },
+ None => {
+ self.errors
+ .push(error_at(format!("unknown struct `{sname}`"), span));
+ Type::Unit
+ }
+ }
+ }
+
pub(crate) fn check_assign_target(&mut self, target: &Expr) -> Type {
match target {
Expr::Ident { name, span } => self.lookup(name, *span),
@@ -503,56 +620,9 @@ impl Checker {
let ot = self.check_expr(obj);
let ot = self.unifier.resolve(&ot);
match ot {
- Type::Struct(sname) => match self.structs.get(&sname).cloned() {
- Some(sig) => match sig.fields.iter().find(|(n, _)| n == name) {
- Some((_, ft)) => ft.clone(),
- None => match self.resolve_struct_field(&sname, name) {
- // Promoted through an embedded struct.
- Some(ft) => ft,
- None => {
- let visible = self.all_visible_fields(&sname);
- let field_names: Vec<&str> =
- visible.iter().map(|n| n.as_str()).collect();
- let mut diag = error_at(
- format!("struct `{sname}` has no field `{name}`"),
- *span,
- );
- let all = suggest_all(name, &field_names);
- if let Some((suggestion, _)) = all.first() {
- diag = diag.with_note(format!(
- "did you mean field `{suggestion}`?"
- ));
- let field_span =
- Span::new(span.end - name.len() as u32, span.end);
- let alts: Vec =
- all.iter().map(|(s, _)| s.to_string()).collect();
- let fixit = if all.len() == 1 {
- FixIt::safe(
- field_span,
- suggestion.to_string(),
- "replace field",
- )
- } else {
- FixIt::ambiguous(
- field_span,
- suggestion.to_string(),
- "replace field",
- alts,
- )
- };
- diag = diag.with_fixit(fixit);
- }
- self.errors.push(diag);
- Type::Unit
- }
- },
- },
- None => {
- self.errors
- .push(error_at(format!("unknown struct `{sname}`"), *span));
- Type::Unit
- }
- },
+ Type::Struct(sname, args) => {
+ self.struct_field_access(&sname, &args, name, *span)
+ }
Type::Dict(k, v) => {
// Dict field access: req.body returns the value type
if let Err(e) = self.unifier.unify(&Type::Str, &k) {
@@ -589,6 +659,7 @@ impl Checker {
.push(error_at("cannot assign to an index of a string", *span));
Type::Unit
}
+ Type::Tuple(elems) => self.check_tuple_index(&elems, index),
Type::Bytes => {
self.errors
.push(error_at("cannot assign to an index of bytes", *span));
@@ -620,11 +691,87 @@ impl Checker {
}
}
+ /// Element type of a tuple index, shared by reads and writes.
+ /// Tuples index like arrays at runtime (AOT lowers them to arrays;
+ /// the VM stores them as `Tuple`), but the element type depends on
+ /// the position, so only integer literals type-check — negative
+ /// literals count from the end like arrays. Anything else should
+ /// destructure: `(a, b) := t`.
+ pub(crate) fn check_tuple_index(&mut self, elems: &[Type], index: &Expr) -> Type {
+ let pos: Option = match index {
+ Expr::Int { value, .. } if *value >= 0 => Some(*value as usize),
+ // Literal `i64::MIN` (the negation fold) and other negatives
+ // fall through to the out-of-bounds error below.
+ Expr::Int { .. } => None,
+ Expr::Unary { op, expr, .. } if *op == UnOp::Neg => match expr.as_ref() {
+ Expr::Int { value: 0, .. } => Some(0),
+ Expr::Int { value, .. } => elems.len().checked_sub(*value as usize),
+ _ => {
+ self.errors.push(error_at(
+ "tuple index must be an integer literal\n\
+ hint: destructure with `(a, b) := t` for dynamic access",
+ index.span(),
+ ));
+ return Type::Error;
+ }
+ },
+ _ => {
+ self.errors.push(error_at(
+ "tuple index must be an integer literal\n\
+ hint: destructure with `(a, b) := t` for dynamic access",
+ index.span(),
+ ));
+ return Type::Error;
+ }
+ };
+ match pos {
+ Some(i) if i < elems.len() => elems[i].clone(),
+ _ => {
+ self.errors.push(error_at(
+ format!("tuple index out of bounds for length {}", elems.len()),
+ index.span(),
+ ));
+ Type::Error
+ }
+ }
+ }
+
pub(crate) fn check_block(&mut self, block: &Block) -> Type {
self.push_scope();
let mut result = Type::Unit;
+ // Sherlock: code after a diverging statement (`return`/`break`/
+ // `continue`, or an if/match that diverges on every path) never
+ // runs — warn once per statement instead of checking dead code
+ // into confusing cascades.
+ let mut diverged: Option<&'static str> = None;
for stmt in &block.stmts {
+ if let Some(how) = diverged {
+ self.errors.push(warning_at(
+ format!("unreachable code after diverging {how}"),
+ stmt.span(),
+ ));
+ }
result = self.check_stmt(stmt);
+ // A bare `return` types as `unit` (not `Never`), so track
+ // syntactic divergence too — it still never falls through.
+ let syntactic = matches!(
+ stmt,
+ Stmt::Return { .. }
+ | Stmt::Break { .. }
+ | Stmt::Continue { .. }
+ | Stmt::Expr(Expr::Break { .. })
+ | Stmt::Expr(Expr::Continue { .. })
+ );
+ if syntactic || matches!(self.unifier.resolve(&result), Type::Never) {
+ diverged = Some(match stmt {
+ Stmt::Return { .. } => "`return`",
+ Stmt::Break { .. } => "`break`",
+ Stmt::Continue { .. } => "`continue`",
+ Stmt::Expr(Expr::Break { .. }) => "`break`",
+ Stmt::Expr(Expr::Continue { .. }) => "`continue`",
+ _ => "statement",
+ });
+ }
}
self.pop_scope();
result
@@ -651,61 +798,47 @@ impl Checker {
Expr::Str { .. } => Type::Str,
Expr::Bool { .. } => Type::Bool,
Expr::Ident { name, span } => self.lookup(name, *span),
- Expr::Path { parts, span } => self.lookup_path(parts, *span),
+ Expr::Path { parts, span } => {
+ // Unit-variant value (`Token.Eof`, no parens): a path, not
+ // a call. Resolves against the enum table; payload
+ // variants must use call form (`Token.IntLit(1)`).
+ if parts.len() >= 2 {
+ let enum_head = parts[..parts.len() - 1].join(".");
+ let canonical_head = self.canonical_enum_name(&enum_head);
+ if self.enums.contains_key(&canonical_head)
+ && !self.funcs.contains_key(&parts.join("."))
+ && self.lookup_opt(&enum_head).is_none()
+ {
+ let variant = parts.last().cloned().unwrap_or_default();
+ if self
+ .enum_variant_payload(&canonical_head, &variant, *span)
+ .is_some_and(|p| p.is_some())
+ {
+ self.errors.push(error_at(
+ format!(
+ "variant `{canonical_head}.{variant}` holds a value: construct it as `{canonical_head}.{variant}(...)`"
+ ),
+ *span,
+ ));
+ }
+ if canonical_head.contains('.') {
+ self.used_names.insert(canonical_head.clone());
+ }
+ // Generic parameters stay inference variables
+ // (defaulted like `Option` when never constrained).
+ let (gen_vars, _) = self.fresh_enum_vars(&canonical_head);
+ return Type::Enum(canonical_head, gen_vars);
+ }
+ }
+ self.lookup_path(parts, *span)
+ }
Expr::Field { obj, name, span } => {
let ot = self.check_expr(obj);
let ot = self.unifier.resolve(&ot);
match ot {
- Type::Struct(sname) => match self.structs.get(&sname).cloned() {
- Some(sig) => match sig.fields.iter().find(|(n, _)| n == name) {
- Some((_, ft)) => ft.clone(),
- None => match self.resolve_struct_field(&sname, name) {
- // Promoted through an embedded struct.
- Some(ft) => ft,
- None => {
- let visible = self.all_visible_fields(&sname);
- let field_names: Vec<&str> =
- visible.iter().map(|n| n.as_str()).collect();
- let mut diag = error_at(
- format!("struct `{sname}` has no field `{name}`"),
- *span,
- );
- let all = suggest_all(name, &field_names);
- if let Some((suggestion, _)) = all.first() {
- diag = diag.with_note(format!(
- "did you mean field `{suggestion}`?"
- ));
- let field_span =
- Span::new(span.end - name.len() as u32, span.end);
- let alts: Vec =
- all.iter().map(|(s, _)| s.to_string()).collect();
- let fixit = if all.len() == 1 {
- FixIt::safe(
- field_span,
- suggestion.to_string(),
- "replace field",
- )
- } else {
- FixIt::ambiguous(
- field_span,
- suggestion.to_string(),
- "replace field",
- alts,
- )
- };
- diag = diag.with_fixit(fixit);
- }
- self.errors.push(diag);
- Type::Unit
- }
- },
- },
- None => {
- self.errors
- .push(error_at(format!("unknown struct `{sname}`"), *span));
- Type::Unit
- }
- },
+ Type::Struct(sname, args) => {
+ self.struct_field_access(&sname, &args, name, *span)
+ }
Type::Dict(k, v) => {
// Dict field access: req.body returns the value type
if let Err(e) = self.unifier.unify(&Type::Str, &k) {
@@ -802,16 +935,33 @@ impl Checker {
// `[name]`, promoted (flattened) fields to their embedded
// prefix + `[name]` (e.g. `id` in `User{id: 1, ...}` maps to
// `[Base, id]`).
+ //
+ // Generic parameters instantiate to fresh variables, filled
+ // in by unifying each value with its (substituted) field
+ // type — so `Box{ v: 1 }` infers `Box[int]`, exactly like a
+ // generic function call infers its type arguments.
+ let gen_vars: Vec = sig
+ .generics
+ .iter()
+ .map(|_| self.unifier.fresh_var())
+ .collect();
+ let gen_map: std::collections::HashMap = sig
+ .generics
+ .iter()
+ .cloned()
+ .zip(gen_vars.iter().cloned())
+ .collect();
let mut given_paths: Vec> = Vec::new();
for (fname, fval) in fields {
if let Some((_, ft)) = sig.fields.iter().find(|(n, _)| n == fname) {
let vt = self.check_expr(fval);
- if let Err(e) = self.unifier.unify(&vt, ft) {
+ let exp = crate::checker::inference::subst(ft, &gen_map);
+ if let Err(e) = self.unifier.unify(&vt, &exp) {
self.report_mismatch(e, fval.span());
}
given_paths.push(vec![fname.clone()]);
} else if let Some((prefix, pft)) =
- self.resolve_struct_field_path(&cname, fname)
+ self.resolve_struct_field_generic(&cname, &gen_vars, fname)
{
if prefix.is_empty() {
// Unreachable: direct fields are handled above.
@@ -861,7 +1011,13 @@ impl Checker {
*span,
));
}
- Type::Struct(cname)
+ Type::Struct(
+ cname,
+ gen_vars
+ .iter()
+ .map(|v| self.unifier.resolve_deep(v))
+ .collect(),
+ )
}
Expr::Index { obj, index, span } => {
let ot = self.check_expr(obj);
@@ -886,6 +1042,7 @@ impl Checker {
self.ensure_int(it, index.span());
Type::Str
}
+ Type::Tuple(elems) => self.check_tuple_index(&elems, index),
Type::Var(_) => {
self.errors.push(error_at(
"cannot index a value whose type could not be inferred",
@@ -1195,6 +1352,23 @@ impl Checker {
Type::Bool
}
},
+ UnOp::BitNot => match t {
+ Type::Int => Type::Int,
+ Type::Var(id) => {
+ self.unifier.bind(id, Type::Int);
+ Type::Int
+ }
+ other => {
+ self.errors.push(error_at(
+ format!(
+ "bitwise `~` requires an `int` operand, found `{other}`\n\
+ hint: use `!` for boolean negation"
+ ),
+ span,
+ ));
+ Type::Error
+ }
+ },
UnOp::Pos | UnOp::Neg => match t {
Type::Int => Type::Int,
Type::Float => Type::Float,
@@ -1345,6 +1519,62 @@ impl Checker {
BinOp::Add | BinOp::Sub | BinOp::Mul | BinOp::Div | BinOp::Rem | BinOp::Pow => {
self.check_arith(op, left, right, span)
}
+ BinOp::BitAnd | BinOp::BitOr | BinOp::BitXor | BinOp::Shl | BinOp::Shr => {
+ self.check_bitwise(op, left, right, span)
+ }
+ }
+ }
+
+ /// Bitwise operators are strictly `(int, int) -> int`. Unlike
+ /// [`Self::check_arith`] there is no float promotion, no string
+ /// overload, and no generic `Num` path — a float bit-pattern op is
+ /// almost always a bug, so it is a hard error with a cast hint.
+ pub(crate) fn check_bitwise(
+ &mut self,
+ op: BinOp,
+ left: &Expr,
+ right: &Expr,
+ span: Span,
+ ) -> Type {
+ let lt = self.check_expr(left);
+ let lt = self.unifier.resolve(<);
+ let rt = self.check_expr(right);
+ let rt = self.unifier.resolve(&rt);
+ match (<, &rt) {
+ (Type::Int, Type::Int) => Type::Int,
+ // Inference variables default to int (bitwise pins them).
+ (Type::Var(_), Type::Int) => {
+ self.unifier.bind_var(<, Type::Int);
+ Type::Int
+ }
+ (Type::Int, Type::Var(_)) => {
+ self.unifier.bind_var(&rt, Type::Int);
+ Type::Int
+ }
+ (Type::Var(_), Type::Var(_)) => {
+ self.unifier.bind_var(<, Type::Int);
+ self.unifier.bind_var(&rt, Type::Int);
+ Type::Int
+ }
+ _ => {
+ // `Error` (earlier failure) and `Never` (divergent,
+ // unreachable operand) suppress cascading errors —
+ // same convention as `check_arith`.
+ if !matches!(
+ (<, &rt),
+ (Type::Error, _) | (_, Type::Error) | (Type::Never, _) | (_, Type::Never)
+ ) {
+ self.errors.push(error_at(
+ format!(
+ "bitwise `{}` requires `int` operands, found `{lt}` and `{rt}`\n\
+ hint: use `int(x)` to cast, `&&`/`||` for boolean logic",
+ op.symbol()
+ ),
+ span,
+ ));
+ }
+ Type::Error
+ }
}
}
@@ -1355,7 +1585,26 @@ impl Checker {
let rt = self.check_expr(right);
let rt = self.unifier.resolve(&rt);
match (<, &rt) {
- (Type::Int, Type::Int) => Type::Int,
+ (Type::Int, Type::Int) => {
+ // Sherlock: a literal zero divisor always traps at runtime —
+ // fail at check time with the exact spot instead (#250-area).
+ // Float division is excluded (`1.0 / 0.0` is `inf`, not an error).
+ if matches!(op, BinOp::Div | BinOp::Rem) {
+ if let Expr::Int { value: 0, .. } = right {
+ let what = if op == BinOp::Div {
+ "division"
+ } else {
+ "remainder"
+ };
+ self.errors.push(error_at(
+ format!("integer {what} by zero (divisor is literal `0`)"),
+ right.span(),
+ ));
+ return Type::Error;
+ }
+ }
+ Type::Int
+ }
(Type::Str, Type::Str) if op == BinOp::Add => Type::Str,
(Type::Int, Type::Float) | (Type::Float, Type::Int) | (Type::Float, Type::Float) => {
Type::Float
@@ -1422,16 +1671,95 @@ impl Checker {
(&a, &b),
(Type::Error, _) | (_, Type::Error) | (Type::Never, _) | (_, Type::Never)
) {
- self.errors.push(error_at(
+ let mut diag = error_at(
format!("cannot apply `{}` to `{}` and `{}`", op.symbol(), a, b),
span,
- ));
+ );
+ // Suggest the conversion matching the other operand (#247).
+ let conv = match (&a, &b) {
+ (Type::Str, Type::Int) | (Type::Int, Type::Str) => Some("str"),
+ (Type::Str, Type::Float) | (Type::Float, Type::Str) => Some("str"),
+ (Type::Str, Type::Bool) | (Type::Bool, Type::Str) => Some("str"),
+ (Type::Int, Type::Float) | (Type::Float, Type::Int) => Some("float"),
+ _ => None,
+ };
+ if let Some(f) = conv {
+ diag = diag
+ .with_note(format!("use {f}(x) to convert, or \"{{x}}\"-format it"));
+ }
+ self.errors.push(diag);
}
Type::Error
}
}
}
+ /// True when a `head.method(args)` call must be read as a method call
+ /// even though `head.method` also names a seeded free function: the
+ /// head is a genuine local value, the direct reading is already
+ /// impossible (fewer args than its minimum), and the method reading
+ /// fits with a receiver type matching the first parameter. Because
+ /// diversion requires the direct reading to fail, previously-passing
+ /// programs are untouched by construction.
+ ///
+ /// Motivating case: `db.exec(sql)` with a *local* `db` must not match
+ /// the seeded `db.exec` free function at full arity (which rejects
+ /// the receiver-implicit form); a top-level `db` instead resolves
+ /// through the module-namespace path and is unaffected, as are all
+ /// qualified module calls (their heads never live in value scope).
+ pub(crate) fn method_shadow_call(
+ &mut self,
+ callee: &Expr,
+ args: &[Expr],
+ named: &[(String, Expr)],
+ ) -> bool {
+ let Expr::Path { parts, .. } = callee else {
+ return false;
+ };
+ if parts.len() != 2 {
+ return false;
+ }
+ let Some(sig) = self.funcs.get(&parts.join(".")).cloned() else {
+ return false;
+ };
+ // The head must be a real local binding — module namespaces never
+ // live in value scope. Walk scopes directly: `lookup_opt` would
+ // also match the `joined` function entry itself.
+ if !self.env.iter().rev().any(|s| s.contains_key(&parts[0])) {
+ return false;
+ }
+ if sig.params.is_empty() {
+ return false;
+ }
+ let provided = args.len() + named.len();
+ let total = sig.params.len();
+ let direct_min = total - sig.has_default.iter().filter(|&&d| d).count();
+ // Divert only when the direct reading already fails...
+ if provided >= direct_min {
+ return false;
+ }
+ // ...and the method reading fits: within the non-receiver arity
+ // window, with a receiver type matching the first parameter.
+ // Compared structurally (no unification): binding inference vars
+ // here could leak across the two readings.
+ let method_total = total - 1;
+ if provided > method_total {
+ return false;
+ }
+ let method_min = method_total - sig.has_default.iter().skip(1).filter(|&&d| d).count();
+ if provided < method_min {
+ return false;
+ }
+ let recv_t = self
+ .env
+ .iter()
+ .rev()
+ .find_map(|s| s.get(&parts[0]).cloned())
+ .map(|t| self.unifier.resolve(&t));
+ let first_t = self.unifier.resolve(&sig.params[0].1);
+ recv_t.is_some_and(|r| r == first_t)
+ }
+
pub(crate) fn check_call(
&mut self,
callee: &Expr,
@@ -1533,7 +1861,7 @@ impl Checker {
Type::Opaque(tag) => {
sig = self.funcs.get(&format!("{tag}.{method}")).cloned()
}
- Type::Struct(sname) => {
+ Type::Struct(sname, _) => {
// Try TypeName.method (impl block methods)
sig = self.funcs.get(&format!("{sname}.{method}")).cloned();
if sig.is_none() {
@@ -1543,6 +1871,16 @@ impl Checker {
}
}
}
+ // Enum values erase to `Object`s, so `impl Enum`
+ // methods dispatch exactly like struct methods.
+ Type::Enum(ename, _) => {
+ sig = self.funcs.get(&format!("{ename}.{method}")).cloned();
+ if sig.is_none() {
+ if let Some((ns, _)) = ename.rsplit_once('.') {
+ sig = self.funcs.get(&format!("{ns}.{method}")).cloned();
+ }
+ }
+ }
_ => {}
}
}
@@ -1552,42 +1890,27 @@ impl Checker {
// against the method's receiver below.
let mut promoted_recv: Option = None;
if sig.is_none() {
- if let Type::Struct(sname) = self.unifier.resolve(&recv_t) {
+ if let Type::Struct(sname, sargs) = self.unifier.resolve(&recv_t) {
if let Some((defining, psig)) = self.find_struct_method(&sname, &method) {
- promoted_recv = Some(Type::Struct(defining));
+ // The runtime passes the embedded value itself
+ // as the receiver (with its own arguments).
+ promoted_recv = self
+ .promoted_method_receiver(&sname, &sargs, &defining)
+ .or_else(|| Some(Type::Struct(defining, Vec::new())));
sig = Some(psig);
}
}
}
if let Some(sig) = sig {
- let (ps, ret, subs) = self.instantiate(&sig);
- if ps.is_empty() {
- self.errors.push(error_at(
- format!("method `{method}` takes no arguments"),
- span,
- ));
- return Type::Unit;
- }
- if let Some(promoted) = promoted_recv {
- if let Err(e) = self.unifier.unify(&promoted, &ps[0]) {
- self.report_mismatch(e, span);
- }
- } else if let Err(e) = self.unifier.unify(&recv_t, &ps[0]) {
- self.report_mismatch(e, span);
- }
- self.check_args_against(
- &sig.params[1..]
- .iter()
- .map(|(n, _)| n.clone())
- .collect::>(),
- &ps[1..],
- &[],
+ return self.check_method_call(&MethodCall {
+ sig: &sig,
+ recv_t: &recv_t,
+ promoted_recv,
+ method: &method,
args,
named,
span,
- );
- self.validate_bounds(&sig, &subs, span);
- return ret;
+ });
}
None
}
@@ -1596,7 +1919,7 @@ impl Checker {
if let Some(name) = &direct_name {
// Math constants are values, not functions: `math.PI()` is
// always an error — use bare `math.PI`.
- if Self::is_math_const(name) && self.funcs.contains_key(name) {
+ if self.is_math_const(name) && self.funcs.contains_key(name) {
self.used_names.insert(name.clone());
// Still check the args so nested errors inside them surface.
for arg in args {
@@ -1673,7 +1996,15 @@ impl Checker {
let (ps, ret, subs) = self.instantiate(&sig);
let pnames: Vec =
sig.params.iter().map(|(n, _)| n.clone()).collect();
- self.check_args_against(&pnames, &ps, &sig.has_default, args, named, span);
+ self.check_args_against(
+ Some(Self::short_name(name)),
+ &pnames,
+ &ps,
+ &sig.has_default,
+ args,
+ named,
+ span,
+ );
// Explicit-receiver forms (`pg.query(db, sql)`,
// `sqlz.query(db, sql)`) carry the SQL second;
// the bare method-namespace form carries it first.
@@ -1707,100 +2038,112 @@ impl Checker {
// `check_call`, so a bare `route`/`param` reaching this point
// is user code (e.g. a `@route` decorator) — linting it would
// false-positive (see `syntax/decorators.zz`).
- if let Some(sig) = self.funcs.get(name).cloned() {
- self.used_names.insert(name.clone());
- let (ps, ret, subs) = self.instantiate(&sig);
- if name == "input" {
- if args.len() + named.len() > 1 {
- self.errors.push(error_at(
- format!(
- "expected 0 or 1 arguments, found {}",
- args.len() + named.len()
- ),
- span,
- ));
- } else if args.len() + named.len() == 1 {
- let arg_expr = if !args.is_empty() {
- &args[0]
- } else {
- &named[0].1
- };
- let at = self.check_expr(arg_expr);
- if let Err(e) = self.unifier.unify(&at, &Type::Str) {
- self.report_mismatch(e, arg_expr.span());
+ if !self.method_shadow_call(callee, args, named) {
+ if let Some(sig) = self.funcs.get(name).cloned() {
+ self.used_names.insert(name.clone());
+ let (ps, ret, subs) = self.instantiate(&sig);
+ if name == "input" {
+ if args.len() + named.len() > 1 {
+ self.errors.push(error_at(
+ format!(
+ "expected 0 or 1 arguments, found {}",
+ args.len() + named.len()
+ ),
+ span,
+ ));
+ } else if args.len() + named.len() == 1 {
+ let arg_expr = if !args.is_empty() {
+ &args[0]
+ } else {
+ &named[0].1
+ };
+ let at = self.check_expr(arg_expr);
+ if let Err(e) = self.unifier.unify(&at, &Type::Str) {
+ self.report_mismatch(e, arg_expr.span());
+ }
}
+ return ret;
}
- return ret;
- }
- if name == "range" {
- let total = args.len() + named.len();
- if total == 0 || total > 3 {
- self.errors.push(error_at(
- format!("range expects 1, 2, or 3 arguments, found {total}"),
- span,
- ));
- } else {
- for arg in args {
- let at = self.check_expr(arg);
- if let Err(e) = self.unifier.unify(&at, &Type::Int) {
- self.report_mismatch(e, arg.span());
+ if name == "range" {
+ let total = args.len() + named.len();
+ if total == 0 || total > 3 {
+ self.errors.push(error_at(
+ format!("range expects 1, 2, or 3 arguments, found {total}"),
+ span,
+ ));
+ } else {
+ for arg in args {
+ let at = self.check_expr(arg);
+ if let Err(e) = self.unifier.unify(&at, &Type::Int) {
+ self.report_mismatch(e, arg.span());
+ }
}
- }
- for (_, val) in named {
- let at = self.check_expr(val);
- if let Err(e) = self.unifier.unify(&at, &Type::Int) {
- self.report_mismatch(e, val.span());
+ for (_, val) in named {
+ let at = self.check_expr(val);
+ if let Err(e) = self.unifier.unify(&at, &Type::Int) {
+ self.report_mismatch(e, val.span());
+ }
}
}
+ return ret;
}
- return ret;
- }
- let pnames: Vec = sig.params.iter().map(|(n, _)| n.clone()).collect();
- self.check_args_against(&pnames, &ps, &sig.has_default, args, named, span);
- self.validate_bounds(&sig, &subs, span);
- // A bare function value as a print argument is always a
- // missing `()` (`println(env.os)` would print the function
- // itself instead of calling it). Catch it here — with the
- // name attached — rather than letting each engine render
- // `` / `` / empty output.
- if name == "print" || name == "println" {
- if let Some(first) = args.first() {
- // Resolve silently (lookup_opt, never check_expr:
- // the argument was already checked above and a
- // second pass would duplicate diagnostics).
- let (arg_t, fname) = match first {
- Expr::Ident { name: n, .. } => (self.lookup_opt(n), Some(n.clone())),
- Expr::Path { parts, .. } => {
- let joined = parts.join(".");
- (self.lookup_opt(&joined), Some(joined))
- }
- _ => (None, None),
- };
- let is_func = matches!(
- arg_t.as_ref().map(|t| self.unifier.resolve(t)),
- Some(Type::Func(_, _))
- ) || matches!(fname.as_deref(), Some(n)
- if self.funcs.contains_key(n) && !Self::is_math_const(n));
- if is_func {
- if let Some(fname) = fname {
- let mut diag = error_at(
- format!(
+ let pnames: Vec = sig.params.iter().map(|(n, _)| n.clone()).collect();
+ self.check_args_against(
+ Some(Self::short_name(name)),
+ &pnames,
+ &ps,
+ &sig.has_default,
+ args,
+ named,
+ span,
+ );
+ self.validate_bounds(&sig, &subs, span);
+ // A bare function value as a print argument is always a
+ // missing `()` (`println(env.os)` would print the function
+ // itself instead of calling it). Catch it here — with the
+ // name attached — rather than letting each engine render
+ // `` / `` / empty output.
+ if name == "print" || name == "println" {
+ if let Some(first) = args.first() {
+ // Resolve silently (lookup_opt, never check_expr:
+ // the argument was already checked above and a
+ // second pass would duplicate diagnostics).
+ let (arg_t, fname) = match first {
+ Expr::Ident { name: n, .. } => {
+ (self.lookup_opt(n), Some(n.clone()))
+ }
+ Expr::Path { parts, .. } => {
+ let joined = parts.join(".");
+ (self.lookup_opt(&joined), Some(joined))
+ }
+ _ => (None, None),
+ };
+ let is_func = matches!(
+ arg_t.as_ref().map(|t| self.unifier.resolve(t)),
+ Some(Type::Func(_, _))
+ ) || matches!(fname.as_deref(), Some(n)
+ if self.funcs.contains_key(n) && !self.is_math_const(n));
+ if is_func {
+ if let Some(fname) = fname {
+ let mut diag = error_at(
+ format!(
"cannot print function `{fname}`: call it with arguments"
),
- first.span(),
- );
- diag = diag.with_note(format!("did you mean `{fname}()`?"));
- diag = diag.with_fixit(FixIt::safe(
- Span::new(first.span().end, first.span().end),
- "()".to_string(),
- "call function",
- ));
- self.errors.push(diag);
+ first.span(),
+ );
+ diag = diag.with_note(format!("did you mean `{fname}()`?"));
+ diag = diag.with_fixit(FixIt::safe(
+ Span::new(first.span().end, first.span().end),
+ "()".to_string(),
+ "call function",
+ ));
+ self.errors.push(diag);
+ }
}
}
}
+ return ret;
}
- return ret;
}
}
// Method call: `p.dist()` resolves to `dist(p, ...)`.
@@ -1810,54 +2153,180 @@ impl Checker {
// (e.g. module-level closure `ns.f`). If so, treat it as
// a regular call, not a method call.
let joined = parts.join(".");
- if let Some(var_ty) = self.lookup_opt(&joined) {
- self.used_names.insert(joined.clone());
- let callee_t = self.unifier.resolve(&var_ty);
- // If the var is still an unresolved inference var, or is
- // already known to be a Func/Named, treat as a variable
- // call — not a method call on the first path component.
- match &callee_t {
- Type::Func(..) | Type::Named(..) => {
- let pnames: Vec =
- (0..args.len()).map(|i| format!("_{i}")).collect();
- match callee_t {
- Type::Func(ps, ret) => {
- self.check_args_against(&pnames, &ps, &[], args, named, span);
- return *ret;
+ // Enum construction (`Token.IntLit(1)`) reads as a call
+ // but builds a value, not a function invocation. Takes
+ // priority over method dispatch (no receiver exists) but
+ // yields to real functions and locals: an exact `funcs`
+ // entry or a shadowing value keeps its meaning.
+ let enum_head = parts[..parts.len() - 1].join(".");
+ let canonical_head = self.canonical_enum_name(&enum_head);
+ if self.enums.contains_key(&canonical_head)
+ && !self.funcs.contains_key(&joined)
+ && self.lookup_opt(&enum_head).is_none()
+ {
+ let variant = parts.last().cloned().unwrap_or_default();
+ if let Some(t) =
+ self.check_enum_construction(&canonical_head, &variant, args, named, span)
+ {
+ return t;
+ }
+ }
+ // Method on a constructed variant (`Token.Eof.is_eof()`
+ // parses as a 3+-part path): the call arguments split —
+ // the first fills a payload variant, the rest go to the
+ // method (`Token.IntLit(1).add(2)` constructs with `1`,
+ // calls `add` with `2`). Unit variants delegate to the
+ // Field branch with a synthetic receiver.
+ if parts.len() >= 3 {
+ let enum_head2 = parts[..parts.len() - 2].join(".");
+ let canonical_head2 = self.canonical_enum_name(&enum_head2);
+ if self.enums.contains_key(&canonical_head2)
+ && !self.funcs.contains_key(&joined)
+ && self.lookup_opt(&enum_head2).is_none()
+ {
+ let variant2 = parts[parts.len() - 2].clone();
+ let method2 = parts.last().cloned().unwrap_or_default();
+ let _pv = self.enum_variant_payload(&canonical_head2, &variant2, *pspan);
+ match _pv {
+ Some(Some(pty)) => {
+ if args.is_empty() {
+ self.errors.push(error_at(
+ format!(
+ "variant `{canonical_head2}.{variant2}` holds a value: pass it before the method arguments (e.g. `{canonical_head2}.{variant2}(v).{method2}(...)`)"
+ ),
+ span,
+ ));
+ let (gen_vars, _) = self.fresh_enum_vars(&canonical_head2);
+ return Type::Enum(canonical_head2, gen_vars);
+ }
+ // First argument fills the payload; the
+ // rest are the method's. Generic parameters
+ // instantiate fresh, as in construction.
+ let (gen_vars, gen_map) = self.fresh_enum_vars(&canonical_head2);
+ let at = self.check_expr(&args[0]);
+ let exp = super::inference::subst(&pty, &gen_map);
+ if let Err(e) = self.unifier.unify(&at, &exp) {
+ self.report_mismatch(e, args[0].span());
+ }
+ let recv_args: Vec = gen_vars
+ .iter()
+ .map(|v| self.unifier.resolve_deep(v))
+ .collect();
+ let recv_t = Type::Enum(canonical_head2.clone(), recv_args);
+ let mut sig = self
+ .funcs
+ .get(&format!("{canonical_head2}.{method2}"))
+ .cloned();
+ if sig.is_none() {
+ if let Some((ns, _)) = canonical_head2.rsplit_once('.') {
+ sig = self.funcs.get(&format!("{ns}.{method2}")).cloned();
+ }
}
- Type::Named(ref nname) => {
- if let Some(sig) = self.funcs.get(nname).cloned() {
- let (ps, ret, subs) = self.instantiate(&sig);
- let pnames: Vec =
- sig.params.iter().map(|(n, _)| n.clone()).collect();
+ if let Some(sig) = sig {
+ self.used_names
+ .insert(format!("{canonical_head2}.{method2}"));
+ return self.check_method_call(&MethodCall {
+ sig: &sig,
+ recv_t: &recv_t,
+ promoted_recv: None,
+ method: &method2,
+ args: &args[1..],
+ named,
+ span,
+ });
+ }
+ self.errors.push(error_at(
+ format!(
+ "unknown method `{method2}` for enum `{canonical_head2}`"
+ ),
+ span,
+ ));
+ let (gen_vars, _) = self.fresh_enum_vars(&canonical_head2);
+ return Type::Enum(canonical_head2, gen_vars);
+ }
+ Some(None) => {
+ let recv = Expr::Path {
+ parts: parts[..parts.len() - 1].to_vec(),
+ span: *pspan,
+ };
+ let field_callee = Expr::Field {
+ obj: Box::new(recv),
+ name: parts.last().cloned().unwrap_or_default(),
+ span: *pspan,
+ };
+ return self.check_call(&field_callee, args, named, span);
+ }
+ // Unknown variant: already reported inside.
+ None => {
+ let (gen_vars, _) = self.fresh_enum_vars(&canonical_head2);
+ return Type::Enum(canonical_head2, gen_vars);
+ }
+ }
+ }
+ }
+ // A `head.method` call on a genuine local value reads as
+ // a method call when the free-function reading is already
+ // impossible (see `method_shadow_call`) — e.g. `db.exec`
+ // on a local `db`, never the seeded free function.
+ let shadowed = self.method_shadow_call(callee, args, named);
+ if !shadowed {
+ if let Some(var_ty) = self.lookup_opt(&joined) {
+ let callee_t = self.unifier.resolve(&var_ty);
+ // If the var is still an unresolved inference var, or is
+ // already known to be a Func/Named, treat as a variable
+ // call — not a method call on the first path component.
+ match &callee_t {
+ Type::Func(..) | Type::Named(..) => {
+ let pnames: Vec =
+ (0..args.len()).map(|i| format!("_{i}")).collect();
+ match callee_t {
+ Type::Func(ps, ret) => {
self.check_args_against(
+ None,
&pnames,
&ps,
- &sig.has_default,
+ &[],
args,
named,
span,
);
- self.validate_bounds(&sig, &subs, span);
- return ret;
+ return *ret;
}
+ Type::Named(ref nname) => {
+ if let Some(sig) = self.funcs.get(nname).cloned() {
+ let (ps, ret, subs) = self.instantiate(&sig);
+ let pnames: Vec =
+ sig.params.iter().map(|(n, _)| n.clone()).collect();
+ self.check_args_against(
+ Some(Self::short_name(nname)),
+ &pnames,
+ &ps,
+ &sig.has_default,
+ args,
+ named,
+ span,
+ );
+ self.validate_bounds(&sig, &subs, span);
+ return ret;
+ }
+ }
+ _ => {}
}
- _ => {}
}
- }
- Type::Var(_) => {
- // Fresh var from recursive closure pre-binding.
- // Build a Func type from the args and unify.
- let arg_types: Vec =
- args.iter().map(|a| self.check_expr(a)).collect();
- let ret_var = self.unifier.fresh_var();
- let func_ty = Type::Func(arg_types, Box::new(ret_var.clone()));
- if let Err(e) = self.unifier.unify(&var_ty, &func_ty) {
- self.report_mismatch(e, span);
+ Type::Var(_) => {
+ // Fresh var from recursive closure pre-binding.
+ // Build a Func type from the args and unify.
+ let arg_types: Vec =
+ args.iter().map(|a| self.check_expr(a)).collect();
+ let ret_var = self.unifier.fresh_var();
+ let func_ty = Type::Func(arg_types, Box::new(ret_var.clone()));
+ if let Err(e) = self.unifier.unify(&var_ty, &func_ty) {
+ self.report_mismatch(e, span);
+ }
+ return self.unifier.resolve(&ret_var);
}
- return self.unifier.resolve(&ret_var);
+ _ => {}
}
- _ => {}
}
}
let method = parts.last().unwrap();
@@ -1921,7 +2390,7 @@ impl Checker {
Type::Opaque(tag) => {
sig = self.funcs.get(&format!("{tag}.{method}")).cloned();
}
- Type::Struct(sname) => {
+ Type::Struct(sname, _) => {
// Try TypeName.method (impl block methods)
sig = self.funcs.get(&format!("{sname}.{method}")).cloned();
if sig.is_none() {
@@ -1931,15 +2400,29 @@ impl Checker {
}
}
}
+ // Enum values erase to `Object`s, so `impl Enum`
+ // methods dispatch exactly like struct methods.
+ Type::Enum(ename, _) => {
+ sig = self.funcs.get(&format!("{ename}.{method}")).cloned();
+ if sig.is_none() {
+ if let Some((ns, _)) = ename.rsplit_once('.') {
+ sig = self.funcs.get(&format!("{ns}.{method}")).cloned();
+ }
+ }
+ }
_ => {}
}
}
// Embedded promotion (see the `Field`-callee branch above).
let mut promoted_recv: Option = None;
if sig.is_none() {
- if let Type::Struct(sname) = self.unifier.resolve(&recv_t) {
+ if let Type::Struct(sname, sargs) = self.unifier.resolve(&recv_t) {
if let Some((defining, psig)) = self.find_struct_method(&sname, method) {
- promoted_recv = Some(Type::Struct(defining));
+ // The runtime passes the embedded value itself
+ // as the receiver (with its own arguments).
+ promoted_recv = self
+ .promoted_method_receiver(&sname, &sargs, &defining)
+ .or_else(|| Some(Type::Struct(defining, Vec::new())));
sig = Some(psig);
}
}
@@ -2027,6 +2510,7 @@ impl Checker {
self.report_mismatch(e, *pspan);
}
self.check_args_against(
+ None,
&sig.params[1..]
.iter()
.map(|(n, _)| n.clone())
@@ -2047,7 +2531,7 @@ impl Checker {
match callee_t {
Type::Func(ps, ret) => {
let pnames: Vec = (0..ps.len()).map(|i| format!("_{i}")).collect();
- self.check_args_against(&pnames, &ps, &[], args, named, span);
+ self.check_args_against(None, &pnames, &ps, &[], args, named, span);
*ret
}
Type::Named(name) => match self.funcs.get(&name).cloned() {
@@ -2055,13 +2539,42 @@ impl Checker {
let (ps, ret, subs) = self.instantiate(&sig);
let param_names: Vec =
sig.params.iter().map(|(n, _)| n.clone()).collect();
- self.check_args_against(¶m_names, &ps, &sig.has_default, args, named, span);
+ self.check_args_against(
+ Some(Self::short_name(&name)),
+ ¶m_names,
+ &ps,
+ &sig.has_default,
+ args,
+ named,
+ span,
+ );
self.validate_bounds(&sig, &subs, span);
ret
}
None => {
- self.errors
- .push(error_at(format!("unknown function `{name}`"), span));
+ // Sherlock: suggest the closest known function so a typo
+ // (`lenght`) points at the fix instead of a dead end.
+ let mut diag = error_at(format!("unknown function `{name}`"), span);
+ let candidates: Vec = self
+ .funcs
+ .keys()
+ .flat_map(|k| {
+ let mut v = vec![k.clone()];
+ if let Some(bare) = k.rsplit('.').next() {
+ if bare != k {
+ v.push(bare.to_string());
+ }
+ }
+ v
+ })
+ .collect();
+ let refs: Vec<&str> = candidates.iter().map(|s| s.as_str()).collect();
+ if let Some((suggestion, _)) = suggest_all(&name, &refs).first() {
+ // Note only: the span covers the whole call, not
+ // just the name, so a replace fix would eat the args.
+ diag = diag.with_note(format!("did you mean `{suggestion}`?"));
+ }
+ self.errors.push(diag);
Type::Unit
}
},
@@ -2090,8 +2603,49 @@ impl Checker {
/// Check that the given positional and named arguments match the parameter
/// types. `has_default` indicates which trailing parameters have defaults;
/// callers may omit those.
+ pub(crate) fn check_method_call(&mut self, call: &MethodCall<'_>) -> Type {
+ let (ps, ret, subs) = self.instantiate(call.sig);
+ if ps.is_empty() {
+ self.errors.push(error_at(
+ format!("method `{}` takes no arguments", call.method),
+ call.span,
+ ));
+ return Type::Unit;
+ }
+ if let Some(promoted) = &call.promoted_recv {
+ if let Err(e) = self.unifier.unify(promoted, &ps[0]) {
+ self.report_mismatch(e, call.span);
+ }
+ } else if let Err(e) = self.unifier.unify(call.recv_t, &ps[0]) {
+ self.report_mismatch(e, call.span);
+ }
+ self.check_args_against(
+ Some(call.method),
+ &call.sig.params[1..]
+ .iter()
+ .map(|(n, _)| n.clone())
+ .collect::>(),
+ &ps[1..],
+ &[],
+ call.args,
+ call.named,
+ call.span,
+ );
+ self.validate_bounds(call.sig, &subs, call.span);
+ ret
+ }
+
+ /// Short display name for call diagnostics: `math.sin` → `sin`.
+ pub(crate) fn short_name(name: &str) -> &str {
+ name.rsplit('.').next().unwrap_or(name)
+ }
+
+ // Eight args is the honest shape here (callee + params + args + span);
+ // a struct would churn every call site for no checking benefit.
+ #[allow(clippy::too_many_arguments)]
pub(crate) fn check_args_against(
&mut self,
+ callee: Option<&str>,
param_names: &[String],
ps: &[Type],
has_default: &[bool],
@@ -2104,13 +2658,42 @@ impl Checker {
let allowed_min = total_params - has_default.iter().filter(|&&d| d).count();
if total_provided < allowed_min || total_provided > total_params {
- self.errors.push(error_at(
- format!(
- "expected {} to {} arguments, found {}",
- allowed_min, total_params, total_provided
- ),
- span,
- ));
+ let sig = param_names
+ .iter()
+ .zip(ps.iter())
+ .map(|(n, t)| format!("{n}: {t}"))
+ .collect::>()
+ .join(", ");
+ let count = if allowed_min == total_params {
+ if total_params == 1 {
+ "takes 1 argument".to_string()
+ } else {
+ format!("takes {total_params} arguments")
+ }
+ } else {
+ format!("takes {allowed_min} to {total_params} arguments")
+ };
+ let head = match callee.filter(|c| !c.is_empty()) {
+ Some(name) => format!("`{name}` {count}"),
+ None => count,
+ };
+ let mut diag = error_at(format!("{head} ({sig}), found {total_provided}"), span);
+ // Name the missing parameters when too few were given. A named
+ // argument covers its parameter wherever it sits, so only
+ // report slots filled by neither position nor name.
+ if total_provided < allowed_min {
+ let missing: Vec = param_names
+ .iter()
+ .zip(ps.iter())
+ .enumerate()
+ .filter(|(i, (n, _))| *i >= args.len() && !named.iter().any(|(an, _)| an == *n))
+ .map(|(_, (n, t))| format!("{n}: {t}"))
+ .collect();
+ if let Some(first) = missing.first() {
+ diag = diag.with_note(format!("missing argument for `{first}`"));
+ }
+ }
+ self.errors.push(diag);
return;
}
@@ -2148,8 +2731,14 @@ impl Checker {
slots[i] = Some(val);
}
None => {
- self.errors
- .push(error_at(format!("unknown parameter `{name}`"), val.span()));
+ // Sherlock: typo'd named argument (`nmae:`) suggests the
+ // real parameter instead of dying with just the name.
+ let mut diag = error_at(format!("unknown parameter `{name}`"), val.span());
+ let refs: Vec<&str> = param_names.iter().map(|s| s.as_str()).collect();
+ if let Some((suggestion, _)) = suggest_all(name, &refs).first() {
+ diag = diag.with_note(format!("did you mean `{suggestion}`?"));
+ }
+ self.errors.push(diag);
return;
}
}
@@ -2409,7 +2998,7 @@ impl Checker {
"`?`/`try` can only be used inside a function returning `Result` or `Option`",
span,
));
- return Type::Unit;
+ return Type::Error;
}
};
match ot {
@@ -2424,10 +3013,15 @@ impl Checker {
*t
}
other => {
- self.errors.push(error_at(
- format!("`?` on `Option` cannot propagate through a function returning `{other}`"),
- span,
- ));
+ self.errors.push(
+ error_at(
+ format!("`?` on `Option` cannot propagate through a function returning `{other}`"),
+ span,
+ )
+ .with_note(format!(
+ "to use `?` here, change the return type to `Option<{t}>`"
+ )),
+ );
*t
}
},
@@ -2488,10 +3082,15 @@ impl Checker {
*t
}
other => {
- self.errors.push(error_at(
- format!("`?` on `Result` cannot propagate through a function returning `{other}`\nhelp: enclosing function must return `Result` to use `try`"),
- span,
- ));
+ self.errors.push(
+ error_at(
+ format!("`?` on `Result` cannot propagate through a function returning `{other}`"),
+ span,
+ )
+ .with_note(format!(
+ "to use `?` here, change the return type to `Result<{t}, {e}>`"
+ )),
+ );
*t
}
},
@@ -2500,14 +3099,16 @@ impl Checker {
"cannot use `?` on a value whose type could not be inferred",
span,
));
- Type::Unit
+ Type::Error
}
other => {
- self.errors.push(error_at(
- format!("cannot use `?` on a value of type `{other}`"),
- span,
- ));
- Type::Unit
+ self.errors.push(
+ error_at(format!("cannot use `?` on a value of type `{other}`"), span)
+ .with_note(format!(
+ "`?` unwraps `Result`/`Option`; `{other}` is neither — remove the `?`"
+ )),
+ );
+ Type::Error
}
}
}
@@ -2716,14 +3317,105 @@ impl Checker {
(Type::Result(_, e), "err") => {
arg.as_ref().map(|p| (p.as_ref().clone(), (**e).clone()))
}
+ (Type::Enum(ename, eargs), vname) => {
+ match self.enum_variant_payload(ename, vname, *span) {
+ Some(Some(pty)) => {
+ // Substitute the scrutinee's arguments for
+ // the enum's parameters (`Box[int]` + `T`
+ // → `int`), exactly like generic struct
+ // field access.
+ let inner = self.subst_enum_payload(ename, eargs, &pty);
+ match arg {
+ Some(p) => Some((p.as_ref().clone(), inner)),
+ None => {
+ self.errors.push(error_at(
+ format!(
+ "`.{vname}` pattern requires an argument (variant `{ename}.{vname}` holds a value)"
+ ),
+ *span,
+ ));
+ None
+ }
+ }
+ }
+ Some(None) => {
+ if arg.is_some() {
+ self.errors.push(error_at(
+ format!(
+ "`.{vname}` pattern takes no argument (variant `{ename}.{vname}` holds no value)"
+ ),
+ *span,
+ ));
+ }
+ None
+ }
+ // Unknown variant: already reported; bind
+ // nothing to suppress cascades.
+ None => None,
+ }
+ }
(Type::Var(_), _) => arg
.as_ref()
.map(|p| (p.as_ref().clone(), self.unifier.fresh_var())),
+ (Type::Error, _) => {
+ // Poisoned scrutinee: bind names as Error silently
+ // so follow-on uses don't cascade (#246).
+ if let Some(p) = arg {
+ self.bind_pattern(p, &Type::Error);
+ }
+ None
+ }
(other, vname) => {
- self.errors.push(error_at(
+ let mut diag = error_at(
format!("pattern `.{vname}` does not match a value of type `{other}`"),
*span,
- ));
+ );
+ // Sherlock hints: point at the right variant family
+ // for the scrutinee type (#247 follow-up).
+ let hint: Option = match (other, vname) {
+ (Type::Option(_), "ok") => {
+ Some("use `.some(x)` for the Option value".to_string())
+ }
+ (Type::Option(_), "err") => {
+ Some("Option has no `.err`; use `.some(x)` / `.none`".to_string())
+ }
+ (Type::Option(_), _) => {
+ Some("Option patterns are `.some(x)` / `.none`".to_string())
+ }
+ (Type::Result(_, _), "some") => {
+ Some("use `.ok(x)` for the Result value".to_string())
+ }
+ (Type::Result(_, _), "none") => Some(
+ "use `.err(e)` for the Result error; `.none` is an Option pattern"
+ .to_string(),
+ ),
+ (Type::Result(_, _), _) => {
+ Some("Result patterns are `.ok(x)` / `.err(e)`".to_string())
+ }
+ (Type::Bool, _) => {
+ Some("use `true` / `false` patterns for `bool`".to_string())
+ }
+ _ => None,
+ };
+ if let Some(h) = hint {
+ diag = diag.with_note(h);
+ }
+ // Mismatch-first help when variant arms meet a plain
+ // scalar scrutinee (user assumed Result/Option) (#247).
+ if matches!(
+ other,
+ Type::Int | Type::Float | Type::Str | Type::Unit | Type::Bool
+ ) {
+ diag = diag.with_note(format!(
+ "match on plain `{other}` needs no `.ok`/`.err` arms"
+ ));
+ }
+ self.errors.push(diag);
+ // Bind the payload names as Error so their uses
+ // don't cascade into `undefined variable` noise (#246).
+ if let Some(p) = arg {
+ self.bind_pattern(p, &Type::Error);
+ }
None
}
};
@@ -2826,6 +3518,11 @@ impl Checker {
arms: &[zz_frontend::ast::MatchArm],
span: Span,
) {
+ // Poisoned scrutinee: the root error is already reported; skip
+ // exhaustiveness noise (#246).
+ if matches!(self.unifier.resolve(st), Type::Error) {
+ return;
+ }
fn pat_is_wildcard(pat: &Pattern) -> bool {
match pat {
Pattern::Wildcard { .. } => true,
@@ -2836,15 +3533,62 @@ impl Checker {
if arms.iter().any(|a| pat_is_wildcard(&a.pat)) {
return;
}
+ // Enum exhaustiveness needs owned names (the signature table
+ // can't lend `&str`s past the borrow), so enums take a separate
+ // path from the static `&str` tables above.
+ if let Type::Enum(ename, _) = st {
+ let needs: Vec = self
+ .enums
+ .get(ename)
+ .map(|s| s.variants.iter().map(|(v, _)| v.clone()).collect())
+ .unwrap_or_default();
+ if needs.is_empty() {
+ // Unknown enum (no registered signature): can't verify,
+ // don't cascade.
+ return;
+ }
+ let mut have: Vec = Vec::new();
+ for a in arms {
+ pat_tags(&a.pat, &mut have);
+ }
+ let missing: Vec<&String> = needs.iter().filter(|n| !have.contains(n)).collect();
+ if !missing.is_empty() {
+ let missing = missing
+ .iter()
+ .map(|m| format!("`.{m}`"))
+ .collect::>()
+ .join(" or ");
+ self.errors.push(error_at(
+ format!("non-exhaustive match: missing {missing} (or add a `_` arm)"),
+ span,
+ ));
+ }
+ return;
+ }
let needs: Option> = match st {
Type::Option(_) => Some(vec!["some", "none"]),
Type::Result(_, _) => Some(vec!["ok", "err"]),
Type::Bool => Some(vec!["true", "false"]),
Type::Int | Type::Float | Type::Str | Type::Unit => {
- self.errors.push(error_at(
- format!("match on `{st}` requires a `_` wildcard arm"),
- span,
- ));
+ // Mismatch-first: variant arms on a plain scalar get their
+ // mismatch errors from bind_pattern; skip the wildcard noise
+ // here so the real error leads (#247).
+ let has_variant = arms.iter().any(|a| {
+ fn has_variant_pat(pat: &Pattern) -> bool {
+ match pat {
+ Pattern::Variant { .. } => true,
+ Pattern::Or { pats, .. } => pats.iter().any(has_variant_pat),
+ _ => false,
+ }
+ }
+ has_variant_pat(&a.pat)
+ });
+ if !has_variant {
+ self.errors.push(error_at(
+ format!("match on `{st}` requires a `_` wildcard arm"),
+ span,
+ ));
+ }
return;
}
_ => return,
diff --git a/crates/zz_checker/src/lib.rs b/crates/zz_checker/src/lib.rs
index a6ad3b1d..9f43699e 100644
--- a/crates/zz_checker/src/lib.rs
+++ b/crates/zz_checker/src/lib.rs
@@ -7,9 +7,10 @@ pub mod checker;
pub mod type_;
pub mod unify;
+pub use checker::inference::subst as subst_type;
pub use checker::{
- check_program, check_program_typed, check_program_with_consts, CheckResult, ConvertImpl,
- FuncSig, SpanKey, StructSig, TOP_SCOPE,
+ check_program, check_program_typed, check_program_with_consts, AliasSig, CheckResult,
+ ConvertImpl, EnumSig, FuncSig, SpanKey, StructSig, TOP_SCOPE,
};
pub use type_::Type;
pub use unify::{Unifier, UnifyError};
diff --git a/crates/zz_checker/src/type_.rs b/crates/zz_checker/src/type_.rs
index 6ee27ba7..ceeaa0fd 100644
--- a/crates/zz_checker/src/type_.rs
+++ b/crates/zz_checker/src/type_.rs
@@ -6,7 +6,7 @@
use std::fmt;
-#[derive(Debug, Clone, PartialEq)]
+#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]
pub enum Type {
Int,
Float,
@@ -59,7 +59,16 @@ pub enum Type {
/// Task join handle (produced by `spawn`).
TaskJoin,
/// A named struct type: `Point` from `struct Point { ... }`.
- Struct(String),
+ /// Generic instantiations carry their arguments
+ /// (`Box[int]` from `struct Box[T]`); non-generic structs use `[]`.
+ /// Arguments are erased at runtime (values only store the name).
+ Struct(String, Vec),
+ /// A user enum: `Token` from `enum Token { ... }`, `Box[int]` from
+ /// `enum Box[T] { ... }`. Generic instantiations carry their
+ /// arguments (parameters as `Type::Named` in signatures, substituted
+ /// at construction); non-generic enums use `[]`. Arguments are
+ /// erased at runtime (values only store `Enum.Variant` names).
+ Enum(String, Vec),
/// `a..b` — an integer range (used by `for` loops).
Range(Box),
/// Inference variable.
@@ -146,8 +155,35 @@ impl fmt::Display for Type {
Type::Opaque(tag) => write!(f, "{tag}"),
Type::Chan => write!(f, "chan"),
Type::TaskJoin => write!(f, "task.join"),
- Type::Struct(n) => write!(f, "{n}"),
+ Type::Struct(n, args) => {
+ write!(f, "{n}")?;
+ if !args.is_empty() {
+ write!(f, "[")?;
+ for (i, a) in args.iter().enumerate() {
+ if i > 0 {
+ write!(f, ", ")?;
+ }
+ write!(f, "{a}")?;
+ }
+ write!(f, "]")?;
+ }
+ Ok(())
+ }
Type::Range(t) => write!(f, "{t}.."),
+ Type::Enum(n, args) => {
+ write!(f, "{n}")?;
+ if !args.is_empty() {
+ write!(f, "[")?;
+ for (i, a) in args.iter().enumerate() {
+ if i > 0 {
+ write!(f, ", ")?;
+ }
+ write!(f, "{a}")?;
+ }
+ write!(f, "]")?;
+ }
+ Ok(())
+ }
Type::Var(_) => write!(f, "_"),
Type::Named(n) => write!(f, "{n}"),
Type::Error => write!(f, ""),
diff --git a/crates/zz_checker/src/unify.rs b/crates/zz_checker/src/unify.rs
index ce1bad88..3af47af3 100644
--- a/crates/zz_checker/src/unify.rs
+++ b/crates/zz_checker/src/unify.rs
@@ -34,6 +34,18 @@ impl Unifier {
Type::Var(id)
}
+ /// Ensure future `fresh_var` ids never collide with variables imported
+ /// from already-checked modules. Seed signatures may carry `Var(id)`
+ /// ids allocated by a previous checker's unifier; without this offset
+ /// the new checker would reuse the same ids for unrelated locals and
+ /// unify them together (e.g. an imported `-> unit` ret var colliding
+ /// with an empty `[]` element var, mis-typing both as `str`).
+ pub fn reserve_vars_above(&mut self, next_free: u32) {
+ if self.next_var < next_free {
+ self.next_var = next_free;
+ }
+ }
+
/// Directly bind a variable to a type (no occurs check — use when the
/// type cannot contain the variable).
pub fn bind(&mut self, id: u32, ty: Type) {
@@ -119,8 +131,23 @@ impl Unifier {
| (Type::Never, _)
| (_, Type::Never) => true,
(Type::Named(x), Type::Named(y)) => x == y,
- (Type::Struct(x), Type::Struct(y)) => x == y,
+ (Type::Struct(x, xa), Type::Struct(y, ya)) => {
+ x == y
+ && xa.len() == ya.len()
+ && xa
+ .iter()
+ .zip(ya.iter())
+ .all(|(x, y)| self.eq_resolved(x, y))
+ }
(Type::Opaque(x), Type::Opaque(y)) => x == y,
+ (Type::Enum(x, xa), Type::Enum(y, ya)) => {
+ x == y
+ && xa.len() == ya.len()
+ && xa
+ .iter()
+ .zip(ya.iter())
+ .all(|(x, y)| self.eq_resolved(x, y))
+ }
(Type::Tuple(xs), Type::Tuple(ys)) => {
xs.len() == ys.len()
&& xs
@@ -186,6 +213,12 @@ impl Unifier {
Box::new(self.resolve_deep(&v)),
),
Type::Union(ts) => Type::Union(ts.iter().map(|x| self.resolve_deep(x)).collect()),
+ Type::Struct(n, args) => {
+ Type::Struct(n, args.iter().map(|x| self.resolve_deep(x)).collect())
+ }
+ Type::Enum(n, args) => {
+ Type::Enum(n, args.iter().map(|x| self.resolve_deep(x)).collect())
+ }
Type::Range(t) => Type::Range(Box::new(self.resolve_deep(&t))),
Type::Ptr { mutable, inner } => Type::Ptr {
mutable,
@@ -316,7 +349,32 @@ impl Unifier {
// surviving arm instead (join(Never, T) = T).
(Type::Never, _) | (_, Type::Never) => Ok(()),
(Type::Named(a), Type::Named(b)) if a == b => Ok(()),
- (Type::Struct(a), Type::Struct(b)) if a == b => Ok(()),
+ (Type::Enum(a, aa), Type::Enum(b, bb)) if a == b => {
+ if aa.len() != bb.len() {
+ return Err(UnifyError {
+ left: a.to_string(),
+ right: b.to_string(),
+ message: "type argument arity mismatch".into(),
+ });
+ }
+ for (x, y) in aa.iter().zip(bb.iter()) {
+ self.unify_inner(x, y, journal)?;
+ }
+ Ok(())
+ }
+ (Type::Struct(a, aa), Type::Struct(b, bb)) if a == b => {
+ if aa.len() != bb.len() {
+ return Err(UnifyError {
+ left: a.to_string(),
+ right: b.to_string(),
+ message: "type argument arity mismatch".into(),
+ });
+ }
+ for (x, y) in aa.iter().zip(bb.iter()) {
+ self.unify_inner(x, y, journal)?;
+ }
+ Ok(())
+ }
// Opaque handles unify only within the same module tag.
(Type::Opaque(a), Type::Opaque(b)) if a == b => Ok(()),
(Type::Range(x), Type::Range(y)) => self.unify_inner(x, y, journal),
@@ -478,6 +536,8 @@ impl Unifier {
Type::Array(x) => self.occurs(id, x),
Type::Dict(k, v) => self.occurs(id, k) || self.occurs(id, v),
Type::Union(ts) => ts.iter().any(|x| self.occurs(id, x)),
+ Type::Struct(_, args) => args.iter().any(|x| self.occurs(id, x)),
+ Type::Enum(_, args) => args.iter().any(|x| self.occurs(id, x)),
Type::Range(x) => self.occurs(id, x),
Type::Ptr { inner, .. } => self.occurs(id, inner),
_ => false,
diff --git a/crates/zz_checker/tests/common/mod.rs b/crates/zz_checker/tests/common/mod.rs
index 9689c628..97512b18 100644
--- a/crates/zz_checker/tests/common/mod.rs
+++ b/crates/zz_checker/tests/common/mod.rs
@@ -16,6 +16,8 @@ pub fn check_src(src: &str) -> CheckResult {
HashMap::new(),
HashMap::new(),
HashMap::new(),
+ HashMap::new(),
+ HashMap::new(),
)
}
@@ -51,7 +53,14 @@ pub fn check_src_with_funcs(src: &str, funcs: HashMap) -> Check
"parse errors: {:?}",
parsed.errors
);
- check_program(&parsed.program, HashMap::new(), funcs, HashMap::new())
+ check_program(
+ &parsed.program,
+ HashMap::new(),
+ funcs,
+ HashMap::new(),
+ HashMap::new(),
+ HashMap::new(),
+ )
}
/// Check with seeded functions and structs (e.g. a namespaced struct
@@ -67,5 +76,12 @@ pub fn check_src_with_funcs_and_structs(
"parse errors: {:?}",
parsed.errors
);
- check_program(&parsed.program, HashMap::new(), funcs, structs)
+ check_program(
+ &parsed.program,
+ HashMap::new(),
+ funcs,
+ structs,
+ HashMap::new(),
+ HashMap::new(),
+ )
}
diff --git a/crates/zz_checker/tests/type_check_tests.rs b/crates/zz_checker/tests/type_check_tests.rs
index 968bbd87..35827a66 100644
--- a/crates/zz_checker/tests/type_check_tests.rs
+++ b/crates/zz_checker/tests/type_check_tests.rs
@@ -77,7 +77,7 @@ fn func_wrong_return_type_errors() {
fn wrong_arg_count_errors() {
errors_contain(
"func f(a: int) -> int { a }\nf(1, 2)",
- "expected 1 to 1 arguments, found 2",
+ "takes 1 argument (a: int), found 2",
);
}
@@ -222,7 +222,7 @@ fn recursion_works() {
fn struct_def_and_init() {
let r = check_src("struct Point { x: int, y: int }\np := Point{ x: 1, y: 2 }");
assert!(!has_errors(&r), "errors: {:?}", r.errors);
- assert_eq!(r.bindings["p"], Type::Struct("Point".into()));
+ assert_eq!(r.bindings["p"], Type::Struct("Point".into(), vec![]));
assert_eq!(r.structs["Point"].fields.len(), 2);
}
@@ -356,7 +356,7 @@ fn struct_embedding_flat_init() {
"struct Base { id: int, name: str }\nstruct User { Base, age: int }\nu := User{ id: 1, name: \"Zaid\", age: 19 }",
);
assert!(!has_errors(&r), "errors: {:?}", r.errors);
- assert_eq!(r.bindings["u"], Type::Struct("User".into()));
+ assert_eq!(r.bindings["u"], Type::Struct("User".into(), vec![]));
}
#[test]
@@ -431,7 +431,7 @@ fn struct_duplicate_definition_errors() {
fn struct_type_annotation_resolves() {
let r = check_src("struct Point { x: int, y: int }\np: Point = Point{ x: 1, y: 2 }");
assert!(!has_errors(&r), "errors: {:?}", r.errors);
- assert_eq!(r.bindings["p"], Type::Struct("Point".into()));
+ assert_eq!(r.bindings["p"], Type::Struct("Point".into(), vec![]));
}
// --- for loops ---------------------------------------------------------
@@ -964,7 +964,7 @@ fn method_funcs() -> HashMap {
generics: Vec::new(),
bounds: Vec::new(),
params: vec![
- ("p".to_string(), Type::Struct("Point".to_string())),
+ ("p".to_string(), Type::Struct("Point".to_string(), vec![])),
("scale".to_string(), Type::Int),
],
has_default: vec![],
@@ -1035,7 +1035,10 @@ fn method_call_namespaced_by_struct_type() {
extern_c_symbol: None,
generics: Vec::new(),
bounds: Vec::new(),
- params: vec![("p".to_string(), Type::Struct("shapes.Point".to_string()))],
+ params: vec![(
+ "p".to_string(),
+ Type::Struct("shapes.Point".to_string(), vec![]),
+ )],
has_default: vec![],
ret: Type::Int,
},
@@ -1044,6 +1047,7 @@ fn method_call_namespaced_by_struct_type() {
structs.insert(
"shapes.Point".to_string(),
StructSig {
+ generics: Vec::new(),
fields: vec![("x".to_string(), Type::Int)],
},
);
@@ -1177,7 +1181,14 @@ fn typo_suggestion_variable() {
"parse errors: {:?}",
parsed.errors
);
- let r = check_program(&parsed.program, HashMap::new(), funcs, HashMap::new());
+ let r = check_program(
+ &parsed.program,
+ HashMap::new(),
+ funcs,
+ HashMap::new(),
+ HashMap::new(),
+ HashMap::new(),
+ );
let notes: Vec = r.errors.iter().flat_map(|e| e.notes.clone()).collect();
let msgs: Vec<_> = r.errors.iter().map(|e| e.message.as_str()).collect();
assert!(
@@ -1200,6 +1211,7 @@ fn typo_suggestion_struct_field() {
s.insert(
"Point".to_string(),
StructSig {
+ generics: Vec::new(),
fields: vec![("x".to_string(), Type::Int), ("y".to_string(), Type::Int)],
},
);
@@ -1267,6 +1279,8 @@ fn print_bare_function_is_call_hint() {
HashMap::new(),
print_test_funcs(),
HashMap::new(),
+ HashMap::new(),
+ HashMap::new(),
);
let msgs: Vec<_> = r.errors.iter().map(|e| e.message.as_str()).collect();
assert!(
@@ -1294,6 +1308,8 @@ fn typo_suggestion_dotted_path() {
HashMap::new(),
print_test_funcs(),
HashMap::new(),
+ HashMap::new(),
+ HashMap::new(),
);
let notes: Vec = r.errors.iter().flat_map(|e| e.notes.clone()).collect();
assert!(
@@ -1337,6 +1353,7 @@ fn struct_init_marks_import_used() {
s.insert(
"ml.Circle".to_string(),
StructSig {
+ generics: Vec::new(),
fields: vec![("rad".to_string(), Type::Int)],
},
);
@@ -1813,3 +1830,547 @@ fn unused_warnings_emit_in_source_order() {
"second warning should name `aaa`: {warns:?}"
);
}
+
+#[test]
+fn bitwise_ops_require_int_operands() {
+ for src in [
+ "x := 6 & 3",
+ "x := 6 | 3",
+ "x := 6 ^ 3",
+ "x := 1 << 4",
+ "x := 16 >> 2",
+ "x := ~6",
+ ] {
+ let r = check_src(src);
+ assert!(!has_errors(&r), "{src} errors: {:?}", r.errors);
+ assert_eq!(r.bindings["x"], Type::Int, "{src}");
+ }
+}
+
+#[test]
+fn bitwise_float_operand_errors() {
+ errors_contain("x := 1.5 & 2", "bitwise `&` requires `int` operands");
+ errors_contain("x := 1 | 2.5", "bitwise `|` requires `int` operands");
+ errors_contain("x := 1.0 ^ 2.0", "bitwise `^` requires `int` operands");
+ errors_contain("x := 1.5 << 2", "bitwise `<<` requires `int` operands");
+}
+
+#[test]
+fn bitwise_bool_operand_errors() {
+ errors_contain("x := true & false", "bitwise `&` requires `int` operands");
+ errors_contain("x := true | false", "bitwise `|` requires `int` operands");
+ errors_contain("x := ~true", "bitwise `~` requires an `int` operand");
+}
+
+#[test]
+fn bitwise_result_flows_into_int_context() {
+ let r = check_src("x := (6 & 3) + (1 << 4)\ny: int = x");
+ assert!(!has_errors(&r), "errors: {:?}", r.errors);
+ assert_eq!(r.bindings["x"], Type::Int);
+}
+
+#[test]
+fn tuple_index_reads_element_types() {
+ let r = check_src("t := (1, \"two\", 3.5)\na := t[0]\nb := t[1]\nc := t[2]");
+ assert!(!has_errors(&r), "errors: {:?}", r.errors);
+ assert_eq!(r.bindings["a"], Type::Int);
+ assert_eq!(r.bindings["b"], Type::Str);
+ assert_eq!(r.bindings["c"], Type::Float);
+}
+
+#[test]
+fn tuple_negative_index_counts_from_end() {
+ let r = check_src("t := (1, \"two\")\na := t[-1]");
+ assert!(!has_errors(&r), "errors: {:?}", r.errors);
+ assert_eq!(r.bindings["a"], Type::Str);
+}
+
+#[test]
+fn tuple_index_out_of_bounds_errors() {
+ errors_contain("t := (1, 2)\nx := t[5]", "out of bounds");
+ errors_contain("t := (1, 2)\nx := t[-3]", "out of bounds");
+}
+
+#[test]
+fn tuple_dynamic_index_errors_with_hint() {
+ errors_contain(
+ "t := (1, 2)\ni := 0\nx := t[i]",
+ "must be an integer literal",
+ );
+}
+
+#[test]
+fn tuple_index_write_checks_element_type() {
+ let r = check_src("t := (1, \"two\")\nt[0] = 99");
+ assert!(!has_errors(&r), "errors: {:?}", r.errors);
+ errors_contain("t := (1, \"two\")\nt[0] = \"s\"", "type mismatch");
+}
+
+#[test]
+fn bare_destructure_binds_names() {
+ let r = check_src("a, b := (1, \"two\")");
+ assert!(!has_errors(&r), "errors: {:?}", r.errors);
+ assert_eq!(r.bindings["a"], Type::Int);
+ assert_eq!(r.bindings["b"], Type::Str);
+}
+
+#[test]
+fn compound_assign_valid_combinations() {
+ for src in [
+ "x := 1\nx += 2",
+ "x := 1\nx -= 2",
+ "x := 1\nx *= 2",
+ "x := 8\nx /= 2",
+ "x := 8\nx %= 3",
+ "x := 2\nx **= 10",
+ "x := 1.5\nx += 2.5",
+ "x := 6\nx &= 3",
+ "x := 6\nx |= 3",
+ "x := 1\nx <<= 4",
+ "s := \"a\"\ns += \"b\"",
+ ] {
+ let r = check_src(src);
+ assert!(!has_errors(&r), "{src} errors: {:?}", r.errors);
+ }
+}
+
+#[test]
+fn compound_assign_matches_binary_op_rules() {
+ // Whatever `x = x OP y` rejects, `x OP= y` rejects identically.
+ errors_contain("x := 1\nx += 1.5", "type mismatch");
+ errors_contain("x := 1\nx &= 1.5", "requires `int` operands");
+ errors_contain("x := true\nx |= false", "requires `int` operands");
+ errors_contain("x := \"a\"\nx -= \"b\"", "cannot apply");
+ errors_contain("nope += 1", "undefined variable");
+}
+
+#[test]
+fn compound_assign_rejects_const() {
+ errors_contain("const x = 1\nx += 2", "immutable variable");
+}
+
+#[test]
+fn compound_assign_field_and_index() {
+ let r = check_src("struct P { x: int }\np := P{ x: 1 }\np.x += 2");
+ assert!(!has_errors(&r), "errors: {:?}", r.errors);
+ let r = check_src("a := [1, 2]\na[0] *= 3");
+ assert!(!has_errors(&r), "errors: {:?}", r.errors);
+ errors_contain("a := [1]\na[0] += \"s\"", "cannot apply");
+}
+
+#[test]
+fn generic_struct_infers_from_literal() {
+ let r = check_src("struct Box { v: T }\nb := Box{ v: 42 }");
+ assert!(!has_errors(&r), "errors: {:?}", r.errors);
+ assert_eq!(r.bindings["b"], Type::Struct("Box".into(), vec![Type::Int]));
+ let r = check_src("struct Box { v: T }\ns := Box{ v: \"hi\" }");
+ assert!(!has_errors(&r), "errors: {:?}", r.errors);
+ assert_eq!(r.bindings["s"], Type::Struct("Box".into(), vec![Type::Str]));
+}
+
+#[test]
+fn generic_struct_annotation_checked() {
+ let r = check_src("struct Box { v: T }\nx: Box = Box{ v: 1 }");
+ assert!(!has_errors(&r), "errors: {:?}", r.errors);
+ errors_contain(
+ "struct Box { v: T }\ns: Box = Box{ v: 1 }",
+ "type mismatch",
+ );
+}
+
+#[test]
+fn generic_struct_field_access_substitutes() {
+ let r = check_src("struct Box { v: T }\nb := Box{ v: 42 }\nx: int = b.v");
+ assert!(!has_errors(&r), "errors: {:?}", r.errors);
+ errors_contain(
+ "struct Box { v: T }\nb := Box{ v: 42 }\nx: str = b.v",
+ "type mismatch",
+ );
+}
+
+#[test]
+fn generic_struct_multi_param() {
+ let r = check_src("struct Pair { a: A, b: B }\np := Pair{ a: 1, b: \"s\" }");
+ assert!(!has_errors(&r), "errors: {:?}", r.errors);
+ assert_eq!(
+ r.bindings["p"],
+ Type::Struct("Pair".into(), vec![Type::Int, Type::Str])
+ );
+}
+
+#[test]
+fn generic_struct_nested() {
+ let r = check_src("struct Box { v: T }\nn := Box{ v: Box{ v: 1 } }");
+ assert!(!has_errors(&r), "errors: {:?}", r.errors);
+ assert_eq!(
+ r.bindings["n"],
+ Type::Struct(
+ "Box".into(),
+ vec![Type::Struct("Box".into(), vec![Type::Int])]
+ )
+ );
+}
+
+#[test]
+fn generic_struct_methods() {
+ let r = check_src(
+ "struct Box { v: T }\nimpl Box { func get(self) -> T { self.v } }\nb := Box{ v: 42 }\nx: int = b.get()",
+ );
+ assert!(!has_errors(&r), "errors: {:?}", r.errors);
+ errors_contain(
+ "struct Box { v: T }\nimpl Box { func get(self) -> T { self.v } }\nb := Box{ v: 42 }\nx: str = b.get()",
+ "type mismatch",
+ );
+}
+
+#[test]
+fn generic_struct_arity_errors() {
+ errors_contain(
+ "struct P { x: int }\np: P = P{ x: 1 }",
+ "takes 0 type arguments",
+ );
+ errors_contain(
+ "struct Box { v: T }\nb: Box = Box{ v: 1 }",
+ "takes 1 type argument",
+ );
+ errors_contain(
+ "struct Pair { a: A, b: B }\np: Pair = Pair{ a: 1, b: 2 }",
+ "takes 2 type arguments",
+ );
+}
+
+#[test]
+fn generic_struct_impl_mismatch() {
+ errors_contain(
+ "struct Box { v: T }\nimpl Box { func get(self) -> int { self.v } }",
+ "expected `impl",
+ );
+ errors_contain(
+ "struct Box { v: T }\nstruct Box { w: T }",
+ "duplicate definition of struct",
+ );
+ errors_contain("struct Box { v: T }", "duplicate type parameter");
+}
+
+#[test]
+fn plain_struct_unaffected_by_generics() {
+ let r = check_src("struct Point { x: int, y: int }\np := Point{ x: 1, y: 2 }");
+ assert!(!has_errors(&r), "errors: {:?}", r.errors);
+ assert_eq!(r.bindings["p"], Type::Struct("Point".into(), vec![]));
+}
+
+#[test]
+fn cross_module_inferred_ret_resolves_on_export() {
+ // Regression: `pub func ping()` with no return annotation exported its
+ // return type as a bare `Var(0)`. The importing module's fresh unifier
+ // then reused id 0 for an unrelated local (e.g. an empty `[]` element
+ // var), unifying `unit` with `str` and rejecting a valid program.
+ // Export now deep-resolves (ret becomes `unit`) and the importer
+ // offsets fresh ids above seeded ones.
+ let dep = check_src("pub func ping() {}");
+ assert!(!has_errors(&dep), "errors: {:?}", dep.errors);
+ let ping = dep.pub_funcs.get("ping").expect("pub ping").clone();
+ assert_eq!(ping.ret, Type::Unit, "exported ret must resolve to unit");
+ let mut seed = HashMap::new();
+ seed.insert("n.ping".to_string(), ping);
+ let main = "func main() -> [str] {\n stop := false\n if stop {\n n.ping()\n }\n []\n}";
+ let r = check_src_with_funcs(main, seed);
+ assert!(!has_errors(&r), "errors: {:?}", r.errors);
+}
+
+#[test]
+fn cross_module_nonunit_block_still_rejected() {
+ // A single-branch `if` whose body yields a non-unit value is still an
+ // error — including for cross-module calls. Only the spurious
+ // var-collision failure above was fixed.
+ let dep = check_src("pub func zstr() -> str { \"s\" }");
+ assert!(!has_errors(&dep), "errors: {:?}", dep.errors);
+ let zstr = dep.pub_funcs.get("zstr").expect("pub zstr").clone();
+ let mut seed = HashMap::new();
+ seed.insert("o.zstr".to_string(), zstr);
+ let main = "func main() -> [str] {\n out: [str] = []\n stop := false\n if stop {\n o.zstr()\n }\n out\n}";
+ let r = check_src_with_funcs(main, seed);
+ let errs: Vec = r.errors.iter().map(|e| e.message.clone()).collect();
+ assert!(
+ errs.iter().any(|e| e.contains("type mismatch")),
+ "expected a type-mismatch error, got: {errs:?}"
+ );
+}
+
+fn db_exec_seed() -> HashMap {
+ let mut funcs = HashMap::new();
+ let exec = FuncSig {
+ generics: vec![],
+ bounds: vec![],
+ params: vec![("db".to_string(), Type::Db), ("sql".to_string(), Type::Str)],
+ has_default: vec![false, false],
+ ret: Type::Int,
+ is_extern: false,
+ extern_c_symbol: None,
+ };
+ funcs.insert("sqlz.exec".to_string(), exec.clone());
+ funcs.insert("db.exec".to_string(), exec);
+ funcs.insert(
+ "sqlz.open".to_string(),
+ FuncSig {
+ generics: vec![],
+ bounds: vec![],
+ params: vec![("path".to_string(), Type::Str)],
+ has_default: vec![false],
+ ret: Type::Db,
+ is_extern: false,
+ extern_c_symbol: None,
+ },
+ );
+ funcs.insert(
+ "println".to_string(),
+ FuncSig {
+ generics: vec![],
+ bounds: vec![],
+ params: vec![("v".to_string(), Type::Str)],
+ has_default: vec![false],
+ ret: Type::Unit,
+ is_extern: false,
+ extern_c_symbol: None,
+ },
+ );
+ funcs
+}
+
+#[test]
+fn local_db_method_call_reads_as_method() {
+ // `db.exec(sql)` with a *local* `db` is a method call even though
+ // `db.exec` also names a seeded free function: the free-function
+ // reading (full arity) is already impossible, and the method reading
+ // fits with a matching receiver. A top-level `db` keeps working,
+ // as does the explicit static form.
+ let seed = db_exec_seed();
+ let local = "func main.main() {\n db := sqlz.open(\":memory:\")\n n := db.exec(\"CREATE TABLE t(v INTEGER)\")\n println(\"exec={n}\")\n}";
+ let r = check_src_with_funcs(local, seed.clone());
+ assert!(!has_errors(&r), "errors: {:?}", r.errors);
+ let explicit = "func main.main() {\n db := sqlz.open(\":memory:\")\n n := db.exec(db, \"SELECT 1\")\n println(\"exec={n}\")\n}";
+ let r = check_src_with_funcs(explicit, seed);
+ assert!(!has_errors(&r), "errors: {:?}", r.errors);
+}
+
+#[test]
+fn enum_construction_and_match() {
+ let r = check_src_with_funcs(
+ "enum Token { Eof, IntLit(int) }\nfunc f(t: Token) -> str {\n match t {\n .Eof => \"eof\",\n .IntLit(_v) => \"int\",\n }\n}\nfunc main() {\n t := Token.IntLit(1)\n println(f(t))\n println(f(Token.Eof))\n}\n",
+ print_test_funcs(),
+ );
+ assert!(!has_errors(&r), "errors: {:?}", r.errors);
+}
+
+#[test]
+fn enum_nonexhaustive_reports() {
+ errors_contain(
+ "enum Token { Eof, IntLit(int) }\nfunc f(t: Token) -> str {\n match t {\n .Eof => \"eof\",\n }\n}\n",
+ "non-exhaustive match",
+ );
+}
+
+#[test]
+fn enum_unknown_variant_reports() {
+ errors_contain(
+ "enum Token { Eof }\nfunc main() {\n t := Token.Num\n println(t)\n}\n",
+ "unknown variant `Num`",
+ );
+}
+
+#[test]
+fn enum_payload_arity_reports() {
+ errors_contain(
+ "enum Token { Eof, IntLit(int) }\nfunc main() {\n t := Token.Eof(1)\n println(t)\n}\n",
+ "takes no arguments",
+ );
+ errors_contain(
+ "enum Token { Eof, IntLit(int) }\nfunc main() {\n t: Token = Token.IntLit\n println(t)\n}\n",
+ "holds a value",
+ );
+}
+
+#[test]
+fn enum_payload_type_mismatch_reports() {
+ errors_contain(
+ "enum Token { IntLit(int) }\nfunc main() {\n t := Token.IntLit(\"s\")\n println(t)\n}\n",
+ "mismatch",
+ );
+}
+
+#[test]
+fn enum_duplicate_reports() {
+ errors_contain(
+ "enum Token { Eof }\nenum Token { Eof }\nfunc main() {\n println(\"x\")\n}\n",
+ "duplicate definition of enum",
+ );
+}
+
+#[test]
+fn enum_impl_method_resolves() {
+ let r = check_src_with_funcs(
+ "enum Token { Eof, IntLit(int) }\nimpl Token {\n func is_eof(self) -> bool {\n match self {\n .Eof => true,\n _ => false,\n }\n }\n}\nfunc main() {\n _b := Token.Eof.is_eof()\n}\n",
+ print_test_funcs(),
+ );
+ assert!(!has_errors(&r), "errors: {:?}", r.errors);
+}
+
+#[test]
+fn enum_generic_inference() {
+ let r = check_src_with_funcs(
+ "enum Box { V(T), E }\nfunc main() {\n a := Box.V(42)\n b: Box = Box.E\n _c := (a == Box.V(42))\n println(\"ok\")\n}\n",
+ print_test_funcs(),
+ );
+ assert!(!has_errors(&r), "errors: {:?}", r.errors);
+}
+
+#[test]
+fn enum_generic_pattern_binds_payload() {
+ let r = check_src(
+ "enum Box { V(T), E }\nfunc f(b: Box) -> T {\n match b {\n .V(v) => v,\n .E => f(Box.E),\n }\n}\n",
+ );
+ assert!(!has_errors(&r), "errors: {:?}", r.errors);
+}
+
+#[test]
+fn enum_generic_mismatch_reports() {
+ errors_contain(
+ "enum Box { V(T) }\nfunc main() {\n a := Box.V(1)\n s := Box.V(\"hi\")\n _c := (a == s)\n}\n",
+ "mismatch",
+ );
+}
+
+#[test]
+fn enum_generic_arity_reports() {
+ errors_contain(
+ "enum Box { V(T) }\nfunc main() {\n b: Box = Box.V(1)\n}\n",
+ "takes 1 type argument",
+ );
+}
+
+#[test]
+fn option_matched_with_ok_suggests_some() {
+ let r = check_src(
+ "func main() {\n x := .some(1)\n match x {\n .ok(v) => v\n .err(e) => e\n }\n}",
+ );
+ let notes: Vec = r.errors.iter().flat_map(|e| e.notes.clone()).collect();
+ assert!(
+ notes.iter().any(|n| n.contains("use `.some(x)`")),
+ "expected `.some` hint, got: {notes:?}"
+ );
+}
+
+#[test]
+fn result_matched_with_some_suggests_ok() {
+ let r = check_src(
+ "func f() -> Result { .ok(1) }\nfunc main() {\n r := f()\n match r {\n .some(v) => v\n .none => 0\n }\n}",
+ );
+ let notes: Vec = r.errors.iter().flat_map(|e| e.notes.clone()).collect();
+ assert!(
+ notes.iter().any(|n| n.contains("use `.ok(x)`")),
+ "expected `.ok` hint, got: {notes:?}"
+ );
+}
+
+#[test]
+fn unwrapped_result_at_return_suggests_fixes() {
+ let r = check_src(
+ "func f() -> Result { .ok(1) }\nfunc g() -> int {\n t := f()\n t\n}",
+ );
+ let msgs: Vec = r.errors.iter().map(|e| e.message.clone()).collect();
+ assert!(
+ msgs.iter()
+ .any(|m| m.contains("unwrapped `Result`")),
+ "expected unwrap error, got: {msgs:?}"
+ );
+ let notes: Vec = r.errors.iter().flat_map(|e| e.notes.clone()).collect();
+ assert!(
+ notes.iter().any(|n| n.contains('?')),
+ "expected `?` suggestion, got: {notes:?}"
+ );
+}
+
+#[test]
+fn match_mismatch_binds_no_cascade() {
+ // Root mismatch errors only: payload names bind as Error so their uses
+ // stay silent (#246).
+ let r = check_src(
+ "func div(a: int, b: int) -> int { a / b }\nfunc main() {\n r := div(1, 1)\n match r {\n .ok(v) => v\n .err(e) => e\n }\n}",
+ );
+ let errs: Vec = r
+ .errors
+ .iter()
+ .filter(|e| e.severity == zz_frontend::diag::Severity::Error)
+ .map(|e| e.message.clone())
+ .collect();
+ assert_eq!(
+ errs.len(),
+ 2,
+ "expected only the two mismatch errors, got: {errs:?}"
+ );
+}
+
+#[test]
+fn enum_variant_typo_suggests() {
+ let r = check_src(
+ "enum Color { Red, Green, Blue }\nfunc main() {\n c := Color.Red\n match c {\n .Gren(v) => v\n .Red => 1\n .Blue => 2\n }\n}",
+ );
+ let notes: Vec = r.errors.iter().flat_map(|e| e.notes.clone()).collect();
+ assert!(
+ notes.iter().any(|n| n.contains(".Green")),
+ "expected `.Green` suggestion, got: {notes:?}",
+ );
+}
+
+#[test]
+fn literal_zero_divisor_is_check_error() {
+ let r = check_src_with_funcs(
+ "func main() {\n x := 1 / 0\n println(x)\n}",
+ print_test_funcs(),
+ );
+ let msgs: Vec = r.errors.iter().map(|e| e.message.clone()).collect();
+ assert!(
+ msgs.iter().any(|m| m.contains("division by zero")),
+ "expected div-zero error, got: {msgs:?}"
+ );
+}
+
+#[test]
+fn literal_zero_remainder_is_check_error() {
+ let r = check_src_with_funcs("func main() {\n println(5 % 0)\n}", print_test_funcs());
+ let msgs: Vec = r.errors.iter().map(|e| e.message.clone()).collect();
+ assert!(
+ msgs.iter().any(|m| m.contains("remainder by zero")),
+ "expected rem-zero error, got: {msgs:?}"
+ );
+}
+
+#[test]
+fn float_division_by_zero_stays_legal() {
+ // No println: the point is float division itself stays legal.
+ let r = check_src("func main() {\n _x := 1.0 / 0.0\n}");
+ assert!(
+ !r.errors.iter().any(|e| e.message.contains("zero")),
+ "float div-zero must stay legal, got: {:?}",
+ r.errors.iter().map(|e| &e.message).collect::>()
+ );
+}
+
+#[test]
+fn unreachable_after_return_warns() {
+ let r = check_src_with_funcs(
+ "func main() {\n return\n println(\"hi\")\n}",
+ print_test_funcs(),
+ );
+ assert!(
+ r.errors
+ .iter()
+ .any(|e| e.message.contains("unreachable code")),
+ "expected unreachable warning, got: {:?}",
+ r.errors.iter().map(|e| &e.message).collect::>()
+ );
+ assert!(
+ !has_errors(&r),
+ "unreachable must be a warning, not an error"
+ );
+}
diff --git a/crates/zz_cli/Cargo.toml b/crates/zz_cli/Cargo.toml
index 1aa8449a..1a6144f5 100644
--- a/crates/zz_cli/Cargo.toml
+++ b/crates/zz_cli/Cargo.toml
@@ -12,6 +12,7 @@ path = "src/main.rs"
zz_frontend = { path = "../zz_frontend" }
zz_checker = { path = "../zz_checker" }
zz_hir = { path = "../zz_hir" }
+zz_ir = { path = "../zz_ir" }
zz_runtime = { path = "../zz_runtime" }
zz_stdlib = { path = "../zz_stdlib" }
zz_codegen = { path = "../zz_codegen" }
@@ -21,7 +22,14 @@ zz_plugin = { path = "../zz_plugin" }
codespan-reporting = "0.11"
reedline = "0.51"
dirs = "6"
+sha2 = { workspace = true }
nu-ansi-term = "0.50"
toml = "0.8"
serde_json = { workspace = true }
+hex = { workspace = true }
+# S1 arena-scale: check-cache derives.
+serde = { workspace = true }
base64 = { workspace = true }
+ureq = { workspace = true }
+tar = { workspace = true }
+lzma-rs = { workspace = true }
diff --git a/crates/zz_cli/src/build.rs b/crates/zz_cli/src/build.rs
index 670c515f..9d65759f 100644
--- a/crates/zz_cli/src/build.rs
+++ b/crates/zz_cli/src/build.rs
@@ -34,6 +34,16 @@ pub enum BuildMode {
Release,
Static,
Pgo,
+ /// PGO phase 2: optimize with collected profile data (`zz profile`).
+ /// Same flags as the instrumented build, plus `-fprofile-use`.
+ PgoUse,
+ /// Max optimization (`zz build --release --full`): release base with
+ /// full LTO (deeper cross-TU optimization/elimination than ThinLTO).
+ Full,
+ /// Max optimization with PGO (`--full -- `): profile-use
+ /// plus full LTO. Instrumented leg reuses plain `Pgo` (same profile
+ /// quality, faster instrumented build).
+ FullPgo,
}
/// Release-build knobs: cross target, provider selection, verbosity.
@@ -54,6 +64,21 @@ pub struct ReleaseOptions {
/// `--allow-hooks`: permit legacy `build = "..."` hooks (direct
/// deps only; transitive hooks always error).
pub allow_hooks: bool,
+ /// Internal: static came from the `zz build` default (not an explicit
+ /// `--static`), so impossible-static falls back to dynamic with a
+ /// note instead of erroring. Set by `build_cmd`; everything else
+ /// leaves the default `false` (strict).
+ pub allow_static_downgrade: bool,
+ /// `-o `: publish the binary under this name instead of
+ /// `bin/`. A bare file name stays inside `bin/`; a value with
+ /// a path separator is used as-is relative to the current
+ /// directory (go-like). Excluded from the cache key: the same
+ /// cached binary is published under any name.
+ pub output: Option,
+ /// `--chunk`: lower from the unified IR chunk instead of HIR.
+ /// Dual-codegen gate: both paths must agree until full coverage.
+ /// Carried into the cache filename so backends never share entries.
+ pub chunk: bool,
}
impl ReleaseOptions {
@@ -298,6 +323,9 @@ fn opts_for(mode: BuildMode) -> BuildOptions {
BuildMode::Release => BuildOptions::release(),
BuildMode::Static => BuildOptions::static_lto(),
BuildMode::Pgo => BuildOptions::pgo_generate(),
+ BuildMode::PgoUse => BuildOptions::pgo_use(),
+ BuildMode::Full => BuildOptions::full(),
+ BuildMode::FullPgo => BuildOptions::full_pgo_use(),
}
}
@@ -832,8 +860,10 @@ fn typed_program_for(
let res = zz_hir::build_program(
&merged,
HashMap::new(),
- loaded.funcs.clone(),
- loaded.structs.clone(),
+ loaded.funcs,
+ loaded.structs,
+ loaded.aliases,
+ loaded.enums,
);
if !res.diagnostics.is_empty() {
for d in &res.diagnostics {
@@ -847,6 +877,80 @@ fn typed_program_for(
Ok((pruned, reach, main_key))
}
+/// Build the unified IR module for `path` (chunk-backend input): load,
+/// check, merge (pure-ZZ stdlib first, mirroring [`typed_program_for`]),
+/// VM-compile, then `lower_typed`. Returns the module + dotted main key.
+fn chunk_module_for(path: &Path) -> Result<(zz_ir::Module, String), String> {
+ let entry_ns = path
+ .file_stem()
+ .map(|s| s.to_string_lossy().into_owned())
+ .unwrap_or_default();
+ let plugin_funcs = discover_plugin_manifests(path);
+ let loaded = if plugin_funcs.is_empty() {
+ loader::load_program(path)?
+ } else {
+ loader::load_program_with_plugins(path, &plugin_funcs)?
+ };
+ let mut has_errors = false;
+ for e in &loaded.errors {
+ let mut files = zz_frontend::diag::Files::new();
+ let id = files.add(e.name.clone(), e.source.clone());
+ eprint!(
+ "{}",
+ zz_frontend::diag::render_to_string(&files, id, &e.diags)
+ );
+ if e.diags
+ .iter()
+ .any(|d| d.severity == zz_frontend::diag::Severity::Error)
+ {
+ has_errors = true;
+ }
+ }
+ if has_errors {
+ return Err("program failed to type-check".into());
+ }
+ // Merged user program. Pure-ZZ stdlib sources are deliberately NOT
+ // merged here: their bodies trip the VM compiler's join verifier
+ // when compiled outside their home module (latent gap — stdlib only
+ // ever runs through the tree-walker today). Calls to pure-ZZ
+ // helpers (e.g. `str.repeat`) therefore fail `coverage` with a clean
+ // "cannot resolve call target" error instead of miscompiling.
+ // Slice-2 (cross-module IR merge, #253) will include them.
+ let mut merged_stmts = Vec::new();
+ let merged_span = loaded
+ .programs
+ .last()
+ .map(|p| p.span)
+ .unwrap_or(Span::new(0, 0));
+ for p in &loaded.programs {
+ merged_stmts.extend(p.stmts.iter().cloned());
+ }
+ let merged = zz_frontend::ast::Program {
+ stmts: merged_stmts,
+ span: merged_span,
+ };
+ let typed = zz_hir::build_program(
+ &merged,
+ HashMap::new(),
+ loaded.funcs,
+ loaded.structs.clone(),
+ loaded.aliases,
+ loaded.enums.clone(),
+ );
+ let native_names: std::sync::Arc> =
+ std::sync::Arc::new(loaded.natives.keys().cloned().collect());
+ let chunk = zz_runtime::vm::Compiler::compile_program_typed(
+ &merged,
+ std::sync::Arc::new(typed.program.types),
+ loaded.structs,
+ loaded.enums,
+ native_names,
+ );
+ let module = zz_ir::lower::lower_typed(&chunk, &typed.program.funcs)
+ .map_err(|e| format!("zz: ir lower failed: {e}"))?;
+ Ok((module, format!("{entry_ns}.main")))
+}
+
/// Directory holding build artifacts: `bin/` next to the source file
/// (or `/bin` when the source has no parent).
pub fn bin_dir_for(src: &Path) -> PathBuf {
@@ -920,7 +1024,24 @@ pub fn build_release(
.unwrap_or_default();
let (pruned, reach, main_key) = typed_program_for(path, &entry_ns)?;
let mut opts = opts_for(mode);
+ opts.allow_static_downgrade = rel.allow_static_downgrade;
let target = rel.target_opt();
+ // Default-static fallback for macOS (static linking is rejected
+ // there): downgrade to dynamic with a note instead of failing the
+ // default build. Explicit `--static` keeps the hard error in
+ // `validate` below. The note prints only on a real build, after the
+ // cache check, so cache hits stay silent.
+ let mut static_note: Option<&str> = None;
+ if opts.static_link && opts.allow_static_downgrade {
+ let macos = match target {
+ Some(t) => zz_codegen::is_macos_target(t),
+ None => cfg!(target_os = "macos"),
+ };
+ if macos {
+ opts.static_link = false;
+ static_note = Some("macOS targets cannot statically link; building dynamic");
+ }
+ }
// Discover and build plugin native artifacts (compiled .o / .a files
// plus dependency link flags from each package's ldflags.txt).
@@ -960,11 +1081,42 @@ pub fn build_release(
Some(c) => c,
None => {
let lowered = zz_codegen::lower_only(&pruned, &reach, &main_key);
+ let mut script_opts = opts.clone();
+ script_opts.curl_link = script_opts.curl_link || lowered.needs_curl;
+ script_opts.sqlite_link = script_opts.sqlite_link || lowered.needs_sqlite;
let dir = bin_dir_for(path);
- let _ = zz_codegen::emit_c_plus_script(&lowered.source, &dir, target, &opts);
+ let _ = zz_codegen::emit_c_plus_script(&lowered.source, &dir, target, &script_opts);
return Err(zz_codegen::BuildError::NoClang.to_string());
}
};
+ // Seed system-lib needs from reachability before the static-syslibs
+ // probe: with conditional linking, programs that neither fetch nor
+ // query need no static syslibs, so the probe must not downgrade them.
+ // The final `build_native` ORs the same flags again from lowering.
+ opts.curl_link = opts.curl_link || zz_codegen::ffi::needs_curl_link(&reach.natives);
+ opts.sqlite_link = opts.sqlite_link || zz_codegen::ffi::needs_sqlite_link(&reach.natives);
+ // Default-static fallback for missing static system libraries: only
+ // the libraries the program actually needs are probed (cached per
+ // provider + lib set). Downgrade to dynamic with a note instead of
+ // failing the default build. Explicit `--static` skips this
+ // (allow_static_downgrade false) and keeps the linker's error.
+ if opts.static_link
+ && opts.allow_static_downgrade
+ && !zz_codegen::compile::static_syslibs_available_for(
+ &clang,
+ opts.curl_link,
+ opts.sqlite_link,
+ )
+ {
+ opts.static_link = false;
+ static_note = if opts.curl_link && opts.sqlite_link {
+ Some("static system libraries (libcurl.a, libsqlite3.a) not found; building dynamic")
+ } else if opts.curl_link {
+ Some("static system library (libcurl.a) not found; building dynamic")
+ } else {
+ Some("static system library (libsqlite3.a) not found; building dynamic")
+ };
+ }
if rel.verbose {
eprintln!(
"zz: {} {}",
@@ -973,6 +1125,18 @@ pub fn build_release(
);
}
+ // `-o` renames at publish time only (excluded from the cache key:
+ // identical source + options reuse one cached binary under any name).
+ // Captured before `opts` moves into the clang build below.
+ let output = rel.output.clone();
+ // Cache: reuse when the same source + build options + target were
+ // built before. The chunk backend carries its own slug so the two
+ // codegen paths never share entries (dual-codegen gate).
+ let kind_slug = if rel.chunk {
+ format!("{mode:?}-chunk")
+ } else {
+ format!("{mode:?}")
+ };
// Cache: reuse when the same source + build options + target were
// built before.
let dir = cache_dir();
@@ -983,18 +1147,21 @@ pub fn build_release(
// The embed tree is content-fingerprinted separately (compact slug
// addition — asset edits must never reuse a non-embed binary).
let cached = if embed_slug.is_empty() {
- dir.join(format!("{key}-{mode:?}-{target_slug}"))
+ dir.join(format!("{key}-{kind_slug}-{target_slug}"))
} else {
- dir.join(format!("{key}-{mode:?}-{target_slug}-{embed_slug}"))
+ dir.join(format!("{key}-{kind_slug}-{target_slug}-{embed_slug}"))
};
if is_usable_cache_binary(&cached) {
// Reuse the cached binary.
- return publish_to_bin(&cached, path, target);
+ return publish_to_bin(&cached, path, target, output.as_deref());
}
// Stale artifact (interrupted build, missing exec bit, empty file):
// drop it so the fresh build below replaces it.
let _ = std::fs::remove_file(&cached);
+ if let Some(note) = static_note {
+ eprintln!("zz: note: {note}");
+ }
// Build to a unique temp path in the same directory, then atomically
// rename into place. Concurrent builds of the same key (parallel tests,
@@ -1002,11 +1169,33 @@ pub fn build_release(
// observers never see a partially-written or non-executable binary.
static TMP_COUNTER: AtomicU64 = AtomicU64::new(0);
let tmp = dir.join(format!(
- "{key}-{mode:?}-{target_slug}.{}.{}.tmp",
+ "{key}-{kind_slug}-{target_slug}.{}.{}.tmp",
std::process::id(),
TMP_COUNTER.fetch_add(1, Ordering::SeqCst)
));
- if let Err(e) =
+ // Chunk backend: lower from the unified IR, then compile the
+ // emitted source with the same option/flag flow as `build_native`.
+ if rel.chunk {
+ let (module, main_key) = chunk_module_for(path)?;
+ let lowered =
+ zz_codegen::build_chunk_module(&module, &main_key).map_err(|e| e.to_string())?;
+ opts.native_rt = opts.native_rt || lowered.needs_native_rt;
+ opts.pg_link = opts.pg_link || lowered.needs_pg_link;
+ opts.float_link = opts.float_link || lowered.needs_float_fmt;
+ opts.curl_link = opts.curl_link || lowered.needs_curl;
+ opts.sqlite_link = opts.sqlite_link || lowered.needs_sqlite;
+ if opts.static_link && (opts.native_rt || opts.float_link) && opts.allow_static_downgrade {
+ opts.static_link = false;
+ eprintln!(
+ "zz: note: static link unavailable (program needs the Rust native runtime); building dynamic"
+ );
+ }
+ if let Err(e) = zz_codegen::compile::build_with(&lowered.source, &tmp, opts, target, &clang)
+ {
+ let _ = std::fs::remove_file(&tmp);
+ return Err(e.to_string());
+ }
+ } else if let Err(e) =
zz_codegen::build_native_with(&pruned, &reach, &main_key, opts, target, &clang, &tmp)
{
let _ = std::fs::remove_file(&tmp);
@@ -1033,7 +1222,7 @@ pub fn build_release(
let _ = std::fs::remove_file(&tmp);
return Err(format!("cannot publish cache entry: {e}"));
}
- publish_to_bin(&cached, path, target)
+ publish_to_bin(&cached, path, target, output.as_deref())
}
/// Copy a cached binary into `bin/` next to the source with the
@@ -1043,16 +1232,48 @@ pub fn build_release(
/// atomic rename: parallel `zz run --native` / `zz build` invocations for
/// the same fixture (e.g. `cargo test --all` running several test binaries
/// at once) must never observe — or execute — a half-written binary.
-fn publish_to_bin(cached: &Path, src: &Path, target: Option<&str>) -> Result {
- let stem = src
- .file_stem()
- .map(|s| s.to_string_lossy().into_owned())
- .unwrap_or_else(|| "app".to_string());
- let dir = bin_dir_for(src);
- std::fs::create_dir_all(&dir).map_err(|e| format!("cannot create bin dir: {e}"))?;
- let dest = dir.join(bin_name(&stem, target));
+fn publish_to_bin(
+ cached: &Path,
+ src: &Path,
+ target: Option<&str>,
+ output: Option<&Path>,
+) -> Result {
+ let dest = match output {
+ Some(o) if o.components().count() > 1 => {
+ // Path-like `-o` (contains a separator): exact destination
+ // relative to the current directory (go-like).
+ let mut dest = o.to_path_buf();
+ let windows = match target {
+ Some(t) => zz_codegen::is_windows_target(t),
+ None => cfg!(windows),
+ };
+ if windows && dest.extension().is_none() {
+ dest.set_extension("exe");
+ }
+ dest
+ }
+ Some(o) => {
+ // Bare `-o` name: keep the `bin/` convention.
+ let stem = o.to_string_lossy().into_owned();
+ bin_dir_for(src).join(bin_name(&stem, target))
+ }
+ None => {
+ let stem = src
+ .file_stem()
+ .map(|s| s.to_string_lossy().into_owned())
+ .unwrap_or_else(|| "app".to_string());
+ bin_dir_for(src).join(bin_name(&stem, target))
+ }
+ };
+ if let Some(parent) = dest.parent() {
+ if !parent.as_os_str().is_empty() {
+ std::fs::create_dir_all(parent)
+ .map_err(|e| format!("cannot create output dir: {e}"))?;
+ }
+ }
static PUBLISH_COUNTER: AtomicU64 = AtomicU64::new(0);
- let tmp = dir.join(format!(
+ let tmp_dir = dest.parent().filter(|p| !p.as_os_str().is_empty());
+ let tmp = tmp_dir.unwrap_or(std::path::Path::new(".")).join(format!(
".{}.publish-{}.{}.tmp",
dest.file_name().unwrap_or_default().to_string_lossy(),
std::process::id(),
diff --git a/crates/zz_cli/src/doctor.rs b/crates/zz_cli/src/doctor.rs
new file mode 100644
index 00000000..01592ba0
--- /dev/null
+++ b/crates/zz_cli/src/doctor.rs
@@ -0,0 +1,245 @@
+//! `zz doctor`: environment audit with fix hints.
+//!
+//! Checks the toolchain end to end — binary, C backend, shell integration
+//! (reuses `setup --check` state), git, and registry reachability — and
+//! reports one grouped verdict. `zz doctor --fix` auto-runs `zz setup`
+//! when shell integration is the problem.
+
+use crate::{setup, ui};
+
+/// One check result.
+struct Check {
+ step: &'static str,
+ ok: bool,
+ line: String,
+ hint: Option,
+}
+
+fn pass(step: &'static str, line: impl Into) -> Check {
+ Check {
+ step,
+ ok: true,
+ line: line.into(),
+ hint: None,
+ }
+}
+
+fn fail(step: &'static str, line: impl Into, hint: impl Into) -> Check {
+ Check {
+ step,
+ ok: false,
+ line: line.into(),
+ hint: Some(hint.into()),
+ }
+}
+
+/// `zz doctor [--fix]`.
+pub fn run(args: &[String]) -> Result<(), String> {
+ let fix = args.iter().any(|a| a == "--fix");
+ ui::header("zz doctor");
+ let mut checks: Vec = Vec::new();
+
+ // 1. Binary.
+ let version = env!("CARGO_PKG_VERSION");
+ match std::env::current_exe() {
+ Ok(exe) => {
+ let dir = exe
+ .parent()
+ .map(|p| p.display().to_string())
+ .unwrap_or_default();
+ // Writable install dir = future `zz upgrade` can work. Probe
+ // with a real (empty, immediately removed) file: permission
+ // bits alone lie on read-only mounts and under ACLs.
+ let probe = exe
+ .parent()
+ .unwrap_or(std::path::Path::new("."))
+ .join(".zz-write-test");
+ let writable = std::fs::write(&probe, b"").is_ok();
+ let _ = std::fs::remove_file(&probe);
+ if writable {
+ checks.push(pass("Binary", format!("zz v{version} at {dir} (writable)")));
+ } else {
+ checks.push(fail(
+ "Binary",
+ format!("zz v{version} at {dir} (read-only)"),
+ "upgrade will fail here — reinstall somewhere writable, e.g. ~/.zz/bin",
+ ));
+ }
+ }
+ Err(e) => checks.push(fail(
+ "Binary",
+ "cannot locate zz binary".to_string(),
+ format!("current_exe failed: {e}"),
+ )),
+ }
+
+ // 2. C backend.
+ match zz_codegen::detect_clang_with(zz_codegen::ClangProvider::Any) {
+ Some(clang) => {
+ let ver = std::process::Command::new(&clang.path)
+ .arg("--version")
+ .output()
+ .ok()
+ .and_then(|o| String::from_utf8(o.stdout).ok())
+ .and_then(|s| s.lines().next().map(str::to_string))
+ .unwrap_or_default();
+ let detail = if ver.is_empty() {
+ clang.label.to_string()
+ } else {
+ format!("{} ({})", clang.label, ver.trim())
+ };
+ checks.push(pass("C backend", format!("clang backend: {detail}")));
+ }
+ None => checks.push(fail(
+ "C backend",
+ "no clang backend found".to_string(),
+ "run `zz toolchain install` for a managed Zig backend, or install clang",
+ )),
+ }
+
+ // 3. Shell integration (same state as `zz setup --check`).
+ let st = setup::status();
+ if !st.bin_exists {
+ checks.push(fail(
+ "Shell PATH",
+ format!("{} missing", st.bin.display()),
+ "run `zz setup` to create it",
+ ));
+ } else if !st.on_path {
+ if st.shells.iter().all(|s| s.rc_wired) {
+ checks.push(pass(
+ "Shell PATH",
+ "~/.zz/bin wired (restart shell to activate)".to_string(),
+ ));
+ } else {
+ checks.push(fail(
+ "Shell PATH",
+ "~/.zz/bin not on PATH".to_string(),
+ "run `zz setup`, then restart your shell",
+ ));
+ }
+ } else {
+ checks.push(pass("Shell PATH", "~/.zz/bin on PATH".to_string()));
+ }
+ let stale: Vec<&str> = st
+ .shells
+ .iter()
+ .filter(|s| s.rc_wired && !s.completion_installed)
+ .map(|s| s.shell)
+ .collect();
+ if stale.is_empty() {
+ checks.push(pass(
+ "Completions",
+ "shell completions installed".to_string(),
+ ));
+ } else {
+ checks.push(fail(
+ "Completions",
+ format!("stale completions: {}", stale.join(", ")),
+ "run `zz setup` to refresh them",
+ ));
+ }
+
+ // 4. git (git deps + `zz new` scaffolding).
+ match std::process::Command::new("git").arg("--version").output() {
+ Ok(out) if out.status.success() => {
+ let ver = String::from_utf8_lossy(&out.stdout).trim().to_string();
+ checks.push(pass("git", ver));
+ }
+ _ => checks.push(fail(
+ "git",
+ "git not found".to_string(),
+ "install git — needed for git dependencies and `zz new`",
+ )),
+ }
+
+ // 5. Registry reachability (short timeout, read-only probe).
+ let base = zz_pm::remote::registry_base();
+ let reachable = zz_pm::remote::RegistryClient::new(&base)
+ .search("zz", 1)
+ .is_ok();
+ if reachable {
+ checks.push(pass("Registry", format!("registry reachable ({base})")));
+ } else {
+ checks.push(fail(
+ "Registry",
+ format!("registry unreachable ({base})"),
+ "check your network or ZZ_REGISTRY — `zz add`/`install` need it",
+ ));
+ }
+
+ // 6. Cache size.
+ let cache = zz_pm::paths::cache_objects_dir();
+ let (entries, bytes) = zz_pm::paths::dir_usage(&cache);
+ checks.push(pass(
+ "Cache",
+ format!(
+ "build cache: {entries} entries ({})",
+ ui::human_bytes(bytes)
+ ),
+ ));
+
+ // Report.
+ let mut failed = 0u32;
+ for (i, c) in checks.iter().enumerate() {
+ ui::step(i + 1, checks.len(), c.step);
+ if c.ok {
+ ui::ok(&c.line);
+ } else {
+ failed += 1;
+ ui::warn(&c.line);
+ if let Some(h) = &c.hint {
+ eprintln!(" hint: {h}");
+ }
+ }
+ }
+
+ if failed == 0 {
+ println!("doctor: all {} checks passed", checks.len());
+ return Ok(());
+ }
+ if fix {
+ let integration_broken = !st.bin_exists
+ || (!st.on_path && !st.shells.iter().all(|s| s.rc_wired))
+ || st
+ .shells
+ .iter()
+ .any(|s| s.rc_wired && !s.completion_installed);
+ if integration_broken {
+ ui::header("doctor --fix: running setup");
+ setup::run(&[])?;
+ println!("doctor: re-run `zz doctor` after restarting your shell");
+ return Ok(());
+ }
+ }
+ Err(format!(
+ "doctor: {failed} of {} checks failed",
+ checks.len()
+ ))
+}
+
+#[cfg(test)]
+mod tests {
+ use zz_pm::paths::dir_usage;
+
+ #[test]
+ fn usage_counts_files() {
+ let dir = std::env::temp_dir().join(format!("zz_doctor_test_{}", std::process::id()));
+ let _ = std::fs::remove_dir_all(&dir);
+ std::fs::create_dir_all(dir.join("sub")).unwrap();
+ std::fs::write(dir.join("a"), "1234").unwrap();
+ std::fs::write(dir.join("sub").join("b"), "123456").unwrap();
+ let (entries, bytes) = dir_usage(&dir);
+ assert_eq!(entries, 2);
+ assert_eq!(bytes, 10);
+ let _ = std::fs::remove_dir_all(&dir);
+ }
+
+ #[test]
+ fn usage_missing_dir_is_empty() {
+ assert_eq!(
+ dir_usage(std::path::Path::new("/nonexistent-zz-dir")),
+ (0, 0)
+ );
+ }
+}
diff --git a/crates/zz_cli/src/fixture_meta.rs b/crates/zz_cli/src/fixture_meta.rs
new file mode 100644
index 00000000..d9bd5223
--- /dev/null
+++ b/crates/zz_cli/src/fixture_meta.rs
@@ -0,0 +1,285 @@
+//! Fixture feature tags (M0).
+//!
+//! Every `.zz` fixture under `tests/fixtures/` declares its language
+//! features in a leading `// features: ...` header (see
+//! `tests/fixtures/FEATURES.md`). This module parses those headers,
+//! owns the closed tag vocabulary, and defines the milestone feature
+//! subsets (starting with [`M2_FEATURES`]) so later milestones gate on
+//! computed fixture sets instead of prose descriptions.
+
+use std::path::Path;
+
+/// Closed tag vocabulary. Kept sorted; the unit test enforces it so
+/// additions stay merge-clean. Every tag is kebab-case.
+pub const VOCABULARY: &[&str] = &[
+ "aliases",
+ "arrays",
+ "assert",
+ "bitwise",
+ "bool-logic",
+ "break-continue",
+ "bytes",
+ "casts",
+ "cli-args",
+ "closures",
+ "comparison",
+ "const",
+ "decorators",
+ "defer",
+ "destructuring",
+ "dicts",
+ "elvis",
+ "embed",
+ "enums",
+ "error-case",
+ "field-store",
+ "float-arith",
+ "for-loop",
+ "fstrings",
+ "func-call",
+ "generics",
+ "hof",
+ "if-else",
+ "if-let",
+ "import-alias",
+ "imports",
+ "indexing",
+ "int-arith",
+ "known-divergence",
+ "locals",
+ "match",
+ "methods",
+ "nondeterministic",
+ "option-result",
+ "pipe",
+ "print",
+ "pub-visibility",
+ "ranges",
+ "recursion",
+ "return",
+ "selective-import",
+ "short-circuit",
+ "slicing",
+ "std-args",
+ "std-bytes",
+ "std-chan",
+ "std-colors",
+ "std-crypto",
+ "std-csv",
+ "std-db",
+ "std-dec",
+ "std-encoding",
+ "std-env",
+ "std-fs",
+ "std-http",
+ "std-json",
+ "std-log",
+ "std-map",
+ "std-math",
+ "std-net",
+ "std-path",
+ "std-process",
+ "std-regexp",
+ "std-sqlz",
+ "std-str",
+ "std-sys",
+ "std-task",
+ "std-term",
+ "std-time",
+ "std-uuid",
+ "std-vec",
+ "stdin",
+ "string-blocks",
+ "string-literal",
+ "string-ops",
+ "struct-literal",
+ "struct-methods",
+ "structs",
+ "try-question",
+ "tuples",
+ "type-inference",
+ "vec-push",
+ "vfs",
+ "vm-only",
+ "while-loop",
+ "wildcard-import",
+ "zz-test",
+];
+
+/// M2 lowering subset: ints, floats, bools, locals, if/while, calls,
+/// print (comparisons ride along; `for-loop` lowers in M6 with ranges).
+/// String *literals* are included: `print("marker")` needs only a const
+/// pool entry, not string semantics (`string-ops`, `fstrings`,
+/// `string-blocks` stay out). A fixture is an M2 candidate when every
+/// tag is in this set.
+pub const M2_FEATURES: &[&str] = &[
+ "bool-logic",
+ "comparison",
+ "const",
+ "float-arith",
+ "func-call",
+ "if-else",
+ "int-arith",
+ "locals",
+ "print",
+ "string-literal",
+ "while-loop",
+];
+
+/// True when `tag` is in the closed vocabulary.
+pub fn is_valid_tag(tag: &str) -> bool {
+ VOCABULARY.contains(&tag)
+}
+
+/// Parse the `// features:` header(s) out of ZZ source.
+///
+/// Only the leading comment block is scanned (stops at the first
+/// non-comment, non-blank line). Multiple `// features:` lines union.
+/// Returns the sorted, de-duplicated tag list (may be empty).
+pub fn parse_features(src: &str) -> Vec {
+ let mut tags: Vec = Vec::new();
+ for line in src.lines() {
+ let t = line.trim();
+ if t.is_empty() {
+ continue;
+ }
+ let Some(rest) = t.strip_prefix("//") else {
+ break;
+ };
+ let rest = rest.trim();
+ let Some(list) = rest.strip_prefix("features:") else {
+ continue;
+ };
+ for tag in list.split(',') {
+ let tag = tag.trim().to_string();
+ if !tag.is_empty() && !tags.contains(&tag) {
+ tags.push(tag);
+ }
+ }
+ }
+ tags.sort();
+ tags
+}
+
+/// Read `path` and parse its feature header. `Err` on IO failure or
+/// when the file declares no tags.
+pub fn fixture_features(path: &Path) -> Result, String> {
+ let src = std::fs::read_to_string(path)
+ .map_err(|e| format!("cannot read {}: {e}", path.display()))?;
+ let tags = parse_features(&src);
+ if tags.is_empty() {
+ return Err(format!(
+ "{} declares no `// features:` tags",
+ path.display()
+ ));
+ }
+ Ok(tags)
+}
+
+/// True when every feature in `features` is a member of `subset`.
+pub fn covers_subset(features: &[String], subset: &[&str]) -> bool {
+ features.iter().all(|f| subset.contains(&f.as_str()))
+}
+
+#[cfg(test)]
+mod tests {
+ use super::*;
+
+ #[test]
+ fn vocabulary_is_sorted_unique_and_kebab() {
+ let mut sorted = VOCABULARY.to_vec();
+ sorted.sort_unstable();
+ assert_eq!(sorted, VOCABULARY, "VOCABULARY must stay sorted");
+ let mut seen = std::collections::HashSet::new();
+ for tag in VOCABULARY {
+ assert!(seen.insert(tag), "duplicate tag: {tag}");
+ assert!(
+ tag.bytes()
+ .all(|b| b.is_ascii_lowercase() || b.is_ascii_digit() || b == b'-'),
+ "tag must be kebab-case: {tag}"
+ );
+ }
+ }
+
+ #[test]
+ fn milestone_subsets_use_valid_tags() {
+ for tag in M2_FEATURES {
+ assert!(is_valid_tag(tag), "M2 tag not in vocabulary: {tag}");
+ }
+ }
+
+ #[test]
+ fn parse_single_and_multi_line_headers() {
+ assert_eq!(parse_features("// features: print\n"), vec!["print"]);
+ assert_eq!(
+ parse_features("// E2E: demo\n// features: int-arith, print\nprintln(1)\n"),
+ vec!["int-arith", "print"]
+ );
+ // Union across lines, sorted + de-duplicated.
+ assert_eq!(
+ parse_features("// features: print, locals\n// features: locals, int-arith\nx := 1\n"),
+ vec!["int-arith", "locals", "print"]
+ );
+ // Stops at code: a later `// features:` is not a header.
+ assert_eq!(
+ parse_features("x := 1\n// features: print\n"),
+ Vec::::new()
+ );
+ }
+
+ #[test]
+ fn subset_gating() {
+ let m2 = vec!["int-arith".to_string(), "print".to_string()];
+ assert!(covers_subset(&m2, M2_FEATURES));
+ let wider = vec!["int-arith".to_string(), "structs".to_string()];
+ assert!(!covers_subset(&wider, M2_FEATURES));
+ }
+
+ /// Every `.zz` fixture in the workspace must declare at least one
+ /// valid vocabulary tag. Walks the real `tests/fixtures/` tree so a
+ /// new untagged (or mistyped-tag) fixture fails fast.
+ #[test]
+ fn all_fixtures_declare_valid_tags() {
+ let root =
+ std::path::PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("../../tests/fixtures");
+ let mut files: Vec = Vec::new();
+ let mut dirs = vec![root];
+ while let Some(dir) = dirs.pop() {
+ let entries =
+ std::fs::read_dir(&dir).unwrap_or_else(|e| panic!("cannot read dir {dir:?}: {e}"));
+ for entry in entries.flatten() {
+ let path = entry.path();
+ if path.is_dir() {
+ dirs.push(path);
+ } else if path.extension().and_then(|s| s.to_str()) == Some("zz") {
+ files.push(path);
+ }
+ }
+ }
+ assert!(
+ files.len() >= 260,
+ "expected the full fixture tree, found {} files",
+ files.len()
+ );
+ let mut problems = Vec::new();
+ files.sort();
+ for path in &files {
+ match fixture_features(path) {
+ Ok(tags) => {
+ for tag in &tags {
+ if !is_valid_tag(tag) {
+ problems.push(format!("{}: unknown tag `{tag}`", path.display()));
+ }
+ }
+ }
+ Err(e) => problems.push(e),
+ }
+ }
+ assert!(
+ problems.is_empty(),
+ "{} fixture tag problem(s):\n{}",
+ problems.len(),
+ problems.join("\n")
+ );
+ }
+}
diff --git a/crates/zz_cli/src/lib.rs b/crates/zz_cli/src/lib.rs
index ee5a3113..5b2ac5bf 100644
--- a/crates/zz_cli/src/lib.rs
+++ b/crates/zz_cli/src/lib.rs
@@ -1 +1,3 @@
//! ZZ CLI: REPL and eval entry points.
+
+pub mod fixture_meta;
diff --git a/crates/zz_cli/src/loader/cache.rs b/crates/zz_cli/src/loader/cache.rs
new file mode 100644
index 00000000..9be2ee96
--- /dev/null
+++ b/crates/zz_cli/src/loader/cache.rs
@@ -0,0 +1,326 @@
+//! Per-module check cache (S1 arena-scale).
+//!
+//! `zz check` on a project re-checks every module even when one file
+//! changed. The cache stores each module's check outcome keyed by a hash
+//! chain: `key_m = H(version, source_m, key_{m-1})`. Any change anywhere
+//! upstream changes every downstream key (conservative, always sound;
+//! a miss is exactly today's behavior).
+//!
+//! v1 scope: the `zz check` path only (`zz run`/`build`/`test` bypass and
+//! recompute — they need span types and codegen inputs this cache does not
+//! store). Parse still runs (import discovery needs the AST); only the
+//! check is skipped on hit. `ZZ_CHECK_CACHE=0` disables entirely.
+
+use std::collections::HashMap;
+use std::path::PathBuf;
+
+use sha2::{Digest, Sha256};
+use zz_checker::{AliasSig, EnumSig, FuncSig, StructSig, Type};
+use zz_frontend::diag::RawDiag;
+
+/// What one module contributes on a cache hit: everything `finish()` needs
+/// that does not require running the checker. Mirrors the `CheckResult`
+/// fields the check path consumes; link/const/try data is run-path-only
+/// and intentionally absent (run bypasses the cache).
+///
+/// Fields are `Cow`: the miss path serializes BORROWED maps (zero copy
+/// before the tail moves them), while reads deserialize into `Owned`.
+/// `into_owned()` on an `Owned` value is a no-op move.
+#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
+pub struct CachedModule<'a> {
+ /// Module's own functions (== `CheckResult.funcs`): privates + pubs.
+ #[serde(borrow)]
+ pub funcs: std::borrow::Cow<'a, HashMap>,
+ /// Resolved pub functions (== `CheckResult.pub_funcs`).
+ #[serde(borrow)]
+ pub pub_funcs: std::borrow::Cow<'a, HashMap>,
+ /// Module's own structs (== `CheckResult.structs`).
+ #[serde(borrow)]
+ pub structs: std::borrow::Cow<'a, HashMap>,
+ /// Resolved pub structs (== `CheckResult.pub_structs`).
+ #[serde(borrow)]
+ pub pub_structs: std::borrow::Cow<'a, HashMap>,
+ /// Module's own aliases (== `CheckResult.aliases`).
+ #[serde(borrow)]
+ pub aliases: std::borrow::Cow<'a, HashMap>,
+ /// Resolved pub aliases (== `CheckResult.pub_aliases`).
+ #[serde(borrow)]
+ pub pub_aliases: std::borrow::Cow<'a, HashMap>,
+ /// Module's own enums (== `CheckResult.enums`).
+ #[serde(borrow)]
+ pub enums: std::borrow::Cow<'a, HashMap