summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGreg Brown <gmb60@cam.ac.uk>2021-02-24 09:51:58 +0000
committerGreg Brown <gmb60@cam.ac.uk>2021-02-24 09:51:58 +0000
commit7934aa9af22e8fa3c33a45bc08e732a73c0cabf5 (patch)
treeab810f2da0851c49d270da71ce1888fd3c7879fb
parent1ab32a794c593b041801c8aac51edc353757b610 (diff)
Add arithmetic benchmark for Nibble.
-rw-r--r--chomp-bench/Cargo.toml4
-rw-r--r--chomp-bench/benches/arith.rs40
-rw-r--r--chomp-bench/src/arith/mod.rs1
-rw-r--r--chomp-bench/src/arith/nibble.rs109
-rw-r--r--chomp-bench/src/lib.rs1
5 files changed, 155 insertions, 0 deletions
diff --git a/chomp-bench/Cargo.toml b/chomp-bench/Cargo.toml
index 5fbd851..cf6a57f 100644
--- a/chomp-bench/Cargo.toml
+++ b/chomp-bench/Cargo.toml
@@ -19,3 +19,7 @@ lalrpop = "0.19.4"
[[bench]]
name = "json"
harness = false
+
+[[bench]]
+name = "arith"
+harness = false
diff --git a/chomp-bench/benches/arith.rs b/chomp-bench/benches/arith.rs
new file mode 100644
index 0000000..4ba6ea7
--- /dev/null
+++ b/chomp-bench/benches/arith.rs
@@ -0,0 +1,40 @@
+use chewed::{IterWrapper, Parser};
+use chomp_bench::arith::*;
+use criterion::{
+ criterion_group, criterion_main, AxisScale, BenchmarkId, Criterion, PlotConfiguration,
+ Throughput,
+};
+
+const INPUTS: &[&str] = &[
+ r#"(20271 / (22939 / 15971 * 552 / 11046 + -24515 * (4540 - 11399 - -28093 * -10078 / (-29566 * 26980) + 19390) / -5419 + 28124 * 18839))"#,
+ r#"(-29901 / 30119 * -8463 * 23900 / 31397 - -13633 * 12636 * 19514 + 18527 * -16089 / 11503 / (27237 / -24154 - 20469) + (-32450 - 11210 + -10920 - -25496) - -23339 - -2386 + -2369 * 30331 - 29375 / -12690 * 28378 / 14623 * -24876 / 20642 - -13525 * 23573) * -5233"#,
+ r#"(-5484 + -23384 / -3161 + -1805 / -6004 - (-21715 + (-17356 + 2879 + 27860) / -20820 + 5682 + (-17408) + -21260 - 16358 - 18313 - 5048 + -12706 - -23282 + -26554 / 29632 / 9642 / 5996 * 1932 / -31535 + -32754 / -8790 - 27069 + 19436 * -2950) * 29752 / (16375) + -31464 / -21004 * 32160 / -20038 - 23328 - 26015 + 18631 - 9077 / 13306 - 26883 - 15513 - (((-28818) / 26778) + 18091 * -1042 + 28644 / 6517) / 29645 - -29958 + 7762 / -14898 - -22849 + -10827 * -227 * -4135 - 6441 - ((8618) + -16510 * (27909 - 3712 - 27794)) + -9878 + (3237) * 13258 - -11441)"#,
+ r#"-3702 / -6527 * (21650 - 30878 / -16053) * ((-27738) + -10405 / (28028) + -27946 * 11853 / 9995 * (12242 / 19864 + -3983 / -17383 / 24277 + (-25049 * 3811)) * (7738 / -30356 - (15771 + -24122 + 20235) - -1286 * -14431 * 20212 + -9632 / ((4912) / 25444 - 29835 + -1371 + 1684 * -16178 * -3620) * 1965 + -26188 + -25529 / (-31105 / -15380 / ((5700 + 20005 + -2884 - 25243 + -22469 - 5923 / 31855 + 631 + -30564 / 15911 / 2145 / 23146 - 10595) / -16740 / -31327 - -30899 * (27984 / 3269 + -23191 - -28688 * 8627 / 1124 * 25978) * 29991 * -11660 * (43 - 13615 + -14069 * 1794 / -23857 / ((-27289 / 8473 * 13714 * -17557 / -28653 / 15220 / (-20965 * 16822 / 18335 / 30505 * (-29766 / 27525 - 26431) + -1597 / 26109 * ((18233) - 15258 * -1222 + 13992) * -22684 - (32150 * 16543)) / -14948) + 1) / -5206 - -20944 * -10476 - 3481) + -18244 - -21630) * 3726 - -11142 * 3294 + 32359 + 1556 / -6674 * -707 - 16822 * -1006 + -3503)) * 7863 * 7347 * -22972 - ((-12006 + 8695 / -12530 + -14941 * 3203 - (-12244 * 1257 * -27925 + -2966 * -30371 + -22680) - 30152))) / -11978 / -210"#,
+ r#"(29413 / -10366 / -27050 + -19544 * -12857 + 1657 - 6429 - 1575 / -18805 * (6236 / -4864 + 5328 / (-28766 - -23344 / 1897 - -10264 - -15545 / -22321 / -26281 + -6283 - -32498 + (((-18270) + 24059 + 18757 * -13046 + 410) - 5087 - 16845) + -13501 - -11165 / 10931 - -12920 - 19771 + 31512 / 27430 + 29179 * -5425 / 8472 - 24814 / -6239 * 18302 * 27551 * -14128) * 30808 + -27780 + (-7080 - 24343 + -13633 / -2952 - 19589 + -2432 - 418) - -18630 * (28453 - -23142 + -25301 * 10469 / 21805 + (6705 + -20941) / 12166 * 25067 * -5523 * 1712 / -26749 / 1014 / -2801 * (26069 - 3978 + -4487 / 14353 + -28970 + 17036 * 9916 + -19436 - 21081 / -26225 / 17558 + 9519 * -1431 + 16650 / -10868 * 13316 / 6423 * 2702 + 14993 / 17300 / 26043 / -23097 - 32561 + -24417 * (-17770 - (13434 / -3495 * -19723) - 23871 - (29314)) / 2068 + -27149 * 28478 / -15589 / 22911 + 17746 + -1779 + 32657 / -32373 / 3077 * 15619 / -22630 * -4937 + 9998 / 10994 / -17860 * 14003 / -13166 / -4922)) - -1283 / (1986 * -22161 + 14898 * -3210 / -5045 - 29713 + (19077 - -8307) * -9969 * (-32136 + 28190 / -27538 / -12829 / 9739 * -24631 / -23424 / ((-11618 / (-20080 + -6697 * 13340 - 20386 + 4134 + -18209 + -4881 * -17637 + 7447 * 26973) * -18860) + 1)) / 13606 / (-9977 + -15895 / -30099 / -9410 / -18342 + -4456 + -14061) / -13146 / -25199 - -3110 + 672 * -22419 - -7711 + -13525 - -20730 * (-4259) + 31080 / 22839 + 8319 * (24326 - -28097 * 16074 / 4717 * -32149 * -20741 / (-14546 * (8702 + -14407 / -25071 * 15880 / -17212 * 30943) * -3731 - 28713 + 26127 / -28857 + 12082 + -12964 - -31922) * -12295 + -26824 + (-31061 - -18340) / 25139 - 28096 * 6898 / -29952) + -29845 + -4715 * -29119 - 4858 * -23651 + -1729 * 30872 / 29958 - 5497 * -20518 - 32756 + 3926 / -16980 * -2792 * -17122 + 4842 + -2418 * -2054 * -26420 / ((((15194 - 32629) / -20992 / 15881) * 15405 * -29571) + (-4077) / -27110 * 32297 + 2769 + -13517) + 2643 - 23230 - -5387 - 8726 - -26587 + -22494 + 24391 - 7508 * 10021 + -4357 - 22113 / 26035 * -24269 - -10567 - 24820 - 3097 - -19770 * -17076 - -27736 + 29088) / -28509 * -11910 * 28826 + 32570 * 19325 * 4727) * 1722 / 26883 + (-27628 + -26187) * 11802 / 24563 + 5033 + -15146 + -27513)"#,
+ r#"(12979 + (298 - 26481 * ((5923 - 6726 + 19168 / -25914 * 13914 * 23609) - -26903 + 3276 + -19404 - 1703 / -25235) / -17437 / (-2842) + -18818 + -16243 / 27336 - 27685 + (-18865 * (-18480 - -17478 - -9375 - 3372 + ((-24167 * -3007 / 5464 + -2137 * 4221 / (-15020 - 10776 + (32357 + 473 - 10821 - -2703 / 4115 / -23982 + -31973 * -30998 * (24811 - -4678 - 28662 + 10412 - -4113 - -3262 - 15999 * 3211 / -3020 * -6464) / 19146 / -4619 - (10771 / 11031 - -25649 - -7294) + (24054 * -12149 / 16568 * -12166 - -26474 - 4943 - 22824) - -22765) - -25755 * -11499 / (18888 - -14928 + 16058 * -4315 + -13126 / 25068 * (32626 + 17867 - 15824 * -1774 + ((-15480 / 19091 * -30564 + -17240) / -9200 / 29188 * -29786 / ((-982) + 14073 + -5634 + -7815 + 29947 / 10520 + 2927 * -8309) / -19134 * (-22986 / 15655 * 29077 * 23443 * 1825 / 23225 - 6852 - 15002 * -23685 - 32055 - 30674 / 986 + -6494) - -17414 * 31020 - (32479 / -28036 * 28599 * (28017 + 29925 - -165) * 28625 + -26315 - -31881 - 21934 + -21972 / (10646 - 26483 / -16697 * 24089 + 11495 - 6621 / -15025 - 2264) * (22670 * (-23759 + -11209 + 32324 + 28251 * 29072 / 11025 + -14724 * 31395 / (27313 / 4137 - 24327 / -30597 * 32152 - -13938 * 27773 / -26771 * ((-27219) / -22901) * -16091 + 5628) + 5655 * -3423 / -30790 * -29574 * 5658 * -24322) * 29173 + 19653 * 9820 - -10342 + 11260 / ((20087 * 29479 - 25646 + -14298)) - 10248) + -4591 - 14790 - 22636 - (19020 / -19470 + -4446 * 7130 - 2792 / 26197 * 4808 / 17490 - (-24149 / 19555 + -26628 + -30998 * -294)) / -7222) * 25697) - 25234) - ((11214 - -31564 + -10569 * (-4725) + (458 - 6879) - -9642 * 9799 / 26368 + 15916 * (-20414 / 5890 + 18922 * -9200 - 9208 * -8747 * (-9368 * -11378 / -7692 * 29902 * 29046 / -16717 + -26066 - 18115 + -18655 * 31486 * 20675 * 5649 - -8691) * 18040 + -19577 * ((-19713 + 10607 * ((9940 + -22331 / -7784 - -7728) * -31226 - -25168 - -26834) - -30717 - -21378 / -15243) + 22146) + -12430 - 30571 / (14939 * 24736)) - 23495 + -32181) / (11070 - -18373 * -20704 / 27354 - -14691 / -5124 * 138 * (9555 + -1883 - -28082 + -16267) / 11533 * -9131 - -22290 / -21173) - 8241 * -22064) - -20958 * -27858 * ((((465 * -26923 - -6191 - 32129 / -1975 + -11590 / 13945 / -10407 / 5364 - -15271 + -25231 + -26030 + 149 * 27863 * 24846 - 10876 * -4830) + 11095 - 14985 - 14794 * -7514 / -18341 + 15650 + (-17855) * 5609 + -14090 - 15229 / -6822 * 8778 / -26898 - 23536 + 9570 * -10457 + 30425 / (7749 * -942) * 872 - -4219 - -12045 + -22119 + -26592 - (3684 * 30521) / -30462 * -7894 + -13625 / 31285 * 11306 / -1579 * 27867 * 25023 * 27415)) * 7677 * (4351 / 1900) - -6939 * -23160)) / 16987 + -6719 / -23373 / (2642) * 28444 + -19212 * -11699 - 27354 / 32706 - -11474 * -10886) + -4212 - (29297 * 23971 / -7597) + -1913 + -24005 / -14712 * 18366 * -12986 / -13173 * (18126 + -23610 * -20339 * 32318 - 14749 * 19735 + -10451 / -27794 - 23756 / 2209 - 6534 * -2505) - 7498 / 8931) - 22490 + 10622 - 7610 * (-17030 * -21501 * (-11016 - 1621 * (-18097) - 12156 + 6527 - -4665 - -17944 * 29826 / -25521 / 29923)) + -29062 * (-3788 / -1915 + (-12670) - 5482 / 7055 + -3398 * (-10656 - 653) * 10720 * 19085 + 20268 * -10871 * 20253 * 15558) / 29909 + 20958 / -19165 * -22428 + 10859 * -5280 / -14587 - (6866 - 18222 / -29698 - 15291 - 14540 - -29608 * -29165 + 14193 / (-28121 + -4893 / 19775 - 10147 * (5616 * -23200) * 3640 * 1237 * -13558 * -1763 + (-8178) / 11790 + (17429 - 21854 * -3927 / 23656 + 12348 * 5137 / 14309 * -18488 * 13020) - 10561) / 29765 + -13417 * 2810 + (-28366 / 29629 - (14959 / 18167 * 286 - 18116 + 7058 - 10855 + 4562 * 11602 / 23425) - -2778 * -14207 / 3758 / -11312 * 6178 - ((8997 * 11541)) / -5691 * -31585 - (-24515 / (-30755) + -7348 + 27659) + -15052) / -7756 * -26870 / -2390 + 1451 / -4749 - 21657 + 30323 - 3963 / -27057 - ((9329 * -161 + -24823 + 4302 + (-28999 / 28055 * -30801 * -21663 / -31240 / -8237 * -19504 - -25665 * 14154 - -23326 / -3055 * -19901) + 8918 - -28896 / -16208 + -22354 / 22638 - 3948 * 25715 - -14005 + 1308 * 30051 * 32473 / -26979 - -25371 / 6007) / 9961 * -29370 / -22262 * 16101 / (-15091) + -14525 - 1190 / -18352 * 23841 * 21697) - 10379 - 19122 - -16478 - -24285 * ((19493 / 11580 * -32162 / 21522 - -7116 * 31276 - 17760 / -1269) + 17912 - -31889 / -2570) + 11872 - 29767) + -3577 * -25613) + -28246 / -25575 - 21962 + 20271) * 20671 + -12290 * 13347) * -32599) + 17055 - 14648 * -32470)"#,
+ r#"(28462 * -19651 / 14247 * (-22278 + 31250 + -29638 - 20753 + 10762 / 23112) * -14880 / 1803 * 18420 + (6655 * 29648 * -16937 + (-19159) * (-16866 + 25053 / 13685 + (-21958 + ((-8545 - -29613 + (-29393 * 21756) / (-15243 - -14766 + 401) * (-4207 + -19496 / (12759 / (22387 * 27329 / -4872) + -3266 - -7146))) + (-28530 / 31456 - -11453 + (-3203 * 19331 * 11378) - -4934) / -26221 * 7444 - -9611 - 2548 / (-4291) * (19939 - 17652 * -18490 - 15995 + 4129 + -25847)) * 26035 / -19909 * 21891 * -29365 - 12112) * 19406 * (16237 / -27233 + -18666) + 6023 * 12428 + -8146) * (-26919 / 5986 - -23079 + -17427 + 26955 / 25529 - -3493 / -19973 / -5188 * -178 * 12666 - 10876 - -1104 - -16470 - 7404 * 16638 / 7795) * 32620 * 4219 + -12201 * -25468 / -10335 * -26289 * 22428 * 17147 * 28204 + -15740 + 27963 / -1834 * 15208 + -20840 + -8853 / 23186 * 7171 * -21657 + -20720 - 9329 * (-26887 * 22084 - -12873 + 14025 * 9647 / (6956 * 14729 - -13212 / -25456 - 9886 * -21250 / -32208 * 12626 + 20415 - ((-18900 + 8569 - 1942 * -32150 + 31472 - 8534 + 21717 / 23736 + -8792 * -14601 * 12316 / -26682 * -30443 + (-8043 + 27691) + -32371 * (-5165 - -12477 + 3784 * 9705 + 24978 - 10177 + -17478) - -7147) / 30314 - -24951 + 10044 / -9919 / -13876 + 5888 / -28922 / (((((-26902 + -19740 * -24995) + 13186) * -7154 / 30316) / (-24064 - -20599 + 21904 * -7256 * (-24952 * -22194 / -11802 * (-21696 * -20290 * 21468 * -26168 * -12670 / 18807) - -18314 - 23253 * -11039 + 12155 * 28824 * 25373) + -11994 / 24611 + 21380 + 3066 - -9185 + 32075 * 26763)) + 1) + 13061 + 2497 + 10266 - -14752 / (-12724 / -18497 * 3560 - (2570 * -32489 + (-17883 * 15731 + -148 - 6593 * -19281 * 30045 / (15485 + 13293 - 7376)))) / -8664 / -1924) / -27667 * 15227 * 9103 - 1680 + -6672 - -30674 / (5082) - 107 - -11851 - -23245 / 2878 * 23651 * 10331 * -25412 * (-4459 + -24946 / -12944 / -25999 / -9036 / 26759 / -26419 - (-17456 - -24842 / 15026 - -19527 * (-24341 + -7206 / -11939 * -6351 + 3295 * (8699 / 3412 * -24409) / 15346 + -25676 - -9769 * (1572) + -20114 + -3716 + -21737 + -26454 / -26739 * 13205 - 879 - -20534 + -379 * -16468 + 4484 / 29022 * 15923 * -32022 + -4182) - 5414 * 18687 * (12500 + -11723 + (8288 / -3582 - -17302 * 23659 - 9002 * -4682 * -17414 / -30736 + -4073 + (-31141 / -5598 - 2150 + (28506 - -2484 - -7130 * -15410 / 28934 - -18383 / 10809 * 9650 / -22147 * -32006 * (-16674 * 23473) * 7100 - -23655 / 9090) / -28516 * 8471 + (3694 * -4919 / (-20655 + -5183 * 16791 + 19881) / (18140 + -26423 * 16806 - -22668 + 1777 / 21754 + -18878) * -6449 - 14936 * (-24531 / -10600) - -14260 / 28127 * 1095 - 14801 - 15039 * -31901 + -13969))) + 13278 / (8779 * 15547 - (23721 / -9873 / -30249 + -27235 + -3544 / 11662 + -8432 + 19145 - 27139) * (6015 / -16724 / -12829 * (26219 - -14395 + 28730 + -13143 - 5090 + 31404 - (-27231 * 10096) * -10098 * 19477 * 10445 * -28760 * -13340 / 15930 / 21714 + -17955 + 9378 * 16735 / -6281 + ((8100 / ((-17190 / -17949 + 4195 / -6935) + 1) / -16276) * 22775 + 29745 / 25889 * -14752 * 4104 / 4356) / 29073 * -16027 * -24395) * -7582) + 23766 - -25543 - (-30710 - 27673 * 14662 / -8878) - 9033 * -23921 * -29245 * 22642) / 20640) * -9821 + (9658) * -22591 * 7039 - 16308) / 3753 - -5640 * 6706 * 3420 / (-12651 - 29070 / 7389 / -416) * -24146 + (24212 / -7269 - -15208 / (32374 + 3650 - 10270 - 13418 - -31936 - 4969 + 5789 + -14896 * 1016 * -30805 + -32114 - 9443 / -3861 - 10760 * 16873 * 9567 * -22575 / 3484 / 9264) * 4807 / -19576) * 2130 + 19164 / -13610 + (12094 + 20212 / -10778 * 17763 / 15774 + 14254 * 31964 + 6091 / 5415 * 23144 / 29713 - -190 / -16128 * 23355 + 1331 - 27410 * -8901 - 27400 * -31355 + (17858 + -3190 + (-28964 / 18078 / -22396 + 12658 + 20360 + 22201 - (8492) * 14591 / (-31717 - 17009 * 18308 - 4910 * -23924 + 15675 * 3266 / -19555 - -20738) * 4645 * -3003 - (-23343 * (-4959 * (-4007 + -26454 - 29358 + 32346) / -21456 + -13990 + 11037 / -30702 * 1255 - 17499 / ((-27881 / 273 / (1328 + 14728 * -24734 / -19357 / 17496 + 32493) * -30769 * -1881 / -22200) + 1) * -5573 - (3732)) - 23892 / -31091 / -19865 - 18541 + -3308 * -31674 - 21768 / 21992 * (-2490 + -11642)) - 32226 / 5733 - -1842) / ((-4402 + (31243 + 20545 * -18947 * 15553 - 32185 - -15544 + 25570 / ((8209) / -31126 + 21064 + (-28673) + 25436 - 32078) - 13511 + 12125 * -16064 + 10661 / 28882 / 23420 / 10943) / 22054 * -22324 / -9347 / 22211) * 25765 - (-10589 / (20779 - -30851 * 3179 + 20719 * -24539 + -16354 / ((11410 / -15728 * -10628 * -9592 / 16142 * -25936 / (-28291 / -28041 * 11289 + -15627 - -9905 / 14402 + 17454 * -1568 * -24993 - -8953 + (-20670 - 5689 + 3737 * -7806 * -15294 * (-22763 - -8644 - -18758 / -25395 / -24370) * -30225) - 19673 / -15422 + -22593 - 59 + -11421 - ((-16077) - -21202 * 11773 / -4253 - (-20771 - -7582) + 5817 / -13935 - -10357) - -10102 + 25273 / 25914 - 24427 / 13902 - -28815 / 28383 - 27352 + 13656 + 14325 / -27638 * -27603 - 26080)) + 1) + 19594 - 9216 * (-31885 + 20832) + -20354 / 10756 + -5099) / (-31719 / -3525 + -12835 / -20234 - 15296 / 3642) + -18943 + -19426 / 24352 / 18293 * -24762 / -5512) / 12874 + -12099 / -32683 + (-26388 * -14529 + 21577 - -15395 + -796 - -22443 - -11281 - 1928 - -18449 * 19981 / -5746) * -18522 - 17341 * -3211 - -23896 / -4177 / -25970 / (-30811 + 9854 - 17067 / -1603 / 8715) - 9197 * -21185 / 2705 / 6728 * 15796 / -4025) + 21068 + 31455) + (4592 + 18183 + 8485 + -6834 / ((31550 / -32486) + 1)) * 28650 + -18347 * -14764) / (29109 + -29128 / -10152 - 10049 / 18626 - -23978 - -17114 * (-28591 * (26372 + -9209 + 29665) / 18096 + (-25007 - 26405 + 2996 / -28644 / 22814 / 13099) * 15043 + (28348) * -18072 + -10367 * 1771 / 20767) - -24017 / 10878 * -1658 / 5767 + -25479 - (-5300 * -17914 * -11689 / -24778 / 3109 / -30376 / -25381 * (-1069 / 25019 - 12288) * -25054 / 30116 + 3501 / 31526 / -7494 / 26226 / 16679 + (19633 - 24208 / 19295 + -17123 * 29034 - -10379 / -24282 * 9729 + -23687) / 8950 + 22610 / -238 + 7183 + -29038 - ((-5881)) - 8362 + 30766 * 12443 / 32745 + -441 / (5460 * -23905 * 32496 * -5503 / 9272 * 5890 / -8810 + 23444 + 8086 * 27276 + -31230 * 5656 * (-6672 + -8951 / 3548 - (15119) + (14038 + -32637 * (-30436 / 11796) - -6623 / (-27982 - 9243) * 6963 * 2961 / -2786 * 6306 / -31983 * 6966 - -18227 + (7107 / 27364 - (-30275 + 4739) * -6810) / 6625 * (-29555 * -19537 + (-32373 * (13809 / 686 * -14557) / 357 - 21501 + -30131 + -19297 - -12785 + 11836 + (-10698 + -2929 * (15103 - -27188 + -14376 - 28657) * 28073 - -21094 - -25321 - -22172 / ((-840 / 32399 / -2257) + 1) / 25178 + 19291 + -16804 - 2938 + -28256 - -19067 * -14804 - 10724 - 6717 * 12219 + 19278) * 384 + -18730 + -9643 * 1331 / 23274 * (-10492 * -11180 * 19068)) + 16943 - 32751 * 1054 / (605 / 18718 + -11299 * 29842 - 5193 + -23968 * 11870 + -32105) - 3308 / -5889 * 6248 - -22294 * -21184 / 31344) * 18097) + 11440 / ((23191 / -26096) + 1) / -25113 + 6796 + 17250 - -31137 * -6509 * -610 - -19131 - 12374) + -20499 * 23889 - -26401 / 28304 * -25631 * (-16212 * 25857 - -6960 - 4366 / -24739 * 11222 - -5898 * -7364 / (-9867 + ((-29863 * -13611 + 4931)) / -13053 - -2209 - (27458 + 5485 * -22927 - -17665 * -20021 - 6715 * (13821 + -6425) + 16803 - -2899 - 27223 + -9177) - -25226 / -16241 / 10111) / ((-31648 - -20677 + (-2572 / 31132 + (14093 - 4965) - 19833 * 30076 / -19279 + 15683 - (21462 + (-8251) * -2644 * -9052 * 26161 - 14665 + -21187 / 31738 - -3840 + -10100 + -18593 + -6362) / -11208 * 21530 - -23546) * (30363 / -12584 - -11088 * -5164 + -529 - 21777 - 15128 + 21018 / 32234 + 15428 / -14602 / 12522 + 26310 / 13965 * -21449 * -7531 - 20189 - 22347 + -17069 - 1050 + -8729 + -19101 / -27233 * 29316 / -11437 - -24375) - 18027 - -19182) / 18901 + 21595 * -31271) * 13036) * -12539 + 27475 * 5519) * -15957 * 17245 / -24888) + -20948 * -13385 * 23184 - 22017 / -14560 * ((30439) * 10384 + 26933) + 17764 - 30726 + -3558 / 615 / 20488 - -18229 * 12421 + -15135 / -28381 / 2158 * -27046 - -6818 - -10587 * -12195 + -3681) * -15614 + -22720) * -2670 * -16706)) + (15170 * 8216 / -18642 * (-9876 - 27928 + (-30264 / -1973 + 6299 / -3430 / -25858 + 22029 / -8165 / ((18535 - -30010 * 10248 * -23549 / 12952 / -9431) * 24519 - 23149) / 1066) + -29652 * -1597 - -25446 + -20246 + -15988) * 25322 - 17820 * -28963 * 29767 + -10944) / 29361 / 15068 / 12230) + (27836 - 20174 + -30371 + 8256 + 18864 - -31742) / (29065 / -32083 * -24616 / 17626 + -22890) / -22123 / (-17594 + -2420))"#,
+ r#"(24074 * 26564 * -20104 - ((26092 + -10334 * 26643 - -21713 + 17119 - 8287 - -20065 / 15303 / 27714 / 21595 + 8040 + 28948 + -28961 + 8116 * -27636 - -14253) / 25944 + 22890 + 23799 / (21367 * (22537 / -30308 + 10696 * -4919 - (619 * (-409 * -29384 + (6718 - 27903 / ((7938 / 11588) + 1) - -2512 + -25155 - 8777 + 22547 * -988 + 8767 + -2636 + -5732 + -17106 * 12876 / -20192)) + 28886 / -18221 + -28137 - 21286 + -24969 / 16225 - 28931) + -13325 - -21181 + (17619 + 3059 * 22029 + 21053 + -21598) / (24453 - -6622 * 12678) * 6154 * -28840 / -11565 + 16839 - -22488 / -29677 + 21812 + -3295 * 7424 / (17667 + -26394 * -18812 + 25232 * 14062 + -13542) + -10682) / -21316 * 10977) - -10770 / (28851 - 27884 * 11207 - -18436 / (26617 + 25316 / -20595 * (22559 + -13100) + 4119 - -5944 - -1971 / 15245 + 17703 * -17524 * 20950 - -21541 / 18825 / -24153 + 9168 - (-7712 * (18090 * -22330 / 3790) - (13387 - (1850 * 15426 - (4068 * (16627 - 9372 - 29881 + -7905 / 2188 * -2931 - 26998 * -21455 + -4846) / 3486)) - -4012 / (-2672 / -25870 * 22541 - -18673 / (-28707 + -7534 - -10373 - -9818 / 12315 - 10409) + -10645 - 22468 * (28471 / (-28272 - 12139 / -5149 * -4495 * (4972 - 25293) * -10109 + -17908 + -22578) + (-8136 - -4522 * (18551 - -24302 - -26888 * 13048 + 20196 * 6861 * -11828)) - -4663 + -2761 - 25071 + 4940 * -27684 * -3406 * 14103 * 11448 + 21839 + 30364 + 5757 - 18440 - -26834 * 9810 * -24370 - 12780) / -6317 / -6059 * 17036 / -1052 / -3437 / 8020 - -15839 + -31695 * -9953 / 26930 / 9173 - -19760 / 26510 + -20065 * 27084) + 3163 / ((-17303 * 23442 * -11781 + 17246 - -4764 / (-5721 * -16258 / -10979 - 11372 + (2070 * 64 * 24851 + -1157 - (6085) - -24026 / -7815 * -19608 * 176 + -9192 + 13703) * -25131 / -27418 + 26593 + -30678 + -17757) / 12012 / 16284 + -21750 + 30874 * (24527 - -14650 + 15210 * (-5220 - (-10260 - 3717 * 23789 + 22746 / 651 - 21629 * 23552) + 19537 * 31958 / (-13814 * 23131 / -29333 - (-18325 - -24194 * 8519 * 20067 / 27687 - -29021 / (-802 - 2474) / 5866)) + -9959 / 15002) * 13934) / -24424 / 9026 + (-16208 - -7277 + -17658 + -12057 + 20427) * 19843 / 25237 + 22514 / 19328) - (9735 / 30222 - 26628 - -1062 + 15966 / -24030 / -16352 / 24136 * -23417 / -5731 + 12905 + -22401 * -15881 + -4119 / (18017 * -15321 - -32280 + 16794 + (-1372 / 16253 + 13899 * -11929 + -6711 * (-21472 * (27729 - -4714 / (12406 + -8496 + 10932 / (-16166 - -1532) / 5021) / -10541 + 17722 / 1274) - 9785 / 5443 + 18236) - -6527) / -21169 - -16309 - -26433 - -1077 - -14557 + (-9443 + -7770 * 5042 + -8184 * 16796 * 23703 / -28093 - (17649 - -30816 - -23383)) - 21293 - (-11072 - -12076 + (-170 + -4704 / -23142 + 19266) / -2097 / -22199) - -17044 + 6107 - 6732 * 11770 / 26286 / 15910 - 11193 / 4527 + -2450 * -24249 + -23756 * 17339 / -22288 * -13503 + (-28743 + (639 / ((-14433) - 24335 / 21451 / -8549 * 6510 * -20694) / 1709 - -23039 / 868 - (-13931 + -5955) + -24796 / -29495 / 30187 / -13700 - 19478) - -12748 / 2675 - 23674 / -10830) + 30465 * -18613 - -28822 + (3805 - -3893) * -27922 / -17448 * -10626 + (-8771 / -8197 + -26511 + 32541 - 24230 / 32462 + -10722 * -18945 / -25695 * 2899 * -29826 / (-3963) / -12382 + (24488 - 23680) + (1705 + -30387 * 23419 - -28055 - 2355) / (28480 / -12138) * 11266 / -672 + -3734 / 263) - 26180 * 11443 * 32042 - -26213) * (-8354 / 17634 * 8308 + (30093 / ((16920 / -29423) + 1) + -6000 - -12388 / 16762 - 4258 + 21972 / 4181 + (-10372 * 26998 + 4353 + 29862 * -4003 / (19942 + 21488 / 32164) / 19430 / -22059 + -32515 * 23819 - -28846 / 21317 * (-32478 * (-31428 / -21795 - 6585 - 8351 + 13192 / 28531 - 7169 / -31055) / -22057 + 8811 - 10957 * 32282 + -20310 * 31267 - -24521 + ((11989 - -25258 + -20684 / 8968 - -28362 * (-16723 * 28204 / 3028 * ((-15633 * -12340 / 27031 * -18240 + 5215 * 15835 * 1808 + 6182) * -10696 - -16464 / 20749 * -10965)) * -29 * -8225 * -19490) - 31989 / 4290 * -11887 + -8637) * -10471) / -17895) - -24298 * 26971 - 24952 - 12544 + -15034 + 381 + 22553 - -20820 / -14093) / (17285 + -25737 * 6485 * 19060 / 27515 - -16376 + 23179 / -23697) / -27174) * -30626) / -792 - (-29674 * (-5520 + (-14272 - 11027 + 8403) / 5076 * 30642 * 10333 + 28054) + -28663) - 30668 / (29888) * -22584 / 24534 * 22387 * -21488 * 4035 - 15976 / -16963 - 31201 / 8357 * 4902 + -22369 - -30359 + (-652 + 26781 - 20469 + 11647) + -27150 * 25136 / -4005 - 9162) * 29441 + 23352 / -2728 - -2330 + 12688 * 28182 - (30565 + 7139 / 19181) + 4397 - -21834 + -30711 / (5175 * (7661 - -5755 - -2516 * 392 * 2989 / 15764 / -14464 - 17374 / -2437 / 4755 - 21735 * (20599 / 11407 * (-29773 / (-30325 / 14665 - -1876 * -3042) + -100 / -1497 - 12895 + 2753 - -28834 * 14275 / -30935 / 3816 - 10400 - 7551 * -31631 + -3781 * -6502 * 31622) + -6483 * -23546 * (7154 / 12576 * 30485 - -30017 * 16207 - -24286 - 29932 * -10797 * -16976 + -20402 / -13725 / 30211 * -9941 / 6138 * (-3098 / -15019 * (-31836) / -29333 * 13691 + 4689) + -24565 * -8435 - -5659 / -28390 + (5635 + (-27778 / 11838 * 7178)) / 16906 * 21687 * 7636 / 8570 + -7358 * -17416) / 16222) * 10175) * 17872 + 14477 * -6058 * 16409 / -12673 - 29922 * 12318 / 15042 - 26533)) / -22580 + 28809) * -23526 + 31995 - -28925 / -12114 - 20239 * 27152 / 29400) + 13631 + -6217 / -26771 * 18383 - -7823 / 18890 / 20250 + -18088 * -252 / 8032 / (21990) - 6743 * (-3779 - 1857 + ((-17612 - 11989 + -14606 / (-24900 / 11083 + -2747 / 9102 + -6123) / 31761) - -7762 * 17253 * -21893 * (8334 / -13531 + -21313) + -18737 + -15535 + 14019 * -20593 - -25977 * 6643 * -6651 - -12443 + 16123 / 16425 * -7221 * (8308 + 12696 / -8150 + -7273 + -7006) + (8142 / 2606 / 10281 / -21199 - 926 * 19257 / 15914 / -8956 / -30191 * (1438) / 7257 * 27775 / 24740 / -23808 * -3554 - -906 + -14123 - -29551 + -11816) / 4024 * 16565 + (-23578) * -4610 * 7420 / -24962 / 15233) * -11037 - 19246 * -23669 * (-29734 - -24124 / -2887 * 4444 / 30676 + (14594 / -14376 / -31449 * -16083) - (-5199 - 30358 - 18154 / -5900 - -29741) * 10556) - -27430 + -32454 + (30578 / 15508 + 21512 * -28020 / 13882 / -6797 - 10461 + 11697 / -30772 * 20158 * 5562 * (27905 + -210) * -31117 * (-16688 * -22720 + 26773 - 18134 * 16559 / -12779 - -3403 * 18512 / 13511 + 6 - -20803 - -11823 + -13623 + 5645) + 10809 - -6548) / 1158 + 20777 + -388 * 5499 + (-528 / (-19574 / 24653 + -13487 - 29099 / 21003 / (-7289 - -7216 * -10195 + 7408 - 5907 + 16636 - -12129 / -1025 - -724 * (-15765 / 14119 + -17202)) * -4287 + -1099 * 21420 + -29208 - (-26546 + 6563 * -17851 / -18302 * -26039 * -1748 * 26599 - -20472 / (-22046 + -22727 / 28273 / 4927 + (6451 - 7216) - 24348 - -19729 * -16658 * -25856 / 26215 - -23519 - -29991 + (-11090 - -2630 / -28072 - 13451 + 32397 + -26539 + -3118 / 5826 * 2913 + (-30526 - (-4338)) * 4367 + 11620 - (-28649 - -18304 * 26427) - 9884 * -2700 / (-12637 * 14779 / -6630 - 21156 * -18702 * -19549 + -2870 * 11226 - -22290 + -20844 + -19986) + -9866 / 8727 - 13719) * -21739) * 24469 + -9340) * -7093 * -13803 - 8060 / 1174 / -5832 / -22827)) / -6605 * -16426 - (-19695 / (8515 / ((-5890 / (-26635 - 317 / -2603 / 8459 - 4554 - -19042 * 18323 * 11809 / -9534 - -2244)) + 1) + 32630)) * 1804 / 16748 / (-19288 - (28558 + 31848 - 26230 * -2756 * 5861 - 5196 - 16203 * -10780 + -1358 - 8775 * -32197 - 5178 * 29944 + ((-26591 + (26408 + -17951 - 31635 / 5196 - 32415 + 23870 - 17385 / 1258 * -18017 / -5822 - -25210 * -9185 + -5099 / 25675 + -13962 - -7695 / -32340 / 12040 - 25970) / 16605 / 27976 - 21278 + -18101 / (-13688 * (-9477 * (3222 - -16250 - (3896 + 29487) / 258) + -18308) * -21962 + -11052 * (-6445) * -23671) + 22030 + -23474 + 20070) / 18917 + -9815 * 28949) / -29495 - -11297 - -24266 + -29706 * -21557 / (12855 - 30017 / -6613) * 30555 * 26969 / 5215 / -17945 + -18604 + 6792 - -12018 + (10503 / -24872 * -18323 - 11814 * -25827 - 8326 + -11784 * ((27596 - 27242 / (-8866 + (((13188 * 3897 - 23985) + -9815 - (-18590) - 3058 * 24593 / 5554 + -21755 + -8120 / 7186 + -10369 + -1663 - -29901 * 7044 - -10954 + -17554 * 6493) * -7963 - 579 - -23612 * 8229 / 7128 + -1684) - 19792 + -8720) + -9119 * 31200 + -31018 + (19421 / -14872 - -8262 - -4055) * -6110 * ((-32307 / -11029 / (-15447) - -26107 / -31486 - -20147) - 17017) * (-4003 / -11358 * 24858) - 24428 - 28710 - -5812) / -20441 - 28710 - -10159 + 13676) * -29614 / -20499) + 17021 - -17875 - -25776 / -2394 / -31856 + -12055) * -8065 * -28328 + -23707) / 30185 + 4060 / 1064 * -5872 / 5153 + (-21825 / 10522 * -6072) / -17633 + -10254 / 14490) - 28413 / -29028 + -1096 - 7534 / 8861) / 17759 + 19732 - -18204 * -12995) + (-32233 * -27262 + 532 - 5611 / 25153 + 22073 - (13726 - -18279 / ((20575 - -1206 + ((-28005 * 26064 / ((-3501 + -30905 / 5233 - -26229 * -9614 + 14749 / -7745 - -9387) - 22499 / 22793 + -29810 + (6060 + (13342 - 30368 * 26866 / -29171 + 26) - -3678 * (25200 - 7587 - (15897 / 17765 + 16172 - (-30838 + -2913 / ((-3580 + -32720 / 27676 / -27502 * 1074 + -6408 / -31426 - (12583 * -20145 - 4495 / -18152 * 22516 * (-9378) / (-26646) * 12493 + -30828 / 24784 / (21081 * -2746 / 22047 - -2215 / -15005 * -20516 + -16181 * -4404 * 20332 - -30035) / -7956 * -5780) * 17729 + -27188 * 25839 - 10431 * 20886 + -5815 * -25552 / 30837 + -18410 + -5521 - -12275 + -31333 / 4202) / 22613 / 24520 + -27724 * 3870 / (-2230 / 3532 * 13773 + 14456 - 3114) + -16886 - -30411 - -30637 * 10542 * 25858 * -5423 * -28026 * -8861 * 3 + -5755 + 11411 * -8896 / -2743 * -8724 - -28542 - (926 - (((5298 * 41 - 12666 - -25626) * 30584 + -7518 / -765 * -29034 / -14625 / -23719) - (-19891 + 21396 / 22405 * 12266 * (14044 + (-6807 * -5845 - (24651 - -27257) / -19551 * -5747) + -25864 * -29764 * 18702 * 11701 / (-23768 / 9475 * 10179 - -8165 - (7064 - 21797 - 25144 * 29584 * 14654 + -16791) * -15087 - (-10520 * 26391 / 32394 + 22444) / (13025 / 6887 / ((-10200 / 27149 / 18291 - -20392)) * 17255 - 14777)) - 15398) * -15972 + 30315 * 14347 / -17102 / -26893 * -32118 / -3152 * (-12293 - -26425 * (-15525 + -9232) - (17123 / -31232 - -21030 / 28626 * (27153 / -9941 * 6924) / 27454 / -1642 / (-28306) * -2709 - -28776 * 18843 - (-22031 * 5835) * -20148 + -26090 - 1351 / 30753 / -28971 - (-2027 * 14211 + 12201 + -29450 / 28029 * -10818 - -30005 * 20182 - -2657 - -11185 / -20962 - 18392 - 19874 - 13687 + -11440) - -29661) / 29456 - ((20060 + ((24943 + 28507 / (31112 * -30884 / 5049 * 11727 - -2004 / -31347 + 22702) - 24626 - 5167 / -7962 - 2651 + (-7274) / -29281 * -1624 / -11630 * 28347 * 25824 / 11446 + -5857 / 11846 / 27433 + -1305 + 26838 - -20841 - 21696 * -31494) * 22879 - -3630 - -11751 * 23149 * -12458 / (24269 + 7398 * (16702 / (5077 * (28800 - 27117 * -10710) - 28543 + -16897 - -4355 + -7245 + 9527 - 12844 + -20377 / (-13059 - ((13967 - -32583 * -3478 - -17722 * 3804 / -8681 + (-20737 + (-17569 + (-12770 - 1339 + -17896 / 5036 - -12502 + 6597 / -32221 * (-1069 * 2911 + -24129 + 16555 * (30984 / 32505 - -21223 - -22681 * -14033) * -20202 + 12268 * 22951 / -27450 + 29633) * -25982 - (-4936 * 11640 * -28940 / -31049 - 19518 + -23687) - -5884 - -7223 / 28442 * -13350 * 2257 * -13806 / 9557) + 3130 * -13572) * 9553 * 32285 - -28862 * 28191 * 4232 * -23231 - 22826 * -15229 - -15687 / 27662 - -8883 + 19099 - -8637 - (-32543 / -18664 - 29355) + 29451 / 23022 * 13986 + 8936 / (-506 * -19272 + -2 - -15256 + 21492 / (-29507 * -27990 / -26885 - -18293 * -14421 + -15616 + 29077 + -10947 / 13016 * -2634 / -15022 / 26075 * 6821 - -17638 / -7986 / 27761) - -233 * -24928 + (11183 - 19998 * -7431 - -1419 - -25743 / -16062 * -2252 + 22710 + (-18349 - 14196 + 21447 + 8120) * 26981) - -30635 / 11543 * 5879)))) - -27140 / -6349)) / 25620 / 27177 / -30681 - 15057) + 15570 / 28865 * -21428 - 11658 * 10197 * -2282) * -18656 - 26635 + 20177) - -16781 / (31006 + 10580 + 30866 / 22750 - 4801 * -543 / -18979) / 11246 + 21141) - -5284 / -2477 / -31518 / (16083 + 23490 + 22126 - 29438 - 25928 - 20331))) - -32653 / 26563 + -20611 * (2669 / -25176) - 2414 - (-1389 / -10438 / -1294 - 5897 / 23216 + (21282) * -25941 + 16685 - (-17027 + -24913 + 26927 * -16324 / 21930 / 7161 + 1313 / 9437 / (6146) * -30975 / 23622) * 5168 / 22856 - -17665) / -7079 / (21202) * 27082 + 15352)) + -19944 * 2395)) - 23082 + 26665 / ((-7715 / -30529) + 1) / 7704) + -31535 + 16947 / 24343 * -29130 * 9617 * (-18372 * -18581 + 18430 * 18969 / 13615 / 22197 / -6279 / 384 / ((5924 / -24919 * 6922 * (-6181 * -3050 / -3752 - 30229 * 14685 / -28727 + 15409 - -15384) * 22186) + 1) * 11205 / -20320 / -995 + 13419 * 8146 / 7154)) / -12998 / -10861 + 8511) / 812 + 20817 - -12544 * 31581 + -20054 - -7958 - -23239) * -17150 + 15156 / -22884 + (16474 - -27357 / 30475 + 14466 * 28619 / (-2189 * 4433 * 19230 / (-23148) / -20078 - -26673 + -7694 * 32379 / 5666 / 13177 * (-16630 * 18553 / 6065 - 11668 / -30338 + 21236 * 21123) / -1676 - (((21305 + -7105) * (5445) * -12639 / -6865) - -31703 - 7323 + 4367 + 17515 + -5137 * (-31172 + 113 / 12147 * 24875 * 16717) / 29380 - -1367 + 1335 * -13042 + (5021) / 27281 - 8451 / 5446 - 1031 * -6831 + 16581 * (12953 - -12816 - -24667 - 2865 / -22505 + 12127 * 27389 / 5035 / 11288) + 31151 - -6815 + 4063 + 38 + 32559) / 25403 - 21781) / 29055 - -2890 * 21038) + 15493) / -11644 + -27567 / 10158 - -20571) + -32067 / 27298 / -12125 - 14785 - 23060 / -17060 + -300) - (3305 / -24052 / 13207 - -18958 - -23176 / 18648 + -6447 / -486 / 30288 + -27928 / -4947) / 11939 + -26480 + 29192 / 6704 - 29927 * 3959 * -23026 + -6716 + ((12400 / -19149 / -20745 * 18203 - -15786 * -22274)) - 29361 * 949) * 29933 + -4935 - (-22473 - -3797 - 26609 / (-32611 + 12635 + -3563 + -31444 / (30727 * -25099 + 29679 / -3748 - -16806 - (-26701 + -2472 / 30813) - (22016 - -3905 - 4844 * 15234 - -25455 / 11209 * (23407 / (-3331) + 21634)) + -28877 - 3116) * 11850 / -28982 + ((14338 + 6174 + -28650 - (-14372 * ((29231 + 10436 / 23893 * 4500 + (-32521) - -9729 + 15566 * -27057 + (-27906 - -4916 / 11479) * -12429 * -27678 + -5505 * ((2327 * (21212 / -442 * 14430 / 32497 + 13733 - -7281) - 28841 - -27960 * -26338 + -13431 - (-16731 / 17879 * -12644 + -11977 / 5063) + (-9310 + 13780 * 10650 / -19366 * (-19042 / 11513 * ((-28396 / 31064 * -152 * 21585 * -11601 - -17535 * -8698 + -27459) * 6619 * -1921 / 24869 - 18310) * (-26362 - -6438 * 7504)) + -26073) - ((28445) - -16036 + -23356 / (10030) - -24888 + (16095 - 6260 / -7722 + -4483 * 26856) * 20873 - -23248 / 30451) / ((6866) + 15119 - 13358 / 27867) + (4383 / -25858 - 12608 + (-9813) - 12064 * 24 - (-15381 + 26514 / 16609 + 5524 / 32453 / 24665 / -17960 * 29758 / -25717 * 29997) * -16059) * (-4367 * 25944 * 21078 + 23715 - (-1275 - 19583 * 23832 - -28590) - -18582 * 20975 + 12358 * 6286 / -23371 * -23783 * -28357 + 24699) / 18894 + -4756 / -28171 / -26321 * -31271 - -3378 / -31964 * -21316 - 12770 * ((-18629 + 29623 - -30367 / 517 * -24756 * -5221 / ((21500 + 29011 + 7587 / -14081 + -26508) - -32466 / 10699 * -19874 - 7657 - -19415 + -7837 * -23304 + -13309 + (32486 + (23365 * -16745) * 28349) * -5816 + ((30753 / -18029 / 4202 * -29111 - 13905 - 2270 * (1079 * 13154 / -20792 + -28907) / -30791 - 12132 + -28205 * 27288 / 4813) + (-20480 * -7369 / -5695 * 20268 * 28371 / -4702 * 15233 - -5104 / -32755 + 30720 * 1380 - -3400 * -14926 * -21242 / -9018 - -6439) * -24890 / 26884 / -21896 * -4249 + 5083 * 18699 - -15960 * -952 - -7138 * -31935 - (-17333 - 11954)) - 539 * -6631) + -8004 * 8885 + (-22167 + 15842 * -14726) / 27494 + (-18007 / -29664 * 32734 + 27511 - -9221 + -19066 + -3911))) - (-14514) - 10999 / 16531 + -1425 - 13057 - 22045 / (21030 + -25585 - (17708)) * 13042 / -9712 * 15833 * (4079 + 7418 + -5680 + -3972 * 20069 - 30183 / 12036 + -20670 - 19542 / 6328 + 20811 + -30888 * -13928 * -17284 / 4483 + -4025 - -20644 - 22694 * -1619 * -18757 - -31290 * -18388 + 20788 + (2405 / -11455) - 988 / 1985 / -2816) + (13066 * -15833 + 32655 * -30284 - -22431 - 583 + 12507 + -18308 - 10920 / (32516 * -4515 - 1315 + -16155 - -8136 + -21727) / -24167 / -18204 * -13725 * ((31945 - -13668 / 28725) / -17924 - 1295 * -29610 * -4386 - 22782 + 3420 - 17968 / -22924 + -11322 * -10685 + 5716 / -11549 + -23907 / -29477 - 17360 * (2691 - -23679) - -21752 + 9870 - -10509 * -4127 + (8131 * -4257) / -30127 + 3926 / -1958 * -30642) * 14634 / 8600 * -23285 + 3875 / 609 - 16197 * -27391 / 18191 * -15488 - -23481 - -32175) / -26169) / -22892 * 7471 * 944)) + -21824 / -4759) + 16256) / 28066 / 28886 / (21921 / -5395 * -29235 / -28393 + 16215) - 19065 - 11921 / -18150 - 32011) / 2908 + 564 * (23685 - 18237 + -13421 * -18485 * (27556 * 10836 * 27456 / -3328 * (13613 / -14866 / -16137 - 17795 * (-31661 + 27350 / 12225) - (14675 + 17577 - (-6334) * 3921 * ((-8645 * 27737 + -6249 * 25570 / (25327 / 12466 / 15737 * -12398 - (-13465 * -21339) * 22253 - -9374 * -13887 + (-11636 / -3713 * 1513 + 16099 / 26433 / 4795 / ((-1804 * -28751) * -24831 * 10257 / 7371 + 14892) * -12926 / -31316 + (31019 - (-3126 * 1582) + -26830 * -5642 * -3446) * 31793 + 277 - 11152 / -17473 / -20281 - 21007 - -32739 / 24222 / -21186 - 26159 / -4232) + 13659)) / -24292 + -11397) + 12976 + 3465 - 11181) - -7346 + 27105)) + -1375 / -14999 * -1813 * -19955) + -13532 / 6926 - 27706 * 7671) * -21183 / -2398 + (14287 - -22693 * -24551 + 12551) * ((-29467 - -5259 + 6166 * 11265 + -11180)) / 3753 / -5717 + 9766 + 14052) / -12339 / -4389 - 15050 / -28009 + -16429 - 5813 + (15398 * (26376 - -15536 * -25723) - 3484 + 30028 - -13415 * 13941 * (-24504 + 8516 * 19720 + -7391 / 6607 + 24627 + -27208 * (26667 / -18141 - 18978 / 29199 + -13410 - 6462 / -22094 / 16674 - 4325 * 3376 / -32567 / 15132 + -557 / -26354 - 925 + -13544 - 5285 - -23633 + -6471 / -29046 * 12924 - 29926 + 22608) / -18090 + 22304 + 31012 / -25394 * -25527 / (17020 - -32498 + 11243) * 6613 + -24592 - 16824 - 9652 - 12962 - -22863 / -13861) - 20342 - 30306) / -29428 / -18972 / 2010 + -1859 * -30051 + -12006 / -18546 - 10462 - -9521 + -20267 + -29329 + -30394 * -1760) / 14108 - -7392 * -9405 * -15528 * ((12572))) - -19602 / -21050 * -31014) / 1913 + -4186 / 14006) - 23244)"#,
+ r#"-3197 / ((-32426 / 7602 + -17645 - -12937 + 6131 / -17310 / (-1736 - 20700 + -13483) / -18389 * 8 / 5892 + 5899 / 8238 + (-2965) * 23743 - -5099 - (6906 + -30679 * 5185 - (13941 + (-15876 / 23620 + 11568 + 22614 + -711 / -8796 / -8069)) - 195 + 1270 + 5430 / -24422 - 16746 + -3081 - ((16437) / -9740 / (-2118 / 14869 * -7594 - -23478 / (-24008 / (-32409 / 4163 * (16908 * 11461 + 11695 * -3792 + (-8947 - (17882) / ((-24111 * 2187 + -15775) - 10681 / 23768 + 20440 * -16071 / 10963 + -6304 - 7999 / -30098 / 29296 / -20523 + 7197 + 5770 * 22621 / -3892 + -11586 + 20146 - 12700 + 3938 * -11454 - -11387 + 22684 + -30845 * -1133 - 7795 - -26971 / 23253 * 9420 + -8767 / -22379 - -10105 / 12201 / 17844 / -3731 - -17039 - 7854 - (-17007 - (16500 + -781 + (2942 + 14249 + -2185 + -32292 * -32604 / -1728 + 22631 / 19387 * -22312 * 32457)) * -22342 - -2845 / 29152 + -5126 * 1410 - (-24084) / -26786 * (13047 + 26856 + 7892 * 26815 - -31489 * 5237 * (-4993 + 24991 * -24189 - 3765 + -310 + -15991 / -8452 / 25262 / -290 * -9983 - -10842 * 15405 / -11300 * 28293) + -16854 / -504 - -9515 + -24669 + -4280 / 21375 / (3883 + 8452 * ((21280 / -24690 * -28747 - -1444 * -20445 + -16852 + -4020 - (-17639 + 31854 * 22156 + (1641) * 28024 + 9501 * 21723 / 9131 + 22591 / -16267 - (-16851 * 23363 / 8647 * 6135 / 29518 + -15603 + -29702 / -20931 / -9570 - -23349 / 31477) - -23267 / -15251) + -3490) + 19894 + -23773 * 30555)) / -25391 + 11769 + -14266 - -17016 / -20234 + 22747 + 15629 + -9713 - 22454 / -7524 / -5919 / -26592 * -4450)) / (12278 * 6315 - 22013 * -6497 + 3557 / 27417 + -473 - 8483 * -31871 * 24390 + -6110 - -22982 * 30688 / -9622 - -4964 / -23790 / 25088 - 16592 / -30721) * 8205 - -26162 * 20776 + 4827 + -13229 * 29273 + -12175 / 13376 / 30362 * 27899) / -26547 * -25390 * 8544 / 16821 - -22848 / -27067 * -27348 + 16941)) * (-12538) * (32614) * 9051 / -30094 / (-12386) / -6292 / 19001 / ((-13272 - 13663 * -345 + -17587 + 28897 + -20531 + -2217 / (-13349 / -19740 - -26826 / 3810 * (3136) * -29738) + -20318 + 27605 / 4462) * (26907 * (-20289 / 15003 / 22995 / -24701 / 514 + ((-17362 * -4545 - -24373 - -23037 * -19806 * 14652 / 15387 * 4542 / 6496 / -8391 - -14418 + 5829 + -17279 / -30281 * (15076 - 31999 * 32439 + 22699 / -11288 * 14384 / -23071 * 27116 + -10839 * 550 - (-29143 / (-28429 - 21952 - -7874) + (18854 + -13958 + -31020 / (-5001 / -28856 + -708 + 132 / -13814) + 25990 / 14377 / 31166 * 19399 / -12146 * -5617)) + -10827 + 28986 - -25639 / -13194 / (-8385 + -24296 * -22971 - 32690 / -27976 - (-10422) - 19279 * (15678 + 28200 - 8555 - -18356 / 5922 * 32315 + (11887 + -6623 / 1046) / -29090 + -2530 + (-24783 / -9401 / 30851 + -23954 - -2115) - 25785 * -1590 - 14436 * -9943 * (-21749 + 26062 * 11794 - 25641 - 14729 / -25455 * 25092 - -23866 - 5524 + -10023 - 11757 * 24889 - (26044 / (-29949)) - (-13810 - (-11434 - -16992 / -7660 + 24213 - 10585 + 16542 - 12374 - -5232 / -4506 / 17464) + -23702 - -13116 * -21595 / -248) - -12615 + -4055 / (20177 - (-11548 * 8212 * -25618 / -4762 * 6814 + (20804 / 21210 + 8282 / ((30252 + 23364 + (-15564 * (-23096 * 2361 - -4431 / 26629 * -26527 + 23024 * -22199 + 13020 - 1476 * 14074 / -17024 / 30430 + ((25900 / -2902 / (-16249 * 22435) * -561 * -13273) - 9720 / -4830) / -2334) / 6265 + 8251 - 16769) * -18087 + 32149 + 30377 * (-13504 - (-30220 - -17540 / -4102 * -21920 * (-19373 * (-22001 + (30645 + 23259 + -28982 * 12531 * -28698) + 17305) * -6293 / -1287 * -12832 + -24492 / 21432) / 16883 / 4077)) - -27942 * (-20245 + 20654 + 20314 + 4125 - 25455 + (-31854) * -32632 * 7846) + -5691 / -12494 / -21442 / -17159 / -18643 - -24590 * -20491 + -21135) / 1772 - 13747 * 1019 / 5266) * -26908) + -20846 + -11027) * -31172 / 15634 / (9205 * (-5535 / -29269 * -24544 * 507 - -10253) / -19463 / (-31405 * (28737 * -28137 - -15582) + 21578 - (3322) + -25157 * 6014 - 14323 / -10663 + 29259 + ((5492) / 29358 / -30716 - -6821 + 20833 - -10531 * 27983 - 31529) - 3598 - 7008 / ((-13252 + 211 + 10697 * -4085 / -1693 / 27976 / -21922 / 18616 - -4188 / -24609 * -21121 - -14508 + (-23399 - -11041) - -13524) * -29138 / 17277 * 1320 * -32488 * -19003 + -27763 + -23451 / -12615 + 3850 / 8633 / -18123 / 32345) * 6407 * -28609 * 8860 * (7468 - -1929 / -13886 / -5391 * 29606 / 32380 / -5427 * 28853) + 7174 - 11151 - 20372 - -7190 - (16393 / -5966 * 13413 * 25090 + 32509 - -13203 * 5188 / 21514 / 18838 / 21029 + 29327 - -18215 * -6811 * -4974) + (-16433 * -25533 * -7043 * -4989 / 14463 - (-10787 * 915 - -3420 * 31014 - (-25774 * 30094 / (-18924 / -19075 - ((-26688 + -1400 - -2683 / -17823) - -2999 / -16572 * (-30893 / 18753) + 30233 * 5697) + (-4627 + -22090 / (-20388 * (-16715 * (-1170 * -13204 / -19721 * -32212 * -8393 + 28343 - 24346 / (25582 * 30638 - -30302 + 14291 - 18050 / 6206 + -6925 - 11026 / -11526 + -2355 + -12342 + 13742 * -1238 * 26304 * -9590)) / 32226 - 22509 + -19904 - -30959 / 29206 * -22947) * ((-29652 / 32081 - 3941 * -14831) * (-1441 * (31604 * -14403 + 23153 / 30313) - (15780 * 19535 / -16260 * 14980 + 29545) + 26723 * -27723 / 2468 * 5014 / 19055 * -31699 - 11837 - -24657 + 272 / 31619 - 26398 - (((-28156) / -763) + 20034 - 23596 - 17859 / -3710 - -9682)) / (-27878 * -13202) * 27700 * -24423 - (8066 / -3642 / -23260 - 5596 / 32218 * 9014 - 27301 * -32679 - -3589 + 22483 - 3590 + 26679 / 20225 - -8266 - -27708 / -25354 * 9484 * 30877 + 2183 - 29280 / -1623 - (10010 * 7598 * -18096) + 10762 * 30071 * -18182 / 5212 * 15147 - -29574 + 8439 / -20143 / -2413 / -29509 / -6783) + 6559 - 26393 * -30672 + 8162 - 24670 * ((15203 - 2918 * 19999 + -25592 / 11783) / -6700 * -26033) - 9807 - -30118 / 11503 * 51) + 3803 + -30764 / 18538 * -30544 / (15964 + 7017 + 13916 - 25696) - 25238 + 8336 / (-6445 + 4258 + 15174)) * -7719 * -28082 / (21500 + 20842 * 1782) - -28992 + 1760 - -6661 - -18287 + 26766 / ((8730 / -8659 / -29007 * -20493 + (10206 / 4288) / -28834) + 1) * -18984 + 29472 + 15437 * 26064 / -5582 * 19072 - 19604 - (14803) - -21358 - 25041 + -4216 / 18981) + 19048 * -24255 * -19525 * -20092 + 11318 + 27533 / -31770 - 32085 * 22266 * 24471 / 23100 + 26842 * 27854)) - 1365 - (5759 * (-8501) + -3095 / -17065 + -17431 / 610 * 30641 / 31703 + 21145 + 11755 / -17185 * (-9760 * 27043)) / -12335 - (29874 / (-31817 - -30134) / -20997 / -6595) + (9068 + 15620 + 12338 * -19367 + (-24148 + (10198 + 2013 + 28292 * -7484 - 10724 - -23837 - 22025 * (-24123 / -2975 / 20948 * 7181) / -7044 * -12619 / -24077 + 28121 / -31517 / 80 * 17193 + (-7607 / -14672 * -6432 + 15512 * -27728 + -15731 / -19053 + -11006 / (-25780 - ((8515 * 17632 - 7253 * 23089 - -30609) * 9783 + (21213 + 1390 / -17489 * 30418) / -25208) - -2777) - 10841) / 5124 + -8658 - -31586 + -27998 + -28372 + 15379 - -8779 / (6366 * -10192 + 21321 + 28502 + -28174 + (12488 * (-27426 / (27764 * 32348 * 30885 - -29610 - -18515 / -10207 * -32572 * 5169 - -31342 / -31901 - -11146 * -7213 + -22121 * 21099 / 8101 - (-14685 - 12866) + 7736 * 13756 * 22901 * -8043 + -27120 * -20743 + -8702) / 30296 + (-18985 + -442 * -26517) * (23796 + -22893 / (13399 - -31249) * (-1563 * -616 / -15895 * 19104 * -27644) * 2344 + 8368 * 14192 * -769 * -25835 * -29914 + (23862 * -30776 / -15452 / -29759 * -4080 + -2623 / -32242 - -29301 / 31194 * -5965 / 8266 / 2481 / -14327) + -24093 - 14407 + 4518 + -29176 / -29770 / 28305 + 10650 * (-24992 / 19092 / -539) + -18758 + -12493 * 12062) + ((29366 / (6899 - 11781 + (13602 - -19844 * 12263 * 9232))) - -32179)) - 14542 + -2111 * -31133 * -31411 - (-29750 + (-10062 / 21323 * -6434 - -31303 - (18387 / 12072 - (8027 - (-15834) * -12067 * -6134 - (-9528 - -3365 * 10625 + -29157) + 4853 * 6452 + -5442) / (32045 + 18615 * -28398 + 25730 - -28866 - 9988 - -12236 / 31373 * (-3303 / 7178) + 3018 / -2744) + -26327 + -16081 - -21265 * -3049 / (26836 - -7923 + (21080 * -8938 * 3580 + -25922 / 26490 * -23194 * (((2940)) * -4396 - 13477 * 20538) - 17752) - (-25181 + 23868 + -13784 / 15498 * (1712 * 22204 * -14063 / -12437 + -24964 + -20435 * -31395 - (-14223 - 29448 / -21374 * -8919 - -24442 / -26206 - -4250 + (-31481 * (18010) * -30822 / -1201 / -22842 - 31899 / -5816 - -7496 + (22894 / -25818) / 19401 + -7067 / 5853 + 23346 - -27275 * 20157 + -23091 / -24801 + (-18344 * 7328 - -29203))) + 6070 + -18055 / 3306 / 28515 - 24263 / -18808 * 28554 - 17263 * 29821 * 19538 / -28794 / 29011 * -27578 - -18405 - -17617 / -3593 * (-25267 - -29022 + 1668 * 4715 / 24387) * (-7432 / 26063 - 20870 + -25903 - 22811 - -31279 / -30646 / -2803 + -389 / 8651 / -22738 + -29609) / -8845 / -25228 + (-27111 / ((27715 / (-30759 - ((-2033 / 23693 / -32602 / 27859 / 1810 + ((-26166) / -5679 * 14639 * -21419)) * (-2826) / -25557 * 2021) / -4923 / ((-9724 / -26453 * (898 - -22971) / (14850 * -5411 / -8043)) + 1) * -7709 * (-12519 * -15731 / 10981 + -28541 - -15499 + 8236 * 31524 / -10723 - -32261 / 393 - -29075 + 16477 - (16954) - -24158 * 1283 + -28077 * 7275 - -31927 / -4480) / 7415 * -11218 * -20502 / 22714 - -21430 * -9350 - 15100 + -24051) + 30703 / -824 / 6119) * 29260 - 4957) * -19343) * 8533) + 10357) + 28778 - -23578 * 27211 * -19006 + -24243)) / (-22084 - 30403 / -31185) / -24648 + 12449 * -9394 / -21279 * 3409) * 5118 / -4294 / -29712 - (4314 + -29822 / 5143 / (-27994 + 7570 - (-12290 + -6132 + -11613 - -8189 / 32350 - 22731 / 15337 * 18525 - -24619 - 26566 * -31619 + 23626 * 24041 - 15409 / -4076)) * -26412 - 21103 - -16780 - 26657 * 9287 * 6415 - -3713 / 20781) + -7945 - -14636) - -3544 - 2580 - (30593 - (-22973 / -18539 * 3783) * 20181 + 30328 + -16907 * (-23794 - -439 + 23 + -1447 + 6844 / -8235 + -9028 * 26354 - -5341 - -12488 + 25104 * 6908 * 15884 / -16592 - -5866 / -31446 / 3508 + 29919 + -3907 - -15484 / -24603 / -25835 / -28670 * -29179 * 8595) - -27899 * -14739 - -13670 + -22730 - -3559 / (-21182 - -20710 + 12098 * -13667 - -21369 * (-28052 + -6376 / 17781 - 14684) + -30338 - 0 / -11154) * (-19303 / 177 / -4677) / 18030 + -14928 + 2107 + 1338 + -17828 * 24003 / 28895 * -16960 * -5241 + 24136 + -9911 * 437 - 20258 / (10249 * -24160 - 12011 / 16569 + 13814 * 31380 * 23316 + (-23199 * (-977 - 7105 * -30318) - ((-3806 * 9285 * -7108 - 28035 + (-26033 - ((26331 - -2794 - -27396 * -25246 * -31765 / 3659 - -21408)) + -8191 * -28239 * 29428 + -32546 * -11519 - -19071 / 12592 / -29072 + 19927 / 32261 * 14712 * -6871 / -23597) + -5250 * -1933) * -19948) - -28060 - 22011 + -13326) + (27603 * 4012 * -18592 - (410 * 19508 - -31037 + -11978)) * 16568) * 23405 * (-1721) / 1219 / (-11261 + 18533 * ((23656 - -31135 * 16749 + 25425 * -19556 + -27568 / 6776 - 14003 * 1180 + 6070 / (-20025) + (-25205 / 3936) * -18029 * 32151 - 429 - 27492 / 15486 / 7396 - -6440 + -1184 * 25390 - -19650 + -23777 / -10377) + -7404 - 2221 / -12170 + -18967 - -11471 + -28844 + -15303 + (17677 + 13333 / -4619 * 9755 - 15660) * 1440 + 27928 / (((20883 - 26781 + 19946 - -20635 / -8490 - 24582 / 31213 + -316 + -32626) * -22410 + (11007 * (16019 + -18524 * -29715 * -8229 + 11771 / -27954) * -26038 + -17805 * -349 - -28679 / -9593 / 22374 / 27887 + 18329 / 32663 * -24304 * 5931 * -26053 * -5129 - (-5718 / -15643 / 30245 / -2079 - -5013 / (-19647 - -1235) / -15840 / (-7601))) / 15264 * 9300 / -10685) / 10774 * -28647 + -25711 - 26937 * -13293 - -15662 / 10666 + -21449 + -24110 / -6669 + -26785 - 11960) + 27491 * -24319 - -9676 * -10358 / 22579 / 6845 / 19946) / (-23923) - 31233 / (28175 * 8634 - 16406 / 10972 * 6542 - -27236 * -15707 + -25443 / -6025 / (12758 + -10932 / -29303) - -12842 / -8264 - 21223 - -1980 * -29809 * 2935 * 11992 / -14638 - -14068 - -17340) / -6306 * 1394 / -8175 / -12793 / -6544 - 24181 * -29827 / -13540 + -13507) * 29345 / -3409 - 13138 / 1065 * -20603 + -5698 / -3016 * 27439 + -14481 - 14910 - -4607 + (-9869 * (-2606 * (-346 * -7711 * ((30116 + (23577 / -21700 - (14770 * -21221 + (6000 + -6226 + -1216 * -13262 - -3873) + -20359 * -8436 - (15289)) + -6454 - (-32025 / -22498 * 12919 / 1517 / ((-4405 - 1203 * -4877 - 14025 * 10932 + 20312 + -12415 - -3299 + (29546) + -8607 / -22049 / 23963 - -31844 / -3754) + 20588 + -15452 + 9643 / -29757 * 16583 - 16037 * 14385 * 3121 / -6775 - 13145 - -28416) * -7899) * (13262 / 23377 - -18867 - (-2816 * 23286 / -14422 / -7859 * (23542 * 24491 * -32399 + -1375 + 17665 + -31932 * -61 - (-31664) / 31497 - -13375 * 30644 * 24065 / 31619 / -29759 - -3080 + 32353 - 29496 * -18711 * -6107 + 27618 / ((-25337 / -28542 / 13414) + 1) * 31687) / -23082 / 5888 / 5675 - (-13680) - -28745 * 23499) / 2071) - -26625 * -11823 - 28331 / -28850 / 22905 + -30900) / -15649 * -25436 / 28219 + -24512 - 10441 * -10004 / 23716) / -95 / 6 * -20918 - -7014 + (-26946 / 25165 * -11448 + -22201 + 4670 - -115) + -6037 + -6349 * -24067 + -4357 - 22428 * (-27790 * 12725 - (-17317 / (3789 * 6384 * -28293 * -8114 - 31693 + 10695 - 32075) - 32339 * 24973 * 14613 / (-1347 + -24725 - 2202 / 882 * -26557 / -32270 / ((-7329 / ((23323 / 24565 - -12061 / (10892 * -1187 * -32305 / (22195 / (-1493 * (-23791 / 29229 - -15298 * (22781 / 29254 * -16763 / 32233 / 10856 - -22422 / 10143 * 9598 / (16985 / -18891 - 15167 - 16644 + (27536 + 5644) * -21893 / -23478 / -10494 - 4783) + 6148 / (-31596 / -9990 / -9630 * ((7425) + (25304 * -18629) + -27776 * -7374 - -27891 + -5925 / 4328 + 10980) + -11038 / -12248 * -25974 / 8416 - 13183 * -664 * -32612 / 19728 / -14698 * -8905 * -12077 / 1866 / -32448) + -12515 / -14467 - -10523 + (26767 / 23560 - 18789 + -27923 - -27933 + -26457 / 14121 * 20189 + 11152 / -6509 / (-31116 * 4232 / 14029))) * (-26954 - -24193) * -30422 / 8489 - 18278)) - 10626 + 14580 * 6392 + 12491 / 19027 / 10522 + 13997 - -2839 / 14070 / -22510 - 15345 / -4697 + (-17712 - (9650 * -6990 - -1296 - 5435 - 21608 * 556 / -18238 / -11059 / -2747 / 16300 - 22007 + 28519 * -6710 / 26491 + 30480 + -19501 + (((-27664 / (18610 * (7343 - (-25168 - (24382 / 2063 - 14 / -16222 - (11764) + -30877 - (-22446) / -23061 - -19040 + -20634) / -9391 * 18707 - -2192 - -29844 - 21630 / ((-12498 / -18956 / -30987 / 26949 / -11643) + 1) * -2829 - -14316 * -25281 + 19814 / -5003 - -22026 + -24027 + 3608 / -8055 * -28720 - -8492 / -25064 * -20102 - 32170 * (6055 + 14586 / -23562 / 20868 - (-20758 + -21003 * -27515 + 18131 + 13137 * -16469 + -24499 + -4743 + (2304 + 16765 - 23790 - (-20704 / 24576 / -12135 + 14628 * 24920 / 16083 / -3161 / ((-30264 / 13975 + -7520 + 12712 - 23684 / 15909 * -12733 / 30053 / 1042) + -8698 * 5411 - -24667 + -1707 - (-532 / 24529 / 28655 * -16476 / -24027 - -24917 * 17916 + -6442 / 2699 * -1302 - (289 - 15616 / -22664 + -23979 - -10116 / -15936 + 2345 - 18238 - 7189 - -19124 + -5278 - 3572 - -20286 - 22901 - 9941 - (-17971 + 12002 / -24743 - 18435) + 18605 * 6087 - -20234 * 30548 * 809 - -7651 / 15947) + (-29945 + -21189) + -25621 / 22111 * -25188 + -471 * 7605 + 2038 / 20887 + -32763 - 25705 * 5380 + 21449 + -25051 * 5492 / 14108 * -31771 + (-19922 * -7018 - -21337 + 13504 * -28584 * -20290 - 22730 * ((((-18535 - -14849 / 20342 / 9869 / 29300 / 23419 - (32159 - -5683 / -17024 * (6445 / -9785 + -3478) / 11483 / (13364 - 4148 - -28119 / (-3644 * 31569 * 27369 / -22898 + -22667) - 15355 - -32549 - -21244 + (15564 + 22268 - 15322 / -7713 * 17143 * 32214 + 11037) / -21147 / -13439 / 21947 * 9371) / -26558 / (12834 / -7288 * (-7827 + -24645 - (-1623 + 829 + 31216 / -4126 - -5936) + 17055 / -14313 * (26080 / 22182 + -6589 * 23323 + 28905 / 23772 * 7321 - -32026 / -25406 * (28544 / -19967) - -2578 + 25054 + 15209 * 9187 / -22220 * 28051 / 30619 * 16105 * (29749 * 30146 + 16573 * -13768 - (-638 + -26675 + -16406 + 17885) * -21728 + 27022 * -11666 - 21278 - (8764 * 294 - 3314 + -25004 / -13631) / -21485)) + -18779 / -12712) / -7396 + -30080 * -15892) / -25310 * (-3746 / -22921 * (1446 - (-24129 - (-25056 * (20657 / 12738 + -13365) + 16258 / -5250 + -21430 - -30599 + 9936 * 25327 * 743 / (10234 - 25303) - -4425 * -26678 + 13608 - (((1997 + -23115 * -20915 * -7583 - 15759 / -21174 / -25211 + -29350 * 13825 + 31867 + -31106 - 24080)) * 6438) - -27034) * -5384 * -32007 * (10504 + -22849 + -26591 / (13936 + 3196 - -27417 + (-22256 + -4220 + 242 * 29608 / 3550) - -12898 + 17762 * 8592 / 20923) / 22457 / (18639 / -26485 - -31513) + 20406 - (7317 / 30576) - (2882) - -18561 + -24277 * -29820 + -25755 * 27585 - -17843 * 28718 * (((-13100 + -29752 / ((-32497 / 31573 * 7264 - 11944 + 8601 * 5977 + 22760 * -18656 - -25256 / -26887) - -25159 * -23251 * -13689 * 28832) * 2652 / ((-11192 / -18464) + 1) + (-32406) * -31180 * 3656 + 25076 * 9089 - 19713 + ((1805 * -24702 + 10852 - -23885 + 23333 - 11836) - 9308 - -17205 * 22763 + 28228 - 3501 - 19977 / -25626 + -5796)) - -11574 * -25814 * -21347 * -18357 - -18973) * (-27424 / -16471 * -7919 + 18245 + -7861 - -8599 / -5367 + 17874 - 13397 - 23746 + -19944 * 4703 / -1414 / 29069 / -31847 + 4497 + -653 / 21125 / 27615 / -18966 - -32312 + 8328 * ((27566 * -7484) - -26241 - -2874 + -8677 - 13000 * 14251 / 10282 / -5814) / 8747 / 17346 / -25353 * (7841) / 9137 + 31623 / (1310 + -4100 + -7996 + -3293 * -19946 * (12391 - 6246 + -29783 / -27865) + -22089 - -24198 + 29403 + 32246 - 17149 * 29640 - -7010 / (7165 - 27185 - 23886 / 24419 + -21411 + ((-9853) * 14450 * (-2794 - (22154 - -4418 / 26201) - 13986) / 24691 * (6080 / 14010 / -13509) - 22954 - -18107 / -19483 * 27744 / -26547 / -7574 - -12498 - -26392) / -20767 * 16064 / -23388 * -24853) / 29293 + -23677 + 24817 - 30861 - -18083 + 26070 - 27134 * (-13843 / (15696 - 28746 / ((20037 * -7987 * -7661 - -10551 + -27395 * 26943 * -687 + (29967 + 15929 - -408 * 6331 + -16961 + 30232 + 19844 + (898 + 4460) - -12268 - 13067 - 22059 - -18975 / 15420 - 21760 + 24357 * (10128 * 22648 / -24656 - -10908) + -1091 + 9518 - -18711 * -14663 * -17549 + -22148 + -32643 + 4632) - -22534) + -11869) - 22585 / 27803 / -28242 * -30942 + 30978 - -27543 / 14046 / -28139 / 3644 - -19899 * -7877 / 26048 - 31425 + 11650) / 29094 * (23227 * -24240) * 16683) * 3427 - -24206 + -7555 * 19353 + 16690) / 27232 + (-11988 + 32564) + -16734) / 8877 / 2098 / 30597) / 27728)) + 6417 + 31379) / (-20880 + -20075 + 18129 * 11491 * 15814) * 9778 / -20240 + -4941 + 3195 - 4274 / -19424 / (-31275 + 32653)) / -23662 + 28242 / 27563 / -17248 + 9223 / 8376 - -28563 + -13485 - 5992 * 12442 - -27256 * 7890 + 13693 - -10191) - -8011 + 27470 - -31372 * 12233 + -8074 - 32351 * -7056 * -10732 + 17074 * -25533 - ((-13703 * -19766 + (21191 / (((-25223 / (-31117 / -28947 / 12627 + 24845) - 29121 + 21563) / 1280 / (-26376 + -9897 * 25590 / -23720 - -21441 * -5377 + 16391)) + 1) - -25960 - 32483 * (-20883 * -12829 / -12107 * 29758 * -22787 * (5120) - 22027)) / (690) / -16603) + (28718) / 30799 * 2136 - 10206) + -11220 + -17092 * 17790 / 9015 / -30144 / ((-17297 + 4781 / -4447 - -27897 - 25588 + 29793 * 15802 - -3409 + -2550 * 11361 / (-14329 * 22518) + -28564 + 29481 + -4431 / -19878 - 32240 - 13665) + 31488 - (-17953 * -28579 - 31828 / -2876) * (14791 * 23785 - -11737 - 15203 * 26004 + 5862 / -24241 - -18810 + 11362) * -10411 + 12721 / -26564 - 2968 * -12794 / (-27477 * (-4792 + (-30994 / 5643 - -3448 / 6659))) + -26432 / -17351 + -27194 - -14718 + -9030 / 22282 + 21584 + -20429) - 26809 / -18747) + -10940) - 8490 - 7758 + -25443) / -27065 * ((-28627 / 12041 - 29145 / 20422 + -6696 / (32199 * -15101 / -12462) * -21284)) / -17651 * -30470) * -26016 + 6180 / -20184 + 23009 / 11390 - -9474 * -14463 - -20090) * -27234 + -23823 + 9540 / -1166 - -15365 / -15180 / 19138 / ((4988 / 24351 / -12950 / 6944 * 22090) + 1) + -11340 * 29910 / (-3031 + 17141 * -556) * -10473 * -1377 / (-15675 * -22413 * 14767 * 1374 - -15418 + -27470 + -15359 * -23744 + -5328 + -2618 + -18632 + ((-31259 * 14844 + 15169 + -2161 + 29983) * (24448 * (11389 + -11661 * 3191 * 28481 + 10183 / 16974 / -22982 * 31209 - -3998 + 19435 * 18682 + 18999 - 3599 / -11322) - 6942 / 22762 * (16572 + 5761 * -26103 / 5384 - 14359 - -31798 * 26964 * -23805 + -20768 + -28417 * -24251 - -11429 + -31260)) * 6005 + -9629 / -7353 * 2156 + 22814 / -13613) - 5934 - (-7042 / -8572 - -13774) * 30182 + -27082 - 1019 * 8783) + 8163 / -18292 + 11442 - 8341 * ((18432 - -11303 * -22507 / -30442 + -2777 * 22465 * -9728) + 24434 / -32546 * -13848 / -7932) / 2971 / -14477 * 29680) / 29735 - ((25054 + -30176 - -27344 * -26394 + -30678 / -7733 - -18513 - (12729 / 19458 - 17131 / -26672 * 18207) - -3490 / 32275) - -15852 - 17033 + (-31171)) - 30326 / -3651 + (-32069 + -2703 + -32395 / -15195 - 13259 * 20565 * 5147 + 28562 + 10248 * (30192 - -16728 - -28012 - 11291) + -20244 + 16773 / -27491 / -3990) + -22930 / ((2776 + -16728 - 16061) / 17086 - -15542) - 27392) - (-21464 - -24068 / -22732 / -17074) / -2506 / -28876 / 30492 * 7647 - 11115 * 6462 + -13410 / 29078 - -26592 / 26421 + 1938 / -6697) + -27816 + (-16837 / 3009 / 7268) * -18243 / -337 - -6217 / 5798 - 44 + -26165 + 3433 + 31018) * 23777 * -26319 + 24374 + -19031 * -9670) / -32264 * -25030 / 19929 / 27411 - ((-12147) / 15054 / 11802 * 22309 * -14508 + 7518 / -3924 / -29819) - -16047) + -31746 / (1445 * -30340 - -32756 * -26090 / 2176 / 3814 * -31216 * (-24521 + 2596 / (21309 - 19345 + (-23679 + 5309 * -23436 / (3352)) * 23198 * 19568 / -8253 * -15399 / 18434 + -26110 - -20773 * -12769 / -12314)) * (-15708 + 21464 - 14054 * -18281 - -24564 + -23993 / -9837 / 17681 / -6001 / 4869 + -31661 - 32515 * 183 / 1072 / -8758 * 26678) / (-14159 - 14726) / 9311 - -6343) + -22825 / ((1709 + -9105 / 22596 * 15339 + -31245 - -29881 + -22168) / -6525 + -13934 * -8085 - (10714 / 15233 * -11033 * (-328 - 25395 + -32475 * 25843)) * -4920 + 18906 + 18119 + -20719 - 12165 * -3876 * 23041 - 16564 * -19304 * -13901 + 1261 - 6088 * ((28034 + 4708 * -14603 / -23257) / 30007 / 12889 - 2079 / (-1053 * 26793 * -22945 - -23830 / 22100 - (17686 - 1073 / (-27678 - (1833 * -27605 / ((25810 / 14475 * (27549 + -14713 + 24005 - 2721 * (-32137 + 25164 + 3294) + 473 / 10972) * 6257 * (-5021 / -20459 * 7676 * -10841 + 27082 / -1927 * (-29652 - -1731 - 22544 / -30304 - -14655 * 30499 - 31540 - 31910 * (4135 - -10858 + (9637 + -20385 / 5934 - -30117 + 4972 + ((-30990 * -22121 + 20911 - -29560 / (-29445 - -31687 * 9674 / 19059 / -31854 - -11177) / 11869) * -16306) * -18171 + 19723 / 14621 * -23609 / -22777 - -8857 * (-24332 / -2763 - 1255 / -31969 - 13753 + -30907 * -19585 + 7266 * -29897 * (-12242 / -19061 - -23851)) + -9807) / 23012 + 1665 + (20340) - -15744 - -30133 - 156 / 15575 + 29307 / -18084 + -2158) * -24268 + -20599 * 29525 - -7999 * -11905 + -363 / -13944 * 16917 + 18080 + -30758 / -19247 / -8349 * 29269 / (4413 - -26340 / -20285 / (-2178 - -16030) / -22438 + -2539 / ((2360 / 22633 * -4188 / 24450 - -26569) * 10449 + 11380 / 14756 - 23830 * 2106 + 110) - -1117 + 4037) + 9039 + -6035 * 30949 / 20926) / 23000 / (26086 + 13937 * 6799 - 7465 / -730 - 16644) / (5867 - 22940 * -31956 + -26790 / -19588)) / -30950 / -5556) - (32626 * -17389 * -9809 * 2792 * (13248 / -30365 + (-7364 * 15413 + -19689 / 17418) * 26875 / 20753 * 5034 / -1854) + 1072 - 914) / -3243 - (-4542 / 29764 - -4004 / 14355 + 8078 + 14275 + -22962 - 7526 - -16993 / -16044 / 5097 + 17353 / -2275 * (25880 * 21958) + (-14494 * (10871 * 12547 * (-18271 * -20148 / -6764 - -5681 * 3451) + (12918) + -18041 / -27591 / -3407 * (12515 + -26719 / 5618 * -15439 * 28476 / -27065 * (8050 / -21546) / 10991) * -28460) + (-23139) / (22095 - -26673 + 5021 / -30457 * 29323 * -20665 + -14942 + 17844 - -24275 * -14333 * -8716 * 16863 + -23421 * -10539 - 5057 / 19838 / 16340) / 25155 + (-14893 * 18997 - (20267 - -17458 - -31894 / 30057)) + 13868 + 20957 * 28499 / 7267 / -25193 / 17288) / -5659) - 26902 - 26578 - -20967) - 12319 / 18293 / (-19404 - (-17349 * (-6394 / (-816 - (16653 / -1725 * -8589 / 30284 - -436 * 25447 * 31434 - 20137) * 15166 + -7425 - 21649 * ((15177 - -18532 * -11869 / 24862) * 16750 - 26463 + 16067 + -22363 * 10952 * -29108 / (-29923 * 16306) + 25666 * 24735) - -14158 * 26547 / (2425) / (31692 + 7996 - -31977) / (-23897 + 26528 * -20557 - -26704 * -8810 + 12605 / -11972 * 32680 / (-23320 * -15859 * -28973 + -18025 / 26927 + -24584 + (8286 - 16361 / 8191 * -23344 - -30513 * -29745 * 30676 + -25903 + 13774) + -31759) - 29091 - -12465 - 26724) + 16247 / (-17505 * -361 - (-19165 / 10124) + 24281 + (-11424 + -22667 + -21241 * 3588) - (9413)) * 25983 + -4269 * -10736 - 6371 + 7124 / 13533) / 23450 * -17641 / -18815 + -5095) + 4628 * 8248 * (17806 * 16440 * -13990 * (15361 - -18221 - -17275 / (-4299 + -28009 * 20570 - -25787) / 20364 + 1882) + -29345) + 29278 * -10085))) + -24677 - -12635 / -18038 - -13516 + 21429 + -19375 / -29228 - 16740) * (-7309 / (8791 * -2892 * -917 + 12782 * 28125 - -16655 / -16521) * 29963 - 10195 - -9758 * -19451 + -18385 + 17848 * -28868 / (-117) + 5628 / 32477 + -13844 * 13285 * -9090 / 11881 / 23519 * -26970 * -529 * (-22359 + ((14484 + -6665)) * -11184 * (21661 * 5116 / 15398 * 21051 / 14085 + 32552 / -7472 / -28166 + -16815 * -15142 - -5338 + -1818 / 7149 + 15221 * 13629 * -26427 + (-23576 * (-25707 + 17353) / 26886 / -5080 - 18051 - -16505 - (-16844 / 30417 - -7514 / -32261 * 11738) - 18509 / (17640 * -28695) + -10418 + -8968 / -17074) + -27925) / 31908 * -8006 * 27145 / 17593 + 12113 / (6421 * 25028) / 18731) - 16726 / -13261) / 14119 * (14923 - -9709 * -20606 - -4738) / -21095 / 9007 * 16377 * -5850 * -22161 + -18685 * (32622 - -20366 / -23557 - -15091) / -25453 + 31096 / -2533 / (-26467 + (-9384 / 18212 / -4693 - 12383 / 16980 + -28112 - 18556 / -9495 / 25375 / 3772 * 8660 / -21184 * ((-2007 * -4696 + -15924 + 32041))) + 1312 + 20471 - -21843 + 20782 / -13786 * 23432 - 32100 + -6571 - -19848 + -19030 / 15884 / 8485 + 23909 + ((16773 - 15305 - 7122 + (-26014)) / 19073 * -1931 / -10737 / -22239 / 24553 * 20682 - ((9140 + 16449 * -32012 / (10892 / -15128 / 10559 + (-16005 / -30593 * ((-22566 + 31162 * (-18775 / -27752 + -10033 / -14584 * 15130) / 21763 * (1635 / -6831 + -29726 / -16391 + -25911) - 5907 * -16403 * 7964) * 19797 - -311 / 6655 * 13969 + -13033) * -846 - -13079) + -15030 - 32346 / -1143 + -32286 + -14905 / 14343 / -19922 * 14552 * 4554 / -6139 / -23086 * 13205 / 169 * -18083 * -24106 - 3796 / 15195 + (16271 + -16002 * -16363) + 5439 - -5817 / 13326 / -9278 + -32019) + 32762 - -12102 / (-1790 / 30687 * -14470 - 26330 + 4804 + 18388 - -20037 + -3471) - 28042 - 1324 + -41 / 27169 / -29886 + 18389 + -25044) - 20007)) * 25894 + 20797 * 298 * -23421 + (22209 / 19047) + -1127 * -25561 + 15335 * -13006) - -6585 / 6389 - -18327)) + (2728) + -26732 + (-19077 - -12047 + -11313 * 25288 - -28638 / -16482 + -30061 / 17049) / -23664 / -17218 + -18230 + 4865 / -32669 / 3455) + 3763 / -21090 * 3753) / 26668 - 25357 * 23630 + 10373 / 5008) + 312 / 2895 * 27005 - -4519 / -17339) / 1883 + -3054 / -731 * -31970 + (-7675 - -5502) / -24324 * -5288 / -29253 / -18246 - 23807 * 26650 - -1347 / 6936 - -6909 - (-18405 / -3299 * 5796 + (12578 - 3899 - -280) * (-4824 + 22133 - 28011 * -30585 / -24286) - -31669) - 1292 - 4824 - -16650 + 10756 / -5692) + -27184 + -20184 - -14241 / 26722 * -12376 - 15841 + -11612 * -10071 - 8211 - -20806) * -5286 * -25931 - 16589 - -25320) - -26789 - 5116 / (13437 - -3102 / -31058 / 5773 - (-2493 - -18073 + 9181 / 4237 * -29608 / 29579 + -30036) - 334) / 19653 * -1175 + 30108 * -27200 + 3412 * 30090 * -21383 * 7016 * 23260 * -1465)) * -25003 * 22192) - -1970 - -13127) - (-13022) - -24461 * -16660 * -27171 / -27436 - -29747)) + 1) * 2188 + -20717) - 25496 * 6366 * 13894 * (29104 + -26332) / -16110 - 15918 + -13848 * -16062 / (13557 * (((9066 / 9300) + -14070 + 8553 * -1837 - 23363 + 2067 + -32379 / 28505) * 20106 - 83 - -12624 * -29306 + (14518 / -27434 + 21783 * -13187 / -23210 - 11007 + 1140 - -21599 * 26750 / -31592 + -32742 / (-17731 / -4500 / -4892 / 8159 * -22686 - -29115 * -12209 - -8478 * -8120 - -31876 / -11870 / 18616 + 32374 * -26472 * -25675 * 25540) * (-6875 / -30713 + -30058 / -3790) / 17942) - (-28600 + -15903 * -457 - -27266 / -4414 + -24901 + 27957 - 5394 + -17184 / -21433 + ((29733 - -6841) / -31696 + 15970 / -12986 + 13784 - -20232 / 24883 / 19509 / 8693 / -868 + 16418 * -7119 * 28477 + (-8462 + 4492)) + 19790) * -27966 / -5808) * -11377 + -30699 / 14156 * 6540 + 9059 / -15631 / 30231)) - -32235 * -20993) - -26080) + 5897 * (-17374 * -32645 * -16860 + 12743 * 14187 - -32343 - 15139 / -13872 / 29192 * -657 - 19424 - -690 / 26687 - (26665 / -14590) * 31449) - -24737 - 828 / -1794) + -21572 * -16033 / -32481 * ((28925 + (6235 * 11185 + -16181 - 15202) + (-17201) * (-7396) / 26930 - -8596) * (-10158)) / -21203 * -5254 * -7008 + 6657 * 26419 + -6620) + 9093 + 13561 / 28806 - -15563 + 30708 - 3595 + 10846 + 15665 - ((15604 - (13308 * -31486 * (-32681 / (-22091 + (-4954 / 28480) - -26081 - -32220 / 11961 / 4181 + 32706 * 6046 * -10875) + -12170 / -10183) * -4044 / 29464 / 23228 / (18570 / 17586 / -32304 + -27627 * 20885 - -30382 - 30227) + 20722 - -29674 - 11405 * -27887 - -6385 / -16042 / -31599 - -14058 / -5140 / -22271 / (-15911 + -24359 / 16114 * -25972) / ((-29732 * 20552 + 2851 * 22246 * -24720 + -24805 * -13930) / 24439 + 32598 * (-2415 * 1851)) + 30931 * 8331) - -3081 - -27283 / (((-15967 / 20142 - (5405 * -11570 - 24467 + 26157 + -4690 - -31091 + (18286 / -12347 + (5606) / -9786 - -16033 / 32519) * 31174 / -27671 * -20148 + -5613) / 30838 / 16540)) + 1) + 7520 - (23949 / 22985) + -271 - -10031 * -3406 / 17309) / -28580 / -11247 / -21893 + 30559 * -17025 - 3259 - (29350 - 14761) - 216 * 24739 / -9932 * -3935 - -19360 / -5960 - 4545 + 2938 - 2264 / 8839 * -6615 + 11773 * 19871 / 6393 * -9760 + -15547 / 22882))) * 5517) / -13195) + 22946) * -31148 * -25178 / -9336 - -16334 * 17679 + (-6169 / -31851 - -6971 / 10237 + 14303 * -29841 + 24053 + -6489 - 32147 - -4835 - -14667) + 27908 + -14784 * -9682) + 1860 * -18524 - -29780) / -8514) * 4346 - (11111 * 1765) + (31143 * 25674 - -21881 * -14345 / -882) / ((-1864 + -3560 / -22622 + -22045 * -25391 / (-9521 - -6860 + -11961 / 32727 * 12244 / -6247 + 1597 / -30440))) + -9838 * 3511 / (24727 + -23685) * 15460 / 19432 * 8432) - 30483 + -11107) / 263 - -15171 - 5066 + -5793 + 996 - 28244 + 478 / (-22672 - -9538) * 2622 - 15301 - -26793 * (-6971 / ((-17080 * 16018 - (-23075 * (-17491 - 12611) / 15861 * 773 - 18048 - (-3585 + (31248 * -5364 + -10042 + -30927 - 30029 + -25746 * 6814 + 26319 + (26008 * -25934) * -4197 + 2614) / 7822 / (-14429 / 22339 - -170 / -19520 - -9491 - -7040 * 8129 * 2458) * 17425 + -11186 / 17468 * (31560 * -12314 / 161 - 21410 * 5635 - -9659)) + -31643 + 12022 / (-18206 / 8400 - -20341 / 23728 / -11155 / (-8219 / -20911 * 30772 / 12218 * 31309 / 23712 - 11183 * -8484) + 26354) + -14614 + 160 + 19123 + (-29937 * 22540 + 26908 - -27186 + -15031 / 12006 - -26441 + 17486 * -19360 - -10497 * 18306) / -22209 / -12777 - -14839 * 1232 / 31134 - -8950 * 24990 + 4445) / -1980 * 4740 + 14585 * ((-3252 + -7113 * -26170 * 26321 / 20274 - 2090 / 13500)) - 31502 - -7455) / 24830 - -2396) - (-4576 - 5115 - 7216 * -13277 * 28699 * 12247 - -3259 - 29518 - 9508 + 2246 / (15612 / -5002 / 12954 + 11472) + 10052 * 15929 * (3035 / 31491 / -24036 - 14846 - 18546 - -28533 * 23637 / -28049 - -25190)) + 896 + -28719 / (20297 * -32678 + 8043 + -31149 + 22395) - -21188 + 21059 - -28107 * -1477 * 2583 + 12951)) * (2531 / -31555 + 24389 * (-31652 * -26051 * -16748 * 15701 * (21362 / -26824 + -11605 * -22227 / 1381) / 6020 - 17017 / 22038 / -9424 * (27429 / -5558 + -21584 + 8458 + 13039 / 86 * 28075 + ((28290 * -30912 / -12874 + (20779 * (-18650 + 13576 / 31435 - -2274 - -19277 / 5243 / (3971 / -20122 - (-12438) - 10687 / 20504 * 4303 + -18607 + -10881 + (-6211 * 26362) / 402 / 4118 / -12160 / ((-23251 * -14084 / 26759 - 6497 * -12444 / 25298 + 8223 / 14839 - (25659 * -1349 - -22232 - -19620) + -6876 / -7343 - -1272 / -9382 + 7589 * -16022) * -10048 + (5051 - -31175 * -1181 / (28855 + -28306 / 30428 + -15400 + -11818 * 15822 - -12181 / 11205 * -22486))) * 25382 / 18391 + 1457) * 12416 + -9949 + -15389))) / -1581 + 6291 / (-28474 * (12115 / 18522 / (-24147 * 4944) * -20685 - 1016) / -26369 / -173 + -24549 * -13960 - 14179 + -26878 + (21571 * 10158 * -30718)) - -18079 + -9889 / 17863 - 32086 + 32327 + 11663) * -17745 + -6516 - -779 * 17692 - 19471 + -2572 + -12362 * 23023) - (25093) / -29527 + 25340 - 29584 + -10494 * -18389 * -15928 + -11535 + -4000 / -25890 - 7829 * 16026 / -19059 - 4920 * -18699)) - 24451 / (30624 / -12710 - 25010) - 9431 + 15793 - 3271 - 8692 - (-21075 - -8370 - -5640 / -29221 / 17570 + -18092 + -26570 + -20505 / 29448 + 10624 + 1081 - -1567 / -28399 - 17087) * -31433 / -13214) + 20247 / -15863 + -22150)) + 13749 / (30321 / ((-7482 - 792 * 18474 - 18964 + -19173 * -27373 + 27925 - 17442 * -25464 / -29461 + 12059 - -3356)) - 23535 * -934 / 30363 / 9074 - 21595 - (6368 + -32667 / 19705 - 11790 - 24074 + 3652 - 22146 - -10199 + 31962 + 4491 - -22451 * 14954) * -27566)) - 10380 - 4835 / -2959) * -26293 / (16020 + -31582 + -31472 / -8078 / (19431)) * -6778 / (32599 - (21966 * -24450 + (-18899 + 10531 + 20639) - (25899 * -30590 - (168) - 19932 + -20418 * 3671 - -30854) + -27286 * -19083 / -25379 * 3327 / -23485 * 28592) * 31837 + 16229 + 856 - -16994 - 10289 - -23864 / -24903 + 6968) / 4150 + -26626 / 2868 + 21167) + -4400 + -28341 * (2331 - 606 + -11654 + -9210 + -1073 * -22392 * -23979 - -15075 - -20431 + 5938 / -18919 / ((8922 / 20887) + 1) - 11581 / -14854 - 26159 + 2036 + 22722 * 770 / 18876) + 8734 * 26266 * (17960 * -12011 * -14475 + 12125 / -29057) / -28190 * 1447 * 17833 * -6749 - 20757 * -15109 / 20656 / 8303) * (13436 - 3576 - 5404 / 4849 / 24929 / 12133) * -28542 / 27539 / 7360) / -24767 - -17772 / 6711) * 21972) - 9923) / ((-11310 + 18894 / -21603 * 21228 * 25893 + -24567 - ((-21973 + -17804 * 12869 - -18223 - 16837 - 32494 * 10523 - -15959 * -6253 / -494 + -19984 + 23266 + -25622 / 20744 - 20914 + (18161 + (-14839) / 20129 - -409 * (-26258 * 16616 * -28364 - 24516 * 31275 / 1025 * -8775 - 9869) + -1261 / 9598 / 25664 * 26046 - 18288) + -6843 / 14906 * 5928) / -5882 * 30) - 18187 + 16130 * -11180 + -19932 * -7683 * 23970 + -11319 / -20168 / 7327 * -7456 - -4400) * 14669 + 15471 * -5260 * -9998 + 19 + -14821 / (-3046 / 8394 / 15497 + -9060) * -8007 + 24905 / -20052 * 7017) - 19864) - 14443 - 31 / 28562 - 7585 - 30125 * -14277 / ((-10555 + 30318 / 18671 * -13231 - 11062 / -17701) / 2480 * 4029 / 3961 + -14720 * 16557) + 16024 + 7063) * (-23044 / -9493 * -4063 - 31543 + 18986) / -4908 - (19926) / 15035 - (-473 + (31299 + -7281 + -8787) * 6568) * -2138) / 20263 + -31324 * 13882 + 9512 - -9995) / (-7128 - -14273 + 31322 + -26769 * 18175) / (28741 - -23027 * -28768) * 5980 - -10074 / ((-4955 / -9134 / (-6007 - -30053 + (-26589) - -16640 * 9850 + 26032 * -23881 / -8705) / -12428 / -56) + 1) - (-21496 - -21387)) - 12912 * 11293 - 6509 + (((10247 / ((31514) / -11535 * -14429 + 4519 + 25061 * (-25300 + -14063 / -27458) + 25832 - 13513 * -23935 / -20546 - 30060) - -13212 / -18032 * (-7217 + 21466 / (9466 * 14948 * -17361 + -30104 * ((21264 + 28738 - 16347 * -8089 / 27467 + -327 / -16975 * (26042 + -8067 / (-9090 / 17958 + 3999 * 26870 / 10682 * 14067 + -19535 * 30661 + 13517 - 8566 / 31363 / 4223 + 5819 * (27734 + 17460 / 10193) + 32314) / 6488 / 7263) / 1467 * -31577) + -29684 + -30909 * 4604 * 13415) * -24530 / -4270 + 16375 * (-16713)) / 21260 / (-2973 - 14306 * 27583 * (-17245 + 25774 - 13258) * 14627 / -9092 - 13381 * 22627 - (27784 + 5731 - -13526 / 24668 - 32005 * 528 * -1323 / 15512)) + -12174 * 14647 / -30764 - 224 / -2975 * -2756) * (6093)) * -12886 - 22538 - -7903 + 22038 * 32686 - -2042 / (21003 + 32248 - (-13346 - 542) * -10089) * 2111 / 4220 - -3974)) * -5254 / 2398 + 25033)) * -9402 * 3216 * 6607 - 1298 * (-15505 - -12731)) * 30659 / 16347 * -4525"#,
+];
+
+fn parse_chewed(input: &str) -> i64 {
+ IterWrapper::new(input.chars())
+ .parse::<nibble::Ast>()
+ .unwrap()
+ .into()
+}
+
+fn bench_parse(c: &mut Criterion) {
+ let plot_config = PlotConfiguration::default().summary_scale(AxisScale::Logarithmic);
+ let mut group = c.benchmark_group("Arith");
+ group.plot_config(plot_config);
+ for (i, input) in INPUTS.iter().enumerate() {
+ group.throughput(Throughput::Bytes(input.len() as u64));
+ group.bench_with_input(BenchmarkId::new("Chewed", i), *input, |b, i| {
+ b.iter(|| parse_chewed(i))
+ });
+ }
+}
+
+criterion_group!(benches, bench_parse);
+criterion_main!(benches);
diff --git a/chomp-bench/src/arith/mod.rs b/chomp-bench/src/arith/mod.rs
new file mode 100644
index 0000000..e7b7abd
--- /dev/null
+++ b/chomp-bench/src/arith/mod.rs
@@ -0,0 +1 @@
+pub mod nibble;
diff --git a/chomp-bench/src/arith/nibble.rs b/chomp-bench/src/arith/nibble.rs
new file mode 100644
index 0000000..54d9223
--- /dev/null
+++ b/chomp-bench/src/arith/nibble.rs
@@ -0,0 +1,109 @@
+chomp_macro::nibble! {
+ let opt(x) = _ : None | x : Some;
+ let star(x) = [rec](opt(x.rec));
+ let plus(x) = (x : First).(star(x) : Rest);
+
+ let ws = star(" ");
+ let list(x, p) = (x : First).(star(p.ws.x) : Rest);
+
+ let number = plus("0" | "1" | "2"| "3" | "4" | "5" | "6" | "7" | "8" | "9");
+ let term(e) = ((number : Pos | "-".ws.number : Neg | "(".ws.(e : Inner).")" : Parens) : RawTerm).ws;
+ let prod(e) = list(term(e), "*"|"/");
+ let expr(e) = list(prod(e), "+"|"-");
+ let arith = [e](expr(e));
+
+ match [rec]((" ".rec : Base | arith) : Ast);
+}
+
+impl From<Ast> for i64 {
+ fn from(mut a: Ast) -> Self {
+ loop {
+ match a.0 {
+ Ast1::Base1(b) => a = *b.rec1,
+ Ast1::Arith1(a) => return a.into(),
+ }
+ }
+ }
+}
+
+impl From<Arith1> for i64 {
+ fn from(a: Arith1) -> Self {
+ a.0.into()
+ }
+}
+
+impl From<Expr1> for i64 {
+ fn from(l: Expr1) -> Self {
+ let mut acc = l.prod1.into();
+ let mut rest = l.rest1;
+ loop {
+ match rest.0 {
+ Opt5::None1(_) => return acc,
+ Opt5::Some1(s) => {
+ let v: i64 = s.x1.prod1.into();
+ match s.x1.p1 {
+ P2::Branch1(_) => acc += v,
+ P2::Branch2(_) => acc -= v,
+ }
+ rest = *s.rec1;
+ },
+ }
+ }
+ }
+}
+
+impl From<Prod1> for i64 {
+ fn from(l: Prod1) -> Self {
+ let mut acc = l.term1.into();
+ let mut rest = l.rest1;
+ loop {
+ match rest.0 {
+ Opt3::None1(_) => return acc,
+ Opt3::Some1(s) => {
+ let v: i64 = s.x1.term1.into();
+ match s.x1.p1 {
+ P1::Branch1(_) => acc *= v,
+ P1::Branch2(_) => acc /= v,
+ }
+ rest = *s.rec1;
+ }
+ }
+ }
+ }
+}
+
+impl From<Prod2> for i64 {
+ fn from(l: Prod2) -> Self {
+ let mut acc = l.term1.into();
+ let mut rest = l.rest1;
+ loop {
+ match rest.0 {
+ Opt4::None1(_) => return acc,
+ Opt4::Some1(s) => {
+ let v: i64 = s.x1.term1.into();
+ match s.x1.p1 {
+ P1::Branch1(_) => acc *= v,
+ P1::Branch2(_) => acc /= v,
+ }
+ rest = *s.rec1;
+ }
+ }
+ }
+ }
+}
+
+impl From<Term1> for i64 {
+ fn from(t: Term1) -> Self {
+ match t.raw_term1 {
+ RawTerm1::Pos1(n) => n.into(),
+ RawTerm1::Neg1(n) => -i64::from(n.number1),
+ RawTerm1::Parens1(p) => (*p.e1).into(),
+ }
+ }
+}
+
+impl From<Pos1> for i64 {
+ fn from(p: Pos1) -> Self {
+ p.to_string().parse().unwrap()
+ }
+}
diff --git a/chomp-bench/src/lib.rs b/chomp-bench/src/lib.rs
index 22fdbb3..fc83bad 100644
--- a/chomp-bench/src/lib.rs
+++ b/chomp-bench/src/lib.rs
@@ -1 +1,2 @@
pub mod json;
+pub mod arith;