/
index.js
367 lines (367 loc) · 24.8 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
module.exports = {
"CallExecutor": {
"address": "0xDE61dfE5fbF3F4Df70B16D0618f69B96A2754bf8",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "proxyCall",
"outputs": [],
"stateMutability": "payable",
"type": "function"
}
],
"bytecode": "0x608060405234801561001057600080fd5b50610118806100206000396000f3fe60806040526004361061001e5760003560e01c80632a31f6b414610023575b600080fd5b6100e66004803603604081101561003957600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516919081019060408101602082013564010000000081111561007157600080fd5b82018360208201111561008357600080fd5b803590602001918460018302840111640100000000831117156100a557600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506100e8945050505050565b005b60008082516020840134865af13d6000803e808015610106573d6000f35b3d6000fdfea164736f6c634300080a000a",
"deployedBytecode": "0x60806040526004361061001e5760003560e01c80632a31f6b414610023575b600080fd5b6100e66004803603604081101561003957600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516919081019060408101602082013564010000000081111561007157600080fd5b82018360208201111561008357600080fd5b803590602001918460018302840111640100000000831117156100a557600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506100e8945050505050565b005b60008082516020840134865af13d6000803e808015610106573d6000f35b3d6000fdfea164736f6c634300080a000a"
},
"CancelVerifier": {
"address": "0xE0670a90E67eda0126D54843267b27Ca6343B2d8",
"abi": [
{
"inputs": [],
"name": "BitUsed",
"type": "error"
},
{
"inputs": [],
"name": "InvalidBit",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "bitmapIndex",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "bit",
"type": "uint256"
}
],
"name": "Cancel",
"type": "event"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "bitmapIndex",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "bit",
"type": "uint256"
}
],
"name": "cancel",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x608060405234801561001057600080fd5b5061016d806100206000396000f3fe608060405234801561001057600080fd5b506004361061002a5760003560e01c8062efa8951461002f575b600080fd5b6100526004803603604081101561004557600080fd5b5080359060200135610054565b005b61005e828261009d565b604080518381526020810183905281517fbd64c8171b8a9fa64199ba6431430909c75b0d5532737cd3c8e80d2b054fa3c7929181900390910190a15050565b6000198101811615811515166100c6576040516323a1c86b60e21b815260040160405180910390fd5b60006100d183610108565b905060006100dd825490565b90508281161561010057604051638c2e095160e01b815260040160405180910390fd5b909117905550565b6000610134827f6c0dc1c455ee100500be45eb5af9d4c93f609d5877e81b7c1f2a01280732dbeb61013a565b92915050565b6000821982111561015b57634e487b7160e01b600052601160045260246000fd5b50019056fea164736f6c634300080a000a",
"deployedBytecode": "0x608060405234801561001057600080fd5b506004361061002a5760003560e01c8062efa8951461002f575b600080fd5b6100526004803603604081101561004557600080fd5b5080359060200135610054565b005b61005e828261009d565b604080518381526020810183905281517fbd64c8171b8a9fa64199ba6431430909c75b0d5532737cd3c8e80d2b054fa3c7929181900390910190a15050565b6000198101811615811515166100c6576040516323a1c86b60e21b815260040160405180910390fd5b60006100d183610108565b905060006100dd825490565b90508281161561010057604051638c2e095160e01b815260040160405180910390fd5b909117905550565b6000610134827f6c0dc1c455ee100500be45eb5af9d4c93f609d5877e81b7c1f2a01280732dbeb61013a565b92915050565b6000821982111561015b57634e487b7160e01b600052601160045260246000fd5b50019056fea164736f6c634300080a000a"
},
"LimitSwapVerifier": {
"address": "0x53D468E719694f3e542Dda96a237Af08eb394f2C",
"abi": [
{
"inputs": [
{
"internalType": "contract ICallExecutor",
"name": "callExecutor",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "BitUsed",
"type": "error"
},
{
"inputs": [],
"name": "Expired",
"type": "error"
},
{
"inputs": [],
"name": "InvalidBit",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amountReceived",
"type": "uint256"
}
],
"name": "NotEnoughReceived",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "bitmapIndex",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "bit",
"type": "uint256"
},
{
"internalType": "contract IERC20",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "ethAmount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "tokenAmount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "expiryBlock",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "ethToToken",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "bitmapIndex",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "bit",
"type": "uint256"
},
{
"internalType": "contract IERC20",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenAmount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "ethAmount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "expiryBlock",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "tokenToEth",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "bitmapIndex",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "bit",
"type": "uint256"
},
{
"internalType": "contract IERC20",
"name": "tokenIn",
"type": "address"
},
{
"internalType": "contract IERC20",
"name": "tokenOut",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenInAmount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "tokenOutAmount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "expiryBlock",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "tokenToToken",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x60a060405234801561001057600080fd5b506040516109733803806109738339818101604052602081101561003357600080fd5b50516001600160a01b031660805260805161090961006a6000396000818161038501528181610586015261071c01526109096000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80633e3d6ada14610046578063743f29da146100fa578063dc0ed0fe146101a3575b600080fd5b6100f8600480360361012081101561005d57600080fd5b8135916020810135916001600160a01b036040830135811692606081013582169260808201359260a08301359260c08101359260e08201359092169181019061012081016101008201356401000000008111156100b957600080fd5b8201836020820111156100cb57600080fd5b803590602001918460018302840111640100000000831117156100ed57600080fd5b50909250905061024c565b005b6100f8600480360361010081101561011157600080fd5b8135916020810135916001600160a01b03604083013581169260608101359260808201359260a08301359260c081013590911691810190610100810160e082013564010000000081111561016457600080fd5b82018360208201111561017657600080fd5b8035906020019184600183028401116401000000008311171561019857600080fd5b5090925090506104bc565b6100f860048036036101008110156101ba57600080fd5b8135916020810135916001600160a01b03604083013581169260608101359260808201359260a08301359260c081013590911691810190610100810160e082013564010000000081111561020d57600080fd5b82018360208201111561021f57600080fd5b8035906020019184600183028401116401000000008311171561024157600080fd5b509092509050610653565b43841161026c57604051630407b05b60e31b815260040160405180910390fd5b6102768a8a61081a565b6000876001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050602060405180830381865afa1580156102ca573d6000803e3d6000fd5b505050506040513d60208110156102e057600080fd5b50516040805163a9059cbb60e01b81526001600160a01b038781166004830152602482018b90529151929350908b169163a9059cbb9160448082019260209290919082900301816000875af115801561033d573d6000803e3d6000fd5b505050506040513d602081101561035357600080fd5b505060408051630a8c7dad60e21b81526001600160a01b038681166004830190815260248301938452604483018690527f000000000000000000000000000000000000000000000000000000000000000090911692632a31f6b492889288928892606401848480828437600081840152601f19601f820116905080830192505050945050505050600060405180830381600087803b1580156103f457600080fd5b505af1158015610408573d6000803e3d6000fd5b50505050600081896001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050602060405180830381865afa158015610461573d6000803e3d6000fd5b505050506040513d602081101561047757600080fd5b505161048391906108cd565b9050868110156104ae576040805163238ee7b760e21b81526004810183905290519081900360240190fd5b505050505050505050505050565b4384116104dc57604051630407b05b60e31b815260040160405180910390fd5b6104e6898961081a565b6040805163a9059cbb60e01b81526001600160a01b03858116600483015260248201899052915147928a169163a9059cbb91604480830192602092919082900301816000875af115801561053e573d6000803e3d6000fd5b505050506040513d602081101561055457600080fd5b505060408051630a8c7dad60e21b81526001600160a01b038681166004830190815260248301938452604483018690527f000000000000000000000000000000000000000000000000000000000000000090911692632a31f6b492889288928892606401848480828437600081840152601f19601f820116905080830192505050945050505050600060405180830381600087803b1580156105f557600080fd5b505af1158015610609573d6000803e3d6000fd5b505050506000814761061b91906108cd565b905086811015610646576040805163238ee7b760e21b81526004810183905290519081900360240190fd5b5050505050505050505050565b43841161067357604051630407b05b60e31b815260040160405180910390fd5b61067d898961081a565b6000876001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050602060405180830381865afa1580156106d1573d6000803e3d6000fd5b505050506040513d60208110156106e757600080fd5b505160408051630a8c7dad60e21b81526001600160a01b038781166004830190815260248301938452604483018790529394507f00000000000000000000000000000000000000000000000000000000000000001692632a31f6b4928b92899289928992606401848480828437600081840152601f19601f8201169050808301925050509450505050506000604051808303818588803b15801561078a57600080fd5b505af115801561079e573d6000803e3d6000fd5b5050505050600081896001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050602060405180830381865afa1580156107f8573d6000803e3d6000fd5b505050506040513d602081101561080e57600080fd5b505161061b91906108cd565b600019810181161581151516610843576040516323a1c86b60e21b815260040160405180910390fd5b600061084e83610885565b9050600061085a825490565b90508281161561087d57604051638c2e095160e01b815260040160405180910390fd5b909117905550565b60006108b1827f6c0dc1c455ee100500be45eb5af9d4c93f609d5877e81b7c1f2a01280732dbeb6108e4565b92915050565b634e487b7160e01b600052601160045260246000fd5b6000828210156108df576108df6108b7565b500390565b600082198211156108f7576108f76108b7565b50019056fea164736f6c634300080a000a",
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c80633e3d6ada14610046578063743f29da146100fa578063dc0ed0fe146101a3575b600080fd5b6100f8600480360361012081101561005d57600080fd5b8135916020810135916001600160a01b036040830135811692606081013582169260808201359260a08301359260c08101359260e08201359092169181019061012081016101008201356401000000008111156100b957600080fd5b8201836020820111156100cb57600080fd5b803590602001918460018302840111640100000000831117156100ed57600080fd5b50909250905061024c565b005b6100f8600480360361010081101561011157600080fd5b8135916020810135916001600160a01b03604083013581169260608101359260808201359260a08301359260c081013590911691810190610100810160e082013564010000000081111561016457600080fd5b82018360208201111561017657600080fd5b8035906020019184600183028401116401000000008311171561019857600080fd5b5090925090506104bc565b6100f860048036036101008110156101ba57600080fd5b8135916020810135916001600160a01b03604083013581169260608101359260808201359260a08301359260c081013590911691810190610100810160e082013564010000000081111561020d57600080fd5b82018360208201111561021f57600080fd5b8035906020019184600183028401116401000000008311171561024157600080fd5b509092509050610653565b43841161026c57604051630407b05b60e31b815260040160405180910390fd5b6102768a8a61081a565b6000876001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050602060405180830381865afa1580156102ca573d6000803e3d6000fd5b505050506040513d60208110156102e057600080fd5b50516040805163a9059cbb60e01b81526001600160a01b038781166004830152602482018b90529151929350908b169163a9059cbb9160448082019260209290919082900301816000875af115801561033d573d6000803e3d6000fd5b505050506040513d602081101561035357600080fd5b505060408051630a8c7dad60e21b81526001600160a01b038681166004830190815260248301938452604483018690527f000000000000000000000000000000000000000000000000000000000000000090911692632a31f6b492889288928892606401848480828437600081840152601f19601f820116905080830192505050945050505050600060405180830381600087803b1580156103f457600080fd5b505af1158015610408573d6000803e3d6000fd5b50505050600081896001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050602060405180830381865afa158015610461573d6000803e3d6000fd5b505050506040513d602081101561047757600080fd5b505161048391906108cd565b9050868110156104ae576040805163238ee7b760e21b81526004810183905290519081900360240190fd5b505050505050505050505050565b4384116104dc57604051630407b05b60e31b815260040160405180910390fd5b6104e6898961081a565b6040805163a9059cbb60e01b81526001600160a01b03858116600483015260248201899052915147928a169163a9059cbb91604480830192602092919082900301816000875af115801561053e573d6000803e3d6000fd5b505050506040513d602081101561055457600080fd5b505060408051630a8c7dad60e21b81526001600160a01b038681166004830190815260248301938452604483018690527f000000000000000000000000000000000000000000000000000000000000000090911692632a31f6b492889288928892606401848480828437600081840152601f19601f820116905080830192505050945050505050600060405180830381600087803b1580156105f557600080fd5b505af1158015610609573d6000803e3d6000fd5b505050506000814761061b91906108cd565b905086811015610646576040805163238ee7b760e21b81526004810183905290519081900360240190fd5b5050505050505050505050565b43841161067357604051630407b05b60e31b815260040160405180910390fd5b61067d898961081a565b6000876001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050602060405180830381865afa1580156106d1573d6000803e3d6000fd5b505050506040513d60208110156106e757600080fd5b505160408051630a8c7dad60e21b81526001600160a01b038781166004830190815260248301938452604483018790529394507f00000000000000000000000000000000000000000000000000000000000000001692632a31f6b4928b92899289928992606401848480828437600081840152601f19601f8201169050808301925050509450505050506000604051808303818588803b15801561078a57600080fd5b505af115801561079e573d6000803e3d6000fd5b5050505050600081896001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b03168152602001915050602060405180830381865afa1580156107f8573d6000803e3d6000fd5b505050506040513d602081101561080e57600080fd5b505161061b91906108cd565b600019810181161581151516610843576040516323a1c86b60e21b815260040160405180910390fd5b600061084e83610885565b9050600061085a825490565b90508281161561087d57604051638c2e095160e01b815260040160405180910390fd5b909117905550565b60006108b1827f6c0dc1c455ee100500be45eb5af9d4c93f609d5877e81b7c1f2a01280732dbeb6108e4565b92915050565b634e487b7160e01b600052601160045260246000fd5b6000828210156108df576108df6108b7565b500390565b600082198211156108f7576108f76108b7565b50019056fea164736f6c634300080a000a"
},
"TransferVerifier": {
"address": "0x6df5AE08Ec7aE5CC2E9e3b0850A61AD7C73bC9A9",
"abi": [
{
"inputs": [],
"name": "BitUsed",
"type": "error"
},
{
"inputs": [],
"name": "Expired",
"type": "error"
},
{
"inputs": [],
"name": "InvalidBit",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "bitmapIndex",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "bit",
"type": "uint256"
},
{
"internalType": "address",
"name": "recipient",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "expiryBlock",
"type": "uint256"
}
],
"name": "ethTransfer",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "bitmapIndex",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "bit",
"type": "uint256"
},
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "address",
"name": "recipient",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "expiryBlock",
"type": "uint256"
}
],
"name": "tokenTransfer",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x608060405234801561001057600080fd5b50610490806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806313b406361461003b57806348efa27414610085575b600080fd5b610083600480360360c081101561005157600080fd5b508035906020810135906001600160a01b03604082013581169160608101359091169060808101359060a001356100c3565b005b610083600480360360a081101561009b57600080fd5b508035906020810135906001600160a01b036040820135169060608101359060800135610100565b4381116100e357604051630407b05b60e31b815260040160405180910390fd5b6100ed868661013b565b6100f88484846101a6565b505050505050565b43811161012057604051630407b05b60e31b815260040160405180910390fd5b61012a858561013b565b610134838361031d565b5050505050565b600019810181161581151516610164576040516323a1c86b60e21b815260040160405180910390fd5b600061016f8361042b565b9050600061017b825490565b90508281161561019e57604051638c2e095160e01b815260040160405180910390fd5b909117905550565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1663a9059cbb60e01b1781529251825160009485949389169392918291908083835b602083106102375780518252601f199092019160209182019101610218565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610299576040519150601f19603f3d011682016040523d82523d6000602084013e61029e565b606091505b50915091508180156102cc5750805115806102cc57508080602001905160208110156102c957600080fd5b50515b610134576040805162461bcd60e51b815260206004820152600f60248201527f5452414e534645525f4641494c45440000000000000000000000000000000000604482015290519081900360640190fd5b604080516000808252602082019092526001600160a01b0384169083906040518082805190602001908083835b602083106103695780518252601f19909201916020918201910161034a565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146103cb576040519150601f19603f3d011682016040523d82523d6000602084013e6103d0565b606091505b5050905080610426576040805162461bcd60e51b815260206004820152601360248201527f4554485f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b505050565b6000610457827f6c0dc1c455ee100500be45eb5af9d4c93f609d5877e81b7c1f2a01280732dbeb61045d565b92915050565b6000821982111561047e57634e487b7160e01b600052601160045260246000fd5b50019056fea164736f6c634300080a000a",
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c806313b406361461003b57806348efa27414610085575b600080fd5b610083600480360360c081101561005157600080fd5b508035906020810135906001600160a01b03604082013581169160608101359091169060808101359060a001356100c3565b005b610083600480360360a081101561009b57600080fd5b508035906020810135906001600160a01b036040820135169060608101359060800135610100565b4381116100e357604051630407b05b60e31b815260040160405180910390fd5b6100ed868661013b565b6100f88484846101a6565b505050505050565b43811161012057604051630407b05b60e31b815260040160405180910390fd5b61012a858561013b565b610134838361031d565b5050505050565b600019810181161581151516610164576040516323a1c86b60e21b815260040160405180910390fd5b600061016f8361042b565b9050600061017b825490565b90508281161561019e57604051638c2e095160e01b815260040160405180910390fd5b909117905550565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1663a9059cbb60e01b1781529251825160009485949389169392918291908083835b602083106102375780518252601f199092019160209182019101610218565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610299576040519150601f19603f3d011682016040523d82523d6000602084013e61029e565b606091505b50915091508180156102cc5750805115806102cc57508080602001905160208110156102c957600080fd5b50515b610134576040805162461bcd60e51b815260206004820152600f60248201527f5452414e534645525f4641494c45440000000000000000000000000000000000604482015290519081900360640190fd5b604080516000808252602082019092526001600160a01b0384169083906040518082805190602001908083835b602083106103695780518252601f19909201916020918201910161034a565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146103cb576040519150601f19603f3d011682016040523d82523d6000602084013e6103d0565b606091505b5050905080610426576040805162461bcd60e51b815260206004820152601360248201527f4554485f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b505050565b6000610457827f6c0dc1c455ee100500be45eb5af9d4c93f609d5877e81b7c1f2a01280732dbeb61045d565b92915050565b6000821982111561047e57634e487b7160e01b600052601160045260246000fd5b50019056fea164736f6c634300080a000a"
}
}