@keep-network/tbtc-v2 0.1.1-dev.10 → 0.1.1-dev.14
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.
- package/artifacts/TBTC.json +18 -18
- package/artifacts/TBTCToken.json +18 -18
- package/artifacts/VendingMachine.json +19 -19
- package/artifacts/solcInputs/{524094faac10a04084fcc411e06dab84.json → 074b94f943fca615dfc6fce3bc4f2e1f.json} +18 -6
- package/build/contracts/GovernanceUtils.sol/GovernanceUtils.dbg.json +1 -1
- package/build/contracts/GovernanceUtils.sol/GovernanceUtils.json +2 -2
- package/build/contracts/bank/Bank.sol/Bank.dbg.json +1 -1
- package/build/contracts/bank/Bank.sol/Bank.json +2 -2
- package/build/contracts/bridge/BitcoinTx.sol/BitcoinTx.dbg.json +1 -1
- package/build/contracts/bridge/BitcoinTx.sol/BitcoinTx.json +2 -2
- package/build/contracts/bridge/Bridge.sol/Bridge.dbg.json +1 -1
- package/build/contracts/bridge/Bridge.sol/Bridge.json +530 -29
- package/build/contracts/bridge/Bridge.sol/IRelay.dbg.json +4 -0
- package/build/contracts/bridge/Bridge.sol/IRelay.json +37 -0
- package/build/contracts/bridge/VendingMachine.sol/VendingMachine.dbg.json +1 -1
- package/build/contracts/bridge/VendingMachine.sol/VendingMachine.json +2 -2
- package/build/contracts/token/TBTC.sol/TBTC.dbg.json +1 -1
- package/build/contracts/token/TBTC.sol/TBTC.json +2 -2
- package/build/contracts/vault/IVault.sol/IVault.dbg.json +1 -1
- package/build/contracts/vault/TBTCVault.sol/TBTCVault.dbg.json +1 -1
- package/build/contracts/vault/TBTCVault.sol/TBTCVault.json +2 -2
- package/contracts/bridge/BitcoinTx.sol +22 -0
- package/contracts/bridge/Bridge.sol +1313 -58
- package/package.json +2 -2
|
@@ -3,6 +3,32 @@
|
|
|
3
3
|
"contractName": "Bridge",
|
|
4
4
|
"sourceName": "contracts/bridge/Bridge.sol",
|
|
5
5
|
"abi": [
|
|
6
|
+
{
|
|
7
|
+
"inputs": [
|
|
8
|
+
{
|
|
9
|
+
"internalType": "address",
|
|
10
|
+
"name": "_bank",
|
|
11
|
+
"type": "address"
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"internalType": "address",
|
|
15
|
+
"name": "_relay",
|
|
16
|
+
"type": "address"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"internalType": "address",
|
|
20
|
+
"name": "_treasury",
|
|
21
|
+
"type": "address"
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"internalType": "uint256",
|
|
25
|
+
"name": "_txProofDifficultyFactor",
|
|
26
|
+
"type": "uint256"
|
|
27
|
+
}
|
|
28
|
+
],
|
|
29
|
+
"stateMutability": "nonpayable",
|
|
30
|
+
"type": "constructor"
|
|
31
|
+
},
|
|
6
32
|
{
|
|
7
33
|
"anonymous": false,
|
|
8
34
|
"inputs": [
|
|
@@ -14,9 +40,9 @@
|
|
|
14
40
|
},
|
|
15
41
|
{
|
|
16
42
|
"indexed": false,
|
|
17
|
-
"internalType": "
|
|
43
|
+
"internalType": "uint32",
|
|
18
44
|
"name": "fundingOutputIndex",
|
|
19
|
-
"type": "
|
|
45
|
+
"type": "uint32"
|
|
20
46
|
},
|
|
21
47
|
{
|
|
22
48
|
"indexed": false,
|
|
@@ -24,6 +50,12 @@
|
|
|
24
50
|
"name": "depositor",
|
|
25
51
|
"type": "address"
|
|
26
52
|
},
|
|
53
|
+
{
|
|
54
|
+
"indexed": false,
|
|
55
|
+
"internalType": "uint64",
|
|
56
|
+
"name": "amount",
|
|
57
|
+
"type": "uint64"
|
|
58
|
+
},
|
|
27
59
|
{
|
|
28
60
|
"indexed": false,
|
|
29
61
|
"internalType": "bytes8",
|
|
@@ -58,6 +90,25 @@
|
|
|
58
90
|
"name": "DepositRevealed",
|
|
59
91
|
"type": "event"
|
|
60
92
|
},
|
|
93
|
+
{
|
|
94
|
+
"anonymous": false,
|
|
95
|
+
"inputs": [
|
|
96
|
+
{
|
|
97
|
+
"indexed": false,
|
|
98
|
+
"internalType": "bytes20",
|
|
99
|
+
"name": "walletPubKeyHash",
|
|
100
|
+
"type": "bytes20"
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"indexed": false,
|
|
104
|
+
"internalType": "bytes32",
|
|
105
|
+
"name": "sweepTxHash",
|
|
106
|
+
"type": "bytes32"
|
|
107
|
+
}
|
|
108
|
+
],
|
|
109
|
+
"name": "DepositsSwept",
|
|
110
|
+
"type": "event"
|
|
111
|
+
},
|
|
61
112
|
{
|
|
62
113
|
"anonymous": false,
|
|
63
114
|
"inputs": [
|
|
@@ -77,6 +128,68 @@
|
|
|
77
128
|
"name": "OwnershipTransferred",
|
|
78
129
|
"type": "event"
|
|
79
130
|
},
|
|
131
|
+
{
|
|
132
|
+
"anonymous": false,
|
|
133
|
+
"inputs": [
|
|
134
|
+
{
|
|
135
|
+
"indexed": false,
|
|
136
|
+
"internalType": "bytes20",
|
|
137
|
+
"name": "walletPubKeyHash",
|
|
138
|
+
"type": "bytes20"
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
"indexed": false,
|
|
142
|
+
"internalType": "bytes",
|
|
143
|
+
"name": "redeemerOutputScript",
|
|
144
|
+
"type": "bytes"
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
"indexed": false,
|
|
148
|
+
"internalType": "address",
|
|
149
|
+
"name": "redeemer",
|
|
150
|
+
"type": "address"
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
"indexed": false,
|
|
154
|
+
"internalType": "uint64",
|
|
155
|
+
"name": "requestedAmount",
|
|
156
|
+
"type": "uint64"
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
"indexed": false,
|
|
160
|
+
"internalType": "uint64",
|
|
161
|
+
"name": "treasuryFee",
|
|
162
|
+
"type": "uint64"
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
"indexed": false,
|
|
166
|
+
"internalType": "uint64",
|
|
167
|
+
"name": "txMaxFee",
|
|
168
|
+
"type": "uint64"
|
|
169
|
+
}
|
|
170
|
+
],
|
|
171
|
+
"name": "RedemptionRequested",
|
|
172
|
+
"type": "event"
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
"anonymous": false,
|
|
176
|
+
"inputs": [
|
|
177
|
+
{
|
|
178
|
+
"indexed": false,
|
|
179
|
+
"internalType": "bytes20",
|
|
180
|
+
"name": "walletPubKeyHash",
|
|
181
|
+
"type": "bytes20"
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
"indexed": false,
|
|
185
|
+
"internalType": "bytes32",
|
|
186
|
+
"name": "redemptionTxHash",
|
|
187
|
+
"type": "bytes32"
|
|
188
|
+
}
|
|
189
|
+
],
|
|
190
|
+
"name": "RedemptionsCompleted",
|
|
191
|
+
"type": "event"
|
|
192
|
+
},
|
|
80
193
|
{
|
|
81
194
|
"anonymous": false,
|
|
82
195
|
"inputs": [
|
|
@@ -96,6 +209,58 @@
|
|
|
96
209
|
"name": "VaultStatusUpdated",
|
|
97
210
|
"type": "event"
|
|
98
211
|
},
|
|
212
|
+
{
|
|
213
|
+
"inputs": [],
|
|
214
|
+
"name": "bank",
|
|
215
|
+
"outputs": [
|
|
216
|
+
{
|
|
217
|
+
"internalType": "contract Bank",
|
|
218
|
+
"name": "",
|
|
219
|
+
"type": "address"
|
|
220
|
+
}
|
|
221
|
+
],
|
|
222
|
+
"stateMutability": "view",
|
|
223
|
+
"type": "function"
|
|
224
|
+
},
|
|
225
|
+
{
|
|
226
|
+
"inputs": [
|
|
227
|
+
{
|
|
228
|
+
"internalType": "uint256",
|
|
229
|
+
"name": "",
|
|
230
|
+
"type": "uint256"
|
|
231
|
+
}
|
|
232
|
+
],
|
|
233
|
+
"name": "deposits",
|
|
234
|
+
"outputs": [
|
|
235
|
+
{
|
|
236
|
+
"internalType": "address",
|
|
237
|
+
"name": "depositor",
|
|
238
|
+
"type": "address"
|
|
239
|
+
},
|
|
240
|
+
{
|
|
241
|
+
"internalType": "uint64",
|
|
242
|
+
"name": "amount",
|
|
243
|
+
"type": "uint64"
|
|
244
|
+
},
|
|
245
|
+
{
|
|
246
|
+
"internalType": "uint32",
|
|
247
|
+
"name": "revealedAt",
|
|
248
|
+
"type": "uint32"
|
|
249
|
+
},
|
|
250
|
+
{
|
|
251
|
+
"internalType": "address",
|
|
252
|
+
"name": "vault",
|
|
253
|
+
"type": "address"
|
|
254
|
+
},
|
|
255
|
+
{
|
|
256
|
+
"internalType": "uint32",
|
|
257
|
+
"name": "sweptAt",
|
|
258
|
+
"type": "uint32"
|
|
259
|
+
}
|
|
260
|
+
],
|
|
261
|
+
"stateMutability": "view",
|
|
262
|
+
"type": "function"
|
|
263
|
+
},
|
|
99
264
|
{
|
|
100
265
|
"inputs": [
|
|
101
266
|
{
|
|
@@ -115,6 +280,25 @@
|
|
|
115
280
|
"stateMutability": "view",
|
|
116
281
|
"type": "function"
|
|
117
282
|
},
|
|
283
|
+
{
|
|
284
|
+
"inputs": [
|
|
285
|
+
{
|
|
286
|
+
"internalType": "bytes20",
|
|
287
|
+
"name": "",
|
|
288
|
+
"type": "bytes20"
|
|
289
|
+
}
|
|
290
|
+
],
|
|
291
|
+
"name": "mainUtxos",
|
|
292
|
+
"outputs": [
|
|
293
|
+
{
|
|
294
|
+
"internalType": "bytes32",
|
|
295
|
+
"name": "",
|
|
296
|
+
"type": "bytes32"
|
|
297
|
+
}
|
|
298
|
+
],
|
|
299
|
+
"stateMutability": "view",
|
|
300
|
+
"type": "function"
|
|
301
|
+
},
|
|
118
302
|
{
|
|
119
303
|
"inputs": [],
|
|
120
304
|
"name": "owner",
|
|
@@ -128,6 +312,110 @@
|
|
|
128
312
|
"stateMutability": "view",
|
|
129
313
|
"type": "function"
|
|
130
314
|
},
|
|
315
|
+
{
|
|
316
|
+
"inputs": [
|
|
317
|
+
{
|
|
318
|
+
"internalType": "uint256",
|
|
319
|
+
"name": "",
|
|
320
|
+
"type": "uint256"
|
|
321
|
+
}
|
|
322
|
+
],
|
|
323
|
+
"name": "pendingRedemptions",
|
|
324
|
+
"outputs": [
|
|
325
|
+
{
|
|
326
|
+
"internalType": "address",
|
|
327
|
+
"name": "redeemer",
|
|
328
|
+
"type": "address"
|
|
329
|
+
},
|
|
330
|
+
{
|
|
331
|
+
"internalType": "uint64",
|
|
332
|
+
"name": "requestedAmount",
|
|
333
|
+
"type": "uint64"
|
|
334
|
+
},
|
|
335
|
+
{
|
|
336
|
+
"internalType": "uint64",
|
|
337
|
+
"name": "treasuryFee",
|
|
338
|
+
"type": "uint64"
|
|
339
|
+
},
|
|
340
|
+
{
|
|
341
|
+
"internalType": "uint64",
|
|
342
|
+
"name": "txMaxFee",
|
|
343
|
+
"type": "uint64"
|
|
344
|
+
},
|
|
345
|
+
{
|
|
346
|
+
"internalType": "uint32",
|
|
347
|
+
"name": "requestedAt",
|
|
348
|
+
"type": "uint32"
|
|
349
|
+
}
|
|
350
|
+
],
|
|
351
|
+
"stateMutability": "view",
|
|
352
|
+
"type": "function"
|
|
353
|
+
},
|
|
354
|
+
{
|
|
355
|
+
"inputs": [],
|
|
356
|
+
"name": "redemptionDustThreshold",
|
|
357
|
+
"outputs": [
|
|
358
|
+
{
|
|
359
|
+
"internalType": "uint64",
|
|
360
|
+
"name": "",
|
|
361
|
+
"type": "uint64"
|
|
362
|
+
}
|
|
363
|
+
],
|
|
364
|
+
"stateMutability": "view",
|
|
365
|
+
"type": "function"
|
|
366
|
+
},
|
|
367
|
+
{
|
|
368
|
+
"inputs": [],
|
|
369
|
+
"name": "redemptionTimeout",
|
|
370
|
+
"outputs": [
|
|
371
|
+
{
|
|
372
|
+
"internalType": "uint256",
|
|
373
|
+
"name": "",
|
|
374
|
+
"type": "uint256"
|
|
375
|
+
}
|
|
376
|
+
],
|
|
377
|
+
"stateMutability": "view",
|
|
378
|
+
"type": "function"
|
|
379
|
+
},
|
|
380
|
+
{
|
|
381
|
+
"inputs": [],
|
|
382
|
+
"name": "redemptionTreasuryFee",
|
|
383
|
+
"outputs": [
|
|
384
|
+
{
|
|
385
|
+
"internalType": "uint64",
|
|
386
|
+
"name": "",
|
|
387
|
+
"type": "uint64"
|
|
388
|
+
}
|
|
389
|
+
],
|
|
390
|
+
"stateMutability": "view",
|
|
391
|
+
"type": "function"
|
|
392
|
+
},
|
|
393
|
+
{
|
|
394
|
+
"inputs": [],
|
|
395
|
+
"name": "redemptionTxMaxFee",
|
|
396
|
+
"outputs": [
|
|
397
|
+
{
|
|
398
|
+
"internalType": "uint64",
|
|
399
|
+
"name": "",
|
|
400
|
+
"type": "uint64"
|
|
401
|
+
}
|
|
402
|
+
],
|
|
403
|
+
"stateMutability": "view",
|
|
404
|
+
"type": "function"
|
|
405
|
+
},
|
|
406
|
+
{
|
|
407
|
+
"inputs": [],
|
|
408
|
+
"name": "relay",
|
|
409
|
+
"outputs": [
|
|
410
|
+
{
|
|
411
|
+
"internalType": "contract IRelay",
|
|
412
|
+
"name": "",
|
|
413
|
+
"type": "address"
|
|
414
|
+
}
|
|
415
|
+
],
|
|
416
|
+
"stateMutability": "view",
|
|
417
|
+
"type": "function"
|
|
418
|
+
},
|
|
131
419
|
{
|
|
132
420
|
"inputs": [],
|
|
133
421
|
"name": "renounceOwnership",
|
|
@@ -135,6 +423,51 @@
|
|
|
135
423
|
"stateMutability": "nonpayable",
|
|
136
424
|
"type": "function"
|
|
137
425
|
},
|
|
426
|
+
{
|
|
427
|
+
"inputs": [
|
|
428
|
+
{
|
|
429
|
+
"internalType": "bytes20",
|
|
430
|
+
"name": "walletPubKeyHash",
|
|
431
|
+
"type": "bytes20"
|
|
432
|
+
},
|
|
433
|
+
{
|
|
434
|
+
"components": [
|
|
435
|
+
{
|
|
436
|
+
"internalType": "bytes32",
|
|
437
|
+
"name": "txHash",
|
|
438
|
+
"type": "bytes32"
|
|
439
|
+
},
|
|
440
|
+
{
|
|
441
|
+
"internalType": "uint32",
|
|
442
|
+
"name": "txOutputIndex",
|
|
443
|
+
"type": "uint32"
|
|
444
|
+
},
|
|
445
|
+
{
|
|
446
|
+
"internalType": "uint64",
|
|
447
|
+
"name": "txOutputValue",
|
|
448
|
+
"type": "uint64"
|
|
449
|
+
}
|
|
450
|
+
],
|
|
451
|
+
"internalType": "struct BitcoinTx.UTXO",
|
|
452
|
+
"name": "mainUtxo",
|
|
453
|
+
"type": "tuple"
|
|
454
|
+
},
|
|
455
|
+
{
|
|
456
|
+
"internalType": "bytes",
|
|
457
|
+
"name": "redeemerOutputScript",
|
|
458
|
+
"type": "bytes"
|
|
459
|
+
},
|
|
460
|
+
{
|
|
461
|
+
"internalType": "uint64",
|
|
462
|
+
"name": "amount",
|
|
463
|
+
"type": "uint64"
|
|
464
|
+
}
|
|
465
|
+
],
|
|
466
|
+
"name": "requestRedemption",
|
|
467
|
+
"outputs": [],
|
|
468
|
+
"stateMutability": "nonpayable",
|
|
469
|
+
"type": "function"
|
|
470
|
+
},
|
|
138
471
|
{
|
|
139
472
|
"inputs": [
|
|
140
473
|
{
|
|
@@ -167,9 +500,9 @@
|
|
|
167
500
|
{
|
|
168
501
|
"components": [
|
|
169
502
|
{
|
|
170
|
-
"internalType": "
|
|
503
|
+
"internalType": "uint32",
|
|
171
504
|
"name": "fundingOutputIndex",
|
|
172
|
-
"type": "
|
|
505
|
+
"type": "uint32"
|
|
173
506
|
},
|
|
174
507
|
{
|
|
175
508
|
"internalType": "address",
|
|
@@ -256,26 +589,60 @@
|
|
|
256
589
|
}
|
|
257
590
|
],
|
|
258
591
|
"internalType": "struct BitcoinTx.Info",
|
|
259
|
-
"name": "
|
|
592
|
+
"name": "redemptionTx",
|
|
260
593
|
"type": "tuple"
|
|
261
594
|
},
|
|
262
595
|
{
|
|
263
|
-
"
|
|
264
|
-
|
|
265
|
-
|
|
596
|
+
"components": [
|
|
597
|
+
{
|
|
598
|
+
"internalType": "bytes",
|
|
599
|
+
"name": "merkleProof",
|
|
600
|
+
"type": "bytes"
|
|
601
|
+
},
|
|
602
|
+
{
|
|
603
|
+
"internalType": "uint256",
|
|
604
|
+
"name": "txIndexInBlock",
|
|
605
|
+
"type": "uint256"
|
|
606
|
+
},
|
|
607
|
+
{
|
|
608
|
+
"internalType": "bytes",
|
|
609
|
+
"name": "bitcoinHeaders",
|
|
610
|
+
"type": "bytes"
|
|
611
|
+
}
|
|
612
|
+
],
|
|
613
|
+
"internalType": "struct BitcoinTx.Proof",
|
|
614
|
+
"name": "redemptionProof",
|
|
615
|
+
"type": "tuple"
|
|
266
616
|
},
|
|
267
617
|
{
|
|
268
|
-
"
|
|
269
|
-
|
|
270
|
-
|
|
618
|
+
"components": [
|
|
619
|
+
{
|
|
620
|
+
"internalType": "bytes32",
|
|
621
|
+
"name": "txHash",
|
|
622
|
+
"type": "bytes32"
|
|
623
|
+
},
|
|
624
|
+
{
|
|
625
|
+
"internalType": "uint32",
|
|
626
|
+
"name": "txOutputIndex",
|
|
627
|
+
"type": "uint32"
|
|
628
|
+
},
|
|
629
|
+
{
|
|
630
|
+
"internalType": "uint64",
|
|
631
|
+
"name": "txOutputValue",
|
|
632
|
+
"type": "uint64"
|
|
633
|
+
}
|
|
634
|
+
],
|
|
635
|
+
"internalType": "struct BitcoinTx.UTXO",
|
|
636
|
+
"name": "mainUtxo",
|
|
637
|
+
"type": "tuple"
|
|
271
638
|
},
|
|
272
639
|
{
|
|
273
|
-
"internalType": "
|
|
274
|
-
"name": "
|
|
275
|
-
"type": "
|
|
640
|
+
"internalType": "bytes20",
|
|
641
|
+
"name": "walletPubKeyHash",
|
|
642
|
+
"type": "bytes20"
|
|
276
643
|
}
|
|
277
644
|
],
|
|
278
|
-
"name": "
|
|
645
|
+
"name": "submitRedemptionProof",
|
|
279
646
|
"outputs": [],
|
|
280
647
|
"stateMutability": "nonpayable",
|
|
281
648
|
"type": "function"
|
|
@@ -283,12 +650,78 @@
|
|
|
283
650
|
{
|
|
284
651
|
"inputs": [
|
|
285
652
|
{
|
|
286
|
-
"
|
|
287
|
-
|
|
288
|
-
|
|
653
|
+
"components": [
|
|
654
|
+
{
|
|
655
|
+
"internalType": "bytes4",
|
|
656
|
+
"name": "version",
|
|
657
|
+
"type": "bytes4"
|
|
658
|
+
},
|
|
659
|
+
{
|
|
660
|
+
"internalType": "bytes",
|
|
661
|
+
"name": "inputVector",
|
|
662
|
+
"type": "bytes"
|
|
663
|
+
},
|
|
664
|
+
{
|
|
665
|
+
"internalType": "bytes",
|
|
666
|
+
"name": "outputVector",
|
|
667
|
+
"type": "bytes"
|
|
668
|
+
},
|
|
669
|
+
{
|
|
670
|
+
"internalType": "bytes4",
|
|
671
|
+
"name": "locktime",
|
|
672
|
+
"type": "bytes4"
|
|
673
|
+
}
|
|
674
|
+
],
|
|
675
|
+
"internalType": "struct BitcoinTx.Info",
|
|
676
|
+
"name": "sweepTx",
|
|
677
|
+
"type": "tuple"
|
|
678
|
+
},
|
|
679
|
+
{
|
|
680
|
+
"components": [
|
|
681
|
+
{
|
|
682
|
+
"internalType": "bytes",
|
|
683
|
+
"name": "merkleProof",
|
|
684
|
+
"type": "bytes"
|
|
685
|
+
},
|
|
686
|
+
{
|
|
687
|
+
"internalType": "uint256",
|
|
688
|
+
"name": "txIndexInBlock",
|
|
689
|
+
"type": "uint256"
|
|
690
|
+
},
|
|
691
|
+
{
|
|
692
|
+
"internalType": "bytes",
|
|
693
|
+
"name": "bitcoinHeaders",
|
|
694
|
+
"type": "bytes"
|
|
695
|
+
}
|
|
696
|
+
],
|
|
697
|
+
"internalType": "struct BitcoinTx.Proof",
|
|
698
|
+
"name": "sweepProof",
|
|
699
|
+
"type": "tuple"
|
|
700
|
+
},
|
|
701
|
+
{
|
|
702
|
+
"components": [
|
|
703
|
+
{
|
|
704
|
+
"internalType": "bytes32",
|
|
705
|
+
"name": "txHash",
|
|
706
|
+
"type": "bytes32"
|
|
707
|
+
},
|
|
708
|
+
{
|
|
709
|
+
"internalType": "uint32",
|
|
710
|
+
"name": "txOutputIndex",
|
|
711
|
+
"type": "uint32"
|
|
712
|
+
},
|
|
713
|
+
{
|
|
714
|
+
"internalType": "uint64",
|
|
715
|
+
"name": "txOutputValue",
|
|
716
|
+
"type": "uint64"
|
|
717
|
+
}
|
|
718
|
+
],
|
|
719
|
+
"internalType": "struct BitcoinTx.UTXO",
|
|
720
|
+
"name": "mainUtxo",
|
|
721
|
+
"type": "tuple"
|
|
289
722
|
}
|
|
290
723
|
],
|
|
291
|
-
"name": "
|
|
724
|
+
"name": "submitSweepProof",
|
|
292
725
|
"outputs": [],
|
|
293
726
|
"stateMutability": "nonpayable",
|
|
294
727
|
"type": "function"
|
|
@@ -301,35 +734,103 @@
|
|
|
301
734
|
"type": "uint256"
|
|
302
735
|
}
|
|
303
736
|
],
|
|
304
|
-
"name": "
|
|
737
|
+
"name": "timedOutRedemptions",
|
|
305
738
|
"outputs": [
|
|
306
739
|
{
|
|
307
740
|
"internalType": "address",
|
|
308
|
-
"name": "
|
|
741
|
+
"name": "redeemer",
|
|
309
742
|
"type": "address"
|
|
310
743
|
},
|
|
311
744
|
{
|
|
312
|
-
"internalType": "
|
|
313
|
-
"name": "
|
|
314
|
-
"type": "
|
|
745
|
+
"internalType": "uint64",
|
|
746
|
+
"name": "requestedAmount",
|
|
747
|
+
"type": "uint64"
|
|
748
|
+
},
|
|
749
|
+
{
|
|
750
|
+
"internalType": "uint64",
|
|
751
|
+
"name": "treasuryFee",
|
|
752
|
+
"type": "uint64"
|
|
753
|
+
},
|
|
754
|
+
{
|
|
755
|
+
"internalType": "uint64",
|
|
756
|
+
"name": "txMaxFee",
|
|
757
|
+
"type": "uint64"
|
|
315
758
|
},
|
|
316
759
|
{
|
|
317
760
|
"internalType": "uint32",
|
|
318
|
-
"name": "
|
|
761
|
+
"name": "requestedAt",
|
|
319
762
|
"type": "uint32"
|
|
320
|
-
}
|
|
763
|
+
}
|
|
764
|
+
],
|
|
765
|
+
"stateMutability": "view",
|
|
766
|
+
"type": "function"
|
|
767
|
+
},
|
|
768
|
+
{
|
|
769
|
+
"inputs": [
|
|
321
770
|
{
|
|
322
771
|
"internalType": "address",
|
|
323
|
-
"name": "
|
|
772
|
+
"name": "newOwner",
|
|
773
|
+
"type": "address"
|
|
774
|
+
}
|
|
775
|
+
],
|
|
776
|
+
"name": "transferOwnership",
|
|
777
|
+
"outputs": [],
|
|
778
|
+
"stateMutability": "nonpayable",
|
|
779
|
+
"type": "function"
|
|
780
|
+
},
|
|
781
|
+
{
|
|
782
|
+
"inputs": [],
|
|
783
|
+
"name": "treasury",
|
|
784
|
+
"outputs": [
|
|
785
|
+
{
|
|
786
|
+
"internalType": "address",
|
|
787
|
+
"name": "",
|
|
324
788
|
"type": "address"
|
|
325
789
|
}
|
|
326
790
|
],
|
|
327
791
|
"stateMutability": "view",
|
|
328
792
|
"type": "function"
|
|
793
|
+
},
|
|
794
|
+
{
|
|
795
|
+
"inputs": [],
|
|
796
|
+
"name": "txProofDifficultyFactor",
|
|
797
|
+
"outputs": [
|
|
798
|
+
{
|
|
799
|
+
"internalType": "uint256",
|
|
800
|
+
"name": "",
|
|
801
|
+
"type": "uint256"
|
|
802
|
+
}
|
|
803
|
+
],
|
|
804
|
+
"stateMutability": "view",
|
|
805
|
+
"type": "function"
|
|
806
|
+
},
|
|
807
|
+
{
|
|
808
|
+
"inputs": [
|
|
809
|
+
{
|
|
810
|
+
"internalType": "bytes20",
|
|
811
|
+
"name": "",
|
|
812
|
+
"type": "bytes20"
|
|
813
|
+
}
|
|
814
|
+
],
|
|
815
|
+
"name": "wallets",
|
|
816
|
+
"outputs": [
|
|
817
|
+
{
|
|
818
|
+
"internalType": "enum Bridge.WalletState",
|
|
819
|
+
"name": "state",
|
|
820
|
+
"type": "uint8"
|
|
821
|
+
},
|
|
822
|
+
{
|
|
823
|
+
"internalType": "uint64",
|
|
824
|
+
"name": "pendingRedemptionsValue",
|
|
825
|
+
"type": "uint64"
|
|
826
|
+
}
|
|
827
|
+
],
|
|
828
|
+
"stateMutability": "view",
|
|
829
|
+
"type": "function"
|
|
329
830
|
}
|
|
330
831
|
],
|
|
331
|
-
"bytecode": "0x60806040523480156200001157600080fd5b5062000032620000266200003860201b60201c565b6200004060201b60201c565b62000104565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6131e780620001146000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c80638d658d4e1161005b5780638d658d4e146101025780638da5cb5b1461011e578063e53c0b551461013c578063f2fde38b1461016c57610088565b806325750db71461008d57806343c6de29146100a957806360d712fc146100dc578063715018a6146100f8575b600080fd5b6100a760048036038101906100a29190611cf5565b610188565b005b6100c360048036038101906100be9190611d4a565b6107b9565b6040516100d39493929190612455565b60405180910390f35b6100f660048036038101906100f19190611b6a565b610846565b005b61010061096b565b005b61011c60048036038101906101179190611c4a565b6109f3565b005b6101266109f9565b604051610133919061243a565b60405180910390f35b61015660048036038101906101519190611b41565b610a22565b604051610163919061249a565b60405180910390f35b61018660048036038101906101819190611b41565b610a42565b005b600073ffffffffffffffffffffffffffffffffffffffff168160c00160208101906101b39190611b41565b73ffffffffffffffffffffffffffffffffffffffff1614806102305750600160008260c00160208101906101e79190611b41565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61026f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161026690612593565b60405180910390fd5b60008160200160208101906102849190611b41565b8260400160208101906102979190611c21565b8360600160208101906102aa9190611ba6565b8460800160208101906102bd9190611ba6565b8560a00160208101906102d09190611bf8565b6040516020016102e49594939291906122ff565b6040516020818303038152906040529050600061037183600001602081019061030d9190611d73565b60ff168580604001906103209190612693565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610b3a90919063ffffffff16565b9050600061037e82610d7a565b90506014815114156103e7576103938361111c565b805190602001208180519060200120146103e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103d990612633565b60405180910390fd5b6104cb565b60208151141561048f5760028360405161040191906122e8565b602060405180830381855afa15801561041e573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906104419190611bcf565b61044a826111e9565b1461048a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610481906125b3565b60405180910390fd5b6104ca565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104c1906125d3565b60405180910390fd5b5b600061053f8660000160208101906104e39190611bf8565b8780602001906104f39190612693565b8980604001906105039190612693565b8b60600160208101906105169190611bf8565b60405160200161052b9695949392919061229e565b60405160208183030381529060405261120c565b90506000600260008388600001602081019061055b9190611d73565b60405160200161056c929190612272565b6040516020818303038152906040528051906020012060001c81526020019081526020016000209050600081600001601c9054906101000a900463ffffffff1663ffffffff16146105f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e990612613565b60405180910390fd5b600060208501519050808260000160146101000a81548167ffffffffffffffff021916908360c01c02179055508660200160208101906106329190611b41565b8260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504282600001601c6101000a81548163ffffffff021916908363ffffffff1602179055508660c00160208101906106aa9190611b41565b8260010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f293519c6fe266b8b9ca154d153e408c6ef03135a5abeb42e9a91781d620ca47b838860000160208101906107219190611d73565b8960200160208101906107349190611b41565b8a60400160208101906107479190611c21565b8b606001602081019061075a9190611ba6565b8c608001602081019061076d9190611ba6565b8d60a00160208101906107809190611bf8565b8e60c00160208101906107939190611b41565b6040516107a79897969594939291906124b5565b60405180910390a15050505050505050565b60026020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060000160149054906101000a900460c01b9080600001601c9054906101000a900463ffffffff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905084565b61084e6112d2565b73ffffffffffffffffffffffffffffffffffffffff1661086c6109f9565b73ffffffffffffffffffffffffffffffffffffffff16146108c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b9906125f3565b60405180910390fd5b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9065599c12c4294d9e2201638226d0d0beb95c228f468c4e7c2bdb8322b6066f8260405161095f919061249a565b60405180910390a25050565b6109736112d2565b73ffffffffffffffffffffffffffffffffffffffff166109916109f9565b73ffffffffffffffffffffffffffffffffffffffff16146109e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109de906125f3565b60405180910390fd5b6109f160006112da565b565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60016020528060005260406000206000915054906101000a900460ff1681565b610a4a6112d2565b73ffffffffffffffffffffffffffffffffffffffff16610a686109f9565b73ffffffffffffffffffffffffffffffffffffffff1614610abe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab5906125f3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610b2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2590612533565b60405180910390fd5b610b37816112da565b50565b6060600080610b488561139e565b80925081935050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610bb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610baa90612553565b60405180910390fd5b808410610bf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bec90612653565b60405180910390fd5b6060600080846001610c079190612772565b905060005b87811015610cc657610c3582838b51610c2591906129ca565b8b61149a9092919063ffffffff16565b9350610c4084611560565b92507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831415610ca5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9c90612573565b60405180910390fd5b8282610cb19190612772565b91508080610cbe90612b98565b915050610c0c565b50610ce881828a51610cd891906129ca565b8a61149a9092919063ffffffff16565b9250610cf383611560565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610d58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4f90612573565b60405180910390fd5b610d6d81838a61149a9092919063ffffffff16565b9550505050505092915050565b6060600082600881518110610db8577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c90508251600982610dd791906127c8565b60ff1614610df75760405180602001604052806000815250915050611117565b600083600981518110610e33577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff161415610f265760028160ff161015610e6e5760405180602001604052806000815250915050611117565b600083600a81518110610eaa577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff169050600282610eca91906129fe565b60ff1681141580610ee9575060208114158015610ee8575060148114155b5b15610f07576040518060200160405280600081525092505050611117565b610f1d600b828661149a9092919063ffffffff16565b92505050611117565b6000610f3f60086003866116449092919063ffffffff16565b90507fe1683aec1a10d43657f3f2c82e683d8e19e8a3f320ce9d3bf22c6ca6ab4cbce681141561104357601484600b81518110610fa5577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff1614158061100557507f3b50b2715f5a28d2a7eeb517f17ec797e8536bd425bf31fc4f6bf7ce1e34b77d61100260028651610ff091906129ca565b6002876116449092919063ffffffff16565b14155b15611023576040518060200160405280600081525092505050611117565b61103a600c60148661149a9092919063ffffffff16565b92505050611117565b7fa0916ee0b243ee20fb4ce56170744d86b54d7ae03a418a7a12156f40dedcf7d7811415611102576087846001865161107c91906129ca565b815181106110b3577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff16146110e2576040518060200160405280600081525092505050611117565b6110f9600b60148661149a9092919063ffffffff16565b92505050611117565b50604051806020016040528060008152509150505b919050565b6060600360028360405161113091906122e8565b602060405180830381855afa15801561114d573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906111709190611bcf565b6040516020016111809190612257565b60405160208183030381529060405260405161119c91906122e8565b602060405180830381855afa1580156111b9573d6000803e3d6000fd5b5050506040515160601b6040516020016111d3919061223c565b6040516020818303038152906040529050919050565b600080825114156111ff576000801b9050611207565b602082015190505b919050565b60006002808360405161121f91906122e8565b602060405180830381855afa15801561123c573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525081019061125f9190611bcf565b60405160200161126f9190612257565b60405160208183030381529060405260405161128b91906122e8565b602060405180830381855afa1580156112a8573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906112cb9190611bcf565b9050919050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060006113ac846116b6565b905060008160ff161415611414576000846000815181106113f6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c8060ff1690509250925050611495565b80600161142191906127c8565b60ff1684511015611459577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60009250925050611495565b600061148461147f61147a60018560ff168961149a9092919063ffffffff16565b6117d6565b61193d565b905081818160ff1691509350935050505b915091565b606060008214156114bc57604051806020016040528060008152509050611559565b600082846114ca9190612772565b905083811180156114dc575080855110155b61151b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151290612673565b60405180910390fd5b604051915082604083010160405282825283850182038460208701018481015b808210156115545781518383015260208201915061153b565b505050505b9392505050565b6000600982511015611594577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff905061163f565b60006115b860088085516115a891906129ca565b8561149a9092919063ffffffff16565b90506000806115c68361139e565b80925081935050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611621577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff935050505061163f565b8082600961162f9190612772565b6116399190612772565b93505050505b919050565b60008082846116539190612772565b90508381118015611665575080855110155b6116a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169b90612673565b60405180910390fd5b82846020870101209150509392505050565b600060ff826000815181106116f4577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff16141561171457600890506117d1565b60fe82600081518110611750577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff16141561177057600490506117d1565b60fd826000815181106117ac577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff1614156117cc57600290506117d1565b600090505b919050565b60606000825167ffffffffffffffff81111561181b577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f19166020018201604052801561184d5781602001600182028036833780820191505090505b50905060005b835181101561193357838181518110611895577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b8260018387516118b091906129ca565b6118ba91906129ca565b815181106118f1577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350808061192b90612b98565b915050611853565b5080915050919050565b60008060005b83518110156119f1576001816119599190612772565b845161196591906129ca565b60086119719190612970565b600261197d9190612852565b8482815181106119b6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff166119d19190612970565b826119dc9190612772565b915080806119e990612b98565b915050611943565b5080915050919050565b6000611a0e611a098461270f565b6126ea565b905082815260208101848484011115611a2657600080fd5b611a31848285612b25565b509392505050565b600081359050611a48816130f9565b92915050565b600081359050611a5d81613110565b92915050565b600081359050611a7281613127565b92915050565b600081519050611a878161313e565b92915050565b600081359050611a9c81613155565b92915050565b600081359050611ab18161316c565b92915050565b600082601f830112611ac857600080fd5b8135611ad88482602086016119fb565b91505092915050565b600060808284031215611af357600080fd5b81905092915050565b600060e08284031215611b0e57600080fd5b81905092915050565b600081359050611b2681613183565b92915050565b600081359050611b3b8161319a565b92915050565b600060208284031215611b5357600080fd5b6000611b6184828501611a39565b91505092915050565b60008060408385031215611b7d57600080fd5b6000611b8b85828601611a39565b9250506020611b9c85828601611a4e565b9150509250929050565b600060208284031215611bb857600080fd5b6000611bc684828501611a63565b91505092915050565b600060208284031215611be157600080fd5b6000611bef84828501611a78565b91505092915050565b600060208284031215611c0a57600080fd5b6000611c1884828501611a8d565b91505092915050565b600060208284031215611c3357600080fd5b6000611c4184828501611aa2565b91505092915050565b60008060008060808587031215611c6057600080fd5b600085013567ffffffffffffffff811115611c7a57600080fd5b611c8687828801611ae1565b945050602085013567ffffffffffffffff811115611ca357600080fd5b611caf87828801611ab7565b9350506040611cc087828801611b17565b925050606085013567ffffffffffffffff811115611cdd57600080fd5b611ce987828801611ab7565b91505092959194509250565b6000806101008385031215611d0957600080fd5b600083013567ffffffffffffffff811115611d2357600080fd5b611d2f85828601611ae1565b9250506020611d4085828601611afc565b9150509250929050565b600060208284031215611d5c57600080fd5b6000611d6a84828501611b17565b91505092915050565b600060208284031215611d8557600080fd5b6000611d9384828501611b2c565b91505092915050565b611da581612a32565b82525050565b611dbc611db782612a32565b612be1565b82525050565b611dcb81612a44565b82525050565b611dda81612a50565b82525050565b611df1611dec82612a50565b612bf3565b82525050565b611e0081612a7c565b82525050565b611e17611e1282612a7c565b612bfd565b82525050565b611e2681612a86565b82525050565b611e3d611e3882612a86565b612c07565b82525050565b611e4c81612ab2565b82525050565b611e63611e5e82612ab2565b612c11565b82525050565b6000611e75838561274b565b9350611e82838584612b25565b82840190509392505050565b6000611e9982612740565b611ea3818561274b565b9350611eb3818560208601612b34565b80840191505092915050565b6000611ecc600183612767565b9150611ed782612cd5565b600182019050919050565b6000611eef600183612767565b9150611efa82612cfe565b600182019050919050565b6000611f12602683612756565b9150611f1d82612d27565b604082019050919050565b6000611f35600183612767565b9150611f4082612d76565b600182019050919050565b6000611f58600183612767565b9150611f6382612d9f565b600182019050919050565b6000611f7b602283612756565b9150611f8682612dc8565b604082019050919050565b6000611f9e601a83612756565b9150611fa982612e17565b602082019050919050565b6000611fc1600183612767565b9150611fcc82612e40565b600182019050919050565b6000611fe4601483612756565b9150611fef82612e69565b602082019050919050565b6000612007600183612767565b915061201282612e92565b600182019050919050565b600061202a600183612767565b915061203582612ebb565b600182019050919050565b600061204d601983612756565b915061205882612ee4565b602082019050919050565b6000612070601883612756565b915061207b82612f0d565b602082019050919050565b6000612093600183612767565b915061209e82612f36565b600182019050919050565b60006120b6602083612756565b91506120c182612f5f565b602082019050919050565b60006120d9600183612767565b91506120e482612f88565b600182019050919050565b60006120fc600183612767565b915061210782612fb1565b600182019050919050565b600061211f601883612756565b915061212a82612fda565b602082019050919050565b6000612142601983612756565b915061214d82613003565b602082019050919050565b6000612165600183612767565b91506121708261302c565b600182019050919050565b6000612188601183612756565b915061219382613055565b602082019050919050565b60006121ab601383612756565b91506121b68261307e565b602082019050919050565b60006121ce600183612767565b91506121d9826130a7565b600182019050919050565b60006121f1600183612767565b91506121fc826130d0565b600182019050919050565b61221081612b08565b82525050565b61221f81612b18565b82525050565b61223661223182612b18565b612c2d565b82525050565b60006122488284611de0565b60148201915081905092915050565b60006122638284611e06565b60208201915081905092915050565b600061227e8285611e06565b60208201915061228e8284612225565b6001820191508190509392505050565b60006122aa8289611e2c565b6004820191506122bb828789611e69565b91506122c8828587611e69565b91506122d48284611e2c565b600482019150819050979650505050505050565b60006122f48284611e8e565b915081905092915050565b600061230a82611fb4565b91506123168288611dab565b60148201915061232582611f4b565b915061233082612158565b915061233c8287611e52565b60088201915061234b82611f4b565b9150612356826120cc565b915061236182611ffa565b915061236c82611fb4565b91506123788286611de0565b60148201915061238782612086565b915061239282611ebf565b915061239d826121e4565b91506123a882611ee2565b91506123b3826120cc565b91506123be82611ffa565b91506123c982611fb4565b91506123d58285611de0565b6014820191506123e482611f28565b91506123ef826121c1565b91506123fb8284611e2c565b60048201915061240a8261201d565b915061241582611f4b565b9150612420826121e4565b915061242b826120ef565b91508190509695505050505050565b600060208201905061244f6000830184611d9c565b92915050565b600060808201905061246a6000830187611d9c565b6124776020830186611e43565b6124846040830185612207565b6124916060830184611d9c565b95945050505050565b60006020820190506124af6000830184611dc2565b92915050565b6000610100820190506124cb600083018b611df7565b6124d8602083018a612216565b6124e56040830189611d9c565b6124f26060830188611e43565b6124ff6080830187611dd1565b61250c60a0830186611dd1565b61251960c0830185611e1d565b61252660e0830184611d9c565b9998505050505050505050565b6000602082019050818103600083015261254c81611f05565b9050919050565b6000602082019050818103600083015261256c81611f6e565b9050919050565b6000602082019050818103600083015261258c81611f91565b9050919050565b600060208201905081810360008301526125ac81611fd7565b9050919050565b600060208201905081810360008301526125cc81612040565b9050919050565b600060208201905081810360008301526125ec81612063565b9050919050565b6000602082019050818103600083015261260c816120a9565b9050919050565b6000602082019050818103600083015261262c81612112565b9050919050565b6000602082019050818103600083015261264c81612135565b9050919050565b6000602082019050818103600083015261266c8161217b565b9050919050565b6000602082019050818103600083015261268c8161219e565b9050919050565b600080833560016020038436030381126126ac57600080fd5b80840192508235915067ffffffffffffffff8211156126ca57600080fd5b6020830192506001820236038313156126e257600080fd5b509250929050565b60006126f4612705565b90506127008282612b67565b919050565b6000604051905090565b600067ffffffffffffffff82111561272a57612729612c6e565b5b61273382612c9d565b9050602081019050919050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b600061277d82612afe565b915061278883612afe565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156127bd576127bc612c3f565b5b828201905092915050565b60006127d382612b18565b91506127de83612b18565b92508260ff038211156127f4576127f3612c3f565b5b828201905092915050565b6000808291508390505b60018511156128495780860481111561282557612824612c3f565b5b60018516156128345780820291505b808102905061284285612cc8565b9450612809565b94509492505050565b600061285d82612afe565b915061286883612afe565b92506128957fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461289d565b905092915050565b6000826128ad5760019050612969565b816128bb5760009050612969565b81600181146128d157600281146128db5761290a565b6001915050612969565b60ff8411156128ed576128ec612c3f565b5b8360020a91508482111561290457612903612c3f565b5b50612969565b5060208310610133831016604e8410600b841016171561293f5782820a90508381111561293a57612939612c3f565b5b612969565b61294c84848460016127ff565b9250905081840481111561296357612962612c3f565b5b81810290505b9392505050565b600061297b82612afe565b915061298683612afe565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156129bf576129be612c3f565b5b828202905092915050565b60006129d582612afe565b91506129e083612afe565b9250828210156129f3576129f2612c3f565b5b828203905092915050565b6000612a0982612b18565b9150612a1483612b18565b925082821015612a2757612a26612c3f565b5b828203905092915050565b6000612a3d82612ade565b9050919050565b60008115159050919050565b60007fffffffffffffffffffffffffffffffffffffffff00000000000000000000000082169050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b60007fffffffffffffffff00000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b82818337600083830152505050565b60005b83811015612b52578082015181840152602081019050612b37565b83811115612b61576000848401525b50505050565b612b7082612c9d565b810181811067ffffffffffffffff82111715612b8f57612b8e612c6e565b5b80604052505050565b6000612ba382612afe565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612bd657612bd5612c3f565b5b600182019050919050565b6000612bec82612c1b565b9050919050565b6000819050919050565b6000819050919050565b6000819050919050565b6000819050919050565b6000612c2682612cbb565b9050919050565b6000612c3882612cae565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b60008160f81b9050919050565b60008160601b9050919050565b60008160011c9050919050565b7f6300000000000000000000000000000000000000000000000000000000000000600082015250565b7f6700000000000000000000000000000000000000000000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f8800000000000000000000000000000000000000000000000000000000000000600082015250565b7f7500000000000000000000000000000000000000000000000000000000000000600082015250565b7f52656164206f76657272756e20647572696e6720566172496e7420706172736960008201527f6e67000000000000000000000000000000000000000000000000000000000000602082015250565b7f42616420566172496e7420696e207363726970745075626b6579000000000000600082015250565b7f1400000000000000000000000000000000000000000000000000000000000000600082015250565b7f5661756c74206973206e6f742074727573746564000000000000000000000000600082015250565b7fa900000000000000000000000000000000000000000000000000000000000000600082015250565b7fb100000000000000000000000000000000000000000000000000000000000000600082015250565b7f57726f6e672033322d6279746520736372697074206861736800000000000000600082015250565b7f57726f6e67207363726970742068617368206c656e6774680000000000000000600082015250565b7f8700000000000000000000000000000000000000000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f7600000000000000000000000000000000000000000000000000000000000000600082015250565b7f6800000000000000000000000000000000000000000000000000000000000000600082015250565b7f4465706f73697420616c72656164792072657665616c65640000000000000000600082015250565b7f57726f6e672032302d6279746520736372697074206861736800000000000000600082015250565b7f0800000000000000000000000000000000000000000000000000000000000000600082015250565b7f566f75742072656164206f76657272756e000000000000000000000000000000600082015250565b7f536c696365206f7574206f6620626f756e647300000000000000000000000000600082015250565b7f0400000000000000000000000000000000000000000000000000000000000000600082015250565b7fac00000000000000000000000000000000000000000000000000000000000000600082015250565b61310281612a32565b811461310d57600080fd5b50565b61311981612a44565b811461312457600080fd5b50565b61313081612a50565b811461313b57600080fd5b50565b61314781612a7c565b811461315257600080fd5b50565b61315e81612a86565b811461316957600080fd5b50565b61317581612ab2565b811461318057600080fd5b50565b61318c81612afe565b811461319757600080fd5b50565b6131a381612b18565b81146131ae57600080fd5b5056fea264697066735822122011405fe12fb810e109fb08735817d8c263c975211dc2e4e3801e0e6fcba9937164736f6c63430008040033",
|
|
332
|
-
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100885760003560e01c80638d658d4e1161005b5780638d658d4e146101025780638da5cb5b1461011e578063e53c0b551461013c578063f2fde38b1461016c57610088565b806325750db71461008d57806343c6de29146100a957806360d712fc146100dc578063715018a6146100f8575b600080fd5b6100a760048036038101906100a29190611cf5565b610188565b005b6100c360048036038101906100be9190611d4a565b6107b9565b6040516100d39493929190612455565b60405180910390f35b6100f660048036038101906100f19190611b6a565b610846565b005b61010061096b565b005b61011c60048036038101906101179190611c4a565b6109f3565b005b6101266109f9565b604051610133919061243a565b60405180910390f35b61015660048036038101906101519190611b41565b610a22565b604051610163919061249a565b60405180910390f35b61018660048036038101906101819190611b41565b610a42565b005b600073ffffffffffffffffffffffffffffffffffffffff168160c00160208101906101b39190611b41565b73ffffffffffffffffffffffffffffffffffffffff1614806102305750600160008260c00160208101906101e79190611b41565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61026f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161026690612593565b60405180910390fd5b60008160200160208101906102849190611b41565b8260400160208101906102979190611c21565b8360600160208101906102aa9190611ba6565b8460800160208101906102bd9190611ba6565b8560a00160208101906102d09190611bf8565b6040516020016102e49594939291906122ff565b6040516020818303038152906040529050600061037183600001602081019061030d9190611d73565b60ff168580604001906103209190612693565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610b3a90919063ffffffff16565b9050600061037e82610d7a565b90506014815114156103e7576103938361111c565b805190602001208180519060200120146103e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103d990612633565b60405180910390fd5b6104cb565b60208151141561048f5760028360405161040191906122e8565b602060405180830381855afa15801561041e573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906104419190611bcf565b61044a826111e9565b1461048a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610481906125b3565b60405180910390fd5b6104ca565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104c1906125d3565b60405180910390fd5b5b600061053f8660000160208101906104e39190611bf8565b8780602001906104f39190612693565b8980604001906105039190612693565b8b60600160208101906105169190611bf8565b60405160200161052b9695949392919061229e565b60405160208183030381529060405261120c565b90506000600260008388600001602081019061055b9190611d73565b60405160200161056c929190612272565b6040516020818303038152906040528051906020012060001c81526020019081526020016000209050600081600001601c9054906101000a900463ffffffff1663ffffffff16146105f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e990612613565b60405180910390fd5b600060208501519050808260000160146101000a81548167ffffffffffffffff021916908360c01c02179055508660200160208101906106329190611b41565b8260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504282600001601c6101000a81548163ffffffff021916908363ffffffff1602179055508660c00160208101906106aa9190611b41565b8260010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f293519c6fe266b8b9ca154d153e408c6ef03135a5abeb42e9a91781d620ca47b838860000160208101906107219190611d73565b8960200160208101906107349190611b41565b8a60400160208101906107479190611c21565b8b606001602081019061075a9190611ba6565b8c608001602081019061076d9190611ba6565b8d60a00160208101906107809190611bf8565b8e60c00160208101906107939190611b41565b6040516107a79897969594939291906124b5565b60405180910390a15050505050505050565b60026020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060000160149054906101000a900460c01b9080600001601c9054906101000a900463ffffffff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905084565b61084e6112d2565b73ffffffffffffffffffffffffffffffffffffffff1661086c6109f9565b73ffffffffffffffffffffffffffffffffffffffff16146108c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b9906125f3565b60405180910390fd5b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9065599c12c4294d9e2201638226d0d0beb95c228f468c4e7c2bdb8322b6066f8260405161095f919061249a565b60405180910390a25050565b6109736112d2565b73ffffffffffffffffffffffffffffffffffffffff166109916109f9565b73ffffffffffffffffffffffffffffffffffffffff16146109e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109de906125f3565b60405180910390fd5b6109f160006112da565b565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60016020528060005260406000206000915054906101000a900460ff1681565b610a4a6112d2565b73ffffffffffffffffffffffffffffffffffffffff16610a686109f9565b73ffffffffffffffffffffffffffffffffffffffff1614610abe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab5906125f3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610b2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2590612533565b60405180910390fd5b610b37816112da565b50565b6060600080610b488561139e565b80925081935050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610bb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610baa90612553565b60405180910390fd5b808410610bf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bec90612653565b60405180910390fd5b6060600080846001610c079190612772565b905060005b87811015610cc657610c3582838b51610c2591906129ca565b8b61149a9092919063ffffffff16565b9350610c4084611560565b92507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831415610ca5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9c90612573565b60405180910390fd5b8282610cb19190612772565b91508080610cbe90612b98565b915050610c0c565b50610ce881828a51610cd891906129ca565b8a61149a9092919063ffffffff16565b9250610cf383611560565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610d58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4f90612573565b60405180910390fd5b610d6d81838a61149a9092919063ffffffff16565b9550505050505092915050565b6060600082600881518110610db8577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c90508251600982610dd791906127c8565b60ff1614610df75760405180602001604052806000815250915050611117565b600083600981518110610e33577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff161415610f265760028160ff161015610e6e5760405180602001604052806000815250915050611117565b600083600a81518110610eaa577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff169050600282610eca91906129fe565b60ff1681141580610ee9575060208114158015610ee8575060148114155b5b15610f07576040518060200160405280600081525092505050611117565b610f1d600b828661149a9092919063ffffffff16565b92505050611117565b6000610f3f60086003866116449092919063ffffffff16565b90507fe1683aec1a10d43657f3f2c82e683d8e19e8a3f320ce9d3bf22c6ca6ab4cbce681141561104357601484600b81518110610fa5577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff1614158061100557507f3b50b2715f5a28d2a7eeb517f17ec797e8536bd425bf31fc4f6bf7ce1e34b77d61100260028651610ff091906129ca565b6002876116449092919063ffffffff16565b14155b15611023576040518060200160405280600081525092505050611117565b61103a600c60148661149a9092919063ffffffff16565b92505050611117565b7fa0916ee0b243ee20fb4ce56170744d86b54d7ae03a418a7a12156f40dedcf7d7811415611102576087846001865161107c91906129ca565b815181106110b3577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff16146110e2576040518060200160405280600081525092505050611117565b6110f9600b60148661149a9092919063ffffffff16565b92505050611117565b50604051806020016040528060008152509150505b919050565b6060600360028360405161113091906122e8565b602060405180830381855afa15801561114d573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906111709190611bcf565b6040516020016111809190612257565b60405160208183030381529060405260405161119c91906122e8565b602060405180830381855afa1580156111b9573d6000803e3d6000fd5b5050506040515160601b6040516020016111d3919061223c565b6040516020818303038152906040529050919050565b600080825114156111ff576000801b9050611207565b602082015190505b919050565b60006002808360405161121f91906122e8565b602060405180830381855afa15801561123c573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525081019061125f9190611bcf565b60405160200161126f9190612257565b60405160208183030381529060405260405161128b91906122e8565b602060405180830381855afa1580156112a8573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906112cb9190611bcf565b9050919050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060006113ac846116b6565b905060008160ff161415611414576000846000815181106113f6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c8060ff1690509250925050611495565b80600161142191906127c8565b60ff1684511015611459577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60009250925050611495565b600061148461147f61147a60018560ff168961149a9092919063ffffffff16565b6117d6565b61193d565b905081818160ff1691509350935050505b915091565b606060008214156114bc57604051806020016040528060008152509050611559565b600082846114ca9190612772565b905083811180156114dc575080855110155b61151b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151290612673565b60405180910390fd5b604051915082604083010160405282825283850182038460208701018481015b808210156115545781518383015260208201915061153b565b505050505b9392505050565b6000600982511015611594577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff905061163f565b60006115b860088085516115a891906129ca565b8561149a9092919063ffffffff16565b90506000806115c68361139e565b80925081935050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611621577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff935050505061163f565b8082600961162f9190612772565b6116399190612772565b93505050505b919050565b60008082846116539190612772565b90508381118015611665575080855110155b6116a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169b90612673565b60405180910390fd5b82846020870101209150509392505050565b600060ff826000815181106116f4577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff16141561171457600890506117d1565b60fe82600081518110611750577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff16141561177057600490506117d1565b60fd826000815181106117ac577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff1614156117cc57600290506117d1565b600090505b919050565b60606000825167ffffffffffffffff81111561181b577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f19166020018201604052801561184d5781602001600182028036833780820191505090505b50905060005b835181101561193357838181518110611895577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b8260018387516118b091906129ca565b6118ba91906129ca565b815181106118f1577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350808061192b90612b98565b915050611853565b5080915050919050565b60008060005b83518110156119f1576001816119599190612772565b845161196591906129ca565b60086119719190612970565b600261197d9190612852565b8482815181106119b6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff166119d19190612970565b826119dc9190612772565b915080806119e990612b98565b915050611943565b5080915050919050565b6000611a0e611a098461270f565b6126ea565b905082815260208101848484011115611a2657600080fd5b611a31848285612b25565b509392505050565b600081359050611a48816130f9565b92915050565b600081359050611a5d81613110565b92915050565b600081359050611a7281613127565b92915050565b600081519050611a878161313e565b92915050565b600081359050611a9c81613155565b92915050565b600081359050611ab18161316c565b92915050565b600082601f830112611ac857600080fd5b8135611ad88482602086016119fb565b91505092915050565b600060808284031215611af357600080fd5b81905092915050565b600060e08284031215611b0e57600080fd5b81905092915050565b600081359050611b2681613183565b92915050565b600081359050611b3b8161319a565b92915050565b600060208284031215611b5357600080fd5b6000611b6184828501611a39565b91505092915050565b60008060408385031215611b7d57600080fd5b6000611b8b85828601611a39565b9250506020611b9c85828601611a4e565b9150509250929050565b600060208284031215611bb857600080fd5b6000611bc684828501611a63565b91505092915050565b600060208284031215611be157600080fd5b6000611bef84828501611a78565b91505092915050565b600060208284031215611c0a57600080fd5b6000611c1884828501611a8d565b91505092915050565b600060208284031215611c3357600080fd5b6000611c4184828501611aa2565b91505092915050565b60008060008060808587031215611c6057600080fd5b600085013567ffffffffffffffff811115611c7a57600080fd5b611c8687828801611ae1565b945050602085013567ffffffffffffffff811115611ca357600080fd5b611caf87828801611ab7565b9350506040611cc087828801611b17565b925050606085013567ffffffffffffffff811115611cdd57600080fd5b611ce987828801611ab7565b91505092959194509250565b6000806101008385031215611d0957600080fd5b600083013567ffffffffffffffff811115611d2357600080fd5b611d2f85828601611ae1565b9250506020611d4085828601611afc565b9150509250929050565b600060208284031215611d5c57600080fd5b6000611d6a84828501611b17565b91505092915050565b600060208284031215611d8557600080fd5b6000611d9384828501611b2c565b91505092915050565b611da581612a32565b82525050565b611dbc611db782612a32565b612be1565b82525050565b611dcb81612a44565b82525050565b611dda81612a50565b82525050565b611df1611dec82612a50565b612bf3565b82525050565b611e0081612a7c565b82525050565b611e17611e1282612a7c565b612bfd565b82525050565b611e2681612a86565b82525050565b611e3d611e3882612a86565b612c07565b82525050565b611e4c81612ab2565b82525050565b611e63611e5e82612ab2565b612c11565b82525050565b6000611e75838561274b565b9350611e82838584612b25565b82840190509392505050565b6000611e9982612740565b611ea3818561274b565b9350611eb3818560208601612b34565b80840191505092915050565b6000611ecc600183612767565b9150611ed782612cd5565b600182019050919050565b6000611eef600183612767565b9150611efa82612cfe565b600182019050919050565b6000611f12602683612756565b9150611f1d82612d27565b604082019050919050565b6000611f35600183612767565b9150611f4082612d76565b600182019050919050565b6000611f58600183612767565b9150611f6382612d9f565b600182019050919050565b6000611f7b602283612756565b9150611f8682612dc8565b604082019050919050565b6000611f9e601a83612756565b9150611fa982612e17565b602082019050919050565b6000611fc1600183612767565b9150611fcc82612e40565b600182019050919050565b6000611fe4601483612756565b9150611fef82612e69565b602082019050919050565b6000612007600183612767565b915061201282612e92565b600182019050919050565b600061202a600183612767565b915061203582612ebb565b600182019050919050565b600061204d601983612756565b915061205882612ee4565b602082019050919050565b6000612070601883612756565b915061207b82612f0d565b602082019050919050565b6000612093600183612767565b915061209e82612f36565b600182019050919050565b60006120b6602083612756565b91506120c182612f5f565b602082019050919050565b60006120d9600183612767565b91506120e482612f88565b600182019050919050565b60006120fc600183612767565b915061210782612fb1565b600182019050919050565b600061211f601883612756565b915061212a82612fda565b602082019050919050565b6000612142601983612756565b915061214d82613003565b602082019050919050565b6000612165600183612767565b91506121708261302c565b600182019050919050565b6000612188601183612756565b915061219382613055565b602082019050919050565b60006121ab601383612756565b91506121b68261307e565b602082019050919050565b60006121ce600183612767565b91506121d9826130a7565b600182019050919050565b60006121f1600183612767565b91506121fc826130d0565b600182019050919050565b61221081612b08565b82525050565b61221f81612b18565b82525050565b61223661223182612b18565b612c2d565b82525050565b60006122488284611de0565b60148201915081905092915050565b60006122638284611e06565b60208201915081905092915050565b600061227e8285611e06565b60208201915061228e8284612225565b6001820191508190509392505050565b60006122aa8289611e2c565b6004820191506122bb828789611e69565b91506122c8828587611e69565b91506122d48284611e2c565b600482019150819050979650505050505050565b60006122f48284611e8e565b915081905092915050565b600061230a82611fb4565b91506123168288611dab565b60148201915061232582611f4b565b915061233082612158565b915061233c8287611e52565b60088201915061234b82611f4b565b9150612356826120cc565b915061236182611ffa565b915061236c82611fb4565b91506123788286611de0565b60148201915061238782612086565b915061239282611ebf565b915061239d826121e4565b91506123a882611ee2565b91506123b3826120cc565b91506123be82611ffa565b91506123c982611fb4565b91506123d58285611de0565b6014820191506123e482611f28565b91506123ef826121c1565b91506123fb8284611e2c565b60048201915061240a8261201d565b915061241582611f4b565b9150612420826121e4565b915061242b826120ef565b91508190509695505050505050565b600060208201905061244f6000830184611d9c565b92915050565b600060808201905061246a6000830187611d9c565b6124776020830186611e43565b6124846040830185612207565b6124916060830184611d9c565b95945050505050565b60006020820190506124af6000830184611dc2565b92915050565b6000610100820190506124cb600083018b611df7565b6124d8602083018a612216565b6124e56040830189611d9c565b6124f26060830188611e43565b6124ff6080830187611dd1565b61250c60a0830186611dd1565b61251960c0830185611e1d565b61252660e0830184611d9c565b9998505050505050505050565b6000602082019050818103600083015261254c81611f05565b9050919050565b6000602082019050818103600083015261256c81611f6e565b9050919050565b6000602082019050818103600083015261258c81611f91565b9050919050565b600060208201905081810360008301526125ac81611fd7565b9050919050565b600060208201905081810360008301526125cc81612040565b9050919050565b600060208201905081810360008301526125ec81612063565b9050919050565b6000602082019050818103600083015261260c816120a9565b9050919050565b6000602082019050818103600083015261262c81612112565b9050919050565b6000602082019050818103600083015261264c81612135565b9050919050565b6000602082019050818103600083015261266c8161217b565b9050919050565b6000602082019050818103600083015261268c8161219e565b9050919050565b600080833560016020038436030381126126ac57600080fd5b80840192508235915067ffffffffffffffff8211156126ca57600080fd5b6020830192506001820236038313156126e257600080fd5b509250929050565b60006126f4612705565b90506127008282612b67565b919050565b6000604051905090565b600067ffffffffffffffff82111561272a57612729612c6e565b5b61273382612c9d565b9050602081019050919050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b600061277d82612afe565b915061278883612afe565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156127bd576127bc612c3f565b5b828201905092915050565b60006127d382612b18565b91506127de83612b18565b92508260ff038211156127f4576127f3612c3f565b5b828201905092915050565b6000808291508390505b60018511156128495780860481111561282557612824612c3f565b5b60018516156128345780820291505b808102905061284285612cc8565b9450612809565b94509492505050565b600061285d82612afe565b915061286883612afe565b92506128957fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461289d565b905092915050565b6000826128ad5760019050612969565b816128bb5760009050612969565b81600181146128d157600281146128db5761290a565b6001915050612969565b60ff8411156128ed576128ec612c3f565b5b8360020a91508482111561290457612903612c3f565b5b50612969565b5060208310610133831016604e8410600b841016171561293f5782820a90508381111561293a57612939612c3f565b5b612969565b61294c84848460016127ff565b9250905081840481111561296357612962612c3f565b5b81810290505b9392505050565b600061297b82612afe565b915061298683612afe565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156129bf576129be612c3f565b5b828202905092915050565b60006129d582612afe565b91506129e083612afe565b9250828210156129f3576129f2612c3f565b5b828203905092915050565b6000612a0982612b18565b9150612a1483612b18565b925082821015612a2757612a26612c3f565b5b828203905092915050565b6000612a3d82612ade565b9050919050565b60008115159050919050565b60007fffffffffffffffffffffffffffffffffffffffff00000000000000000000000082169050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b60007fffffffffffffffff00000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b82818337600083830152505050565b60005b83811015612b52578082015181840152602081019050612b37565b83811115612b61576000848401525b50505050565b612b7082612c9d565b810181811067ffffffffffffffff82111715612b8f57612b8e612c6e565b5b80604052505050565b6000612ba382612afe565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612bd657612bd5612c3f565b5b600182019050919050565b6000612bec82612c1b565b9050919050565b6000819050919050565b6000819050919050565b6000819050919050565b6000819050919050565b6000612c2682612cbb565b9050919050565b6000612c3882612cae565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b60008160f81b9050919050565b60008160601b9050919050565b60008160011c9050919050565b7f6300000000000000000000000000000000000000000000000000000000000000600082015250565b7f6700000000000000000000000000000000000000000000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f8800000000000000000000000000000000000000000000000000000000000000600082015250565b7f7500000000000000000000000000000000000000000000000000000000000000600082015250565b7f52656164206f76657272756e20647572696e6720566172496e7420706172736960008201527f6e67000000000000000000000000000000000000000000000000000000000000602082015250565b7f42616420566172496e7420696e207363726970745075626b6579000000000000600082015250565b7f1400000000000000000000000000000000000000000000000000000000000000600082015250565b7f5661756c74206973206e6f742074727573746564000000000000000000000000600082015250565b7fa900000000000000000000000000000000000000000000000000000000000000600082015250565b7fb100000000000000000000000000000000000000000000000000000000000000600082015250565b7f57726f6e672033322d6279746520736372697074206861736800000000000000600082015250565b7f57726f6e67207363726970742068617368206c656e6774680000000000000000600082015250565b7f8700000000000000000000000000000000000000000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f7600000000000000000000000000000000000000000000000000000000000000600082015250565b7f6800000000000000000000000000000000000000000000000000000000000000600082015250565b7f4465706f73697420616c72656164792072657665616c65640000000000000000600082015250565b7f57726f6e672032302d6279746520736372697074206861736800000000000000600082015250565b7f0800000000000000000000000000000000000000000000000000000000000000600082015250565b7f566f75742072656164206f76657272756e000000000000000000000000000000600082015250565b7f536c696365206f7574206f6620626f756e647300000000000000000000000000600082015250565b7f0400000000000000000000000000000000000000000000000000000000000000600082015250565b7fac00000000000000000000000000000000000000000000000000000000000000600082015250565b61310281612a32565b811461310d57600080fd5b50565b61311981612a44565b811461312457600080fd5b50565b61313081612a50565b811461313b57600080fd5b50565b61314781612a7c565b811461315257600080fd5b50565b61315e81612a86565b811461316957600080fd5b50565b61317581612ab2565b811461318057600080fd5b50565b61318c81612afe565b811461319757600080fd5b50565b6131a381612b18565b81146131ae57600080fd5b5056fea264697066735822122011405fe12fb810e109fb08735817d8c263c975211dc2e4e3801e0e6fcba9937164736f6c63430008040033",
|
|
832
|
+
"bytecode": "0x6101006040523480156200001257600080fd5b506040516200539c3803806200539c833981016040819052620000359162000238565b6200004033620001cb565b6001600160a01b0384166200009c5760405162461bcd60e51b815260206004820152601b60248201527f42616e6b20616464726573732063616e6e6f74206265207a65726f000000000060448201526064015b60405180910390fd5b6001600160601b0319606085901b1660a0526001600160a01b038316620001065760405162461bcd60e51b815260206004820152601c60248201527f52656c617920616464726573732063616e6e6f74206265207a65726f00000000604482015260640162000093565b6001600160601b0319606084901b1660c0526001600160a01b038216620001705760405162461bcd60e51b815260206004820152601f60248201527f547265617375727920616464726573732063616e6e6f74206265207a65726f00604482015260640162000093565b60609190911b6001600160601b03191660e052608052505060008054600160a01b600160e01b031916613d0960a61b179055600180546001600160801b0319166903e800000000000186a01790556202a30060025562000289565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200023357600080fd5b919050565b600080600080608085870312156200024e578384fd5b62000259856200021b565b935062000269602086016200021b565b925062000279604086016200021b565b6060959095015193969295505050565b60805160a05160601c60c05160601c60e05160601c615098620003046000396000818161030f01526113f10152600081816104950152818161386301526138f80152600081816103560152818161088901528181611358015281816114290152611b970152600081816102ad0152613b5a01526150986000f3fe608060405234801561001057600080fd5b50600436106101825760003560e01c80638da5cb5b116100d8578063bdf9fca91161008c578063e65e19d511610066578063e65e19d514610517578063f2fde38b14610558578063f3cc53481461056b57600080fd5b8063bdf9fca9146104b7578063d6eccdf0146104d1578063e53c0b55146104e457600080fd5b8063b02c43d0116100bd578063b02c43d0146103db578063b34b32161461047d578063b59589d11461049057600080fd5b80638da5cb5b14610398578063a588f059146103a957600080fd5b80635c0b48121161013a578063715018a611610114578063715018a61461034957806376cdb03b1461035157806383a434281461037857600080fd5b80635c0b4812146102e457806360d712fc146102f757806361d027b31461030a57600080fd5b80631fff4e701161016b5780631fff4e70146102915780632bb818c2146102a857806359a9d90a146102cf57600080fd5b806303d952f7146101875780630b6ba19d14610232575b600080fd5b6101e66101953660046148fc565b600660205260009081526040902080546001909101546001600160a01b03821691600160a01b90046001600160401b039081169181811691600160401b82041690600160801b900463ffffffff1685565b604080516001600160a01b0390961686526001600160401b0394851660208701529284169285019290925291909116606083015263ffffffff16608082015260a0015b60405180910390f35b6101e66102403660046148fc565b600760205260009081526040902080546001909101546001600160a01b03821691600160a01b90046001600160401b039081169181811691600160401b82041690600160801b900463ffffffff1685565b61029a60025481565b604051908152602001610229565b61029a7f000000000000000000000000000000000000000000000000000000000000000081565b6102e26102dd36600461474c565b61057e565b005b6102e26102f2366004614836565b610901565b6102e26103053660046145f0565b610f20565b6103317f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610229565b6102e2610fd9565b6103317f000000000000000000000000000000000000000000000000000000000000000081565b61029a61038636600461462a565b60056020526000908152604090205481565b6000546001600160a01b0316610331565b6001546103c390600160401b90046001600160401b031681565b6040516001600160401b039091168152602001610229565b6104396103e93660046148fc565b600460205260009081526040902080546001909101546001600160a01b0380831692600160a01b8082046001600160401b031693600160e01b90920463ffffffff90811693831692919091041685565b604080516001600160a01b0396871681526001600160401b03909516602086015263ffffffff9384169085015293166060830152909116608082015260a001610229565b6102e261048b3660046147b4565b61103f565b6103317f000000000000000000000000000000000000000000000000000000000000000081565b6000546103c390600160a01b90046001600160401b031681565b6102e26104df366004614644565b611490565b6105076104f23660046145d6565b60036020526000908152604090205460ff1681565b6040519015158152602001610229565b61054a61052536600461462a565b60086020526000908152604090205460ff81169061010090046001600160401b031682565b604051610229929190614da1565b6102e26105663660046145d6565b611c07565b6001546103c3906001600160401b031681565b600061058a8484611ce9565b90506000806105d961059f6040880188614ddb565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611e6392505050565b60408051606081018252600080825260208083018290528284018290526001600160601b0319861682526005905291909120549294509092509080156106f35780863561062c6040890160208a01614914565b61063c60608a0160408b0161492e565b6040516020016106799392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60405160208183030381529060405280519060200120146106e15760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f20646174610000000000000000000060448201526064015b60405180910390fd5b6106f03687900387018761488d565b91505b6000808061074361070760208d018d614ddb565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250899250611f96915050565b91945092509050600061075f6001600160401b03881685614fa5565b905060008251826107709190614e87565b905060005b83518110156107c8578184828151811061079f57634e487b7160e01b600052603260045260246000fd5b602002602001018181516107b39190614fa5565b905250806107c081615007565b915050610775565b5060408051602081018c90526000918101919091526001600160c01b031960c08a901b166044820152604c0160408051808303601f1901815282825280516020918201206001600160601b03198d1660008181526005845284902091909155835282018c90527fe50ffdcc0a5f2c1ede5c122b9414ffd7b2c6bc870d2d775194049dc30da95e6a910160405180910390a16040517f266a123a0000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063266a123a906108c09087908790600401614ca7565b600060405180830381600087803b1580156108da57600080fd5b505af11580156108ee573d6000803e3d6000fd5b5050505050505050505050505050505050565b600061091360e0830160c084016145d6565b6001600160a01b0316148061095557506003600061093760e0840160c085016145d6565b6001600160a01b0316815260208101919091526040016000205460ff165b6109a15760405162461bcd60e51b815260206004820152601460248201527f5661756c74206973206e6f74207472757374656400000000000000000000000060448201526064016106d8565b60006109b360408301602084016145d6565b6109c36060840160408501614724565b6109d3608085016060860161462a565b6109e360a086016080870161462a565b6109f360c0870160a088016146fc565b604051602001610a07959493929190614a32565b60408051601f1981840301815291905290506000610a7b610a2b6020850185614914565b63ffffffff16610a3e6040870187614ddb565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505061248e9050565b90506000610a8882612659565b9050805160141415610b0e57610a9d83612945565b6001600160601b031916610ab282600061296c565b6001600160601b03191614610b095760405162461bcd60e51b815260206004820152601960248201527f57726f6e672032302d627974652073637269707420686173680000000000000060448201526064016106d8565b610c06565b805160201415610bbe57600283604051610b289190614a26565b602060405180830381855afa158015610b45573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610b6891906146e4565b610b7182612982565b14610b095760405162461bcd60e51b815260206004820152601960248201527f57726f6e672033322d627974652073637269707420686173680000000000000060448201526064016106d8565b60405162461bcd60e51b815260206004820152601860248201527f57726f6e67207363726970742068617368206c656e677468000000000000000060448201526064016106d8565b6000610c6b610c1860208801886146fc565b610c256020890189614ddb565b610c3260408b018b614ddb565b610c4260808d0160608e016146fc565b604051602001610c57969594939291906149c1565b60405160208183030381529060405261299e565b9050600060048183610c8060208a018a614914565b604051602001610ca792919091825260e01b6001600160e01b031916602082015260240190565b60408051808303601f190181529181528151602092830120835290820192909252016000208054909150600160e01b900463ffffffff1615610d2b5760405162461bcd60e51b815260206004820152601860248201527f4465706f73697420616c72656164792072657665616c6564000000000000000060448201526064016106d8565b6000610d36856129c5565b82547fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff16600160a01b6001600160401b038316021783559050610d7f60408801602089016145d6565b82546001600160a01b03919091167bffffffffffffffff000000000000000000000000000000000000000090911617600160e01b4263ffffffff1602178255610dce60e0880160c089016145d6565b60018301805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790557fa7382159a693ed317a024daf0fd1ba30805cdf9928ee09550af517c516e2ef0583610e2c60208a018a614914565b610e3c60408b0160208c016145d6565b84610e4d60608d0160408e01614724565b610e5d60808e0160608f0161462a565b8d6080016020810190610e70919061462a565b8e60a0016020810190610e8391906146fc565b8f60c0016020810190610e9691906145d6565b60408051998a5263ffffffff90981660208a01526001600160a01b03968716978901979097526001600160401b0390941660608801526001600160c01b031990921660808701526001600160601b031990811660a08701521660c08501526001600160e01b03191660e0840152166101008201526101200160405180910390a15050505050505050565b6000546001600160a01b03163314610f7a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106d8565b6001600160a01b038216600081815260036020908152604091829020805460ff191685151590811790915591519182527f9065599c12c4294d9e2201638226d0d0beb95c228f468c4e7c2bdb8322b6066f910160405180910390a25050565b6000546001600160a01b031633146110335760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106d8565b61103d6000612a3b565b565b600061104b8585611ce9565b905061109b61105d6020870187614ddb565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250879250869150612a989050565b6001600160601b0319821660009081526008602052604090205460ff1660018160048111156110da57634e487b7160e01b600052602160045260246000fd5b14806111055750600281600481111561110357634e487b7160e01b600052602160045260246000fd5b145b6111775760405162461bcd60e51b815260206004820152602c60248201527f57616c6c6574206d75737420626520696e20416374697665206f72204d6f766960448201527f6e6746756473207374617465000000000000000000000000000000000000000060648201526084016106d8565b60006111c56111896040890189614ddb565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250889250612c9d915050565b60608101519091506001600160401b0316156112585782816040015182606001516040516020016112239392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60408051601f1981840301815291815281516020928301206001600160601b0319871660009081526005909352912055611273565b6001600160601b031984166000908152600560205260408120555b80516001600160601b03198516600090815260086020526040902080546001906112ac90849061010090046001600160401b0316614fbc565b92506101000a8154816001600160401b0302191690836001600160401b031602179055507fa45596c10f758d32ec8cca64a0fbfe776052b08fdb3f026e0a87f52118bf8fbe84846040516113169291906001600160601b0319929092168252602082015260400190565b60405180910390a180516040517f392aee430000000000000000000000000000000000000000000000000000000081526001600160401b0390911660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063392aee4390602401600060405180830381600087803b1580156113a457600080fd5b505af11580156113b8573d6000803e3d6000fd5b5050505060208101516040517f56a6d9ef0000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301526001600160401b0390921660248201527f0000000000000000000000000000000000000000000000000000000000000000909116906356a6d9ef90604401600060405180830381600087803b15801561146f57600080fd5b505af1158015611483573d6000803e3d6000fd5b5050505050505050505050565b60016001600160601b0319861660009081526008602052604090205460ff1660048111156114ce57634e487b7160e01b600052602160045260246000fd5b1461151b5760405162461bcd60e51b815260206004820152601e60248201527f57616c6c6574206d75737420626520696e20416374697665207374617465000060448201526064016106d8565b6001600160601b03198516600090815260056020526040902054806115a85760405162461bcd60e51b815260206004820152602160248201527f4e6f206d61696e205554584f20666f722074686520676976656e2077616c6c6560448201527f740000000000000000000000000000000000000000000000000000000000000060648201526084016106d8565b8085356115bb6040880160208901614914565b6115cb6060890160408a0161492e565b6040516020016116089392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b604051602081830303815290604052805190602001201461166b5760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f20646174610000000000000000000060448201526064016106d8565b600061169d600060c01b868660405160200161168993929190614a02565b604051602081830303815290604052612659565b905060008151116117165760405162461bcd60e51b815260206004820152602e60248201527f52656465656d6572206f757470757420736372697074206d757374206265206160448201527f207374616e64617264207479706500000000000000000000000000000000000060648201526084016106d8565b80805190602001208760405160200161173f91906001600160601b031991909116815260140190565b6040516020818303038152906040528051906020012014156117c95760405162461bcd60e51b815260206004820152603760248201527f52656465656d6572206f757470757420736372697074206d757374206e6f742060448201527f706f696e7420746f207468652077616c6c657420504b4800000000000000000060648201526084016106d8565b6000546001600160401b03600160a01b9091048116908416101561182f5760405162461bcd60e51b815260206004820152601b60248201527f526564656d7074696f6e20616d6f756e7420746f6f20736d616c6c000000000060448201526064016106d8565b600087868660405160200161184693929190614981565b60408051808303601f19018152918152815160209283012060008181526006909352912060010154909150600160801b900463ffffffff16156119175760405162461bcd60e51b815260206004820152604a60248201527f546865726520697320612070656e64696e6720726564656d7074696f6e20726560448201527f71756573742066726f6d20746869732077616c6c657420746f2074686520736160648201527f6d65206164647265737300000000000000000000000000000000000000000000608482015260a4016106d8565b6001546001600160401b0380821691600160401b9004166119388287614fbc565b6001600160601b03198b166000908152600860205260409020805460019061196f90849061010090046001600160401b0316614e37565b82546001600160401b0391821661010093840a90810290830219909116179092556001600160601b03198d1660009081526008602052604090819020549190910490911691506119c59060608c01908c0161492e565b6001600160401b03161015611a1c5760405162461bcd60e51b815260206004820152601960248201527f496e73756666696369656e742077616c6c65742066756e64730000000000000060448201526064016106d8565b6040805160a081018252338082526001600160401b03808a1660208085019182528783168587019081528784166060870190815263ffffffff4281166080890190815260008d81526006909552938990209751885495518716600160a01b026001600160e01b03199096166001600160a01b03919091161794909417875590516001909601805491519251909316600160801b027fffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffffff928516600160401b027fffffffffffffffffffffffffffffffff00000000000000000000000000000000909216969094169590951794909417939093161790915590517f97a0199072f487232635d50ab75860891afe0b91c976ed2fc76502c4d82d0d9591611b4c918d918c918c91908c9089908990614d2a565b60405180910390a16040517f7c6db49c0000000000000000000000000000000000000000000000000000000081523360048201523060248201526001600160401b03871660448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690637c6db49c90606401600060405180830381600087803b158015611be357600080fd5b505af1158015611bf7573d6000803e3d6000fd5b5050505050505050505050505050565b6000546001600160a01b03163314611c615760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106d8565b6001600160a01b038116611cdd5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016106d8565b611ce681612a3b565b50565b6000611d35611cfb6020850185614ddb565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506132be92505050565b611d815760405162461bcd60e51b815260206004820152601d60248201527f496e76616c696420696e70757420766563746f722070726f766964656400000060448201526064016106d8565b611dcb611d916040850185614ddb565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061336e92505050565b611e175760405162461bcd60e51b815260206004820152601e60248201527f496e76616c6964206f757470757420766563746f722070726f7669646564000060448201526064016106d8565b611e51611e2760208501856146fc565b611e346020860186614ddb565b611e416040880188614ddb565b610c4260808a0160608b016146fc565b9050611e5d8183613411565b92915050565b6000806000611e718461356a565b91505080600114611eea5760405162461bcd60e51b815260206004820152602b60248201527f5377656570207472616e73616374696f6e206d7573742068617665206120736960448201527f6e676c65206f757470757400000000000000000000000000000000000000000060648201526084016106d8565b6000611ef6858261248e565b9050611f01816129c5565b92506000611f0e82612659565b90508051601414611f875760405162461bcd60e51b815260206004820152602b60248201527f57616c6c6574207075626c6963206b657920686173682073686f756c6420686160448201527f766520323020627974657300000000000000000000000000000000000000000060648201526084016106d8565b60208101519450505050915091565b805160009060609081901515838080611fae8961356a565b90925090506000611fc0836001614e1f565b90508415611fd857611fd3600183614fa5565b611fda565b815b6001600160401b03811115611fff57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015612028578160200160208202803683370190505b50965086516001600160401b0381111561205257634e487b7160e01b600052604160045260246000fd5b60405190808252806020026020018201604052801561207b578160200160208202803683370190505b5095506000805b838110156123915760008060006120998f87613581565b92509250925060006004600085856040516020016120ce92919091825260e01b6001600160e01b031916602082015260240190565b60408051808303601f190181529181528151602092830120835290820192909252016000208054909150600160e01b900463ffffffff16156122ea576001810154600160a01b900463ffffffff16156121695760405162461bcd60e51b815260206004820152601560248201527f4465706f73697420616c7265616479207377657074000000000000000000000060448201526064016106d8565b8c518614156121e05760405162461bcd60e51b815260206004820152603a60248201527f4578706563746564206d61696e205554584f206e6f742070726573656e74206960448201527f6e207377656570207472616e73616374696f6e20696e7075747300000000000060648201526084016106d8565b6001810180547fffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffff16600160a01b4263ffffffff160217905580548d516001600160a01b03909116908e908890811061224857634e487b7160e01b600052603260045260246000fd5b6001600160a01b03929092166020928302919091019091015280548c51600160a01b9091046001600160401b0316908d908890811061229757634e487b7160e01b600052603260045260246000fd5b6020026020010181815250508b86815181106122c357634e487b7160e01b600052603260045260246000fd5b60200260200101518e6122d69190614e1f565b9d50856122e281615007565b96505061236e565b8915158b1515141580156122fe57508e5184145b156123265760408f015161231b906001600160401b03168f614e1f565b9d506001995061236e565b60405162461bcd60e51b815260206004820152601260248201527f556e6b6e6f776e20696e7075742074797065000000000000000000000000000060448201526064016106d8565b6123788288614e1f565b965050505050808061238990615007565b915050612082565b50600081116124085760405162461bcd60e51b815260206004820152603360248201527f5377656570207472616e73616374696f6e206d7573742070726f63657373206160448201527f74206c65617374206f6e65206465706f7369740000000000000000000000000060648201526084016106d8565b841515861515146124815760405162461bcd60e51b815260206004820152603a60248201527f4578706563746564206d61696e205554584f206e6f742070726573656e74206960448201527f6e207377656570207472616e73616374696f6e20696e7075747300000000000060648201526084016106d8565b5050505050509250925092565b606060008061249c8561356a565b90925090506000198214156124fe5760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e742070617273696044820152616e6760f01b60648201526084016106d8565b80841061254d5760405162461bcd60e51b815260206004820152601160248201527f566f75742072656164206f76657272756e00000000000000000000000000000060448201526064016106d8565b60008061255b846001614e1f565b905060005b868110156125e45761257288836135d9565b92506000198314156125c65760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b657900000000000060448201526064016106d8565b6125d08383614e1f565b9150806125dc81615007565b915050612560565b506125ef87826135d9565b91506000198214156126435760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b657900000000000060448201526064016106d8565b61264e878284613648565b979650505050505050565b606060008260088151811061267e57634e487b7160e01b600052603260045260246000fd5b0160200151835160f89190911c9150612698826009614e62565b60ff16146126b6575050604080516020810190915260008152919050565b826009815181106126d757634e487b7160e01b600052603260045260246000fd5b016020015160f81c61278b5760028160ff161015612705575050604080516020810190915260008152919050565b600083600a8151811061272857634e487b7160e01b600052603260045260246000fd5b016020015160f81c905061273d600283614fe4565b60ff168114158061275b57508060201415801561275b575080601414155b1561277757505060408051602081019091526000815292915050565b61278384600b83613648565b949350505050565b600061279884600861296c565b90507f1976a900000000000000000000000000000000000000000000000000000000007fffffff0000000000000000000000000000000000000000000000000000000000821614156128835783600b8151811061280557634e487b7160e01b600052603260045260246000fd5b60209101015160f81c601414158061285a5750612830600285516128299190614fa5565b859061296c565b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191661222b60f21b14155b1561287657505060408051602081019091526000815292915050565b61278384600c6014613648565b7f17a91400000000000000000000000000000000000000000000000000000000007fffffff00000000000000000000000000000000000000000000000000000000008216141561292e5783600185516128dc9190614fa5565b815181106128fa57634e487b7160e01b600052603260045260246000fd5b60209101015160f81c60871461292157505060408051602081019091526000815292915050565b61278384600b6014613648565b505050604080516020810190915260008152919050565b60006020600083516020850160025afa50602060006020600060035afa5050600c51919050565b600061297b8383016020015190565b9392505050565b600081516000141561299657506000919050565b506020015190565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b6000806129d183613712565b60c01c905060006127838264ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b6001600160401b031666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160601b0319811660009081526005602052604090205480612aff5760405162461bcd60e51b815260206004820152601d60248201527f4e6f206d61696e205554584f20666f7220676976656e2077616c6c657400000060448201526064016106d8565b808335612b126040860160208701614914565b612b22606087016040880161492e565b604051602001612b5f9392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b6040516020818303038152906040528051906020012014612bc25760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f20646174610000000000000000000060448201526064016106d8565b600080612bce8661371e565b9092509050843582148015612bfd575063ffffffff8116612bf56040870160208801614914565b63ffffffff16145b612c955760405162461bcd60e51b815260206004820152604160248201527f526564656d7074696f6e207472616e73616374696f6e20696e707574206d757360448201527f7420706f696e7420746f207468652077616c6c65742773206d61696e2055545860648201527f4f00000000000000000000000000000000000000000000000000000000000000608482015260a4016106d8565b505050505050565b60408051608081018252600080825260208201819052918101829052606081018290529080612ccb8561356a565b90925090506000612cdd836001614e1f565b604080517f1976a914000000000000000000000000000000000000000000000000000000006020808301919091526001600160601b031989166024830181905261222b60f21b60388401528351601a818503018152603a840185528051908301207f1600140000000000000000000000000000000000000000000000000000000000605a850152605d8401919091528351605181850301815260719093019093528151910120919250906000805b8581101561323b576000612d9f8b876135d9565b90506000612dae8c8884613648565b90506000612dbb826129c5565b90506000612dd96008808551612dd19190614fa5565b859190613648565b90508b606001516001600160401b03166000148015612e0c575080516020820120881480612e0c57508051602082012087145b8015612e2157506000826001600160401b0316115b15612e465763ffffffff851660408d01526001600160401b03821660608d0152613218565b60008d82604051602001612e5b9291906149a5565b60408051808303601f19018152918152815160209283012060008181526006909352912060010154909150600160801b900463ffffffff161561306557600081815260066020526040812060018101548154919291612ecd916001600160401b0390811691600160a01b900416614fbc565b60018301549091506001600160401b0380871691612ef491600160401b9091041683614fbc565b6001600160401b031611158015612f1d5750806001600160401b0316856001600160401b031611155b612fb55760405162461bcd60e51b815260206004820152604660248201527f4f75747075742076616c7565206973206e6f742077697468696e20746865206160448201527f636365707461626c652072616e6765206f66207468652070656e64696e67207260648201527f6571756573740000000000000000000000000000000000000000000000000000608482015260a4016106d8565b808f600001818151612fc79190614e37565b9150906001600160401b031690816001600160401b0316815250508160010160009054906101000a90046001600160401b03168f60200181815161300b9190614e37565b6001600160401b0316905250600083815260066020526040902080546001600160e01b0319168155600101805473ffffffffffffffffffffffffffffffffffffffff191690558861305b81615007565b9950505050613216565b60008181526007602052604090206001810154600160801b900463ffffffff166130f65760405162461bcd60e51b8152602060048201526024808201527f4f75747075742069732061206e6f6e2d72657175657374656420726564656d7060448201527f74696f6e0000000000000000000000000000000000000000000000000000000060648201526084016106d8565b6001810154815460009161311e916001600160401b0391821691600160a01b90910416614fbc565b60018301549091506001600160401b038087169161314591600160401b9091041683614fbc565b6001600160401b03161115801561316e5750806001600160401b0316856001600160401b031611155b6132065760405162461bcd60e51b815260206004820152604860248201527f4f75747075742076616c7565206973206e6f742077697468696e20746865206160448201527f636365707461626c652072616e6765206f66207468652074696d6564206f757460648201527f2072657175657374000000000000000000000000000000000000000000000000608482015260a4016106d8565b8861321081615007565b99505050505b505b613222848a614e1f565b985050505050808061323390615007565b915050612d8b565b50600081116132b25760405162461bcd60e51b815260206004820152603b60248201527f526564656d7074696f6e207472616e73616374696f6e206d7573742070726f6360448201527f657373206174206c65617374206f6e6520726564656d7074696f6e000000000060648201526084016106d8565b50505050505092915050565b60008060006132cc8461356a565b90925090508015806132df575060001982145b156132ee575060009392505050565b60006132fb836001614e1f565b905060005b82811015613361578551821061331c5750600095945050505050565b600061332887846137d3565b9050600019811415613341575060009695505050505050565b61334b8184614e1f565b925050808061335990615007565b915050613300565b5093519093149392505050565b600080600061337c8461356a565b909250905080158061338f575060001982145b1561339e575060009392505050565b60006133ab836001614e1f565b905060005b8281101561336157855182106133cc5750600095945050505050565b60006133d887846135d9565b90506000198114156133f1575060009695505050505050565b6133fb8184614e1f565b925050808061340990615007565b9150506133b0565b6134aa61345e6134246040840184614ddb565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061381e92505050565b6134688380614ddb565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525087949392505050602085013561382b565b61351c5760405162461bcd60e51b815260206004820152603c60248201527f5478206d65726b6c652070726f6f66206973206e6f742076616c696420666f7260448201527f2070726f76696465642068656164657220616e6420747820686173680000000060648201526084016106d8565b61356661352c6040830183614ddb565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061385e92505050565b5050565b600080613578836000613bf4565b91509150915091565b6000808061358f858561296c565b92506135c461359e8686613d7e565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b91506135d085856137d3565b90509250925092565b60006135e6826009614e1f565b835110156135f75750600019611e5d565b60008061360e85613609866008614e1f565b613bf4565b90925090506000198214156136295760001992505050611e5d565b80613635836009614e1f565b61363f9190614e1f565b95945050505050565b606081613664575060408051602081019091526000815261297b565b60006136708385614e1f565b90508381118015613682575080855110155b6136ce5760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e64730000000000000000000000000060448201526064016106d8565b604051915082604083010160405282825283850182038460208701018481015b80821015613707578151838301526020820191506136ee565b505050509392505050565b6000611e5d828261296c565b600080600061372c8461356a565b915050806001146137a55760405162461bcd60e51b815260206004820152602f60248201527f526564656d7074696f6e207472616e73616374696f6e206d757374206861766560448201527f20612073696e676c6520696e707574000000000000000000000000000000000060648201526084016106d8565b60006137b18582613d95565b90506137bc81613f4a565b93506137ca61359e82613f57565b92505050915091565b60008060006137e28585613f64565b90925090506000198214156137fd5760001992505050611e5d565b80613809836025614e1f565b6138139190614e1f565b61363f906004614e1f565b6044810151600090611e5d565b6000838514801561383a575081155b801561384557508251155b1561385257506001612783565b61363f85848685613fa6565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663113764be6040518163ffffffff1660e01b815260040160206040518083038186803b1580156138ba57600080fd5b505afa1580156138ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138f291906146e4565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632b97be246040518163ffffffff1660e01b815260040160206040518083038186803b15801561394f57600080fd5b505afa158015613963573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061398791906146e4565b9050600061399c6139978661404e565b6140f1565b9050828114156139ae57829350613a2c565b818114156139be57819350613a2c565b60405162461bcd60e51b815260206004820152602560248201527f4e6f742061742063757272656e74206f722070726576696f757320646966666960448201527f63756c747900000000000000000000000000000000000000000000000000000060648201526084016106d8565b6000613a3786614119565b9050600019811415613ab15760405162461bcd60e51b815260206004820152602360248201527f496e76616c6964206c656e677468206f6620746865206865616465727320636860448201527f61696e000000000000000000000000000000000000000000000000000000000060648201526084016106d8565b600119811415613b035760405162461bcd60e51b815260206004820152601560248201527f496e76616c6964206865616465727320636861696e000000000000000000000060448201526064016106d8565b600219811415613b555760405162461bcd60e51b815260206004820152601d60248201527f496e73756666696369656e7420776f726b20696e20612068656164657200000060448201526064016106d8565b613b7f7f000000000000000000000000000000000000000000000000000000000000000086614f86565b811015612c955760405162461bcd60e51b815260206004820152603360248201527f496e73756666696369656e7420616363756d756c61746564206469666669637560448201527f6c747920696e2068656164657220636861696e0000000000000000000000000060648201526084016106d8565b6000806000613c038585614320565b905060ff8116613c43576000858581518110613c2f57634e487b7160e01b600052603260045260246000fd5b016020015190935060f81c9150613d779050565b83613c4f826001614e62565b60ff16613c5c9190614e1f565b85511015613c735760001960009250925050613d77565b60008160ff1660021415613cb857613cad613c99613c92876001614e1f565b889061296c565b62ffff0060e882901c1660f89190911c1790565b61ffff169050613d6d565b8160ff1660041415613ce257613cd561359e613c92876001614e1f565b63ffffffff169050613d6d565b8160ff1660081415613d6d57613d61613cff613c92876001614e1f565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b6001600160401b031666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b6001600160401b031690505b60ff909116925090505b9250929050565b600061297b613d8e836020614e1f565b849061296c565b6060600080613da38561356a565b9092509050600019821415613e055760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e742070617273696044820152616e6760f01b60648201526084016106d8565b808410613e545760405162461bcd60e51b815260206004820152601060248201527f56696e2072656164206f76657272756e0000000000000000000000000000000060448201526064016106d8565b600080613e62846001614e1f565b905060005b86811015613eeb57613e7988836137d3565b9250600019831415613ecd5760405162461bcd60e51b815260206004820152601760248201527f42616420566172496e7420696e2073637269707453696700000000000000000060448201526064016106d8565b613ed78383614e1f565b915080613ee381615007565b915050613e67565b50613ef687826137d3565b91506000198214156126435760405162461bcd60e51b815260206004820152601760248201527f42616420566172496e7420696e2073637269707453696700000000000000000060448201526064016106d8565b6020810151600090611e5d565b6000611e5d82602061296c565b600080613f72836025614e1f565b84511015613f87575060001990506000613d77565b600080613f9986613609876024614e1f565b9097909650945050505050565b600060208451613fb69190615022565b15613fc357506000612783565b8351613fd157506000612783565b818560005b865181101561404157613fea600284615022565b6001141561400f576140086140028883016020015190565b836143d6565b9150614028565b614025826140208984016020015190565b6143d6565b91505b60019290921c9161403a602082614e1f565b9050613fd6565b5090931495945050505050565b60008061405c83604861296c565b60e81c9050600083604b8151811061408457634e487b7160e01b600052603260045260246000fd5b016020015160f81c905060006140b883600060108262ffffff16901c8261ff001660108462ffffff16901b17179050919050565b62ffffff16905060006140cc600384614fe4565b60ff1690506140dd81610100614ede565b6140e79083614f86565b9695505050505050565b6000611e5d7bffff0000000000000000000000000000000000000000000000000000836143e2565b6000605082516141299190615022565b156141375750600019919050565b506040805160808101909152605081526000908190815b8451811015614318576141628583836143ee565b801561418257614172828461448d565b6141825750600119949350505050565b600061418d8361404e565b90506141988361299e565b9350806142dc8560008190506008817eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff16901b600882901c7eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff161790506010817dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff16901b601082901c7dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff161790506020817bffffffff00000000ffffffff00000000ffffffff00000000ffffffff16901b602082901c7bffffffff00000000ffffffff00000000ffffffff00000000ffffffff1617905060408177ffffffffffffffff0000000000000000ffffffffffffffff16901b604082901c77ffffffffffffffff0000000000000000ffffffffffffffff16179050608081901b608082901c179050919050565b11156142ef575060021995945050505050565b6143026142fb826140f1565b86906144b6565b94506143119050605082614e1f565b905061414e565b505050919050565b600082828151811061434257634e487b7160e01b600052603260045260246000fd5b60209101015160f81c60ff141561435b57506008611e5d565b82828151811061437b57634e487b7160e01b600052603260045260246000fd5b60209101015160f81c60fe141561439457506004611e5d565b8282815181106143b457634e487b7160e01b600052603260045260246000fd5b60209101015160f81c60fd14156143cd57506002611e5d565b50600092915050565b600061297b8383614514565b600061297b8284614e87565b815160006143fc8284614e1f565b9050828111801561440e575080855110155b61445a5760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e64730000000000000000000000000060448201526064016106d8565b826020860101602085018382015b80831015614483578251825260209283019290910190614468565b5050505050505050565b60008061449984614542565b90508281146144ac576000915050611e5d565b5060019392505050565b60006144c28284614e1f565b905082811015611e5d5760405162461bcd60e51b815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e0000000000000060448201526064016106d8565b60008260005281602052602060006040600060025afa50602060006020600060025afa505060005192915050565b6024810151600090611e5d565b80356001600160a01b038116811461456657600080fd5b919050565b80356001600160601b03198116811461456657600080fd5b600060808284031215614594578081fd5b50919050565b600060608284031215614594578081fd5b803563ffffffff8116811461456657600080fd5b80356001600160401b038116811461456657600080fd5b6000602082840312156145e7578081fd5b61297b8261454f565b60008060408385031215614602578081fd5b61460b8361454f565b91506020830135801515811461461f578182fd5b809150509250929050565b60006020828403121561463b578081fd5b61297b8261456b565b600080600080600060c0868803121561465b578081fd5b6146648661456b565b9450614673876020880161459a565b935060808601356001600160401b038082111561468e578283fd5b818801915088601f8301126146a1578283fd5b8135818111156146af578384fd5b8960208285010111156146c0578384fd5b6020830195508094505050506146d860a087016145bf565b90509295509295909350565b6000602082840312156146f5578081fd5b5051919050565b60006020828403121561470d578081fd5b81356001600160e01b03198116811461297b578182fd5b600060208284031215614735578081fd5b81356001600160c01b03198116811461297b578182fd5b600080600060a08486031215614760578283fd5b83356001600160401b0380821115614776578485fd5b61478287838801614583565b94506020860135915080821115614797578384fd5b506147a48682870161459a565b9250506135d0856040860161459a565b60008060008060c085870312156147c9578384fd5b84356001600160401b03808211156147df578586fd5b6147eb88838901614583565b95506020870135915080821115614800578485fd5b5061480d8782880161459a565b93505061481d866040870161459a565b915061482b60a0860161456b565b905092959194509250565b60008082840361010081121561484a578283fd5b83356001600160401b0381111561485f578384fd5b61486b86828701614583565b93505060e0601f198201121561487f578182fd5b506020830190509250929050565b60006060828403121561489e578081fd5b604051606081018181106001600160401b03821117156148cc57634e487b7160e01b83526041600452602483fd5b604052823581526148df602084016145ab565b60208201526148f0604084016145bf565b60408201529392505050565b60006020828403121561490d578081fd5b5035919050565b600060208284031215614925578081fd5b61297b826145ab565b60006020828403121561493f578081fd5b61297b826145bf565b60008151815b81811015614968576020818501810151868301520161494e565b818111156149765782828601525b509290920192915050565b6001600160601b031984168152818360148301376000910160140190815292915050565b6001600160601b03198316815260006127836014830184614948565b60006001600160e01b031980891683528688600485013786830160048101838152868882375093169390920160048101939093525050600801949350505050565b6001600160c01b031984168152818360088301376000910160080190815292915050565b600061297b8284614948565b600560fa1b8152606086901b6001600160601b0319166001820152607560f81b60158201527f080000000000000000000000000000000000000000000000000000000000000060168201526001600160c01b031985166017820152607560f81b601f8201526000614b06614af9614ad0602085015b7f7600000000000000000000000000000000000000000000000000000000000000815260010190565b7fa900000000000000000000000000000000000000000000000000000000000000815260010190565b600560fa1b815260010190565b6001600160601b0319861681527f870000000000000000000000000000000000000000000000000000000000000060148201527f63000000000000000000000000000000000000000000000000000000000000006015820152614bc5614af9614ad0614aa7614b9c601686015b7fac00000000000000000000000000000000000000000000000000000000000000815260010190565b7f6700000000000000000000000000000000000000000000000000000000000000815260010190565b6001600160601b0319861681527f880000000000000000000000000000000000000000000000000000000000000060148201527f040000000000000000000000000000000000000000000000000000000000000060158201529050601681016001600160e01b0319851681527fb1000000000000000000000000000000000000000000000000000000000000006004820152607560f81b60058201529050614c9b614c7260068301614b73565b7f6800000000000000000000000000000000000000000000000000000000000000815260010190565b98975050505050505050565b604080825283519082018190526000906020906060840190828701845b82811015614ce95781516001600160a01b031684529284019290840190600101614cc4565b50505083810382850152845180825285830191830190845b81811015614d1d57835183529284019291840191600101614d01565b5090979650505050505050565b6bffffffffffffffffffffffff198816815260c060208201528560c0820152858760e0830137600060e08783018101919091526001600160a01b039590951660408201526001600160401b039384166060820152918316608083015290911660a0820152601f909201601f19169091010192915050565b6040810160058410614dc357634e487b7160e01b600052602160045260246000fd5b9281526001600160401b039190911660209091015290565b6000808335601e19843603018112614df1578283fd5b8301803591506001600160401b03821115614e0a578283fd5b602001915036819003821315613d7757600080fd5b60008219821115614e3257614e32615036565b500190565b60006001600160401b03808316818516808303821115614e5957614e59615036565b01949350505050565b600060ff821660ff84168060ff03821115614e7f57614e7f615036565b019392505050565b600082614e9657614e9661504c565b500490565b600181815b80851115614ed6578160001904821115614ebc57614ebc615036565b80851615614ec957918102915b93841c9390800290614ea0565b509250929050565b600061297b8383600082614ef457506001611e5d565b81614f0157506000611e5d565b8160018114614f175760028114614f2157614f3d565b6001915050611e5d565b60ff841115614f3257614f32615036565b50506001821b611e5d565b5060208310610133831016604e8410600b8410161715614f60575081810a611e5d565b614f6a8383614e9b565b8060001904821115614f7e57614f7e615036565b029392505050565b6000816000190483118215151615614fa057614fa0615036565b500290565b600082821015614fb757614fb7615036565b500390565b60006001600160401b0383811690831681811015614fdc57614fdc615036565b039392505050565b600060ff821660ff841680821015614ffe57614ffe615036565b90039392505050565b600060001982141561501b5761501b615036565b5060010190565b6000826150315761503161504c565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fdfea264697066735822122066edd8bef17594ec82bb76b273b40507f7d3b31362f4c64dd1686480004d56bb64736f6c63430008040033",
|
|
833
|
+
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101825760003560e01c80638da5cb5b116100d8578063bdf9fca91161008c578063e65e19d511610066578063e65e19d514610517578063f2fde38b14610558578063f3cc53481461056b57600080fd5b8063bdf9fca9146104b7578063d6eccdf0146104d1578063e53c0b55146104e457600080fd5b8063b02c43d0116100bd578063b02c43d0146103db578063b34b32161461047d578063b59589d11461049057600080fd5b80638da5cb5b14610398578063a588f059146103a957600080fd5b80635c0b48121161013a578063715018a611610114578063715018a61461034957806376cdb03b1461035157806383a434281461037857600080fd5b80635c0b4812146102e457806360d712fc146102f757806361d027b31461030a57600080fd5b80631fff4e701161016b5780631fff4e70146102915780632bb818c2146102a857806359a9d90a146102cf57600080fd5b806303d952f7146101875780630b6ba19d14610232575b600080fd5b6101e66101953660046148fc565b600660205260009081526040902080546001909101546001600160a01b03821691600160a01b90046001600160401b039081169181811691600160401b82041690600160801b900463ffffffff1685565b604080516001600160a01b0390961686526001600160401b0394851660208701529284169285019290925291909116606083015263ffffffff16608082015260a0015b60405180910390f35b6101e66102403660046148fc565b600760205260009081526040902080546001909101546001600160a01b03821691600160a01b90046001600160401b039081169181811691600160401b82041690600160801b900463ffffffff1685565b61029a60025481565b604051908152602001610229565b61029a7f000000000000000000000000000000000000000000000000000000000000000081565b6102e26102dd36600461474c565b61057e565b005b6102e26102f2366004614836565b610901565b6102e26103053660046145f0565b610f20565b6103317f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610229565b6102e2610fd9565b6103317f000000000000000000000000000000000000000000000000000000000000000081565b61029a61038636600461462a565b60056020526000908152604090205481565b6000546001600160a01b0316610331565b6001546103c390600160401b90046001600160401b031681565b6040516001600160401b039091168152602001610229565b6104396103e93660046148fc565b600460205260009081526040902080546001909101546001600160a01b0380831692600160a01b8082046001600160401b031693600160e01b90920463ffffffff90811693831692919091041685565b604080516001600160a01b0396871681526001600160401b03909516602086015263ffffffff9384169085015293166060830152909116608082015260a001610229565b6102e261048b3660046147b4565b61103f565b6103317f000000000000000000000000000000000000000000000000000000000000000081565b6000546103c390600160a01b90046001600160401b031681565b6102e26104df366004614644565b611490565b6105076104f23660046145d6565b60036020526000908152604090205460ff1681565b6040519015158152602001610229565b61054a61052536600461462a565b60086020526000908152604090205460ff81169061010090046001600160401b031682565b604051610229929190614da1565b6102e26105663660046145d6565b611c07565b6001546103c3906001600160401b031681565b600061058a8484611ce9565b90506000806105d961059f6040880188614ddb565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611e6392505050565b60408051606081018252600080825260208083018290528284018290526001600160601b0319861682526005905291909120549294509092509080156106f35780863561062c6040890160208a01614914565b61063c60608a0160408b0161492e565b6040516020016106799392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60405160208183030381529060405280519060200120146106e15760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f20646174610000000000000000000060448201526064015b60405180910390fd5b6106f03687900387018761488d565b91505b6000808061074361070760208d018d614ddb565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250899250611f96915050565b91945092509050600061075f6001600160401b03881685614fa5565b905060008251826107709190614e87565b905060005b83518110156107c8578184828151811061079f57634e487b7160e01b600052603260045260246000fd5b602002602001018181516107b39190614fa5565b905250806107c081615007565b915050610775565b5060408051602081018c90526000918101919091526001600160c01b031960c08a901b166044820152604c0160408051808303601f1901815282825280516020918201206001600160601b03198d1660008181526005845284902091909155835282018c90527fe50ffdcc0a5f2c1ede5c122b9414ffd7b2c6bc870d2d775194049dc30da95e6a910160405180910390a16040517f266a123a0000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063266a123a906108c09087908790600401614ca7565b600060405180830381600087803b1580156108da57600080fd5b505af11580156108ee573d6000803e3d6000fd5b5050505050505050505050505050505050565b600061091360e0830160c084016145d6565b6001600160a01b0316148061095557506003600061093760e0840160c085016145d6565b6001600160a01b0316815260208101919091526040016000205460ff165b6109a15760405162461bcd60e51b815260206004820152601460248201527f5661756c74206973206e6f74207472757374656400000000000000000000000060448201526064016106d8565b60006109b360408301602084016145d6565b6109c36060840160408501614724565b6109d3608085016060860161462a565b6109e360a086016080870161462a565b6109f360c0870160a088016146fc565b604051602001610a07959493929190614a32565b60408051601f1981840301815291905290506000610a7b610a2b6020850185614914565b63ffffffff16610a3e6040870187614ddb565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505061248e9050565b90506000610a8882612659565b9050805160141415610b0e57610a9d83612945565b6001600160601b031916610ab282600061296c565b6001600160601b03191614610b095760405162461bcd60e51b815260206004820152601960248201527f57726f6e672032302d627974652073637269707420686173680000000000000060448201526064016106d8565b610c06565b805160201415610bbe57600283604051610b289190614a26565b602060405180830381855afa158015610b45573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610b6891906146e4565b610b7182612982565b14610b095760405162461bcd60e51b815260206004820152601960248201527f57726f6e672033322d627974652073637269707420686173680000000000000060448201526064016106d8565b60405162461bcd60e51b815260206004820152601860248201527f57726f6e67207363726970742068617368206c656e677468000000000000000060448201526064016106d8565b6000610c6b610c1860208801886146fc565b610c256020890189614ddb565b610c3260408b018b614ddb565b610c4260808d0160608e016146fc565b604051602001610c57969594939291906149c1565b60405160208183030381529060405261299e565b9050600060048183610c8060208a018a614914565b604051602001610ca792919091825260e01b6001600160e01b031916602082015260240190565b60408051808303601f190181529181528151602092830120835290820192909252016000208054909150600160e01b900463ffffffff1615610d2b5760405162461bcd60e51b815260206004820152601860248201527f4465706f73697420616c72656164792072657665616c6564000000000000000060448201526064016106d8565b6000610d36856129c5565b82547fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff16600160a01b6001600160401b038316021783559050610d7f60408801602089016145d6565b82546001600160a01b03919091167bffffffffffffffff000000000000000000000000000000000000000090911617600160e01b4263ffffffff1602178255610dce60e0880160c089016145d6565b60018301805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790557fa7382159a693ed317a024daf0fd1ba30805cdf9928ee09550af517c516e2ef0583610e2c60208a018a614914565b610e3c60408b0160208c016145d6565b84610e4d60608d0160408e01614724565b610e5d60808e0160608f0161462a565b8d6080016020810190610e70919061462a565b8e60a0016020810190610e8391906146fc565b8f60c0016020810190610e9691906145d6565b60408051998a5263ffffffff90981660208a01526001600160a01b03968716978901979097526001600160401b0390941660608801526001600160c01b031990921660808701526001600160601b031990811660a08701521660c08501526001600160e01b03191660e0840152166101008201526101200160405180910390a15050505050505050565b6000546001600160a01b03163314610f7a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106d8565b6001600160a01b038216600081815260036020908152604091829020805460ff191685151590811790915591519182527f9065599c12c4294d9e2201638226d0d0beb95c228f468c4e7c2bdb8322b6066f910160405180910390a25050565b6000546001600160a01b031633146110335760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106d8565b61103d6000612a3b565b565b600061104b8585611ce9565b905061109b61105d6020870187614ddb565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250879250869150612a989050565b6001600160601b0319821660009081526008602052604090205460ff1660018160048111156110da57634e487b7160e01b600052602160045260246000fd5b14806111055750600281600481111561110357634e487b7160e01b600052602160045260246000fd5b145b6111775760405162461bcd60e51b815260206004820152602c60248201527f57616c6c6574206d75737420626520696e20416374697665206f72204d6f766960448201527f6e6746756473207374617465000000000000000000000000000000000000000060648201526084016106d8565b60006111c56111896040890189614ddb565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250889250612c9d915050565b60608101519091506001600160401b0316156112585782816040015182606001516040516020016112239392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60408051601f1981840301815291815281516020928301206001600160601b0319871660009081526005909352912055611273565b6001600160601b031984166000908152600560205260408120555b80516001600160601b03198516600090815260086020526040902080546001906112ac90849061010090046001600160401b0316614fbc565b92506101000a8154816001600160401b0302191690836001600160401b031602179055507fa45596c10f758d32ec8cca64a0fbfe776052b08fdb3f026e0a87f52118bf8fbe84846040516113169291906001600160601b0319929092168252602082015260400190565b60405180910390a180516040517f392aee430000000000000000000000000000000000000000000000000000000081526001600160401b0390911660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063392aee4390602401600060405180830381600087803b1580156113a457600080fd5b505af11580156113b8573d6000803e3d6000fd5b5050505060208101516040517f56a6d9ef0000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301526001600160401b0390921660248201527f0000000000000000000000000000000000000000000000000000000000000000909116906356a6d9ef90604401600060405180830381600087803b15801561146f57600080fd5b505af1158015611483573d6000803e3d6000fd5b5050505050505050505050565b60016001600160601b0319861660009081526008602052604090205460ff1660048111156114ce57634e487b7160e01b600052602160045260246000fd5b1461151b5760405162461bcd60e51b815260206004820152601e60248201527f57616c6c6574206d75737420626520696e20416374697665207374617465000060448201526064016106d8565b6001600160601b03198516600090815260056020526040902054806115a85760405162461bcd60e51b815260206004820152602160248201527f4e6f206d61696e205554584f20666f722074686520676976656e2077616c6c6560448201527f740000000000000000000000000000000000000000000000000000000000000060648201526084016106d8565b8085356115bb6040880160208901614914565b6115cb6060890160408a0161492e565b6040516020016116089392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b604051602081830303815290604052805190602001201461166b5760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f20646174610000000000000000000060448201526064016106d8565b600061169d600060c01b868660405160200161168993929190614a02565b604051602081830303815290604052612659565b905060008151116117165760405162461bcd60e51b815260206004820152602e60248201527f52656465656d6572206f757470757420736372697074206d757374206265206160448201527f207374616e64617264207479706500000000000000000000000000000000000060648201526084016106d8565b80805190602001208760405160200161173f91906001600160601b031991909116815260140190565b6040516020818303038152906040528051906020012014156117c95760405162461bcd60e51b815260206004820152603760248201527f52656465656d6572206f757470757420736372697074206d757374206e6f742060448201527f706f696e7420746f207468652077616c6c657420504b4800000000000000000060648201526084016106d8565b6000546001600160401b03600160a01b9091048116908416101561182f5760405162461bcd60e51b815260206004820152601b60248201527f526564656d7074696f6e20616d6f756e7420746f6f20736d616c6c000000000060448201526064016106d8565b600087868660405160200161184693929190614981565b60408051808303601f19018152918152815160209283012060008181526006909352912060010154909150600160801b900463ffffffff16156119175760405162461bcd60e51b815260206004820152604a60248201527f546865726520697320612070656e64696e6720726564656d7074696f6e20726560448201527f71756573742066726f6d20746869732077616c6c657420746f2074686520736160648201527f6d65206164647265737300000000000000000000000000000000000000000000608482015260a4016106d8565b6001546001600160401b0380821691600160401b9004166119388287614fbc565b6001600160601b03198b166000908152600860205260409020805460019061196f90849061010090046001600160401b0316614e37565b82546001600160401b0391821661010093840a90810290830219909116179092556001600160601b03198d1660009081526008602052604090819020549190910490911691506119c59060608c01908c0161492e565b6001600160401b03161015611a1c5760405162461bcd60e51b815260206004820152601960248201527f496e73756666696369656e742077616c6c65742066756e64730000000000000060448201526064016106d8565b6040805160a081018252338082526001600160401b03808a1660208085019182528783168587019081528784166060870190815263ffffffff4281166080890190815260008d81526006909552938990209751885495518716600160a01b026001600160e01b03199096166001600160a01b03919091161794909417875590516001909601805491519251909316600160801b027fffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffffff928516600160401b027fffffffffffffffffffffffffffffffff00000000000000000000000000000000909216969094169590951794909417939093161790915590517f97a0199072f487232635d50ab75860891afe0b91c976ed2fc76502c4d82d0d9591611b4c918d918c918c91908c9089908990614d2a565b60405180910390a16040517f7c6db49c0000000000000000000000000000000000000000000000000000000081523360048201523060248201526001600160401b03871660448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690637c6db49c90606401600060405180830381600087803b158015611be357600080fd5b505af1158015611bf7573d6000803e3d6000fd5b5050505050505050505050505050565b6000546001600160a01b03163314611c615760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106d8565b6001600160a01b038116611cdd5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016106d8565b611ce681612a3b565b50565b6000611d35611cfb6020850185614ddb565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506132be92505050565b611d815760405162461bcd60e51b815260206004820152601d60248201527f496e76616c696420696e70757420766563746f722070726f766964656400000060448201526064016106d8565b611dcb611d916040850185614ddb565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061336e92505050565b611e175760405162461bcd60e51b815260206004820152601e60248201527f496e76616c6964206f757470757420766563746f722070726f7669646564000060448201526064016106d8565b611e51611e2760208501856146fc565b611e346020860186614ddb565b611e416040880188614ddb565b610c4260808a0160608b016146fc565b9050611e5d8183613411565b92915050565b6000806000611e718461356a565b91505080600114611eea5760405162461bcd60e51b815260206004820152602b60248201527f5377656570207472616e73616374696f6e206d7573742068617665206120736960448201527f6e676c65206f757470757400000000000000000000000000000000000000000060648201526084016106d8565b6000611ef6858261248e565b9050611f01816129c5565b92506000611f0e82612659565b90508051601414611f875760405162461bcd60e51b815260206004820152602b60248201527f57616c6c6574207075626c6963206b657920686173682073686f756c6420686160448201527f766520323020627974657300000000000000000000000000000000000000000060648201526084016106d8565b60208101519450505050915091565b805160009060609081901515838080611fae8961356a565b90925090506000611fc0836001614e1f565b90508415611fd857611fd3600183614fa5565b611fda565b815b6001600160401b03811115611fff57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015612028578160200160208202803683370190505b50965086516001600160401b0381111561205257634e487b7160e01b600052604160045260246000fd5b60405190808252806020026020018201604052801561207b578160200160208202803683370190505b5095506000805b838110156123915760008060006120998f87613581565b92509250925060006004600085856040516020016120ce92919091825260e01b6001600160e01b031916602082015260240190565b60408051808303601f190181529181528151602092830120835290820192909252016000208054909150600160e01b900463ffffffff16156122ea576001810154600160a01b900463ffffffff16156121695760405162461bcd60e51b815260206004820152601560248201527f4465706f73697420616c7265616479207377657074000000000000000000000060448201526064016106d8565b8c518614156121e05760405162461bcd60e51b815260206004820152603a60248201527f4578706563746564206d61696e205554584f206e6f742070726573656e74206960448201527f6e207377656570207472616e73616374696f6e20696e7075747300000000000060648201526084016106d8565b6001810180547fffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffff16600160a01b4263ffffffff160217905580548d516001600160a01b03909116908e908890811061224857634e487b7160e01b600052603260045260246000fd5b6001600160a01b03929092166020928302919091019091015280548c51600160a01b9091046001600160401b0316908d908890811061229757634e487b7160e01b600052603260045260246000fd5b6020026020010181815250508b86815181106122c357634e487b7160e01b600052603260045260246000fd5b60200260200101518e6122d69190614e1f565b9d50856122e281615007565b96505061236e565b8915158b1515141580156122fe57508e5184145b156123265760408f015161231b906001600160401b03168f614e1f565b9d506001995061236e565b60405162461bcd60e51b815260206004820152601260248201527f556e6b6e6f776e20696e7075742074797065000000000000000000000000000060448201526064016106d8565b6123788288614e1f565b965050505050808061238990615007565b915050612082565b50600081116124085760405162461bcd60e51b815260206004820152603360248201527f5377656570207472616e73616374696f6e206d7573742070726f63657373206160448201527f74206c65617374206f6e65206465706f7369740000000000000000000000000060648201526084016106d8565b841515861515146124815760405162461bcd60e51b815260206004820152603a60248201527f4578706563746564206d61696e205554584f206e6f742070726573656e74206960448201527f6e207377656570207472616e73616374696f6e20696e7075747300000000000060648201526084016106d8565b5050505050509250925092565b606060008061249c8561356a565b90925090506000198214156124fe5760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e742070617273696044820152616e6760f01b60648201526084016106d8565b80841061254d5760405162461bcd60e51b815260206004820152601160248201527f566f75742072656164206f76657272756e00000000000000000000000000000060448201526064016106d8565b60008061255b846001614e1f565b905060005b868110156125e45761257288836135d9565b92506000198314156125c65760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b657900000000000060448201526064016106d8565b6125d08383614e1f565b9150806125dc81615007565b915050612560565b506125ef87826135d9565b91506000198214156126435760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b657900000000000060448201526064016106d8565b61264e878284613648565b979650505050505050565b606060008260088151811061267e57634e487b7160e01b600052603260045260246000fd5b0160200151835160f89190911c9150612698826009614e62565b60ff16146126b6575050604080516020810190915260008152919050565b826009815181106126d757634e487b7160e01b600052603260045260246000fd5b016020015160f81c61278b5760028160ff161015612705575050604080516020810190915260008152919050565b600083600a8151811061272857634e487b7160e01b600052603260045260246000fd5b016020015160f81c905061273d600283614fe4565b60ff168114158061275b57508060201415801561275b575080601414155b1561277757505060408051602081019091526000815292915050565b61278384600b83613648565b949350505050565b600061279884600861296c565b90507f1976a900000000000000000000000000000000000000000000000000000000007fffffff0000000000000000000000000000000000000000000000000000000000821614156128835783600b8151811061280557634e487b7160e01b600052603260045260246000fd5b60209101015160f81c601414158061285a5750612830600285516128299190614fa5565b859061296c565b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191661222b60f21b14155b1561287657505060408051602081019091526000815292915050565b61278384600c6014613648565b7f17a91400000000000000000000000000000000000000000000000000000000007fffffff00000000000000000000000000000000000000000000000000000000008216141561292e5783600185516128dc9190614fa5565b815181106128fa57634e487b7160e01b600052603260045260246000fd5b60209101015160f81c60871461292157505060408051602081019091526000815292915050565b61278384600b6014613648565b505050604080516020810190915260008152919050565b60006020600083516020850160025afa50602060006020600060035afa5050600c51919050565b600061297b8383016020015190565b9392505050565b600081516000141561299657506000919050565b506020015190565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b6000806129d183613712565b60c01c905060006127838264ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b6001600160401b031666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160601b0319811660009081526005602052604090205480612aff5760405162461bcd60e51b815260206004820152601d60248201527f4e6f206d61696e205554584f20666f7220676976656e2077616c6c657400000060448201526064016106d8565b808335612b126040860160208701614914565b612b22606087016040880161492e565b604051602001612b5f9392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b6040516020818303038152906040528051906020012014612bc25760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f20646174610000000000000000000060448201526064016106d8565b600080612bce8661371e565b9092509050843582148015612bfd575063ffffffff8116612bf56040870160208801614914565b63ffffffff16145b612c955760405162461bcd60e51b815260206004820152604160248201527f526564656d7074696f6e207472616e73616374696f6e20696e707574206d757360448201527f7420706f696e7420746f207468652077616c6c65742773206d61696e2055545860648201527f4f00000000000000000000000000000000000000000000000000000000000000608482015260a4016106d8565b505050505050565b60408051608081018252600080825260208201819052918101829052606081018290529080612ccb8561356a565b90925090506000612cdd836001614e1f565b604080517f1976a914000000000000000000000000000000000000000000000000000000006020808301919091526001600160601b031989166024830181905261222b60f21b60388401528351601a818503018152603a840185528051908301207f1600140000000000000000000000000000000000000000000000000000000000605a850152605d8401919091528351605181850301815260719093019093528151910120919250906000805b8581101561323b576000612d9f8b876135d9565b90506000612dae8c8884613648565b90506000612dbb826129c5565b90506000612dd96008808551612dd19190614fa5565b859190613648565b90508b606001516001600160401b03166000148015612e0c575080516020820120881480612e0c57508051602082012087145b8015612e2157506000826001600160401b0316115b15612e465763ffffffff851660408d01526001600160401b03821660608d0152613218565b60008d82604051602001612e5b9291906149a5565b60408051808303601f19018152918152815160209283012060008181526006909352912060010154909150600160801b900463ffffffff161561306557600081815260066020526040812060018101548154919291612ecd916001600160401b0390811691600160a01b900416614fbc565b60018301549091506001600160401b0380871691612ef491600160401b9091041683614fbc565b6001600160401b031611158015612f1d5750806001600160401b0316856001600160401b031611155b612fb55760405162461bcd60e51b815260206004820152604660248201527f4f75747075742076616c7565206973206e6f742077697468696e20746865206160448201527f636365707461626c652072616e6765206f66207468652070656e64696e67207260648201527f6571756573740000000000000000000000000000000000000000000000000000608482015260a4016106d8565b808f600001818151612fc79190614e37565b9150906001600160401b031690816001600160401b0316815250508160010160009054906101000a90046001600160401b03168f60200181815161300b9190614e37565b6001600160401b0316905250600083815260066020526040902080546001600160e01b0319168155600101805473ffffffffffffffffffffffffffffffffffffffff191690558861305b81615007565b9950505050613216565b60008181526007602052604090206001810154600160801b900463ffffffff166130f65760405162461bcd60e51b8152602060048201526024808201527f4f75747075742069732061206e6f6e2d72657175657374656420726564656d7060448201527f74696f6e0000000000000000000000000000000000000000000000000000000060648201526084016106d8565b6001810154815460009161311e916001600160401b0391821691600160a01b90910416614fbc565b60018301549091506001600160401b038087169161314591600160401b9091041683614fbc565b6001600160401b03161115801561316e5750806001600160401b0316856001600160401b031611155b6132065760405162461bcd60e51b815260206004820152604860248201527f4f75747075742076616c7565206973206e6f742077697468696e20746865206160448201527f636365707461626c652072616e6765206f66207468652074696d6564206f757460648201527f2072657175657374000000000000000000000000000000000000000000000000608482015260a4016106d8565b8861321081615007565b99505050505b505b613222848a614e1f565b985050505050808061323390615007565b915050612d8b565b50600081116132b25760405162461bcd60e51b815260206004820152603b60248201527f526564656d7074696f6e207472616e73616374696f6e206d7573742070726f6360448201527f657373206174206c65617374206f6e6520726564656d7074696f6e000000000060648201526084016106d8565b50505050505092915050565b60008060006132cc8461356a565b90925090508015806132df575060001982145b156132ee575060009392505050565b60006132fb836001614e1f565b905060005b82811015613361578551821061331c5750600095945050505050565b600061332887846137d3565b9050600019811415613341575060009695505050505050565b61334b8184614e1f565b925050808061335990615007565b915050613300565b5093519093149392505050565b600080600061337c8461356a565b909250905080158061338f575060001982145b1561339e575060009392505050565b60006133ab836001614e1f565b905060005b8281101561336157855182106133cc5750600095945050505050565b60006133d887846135d9565b90506000198114156133f1575060009695505050505050565b6133fb8184614e1f565b925050808061340990615007565b9150506133b0565b6134aa61345e6134246040840184614ddb565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061381e92505050565b6134688380614ddb565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525087949392505050602085013561382b565b61351c5760405162461bcd60e51b815260206004820152603c60248201527f5478206d65726b6c652070726f6f66206973206e6f742076616c696420666f7260448201527f2070726f76696465642068656164657220616e6420747820686173680000000060648201526084016106d8565b61356661352c6040830183614ddb565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061385e92505050565b5050565b600080613578836000613bf4565b91509150915091565b6000808061358f858561296c565b92506135c461359e8686613d7e565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b91506135d085856137d3565b90509250925092565b60006135e6826009614e1f565b835110156135f75750600019611e5d565b60008061360e85613609866008614e1f565b613bf4565b90925090506000198214156136295760001992505050611e5d565b80613635836009614e1f565b61363f9190614e1f565b95945050505050565b606081613664575060408051602081019091526000815261297b565b60006136708385614e1f565b90508381118015613682575080855110155b6136ce5760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e64730000000000000000000000000060448201526064016106d8565b604051915082604083010160405282825283850182038460208701018481015b80821015613707578151838301526020820191506136ee565b505050509392505050565b6000611e5d828261296c565b600080600061372c8461356a565b915050806001146137a55760405162461bcd60e51b815260206004820152602f60248201527f526564656d7074696f6e207472616e73616374696f6e206d757374206861766560448201527f20612073696e676c6520696e707574000000000000000000000000000000000060648201526084016106d8565b60006137b18582613d95565b90506137bc81613f4a565b93506137ca61359e82613f57565b92505050915091565b60008060006137e28585613f64565b90925090506000198214156137fd5760001992505050611e5d565b80613809836025614e1f565b6138139190614e1f565b61363f906004614e1f565b6044810151600090611e5d565b6000838514801561383a575081155b801561384557508251155b1561385257506001612783565b61363f85848685613fa6565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663113764be6040518163ffffffff1660e01b815260040160206040518083038186803b1580156138ba57600080fd5b505afa1580156138ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138f291906146e4565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632b97be246040518163ffffffff1660e01b815260040160206040518083038186803b15801561394f57600080fd5b505afa158015613963573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061398791906146e4565b9050600061399c6139978661404e565b6140f1565b9050828114156139ae57829350613a2c565b818114156139be57819350613a2c565b60405162461bcd60e51b815260206004820152602560248201527f4e6f742061742063757272656e74206f722070726576696f757320646966666960448201527f63756c747900000000000000000000000000000000000000000000000000000060648201526084016106d8565b6000613a3786614119565b9050600019811415613ab15760405162461bcd60e51b815260206004820152602360248201527f496e76616c6964206c656e677468206f6620746865206865616465727320636860448201527f61696e000000000000000000000000000000000000000000000000000000000060648201526084016106d8565b600119811415613b035760405162461bcd60e51b815260206004820152601560248201527f496e76616c6964206865616465727320636861696e000000000000000000000060448201526064016106d8565b600219811415613b555760405162461bcd60e51b815260206004820152601d60248201527f496e73756666696369656e7420776f726b20696e20612068656164657200000060448201526064016106d8565b613b7f7f000000000000000000000000000000000000000000000000000000000000000086614f86565b811015612c955760405162461bcd60e51b815260206004820152603360248201527f496e73756666696369656e7420616363756d756c61746564206469666669637560448201527f6c747920696e2068656164657220636861696e0000000000000000000000000060648201526084016106d8565b6000806000613c038585614320565b905060ff8116613c43576000858581518110613c2f57634e487b7160e01b600052603260045260246000fd5b016020015190935060f81c9150613d779050565b83613c4f826001614e62565b60ff16613c5c9190614e1f565b85511015613c735760001960009250925050613d77565b60008160ff1660021415613cb857613cad613c99613c92876001614e1f565b889061296c565b62ffff0060e882901c1660f89190911c1790565b61ffff169050613d6d565b8160ff1660041415613ce257613cd561359e613c92876001614e1f565b63ffffffff169050613d6d565b8160ff1660081415613d6d57613d61613cff613c92876001614e1f565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b6001600160401b031666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b6001600160401b031690505b60ff909116925090505b9250929050565b600061297b613d8e836020614e1f565b849061296c565b6060600080613da38561356a565b9092509050600019821415613e055760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e742070617273696044820152616e6760f01b60648201526084016106d8565b808410613e545760405162461bcd60e51b815260206004820152601060248201527f56696e2072656164206f76657272756e0000000000000000000000000000000060448201526064016106d8565b600080613e62846001614e1f565b905060005b86811015613eeb57613e7988836137d3565b9250600019831415613ecd5760405162461bcd60e51b815260206004820152601760248201527f42616420566172496e7420696e2073637269707453696700000000000000000060448201526064016106d8565b613ed78383614e1f565b915080613ee381615007565b915050613e67565b50613ef687826137d3565b91506000198214156126435760405162461bcd60e51b815260206004820152601760248201527f42616420566172496e7420696e2073637269707453696700000000000000000060448201526064016106d8565b6020810151600090611e5d565b6000611e5d82602061296c565b600080613f72836025614e1f565b84511015613f87575060001990506000613d77565b600080613f9986613609876024614e1f565b9097909650945050505050565b600060208451613fb69190615022565b15613fc357506000612783565b8351613fd157506000612783565b818560005b865181101561404157613fea600284615022565b6001141561400f576140086140028883016020015190565b836143d6565b9150614028565b614025826140208984016020015190565b6143d6565b91505b60019290921c9161403a602082614e1f565b9050613fd6565b5090931495945050505050565b60008061405c83604861296c565b60e81c9050600083604b8151811061408457634e487b7160e01b600052603260045260246000fd5b016020015160f81c905060006140b883600060108262ffffff16901c8261ff001660108462ffffff16901b17179050919050565b62ffffff16905060006140cc600384614fe4565b60ff1690506140dd81610100614ede565b6140e79083614f86565b9695505050505050565b6000611e5d7bffff0000000000000000000000000000000000000000000000000000836143e2565b6000605082516141299190615022565b156141375750600019919050565b506040805160808101909152605081526000908190815b8451811015614318576141628583836143ee565b801561418257614172828461448d565b6141825750600119949350505050565b600061418d8361404e565b90506141988361299e565b9350806142dc8560008190506008817eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff16901b600882901c7eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff161790506010817dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff16901b601082901c7dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff161790506020817bffffffff00000000ffffffff00000000ffffffff00000000ffffffff16901b602082901c7bffffffff00000000ffffffff00000000ffffffff00000000ffffffff1617905060408177ffffffffffffffff0000000000000000ffffffffffffffff16901b604082901c77ffffffffffffffff0000000000000000ffffffffffffffff16179050608081901b608082901c179050919050565b11156142ef575060021995945050505050565b6143026142fb826140f1565b86906144b6565b94506143119050605082614e1f565b905061414e565b505050919050565b600082828151811061434257634e487b7160e01b600052603260045260246000fd5b60209101015160f81c60ff141561435b57506008611e5d565b82828151811061437b57634e487b7160e01b600052603260045260246000fd5b60209101015160f81c60fe141561439457506004611e5d565b8282815181106143b457634e487b7160e01b600052603260045260246000fd5b60209101015160f81c60fd14156143cd57506002611e5d565b50600092915050565b600061297b8383614514565b600061297b8284614e87565b815160006143fc8284614e1f565b9050828111801561440e575080855110155b61445a5760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e64730000000000000000000000000060448201526064016106d8565b826020860101602085018382015b80831015614483578251825260209283019290910190614468565b5050505050505050565b60008061449984614542565b90508281146144ac576000915050611e5d565b5060019392505050565b60006144c28284614e1f565b905082811015611e5d5760405162461bcd60e51b815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e0000000000000060448201526064016106d8565b60008260005281602052602060006040600060025afa50602060006020600060025afa505060005192915050565b6024810151600090611e5d565b80356001600160a01b038116811461456657600080fd5b919050565b80356001600160601b03198116811461456657600080fd5b600060808284031215614594578081fd5b50919050565b600060608284031215614594578081fd5b803563ffffffff8116811461456657600080fd5b80356001600160401b038116811461456657600080fd5b6000602082840312156145e7578081fd5b61297b8261454f565b60008060408385031215614602578081fd5b61460b8361454f565b91506020830135801515811461461f578182fd5b809150509250929050565b60006020828403121561463b578081fd5b61297b8261456b565b600080600080600060c0868803121561465b578081fd5b6146648661456b565b9450614673876020880161459a565b935060808601356001600160401b038082111561468e578283fd5b818801915088601f8301126146a1578283fd5b8135818111156146af578384fd5b8960208285010111156146c0578384fd5b6020830195508094505050506146d860a087016145bf565b90509295509295909350565b6000602082840312156146f5578081fd5b5051919050565b60006020828403121561470d578081fd5b81356001600160e01b03198116811461297b578182fd5b600060208284031215614735578081fd5b81356001600160c01b03198116811461297b578182fd5b600080600060a08486031215614760578283fd5b83356001600160401b0380821115614776578485fd5b61478287838801614583565b94506020860135915080821115614797578384fd5b506147a48682870161459a565b9250506135d0856040860161459a565b60008060008060c085870312156147c9578384fd5b84356001600160401b03808211156147df578586fd5b6147eb88838901614583565b95506020870135915080821115614800578485fd5b5061480d8782880161459a565b93505061481d866040870161459a565b915061482b60a0860161456b565b905092959194509250565b60008082840361010081121561484a578283fd5b83356001600160401b0381111561485f578384fd5b61486b86828701614583565b93505060e0601f198201121561487f578182fd5b506020830190509250929050565b60006060828403121561489e578081fd5b604051606081018181106001600160401b03821117156148cc57634e487b7160e01b83526041600452602483fd5b604052823581526148df602084016145ab565b60208201526148f0604084016145bf565b60408201529392505050565b60006020828403121561490d578081fd5b5035919050565b600060208284031215614925578081fd5b61297b826145ab565b60006020828403121561493f578081fd5b61297b826145bf565b60008151815b81811015614968576020818501810151868301520161494e565b818111156149765782828601525b509290920192915050565b6001600160601b031984168152818360148301376000910160140190815292915050565b6001600160601b03198316815260006127836014830184614948565b60006001600160e01b031980891683528688600485013786830160048101838152868882375093169390920160048101939093525050600801949350505050565b6001600160c01b031984168152818360088301376000910160080190815292915050565b600061297b8284614948565b600560fa1b8152606086901b6001600160601b0319166001820152607560f81b60158201527f080000000000000000000000000000000000000000000000000000000000000060168201526001600160c01b031985166017820152607560f81b601f8201526000614b06614af9614ad0602085015b7f7600000000000000000000000000000000000000000000000000000000000000815260010190565b7fa900000000000000000000000000000000000000000000000000000000000000815260010190565b600560fa1b815260010190565b6001600160601b0319861681527f870000000000000000000000000000000000000000000000000000000000000060148201527f63000000000000000000000000000000000000000000000000000000000000006015820152614bc5614af9614ad0614aa7614b9c601686015b7fac00000000000000000000000000000000000000000000000000000000000000815260010190565b7f6700000000000000000000000000000000000000000000000000000000000000815260010190565b6001600160601b0319861681527f880000000000000000000000000000000000000000000000000000000000000060148201527f040000000000000000000000000000000000000000000000000000000000000060158201529050601681016001600160e01b0319851681527fb1000000000000000000000000000000000000000000000000000000000000006004820152607560f81b60058201529050614c9b614c7260068301614b73565b7f6800000000000000000000000000000000000000000000000000000000000000815260010190565b98975050505050505050565b604080825283519082018190526000906020906060840190828701845b82811015614ce95781516001600160a01b031684529284019290840190600101614cc4565b50505083810382850152845180825285830191830190845b81811015614d1d57835183529284019291840191600101614d01565b5090979650505050505050565b6bffffffffffffffffffffffff198816815260c060208201528560c0820152858760e0830137600060e08783018101919091526001600160a01b039590951660408201526001600160401b039384166060820152918316608083015290911660a0820152601f909201601f19169091010192915050565b6040810160058410614dc357634e487b7160e01b600052602160045260246000fd5b9281526001600160401b039190911660209091015290565b6000808335601e19843603018112614df1578283fd5b8301803591506001600160401b03821115614e0a578283fd5b602001915036819003821315613d7757600080fd5b60008219821115614e3257614e32615036565b500190565b60006001600160401b03808316818516808303821115614e5957614e59615036565b01949350505050565b600060ff821660ff84168060ff03821115614e7f57614e7f615036565b019392505050565b600082614e9657614e9661504c565b500490565b600181815b80851115614ed6578160001904821115614ebc57614ebc615036565b80851615614ec957918102915b93841c9390800290614ea0565b509250929050565b600061297b8383600082614ef457506001611e5d565b81614f0157506000611e5d565b8160018114614f175760028114614f2157614f3d565b6001915050611e5d565b60ff841115614f3257614f32615036565b50506001821b611e5d565b5060208310610133831016604e8410600b8410161715614f60575081810a611e5d565b614f6a8383614e9b565b8060001904821115614f7e57614f7e615036565b029392505050565b6000816000190483118215151615614fa057614fa0615036565b500290565b600082821015614fb757614fb7615036565b500390565b60006001600160401b0383811690831681811015614fdc57614fdc615036565b039392505050565b600060ff821660ff841680821015614ffe57614ffe615036565b90039392505050565b600060001982141561501b5761501b615036565b5060010190565b6000826150315761503161504c565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fdfea264697066735822122066edd8bef17594ec82bb76b273b40507f7d3b31362f4c64dd1686480004d56bb64736f6c63430008040033",
|
|
333
834
|
"linkReferences": {},
|
|
334
835
|
"deployedLinkReferences": {}
|
|
335
836
|
}
|