@aztec/l1-artifacts 1.0.0-nightly.20250805 → 1.0.0-nightly.20250807

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (155) hide show
  1. package/dest/CoinIssuerAbi.d.ts +40 -0
  2. package/dest/CoinIssuerAbi.d.ts.map +1 -1
  3. package/dest/CoinIssuerAbi.js +54 -0
  4. package/dest/CoinIssuerBytecode.d.ts +1 -1
  5. package/dest/CoinIssuerBytecode.js +1 -1
  6. package/dest/EmpireBaseAbi.d.ts +40 -0
  7. package/dest/EmpireBaseAbi.d.ts.map +1 -1
  8. package/dest/EmpireBaseAbi.js +54 -0
  9. package/dest/ErrorsAbi.d.ts +40 -0
  10. package/dest/ErrorsAbi.d.ts.map +1 -1
  11. package/dest/ErrorsAbi.js +54 -0
  12. package/dest/ExtRollupLib2Abi.d.ts +140 -0
  13. package/dest/ExtRollupLib2Abi.d.ts.map +1 -1
  14. package/dest/ExtRollupLib2Abi.js +182 -0
  15. package/dest/ExtRollupLib2Bytecode.d.ts +1 -1
  16. package/dest/ExtRollupLib2Bytecode.d.ts.map +1 -1
  17. package/dest/ExtRollupLib2Bytecode.js +1 -1
  18. package/dest/ExtRollupLib3Abi.d.ts +40 -0
  19. package/dest/ExtRollupLib3Abi.d.ts.map +1 -1
  20. package/dest/ExtRollupLib3Abi.js +54 -0
  21. package/dest/ExtRollupLib3Bytecode.d.ts +1 -1
  22. package/dest/ExtRollupLib3Bytecode.js +1 -1
  23. package/dest/ExtRollupLibAbi.d.ts +40 -0
  24. package/dest/ExtRollupLibAbi.d.ts.map +1 -1
  25. package/dest/ExtRollupLibAbi.js +54 -0
  26. package/dest/ExtRollupLibBytecode.d.ts +1 -1
  27. package/dest/ExtRollupLibBytecode.js +1 -1
  28. package/dest/FeeAssetHandlerAbi.d.ts +40 -0
  29. package/dest/FeeAssetHandlerAbi.d.ts.map +1 -1
  30. package/dest/FeeAssetHandlerAbi.js +54 -0
  31. package/dest/FeeJuicePortalAbi.d.ts +40 -0
  32. package/dest/FeeJuicePortalAbi.d.ts.map +1 -1
  33. package/dest/FeeJuicePortalAbi.js +54 -0
  34. package/dest/FeeJuicePortalBytecode.d.ts +1 -1
  35. package/dest/FeeJuicePortalBytecode.js +1 -1
  36. package/dest/GSEAbi.d.ts +221 -16
  37. package/dest/GSEAbi.d.ts.map +1 -1
  38. package/dest/GSEAbi.js +291 -20
  39. package/dest/GSEBytecode.d.ts +1 -1
  40. package/dest/GSEBytecode.d.ts.map +1 -1
  41. package/dest/GSEBytecode.js +1 -1
  42. package/dest/GovernanceAbi.d.ts +40 -0
  43. package/dest/GovernanceAbi.d.ts.map +1 -1
  44. package/dest/GovernanceAbi.js +54 -0
  45. package/dest/GovernanceBytecode.d.ts +1 -1
  46. package/dest/GovernanceBytecode.js +1 -1
  47. package/dest/GovernanceProposerAbi.d.ts +40 -0
  48. package/dest/GovernanceProposerAbi.d.ts.map +1 -1
  49. package/dest/GovernanceProposerAbi.js +54 -0
  50. package/dest/GovernanceProposerBytecode.d.ts +1 -1
  51. package/dest/GovernanceProposerBytecode.js +1 -1
  52. package/dest/HonkVerifierAbi.d.ts +40 -0
  53. package/dest/HonkVerifierAbi.d.ts.map +1 -1
  54. package/dest/HonkVerifierAbi.js +54 -0
  55. package/dest/HonkVerifierBytecode.d.ts +1 -1
  56. package/dest/HonkVerifierBytecode.d.ts.map +1 -1
  57. package/dest/HonkVerifierBytecode.js +1 -1
  58. package/dest/IERC20Abi.d.ts +40 -0
  59. package/dest/IERC20Abi.d.ts.map +1 -1
  60. package/dest/IERC20Abi.js +54 -0
  61. package/dest/IVerifierAbi.d.ts +40 -0
  62. package/dest/IVerifierAbi.d.ts.map +1 -1
  63. package/dest/IVerifierAbi.js +54 -0
  64. package/dest/InboxAbi.d.ts +40 -0
  65. package/dest/InboxAbi.d.ts.map +1 -1
  66. package/dest/InboxAbi.js +54 -0
  67. package/dest/InboxBytecode.d.ts +1 -1
  68. package/dest/InboxBytecode.js +1 -1
  69. package/dest/MockVerifierAbi.d.ts +40 -0
  70. package/dest/MockVerifierAbi.d.ts.map +1 -1
  71. package/dest/MockVerifierAbi.js +54 -0
  72. package/dest/MockZKPassportVerifierAbi.d.ts +40 -0
  73. package/dest/MockZKPassportVerifierAbi.d.ts.map +1 -1
  74. package/dest/MockZKPassportVerifierAbi.js +54 -0
  75. package/dest/MultiAdderAbi.d.ts +87 -0
  76. package/dest/MultiAdderAbi.d.ts.map +1 -1
  77. package/dest/MultiAdderAbi.js +115 -0
  78. package/dest/MultiAdderBytecode.d.ts +1 -1
  79. package/dest/MultiAdderBytecode.d.ts.map +1 -1
  80. package/dest/MultiAdderBytecode.js +1 -1
  81. package/dest/NewGovernanceProposerPayloadAbi.d.ts +41 -1
  82. package/dest/NewGovernanceProposerPayloadAbi.d.ts.map +1 -1
  83. package/dest/NewGovernanceProposerPayloadAbi.js +55 -1
  84. package/dest/NewGovernanceProposerPayloadBytecode.d.ts +1 -1
  85. package/dest/NewGovernanceProposerPayloadBytecode.js +1 -1
  86. package/dest/OutboxAbi.d.ts +40 -0
  87. package/dest/OutboxAbi.d.ts.map +1 -1
  88. package/dest/OutboxAbi.js +54 -0
  89. package/dest/OutboxBytecode.d.ts +1 -1
  90. package/dest/OutboxBytecode.js +1 -1
  91. package/dest/RegisterNewRollupVersionPayloadAbi.d.ts +41 -1
  92. package/dest/RegisterNewRollupVersionPayloadAbi.d.ts.map +1 -1
  93. package/dest/RegisterNewRollupVersionPayloadAbi.js +55 -1
  94. package/dest/RegisterNewRollupVersionPayloadBytecode.d.ts +1 -1
  95. package/dest/RegisterNewRollupVersionPayloadBytecode.js +1 -1
  96. package/dest/RegistryAbi.d.ts +40 -0
  97. package/dest/RegistryAbi.d.ts.map +1 -1
  98. package/dest/RegistryAbi.js +54 -0
  99. package/dest/RegistryBytecode.d.ts +1 -1
  100. package/dest/RegistryBytecode.js +1 -1
  101. package/dest/RewardDistributorAbi.d.ts +40 -0
  102. package/dest/RewardDistributorAbi.d.ts.map +1 -1
  103. package/dest/RewardDistributorAbi.js +54 -0
  104. package/dest/RewardDistributorBytecode.d.ts +1 -1
  105. package/dest/RewardDistributorBytecode.js +1 -1
  106. package/dest/RollupAbi.d.ts +213 -0
  107. package/dest/RollupAbi.d.ts.map +1 -1
  108. package/dest/RollupAbi.js +277 -0
  109. package/dest/RollupBytecode.d.ts +27 -27
  110. package/dest/RollupBytecode.d.ts.map +1 -1
  111. package/dest/RollupBytecode.js +27 -27
  112. package/dest/RollupStorage.d.ts +3 -3
  113. package/dest/RollupStorage.js +3 -3
  114. package/dest/SlashFactoryAbi.d.ts +40 -0
  115. package/dest/SlashFactoryAbi.d.ts.map +1 -1
  116. package/dest/SlashFactoryAbi.js +54 -0
  117. package/dest/SlashFactoryBytecode.d.ts +1 -1
  118. package/dest/SlashFactoryBytecode.js +1 -1
  119. package/dest/SlasherAbi.d.ts +40 -0
  120. package/dest/SlasherAbi.d.ts.map +1 -1
  121. package/dest/SlasherAbi.js +54 -0
  122. package/dest/SlasherBytecode.d.ts +1 -1
  123. package/dest/SlasherBytecode.js +1 -1
  124. package/dest/SlashingProposerAbi.d.ts +40 -0
  125. package/dest/SlashingProposerAbi.d.ts.map +1 -1
  126. package/dest/SlashingProposerAbi.js +54 -0
  127. package/dest/SlashingProposerBytecode.d.ts +1 -1
  128. package/dest/SlashingProposerBytecode.js +1 -1
  129. package/dest/StakingAssetHandlerAbi.d.ts +134 -0
  130. package/dest/StakingAssetHandlerAbi.d.ts.map +1 -1
  131. package/dest/StakingAssetHandlerAbi.js +176 -0
  132. package/dest/StakingAssetHandlerBytecode.d.ts +1 -1
  133. package/dest/StakingAssetHandlerBytecode.d.ts.map +1 -1
  134. package/dest/StakingAssetHandlerBytecode.js +1 -1
  135. package/dest/TestERC20Abi.d.ts +40 -0
  136. package/dest/TestERC20Abi.d.ts.map +1 -1
  137. package/dest/TestERC20Abi.js +54 -0
  138. package/dest/TokenPortalAbi.d.ts +40 -0
  139. package/dest/TokenPortalAbi.d.ts.map +1 -1
  140. package/dest/TokenPortalAbi.js +54 -0
  141. package/dest/TokenPortalBytecode.d.ts +1 -1
  142. package/dest/TokenPortalBytecode.js +1 -1
  143. package/dest/UniswapPortalAbi.d.ts +40 -0
  144. package/dest/UniswapPortalAbi.d.ts.map +1 -1
  145. package/dest/UniswapPortalAbi.js +54 -0
  146. package/dest/UniswapPortalBytecode.d.ts +1 -1
  147. package/dest/UniswapPortalBytecode.js +1 -1
  148. package/dest/ValidatorSelectionLibAbi.d.ts +40 -0
  149. package/dest/ValidatorSelectionLibAbi.d.ts.map +1 -1
  150. package/dest/ValidatorSelectionLibAbi.js +54 -0
  151. package/dest/ValidatorSelectionLibBytecode.d.ts +1 -1
  152. package/dest/ValidatorSelectionLibBytecode.js +1 -1
  153. package/dest/checksum.d.ts +1 -1
  154. package/dest/checksum.js +1 -1
  155. package/package.json +1 -1
package/dest/GSEAbi.js CHANGED
@@ -53,6 +53,11 @@
53
53
  ],
54
54
  "stateMutability": "view"
55
55
  },
56
+ {
57
+ "type": "error",
58
+ "name": "AddPointFail",
59
+ "inputs": []
60
+ },
56
61
  {
57
62
  "type": "error",
58
63
  "name": "AddressSnapshotLib__IndexOutOfBounds",
@@ -274,6 +279,22 @@
274
279
  }
275
280
  ]
276
281
  },
282
+ {
283
+ "type": "error",
284
+ "name": "GSE__CannotChangePublicKeys",
285
+ "inputs": [
286
+ {
287
+ "name": "existingPk1x",
288
+ "type": "uint256",
289
+ "internalType": "uint256"
290
+ },
291
+ {
292
+ "name": "existingPk1y",
293
+ "type": "uint256",
294
+ "internalType": "uint256"
295
+ }
296
+ ]
297
+ },
277
298
  {
278
299
  "type": "error",
279
300
  "name": "GSE__FailedToRemove",
@@ -328,6 +349,11 @@
328
349
  }
329
350
  ]
330
351
  },
352
+ {
353
+ "type": "error",
354
+ "name": "GSE__InvalidProofOfPossession",
355
+ "inputs": []
356
+ },
331
357
  {
332
358
  "type": "error",
333
359
  "name": "GSE__InvalidRollupAddress",
@@ -404,6 +430,17 @@
404
430
  }
405
431
  ]
406
432
  },
433
+ {
434
+ "type": "error",
435
+ "name": "GSE__ProofOfPossessionAlreadySeen",
436
+ "inputs": [
437
+ {
438
+ "name": "hashedPK1",
439
+ "type": "bytes32",
440
+ "internalType": "bytes32"
441
+ }
442
+ ]
443
+ },
407
444
  {
408
445
  "type": "error",
409
446
  "name": "GSE__RollupAlreadyRegistered",
@@ -415,6 +452,11 @@
415
452
  }
416
453
  ]
417
454
  },
455
+ {
456
+ "type": "error",
457
+ "name": "GammaZero",
458
+ "inputs": []
459
+ },
418
460
  {
419
461
  "type": "error",
420
462
  "name": "GovernanceProposer__FailedToSubmitRoundWinner",
@@ -592,6 +634,28 @@
592
634
  }
593
635
  ]
594
636
  },
637
+ {
638
+ "type": "error",
639
+ "name": "Governance__BlsKeyInvalidG1Point",
640
+ "inputs": [
641
+ {
642
+ "name": "",
643
+ "type": "uint256[2]",
644
+ "internalType": "uint256[2]"
645
+ }
646
+ ]
647
+ },
648
+ {
649
+ "type": "error",
650
+ "name": "Governance__BlsKeyInvalidG2Point",
651
+ "inputs": [
652
+ {
653
+ "name": "",
654
+ "type": "uint256[4]",
655
+ "internalType": "uint256[4]"
656
+ }
657
+ ]
658
+ },
595
659
  {
596
660
  "type": "error",
597
661
  "name": "Governance__CallFailed",
@@ -953,6 +1017,58 @@
953
1017
  }
954
1018
  ]
955
1019
  },
1020
+ {
1021
+ "type": "error",
1022
+ "name": "MulPointFail",
1023
+ "inputs": []
1024
+ },
1025
+ {
1026
+ "type": "error",
1027
+ "name": "NoPointFound",
1028
+ "inputs": []
1029
+ },
1030
+ {
1031
+ "type": "error",
1032
+ "name": "NotOnCurve",
1033
+ "inputs": [
1034
+ {
1035
+ "name": "x",
1036
+ "type": "uint256",
1037
+ "internalType": "uint256"
1038
+ },
1039
+ {
1040
+ "name": "y",
1041
+ "type": "uint256",
1042
+ "internalType": "uint256"
1043
+ }
1044
+ ]
1045
+ },
1046
+ {
1047
+ "type": "error",
1048
+ "name": "NotOnCurveG2",
1049
+ "inputs": [
1050
+ {
1051
+ "name": "x0",
1052
+ "type": "uint256",
1053
+ "internalType": "uint256"
1054
+ },
1055
+ {
1056
+ "name": "x1",
1057
+ "type": "uint256",
1058
+ "internalType": "uint256"
1059
+ },
1060
+ {
1061
+ "name": "y0",
1062
+ "type": "uint256",
1063
+ "internalType": "uint256"
1064
+ },
1065
+ {
1066
+ "name": "y1",
1067
+ "type": "uint256",
1068
+ "internalType": "uint256"
1069
+ }
1070
+ ]
1071
+ },
956
1072
  {
957
1073
  "type": "error",
958
1074
  "name": "Outbox__AlreadyNullified",
@@ -1137,6 +1253,11 @@
1137
1253
  ],
1138
1254
  "anonymous": false
1139
1255
  },
1256
+ {
1257
+ "type": "error",
1258
+ "name": "PairingFail",
1259
+ "inputs": []
1260
+ },
1140
1261
  {
1141
1262
  "type": "error",
1142
1263
  "name": "ProofCommitmentEscrow__InsufficientBalance",
@@ -1741,6 +1862,11 @@
1741
1862
  }
1742
1863
  ]
1743
1864
  },
1865
+ {
1866
+ "type": "error",
1867
+ "name": "SqrtFail",
1868
+ "inputs": []
1869
+ },
1744
1870
  {
1745
1871
  "type": "error",
1746
1872
  "name": "Staking__AlreadyActive",
@@ -2268,6 +2394,19 @@
2268
2394
  ],
2269
2395
  "stateMutability": "view"
2270
2396
  },
2397
+ {
2398
+ "type": "function",
2399
+ "name": "checkProofOfPossession",
2400
+ "inputs": [],
2401
+ "outputs": [
2402
+ {
2403
+ "name": "",
2404
+ "type": "bool",
2405
+ "internalType": "bool"
2406
+ }
2407
+ ],
2408
+ "stateMutability": "view"
2409
+ },
2271
2410
  {
2272
2411
  "type": "function",
2273
2412
  "name": "delegate",
@@ -2305,6 +2444,67 @@
2305
2444
  "type": "address",
2306
2445
  "internalType": "address"
2307
2446
  },
2447
+ {
2448
+ "name": "_publicKeyInG1",
2449
+ "type": "tuple",
2450
+ "internalType": "struct G1Point",
2451
+ "components": [
2452
+ {
2453
+ "name": "x",
2454
+ "type": "uint256",
2455
+ "internalType": "uint256"
2456
+ },
2457
+ {
2458
+ "name": "y",
2459
+ "type": "uint256",
2460
+ "internalType": "uint256"
2461
+ }
2462
+ ]
2463
+ },
2464
+ {
2465
+ "name": "_publicKeyInG2",
2466
+ "type": "tuple",
2467
+ "internalType": "struct G2Point",
2468
+ "components": [
2469
+ {
2470
+ "name": "x0",
2471
+ "type": "uint256",
2472
+ "internalType": "uint256"
2473
+ },
2474
+ {
2475
+ "name": "x1",
2476
+ "type": "uint256",
2477
+ "internalType": "uint256"
2478
+ },
2479
+ {
2480
+ "name": "y0",
2481
+ "type": "uint256",
2482
+ "internalType": "uint256"
2483
+ },
2484
+ {
2485
+ "name": "y1",
2486
+ "type": "uint256",
2487
+ "internalType": "uint256"
2488
+ }
2489
+ ]
2490
+ },
2491
+ {
2492
+ "name": "_proofOfPossession",
2493
+ "type": "tuple",
2494
+ "internalType": "struct G1Point",
2495
+ "components": [
2496
+ {
2497
+ "name": "x",
2498
+ "type": "uint256",
2499
+ "internalType": "uint256"
2500
+ },
2501
+ {
2502
+ "name": "y",
2503
+ "type": "uint256",
2504
+ "internalType": "uint256"
2505
+ }
2506
+ ]
2507
+ },
2308
2508
  {
2309
2509
  "name": "_moveWithLatestRollup",
2310
2510
  "type": "bool",
@@ -2474,11 +2674,6 @@
2474
2674
  "type": "function",
2475
2675
  "name": "getConfig",
2476
2676
  "inputs": [
2477
- {
2478
- "name": "_instance",
2479
- "type": "address",
2480
- "internalType": "address"
2481
- },
2482
2677
  {
2483
2678
  "name": "_attester",
2484
2679
  "type": "address",
@@ -2491,6 +2686,23 @@
2491
2686
  "type": "tuple",
2492
2687
  "internalType": "struct AttesterConfig",
2493
2688
  "components": [
2689
+ {
2690
+ "name": "publicKey",
2691
+ "type": "tuple",
2692
+ "internalType": "struct G1Point",
2693
+ "components": [
2694
+ {
2695
+ "name": "x",
2696
+ "type": "uint256",
2697
+ "internalType": "uint256"
2698
+ },
2699
+ {
2700
+ "name": "y",
2701
+ "type": "uint256",
2702
+ "internalType": "uint256"
2703
+ }
2704
+ ]
2705
+ },
2494
2706
  {
2495
2707
  "name": "withdrawer",
2496
2708
  "type": "address",
@@ -2525,6 +2737,37 @@
2525
2737
  ],
2526
2738
  "stateMutability": "view"
2527
2739
  },
2740
+ {
2741
+ "type": "function",
2742
+ "name": "getG1PublicKeysFromAddresses",
2743
+ "inputs": [
2744
+ {
2745
+ "name": "_attesters",
2746
+ "type": "address[]",
2747
+ "internalType": "address[]"
2748
+ }
2749
+ ],
2750
+ "outputs": [
2751
+ {
2752
+ "name": "",
2753
+ "type": "tuple[]",
2754
+ "internalType": "struct G1Point[]",
2755
+ "components": [
2756
+ {
2757
+ "name": "x",
2758
+ "type": "uint256",
2759
+ "internalType": "uint256"
2760
+ },
2761
+ {
2762
+ "name": "y",
2763
+ "type": "uint256",
2764
+ "internalType": "uint256"
2765
+ }
2766
+ ]
2767
+ }
2768
+ ],
2769
+ "stateMutability": "view"
2770
+ },
2528
2771
  {
2529
2772
  "type": "function",
2530
2773
  "name": "getGovernance",
@@ -2594,6 +2837,49 @@
2594
2837
  ],
2595
2838
  "stateMutability": "view"
2596
2839
  },
2840
+ {
2841
+ "type": "function",
2842
+ "name": "getRegistrationDigest",
2843
+ "inputs": [
2844
+ {
2845
+ "name": "_publicKey",
2846
+ "type": "tuple",
2847
+ "internalType": "struct G1Point",
2848
+ "components": [
2849
+ {
2850
+ "name": "x",
2851
+ "type": "uint256",
2852
+ "internalType": "uint256"
2853
+ },
2854
+ {
2855
+ "name": "y",
2856
+ "type": "uint256",
2857
+ "internalType": "uint256"
2858
+ }
2859
+ ]
2860
+ }
2861
+ ],
2862
+ "outputs": [
2863
+ {
2864
+ "name": "",
2865
+ "type": "tuple",
2866
+ "internalType": "struct G1Point",
2867
+ "components": [
2868
+ {
2869
+ "name": "x",
2870
+ "type": "uint256",
2871
+ "internalType": "uint256"
2872
+ },
2873
+ {
2874
+ "name": "y",
2875
+ "type": "uint256",
2876
+ "internalType": "uint256"
2877
+ }
2878
+ ]
2879
+ }
2880
+ ],
2881
+ "stateMutability": "view"
2882
+ },
2597
2883
  {
2598
2884
  "type": "function",
2599
2885
  "name": "getVotingPower",
@@ -2641,11 +2927,6 @@
2641
2927
  "type": "function",
2642
2928
  "name": "getWithdrawer",
2643
2929
  "inputs": [
2644
- {
2645
- "name": "_instance",
2646
- "type": "address",
2647
- "internalType": "address"
2648
- },
2649
2930
  {
2650
2931
  "name": "_attester",
2651
2932
  "type": "address",
@@ -2657,16 +2938,6 @@
2657
2938
  "name": "withdrawer",
2658
2939
  "type": "address",
2659
2940
  "internalType": "address"
2660
- },
2661
- {
2662
- "name": "attesterExists",
2663
- "type": "bool",
2664
- "internalType": "bool"
2665
- },
2666
- {
2667
- "name": "instanceAddress",
2668
- "type": "address",
2669
- "internalType": "address"
2670
2941
  }
2671
2942
  ],
2672
2943
  "stateMutability": "view"
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * GSE bytecode.
3
3
  */
4
- export declare const GSEBytecode = "0x60e060405234801561000f575f5ffd5b5060405161329c38038061329c83398101604081905261002e91610136565b83838383836001600160a01b03811661006057604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b610069816100d0565b506001600160a01b0390921660c05260805260a0525050739064fb41156d300196d5eb95e0b3c1f08ebc39a85f5250506002602052507f45cd5d767d29724415e078f0a4044a337b39cef8f25b5496e43151dbca56c51b805460ff1916600117905561017b565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381168114610133575f5ffd5b50565b5f5f5f5f60808587031215610149575f5ffd5b84516101548161011f565b60208601519094506101658161011f565b6040860151606090960151949790965092505050565b60805160a05160c0516130b86101e45f395f81816102ad015281816108420152818161091001528181610bb40152610c4d01525f81816104af01526113ec01525f8181610424015281816107dd0152818161081c015281816108e7015261099201526130b85ff3fe608060405234801561000f575f5ffd5b5060043610610212575f3560e01c80639796d9771161011f578063d3da927f116100a9578063f2fde38b11610079578063f2fde38b146104f7578063f3fef3a31461050a578063f4603fe114610538578063f752f8b514610575578063f7888aec14610588575f5ffd5b8063d3da927f14610497578063dbc85752146104aa578063eaeded5f146104d1578063ec6e69db146104e4575f5ffd5b8063b35186a8116100ef578063b35186a814610417578063b4ac45361461041f578063bb4d443614610446578063bbdcbed614610459578063bd76784b14610484575f5ffd5b80639796d977146103be5780639f6bc70c146103de578063a9cd26c9146103f1578063ab033ea914610404575f5ffd5b80635338c758116101a05780636a18ff7a116101705780636a18ff7a1461036c5780636a9155161461037f578063710ca35414610392578063715018a6146103a65780638da5cb5b146103ae575f5ffd5b80635338c7581461032057806359264f001461033357806362400e4c14610346578063671431c314610359575f5ffd5b80632e341ce0116101e65780632e341ce01461028257806330eb4bdd146102955780634800d97f146102a857806352097e4e146102cf57806352f44a14146102e2575f5ffd5b806215eaaa146102165780630808ee6e1461024657806318160ddd1461025b578063289b3c0d14610271575b5f5ffd5b610229610224366004612a13565b61059b565b6040516001600160a01b0390911681526020015b60405180910390f35b610259610254366004612a57565b6105d1565b005b610263610a43565b60405190815260200161023d565b6006546001600160a01b0316610229565b610259610290366004612a9f565b610a53565b6102636102a3366004612a13565b610b12565b6102297f000000000000000000000000000000000000000000000000000000000000000081565b6102596102dd366004612adc565b610d8d565b6103106102f0366004612b07565b6001600160a01b03165f9081526002602052604090206004015460ff1690565b604051901515815260200161023d565b61026361032e366004612a13565b610df2565b610259610341366004612b07565b610e4d565b610263610354366004612b07565b610f1c565b610263610367366004612b22565b610f28565b61025961037a366004612adc565b610f50565b61022961038d366004612b4c565b610f5c565b6102295f5160206130435f395f51905f5281565b610259610f82565b5f546001600160a01b0316610229565b6103d16103cc366004612bf5565b610f95565b60405161023d9190612cbe565b5f5160206130435f395f51905f52610229565b6102296103ff366004612d09565b610fa2565b610259610412366004612b07565b611013565b610229611066565b6102637f000000000000000000000000000000000000000000000000000000000000000081565b610263610454366004612b07565b611074565b61046c610467366004612a13565b611080565b60405190516001600160a01b0316815260200161023d565b6103d1610492366004612b22565b6110f0565b6103106104a5366004612a13565b611181565b6102637f000000000000000000000000000000000000000000000000000000000000000081565b6102636104df366004612b22565b6111a2565b6102636104f2366004612b22565b6111af565b610259610505366004612b07565b611247565b61051d610518366004612b22565b611284565b6040805193845291151560208401529082015260600161023d565b61054b610546366004612a13565b611531565b604080516001600160a01b039485168152921515602084015292169181019190915260600161023d565b610259610583366004612b4c565b611584565b610263610596366004612a13565b611663565b6001600160a01b038083165f90815260036020908152604080832084861684529091528120600101549091165b90505b92915050565b335f8181526002602052604090206004015460ff16610614576040516319aaa75960e11b81526001600160a01b0390911660048201526024015b60405180910390fd5b505f3361061f611066565b6001600160a01b03161490508115806106355750805b3390610660576040516305df8ea560e31b81526001600160a01b03909116600482015260240161060b565b5061066b3385611181565b15338590916106a057604051630d75cd7760e11b81526001600160a01b0392831660048201529116602482015260440161060b565b50508015806106c357506106c15f5160206130435f395f51905f5285611181565b155b5f5160206130435f395f51905f5290859061070457604051630d75cd7760e11b81526001600160a01b0392831660048201529116602482015260440161060b565b50505f826107125733610721565b5f5160206130435f395f51905f525b6001600160a01b0381165f9081526002602052604090209091506107459086611670565b8186909161077957604051630d75cd7760e11b81526001600160a01b0392831660048201529116602482015260440161060b565b505060408051602080820183526001600160a01b0387811683528481165f908152600283528481208a83168252600390810190935293909320915182546001600160a01b03191693169290921790556107d490828781611783565b610801600382877f0000000000000000000000000000000000000000000000000000000000000000611851565b6040516323b872dd60e01b81523360048201523060248201527f000000000000000000000000000000000000000000000000000000000000000060448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906323b872dd906064016020604051808303815f875af1158015610890573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108b49190612d3b565b505f6108c86006546001600160a01b031690565b60405163095ea7b360e01b81526001600160a01b0380831660048301527f000000000000000000000000000000000000000000000000000000000000000060248301529192507f00000000000000000000000000000000000000000000000000000000000000009091169063095ea7b3906044016020604051808303815f875af1158015610958573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061097c9190612d3b565b506040516311f9fbc960e21b81523060048201527f000000000000000000000000000000000000000000000000000000000000000060248201526001600160a01b038216906347e7ef24906044015f604051808303815f87803b1580156109e1575f5ffd5b505af11580156109f3573d5f5f3e3d5ffd5b50506040516001600160a01b038881168252808a169350851691507f7986a8ff398d9a6be88df9dfc6e3c9a83e4da5544241aad420d1cf7c214e43459060200160405180910390a3505050505050565b5f610a4e60036118e0565b905090565b6001600160a01b0383165f9081526002602052604090206004015460ff168390610a9c576040516330d32d8760e21b81526001600160a01b03909116600482015260240161060b565b506001600160a01b038084165f9081526002602090815260408083208685168452600301909152902054168033808214610afc57604051630257d8d760e41b81526001600160a01b0392831660048201529116602482015260440161060b565b50610b0c90506003858585611783565b50505050565b5f5f610b266006546001600160a01b031690565b90505f816001600160a01b0316636bd50cef6040518163ffffffff1660e01b815260040161012060405180830381865afa158015610b66573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b8a9190612dfa565b51602001516040516323b872dd60e01b8152336004820152306024820152604481018290529091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906323b872dd906064016020604051808303815f875af1158015610c02573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c269190612d3b565b5060405163095ea7b360e01b81526001600160a01b038381166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b3906044016020604051808303815f875af1158015610c93573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cb79190612d3b565b506040516311f9fbc960e21b8152306004820152602481018290526001600160a01b038316906347e7ef24906044015f604051808303815f87803b158015610cfd575f5ffd5b505af1158015610d0f573d5f5f3e3d5ffd5b50506040516330eb4bdd60e01b81526001600160a01b0388811660048301528781166024830152851692506330eb4bdd91506044016020604051808303815f875af1158015610d60573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d849190612e15565b95945050505050565b5f610d97846118ed565b9050610da281610f5c565b33906001600160a01b03168114610dd8576040516305df8ea560e31b81526001600160a01b03909116600482015260240161060b565b50610b0c5f5160206130435f395f51905f52858585611975565b5f80610e0060038585611a14565b9050836001600160a01b0316610e14611066565b6001600160a01b0316036105c857610e3b60035f5160206130435f395f51905f5285611a14565b610e459082612e40565b949350505050565b610e55611a3b565b806001600160a01b038116610e89576040516327bac29760e21b81526001600160a01b03909116600482015260240161060b565b506001600160a01b0381165f90815260026020526040902060040154819060ff1615610ed35760405162cea8b160e11b81526001600160a01b03909116600482015260240161060b565b506001600160a01b0381165f908152600260205260409020600401805460ff19166001179055610f17610f0542611a67565b6001906001600160a01b038416611a9b565b505050565b5f6105cb600383611ab5565b6001600160a01b0382165f9081526004602090815260408083208484529091528120546105c8565b610f1733848484611975565b5f6105cb610f74610f6c84611a67565b600190611ad8565b6001600160e01b0316611b2d565b610f8a611a3b565b610f935f611b60565b565b6060610e45848385611baf565b6040805160018082528183019092525f918291906020808301908036833701905050905083815f81518110610fd957610fd9612e53565b602002602001018181525050610ff0858285611baf565b5f8151811061100157611001612e53565b60200260200101519150509392505050565b61101b611a3b565b6006546001600160a01b031615611044576040516296bb9f60e21b815260040160405180910390fd5b600680546001600160a01b0319166001600160a01b0392909216919091179055565b5f610a4e610f746001611d9e565b5f6105cb600383611dd6565b60408051602081019091525f81525f5f61109a8585611dfa565b5091509150806110bb57505060408051602081019091525f815290506105cb565b506001600160a01b038084165f9081526003909201602090815260409283902083519182019093529154168152905092915050565b60605f6110fd84846111af565b90505f8167ffffffffffffffff81111561111957611119612b63565b604051908082528060200260200182016040528015611142578160200160208202803683370190505b5090505f5b82811015611175578082828151811061116257611162612e53565b6020908102919091010152600101611147565b50610d84858286611baf565b6001600160a01b0382165f9081526002602052604081206105c89083611ed4565b5f6105c860038484611ef5565b6001600160a01b0382165f908152600260205260408120816111d084611a67565b90505f6111dd8383611f1a565b9050856001600160a01b03166111f286610f5c565b6001600160a01b031603610d8457739064fb41156d300196d5eb95e0b3c1f08ebc39a85f5260026020526112335f5160206130635f395f51905f5283611f1a565b61123d9082612e40565b9695505050505050565b61124f611a3b565b6001600160a01b03811661127857604051631e4fbdf760e01b81525f600482015260240161060b565b61128181611b60565b50565b335f908152600260205260408120600401548190819060ff1633906112c8576040516319aaa75960e11b81526001600160a01b03909116600482015260240161060b565b50335f818152600260205260408120906112e28289611ed4565b9050801580156113015750336112f6611066565b6001600160a01b0316145b801561133b5750739064fb41156d300196d5eb95e0b3c1f08ebc39a85f52600260205261133b5f5160206130635f395f51905f5289611ed4565b1561137e575050739064fb41156d300196d5eb95e0b3c1f08ebc39a85f525060026020525f5160206130435f395f51905f525f5160206130635f395f51905f5260015b87816113a95760405163417f3a0560e01b81526001600160a01b03909116600482015260240161060b565b505f6113b76003858b611a14565b90508088808210156113e557604051635087517f60e11b81526004810192909252602482015260440161060b565b508890505f7f00000000000000000000000000000000000000000000000000000000000000006114158385612e67565b109050801561148b57611428858c611f35565b8b90611453576040516304ca9e7360e31b81526001600160a01b03909116600482015260240161060b565b506001600160a01b038b165f9081526003808701602052604090912080546001600160a01b031916905583925061148b90878d611f96565b6114986003878d85611fa2565b5f6114ab6006546001600160a01b031690565b60405163625f849b60e11b8152336004820152602481018590526001600160a01b03919091169063c4bf0936906044016020604051808303815f875af11580156114f7573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061151b9190612e15565b92995090975090955050505050505b9250925092565b5f5f5f5f61153f8686611dfa565b909450925090508261155a575f5f5f9350935093505061152a565b6001600160a01b039485165f90815260039190910160205260409020549093169460019450915050565b5f6115976006546001600160a01b031690565b604051634527d8b560e11b8152600481018490529091506001600160a01b03821690638a4fb16a90602401608060405180830381865afa1580156115dd573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116019190612e8a565b6060015161165f5760405163f752f8b560e01b8152600481018390526001600160a01b0382169063f752f8b5906024015f604051808303815f87803b158015611648575f5ffd5b505af115801561165a573d5f5f3e3d5ffd5b505050505b5050565b5f6105c860038484611a14565b6001600160a01b0381165f90815260028301602052604081205460ff161561169957505f6105cb565b5f6116a384611d9e565b604080518082018252600181526001600160e01b0383811660208084019182526001600160a01b0389165f90815260028b019091529384209251835491516001600160e81b0319909216901515610100600160e81b03191617610100919092160217905590915061171342611a67565b905061174b8161172b866001600160a01b0316612029565b6001600160e01b0385165f90815260018901602052604090209190611a9b565b5061177690508161176e611760856001612efd565b6001600160e01b0316612029565b879190611a9b565b5060019695505050505050565b6001600160a01b038381165f908152602086815260408083208685168452909152902060010154811690821681036117bb5750610b0c565b6001600160a01b038481165f908152602087815260408083208785168085529083529281902060010180546001600160a01b031916878616908117909155815194861685529184019190915290917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f910160405180910390a261184a858284611845898989611a14565b61205c565b5050505050565b8015610b0c576001600160a01b038084165f908152602086815260408083209386168352908390528120805484929061188b908490612e40565b90915550506001600160a01b038084165f908152602083905260408120600101546118ba92889291168561205c565b6118c76001820183612195565b506118d790506002860183612195565b50505050505050565b5f6105cb8260020161220f565b5f6105cb6119036006546001600160a01b031690565b6001600160a01b031663c7f758a8846040518263ffffffff1660e01b815260040161193091815260200190565b6101e060405180830381865afa15801561194c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119709190612f4b565b612228565b5f61197f846118ed565b905061198f60038686848761223e565b6006546001600160a01b031660405163350c7fbd60e11b8152600481018690526024810185905283151560448201526001600160a01b039190911690636a18ff7a906064016020604051808303815f875af11580156119f0573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061165a9190612d3b565b6001600160a01b039182165f90815260209384526040808220929093168152925290205490565b5f546001600160a01b03163314610f935760405163118cdaa760e01b815233600482015260240161060b565b5f63ffffffff821115611a97576040516306dfcc6560e41b8152602060048201526024810183905260440161060b565b5090565b5f80611aa8858585612309565b915091505b935093915050565b6001600160a01b0381165f9081526020839052604081206105c89060010161220f565b81545f9081611ae98585838561244d565b90508015611b2357611b0d85611b00600184612e67565b5f91825260209091200190565b54600160201b90046001600160e01b0316610d84565b505f949350505050565b5f6001600160a01b03821115611a97576040516306dfcc6560e41b815260a060048201526024810183905260440161060b565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60605f835167ffffffffffffffff811115611bcc57611bcc612b63565b604051908082528060200260200182016040528015611bf5578160200160208202803683370190505b506001600160a01b0386165f818152600260205260408120739064fb41156d300196d5eb95e0b3c1f08ebc39a882529293505f5160206130635f395f51905f5291611c3f87610f5c565b6001600160a01b03161490505f611c5587611a67565b90505f611c628583611f1a565b90505f83611c70575f611c7a565b611c7a8584611f1a565b90505f611c878284612e40565b90505f5b8b51811015611d8d575f8c8281518110611ca757611ca7612e53565b6020026020010151905082811081849091611cde57604051635d4bf88360e01b81526004810192909252602482015260440161060b565b505084811015611d2a57611cf38982886124a8565b8a8381518110611d0557611d05612e53565b60200260200101906001600160a01b031690816001600160a01b031681525050611d84565b8615611d4557611cf3611d3d8683612e67565b8990886124a8565b604051633d6a4a3b60e21b815260206004820152601360248201527229a427aaa622102722ab22a9102420a82822a760691b604482015260640161060b565b50600101611c8b565b50969b9a5050505050505050505050565b80545f908015611dcd57611db783611b00600184612e67565b54600160201b90046001600160e01b0316611dcf565b5f5b9392505050565b6001600160a01b0381165f9081526001808401602052604082206105c8910161220f565b6001600160a01b0382165f9081526002602052604081208190819081611e208287611ed4565b90508681158015611e495750876001600160a01b0316611e3e611066565b6001600160a01b0316145b8015611e835750739064fb41156d300196d5eb95e0b3c1f08ebc39a85f526002602052611e835f5160206130635f395f51905f5288611ed4565b15611ec6575050739064fb41156d300196d5eb95e0b3c1f08ebc39a85f525060026020525f5160206130635f395f51905f5260015f5160206130435f395f51905f525b919450925090509250925092565b6001600160a01b03165f908152600291909101602052604090205460ff1690565b6001600160a01b0382165f908152600180850160205260408220610e459101836124d7565b5f611f258383611ad8565b6001600160e01b03169392505050565b6001600160a01b0381165f908152600283016020908152604080832081518083019092525460ff811615158083526101009091046001600160e01b03169282019290925290611f87575f9150506105cb565b610e4584826020015185612511565b610f178383835f611783565b8015610b0c576001600160a01b038084165f9081526020868152604080832093861683529083905281208054849290611fdc908490612e67565b90915550506001600160a01b038084165f9081526020839052604081206001015461200c9288929116908561205c565b6120196001820183612735565b506118d790506002860183612735565b5f6001600160e01b03821115611a97576040516306dfcc6560e41b815260e060048201526024810183905260440161060b565b816001600160a01b0316836001600160a01b0316148061207a575080155b610b0c576001600160a01b03831615612107576001600160a01b0383165f90815260018086016020526040822082916120b4910184612735565b91509150846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72483836040516120fc929190918252602082015260400190565b60405180910390a250505b6001600160a01b03821615610b0c576001600160a01b0382165f908152600180860160205260408220829161213d910184612195565b91509150836001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051612185929190918252602082015260400190565b60405180910390a2505050505050565b5f5f5f6121a185611d9e565b9050835f036121bd576001600160e01b03169150819050612208565b5f6121c785612029565b90506121e76121d542611a67565b6121df8385612efd565b889190611a9b565b508290506121f58282612efd565b6001600160e01b03918216955016925050505b9250929050565b5f61221982611d9e565b6001600160e01b031692915050565b5f6105cb8260800151835f0151602001516127e2565b5f61224a868685611ef5565b6001600160a01b0386165f908152600188016020908152604080832088845290915290205490915061227c8382612e40565b821015868361228b8685612e40565b9091926122c45760405163dd99c2ab60e01b81526001600160a01b0390931660048401526024830191909152604482015260640161060b565b5050506001600160a01b0386165f9081526001880160209081526040808320888452909152812080548592906122fb908490612e40565b909155505050505050505050565b82545f90819080156123f5575f61232587611b00600185612e67565b805490915063ffffffff80821691600160201b90046001600160e01b031690881682111561236657604051632520601d60e01b815260040160405180910390fd5b8763ffffffff168263ffffffff160361239957825463ffffffff16600160201b6001600160e01b038916021783556123e7565b6040805180820190915263ffffffff808a1682526001600160e01b03808a1660208085019182528d54600181018f555f8f81529190912094519151909216600160201b029216919091179101555b9450859350611aad92505050565b50506040805180820190915263ffffffff80851682526001600160e01b0380851660208085019182528854600181018a555f8a815291822095519251909316600160201b029190931617920191909155905081611aad565b5f5b818310156124a0575f61246284846127ed565b5f8781526020902090915063ffffffff86169082015463ffffffff16111561248c5780925061249a565b612497816001612e40565b93505b5061244f565b509392505050565b5f828152600184016020526040812081906124c39084612807565b9050610d84816001600160e01b0316611b2d565b5f6124e182421190565b6124fe576040516334dcb7d760e21b815260040160405180910390fd5b611f2561250a83611a67565b8490612807565b5f8061251c85611d9e565b9050806001600160e01b0316846001600160e01b03161061256357604051636bc4db8d60e11b81526001600160e01b0380861660048301528216602482015260440161060b565b6040805180820182525f80825260208083018281526001600160a01b038816835260028a019091529281209151825493516001600160e81b0319909416901515610100600160e81b031916176101006001600160e01b03909416939093029290921790556125d2600183612ff0565b90505f6125fc610f74886001015f856001600160e01b031681526020019081526020015f20611d9e565b90505f61260842611a67565b9050866001600160e01b0316836001600160e01b03160361264e576001600160e01b0387165f9081526001890160205260408120612647918390611a9b565b5050612707565b6040518060400160405280600115158152602001612674896001600160e01b0316612029565b6001600160e01b039081169091526001600160a01b0384165f81815260028c016020908152604090912084518154959092015190931661010002610100600160e81b0319911515919091166001600160e81b0319909416939093179290921790556127049082906126e490612029565b6001600160e01b038a165f90815260018c01602052604090209190611a9b565b50505b6127258161271d856001600160e01b0316612029565b8a9190611a9b565b5060019998505050505050505050565b5f5f5f61274185611d9e565b9050835f0361275d576001600160e01b03169150819050612208565b5f61276785612029565b90503382826001600160e01b0380821690831610156127bb5760405163b3d9568f60e01b81526001600160a01b0390931660048401526001600160e01b03918216602484015216604482015260640161060b565b5050506127d46127ca42611a67565b6121df8385612ff0565b508290506121f58282612ff0565b5f6105c88284612e40565b5f6127fb6002848418613023565b6105c890848416612e40565b81545f9081816005811115612861575f612820846128a8565b61282a9085612e67565b5f8881526020902090915081015463ffffffff90811690871610156128515780915061285f565b61285c816001612e40565b92505b505b5f61286e8787858561244d565b9050801561289b5761288587611b00600184612e67565b54600160201b90046001600160e01b031661289d565b5f5b979650505050505050565b5f600182116128b5575090565b816001600160801b82106128ce5760809190911c9060401b5b6801000000000000000082106128e95760409190911c9060201b5b600160201b82106128ff5760209190911c9060101b5b6201000082106129145760109190911c9060081b5b61010082106129285760089190911c9060041b5b6010821061293b5760049190911c9060021b5b600482106129475760011b5b600302600190811c9081858161295f5761295f61300f565b048201901c905060018185816129775761297761300f565b048201901c9050600181858161298f5761298f61300f565b048201901c905060018185816129a7576129a761300f565b048201901c905060018185816129bf576129bf61300f565b048201901c905060018185816129d7576129d761300f565b048201901c90506129f68185816129f0576129f061300f565b04821190565b90039392505050565b6001600160a01b0381168114611281575f5ffd5b5f5f60408385031215612a24575f5ffd5b8235612a2f816129ff565b91506020830135612a3f816129ff565b809150509250929050565b8015158114611281575f5ffd5b5f5f5f60608486031215612a69575f5ffd5b8335612a74816129ff565b92506020840135612a84816129ff565b91506040840135612a9481612a4a565b809150509250925092565b5f5f5f60608486031215612ab1575f5ffd5b8335612abc816129ff565b92506020840135612acc816129ff565b91506040840135612a94816129ff565b5f5f5f60608486031215612aee575f5ffd5b83359250602084013591506040840135612a9481612a4a565b5f60208284031215612b17575f5ffd5b81356105c8816129ff565b5f5f60408385031215612b33575f5ffd5b8235612b3e816129ff565b946020939093013593505050565b5f60208284031215612b5c575f5ffd5b5035919050565b634e487b7160e01b5f52604160045260245ffd5b604051610100810167ffffffffffffffff81118282101715612b9b57612b9b612b63565b60405290565b6040805190810167ffffffffffffffff81118282101715612b9b57612b9b612b63565b604051601f8201601f1916810167ffffffffffffffff81118282101715612bed57612bed612b63565b604052919050565b5f5f5f60608486031215612c07575f5ffd5b8335612c12816129ff565b925060208401359150604084013567ffffffffffffffff811115612c34575f5ffd5b8401601f81018613612c44575f5ffd5b803567ffffffffffffffff811115612c5e57612c5e612b63565b8060051b612c6e60208201612bc4565b91825260208184018101929081019089841115612c89575f5ffd5b6020850194505b83851015612caf57843580835260209586019590935090910190612c90565b80955050505050509250925092565b602080825282518282018190525f918401906040840190835b81811015612cfe5783516001600160a01b0316835260209384019390920191600101612cd7565b509095945050505050565b5f5f5f60608486031215612d1b575f5ffd5b8335612d26816129ff565b95602085013595506040909401359392505050565b5f60208284031215612d4b575f5ffd5b81516105c881612a4a565b5f818303610120811215612d68575f5ffd5b612d70612b77565b91506040811215612d7f575f5ffd5b50612d88612ba1565b825181526020808401518183015290825260408084015191830191909152606080840151918301919091526080808401519183019190915260a0808401519183019190915260c0808401519183019190915260e080840151918301919091526101009092015191810191909152919050565b5f6101208284031215612e0b575f5ffd5b6105c88383612d56565b5f60208284031215612e25575f5ffd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156105cb576105cb612e2c565b634e487b7160e01b5f52603260045260245ffd5b818103818111156105cb576105cb612e2c565b8051612e85816129ff565b919050565b5f6080828403128015612e9b575f5ffd5b506040516080810167ffffffffffffffff81118282101715612ebf57612ebf612b63565b60409081528351825260208085015190830152830151612ede816129ff565b60408201526060830151612ef181612a4a565b60608201529392505050565b6001600160e01b0381811683821601908111156105cb576105cb612e2c565b5f60408284031215612f2c575f5ffd5b612f34612ba1565b825181526020928301519281019290925250919050565b5f6101e0828403128015612f5d575f5ffd5b5060405160c0810167ffffffffffffffff81118282101715612f8157612f81612b63565b604052612f8e8484612d56565b815261012083015160098110612fa2575f5ffd5b6020820152612fb46101408401612e7a565b6040820152612fc66101608401612e7a565b60608201526101808301516080820152612fe4846101a08501612f1c565b60a08201529392505050565b6001600160e01b0382811682821603908111156105cb576105cb612e2c565b634e487b7160e01b5f52601260045260245ffd5b5f8261303d57634e487b7160e01b5f52601260045260245ffd5b50049056fe213a5ea1b59775ba625834509064fb41156d300196d5eb95e0b3c1f08ebc39a845cd5d767d29724415e078f0a4044a337b39cef8f25b5496e43151dbca56c517a264697066735822122097506115d56b5cadf98b5f22fe92cf1ac64ebe91a6fdbbbdfb0a324a1780e49a64736f6c634300081b0033";
4
+ export declare const GSEBytecode = "0x60e06040525f60019081556002805460ff19169091179055348015610022575f5ffd5b50604051613f39380380613f3983398101604081905261004191610149565b83838383836001600160a01b03811661007357604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b61007c816100e3565b506001600160a01b0390921660c05260805260a0525050739064fb41156d300196d5eb95e0b3c1f08ebc39a85f5250506004602052507ff5788997a5bc14390fe0bca3ad9ff7c3affbe9f3eb2888f771678d1889eb39b5805460ff1916600117905561018e565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381168114610146575f5ffd5b50565b5f5f5f5f6080858703121561015c575f5ffd5b845161016781610132565b602086015190945061017881610132565b6040860151606090960151949790965092505050565b60805160a05160c051613d426101f75f395f81816103510152818161085a015281816108f301528181611098015261116601525f8181610548015261171801525f81816104e801528181611033015281816110720152818161113d01526111e80152613d425ff3fe608060405234801561000f575f5ffd5b5060043610610233575f3560e01c8063715018a611610135578063bd76784b116100b4578063ec6e69db11610079578063ec6e69db14610625578063f2fde38b14610638578063f3fef3a31461064b578063f752f8b514610679578063f7888aec1461068c575f5ffd5b8063bd76784b1461051d578063d3da927f14610530578063dbc8575214610543578063e48a5f7b1461056a578063eaeded5f14610612575f5ffd5b8063ab033ea9116100fa578063ab033ea9146104bb578063b2865a0d146104ce578063b35186a8146104db578063b4ac4536146104e3578063bb4d44361461050a575f5ffd5b8063715018a61461045d5780638da5cb5b146104655780639796d977146104755780639f6bc70c14610495578063a9cd26c9146104a8575f5ffd5b806352097e4e116101c1578063671431c311610186578063671431c3146103fd5780636902c67b146104105780636a18ff7a146104235780636a91551614610436578063710ca35414610449575f5ffd5b806352097e4e1461037357806352f44a14146103865780635338c758146103c457806359264f00146103d757806362400e4c146103ea575f5ffd5b8063289b3c0d11610207578063289b3c0d146102f35780632e341ce01461030457806330eb4bdd146103195780633fd20fe11461032c5780634800d97f1461034c575f5ffd5b806215eaaa146102375780630f9f54101461026757806311d66fee146102bd57806318160ddd146102dd575b5f5ffd5b61024a610245366004613491565b61069f565b6040516001600160a01b0390911681526020015b60405180910390f35b61024a6102753660046134c8565b6001600160a01b039081165f90815260056020908152604091829020825160808101845281549381019384526001820154606082015292835260020154909216910181905290565b6102d06102cb3660046135c7565b6106d5565b60405161025e91906135e1565b6102e56106f1565b60405190815260200161025e565b600a546001600160a01b031661024a565b6103176103123660046135f8565b610701565b005b6102e5610327366004613491565b6107b8565b61033f61033a366004613663565b610a33565b60405161025e91906136f8565b61024a7f000000000000000000000000000000000000000000000000000000000000000081565b61031761038136600461376c565b610b2a565b6103b46103943660046134c8565b6001600160a01b03165f9081526004602052604090206003015460ff1690565b604051901515815260200161025e565b6102e56103d2366004613491565b610b8f565b6103176103e53660046134c8565b610bea565b6102e56103f83660046134c8565b610cb9565b6102e561040b366004613797565b610cc5565b61031761041e3660046137c1565b610ced565b61031761043136600461376c565b61129c565b61024a61044436600461386e565b6112a8565b61024a5f516020613ced5f395f51905f5281565b6103176112ce565b5f546001600160a01b031661024a565b610488610483366004613885565b6112e1565b60405161025e9190613933565b5f516020613ced5f395f51905f5261024a565b61024a6104b6366004613973565b6112ee565b6103176104c93660046134c8565b61135f565b6002546103b49060ff1681565b61024a6113b2565b6102e57f000000000000000000000000000000000000000000000000000000000000000081565b6102e56105183660046134c8565b6113c0565b61048861052b366004613797565b6113cc565b6103b461053e366004613491565b61145d565b6102e57f000000000000000000000000000000000000000000000000000000000000000081565b6105e56105783660046134c8565b604080516080810182525f9181018281526060820183905281526020810191909152506001600160a01b039081165f908152600560209081526040918290208251608081018452815493810193845260018201546060820152928352600201549092169181019190915290565b6040805182518051825260209081015181830152909201516001600160a01b03169082015260600161025e565b6102e5610620366004613797565b611490565b6102e5610633366004613797565b61149d565b6103176106463660046134c8565b611548565b61065e610659366004613797565b611585565b6040805193845291151560208401529082015260600161025e565b61031761068736600461386e565b611832565b6102e561069a366004613491565b611911565b6001600160a01b038083165f90815260076020908152604080832084861684529091528120600101549091165b90505b92915050565b604080518082019091525f80825260208201526106cf8261191e565b5f6106fc6007611990565b905090565b6001600160a01b0383165f9081526004602052604090206003015460ff16839061074f576040516330d32d8760e21b81526001600160a01b0390911660048201526024015b60405180910390fd5b506001600160a01b038083165f908152600560205260409020600201541680338082146107a257604051630257d8d760e41b81526001600160a01b03928316600482015291166024820152604401610746565b506107b29050600785858561199d565b50505050565b5f5f6107cc600a546001600160a01b031690565b90505f816001600160a01b0316636bd50cef6040518163ffffffff1660e01b815260040161012060405180830381865afa15801561080c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108309190613a49565b51602001516040516323b872dd60e01b8152336004820152306024820152604481018290529091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906323b872dd906064016020604051808303815f875af11580156108a8573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108cc9190613a64565b5060405163095ea7b360e01b81526001600160a01b038381166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b3906044016020604051808303815f875af1158015610939573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061095d9190613a64565b506040516311f9fbc960e21b8152306004820152602481018290526001600160a01b038316906347e7ef24906044015f604051808303815f87803b1580156109a3575f5ffd5b505af11580156109b5573d5f5f3e3d5ffd5b50506040516330eb4bdd60e01b81526001600160a01b0388811660048301528781166024830152851692506330eb4bdd91506044016020604051808303815f875af1158015610a06573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a2a9190613a7f565b95945050505050565b60605f825167ffffffffffffffff811115610a5057610a506134e3565b604051908082528060200260200182016040528015610a9457816020015b604080518082019091525f8082526020820152815260200190600190039081610a6e5790505b5090505f5b8351811015610b235760055f858381518110610ab757610ab7613a96565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f016040518060400160405290815f8201548152602001600182015481525050828281518110610b1057610b10613a96565b6020908102919091010152600101610a99565b5092915050565b5f610b3484611a6b565b9050610b3f816112a8565b33906001600160a01b03168114610b75576040516305df8ea560e31b81526001600160a01b039091166004820152602401610746565b506107b25f516020613ced5f395f51905f52858585611af3565b5f80610b9d60078585611b92565b9050836001600160a01b0316610bb16113b2565b6001600160a01b0316036106cc57610bd860075f516020613ced5f395f51905f5285611b92565b610be29082613abe565b949350505050565b610bf2611bb9565b806001600160a01b038116610c26576040516327bac29760e21b81526001600160a01b039091166004820152602401610746565b506001600160a01b0381165f90815260046020526040902060030154819060ff1615610c705760405162cea8b160e11b81526001600160a01b039091166004820152602401610746565b506001600160a01b0381165f908152600460205260409020600301805460ff19166001179055610cb4610ca242611be5565b6003906001600160a01b038416611c19565b505050565b5f6106cf600783611c33565b6001600160a01b0382165f9081526008602090815260408083208484529091528120546106cc565b335f8181526004602052604090206003015460ff16610d2b576040516319aaa75960e11b81526001600160a01b039091166004820152602401610746565b505f33610d366113b2565b6001600160a01b0316149050811580610d4c5750805b3390610d77576040516305df8ea560e31b81526001600160a01b039091166004820152602401610746565b50610d82338861145d565b1533889091610db757604051630d75cd7760e11b81526001600160a01b03928316600482015291166024820152604401610746565b5050801580610dda5750610dd85f516020613ced5f395f51905f528861145d565b155b5f516020613ced5f395f51905f52908890610e1b57604051630d75cd7760e11b81526001600160a01b03928316600482015291166024820152604401610746565b50505f82610e295733610e38565b5f516020613ced5f395f51905f525b6001600160a01b0381165f908152600460205260409020909150610e5c9089611c56565b81899091610e9057604051630d75cd7760e11b81526001600160a01b03928316600482015291166024820152604401610746565b505060025460ff1615610fc6576001600160a01b0388165f908152600560209081526040918290208251808401909352805480845260019091015491830191909152158015610ee157506020810151155b815160208301519091610f10576040516312d6323b60e11b815260048101929092526024820152604401610746565b50505f875f01518860200151604051602001610f36929190918252602082015260400190565b60408051601f1981840301815291815281516020928301205f8181526006909352912054909150819060ff1615610f8357604051636ab4baeb60e11b815260040161074691815260200190565b50610f8f888888611d69565b610fac5760405163df4ff27b60e01b815260040160405180910390fd5b5f908152600660205260409020805460ff19166001179055505b6040805180820182528781526001600160a01b0389811660208084019182528c83165f90815260058252949094209251805184559093015160018301559151600290910180546001600160a01b0319169190921617905561102a6007828a8161199d565b6110576007828a7f0000000000000000000000000000000000000000000000000000000000000000611edf565b6040516323b872dd60e01b81523360048201523060248201527f000000000000000000000000000000000000000000000000000000000000000060448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906323b872dd906064016020604051808303815f875af11580156110e6573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061110a9190613a64565b505f61111e600a546001600160a01b031690565b60405163095ea7b360e01b81526001600160a01b0380831660048301527f000000000000000000000000000000000000000000000000000000000000000060248301529192507f00000000000000000000000000000000000000000000000000000000000000009091169063095ea7b3906044016020604051808303815f875af11580156111ae573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111d29190613a64565b506040516311f9fbc960e21b81523060048201527f000000000000000000000000000000000000000000000000000000000000000060248201526001600160a01b038216906347e7ef24906044015f604051808303815f87803b158015611237575f5ffd5b505af1158015611249573d5f5f3e3d5ffd5b50506040516001600160a01b038b81168252808d169350851691507f7986a8ff398d9a6be88df9dfc6e3c9a83e4da5544241aad420d1cf7c214e43459060200160405180910390a3505050505050505050565b610cb433848484611af3565b5f6106cf6112c06112b884611be5565b600390611f6e565b6001600160e01b0316611fc3565b6112d6611bb9565b6112df5f611ff6565b565b6060610be2848385612045565b6040805160018082528183019092525f918291906020808301908036833701905050905083815f8151811061132557611325613a96565b60200260200101818152505061133c858285612045565b5f8151811061134d5761134d613a96565b60200260200101519150509392505050565b611367611bb9565b600a546001600160a01b031615611390576040516296bb9f60e21b815260040160405180910390fd5b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b5f6106fc6112c06003612247565b5f6106cf60078361227e565b60605f6113d9848461149d565b90505f8167ffffffffffffffff8111156113f5576113f56134e3565b60405190808252806020026020018201604052801561141e578160200160208202803683370190505b5090505f5b82811015611451578082828151811061143e5761143e613a96565b6020908102919091010152600101611423565b50610a2a858286612045565b6001600160a01b038281165f9081526004602090815260408083209385168352600290930190529081205460ff166106cc565b5f6106cc600784846122a2565b6001600160a01b0382165f908152600460205260408120816114be84611be5565b90505f6114cb83836122c7565b9050856001600160a01b03166114e0866112a8565b6001600160a01b031603610a2a57739064fb41156d300196d5eb95e0b3c1f08ebc39a85f5260046020526115347ff5788997a5bc14390fe0bca3ad9ff7c3affbe9f3eb2888f771678d1889eb39b2836122c7565b61153e9082613abe565b9695505050505050565b611550611bb9565b6001600160a01b03811661157957604051631e4fbdf760e01b81525f6004820152602401610746565b61158281611ff6565b50565b335f908152600460205260408120600301548190819060ff1633906115c9576040516319aaa75960e11b81526001600160a01b039091166004820152602401610746565b50335f8181526004602090815260408083206001600160a01b038a168452600281019092529091205460ff16801580156116125750336116076113b2565b6001600160a01b0316145b801561165457506001600160a01b0388165f9081527ff5788997a5bc14390fe0bca3ad9ff7c3affbe9f3eb2888f771678d1889eb39b4602052604090205460ff165b156116aa575050739064fb41156d300196d5eb95e0b3c1f08ebc39a85f525060046020525f516020613ced5f395f51905f527ff5788997a5bc14390fe0bca3ad9ff7c3affbe9f3eb2888f771678d1889eb39b260015b87816116d55760405163417f3a0560e01b81526001600160a01b039091166004820152602401610746565b505f6116e36007858b611b92565b905080888082101561171157604051635087517f60e11b815260048101929092526024820152604401610746565b508890505f7f00000000000000000000000000000000000000000000000000000000000000006117418385613ad1565b109050801561178f57611754858c6122e2565b8b9061177f576040516304ca9e7360e31b81526001600160a01b039091166004820152602401610746565b5082915061178f6007878d612343565b61179c6007878d8561234f565b5f6117af600a546001600160a01b031690565b60405163625f849b60e11b8152336004820152602481018590526001600160a01b03919091169063c4bf0936906044016020604051808303815f875af11580156117fb573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061181f9190613a7f565b929c919b50919950975050505050505050565b5f611845600a546001600160a01b031690565b604051634527d8b560e11b8152600481018490529091506001600160a01b03821690638a4fb16a90602401608060405180830381865afa15801561188b573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118af9190613aef565b6060015161190d5760405163f752f8b560e01b8152600481018390526001600160a01b0382169063f752f8b5906024015f604051808303815f87803b1580156118f6575f5ffd5b505af1158015611908573d5f5f3e3d5ffd5b505050505b5050565b5f6106cc60078484611b92565b604080518082019091525f80825260208201525f825f01518360200151604051602001611955929190918252602082015260400190565b604051602081830303815290604052905061198975415a5445435f424c535f504f505f424e3235345f563160501b826123d6565b9392505050565b5f6106cf826002016124df565b6001600160a01b038381165f908152602086815260408083208685168452909152902060010154811690821681036119d557506107b2565b6001600160a01b038481165f908152602087815260408083208785168085529083529281902060010180546001600160a01b031916878616908117909155815194861685529184019190915290917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f910160405180910390a2611a64858284611a5f898989611b92565b6124f8565b5050505050565b5f6106cf611a81600a546001600160a01b031690565b6001600160a01b031663c7f758a8846040518263ffffffff1660e01b8152600401611aae91815260200190565b6101e060405180830381865afa158015611aca573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611aee9190613b73565b612631565b5f611afd84611a6b565b9050611b0d600786868487612647565b600a546001600160a01b031660405163350c7fbd60e11b8152600481018690526024810185905283151560448201526001600160a01b039190911690636a18ff7a906064016020604051808303815f875af1158015611b6e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119089190613a64565b6001600160a01b039182165f90815260209384526040808220929093168152925290205490565b5f546001600160a01b031633146112df5760405163118cdaa760e01b8152336004820152602401610746565b5f63ffffffff821115611c15576040516306dfcc6560e41b81526020600482015260248101839052604401610746565b5090565b5f80611c26858585612712565b915091505b935093915050565b6001600160a01b0381165f9081526020839052604081206106cc906001016124df565b6001600160a01b0381165f90815260028301602052604081205460ff1615611c7f57505f6106cf565b5f611c8984612247565b604080518082018252600181526001600160e01b0383811660208084019182526001600160a01b0389165f90815260028b019091529384209251835491516001600160e81b0319909216901515610100600160e81b031916176101009190921602179055909150611cf942611be5565b9050611d3181611d11866001600160a01b0316612856565b6001600160e01b0385165f90815260018901602052604090209190611c19565b50611d5c905081611d54611d46856001613c18565b6001600160e01b0316612856565b879190611c19565b5060019695505050505050565b5f611d7384612889565b845160208601519091611da257604051634a7e912d60e01b815260048101929092526024820152604401610746565b5050611dad836128e3565b835f015184602001518560400151866060015190919293611df75760405163cd79c2ab60e01b81526004810194909452602484019290925260448301526064820152608401610746565b50505050611e0482612889565b825160208401519091611e3357604051634a7e912d60e01b815260048101929092526024820152604401610746565b50505f611e3f8561191e565b90505f611e4d868686612a39565b9050805f03611e6f57604051631262b41360e01b815260040160405180910390fd5b5f611e8385611e7e8985612ad9565b612b40565b90505f611ebe84611e7e611eb86040805180820182525f80825260209182015281518083019092526001825260029082015290565b86612ad9565b9050611ed382611ecc612bab565b838a612c78565b98975050505050505050565b80156107b2576001600160a01b038084165f9081526020868152604080832093861683529083905281208054849290611f19908490613abe565b90915550506001600160a01b038084165f90815260208390526040812060010154611f489288929116856124f8565b611f556001820183612d35565b50611f6590506002860183612d35565b50505050505050565b81545f9081611f7f85858385612daf565b90508015611fb957611fa385611f96600184613ad1565b5f91825260209091200190565b54600160201b90046001600160e01b0316610a2a565b505f949350505050565b5f6001600160a01b03821115611c15576040516306dfcc6560e41b815260a0600482015260248101839052604401610746565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60605f835167ffffffffffffffff811115612062576120626134e3565b60405190808252806020026020018201604052801561208b578160200160208202803683370190505b506001600160a01b0386165f818152600460205260408120739064fb41156d300196d5eb95e0b3c1f08ebc39a882529293507ff5788997a5bc14390fe0bca3ad9ff7c3affbe9f3eb2888f771678d1889eb39b2916120e8876112a8565b6001600160a01b03161490505f6120fe87611be5565b90505f61210b85836122c7565b90505f83612119575f612123565b61212385846122c7565b90505f6121308284613abe565b90505f5b8b51811015612236575f8c828151811061215057612150613a96565b602002602001015190508281108184909161218757604051635d4bf88360e01b815260048101929092526024820152604401610746565b5050848110156121d35761219c898288612e0a565b8a83815181106121ae576121ae613a96565b60200260200101906001600160a01b031690816001600160a01b03168152505061222d565b86156121ee5761219c6121e68683613ad1565b899088612e0a565b604051633d6a4a3b60e21b815260206004820152601360248201527229a427aaa622102722ab22a9102420a82822a760691b6044820152606401610746565b50600101612134565b50969b9a5050505050505050505050565b80545f9080156122765761226083611f96600184613ad1565b54600160201b90046001600160e01b0316611989565b5f9392505050565b6001600160a01b0381165f9081526001808401602052604082206106cc91016124df565b6001600160a01b0382165f908152600180850160205260408220610be2910183612e39565b5f6122d28383611f6e565b6001600160e01b03169392505050565b6001600160a01b0381165f908152600283016020908152604080832081518083019092525460ff811615158083526101009091046001600160e01b03169282019290925290612334575f9150506106cf565b610be284826020015185612e73565b610cb48383835f61199d565b80156107b2576001600160a01b038084165f9081526020868152604080832093861683529083905281208054849290612389908490613ad1565b90915550506001600160a01b038084165f908152602083905260408120600101546123b9928892911690856124f8565b6123c66001820183613097565b50611f6590506002860183613097565b604080518082019091525f80825260208201525f83836040516020016123fd929190613c37565b60408051601f19818403018152919052805160209091012090505f61242f5f516020613ccd5f395f51905f5283613c87565b90505f805b5f516020613ccd5f395f51905f5283840991505f516020613ccd5f395f51905f5283830991505f516020613ccd5f395f51905f5260038308915061247782613144565b9092509050801561249e5760405180604001604052808481526020018381525094506124b7565b5f516020613ccd5f395f51905f52600184089250612434565b806124d557604051633d7f3d1d60e21b815260040160405180910390fd5b5050505092915050565b5f6124e982612247565b6001600160e01b031692915050565b816001600160a01b0316836001600160a01b03161480612516575080155b6107b2576001600160a01b038316156125a3576001600160a01b0383165f9081526001808601602052604082208291612550910184613097565b91509150846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051612598929190918252602082015260400190565b60405180910390a250505b6001600160a01b038216156107b2576001600160a01b0382165f90815260018086016020526040822082916125d9910184612d35565b91509150836001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051612621929190918252602082015260400190565b60405180910390a2505050505050565b5f6106cf8260800151835f0151602001516131e7565b5f6126538686856122a2565b6001600160a01b0386165f90815260018801602090815260408083208884529091529020549091506126858382613abe565b82101586836126948685613abe565b9091926126cd5760405163dd99c2ab60e01b81526001600160a01b03909316600484015260248301919091526044820152606401610746565b5050506001600160a01b0386165f908152600188016020908152604080832088845290915281208054859290612704908490613abe565b909155505050505050505050565b82545f90819080156127fe575f61272e87611f96600185613ad1565b805490915063ffffffff80821691600160201b90046001600160e01b031690881682111561276f57604051632520601d60e01b815260040160405180910390fd5b8763ffffffff168263ffffffff16036127a257825463ffffffff16600160201b6001600160e01b038916021783556127f0565b6040805180820190915263ffffffff808a1682526001600160e01b03808a1660208085019182528d54600181018f555f8f81529190912094519151909216600160201b029216919091179101555b9450859350611c2b92505050565b50506040805180820190915263ffffffff80851682526001600160e01b0380851660208085019182528854600181018a555f8a815291822095519251909316600160201b029190931617920191909155905081611c2b565b5f6001600160e01b03821115611c15576040516306dfcc6560e41b815260e0600482015260248101839052604401610746565b5f815160208301515f516020613ccd5f395f51905f528283095f516020613ccd5f395f51905f5283820990505f516020613ccd5f395f51905f526003820890505f516020613ccd5f395f51905f5282830914949350505050565b5f815160208301515f516020613ccd5f395f51905f528283095f516020613ccd5f395f51905f5282830981828301015f516020613ccd5f395f51905f5282838401085f516020613ccd5f395f51905f5286825f516020613ccd5f395f51905f52038601099550505f516020613ccd5f395f51905f5284835f516020613ccd5f395f51905f520383010993505050505f516020613ccd5f395f51905f527f2b149d40ceb8aaae81be18991be06ac3b5b4c5e559dbefa33267e6dc24a138e5830891505f516020613ccd5f395f51905f527e9713b03af0fed4cd2cafadeed8fdf4a74fa084e52d1852e4a2bd0685c315d282089050604084015160608501515f516020613ccd5f395f51905f5280825f516020613ccd5f395f51905f520384085f516020613ccd5f395f51905f52838508095f516020613ccd5f395f51905f52828460011b0994149290931491909116949350505050565b82516020808501518451858301516040808801516060808a015189518a8901518551808b019b909b528a86019890985291890195909552608088019390935260a087015260c086019290925260e0850152610100808501929092528051808503909201825261012090930190925281519101205f90610be2907f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000190613c87565b604080518082019091525f8082526020820152612af4613404565b835181526020808501519082015260408082018490525f908360608460076107d05a03fa905080612b3857604051635d90883360e11b815260040160405180910390fd5b505092915050565b604080518082019091525f8082526020820152612b5b613422565b835181526020808501518183015283516040808401919091529084015160608301525f908360808460066107d05a03fa905080612b3857604051635d3761b560e11b815260040160405180910390fd5b612bd260405180608001604052805f81526020015f81526020015f81526020015f81525090565b60405180608001604052807f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed81526020017f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c281526020017f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d81526020017f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec815250905090565b5f612c81613440565b85518152602080870151818301528581015160408084019190915286516060808501919091528088015160808501528188015160a0850152865160c08501528683015160e085015291850151610100840152845161012084015290840151610140830152830151610160820152612cf661345f565b5f6020826101808560086107d05a03fa905080612d265760405163a158f26960e01b815260040160405180910390fd5b50516001149695505050505050565b5f5f5f612d4185612247565b9050835f03612d5d576001600160e01b03169150819050612da8565b5f612d6785612856565b9050612d87612d7542611be5565b612d7f8385613c18565b889190611c19565b50829050612d958282613c18565b6001600160e01b03918216955016925050505b9250929050565b5f5b81831015612e02575f612dc484846131f2565b5f8781526020902090915063ffffffff86169082015463ffffffff161115612dee57809250612dfc565b612df9816001613abe565b93505b50612db1565b509392505050565b5f82815260018401602052604081208190612e25908461320c565b9050610a2a816001600160e01b0316611fc3565b5f612e4382421190565b612e60576040516334dcb7d760e21b815260040160405180910390fd5b6122d2612e6c83611be5565b849061320c565b5f80612e7e85612247565b9050806001600160e01b0316846001600160e01b031610612ec557604051636bc4db8d60e11b81526001600160e01b03808616600483015282166024820152604401610746565b6040805180820182525f80825260208083018281526001600160a01b038816835260028a019091529281209151825493516001600160e81b0319909416901515610100600160e81b031916176101006001600160e01b0390941693909302929092179055612f34600183613c9a565b90505f612f5e6112c0886001015f856001600160e01b031681526020019081526020015f20612247565b90505f612f6a42611be5565b9050866001600160e01b0316836001600160e01b031603612fb0576001600160e01b0387165f9081526001890160205260408120612fa9918390611c19565b5050613069565b6040518060400160405280600115158152602001612fd6896001600160e01b0316612856565b6001600160e01b039081169091526001600160a01b0384165f81815260028c016020908152604090912084518154959092015190931661010002610100600160e81b0319911515919091166001600160e81b03199094169390931792909217905561306690829061304690612856565b6001600160e01b038a165f90815260018c01602052604090209190611c19565b50505b6130878161307f856001600160e01b0316612856565b8a9190611c19565b5060019998505050505050505050565b5f5f5f6130a385612247565b9050835f036130bf576001600160e01b03169150819050612da8565b5f6130c985612856565b90503382826001600160e01b03808216908316101561311d5760405163b3d9568f60e01b81526001600160a01b0390931660048401526001600160e01b039182166024840152166044820152606401610746565b50505061313661312c42611be5565b612d7f8385613c9a565b50829050612d958282613c9a565b5f5f5f60405160208152602080820152602060408201528460608201527f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f5260808201525f516020613ccd5f395f51905f5260a082015260208160c08360056107d05a03fa9051935090505f516020613ccd5f395f51905f5283800984149150806131e157604051634ccc085960e11b815260040160405180910390fd5b50915091565b5f6106cc8284613abe565b5f6132006002848418613cb9565b6106cc90848416613abe565b81545f9081816005811115613266575f613225846132ad565b61322f9085613ad1565b5f8881526020902090915081015463ffffffff908116908716101561325657809150613264565b613261816001613abe565b92505b505b5f61327387878585612daf565b905080156132a05761328a87611f96600184613ad1565b54600160201b90046001600160e01b03166132a2565b5f5b979650505050505050565b5f600182116132ba575090565b816001600160801b82106132d35760809190911c9060401b5b6801000000000000000082106132ee5760409190911c9060201b5b600160201b82106133045760209190911c9060101b5b6201000082106133195760109190911c9060081b5b610100821061332d5760089190911c9060041b5b601082106133405760049190911c9060021b5b6004821061334c5760011b5b600302600190811c9081858161336457613364613c73565b048201901c9050600181858161337c5761337c613c73565b048201901c9050600181858161339457613394613c73565b048201901c905060018185816133ac576133ac613c73565b048201901c905060018185816133c4576133c4613c73565b048201901c905060018185816133dc576133dc613c73565b048201901c90506133fb8185816133f5576133f5613c73565b04821190565b90039392505050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b6001600160a01b0381168114611582575f5ffd5b5f5f604083850312156134a2575f5ffd5b82356134ad8161347d565b915060208301356134bd8161347d565b809150509250929050565b5f602082840312156134d8575f5ffd5b81356106cc8161347d565b634e487b7160e01b5f52604160045260245ffd5b6040805190810167ffffffffffffffff8111828210171561351a5761351a6134e3565b60405290565b6040516080810167ffffffffffffffff8111828210171561351a5761351a6134e3565b604051610100810167ffffffffffffffff8111828210171561351a5761351a6134e3565b604051601f8201601f1916810167ffffffffffffffff81118282101715613590576135906134e3565b604052919050565b5f604082840312156135a8575f5ffd5b6135b06134f7565b823581526020928301359281019290925250919050565b5f604082840312156135d7575f5ffd5b6106cc8383613598565b8151815260208083015190820152604081016106cf565b5f5f5f6060848603121561360a575f5ffd5b83356136158161347d565b925060208401356136258161347d565b915060408401356136358161347d565b809150509250925092565b5f67ffffffffffffffff821115613659576136596134e3565b5060051b60200190565b5f60208284031215613673575f5ffd5b813567ffffffffffffffff811115613689575f5ffd5b8201601f81018413613699575f5ffd5b80356136ac6136a782613640565b613567565b8082825260208201915060208360051b8501019250868311156136cd575f5ffd5b6020840193505b8284101561153e5783356136e78161347d565b8252602093840193909101906136d4565b602080825282518282018190525f918401906040840190835b818110156137445761372e83855180518252602090810151910152565b6020939093019260409290920191600101613711565b509095945050505050565b8015158114611582575f5ffd5b80356137678161374f565b919050565b5f5f5f6060848603121561377e575f5ffd5b833592506020840135915060408401356136358161374f565b5f5f604083850312156137a8575f5ffd5b82356137b38161347d565b946020939093013593505050565b5f5f5f5f5f5f8688036101608112156137d8575f5ffd5b87356137e38161347d565b965060208801356137f38161347d565b95506138028960408a01613598565b94506080607f1982011215613815575f5ffd5b5061381e613520565b6080880135815260a0880135602082015260c0880135604082015260e088013560608201529250613853886101008901613598565b9150613862610140880161375c565b90509295509295509295565b5f6020828403121561387e575f5ffd5b5035919050565b5f5f5f60608486031215613897575f5ffd5b83356138a28161347d565b925060208401359150604084013567ffffffffffffffff8111156138c4575f5ffd5b8401601f810186136138d4575f5ffd5b80356138e26136a782613640565b8082825260208201915060208360051b850101925088831115613903575f5ffd5b6020840193505b8284101561392557833582526020938401939091019061390a565b809450505050509250925092565b602080825282518282018190525f918401906040840190835b818110156137445783516001600160a01b031683526020938401939092019160010161394c565b5f5f5f60608486031215613985575f5ffd5b83356139908161347d565b95602085013595506040909401359392505050565b5f8183036101208112156139b7575f5ffd5b6139bf613543565b915060408112156139ce575f5ffd5b506139d76134f7565b825181526020808401518183015290825260408084015191830191909152606080840151918301919091526080808401519183019190915260a0808401519183019190915260c0808401519183019190915260e080840151918301919091526101009092015191810191909152919050565b5f6101208284031215613a5a575f5ffd5b6106cc83836139a5565b5f60208284031215613a74575f5ffd5b81516106cc8161374f565b5f60208284031215613a8f575f5ffd5b5051919050565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b808201808211156106cf576106cf613aaa565b818103818111156106cf576106cf613aaa565b80516137678161347d565b5f6080828403128015613b00575f5ffd5b50613b09613520565b82518152602080840151908201526040830151613b258161347d565b60408201526060830151613b388161374f565b60608201529392505050565b5f60408284031215613b54575f5ffd5b613b5c6134f7565b825181526020928301519281019290925250919050565b5f6101e0828403128015613b85575f5ffd5b5060405160c0810167ffffffffffffffff81118282101715613ba957613ba96134e3565b604052613bb684846139a5565b815261012083015160098110613bca575f5ffd5b6020820152613bdc6101408401613ae4565b6040820152613bee6101608401613ae4565b60608201526101808301516080820152613c0c846101a08501613b44565b60a08201529392505050565b6001600160e01b0381811683821601908111156106cf576106cf613aaa565b828152604060208201525f82518060408401528060208501606085015e5f606082850101526060601f19601f8301168401019150509392505050565b634e487b7160e01b5f52601260045260245ffd5b5f82613c9557613c95613c73565b500690565b6001600160e01b0382811682821603908111156106cf576106cf613aaa565b5f82613cc757613cc7613c73565b50049056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47213a5ea1b59775ba625834509064fb41156d300196d5eb95e0b3c1f08ebc39a8a2646970667358221220aeea91f09ef4bbaeef54f7d83e3ebbe2225e370f296fb6f89ea9760b0340bc2964736f6c634300081b0033";
5
5
  /**
6
6
  * GSE link references.
7
7
  */
@@ -1 +1 @@
1
- {"version":3,"file":"GSEBytecode.d.ts","sourceRoot":"","sources":["../src/GSEBytecode.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,WAAW,+zyBAA+zyB,CAAC;AACx1yB;;GAEG;AACH,eAAO,MAAM,iBAAiB,IAAc,CAAC"}
1
+ {"version":3,"file":"GSEBytecode.d.ts","sourceRoot":"","sources":["../src/GSEBytecode.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,WAAW,yn/BAAyn/B,CAAC;AAClp/B;;GAEG;AACH,eAAO,MAAM,iBAAiB,IAAc,CAAC"}