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 Base64Encode(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, $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;
 714    let $block = 0;
 715    while (true) {
 716      switch ($block) {
 717        case 0: {
 718          $t0_1 = $rt.builtin.len(data);
 719          $t1_2 = ($t0_1 + 2);
 720          $t2_3 = Math.trunc($t1_2 / 3);
 721          $t3_4 = ($t2_3 * 4);
 722          $t4_5 = $rt.builtin.makeSlice(0, $t3_4, 0);
 723          $t5_6 = $t4_5;
 724          $t6_7 = 0;
 725          $block = 1; break;
 726          break;
 727        }
 728        case 1: {
 729          $t7_8 = ($t6_7 < $t0_1);
 730          if ($t7_8) {
 731            $block = 2; break;
 732          }
 733          else {
 734            $block = 3; break;
 735          }
 736          break;
 737        }
 738        case 2: {
 739          $t8_9 = data.addr($t6_7);
 740          $t9_10 = $t8_9.$get();
 741          $t10_11 = ($t6_7 + 1);
 742          $t11_12 = ($t10_11 < $t0_1);
 743          if ($t11_12) {
 744            $block = 4; break;
 745          }
 746          else {
 747            $t16_17 = 0;
 748            $block = 5; break;
 749          }
 750          break;
 751        }
 752        case 3: {
 753          $t12_13 = $rt.builtin.bytesToString($t5_6);
 754          return $t12_13;
 755          break;
 756        }
 757        case 4: {
 758          $t13_14 = ($t6_7 + 1);
 759          $t14_15 = data.addr($t13_14);
 760          $t15_16 = $t14_15.$get();
 761          $t16_17 = $t15_16;
 762          $block = 5; break;
 763          break;
 764        }
 765        case 5: {
 766          $t17_18 = ($t6_7 + 2);
 767          $t18_19 = ($t17_18 < $t0_1);
 768          if ($t18_19) {
 769            $block = 6; break;
 770          }
 771          else {
 772            $t22_23 = 0;
 773            $block = 7; break;
 774          }
 775          break;
 776        }
 777        case 6: {
 778          $t19_20 = ($t6_7 + 2);
 779          $t20_21 = data.addr($t19_20);
 780          $t21_22 = $t20_21.$get();
 781          $t22_23 = $t21_22;
 782          $block = 7; break;
 783          break;
 784        }
 785        case 7: {
 786          $t23_24 = (($t9_10 & 0xFF) >> 2);
 787          $t24_25 = ($t23_24 & 63);
 788          $rt.runtime.boundsCheck($t24_25, $rt.builtin.byteLen('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'));
 789          $t25_26 = $rt.builtin.stringByteAt('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/', $t24_25);
 790          $t26_27 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 791          $t27_28 = $t26_27.$get().addr(0);
 792          $t27_28.$set($t25_26);
 793          $t28_29 = $rt.builtin.sliceSlice($t26_27.$get(), undefined, undefined, undefined);
 794          $t29_30 = $rt.builtin.appendSlice($t5_6, $t28_29);
 795          $t30_31 = (($t9_10 << 4) & 0xFF);
 796          $t31_32 = (($t16_17 & 0xFF) >> 4);
 797          $t32_33 = ($t30_31 | $t31_32);
 798          $t33_34 = ($t32_33 & 63);
 799          $rt.runtime.boundsCheck($t33_34, $rt.builtin.byteLen('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'));
 800          $t34_35 = $rt.builtin.stringByteAt('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/', $t33_34);
 801          $t35_36 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 802          $t36_37 = $t35_36.$get().addr(0);
 803          $t36_37.$set($t34_35);
 804          $t37_38 = $rt.builtin.sliceSlice($t35_36.$get(), undefined, undefined, undefined);
 805          $t38_39 = $rt.builtin.appendSlice($t29_30, $t37_38);
 806          $t39_40 = ($t6_7 + 1);
 807          $t40_41 = ($t39_40 < $t0_1);
 808          if ($t40_41) {
 809            $block = 8; break;
 810          }
 811          else {
 812            $block = 10; break;
 813          }
 814          break;
 815        }
 816        case 8: {
 817          $t41_42 = (($t16_17 << 2) & 0xFF);
 818          $t42_43 = (($t22_23 & 0xFF) >> 6);
 819          $t43_44 = ($t41_42 | $t42_43);
 820          $t44_45 = ($t43_44 & 63);
 821          $rt.runtime.boundsCheck($t44_45, $rt.builtin.byteLen('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'));
 822          $t45_46 = $rt.builtin.stringByteAt('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/', $t44_45);
 823          $t46_47 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 824          $t47_48 = $t46_47.$get().addr(0);
 825          $t47_48.$set($t45_46);
 826          $t48_49 = $rt.builtin.sliceSlice($t46_47.$get(), undefined, undefined, undefined);
 827          $t49_50 = $rt.builtin.appendSlice($t38_39, $t48_49);
 828          $t50_51 = $t49_50;
 829          $block = 9; break;
 830          break;
 831        }
 832        case 9: {
 833          $t51_52 = ($t6_7 + 2);
 834          $t52_53 = ($t51_52 < $t0_1);
 835          if ($t52_53) {
 836            $block = 11; break;
 837          }
 838          else {
 839            $block = 13; break;
 840          }
 841          break;
 842        }
 843        case 10: {
 844          $t53_54 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 845          $t54_55 = $t53_54.$get().addr(0);
 846          $t54_55.$set(61);
 847          $t55_56 = $rt.builtin.sliceSlice($t53_54.$get(), undefined, undefined, undefined);
 848          $t56_57 = $rt.builtin.appendSlice($t38_39, $t55_56);
 849          $t50_51 = $t56_57;
 850          $block = 9; break;
 851          break;
 852        }
 853        case 11: {
 854          $t57_58 = ($t22_23 & 63);
 855          $rt.runtime.boundsCheck($t57_58, $rt.builtin.byteLen('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'));
 856          $t58_59 = $rt.builtin.stringByteAt('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/', $t57_58);
 857          $t59_60 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 858          $t60_61 = $t59_60.$get().addr(0);
 859          $t60_61.$set($t58_59);
 860          $t61_62 = $rt.builtin.sliceSlice($t59_60.$get(), undefined, undefined, undefined);
 861          $t62_63 = $rt.builtin.appendSlice($t50_51, $t61_62);
 862          $t63_64 = $t62_63;
 863          $block = 12; break;
 864          break;
 865        }
 866        case 12: {
 867          $t64_65 = ($t6_7 + 3);
 868          $t5_6 = $t63_64;
 869          $t6_7 = $t64_65;
 870          $block = 1; break;
 871          break;
 872        }
 873        case 13: {
 874          $t65_66 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 875          $t66_67 = $t65_66.$get().addr(0);
 876          $t66_67.$set(61);
 877          $t67_68 = $rt.builtin.sliceSlice($t65_66.$get(), undefined, undefined, undefined);
 878          $t68_69 = $rt.builtin.appendSlice($t50_51, $t67_68);
 879          $t63_64 = $t68_69;
 880          $block = 12; break;
 881          break;
 882        }
 883      }
 884    }
 885  }
 886  
 887  export function Base64Decode(s) {
 888    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;
 889    let $block = 0;
 890    while (true) {
 891      switch ($block) {
 892        case 0: {
 893          $t0_1 = $rt.builtin.len(s);
 894          $t6_7 = $t0_1;
 895          $t7_8 = 0;
 896          $block = 3; break;
 897          break;
 898        }
 899        case 1: {
 900          $t1_2 = ($t7_8 + 1);
 901          $t2_3 = ($t6_7 - 1);
 902          $t6_7 = $t2_3;
 903          $t7_8 = $t1_2;
 904          $block = 3; break;
 905          break;
 906        }
 907        case 2: {
 908          $t3_4 = ($t6_7 * 3);
 909          $t4_5 = Math.trunc($t3_4 / 4);
 910          $t5_6 = $rt.builtin.makeSlice(0, $t4_5, 0);
 911          $t12_13 = $t5_6;
 912          $t13_14 = 0;
 913          $t14_15 = 0;
 914          $t15_16 = 0;
 915          $block = 5; break;
 916          break;
 917        }
 918        case 3: {
 919          $t8_9 = ($t6_7 > 0);
 920          if ($t8_9) {
 921            $block = 4; break;
 922          }
 923          else {
 924            $block = 2; break;
 925          }
 926          break;
 927        }
 928        case 4: {
 929          $t9_10 = ($t6_7 - 1);
 930          $rt.runtime.boundsCheck($t9_10, $rt.builtin.byteLen(s));
 931          $t10_11 = $rt.builtin.stringByteAt(s, $t9_10);
 932          $t11_12 = ($t10_11 === 61);
 933          if ($t11_12) {
 934            $block = 1; break;
 935          }
 936          else {
 937            $block = 2; break;
 938          }
 939          break;
 940        }
 941        case 5: {
 942          $t16_17 = ($t15_16 < $t6_7);
 943          if ($t16_17) {
 944            $block = 6; break;
 945          }
 946          else {
 947            $block = 7; break;
 948          }
 949          break;
 950        }
 951        case 6: {
 952          $rt.runtime.boundsCheck($t15_16, $rt.builtin.byteLen(s));
 953          $t17_18 = $rt.builtin.stringByteAt(s, $t15_16);
 954          $t18_19 = b64val($t17_18);
 955          $t19_20 = ($t18_19 < 0);
 956          if ($t19_20) {
 957            $block = 8; break;
 958          }
 959          else {
 960            $block = 9; break;
 961          }
 962          break;
 963        }
 964        case 7: {
 965          return $t12_13;
 966          break;
 967        }
 968        case 8: {
 969          return null;
 970          break;
 971        }
 972        case 9: {
 973          $t20_21 = (($t13_14 << 6) >>> 0);
 974          $t21_22 = ($t18_19 >>> 0);
 975          $t22_23 = (($t20_21 | $t21_22) >>> 0);
 976          $t23_24 = ($t14_15 + 6);
 977          $t24_25 = ($t23_24 >= 8);
 978          if ($t24_25) {
 979            $block = 10; break;
 980          }
 981          else {
 982            $t33_34 = $t12_13;
 983            $t34_35 = $t23_24;
 984            $block = 11; break;
 985          }
 986          break;
 987        }
 988        case 10: {
 989          $t25_26 = ($t23_24 - 8);
 990          $t26_27 = $t25_26;
 991          $t27_28 = ($t22_23 >>> $t26_27);
 992          $t28_29 = ($t27_28 & 0xFF);
 993          $t29_30 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
 994          $t30_31 = $t29_30.$get().addr(0);
 995          $t30_31.$set($t28_29);
 996          $t31_32 = $rt.builtin.sliceSlice($t29_30.$get(), undefined, undefined, undefined);
 997          $t32_33 = $rt.builtin.appendSlice($t12_13, $t31_32);
 998          $t33_34 = $t32_33;
 999          $t34_35 = $t25_26;
1000          $block = 11; break;
1001          break;
1002        }
1003        case 11: {
1004          $t35_36 = ($t15_16 + 1);
1005          $t12_13 = $t33_34;
1006          $t13_14 = $t22_23;
1007          $t14_15 = $t34_35;
1008          $t15_16 = $t35_36;
1009          $block = 5; break;
1010          break;
1011        }
1012      }
1013    }
1014  }
1015  
1016  export function b64val(c) {
1017    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;
1018    let $block = 0;
1019    while (true) {
1020      switch ($block) {
1021        case 0: {
1022          $t0_1 = (c >= 65);
1023          if ($t0_1) {
1024            $block = 4; break;
1025          }
1026          else {
1027            $block = 3; break;
1028          }
1029          break;
1030        }
1031        case 1: {
1032          $t1_2 = ((c - 65) & 0xFF);
1033          $t2_3 = $t1_2;
1034          return $t2_3;
1035          break;
1036        }
1037        case 2: {
1038          $t3_4 = ((c - 97) & 0xFF);
1039          $t4_5 = $t3_4;
1040          $t5_6 = ($t4_5 + 26);
1041          return $t5_6;
1042          break;
1043        }
1044        case 3: {
1045          $t6_7 = (c >= 97);
1046          if ($t6_7) {
1047            $block = 7; break;
1048          }
1049          else {
1050            $block = 6; break;
1051          }
1052          break;
1053        }
1054        case 4: {
1055          $t7_8 = (c <= 90);
1056          if ($t7_8) {
1057            $block = 1; break;
1058          }
1059          else {
1060            $block = 3; break;
1061          }
1062          break;
1063        }
1064        case 5: {
1065          $t8_9 = ((c - 48) & 0xFF);
1066          $t9_10 = $t8_9;
1067          $t10_11 = ($t9_10 + 52);
1068          return $t10_11;
1069          break;
1070        }
1071        case 6: {
1072          $t11_12 = (c >= 48);
1073          if ($t11_12) {
1074            $block = 10; break;
1075          }
1076          else {
1077            $block = 9; break;
1078          }
1079          break;
1080        }
1081        case 7: {
1082          $t12_13 = (c <= 122);
1083          if ($t12_13) {
1084            $block = 2; break;
1085          }
1086          else {
1087            $block = 6; break;
1088          }
1089          break;
1090        }
1091        case 8: {
1092          return 62;
1093          break;
1094        }
1095        case 9: {
1096          $t13_14 = (c === 43);
1097          if ($t13_14) {
1098            $block = 8; break;
1099          }
1100          else {
1101            $block = 12; break;
1102          }
1103          break;
1104        }
1105        case 10: {
1106          $t14_15 = (c <= 57);
1107          if ($t14_15) {
1108            $block = 5; break;
1109          }
1110          else {
1111            $block = 9; break;
1112          }
1113          break;
1114        }
1115        case 11: {
1116          return 63;
1117          break;
1118        }
1119        case 12: {
1120          $t15_16 = (c === 47);
1121          if ($t15_16) {
1122            $block = 11; break;
1123          }
1124          else {
1125            $block = 13; break;
1126          }
1127          break;
1128        }
1129        case 13: {
1130          return -1;
1131          break;
1132        }
1133      }
1134    }
1135  }
1136  
1137  export function HexEncode(b) {
1138    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;
1139    let $block = 0;
1140    while (true) {
1141      switch ($block) {
1142        case 0: {
1143          $t0_1 = $rt.builtin.len(b);
1144          $t1_2 = ($t0_1 * 2);
1145          $t2_3 = $rt.builtin.makeSlice($t1_2, $t1_2, 0);
1146          $t3_4 = $rt.builtin.len(b);
1147          $t4_5 = -1;
1148          $block = 1; break;
1149          break;
1150        }
1151        case 1: {
1152          $t5_6 = ($t4_5 + 1);
1153          $t6_7 = ($t5_6 < $t3_4);
1154          if ($t6_7) {
1155            $block = 2; break;
1156          }
1157          else {
1158            $block = 3; break;
1159          }
1160          break;
1161        }
1162        case 2: {
1163          $t7_8 = b.addr($t5_6);
1164          $t8_9 = $t7_8.$get();
1165          $t9_10 = ($t5_6 * 2);
1166          $t10_11 = (($t8_9 & 0xFF) >> 4);
1167          $rt.runtime.boundsCheck($t10_11, $rt.builtin.byteLen('0123456789abcdef'));
1168          $t11_12 = $rt.builtin.stringByteAt('0123456789abcdef', $t10_11);
1169          $t12_13 = $t2_3.addr($t9_10);
1170          $t12_13.$set($t11_12);
1171          $t13_14 = ($t5_6 * 2);
1172          $t14_15 = ($t13_14 + 1);
1173          $t15_16 = ($t8_9 & 15);
1174          $rt.runtime.boundsCheck($t15_16, $rt.builtin.byteLen('0123456789abcdef'));
1175          $t16_17 = $rt.builtin.stringByteAt('0123456789abcdef', $t15_16);
1176          $t17_18 = $t2_3.addr($t14_15);
1177          $t17_18.$set($t16_17);
1178          $t4_5 = $t5_6;
1179          $block = 1; break;
1180          break;
1181        }
1182        case 3: {
1183          $t18_19 = $rt.builtin.bytesToString($t2_3);
1184          return $t18_19;
1185          break;
1186        }
1187      }
1188    }
1189  }
1190  
1191  export function HexDecode(s) {
1192    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;
1193    let $block = 0;
1194    while (true) {
1195      switch ($block) {
1196        case 0: {
1197          $t0_1 = $rt.builtin.len(s);
1198          $t1_2 = ($t0_1 % 2);
1199          $t2_3 = ($t1_2 !== 0);
1200          if ($t2_3) {
1201            $block = 1; break;
1202          }
1203          else {
1204            $block = 2; break;
1205          }
1206          break;
1207        }
1208        case 1: {
1209          return null;
1210          break;
1211        }
1212        case 2: {
1213          $t3_4 = $rt.builtin.len(s);
1214          $t4_5 = Math.trunc($t3_4 / 2);
1215          $t5_6 = $rt.builtin.makeSlice($t4_5, $t4_5, 0);
1216          $t6_7 = 0;
1217          $block = 3; break;
1218          break;
1219        }
1220        case 3: {
1221          $t7_8 = $rt.builtin.len(s);
1222          $t8_9 = ($t6_7 < $t7_8);
1223          if ($t8_9) {
1224            $block = 4; break;
1225          }
1226          else {
1227            $block = 5; break;
1228          }
1229          break;
1230        }
1231        case 4: {
1232          $rt.runtime.boundsCheck($t6_7, $rt.builtin.byteLen(s));
1233          $t9_10 = $rt.builtin.stringByteAt(s, $t6_7);
1234          $t10_11 = hexVal($t9_10);
1235          $t11_12 = ($t6_7 + 1);
1236          $rt.runtime.boundsCheck($t11_12, $rt.builtin.byteLen(s));
1237          $t12_13 = $rt.builtin.stringByteAt(s, $t11_12);
1238          $t13_14 = hexVal($t12_13);
1239          $t14_15 = ($t10_11 < 0);
1240          if ($t14_15) {
1241            $block = 6; break;
1242          }
1243          else {
1244            $block = 8; break;
1245          }
1246          break;
1247        }
1248        case 5: {
1249          return $t5_6;
1250          break;
1251        }
1252        case 6: {
1253          return null;
1254          break;
1255        }
1256        case 7: {
1257          $t15_16 = Math.trunc($t6_7 / 2);
1258          $t16_17 = ($t10_11 * (2 ** 4));
1259          $t17_18 = $rt.builtin.int64or($t16_17, $t13_14);
1260          $t18_19 = ($t17_18 & 0xFF);
1261          $t19_20 = $t5_6.addr($t15_16);
1262          $t19_20.$set($t18_19);
1263          $t20_21 = ($t6_7 + 2);
1264          $t6_7 = $t20_21;
1265          $block = 3; break;
1266          break;
1267        }
1268        case 8: {
1269          $t21_22 = ($t13_14 < 0);
1270          if ($t21_22) {
1271            $block = 6; break;
1272          }
1273          else {
1274            $block = 7; break;
1275          }
1276          break;
1277        }
1278      }
1279    }
1280  }
1281  
1282  export function HexDecode32(s) {
1283    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;
1284    let $block = 0;
1285    while (true) {
1286      switch ($block) {
1287        case 0: {
1288          $t0_1 = { $value: $rt.builtin.makeSlice(32, 32, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
1289          $t1_2 = $rt.builtin.len(s);
1290          $t2_3 = ($t1_2 !== 64);
1291          if ($t2_3) {
1292            $block = 1; break;
1293          }
1294          else {
1295            $block = 2; break;
1296          }
1297          break;
1298        }
1299        case 1: {
1300          $t3_4 = $t0_1.$get();
1301          $t0_1.$set($rt.builtin.cloneValue($t3_4));
1302          $t4_5 = $t0_1.$get();
1303          return [$t4_5, false];
1304          break;
1305        }
1306        case 2: {
1307          $t5_6 = 0;
1308          $block = 3; break;
1309          break;
1310        }
1311        case 3: {
1312          $t6_7 = ($t5_6 < 32);
1313          if ($t6_7) {
1314            $block = 4; break;
1315          }
1316          else {
1317            $block = 5; break;
1318          }
1319          break;
1320        }
1321        case 4: {
1322          $t7_8 = ($t5_6 * 2);
1323          $rt.runtime.boundsCheck($t7_8, $rt.builtin.byteLen(s));
1324          $t8_9 = $rt.builtin.stringByteAt(s, $t7_8);
1325          $t9_10 = hexVal($t8_9);
1326          $t10_11 = ($t5_6 * 2);
1327          $t11_12 = ($t10_11 + 1);
1328          $rt.runtime.boundsCheck($t11_12, $rt.builtin.byteLen(s));
1329          $t12_13 = $rt.builtin.stringByteAt(s, $t11_12);
1330          $t13_14 = hexVal($t12_13);
1331          $t14_15 = ($t9_10 < 0);
1332          if ($t14_15) {
1333            $block = 6; break;
1334          }
1335          else {
1336            $block = 8; break;
1337          }
1338          break;
1339        }
1340        case 5: {
1341          $t15_16 = $t0_1.$get();
1342          $t0_1.$set($rt.builtin.cloneValue($t15_16));
1343          $t16_17 = $t0_1.$get();
1344          return [$t16_17, true];
1345          break;
1346        }
1347        case 6: {
1348          $t17_18 = $t0_1.$get();
1349          $t0_1.$set($rt.builtin.cloneValue($t17_18));
1350          $t18_19 = $t0_1.$get();
1351          return [$t18_19, false];
1352          break;
1353        }
1354        case 7: {
1355          $t19_20 = ($t9_10 * (2 ** 4));
1356          $t20_21 = $rt.builtin.int64or($t19_20, $t13_14);
1357          $t21_22 = ($t20_21 & 0xFF);
1358          $t22_23 = $t0_1.$get().addr($t5_6);
1359          $t22_23.$set($t21_22);
1360          $t23_24 = ($t5_6 + 1);
1361          $t5_6 = $t23_24;
1362          $block = 3; break;
1363          break;
1364        }
1365        case 8: {
1366          $t24_25 = ($t13_14 < 0);
1367          if ($t24_25) {
1368            $block = 6; break;
1369          }
1370          else {
1371            $block = 7; break;
1372          }
1373          break;
1374        }
1375      }
1376    }
1377  }
1378  
1379  export function hexVal(c) {
1380    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;
1381    let $block = 0;
1382    while (true) {
1383      switch ($block) {
1384        case 0: {
1385          $t0_1 = (c >= 48);
1386          if ($t0_1) {
1387            $block = 4; break;
1388          }
1389          else {
1390            $block = 3; break;
1391          }
1392          break;
1393        }
1394        case 1: {
1395          $t1_2 = ((c - 48) & 0xFF);
1396          $t2_3 = $t1_2;
1397          return $t2_3;
1398          break;
1399        }
1400        case 2: {
1401          $t3_4 = ((c - 97) & 0xFF);
1402          $t4_5 = (($t3_4 + 10) & 0xFF);
1403          $t5_6 = $t4_5;
1404          return $t5_6;
1405          break;
1406        }
1407        case 3: {
1408          $t6_7 = (c >= 97);
1409          if ($t6_7) {
1410            $block = 7; break;
1411          }
1412          else {
1413            $block = 6; break;
1414          }
1415          break;
1416        }
1417        case 4: {
1418          $t7_8 = (c <= 57);
1419          if ($t7_8) {
1420            $block = 1; break;
1421          }
1422          else {
1423            $block = 3; break;
1424          }
1425          break;
1426        }
1427        case 5: {
1428          $t8_9 = ((c - 65) & 0xFF);
1429          $t9_10 = (($t8_9 + 10) & 0xFF);
1430          $t10_11 = $t9_10;
1431          return $t10_11;
1432          break;
1433        }
1434        case 6: {
1435          $t11_12 = (c >= 65);
1436          if ($t11_12) {
1437            $block = 9; break;
1438          }
1439          else {
1440            $block = 8; break;
1441          }
1442          break;
1443        }
1444        case 7: {
1445          $t12_13 = (c <= 102);
1446          if ($t12_13) {
1447            $block = 2; break;
1448          }
1449          else {
1450            $block = 6; break;
1451          }
1452          break;
1453        }
1454        case 8: {
1455          return -1;
1456          break;
1457        }
1458        case 9: {
1459          $t13_14 = (c <= 70);
1460          if ($t13_14) {
1461            $block = 5; break;
1462          }
1463          else {
1464            $block = 8; break;
1465          }
1466          break;
1467        }
1468      }
1469    }
1470  }
1471  
1472  export function Bech32Encode(hrp, data) {
1473    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;
1474    let $block = 0;
1475    while (true) {
1476      switch ($block) {
1477        case 0: {
1478          $t0_1 = bytesToBase32(data);
1479          $t1_2 = bech32Checksum(hrp, $t0_1);
1480          $t2_3 = $rt.builtin.appendSlice($t0_1, $t1_2);
1481          $t3_4 = $rt.builtin.len(hrp);
1482          $t4_5 = ($t3_4 + 1);
1483          $t5_6 = $rt.builtin.len($t2_3);
1484          $t6_7 = ($t4_5 + $t5_6);
1485          $t7_8 = $rt.builtin.makeSlice(0, $t6_7, 0);
1486          $t8_9 = $rt.builtin.appendString($t7_8, hrp);
1487          $t9_10 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
1488          $t10_11 = $t9_10.$get().addr(0);
1489          $t10_11.$set(49);
1490          $t11_12 = $rt.builtin.sliceSlice($t9_10.$get(), undefined, undefined, undefined);
1491          $t12_13 = $rt.builtin.appendSlice($t8_9, $t11_12);
1492          $t13_14 = $rt.builtin.len($t2_3);
1493          $t14_15 = $t12_13;
1494          $t15_16 = -1;
1495          $block = 1; break;
1496          break;
1497        }
1498        case 1: {
1499          $t16_17 = ($t15_16 + 1);
1500          $t17_18 = ($t16_17 < $t13_14);
1501          if ($t17_18) {
1502            $block = 2; break;
1503          }
1504          else {
1505            $block = 3; break;
1506          }
1507          break;
1508        }
1509        case 2: {
1510          $t18_19 = $t2_3.addr($t16_17);
1511          $t19_20 = $t18_19.$get();
1512          $rt.runtime.boundsCheck($t19_20, $rt.builtin.byteLen('qpzry9x8gf2tvdw0s3jn54khce6mua7l'));
1513          $t20_21 = $rt.builtin.stringByteAt('qpzry9x8gf2tvdw0s3jn54khce6mua7l', $t19_20);
1514          $t21_22 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
1515          $t22_23 = $t21_22.$get().addr(0);
1516          $t22_23.$set($t20_21);
1517          $t23_24 = $rt.builtin.sliceSlice($t21_22.$get(), undefined, undefined, undefined);
1518          $t24_25 = $rt.builtin.appendSlice($t14_15, $t23_24);
1519          $t14_15 = $t24_25;
1520          $t15_16 = $t16_17;
1521          $block = 1; break;
1522          break;
1523        }
1524        case 3: {
1525          $t25_26 = $rt.builtin.bytesToString($t14_15);
1526          return $t25_26;
1527          break;
1528        }
1529      }
1530    }
1531  }
1532  
1533  export function Bech32Decode(s) {
1534    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;
1535    let $block = 0;
1536    while (true) {
1537      switch ($block) {
1538        case 0: {
1539          $t0_1 = $rt.builtin.len(s);
1540          $t1_2 = ($t0_1 - 1);
1541          $t2_3 = $t1_2;
1542          $block = 1; break;
1543          break;
1544        }
1545        case 1: {
1546          $t3_4 = ($t2_3 >= 0);
1547          if ($t3_4) {
1548            $block = 2; break;
1549          }
1550          else {
1551            $t6_7 = -1;
1552            $block = 3; break;
1553          }
1554          break;
1555        }
1556        case 2: {
1557          $rt.runtime.boundsCheck($t2_3, $rt.builtin.byteLen(s));
1558          $t4_5 = $rt.builtin.stringByteAt(s, $t2_3);
1559          $t5_6 = ($t4_5 === 49);
1560          if ($t5_6) {
1561            $block = 4; break;
1562          }
1563          else {
1564            $block = 5; break;
1565          }
1566          break;
1567        }
1568        case 3: {
1569          $t7_8 = ($t6_7 < 1);
1570          if ($t7_8) {
1571            $block = 6; break;
1572          }
1573          else {
1574            $block = 8; break;
1575          }
1576          break;
1577        }
1578        case 4: {
1579          $t6_7 = $t2_3;
1580          $block = 3; break;
1581          break;
1582        }
1583        case 5: {
1584          $t8_9 = ($t2_3 - 1);
1585          $t2_3 = $t8_9;
1586          $block = 1; break;
1587          break;
1588        }
1589        case 6: {
1590          return ['', null];
1591          break;
1592        }
1593        case 7: {
1594          $t9_10 = $rt.builtin.stringSlice(s, undefined, $t6_7);
1595          $t10_11 = ($t6_7 + 1);
1596          $t11_12 = $rt.builtin.stringSlice(s, $t10_11, undefined);
1597          $t12_13 = $rt.builtin.len($t11_12);
1598          $t13_14 = $rt.builtin.makeSlice($t12_13, $t12_13, 0);
1599          $t17_18 = 0;
1600          $block = 9; break;
1601          break;
1602        }
1603        case 8: {
1604          $t14_15 = ($t6_7 + 7);
1605          $t15_16 = $rt.builtin.len(s);
1606          $t16_17 = ($t14_15 > $t15_16);
1607          if ($t16_17) {
1608            $block = 6; break;
1609          }
1610          else {
1611            $block = 7; break;
1612          }
1613          break;
1614        }
1615        case 9: {
1616          $t18_19 = $rt.builtin.len($t11_12);
1617          $t19_20 = ($t17_18 < $t18_19);
1618          if ($t19_20) {
1619            $block = 10; break;
1620          }
1621          else {
1622            $block = 11; break;
1623          }
1624          break;
1625        }
1626        case 10: {
1627          $rt.runtime.boundsCheck($t17_18, $rt.builtin.byteLen($t11_12));
1628          $t20_21 = $rt.builtin.stringByteAt($t11_12, $t17_18);
1629          $t21_22 = charsetIndex($t20_21);
1630          $t22_23 = ($t21_22 < 0);
1631          if ($t22_23) {
1632            $block = 12; break;
1633          }
1634          else {
1635            $block = 13; break;
1636          }
1637          break;
1638        }
1639        case 11: {
1640          $t23_24 = bech32Verify($t9_10, $t13_14);
1641          if ($t23_24) {
1642            $block = 15; break;
1643          }
1644          else {
1645            $block = 14; break;
1646          }
1647          break;
1648        }
1649        case 12: {
1650          return ['', null];
1651          break;
1652        }
1653        case 13: {
1654          $t24_25 = ($t21_22 & 0xFF);
1655          $t25_26 = $t13_14.addr($t17_18);
1656          $t25_26.$set($t24_25);
1657          $t26_27 = ($t17_18 + 1);
1658          $t17_18 = $t26_27;
1659          $block = 9; break;
1660          break;
1661        }
1662        case 14: {
1663          return ['', null];
1664          break;
1665        }
1666        case 15: {
1667          $t27_28 = $rt.builtin.len($t13_14);
1668          $t28_29 = ($t27_28 - 6);
1669          $t29_30 = $rt.builtin.sliceSlice($t13_14, undefined, $t28_29, undefined);
1670          $t30_31 = base32ToBytes($t29_30);
1671          return [$t9_10, $t30_31];
1672          break;
1673        }
1674      }
1675    }
1676  }
1677  
1678  export function EncodeNpub(pubkey) {
1679    let $t0_1;
1680    $t0_1 = Bech32Encode('npub', pubkey);
1681    return $t0_1;
1682  }
1683  
1684  export function EncodeNsec(seckey) {
1685    let $t0_1;
1686    $t0_1 = Bech32Encode('nsec', seckey);
1687    return $t0_1;
1688  }
1689  
1690  export function EncodeNote(eventID) {
1691    let $t0_1;
1692    $t0_1 = Bech32Encode('note', eventID);
1693    return $t0_1;
1694  }
1695  
1696  export function DecodeNpub(s) {
1697    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6;
1698    let $block = 0;
1699    while (true) {
1700      switch ($block) {
1701        case 0: {
1702          $t0_1 = Bech32Decode(s);
1703          $t1_2 = $t0_1[0];
1704          $t2_3 = $t0_1[1];
1705          $t3_4 = ($t1_2 !== 'npub');
1706          if ($t3_4) {
1707            $block = 1; break;
1708          }
1709          else {
1710            $block = 3; break;
1711          }
1712          break;
1713        }
1714        case 1: {
1715          return null;
1716          break;
1717        }
1718        case 2: {
1719          return $t2_3;
1720          break;
1721        }
1722        case 3: {
1723          $t4_5 = $rt.builtin.len($t2_3);
1724          $t5_6 = ($t4_5 !== 32);
1725          if ($t5_6) {
1726            $block = 1; break;
1727          }
1728          else {
1729            $block = 2; break;
1730          }
1731          break;
1732        }
1733      }
1734    }
1735  }
1736  
1737  export function DecodeNsec(s) {
1738    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6;
1739    let $block = 0;
1740    while (true) {
1741      switch ($block) {
1742        case 0: {
1743          $t0_1 = Bech32Decode(s);
1744          $t1_2 = $t0_1[0];
1745          $t2_3 = $t0_1[1];
1746          $t3_4 = ($t1_2 !== 'nsec');
1747          if ($t3_4) {
1748            $block = 1; break;
1749          }
1750          else {
1751            $block = 3; break;
1752          }
1753          break;
1754        }
1755        case 1: {
1756          return null;
1757          break;
1758        }
1759        case 2: {
1760          return $t2_3;
1761          break;
1762        }
1763        case 3: {
1764          $t4_5 = $rt.builtin.len($t2_3);
1765          $t5_6 = ($t4_5 !== 32);
1766          if ($t5_6) {
1767            $block = 1; break;
1768          }
1769          else {
1770            $block = 2; break;
1771          }
1772          break;
1773        }
1774      }
1775    }
1776  }
1777  
1778  export function DecodeNote(s) {
1779    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5, $t5_6;
1780    let $block = 0;
1781    while (true) {
1782      switch ($block) {
1783        case 0: {
1784          $t0_1 = Bech32Decode(s);
1785          $t1_2 = $t0_1[0];
1786          $t2_3 = $t0_1[1];
1787          $t3_4 = ($t1_2 !== 'note');
1788          if ($t3_4) {
1789            $block = 1; break;
1790          }
1791          else {
1792            $block = 3; break;
1793          }
1794          break;
1795        }
1796        case 1: {
1797          return null;
1798          break;
1799        }
1800        case 2: {
1801          return $t2_3;
1802          break;
1803        }
1804        case 3: {
1805          $t4_5 = $rt.builtin.len($t2_3);
1806          $t5_6 = ($t4_5 !== 32);
1807          if ($t5_6) {
1808            $block = 1; break;
1809          }
1810          else {
1811            $block = 2; break;
1812          }
1813          break;
1814        }
1815      }
1816    }
1817  }
1818  
1819  export function PubkeyShort(pubkey) {
1820    let $t0_1, $t1_2, $t2_3;
1821    let $block = 0;
1822    while (true) {
1823      switch ($block) {
1824        case 0: {
1825          $t0_1 = $rt.builtin.len(pubkey);
1826          $t1_2 = ($t0_1 >= 8);
1827          if ($t1_2) {
1828            $block = 1; break;
1829          }
1830          else {
1831            $block = 2; break;
1832          }
1833          break;
1834        }
1835        case 1: {
1836          $t2_3 = $rt.builtin.stringSlice(pubkey, undefined, 8);
1837          return $t2_3;
1838          break;
1839        }
1840        case 2: {
1841          return pubkey;
1842          break;
1843        }
1844      }
1845    }
1846  }
1847  
1848  export function bytesToBase32(data) {
1849    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;
1850    let $block = 0;
1851    while (true) {
1852      switch ($block) {
1853        case 0: {
1854          $t0_1 = $rt.builtin.len(data);
1855          $t1_2 = null;
1856          $t2_3 = 0;
1857          $t3_4 = 0;
1858          $t4_5 = -1;
1859          $block = 1; break;
1860          break;
1861        }
1862        case 1: {
1863          $t5_6 = ($t4_5 + 1);
1864          $t6_7 = ($t5_6 < $t0_1);
1865          if ($t6_7) {
1866            $block = 2; break;
1867          }
1868          else {
1869            $block = 3; break;
1870          }
1871          break;
1872        }
1873        case 2: {
1874          $t7_8 = data.addr($t5_6);
1875          $t8_9 = $t7_8.$get();
1876          $t9_10 = ($t2_3 * (2 ** 8));
1877          $t10_11 = $t8_9;
1878          $t11_12 = $rt.builtin.int64or($t9_10, $t10_11);
1879          $t12_13 = ($t3_4 + 8);
1880          $t26_27 = $t1_2;
1881          $t27_28 = $t12_13;
1882          $block = 6; break;
1883          break;
1884        }
1885        case 3: {
1886          $t13_14 = ($t3_4 > 0);
1887          if ($t13_14) {
1888            $block = 7; break;
1889          }
1890          else {
1891            $t37_38 = $t1_2;
1892            $block = 8; break;
1893          }
1894          break;
1895        }
1896        case 4: {
1897          $t14_15 = ($t27_28 - 5);
1898          $t15_16 = Math.trunc($t11_12 / (2 ** $t14_15));
1899          $t16_17 = $rt.builtin.int64and($t15_16, 31);
1900          $t17_18 = ($t16_17 & 0xFF);
1901          $t18_19 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
1902          $t19_20 = $t18_19.$get().addr(0);
1903          $t19_20.$set($t17_18);
1904          $t20_21 = $rt.builtin.sliceSlice($t18_19.$get(), undefined, undefined, undefined);
1905          $t21_22 = $rt.builtin.appendSlice($t26_27, $t20_21);
1906          $t26_27 = $t21_22;
1907          $t27_28 = $t14_15;
1908          $block = 6; break;
1909          break;
1910        }
1911        case 5: {
1912          $t22_23 = $t27_28;
1913          $t23_24 = (1 * (2 ** $t22_23));
1914          $t24_25 = ($t23_24 - 1);
1915          $t25_26 = $rt.builtin.int64and($t11_12, $t24_25);
1916          $t1_2 = $t26_27;
1917          $t2_3 = $t25_26;
1918          $t3_4 = $t27_28;
1919          $t4_5 = $t5_6;
1920          $block = 1; break;
1921          break;
1922        }
1923        case 6: {
1924          $t28_29 = ($t27_28 >= 5);
1925          if ($t28_29) {
1926            $block = 4; break;
1927          }
1928          else {
1929            $block = 5; break;
1930          }
1931          break;
1932        }
1933        case 7: {
1934          $t29_30 = (5 - $t3_4);
1935          $t30_31 = ($t2_3 * (2 ** $t29_30));
1936          $t31_32 = $rt.builtin.int64and($t30_31, 31);
1937          $t32_33 = ($t31_32 & 0xFF);
1938          $t33_34 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
1939          $t34_35 = $t33_34.$get().addr(0);
1940          $t34_35.$set($t32_33);
1941          $t35_36 = $rt.builtin.sliceSlice($t33_34.$get(), undefined, undefined, undefined);
1942          $t36_37 = $rt.builtin.appendSlice($t1_2, $t35_36);
1943          $t37_38 = $t36_37;
1944          $block = 8; break;
1945          break;
1946        }
1947        case 8: {
1948          return $t37_38;
1949          break;
1950        }
1951      }
1952    }
1953  }
1954  
1955  export function base32ToBytes(data) {
1956    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;
1957    let $block = 0;
1958    while (true) {
1959      switch ($block) {
1960        case 0: {
1961          $t0_1 = $rt.builtin.len(data);
1962          $t1_2 = null;
1963          $t2_3 = 0;
1964          $t3_4 = 0;
1965          $t4_5 = -1;
1966          $block = 1; break;
1967          break;
1968        }
1969        case 1: {
1970          $t5_6 = ($t4_5 + 1);
1971          $t6_7 = ($t5_6 < $t0_1);
1972          if ($t6_7) {
1973            $block = 2; break;
1974          }
1975          else {
1976            $block = 3; break;
1977          }
1978          break;
1979        }
1980        case 2: {
1981          $t7_8 = data.addr($t5_6);
1982          $t8_9 = $t7_8.$get();
1983          $t9_10 = ($t2_3 * (2 ** 5));
1984          $t10_11 = $t8_9;
1985          $t11_12 = $rt.builtin.int64or($t9_10, $t10_11);
1986          $t12_13 = ($t3_4 + 5);
1987          $t25_26 = $t1_2;
1988          $t26_27 = $t12_13;
1989          $block = 6; break;
1990          break;
1991        }
1992        case 3: {
1993          return $t1_2;
1994          break;
1995        }
1996        case 4: {
1997          $t13_14 = ($t26_27 - 8);
1998          $t14_15 = Math.trunc($t11_12 / (2 ** $t13_14));
1999          $t15_16 = $rt.builtin.int64and($t14_15, 255);
2000          $t16_17 = ($t15_16 & 0xFF);
2001          $t17_18 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
2002          $t18_19 = $t17_18.$get().addr(0);
2003          $t18_19.$set($t16_17);
2004          $t19_20 = $rt.builtin.sliceSlice($t17_18.$get(), undefined, undefined, undefined);
2005          $t20_21 = $rt.builtin.appendSlice($t25_26, $t19_20);
2006          $t25_26 = $t20_21;
2007          $t26_27 = $t13_14;
2008          $block = 6; break;
2009          break;
2010        }
2011        case 5: {
2012          $t21_22 = $t26_27;
2013          $t22_23 = (1 * (2 ** $t21_22));
2014          $t23_24 = ($t22_23 - 1);
2015          $t24_25 = $rt.builtin.int64and($t11_12, $t23_24);
2016          $t1_2 = $t25_26;
2017          $t2_3 = $t24_25;
2018          $t3_4 = $t26_27;
2019          $t4_5 = $t5_6;
2020          $block = 1; break;
2021          break;
2022        }
2023        case 6: {
2024          $t27_28 = ($t26_27 >= 8);
2025          if ($t27_28) {
2026            $block = 4; break;
2027          }
2028          else {
2029            $block = 5; break;
2030          }
2031          break;
2032        }
2033      }
2034    }
2035  }
2036  
2037  export function bech32Polymod(values) {
2038    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;
2039    let $block = 0;
2040    while (true) {
2041      switch ($block) {
2042        case 0: {
2043          $t0_1 = { $value: $rt.builtin.makeSlice(5, 5, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
2044          $t1_2 = $t0_1.$get().addr(0);
2045          $t2_3 = $t0_1.$get().addr(1);
2046          $t3_4 = $t0_1.$get().addr(2);
2047          $t4_5 = $t0_1.$get().addr(3);
2048          $t5_6 = $t0_1.$get().addr(4);
2049          $t1_2.$set(996825010);
2050          $t2_3.$set(642813549);
2051          $t3_4.$set(513874426);
2052          $t4_5.$set(1027748829);
2053          $t5_6.$set(705979059);
2054          $t6_7 = $rt.builtin.len(values);
2055          $t7_8 = 1;
2056          $t8_9 = -1;
2057          $block = 1; break;
2058          break;
2059        }
2060        case 1: {
2061          $t9_10 = ($t8_9 + 1);
2062          $t10_11 = ($t9_10 < $t6_7);
2063          if ($t10_11) {
2064            $block = 2; break;
2065          }
2066          else {
2067            $block = 3; break;
2068          }
2069          break;
2070        }
2071        case 2: {
2072          $t11_12 = values.addr($t9_10);
2073          $t12_13 = $t11_12.$get();
2074          $t13_14 = ($t7_8 >>> 25);
2075          $t14_15 = (($t7_8 & 33554431) >>> 0);
2076          $t15_16 = (($t14_15 << 5) >>> 0);
2077          $t16_17 = ($t12_13 >>> 0);
2078          $t17_18 = (($t15_16 ^ $t16_17) >>> 0);
2079          $t18_19 = $t17_18;
2080          $t19_20 = 0;
2081          $block = 4; break;
2082          break;
2083        }
2084        case 3: {
2085          return $t7_8;
2086          break;
2087        }
2088        case 4: {
2089          $t20_21 = ($t19_20 < 5);
2090          if ($t20_21) {
2091            $block = 5; break;
2092          }
2093          else {
2094            $t7_8 = $t18_19;
2095            $t8_9 = $t9_10;
2096            $block = 1; break;
2097          }
2098          break;
2099        }
2100        case 5: {
2101          $t21_22 = $t19_20;
2102          $t22_23 = ($t13_14 >>> $t21_22);
2103          $t23_24 = (($t22_23 & 1) >>> 0);
2104          $t24_25 = ($t23_24 === 1);
2105          if ($t24_25) {
2106            $block = 6; break;
2107          }
2108          else {
2109            $t28_29 = $t18_19;
2110            $block = 7; break;
2111          }
2112          break;
2113        }
2114        case 6: {
2115          $t25_26 = $t0_1.$get().addr($t19_20);
2116          $t26_27 = $t25_26.$get();
2117          $t27_28 = (($t18_19 ^ $t26_27) >>> 0);
2118          $t28_29 = $t27_28;
2119          $block = 7; break;
2120          break;
2121        }
2122        case 7: {
2123          $t29_30 = ($t19_20 + 1);
2124          $t18_19 = $t28_29;
2125          $t19_20 = $t29_30;
2126          $block = 4; break;
2127          break;
2128        }
2129      }
2130    }
2131  }
2132  
2133  export function bech32HRPExpand(hrp) {
2134    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;
2135    let $block = 0;
2136    while (true) {
2137      switch ($block) {
2138        case 0: {
2139          $t0_1 = $rt.builtin.len(hrp);
2140          $t1_2 = ($t0_1 * 2);
2141          $t2_3 = ($t1_2 + 1);
2142          $t3_4 = $rt.builtin.makeSlice(0, $t2_3, 0);
2143          $t4_5 = $t3_4;
2144          $t5_6 = 0;
2145          $block = 1; break;
2146          break;
2147        }
2148        case 1: {
2149          $t6_7 = $rt.builtin.len(hrp);
2150          $t7_8 = ($t5_6 < $t6_7);
2151          if ($t7_8) {
2152            $block = 2; break;
2153          }
2154          else {
2155            $block = 3; break;
2156          }
2157          break;
2158        }
2159        case 2: {
2160          $rt.runtime.boundsCheck($t5_6, $rt.builtin.byteLen(hrp));
2161          $t8_9 = $rt.builtin.stringByteAt(hrp, $t5_6);
2162          $t9_10 = (($t8_9 & 0xFF) >> 5);
2163          $t10_11 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
2164          $t11_12 = $t10_11.$get().addr(0);
2165          $t11_12.$set($t9_10);
2166          $t12_13 = $rt.builtin.sliceSlice($t10_11.$get(), undefined, undefined, undefined);
2167          $t13_14 = $rt.builtin.appendSlice($t4_5, $t12_13);
2168          $t14_15 = ($t5_6 + 1);
2169          $t4_5 = $t13_14;
2170          $t5_6 = $t14_15;
2171          $block = 1; break;
2172          break;
2173        }
2174        case 3: {
2175          $t15_16 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
2176          $t16_17 = $t15_16.$get().addr(0);
2177          $t16_17.$set(0);
2178          $t17_18 = $rt.builtin.sliceSlice($t15_16.$get(), undefined, undefined, undefined);
2179          $t18_19 = $rt.builtin.appendSlice($t4_5, $t17_18);
2180          $t19_20 = $t18_19;
2181          $t20_21 = 0;
2182          $block = 4; break;
2183          break;
2184        }
2185        case 4: {
2186          $t21_22 = $rt.builtin.len(hrp);
2187          $t22_23 = ($t20_21 < $t21_22);
2188          if ($t22_23) {
2189            $block = 5; break;
2190          }
2191          else {
2192            $block = 6; break;
2193          }
2194          break;
2195        }
2196        case 5: {
2197          $rt.runtime.boundsCheck($t20_21, $rt.builtin.byteLen(hrp));
2198          $t23_24 = $rt.builtin.stringByteAt(hrp, $t20_21);
2199          $t24_25 = ($t23_24 & 31);
2200          $t25_26 = { $value: $rt.builtin.makeSlice(1, 1, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
2201          $t26_27 = $t25_26.$get().addr(0);
2202          $t26_27.$set($t24_25);
2203          $t27_28 = $rt.builtin.sliceSlice($t25_26.$get(), undefined, undefined, undefined);
2204          $t28_29 = $rt.builtin.appendSlice($t19_20, $t27_28);
2205          $t29_30 = ($t20_21 + 1);
2206          $t19_20 = $t28_29;
2207          $t20_21 = $t29_30;
2208          $block = 4; break;
2209          break;
2210        }
2211        case 6: {
2212          return $t19_20;
2213          break;
2214        }
2215      }
2216    }
2217  }
2218  
2219  export function bech32Checksum(hrp, data) {
2220    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;
2221    let $block = 0;
2222    while (true) {
2223      switch ($block) {
2224        case 0: {
2225          $t0_1 = bech32HRPExpand(hrp);
2226          $t1_2 = $rt.builtin.appendSlice($t0_1, data);
2227          $t2_3 = { $value: $rt.builtin.makeSlice(6, 6, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
2228          $t3_4 = $t2_3.$get().addr(0);
2229          $t3_4.$set(0);
2230          $t4_5 = $t2_3.$get().addr(1);
2231          $t4_5.$set(0);
2232          $t5_6 = $t2_3.$get().addr(2);
2233          $t5_6.$set(0);
2234          $t6_7 = $t2_3.$get().addr(3);
2235          $t6_7.$set(0);
2236          $t7_8 = $t2_3.$get().addr(4);
2237          $t7_8.$set(0);
2238          $t8_9 = $t2_3.$get().addr(5);
2239          $t8_9.$set(0);
2240          $t9_10 = $rt.builtin.sliceSlice($t2_3.$get(), undefined, undefined, undefined);
2241          $t10_11 = $rt.builtin.appendSlice($t1_2, $t9_10);
2242          $t11_12 = bech32Polymod($t10_11);
2243          $t12_13 = (($t11_12 ^ 1) >>> 0);
2244          $t13_14 = { $value: $rt.builtin.makeSlice(6, 6, 0), $get() { return this.$value; }, $set(v) { this.$value = v; } };
2245          $t14_15 = $rt.builtin.sliceSlice($t13_14.$get(), undefined, 6, undefined);
2246          $t15_16 = 0;
2247          $block = 1; break;
2248          break;
2249        }
2250        case 1: {
2251          $t16_17 = ($t15_16 < 6);
2252          if ($t16_17) {
2253            $block = 2; break;
2254          }
2255          else {
2256            $block = 3; break;
2257          }
2258          break;
2259        }
2260        case 2: {
2261          $t17_18 = $t15_16;
2262          $t18_19 = (5 - $t17_18);
2263          $t19_20 = (5 * $t18_19);
2264          $t20_21 = ($t12_13 >>> $t19_20);
2265          $t21_22 = (($t20_21 & 31) >>> 0);
2266          $t22_23 = ($t21_22 & 0xFF);
2267          $t23_24 = $t14_15.addr($t15_16);
2268          $t23_24.$set($t22_23);
2269          $t24_25 = ($t15_16 + 1);
2270          $t15_16 = $t24_25;
2271          $block = 1; break;
2272          break;
2273        }
2274        case 3: {
2275          return $t14_15;
2276          break;
2277        }
2278      }
2279    }
2280  }
2281  
2282  export function bech32Verify(hrp, data) {
2283    let $t0_1, $t1_2, $t2_3, $t3_4;
2284    $t0_1 = bech32HRPExpand(hrp);
2285    $t1_2 = $rt.builtin.appendSlice($t0_1, data);
2286    $t2_3 = bech32Polymod($t1_2);
2287    $t3_4 = ($t2_3 === 1);
2288    return $t3_4;
2289  }
2290  
2291  export function charsetIndex(c) {
2292    let $t0_1, $t1_2, $t2_3, $t3_4, $t4_5;
2293    let $block = 0;
2294    while (true) {
2295      switch ($block) {
2296        case 0: {
2297          $t0_1 = 0;
2298          $block = 1; break;
2299          break;
2300        }
2301        case 1: {
2302          $t1_2 = ($t0_1 < 32);
2303          if ($t1_2) {
2304            $block = 2; break;
2305          }
2306          else {
2307            $block = 3; break;
2308          }
2309          break;
2310        }
2311        case 2: {
2312          $rt.runtime.boundsCheck($t0_1, $rt.builtin.byteLen('qpzry9x8gf2tvdw0s3jn54khce6mua7l'));
2313          $t2_3 = $rt.builtin.stringByteAt('qpzry9x8gf2tvdw0s3jn54khce6mua7l', $t0_1);
2314          $t3_4 = ($t2_3 === c);
2315          if ($t3_4) {
2316            $block = 4; break;
2317          }
2318          else {
2319            $block = 5; break;
2320          }
2321          break;
2322        }
2323        case 3: {
2324          return -1;
2325          break;
2326        }
2327        case 4: {
2328          return $t0_1;
2329          break;
2330        }
2331        case 5: {
2332          $t4_5 = ($t0_1 + 1);
2333          $t0_1 = $t4_5;
2334          $block = 1; break;
2335          break;
2336        }
2337      }
2338    }
2339  }
2340  
2341