circomlib/test/circuits/circuit.json
test/circuits/circuit.jsonRaw
1{
2 "mainCode": "{\n {\n }\n}\n",
3 "signalName2Idx": {
4 "one": 0,
5 "main.in": 33,
6 "main.out[0][0]": 1,
7 "main.out[0][1]": 2,
8 "main.out[1][0]": 3,
9 "main.out[1][1]": 4,
10 "main.out[2][0]": 5,
11 "main.out[2][1]": 6,
12 "main.out[3][0]": 7,
13 "main.out[3][1]": 8,
14 "main.out[4][0]": 9,
15 "main.out[4][1]": 10,
16 "main.out[5][0]": 11,
17 "main.out[5][1]": 12,
18 "main.out[6][0]": 13,
19 "main.out[6][1]": 14,
20 "main.out[7][0]": 15,
21 "main.out[7][1]": 16,
22 "main.out[8][0]": 17,
23 "main.out[8][1]": 18,
24 "main.out[9][0]": 19,
25 "main.out[9][1]": 20,
26 "main.out[10][0]": 21,
27 "main.out[10][1]": 22,
28 "main.out[11][0]": 23,
29 "main.out[11][1]": 24,
30 "main.out[12][0]": 25,
31 "main.out[12][1]": 26,
32 "main.out[13][0]": 27,
33 "main.out[13][1]": 28,
34 "main.out[14][0]": 29,
35 "main.out[14][1]": 30,
36 "main.out[15][0]": 31,
37 "main.out[15][1]": 32,
38 "main.escalarMul.out[0][0]": 34,
39 "main.escalarMul.out[0][1]": 35,
40 "main.escalarMul.out[1][0]": 36,
41 "main.escalarMul.out[1][1]": 37,
42 "main.escalarMul.out[2][0]": 38,
43 "main.escalarMul.out[2][1]": 39,
44 "main.escalarMul.out[3][0]": 40,
45 "main.escalarMul.out[3][1]": 41,
46 "main.escalarMul.out[4][0]": 42,
47 "main.escalarMul.out[4][1]": 43,
48 "main.escalarMul.out[5][0]": 44,
49 "main.escalarMul.out[5][1]": 45,
50 "main.escalarMul.out[6][0]": 46,
51 "main.escalarMul.out[6][1]": 47,
52 "main.escalarMul.out[7][0]": 48,
53 "main.escalarMul.out[7][1]": 49,
54 "main.escalarMul.out[8][0]": 50,
55 "main.escalarMul.out[8][1]": 51,
56 "main.escalarMul.out[9][0]": 52,
57 "main.escalarMul.out[9][1]": 53,
58 "main.escalarMul.out[10][0]": 54,
59 "main.escalarMul.out[10][1]": 55,
60 "main.escalarMul.out[11][0]": 56,
61 "main.escalarMul.out[11][1]": 57,
62 "main.escalarMul.out[12][0]": 58,
63 "main.escalarMul.out[12][1]": 59,
64 "main.escalarMul.out[13][0]": 60,
65 "main.escalarMul.out[13][1]": 61,
66 "main.escalarMul.out[14][0]": 62,
67 "main.escalarMul.out[14][1]": 63,
68 "main.escalarMul.out[15][0]": 64,
69 "main.escalarMul.out[15][1]": 65
70 },
71 "components": [
72 {
73 "name": "main",
74 "params": {},
75 "template": "Main",
76 "inputSignals": 1
77 },
78 {
79 "name": "main.escalarMul",
80 "params": {
81 "base": [
82 "5299619240641551281634865583518297030282874472190772894086521144482721001553",
83 "16950150798460657717958625567821834550301663161624707787222815936182638968203"
84 ],
85 "k": "0"
86 },
87 "template": "EscalarMulW4Table",
88 "inputSignals": 0
89 }
90 ],
91 "componentName2Idx": {
92 "main": 0,
93 "main.escalarMul": 1
94 },
95 "signals": [
96 {
97 "names": [
98 "one"
99 ],
100 "triggerComponents": []
101 },
102 {
103 "names": [
104 "main.out[0][0]"
105 ],
106 "triggerComponents": []
107 },
108 {
109 "names": [
110 "main.out[0][1]"
111 ],
112 "triggerComponents": []
113 },
114 {
115 "names": [
116 "main.out[1][0]"
117 ],
118 "triggerComponents": []
119 },
120 {
121 "names": [
122 "main.out[1][1]"
123 ],
124 "triggerComponents": []
125 },
126 {
127 "names": [
128 "main.out[2][0]"
129 ],
130 "triggerComponents": []
131 },
132 {
133 "names": [
134 "main.out[2][1]"
135 ],
136 "triggerComponents": []
137 },
138 {
139 "names": [
140 "main.out[3][0]"
141 ],
142 "triggerComponents": []
143 },
144 {
145 "names": [
146 "main.out[3][1]"
147 ],
148 "triggerComponents": []
149 },
150 {
151 "names": [
152 "main.out[4][0]"
153 ],
154 "triggerComponents": []
155 },
156 {
157 "names": [
158 "main.out[4][1]"
159 ],
160 "triggerComponents": []
161 },
162 {
163 "names": [
164 "main.out[5][0]"
165 ],
166 "triggerComponents": []
167 },
168 {
169 "names": [
170 "main.out[5][1]"
171 ],
172 "triggerComponents": []
173 },
174 {
175 "names": [
176 "main.out[6][0]"
177 ],
178 "triggerComponents": []
179 },
180 {
181 "names": [
182 "main.out[6][1]"
183 ],
184 "triggerComponents": []
185 },
186 {
187 "names": [
188 "main.out[7][0]"
189 ],
190 "triggerComponents": []
191 },
192 {
193 "names": [
194 "main.out[7][1]"
195 ],
196 "triggerComponents": []
197 },
198 {
199 "names": [
200 "main.out[8][0]"
201 ],
202 "triggerComponents": []
203 },
204 {
205 "names": [
206 "main.out[8][1]"
207 ],
208 "triggerComponents": []
209 },
210 {
211 "names": [
212 "main.out[9][0]"
213 ],
214 "triggerComponents": []
215 },
216 {
217 "names": [
218 "main.out[9][1]"
219 ],
220 "triggerComponents": []
221 },
222 {
223 "names": [
224 "main.out[10][0]"
225 ],
226 "triggerComponents": []
227 },
228 {
229 "names": [
230 "main.out[10][1]"
231 ],
232 "triggerComponents": []
233 },
234 {
235 "names": [
236 "main.out[11][0]"
237 ],
238 "triggerComponents": []
239 },
240 {
241 "names": [
242 "main.out[11][1]"
243 ],
244 "triggerComponents": []
245 },
246 {
247 "names": [
248 "main.out[12][0]"
249 ],
250 "triggerComponents": []
251 },
252 {
253 "names": [
254 "main.out[12][1]"
255 ],
256 "triggerComponents": []
257 },
258 {
259 "names": [
260 "main.out[13][0]"
261 ],
262 "triggerComponents": []
263 },
264 {
265 "names": [
266 "main.out[13][1]"
267 ],
268 "triggerComponents": []
269 },
270 {
271 "names": [
272 "main.out[14][0]"
273 ],
274 "triggerComponents": []
275 },
276 {
277 "names": [
278 "main.out[14][1]"
279 ],
280 "triggerComponents": []
281 },
282 {
283 "names": [
284 "main.out[15][0]"
285 ],
286 "triggerComponents": []
287 },
288 {
289 "names": [
290 "main.out[15][1]"
291 ],
292 "triggerComponents": []
293 },
294 {
295 "names": [
296 "main.in"
297 ],
298 "triggerComponents": [
299 0
300 ]
301 },
302 {
303 "names": [
304 "main.escalarMul.out[0][0]"
305 ],
306 "triggerComponents": []
307 },
308 {
309 "names": [
310 "main.escalarMul.out[0][1]"
311 ],
312 "triggerComponents": []
313 },
314 {
315 "names": [
316 "main.escalarMul.out[1][0]"
317 ],
318 "triggerComponents": []
319 },
320 {
321 "names": [
322 "main.escalarMul.out[1][1]"
323 ],
324 "triggerComponents": []
325 },
326 {
327 "names": [
328 "main.escalarMul.out[2][0]"
329 ],
330 "triggerComponents": []
331 },
332 {
333 "names": [
334 "main.escalarMul.out[2][1]"
335 ],
336 "triggerComponents": []
337 },
338 {
339 "names": [
340 "main.escalarMul.out[3][0]"
341 ],
342 "triggerComponents": []
343 },
344 {
345 "names": [
346 "main.escalarMul.out[3][1]"
347 ],
348 "triggerComponents": []
349 },
350 {
351 "names": [
352 "main.escalarMul.out[4][0]"
353 ],
354 "triggerComponents": []
355 },
356 {
357 "names": [
358 "main.escalarMul.out[4][1]"
359 ],
360 "triggerComponents": []
361 },
362 {
363 "names": [
364 "main.escalarMul.out[5][0]"
365 ],
366 "triggerComponents": []
367 },
368 {
369 "names": [
370 "main.escalarMul.out[5][1]"
371 ],
372 "triggerComponents": []
373 },
374 {
375 "names": [
376 "main.escalarMul.out[6][0]"
377 ],
378 "triggerComponents": []
379 },
380 {
381 "names": [
382 "main.escalarMul.out[6][1]"
383 ],
384 "triggerComponents": []
385 },
386 {
387 "names": [
388 "main.escalarMul.out[7][0]"
389 ],
390 "triggerComponents": []
391 },
392 {
393 "names": [
394 "main.escalarMul.out[7][1]"
395 ],
396 "triggerComponents": []
397 },
398 {
399 "names": [
400 "main.escalarMul.out[8][0]"
401 ],
402 "triggerComponents": []
403 },
404 {
405 "names": [
406 "main.escalarMul.out[8][1]"
407 ],
408 "triggerComponents": []
409 },
410 {
411 "names": [
412 "main.escalarMul.out[9][0]"
413 ],
414 "triggerComponents": []
415 },
416 {
417 "names": [
418 "main.escalarMul.out[9][1]"
419 ],
420 "triggerComponents": []
421 },
422 {
423 "names": [
424 "main.escalarMul.out[10][0]"
425 ],
426 "triggerComponents": []
427 },
428 {
429 "names": [
430 "main.escalarMul.out[10][1]"
431 ],
432 "triggerComponents": []
433 },
434 {
435 "names": [
436 "main.escalarMul.out[11][0]"
437 ],
438 "triggerComponents": []
439 },
440 {
441 "names": [
442 "main.escalarMul.out[11][1]"
443 ],
444 "triggerComponents": []
445 },
446 {
447 "names": [
448 "main.escalarMul.out[12][0]"
449 ],
450 "triggerComponents": []
451 },
452 {
453 "names": [
454 "main.escalarMul.out[12][1]"
455 ],
456 "triggerComponents": []
457 },
458 {
459 "names": [
460 "main.escalarMul.out[13][0]"
461 ],
462 "triggerComponents": []
463 },
464 {
465 "names": [
466 "main.escalarMul.out[13][1]"
467 ],
468 "triggerComponents": []
469 },
470 {
471 "names": [
472 "main.escalarMul.out[14][0]"
473 ],
474 "triggerComponents": []
475 },
476 {
477 "names": [
478 "main.escalarMul.out[14][1]"
479 ],
480 "triggerComponents": []
481 },
482 {
483 "names": [
484 "main.escalarMul.out[15][0]"
485 ],
486 "triggerComponents": []
487 },
488 {
489 "names": [
490 "main.escalarMul.out[15][1]"
491 ],
492 "triggerComponents": []
493 }
494 ],
495 "constraints": [
496 [
497 {},
498 {
499 "33": "1"
500 },
501 {
502 "1": "21888242871839275222246405745257275088548364400416034343698204186575808495616"
503 }
504 ],
505 [
506 {},
507 {},
508 {
509 "2": "21888242871839275222246405745257275088548364400416034343698204186575808495616",
510 "33": "1"
511 }
512 ],
513 [
514 {},
515 {},
516 {
517 "3": "21888242871839275222246405745257275088548364400416034343698204186575808495616",
518 "33": "5299619240641551281634865583518297030282874472190772894086521144482721001553"
519 }
520 ],
521 [
522 {},
523 {},
524 {
525 "4": "21888242871839275222246405745257275088548364400416034343698204186575808495616",
526 "33": "16950150798460657717958625567821834550301663161624707787222815936182638968203"
527 }
528 ],
529 [
530 {},
531 {},
532 {
533 "5": "21888242871839275222246405745257275088548364400416034343698204186575808495616",
534 "33": "10031262171927540148667355526369034398030886437092045105752248699557385197826"
535 }
536 ],
537 [
538 {},
539 {},
540 {
541 "6": "21888242871839275222246405745257275088548364400416034343698204186575808495616",
542 "33": "633281375905621697187330766174974863687049529291089048651929454608812697683"
543 }
544 ],
545 [
546 {},
547 {},
548 {
549 "7": "21888242871839275222246405745257275088548364400416034343698204186575808495616",
550 "33": "2763488322167937039616325905516046217694264098671987087929565332380420898366"
551 }
552 ],
553 [
554 {},
555 {},
556 {
557 "8": "21888242871839275222246405745257275088548364400416034343698204186575808495616",
558 "33": "15305195750036305661220525648961313310481046260814497672243197092298550508693"
559 }
560 ],
561 [
562 {},
563 {},
564 {
565 "9": "21888242871839275222246405745257275088548364400416034343698204186575808495616",
566 "33": "12252886604826192316928789929706397349846234911198931249025449955069330867144"
567 }
568 ],
569 [
570 {},
571 {},
572 {
573 "10": "21888242871839275222246405745257275088548364400416034343698204186575808495616",
574 "33": "1286140751908834028607023759717162073146610688084909004843365841635476459484"
575 }
576 ],
577 [
578 {},
579 {},
580 {
581 "11": "21888242871839275222246405745257275088548364400416034343698204186575808495616",
582 "33": "11480966271046430430613841218147196773252373073876138147006741179837832100836"
583 }
584 ],
585 [
586 {},
587 {},
588 {
589 "12": "21888242871839275222246405745257275088548364400416034343698204186575808495616",
590 "33": "15148236048131954717802795400425086368006776860859772698778589175317365693546"
591 }
592 ],
593 [
594 {},
595 {},
596 {
597 "13": "21888242871839275222246405745257275088548364400416034343698204186575808495616",
598 "33": "10483991165196995731760716870725509190315033255344071753161464961897900552628"
599 }
600 ],
601 [
602 {},
603 {},
604 {
605 "14": "21888242871839275222246405745257275088548364400416034343698204186575808495616",
606 "33": "16822899191463256771813724222715007505997804748105685077895991386716774358231"
607 }
608 ],
609 [
610 {},
611 {},
612 {
613 "15": "21888242871839275222246405745257275088548364400416034343698204186575808495616",
614 "33": "20092560661213339045022877747484245238324772779820628739268223482659246842641"
615 }
616 ],
617 [
618 {},
619 {},
620 {
621 "16": "21888242871839275222246405745257275088548364400416034343698204186575808495616",
622 "33": "12112450042127193446189577552007703839818242727902437791835414514847797088033"
623 }
624 ],
625 [
626 {},
627 {},
628 {
629 "17": "21888242871839275222246405745257275088548364400416034343698204186575808495616",
630 "33": "7582035475627193640797276505418002166691739036475590846121162698650004832581"
631 }
632 ],
633 [
634 {},
635 {},
636 {
637 "18": "21888242871839275222246405745257275088548364400416034343698204186575808495616",
638 "33": "7801528930831391612913542953849263092120765287178679640990215688947513841260"
639 }
640 ],
641 [
642 {},
643 {},
644 {
645 "19": "21888242871839275222246405745257275088548364400416034343698204186575808495616",
646 "33": "4705897243203718691035604313913899717760209962238015362153877735592901317263"
647 }
648 ],
649 [
650 {},
651 {},
652 {
653 "20": "21888242871839275222246405745257275088548364400416034343698204186575808495616",
654 "33": "11533909001000295577818857040682494493436124051895563619976413559559984357704"
655 }
656 ],
657 [
658 {},
659 {},
660 {
661 "21": "21888242871839275222246405745257275088548364400416034343698204186575808495616",
662 "33": "153240920024090527149238595127650983736082984617707450012091413752625486998"
663 }
664 ],
665 [
666 {},
667 {},
668 {
669 "22": "21888242871839275222246405745257275088548364400416034343698204186575808495616",
670 "33": "4020276081434545615309760015178511782232038136121596626881988383789905359767"
671 }
672 ],
673 [
674 {},
675 {},
676 {
677 "23": "21888242871839275222246405745257275088548364400416034343698204186575808495616",
678 "33": "21605515851820432880964235241069234202284600780825340516808373216881770219365"
679 }
680 ],
681 [
682 {},
683 {},
684 {
685 "24": "21888242871839275222246405745257275088548364400416034343698204186575808495616",
686 "33": "18856460861531942120859708048677603751294231190189224157283439874962410808705"
687 }
688 ],
689 [
690 {},
691 {},
692 {
693 "25": "21888242871839275222246405745257275088548364400416034343698204186575808495616",
694 "33": "13745444942333935831105476262872495530232646590228527111681360848540626474828"
695 }
696 ],
697 [
698 {},
699 {},
700 {
701 "26": "21888242871839275222246405745257275088548364400416034343698204186575808495616",
702 "33": "12593235468414968750242085888471035041062129592669413010808753916989521208231"
703 }
704 ],
705 [
706 {},
707 {},
708 {
709 "27": "21888242871839275222246405745257275088548364400416034343698204186575808495616",
710 "33": "2645068156583085050795409844793952496341966587935372213947442411891928926825"
711 }
712 ],
713 [
714 {},
715 {},
716 {
717 "28": "21888242871839275222246405745257275088548364400416034343698204186575808495616",
718 "33": "18721023485287444620535873833099074300132272004358512346950884094158923211889"
719 }
720 ],
721 [
722 {},
723 {},
724 {
725 "29": "21888242871839275222246405745257275088548364400416034343698204186575808495616",
726 "33": "6271573312546148160329629673815240458676221818610765478794395550121752710497"
727 }
728 ],
729 [
730 {},
731 {},
732 {
733 "30": "21888242871839275222246405745257275088548364400416034343698204186575808495616",
734 "33": "20729133862440981855920571719405839551572203482913253618619962546642052100217"
735 }
736 ],
737 [
738 {},
739 {},
740 {
741 "31": "21888242871839275222246405745257275088548364400416034343698204186575808495616",
742 "33": "5958787406588418500595239545974275039455545059833263445973445578199987122248"
743 }
744 ],
745 [
746 {},
747 {},
748 {
749 "32": "21888242871839275222246405745257275088548364400416034343698204186575808495616",
750 "33": "6291453822075498887551694851992571215511219854100590306020486222643399599966"
751 }
752 ]
753 ],
754 "templates": {
755 "EscalarMulW4Table": "function(ctx) {\n ctx.setVar(\"dbl\", [], ctx.getVar(\"base\",[]));\n for (ctx.setVar(\"i\", [], \"0\");bigInt(bigInt(ctx.getVar(\"i\",[])).lt(bigInt(bigInt(ctx.getVar(\"k\",[])).mul(bigInt(\"4\")).mod(__P__))) ? 1 : 0).neq(bigInt(0));(ctx.setVar(\"i\", [], bigInt(ctx.getVar(\"i\",[])).add(bigInt(\"1\")).mod(__P__))).add(__P__).sub(bigInt(1)).mod(__P__)) { \n {\n ctx.setVar(\"dbl\", [], ctx.callFunction(\"pointAdd\", [ctx.getVar(\"dbl\",[\"0\"]),ctx.getVar(\"dbl\",[\"1\"]),ctx.getVar(\"dbl\",[\"0\"]),ctx.getVar(\"dbl\",[\"1\"])]));\n }\n\n }\n ctx.setSignal(\"out\", [\"0\",\"0\"], \"0\");\n ctx.assert(ctx.getSignal(\"out\", [\"0\",\"0\"]), \"0\");\n ctx.setSignal(\"out\", [\"0\",\"1\"], \"1\");\n ctx.assert(ctx.getSignal(\"out\", [\"0\",\"1\"]), \"1\");\n for (ctx.setVar(\"i\", [], \"1\");bigInt(bigInt(ctx.getVar(\"i\",[])).lt(bigInt(\"16\")) ? 1 : 0).neq(bigInt(0));(ctx.setVar(\"i\", [], bigInt(ctx.getVar(\"i\",[])).add(bigInt(\"1\")).mod(__P__))).add(__P__).sub(bigInt(1)).mod(__P__)) { \n {\n ctx.setVar(\"p\", [], ctx.callFunction(\"pointAdd\", [ctx.getSignal(\"out\", [bigInt(ctx.getVar(\"i\",[])).add(__P__).sub(bigInt(\"1\")).mod(__P__),\"0\"]),ctx.getSignal(\"out\", [bigInt(ctx.getVar(\"i\",[])).add(__P__).sub(bigInt(\"1\")).mod(__P__),\"1\"]),ctx.getVar(\"dbl\",[\"0\"]),ctx.getVar(\"dbl\",[\"1\"])]));\n ctx.setSignal(\"out\", [ctx.getVar(\"i\",[]),\"0\"], ctx.getVar(\"p\",[\"0\"]));\n ctx.assert(ctx.getSignal(\"out\", [ctx.getVar(\"i\",[]),\"0\"]), ctx.getVar(\"p\",[\"0\"]));\n ctx.setSignal(\"out\", [ctx.getVar(\"i\",[]),\"1\"], ctx.getVar(\"p\",[\"1\"]));\n ctx.assert(ctx.getSignal(\"out\", [ctx.getVar(\"i\",[]),\"1\"]), ctx.getVar(\"p\",[\"1\"]));\n }\n\n }\n}\n",
756 "Main": "function(ctx) {\n ctx.setVar(\"base\", [], [\"5299619240641551281634865583518297030282874472190772894086521144482721001553\",\"16950150798460657717958625567821834550301663161624707787222815936182638968203\"]);\n for (ctx.setVar(\"i\", [], \"0\");bigInt(bigInt(ctx.getVar(\"i\",[])).lt(bigInt(\"16\")) ? 1 : 0).neq(bigInt(0));(ctx.setVar(\"i\", [], bigInt(ctx.getVar(\"i\",[])).add(bigInt(\"1\")).mod(__P__))).add(__P__).sub(bigInt(1)).mod(__P__)) { \n {\n ctx.setSignal(\"out\", [ctx.getVar(\"i\",[]),\"0\"], bigInt(ctx.getPin(\"escalarMul\", [], \"out\", [ctx.getVar(\"i\",[]),\"0\"])).mul(bigInt(ctx.getSignal(\"in\", []))).mod(__P__));\n ctx.assert(ctx.getSignal(\"out\", [ctx.getVar(\"i\",[]),\"0\"]), bigInt(ctx.getPin(\"escalarMul\", [], \"out\", [ctx.getVar(\"i\",[]),\"0\"])).mul(bigInt(ctx.getSignal(\"in\", []))).mod(__P__));\n ctx.setSignal(\"out\", [ctx.getVar(\"i\",[]),\"1\"], bigInt(ctx.getPin(\"escalarMul\", [], \"out\", [ctx.getVar(\"i\",[]),\"1\"])).mul(bigInt(ctx.getSignal(\"in\", []))).mod(__P__));\n ctx.assert(ctx.getSignal(\"out\", [ctx.getVar(\"i\",[]),\"1\"]), bigInt(ctx.getPin(\"escalarMul\", [], \"out\", [ctx.getVar(\"i\",[]),\"1\"])).mul(bigInt(ctx.getSignal(\"in\", []))).mod(__P__));\n }\n\n }\n}\n"
757 },
758 "functions": {
759 "pointAdd": {
760 "params": [
761 "x1",
762 "y1",
763 "x2",
764 "y2"
765 ],
766 "func": "function(ctx) {\n ctx.setVar(\"a\", [], \"168700\");\n ctx.setVar(\"d\", [], \"168696\");\n ctx.setVar(\"res\", [\"0\"], bigInt(bigInt(bigInt(ctx.getVar(\"x1\",[])).mul(bigInt(ctx.getVar(\"y2\",[]))).mod(__P__)).add(bigInt(bigInt(ctx.getVar(\"y1\",[])).mul(bigInt(ctx.getVar(\"x2\",[]))).mod(__P__))).mod(__P__)).mul( bigInt(bigInt(\"1\").add(bigInt(bigInt(bigInt(bigInt(bigInt(ctx.getVar(\"d\",[])).mul(bigInt(ctx.getVar(\"x1\",[]))).mod(__P__)).mul(bigInt(ctx.getVar(\"x2\",[]))).mod(__P__)).mul(bigInt(ctx.getVar(\"y1\",[]))).mod(__P__)).mul(bigInt(ctx.getVar(\"y2\",[]))).mod(__P__))).mod(__P__)).inverse(__P__) ).mod(__P__));\n ctx.setVar(\"res\", [\"1\"], bigInt(bigInt(bigInt(ctx.getVar(\"y1\",[])).mul(bigInt(ctx.getVar(\"y2\",[]))).mod(__P__)).add(__P__).sub(bigInt(bigInt(bigInt(ctx.getVar(\"a\",[])).mul(bigInt(ctx.getVar(\"x1\",[]))).mod(__P__)).mul(bigInt(ctx.getVar(\"x2\",[]))).mod(__P__))).mod(__P__)).mul( bigInt(bigInt(\"1\").add(__P__).sub(bigInt(bigInt(bigInt(bigInt(bigInt(ctx.getVar(\"d\",[])).mul(bigInt(ctx.getVar(\"x1\",[]))).mod(__P__)).mul(bigInt(ctx.getVar(\"x2\",[]))).mod(__P__)).mul(bigInt(ctx.getVar(\"y1\",[]))).mod(__P__)).mul(bigInt(ctx.getVar(\"y2\",[]))).mod(__P__))).mod(__P__)).inverse(__P__) ).mod(__P__));\n return ctx.getVar(\"res\",[]);;\n}\n"
767 }
768 },
769 "nPrvInputs": 0,
770 "nPubInputs": 1,
771 "nInputs": 1,
772 "nOutputs": 32,
773 "nVars": 34,
774 "nConstants": 32,
775 "nSignals": 66
776}