@snowbridge/contract-types 1.0.5 → 1.0.6

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 (54) hide show
  1. package/.turbo/turbo-build.log +10 -0
  2. package/dist/BeefyClient.d.ts +78 -2
  3. package/dist/BeefyClient.d.ts.map +1 -1
  4. package/dist/IGateway.sol/IGatewayV1.d.ts +1 -9
  5. package/dist/IGateway.sol/IGatewayV1.d.ts.map +1 -1
  6. package/dist/ISwapLegacyRouter.d.ts +62 -0
  7. package/dist/ISwapLegacyRouter.d.ts.map +1 -0
  8. package/dist/ISwapLegacyRouter.js +2 -0
  9. package/dist/ISwapQuoter.d.ts +76 -0
  10. package/dist/ISwapQuoter.d.ts.map +1 -0
  11. package/dist/ISwapQuoter.js +2 -0
  12. package/dist/ISwapRouter.d.ts +65 -0
  13. package/dist/ISwapRouter.d.ts.map +1 -0
  14. package/dist/ISwapRouter.js +2 -0
  15. package/dist/SnowbridgeL1Adaptor.d.ts +116 -0
  16. package/dist/SnowbridgeL1Adaptor.d.ts.map +1 -0
  17. package/dist/SnowbridgeL1Adaptor.js +2 -0
  18. package/dist/SnowbridgeL2Adaptor.d.ts +160 -0
  19. package/dist/SnowbridgeL2Adaptor.d.ts.map +1 -0
  20. package/dist/SnowbridgeL2Adaptor.js +2 -0
  21. package/dist/factories/BeefyClient__factory.d.ts +242 -11
  22. package/dist/factories/BeefyClient__factory.d.ts.map +1 -1
  23. package/dist/factories/BeefyClient__factory.js +316 -15
  24. package/dist/factories/IGateway.sol/IGatewayV1__factory.d.ts +0 -20
  25. package/dist/factories/IGateway.sol/IGatewayV1__factory.d.ts.map +1 -1
  26. package/dist/factories/IGateway.sol/IGatewayV1__factory.js +0 -26
  27. package/dist/factories/IGateway.sol/IGatewayV2__factory.d.ts +4 -0
  28. package/dist/factories/IGateway.sol/IGatewayV2__factory.d.ts.map +1 -1
  29. package/dist/factories/IGateway.sol/IGatewayV2__factory.js +5 -0
  30. package/dist/factories/ISwapLegacyRouter__factory.d.ts +51 -0
  31. package/dist/factories/ISwapLegacyRouter__factory.d.ts.map +1 -0
  32. package/dist/factories/ISwapLegacyRouter__factory.js +75 -0
  33. package/dist/factories/ISwapQuoter__factory.d.ts +55 -0
  34. package/dist/factories/ISwapQuoter__factory.d.ts.map +1 -0
  35. package/dist/factories/ISwapQuoter__factory.js +80 -0
  36. package/dist/factories/ISwapRouter__factory.d.ts +55 -0
  37. package/dist/factories/ISwapRouter__factory.d.ts.map +1 -0
  38. package/dist/factories/ISwapRouter__factory.js +80 -0
  39. package/dist/factories/SnowbridgeL1Adaptor__factory.d.ts +177 -0
  40. package/dist/factories/SnowbridgeL1Adaptor__factory.d.ts.map +1 -0
  41. package/dist/factories/SnowbridgeL1Adaptor__factory.js +238 -0
  42. package/dist/factories/SnowbridgeL2Adaptor__factory.d.ts +276 -0
  43. package/dist/factories/SnowbridgeL2Adaptor__factory.d.ts.map +1 -0
  44. package/dist/factories/SnowbridgeL2Adaptor__factory.js +365 -0
  45. package/dist/factories/WETH9__factory.d.ts +1 -1
  46. package/dist/factories/WETH9__factory.d.ts.map +1 -1
  47. package/dist/factories/WETH9__factory.js +1 -1
  48. package/dist/factories/index.d.ts +5 -0
  49. package/dist/factories/index.d.ts.map +1 -1
  50. package/dist/factories/index.js +11 -1
  51. package/dist/index.d.ts +10 -0
  52. package/dist/index.d.ts.map +1 -1
  53. package/dist/index.js +11 -1
  54. package/package.json +9 -9
@@ -24,6 +24,11 @@ const _abi = [
24
24
  type: "uint256",
25
25
  internalType: "uint256",
26
26
  },
27
+ {
28
+ name: "_fiatShamirRequiredSignatures",
29
+ type: "uint256",
30
+ internalType: "uint256",
31
+ },
27
32
  {
28
33
  name: "_initialBeefyBlock",
29
34
  type: "uint64",
@@ -76,6 +81,19 @@ const _abi = [
76
81
  ],
77
82
  stateMutability: "nonpayable",
78
83
  },
84
+ {
85
+ type: "function",
86
+ name: "FIAT_SHAMIR_DOMAIN_ID",
87
+ inputs: [],
88
+ outputs: [
89
+ {
90
+ name: "",
91
+ type: "bytes",
92
+ internalType: "bytes",
93
+ },
94
+ ],
95
+ stateMutability: "view",
96
+ },
79
97
  {
80
98
  type: "function",
81
99
  name: "MMR_ROOT_ID",
@@ -102,6 +120,107 @@ const _abi = [
102
120
  outputs: [],
103
121
  stateMutability: "nonpayable",
104
122
  },
123
+ {
124
+ type: "function",
125
+ name: "computeCommitmentHash",
126
+ inputs: [
127
+ {
128
+ name: "commitment",
129
+ type: "tuple",
130
+ internalType: "struct BeefyClient.Commitment",
131
+ components: [
132
+ {
133
+ name: "blockNumber",
134
+ type: "uint32",
135
+ internalType: "uint32",
136
+ },
137
+ {
138
+ name: "validatorSetID",
139
+ type: "uint64",
140
+ internalType: "uint64",
141
+ },
142
+ {
143
+ name: "payload",
144
+ type: "tuple[]",
145
+ internalType: "struct BeefyClient.PayloadItem[]",
146
+ components: [
147
+ {
148
+ name: "payloadID",
149
+ type: "bytes2",
150
+ internalType: "bytes2",
151
+ },
152
+ {
153
+ name: "data",
154
+ type: "bytes",
155
+ internalType: "bytes",
156
+ },
157
+ ],
158
+ },
159
+ ],
160
+ },
161
+ ],
162
+ outputs: [
163
+ {
164
+ name: "",
165
+ type: "bytes32",
166
+ internalType: "bytes32",
167
+ },
168
+ ],
169
+ stateMutability: "pure",
170
+ },
171
+ {
172
+ type: "function",
173
+ name: "createFiatShamirFinalBitfield",
174
+ inputs: [
175
+ {
176
+ name: "commitment",
177
+ type: "tuple",
178
+ internalType: "struct BeefyClient.Commitment",
179
+ components: [
180
+ {
181
+ name: "blockNumber",
182
+ type: "uint32",
183
+ internalType: "uint32",
184
+ },
185
+ {
186
+ name: "validatorSetID",
187
+ type: "uint64",
188
+ internalType: "uint64",
189
+ },
190
+ {
191
+ name: "payload",
192
+ type: "tuple[]",
193
+ internalType: "struct BeefyClient.PayloadItem[]",
194
+ components: [
195
+ {
196
+ name: "payloadID",
197
+ type: "bytes2",
198
+ internalType: "bytes2",
199
+ },
200
+ {
201
+ name: "data",
202
+ type: "bytes",
203
+ internalType: "bytes",
204
+ },
205
+ ],
206
+ },
207
+ ],
208
+ },
209
+ {
210
+ name: "bitfield",
211
+ type: "uint256[]",
212
+ internalType: "uint256[]",
213
+ },
214
+ ],
215
+ outputs: [
216
+ {
217
+ name: "",
218
+ type: "uint256[]",
219
+ internalType: "uint256[]",
220
+ },
221
+ ],
222
+ stateMutability: "view",
223
+ },
105
224
  {
106
225
  type: "function",
107
226
  name: "createFinalBitfield",
@@ -190,6 +309,19 @@ const _abi = [
190
309
  ],
191
310
  stateMutability: "view",
192
311
  },
312
+ {
313
+ type: "function",
314
+ name: "fiatShamirRequiredSignatures",
315
+ inputs: [],
316
+ outputs: [
317
+ {
318
+ name: "",
319
+ type: "uint256",
320
+ internalType: "uint256",
321
+ },
322
+ ],
323
+ stateMutability: "view",
324
+ },
193
325
  {
194
326
  type: "function",
195
327
  name: "latestBeefyBlock",
@@ -295,6 +427,142 @@ const _abi = [
295
427
  ],
296
428
  stateMutability: "view",
297
429
  },
430
+ {
431
+ type: "function",
432
+ name: "submitFiatShamir",
433
+ inputs: [
434
+ {
435
+ name: "commitment",
436
+ type: "tuple",
437
+ internalType: "struct BeefyClient.Commitment",
438
+ components: [
439
+ {
440
+ name: "blockNumber",
441
+ type: "uint32",
442
+ internalType: "uint32",
443
+ },
444
+ {
445
+ name: "validatorSetID",
446
+ type: "uint64",
447
+ internalType: "uint64",
448
+ },
449
+ {
450
+ name: "payload",
451
+ type: "tuple[]",
452
+ internalType: "struct BeefyClient.PayloadItem[]",
453
+ components: [
454
+ {
455
+ name: "payloadID",
456
+ type: "bytes2",
457
+ internalType: "bytes2",
458
+ },
459
+ {
460
+ name: "data",
461
+ type: "bytes",
462
+ internalType: "bytes",
463
+ },
464
+ ],
465
+ },
466
+ ],
467
+ },
468
+ {
469
+ name: "bitfield",
470
+ type: "uint256[]",
471
+ internalType: "uint256[]",
472
+ },
473
+ {
474
+ name: "proofs",
475
+ type: "tuple[]",
476
+ internalType: "struct BeefyClient.ValidatorProof[]",
477
+ components: [
478
+ {
479
+ name: "v",
480
+ type: "uint8",
481
+ internalType: "uint8",
482
+ },
483
+ {
484
+ name: "r",
485
+ type: "bytes32",
486
+ internalType: "bytes32",
487
+ },
488
+ {
489
+ name: "s",
490
+ type: "bytes32",
491
+ internalType: "bytes32",
492
+ },
493
+ {
494
+ name: "index",
495
+ type: "uint256",
496
+ internalType: "uint256",
497
+ },
498
+ {
499
+ name: "account",
500
+ type: "address",
501
+ internalType: "address",
502
+ },
503
+ {
504
+ name: "proof",
505
+ type: "bytes32[]",
506
+ internalType: "bytes32[]",
507
+ },
508
+ ],
509
+ },
510
+ {
511
+ name: "leaf",
512
+ type: "tuple",
513
+ internalType: "struct BeefyClient.MMRLeaf",
514
+ components: [
515
+ {
516
+ name: "version",
517
+ type: "uint8",
518
+ internalType: "uint8",
519
+ },
520
+ {
521
+ name: "parentNumber",
522
+ type: "uint32",
523
+ internalType: "uint32",
524
+ },
525
+ {
526
+ name: "parentHash",
527
+ type: "bytes32",
528
+ internalType: "bytes32",
529
+ },
530
+ {
531
+ name: "nextAuthoritySetID",
532
+ type: "uint64",
533
+ internalType: "uint64",
534
+ },
535
+ {
536
+ name: "nextAuthoritySetLen",
537
+ type: "uint32",
538
+ internalType: "uint32",
539
+ },
540
+ {
541
+ name: "nextAuthoritySetRoot",
542
+ type: "bytes32",
543
+ internalType: "bytes32",
544
+ },
545
+ {
546
+ name: "parachainHeadsRoot",
547
+ type: "bytes32",
548
+ internalType: "bytes32",
549
+ },
550
+ ],
551
+ },
552
+ {
553
+ name: "leafProof",
554
+ type: "bytes32[]",
555
+ internalType: "bytes32[]",
556
+ },
557
+ {
558
+ name: "leafProofOrder",
559
+ type: "uint256",
560
+ internalType: "uint256",
561
+ },
562
+ ],
563
+ outputs: [],
564
+ stateMutability: "nonpayable",
565
+ },
298
566
  {
299
567
  type: "function",
300
568
  name: "submitFinal",
@@ -621,11 +889,44 @@ const _abi = [
621
889
  ],
622
890
  anonymous: false,
623
891
  },
892
+ {
893
+ type: "event",
894
+ name: "TicketExpired",
895
+ inputs: [],
896
+ anonymous: false,
897
+ },
624
898
  {
625
899
  type: "error",
626
900
  name: "CommitmentNotRelevant",
627
901
  inputs: [],
628
902
  },
903
+ {
904
+ type: "error",
905
+ name: "ECDSAInvalidSignature",
906
+ inputs: [],
907
+ },
908
+ {
909
+ type: "error",
910
+ name: "ECDSAInvalidSignatureLength",
911
+ inputs: [
912
+ {
913
+ name: "length",
914
+ type: "uint256",
915
+ internalType: "uint256",
916
+ },
917
+ ],
918
+ },
919
+ {
920
+ type: "error",
921
+ name: "ECDSAInvalidSignatureS",
922
+ inputs: [
923
+ {
924
+ name: "s",
925
+ type: "bytes32",
926
+ internalType: "bytes32",
927
+ },
928
+ ],
929
+ },
629
930
  {
630
931
  type: "error",
631
932
  name: "IndexOutOfBounds",
@@ -641,6 +942,11 @@ const _abi = [
641
942
  name: "InvalidBitfieldLength",
642
943
  inputs: [],
643
944
  },
945
+ {
946
+ type: "error",
947
+ name: "InvalidBitfieldPadding",
948
+ inputs: [],
949
+ },
644
950
  {
645
951
  type: "error",
646
952
  name: "InvalidCommitment",
@@ -663,27 +969,27 @@ const _abi = [
663
969
  },
664
970
  {
665
971
  type: "error",
666
- name: "InvalidSignature",
972
+ name: "InvalidSamplingParams",
667
973
  inputs: [],
668
974
  },
669
975
  {
670
976
  type: "error",
671
- name: "InvalidTicket",
977
+ name: "InvalidSignature",
672
978
  inputs: [],
673
979
  },
674
980
  {
675
981
  type: "error",
676
- name: "InvalidValidatorProof",
982
+ name: "InvalidTicket",
677
983
  inputs: [],
678
984
  },
679
985
  {
680
986
  type: "error",
681
- name: "InvalidValidatorProofLength",
987
+ name: "InvalidValidatorProof",
682
988
  inputs: [],
683
989
  },
684
990
  {
685
991
  type: "error",
686
- name: "NotEnoughClaims",
992
+ name: "InvalidValidatorProofLength",
687
993
  inputs: [],
688
994
  },
689
995
  {
@@ -706,11 +1012,6 @@ const _abi = [
706
1012
  name: "StaleCommitment",
707
1013
  inputs: [],
708
1014
  },
709
- {
710
- type: "error",
711
- name: "TicketExpired",
712
- inputs: [],
713
- },
714
1015
  {
715
1016
  type: "error",
716
1017
  name: "UnsupportedCompactEncoding",
@@ -722,7 +1023,7 @@ const _abi = [
722
1023
  inputs: [],
723
1024
  },
724
1025
  ];
725
- const _bytecode = "0x60e060405234801561000f575f5ffd5b5060405161373238038061373283398101604081905261002e9161032e565b815161003b9060016103af565b6001600160801b0316815f01516001600160801b0316146100a25760405162461bcd60e51b815260206004820152601a60248201527f696e76616c69642d636f6e7374727563746f722d706172616d73000000000000604482015260640160405180910390fd5b608086905260a085905260c0849052600180546001600160401b0319166001600160401b038516179055815160208301516001600160801b03918216600160801b91831682021760028190556040850151600355610103929190041661018c565b8051805160049161011991839160200190610231565b50602091820151600191909101558151908201516001600160801b03918216600160801b9183168202176006819055604084015160075561015d929190041661018c565b8051805160089161017391839160200190610231565b5060208201518160010155905050505050505050610421565b60408051808201909152606081525f60208201525f6101ac6010846103e8565b156101b85760016101ba565b5f5b60ff166101c86010856103fb565b6101d2919061040e565b90506040518060400160405280826001600160401b038111156101f7576101f761028e565b604051908082528060200260200182016040528015610220578160200160208202803683370190505b508152602001939093525090919050565b828054828255905f5260205f2090810192821561026a579160200282015b8281111561026a57825182559160200191906001019061024f565b5061027692915061027a565b5090565b5b80821115610276575f815560010161027b565b634e487b7160e01b5f52604160045260245ffd5b80516001600160801b03811681146102b8575f5ffd5b919050565b5f606082840312156102cd575f5ffd5b604051606081016001600160401b03811182821017156102fb57634e487b7160e01b5f52604160045260245ffd5b60405290508061030a836102a2565b8152610318602084016102a2565b6020820152604083015160408201525092915050565b5f5f5f5f5f5f6101408789031215610344575f5ffd5b86516020880151604089015160608a015192985090965094506001600160401b0381168114610371575f5ffd5b925061038088608089016102bd565b915061038f8860e089016102bd565b90509295509295509295565b634e487b7160e01b5f52601160045260245ffd5b6001600160801b0381811683821601908111156103ce576103ce61039b565b92915050565b634e487b7160e01b5f52601260045260245ffd5b5f826103f6576103f66103d4565b500690565b5f82610409576104096103d4565b500490565b808201808211156103ce576103ce61039b565b60805160a05160c0516132cb6104675f395f81816102150152610fbb01525f81816102850152610b5401525f818161018c01528181610ae80152610b7a01526132cb5ff3fe608060405234801561000f575f5ffd5b50600436106100f0575f3560e01c806366ae69a011610093578063a77cf3d211610063578063a77cf3d21461026d578063ad209a9b14610280578063bb51f1eb146102a7578063df0dd0d5146102ba575f5ffd5b806366ae69a0146101e35780636f55bd32146102105780638ab81d1314610237578063a401662b1461024a575f5ffd5b806341c9634e116100ce57806341c9634e14610171578063591d99ee146101875780635da57fe9146101ae578063623b223d146101ce575f5ffd5b80630a7c8faa146100f45780632cdea717146101515780633666751314610169575b5f5ffd5b61011b7f6d6800000000000000000000000000000000000000000000000000000000000081565b6040517fffff00000000000000000000000000000000000000000000000000000000000090911681526020015b60405180910390f35b610159610354565b60405161014894939291906129b9565b6101596103eb565b6101795f5481565b604051908152602001610148565b6101797f000000000000000000000000000000000000000000000000000000000000000081565b6101c16101bc366004612a9c565b610480565b6040516101489190612ae4565b6101e16101dc366004612b4c565b6104d1565b005b6001546101f79067ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610148565b6101797f000000000000000000000000000000000000000000000000000000000000000081565b6101c1610245366004612c31565b610934565b61025d610258366004612c79565b610a32565b6040519015158152602001610148565b6101e161027b366004612cc8565b610a41565b6101797f000000000000000000000000000000000000000000000000000000000000000081565b6101e16102b5366004612cdf565b610c38565b6103176102c8366004612cc8565b600a6020525f908152604090208054600182015460029092015467ffffffffffffffff82169263ffffffff6801000000000000000084048116936c010000000000000000000000009004169185565b6040805167ffffffffffffffff96909616865263ffffffff948516602087015292909316918401919091526060830152608082015260a001610148565b6002805460035460408051600480546060602082028401810185529383018181526fffffffffffffffffffffffffffffffff80881698700100000000000000000000000000000000909804169694849284918401828280156103d357602002820191905f5260205f20905b8154815260200190600101908083116103bf575b50505050508152602001600182015481525050905084565b6006805460075460408051600880546060602082028401810185529383018181526fffffffffffffffffffffffffffffffff80881698700100000000000000000000000000000000909804169694849284918401828280156103d357602002820191905f5260205f20908154815260200190600101908083116103bf5750505050508152602001600182015481525050905084565b6060828210156104bc576040517f5c85a0e700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104c7848484611159565b90505b9392505050565b5f6104db8a6111f8565b8051906020012090505f6104f833835f9182526020526040902090565b9050610506818c8c8c6112ea565b5f5f90505f60065f015f9054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168d60200160208101906105509190612d77565b67ffffffffffffffff160361056b57506001905060066105f9565b60025f015f9054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168d60200160208101906105b09190612d77565b67ffffffffffffffff16036105c7575060026105f9565b6040517fc06789fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61060884848e8e858f8f61143f565b5f6106128e611692565b9050821561082e5760065461063a906fffffffffffffffffffffffffffffffff166001612dcb565b6fffffffffffffffffffffffffffffffff1661065c60808b0160608c01612d77565b67ffffffffffffffff161461069d576040517fc72c820000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6106ba826106ab8c611829565b805190602001208b8b8b611925565b9050806106f3576040517f128597bb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600680547001000000000000000000000000000000008082046fffffffffffffffffffffffffffffffff9081169091029116176002908155600754600355600880546004906107459082908490612920565b5060019182015491015550610762905060808b0160608c01612d77565b600680547fffffffffffffffffffffffffffffffff000000000000000000000000000000001667ffffffffffffffff929092169190911790556107ab60a08b0160808c01612df3565b600680546fffffffffffffffffffffffffffffffff1663ffffffff929092167001000000000000000000000000000000000291909117905560a08a018035600755610808906107fd9060808d01612df3565b63ffffffff166119ad565b8051805160089161081e9183916020019061296c565b5060208201518160010155905050505b5f81905561083f60208f018f612df3565b63ffffffff1660015f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550600a5f8581526020019081526020015f205f5f82015f6101000a81549067ffffffffffffffff02191690555f820160086101000a81549063ffffffff02191690555f8201600c6101000a81549063ffffffff0219169055600182015f9055600282015f905550507fd95fe1258d152dc91c81b09380498adc76ed36a6079bcb2ed31eff622ae2d0f1818f5f0160208101906109079190612df3565b6040805192835263ffffffff90911660208301520160405180910390a15050505050505050505050505050565b60605f600a5f61094d33885f9182526020526040902090565b81526020019081526020015f209050838360405160200161096f929190612e16565b604051602081830303815290604052805190602001208160020154146109c1576040517f6768c0aa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610a2981600101548585808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525050855463ffffffff6c0100000000000000000000000082048116935068010000000000000000909104169050611a53565b95945050505050565b5f610a295f5486868686611925565b335f9081526020829052604081205f818152600a6020526040812080549293509167ffffffffffffffff169003610aa4576040517f6686db6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600181015415610ae0576040517fe31d900500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8054610b17907f00000000000000000000000000000000000000000000000000000000000000009067ffffffffffffffff16612e56565b431015610b50576040517fc77c194900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80547f000000000000000000000000000000000000000000000000000000000000000090610ba9907f00000000000000000000000000000000000000000000000000000000000000009067ffffffffffffffff16612e56565b610bb39190612e56565b431115610c2d575f828152600a602052604080822080547fffffffffffffffffffffffffffffffff00000000000000000000000000000000168155600181018390556002019190915580517f40d3544700000000000000000000000000000000000000000000000000000000815290519081900360040190fd5b446001909101555050565b60015467ffffffffffffffff16610c526020860186612df3565b63ffffffff1611610c8f576040517f3d618e5000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002545f9081906fffffffffffffffffffffffffffffffff16610cb86040880160208901612d77565b67ffffffffffffffff1603610d0157610cd660046060850135611afe565b9050610cf86060840135610cef61ffff84166001611b81565b60049190611b9f565b60029150610d6b565b6006546fffffffffffffffffffffffffffffffff16610d266040880160208901612d77565b67ffffffffffffffff16036105c757610d4460086060850135611afe565b9050610d666060840135610d5d61ffff84166001611b81565b60089190611b9f565b600691505b610d9682610d7f60a0860160808701612e69565b6060860135610d9160a0880188612e9c565b611c5f565b1580610dde5750610ddc8585808060200260200160405190810160405280939291908181526020018383602002808284375f920191909152505050506060850135611d15565b155b15610e15576040517fe00153fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f610e1f876111f8565b80516020909101209050610e3960a0850160808601612e69565b73ffffffffffffffffffffffffffffffffffffffff16610e6f82610e606020880188612f00565b87602001358860400135611d59565b73ffffffffffffffffffffffffffffffffffffffff1614610ebc576040517f8baa579f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8254610eed9070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16611d7f565b610f288787808060200260200160405190810160405280939291908181526020018383602002808284375f92019190915250611da192505050565b1015610f60576040517fee3e74af00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160a0810182524367ffffffffffffffff1681528454700100000000000000000000000000000000900463ffffffff811660208301529091820190610fdf906fffffffffffffffffffffffffffffffff1661ffff86167f000000000000000000000000000000000000000000000000000000000000000061200f565b63ffffffff1681526020015f81526020018787604051602001611003929190612e16565b60405160208183030381529060405280519060200120815250600a5f61103233855f9182526020526040902090565b815260208082019290925260409081015f2083518154858501519386015163ffffffff9081166c01000000000000000000000000027fffffffffffffffffffffffffffffffff00000000ffffffffffffffffffffffff9190951668010000000000000000027fffffffffffffffffffffffffffffffffffffffff00000000000000000000000090921667ffffffffffffffff909316929092171716919091178155606083015160018201556080909201516002909201919091557fbee983fc706c692efb9b0240bddc5666c010a53af55ed5fb42d226e7e429386990339061111c908a018a612df3565b6040805173ffffffffffffffffffffffffffffffffffffffff909316835263ffffffff90911660208301520160405180910390a150505050505050565b60605f61010061116a8460ff612e56565b6111749190612f4d565b90508067ffffffffffffffff81111561118f5761118f612f60565b6040519080825280602002602001820160405280156111b8578160200160208202803683370190505b5091505f5b848110156111ef576111e7838787848181106111db576111db612f8d565b90506020020135612067565b6001016111bd565b50509392505050565b606061120f61120a6040840184612e9c565b6120be565b61124661121f6020850185612df3565b600881811c62ff00ff1663ff00ff009290911b9190911617601081811c91901b1760e01b90565b6112c26112596040860160208701612d77565b5f65ff000000ff00600883811b91821664ff000000ff9185901c91821617601090811b67ff000000ff0000009390931666ff000000ff00009290921691909117901c17602081811b6bffffffffffffffff000000001691901c63ffffffff161760c01b92915050565b6040516020016112d493929190612fd1565b6040516020818303038152906040529050919050565b5f848152600a602052604081208054909167ffffffffffffffff909116900361133f576040517f6686db6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600101545f0361137c576040517f78ef3a4700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60015467ffffffffffffffff166113966020860186612df3565b63ffffffff16116113d3576040517f3d618e5000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82826040516020016113e6929190612e16565b60405160208183030381529060405280519060200120816002015414611438576040517f6768c0aa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050505050565b5f868152600a6020526040902080546c01000000000000000000000000900463ffffffff1682811461149d576040517f1f1711da00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f61150883600101548989808060200260200160405190810160405280939291908181526020018383602002808284375f92019190915250508a5487925070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff169050611a53565b90505f5b84811015611685573686868381811061152757611527612f8d565b90506020028101906115399190613034565b9050611549838260600135611d15565b61157f576040517fe00153fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6115a58861159360a0840160808501612e69565b6060840135610d9160a0860186612e9c565b6115db576040517fe00153fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6115eb60a0820160808301612e69565b73ffffffffffffffffffffffffffffffffffffffff166116218d6116126020850185612f00565b84602001358560400135611d59565b73ffffffffffffffffffffffffffffffffffffffff161461166e576040517f8baa579f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61167c8382606001356121cb565b5060010161150c565b5050505050505050505050565b5f805b6116a26040840184612e9c565b90508110156117f6577f6d680000000000000000000000000000000000000000000000000000000000006116d96040850185612e9c565b838181106116e9576116e9612f8d565b90506020028101906116fb9190613070565b6117099060208101906130a2565b7fffff00000000000000000000000000000000000000000000000000000000000016036117ee5761173d6040840184612e9c565b8281811061174d5761174d612f8d565b905060200281019061175f9190613070565b61176d9060208101906130e1565b90506020146117a8576040517f7df9c48600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6117b56040840184612e9c565b828181106117c5576117c5612f8d565b90506020028101906117d79190613070565b6117e59060208101906130e1565b6104ca91613142565b600101611695565b506040517f484ab7df00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606061184161183b6020840184612f00565b60f81b90565b61185461121f6040850160208601612df3565b604084013561186c6112596080870160608801612d77565b61187f61121f60a0880160808901612df3565b6040517fff0000000000000000000000000000000000000000000000000000000000000090951660208601527fffffffff00000000000000000000000000000000000000000000000000000000938416602186015260258501929092527fffffffffffffffff00000000000000000000000000000000000000000000000016604584015216604d82015260a0830135605182015260c083013560718201526091016112d4565b5f610100831115611962576040517f5e862a8a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845f5b848110156119a0576119968287878481811061198357611983612f8d565b905060200201358387901c6001166121ff565b9150600101611965565b5090951495945050505050565b60408051808201909152606081525f60208201525f6119cd60108461317e565b156119d95760016119db565b5f5b60ff166119e9601085612f4d565b6119f39190612e56565b905060405180604001604052808267ffffffffffffffff811115611a1957611a19612f60565b604051908082528060200260200182016040528015611a42578160200160208202803683370190505b508152602001939093525090919050565b6060835167ffffffffffffffff811115611a6f57611a6f612f60565b604051908082528060200260200182016040528015611a98578160200160208202803683370190505b5090505f805b84821015611af4575f611ab2888387612228565b9050611abe8782611d15565b1580611acf5750611acf8482611d15565b15611add5750600101611a9e565b611ae78482612067565b5060019182019101611a9e565b5050949350505050565b5f82600101548210611b3c576040517f4e23d03500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600482901c600f8316611b50816010613191565b60ff16855f018381548110611b6757611b67612f8d565b905f5260205f200154901c61ffff16925050505b92915050565b5f82820161ffff80851690821610156104ca5761ffff915050611b7b565b82600101548210611bdc576040517f4e23d03500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600482901c600f83165f611bf1826010613191565b60ff1661ffff901b1990505f826010611c0a9190613191565b60ff168561ffff16901b90508082885f018681548110611c2c57611c2c612f8d565b905f5260205f2001541617875f018581548110611c4b57611c4b612f8d565b5f9182526020909120015550505050505050565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606086901b1660208201525f908190603401604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0018152919052805160209091012060018801548854919250611d0a918390889070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16888861224b565b979650505050505050565b5f5f600883901c9050611d4a83858381518110611d3457611d34612f8d565b602002602001015161227690919063ffffffff16565b60ff1660011491505092915050565b5f5f5f611d6887878787612280565b91509150611d7581612368565b5095945050505050565b5f6003611d8d6001846131ad565b611d979190612f4d565b611b7b90836131ad565b5f80805b8351811015612008575f848281518110611dc157611dc1612f8d565b602002602001015190507f5555555555555555555555555555555555555555555555555555555555555555600182901c167f555555555555555555555555555555555555555555555555555555555555555582160190507f3333333333333333333333333333333333333333333333333333333333333333600282901c167f333333333333333333333333333333333333333333333333333333333333333382160190507f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f600482901c167f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f82160190507eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff600882901c167eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff82160190507dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff601082901c167dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff82160190507bffffffff00000000ffffffff00000000ffffffff00000000ffffffff602082901c167bffffffff00000000ffffffff00000000ffffffff00000000ffffffff821601905077ffffffffffffffff0000000000000000ffffffffffffffff604082901c1677ffffffffffffffff0000000000000000ffffffffffffffff82160190506fffffffffffffffffffffffffffffffff608082901c166fffffffffffffffffffffffffffffffff82160190508083019250508080600101915050611da5565b5092915050565b5f8161201c856001612522565b6120269082612e56565b9050612033846001612522565b61203e9060026131c0565b612049906001612e56565b6120539082612e56565b9050610a298161206287611d7f565b61255f565b5f600882901c905061209b8284838151811061208557612085612f8d565b602002602001015161257490919063ffffffff16565b8382815181106120ad576120ad612f8d565b602002602001018181525050505050565b60605f6120ca83612581565b90505f5b838110156121c357818585838181106120e9576120e9612f8d565b90506020028101906120fb9190613070565b6121099060208101906130a2565b61214587878581811061211e5761211e612f8d565b90506020028101906121309190613070565b61213e9060208101906130e1565b9050612581565b87878581811061215757612157612f8d565b90506020028101906121699190613070565b6121779060208101906130e1565b60405160200161218b9594939291906131d7565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905291506001016120ce565b509392505050565b5f600882901c905061209b828483815181106121e9576121e9612f8d565b60200260200101516125ca90919063ffffffff16565b5f81801561221357835f528460205261221b565b845f52836020525b505060405f209392505050565b5f815f0361223757505f6104ca565b505f92835260209190915260409091200690565b5f83851061225a57505f61226c565b61226786868686866125d8565b871490505b9695505050505050565b60ff161c60011690565b5f807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156122b557505f9050600361235f565b604080515f8082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612306573d5f5f3e3d5ffd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116612359575f6001925092505061235f565b91505f90505b94509492505050565b5f81600481111561237b5761237b61322b565b036123835750565b60018160048111156123975761239761322b565b03612403576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064015b60405180910390fd5b60028160048111156124175761241761322b565b0361247e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016123fa565b60038160048111156124925761249261322b565b0361251f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f756500000000000000000000000000000000000000000000000000000000000060648201526084016123fa565b50565b5f5f61252d8461269d565b905061253883612730565b8015612547575083816001901b105b612551575f612554565b60015b60ff16019392505050565b5f81831061256d57816104ca565b5090919050565b600160ff919091161b1790565b606063ffffffff8211156125c1576040517fe809999a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611b7b8261275c565b600160ff919091161b191690565b5f85815b838110156126925786600116600114806125f857508587600101145b1561262f5761262885858381811061261257612612612f8d565b90506020020135835f9182526020526040902090565b915061265d565b61265a8286868481811061264557612645612f8d565b905060200201355f9182526020526040902090565b91505b600196871c967fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff909601861c860195016125dc565b509695505050505050565b5f80608083901c156126b157608092831c92015b604083901c156126c357604092831c92015b602083901c156126d557602092831c92015b601083901c156126e757601092831c92015b600883901c156126f957600892831c92015b600483901c1561270b57600492831c92015b600283901c1561271d57600292831c92015b600183901c15611b7b5760010192915050565b5f60028260038111156127455761274561322b565b61274f9190613258565b60ff166001149050919050565b6060603f8263ffffffff16116127a3576040517ffc0000000000000000000000000000000000000000000000000000000000000060fa84901b1660208201526021016112d4565b613fff8263ffffffff161161281a576127df6127cb6403fffffffc600285901b166001613279565b600881811b62ffff001691901c60ff161790565b6040516020016112d4919060f09190911b7fffff00000000000000000000000000000000000000000000000000000000000016815260020190565b633fffffff8263ffffffff16116128a45761286960028363ffffffff16901b60026128459190613279565b600881811c62ff00ff1663ff00ff009290911b9190911617601081811c91901b1790565b6040516020016112d4919060e09190911b7fffffffff0000000000000000000000000000000000000000000000000000000016815260040190565b6040517f030000000000000000000000000000000000000000000000000000000000000060208201527fffffffff00000000000000000000000000000000000000000000000000000000600884811c62ff00ff1663ff00ff009186901b9190911617601081811c91901b1760e01b1660218201526025016112d4565b828054828255905f5260205f2090810192821561295c575f5260205f209182015b8281111561295c578254825591600101919060010190612941565b506129689291506129a5565b5090565b828054828255905f5260205f2090810192821561295c579160200282015b8281111561295c57825182559160200191906001019061298a565b5b80821115612968575f81556001016129a6565b6fffffffffffffffffffffffffffffffff851681526fffffffffffffffffffffffffffffffff84166020820152826040820152608060608201525f60c0820183516040608085015281815180845260e0860191506020830193505f92505b80831015612a3a5783518252602082019150602084019350600183019250612a17565b50602086015160a086015280935050505095945050505050565b5f5f83601f840112612a64575f5ffd5b50813567ffffffffffffffff811115612a7b575f5ffd5b6020830191508360208260051b8501011115612a95575f5ffd5b9250929050565b5f5f5f60408486031215612aae575f5ffd5b833567ffffffffffffffff811115612ac4575f5ffd5b612ad086828701612a54565b909790965060209590950135949350505050565b602080825282518282018190525f918401906040840190835b81811015612b1b578351835260209384019390920191600101612afd565b509095945050505050565b5f60608284031215612b36575f5ffd5b50919050565b5f60e08284031215612b36575f5ffd5b5f5f5f5f5f5f5f5f5f6101808a8c031215612b65575f5ffd5b893567ffffffffffffffff811115612b7b575f5ffd5b612b878c828d01612b26565b99505060208a013567ffffffffffffffff811115612ba3575f5ffd5b612baf8c828d01612a54565b90995097505060408a013567ffffffffffffffff811115612bce575f5ffd5b612bda8c828d01612a54565b9097509550612bee90508b60608c01612b3c565b93506101408a013567ffffffffffffffff811115612c0a575f5ffd5b612c168c828d01612a54565b9a9d999c50979a969995989497966101600135949350505050565b5f5f5f60408486031215612c43575f5ffd5b83359250602084013567ffffffffffffffff811115612c60575f5ffd5b612c6c86828701612a54565b9497909650939450505050565b5f5f5f5f60608587031215612c8c575f5ffd5b84359350602085013567ffffffffffffffff811115612ca9575f5ffd5b612cb587828801612a54565b9598909750949560400135949350505050565b5f60208284031215612cd8575f5ffd5b5035919050565b5f5f5f5f60608587031215612cf2575f5ffd5b843567ffffffffffffffff811115612d08575f5ffd5b612d1487828801612b26565b945050602085013567ffffffffffffffff811115612d30575f5ffd5b612d3c87828801612a54565b909450925050604085013567ffffffffffffffff811115612d5b575f5ffd5b850160c08188031215612d6c575f5ffd5b939692955090935050565b5f60208284031215612d87575f5ffd5b813567ffffffffffffffff811681146104ca575f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b6fffffffffffffffffffffffffffffffff8181168382160190811115611b7b57611b7b612d9e565b5f60208284031215612e03575f5ffd5b813563ffffffff811681146104ca575f5ffd5b5f7f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115612e43575f5ffd5b8260051b80858437919091019392505050565b80820180821115611b7b57611b7b612d9e565b5f60208284031215612e79575f5ffd5b813573ffffffffffffffffffffffffffffffffffffffff811681146104ca575f5ffd5b5f5f83357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112612ecf575f5ffd5b83018035915067ffffffffffffffff821115612ee9575f5ffd5b6020019150600581901b3603821315612a95575f5ffd5b5f60208284031215612f10575f5ffd5b813560ff811681146104ca575f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f82612f5b57612f5b612f20565b500490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81518060208401855e5f93019283525090919050565b5f612fdc8286612fba565b7fffffffff0000000000000000000000000000000000000000000000000000000094909416845250507fffffffffffffffff000000000000000000000000000000000000000000000000166004820152600c01919050565b5f82357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff41833603018112613066575f5ffd5b9190910192915050565b5f82357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1833603018112613066575f5ffd5b5f602082840312156130b2575f5ffd5b81357fffff000000000000000000000000000000000000000000000000000000000000811681146104ca575f5ffd5b5f5f83357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112613114575f5ffd5b83018035915067ffffffffffffffff82111561312e575f5ffd5b602001915036819003821315612a95575f5ffd5b80356020831015611b7b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b5f8261318c5761318c612f20565b500690565b60ff818116838216029081169081811461200857612008612d9e565b81810381811115611b7b57611b7b612d9e565b8082028115828204841417611b7b57611b7b612d9e565b5f6131e28288612fba565b7fffff000000000000000000000000000000000000000000000000000000000000871681526132146002820187612fba565b9050838582375f9301928352509095945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f60ff83168061326a5761326a612f20565b8060ff84160691505092915050565b63ffffffff8181168382160190811115611b7b57611b7b612d9e56fea2646970667358221220099447f8f7502b259b62a98a55af24aaa5f57f7a0c90e85f18b6c08660f0f82964736f6c634300081c0033";
1026
+ const _bytecode = "0x610100604052348015610010575f5ffd5b50604051613c94380380613c9483398101604081905261002f916102c2565b815161003c90600161034e565b6001600160801b0316815f01516001600160801b0316146100a35760405162461bcd60e51b815260206004820152601a60248201527f696e76616c69642d636f6e7374727563746f722d706172616d73000000000000604482015260640160405180910390fd5b608087905260a086905260c085905260e0849052600180546001600160401b0319166001600160401b038516179055815160208301516001600160801b03918216600160801b918316820217600281905560408501516003556101099291900416610189565b8051600490819061011a9082610373565b50602091820151600191909101558151908201516001600160801b03918216600160801b9183168202176006819055604084015160075561015e9291900416610189565b8051600890819061016f9082610373565b506020820151816001015590505050505050505050610460565b60408051808201909152606081525f60208201525f6101a9601084610427565b156101b55760016101b7565b5f5b60ff166101c560108561043a565b6101cf919061044d565b90506040518060400160405280826001600160401b038111156101f4576101f461022e565b60405190808252806020026020018201604052801561021d578160200160208202803683370190505b508152602001939093525090919050565b634e487b7160e01b5f52604160045260245ffd5b80516001600160801b0381168114610258575f5ffd5b919050565b5f6060828403121561026d575f5ffd5b604051606081016001600160401b038111828210171561028f5761028f61022e565b60405290508061029e83610242565b81526102ac60208401610242565b6020820152604083015160408201525092915050565b5f5f5f5f5f5f5f610160888a0312156102d9575f5ffd5b8751602089015160408a015160608b015160808c0151939a50919850965094506001600160401b038116811461030d575f5ffd5b925061031c8960a08a0161025d565b915061032c896101008a0161025d565b905092959891949750929550565b634e487b7160e01b5f52601160045260245ffd5b6001600160801b03818116838216019081111561036d5761036d61033a565b92915050565b81516001600160401b0381111561038c5761038c61022e565b680100000000000000008111156103a5576103a561022e565b8154818355808210156103d957825f528160205f20018282035f5b818110156103d5575f838201556001016103c0565b5050505b50602083016103ed835f9081526020902090565b5f5b8381101561040b578251828201556020909201916001016103ef565b505050505050565b634e487b7160e01b5f52601260045260245ffd5b5f8261043557610435610413565b500690565b5f8261044857610448610413565b500490565b8082018082111561036d5761036d61033a565b60805160a05160c05160e0516137d76104bd5f395f818161029601528181611a4e015261249b01525f818161026f015261100601525f81816103060152610be201525f81816101f501528181610b900152610c0801526137d75ff3fe608060405234801561000f575f5ffd5b5060043610610127575f3560e01c80636f55bd32116100a9578063ad209a9b1161006e578063ad209a9b14610301578063bb51f1eb14610328578063c6405f311461033b578063c7d6e93d1461034e578063df0dd0d514610361575f5ffd5b80636f55bd321461026a57806383fe0ea0146102915780638ab81d13146102b8578063a401662b146102cb578063a77cf3d2146102ee575f5ffd5b80634b4cfb28116100ef5780634b4cfb28146101d0578063591d99ee146101f05780635da57fe914610217578063623b223d1461022a57806366ae69a01461023f575f5ffd5b80630a7c8faa1461012b57806315fac8c6146101555780632cdea7171461019a57806336667513146101b257806341c9634e146101ba575b5f5ffd5b610137610dad60f31b81565b6040516001600160f01b031990911681526020015b60405180910390f35b61018d60405180604001604052806019815260200178534e4f574252494447452d464941542d5348414d49522d563160381b81525081565b60405161014c9190612e17565b6101a26103eb565b60405161014c9493929190612e4c565b6101a261046c565b6101c25f5481565b60405190815260200161014c565b6101e36101de366004612f32565b6104eb565b60405161014c9190612f99565b6101c27f000000000000000000000000000000000000000000000000000000000000000081565b6101e3610225366004612fdb565b61063e565b61023d610238366004613032565b610674565b005b600154610252906001600160401b031681565b6040516001600160401b03909116815260200161014c565b6101c27f000000000000000000000000000000000000000000000000000000000000000081565b6101c27f000000000000000000000000000000000000000000000000000000000000000081565b6101e36102c6366004613113565b610a36565b6102de6102d9366004613141565b610b0d565b604051901515815260200161014c565b61023d6102fc36600461318f565b610b1c565b6101c27f000000000000000000000000000000000000000000000000000000000000000081565b61023d6103363660046131a6565b610ca5565b6101c261034936600461323b565b61115d565b61023d61035c366004613032565b611175565b6103af61036f36600461318f565b600a6020525f90815260409020805460018201546002909201546001600160401b0382169263ffffffff600160401b8404811693600160601b9004169185565b604080516001600160401b0396909616865263ffffffff948516602087015292909316918401919091526060830152608082015260a00161014c565b6002805460035460408051600480546060602082028401810185529383018181526001600160801b0380881698600160801b9098041696948492849184018282801561045457602002820191905f5260205f20905b815481526020019060010190808311610440575b50505050508152602001600182015481525050905084565b6006805460075460408051600880546060602082028401810185529383018181526001600160801b0380881698600160801b9098041696948492849184018282801561045457602002820191905f5260205f20908154815260200190600101908083116104405750505050508152602001600182015481525050905084565b6006546060906002906001600160801b031661050d604087016020880161326c565b6001600160401b03160361052357506006610566565b6002546001600160801b031661053f604087016020880161326c565b6001600160401b03161461056657604051636033c4fd60e11b815260040160405180910390fd5b805461058190600160801b90046001600160801b031661155a565b831415806105f5575080546105a590600160801b90046001600160801b0316611579565b6105f38585808060200260200160405190810160405280939291908181526020018383602002808284375f92019190915250508554600160801b90046001600160801b0316915061159b9050565b105b15610613576040516333b4605560e11b815260040160405180910390fd5b5f61061d86611915565b80519060200120905061063281868685611a07565b925050505b9392505050565b60608282101561066157604051635c85a0e760e01b815260040160405180910390fd5b61066c848484611aec565b949350505050565b5f61067e8a611915565b8051906020012090505f61069b33835f9182526020526040902090565b90506106a9818c8c8c611b76565b5f5f90505f6002905060065f015f9054906101000a90046001600160801b03166001600160801b03168d60200160208101906106e5919061326c565b6001600160401b0316036106ff5750600190506006610759565b60025f015f9054906101000a90046001600160801b03166001600160801b03168d6020016020810190610732919061326c565b6001600160401b03161461075957604051636033c4fd60e11b815260040160405180910390fd5b6107a78c8c808060200260200160405190810160405280939291908181526020018383602002808284375f92019190915250508454600160801b90046001600160801b03169150611c659050565b6107b684848e8e858f8f611cf8565b5f6107c08e611eae565b90508215610933576006546001600160801b03166107e460808b0160608c0161326c565b6001600160401b03161161080a576040516263964160e91b815260040160405180910390fd5b5f610827826108188c611f81565b805190602001208b8b8b612035565b9050806108475760405163128597bb60e01b815260040160405180910390fd5b60068054600160801b8082046001600160801b039081169091029116176002908155600754600355600860048061087e838261331a565b506001918201549101555061089b905060808b0160608c0161326c565b600680546001600160801b0319166001600160401b03929092169190911790556108cb60a08b0160808c01613380565b600680546001600160801b031663ffffffff92909216600160801b0291909117905560a08a018035600755610912906109079060808d01613380565b63ffffffff166120a4565b8051600890819061092390826133a3565b5060208201518160010155905050505b5f81905561094460208f018f613380565b63ffffffff1660015f6101000a8154816001600160401b0302191690836001600160401b03160217905550600a5f8581526020019081526020015f205f5f82015f6101000a8154906001600160401b0302191690555f820160086101000a81549063ffffffff02191690555f8201600c6101000a81549063ffffffff0219169055600182015f9055600282015f905550507fd95fe1258d152dc91c81b09380498adc76ed36a6079bcb2ed31eff622ae2d0f1818f5f016020810190610a099190613380565b6040805192835263ffffffff90911660208301520160405180910390a15050505050505050505050505050565b60605f600a5f610a4f33885f9182526020526040902090565b81526020019081526020015f2090508383604051602001610a719291906133ef565b60405160208183030381529060405280519060200120816002015414610aaa576040516333b4605560e11b815260040160405180910390fd5b610b0481600101548585808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525050855463ffffffff600160401b820481169350600160601b909104169050612149565b95945050505050565b5f610b045f5486868686612035565b335f9081526020829052604081205f818152600a602052604081208054929350916001600160401b03169003610b65576040516319a1b6d960e21b815260040160405180910390fd5b600181015415610b885760405163e31d900560e01b815260040160405180910390fd5b8054610bbe907f0000000000000000000000000000000000000000000000000000000000000000906001600160401b0316613416565b431015610bde5760405163c77c194960e01b815260040160405180910390fd5b80547f000000000000000000000000000000000000000000000000000000000000000090610c36907f0000000000000000000000000000000000000000000000000000000000000000906001600160401b0316613416565b610c409190613416565b431115610c9a575f828152600a602052604080822080546001600160801b031916815560018101839055600201829055517f40d3544771f3c2382030d7a42c371f55cb608ac0eaf54ef2fa846da65af1b9859190a1505050565b446001909101555050565b6001546001600160401b0316610cbe6020860186613380565b63ffffffff1611610ce2576040516303d618e560e41b815260040160405180910390fd5b600280545f906001600160801b0316610d01604088016020890161326c565b6001600160401b031603610d4557610d1e60046060850135612231565b9050610d406060840135610d3761ffff8416600161229a565b600491906122b8565b610dc2565b6006546001600160801b0316610d61604088016020890161326c565b6001600160401b031603610da957610d7e60086060850135612231565b9050610da06060840135610d9761ffff8416600161229a565b600891906122b8565b60069150610dc2565b604051636033c4fd60e11b815260040160405180910390fd5b610ded82610dd660a0860160808701613429565b6060860135610de860a088018861344f565b61235f565b1580610e355750610e338585808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525050505060608501356123ce565b155b15610e5357604051637000a9fd60e11b815260040160405180910390fd5b5f610e5d87611915565b80516020909101209050610e7760a0850160808601613429565b6001600160a01b0316610ea082610e916020880188613494565b87602001358860400135612412565b6001600160a01b031614610ec757604051638baa579f60e01b815260040160405180910390fd5b8254610ee290600160801b90046001600160801b031661155a565b85141580610f5657508254610f0690600160801b90046001600160801b0316611579565b610f548787808060200260200160405190810160405280939291908181526020018383602002808284375f92019190915250508754600160801b90046001600160801b0316915061159b9050565b105b15610f74576040516333b4605560e11b815260040160405180910390fd5b610fc28686808060200260200160405190810160405280939291908181526020018383602002808284375f92019190915250508654600160801b90046001600160801b03169150611c659050565b6040805160a081018252436001600160401b031681528454600160801b900463ffffffff81166020830152909182019061102a906001600160801b031661ffff86167f000000000000000000000000000000000000000000000000000000000000000061243e565b63ffffffff1681526020015f8152602001878760405160200161104e9291906133ef565b60405160208183030381529060405280519060200120815250600a5f61107d33855f9182526020526040902090565b815260208082019290925260409081015f2083518154858501519386015163ffffffff908116600160601b0263ffffffff60601b1991909516600160401b026bffffffffffffffffffffffff199092166001600160401b03909316929092171716919091178155606083015160018201556080909201516002909201919091557fbee983fc706c692efb9b0240bddc5666c010a53af55ed5fb42d226e7e429386990339061112d908a018a613380565b604080516001600160a01b03909316835263ffffffff90911660208301520160405180910390a150505050505050565b5f61116782611915565b805190602001209050919050565b6001546001600160401b031661118e60208b018b613380565b63ffffffff16116111b2576040516303d618e560e41b815260040160405180910390fd5b6006545f906002906001600160801b03166111d360408d0160208e0161326c565b6001600160401b0316036111ed5750600190506006611230565b6002546001600160801b031661120960408d0160208e0161326c565b6001600160401b03161461123057604051636033c4fd60e11b815260040160405180910390fd5b805461124b90600160801b90046001600160801b031661155a565b891415806112bf5750805461126f90600160801b90046001600160801b0316611579565b6112bd8b8b808060200260200160405190810160405280939291908181526020018383602002808284375f92019190915250508554600160801b90046001600160801b0316915061159b9050565b105b156112dd576040516333b4605560e11b815260040160405180910390fd5b61132b8a8a808060200260200160405190810160405280939291908181526020018383602002808284375f92019190915250508454600160801b90046001600160801b03169150611c659050565b5f6113358c611eae565b90505f6113418d611915565b805190602001209050611358818d8d868e8e612491565b83156114be576006546001600160801b031661137a60808a0160608b0161326c565b6001600160401b0316116113a0576040516263964160e91b815260040160405180910390fd5b5f6113bd836113ae8b611f81565b805190602001208a8a8a612035565b9050806113dd5760405163128597bb60e01b815260040160405180910390fd5b60068054600160801b8082046001600160801b0390811690910291161760029081556007546003556008600480611414838261331a565b5060019182015491015550611431905060808a0160608b0161326c565b600680546001600160801b0319166001600160401b039290921691909117905561146160a08a0160808b01613380565b600680546001600160801b031663ffffffff92909216600160801b0291909117905560a08901803560075561149d906109079060808c01613380565b805160089081906114ae90826133a3565b5060208201518160010155905050505b5f8290556114cf60208e018e613380565b63ffffffff1660015f6101000a8154816001600160401b0302191690836001600160401b031602179055507fd95fe1258d152dc91c81b09380498adc76ed36a6079bcb2ed31eff622ae2d0f1828e5f01602081019061152e9190613380565b6040805192835263ffffffff90911660208301520160405180910390a150505050505050505050505050565b5f6101006115698360ff613416565b61157391906134c8565b92915050565b5f60036115876001846134db565b61159191906134c8565b61157390836134db565b5f8115806115a857508251155b156115b457505f611573565b5f610100830460ff8416825b82811080156115cf5750865181105b15611764575f8782815181106115e7576115e76134ee565b602002602001015190505f5160206137625f395f51905f52600182901c165f5160206137625f395f51905f5282160190505f5160206137025f395f51905f52600282901c165f5160206137025f395f51905f5282160190505f5160206137425f395f51905f52600482901c165f5160206137425f395f51905f5282160190505f5160206137825f395f51905f52600882901c165f5160206137825f395f51905f5282160190505f5160206137225f395f51905f52601082901c165f5160206137225f395f51905f5282160190507bffffffff00000000ffffffff00000000ffffffff00000000ffffffff602082901c167bffffffff00000000ffffffff00000000ffffffff00000000ffffffff821601905077ffffffffffffffff0000000000000000ffffffffffffffff604082901c1677ffffffffffffffff0000000000000000ffffffffffffffff82160190506001600160801b03608082901c166001600160801b03821601905080850194505080806001019150506115c0565b505f811180156117745750855182105b1561190b575f6001826001901b0390505f81888581518110611798576117986134ee565b60200260200101511690505f5160206137625f395f51905f52600182901c165f5160206137625f395f51905f5282160190505f5160206137025f395f51905f52600282901c165f5160206137025f395f51905f5282160190505f5160206137425f395f51905f52600482901c165f5160206137425f395f51905f5282160190505f5160206137825f395f51905f52600882901c165f5160206137825f395f51905f5282160190505f5160206137225f395f51905f52601082901c165f5160206137225f395f51905f5282160190507bffffffff00000000ffffffff00000000ffffffff00000000ffffffff602082901c167bffffffff00000000ffffffff00000000ffffffff00000000ffffffff821601905077ffffffffffffffff0000000000000000ffffffffffffffff604082901c1677ffffffffffffffff0000000000000000ffffffffffffffff82160190506001600160801b03608082901c166001600160801b038216019050808501945050505b5090949350505050565b606061192c611927604084018461344f565b612605565b61196361193c6020850185613380565b600881811c62ff00ff1663ff00ff009290911b9190911617601081811c91901b1760e01b90565b6119df611976604086016020870161326c565b5f65ff000000ff00600883811b91821664ff000000ff9185901c91821617601090811b67ff000000ff0000009390931666ff000000ff00009290921691909117901c17602081811b6bffffffffffffffff000000001691901c63ffffffff161760c01b92915050565b6040516020016119f193929190613519565b6040516020818303038152906040529050919050565b60605f8484604051602001611a1d9291906133ef565b6040516020818303038152906040528051906020012090505f611a418783866126ec565b84549091505f90611a8c907f000000000000000000000000000000000000000000000000000000000000000090611a8790600160801b90046001600160801b0316612825565b61283c565b9050611ae0825f1c8888808060200260200160405190810160405280939291908181526020018383602002808284375f92019190915250508954600160801b90046001600160801b03169150859050612149565b98975050505050505050565b6060611af78261155a565b6001600160401b03811115611b0e57611b0e613292565b604051908082528060200260200182016040528015611b37578160200160208202803683370190505b5090505f5b83811015611b6e57611b6682868684818110611b5a57611b5a6134ee565b90506020020135612851565b600101611b3c565b509392505050565b5f848152600a60205260408120805490916001600160401b039091169003611bb1576040516319a1b6d960e21b815260040160405180910390fd5b80600101545f03611bd5576040516378ef3a4760e01b815260040160405180910390fd5b6001546001600160401b0316611bee6020860186613380565b63ffffffff1611611c12576040516303d618e560e41b815260040160405180910390fd5b8282604051602001611c259291906133ef565b60405160208183030381529060405280519060200120816002015414611c5e576040516333b4605560e11b815260040160405180910390fd5b5050505050565b5f611c6f8261155a565b9050801580611c7d57508251155b15611c8757505050565b5f611c946101008461354c565b9050805f03611ca35750505050565b5f19811b5f85611cb46001866134db565b81518110611cc457611cc46134ee565b602002602001015190508181165f14611cf057604051631ee2aa4b60e11b815260040160405180910390fd5b505050505050565b5f868152600a602052604090208054600160601b900463ffffffff16828114611d3457604051630f8b88ed60e11b815260040160405180910390fd5b5f611d8983600101548989808060200260200160405190810160405280939291908181526020018383602002808284375f92019190915250508a54600160801b90046001600160801b03169150869050612149565b90505f5b84811015611ea15736868683818110611da857611da86134ee565b9050602002810190611dba919061355f565b9050611de288611dd060a0840160808501613429565b6060840135610de860a086018661344f565b611dff57604051637000a9fd60e11b815260040160405180910390fd5b611e0d8382606001356123ce565b611e2a57604051637000a9fd60e11b815260040160405180910390fd5b611e3a60a0820160808301613429565b6001600160a01b0316611e638d611e546020850185613494565b84602001358560400135612412565b6001600160a01b031614611e8a57604051638baa579f60e01b815260040160405180910390fd5b611e988382606001356128a8565b50600101611d8d565b5050505050505050505050565b5f805b611ebe604084018461344f565b9050811015611f6757610dad60f31b611eda604085018561344f565b83818110611eea57611eea6134ee565b9050602002810190611efc919061357d565b611f0a906020810190613591565b6001600160f01b03191603611f5f57611f26604084018461344f565b82818110611f3657611f366134ee565b9050602002810190611f48919061357d565b611f569060208101906135b8565b610637916135fa565b600101611eb1565b5060405163484ab7df60e01b815260040160405180910390fd5b6060611f99611f936020840184613494565b60f81b90565b611fac61193c6040850160208601613380565b6040840135611fc4611976608087016060880161326c565b611fd761193c60a0880160808901613380565b6040516001600160f81b031990951660208601526001600160e01b0319938416602186015260258501929092526001600160c01b031916604584015216604d82015260a0830135605182015260c083013560718201526091016119f1565b5f61010083111561205957604051632f43154560e11b815260040160405180910390fd5b845f5b848110156120975761208d8287878481811061207a5761207a6134ee565b905060200201358387901c6001166128dc565b915060010161205c565b5090951495945050505050565b60408051808201909152606081525f60208201525f6120c460108461354c565b156120d05760016120d2565b5f5b60ff166120e06010856134c8565b6120ea9190613416565b90506040518060400160405280826001600160401b0381111561210f5761210f613292565b604051908082528060200260200182016040528015612138578160200160208202803683370190505b508152602001939093525090919050565b60606121548361155a565b845114158061216b5750612168848461159b565b82115b15612189576040516302fb251f60e51b815260040160405180910390fd5b83516001600160401b038111156121a2576121a2613292565b6040519080825280602002602001820160405280156121cb578160200160208202803683370190505b5090505f805b83821015612227575f6121e5888388612905565b90506121f187826123ce565b1580612202575061220284826123ce565b1561221057506001016121d1565b61221a8482612851565b50600191820191016121d1565b5050949350505050565b5f8260010154821061225657604051634e23d03560e01b815260040160405180910390fd5b600482901c600f831661226a816010613617565b60ff16855f018381548110612281576122816134ee565b905f5260205f200154901c61ffff169250505092915050565b5f82820161ffff80851690821610156106375761ffff915050611573565b826001015482106122dc57604051634e23d03560e01b815260040160405180910390fd5b600482901c600f83165f6122f1826010613617565b60ff1661ffff901b1990505f82601061230a9190613617565b60ff168561ffff16901b90508082885f01868154811061232c5761232c6134ee565b905f5260205f2001541617875f01858154811061234b5761234b6134ee565b5f9182526020909120015550505050505050565b6040516bffffffffffffffffffffffff19606086901b1660208201525f90819060340160408051808303601f190181529190528051602090910120600188015488549192506123c39183908890600160801b90046001600160801b03168888612928565b979650505050505050565b5f5f600883901c9050612403838583815181106123ed576123ed6134ee565b602002602001015161295390919063ffffffff16565b60ff1660011491505092915050565b5f5f5f5f6124228888888861295d565b9250925092506124328282612a25565b50909695505050505050565b5f8161244b856001612ae6565b6124559082613416565b9050612462846001612ae6565b61246d9060026132ba565b612478906001613416565b6124829082613416565b9050610b0481611a8787612825565b82545f906124d4907f000000000000000000000000000000000000000000000000000000000000000090611a8790600160801b90046001600160801b0316612825565b90508181146124f657604051630f8b88ed60e11b815260040160405180910390fd5b5f61250388888888611a07565b90505f5b838110156125fa5736858583818110612522576125226134ee565b9050602002810190612534919061355f565b90506125448382606001356123ce565b61256157604051637000a9fd60e11b815260040160405180910390fd5b61257587611dd060a0840160808501613429565b61259257604051637000a9fd60e11b815260040160405180910390fd5b6125a260a0820160808301613429565b6001600160a01b03166125bc8b611e546020850185613494565b6001600160a01b0316146125e357604051638baa579f60e01b815260040160405180910390fd5b6125f18382606001356128a8565b50600101612507565b505050505050505050565b60605f61261183612b23565b90505f5b83811015611b6e5781858583818110612630576126306134ee565b9050602002810190612642919061357d565b612650906020810190613591565b61268c878785818110612665576126656134ee565b9050602002810190612677919061357d565b6126859060208101906135b8565b9050612b23565b87878581811061269e5761269e6134ee565b90506020028101906126b0919061357d565b6126be9060208101906135b8565b6040516020016126d295949392919061363a565b60408051601f198184030181529190529150600101612615565b6040805180820182526019815278534e4f574252494447452d464941542d5348414d49522d563160381b60208083019190915260018401548454845192830188905293820186905260608201526001600160801b038084166080830152600160801b90930490921660a08301525f9160029190829060c00160408051601f198184030181529082905261277e91613676565b602060405180830381855afa158015612799573d5f5f3e3d5ffd5b5050506040513d601f19601f820116820180604052508101906127bc9190613681565b6040516020016127cd929190613698565b60408051601f19818403018152908290526127e791613676565b602060405180830381855afa158015612802573d5f5f3e3d5ffd5b5050506040513d601f19601f8201168201806040525081019061066c9190613681565b5f6128316003836134c8565b611573906001613416565b5f81831061284a5781610637565b5090919050565b5f600882901c90506128858284838151811061286f5761286f6134ee565b6020026020010151612b5390919063ffffffff16565b838281518110612897576128976134ee565b602002602001018181525050505050565b5f600882901c9050612885828483815181106128c6576128c66134ee565b6020026020010151612b6090919063ffffffff16565b5f8180156128f057835f52846020526128f8565b845f52836020525b505060405f209392505050565b5f815f0361291457505f610637565b505f92835260209190915260409091200690565b5f83851061293757505f612949565b6129448686868686612b6e565b871490505b9695505050505050565b60ff161c60011690565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084111561299657505f91506003905082612a1b565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa1580156129e7573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b038116612a1257505f925060019150829050612a1b565b92505f91508190505b9450945094915050565b5f826003811115612a3857612a386136b0565b03612a41575050565b6001826003811115612a5557612a556136b0565b03612a735760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115612a8757612a876136b0565b03612aad5760405163fce698f760e01b8152600481018290526024015b60405180910390fd5b6003826003811115612ac157612ac16136b0565b03612ae2576040516335e2f38360e21b815260048101829052602401612aa4565b5050565b5f5f612af184612c14565b9050612afc83612ca7565b8015612b0b575083816001901b105b612b15575f612b18565b60015b60ff16019392505050565b606063ffffffff821115612b4a57604051637404cccd60e11b815260040160405180910390fd5b61157382612cd3565b600160ff919091161b1790565b600160ff919091161b191690565b5f85815b83811015612c09578660011660011480612b8e57508587600101145b15612bc557612bbe858583818110612ba857612ba86134ee565b90506020020135835f9182526020526040902090565b9150612bf3565b612bf082868684818110612bdb57612bdb6134ee565b905060200201355f9182526020526040902090565b91505b600196871c965f19909601861c86019501612b72565b509695505050505050565b5f80608083901c15612c2857608092831c92015b604083901c15612c3a57604092831c92015b602083901c15612c4c57602092831c92015b601083901c15612c5e57601092831c92015b600883901c15612c7057600892831c92015b600483901c15612c8257600492831c92015b600283901c15612c9457600292831c92015b600183901c156115735760010192915050565b5f6002826003811115612cbc57612cbc6136b0565b612cc691906136c4565b60ff166001149050919050565b6060603f8263ffffffff1611612cfe57604051603f60fa1b60fa84901b1660208201526021016119f1565b613fff8263ffffffff1611612d5d57612d3a612d266403fffffffc600285901b1660016136e5565b600881811b62ffff001691901c60ff161790565b6040516020016119f1919060f09190911b6001600160f01b031916815260020190565b633fffffff8263ffffffff1611612dcf57612dac60028363ffffffff16901b6002612d8891906136e5565b600881811c62ff00ff1663ff00ff009290911b9190911617601081811c91901b1790565b6040516020016119f1919060e09190911b6001600160e01b031916815260040190565b604051600360f81b60208201526001600160e01b0319600884811c62ff00ff1663ff00ff009186901b9190911617601081811c91901b1760e01b1660218201526025016119f1565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160801b03851681526001600160801b0384166020820152826040820152608060608201525f60c0820183516040608085015281815180845260e0860191506020830193505f92505b80831015612ebb5783518252602082019150602084019350600183019250612e98565b50602086015160a086015280935050505095945050505050565b5f60608284031215612ee5575f5ffd5b50919050565b5f5f83601f840112612efb575f5ffd5b5081356001600160401b03811115612f11575f5ffd5b6020830191508360208260051b8501011115612f2b575f5ffd5b9250929050565b5f5f5f60408486031215612f44575f5ffd5b83356001600160401b03811115612f59575f5ffd5b612f6586828701612ed5565b93505060208401356001600160401b03811115612f80575f5ffd5b612f8c86828701612eeb565b9497909650939450505050565b602080825282518282018190525f918401906040840190835b81811015612fd0578351835260209384019390920191600101612fb2565b509095945050505050565b5f5f5f60408486031215612fed575f5ffd5b83356001600160401b03811115613002575f5ffd5b61300e86828701612eeb565b909790965060209590950135949350505050565b5f60e08284031215612ee5575f5ffd5b5f5f5f5f5f5f5f5f5f6101808a8c03121561304b575f5ffd5b89356001600160401b03811115613060575f5ffd5b61306c8c828d01612ed5565b99505060208a01356001600160401b03811115613087575f5ffd5b6130938c828d01612eeb565b90995097505060408a01356001600160401b038111156130b1575f5ffd5b6130bd8c828d01612eeb565b90975095506130d190508b60608c01613022565b93506101408a01356001600160401b038111156130ec575f5ffd5b6130f88c828d01612eeb565b9a9d999c50979a969995989497966101600135949350505050565b5f5f5f60408486031215613125575f5ffd5b8335925060208401356001600160401b03811115612f80575f5ffd5b5f5f5f5f60608587031215613154575f5ffd5b8435935060208501356001600160401b03811115613170575f5ffd5b61317c87828801612eeb565b9598909750949560400135949350505050565b5f6020828403121561319f575f5ffd5b5035919050565b5f5f5f5f606085870312156131b9575f5ffd5b84356001600160401b038111156131ce575f5ffd5b6131da87828801612ed5565b94505060208501356001600160401b038111156131f5575f5ffd5b61320187828801612eeb565b90945092505060408501356001600160401b0381111561321f575f5ffd5b850160c08188031215613230575f5ffd5b939692955090935050565b5f6020828403121561324b575f5ffd5b81356001600160401b03811115613260575f5ffd5b61066c84828501612ed5565b5f6020828403121561327c575f5ffd5b81356001600160401b0381168114610637575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417611573576115736132a6565b600160401b8211156132e5576132e5613292565b80548282558083101561331557815f528260205f20018382035f5b81811015611cf0575f83820155600101613300565b505050565b818103613325575050565b81546001600160401b0381111561333e5761333e613292565b61334881836132d1565b825f5260205f20825f5260205f2081545f5b84811015613377576001938401805484830193909355930161335a565b50505050505050565b5f60208284031215613390575f5ffd5b813563ffffffff81168114610637575f5ffd5b81516001600160401b038111156133bc576133bc613292565b6133c681836132d1565b60208301825f5260205f205f5b83811015611cf0578251828201556020909201916001016133d3565b5f6001600160fb1b03831115613403575f5ffd5b8260051b80858437919091019392505050565b80820180821115611573576115736132a6565b5f60208284031215613439575f5ffd5b81356001600160a01b0381168114610637575f5ffd5b5f5f8335601e19843603018112613464575f5ffd5b8301803591506001600160401b0382111561347d575f5ffd5b6020019150600581901b3603821315612f2b575f5ffd5b5f602082840312156134a4575f5ffd5b813560ff81168114610637575f5ffd5b634e487b7160e01b5f52601260045260245ffd5b5f826134d6576134d66134b4565b500490565b81810381811115611573576115736132a6565b634e487b7160e01b5f52603260045260245ffd5b5f81518060208401855e5f93019283525090919050565b5f6135248286613502565b6001600160e01b031994909416845250506001600160c01b0319166004820152600c01919050565b5f8261355a5761355a6134b4565b500690565b5f823560be19833603018112613573575f5ffd5b9190910192915050565b5f8235603e19833603018112613573575f5ffd5b5f602082840312156135a1575f5ffd5b81356001600160f01b031981168114610637575f5ffd5b5f5f8335601e198436030181126135cd575f5ffd5b8301803591506001600160401b038211156135e6575f5ffd5b602001915036819003821315612f2b575f5ffd5b80356020831015611573575f19602084900360031b1b1692915050565b60ff8181168382160290811690818114613633576136336132a6565b5092915050565b5f6136458288613502565b6001600160f01b03198716815261365f6002820187613502565b9050838582375f9301928352509095945050505050565b5f6106378284613502565b5f60208284031215613691575f5ffd5b5051919050565b5f6136a38285613502565b9283525050602001919050565b634e487b7160e01b5f52602160045260245ffd5b5f60ff8316806136d6576136d66134b4565b8060ff84160691505092915050565b63ffffffff8181168382160190811115611573576115736132a656fe33333333333333333333333333333333333333333333333333333333333333330000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f555555555555555555555555555555555555555555555555555555555555555500ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ffa2646970667358221220202c864ac02de93c1a1157537ff1ffd06cd34fdd5fd4691a57792ee86aa15ae964736f6c63430008220033";
726
1027
  const isSuperArgs = (xs) => xs.length > 1;
727
1028
  class BeefyClient__factory extends ethers_1.ContractFactory {
728
1029
  constructor(...args) {
@@ -733,11 +1034,11 @@ class BeefyClient__factory extends ethers_1.ContractFactory {
733
1034
  super(_abi, _bytecode, args[0]);
734
1035
  }
735
1036
  }
736
- getDeployTransaction(_randaoCommitDelay, _randaoCommitExpiration, _minNumRequiredSignatures, _initialBeefyBlock, _initialValidatorSet, _nextValidatorSet, overrides) {
737
- return super.getDeployTransaction(_randaoCommitDelay, _randaoCommitExpiration, _minNumRequiredSignatures, _initialBeefyBlock, _initialValidatorSet, _nextValidatorSet, overrides || {});
1037
+ getDeployTransaction(_randaoCommitDelay, _randaoCommitExpiration, _minNumRequiredSignatures, _fiatShamirRequiredSignatures, _initialBeefyBlock, _initialValidatorSet, _nextValidatorSet, overrides) {
1038
+ return super.getDeployTransaction(_randaoCommitDelay, _randaoCommitExpiration, _minNumRequiredSignatures, _fiatShamirRequiredSignatures, _initialBeefyBlock, _initialValidatorSet, _nextValidatorSet, overrides || {});
738
1039
  }
739
- deploy(_randaoCommitDelay, _randaoCommitExpiration, _minNumRequiredSignatures, _initialBeefyBlock, _initialValidatorSet, _nextValidatorSet, overrides) {
740
- return super.deploy(_randaoCommitDelay, _randaoCommitExpiration, _minNumRequiredSignatures, _initialBeefyBlock, _initialValidatorSet, _nextValidatorSet, overrides || {});
1040
+ deploy(_randaoCommitDelay, _randaoCommitExpiration, _minNumRequiredSignatures, _fiatShamirRequiredSignatures, _initialBeefyBlock, _initialValidatorSet, _nextValidatorSet, overrides) {
1041
+ return super.deploy(_randaoCommitDelay, _randaoCommitExpiration, _minNumRequiredSignatures, _fiatShamirRequiredSignatures, _initialBeefyBlock, _initialValidatorSet, _nextValidatorSet, overrides || {});
741
1042
  }
742
1043
  connect(runner) {
743
1044
  return super.connect(runner);
@@ -105,16 +105,6 @@ export declare class IGatewayV1__factory {
105
105
  readonly internalType: "bytes32";
106
106
  }];
107
107
  readonly stateMutability: "view";
108
- }, {
109
- readonly type: "function";
110
- readonly name: "quoteRegisterTokenFee";
111
- readonly inputs: readonly [];
112
- readonly outputs: readonly [{
113
- readonly name: "";
114
- readonly type: "uint256";
115
- readonly internalType: "uint256";
116
- }];
117
- readonly stateMutability: "view";
118
108
  }, {
119
109
  readonly type: "function";
120
110
  readonly name: "quoteSendTokenFee";
@@ -137,16 +127,6 @@ export declare class IGatewayV1__factory {
137
127
  readonly internalType: "uint256";
138
128
  }];
139
129
  readonly stateMutability: "view";
140
- }, {
141
- readonly type: "function";
142
- readonly name: "registerToken";
143
- readonly inputs: readonly [{
144
- readonly name: "token";
145
- readonly type: "address";
146
- readonly internalType: "address";
147
- }];
148
- readonly outputs: readonly [];
149
- readonly stateMutability: "payable";
150
130
  }, {
151
131
  readonly type: "function";
152
132
  readonly name: "sendToken";
@@ -1 +1 @@
1
- {"version":3,"file":"IGatewayV1__factory.d.ts","sourceRoot":"","sources":["../../../src/factories/IGateway.sol/IGatewayV1__factory.ts"],"names":[],"mappings":"AAIA,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,QAAQ,CAAC;AAClE,OAAO,KAAK,EACV,UAAU,EACV,mBAAmB,EACpB,MAAM,+BAA+B,CAAC;AAgnBvC,qBAAa,mBAAmB;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAQ;IAC3B,MAAM,CAAC,eAAe,IAAI,mBAAmB;IAG7C,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,cAAc,GAAG,IAAI,GAAG,UAAU;CAG5E"}
1
+ {"version":3,"file":"IGatewayV1__factory.d.ts","sourceRoot":"","sources":["../../../src/factories/IGateway.sol/IGatewayV1__factory.ts"],"names":[],"mappings":"AAIA,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,QAAQ,CAAC;AAClE,OAAO,KAAK,EACV,UAAU,EACV,mBAAmB,EACpB,MAAM,+BAA+B,CAAC;AAslBvC,qBAAa,mBAAmB;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAQ;IAC3B,MAAM,CAAC,eAAe,IAAI,mBAAmB;IAG7C,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,cAAc,GAAG,IAAI,GAAG,UAAU;CAG5E"}
@@ -144,19 +144,6 @@ const _abi = [
144
144
  ],
145
145
  stateMutability: "view",
146
146
  },
147
- {
148
- type: "function",
149
- name: "quoteRegisterTokenFee",
150
- inputs: [],
151
- outputs: [
152
- {
153
- name: "",
154
- type: "uint256",
155
- internalType: "uint256",
156
- },
157
- ],
158
- stateMutability: "view",
159
- },
160
147
  {
161
148
  type: "function",
162
149
  name: "quoteSendTokenFee",
@@ -186,19 +173,6 @@ const _abi = [
186
173
  ],
187
174
  stateMutability: "view",
188
175
  },
189
- {
190
- type: "function",
191
- name: "registerToken",
192
- inputs: [
193
- {
194
- name: "token",
195
- type: "address",
196
- internalType: "address",
197
- },
198
- ],
199
- outputs: [],
200
- stateMutability: "payable",
201
- },
202
176
  {
203
177
  type: "function",
204
178
  name: "sendToken",
@@ -403,6 +403,10 @@ export declare class IGatewayV2__factory {
403
403
  readonly type: "error";
404
404
  readonly name: "InvalidAsset";
405
405
  readonly inputs: readonly [];
406
+ }, {
407
+ readonly type: "error";
408
+ readonly name: "InvalidCommand";
409
+ readonly inputs: readonly [];
406
410
  }, {
407
411
  readonly type: "error";
408
412
  readonly name: "InvalidNetwork";
@@ -1 +1 @@
1
- {"version":3,"file":"IGatewayV2__factory.d.ts","sourceRoot":"","sources":["../../../src/factories/IGateway.sol/IGatewayV2__factory.ts"],"names":[],"mappings":"AAIA,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,QAAQ,CAAC;AAClE,OAAO,KAAK,EACV,UAAU,EACV,mBAAmB,EACpB,MAAM,+BAA+B,CAAC;AA0hBvC,qBAAa,mBAAmB;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAQ;IAC3B,MAAM,CAAC,eAAe,IAAI,mBAAmB;IAG7C,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,cAAc,GAAG,IAAI,GAAG,UAAU;CAG5E"}
1
+ {"version":3,"file":"IGatewayV2__factory.d.ts","sourceRoot":"","sources":["../../../src/factories/IGateway.sol/IGatewayV2__factory.ts"],"names":[],"mappings":"AAIA,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,QAAQ,CAAC;AAClE,OAAO,KAAK,EACV,UAAU,EACV,mBAAmB,EACpB,MAAM,+BAA+B,CAAC;AA+hBvC,qBAAa,mBAAmB;IAC9B,MAAM,CAAC,QAAQ,CAAC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAQ;IAC3B,MAAM,CAAC,eAAe,IAAI,mBAAmB;IAG7C,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,cAAc,GAAG,IAAI,GAAG,UAAU;CAG5E"}
@@ -524,6 +524,11 @@ const _abi = [
524
524
  name: "InvalidAsset",
525
525
  inputs: [],
526
526
  },
527
+ {
528
+ type: "error",
529
+ name: "InvalidCommand",
530
+ inputs: [],
531
+ },
527
532
  {
528
533
  type: "error",
529
534
  name: "InvalidNetwork",