@layerzerolabs/lz-evm-sdk-v1 1.5.7 → 1.5.8

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 (36) hide show
  1. package/artifacts/contracts/interfaces/IContractOne.sol/IContractOne.json +24 -0
  2. package/artifacts/contracts/interfaces/ILayerZeroEndpoint.sol/ILayerZeroEndpoint.json +447 -0
  3. package/artifacts/contracts/interfaces/ILayerZeroMessagingLibrary.sol/ILayerZeroMessagingLibrary.json +160 -0
  4. package/artifacts/contracts/interfaces/ILayerZeroMessagingLibraryV2.sol/ILayerZeroMessagingLibraryV2.json +184 -0
  5. package/artifacts/contracts/interfaces/ILayerZeroOracle.sol/ILayerZeroOracle.json +77 -0
  6. package/artifacts/contracts/interfaces/ILayerZeroOracleV2.sol/ILayerZeroOracleV2.json +97 -0
  7. package/artifacts/contracts/interfaces/ILayerZeroPriceFeed.sol/ILayerZeroPriceFeed.json +107 -0
  8. package/artifacts/contracts/interfaces/ILayerZeroReceiver.sol/ILayerZeroReceiver.json +39 -0
  9. package/artifacts/contracts/interfaces/ILayerZeroRelayer.sol/ILayerZeroRelayer.json +92 -0
  10. package/artifacts/contracts/interfaces/ILayerZeroRelayerV2.sol/ILayerZeroRelayerV2.json +107 -0
  11. package/artifacts/contracts/interfaces/ILayerZeroRelayerV2PriceData.sol/ILayerZeroRelayerV2PriceData.json +83 -0
  12. package/artifacts/contracts/interfaces/ILayerZeroTreasury.sol/ILayerZeroTreasury.json +40 -0
  13. package/artifacts/contracts/interfaces/ILayerZeroUltraLightNodeV1.sol/ILayerZeroUltraLightNodeV1.json +156 -0
  14. package/artifacts/contracts/interfaces/ILayerZeroUltraLightNodeV2.sol/ILayerZeroUltraLightNodeV2.json +582 -0
  15. package/artifacts/contracts/interfaces/ILayerZeroUserApplicationConfig.sol/ILayerZeroUserApplicationConfig.json +83 -0
  16. package/artifacts/contracts/interfaces/ILayerZeroValidationLibrary.sol/ILayerZeroValidationLibrary.json +77 -0
  17. package/artifacts/contracts/interfaces/IValidationLibraryHelper.sol/IValidationLibraryHelper.json +146 -0
  18. package/artifacts/contracts/interfaces/IValidationLibraryHelperV2.sol/IValidationLibraryHelperV2.json +154 -0
  19. package/artifacts/contracts/proof/FPValidator.sol/FPValidator.json +326 -0
  20. package/artifacts/contracts/proof/FPValidator.sol/IStargate.json +10 -0
  21. package/artifacts/contracts/proof/MPTValidator.sol/MPTValidator.json +146 -0
  22. package/artifacts/contracts/proof/MPTValidator01.sol/IStargate.json +10 -0
  23. package/artifacts/contracts/proof/MPTValidator01.sol/MPTValidator01.json +339 -0
  24. package/artifacts/contracts/proof/MPTValidatorStgV3.sol/MPTValidatorStgV3.json +310 -0
  25. package/artifacts/contracts/proof/MPTValidatorV2.sol/MPTValidatorV2.json +212 -0
  26. package/artifacts/contracts/proof/MPTValidatorV4.sol/IStargate.json +10 -0
  27. package/artifacts/contracts/proof/MPTValidatorV4.sol/IUltraLightNode.json +108 -0
  28. package/artifacts/contracts/proof/MPTValidatorV4.sol/MPTValidatorV4.json +414 -0
  29. package/artifacts/contracts/proof/MPTValidatorV5.sol/IStargate.json +10 -0
  30. package/artifacts/contracts/proof/MPTValidatorV5.sol/IUltraLightNode.json +108 -0
  31. package/artifacts/contracts/proof/MPTValidatorV5.sol/MPTValidatorV5.json +432 -0
  32. package/artifacts/contracts/proof/utility/Buffer.sol/Buffer.json +10 -0
  33. package/artifacts/contracts/proof/utility/LayerZeroPacket.sol/LayerZeroPacket.json +10 -0
  34. package/artifacts/contracts/proof/utility/RLPDecode.sol/RLPDecode.json +10 -0
  35. package/artifacts/contracts/proof/utility/UltraLightNodeEVMDecoder.sol/UltraLightNodeEVMDecoder.json +10 -0
  36. package/package.json +8 -4
@@ -0,0 +1,108 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "IUltraLightNode",
4
+ "sourceName": "contracts/proof/MPTValidatorV5.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "uint16",
10
+ "name": "_chainId",
11
+ "type": "uint16"
12
+ },
13
+ {
14
+ "internalType": "address",
15
+ "name": "userApplicationAddress",
16
+ "type": "address"
17
+ }
18
+ ],
19
+ "name": "getAppConfig",
20
+ "outputs": [
21
+ {
22
+ "components": [
23
+ {
24
+ "internalType": "uint16",
25
+ "name": "inboundProofLibraryVersion",
26
+ "type": "uint16"
27
+ },
28
+ {
29
+ "internalType": "uint64",
30
+ "name": "inboundBlockConfirmations",
31
+ "type": "uint64"
32
+ },
33
+ {
34
+ "internalType": "address",
35
+ "name": "relayer",
36
+ "type": "address"
37
+ },
38
+ {
39
+ "internalType": "uint16",
40
+ "name": "outboundProofType",
41
+ "type": "uint16"
42
+ },
43
+ {
44
+ "internalType": "uint64",
45
+ "name": "outboundBlockConfirmations",
46
+ "type": "uint64"
47
+ },
48
+ {
49
+ "internalType": "address",
50
+ "name": "oracle",
51
+ "type": "address"
52
+ }
53
+ ],
54
+ "internalType": "struct IUltraLightNode.ApplicationConfiguration",
55
+ "name": "",
56
+ "type": "tuple"
57
+ }
58
+ ],
59
+ "stateMutability": "view",
60
+ "type": "function"
61
+ },
62
+ {
63
+ "inputs": [
64
+ {
65
+ "internalType": "address",
66
+ "name": "_oracle",
67
+ "type": "address"
68
+ },
69
+ {
70
+ "internalType": "uint16",
71
+ "name": "_remoteChainId",
72
+ "type": "uint16"
73
+ },
74
+ {
75
+ "internalType": "bytes32",
76
+ "name": "_lookupHash",
77
+ "type": "bytes32"
78
+ }
79
+ ],
80
+ "name": "getBlockHeaderData",
81
+ "outputs": [
82
+ {
83
+ "components": [
84
+ {
85
+ "internalType": "uint256",
86
+ "name": "confirmations",
87
+ "type": "uint256"
88
+ },
89
+ {
90
+ "internalType": "bytes32",
91
+ "name": "data",
92
+ "type": "bytes32"
93
+ }
94
+ ],
95
+ "internalType": "struct IUltraLightNode.BlockData",
96
+ "name": "blockData",
97
+ "type": "tuple"
98
+ }
99
+ ],
100
+ "stateMutability": "view",
101
+ "type": "function"
102
+ }
103
+ ],
104
+ "bytecode": "0x",
105
+ "deployedBytecode": "0x",
106
+ "linkReferences": {},
107
+ "deployedLinkReferences": {}
108
+ }
@@ -0,0 +1,432 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "MPTValidatorV5",
4
+ "sourceName": "contracts/proof/MPTValidatorV5.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "_stargateBridgeAddress",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "internalType": "address",
15
+ "name": "_stgTokenAddress",
16
+ "type": "address"
17
+ },
18
+ {
19
+ "internalType": "uint16",
20
+ "name": "_localChainId",
21
+ "type": "uint16"
22
+ },
23
+ {
24
+ "internalType": "address",
25
+ "name": "_ulnAddress",
26
+ "type": "address"
27
+ },
28
+ {
29
+ "internalType": "address",
30
+ "name": "_relayerAddress",
31
+ "type": "address"
32
+ }
33
+ ],
34
+ "stateMutability": "nonpayable",
35
+ "type": "constructor"
36
+ },
37
+ {
38
+ "inputs": [],
39
+ "name": "PACKET_SIGNATURE",
40
+ "outputs": [
41
+ {
42
+ "internalType": "bytes32",
43
+ "name": "",
44
+ "type": "bytes32"
45
+ }
46
+ ],
47
+ "stateMutability": "view",
48
+ "type": "function"
49
+ },
50
+ {
51
+ "inputs": [
52
+ {
53
+ "components": [
54
+ {
55
+ "internalType": "uint16",
56
+ "name": "srcChainId",
57
+ "type": "uint16"
58
+ },
59
+ {
60
+ "internalType": "uint16",
61
+ "name": "dstChainId",
62
+ "type": "uint16"
63
+ },
64
+ {
65
+ "internalType": "uint64",
66
+ "name": "nonce",
67
+ "type": "uint64"
68
+ },
69
+ {
70
+ "internalType": "address",
71
+ "name": "dstAddress",
72
+ "type": "address"
73
+ },
74
+ {
75
+ "internalType": "bytes",
76
+ "name": "srcAddress",
77
+ "type": "bytes"
78
+ },
79
+ {
80
+ "internalType": "bytes32",
81
+ "name": "ulnAddress",
82
+ "type": "bytes32"
83
+ },
84
+ {
85
+ "internalType": "bytes",
86
+ "name": "payload",
87
+ "type": "bytes"
88
+ }
89
+ ],
90
+ "internalType": "struct LayerZeroPacket.Packet",
91
+ "name": "packet",
92
+ "type": "tuple"
93
+ },
94
+ {
95
+ "internalType": "bytes32",
96
+ "name": "blockHash",
97
+ "type": "bytes32"
98
+ },
99
+ {
100
+ "internalType": "bytes32",
101
+ "name": "receiptsRoot",
102
+ "type": "bytes32"
103
+ }
104
+ ],
105
+ "name": "assertMessagePath",
106
+ "outputs": [],
107
+ "stateMutability": "view",
108
+ "type": "function"
109
+ },
110
+ {
111
+ "inputs": [
112
+ {
113
+ "internalType": "bytes",
114
+ "name": "data",
115
+ "type": "bytes"
116
+ },
117
+ {
118
+ "internalType": "uint16",
119
+ "name": "srcChain",
120
+ "type": "uint16"
121
+ },
122
+ {
123
+ "internalType": "uint256",
124
+ "name": "sizeOfSrcAddress",
125
+ "type": "uint256"
126
+ },
127
+ {
128
+ "internalType": "bytes32",
129
+ "name": "ulnAddress",
130
+ "type": "bytes32"
131
+ }
132
+ ],
133
+ "name": "getPacket",
134
+ "outputs": [
135
+ {
136
+ "components": [
137
+ {
138
+ "internalType": "uint16",
139
+ "name": "srcChainId",
140
+ "type": "uint16"
141
+ },
142
+ {
143
+ "internalType": "uint16",
144
+ "name": "dstChainId",
145
+ "type": "uint16"
146
+ },
147
+ {
148
+ "internalType": "uint64",
149
+ "name": "nonce",
150
+ "type": "uint64"
151
+ },
152
+ {
153
+ "internalType": "address",
154
+ "name": "dstAddress",
155
+ "type": "address"
156
+ },
157
+ {
158
+ "internalType": "bytes",
159
+ "name": "srcAddress",
160
+ "type": "bytes"
161
+ },
162
+ {
163
+ "internalType": "bytes32",
164
+ "name": "ulnAddress",
165
+ "type": "bytes32"
166
+ },
167
+ {
168
+ "internalType": "bytes",
169
+ "name": "payload",
170
+ "type": "bytes"
171
+ }
172
+ ],
173
+ "internalType": "struct LayerZeroPacket.Packet",
174
+ "name": "",
175
+ "type": "tuple"
176
+ }
177
+ ],
178
+ "stateMutability": "pure",
179
+ "type": "function"
180
+ },
181
+ {
182
+ "inputs": [],
183
+ "name": "getUtilsVersion",
184
+ "outputs": [
185
+ {
186
+ "internalType": "uint8",
187
+ "name": "",
188
+ "type": "uint8"
189
+ }
190
+ ],
191
+ "stateMutability": "view",
192
+ "type": "function"
193
+ },
194
+ {
195
+ "inputs": [
196
+ {
197
+ "internalType": "bytes32",
198
+ "name": "hashRoot",
199
+ "type": "bytes32"
200
+ },
201
+ {
202
+ "internalType": "uint256[]",
203
+ "name": "receiptSlotIndex",
204
+ "type": "uint256[]"
205
+ },
206
+ {
207
+ "internalType": "uint256",
208
+ "name": "logIndex",
209
+ "type": "uint256"
210
+ },
211
+ {
212
+ "internalType": "bytes[]",
213
+ "name": "proof",
214
+ "type": "bytes[]"
215
+ }
216
+ ],
217
+ "name": "getVerifyLog",
218
+ "outputs": [
219
+ {
220
+ "components": [
221
+ {
222
+ "internalType": "bytes32",
223
+ "name": "contractAddress",
224
+ "type": "bytes32"
225
+ },
226
+ {
227
+ "internalType": "bytes32",
228
+ "name": "topicZeroSig",
229
+ "type": "bytes32"
230
+ },
231
+ {
232
+ "internalType": "bytes",
233
+ "name": "data",
234
+ "type": "bytes"
235
+ }
236
+ ],
237
+ "internalType": "struct IValidationLibraryHelper.ULNLog",
238
+ "name": "",
239
+ "type": "tuple"
240
+ }
241
+ ],
242
+ "stateMutability": "pure",
243
+ "type": "function"
244
+ },
245
+ {
246
+ "inputs": [],
247
+ "name": "localChainId",
248
+ "outputs": [
249
+ {
250
+ "internalType": "uint16",
251
+ "name": "",
252
+ "type": "uint16"
253
+ }
254
+ ],
255
+ "stateMutability": "view",
256
+ "type": "function"
257
+ },
258
+ {
259
+ "inputs": [],
260
+ "name": "relayerAddress",
261
+ "outputs": [
262
+ {
263
+ "internalType": "address",
264
+ "name": "",
265
+ "type": "address"
266
+ }
267
+ ],
268
+ "stateMutability": "view",
269
+ "type": "function"
270
+ },
271
+ {
272
+ "inputs": [
273
+ {
274
+ "internalType": "bytes",
275
+ "name": "_payload",
276
+ "type": "bytes"
277
+ }
278
+ ],
279
+ "name": "secureStgPayload",
280
+ "outputs": [
281
+ {
282
+ "internalType": "bytes",
283
+ "name": "",
284
+ "type": "bytes"
285
+ }
286
+ ],
287
+ "stateMutability": "view",
288
+ "type": "function"
289
+ },
290
+ {
291
+ "inputs": [
292
+ {
293
+ "internalType": "bytes",
294
+ "name": "_payload",
295
+ "type": "bytes"
296
+ }
297
+ ],
298
+ "name": "secureStgTokenPayload",
299
+ "outputs": [
300
+ {
301
+ "internalType": "bytes",
302
+ "name": "",
303
+ "type": "bytes"
304
+ }
305
+ ],
306
+ "stateMutability": "pure",
307
+ "type": "function"
308
+ },
309
+ {
310
+ "inputs": [],
311
+ "name": "stargateBridgeAddress",
312
+ "outputs": [
313
+ {
314
+ "internalType": "address",
315
+ "name": "",
316
+ "type": "address"
317
+ }
318
+ ],
319
+ "stateMutability": "view",
320
+ "type": "function"
321
+ },
322
+ {
323
+ "inputs": [],
324
+ "name": "stgTokenAddress",
325
+ "outputs": [
326
+ {
327
+ "internalType": "address",
328
+ "name": "",
329
+ "type": "address"
330
+ }
331
+ ],
332
+ "stateMutability": "view",
333
+ "type": "function"
334
+ },
335
+ {
336
+ "inputs": [],
337
+ "name": "uln",
338
+ "outputs": [
339
+ {
340
+ "internalType": "contract IUltraLightNode",
341
+ "name": "",
342
+ "type": "address"
343
+ }
344
+ ],
345
+ "stateMutability": "view",
346
+ "type": "function"
347
+ },
348
+ {
349
+ "inputs": [],
350
+ "name": "utilsVersion",
351
+ "outputs": [
352
+ {
353
+ "internalType": "uint8",
354
+ "name": "",
355
+ "type": "uint8"
356
+ }
357
+ ],
358
+ "stateMutability": "view",
359
+ "type": "function"
360
+ },
361
+ {
362
+ "inputs": [
363
+ {
364
+ "internalType": "bytes32",
365
+ "name": "_receiptsRoot",
366
+ "type": "bytes32"
367
+ },
368
+ {
369
+ "internalType": "bytes",
370
+ "name": "_transactionProof",
371
+ "type": "bytes"
372
+ },
373
+ {
374
+ "internalType": "uint256",
375
+ "name": "_remoteAddressSize",
376
+ "type": "uint256"
377
+ }
378
+ ],
379
+ "name": "validateProof",
380
+ "outputs": [
381
+ {
382
+ "components": [
383
+ {
384
+ "internalType": "uint16",
385
+ "name": "srcChainId",
386
+ "type": "uint16"
387
+ },
388
+ {
389
+ "internalType": "uint16",
390
+ "name": "dstChainId",
391
+ "type": "uint16"
392
+ },
393
+ {
394
+ "internalType": "uint64",
395
+ "name": "nonce",
396
+ "type": "uint64"
397
+ },
398
+ {
399
+ "internalType": "address",
400
+ "name": "dstAddress",
401
+ "type": "address"
402
+ },
403
+ {
404
+ "internalType": "bytes",
405
+ "name": "srcAddress",
406
+ "type": "bytes"
407
+ },
408
+ {
409
+ "internalType": "bytes32",
410
+ "name": "ulnAddress",
411
+ "type": "bytes32"
412
+ },
413
+ {
414
+ "internalType": "bytes",
415
+ "name": "payload",
416
+ "type": "bytes"
417
+ }
418
+ ],
419
+ "internalType": "struct LayerZeroPacket.Packet",
420
+ "name": "",
421
+ "type": "tuple"
422
+ }
423
+ ],
424
+ "stateMutability": "view",
425
+ "type": "function"
426
+ }
427
+ ],
428
+ "bytecode": "0x6101206040526000805460ff191660031790553480156200001f57600080fd5b50604051620028b2380380620028b28339810160408190526200004291620000a3565b606094851b6001600160601b031990811660805293851b841660a05260f09290921b6001600160f01b03191660e052831b82166101005290911b1660c05262000119565b80516001600160a01b03811681146200009e57600080fd5b919050565b600080600080600060a08688031215620000bb578081fd5b620000c68662000086565b9450620000d66020870162000086565b9350604086015161ffff81168114620000ed578182fd5b9250620000fd6060870162000086565b91506200010d6080870162000086565b90509295509295909350565b60805160601c60a05160601c60c05160601c60e05160f01c6101005160601c61272c62000186600039806102d252806108ab528061097a52508061028a52806108015250806102265280610a0252508061024a528061046b5250806102ae5280610400525061272c6000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80636c473aff1161008c578063be9d395e11610066578063be9d395e146101c4578063d633ad61146101d9578063e0cabadd146101e1578063ea455df9146101f4576100ea565b80636c473aff1461018757806378d823f71461018f578063b71e0f71146101a4576100ea565b806347713b39116100c857806347713b39146101355780635711c2a81461014a5780635b056da51461016a5780636348d2691461017f576100ea565b80630f222e65146100ef57806318a7cca8146101185780633fc18d4c1461012d575b600080fd5b6101026100fd366004611bf2565b610207565b60405161010f919061248a565b60405180910390f35b610120610224565b60405161010f9190612119565b610120610248565b61013d61026c565b60405161010f91906124f2565b61015d610158366004611ce3565b610275565b60405161010f9190612175565b610172610288565b60405161010f91906124b9565b6101206102ac565b6101206102d0565b6101a261019d366004611e56565b6102f4565b005b6101b76101b2366004611c66565b610304565b60405161010f91906123e5565b6101cc6104e3565b60405161010f919061216c565b61013d610507565b6101b76101ef366004611d16565b610510565b61015d610202366004611ce3565b610524565b61020f6118ec565b61021b8585858561052f565b95945050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60005460ff1681565b6060610280826106de565b90505b919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b6102ff8383836107ff565b505050565b61030c61190b565b6000821161034f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610346906123ae565b60405180910390fd5b600080808080610361888a018a611f43565b9450945094509450945060006103798b84848761052f565b60208101519091507fe8d23d927749ec8e512eb885679c2977d57068839d8cca1a85685dbbea0648f6146103d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103469061224f565b805160408201516000916103f1919089908c90610b19565b90506103fe81878e6107ff565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16816060015173ffffffffffffffffffffffffffffffffffffffff161415610469576104638160c001516106de565b60c08201525b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16816060015173ffffffffffffffffffffffffffffffffffffffff1614156104d4576104ce8160c00151610c0f565b60c08201525b9b9a5050505050505050505050565b7fe8d23d927749ec8e512eb885679c2977d57068839d8cca1a85685dbbea0648f681565b60005460ff1690565b61051861190b565b61021b85858585610b19565b606061028082610c0f565b6105376118ec565b8151845114610572576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610346906121aa565b60008251116105ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103469061231a565b6105b5611949565b606060005b8451811015610661578481815181106105cf57fe5b6020026020010151915081805190602001208814610619576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161034690612218565b61063f87828151811061062857fe5b602002602001015161063984610cb9565b90610d2d565b925060018551038110156106595761065683610ee9565b97505b6001016105ba565b506000610672600361063985611006565b905060006106886106838389610d2d565b611092565b90506106926118ec565b6106a361069e8361113e565b610ee9565b81526106b661069e60006106398561113e565b60208201526106cc6106c78361113e565b6111ee565b60408201529998505050505050505050565b6020810151606090600160ff821614156107f8576000806000806000806000898060200190518101906107119190611fc8565b9750975097509750975097509750506000815111156107f05781516000901561073b575060148201515b803b806107ed5760008260405160200161075591906120e9565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152602083810183526000808552925191945091926107ab928f928f928f928f928f928f928b9201612500565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190529c506102839b505050505050505050505050565b50505b505050505050505b5090919050565b7f000000000000000000000000000000000000000000000000000000000000000061ffff16836020015161ffff1614610864576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161034690612286565b825160608401516040517fa466222200000000000000000000000000000000000000000000000000000000815260009273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169263a4662222926108e09291906004016124c8565b60c06040518083038186803b1580156108f857600080fd5b505afa15801561090c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109309190611db8565b60a081015185516040517febfa08e900000000000000000000000000000000000000000000000000000000815292935060009273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169263ebfa08e9926109af92899060040161213a565b604080518083038186803b1580156109c657600080fd5b505afa1580156109da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109fe9190611b0b565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16826040015173ffffffffffffffffffffffffffffffffffffffff1614610a89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610346906122e3565b82816020015114610ac6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610346906121e1565b816020015167ffffffffffffffff1681600001511015610b12576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161034690612351565b5050505050565b610b2161190b565b602085015160608601516068870151858801607c01519190610b41611963565b610b4b818961131b565b50610b5b8160008c60888c611355565b506000610b7389610b6d86601c61142f565b9061142f565b9050610b7d611963565b610b87818361131b565b50610ba360008d610b998d609c6114a6565b8492919086611355565b506040805160e08101825261ffff808e16825298909816602089015267ffffffffffffffff909416938701939093525073ffffffffffffffffffffffffffffffffffffffff9093166060850152915160808401525060a082018490525160c08201529050949350505050565b606060008083806020019051810190610c289190611d73565b9150915060008083511115610c3e575060148201515b73ffffffffffffffffffffffffffffffffffffffff8116610cb05760405161dead90600090610c719083906020016120e9565b60405160208183030381529060405290508084604051602001610c95929190612188565b60405160208183030381529060405295505050505050610283565b50929392505050565b610cc1611949565b602082018051835160009190911a908015801590610ce2575060c060ff8316105b15610d1157600192909201917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015b6040805180820190915290815260208101929092525092915050565b610d35611949565b610d3e83611521565b610d93576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806126b56021913960400191505060405180910390fd5b610d9c8361155b565b8210610e0957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f524c50206974656d206f7574206f6620626f756e647300000000000000000000604482015290519081900360640190fd5b8251602084015190810190600090610e20906115b3565b60208601510190506000805b85811015610e4b57610e3d83611652565b928301929150600101610e2c565b50610e5582611652565b9050828183011115610ec857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f524c50206974656d206f766572666c6f77000000000000000000000000000000604482015290519081900360640190fd5b60405180604001604052808281526020018381525093505050505b92915050565b805160009015801590610efe57508151602110155b610f6957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f524c504465636f64657220746f55696e7420696e76616c6964206c656e677468604482015290519081900360640190fd5b6000610f7883602001516115b3565b90508083600001511015610fd7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061268d6028913960400191505060405180910390fd5b825160208085015183018051928490039291831015610ffd57826020036101000a820491505b50949350505050565b61100e611949565b600061101d83602001516115b3565b60208401518451908201805192935060009290921a91908015801590611046575060c060ff8416105b1561107557600191909101907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015b604080518082019091529081526020810191909152949350505050565b61109a61197d565b6110a382611521565b61110e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f524c504465636f646572206974657261746f72206973206e6f74206c69737400604482015290519081900360640190fd5b600061111d83602001516115b3565b60208085015160408051808201909152868152920190820152915050919050565b611146611949565b61114f82611727565b6111ba57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f524c504465636f646572206974657261746f7220686173206e6f206e65787400604482015290519081900360640190fd5b602082015160006111ca82611652565b80830160209586015260408051808201909152908152938401919091525090919050565b8051606090611248576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806126d66021913960400191505060405180910390fd5b600061125783602001516115b3565b905080836000015110156112b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061268d6028913960400191505060405180910390fd5b825181900360008167ffffffffffffffff811180156112d457600080fd5b506040519080825280601f01601f1916602001820160405280156112ff576020820181803683370190505b5090506000816020019050610ffd84876020015101828561173c565b611323611963565b60208206156113385760208206602003820191505b506020828101829052604080518085526000815290920101905290565b61135d611963565b85602001518286011115611387576113878661137f88602001518886016117c3565b6002026117da565b6000808751805188602083010193508089870111156113a65788860182525b5050508484015b602084106113ea57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090930192602091820191016113ad565b5181517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60208690036101000a01908116901991909116179052508495945050505050565b6000828211156114a057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60008282018381101561151a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b805160009061153257506000610283565b6020820151805160001a9060c082101561155157600092505050610283565b5060019392505050565b805160009061156c57506000610283565b60008061157c84602001516115b3565b602085015185519181019250015b808210156115aa5761159b82611652565b6001909301929091019061158a565b50909392505050565b8051600090811a60808110156115cd576000915050610283565b60b88110806115e8575060c081108015906115e8575060f881105b156115f7576001915050610283565b60c0811015611629577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4a019050610283565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0a019050610283565b80516000908190811a608081101561166d5760019150611720565b60b88110156116a0577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8181019150611720565b60c08110156116cd5760b78103600185019450806020036101000a85510460018201810193505050611720565b60f8811015611700577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4181019150611720565b60f78103600185019450806020036101000a855104600182018101935050505b5092915050565b80518051602091820151919092015191011190565b80611746576102ff565b5b602081106117845782518252602092830192909101907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001611747565b915181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0180199091169216919091179052565b6000818311156117d4575081610ee3565b50919050565b81516117e6838361131b565b506117f183826117f7565b50505050565b6117ff611963565b61151a83846000015151848551611814611963565b825182111561182257600080fd5b84602001518285011115611844576118448561137f87602001518786016117c3565b6000808651805187602083010193508088870111156118635787860182525b505050602084015b602084106118a857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909301926020918201910161186b565b5181517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60208690036101000a019081169019919091161790525083949350505050565b6040805160608082018352600080835260208301529181019190915290565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820181905260a082019290925260c081019190915290565b604051806040016040528060008152602001600081525090565b604051806040016040528060608152602001600081525090565b6040518060400160405280611990611949565b8152602001600081525090565b803561028381612641565b805161028381612641565b600082601f8301126119c3578081fd5b813560206119d86119d3836125b7565b612593565b82815281810190858301855b85811015611a0d576119fb898684358b0101611a74565b845292840192908401906001016119e4565b5090979650505050505050565b600082601f830112611a2a578081fd5b81356020611a3a6119d3836125b7565b8281528181019085830183850287018401881015611a56578586fd5b855b85811015611a0d57813584529284019290840190600101611a58565b600082601f830112611a84578081fd5b8135611a926119d3826125d5565b818152846020838601011115611aa6578283fd5b816020850160208301379081016020019190915292915050565b600082601f830112611ad0578081fd5b8151611ade6119d3826125d5565b818152846020838601011115611af2578283fd5b611b03826020830160208701612615565b949350505050565b600060408284031215611b1c578081fd5b6040516040810181811067ffffffffffffffff82111715611b3957fe5b604052825181526020928301519281019290925250919050565b600060c08284031215611b64578081fd5b60405160c0810181811067ffffffffffffffff82111715611b8157fe5b8060405250809150825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a08201525092915050565b803561028381612666565b805161028381612666565b803561028381612676565b805161028381612676565b60008060008060808587031215611c07578384fd5b84359350602085013567ffffffffffffffff80821115611c25578485fd5b611c3188838901611a1a565b9450604087013593506060870135915080821115611c4d578283fd5b50611c5a878288016119b3565b91505092959194509250565b60008060008060608587031215611c7b578182fd5b84359350602085013567ffffffffffffffff80821115611c99578384fd5b818701915087601f830112611cac578384fd5b813581811115611cba578485fd5b886020828501011115611ccb578485fd5b95986020929092019750949560400135945092505050565b600060208284031215611cf4578081fd5b813567ffffffffffffffff811115611d0a578182fd5b611b0384828501611a74565b60008060008060808587031215611d2b578182fd5b843567ffffffffffffffff811115611d41578283fd5b611d4d87828801611a74565b9450506020850135611d5e81612666565b93969395505050506040820135916060013590565b60008060408385031215611d85578182fd5b825167ffffffffffffffff811115611d9b578283fd5b611da785828601611ac0565b925050602083015190509250929050565b600060c08284031215611dc9578081fd5b60405160c0810181811067ffffffffffffffff82111715611de657fe5b6040528251611df481612666565b81526020830151611e0481612676565b60208201526040830151611e1781612641565b6040820152611e2860608401611bd1565b6060820152611e3960808401611be7565b6080820152611e4a60a084016119a8565b60a08201529392505050565b600080600060608486031215611e6a578081fd5b833567ffffffffffffffff80821115611e81578283fd5b9085019060e08288031215611e94578283fd5b611e9e60e0612593565b611ea783611bc6565b8152611eb560208401611bc6565b6020820152611ec660408401611bdc565b6040820152611ed76060840161199d565b6060820152608083013582811115611eed578485fd5b611ef989828601611a74565b60808301525060a083013560a082015260c083013582811115611f1a578485fd5b611f2689828601611a74565b60c083015250976020870135975060409096013595945050505050565b600080600080600060a08688031215611f5a578283fd5b8535611f6581612666565b945060208601359350604086013567ffffffffffffffff80821115611f88578485fd5b611f9489838a016119b3565b94506060880135915080821115611fa9578283fd5b50611fb688828901611a1a565b95989497509295608001359392505050565b6000806000806000806000806101c0898b031215611fe4578586fd5b885160ff81168114611ff4578687fd5b8098505060208901519650604089015195506060890151945061201a8a60808b01611b0b565b93506120298a60c08b01611b53565b925061018089015167ffffffffffffffff80821115612046578384fd5b6120528c838d01611ac0565b93506101a08b0151915080821115612068578283fd5b506120758b828c01611ac0565b9150509295985092959890939650565b73ffffffffffffffffffffffffffffffffffffffff169052565b600081518084526120b7816020860160208601612615565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60609190911b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016815260140190565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff93909316835261ffff919091166020830152604082015260600190565b90815260200190565b60006020825261151a602083018461209f565b60006040825261219b604083018561209f565b90508260208301529392505050565b6020808252601c908201527f50726f6f664c69623a20696e76616c69642070726f6f662073697a6500000000604082015260600190565b6020808252601e908201527f50726f6f664c69623a20696e76616c6964207265636569707420726f6f740000604082015260600190565b6020808252601a908201527f50726f6f664c69623a20696e76616c696420686173686c696e6b000000000000604082015260600190565b6020808252601f908201527f50726f6f664c69623a207061636b6574206e6f74207265636f676e697a656400604082015260600190565b60208082526026908201527f50726f6f664c69623a20696e76616c69642064657374696e6174696f6e20636860408201527f61696e2049440000000000000000000000000000000000000000000000000000606082015260800190565b60208082526019908201527f50726f6f664c69623a20696e76616c69642072656c6179657200000000000000604082015260600190565b6020808252601d908201527f50726f6f664c69623a2070726f6f662073697a65206d757374203e2030000000604082015260600190565b60208082526028908201527f50726f6f664c69623a206e6f7420656e6f75676820626c6f636b20636f6e666960408201527f726d6174696f6e73000000000000000000000000000000000000000000000000606082015260800190565b6020808252601e908201527f50726f6f664c69623a20696e76616c696420616464726573732073697a650000604082015260600190565b60006020825261ffff8084511660208401528060208501511660408401525067ffffffffffffffff6040840151166060830152606083015161242a6080840182612085565b50608083015160e060a084015261244561010084018261209f565b905060a084015160c084015260c08401517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08483030160e085015261021b828261209f565b60006020825282516020830152602083015160408301526040830151606080840152611b03608084018261209f565b61ffff91909116815260200190565b61ffff92909216825273ffffffffffffffffffffffffffffffffffffffff16602082015260400190565b60ff91909116815260200190565b60006101c060ff8b16835289602084015288604084015287606084015286516080840152602087015160a0840152855160c0840152602086015160e084015260408601516101008401526060860151610120840152608086015161014084015260a08601516101608401528061018084015261257e8184018661209f565b90508281036101a08401526104d4818561209f565b60405181810167ffffffffffffffff811182821017156125af57fe5b604052919050565b600067ffffffffffffffff8211156125cb57fe5b5060209081020190565b600067ffffffffffffffff8211156125e957fe5b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b83811015612630578181015183820152602001612618565b838111156117f15750506000910152565b73ffffffffffffffffffffffffffffffffffffffff8116811461266357600080fd5b50565b61ffff8116811461266357600080fd5b67ffffffffffffffff8116811461266357600080fdfe524c504465636f6465723a20696e76616c696420524c50206974656d206f66667365742073697a65524c504465636f646572206974657261746f72206973206e6f742061206c697374524c504465636f64657220746f427974657320696e76616c6964206c656e677468a2646970667358221220c0a0cc561bab490178e62118ab24c90e682f1acf6178153cf0bbb703e286906064736f6c63430007060033",
429
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100ea5760003560e01c80636c473aff1161008c578063be9d395e11610066578063be9d395e146101c4578063d633ad61146101d9578063e0cabadd146101e1578063ea455df9146101f4576100ea565b80636c473aff1461018757806378d823f71461018f578063b71e0f71146101a4576100ea565b806347713b39116100c857806347713b39146101355780635711c2a81461014a5780635b056da51461016a5780636348d2691461017f576100ea565b80630f222e65146100ef57806318a7cca8146101185780633fc18d4c1461012d575b600080fd5b6101026100fd366004611bf2565b610207565b60405161010f919061248a565b60405180910390f35b610120610224565b60405161010f9190612119565b610120610248565b61013d61026c565b60405161010f91906124f2565b61015d610158366004611ce3565b610275565b60405161010f9190612175565b610172610288565b60405161010f91906124b9565b6101206102ac565b6101206102d0565b6101a261019d366004611e56565b6102f4565b005b6101b76101b2366004611c66565b610304565b60405161010f91906123e5565b6101cc6104e3565b60405161010f919061216c565b61013d610507565b6101b76101ef366004611d16565b610510565b61015d610202366004611ce3565b610524565b61020f6118ec565b61021b8585858561052f565b95945050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60005460ff1681565b6060610280826106de565b90505b919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b6102ff8383836107ff565b505050565b61030c61190b565b6000821161034f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610346906123ae565b60405180910390fd5b600080808080610361888a018a611f43565b9450945094509450945060006103798b84848761052f565b60208101519091507fe8d23d927749ec8e512eb885679c2977d57068839d8cca1a85685dbbea0648f6146103d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103469061224f565b805160408201516000916103f1919089908c90610b19565b90506103fe81878e6107ff565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16816060015173ffffffffffffffffffffffffffffffffffffffff161415610469576104638160c001516106de565b60c08201525b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16816060015173ffffffffffffffffffffffffffffffffffffffff1614156104d4576104ce8160c00151610c0f565b60c08201525b9b9a5050505050505050505050565b7fe8d23d927749ec8e512eb885679c2977d57068839d8cca1a85685dbbea0648f681565b60005460ff1690565b61051861190b565b61021b85858585610b19565b606061028082610c0f565b6105376118ec565b8151845114610572576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610346906121aa565b60008251116105ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103469061231a565b6105b5611949565b606060005b8451811015610661578481815181106105cf57fe5b6020026020010151915081805190602001208814610619576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161034690612218565b61063f87828151811061062857fe5b602002602001015161063984610cb9565b90610d2d565b925060018551038110156106595761065683610ee9565b97505b6001016105ba565b506000610672600361063985611006565b905060006106886106838389610d2d565b611092565b90506106926118ec565b6106a361069e8361113e565b610ee9565b81526106b661069e60006106398561113e565b60208201526106cc6106c78361113e565b6111ee565b60408201529998505050505050505050565b6020810151606090600160ff821614156107f8576000806000806000806000898060200190518101906107119190611fc8565b9750975097509750975097509750506000815111156107f05781516000901561073b575060148201515b803b806107ed5760008260405160200161075591906120e9565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152602083810183526000808552925191945091926107ab928f928f928f928f928f928f928b9201612500565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190529c506102839b505050505050505050505050565b50505b505050505050505b5090919050565b7f000000000000000000000000000000000000000000000000000000000000000061ffff16836020015161ffff1614610864576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161034690612286565b825160608401516040517fa466222200000000000000000000000000000000000000000000000000000000815260009273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169263a4662222926108e09291906004016124c8565b60c06040518083038186803b1580156108f857600080fd5b505afa15801561090c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109309190611db8565b60a081015185516040517febfa08e900000000000000000000000000000000000000000000000000000000815292935060009273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169263ebfa08e9926109af92899060040161213a565b604080518083038186803b1580156109c657600080fd5b505afa1580156109da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109fe9190611b0b565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16826040015173ffffffffffffffffffffffffffffffffffffffff1614610a89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610346906122e3565b82816020015114610ac6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610346906121e1565b816020015167ffffffffffffffff1681600001511015610b12576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161034690612351565b5050505050565b610b2161190b565b602085015160608601516068870151858801607c01519190610b41611963565b610b4b818961131b565b50610b5b8160008c60888c611355565b506000610b7389610b6d86601c61142f565b9061142f565b9050610b7d611963565b610b87818361131b565b50610ba360008d610b998d609c6114a6565b8492919086611355565b506040805160e08101825261ffff808e16825298909816602089015267ffffffffffffffff909416938701939093525073ffffffffffffffffffffffffffffffffffffffff9093166060850152915160808401525060a082018490525160c08201529050949350505050565b606060008083806020019051810190610c289190611d73565b9150915060008083511115610c3e575060148201515b73ffffffffffffffffffffffffffffffffffffffff8116610cb05760405161dead90600090610c719083906020016120e9565b60405160208183030381529060405290508084604051602001610c95929190612188565b60405160208183030381529060405295505050505050610283565b50929392505050565b610cc1611949565b602082018051835160009190911a908015801590610ce2575060c060ff8316105b15610d1157600192909201917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015b6040805180820190915290815260208101929092525092915050565b610d35611949565b610d3e83611521565b610d93576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806126b56021913960400191505060405180910390fd5b610d9c8361155b565b8210610e0957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f524c50206974656d206f7574206f6620626f756e647300000000000000000000604482015290519081900360640190fd5b8251602084015190810190600090610e20906115b3565b60208601510190506000805b85811015610e4b57610e3d83611652565b928301929150600101610e2c565b50610e5582611652565b9050828183011115610ec857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f524c50206974656d206f766572666c6f77000000000000000000000000000000604482015290519081900360640190fd5b60405180604001604052808281526020018381525093505050505b92915050565b805160009015801590610efe57508151602110155b610f6957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f524c504465636f64657220746f55696e7420696e76616c6964206c656e677468604482015290519081900360640190fd5b6000610f7883602001516115b3565b90508083600001511015610fd7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061268d6028913960400191505060405180910390fd5b825160208085015183018051928490039291831015610ffd57826020036101000a820491505b50949350505050565b61100e611949565b600061101d83602001516115b3565b60208401518451908201805192935060009290921a91908015801590611046575060c060ff8416105b1561107557600191909101907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015b604080518082019091529081526020810191909152949350505050565b61109a61197d565b6110a382611521565b61110e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f524c504465636f646572206974657261746f72206973206e6f74206c69737400604482015290519081900360640190fd5b600061111d83602001516115b3565b60208085015160408051808201909152868152920190820152915050919050565b611146611949565b61114f82611727565b6111ba57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f524c504465636f646572206974657261746f7220686173206e6f206e65787400604482015290519081900360640190fd5b602082015160006111ca82611652565b80830160209586015260408051808201909152908152938401919091525090919050565b8051606090611248576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806126d66021913960400191505060405180910390fd5b600061125783602001516115b3565b905080836000015110156112b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061268d6028913960400191505060405180910390fd5b825181900360008167ffffffffffffffff811180156112d457600080fd5b506040519080825280601f01601f1916602001820160405280156112ff576020820181803683370190505b5090506000816020019050610ffd84876020015101828561173c565b611323611963565b60208206156113385760208206602003820191505b506020828101829052604080518085526000815290920101905290565b61135d611963565b85602001518286011115611387576113878661137f88602001518886016117c3565b6002026117da565b6000808751805188602083010193508089870111156113a65788860182525b5050508484015b602084106113ea57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090930192602091820191016113ad565b5181517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60208690036101000a01908116901991909116179052508495945050505050565b6000828211156114a057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60008282018381101561151a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b805160009061153257506000610283565b6020820151805160001a9060c082101561155157600092505050610283565b5060019392505050565b805160009061156c57506000610283565b60008061157c84602001516115b3565b602085015185519181019250015b808210156115aa5761159b82611652565b6001909301929091019061158a565b50909392505050565b8051600090811a60808110156115cd576000915050610283565b60b88110806115e8575060c081108015906115e8575060f881105b156115f7576001915050610283565b60c0811015611629577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4a019050610283565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0a019050610283565b80516000908190811a608081101561166d5760019150611720565b60b88110156116a0577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8181019150611720565b60c08110156116cd5760b78103600185019450806020036101000a85510460018201810193505050611720565b60f8811015611700577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4181019150611720565b60f78103600185019450806020036101000a855104600182018101935050505b5092915050565b80518051602091820151919092015191011190565b80611746576102ff565b5b602081106117845782518252602092830192909101907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001611747565b915181516020939093036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0180199091169216919091179052565b6000818311156117d4575081610ee3565b50919050565b81516117e6838361131b565b506117f183826117f7565b50505050565b6117ff611963565b61151a83846000015151848551611814611963565b825182111561182257600080fd5b84602001518285011115611844576118448561137f87602001518786016117c3565b6000808651805187602083010193508088870111156118635787860182525b505050602084015b602084106118a857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909301926020918201910161186b565b5181517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60208690036101000a019081169019919091161790525083949350505050565b6040805160608082018352600080835260208301529181019190915290565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820181905260a082019290925260c081019190915290565b604051806040016040528060008152602001600081525090565b604051806040016040528060608152602001600081525090565b6040518060400160405280611990611949565b8152602001600081525090565b803561028381612641565b805161028381612641565b600082601f8301126119c3578081fd5b813560206119d86119d3836125b7565b612593565b82815281810190858301855b85811015611a0d576119fb898684358b0101611a74565b845292840192908401906001016119e4565b5090979650505050505050565b600082601f830112611a2a578081fd5b81356020611a3a6119d3836125b7565b8281528181019085830183850287018401881015611a56578586fd5b855b85811015611a0d57813584529284019290840190600101611a58565b600082601f830112611a84578081fd5b8135611a926119d3826125d5565b818152846020838601011115611aa6578283fd5b816020850160208301379081016020019190915292915050565b600082601f830112611ad0578081fd5b8151611ade6119d3826125d5565b818152846020838601011115611af2578283fd5b611b03826020830160208701612615565b949350505050565b600060408284031215611b1c578081fd5b6040516040810181811067ffffffffffffffff82111715611b3957fe5b604052825181526020928301519281019290925250919050565b600060c08284031215611b64578081fd5b60405160c0810181811067ffffffffffffffff82111715611b8157fe5b8060405250809150825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a08201525092915050565b803561028381612666565b805161028381612666565b803561028381612676565b805161028381612676565b60008060008060808587031215611c07578384fd5b84359350602085013567ffffffffffffffff80821115611c25578485fd5b611c3188838901611a1a565b9450604087013593506060870135915080821115611c4d578283fd5b50611c5a878288016119b3565b91505092959194509250565b60008060008060608587031215611c7b578182fd5b84359350602085013567ffffffffffffffff80821115611c99578384fd5b818701915087601f830112611cac578384fd5b813581811115611cba578485fd5b886020828501011115611ccb578485fd5b95986020929092019750949560400135945092505050565b600060208284031215611cf4578081fd5b813567ffffffffffffffff811115611d0a578182fd5b611b0384828501611a74565b60008060008060808587031215611d2b578182fd5b843567ffffffffffffffff811115611d41578283fd5b611d4d87828801611a74565b9450506020850135611d5e81612666565b93969395505050506040820135916060013590565b60008060408385031215611d85578182fd5b825167ffffffffffffffff811115611d9b578283fd5b611da785828601611ac0565b925050602083015190509250929050565b600060c08284031215611dc9578081fd5b60405160c0810181811067ffffffffffffffff82111715611de657fe5b6040528251611df481612666565b81526020830151611e0481612676565b60208201526040830151611e1781612641565b6040820152611e2860608401611bd1565b6060820152611e3960808401611be7565b6080820152611e4a60a084016119a8565b60a08201529392505050565b600080600060608486031215611e6a578081fd5b833567ffffffffffffffff80821115611e81578283fd5b9085019060e08288031215611e94578283fd5b611e9e60e0612593565b611ea783611bc6565b8152611eb560208401611bc6565b6020820152611ec660408401611bdc565b6040820152611ed76060840161199d565b6060820152608083013582811115611eed578485fd5b611ef989828601611a74565b60808301525060a083013560a082015260c083013582811115611f1a578485fd5b611f2689828601611a74565b60c083015250976020870135975060409096013595945050505050565b600080600080600060a08688031215611f5a578283fd5b8535611f6581612666565b945060208601359350604086013567ffffffffffffffff80821115611f88578485fd5b611f9489838a016119b3565b94506060880135915080821115611fa9578283fd5b50611fb688828901611a1a565b95989497509295608001359392505050565b6000806000806000806000806101c0898b031215611fe4578586fd5b885160ff81168114611ff4578687fd5b8098505060208901519650604089015195506060890151945061201a8a60808b01611b0b565b93506120298a60c08b01611b53565b925061018089015167ffffffffffffffff80821115612046578384fd5b6120528c838d01611ac0565b93506101a08b0151915080821115612068578283fd5b506120758b828c01611ac0565b9150509295985092959890939650565b73ffffffffffffffffffffffffffffffffffffffff169052565b600081518084526120b7816020860160208601612615565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60609190911b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016815260140190565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff93909316835261ffff919091166020830152604082015260600190565b90815260200190565b60006020825261151a602083018461209f565b60006040825261219b604083018561209f565b90508260208301529392505050565b6020808252601c908201527f50726f6f664c69623a20696e76616c69642070726f6f662073697a6500000000604082015260600190565b6020808252601e908201527f50726f6f664c69623a20696e76616c6964207265636569707420726f6f740000604082015260600190565b6020808252601a908201527f50726f6f664c69623a20696e76616c696420686173686c696e6b000000000000604082015260600190565b6020808252601f908201527f50726f6f664c69623a207061636b6574206e6f74207265636f676e697a656400604082015260600190565b60208082526026908201527f50726f6f664c69623a20696e76616c69642064657374696e6174696f6e20636860408201527f61696e2049440000000000000000000000000000000000000000000000000000606082015260800190565b60208082526019908201527f50726f6f664c69623a20696e76616c69642072656c6179657200000000000000604082015260600190565b6020808252601d908201527f50726f6f664c69623a2070726f6f662073697a65206d757374203e2030000000604082015260600190565b60208082526028908201527f50726f6f664c69623a206e6f7420656e6f75676820626c6f636b20636f6e666960408201527f726d6174696f6e73000000000000000000000000000000000000000000000000606082015260800190565b6020808252601e908201527f50726f6f664c69623a20696e76616c696420616464726573732073697a650000604082015260600190565b60006020825261ffff8084511660208401528060208501511660408401525067ffffffffffffffff6040840151166060830152606083015161242a6080840182612085565b50608083015160e060a084015261244561010084018261209f565b905060a084015160c084015260c08401517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08483030160e085015261021b828261209f565b60006020825282516020830152602083015160408301526040830151606080840152611b03608084018261209f565b61ffff91909116815260200190565b61ffff92909216825273ffffffffffffffffffffffffffffffffffffffff16602082015260400190565b60ff91909116815260200190565b60006101c060ff8b16835289602084015288604084015287606084015286516080840152602087015160a0840152855160c0840152602086015160e084015260408601516101008401526060860151610120840152608086015161014084015260a08601516101608401528061018084015261257e8184018661209f565b90508281036101a08401526104d4818561209f565b60405181810167ffffffffffffffff811182821017156125af57fe5b604052919050565b600067ffffffffffffffff8211156125cb57fe5b5060209081020190565b600067ffffffffffffffff8211156125e957fe5b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b83811015612630578181015183820152602001612618565b838111156117f15750506000910152565b73ffffffffffffffffffffffffffffffffffffffff8116811461266357600080fd5b50565b61ffff8116811461266357600080fd5b67ffffffffffffffff8116811461266357600080fdfe524c504465636f6465723a20696e76616c696420524c50206974656d206f66667365742073697a65524c504465636f646572206974657261746f72206973206e6f742061206c697374524c504465636f64657220746f427974657320696e76616c6964206c656e677468a2646970667358221220c0a0cc561bab490178e62118ab24c90e682f1acf6178153cf0bbb703e286906064736f6c63430007060033",
430
+ "linkReferences": {},
431
+ "deployedLinkReferences": {}
432
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "Buffer",
4
+ "sourceName": "contracts/proof/utility/Buffer.sol",
5
+ "abi": [],
6
+ "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212206aa54774ada31ceecce50e0c01f4ec8438ad69ddf2928daa75d90f77e41347f364736f6c63430007060033",
7
+ "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212206aa54774ada31ceecce50e0c01f4ec8438ad69ddf2928daa75d90f77e41347f364736f6c63430007060033",
8
+ "linkReferences": {},
9
+ "deployedLinkReferences": {}
10
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "LayerZeroPacket",
4
+ "sourceName": "contracts/proof/utility/LayerZeroPacket.sol",
5
+ "abi": [],
6
+ "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204862fadce35c4c51922ff1d2f08ef69018f1d225c1c35067ce6b0602b664201d64736f6c63430007060033",
7
+ "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204862fadce35c4c51922ff1d2f08ef69018f1d225c1c35067ce6b0602b664201d64736f6c63430007060033",
8
+ "linkReferences": {},
9
+ "deployedLinkReferences": {}
10
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "RLPDecode",
4
+ "sourceName": "contracts/proof/utility/RLPDecode.sol",
5
+ "abi": [],
6
+ "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122051dccc9eb1ef46123c1e0f7ad608cd80ab455d3defa32d79948379fd969c9f3964736f6c63430007060033",
7
+ "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122051dccc9eb1ef46123c1e0f7ad608cd80ab455d3defa32d79948379fd969c9f3964736f6c63430007060033",
8
+ "linkReferences": {},
9
+ "deployedLinkReferences": {}
10
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "UltraLightNodeEVMDecoder",
4
+ "sourceName": "contracts/proof/utility/UltraLightNodeEVMDecoder.sol",
5
+ "abi": [],
6
+ "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220dc7ef69620ba35df012ee6e61798a052909a3346c14c6a7296c7ec12346ef34264736f6c63430007060033",
7
+ "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220dc7ef69620ba35df012ee6e61798a052909a3346c14c6a7296c7ec12346ef34264736f6c63430007060033",
8
+ "linkReferences": {},
9
+ "deployedLinkReferences": {}
10
+ }