common_helpers.mjs raw
1 // Package common/helpers
2 // Generated by TinyJS — TinyGo JavaScript backend
3
4 import * as $rt from './$runtime/index.mjs';
5
6 // Package-level variables
7
8 export function init() {
9 return;
10 }
11
12 export function JsonString(s) {
13 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27, $t27_28, $t28_29, $t29_30, $t30_31, $t31_32, $t32_33;
14 let $block = 0;
15 while (true) {
16 switch ($block) {
17 case 0: {
18 $t0_1 = '"';
19 $t1_2 = 0;
20 $t2_3 = 0;
21 $block = 1; break;
22 break;
23 }
24 case 1: {
25 $t3_4 = $rt.builtin.len(s);
26 $t4_5 = ($t2_3 < $t3_4);
27 if ($t4_5) {
28 $block = 2; break;
29 }
30 else {
31 $block = 4; break;
32 }
33 break;
34 }
35 case 2: {
36 $rt.runtime.boundsCheck($t2_3, $rt.builtin.byteLen(s));
37 $t5_6 = $rt.builtin.stringByteAt(s, $t2_3);
38 $t6_7 = ($t5_6 === 34);
39 if ($t6_7) {
40 $block = 6; break;
41 }
42 else {
43 $block = 8; break;
44 }
45 break;
46 }
47 case 3: {
48 $t9_10 = ($t2_3 + 1);
49 $t0_1 = $t7_8;
50 $t1_2 = $t8_9;
51 $t2_3 = $t9_10;
52 $block = 1; break;
53 break;
54 }
55 case 4: {
56 $t10_11 = $rt.builtin.stringSlice(s, $t1_2, undefined);
57 $t11_12 = ($t0_1 + $t10_11);
58 $t12_13 = ($t11_12 + '"');
59 return $t12_13;
60 break;
61 }
62 case 5: {
63 $t14_15 = $rt.builtin.stringSlice(s, $t1_2, $t2_3);
64 $t15_16 = ($t14_15 + $t13_14);
65 $t16_17 = ($t0_1 + $t15_16);
66 $t17_18 = ($t2_3 + 1);
67 $t7_8 = $t16_17;
68 $t8_9 = $t17_18;
69 $block = 3; break;
70 break;
71 }
72 case 6: {
73 $t13_14 = '\\"';
74 $block = 5; break;
75 break;
76 }
77 case 7: {
78 $t13_14 = '\\\\';
79 $block = 5; break;
80 break;
81 }
82 case 8: {
83 $t18_19 = ($t5_6 === 92);
84 if ($t18_19) {
85 $block = 7; break;
86 }
87 else {
88 $block = 10; break;
89 }
90 break;
91 }
92 case 9: {
93 $t13_14 = '\\n';
94 $block = 5; break;
95 break;
96 }
97 case 10: {
98 $t19_20 = ($t5_6 === 10);
99 if ($t19_20) {
100 $block = 9; break;
101 }
102 else {
103 $block = 12; break;
104 }
105 break;
106 }
107 case 11: {
108 $t13_14 = '\\r';
109 $block = 5; break;
110 break;
111 }
112 case 12: {
113 $t20_21 = ($t5_6 === 13);
114 if ($t20_21) {
115 $block = 11; break;
116 }
117 else {
118 $block = 14; break;
119 }
120 break;
121 }
122 case 13: {
123 $t13_14 = '\\t';
124 $block = 5; break;
125 break;
126 }
127 case 14: {
128 $t21_22 = ($t5_6 === 9);
129 if ($t21_22) {
130 $block = 13; break;
131 }
132 else {
133 $block = 16; break;
134 }
135 break;
136 }
137 case 15: {
138 $t13_14 = '\\b';
139 $block = 5; break;
140 break;
141 }
142 case 16: {
143 $t22_23 = ($t5_6 === 8);
144 if ($t22_23) {
145 $block = 15; break;
146 }
147 else {
148 $block = 18; break;
149 }
150 break;
151 }
152 case 17: {
153 $t13_14 = '\\f';
154 $block = 5; break;
155 break;
156 }
157 case 18: {
158 $t23_24 = ($t5_6 === 12);
159 if ($t23_24) {
160 $block = 17; break;
161 }
162 else {
163 $block = 19; break;
164 }
165 break;
166 }
167 case 19: {
168 $t24_25 = ($t5_6 < 32);
169 if ($t24_25) {
170 $block = 20; break;
171 }
172 else {
173 $t7_8 = $t0_1;
174 $t8_9 = $t1_2;
175 $block = 3; break;
176 }
177 break;
178 }
179 case 20: {
180 $t25_26 = (($t5_6 & 0xFF) >> 4);
181 $rt.runtime.boundsCheck($t25_26, $rt.builtin.byteLen('0123456789abcdef'));
182 $t26_27 = $rt.builtin.stringByteAt('0123456789abcdef', $t25_26);
183 $t27_28 = String.fromCodePoint($t26_27);
184 $t28_29 = ('\\u00' + $t27_28);
185 $t29_30 = ($t5_6 & 15);
186 $rt.runtime.boundsCheck($t29_30, $rt.builtin.byteLen('0123456789abcdef'));
187 $t30_31 = $rt.builtin.stringByteAt('0123456789abcdef', $t29_30);
188 $t31_32 = String.fromCodePoint($t30_31);
189 $t32_33 = ($t28_29 + $t31_32);
190 $t13_14 = $t32_33;
191 $block = 5; break;
192 break;
193 }
194 }
195 }
196 }
197
198 export function JsonGetString(s, key) {
199 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27, $t27_28, $t28_29, $t29_30, $t30_31, $t31_32, $t32_33, $t33_34, $t34_35, $t35_36, $t36_37, $t37_38, $t38_39, $t39_40, $t40_41, $t41_42, $t42_43, $t43_44, $t44_45, $t45_46, $t46_47, $t47_48, $t48_49, $t49_50, $t50_51, $t51_52, $t52_53, $t53_54, $t54_55, $t55_56, $t56_57, $t57_58, $t58_59, $t59_60, $t60_61, $t61_62, $t62_63, $t63_64, $t64_65, $t65_66, $t66_67, $t67_68, $t68_69, $t69_70, $t70_71, $t71_72, $t72_73, $t73_74, $t74_75, $t75_76, $t76_77, $t77_78, $t78_79, $t79_80, $t80_81, $t81_82;
200 let $block = 0;
201 while (true) {
202 switch ($block) {
203 case 0: {
204 $t0_1 = ('"' + key);
205 $t1_2 = ($t0_1 + '"');
206 $t2_3 = $rt.builtin.len($t1_2);
207 $t3_4 = 0;
208 $block = 1; break;
209 break;
210 }
211 case 1: {
212 $t4_5 = $rt.builtin.len(s);
213 $t5_6 = ($t4_5 - $t2_3);
214 $t6_7 = ($t3_4 <= $t5_6);
215 if ($t6_7) {
216 $block = 2; break;
217 }
218 else {
219 $block = 4; break;
220 }
221 break;
222 }
223 case 2: {
224 $t7_8 = ($t3_4 + $t2_3);
225 $t8_9 = $rt.builtin.stringSlice(s, $t3_4, $t7_8);
226 $t9_10 = ($t8_9 === $t1_2);
227 if ($t9_10) {
228 $block = 5; break;
229 }
230 else {
231 $block = 3; break;
232 }
233 break;
234 }
235 case 3: {
236 $t10_11 = ($t3_4 + 1);
237 $t3_4 = $t10_11;
238 $block = 1; break;
239 break;
240 }
241 case 4: {
242 return '';
243 break;
244 }
245 case 5: {
246 $t11_12 = ($t3_4 + $t2_3);
247 $t15_16 = $t11_12;
248 $block = 8; break;
249 break;
250 }
251 case 6: {
252 $t12_13 = ($t15_16 + 1);
253 $t15_16 = $t12_13;
254 $block = 8; break;
255 break;
256 }
257 case 7: {
258 $t13_14 = $rt.builtin.len(s);
259 $t14_15 = ($t15_16 >= $t13_14);
260 if ($t14_15) {
261 $block = 3; break;
262 }
263 else {
264 $block = 14; break;
265 }
266 break;
267 }
268 case 8: {
269 $t16_17 = $rt.builtin.len(s);
270 $t17_18 = ($t15_16 < $t16_17);
271 if ($t17_18) {
272 $block = 9; break;
273 }
274 else {
275 $block = 7; break;
276 }
277 break;
278 }
279 case 9: {
280 $rt.runtime.boundsCheck($t15_16, $rt.builtin.byteLen(s));
281 $t18_19 = $rt.builtin.stringByteAt(s, $t15_16);
282 $t19_20 = ($t18_19 === 32);
283 if ($t19_20) {
284 $block = 6; break;
285 }
286 else {
287 $block = 12; break;
288 }
289 break;
290 }
291 case 10: {
292 $rt.runtime.boundsCheck($t15_16, $rt.builtin.byteLen(s));
293 $t20_21 = $rt.builtin.stringByteAt(s, $t15_16);
294 $t21_22 = ($t20_21 === 13);
295 if ($t21_22) {
296 $block = 6; break;
297 }
298 else {
299 $block = 7; break;
300 }
301 break;
302 }
303 case 11: {
304 $rt.runtime.boundsCheck($t15_16, $rt.builtin.byteLen(s));
305 $t22_23 = $rt.builtin.stringByteAt(s, $t15_16);
306 $t23_24 = ($t22_23 === 10);
307 if ($t23_24) {
308 $block = 6; break;
309 }
310 else {
311 $block = 10; break;
312 }
313 break;
314 }
315 case 12: {
316 $rt.runtime.boundsCheck($t15_16, $rt.builtin.byteLen(s));
317 $t24_25 = $rt.builtin.stringByteAt(s, $t15_16);
318 $t25_26 = ($t24_25 === 9);
319 if ($t25_26) {
320 $block = 6; break;
321 }
322 else {
323 $block = 11; break;
324 }
325 break;
326 }
327 case 13: {
328 $t26_27 = ($t15_16 + 1);
329 $t32_33 = $t26_27;
330 $block = 17; break;
331 break;
332 }
333 case 14: {
334 $rt.runtime.boundsCheck($t15_16, $rt.builtin.byteLen(s));
335 $t27_28 = $rt.builtin.stringByteAt(s, $t15_16);
336 $t28_29 = ($t27_28 !== 58);
337 if ($t28_29) {
338 $block = 3; break;
339 }
340 else {
341 $block = 13; break;
342 }
343 break;
344 }
345 case 15: {
346 $t29_30 = ($t32_33 + 1);
347 $t32_33 = $t29_30;
348 $block = 17; break;
349 break;
350 }
351 case 16: {
352 $t30_31 = $rt.builtin.len(s);
353 $t31_32 = ($t32_33 >= $t30_31);
354 if ($t31_32) {
355 $block = 3; break;
356 }
357 else {
358 $block = 23; break;
359 }
360 break;
361 }
362 case 17: {
363 $t33_34 = $rt.builtin.len(s);
364 $t34_35 = ($t32_33 < $t33_34);
365 if ($t34_35) {
366 $block = 18; break;
367 }
368 else {
369 $block = 16; break;
370 }
371 break;
372 }
373 case 18: {
374 $rt.runtime.boundsCheck($t32_33, $rt.builtin.byteLen(s));
375 $t35_36 = $rt.builtin.stringByteAt(s, $t32_33);
376 $t36_37 = ($t35_36 === 32);
377 if ($t36_37) {
378 $block = 15; break;
379 }
380 else {
381 $block = 21; break;
382 }
383 break;
384 }
385 case 19: {
386 $rt.runtime.boundsCheck($t32_33, $rt.builtin.byteLen(s));
387 $t37_38 = $rt.builtin.stringByteAt(s, $t32_33);
388 $t38_39 = ($t37_38 === 13);
389 if ($t38_39) {
390 $block = 15; break;
391 }
392 else {
393 $block = 16; break;
394 }
395 break;
396 }
397 case 20: {
398 $rt.runtime.boundsCheck($t32_33, $rt.builtin.byteLen(s));
399 $t39_40 = $rt.builtin.stringByteAt(s, $t32_33);
400 $t40_41 = ($t39_40 === 10);
401 if ($t40_41) {
402 $block = 15; break;
403 }
404 else {
405 $block = 19; break;
406 }
407 break;
408 }
409 case 21: {
410 $rt.runtime.boundsCheck($t32_33, $rt.builtin.byteLen(s));
411 $t41_42 = $rt.builtin.stringByteAt(s, $t32_33);
412 $t42_43 = ($t41_42 === 9);
413 if ($t42_43) {
414 $block = 15; break;
415 }
416 else {
417 $block = 20; break;
418 }
419 break;
420 }
421 case 22: {
422 $t43_44 = ($t32_33 + 1);
423 $t48_49 = $t43_44;
424 $t49_50 = $t43_44;
425 $t50_51 = '';
426 $block = 25; break;
427 break;
428 }
429 case 23: {
430 $rt.runtime.boundsCheck($t32_33, $rt.builtin.byteLen(s));
431 $t44_45 = $rt.builtin.stringByteAt(s, $t32_33);
432 $t45_46 = ($t44_45 !== 34);
433 if ($t45_46) {
434 $block = 3; break;
435 }
436 else {
437 $block = 22; break;
438 }
439 break;
440 }
441 case 24: {
442 $rt.runtime.boundsCheck($t48_49, $rt.builtin.byteLen(s));
443 $t46_47 = $rt.builtin.stringByteAt(s, $t48_49);
444 $t47_48 = ($t46_47 === 92);
445 if ($t47_48) {
446 $block = 28; break;
447 }
448 else {
449 $block = 27; break;
450 }
451 break;
452 }
453 case 25: {
454 $t51_52 = $rt.builtin.len(s);
455 $t52_53 = ($t48_49 < $t51_52);
456 if ($t52_53) {
457 $block = 24; break;
458 }
459 else {
460 $block = 3; break;
461 }
462 break;
463 }
464 case 26: {
465 $t53_54 = $rt.builtin.stringSlice(s, $t49_50, $t48_49);
466 $t54_55 = ($t50_51 + $t53_54);
467 $t55_56 = ($t48_49 + 1);
468 $rt.runtime.boundsCheck($t55_56, $rt.builtin.byteLen(s));
469 $t56_57 = $rt.builtin.stringByteAt(s, $t55_56);
470 $t57_58 = ($t56_57 === 34);
471 if ($t57_58) {
472 $block = 30; break;
473 }
474 else {
475 $block = 32; break;
476 }
477 break;
478 }
479 case 27: {
480 $rt.runtime.boundsCheck($t48_49, $rt.builtin.byteLen(s));
481 $t58_59 = $rt.builtin.stringByteAt(s, $t48_49);
482 $t59_60 = ($t58_59 === 34);
483 if ($t59_60) {
484 $block = 40; break;
485 }
486 else {
487 $block = 41; break;
488 }
489 break;
490 }
491 case 28: {
492 $t60_61 = ($t48_49 + 1);
493 $t61_62 = $rt.builtin.len(s);
494 $t62_63 = ($t60_61 < $t61_62);
495 if ($t62_63) {
496 $block = 26; break;
497 }
498 else {
499 $block = 27; break;
500 }
501 break;
502 }
503 case 29: {
504 $t64_65 = ($t55_56 + 1);
505 $t48_49 = $t64_65;
506 $t49_50 = $t64_65;
507 $t50_51 = $t63_64;
508 $block = 25; break;
509 break;
510 }
511 case 30: {
512 $t65_66 = ($t55_56 + 1);
513 $t66_67 = $rt.builtin.stringSlice(s, $t55_56, $t65_66);
514 $t67_68 = ($t54_55 + $t66_67);
515 $t63_64 = $t67_68;
516 $block = 29; break;
517 break;
518 }
519 case 31: {
520 $t68_69 = ($t54_55 + '\n');
521 $t63_64 = $t68_69;
522 $block = 29; break;
523 break;
524 }
525 case 32: {
526 $t69_70 = ($t56_57 === 92);
527 if ($t69_70) {
528 $block = 30; break;
529 }
530 else {
531 $block = 33; break;
532 }
533 break;
534 }
535 case 33: {
536 $t70_71 = ($t56_57 === 47);
537 if ($t70_71) {
538 $block = 30; break;
539 }
540 else {
541 $block = 34; break;
542 }
543 break;
544 }
545 case 34: {
546 $t71_72 = ($t56_57 === 110);
547 if ($t71_72) {
548 $block = 31; break;
549 }
550 else {
551 $block = 36; break;
552 }
553 break;
554 }
555 case 35: {
556 $t72_73 = ($t54_55 + '\r');
557 $t63_64 = $t72_73;
558 $block = 29; break;
559 break;
560 }
561 case 36: {
562 $t73_74 = ($t56_57 === 114);
563 if ($t73_74) {
564 $block = 35; break;
565 }
566 else {
567 $block = 38; break;
568 }
569 break;
570 }
571 case 37: {
572 $t74_75 = ($t54_55 + '\t');
573 $t63_64 = $t74_75;
574 $block = 29; break;
575 break;
576 }
577 case 38: {
578 $t75_76 = ($t56_57 === 116);
579 if ($t75_76) {
580 $block = 37; break;
581 }
582 else {
583 $block = 39; break;
584 }
585 break;
586 }
587 case 39: {
588 $t76_77 = ($t55_56 + 1);
589 $t77_78 = $rt.builtin.stringSlice(s, $t55_56, $t76_77);
590 $t78_79 = ($t54_55 + $t77_78);
591 $t63_64 = $t78_79;
592 $block = 29; break;
593 break;
594 }
595 case 40: {
596 $t79_80 = $rt.builtin.stringSlice(s, $t49_50, $t48_49);
597 $t80_81 = ($t50_51 + $t79_80);
598 return $t80_81;
599 break;
600 }
601 case 41: {
602 $t81_82 = ($t48_49 + 1);
603 let $phi0 = $t81_82;
604 let $phi1 = $t49_50;
605 let $phi2 = $t50_51;
606 $t48_49 = $phi0;
607 $t49_50 = $phi1;
608 $t50_51 = $phi2;
609 $block = 25; break;
610 break;
611 }
612 }
613 }
614 }
615
616 export function Itoa(n) {
617 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20;
618 let $block = 0;
619 while (true) {
620 switch ($block) {
621 case 0: {
622 $t0_1 = (n === 0);
623 if ($t0_1) {
624 $block = 1; break;
625 }
626 else {
627 $block = 2; break;
628 }
629 break;
630 }
631 case 1: {
632 return '0';
633 break;
634 }
635 case 2: {
636 $t1_2 = (n < 0);
637 if ($t1_2) {
638 $block = 3; break;
639 }
640 else {
641 $t3_4 = n;
642 $t4_5 = false;
643 $block = 4; break;
644 }
645 break;
646 }
647 case 3: {
648 $t2_3 = -n;
649 $t3_4 = $t2_3;
650 $t4_5 = true;
651 $block = 4; break;
652 break;
653 }
654 case 4: {
655 $t5_6 = { $value: $rt.builtin.makeSlice(20, 20, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
656 $t12_13 = $t3_4;
657 $t13_14 = 20;
658 $block = 7; break;
659 break;
660 }
661 case 5: {
662 $t6_7 = ($t13_14 - 1);
663 $t7_8 = ($t12_13 % 10);
664 $t8_9 = (48 + $t7_8);
665 $t9_10 = ($t8_9 & 0xFF);
666 $t10_11 = $t5_6.$get().addr($t6_7);
667 $t10_11.$set($t9_10);
668 $t11_12 = Math.trunc($t12_13 / 10);
669 $t12_13 = $t11_12;
670 $t13_14 = $t6_7;
671 $block = 7; break;
672 break;
673 }
674 case 6: {
675 if ($t4_5) {
676 $block = 8; break;
677 }
678 else {
679 $t17_18 = $t13_14;
680 $block = 9; break;
681 }
682 break;
683 }
684 case 7: {
685 $t14_15 = ($t12_13 > 0);
686 if ($t14_15) {
687 $block = 5; break;
688 }
689 else {
690 $block = 6; break;
691 }
692 break;
693 }
694 case 8: {
695 $t15_16 = ($t13_14 - 1);
696 $t16_17 = $t5_6.$get().addr($t15_16);
697 $t16_17.$set(45);
698 $t17_18 = $t15_16;
699 $block = 9; break;
700 break;
701 }
702 case 9: {
703 $t18_19 = $rt.builtin.sliceSlice($t5_6.$get(), $t17_18, undefined, undefined);
704 $t19_20 = $rt.builtin.bytesToString($t18_19);
705 return $t19_20;
706 break;
707 }
708 }
709 }
710 }
711
712 export function Bech32Encode(hrp, data) {
713 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26;
714 let $block = 0;
715 while (true) {
716 switch ($block) {
717 case 0: {
718 $t0_1 = bytesToBase32(data);
719 $t1_2 = bech32Checksum(hrp, $t0_1);
720 $t2_3 = $rt.builtin.appendSlice($t0_1, $t1_2);
721 $t3_4 = $rt.builtin.len(hrp);
722 $t4_5 = ($t3_4 + 1);
723 $t5_6 = $rt.builtin.len($t2_3);
724 $t6_7 = ($t4_5 + $t5_6);
725 $t7_8 = $rt.builtin.makeSlice(0, $t6_7, 0);
726 $t8_9 = $rt.builtin.appendString($t7_8, hrp);
727 $t9_10 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
728 $t10_11 = $t9_10.$get().addr(0);
729 $t10_11.$set(49);
730 $t11_12 = $rt.builtin.sliceSlice($t9_10.$get(), undefined, undefined, undefined);
731 $t12_13 = $rt.builtin.appendSlice($t8_9, $t11_12);
732 $t13_14 = $rt.builtin.len($t2_3);
733 $t14_15 = $t12_13;
734 $t15_16 = -1;
735 $block = 1; break;
736 break;
737 }
738 case 1: {
739 $t16_17 = ($t15_16 + 1);
740 $t17_18 = ($t16_17 < $t13_14);
741 if ($t17_18) {
742 $block = 2; break;
743 }
744 else {
745 $block = 3; break;
746 }
747 break;
748 }
749 case 2: {
750 $t18_19 = $t2_3.addr($t16_17);
751 $t19_20 = $t18_19.$get();
752 $rt.runtime.boundsCheck($t19_20, $rt.builtin.byteLen('qpzry9x8gf2tvdw0s3jn54khce6mua7l'));
753 $t20_21 = $rt.builtin.stringByteAt('qpzry9x8gf2tvdw0s3jn54khce6mua7l', $t19_20);
754 $t21_22 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
755 $t22_23 = $t21_22.$get().addr(0);
756 $t22_23.$set($t20_21);
757 $t23_24 = $rt.builtin.sliceSlice($t21_22.$get(), undefined, undefined, undefined);
758 $t24_25 = $rt.builtin.appendSlice($t14_15, $t23_24);
759 $t14_15 = $t24_25;
760 $t15_16 = $t16_17;
761 $block = 1; break;
762 break;
763 }
764 case 3: {
765 $t25_26 = $rt.builtin.bytesToString($t14_15);
766 return $t25_26;
767 break;
768 }
769 }
770 }
771 }
772
773 export function Bech32Decode(s) {
774 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27, $t27_28, $t28_29, $t29_30, $t30_31;
775 let $block = 0;
776 while (true) {
777 switch ($block) {
778 case 0: {
779 $t0_1 = $rt.builtin.len(s);
780 $t1_2 = ($t0_1 - 1);
781 $t2_3 = $t1_2;
782 $block = 1; break;
783 break;
784 }
785 case 1: {
786 $t3_4 = ($t2_3 >= 0);
787 if ($t3_4) {
788 $block = 2; break;
789 }
790 else {
791 $t6_7 = -1;
792 $block = 3; break;
793 }
794 break;
795 }
796 case 2: {
797 $rt.runtime.boundsCheck($t2_3, $rt.builtin.byteLen(s));
798 $t4_5 = $rt.builtin.stringByteAt(s, $t2_3);
799 $t5_6 = ($t4_5 === 49);
800 if ($t5_6) {
801 $block = 4; break;
802 }
803 else {
804 $block = 5; break;
805 }
806 break;
807 }
808 case 3: {
809 $t7_8 = ($t6_7 < 1);
810 if ($t7_8) {
811 $block = 6; break;
812 }
813 else {
814 $block = 8; break;
815 }
816 break;
817 }
818 case 4: {
819 $t6_7 = $t2_3;
820 $block = 3; break;
821 break;
822 }
823 case 5: {
824 $t8_9 = ($t2_3 - 1);
825 $t2_3 = $t8_9;
826 $block = 1; break;
827 break;
828 }
829 case 6: {
830 return ['', null];
831 break;
832 }
833 case 7: {
834 $t9_10 = $rt.builtin.stringSlice(s, undefined, $t6_7);
835 $t10_11 = ($t6_7 + 1);
836 $t11_12 = $rt.builtin.stringSlice(s, $t10_11, undefined);
837 $t12_13 = $rt.builtin.len($t11_12);
838 $t13_14 = $rt.builtin.makeSlice($t12_13, $t12_13, 0);
839 $t17_18 = 0;
840 $block = 9; break;
841 break;
842 }
843 case 8: {
844 $t14_15 = ($t6_7 + 7);
845 $t15_16 = $rt.builtin.len(s);
846 $t16_17 = ($t14_15 > $t15_16);
847 if ($t16_17) {
848 $block = 6; break;
849 }
850 else {
851 $block = 7; break;
852 }
853 break;
854 }
855 case 9: {
856 $t18_19 = $rt.builtin.len($t11_12);
857 $t19_20 = ($t17_18 < $t18_19);
858 if ($t19_20) {
859 $block = 10; break;
860 }
861 else {
862 $block = 11; break;
863 }
864 break;
865 }
866 case 10: {
867 $rt.runtime.boundsCheck($t17_18, $rt.builtin.byteLen($t11_12));
868 $t20_21 = $rt.builtin.stringByteAt($t11_12, $t17_18);
869 $t21_22 = charsetIndex($t20_21);
870 $t22_23 = ($t21_22 < 0);
871 if ($t22_23) {
872 $block = 12; break;
873 }
874 else {
875 $block = 13; break;
876 }
877 break;
878 }
879 case 11: {
880 $t23_24 = bech32Verify($t9_10, $t13_14);
881 if ($t23_24) {
882 $block = 15; break;
883 }
884 else {
885 $block = 14; break;
886 }
887 break;
888 }
889 case 12: {
890 return ['', null];
891 break;
892 }
893 case 13: {
894 $t24_25 = ($t21_22 & 0xFF);
895 $t25_26 = $t13_14.addr($t17_18);
896 $t25_26.$set($t24_25);
897 $t26_27 = ($t17_18 + 1);
898 $t17_18 = $t26_27;
899 $block = 9; break;
900 break;
901 }
902 case 14: {
903 return ['', null];
904 break;
905 }
906 case 15: {
907 $t27_28 = $rt.builtin.len($t13_14);
908 $t28_29 = ($t27_28 - 6);
909 $t29_30 = $rt.builtin.sliceSlice($t13_14, undefined, $t28_29, undefined);
910 $t30_31 = base32ToBytes($t29_30);
911 return [$t9_10, $t30_31];
912 break;
913 }
914 }
915 }
916 }
917
918 export function EncodeNpub(pubkey) {
919 let $t0_1;
920 $t0_1 = Bech32Encode('npub', pubkey);
921 return $t0_1;
922 }
923
924 export function EncodeNsec(seckey) {
925 let $t0_1;
926 $t0_1 = Bech32Encode('nsec', seckey);
927 return $t0_1;
928 }
929
930 export function EncodeNote(eventID) {
931 let $t0_1;
932 $t0_1 = Bech32Encode('note', eventID);
933 return $t0_1;
934 }
935
936 export function DecodeNpub(s) {
937 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6;
938 let $block = 0;
939 while (true) {
940 switch ($block) {
941 case 0: {
942 $t0_1 = Bech32Decode(s);
943 $t1_2 = $t0_1[0];
944 $t2_3 = $t0_1[1];
945 $t3_4 = ($t1_2 !== 'npub');
946 if ($t3_4) {
947 $block = 1; break;
948 }
949 else {
950 $block = 3; break;
951 }
952 break;
953 }
954 case 1: {
955 return null;
956 break;
957 }
958 case 2: {
959 return $t2_3;
960 break;
961 }
962 case 3: {
963 $t4_5 = $rt.builtin.len($t2_3);
964 $t5_6 = ($t4_5 !== 32);
965 if ($t5_6) {
966 $block = 1; break;
967 }
968 else {
969 $block = 2; break;
970 }
971 break;
972 }
973 }
974 }
975 }
976
977 export function DecodeNsec(s) {
978 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6;
979 let $block = 0;
980 while (true) {
981 switch ($block) {
982 case 0: {
983 $t0_1 = Bech32Decode(s);
984 $t1_2 = $t0_1[0];
985 $t2_3 = $t0_1[1];
986 $t3_4 = ($t1_2 !== 'nsec');
987 if ($t3_4) {
988 $block = 1; break;
989 }
990 else {
991 $block = 3; break;
992 }
993 break;
994 }
995 case 1: {
996 return null;
997 break;
998 }
999 case 2: {
1000 return $t2_3;
1001 break;
1002 }
1003 case 3: {
1004 $t4_5 = $rt.builtin.len($t2_3);
1005 $t5_6 = ($t4_5 !== 32);
1006 if ($t5_6) {
1007 $block = 1; break;
1008 }
1009 else {
1010 $block = 2; break;
1011 }
1012 break;
1013 }
1014 }
1015 }
1016 }
1017
1018 export function DecodeNote(s) {
1019 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6;
1020 let $block = 0;
1021 while (true) {
1022 switch ($block) {
1023 case 0: {
1024 $t0_1 = Bech32Decode(s);
1025 $t1_2 = $t0_1[0];
1026 $t2_3 = $t0_1[1];
1027 $t3_4 = ($t1_2 !== 'note');
1028 if ($t3_4) {
1029 $block = 1; break;
1030 }
1031 else {
1032 $block = 3; break;
1033 }
1034 break;
1035 }
1036 case 1: {
1037 return null;
1038 break;
1039 }
1040 case 2: {
1041 return $t2_3;
1042 break;
1043 }
1044 case 3: {
1045 $t4_5 = $rt.builtin.len($t2_3);
1046 $t5_6 = ($t4_5 !== 32);
1047 if ($t5_6) {
1048 $block = 1; break;
1049 }
1050 else {
1051 $block = 2; break;
1052 }
1053 break;
1054 }
1055 }
1056 }
1057 }
1058
1059 export function PubkeyShort(pubkey) {
1060 let $t0_1, $t1_2, $t2_3;
1061 let $block = 0;
1062 while (true) {
1063 switch ($block) {
1064 case 0: {
1065 $t0_1 = $rt.builtin.len(pubkey);
1066 $t1_2 = ($t0_1 >= 8);
1067 if ($t1_2) {
1068 $block = 1; break;
1069 }
1070 else {
1071 $block = 2; break;
1072 }
1073 break;
1074 }
1075 case 1: {
1076 $t2_3 = $rt.builtin.stringSlice(pubkey, undefined, 8);
1077 return $t2_3;
1078 break;
1079 }
1080 case 2: {
1081 return pubkey;
1082 break;
1083 }
1084 }
1085 }
1086 }
1087
1088 export function bytesToBase32(data) {
1089 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27, $t27_28, $t28_29, $t29_30, $t30_31, $t31_32, $t32_33, $t33_34, $t34_35, $t35_36, $t36_37, $t37_38;
1090 let $block = 0;
1091 while (true) {
1092 switch ($block) {
1093 case 0: {
1094 $t0_1 = $rt.builtin.len(data);
1095 $t1_2 = null;
1096 $t2_3 = 0;
1097 $t3_4 = 0;
1098 $t4_5 = -1;
1099 $block = 1; break;
1100 break;
1101 }
1102 case 1: {
1103 $t5_6 = ($t4_5 + 1);
1104 $t6_7 = ($t5_6 < $t0_1);
1105 if ($t6_7) {
1106 $block = 2; break;
1107 }
1108 else {
1109 $block = 3; break;
1110 }
1111 break;
1112 }
1113 case 2: {
1114 $t7_8 = data.addr($t5_6);
1115 $t8_9 = $t7_8.$get();
1116 $t9_10 = ($t2_3 * (2 ** 8));
1117 $t10_11 = $t8_9;
1118 $t11_12 = $rt.builtin.int64or($t9_10, $t10_11);
1119 $t12_13 = ($t3_4 + 8);
1120 $t26_27 = $t1_2;
1121 $t27_28 = $t12_13;
1122 $block = 6; break;
1123 break;
1124 }
1125 case 3: {
1126 $t13_14 = ($t3_4 > 0);
1127 if ($t13_14) {
1128 $block = 7; break;
1129 }
1130 else {
1131 $t37_38 = $t1_2;
1132 $block = 8; break;
1133 }
1134 break;
1135 }
1136 case 4: {
1137 $t14_15 = ($t27_28 - 5);
1138 $t15_16 = Math.trunc($t11_12 / (2 ** $t14_15));
1139 $t16_17 = $rt.builtin.int64and($t15_16, 31);
1140 $t17_18 = ($t16_17 & 0xFF);
1141 $t18_19 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
1142 $t19_20 = $t18_19.$get().addr(0);
1143 $t19_20.$set($t17_18);
1144 $t20_21 = $rt.builtin.sliceSlice($t18_19.$get(), undefined, undefined, undefined);
1145 $t21_22 = $rt.builtin.appendSlice($t26_27, $t20_21);
1146 $t26_27 = $t21_22;
1147 $t27_28 = $t14_15;
1148 $block = 6; break;
1149 break;
1150 }
1151 case 5: {
1152 $t22_23 = $t27_28;
1153 $t23_24 = (1 * (2 ** $t22_23));
1154 $t24_25 = ($t23_24 - 1);
1155 $t25_26 = $rt.builtin.int64and($t11_12, $t24_25);
1156 $t1_2 = $t26_27;
1157 $t2_3 = $t25_26;
1158 $t3_4 = $t27_28;
1159 $t4_5 = $t5_6;
1160 $block = 1; break;
1161 break;
1162 }
1163 case 6: {
1164 $t28_29 = ($t27_28 >= 5);
1165 if ($t28_29) {
1166 $block = 4; break;
1167 }
1168 else {
1169 $block = 5; break;
1170 }
1171 break;
1172 }
1173 case 7: {
1174 $t29_30 = (5 - $t3_4);
1175 $t30_31 = ($t2_3 * (2 ** $t29_30));
1176 $t31_32 = $rt.builtin.int64and($t30_31, 31);
1177 $t32_33 = ($t31_32 & 0xFF);
1178 $t33_34 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
1179 $t34_35 = $t33_34.$get().addr(0);
1180 $t34_35.$set($t32_33);
1181 $t35_36 = $rt.builtin.sliceSlice($t33_34.$get(), undefined, undefined, undefined);
1182 $t36_37 = $rt.builtin.appendSlice($t1_2, $t35_36);
1183 $t37_38 = $t36_37;
1184 $block = 8; break;
1185 break;
1186 }
1187 case 8: {
1188 return $t37_38;
1189 break;
1190 }
1191 }
1192 }
1193 }
1194
1195 export function base32ToBytes(data) {
1196 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27, $t27_28;
1197 let $block = 0;
1198 while (true) {
1199 switch ($block) {
1200 case 0: {
1201 $t0_1 = $rt.builtin.len(data);
1202 $t1_2 = null;
1203 $t2_3 = 0;
1204 $t3_4 = 0;
1205 $t4_5 = -1;
1206 $block = 1; break;
1207 break;
1208 }
1209 case 1: {
1210 $t5_6 = ($t4_5 + 1);
1211 $t6_7 = ($t5_6 < $t0_1);
1212 if ($t6_7) {
1213 $block = 2; break;
1214 }
1215 else {
1216 $block = 3; break;
1217 }
1218 break;
1219 }
1220 case 2: {
1221 $t7_8 = data.addr($t5_6);
1222 $t8_9 = $t7_8.$get();
1223 $t9_10 = ($t2_3 * (2 ** 5));
1224 $t10_11 = $t8_9;
1225 $t11_12 = $rt.builtin.int64or($t9_10, $t10_11);
1226 $t12_13 = ($t3_4 + 5);
1227 $t25_26 = $t1_2;
1228 $t26_27 = $t12_13;
1229 $block = 6; break;
1230 break;
1231 }
1232 case 3: {
1233 return $t1_2;
1234 break;
1235 }
1236 case 4: {
1237 $t13_14 = ($t26_27 - 8);
1238 $t14_15 = Math.trunc($t11_12 / (2 ** $t13_14));
1239 $t15_16 = $rt.builtin.int64and($t14_15, 255);
1240 $t16_17 = ($t15_16 & 0xFF);
1241 $t17_18 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
1242 $t18_19 = $t17_18.$get().addr(0);
1243 $t18_19.$set($t16_17);
1244 $t19_20 = $rt.builtin.sliceSlice($t17_18.$get(), undefined, undefined, undefined);
1245 $t20_21 = $rt.builtin.appendSlice($t25_26, $t19_20);
1246 $t25_26 = $t20_21;
1247 $t26_27 = $t13_14;
1248 $block = 6; break;
1249 break;
1250 }
1251 case 5: {
1252 $t21_22 = $t26_27;
1253 $t22_23 = (1 * (2 ** $t21_22));
1254 $t23_24 = ($t22_23 - 1);
1255 $t24_25 = $rt.builtin.int64and($t11_12, $t23_24);
1256 $t1_2 = $t25_26;
1257 $t2_3 = $t24_25;
1258 $t3_4 = $t26_27;
1259 $t4_5 = $t5_6;
1260 $block = 1; break;
1261 break;
1262 }
1263 case 6: {
1264 $t27_28 = ($t26_27 >= 8);
1265 if ($t27_28) {
1266 $block = 4; break;
1267 }
1268 else {
1269 $block = 5; break;
1270 }
1271 break;
1272 }
1273 }
1274 }
1275 }
1276
1277 export function bech32Polymod(values) {
1278 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27, $t27_28, $t28_29, $t29_30;
1279 let $block = 0;
1280 while (true) {
1281 switch ($block) {
1282 case 0: {
1283 $t0_1 = { $value: $rt.builtin.makeSlice(5, 5, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
1284 $t1_2 = $t0_1.$get().addr(0);
1285 $t2_3 = $t0_1.$get().addr(1);
1286 $t3_4 = $t0_1.$get().addr(2);
1287 $t4_5 = $t0_1.$get().addr(3);
1288 $t5_6 = $t0_1.$get().addr(4);
1289 $t1_2.$set(996825010);
1290 $t2_3.$set(642813549);
1291 $t3_4.$set(513874426);
1292 $t4_5.$set(1027748829);
1293 $t5_6.$set(705979059);
1294 $t6_7 = $rt.builtin.len(values);
1295 $t7_8 = 1;
1296 $t8_9 = -1;
1297 $block = 1; break;
1298 break;
1299 }
1300 case 1: {
1301 $t9_10 = ($t8_9 + 1);
1302 $t10_11 = ($t9_10 < $t6_7);
1303 if ($t10_11) {
1304 $block = 2; break;
1305 }
1306 else {
1307 $block = 3; break;
1308 }
1309 break;
1310 }
1311 case 2: {
1312 $t11_12 = values.addr($t9_10);
1313 $t12_13 = $t11_12.$get();
1314 $t13_14 = ($t7_8 >>> 25);
1315 $t14_15 = (($t7_8 & 33554431) >>> 0);
1316 $t15_16 = (($t14_15 << 5) >>> 0);
1317 $t16_17 = ($t12_13 >>> 0);
1318 $t17_18 = (($t15_16 ^ $t16_17) >>> 0);
1319 $t18_19 = $t17_18;
1320 $t19_20 = 0;
1321 $block = 4; break;
1322 break;
1323 }
1324 case 3: {
1325 return $t7_8;
1326 break;
1327 }
1328 case 4: {
1329 $t20_21 = ($t19_20 < 5);
1330 if ($t20_21) {
1331 $block = 5; break;
1332 }
1333 else {
1334 $t7_8 = $t18_19;
1335 $t8_9 = $t9_10;
1336 $block = 1; break;
1337 }
1338 break;
1339 }
1340 case 5: {
1341 $t21_22 = $t19_20;
1342 $t22_23 = ($t13_14 >>> $t21_22);
1343 $t23_24 = (($t22_23 & 1) >>> 0);
1344 $t24_25 = ($t23_24 === 1);
1345 if ($t24_25) {
1346 $block = 6; break;
1347 }
1348 else {
1349 $t28_29 = $t18_19;
1350 $block = 7; break;
1351 }
1352 break;
1353 }
1354 case 6: {
1355 $t25_26 = $t0_1.$get().addr($t19_20);
1356 $t26_27 = $t25_26.$get();
1357 $t27_28 = (($t18_19 ^ $t26_27) >>> 0);
1358 $t28_29 = $t27_28;
1359 $block = 7; break;
1360 break;
1361 }
1362 case 7: {
1363 $t29_30 = ($t19_20 + 1);
1364 $t18_19 = $t28_29;
1365 $t19_20 = $t29_30;
1366 $block = 4; break;
1367 break;
1368 }
1369 }
1370 }
1371 }
1372
1373 export function bech32HRPExpand(hrp) {
1374 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27, $t27_28, $t28_29, $t29_30;
1375 let $block = 0;
1376 while (true) {
1377 switch ($block) {
1378 case 0: {
1379 $t0_1 = $rt.builtin.len(hrp);
1380 $t1_2 = ($t0_1 * 2);
1381 $t2_3 = ($t1_2 + 1);
1382 $t3_4 = $rt.builtin.makeSlice(0, $t2_3, 0);
1383 $t4_5 = $t3_4;
1384 $t5_6 = 0;
1385 $block = 1; break;
1386 break;
1387 }
1388 case 1: {
1389 $t6_7 = $rt.builtin.len(hrp);
1390 $t7_8 = ($t5_6 < $t6_7);
1391 if ($t7_8) {
1392 $block = 2; break;
1393 }
1394 else {
1395 $block = 3; break;
1396 }
1397 break;
1398 }
1399 case 2: {
1400 $rt.runtime.boundsCheck($t5_6, $rt.builtin.byteLen(hrp));
1401 $t8_9 = $rt.builtin.stringByteAt(hrp, $t5_6);
1402 $t9_10 = (($t8_9 & 0xFF) >> 5);
1403 $t10_11 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
1404 $t11_12 = $t10_11.$get().addr(0);
1405 $t11_12.$set($t9_10);
1406 $t12_13 = $rt.builtin.sliceSlice($t10_11.$get(), undefined, undefined, undefined);
1407 $t13_14 = $rt.builtin.appendSlice($t4_5, $t12_13);
1408 $t14_15 = ($t5_6 + 1);
1409 $t4_5 = $t13_14;
1410 $t5_6 = $t14_15;
1411 $block = 1; break;
1412 break;
1413 }
1414 case 3: {
1415 $t15_16 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
1416 $t16_17 = $t15_16.$get().addr(0);
1417 $t16_17.$set(0);
1418 $t17_18 = $rt.builtin.sliceSlice($t15_16.$get(), undefined, undefined, undefined);
1419 $t18_19 = $rt.builtin.appendSlice($t4_5, $t17_18);
1420 $t19_20 = $t18_19;
1421 $t20_21 = 0;
1422 $block = 4; break;
1423 break;
1424 }
1425 case 4: {
1426 $t21_22 = $rt.builtin.len(hrp);
1427 $t22_23 = ($t20_21 < $t21_22);
1428 if ($t22_23) {
1429 $block = 5; break;
1430 }
1431 else {
1432 $block = 6; break;
1433 }
1434 break;
1435 }
1436 case 5: {
1437 $rt.runtime.boundsCheck($t20_21, $rt.builtin.byteLen(hrp));
1438 $t23_24 = $rt.builtin.stringByteAt(hrp, $t20_21);
1439 $t24_25 = ($t23_24 & 31);
1440 $t25_26 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
1441 $t26_27 = $t25_26.$get().addr(0);
1442 $t26_27.$set($t24_25);
1443 $t27_28 = $rt.builtin.sliceSlice($t25_26.$get(), undefined, undefined, undefined);
1444 $t28_29 = $rt.builtin.appendSlice($t19_20, $t27_28);
1445 $t29_30 = ($t20_21 + 1);
1446 $t19_20 = $t28_29;
1447 $t20_21 = $t29_30;
1448 $block = 4; break;
1449 break;
1450 }
1451 case 6: {
1452 return $t19_20;
1453 break;
1454 }
1455 }
1456 }
1457 }
1458
1459 export function bech32Checksum(hrp, data) {
1460 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25;
1461 let $block = 0;
1462 while (true) {
1463 switch ($block) {
1464 case 0: {
1465 $t0_1 = bech32HRPExpand(hrp);
1466 $t1_2 = $rt.builtin.appendSlice($t0_1, data);
1467 $t2_3 = { $value: $rt.builtin.makeSlice(6, 6, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
1468 $t3_4 = $t2_3.$get().addr(0);
1469 $t3_4.$set(0);
1470 $t4_5 = $t2_3.$get().addr(1);
1471 $t4_5.$set(0);
1472 $t5_6 = $t2_3.$get().addr(2);
1473 $t5_6.$set(0);
1474 $t6_7 = $t2_3.$get().addr(3);
1475 $t6_7.$set(0);
1476 $t7_8 = $t2_3.$get().addr(4);
1477 $t7_8.$set(0);
1478 $t8_9 = $t2_3.$get().addr(5);
1479 $t8_9.$set(0);
1480 $t9_10 = $rt.builtin.sliceSlice($t2_3.$get(), undefined, undefined, undefined);
1481 $t10_11 = $rt.builtin.appendSlice($t1_2, $t9_10);
1482 $t11_12 = bech32Polymod($t10_11);
1483 $t12_13 = (($t11_12 ^ 1) >>> 0);
1484 $t13_14 = { $value: $rt.builtin.makeSlice(6, 6, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
1485 $t14_15 = $rt.builtin.sliceSlice($t13_14.$get(), undefined, 6, undefined);
1486 $t15_16 = 0;
1487 $block = 1; break;
1488 break;
1489 }
1490 case 1: {
1491 $t16_17 = ($t15_16 < 6);
1492 if ($t16_17) {
1493 $block = 2; break;
1494 }
1495 else {
1496 $block = 3; break;
1497 }
1498 break;
1499 }
1500 case 2: {
1501 $t17_18 = $t15_16;
1502 $t18_19 = (5 - $t17_18);
1503 $t19_20 = (5 * $t18_19);
1504 $t20_21 = ($t12_13 >>> $t19_20);
1505 $t21_22 = (($t20_21 & 31) >>> 0);
1506 $t22_23 = ($t21_22 & 0xFF);
1507 $t23_24 = $t14_15.addr($t15_16);
1508 $t23_24.$set($t22_23);
1509 $t24_25 = ($t15_16 + 1);
1510 $t15_16 = $t24_25;
1511 $block = 1; break;
1512 break;
1513 }
1514 case 3: {
1515 return $t14_15;
1516 break;
1517 }
1518 }
1519 }
1520 }
1521
1522 export function bech32Verify(hrp, data) {
1523 let $t0_1, $t1_2, $t2_3, $t3_4;
1524 $t0_1 = bech32HRPExpand(hrp);
1525 $t1_2 = $rt.builtin.appendSlice($t0_1, data);
1526 $t2_3 = bech32Polymod($t1_2);
1527 $t3_4 = ($t2_3 === 1);
1528 return $t3_4;
1529 }
1530
1531 export function charsetIndex(c) {
1532 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5;
1533 let $block = 0;
1534 while (true) {
1535 switch ($block) {
1536 case 0: {
1537 $t0_1 = 0;
1538 $block = 1; break;
1539 break;
1540 }
1541 case 1: {
1542 $t1_2 = ($t0_1 < 32);
1543 if ($t1_2) {
1544 $block = 2; break;
1545 }
1546 else {
1547 $block = 3; break;
1548 }
1549 break;
1550 }
1551 case 2: {
1552 $rt.runtime.boundsCheck($t0_1, $rt.builtin.byteLen('qpzry9x8gf2tvdw0s3jn54khce6mua7l'));
1553 $t2_3 = $rt.builtin.stringByteAt('qpzry9x8gf2tvdw0s3jn54khce6mua7l', $t0_1);
1554 $t3_4 = ($t2_3 === c);
1555 if ($t3_4) {
1556 $block = 4; break;
1557 }
1558 else {
1559 $block = 5; break;
1560 }
1561 break;
1562 }
1563 case 3: {
1564 return -1;
1565 break;
1566 }
1567 case 4: {
1568 return $t0_1;
1569 break;
1570 }
1571 case 5: {
1572 $t4_5 = ($t0_1 + 1);
1573 $t0_1 = $t4_5;
1574 $block = 1; break;
1575 break;
1576 }
1577 }
1578 }
1579 }
1580
1581 export function HexEncode(b) {
1582 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19;
1583 let $block = 0;
1584 while (true) {
1585 switch ($block) {
1586 case 0: {
1587 $t0_1 = $rt.builtin.len(b);
1588 $t1_2 = ($t0_1 * 2);
1589 $t2_3 = $rt.builtin.makeSlice($t1_2, $t1_2, 0);
1590 $t3_4 = $rt.builtin.len(b);
1591 $t4_5 = -1;
1592 $block = 1; break;
1593 break;
1594 }
1595 case 1: {
1596 $t5_6 = ($t4_5 + 1);
1597 $t6_7 = ($t5_6 < $t3_4);
1598 if ($t6_7) {
1599 $block = 2; break;
1600 }
1601 else {
1602 $block = 3; break;
1603 }
1604 break;
1605 }
1606 case 2: {
1607 $t7_8 = b.addr($t5_6);
1608 $t8_9 = $t7_8.$get();
1609 $t9_10 = ($t5_6 * 2);
1610 $t10_11 = (($t8_9 & 0xFF) >> 4);
1611 $rt.runtime.boundsCheck($t10_11, $rt.builtin.byteLen('0123456789abcdef'));
1612 $t11_12 = $rt.builtin.stringByteAt('0123456789abcdef', $t10_11);
1613 $t12_13 = $t2_3.addr($t9_10);
1614 $t12_13.$set($t11_12);
1615 $t13_14 = ($t5_6 * 2);
1616 $t14_15 = ($t13_14 + 1);
1617 $t15_16 = ($t8_9 & 15);
1618 $rt.runtime.boundsCheck($t15_16, $rt.builtin.byteLen('0123456789abcdef'));
1619 $t16_17 = $rt.builtin.stringByteAt('0123456789abcdef', $t15_16);
1620 $t17_18 = $t2_3.addr($t14_15);
1621 $t17_18.$set($t16_17);
1622 $t4_5 = $t5_6;
1623 $block = 1; break;
1624 break;
1625 }
1626 case 3: {
1627 $t18_19 = $rt.builtin.bytesToString($t2_3);
1628 return $t18_19;
1629 break;
1630 }
1631 }
1632 }
1633 }
1634
1635 export function HexDecode(s) {
1636 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22;
1637 let $block = 0;
1638 while (true) {
1639 switch ($block) {
1640 case 0: {
1641 $t0_1 = $rt.builtin.len(s);
1642 $t1_2 = ($t0_1 % 2);
1643 $t2_3 = ($t1_2 !== 0);
1644 if ($t2_3) {
1645 $block = 1; break;
1646 }
1647 else {
1648 $block = 2; break;
1649 }
1650 break;
1651 }
1652 case 1: {
1653 return null;
1654 break;
1655 }
1656 case 2: {
1657 $t3_4 = $rt.builtin.len(s);
1658 $t4_5 = Math.trunc($t3_4 / 2);
1659 $t5_6 = $rt.builtin.makeSlice($t4_5, $t4_5, 0);
1660 $t6_7 = 0;
1661 $block = 3; break;
1662 break;
1663 }
1664 case 3: {
1665 $t7_8 = $rt.builtin.len(s);
1666 $t8_9 = ($t6_7 < $t7_8);
1667 if ($t8_9) {
1668 $block = 4; break;
1669 }
1670 else {
1671 $block = 5; break;
1672 }
1673 break;
1674 }
1675 case 4: {
1676 $rt.runtime.boundsCheck($t6_7, $rt.builtin.byteLen(s));
1677 $t9_10 = $rt.builtin.stringByteAt(s, $t6_7);
1678 $t10_11 = hexVal($t9_10);
1679 $t11_12 = ($t6_7 + 1);
1680 $rt.runtime.boundsCheck($t11_12, $rt.builtin.byteLen(s));
1681 $t12_13 = $rt.builtin.stringByteAt(s, $t11_12);
1682 $t13_14 = hexVal($t12_13);
1683 $t14_15 = ($t10_11 < 0);
1684 if ($t14_15) {
1685 $block = 6; break;
1686 }
1687 else {
1688 $block = 8; break;
1689 }
1690 break;
1691 }
1692 case 5: {
1693 return $t5_6;
1694 break;
1695 }
1696 case 6: {
1697 return null;
1698 break;
1699 }
1700 case 7: {
1701 $t15_16 = Math.trunc($t6_7 / 2);
1702 $t16_17 = ($t10_11 * (2 ** 4));
1703 $t17_18 = $rt.builtin.int64or($t16_17, $t13_14);
1704 $t18_19 = ($t17_18 & 0xFF);
1705 $t19_20 = $t5_6.addr($t15_16);
1706 $t19_20.$set($t18_19);
1707 $t20_21 = ($t6_7 + 2);
1708 $t6_7 = $t20_21;
1709 $block = 3; break;
1710 break;
1711 }
1712 case 8: {
1713 $t21_22 = ($t13_14 < 0);
1714 if ($t21_22) {
1715 $block = 6; break;
1716 }
1717 else {
1718 $block = 7; break;
1719 }
1720 break;
1721 }
1722 }
1723 }
1724 }
1725
1726 export function HexDecode32(s) {
1727 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25;
1728 let $block = 0;
1729 while (true) {
1730 switch ($block) {
1731 case 0: {
1732 $t0_1 = { $value: $rt.builtin.makeSlice(32, 32, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
1733 $t1_2 = $rt.builtin.len(s);
1734 $t2_3 = ($t1_2 !== 64);
1735 if ($t2_3) {
1736 $block = 1; break;
1737 }
1738 else {
1739 $block = 2; break;
1740 }
1741 break;
1742 }
1743 case 1: {
1744 $t3_4 = $t0_1.$get();
1745 $t0_1.$set($rt.builtin.cloneValue($t3_4));
1746 $t4_5 = $t0_1.$get();
1747 return [$t4_5, false];
1748 break;
1749 }
1750 case 2: {
1751 $t5_6 = 0;
1752 $block = 3; break;
1753 break;
1754 }
1755 case 3: {
1756 $t6_7 = ($t5_6 < 32);
1757 if ($t6_7) {
1758 $block = 4; break;
1759 }
1760 else {
1761 $block = 5; break;
1762 }
1763 break;
1764 }
1765 case 4: {
1766 $t7_8 = ($t5_6 * 2);
1767 $rt.runtime.boundsCheck($t7_8, $rt.builtin.byteLen(s));
1768 $t8_9 = $rt.builtin.stringByteAt(s, $t7_8);
1769 $t9_10 = hexVal($t8_9);
1770 $t10_11 = ($t5_6 * 2);
1771 $t11_12 = ($t10_11 + 1);
1772 $rt.runtime.boundsCheck($t11_12, $rt.builtin.byteLen(s));
1773 $t12_13 = $rt.builtin.stringByteAt(s, $t11_12);
1774 $t13_14 = hexVal($t12_13);
1775 $t14_15 = ($t9_10 < 0);
1776 if ($t14_15) {
1777 $block = 6; break;
1778 }
1779 else {
1780 $block = 8; break;
1781 }
1782 break;
1783 }
1784 case 5: {
1785 $t15_16 = $t0_1.$get();
1786 $t0_1.$set($rt.builtin.cloneValue($t15_16));
1787 $t16_17 = $t0_1.$get();
1788 return [$t16_17, true];
1789 break;
1790 }
1791 case 6: {
1792 $t17_18 = $t0_1.$get();
1793 $t0_1.$set($rt.builtin.cloneValue($t17_18));
1794 $t18_19 = $t0_1.$get();
1795 return [$t18_19, false];
1796 break;
1797 }
1798 case 7: {
1799 $t19_20 = ($t9_10 * (2 ** 4));
1800 $t20_21 = $rt.builtin.int64or($t19_20, $t13_14);
1801 $t21_22 = ($t20_21 & 0xFF);
1802 $t22_23 = $t0_1.$get().addr($t5_6);
1803 $t22_23.$set($t21_22);
1804 $t23_24 = ($t5_6 + 1);
1805 $t5_6 = $t23_24;
1806 $block = 3; break;
1807 break;
1808 }
1809 case 8: {
1810 $t24_25 = ($t13_14 < 0);
1811 if ($t24_25) {
1812 $block = 6; break;
1813 }
1814 else {
1815 $block = 7; break;
1816 }
1817 break;
1818 }
1819 }
1820 }
1821 }
1822
1823 export function hexVal(c) {
1824 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14;
1825 let $block = 0;
1826 while (true) {
1827 switch ($block) {
1828 case 0: {
1829 $t0_1 = (c >= 48);
1830 if ($t0_1) {
1831 $block = 4; break;
1832 }
1833 else {
1834 $block = 3; break;
1835 }
1836 break;
1837 }
1838 case 1: {
1839 $t1_2 = ((c - 48) & 0xFF);
1840 $t2_3 = $t1_2;
1841 return $t2_3;
1842 break;
1843 }
1844 case 2: {
1845 $t3_4 = ((c - 97) & 0xFF);
1846 $t4_5 = (($t3_4 + 10) & 0xFF);
1847 $t5_6 = $t4_5;
1848 return $t5_6;
1849 break;
1850 }
1851 case 3: {
1852 $t6_7 = (c >= 97);
1853 if ($t6_7) {
1854 $block = 7; break;
1855 }
1856 else {
1857 $block = 6; break;
1858 }
1859 break;
1860 }
1861 case 4: {
1862 $t7_8 = (c <= 57);
1863 if ($t7_8) {
1864 $block = 1; break;
1865 }
1866 else {
1867 $block = 3; break;
1868 }
1869 break;
1870 }
1871 case 5: {
1872 $t8_9 = ((c - 65) & 0xFF);
1873 $t9_10 = (($t8_9 + 10) & 0xFF);
1874 $t10_11 = $t9_10;
1875 return $t10_11;
1876 break;
1877 }
1878 case 6: {
1879 $t11_12 = (c >= 65);
1880 if ($t11_12) {
1881 $block = 9; break;
1882 }
1883 else {
1884 $block = 8; break;
1885 }
1886 break;
1887 }
1888 case 7: {
1889 $t12_13 = (c <= 102);
1890 if ($t12_13) {
1891 $block = 2; break;
1892 }
1893 else {
1894 $block = 6; break;
1895 }
1896 break;
1897 }
1898 case 8: {
1899 return -1;
1900 break;
1901 }
1902 case 9: {
1903 $t13_14 = (c <= 70);
1904 if ($t13_14) {
1905 $block = 5; break;
1906 }
1907 else {
1908 $block = 8; break;
1909 }
1910 break;
1911 }
1912 }
1913 }
1914 }
1915
1916 export function Base64Encode(data) {
1917 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27, $t27_28, $t28_29, $t29_30, $t30_31, $t31_32, $t32_33, $t33_34, $t34_35, $t35_36, $t36_37, $t37_38, $t38_39, $t39_40, $t40_41, $t41_42, $t42_43, $t43_44, $t44_45, $t45_46, $t46_47, $t47_48, $t48_49, $t49_50, $t50_51, $t51_52, $t52_53, $t53_54, $t54_55, $t55_56, $t56_57, $t57_58, $t58_59, $t59_60, $t60_61, $t61_62, $t62_63, $t63_64, $t64_65, $t65_66, $t66_67, $t67_68, $t68_69;
1918 let $block = 0;
1919 while (true) {
1920 switch ($block) {
1921 case 0: {
1922 $t0_1 = $rt.builtin.len(data);
1923 $t1_2 = ($t0_1 + 2);
1924 $t2_3 = Math.trunc($t1_2 / 3);
1925 $t3_4 = ($t2_3 * 4);
1926 $t4_5 = $rt.builtin.makeSlice(0, $t3_4, 0);
1927 $t5_6 = $t4_5;
1928 $t6_7 = 0;
1929 $block = 1; break;
1930 break;
1931 }
1932 case 1: {
1933 $t7_8 = ($t6_7 < $t0_1);
1934 if ($t7_8) {
1935 $block = 2; break;
1936 }
1937 else {
1938 $block = 3; break;
1939 }
1940 break;
1941 }
1942 case 2: {
1943 $t8_9 = data.addr($t6_7);
1944 $t9_10 = $t8_9.$get();
1945 $t10_11 = ($t6_7 + 1);
1946 $t11_12 = ($t10_11 < $t0_1);
1947 if ($t11_12) {
1948 $block = 4; break;
1949 }
1950 else {
1951 $t16_17 = 0;
1952 $block = 5; break;
1953 }
1954 break;
1955 }
1956 case 3: {
1957 $t12_13 = $rt.builtin.bytesToString($t5_6);
1958 return $t12_13;
1959 break;
1960 }
1961 case 4: {
1962 $t13_14 = ($t6_7 + 1);
1963 $t14_15 = data.addr($t13_14);
1964 $t15_16 = $t14_15.$get();
1965 $t16_17 = $t15_16;
1966 $block = 5; break;
1967 break;
1968 }
1969 case 5: {
1970 $t17_18 = ($t6_7 + 2);
1971 $t18_19 = ($t17_18 < $t0_1);
1972 if ($t18_19) {
1973 $block = 6; break;
1974 }
1975 else {
1976 $t22_23 = 0;
1977 $block = 7; break;
1978 }
1979 break;
1980 }
1981 case 6: {
1982 $t19_20 = ($t6_7 + 2);
1983 $t20_21 = data.addr($t19_20);
1984 $t21_22 = $t20_21.$get();
1985 $t22_23 = $t21_22;
1986 $block = 7; break;
1987 break;
1988 }
1989 case 7: {
1990 $t23_24 = (($t9_10 & 0xFF) >> 2);
1991 $t24_25 = ($t23_24 & 63);
1992 $rt.runtime.boundsCheck($t24_25, $rt.builtin.byteLen('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'));
1993 $t25_26 = $rt.builtin.stringByteAt('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/', $t24_25);
1994 $t26_27 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
1995 $t27_28 = $t26_27.$get().addr(0);
1996 $t27_28.$set($t25_26);
1997 $t28_29 = $rt.builtin.sliceSlice($t26_27.$get(), undefined, undefined, undefined);
1998 $t29_30 = $rt.builtin.appendSlice($t5_6, $t28_29);
1999 $t30_31 = (($t9_10 << 4) & 0xFF);
2000 $t31_32 = (($t16_17 & 0xFF) >> 4);
2001 $t32_33 = ($t30_31 | $t31_32);
2002 $t33_34 = ($t32_33 & 63);
2003 $rt.runtime.boundsCheck($t33_34, $rt.builtin.byteLen('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'));
2004 $t34_35 = $rt.builtin.stringByteAt('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/', $t33_34);
2005 $t35_36 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
2006 $t36_37 = $t35_36.$get().addr(0);
2007 $t36_37.$set($t34_35);
2008 $t37_38 = $rt.builtin.sliceSlice($t35_36.$get(), undefined, undefined, undefined);
2009 $t38_39 = $rt.builtin.appendSlice($t29_30, $t37_38);
2010 $t39_40 = ($t6_7 + 1);
2011 $t40_41 = ($t39_40 < $t0_1);
2012 if ($t40_41) {
2013 $block = 8; break;
2014 }
2015 else {
2016 $block = 10; break;
2017 }
2018 break;
2019 }
2020 case 8: {
2021 $t41_42 = (($t16_17 << 2) & 0xFF);
2022 $t42_43 = (($t22_23 & 0xFF) >> 6);
2023 $t43_44 = ($t41_42 | $t42_43);
2024 $t44_45 = ($t43_44 & 63);
2025 $rt.runtime.boundsCheck($t44_45, $rt.builtin.byteLen('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'));
2026 $t45_46 = $rt.builtin.stringByteAt('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/', $t44_45);
2027 $t46_47 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
2028 $t47_48 = $t46_47.$get().addr(0);
2029 $t47_48.$set($t45_46);
2030 $t48_49 = $rt.builtin.sliceSlice($t46_47.$get(), undefined, undefined, undefined);
2031 $t49_50 = $rt.builtin.appendSlice($t38_39, $t48_49);
2032 $t50_51 = $t49_50;
2033 $block = 9; break;
2034 break;
2035 }
2036 case 9: {
2037 $t51_52 = ($t6_7 + 2);
2038 $t52_53 = ($t51_52 < $t0_1);
2039 if ($t52_53) {
2040 $block = 11; break;
2041 }
2042 else {
2043 $block = 13; break;
2044 }
2045 break;
2046 }
2047 case 10: {
2048 $t53_54 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
2049 $t54_55 = $t53_54.$get().addr(0);
2050 $t54_55.$set(61);
2051 $t55_56 = $rt.builtin.sliceSlice($t53_54.$get(), undefined, undefined, undefined);
2052 $t56_57 = $rt.builtin.appendSlice($t38_39, $t55_56);
2053 $t50_51 = $t56_57;
2054 $block = 9; break;
2055 break;
2056 }
2057 case 11: {
2058 $t57_58 = ($t22_23 & 63);
2059 $rt.runtime.boundsCheck($t57_58, $rt.builtin.byteLen('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'));
2060 $t58_59 = $rt.builtin.stringByteAt('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/', $t57_58);
2061 $t59_60 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
2062 $t60_61 = $t59_60.$get().addr(0);
2063 $t60_61.$set($t58_59);
2064 $t61_62 = $rt.builtin.sliceSlice($t59_60.$get(), undefined, undefined, undefined);
2065 $t62_63 = $rt.builtin.appendSlice($t50_51, $t61_62);
2066 $t63_64 = $t62_63;
2067 $block = 12; break;
2068 break;
2069 }
2070 case 12: {
2071 $t64_65 = ($t6_7 + 3);
2072 $t5_6 = $t63_64;
2073 $t6_7 = $t64_65;
2074 $block = 1; break;
2075 break;
2076 }
2077 case 13: {
2078 $t65_66 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
2079 $t66_67 = $t65_66.$get().addr(0);
2080 $t66_67.$set(61);
2081 $t67_68 = $rt.builtin.sliceSlice($t65_66.$get(), undefined, undefined, undefined);
2082 $t68_69 = $rt.builtin.appendSlice($t50_51, $t67_68);
2083 $t63_64 = $t68_69;
2084 $block = 12; break;
2085 break;
2086 }
2087 }
2088 }
2089 }
2090
2091 export function Base64Decode(s) {
2092 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16, $t16_17, $t17_18, $t18_19, $t19_20, $t20_21, $t21_22, $t22_23, $t23_24, $t24_25, $t25_26, $t26_27, $t27_28, $t28_29, $t29_30, $t30_31, $t31_32, $t32_33, $t33_34, $t34_35, $t35_36;
2093 let $block = 0;
2094 while (true) {
2095 switch ($block) {
2096 case 0: {
2097 $t0_1 = $rt.builtin.len(s);
2098 $t6_7 = $t0_1;
2099 $t7_8 = 0;
2100 $block = 3; break;
2101 break;
2102 }
2103 case 1: {
2104 $t1_2 = ($t7_8 + 1);
2105 $t2_3 = ($t6_7 - 1);
2106 $t6_7 = $t2_3;
2107 $t7_8 = $t1_2;
2108 $block = 3; break;
2109 break;
2110 }
2111 case 2: {
2112 $t3_4 = ($t6_7 * 3);
2113 $t4_5 = Math.trunc($t3_4 / 4);
2114 $t5_6 = $rt.builtin.makeSlice(0, $t4_5, 0);
2115 $t12_13 = $t5_6;
2116 $t13_14 = 0;
2117 $t14_15 = 0;
2118 $t15_16 = 0;
2119 $block = 5; break;
2120 break;
2121 }
2122 case 3: {
2123 $t8_9 = ($t6_7 > 0);
2124 if ($t8_9) {
2125 $block = 4; break;
2126 }
2127 else {
2128 $block = 2; break;
2129 }
2130 break;
2131 }
2132 case 4: {
2133 $t9_10 = ($t6_7 - 1);
2134 $rt.runtime.boundsCheck($t9_10, $rt.builtin.byteLen(s));
2135 $t10_11 = $rt.builtin.stringByteAt(s, $t9_10);
2136 $t11_12 = ($t10_11 === 61);
2137 if ($t11_12) {
2138 $block = 1; break;
2139 }
2140 else {
2141 $block = 2; break;
2142 }
2143 break;
2144 }
2145 case 5: {
2146 $t16_17 = ($t15_16 < $t6_7);
2147 if ($t16_17) {
2148 $block = 6; break;
2149 }
2150 else {
2151 $block = 7; break;
2152 }
2153 break;
2154 }
2155 case 6: {
2156 $rt.runtime.boundsCheck($t15_16, $rt.builtin.byteLen(s));
2157 $t17_18 = $rt.builtin.stringByteAt(s, $t15_16);
2158 $t18_19 = b64val($t17_18);
2159 $t19_20 = ($t18_19 < 0);
2160 if ($t19_20) {
2161 $block = 8; break;
2162 }
2163 else {
2164 $block = 9; break;
2165 }
2166 break;
2167 }
2168 case 7: {
2169 return $t12_13;
2170 break;
2171 }
2172 case 8: {
2173 return null;
2174 break;
2175 }
2176 case 9: {
2177 $t20_21 = (($t13_14 << 6) >>> 0);
2178 $t21_22 = ($t18_19 >>> 0);
2179 $t22_23 = (($t20_21 | $t21_22) >>> 0);
2180 $t23_24 = ($t14_15 + 6);
2181 $t24_25 = ($t23_24 >= 8);
2182 if ($t24_25) {
2183 $block = 10; break;
2184 }
2185 else {
2186 $t33_34 = $t12_13;
2187 $t34_35 = $t23_24;
2188 $block = 11; break;
2189 }
2190 break;
2191 }
2192 case 10: {
2193 $t25_26 = ($t23_24 - 8);
2194 $t26_27 = $t25_26;
2195 $t27_28 = ($t22_23 >>> $t26_27);
2196 $t28_29 = ($t27_28 & 0xFF);
2197 $t29_30 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
2198 $t30_31 = $t29_30.$get().addr(0);
2199 $t30_31.$set($t28_29);
2200 $t31_32 = $rt.builtin.sliceSlice($t29_30.$get(), undefined, undefined, undefined);
2201 $t32_33 = $rt.builtin.appendSlice($t12_13, $t31_32);
2202 $t33_34 = $t32_33;
2203 $t34_35 = $t25_26;
2204 $block = 11; break;
2205 break;
2206 }
2207 case 11: {
2208 $t35_36 = ($t15_16 + 1);
2209 $t12_13 = $t33_34;
2210 $t13_14 = $t22_23;
2211 $t14_15 = $t34_35;
2212 $t15_16 = $t35_36;
2213 $block = 5; break;
2214 break;
2215 }
2216 }
2217 }
2218 }
2219
2220 export function b64val(c) {
2221 let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6, $t6_7, $t7_8, $t8_9, $t9_10, $t10_11, $t11_12, $t12_13, $t13_14, $t14_15, $t15_16;
2222 let $block = 0;
2223 while (true) {
2224 switch ($block) {
2225 case 0: {
2226 $t0_1 = (c >= 65);
2227 if ($t0_1) {
2228 $block = 4; break;
2229 }
2230 else {
2231 $block = 3; break;
2232 }
2233 break;
2234 }
2235 case 1: {
2236 $t1_2 = ((c - 65) & 0xFF);
2237 $t2_3 = $t1_2;
2238 return $t2_3;
2239 break;
2240 }
2241 case 2: {
2242 $t3_4 = ((c - 97) & 0xFF);
2243 $t4_5 = $t3_4;
2244 $t5_6 = ($t4_5 + 26);
2245 return $t5_6;
2246 break;
2247 }
2248 case 3: {
2249 $t6_7 = (c >= 97);
2250 if ($t6_7) {
2251 $block = 7; break;
2252 }
2253 else {
2254 $block = 6; break;
2255 }
2256 break;
2257 }
2258 case 4: {
2259 $t7_8 = (c <= 90);
2260 if ($t7_8) {
2261 $block = 1; break;
2262 }
2263 else {
2264 $block = 3; break;
2265 }
2266 break;
2267 }
2268 case 5: {
2269 $t8_9 = ((c - 48) & 0xFF);
2270 $t9_10 = $t8_9;
2271 $t10_11 = ($t9_10 + 52);
2272 return $t10_11;
2273 break;
2274 }
2275 case 6: {
2276 $t11_12 = (c >= 48);
2277 if ($t11_12) {
2278 $block = 10; break;
2279 }
2280 else {
2281 $block = 9; break;
2282 }
2283 break;
2284 }
2285 case 7: {
2286 $t12_13 = (c <= 122);
2287 if ($t12_13) {
2288 $block = 2; break;
2289 }
2290 else {
2291 $block = 6; break;
2292 }
2293 break;
2294 }
2295 case 8: {
2296 return 62;
2297 break;
2298 }
2299 case 9: {
2300 $t13_14 = (c === 43);
2301 if ($t13_14) {
2302 $block = 8; break;
2303 }
2304 else {
2305 $block = 12; break;
2306 }
2307 break;
2308 }
2309 case 10: {
2310 $t14_15 = (c <= 57);
2311 if ($t14_15) {
2312 $block = 5; break;
2313 }
2314 else {
2315 $block = 9; break;
2316 }
2317 break;
2318 }
2319 case 11: {
2320 return 63;
2321 break;
2322 }
2323 case 12: {
2324 $t15_16 = (c === 47);
2325 if ($t15_16) {
2326 $block = 11; break;
2327 }
2328 else {
2329 $block = 13; break;
2330 }
2331 break;
2332 }
2333 case 13: {
2334 return -1;
2335 break;
2336 }
2337 }
2338 }
2339 }
2340
2341